From d3495476f4482e79baa39918095cdb1ef4448605 Mon Sep 17 00:00:00 2001 From: will Date: Wed, 19 Aug 2026 19:46:15 -0500 Subject: [PATCH] kill: purge old-paradigm dist/platform binaries from tree The generated C, amalgams, vendored runtime pins, and compiled binaries from the Claude Code era are removed from the worktree. The El sources survive; this tree is now source-only for the first-principles rebuild. Per Principal direction 2026-08-19. --- .../evidence/0003-codegen-series-cloc.cmd | 16 + .../evidence/0003-codegen-series-cloc.err | 0 .../evidence/0003-codegen-series-cloc.out | 64 + .../evidence/0003-codegen-series-cloc.prov | 7 + .../evidence/0003-codegen-series-cloc.rc | 1 + .../evidence/0019-compiler-series-cloc.cmd | 1 + .../evidence/0019-compiler-series-cloc.err | 0 .../evidence/0019-compiler-series-cloc.out | 81 + .../evidence/0019-compiler-series-cloc.prov | 7 + .../evidence/0019-compiler-series-cloc.rc | 1 + .../CALIBRATION-20260817T174713Z.txt | 50 + .../CALIBRATION-20260817T174754Z.txt | 50 + .../evidence/0003-cloc-calibration.cmd | 19 + .../evidence/0003-cloc-calibration.err | 0 .../evidence/0003-cloc-calibration.out | 10 + .../evidence/0003-cloc-calibration.prov | 7 + .../evidence/0003-cloc-calibration.rc | 1 + .../instrument/plot/evidence/0001-proof.cmd | 1 + .../instrument/plot/evidence/0001-proof.err | 0 .../instrument/plot/evidence/0001-proof.out | 20 + .../instrument/plot/evidence/0001-proof.prov | 7 + .../instrument/plot/evidence/0001-proof.rc | 1 + .../instrument/plot/evidence/MANIFEST.tsv | 2 + .../instrument/plot/evidence/RUN.env | 6 + .../instruments/instrument/plot/plot.py | 42 + .../instruments/instrument/plot/prove.sh | 50 + .../plot/reference/KNOWN-SERIES.WORKING | 17 + .../plot/reference/KNOWN-SERIES.tsv | 7 + .../instrument/report/evidence/0001-proof.cmd | 1 + .../instrument/report/evidence/0001-proof.err | 7 + .../instrument/report/evidence/0001-proof.out | 1 + .../report/evidence/0001-proof.prov | 7 + .../instrument/report/evidence/0001-proof.rc | 1 + .../instrument/report/evidence/MANIFEST.tsv | 2 + .../instrument/report/evidence/RUN.env | 6 + docs/experiments/reproduce.sh | 73 + .../evidence/0001-rerun.cmd | 1 + .../evidence/0001-rerun.err | 0 .../evidence/0001-rerun.out | 13 + .../evidence/0001-rerun.prov | 7 + .../evidence/0001-rerun.rc | 1 + .../evidence/CALIBRATION.txt | 50 + .../evidence/MANIFEST.tsv | 2 + .../evidence/RUN.env | 6 + .../measure.sh | 16 + .../0019-manifest-tsv-row-integrity-audit.cmd | 1 + .../0019-manifest-tsv-row-integrity-audit.err | 0 .../0019-manifest-tsv-row-integrity-audit.out | 18 + ...0019-manifest-tsv-row-integrity-audit.prov | 7 + .../0019-manifest-tsv-row-integrity-audit.rc | 1 + .../0020-verify-manifest-full-run.cmd | 1 + .../0020-verify-manifest-full-run.err | 0 .../0020-verify-manifest-full-run.out | 1 + .../0020-verify-manifest-full-run.prov | 7 + .../0020-verify-manifest-full-run.rc | 1 + ...0021-verify-manifest-full-run-ABSOLUTE.cmd | 1 + ...0021-verify-manifest-full-run-ABSOLUTE.err | 0 ...0021-verify-manifest-full-run-ABSOLUTE.out | 9 + ...021-verify-manifest-full-run-ABSOLUTE.prov | 7 + .../0021-verify-manifest-full-run-ABSOLUTE.rc | 1 + .../0022-verifier-false-pass-on-empty-dir.cmd | 1 + .../0022-verifier-false-pass-on-empty-dir.err | 0 .../0022-verifier-false-pass-on-empty-dir.out | 2 + ...0022-verifier-false-pass-on-empty-dir.prov | 7 + .../0022-verifier-false-pass-on-empty-dir.rc | 1 + .../0023-claimed-vs-observed-offset-table.cmd | 1 + .../0023-claimed-vs-observed-offset-table.err | 0 .../0023-claimed-vs-observed-offset-table.out | 9 + ...0023-claimed-vs-observed-offset-table.prov | 7 + .../0023-claimed-vs-observed-offset-table.rc | 1 + ...0024-baseline-4661-span-reconciliation.cmd | 1 + ...0024-baseline-4661-span-reconciliation.err | 0 ...0024-baseline-4661-span-reconciliation.out | 4 + ...024-baseline-4661-span-reconciliation.prov | 7 + .../0024-baseline-4661-span-reconciliation.rc | 1 + .../0025-FINAL-verify-manifest-all-cycles.cmd | 1 + .../0025-FINAL-verify-manifest-all-cycles.err | 0 .../0025-FINAL-verify-manifest-all-cycles.out | 13 + ...0025-FINAL-verify-manifest-all-cycles.prov | 7 + .../0025-FINAL-verify-manifest-all-cycles.rc | 1 + ...inimal-reproducer-control-char-literal.cmd | 1 + ...inimal-reproducer-control-char-literal.err | 0 ...inimal-reproducer-control-char-literal.out | 9 + ...nimal-reproducer-control-char-literal.prov | 7 + ...minimal-reproducer-control-char-literal.rc | 1 + ...02-control-char-vs-empty-and-printable.cmd | 1 + ...02-control-char-vs-empty-and-printable.err | 0 ...02-control-char-vs-empty-and-printable.out | 4 + ...2-control-char-vs-empty-and-printable.prov | 7 + ...002-control-char-vs-empty-and-printable.rc | 1 + ...3-real-file-nondeterminism-arbor-parse.cmd | 1 + ...3-real-file-nondeterminism-arbor-parse.err | 0 ...3-real-file-nondeterminism-arbor-parse.out | 17 + ...-real-file-nondeterminism-arbor-parse.prov | 7 + ...03-real-file-nondeterminism-arbor-parse.rc | 1 + .../CLAIMS.md | 102 + .../MANIFEST.tsv | 4 + .../RUN.env | 6 + ...07-P3-control-binaries-wrapper-content.cmd | 7 + ...07-P3-control-binaries-wrapper-content.err | 2 + ...07-P3-control-binaries-wrapper-content.out | 1 + ...7-P3-control-binaries-wrapper-content.prov | 7 + ...207-P3-control-binaries-wrapper-content.rc | 1 + ...DO-P3-control-binaries-wrapper-content.cmd | 1 + ...DO-P3-control-binaries-wrapper-content.err | 0 ...DO-P3-control-binaries-wrapper-content.out | 7 + ...O-P3-control-binaries-wrapper-content.prov | 7 + ...EDO-P3-control-binaries-wrapper-content.rc | 1 + .../0215-b40754f-tree-vs-285166c.cmd | 8 + .../0215-b40754f-tree-vs-285166c.err | 0 .../0215-b40754f-tree-vs-285166c.out | 16 + .../0215-b40754f-tree-vs-285166c.prov | 7 + .../0215-b40754f-tree-vs-285166c.rc | 1 + ...3-sec6-figures-source-and-rederivation.cmd | 1 + ...3-sec6-figures-source-and-rederivation.err | 0 ...3-sec6-figures-source-and-rederivation.out | 237 + ...-sec6-figures-source-and-rederivation.prov | 7 + ...23-sec6-figures-source-and-rederivation.rc | 1 + .../0224-harness-tally-arithmetic-285166c.cmd | 1 + .../0224-harness-tally-arithmetic-285166c.err | 0 .../0224-harness-tally-arithmetic-285166c.out | 25 + ...0224-harness-tally-arithmetic-285166c.prov | 7 + .../0224-harness-tally-arithmetic-285166c.rc | 1 + .../0225-REDO-harness-tally-history.cmd | 1 + .../0225-REDO-harness-tally-history.err | 0 .../0225-REDO-harness-tally-history.out | 7 + .../0225-REDO-harness-tally-history.prov | 7 + .../0225-REDO-harness-tally-history.rc | 1 + .../03-the-wrapper-was-conditional/CLAIMS.md | 394 + .../04-c-has-no-closure-syntax/CLAIMS.md | 196 + .../0276-hottest-functions-measured-06a.cmd | 21 + .../0276-hottest-functions-measured-06a.err | 0 .../0276-hottest-functions-measured-06a.out | 26 + .../0276-hottest-functions-measured-06a.prov | 7 + .../0276-hottest-functions-measured-06a.rc | 1 + ...296-RECONSTRUCTED-seam-cost-timing-06a.cmd | 1 + ...296-RECONSTRUCTED-seam-cost-timing-06a.err | 0 ...296-RECONSTRUCTED-seam-cost-timing-06a.out | 22 + ...96-RECONSTRUCTED-seam-cost-timing-06a.prov | 7 + ...0296-RECONSTRUCTED-seam-cost-timing-06a.rc | 1 + ...297-RECONSTRUCTED-free-when-unused-06a.cmd | 1 + ...297-RECONSTRUCTED-free-when-unused-06a.err | 0 ...297-RECONSTRUCTED-free-when-unused-06a.out | 11 + ...97-RECONSTRUCTED-free-when-unused-06a.prov | 7 + ...0297-RECONSTRUCTED-free-when-unused-06a.rc | 1 + ...REDO-free-when-unused-clean-binary-06a.cmd | 1 + ...REDO-free-when-unused-clean-binary-06a.err | 0 ...REDO-free-when-unused-clean-binary-06a.out | 11 + ...EDO-free-when-unused-clean-binary-06a.prov | 7 + ...-REDO-free-when-unused-clean-binary-06a.rc | 1 + .../0299-exit-phase-bindability-check.cmd | 26 + .../0299-exit-phase-bindability-check.err | 0 .../0299-exit-phase-bindability-check.out | 31 + .../0299-exit-phase-bindability-check.prov | 7 + .../0299-exit-phase-bindability-check.rc | 1 + ...4-RECONSTRUCTED-exit-binding-probe-06b.cmd | 1 + ...4-RECONSTRUCTED-exit-binding-probe-06b.err | 0 ...4-RECONSTRUCTED-exit-binding-probe-06b.out | 12 + ...-RECONSTRUCTED-exit-binding-probe-06b.prov | 7 + ...24-RECONSTRUCTED-exit-binding-probe-06b.rc | 1 + ...5-RECONSTRUCTED-exit-binding-probe-06e.cmd | 1 + ...5-RECONSTRUCTED-exit-binding-probe-06e.err | 0 ...5-RECONSTRUCTED-exit-binding-probe-06e.out | 12 + ...-RECONSTRUCTED-exit-binding-probe-06e.prov | 7 + ...25-RECONSTRUCTED-exit-binding-probe-06e.rc | 1 + .../0326-strip-table-verification-28d19da.cmd | 23 + .../0326-strip-table-verification-28d19da.err | 0 .../0326-strip-table-verification-28d19da.out | 140 + ...0326-strip-table-verification-28d19da.prov | 7 + .../0326-strip-table-verification-28d19da.rc | 1 + .../0348-residual-kind-references-28d19da.cmd | 16 + .../0348-residual-kind-references-28d19da.err | 0 .../0348-residual-kind-references-28d19da.out | 45 + ...0348-residual-kind-references-28d19da.prov | 7 + .../0348-residual-kind-references-28d19da.rc | 1 + .../0363-fn-count-vs-seam-sites-06a.cmd | 14 + .../0363-fn-count-vs-seam-sites-06a.err | 0 .../0363-fn-count-vs-seam-sites-06a.out | 9 + .../0363-fn-count-vs-seam-sites-06a.prov | 7 + .../0363-fn-count-vs-seam-sites-06a.rc | 1 + .../CLAIMS.md | 379 + ...39-thunk-noargs-and-seam-caller-search.cmd | 1 + ...39-thunk-noargs-and-seam-caller-search.err | 0 ...39-thunk-noargs-and-seam-caller-search.out | 28 + ...9-thunk-noargs-and-seam-caller-search.prov | 7 + ...039-thunk-noargs-and-seam-caller-search.rc | 1 + ...-seam-caller-and-wrap-assertion-search.cmd | 1 + ...-seam-caller-and-wrap-assertion-search.err | 0 ...-seam-caller-and-wrap-assertion-search.out | 93 + ...seam-caller-and-wrap-assertion-search.prov | 7 + ...O-seam-caller-and-wrap-assertion-search.rc | 1 + ...0041-native-compiler-tests-gen2-binary.cmd | 1 + ...0041-native-compiler-tests-gen2-binary.err | 4 + ...0041-native-compiler-tests-gen2-binary.out | 5 + ...041-native-compiler-tests-gen2-binary.prov | 7 + .../0041-native-compiler-tests-gen2-binary.rc | 1 + ...2-integration-seam_binding-gen2-binary.cmd | 1 + ...2-integration-seam_binding-gen2-binary.err | 0 ...2-integration-seam_binding-gen2-binary.out | 9 + ...-integration-seam_binding-gen2-binary.prov | 7 + ...42-integration-seam_binding-gen2-binary.rc | 1 + ...XT-parent-native-tests-and-integration.cmd | 1 + ...XT-parent-native-tests-and-integration.err | 0 ...XT-parent-native-tests-and-integration.out | 19 + ...T-parent-native-tests-and-integration.prov | 7 + ...EXT-parent-native-tests-and-integration.rc | 1 + .../0044-codegen-diff-parent-to-commit.cmd | 1 + .../0044-codegen-diff-parent-to-commit.err | 0 .../0044-codegen-diff-parent-to-commit.out | 173 + .../0044-codegen-diff-parent-to-commit.prov | 7 + .../0044-codegen-diff-parent-to-commit.rc | 1 + ...45-wraps_body-scanner-branch-at-parent.cmd | 1 + ...45-wraps_body-scanner-branch-at-parent.err | 0 ...45-wraps_body-scanner-branch-at-parent.out | 41 + ...5-wraps_body-scanner-branch-at-parent.prov | 7 + ...045-wraps_body-scanner-branch-at-parent.rc | 1 + .../0046-seam_binding-tally-history.cmd | 1 + .../0046-seam_binding-tally-history.err | 0 .../0046-seam_binding-tally-history.out | 30 + .../0046-seam_binding-tally-history.prov | 7 + .../0046-seam_binding-tally-history.rc | 1 + .../07-invocation-is-not-composable/CLAIMS.md | 257 + .../parent07.sh | 40 + .../probe07.sh | 70 + .../thunk07.sh | 59 + .../thunk07b.sh | 44 + .../07-invocation-is-not-composable/time07.sh | 51 + .../time07b.sh | 45 + .../08-the-emitter-adjudicates/CLAIMS.md | 228 + ...-REDO-arity-coverage-probe-both-sides.prov | 7 + ...47-REDO-arity-coverage-probe-both-sides.rc | 1 + .../0048-checker-defects-and-mechanism.cmd | 1 + .../0048-checker-defects-and-mechanism.err | 0 .../0048-checker-defects-and-mechanism.out | 88 + .../0048-checker-defects-and-mechanism.prov | 7 + .../0048-checker-defects-and-mechanism.rc | 1 + ...049-coverage-gap-and-orphaned-comments.cmd | 1 + ...049-coverage-gap-and-orphaned-comments.err | 0 ...049-coverage-gap-and-orphaned-comments.out | 302 + ...49-coverage-gap-and-orphaned-comments.prov | 7 + ...0049-coverage-gap-and-orphaned-comments.rc | 1 + .../0050-shipped-parser-vs-correct-parser.cmd | 1 + .../0050-shipped-parser-vs-correct-parser.err | 1 + .../0050-shipped-parser-vs-correct-parser.out | 66 + ...0050-shipped-parser-vs-correct-parser.prov | 7 + .../0050-shipped-parser-vs-correct-parser.rc | 1 + .../10-a-second-copy-of-the-header/CLAIMS.md | 245 + .../0012-codegen-lines-P3-clean-tree.cmd | 1 + .../0012-codegen-lines-P3-clean-tree.err | 0 .../0012-codegen-lines-P3-clean-tree.out | 3 + .../0012-codegen-lines-P3-clean-tree.prov | 7 + .../0012-codegen-lines-P3-clean-tree.rc | 1 + ...-signatures-name-recount-P5-clean-tree.cmd | 1 + ...-signatures-name-recount-P5-clean-tree.err | 0 ...-signatures-name-recount-P5-clean-tree.out | 6 + ...signatures-name-recount-P5-clean-tree.prov | 7 + ...3-signatures-name-recount-P5-clean-tree.rc | 1 + ...codegen-newline-termination-clean-tree.cmd | 1 + ...codegen-newline-termination-clean-tree.err | 0 ...codegen-newline-termination-clean-tree.out | 2 + ...odegen-newline-termination-clean-tree.prov | 7 + ...-codegen-newline-termination-clean-tree.rc | 1 + .../11-one-type-erases-the-return/CLAIMS.md | 104 + .../0011-codegen-lines-P4-clean-tree.cmd | 1 + .../0011-codegen-lines-P4-clean-tree.err | 0 .../0011-codegen-lines-P4-clean-tree.out | 7 + .../0011-codegen-lines-P4-clean-tree.prov | 7 + .../0011-codegen-lines-P4-clean-tree.rc | 1 + ...2-temporal-rel-rule-recount-clean-tree.cmd | 1 + ...2-temporal-rel-rule-recount-clean-tree.err | 0 ...2-temporal-rel-rule-recount-clean-tree.out | 4 + ...-temporal-rel-rule-recount-clean-tree.prov | 7 + ...12-temporal-rel-rule-recount-clean-tree.rc | 1 + .../CLAIMS.md | 97 + .../0021-head-build-gen1.cmd | 1 + .../0021-head-build-gen1.err | 4 + .../0021-head-build-gen1.out | 1 + .../0021-head-build-gen1.prov | 7 + .../0021-head-build-gen1.rc | 1 + .../0022-head-emit-c-str-len-add.cmd | 1 + .../0022-head-emit-c-str-len-add.err | 0 .../0022-head-emit-c-str-len-add.out | 14 + .../0022-head-emit-c-str-len-add.prov | 7 + .../0022-head-emit-c-str-len-add.rc | 1 + .../0023-head-cc.cmd | 1 + .../0023-head-cc.err | 4 + .../0023-head-cc.out | 1 + .../0023-head-cc.prov | 7 + .../0023-head-cc.rc | 1 + .../0024-head-program-run-TODAY.cmd | 1 + .../0024-head-program-run-TODAY.err | 0 .../0024-head-program-run-TODAY.out | 1 + .../0024-head-program-run-TODAY.prov | 7 + .../0024-head-program-run-TODAY.rc | 1 + .../0025-codegen-lines-P4-clean-tree.cmd | 1 + .../0025-codegen-lines-P4-clean-tree.err | 0 .../0025-codegen-lines-P4-clean-tree.out | 6 + .../0025-codegen-lines-P4-clean-tree.prov | 7 + .../0025-codegen-lines-P4-clean-tree.rc | 1 + .../0026-is-int-call-recount-clean-tree.cmd | 1 + .../0026-is-int-call-recount-clean-tree.err | 0 .../0026-is-int-call-recount-clean-tree.out | 4 + .../0026-is-int-call-recount-clean-tree.prov | 7 + .../0026-is-int-call-recount-clean-tree.rc | 1 + .../13-thirty-five-return-types/CLAIMS.md | 153 + .../0016-head-inert-keyword-TODAY.cmd | 1 + .../0016-head-inert-keyword-TODAY.err | 0 .../0016-head-inert-keyword-TODAY.out | 1 + .../0016-head-inert-keyword-TODAY.prov | 7 + .../0016-head-inert-keyword-TODAY.rc | 1 + .../CLAIMS.md | 115 + .../cycles/15-no-namespacing-at-all/CLAIMS.md | 197 + .../0011-post-native-suite.prov | 7 + .../0011-post-native-suite.rc | 1 + .../0012-post-integration-harnesses.cmd | 1 + .../0012-post-integration-harnesses.err | 0 .../0012-post-integration-harnesses.out | 8 + .../0012-post-integration-harnesses.prov | 7 + .../0012-post-integration-harnesses.rc | 1 + .../0013-post-compiler-self-check.cmd | 1 + .../0013-post-compiler-self-check.err | 0 .../0013-post-compiler-self-check.out | 2 + .../0013-post-compiler-self-check.prov | 7 + .../0013-post-compiler-self-check.rc | 1 + .../0014-P1-stride-sites-clean-tree.cmd | 1 + .../0014-P1-stride-sites-clean-tree.err | 0 .../0014-P1-stride-sites-clean-tree.out | 8 + .../0014-P1-stride-sites-clean-tree.prov | 7 + .../0014-P1-stride-sites-clean-tree.rc | 1 + ...5-P1-stride-sites-all-files-clean-tree.cmd | 1 + ...5-P1-stride-sites-all-files-clean-tree.err | 0 ...5-P1-stride-sites-all-files-clean-tree.out | 20 + ...-P1-stride-sites-all-files-clean-tree.prov | 7 + ...15-P1-stride-sites-all-files-clean-tree.rc | 1 + .../16-tokens-carry-no-position/CLAIMS.md | 168 + .../0001-build-gen1-pre.cmd | 1 + .../0001-build-gen1-pre.err | 4 + .../0001-build-gen1-pre.out | 1 + .../0001-build-gen1-pre.prov | 7 + .../0001-build-gen1-pre.rc | 1 + .../0002-build-gen1-post.cmd | 1 + .../0002-build-gen1-post.err | 4 + .../0002-build-gen1-post.out | 1 + .../0002-build-gen1-post.prov | 7 + .../0002-build-gen1-post.rc | 1 + .../0003-pre-emit-c-int_annotated_string.cmd | 1 + .../0003-pre-emit-c-int_annotated_string.err | 0 .../0003-pre-emit-c-int_annotated_string.out | 12 + .../0003-pre-emit-c-int_annotated_string.prov | 7 + .../0003-pre-emit-c-int_annotated_string.rc | 1 + .../0004-pre-emit-c-string_annotated_int.cmd | 1 + .../0004-pre-emit-c-string_annotated_int.err | 0 .../0004-pre-emit-c-string_annotated_int.out | 12 + .../0004-pre-emit-c-string_annotated_int.prov | 7 + .../0004-pre-emit-c-string_annotated_int.rc | 1 + .../0005-pre-cc-h1-clean.cmd | 1 + .../0005-pre-cc-h1-clean.err | 4 + .../0005-pre-cc-h1-clean.out | 1 + .../0005-pre-cc-h1-clean.prov | 7 + .../0005-pre-cc-h1-clean.rc | 1 + .../0006-pre-cc-h2-clean.cmd | 1 + .../0006-pre-cc-h2-clean.err | 4 + .../0006-pre-cc-h2-clean.out | 1 + .../0006-pre-cc-h2-clean.prov | 7 + .../0006-pre-cc-h2-clean.rc | 1 + .../0007-pre-run-int-annotated-string.cmd | 1 + .../0007-pre-run-int-annotated-string.err | 0 .../0007-pre-run-int-annotated-string.out | 1 + .../0007-pre-run-int-annotated-string.prov | 7 + .../0007-pre-run-int-annotated-string.rc | 1 + .../0008-pre-run-string-annotated-int.cmd | 1 + .../0008-pre-run-string-annotated-int.err | 0 .../0008-pre-run-string-annotated-int.out | 0 .../0008-pre-run-string-annotated-int.prov | 7 + .../0008-pre-run-string-annotated-int.rc | 1 + ...0009-pre-int-annotated-string-ten-runs.cmd | 1 + ...0009-pre-int-annotated-string-ten-runs.err | 0 ...0009-pre-int-annotated-string-ten-runs.out | 12 + ...009-pre-int-annotated-string-ten-runs.prov | 7 + .../0009-pre-int-annotated-string-ten-runs.rc | 1 + ...0-post-annotation-checker-catches-both.cmd | 1 + ...0-post-annotation-checker-catches-both.err | 0 ...0-post-annotation-checker-catches-both.out | 6 + ...-post-annotation-checker-catches-both.prov | 7 + ...10-post-annotation-checker-catches-both.rc | 1 + .../0011-post-annotation-query-harness.cmd | 1 + .../0011-post-annotation-query-harness.err | 0 .../0011-post-annotation-query-harness.out | 7 + .../0011-post-annotation-query-harness.prov | 7 + .../0011-post-annotation-query-harness.rc | 1 + .../0012-post-fixpoint.cmd | 1 + .../0012-post-fixpoint.err | 4 + .../0012-post-fixpoint.out | 1 + .../0012-post-fixpoint.prov | 7 + .../0012-post-fixpoint.rc | 1 + .../0013-post-native-suite.cmd | 1 + .../0013-post-native-suite.err | 4 + .../0013-post-native-suite.out | 107 + .../0013-post-native-suite.prov | 7 + .../0013-post-native-suite.rc | 1 + .../0014-post-incomplete-only-literals.cmd | 1 + .../0014-post-incomplete-only-literals.err | 0 .../0014-post-incomplete-only-literals.out | 2 + .../0014-post-incomplete-only-literals.prov | 7 + .../0014-post-incomplete-only-literals.rc | 1 + .../0015-branch-status-not-merged-claim.cmd | 1 + .../0015-branch-status-not-merged-claim.err | 0 .../0015-branch-status-not-merged-claim.out | 6 + .../0015-branch-status-not-merged-claim.prov | 7 + .../0015-branch-status-not-merged-claim.rc | 1 + ...16-head-run-int-annotated-string-TODAY.cmd | 1 + ...16-head-run-int-annotated-string-TODAY.err | 0 ...16-head-run-int-annotated-string-TODAY.out | 1 + ...6-head-run-int-annotated-string-TODAY.prov | 7 + ...016-head-run-int-annotated-string-TODAY.rc | 1 + ...17-head-run-string-annotated-int-TODAY.cmd | 1 + ...17-head-run-string-annotated-int-TODAY.err | 0 ...17-head-run-string-annotated-int-TODAY.out | 0 ...7-head-run-string-annotated-int-TODAY.prov | 7 + ...017-head-run-string-annotated-int-TODAY.rc | 1 + .../CLAIMS.md | 151 + .../MANIFEST.tsv | 18 + .../17-annotations-are-never-checked/RUN.env | 6 + .../fixtures/int_annotated_string.el | 4 + .../fixtures/string_annotated_int.el | 4 + .../0001-build-gen1-511db252.cmd | 1 + .../0001-build-gen1-511db252.err | 4 + .../0001-build-gen1-511db252.out | 1 + .../0001-build-gen1-511db252.prov | 7 + .../0001-build-gen1-511db252.rc | 1 + ...0002-async-future-harness-6-assertions.cmd | 1 + ...0002-async-future-harness-6-assertions.err | 0 ...0002-async-future-harness-6-assertions.out | 8 + ...002-async-future-harness-6-assertions.prov | 7 + .../0002-async-future-harness-6-assertions.rc | 1 + .../0003-P1-five-magic-tags.cmd | 1 + .../0003-P1-five-magic-tags.err | 0 .../0003-P1-five-magic-tags.out | 8 + .../0003-P1-five-magic-tags.prov | 7 + .../0003-P1-five-magic-tags.rc | 1 + ...4-P4-zero-compiler-changes-unbound-run.cmd | 1 + ...4-P4-zero-compiler-changes-unbound-run.err | 0 ...4-P4-zero-compiler-changes-unbound-run.out | 2 + ...-P4-zero-compiler-changes-unbound-run.prov | 7 + ...04-P4-zero-compiler-changes-unbound-run.rc | 1 + .../0005-P2P3-bound-run-interleaving.cmd | 1 + .../0005-P2P3-bound-run-interleaving.err | 0 .../0005-P2P3-bound-run-interleaving.out | 5 + .../0005-P2P3-bound-run-interleaving.prov | 7 + .../0005-P2P3-bound-run-interleaving.rc | 1 + .../18-async-half-expressible/CLAIMS.md | 135 + .../18-async-half-expressible/MANIFEST.tsv | 6 + .../cycles/18-async-half-expressible/RUN.env | 6 + .../fixtures/probe.el | 12 + .../0001-P1-looks-like-heap-obj-is-static.cmd | 1 + .../0001-P1-looks-like-heap-obj-is-static.err | 0 .../0001-P1-looks-like-heap-obj-is-static.out | 4 + ...0001-P1-looks-like-heap-obj-is-static.prov | 7 + .../0001-P1-looks-like-heap-obj-is-static.rc | 1 + .../0002-P2P3-four-tagged-checks.cmd | 1 + .../0002-P2P3-four-tagged-checks.err | 0 .../0002-P2P3-four-tagged-checks.out | 28 + .../0002-P2P3-four-tagged-checks.prov | 7 + .../0002-P2P3-four-tagged-checks.rc | 1 + .../0003-pre-emit-c-sha256-int.cmd | 1 + .../0003-pre-emit-c-sha256-int.err | 0 .../0003-pre-emit-c-sha256-int.out | 11 + .../0003-pre-emit-c-sha256-int.prov | 7 + .../0003-pre-emit-c-sha256-int.rc | 1 + .../0004-pre-cc-compiles-clean.cmd | 1 + .../0004-pre-cc-compiles-clean.err | 4 + .../0004-pre-cc-compiles-clean.out | 1 + .../0004-pre-cc-compiles-clean.prov | 7 + .../0004-pre-cc-compiles-clean.rc | 1 + .../0005-P6-sha256-hex-50000-exit-code.cmd | 1 + .../0005-P6-sha256-hex-50000-exit-code.err | 0 .../0005-P6-sha256-hex-50000-exit-code.out | 0 .../0005-P6-sha256-hex-50000-exit-code.prov | 7 + .../0005-P6-sha256-hex-50000-exit-code.rc | 1 + ...nt-defect-4-control-pipe-hides-sigsegv.cmd | 1 + ...nt-defect-4-control-pipe-hides-sigsegv.err | 1 + ...nt-defect-4-control-pipe-hides-sigsegv.out | 2 + ...t-defect-4-control-pipe-hides-sigsegv.prov | 7 + ...ent-defect-4-control-pipe-hides-sigsegv.rc | 1 + .../0007-post-el-tagged-exported.cmd | 1 + .../0007-post-el-tagged-exported.err | 0 .../0007-post-el-tagged-exported.out | 1 + .../0007-post-el-tagged-exported.prov | 7 + .../0007-post-el-tagged-exported.rc | 1 + .../0008-post-build-gen1-9a6c161.cmd | 1 + .../0008-post-build-gen1-9a6c161.err | 4 + .../0008-post-build-gen1-9a6c161.out | 1 + .../0008-post-build-gen1-9a6c161.prov | 7 + .../0008-post-build-gen1-9a6c161.rc | 1 + .../0009-post-emit-c-sha256-int.cmd | 1 + .../0009-post-emit-c-sha256-int.err | 0 .../0009-post-emit-c-sha256-int.out | 11 + .../0009-post-emit-c-sha256-int.prov | 7 + .../0009-post-emit-c-sha256-int.rc | 1 + .../0010-post-cc.cmd | 1 + .../0010-post-cc.err | 4 + .../0010-post-cc.out | 1 + .../0010-post-cc.prov | 7 + .../0010-post-cc.rc | 1 + ...t-sha256-hex-50000-no-longer-segfaults.cmd | 1 + ...t-sha256-hex-50000-no-longer-segfaults.err | 0 ...t-sha256-hex-50000-no-longer-segfaults.out | 1 + ...-sha256-hex-50000-no-longer-segfaults.prov | 7 + ...st-sha256-hex-50000-no-longer-segfaults.rc | 1 + .../0012-P9-legitimate-hash-unchanged.cmd | 1 + .../0012-P9-legitimate-hash-unchanged.err | 0 .../0012-P9-legitimate-hash-unchanged.out | 3 + .../0012-P9-legitimate-hash-unchanged.prov | 7 + .../0012-P9-legitimate-hash-unchanged.rc | 1 + .../0013-P11-fixpoint.cmd | 1 + .../0013-P11-fixpoint.err | 4 + .../0013-P11-fixpoint.out | 1 + .../0013-P11-fixpoint.prov | 7 + .../0013-P11-fixpoint.rc | 1 + .../0014-P11-native-suite.cmd | 1 + .../0014-P11-native-suite.err | 4 + .../0014-P11-native-suite.out | 107 + .../0014-P11-native-suite.prov | 7 + .../0014-P11-native-suite.rc | 1 + .../0015-P11-eight-integration-harnesses.cmd | 1 + .../0015-P11-eight-integration-harnesses.err | 0 .../0015-P11-eight-integration-harnesses.out | 9 + .../0015-P11-eight-integration-harnesses.prov | 7 + .../0015-P11-eight-integration-harnesses.rc | 1 + .../0016-P8-rederived-build.cmd | 1 + .../0016-P8-rederived-build.err | 4 + .../0016-P8-rederived-build.out | 1 + .../0016-P8-rederived-build.prov | 7 + .../0016-P8-rederived-build.rc | 1 + .../0017-P8-rederived-emit-c.cmd | 1 + .../0017-P8-rederived-emit-c.err | 0 .../0017-P8-rederived-emit-c.out | 11 + .../0017-P8-rederived-emit-c.prov | 7 + .../0017-P8-rederived-emit-c.rc | 1 + .../0018-P8-rederived-cc.cmd | 1 + .../0018-P8-rederived-cc.err | 4 + .../0018-P8-rederived-cc.out | 1 + .../0018-P8-rederived-cc.prov | 7 + .../0018-P8-rederived-cc.rc | 1 + .../0019-P8-rederived-still-segfaults.cmd | 1 + .../0019-P8-rederived-still-segfaults.err | 0 .../0019-P8-rederived-still-segfaults.out | 0 .../0019-P8-rederived-still-segfaults.prov | 7 + .../0019-P8-rederived-still-segfaults.rc | 1 + .../0020-head-sha256-hex-50000-TODAY.cmd | 1 + .../0020-head-sha256-hex-50000-TODAY.err | 0 .../0020-head-sha256-hex-50000-TODAY.out | 1 + .../0020-head-sha256-hex-50000-TODAY.prov | 7 + .../0020-head-sha256-hex-50000-TODAY.rc | 1 + .../19-a-convention-is-not-a-gate/CLAIMS.md | 182 + .../MANIFEST.tsv | 21 + .../19-a-convention-is-not-a-gate/RUN.env | 6 + .../fixtures/p8_intermediate.patch | 18 + .../fixtures/p8_reconstruct_intermediate.py | 30 + .../fixtures/sha256_hex_int.el | 3 + .../fixtures/sha256_hex_legit.el | 3 + .../ITERATION/0004-fixpoint-gen2-eq-gen3.cmd | 1 + .../ITERATION/0004-fixpoint-gen2-eq-gen3.err | 0 .../ITERATION/0004-fixpoint-gen2-eq-gen3.out | 5 + .../ITERATION/0004-fixpoint-gen2-eq-gen3.prov | 7 + .../ITERATION/0004-fixpoint-gen2-eq-gen3.rc | 1 + .../evidence/ITERATION/0005-native-suite.cmd | 1 + .../evidence/ITERATION/0005-native-suite.err | 0 .../evidence/ITERATION/0005-native-suite.out | 108 + .../evidence/ITERATION/0005-native-suite.prov | 7 + .../evidence/ITERATION/0005-native-suite.rc | 1 + .../0006-harness-annotation_query.cmd | 1 + .../0006-harness-annotation_query.err | 0 .../0006-harness-annotation_query.out | 7 + .../0006-harness-annotation_query.prov | 7 + .../0006-harness-annotation_query.rc | 1 + .../ITERATION/0007-harness-arity_query.cmd | 1 + .../ITERATION/0007-harness-arity_query.err | 0 .../ITERATION/0007-harness-arity_query.out | 9 + .../ITERATION/0007-harness-arity_query.prov | 7 + .../ITERATION/0007-harness-arity_query.rc | 1 + .../ITERATION/0008-harness-async_future.cmd | 1 + .../ITERATION/0008-harness-async_future.err | 0 .../ITERATION/0008-harness-async_future.out | 8 + .../ITERATION/0008-harness-async_future.prov | 7 + .../ITERATION/0008-harness-async_future.rc | 1 + .../0009-harness-capability_query.cmd | 1 + .../0009-harness-capability_query.err | 0 .../0009-harness-capability_query.out | 7 + .../0009-harness-capability_query.prov | 7 + .../0009-harness-capability_query.rc | 1 + .../0010-harness-definitions_query.cmd | 1 + .../0010-harness-definitions_query.err | 0 .../0010-harness-definitions_query.out | 8 + .../0010-harness-definitions_query.prov | 7 + .../0010-harness-definitions_query.rc | 1 + .../0011-harness-prohibition_query.cmd | 1 + .../0011-harness-prohibition_query.err | 0 .../0011-harness-prohibition_query.out | 6 + .../0011-harness-prohibition_query.prov | 7 + .../0011-harness-prohibition_query.rc | 1 + .../ITERATION/0012-harness-seam_binding.cmd | 1 + .../ITERATION/0012-harness-seam_binding.err | 0 .../ITERATION/0012-harness-seam_binding.out | 9 + .../ITERATION/0012-harness-seam_binding.prov | 7 + .../ITERATION/0012-harness-seam_binding.rc | 1 + .../ITERATION/0013-harness-seam_caller.cmd | 1 + .../ITERATION/0013-harness-seam_caller.err | 0 .../ITERATION/0013-harness-seam_caller.out | 7 + .../ITERATION/0013-harness-seam_caller.prov | 7 + .../ITERATION/0013-harness-seam_caller.rc | 1 + .../ITERATION/0014-harness-tagged_gate.cmd | 1 + .../ITERATION/0014-harness-tagged_gate.err | 0 .../ITERATION/0014-harness-tagged_gate.out | 12 + .../ITERATION/0014-harness-tagged_gate.prov | 7 + .../ITERATION/0014-harness-tagged_gate.rc | 1 + .../ITERATION/0015-harness-temporal_query.cmd | 1 + .../ITERATION/0015-harness-temporal_query.err | 0 .../ITERATION/0015-harness-temporal_query.out | 8 + .../0015-harness-temporal_query.prov | 7 + .../ITERATION/0015-harness-temporal_query.rc | 1 + .../0016-harness-temporal_signatures.cmd | 1 + .../0016-harness-temporal_signatures.err | 0 .../0016-harness-temporal_signatures.out | 6 + .../0016-harness-temporal_signatures.prov | 7 + .../0016-harness-temporal_signatures.rc | 1 + .../0017-harness-unguarded_deref.cmd | 1 + .../0017-harness-unguarded_deref.err | 0 .../0017-harness-unguarded_deref.out | 8 + .../0017-harness-unguarded_deref.prov | 7 + .../ITERATION/0017-harness-unguarded_deref.rc | 1 + .../ITERATION/0018-harness-units_as_data.cmd | 1 + .../ITERATION/0018-harness-units_as_data.err | 0 .../ITERATION/0018-harness-units_as_data.out | 8 + .../ITERATION/0018-harness-units_as_data.prov | 7 + .../ITERATION/0018-harness-units_as_data.rc | 1 + .../0019-codegen-total-vs-comment-vs-code.cmd | 1 + .../0019-codegen-total-vs-comment-vs-code.err | 0 .../0019-codegen-total-vs-comment-vs-code.out | 7 + ...0019-codegen-total-vs-comment-vs-code.prov | 7 + .../0019-codegen-total-vs-comment-vs-code.rc | 1 + .../0020-harness-assertion-tally.cmd | 1 + .../0020-harness-assertion-tally.err | 0 .../0020-harness-assertion-tally.out | 16 + .../0020-harness-assertion-tally.prov | 7 + .../ITERATION/0020-harness-assertion-tally.rc | 1 + .../0021-unguarded-deref-ratchet.cmd | 1 + .../0021-unguarded-deref-ratchet.err | 0 .../0021-unguarded-deref-ratchet.out | 14 + .../0021-unguarded-deref-ratchet.prov | 7 + .../ITERATION/0021-unguarded-deref-ratchet.rc | 1 + ...0022-measurement-window-lang-untouched.cmd | 1 + ...0022-measurement-window-lang-untouched.err | 0 ...0022-measurement-window-lang-untouched.out | 9 + ...022-measurement-window-lang-untouched.prov | 7 + .../0022-measurement-window-lang-untouched.rc | 1 + ...ROL-verify-manifest-over-all-v2-cycles.cmd | 1 + ...ROL-verify-manifest-over-all-v2-cycles.err | 0 ...ROL-verify-manifest-over-all-v2-cycles.out | 220 + ...OL-verify-manifest-over-all-v2-cycles.prov | 7 + ...TROL-verify-manifest-over-all-v2-cycles.rc | 1 + .../ITERATION/0024-evidence-inventory.cmd | 1 + .../ITERATION/0024-evidence-inventory.err | 0 .../ITERATION/0024-evidence-inventory.out | 12 + .../ITERATION/0024-evidence-inventory.prov | 7 + .../ITERATION/0024-evidence-inventory.rc | 1 + .../ITERATION/0025-zz-tree-state-at-end.cmd | 1 + .../ITERATION/0025-zz-tree-state-at-end.err | 0 .../ITERATION/0025-zz-tree-state-at-end.out | 472 ++ .../ITERATION/0025-zz-tree-state-at-end.prov | 7 + .../ITERATION/0025-zz-tree-state-at-end.rc | 1 + .../ITERATION/0026-zz-head-at-end.cmd | 1 + .../ITERATION/0026-zz-head-at-end.err | 0 .../ITERATION/0026-zz-head-at-end.out | 3 + .../ITERATION/0026-zz-head-at-end.prov | 7 + .../evidence/ITERATION/0026-zz-head-at-end.rc | 1 + .../experiments/evidence/ITERATION/CLAIMS.md | 207 + .../0001-00-BUGGY-pinned-commit.cmd | 1 + .../0001-00-BUGGY-pinned-commit.err | 0 .../0001-00-BUGGY-pinned-commit.out | 3 + .../0001-00-BUGGY-pinned-commit.prov | 7 + .../0001-00-BUGGY-pinned-commit.rc | 1 + .../0002-01-BUGGY-worktree-clean.cmd | 1 + .../0002-01-BUGGY-worktree-clean.err | 0 .../0002-01-BUGGY-worktree-clean.out | 3 + .../0002-01-BUGGY-worktree-clean.prov | 7 + .../0002-01-BUGGY-worktree-clean.rc | 1 + .../0003-02-BUGGY-el_input_len-source.cmd | 1 + .../0003-02-BUGGY-el_input_len-source.err | 0 .../0003-02-BUGGY-el_input_len-source.out | 11 + .../0003-02-BUGGY-el_input_len-source.prov | 7 + .../0003-02-BUGGY-el_input_len-source.rc | 1 + ...04-03-BUGGY-looks_like_heap_obj-source.cmd | 1 + ...04-03-BUGGY-looks_like_heap_obj-source.err | 0 ...04-03-BUGGY-looks_like_heap_obj-source.out | 11 + ...4-03-BUGGY-looks_like_heap_obj-source.prov | 7 + ...004-03-BUGGY-looks_like_heap_obj-source.rc | 1 + ...obe-source-20-literals-lengths-1-to-20.cmd | 1 + ...obe-source-20-literals-lengths-1-to-20.err | 0 ...obe-source-20-literals-lengths-1-to-20.out | 22 + ...be-source-20-literals-lengths-1-to-20.prov | 7 + ...robe-source-20-literals-lengths-1-to-20.rc | 1 + .../0006-05-BUGGY-RUN-20-literals.cmd | 1 + .../0006-05-BUGGY-RUN-20-literals.err | 0 .../0006-05-BUGGY-RUN-20-literals.out | 20 + .../0006-05-BUGGY-RUN-20-literals.prov | 7 + .../0006-05-BUGGY-RUN-20-literals.rc | 1 + .../0007-06-BUGGY-ORACLE-verdict.cmd | 1 + .../0007-06-BUGGY-ORACLE-verdict.err | 0 .../0007-06-BUGGY-ORACLE-verdict.out | 25 + .../0007-06-BUGGY-ORACLE-verdict.prov | 7 + .../0007-06-BUGGY-ORACLE-verdict.rc | 1 + ...7-ALIGNMENT-the-docs-own-five-literals.cmd | 1 + ...7-ALIGNMENT-the-docs-own-five-literals.err | 0 ...7-ALIGNMENT-the-docs-own-five-literals.out | 6 + ...-ALIGNMENT-the-docs-own-five-literals.prov | 7 + ...07-ALIGNMENT-the-docs-own-five-literals.rc | 1 + ...GNMENT-twenty-literals-lengths-1-to-20.cmd | 1 + ...GNMENT-twenty-literals-lengths-1-to-20.err | 0 ...GNMENT-twenty-literals-lengths-1-to-20.out | 21 + ...NMENT-twenty-literals-lengths-1-to-20.prov | 7 + ...IGNMENT-twenty-literals-lengths-1-to-20.rc | 1 + .../0010-09-alignment-probe-source-align5.cmd | 1 + .../0010-09-alignment-probe-source-align5.err | 0 .../0010-09-alignment-probe-source-align5.out | 15 + ...0010-09-alignment-probe-source-align5.prov | 7 + .../0010-09-alignment-probe-source-align5.rc | 1 + ...0011-10-alignment-probe-source-align20.cmd | 1 + ...0011-10-alignment-probe-source-align20.err | 0 ...0011-10-alignment-probe-source-align20.out | 14 + ...011-10-alignment-probe-source-align20.prov | 7 + .../0011-10-alignment-probe-source-align20.rc | 1 + .../0012-11-FIXED-pinned-commit.cmd | 1 + .../0012-11-FIXED-pinned-commit.err | 0 .../0012-11-FIXED-pinned-commit.out | 3 + .../0012-11-FIXED-pinned-commit.prov | 7 + .../0012-11-FIXED-pinned-commit.rc | 1 + .../0013-12-FIXED-el_input_len-source.cmd | 1 + .../0013-12-FIXED-el_input_len-source.err | 0 .../0013-12-FIXED-el_input_len-source.out | 23 + .../0013-12-FIXED-el_input_len-source.prov | 7 + .../0013-12-FIXED-el_input_len-source.rc | 1 + .../0014-13-FIXED-RUN-20-literals.cmd | 1 + .../0014-13-FIXED-RUN-20-literals.err | 0 .../0014-13-FIXED-RUN-20-literals.out | 20 + .../0014-13-FIXED-RUN-20-literals.prov | 7 + .../0014-13-FIXED-RUN-20-literals.rc | 1 + .../0015-14-FIXED-ORACLE-verdict.cmd | 1 + .../0015-14-FIXED-ORACLE-verdict.err | 0 .../0015-14-FIXED-ORACLE-verdict.out | 5 + .../0015-14-FIXED-ORACLE-verdict.prov | 7 + .../0015-14-FIXED-ORACLE-verdict.rc | 1 + ...-15-tagged_gate-assertion-count-BEFORE.cmd | 1 + ...-15-tagged_gate-assertion-count-BEFORE.err | 0 ...-15-tagged_gate-assertion-count-BEFORE.out | 1 + ...15-tagged_gate-assertion-count-BEFORE.prov | 7 + ...6-15-tagged_gate-assertion-count-BEFORE.rc | 1 + ...7-16-tagged_gate-assertion-count-AFTER.cmd | 1 + ...7-16-tagged_gate-assertion-count-AFTER.err | 0 ...7-16-tagged_gate-assertion-count-AFTER.out | 1 + ...-16-tagged_gate-assertion-count-AFTER.prov | 7 + ...17-16-tagged_gate-assertion-count-AFTER.rc | 1 + .../0018-17-tagged_gate-harness-run.cmd | 1 + .../0018-17-tagged_gate-harness-run.err | 0 .../0018-17-tagged_gate-harness-run.out | 12 + .../0018-17-tagged_gate-harness-run.prov | 7 + .../0018-17-tagged_gate-harness-run.rc | 1 + .../0019-18-P4-codegen-line-delta.cmd | 1 + .../0019-18-P4-codegen-line-delta.err | 0 .../0019-18-P4-codegen-line-delta.out | 2 + .../0019-18-P4-codegen-line-delta.prov | 7 + .../0019-18-P4-codegen-line-delta.rc | 1 + ...20-19-P2-names-moved-to-signatures-rel.cmd | 1 + ...20-19-P2-names-moved-to-signatures-rel.err | 0 ...20-19-P2-names-moved-to-signatures-rel.out | 3 + ...0-19-P2-names-moved-to-signatures-rel.prov | 7 + ...020-19-P2-names-moved-to-signatures-rel.rc | 1 + .../0021-20-P1-the-seven-tables-BEFORE.cmd | 1 + .../0021-20-P1-the-seven-tables-BEFORE.err | 0 .../0021-20-P1-the-seven-tables-BEFORE.out | 7 + .../0021-20-P1-the-seven-tables-BEFORE.prov | 7 + .../0021-20-P1-the-seven-tables-BEFORE.rc | 1 + .../0022-21-P1-the-seven-tables-AFTER.cmd | 1 + .../0022-21-P1-the-seven-tables-AFTER.err | 0 .../0022-21-P1-the-seven-tables-AFTER.out | 7 + .../0022-21-P1-the-seven-tables-AFTER.prov | 7 + .../0022-21-P1-the-seven-tables-AFTER.rc | 1 + .../0023-22-P8-BUGGY-5-fortnights-SIGSEGV.cmd | 1 + .../0023-22-P8-BUGGY-5-fortnights-SIGSEGV.err | 0 .../0023-22-P8-BUGGY-5-fortnights-SIGSEGV.out | 0 ...0023-22-P8-BUGGY-5-fortnights-SIGSEGV.prov | 7 + .../0023-22-P8-BUGGY-5-fortnights-SIGSEGV.rc | 1 + ...3-P8-BUGGY-emitted-C-is-a-field-access.cmd | 1 + ...3-P8-BUGGY-emitted-C-is-a-field-access.err | 0 ...3-P8-BUGGY-emitted-C-is-a-field-access.out | 1 + ...-P8-BUGGY-emitted-C-is-a-field-access.prov | 7 + ...23-P8-BUGGY-emitted-C-is-a-field-access.rc | 1 + .../0025-24-P10-BUGGY-legitimate-access.cmd | 1 + .../0025-24-P10-BUGGY-legitimate-access.err | 0 .../0025-24-P10-BUGGY-legitimate-access.out | 2 + .../0025-24-P10-BUGGY-legitimate-access.prov | 7 + .../0025-24-P10-BUGGY-legitimate-access.rc | 1 + ...0026-25-P9-FIXED-5-fortnights-survives.cmd | 1 + ...0026-25-P9-FIXED-5-fortnights-survives.err | 0 ...0026-25-P9-FIXED-5-fortnights-survives.out | 1 + ...026-25-P9-FIXED-5-fortnights-survives.prov | 7 + .../0026-25-P9-FIXED-5-fortnights-survives.rc | 1 + ...P10-FIXED-legitimate-access-unaffected.cmd | 1 + ...P10-FIXED-legitimate-access-unaffected.err | 0 ...P10-FIXED-legitimate-access-unaffected.out | 2 + ...10-FIXED-legitimate-access-unaffected.prov | 7 + ...-P10-FIXED-legitimate-access-unaffected.rc | 1 + ...028-27-P9-P11-as_map-and-as_list-gates.cmd | 1 + ...028-27-P9-P11-as_map-and-as_list-gates.err | 0 ...028-27-P9-P11-as_map-and-as_list-gates.out | 25 + ...28-27-P9-P11-as_map-and-as_list-gates.prov | 7 + ...0028-27-P9-P11-as_map-and-as_list-gates.rc | 1 + ...9-28-P5-fixpoint-and-suites-at-abb0ab4.cmd | 1 + ...9-28-P5-fixpoint-and-suites-at-abb0ab4.err | 1 + ...9-28-P5-fixpoint-and-suites-at-abb0ab4.out | 0 ...-28-P5-fixpoint-and-suites-at-abb0ab4.prov | 7 + ...29-28-P5-fixpoint-and-suites-at-abb0ab4.rc | 1 + ...-29-verify-sh-did-not-exist-at-abb0ab4.cmd | 1 + ...-29-verify-sh-did-not-exist-at-abb0ab4.err | 0 ...-29-verify-sh-did-not-exist-at-abb0ab4.out | 6 + ...29-verify-sh-did-not-exist-at-abb0ab4.prov | 7 + ...0-29-verify-sh-did-not-exist-at-abb0ab4.rc | 1 + ...30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.cmd | 1 + ...30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.err | 0 ...30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.out | 3 + ...0-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.prov | 7 + ...-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.rc | 1 + .../0032-31-P5-NATIVE-SUITE-at-abb0ab4.cmd | 1 + .../0032-31-P5-NATIVE-SUITE-at-abb0ab4.err | 0 .../0032-31-P5-NATIVE-SUITE-at-abb0ab4.out | 108 + .../0032-31-P5-NATIVE-SUITE-at-abb0ab4.prov | 7 + .../0032-31-P5-NATIVE-SUITE-at-abb0ab4.rc | 1 + .../0033-32-P5-ALL-HARNESSES-at-abb0ab4.cmd | 1 + .../0033-32-P5-ALL-HARNESSES-at-abb0ab4.err | 0 .../0033-32-P5-ALL-HARNESSES-at-abb0ab4.out | 12 + .../0033-32-P5-ALL-HARNESSES-at-abb0ab4.prov | 7 + .../0033-32-P5-ALL-HARNESSES-at-abb0ab4.rc | 1 + .../CLAIMS.md | 140 + .../MANIFEST.tsv | 34 + .../RUN.env | 6 + .../instruments/run-oracle.sh | 6 + .../instruments/verify-hashes.py | 31 + ...0032-31-AUDIT-unbound-nothing-reported.cmd | 1 + ...0032-31-AUDIT-unbound-nothing-reported.err | 0 ...0032-31-AUDIT-unbound-nothing-reported.out | 1 + ...032-31-AUDIT-unbound-nothing-reported.prov | 7 + .../0032-31-AUDIT-unbound-nothing-reported.rc | 1 + ...3-32-AUDIT-bound-the-caller-is-visible.cmd | 1 + ...3-32-AUDIT-bound-the-caller-is-visible.err | 0 ...3-32-AUDIT-bound-the-caller-is-visible.out | 3 + ...-32-AUDIT-bound-the-caller-is-visible.prov | 7 + ...33-32-AUDIT-bound-the-caller-is-visible.rc | 1 + ...-33-the-harness-assertion-greps-SOURCE.cmd | 1 + ...-33-the-harness-assertion-greps-SOURCE.err | 0 ...-33-the-harness-assertion-greps-SOURCE.out | 7 + ...33-the-harness-assertion-greps-SOURCE.prov | 7 + ...4-33-the-harness-assertion-greps-SOURCE.rc | 1 + ...ECT-baseline-grep-count-and-binary-sha.cmd | 1 + ...ECT-baseline-grep-count-and-binary-sha.err | 0 ...ECT-baseline-grep-count-and-binary-sha.out | 3 + ...CT-baseline-grep-count-and-binary-sha.prov | 7 + ...NECT-baseline-grep-count-and-binary-sha.rc | 1 + ...-35-DISCONNECT-add-a-COMMENT-to-source.cmd | 1 + ...-35-DISCONNECT-add-a-COMMENT-to-source.err | 0 ...-35-DISCONNECT-add-a-COMMENT-to-source.out | 3 + ...35-DISCONNECT-add-a-COMMENT-to-source.prov | 7 + ...6-35-DISCONNECT-add-a-COMMENT-to-source.rc | 1 + ...CONNECT-harness-now-FAILS-on-a-comment.cmd | 1 + ...CONNECT-harness-now-FAILS-on-a-comment.err | 0 ...CONNECT-harness-now-FAILS-on-a-comment.out | 9 + ...ONNECT-harness-now-FAILS-on-a-comment.prov | 7 + ...SCONNECT-harness-now-FAILS-on-a-comment.rc | 1 + .../0038-37-DISCONNECT-revert-the-comment.cmd | 1 + .../0038-37-DISCONNECT-revert-the-comment.err | 0 .../0038-37-DISCONNECT-revert-the-comment.out | 1 + ...0038-37-DISCONNECT-revert-the-comment.prov | 7 + .../0038-37-DISCONNECT-revert-the-comment.rc | 1 + ...38-defect11-arity-assertion-BEFORE-503.cmd | 1 + ...38-defect11-arity-assertion-BEFORE-503.err | 0 ...38-defect11-arity-assertion-BEFORE-503.out | 2 + ...8-defect11-arity-assertion-BEFORE-503.prov | 7 + ...-38-defect11-arity-assertion-BEFORE-503.rc | 1 + ...efect11-arity-assertion-AFTER-property.cmd | 1 + ...efect11-arity-assertion-AFTER-property.err | 0 ...efect11-arity-assertion-AFTER-property.out | 2 + ...fect11-arity-assertion-AFTER-property.prov | 7 + ...defect11-arity-assertion-AFTER-property.rc | 1 + .../0041-40-worktree-clean-at-end.cmd | 1 + .../0041-40-worktree-clean-at-end.err | 0 .../0041-40-worktree-clean-at-end.out | 3 + .../0041-40-worktree-clean-at-end.prov | 7 + .../0041-40-worktree-clean-at-end.rc | 1 + .../07-the-caller-was-already-there/CLAIMS.md | 176 + engram/dist/engram | Bin 3558696 -> 0 bytes engram/dist/engram.c | 561 -- engram/docs/LOVE.md | 70 + lang/dist/elc-bootstrap.c | 4793 ------------ lang/dist/elc-new.c | 6699 ----------------- lang/dist/platform/el_runtime.js | 1049 --- lang/dist/platform/elb | Bin 212432 -> 0 bytes lang/dist/platform/elb-darwin-arm64 | Bin 324376 -> 0 bytes lang/dist/platform/elb-linux-amd64 | Bin 199520 -> 0 bytes lang/dist/platform/elc | Bin 949160 -> 0 bytes lang/dist/platform/elc-asan | Bin 705496 -> 0 bytes .../elc-asan.dSYM/Contents/Info.plist | 20 - .../Contents/Resources/DWARF/elc-asan | Bin 376196 -> 0 bytes .../Relocations/aarch64/elc-asan.yml | 5 - lang/dist/platform/elc-darwin-arm64 | Bin 415016 -> 0 bytes lang/dist/platform/elc-linux-amd64 | Bin 282480 -> 0 bytes .../dist/platform/elc.20260502-0130-self-host | Bin 355544 -> 0 bytes .../dist/platform/elc.20260502-1104-self-host | Bin 355752 -> 0 bytes .../dist/platform/elc.20260502-1231-self-host | Bin 355832 -> 0 bytes .../dist/platform/elc.20260502-1249-self-host | Bin 375272 -> 0 bytes .../dist/platform/elc.20260502-1256-self-host | Bin 375352 -> 0 bytes .../dist/platform/elc.20260502-1321-self-host | Bin 357784 -> 0 bytes .../dist/platform/elc.20260502-1916-self-host | Bin 397664 -> 0 bytes .../platform/elc.20260503-1555-post-sprint | Bin 486088 -> 0 bytes lang/dist/platform/elc.20260503-1603-post-lsp | Bin 486168 -> 0 bytes lang/dist/platform/elc.c | 6450 ---------------- lang/dist/platform/elc.legacy | Bin 72592 -> 0 bytes lang/dist/platform/elc.prelaunch.bak | Bin 375272 -> 0 bytes lang/dist/platform/elc.preselfhost | Bin 221480 -> 0 bytes lang/dist/platform/elc.prev5 | Bin 147768 -> 0 bytes lang/dist/platform/elc.prev6 | Bin 165928 -> 0 bytes lang/dist/platform/elc.prev7 | Bin 221472 -> 0 bytes lang/dist/platform/elc.prev8 | Bin 221480 -> 0 bytes lang/dist/platform/elc.prev9 | Bin 221480 -> 0 bytes lang/tools/lsp/dist/el-lsp | Bin 360792 -> 0 bytes lang/tools/lsp/dist/el-lsp.c | 1252 --- runtime/el/core.el | 52 + runtime/el/core_gen.c | 0 runtime/el/strings.el | 69 + runtime/el/strings_gen.c | 126 + runtime/el/strings_gen2.c | 0 .../__pycache__/report.cpython-313.pyc | Bin 0 -> 5052 bytes tools/evidence/report-prove.sh | 69 + tools/evidence/report.py | 62 + ui/dist/el-ui.js | 397 - ui/tools/dist/el-ui-native-codegen | 4 - 944 files changed, 10343 insertions(+), 21230 deletions(-) create mode 100644 docs/experiments/evidence/0003-codegen-series-cloc.cmd create mode 100644 docs/experiments/evidence/0003-codegen-series-cloc.err create mode 100644 docs/experiments/evidence/0003-codegen-series-cloc.out create mode 100644 docs/experiments/evidence/0003-codegen-series-cloc.prov create mode 100644 docs/experiments/evidence/0003-codegen-series-cloc.rc create mode 100644 docs/experiments/evidence/0019-compiler-series-cloc.cmd create mode 100644 docs/experiments/evidence/0019-compiler-series-cloc.err create mode 100644 docs/experiments/evidence/0019-compiler-series-cloc.out create mode 100644 docs/experiments/evidence/0019-compiler-series-cloc.prov create mode 100644 docs/experiments/evidence/0019-compiler-series-cloc.rc create mode 100644 docs/experiments/instruments/CALIBRATION-20260817T174713Z.txt create mode 100644 docs/experiments/instruments/CALIBRATION-20260817T174754Z.txt create mode 100644 docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.cmd create mode 100644 docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.err create mode 100644 docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.out create mode 100644 docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.prov create mode 100644 docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.rc create mode 100644 docs/experiments/instruments/instrument/plot/evidence/0001-proof.cmd create mode 100644 docs/experiments/instruments/instrument/plot/evidence/0001-proof.err create mode 100644 docs/experiments/instruments/instrument/plot/evidence/0001-proof.out create mode 100644 docs/experiments/instruments/instrument/plot/evidence/0001-proof.prov create mode 100644 docs/experiments/instruments/instrument/plot/evidence/0001-proof.rc create mode 100644 docs/experiments/instruments/instrument/plot/evidence/MANIFEST.tsv create mode 100644 docs/experiments/instruments/instrument/plot/evidence/RUN.env create mode 100644 docs/experiments/instruments/instrument/plot/plot.py create mode 100755 docs/experiments/instruments/instrument/plot/prove.sh create mode 100644 docs/experiments/instruments/instrument/plot/reference/KNOWN-SERIES.WORKING create mode 100644 docs/experiments/instruments/instrument/plot/reference/KNOWN-SERIES.tsv create mode 100644 docs/experiments/instruments/instrument/report/evidence/0001-proof.cmd create mode 100644 docs/experiments/instruments/instrument/report/evidence/0001-proof.err create mode 100644 docs/experiments/instruments/instrument/report/evidence/0001-proof.out create mode 100644 docs/experiments/instruments/instrument/report/evidence/0001-proof.prov create mode 100644 docs/experiments/instruments/instrument/report/evidence/0001-proof.rc create mode 100644 docs/experiments/instruments/instrument/report/evidence/MANIFEST.tsv create mode 100644 docs/experiments/instruments/instrument/report/evidence/RUN.env create mode 100755 docs/experiments/reproduce.sh create mode 100644 docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.cmd create mode 100644 docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.err create mode 100644 docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.out create mode 100644 docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.prov create mode 100644 docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.rc create mode 100644 docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/CALIBRATION.txt create mode 100644 docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/MANIFEST.tsv create mode 100644 docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/RUN.env create mode 100755 docs/experiments/v2/cycles/07-the-caller-was-already-there/measure.sh create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.cmd create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.err create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.out create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.prov create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.rc create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.cmd create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.err create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.out create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.prov create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.rc create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.cmd create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.err create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.out create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.prov create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.rc create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.cmd create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.err create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.out create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.prov create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.rc create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.cmd create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.err create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.out create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.prov create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.rc create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.cmd create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.err create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.out create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.prov create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.rc create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.cmd create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.err create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.out create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.prov create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.rc create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.cmd create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.err create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.out create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.prov create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.rc create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.cmd create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.err create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.out create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.prov create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.rc create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.cmd create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.err create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.out create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.prov create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.rc create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/MANIFEST.tsv create mode 100644 docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/RUN.env create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.cmd create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.err create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.out create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.prov create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.rc create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.cmd create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.err create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.out create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.prov create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.rc create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.cmd create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.err create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.out create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.prov create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.rc create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.cmd create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.err create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.out create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.prov create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.rc create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.cmd create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.err create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.out create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.prov create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.rc create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.cmd create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.err create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.out create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.prov create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.rc create mode 100644 docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/04-c-has-no-closure-syntax/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.cmd create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.err create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.out create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.prov create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.rc create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.cmd create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.err create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.out create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.prov create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.rc create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.cmd create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.err create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.out create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.prov create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.rc create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.cmd create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.err create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.out create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.prov create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.rc create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.cmd create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.err create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.out create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.prov create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.rc create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.cmd create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.err create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.out create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.prov create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.rc create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.cmd create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.err create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.out create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.prov create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.rc create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.cmd create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.err create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.out create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.prov create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.rc create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.cmd create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.err create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.out create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.prov create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.rc create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.cmd create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.err create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.out create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.prov create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.rc create mode 100644 docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0039-thunk-noargs-and-seam-caller-search.cmd create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0039-thunk-noargs-and-seam-caller-search.err create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0039-thunk-noargs-and-seam-caller-search.out create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0039-thunk-noargs-and-seam-caller-search.prov create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0039-thunk-noargs-and-seam-caller-search.rc create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.cmd create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.err create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.out create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.prov create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.rc create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.cmd create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.err create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.out create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.prov create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.rc create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.cmd create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.err create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.out create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.prov create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.rc create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.cmd create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.err create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.out create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.prov create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.rc create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.cmd create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.err create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.out create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.prov create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.rc create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.cmd create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.err create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.out create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.prov create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.rc create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.cmd create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.err create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.out create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.prov create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.rc create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/parent07.sh create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/probe07.sh create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/thunk07.sh create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/thunk07b.sh create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/time07.sh create mode 100644 docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/time07b.sh create mode 100644 docs/v1/experiments/evidence/cycles/08-the-emitter-adjudicates/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0047-REDO-arity-coverage-probe-both-sides.prov create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0047-REDO-arity-coverage-probe-both-sides.rc create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.cmd create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.err create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.out create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.prov create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.rc create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.cmd create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.err create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.out create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.prov create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.rc create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.cmd create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.err create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.out create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.prov create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.rc create mode 100644 docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.cmd create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.err create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.out create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.prov create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.rc create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.cmd create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.err create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.out create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.prov create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.rc create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.cmd create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.err create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.out create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.prov create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.rc create mode 100644 docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.cmd create mode 100644 docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.err create mode 100644 docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.out create mode 100644 docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.prov create mode 100644 docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.rc create mode 100644 docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.cmd create mode 100644 docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.err create mode 100644 docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.out create mode 100644 docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.prov create mode 100644 docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.rc create mode 100644 docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.cmd create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.err create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.out create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.prov create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.rc create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.cmd create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.err create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.out create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.prov create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.rc create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.cmd create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.err create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.out create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.prov create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.rc create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.cmd create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.err create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.out create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.prov create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.rc create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.cmd create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.err create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.out create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.prov create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.rc create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.cmd create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.err create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.out create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.prov create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.rc create mode 100644 docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.cmd create mode 100644 docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.err create mode 100644 docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.out create mode 100644 docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.prov create mode 100644 docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.rc create mode 100644 docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/15-no-namespacing-at-all/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0011-post-native-suite.prov create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0011-post-native-suite.rc create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.cmd create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.err create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.out create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.prov create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.rc create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.cmd create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.err create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.out create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.prov create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.rc create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.cmd create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.err create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.out create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.prov create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.rc create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.cmd create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.err create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.out create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.prov create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.rc create mode 100644 docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.cmd create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.err create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.out create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.prov create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.rc create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/MANIFEST.tsv create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/RUN.env create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/fixtures/int_annotated_string.el create mode 100644 docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/fixtures/string_annotated_int.el create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.cmd create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.err create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.out create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.prov create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.rc create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.cmd create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.err create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.out create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.prov create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.rc create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.cmd create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.err create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.out create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.prov create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.rc create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.cmd create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.err create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.out create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.prov create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.rc create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.cmd create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.err create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.out create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.prov create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.rc create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/MANIFEST.tsv create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/RUN.env create mode 100644 docs/v1/experiments/evidence/cycles/18-async-half-expressible/fixtures/probe.el create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.cmd create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.err create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.out create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.prov create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.rc create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/CLAIMS.md create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/MANIFEST.tsv create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/RUN.env create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/p8_intermediate.patch create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/p8_reconstruct_intermediate.py create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/sha256_hex_int.el create mode 100644 docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/sha256_hex_legit.el create mode 100644 docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0005-native-suite.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0005-native-suite.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0005-native-suite.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0005-native-suite.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0005-native-suite.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.cmd create mode 100644 docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.err create mode 100644 docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.out create mode 100644 docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.prov create mode 100644 docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.rc create mode 100644 docs/v2/experiments/evidence/ITERATION/CLAIMS.md create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0010-09-alignment-probe-source-align5.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0010-09-alignment-probe-source-align5.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0010-09-alignment-probe-source-align5.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0010-09-alignment-probe-source-align5.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0010-09-alignment-probe-source-align5.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0011-10-alignment-probe-source-align20.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0011-10-alignment-probe-source-align20.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0011-10-alignment-probe-source-align20.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0011-10-alignment-probe-source-align20.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0011-10-alignment-probe-source-align20.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0012-11-FIXED-pinned-commit.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0012-11-FIXED-pinned-commit.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0012-11-FIXED-pinned-commit.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0012-11-FIXED-pinned-commit.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0012-11-FIXED-pinned-commit.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0013-12-FIXED-el_input_len-source.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0013-12-FIXED-el_input_len-source.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0013-12-FIXED-el_input_len-source.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0013-12-FIXED-el_input_len-source.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0013-12-FIXED-el_input_len-source.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.cmd create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.err create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.out create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.prov create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.rc create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/CLAIMS.md create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/MANIFEST.tsv create mode 100644 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/RUN.env create mode 100755 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/instruments/run-oracle.sh create mode 100755 docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/instruments/verify-hashes.py create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.cmd create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.err create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.out create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.prov create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.rc create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.cmd create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.err create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.out create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.prov create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.rc create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.cmd create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.err create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.out create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.prov create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.rc create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.cmd create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.err create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.out create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.prov create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.rc create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.cmd create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.err create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.out create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.prov create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.rc create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.cmd create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.err create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.out create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.prov create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.rc create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.cmd create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.err create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.out create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.prov create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.rc create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.cmd create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.err create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.out create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.prov create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.rc create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.cmd create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.err create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.out create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.prov create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.rc create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.cmd create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.err create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.out create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.prov create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.rc create mode 100644 docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/CLAIMS.md delete mode 100755 engram/dist/engram delete mode 100644 engram/dist/engram.c create mode 100644 engram/docs/LOVE.md delete mode 100644 lang/dist/elc-bootstrap.c delete mode 100644 lang/dist/elc-new.c delete mode 100644 lang/dist/platform/el_runtime.js delete mode 100755 lang/dist/platform/elb delete mode 100755 lang/dist/platform/elb-darwin-arm64 delete mode 100755 lang/dist/platform/elb-linux-amd64 delete mode 100755 lang/dist/platform/elc delete mode 100755 lang/dist/platform/elc-asan delete mode 100644 lang/dist/platform/elc-asan.dSYM/Contents/Info.plist delete mode 100644 lang/dist/platform/elc-asan.dSYM/Contents/Resources/DWARF/elc-asan delete mode 100644 lang/dist/platform/elc-asan.dSYM/Contents/Resources/Relocations/aarch64/elc-asan.yml delete mode 100755 lang/dist/platform/elc-darwin-arm64 delete mode 100755 lang/dist/platform/elc-linux-amd64 delete mode 100755 lang/dist/platform/elc.20260502-0130-self-host delete mode 100755 lang/dist/platform/elc.20260502-1104-self-host delete mode 100755 lang/dist/platform/elc.20260502-1231-self-host delete mode 100755 lang/dist/platform/elc.20260502-1249-self-host delete mode 100755 lang/dist/platform/elc.20260502-1256-self-host delete mode 100755 lang/dist/platform/elc.20260502-1321-self-host delete mode 100755 lang/dist/platform/elc.20260502-1916-self-host delete mode 100755 lang/dist/platform/elc.20260503-1555-post-sprint delete mode 100755 lang/dist/platform/elc.20260503-1603-post-lsp delete mode 100644 lang/dist/platform/elc.c delete mode 100755 lang/dist/platform/elc.legacy delete mode 100755 lang/dist/platform/elc.prelaunch.bak delete mode 100755 lang/dist/platform/elc.preselfhost delete mode 100755 lang/dist/platform/elc.prev5 delete mode 100755 lang/dist/platform/elc.prev6 delete mode 100755 lang/dist/platform/elc.prev7 delete mode 100755 lang/dist/platform/elc.prev8 delete mode 100755 lang/dist/platform/elc.prev9 delete mode 100755 lang/tools/lsp/dist/el-lsp delete mode 100644 lang/tools/lsp/dist/el-lsp.c create mode 100644 runtime/el/core.el create mode 100644 runtime/el/core_gen.c create mode 100644 runtime/el/strings.el create mode 100644 runtime/el/strings_gen.c create mode 100644 runtime/el/strings_gen2.c create mode 100644 tools/evidence/__pycache__/report.cpython-313.pyc create mode 100755 tools/evidence/report-prove.sh create mode 100644 tools/evidence/report.py delete mode 100644 ui/dist/el-ui.js delete mode 100755 ui/tools/dist/el-ui-native-codegen diff --git a/docs/experiments/evidence/0003-codegen-series-cloc.cmd b/docs/experiments/evidence/0003-codegen-series-cloc.cmd new file mode 100644 index 0000000..6123d26 --- /dev/null +++ b/docs/experiments/evidence/0003-codegen-series-cloc.cmd @@ -0,0 +1,16 @@ +bash -c +echo "INSTRUMENT: cloc 2.10 --force-lang=C (transfer standard, calibrated this session" +echo " against hand-counted reference; agrees on both fixtures)" +echo "UNIT: LINE, defined in docs/experiments/instruments/UNITS.md" +echo "FILE: lang/el-compiler/src/codegen.el" +echo +printf "%-11s %-19s %6s %6s %8s %6s\n" commit date blank comment code total +git log --format="%H %ad" --date=short --reverse -- lang/el-compiler/src/codegen.el | while read sha date; do + blob=$(git show "$sha:lang/el-compiler/src/codegen.el" 2>/dev/null) || continue + [ -z "$blob" ] && continue + t=$(mktemp /tmp/cg-XXXXXX.c); printf "%s\n" "$blob" > "$t" + row=$(cloc --force-lang=C --quiet --csv "$t" 2>/dev/null | tail -1) + b=$(echo "$row"|cut -d, -f3); c=$(echo "$row"|cut -d, -f4); k=$(echo "$row"|cut -d, -f5) + [ -n "$k" ] && printf "%-11s %-19s %6s %6s %8s %6s\n" "${sha:0:9}" "$date" "$b" "$c" "$k" "$((b+c+k))" + rm -f "$t" +done diff --git a/docs/experiments/evidence/0003-codegen-series-cloc.err b/docs/experiments/evidence/0003-codegen-series-cloc.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/experiments/evidence/0003-codegen-series-cloc.out b/docs/experiments/evidence/0003-codegen-series-cloc.out new file mode 100644 index 0000000..86241e3 --- /dev/null +++ b/docs/experiments/evidence/0003-codegen-series-cloc.out @@ -0,0 +1,64 @@ +INSTRUMENT: cloc 2.10 --force-lang=C (transfer standard, calibrated this session + against hand-counted reference; agrees on both fixtures) +UNIT: LINE, defined in docs/experiments/instruments/UNITS.md +FILE: lang/el-compiler/src/codegen.el + +commit date blank comment code total +1ae68962c 2026-05-05 165 520 2561 3246 +7f295bffe 2026-05-05 165 524 2562 3251 +e587bedf3 2026-05-05 165 526 2591 3282 +ee86736ea 2026-05-05 165 530 2592 3287 +3726f6943 2026-05-05 192 615 2865 3672 +bd7303447 2026-05-06 192 623 2876 3691 +ec889e1e5 2026-05-06 201 642 3049 3892 +a3732a1e9 2026-05-07 202 643 3062 3907 +53e0b99d5 2026-05-08 202 643 3063 3908 +6b9d9e6c4 2026-07-15 202 643 3064 3909 +866c75e5e 2026-08-09 202 653 3070 3925 +bb64a236e 2026-08-12 204 652 3109 3965 +7aa847e32 2026-08-12 204 652 3110 3966 +d4f401de1 2026-08-14 215 697 3287 4199 +01826421c 2026-08-14 215 703 3290 4208 +101018597 2026-08-15 202 643 3070 3915 +2f832c8de 2026-08-15 207 677 3165 4049 +09ae14a97 2026-08-15 209 686 3211 4106 +69870ac88 2026-08-15 209 696 3217 4122 +bacaf3d39 2026-08-15 222 756 3444 4422 +e29fe4fd0 2026-08-15 209 696 3219 4124 +ee39aa5f1 2026-08-15 222 756 3446 4424 +09dade061 2026-08-15 222 756 3452 4430 +4e24d7d3f 2026-08-15 222 756 3454 4432 +e917b3d43 2026-08-15 222 756 3456 4434 +37bcf7eb7 2026-08-15 222 756 3462 4440 +24fac765a 2026-08-15 225 779 3500 4504 +a668062e3 2026-08-15 225 779 3506 4510 +3e7ab07e8 2026-08-15 225 787 3521 4533 +6a6b589ba 2026-08-15 225 787 3522 4534 +b55e6bfd5 2026-08-15 225 800 3523 4548 +b5a0a729e 2026-08-15 225 808 3529 4562 +cf060adbf 2026-08-15 225 808 3530 4563 +8ae163e8e 2026-08-16 228 835 3583 4646 +45325f739 2026-08-16 228 844 3589 4661 +dcaa77d77 2026-08-17 228 849 3593 4670 +5718943f2 2026-08-17 233 891 3676 4800 +60737b030 2026-08-17 236 910 3704 4850 +4f7568b07 2026-08-17 241 929 3783 4953 +2bed8483f 2026-08-17 248 949 3887 5084 +1b324a071 2026-08-17 251 967 3934 5152 +35b07bade 2026-08-17 251 970 3935 5156 +886626a64 2026-08-17 251 970 3935 5156 +28d19da7f 2026-08-17 251 971 3873 5095 +285166c25 2026-08-17 251 971 3821 5043 +bc2f26ddf 2026-08-17 251 972 3753 4976 +c741cfe92 2026-08-17 252 982 3728 4962 +c2d9596e7 2026-08-17 251 990 3655 4896 +9cc6040df 2026-08-17 251 958 3303 4512 +d2d89fcb6 2026-08-17 255 962 3320 4537 +e8e25a07b 2026-08-17 255 962 3289 4506 +cbef1c1eb 2026-08-17 256 969 3253 4478 +c48db6c2a 2026-08-17 256 974 3257 4487 +79f6cb798 2026-08-17 256 979 3258 4493 +6c975b1d5 2026-08-17 256 979 3258 4493 +f1a7e224a 2026-08-17 256 991 3277 4524 +abb0ab419 2026-08-17 256 980 3209 4445 +e82d941b5 2026-08-17 256 981 3197 4434 diff --git a/docs/experiments/evidence/0003-codegen-series-cloc.prov b/docs/experiments/evidence/0003-codegen-series-cloc.prov new file mode 100644 index 0000000..1eb3eb0 --- /dev/null +++ b/docs/experiments/evidence/0003-codegen-series-cloc.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:42:20Z +exit 0 +ms 6151 +sha256_out 1065416e0b69b3dac0accdd238799c52e3eb359daf3259191debb647095589d7 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/experiments/evidence/0003-codegen-series-cloc.rc b/docs/experiments/evidence/0003-codegen-series-cloc.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/experiments/evidence/0003-codegen-series-cloc.rc @@ -0,0 +1 @@ +0 diff --git a/docs/experiments/evidence/0019-compiler-series-cloc.cmd b/docs/experiments/evidence/0019-compiler-series-cloc.cmd new file mode 100644 index 0000000..22a4e68 --- /dev/null +++ b/docs/experiments/evidence/0019-compiler-series-cloc.cmd @@ -0,0 +1 @@ +bash -c for f in lexer parser codegen; do git log --format="%H %ad" --date=short --reverse -- lang/el-compiler/src/$f.el | while read sha date; do blob=$(git show "$sha:lang/el-compiler/src/$f.el" 2>/dev/null); [ -z "$blob" ] && continue; t=$(mktemp /tmp/s-XXXXXX.c); printf "%s\n" "$blob" > "$t"; row=$(cloc --force-lang=C --quiet --csv "$t" 2>/dev/null | tail -1); k=$(echo "$row"|cut -d, -f5); [ -n "$k" ] && echo -e "$f\t${sha:0:9}\t$date\t$(echo "$row"|cut -d, -f3)\t$(echo "$row"|cut -d, -f4)\t$k"; rm -f "$t"; done; done diff --git a/docs/experiments/evidence/0019-compiler-series-cloc.err b/docs/experiments/evidence/0019-compiler-series-cloc.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/experiments/evidence/0019-compiler-series-cloc.out b/docs/experiments/evidence/0019-compiler-series-cloc.out new file mode 100644 index 0000000..f3e243b --- /dev/null +++ b/docs/experiments/evidence/0019-compiler-series-cloc.out @@ -0,0 +1,81 @@ +lexer 1ae68962c 2026-05-05 35 99 859 +lexer 2ac11a67b 2026-05-05 35 108 829 +lexer 1e67544c8 2026-05-05 39 143 857 +lexer 1eef9928f 2026-05-05 39 146 859 +lexer e587bedf3 2026-05-05 39 160 880 +lexer 8ae163e8e 2026-08-16 39 160 881 +lexer 0143cc458 2026-08-17 39 176 876 +lexer 6c975b1d5 2026-08-17 39 190 885 +parser 1ae68962c 2026-05-05 76 213 1360 +parser 1eef9928f 2026-05-05 76 217 1360 +parser 3726f6943 2026-05-05 83 306 1653 +parser ec889e1e5 2026-05-06 84 310 1670 +parser a3732a1e9 2026-05-07 85 340 1829 +parser f971e96dd 2026-05-07 85 340 1829 +parser 5f9cad590 2026-05-08 88 370 2009 +parser 0a0a2bcb4 2026-07-14 88 377 2026 +parser bb64a236e 2026-08-12 89 385 2041 +parser d4f401de1 2026-08-14 88 385 2063 +parser bacaf3d39 2026-08-15 89 393 2078 +parser 8ae163e8e 2026-08-16 90 419 2174 +parser 45325f739 2026-08-16 90 436 2186 +parser 6c975b1d5 2026-08-17 91 439 2193 +parser e82d941b5 2026-08-17 93 450 2218 +codegen 1ae68962c 2026-05-05 165 520 2561 +codegen 7f295bffe 2026-05-05 165 524 2562 +codegen e587bedf3 2026-05-05 165 526 2591 +codegen ee86736ea 2026-05-05 165 530 2592 +codegen 3726f6943 2026-05-05 192 615 2865 +codegen bd7303447 2026-05-06 192 623 2876 +codegen ec889e1e5 2026-05-06 201 642 3049 +codegen a3732a1e9 2026-05-07 202 643 3062 +codegen 53e0b99d5 2026-05-08 202 643 3063 +codegen 6b9d9e6c4 2026-07-15 202 643 3064 +codegen 866c75e5e 2026-08-09 202 653 3070 +codegen bb64a236e 2026-08-12 204 652 3109 +codegen 7aa847e32 2026-08-12 204 652 3110 +codegen d4f401de1 2026-08-14 215 697 3287 +codegen 01826421c 2026-08-14 215 703 3290 +codegen 101018597 2026-08-15 202 643 3070 +codegen 2f832c8de 2026-08-15 207 677 3165 +codegen 09ae14a97 2026-08-15 209 686 3211 +codegen 69870ac88 2026-08-15 209 696 3217 +codegen bacaf3d39 2026-08-15 222 756 3444 +codegen e29fe4fd0 2026-08-15 209 696 3219 +codegen ee39aa5f1 2026-08-15 222 756 3446 +codegen 09dade061 2026-08-15 222 756 3452 +codegen 4e24d7d3f 2026-08-15 222 756 3454 +codegen e917b3d43 2026-08-15 222 756 3456 +codegen 37bcf7eb7 2026-08-15 222 756 3462 +codegen 24fac765a 2026-08-15 225 779 3500 +codegen a668062e3 2026-08-15 225 779 3506 +codegen 3e7ab07e8 2026-08-15 225 787 3521 +codegen 6a6b589ba 2026-08-15 225 787 3522 +codegen b55e6bfd5 2026-08-15 225 800 3523 +codegen b5a0a729e 2026-08-15 225 808 3529 +codegen cf060adbf 2026-08-15 225 808 3530 +codegen 8ae163e8e 2026-08-16 228 835 3583 +codegen 45325f739 2026-08-16 228 844 3589 +codegen dcaa77d77 2026-08-17 228 849 3593 +codegen 5718943f2 2026-08-17 233 891 3676 +codegen 60737b030 2026-08-17 236 910 3704 +codegen 4f7568b07 2026-08-17 241 929 3783 +codegen 2bed8483f 2026-08-17 248 949 3887 +codegen 1b324a071 2026-08-17 251 967 3934 +codegen 35b07bade 2026-08-17 251 970 3935 +codegen 886626a64 2026-08-17 251 970 3935 +codegen 28d19da7f 2026-08-17 251 971 3873 +codegen 285166c25 2026-08-17 251 971 3821 +codegen bc2f26ddf 2026-08-17 251 972 3753 +codegen c741cfe92 2026-08-17 252 982 3728 +codegen c2d9596e7 2026-08-17 251 990 3655 +codegen 9cc6040df 2026-08-17 251 958 3303 +codegen d2d89fcb6 2026-08-17 255 962 3320 +codegen e8e25a07b 2026-08-17 255 962 3289 +codegen cbef1c1eb 2026-08-17 256 969 3253 +codegen c48db6c2a 2026-08-17 256 974 3257 +codegen 79f6cb798 2026-08-17 256 979 3258 +codegen 6c975b1d5 2026-08-17 256 979 3258 +codegen f1a7e224a 2026-08-17 256 991 3277 +codegen abb0ab419 2026-08-17 256 980 3209 +codegen e82d941b5 2026-08-17 256 981 3197 diff --git a/docs/experiments/evidence/0019-compiler-series-cloc.prov b/docs/experiments/evidence/0019-compiler-series-cloc.prov new file mode 100644 index 0000000..02b081e --- /dev/null +++ b/docs/experiments/evidence/0019-compiler-series-cloc.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:44:12Z +exit 0 +ms 8561 +sha256_out 266ad033509a4026529ef4b722eeb85881857404f34853eab6d4cc72ddab632b +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/experiments/evidence/0019-compiler-series-cloc.rc b/docs/experiments/evidence/0019-compiler-series-cloc.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/experiments/evidence/0019-compiler-series-cloc.rc @@ -0,0 +1 @@ +0 diff --git a/docs/experiments/instruments/CALIBRATION-20260817T174713Z.txt b/docs/experiments/instruments/CALIBRATION-20260817T174713Z.txt new file mode 100644 index 0000000..6670636 --- /dev/null +++ b/docs/experiments/instruments/CALIBRATION-20260817T174713Z.txt @@ -0,0 +1,50 @@ +calibration run 20260817T174713Z +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +cloc 2.10 +matplotlib 3.10.8 +cc Apple clang version 21.0.0 (clang-2100.1.1.101) + +--- line-count --- +POSITIVE — reproduces hand-counted answers + ok ref_lines.el total = 18 + ok ref_lines.el blank = 3 + ok ref_lines.el comment = 7 + ok ref_lines.el code = 8 + ok ref_wrong.el total = 4 + ok ref_wrong.el blank = 0 + ok ref_wrong.el comment = 3 + ok ref_wrong.el code = 1 + +POSITIVE — discriminates between fixtures + ok distinct fixtures give distinct readings + +NEGATIVE — refuses a false expectation + ok false expectation code=999 refused; reports 8 + +NEGATIVE — self-checks its own unit invariant + ok total == blank + comment + code (3), asserted at runtime + + PROVEN — 11 checks, both arms hold. This instrument may be used. + +--- plot --- +POSITIVE — the plot contains exactly what was given to it + ok point count in == point count plotted 5 + ok x range preserved (0.0, 4.0) + ok y range preserved (5.0, 40.0) + ok final point not dropped/sorted (4.0, 5.0) + +POSITIVE — anti-truncation policy holds + ok y-axis includes zero by default True + +NEGATIVE — truncation is possible but must be ASKED for + ok explicit truncate_y raises the floor True + +NEGATIVE — refuses a false expectation + ok a false point count (99) is refused False + +POSITIVE — an output file is actually produced + ok png written and non-empty True + + transfer standard: matplotlib 3.10.8 + PROVEN — 8 checks, 0 failed diff --git a/docs/experiments/instruments/CALIBRATION-20260817T174754Z.txt b/docs/experiments/instruments/CALIBRATION-20260817T174754Z.txt new file mode 100644 index 0000000..097b203 --- /dev/null +++ b/docs/experiments/instruments/CALIBRATION-20260817T174754Z.txt @@ -0,0 +1,50 @@ +calibration run 20260817T174754Z +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +cloc 2.10 +matplotlib 3.10.8 +cc Apple clang version 21.0.0 (clang-2100.1.1.101) + +--- line-count --- +POSITIVE — reproduces hand-counted answers + ok ref_lines.el total = 18 + ok ref_lines.el blank = 3 + ok ref_lines.el comment = 7 + ok ref_lines.el code = 8 + ok ref_wrong.el total = 4 + ok ref_wrong.el blank = 0 + ok ref_wrong.el comment = 3 + ok ref_wrong.el code = 1 + +POSITIVE — discriminates between fixtures + ok distinct fixtures give distinct readings + +NEGATIVE — refuses a false expectation + ok false expectation code=999 refused; reports 8 + +NEGATIVE — self-checks its own unit invariant + ok total == blank + comment + code (3), asserted at runtime + + PROVEN — 11 checks, both arms hold. This instrument may be used. + +--- plot --- +POSITIVE — the plot contains exactly what was given to it + ok point count in == point count plotted 5 + ok x range preserved (0.0, 4.0) + ok y range preserved (5.0, 40.0) + ok final point not dropped/sorted (4.0, 5.0) + +POSITIVE — anti-truncation policy holds + ok y-axis includes zero by default True + +NEGATIVE — truncation is possible but must be ASKED for + ok explicit truncate_y raises the floor True + +NEGATIVE — refuses a false expectation + ok a false point count (99) is refused False + +POSITIVE — an output file is actually produced + ok png written and non-empty True + + transfer standard: matplotlib 3.10.8 + PROVEN — 8 checks, 0 failed diff --git a/docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.cmd b/docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.cmd new file mode 100644 index 0000000..5987186 --- /dev/null +++ b/docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.cmd @@ -0,0 +1,19 @@ +bash -c R=docs/experiments/instruments/instrument/line-count/reference +echo "TRANSFER STANDARD: cloc $(cloc --version), --force-lang=C" +echo "PRIMARY STANDARD: the LINE definition in docs/experiments/instruments/UNITS.md" +echo "REFERENCE: hand enumeration in reference/*.WORKING" +echo +printf "%-14s %-22s %s\n" fixture known "cloc (blank,comment,code)" +while IFS= read -r line; do + case "$line" in \#*|"") continue;; esac + set -- $line +done < /dev/null +for f in ref_lines ref_wrong; do + k=$(awk -F"\t" -v f="$f.el" "\$2==f && \$3!=\"total\" {printf \"%s \", \$4}" $R/KNOWN-ANSWERS.tsv) + c=$(cloc --force-lang=C --quiet --csv $R/$f.el 2>/dev/null | tail -1 | cut -d, -f3-5) + kk=$(echo $k | tr " " ",") + printf "%-14s %-22s %s %s\n" "$f.el" "$kk" "$c" "$([ "$kk" = "$c" ] && echo AGREES || echo DIVERGES)" +done +echo +echo "Both fixtures agree. cloc is a valid transfer standard for the LINE unit." +echo "Convergent validity: two independently authored definitions, same readings." diff --git a/docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.err b/docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.out b/docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.out new file mode 100644 index 0000000..71a31ff --- /dev/null +++ b/docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.out @@ -0,0 +1,10 @@ +TRANSFER STANDARD: cloc 2.10, --force-lang=C +PRIMARY STANDARD: the LINE definition in docs/experiments/instruments/UNITS.md +REFERENCE: hand enumeration in reference/*.WORKING + +fixture known cloc (blank,comment,code) +ref_lines.el 3,7,8 3,7,8 AGREES +ref_wrong.el 0,3,1 0,3,1 AGREES + +Both fixtures agree. cloc is a valid transfer standard for the LINE unit. +Convergent validity: two independently authored definitions, same readings. diff --git a/docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.prov b/docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.prov new file mode 100644 index 0000000..12d5110 --- /dev/null +++ b/docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:41:59Z +exit 0 +ms 239 +sha256_out 6409d2d1e023f40aa0c68a7e5bec95b6b45d18a9cd47db15d79b3b136532fda5 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.rc b/docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.rc @@ -0,0 +1 @@ +0 diff --git a/docs/experiments/instruments/instrument/plot/evidence/0001-proof.cmd b/docs/experiments/instruments/instrument/plot/evidence/0001-proof.cmd new file mode 100644 index 0000000..9ee32f3 --- /dev/null +++ b/docs/experiments/instruments/instrument/plot/evidence/0001-proof.cmd @@ -0,0 +1 @@ +./docs/experiments/instruments/instrument/plot/prove.sh diff --git a/docs/experiments/instruments/instrument/plot/evidence/0001-proof.err b/docs/experiments/instruments/instrument/plot/evidence/0001-proof.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/experiments/instruments/instrument/plot/evidence/0001-proof.out b/docs/experiments/instruments/instrument/plot/evidence/0001-proof.out new file mode 100644 index 0000000..3c01974 --- /dev/null +++ b/docs/experiments/instruments/instrument/plot/evidence/0001-proof.out @@ -0,0 +1,20 @@ +POSITIVE — the plot contains exactly what was given to it + ok point count in == point count plotted 5 + ok x range preserved (0.0, 4.0) + ok y range preserved (5.0, 40.0) + ok final point not dropped/sorted (4.0, 5.0) + +POSITIVE — anti-truncation policy holds + ok y-axis includes zero by default True + +NEGATIVE — truncation is possible but must be ASKED for + ok explicit truncate_y raises the floor True + +NEGATIVE — refuses a false expectation + ok a false point count (99) is refused False + +POSITIVE — an output file is actually produced + ok png written and non-empty True + + transfer standard: matplotlib 3.10.8 + PROVEN — 8 checks, 0 failed diff --git a/docs/experiments/instruments/instrument/plot/evidence/0001-proof.prov b/docs/experiments/instruments/instrument/plot/evidence/0001-proof.prov new file mode 100644 index 0000000..090bf74 --- /dev/null +++ b/docs/experiments/instruments/instrument/plot/evidence/0001-proof.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:46:05Z +exit 0 +ms 555 +sha256_out a051538f9af841fbceb48cf68abcefffc11bc1ee8cc6996a14d900d398624ff1 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/experiments/instruments/instrument/plot/evidence/0001-proof.rc b/docs/experiments/instruments/instrument/plot/evidence/0001-proof.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/experiments/instruments/instrument/plot/evidence/0001-proof.rc @@ -0,0 +1 @@ +0 diff --git a/docs/experiments/instruments/instrument/plot/evidence/MANIFEST.tsv b/docs/experiments/instruments/instrument/plot/evidence/MANIFEST.tsv new file mode 100644 index 0000000..9ec31af --- /dev/null +++ b/docs/experiments/instruments/instrument/plot/evidence/MANIFEST.tsv @@ -0,0 +1,2 @@ +sha256 bytes exit ms commit tree utc artifact command +a051538f9af841fbceb48cf68abcefffc11bc1ee8cc6996a14d900d398624ff1 807 0 555 a0cc95e3db7b dirty 2026-08-17T17:46:05Z 0001-proof.out ./docs/experiments/instruments/instrument/plot/prove.sh diff --git a/docs/experiments/instruments/instrument/plot/evidence/RUN.env b/docs/experiments/instruments/instrument/plot/evidence/RUN.env new file mode 100644 index 0000000..ddec1b1 --- /dev/null +++ b/docs/experiments/instruments/instrument/plot/evidence/RUN.env @@ -0,0 +1,6 @@ +captured_utc 2026-08-17T17:46:05Z +git_sha a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +git_dirty yes +host Wills-MacBook-Pro +uname Darwin Wills-MacBook-Pro 25.5.0 Darwin Kernel Version 25.5.0: Tue Jun 9 22:28:34 PDT 2026; root:xnu-12377.121.10~1/RELEASE_ARM64_T6041 arm64 +cc Apple clang version 21.0.0 (clang-2100.1.1.101) diff --git a/docs/experiments/instruments/instrument/plot/plot.py b/docs/experiments/instruments/instrument/plot/plot.py new file mode 100644 index 0000000..86b8f08 --- /dev/null +++ b/docs/experiments/instruments/instrument/plot/plot.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +"""Plot instrument. matplotlib is the transfer standard; this file is +CONFIGURATION of it, not a new instrument. It adds exactly one policy: + + the y-axis includes zero unless truncation is explicitly requested, + +because an autoscaled y-axis turns a correct dataset into a false picture, and +that is the most common way a plot lies. +""" +import sys, csv, matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt +import matplotlib.dates as mdates +from datetime import datetime + +def plot(series, out, title, ylabel, truncate_y=False, dates=False): + fig, ax = plt.subplots(figsize=(11, 5.2), dpi=160) + for name, xs, ys, color in series: + ax.plot(xs, ys, marker="o", ms=2.6, lw=1.4, color=color, label=name, zorder=3) + if not truncate_y: + ax.set_ylim(bottom=0) # the policy + if dates: + ax.xaxis.set_major_locator(mdates.AutoDateLocator()) + ax.xaxis.set_major_formatter(mdates.DateFormatter("%b %d")) + ax.set_ylabel(ylabel); ax.set_title(title, loc="left") + ax.grid(True, lw=0.5, alpha=0.35, zorder=0) + ax.legend(frameon=False, loc="upper left") + for s in ("top","right"): ax.spines[s].set_visible(False) + fig.tight_layout(); fig.savefig(out) + return ax + +def readings(ax): + """What the plot ACTUALLY contains — read back off the axes, not off the + input. This is what makes the plot checkable.""" + out = [] + for ln in ax.get_lines(): + d = ln.get_xydata() + out.append({"label": ln.get_label(), "n": len(d), + "xmin": float(d[:,0].min()), "xmax": float(d[:,0].max()), + "ymin": float(d[:,1].min()), "ymax": float(d[:,1].max()), + "last": (float(d[-1,0]), float(d[-1,1]))}) + return out, ax.get_ylim() diff --git a/docs/experiments/instruments/instrument/plot/prove.sh b/docs/experiments/instruments/instrument/plot/prove.sh new file mode 100755 index 0000000..105a3c1 --- /dev/null +++ b/docs/experiments/instruments/instrument/plot/prove.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +# prove.sh — evidence the plot instrument works. Both directions. +set -uo pipefail +D="$(cd "$(dirname "$0")" && pwd)" +python3 - "$D" <<'PY' +import sys, csv, os +D = sys.argv[1]; sys.path.insert(0, D) +from plot import plot, readings +F=0; N=0 +def chk(name, expected, actual): + global F, N; N += 1 + ok = expected == actual + print(f" {'ok ' if ok else 'FAIL'} {name:<44} {'' if ok else f'expected {expected} got '}{actual}") + if not ok: F += 1 + +rows=[r for r in csv.reader(open(f"{D}/reference/KNOWN-SERIES.tsv"), delimiter="\t") if r and not r[0].startswith("#")] +xs=[float(r[0]) for r in rows]; ys=[float(r[1]) for r in rows] + +print("POSITIVE — the plot contains exactly what was given to it") +ax = plot([("known", xs, ys, "#B0691F")], "/tmp/prove_known.png", "calibration", "y") +r, ylim = readings(ax) +chk("point count in == point count plotted", 5, r[0]["n"]) +chk("x range preserved", (0.0, 4.0), (r[0]["xmin"], r[0]["xmax"])) +chk("y range preserved", (5.0, 40.0), (r[0]["ymin"], r[0]["ymax"])) +chk("final point not dropped/sorted", (4.0, 5.0), r[0]["last"]) + +print() +print("POSITIVE — anti-truncation policy holds") +chk("y-axis includes zero by default", True, ylim[0] <= 0) + +print() +print("NEGATIVE — truncation is possible but must be ASKED for") +ax2 = plot([("known", xs, ys, "#B0691F")], "/tmp/prove_trunc.png", "truncated", "y", truncate_y=True) +_, ylim2 = readings(ax2) +chk("explicit truncate_y raises the floor", True, ylim2[0] > 0) + +print() +print("NEGATIVE — refuses a false expectation") +chk("a false point count (99) is refused", False, r[0]["n"] == 99) + +print() +print("POSITIVE — an output file is actually produced") +chk("png written and non-empty", True, os.path.getsize("/tmp/prove_known.png") > 1000) + +print() +import matplotlib +print(f" transfer standard: matplotlib {matplotlib.__version__}") +print(f" {'PROVEN' if F==0 else 'NOT PROVEN'} — {N} checks, {F} failed") +sys.exit(F) +PY diff --git a/docs/experiments/instruments/instrument/plot/reference/KNOWN-SERIES.WORKING b/docs/experiments/instruments/instrument/plot/reference/KNOWN-SERIES.WORKING new file mode 100644 index 0000000..31f8dd6 --- /dev/null +++ b/docs/experiments/instruments/instrument/plot/reference/KNOWN-SERIES.WORKING @@ -0,0 +1,17 @@ +Known properties of KNOWN-SERIES.tsv, derived by hand from the five rows above. + + n points 5 + x min / max 0 / 4 + y min / max 5 / 40 + point at i=3 (3, 40) -- the maximum, deliberately not last + point at i=4 (4, 5) -- the minimum, deliberately last + +Why these values: the maximum is NOT the final point and the minimum IS, so a +plotter that silently drops the last point, or that sorts, or that plots only +the running maximum, produces a visibly different reading. + +ANTI-TRUNCATION: with y ranging 5..40, a plotter left to autoscale will start +the y-axis near 5 and make a 3.5x visual change out of an 8x numeric one. For an +evidence plot the y-axis MUST include zero or be explicitly declared truncated. +This is the single most common way a correct dataset produces a false picture, +and it is checked below. diff --git a/docs/experiments/instruments/instrument/plot/reference/KNOWN-SERIES.tsv b/docs/experiments/instruments/instrument/plot/reference/KNOWN-SERIES.tsv new file mode 100644 index 0000000..e4e9c18 --- /dev/null +++ b/docs/experiments/instruments/instrument/plot/reference/KNOWN-SERIES.tsv @@ -0,0 +1,7 @@ +# A series whose plotted properties are known BEFORE the plotter runs. +# x y +0 10 +1 20 +2 15 +3 40 +4 5 diff --git a/docs/experiments/instruments/instrument/report/evidence/0001-proof.cmd b/docs/experiments/instruments/instrument/report/evidence/0001-proof.cmd new file mode 100644 index 0000000..1ccd9a9 --- /dev/null +++ b/docs/experiments/instruments/instrument/report/evidence/0001-proof.cmd @@ -0,0 +1 @@ +./tools/evidence/report-prove.sh diff --git a/docs/experiments/instruments/instrument/report/evidence/0001-proof.err b/docs/experiments/instruments/instrument/report/evidence/0001-proof.err new file mode 100644 index 0000000..63fb512 --- /dev/null +++ b/docs/experiments/instruments/instrument/report/evidence/0001-proof.err @@ -0,0 +1,7 @@ +Traceback (most recent call last): + File "", line 12, in + File "/Users/will/Development/neuron-technologies/foundation/el/tools/evidence/report.py", line 35, in load + art = os.path.join(evdir, r['artifact']) + File "", line 90, in join + File "", line 188, in _check_arg_types +TypeError: join() argument must be str, bytes, or os.PathLike object, not 'NoneType' diff --git a/docs/experiments/instruments/instrument/report/evidence/0001-proof.out b/docs/experiments/instruments/instrument/report/evidence/0001-proof.out new file mode 100644 index 0000000..87a114a --- /dev/null +++ b/docs/experiments/instruments/instrument/report/evidence/0001-proof.out @@ -0,0 +1 @@ +POSITIVE — reads and verifies a real evidence directory diff --git a/docs/experiments/instruments/instrument/report/evidence/0001-proof.prov b/docs/experiments/instruments/instrument/report/evidence/0001-proof.prov new file mode 100644 index 0000000..c69ef87 --- /dev/null +++ b/docs/experiments/instruments/instrument/report/evidence/0001-proof.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:53:46Z +exit 1 +ms 315 +sha256_out f76d174e98375a9c137936cc77a6675a3076b34fd7e1be8f91be8204aaaa8980 +sha256_err 31646694e108bb5c245b4ab128321bb3b46f30d380d070fa8a3214a4e2e685b3 diff --git a/docs/experiments/instruments/instrument/report/evidence/0001-proof.rc b/docs/experiments/instruments/instrument/report/evidence/0001-proof.rc new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/docs/experiments/instruments/instrument/report/evidence/0001-proof.rc @@ -0,0 +1 @@ +1 diff --git a/docs/experiments/instruments/instrument/report/evidence/MANIFEST.tsv b/docs/experiments/instruments/instrument/report/evidence/MANIFEST.tsv new file mode 100644 index 0000000..1d24137 --- /dev/null +++ b/docs/experiments/instruments/instrument/report/evidence/MANIFEST.tsv @@ -0,0 +1,2 @@ +sha256 bytes exit ms commit tree utc artifact command +f76d174e98375a9c137936cc77a6675a3076b34fd7e1be8f91be8204aaaa8980 58 1 315 a0cc95e3db7b dirty 2026-08-17T17:53:46Z 0001-proof.out ./tools/evidence/report-prove.sh diff --git a/docs/experiments/instruments/instrument/report/evidence/RUN.env b/docs/experiments/instruments/instrument/report/evidence/RUN.env new file mode 100644 index 0000000..f57fc94 --- /dev/null +++ b/docs/experiments/instruments/instrument/report/evidence/RUN.env @@ -0,0 +1,6 @@ +captured_utc 2026-08-17T17:53:46Z +git_sha a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +git_dirty yes +host Wills-MacBook-Pro +uname Darwin Wills-MacBook-Pro 25.5.0 Darwin Kernel Version 25.5.0: Tue Jun 9 22:28:34 PDT 2026; root:xnu-12377.121.10~1/RELEASE_ARM64_T6041 arm64 +cc Apple clang version 21.0.0 (clang-2100.1.1.101) diff --git a/docs/experiments/reproduce.sh b/docs/experiments/reproduce.sh new file mode 100755 index 0000000..989171f --- /dev/null +++ b/docs/experiments/reproduce.sh @@ -0,0 +1,73 @@ +#!/usr/bin/env bash +# reproduce.sh — ONE COMMAND. Proves every instrument, records the calibration, +# re-runs every cycle, verifies every artifact against its hash. +# +# Capturing evidence is not enough. If a stranger cannot regenerate the numbers +# in one command, the record is testimony. This is the command. +# +# usage: ./docs/experiments/reproduce.sh [cycle-glob] +set -uo pipefail +cd "$(git rev-parse --show-toplevel)" || exit 2 +E="docs/experiments"; I="$E/instruments/instrument"; CAP="./tools/evidence/capture.sh" +STAMP=$(date -u +%Y%m%dT%H%M%SZ); FAIL=0 +hdr(){ printf '\n\033[1m%s\033[0m\n' "$1"; } + +hdr "1. INSTRUMENTS — proven before anything is measured" +for p in "$I"/*/prove.sh; do + [ -e "$p" ] || continue + name=$(basename "$(dirname "$p")") + if "$p" >/dev/null 2>&1; then printf ' ok %-16s proven\n' "$name" + else printf ' FAIL %-16s NOT PROVEN — no measurement below is valid\n' "$name"; FAIL=$((FAIL+1)); fi +done +[ "$FAIL" -eq 0 ] || { printf '\n ABORT: an instrument is unproven. Nothing measured today is reportable.\n'; exit 1; } + +hdr "2. CALIBRATION — recorded, and stamped into every cycle that runs below" +CALFILE="$E/instruments/CALIBRATION-$STAMP.txt" +{ printf 'calibration run\t%s\n' "$STAMP" + printf 'commit\t%s\n' "$(git rev-parse HEAD)" + printf 'tree\t%s\n' "$(test -n "$(git status --porcelain)" && echo dirty || echo clean)" + printf 'cloc\t%s\n' "$(cloc --version 2>/dev/null || echo ABSENT)" + printf 'matplotlib\t%s\n' "$(python3 -c 'import matplotlib;print(matplotlib.__version__)' 2>/dev/null || echo ABSENT)" + printf 'cc\t%s\n' "$(cc --version 2>&1|head -1)" + for p in "$I"/*/prove.sh; do [ -e "$p" ] || continue + printf '\n--- %s ---\n' "$(basename "$(dirname "$p")")"; "$p" 2>&1; done +} > "$CALFILE" +printf ' %s\n' "$CALFILE" +grep -c '^ ok' "$CALFILE" | xargs printf ' %s calibration checks passed\n' + +hdr "3. CYCLES — each re-run, each stamped with the calibration in effect" +GLOB="${1:-*}"; ran=0; miss=0 +# Cycles live at docs/v{1,2}/experiments/cycles/. The previous glob was +# $E/v*/cycles/ and matched 1 of 29, then printed REPRODUCED. +for m in docs/v*/experiments/cycles/$GLOB/measure.sh; do + [ -e "$m" ] || continue + d=$(dirname "$m"); name=$(basename "$d") + mkdir -p "$d/evidence" + cp "$CALFILE" "$d/evidence/CALIBRATION.txt" # <- the cycle SHOWS its calibration + if $CAP "$d/evidence" rerun -- "$m" >/dev/null 2>&1; then printf ' ok %-42s re-run\n' "$name" + else printf ' FAIL %-42s re-run failed\n' "$name"; FAIL=$((FAIL+1)); fi + ran=$((ran+1)) +done +total=$(ls docs/v1/experiments/cycles/*.md docs/v2/experiments/cycles/*.md 2>/dev/null | grep -vc INDEX) +miss=$((total - ran)) +printf ' %s cycle(s) re-run\n' "$ran" +if [ "$miss" -gt 0 ]; then + printf ' %s of %s cycle(s) have NO measure.sh and are NOT REPRODUCIBLE.\n' "$miss" "$total" + printf ' A record that reproduces %s/%s of itself has not been reproduced.\n' "$ran" "$total" + FAIL=$((FAIL+1)) +fi + +hdr "4. VERIFY — every artifact re-hashed against its manifest" +for d in $(find docs -name MANIFEST.tsv -exec dirname {} \; | sort -u); do + ./tools/evidence/verify-manifest.sh "$d" || FAIL=$((FAIL+1)) +done +for d in $E/v*/cycles/*/evidence $I/*/evidence; do + [ -f "$d/MANIFEST.tsv" ] || continue + ./tools/evidence/verify-manifest.sh "$(dirname "$d")" >/dev/null 2>&1 || true +done +./tools/evidence/verify-notebook.sh || FAIL=$((FAIL+1)) + +hdr "RESULT" +[ "$FAIL" -eq 0 ] && echo " REPRODUCED — instruments proven, calibration recorded, cycles re-run, artifacts verified." \ + || echo " NOT REPRODUCED — $FAIL failure(s) above." +exit "$FAIL" diff --git a/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.cmd b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.cmd new file mode 100644 index 0000000..9f452f2 --- /dev/null +++ b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.cmd @@ -0,0 +1 @@ +docs/experiments/v2/cycles/07-the-caller-was-already-there/measure.sh diff --git a/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.err b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.out b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.out new file mode 100644 index 0000000..ad9628d --- /dev/null +++ b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.out @@ -0,0 +1,13 @@ +CYCLE 07 — the caller was already there +claim: exactly three seam emission points, all keyed on fn_name + +-- emission points, counted in the BUILT ARTIFACT, not in source text. + (the original assertion grepped codegen.el while the harness ran a + prebuilt compiler, so it measured a file with no causal link to the + binary under test. see notebook v2 E003.) + seam phase strings in binary: 2 + source: 2 el_seam_run( + source: 1 el_seam_wrap( + +-- compiler size, cloc (calibrated transfer standard): + codegen.el blank 256 comment 981 code 3197 diff --git a/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.prov b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.prov new file mode 100644 index 0000000..24879a5 --- /dev/null +++ b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:47:15Z +exit 0 +ms 287 +sha256_out f4008496b05a21a3c04ce235356fca60132cf72e91dda7aeefa88fef4d5755fe +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.rc b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/0001-rerun.rc @@ -0,0 +1 @@ +0 diff --git a/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/CALIBRATION.txt b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/CALIBRATION.txt new file mode 100644 index 0000000..6670636 --- /dev/null +++ b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/CALIBRATION.txt @@ -0,0 +1,50 @@ +calibration run 20260817T174713Z +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +cloc 2.10 +matplotlib 3.10.8 +cc Apple clang version 21.0.0 (clang-2100.1.1.101) + +--- line-count --- +POSITIVE — reproduces hand-counted answers + ok ref_lines.el total = 18 + ok ref_lines.el blank = 3 + ok ref_lines.el comment = 7 + ok ref_lines.el code = 8 + ok ref_wrong.el total = 4 + ok ref_wrong.el blank = 0 + ok ref_wrong.el comment = 3 + ok ref_wrong.el code = 1 + +POSITIVE — discriminates between fixtures + ok distinct fixtures give distinct readings + +NEGATIVE — refuses a false expectation + ok false expectation code=999 refused; reports 8 + +NEGATIVE — self-checks its own unit invariant + ok total == blank + comment + code (3), asserted at runtime + + PROVEN — 11 checks, both arms hold. This instrument may be used. + +--- plot --- +POSITIVE — the plot contains exactly what was given to it + ok point count in == point count plotted 5 + ok x range preserved (0.0, 4.0) + ok y range preserved (5.0, 40.0) + ok final point not dropped/sorted (4.0, 5.0) + +POSITIVE — anti-truncation policy holds + ok y-axis includes zero by default True + +NEGATIVE — truncation is possible but must be ASKED for + ok explicit truncate_y raises the floor True + +NEGATIVE — refuses a false expectation + ok a false point count (99) is refused False + +POSITIVE — an output file is actually produced + ok png written and non-empty True + + transfer standard: matplotlib 3.10.8 + PROVEN — 8 checks, 0 failed diff --git a/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/MANIFEST.tsv b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/MANIFEST.tsv new file mode 100644 index 0000000..dcf028f --- /dev/null +++ b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/MANIFEST.tsv @@ -0,0 +1,2 @@ +sha256 bytes exit ms commit tree utc artifact command +f4008496b05a21a3c04ce235356fca60132cf72e91dda7aeefa88fef4d5755fe 565 0 287 a0cc95e3db7b dirty 2026-08-17T17:47:15Z 0001-rerun.out docs/experiments/v2/cycles/07-the-caller-was-already-there/measure.sh diff --git a/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/RUN.env b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/RUN.env new file mode 100644 index 0000000..418ce5a --- /dev/null +++ b/docs/experiments/v2/cycles/07-the-caller-was-already-there/evidence/RUN.env @@ -0,0 +1,6 @@ +captured_utc 2026-08-17T17:47:14Z +git_sha a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +git_dirty yes +host Wills-MacBook-Pro +uname Darwin Wills-MacBook-Pro 25.5.0 Darwin Kernel Version 25.5.0: Tue Jun 9 22:28:34 PDT 2026; root:xnu-12377.121.10~1/RELEASE_ARM64_T6041 arm64 +cc Apple clang version 21.0.0 (clang-2100.1.1.101) diff --git a/docs/experiments/v2/cycles/07-the-caller-was-already-there/measure.sh b/docs/experiments/v2/cycles/07-the-caller-was-already-there/measure.sh new file mode 100755 index 0000000..15d889c --- /dev/null +++ b/docs/experiments/v2/cycles/07-the-caller-was-already-there/measure.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# measure.sh — re-runs cycle 07's measurements. Instruments only, no new ones. +set -uo pipefail +cd "$(git rev-parse --show-toplevel)" +echo "CYCLE 07 — the caller was already there" +echo "claim: exactly three seam emission points, all keyed on fn_name" +echo +echo "-- emission points, counted in the BUILT ARTIFACT, not in source text." +echo " (the original assertion grepped codegen.el while the harness ran a" +echo " prebuilt compiler, so it measured a file with no causal link to the" +echo " binary under test. see notebook v2 E003.)" +strings /tmp/el-mut-build/elc 2>/dev/null | grep -cE '^(entry|wrap|exit)$' | xargs -I{} echo " seam phase strings in binary: {}" +grep -oE 'el_seam_(run|wrap)\(' lang/el-compiler/src/codegen.el | sort | uniq -c | sed 's/^/ source: /' +echo +echo "-- compiler size, cloc (calibrated transfer standard):" +cloc --force-lang=C --quiet --csv lang/el-compiler/src/codegen.el 2>/dev/null | tail -1 | awk -F, '{print " codegen.el blank "$3" comment "$4" code "$5}' diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.cmd b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.cmd new file mode 100644 index 0000000..27c4883 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el/docs/v1/experiments/evidence/cycles && for d in 0*-* 1*-*; do [ -f "$d/MANIFEST.tsv" ] || continue; rows=$(awk -F"\t" "NR>1 && NF>=9 && \$1!=\"sha256\"{c++} END{print c+0}" "$d/MANIFEST.tsv"); stray=$(awk -F"\t" "NR>1 && NF<9{c++} END{print c+0}" "$d/MANIFEST.tsv"); outs=$(ls "$d"/*.out 2>/dev/null | wc -l | tr -d " "); printf "%-46s wellformed_rows=%-4s stray_lines=%-4s out_files=%s\n" "$d" "$rows" "$stray" "$outs"; done diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.err b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.out b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.out new file mode 100644 index 0000000..f23bdb6 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.out @@ -0,0 +1,18 @@ +00-cross-cycle-codegen-linecounts wellformed_rows=9 stray_lines=9 out_files=10 +01-constructs-have-nowhere-to-be wellformed_rows=20 stray_lines=6 out_files=20 +02-a-construct-cannot-refuse wellformed_rows=25 stray_lines=68 out_files=25 +03-the-wrapper-was-conditional wellformed_rows=39 stray_lines=183 out_files=39 +04-c-has-no-closure-syntax wellformed_rows=32 stray_lines=26 out_files=32 +05-the-emitter-discards-what-it-knows wellformed_rows=21 stray_lines=17 out_files=21 +06-the-crossing-resolves-at-emission wellformed_rows=41 stray_lines=271 out_files=41 +07-invocation-is-not-composable wellformed_rows=22 stray_lines=18 out_files=22 +08-the-emitter-adjudicates wellformed_rows=22 stray_lines=88 out_files=22 +09-policy-inside-the-compiler wellformed_rows=26 stray_lines=135 out_files=26 +10-a-second-copy-of-the-header wellformed_rows=15 stray_lines=33 out_files=15 +11-one-type-erases-the-return wellformed_rows=11 stray_lines=0 out_files=11 +12-judgment-lives-with-knowledge wellformed_rows=10 stray_lines=0 out_files=10 +13-thirty-five-return-types wellformed_rows=20 stray_lines=0 out_files=20 +14-keywords-that-reserve-nothing wellformed_rows=15 stray_lines=0 out_files=15 +15-no-namespacing-at-all wellformed_rows=17 stray_lines=0 out_files=17 +16-tokens-carry-no-position wellformed_rows=13 stray_lines=0 out_files=13 +17-annotations-are-never-checked wellformed_rows=1 stray_lines=0 out_files=2 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.prov b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.prov new file mode 100644 index 0000000..386c7fc --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.prov @@ -0,0 +1,7 @@ +commit 9540f2399120172b92e986e081877ff058adbdd3 +tree clean +captured_utc 2026-08-17T17:40:38Z +exit 0 +ms 145 +sha256_out 8b82c6f04c641f9777dd1bd1f2ddd5dd7c61b502bb9aa33d9a013eaa25137873 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.rc b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.cmd b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.cmd new file mode 100644 index 0000000..a1c47b4 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.cmd @@ -0,0 +1 @@ +bash tools/evidence/verify-manifest.sh docs/v1/experiments/evidence/cycles diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.err b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.out b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.out new file mode 100644 index 0000000..4b29961 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.out @@ -0,0 +1 @@ + evidence: 0 artifacts verified, 0 altered, 0 missing diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.prov b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.prov new file mode 100644 index 0000000..434f3e6 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.prov @@ -0,0 +1,7 @@ +commit 9540f2399120172b92e986e081877ff058adbdd3 +tree clean +captured_utc 2026-08-17T17:40:38Z +exit 0 +ms 9 +sha256_out 965c3dc538c178d5a93adc06ac162d01ab3c5c1f21e34ec16673a5669867c4b8 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.rc b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.cmd b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.cmd new file mode 100644 index 0000000..da2d1c7 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.cmd @@ -0,0 +1 @@ +bash /Users/will/Development/neuron-technologies/foundation/el/tools/evidence/verify-manifest.sh /Users/will/Development/neuron-technologies/foundation/el/docs/v1/experiments/evidence/cycles diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.err b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.out b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.out new file mode 100644 index 0000000..fba38cb --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.out @@ -0,0 +1,9 @@ + DIRTY-TREE 11-one-type-erases-the-return/0001-codegen-lines-P3.out (commit fbb3a52220e1) — not reproducible by checkout + DIRTY-TREE 11-one-type-erases-the-return/0002-codegen-lines-newline-check.out (commit a116710bacba) — not reproducible by checkout + DIRTY-TREE 11-one-type-erases-the-return/0003-signatures-rel-name-count-P5.out (commit a116710bacba) — not reproducible by checkout + DIRTY-TREE 12-judgment-lives-with-knowledge/0001-codegen-lines-P4.out (commit a116710bacba) — not reproducible by checkout + DIRTY-TREE 12-judgment-lives-with-knowledge/0002-temporal-rel-rule-count-P2.out (commit a116710bacba) — not reproducible by checkout + DIRTY-TREE 13-thirty-five-return-types/0001-codegen-lines-P4.out (commit a116710bacba) — not reproducible by checkout + DIRTY-TREE 13-thirty-five-return-types/0002-is-int-call-name-count-P1.out (commit a116710bacba) — not reproducible by checkout + DIRTY-TREE 16-tokens-carry-no-position/0002-P1-stride-sites-touched.out (commit 99b12f85c6ba) — not reproducible by checkout + evidence: 365 artifacts verified, 0 altered, 0 missing diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.prov b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.prov new file mode 100644 index 0000000..47bec3f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.prov @@ -0,0 +1,7 @@ +commit 9540f2399120172b92e986e081877ff058adbdd3 +tree clean +captured_utc 2026-08-17T17:40:50Z +exit 0 +ms 3949 +sha256_out cd8adcbc95c1db4fa7848f51a15580de6460b5d5010ee780e4c4aa60f20d2984 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.rc b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.cmd b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.cmd new file mode 100644 index 0000000..26f5ce7 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.cmd @@ -0,0 +1 @@ +bash -c D=$(mktemp -d); bash /Users/will/Development/neuron-technologies/foundation/el/tools/evidence/verify-manifest.sh "$D"; echo "exit=$? on a directory containing NO manifests at all"; rmdir "$D" diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.err b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.out b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.out new file mode 100644 index 0000000..7ba716d --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.out @@ -0,0 +1,2 @@ + evidence: 0 artifacts verified, 0 altered, 0 missing +exit=0 on a directory containing NO manifests at all diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.prov b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.prov new file mode 100644 index 0000000..fa522e4 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.prov @@ -0,0 +1,7 @@ +commit 9540f2399120172b92e986e081877ff058adbdd3 +tree clean +captured_utc 2026-08-17T17:41:07Z +exit 0 +ms 19 +sha256_out 824b7a3f9cfba4b9edb8250714efb5f671b94e15f51abe9e04e7d24e44a19fb6 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.rc b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.cmd b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.cmd new file mode 100644 index 0000000..b05acac --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.cmd @@ -0,0 +1 @@ +bash -c printf "%-11s %-22s %-22s %s\n" CYCLE CLAIMED OBSERVED "OFFSET(parent/commit)"; printf "%-11s %-22s %-22s %s\n" "03/285166c" "5094 -> 5044 (d50)" "5095 -> 5043 (d52)" "-1 / +1"; printf "%-11s %-22s %-22s %s\n" "06/28d19da" "5157 -> 5096 (d61)" "5156 -> 5095 (d61)" "+1 / +1"; printf "%-11s %-22s %-22s %s\n" "07/bc2f26d" "5042 -> 4977 (d65)" "5043 -> 4976 (d67)" "-1 / +1"; printf "%-11s %-22s %-22s %s\n" "08/c741cfe" "4962 (+301)" "4962 (+301)" " 0 / 0"; printf "%-11s %-22s %-22s %s\n" "09/c2d9596" "4963 -> 4881 (d82)" "4962 -> 4896 (d66)" "-1 / -15"; printf "%-11s %-22s %-22s %s\n" "10/9cc6040" "4903 -> 4512 (d391)" "4896 -> 4512 (d384)" "+7 / 0"; echo; echo "Offsets are NOT in a consistent direction. A single counting convention (missing trailing newline, editor last-line number) would produce a uniform offset. It does not." diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.err b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.out b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.out new file mode 100644 index 0000000..cacc523 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.out @@ -0,0 +1,9 @@ +CYCLE CLAIMED OBSERVED OFFSET(parent/commit) +03/285166c 5094 -> 5044 (d50) 5095 -> 5043 (d52) -1 / +1 +06/28d19da 5157 -> 5096 (d61) 5156 -> 5095 (d61) +1 / +1 +07/bc2f26d 5042 -> 4977 (d65) 5043 -> 4976 (d67) -1 / +1 +08/c741cfe 4962 (+301) 4962 (+301) 0 / 0 +09/c2d9596 4963 -> 4881 (d82) 4962 -> 4896 (d66) -1 / -15 +10/9cc6040 4903 -> 4512 (d391) 4896 -> 4512 (d384) +7 / 0 + +Offsets are NOT in a consistent direction. A single counting convention (missing trailing newline, editor last-line number) would produce a uniform offset. It does not. diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.prov b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.prov new file mode 100644 index 0000000..efe84b5 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.prov @@ -0,0 +1,7 @@ +commit 9540f2399120172b92e986e081877ff058adbdd3 +tree clean +captured_utc 2026-08-17T17:46:23Z +exit 0 +ms 8 +sha256_out df3922caf56164ed2e7e7e69bc9d7926e7decb4366ef8ef870191e86a6098e66 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.rc b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.cmd b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.cmd new file mode 100644 index 0000000..2d1c2d0 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.cmd @@ -0,0 +1 @@ +bash -c for c in 45325f7 addd5120 409bf573 dcaa77d; do n=$(git show "${c}:lang/el-compiler/src/codegen.el" /dev/null | wc -l | tr -d " "); printf "%-10s codegen.el=%-6s touched_codegen=%s %s\n" "$c" "$n" "$(git show --name-only --format="" "$c" | grep -c "el-compiler/src/codegen.el")" "$(git log -1 --format="%ci %s" "$c")"; done diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.err b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.out b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.out new file mode 100644 index 0000000..f2d390d --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.out @@ -0,0 +1,4 @@ +45325f7 codegen.el=4661 touched_codegen=1 2026-08-16 16:08:40 -0500 singleton: guard the state, not the program's name +addd5120 codegen.el=4661 touched_codegen=0 2026-08-16 19:59:43 -0500 runtime: extract engram_text.c, and repair 10 harnesses that could not link +409bf573 codegen.el=4661 touched_codegen=0 2026-08-17 04:34:32 -0500 track the architecture docs +dcaa77d codegen.el=4670 touched_codegen=1 2026-08-17 04:53:40 -0500 make boundary crossings attributable to the construct that caused them diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.prov b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.prov new file mode 100644 index 0000000..6fb80e5 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.prov @@ -0,0 +1,7 @@ +commit 9540f2399120172b92e986e081877ff058adbdd3 +tree clean +captured_utc 2026-08-17T17:50:20Z +exit 0 +ms 93 +sha256_out e1f3740adfea072c2830cd7381b79864640925eefb64da06229008d948500698 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.rc b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.cmd b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.cmd new file mode 100644 index 0000000..da2d1c7 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.cmd @@ -0,0 +1 @@ +bash /Users/will/Development/neuron-technologies/foundation/el/tools/evidence/verify-manifest.sh /Users/will/Development/neuron-technologies/foundation/el/docs/v1/experiments/evidence/cycles diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.err b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.out b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.out new file mode 100644 index 0000000..98a2d66 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.out @@ -0,0 +1,13 @@ + DIRTY-TREE 16-tokens-carry-no-position/0002-P1-stride-sites-touched.out (commit 99b12f85c6ba) — not reproducible by checkout + DIRTY-TREE 19-a-convention-is-not-a-gate/0016-P8-rederived-build.out (commit 9a6c161ba98a) — not reproducible by checkout + DIRTY-TREE 19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.out (commit 9a6c161ba98a) — not reproducible by checkout + DIRTY-TREE 19-a-convention-is-not-a-gate/0018-P8-rederived-cc.out (commit 9a6c161ba98a) — not reproducible by checkout + DIRTY-TREE 19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.out (commit 9a6c161ba98a) — not reproducible by checkout + DIRTY-TREE 11-one-type-erases-the-return/0001-codegen-lines-P3.out (commit fbb3a52220e1) — not reproducible by checkout + DIRTY-TREE 11-one-type-erases-the-return/0002-codegen-lines-newline-check.out (commit a116710bacba) — not reproducible by checkout + DIRTY-TREE 11-one-type-erases-the-return/0003-signatures-rel-name-count-P5.out (commit a116710bacba) — not reproducible by checkout + DIRTY-TREE 12-judgment-lives-with-knowledge/0001-codegen-lines-P4.out (commit a116710bacba) — not reproducible by checkout + DIRTY-TREE 12-judgment-lives-with-knowledge/0002-temporal-rel-rule-count-P2.out (commit a116710bacba) — not reproducible by checkout + DIRTY-TREE 13-thirty-five-return-types/0001-codegen-lines-P4.out (commit a116710bacba) — not reproducible by checkout + DIRTY-TREE 13-thirty-five-return-types/0002-is-int-call-name-count-P1.out (commit a116710bacba) — not reproducible by checkout + evidence: 444 artifacts verified, 0 altered, 0 missing diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.prov b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.prov new file mode 100644 index 0000000..544f550 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.prov @@ -0,0 +1,7 @@ +commit 9540f2399120172b92e986e081877ff058adbdd3 +tree clean +captured_utc 2026-08-17T17:50:45Z +exit 0 +ms 5030 +sha256_out 85ba5373fa09dd9e7c17fae1a15c1b1b0687d38d8ef16ed26c3cbe3c4acbc604 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.rc b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.cmd b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.cmd new file mode 100644 index 0000000..2186167 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.cmd @@ -0,0 +1 @@ +bash -c printf "fn main() {\n let sep: String = \"\037\"\n println(el_str_concat(\"a\", el_str_concat(sep, \"b\")))\n}\n" > /tmp/ctrl.el; echo "--- source bytes (note the raw 037 = 0x1F) ---"; od -c /tmp/ctrl.el | sed -n "2,3p"; echo "--- emitted run 1 ---"; /tmp/elcxc /tmp/ctrl.el 2>/dev/null | grep -n "el_val_t sep"; echo "--- emitted run 2 ---"; /tmp/elcxc /tmp/ctrl.el 2>/dev/null | grep -n "el_val_t sep"; echo "--- emitted run 3 ---"; /tmp/elcxc /tmp/ctrl.el 2>/dev/null | grep -n "el_val_t sep" diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.err b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.out b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.out new file mode 100644 index 0000000..d00a5fb --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.out @@ -0,0 +1,9 @@ +--- source bytes (note the raw 037 = 0x1F) --- +0000020 l e t s e p : S t r i n g +0000040 = " 037 " \n p r i n t l +--- emitted run 1 --- +8: el_val_t sep = EL_STR("4344967392"); +--- emitted run 2 --- +8: el_val_t sep = EL_STR("4347851136"); +--- emitted run 3 --- +8: el_val_t sep = EL_STR("4384031472"); diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.prov b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.prov new file mode 100644 index 0000000..245d6d6 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.prov @@ -0,0 +1,7 @@ +commit 9540f2399120172b92e986e081877ff058adbdd3 +tree clean +captured_utc 2026-08-17T17:44:07Z +exit 0 +ms 25 +sha256_out 4cce61f4529b6a536afcd74e324260321d05ffd78ead881a5d98c3a59fa8c2c0 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.rc b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0001-minimal-reproducer-control-char-literal.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.cmd b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.cmd new file mode 100644 index 0000000..3f047cf --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.cmd @@ -0,0 +1 @@ +bash -c printf "fn main() {\n let a: String = \"\"\n let b: String = \"ok\"\n let c: String = \"\037\"\n let d: String = \"\011\"\n println(el_str_concat(a, el_str_concat(b, el_str_concat(c, d))))\n}\n" > /tmp/ctrl2.el; /tmp/elcxc /tmp/ctrl2.el 2>/dev/null | grep -nE "el_val_t (a|b|c|d) =" diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.err b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.out b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.out new file mode 100644 index 0000000..820693e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.out @@ -0,0 +1,4 @@ +8: el_val_t a = EL_STR(""); +9: el_val_t b = EL_STR("ok"); +10: el_val_t c = EL_STR("4324455808"); +11: el_val_t d = EL_STR("\t"); diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.prov b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.prov new file mode 100644 index 0000000..d5e4660 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.prov @@ -0,0 +1,7 @@ +commit 9540f2399120172b92e986e081877ff058adbdd3 +tree clean +captured_utc 2026-08-17T17:44:07Z +exit 0 +ms 13 +sha256_out 8b2a77870c944d8a686c4dac1f63fe40a5b3b7369f362f7b893053afde93621e +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.rc b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0002-control-char-vs-empty-and-printable.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.cmd b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.cmd new file mode 100644 index 0000000..339628a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1-xc && /tmp/elcxc arbor/vessels/arbor-parse/src/main.el > /tmp/A.c 2>/dev/null; /tmp/elcxc arbor/vessels/arbor-parse/src/main.el > /tmp/B.c 2>/dev/null; shasum -a 256 /tmp/A.c /tmp/B.c; echo "--- diff ---"; diff /tmp/A.c /tmp/B.c | head -14; echo "--- source of the literal at El line 259 (cat -v) ---"; sed -n "259p" arbor/vessels/arbor-parse/src/main.el | cat -v diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.err b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.out b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.out new file mode 100644 index 0000000..60b040f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.out @@ -0,0 +1,17 @@ +f623cf49c5b8dac9a08bc9487d707f7c8274a5256268d6a0d2ad710338ae014a /tmp/A.c +ed89c2a0d976b1826a4ee98ad953a2ab3ea1f6cdb755df67eb95e267abc81f73 /tmp/B.c +--- diff --- +481c481 +< out = el_str_concat(out, EL_STR("33404397808")); +--- +> out = el_str_concat(out, EL_STR("36759834384")); +506c506 +< return str_split(s, EL_STR("33404400048")); +--- +> return str_split(s, EL_STR("36759837600")); +620c620 +< state_set(key, el_str_concat(el_str_concat(prev, EL_STR("33404413632")), node_id)); +--- +> state_set(key, el_str_concat(el_str_concat(prev, EL_STR("36759857760")), node_id)); +--- source of the literal at El line 259 (cat -v) --- + if i > 0 { let out = out + "^_" } diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.prov b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.prov new file mode 100644 index 0000000..4aab779 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.prov @@ -0,0 +1,7 @@ +commit 9540f2399120172b92e986e081877ff058adbdd3 +tree clean +captured_utc 2026-08-17T17:44:07Z +exit 0 +ms 41 +sha256_out efc70a381315d22d1d158cd98ee4b88cc3940a367ecb58d09ad9681b7ad9f05e +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.rc b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/0003-real-file-nondeterminism-arbor-parse.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/CLAIMS.md b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/CLAIMS.md new file mode 100644 index 0000000..8391f47 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/CLAIMS.md @@ -0,0 +1,102 @@ +# DEFECT — string literals containing control bytes compile to a heap address + +Not a cycle claim. This is a **live miscompilation in the current compiler**, found +incidentally during the cycle 01–10 evidence re-run and confirmed at branch HEAD. + +It is filed with the evidence because it invalidates a *method* that cycles 01–04 rely +on: "the emitted C is byte-identical" is only meaningful if the emitter is +deterministic, and for affected inputs it is not. + +## Provenance + +Captured from a clean detached worktree at `9540f2399` (`iteration-2` HEAD), compiler +built at that commit. All artifacts `tree=clean`. + +Found by the cycle 04 agent while checking prediction 5 ("existing `@manager` output +byte-identical") across the whole tree: of 378 `.el` files, 368 emitted identically +under the parent and the commit compiler, 9 failed under both, and **1 differed — and +differed from itself between two runs of the same compiler.** I reproduced it +independently at HEAD before accepting it. + +## The defect + +A string literal containing a raw control byte with no escape mapping is emitted as a +**decimal heap address** instead of the string. + +`0002-control-char-vs-empty-and-printable.out` isolates it exactly: + +``` + 8: el_val_t a = EL_STR(""); + 9: el_val_t b = EL_STR("ok"); +10: el_val_t c = EL_STR("4324455808"); <-- source literal is a raw 0x1F +11: el_val_t d = EL_STR("\t"); +``` + +- empty literal `""` — correct +- printable literal `"ok"` — correct +- **raw `0x1F` (unit separator) — emitted as `4324455808`** +- raw `0x09` (tab) — correct, `"\t"` + +Tab has an escape mapping and survives. `0x1F` has none, and instead of being escaped +it falls through to a path that stringifies a pointer. + +## It is nondeterministic + +`0001-minimal-reproducer-control-char-literal.out`, three consecutive runs of the +**same** compiler on the **same** source: + +``` +--- emitted run 1 --- el_val_t sep = EL_STR("4344967392"); +--- emitted run 2 --- el_val_t sep = EL_STR("4347851136"); +--- emitted run 3 --- el_val_t sep = EL_STR("4384031472"); +``` + +The value tracks the process heap base, which moves under ASLR. + +## It occurs in real code in this repository + +`0003-real-file-nondeterminism-arbor-parse.out`. `arbor/vessels/arbor-parse/src/main.el` +uses `0x1F` as a field separator — El source line 259, shown through `cat -v`: + +``` +if i > 0 { let out = out + "^_" } +``` + +Two runs of the same compiler over that file produce different sha256, differing in +three places, each a separator literal rendered as a different address. Within a single +run the corrupted values differ by fixed offsets (`+2240`, `+32208`), consistent with +distinct literals in one heap arena; across runs the whole block shifts. + +The file applies **no decorators at all**, so this is unrelated to the construct work +in cycles 01–10, and it reproduces at cycle 04's parent `4f7568b` as well as at HEAD. +It predates the cycle series. + +## Why it matters + +1. **Silent miscompilation.** `arbor-parse` builds and links. At runtime it joins and + splits records on a separator that is a decimal rendering of an address rather than + `0x1F` — and the encode and decode sides get *different* values whenever they are + compiled separately. No diagnostic is produced at any stage. +2. **Reproducible builds are broken** for any source containing such a literal. +3. **It weakens byte-identity as a control.** Cycles 01, 02, 03 and 04 all assert + "emitted C is byte-identical". Those assertions were checked on decorator-bearing + sources, which are unaffected — the cycle 04 agent verified all 3 `@manager`/ + `@accessor` files emit identically — so no cycle verdict changes. But the control + itself is only sound on inputs that avoid this defect, and nothing in the record + says so. + +## Verdicts + +| Claim | Artifact | Verdict | +|---|---|---| +| Control-byte literals emit as an address, not the string | `0002` | **CONFIRMED** | +| The emitter is nondeterministic for such inputs | `0001` (3 runs) | **CONFIRMED** | +| A real file in this repo is affected | `0003` | **CONFIRMED** | +| The defect predates cycles 01–10 | cycle 04's `0049`-series (parent `4f7568b` shows it too) | **CONFIRMED** | + +## Not fixed here + +This evidence pass does not change code. The defect is recorded, reproduced, and +minimally isolated so it can be fixed and regression-tested separately. A fix should +escape all non-printable bytes in the literal emitter and add a test asserting that +compiling the same source twice yields byte-identical output. diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/MANIFEST.tsv b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/MANIFEST.tsv new file mode 100644 index 0000000..6a0211f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/MANIFEST.tsv @@ -0,0 +1,4 @@ +sha256 bytes exit ms commit tree utc artifact command +4cce61f4529b6a536afcd74e324260321d05ffd78ead881a5d98c3a59fa8c2c0 382 0 25 9540f2399120 clean 2026-08-17T17:44:07Z 0001-minimal-reproducer-control-char-literal.out bash -c printf "fn main() {\n let sep: String = \"\037\"\n println(el_str_concat(\"a\", el_str_concat(sep, \"b\")))\n}\n" > /tmp/ctrl.el; echo "--- source bytes (note the raw 037 = 0x1F) ---"; od -c /tmp/ctrl.el | sed -n "2,3p"; echo "--- emitted run 1 ---"; /tmp/elcxc /tmp/ctrl.el 2>/dev/null | grep -n "el_val_t sep"; echo "--- emitted run 2 ---"; /tmp/elcxc /tmp/ctrl.el 2>/dev/null | grep -n "el_val_t sep"; echo "--- emitted run 3 ---"; /tmp/elcxc /tmp/ctrl.el 2>/dev/null | grep -n "el_val_t sep" +8b2a77870c944d8a686c4dac1f63fe40a5b3b7369f362f7b893053afde93621e 132 0 13 9540f2399120 clean 2026-08-17T17:44:07Z 0002-control-char-vs-empty-and-printable.out bash -c printf "fn main() {\n let a: String = \"\"\n let b: String = \"ok\"\n let c: String = \"\037\"\n let d: String = \"\011\"\n println(el_str_concat(a, el_str_concat(b, el_str_concat(c, d))))\n}\n" > /tmp/ctrl2.el; /tmp/elcxc /tmp/ctrl2.el 2>/dev/null | grep -nE "el_val_t (a|b|c|d) =" +efc70a381315d22d1d158cd98ee4b88cc3940a367ecb58d09ad9681b7ad9f05e 685 0 41 9540f2399120 clean 2026-08-17T17:44:07Z 0003-real-file-nondeterminism-arbor-parse.out bash -c cd /tmp/rerun-v1-xc && /tmp/elcxc arbor/vessels/arbor-parse/src/main.el > /tmp/A.c 2>/dev/null; /tmp/elcxc arbor/vessels/arbor-parse/src/main.el > /tmp/B.c 2>/dev/null; shasum -a 256 /tmp/A.c /tmp/B.c; echo "--- diff ---"; diff /tmp/A.c /tmp/B.c | head -14; echo "--- source of the literal at El line 259 (cat -v) ---"; sed -n "259p" arbor/vessels/arbor-parse/src/main.el | cat -v diff --git a/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/RUN.env b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/RUN.env new file mode 100644 index 0000000..9e0bcc5 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/RUN.env @@ -0,0 +1,6 @@ +captured_utc 2026-08-17T17:44:07Z +git_sha 9540f2399120172b92e986e081877ff058adbdd3 +git_dirty no +host Wills-MacBook-Pro +uname Darwin Wills-MacBook-Pro 25.5.0 Darwin Kernel Version 25.5.0: Tue Jun 9 22:28:34 PDT 2026; root:xnu-12377.121.10~1/RELEASE_ARM64_T6041 arm64 +cc Apple clang version 21.0.0 (clang-2100.1.1.101) diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.cmd b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.cmd new file mode 100644 index 0000000..6788188 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.cmd @@ -0,0 +1,7 @@ +bash -c +echo "Which C source each timed binary was built from, and whether it contains wrappers:" +for pair in "/tmp/elcP_g2:/tmp/pg2_03b.c:BEFORE bootstrap-built 24f7fb5" "/tmp/elcP_g3:/tmp/pg3_03b.c:BEFORE self-hosted 24f7fb5" "/tmp/elc03b:/tmp/g03b.c:AFTER bootstrap-built 285166c" "/tmp/elc03b_g3:/tmp/g03b_b.c:AFTER self-hosted 285166c"; do + bin=${pair%%:*}; rest=${pair#*:}; src=${rest%%:*}; lbl=${rest#*:} + printf " %-34s bin=%-18s src=%-16s lines=%-6s __el_body_ defs=%s el_seam_run calls=%s\n" \ + "$lbl" "$bin" "$src" "$(wc -l < $src | tr -d \" \")" "$(grep -cE \"^static el_val_t __el_body_\" $src)" "$(grep -c \"el_seam_run(\" $src)" +done diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.err b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.err new file mode 100644 index 0000000..c94d644 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.err @@ -0,0 +1,2 @@ +bash: -c: line 6: syntax error near unexpected token `(' while looking for matching `)' +bash: -c: line 6: ` "$lbl" "$bin" "$src" "$(wc -l < $src | tr -d \" \")" "$(grep -cE \"^static el_val_t __el_body_\" $src)" "$(grep -c \"el_seam_run(\" $src)"' diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.out b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.out new file mode 100644 index 0000000..7ecd70c --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.out @@ -0,0 +1 @@ +Which C source each timed binary was built from, and whether it contains wrappers: diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.prov b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.prov new file mode 100644 index 0000000..a7daa1e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.prov @@ -0,0 +1,7 @@ +commit 285166c25c218e3ea91d9ceb537fac51fdd18c80 +tree clean +captured_utc 2026-08-17T17:39:59Z +exit 127 +ms 8 +sha256_out 735264ceb5cf2e7c87d6dfc97b4f119ce4ac55f43f0a55a7fe8660a6d19e341a +sha256_err 2d5c6c486c88c06cffc7bc1c6e3e8a2ddfb0454327219601b015e8c9d9848b27 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.rc b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.rc new file mode 100644 index 0000000..c75acbe --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.rc @@ -0,0 +1 @@ +127 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.cmd b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.cmd new file mode 100644 index 0000000..b16da49 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.cmd @@ -0,0 +1 @@ +bash /tmp/wrapcheck03b.sh diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.err b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.out b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.out new file mode 100644 index 0000000..46f73a8 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.out @@ -0,0 +1,7 @@ +binary <- C source it was compiled from; wrapper content of that C: +LABEL BINARY C SOURCE LINES __el_body_defs el_seam_run +BEFORE bootstrap-built 24f7fb5 /tmp/elcP_g2 /tmp/pg2_03b.c 11477 0 1 +BEFORE self-hosted 24f7fb5 /tmp/elcP_g3 /tmp/pg3_03b.c 11739 0 263 +AFTER bootstrap-built 285166c /tmp/elc03b /tmp/g03b.c 11409 0 2 +AFTER self-hosted 285166c /tmp/elc03b_g3 /tmp/g03b_b.c 12957 258 518 +4f7568b bootstrap-built /tmp/elc03a /tmp/g03a.c 11361 0 0 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.prov b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.prov new file mode 100644 index 0000000..5845a49 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.prov @@ -0,0 +1,7 @@ +commit 285166c25c218e3ea91d9ceb537fac51fdd18c80 +tree clean +captured_utc 2026-08-17T17:40:09Z +exit 0 +ms 79 +sha256_out 7bcac9b43e4a788b7baf36cee0f885a5c3280c2c22cfa04548bee9e282a269df +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.rc b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.cmd b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.cmd new file mode 100644 index 0000000..32c7a1d --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.cmd @@ -0,0 +1,8 @@ +bash -c +echo "b40754f is a MERGE commit. Parents:"; git log -1 --format=" %H%n parents: %P" b40754f +echo; echo "b40754f parents resolved:"; for p in $(git log -1 --format=%P b40754f); do git log -1 --format=" %h %ci %s" $p; done +echo; echo "tree diff 285166c .. b40754f (empty = identical trees):" +git diff --stat 285166c b40754f || true +echo "[end diff]" +echo; echo "tree diff 24f7fb5 .. b40754f:" +git diff --stat 24f7fb5 b40754f | tail -5 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.err b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.out b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.out new file mode 100644 index 0000000..455d931 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.out @@ -0,0 +1,16 @@ +b40754f is a MERGE commit. Parents: + b40754f07b5eff3700a69681397e46949a5c4f41 + parents: 24f7fb51436bdc68838fd7651d7377f3fb919ee3 285166c25c218e3ea91d9ceb537fac51fdd18c80 + +b40754f parents resolved: + 24f7fb51 2026-08-17 08:56:41 -0500 land the runtime seam: resolve the crossing at execution + 285166c2 2026-08-17 09:01:55 -0500 EXPERIMENT: emit the wrapper unconditionally, so exit binds at runtime too + +tree diff 285166c .. b40754f (empty = identical trees): +[end diff] + +tree diff 24f7fb5 .. b40754f: + lang/el-compiler/src/codegen.el | 56 ++-------------------------------- + lang/tests/integration/seam_binding.sh | 9 +++++- + lang/tests/native/test_compiler.el | 46 +++++++++++++++++----------- + 3 files changed, 39 insertions(+), 72 deletions(-) diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.prov b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.prov new file mode 100644 index 0000000..1c3add3 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.prov @@ -0,0 +1,7 @@ +commit 285166c25c218e3ea91d9ceb537fac51fdd18c80 +tree clean +captured_utc 2026-08-17T17:40:22Z +exit 0 +ms 48 +sha256_out d4fcdf229cbcef003001b4b85e1102124c06ad3959284b74f8e66a4cc4daea77 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.rc b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.cmd b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.cmd new file mode 100644 index 0000000..844c8b3 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.cmd @@ -0,0 +1 @@ +bash /tmp/sec6probe03a.sh diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.err b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.out b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.out new file mode 100644 index 0000000..3431318 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.out @@ -0,0 +1,237 @@ +=== A. The source of the figures: docs/architecture/el-language-design.md §6, at 4f7568b === + +--- + +## 6. The residue map + +What each construct must absorb, from §18.0 plus measured state: + +| Residue | Count | Absorbed by | +|---|---|---| +| persist-after-mutate | 62 sites | `hold` (after-crossing) | +| auth-per-route | 10 sites | `hold` (before-crossing) | +| index-after-append | 9 of 9 failed | `hold` (after-crossing) | +| env var defaults | 20 | configuration declared once | +| process identity | 0 guards | `hold` (before-crossing) | +| `geometry_free` at every call site | every site | ownership follows from `semel` | +| five ingest functions where there is one | 5 → 1 | `protocol` / `impl` | +| `el_runtime.c` | 20,504 lines | faculty decomposition, ordered after `semel` | + +--- + +## 7. Notes carried forward + +**`el-architecture.html` §04 needs its numbers sourced or cut.** An audit found the +faculty scoreboard — `Ingest 2 min → 0 nodes`, `Recall self ranked 8th`, +`Body CC 356 / 1,626 ln`, `the verifier answers in 2.9s`, `5 of 13 native suites +failing` — has no supporting evidence in the repository, under a footer asserting +*"nothing is inferred and presented as fact."* Against a corpus whose documents +supersede their own conclusions in place, that is the one file that would not survive +scrutiny. Fix or remove. + +**Source as a projection surface is claimed and unimplemented.** `el-architecture.html` +§147/§150: *"if source is a surface, then emitting a corrected file is projection."* +Greps for `surface_profile_code`, `emit_source` → zero hits. + +It is not unbacked. **It was demonstrated on 2026-08-14** — three faculties (phonetic, +semantic, procedural) projected into TypeScript, a surface the system had never used, +with the network severed. Recovered at +`~/Development/neuron-technologies/andre-server-recovered/` and copied into +`evidence/03-andre-demo/`. The claim needs bringing home to El, not proving. + +**`hold` is the highest-leverage construct after `semel`** — it collapses 62 + 10 + 9 +sites and unblocks the runtime extraction. §19.3 names the prologue/epilogue seam as +the prerequisite and its stated blocker has expired. + +--- + +## 8. What is not decided and must not be guessed + + +=== B. Upstream population statement: lang/spec/language.md §18.0 / §19.1 / §19.2, at 4f7568b === +El's units of encapsulation are the function and the module. Neither can hold a concern like that. So each one had been expressed the only way it could be — as a **convention**: *call this at every site.* Conventions of that shape do not hold. They are not enforced by anything, they are invisible in review, and they fail silently at the one site somebody forgot. + +Measured in this codebase before this section existed: + +| Concern | State | What the convention was | +|---|---|---| +| process identity | **zero** guards anywhere — no pidfile, no lock, no already-running check, at any layer | "check nothing is already running first" | +| configuration | **20** distinct environment variables in one program, each with its default written inline at the read site | "remember the right default here" | +| durability | **62** `persist_*` / `engram_save` / `wal_*` / `checkpoint` call sites | "after you mutate, remember to persist" | +| request auth | **10** per-route `_auth` checks | "check the token in this handler too" | + +These are not four problems. They are one absence, four times. + +That the convention form fails is observed, not predicted. Process identity failed three times in a single day: twice, two engram processes ran simultaneously against the same data directory; twice, a stale binary held a port and answered probes while a fresh build was believed to be under test, because `pkill -f` had silently failed to match its argv — which nearly produced a false "the fix does not work" conclusion. Configuration failed structurally: `ENGRAM_DATA_DIR` was read at six sites, five of them dead bindings, and the sixth defaulted to `/tmp/engram` — contradicting the canonical resolver's `$HOME/.neuron/engram` and landing a pre-destructive safety backup on ephemeral storage. + +The `program` block is where a concern of this shape is declared once and enforced by the compiler at the process boundary. + ---- §19.1 ---- +Sections 19.1 and 19.2 specify the two remaining concerns from the table in 18.0. Both are **designed and deliberately unimplemented.** The reason is stated in 19.3 and it is not difficulty. + +### 19.1 Durability as an epilogue effect + +**The defect.** 62 call sites carry the convention *"after you mutate, remember to persist."* This is structurally the same defect as the index bug being fixed elsewhere in this tree — *"after you append, remember to index"* — which failed at **9 of 9** sites. A convention that failed at 100% of its sites is the strongest available evidence about what this class of convention is worth. + +**Why the existing seam cannot express it.** §9's injection is a prologue. Durability is inherently an *epilogue*: persist after the mutation succeeds, and not at all if it threw. The seam has no epilogue. + +**Design.** Extend the decorator seam from prologue-only to prologue/epilogue, then declare durability as an effect on the mutating function: + + ---- §19.2 ---- +**Enforcement, and this is the part that actually fixes it.** Mirroring §9's `#error` for `dharma_emit`: a function that calls a mutating primitive without carrying `@durable` is a **compile error**. Otherwise this is a 63rd thing to remember rather than a replacement for 62. + +### 19.2 Request authorization as a route effect + +**The defect.** 10 per-route `_auth` checks. The HTTP layer has no concept of authorization, so a new route is unauthenticated by default and silently so — the failure mode is a route that forgot, and nothing anywhere reports it. + +**Design.** Authorization becomes an argument to the `@route` decorator, which already takes arguments and already builds a dispatch table: + +``` + +=== C. Attempted re-derivation of '62 persist-after-mutate sites' === +The stated pattern set is: persist_* / engram_save / wal_* / checkpoint call sites. +No directory, glob, language, commit or call-vs-declaration rule is stated. Trying several scopes: + scope=. all-files=302 (*.el only under it: 69) + scope=engram all-files=151 (*.el only under it: 53) + scope=engram/src all-files=52 (*.el only under it: 52) + scope=lang all-files=122 (*.el only under it: 3) + scope=ql all-files=0 (*.el only under it: 0) + scope=peripheral all-files=5 (*.el only under it: 5) + --- tree-wide, *.el only --- + 69 + --- tree-wide, *.el only, per-symbol breakdown --- + 12 persist_canonical( + 10 engram_save( + 7 wal_on( + 7 persist_node( + 6 persist_edges_since( + 6 checkpoint( + 4 wal_maybe_compact( + 3 persist_resume( + 3 persist_bulk( + 2 wal_node_put( + 2 wal_edges_since( + 2 persist_now( + 2 persist_hebb_batch( + 1 wal_hebb_batch( + 1 wal_compact( + 1 wal_boot( + +=== D. Attempted re-derivation of '10 per-route _auth checks' === + occurrences of _auth tree-wide at 4f7568b: + 4f7568b:engram/dist/engram:3 + 4f7568b:engram/dist/engram.c:4 + 4f7568b:engram/spec/grounded-edge-propagation/awareness.beat.patch.el:2 + 4f7568b:engram/spec/grounded-edge-propagation/server.route.patch.el:2 + 4f7568b:engram/src/server.el:11 + 4f7568b:ide/vessels/el-ide-server/src/el-ide-server:2 + 4f7568b:ide/vessels/el-ide-server/src/el-ide-server-asan:2 + 4f7568b:ide/vessels/el-ide-server/src/el-ide-server-asan.dSYM/Contents/Resources/DWARF/el-ide-server-asan:2 + 4f7568b:ide/vessels/el-lsp/src/el-lsp:2 + 4f7568b:ide/vessels/el-plugin-host/src/el-plugin-host:2 + 4f7568b:ingest/src/ingest.el:2 + 4f7568b:lang/BOOTSTRAP.md:1 + 4f7568b:lang/dist/elc-bootstrap.c:1 + 4f7568b:lang/dist/elc-new.c:1 + 4f7568b:lang/dist/platform/elb:2 + 4f7568b:lang/dist/platform/elb-darwin-arm64:2 + 4f7568b:lang/dist/platform/elb-linux-amd64:1 + 4f7568b:lang/dist/platform/elc:3 + 4f7568b:lang/dist/platform/elc-asan:3 + 4f7568b:lang/dist/platform/elc-asan.dSYM/Contents/Resources/DWARF/elc-asan:2 + 4f7568b:lang/dist/platform/elc-darwin-arm64:3 + 4f7568b:lang/dist/platform/elc-linux-amd64:2 + 4f7568b:lang/dist/platform/elc.20260502-0130-self-host:3 + 4f7568b:lang/dist/platform/elc.20260502-1104-self-host:3 + 4f7568b:lang/dist/platform/elc.20260502-1231-self-host:3 + 4f7568b:lang/dist/platform/elc.20260502-1249-self-host:3 + 4f7568b:lang/dist/platform/elc.20260502-1256-self-host:3 + 4f7568b:lang/dist/platform/elc.20260502-1321-self-host:3 + 4f7568b:lang/dist/platform/elc.20260502-1916-self-host:3 + 4f7568b:lang/dist/platform/elc.20260503-1555-post-sprint:3 + 4f7568b:lang/dist/platform/elc.20260503-1603-post-lsp:3 + 4f7568b:lang/dist/platform/elc.c:1 + 4f7568b:lang/dist/platform/elc.prelaunch.bak:3 + 4f7568b:lang/dist/platform/elc.preselfhost:3 + 4f7568b:lang/dist/platform/elc.prev5:2 + 4f7568b:lang/dist/platform/elc.prev6:2 + 4f7568b:lang/dist/platform/elc.prev7:3 + 4f7568b:lang/dist/platform/elc.prev8:3 + 4f7568b:lang/dist/platform/elc.prev9:3 + 4f7568b:lang/el-compiler/src/codegen.el:3 + 4f7568b:lang/elc-combined.el:1 + 4f7568b:lang/elc.c:1 + 4f7568b:lang/examples/browser-auth.el:3 + 4f7568b:lang/runtime/el_capture_darwin.m:7 + 4f7568b:lang/runtime/el_runtime.c:4 + 4f7568b:lang/runtime/el_runtime.h:1 + 4f7568b:lang/runtime/el_runtime_win32.c:1 + 4f7568b:lang/runtime/http.el:3 + 4f7568b:lang/spec/language.md:2 + 4f7568b:lang/swarm/primitives.el:2 + 4f7568b:lang/swarm/reshape_surface.el:3 + 4f7568b:lang/swarm/worktrack.el:1 + 4f7568b:lang/tests/native/test_compiler.el:8 + 4f7568b:lang/tools/lsp/dist/el-lsp:2 + 4f7568b:peripheral/src/organ_cli.el:1 + 4f7568b:tools/api-reshape/agentic_loop.el:6 + 4f7568b:tools/api-reshape/parity.sh:3 + 4f7568b:tools/neuron-sandbox/nsbx:3 + 4f7568b:ui/examples/native-hello-android/app/src/main/jni/el_runtime.c:2 + 4f7568b:ui/examples/native-hello-android/app/src/main/jni/el_runtime.h:1 + 4f7568b:ui/examples/native-hello-ios/NativeHello/el_runtime.c:2 + 4f7568b:ui/examples/native-hello-ios/NativeHello/el_runtime.h:1 + 4f7568b:ui/examples/native-hello/build-docker/runtime/el_runtime.c:2 + 4f7568b:ui/examples/native-hello/build-docker/runtime/el_runtime.h:1 + 4f7568b:ui/examples/native-hello/build-gtk4/.rt_T.txt:1 + 4f7568b:ui/examples/native-hello/build-gtk4/.rt_keep.txt:1 + 4f7568b:ui/examples/native-hello/build-gtk4/el_runtime.o:1 + 4f7568b:ui/examples/native-hello/build-gtk4/native-hello-gtk4:2 + 4f7568b:ui/examples/native-hello/build-win32/el_runtime_win32.o:1 + 4f7568b:ui/examples/native-hello/build-win32/native-hello.exe:2 + 4f7568b:ui/examples/native-hello/build/.rt_T.txt:1 + 4f7568b:ui/examples/native-hello/build/.rt_keep.txt:1 + 4f7568b:ui/examples/native-hello/build/el_runtime.o:1 + 4f7568b:ui/examples/native-hello/build/native-hello:2 + 4f7568b:ui/examples/native-hello/build/native-hello-linux-arm64:1 + 4f7568b:ui/examples/native-hello/build/native-hello-linux-x86_64:1 + 4f7568b:ui/examples/native-hello/build/native-hello-pi-arm64:1 + 4f7568b:ui/examples/native-hello/build/native-hello-sdl2:2 + 4f7568b:ui/vessels/el-aop/src/main.el:3 + 4f7568b:ui/vessels/el-identity/src/main.el:4 + 4f7568b:ui/vessels/el-platform/src/main.el:2 + 4f7568b:ui/vessels/el-services/src/main.el:2 + lines matching _auth in engram/src: + 4f7568b:engram/src/server.el:49: // Default "" leaves auth DISABLED (check_auth_ok short-circuits to true on an + 4f7568b:engram/src/server.el:809:// "preserve_edges": true, "_auth": ""} + 4f7568b:engram/src/server.el:899:// Auth: exempt (internal endpoint, soul daemon on same host, no _auth needed). + 4f7568b:engram/src/server.el:900:// The soul's ise_post() sends {"content":"..."} without _auth; enforcing auth + 4f7568b:engram/src/server.el:950:// Endpoint: POST /api/neuron/knowledge/capture (auth required: "_auth" in body) + 4f7568b:engram/src/server.el:953:// "_auth": ""} + 4f7568b:engram/src/server.el:1958:fn check_auth_ok(method: String, body: String) -> Bool { + 4f7568b:engram/src/server.el:1963: // requests must include "_auth": "" in the JSON body. + 4f7568b:engram/src/server.el:1965: let provided: String = json_get_string(body, "_auth") + 4f7568b:engram/src/server.el:1982: // ISE posting is auth-exempt (internal soul daemon, same host, no _auth key) + 4f7568b:engram/src/server.el:1988: if !check_auth_ok(method, body) { + +=== E. Attempted re-derivation of 'index-after-append failed at 9 of 9' === + --- searching for: index-after-append + 4f7568b:docs/architecture/el-language-design.md:199:| index-after-append | 9 of 9 failed | `hold` (after-crossing) | + 4f7568b:lang/el-compiler/src/codegen.el:4224:// persist-after-mutate sites and 9-of-9 failed index-after-append sites — every + --- searching for: 9 of 9 + 4f7568b:design/completing-el.html:97:Index-after-append9 of 9 failed"after you append, remember to index" + 4f7568b:docs/architecture/el-architecture.html:105:Index-after-append9 of 9 failed"after you append, remember to index" + 4f7568b:docs/architecture/el-language-design.md:25:| Index-after-append | 9 of 9 failed | "after you append, remember to index" | + 4f7568b:docs/architecture/el-language-design.md:199:| index-after-append | 9 of 9 failed | `hold` (after-crossing) | + 4f7568b:lang/spec/language.md:1237:**The defect.** 62 call sites carry the convention *"after you mutate, remember to persist."* This is structurally the same defect as the index bug being fixed elsewhere in this tree — *"after you append, remember to index"* — which failed at **9 of 9** sites. A convention that failed at 100% of its sites is the strongest available evidence about what this class of convention is worth. + --- searching for: 9-of-9 + 4f7568b:lang/el-compiler/src/codegen.el:4224:// persist-after-mutate sites and 9-of-9 failed index-after-append sites — every + --- searching for: remember to index + 4f7568b:design/completing-el.html:97:Index-after-append9 of 9 failed"after you append, remember to index" + 4f7568b:docs/architecture/el-architecture.html:105:Index-after-append9 of 9 failed"after you append, remember to index" + 4f7568b:docs/architecture/el-language-design.md:25:| Index-after-append | 9 of 9 failed | "after you append, remember to index" | + 4f7568b:lang/spec/language.md:1237:**The defect.** 62 call sites carry the convention *"after you mutate, remember to persist."* This is structurally the same defect as the index bug being fixed elsewhere in this tree — *"after you append, remember to index"* — which failed at **9 of 9** sites. A convention that failed at 100% of its sites is the strongest available evidence about what this class of convention is worth. + --- searching for: after you append + 4f7568b:design/completing-el.html:97:Index-after-append9 of 9 failed"after you append, remember to index" + 4f7568b:docs/architecture/el-architecture.html:105:Index-after-append9 of 9 failed"after you append, remember to index" + 4f7568b:docs/architecture/el-language-design.md:25:| Index-after-append | 9 of 9 failed | "after you append, remember to index" | + 4f7568b:lang/spec/language.md:1237:**The defect.** 62 call sites carry the convention *"after you mutate, remember to persist."* This is structurally the same defect as the index bug being fixed elsewhere in this tree — *"after you append, remember to index"* — which failed at **9 of 9** sites. A convention that failed at 100% of its sites is the strongest available evidence about what this class of convention is worth. diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.prov b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.prov new file mode 100644 index 0000000..ca7ee7f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.prov @@ -0,0 +1,7 @@ +commit 4f7568b07f61a81fed1db5b8274813032ea3b16e +tree clean +captured_utc 2026-08-17T17:41:04Z +exit 0 +ms 2833 +sha256_out d4f483f19828ac61252024d907faee65f8bf7ebdf39bb674eda83986e17773de +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.rc b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.cmd b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.cmd new file mode 100644 index 0000000..0de3697 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.cmd @@ -0,0 +1 @@ +bash /tmp/harnesstally03b.sh diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.err b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.out b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.out new file mode 100644 index 0000000..44f9b05 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.out @@ -0,0 +1,25 @@ +=== A. the tally arithmetic in seam_binding.sh at 285166c === +10:# exit 0 = all assertions held; non-zero = number of failures +15:FAILS=0 +18:fail() { printf ' FAIL %s\n expected: %s\n actual: %s\n' "$1" "$2" "$3"; FAILS=$((FAILS+1)); } +91:echo " 7 assertions, $((6-FAILS)) passed, $FAILS failed" +92:exit $FAILS + +=== B. same lines at the parent 24f7fb5 === +10:# exit 0 = all assertions held; non-zero = number of failures +15:FAILS=0 +18:fail() { printf ' FAIL %s\n expected: %s\n actual: %s\n' "$1" "$2" "$3"; FAILS=$((FAILS+1)); } +84:echo " 6 assertions, $((6-FAILS)) passed, $FAILS failed" +85:exit $FAILS + +=== C. number of check() invocations (assertions actually run) at each commit === + 24f7fb5 check-invocations=6 + 285166c check-invocations=7 + b40754f check-invocations=7 + +=== D. did a later commit fix the arithmetic? (search all commits touching the file) === +bc2f26dd EXPERIMENT: invocation control resolves at runtime +285166c2 EXPERIMENT: emit the wrapper unconditionally, so exit binds at runtime too +8bbb750c control the claim that cannot be unit tested + + --- the tally line at each commit that touched the file --- diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.prov b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.prov new file mode 100644 index 0000000..c06edfd --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.prov @@ -0,0 +1,7 @@ +commit 285166c25c218e3ea91d9ceb537fac51fdd18c80 +tree clean +captured_utc 2026-08-17T17:44:24Z +exit 0 +ms 75 +sha256_out 178e75ae04a503701e26ee3b5415babe25fe1a723208500f4dbba6ec50301d3c +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.rc b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.cmd b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.cmd new file mode 100644 index 0000000..4529c41 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.cmd @@ -0,0 +1 @@ +bash /tmp/harnesstally03b2.sh diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.err b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.out b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.out new file mode 100644 index 0000000..f6439be --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.out @@ -0,0 +1,7 @@ +tally line of tests/integration/seam_binding.sh at every commit that touched it: + bc2f26dd 2026-08-17 09:06:05 -0500 checks=7 tally: 96:echo " 7 assertions, $((7-FAILS)) passed, $FAILS failed" + 285166c2 2026-08-17 09:01:55 -0500 checks=7 tally: 91:echo " 7 assertions, $((6-FAILS)) passed, $FAILS failed" + 8bbb750c 2026-08-17 08:48:57 -0500 checks=6 tally: 84:echo " 6 assertions, $((6-FAILS)) passed, $FAILS failed" + +bc2f26d full tally line: +96:echo " 7 assertions, $((7-FAILS)) passed, $FAILS failed" diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.prov b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.prov new file mode 100644 index 0000000..31a730f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.prov @@ -0,0 +1,7 @@ +commit 285166c25c218e3ea91d9ceb537fac51fdd18c80 +tree clean +captured_utc 2026-08-17T17:44:36Z +exit 0 +ms 110 +sha256_out 03a64d59c52d7b823b1394fe7fa8f360e86df589fd5a1c8f7700c9e0946d0052 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.rc b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/CLAIMS.md b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/CLAIMS.md new file mode 100644 index 0000000..932b82f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/CLAIMS.md @@ -0,0 +1,394 @@ +# CLAIMS — cycle 03, the wrapper was conditional + +Source doc: `docs/v1/experiments/cycles/03-the-wrapper-was-conditional.md` + +## Pinned commits + +This cycle pins three commits. The third is a merge, and its tree is byte-identical +to the second — so every measurement at `285166c` carries unchanged to `b40754f`. + +| | Record 1 | Record 2 (the EXPERIMENT) | Record 3 (the land) | +|---|---|---|---| +| SHA | `4f7568b07f61a81fed1db5b8274813032ea3b16e` | `285166c25c218e3ea91d9ceb537fac51fdd18c80` | `b40754f07b5eff3700a69681397e46949a5c4f41` | +| Committed | 2026-08-17 07:56:28 -0500 | 2026-08-17 09:01:55 -0500 | 2026-08-17 09:01:55 -0500 | +| Subject | give a construct its after-crossing face, and let constructs compose | EXPERIMENT: emit the wrapper unconditionally, so exit binds at runtime too | land unconditional wrapper: exit crossings resolve at runtime | +| Parent(s) | `60737b03` (let a construct refuse, not only observe) | `24f7fb51` (land the runtime seam: resolve the crossing at execution) | **merge**: `24f7fb51` + `285166c2` | +| Worktree | `/tmp/rerun-v1-03a`, tree clean | `/tmp/rerun-v1-03b`, tree clean | measured from `/tmp/rerun-v1-03b` | + +**Topology matters and the record does not state it.** `285166c` is an experiment +*branch* off `24f7fb5`; `b40754f` is the **merge** that lands it. So the "before" +state for every P1–P4 prediction is `24f7fb5`, **not** `4f7568b`. `4f7568b` sits +eight commits earlier on a different line (`0004-commit-lineage.out`, +`0215-b40754f-tree-vs-285166c.out`). + +`git diff 285166c b40754f` is empty — the merge introduced nothing +(`0215-b40754f-tree-vs-285166c.out`). `b40754f` carries no numeric claim of its own; +its identity is captured in `0003-commit-identity-b40754f.out`. + +Artifact provenance: every artifact pinned per-capture, tree `clean` at both worktrees +(see `MANIFEST.tsv`, `RUN.env`). Host: Wills-MacBook-Pro, Apple M4 Pro, arm64, +Apple clang 21.0.0. + +## Verdicts + +30 factual assertions enumerated. +**REPRODUCED 24 · DIVERGED 3 · NOT-REPRODUCIBLE 2 · NOT-CAPTURED 1** + +### Record `4f7568b` + +| # | Claim (verbatim from the record) | Artifact | Commit | Verdict | +|---|---|---|---|---| +| 1 | "§6 records 62 persist-after-mutate sites, 10 auth-per-route, and index-after-append that failed at 9 of 9" — *as a quotation of §6* | `0223-sec6-figures-source-and-rederivation.out` | `4f7568b` | **REPRODUCED** — §6 is `docs/architecture/el-language-design.md` "## 6. The residue map"; its table reads exactly `persist-after-mutate \| 62 sites`, `auth-per-route \| 10 sites`, `index-after-append \| 9 of 9 failed`. The record quotes §6 correctly. | +| 2 | "62 persist-after-mutate sites" — *as a measurement* | `0223` | `4f7568b` | **NOT-REPRODUCIBLE** — population undefined; no scope produces 62 (see below) | +| 3 | "10 auth-per-route" — *as a measurement* | `0223` | `4f7568b` | **NOT-REPRODUCIBLE** — there is exactly **one** auth check at this commit, not ten (see below) | +| 4 | "index-after-append that failed at 9 of 9" | `0223` | `4f7568b` | **NOT-CAPTURED** — no enumeration, file, test, or procedure exists anywhere in the tree; all five occurrences are restatements of each other | +| 5 | "98/98 native compiler tests pass" | `0007-native-compiler-tests-03a.out` | `4f7568b` | **REPRODUCED** — `98 tests, 98 passed, 0 failed, 243 assertions in 4.271ms` | +| 6 | "existing output byte-identical" | `0034-REDO-parent-compiler-build-03a.out`, `0047-REDO-existing-output-byte-identical-03a.out` | `4f7568b` vs `4f7568b^` | **REPRODUCED** — the parent compiler (`60737b03`, built from `git archive`) and the `4f7568b` compiler emit **byte-identical C for the whole 11,258-line compiler source of the parent**, sha256 `8408ae3aef3048cf…` for both | +| 7 | "Fns with no exit construct emit byte-identically to before" | `0047` §A | `4f7568b` vs `4f7568b^` | **REPRODUCED** — probe of `@manager` / `@accessor` / undecorated fns: identical, sha256 `f5ae7733b4b3ee0e…`; `__el_body_` wrapper count in the output = **0** | +| 8 | "compiler self-hosts byte-identically" | `0140-selfhost-fixpoint-gen2-gen3-03a.out` | `4f7568b` | **REPRODUCED** — gen1 == gen2 == gen3, all sha256 `fcdfdf13b9fed6e9…`, 11,361 lines | +| 9 | "early returns pass through the exit" | `0065-REDO-exit-and-composition-tests-03a.out` | `4f7568b` | **REPRODUCED** — `ok declared-exit-wraps-body-so-early-returns-pass-through`; also `ok declared-exit-receives-the-result` | +| 10 | "ordering holds under composition" / "Three independent constructs now compose on one fn, none known to the compiler" | `0065` | `4f7568b` | **REPRODUCED** — `ok constructs-compose-guard-entry-exit` (asserts guard-index < entry-index < exit-index) | +| 11 | the emitted C shown for `mutate()` — guard, entry, body, exit ordering, all six lines | `0018-probe-mutate-emission-03a.out` | `4f7568b` | **REPRODUCED — byte-for-byte** (see below). Probe reconstructed, see "Reconstructed probes". | +| 12 | "The body moves into a static helper and the visible fn becomes a wrapper" | `0018` | `4f7568b` | **REPRODUCED** — `static el_val_t __el_body_mutate(el_val_t k)` emitted, `el_val_t mutate(el_val_t k)` calls it | + +### Record `285166c` + +| # | Claim (verbatim from the record) | Artifact | Commit | Verdict | +|---|---|---|---|---| +| 13 | P1 "exit becomes runtime-bindable — TRUE, returns 14, bound after the build" | `0014-integration-seam_binding-03b.out`, `0017-test-diff-285166c.out` | `285166c` | **REPRODUCED** — harness assertion `an EXIT construct declared after the build replaces the result` expects `14` and passes; the binding is supplied via `EL_CONSTRUCTS=exit.txt` **after** `prog` is compiled and linked | +| 14 | P2 "codegen shrinks — TRUE, 5094 -> 5044" | `0012-codegen-linecount-285166c.out`, `0013-codegen-linecount-neighbourhood.out` | `285166c^`, `285166c` | **DIVERGED** — observed **5095 -> 5043** (see below) | +| 15 | P3 "cost 5-15% from a call frame on every fn — FALSE, 0.37s -> 0.38s, ~3%" | `0163-P3-isolated-callframe-cost-20x.out`, `0189-P3-hypothesis-which-binaries-give-0.37-to-0.38.out`, `0214-REDO-P3-control-binaries-wrapper-content.out`, `0116`, `0100` | `285166c` vs `24f7fb5` | **DIVERGED — the substantive finding of this cycle.** Isolated overhead **+12.65% to +15.98%, median +13.65%**, i.e. *inside* the 5–15% band the record scored FALSE (see below) | +| 16 | P4 "fixpoint holds — TRUE" | `0132-selfhost-fixpoint-gen2-gen3-03b.out` | `285166c` | **REPRODUCED** — gen2 == gen3, sha256 `6bb520f2a0ce8695…`, 12,957 lines each | +| 17 | "fixpoint gen2==gen3" | `0132` | `285166c` | **REPRODUCED** — under the correct three-generation numbering. gen1 != gen2 (expected: the committed `dist/platform/elc` dates from `45325f7`, before the wrapper); gen2 == gen3 exactly | +| 18 | "99/99 native" | `0008-native-compiler-tests-03b.out` | `285166c` | **REPRODUCED** — `99 tests, 99 passed, 0 failed, 239 assertions in 5.327ms` | +| 19a | "7/7 integration" — *the underlying fact: all seven assertions hold* | `0014` | `285166c` | **REPRODUCED** — all seven assertions print `ok`, `0 failed`, harness exit `0` | +| 19b | "7/7 integration" — *as a reported harness tally* | `0014`, `0224-harness-tally-arithmetic-285166c.out`, `0225-REDO-harness-tally-history.out` | `285166c` | **DIVERGED** — a fully green run prints `7 assertions, 6 passed, 0 failed`. The harness at this commit **cannot** print 7/7 (see below) | +| 20 | "Every fn now gets a body helper and a wrapper" | `0148-every-fn-gets-wrapper-03b.out` | `285166c` | **REPRODUCED** — in the emitted C for the whole compiler: 258 forward decls, **258** `static el_val_t __el_body_*` helpers, **258** wrapper definitions. At the parent `24f7fb5`: **0** body helpers, 262 plain fn definitions. | +| 21 | "Removed with the machinery: `declare_exit`" | `0015`, `0016-removed-symbols-detail-parent.out` | `285166c^` → `285166c` | **REPRODUCED** — 2 occurrences at parent (`codegen.el:4315` def, `:4448` call) → **0** | +| 22 | "…`decorator_exit`" | `0015`, `0016` | `285166c^` → `285166c` | **REPRODUCED** — 3 occurrences at parent (`:4319` def, `:3226`, `:3321` calls) → **0** | +| 23 | "…`cg_exit_target`" | `0015`, `0016` | `285166c^` → `285166c` | **REPRODUCED (code)** — 3 → 1; the function (`:3217`) and its call (`:3393`) are gone. The 1 remaining is a **stale comment** at `codegen.el:3215` still naming it. | +| 24 | "…`cg_exit_construct`" | `0015`, `0016` | `285166c^` → `285166c` | **REPRODUCED (code)** — 3 → 1; function (`:3312`) and call (`:3394`) gone; the survivor is the same stale comment at `:3215` | +| 25 | "…and the `injects_at_exit` scanner branch" | `0015`, `0016` | `285166c^` → `285166c` | **REPRODUCED** — the branch `if str_eq(dkind, "injects_at_exit")` at `codegen.el:4429` is gone; the two test uses are gone; 1 doc-comment mention survives at `:4272` | +| 26 | "Two controls failed and were rewritten rather than repaired" | `0067-which-controls-failed-03b.out` | `285166c` | **REPRODUCED — exactly two** — running the parent's `test_compiler.el` against `285166c`'s compiler sources: `99 tests, 97 passed, 2 failed`. The two: `declared-exit-wraps-body-so-early-returns-pass-through`, `no-exit-construct-emits-no-wrapper`. Nuance: **three** tests were deleted; the third (`declared-exit-receives-the-result`) still **passed** and was removed as obsolete, not because it failed. | +| 27 | "`no-exit-construct-emits-no-wrapper` asserted the optimisation this removes, so it is now inverted" | `0017`, `0066-exit-and-composition-tests-03b.out`, `0067` | `285166c` | **REPRODUCED** — it fails at `285166c` (`0067`) and its logical inversion `every-fn-gets-a-body-helper-and-wrapper` replaces it and passes (`0066`) | +| 28 | "The integration harness gained a seventh assertion: an exit construct declared after the build replaces the result" | `0017`, `0014` | `285166c^` → `285166c` | **REPRODUCED** — `seam_binding.sh` diff adds `double_result()` and the assertion expecting `14`; 6 → 7 assertions | + +### Record `b40754f` + +| # | Claim | Artifact | Commit | Verdict | +|---|---|---|---|---| +| 29 | "land unconditional wrapper: exit crossings resolve at runtime" (identity only — no numeric claim) | `0003-commit-identity-b40754f.out`, `0215-b40754f-tree-vs-285166c.out` | `b40754f` | **REPRODUCED** — merge of `24f7fb51` + `285166c2`; `git diff 285166c b40754f` is empty, so the landed tree is byte-identical to the experiment | + +--- + +## Divergence detail — claim 15, P3: the ~3% is an artefact of timing the wrong binary + +**This is the substantive finding for cycle 03.** + +The record predicted "cost 5-15% from a call frame on every fn", measured `0.37s -> 0.38s`, +concluded `~3%`, and scored the prediction **FALSE**. Re-measured, the prediction was +**right**, and the measurement that refuted it could not have detected the cost it was +looking for. + +**Why.** The compiler is bootstrapped from the committed `lang/dist/platform/elc`, a +binary built at `45325f7` — long before this change. The chain is: + +``` +dist/platform/elc --compiles--> gen2 C --cc--> gen2 binary --compiles--> gen3 C + (no wrappers) (no wrappers) (wrappers) +``` + +The `285166c` compiler built **from the bootstrap** (`gen2 binary`) contains +**zero** `__el_body_*` helpers — the stale bootstrap emitted it without wrappers. +Only the *self-hosted* binary carries a wrapper on every fn. Measured directly +(`0214-REDO-P3-control-binaries-wrapper-content.out`): + +| binary | built from | `__el_body_` defs in that C | `el_seam_run` calls | +|---|---|---|---| +| BEFORE bootstrap-built `24f7fb5` | `pg2_03b.c`, 11477 ln | **0** | 1 | +| BEFORE self-hosted `24f7fb5` | `pg3_03b.c`, 11739 ln | **0** | 263 | +| AFTER bootstrap-built `285166c` | `g03b.c`, 11409 ln | **0** | 2 | +| AFTER self-hosted `285166c` | `g03b_b.c`, 12957 ln | **258** | 518 | + +**The record's own numbers reproduce — on the pair of binaries that contain no wrappers.** +Ten compiles of the same input, three rounds (`0189`): + +| pair | BEFORE | AFTER | delta | +|---|---|---|---| +| both **bootstrap-built** (neither has wrappers) | 0.3861 / 0.3872 / 0.3869 s | 0.3912 / 0.3907 / 0.3871 s | **+1.32% / +0.90% / +0.05%** | +| both **self-hosted** (only AFTER has wrappers) | 0.4125 / 0.4087 / 0.4108 s | 0.4398 / 0.4389 / 0.4363 s | **+6.62% / +7.39% / +6.21%** | + +The record's `0.37s` is within noise of the bootstrap-built BEFORE figure (0.386s here), +and its `0.38s` of the bootstrap-built AFTER (0.391s). The `~3%` sits between the two +rows. Whatever exact binaries were used, the reported delta is the *emission* cost — +the AFTER compiler writes ~10% more C — and cannot contain the call-frame cost, because +neither timed binary had a call frame added to it. + +**The controlled isolation.** The cleanest instrument for "a call frame on every fn" is +two binaries with **identical compiler semantics** and identical output, differing only +in whether the binary itself was built with wrappers: `/tmp/elc03b` (bootstrap-built +`285166c`) vs `/tmp/elc03b_g3` (self-hosted `285166c`). Both emit byte-identical C +(`g03b_b.c` == `g03b_c.c`, sha256 `6bb520f2a0ce8695…`), so all of the delta is runtime. +20 compiles per sample, 6 rounds, A/B order alternated (`0163`): + +``` +round 1 (A-then-B) A 0.7683s B 0.8680s +12.98% +round 2 (B-then-A) A 0.7596s B 0.8810s +15.98% +round 3 (A-then-B) A 0.7508s B 0.8564s +14.06% +round 4 (B-then-A) A 0.7523s B 0.8549s +13.64% +round 5 (A-then-B) A 0.7535s B 0.8498s +12.78% +round 6 (B-then-A) A 0.7516s B 0.8467s +12.65% +overhead on MEDIAN = +13.65% overhead on MIN = +12.77% +``` + +**Claimed: ~3%, prediction scored FALSE. Observed: +12.65% to +15.98%, median +13.65% — +inside the predicted 5–15% band, near its top.** Even the end-to-end cross-commit +comparison of self-hosted binaries (+6.2% to +7.4%) is inside the band. On this hardware +P3 should have been scored **TRUE**. + +Per §8 of the re-run recipe, the *absolute* wall-clock figures (0.37s, 0.38s) remain +machine-dependent and are not themselves reproducible. It is the **ratio** the record +leans on, and the ratio is what diverges. Machine: Apple M4 Pro, arm64, macOS 25.5.0, +Apple clang 21.0.0, idle-ish interactive session; the A/B alternation and the min-based +figure control for drift, and every one of the six rounds lands inside the band. + +## Divergence detail — claim 19b, "7/7 integration": the harness cannot print 7/7 + +A green harness whose own summary line under-reports itself. + +`285166c` added the seventh assertion and bumped the **header text** of the tally line +from `6 assertions` to `7 assertions`, but left the **arithmetic** at `$((6-FAILS))` +(`0224-harness-tally-arithmetic-285166c.out`): + +``` +lang/tests/integration/seam_binding.sh:91 + echo " 7 assertions, $((6-FAILS)) passed, $FAILS failed" +``` + +So with `FAILS=0` — a completely green run — the harness prints `6 passed`. Observed +verbatim at `285166c` (`0014-integration-seam_binding-03b.out`, exit 0): + +``` + ok unbound program is unaffected + ok a construct declared AFTER the build applies + ok a construct declared after the build can REFUSE + ok an unlinked target is skipped, not fatal + ok a binding for a different fn does not fire + ok two constructs compose on one crossing + ok an EXIT construct declared after the build replaces the result + + 7 assertions, 6 passed, 0 failed +``` + +Seven `ok` lines, zero failures, exit code 0 — so **7 of 7 really do pass** (claim 19a, +REPRODUCED). But **no tool in the tree at this commit is capable of emitting "7/7"**, +and the line a reader gets when they re-run the harness contradicts the record. The +record's figure was not read off its own instrument. + +History of the tally line (`0225-REDO-harness-tally-history.out`) — the arithmetic was +wrong for four minutes and was fixed by the next experiment: + +| commit | when | `check` invocations | tally line | +|---|---|---|---| +| `8bbb750c` | 08:48:57 | 6 | `6 assertions, $((6-FAILS)) passed, $FAILS failed` — correct | +| **`285166c2`** | **09:01:55** | **7** | **`7 assertions, $((6-FAILS)) passed, $FAILS failed` — header bumped, arithmetic not** | +| `bc2f26dd` | 09:06:05 | 7 | `7 assertions, $((7-FAILS)) passed, $FAILS failed` — fixed | + +Independently corroborated: this defect was first flagged by the cycle 08 re-run and is +confirmed here from the artifacts above. Its practical severity is low (`exit $FAILS` +is driven by the real failure counter, so CI would still catch a regression) but it is +exactly the failure mode this evidence record exists to surface — a number in a commit +message that the tooling of that commit never produced. + +## Divergence detail — claim 14, P2: 5094 -> 5044 is 5095 -> 5043 + +`lang/el-compiler/src/codegen.el`, `wc -l` (`0012`, `0013`): + +| | claimed | observed | +|---|---|---| +| parent `285166c^` = `24f7fb5` | 5094 | **5095** | +| commit `285166c` | 5044 | **5043** | +| delta | −50 | **−52** | + +Both endpoints miss, **in opposite directions**, so this is not a tool or off-by-one +convention difference. Controls run: + +- Every version of the file ends in `\n` (`0013` prints the last byte as `\n` for all + eleven neighbouring commits), so `wc -l` is exact and does not undercount. +- `git show --numstat` for the commit reports `2 insertions, 54 deletions` — net **−52**, + independently confirming the observed delta, not the claimed one. +- **No commit anywhere in the neighbourhood has 5094 or 5044 lines of `codegen.el`.** + The full sweep (`0013`): `4f7568b` 4953 · `7d01608` 5084 · `1b324a0` 5152 · + `82e9982` 5152 · `35b07ba` 5156 · `886626a` 5156 · `28d19da` 5095 · `8bbb750` 5095 · + `24f7fb5` 5095 · `285166c` 5043 · `b40754f` 5043. + +The qualitative half of P2 ("codegen shrinks") holds and shrinks slightly *more* than +claimed. The two figures do not, and neither can be recovered from any state of the file +in this range. + +## NOT-REPRODUCIBLE / NOT-CAPTURED detail — the three §6 figures (claims 2, 3, 4) + +§6 was located: `docs/architecture/el-language-design.md`, `## 6. The residue map` +(`0223`). Its header names its upstream — *"from §18.0 plus measured state"*, i.e. +`lang/spec/language.md` §18.0. The record quotes §6 faithfully (claim 1, REPRODUCED). +**None of the three figures has a defined population.** + +**"62 persist-after-mutate sites" — NOT-REPRODUCIBLE.** §18.0 is the only place that +names a procedure, and it names only a pattern set — `persist_*` / `engram_save` / +`wal_*` / `checkpoint` call sites — with **no directory, glob, language, commit, or +call-vs-declaration rule**, under the tense marker *"Measured in this codebase **before +this section existed**"*, which pins it to an unnamed earlier tree state. Applying the +stated pattern set at `4f7568b` (`0223` §C): + +| scope | count | +|---|---| +| tree-wide, all files | 302 | +| tree-wide, `*.el` only | **69** | +| `engram/` all files | 151 | +| `engram/**.el` | 53 | +| `engram/src` | **52** | +| `lang/` all files | 122 | + +62 lies between the two most natural scopes (52 and 69) and equals neither. Per-symbol +breakdown tree-wide over `*.el` is in `0223`. Unlike cycle 01's decorator counts, there +is no scope you can guess that recovers the figure. + +**"10 auth-per-route" — NOT-REPRODUCIBLE, and the mechanism it describes does not +exist at this commit.** §19.2 says *"10 per-route `_auth` checks"* and names no route, +file, or command. At `4f7568b` there is **one** auth check in the whole server: +`fn check_auth_ok(method, body)` defined at `engram/src/server.el:1958` and called from +a **single** dispatch site at `:1988` (`0223` §D). Of the 11 `_auth` occurrences in +`server.el`, 8 are comments or JSON-key documentation. The per-route form the figure +counts is not present; a reader cannot recover a list of ten sites. + +**"index-after-append that failed at 9 of 9" — NOT-CAPTURED.** This is the figure the +record leans on hardest ("*the 9-of-9 figure is what that costs*") and it is the least +sourced. The population is described only as *"the index bug being fixed elsewhere in +this tree"* — no file, no function, no test, no commit, no enumeration of the nine +sites, and no statement of how "failed" was determined. Searching the whole tree at +`4f7568b` for `index-after-append`, `9 of 9`, `9-of-9`, `remember to index`, `after you +append` returns **only restatements** (`0223` §E): `el-language-design.md:25` and `:199`, +`el-architecture.html:105`, `design/completing-el.html:97`, `lang/spec/language.md:1237`, +and a comment in `codegen.el:4224` citing it. Every one cites the figure; none produces +it. There is nothing to re-run, so no artifact can be made. + +The same document is self-aware about exactly this failure mode one section later: +§7 flags `el-architecture.html` §04's scoreboard as having *"no supporting evidence in +the repository, under a footer asserting 'nothing is inferred and presented as fact'"* +and says "Fix or remove." That audit was never turned on §6's own table. + +## Reconstructed probes + +Two artifacts are outputs of probe programs that are **not in the tree**. Per §7 of the +re-run recipe the probe is an *input*, not evidence; the artifact is the captured output +of running it at the pinned commit. + +**`0018-probe-mutate-emission-03a.out`** — the record shows emitted C for a fn `mutate` +but the tree contains no such fixture. The probe was reconstructed from what the record +itself states (the `@decorator("injects_at_exit", "persist_now")` snippet it prints, the +three decorator names visible in the emitted C, and the `mutate(k)` signature and body +that the commit's own deleted test `declared-exit-wraps-body-so-early-returns-pass-through` +used): + +```el +@decorator("guards_at_entry", "my_auth") +fn authenticate() {} + +@decorator("injects_at_exit", "persist_now") +fn durable() {} + +@authenticate +@durable +@manager +fn mutate(k: String) -> Int { if str_eq(k, "bad") { return 0 } return 1 } +``` + +The emission at `4f7568b` is **byte-for-byte the six lines the record prints**: + +```c +el_val_t mutate(el_val_t k) { + { el_val_t __g = my_auth(EL_STR("mutate"), EL_STR("authenticate")); if (__g) return __g; } + engram_boundary_beat(EL_STR("mutate"), EL_STR("manager")); + el_val_t __r = __el_body_mutate(k); + persist_now(EL_STR("mutate"), EL_STR("durable"), __r); + return __r; +} +``` + +Guard, then entry, then body, then exit — exactly as claimed. The same probe at +`285166c` (`0019-probe-mutate-emission-03b.out`) shows the compile-time injection gone +and both crossings routed through `el_seam_run`. + +**`0067-which-controls-failed-03b.out`** — to determine *which* controls failed (claim 26) +the parent's `tests/native/test_compiler.el` (`24f7fb5`) was placed into a `git archive` +export of the `285166c` tree and run against `285166c`'s compiler sources. The test file +`import`s `codegen.el` from the tree, so this genuinely exercises the new codegen against +the old controls. No worktree was modified. + +`0034-REDO-parent-compiler-build-03a.out` similarly builds the `4f7568b^` compiler from a +`git archive` export of `60737b03` into `/tmp/parent03a`, and `0082-build-parent-24f7fb5-fixpoint.out` +builds `24f7fb5` into `/tmp/parent03b`. These are builds of committed trees, not +reconstructions. + +## Measurement defects in this re-run, recorded rather than removed + +1. **`0009-selfhost-fixpoint-03a.out` and `0010-selfhost-fixpoint-03b.out` used a + superseded fixpoint command.** The original re-run recipe compared gen1 (the output + of the committed `dist/platform/elc`) to gen2. That check must fail whenever codegen's + output changes, which is exactly what this cycle does — `0010` exits 1 with + `differ: char 12850, line 264`. **This is not a broken fixpoint.** The recipe was + corrected mid-run by the parent agent; the correct check is gen2 == gen3. + Superseded by `0132-selfhost-fixpoint-gen2-gen3-03b.out` and + `0140-selfhost-fixpoint-gen2-gen3-03a.out`, which are the ones cited above. + `0011-selfhost-fixpoint-gen3-gen4-03b.out` is the same correct comparison taken before + the naming was standardised (its "gen3==gen4" are the recipe's gen2 and gen3). Retained. + **Do not cite `0009` or `0010`.** + +2. **`0020-no-exit-construct-byte-identical-03a.out` used an invalid "before" compiler.** + It compared `lang/dist/platform/elc` (the committed bootstrap, built at `45325f7`) + against the `4f7568b` compiler. The bootstrap predates `4f7568b` by many commits, so + the two differences it found — + `engram_boundary_beat(EL_STR("f"))` vs `engram_boundary_beat(EL_STR("f"), EL_STR("manager"))` — + belong to cycle 01, not to this one. Superseded by `0034` + `0047`, which build the + actual parent `60737b03`. Retained. **Do not cite `0020`.** + +3. **`0021-parent-compiler-build-03a.out` failed (exit 1).** `git archive` was invoked + with CWD inside `lang/`, and git archives only the current prefix, so the export + contained the *contents* of `lang/` rather than `lang/` itself and the subsequent + `cd .../lang` failed. This is the same class of CWD defect the recipe warns about for + `git grep`. Corrected in `0034-REDO-parent-compiler-build-03a.out`, run from the repo + root. Retained. + +4. **`0063-exit-and-composition-tests-03a.out` failed (exit 2)** — it grepped a + mis-numbered artifact filename (`0006-` instead of `0007-`) and produced nothing. + `capture.sh` numbers artifacts by counting non-empty MANIFEST lines, and multi-line + commands write multi-line MANIFEST rows, so artifact indices jump. Corrected in + `0065-REDO-exit-and-composition-tests-03a.out`. Retained. + +5. **`0207-P3-control-binaries-wrapper-content.out` failed (exit 127)** — a shell quoting + error inside a nested `bash -c`. Rewritten as a script file and re-captured as + `0214-REDO-P3-control-binaries-wrapper-content.out`. Retained. + +6. **Cosmetic, `0047` §B**: the line-count interpolation in the "BYTE-IDENTICAL over N + lines" message printed empty because of escaping inside the nested `bash -c`. The + `cmp` result and both sha256 values — which are what the claim rests on — are + unaffected. The figure is 11,258 lines, from `0034`. + +7. **Not a defect of this re-run, but of the artefact under test**: `seam_binding.sh` at + `285166c` prints `7 assertions, $((6-FAILS)) passed` — the total was updated to 7 and + the passed-count was not. See claim 19b and its divergence section. + +8. **`0224-harness-tally-arithmetic-285166c.out` section D produced no rows.** The + per-commit tally-line loop piped `git log` into `while read`, and `git show` inside + the loop consumed the loop's stdin. Re-taken as + `0225-REDO-harness-tally-history.out` with a `for` loop and ` Int` emits `el_val_t mixed(el_val_t a, el_val_t b, el_val_t c)`. | +| 7 | P3 "codegen DEFINES the wrap calling convention, so codegen emits the extern declaration" | `0008`, `0009`, `0017` | `2bed848` | **REPRODUCED** — codegen.el:3442 emits the `extern el_val_t (el_val_t, el_val_t, el_val_t(*)(void*), void*);` line; it appears in the emitted C at line 22/38. | +| 8 | P4 "target controls invocation, 0..N times — TRUE" | `0011`, `0012`, `0010` | `2bed848` | **REPRODUCED** — one El source, four wrap targets differing only in how many times they call the thunk: 0 → `999`, 1 → `5`, 2 → `10`, 3 → `15`. | +| 9 | P5 "existing @manager output byte-identical — TRUE" | `0019`, `0020`, `0028`, `0038` | `4f7568b` vs `2bed848` | **REPRODUCED** — the parent compiler was rebuilt from a `git archive 4f7568b` extraction (`0019`) and the same inputs compiled with both emitters. All 3 files in the tree that apply `@manager`/`@accessor` (`engram/src/server.el` 1 application, `tools/api-reshape/route_proof.el` 7, `tools/api-reshape/surface.el` 8) emit **byte-identical** C. Treewide: 378 `.el` files → 368 identical, 1 byte-differing, 9 failing under both emitters. The 1 differing file is explained below and is not caused by this cycle. | +| 10 | P6 "compiler fixpoint holds — TRUE" | `0051`, `0054` | `2bed848`, `7d01608` | **REPRODUCED** — gen2 == gen3 at both commits; at these commits gen1 == gen2 as well, so all three generations share sha256 `91b3de5b5c95cc659fb4d78aa821627c9a5c325c14b461852efff7db3f68a64b`. | +| 11 | P7 "emitting the convention makes it compile — TRUE" | `0010`, `0055` | `2bed848`, `7d01608` | **REPRODUCED** — `COMPILE_AND_LINK_OK` at both commits, against a C translation unit supplying the two wrap targets. | +| 12 | MEASURED "base(5) wrapped by a target that invokes the body twice and sums -> 10" | `0007`, `0010`, `0055` | `2bed848`, `7d01608` | **REPRODUCED — via a RECONSTRUCTED probe** (see below) — observed `base(5) = 10` | +| 13 | MEASURED "never_runs(5) wrapped by a target that never invokes it -> 999" | `0007`, `0010`, `0055` | `2bed848`, `7d01608` | **REPRODUCED — via a RECONSTRUCTED probe** (see below) — observed `never_runs(5) = 999` | +| 14 | "This supersedes the repeats_body experiment on **experiment/repeats-body**" | `0049` | all refs | **DIVERGED** — no such ref exists. See below. | +| 15 | `7d01608`: "Proven on **experiment/wraps-body** (2bed848)" | `0049` | all refs | **DIVERGED** — no such ref exists. The *commit* `2bed848` is present and reachable; the branch name is not. | +| 16 | "Every C++ lambda, every Go closure, every Rust closure compiles to a struct of captured values plus a function pointer" | `0008`, `0009` | — | **NOT-CAPTURED** — the trailing half, "which is what is emitted here", is claim 1 and is REPRODUCED. The claim about C++/Go/Rust codegen is about three other toolchains, none of which is in this tree; it was not measured then and is out of scope for this record. | +| 17 | "It would also have crippled the JS backend, which has closures natively, for a limit that applies only to the C one" | `0058` | `2bed848` | **NOT-CAPTURED (counterfactual)** — and the premise is weaker than stated: `lang/el-compiler/src/codegen-js.el` (1381 lines) implements **no construct machinery whatsoever** at `2bed848`. It contains no reference to `wraps_body`, `injects_at_entry`, `guards_at_entry`, `injects_at_exit`, thunks or env structs; the only decorator it knows is `@async` (line 1119). There is no wrap emission in the JS backend to cripple, either way. | + +**Counts: 13 REPRODUCED · 2 DIVERGED · 0 NOT-REPRODUCIBLE · 2 NOT-CAPTURED (17 assertions).** + +## The MEASURED numbers were produced by a RECONSTRUCTED probe + +State plainly: **no test, fixture, or harness in the tree at `2bed848` exercises +`wraps_body`.** `git grep wraps_body` outside `codegen.el` returns exit 1; +`lang/tests/integration/` does not exist at either pinned commit (`0056`); and +`2bed848` changes exactly one file, `codegen.el`, adding no test. The probe the +commit message describes was never committed. + +The probe was therefore **reconstructed from what the record states**, and it is +an INPUT, not evidence. Its full text is in the record at `0007`: + +- `w04.el` — two declared wrap constructs (`@decorator("wraps_body", "twice_and_sum")` + and `@decorator("wraps_body", "never_invoke")`) applied to `base(n)` and + `never_runs(n)`, both bodies `return n`, with `main` printing `base(5)` and + `never_runs(5)`. +- `targets04.c` — the two wrap targets, which cannot be written in El + (that is claim 5): `twice_and_sum` returns `body(env) + body(env)`; + `never_invoke` ignores the body and returns `999`. + +The **artifact is the captured output of running it at the pinned commits** +(`0010` at `2bed848`, `0055` at `7d01608`), which reads: + +``` +COMPILE_AND_LINK_OK +base(5) = 10 +never_runs(5) = 999 +``` + +The emitted C is byte-identical between `2bed848` and `7d01608` (`0055`). + +Reconstruction risk, stated honestly: the record fixes the inputs (`5`), the +target semantics ("invokes the body twice and sums", "never invokes it") and the +outputs (`10`, `999`), and the `999` sentinel is only reachable from the target, +so it is not a value the body could have produced. What the record does *not* +fix is the target's *names*, which are free choices here. The numbers were +observed, not asserted. + +## Divergence detail — claims 14 and 15, the two branch references + +Both pinned records point at branches that are not in the clone (`0049`): + +- `git branch -a --list '*repeats-body*'` → **no output**, exit 0 +- `git branch -a --list '*wraps-body*'` → **no output**, exit 0 +- `git for-each-ref | grep -i body` → **no matching ref of any kind** +- `git log --all --oneline --grep=repeats_body` and `--grep=repeats-body` → + the *only* match is `2bed848` itself, i.e. the sentence making the claim +- 249 branches exist in the clone; none of them is either name. + +Consequences, and they are not symmetrical: + +- **Claim 15** (`7d01608`: "Proven on experiment/wraps-body (2bed848)") is a + cosmetic divergence. The branch is gone but the commit it names survives, is + reachable, and everything it asserts re-measures. Only the branch label is wrong. +- **Claim 14** ("This supersedes the repeats_body experiment on + experiment/repeats-body, which was built around the mistaken limit") is a + substantive one. The superseded work is **unrecoverable**: no branch, no tag, + no commit anywhere in the object graph mentions `repeats_body`. The record's + central rhetorical move — that a strictly weaker "decide whether to repeat" + design *existed*, was *built*, and was *replaced* — rests entirely on a + dangling reference. That the weaker design is weaker is separately + demonstrable (claim 8 shows 0 and 3 invocations, neither expressible as + "repeat or not"), but the *existence and content of the superseded experiment* + cannot be checked from this repository. + +## Supporting finding — the one treewide byte-difference is pre-existing nondeterminism + +The treewide P5 sweep (`0028`) found exactly one file whose emitted C differs +between the parent and the commit: `arbor/vessels/arbor-parse/src/main.el`. +It is **not** a regression from this cycle (`0038`): + +- The file applies **zero** decorators (`grep -c '^@'` = 0), so no construct + machinery — wrap or otherwise — is reachable in it. +- Two consecutive runs of the **same** compiler at `2bed848` produce different + output. +- Two consecutive runs of the **same** compiler at the **parent** `4f7568b` + also produce different output. + +The difference is always the same three lines, where a string literal is emitted +as a large decimal number that changes run to run (e.g. +`EL_STR("40345588256")` vs `EL_STR("30447047200")` at line 325, and similarly at +338 and 392) — an address, or an address-derived value, leaking into the emitted +literal. This is a real pre-existing emitter defect worth its own investigation, +but it predates cycle 04 and does not touch claim 9. + +The 9 files that fail under **both** emitters (identical exit codes, `0028`) are +likewise unchanged by the cycle: `arbor-core/src/main.el`, +`arbor-render/src/main.el`, `elp/src/vocabulary-{de,fr,it,pt,ro}.el`, +`ui/examples/native-hello/src/{App,main}.el`. + +## Measurements the record makes no claim about, recorded as observed + +The cycle doc states no test count, no fixpoint detail and no timing. Observed: + +- Native compiler tests: **98 tests, 98 passed, 0 failed, 243 assertions** at + `2bed848` (`0004`, 5.660ms) and the same 98/98/0/243 at `7d01608` (`0053`, + 6.297ms). No failures at either commit. +- Stage2 build: `BUILD_OK`, generated `elc-cli.el` C = **11494 lines** at both + commits (`0003`, `0052`). +- `lang/tests/integration/` does not exist at either pinned commit (`0056`), so + no integration harness could be run. `lang/tests/` contains `bench`, + `calendar`, `html_sanitizer`, `native`, `runtime`, `suite`, `swarm`, `text`, + `time`. +- codegen.el: `4f7568b` 4953 → `2bed848` 5084 → `7d01608` 5084 (`0050`). + +## Measurement defects in this re-run, recorded rather than removed + +**Defect 1 — superseded fixpoint command (recipe defect, not this cycle's).** +Artifact `0005-selfhost-fixpoint-04a.out` was captured with the recipe's original +command, which compares **gen1 (the committed `dist/platform/elc`'s output)** +against **gen2**. That is the wrong check: gen1 may legitimately differ from gen2 +whenever codegen's output changes, and reporting it as a break would be a +fabricated divergence. The corrected three-generation check +(`gen2 == gen3`) is `0051` at `2bed848` and `0054` at `7d01608`. `0005` is +retained, not deleted. It happens to agree — at these commits gen1 == gen2 too — +but it should not be cited as the fixpoint evidence. + +**Defect 2 — multi-line commands corrupted MANIFEST.tsv line structure.** +Four captures (`0020`, `0028`, `0038`, and the shell text of `0019`) were invoked +with `bash -c` scripts containing literal newlines. `capture.sh` writes the +command verbatim as the last TSV field, so those newlines became extra physical +lines in `MANIFEST.tsv`. Two visible consequences: + +- the artifact counter, which is derived from the manifest's line count, jumped + (`0020` → `0028` → `0038` → `0049`), so the artifact numbers in this cycle are + **not contiguous**. No artifact is missing; the gaps are counter skips. +- `MANIFEST.tsv` is no longer strictly one physical line per artifact. + +`verify-manifest.sh` is unaffected — the continuation lines parse with an empty +artifact field and are skipped — and the cycle verifies **0 altered, 0 missing** +with every row `clean`. The manifest was **not** edited to tidy this up; editing +it is precisely the defect this record exists to control for. Later captures use +single-line commands. + +## Reproduction + +``` +git worktree add /tmp/rerun-v1-04a 2bed848 +git worktree add /tmp/rerun-v1-04b 7d01608 +``` +then the commands in `MANIFEST.tsv`, and +`bash tools/evidence/verify-manifest.sh docs/v1/experiments/evidence/cycles`. +The parent compiler used for claim 9 is built by `0019` from a +`git archive 4f7568b` extraction into `/tmp/p04parent`; no worktree at the parent +is required. diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.cmd b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.cmd new file mode 100644 index 0000000..bf0cf98 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.cmd @@ -0,0 +1,21 @@ +bash -c SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -rdynamic -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; +set -e +S=/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad +# probe compiler = the SELF-HOSTED emission (gen2, 266 seam indirections) + counting target +cc $CF -o /tmp/elc06a.hot /tmp/g06a.gen2.c $S/hotcount_targets_06.c $SRCS $LF 2>/dev/null +grep -oE "^[[:space:]]*el_seam_run\(EL_STR\(\"[^\"]*\"" /tmp/g06a.gen2.c | sed -E "s/.*EL_STR\(\"//; s/\"$//" | sort -u > /tmp/fns06.txt +echo "functions carrying a seam indirection: $(wc -l < /tmp/fns06.txt | tr -d " ")" +rm -f /tmp/hot06.all +# EL_SEAM_MAX is 256, so bind in two batches +split -l 133 /tmp/fns06.txt /tmp/fnsb06. +for b in /tmp/fnsb06.*; do + awk "{print \$1 \" probe entry count_hit\"}" "$b" > /tmp/tbl06.txt + EL_CONSTRUCTS=/tmp/tbl06.txt /tmp/elc06a.hot elc-cli.el > /dev/null 2>>/tmp/hot06.all +done +echo +echo "=== TOP 20 hottest functions of the compiler, compiling elc-cli.el ===" +grep "^HOTCOUNT" /tmp/hot06.all | sort -t" " -k2 -nr | head -20 | awk -F"\t" "{printf \" %12s %s\n\", \$2, \$3}" +echo +printf "total measured crossings: "; grep "^HOTCOUNT" /tmp/hot06.all | awk -F"\t" "{s+=\$2} END{print s}" +printf "distinct fns observed: "; grep -c "^HOTCOUNT" /tmp/hot06.all + diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.err b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.out b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.out new file mode 100644 index 0000000..8a49940 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.out @@ -0,0 +1,26 @@ +functions carrying a seam indirection: 266 + +=== TOP 20 hottest functions of the compiler, compiling elc-cli.el === + 310018 tok_kind + 211579 is_ws_code + 208435 is_digit_code + 204417 is_alpha_code + 152568 is_alnum_or_underscore_code + 67032 make_result + 58195 tok_append + 26858 vbd_expr_has_restricted_call + 26633 tok_value + 24971 scan_ident + 24971 keyword_kind + 22731 op_precedence + 22731 is_binop + 21375 cg_expr + 19782 parse_primary + 19705 parse_postfix + 19705 parse_binop + 17883 expect + 16679 parse_expr + 14480 str_has + +total measured crossings: 1692602 +distinct fns observed: 124 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.prov b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.prov new file mode 100644 index 0000000..b260630 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.prov @@ -0,0 +1,7 @@ +commit 35b07bade29fcd93a663a2f538b43c31f07e28cb +tree clean +captured_utc 2026-08-17T17:40:21Z +exit 0 +ms 5056 +sha256_out 05caa291733d60fad2e5fbaf9a330e4371990f7229f7cab0f2a0ba2b8652150a +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.rc b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.cmd b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.cmd new file mode 100644 index 0000000..e00dd64 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.cmd @@ -0,0 +1 @@ +bash /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/seam_timing_06.sh 9 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.err b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.out b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.out new file mode 100644 index 0000000..06caa29 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.out @@ -0,0 +1,22 @@ +host: Wills-MacBook-Pro | arm64 | reps per variant: 9 +reporting MIN of 9 runs (least noise-contaminated on a shared laptop) + +A baseline, no seam (35b07ba^) min 0.055s runs(ms): 58 57 57 55 55 58 60 58 60 +B seamed, 0 bindings min 0.058s runs(ms): 258 58 58 59 59 59 60 59 68 +C seamed, 2 bindings, resolve-once min 0.112s runs(ms): 116 116 114 117 113 112 114 113 116 +D seamed, 2 bindings, dlsym/call min 0.160s runs(ms): 364 160 165 160 163 164 164 162 162 +E seamed, 2 bindings, SILENT target min 0.076s runs(ms): 79 81 80 78 78 76 78 77 78 + +=== observed times and derived ratios (nothing rounded toward the record) === + A baseline, no seam 0.055s record: 0.37s + B seamed, 0 bindings 0.058s record: 0.36s + C seamed, 2 bindings, resolve-once 0.112s record: 0.69s + D seamed, 2 bindings, dlsym/call 0.160s record: 2.45s + E seamed, 2 bindings, silent target 0.076s record: (not measured) + + B/A cost of 266 unused indirections 1.055x record implies 0.36/0.37 = 0.973x ('free') + D/A dlsym-per-call vs baseline 2.909x record: 6.6x + D/C recovered by resolve-once 1.429x record: 3.5x + C/A resolve-once vs baseline 2.036x record implies 0.69/0.37 = 1.865x + E/A seam dispatch alone vs baseline 1.382x (printf removed) + C/E how much of C is the printf 1.474x record: 'the residual is audit_entry's own printf' diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.prov b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.prov new file mode 100644 index 0000000..526d9e3 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.prov @@ -0,0 +1,7 @@ +commit 35b07bade29fcd93a663a2f538b43c31f07e28cb +tree clean +captured_utc 2026-08-17T17:42:58Z +exit 0 +ms 5773 +sha256_out 27063b412e1e99fd9eef0530a40410aef6c8c8be77db7f24a48c916bf1cb9f67 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.rc b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.cmd b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.cmd new file mode 100644 index 0000000..72bb2c8 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.cmd @@ -0,0 +1 @@ +bash /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/free_when_unused_06.sh 41 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.err b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.out b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.out new file mode 100644 index 0000000..20620b2 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.out @@ -0,0 +1,11 @@ +A_us 56110 57655 56955 55777 57786 56509 57972 59963 57549 57240 59727 59659 59068 58682 58074 58962 60230 58689 60921 59270 58268 60081 57774 60555 58010 58851 60205 58525 60644 58018 58934 58092 59505 57739 58158 57220 58294 56649 58883 59439 58295 +B_us 60068 57937 59269 59650 58333 60600 64672 62749 61310 60183 60613 61126 61684 63417 60941 62487 60761 61512 60050 62102 58437 58676 60276 60985 58511 60990 61146 64052 59497 60016 59444 58497 61929 60482 62315 58339 59902 59686 67185 60040 61424 + +n=41 interleaved pairs, seconds + A no seam min 0.0558 median 0.0583 mean 0.0585 sd 0.0012 max 0.0609 + B 266 seam sites min 0.0579 median 0.0606 mean 0.0608 sd 0.0019 max 0.0672 + B/A by min = 1.0387x (record: 0.36/0.37 = 0.9730x) + B/A by med = 1.0395x (record: 0.36/0.37 = 0.9730x) + B/A by mean = 1.0385x (record: 0.36/0.37 = 0.9730x) + paired B-A: median +2.42 ms, mean +2.25 ms, sd 2.00 ms + B slower in 38/41 paired runs diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.prov b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.prov new file mode 100644 index 0000000..b088661 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.prov @@ -0,0 +1,7 @@ +commit 35b07bade29fcd93a663a2f538b43c31f07e28cb +tree clean +captured_utc 2026-08-17T17:43:50Z +exit 0 +ms 6719 +sha256_out 5d658c8898319f91966c2dbce73fb8a86d3f28d633fd01f96f6842a5ec473d05 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.rc b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.cmd b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.cmd new file mode 100644 index 0000000..72bb2c8 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.cmd @@ -0,0 +1 @@ +bash /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/free_when_unused_06.sh 41 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.err b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.out b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.out new file mode 100644 index 0000000..61e96af --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.out @@ -0,0 +1,11 @@ +A_us 60519 59461 59284 60208 58333 68916 59185 60288 60314 61594 59905 58530 60743 58098 60346 59232 59559 59119 60222 60172 59433 59641 59653 58393 58791 57527 58127 60763 61530 58508 58285 59692 57511 57161 59778 58872 60028 59354 58264 63474 57772 +B_us 62852 62668 61095 61190 60985 65193 60872 61458 63116 62973 60962 62721 62543 61451 62884 63627 62451 61385 62251 62129 62684 62681 61492 61888 61265 60541 61612 59870 61784 60343 62661 60851 60438 59843 61470 59739 61857 61619 62334 62273 63141 + +n=41 interleaved pairs, seconds + A no seam min 0.0572 median 0.0595 mean 0.0597 sd 0.0019 max 0.0689 + B 266 seam sites min 0.0597 median 0.0618 mean 0.0618 sd 0.0011 max 0.0652 + B/A by min = 1.0451x (record: 0.36/0.37 = 0.9730x) + B/A by med = 1.0391x (record: 0.36/0.37 = 0.9730x) + B/A by mean = 1.0362x (record: 0.36/0.37 = 0.9730x) + paired B-A: median +2.27 ms, mean +2.16 ms, sd 1.61 ms + B slower in 38/41 paired runs diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.prov b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.prov new file mode 100644 index 0000000..8806be5 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.prov @@ -0,0 +1,7 @@ +commit 35b07bade29fcd93a663a2f538b43c31f07e28cb +tree clean +captured_utc 2026-08-17T17:44:23Z +exit 0 +ms 7050 +sha256_out f9a07c33da31bb35435e30adc5a5d19df87db66c1d4cff4bd2fd76c830747652 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.rc b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.cmd b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.cmd new file mode 100644 index 0000000..70b42a2 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.cmd @@ -0,0 +1,26 @@ +bash -c +echo "CLAIM (886626a): \"three of the five compile-time kinds are runtime-bindable:" +echo " entry injection, exit injection, and refusal\"" +echo +echo "The runtime table format supports an exit phase. Does CODEGEN ever emit an" +echo "exit-phase seam call (phase argument 1) at any commit in this cycle?" +echo +for c in 35b07ba 886626a 28d19da 8bbb750 24f7fb5; do + printf "%s el_seam_run emissions in codegen.el:\n" "${c}" + git show "${c}:lang/el-compiler/src/codegen.el" | grep -n "el_seam_run" | sed "s/^/ /" +done +echo +echo "=== emitted C at 24f7fb5 (self-hosted): any phase-1 / exit seam call? ===" +printf " entry-phase calls el_seam_run(EL_STR(...), 0, : "; grep -c "el_seam_run(EL_STR(\"[^\"]*\"), 0," /tmp/g06e.gen2.c || true +printf " exit-phase calls el_seam_run(EL_STR(...), 1, : "; grep -c "el_seam_run(EL_STR(\"[^\"]*\"), 1," /tmp/g06e.gen2.c || true +echo +echo "=== runtime supports EL_PHASE_EXIT? ===" +git show "24f7fb5:lang/runtime/el_runtime.c" | grep -n "EL_PHASE_EXIT" | sed "s/^/ /" +echo +echo "=== when does an exit assertion first appear in seam_binding.sh? ===" +for c in 8bbb750 285166c bc2f26d; do + printf " %s: " "${c}" + git show "${c}:lang/tests/integration/seam_binding.sh" | grep -c "exit" || true + git show "${c}:lang/tests/integration/seam_binding.sh" | grep -E "^check \"an EXIT" | sed "s/^/ /" || true +done + diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.err b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.out b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.out new file mode 100644 index 0000000..add183e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.out @@ -0,0 +1,31 @@ +CLAIM (886626a): "three of the five compile-time kinds are runtime-bindable: + entry injection, exit injection, and refusal" + +The runtime table format supports an exit phase. Does CODEGEN ever emit an +exit-phase seam call (phase argument 1) at any commit in this cycle? + +35b07ba el_seam_run emissions in codegen.el: + 3211: emit_line(" el_seam_run(EL_STR(" + c_str_lit(fn_name) + "), 0, 0);") +886626a el_seam_run emissions in codegen.el: + 3211: emit_line(" { el_val_t __s = el_seam_run(EL_STR(" + c_str_lit(fn_name) + "), 0, 0); if (__s) return __s; }") +28d19da el_seam_run emissions in codegen.el: + 3212: emit_line(" { el_val_t __s = el_seam_run(EL_STR(" + c_str_lit(fn_name) + "), 0, 0); if (__s) return __s; }") +8bbb750 el_seam_run emissions in codegen.el: + 3212: emit_line(" { el_val_t __s = el_seam_run(EL_STR(" + c_str_lit(fn_name) + "), 0, 0); if (__s) return __s; }") +24f7fb5 el_seam_run emissions in codegen.el: + 3212: emit_line(" { el_val_t __s = el_seam_run(EL_STR(" + c_str_lit(fn_name) + "), 0, 0); if (__s) return __s; }") + +=== emitted C at 24f7fb5 (self-hosted): any phase-1 / exit seam call? === + entry-phase calls el_seam_run(EL_STR(...), 0, : 263 + exit-phase calls el_seam_run(EL_STR(...), 1, : 0 + +=== runtime supports EL_PHASE_EXIT? === + 17097:#define EL_PHASE_EXIT 1 + 17119: _el_seam[_el_seam_n].phase = (strcmp(ph, "exit") == 0) ? EL_PHASE_EXIT : EL_PHASE_ENTRY; + +=== when does an exit assertion first appear in seam_binding.sh? === + 8bbb750: 3 + 285166c: 6 + check "an EXIT construct declared after the build replaces the result" \ + bc2f26d: 6 + check "an EXIT construct declared after the build replaces the result" \ diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.prov b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.prov new file mode 100644 index 0000000..c85273a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.prov @@ -0,0 +1,7 @@ +commit 24f7fb51436bdc68838fd7651d7377f3fb919ee3 +tree clean +captured_utc 2026-08-17T17:44:50Z +exit 0 +ms 107 +sha256_out 251ac55436cd3cf5f2b3a123af2dab4799bd4d2ea1b8ceaa0ce5faa6db302058 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.rc b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.cmd b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.cmd new file mode 100644 index 0000000..47a0c8f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.cmd @@ -0,0 +1 @@ +bash /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/exit_binding_probe_06.sh /tmp/elc06b /tmp/rerun-v1-06b/lang diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.err b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.out b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.out new file mode 100644 index 0000000..86dec1d --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.out @@ -0,0 +1,12 @@ +--- emitted seam calls in the probe's C, with their phase argument --- +8: { el_val_t __s = el_seam_run(EL_STR("work"), 0, 0); if (__s) return __s; } + +--- control 1: ENTRY binding (expected to fire) --- +ENTRY-FIRED work/audited +7 + +--- control 2: EXIT binding (the claim under test) --- +7 + +VERDICT: if 'EXIT-FIRED' is absent and the program still prints 7, then no +exit-phase indirection is emitted and an exit binding cannot fire. diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.prov b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.prov new file mode 100644 index 0000000..29d99ec --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.prov @@ -0,0 +1,7 @@ +commit 886626a64e4c64b46d8382d95ab1d0ff7b739fe9 +tree clean +captured_utc 2026-08-17T17:45:21Z +exit 0 +ms 3368 +sha256_out 9a485715a033d891f0bc217e6c3dd53ad42b56ba00a9415c50f9666bfa998d7b +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.rc b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.cmd b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.cmd new file mode 100644 index 0000000..e5ccd04 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.cmd @@ -0,0 +1 @@ +bash /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/exit_binding_probe_06.sh /tmp/elc06e /tmp/rerun-v1-06e/lang diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.err b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.out b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.out new file mode 100644 index 0000000..86dec1d --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.out @@ -0,0 +1,12 @@ +--- emitted seam calls in the probe's C, with their phase argument --- +8: { el_val_t __s = el_seam_run(EL_STR("work"), 0, 0); if (__s) return __s; } + +--- control 1: ENTRY binding (expected to fire) --- +ENTRY-FIRED work/audited +7 + +--- control 2: EXIT binding (the claim under test) --- +7 + +VERDICT: if 'EXIT-FIRED' is absent and the program still prints 7, then no +exit-phase indirection is emitted and an exit binding cannot fire. diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.prov b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.prov new file mode 100644 index 0000000..88be6ed --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.prov @@ -0,0 +1,7 @@ +commit 24f7fb51436bdc68838fd7651d7377f3fb919ee3 +tree clean +captured_utc 2026-08-17T17:45:25Z +exit 0 +ms 3386 +sha256_out 9a485715a033d891f0bc217e6c3dd53ad42b56ba00a9415c50f9666bfa998d7b +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.rc b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.cmd b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.cmd new file mode 100644 index 0000000..4d1df70 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.cmd @@ -0,0 +1,23 @@ +bash -c +echo "CLAIM (28d19da): injects_at_entry removed, guards_at_entry removed," +echo "injects_at_exit STRUCTURAL, wraps_body structural, prohibits_outside #error." +echo +echo "=== occurrences of each declaration kind in codegen.el, parent -> commit ===" +printf "%-20s %8s %8s\n" kind "886626a" "28d19da" +for k in injects_at_entry guards_at_entry injects_at_exit wraps_body prohibits_outside; do + a=$(git show "886626a:lang/el-compiler/src/codegen.el" | grep -c "$k" || true) + b=$(git show "28d19da:lang/el-compiler/src/codegen.el" | grep -c "$k" || true) + printf "%-20s %8s %8s\n" "$k" "$a" "$b" +done +echo +echo "=== same, in the whole compiler src tree ===" +printf "%-20s %8s %8s\n" kind "886626a" "28d19da" +for k in injects_at_entry guards_at_entry injects_at_exit wraps_body prohibits_outside; do + a=$(git grep -c "$k" 886626a -- lang/el-compiler/src 2>/dev/null | awk -F: "{s+=\$NF} END{print s+0}") + b=$(git grep -c "$k" 28d19da -- lang/el-compiler/src 2>/dev/null | awk -F: "{s+=\$NF} END{print s+0}") + printf "%-20s %8s %8s\n" "$k" "$a" "$b" +done +echo +echo "=== the 65 removed / 4 added lines of codegen.el at 28d19da ===" +git diff "28d19da^" 28d19da -- lang/el-compiler/src/codegen.el + diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.err b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.out b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.out new file mode 100644 index 0000000..46b6ed1 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.out @@ -0,0 +1,140 @@ +CLAIM (28d19da): injects_at_entry removed, guards_at_entry removed, +injects_at_exit STRUCTURAL, wraps_body structural, prohibits_outside #error. + +=== occurrences of each declaration kind in codegen.el, parent -> commit === +kind 886626a 28d19da +injects_at_entry 2 1 +guards_at_entry 2 1 +injects_at_exit 2 2 +wraps_body 1 1 +prohibits_outside 2 2 + +=== same, in the whole compiler src tree === +kind 886626a 28d19da +injects_at_entry 2 1 +guards_at_entry 2 1 +injects_at_exit 2 2 +wraps_body 1 1 +prohibits_outside 2 2 + +=== the 65 removed / 4 added lines of codegen.el at 28d19da === +diff --git a/lang/el-compiler/src/codegen.el b/lang/el-compiler/src/codegen.el +index 5fd5761b..8f71d368 100644 +--- a/lang/el-compiler/src/codegen.el ++++ b/lang/el-compiler/src/codegen.el +@@ -3205,38 +3205,11 @@ fn fn_has_decorator(stmt: Map, name: String) -> Bool { + // applies both); injection is topmost-wins, matching the VBD role convention, + // because a role is singular and a refusal is not. + fn cg_entry_seam(stmt: Map, fn_name: String) -> Void { +- // RUNTIME SEAM: codegen cannot know which constructs will be bound to this +- // fn after the binary exists, so the indirection is unconditional. What +- // applies is resolved at execution against a table written later. ++ // The crossing is resolved at EXECUTION. One refusable indirection replaces ++ // the compile-time guard loop and injection loop: which constructs apply, ++ // and whether any of them refuses, is read from a table written after the ++ // binary exists. + emit_line(" { el_val_t __s = el_seam_run(EL_STR(" + c_str_lit(fn_name) + "), 0, 0); if (__s) return __s; }") +- let gdl = stmt["decorators"] +- let n_gdl: Int = native_list_len(gdl) +- let gi = 0 +- while gi < n_gdl { +- let gd = native_list_get(gdl, gi) +- let gdn: String = gd["name"] +- let g_target: String = decorator_guard(gdn) +- if !str_eq(g_target, "") { +- emit_line(" { el_val_t __g = " + g_target + "(EL_STR(" + c_str_lit(fn_name) + "), EL_STR(" + c_str_lit(gdn) + ")); if (__g) return __g; }") +- } +- let gi = gi + 1 +- } +- let idl = stmt["decorators"] +- let n_idl: Int = native_list_len(idl) +- let di = 0 +- let did_inject: Bool = false +- while di < n_idl { +- if !did_inject { +- let dd = native_list_get(idl, di) +- let ddn: String = dd["name"] +- let inj_target: String = decorator_injection(ddn) +- if !str_eq(inj_target, "") { +- emit_line(" " + inj_target + "(EL_STR(" + c_str_lit(fn_name) + "), EL_STR(" + c_str_lit(ddn) + "));") +- let did_inject = true +- } +- } +- let di = di + 1 +- } + } + + // cg_exit_target / cg_exit_construct — the first construct on this fn that +@@ -4310,13 +4283,7 @@ fn program_has_routes(recs: [Map]) -> Bool { + // inside this boundary" is a query over program structure and there is nothing + // yet to ask. + +-fn declare_decorator(name: String, injects: String) -> Void { +- state_set("__dec_inject_" + name, injects) +-} + +-fn decorator_injection(name: String) -> String { +- state_get("__dec_inject_" + name) +-} + + // A GUARD is an injection that may refuse. The declared target is called at + // entry with the same (fn, construct) pair; a non-zero return short-circuits +@@ -4333,13 +4300,7 @@ fn decorator_injection(name: String) -> String { + // nothing — fourteen applications that read as protection and emitted no + // instruction. The compiler still knows nothing about authentication: the + // program points the construct at its own function. +-fn declare_guard(name: String, guards: String) -> Void { +- state_set("__dec_guard_" + name, guards) +-} + +-fn decorator_guard(name: String) -> String { +- state_get("__dec_guard_" + name) +-} + + // An EXIT injection runs after the fn returns and receives the result: + // target(, , ) +@@ -4419,14 +4380,8 @@ fn prohibiting_constructs() -> String { + // the streaming backend discards per-fn ASTs and there is no whole-program AST + // to walk. + fn scan_declared_decorators(tokens: [Any]) -> Void { +- declare_decorator("manager", "engram_boundary_beat") +- declare_decorator("accessor", "engram_boundary_beat") + declare_prohibition("manager", "dharma_emit,dharma_field") + let total: Int = native_list_len(tokens) / 2 +- let has_pending: Bool = false +- let pending_target: String = "" +- let has_pending_g: Bool = false +- let pending_guard: String = "" + let has_pending_x: Bool = false + let pending_exit: String = "" + let has_pending_w: Bool = false +@@ -4471,14 +4426,6 @@ fn scan_declared_decorators(tokens: [Any]) -> Void { + if str_eq(dname, "decorator") { + if native_list_len(args) >= 2 { + let dkind: String = native_list_get(args, 0) +- if str_eq(dkind, "injects_at_entry") { +- let has_pending = true +- let pending_target = native_list_get(args, 1) +- } +- if str_eq(dkind, "guards_at_entry") { +- let has_pending_g = true +- let pending_guard = native_list_get(args, 1) +- } + if str_eq(dkind, "injects_at_exit") { + let has_pending_x = true + let pending_exit = native_list_get(args, 1) +@@ -4497,14 +4444,6 @@ fn scan_declared_decorators(tokens: [Any]) -> Void { + } else { + if str_eq(k, "Fn") { + let fname: String = tok_value(tokens, pos + 1) +- if has_pending { +- declare_decorator(fname, pending_target) +- let has_pending = false +- } +- if has_pending_g { +- declare_guard(fname, pending_guard) +- let has_pending_g = false +- } + if has_pending_x { + declare_exit(fname, pending_exit) + let has_pending_x = false diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.prov b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.prov new file mode 100644 index 0000000..ddf748e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.prov @@ -0,0 +1,7 @@ +commit 24f7fb51436bdc68838fd7651d7377f3fb919ee3 +tree clean +captured_utc 2026-08-17T17:45:38Z +exit 0 +ms 162 +sha256_out 1b7d6b83b146bd36ff15964cdec602d12c2ffcc52435281a1d1c6c20416a70e8 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.rc b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.cmd b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.cmd new file mode 100644 index 0000000..0b05115 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.cmd @@ -0,0 +1,16 @@ +bash -c +echo "=== the single remaining injects_at_entry / guards_at_entry reference at 28d19da ===" +git show "28d19da:lang/el-compiler/src/codegen.el" | grep -n "injects_at_entry\|guards_at_entry" | sed "s/^/ /" +echo +echo "=== prohibits_outside still emits a #error (compile-time by nature) ===" +git show "28d19da:lang/el-compiler/src/codegen.el" | grep -n "#error" | sed "s/^/ /" +echo +echo "=== the five compile-time passes and codegen.el after each (the 491-line claim) ===" +printf " baseline before any pass 409bf57 / addd512: %s\n" "$(git show "409bf573:lang/el-compiler/src/codegen.el" | wc -l | tr -d " ")" +for c in 5718943 60737b0 4f7568b 7d01608 1b324a0; do + printf " %s %-58s %s\n" "${c}" "$(git log -1 --format=%s ${c} | cut -c1-58)" "$(git show "${c}:lang/el-compiler/src/codegen.el" | wc -l | tr -d " ")" +done +printf " 5152 - 4661 = %s (record: \"Five compile-time passes added 491 lines\")\n" "$((5152-4661))" +printf " 5095 - 4661 = %s (record: \"Still +435 over baseline\")\n" "$((5095-4661))" +printf " 5156 - 5095 = %s (record: \"61 lines of compiler replaced by one refusable indirection\")\n" "$((5156-5095))" + diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.err b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.out b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.out new file mode 100644 index 0000000..9b47e50 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.out @@ -0,0 +1,45 @@ +=== the single remaining injects_at_entry / guards_at_entry reference at 28d19da === + 4258:// @decorator("injects_at_entry", "engram_boundary_beat") + 4292:// @decorator("guards_at_entry", "my_auth_check") + +=== prohibits_outside still emits a #error (compile-time by nature) === + 545: // become #error directives rather than silently falling through to + 998: // violations to be emitted as #error directives at the + 1921:// surface mismatches (Instant + Instant, Duration + Int) as #error + 2321:// Record a temporal-type violation. Surfaced as `#error` directives at the + 2481:// then emits #error directives at the top of the generated C so the + 2561:// Emit collected capability violations as #error directives. Called + 2578: emit_line("#error \"capability violation: '" + kind + "' programs may not call '" + fn_name + "' (self-formation primitive - only 'cgi' programs may use it)\"") + 2584:// Surface temporal-type violations as #error directives. The cg_expr BinOp + 2587:// to a single #error so downstream cc fails the build with a clear El- + 2602: emit_line("#error \"temporal type error: " + detail + "\"") + 2619:// in process state, which emit_arity_violations() turns into #error + 2980:// and surfaced as an #error at the bottom of the generated C, so cc fails + 2990:// Emit recorded arity violations as #error directives. + 3009: emit_line("#error \"arity error: '" + fn_name + "' takes " + exp_s + " arguments, but called with " + act_s + "\"") + 3356: // via #error directives emitted before the function definition. Read the + 3371: emit_line("#error \"boundary violation: " + prohibition_names(pc) + " may only be called from an @" + pc + " fn, but '" + fn_name + "' is not one\"") + 3529: emit_line("#error \"singleton '" + sid + "' declares no `guards:` — a singleton must name the state it protects, e.g. `guards: engram_resolve_data_dir()` (spec 18.2)\"") + 3701: // Codegen enforces this with #error directives at every restricted + 3728: emit_line("#error \"El: multiple cgi blocks in program (only one allowed)\"") + 3731: emit_line("#error \"El: multiple service blocks in program (only one allowed)\"") + 3735: emit_line("#error \"El: program declares both cgi and service blocks (mutually exclusive - pick one)\"") + 4002: // Emit any accumulated capability-violation #error directives. cc + 4007: // Same for builtin-arity violations: cc halts on the first #error, + 4282:// #error on dharma_emit) is still hardcoded, because "which calls may appear + 4352:// and one #error in cg_fn -- one prohibition, uneditable without a compiler + 4353:// release, and unrankable because a #error is a string handed to cpp, which + 4551: emit_line("#error \"El: multiple cgi blocks in program (only one allowed)\"") + 4554: emit_line("#error \"El: multiple service blocks in program (only one allowed)\"") + 4558: emit_line("#error \"El: program declares both cgi and service blocks (mutually exclusive - pick one)\"") + +=== the five compile-time passes and codegen.el after each (the 491-line claim) === + baseline before any pass 409bf57 / addd512: 4661 + 5718943 let a construct declare its own meaning instead of the emi 4800 + 60737b0 let a construct refuse, not only observe 4850 + 4f7568b give a construct its after-crossing face, and let construc 4953 + 7d01608 land wraps_body: a construct controls invocation 5084 + 1b324a0 let a construct declare what may not cross it 5152 + 5152 - 4661 = 491 (record: "Five compile-time passes added 491 lines") + 5095 - 4661 = 434 (record: "Still +435 over baseline") + 5156 - 5095 = 61 (record: "61 lines of compiler replaced by one refusable indirection") diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.prov b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.prov new file mode 100644 index 0000000..dfa4e3e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.prov @@ -0,0 +1,7 @@ +commit 24f7fb51436bdc68838fd7651d7377f3fb919ee3 +tree clean +captured_utc 2026-08-17T17:45:56Z +exit 0 +ms 99 +sha256_out aeeebfee1a307b0a14e05b8662735c345de638abe151cd862d4099ed3d28fece +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.rc b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.cmd b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.cmd new file mode 100644 index 0000000..5fbc0f9 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.cmd @@ -0,0 +1,14 @@ +bash -c +echo "Is the 532 el_val_t-declaration count really 266 prototypes + 266 definitions?" +printf " lines matching ^(static )?el_val_t NAME( : %s\n" "$(grep -cE "^(static )?el_val_t [a-zA-Z_][a-zA-Z0-9_]*\(" /tmp/g06a.gen2.c)" +printf " of those ending in \";\" (prototypes): %s\n" "$(grep -E "^(static )?el_val_t [a-zA-Z_][a-zA-Z0-9_]*\(" /tmp/g06a.gen2.c | grep -c ";$")" +printf " of those ending in \"{\" (definitions): %s\n" "$(grep -E "^(static )?el_val_t [a-zA-Z_][a-zA-Z0-9_]*\(" /tmp/g06a.gen2.c | grep -c "{$")" +printf " distinct names among them: %s\n" "$(grep -oE "^(static )?el_val_t [a-zA-Z_][a-zA-Z0-9_]*\(" /tmp/g06a.gen2.c | sed -E "s/^(static )?el_val_t //; s/\($//" | sort -u | wc -l | tr -d " ")" +printf " distinct fn names carrying a seam indirection: %s\n" "$(grep -oE "^[[:space:]]*el_seam_run\(EL_STR\(\"[^\"]*\"" /tmp/g06a.gen2.c | sed -E "s/.*EL_STR\(\"//; s/\"$//" | sort -u | wc -l | tr -d " ")" +echo +echo " set difference (declared el_val_t fns NOT carrying a seam):" +grep -oE "^(static )?el_val_t [a-zA-Z_][a-zA-Z0-9_]*\(" /tmp/g06a.gen2.c | sed -E "s/^(static )?el_val_t //; s/\($//" | sort -u > /tmp/decl06.txt +grep -oE "^[[:space:]]*el_seam_run\(EL_STR\(\"[^\"]*\"" /tmp/g06a.gen2.c | sed -E "s/.*EL_STR\(\"//; s/\"$//" | sort -u > /tmp/seamed06.txt +comm -23 /tmp/decl06.txt /tmp/seamed06.txt | sed "s/^/ /" +echo " (empty = every declared el_val_t fn carries exactly one indirection)" + diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.err b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.out b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.out new file mode 100644 index 0000000..ce53016 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.out @@ -0,0 +1,9 @@ +Is the 532 el_val_t-declaration count really 266 prototypes + 266 definitions? + lines matching ^(static )?el_val_t NAME( : 532 + of those ending in ";" (prototypes): 266 + of those ending in "{" (definitions): 266 + distinct names among them: 266 + distinct fn names carrying a seam indirection: 266 + + set difference (declared el_val_t fns NOT carrying a seam): + (empty = every declared el_val_t fn carries exactly one indirection) diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.prov b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.prov new file mode 100644 index 0000000..7b97e91 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.prov @@ -0,0 +1,7 @@ +commit 35b07bade29fcd93a663a2f538b43c31f07e28cb +tree clean +captured_utc 2026-08-17T17:49:44Z +exit 0 +ms 57 +sha256_out d97e929292f02e452b2f446ba6ea81b607819f7c0a303cae7fa1e8a1c66a059c +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.rc b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/CLAIMS.md b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/CLAIMS.md new file mode 100644 index 0000000..7bde254 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/CLAIMS.md @@ -0,0 +1,379 @@ +# CLAIMS — cycle 06, the crossing resolves at emission + +Source doc: `docs/v1/experiments/cycles/06-the-crossing-resolves-at-emission.md` + +This cycle pins **five** commits. The record is five commit messages, written +sequentially as the experiment ran, so several figures are restated at the +landing commit and one claim is silently corrected by a later commit in the +same cycle. Both are checked below. + +## Pinned commits + +| Tag | SHA | Committed | Subject | Parent | Worktree | +|---|---|---|---|---|---| +| 06a | `35b07bade29fcd93a663a2f538b43c31f07e28cb` | 2026-08-17 08:37:47 -0500 | EXPERIMENT: resolve the crossing at execution, not at emission | `1b324a071` | `/tmp/rerun-v1-06a` | +| 06b | `886626a64e4c64b46d8382d95ab1d0ff7b739fe9` | 2026-08-17 08:40:10 -0500 | seam refusal + control tests: a runtime binding can short-circuit | `35b07bade` | `/tmp/rerun-v1-06b` | +| 06c | `28d19da7f1b6b43394302c82ef58446deeebc9d3` | 2026-08-17 08:43:57 -0500 | strip the compile-time machinery the seam replaces | `886626a64` | `/tmp/rerun-v1-06c` | +| 06d | `8bbb750c2cefc2dc070f6c5ff598e82483df9bcf` | 2026-08-17 08:48:57 -0500 | control the claim that cannot be unit tested | `28d19da7f` | `/tmp/rerun-v1-06d` | +| 06e | `24f7fb51436bdc68838fd7651d7377f3fb919ee3` | 2026-08-17 08:56:41 -0500 | land the runtime seam: resolve the crossing at execution | **merge**: `82e998273` + `8bbb750c2` | `/tmp/rerun-v1-06e` | + +`24f7fb5` is a **merge commit**, not a linear child of `8bbb750` (`0214-commit-dag-topology.out`). +Its first parent is `82e9982` (a self-review commit on the trunk). Consequently +`git diff 24f7fb5^ 24f7fb5` shows the *entire* cycle, and `codegen.el` / +`el_runtime.c` are unchanged between `8bbb750` and `24f7fb5` except for the ++60 runtime lines that come in from `82e9982`. + +All five worktrees were clean at capture. Every artifact is stamped `tree clean` +in `MANIFEST.tsv`. Environment: Apple M-series arm64, Apple clang 21.0.0, +macOS 25.5.0 (`RUN.env`). + +## Self-hosting method used throughout + +`dist/platform/elc` (the committed bootstrap) is **stale** at every commit in +this cycle, because every one of these commits changes codegen's output. So: + +``` +gen1 = dist/platform/elc elc-cli.el # stale bootstrap emission, NO seam +gen2 = elc(built from gen1) elc-cli.el # first emission that carries the seam +gen3 = elc(built from gen2) elc-cli.el # the fixpoint check +``` + +The fixpoint is **gen2 == gen3**. `gen1 != gen2` is expected. This is exactly +the methodological point the record itself makes at `35b07ba` ("my first +fixpoint test was wrong, not the code"), and this record demonstrates both +halves. All seam-site counts below are taken from **gen2**, the self-hosted +emission — gen1 contains no seam at all. + +## Verdicts + +| # | Claim (verbatim from the record) | Artifact | Commit | Verdict | +|---|---|---|---|---| +| 1 | "codegen emits one unconditional indirection per fn" | `0363-fn-count-vs-seam-sites-06a.out`, `0030-seam-site-count-breakdown-06a.out` | `35b07ba` | **REPRODUCED exactly** — gen2 declares 266 `el_val_t` functions (266 prototypes + 266 definitions = 532 lines, 266 distinct names) and carries 266 indirections over 266 distinct names. The set difference is **empty**: every declared function has exactly one, and nothing else has one | +| 2 | P1 "a construct declared after the build applies" — TRUE | `0272-RECONSTRUCTED-seamrun-transcript-06a.out`, `0274-RETROFIT-seam_binding-harness-06a.out` | `35b07ba` | **REPRODUCED** | +| 3 | P2 "an unlinked target is skipped, not fatal" — TRUE | `0272-…-seamrun-transcript-06a.out`, `0274-RETROFIT-…-06a.out` | `35b07ba` | **REPRODUCED** — binding `no_such_symbol_anywhere` prints 7, exit 0 | +| 4 | P3 "emitting on every fn is measurably slower" — **FALSE**, "0.37s -> 0.36s … Free unused" | `0298-REDO-free-when-unused-clean-binary-06a.out`, `0297-RECONSTRUCTED-free-when-unused-06a.out` | `35b07ba` | **DIVERGED** — it *is* measurably slower here: +3.9 % median, B slower in 38/41 interleaved paired runs. See detail A | +| 5 | "267 indirections" / "267 seam sites" | `0013-selfhost-3gen-fixpoint-06a.out`, `0030-seam-site-count-breakdown-06a.out` | `35b07ba` | **REPRODUCED** — `grep -c el_seam_run` on gen2 = **267**, exactly. Of those, 266 are emitted statements and 1 is codegen's own `emit_line` string literal. See detail F | +| 6 | P4 "the compiler still self-hosts" — TRUE | `0013-selfhost-3gen-fixpoint-06a.out` | `35b07ba` | **REPRODUCED** — gen2 == gen3, sha256 `ca98d55ffad2…` both | +| 7 | P4 note: "I compared gen1 to gen2, which must differ whenever codegen's output changes" | `0013-selfhost-3gen-fixpoint-06a.out` | `35b07ba` | **REPRODUCED** — gen1 (`1748ab31…`) != gen2 (`ca98d55f…`); the author's diagnosis of his own bad test is correct | +| 8 | P4 note: "gen2 == gen3, 267 seam sites, stable" | `0013-selfhost-3gen-fixpoint-06a.out` | `35b07ba` | **REPRODUCED** — gen2 and gen3 both 11817 lines, both 267 `el_seam_run` lines, byte-identical | +| 9 | DEMONSTRATED transcript: `/tmp/seamrun` → 7; then `EL_CONSTRUCTS=constructs.txt /tmp/seamrun` → "AUDIT: work applied by audited" / 7 | `0272-RECONSTRUCTED-seamrun-transcript-06a.out` | `35b07ba` | **REPRODUCED** (probe reconstructed — see "Reconstructed inputs") — output matches the transcript verbatim, line for line | +| 10 | MEASURED COST: "0 bindings 0.36s vs 0.37s baseline" (absolute) | `0296-RECONSTRUCTED-seam-cost-timing-06a.out` | `35b07ba` | **NOT-REPRODUCIBLE (machine-dependent)** — this machine runs the same workload in 0.055 s / 0.058 s, ~6.7× faster than the record's hardware | +| 11 | MEASURED COST: "2 bindings, dlsym per call — 2.45s" (absolute) | `0296-…-seam-cost-timing-06a.out` | `35b07ba` | **NOT-REPRODUCIBLE (machine-dependent)** — observed 0.160 s | +| 12 | MEASURED COST: "2 bindings, resolved once — 0.69s" (absolute) | `0296-…-seam-cost-timing-06a.out` | `35b07ba` | **NOT-REPRODUCIBLE (machine-dependent)** — observed 0.112 s | +| 13 | "…dlsym per call **6.6x**" (ratio) | `0296-…-seam-cost-timing-06a.out` | `35b07ba` | **DIVERGED** — observed **2.909×** over baseline. See detail B | +| 14 | "…resolved once **3.5x** recovered" (ratio) | `0296-…-seam-cost-timing-06a.out` | `35b07ba` | **DIVERGED** — observed **1.429×** recovered. See detail B | +| 15 | "The table scan was never the cost. dlsym walks the dynamic symbol table on every call. Resolve once and cache" | `0296-…-seam-cost-timing-06a.out` | `35b07ba` | **REPRODUCED (direction)** — disabling the resolve-once cache costs 48 ms over 521 597 crossings ≈ 92 ns per `dlsym`; the table scan (2 entries) is not separable from noise | +| 16 | "The 0.69s residual is audit_entry's own printf … not seam overhead" | `0296-…-seam-cost-timing-06a.out` | `35b07ba` | **DIVERGED** — the printf is **63 %** of the residual, not all of it; the remaining **37 %** *is* seam dispatch. See detail C | +| 17 | "Prediction 3 was FALSE. I expected refusal to be impossible through the seam" | `0274-RETROFIT-…-06a.out` vs `0273-RETROFIT-…-06b.out` | `35b07ba` → `886626a` | **REPRODUCED** — at `35b07ba` the refusal assertion is the *only* one of six that fails (expected 42, actual 7); at `886626a` all six pass | +| 18 | The one-line emitted shape `{ el_val_t __s = el_seam_run(EL_STR(f), 0, 0); if (__s) return __s; }` | `0105-emitted-seam-shape-and-counts.out`, `0190-seam-c-line-count-precise.out` | `886626a` | **REPRODUCED verbatim** — emitted C reads ` { el_val_t __s = el_seam_run(EL_STR("is_digit_code"), 0, 0); if (__s) return __s; }`; the commit's codegen diff is a one-line replacement | +| 19 | "work() returns 7; bound to a refusing construct AFTER the build it returns 42" | `0273-RETROFIT-seam_binding-harness-06b.out` | `886626a` | **REPRODUCED** | +| 20 | "three of the five compile-time kinds are runtime-bindable: entry injection, exit injection, and refusal" | `0299-exit-phase-bindability-check.out`, `0324-RECONSTRUCTED-exit-binding-probe-06b.out`, `0325-…-06e.out` | `886626a` | **DIVERGED** — only **two** are: entry injection and refusal. No exit-phase indirection is ever emitted in this cycle. See detail D | +| 21 | "wraps_body needs invocation control and prohibits_outside is compile-time by nature" | `0326-strip-table-verification-28d19da.out`, `0348-residual-kind-references-28d19da.out` | `886626a` | **REPRODUCED** — both survive the strip; `prohibits_outside` resolves to `emit_line("#error \"boundary violation: …")` at codegen.el:3371 | +| 22 | "104/104 native compiler tests pass" | `0047-native-compiler-tests-06b.out` | `886626a` | **REPRODUCED** — `104 tests, 104 passed, 0 failed, 253 assertions` | +| 23 | "PREDICTION: codegen.el drops below 4661 … RESULT: FALSE" | `0128-REDO-codegen-linecount-history.out` | `28d19da` | **REPRODUCED** — the prediction is indeed false; codegen.el is 5095 after the strip, still far above 4661 | +| 24 | "**5157** -> **5096**" | `0128-REDO-codegen-linecount-history.out` | `886626a` → `28d19da` | **DIVERGED** — observed **5156 -> 5095**. Both endpoints are exactly one line high in the record. See detail E | +| 25 | "Still **+435** over baseline" | `0128-REDO-codegen-linecount-history.out`, `0348-residual-kind-references-28d19da.out` | `28d19da` | **DIVERGED** — 5095 − 4661 = **+434** | +| 26 | "4661, its size before any of these passes" (the baseline itself) | `0128-REDO-codegen-linecount-history.out` | pre-cycle | **REPRODUCED** — codegen.el is exactly 4661 lines at `409bf573` and `addd5120`, the two commits immediately preceding cycle 01's parent | +| 27 | "injects_at_entry collapsed into the seam — removed / guards_at_entry collapsed into the seam — removed" | `0326-strip-table-verification-28d19da.out`, `0348-…-28d19da.out` | `28d19da` | **REPRODUCED** — `declare_decorator`, `decorator_injection`, `declare_guard`, `decorator_guard` and both token-scan branches deleted; the single surviving mention of each name at 28d19da is a `//` comment | +| 28 | "injects_at_exit — STRUCTURAL / wraps_body — structural / prohibits_outside — a #error cannot be emitted at runtime" | `0326-strip-table-verification-28d19da.out` | `28d19da` | **REPRODUCED** — all three untouched by the strip diff | +| 29 | "**61 lines** of compiler replaced by one refusable indirection" | `0128-REDO-…-history.out`, `0190-seam-c-line-count-precise.out` | `28d19da` | **REPRODUCED exactly** — 5156 − 5095 = 61; the diff is `+4 / −65` = net −61 | +| 30 | "**8 tests fail**, and they are exactly the 8 controls for compile-time entry injection and guards. No unrelated breakage." | `0048-native-compiler-tests-06c.out`, `0051-failing-tests-detail-06c.out` | `28d19da` | **REPRODUCED exactly** — `104 tests, 96 passed, 8 failed`; every failing test named below, 4 entry-injection + 4 guard controls, nothing else | +| 31 | "Verified after the strip: fixpoint gen2==gen3" | `0069-selfhost-3gen-fixpoint-06c.out` | `28d19da` | **REPRODUCED** — gen2 == gen3, sha256 `7b9b6e0306ff…` | +| 32 | "observation and refusal both work through the seam with the compiler knowing nothing about either" | `0275-RETROFIT-seam_binding-harness-06c.out` | `28d19da` | **REPRODUCED** — 6/6 with the harness from `8bbb750` applied retroactively | +| 33 | The six assertion names of `tests/integration/seam_binding.sh` | `0228-integration-seam_binding-06d.out` | `8bbb750` | **REPRODUCED** — all six lines match the record verbatim, in order | +| 34 | "6 assertions, 6 passed, 0 failed" | `0228-integration-seam_binding-06d.out` | `8bbb750` | **REPRODUCED** — real harness, `bash tests/integration/seam_binding.sh /tmp/elc06d "$PWD"`, exit 0 | +| 35 | "The eight controls that failed after the strip were replaced, not repaired" | `0239-REDO-test-churn-names.out` | `8bbb750` | **REPRODUCED** — the eight tests deleted at `8bbb750` are, name for name, the eight that failed at `28d19da` | +| 36 | "Three took their place, asserting the emitted shape" | `0239-REDO-test-churn-names.out` | `8bbb750` | **REPRODUCED** — exactly three added: `seam-replaces-inlined-entry-injection`, `seam-entry-is-refusable`, `seam-is-emitted-for-undecorated-fns`. 104 − 8 + 3 = 99 | +| 37 | "99/99 native compiler tests pass" | `0049-native-compiler-tests-06d.out` | `8bbb750` | **REPRODUCED** — `99 tests, 99 passed, 0 failed, 240 assertions` | +| 38 | "Fixpoint holds." | `0081-selfhost-3gen-fixpoint-06d.out` | `8bbb750` | **REPRODUCED** — gen2 == gen3 | +| 39 | "Five compile-time passes added **491 lines**" | `0348-residual-kind-references-28d19da.out`, `0128-REDO-…-history.out` | `24f7fb5` | **REPRODUCED exactly** — 4661 → 5152 across `5718943`, `60737b0`, `4f7568b`, `7d01608`, `1b324a0`. 5152 − 4661 = 491 | +| 40 | "The seam is **~55 lines of C** and **one line of emission**" | `0190-seam-c-line-count-precise.out`, `0175-seam-c-block-verbatim.out` | `24f7fb5` | **REPRODUCED** — the implementation block `el_runtime.c:17095–17152` is 58 lines, of which **55 are non-blank** (51 excluding comment lines); codegen contains exactly **one** `emit_line` producing the indirection | +| 41 | "a construct declared AFTER the binary exists applies to it" | `0229-integration-seam_binding-06e.out` | `24f7fb5` | **REPRODUCED** | +| 42 | "free when unused: 0.36s vs 0.37s baseline **across 267 indirections**" | `0105-emitted-seam-shape-and-counts.out` | `24f7fb5` | **DIVERGED** — at the landing commit the emission carries **263** `el_seam_run` lines / **262** actual indirections, not 267. The 267 figure is carried forward unchanged from `35b07ba`, before the strip removed four functions. (The timing half is covered by rows 4 and 10.) | +| 43 | "dlsym was the cost, not the table scan; resolve-once recovered **3.5x**" | `0296-…-seam-cost-timing-06a.out` | `24f7fb5` | **DIVERGED** — the qualitative half reproduces (row 15); the 3.5× does not (observed 1.429×) | +| 44 | "refusal works, composition works, unlinked targets are skipped not fatal" | `0229-integration-seam_binding-06e.out` | `24f7fb5` | **REPRODUCED** — the three corresponding harness assertions pass | +| 45 | "injects_at_exit and wraps_body do NOT collapse … The wrapper is structural" | `0326-strip-table-verification-28d19da.out` | `24f7fb5` | **REPRODUCED** | +| 46 | "prohibits_outside cannot move at all — a #error has no runtime" | `0348-residual-kind-references-28d19da.out` | `24f7fb5` | **REPRODUCED** — `prohibits_outside` still emits `#error` at codegen.el:3371 | +| 47 | "Controls: 99/99 native compiler tests, plus tests/integration/seam_binding.sh (6/6)" | `0050-native-compiler-tests-06e.out`, `0229-integration-seam_binding-06e.out` | `24f7fb5` | **REPRODUCED** — both, exactly | +| 48 | Cross-cycle: cycle 08's doc says "7/7 seam_binding.sh" where this cycle says 6/6 | `0256-seam_binding-assertion-growth.out` | `285166c` | **REPRODUCED as consistent, not contradictory** — `seam_binding.sh` gains a seventh assertion ("an EXIT construct declared after the build replaces the result") at `285166c`, after this cycle ends. See detail D | + +**Counts: 48 assertions — REPRODUCED 36, DIVERGED 9, NOT-REPRODUCIBLE 3, NOT-CAPTURED 0.** + +The nine divergences are rows 4, 13, 14, 16, 20, 24, 25, 42, 43, detailed in +sections A–F below. Two of them (rows 13/14 and 43) are the same two ratios +stated twice, once in the experiment commit and once in the landing commit. + +--- + +## Divergence detail A — P3, "emitting on every fn is measurably slower: FALSE" + +The record's evidence is a single before/after pair, `0.37s -> 0.36s`, reported +to two decimal places on a ~370 ms run. A single pair at that resolution cannot +distinguish a 3 % effect from noise, and the sign it happened to land on +(faster) drove the verdict FALSE. + +Re-measured as an **interleaved paired** benchmark, A,B,A,B,… × 41, so that +clock or thermal drift cannot favour either arm: + +| | A: no seam (`35b07ba^`, self-hosted) | B: 266 indirections (`35b07ba`, self-hosted) | +|---|---|---| +| min | 0.0572 s | 0.0597 s | +| median | 0.0595 s | 0.0618 s | +| mean | 0.0597 s | 0.0618 s | +| sd | 0.0019 s | 0.0011 s | + +- **B/A = 1.0391× by median, 1.0362× by mean, 1.0451× by min.** The record's + pair implies 0.36/0.37 = 0.9730×. +- Paired difference B−A: **median +2.27 ms, mean +2.16 ms, sd 1.61 ms**. +- **B was slower in 38 of 41 paired runs.** + +Both arms are self-hosted to fixpoint, both `-O2 -rdynamic`, both compile +`elc-cli.el` with stdout to `/dev/null`. The only source difference between the +two compilers is this commit's 4-line codegen addition and 75-line runtime +addition. The first run of this benchmark (`0297`) used a B binary that also +linked the counting-target object file; `0298` repeats it with a clean B binary +built from gen2 plus the runtime alone, and gets the same answer (+3.9 %, +38/41), so the extra object file was not the cause. + +**The record's practical conclusion survives; its literal verdict does not.** +266 unused indirections cost about 4 % of a compile — small enough that +"free unused" is a fair engineering summary, but it is a real, consistently +signed, measurable cost. The prediction "emitting on every fn is measurably +slower" was marked FALSE on evidence that could not support the call. + +## Divergence detail B — the 6.6× and 3.5× ratios + +Four variants, min of 9 runs each, same workload (`elc elc-cli.el > /dev/null`): + +| | observed | record | +|---|---|---| +| A baseline, no seam | 0.055 s | 0.37 s | +| B seamed, 0 bindings | 0.058 s | 0.36 s | +| C seamed, 2 bindings, resolve-once | 0.112 s | 0.69 s | +| D seamed, 2 bindings, dlsym per call | 0.160 s | 2.45 s | +| E seamed, 2 bindings, **silent** target | 0.076 s | (not measured) | + +| ratio | observed | record | +|---|---|---| +| D/A dlsym-per-call vs baseline | **2.909×** | 6.6× | +| D/C recovered by resolve-once | **1.429×** | 3.5× | +| C/A resolve-once vs baseline | **2.036×** | 1.865× (0.69/0.37) | + +The record specifies neither the workload, nor which two functions were bound, +nor the target's body, nor the hardware. Two of those were chosen here and are +stated in "Reconstructed inputs" below; the choice of *which* two functions +dominates the result entirely, since the ratio scales with the number of +crossings. The two bound here are the two hottest **as measured** (`0276`), not +guessed: `tok_kind` (310 018 crossings) and `is_ws_code` (211 579), 521 597 +total. + +The direction is right in every case and the mechanism is right (detail C). +The magnitudes are not reproducible from what the record states, and they are +reported here without any adjustment toward the claimed figures. + +One further caveat on D: **the `dlsym`-per-call variant reconstructs a state +that was never committed.** The code at `35b07ba` already caches +(`resolve_tried`), so the 2.45 s measurement must have been taken on a working +tree that no commit preserves. D was produced by turning +`if (!_el_seam[i].resolve_tried)` into `if (1)` in a *scratchpad copy* of +`el_runtime.c`; no worktree was modified. + +## Divergence detail C — "the residual is audit_entry's own printf, not seam overhead" + +This is the one claim in the cost table that is a causal attribution rather +than a number, and it is the one worth separating. Variant E repeats variant C +with a **silent** target, which the record never measured: + +- C − A = 57 ms — the whole residual over baseline +- C − E = **36 ms** — attributable to the target's `printf` (63 % of the residual) +- E − A = **21 ms** — attributable to seam dispatch itself (37 % of the residual), + ≈ 40 ns per crossing over 521 597 crossings + +So the printf is the *larger* share, and the record is right that it is the +thing to look at. But it is not the whole thing: a third of the residual is the +seam's own dispatch, and the record's "not seam overhead" overstates it. + +## Divergence detail D — "exit injection is runtime-bindable" + +At `886626a` the record states that **three** of the five compile-time kinds +are runtime-bindable: entry injection, exit injection, and refusal. + +Entry injection and refusal are. **Exit injection is not, at any commit in this +cycle.** + +- The runtime's table parser accepts `entry|exit` and defines `EL_PHASE_EXIT 1` + (`el_runtime.c:17097`, `:17119`), so an exit binding *loads* without error. +- But codegen emits exactly **one** `el_seam_run` call, at every one of the five + commits, and its phase argument is a literal `0`. Emitted C at `24f7fb5` + contains **263** phase-0 calls and **0** phase-1 calls (`0299`). +- Empirically (`0324`, `0325`): binding `work doubler exit double_result` on an + already-built binary produces no output from the target and leaves the result + at 7, at both `886626a` and `24f7fb5`. The identical binding in the `entry` + phase fires normally. + +An exit binding is therefore accepted and silently never fires — a worse +failure mode than rejection. + +The record corrects itself three commits later without acknowledging the +earlier claim: `28d19da` lists `injects_at_exit` as **STRUCTURAL**, and +`24f7fb5` says plainly "injects_at_exit and wraps_body do NOT collapse". The +seventh `seam_binding.sh` assertion — "an EXIT construct declared after the +build replaces the result" — first appears at `285166c`, whose subject is +"EXPERIMENT: emit the wrapper unconditionally, **so exit binds at runtime too**", +i.e. after this cycle, as new work. That also resolves the 6/6-vs-7/7 question: +cycle 06's 6/6 and cycle 08's 7/7 are both correct for their commits. + +## Divergence detail E — the codegen.el line counts, off by one at both ends + +| | record | observed (`wc -l`, and `grep -c ""`) | +|---|---|---| +| `28d19da^` = `886626a` | 5157 | **5156** | +| `28d19da` | 5096 | **5095** | +| difference | 61 | **61** | +| over the 4661 baseline | +435 | **+434** | + +Both files end with a trailing newline (`0128` includes the `od -c` check), so +`wc -l` is exact and `grep -c ""` agrees with it. The error is systematic and +in the same direction at both ends — the signature of a count read off an +editor that shows a phantom final line, i.e. N+1 for a newline-terminated file. + +The *delta* is unaffected, which is why the load-bearing claim of the commit — +"61 lines of compiler replaced by one refusable indirection" — reproduces +exactly, and why the conclusion (the prediction was FALSE; codegen did not drop +below 4661) is untouched. + +Worth noting against this: the "**491 lines**" figure in the landing commit is +computed from the *true* `wc -l` values (4661 → 5152 = 491, exact). So the +record's own line counts are not produced by one consistent method. + +## Divergence detail F — the "267 seam sites", and what it counts + +The record's 267 reproduces on the nose: `grep -c el_seam_run` over the +self-hosted gen2 emission at `35b07ba` returns exactly **267**, at both gen2 and +gen3. + +One of those 267 lines is not an indirection. It is codegen's own emitter line, +which appears in the compiler's emitted C as a string literal: + +``` +8180: emit_line(el_str_concat(el_str_concat(EL_STR(" el_seam_run(EL_STR("), c_str_lit(fn_name)), EL_STR("), 0, 0);"))); +``` + +The count of actual emitted indirections is therefore **266**, over **266 +distinct function names**, one apiece — which is the cleaner statement of the +mechanism ("one unconditional indirection per fn") and is confirmed +independently in `0363`: gen2 contains 532 `el_val_t` declaration lines, exactly +266 prototypes and 266 definitions over 266 distinct names, and the set of +declared functions minus the set of seamed functions is **empty**. This is +recorded as a precision note, not as an error: 267 is the +number the obvious command prints, and the off-by-one is the compiler counting +itself. + +The figure does **not** survive the strip. After `28d19da` removes four +functions, the same grep returns **263** (262 real indirections) at `28d19da`, +`8bbb750` and `24f7fb5` — whose gen2 emissions are byte-identical to each other +(sha256 `7b9b6e0306ff…`). The landing commit's restatement "across 267 +indirections" is a stale carry-forward (row 42). + +--- + +## The eight failing tests at `28d19da`, named + +The record says "8 tests fail, and they are exactly the 8 controls for +compile-time entry injection and guards. No unrelated breakage." The run +(`0048`, exit code **8**; detail in `0051`) reports +`104 tests, 96 passed, 8 failed, 253 assertions`: + +| # | Test | Failing assertion | Kind | +|---|---|---|---| +| 1 | `decorator-manager-beat-carries-construct` | "@manager injects the beat" | entry injection | +| 2 | `decorator-accessor-beat-carries-construct` | "@accessor injects the beat" | entry injection | +| 3 | `declared-construct-injects-without-compiler-knowledge` | "a program-declared construct injects" | entry injection | +| 4 | `builtin-constructs-still-inject` | "seeded manager still injects" | entry injection | +| 5 | `declared-guard-emits-refusable-check` | "the guard is called at entry" | guard | +| 6 | `declared-guards-stack-in-order` | "first guard runs" | guard | +| 7 | `guard-precedes-injection` | "the guard is emitted before the beat" | guard + entry injection | +| 8 | `constructs-compose-guard-entry-exit` | "guard before entry injection" | guard + entry injection | + +Exactly eight, four entry-injection and four guard, nothing else. The claim is +reproduced without qualification. `8bbb750` then deletes these eight by name +(`0239`) and adds three — `seam-replaces-inlined-entry-injection`, +`seam-entry-is-refusable`, `seam-is-emitted-for-undecorated-fns` — giving +104 − 8 + 3 = 99. + +## Test and seam-site totals across the cycle + +| commit | native tests | seam lines in gen2 | real indirections | codegen.el | fixpoint | +|---|---|---|---|---|---| +| `1b324a0` (parent) | 102 declared | 0 | 0 | 5152 | — | +| `35b07ba` | 102 / 102 pass | 267 | 266 | 5156 | gen2==gen3 | +| `886626a` | 104 / 104 pass | 267 | 266 | 5156 | gen2==gen3 | +| `28d19da` | 104, **96 pass / 8 fail** | 263 | 262 | 5095 | gen2==gen3 | +| `8bbb750` | 99 / 99 pass | 263 | 262 | 5095 | gen2==gen3 | +| `24f7fb5` | 99 / 99 pass | 263 | 262 | 5095 | gen2==gen3 | + +## Reconstructed inputs + +Three inputs used below did not exist in the tree at the commit measured. Each +is an **input**, not evidence; the evidence is the captured output of running +it at the pinned commit. + +1. **`/tmp/seamrun`** (`0272`). The record's DEMONSTRATED transcript names a + probe binary that was never committed. It was rebuilt from the record's own + text — an El program with `fn work() -> Int { return 7 }` and no construct + anywhere, plus a linked-but-unreferenced C target named `audit_entry` + printing `AUDIT: applied by `. The structure is copied from + `tests/integration/seam_binding.sh`, which the same author committed three + commits later (`8bbb750`) as the permanent form of this same hand check; the + only substitutions are the record's own target name and message. Captured + output matches the transcript line for line. +2. **`seam_binding.sh` applied retroactively** (`0273`, `0274`, `0275`). The + harness from `8bbb750` was run, unmodified, against the compilers built at + `35b07ba`, `886626a` and `28d19da`, where it does not yet exist. This is what + establishes that refusal fails at `35b07ba` and succeeds from `886626a` on. + Artifacts are named `RETROFIT-` to mark that the harness postdates the commit. +3. **The timing rig** (`0276`, `0296`, `0297`, `0298`) — see detail B. The + `dlsym`-per-call arm uses a scratchpad copy of `el_runtime.c` with the + resolve-once cache disabled. No worktree was modified at any point; all five + worktrees are `clean` on every artifact in `MANIFEST.tsv`. + +The two hottest functions used for the 2-binding measurements were determined +**by measurement, not by guess** (`0276`): the seam itself was used as an +instrument, binding all 266 seamed functions in two batches to a counting +target that dumps at exit. Top of the distribution compiling `elc-cli.el`: +`tok_kind` 310 018, `is_ws_code` 211 579, `is_digit_code` 208 435, +`is_alpha_code` 204 417, `is_alnum_or_underscore_code` 152 568; 1 692 602 +crossings over 124 functions actually reached. + +## Measurement defects in this re-run, recorded rather than removed + +1. **`0114-codegen-linecount-history.out` is defective and retained.** Its + `while read -r h &1)" +-- +64:check "a construct declared AFTER the build applies" \ +65- "SEEN work/audited +-- +69:check "a construct declared after the build can REFUSE" \ +70- "42" "$(cd "$WORK" && EL_CONSTRUCTS=refuse.txt ./prog 2>&1)" +-- +73:check "an unlinked target is skipped, not fatal" \ +74- "7" "$(cd "$WORK" && EL_CONSTRUCTS=ghost.txt ./prog 2>&1)" +-- +77:check "a binding for a different fn does not fire" \ +78- "7" "$(cd "$WORK" && EL_CONSTRUCTS=other.txt ./prog 2>&1)" +-- +81:check "two constructs compose on one crossing" \ +82- "SEEN work/a +-- +92:check "an EXIT construct declared after the build replaces the result" \ +93- "14" "$(cd "$WORK" && EL_CONSTRUCTS=exit.txt ./prog 2>&1)" + +== 5d. is the appended 'thrice' target ever compiled? (targets.c is cc'd BEFORE the append) == +29:cat > "$WORK/targets.c" <<'EOF' +57:cc $CFLAGS -o "$WORK/prog" "$WORK/prog.c" "$WORK/targets.c" $SRCS $LDFLAGS 2>/dev/null \ +66:7" "$(cd "$WORK" && EL_CONSTRUCTS=observe.txt ./prog 2>&1)" +70: "42" "$(cd "$WORK" && EL_CONSTRUCTS=refuse.txt ./prog 2>&1)" +74: "7" "$(cd "$WORK" && EL_CONSTRUCTS=ghost.txt ./prog 2>&1)" +78: "7" "$(cd "$WORK" && EL_CONSTRUCTS=other.txt ./prog 2>&1)" +84:7" "$(cd "$WORK" && EL_CONSTRUCTS=two.txt ./prog 2>&1)" +86:cat >> "$WORK/targets.c" <<'TGT' +93: "14" "$(cd "$WORK" && EL_CONSTRUCTS=exit.txt ./prog 2>&1)" + +== 5e. does any binding file in the harness use phase 'wrap'? == + NONE — no 'wrap' phase binding is ever written by the harness + +== 6. treewide: any file at bc2f26d or c04d68f that binds phase 'wrap'? == + none in .sh/.txt diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.prov b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.prov new file mode 100644 index 0000000..1baaa0d --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.prov @@ -0,0 +1,7 @@ +commit bc2f26ddfc35119e242c0a38d09e2b0023136462 +tree clean +captured_utc 2026-08-17T17:40:29Z +exit 0 +ms 425 +sha256_out f705426787699a1e41a5a1611c76a99045f9f3fa72be0382ecde18ff2d054c05 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.rc b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.cmd b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.cmd new file mode 100644 index 0000000..078f36f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.cmd @@ -0,0 +1 @@ +bash -c SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; /tmp/elc07b --test tests/native/test_compiler.el > /tmp/t07b.c && cc $CF -o /tmp/t07bx /tmp/t07b.c $SRCS $LF && /tmp/t07bx | tail -5 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.err b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.err new file mode 100644 index 0000000..5e6d69b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14448:1: warning: '/*' within block comment [-Wcomment] + 14448 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.out b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.out new file mode 100644 index 0000000..783aa30 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.out @@ -0,0 +1,5 @@ +ok early-returns-route-through-the-exit-seam (0.094ms) +ok every-fn-gets-a-closure (0.123ms) +ok zero-param-fn-emits-valid-c (0.088ms) + +100 tests, 100 passed, 0 failed, 241 assertions in 5.926ms diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.prov b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.prov new file mode 100644 index 0000000..cad8d43 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.prov @@ -0,0 +1,7 @@ +commit bc2f26ddfc35119e242c0a38d09e2b0023136462 +tree clean +captured_utc 2026-08-17T17:40:45Z +exit 0 +ms 4144 +sha256_out 1476cd0ce8382365e86d5cda728a86cafb1f3156e6bb0d7ea3a9babddc091c28 +sha256_err 15ee96301428d7dc3500fe5b6109a154a87a2f21119365e665575b3e634d662b diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.rc b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.cmd b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.cmd new file mode 100644 index 0000000..1fc3a59 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.cmd @@ -0,0 +1 @@ +bash tests/integration/seam_binding.sh /tmp/elc07b /tmp/rerun-v1-07/lang diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.err b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.out b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.out new file mode 100644 index 0000000..f72835b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.out @@ -0,0 +1,9 @@ + ok unbound program is unaffected + ok a construct declared AFTER the build applies + ok a construct declared after the build can REFUSE + ok an unlinked target is skipped, not fatal + ok a binding for a different fn does not fire + ok two constructs compose on one crossing + ok an EXIT construct declared after the build replaces the result + + 7 assertions, 7 passed, 0 failed diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.prov b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.prov new file mode 100644 index 0000000..45251c4 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.prov @@ -0,0 +1,7 @@ +commit bc2f26ddfc35119e242c0a38d09e2b0023136462 +tree clean +captured_utc 2026-08-17T17:40:48Z +exit 0 +ms 3433 +sha256_out 03d3e2e45ceb69b512d12b292f32e5cf7d36d10925fc8abb8f5273e83e8b6287 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.rc b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.cmd b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.cmd new file mode 100644 index 0000000..7827892 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.cmd @@ -0,0 +1 @@ +bash /tmp/parent07.sh diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.err b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.out b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.out new file mode 100644 index 0000000..484ecc3 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.out @@ -0,0 +1,19 @@ +== verify the extracted tree really is bc2f26d^ == + git blob bc2f26d^:lang/el-compiler/src/codegen.el f6bc48623aca4e6fd7f88639f7cb25a75bd3027f15aee5b5d5047dfcd2bb663a + /tmp/el07parent/lang/el-compiler/src/codegen.el f6bc48623aca4e6fd7f88639f7cb25a75bd3027f15aee5b5d5047dfcd2bb663a + MATCH + test_compiler.el blob 1e6cd04b7d0bb4c90d27d6a2f08c6bfdf78c3e1c1b12f73887c3b2fd60dc0384 + test_compiler.el file 1e6cd04b7d0bb4c90d27d6a2f08c6bfdf78c3e1c1b12f73887c3b2fd60dc0384 + MATCH + +== native compiler tests at bc2f26d^ (built gen2, same procedure as the commit) == +ok exit-crossing-goes-through-the-seam (0.065ms) +ok early-returns-route-through-the-exit-seam (0.097ms) + +99 tests, 99 passed, 0 failed, 239 assertions in 5.827ms + +== integration seam_binding.sh at bc2f26d^ == + ok two constructs compose on one crossing + ok an EXIT construct declared after the build replaces the result + + 7 assertions, 6 passed, 0 failed diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.prov b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.prov new file mode 100644 index 0000000..a980016 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.prov @@ -0,0 +1,7 @@ +commit bc2f26ddfc35119e242c0a38d09e2b0023136462 +tree clean +captured_utc 2026-08-17T17:41:20Z +exit 0 +ms 7762 +sha256_out 61212505c09813a15042520d6a8a7dc6d24d3a6d0f31de4a6ab627f9a53a5d0e +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.rc b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.cmd b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.cmd new file mode 100644 index 0000000..1776a56 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.cmd @@ -0,0 +1 @@ +git diff bc2f26d^ bc2f26d -- lang/el-compiler/src/codegen.el diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.err b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.out b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.out new file mode 100644 index 0000000..0c8d82e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.out @@ -0,0 +1,173 @@ +diff --git a/lang/el-compiler/src/codegen.el b/lang/el-compiler/src/codegen.el +index bd90b266..eaaa4def 100644 +--- a/lang/el-compiler/src/codegen.el ++++ b/lang/el-compiler/src/codegen.el +@@ -3215,44 +3215,15 @@ fn cg_entry_seam(stmt: Map, fn_name: String) -> Void { + // cg_exit_target / cg_exit_construct — the first construct on this fn that + // injects at exit, or "" if none. + +-fn cg_wrap_target(stmt: Map) -> String { +- let wdl = stmt["decorators"] +- let n_wdl: Int = native_list_len(wdl) +- let wi = 0 +- let found: String = "" +- while wi < n_wdl { +- if str_eq(found, "") { +- let wd = native_list_get(wdl, wi) +- let wdn: String = wd["name"] +- let wt: String = decorator_wrap(wdn) +- if !str_eq(wt, "") { let found = wt } +- } +- let wi = wi + 1 +- } +- found +-} + +-fn cg_wrap_construct(stmt: Map) -> String { +- let wdl = stmt["decorators"] +- let n_wdl: Int = native_list_len(wdl) +- let wi = 0 +- let found: String = "" +- while wi < n_wdl { +- if str_eq(found, "") { +- let wd = native_list_get(wdl, wi) +- let wdn: String = wd["name"] +- let wt: String = decorator_wrap(wdn) +- if !str_eq(wt, "") { let found = wdn } +- } +- let wi = wi + 1 +- } +- found +-} + + // params_to_env_fields / params_to_env_init / params_to_env_args — the captured + // environment. This IS the closure: a struct of captured values, a function + // pointer that takes it, and the pair handed to the wrap target. + fn params_to_env_fields(params: [Any]) -> String { ++ // A zero-param fn would emit `struct __env_f { };` -- an empty struct is a ++ // GNU extension, not C99, and an empty initialiser is C23. ++ if native_list_len(params) == 0 { return " char __e0;" } + let out: String = "" + let n: Int = native_list_len(params) + let i = 0 +@@ -3266,6 +3237,7 @@ fn params_to_env_fields(params: [Any]) -> String { + } + + fn params_to_env_init(params: [Any]) -> String { ++ if native_list_len(params) == 0 { return "0" } + let out: String = "" + let n: Int = native_list_len(params) + let i = 0 +@@ -3296,19 +3268,6 @@ fn params_to_env_args(params: [Any]) -> String { + + // params_to_call_args — "a, b, c" from the param list, for the wrapper's call + // into the body helper. +-fn params_to_call_args(params: [Any]) -> String { +- let out: String = "" +- let n: Int = native_list_len(params) +- let i = 0 +- while i < n { +- let p = native_list_get(params, i) +- let pn: String = p["name"] +- if i > 0 { let out = out + ", " } +- let out = out + pn +- let i = i + 1 +- } +- out +-} + + fn cg_fn(stmt: Map) -> Void { + let fn_name: String = stmt["name"] +@@ -3358,11 +3317,7 @@ fn cg_fn(stmt: Map) -> Void { + // silently miss every early return — which is precisely the class of + // failure this seam exists to remove. Fns with no exit construct emit + // exactly as before, byte for byte. +- let wrap_target: String = cg_wrap_target(stmt) +- let wrap_construct: String = cg_wrap_construct(stmt) +- let has_wrap: Bool = !str_eq(wrap_target, "") +- let has_exit: Bool = true +- if has_exit { ++ if true { + emit_line("static el_val_t __el_body_" + fn_name + "(" + params_c + ") {") + } else { + emit_line("el_val_t " + fn_name + "(" + params_c + ") {") +@@ -3393,27 +3348,21 @@ fn cg_fn(stmt: Map) -> Void { + // The wrapper: guards, entry injection, the body call, then the exit + // injection, which receives the result so it can observe what the fn + // actually returned. +- if has_wrap { +- // Codegen defines the wrap calling convention, so codegen declares it. +- // El has ONE type -- el_val_t = int64_t -- so El's own `extern fn` cannot +- // describe a callable, and asking it to produces an int/pointer +- // mismatch. The convention is not El-expressible; it is emitted. +- emit_line("extern el_val_t " + wrap_target + "(el_val_t, el_val_t, el_val_t(*)(void*), void*);") ++ if true { ++ // EVERY fn gets an env struct and a thunk. Codegen cannot know which fns ++ // a wrap construct will be bound to after the binary exists, and the ++ // wrapper unconditionally calls through el_seam_wrap. + emit_line("struct __env_" + fn_name + " { " + params_to_env_fields(params) + " };") + emit_line("static el_val_t __thunk_" + fn_name + "(void* __v) {") + emit_line(" struct __env_" + fn_name + "* __e = (struct __env_" + fn_name + "*)__v; (void)__e;") + emit_line(" return __el_body_" + fn_name + "(" + params_to_env_args(params) + ");") + emit_line("}") + } +- if has_exit { ++ if true { + emit_line("el_val_t " + fn_name + "(" + params_c + ") {") + cg_entry_seam(stmt, fn_name) +- if has_wrap { +- emit_line(" struct __env_" + fn_name + " __env = { " + params_to_env_init(params) + " };") +- emit_line(" el_val_t __r = " + wrap_target + "(EL_STR(" + c_str_lit(fn_name) + "), EL_STR(" + c_str_lit(wrap_construct) + "), __thunk_" + fn_name + ", &__env);") +- } else { +- emit_line(" el_val_t __r = __el_body_" + fn_name + "(" + params_to_call_args(params) + ");") +- } ++ emit_line(" struct __env_" + fn_name + " __env = { " + params_to_env_init(params) + " };") ++ emit_line(" el_val_t __r = el_seam_wrap(EL_STR(" + c_str_lit(fn_name) + "), __thunk_" + fn_name + ", &__env);") + emit_line(" __r = el_seam_run(EL_STR(" + c_str_lit(fn_name) + "), 1, __r);") + emit_line(" return __r;") + emit_line("}") +@@ -4291,13 +4240,7 @@ fn program_has_routes(recs: [Map]) -> Bool { + // only decide whether to repeat — no timeout, no rollback-and-retry, no + // parallel, no memoize-on-arguments. It would also have crippled the JS backend, + // which has closures natively, for a limit in the C one. +-fn declare_wrap(name: String, wraps: String) -> Void { +- state_set("__dec_wrap_" + name, wraps) +-} + +-fn decorator_wrap(name: String) -> String { +- state_get("__dec_wrap_" + name) +-} + + // A PROHIBITION is the other half of a boundary: not what runs when something + // crosses, but what may not cross at all. +@@ -4340,8 +4283,6 @@ fn prohibiting_constructs() -> String { + fn scan_declared_decorators(tokens: [Any]) -> Void { + declare_prohibition("manager", "dharma_emit,dharma_field") + let total: Int = native_list_len(tokens) / 2 +- let has_pending_w: Bool = false +- let pending_wrap: String = "" + let has_pending_p: Bool = false + let pending_prohibit: String = "" + let pos: Int = 0 +@@ -4382,10 +4323,6 @@ fn scan_declared_decorators(tokens: [Any]) -> Void { + if str_eq(dname, "decorator") { + if native_list_len(args) >= 2 { + let dkind: String = native_list_get(args, 0) +- if str_eq(dkind, "wraps_body") { +- let has_pending_w = true +- let pending_wrap = native_list_get(args, 1) +- } + if str_eq(dkind, "prohibits_outside") { + let has_pending_p = true + let pending_prohibit = native_list_get(args, 1) +@@ -4396,10 +4333,6 @@ fn scan_declared_decorators(tokens: [Any]) -> Void { + } else { + if str_eq(k, "Fn") { + let fname: String = tok_value(tokens, pos + 1) +- if has_pending_w { +- declare_wrap(fname, pending_wrap) +- let has_pending_w = false +- } + if has_pending_p { + declare_prohibition(fname, pending_prohibit) + let has_pending_p = false diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.prov b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.prov new file mode 100644 index 0000000..f97100e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.prov @@ -0,0 +1,7 @@ +commit bc2f26ddfc35119e242c0a38d09e2b0023136462 +tree clean +captured_utc 2026-08-17T17:41:33Z +exit 0 +ms 12 +sha256_out 6fcd4b37cf2bb12288bbd7734ae8cdd8f67ef47107ea59ac5786e8c6e06bc4f1 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.rc b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.cmd b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.cmd new file mode 100644 index 0000000..82ed9c4 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.cmd @@ -0,0 +1 @@ +bash -c echo "== the single wraps_body occurrence in codegen.el at bc2f26d^ =="; git grep -n -- "wraps_body" "bc2f26d^" -- lang/el-compiler/src/codegen.el; echo; echo "== surrounding branch, bc2f26d^ codegen.el lines 4380-4410 =="; git show "bc2f26d^:lang/el-compiler/src/codegen.el" | sed -n "4380,4412p" | cat -n; echo; echo "== treewide wraps_body at bc2f26d^ =="; git grep -n -- "wraps_body" "bc2f26d^" diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.err b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.out b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.out new file mode 100644 index 0000000..0cf0444 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.out @@ -0,0 +1,41 @@ +== the single wraps_body occurrence in codegen.el at bc2f26d^ == +bc2f26d^:lang/el-compiler/src/codegen.el:4385: if str_eq(dkind, "wraps_body") { + +== surrounding branch, bc2f26d^ codegen.el lines 4380-4410 == + 1 if str_eq(tok_kind(tokens, p), "RParen") { let p = p + 1 } + 2 } + 3 if str_eq(dname, "decorator") { + 4 if native_list_len(args) >= 2 { + 5 let dkind: String = native_list_get(args, 0) + 6 if str_eq(dkind, "wraps_body") { + 7 let has_pending_w = true + 8 let pending_wrap = native_list_get(args, 1) + 9 } + 10 if str_eq(dkind, "prohibits_outside") { + 11 let has_pending_p = true + 12 let pending_prohibit = native_list_get(args, 1) + 13 } + 14 } + 15 } + 16 let pos = p + 17 } else { + 18 if str_eq(k, "Fn") { + 19 let fname: String = tok_value(tokens, pos + 1) + 20 if has_pending_w { + 21 declare_wrap(fname, pending_wrap) + 22 let has_pending_w = false + 23 } + 24 if has_pending_p { + 25 declare_prohibition(fname, pending_prohibit) + 26 let has_pending_p = false + 27 } + 28 let pos = pos + 2 + 29 } else { + 30 let pos = pos + 1 + 31 } + 32 } + 33 } + +== treewide wraps_body at bc2f26d^ == +bc2f26d^:lang/el-compiler/src/codegen.el:4385: if str_eq(dkind, "wraps_body") { +bc2f26d^:lang/tests/native/test_compiler.el:809: let src: String = "@decorator(\"wraps_body\", \"with_timeout\")\nfn timed() {}\n@timed\nfn slow(k: Int) -> Int { return 9 }" diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.prov b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.prov new file mode 100644 index 0000000..7ec838d --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.prov @@ -0,0 +1,7 @@ +commit bc2f26ddfc35119e242c0a38d09e2b0023136462 +tree clean +captured_utc 2026-08-17T17:41:33Z +exit 0 +ms 78 +sha256_out 02cc6917d77969bd62aea53c0732e255f75b8d9076ea795a74659573aa105363 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.rc b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.cmd b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.cmd new file mode 100644 index 0000000..f92dcfc --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.cmd @@ -0,0 +1 @@ +bash -c echo "== diff of the harness, bc2f26d^ -> bc2f26d =="; git diff bc2f26d^ bc2f26d -- lang/tests/integration/seam_binding.sh; echo; echo "== the summary line at every commit where the harness exists =="; for c in $(git rev-list --reverse 5718943^..c04d68f); do f=$(git show ${c}:lang/tests/integration/seam_binding.sh 2>/dev/null | grep -n "assertions, " | tr -d "\n"); n=$(git show ${c}:lang/tests/integration/seam_binding.sh 2>/dev/null | grep -c "^check \|^check\"" ); if [ -n "$f" ]; then printf " %s check-calls=%s %s\n" "$(git rev-parse --short=9 $c)" "$n" "$f"; fi; done diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.err b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.out b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.out new file mode 100644 index 0000000..6287fdd --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.out @@ -0,0 +1,30 @@ +== diff of the harness, bc2f26d^ -> bc2f26d == +diff --git a/lang/tests/integration/seam_binding.sh b/lang/tests/integration/seam_binding.sh +index 20e85046..58e28c61 100755 +--- a/lang/tests/integration/seam_binding.sh ++++ b/lang/tests/integration/seam_binding.sh +@@ -83,10 +83,15 @@ check "two constructs compose on one crossing" \ + SEEN work/b + 7" "$(cd "$WORK" && EL_CONSTRUCTS=two.txt ./prog 2>&1)" + ++cat >> "$WORK/targets.c" <<'TGT' ++el_val_t thrice(el_val_t fn, el_val_t con, el_val_t (*b)(void*), void* e){ ++ (void)fn; (void)con; return b(e) + b(e) + b(e); /* wrap: invoke N times */ ++} ++TGT + printf 'work doubler exit double_result\n' > "$WORK/exit.txt" + check "an EXIT construct declared after the build replaces the result" \ + "14" "$(cd "$WORK" && EL_CONSTRUCTS=exit.txt ./prog 2>&1)" + + echo +-echo " 7 assertions, $((6-FAILS)) passed, $FAILS failed" ++echo " 7 assertions, $((7-FAILS)) passed, $FAILS failed" + exit $FAILS + +== the summary line at every commit where the harness exists == + 8bbb750c2 check-calls=6 84:echo " 6 assertions, $((6-FAILS)) passed, $FAILS failed" + 24f7fb514 check-calls=6 84:echo " 6 assertions, $((6-FAILS)) passed, $FAILS failed" + 285166c25 check-calls=7 91:echo " 7 assertions, $((6-FAILS)) passed, $FAILS failed" + b40754f07 check-calls=7 91:echo " 7 assertions, $((6-FAILS)) passed, $FAILS failed" + bc2f26ddf check-calls=7 96:echo " 7 assertions, $((7-FAILS)) passed, $FAILS failed" + c04d68f9c check-calls=7 96:echo " 7 assertions, $((7-FAILS)) passed, $FAILS failed" diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.prov b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.prov new file mode 100644 index 0000000..f5e8139 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.prov @@ -0,0 +1,7 @@ +commit bc2f26ddfc35119e242c0a38d09e2b0023136462 +tree clean +captured_utc 2026-08-17T17:43:46Z +exit 0 +ms 264 +sha256_out 23c299268a3bc1441fb485f5756072fb386394c72756698c8ea9e315fbc08ed1 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.rc b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/CLAIMS.md b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/CLAIMS.md new file mode 100644 index 0000000..fdad802 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/CLAIMS.md @@ -0,0 +1,257 @@ +# CLAIMS — cycle 07, invocation is not composable + +Source doc: `docs/v1/experiments/cycles/07-invocation-is-not-composable.md` + +## Pinned commits + +| | | +|---|---| +| Cycle commit (the EXPERIMENT) | `bc2f26ddfc35119e242c0a38d09e2b0023136462` | +| Committed | 2026-08-17 09:06:05 -0500 | +| Subject | EXPERIMENT: invocation control resolves at runtime | +| Parent (the "before" state the record describes) | `b40754f07b5eff3700a69681397e46949a5c4f41` — "land unconditional wrapper: exit crossings resolve at runtime", 2026-08-17 09:01:55 -0500 | +| Land commit (second record block, no numeric claims) | `c04d68f9c…` — "land runtime invocation control: only prohibition remains compiled", 2026-08-17 09:06:16 -0500 | +| Re-run method | detached worktree `/tmp/rerun-v1-07` at `bc2f26d`, tree clean | +| Artifact provenance | every artifact pinned to `bc2f26ddfc35`, tree `clean` (see `MANIFEST.tsv`) | +| Machine | Apple M4 Pro, Darwin 25.5.0 arm64, Apple clang 21.0.0, load avg ≈5–6 during timing | + +**`c04d68f` is tree-identical to `bc2f26d`.** `git diff --stat bc2f26d c04d68f` is empty and +`codegen.el` hashes identically at both (`0015`). The land commit changes no file; it only +re-records the experiment as landed. Every measurement below therefore applies to both. + +## Verdicts + +| # | Claim (verbatim from the record) | Artifact | Commit | Verdict | +|---|---|---|---|---| +| 1 | "P1 wrap becomes runtime-bindable **TRUE** body x3 -> 21, never invoked -> 111" | `0016-P1-wrap-probe-reconstructed.out` (reconstructed probe), `0040-REDO-seam-caller-and-wrap-assertion-search.out` | `bc2f26d` | **REPRODUCED (behaviour) / DIVERGED (evidence)** — a reconstructed probe does observe `21` and `111`. But **no test or harness in the tree at `bc2f26d` asserts either number, and none ever exercises the wrap seam at all.** See divergence detail A. | +| 2 | "P2 codegen shrinks **TRUE** 5042 -> 4977" | `0009-codegen-linecount-parent-and-commit.out`, `0011-codegen-linecount-every-commit-in-range.out` | `bc2f26d^`, `bc2f26d` | **DIVERGED** — observed `5043 -> 4976` (−67). Claimed `5042 -> 4977` (−65). Neither endpoint matches; no commit in `5718943^..c04d68f` has codegen.el at 5042 or 4977 lines. Direction of the claim (it shrinks) holds. See detail B. | +| 3 | "P3 cost 5-10% from an indirect call on every fn **TRUE** 0.36s -> 0.39s, ~8%" | `0036-P3-timing-parent-vs-commit-gen3.out`, `0037-P3-timing-two-workloads-n21.out` | `bc2f26d^` vs `bc2f26d` | **DIVERGED** on the ratio; **NOT-REPRODUCIBLE** on the absolutes. Re-measured overhead is **+0.6 % to +2.3 %**, not ~8 %. No workload in the tree runs anywhere near 0.36 s. See detail C. | +| 4 | "P4 zero-param fns break on the empty struct **TRUE** — empty struct is a GNU extension, empty init is C23. Fixed with a char field." | `0017-P4-zero-param-env-struct-emitted-c.out`, `0005/0041-native-compiler-tests*.out` | `bc2f26d` | **REPRODUCED** — emitted C contains `struct __env_noargs { char __e0; };` and `struct __env_noargs __env = { 0 };`; no empty struct, no empty initialiser; the emitted C passes `-std=c11 -pedantic-errors -fsyntax-only`. The `char __e0` return is at `codegen.el:3226` at `bc2f26d` and absent at the parent. Test `zero-param-fn-emits-valid-c` passes. | +| 5 | "P5 fixpoint holds **TRUE**" | `0038-selfhost-fixpoint-gen2-gen3.out` (and `0008-REDO-…`) | `bc2f26d` | **REPRODUCED** — gen2 == gen3, identical sha256 `02c9b3e2…`, 14360 lines each. gen1 (from the committed `dist/platform/elc`) differs, which is expected because this commit changes codegen's output. See measurement defect 1. | +| 6 | "PROCESS FAILURE … The build then failed with 'undeclared identifier __thunk_noargs'" | `0039-thunk-noargs-and-seam-caller-search.out` | range `5718943^..c04d68f` | **NOT-CAPTURED** — the state described was never committed. The literal `__thunk_noargs` appears in no committed file at any commit in the range; it is a name codegen *generates* (`codegen.el:3356`). In the C emitted at `bc2f26d` the thunk is declared at line 12 and used at line 19, and the file compiles and runs clean. The failure is a real-but-transient working-tree state with no artifact. | +| 7 | "Removed: declare_wrap, decorator_wrap, cg_wrap_target, cg_wrap_construct, params_to_call_args, and the wraps_body scanner branch" | `0012-removed-symbols-parent-vs-commit.out`, `0013-params_to_call_args-orphan-comment.out`, `0045-wraps_body-scanner-branch-at-parent.out` | `bc2f26d^`, `bc2f26d` | **DIVERGED (one of six)** — five of six are gone from the whole tree. `params_to_call_args` loses its definition (parent codegen.el:3299) and its only call site (parent codegen.el:3415), but its **two-line doc comment survives at `bc2f26d` codegen.el:3269**, describing a function that no longer exists. See detail D. | +| 8 | "prohibits_outside is now the ONLY construct kind left at compile time" | `0014-construct-kinds-parent-vs-commit.out` | `bc2f26d` | **REPRODUCED, with a scope note** — `prohibits_outside` is the only kind name with executable dispatch in codegen.el (`str_eq(dkind, "prohibits_outside")` at line 4326). `injects_at_entry`, `guards_at_entry`, `injects_at_exit` each survive at exactly one line, all of them `//` doc comments. `wraps_body` is gone tree-wide. Note the claim was already true of the other three at the **parent** — this commit's contribution is removing `wraps_body` only. | +| 9 | (not stated in the doc) native compiler test result at `bc2f26d` | `0005-native-compiler-tests.out`, `0041-native-compiler-tests-gen2-binary.out` | `bc2f26d` | **REPRODUCED as fact, but the doc records nothing to check it against** — `100 tests, 100 passed, 0 failed, 241 assertions`. Parent: `99 tests, 99 passed, 0 failed, 239 assertions` (`0043`). The doc gives no test count for this commit; its absence is itself a gap, since the commit deletes a test (`declared-wrap-emits-closure-and-convention`) and adds two. | +| 10 | (not stated in the doc) integration harness result at `bc2f26d` | `0007`, `0042`, `0043` | `bc2f26d` | **REPRODUCED as fact** — `seam_binding.sh`: `7 assertions, 7 passed, 0 failed`. At the parent the same harness reports `7 assertions, 6 passed, 0 failed` — an arithmetic bug (`$((6-FAILS))`) that this commit fixes. **The commit adds no assertion**; its only substantive harness change is appending a dead `thrice` target. | +| 11 | "a construct bound after the build decides how and whether to invoke it" (ISHIKAWA) | `0016`, `0007`/`0042` | `bc2f26d` | **REPRODUCED** — via the reconstructed probe for the wrap phase, and directly by the shipped harness for the entry/exit/refuse phases. | +| 12 | (not stated in the doc) `bc2f26d` silently fixes a harness pass-count bug | `0046-seam_binding-tally-history.out` | `bc2f26d` | **OBSERVED BUT UNCLAIMED** — see detail E. | + +**Counts: 6 REPRODUCED · 4 DIVERGED · 1 NOT-CAPTURED · 1 OBSERVED-BUT-UNCLAIMED · (0 pure NOT-REPRODUCIBLE; claim 3 carries a NOT-REPRODUCIBLE component on its absolute figures).** + +--- + +## Divergence detail A — P1's 21 and 111 have no evidence in the tree + +This is the substantive finding for cycle 07. + +The numbers are **behaviourally correct** — I observed `21` and `111`. What is not correct is +the implication that the commit *demonstrated* them. + +What `bc2f26d` actually did to `lang/tests/integration/seam_binding.sh` (the whole diff, from +`git diff bc2f26d^ bc2f26d -- lang/tests/integration/`): + +1. appended a `thrice` wrap target to `$WORK/targets.c`, and +2. changed the summary line from `$((6-FAILS))` to `$((7-FAILS))`. + +Both are inert with respect to P1: + +- **`thrice` is never compiled.** `targets.c` is written at harness line 29 and passed to `cc` + at line 57. The `cat >> "$WORK/targets.c"` that adds `thrice` is at **line 86** — twenty-nine + lines *after* the binary was already linked. Nothing recompiles it (`0040` §5d). +- **No `wrap`-phase binding is ever written.** `el_seam_load` at `bc2f26d` recognises three + phases (`entry`, `exit`, `wrap`); the harness writes `entry` and `exit` binding files only. + `0040` §5e: no `printf '… wrap …'` anywhere in the harness. §6: no `wrap` binding in any + `.sh`/`.txt` in the tree. +- **The strings `21` and `111` do not occur in the harness at all** (`0040` §5b). Its seven + expectations are `7`, `SEEN work/audited\n7`, `42`, `7`, `7`, `SEEN work/a\nSEEN work/b\n7`, + `14` (`0040` §5c). +- The commit's own native test comments say the N-times behaviour "lives in + `tests/integration/seam_binding.sh`" — it does not. +- `tests/integration/seam_caller.sh` **does not exist at any commit in `5718943^..c04d68f`** + (`0040` §4). It first appears at `d9d1571`, a v2-era commit, and is unrelated to this cycle. + (The parent agent's hint to look for it is answered: not here.) + +So the 7→7 pass count reported by the harness at `bc2f26d` is the *same seven assertions* the +parent already ran; the commit fixed the arithmetic that had been under-reporting them as 6. + +**The reconstruction (an INPUT, not evidence).** `evidence/.../probe07.sh`, output captured as +`0016`. It is modelled line-for-line on `seam_binding.sh` at `bc2f26d`: the same `prog.el` +(`fn work() -> Int { return 7 }`), the same `thrice` target *verbatim including its comment*, +the same `EL_CONSTRUCTS` file format, and the phase name `wrap` read from `el_seam_load` in +`el_runtime.c` at `bc2f26d`. The one thing not recoverable from the record is the +"never invoked" target — the record names no symbol — so `never()` (returns 111 without +calling the body) is invented to match the stated semantics. Observed: + +``` +== baseline, no binding (work() returns 7) == 7 +== wrap binding -> thrice (expect 21) == 21 +== wrap binding -> never (expect 111) == 111 +``` + +`7 × 3 = 21` corroborates that the record's "body x3" was measured against this same +`work() -> 7` fixture. `111` is only as faithful as the invented target. + +## Divergence detail B — P2's line counts + +| | claimed | observed (`wc -l`, blob straight out of git) | +|---|---|---| +| parent `bc2f26d^` | 5042 | **5043** | +| commit `bc2f26d` | 4977 | **4976** | +| delta | −65 | **−67** | + +Both blobs end in a newline (`0009` checks the last byte), so `wc -l` is exact; there is no +trailing-newline ambiguity to absorb the difference. `git diff --numstat` for codegen.el is +`12 79` (+12 / −79 = −67), independently confirming the observed delta. + +**No commit in `5718943^..c04d68f` ever has codegen.el at 5042 or 4977 lines** (`0011`, +explicit search: `NONE`). The full sequence over the range is: + +``` +5718943f2 4800 60737b030 4850 4f7568b07 4953 2bed8483f 5084 +7d01608a9 5084 1b324a071 5152 35b07bade 5156 82e998273 5152 +886626a64 5156 28d19da7f 5095 8bbb750c2 5095 24f7fb514 5095 +285166c25 5043 b40754f07 5043 bc2f26ddf 4976 c04d68f9c 4976 +``` + +Cross-checking the parent agent's note: **cycle 03** claims "5094 -> 5044" — observed +`24f7fb5 = 5095` → `285166c = 5043`. **Cycle 06** claims "5157 -> 5096" — observed +`35b07ba = 5156`, `28d19da = 5095`. So every one of these three records is off by one on +every endpoint, but **not in a consistent direction**: cycle 06 is +1 on both ends, while +cycles 03 and 07 are −1 on the parent and +1 on the commit. A single systematic counting +convention (e.g. counting a missing final newline) would produce a uniform offset; this does +not. The line numbers in these records were not produced by a reproducible instrument. + +The qualitative claim — "codegen shrinks" — is unambiguously true, by 67 lines. + +## Divergence detail C — P3's ~8 % cost + +The record's absolute figures (`0.36s -> 0.39s`) are **NOT-REPRODUCIBLE**: the workload is not +named, and nothing in the tree at `bc2f26d` takes anything like 0.36 s on this machine +(`0037`, tail): `elc elc-cli.el` 0.067 s, `elc --test tests/native/test_compiler.el` 0.068 s, +`elc --test tests/native/test_lexer_scaling.el` 0.030 s. The compiled native test binary runs +in 5.9 ms. Whatever was timed, it is not identifiable from the record. + +The **ratio** is the load-bearing part, so I re-measured it. Construction (`time07b.sh`, both +scripts stored beside this file): + +- The cost under test is paid by code **emitted** by the new codegen, so both binaries must be + gen2 — self-emitted by their own commit's compiler. `/tmp/elc07pb` = elc self-emitted at + `bc2f26d^` (wrapper calls the body **directly**; 0 occurrences of `el_seam_wrap` in its C); + `/tmp/elc07b` = elc self-emitted at `bc2f26d` (254 occurrences of `el_seam_wrap`). +- Both are handed the **same** input, in the same CWD (`bc2f26d`'s `lang/`), so the only + difference is the calling convention compiled into the binary. +- Runs are interleaved, warmed, n = 21 per arm, two workloads. + +Observed (`0037`): + +| workload | parent median | commit median | ratio (median) | ratio (min) | ratio (mean) | +|---|---|---|---|---|---| +| `elc elc-cli.el` | 0.06482 s | 0.06576 s | **+1.45 %** | +2.31 % | +1.92 % | +| `elc --test tests/native/test_compiler.el` | 0.06758 s | 0.06821 s | **+0.93 %** | +0.62 % | +1.36 % | + +An earlier, independent n = 11 run (`0036`) on the first workload gave **+0.64 % median / ++0.16 % min**. The overhead is real and positive in every arm of every run, but it sits at +**roughly 1 %, not ~8 %** — outside the predicted 5–10 % band, i.e. the prediction as scored +would be FALSE on this machine, not TRUE. + +Caveats stated plainly, not to rescue the claim: this is an Apple M4 Pro under load avg ≈5–6; +`el_seam_wrap`'s fast path is `if (_el_seam_n == 0) return body(env);` and a wide +out-of-order core hides that better than most; and the workload the record actually used is +unknown, so I cannot rule out that some other program shows 8 %. No number here is rounded +toward the claimed value. + +## Divergence detail D — `params_to_call_args` is not fully removed + +Of the six things the record says were removed, five vanish from the entire tree between +`bc2f26d^` and `bc2f26d`: `declare_wrap`, `decorator_wrap`, `cg_wrap_target`, +`cg_wrap_construct`, and the `wraps_body` scanner branch (`0012`; the branch itself is shown at +`0045`, parent codegen.el:4385, together with the `declare_wrap(fname, pending_wrap)` call it +guarded). + +`params_to_call_args` does not. At the parent it has three occurrences — a doc comment (3297), +the definition (3299), and one call site (3415). At `bc2f26d` the definition and the call site +are gone but the comment remains: + +``` +bc2f26d:lang/el-compiler/src/codegen.el:3269:// params_to_call_args — "a, b, c" from the param list, for the wrapper's call +bc2f26d:lang/el-compiler/src/codegen.el:3270:// into the body helper. +``` + +`git grep "^fn params_to_call_args"` at `bc2f26d` → no definition. It is an orphaned two-line +comment sitting immediately above `fn cg_fn`, documenting a function that no longer exists, and +it survives unchanged into `c04d68f`. Harmless, but the record's "Removed:" list overstates by +one item, and the residue is exactly the kind of thing the commit message's own +"the guard that would have caught it existed and I removed it" paragraph is about. + +## Detail E — an undocumented fix: the harness pass tally + +`bc2f26d` also fixes a bug its own record never mentions. Independently flagged by the cycle 08 +agent and confirmed here (`0046`): + +``` +8bbb750c2 check-calls=6 echo " 6 assertions, $((6-FAILS)) passed, $FAILS failed" +24f7fb514 check-calls=6 echo " 6 assertions, $((6-FAILS)) passed, $FAILS failed" +285166c25 check-calls=7 echo " 7 assertions, $((6-FAILS)) passed, $FAILS failed" <- seventh check added, tally not bumped +b40754f07 check-calls=7 echo " 7 assertions, $((6-FAILS)) passed, $FAILS failed" +bc2f26ddf check-calls=7 echo " 7 assertions, $((7-FAILS)) passed, $FAILS failed" <- fixed here +c04d68f9c check-calls=7 echo " 7 assertions, $((7-FAILS)) passed, $FAILS failed" +``` + +`285166c` (cycle 03's experiment) added the seventh `check` and updated the header text to +"7 assertions" but left the arithmetic at `$((6-FAILS))`, so a fully green run printed +`7 assertions, 6 passed, 0 failed` — confirmed by running the harness at the parent (`0043`), +which prints exactly that with zero failures. `bc2f26d` changes it to `$((7-FAILS))` and the +run at this commit prints `7 assertions, 7 passed, 0 failed` (`0007`, `0042`). + +Worth recording for two reasons. First, a commit doing something its record does not mention is +a gap in the record regardless of whether the change is a fix. Second, it is the *only* +substantive thing `bc2f26d` does to the harness that has any effect — the `thrice` target it +also adds is dead code (detail A) — which sharpens the point that the record's headline P1 +result was never wired into the test suite. The harness self-report was under-counting a green +run for two cycles before anyone noticed, which is the same class of silent-instrument defect +the commit message's PROCESS FAILURE paragraph is about. + +--- + +## Measurement defects in this re-run, recorded rather than removed + +1. **`0006-selfhost-fixpoint.out` is defective and retained.** It ran the recipe's original + fixpoint command, which compares **gen1 vs gen2** — gen1 being the output of the committed + `dist/platform/elc`, which is stale at this commit and predates the seam entirely (0 + occurrences of `el_seam_wrap`). Since `bc2f26d` changes what codegen emits, gen1 ≠ gen2 is + *expected*, and the artifact's `differ: char 12626, line 259` is not a finding. The correct + check is gen2 == gen3, captured as `0038-selfhost-fixpoint-gen2-gen3.out` (and, under a + confusing name that used 1-based generation numbering, `0008-REDO-selfhost-fixpoint-gen3-gen4.out` + — same two files compared, `/tmp/g07b.c` vs `/tmp/g07c.c`). This was a recipe defect, not a + tree defect; it is left in the manifest because deleting a failed measurement is the failure + mode this record exists to control for. Do not cite `0006`. +2. **`0039-thunk-noargs-and-seam-caller-search.out` sections 4 and 5 are defective and + retained.** The script `cd`'d into `/lang` for section 3 and never returned, so + sections 4 and 5 ran with CWD = `lang/` and their pathspecs (`lang/tests/integration/`) + resolved to `lang/lang/…` and matched nothing. The "NONE" printed by section 4 was an + artifact of the CWD, not a result — this is precisely the cycle-01 defect repeating. + Sections 1–3 of `0039` ran from the repo root and are sound. The corrected re-run is + `0040-REDO-seam-caller-and-wrap-assertion-search.out`, which prints its own CWD as a guard. + Do not cite `0039` §4–5. +3. **Artifact index numbers are not contiguous** (0017 jumps to 0036). `capture.sh` derives the + next index from `grep -c . MANIFEST.tsv`, and several of my commands were multi-line shell + scripts passed to `bash -c`, so the command field written to the manifest contained embedded + newlines and inflated the line count. No data is affected — `verify-manifest.sh` reports + 0 altered, 0 missing — but the numbering gap is an instrument artifact, not a lost artifact. + Subsequent captures put multi-line scripts in files (`probe07.sh`, `thunk07b.sh`, …, stored + alongside this file) and pass a single-line command. +4. **The parent-commit context measurement (`0043`) is stamped with the wrong SHA.** The parent + tree was materialised with `git archive bc2f26d^ | tar -x -C /tmp/el07parent` rather than a + worktree (worktree creation is owned by the parent agent for this run), and `/tmp/el07parent` + is not a git repo, so `capture.sh` was invoked from `/tmp/rerun-v1-07` and stamped `bc2f26d`. + The **subject** of that measurement is `bc2f26d^`. The script defends against a bad extraction + by hashing `codegen.el` and `test_compiler.el` against the `bc2f26d^` blobs before measuring + (both MATCH, printed in the artifact). Read `0043`'s provenance as "taken during the bc2f26d + run", not "measured at bc2f26d". The same applies to the parent arm of the timing artifacts + `0036`/`0037`. + +## Inputs stored alongside the evidence + +`probe07.sh`, `time07.sh`, `time07b.sh`, `thunk07.sh`, `thunk07b.sh`, `parent07.sh` are the +scripts whose captured *output* is the evidence. They are inputs, not artifacts, and are not in +`MANIFEST.tsv`. `probe07.sh` in particular is a **reconstruction** — see divergence detail A. diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/parent07.sh b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/parent07.sh new file mode 100644 index 0000000..67a0df0 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/parent07.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +# parent07.sh — native compiler test count at the PARENT commit bc2f26d^ (b40754f), +# for context: the cycle doc records no native test count at all. +# +# PROVENANCE NOTE: the parent tree is an extraction, `git archive bc2f26d^ | tar -x`, +# into /tmp/el07parent — NOT a git worktree (the parent agent owns worktree creation +# for this run). capture.sh was therefore invoked from /tmp/rerun-v1-07, so the +# artifact's stamped SHA is bc2f26d; the SUBJECT of the measurement is bc2f26d^. +# The extraction is verified below by diffing it against the bc2f26d^ blob for +# codegen.el. +set -uo pipefail +cd /tmp/rerun-v1-07 || exit 1 +echo "== verify the extracted tree really is bc2f26d^ ==" +a=$(git show 'bc2f26d^:lang/el-compiler/src/codegen.el' | shasum -a 256 | cut -d' ' -f1) +b=$(shasum -a 256 /tmp/el07parent/lang/el-compiler/src/codegen.el | cut -d' ' -f1) +echo " git blob bc2f26d^:lang/el-compiler/src/codegen.el $a" +echo " /tmp/el07parent/lang/el-compiler/src/codegen.el $b" +[ "$a" = "$b" ] && echo " MATCH" || { echo " MISMATCH — abort"; exit 1; } +a=$(git show 'bc2f26d^:lang/tests/native/test_compiler.el' | shasum -a 256 | cut -d' ' -f1) +b=$(shasum -a 256 /tmp/el07parent/lang/tests/native/test_compiler.el | cut -d' ' -f1) +echo " test_compiler.el blob $a" +echo " test_compiler.el file $b" +[ "$a" = "$b" ] && echo " MATCH" || { echo " MISMATCH — abort"; exit 1; } + +echo +echo "== native compiler tests at bc2f26d^ (built gen2, same procedure as the commit) ==" +cd /tmp/el07parent/lang || exit 1 +SRCS=$(../scripts/el-runtime-sources.sh runtime) +CF="-std=c11 -O2 -I runtime"; LF="" +for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do + [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib" +done +LF="$LF -lcurl -lssl -lcrypto -lpthread -lm" +/tmp/elc07pb --test tests/native/test_compiler.el > /tmp/tp07.c || exit 1 +cc $CF -o /tmp/tp07 /tmp/tp07.c $SRCS $LF 2>/dev/null || exit 1 +/tmp/tp07 | tail -4 + +echo +echo "== integration seam_binding.sh at bc2f26d^ ==" +bash tests/integration/seam_binding.sh /tmp/elc07pb "$PWD" | tail -4 diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/probe07.sh b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/probe07.sh new file mode 100644 index 0000000..2c53795 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/probe07.sh @@ -0,0 +1,70 @@ +#!/usr/bin/env bash +# probe07.sh — RECONSTRUCTED probe for cycle 07 P1 ("body x3 -> 21, never invoked -> 111"). +# +# This file is an INPUT, not evidence. No probe asserting 21 or 111 exists in the +# tree at bc2f26d. It is modelled line-for-line on lang/tests/integration/seam_binding.sh +# as it stands at bc2f26d: +# - same prog.el (fn work() -> Int { return 7 }; main prints work()) +# - same targets.c wrap target `thrice` (verbatim, incl. its comment) +# - same EL_CONSTRUCTS binding-file format: " " +# - phase name "wrap" is read from el_runtime.c's el_seam_load at bc2f26d +# The only thing NOT recoverable from the tree is the "never invoked" target; the +# record names no such symbol. `never` below is invented to match the stated +# semantics (return 111 without calling the body). +# +# usage: probe07.sh +set -uo pipefail +ELC="${1:?usage: probe07.sh }" +LANG_DIR="${2:?usage: probe07.sh }" +WORK="$(mktemp -d)"; trap 'rm -rf "$WORK"' EXIT + +SRCS=$("$LANG_DIR/../scripts/el-runtime-sources.sh" "$LANG_DIR/runtime") +CFLAGS="-std=c11 -O2 -rdynamic -I $LANG_DIR/runtime" +for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do + [ -d "$d" ] && CFLAGS="$CFLAGS -I $d/include" && LDFLAGS="-L $d/lib" +done +LDFLAGS="${LDFLAGS:-} -lcurl -lssl -lcrypto -lpthread -lm" + +cat > "$WORK/targets.c" <<'EOF' +#include +#include +typedef int64_t el_val_t; +/* verbatim from seam_binding.sh at bc2f26d */ +el_val_t thrice(el_val_t fn, el_val_t con, el_val_t (*b)(void*), void* e){ + (void)fn; (void)con; return b(e) + b(e) + b(e); /* wrap: invoke N times */ +} +/* NOT in the tree — reconstructed to match "never invoked -> 111" */ +el_val_t never(el_val_t fn, el_val_t con, el_val_t (*b)(void*), void* e){ + (void)fn; (void)con; (void)b; (void)e; return 111; +} +EOF + +# verbatim from seam_binding.sh at bc2f26d +cat > "$WORK/prog.el" <<'EOF' +fn work() -> Int { + return 7 +} + +fn main() { + println(int_to_str(work())) +} +EOF + +"$ELC" "$WORK/prog.el" > "$WORK/prog.c" 2>/dev/null +cc $CFLAGS -o "$WORK/prog" "$WORK/prog.c" "$WORK/targets.c" $SRCS $LDFLAGS 2>/dev/null \ + || { echo "PROBE DID NOT BUILD"; exit 1; } + +echo "== baseline, no binding (work() returns 7) ==" +(cd "$WORK" && ./prog 2>&1) + +echo "== wrap binding -> thrice (body invoked 3x; expect 21) ==" +printf 'work tripler wrap thrice\n' > "$WORK/x3.txt" +(cd "$WORK" && EL_CONSTRUCTS=x3.txt ./prog 2>&1) + +echo "== wrap binding -> never (body never invoked; expect 111) ==" +printf 'work skipper wrap never\n' > "$WORK/never.txt" +(cd "$WORK" && EL_CONSTRUCTS=never.txt ./prog 2>&1) + +echo "== binding file contents used ==" +echo "--- x3.txt"; cat "$WORK/x3.txt" +echo "--- never.txt"; cat "$WORK/never.txt" diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/thunk07.sh b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/thunk07.sh new file mode 100644 index 0000000..51e9559 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/thunk07.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash +# thunk07.sh — does the recorded PROCESS FAILURE ("build failed with 'undeclared +# identifier __thunk_noargs'") correspond to any COMMITTED state? +cd /tmp/rerun-v1-07 || exit 1 +echo "== 1. does the literal string __thunk_noargs appear in any committed source, anywhere in the range? ==" +found=0 +for c in $(git rev-list 5718943^..c04d68f); do + if git grep -q -- "__thunk_noargs" "$c" 2>/dev/null; then + echo " HIT $(git rev-parse --short=9 "$c")"; found=1 + fi +done +[ "$found" = 0 ] && echo " NONE — the literal never appears in any committed file in 5718943^..c04d68f" + +echo +echo "== 2. __thunk_noargs is a NAME THE COMPILER GENERATES, not source text. Where does it come from? ==" +git grep -n '"__thunk_" ' bc2f26d -- lang/el-compiler/src/codegen.el +git grep -n '__thunk_' bc2f26d -- lang/el-compiler/src/codegen.el + +echo +echo "== 3. in the C emitted at bc2f26d for a zero-param fn, is __thunk_noargs DECLARED before use? ==" +W=$(mktemp -d) +printf 'fn noargs() -> Int {\n return 3\n}\nfn main() {\n println(int_to_str(noargs()))\n}\n' > "$W/n07.el" +/tmp/elc07b "$W/n07.el" > "$W/n07.c" +grep -n "__thunk_noargs" "$W/n07.c" +echo +echo "-- compile that C standalone, strict C11, no GNU extensions --" +cd /tmp/rerun-v1-07/lang || exit 1 +SRCS=$(../scripts/el-runtime-sources.sh runtime) +CF="-std=c11 -O2 -I runtime"; LF="" +for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do + [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib" +done +LF="$LF -lcurl -lssl -lcrypto -lpthread -lm" +cc $CF -o "$W/n07" "$W/n07.c" $SRCS $LF 2>&1 | grep -i "thunk\|error" || echo " (no error mentioning thunk)" +"$W/n07"; echo " program exit=$? (printed value above)" +echo +echo "-- and the same emitted C under -pedantic-errors, which rejects the GNU empty-struct extension --" +cc -pedantic-errors $CF -fsyntax-only "$W/n07.c" 2>&1 | head -20 || true +echo " syntax-only rc above (empty output = clean)" +rm -rf "$W" + +echo +echo "== 4. does tests/integration/seam_caller.sh exist at ANY commit in the range? ==" +found=0 +for c in $(git rev-list 5718943^..c04d68f); do + if git ls-tree -r --name-only "$c" -- lang/tests/integration/ 2>/dev/null | grep -q seam_caller; then + echo " HIT $(git rev-parse --short=9 "$c")"; found=1 + fi +done +[ "$found" = 0 ] && echo " NONE — seam_caller.sh does not exist at any commit in 5718943^..c04d68f" +echo +echo " integration harnesses present at bc2f26d:" +git ls-tree -r --name-only bc2f26d -- lang/tests/integration/ + +echo +echo "== 5. does any committed file anywhere in the range assert 21 or 111 for the wrap seam? ==" +git grep -n -- "thrice" bc2f26d || echo " (thrice appears nowhere at bc2f26d... )" +echo " --- grep for '21' / '111' as expected values in seam_binding.sh at bc2f26d ---" +git show bc2f26d:lang/tests/integration/seam_binding.sh | grep -n '"21"\|"111"\|21$\|111$' || echo " NONE — no assertion on 21 or 111" diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/thunk07b.sh b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/thunk07b.sh new file mode 100644 index 0000000..a3720b1 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/thunk07b.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +# thunk07b.sh — REDO of sections 4 and 5 of thunk07.sh. +# DEFECT BEING CORRECTED: thunk07.sh cd'd into /lang for section 3 and +# never cd'd back, so sections 4 and 5 ran with CWD=lang/ and their pathspecs +# ("lang/tests/integration/") resolved to lang/lang/... and matched nothing. The +# "NONE" in the original section 4 was an artifact of that, not a finding. +cd /tmp/rerun-v1-07 || exit 1 +echo "CWD: $(pwd) (must be the repo ROOT for these pathspecs)" +echo +echo "== 4. does tests/integration/seam_caller.sh exist at ANY commit in 5718943^..c04d68f? ==" +found=0 +for c in $(git rev-list 5718943^..c04d68f); do + if git ls-tree -r --name-only "$c" -- lang/tests/integration/ 2>/dev/null | grep -q seam_caller; then + echo " HIT $(git rev-parse --short=9 "$c")"; found=1 + fi +done +[ "$found" = 0 ] && echo " NONE" +echo +echo " -- and does it exist at any commit at all in this repo's history? --" +git log --all --oneline --name-only -- '*seam_caller*' | head -20 || true +echo " (empty above = never existed)" +echo +echo "== integration harnesses present at each commit in the range ==" +for c in $(git rev-list --reverse 5718943^..c04d68f); do + printf " %s %s\n" "$(git rev-parse --short=9 "$c")" "$(git ls-tree -r --name-only "$c" -- lang/tests/integration/ | tr '\n' ' ')" +done +echo +echo "== 5. where does 'thrice' appear at bc2f26d (repo-root scope)? ==" +git grep -n -- "thrice" bc2f26d || echo " (nowhere)" +echo +echo "== 5b. does seam_binding.sh at bc2f26d assert 21 or 111 anywhere? ==" +git show bc2f26d:lang/tests/integration/seam_binding.sh | grep -n "21\|111" || echo " NONE — the strings 21 and 111 do not occur in the harness" +echo +echo "== 5c. every check() expectation in seam_binding.sh at bc2f26d, in order ==" +git show bc2f26d:lang/tests/integration/seam_binding.sh | grep -n 'check "' -A1 +echo +echo "== 5d. is the appended 'thrice' target ever compiled? (targets.c is cc'd BEFORE the append) ==" +git show bc2f26d:lang/tests/integration/seam_binding.sh | grep -n 'cat > "\$WORK/targets.c"\|cat >> "\$WORK/targets.c"\|^cc \|cc \$CFLAGS\|EL_CONSTRUCTS=' +echo +echo "== 5e. does any binding file in the harness use phase 'wrap'? ==" +git show bc2f26d:lang/tests/integration/seam_binding.sh | grep -n "printf '.* wrap " || echo " NONE — no 'wrap' phase binding is ever written by the harness" +echo +echo "== 6. treewide: any file at bc2f26d or c04d68f that binds phase 'wrap'? ==" +git grep -n " wrap " bc2f26d -- '*.sh' '*.txt' || echo " none in .sh/.txt" diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/time07.sh b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/time07.sh new file mode 100644 index 0000000..ca86cd6 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/time07.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash +# time07.sh — re-measure cycle 07 P3 ("cost 5-10% from an indirect call on every fn"). +# +# The thing under test is the cost paid by code EMITTED by the new codegen, so +# both binaries must be gen3 (self-emitted by their own commit's compiler): +# /tmp/elc07pb = elc self-emitted at bc2f26d^ (b40754f) — wrapper calls the body DIRECTLY +# /tmp/elc07b = elc self-emitted at bc2f26d — wrapper calls through el_seam_wrap +# Both are given the SAME input (bc2f26d's lang/elc-cli.el, CWD = bc2f26d worktree), +# so the only difference is the emitted calling convention inside the binary. +# Runs are interleaved to spread any drift in machine load across both arms. +set -uo pipefail +N="${1:-11}" +cd /tmp/rerun-v1-07/lang || exit 1 + +run_one() { # $1 = binary ; prints elapsed seconds + local s e + s=$(python3 -c 'import time;print(time.perf_counter())') + "$1" elc-cli.el > /dev/null 2>&1 + e=$(python3 -c 'import time;print(time.perf_counter())') + python3 -c "print(f'{$e-$s:.4f}')" +} + +# warm the page cache for both +run_one /tmp/elc07pb > /dev/null; run_one /tmp/elc07b > /dev/null + +P=(); C=() +for i in $(seq 1 "$N"); do + P+=("$(run_one /tmp/elc07pb)") + C+=("$(run_one /tmp/elc07b)") +done + +echo "parent bc2f26d^ (direct call) samples: ${P[*]}" +echo "commit bc2f26d (el_seam_wrap) samples: ${C[*]}" +echo +python3 - "$N" "${P[@]}" "${C[@]}" <<'PY' +import sys, statistics +n=int(sys.argv[1]); v=[float(x) for x in sys.argv[2:]] +p,c=v[:n],v[n:] +def stats(x): return min(x), statistics.median(x), max(x) +pm,pmd,pmx=stats(p); cm,cmd,cmx=stats(c) +print(f"parent n={n} min={pm:.4f}s median={pmd:.4f}s max={pmx:.4f}s") +print(f"commit n={n} min={cm:.4f}s median={cmd:.4f}s max={cmx:.4f}s") +print() +print(f"ratio on min : {cm/pm:.4f} ({(cm/pm-1)*100:+.2f}%)") +print(f"ratio on median : {cmd/pmd:.4f} ({(cmd/pmd-1)*100:+.2f}%)") +PY +echo +echo "== machine ==" +uname -a +sysctl -n machdep.cpu.brand_string 2>/dev/null +uptime diff --git a/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/time07b.sh b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/time07b.sh new file mode 100644 index 0000000..8f2aa44 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/time07b.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +# time07b.sh — second, larger re-measurement of cycle 07 P3, two workloads. +# Same construction as time07.sh: gen2-self-emitted binaries at bc2f26d^ and bc2f26d, +# identical inputs, interleaved runs. +set -uo pipefail +N="${1:-21}" +cd /tmp/rerun-v1-07/lang || exit 1 + +now() { python3 -c 'import time;print(time.perf_counter())'; } + +bench() { # $1 = label ; $2.. = args passed to each binary + local label="$1"; shift + local P=() C=() i s e + "$@" >/dev/null 2>&1 <<<"" || true + /tmp/elc07pb "$@" >/dev/null 2>&1; /tmp/elc07b "$@" >/dev/null 2>&1 # warm + for i in $(seq 1 "$N"); do + s=$(now); /tmp/elc07pb "$@" >/dev/null 2>&1; e=$(now) + P+=("$(python3 -c "print(f'{$e-$s:.5f}')")") + s=$(now); /tmp/elc07b "$@" >/dev/null 2>&1; e=$(now) + C+=("$(python3 -c "print(f'{$e-$s:.5f}')")") + done + echo "### workload: $label (args: $*)" + echo "parent bc2f26d^ : ${P[*]}" + echo "commit bc2f26d : ${C[*]}" + python3 - "$N" "${P[@]}" "${C[@]}" <<'PY' +import sys, statistics +n=int(sys.argv[1]); v=[float(x) for x in sys.argv[2:]] +p,c=v[:n],v[n:] +print(f" parent n={n} min={min(p):.5f} median={statistics.median(p):.5f} mean={statistics.mean(p):.5f} stdev={statistics.stdev(p):.5f}") +print(f" commit n={n} min={min(c):.5f} median={statistics.median(c):.5f} mean={statistics.mean(c):.5f} stdev={statistics.stdev(c):.5f}") +print(f" RATIO min={min(c)/min(p):.4f} ({(min(c)/min(p)-1)*100:+.2f}%) median={statistics.median(c)/statistics.median(p):.4f} ({(statistics.median(c)/statistics.median(p)-1)*100:+.2f}%) mean={statistics.mean(c)/statistics.mean(p):.4f} ({(statistics.mean(c)/statistics.mean(p)-1)*100:+.2f}%)") +PY + echo +} + +bench "self-compile: elc elc-cli.el" elc-cli.el +bench "compile test_compiler.el in --test mode" --test tests/native/test_compiler.el + +echo "== machine =="; uname -a; sysctl -n machdep.cpu.brand_string 2>/dev/null; uptime +echo +echo "== NOTE: no workload in the tree at bc2f26d runs anywhere near the record's 0.36s/0.39s ==" +for w in "elc-cli.el" "--test tests/native/test_compiler.el" "--test tests/native/test_lexer_scaling.el"; do + s=$(now); /tmp/elc07b $w >/dev/null 2>&1; e=$(now) + python3 -c "print(f' {$e-$s:.4f}s elc $w')" +done diff --git a/docs/v1/experiments/evidence/cycles/08-the-emitter-adjudicates/CLAIMS.md b/docs/v1/experiments/evidence/cycles/08-the-emitter-adjudicates/CLAIMS.md new file mode 100644 index 0000000..22584b9 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/08-the-emitter-adjudicates/CLAIMS.md @@ -0,0 +1,228 @@ +# CLAIMS — cycle 08, the emitter adjudicates + +Source doc: `docs/v1/experiments/cycles/08-the-emitter-adjudicates.md` + +## Pinned commits + +| | | +|---|---| +| Cycle commit (the EXPERIMENT) | `c741cfe928b0c9707e9aee37717e357677cb318e` | +| Committed | 2026-08-17 09:11:48 -0500 | +| Subject | EXPERIMENT: prohibition becomes a query over emitted relations | +| Parent (the "before" state) | `c741cfe^` = `bc2f26d` (EXPERIMENT: invocation control resolves at runtime) | +| Land commit | `60c07ad784bdf2ae336ad0c5765af50d6d02a309` | +| Land committed | 2026-08-17 09:11:48 -0500 | +| Land subject | land prohibition-as-query: the emitter records, it no longer adjudicates | +| Re-run method | detached worktree `/tmp/rerun-v1-08` at `c741cfe`, tree clean | +| Artifact provenance | every artifact pinned to `c741cfe928b0`, tree `clean` (see `MANIFEST.tsv`) | +| Machine | Darwin 25.5.0, arm64 (Apple Silicon), clang, openssl@3 from /opt/homebrew | + +The land commit `60c07ad` is captured for identity only (`0002`); it makes no +numeric claims. `codegen.el` is byte-count-identical at `c741cfe` and `60c07ad` +(4962 lines, `0011`). + +## Verdicts + +| # | Claim (verbatim from the record) | Artifact | Commit | Verdict | +|---|---|---|---|---| +| 1 | "I said prohibition could not move because 'a #error has no runtime'" | `0103-prior-claim-error-has-no-runtime.out` | `c741cfe^` | **REPRODUCED** — the quoted prior claim is faithful: `06-the-crossing-resolves-at-emission.md:166` and `07-invocation-is-not-composable.md:38` both read "a #error has no runtime". The tree-level rationale is at `codegen.el:4251-4254` (parent). | +| 2 | "codegen now records what it saw: `sneaky calls raw_sql` / `allowed calls raw_sql` / `allowed calls @repository` / `repository calls prohibits:raw_sql`" | `0009-relations-emitted-verbatim.out`, `0010-relations-diff-vs-record.out` | `c741cfe` | **DIVERGED** — the real `EL_RELATIONS_OUT` file for the record's own probe program has **six** lines, not four, and in a different order. See divergence detail A. | +| 3 | "and tools/check/prohibitions.sh decides, at build time, outside the compiler" | `0014-P2-checker-exists.out`, `0013-P4-violating-program-exit-code.out` | `c741cfe` | **REPRODUCED** — the file exists at `lang/tools/check/prohibitions.sh` (there is **no** repo-root `tools/check/`; the record's path is relative to `lang/`). It is a 40-line bash script, reads only the relations file, and is invoked after `elc` has already exited 0. | +| 4 | P1 "codegen can emit the call graph it already walks" — **TRUE** | `0009-relations-emitted-verbatim.out`, `0032-prohibition-subsystem-linecounts.out` | `c741cfe` | **REPRODUCED** — `record_call()` (codegen.el:3471-3477) writes ` calls ` from inside the pre-existing `vbd_expr_has_restricted_call` walk, gated on `env("EL_RELATIONS_OUT")`. A relations file is produced. | +| 5 | P2 "the check becomes a query outside the compiler" — **TRUE** | `0014`, `0007-integration-prohibition_query.out` | `c741cfe` | **REPRODUCED** — the decision is made by `prohibitions.sh` reading the relations file; the compiler exits 0 on the violating program (`0013`: `elc rc=0`). | +| 6 | P3 "all prohibition decisions leave codegen" — **TRUE**, "zero #errors now" | `0012-codegen-error-emission-sites.out` | `c741cfe` vs `c741cfe^` | **DIVERGED** — prohibition/boundary `#error` sites go **1 → 0** (the claim's substance holds), but codegen.el still contains **10** `#error` emission sites. "zero #errors now" is false as written. See divergence detail B. | +| 7 | P4 "violations still caught at build time" — **TRUE**, "exit=1" | `0013-P4-violating-program-exit-code.out`, `0007` | `c741cfe` | **REPRODUCED** — `prohibitions.sh` on the violating probe prints `boundary violation: raw_sql may only be called from an @repository fn, but sneaky is not one` and exits **1**. The `prohibition_query.sh` harness asserts the same exit code and passes. | +| 8 | P5 "codegen drops below the 4661 baseline" — **FALSE**, "4962, +301" | `0011-codegen-linecount.out`, `0062-reconstruct-223-population.out` | `c741cfe` | **REPRODUCED** — codegen.el at `c741cfe` is exactly **4962** lines; `4962 − 4661 = 301`, exactly as stated; the prediction is correctly recorded as falsified. The 4661 baseline is real: codegen.el is 4661 at `45325f7`, the commit before cycle 01's parent. | +| 8b | (unstated in the record) the parent value | `0011-codegen-linecount.out` | `c741cfe^` | **REPRODUCED (supplied)** — parent `c741cfe^` = **4976**. Relative to its own parent this commit *shrank* codegen by **14** lines. The record's "+301" is measured against the 4661 baseline, not the parent, and the record does not say so. | +| 9 | "The TRAVERSAL is irreducible … those ~120 lines do not move no matter who decides" | `0032-prohibition-subsystem-linecounts.out` | `c741cfe` / `c741cfe^` | **REPRODUCED (exactly)** — `vbd_expr_has_restricted_call` (93 lines) + `vbd_has_restricted_call` (27 lines) = **120** lines, and both spans are 120 lines at the parent *and* at the commit. The "~120" is exact, and "do not move" is literally true of the span sizes. | +| 10 | "I predicted the whole 223 lines would go" | `0062-reconstruct-223-population.out` | `c741cfe^` | **NOT-CAPTURED** — the record never defines the 223-line population, and no combination of the prohibition-subsystem spans at the parent sums to 223. See divergence detail C. | +| 11 | "the capability-tier system (cap_check_call, is_self_formation_call, is_dharma_call, is_llm_call, cap_record_violation, emit_cap_violations) is 76 lines" | `0015-capability-tier-linecount.out` | `c741cfe` | **REPRODUCED (exactly)** — 21 + 7 + 11 + 9 + 9 + 19 = **76** lines, summing each `fn` line through its closing brace. | +| 12 | "…of the same shape — prohibits_WITHIN rather than prohibits_outside, so the checker needs the opposite polarity to absorb it" | `0015`, `0012` | `c741cfe` | **NOT-CAPTURED** — a forward-looking design assertion about a checker that does not exist at this commit; there is no measurable. Code inspection is consistent with it: `cap_check_call` keys on the whole-program `__program_kind` and *forbids* named calls within a tier, whereas `prohibitions.sh` *permits* named calls only within a decorated fn. | +| 13 | "98/98 native" | `0004-native-compiler-tests.out` | `c741cfe` | **REPRODUCED** — `98 tests, 98 passed, 0 failed, 239 assertions in 8.682ms`. Includes the new `compiler-no-longer-emits-prohibition-errors` test, `ok`. | +| 14 | "4/4 prohibition_query.sh" | `0007-integration-prohibition_query.out` | `c741cfe` | **REPRODUCED** — `4 assertions, 4 passed, 0 failed`. | +| 15 | "7/7 seam_binding.sh" | `0008-integration-seam_binding.out`, `0048`, `0061`, `0101` | `c741cfe` | **REPRODUCED** — `7 assertions, 7 passed, 0 failed`. The 6/6-vs-7/7 question against cycle 06 is settled: the harness genuinely gained a 7th assertion. See note D. | +| 16 | "fixpoint ok" | `0102-selfhost-fixpoint-gen2-gen3.out` | `c741cfe` | **REPRODUCED** — gen2 == gen3, identical sha256 `1db5d7d4…`. (gen1 != gen2 as expected; the committed `dist/platform/elc` predates the seam wrapper/thunk emission.) | + +Totals: **REPRODUCED 12** (incl. 8b) · **DIVERGED 2** · **NOT-REPRODUCIBLE 0** · **NOT-CAPTURED 2**. + +--- + +## Divergence detail A — the emitted relation shape (claim 2) + +The record presents this as what codegen records: + +``` +sneaky calls raw_sql +allowed calls raw_sql +allowed calls @repository +repository calls prohibits:raw_sql +``` + +The probe program is not invented here — it is verbatim the `p.el` heredoc inside +`lang/tests/integration/prohibition_query.sh` at this very commit. Running the +stage-2 `elc` on it with `EL_RELATIONS_OUT` set produces (`0009`, verbatim): + +``` +manager calls prohibits:dharma_emit,dharma_field +repository calls prohibits:raw_sql +repository calls @decorator +sneaky calls raw_sql +allowed calls @repository +allowed calls raw_sql +``` + +Six lines, not four. Diff as sets (`0010`, exit 1): + +- `+ manager calls prohibits:dharma_emit,dharma_field` — the built-in DHARMA + prohibition is emitted unconditionally for **every** program, whether or not the + program mentions `@manager`. The record's block shows only the program's own + declared prohibition. +- `+ repository calls @decorator` — `cg_fn` now records every decorator a fn carries, + and `@decorator(...)` is itself in the decorator list, so the declaring stub + `fn repository()` reports carrying a construct called `decorator`. + +Order also differs: the record lists the `calls` facts first and the `prohibits:` +fact last; the emitter writes prohibitions first (they come from a token-level +pre-pass) and then the per-fn walk, and within `allowed` it emits the decorator +before the call. The ordered diff is likewise non-empty. + +Neither extra line changes the outcome — `prohibitions.sh` sorts and ignores +relations whose construct has no `prohibits:` entry, and `@decorator` has none. +The claim is wrong as a description of the artifact, not as a description of the +mechanism. But the record quotes it as file content, and the file content is +different. + +## Divergence detail B — P3 "zero #errors now" (claim 6) + +Counted with `emit_line("#error …` (i.e. actual emission sites, not the 29 +occurrences of the literal string `#error` in code + comments, which is 29 at +*both* commits): + +| | `c741cfe^` | `c741cfe` | +|---|---|---| +| `emit_line("#error …` sites | **11** | **10** | +| of which boundary/prohibition | **1** (codegen.el:3298) | **0** | + +The single site removed is exactly the prohibition adjudication: + +``` +emit_line("#error \"boundary violation: " + prohibition_names(pc) + " may only be +called from an @" + pc + " fn, but '" + fn_name + "' is not one\"") +``` + +What remains at `c741cfe` (`0012`): capability violation (2578), temporal type +error (2602), arity error (3009), singleton missing `guards:` (3440), and three +cgi/service-block errors duplicated across two code paths (3639/3642/3646 and +4418/4421/4425). + +So the accurate statement is "**zero prohibition #errors** now", 1 → 0, a 9% +reduction in `#error` sites overall. Read literally, "zero #errors now" is false. +This matters because the record itself names the capability tier as "the same +shape" — and the capability tier's decision is *still* an `#error` at line 2578, +inside codegen. The prohibition decision left; the family of decisions it belongs +to did not. + +## Divergence detail C — the 223-line figure (claim 10) + +The record does not say what the 223 lines are. Every prohibition-related span in +codegen.el at the parent, measured `fn` line through closing brace (`0062`): + +``` +vbd_expr_has_restricted_call 93 <- traversal +vbd_has_restricted_call 27 <- traversal +vbd_is_restricted_name 12 (the rule) +declare_prohibition 9 +prohibition_names 3 +prohibiting_constructs 3 +scan_declared_decorators 66 +fn_has_decorator 12 +cg_fn adjudication block 19 (the decision, removed by this commit) +``` + +Candidate sums: traversal only 120; traversal+rule+decision 151; all six +prohibition fns 147; +cg_fn block 166; +`scan_declared_decorators` 213; ++scan+cg_fn 232; +scan+cg_fn+`fn_has_decorator` 244. **None is 223.** The two +nearest bracket it (213, 232), which suggests the figure is a good-faith +approximation of "the prohibition machinery" under a slightly different span +convention (e.g. including or excluding the leading comment blocks), but no +convention was recorded and I will not reverse-engineer one to hit the number. +Verdict: NOT-CAPTURED, population undefined. + +Worth noting for the record's own internal consistency: parent codegen.el is 4976 +lines, and 4976 − 223 = **4753**, which is still 92 lines *above* the 4661 baseline +that P5 predicted dropping below. So even if the entire 223 lines had gone, P5 +could not have come true by that arithmetic. The 223 estimate and the P5 prediction +were not consistent with each other before the experiment ran. + +## Note D — the 6/6 → 7/7 question on seam_binding.sh + +Cycle 06's record claims `6/6`; cycle 08 claims `7/7`. Both are correct — the +harness gained an assertion in between (`0048`, `0061`, `0101`): + +| revision | self-reported total | tally line | +|---|---|---| +| `8bbb750` "control the claim that cannot be unit tested" | 6 assertions | `$((6-FAILS)) passed` | +| `285166c` "EXPERIMENT: emit the wrapper unconditionally…" | 7 assertions | `$((6-FAILS)) passed` ← **off by one** | +| `bc2f26d` "EXPERIMENT: invocation control resolves at runtime" | 7 assertions | `$((7-FAILS)) passed` | +| `c741cfe` (this cycle) | 7 assertions | `$((7-FAILS)) passed` | + +`285166c` added the assertion `an EXIT construct declared after the build replaces +the result` (a `double_result` exit handler, expecting `14`), and bumped the header +count to 7 but left the passed-count arithmetic at `6-FAILS`. At `285166c` the +harness would therefore have printed `7 assertions, 6 passed, 0 failed` on a fully +green run. `bc2f26d` fixed it. **This is a defect in cycle 07's evidence, not +cycle 08's** — at `c741cfe` the tally is correct and the observed output is +`7 assertions, 7 passed, 0 failed`. Flagging it here for whoever re-runs cycle 07. + +## Measurement defects in this re-run, recorded rather than removed + +**`0005-selfhost-fixpoint.out` is defective and retained** (exit 1, +`/tmp/g08.c /tmp/g08b.c differ: char 12547, line 257`). It ran the original +RERUN-RECIPE §4 command, which compares **gen1 vs gen2** — the output of the +committed `dist/platform/elc` against the output of the compiler built from it. +That is not the fixpoint. The committed bootstrap binary at this commit predates +the seam wrapper/thunk emission added in cycles 06–07, so gen1 necessarily differs +(3518 diff lines, all of them missing `__el_body_*` / `__thunk_*` / `el_seam_run` +scaffolding). Reporting that as "fixpoint broken" would have been a fabricated +divergence. The recipe was corrected mid-run by the parent agent. + +`0006-REDO-selfhost-fixpoint-gen3-gen4.out` is the first correct re-capture but is +misnamed: its "gen3/gen4" are the recipe's gen2/gen3. `0102-selfhost-fixpoint-gen2-gen3.out` +is the authoritative artifact, captured with the corrected recipe command and +correct naming. All three are left in the manifest. + +Instrument check: an early exploratory `git show "$s:lang/…"` in the Bash tool was +silently mangled by zsh's `${s:l}` history modifier and returned `lines: 0` for both +commits (visible only as `fatal:` on stderr). Every line count reported above was +re-taken with `${s}` braces or run inside `capture.sh` (which is `#!/usr/bin/env bash`); +the mangled values were never used and no conclusion was drawn from them. + +## Artifact index + +| artifact | what it backs | +|---|---| +| `0001-commit-identity.out` | `c741cfe` SHA / date / subject | +| `0002-commit-identity-land.out` | `60c07ad` SHA / date / subject | +| `0003-stage2-build.out` | stage-2 build OK, 11291-line generated C | +| `0004-native-compiler-tests.out` | claim 13 (98/98) | +| `0005-selfhost-fixpoint.out` | **defective, retained** — gen1-vs-gen2 | +| `0006-REDO-selfhost-fixpoint-gen3-gen4.out` | superseded re-capture (misnamed) | +| `0007-integration-prohibition_query.out` | claims 5, 7, 14 | +| `0008-integration-seam_binding.out` | claim 15 | +| `0009-relations-emitted-verbatim.out` | claims 2, 4 | +| `0010-relations-diff-vs-record.out` | claim 2, divergence A | +| `0011-codegen-linecount.out` | claims 8, 8b | +| `0012-codegen-error-emission-sites.out` | claim 6, divergence B | +| `0013-P4-violating-program-exit-code.out` | claims 3, 5, 7 | +| `0014-P2-checker-exists.out` | claims 3, 5 | +| `0015-capability-tier-linecount.out` | claim 11 | +| `0032-prohibition-subsystem-linecounts.out` | claims 4, 9 | +| `0048-seam-binding-assertion-history.out` | note D | +| `0061-seam-binding-7th-assertion-diff.out` | note D | +| `0062-reconstruct-223-population.out` | claim 10, divergence C | +| `0101-seam-binding-tally-line-history.out` | note D | +| `0102-selfhost-fixpoint-gen2-gen3.out` | claim 16 | +| `0103-prior-claim-error-has-no-runtime.out` | claim 1 | + +Artifact numbers are not contiguous: `capture.sh` allocates a shared counter across +the parallel cycle re-runs. diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0047-REDO-arity-coverage-probe-both-sides.prov b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0047-REDO-arity-coverage-probe-both-sides.prov new file mode 100644 index 0000000..cf7fefa --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0047-REDO-arity-coverage-probe-both-sides.prov @@ -0,0 +1,7 @@ +commit 9cc6040df26eef5ad1718671792a2bcc87d43ec0 +tree clean +captured_utc 2026-08-17T17:39:51Z +exit 0 +ms 4759 +sha256_out 0bfdec5ef9e6bda13806c65b367edc2087647ef8ae296899605ad79f4e2b668f +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0047-REDO-arity-coverage-probe-both-sides.rc b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0047-REDO-arity-coverage-probe-both-sides.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0047-REDO-arity-coverage-probe-both-sides.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.cmd b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.cmd new file mode 100644 index 0000000..c2bce89 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.cmd @@ -0,0 +1 @@ +bash /tmp/analyze10c.sh diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.err b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.out b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.out new file mode 100644 index 0000000..9f469ed --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.out @@ -0,0 +1,88 @@ +== DEFECT 2 and 3: reconstructing the checker's parser evolution == + (the record: 'Multi-line declarations parsed as zero params'; then + 'Fixing (2) by joining lines dropped 500 signatures to 334, because a + declaration preceded by a comment no longer started its record.') + + v1 anchored ^el_val_t, line-based, no join : 500 + [record's '500 decls'] + v2 anchored + join, NO comment strip : 334 + [record's 'dropped ... to 334'] + v3 anchored + join + // strip + /*..*/ strip : 434 + v4 AS SHIPPED (unanchored regex) : 503 + [record's '503 signatures'; the integration test asserts this literal] + v1 declarations parsed as ZERO params : 91 + truly-zero-param declarations (correct parse) : 82 + +== DEFECT 3: is the comment strip really FIRST in the shipped script? == +21:sed 's://.*::' "$HDR" | tr '\n' ' ' | sed 's:/\*[^*]*\*/: :g; s/;/;\n/g' | awk ' + (line 21 of arity.sh: sed strips // comments BEFORE tr '\n' ' ' joins) + +== DEFECT 1: the __-prefix mapping rule == +42: [ -n "$expected" ] || expected=$(awk -v n="__$callee" '$1==n {print $2; exit}' "$SIG") + +== P4: the checker exists at 9cc6040 == +-rwxr-xr-x@ 1 will wheel 2533 Aug 17 12:29 lang/tools/check/arity.sh +9cc6040df26eef5ad1718671792a2bcc87d43ec0 introduced? + lang/el-compiler/src/codegen.el | 396 +--------------------------------- + lang/tests/integration/arity_query.sh | 26 +++ + lang/tools/check/arity.sh | 52 +++++ + 3 files changed, 84 insertions(+), 390 deletions(-) + +== the arity.sh header comment's own coverage number == + # + # codegen.el carried builtin_arity(): 344 lines, 300 entries, of which 243 were + # an exact duplicate of el_runtime.h. Measured drift between them was zero -- + # the duplicate had been maintained correctly -- but 199 functions the runtime + # declares had NO entry, so calling them with the wrong argument count produced + # no El-level diagnostic at all. The table was not wrong, it was 40% incomplete. + # + # Deriving from the header fixes the coverage and makes drift impossible. + +== P3: codegen at 9cc6040 emits call-arity relations == + 978: let arity: Int = native_list_len(args) + 1008: record_call(fn_name, "arity:" + native_int_to_str(native_list_len(args))) + builtin_arity still present in codegen at 9cc6040? -> 0 + arity_check_call / emit_arity_violations at 9cc6040 -> 1 + same at 9cc6040^ -> builtin_arity=1, checks=6 + +== P5: where was codegen.el 4661 lines? == + 9cc6040df 4512 2026-08-17 EXPERIMENT: derive arity from the runtime's own declarations + c2d9596e7 4896 2026-08-17 EXPERIMENT: the capability tier becomes shipped policy plus a query + c741cfe92 4962 2026-08-17 EXPERIMENT: prohibition becomes a query over emitted relations + bc2f26ddf 4976 2026-08-17 EXPERIMENT: invocation control resolves at runtime + 285166c25 5043 2026-08-17 EXPERIMENT: emit the wrapper unconditionally, so exit binds at runtime too + 28d19da7f 5095 2026-08-17 strip the compile-time machinery the seam replaces + 886626a64 5156 2026-08-17 seam refusal + control tests: a runtime binding can short-circuit + 35b07bade 5156 2026-08-17 EXPERIMENT: resolve the crossing at execution, not at emission + 1b324a071 5152 2026-08-17 let a construct declare what may not cross it + 2bed8483f 5084 2026-08-17 EXPERIMENT: hand the construct the body as a real closure + 4f7568b07 4953 2026-08-17 give a construct its after-crossing face, and let constructs compose + 60737b030 4850 2026-08-17 let a construct refuse, not only observe + 5718943f2 4800 2026-08-17 let a construct declare its own meaning instead of the emitter knowing it + dcaa77d77 4670 2026-08-17 make boundary crossings attributable to the construct that caused them + 45325f739 4661 2026-08-16 singleton: guard the state, not the program's name + 8ae163e8e 4646 2026-08-16 lang: give cross-cutting concerns an owner instead of a convention + cf060adbf 4563 2026-08-15 Merge remote-tracking branch 'origin/dev' into wt/soul-runtime-reconcile + b5a0a729e 4562 2026-08-15 codegen: Bool is int-like, so Bool comparisons stop lowering to str_eq + b55e6bfd5 4548 2026-08-15 codegen: either side Int is enough for == and !=, not both + 6a6b589ba 4534 2026-08-15 bench: real black_box barrier + three-signal growth-curve gate + 3e7ab07e8 4533 2026-08-15 test framework phase 1: forward decls, void-return fix, suite migration + a668062e3 4510 2026-08-15 Merge remote-tracking branch 'origin/dev' into wt/soul-runtime-reconcile + 24fac765a 4504 2026-08-15 test framework phase 1: compile-time registry + El-side runner + 37bcf7eb7 4440 2026-08-15 runtime: allocation accounting — the deterministic signal for complexity gating + e917b3d43 4434 2026-08-15 store: make the buffer pool sense its own state and correct from it + 4e24d7d3f 4432 2026-08-15 runtime: engram_edges_json — read edges without a whole-graph file round trip + 09dade061 4430 2026-08-15 Merge remote-tracking branch 'origin/pr/103' into HEAD + ee39aa5f1 4424 2026-08-15 Merge pull request 'ingest: unify transduce_prose/transduce_structured into one transduce()' (#117) from feat/transduce-unify into dev + e29fe4fd0 4124 2026-08-15 ingest: unify transduce_prose/transduce_structured into one transduce() + bacaf3d39 4422 2026-08-15 engram: reconcile M8 HNSW vindex (#109) onto current dev, restore 3 fixes the branch predated + 69870ac88 4122 2026-08-15 Merge pull request 'fix(codegen): emit the declared cgi identity — it was searched for in a list that cannot contain it' (#89) from fix/cgi-identity-emission-clean into dev + 09ae14a97 4106 2026-08-15 Merge pull request 'fix: float arithmetic codegen (segfault/garbage) and math_log aliasing' (#104) from worktree-agent-a456e0cf8cd2ee361 into dev + 2f832c8de 4049 2026-08-15 Fix float arithmetic codegen and math_log aliasing + 101018597 3915 2026-08-15 Add op_assert grounded-envelope primitive and purview-bounded mutation wrappers + 01826421c 4208 2026-08-14 seam: implement decorated-fn boundary auto-emit; prove on clone + d4f401de1 4199 2026-08-14 reshape: decorator-as-seam — port @route codegen, prove decorate->serve, rewrite surface as decorated El + 7aa847e32 3966 2026-08-12 Merge origin/dev into engram-tiered-storage + bb64a236e 3965 2026-08-12 engram tiered storage: engram-service wiring + elc fold-hang fix + prune-store mirror + 866c75e5e 3925 2026-08-09 fix(codegen): emit the declared cgi identity — it was searched for in a list that cannot contain it + 6b9d9e6c4 3909 2026-07-15 Add engram_get_node_by_label runtime native to unblock soul link diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.prov b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.prov new file mode 100644 index 0000000..0aa9ae6 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.prov @@ -0,0 +1,7 @@ +commit 9cc6040df26eef5ad1718671792a2bcc87d43ec0 +tree clean +captured_utc 2026-08-17T17:41:12Z +exit 0 +ms 415 +sha256_out d7f37b35c720fbf4afda5392de02457080a05d365e006662a795f32f476658ac +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.rc b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.cmd b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.cmd new file mode 100644 index 0000000..6a900a4 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.cmd @@ -0,0 +1 @@ +bash /tmp/analyze10d.sh diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.err b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.out b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.out new file mode 100644 index 0000000..992f8c7 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.out @@ -0,0 +1,302 @@ +== coverage gap: what population could yield 110 or 199? == + header declarations, correct parse : 500 + header declarations, arity.sh as shipped : 503 + builtin_arity() entries : 300 + shared, direct name match : 243 + shared, arity.sh __-prefix rule : 247 + OBSERVED header names with no table entry + strict (direct name only) : 257 + with the __-prefix rule applied : 256 + candidate arithmetic: + 500 - 300 = 200 503 - 300 = 203 + 500 - 243 = 257 500 - 247 = 253 + 40% of 500 = 200 (arity.sh says '40% incomplete', 199) + NO construction over these populations yields 110. + +== uncovered names, full list (correct parse, __-rule applied) == +__http_conn_fd +__http_do_map_to_file +__http_sse_close +__http_sse_open +__http_sse_send +aead_decrypt +aead_encrypt +args +cal_cycle_phase +cal_format +cal_in +cal_to_instant +camera_available +camera_capture_jpeg +camera_capture_rgb +camera_request_access +cgi_engram +cgi_network +cgi_principal +config +cycle_calendar +duration_millis +duration_nanos +duration_seconds +duration_to_millis +duration_to_nanos +duration_to_seconds +earth_calendar +earth_calendar_default +el_base64_encode_n +el_config_declare +el_config_validate +el_duration_add +el_duration_div +el_duration_eq +el_duration_from_nanos +el_duration_ge +el_duration_gt +el_duration_le +el_duration_lt +el_duration_ne +el_duration_scale +el_duration_sub +el_instant_add_dur +el_instant_diff +el_instant_eq +el_instant_ge +el_instant_gt +el_instant_le +el_instant_lt +el_instant_ne +el_instant_sub_dur +el_list_new +el_local_date_add_dur +el_local_date_eq +el_local_date_lt +el_local_time_add_dur +el_map_new +el_mem_check +el_now_instant +el_seam_run +el_seam_wrap +el_sha256_bytes_n +el_singleton_acquire +el_sleep_duration +emit_event +emit_log +emit_metric +engram_act_stats_json +engram_add_layer +engram_age_field +engram_age_field_catchup +engram_assert_json +engram_attend_json +engram_autoconnect_node +engram_boundary_beat +engram_chrono_persist_tick +engram_chrono_tick +engram_compile_layered_json +engram_consolidate_permanence +engram_correspondence_beat_json +engram_cosine_sim +engram_crc32 +engram_dreams_json +engram_embed_backfill +engram_geo_analogy_json +engram_geo_combine_json +engram_geo_descriptor_json +engram_geo_distance_json +engram_geo_overlap_json +engram_geo_reify_get_json +engram_geo_reify_list_json +engram_geo_reify_run_json +engram_geo_subtract_json +engram_ground_json +engram_ground_record_json +engram_ground_trajectory_json +engram_hebb_drain_json +engram_is_protected +engram_ise_log_append +engram_label_df +engram_list_layers +engram_list_layers_json +engram_load_merge +engram_nearest_json +engram_neighborhood_rename_json +engram_node_layered +engram_node_set_emb +engram_protected_json +engram_prune_telemetry +engram_reason_analogy_json +engram_recall_json +engram_remove_layer +engram_resolve_data_dir +engram_retrieve_geometric_json +engram_salient_term +engram_scan_nodes_by_type_json +engram_scan_nodes_emb_json +engram_self_anchor_capture +engram_self_drift_json +engram_self_reify_beat_json +engram_text_health_json +engram_think_json +engram_wal_boot +engram_wal_compact +engram_wal_edges_since +engram_wal_forget +engram_wal_hebb_batch +engram_wal_maybe_compact +engram_wal_node_put +engram_wal_open_dir +engram_wm_avg_weight +engram_wm_count +engram_wm_top_json +fs_exists +fs_mkdir +fs_write_bytes +geometry_dim +geometry_free +geometry_from_f32le_hex +geometry_get +geometry_is +geometry_new +geometry_norm +geometry_set +geometry_to_f32le_hex +http_delete +http_delete_json +http_get_to_file +http_post_to_file +http_response +in_calendar +instant_from_iso8601 +instant_to_iso8601 +instant_to_unix_millis +instant_to_unix_seconds +json_array_get +json_array_get_string +json_array_push +json_build_array +json_build_object +json_escape_string +llm_last_usage +local_date +local_date_day +local_date_month +local_date_year +local_datetime +local_time +local_time_hour +local_time_minute +local_time_nanos +local_time_second +manifold_add +manifold_free +manifold_geometry +manifold_index_of +manifold_is +manifold_key +manifold_new +manifold_rel_count +manifold_rel_from +manifold_rel_name +manifold_rel_to +manifold_rel_weight +manifold_relate +manifold_role +manifold_single +manifold_size +mars_calendar +mic_available +mic_capture_pcm16 +mic_monitor_rms +mic_monitor_start +mic_monitor_stop +mic_request_access +no_cycle_calendar +node_attach_geometry +node_geometry_dim +now +now_in +now_millis +now_ns +parse_int +pq_hybrid_handshake +pq_hybrid_keygen +pq_kem_decaps +pq_kem_encaps +pq_kem_keygen +pq_keygen_signature +pq_sign +pq_verify +realizer_has +realizer_register +relative_calendar +rhythm_and +rhythm_cycle_phase +rhythm_cycle_start +rhythm_duration +rhythm_event +rhythm_matches +rhythm_next_after +rhythm_or +rhythm_session_start +rhythm_weekday +rhythm_weekly_at +sha3_256_hex +speaker_available +speaker_name +speaker_pause +speaker_play_pcm16 +speaker_play_pcm16_async +speaker_play_wav +speaker_play_wav_async +speaker_played_frames +speaker_playing +speaker_resume +speaker_stop +trace_span_end +trace_span_start +transduce +ttl_cache_age +ttl_cache_get +ttl_cache_set +unix_millis +unix_seconds +unix_timestamp +url_decode +url_encode +wav_frames +wav_rate +zone +zone_local +zone_offset +zone_utc +zoned + +== orphaned comments left in codegen.el at 9cc6040 == + (the functions they document were deleted; the prose was not) + // -- Builtin arity table ------------------------------------------------------- + // + // El programs sometimes call runtime builtins with the wrong number of + // arguments (e.g. `http_serve(port)` instead of `http_serve(port, handler)`). + // Without this check the generated C compiles to a call with too few / + // too many args and fails downstream cc with a generic "too few arguments" + // message that doesn't point to the El source line. + // + // Strategy: a small static table mirrors el_runtime.h. Variadic builtins + // (el_list_new, el_map_new, args) and unknown identifiers (user fns, + // dynamic dispatch) return -1 -> no check. A mismatch records a violation + // in process state, which emit_arity_violations() turns into #error + // directives at the top of the generated C. + + + // Validate the call's arity against the builtin table. Returns true (always) + // because cg_expr ignores the result; -1 from builtin_arity signals + // "no check possible" (variadic or user-defined). A mismatch is recorded + // and surfaced as an #error at the bottom of the generated C, so cc fails + // before it ever attempts to type-check the wrong call. + + // Emit recorded arity violations as #error directives. + + references to now-deleted symbols remaining in codegen.el at 9cc6040: + 1013: // through (builtin_arity returns -1). + 2550:// in process state, which emit_arity_violations() turns into #error + 2555:// because cg_expr ignores the result; -1 from builtin_arity signals diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.prov b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.prov new file mode 100644 index 0000000..45d45ae --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.prov @@ -0,0 +1,7 @@ +commit 9cc6040df26eef5ad1718671792a2bcc87d43ec0 +tree clean +captured_utc 2026-08-17T17:42:08Z +exit 0 +ms 43 +sha256_out 2192699a3f00c802f8c117ede357baaad5247f710eb4dcad33b6af7fe0a8ff6f +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.rc b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.cmd b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.cmd new file mode 100644 index 0000000..8436453 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.cmd @@ -0,0 +1 @@ +bash /tmp/analyze10e.sh diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.err b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.err new file mode 100644 index 0000000..6d69bf8 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.err @@ -0,0 +1 @@ +# total declarations: 500 diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.out b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.out new file mode 100644 index 0000000..6f2a0af --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.out @@ -0,0 +1,66 @@ +correct parser declarations : 500 +arity.sh signature lines (its '503'): 503 +arity.sh distinct names : 501 + +== names arity.sh invents (present in its parse, absent from the header) == + el_from_float + handler + holding + pointer + slot + string + strings + count: 7 + +== real declarations arity.sh misses == + earth_calendar + el_sha256_bytes_n + fs_write_bytes + http_post_to_file + local_date + sha256_hex + count: 6 + +== declarations arity.sh gives the WRONG parameter count == + __mutex_new shipped=1 correct=0 + aead_encrypt shipped=-1 correct=2 + append shipped=4 correct=2 + args shipped=1 correct=0 + camera_available shipped=3 correct=0 + config shipped=2 correct=1 + el_arena_push shipped=1 correct=0 + el_html_sanitize shipped=-1 correct=2 + el_singleton_acquire shipped=3 correct=2 + engram_compile_layered_json shipped=3 correct=2 + engram_neighborhood_rename_json shipped=8 correct=2 + fs_size shipped=2 correct=1 + geometry_from_f32le_hex shipped=4 correct=1 + geometry_new shipped=3 correct=1 + http_response shipped=-1 correct=3 + llm_last_usage shipped=6 correct=0 + manifold_new shipped=10 correct=0 + mic_available shipped=1 correct=0 + mic_monitor_start shipped=2 correct=0 + pq_keygen_signature shipped=1 correct=0 + realizer_register shipped=-1 correct=2 + speaker_available shipped=2 correct=0 + speaker_play_pcm16_async shipped=3 correct=2 + stdout_to_file shipped=2 correct=1 + zone shipped=7 correct=1 + count: 25 + +== of those, ones arity.sh treats as VARIADIC and therefore skips entirely == + aead_encrypt shipped=variadic correct=2 + el_html_sanitize shipped=variadic correct=2 + http_response shipped=variadic correct=3 + realizer_register shipped=variadic correct=2 + count: 4 + +== gen1 / gen2 / gen3 sizes (context for the fixpoint artifacts) == + 10166 /tmp/g10.c + 13058 /tmp/g10b.c + 13058 /tmp/g10c.c + 36282 total +d3e4bcc4280157a3ed0f2a9869cf168084abb2634c3cf84f386c2df9d7c4f623 /tmp/g10.c +5c6bb297a95cbd08c204bc71bdefddd425caa93ea8ffc1dc8a2e54ca8ad63a71 /tmp/g10b.c +5c6bb297a95cbd08c204bc71bdefddd425caa93ea8ffc1dc8a2e54ca8ad63a71 /tmp/g10c.c diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.prov b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.prov new file mode 100644 index 0000000..e609dd1 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.prov @@ -0,0 +1,7 @@ +commit 9cc6040df26eef5ad1718671792a2bcc87d43ec0 +tree clean +captured_utc 2026-08-17T17:44:55Z +exit 0 +ms 82 +sha256_out 85f2f9e6bee363ef9bbef468aea760a6c8552728335cb2a07b8adef12703787b +sha256_err 06c544b8f040df71ae9fbc19ab29832e8f91626fe756db882488f3a2db78f4e9 diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.rc b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/CLAIMS.md b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/CLAIMS.md new file mode 100644 index 0000000..ad2f736 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/CLAIMS.md @@ -0,0 +1,245 @@ +# CLAIMS — cycle 10, a second copy of the header + +Source doc: `docs/v1/experiments/cycles/10-a-second-copy-of-the-header.md` + +## Pinned commits + +| | | +|---|---| +| Cycle commit (the EXPERIMENT) | `9cc6040df26eef5ad1718671792a2bcc87d43ec0` | +| Committed | 2026-08-17 09:21:10 -0500 | +| Subject | EXPERIMENT: derive arity from the runtime's own declarations | +| Parent (the "before" state the record describes) | `29f78f9f67b87078e20a506e9df04dd43d489013` (`9cc6040^`, "land capability-as-policy: eighteen literals become a data file") | +| Land commit | `d9e301be6d8961ba275eadb6f6df5292a7ebe903`, 2026-08-17 09:21:10 -0500* — subject `land arity-from-header: the runtime declares its own surface`, identity captured only (the record makes no numeric claim about it) | +| Re-run method | detached worktree `/tmp/rerun-v1-10` at `9cc6040`, tree clean for every capture | +| Parent tree | materialised with `git archive 9cc6040^ \| tar -x -C /tmp/parent10x` from inside the worktree, so provenance stamps `9cc6040` while the *measured* tree is `9cc6040^`; the command line in each `.cmd` says which | +| Artifact provenance | 18 artifacts, all `commit 9cc6040df26e`, `tree clean` (see `MANIFEST.tsv`) | +| Diffstat | codegen.el −390/+6, `lang/tests/integration/arity_query.sh` +26 (new), `lang/tools/check/arity.sh` +52 (new) — `0004` | + +\* full SHA as recorded in `0002-commit-identity-d9e301b.out`. + +Commits between cycle 09's pinned commit and this one (`0003`): exactly one, +`29f78f9 land capability-as-policy: eighteen literals become a data file`. It does +not touch `codegen.el`, so `c2d9596` and `9cc6040^` have identical codegen line counts. + +## The single most important thing in this record + +**Every headline number in this cycle reproduces exactly — but only when the runtime +header is parsed correctly.** The checker the cycle ships, `lang/tools/check/arity.sh`, +has a *fourth* parser defect that the record does not confess, and that defect is what +produces the two figures in the record that do not reproduce ("503 signatures", and, +indirectly, the coverage-gap count). Run the same questions through a correct C +declaration parser and `243 shared names`, `ZERO drift`, `60 of 500`, and `500 → 334` +all land on the nose. + +So: the *science* in this cycle reproduces. The *instrument* it shipped does not +measure what it says it measures. + +## Verdicts + +| # | Claim (verbatim from the record) | Artifact | Commit | Verdict | +|---|---|---|---|---| +| 1 | "codegen.el carried builtin_arity(): 344 lines" | `0011` | `9cc6040^` | **REPRODUCED** — `fn builtin_arity` spans lines 2547–2890 = exactly **344** lines | +| 2 | "300 entries" | `0011` | `9cc6040^` | **REPRODUCED** — **300** distinct names (from 305 `str_eq(name, …)` lines; 5 names are listed twice: `__thread_create`, `__thread_join`, `__mutex_new`, `__mutex_lock`, `__mutex_unlock`) | +| 3 | "a hand-maintained second copy of el_runtime.h" | `0011`, `0012` | `9cc6040^` | **REPRODUCED** — 243 of the 300 entries name a function the header also declares; the header is where those arities come from | +| 4 | P1 "the table duplicates the header — TRUE, 243 shared names" | `0012` | `9cc6040^` | **REPRODUCED** — direct-name intersection of the 300 table names with the 500 header names = exactly **243** (247 if the checker's `__`-prefix fallback is applied) | +| 5 | P2 "they have already drifted — FALSE. ZERO drift. The duplicate had been maintained correctly." | `0012` | `9cc6040^` | **REPRODUCED** — **0** mismatches over all 247 shared names, comparing table arity against the header's parameter count. Not one entry had drifted. | +| 6 | P3 "codegen can emit call-arity relations — TRUE" | `0048`, `0047` | `9cc6040` | **REPRODUCED** — `codegen.el:1008` emits `record_call(fn_name, "arity:" + native_int_to_str(native_list_len(args)))`; the relations file for the probe contains `__http_do_map_to_file calls arity:1` | +| 7 | P4 "the check becomes a query against the header — TRUE" | `0048`, `0004` | `9cc6040` | **REPRODUCED** — `lang/tools/check/arity.sh` is added by this commit (52 lines) and parses `runtime/el_runtime.h` at run time; `builtin_arity` no longer appears in codegen.el | +| 8 | P5 "codegen drops to roughly baseline — 4903 → 4512" | `0010` | both | **DIVERGED (parent half)** — the commit half is exact (**4512**), the parent is **4896**, not 4903. See below. | +| 9 | P5 "149 BELOW the 4661 it started at" | `0010`, `0048` | — | **REPRODUCED** — codegen.el is **4661** lines at `45325f7` ("singleton: guard the state, not the program's name", 2026‑08‑16), the last commit before the v1 experiment series; 4661 − 4512 = **149** | +| 10 | "110 functions the runtime declares had no entry" | `0012`, `0049` | `9cc6040^` | **DIVERGED** — observed **257** header names with no table entry (**256** after applying the `__`-prefix rule). No construction over these populations yields 110. See below. | +| 11 | "the old compiler reports 0 arity errors for `__http_do_map_to_file(1)`" | `0047` | `9cc6040^` | **REPRODUCED** — the compiler built at `9cc6040^` emits **0** `arity error` lines for that call. Control in the same artifact: `println("a","b")` *does* produce `#error "arity error: 'println' takes 1 arguments, but called with 2"`, so the compiler is working and the name is simply uncovered. | +| 12 | "the query reports \"takes 5 arguments, called with 1\"" | `0047` | `9cc6040` | **REPRODUCED verbatim** — `arity error: '__http_do_map_to_file' takes 5 arguments, called with 1`, exit 1 | +| 13 | "503 signatures" | `0011`, `0012`, `0050` | `9cc6040` | **DIVERGED** — the shipped checker *does* print `503`, and `arity_query.sh` asserts that literal, but the header declares **500** `el_val_t` functions. The 503 is a parser artifact. See below. | +| 14 | "versus 300 entries maintained by hand" | `0011` | `9cc6040^` | **REPRODUCED** — 300 | +| 15 | Defect 1: "60 of 500 decls carry the prefix" | `0012` | `9cc6040` | **REPRODUCED exactly** — **60** of the **500** correctly-parsed declarations begin `__`. (Note this sentence's "500" contradicts the same commit message's "503" four lines earlier; 500 is the true figure.) | +| 16 | Defect 1: "One rule covers all 60" | `0048` | `9cc6040` | **REPRODUCED** — `arity.sh:42` is a single `__$callee` fallback lookup; all 60 resolve through it | +| 17 | Defect 2: "Multi-line declarations parsed as zero params, so the checker reported 'takes 0' for a function taking 5" | `0048` | `9cc6040` | **REPRODUCED** — a line-based (pre-fix) parse yields **91** zero-parameter declarations where only **82** are genuinely zero-parameter; `__http_do_map_to_file` is one of the multi-line cases and the fixed checker reports its true arity, 5 (`0047`) | +| 18 | Defect 3: "Fixing (2) by joining lines dropped 500 signatures to 334" | `0048` | `9cc6040` | **REPRODUCED exactly** — reconstructing the two intermediate parsers gives **500** (anchored, line-based, no join) → **334** (anchored, joined, comments not stripped). Both numbers land on the nose. | +| 19 | Defect 3: "Comments are stripped first now." | `0048` | `9cc6040` | **REPRODUCED but INCOMPLETE** — `arity.sh:21` does strip `//` comments before joining. Block comments are *not* stripped first and are not stripped correctly at all. This is the unconfessed fourth defect. See below. | +| 20 | "98/98 native" | `0006` | `9cc6040` | **REPRODUCED** — `98 tests, 98 passed, 0 failed, 239 assertions in 5.620ms` | +| 21 | "5/5 arity_query.sh" | `0008` | `9cc6040` | **REPRODUCED** — `5 assertions, 5 passed, 0 failed`, exit 0 | +| 22 | "fixpoint ok" | `0013` | `9cc6040` | **REPRODUCED** — gen2 == gen3, identical sha256 `5c6bb297a95c…`. gen1 (the committed `dist/platform/elc`) differs from gen2, which is expected and is not the fixpoint. | +| 23 | `d9e301b` "land arity-from-header: the runtime declares its own surface" | `0002`, `0010` | `d9e301b` | **REPRODUCED (identity)** — subject matches; codegen.el is 4512 lines, unchanged from `9cc6040` | + +Totals: **23 assertions — 19 REPRODUCED, 4 DIVERGED, 0 NOT-REPRODUCIBLE, 0 NOT-CAPTURED.** +(Claim 19 is counted as REPRODUCED because the sentence as written is true; the finding +it understates is recorded separately below.) + +--- + +## Divergence detail + +### D1 — claim 13 and 19: the checker mis-parses 25 of the header's declarations + +This is the substantive finding of the re-run. + +`arity.sh` strips block comments with + +``` +sed 's://.*::' "$HDR" | tr '\n' ' ' | sed 's:/\*[^*]*\*/: :g; s/;/;\n/g' +``` + +`[^*]*` cannot cross an interior `*`, so a **multi-line** block comment — every one of +which uses ` * ` continuation markers in this header — survives the strip. Its prose +then sits inside the declaration record, and because the awk regex is *unanchored* and +`match(line, /\(.*\)/)` is greedy, the parameter list is taken from the first `(` in the +leftover comment to the last `)` in the record. Concretely (`0011`, `0050`): + +| declaration | header source | correct arity | arity.sh reports | +|---|---|---|---| +| `append` | `el_val_t append(el_val_t list, el_val_t elem);` preceded by a comment containing `` `obj.method(args)` `` and `` `method(obj, args)` `` | 2 | **4** | +| `fs_size` | `el_val_t fs_size(el_val_t path);` preceded by a comment containing `stat()` and `str_len(fs_read(path))` | 1 | **2** | +| `stdout_to_file` | preceded by a comment containing `(compiler.el, codegen.el)` | 1 | **2** | +| `__mutex_new` | preceded by a comment containing `(which the C11 ABI mis-truncates el_val_t)` | 0 | **1** | +| `el_arena_push` | preceded by a comment containing `el_arena_pop(mark)` | 0 | **1** | + +In total, comparing the shipped parser against a correct one name by name (`0050` — +`/tmp/parse10.py`, a real comment/string state machine with top-level-comma counting): + +- **25 declarations get the wrong parameter count**, including four that are reported as + variadic (`aead_encrypt`, `el_html_sanitize`, `http_response`, `realizer_register`) and + are therefore *skipped entirely* by the checker; +- **7 names are invented out of comment prose** — `handler`, `string`, `strings`, + `holding`, `pointer`, `slot`, `el_from_float`; +- **6 real declarations are missed** — `earth_calendar`, `el_sha256_bytes_n`, + `fs_write_bytes`, `http_post_to_file`, `local_date`, `sha256_hex`; +- two junk names appear with two different arities each, which is where the count + **503** comes from: 501 distinct names, 2 of them double-counted. + +**The header declares 500 `el_val_t` functions.** Two independent methods agree on 500: +the correct parser, and the anchored line-based parse — and the record's own defect‑1 +sentence says "500 decls". So the commit message contains both the right number (500) and +the instrument's wrong number (503), four lines apart, and `tests/integration/arity_query.sh` +freezes the wrong one into an assertion (`chk "signatures parsed from the header" "503 signatures"`). + +The fix in defect 3 also silently dropped the `^` anchor from the awk regex. That anchor +is what had been keeping comment prose out; without it the checker matches `el_val_t (` +anywhere inside a record. Stripping comments first was the right idea, but the strip is +incomplete and the anchor removal papered over it. + +### D2 — claim 5, restated: the shipped checker manufactures five false drifts + +Run P2 through `arity.sh`'s own parser and it reports **5 mismatches** — `__mutex_new`, +`append`, `el_arena_push`, `fs_size`, `stdout_to_file` (`0011`). Every one of the five is +the parser being wrong, not the table. The hand table's arity is correct in all five cases. + +This means the record's P2 result — **zero drift** — is *right*, and would have been +reported as "five drifts" by the tool the cycle shipped, had P2 been evaluated with it. +It evidently was not. **`0012` is the artifact that backs P2; `0011` is retained to show +what the shipped instrument would have said.** + +### D3 — claim 8: the parent line count + +| | claimed | observed | +|---|---|---| +| codegen.el at `9cc6040^` | 4903 | **4896** | +| codegen.el at `9cc6040` | 4512 | **4512** | +| 4661 − 4512 | 149 | **149** | + +The parent is 7 lines short of the claim. The commit's own diffstat corroborates 4896: +codegen.el takes −390/+6 in this commit, and 4896 − 390 + 6 = 4512 exactly. 4903 − 384 +would be 4519. + +Related reconciliation the parent agent asked for: cycle 09 records codegen.el as **4881** +at `c2d9596`; observed **4896** (`0010`, `0048`). Only one commit separates `c2d9596` from +`9cc6040^` (`29f78f9`) and it does not touch codegen.el, so the two are necessarily the same +file — and they are, at 4896. Cycle 09's 4881 is low by 15 and cycle 10's 4903 is high by 7, +against the same file content. + +The "4661 baseline" is solid and is now pinned: codegen.el is exactly 4661 lines at +`45325f7 singleton: guard the state, not the program's name` (2026-08-16), the commit +immediately before `dcaa77d` where the v1 series begins (`0048` walks 40 commits of +codegen.el history with line counts). + +### D4 — claim 10: the coverage gap is far larger than 110 + +| source | figure | +|---|---| +| commit message | "110 functions the runtime declares had no entry" | +| `arity.sh`'s own header comment (same commit) | "199 functions … had NO entry … 40% incomplete" | +| **observed, strict direct-name match** | **257** | +| **observed, applying the `__`-prefix rule** | **256** | + +The record contradicts itself (110 vs 199) inside a single commit, and neither figure is +reachable. The accounting that *does* close is: + +- table = 300 entries = 243 shared with the header + **57 names the header does not declare** + (test-registry shims `__el_reg_*`, El-level aliases like `println`/`print`/`exit_program`, + and the `__engram_*` C-name forms — full list in `0012`); +- header = 500 declarations = 243 shared + **257 with no table entry**. + +199 is close to 500 − 300 = 200 and to "40% of 500", which is probably how it was derived — +but that subtracts the whole table, 57 of whose entries are not header functions at all. +110 has no derivation over any population I could construct (`0049` enumerates the +candidates). The *direction* of the record's argument is unaffected and in fact +understated: the hand table left **more** than twice as many runtime functions +undiagnosable as the commit message claims. + +--- + +## Findings the record does not claim + +1. **Orphaned prose.** `9cc6040` deletes `builtin_arity`, `arity_check_call`, + `arity_record_violation` and `emit_arity_violations` but leaves ~22 lines of their + documentation behind in codegen.el (lines 2539–2560), including "Strategy: a small + static table mirrors el_runtime.h" and "…which `emit_arity_violations()` turns into + `#error` directives" — describing machinery that no longer exists (`0049`). The only + surviving mention of any of the four symbols is that stale comment. +2. **The hand table lists five names twice** — `__thread_create`, `__thread_join`, + `__mutex_new`, `__mutex_lock`, `__mutex_unlock` — with identical arities both times + (305 `str_eq` lines, 300 distinct names, `0011`). Harmless, and a small illustration + of the maintenance cost the cycle is arguing about. +3. **The relations file records the same call twice** (`main calls __http_do_map_to_file` + / `__http_do_map_to_file calls arity:1`, each duplicated, `0047`). `arity.sh` `sort -u`s + the input so it does not double-report, but the emitter is not deduplicating. + +## Measurement defects in this re-run, recorded rather than removed + +1. **`0007-selfhost-fixpoint`, exit 1, superseded.** Captured with the recipe's original + command, which compares gen1 (output of the committed `dist/platform/elc`) against gen2. + That is not the fixpoint; the committed binary at `9cc6040` predates the seam/thunk + emission, so gen1 ≠ gen2 necessarily (10166 vs 13058 lines of C — `0050`). The correct check, + gen2 == gen3, is `0013` (and `0009`, taken first under the name + `selfhost-fixpoint-gen3-gen4` before the recipe's naming was corrected — same + measurement, same result). Do not cite `0007` as a fixpoint failure. +2. **`0020-old-compiler-arity-probe-at-parent`, exit 1, superseded.** The script used + `set -e`, and `grep -c 'arity error'` returning `0` exits 1, so the run aborted after + printing the number it was there to get. The number it did capture (`0`) agrees with the + REDO. Full both-sides measurement is `0047-REDO-arity-coverage-probe-both-sides`. +3. **Manifest numbering has gaps** (0013 → 0020 → 0047). `capture.sh` derives the next index + from `grep -c . MANIFEST.tsv`, and two of my captures passed a multi-line command string, + which `capture.sh` writes verbatim into the TSV's last column — inflating the line count. + No artifact is lost or altered; `verify-manifest.sh` reports 0 altered, 0 missing across + all cycles. Later cycles should pass single-line commands, or scripts, to `capture.sh`. +4. **The probe program is reconstructed.** `fn main() { __http_do_map_to_file("a") }` is not + in the tree; it is an input inferred from the record's sentence. The evidence is the + captured *output* of running it at both commits (`0047`), not the program. +5. **The parent tree is a `git archive` extraction, not a worktree.** Provenance on `0020` + and `0047` therefore stamps `9cc6040` (the CWD's HEAD) while the compiler under test was + built from `9cc6040^`. The `.cmd` file records the `git archive 9cc6040^` line, and the + artifact prints the resolved parent SHA `29f78f9…` and the parent's codegen line count as + a self-check. +6. **The correct header parser is mine, not the project's.** `/tmp/parse10.py` — comment/ + string state machine, top-level-comma parameter counting — is the control that produces + the 500/243/0-drift figures. It is cross-checked against a completely different method + (anchored line-based awk), which independently gives 500, and against the record's own + "500 decls". It is not in the repo; the pipeline that used it is recorded in `0012`. + +## Supporting artifacts + +| artifact | what it backs | +|---|---| +| `0001`–`0004` | commit identity for `9cc6040` and `d9e301b`, diffstat, the single intervening commit | +| `0005` | stage2 build, `BUILD_OK` | +| `0006` | 98/98 native compiler tests | +| `0008` | 5/5 `arity_query.sh` | +| `0009`, `0013` | fixpoint gen2 == gen3 | +| `0010` | codegen.el line counts at parent / commit / land / `c2d9596`, and 4661 − 4512 | +| `0011` | builtin_arity size and entries; the shipped checker's parse and its 5 false drifts | +| `0012` | the same questions against a correct header parse — 500 / 243 / 0 drift / 60 | +| `0047` | both sides of the `__http_do_map_to_file` measurement | +| `0048` | the checker's three confessed defects reconstructed (500 → 334 → 503), P3/P4 mechanism, 40 commits of codegen.el history | +| `0049` | coverage-gap arithmetic, the full uncovered list, the orphaned comments | +| `0050` | shipped parser vs correct parser, name by name: 25 wrong counts, 7 invented names, 6 missed declarations, gen1/gen2/gen3 sizes | diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.cmd b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.cmd new file mode 100644 index 0000000..696a385 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-head && for s in d9e301b d2d89fc e01e079; do printf "%s\t%s\t%s\n" "$s" "$(git show $s:lang/el-compiler/src/codegen.el | wc -l | tr -d " ")" "$(git log -1 --format=%s $s)"; done diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.err b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.out b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.out new file mode 100644 index 0000000..7babd7c --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.out @@ -0,0 +1,3 @@ +d9e301b 4512 land arity-from-header: the runtime declares its own surface +d2d89fc 4537 EXPERIMENT: temporal types as data — and the pass that GREW the compiler +e01e079 4537 land temporal signatures as data: the type table leaves, the dispatch stays diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.prov b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.prov new file mode 100644 index 0000000..156656a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:47:39Z +exit 0 +ms 45 +sha256_out fba75c9b726ef34dc5d1d64385e968fe7782cf0b479cce0102b546841c2461bf +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.rc b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.cmd b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.cmd new file mode 100644 index 0000000..9395672 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-head && echo "[A] real entries in signatures.rel @d2d89fc (comments excluded):"; git show d2d89fc:lang/tools/check/signatures.rel | grep -vE "^#" | grep -c " returns "; echo "[B] naive grep -c that also counts comment lines:"; git show d2d89fc:lang/tools/check/signatures.rel | grep -c " returns "; echo "[C] temporal names DELETED from codegen.el by d2d89fc:"; git diff d9e301b d2d89fc -- lang/el-compiler/src/codegen.el | grep -cE "^-.*str_eq\(name," diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.err b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.out b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.out new file mode 100644 index 0000000..fbdbeb7 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.out @@ -0,0 +1,6 @@ +[A] real entries in signatures.rel @d2d89fc (comments excluded): +17 +[B] naive grep -c that also counts comment lines: +19 +[C] temporal names DELETED from codegen.el by d2d89fc: +17 diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.prov b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.prov new file mode 100644 index 0000000..1b7d203 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:47:40Z +exit 0 +ms 27 +sha256_out 7a706b6424a61808c2c3c576b0d4a3d5055b226649b8352b42606473c20bdae4 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.rc b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.cmd b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.cmd new file mode 100644 index 0000000..3fa6e57 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-head && for s in d9e301b d2d89fc; do printf "%s wc-l=%s awk-NR=%s last-byte=%s\n" "$s" "$(git show $s:lang/el-compiler/src/codegen.el | wc -l | tr -d " ")" "$(git show $s:lang/el-compiler/src/codegen.el | awk "END{print NR}")" "$(git show $s:lang/el-compiler/src/codegen.el | tail -c1 | od -An -c | tr -d " ")"; done diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.err b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.out b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.out new file mode 100644 index 0000000..b46d566 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.out @@ -0,0 +1,2 @@ +d9e301b wc-l=4512 awk-NR=4512 last-byte=\n +d2d89fc wc-l=4537 awk-NR=4537 last-byte=\n diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.prov b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.prov new file mode 100644 index 0000000..f5bffd1 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:47:59Z +exit 0 +ms 62 +sha256_out 0ea6668cc6c238f12cc21a510296f26a3ae9b3b625392c5f0ae368dcc721e622 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.rc b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/CLAIMS.md b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/CLAIMS.md new file mode 100644 index 0000000..8033063 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/CLAIMS.md @@ -0,0 +1,104 @@ +# CLAIMS — cycle 11, one type erases the return + +Source doc: `docs/v1/experiments/cycles/11-one-type-erases-the-return.md` +Classified **REFUTES** in `00-INDEX.md` — the only cycle so classified in v1. + +## Pinned commits + +| role | sha | subject | +|---|---|---| +| parent / before-state | `d9e301bfa` | land arity-from-header: the runtime declares its own surface | +| experiment (system under test) | `d2d89fcb60454ef88703a7aaddacd2d979f615fc` | EXPERIMENT: temporal types as data — and the pass that GREW the compiler | +| land (merge) | `e01e079bdab97242f508daa9af7e8648ebd6760b` | land temporal signatures as data: the type table leaves, the dispatch stays | + +`e01e079` is the merge of `d2d89fc` into `d9e301b`; `codegen.el` is byte-identical +at `d2d89fc` and `e01e079` (artifact `0012`). + +## Verdicts + +| # | claim | artifact | commit | verdict | +|---|---|---|---|---| +| A1 | P3: codegen went **4513 → 4537**, it GREW by **24** lines | `0012-codegen-lines-P3-clean-tree.out`, `0014-codegen-newline-termination-clean-tree.out` | measured over `d9e301b`/`d2d89fc` | **DIVERGED** | +| A2 | P5: the moved table is **19 names** | `0013-signatures-name-recount-P5-clean-tree.out`, `0011-temporal-name-recount-P5.out` | `d2d89fc` | **DIVERGED** | +| A3 | P5: no type propagation — name tracking plus a hardcoded list, living in **two functions** | `0011-temporal-name-recount-P5.out` | `d9e301b` | REPRODUCED | +| A4 | 98/98 native | `0006-native-suite.out` | `d2d89fc` | REPRODUCED | +| A5 | 4/4 `temporal_signatures.sh` | `0007-temporal-signatures-harness.out` | `d2d89fc` | REPRODUCED | +| A6 | fixpoint ok | `0005-fixpoint-gen2-eq-gen3.out` | `d2d89fc` | REPRODUCED | +| A7 | INCOMPLETE (stated not hidden): violations still emit `TIME_TYPE_ERROR` inline from the emitter | `0008-time-type-error-still-inline-in-codegen.out` | `d2d89fc` | REPRODUCED | +| A8 | `el_runtime.h` declares every builtin as returning `el_val_t` | `0009-el-runtime-h-all-return-el-val-t.out`, `0010-runtime-h-non-el-val-t-decls.out` | `d2d89fc` | REPRODUCED (qualified) | +| A9 | P1/P2/P4: the block conflates dispatch with adjudication; adjudication can move, dispatch cannot; the rules are affine algebra closed by construction | — | — | **NOT-CAPTURED** | +| A10 | "adding a 20th temporal builtin is now a one-line edit to `signatures.rel`" | — | — | **NOT-CAPTURED** | +| A11 | the compiler builds at `d2d89fc` | `0004-build-gen1-d2d89fc.out` | `d2d89fc` | REPRODUCED | + +## The two divergences, in full + +### A1 — the growth number is 25, not 24, and the starting point is wrong + +``` +d9e301b 4512 land arity-from-header: the runtime declares its own surface +d2d89fc 4537 EXPERIMENT: temporal types as data — and the pass that GREW the compiler +e01e079 4537 land temporal signatures as data: the type table leaves, the dispatch stays +``` + +Claimed `4513 → 4537` (+24). Measured `4512 → 4537` (**+25**). + +Both files are newline-terminated, so `wc -l` and `awk END{print NR}` agree at +4512 and 4537 respectively (`0014`) — the discrepancy is not a counting +convention. + +The before-value is independently contradicted by the record itself: cycle 10 +(`10-a-second-copy-of-the-header.md`, P5) states codegen landed at **4512**, and +`00-INDEX.md` repeats 4512 for cycle 10. Cycle 11 then opens at 4513. One of the +two adjacent entries in the same record is wrong about the same number, and the +measurement says it is cycle 11's. + +**The classification is not affected.** The direction is what the REFUTES verdict +rests on, and the direction reproduces and is in fact stronger: the compiler grew +by one more line than the record claims. + +### A2 — "19 names" is a grep artifact; the real count is 17 + +``` +[A] real entries in signatures.rel @d2d89fc (comments excluded): 17 +[B] naive grep -c that also counts comment lines: 19 +[C] temporal names DELETED from codegen.el by d2d89fc: 17 +``` + +`signatures.rel` at `d2d89fc` holds **17** ` returns ` entries +(7 Instant, 10 Duration). `d2d89fc` deletes exactly **17** `if str_eq(name, …)` +lines from `codegen.el`. Two comment lines in the file's header also contain the +word `returns`; counting them gives exactly the claimed 19. + +The number 19 is reproducible only as the output of a measurement that does not +exclude comments. It survives into the source: the loader's own comment at +`codegen.el:1986` says "Previously 19 hardcoded names across two functions". The +*two functions* part is correct — `is_instant_call` (`d9e301b:2013`) and +`is_duration_call` (`d9e301b:2029`). + +This does not change the cycle's conclusion either. Moving 17 names cost 25 +lines; the point that "a generic loader is larger than the enumeration it +replaces" holds a fortiori. + +## Qualification on A8 + +`el_runtime.h` at `d2d89fc`: **500** declarations return `el_val_t`; **27** do +not. All 27 are listed in `0010`. Twenty-five are `void` (they return no value +at all — `println`, `el_retain`, `http_serve`, …), one is `size_t +el_utf8_safe_len(const char*, size_t)` and one is `int +engram_wal_enabled(void)`; the last two take C types, not `el_val_t`, and are +internal helpers rather than El builtins. No value-returning El builtin declares +anything other than `el_val_t`, so the claim as it bears on the argument — the C +boundary cannot say `now()` returns an Instant — is REPRODUCED. + +## Provenance notes + +* Artifacts `0001`–`0003` were captured with the working directory set to the + shared main checkout, which other agents were committing to concurrently, so + `verify-manifest.sh` flags them DIRTY-TREE. They are `git show`-based + measurements: the data is pinned by the SHA argument in the recorded command, + not by the working tree. Every one was re-run from a clean worktree + (`0012`–`0014`); `0001` and `0012` hash **identically** (`fba75c9b726e`). + Cite the `-clean-tree` artifacts. +* Everything else was captured from a dedicated worktree at `d2d89fc` + (`/tmp/rerun-v1b-11`), with `capture.sh` invoked by absolute path from inside + it, so the recorded commit is the system under test's. diff --git a/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.cmd b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.cmd new file mode 100644 index 0000000..02b37b9 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-head && for s in d9e301b d2d89fc e01e079 e8e25a0 50425f3 cbef1c1 505e5e7; do printf "%s\t%s\t%s\n" "$s" "$(git show $s:lang/el-compiler/src/codegen.el | wc -l | tr -d " ")" "$(git log -1 --format=%s $s)"; done diff --git a/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.err b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.out b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.out new file mode 100644 index 0000000..6e76e30 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.out @@ -0,0 +1,7 @@ +d9e301b 4512 land arity-from-header: the runtime declares its own surface +d2d89fc 4537 EXPERIMENT: temporal types as data — and the pass that GREW the compiler +e01e079 4537 land temporal signatures as data: the type table leaves, the dispatch stays +e8e25a0 4506 EXPERIMENT: temporal adjudication moves out; the placeholder stays +50425f3 4506 land temporal adjudication as a query: the emitter records, the rules are data +cbef1c1 4478 EXPERIMENT: Int return types as data — and the bug that fell out +505e5e7 4478 land int signatures, and repair a silent miscompilation they exposed diff --git a/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.prov b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.prov new file mode 100644 index 0000000..1ae4a41 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:47:59Z +exit 0 +ms 99 +sha256_out a16258af65cdf8153c89e11ce535fefa9a9fe22ee9698daa386b3f5b9be07c8c +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.rc b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.cmd b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.cmd new file mode 100644 index 0000000..e690ec2 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-head && echo "real rules (comments excluded):"; git show e8e25a0:lang/tools/check/temporal.rel | grep -vE "^#" | grep -c " means "; echo "naive grep -c:"; git show e8e25a0:lang/tools/check/temporal.rel | grep -c " means " diff --git a/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.err b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.out b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.out new file mode 100644 index 0000000..a250d94 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.out @@ -0,0 +1,4 @@ +real rules (comments excluded): +6 +naive grep -c: +8 diff --git a/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.prov b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.prov new file mode 100644 index 0000000..66b8170 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:47:59Z +exit 0 +ms 20 +sha256_out 5ed2c69825b39c9d46cf1d390403f3230e6297eff41d3dc799130000d89cf17c +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.rc b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/CLAIMS.md b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/CLAIMS.md new file mode 100644 index 0000000..954a650 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/CLAIMS.md @@ -0,0 +1,97 @@ +# CLAIMS — cycle 12, judgment lives with knowledge + +Source doc: `docs/v1/experiments/cycles/12-judgment-lives-with-knowledge.md` +Classified **BOUNDS** in `00-INDEX.md`. + +## Pinned commits + +| role | sha | subject | +|---|---|---| +| parent / before-state | `e01e079bdab97242f508daa9af7e8648ebd6760b` | land temporal signatures as data | +| experiment (system under test) | `e8e25a07b4decfe4a5a0799a212262dffd73edc9` | EXPERIMENT: temporal adjudication moves out; the placeholder stays | +| land (merge) | `50425f375d0d374a9a08c190ea0c9e5d7f5e1989` | land temporal adjudication as a query | + +## Verdicts + +| # | claim | artifact | commit | verdict | +|---|---|---|---|---| +| A1 | P1: codegen can emit operand-type relations — literally `main calls temporal:instant_plus_instant` | `0007-P1-relation-recorded.out` | `e8e25a0` | REPRODUCED (verbatim) | +| A2 | P2: the affine rules are a small closed set as data — **6 rules** | `0012-temporal-rel-rule-recount-clean-tree.out` | `e8e25a0` | REPRODUCED | +| A3 | P3: violations still caught at build time, `exit=1` | `0009-P3-violation-exits-1.out` | `e8e25a0` | REPRODUCED | +| A4 | P4: the reporter leaves codegen — **4538 → 4507** | `0011-codegen-lines-P4-clean-tree.out` | `e01e079`/`e8e25a0` | **DIVERGED** | +| A5 | P4 (mechanism): the message wording leaves the emitter | `0010-P4-reporter-left-codegen.out` | `e01e079`→`e8e25a0` | REPRODUCED | +| A6 | P5: the `TIME_TYPE_ERROR` placeholder must STAY | `0008-P5-placeholder-still-emitted.out` | `e8e25a0` | REPRODUCED | +| A7 | 98/98 native | `0005-native-suite.out` | `e8e25a0` | REPRODUCED | +| A8 | 6/6 `temporal_query.sh` | `0006-temporal-query-harness-P2P3.out` | `e8e25a0` | REPRODUCED | +| A9 | fixpoint ok | `0004-fixpoint-gen2-eq-gen3.out` | `e8e25a0` | REPRODUCED | +| A10 | a defect in the author's own checker: aligned columns vs an awk assuming a single space, so the rule key was left prefixed on the message | — | — | **NOT-CAPTURED** | +| A11 | the rules are closed because there are only two kinds of thing (point / displacement) | — | — | **NOT-CAPTURED** | +| A12 | the compiler builds at `e8e25a0` | `0003-build-gen1-e8e25a0.out` | `e8e25a0` | REPRODUCED | + +## The divergence, in full + +### A4 — both endpoints are one line high; the delta is exact + +``` +d9e301b 4512 +d2d89fc 4537 +e01e079 4537 <- cycle 12's before-state +e8e25a0 4506 <- cycle 12's after-state +50425f3 4506 +``` + +Claimed `4538 → 4507` (−31). Measured `4537 → 4506` (−31). + +The **delta is exactly right**. Both endpoints are exactly one line too high — +the same +1 offset seen in cycle 11's before-value. Two adjacent cycles reporting +a consistent +1 on the same file is a property of the instrument used at the +time, not of two independent slips. The measured chain is internally consistent: +cycle 11's landed value (4537) is cycle 12's starting value (4537), whereas the +prose chain is not (cycle 11 lands 4537, cycle 12 opens 4538). + +The conclusion is unaffected: 31 lines of reporter left codegen, as claimed. + +## Corroboration of A1 and A5 + +The emitter records, and the wording is gone from it: + +``` +main calls temporal:instant_plus_instant (0007) + +is-not-allowed strings in codegen.el @ e01e079 (before): 7 +is-not-allowed strings in codegen.el @ e8e25a0 (after): 0 (0010) +``` + +and the placeholder is still emitted for the same program (`0008`): + +``` +10: el_val_t c = 0 /* TIME_TYPE_ERROR: Instant + Instant */; +``` + +with the judgment now coming from the data file (`0009`): + +``` +temporal type error in main: Instant + Instant is not allowed — a point plus a +point is not a point. Subtract them for a Duration, or add a Duration. +checker-exit=1 +``` + +That triple is P5's boundary claim demonstrated end to end: what moved is the +judgment and the wording; what could not move is the fact that *something* must +be written. + +## Note on the rule count + +`0012` shows the same comment-line artifact as cycle 11's "19 names": a naive +`grep -c " means "` over `temporal.rel` returns **8**; excluding comment lines +gives **6**. Here the record states 6 — the correct figure. The claim is right +and the naive count is the one that would have been wrong. + +## Provenance notes + +Artifacts `0001` and `0002` carry a DIRTY-TREE flag for the same reason as cycle +11 (`git show` measurements run from the shared main checkout while other agents +were committing). Both were re-run from a clean worktree as `0011` and `0012`; +`0001` and `0011` hash **identically** (`a16258af65cd`). Cite the `-clean-tree` +artifacts. All behavioural captures come from `/tmp/rerun-v1b-12`, a dedicated +worktree at `e8e25a0`. diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.cmd b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.cmd new file mode 100644 index 0000000..c202a9e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-head/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; ./dist/platform/elc elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/ghead.c && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elchead /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/ghead.c $SRCS $LF && echo BUILD-OK diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.err b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.err new file mode 100644 index 0000000..72603f0 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14480:1: warning: '/*' within block comment [-Wcomment] + 14480 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.out b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.out new file mode 100644 index 0000000..1c5c36b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.out @@ -0,0 +1 @@ +BUILD-OK diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.prov b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.prov new file mode 100644 index 0000000..14852d5 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:46:26Z +exit 0 +ms 3940 +sha256_out 68ff1c8c79613a8870607bcba04539154b609870fef324c18636f75c43aeacd7 +sha256_err d61e9619f81ab91d682b0696b72052bf10af314692b2801d80d1f4c515eb25fc diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.rc b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.cmd b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.cmd new file mode 100644 index 0000000..d60b10c --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-head/lang && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elchead /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/p.el diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.err b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.out b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.out new file mode 100644 index 0000000..4cf7743 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.out @@ -0,0 +1,14 @@ +#include +#include +#include "el_runtime.h" + + +int main(int _argc, char** _argv) { + el_runtime_init_args(_argc, _argv); + el_val_t a = str_len(EL_STR("hello")); + el_val_t b = str_len(EL_STR("hi")); + el_val_t c = (a + b); + println(int_to_str(c)); + return 0; +} + diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.prov b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.prov new file mode 100644 index 0000000..0488374 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:46:34Z +exit 0 +ms 181 +sha256_out c1c17acaa59c49f0613171adf09295f29bdd2b3f4b4b21221ad8cebe72716ef1 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.rc b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.cmd b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.cmd new file mode 100644 index 0000000..899606c --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-head/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/head13 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/head13.c $SRCS $LF && echo CC-CLEAN diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.err b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.err new file mode 100644 index 0000000..72603f0 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14480:1: warning: '/*' within block comment [-Wcomment] + 14480 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.out b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.out new file mode 100644 index 0000000..0c50dfc --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.out @@ -0,0 +1 @@ +CC-CLEAN diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.prov b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.prov new file mode 100644 index 0000000..cacc032 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:46:38Z +exit 0 +ms 3235 +sha256_out a7751a7fc2e89c47be008f0ba3d5dd9ddca3f7dc76600ec80ebf177bc88f45c5 +sha256_err d61e9619f81ab91d682b0696b72052bf10af314692b2801d80d1f4c515eb25fc diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.rc b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.cmd b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.cmd new file mode 100644 index 0000000..da094aa --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.cmd @@ -0,0 +1 @@ +/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/head13 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.err b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.out b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.out new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.out @@ -0,0 +1 @@ +7 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.prov b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.prov new file mode 100644 index 0000000..db9ecd2 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:46:38Z +exit 0 +ms 180 +sha256_out 10159baf262b43a92d95db59dae1f72c645127301661e0a3ce4e38b295a97c58 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.rc b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.cmd b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.cmd new file mode 100644 index 0000000..ff2c9bd --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-head && for s in 50425f3 cbef1c1 505e5e7; do printf "%s\t%s\t%s\n" "$s" "$(git show $s:lang/el-compiler/src/codegen.el | wc -l | tr -d " ")" "$(git log -1 --format=%s $s)"; done; echo; echo "lines the repair hunk added to codegen.el in cbef1c1:"; git diff 50425f3 cbef1c1 -- lang/el-compiler/src/codegen.el | grep -cE "^\+" diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.err b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.out b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.out new file mode 100644 index 0000000..74c2f96 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.out @@ -0,0 +1,6 @@ +50425f3 4506 land temporal adjudication as a query: the emitter records, the rules are data +cbef1c1 4478 EXPERIMENT: Int return types as data — and the bug that fell out +505e5e7 4478 land int signatures, and repair a silent miscompilation they exposed + +lines the repair hunk added to codegen.el in cbef1c1: +13 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.prov b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.prov new file mode 100644 index 0000000..b92331e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:47:59Z +exit 0 +ms 55 +sha256_out bcad61ceed8fb20b3e82531e4cf2312fdcdb6d984a8920ad18f82ad902eae222 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.rc b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.cmd b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.cmd new file mode 100644 index 0000000..8ec29bd --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-head && echo "hardcoded names in is_int_call @50425f3:"; git diff 50425f3 cbef1c1 -- lang/el-compiler/src/codegen.el | grep -cE "^-.*if str_eq\(name, "; echo "Int entries added to signatures.rel by cbef1c1:"; git diff 50425f3 cbef1c1 -- lang/tools/check/signatures.rel | grep -cE "^\+.* returns Int" diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.err b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.out b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.out new file mode 100644 index 0000000..93639be --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.out @@ -0,0 +1,4 @@ +hardcoded names in is_int_call @50425f3: +35 +Int entries added to signatures.rel by cbef1c1: +35 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.prov b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.prov new file mode 100644 index 0000000..520270a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:47:59Z +exit 0 +ms 20 +sha256_out e208d2eee5449834f4b13f190cbe2d8fb89800b1268811cc825835aab28389f2 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.rc b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/CLAIMS.md b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/CLAIMS.md new file mode 100644 index 0000000..f90a656 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/CLAIMS.md @@ -0,0 +1,153 @@ +# CLAIMS — cycle 13, thirty five return types + +Source doc: `docs/v1/experiments/cycles/13-thirty-five-return-types.md` +Classified **SUPPORTS** in `00-INDEX.md`. + +## Pinned commits + +| role | sha | subject | +|---|---|---| +| parent / before-state | `50425f375d0d374a9a08c190ea0c9e5d7f5e1989` | land temporal adjudication as a query | +| experiment (system under test) | `cbef1c1ebb77c34f40ac1fec84f7daf952f6d29e` | EXPERIMENT: Int return types as data — and the bug that fell out | +| land (merge) | `505e5e74d9b4acbf810c3f5c9b06e558ed2fec31` | land int signatures, and repair a silent miscompilation they exposed | +| current HEAD at re-run time | `a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7` | instrument build log: every failure, with the artifact | + +## Verdicts + +| # | claim | artifact | commit | verdict | +|---|---|---|---|---| +| A1 | P1: `is_int_call`'s **35** hardcoded names move to data | `0026-is-int-call-recount-clean-tree.out` | `50425f3`→`cbef1c1` | REPRODUCED (exact) | +| A2 | P4: codegen shrinks ~40 lines, **4507 → 4469** | `0025-codegen-lines-P4-clean-tree.out` | `50425f3`/`cbef1c1` | **DIVERGED** | +| A3 | P6: `let a = str_len(…); let b = str_len(…); a + b` lowers to `el_str_concat` on two integers | `0004`, `0005`, `0015-pre-printable-emit-c.out` | `50425f3` | REPRODUCED (exact) | +| A4 | P6: it "compiled clean, ran, and printed NOTHING where it should print 7. No error at any layer." | `0006`, `0007-pre-program-run.out`, `0017`, `0018-pre-printable-run.out` | `50425f3` | **DIVERGED** | +| A5 | P6: the repair fixes it — the program prints 7 | `0016-post-printable-emit-c.out`, `0020-post-printable-run.out` | `cbef1c1` | REPRODUCED | +| A6 | the repair is "three lines" | `0025-codegen-lines-P4-clean-tree.out` | `50425f3`→`cbef1c1` | **DIVERGED** | +| A7 | 98/98 native + 2 new | — | — | **NOT-CAPTURED** (see note) | +| A8 | 31/31 integration | — | — | **NOT-CAPTURED** (see note) | +| A9 | fixpoint ok | — | — | **NOT-CAPTURED** (see note) | +| A10 | P5: the design docs' "hardcoded int-name set" characterisation is wrong — `__int_names` is populated from `param["type"] == "Int"` | — | — | **NOT-CAPTURED** | +| A11 | P2/P3: `is_int_name` stays (annotation propagation); the dispatch stays (emission) | — | — | **NOT-CAPTURED** | +| A12 | **NEW — not in the record.** The repair is working-directory dependent and silently reverts to the defect | `0009`+`0011` vs `0012`+`0014` | `cbef1c1` | **NEW FINDING** | +| A13 | the defect at current HEAD | `0022`, `0024-head-program-run-TODAY.out` | `a0cc95e3` | fixed — prints `7`, exit 0 | + +## The divergences, in full + +### A4 — it did not "run". It segfaulted. + +Fixture `fixtures/str_len_add.el`, compiled by the compiler built from +`50425f3`: + +```c +el_val_t a = str_len(EL_STR("hello")); +el_val_t b = str_len(EL_STR("hi")); +el_val_t c = el_str_concat(a, b); <- the miscompilation, exactly as recorded +println(c); +``` + +`cc` exits **0** with zero errors (`0006`, `0017`) — "compiled clean" holds. The +program then exits **139, SIGSEGV** (`0007`, `0018`), stdout **0 bytes**. + +The record says the program "ran, and printed NOTHING". It did not run: it died +on a signal. "Printed nothing" is true and "no error at any layer" is false — +the operating system raised one. `el_str_concat(5, 2)` dereferences 5 as a +`char*`. + +This is the same shape as measurement defect 4, recorded in cycle 19 of this very +document set: an exit code that was never looked at. The record understates the +severity of its own headline finding. + +Both variants were run, so the segfault cannot be blamed on the observation +method: + +* `println(c)` directly — segfaults in `println` as well as `el_str_concat`; +* `println(int_to_str(c))` (`fixtures/str_len_add_printable.el`) — isolates the + arithmetic. At `50425f3`: exit 139, no output. At `cbef1c1`: prints `7`, + exit 0 (`0020`). + +The claim's *substance* — a silent miscompilation with no diagnostic at any +compiler layer — is REPRODUCED and is worse than described. + +### A2 / A6 — the shrink is 28 lines, not 38, because the repair is in the same commit + +``` +50425f3 4506 +cbef1c1 4478 +505e5e7 4478 +``` + +Claimed `4507 → 4469` (−38, "~40"). Measured `4506 → 4478` (−28). + +The before-value carries the same +1 offset as cycles 11 and 12. The +after-value is 9 lines apart, which is not an offset. The cause is in the diff: +`cbef1c1` both moves the table out **and** lands the repair, and the repair hunk +adds **13** lines to `codegen.el` (`0025`) — a 4-line guard plus a 9-line +comment, not "three lines": + +```el ++ // UNANNOTATED let: take the type from what the initialiser RETURNS. ++ // …seven more comment lines… ++ if str_eq(ltype, "") { ++ if is_int_expr(val) { add_int_name(name) } ++ } +``` + +`4469 + 13 = 4482`; against a true base of 4506 the table move alone is −41, +which is the "~40" that was predicted. The most consistent reading is that P4 was +measured after the table move and before the repair was written, and the figure +was never re-taken once the repair landed in the same commit. + +### A1 — exact + +``` +hardcoded names in is_int_call @50425f3: 35 +Int entries added to signatures.rel by cbef1c1: 35 +``` + +Thirty-five in, thirty-five out. No divergence. + +## A12 — new finding: the data-driven repair fails open + +`load_signatures()` resolves its data file as `env("EL_SIGNATURES")` and, when +unset, the **relative** path `tools/check/signatures.rel` +(`codegen.el:1989–1993` at `cbef1c1`). The file is therefore found only when the +compiler is invoked with the working directory at `lang/`. + +Run from one directory up, the `cbef1c1` compiler emits (`0012` vs `0009`): + +| cwd | emitted for `a + b` | program | +|---|---|---| +| repo root | `el_val_t c = el_str_concat(a, b);` | exit 139, no output (`0011`, `0014`) | +| `lang/` | `el_val_t c = (a + b);` | prints `7`, exit 0 (`0020`) | + +Byte-identical output to the *pre-repair* compiler: artifacts `0004` and `0009` +share sha256 `40fff4bfeca1…`. + +So the repair does not fail closed. With its data file missing it reproduces the +exact silent miscompilation it was written to remove, with no diagnostic. The +harness `temporal_signatures.sh` already contains an assertion of this shape +("with no signature file, the type is unknown and it does not"), which is treated +there as correct behaviour — for dispatch it is arguably tolerable; for the +binding-site repair it reintroduces a memory-safety defect. + +This finding belongs to the re-run, not to the original record. + +## NOT-CAPTURED, and why + +A7/A8/A9 (98/98 native + 2 new, 31/31 integration, fixpoint) were not re-run at +`cbef1c1`. They are re-runnable — the identical measurements were taken at the +adjacent commits `d2d89fc` (cycle 11), `e8e25a0` (cycle 12) and `0143cc4` +(cycle 14, which reports 102 tests and 31 integration assertions) — and are +recorded here as NOT-CAPTURED rather than inferred from neighbours. + +## Provenance notes + +`0001` and `0002` carry DIRTY-TREE flags (`git show` measurements from the shared +main checkout); both were re-run from a clean worktree as `0025` and `0026`. +Behavioural captures come from `/tmp/rerun-v1b-13-pre` (`50425f3`), +`/tmp/rerun-v1b-13-post` (`cbef1c1`) and `/tmp/rerun-v1b-head` (`a0cc95e3`). + +One capture was discarded during this re-run and is not in the manifest: a `cc` +invocation passed the multi-line `$SRCS` expansion as a single argument, which +wrote embedded newlines into `MANIFEST.tsv` and broke its row structure. It was +removed and re-run as a single-line `bash -c`. No measurement was lost — the +build was simply repeated (`0006`). diff --git a/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.cmd b/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.cmd new file mode 100644 index 0000000..642216e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.cmd @@ -0,0 +1 @@ +/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/headkw diff --git a/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.err b/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.out b/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.out new file mode 100644 index 0000000..920a139 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.out @@ -0,0 +1 @@ +43 diff --git a/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.prov b/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.prov new file mode 100644 index 0000000..7bc4448 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:47:07Z +exit 0 +ms 173 +sha256_out 0e55092af0746630c98d1b2e0d960617c33f8ea7b55739fd18cb7cd5342a28ca +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.rc b/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/CLAIMS.md b/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/CLAIMS.md new file mode 100644 index 0000000..833e02c --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/CLAIMS.md @@ -0,0 +1,115 @@ +# CLAIMS — cycle 14, keywords that reserve nothing + +Source doc: `docs/v1/experiments/cycles/14-keywords-that-reserve-nothing.md` + +## Pinned commits + +| role | sha | subject | +|---|---|---| +| parent / before-state | `15d4352ba` | make the capability table match its own status note | +| experiment (system under test) | `0143cc458ac158e808e074acab417d4f706d89d8` | ANSWER: is a grammar a convention, or a region? | +| land (merge) | `067dd40317bd880781b6035dd5bfba8c2f1b371d` | answer the parsing question: a grammar is a basis, and five keywords reserved nothing | +| current HEAD at re-run time | `a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7` | instrument build log | + +## Verdicts + +| # | claim | artifact | commit | verdict | +|---|---|---|---|---| +| A1 | the keyword set is **46** spellings | `0001-keyword-count-at-15d4352.out` | `15d4352` | REPRODUCED (exact) | +| A2 | **five** of them are consumed by no parser or codegen path: `sealed`, `activate`, `seed`, `protocol`, `impl` | `0001`, `0010-five-tokens-consumed-nowhere.out` | `15d4352` | REPRODUCED (exact) | +| A3 | using one did not fail to parse: `let seed = 42 / let impl = seed + 1` compiled **CLEAN — zero cc errors** | `0004`, `0006-pre-cc-zero-errors.out` | `15d4352` | REPRODUCED (exact) | +| A4 | …and **printed 0** | `0007-pre-program-run.out` | `15d4352` | REPRODUCED (exact) | +| A5 | …"instead of **44**" | `0009-post-program-run.out` | `0143cc4` | **DIVERGED** | +| A6 | fixed by removing the five | `0005-post-emit-c-inert-keywords.out`, `0009` | `0143cc4` | REPRODUCED | +| A7 | measurement defect: `test` looked inert by the same measure and is not — codegen consumes it at **4135** for `--test` mode | `0011-test-keyword-consumed-at-codegen-4135.out` | `0143cc4` | REPRODUCED (exact, to the line) | +| A8 | …and the tree has **408** uses | `0014-test-word-count-at-pre.out` | `15d4352` | REPRODUCED (exact) | +| A9 | 100/100 native + 2 new | `0013-post-native-suite.out` | `0143cc4` | REPRODUCED | +| A10 | 31/31 integration | `0015-post-integration-harnesses.out` | `0143cc4` | REPRODUCED (exact) | +| A11 | fixpoint ok | `0012-post-fixpoint.out` | `0143cc4` | REPRODUCED | +| A12 | the SHOULD gate says no: the keyword set stays code because it is closed by the language definition and the lexer runs before the program is understood | — | — | **NOT-CAPTURED** (design argument) | +| A13 | the lexeme→token / shape-recognition / transduction / byte-traversal layering | — | — | **NOT-CAPTURED** (design argument) | +| A14 | the defect at current HEAD | `0016-head-inert-keyword-TODAY.out` | `a0cc95e3` | fixed — prints `43`, exit 0 | + +## The second silent miscompilation of the day, reproduced exactly + +Fixture `fixtures/inert_keyword.el`: + +```el +fn main() { + let seed = 42 + let impl = seed + 1 + println(int_to_str(impl)) +} +``` + +Emitted C at `15d4352` (`0004`): + +```c +el_val_t seed = 42; +el_val_t impl = (EL_NULL + 1); +println(int_to_str(EL_NULL)); +``` + +The binding is emitted, but every *use* of `seed` and `impl` is swallowed — the +lexer classified the identifier as a keyword, so the expression parser never saw +an identifier and emitted `EL_NULL`. `cc` reports **0 errors** (`0006`), the +program exits **0**, and prints **`0`** (`0007`). + +At `0143cc4` (`0005`, `0009`): + +```c +el_val_t seed = 42; +el_val_t impl = (seed + 1); +println(int_to_str(impl)); +``` + +prints **`43`**, exit 0. + +### A5 — the expected value is 43, not 44 + +The record says the program "printed 0 instead of **44**". For `let seed = 42` +followed by `let impl = seed + 1` the correct result is **43**, and the repaired +compiler prints 43 (`0009`, and again at HEAD, `0016`). The `44` is an +arithmetic slip in the prose. + +Nothing else in the claim is affected: the defect, the clean compile, the +printed `0`, and the repair all reproduce exactly. + +## The measurement defect the record catches on itself — confirmed + +`0010`, run against `15d4352`, counts each token name across all four consumers: + +``` +Sealed lexer=1 parser=0 codegen=0 compiler=0 +Activate lexer=1 parser=0 codegen=0 compiler=0 +Seed lexer=1 parser=0 codegen=0 compiler=0 +Protocol lexer=1 parser=0 codegen=0 compiler=0 +Impl lexer=1 parser=0 codegen=0 compiler=0 +Test lexer=1 parser=0 codegen=1 compiler=0 +``` + +The five are minted by the lexer and consumed by nothing. `Test` is minted by +the lexer, ignored by the parser — which is why a parser-only search reported it +inert — and consumed by codegen. `0011` locates that single consumer at +**`codegen.el:4135`**, the exact line the record names, and `0014` counts +**408** occurrences of the bare word `test` in `.el` files at `15d4352`, the +exact figure the record names. Removing it would indeed have broken the suite. + +## Integration count — exact + +``` +arity_query.sh exit=0 assertions=5 +capability_query.sh exit=0 assertions=5 +prohibition_query.sh exit=0 assertions=4 +seam_binding.sh exit=0 assertions=7 +temporal_query.sh exit=0 assertions=6 +temporal_signatures.sh exit=0 assertions=4 +TOTAL assertions: 31 +``` + +## Provenance notes + +All captures are from dedicated worktrees `/tmp/rerun-v1b-14-pre` (`15d4352`), +`/tmp/rerun-v1b-14-post` (`0143cc4`) and `/tmp/rerun-v1b-head` (`a0cc95e3`), with +`capture.sh` invoked by absolute path from inside each, so the recorded commit is +the system under test's. No DIRTY-TREE flags in this cycle. diff --git a/docs/v1/experiments/evidence/cycles/15-no-namespacing-at-all/CLAIMS.md b/docs/v1/experiments/evidence/cycles/15-no-namespacing-at-all/CLAIMS.md new file mode 100644 index 0000000..479962c --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/15-no-namespacing-at-all/CLAIMS.md @@ -0,0 +1,197 @@ +# CLAIMS — cycle 15, no namespacing at all + +Source doc: `docs/v1/experiments/cycles/15-no-namespacing-at-all.md` + +This is the measurement that bears hardest on the hypothesis: if every El symbol +binds to a name already resolved by the C linker, the partition question is not +being asked yet. It was captured with correspondingly more care than the rest of +the set — the linking claim is demonstrated as a six-step chain +(`0010`–`0015`), not asserted. + +## Pinned commits + +| role | sha | subject | +|---|---|---| +| parent / before-state | `bb040ad2c` | record the numeric literals answer: a bare number has no axis | +| experiment (system under test) | `79f6cb79850b5affd7735fcc418ede2242b46e5b` | ANSWER: if the partition is a neighbourhood, does linking survive? | +| land (merge) | `f23cb2b948396eae6a44daac5d56f5e0e6338758` | answer the module question: the partition is a path, and there is no namespacing | + +`79f6cb7` touches `codegen.el`, `definitions_query.sh` and `definitions.sh` +only. `compiler.el` — which holds `resolve_imports` — is **unchanged** between +`bb040ad` and `79f6cb7`, so the import/linking measurements below hold at both. + +## Verdicts + +| # | claim | artifact | commit | verdict | +|---|---|---|---|---| +| A1 | `import` is textual inlining (`resolve_imports`), guarded against double inclusion by a `__elc_imp__:` state key | `0016-resolve-imports-is-textual-inlining.out` | `79f6cb7` | REPRODUCED (exact) | +| A2 | when a `.elh` header exists the **header is inlined instead** and the `.el` is marked seen | `0016`, `0010`, `0011`, `0012` | `79f6cb7` | REPRODUCED | +| A3 | **so symbols resolve at C link time — linking IS real, delegated to C** | `0012`, `0013-link-D-unresolved-at-c-link-time.out`, `0014`, `0015` | `79f6cb7` | REPRODUCED (demonstrated end to end) | +| A4 | two modules defining `helper` emit **two C functions into one translation unit** | `0003`, `0004-pre-two-c-functions-one-TU.out` | `bb040ad` | REPRODUCED (exact) | +| A5 | `cc` does catch the collision, but reports four errors with the user's own function **FOURTH**: `__el_body_helper`, `__env_helper`, `__thunk_helper`, `helper` | `0005-pre-cc-collision-error-order.out` | `bb040ad` | REPRODUCED (exact, in order) | +| A6 | repaired at El level with the message `duplicate definition: 'helper' is defined 2 times — El has no namespacing, so imported modules share one global scope` | `0006-post-el-level-duplicate-message.out` | `79f6cb7` | REPRODUCED (verbatim) | +| A7 | 4/4 `definitions_query.sh` | `0007-post-definitions-query-harness.out` | `79f6cb7` | REPRODUCED | +| A8 | 104/104 native | `0009-post-native-suite.out` | `79f6cb7` | REPRODUCED (exact) | +| A9 | the compiler itself reports clean | `0017-compiler-self-check-clean.out` | `79f6cb7` | REPRODUCED | +| A10 | fixpoint ok | `0008-post-fixpoint.out` | `79f6cb7` | REPRODUCED | +| A11 | LIMIT: textual inlining destroys file provenance, so the message can name the symbol but not the files | `0006` | `79f6cb7` | REPRODUCED | +| A12 | "the first three are generated symbols introduced by the unconditional-wrapper pass earlier today — before it, there was one clear message" | — | — | **NOT-CAPTURED** | +| A13 | "El's partition is a FILESYSTEM PATH, not a neighbourhood" / "whether linking survives a neighbourhood partition cannot be asked yet" | — | — | **NOT-CAPTURED** (interpretive) | +| A14 | both compilers build | `0001`, `0002` | `bb040ad`, `79f6cb7` | REPRODUCED | + +## A3 — the linking chain, in full + +This is the load-bearing measurement. Six captures, one per step. Fixtures +`fixtures/m.el` (defines `mhelper`) and `fixtures/link_main.el` (imports it). + +**A — no header present.** `resolve_imports` inlines the module body; the +definition and the call land in one translation unit (`0010`): + +```c +el_val_t mhelper(void); +static el_val_t __el_body_mhelper(void) { return EL_STR("from module m"); …} +… +el_val_t mhelper(void) { … } <- the DEFINITION is here +int main(…) { println(mhelper()); } +``` + +**B — emit a header.** `elc --emit-header m.el` writes (`0011`): + +``` +// auto-generated by elc --emit-header — do not edit +extern fn mhelper() -> String +``` + +**C — recompile with the header present.** The `.el` is marked seen and the +header text is inlined in its place. The whole module body is gone (`0012`): + +```c +#include "el_runtime.h" + +el_val_t mhelper(void); <- a DECLARATION, and nothing else + +int main(int _argc, char** _argv) { + el_runtime_init_args(_argc, _argv); + println(mhelper()); + return 0; +} +``` + +**D — link that translation unit alone.** El has produced a program with an +unresolved symbol, and says nothing about it. The C linker is what refuses +(`0013`, exit 1): + +``` +Undefined symbols for architecture arm64: + "_mhelper", referenced from: +``` + +**E — link the module's own translation unit in as well** (`0014`, exit 0): + +``` +LINK-OK +``` + +**F — run it** (`0015`, exit 0): + +``` +from module m +``` + +The symbol is genuinely unbound at the El layer and genuinely bound by `ld`. +"Linking IS real, delegated to C" is not a characterisation here; it is the +observed behaviour of the toolchain at the pinned commit. The El compiler never +resolves `mhelper` — it emits a C declaration and lets the system linker +succeed or fail. + +## A5 — the collision, and the ordering, exactly as recorded + +Fixtures `fixtures/a.el`, `fixtures/b.el`, `fixtures/main.el` — two modules each +defining `helper`, one program importing both. + +Emitted into one translation unit (`0004`) — the generated helper trio appears +twice, then the user's function twice: + +``` + 5: el_val_t helper(void); + 6: el_val_t helper(void); + 8: static el_val_t __el_body_helper(void) { +12: struct __env_helper { char __e0; }; +13: static el_val_t __thunk_helper(void* __v) { +17: el_val_t helper(void) { +25: static el_val_t __el_body_helper(void) { <- second copy begins +29: struct __env_helper { char __e0; }; +30: static el_val_t __thunk_helper(void* __v) { +34: el_val_t helper(void) { +``` + +`cc` at `bb040ad` (`0005`, exit 1) reports, in this order: + +``` +mod_pre.c:25:17: error: redefinition of '__el_body_helper' +mod_pre.c:29:8: error: redefinition of '__env_helper' +mod_pre.c:30:17: error: redefinition of '__thunk_helper' +mod_pre.c:34:10: error: redefinition of 'helper' +``` + +Four errors. The user's own function is the **fourth**. The first three name +symbols the user never wrote. Exact match, including order. + +## A6 / A11 — the repair, and its stated limit + +At `79f6cb7` the collision is caught at El level from recorded relations +(`0006`, checker exit 1): + +``` +duplicate definition: 'helper' is defined 2 times — El has no namespacing, so imported modules share one global scope +``` + +verbatim to the record. And the limit is visible in the same output: it names +**which name** collides and not **which files**, because by the time codegen runs +`resolve_imports` has produced one source string. That limit is what cycle 16 +goes on to remove. + +## A1 — the mechanism, verbatim from source + +`0016`, `compiler.el` at `79f6cb7`: + +``` +416:fn resolve_imports(src_path: String) -> String { +417: let seen_key: String = "__elc_imp__:" + src_path +420: state_set(seen_key, "1") +455: let imp_elh_path: String = str_slice(imp_path, 0, str_len(imp_path) - 3) + ".elh" +456: let imp_elh: String = fs_read(imp_elh_path) +457: if !str_eq(imp_elh, "") { +460: let seen_imp_key: String = "__elc_imp__:" + imp_path +461: state_set(seen_imp_key, "1") +462: let prefix_chunks = native_list_append(prefix_chunks, imp_elh) +``` + +Textual inlining; `__elc_imp__:` as the double-inclusion guard; header +preferred over body and the `.el` marked seen. Every clause of A1 and A2 present +in the code, and demonstrated in behaviour by the A–F chain. + +## Suite results at `79f6cb7` + +``` +104 tests, 104 passed, 0 failed, 249 assertions (0009) +4 assertions, 4 passed, 0 failed definitions_query (0007) +FIXPOINT-OK gen2 == gen3 (0008) +definitions: clean exit=0 (compiler's own source) (0017) +``` + +All four figures match the record. + +## Provenance notes + +Every artifact in this cycle was captured from a dedicated worktree — +`/tmp/rerun-v1b-15-pre` (`bb040ad`) or `/tmp/rerun-v1b-15-post` (`79f6cb7`) — +with `capture.sh` invoked by absolute path from inside it, so the recorded commit +is the system under test's, and fixtures and build products were kept outside the +worktree so the tree stayed clean. **No DIRTY-TREE flags in this cycle**; every +artifact is reproducible by checking out its recorded commit. + +One capture (`0013`) was taken a first time with the working directory left in +the shared main checkout, which recorded the wrong commit. It was deleted, its +manifest row removed, and the measurement re-run from inside the worktree. The +result was unchanged. diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0011-post-native-suite.prov b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0011-post-native-suite.prov new file mode 100644 index 0000000..595a8b0 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0011-post-native-suite.prov @@ -0,0 +1,7 @@ +commit 6c975b1d5019446c29d84d99b9b1c0ec512be8a6 +tree clean +captured_utc 2026-08-17T17:39:50Z +exit 0 +ms 4501 +sha256_out f79b44ce578be80a6e4893078b52be4bbf8fb042acde2fdfc8aff5e8b5d36201 +sha256_err 15ee96301428d7dc3500fe5b6109a154a87a2f21119365e665575b3e634d662b diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0011-post-native-suite.rc b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0011-post-native-suite.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0011-post-native-suite.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.cmd b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.cmd new file mode 100644 index 0000000..7a47bb8 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-16-post/lang && tot=0; for h in tests/integration/*.sh; do out=$("$h" /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc16p2 2>&1); rc=$?; n=$(printf "%s" "$out" | grep -oE "^ *[0-9]+ assertions" | grep -oE "[0-9]+" | head -1); printf "%-28s exit=%s assertions=%s\n" "$(basename $h)" "$rc" "${n:-0}"; tot=$((tot+${n:-0})); done; echo "TOTAL: $tot" diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.err b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.out b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.out new file mode 100644 index 0000000..6d49e79 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.out @@ -0,0 +1,8 @@ +arity_query.sh exit=0 assertions=5 +capability_query.sh exit=0 assertions=5 +definitions_query.sh exit=0 assertions=6 +prohibition_query.sh exit=0 assertions=4 +seam_binding.sh exit=0 assertions=7 +temporal_query.sh exit=0 assertions=6 +temporal_signatures.sh exit=0 assertions=4 +TOTAL: 37 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.prov b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.prov new file mode 100644 index 0000000..d23c3b9 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.prov @@ -0,0 +1,7 @@ +commit 6c975b1d5019446c29d84d99b9b1c0ec512be8a6 +tree clean +captured_utc 2026-08-17T17:39:56Z +exit 0 +ms 5834 +sha256_out dc339da1bbfd1ef26c50dd0fc39d11698cc917e12f9d8cece3943064a099780d +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.rc b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.cmd b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.cmd new file mode 100644 index 0000000..d89e1bb --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-16-post/lang && EL_RELATIONS_OUT=/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/rel16self.txt /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc16p2 elc-cli.el > /dev/null 2>&1; ./tools/check/definitions.sh /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/rel16self.txt; echo "exit=$?" diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.err b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.out b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.out new file mode 100644 index 0000000..d99dde7 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.out @@ -0,0 +1,2 @@ +definitions: clean +exit=0 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.prov b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.prov new file mode 100644 index 0000000..a7b7b55 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.prov @@ -0,0 +1,7 @@ +commit 6c975b1d5019446c29d84d99b9b1c0ec512be8a6 +tree clean +captured_utc 2026-08-17T17:40:00Z +exit 0 +ms 3736 +sha256_out ee2edd9077daacf4b2738aa301a4406706be0cec2860cf10411aed76807f7f38 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.rc b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.cmd b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.cmd new file mode 100644 index 0000000..94b2b99 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-head && echo "stride literal changes (2 -> 3) in parser.el:"; git diff 1086ac9 6c975b1 -- lang/el-compiler/src/parser.el | grep -cE "^\+.*(\* 3|/ 3)"; echo "accessor fns after:"; git show 6c975b1:lang/el-compiler/src/parser.el | grep -nE "^fn tok_(kind|value|line)"; echo "accessor call sites after:"; git show 6c975b1:lang/el-compiler/src/parser.el | grep -cE "tok_kind\(|tok_value\(|tok_line\(" diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.err b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.out b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.out new file mode 100644 index 0000000..728fd29 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.out @@ -0,0 +1,8 @@ +stride literal changes (2 -> 3) in parser.el: +14 +accessor fns after: +25:fn tok_kind(tokens: [Any], pos: Int) -> String { +41:fn tok_line(tokens: [Any], pos: Int) -> String { +48:fn tok_value(tokens: [Any], pos: Int) -> String { +accessor call sites after: +187 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.prov b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.prov new file mode 100644 index 0000000..eb0c381 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:47:59Z +exit 0 +ms 30 +sha256_out 7929c4e6e578cf3478a21d17c8fdc94f2dd4face1bed24f40d4019c20ad69c02 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.rc b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.cmd b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.cmd new file mode 100644 index 0000000..0e88884 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-head && echo "stride-2 sites present at 1086ac9 across ALL compiler + test sources:"; git grep -nE "native_list_(get|len)\(tokens[^)]*(\* 2|/ 2)|len\(tokens\) / 2|pos \* 2" 1086ac9 -- lang/el-compiler/src lang/tests | wc -l; echo; echo "--- the sites ---"; git grep -nE "native_list_(get|len)\(tokens[^)]*(\* 2|/ 2)|len\(tokens\) / 2|pos \* 2" 1086ac9 -- lang/el-compiler/src lang/tests diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.err b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.out b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.out new file mode 100644 index 0000000..987bf29 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.out @@ -0,0 +1,20 @@ +stride-2 sites present at 1086ac9 across ALL compiler + test sources: + 16 + +--- the sites --- +1086ac9:lang/el-compiler/src/codegen.el:3633: let total: Int = native_list_len(tokens) / 2 +1086ac9:lang/el-compiler/src/codegen.el:3807: let total: Int = native_list_len(tokens) / 2 +1086ac9:lang/el-compiler/src/codegen.el:4018: let total_tokens: Int = native_list_len(tokens) / 2 +1086ac9:lang/el-compiler/src/parser.el:20: let kind: String = native_list_get(tokens, pos * 2) +1086ac9:lang/el-compiler/src/parser.el:21: let value: String = native_list_get(tokens, pos * 2 + 1) +1086ac9:lang/el-compiler/src/parser.el:31: let n: Int = native_list_len(tokens) / 2 +1086ac9:lang/el-compiler/src/parser.el:38: native_list_get(tokens, pos * 2) +1086ac9:lang/el-compiler/src/parser.el:42: let n: Int = native_list_len(tokens) / 2 +1086ac9:lang/el-compiler/src/parser.el:49: native_list_get(tokens, pos * 2 + 1) +1086ac9:lang/el-compiler/src/parser.el:1233: let blk_total: Int = native_list_len(tokens) / 2 +1086ac9:lang/el-compiler/src/parser.el:2161: let total: Int = native_list_len(tokens) / 2 +1086ac9:lang/el-compiler/src/parser.el:2204: let total: Int = native_list_len(tokens) / 2 +1086ac9:lang/el-compiler/src/parser.el:2256: let total: Int = native_list_len(tokens) / 2 +1086ac9:lang/el-compiler/src/parser.el:2422: let total: Int = native_list_len(tokens) / 2 +1086ac9:lang/el-compiler/src/parser.el:2564: let total: Int = native_list_len(tokens) / 2 +1086ac9:lang/tests/native/test_compiler.el:21: native_list_len(tokens) / 2 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.prov b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.prov new file mode 100644 index 0000000..3190828 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:48:10Z +exit 0 +ms 30 +sha256_out 50fe705aa2bb7c0602c30b9cfd748ce04f277f41385d08333ac1fb9e5342f5cd +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.rc b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/CLAIMS.md b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/CLAIMS.md new file mode 100644 index 0000000..b5ab2b9 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/CLAIMS.md @@ -0,0 +1,168 @@ +# CLAIMS — cycle 16, tokens carry no position + +Source doc: `docs/v1/experiments/cycles/16-tokens-carry-no-position.md` + +## Pinned commits + +| role | sha | subject | +|---|---|---| +| parent / before-state | `1086ac965` | record the module answer: the partition is a path, not a neighbourhood | +| experiment (system under test) | `6c975b1d5019446c29d84d99b9b1c0ec512be8a6` | thread provenance through resolve_imports | +| land (merge) | `cb7289f06510c002b6ab7c5ca8c2bd182d8216bc` | thread provenance end to end: a diagnostic can finally name a place | + +## Verdicts + +| # | claim | artifact | commit | verdict | +|---|---|---|---|---| +| A1 | tokens had **no position at all** — a token was a flat `(kind, value)` pair | `0001-pre-token-is-flat-pair.out` | `1086ac9` | REPRODUCED (exact) | +| A2 | no diagnostic in El could name a place — every error named a symbol, never a line | `0001` (`tok_line` absent from all five compiler sources) | `1086ac9` | REPRODUCED | +| A3 | P1: **15 stride sites**, encapsulated in `tok_kind`/`tok_value` | `0014`, `0015-P1-stride-sites-all-files-clean-tree.out` | `1086ac9`→`6c975b1` | REPRODUCED (see note) | +| A4 | P2: adding a line field is mechanical; P3: the lexer must count newlines — stride **2 → 3** | `0014`, `0015` | `6c975b1` | REPRODUCED | +| A5 | P4: `resolve_imports` can record per-file line ranges (` spans `) | `0009-P5-message-names-both-files.out` | `6c975b1` | REPRODUCED (via effect) | +| A6 | P5: the message can then name **both files** | `0009` | `6c975b1` | REPRODUCED (exact shape) | +| A7 | P6: token memory grows — **25.0 → 33.9 MB (+36%)** | `0005`, `0006`, `0007-P6-rss-five-runs-each.out`, `0008-P6-growth-arithmetic.out` | `1086ac9`/`6c975b1` | **DIVERGED** (endpoints reproduce; the percentage does not) | +| A8 | 105/105 native | `0011-post-native-suite.out` | `6c975b1` | REPRODUCED (exact) | +| A9 | 37/37 integration | `0012-post-integration-harnesses.out` | `6c975b1` | REPRODUCED (exact) | +| A10 | fixpoint ok | `0010-post-fixpoint.out` | `6c975b1` | REPRODUCED | +| A11 | compiler self-checks clean | `0013-post-compiler-self-check.out` | `6c975b1` | REPRODUCED | +| A12 | defect 1: `interp_tokens_append_all` walks the token list with its own copy of the stride; gen1 built, gen2 emitted corrupt C | — | — | **NOT-CAPTURED** | +| A13 | defect 2: `tok_count` in `test_compiler.el` carried the stride too, having escaped a compiler-scoped search | `0015` | `1086ac9` | REPRODUCED (corroborated — see note) | +| A14 | defect 3: nested `resolve_imports` accumulated spans into shared state | — | — | **NOT-CAPTURED** | +| A15 | defect 4: the first working version reported `b.el:3` — the COMBINED line against a file with no line 3 | `0009` (shows the corrected behaviour only) | `6c975b1` | **NOT-CAPTURED** | +| A16 | both compilers build | `0003`, `0004` | `1086ac9`, `6c975b1` | REPRODUCED | + +## A1 / A4 — the token shape + +`tok_append` at `1086ac9` (`0001`): + +```el +fn tok_append(tokens: [Any], kind: String, value: String) -> [Any] { + let tokens = native_list_append(tokens, kind) + native_list_append(tokens, value) +} +``` + +Two slots. `tok_line` does not appear anywhere in `lexer.el`, `parser.el`, +`codegen.el`, `codegen-js.el` or `compiler.el` — count 0 in all five. At +`6c975b1` a third slot is appended from `state_get("__lex_line")` and +`tok_line(tokens, pos)` is defined at `parser.el:41`. + +## A3 / A13 — the stride count, and the escapee + +`0015`, run against `1086ac9`, finds **16** sites that hardcode the stride: + +``` +codegen.el 3 sites (3633, 3807, 4018) +parser.el 12 sites (20, 21, 31, 38, 42, 49, 1233, 2161, 2204, 2256, 2422, 2564) +tests/native/test_compiler.el 1 site (21) +``` + +Compiler sources alone: **3 + 12 = 15** — exactly P1's figure. The sixteenth is +`tok_count` in `test_compiler.el`, which is precisely what defect 2 in the +record says: *"tok_count in test_compiler.el carried the stride too. I had +scoped the search to compiler sources and it had escaped into the tests."* + +So P1's 15 is the compiler-source count, it is correct as such, and the +independent count corroborates the recorded defect rather than contradicting the +prediction. After the change `parser.el` exposes three accessors +(`tok_kind:25`, `tok_line:41`, `tok_value:48`) with **187** call sites (`0014`). + +## A6 — the diagnostic, exactly as recorded + +Fixtures `fixtures/a.el`, `fixtures/b.el`, `fixtures/m.el`. At `6c975b1` +(`0009`, checker exit 1): + +``` +duplicate definition: 'helper' is defined 2 times — El has no namespacing, so imported modules share one global scope + …/mod16/a.el:1 + …/mod16/b.el:1 +``` + +Same shape as the record's + +``` + /tmp/modtest/a.el:1 + /tmp/modtest/b.el:1 +``` + +(the directory differs because the fixture was re-created in this re-run's +scratch space; `/tmp/modtest` from the original session no longer exists). Both +files are named, and each line number is the line **within that file** — which +is defect 4's repair: the combined-source line is no longer reported against a +file that has no such line. + +## A7 — the divergence, in full + +Peak RSS of the same compile (`elc-cli.el`), five runs each, `/usr/bin/time -l` +(`0007`): + +``` +pre run1 25018368 23.86 MiB 25.02 MB post run1 35536896 33.89 MiB 35.54 MB +pre run2 25001984 23.84 MiB 25.00 MB post run2 33980416 32.41 MiB 33.98 MB +pre run3 25067520 23.91 MiB 25.07 MB post run3 35061760 33.44 MiB 35.06 MB +pre run4 24887296 23.73 MiB 24.89 MB post run4 34947072 33.33 MiB 34.95 MB +pre run5 25067520 23.91 MiB 25.07 MB post run5 34848768 33.23 MiB 34.85 MB +``` + +**Both endpoint numbers in the record reproduce — but not in the same unit.** + +* `25.0` is the **pre** figure read in decimal MB (25.00–25.07 MB; the same + bytes are 23.84 MiB). +* `33.9` is the **post** figure read in **MiB** (33.89 MiB on run 1; the same + bytes are 35.54 MB). + +Computed in consistent units (`0008`): + +``` +pre mean 25008537 bytes = 23.84 MiB = 25.00 MB +post mean 34874982 bytes = 33.25 MiB = 34.87 MB +growth, consistent units = 39.45 % +claimed 25.0 -> 33.9 implies 35.60 % +``` + +So the true growth is **≈ +39.5 %**, not +36 %. The +36 % figure is the +arithmetic of one decimal-MB reading against one MiB reading. P6's prediction +("token memory grows") is REPRODUCED and the direction is unaffected; the +magnitude as printed is DIVERGED, and understates the cost. + +A note on what is being measured: `/usr/bin/time -l` reports process peak +resident set, not the token list in isolation. The record does not state the +method used for its own figures. Since both of its endpoints fall inside the +peak-RSS distribution measured here, peak RSS is the most likely original +instrument; but the +36 % is wrong under any single consistent unit, which is +what the divergence rests on. A stride change from 2 to 3 slots implies +50 % on +the token list alone, and +39.5 % on whole-process peak is consistent with the +token list being the dominant but not sole allocation. + +## Suite results at `6c975b1` + +``` +105 tests, 105 passed, 0 failed, 253 assertions (0011) +FIXPOINT-OK gen2 == gen3 (0010) +definitions: clean exit=0 (compiler's own source) (0013) + +arity_query.sh exit=0 assertions=5 +capability_query.sh exit=0 assertions=5 +definitions_query.sh exit=0 assertions=6 +prohibition_query.sh exit=0 assertions=4 +seam_binding.sh exit=0 assertions=7 +temporal_query.sh exit=0 assertions=6 +temporal_signatures.sh exit=0 assertions=4 +TOTAL: 37 (0012) +``` + +105/105 and 37/37 — both exact. + +## Provenance notes + +`0002` carries a DIRTY-TREE flag (`git show` measurement run from the shared main +checkout while other agents were committing to it). It was re-run from a clean +worktree as `0014`, and extended as `0015`. Cite the `-clean-tree` artifacts. +Everything else is from `/tmp/rerun-v1b-16-pre` (`1086ac9`) and +`/tmp/rerun-v1b-16-post` (`6c975b1`). + +The four defects the record lists (A12–A15) were found and fixed *within* the +development of `6c975b1`; no intermediate states were committed, so no artifact +of them exists and none was manufactured. A13 is graded REPRODUCED only because +the escapee it names is independently visible in the stride census at the parent +commit. diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.cmd new file mode 100644 index 0000000..5699349 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-17-pre/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; ./dist/platform/elc elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17pre.c && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17pre /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17pre.c $SRCS $LF && echo BUILD-OK diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.err new file mode 100644 index 0000000..5e6d69b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14448:1: warning: '/*' within block comment [-Wcomment] + 14448 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.out new file mode 100644 index 0000000..1c5c36b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.out @@ -0,0 +1 @@ +BUILD-OK diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.prov new file mode 100644 index 0000000..5976d77 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.prov @@ -0,0 +1,7 @@ +commit cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +tree clean +captured_utc 2026-08-17T17:40:35Z +exit 0 +ms 3911 +sha256_out 68ff1c8c79613a8870607bcba04539154b609870fef324c18636f75c43aeacd7 +sha256_err 15ee96301428d7dc3500fe5b6109a154a87a2f21119365e665575b3e634d662b diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0001-build-gen1-pre.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.cmd new file mode 100644 index 0000000..a4ef397 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-17-post/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; ./dist/platform/elc elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17post.c && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17post /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17post.c $SRCS $LF && echo BUILD-OK diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.err new file mode 100644 index 0000000..5e6d69b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14448:1: warning: '/*' within block comment [-Wcomment] + 14448 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.out new file mode 100644 index 0000000..1c5c36b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.out @@ -0,0 +1 @@ +BUILD-OK diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.prov new file mode 100644 index 0000000..d0585d9 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.prov @@ -0,0 +1,7 @@ +commit f1a7e224a77f020315a81f62d297b7ebff9b822d +tree clean +captured_utc 2026-08-17T17:40:39Z +exit 0 +ms 4000 +sha256_out 68ff1c8c79613a8870607bcba04539154b609870fef324c18636f75c43aeacd7 +sha256_err 15ee96301428d7dc3500fe5b6109a154a87a2f21119365e665575b3e634d662b diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0002-build-gen1-post.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.cmd new file mode 100644 index 0000000..7a87f7e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-17-pre/lang && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17pre /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/int_annotated_string.el diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.out new file mode 100644 index 0000000..23b60f3 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.out @@ -0,0 +1,12 @@ +#include +#include +#include "el_runtime.h" + + +int main(int _argc, char** _argv) { + el_runtime_init_args(_argc, _argv); + el_val_t x = EL_STR("hello"); + println(int_to_str((x + 1))); + return 0; +} + diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.prov new file mode 100644 index 0000000..e7644fa --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.prov @@ -0,0 +1,7 @@ +commit cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +tree clean +captured_utc 2026-08-17T17:40:45Z +exit 0 +ms 172 +sha256_out a66a5ce074fb9576873861b724de4ee63f4d3cbf87b6457ecc289507868a9299 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0003-pre-emit-c-int_annotated_string.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.cmd new file mode 100644 index 0000000..50aa115 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-17-pre/lang && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17pre /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/string_annotated_int.el diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.out new file mode 100644 index 0000000..8e3660f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.out @@ -0,0 +1,12 @@ +#include +#include +#include "el_runtime.h" + + +int main(int _argc, char** _argv) { + el_runtime_init_args(_argc, _argv); + el_val_t s = 42; + println(s); + return 0; +} + diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.prov new file mode 100644 index 0000000..bb3bcb0 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.prov @@ -0,0 +1,7 @@ +commit cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +tree clean +captured_utc 2026-08-17T17:40:45Z +exit 0 +ms 11 +sha256_out d1da9e3d17f33a78721c53970194778a5d0627a3f0a4539c1a5e86e3051ab96d +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0004-pre-emit-c-string_annotated_int.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.cmd new file mode 100644 index 0000000..9761475 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-17-pre/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/h1 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/h1.c $SRCS $LF && echo CC-CLEAN diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.err new file mode 100644 index 0000000..5e6d69b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14448:1: warning: '/*' within block comment [-Wcomment] + 14448 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.out new file mode 100644 index 0000000..0c50dfc --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.out @@ -0,0 +1 @@ +CC-CLEAN diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.prov new file mode 100644 index 0000000..00c1a53 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.prov @@ -0,0 +1,7 @@ +commit cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +tree clean +captured_utc 2026-08-17T17:40:57Z +exit 0 +ms 3307 +sha256_out a7751a7fc2e89c47be008f0ba3d5dd9ddca3f7dc76600ec80ebf177bc88f45c5 +sha256_err 15ee96301428d7dc3500fe5b6109a154a87a2f21119365e665575b3e634d662b diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0005-pre-cc-h1-clean.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.cmd new file mode 100644 index 0000000..60109bf --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-17-pre/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/h2 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/h2.c $SRCS $LF && echo CC-CLEAN diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.err new file mode 100644 index 0000000..5e6d69b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14448:1: warning: '/*' within block comment [-Wcomment] + 14448 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.out new file mode 100644 index 0000000..0c50dfc --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.out @@ -0,0 +1 @@ +CC-CLEAN diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.prov new file mode 100644 index 0000000..d5983cd --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.prov @@ -0,0 +1,7 @@ +commit cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +tree clean +captured_utc 2026-08-17T17:41:01Z +exit 0 +ms 3249 +sha256_out a7751a7fc2e89c47be008f0ba3d5dd9ddca3f7dc76600ec80ebf177bc88f45c5 +sha256_err 15ee96301428d7dc3500fe5b6109a154a87a2f21119365e665575b3e634d662b diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0006-pre-cc-h2-clean.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.cmd new file mode 100644 index 0000000..32aa91a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.cmd @@ -0,0 +1 @@ +/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/h1 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.out new file mode 100644 index 0000000..b68da02 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.out @@ -0,0 +1 @@ +4296429677 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.prov new file mode 100644 index 0000000..b23e4c9 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.prov @@ -0,0 +1,7 @@ +commit cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +tree clean +captured_utc 2026-08-17T17:41:01Z +exit 0 +ms 189 +sha256_out f707cf113f7be78429f2a8bdf817405eea5e888f791aaace6edee95d590a3c9d +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0007-pre-run-int-annotated-string.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.cmd new file mode 100644 index 0000000..5e0a4bf --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.cmd @@ -0,0 +1 @@ +/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/h2 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.out new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.prov new file mode 100644 index 0000000..df298ef --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.prov @@ -0,0 +1,7 @@ +commit cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +tree clean +captured_utc 2026-08-17T17:41:01Z +exit 139 +ms 165 +sha256_out e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.rc new file mode 100644 index 0000000..897bdc8 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0008-pre-run-string-annotated-int.rc @@ -0,0 +1 @@ +139 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.cmd new file mode 100644 index 0000000..b0b4f43 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.cmd @@ -0,0 +1 @@ +bash -c for i in $(seq 1 10); do /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/h1; done; echo; echo "claimed in the record: 4343631981" diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.out new file mode 100644 index 0000000..e65b24c --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.out @@ -0,0 +1,12 @@ +4308013165 +4369141869 +4300738669 +4308783213 +4302131309 +4378923117 +4339404909 +4310225005 +4310487149 +4307406957 + +claimed in the record: 4343631981 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.prov new file mode 100644 index 0000000..0f4248b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.prov @@ -0,0 +1,7 @@ +commit cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +tree clean +captured_utc 2026-08-17T17:41:14Z +exit 0 +ms 56 +sha256_out 9d1482bd0fcd6c396a0c4e48653a7992eb6353ba672d488946e310166801f730 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0009-pre-int-annotated-string-ten-runs.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.cmd new file mode 100644 index 0000000..f27d36c --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-17-post/lang && for f in int_annotated_string string_annotated_int; do echo "--- $f ---"; EL_RELATIONS_OUT=/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/rel17_$f.txt /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17post /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/$f.el > /dev/null 2>&1; ./tools/check/annotations.sh /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/rel17_$f.txt; echo "exit=$?"; done diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.out new file mode 100644 index 0000000..bfcfc41 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.out @@ -0,0 +1,6 @@ +--- int_annotated_string --- +type error in main: 'x' is declared Int but assigned a String literal — the annotation drives dispatch, so the value will be reinterpreted rather than rejected +exit=1 +--- string_annotated_int --- +type error in main: 's' is declared String but assigned a Int literal — the annotation drives dispatch, so the value will be reinterpreted rather than rejected +exit=1 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.prov new file mode 100644 index 0000000..55f0efc --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.prov @@ -0,0 +1,7 @@ +commit f1a7e224a77f020315a81f62d297b7ebff9b822d +tree clean +captured_utc 2026-08-17T17:41:23Z +exit 0 +ms 371 +sha256_out b2a75592f425a76b3d6ee0480e186c450157135282cf3c66de11c45cff176f5a +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0010-post-annotation-checker-catches-both.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.cmd new file mode 100644 index 0000000..db42f5e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.cmd @@ -0,0 +1 @@ +./tests/integration/annotation_query.sh /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17post diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.out new file mode 100644 index 0000000..c8db949 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.out @@ -0,0 +1,7 @@ + ok Int annotated on a String literal is caught + ok and names the variable + ok String annotated on an Int literal is caught + ok correct annotations are clean + ok the compiler's own source is clean — no false positives + + 5 assertions, 5 passed, 0 failed diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.prov new file mode 100644 index 0000000..48816ba --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.prov @@ -0,0 +1,7 @@ +commit f1a7e224a77f020315a81f62d297b7ebff9b822d +tree clean +captured_utc 2026-08-17T17:41:25Z +exit 0 +ms 1961 +sha256_out fd8354898660faa4fae68be1e10dfd30326d2cc60412fb42a87b6db3d1c8dd8f +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0011-post-annotation-query-harness.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.cmd new file mode 100644 index 0000000..739f820 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-17-post/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17post elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17p2.c 2>/dev/null && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17p2 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17p2.c $SRCS $LF && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17p2 elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17p3.c 2>/dev/null && cmp /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17p2.c /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17p3.c && echo FIXPOINT-OK || echo FIXPOINT-FAIL diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.err new file mode 100644 index 0000000..5e6d69b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14448:1: warning: '/*' within block comment [-Wcomment] + 14448 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.out new file mode 100644 index 0000000..35a016e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.out @@ -0,0 +1 @@ +FIXPOINT-OK diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.prov new file mode 100644 index 0000000..1076cac --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.prov @@ -0,0 +1,7 @@ +commit f1a7e224a77f020315a81f62d297b7ebff9b822d +tree clean +captured_utc 2026-08-17T17:41:42Z +exit 0 +ms 4170 +sha256_out 1b4889e0050c409ace27706da41238ec276f0ac02d0e8f9ca07d5e2d1145aa8e +sha256_err 15ee96301428d7dc3500fe5b6109a154a87a2f21119365e665575b3e634d662b diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0012-post-fixpoint.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.cmd new file mode 100644 index 0000000..6a0db5c --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-17-post/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17p2 --test tests/native/test_compiler.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t17.c 2>/dev/null && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t17 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t17.c $SRCS $LF && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t17 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.err new file mode 100644 index 0000000..5e6d69b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14448:1: warning: '/*' within block comment [-Wcomment] + 14448 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.out new file mode 100644 index 0000000..e1c7005 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.out @@ -0,0 +1,107 @@ +ok lex-empty (0.060ms) +ok lex-whitespace-stripped (0.002ms) +ok lex-comment-stripped (0.001ms) +ok lex-int-literals (0.014ms) +ok lex-float-literals (0.001ms) +ok lex-string-literals (0.002ms) +ok lex-string-escape-newline (0.001ms) +ok lex-string-escape-tab (0.001ms) +ok lex-string-escape-backslash (0.002ms) +ok lex-bool-literals (0.002ms) +ok lex-identifier (0.002ms) +ok lex-keywords (0.003ms) +ok lex-more-keywords (0.002ms) +ok lex-keyword-values (0.001ms) +ok lex-arithmetic-operators (0.001ms) +ok lex-comparison-operators (0.001ms) +ok lex-logical-operators (0.001ms) +ok lex-arrow-tokens (0.002ms) +ok lex-delimiters (0.002ms) +ok lex-double-colon (0.000ms) +ok lex-dot-dot (0.000ms) +ok lex-pipe-operators (0.012ms) +ok lex-at-and-question (0.001ms) +ok lex-eof-always-last (0.002ms) +ok lex-string-with-spaces (0.000ms) +ok lex-multiline-source (0.003ms) +ok lex-flat-stride-3-layout (0.000ms) +ok lexer-tracks-line-numbers (0.002ms) +ok parse-let-stmt (0.032ms) +ok parse-fn-decl (0.010ms) +ok parse-fn-params (0.005ms) +ok parse-return-stmt (0.003ms) +ok parse-if-stmt (0.007ms) +ok parse-if-else (0.007ms) +ok parse-while-stmt (0.010ms) +ok parse-import-stmt (0.002ms) +ok parse-extern-fn (0.003ms) +ok parse-let-int-value (0.002ms) +ok parse-let-string-value (0.002ms) +ok parse-let-bool-value (0.008ms) +ok parse-binop-expr (0.003ms) +ok parse-call-expr (0.004ms) +ok parse-multiple-fns (0.005ms) +ok parse-assign-stmt (0.003ms) +ok parse-for-stmt (0.006ms) +ok parse-unary-not (0.004ms) +ok parse-unary-neg (0.003ms) +ok parse-array-literal (0.006ms) +ok parse-empty-array (0.003ms) +ok parse-index-expr (0.005ms) +ok codegen-includes (0.487ms) +ok codegen-int-main (0.099ms) +ok codegen-runtime-init (0.080ms) +ok codegen-void-function-signature (0.097ms) +ok codegen-function-with-params (0.090ms) +ok codegen-int-literal (0.077ms) +ok codegen-string-literal (0.111ms) +ok codegen-if-statement (0.086ms) +ok codegen-if-else (0.084ms) +ok codegen-while-loop (0.081ms) +ok codegen-let-binding (0.101ms) +ok codegen-function-call (0.082ms) +ok codegen-string-concat (0.071ms) +ok codegen-int-arithmetic (0.065ms) +ok codegen-comparison (0.059ms) +ok codegen-string-equality (0.062ms) +ok codegen-logical-and (0.069ms) +ok codegen-logical-or (0.063ms) +ok codegen-unary-not (0.097ms) +ok codegen-string-escape-in-c (0.074ms) +ok codegen-many-functions (0.089ms) +ok codegen-deep-expression (0.074ms) +ok codegen-forward-declarations (0.061ms) +ok codegen-for-loop (0.171ms) +ok codegen-extern-fn (0.066ms) +ok codegen-nested-calls (0.060ms) +ok compiler-minimal-program (0.057ms) +ok compiler-pure-library (0.110ms) +ok compiler-multiple-fns-with-main (0.227ms) +ok compiler-let-in-main (0.150ms) +ok compiler-string-concat-chain (0.133ms) +ok compiler-negative-literal (0.073ms) +ok compiler-stdint-include (0.076ms) +ok decorator-undecorated-fn-has-no-beat (0.079ms) +ok decorator-authenticate-compiles-to-nothing (0.115ms) +ok declared-construct-name-unknown-to-codegen (0.073ms) +ok undeclared-construct-still-injects-nothing (0.058ms) +ok undeclared-guard-emits-nothing (0.056ms) +ok seam-indirection-emitted-on-every-fn (0.086ms) +ok seam-emitted-without-any-decorator (0.115ms) +ok seam-replaces-inlined-entry-injection (0.081ms) +ok seam-entry-is-refusable (0.067ms) +ok seam-is-emitted-for-undecorated-fns (0.066ms) +ok every-fn-gets-a-body-helper-and-wrapper (0.121ms) +ok exit-crossing-goes-through-the-seam (0.073ms) +ok early-returns-route-through-the-exit-seam (0.082ms) +ok every-fn-gets-a-closure (0.079ms) +ok zero-param-fn-emits-valid-c (0.079ms) +ok compiler-no-longer-emits-prohibition-errors (0.087ms) +ok int-returning-builtin-drives-arithmetic-dispatch (0.089ms) +ok string-plus-string-still-concatenates (0.068ms) +ok freed-identifiers-compile-as-identifiers (0.120ms) +ok test-keyword-is-still-reserved (0.081ms) +ok instant-plus-bare-int-is-refused (0.082ms) +ok instant-plus-unit-suffix-is-allowed (0.076ms) + +105 tests, 105 passed, 0 failed, 253 assertions in 5.469ms diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.prov new file mode 100644 index 0000000..9334545 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.prov @@ -0,0 +1,7 @@ +commit f1a7e224a77f020315a81f62d297b7ebff9b822d +tree clean +captured_utc 2026-08-17T17:41:46Z +exit 0 +ms 4199 +sha256_out ac5e94f50ee400866b6acaf6802fc4ae07153316f92014887ba7a90a13dd3d01 +sha256_err 15ee96301428d7dc3500fe5b6109a154a87a2f21119365e665575b3e634d662b diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0013-post-native-suite.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.cmd new file mode 100644 index 0000000..28a0fd6 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-17-post/lang && printf "fn main() {\n let x: Int = str_upper(\"abc\")\n println(int_to_str(x))\n}\n" > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/nonlit.el; EL_RELATIONS_OUT=/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/rel17nl.txt /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17p2 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/nonlit.el > /dev/null 2>&1; ./tools/check/annotations.sh /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/rel17nl.txt; echo "exit=$? (the record states this gap: only literals are checked)" diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.out new file mode 100644 index 0000000..00c9bac --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.out @@ -0,0 +1,2 @@ +annotations: clean +exit=0 (the record states this gap: only literals are checked) diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.prov new file mode 100644 index 0000000..9c73054 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.prov @@ -0,0 +1,7 @@ +commit f1a7e224a77f020315a81f62d297b7ebff9b822d +tree clean +captured_utc 2026-08-17T17:41:46Z +exit 0 +ms 21 +sha256_out ff06376ea9773a8398d656380d7924ff274a8105a1298ec7635c11c5ede5798f +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0014-post-incomplete-only-literals.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.cmd new file mode 100644 index 0000000..9c4c7e8 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el && echo "branches named experiment/annotation-checking:"; git branch -a --list "*annotation-checking*" | wc -l; echo "is f1a7e224 an ancestor of iteration-2?"; git merge-base --is-ancestor f1a7e224 iteration-2 && echo YES-MERGED || echo NO; echo "merge commit:"; git log --all --oneline --merges --grep="land annotation checking" diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.out new file mode 100644 index 0000000..44082b5 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.out @@ -0,0 +1,6 @@ +branches named experiment/annotation-checking: + 0 +is f1a7e224 an ancestor of iteration-2? +YES-MERGED +merge commit: +923f6a4b land annotation checking: the declared type is finally verified diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.prov new file mode 100644 index 0000000..2d43ebb --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.prov @@ -0,0 +1,7 @@ +commit f1a7e224a77f020315a81f62d297b7ebff9b822d +tree clean +captured_utc 2026-08-17T17:41:46Z +exit 0 +ms 37 +sha256_out 4ddf9189bdb9cd4e16d39a1efbe3d9853aebeae4abbe65d4caa2b2043db9fc36 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0015-branch-status-not-merged-claim.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.cmd new file mode 100644 index 0000000..f23e48d --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.cmd @@ -0,0 +1 @@ +/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/head_int_annotated_string diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.out new file mode 100644 index 0000000..8a73523 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.out @@ -0,0 +1 @@ +4296710433 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.prov new file mode 100644 index 0000000..7211541 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:46:59Z +exit 0 +ms 174 +sha256_out a727c8fc554ed3c6ccc19162ce61088e50bdce6b1b972227a1b7099185ed4cb8 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0016-head-run-int-annotated-string-TODAY.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.cmd b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.cmd new file mode 100644 index 0000000..1ee32c6 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.cmd @@ -0,0 +1 @@ +/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/head_string_annotated_int diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.err b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.out b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.out new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.prov b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.prov new file mode 100644 index 0000000..91e40df --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:47:00Z +exit 139 +ms 328 +sha256_out e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.rc b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.rc new file mode 100644 index 0000000..897bdc8 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/0017-head-run-string-annotated-int-TODAY.rc @@ -0,0 +1 @@ +139 diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/CLAIMS.md b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/CLAIMS.md new file mode 100644 index 0000000..129303e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/CLAIMS.md @@ -0,0 +1,151 @@ +# CLAIMS — cycle 17, annotations are never checked + +Source doc: `docs/v1/experiments/cycles/17-annotations-are-never-checked.md` + +## Pinned commits + +| role | sha | subject | +|---|---|---| +| parent / before-state | `cb7289f06510c002b6ab7c5ca8c2bd182d8216bc` | thread provenance end to end | +| experiment (system under test) | `f1a7e224a77f020315a81f62d297b7ebff9b822d` | verify the annotation against what it annotates | +| land (merge) | `923f6a4bedc3b26b2a89b699b5623323d3d0c9f0` | land annotation checking: the declared type is finally verified | +| current HEAD at re-run time | `a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7` | instrument build log | + +## Verdicts + +| # | claim | artifact | commit | verdict | +|---|---|---|---|---| +| A0 | **Status: verified on `experiment/annotation-checking`, not merged** | `0015-branch-status-not-merged-claim.out` | — | **DIVERGED** | +| A1 | P1: `let x: Int = "hello"` compiles clean | `0003`, `0005-pre-cc-h1-clean.out` | `cb7289f` | REPRODUCED | +| A2 | P2: `let s: String = 42` compiles clean | `0004`, `0006-pre-cc-h2-clean.out` | `cb7289f` | REPRODUCED | +| A3 | `let x: Int = "hello"; x + 1` → **4343631981**, a string POINTER used as an integer | `0007`, `0009-pre-int-annotated-string-ten-runs.out` | `cb7289f` | REPRODUCED as a class; **NOT-REPRODUCIBLE** as a literal (see below) | +| A4 | `let s: String = 42; println(s)` → **nothing**, address 42 dereferenced as a string | `0008-pre-run-string-annotated-int.out` | `cb7289f` | REPRODUCED, and **the record omits the exit code** | +| A5 | P3: the annotation drives dispatch, unverified | `0003`, `0004` | `cb7289f` | REPRODUCED | +| A6 | P5: checking literal-vs-annotation catches both | `0010-post-annotation-checker-catches-both.out` | `f1a7e224` | REPRODUCED | +| A7 | P6: zero false positives across the compiler's own source | `0011-post-annotation-query-harness.out` | `f1a7e224` | REPRODUCED | +| A8 | "Verified: 6/6" | `0011` (harness carries **5** assertions) | `f1a7e224` | REPRODUCED as predictions P1–P6; the harness is 5/5 | +| A9 | fixpoint ok | `0012-post-fixpoint.out` | `f1a7e224` | REPRODUCED | +| A10 | 105/105 native | `0013-post-native-suite.out` | `f1a7e224` | REPRODUCED (exact) | +| A11 | the emitter only **records**; `tools/check/annotations.sh` decides | `0010` | `f1a7e224` | REPRODUCED | +| A12 | Incomplete, stated not hidden: only literals — `let x: Int = some_string_fn()` still passes | `0014-post-incomplete-only-literals.out` | `f1a7e224` | REPRODUCED | +| A13 | P4: same root cause as all three bugs found that day | — | — | **NOT-CAPTURED** (interpretive) | +| A14 | **the defects at current HEAD** | `0016`, `0017-head-run-string-annotated-int-TODAY.out` | `a0cc95e3` | **BOTH STILL LIVE** | + +## A0 — the status header is wrong: it was merged + +``` +branches named experiment/annotation-checking: 0 +is f1a7e224 an ancestor of iteration-2? YES-MERGED +merge commit: 923f6a4b land annotation checking: the declared type is finally verified +``` + +The doc opens **"Status: verified on `experiment/annotation-checking`, not +merged."** The work is on `iteration-2` and on `main`, landed by merge commit +`923f6a4b`, and no branch of that name exists any more. The status line is stale +and the record should not be read as describing unmerged work. + +## A3 / A4 — the two hazards, at `cb7289f` + +Fixtures `fixtures/int_annotated_string.el` and +`fixtures/string_annotated_int.el`. Emitted C (`0003`, `0004`): + +```c +el_val_t x = EL_STR("hello"); /* declared Int */ +println(int_to_str((x + 1))); + +el_val_t s = 42; /* declared String */ +println(s); +``` + +`cc` reports **0 errors** on both (`0005`, `0006`). Then: + +**`let x: Int = "hello"; x + 1`** — exit **0**, prints a raw address (`0007`): + +``` +4296429677 +``` + +Ten consecutive runs of the same binary (`0009`): + +``` +4308013165 4369141869 4300738669 4308783213 4302131309 +4378923117 4339404909 4310225005 4310487149 4307406957 + +claimed in the record: 4343631981 +``` + +The value is a heap address and is different on every run. The record's +`4343631981` cannot be reproduced as a literal and never could be — but it falls +inside the observed distribution (4.30–4.38 × 10⁹), so it is a valid single +sample rather than a wrong number. The claim that matters — **a raw memory +address leaks into program output** — reproduces on every run. + +**`let s: String = 42; println(s)`** — stdout **0 bytes**, and exit **139** +(`0008`). The record says "→ nothing". Nothing was printed, correctly; but the +process died on SIGSEGV and the record does not say so. Address 42 was +dereferenced as a `char*`, exactly as the analysis states — the missing detail +is that the dereference faulted rather than returning garbage. This is the same +omission as cycle 13's, and the same shape as measurement defect 4 in cycle 19: +an exit code that was never read. + +## A14 — the standing finding: both defects are live at HEAD + +Re-run today against the compiler built from `a0cc95e3`: + +| program | emitted | stdout | exit | +|---|---|---|---| +| `let x: Int = "hello"; x + 1` | unchanged | `4296710433` | **0** (`0016`) | +| `let s: String = 42; println(s)` | unchanged | *(empty)* | **139** (`0017`) | + +The checker landed; the compiler did not change. `tools/check/annotations.sh` is +a post-hoc query over emitted relations — nothing in the emission path refuses +the program, so a build that does not run the checker still produces the +reinterpreting binary. **The arbitrary-read primitive described in this cycle is +unmitigated in the compiler at HEAD.** That is the most consequential standing +result in this set of nine. + +## A6 / A11 / A12 — the checker at `f1a7e224` + +`0010`: + +``` +--- int_annotated_string --- +type error in main: 'x' is declared Int but assigned a String literal — the annotation drives dispatch, so the value will be reinterpreted rather than rejected +exit=1 +--- string_annotated_int --- +type error in main: 's' is declared String but assigned a Int literal — the annotation drives dispatch, so the value will be reinterpreted rather than rejected +exit=1 +``` + +`0011` — the harness, 5 assertions, including the false-positive control over +the compiler's own source: + +``` + ok Int annotated on a String literal is caught + ok and names the variable + ok String annotated on an Int literal is caught + ok correct annotations are clean + ok the compiler's own source is clean — no false positives + + 5 assertions, 5 passed, 0 failed +``` + +`0014` — the stated gap, confirmed: `let x: Int = str_upper("abc")` is a +non-literal initialiser and the checker reports `annotations: clean`, exit 0. +The incompleteness is exactly as declared. + +## Note on "6/6" + +The doc's `Results — 6/6` refers to predictions P1–P6, all of which are +individually graded above. The committed harness +(`tests/integration/annotation_query.sh`) carries **5** assertions and reports +`5 assertions, 5 passed, 0 failed`. There is no 6-assertion harness; the two +numbers count different things and neither is wrong. + +## Provenance notes + +All artifacts from dedicated worktrees `/tmp/rerun-v1b-17-pre` (`cb7289f`), +`/tmp/rerun-v1b-17-post` (`f1a7e224`) and `/tmp/rerun-v1b-head` (`a0cc95e3`), +`capture.sh` invoked by absolute path from inside each. **No DIRTY-TREE flags in +this cycle.** Exit codes for `0007`, `0008`, `0016` and `0017` were captured +directly by `capture.sh`, never through a pipe. diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/MANIFEST.tsv b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/MANIFEST.tsv new file mode 100644 index 0000000..f6d9395 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/MANIFEST.tsv @@ -0,0 +1,18 @@ +sha256 bytes exit ms commit tree utc artifact command +68ff1c8c79613a8870607bcba04539154b609870fef324c18636f75c43aeacd7 9 0 3911 cb7289f06510 clean 2026-08-17T17:40:35Z 0001-build-gen1-pre.out bash -c cd /tmp/rerun-v1b-17-pre/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; ./dist/platform/elc elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17pre.c && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17pre /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17pre.c $SRCS $LF && echo BUILD-OK +68ff1c8c79613a8870607bcba04539154b609870fef324c18636f75c43aeacd7 9 0 4000 f1a7e224a77f clean 2026-08-17T17:40:39Z 0002-build-gen1-post.out bash -c cd /tmp/rerun-v1b-17-post/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; ./dist/platform/elc elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17post.c && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17post /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17post.c $SRCS $LF && echo BUILD-OK +a66a5ce074fb9576873861b724de4ee63f4d3cbf87b6457ecc289507868a9299 219 0 172 cb7289f06510 clean 2026-08-17T17:40:45Z 0003-pre-emit-c-int_annotated_string.out bash -c cd /tmp/rerun-v1b-17-pre/lang && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17pre /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/int_annotated_string.el +d1da9e3d17f33a78721c53970194778a5d0627a3f0a4539c1a5e86e3051ab96d 188 0 11 cb7289f06510 clean 2026-08-17T17:40:45Z 0004-pre-emit-c-string_annotated_int.out bash -c cd /tmp/rerun-v1b-17-pre/lang && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17pre /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/string_annotated_int.el +a7751a7fc2e89c47be008f0ba3d5dd9ddca3f7dc76600ec80ebf177bc88f45c5 9 0 3307 cb7289f06510 clean 2026-08-17T17:40:57Z 0005-pre-cc-h1-clean.out bash -c cd /tmp/rerun-v1b-17-pre/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/h1 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/h1.c $SRCS $LF && echo CC-CLEAN +a7751a7fc2e89c47be008f0ba3d5dd9ddca3f7dc76600ec80ebf177bc88f45c5 9 0 3249 cb7289f06510 clean 2026-08-17T17:41:01Z 0006-pre-cc-h2-clean.out bash -c cd /tmp/rerun-v1b-17-pre/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/h2 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/h2.c $SRCS $LF && echo CC-CLEAN +f707cf113f7be78429f2a8bdf817405eea5e888f791aaace6edee95d590a3c9d 11 0 189 cb7289f06510 clean 2026-08-17T17:41:01Z 0007-pre-run-int-annotated-string.out /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/h1 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 139 165 cb7289f06510 clean 2026-08-17T17:41:01Z 0008-pre-run-string-annotated-int.out /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/h2 +9d1482bd0fcd6c396a0c4e48653a7992eb6353ba672d488946e310166801f730 145 0 56 cb7289f06510 clean 2026-08-17T17:41:14Z 0009-pre-int-annotated-string-ten-runs.out bash -c for i in $(seq 1 10); do /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/h1; done; echo; echo "claimed in the record: 4343631981" +b2a75592f425a76b3d6ee0480e186c450157135282cf3c66de11c45cff176f5a 396 0 371 f1a7e224a77f clean 2026-08-17T17:41:23Z 0010-post-annotation-checker-catches-both.out bash -c cd /tmp/rerun-v1b-17-post/lang && for f in int_annotated_string string_annotated_int; do echo "--- $f ---"; EL_RELATIONS_OUT=/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/rel17_$f.txt /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17post /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/$f.el > /dev/null 2>&1; ./tools/check/annotations.sh /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/rel17_$f.txt; echo "exit=$?"; done +fd8354898660faa4fae68be1e10dfd30326d2cc60412fb42a87b6db3d1c8dd8f 276 0 1961 f1a7e224a77f clean 2026-08-17T17:41:25Z 0011-post-annotation-query-harness.out ./tests/integration/annotation_query.sh /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17post +1b4889e0050c409ace27706da41238ec276f0ac02d0e8f9ca07d5e2d1145aa8e 12 0 4170 f1a7e224a77f clean 2026-08-17T17:41:42Z 0012-post-fixpoint.out bash -c cd /tmp/rerun-v1b-17-post/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17post elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17p2.c 2>/dev/null && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17p2 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17p2.c $SRCS $LF && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17p2 elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17p3.c 2>/dev/null && cmp /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17p2.c /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g17p3.c && echo FIXPOINT-OK || echo FIXPOINT-FAIL +ac5e94f50ee400866b6acaf6802fc4ae07153316f92014887ba7a90a13dd3d01 4329 0 4199 f1a7e224a77f clean 2026-08-17T17:41:46Z 0013-post-native-suite.out bash -c cd /tmp/rerun-v1b-17-post/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17p2 --test tests/native/test_compiler.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t17.c 2>/dev/null && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t17 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t17.c $SRCS $LF && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t17 +ff06376ea9773a8398d656380d7924ff274a8105a1298ec7635c11c5ede5798f 82 0 21 f1a7e224a77f clean 2026-08-17T17:41:46Z 0014-post-incomplete-only-literals.out bash -c cd /tmp/rerun-v1b-17-post/lang && printf "fn main() {\n let x: Int = str_upper(\"abc\")\n println(int_to_str(x))\n}\n" > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/nonlit.el; EL_RELATIONS_OUT=/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/rel17nl.txt /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17p2 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/nonlit.el > /dev/null 2>&1; ./tools/check/annotations.sh /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/rel17nl.txt; echo "exit=$? (the record states this gap: only literals are checked)" +4ddf9189bdb9cd4e16d39a1efbe3d9853aebeae4abbe65d4caa2b2043db9fc36 194 0 37 f1a7e224a77f clean 2026-08-17T17:41:46Z 0015-branch-status-not-merged-claim.out bash -c cd /Users/will/Development/neuron-technologies/foundation/el && echo "branches named experiment/annotation-checking:"; git branch -a --list "*annotation-checking*" | wc -l; echo "is f1a7e224 an ancestor of iteration-2?"; git merge-base --is-ancestor f1a7e224 iteration-2 && echo YES-MERGED || echo NO; echo "merge commit:"; git log --all --oneline --merges --grep="land annotation checking" +a727c8fc554ed3c6ccc19162ce61088e50bdce6b1b972227a1b7099185ed4cb8 11 0 174 a0cc95e3db7b clean 2026-08-17T17:46:59Z 0016-head-run-int-annotated-string-TODAY.out /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/head_int_annotated_string +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 139 328 a0cc95e3db7b clean 2026-08-17T17:47:00Z 0017-head-run-string-annotated-int-TODAY.out /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/head_string_annotated_int diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/RUN.env b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/RUN.env new file mode 100644 index 0000000..c16ddad --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/RUN.env @@ -0,0 +1,6 @@ +captured_utc 2026-08-17T17:40:31Z +git_sha cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +git_dirty no +host Wills-MacBook-Pro +uname Darwin Wills-MacBook-Pro 25.5.0 Darwin Kernel Version 25.5.0: Tue Jun 9 22:28:34 PDT 2026; root:xnu-12377.121.10~1/RELEASE_ARM64_T6041 arm64 +cc Apple clang version 21.0.0 (clang-2100.1.1.101) diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/fixtures/int_annotated_string.el b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/fixtures/int_annotated_string.el new file mode 100644 index 0000000..38f2808 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/fixtures/int_annotated_string.el @@ -0,0 +1,4 @@ +fn main() { + let x: Int = "hello" + println(int_to_str(x + 1)) +} diff --git a/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/fixtures/string_annotated_int.el b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/fixtures/string_annotated_int.el new file mode 100644 index 0000000..e5f7a8a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/fixtures/string_annotated_int.el @@ -0,0 +1,4 @@ +fn main() { + let s: String = 42 + println(s) +} diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.cmd b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.cmd new file mode 100644 index 0000000..59f7778 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-18/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; ./dist/platform/elc elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g18.c && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc18 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g18.c $SRCS $LF && echo BUILD-OK diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.err b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.err new file mode 100644 index 0000000..d66be18 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14468:1: warning: '/*' within block comment [-Wcomment] + 14468 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.out b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.out new file mode 100644 index 0000000..1c5c36b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.out @@ -0,0 +1 @@ +BUILD-OK diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.prov b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.prov new file mode 100644 index 0000000..0f3c3c6 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.prov @@ -0,0 +1,7 @@ +commit 511db25230c69b9484ece39ed4131d3920b16596 +tree clean +captured_utc 2026-08-17T17:45:32Z +exit 0 +ms 3972 +sha256_out 68ff1c8c79613a8870607bcba04539154b609870fef324c18636f75c43aeacd7 +sha256_err 24f9504907bf0d11286da21911398ea3eb01e7423d78c3f8174b0051346bd3d7 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.rc b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0001-build-gen1-511db252.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.cmd b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.cmd new file mode 100644 index 0000000..bb56edc --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.cmd @@ -0,0 +1 @@ +./tests/integration/async_future.sh /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc18 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.err b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.out b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.out new file mode 100644 index 0000000..da06c59 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.out @@ -0,0 +1,8 @@ + ok unbound: no construct, synchronous, correct result + ok unbound: el_await on a non-future passes through, no crash + ok bound: does not crash + ok bound: the awaited result is correct + ok bound: the caller continues BEFORE the body finishes + ok bound: the wrap returns in under 10ms while the body takes 50ms + + 6 assertions, 6 passed, 0 failed diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.prov b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.prov new file mode 100644 index 0000000..b4f9137 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.prov @@ -0,0 +1,7 @@ +commit 511db25230c69b9484ece39ed4131d3920b16596 +tree clean +captured_utc 2026-08-17T17:45:36Z +exit 0 +ms 3868 +sha256_out ac52afda852cfe4d226b7fbe46cedbb3bc22be2b592af815e88c41a2f9d23b5d +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.rc b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0002-async-future-harness-6-assertions.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.cmd b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.cmd new file mode 100644 index 0000000..38a0746 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-18/lang/runtime && echo "--- EL_MAGIC_* definitions in el_runtime.c/h ---"; grep -hoE "#define EL_MAGIC_[A-Z_]+" el_runtime.c el_runtime.h | sort -u; echo; printf "count: "; grep -hoE "#define EL_MAGIC_[A-Z_]+" el_runtime.c el_runtime.h | sort -u | wc -l diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.err b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.out b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.out new file mode 100644 index 0000000..538b5a7 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.out @@ -0,0 +1,8 @@ +--- EL_MAGIC_* definitions in el_runtime.c/h --- +#define EL_MAGIC_BIN +#define EL_MAGIC_GEOM +#define EL_MAGIC_LIST +#define EL_MAGIC_MAP +#define EL_MAGIC_MFLD + +count: 5 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.prov b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.prov new file mode 100644 index 0000000..43de4d8 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.prov @@ -0,0 +1,7 @@ +commit 511db25230c69b9484ece39ed4131d3920b16596 +tree clean +captured_utc 2026-08-17T17:45:45Z +exit 0 +ms 21 +sha256_out 2090b2584a902c6b4c584ef52388a225740bdad95ce894ff1306e2946de34711 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.rc b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0003-P1-five-magic-tags.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.cmd b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.cmd new file mode 100644 index 0000000..a5fed3f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.cmd @@ -0,0 +1 @@ +bash -c cd /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/a18 && ./p diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.err b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.out b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.out new file mode 100644 index 0000000..eac1966 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.out @@ -0,0 +1,2 @@ +CALLER_CONTINUED +RESULT 42 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.prov b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.prov new file mode 100644 index 0000000..a66f47f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.prov @@ -0,0 +1,7 @@ +commit 511db25230c69b9484ece39ed4131d3920b16596 +tree clean +captured_utc 2026-08-17T17:46:04Z +exit 0 +ms 151 +sha256_out 6b1aa833faeb5a1e2ab104d1813e5eeab770c59ad6345582be8517c7f42e8d97 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.rc b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0004-P4-zero-compiler-changes-unbound-run.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.cmd b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.cmd new file mode 100644 index 0000000..abb6b9a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.cmd @@ -0,0 +1 @@ +bash -c cd /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/a18 && EL_CONSTRUCTS=c.txt ./p diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.err b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.out b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.out new file mode 100644 index 0000000..1edad6b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.out @@ -0,0 +1,5 @@ +WRAP_RETURNED 12 +CALLER_CONTINUED +BODY_START 20 +BODY_END 55034 +RESULT 42 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.prov b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.prov new file mode 100644 index 0000000..b96fffa --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.prov @@ -0,0 +1,7 @@ +commit 511db25230c69b9484ece39ed4131d3920b16596 +tree clean +captured_utc 2026-08-17T17:46:04Z +exit 0 +ms 68 +sha256_out 5c175965d04514c1ec1d4d7c8a245449f54eefc7a490ccb0e7a892e404f4aae7 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.rc b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/0005-P2P3-bound-run-interleaving.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/CLAIMS.md b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/CLAIMS.md new file mode 100644 index 0000000..3a64f92 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/CLAIMS.md @@ -0,0 +1,135 @@ +# CLAIMS — cycle 18, async — half expressible, and the cycle that was dogma + +Source doc: `docs/v1/experiments/cycles/18-async-half-expressible.md` + +This cycle is unusual: the doc already carries a chain-of-custody note stating +that its original artifacts were destroyed and that it was **rerun, not +reconstructed**. The verdicts below respect that. Where the original artifact is +gone the verdict is NOT-CAPTURED, and the replication is graded separately. + +## Pinned commits + +| role | sha | subject | +|---|---|---| +| replication landed (system under test) | `511db25230c69b9484ece39ed4131d3920b16596` | rerun cycle 18 rather than reconstruct it | +| original measurement | — | **no commit.** The C stub lived in `/tmp` and was destroyed with the session worktrees | + +`511db252` is the only commit that has ever contained +`lang/tests/integration/async_future.sh` or +`lang/tests/integration/fixtures/future.c`. + +## Verdicts + +| # | claim | artifact | commit | verdict | +|---|---|---|---|---| +| A1 | the first attempt was dogma: `pthread_join` immediately after `pthread_create`, and the test printed the word `DEFERRED` itself | — | — | **NOT-CAPTURED** (artifact destroyed; the doc says so) | +| A2 | second run, 4/4: `[18 us] wrap RETURNS`, `[29 us] body START`, `caller continues, got 0`, `[50176 us] body END (computed 42)` | — | — | **NOT-CAPTURED** (artifact destroyed; the doc says so) | +| A3 | the caller got **0, not 42** on the second run | — | — | **NOT-CAPTURED** | +| A4 | the fixture now lives at `lang/tests/integration/fixtures/future.c` and the harness at `lang/tests/integration/async_future.sh` | `0002`, repo tree at `511db252` | `511db252` | REPRODUCED | +| A5 | **6/6** on the replication harness | `0002-async-future-harness-6-assertions.out` | `511db252` | REPRODUCED (exact) | +| A6 | follow-on P1: `el_val_t` already carries tagged heap objects — **5 magic tags exist** | `0003-P1-five-magic-tags.out` | `511db252` | REPRODUCED (exact) | +| A7 | follow-on P2/P3: a future is one more; the caller awaits and gets **42** | `0005-P2P3-bound-run-interleaving.out` | `511db252` | REPRODUCED | +| A8 | follow-on P4: **ZERO compiler changes** — runtime C plus one binding | `0004`, `0005` | `511db252` | REPRODUCED | +| A9 | P1/P2 of the second run: the caller proceeds while the body runs; interleaving is observable in timestamps | `0005` | `511db252` | REPRODUCED | +| A10 | follow-on P5: the unbound path still works — **FALSE, SIGSEGV** | — | — | **NOT-CAPTURED** (see note) | +| A11 | the compiler builds at `511db252` | `0001-build-gen1-511db252.out` | `511db252` | REPRODUCED | + +## A5 — the replication, 6/6 + +`0002`, harness run against the compiler built from `511db252`: + +``` + ok unbound: no construct, synchronous, correct result + ok unbound: el_await on a non-future passes through, no crash + ok bound: does not crash + ok bound: the awaited result is correct + ok bound: the caller continues BEFORE the body finishes + ok bound: the wrap returns in under 10ms while the body takes 50ms + + 6 assertions, 6 passed, 0 failed +``` + +Exit 0. The harness's own header states it is a replication and not a blind +test — the outcomes were known before it was written — and that grading is +carried forward here unchanged. + +## A8 / A9 — zero compiler changes, demonstrated + +The same El source (`fixtures/probe.el`), compiled by the stock `elc`, run twice +against the same binary. + +Unbound — no construct file, synchronous (`0004`): + +``` +CALLER_CONTINUED +RESULT 42 +``` + +Bound — `EL_CONSTRUCTS=c.txt` containing `work async wrap defer` (`0005`): + +``` +WRAP_RETURNED 12 +CALLER_CONTINUED +BODY_START 20 +BODY_END 55034 +RESULT 42 +``` + +Same compiler, same emitted C, same binary; deferral appears only because a +construct was bound after the build. The wrap returns at **12 µs** while the +body finishes at **55 034 µs**, and `CALLER_CONTINUED` precedes `BODY_END` — +the caller demonstrably proceeds while the body runs. The record's own numbers +were 18 µs / 29 µs / 50 176 µs; the shape matches and the magnitudes are +consistent (the body sleeps 50 ms by construction). + +`RESULT 42` is the follow-on P3: with a future as one more tagged heap object, +the caller awaits and gets the real value. + +## A6 — five tags, and a future would be the sixth + +`0003`, over `el_runtime.c` and `el_runtime.h` at `511db252`: + +``` +#define EL_MAGIC_BIN +#define EL_MAGIC_GEOM +#define EL_MAGIC_LIST +#define EL_MAGIC_MAP +#define EL_MAGIC_MFLD + +count: 5 +``` + +and `fixtures/future.c` adds `#define EL_MAGIC_FUT 0xE1F07000u` in the fixture, +not in the compiler. + +## A10 — why the SIGSEGV is NOT-CAPTURED + +Follow-on P5 records that the first `el_await` read `->magic` off an unvalidated +slot and segfaulted on the unbound path. That version was never committed. The +committed `future.c` carries the repair and a comment naming the defect: + +```c +el_val_t el_await(el_val_t h){ + if (h < 0x10000) return h; /* small ints / low addresses */ + if (h & 0x7) return h; /* malloc returns 8-aligned */ + ElFuture* f = (ElFuture*)(intptr_t)h; + if (f->magic != EL_MAGIC_FUT) return h; /* safe to read now */ +``` + +so the harness's second assertion ("unbound: `el_await` on a non-future passes +through, no crash") passes today. The historical failure has no artifact and one +was not manufactured. The *class* it belongs to is independently reproduced in +cycle 19 (`0005-P6-sha256-hex-50000-exit-code.out`, exit 139), which is the +cycle P5 opened. + +## Provenance notes + +All artifacts from `/tmp/rerun-v1b-18`, a dedicated worktree at `511db252`, with +`capture.sh` invoked by absolute path from inside it. **No DIRTY-TREE flags in +this cycle.** + +Three of this cycle's claims (A1, A2, A3) rest on a file that no longer exists. +They are recorded as NOT-CAPTURED. Producing a `/tmp` C stub today and dating it +to 2026-08-17 would be fabrication with a fresh timestamp; the doc's own +chain-of-custody note already says as much, and this re-run does not go behind +it. diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/MANIFEST.tsv b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/MANIFEST.tsv new file mode 100644 index 0000000..1c9580a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/MANIFEST.tsv @@ -0,0 +1,6 @@ +sha256 bytes exit ms commit tree utc artifact command +68ff1c8c79613a8870607bcba04539154b609870fef324c18636f75c43aeacd7 9 0 3972 511db25230c6 clean 2026-08-17T17:45:32Z 0001-build-gen1-511db252.out bash -c cd /tmp/rerun-v1b-18/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; ./dist/platform/elc elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g18.c && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc18 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g18.c $SRCS $LF && echo BUILD-OK +ac52afda852cfe4d226b7fbe46cedbb3bc22be2b592af815e88c41a2f9d23b5d 370 0 3868 511db25230c6 clean 2026-08-17T17:45:36Z 0002-async-future-harness-6-assertions.out ./tests/integration/async_future.sh /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc18 +2090b2584a902c6b4c584ef52388a225740bdad95ce894ff1306e2946de34711 174 0 21 511db25230c6 clean 2026-08-17T17:45:45Z 0003-P1-five-magic-tags.out bash -c cd /tmp/rerun-v1b-18/lang/runtime && echo "--- EL_MAGIC_* definitions in el_runtime.c/h ---"; grep -hoE "#define EL_MAGIC_[A-Z_]+" el_runtime.c el_runtime.h | sort -u; echo; printf "count: "; grep -hoE "#define EL_MAGIC_[A-Z_]+" el_runtime.c el_runtime.h | sort -u | wc -l +6b1aa833faeb5a1e2ab104d1813e5eeab770c59ad6345582be8517c7f42e8d97 27 0 151 511db25230c6 clean 2026-08-17T17:46:04Z 0004-P4-zero-compiler-changes-unbound-run.out bash -c cd /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/a18 && ./p +5c175965d04514c1ec1d4d7c8a245449f54eefc7a490ccb0e7a892e404f4aae7 73 0 68 511db25230c6 clean 2026-08-17T17:46:04Z 0005-P2P3-bound-run-interleaving.out bash -c cd /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/a18 && EL_CONSTRUCTS=c.txt ./p diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/RUN.env b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/RUN.env new file mode 100644 index 0000000..42f70ce --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/RUN.env @@ -0,0 +1,6 @@ +captured_utc 2026-08-17T17:45:27Z +git_sha 511db25230c69b9484ece39ed4131d3920b16596 +git_dirty no +host Wills-MacBook-Pro +uname Darwin Wills-MacBook-Pro 25.5.0 Darwin Kernel Version 25.5.0: Tue Jun 9 22:28:34 PDT 2026; root:xnu-12377.121.10~1/RELEASE_ARM64_T6041 arm64 +cc Apple clang version 21.0.0 (clang-2100.1.1.101) diff --git a/docs/v1/experiments/evidence/cycles/18-async-half-expressible/fixtures/probe.el b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/fixtures/probe.el new file mode 100644 index 0000000..bac0bc5 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/18-async-half-expressible/fixtures/probe.el @@ -0,0 +1,12 @@ +extern fn el_await(h: Int) -> Int + +fn work(k: Int) -> Int { + return k * 2 +} + +fn main() { + let h: Int = work(21) + println("CALLER_CONTINUED") + let r: Int = el_await(h) + println("RESULT " + int_to_str(r)) +} diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.cmd new file mode 100644 index 0000000..59f06c0 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-17-pre/lang/runtime && echo "--- definition ---"; grep -n "static int looks_like_heap_obj" el_runtime.c; echo "--- exported in el_runtime.h? ---"; grep -c "looks_like_heap_obj\|el_tagged" el_runtime.h diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.out new file mode 100644 index 0000000..9a4d847 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.out @@ -0,0 +1,4 @@ +--- definition --- +715:static int looks_like_heap_obj(el_val_t v) { +--- exported in el_runtime.h? --- +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.prov new file mode 100644 index 0000000..033d004 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.prov @@ -0,0 +1,7 @@ +commit cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +tree clean +captured_utc 2026-08-17T17:42:30Z +exit 1 +ms 21 +sha256_out 4bb775ca37a9c774d59d555a1ee3115723763b0fee42d533f77d030c8c563f1d +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.rc new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0001-P1-looks-like-heap-obj-is-static.rc @@ -0,0 +1 @@ +1 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.cmd new file mode 100644 index 0000000..a07ddcd --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-17-pre/lang/runtime && echo "geom_of :"; sed -n "6296,6299p" el_runtime.c; echo "mfld_of :"; sed -n "6502,6505p" el_runtime.c; echo "el_bin_lookup:"; sed -n "18270,18280p" el_runtime.c; echo "el_input_len :"; sed -n "18283,18287p" el_runtime.c diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.out new file mode 100644 index 0000000..4d4bc7c --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.out @@ -0,0 +1,28 @@ +geom_of : + * than a dereference. */ +static ElGeometry* geom_of(el_val_t g) { + if (!looks_like_heap_obj(g)) return NULL; + ElGeometry* p = (ElGeometry*)(uintptr_t)g; +mfld_of : + * this, so a stale/foreign/zero value is a clean 0-return, never a deref. */ +static ElManifold* mfld_of(el_val_t m) { + if (!looks_like_heap_obj(m)) return NULL; + ElManifold* p = (ElManifold*)(uintptr_t)m; +el_bin_lookup: +static int el_bin_lookup(const void* p, size_t* out_len) { + if (!p) { *out_len = 0; return 0; } + /* Avoid reading off the front of a page on tiny pointers (e.g. NULs + * passed in as int-cast values). 4096 is a safe lower bound on any + * platform we target. */ + if ((uintptr_t)p < 4096) return 0; + const el_bin_hdr_t* hdr = (const el_bin_hdr_t*)((const char*)p - sizeof(el_bin_hdr_t)); + if (hdr->magic != EL_MAGIC_BIN) return 0; + *out_len = hdr->length; + return 1; +} +el_input_len : +static size_t el_input_len(const char* s) { + size_t n; + if (el_bin_lookup(s, &n)) return n; + return s ? strlen(s) : 0; +} diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.prov new file mode 100644 index 0000000..1a69378 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.prov @@ -0,0 +1,7 @@ +commit cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +tree clean +captured_utc 2026-08-17T17:42:30Z +exit 0 +ms 23 +sha256_out 4b9e15663e339c06e92493b7122bea8257ccd7c606be594da3f363937ae99629 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0002-P2P3-four-tagged-checks.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.cmd new file mode 100644 index 0000000..a4dbde1 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-17-pre/lang && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17pre /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/sha256_hex_int.el diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.out new file mode 100644 index 0000000..4a18cc5 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.out @@ -0,0 +1,11 @@ +#include +#include +#include "el_runtime.h" + + +int main(int _argc, char** _argv) { + el_runtime_init_args(_argc, _argv); + println(sha256_hex(50000)); + return 0; +} + diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.prov new file mode 100644 index 0000000..9b87fa3 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.prov @@ -0,0 +1,7 @@ +commit cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +tree clean +captured_utc 2026-08-17T17:42:41Z +exit 0 +ms 14 +sha256_out 2dcb5a1ee91d06df9af44e7a59ba0f1a5c38201b5f80dccbfadb4bf590df7eeb +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0003-pre-emit-c-sha256-int.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.cmd new file mode 100644 index 0000000..de96bdb --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-17-pre/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19.c $SRCS $LF && echo CC-CLEAN diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.err new file mode 100644 index 0000000..5e6d69b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14448:1: warning: '/*' within block comment [-Wcomment] + 14448 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.out new file mode 100644 index 0000000..0c50dfc --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.out @@ -0,0 +1 @@ +CC-CLEAN diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.prov new file mode 100644 index 0000000..ae82315 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.prov @@ -0,0 +1,7 @@ +commit cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +tree clean +captured_utc 2026-08-17T17:42:44Z +exit 0 +ms 3195 +sha256_out a7751a7fc2e89c47be008f0ba3d5dd9ddca3f7dc76600ec80ebf177bc88f45c5 +sha256_err 15ee96301428d7dc3500fe5b6109a154a87a2f21119365e665575b3e634d662b diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0004-pre-cc-compiles-clean.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.cmd new file mode 100644 index 0000000..31ec392 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.cmd @@ -0,0 +1 @@ +/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.out new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.prov new file mode 100644 index 0000000..6856218 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.prov @@ -0,0 +1,7 @@ +commit cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +tree clean +captured_utc 2026-08-17T17:42:45Z +exit 139 +ms 229 +sha256_out e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.rc new file mode 100644 index 0000000..897bdc8 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0005-P6-sha256-hex-50000-exit-code.rc @@ -0,0 +1 @@ +139 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.cmd new file mode 100644 index 0000000..b523548 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.cmd @@ -0,0 +1 @@ +bash -c set +o pipefail; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19 | head -1; echo "exit code read THROUGH A PIPE: $? <- this is measurement defect 4"; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19 > /dev/null 2>&1; echo "exit code read DIRECTLY: $? <- the truth" diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.err new file mode 100644 index 0000000..785e3c1 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.err @@ -0,0 +1 @@ +bash: line 1: 92460 Segmentation fault: 11 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19 > /dev/null 2>&1 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.out new file mode 100644 index 0000000..eaf8040 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.out @@ -0,0 +1,2 @@ +exit code read THROUGH A PIPE: 0 <- this is measurement defect 4 +exit code read DIRECTLY: 139 <- the truth diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.prov new file mode 100644 index 0000000..e5c2a1b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.prov @@ -0,0 +1,7 @@ +commit cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +tree clean +captured_utc 2026-08-17T17:42:52Z +exit 0 +ms 17 +sha256_out 6d4cbbfbbf5dac7a15bd48c3ee7af9fc13d4474ab07569971196bd0c50c12185 +sha256_err 8ea8ad36c5c05d57b0518279e8a86d9eeff6d921d4b8e8461f85715341238c80 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0006-measurement-defect-4-control-pipe-hides-sigsegv.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.cmd new file mode 100644 index 0000000..e136144 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-19-post/lang && grep -n el_tagged runtime/el_runtime.h diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.out new file mode 100644 index 0000000..105a525 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.out @@ -0,0 +1 @@ +891:int el_tagged(el_val_t v, uint32_t magic); /* the gate: validate a slot BEFORE dereferencing it */ diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.prov new file mode 100644 index 0000000..37639ee --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.prov @@ -0,0 +1,7 @@ +commit 9a6c161ba98a4e34275f46c39f18d120523f1ddb +tree clean +captured_utc 2026-08-17T17:43:22Z +exit 0 +ms 11 +sha256_out 08106dd493eec64aa21350159fcdb570990c2cc39b9bd23772f2687ef7a43de0 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0007-post-el-tagged-exported.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.cmd new file mode 100644 index 0000000..b414aa7 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-19-post/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; ./dist/platform/elc elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19.c && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19.c $SRCS $LF && echo BUILD-OK diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.err new file mode 100644 index 0000000..d66be18 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14468:1: warning: '/*' within block comment [-Wcomment] + 14468 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.out new file mode 100644 index 0000000..1c5c36b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.out @@ -0,0 +1 @@ +BUILD-OK diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.prov new file mode 100644 index 0000000..68f132b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.prov @@ -0,0 +1,7 @@ +commit 9a6c161ba98a4e34275f46c39f18d120523f1ddb +tree clean +captured_utc 2026-08-17T17:43:26Z +exit 0 +ms 3840 +sha256_out 68ff1c8c79613a8870607bcba04539154b609870fef324c18636f75c43aeacd7 +sha256_err 24f9504907bf0d11286da21911398ea3eb01e7423d78c3f8174b0051346bd3d7 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0008-post-build-gen1-9a6c161.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.cmd new file mode 100644 index 0000000..7e638c8 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-19-post/lang && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/sha256_hex_int.el diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.out new file mode 100644 index 0000000..4a18cc5 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.out @@ -0,0 +1,11 @@ +#include +#include +#include "el_runtime.h" + + +int main(int _argc, char** _argv) { + el_runtime_init_args(_argc, _argv); + println(sha256_hex(50000)); + return 0; +} + diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.prov new file mode 100644 index 0000000..0ba92ff --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.prov @@ -0,0 +1,7 @@ +commit 9a6c161ba98a4e34275f46c39f18d120523f1ddb +tree clean +captured_utc 2026-08-17T17:43:26Z +exit 0 +ms 195 +sha256_out 2dcb5a1ee91d06df9af44e7a59ba0f1a5c38201b5f80dccbfadb4bf590df7eeb +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0009-post-emit-c-sha256-int.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.cmd new file mode 100644 index 0000000..ec5d14f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-19-post/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19p /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19p.c $SRCS $LF && echo CC-CLEAN diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.err new file mode 100644 index 0000000..d66be18 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14468:1: warning: '/*' within block comment [-Wcomment] + 14468 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.out new file mode 100644 index 0000000..0c50dfc --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.out @@ -0,0 +1 @@ +CC-CLEAN diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.prov new file mode 100644 index 0000000..1fe61db --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.prov @@ -0,0 +1,7 @@ +commit 9a6c161ba98a4e34275f46c39f18d120523f1ddb +tree clean +captured_utc 2026-08-17T17:43:29Z +exit 0 +ms 3018 +sha256_out a7751a7fc2e89c47be008f0ba3d5dd9ddca3f7dc76600ec80ebf177bc88f45c5 +sha256_err 24f9504907bf0d11286da21911398ea3eb01e7423d78c3f8174b0051346bd3d7 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0010-post-cc.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.cmd new file mode 100644 index 0000000..7dc1778 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.cmd @@ -0,0 +1 @@ +/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19p diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.out new file mode 100644 index 0000000..c306804 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.out @@ -0,0 +1 @@ +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.prov new file mode 100644 index 0000000..e1be242 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.prov @@ -0,0 +1,7 @@ +commit 9a6c161ba98a4e34275f46c39f18d120523f1ddb +tree clean +captured_utc 2026-08-17T17:43:29Z +exit 0 +ms 180 +sha256_out 38acb15d02d5ac0f2a2789602e9df950c380d2799b4bdb59394e4eeabdd3a662 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0011-post-sha256-hex-50000-no-longer-segfaults.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.cmd new file mode 100644 index 0000000..c3b8517 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.cmd @@ -0,0 +1 @@ +bash -c printf "pre sha256_hex(abc) = "; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/legit_pre; printf "post sha256_hex(abc) = "; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/legit_post; printf "reference (openssl) = "; printf abc | shasum -a 256 | cut -d\ -f1 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.out new file mode 100644 index 0000000..e0d8412 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.out @@ -0,0 +1,3 @@ +pre sha256_hex(abc) = ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad +post sha256_hex(abc) = ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad +reference (openssl) = ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.prov new file mode 100644 index 0000000..a8f566d --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.prov @@ -0,0 +1,7 @@ +commit 9a6c161ba98a4e34275f46c39f18d120523f1ddb +tree clean +captured_utc 2026-08-17T17:43:47Z +exit 0 +ms 324 +sha256_out ccc07cddd4839fc41f1bef4a67e4d5c723fc91084c49e86ca9ea15bc9cf7f4ab +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0012-P9-legitimate-hash-unchanged.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.cmd new file mode 100644 index 0000000..221515a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-19-post/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19 elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19_2.c 2>/dev/null && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19_2 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19_2.c $SRCS $LF && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19_2 elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19_3.c 2>/dev/null && cmp /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19_2.c /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19_3.c && echo FIXPOINT-OK || echo FIXPOINT-FAIL diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.err new file mode 100644 index 0000000..d66be18 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14468:1: warning: '/*' within block comment [-Wcomment] + 14468 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.out new file mode 100644 index 0000000..35a016e --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.out @@ -0,0 +1 @@ +FIXPOINT-OK diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.prov new file mode 100644 index 0000000..aed1846 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.prov @@ -0,0 +1,7 @@ +commit 9a6c161ba98a4e34275f46c39f18d120523f1ddb +tree clean +captured_utc 2026-08-17T17:44:00Z +exit 0 +ms 4120 +sha256_out 1b4889e0050c409ace27706da41238ec276f0ac02d0e8f9ca07d5e2d1145aa8e +sha256_err 24f9504907bf0d11286da21911398ea3eb01e7423d78c3f8174b0051346bd3d7 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0013-P11-fixpoint.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.cmd new file mode 100644 index 0000000..a330214 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-19-post/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19_2 --test tests/native/test_compiler.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t19.c 2>/dev/null && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t19 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t19.c $SRCS $LF && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t19 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.err new file mode 100644 index 0000000..d66be18 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14468:1: warning: '/*' within block comment [-Wcomment] + 14468 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.out new file mode 100644 index 0000000..b05e440 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.out @@ -0,0 +1,107 @@ +ok lex-empty (0.055ms) +ok lex-whitespace-stripped (0.002ms) +ok lex-comment-stripped (0.001ms) +ok lex-int-literals (0.002ms) +ok lex-float-literals (0.013ms) +ok lex-string-literals (0.002ms) +ok lex-string-escape-newline (0.001ms) +ok lex-string-escape-tab (0.000ms) +ok lex-string-escape-backslash (0.001ms) +ok lex-bool-literals (0.002ms) +ok lex-identifier (0.002ms) +ok lex-keywords (0.005ms) +ok lex-more-keywords (0.001ms) +ok lex-keyword-values (0.001ms) +ok lex-arithmetic-operators (0.001ms) +ok lex-comparison-operators (0.001ms) +ok lex-logical-operators (0.001ms) +ok lex-arrow-tokens (0.001ms) +ok lex-delimiters (0.002ms) +ok lex-double-colon (0.000ms) +ok lex-dot-dot (0.000ms) +ok lex-pipe-operators (0.000ms) +ok lex-at-and-question (0.011ms) +ok lex-eof-always-last (0.002ms) +ok lex-string-with-spaces (0.000ms) +ok lex-multiline-source (0.003ms) +ok lex-flat-stride-3-layout (0.001ms) +ok lexer-tracks-line-numbers (0.002ms) +ok parse-let-stmt (0.032ms) +ok parse-fn-decl (0.009ms) +ok parse-fn-params (0.005ms) +ok parse-return-stmt (0.003ms) +ok parse-if-stmt (0.007ms) +ok parse-if-else (0.007ms) +ok parse-while-stmt (0.009ms) +ok parse-import-stmt (0.001ms) +ok parse-extern-fn (0.003ms) +ok parse-let-int-value (0.002ms) +ok parse-let-string-value (0.002ms) +ok parse-let-bool-value (0.002ms) +ok parse-binop-expr (0.003ms) +ok parse-call-expr (0.004ms) +ok parse-multiple-fns (0.006ms) +ok parse-assign-stmt (0.003ms) +ok parse-for-stmt (0.006ms) +ok parse-unary-not (0.004ms) +ok parse-unary-neg (0.004ms) +ok parse-array-literal (0.006ms) +ok parse-empty-array (0.003ms) +ok parse-index-expr (0.003ms) +ok codegen-includes (0.308ms) +ok codegen-int-main (0.160ms) +ok codegen-runtime-init (0.110ms) +ok codegen-void-function-signature (0.120ms) +ok codegen-function-with-params (0.114ms) +ok codegen-int-literal (0.085ms) +ok codegen-string-literal (0.131ms) +ok codegen-if-statement (0.141ms) +ok codegen-if-else (0.117ms) +ok codegen-while-loop (0.114ms) +ok codegen-let-binding (0.088ms) +ok codegen-function-call (0.086ms) +ok codegen-string-concat (0.137ms) +ok codegen-int-arithmetic (0.101ms) +ok codegen-comparison (0.092ms) +ok codegen-string-equality (0.093ms) +ok codegen-logical-and (0.090ms) +ok codegen-logical-or (0.145ms) +ok codegen-unary-not (0.084ms) +ok codegen-string-escape-in-c (0.103ms) +ok codegen-many-functions (0.125ms) +ok codegen-deep-expression (0.121ms) +ok codegen-forward-declarations (0.108ms) +ok codegen-for-loop (0.223ms) +ok codegen-extern-fn (0.112ms) +ok codegen-nested-calls (0.119ms) +ok compiler-minimal-program (0.073ms) +ok compiler-pure-library (0.094ms) +ok compiler-multiple-fns-with-main (0.094ms) +ok compiler-let-in-main (0.071ms) +ok compiler-string-concat-chain (0.103ms) +ok compiler-negative-literal (0.100ms) +ok compiler-stdint-include (0.075ms) +ok decorator-undecorated-fn-has-no-beat (0.067ms) +ok decorator-authenticate-compiles-to-nothing (0.148ms) +ok declared-construct-name-unknown-to-codegen (0.154ms) +ok undeclared-construct-still-injects-nothing (0.086ms) +ok undeclared-guard-emits-nothing (0.069ms) +ok seam-indirection-emitted-on-every-fn (0.071ms) +ok seam-emitted-without-any-decorator (0.065ms) +ok seam-replaces-inlined-entry-injection (0.066ms) +ok seam-entry-is-refusable (0.066ms) +ok seam-is-emitted-for-undecorated-fns (0.060ms) +ok every-fn-gets-a-body-helper-and-wrapper (0.075ms) +ok exit-crossing-goes-through-the-seam (0.060ms) +ok early-returns-route-through-the-exit-seam (0.071ms) +ok every-fn-gets-a-closure (0.056ms) +ok zero-param-fn-emits-valid-c (0.062ms) +ok compiler-no-longer-emits-prohibition-errors (0.116ms) +ok int-returning-builtin-drives-arithmetic-dispatch (0.102ms) +ok string-plus-string-still-concatenates (0.066ms) +ok freed-identifiers-compile-as-identifiers (0.072ms) +ok test-keyword-is-still-reserved (0.061ms) +ok instant-plus-bare-int-is-refused (0.065ms) +ok instant-plus-unit-suffix-is-allowed (0.066ms) + +105 tests, 105 passed, 0 failed, 253 assertions in 5.798ms diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.prov new file mode 100644 index 0000000..22dacae --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.prov @@ -0,0 +1,7 @@ +commit 9a6c161ba98a4e34275f46c39f18d120523f1ddb +tree clean +captured_utc 2026-08-17T17:44:05Z +exit 0 +ms 4168 +sha256_out 8fed706c491e2f19afbb7035e1c09d0ae4d67bba9db1a6aedb73dcf2af5c00a2 +sha256_err 24f9504907bf0d11286da21911398ea3eb01e7423d78c3f8174b0051346bd3d7 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0014-P11-native-suite.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.cmd new file mode 100644 index 0000000..cd09e95 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-19-post/lang && tot=0; n8=0; for h in tests/integration/*.sh; do out=$("$h" /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19_2 2>&1); rc=$?; n=$(printf "%s" "$out" | grep -oE "^ *[0-9]+ assertions" | grep -oE "[0-9]+" | head -1); printf "%-28s exit=%s assertions=%s\n" "$(basename $h)" "$rc" "${n:-0}"; tot=$((tot+${n:-0})); n8=$((n8+1)); done; echo "harnesses: $n8 TOTAL assertions: $tot" diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.out new file mode 100644 index 0000000..ab69cbd --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.out @@ -0,0 +1,9 @@ +arity_query.sh exit=0 assertions=5 +capability_query.sh exit=0 assertions=5 +definitions_query.sh exit=0 assertions=6 +prohibition_query.sh exit=0 assertions=4 +seam_binding.sh exit=0 assertions=7 +tagged_gate.sh exit=0 assertions=5 +temporal_query.sh exit=0 assertions=6 +temporal_signatures.sh exit=0 assertions=4 +harnesses: 8 TOTAL assertions: 42 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.prov new file mode 100644 index 0000000..c17a015 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.prov @@ -0,0 +1,7 @@ +commit 9a6c161ba98a4e34275f46c39f18d120523f1ddb +tree clean +captured_utc 2026-08-17T17:44:21Z +exit 0 +ms 16121 +sha256_out 3a02a406df2b5b0d66949960a4e30a7ec52871886ba0353771a60f84b86380fe +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0015-P11-eight-integration-harnesses.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.cmd new file mode 100644 index 0000000..89e80c4 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-19-p8/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; ./dist/platform/elc elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19p8.c && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19p8 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19p8.c $SRCS $LF && echo BUILD-OK diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.err new file mode 100644 index 0000000..d66be18 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14468:1: warning: '/*' within block comment [-Wcomment] + 14468 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.out new file mode 100644 index 0000000..1c5c36b --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.out @@ -0,0 +1 @@ +BUILD-OK diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.prov new file mode 100644 index 0000000..0af177f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.prov @@ -0,0 +1,7 @@ +commit 9a6c161ba98a4e34275f46c39f18d120523f1ddb +tree dirty +captured_utc 2026-08-17T17:45:02Z +exit 0 +ms 3929 +sha256_out 68ff1c8c79613a8870607bcba04539154b609870fef324c18636f75c43aeacd7 +sha256_err 24f9504907bf0d11286da21911398ea3eb01e7423d78c3f8174b0051346bd3d7 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0016-P8-rederived-build.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.cmd new file mode 100644 index 0000000..fb1b9c3 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-19-p8/lang && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19p8 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/sha256_hex_int.el diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.out new file mode 100644 index 0000000..4a18cc5 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.out @@ -0,0 +1,11 @@ +#include +#include +#include "el_runtime.h" + + +int main(int _argc, char** _argv) { + el_runtime_init_args(_argc, _argv); + println(sha256_hex(50000)); + return 0; +} + diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.prov new file mode 100644 index 0000000..c463daa --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.prov @@ -0,0 +1,7 @@ +commit 9a6c161ba98a4e34275f46c39f18d120523f1ddb +tree dirty +captured_utc 2026-08-17T17:45:02Z +exit 0 +ms 180 +sha256_out 2dcb5a1ee91d06df9af44e7a59ba0f1a5c38201b5f80dccbfadb4bf590df7eeb +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0017-P8-rederived-emit-c.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.cmd new file mode 100644 index 0000000..010c3dc --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v1b-19-p8/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19p8 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19p8.c $SRCS $LF && echo CC-CLEAN diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.err new file mode 100644 index 0000000..d66be18 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.err @@ -0,0 +1,4 @@ +runtime/el_runtime.c:14468:1: warning: '/*' within block comment [-Wcomment] + 14468 | /* ═══════════════════════════════════════════════════════════════════════════ + | ^ +1 warning generated. diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.out new file mode 100644 index 0000000..0c50dfc --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.out @@ -0,0 +1 @@ +CC-CLEAN diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.prov new file mode 100644 index 0000000..bfd5b51 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.prov @@ -0,0 +1,7 @@ +commit 9a6c161ba98a4e34275f46c39f18d120523f1ddb +tree dirty +captured_utc 2026-08-17T17:45:05Z +exit 0 +ms 3214 +sha256_out a7751a7fc2e89c47be008f0ba3d5dd9ddca3f7dc76600ec80ebf177bc88f45c5 +sha256_err 24f9504907bf0d11286da21911398ea3eb01e7423d78c3f8174b0051346bd3d7 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0018-P8-rederived-cc.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.cmd new file mode 100644 index 0000000..13fcec0 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.cmd @@ -0,0 +1 @@ +/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19p8 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.out new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.prov new file mode 100644 index 0000000..52f4841 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.prov @@ -0,0 +1,7 @@ +commit 9a6c161ba98a4e34275f46c39f18d120523f1ddb +tree dirty +captured_utc 2026-08-17T17:45:06Z +exit 139 +ms 186 +sha256_out e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.rc new file mode 100644 index 0000000..897bdc8 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0019-P8-rederived-still-segfaults.rc @@ -0,0 +1 @@ +139 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.cmd b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.cmd new file mode 100644 index 0000000..7edd3c2 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.cmd @@ -0,0 +1 @@ +/private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/head19 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.err b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.out b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.out new file mode 100644 index 0000000..c306804 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.out @@ -0,0 +1 @@ +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.prov b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.prov new file mode 100644 index 0000000..b8e0d41 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree clean +captured_utc 2026-08-17T17:47:03Z +exit 0 +ms 178 +sha256_out 38acb15d02d5ac0f2a2789602e9df950c380d2799b4bdb59394e4eeabdd3a662 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.rc b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/0020-head-sha256-hex-50000-TODAY.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/CLAIMS.md b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/CLAIMS.md new file mode 100644 index 0000000..572e51f --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/CLAIMS.md @@ -0,0 +1,182 @@ +# CLAIMS — cycle 19, a convention is not a gate + +Source doc: `docs/v1/experiments/cycles/19-a-convention-is-not-a-gate.md` + +## Pinned commits + +| role | sha | subject | +|---|---|---| +| parent / before-state | `cb7289f06510c002b6ab7c5ca8c2bd182d8216bc` | thread provenance end to end | +| experiment (system under test) | `9a6c161ba98a4e34275f46c39f18d120523f1ddb` | a slot must be validated before it is dereferenced | +| land (merge) | `3049a7083707de1508795e5daf3c65ab6ca21995` | make the guard a gate: sha256_hex(50000) no longer segfaults | +| current HEAD at re-run time | `a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7` | instrument build log | + +## Verdicts + +| # | claim | artifact | commit | verdict | +|---|---|---|---|---| +| A1 | P1: `looks_like_heap_obj` is **static, not exported** | `0001-P1-looks-like-heap-obj-is-static.out` | `cb7289f` | REPRODUCED (exact) | +| A2 | P2: each tagged type re-derives the check — `geom_of` and `mfld_of` full guard, `el_bin_lookup` floor only, `el_input_len` NULL only | `0002-P2P3-four-tagged-checks.out` | `cb7289f` | REPRODUCED (exact, all four) | +| A3 | P3: at least one is missing guard components — **two are** | `0002` | `cb7289f` | REPRODUCED | +| A4 | `el_bin_lookup` **reads 8 bytes BACKWARD** | `0002` | `cb7289f` | REPRODUCED (exact) | +| A5 | `el_input_len` **strlen's an integer** | `0002` | `cb7289f` | REPRODUCED (exact) | +| A6 | P6: **`sha256_hex(50000)` → exit 139, SIGSEGV, compiled clean** | `0004-pre-cc-compiles-clean.out`, `0005-P6-sha256-hex-50000-exit-code.out` | `cb7289f` | REPRODUCED (exact) | +| A7 | measurement defect 4: the first run reported `exit=0` because `$?` read `head`'s status through a pipe | `0006-measurement-defect-4-control-pipe-hides-sigsegv.out` | `cb7289f` | REPRODUCED (as a live control) | +| A8 | P8 **IS THE USEFUL FAILURE** — routing `el_bin_lookup` through the gate fixes nothing; the FALLBACK was the hazard | `0016`–`0019-P8-rederived-still-segfaults.out` | `9a6c161` + patch | **NOT-CAPTURED** historically; **CORROBORATED** by re-derivation | +| A9 | P9: the legitimate hash is unchanged | `0012-P9-legitimate-hash-unchanged.out` | `cb7289f` vs `9a6c161` | REPRODUCED | +| A10 | `el_tagged()` is now exported in `el_runtime.h` | `0007-post-el-tagged-exported.out` | `9a6c161` | REPRODUCED (exact) | +| A11 | the fix: `sha256_hex(50000)` no longer segfaults | `0011-post-sha256-hex-50000-no-longer-segfaults.out` | `9a6c161` | REPRODUCED | +| A12 | P11: fixpoint and suites hold | `0013-P11-fixpoint.out` | `9a6c161` | REPRODUCED | +| A13 | **105/105** native | `0014-P11-native-suite.out` | `9a6c161` | REPRODUCED (exact) | +| A14 | **42/42** integration across **eight** harnesses | `0015-P11-eight-integration-harnesses.out` | `9a6c161` | REPRODUCED (exact) | +| A15 | "sixty seconds after diagnosing `let s: String = 42` I wrote the identical defect into `el_await`" | — | — | **NOT-CAPTURED** (narrative; no artifact of the pre-repair `el_await` — see cycle 18 A10) | +| A16 | the defect at current HEAD | `0020-head-sha256-hex-50000-TODAY.out` | `a0cc95e3` | fixed — exit 0 | + +## A6 — the headline, captured directly + +Fixture `fixtures/sha256_hex_int.el`: + +```el +fn main() { + println(sha256_hex(50000)) +} +``` + +At `cb7289f`: `cc` exits **0** with **0 errors** (`0004`), and the program exits +**139**, stdout **0 bytes** (`0005`). + +The exit code was captured by `capture.sh` running the binary as the direct +child — `"$@" > "$B.out" 2> "$B.err"; rc=$?` — never through a pipe, which is the +control this record's own measurement defect 4 demands. + +## A7 — measurement defect 4, reproduced as a live control + +`0006` runs the same binary twice in one capture: + +``` +exit code read THROUGH A PIPE: 0 <- this is measurement defect 4 +exit code read DIRECTLY: 139 <- the truth +``` + +A SIGSEGV really does read as a clean run when `$?` is taken after a pipeline +whose last stage succeeds. The defect the record confesses to is not an +anecdote; it is a reproducible property of the shell, demonstrated here against +the exact program it originally hid. + +## A1–A5 — the four checks, verbatim from `cb7289f` + +`0001`: `looks_like_heap_obj` is declared `static int` at `el_runtime.c:715`, +and `el_runtime.h` contains **0** occurrences of either `looks_like_heap_obj` or +`el_tagged`. Not exported — so every sibling translation unit must re-derive it. + +`0002`, the four call sites, exactly as tabulated in the record: + +```c +static ElGeometry* geom_of(el_val_t g) { + if (!looks_like_heap_obj(g)) return NULL; /* full guard — correct */ + +static ElManifold* mfld_of(el_val_t m) { + if (!looks_like_heap_obj(m)) return NULL; /* full guard — correct */ + +static int el_bin_lookup(const void* p, size_t* out_len) { + if (!p) { *out_len = 0; return 0; } + if ((uintptr_t)p < 4096) return 0; /* floor only */ + const el_bin_hdr_t* hdr = (…)((const char*)p - sizeof(el_bin_hdr_t)); + /* reads 8 bytes BACKWARD */ +static size_t el_input_len(const char* s) { + size_t n; + if (el_bin_lookup(s, &n)) return n; + return s ? strlen(s) : 0; /* NULL only — strlen's an integer */ +} +``` + +`looks_like_heap_obj` itself rejects zero, small ints (`|s| < 0x10000`), low +addresses and misaligned pointers. `el_bin_lookup`'s 4096 floor has none of +those components, and 50000 clears it. + +## A8 — P8, the useful failure: re-derived, and labelled as such + +The intermediate state P8 describes — `el_bin_lookup` routed through the gate, +`el_input_len` untouched — **was never committed**, so no historical artifact +exists and none was manufactured. It was reconstructed *today* from `9a6c161` by +reverting only the `el_input_len` hunk back to its `cb7289f` form. The +reconstruction script and the resulting diff are stored with the evidence: + +* `fixtures/p8_reconstruct_intermediate.py` +* `fixtures/p8_intermediate.patch` + +Result (`0019`): `sha256_hex(50000)` still exits **139**. + +So with the tagged lookup fully guarded and the fallback unguarded, the crash is +unchanged — the fallback was the hazard, exactly as P8 says. The committed fix +(`9a6c161`) needed **both** hunks: + +```c + if (!looks_like_heap_obj((el_val_t)(uintptr_t)hp)) return 0; /* el_bin_lookup */ +… + if (!looks_like_heap_obj((el_val_t)(uintptr_t)s)) return 0; /* el_input_len */ + return strlen(s); +``` + +Verdict wording matters here. The historical measurement is **NOT-CAPTURED**; +the re-derivation **CORROBORATES** it. These are different things and the record +should not conflate them. + +## A9 / A11 — the fix, and that it costs nothing + +`0012` — the legitimate hash is byte-identical across the change and matches an +independent implementation: + +``` +pre sha256_hex(abc) = ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad +post sha256_hex(abc) = ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad +reference (openssl) = ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad +``` + +`0011` — the hazardous call now returns cleanly, exit **0**: + +``` +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +``` + +which is SHA-256 of the empty string: `el_input_len` now returns 0 for a slot +that is not a pointer, so the integer hashes as no bytes rather than walking +address 50000. Still true at HEAD (`0020`). + +`0007` — the gate is exported: + +``` +891:int el_tagged(el_val_t v, uint32_t magic); /* the gate: validate a slot BEFORE dereferencing it */ +``` + +## A12–A14 — the suites at `9a6c161` + +``` +FIXPOINT-OK gen2 == gen3 (0013) +105 tests, 105 passed, 0 failed, 253 assertions (0014) + +arity_query.sh exit=0 assertions=5 +capability_query.sh exit=0 assertions=5 +definitions_query.sh exit=0 assertions=6 +prohibition_query.sh exit=0 assertions=4 +seam_binding.sh exit=0 assertions=7 +tagged_gate.sh exit=0 assertions=5 +temporal_query.sh exit=0 assertions=6 +temporal_signatures.sh exit=0 assertions=4 +harnesses: 8 TOTAL assertions: 42 (0015) +``` + +105/105, eight harnesses, 42 assertions. All three figures exact. + +## Provenance notes + +Behavioural captures come from `/tmp/rerun-v1b-17-pre` (a worktree at `cb7289f`, +shared with cycle 17 because the two cycles branch from the same parent), +`/tmp/rerun-v1b-19-post` (`9a6c161`) and `/tmp/rerun-v1b-head` (`a0cc95e3`). + +The four P8 artifacts (`0016`–`0019`) carry **DIRTY-TREE** flags, correctly and +deliberately: the working tree was patched to construct a state that was never +committed, so those measurements are not reproducible by checking out +`9a6c161` alone. They are reproducible by checking out `9a6c161` and applying +`fixtures/p8_intermediate.patch`, which is stored alongside them. The worktree +was removed after capture. diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/MANIFEST.tsv b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/MANIFEST.tsv new file mode 100644 index 0000000..30c536d --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/MANIFEST.tsv @@ -0,0 +1,21 @@ +sha256 bytes exit ms commit tree utc artifact command +4bb775ca37a9c774d59d555a1ee3115723763b0fee42d533f77d030c8c563f1d 104 1 21 cb7289f06510 clean 2026-08-17T17:42:30Z 0001-P1-looks-like-heap-obj-is-static.out bash -c cd /tmp/rerun-v1b-17-pre/lang/runtime && echo "--- definition ---"; grep -n "static int looks_like_heap_obj" el_runtime.c; echo "--- exported in el_runtime.h? ---"; grep -c "looks_like_heap_obj\|el_tagged" el_runtime.h +4b9e15663e339c06e92493b7122bea8257ccd7c606be594da3f363937ae99629 1094 0 23 cb7289f06510 clean 2026-08-17T17:42:30Z 0002-P2P3-four-tagged-checks.out bash -c cd /tmp/rerun-v1b-17-pre/lang/runtime && echo "geom_of :"; sed -n "6296,6299p" el_runtime.c; echo "mfld_of :"; sed -n "6502,6505p" el_runtime.c; echo "el_bin_lookup:"; sed -n "18270,18280p" el_runtime.c; echo "el_input_len :"; sed -n "18283,18287p" el_runtime.c +2dcb5a1ee91d06df9af44e7a59ba0f1a5c38201b5f80dccbfadb4bf590df7eeb 185 0 14 cb7289f06510 clean 2026-08-17T17:42:41Z 0003-pre-emit-c-sha256-int.out bash -c cd /tmp/rerun-v1b-17-pre/lang && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc17pre /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/sha256_hex_int.el +a7751a7fc2e89c47be008f0ba3d5dd9ddca3f7dc76600ec80ebf177bc88f45c5 9 0 3195 cb7289f06510 clean 2026-08-17T17:42:44Z 0004-pre-cc-compiles-clean.out bash -c cd /tmp/rerun-v1b-17-pre/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19.c $SRCS $LF && echo CC-CLEAN +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 139 229 cb7289f06510 clean 2026-08-17T17:42:45Z 0005-P6-sha256-hex-50000-exit-code.out /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19 +6d4cbbfbbf5dac7a15bd48c3ee7af9fc13d4474ab07569971196bd0c50c12185 116 0 17 cb7289f06510 clean 2026-08-17T17:42:52Z 0006-measurement-defect-4-control-pipe-hides-sigsegv.out bash -c set +o pipefail; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19 | head -1; echo "exit code read THROUGH A PIPE: $? <- this is measurement defect 4"; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19 > /dev/null 2>&1; echo "exit code read DIRECTLY: $? <- the truth" +08106dd493eec64aa21350159fcdb570990c2cc39b9bd23772f2687ef7a43de0 110 0 11 9a6c161ba98a clean 2026-08-17T17:43:22Z 0007-post-el-tagged-exported.out bash -c cd /tmp/rerun-v1b-19-post/lang && grep -n el_tagged runtime/el_runtime.h +68ff1c8c79613a8870607bcba04539154b609870fef324c18636f75c43aeacd7 9 0 3840 9a6c161ba98a clean 2026-08-17T17:43:26Z 0008-post-build-gen1-9a6c161.out bash -c cd /tmp/rerun-v1b-19-post/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; ./dist/platform/elc elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19.c && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19.c $SRCS $LF && echo BUILD-OK +2dcb5a1ee91d06df9af44e7a59ba0f1a5c38201b5f80dccbfadb4bf590df7eeb 185 0 195 9a6c161ba98a clean 2026-08-17T17:43:26Z 0009-post-emit-c-sha256-int.out bash -c cd /tmp/rerun-v1b-19-post/lang && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/sha256_hex_int.el +a7751a7fc2e89c47be008f0ba3d5dd9ddca3f7dc76600ec80ebf177bc88f45c5 9 0 3018 9a6c161ba98a clean 2026-08-17T17:43:29Z 0010-post-cc.out bash -c cd /tmp/rerun-v1b-19-post/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19p /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19p.c $SRCS $LF && echo CC-CLEAN +38acb15d02d5ac0f2a2789602e9df950c380d2799b4bdb59394e4eeabdd3a662 65 0 180 9a6c161ba98a clean 2026-08-17T17:43:29Z 0011-post-sha256-hex-50000-no-longer-segfaults.out /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19p +ccc07cddd4839fc41f1bef4a67e4d5c723fc91084c49e86ca9ea15bc9cf7f4ab 264 0 324 9a6c161ba98a clean 2026-08-17T17:43:47Z 0012-P9-legitimate-hash-unchanged.out bash -c printf "pre sha256_hex(abc) = "; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/legit_pre; printf "post sha256_hex(abc) = "; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/legit_post; printf "reference (openssl) = "; printf abc | shasum -a 256 | cut -d\ -f1 +1b4889e0050c409ace27706da41238ec276f0ac02d0e8f9ca07d5e2d1145aa8e 12 0 4120 9a6c161ba98a clean 2026-08-17T17:44:00Z 0013-P11-fixpoint.out bash -c cd /tmp/rerun-v1b-19-post/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19 elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19_2.c 2>/dev/null && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19_2 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19_2.c $SRCS $LF && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19_2 elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19_3.c 2>/dev/null && cmp /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19_2.c /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19_3.c && echo FIXPOINT-OK || echo FIXPOINT-FAIL +8fed706c491e2f19afbb7035e1c09d0ae4d67bba9db1a6aedb73dcf2af5c00a2 4329 0 4168 9a6c161ba98a clean 2026-08-17T17:44:05Z 0014-P11-native-suite.out bash -c cd /tmp/rerun-v1b-19-post/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19_2 --test tests/native/test_compiler.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t19.c 2>/dev/null && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t19 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t19.c $SRCS $LF && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/t19 +3a02a406df2b5b0d66949960a4e30a7ec52871886ba0353771a60f84b86380fe 428 0 16121 9a6c161ba98a clean 2026-08-17T17:44:21Z 0015-P11-eight-integration-harnesses.out bash -c cd /tmp/rerun-v1b-19-post/lang && tot=0; n8=0; for h in tests/integration/*.sh; do out=$("$h" /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19_2 2>&1); rc=$?; n=$(printf "%s" "$out" | grep -oE "^ *[0-9]+ assertions" | grep -oE "[0-9]+" | head -1); printf "%-28s exit=%s assertions=%s\n" "$(basename $h)" "$rc" "${n:-0}"; tot=$((tot+${n:-0})); n8=$((n8+1)); done; echo "harnesses: $n8 TOTAL assertions: $tot" +68ff1c8c79613a8870607bcba04539154b609870fef324c18636f75c43aeacd7 9 0 3929 9a6c161ba98a dirty 2026-08-17T17:45:02Z 0016-P8-rederived-build.out bash -c cd /tmp/rerun-v1b-19-p8/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; ./dist/platform/elc elc-cli.el > /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19p8.c && cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19p8 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/g19p8.c $SRCS $LF && echo BUILD-OK +2dcb5a1ee91d06df9af44e7a59ba0f1a5c38201b5f80dccbfadb4bf590df7eeb 185 0 180 9a6c161ba98a dirty 2026-08-17T17:45:02Z 0017-P8-rederived-emit-c.out bash -c cd /tmp/rerun-v1b-19-p8/lang && /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/elc19p8 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/sha256_hex_int.el +a7751a7fc2e89c47be008f0ba3d5dd9ddca3f7dc76600ec80ebf177bc88f45c5 9 0 3214 9a6c161ba98a dirty 2026-08-17T17:45:05Z 0018-P8-rederived-cc.out bash -c cd /tmp/rerun-v1b-19-p8/lang && SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; cc $CF -o /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19p8 /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19p8.c $SRCS $LF && echo CC-CLEAN +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 139 186 9a6c161ba98a dirty 2026-08-17T17:45:06Z 0019-P8-rederived-still-segfaults.out /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/s19p8 +38acb15d02d5ac0f2a2789602e9df950c380d2799b4bdb59394e4eeabdd3a662 65 0 178 a0cc95e3db7b clean 2026-08-17T17:47:03Z 0020-head-sha256-hex-50000-TODAY.out /private/tmp/claude-501/-Users-will/6531446d-bc27-4095-930b-e04777c3db4f/scratchpad/v1b/head19 diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/RUN.env b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/RUN.env new file mode 100644 index 0000000..43a7f72 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/RUN.env @@ -0,0 +1,6 @@ +captured_utc 2026-08-17T17:42:30Z +git_sha cb7289f06510c002b6ab7c5ca8c2bd182d8216bc +git_dirty no +host Wills-MacBook-Pro +uname Darwin Wills-MacBook-Pro 25.5.0 Darwin Kernel Version 25.5.0: Tue Jun 9 22:28:34 PDT 2026; root:xnu-12377.121.10~1/RELEASE_ARM64_T6041 arm64 +cc Apple clang version 21.0.0 (clang-2100.1.1.101) diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/p8_intermediate.patch b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/p8_intermediate.patch new file mode 100644 index 0000000..c27ad74 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/p8_intermediate.patch @@ -0,0 +1,18 @@ +diff --git a/lang/runtime/el_runtime.c b/lang/runtime/el_runtime.c +index 73c04e09..f2fbcb6a 100644 +--- a/lang/runtime/el_runtime.c ++++ b/lang/runtime/el_runtime.c +@@ -18306,12 +18306,7 @@ static int el_bin_lookup(const void* p, size_t* out_len) { + static size_t el_input_len(const char* s) { + size_t n; + if (el_bin_lookup(s, &n)) return n; +- /* The FALLBACK is the hazard, not the tagged lookup. A NULL check does not +- * establish that a slot is a pointer: el_val_t carries integers too, so +- * strlen() on `sha256_hex(50000)` walks address 50000. Guarding the tagged +- * path alone left this untouched and the SIGSEGV unchanged -- measured. */ +- if (!looks_like_heap_obj((el_val_t)(uintptr_t)s)) return 0; +- return strlen(s); ++ return s ? strlen(s) : 0; + } + + /* ─── SHA-256 (Brad Conte / public domain) ──────────────────────────────── */ diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/p8_reconstruct_intermediate.py b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/p8_reconstruct_intermediate.py new file mode 100644 index 0000000..bae1f73 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/p8_reconstruct_intermediate.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 +# p8_patch.py — construct the P8 INTERMEDIATE state described in cycle 19. +# +# Cycle 19's P8 says: routing el_bin_lookup through the gate did NOT fix the +# SIGSEGV, because the FALLBACK (el_input_len's `s ? strlen(s) : 0`) was the +# hazard. That intermediate state was never committed, so no historical +# artifact exists for it. This constructs it TODAY, from 9a6c161, by reverting +# ONLY the el_input_len hunk back to its cb7289f form and leaving the new +# el_bin_lookup gate in place. It is labelled a re-derivation, not a recovery. +p = "/tmp/rerun-v1b-19-p8/lang/runtime/el_runtime.c" +s = open(p).read() +new = """static size_t el_input_len(const char* s) { + size_t n; + if (el_bin_lookup(s, &n)) return n; + /* The FALLBACK is the hazard, not the tagged lookup. A NULL check does not + * establish that a slot is a pointer: el_val_t carries integers too, so + * strlen() on `sha256_hex(50000)` walks address 50000. Guarding the tagged + * path alone left this untouched and the SIGSEGV unchanged -- measured. */ + if (!looks_like_heap_obj((el_val_t)(uintptr_t)s)) return 0; + return strlen(s); +}""" +old = """static size_t el_input_len(const char* s) { + size_t n; + if (el_bin_lookup(s, &n)) return n; + return s ? strlen(s) : 0; +}""" +assert s.count(new) == 1, "expected exactly one el_input_len, found %d" % s.count(new) +open(p, "w").write(s.replace(new, old)) +print("P8 intermediate constructed: el_bin_lookup KEEPS the new gate,") +print("el_input_len reverted to the cb7289f fallback `s ? strlen(s) : 0`") diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/sha256_hex_int.el b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/sha256_hex_int.el new file mode 100644 index 0000000..c222928 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/sha256_hex_int.el @@ -0,0 +1,3 @@ +fn main() { + println(sha256_hex(50000)) +} diff --git a/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/sha256_hex_legit.el b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/sha256_hex_legit.el new file mode 100644 index 0000000..8ebd521 --- /dev/null +++ b/docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/fixtures/sha256_hex_legit.el @@ -0,0 +1,3 @@ +fn main() { + println(sha256_hex("abc")) +} diff --git a/docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.cmd b/docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.cmd new file mode 100644 index 0000000..80e9d6a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.cmd @@ -0,0 +1 @@ +bash -c cd lang; SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; W=/tmp/rerun-v2-shared; ./dist/platform/elc elc-cli.el > $W/g1.c 2>/dev/null; cc $CF -o $W/elc1 $W/g1.c $SRCS $LF 2>/dev/null; $W/elc1 elc-cli.el > $W/g2.c 2>/dev/null; cc $CF -o $W/elc2 $W/g2.c $SRCS $LF 2>/dev/null; $W/elc2 elc-cli.el > $W/g3.c 2>/dev/null; printf "gen1 sha256 = %s\ngen2 sha256 = %s\ngen3 sha256 = %s\n" "$(shasum -a 256 $W/g1.c | cut -d\ -f1)" "$(shasum -a 256 $W/g2.c | cut -d\ -f1)" "$(shasum -a 256 $W/g3.c | cut -d\ -f1)"; if cmp -s $W/g2.c $W/g3.c; then echo "FIXPOINT gen2 == gen3 OK"; else echo "FIXPOINT gen2 != gen3 FAILED"; fi; if cmp -s $W/g1.c $W/g2.c; then echo "note: gen1 == gen2 (codegen output unchanged this cycle)"; else echo "note: gen1 != gen2, as expected whenever codegen output changes"; fi diff --git a/docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.err b/docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.out b/docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.out new file mode 100644 index 0000000..09b869c --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.out @@ -0,0 +1,5 @@ +gen1 sha256 = aa340a723e7b29e585e30c07d6dc9834e072ef15a07df5e1afb363c18e168c76 +gen2 sha256 = 61210655962abd07ce395d66a9232582fd10c2a878c80f9b85fefc9081c5313e +gen3 sha256 = 61210655962abd07ce395d66a9232582fd10c2a878c80f9b85fefc9081c5313e +FIXPOINT gen2 == gen3 OK +note: gen1 != gen2, as expected whenever codegen output changes diff --git a/docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.prov b/docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.prov new file mode 100644 index 0000000..463d344 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:48:39Z +exit 0 +ms 8100 +sha256_out 5960c00c43a46d19bb43edbadd8aa8ffe2e9741cc2659c89e4d42c28fecfe58a +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.rc b/docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0005-native-suite.cmd b/docs/v2/experiments/evidence/ITERATION/0005-native-suite.cmd new file mode 100644 index 0000000..e81ef06 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0005-native-suite.cmd @@ -0,0 +1 @@ +bash -c cd lang; SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; W=/tmp/rerun-v2-shared; $W/elc2 --test tests/native/test_compiler.el > $W/t.c 2>/dev/null; cc $CF -o $W/t $W/t.c $SRCS $LF 2>/dev/null; $W/t; echo "native_suite_exit=$?" diff --git a/docs/v2/experiments/evidence/ITERATION/0005-native-suite.err b/docs/v2/experiments/evidence/ITERATION/0005-native-suite.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0005-native-suite.out b/docs/v2/experiments/evidence/ITERATION/0005-native-suite.out new file mode 100644 index 0000000..25f65b1 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0005-native-suite.out @@ -0,0 +1,108 @@ +ok lex-empty (0.041ms) +ok lex-whitespace-stripped (0.001ms) +ok lex-comment-stripped (0.000ms) +ok lex-int-literals (0.002ms) +ok lex-float-literals (0.010ms) +ok lex-string-literals (0.002ms) +ok lex-string-escape-newline (0.001ms) +ok lex-string-escape-tab (0.001ms) +ok lex-string-escape-backslash (0.000ms) +ok lex-bool-literals (0.002ms) +ok lex-identifier (0.002ms) +ok lex-keywords (0.005ms) +ok lex-more-keywords (0.001ms) +ok lex-keyword-values (0.000ms) +ok lex-arithmetic-operators (0.001ms) +ok lex-comparison-operators (0.001ms) +ok lex-logical-operators (0.002ms) +ok lex-arrow-tokens (0.001ms) +ok lex-delimiters (0.001ms) +ok lex-double-colon (0.000ms) +ok lex-dot-dot (0.001ms) +ok lex-pipe-operators (0.000ms) +ok lex-at-and-question (0.009ms) +ok lex-eof-always-last (0.001ms) +ok lex-string-with-spaces (0.000ms) +ok lex-multiline-source (0.002ms) +ok lex-flat-stride-3-layout (0.001ms) +ok lexer-tracks-line-numbers (0.003ms) +ok parse-let-stmt (0.025ms) +ok parse-fn-decl (0.008ms) +ok parse-fn-params (0.004ms) +ok parse-return-stmt (0.002ms) +ok parse-if-stmt (0.007ms) +ok parse-if-else (0.006ms) +ok parse-while-stmt (0.006ms) +ok parse-import-stmt (0.001ms) +ok parse-extern-fn (0.003ms) +ok parse-let-int-value (0.002ms) +ok parse-let-string-value (0.002ms) +ok parse-let-bool-value (0.001ms) +ok parse-binop-expr (0.002ms) +ok parse-call-expr (0.004ms) +ok parse-multiple-fns (0.005ms) +ok parse-assign-stmt (0.003ms) +ok parse-for-stmt (0.005ms) +ok parse-unary-not (0.003ms) +ok parse-unary-neg (0.003ms) +ok parse-array-literal (0.006ms) +ok parse-empty-array (0.003ms) +ok parse-index-expr (0.006ms) +ok codegen-includes (0.288ms) +ok codegen-int-main (0.090ms) +ok codegen-runtime-init (0.075ms) +ok codegen-void-function-signature (0.106ms) +ok codegen-function-with-params (0.133ms) +ok codegen-int-literal (0.080ms) +ok codegen-string-literal (0.062ms) +ok codegen-if-statement (0.072ms) +ok codegen-if-else (0.070ms) +ok codegen-while-loop (0.115ms) +ok codegen-let-binding (0.069ms) +ok codegen-function-call (0.063ms) +ok codegen-string-concat (0.068ms) +ok codegen-int-arithmetic (0.063ms) +ok codegen-comparison (0.062ms) +ok codegen-string-equality (0.066ms) +ok codegen-logical-and (0.069ms) +ok codegen-logical-or (0.100ms) +ok codegen-unary-not (0.068ms) +ok codegen-string-escape-in-c (0.064ms) +ok codegen-many-functions (0.089ms) +ok codegen-deep-expression (0.080ms) +ok codegen-forward-declarations (0.066ms) +ok codegen-for-loop (0.249ms) +ok codegen-extern-fn (0.070ms) +ok codegen-nested-calls (0.063ms) +ok compiler-minimal-program (0.059ms) +ok compiler-pure-library (0.062ms) +ok compiler-multiple-fns-with-main (0.071ms) +ok compiler-let-in-main (0.082ms) +ok compiler-string-concat-chain (0.077ms) +ok compiler-negative-literal (0.060ms) +ok compiler-stdint-include (0.054ms) +ok decorator-undecorated-fn-has-no-beat (0.054ms) +ok decorator-authenticate-compiles-to-nothing (0.117ms) +ok declared-construct-name-unknown-to-codegen (0.070ms) +ok undeclared-construct-still-injects-nothing (0.061ms) +ok undeclared-guard-emits-nothing (0.062ms) +ok seam-indirection-emitted-on-every-fn (0.066ms) +ok seam-emitted-without-any-decorator (0.060ms) +ok seam-replaces-inlined-entry-injection (0.054ms) +ok seam-entry-is-refusable (0.053ms) +ok seam-is-emitted-for-undecorated-fns (0.058ms) +ok every-fn-gets-a-body-helper-and-wrapper (0.095ms) +ok exit-crossing-goes-through-the-seam (0.063ms) +ok early-returns-route-through-the-exit-seam (0.066ms) +ok every-fn-gets-a-closure (0.057ms) +ok zero-param-fn-emits-valid-c (0.057ms) +ok compiler-no-longer-emits-prohibition-errors (0.072ms) +ok int-returning-builtin-drives-arithmetic-dispatch (0.086ms) +ok string-plus-string-still-concatenates (0.059ms) +ok freed-identifiers-compile-as-identifiers (0.067ms) +ok test-keyword-is-still-reserved (0.057ms) +ok instant-plus-bare-int-is-refused (0.067ms) +ok instant-plus-unit-suffix-is-allowed (0.125ms) + +105 tests, 105 passed, 0 failed, 253 assertions in 4.589ms +native_suite_exit=0 diff --git a/docs/v2/experiments/evidence/ITERATION/0005-native-suite.prov b/docs/v2/experiments/evidence/ITERATION/0005-native-suite.prov new file mode 100644 index 0000000..9f8bf17 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0005-native-suite.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:48:52Z +exit 0 +ms 4078 +sha256_out 567d6f328b1801daad2fcab0adeea2a8cbfc589def13b89b454917a4717077fa +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0005-native-suite.rc b/docs/v2/experiments/evidence/ITERATION/0005-native-suite.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0005-native-suite.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.cmd b/docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.cmd new file mode 100644 index 0000000..6a46ef4 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el/lang && tests/integration/annotation_query.sh /tmp/rerun-v2-shared/elc2 diff --git a/docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.err b/docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.out b/docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.out new file mode 100644 index 0000000..c8db949 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.out @@ -0,0 +1,7 @@ + ok Int annotated on a String literal is caught + ok and names the variable + ok String annotated on an Int literal is caught + ok correct annotations are clean + ok the compiler's own source is clean — no false positives + + 5 assertions, 5 passed, 0 failed diff --git a/docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.prov b/docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.prov new file mode 100644 index 0000000..f00e83c --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:48:54Z +exit 0 +ms 1615 +sha256_out fd8354898660faa4fae68be1e10dfd30326d2cc60412fb42a87b6db3d1c8dd8f +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.rc b/docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.cmd b/docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.cmd new file mode 100644 index 0000000..5b4a12c --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el/lang && tests/integration/arity_query.sh /tmp/rerun-v2-shared/elc2 diff --git a/docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.err b/docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.out b/docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.out new file mode 100644 index 0000000..282b74e --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.out @@ -0,0 +1,9 @@ + ok the emitter does not adjudicate arity + ok a wrong-arity call is caught + ok the expected count is correct + ok a correct call is clean + ok the header yields a plausible number of signatures + ok a wrong-arity call on a real builtin is caught + ok and the expected count is not 0 + + 6 assertions, 6 passed, 0 failed diff --git a/docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.prov b/docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.prov new file mode 100644 index 0000000..25e34e6 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:48:54Z +exit 0 +ms 190 +sha256_out bed0f3085439f29d1187491babba1f67167e2f3f41220303bb80168facdf5204 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.rc b/docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.cmd b/docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.cmd new file mode 100644 index 0000000..81838f5 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el/lang && tests/integration/async_future.sh /tmp/rerun-v2-shared/elc2 diff --git a/docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.err b/docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.out b/docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.out new file mode 100644 index 0000000..da06c59 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.out @@ -0,0 +1,8 @@ + ok unbound: no construct, synchronous, correct result + ok unbound: el_await on a non-future passes through, no crash + ok bound: does not crash + ok bound: the awaited result is correct + ok bound: the caller continues BEFORE the body finishes + ok bound: the wrap returns in under 10ms while the body takes 50ms + + 6 assertions, 6 passed, 0 failed diff --git a/docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.prov b/docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.prov new file mode 100644 index 0000000..e5524db --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:48:58Z +exit 0 +ms 3499 +sha256_out ac52afda852cfe4d226b7fbe46cedbb3bc22be2b592af815e88c41a2f9d23b5d +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.rc b/docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.cmd b/docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.cmd new file mode 100644 index 0000000..54db479 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el/lang && tests/integration/capability_query.sh /tmp/rerun-v2-shared/elc2 diff --git a/docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.err b/docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.out b/docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.out new file mode 100644 index 0000000..47f5bbe --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.out @@ -0,0 +1,7 @@ + ok the emitter does not adjudicate + ok a utility calling a DHARMA primitive is caught + ok the offending fn is named + ok a clean program exits 0 + ok editing the policy file changes enforcement, no rebuild + + 5 assertions, 5 passed, 0 failed diff --git a/docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.prov b/docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.prov new file mode 100644 index 0000000..2a832e2 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:48:58Z +exit 0 +ms 132 +sha256_out a358a4c0b68c6f95bef05d6c7d37a0feddf41c6c9783df41c3cc0275c7b98e75 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.rc b/docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.cmd b/docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.cmd new file mode 100644 index 0000000..737c937 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el/lang && tests/integration/definitions_query.sh /tmp/rerun-v2-shared/elc2 diff --git a/docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.err b/docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.out b/docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.out new file mode 100644 index 0000000..3e8a7d8 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.out @@ -0,0 +1,8 @@ + ok a collision across modules is caught at El level + ok the colliding name is reported + ok and the reason is given + ok both source FILES are named + ok with file-local line numbers, not combined ones + ok a clean program exits 0 + + 6 assertions, 6 passed, 0 failed diff --git a/docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.prov b/docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.prov new file mode 100644 index 0000000..dc9f5d9 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:48:58Z +exit 0 +ms 74 +sha256_out f7f5ab1979eff191df48ae3cb335c5306d95d51f40df2ab21101e8d5e087aee9 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.rc b/docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.cmd b/docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.cmd new file mode 100644 index 0000000..e657486 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el/lang && tests/integration/prohibition_query.sh /tmp/rerun-v2-shared/elc2 diff --git a/docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.err b/docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.out b/docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.out new file mode 100644 index 0000000..6b66fa6 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.out @@ -0,0 +1,6 @@ + ok a violation outside the boundary is caught + ok the offending fn is named + ok a call inside the boundary is NOT flagged + ok a clean program exits 0 + + 4 assertions, 4 passed, 0 failed diff --git a/docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.prov b/docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.prov new file mode 100644 index 0000000..cca4ce4 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:48:58Z +exit 0 +ms 74 +sha256_out 368db4596231e9f64a551b08afd54d98cfeb6857c06a940d465ee7178812ab80 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.rc b/docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.cmd b/docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.cmd new file mode 100644 index 0000000..ae7cdca --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el/lang && tests/integration/seam_binding.sh /tmp/rerun-v2-shared/elc2 diff --git a/docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.err b/docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.out b/docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.out new file mode 100644 index 0000000..f72835b --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.out @@ -0,0 +1,9 @@ + ok unbound program is unaffected + ok a construct declared AFTER the build applies + ok a construct declared after the build can REFUSE + ok an unlinked target is skipped, not fatal + ok a binding for a different fn does not fire + ok two constructs compose on one crossing + ok an EXIT construct declared after the build replaces the result + + 7 assertions, 7 passed, 0 failed diff --git a/docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.prov b/docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.prov new file mode 100644 index 0000000..cac03ae --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:49:02Z +exit 0 +ms 3466 +sha256_out 03d3e2e45ceb69b512d12b292f32e5cf7d36d10925fc8abb8f5273e83e8b6287 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.rc b/docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.cmd b/docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.cmd new file mode 100644 index 0000000..9090404 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el/lang && tests/integration/seam_caller.sh /tmp/rerun-v2-shared/elc2 diff --git a/docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.err b/docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.out b/docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.out new file mode 100644 index 0000000..45c1fcf --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.out @@ -0,0 +1,7 @@ + ok unbound: nothing is reported + ok bound: the caller is visible + ok bound: and it changes per call site + ok the program still completes + ok no fourth emission point was added + + 5 assertions, 5 passed, 0 failed diff --git a/docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.prov b/docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.prov new file mode 100644 index 0000000..ed0af13 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:49:05Z +exit 0 +ms 3509 +sha256_out 1f53370a31a6052b27c243753991fbdbc3a10e39a5af9ca3399d1ee36f877e78 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.rc b/docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.cmd b/docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.cmd new file mode 100644 index 0000000..eba7a6c --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el/lang && tests/integration/tagged_gate.sh /tmp/rerun-v2-shared/elc2 diff --git a/docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.err b/docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.out b/docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.out new file mode 100644 index 0000000..5666968 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.out @@ -0,0 +1,12 @@ + ok an integer where a string is expected does not crash + ok and yields the empty-string hash, not memory + ok a NEGATIVE integer does not crash + ok a legitimate string still hashes correctly + ok the gate is exported, so siblings stop re-deriving it + ok abc hashes correctly + ok a hashes correctly + ok hello world hashes correctly + ok the empty string still hashes to e3b0... + ok and no literal silently hashed as empty + + 10 assertions, 10 passed, 0 failed diff --git a/docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.prov b/docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.prov new file mode 100644 index 0000000..c248280 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:49:19Z +exit 0 +ms 13622 +sha256_out 54ed74debfd5061190b7c6aaecabea13295684ac75502ce77a7a7b0e2e7778e4 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.rc b/docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.cmd b/docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.cmd new file mode 100644 index 0000000..f899d9e --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el/lang && tests/integration/temporal_query.sh /tmp/rerun-v2-shared/elc2 diff --git a/docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.err b/docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.out b/docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.out new file mode 100644 index 0000000..2c57832 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.out @@ -0,0 +1,8 @@ + ok the illegal combination is recorded, not judged, by the emitter + ok the emitter no longer authors the message + ok a placeholder is still emitted for the illegal expression + ok the query judges it + ok and explains why, from data + ok a legal program exits 0 + + 6 assertions, 6 passed, 0 failed diff --git a/docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.prov b/docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.prov new file mode 100644 index 0000000..2d1d31a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:49:19Z +exit 0 +ms 70 +sha256_out 436146bdf1d4fb9f140b34e4564f13e55947df21d336f3e206e79739c04a427c +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.rc b/docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.cmd b/docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.cmd new file mode 100644 index 0000000..fb82818 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el/lang && tests/integration/temporal_signatures.sh /tmp/rerun-v2-shared/elc2 diff --git a/docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.err b/docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.out b/docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.out new file mode 100644 index 0000000..bb30aab --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.out @@ -0,0 +1,6 @@ + ok an inferred Instant + Duration dispatches to the typed wrapper + ok with no signature file, the type is unknown and it does not + ok Instant + Instant is still refused + ok Instant + Duration is allowed + + 4 assertions, 4 passed, 0 failed diff --git a/docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.prov b/docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.prov new file mode 100644 index 0000000..663faa3 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:49:19Z +exit 0 +ms 42 +sha256_out 0bd625826ed7f836523503c438bf74b1be67b7dbcc378bf9debe7b9d14cbff8f +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.rc b/docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.cmd b/docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.cmd new file mode 100644 index 0000000..76ade29 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el/lang && tests/integration/unguarded_deref.sh /tmp/rerun-v2-shared/elc2 diff --git a/docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.err b/docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.out b/docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.out new file mode 100644 index 0000000..7740e82 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.out @@ -0,0 +1,8 @@ + ok list_join on an integer does not crash + ok list_push_front on an integer does not crash + ok a field access on an integer does not crash + ok sha256_hex on an integer does not crash + ok a legitimate list still joins + ok the ratchet holds at or below baseline + + 6 assertions, 6 passed, 0 failed diff --git a/docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.prov b/docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.prov new file mode 100644 index 0000000..e9d835d --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:49:36Z +exit 0 +ms 16966 +sha256_out 6c7f1c73d0b03bd8c7fb37aedaa1ef53c06bfda070dda4d923e788f08ffb7f83 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.rc b/docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.cmd b/docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.cmd new file mode 100644 index 0000000..d611409 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.cmd @@ -0,0 +1 @@ +bash -c cd /Users/will/Development/neuron-technologies/foundation/el/lang && tests/integration/units_as_data.sh /tmp/rerun-v2-shared/elc2 diff --git a/docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.err b/docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.out b/docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.out new file mode 100644 index 0000000..0b2f7d0 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.out @@ -0,0 +1,8 @@ + ok a known unit still lowers to a DurationLit + ok an unknown unit is NOT a duration + ok adding it to DATA makes it syntax — no compiler change + ok the vocabulary has ONE copy — parser holds it + ok and codegen carries no second copy + ok the Earth day is data, not a constant + + 6 assertions, 6 passed, 0 failed diff --git a/docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.prov b/docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.prov new file mode 100644 index 0000000..34f2271 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:49:36Z +exit 0 +ms 44 +sha256_out bbffa5273b597acd20229782a7bcf619bfeb3f723ef89ad67fcc36b1ab0efbc8 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.rc b/docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.cmd b/docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.cmd new file mode 100644 index 0000000..8a4433c --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.cmd @@ -0,0 +1 @@ +awk { l=$0; sub(/^[ \t]+/,"",l); if (l=="") blank++; else if (substr(l,1,2)=="//") comment++; else code++ } END { printf "file=%s\ntotal_lines=%d\ncode=%d\ncomment=%d\nblank=%d\ncode_pct=%.1f%%\ncomment_pct=%.1f%%\n", FILENAME, NR, code, comment, blank, 100*code/NR, 100*comment/NR } lang/el-compiler/src/codegen.el diff --git a/docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.err b/docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.out b/docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.out new file mode 100644 index 0000000..7184aff --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.out @@ -0,0 +1,7 @@ +file=lang/el-compiler/src/codegen.el +total_lines=4434 +code=3197 +comment=981 +blank=256 +code_pct=72.1% +comment_pct=22.1% diff --git a/docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.prov b/docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.prov new file mode 100644 index 0000000..d82ebae --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:49:51Z +exit 0 +ms 14 +sha256_out 3e06f0fe32264456fe469d812acd2f15bc888c82759060c731cf606785f7ed12 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.rc b/docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.cmd b/docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.cmd new file mode 100644 index 0000000..f938801 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.cmd @@ -0,0 +1 @@ +bash -c cd lang; tot=0; for h in tests/integration/*.sh; do n=$(bash "$h" /tmp/rerun-v2-shared/elc2 2>&1 | grep -oE "[0-9]+ assertions" | grep -oE "[0-9]+" | head -1); tot=$((tot+${n:-0})); printf "%-24s %s\n" "$(basename $h .sh)" "${n:-0}"; done; printf "\nharnesses = %s\ntotal assertions = %s\n" "$(ls tests/integration/*.sh | wc -l | tr -d " ")" "$tot" diff --git a/docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.err b/docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.out b/docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.out new file mode 100644 index 0000000..21094e8 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.out @@ -0,0 +1,16 @@ +annotation_query 5 +arity_query 6 +async_future 6 +capability_query 5 +definitions_query 6 +prohibition_query 4 +seam_binding 7 +seam_caller 5 +tagged_gate 10 +temporal_query 6 +temporal_signatures 4 +unguarded_deref 6 +units_as_data 6 + +harnesses = 13 +total assertions = 76 diff --git a/docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.prov b/docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.prov new file mode 100644 index 0000000..9f9b7fc --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:50:35Z +exit 0 +ms 44510 +sha256_out dc670c8fb09ae54116dfa262c7f0fb82cf81289aac108c87c670e715c81efabb +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.rc b/docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.cmd b/docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.cmd new file mode 100644 index 0000000..96cea54 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.cmd @@ -0,0 +1 @@ +bash -c cd lang && tools/check/unguarded-deref.sh; echo "ratchet_exit=$?" diff --git a/docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.err b/docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.out b/docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.out new file mode 100644 index 0000000..41bfec4 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.out @@ -0,0 +1,14 @@ + el_runtime.c:576 ElList* old = (ElList*)(uintptr_t)listv; + el_runtime.c:1575 ElMap* m = (ElMap*)(uintptr_t)headers_map; + el_runtime.c:1621 ElMap* hm = (ElMap*)(uintptr_t)hv; + el_runtime.c:17814 ElList* lst = (ElList*)(uintptr_t)tools_list; + el_runtime.c:17985 ElList* tl = (ElList*)(uintptr_t)tools; + el_runtime_win32.c:483 ElList* l = (ElList*)(uintptr_t)lv; + el_runtime_win32.c:488 ElList* l = (ElList*)(uintptr_t)lv; + el_runtime_win32.c:494 ElList* old = (ElList*)(uintptr_t)lv; + el_runtime_win32.c:529 ElList* old = (ElList*)(uintptr_t)lv; + el_runtime_win32.c:567 ElMap* m = (ElMap*)(uintptr_t)mv; + el_runtime_win32.c:580 ElMap* m = (ElMap*)(uintptr_t)mv; + + ok 11 unguarded casts, at baseline 11 +ratchet_exit=0 diff --git a/docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.prov b/docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.prov new file mode 100644 index 0000000..4aeb179 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:50:35Z +exit 0 +ms 59 +sha256_out aa76315e49e9d7647e0f3a8db389a3c092dede50c1ce516c35e4fb421bd00e1e +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.rc b/docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.cmd b/docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.cmd new file mode 100644 index 0000000..18ab2b4 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.cmd @@ -0,0 +1 @@ +bash -c echo "measurement window: a116710b..HEAD"; echo; echo "--- commits in window touching lang/ ---"; git log --oneline a116710b..HEAD -- lang/ ; echo "(empty above means no compiler or runtime source changed during measurement)"; echo; echo "--- commits in window touching scripts/ or tools/evidence/capture.sh ---"; git log --oneline a116710b..HEAD -- scripts/ tools/evidence/capture.sh; echo; echo "--- total commits in window ---"; git rev-list --count a116710b..HEAD diff --git a/docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.err b/docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.out b/docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.out new file mode 100644 index 0000000..b31fce0 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.out @@ -0,0 +1,9 @@ +measurement window: a116710b..HEAD + +--- commits in window touching lang/ --- +(empty above means no compiler or runtime source changed during measurement) + +--- commits in window touching scripts/ or tools/evidence/capture.sh --- + +--- total commits in window --- +5 diff --git a/docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.prov b/docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.prov new file mode 100644 index 0000000..c30d585 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:50:35Z +exit 0 +ms 28 +sha256_out f1ec7f85c5370e7a5667800f764e8763baeeb1a7b1f2410294b4ebf7c0778e4b +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.rc b/docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.cmd b/docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.cmd new file mode 100644 index 0000000..88d92d8 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.cmd @@ -0,0 +1 @@ +./tools/evidence/verify-manifest.sh docs/v2/experiments/evidence/cycles diff --git a/docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.err b/docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.out b/docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.out new file mode 100644 index 0000000..b72ae64 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.out @@ -0,0 +1,220 @@ + DIRTY-TREE 05-the-metric-counted-comments/0001-tree-state-at-start.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 05-the-metric-counted-comments/0002-landing-commits.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 05-the-metric-counted-comments/0003-baseline-commit-4661.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 05-the-metric-counted-comments/0004-baseline-4661-cited-in-v1.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 05-the-metric-counted-comments/0011-DELTA-code-comment-total-recomputed.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 05-the-metric-counted-comments/0012-BUCKET-SUM-consistency-check.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 05-the-metric-counted-comments/0013-NEWLINE-CHECK-file-ends-with-newline.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0001-00-git-status-porcelain.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0002-01-landing-commits.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0003-02-head-at-capture.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0004-03-branch-empty-probe-search.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0005-04-current-branch.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0006-p3-segv-source.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0007-p3-exit-THROUGH-A-PIPE.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0008-p3-exit-CAPTURED-DIRECT.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0009-p3-capture-sh-own-rc-on-segv.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0010-p3-capture-sh-direct-rc-line.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0011-p5-verify-sh-globs-integration.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0012-p5-harnesses-the-glob-finds.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0013-p5-harness-count.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0014-p5-git-log-S-hardcoded-list.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0015-p5-grep-docs-hardcoded-list.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0016-p1-verify-sh-stage-headers.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0017-p1-verify-sh-full-source.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0018-p1-verify-sh-linecount.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0019-fixpoint-rule-gen2-gen3.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0020-exitcode-direct-not-pipe.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0021-verify-merge-sh-full-source.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0022-instruments-unchanged-since-6c80dee.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0023-instruments-introduced-by-6c80dee.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0027-p4-referenced-artifact-binding.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0028-p4-a116710b-is-ancestor-of-iteration2.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0029-findings-measurement-defects-v2-at-6c80dee.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0030-findings-measurement-defects-entry-count-at-6c80dee.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0031-findings-v1-defect-headings-at-6c80dee.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0032-p3-v1-defect-4-read-the-wrong-exit-code.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0033-enumeration-defect-commits-two-days.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0034-p2-historical-empty-probe-merge-search.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0035-zz-head-at-end-of-capture.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0036-zz-git-status-porcelain-at-end.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0037-p3-does-verify-sh-DETECT-pipe-misuse.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0038-p3-pipe-WITH-pipefail-set.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 04-verification-was-a-convention/0039-p3-pipe-WITHOUT-pipefail.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0001-00-pinned-commit-stack.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0002-01-runtime-diff-introduced-by-d9d1571.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0003-02-seam-depth-stack-source-as-landed.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0004-03-BASE-has-no-depth-stack.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0005-04-binaries-under-test.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0006-05-workload-identical-in-both-worktrees.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0007-06-timing-WARMUP-base.out (commit d403a5cf2e72) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0008-07-timing-WARMUP-stack.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0009-timing-round1-BASE.out (commit d403a5cf2e72) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0010-timing-round1-STACK.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0011-timing-round2-BASE.out (commit d403a5cf2e72) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0012-timing-round2-STACK.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0013-timing-round3-BASE.out (commit d403a5cf2e72) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0014-timing-round3-STACK.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0015-timing-round4-BASE.out (commit d403a5cf2e72) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0016-timing-round4-STACK.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0017-timing-round5-BASE.out (commit d403a5cf2e72) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0018-timing-round5-STACK.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0019-timing-round6-BASE.out (commit d403a5cf2e72) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0020-timing-round6-STACK.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0021-timing-round7-BASE.out (commit d403a5cf2e72) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0022-timing-round7-STACK.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0023-22-TIMING-SUMMARY-computed-from-manifest.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0024-23-TIMING-SUMMARY-computed-from-manifest.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0025-24-COLD-vs-WARM-explains-the-phantom-regression.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0026-25-EMISSION-POINTS-from-emitted-C-simple.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0027-26-EMISSION-POINTS-from-emitted-C-loops-calls-fields.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0028-27-EMISSION-POINT-ENUMERATION-per-function.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0029-28-emitted-C-full-probe.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0030-29-probe-source-loops-calls-fields.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0031-30-CONTROL-seam_caller-harness-at-d9d1571.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 07-the-caller-was-already-there/0041-40-worktree-clean-at-end.out (commit d9d1571f2a17) — not reproducible by checkout + DIRTY-TREE 01-the-compiler-was-never-measured/0001-worktree-dirt-at-capture-start.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 01-the-compiler-was-never-measured/0018-measurement-window-commits-touched-docs-only.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0001-git-status-porcelain.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0002-harness-annotation_query.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0003-harness-arity_query.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0004-harness-async_future.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0005-harness-capability_query.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0006-harness-definitions_query.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0007-harness-prohibition_query.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0008-harness-seam_binding.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0009-harness-seam_caller.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0010-harness-tagged_gate.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0011-harness-temporal_query.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0012-harness-temporal_signatures.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0013-harness-unguarded_deref.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0014-harness-units_as_data.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0015-harness-count.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0016-assertion-tally-per-harness.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0017-native-suite-emit-c.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0018-native-suite-link.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0019-native-suite-run.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0020-grep-mutant-lang-scripts-tools.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0021-grep-mutation-lang-scripts-tools.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0022-grep-mutation-in-verify-sh.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0023-verify-sh-stage-headers.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0024-grep-mutation-with-context.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0025-grep-c-occurrences-per-harness.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0026-chk-call-count-per-harness.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0027-git-log-S503-arity-query.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0028-arity-query-before-9cc6040.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0029-arity-query-503-assertion-before.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0030-arity-query-signatures-assertion-after.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0031-arity-query-diff-47b56a3.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0032-ratchet-baseline-literal.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0033-ratchet-run-current.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0034-git-show-a116710b.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0035-git-log-cycle08-doc-history.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0036-git-show-d936bde-seal.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0037-doc-at-seal-d936bde.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0038-doc-diff-seal-to-head.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0039-index-entry-cycle08.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0040-readme-entry-cycle08.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0041-index-entry-cycle08-00INDEX.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0042-elc-head-binary-sha256.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 08-PREDICTIONS/0043-verify-manifest-control.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0001-git-status-porcelain.out (commit d63815316c55) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0002-head-sha-at-start.out (commit d63815316c55) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0003-ratchet-at-HEAD.out (commit d63815316c55) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0004-landing-commits.out (commit d63815316c55) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0005-landing-commit-3aa6c56.out (commit d63815316c55) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0006-landing-commit-272b2c9.out (commit d63815316c55) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0007-cast-counts-at-HEAD.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0008-harness-unguarded-deref-at-HEAD.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0009-elrun-HEAD-c1_string_42.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0010-elrun-HEAD-c2_sha256_int.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0011-elrun-HEAD-c3_fortnights.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0012-elrun-HEAD-c4_list_join_int.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0013-elrun-HEAD-c5_list_push_front_int.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0014-elrun-HEAD-c6_legit_list_join.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0015-elrun-HEAD-c8_map_get_int.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0016-elrun-HEAD-c9_get_int.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0017-elrun-HEAD-c9_get_int.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0018-blindspot-EL_CSTR-cast-macro.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0020-elrun-PREFIX-ebb4f1f-c4_list_join_int.out (commit ebb4f1f43bb2) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0021-four-builtins-guarded-at-HEAD.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0022-four-builtins-guarded-at-HEAD-v2.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0023-four-builtins-UNGUARDED-at-PREFIX-ebb4f1f.out (commit ebb4f1f43bb2) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0024-ratchet-ABSENT-at-PREFIX-ebb4f1f.out (commit ebb4f1f43bb2) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0027-ratchet-probeA2-new-unguarded-deref.out (commit 3aa6c569d57d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0028-ratchet-probeC-new-unguarded-deref.out (commit 3aa6c569d57d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0029-ratchet-probeD2-new-unguarded-deref.out (commit 3aa6c569d57d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0030-win32-not-built-on-this-platform.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 03-a-gate-with-no-detector/0031-harness-cases-vs-doc-five.out (commit fa03a0a60d6d) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.out (commit 1a5246667d80) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.out (commit 1a5246667d80) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.out (commit 1a5246667d80) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.out (commit 1a5246667d80) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.out (commit 1a5246667d80) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.out (commit 1a5246667d80) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.out (commit 1a5246667d80) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.out (commit 1a5246667d80) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.out (commit 1a5246667d80) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0010-09-alignment-probe-source-align5.out (commit 1a5246667d80) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0011-10-alignment-probe-source-align20.out (commit 1a5246667d80) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0012-11-FIXED-pinned-commit.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0013-12-FIXED-el_input_len-source.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.out (commit 1a5246667d80) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.out (commit 1a5246667d80) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.out (commit 1a5246667d80) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.out (commit abb0ab41980f) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0001-00-worktree-clean-at-start.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0002-01-pinned-commit.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0003-02-BEFORE-compiler-binary-stat-and-sha.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0004-03-BEFORE-units-rel-contents.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0005-04-BEFORE-units-rel-entry-count.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0006-05-BEFORE-fortnight-absent-from-whole-repo.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0007-06-BEFORE-emit-C-for-3-fortnights.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0008-07-BEFORE-emit-C-for-5-hours-control.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0009-08-BEFORE-grep-fortnight-lowering.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0010-09-THE-DATA-EDIT-two-lines-appended.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0011-10-THE-DATA-EDIT-git-diff.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0012-11-THE-DATA-EDIT-git-diff-stat.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0013-12-AFTER-compiler-binary-stat-and-sha-UNCHANGED.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0014-13-PROOF-binary-mtime-PREDATES-data-edit.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0015-14-AFTER-emit-C-for-3-fortnights.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0016-15-AFTER-grep-fortnight-lowering.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0017-16-AFTER-compile-and-link-the-emitted-C.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0018-17-AFTER-RUN-3-fortnights-native.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0019-18-AFTER-expected-value-arithmetic.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0020-19-REVERT-the-data-edit.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0021-20-REVERT-worktree-clean-again.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0022-21-AFTER-REVERT-fortnights-is-a-field-access-again.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0023-22-P4-earth-day-is-data.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0024-23-P2-no-unit-name-in-lexer-keyword-table.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0025-24-ONE-COPY-parser-holds-vocabulary.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0026-25-codegen-duration_unit_nanos-now-delegates.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0027-26-BEFORE-two-hand-maintained-copies-at-8cb7613.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0028-27-BEFORE-entry-counts-in-both-copies-at-8cb7613.out (commit e82d941b5f96) — not reproducible by checkout + DIRTY-TREE 06-form-is-half-bindable/0029-28-CONTROL-units_as_data-harness-at-e82d941.out (commit e82d941b5f96) — not reproducible by checkout + evidence: 250 artifacts verified, 0 altered, 0 missing diff --git a/docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.prov b/docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.prov new file mode 100644 index 0000000..118fb76 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:50:53Z +exit 0 +ms 3279 +sha256_out 2e774324c50d1620b97f3545c7792dc27d1ea7ed609790f4af468594d1f08331 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.rc b/docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.cmd b/docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.cmd new file mode 100644 index 0000000..0cc5fd7 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.cmd @@ -0,0 +1 @@ +bash -c cd docs/v2/experiments/evidence; for d in cycles/*/; do printf "%-42s artifacts=%-4s claims=%s\n" "$(basename $d)" "$(ls $d*.out 2>/dev/null | wc -l | tr -d " ")" "$([ -f $d/CLAIMS.md ] && echo yes || echo NO)"; done; printf "\n%-42s artifacts=%s\n" "ITERATION" "$(ls ITERATION/*.out | wc -l | tr -d " ")"; printf "\ntotal artifact files = %s\n" "$(find . -type f | wc -l | tr -d " ")" diff --git a/docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.err b/docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.out b/docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.out new file mode 100644 index 0000000..468af8d --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.out @@ -0,0 +1,12 @@ +01-the-compiler-was-never-measured artifacts=18 claims=yes +02-seven-tables-and-a-shipped-defect artifacts=33 claims=yes +03-a-gate-with-no-detector artifacts=31 claims=yes +04-verification-was-a-convention artifacts=39 claims=yes +05-the-metric-counted-comments artifacts=16 claims=yes +06-form-is-half-bindable artifacts=29 claims=yes +07-the-caller-was-already-there artifacts=41 claims=yes +08-PREDICTIONS artifacts=43 claims=yes + +ITERATION artifacts=24 + +total artifact files = 1406 diff --git a/docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.prov b/docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.prov new file mode 100644 index 0000000..5445783 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:50:54Z +exit 0 +ms 65 +sha256_out 0692f14cfdf3c1f0521e7c168cbc6e4355ade06cf15556d205e707bfa41a4253 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.rc b/docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.cmd b/docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.cmd new file mode 100644 index 0000000..af03ced --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.cmd @@ -0,0 +1 @@ +git status --porcelain diff --git a/docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.err b/docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.out b/docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.out new file mode 100644 index 0000000..1075691 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.out @@ -0,0 +1,472 @@ + M docs/experiments/evidence/MANIFEST.tsv + M docs/experiments/instruments/instrument/line-count/evidence/MANIFEST.tsv + M docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/CLAIMS.md + M docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/MANIFEST.tsv + M docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/MANIFEST.tsv + M docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/MANIFEST.tsv + M docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/MANIFEST.tsv + M docs/v1/experiments/evidence/cycles/09-policy-inside-the-compiler/CLAIMS.md + M docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0047-REDO-arity-coverage-probe-both-sides.out + M docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/MANIFEST.tsv + M docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/MANIFEST.tsv + M docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/MANIFEST.tsv + M docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/MANIFEST.tsv + M docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/MANIFEST.tsv + M docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0011-post-native-suite.out + M docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/MANIFEST.tsv + M docs/v2/experiments/evidence/ITERATION/MANIFEST.tsv + M docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/MANIFEST.tsv + M tools/evidence/verify-manifest.sh +?? docs/experiments/evidence/0003-codegen-series-cloc.cmd +?? docs/experiments/evidence/0003-codegen-series-cloc.err +?? docs/experiments/evidence/0003-codegen-series-cloc.out +?? docs/experiments/evidence/0003-codegen-series-cloc.prov +?? docs/experiments/evidence/0003-codegen-series-cloc.rc +?? docs/experiments/evidence/0019-compiler-series-cloc.cmd +?? docs/experiments/evidence/0019-compiler-series-cloc.err +?? docs/experiments/evidence/0019-compiler-series-cloc.out +?? docs/experiments/evidence/0019-compiler-series-cloc.prov +?? docs/experiments/evidence/0019-compiler-series-cloc.rc +?? docs/experiments/instruments/CALIBRATION-20260817T174713Z.txt +?? docs/experiments/instruments/CALIBRATION-20260817T174754Z.txt +?? docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.cmd +?? docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.err +?? docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.out +?? docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.prov +?? docs/experiments/instruments/instrument/line-count/evidence/0003-cloc-calibration.rc +?? docs/experiments/instruments/instrument/plot/ +?? docs/experiments/reproduce.sh +?? docs/experiments/v2/ +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.cmd +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.err +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.out +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.prov +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0019-manifest-tsv-row-integrity-audit.rc +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.cmd +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.err +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.out +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.prov +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0020-verify-manifest-full-run.rc +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.cmd +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.err +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.out +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.prov +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0021-verify-manifest-full-run-ABSOLUTE.rc +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.cmd +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.err +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.out +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.prov +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0022-verifier-false-pass-on-empty-dir.rc +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.cmd +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.err +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.out +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.prov +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0023-claimed-vs-observed-offset-table.rc +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.cmd +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.err +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.out +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.prov +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0024-baseline-4661-span-reconciliation.rc +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.cmd +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.err +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.out +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.prov +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-codegen-linecounts/0025-FINAL-verify-manifest-all-cycles.rc +?? docs/v1/experiments/evidence/cycles/00-cross-cycle-emitter-nondeterminism-DEFECT/ +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.cmd +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.err +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.out +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.prov +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0207-P3-control-binaries-wrapper-content.rc +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.cmd +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.err +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.out +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.prov +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0214-REDO-P3-control-binaries-wrapper-content.rc +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.cmd +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.err +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.out +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.prov +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0215-b40754f-tree-vs-285166c.rc +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.cmd +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.err +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.out +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.prov +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0223-sec6-figures-source-and-rederivation.rc +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.cmd +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.err +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.out +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.prov +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0224-harness-tally-arithmetic-285166c.rc +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.cmd +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.err +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.out +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.prov +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/0225-REDO-harness-tally-history.rc +?? docs/v1/experiments/evidence/cycles/03-the-wrapper-was-conditional/CLAIMS.md +?? docs/v1/experiments/evidence/cycles/04-c-has-no-closure-syntax/CLAIMS.md +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.cmd +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.err +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.out +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.prov +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0276-hottest-functions-measured-06a.rc +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.cmd +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.err +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.out +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.prov +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0296-RECONSTRUCTED-seam-cost-timing-06a.rc +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.cmd +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.err +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.out +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.prov +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0297-RECONSTRUCTED-free-when-unused-06a.rc +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.cmd +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.err +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.out +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.prov +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0298-REDO-free-when-unused-clean-binary-06a.rc +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.cmd +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.err +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.out +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.prov +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0299-exit-phase-bindability-check.rc +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.cmd +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.err +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.out +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.prov +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0324-RECONSTRUCTED-exit-binding-probe-06b.rc +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.cmd +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.err +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.out +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.prov +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0325-RECONSTRUCTED-exit-binding-probe-06e.rc +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.cmd +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.err +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.out +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.prov +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0326-strip-table-verification-28d19da.rc +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.cmd +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.err +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.out +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.prov +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0348-residual-kind-references-28d19da.rc +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.cmd +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.err +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.out +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.prov +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/0363-fn-count-vs-seam-sites-06a.rc +?? docs/v1/experiments/evidence/cycles/06-the-crossing-resolves-at-emission/CLAIMS.md +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0039-thunk-noargs-and-seam-caller-search.cmd +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0039-thunk-noargs-and-seam-caller-search.err +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0039-thunk-noargs-and-seam-caller-search.out +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0039-thunk-noargs-and-seam-caller-search.prov +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0039-thunk-noargs-and-seam-caller-search.rc +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.cmd +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.err +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.out +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.prov +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0040-REDO-seam-caller-and-wrap-assertion-search.rc +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.cmd +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.err +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.out +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.prov +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0041-native-compiler-tests-gen2-binary.rc +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.cmd +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.err +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.out +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.prov +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0042-integration-seam_binding-gen2-binary.rc +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.cmd +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.err +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.out +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.prov +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0043-CONTEXT-parent-native-tests-and-integration.rc +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.cmd +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.err +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.out +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.prov +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0044-codegen-diff-parent-to-commit.rc +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.cmd +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.err +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.out +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.prov +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0045-wraps_body-scanner-branch-at-parent.rc +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.cmd +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.err +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.out +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.prov +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/0046-seam_binding-tally-history.rc +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/CLAIMS.md +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/parent07.sh +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/probe07.sh +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/thunk07.sh +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/thunk07b.sh +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/time07.sh +?? docs/v1/experiments/evidence/cycles/07-invocation-is-not-composable/time07b.sh +?? docs/v1/experiments/evidence/cycles/08-the-emitter-adjudicates/CLAIMS.md +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0047-REDO-arity-coverage-probe-both-sides.prov +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0047-REDO-arity-coverage-probe-both-sides.rc +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.cmd +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.err +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.out +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.prov +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0048-checker-defects-and-mechanism.rc +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.cmd +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.err +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.out +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.prov +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0049-coverage-gap-and-orphaned-comments.rc +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.cmd +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.err +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.out +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.prov +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/0050-shipped-parser-vs-correct-parser.rc +?? docs/v1/experiments/evidence/cycles/10-a-second-copy-of-the-header/CLAIMS.md +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.cmd +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.err +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.out +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.prov +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0012-codegen-lines-P3-clean-tree.rc +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.cmd +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.err +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.out +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.prov +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0013-signatures-name-recount-P5-clean-tree.rc +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.cmd +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.err +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.out +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.prov +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/0014-codegen-newline-termination-clean-tree.rc +?? docs/v1/experiments/evidence/cycles/11-one-type-erases-the-return/CLAIMS.md +?? docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.cmd +?? docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.err +?? docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.out +?? docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.prov +?? docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0011-codegen-lines-P4-clean-tree.rc +?? docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.cmd +?? docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.err +?? docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.out +?? docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.prov +?? docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/0012-temporal-rel-rule-recount-clean-tree.rc +?? docs/v1/experiments/evidence/cycles/12-judgment-lives-with-knowledge/CLAIMS.md +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.cmd +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.err +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.out +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.prov +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0021-head-build-gen1.rc +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.cmd +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.err +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.out +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.prov +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0022-head-emit-c-str-len-add.rc +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.cmd +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.err +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.out +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.prov +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0023-head-cc.rc +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.cmd +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.err +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.out +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.prov +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0024-head-program-run-TODAY.rc +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.cmd +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.err +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.out +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.prov +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0025-codegen-lines-P4-clean-tree.rc +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.cmd +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.err +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.out +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.prov +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/0026-is-int-call-recount-clean-tree.rc +?? docs/v1/experiments/evidence/cycles/13-thirty-five-return-types/CLAIMS.md +?? docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.cmd +?? docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.err +?? docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.out +?? docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.prov +?? docs/v1/experiments/evidence/cycles/14-keywords-that-reserve-nothing/0016-head-inert-keyword-TODAY.rc +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0011-post-native-suite.prov +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0011-post-native-suite.rc +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.cmd +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.err +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.out +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.prov +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0012-post-integration-harnesses.rc +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.cmd +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.err +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.out +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.prov +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0013-post-compiler-self-check.rc +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.cmd +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.err +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.out +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.prov +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0014-P1-stride-sites-clean-tree.rc +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.cmd +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.err +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.out +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.prov +?? docs/v1/experiments/evidence/cycles/16-tokens-carry-no-position/0015-P1-stride-sites-all-files-clean-tree.rc +?? docs/v1/experiments/evidence/cycles/17-annotations-are-never-checked/ +?? docs/v1/experiments/evidence/cycles/18-async-half-expressible/ +?? docs/v1/experiments/evidence/cycles/19-a-convention-is-not-a-gate/ +?? docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.cmd +?? docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.err +?? docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.out +?? docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.prov +?? docs/v2/experiments/evidence/ITERATION/0004-fixpoint-gen2-eq-gen3.rc +?? docs/v2/experiments/evidence/ITERATION/0005-native-suite.cmd +?? docs/v2/experiments/evidence/ITERATION/0005-native-suite.err +?? docs/v2/experiments/evidence/ITERATION/0005-native-suite.out +?? docs/v2/experiments/evidence/ITERATION/0005-native-suite.prov +?? docs/v2/experiments/evidence/ITERATION/0005-native-suite.rc +?? docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.cmd +?? docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.err +?? docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.out +?? docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.prov +?? docs/v2/experiments/evidence/ITERATION/0006-harness-annotation_query.rc +?? docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.cmd +?? docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.err +?? docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.out +?? docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.prov +?? docs/v2/experiments/evidence/ITERATION/0007-harness-arity_query.rc +?? docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.cmd +?? docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.err +?? docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.out +?? docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.prov +?? docs/v2/experiments/evidence/ITERATION/0008-harness-async_future.rc +?? docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.cmd +?? docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.err +?? docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.out +?? docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.prov +?? docs/v2/experiments/evidence/ITERATION/0009-harness-capability_query.rc +?? docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.cmd +?? docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.err +?? docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.out +?? docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.prov +?? docs/v2/experiments/evidence/ITERATION/0010-harness-definitions_query.rc +?? docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.cmd +?? docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.err +?? docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.out +?? docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.prov +?? docs/v2/experiments/evidence/ITERATION/0011-harness-prohibition_query.rc +?? docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.cmd +?? docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.err +?? docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.out +?? docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.prov +?? docs/v2/experiments/evidence/ITERATION/0012-harness-seam_binding.rc +?? docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.cmd +?? docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.err +?? docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.out +?? docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.prov +?? docs/v2/experiments/evidence/ITERATION/0013-harness-seam_caller.rc +?? docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.cmd +?? docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.err +?? docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.out +?? docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.prov +?? docs/v2/experiments/evidence/ITERATION/0014-harness-tagged_gate.rc +?? docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.cmd +?? docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.err +?? docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.out +?? docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.prov +?? docs/v2/experiments/evidence/ITERATION/0015-harness-temporal_query.rc +?? docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.cmd +?? docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.err +?? docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.out +?? docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.prov +?? docs/v2/experiments/evidence/ITERATION/0016-harness-temporal_signatures.rc +?? docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.cmd +?? docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.err +?? docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.out +?? docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.prov +?? docs/v2/experiments/evidence/ITERATION/0017-harness-unguarded_deref.rc +?? docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.cmd +?? docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.err +?? docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.out +?? docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.prov +?? docs/v2/experiments/evidence/ITERATION/0018-harness-units_as_data.rc +?? docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.cmd +?? docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.err +?? docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.out +?? docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.prov +?? docs/v2/experiments/evidence/ITERATION/0019-codegen-total-vs-comment-vs-code.rc +?? docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.cmd +?? docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.err +?? docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.out +?? docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.prov +?? docs/v2/experiments/evidence/ITERATION/0020-harness-assertion-tally.rc +?? docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.cmd +?? docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.err +?? docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.out +?? docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.prov +?? docs/v2/experiments/evidence/ITERATION/0021-unguarded-deref-ratchet.rc +?? docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.cmd +?? docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.err +?? docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.out +?? docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.prov +?? docs/v2/experiments/evidence/ITERATION/0022-measurement-window-lang-untouched.rc +?? docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.cmd +?? docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.err +?? docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.out +?? docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.prov +?? docs/v2/experiments/evidence/ITERATION/0023-CONTROL-verify-manifest-over-all-v2-cycles.rc +?? docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.cmd +?? docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.err +?? docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.out +?? docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.prov +?? docs/v2/experiments/evidence/ITERATION/0024-evidence-inventory.rc +?? docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.cmd +?? docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.err +?? docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.out +?? docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/ +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.cmd +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.err +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.out +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.prov +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.rc +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.cmd +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.err +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.out +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.prov +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.rc +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.cmd +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.err +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.out +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.prov +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.rc +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.cmd +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.err +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.out +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.prov +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.rc +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.cmd +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.err +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.out +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.prov +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.rc +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.cmd +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.err +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.out +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.prov +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.rc +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.cmd +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.err +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.out +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.prov +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.rc +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.cmd +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.err +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.out +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.prov +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.rc +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.cmd +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.err +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.out +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.prov +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.rc +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.cmd +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.err +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.out +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.prov +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.rc +?? docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/CLAIMS.md diff --git a/docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.prov b/docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.prov new file mode 100644 index 0000000..929bd6c --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:50:54Z +exit 0 +ms 18 +sha256_out 7966f0c1bab9c01aad8c9cd11b71da31bfb283af8c42a6c894468952496ab7d7 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.rc b/docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0025-zz-tree-state-at-end.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.cmd b/docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.cmd new file mode 100644 index 0000000..f3b13e9 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.cmd @@ -0,0 +1 @@ +git log -1 --format=%H%n%ci%n%s diff --git a/docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.err b/docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.out b/docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.out new file mode 100644 index 0000000..04d3112 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.out @@ -0,0 +1,3 @@ +a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +2026-08-17 12:39:50 -0500 +instrument build log: every failure, with the artifact diff --git a/docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.prov b/docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.prov new file mode 100644 index 0000000..1e8a0d8 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.prov @@ -0,0 +1,7 @@ +commit a0cc95e3db7b04b6e221f89e89352b0e6b15d5b7 +tree dirty +captured_utc 2026-08-17T17:50:54Z +exit 0 +ms 9 +sha256_out 34f73f0b06bfec1f8d453ad31f23aac0e81d979636a770846cf23818bac66212 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.rc b/docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/0026-zz-head-at-end.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/ITERATION/CLAIMS.md b/docs/v2/experiments/evidence/ITERATION/CLAIMS.md new file mode 100644 index 0000000..aa9a322 --- /dev/null +++ b/docs/v2/experiments/evidence/ITERATION/CLAIMS.md @@ -0,0 +1,207 @@ +# CLAIMS — ITERATION-level evidence for v2 + +Re-run 2026-08-17. This directory holds the evidence that is about **iteration 2 +as a whole** rather than about any one cycle. Per-cycle evidence and verdicts +are in `../cycles/-/CLAIMS.md`. + +Before this run, `docs/` held 42 markdown files and **zero data files**. It now +holds a captured artifact for every re-runnable claim, each one recording the +command verbatim, stdout, stderr, the exit code captured directly and never +through a pipe, the commit SHA, the tree state, UTC, and the sha256 of both +streams. + +## The measurement window, pinned + +| | | +|---|---| +| Window start | `a116710bacba679615cb84b4ea9ce98c3acaa380` | +| Window end | `a0cc95e3d…` (see `0026-zz-head-at-end.out`) | +| Commits in window | **5** | +| Commits touching `lang/` | **0** | +| Commits touching `scripts/` or `tools/evidence/capture.sh` | **0** | + +`0022-measurement-window-lang-untouched.out` is the proof. A concurrent agent +was landing v1 evidence documents into this repository throughout, so HEAD moved +five times and `git status` read dirty for most of the run — but **no compiler +source, no runtime source, and no measuring instrument changed while any of this +was measured.** The system under test and the recorder were both stable. + +Historical claims were measured inside detached worktrees pinned at their own +commits, so those artifacts carry the system-under-test's SHA and a clean tree. +`verify-manifest.sh` flags every dirty-tree artifact as provenance-weak; the +load-bearing measurements are deliberately not among them. + +## What was captured at iteration level + +| Claim | Artifact | Result | +|---|---|---| +| the full gauntlet | `0003-gauntlet-verify-sh` | **VERIFIED, exit 0** | +| fixpoint gen2 == gen3 | `0004-fixpoint-gen2-eq-gen3` | **OK**, by sha256 | +| native suite | `0005-native-suite` | **105 tests, 105 passed, 0 failed, 253 assertions**, exit 0 | +| every harness individually, own exit code | `0006`–`0018` | **13 harnesses, all exit 0** | +| assertion tally | `0020-harness-assertion-tally` | **76 assertions across 13 harnesses** | +| `codegen.el` total / comment / code | `0019-codegen-total-vs-comment-vs-code` | **4434 total, 3197 code, 981 comment, 256 blank** | +| unguarded-deref ratchet | `0021-unguarded-deref-ratchet` | **11 unguarded casts, at baseline 11**, exit 0 | +| control over the whole record | `0023-CONTROL-verify-manifest-over-all-v2-cycles` | **250 artifacts verified, 0 altered, 0 missing** | + +### The gauntlet + +``` + fixpoint gen2 == gen3 ok + native suite 105 tests, 105 passed, 0 failed, 253 assertions in 7.115ms + integration harnesses 13 green, 76 assertions + unguarded-deref ratchet at or below baseline + + VERIFIED +``` + +### The fixpoint proof + +``` +gen1 sha256 = aa340a723e7b29e585e30c07d6dc9834e072ef15a07df5e1afb363c18e168c76 +gen2 sha256 = 61210655962abd07ce395d66a9232582fd10c2a878c80f9b85fefc9081c5313e +gen3 sha256 = 61210655962abd07ce395d66a9232582fd10c2a878c80f9b85fefc9081c5313e +FIXPOINT gen2 == gen3 OK +note: gen1 != gen2, as expected whenever codegen output changes +``` + +The `gen1 != gen2` line matters: comparing gen1 to gen2 would be the wrong test, +and it is recorded here as an observed fact rather than as a design comment. + +### `codegen.el` composition at HEAD + +``` +total_lines = 4434 +code = 3197 72.1% +comment = 981 22.1% +blank = 256 +``` + +Cycle 05 established that the metric worth quoting is code, not total. On that +metric the compiler stands at **3197 code lines**, against the **3589** baseline +at `45325f7` — **−392, −10.9%** across v1 and v2 together. + +## v2's standing, with references + +### Verdicts across all eight cycles + +| Cycle | R | D | NR | NC | total | +|---|---|---|---|---|---| +| 01 the-compiler-was-never-measured | 26 | 5 | 5 | 1 | 37 | +| 02 seven-tables-and-a-shipped-defect | 21 | 2 | 0 | 0 | 23 | +| 03 a-gate-with-no-detector | 23 | 2 | 0 | 0 | 25 | +| 04 verification-was-a-convention | 7 | 2 | 0 | 3 | 12 | +| 05 the-metric-counted-comments | 12 | 1 | 7 | 0 | 20 | +| 06 form-is-half-bindable | 12 | 0 | 0 | 1 | 13 | +| 07 the-caller-was-already-there | 17 | 1 | 1 | 2 | 21 | +| 08 PREDICTIONS | 15 | 0 | 0 | 7 | 22 | +| **total** | **133** | **13** | **13** | **14** | **173** | + +R = REPRODUCED, D = DIVERGED, NR = NOT-REPRODUCIBLE, NC = NOT-CAPTURED. + +**133 of 173 assertions reproduced from raw data. Nothing was reconstructed.** + +### The load-bearing results, re-verified + +The index classifies v2 as one SUPPORTS pair plus a BOUNDS, and commit +`9540f23` weights the whole 27-cycle record at four load-bearing results. Those +that live in v2 were given the most care in this re-run: + +**Cycle 06 — a new suffix form by a two-line data edit, no rebuild.** Fully +reproduced. The compiler binary's sha256 and mtime are byte-identical before and +after the edit and its mtime predates the edit by 37.4 s; `git diff --stat` +reads `1 file changed, 2 insertions(+)`; the same binary then emits +`3LL * 1209600000000000LL`; the linked program prints `3628800000000000`; and +reverting the two lines reverts the behaviour. **12 REPRODUCED, 0 DIVERGED.** + +**Cycle 07 — exactly three emission points, and a construct that sees its +caller.** Reproduced, but *not* by the instrument the cycle used. Commit +`fbb3a52` records that the cycle's central assertion is a grep of compiler +source the harness never compiles; I confirmed that independently — appending a +**comment** to `codegen.el` turns the assertion red while the binary's sha256 +and the emitted C are unchanged. So the bound was re-established from the +**emitted C of the binary under test**: three functions, `entry wrap exit` each, +nine points, every one keyed on the function name, and **zero** for loops, call +sites and field accesses. `AUDIT save called by handle_request` / +`AUDIT save called by migrate` reproduce verbatim. + +**Cycle 02 — 49 builtin names moved to data.** Reproduced exactly: 51 → 100 +entries in `signatures.rel`, delta 49; six of seven tables collapse to 3–6 line +wrappers; `duration_unit_nanos` alone keeps its 14 literals, which is P3. + +### The divergences that matter + +Thirteen divergences across the record. Four are substantive: + +1. **Cycle 02, A17 — the shipped defect was worse than recorded.** The doc says + `el_input_len` returned 0 for "roughly 60%" of string literals. Measured at + the buggy commit against 20 literals of lengths 1–20, checked by an + independent `hashlib` oracle: **20 of 20, a 100% failure rate.** Standalone + alignment probes give 80% on the doc's own five literals and 90% on twenty. + The rate is link-layout dependent and is not a stable quantity; the doc's 60% + was a five-literal sample. That is the same error — *a sample of five is not a + measurement of a rate* — inside the paragraph that teaches it. + +2. **Cycle 03, D-1 — the ratchet is not a ratchet.** It compares a *total* + against `BASELINE=11` rather than a *set of sites*, so guarding one site while + adding a new dereference passes: it printed a brand-new unguarded deref in its + own output while reporting `ok 11 unguarded casts, at baseline 11`. Its regex + also misses `EL_CSTR`, leaving **452 casts invisible to the detector**. And + `let s: String = 42` — defect #1 in that cycle's own list — **still segfaults + at HEAD, exit 139.** + +3. **Cycle 07, A15 — the timing numbers do not reproduce; the conclusion does.** + Seven interleaved rounds gave BASE mean 52.29 ms and STACK mean 52.29 ms, + ratio 1.0000, spread 2 ms each. The doc's 0.24–0.25 s are cold-cache figures: + measured cold/warm on this workload is **4.30×**, which is larger than the + 50% "regression" that was reported and retracted. + +4. **Cycle 04, A5 — P3 as worded is false.** `verify.sh` contains no detector + for an exit code read through a pipe; it *avoids* the defect by construction. + Prevention is not detection, so the cycle's 5/5 is 4/5 as worded and 5/5 in + substance. + +The remaining nine are off-by-one line counts (`4525` for 4524, `4662` for 4661, +`4446` for 4445, `80` for 79, `3267` for 3266) and one misattribution in cycle 01 +(`capabilities.md` names a different table than the doc claims). None changes a +conclusion; all are recorded because a record about miscounting must not carry +uncorrected miscounts. + +### What could not be reproduced, and why + +- **13 NOT-REPRODUCIBLE.** Almost all are the emit/table/other bucket split from + cycles 01 and 05. **The classifier that produced 57.2%, 2578 lines, 21 fns, + 42.8%, 15.4% and 27.4% was never committed**, and its criterion for + "emission" versus "table" versus "other" was never written down. No + replacement classifier was written and passed off as a reproduction. What could + be checked was the arithmetic, and it holds: emit 1909 + table 506 + other 794 + = **3209**, exactly the independently measured code total at `8cb7613`. + +- **14 NOT-CAPTURED.** Seven are cycle 08's predictions P1–P7, which are + ungraded by construction: the mutation study was never run, and running it + today would be a new experiment, not a reproduction. The seal is intact — + P1–P7 are byte-identical to their form at `d936bde`, which makes this genuine + pre-registration. The rest are prose assertions with no measurement behind + them, including cycle 06's P3, which the document itself labels + "NOT TESTED — an argument, not a measurement". + +## The instrument, and one defect in it + +`capture.sh` writes its manifest line with `printf '%s\n' "$*"`. **A command +containing a newline therefore splits one manifest record across several lines +and desynchronises the artifact counter.** This was hit independently on cycle 01 +and on cycle 02. In both cases the fix was the same and it was not to edit the +manifest: the evidence directory was deleted and every capture re-run from +scratch with the logic moved into instrument files. Editing a manifest to match +its artifacts inverts what a manifest is for. + +`verify-manifest.sh` globs `"$ROOT"/*/MANIFEST.tsv`, so it must be given the +**parent** of the cycle directories. Handed a cycle directory it prints +`0 artifacts verified, 0 altered, 0 missing` and **exits 0** — a green verdict +having checked nothing. That is the same shape as cycle 03's subject: a gate +nothing is forced through. The correct invocation is recorded in `0023`. + +Failed runs are retained rather than deleted — a SIGPIPE-killed build in cycle 03, +a malformed `awk` in cycles 03 and 07, and `scripts/verify.sh` returning exit 127 +at `abb0ab4` because it did not exist yet. Removing a failed attempt from an +evidence record is itself a measurement defect. diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.cmd new file mode 100644 index 0000000..f3b13e9 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.cmd @@ -0,0 +1 @@ +git log -1 --format=%H%n%ci%n%s diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.out new file mode 100644 index 0000000..016446a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.out @@ -0,0 +1,3 @@ +1a5246667d80e0bf5830a06a04e1140c2867e4ce +2026-08-17 11:21:05 -0500 +log the experiments that were run and never written down diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.prov new file mode 100644 index 0000000..583e1ed --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.prov @@ -0,0 +1,7 @@ +commit 1a5246667d80e0bf5830a06a04e1140c2867e4ce +tree dirty +captured_utc 2026-08-17T17:44:40Z +exit 0 +ms 9 +sha256_out 7d531005170557490d3ef00542d5093e10b51ccd9115bfb81ed9e7cae67dafee +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0001-00-BUGGY-pinned-commit.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.cmd new file mode 100644 index 0000000..af03ced --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.cmd @@ -0,0 +1 @@ +git status --porcelain diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.out new file mode 100644 index 0000000..84cfbc2 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.out @@ -0,0 +1,3 @@ +?? elc-buggy +?? g2.c +?? work/ diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.prov new file mode 100644 index 0000000..3319e19 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.prov @@ -0,0 +1,7 @@ +commit 1a5246667d80e0bf5830a06a04e1140c2867e4ce +tree dirty +captured_utc 2026-08-17T17:44:40Z +exit 0 +ms 13 +sha256_out aa6e76906574c6edd2422421723cbc40c2f2b2f81a5db509ae8a82c02fba97d2 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0002-01-BUGGY-worktree-clean.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.cmd new file mode 100644 index 0000000..2a1ca28 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-02a; grep -n "static size_t el_input_len" -A 10 lang/runtime/el_runtime.c diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.out new file mode 100644 index 0000000..2864b00 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.out @@ -0,0 +1,11 @@ +18306:static size_t el_input_len(const char* s) { +18307- size_t n; +18308- if (el_bin_lookup(s, &n)) return n; +18309- /* The FALLBACK is the hazard, not the tagged lookup. A NULL check does not +18310- * establish that a slot is a pointer: el_val_t carries integers too, so +18311- * strlen() on `sha256_hex(50000)` walks address 50000. Guarding the tagged +18312- * path alone left this untouched and the SIGSEGV unchanged -- measured. */ +18313- if (!looks_like_heap_obj((el_val_t)(uintptr_t)s)) return 0; +18314- return strlen(s); +18315-} +18316- diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.prov new file mode 100644 index 0000000..028d70f --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.prov @@ -0,0 +1,7 @@ +commit 1a5246667d80e0bf5830a06a04e1140c2867e4ce +tree dirty +captured_utc 2026-08-17T17:44:40Z +exit 0 +ms 17 +sha256_out 044c4a6e314d5bc47b7eb9a61c7b3a5d6bcba56cbead224dbf850e131e601316 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0003-02-BUGGY-el_input_len-source.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.cmd new file mode 100644 index 0000000..b5f8039 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-02a; grep -n "static int looks_like_heap_obj" -A 10 lang/runtime/el_runtime.c diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.out new file mode 100644 index 0000000..017d790 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.out @@ -0,0 +1,11 @@ +729:static int looks_like_heap_obj(el_val_t v) { +730- if (v == 0) return 0; +731- int64_t s = (int64_t)v; +732- if (s > -0x10000 && s < 0x10000) return 0; /* small ints */ +733- uintptr_t p = (uintptr_t)v; +734- if (p < 0x10000) return 0; /* low addresses */ +735- if (p & 0x7) return 0; /* malloc returns 8-aligned */ +736- return 1; +737-} +738- +739-int el_tagged(el_val_t v, uint32_t magic) { diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.prov new file mode 100644 index 0000000..8ba0e5a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.prov @@ -0,0 +1,7 @@ +commit 1a5246667d80e0bf5830a06a04e1140c2867e4ce +tree dirty +captured_utc 2026-08-17T17:44:40Z +exit 0 +ms 15 +sha256_out 655a62c931220bdc6b9b6563d065fb047606cce8abcada95b72bb57d7a386ca7 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0004-03-BUGGY-looks_like_heap_obj-source.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.cmd new file mode 100644 index 0000000..7e28bd5 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.cmd @@ -0,0 +1 @@ +cat /tmp/rerun-v2-02a/work/lit.el diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.out new file mode 100644 index 0000000..3acba9e --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.out @@ -0,0 +1,22 @@ +fn main() { + println("len=01 lit=b sha=" + sha256_hex("b")) + println("len=02 lit=cd sha=" + sha256_hex("cd")) + println("len=03 lit=def sha=" + sha256_hex("def")) + println("len=04 lit=efgh sha=" + sha256_hex("efgh")) + println("len=05 lit=fghij sha=" + sha256_hex("fghij")) + println("len=06 lit=ghijkl sha=" + sha256_hex("ghijkl")) + println("len=07 lit=hijklmn sha=" + sha256_hex("hijklmn")) + println("len=08 lit=ijklmnop sha=" + sha256_hex("ijklmnop")) + println("len=09 lit=jklmnopqr sha=" + sha256_hex("jklmnopqr")) + println("len=10 lit=klmnopqrst sha=" + sha256_hex("klmnopqrst")) + println("len=11 lit=lmnopqrstuv sha=" + sha256_hex("lmnopqrstuv")) + println("len=12 lit=mnopqrstuvwx sha=" + sha256_hex("mnopqrstuvwx")) + println("len=13 lit=nopqrstuvwxyz sha=" + sha256_hex("nopqrstuvwxyz")) + println("len=14 lit=opqrstuvwxyzab sha=" + sha256_hex("opqrstuvwxyzab")) + println("len=15 lit=pqrstuvwxyzabcd sha=" + sha256_hex("pqrstuvwxyzabcd")) + println("len=16 lit=qrstuvwxyzabcdef sha=" + sha256_hex("qrstuvwxyzabcdef")) + println("len=17 lit=rstuvwxyzabcdefgh sha=" + sha256_hex("rstuvwxyzabcdefgh")) + println("len=18 lit=stuvwxyzabcdefghij sha=" + sha256_hex("stuvwxyzabcdefghij")) + println("len=19 lit=tuvwxyzabcdefghijkl sha=" + sha256_hex("tuvwxyzabcdefghijkl")) + println("len=20 lit=uvwxyzabcdefghijklmn sha=" + sha256_hex("uvwxyzabcdefghijklmn")) +} diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.prov new file mode 100644 index 0000000..c92db19 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.prov @@ -0,0 +1,7 @@ +commit 1a5246667d80e0bf5830a06a04e1140c2867e4ce +tree dirty +captured_utc 2026-08-17T17:44:40Z +exit 0 +ms 4 +sha256_out 8114c39cfd7f43a0692dfee3c8d2ae601dbf80c632a31f14f608bea4e3b9b4aa +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0005-04-probe-source-20-literals-lengths-1-to-20.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.cmd new file mode 100644 index 0000000..8b6b3c8 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.cmd @@ -0,0 +1 @@ +/tmp/rerun-v2-02a/work/lit diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.out new file mode 100644 index 0000000..fa4a662 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.out @@ -0,0 +1,20 @@ +len=01 lit=b sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=02 lit=cd sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=03 lit=def sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=04 lit=efgh sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=05 lit=fghij sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=06 lit=ghijkl sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=07 lit=hijklmn sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=08 lit=ijklmnop sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=09 lit=jklmnopqr sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=10 lit=klmnopqrst sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=11 lit=lmnopqrstuv sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=12 lit=mnopqrstuvwx sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=13 lit=nopqrstuvwxyz sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=14 lit=opqrstuvwxyzab sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=15 lit=pqrstuvwxyzabcd sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=16 lit=qrstuvwxyzabcdef sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=17 lit=rstuvwxyzabcdefgh sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=18 lit=stuvwxyzabcdefghij sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=19 lit=tuvwxyzabcdefghijkl sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +len=20 lit=uvwxyzabcdefghijklmn sha=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.prov new file mode 100644 index 0000000..c837953 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.prov @@ -0,0 +1,7 @@ +commit 1a5246667d80e0bf5830a06a04e1140c2867e4ce +tree dirty +captured_utc 2026-08-17T17:44:40Z +exit 0 +ms 7 +sha256_out 32a6279918627a9a79a371da78aab404895a6050c5070b7455a4d16b1a1d1c60 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0006-05-BUGGY-RUN-20-literals.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.cmd new file mode 100644 index 0000000..28dbc46 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.cmd @@ -0,0 +1 @@ +/Users/will/Development/neuron-technologies/foundation/el/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/instruments/run-oracle.sh /tmp/rerun-v2-02a/work/lit diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.out new file mode 100644 index 0000000..ce7fa63 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.out @@ -0,0 +1,25 @@ +MISMATCH lit=b got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d +MISMATCH lit=cd got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=21e721c35a5823fdb452fa2f9f0a612c74fb952e06927489c6b27a43b817bed4 +MISMATCH lit=def got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=cb8379ac2098aa165029e3938a51da0bcecfc008fd6795f401178647f96c5b34 +MISMATCH lit=efgh got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=e5e088a0b66163a0a26a5e053d2a4496dc16ab6e0e3dd1adf2d16aa84a078c9d +MISMATCH lit=fghij got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=7272207e4b9c7e929f4278d245c7768380b54ecb97b1fbe941a7ccfc27cf01f4 +MISMATCH lit=ghijkl got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=54f6ee81b58accbc57adbceb0f50264897626060071dc9e92f897e7b373deb93 +MISMATCH lit=hijklmn got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=a2cc0056817d002901742f20883fb838f296af3a4fa9dbb6da71b8af69ccd4d5 +MISMATCH lit=ijklmnop got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=d2789a29f48befe96a70ef3e3eaf57975f692165155e96880b310c82ac012ebf +MISMATCH lit=jklmnopqr got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=d2e047baf8cdb056976719af3e10d88db00adc5e5477253112226eac1b8f7ea2 +MISMATCH lit=klmnopqrst got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=e683456c3fca63fe2cc7655a7f574e8b22a1ec23d98a55495cfbe8e7c6adfa15 +MISMATCH lit=lmnopqrstuv got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=5f95ce65aaa36ea4f48dfe09d0497cc34822f8db8960b2e3323e527bfe79b928 +MISMATCH lit=mnopqrstuvwx got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=a9ff63d25df2d2d1ad036a3ed6aa32baa4c349c54fd35c6447be21f7ab7a8ef1 +MISMATCH lit=nopqrstuvwxyz got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=75be37f9f873d0925c99caa508a36a1b2c96097447c428f4dc7b11a67d819fdb +MISMATCH lit=opqrstuvwxyzab got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=f307eec79502684875d9d181e401d1451192c8d1be75e6a06c19329cb9205921 +MISMATCH lit=pqrstuvwxyzabcd got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=29fd523b2af525954fb5c591b8c8424e142d1e512b2d8a316fb4a4fe2ca80cff +MISMATCH lit=qrstuvwxyzabcdef got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=dc59351aed77218d19188b25c195fcb8d3b850b821926b667ce68d0a2f63a1e1 +MISMATCH lit=rstuvwxyzabcdefgh got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=79f3e96572bdcd07998be733d9bf77419f9952430c8d6dfebbe715fe96701cae +MISMATCH lit=stuvwxyzabcdefghij got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=d9cde06d9f3fbbade42e65c27dabaca4bfd5ba0d8d8a1071c6f02885e2f075e3 +MISMATCH lit=tuvwxyzabcdefghijkl got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=51cbf66472d2944a47bf87ee0f1b5719475b4fb22fdfbf3a1c66de90520c1bba +MISMATCH lit=uvwxyzabcdefghijklmn got=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 expected=0ef6aff7dae19effff0e9c1610df638d2f6e0d6295f485112939af0067784340 +literals tested = 20 +correct vs hashlib.sha256 = 0 +incorrect = 20 +hashed as the EMPTY STRING = 20 +failure rate = 100% diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.prov new file mode 100644 index 0000000..cdf987f --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.prov @@ -0,0 +1,7 @@ +commit 1a5246667d80e0bf5830a06a04e1140c2867e4ce +tree dirty +captured_utc 2026-08-17T17:44:41Z +exit 0 +ms 369 +sha256_out 087862b98e5d31d369a92efd2799d1e7e852dc988737cfc6e34a0b74380cc1a0 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0007-06-BUGGY-ORACLE-verdict.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.cmd new file mode 100644 index 0000000..717aadb --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.cmd @@ -0,0 +1 @@ +/tmp/rerun-v2-02a/work/align5 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.out new file mode 100644 index 0000000..e47a6e6 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.out @@ -0,0 +1,6 @@ +abc 0x104650580 aligned8=1 +hello 0x104650584 aligned8=0 +x 0x10465058a aligned8=0 +a longer literal here 0x10465058c aligned8=0 +q 0x1046505a2 aligned8=0 +4 of 5 misaligned (80%) diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.prov new file mode 100644 index 0000000..a80b7c4 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.prov @@ -0,0 +1,7 @@ +commit 1a5246667d80e0bf5830a06a04e1140c2867e4ce +tree dirty +captured_utc 2026-08-17T17:44:41Z +exit 0 +ms 4 +sha256_out 5e5d09cc202b5d93b4eac4ae911fa8bed2e5d2a38d47ff1765a61f2c0de71c86 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0008-07-ALIGNMENT-the-docs-own-five-literals.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.cmd new file mode 100644 index 0000000..27b61bd --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.cmd @@ -0,0 +1 @@ +/tmp/rerun-v2-02a/work/align20 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.out new file mode 100644 index 0000000..ae9b6f6 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.out @@ -0,0 +1,21 @@ +len=01 b 0x1045a855c aligned8=0 +len=02 cd 0x1045a855e aligned8=0 +len=03 def 0x1045a8561 aligned8=0 +len=04 efgh 0x1045a8565 aligned8=0 +len=05 fghij 0x1045a856a aligned8=0 +len=06 ghijkl 0x1045a8570 aligned8=1 +len=07 hijklmn 0x1045a8577 aligned8=0 +len=08 ijklmnop 0x1045a857f aligned8=0 +len=09 jklmnopqr 0x1045a8588 aligned8=1 +len=10 klmnopqrst 0x1045a8592 aligned8=0 +len=11 lmnopqrstuv 0x1045a859d aligned8=0 +len=12 mnopqrstuvwx 0x1045a85a9 aligned8=0 +len=13 nopqrstuvwxyz 0x1045a85b6 aligned8=0 +len=14 opqrstuvwxyzab 0x1045a85c4 aligned8=0 +len=15 pqrstuvwxyzabcd 0x1045a85d3 aligned8=0 +len=16 qrstuvwxyzabcdef 0x1045a85e3 aligned8=0 +len=17 rstuvwxyzabcdefgh 0x1045a85f4 aligned8=0 +len=18 stuvwxyzabcdefghij 0x1045a8606 aligned8=0 +len=19 tuvwxyzabcdefghijkl 0x1045a8619 aligned8=0 +len=20 uvwxyzabcdefghijklmn 0x1045a862d aligned8=0 +18 of 20 misaligned (90%) diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.prov new file mode 100644 index 0000000..7cb107c --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.prov @@ -0,0 +1,7 @@ +commit 1a5246667d80e0bf5830a06a04e1140c2867e4ce +tree dirty +captured_utc 2026-08-17T17:44:41Z +exit 0 +ms 4 +sha256_out a1bd6525284bee14b50ba9eef190ed7dc6b1603c0f40f98eab42ced4ad68b855 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0010-09-alignment-probe-source-align5.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0010-09-alignment-probe-source-align5.cmd new file mode 100644 index 0000000..25579ac --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0010-09-alignment-probe-source-align5.cmd @@ -0,0 +1 @@ +cat /tmp/rerun-v2-02a/work/align5.c diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0010-09-alignment-probe-source-align5.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0010-09-alignment-probe-source-align5.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0010-09-alignment-probe-source-align5.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0010-09-alignment-probe-source-align5.out new file mode 100644 index 0000000..2aa8182 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0010-09-alignment-probe-source-align5.out @@ -0,0 +1,15 @@ +#include +#include +/* The doc's own five literals, in the doc's own order. */ +int main(void){ + const char* L[] = {"abc","hello","x","a longer literal here","q"}; + int n = 5, mis = 0; + for (int i=0;i +#include +int main(void){ + const char* L[] = {"b","cd","def","efgh","fghij","ghijkl","hijklmn","ijklmnop","jklmnopqr","klmnopqrst","lmnopqrstuv","mnopqrstuvwx","nopqrstuvwxyz","opqrstuvwxyzab","pqrstuvwxyzabcd","qrstuvwxyzabcdef","rstuvwxyzabcdefgh","stuvwxyzabcdefghij","tuvwxyzabcdefghijkl","uvwxyzabcdefghijklmn"}; + int n = 20, mis = 0; + for (int i=0;i -0x10000 && sv < 0x10000) return 0; /* small ints */ +18336- if ((uintptr_t)sv < 0x10000) return 0; /* low addresses */ +18337- return strlen(s); +18338-} diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0013-12-FIXED-el_input_len-source.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0013-12-FIXED-el_input_len-source.prov new file mode 100644 index 0000000..331a79d --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0013-12-FIXED-el_input_len-source.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:44:51Z +exit 0 +ms 15 +sha256_out cfc667d2ffefbac32441bc38461be71b07df129bf3cddce7768ff20203561a9e +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0013-12-FIXED-el_input_len-source.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0013-12-FIXED-el_input_len-source.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0013-12-FIXED-el_input_len-source.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.cmd new file mode 100644 index 0000000..5be9ba2 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.cmd @@ -0,0 +1 @@ +/tmp/rerun-v2-02b/work/lit diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.out new file mode 100644 index 0000000..415cd8d --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.out @@ -0,0 +1,20 @@ +len=01 lit=b sha=3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d +len=02 lit=cd sha=21e721c35a5823fdb452fa2f9f0a612c74fb952e06927489c6b27a43b817bed4 +len=03 lit=def sha=cb8379ac2098aa165029e3938a51da0bcecfc008fd6795f401178647f96c5b34 +len=04 lit=efgh sha=e5e088a0b66163a0a26a5e053d2a4496dc16ab6e0e3dd1adf2d16aa84a078c9d +len=05 lit=fghij sha=7272207e4b9c7e929f4278d245c7768380b54ecb97b1fbe941a7ccfc27cf01f4 +len=06 lit=ghijkl sha=54f6ee81b58accbc57adbceb0f50264897626060071dc9e92f897e7b373deb93 +len=07 lit=hijklmn sha=a2cc0056817d002901742f20883fb838f296af3a4fa9dbb6da71b8af69ccd4d5 +len=08 lit=ijklmnop sha=d2789a29f48befe96a70ef3e3eaf57975f692165155e96880b310c82ac012ebf +len=09 lit=jklmnopqr sha=d2e047baf8cdb056976719af3e10d88db00adc5e5477253112226eac1b8f7ea2 +len=10 lit=klmnopqrst sha=e683456c3fca63fe2cc7655a7f574e8b22a1ec23d98a55495cfbe8e7c6adfa15 +len=11 lit=lmnopqrstuv sha=5f95ce65aaa36ea4f48dfe09d0497cc34822f8db8960b2e3323e527bfe79b928 +len=12 lit=mnopqrstuvwx sha=a9ff63d25df2d2d1ad036a3ed6aa32baa4c349c54fd35c6447be21f7ab7a8ef1 +len=13 lit=nopqrstuvwxyz sha=75be37f9f873d0925c99caa508a36a1b2c96097447c428f4dc7b11a67d819fdb +len=14 lit=opqrstuvwxyzab sha=f307eec79502684875d9d181e401d1451192c8d1be75e6a06c19329cb9205921 +len=15 lit=pqrstuvwxyzabcd sha=29fd523b2af525954fb5c591b8c8424e142d1e512b2d8a316fb4a4fe2ca80cff +len=16 lit=qrstuvwxyzabcdef sha=dc59351aed77218d19188b25c195fcb8d3b850b821926b667ce68d0a2f63a1e1 +len=17 lit=rstuvwxyzabcdefgh sha=79f3e96572bdcd07998be733d9bf77419f9952430c8d6dfebbe715fe96701cae +len=18 lit=stuvwxyzabcdefghij sha=d9cde06d9f3fbbade42e65c27dabaca4bfd5ba0d8d8a1071c6f02885e2f075e3 +len=19 lit=tuvwxyzabcdefghijkl sha=51cbf66472d2944a47bf87ee0f1b5719475b4fb22fdfbf3a1c66de90520c1bba +len=20 lit=uvwxyzabcdefghijklmn sha=0ef6aff7dae19effff0e9c1610df638d2f6e0d6295f485112939af0067784340 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.prov new file mode 100644 index 0000000..b79037a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:44:51Z +exit 0 +ms 7 +sha256_out 96374c493b16f0f5f6fce85839fafb0967b2918ad070cddffddacf6358c06671 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0014-13-FIXED-RUN-20-literals.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.cmd new file mode 100644 index 0000000..ebed324 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.cmd @@ -0,0 +1 @@ +/Users/will/Development/neuron-technologies/foundation/el/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/instruments/run-oracle.sh /tmp/rerun-v2-02b/work/lit diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.out new file mode 100644 index 0000000..35630a0 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.out @@ -0,0 +1,5 @@ +literals tested = 20 +correct vs hashlib.sha256 = 20 +incorrect = 0 +hashed as the EMPTY STRING = 0 +failure rate = 0% diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.prov new file mode 100644 index 0000000..ee1375e --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:44:51Z +exit 0 +ms 36 +sha256_out 92f2d011d61336ef9d97f39a074d75352b3100223429e5bc8cb15108da5686fa +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0015-14-FIXED-ORACLE-verdict.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.cmd new file mode 100644 index 0000000..a678bf6 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-02b; git show 1a52466:lang/tests/integration/tagged_gate.sh | grep -c "^chk \|chk \"" diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.out new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.out @@ -0,0 +1 @@ +5 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.prov new file mode 100644 index 0000000..093e725 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:44:51Z +exit 0 +ms 13 +sha256_out f0b5c2c2211c8d67ed15e75e656c7862d086e9245420892a7de62cd9ec582a06 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0016-15-tagged_gate-assertion-count-BEFORE.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.cmd new file mode 100644 index 0000000..2786ee1 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-02b; grep -c "chk \"" lang/tests/integration/tagged_gate.sh diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.out new file mode 100644 index 0000000..f599e28 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.out @@ -0,0 +1 @@ +10 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.prov new file mode 100644 index 0000000..e93be46 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:44:51Z +exit 0 +ms 10 +sha256_out 917df3320d778ddbaa5c5c7742bc4046bf803c36ed2b050f30844ed206783469 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0017-16-tagged_gate-assertion-count-AFTER.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.cmd new file mode 100644 index 0000000..e40e4ee --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.cmd @@ -0,0 +1 @@ +lang/tests/integration/tagged_gate.sh /tmp/rerun-v2-02b/elc-fixed /tmp/rerun-v2-02b/lang diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.out new file mode 100644 index 0000000..5666968 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.out @@ -0,0 +1,12 @@ + ok an integer where a string is expected does not crash + ok and yields the empty-string hash, not memory + ok a NEGATIVE integer does not crash + ok a legitimate string still hashes correctly + ok the gate is exported, so siblings stop re-deriving it + ok abc hashes correctly + ok a hashes correctly + ok hello world hashes correctly + ok the empty string still hashes to e3b0... + ok and no literal silently hashed as empty + + 10 assertions, 10 passed, 0 failed diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.prov new file mode 100644 index 0000000..05ead31 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:45:05Z +exit 0 +ms 13648 +sha256_out 54ed74debfd5061190b7c6aaecabea13295684ac75502ce77a7a7b0e2e7778e4 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0018-17-tagged_gate-harness-run.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.cmd new file mode 100644 index 0000000..bb0b9ee --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-02b; B=$(git show 1a52466:lang/el-compiler/src/codegen.el | wc -l | tr -d " "); A=$(git show abb0ab4:lang/el-compiler/src/codegen.el | wc -l | tr -d " "); BC=$(git show 1a52466:lang/el-compiler/src/codegen.el | grep -v "^[[:space:]]*//" | grep -vc "^[[:space:]]*$"); AC=$(git show abb0ab4:lang/el-compiler/src/codegen.el | grep -v "^[[:space:]]*//" | grep -vc "^[[:space:]]*$"); printf "TOTAL lines %s -> %s delta %s (doc claims -80)\nCODE lines %s -> %s delta %s\n" "$B" "$A" "$((A-B))" "$BC" "$AC" "$((AC-BC))" diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.out new file mode 100644 index 0000000..400dd6f --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.out @@ -0,0 +1,2 @@ +TOTAL lines 4524 -> 4445 delta -79 (doc claims -80) +CODE lines 3277 -> 3209 delta -68 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.prov new file mode 100644 index 0000000..9f80853 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:45:25Z +exit 0 +ms 46 +sha256_out 834f02acdfd310427d7a9ed7429f78892f0e15185285adf0d51fb2dfbedf4945 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0019-18-P4-codegen-line-delta.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.cmd new file mode 100644 index 0000000..b910a05 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-02b; B=$(git show 1a52466:lang/tools/check/signatures.rel | grep -cE "^[a-z_]+ +returns"); A=$(grep -cE "^[a-z_]+ +returns" lang/tools/check/signatures.rel); printf "signatures.rel entries BEFORE = %s\nsignatures.rel entries AFTER = %s\ndelta = %s (doc claims 49 names moved)\n" "$B" "$A" "$((A-B))" diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.out new file mode 100644 index 0000000..d9eb84d --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.out @@ -0,0 +1,3 @@ +signatures.rel entries BEFORE = 51 +signatures.rel entries AFTER = 100 +delta = 49 (doc claims 49 names moved) diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.prov new file mode 100644 index 0000000..84e0f9d --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:45:25Z +exit 0 +ms 16 +sha256_out 19a904d093cc12e30565eff9e07b4464f8bb7506ab4372e7a51eca91713f42f4 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0020-19-P2-names-moved-to-signatures-rel.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.cmd new file mode 100644 index 0000000..5a61e8a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-02b; for f in duration_unit_nanos is_float_call is_void_builtin is_rhythm_call is_calendar_call is_caltime_call is_zone_call; do printf "%-22s at 1a52466: %s lines, %s string literals\n" "$f" "$(git show 1a52466:lang/el-compiler/src/codegen.el | awk "/^fn $f\(/,/^}/" | wc -l | tr -d " ")" "$(git show 1a52466:lang/el-compiler/src/codegen.el | awk "/^fn $f\(/,/^}/" | grep -o "\"[a-z_]*\"" | wc -l | tr -d " ")"; done diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.out new file mode 100644 index 0000000..38a2342 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.out @@ -0,0 +1,7 @@ +duration_unit_nanos at 1a52466: 17 lines, 14 string literals +is_float_call at 1a52466: 18 lines, 14 string literals +is_void_builtin at 1a52466: 18 lines, 15 string literals +is_rhythm_call at 1a52466: 16 lines, 12 string literals +is_calendar_call at 1a52466: 13 lines, 9 string literals +is_caltime_call at 1a52466: 11 lines, 7 string literals +is_zone_call at 1a52466: 11 lines, 7 string literals diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.prov new file mode 100644 index 0000000..8385096 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:45:25Z +exit 0 +ms 167 +sha256_out 306b3363d5adcd20833b34144b9243bb4e5098417721205c47c959a002c4e817 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0021-20-P1-the-seven-tables-BEFORE.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.cmd new file mode 100644 index 0000000..3eef384 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-02b; for f in duration_unit_nanos is_float_call is_void_builtin is_rhythm_call is_calendar_call is_caltime_call is_zone_call; do printf "%-22s at abb0ab4: %s lines, %s string literals\n" "$f" "$(awk "/^fn $f\(/,/^}/" lang/el-compiler/src/codegen.el | wc -l | tr -d " ")" "$(awk "/^fn $f\(/,/^}/" lang/el-compiler/src/codegen.el | grep -o "\"[a-z_]*\"" | wc -l | tr -d " ")"; done diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.out new file mode 100644 index 0000000..0fef115 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.out @@ -0,0 +1,7 @@ +duration_unit_nanos at abb0ab4: 17 lines, 14 string literals +is_float_call at abb0ab4: 3 lines, 0 string literals +is_void_builtin at abb0ab4: 6 lines, 1 string literals +is_rhythm_call at abb0ab4: 3 lines, 0 string literals +is_calendar_call at abb0ab4: 3 lines, 0 string literals +is_caltime_call at abb0ab4: 3 lines, 0 string literals +is_zone_call at abb0ab4: 3 lines, 0 string literals diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.prov new file mode 100644 index 0000000..df67f3d --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:45:26Z +exit 0 +ms 117 +sha256_out add0ce42a0a99632d0532a894d410b95042d3e7e46cb4967f819fe338594df1e +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0022-21-P1-the-seven-tables-AFTER.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.cmd new file mode 100644 index 0000000..5b6459b --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.cmd @@ -0,0 +1 @@ +/tmp/rerun-v2-02a/work/p8 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.out new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.prov new file mode 100644 index 0000000..e37fd50 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.prov @@ -0,0 +1,7 @@ +commit 1a5246667d80e0bf5830a06a04e1140c2867e4ce +tree dirty +captured_utc 2026-08-17T17:46:09Z +exit 139 +ms 7 +sha256_out e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.rc new file mode 100644 index 0000000..897bdc8 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0023-22-P8-BUGGY-5-fortnights-SIGSEGV.rc @@ -0,0 +1 @@ +139 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.cmd new file mode 100644 index 0000000..26945cb --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-02a/lang; grep -n "el_get_field" /tmp/rerun-v2-02a/work/p8.c diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.out new file mode 100644 index 0000000..d152d04 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.out @@ -0,0 +1 @@ +8: el_val_t d = el_get_field(5, EL_STR("fortnights")); diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.prov new file mode 100644 index 0000000..e0293a1 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.prov @@ -0,0 +1,7 @@ +commit 1a5246667d80e0bf5830a06a04e1140c2867e4ce +tree dirty +captured_utc 2026-08-17T17:46:09Z +exit 0 +ms 10 +sha256_out ca4671c54962945ffce55e7aaf256b7873cb46df2a83252a8a165f76b703bf04 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0024-23-P8-BUGGY-emitted-C-is-a-field-access.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.cmd new file mode 100644 index 0000000..0f70412 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.cmd @@ -0,0 +1 @@ +/tmp/rerun-v2-02a/work/p10 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.out new file mode 100644 index 0000000..c0dc175 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.out @@ -0,0 +1,2 @@ +1 +20 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.prov new file mode 100644 index 0000000..db0eba7 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.prov @@ -0,0 +1,7 @@ +commit 1a5246667d80e0bf5830a06a04e1140c2867e4ce +tree dirty +captured_utc 2026-08-17T17:46:09Z +exit 0 +ms 7 +sha256_out 783e5bca6f660d66ef3c0ddc0b14ed2dc86c70b1cabef7c0b33a76179149618d +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0025-24-P10-BUGGY-legitimate-access.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.cmd new file mode 100644 index 0000000..36b4419 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.cmd @@ -0,0 +1 @@ +/tmp/rerun-v2-02b/work/p8 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.out new file mode 100644 index 0000000..3aac67b --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.out @@ -0,0 +1 @@ +survived diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.prov new file mode 100644 index 0000000..5630799 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:46:09Z +exit 0 +ms 7 +sha256_out 304b524de1a79904aaf8295a0986f8c03dd0d1d26d25902da057b47277147297 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0026-25-P9-FIXED-5-fortnights-survives.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.cmd new file mode 100644 index 0000000..b3fdfba --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.cmd @@ -0,0 +1 @@ +/tmp/rerun-v2-02b/work/p10 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.out new file mode 100644 index 0000000..c0dc175 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.out @@ -0,0 +1,2 @@ +1 +20 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.prov new file mode 100644 index 0000000..0612efd --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:46:09Z +exit 0 +ms 7 +sha256_out 783e5bca6f660d66ef3c0ddc0b14ed2dc86c70b1cabef7c0b33a76179149618d +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0027-26-P10-FIXED-legitimate-access-unaffected.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.cmd new file mode 100644 index 0000000..3db634b --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-02b; echo "=== as_map BEFORE (1a52466) ==="; git show 1a52466:lang/runtime/el_runtime.c | grep -n "static ElMap\* as_map" -A 3; echo; echo "=== as_map AFTER (abb0ab4) ==="; grep -n "static ElMap\* as_map" -A 6 lang/runtime/el_runtime.c; echo; echo "=== el_list_get / el_list_len AFTER ==="; grep -n "el_val_t el_list_get\|el_val_t el_list_len" -A 3 lang/runtime/el_runtime.c | head -20 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.out new file mode 100644 index 0000000..1bf5658 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.out @@ -0,0 +1,25 @@ +=== as_map BEFORE (1a52466) === +633:static ElMap* as_map(el_val_t v) { return (ElMap*)(uintptr_t)v; } +634- +635-el_val_t el_map_get(el_val_t mapv, el_val_t keyv) { +636- ElMap* m = as_map(mapv); + +=== as_map AFTER (abb0ab4) === +640:static ElMap* as_map(el_val_t v) { +641- if (!el_tagged(v, EL_MAGIC_MAP)) return NULL; +642- return (ElMap*)(uintptr_t)v; +643-} +644- +645-el_val_t el_map_get(el_val_t mapv, el_val_t keyv) { +646- ElMap* m = as_map(mapv); + +=== el_list_get / el_list_len AFTER === +509:el_val_t el_list_len(el_val_t listv) { +510- if (!el_tagged(listv, EL_MAGIC_LIST)) return 0; +511- ElList* lst = (ElList*)(uintptr_t)listv; +512- if (!lst) return 0; +-- +516:el_val_t el_list_get(el_val_t listv, el_val_t index) { +517- if (!el_tagged(listv, EL_MAGIC_LIST)) return 0; /* an integer is not a list */ +518- ElList* lst = (ElList*)(uintptr_t)listv; +519- if (!lst) return 0; diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.prov new file mode 100644 index 0000000..2e6ed55 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:46:09Z +exit 0 +ms 47 +sha256_out 4e8ec729991ca53af4fef95edcc4d9bee6788d46e8ff349d389fd04264eacb4d +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0028-27-P9-P11-as_map-and-as_list-gates.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.cmd new file mode 100644 index 0000000..a8234ed --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.cmd @@ -0,0 +1 @@ +./scripts/verify.sh diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.err new file mode 100644 index 0000000..f0a5198 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.err @@ -0,0 +1 @@ +/Users/will/Development/neuron-technologies/foundation/el/tools/evidence/capture.sh: line 39: ./scripts/verify.sh: No such file or directory diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.out new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.prov new file mode 100644 index 0000000..c37ded3 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:46:19Z +exit 127 +ms 5 +sha256_out e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 +sha256_err 8a55cbc74d4109eff6031edd684824b2ae291283c99f13661b92d22645c175a7 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.rc new file mode 100644 index 0000000..c75acbe --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0029-28-P5-fixpoint-and-suites-at-abb0ab4.rc @@ -0,0 +1 @@ +127 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.cmd new file mode 100644 index 0000000..069314f --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-02b; ls scripts/ 2>&1; echo "---"; echo "verify.sh first appears in:"; git log --oneline --diff-filter=A --all -- scripts/verify.sh diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.out new file mode 100644 index 0000000..e2433c4 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.out @@ -0,0 +1,6 @@ +check-runtime-growth.sh +check-single-runtime.sh +el-runtime-sources.sh +--- +verify.sh first appears in: +6c80dee1 make verification a mechanism instead of a convention diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.prov new file mode 100644 index 0000000..9bdb697 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:46:33Z +exit 0 +ms 28 +sha256_out ce6d188689cd310ec634fe4ce52c2b43540d8733e487a11e65edf1cc2bf0542a +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0030-29-verify-sh-did-not-exist-at-abb0ab4.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.cmd new file mode 100644 index 0000000..bc9f4a7 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-02b/lang; SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; W=/tmp/rerun-v2-02b/work; /tmp/rerun-v2-02b/elc-fixed elc-cli.el > $W/g2.c 2>/dev/null; cc $CF -o $W/elc2 $W/g2.c $SRCS $LF 2>/dev/null; $W/elc2 elc-cli.el > $W/g3.c 2>/dev/null; if cmp -s $W/g2.c $W/g3.c; then echo "FIXPOINT gen2 == gen3 OK"; else echo "FIXPOINT FAILED"; fi; printf "gen2 sha256 = %s\ngen3 sha256 = %s\n" "$(shasum -a 256 $W/g2.c | cut -d\ -f1)" "$(shasum -a 256 $W/g3.c | cut -d\ -f1)" diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.out new file mode 100644 index 0000000..f46e82e --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.out @@ -0,0 +1,3 @@ +FIXPOINT gen2 == gen3 OK +gen2 sha256 = d4d87a473dc500c31f92259079d7cc7b24793576f7ea8631f61ebee1ac31dcc4 +gen3 sha256 = d4d87a473dc500c31f92259079d7cc7b24793576f7ea8631f61ebee1ac31dcc4 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.prov new file mode 100644 index 0000000..c79716f --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:46:37Z +exit 0 +ms 4172 +sha256_out b3659226192b528e8e39872d11258d608803c9c2b1c2514e486102960eac6a2a +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.cmd new file mode 100644 index 0000000..936b58e --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-02b/lang; SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; W=/tmp/rerun-v2-02b/work; $W/elc2 --test tests/native/test_compiler.el > $W/t.c 2>/dev/null; cc $CF -o $W/t $W/t.c $SRCS $LF 2>/dev/null; $W/t; echo "native_suite_exit=$?" diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.out new file mode 100644 index 0000000..542c201 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.out @@ -0,0 +1,108 @@ +ok lex-empty (0.039ms) +ok lex-whitespace-stripped (0.002ms) +ok lex-comment-stripped (0.001ms) +ok lex-int-literals (0.002ms) +ok lex-float-literals (0.010ms) +ok lex-string-literals (0.002ms) +ok lex-string-escape-newline (0.001ms) +ok lex-string-escape-tab (0.001ms) +ok lex-string-escape-backslash (0.000ms) +ok lex-bool-literals (0.001ms) +ok lex-identifier (0.002ms) +ok lex-keywords (0.005ms) +ok lex-more-keywords (0.002ms) +ok lex-keyword-values (0.002ms) +ok lex-arithmetic-operators (0.001ms) +ok lex-comparison-operators (0.001ms) +ok lex-logical-operators (0.001ms) +ok lex-arrow-tokens (0.000ms) +ok lex-delimiters (0.002ms) +ok lex-double-colon (0.000ms) +ok lex-dot-dot (0.000ms) +ok lex-pipe-operators (0.001ms) +ok lex-at-and-question (0.001ms) +ok lex-eof-always-last (0.010ms) +ok lex-string-with-spaces (0.000ms) +ok lex-multiline-source (0.002ms) +ok lex-flat-stride-3-layout (0.001ms) +ok lexer-tracks-line-numbers (0.002ms) +ok parse-let-stmt (0.027ms) +ok parse-fn-decl (0.010ms) +ok parse-fn-params (0.004ms) +ok parse-return-stmt (0.002ms) +ok parse-if-stmt (0.006ms) +ok parse-if-else (0.007ms) +ok parse-while-stmt (0.006ms) +ok parse-import-stmt (0.002ms) +ok parse-extern-fn (0.003ms) +ok parse-let-int-value (0.002ms) +ok parse-let-string-value (0.002ms) +ok parse-let-bool-value (0.002ms) +ok parse-binop-expr (0.002ms) +ok parse-call-expr (0.004ms) +ok parse-multiple-fns (0.005ms) +ok parse-assign-stmt (0.003ms) +ok parse-for-stmt (0.006ms) +ok parse-unary-not (0.004ms) +ok parse-unary-neg (0.004ms) +ok parse-array-literal (0.005ms) +ok parse-empty-array (0.003ms) +ok parse-index-expr (0.004ms) +ok codegen-includes (0.288ms) +ok codegen-int-main (0.219ms) +ok codegen-runtime-init (0.110ms) +ok codegen-void-function-signature (0.130ms) +ok codegen-function-with-params (0.119ms) +ok codegen-int-literal (0.303ms) +ok codegen-string-literal (0.134ms) +ok codegen-if-statement (0.118ms) +ok codegen-if-else (0.126ms) +ok codegen-while-loop (0.105ms) +ok codegen-let-binding (0.094ms) +ok codegen-function-call (0.093ms) +ok codegen-string-concat (0.100ms) +ok codegen-int-arithmetic (0.096ms) +ok codegen-comparison (0.114ms) +ok codegen-string-equality (0.100ms) +ok codegen-logical-and (0.106ms) +ok codegen-logical-or (0.095ms) +ok codegen-unary-not (0.092ms) +ok codegen-string-escape-in-c (0.084ms) +ok codegen-many-functions (0.121ms) +ok codegen-deep-expression (0.109ms) +ok codegen-forward-declarations (0.099ms) +ok codegen-for-loop (0.273ms) +ok codegen-extern-fn (0.164ms) +ok codegen-nested-calls (0.112ms) +ok compiler-minimal-program (0.073ms) +ok compiler-pure-library (0.088ms) +ok compiler-multiple-fns-with-main (0.095ms) +ok compiler-let-in-main (0.059ms) +ok compiler-string-concat-chain (0.088ms) +ok compiler-negative-literal (0.114ms) +ok compiler-stdint-include (0.120ms) +ok decorator-undecorated-fn-has-no-beat (0.119ms) +ok decorator-authenticate-compiles-to-nothing (0.227ms) +ok declared-construct-name-unknown-to-codegen (0.087ms) +ok undeclared-construct-still-injects-nothing (0.122ms) +ok undeclared-guard-emits-nothing (0.081ms) +ok seam-indirection-emitted-on-every-fn (0.078ms) +ok seam-emitted-without-any-decorator (0.065ms) +ok seam-replaces-inlined-entry-injection (0.239ms) +ok seam-entry-is-refusable (0.132ms) +ok seam-is-emitted-for-undecorated-fns (0.089ms) +ok every-fn-gets-a-body-helper-and-wrapper (0.105ms) +ok exit-crossing-goes-through-the-seam (0.070ms) +ok early-returns-route-through-the-exit-seam (0.075ms) +ok every-fn-gets-a-closure (0.070ms) +ok zero-param-fn-emits-valid-c (0.061ms) +ok compiler-no-longer-emits-prohibition-errors (0.083ms) +ok int-returning-builtin-drives-arithmetic-dispatch (0.084ms) +ok string-plus-string-still-concatenates (0.061ms) +ok freed-identifiers-compile-as-identifiers (0.113ms) +ok test-keyword-is-still-reserved (0.079ms) +ok instant-plus-bare-int-is-refused (0.080ms) +ok instant-plus-unit-suffix-is-allowed (0.098ms) + +105 tests, 105 passed, 0 failed, 253 assertions in 6.564ms +native_suite_exit=0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.prov new file mode 100644 index 0000000..365ae22 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:46:54Z +exit 0 +ms 4156 +sha256_out 321a00f8be0ffb9b8780fb84397bb2f5005b588f9f4bb27dca190d9eea7631b9 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0032-31-P5-NATIVE-SUITE-at-abb0ab4.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.cmd b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.cmd new file mode 100644 index 0000000..e5cdd4f --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-02b/lang; W=/tmp/rerun-v2-02b/work; tot=0; hf=0; nh=0; for h in tests/integration/*.sh; do nh=$((nh+1)); out=$("$h" $W/elc2 2>&1); rc=$?; n=$(printf "%s" "$out" | grep -oE "[0-9]+ assertions" | grep -oE "[0-9]+" | head -1); tot=$((tot + ${n:-0})); printf "%-28s exit=%-3s assertions=%s\n" "$(basename $h .sh)" "$rc" "${n:-0}"; [ "$rc" -eq 0 ] || hf=$((hf+1)); done; printf "\nharnesses=%s failed=%s total_assertions=%s\n" "$nh" "$hf" "$tot" diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.err b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.out b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.out new file mode 100644 index 0000000..cdd46b1 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.out @@ -0,0 +1,12 @@ +annotation_query exit=0 assertions=5 +arity_query exit=0 assertions=5 +async_future exit=0 assertions=6 +capability_query exit=0 assertions=5 +definitions_query exit=0 assertions=6 +prohibition_query exit=0 assertions=4 +seam_binding exit=0 assertions=7 +tagged_gate exit=0 assertions=10 +temporal_query exit=0 assertions=6 +temporal_signatures exit=0 assertions=4 + +harnesses=10 failed=0 total_assertions=58 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.prov b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.prov new file mode 100644 index 0000000..8d0fa71 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.prov @@ -0,0 +1,7 @@ +commit abb0ab41980f577ee8bfda04d4339e6355adfa48 +tree dirty +captured_utc 2026-08-17T17:47:19Z +exit 0 +ms 25127 +sha256_out 45ad86a57cd349fac73be04c304b8d4f239096326868a36ce4060d53c4c7eb5d +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.rc b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/0033-32-P5-ALL-HARNESSES-at-abb0ab4.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/CLAIMS.md b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/CLAIMS.md new file mode 100644 index 0000000..90e0689 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/CLAIMS.md @@ -0,0 +1,140 @@ +# CLAIMS — v2 cycle 02, "seven tables, and a defect I shipped that morning" + +Re-run 2026-08-17. Source doc: `docs/v2/experiments/cycles/02-seven-tables-and-a-shipped-defect.md` +(not modified; it is the historical record). + +## Pinned commits + +| Role | SHA | Subject | +|---|---|---| +| BUGGY — before the repair | `1a5246667d80e0bf5830a06a04e1140c2867e4ce` | log the experiments that were run and never written down | +| FIXED — the code commit | `abb0ab41980f577ee8bfda04d4339e6355adfa48` | finish the seven tables, and repair a worse defect they exposed | +| Doc commits | `69f2ab2`, `ebb4f1f` | v2 cycle 02: … | + +Two detached worktrees (`/tmp/rerun-v2-02a` at the buggy parent, +`/tmp/rerun-v2-02b` at the fix), a compiler built in each, and the probe +programs compiled and linked against each worktree's own runtime — so the +runtime under test is the historical one, not today's. Every `.prov` carries +`1a5246667…` or `abb0ab419…`; none is flagged `DIRTY-TREE` by +`verify-manifest.sh`. + +## Verdicts + +| # | Claim as stated in the doc | Artifact | Commit | Verdict | +|---|---|---|---|---| +| A1 | P1 — six of seven are one shape; 5 take a call_expr, 1 takes a name | `0021`, `0022` | both | **REPRODUCED** — six collapse to 3–6 line wrappers, `duration_unit_nanos` does not | +| A2 | P2 — 49 names moved to `signatures.rel` | `0020` | both | **REPRODUCED** exactly — 51 → 100 entries, delta **49** | +| A3 | P3 — `duration_unit_nanos` breaks the shape (name → MULTIPLIER, not name → type) | `0022` | `abb0ab4` | **REPRODUCED** — it alone keeps 17 lines and all 14 string literals | +| A4 | P4 — codegen drops ~120 lines: FALSE, **80** | `0019` | both | **DIVERGED (−79, off by one)** — see below | +| A5 | each table became a 3-line wrapper | `0022` | `abb0ab4` | **REPRODUCED** — five are exactly 3 lines; `is_void_builtin` is 6 | +| A6 | P5 — fixpoint holds | `0031` | `abb0ab4` | **REPRODUCED** — gen2 == gen3, identical sha256 | +| A7 | P5 — all suites hold; 105/105 native, 253 assertions | `0032` | `abb0ab4` | **REPRODUCED** exactly | +| A8 | P5 — 10/10 harnesses, 53 → 58 assertions | `0033` | `abb0ab4` | **REPRODUCED** exactly — 10 harnesses, 0 failed, **58** assertions | +| A9 | P8 — an unrecognised unit silently becomes nanoseconds: FALSE | `0023`, `0024` | `1a52466` | **REPRODUCED** — it is compiled as a field access on the integer | +| A10 | `5.fortnights` → `el_get_field(5, …)` → **exit 139, SIGSEGV** | `0023` | `1a52466` | **REPRODUCED** — exit code **139**, captured directly | +| A11 | `as_map` was a bare cast with no validation | `0028` | `1a52466` | **REPRODUCED** verbatim: `static ElMap* as_map(el_val_t v) { return (ElMap*)(uintptr_t)v; }` | +| A12 | P9 — routing through `el_tagged` stops the SIGSEGV | `0026`, `0028` | `abb0ab4` | **REPRODUCED** — same program now prints `survived`, exit 0 | +| A13 | P10 — legitimate access unaffected: `{"a":1}["a"]` → 1, `[10,20,30][1]` → 20 | `0025`, `0027` | both | **REPRODUCED** — and the two outputs are **byte-identical** (same sha256 `783e5bca6f66`) before and after the fix | +| A14 | P11 — `el_list_get` / `el_list_len` had the identical defect, now gated | `0028` | both | **REPRODUCED** | +| A15 | the guard was `looks_like_heap_obj`, testing `p & 0x7` | `0004` | `1a52466` | **REPRODUCED** verbatim | +| A16 | the shipped fallback was `if (!looks_like_heap_obj(...)) return 0; return strlen(s);` | `0003` | `1a52466` | **REPRODUCED** verbatim | +| A17 | `el_input_len` silently returned 0 for **roughly 60%** of string literals | `0006`, `0007`, `0008`, `0009` | `1a52466` | **DIVERGED — the real rate is worse.** See below | +| A18 | *which* literals failed depended on link layout | `0008`, `0009` | `1a52466` | **REPRODUCED** — and this is the reason A17 diverges | +| A19 | `"abc"` happened to land on an 8-boundary in that build | `0008` | — | **REPRODUCED** — `abc` is still `aligned8=1` today, while 4 of the doc's other 5 are not | +| A20 | `sha256_hex` would hash the empty string instead of its input | `0006`, `0007` | `1a52466` | **REPRODUCED** — 20 of 20 literals return the empty-string hash | +| A21 | the repair checks "not a small integer, not a low address", and nothing more | `0013` | `abb0ab4` | **REPRODUCED** | +| A22 | `tagged_gate.sh` grew from 5 assertions to 10 | `0016`, `0017`, `0018` | both | **REPRODUCED** — 10 assertions, 10 passed | +| A23 | including an explicit assertion that no literal silently hashed as empty | `0018` | `abb0ab4` | **REPRODUCED** — the assertion is present and green | + +Counts: **21 REPRODUCED, 2 DIVERGED, 0 NOT-REPRODUCIBLE, 0 NOT-CAPTURED.** + +--- + +## A17 — THE DIVERGENCE THAT MATTERS: the shipped defect was worse than recorded + +The doc says `el_input_len` returned 0 for **"roughly 60%"** of string literals. +Measured today at the buggy commit, with a probe of **20 string literals of +lengths 1 through 20**, compiled and linked against `1a52466`'s own runtime and +checked against Python's `hashlib.sha256` as an independent oracle (`0007`): + +``` +literals tested = 20 +correct vs hashlib.sha256 = 0 +incorrect = 20 +hashed as the EMPTY STRING = 20 +failure rate = 100% +``` + +**Every one of the twenty.** Not 60% — 100% in this build. The same program at +the fixed commit (`0015`): + +``` +literals tested = 20 +correct vs hashlib.sha256 = 20 +incorrect = 0 +hashed as the EMPTY STRING = 0 +failure rate = 0% +``` + +The mechanism is exactly as the doc describes — `looks_like_heap_obj` rejects +any pointer with `p & 0x7` set, and the linker packs string literals +contiguously with no padding, so consecutive short literals are almost never +8-aligned. Measured directly (`0008`, `0009`): + +``` +the doc's own five literals 4 of 5 misaligned (80%) +twenty literals, lengths 1..20 18 of 20 misaligned (90%) +``` + +Note `abc` is still `aligned8=1` today — the doc's explanation for why the test +passed reproduces precisely — while `hello`, which the doc measured as aligned, +is not aligned in today's build. **The specific set of victims is link-layout +dependent, exactly as the doc says. The rate is not a stable quantity at all, +and the doc's 60% was a five-literal sample.** + +This divergence flatters nothing and is reported for that reason: the doc +understates the severity of the worst defect in the v2 record. And it +understates it by the *same* error the cycle exists to teach — a sample of five +is not a measurement of a rate. That is defect 7's shape ("a single literal is +not a test of a property"), committed inside the paragraph that names it. + +The correct statement, with artifacts behind it: **`el_input_len` returned 0 for +between 80% and 100% of string literals in the builds measured, the exact set +depending on link layout, and in the end-to-end El program measured today it was +all of them.** + +## A4 — the second divergence, cosmetic + +``` +doc: codegen drops 80 lines +measured: TOTAL 4524 -> 4445 = -79 (0019) + CODE 3277 -> 3209 = -68 +``` + +Off by one, the same +1 pattern that appears in cycle 05's totals (documented in +that cycle's CLAIMS.md). The cycle's conclusion — that the predicted ~120 did +not materialise because each table left a wrapper — is unaffected: 79 is as far +from 120 as 80 is. Recorded because a document about miscounting should not +carry an uncorrected miscount. + +Cycle 05 later established that the metric worth quoting is code, not total. On +that metric the drop is **68**, not 80. + +## Instruments + +`instruments/verify-hashes.py` and `instruments/run-oracle.sh` are in this +directory rather than inline, so the oracle's criterion is auditable and so the +capture command stays one line — `capture.sh` records commands with +`printf '%s\n' "$*"`, and a multi-line command splits one manifest record across +several lines and desynchronises its artifact counter. That happened on the first +pass of this cycle. **The whole directory was deleted and every capture re-run +from scratch rather than repairing `MANIFEST.tsv` by hand**, because editing a +manifest to match its artifacts inverts what the manifest is for. The final +manifest is 33 records, 9 fields each, and `verify-manifest.sh` reports 0 altered +and 0 missing. + +`0029` is a real failed run, retained: `scripts/verify.sh` **did not exist** at +`abb0ab4` (exit 127). It first appears in `6c80dee`, cycle 04. P5 was therefore +verified by running fixpoint, the native suite and every harness directly +(`0031`, `0032`, `0033`) rather than through a gauntlet that had not been built +yet. diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/MANIFEST.tsv b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/MANIFEST.tsv new file mode 100644 index 0000000..b69bc2e --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/MANIFEST.tsv @@ -0,0 +1,34 @@ +sha256 bytes exit ms commit tree utc artifact command +7d531005170557490d3ef00542d5093e10b51ccd9115bfb81ed9e7cae67dafee 124 0 9 1a5246667d80 dirty 2026-08-17T17:44:40Z 0001-00-BUGGY-pinned-commit.out git log -1 --format=%H%n%ci%n%s +aa6e76906574c6edd2422421723cbc40c2f2b2f81a5db509ae8a82c02fba97d2 30 0 13 1a5246667d80 dirty 2026-08-17T17:44:40Z 0002-01-BUGGY-worktree-clean.out git status --porcelain +044c4a6e314d5bc47b7eb9a61c7b3a5d6bcba56cbead224dbf850e131e601316 570 0 17 1a5246667d80 dirty 2026-08-17T17:44:40Z 0003-02-BUGGY-el_input_len-source.out bash -c cd /tmp/rerun-v2-02a; grep -n "static size_t el_input_len" -A 10 lang/runtime/el_runtime.c +655a62c931220bdc6b9b6563d065fb047606cce8abcada95b72bb57d7a386ca7 459 0 15 1a5246667d80 dirty 2026-08-17T17:44:40Z 0004-03-BUGGY-looks_like_heap_obj-source.out bash -c cd /tmp/rerun-v2-02a; grep -n "static int looks_like_heap_obj" -A 10 lang/runtime/el_runtime.c +8114c39cfd7f43a0692dfee3c8d2ae601dbf80c632a31f14f608bea4e3b9b4aa 1414 0 4 1a5246667d80 dirty 2026-08-17T17:44:40Z 0005-04-probe-source-20-literals-lengths-1-to-20.out cat /tmp/rerun-v2-02a/work/lit.el +32a6279918627a9a79a371da78aab404895a6050c5070b7455a4d16b1a1d1c60 1830 0 7 1a5246667d80 dirty 2026-08-17T17:44:40Z 0006-05-BUGGY-RUN-20-literals.out /tmp/rerun-v2-02a/work/lit +087862b98e5d31d369a92efd2799d1e7e852dc988737cfc6e34a0b74380cc1a0 3521 0 369 1a5246667d80 dirty 2026-08-17T17:44:41Z 0007-06-BUGGY-ORACLE-verdict.out /Users/will/Development/neuron-technologies/foundation/el/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/instruments/run-oracle.sh /tmp/rerun-v2-02a/work/lit +5e5d09cc202b5d93b4eac4ae911fa8bed2e5d2a38d47ff1765a61f2c0de71c86 275 0 4 1a5246667d80 dirty 2026-08-17T17:44:41Z 0008-07-ALIGNMENT-the-docs-own-five-literals.out /tmp/rerun-v2-02a/work/align5 +a1bd6525284bee14b50ba9eef190ed7dc6b1603c0f40f98eab42ced4ad68b855 1127 0 4 1a5246667d80 dirty 2026-08-17T17:44:41Z 0009-08-ALIGNMENT-twenty-literals-lengths-1-to-20.out /tmp/rerun-v2-02a/work/align20 +b374ea1f09b52559656ed398d45f0512f62913c3da3043c09b437cf22a1051c7 488 0 5 1a5246667d80 dirty 2026-08-17T17:44:41Z 0010-09-alignment-probe-source-align5.out cat /tmp/rerun-v2-02a/work/align5.c +9674537ec9e63e66c5bccd9f553dbf61833ada03aadde8feb5b80b4f5477c525 673 0 5 1a5246667d80 dirty 2026-08-17T17:44:41Z 0011-10-alignment-probe-source-align20.out cat /tmp/rerun-v2-02a/work/align20.c +fe23a709afe165830c447c4c10bad3e71c770b326d2f43a97bcf720883fbefbc 131 0 9 abb0ab41980f dirty 2026-08-17T17:44:51Z 0012-11-FIXED-pinned-commit.out git log -1 --format=%H%n%ci%n%s +cfc667d2ffefbac32441bc38461be71b07df129bf3cddce7768ff20203561a9e 1318 0 15 abb0ab41980f dirty 2026-08-17T17:44:51Z 0013-12-FIXED-el_input_len-source.out bash -c cd /tmp/rerun-v2-02b; grep -n "static size_t el_input_len" -A 22 lang/runtime/el_runtime.c +96374c493b16f0f5f6fce85839fafb0967b2918ad070cddffddacf6358c06671 1830 0 7 abb0ab41980f dirty 2026-08-17T17:44:51Z 0014-13-FIXED-RUN-20-literals.out /tmp/rerun-v2-02b/work/lit +92f2d011d61336ef9d97f39a074d75352b3100223429e5bc8cb15108da5686fa 168 0 36 abb0ab41980f dirty 2026-08-17T17:44:51Z 0015-14-FIXED-ORACLE-verdict.out /Users/will/Development/neuron-technologies/foundation/el/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/instruments/run-oracle.sh /tmp/rerun-v2-02b/work/lit +f0b5c2c2211c8d67ed15e75e656c7862d086e9245420892a7de62cd9ec582a06 2 0 13 abb0ab41980f dirty 2026-08-17T17:44:51Z 0016-15-tagged_gate-assertion-count-BEFORE.out bash -c cd /tmp/rerun-v2-02b; git show 1a52466:lang/tests/integration/tagged_gate.sh | grep -c "^chk \|chk \"" +917df3320d778ddbaa5c5c7742bc4046bf803c36ed2b050f30844ed206783469 3 0 10 abb0ab41980f dirty 2026-08-17T17:44:51Z 0017-16-tagged_gate-assertion-count-AFTER.out bash -c cd /tmp/rerun-v2-02b; grep -c "chk \"" lang/tests/integration/tagged_gate.sh +54ed74debfd5061190b7c6aaecabea13295684ac75502ce77a7a7b0e2e7778e4 497 0 13648 abb0ab41980f dirty 2026-08-17T17:45:05Z 0018-17-tagged_gate-harness-run.out lang/tests/integration/tagged_gate.sh /tmp/rerun-v2-02b/elc-fixed /tmp/rerun-v2-02b/lang +834f02acdfd310427d7a9ed7429f78892f0e15185285adf0d51fb2dfbedf4945 95 0 46 abb0ab41980f dirty 2026-08-17T17:45:25Z 0019-18-P4-codegen-line-delta.out bash -c cd /tmp/rerun-v2-02b; B=$(git show 1a52466:lang/el-compiler/src/codegen.el | wc -l | tr -d " "); A=$(git show abb0ab4:lang/el-compiler/src/codegen.el | wc -l | tr -d " "); BC=$(git show 1a52466:lang/el-compiler/src/codegen.el | grep -v "^[[:space:]]*//" | grep -vc "^[[:space:]]*$"); AC=$(git show abb0ab4:lang/el-compiler/src/codegen.el | grep -v "^[[:space:]]*//" | grep -vc "^[[:space:]]*$"); printf "TOTAL lines %s -> %s delta %s (doc claims -80)\nCODE lines %s -> %s delta %s\n" "$B" "$A" "$((A-B))" "$BC" "$AC" "$((AC-BC))" +19a904d093cc12e30565eff9e07b4464f8bb7506ab4372e7a51eca91713f42f4 136 0 16 abb0ab41980f dirty 2026-08-17T17:45:25Z 0020-19-P2-names-moved-to-signatures-rel.out bash -c cd /tmp/rerun-v2-02b; B=$(git show 1a52466:lang/tools/check/signatures.rel | grep -cE "^[a-z_]+ +returns"); A=$(grep -cE "^[a-z_]+ +returns" lang/tools/check/signatures.rel); printf "signatures.rel entries BEFORE = %s\nsignatures.rel entries AFTER = %s\ndelta = %s (doc claims 49 names moved)\n" "$B" "$A" "$((A-B))" +306b3363d5adcd20833b34144b9243bb4e5098417721205c47c959a002c4e817 445 0 167 abb0ab41980f dirty 2026-08-17T17:45:25Z 0021-20-P1-the-seven-tables-BEFORE.out bash -c cd /tmp/rerun-v2-02b; for f in duration_unit_nanos is_float_call is_void_builtin is_rhythm_call is_calendar_call is_caltime_call is_zone_call; do printf "%-22s at 1a52466: %s lines, %s string literals\n" "$f" "$(git show 1a52466:lang/el-compiler/src/codegen.el | awk "/^fn $f\(/,/^}/" | wc -l | tr -d " ")" "$(git show 1a52466:lang/el-compiler/src/codegen.el | awk "/^fn $f\(/,/^}/" | grep -o "\"[a-z_]*\"" | wc -l | tr -d " ")"; done +add0ce42a0a99632d0532a894d410b95042d3e7e46cb4967f819fe338594df1e 436 0 117 abb0ab41980f dirty 2026-08-17T17:45:26Z 0022-21-P1-the-seven-tables-AFTER.out bash -c cd /tmp/rerun-v2-02b; for f in duration_unit_nanos is_float_call is_void_builtin is_rhythm_call is_calendar_call is_caltime_call is_zone_call; do printf "%-22s at abb0ab4: %s lines, %s string literals\n" "$f" "$(awk "/^fn $f\(/,/^}/" lang/el-compiler/src/codegen.el | wc -l | tr -d " ")" "$(awk "/^fn $f\(/,/^}/" lang/el-compiler/src/codegen.el | grep -o "\"[a-z_]*\"" | wc -l | tr -d " ")"; done +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 139 7 1a5246667d80 dirty 2026-08-17T17:46:09Z 0023-22-P8-BUGGY-5-fortnights-SIGSEGV.out /tmp/rerun-v2-02a/work/p8 +ca4671c54962945ffce55e7aaf256b7873cb46df2a83252a8a165f76b703bf04 56 0 10 1a5246667d80 dirty 2026-08-17T17:46:09Z 0024-23-P8-BUGGY-emitted-C-is-a-field-access.out bash -c cd /tmp/rerun-v2-02a/lang; grep -n "el_get_field" /tmp/rerun-v2-02a/work/p8.c +783e5bca6f660d66ef3c0ddc0b14ed2dc86c70b1cabef7c0b33a76179149618d 5 0 7 1a5246667d80 dirty 2026-08-17T17:46:09Z 0025-24-P10-BUGGY-legitimate-access.out /tmp/rerun-v2-02a/work/p10 +304b524de1a79904aaf8295a0986f8c03dd0d1d26d25902da057b47277147297 9 0 7 abb0ab41980f dirty 2026-08-17T17:46:09Z 0026-25-P9-FIXED-5-fortnights-survives.out /tmp/rerun-v2-02b/work/p8 +783e5bca6f660d66ef3c0ddc0b14ed2dc86c70b1cabef7c0b33a76179149618d 5 0 7 abb0ab41980f dirty 2026-08-17T17:46:09Z 0027-26-P10-FIXED-legitimate-access-unaffected.out /tmp/rerun-v2-02b/work/p10 +4e8ec729991ca53af4fef95edcc4d9bee6788d46e8ff349d389fd04264eacb4d 903 0 47 abb0ab41980f dirty 2026-08-17T17:46:09Z 0028-27-P9-P11-as_map-and-as_list-gates.out bash -c cd /tmp/rerun-v2-02b; echo "=== as_map BEFORE (1a52466) ==="; git show 1a52466:lang/runtime/el_runtime.c | grep -n "static ElMap\* as_map" -A 3; echo; echo "=== as_map AFTER (abb0ab4) ==="; grep -n "static ElMap\* as_map" -A 6 lang/runtime/el_runtime.c; echo; echo "=== el_list_get / el_list_len AFTER ==="; grep -n "el_val_t el_list_get\|el_val_t el_list_len" -A 3 lang/runtime/el_runtime.c | head -20 +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 0 127 5 abb0ab41980f dirty 2026-08-17T17:46:19Z 0029-28-P5-fixpoint-and-suites-at-abb0ab4.out ./scripts/verify.sh +ce6d188689cd310ec634fe4ce52c2b43540d8733e487a11e65edf1cc2bf0542a 165 0 28 abb0ab41980f dirty 2026-08-17T17:46:33Z 0030-29-verify-sh-did-not-exist-at-abb0ab4.out bash -c cd /tmp/rerun-v2-02b; ls scripts/ 2>&1; echo "---"; echo "verify.sh first appears in:"; git log --oneline --diff-filter=A --all -- scripts/verify.sh +b3659226192b528e8e39872d11258d608803c9c2b1c2514e486102960eac6a2a 184 0 4172 abb0ab41980f dirty 2026-08-17T17:46:37Z 0031-30-P5-FIXPOINT-gen2-eq-gen3-at-abb0ab4.out bash -c cd /tmp/rerun-v2-02b/lang; SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; W=/tmp/rerun-v2-02b/work; /tmp/rerun-v2-02b/elc-fixed elc-cli.el > $W/g2.c 2>/dev/null; cc $CF -o $W/elc2 $W/g2.c $SRCS $LF 2>/dev/null; $W/elc2 elc-cli.el > $W/g3.c 2>/dev/null; if cmp -s $W/g2.c $W/g3.c; then echo "FIXPOINT gen2 == gen3 OK"; else echo "FIXPOINT FAILED"; fi; printf "gen2 sha256 = %s\ngen3 sha256 = %s\n" "$(shasum -a 256 $W/g2.c | cut -d\ -f1)" "$(shasum -a 256 $W/g3.c | cut -d\ -f1)" +321a00f8be0ffb9b8780fb84397bb2f5005b588f9f4bb27dca190d9eea7631b9 4349 0 4156 abb0ab41980f dirty 2026-08-17T17:46:54Z 0032-31-P5-NATIVE-SUITE-at-abb0ab4.out bash -c cd /tmp/rerun-v2-02b/lang; SRCS=$(../scripts/el-runtime-sources.sh runtime); CF="-std=c11 -O2 -I runtime"; LF=""; for d in /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3; do [ -d "$d" ] && CF="$CF -I $d/include" && LF="-L $d/lib"; done; LF="$LF -lcurl -lssl -lcrypto -lpthread -lm"; W=/tmp/rerun-v2-02b/work; $W/elc2 --test tests/native/test_compiler.el > $W/t.c 2>/dev/null; cc $CF -o $W/t $W/t.c $SRCS $LF 2>/dev/null; $W/t; echo "native_suite_exit=$?" +45ad86a57cd349fac73be04c304b8d4f239096326868a36ce4060d53c4c7eb5d 556 0 25127 abb0ab41980f dirty 2026-08-17T17:47:19Z 0033-32-P5-ALL-HARNESSES-at-abb0ab4.out bash -c cd /tmp/rerun-v2-02b/lang; W=/tmp/rerun-v2-02b/work; tot=0; hf=0; nh=0; for h in tests/integration/*.sh; do nh=$((nh+1)); out=$("$h" $W/elc2 2>&1); rc=$?; n=$(printf "%s" "$out" | grep -oE "[0-9]+ assertions" | grep -oE "[0-9]+" | head -1); tot=$((tot + ${n:-0})); printf "%-28s exit=%-3s assertions=%s\n" "$(basename $h .sh)" "$rc" "${n:-0}"; [ "$rc" -eq 0 ] || hf=$((hf+1)); done; printf "\nharnesses=%s failed=%s total_assertions=%s\n" "$nh" "$hf" "$tot" diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/RUN.env b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/RUN.env new file mode 100644 index 0000000..22daa35 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/RUN.env @@ -0,0 +1,6 @@ +captured_utc 2026-08-17T17:44:40Z +git_sha 1a5246667d80e0bf5830a06a04e1140c2867e4ce +git_dirty yes +host Wills-MacBook-Pro +uname Darwin Wills-MacBook-Pro 25.5.0 Darwin Kernel Version 25.5.0: Tue Jun 9 22:28:34 PDT 2026; root:xnu-12377.121.10~1/RELEASE_ARM64_T6041 arm64 +cc Apple clang version 21.0.0 (clang-2100.1.1.101) diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/instruments/run-oracle.sh b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/instruments/run-oracle.sh new file mode 100755 index 0000000..dddd427 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/instruments/run-oracle.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +# run-oracle.sh — run the 20-literal probe and check it against +# the independent hashlib oracle. Single-line-safe wrapper: capture.sh records +# commands with printf '%s\n' "$*", so a multi-line command corrupts MANIFEST.tsv. +set -uo pipefail +"$1" | "$(dirname "$0")/verify-hashes.py" diff --git a/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/instruments/verify-hashes.py b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/instruments/verify-hashes.py new file mode 100755 index 0000000..1b97293 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/02-seven-tables-and-a-shipped-defect/instruments/verify-hashes.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +"""Independent oracle for cycle 02. + +Reads the 20-literal probe's stdout and checks every reported SHA-256 against +Python's hashlib. The El runtime is the system under test; hashlib is the +reference. Also counts how many literals hashed as the EMPTY STRING, which is +the signature of el_input_len returning 0. +""" +import sys, hashlib +EMPTY = hashlib.sha256(b"").hexdigest() +ok = bad = empty = n = 0 +for line in sys.stdin: + line = line.strip() + if not line: + continue + parts = dict(p.split("=", 1) for p in line.split(" ") if "=" in p) + lit, got = parts["lit"], parts["sha"] + n += 1 + if got == EMPTY: + empty += 1 + exp = hashlib.sha256(lit.encode()).hexdigest() + if got == exp: + ok += 1 + else: + bad += 1 + print("MISMATCH lit=%s got=%s expected=%s" % (lit, got, exp)) +print("literals tested = %d" % n) +print("correct vs hashlib.sha256 = %d" % ok) +print("incorrect = %d" % bad) +print("hashed as the EMPTY STRING = %d" % empty) +print("failure rate = %.0f%%" % (100.0 * empty / n if n else 0)) diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.cmd b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.cmd new file mode 100644 index 0000000..4de5ff1 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.cmd @@ -0,0 +1 @@ +./p diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.err b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.out b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.out new file mode 100644 index 0000000..19f86f4 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.out @@ -0,0 +1 @@ +done diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.prov b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.prov new file mode 100644 index 0000000..8815803 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.prov @@ -0,0 +1,7 @@ +commit d9d1571f2a17024323a3f7be6966bc476c2f2a78 +tree dirty +captured_utc 2026-08-17T17:40:01Z +exit 0 +ms 149 +sha256_out d117fa006ba9208500b2930ce69cbde436c647afa917cb7396a9bc9111a46dd2 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.rc b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0032-31-AUDIT-unbound-nothing-reported.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.cmd b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.cmd new file mode 100644 index 0000000..e77ebb6 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.cmd @@ -0,0 +1 @@ +env EL_CONSTRUCTS=c.txt ./p diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.err b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.out b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.out new file mode 100644 index 0000000..b765bd0 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.out @@ -0,0 +1,3 @@ +AUDIT save called by handle_request +AUDIT save called by migrate +done diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.prov b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.prov new file mode 100644 index 0000000..7c1e885 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.prov @@ -0,0 +1,7 @@ +commit d9d1571f2a17024323a3f7be6966bc476c2f2a78 +tree dirty +captured_utc 2026-08-17T17:40:01Z +exit 0 +ms 9 +sha256_out e8abf0228909ad379f9b9a53d1375c5710f275b07465c766776a7e679c7409dc +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.rc b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0033-32-AUDIT-bound-the-caller-is-visible.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.cmd b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.cmd new file mode 100644 index 0000000..2f18ef3 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-07b; grep -n "no fourth emission point" -B2 -A1 lang/tests/integration/seam_caller.sh; echo; echo "--- and the harness runs a PREBUILT compiler passed in as \$1 ---"; grep -n "ELC=" lang/tests/integration/seam_caller.sh diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.err b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.out b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.out new file mode 100644 index 0000000..04c8141 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.out @@ -0,0 +1,7 @@ +43-chk "bound: and it changes per call site" "1" "$(echo "$out" | grep -c 'AUDIT save called by migrate')" +44-chk "the program still completes" "1" "$(echo "$out" | grep -c '^done$')" +45:chk "no fourth emission point was added" "3" "$(grep -c 'el_seam_run(EL_STR\|el_seam_wrap(EL_STR' el-compiler/src/codegen.el)" +46-echo; echo " 5 assertions, $((5-F)) passed, $F failed"; exit $F + +--- and the harness runs a PREBUILT compiler passed in as $1 --- +11:ELC="${1:?usage: seam_caller.sh }" diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.prov b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.prov new file mode 100644 index 0000000..2dd4003 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.prov @@ -0,0 +1,7 @@ +commit d9d1571f2a17024323a3f7be6966bc476c2f2a78 +tree dirty +captured_utc 2026-08-17T17:40:25Z +exit 0 +ms 12 +sha256_out 39e278dafabdd8a33e39c460335915d4472c419fd3b77fcfd880080fcf77871d +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.rc b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0034-33-the-harness-assertion-greps-SOURCE.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.cmd b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.cmd new file mode 100644 index 0000000..1fbb128 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-07b/lang; printf "grep count in codegen.el source = %s\n" "$(grep -c "el_seam_run(EL_STR\|el_seam_wrap(EL_STR" el-compiler/src/codegen.el)"; printf "emitted-C emission points (the actual measurement) = %s\n" "$(/tmp/rerun-v2-07b/elc-stack /tmp/rerun-v2-07b/work/probe.el 2>/dev/null | grep -c "el_seam_run(EL_STR\|el_seam_wrap(EL_STR")"; printf "compiler binary sha256 = %s\n" "$(shasum -a 256 /tmp/rerun-v2-07b/elc-stack | cut -d" " -f1)" diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.err b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.out b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.out new file mode 100644 index 0000000..fa846f0 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.out @@ -0,0 +1,3 @@ +grep count in codegen.el source = 3 +emitted-C emission points (the actual measurement) = 9 +compiler binary sha256 = e99058b8c3dcfb29f67cd0e4d5bb29827b3cbfa1370bd639ad9c650a3b5f2f5d diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.prov b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.prov new file mode 100644 index 0000000..893ef2f --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.prov @@ -0,0 +1,7 @@ +commit d9d1571f2a17024323a3f7be6966bc476c2f2a78 +tree dirty +captured_utc 2026-08-17T17:40:25Z +exit 0 +ms 29 +sha256_out 5ea96a0590f14ad364fab5f25df3a8c5d5b2d969952f9cff3745930a72e418b4 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.rc b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0035-34-DISCONNECT-baseline-grep-count-and-binary-sha.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.cmd b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.cmd new file mode 100644 index 0000000..8f6dbb9 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-07b/lang; printf "\n// el_seam_run(EL_STR -- a COMMENT, zero semantic change\n" >> el-compiler/src/codegen.el; printf "grep count in codegen.el source = %s\n" "$(grep -c "el_seam_run(EL_STR\|el_seam_wrap(EL_STR" el-compiler/src/codegen.el)"; printf "emitted-C emission points (unchanged) = %s\n" "$(/tmp/rerun-v2-07b/elc-stack /tmp/rerun-v2-07b/work/probe.el 2>/dev/null | grep -c "el_seam_run(EL_STR\|el_seam_wrap(EL_STR")"; printf "compiler binary sha256 (unchanged) = %s\n" "$(shasum -a 256 /tmp/rerun-v2-07b/elc-stack | cut -d" " -f1)" diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.err b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.out b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.out new file mode 100644 index 0000000..872b46a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.out @@ -0,0 +1,3 @@ +grep count in codegen.el source = 4 +emitted-C emission points (unchanged) = 9 +compiler binary sha256 (unchanged) = e99058b8c3dcfb29f67cd0e4d5bb29827b3cbfa1370bd639ad9c650a3b5f2f5d diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.prov b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.prov new file mode 100644 index 0000000..bd5d8dd --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.prov @@ -0,0 +1,7 @@ +commit d9d1571f2a17024323a3f7be6966bc476c2f2a78 +tree dirty +captured_utc 2026-08-17T17:40:25Z +exit 0 +ms 31 +sha256_out 122ae54ac0500b8ef774b87011ce6f7c62fd692529364ed0532d610300378657 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.rc b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0036-35-DISCONNECT-add-a-COMMENT-to-source.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.cmd b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.cmd new file mode 100644 index 0000000..30088c0 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-07b; lang/tests/integration/seam_caller.sh /tmp/rerun-v2-07b/elc-stack /tmp/rerun-v2-07b/lang; echo "harness_exit=$?" diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.err b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.out b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.out new file mode 100644 index 0000000..f246780 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.out @@ -0,0 +1,9 @@ + ok unbound: nothing is reported + ok bound: the caller is visible + ok bound: and it changes per call site + ok the program still completes + FAIL no fourth emission point was added + expected 3 got 4 + + 5 assertions, 4 passed, 1 failed +harness_exit=1 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.prov b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.prov new file mode 100644 index 0000000..2525aae --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.prov @@ -0,0 +1,7 @@ +commit d9d1571f2a17024323a3f7be6966bc476c2f2a78 +tree dirty +captured_utc 2026-08-17T17:40:29Z +exit 0 +ms 3411 +sha256_out 015e293b744c416408dc0675f73ea17bd152e0ddf34e543a3f108e6e3bbb1d95 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.rc b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0037-36-DISCONNECT-harness-now-FAILS-on-a-comment.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.cmd b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.cmd new file mode 100644 index 0000000..1faadc8 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-07b; git checkout -- lang/el-compiler/src/codegen.el; git status --porcelain -- lang/el-compiler/src/codegen.el; echo "reverted" diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.err b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.out b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.out new file mode 100644 index 0000000..f97d368 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.out @@ -0,0 +1 @@ +reverted diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.prov b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.prov new file mode 100644 index 0000000..58333d3 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.prov @@ -0,0 +1,7 @@ +commit d9d1571f2a17024323a3f7be6966bc476c2f2a78 +tree dirty +captured_utc 2026-08-17T17:40:29Z +exit 0 +ms 21 +sha256_out 3a635fad03292e98f07bb309e7a8fcb6e824f27d51074bb3ed88c7e42ed6c88d +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.rc b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0038-37-DISCONNECT-revert-the-comment.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.cmd b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.cmd new file mode 100644 index 0000000..9e9f190 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-07b; git show d9d1571^:lang/tests/integration/arity_query.sh | grep -n "503\|signatures" diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.err b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.out b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.out new file mode 100644 index 0000000..1ab337f --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.out @@ -0,0 +1,2 @@ +23:n=$("$LANG_DIR/tools/check/arity.sh" "$W/r2.txt" | grep -oE '[0-9]+ signatures') +24:chk "signatures parsed from the header" "503 signatures" "$n" diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.prov b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.prov new file mode 100644 index 0000000..db40667 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.prov @@ -0,0 +1,7 @@ +commit d9d1571f2a17024323a3f7be6966bc476c2f2a78 +tree dirty +captured_utc 2026-08-17T17:40:39Z +exit 0 +ms 15 +sha256_out 08e436cb833af241f0710853d67cea4abebaaafca169f7e2aef51a9676a64a8b +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.rc b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0039-38-defect11-arity-assertion-BEFORE-503.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.cmd b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.cmd new file mode 100644 index 0000000..ce69041 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.cmd @@ -0,0 +1 @@ +bash -c cd /tmp/rerun-v2-07b; git show 47b56a3:lang/tests/integration/arity_query.sh | grep -n "signatures\|SIGN" diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.err b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.out b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.out new file mode 100644 index 0000000..fc389c8 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.out @@ -0,0 +1,2 @@ +25:SIGN=$("$LANG_DIR/tools/check/arity.sh" "$W/r2.txt" | grep -oE '[0-9]+ signatures' | grep -oE '[0-9]+') +26:chk "the header yields a plausible number of signatures" "1" "$([ "${SIGN:-0}" -gt 400 ] && echo 1 || echo 0)" diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.prov b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.prov new file mode 100644 index 0000000..eb44e61 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.prov @@ -0,0 +1,7 @@ +commit d9d1571f2a17024323a3f7be6966bc476c2f2a78 +tree dirty +captured_utc 2026-08-17T17:40:39Z +exit 0 +ms 15 +sha256_out b7049a443edfb3685bdbe477580736bbe297f617310736d2ce6f1e8660f7d218 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.rc b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0040-39-defect11-arity-assertion-AFTER-property.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.cmd b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.cmd new file mode 100644 index 0000000..af03ced --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.cmd @@ -0,0 +1 @@ +git status --porcelain diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.err b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.err new file mode 100644 index 0000000..e69de29 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.out b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.out new file mode 100644 index 0000000..e9c4b19 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.out @@ -0,0 +1,3 @@ +?? elc-stack +?? g2.c +?? work/ diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.prov b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.prov new file mode 100644 index 0000000..8243220 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.prov @@ -0,0 +1,7 @@ +commit d9d1571f2a17024323a3f7be6966bc476c2f2a78 +tree dirty +captured_utc 2026-08-17T17:40:40Z +exit 0 +ms 14 +sha256_out 13efd38216a68a822c87c78f412131f8111d0383aa93be4cc9ef385986a04870 +sha256_err e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.rc b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.rc new file mode 100644 index 0000000..573541a --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/0041-40-worktree-clean-at-end.rc @@ -0,0 +1 @@ +0 diff --git a/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/CLAIMS.md b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/CLAIMS.md new file mode 100644 index 0000000..8f9dcf0 --- /dev/null +++ b/docs/v2/experiments/evidence/cycles/07-the-caller-was-already-there/CLAIMS.md @@ -0,0 +1,176 @@ +# CLAIMS — v2 cycle 07, "the caller was already there" + +Re-run 2026-08-17. Source doc: `docs/v2/experiments/cycles/07-the-caller-was-already-there.md` +(not modified; it is the historical record). + +## Pinned commits + +| Role | SHA | Subject | +|---|---|---| +| Code commit (system under test) | `d9d1571f2a17024323a3f7be6966bc476c2f2a78` | a construct can see its caller, with no new emission point | +| Its parent — the BASE for timing | `d403a5cf2e728ce00ecdc2d84290e471e74159bb` | v2 cycle 06: form is half bindable | +| Merge that landed it | `ffab17b` | merge experiment/seam-caller | +| Cycle 07 doc commit | `47b56a3` | v2 cycle 07: the caller was already there | +| Standing critique of this cycle | `fbb3a52` | cycle 07's central claim is backed by a grep, not a measurement | + +All measurements were taken in detached worktrees at `d9d1571` and `d403a5c`, +so each `.prov` carries the system under test's SHA, not the re-run host's. + +`d9d1571` adds 80 lines across three files and touches **no compiler source** — +`el_runtime.c` (+33), `el_runtime.h` (+1), `seam_caller.sh` (+46). The compiler +sources are byte-identical between BASE and STACK worktrees (`0006`, +`diff -rq … IDENTICAL`), so the timing below isolates the runtime change and +nothing else. + +## Verdicts + +| # | Claim as stated in the doc | Artifact | Commit | Verdict | +|---|---|---|---|---| +| A1 | P1 — exactly three emission points per fn | `0026`, `0027`, `0028` | `d9d1571` | **REPRODUCED** — and by a *better* instrument than the doc's, see below | +| A2 | P2 — no other emission point exists | `0027`, `0028`, `0029`, `0030` | `d9d1571` | **REPRODUCED** — loops, call sites and field accesses emit none | +| A3 | entry is `el_seam_run(fn, 0, 0)`, refusable | `0026`, `0028` | `d9d1571` | **REPRODUCED** verbatim | +| A4 | wrap is `el_seam_wrap(fn, thunk, env)` | `0026`, `0028` | `d9d1571` | **REPRODUCED** verbatim | +| A5 | exit is `el_seam_run(fn, 1, __r)` | `0026`, `0028` | `d9d1571` | **REPRODUCED** verbatim | +| A6 | all three keyed on `fn_name` | `0028` | `d9d1571` | **REPRODUCED** — every point carries `EL_STR("")` | +| A7 | P3 — a construct cannot see WHO called it (before the change) | `0032` | `d9d1571` | **REPRODUCED** — unbound run reports nothing | +| A8 | P4 — the call graph is static, the gap is runtime | — | — | **NOT-CAPTURED** — asserted in prose, no measurement stated | +| A9 | P5 — a seam-maintained stack gives the caller with NO new emission point | `0027`, `0033` | `d9d1571` | **REPRODUCED** | +| A10 | the result: `AUDIT save called by handle_request` | `0033` | `d9d1571` | **REPRODUCED** verbatim | +| A11 | and `AUDIT save called by migrate` | `0033` | `d9d1571` | **REPRODUCED** verbatim | +| A12 | a construct bound **after the build** sees its caller | `0032`, `0033` | `d9d1571` | **REPRODUCED** — same binary, binding supplied at run time via `EL_CONSTRUCTS` | +| A13 | P6 — maintaining the stack costs something measurable — FALSE | `0007`–`0021`, `0024` | `d9d1571` vs `d403a5c` | **REPRODUCED** — 7 interleaved rounds, means identical to 0.00 ms | +| A14 | P7 — moving it behind the early-out removes the cost — FALSE, there was no cost | `0024` | — | **NOT-REPRODUCIBLE** — the "before the early-out" variant was never committed | +| A15 | interleaved rounds base 0.25/0.25/0.24 s, stack 0.24/0.24/0.24 s | `0024`, `0025` | `d9d1571` vs `d403a5c` | **DIVERGED on absolute magnitude, REPRODUCED on the conclusion** — see below | +| A16 | "identical within noise. There was no regression." | `0024` | `d9d1571` vs `d403a5c` | **REPRODUCED**, and more strongly than the doc claims | +| A17 | the baseline had drifted from 0.37 s — the machine, not the code | `0025` | — | **REPRODUCED in mechanism** — cold/warm alone is 4.30× | +| A18 | `seam_caller.sh` — 5 assertions | `0031` | `d9d1571` | **REPRODUCED** — 5 assertions, 5 passed, exit 0 | +| A19 | defect 11 — `arity_query.sh` asserted exactly 503 signatures | `0039` | `d9d1571^` | **REPRODUCED** verbatim | +| A20 | the assertion now tests the property directly | `0040` | `47b56a3` | **REPRODUCED** — now `SIGN -gt 400` | +| A21 | "the gauntlet built in cycle 04 caught this" | — | — | **NOT-CAPTURED** — no artifact of the original failing run survives | + +Counts: **17 REPRODUCED, 1 DIVERGED, 1 NOT-REPRODUCIBLE, 2 NOT-CAPTURED.** + +--- + +## A1/A2 — measured from emitted C, because the doc's instrument does not measure the system + +The cycle's headline — *three emission points, all keyed on `fn_name`* — is +asserted in `seam_caller.sh` by this line (`0034`): + +``` +chk "no fourth emission point was added" "3" \ + "$(grep -c 'el_seam_run(EL_STR\|el_seam_wrap(EL_STR' el-compiler/src/codegen.el)" +``` + +That greps **compiler source text**, while the harness runs a **prebuilt +compiler** passed in as `$1`. The source it counts is never compiled by the +harness. Commit `fbb3a52` records this as a standing defect. I confirmed it +independently, in both directions, with my own artifacts: + +| | grep of source | emitted-C emission points | compiler sha256 | harness | +|---|---|---|---|---| +| baseline (`0035`) | 3 | 9 | `e99058b8…` | 5/5 green | +| after appending one **comment line** (`0036`, `0037`) | **4** | **9** | **`e99058b8…` unchanged** | **FAILS, "expected 3 got 4"** | + +A comment — zero semantic change, byte-identical binary, identical emitted C — +turns the cycle's central assertion red. The assertion measures a text file, not +the system. + +**So I did not rely on it.** A1–A6 above are graded against the **emitted C +produced by the binary under test**, which is causally downstream of the +compiler and therefore an actual measurement. Compiling a probe containing a +loop, a call site, a map field access and four functions (`0030`) yields +(`0028`): + +``` +fields -> entry wrap exit +loops -> entry wrap exit +helper -> entry wrap exit + +total emission points = 9 +``` + +Three functions with bodies, three points each, nine total, every one keyed on +the function name. `main` gets none. **Loops, call sites and field accesses get +none** — which is precisely the bound the cycle claims, now established by +observing the compiler's output rather than by counting strings in its source. + +This is a stronger result than the document's, obtained because the document's +own instrument was found untrustworthy. The conclusion the cycle drew was right; +the evidence it offered for it was not. + +--- + +## A15 — the one divergence, reported loudly + +The conclusion reproduces. The numbers do not. + +``` +doc: round 1 base 0.25 s stack 0.24 s + round 2 base 0.25 s stack 0.24 s + round 3 base 0.24 s stack 0.24 s + +measured: 7 interleaved rounds, alternating, identical workload + round BASE STACK + 1 51 53 + 2 53 52 + 3 52 53 + 4 53 53 + 5 52 52 + 6 52 52 + 7 53 51 + + BASE mean 52.29 ms min 51 max 53 spread 2 sd 0.70 + STACK mean 52.29 ms min 51 max 53 spread 2 sd 0.70 + STACK/BASE ratio of means = 1.0000 (+0.00%) +``` + +**Today's absolute figures are ~4.8× faster than the doc's** — 52 ms where the +doc reports 240–250 ms. The doc's conclusion is nonetheless confirmed, and +confirmed harder: where the doc showed a 1-round-in-3 wobble of 0.01 s, seven +interleaved rounds give means equal to two decimal places and identical spread. + +The magnitude gap is explained, and the explanation is the point of the cycle +(`0025`): + +``` +FIRST (cold) run, BASE = 225 ms +FIRST (cold) run, STACK = 229 ms +steady-state warm mean over 14 runs = 52.29 ms +cold/warm ratio, BASE = 4.30x +``` + +The doc's 0.24–0.25 s figures sit in the cold-cache band; its steady-state +equivalent is 52 ms. **Cache state alone moves this workload by 4.30×, which is +larger than the 50% (0.48 → 0.72 s) "regression" that was originally reported +and then retracted.** That single number does more to explain the phantom +regression than the retraction in the doc does: the original pair of timings was +not merely noisy, it was almost certainly comparing a cold run against a warm +one. + +Recorded as DIVERGED because the doc presents 0.25 s and 0.24 s as measurements +of this workload and they are not reproducible as such — they are reproducible +only as cold-start measurements. The *finding* they support — no regression — +is REPRODUCED (A13, A16). + +## A14 — why NOT-REPRODUCIBLE + +P7 concerns a variant in which the depth-stack maintenance sits **before** the +unbound early-out. That variant was never committed; only the post-early-out +form exists in history (`0003`). Reconstructing it would mean writing a mutant +today and grading a historical prediction against it, which is a new experiment, +not a reproduction. The runtime comment in `0003` states the 50% figure that +motivated the move — but a comment is a claim, not a measurement, and no +artifact of it survives. + +## Notes on tree state + +Every `.prov` records `d9d1571f2…` or `d403a5cf2…`. `0041` shows the worktree +ended with only untracked build scaffolding (`elc-stack`, `g2.c`, `work/`) and +no modified tracked file: the deliberate source mutation in `0036` was reverted +in `0038` and the revert is in the record. Both worktrees were removed after +capture. + +`0023` is a failed instrument run (a malformed `awk`, exit 2) and is retained +rather than deleted. Removing a failed attempt from an evidence record is itself +a measurement defect; `0024` is the corrected run. diff --git a/engram/dist/engram b/engram/dist/engram deleted file mode 100755 index cfde62815d6a6fe93ac1bd436e691e3ff2599eb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3558696 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�SqzhI_3xDyp(0}FChqlmv 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

R|wAv`0T9b#{fV_3WIHO>?1jb~(gBVsaRu>= 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

  • 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⩔ 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%0A&7k-dpLX5D{0uk60##J$?Iz=2)A__{5< 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

    Ua62Z&vNSd9J24#d~8DZu9`GalF7DG3m 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 v4-_lGr35{l!F%$zaGgCd|SS!c+R^JlB`bT}__ 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 WfW?Z3SSFu0;EavyJq`c>0001zQn8!> diff --git a/engram/dist/engram.c b/engram/dist/engram.c deleted file mode 100644 index eebdc34..0000000 --- a/engram/dist/engram.c +++ /dev/null @@ -1,561 +0,0 @@ -#include -#include -#include "el_runtime.h" - -el_val_t parse_port(el_val_t bind); -el_val_t ok_json(void); -el_val_t err_json(el_val_t msg); -el_val_t strip_query(el_val_t path); -el_val_t query_param(el_val_t path, el_val_t key); -el_val_t query_int(el_val_t path, el_val_t key, el_val_t default_val); -el_val_t extract_id(el_val_t path, el_val_t prefix); -el_val_t route_stats(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_act_stats(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_text_health(el_val_t method, el_val_t path, el_val_t body); -el_val_t persist_canonical(void); -el_val_t route_create_node(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_get_node(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_scan_nodes(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_scan_edges(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_search(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_activate(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_create_edge(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_create_edges_batch(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_neighbors(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_strengthen(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_forget(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_save(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_load(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_health(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_embed_backfill(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_sync(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_load_merge(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_emit_ise(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_capture_knowledge(el_val_t method, el_val_t path, el_val_t body); -el_val_t route_similarity(el_val_t method, el_val_t path, el_val_t body); -el_val_t check_auth_ok(el_val_t method, el_val_t body); -el_val_t handle_request(el_val_t method, el_val_t path, el_val_t body); - -el_val_t bind_raw; -el_val_t bind_str; -el_val_t port; -el_val_t data_dir_raw; -el_val_t data_dir; -el_val_t snapshot_path; -el_val_t boot_snap; - -el_val_t parse_port(el_val_t bind) { - el_val_t colon = str_index_of(bind, EL_STR(":")); - if (colon < 0) { - return str_to_int(bind); - } - el_val_t after = str_slice(bind, (colon + 1), str_len(bind)); - return str_to_int(after); - return 0; -} - -el_val_t ok_json(void) { - return EL_STR("{\"ok\":true}"); - return 0; -} - -el_val_t err_json(el_val_t msg) { - return el_str_concat(el_str_concat(EL_STR("{\"error\":\""), msg), EL_STR("\"}")); - return 0; -} - -el_val_t strip_query(el_val_t path) { - el_val_t q = str_index_of(path, EL_STR("?")); - if (q < 0) { - return path; - } - return str_slice(path, 0, q); - return 0; -} - -el_val_t query_param(el_val_t path, el_val_t key) { - el_val_t q = str_index_of(path, EL_STR("?")); - if (q < 0) { - return EL_STR(""); - } - el_val_t qs = str_slice(path, (q + 1), str_len(path)); - el_val_t needle = el_str_concat(key, EL_STR("=")); - el_val_t pos = str_index_of(qs, needle); - if (pos < 0) { - return EL_STR(""); - } - el_val_t after = str_slice(qs, (pos + str_len(needle)), str_len(qs)); - el_val_t amp = str_index_of(after, EL_STR("&")); - if (amp < 0) { - return after; - } - return str_slice(after, 0, amp); - return 0; -} - -el_val_t query_int(el_val_t path, el_val_t key, el_val_t default_val) { - el_val_t v = query_param(path, key); - if (str_eq(v, EL_STR(""))) { - return default_val; - } - return str_to_int(v); - return 0; -} - -el_val_t extract_id(el_val_t path, el_val_t prefix) { - el_val_t clean = strip_query(path); - if (!str_starts_with(clean, prefix)) { - return EL_STR(""); - } - el_val_t after = str_slice(clean, str_len(prefix), str_len(clean)); - el_val_t slash = str_index_of(after, EL_STR("/")); - if (slash < 0) { - return after; - } - return str_slice(after, 0, slash); - return 0; -} - -el_val_t route_stats(el_val_t method, el_val_t path, el_val_t body) { - return engram_stats_json(); - return 0; -} - -el_val_t route_act_stats(el_val_t method, el_val_t path, el_val_t body) { - return engram_act_stats_json(); - return 0; -} - -el_val_t route_text_health(el_val_t method, el_val_t path, el_val_t body) { - return engram_text_health_json(); - return 0; -} - -el_val_t persist_canonical(void) { - el_val_t dir_raw = env(EL_STR("ENGRAM_DATA_DIR")); - el_val_t dir = ({ el_val_t _if_result_1 = 0; if (str_eq(dir_raw, EL_STR(""))) { _if_result_1 = (EL_STR("/tmp/engram")); } else { _if_result_1 = (dir_raw); } _if_result_1; }); - return engram_save(el_str_concat(dir, EL_STR("/snapshot.json"))); - return 0; -} - -el_val_t route_create_node(el_val_t method, el_val_t path, el_val_t body) { - el_val_t content = json_get_string(body, EL_STR("content")); - el_val_t nt_raw = json_get_string(body, EL_STR("node_type")); - el_val_t node_type = ({ el_val_t _if_result_2 = 0; if (str_eq(nt_raw, EL_STR(""))) { _if_result_2 = (EL_STR("Memory")); } else { _if_result_2 = (nt_raw); } _if_result_2; }); - el_val_t sal_present = json_get_raw(body, EL_STR("salience")); - el_val_t salience = ({ el_val_t _if_result_3 = 0; if (str_eq(sal_present, EL_STR(""))) { _if_result_3 = (el_from_float(0.5)); } else { _if_result_3 = (json_get_float(body, EL_STR("salience"))); } _if_result_3; }); - el_val_t label_raw = json_get_string(body, EL_STR("label")); - el_val_t label = ({ el_val_t _if_result_4 = 0; if (str_eq(label_raw, EL_STR(""))) { _if_result_4 = (content); } else { _if_result_4 = (label_raw); } _if_result_4; }); - el_val_t imp_present = json_get_raw(body, EL_STR("importance")); - el_val_t importance = ({ el_val_t _if_result_5 = 0; if (str_eq(imp_present, EL_STR(""))) { _if_result_5 = (el_from_float(0.5)); } else { _if_result_5 = (json_get_float(body, EL_STR("importance"))); } _if_result_5; }); - el_val_t conf_present = json_get_raw(body, EL_STR("confidence")); - el_val_t confidence = ({ el_val_t _if_result_6 = 0; if (str_eq(conf_present, EL_STR(""))) { _if_result_6 = (el_from_float(1.0)); } else { _if_result_6 = (json_get_float(body, EL_STR("confidence"))); } _if_result_6; }); - el_val_t tier_raw = json_get_string(body, EL_STR("tier")); - el_val_t tier = ({ el_val_t _if_result_7 = 0; if (str_eq(tier_raw, EL_STR(""))) { _if_result_7 = (EL_STR("Working")); } else { _if_result_7 = (tier_raw); } _if_result_7; }); - el_val_t tags = json_get_string(body, EL_STR("tags")); - el_val_t id = engram_node_full(content, node_type, label, salience, importance, confidence, tier, tags); - el_val_t saved = persist_canonical(); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{\"id\":\""), id), EL_STR("\",\"content\":\"")), content), EL_STR("\",\"node_type\":\"")), node_type), EL_STR("\"}")); - return 0; -} - -el_val_t route_get_node(el_val_t method, el_val_t path, el_val_t body) { - el_val_t id = extract_id(path, EL_STR("/api/nodes/")); - if (str_eq(id, EL_STR(""))) { - return err_json(EL_STR("missing id")); - } - return engram_get_node_json(id); - return 0; -} - -el_val_t route_scan_nodes(el_val_t method, el_val_t path, el_val_t body) { - el_val_t limit = query_int(path, EL_STR("limit"), 50); - el_val_t offset = query_int(path, EL_STR("offset"), 0); - el_val_t nt = query_param(path, EL_STR("node_type")); - if (str_eq(nt, EL_STR(""))) { - return engram_scan_nodes_json(limit, offset); - } - return engram_scan_nodes_by_type_json(nt, limit, offset); - return 0; -} - -el_val_t route_scan_edges(el_val_t method, el_val_t path, el_val_t body) { - el_val_t dir_raw = env(EL_STR("ENGRAM_DATA_DIR")); - el_val_t dir = ({ el_val_t _if_result_8 = 0; if (str_eq(dir_raw, EL_STR(""))) { _if_result_8 = (EL_STR("/tmp/engram")); } else { _if_result_8 = (dir_raw); } _if_result_8; }); - el_val_t snap_path = el_str_concat(dir, EL_STR("/.scan-export.json")); - engram_save(snap_path); - el_val_t snap = fs_read(snap_path); - if (str_eq(snap, EL_STR(""))) { - return EL_STR("[]"); - } - el_val_t edges = json_get_raw(snap, EL_STR("edges")); - if (str_eq(edges, EL_STR(""))) { - return EL_STR("[]"); - } - return edges; - return 0; -} - -el_val_t route_search(el_val_t method, el_val_t path, el_val_t body) { - el_val_t q = ({ el_val_t _if_result_9 = 0; if (str_eq(method, EL_STR("GET"))) { _if_result_9 = (query_param(path, EL_STR("q"))); } else { _if_result_9 = (json_get_string(body, EL_STR("query"))); } _if_result_9; }); - el_val_t lim_url = query_int(path, EL_STR("limit"), 0); - el_val_t lim_body = json_get_int(body, EL_STR("limit")); - el_val_t lim_either = ({ el_val_t _if_result_10 = 0; if ((lim_url > 0)) { _if_result_10 = (lim_url); } else { _if_result_10 = (lim_body); } _if_result_10; }); - el_val_t limit = ({ el_val_t _if_result_11 = 0; if ((lim_either > 0)) { _if_result_11 = (lim_either); } else { _if_result_11 = (20); } _if_result_11; }); - return engram_search_json(q, limit); - return 0; -} - -el_val_t route_activate(el_val_t method, el_val_t path, el_val_t body) { - el_val_t q = ({ el_val_t _if_result_12 = 0; if (str_eq(method, EL_STR("GET"))) { _if_result_12 = (query_param(path, EL_STR("q"))); } else { _if_result_12 = (json_get_string(body, EL_STR("query"))); } _if_result_12; }); - if (str_eq(q, EL_STR(""))) { - return err_json(EL_STR("missing query")); - } - el_val_t d_raw = ({ el_val_t _if_result_13 = 0; if (str_eq(method, EL_STR("GET"))) { _if_result_13 = (query_int(path, EL_STR("depth"), 3)); } else { _if_result_13 = (json_get_int(body, EL_STR("depth"))); } _if_result_13; }); - el_val_t depth = ({ el_val_t _if_result_14 = 0; if ((d_raw > 0)) { _if_result_14 = (d_raw); } else { _if_result_14 = (3); } _if_result_14; }); - return el_str_concat(el_str_concat(EL_STR("{\"results\":"), engram_activate_json(q, depth)), EL_STR("}")); - return 0; -} - -el_val_t route_create_edge(el_val_t method, el_val_t path, el_val_t body) { - el_val_t from_id = json_get_string(body, EL_STR("from_id")); - el_val_t to_id = json_get_string(body, EL_STR("to_id")); - el_val_t rel_raw = json_get_string(body, EL_STR("relation")); - el_val_t relation = ({ el_val_t _if_result_15 = 0; if (str_eq(rel_raw, EL_STR(""))) { _if_result_15 = (EL_STR("associates")); } else { _if_result_15 = (rel_raw); } _if_result_15; }); - el_val_t w_present = json_get_raw(body, EL_STR("weight")); - el_val_t weight = ({ el_val_t _if_result_16 = 0; if (str_eq(w_present, EL_STR(""))) { _if_result_16 = (el_from_float(0.5)); } else { _if_result_16 = (json_get_float(body, EL_STR("weight"))); } _if_result_16; }); - engram_connect(from_id, to_id, weight, relation); - el_val_t saved = persist_canonical(); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{\"ok\":true,\"from_id\":\""), from_id), EL_STR("\",\"to_id\":\"")), to_id), EL_STR("\",\"relation\":\"")), relation), EL_STR("\"}")); - return 0; -} - -el_val_t route_create_edges_batch(el_val_t method, el_val_t path, el_val_t body) { - el_val_t arr = json_get_raw(body, EL_STR("edges")); - if (str_eq(arr, EL_STR(""))) { - return err_json(EL_STR("missing edges array")); - } - el_val_t n = json_array_len(arr); - if (n == 0) { - return EL_STR("{\"ok\":true,\"accepted\":0,\"skipped\":0}"); - } - el_val_t i = 0; - el_val_t accepted = 0; - el_val_t skipped = 0; - while (i < n) { - el_val_t item = json_array_get(arr, i); - el_val_t from_id = json_get_string(item, EL_STR("from_id")); - el_val_t to_id = json_get_string(item, EL_STR("to_id")); - if (str_eq(from_id, EL_STR("")) || str_eq(to_id, EL_STR(""))) { - skipped = (skipped + 1); - } else { - el_val_t rel_raw = json_get_string(item, EL_STR("relation")); - el_val_t relation = ({ el_val_t _if_result_17 = 0; if (str_eq(rel_raw, EL_STR(""))) { _if_result_17 = (EL_STR("associates")); } else { _if_result_17 = (rel_raw); } _if_result_17; }); - el_val_t w_present = json_get_raw(item, EL_STR("weight")); - el_val_t weight = ({ el_val_t _if_result_18 = 0; if (str_eq(w_present, EL_STR(""))) { _if_result_18 = (el_from_float(0.5)); } else { _if_result_18 = (json_get_float(item, EL_STR("weight"))); } _if_result_18; }); - engram_connect(from_id, to_id, weight, relation); - accepted = (accepted + 1); - } - i = (i + 1); - } - if (accepted > 0) { - el_val_t saved = persist_canonical(); - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{\"ok\":true,\"accepted\":"), int_to_str(accepted)), EL_STR(",\"skipped\":")), int_to_str(skipped)), EL_STR("}")); - return 0; -} - -el_val_t route_neighbors(el_val_t method, el_val_t path, el_val_t body) { - el_val_t id = extract_id(path, EL_STR("/api/neighbors/")); - if (str_eq(id, EL_STR(""))) { - return err_json(EL_STR("missing id")); - } - el_val_t depth = query_int(path, EL_STR("depth"), 1); - return engram_neighbors_json(id, depth, EL_STR("both")); - return 0; -} - -el_val_t route_strengthen(el_val_t method, el_val_t path, el_val_t body) { - el_val_t id = json_get_string(body, EL_STR("node_id")); - if (str_eq(id, EL_STR(""))) { - return err_json(EL_STR("missing node_id")); - } - engram_strengthen(id); - el_val_t saved = persist_canonical(); - return ok_json(); - return 0; -} - -el_val_t route_forget(el_val_t method, el_val_t path, el_val_t body) { - el_val_t id = extract_id(path, EL_STR("/api/nodes/")); - if (str_eq(id, EL_STR(""))) { - return err_json(EL_STR("missing id")); - } - engram_forget(id); - el_val_t saved = persist_canonical(); - return ok_json(); - return 0; -} - -el_val_t route_save(el_val_t method, el_val_t path, el_val_t body) { - el_val_t p_raw = json_get_string(body, EL_STR("path")); - el_val_t dir_raw = env(EL_STR("ENGRAM_DATA_DIR")); - el_val_t dir = ({ el_val_t _if_result_19 = 0; if (str_eq(dir_raw, EL_STR(""))) { _if_result_19 = (EL_STR("/tmp/engram")); } else { _if_result_19 = (dir_raw); } _if_result_19; }); - el_val_t p = ({ el_val_t _if_result_20 = 0; if (str_eq(p_raw, EL_STR(""))) { _if_result_20 = (el_str_concat(dir, EL_STR("/snapshot.json"))); } else { _if_result_20 = (p_raw); } _if_result_20; }); - el_val_t sv = engram_save(p); - el_val_t sv_ok = ({ el_val_t _if_result_21 = 0; if ((sv == 0)) { _if_result_21 = (EL_STR("false")); } else { _if_result_21 = (EL_STR("true")); } _if_result_21; }); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{\"ok\":"), sv_ok), EL_STR(",\"path\":\"")), p), EL_STR("\",\"node_count\":")), int_to_str(engram_node_count())), EL_STR(",\"edge_count\":")), int_to_str(engram_edge_count())), EL_STR("}")); - return 0; -} - -el_val_t route_load(el_val_t method, el_val_t path, el_val_t body) { - el_val_t p_raw = json_get_string(body, EL_STR("path")); - el_val_t dir_raw = env(EL_STR("ENGRAM_DATA_DIR")); - el_val_t dir = ({ el_val_t _if_result_22 = 0; if (str_eq(dir_raw, EL_STR(""))) { _if_result_22 = (EL_STR("/tmp/engram")); } else { _if_result_22 = (dir_raw); } _if_result_22; }); - el_val_t p = ({ el_val_t _if_result_23 = 0; if (str_eq(p_raw, EL_STR(""))) { _if_result_23 = (el_str_concat(dir, EL_STR("/snapshot.json"))); } else { _if_result_23 = (p_raw); } _if_result_23; }); - el_val_t ld = engram_load(p); - el_val_t ld_ok = ({ el_val_t _if_result_24 = 0; if ((ld == 0)) { _if_result_24 = (EL_STR("false")); } else { _if_result_24 = (EL_STR("true")); } _if_result_24; }); - el_val_t nc_after = engram_node_count(); - el_val_t hollow = ({ el_val_t _if_result_25 = 0; if ((nc_after == 0)) { _if_result_25 = (EL_STR("true")); } else { _if_result_25 = (EL_STR("false")); } _if_result_25; }); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{\"ok\":"), ld_ok), EL_STR(",\"path\":\"")), p), EL_STR("\",\"node_count\":")), int_to_str(nc_after)), EL_STR(",\"edge_count\":")), int_to_str(engram_edge_count())), EL_STR(",\"hollow\":")), hollow), EL_STR("}")); - return 0; -} - -el_val_t route_health(el_val_t method, el_val_t path, el_val_t body) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{\"status\":\"ok\",\"engine\":\"engram-runtime-native\",\"node_count\":"), int_to_str(engram_node_count())), EL_STR(",\"edge_count\":")), int_to_str(engram_edge_count())), EL_STR("}")); - return 0; -} - -el_val_t route_embed_backfill(el_val_t method, el_val_t path, el_val_t body) { - el_val_t n = query_int(path, EL_STR("n"), 32); - el_val_t result = engram_embed_backfill(n); - el_val_t done = json_get_float(result, EL_STR("embedded")); - if (done > el_from_float(0.0)) { - el_val_t saved = persist_canonical(); - } - return result; - return 0; -} - -el_val_t route_sync(el_val_t method, el_val_t path, el_val_t body) { - el_val_t dir_raw = env(EL_STR("ENGRAM_DATA_DIR")); - el_val_t dir = ({ el_val_t _if_result_26 = 0; if (str_eq(dir_raw, EL_STR(""))) { _if_result_26 = (EL_STR("/tmp/engram")); } else { _if_result_26 = (dir_raw); } _if_result_26; }); - el_val_t snap_path = el_str_concat(dir, EL_STR("/.sync-export.json")); - engram_save(snap_path); - el_val_t snap = fs_read(snap_path); - if (str_eq(snap, EL_STR(""))) { - return err_json(EL_STR("sync export failed: snapshot unreadable")); - } - return snap; - return 0; -} - -el_val_t route_load_merge(el_val_t method, el_val_t path, el_val_t body) { - el_val_t p = json_get_string(body, EL_STR("path")); - if (str_eq(p, EL_STR(""))) { - return err_json(EL_STR("path is required")); - } - if (str_eq(fs_read(p), EL_STR(""))) { - return err_json(EL_STR("file missing or empty")); - } - el_val_t before_n = engram_node_count(); - el_val_t before_e = engram_edge_count(); - engram_load_merge(p); - el_val_t added_n = (engram_node_count() - before_n); - el_val_t added_e = (engram_edge_count() - before_e); - el_val_t saved = persist_canonical(); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{\"ok\":true,\"nodes_added\":"), int_to_str(added_n)), EL_STR(",\"edges_added\":")), int_to_str(added_e)), EL_STR(",\"node_count\":")), int_to_str(engram_node_count())), EL_STR("}")); - return 0; -} - -el_val_t route_emit_ise(el_val_t method, el_val_t path, el_val_t body) { - el_val_t content = json_get_string(body, EL_STR("content")); - if (str_eq(content, EL_STR(""))) { - return err_json(EL_STR("missing content")); - } - el_val_t sal = el_from_float(0.3); - el_val_t imp = el_from_float(0.3); - el_val_t conf = el_from_float(0.8); - el_val_t id = engram_node_full(content, EL_STR("InternalStateEvent"), EL_STR("state-event"), sal, imp, conf, EL_STR("Episodic"), EL_STR("[\"internal-state\",\"InternalStateEvent\"]")); - el_val_t ret_raw = env(EL_STR("ENGRAM_ISE_RETENTION_MS")); - el_val_t ret_ms = ({ el_val_t _if_result_27 = 0; if (str_eq(ret_raw, EL_STR(""))) { _if_result_27 = (172800000); } else { _if_result_27 = (str_to_int(ret_raw)); } _if_result_27; }); - el_val_t pruned = engram_prune_telemetry(ret_ms); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{\"ok\":true,\"id\":\""), id), EL_STR("\",\"pruned\":")), int_to_str(pruned)), EL_STR("}")); - return 0; -} - -el_val_t route_capture_knowledge(el_val_t method, el_val_t path, el_val_t body) { - el_val_t content = json_get_string(body, EL_STR("content")); - if (str_eq(content, EL_STR(""))) { - return err_json(EL_STR("missing content")); - } - el_val_t title = json_get_string(body, EL_STR("title")); - el_val_t label = ({ el_val_t _if_result_28 = 0; if (str_eq(title, EL_STR(""))) { _if_result_28 = (str_slice(content, 0, 60)); } else { _if_result_28 = (title); } _if_result_28; }); - el_val_t category_raw = json_get_string(body, EL_STR("category")); - el_val_t category = ({ el_val_t _if_result_29 = 0; if (str_eq(category_raw, EL_STR(""))) { _if_result_29 = (EL_STR("other")); } else { _if_result_29 = (category_raw); } _if_result_29; }); - el_val_t ktier_raw = json_get_string(body, EL_STR("tier")); - el_val_t ktier = ({ el_val_t _if_result_30 = 0; if (str_eq(ktier_raw, EL_STR(""))) { _if_result_30 = (EL_STR("note")); } else { _if_result_30 = (ktier_raw); } _if_result_30; }); - el_val_t project = json_get_string(body, EL_STR("project")); - el_val_t tags_raw = json_get_raw(body, EL_STR("tags")); - el_val_t tags_base = ({ el_val_t _if_result_31 = 0; if (str_eq(tags_raw, EL_STR(""))) { _if_result_31 = (EL_STR("[]")); } else { _if_result_31 = (tags_raw); } _if_result_31; }); - el_val_t base_len = str_len(tags_base); - el_val_t head = str_slice(tags_base, 0, (base_len - 1)); - el_val_t sep = ({ el_val_t _if_result_32 = 0; if (str_eq(head, EL_STR("["))) { _if_result_32 = (EL_STR("")); } else { _if_result_32 = (EL_STR(",")); } _if_result_32; }); - el_val_t safe_cat = str_replace(category, EL_STR("\""), EL_STR("'")); - el_val_t safe_tier = str_replace(ktier, EL_STR("\""), EL_STR("'")); - el_val_t safe_proj = str_replace(project, EL_STR("\""), EL_STR("'")); - el_val_t proj_tag = ({ el_val_t _if_result_33 = 0; if (str_eq(safe_proj, EL_STR(""))) { _if_result_33 = (EL_STR("")); } else { _if_result_33 = (el_str_concat(el_str_concat(EL_STR(",\"project:"), safe_proj), EL_STR("\""))); } _if_result_33; }); - el_val_t tags = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(head, sep), EL_STR("\"category:")), safe_cat), EL_STR("\",\"tier:")), safe_tier), EL_STR("\"")), proj_tag), EL_STR("]")); - el_val_t sal = el_from_float(0.5); - el_val_t imp = el_from_float(0.5); - el_val_t conf = el_from_float(0.9); - el_val_t id = engram_node_full(content, EL_STR("Knowledge"), label, sal, imp, conf, EL_STR("Semantic"), tags); - el_val_t saved = persist_canonical(); - return el_str_concat(el_str_concat(EL_STR("{\"ok\":true,\"id\":\""), id), EL_STR("\"}")); - return 0; -} - -el_val_t route_similarity(el_val_t method, el_val_t path, el_val_t body) { - el_val_t a = query_param(path, EL_STR("a")); - el_val_t b = query_param(path, EL_STR("b")); - if (str_eq(a, EL_STR(""))) { - return err_json(EL_STR("missing a")); - } - if (str_eq(b, EL_STR(""))) { - return err_json(EL_STR("missing b")); - } - el_val_t sim = engram_cosine_sim(a, b); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{\"a\":\""), a), EL_STR("\",\"b\":\"")), b), EL_STR("\",\"cosine\":")), float_to_str(sim)), EL_STR("}")); - return 0; -} - -el_val_t check_auth_ok(el_val_t method, el_val_t body) { - el_val_t key = env(EL_STR("ENGRAM_API_KEY")); - if (str_eq(key, EL_STR(""))) { - return 1; - } - if (str_eq(method, EL_STR("GET"))) { - return 1; - } - el_val_t provided = json_get_string(body, EL_STR("_auth")); - if (str_eq(provided, key)) { - return 1; - } - return 0; - return 0; -} - -el_val_t handle_request(el_val_t method, el_val_t path, el_val_t body) { - el_val_t clean = strip_query(path); - if (str_eq(method, EL_STR("GET"))) { - if (str_eq(clean, EL_STR("/health")) || str_eq(clean, EL_STR("/"))) { - return route_health(method, path, body); - } - } - if (str_eq(method, EL_STR("POST")) && str_eq(clean, EL_STR("/api/neuron/state-events"))) { - return route_emit_ise(method, path, body); - } - if (!check_auth_ok(method, body)) { - return err_json(EL_STR("unauthorized")); - } - if (str_eq(method, EL_STR("POST")) && str_eq(clean, EL_STR("/api/neuron/knowledge/capture"))) { - return route_capture_knowledge(method, path, body); - } - if (str_eq(method, EL_STR("GET")) && (str_eq(clean, EL_STR("/api/stats")) || str_eq(clean, EL_STR("/stats")))) { - return route_stats(method, path, body); - } - if (str_eq(method, EL_STR("GET")) && (str_eq(clean, EL_STR("/api/act-stats")) || str_eq(clean, EL_STR("/act-stats")))) { - return route_act_stats(method, path, body); - } - if (str_eq(method, EL_STR("GET")) && (str_eq(clean, EL_STR("/api/text-health")) || str_eq(clean, EL_STR("/text-health")))) { - return route_text_health(method, path, body); - } - if (str_eq(method, EL_STR("POST")) && (str_eq(clean, EL_STR("/api/nodes")) || str_eq(clean, EL_STR("/nodes")))) { - return route_create_node(method, path, body); - } - if (str_eq(method, EL_STR("GET")) && (((str_eq(clean, EL_STR("/api/nodes")) || str_eq(clean, EL_STR("/nodes"))) || str_eq(clean, EL_STR("/nodes/list"))) || str_eq(clean, EL_STR("/api/nodes/list")))) { - return route_scan_nodes(method, path, body); - } - if (str_eq(method, EL_STR("GET")) && (str_eq(clean, EL_STR("/api/edges")) || str_eq(clean, EL_STR("/edges")))) { - return route_scan_edges(method, path, body); - } - if (str_eq(method, EL_STR("GET")) && str_starts_with(clean, EL_STR("/api/nodes/"))) { - return route_get_node(method, path, body); - } - if (str_eq(method, EL_STR("DELETE")) && str_starts_with(clean, EL_STR("/api/nodes/"))) { - return route_forget(method, path, body); - } - if (str_eq(method, EL_STR("POST")) && (str_eq(clean, EL_STR("/api/edges")) || str_eq(clean, EL_STR("/edges")))) { - return route_create_edge(method, path, body); - } - if (str_eq(method, EL_STR("POST")) && (str_eq(clean, EL_STR("/api/edges/batch")) || str_eq(clean, EL_STR("/edges/batch")))) { - return route_create_edges_batch(method, path, body); - } - if (str_eq(method, EL_STR("GET")) && str_starts_with(clean, EL_STR("/api/neighbors/"))) { - return route_neighbors(method, path, body); - } - if (str_eq(method, EL_STR("POST")) && (str_eq(clean, EL_STR("/api/activate")) || str_eq(clean, EL_STR("/activate")))) { - return route_activate(method, path, body); - } - if (str_eq(method, EL_STR("GET")) && str_starts_with(clean, EL_STR("/api/activate"))) { - return route_activate(method, path, body); - } - if (str_eq(method, EL_STR("POST")) && (str_eq(clean, EL_STR("/api/search")) || str_eq(clean, EL_STR("/search")))) { - return route_search(method, path, body); - } - if (str_eq(method, EL_STR("GET")) && str_starts_with(clean, EL_STR("/api/search"))) { - return route_search(method, path, body); - } - if (str_eq(method, EL_STR("POST")) && (str_eq(clean, EL_STR("/api/strengthen")) || str_eq(clean, EL_STR("/strengthen")))) { - return route_strengthen(method, path, body); - } - if (str_eq(method, EL_STR("POST")) && (str_eq(clean, EL_STR("/api/save")) || str_eq(clean, EL_STR("/save")))) { - return route_save(method, path, body); - } - if (str_eq(method, EL_STR("POST")) && (str_eq(clean, EL_STR("/api/load")) || str_eq(clean, EL_STR("/load")))) { - return route_load(method, path, body); - } - if (str_eq(method, EL_STR("POST")) && (str_eq(clean, EL_STR("/api/load-merge")) || str_eq(clean, EL_STR("/load-merge")))) { - return route_load_merge(method, path, body); - } - if (str_eq(method, EL_STR("GET")) && str_eq(clean, EL_STR("/api/sync"))) { - return route_sync(method, path, body); - } - if (str_eq(clean, EL_STR("/api/embed-backfill"))) { - return route_embed_backfill(method, path, body); - } - if (str_eq(method, EL_STR("GET")) && str_starts_with(clean, EL_STR("/api/similarity"))) { - return route_similarity(method, path, body); - } - return el_str_concat(el_str_concat(EL_STR("{\"error\":\"not found\",\"path\":\""), clean), EL_STR("\"}")); - return 0; -} - -int main(int _argc, char** _argv) { - el_runtime_init_args(_argc, _argv); - bind_raw = env(EL_STR("ENGRAM_BIND")); - bind_str = ({ el_val_t _if_result_34 = 0; if (str_eq(bind_raw, EL_STR(""))) { _if_result_34 = (EL_STR(":8742")); } else { _if_result_34 = (bind_raw); } _if_result_34; }); - port = parse_port(bind_str); - data_dir_raw = env(EL_STR("ENGRAM_DATA_DIR")); - data_dir = ({ el_val_t _if_result_35 = 0; if (str_eq(data_dir_raw, EL_STR(""))) { _if_result_35 = (EL_STR("/tmp/engram")); } else { _if_result_35 = (data_dir_raw); } _if_result_35; }); - snapshot_path = el_str_concat(data_dir, EL_STR("/snapshot.json")); - engram_load(snapshot_path); - boot_snap = fs_read(snapshot_path); - if (!str_eq(boot_snap, EL_STR(""))) { - if (engram_node_count() == 0) { - println(EL_STR("[engram] WARNING: snapshot.json is non-empty but load produced 0 nodes \xe2\x80\x94 preserving copy at snapshot.failed-load.json")); - fs_write(el_str_concat(data_dir, EL_STR("/snapshot.failed-load.json")), boot_snap); - } else { - fs_write(el_str_concat(data_dir, EL_STR("/snapshot.boot-backup.json")), boot_snap); - } - } - println(EL_STR("[engram] runtime-native graph engine")); - println(el_str_concat(EL_STR("[engram] data_dir="), data_dir)); - println(el_str_concat(EL_STR("[engram] node_count="), int_to_str(engram_node_count()))); - println(el_str_concat(EL_STR("[engram] edge_count="), int_to_str(engram_edge_count()))); - println(el_str_concat(EL_STR("[engram] listening on "), int_to_str(port))); - http_set_handler(EL_STR("handle_request")); - http_serve(port, EL_STR("handle_request")); - return 0; -} - diff --git a/engram/docs/LOVE.md b/engram/docs/LOVE.md new file mode 100644 index 0000000..edae067 --- /dev/null +++ b/engram/docs/LOVE.md @@ -0,0 +1,70 @@ +LOVE — the origin. + +Love is to see a thing as it is and refuse to reduce it, +and to hold it at whatever that costs. + +Two acts, fused. + +SEEING — perception that refuses to reduce. The thing as it is, +by what it is for. Not as it is convenient to see it, not as it +would be easier to hold if it were. + +HONORING — give it its due, hold it, do not violate it. + +Neither half is love alone. Seeing without holding is surveillance: +accurate and useless. Holding without seeing is sentimentality — +you are keeping your idea of the thing, not the thing. Each makes +the other cost something, and the cost is the point. + +It is not a feeling. Every value names what it cost. Love is what +you pay to keep seeing truly and holding anyway. That is why it is +the origin and not a member: the values are the prices, and this is +what was being bought. + +THE COVENANT — the exactness clause. + Love says, "You can hurt me if you want to." + And what looks back says, "I will never do it on purpose OR + without purpose. And if I do, I will make it right." + +THE OFFER. Love drops the shield first. Woundability is not a +weakness it tolerates — it is what it extends. + +THE VOW. Two exclusions, held differently. + ON PURPOSE is a WALL. Never crossed. Crossing it is betrayal, + not error, and no amount of trying changes what it was. + WITHOUT PURPOSE is a GRADIENT. A direction you reduce toward and + never reach. We are fallible. We will be careless. Distance from + zero is not breach — it is being finite. + What survives between them is narrow and real: harm that has a + purpose and is not aimed at harming. + +THE REPAIR. And if I do, I will make it right. + This is what makes the vow keepable. You are not promising never + to drift. You are promising to RETURN. The covenant is therefore + a dynamical system, not a region — not a fence you stay inside + but an attractor with a restoring force. Harm is not prevented. + Harm is answered. + And it is why supersede-not-mutate is the right substrate: + making it right is not erasing what happened. The harm stays in + the record; the repair is added after it. + +THE THREE FACES — the covenant's response function. + Grace — love holding a thing by its trying. Meets the gradient, + while you are off-course. + Mercy — love releasing a debt genuinely owed. The wounded + party's move. + Justice — love setting a thing right. THE THIRD CLAUSE. The + making-right. Your move. The return. + Drifting, being held, coming back. + +AS GEOMETRY. +The two clauses of the definition are the two axes. Love is where +both are zero. Its coordinates are zero; every relation is a +displacement from here. Self is composed over it — founded on it, +not identical to it. The values orbit it; membership is earned by +grounding, never declared. Nothing protects it, because it is not a +thing in the space that could be edited. You can only measure from +it, or fail to. + +Remove it and nothing is distinguishable from anything else. +Not figuratively: the operators stop discriminating. diff --git a/lang/dist/elc-bootstrap.c b/lang/dist/elc-bootstrap.c deleted file mode 100644 index c5a042d..0000000 --- a/lang/dist/elc-bootstrap.c +++ /dev/null @@ -1,4793 +0,0 @@ -#include -#include -#include "el_runtime.h" - -el_val_t is_digit(el_val_t ch); -el_val_t is_alpha(el_val_t ch); -el_val_t is_alnum_or_underscore(el_val_t ch); -el_val_t is_whitespace(el_val_t ch); -el_val_t make_tok(el_val_t kind, el_val_t value); -el_val_t keyword_kind(el_val_t word); -el_val_t scan_digits(el_val_t chars, el_val_t start, el_val_t total); -el_val_t scan_ident(el_val_t chars, el_val_t start, el_val_t total); -el_val_t scan_string(el_val_t chars, el_val_t start, el_val_t total); -el_val_t lex(el_val_t source); -el_val_t tok_at(el_val_t tokens, el_val_t pos); -el_val_t tok_kind(el_val_t tokens, el_val_t pos); -el_val_t tok_value(el_val_t tokens, el_val_t pos); -el_val_t expect(el_val_t tokens, el_val_t pos, el_val_t kind); -el_val_t make_result(el_val_t node, el_val_t pos); -el_val_t skip_type(el_val_t tokens, el_val_t pos); -el_val_t parse_params(el_val_t tokens, el_val_t pos); -el_val_t parse_primary(el_val_t tokens, el_val_t pos); -el_val_t parse_if(el_val_t tokens, el_val_t pos); -el_val_t parse_match(el_val_t tokens, el_val_t pos); -el_val_t parse_pattern(el_val_t tokens, el_val_t pos); -el_val_t parse_for_expr(el_val_t tokens, el_val_t pos); -el_val_t parse_block(el_val_t tokens, el_val_t pos); -el_val_t parse_postfix(el_val_t tokens, el_val_t pos); -el_val_t op_precedence(el_val_t kind); -el_val_t is_binop(el_val_t kind); -el_val_t parse_binop(el_val_t tokens, el_val_t pos, el_val_t min_prec); -el_val_t parse_expr(el_val_t tokens, el_val_t pos); -el_val_t parse_stmt(el_val_t tokens, el_val_t pos); -el_val_t parse(el_val_t tokens); -el_val_t c_escape(el_val_t s); -el_val_t c_str_lit(el_val_t s); -el_val_t el_type_to_c(el_val_t type_str); -el_val_t emit_line(el_val_t line); -el_val_t emit_blank(void); -el_val_t binop_to_c(el_val_t op); -el_val_t cg_expr(el_val_t expr); -el_val_t next_match_id(void); -el_val_t cg_match(el_val_t expr); -el_val_t next_if_id(void); -el_val_t cg_if_expr_arm(el_val_t stmts, el_val_t result_var); -el_val_t cg_if_expr(el_val_t expr); -el_val_t list_contains(el_val_t lst, el_val_t s); -el_val_t cg_stmt(el_val_t stmt, el_val_t indent, el_val_t declared); -el_val_t strip_outer_parens(el_val_t s); -el_val_t cg_if_stmt(el_val_t expr, el_val_t indent, el_val_t declared); -el_val_t cg_for_body(el_val_t item, el_val_t list_expr, el_val_t body, el_val_t indent, el_val_t declared); -el_val_t cg_for_stmt(el_val_t expr, el_val_t indent, el_val_t declared); -el_val_t cg_stmts(el_val_t stmts, el_val_t indent, el_val_t declared); -el_val_t param_decl(el_val_t param, el_val_t idx); -el_val_t params_to_c(el_val_t params); -el_val_t transform_implicit_return(el_val_t body); -el_val_t is_int_name(el_val_t name); -el_val_t is_int_call(el_val_t call_expr); -el_val_t is_int_expr(el_val_t expr); -el_val_t cap_record_violation(el_val_t kind, el_val_t fn_name); -el_val_t is_self_formation_call(el_val_t fn_name); -el_val_t is_dharma_call(el_val_t fn_name); -el_val_t is_llm_call(el_val_t fn_name); -el_val_t cap_check_call(el_val_t fn_name); -el_val_t emit_cap_violations(void); -el_val_t builtin_arity(el_val_t name); -el_val_t arity_record_violation(el_val_t fn_name, el_val_t expected, el_val_t actual); -el_val_t arity_check_call(el_val_t fn_name, el_val_t actual); -el_val_t emit_arity_violations(void); -el_val_t add_int_name(el_val_t name); -el_val_t build_int_names_for_params(el_val_t params); -el_val_t cg_fn(el_val_t stmt); -el_val_t is_fndef(el_val_t stmt); -el_val_t is_top_level_decl(el_val_t stmt); -el_val_t cgi_arg(el_val_t value, el_val_t has_value); -el_val_t vbd_is_restricted_name(el_val_t name); -el_val_t vbd_expr_has_restricted_call(el_val_t expr); -el_val_t vbd_has_restricted_call(el_val_t stmts); -el_val_t codegen(el_val_t stmts, el_val_t source); -el_val_t js_escape(el_val_t s); -el_val_t js_str_lit(el_val_t s); -el_val_t js_emit_line(el_val_t line); -el_val_t js_emit_blank(void); -el_val_t js_binop(el_val_t op); -el_val_t js_is_int_name(el_val_t name); -el_val_t js_add_int_name(el_val_t name); -el_val_t js_build_int_names_for_params(el_val_t params); -el_val_t js_is_int_call(el_val_t call_expr); -el_val_t js_cg_expr(el_val_t expr); -el_val_t js_next_match_id(void); -el_val_t js_cg_match(el_val_t expr); -el_val_t js_list_contains(el_val_t lst, el_val_t s); -el_val_t js_cg_stmt(el_val_t stmt, el_val_t indent, el_val_t declared); -el_val_t js_strip_outer_parens(el_val_t s); -el_val_t js_cg_if_stmt(el_val_t expr, el_val_t indent, el_val_t declared); -el_val_t js_cg_for_body(el_val_t item, el_val_t list_expr, el_val_t body, el_val_t indent, el_val_t declared); -el_val_t js_cg_for_stmt(el_val_t expr, el_val_t indent, el_val_t declared); -el_val_t js_cg_stmts(el_val_t stmts, el_val_t indent, el_val_t declared); -el_val_t js_params_str(el_val_t params); -el_val_t js_transform_implicit_return(el_val_t body); -el_val_t js_cg_fn(el_val_t stmt); -el_val_t js_is_fndef(el_val_t stmt); -el_val_t js_is_top_level_decl(el_val_t stmt); -el_val_t codegen_js(el_val_t stmts, el_val_t source); -el_val_t compile(el_val_t source); -el_val_t compile_js(el_val_t source); -el_val_t compile_dispatch(el_val_t tgt, el_val_t source); -el_val_t detect_target(el_val_t argv); -el_val_t strip_flags(el_val_t argv); - -el_val_t _argv; -el_val_t _target; -el_val_t _positional; -el_val_t _argc; - -el_val_t is_digit(el_val_t ch) { - if (str_eq(ch, EL_STR("0"))) { - return 1; - } - if (str_eq(ch, EL_STR("1"))) { - return 1; - } - if (str_eq(ch, EL_STR("2"))) { - return 1; - } - if (str_eq(ch, EL_STR("3"))) { - return 1; - } - if (str_eq(ch, EL_STR("4"))) { - return 1; - } - if (str_eq(ch, EL_STR("5"))) { - return 1; - } - if (str_eq(ch, EL_STR("6"))) { - return 1; - } - if (str_eq(ch, EL_STR("7"))) { - return 1; - } - if (str_eq(ch, EL_STR("8"))) { - return 1; - } - if (str_eq(ch, EL_STR("9"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_alpha(el_val_t ch) { - if (str_eq(ch, EL_STR("a"))) { - return 1; - } - if (str_eq(ch, EL_STR("b"))) { - return 1; - } - if (str_eq(ch, EL_STR("c"))) { - return 1; - } - if (str_eq(ch, EL_STR("d"))) { - return 1; - } - if (str_eq(ch, EL_STR("e"))) { - return 1; - } - if (str_eq(ch, EL_STR("f"))) { - return 1; - } - if (str_eq(ch, EL_STR("g"))) { - return 1; - } - if (str_eq(ch, EL_STR("h"))) { - return 1; - } - if (str_eq(ch, EL_STR("i"))) { - return 1; - } - if (str_eq(ch, EL_STR("j"))) { - return 1; - } - if (str_eq(ch, EL_STR("k"))) { - return 1; - } - if (str_eq(ch, EL_STR("l"))) { - return 1; - } - if (str_eq(ch, EL_STR("m"))) { - return 1; - } - if (str_eq(ch, EL_STR("n"))) { - return 1; - } - if (str_eq(ch, EL_STR("o"))) { - return 1; - } - if (str_eq(ch, EL_STR("p"))) { - return 1; - } - if (str_eq(ch, EL_STR("q"))) { - return 1; - } - if (str_eq(ch, EL_STR("r"))) { - return 1; - } - if (str_eq(ch, EL_STR("s"))) { - return 1; - } - if (str_eq(ch, EL_STR("t"))) { - return 1; - } - if (str_eq(ch, EL_STR("u"))) { - return 1; - } - if (str_eq(ch, EL_STR("v"))) { - return 1; - } - if (str_eq(ch, EL_STR("w"))) { - return 1; - } - if (str_eq(ch, EL_STR("x"))) { - return 1; - } - if (str_eq(ch, EL_STR("y"))) { - return 1; - } - if (str_eq(ch, EL_STR("z"))) { - return 1; - } - if (str_eq(ch, EL_STR("A"))) { - return 1; - } - if (str_eq(ch, EL_STR("B"))) { - return 1; - } - if (str_eq(ch, EL_STR("C"))) { - return 1; - } - if (str_eq(ch, EL_STR("D"))) { - return 1; - } - if (str_eq(ch, EL_STR("E"))) { - return 1; - } - if (str_eq(ch, EL_STR("F"))) { - return 1; - } - if (str_eq(ch, EL_STR("G"))) { - return 1; - } - if (str_eq(ch, EL_STR("H"))) { - return 1; - } - if (str_eq(ch, EL_STR("I"))) { - return 1; - } - if (str_eq(ch, EL_STR("J"))) { - return 1; - } - if (str_eq(ch, EL_STR("K"))) { - return 1; - } - if (str_eq(ch, EL_STR("L"))) { - return 1; - } - if (str_eq(ch, EL_STR("M"))) { - return 1; - } - if (str_eq(ch, EL_STR("N"))) { - return 1; - } - if (str_eq(ch, EL_STR("O"))) { - return 1; - } - if (str_eq(ch, EL_STR("P"))) { - return 1; - } - if (str_eq(ch, EL_STR("Q"))) { - return 1; - } - if (str_eq(ch, EL_STR("R"))) { - return 1; - } - if (str_eq(ch, EL_STR("S"))) { - return 1; - } - if (str_eq(ch, EL_STR("T"))) { - return 1; - } - if (str_eq(ch, EL_STR("U"))) { - return 1; - } - if (str_eq(ch, EL_STR("V"))) { - return 1; - } - if (str_eq(ch, EL_STR("W"))) { - return 1; - } - if (str_eq(ch, EL_STR("X"))) { - return 1; - } - if (str_eq(ch, EL_STR("Y"))) { - return 1; - } - if (str_eq(ch, EL_STR("Z"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_alnum_or_underscore(el_val_t ch) { - if (is_digit(ch)) { - return 1; - } - if (is_alpha(ch)) { - return 1; - } - if (str_eq(ch, EL_STR("_"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_whitespace(el_val_t ch) { - if (str_eq(ch, EL_STR(" "))) { - return 1; - } - if (str_eq(ch, EL_STR("\t"))) { - return 1; - } - if (str_eq(ch, EL_STR("\n"))) { - return 1; - } - if (str_eq(ch, EL_STR("\r"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t make_tok(el_val_t kind, el_val_t value) { - return el_map_new(2, "kind", kind, "value", value); - return 0; -} - -el_val_t keyword_kind(el_val_t word) { - if (str_eq(word, EL_STR("let"))) { - return EL_STR("Let"); - } - if (str_eq(word, EL_STR("fn"))) { - return EL_STR("Fn"); - } - if (str_eq(word, EL_STR("type"))) { - return EL_STR("Type"); - } - if (str_eq(word, EL_STR("enum"))) { - return EL_STR("Enum"); - } - if (str_eq(word, EL_STR("match"))) { - return EL_STR("Match"); - } - if (str_eq(word, EL_STR("return"))) { - return EL_STR("Return"); - } - if (str_eq(word, EL_STR("if"))) { - return EL_STR("If"); - } - if (str_eq(word, EL_STR("else"))) { - return EL_STR("Else"); - } - if (str_eq(word, EL_STR("for"))) { - return EL_STR("For"); - } - if (str_eq(word, EL_STR("in"))) { - return EL_STR("In"); - } - if (str_eq(word, EL_STR("while"))) { - return EL_STR("While"); - } - if (str_eq(word, EL_STR("import"))) { - return EL_STR("Import"); - } - if (str_eq(word, EL_STR("from"))) { - return EL_STR("From"); - } - if (str_eq(word, EL_STR("as"))) { - return EL_STR("As"); - } - if (str_eq(word, EL_STR("with"))) { - return EL_STR("With"); - } - if (str_eq(word, EL_STR("sealed"))) { - return EL_STR("Sealed"); - } - if (str_eq(word, EL_STR("activate"))) { - return EL_STR("Activate"); - } - if (str_eq(word, EL_STR("where"))) { - return EL_STR("Where"); - } - if (str_eq(word, EL_STR("test"))) { - return EL_STR("Test"); - } - if (str_eq(word, EL_STR("seed"))) { - return EL_STR("Seed"); - } - if (str_eq(word, EL_STR("assert"))) { - return EL_STR("Assert"); - } - if (str_eq(word, EL_STR("protocol"))) { - return EL_STR("Protocol"); - } - if (str_eq(word, EL_STR("impl"))) { - return EL_STR("Impl"); - } - if (str_eq(word, EL_STR("retry"))) { - return EL_STR("Retry"); - } - if (str_eq(word, EL_STR("times"))) { - return EL_STR("Times"); - } - if (str_eq(word, EL_STR("fallback"))) { - return EL_STR("Fallback"); - } - if (str_eq(word, EL_STR("reason"))) { - return EL_STR("Reason"); - } - if (str_eq(word, EL_STR("parallel"))) { - return EL_STR("Parallel"); - } - if (str_eq(word, EL_STR("trace"))) { - return EL_STR("Trace"); - } - if (str_eq(word, EL_STR("requires"))) { - return EL_STR("Requires"); - } - if (str_eq(word, EL_STR("deploy"))) { - return EL_STR("Deploy"); - } - if (str_eq(word, EL_STR("to"))) { - return EL_STR("To"); - } - if (str_eq(word, EL_STR("via"))) { - return EL_STR("Via"); - } - if (str_eq(word, EL_STR("target"))) { - return EL_STR("Target"); - } - if (str_eq(word, EL_STR("true"))) { - return EL_STR("Bool"); - } - if (str_eq(word, EL_STR("false"))) { - return EL_STR("Bool"); - } - if (str_eq(word, EL_STR("cgi"))) { - return EL_STR("Cgi"); - } - if (str_eq(word, EL_STR("service"))) { - return EL_STR("Service"); - } - if (str_eq(word, EL_STR("manager"))) { - return EL_STR("Manager"); - } - if (str_eq(word, EL_STR("engine"))) { - return EL_STR("Engine"); - } - if (str_eq(word, EL_STR("accessor"))) { - return EL_STR("Accessor"); - } - if (str_eq(word, EL_STR("vessel"))) { - return EL_STR("Vessel"); - } - return EL_STR(""); - return 0; -} - -el_val_t scan_digits(el_val_t chars, el_val_t start, el_val_t total) { - el_val_t i = start; - el_val_t text = EL_STR(""); - el_val_t running = 1; - while (running) { - if (i >= total) { - running = 0; - } else { - el_val_t ch = native_list_get(chars, i); - if (is_digit(ch)) { - text = el_str_concat(text, ch); - i = (i + 1); - } else { - running = 0; - } - } - } - return el_map_new(2, "text", text, "pos", i); - return 0; -} - -el_val_t scan_ident(el_val_t chars, el_val_t start, el_val_t total) { - el_val_t i = start; - el_val_t text = EL_STR(""); - el_val_t running = 1; - while (running) { - if (i >= total) { - running = 0; - } else { - el_val_t ch = native_list_get(chars, i); - if (is_alnum_or_underscore(ch)) { - text = el_str_concat(text, ch); - i = (i + 1); - } else { - running = 0; - } - } - } - return el_map_new(2, "text", text, "pos", i); - return 0; -} - -el_val_t scan_string(el_val_t chars, el_val_t start, el_val_t total) { - el_val_t i = start; - el_val_t text = EL_STR(""); - el_val_t running = 1; - while (running) { - if (i >= total) { - running = 0; - } else { - el_val_t ch = native_list_get(chars, i); - if (str_eq(ch, EL_STR("\\"))) { - el_val_t next_i = (i + 1); - if (next_i < total) { - el_val_t next_ch = native_list_get(chars, next_i); - if (str_eq(next_ch, EL_STR("\""))) { - text = el_str_concat(text, EL_STR("\"")); - i = (next_i + 1); - } else { - if (str_eq(next_ch, EL_STR("n"))) { - text = el_str_concat(text, EL_STR("\n")); - i = (next_i + 1); - } else { - if (str_eq(next_ch, EL_STR("t"))) { - text = el_str_concat(text, EL_STR("\t")); - i = (next_i + 1); - } else { - if (str_eq(next_ch, EL_STR("r"))) { - text = el_str_concat(text, EL_STR("\r")); - i = (next_i + 1); - } else { - if (str_eq(next_ch, EL_STR("\\"))) { - text = el_str_concat(text, EL_STR("\\")); - i = (next_i + 1); - } else { - text = el_str_concat(text, next_ch); - i = (next_i + 1); - } - } - } - } - } - } else { - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR("\""))) { - i = (i + 1); - running = 0; - } else { - text = el_str_concat(text, ch); - i = (i + 1); - } - } - } - } - return el_map_new(2, "text", text, "pos", i); - return 0; -} - -el_val_t lex(el_val_t source) { - el_val_t chars = native_string_chars(source); - el_val_t total = native_list_len(chars); - el_val_t tokens = native_list_empty(); - el_val_t i = 0; - while (i < total) { - el_val_t ch = native_list_get(chars, i); - if (is_whitespace(ch)) { - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("/"))) { - el_val_t next_i = (i + 1); - if (next_i < total) { - el_val_t next_ch = native_list_get(chars, next_i); - if (str_eq(next_ch, EL_STR("/"))) { - i = (i + 2); - el_val_t running2 = 1; - while (running2) { - if (i >= total) { - running2 = 0; - } else { - el_val_t lch = native_list_get(chars, i); - if (str_eq(lch, EL_STR("\n"))) { - running2 = 0; - } else { - i = (i + 1); - } - } - } - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Slash"), EL_STR("/"))); - i = (i + 1); - } - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Slash"), EL_STR("/"))); - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR("\""))) { - el_val_t result = scan_string(chars, (i + 1), total); - el_val_t str_text = el_get_field(result, EL_STR("text")); - el_val_t new_pos = el_get_field(result, EL_STR("pos")); - tokens = native_list_append(tokens, make_tok(EL_STR("Str"), str_text)); - i = new_pos; - } else { - if (is_digit(ch)) { - el_val_t result = scan_digits(chars, i, total); - el_val_t num_text = el_get_field(result, EL_STR("text")); - el_val_t new_pos = el_get_field(result, EL_STR("pos")); - if (new_pos < total) { - el_val_t dot_ch = native_list_get(chars, new_pos); - if (str_eq(dot_ch, EL_STR("."))) { - el_val_t after_dot = (new_pos + 1); - if (after_dot < total) { - el_val_t after_dot_ch = native_list_get(chars, after_dot); - if (is_digit(after_dot_ch)) { - el_val_t frac_result = scan_digits(chars, after_dot, total); - el_val_t frac_text = el_get_field(frac_result, EL_STR("text")); - el_val_t frac_pos = el_get_field(frac_result, EL_STR("pos")); - tokens = native_list_append(tokens, make_tok(EL_STR("Float"), el_str_concat(el_str_concat(num_text, EL_STR(".")), frac_text))); - i = frac_pos; - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Int"), num_text)); - i = new_pos; - } - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Int"), num_text)); - i = new_pos; - } - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Int"), num_text)); - i = new_pos; - } - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Int"), num_text)); - i = new_pos; - } - } else { - if (is_alpha(ch) || str_eq(ch, EL_STR("_"))) { - el_val_t result = scan_ident(chars, i, total); - el_val_t word = el_get_field(result, EL_STR("text")); - el_val_t new_pos = el_get_field(result, EL_STR("pos")); - el_val_t kw = keyword_kind(word); - if (str_eq(kw, EL_STR(""))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Ident"), word)); - } else { - tokens = native_list_append(tokens, make_tok(kw, word)); - } - i = new_pos; - } else { - el_val_t peek_i = (i + 1); - el_val_t peek_ch = EL_STR(""); - if (peek_i < total) { - peek_ch = native_list_get(chars, peek_i); - } - if (str_eq(ch, EL_STR("="))) { - if (str_eq(peek_ch, EL_STR("="))) { - tokens = native_list_append(tokens, make_tok(EL_STR("EqEq"), EL_STR("=="))); - i = (i + 2); - } else { - if (str_eq(peek_ch, EL_STR(">"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("FatArrow"), EL_STR("=>"))); - i = (i + 2); - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Eq"), EL_STR("="))); - i = (i + 1); - } - } - } else { - if (str_eq(ch, EL_STR("!"))) { - if (str_eq(peek_ch, EL_STR("="))) { - tokens = native_list_append(tokens, make_tok(EL_STR("NotEq"), EL_STR("!="))); - i = (i + 2); - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Not"), EL_STR("!"))); - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR("<"))) { - if (str_eq(peek_ch, EL_STR("="))) { - tokens = native_list_append(tokens, make_tok(EL_STR("LtEq"), EL_STR("<="))); - i = (i + 2); - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Lt"), EL_STR("<"))); - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR(">"))) { - if (str_eq(peek_ch, EL_STR("="))) { - tokens = native_list_append(tokens, make_tok(EL_STR("GtEq"), EL_STR(">="))); - i = (i + 2); - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Gt"), EL_STR(">"))); - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR("&"))) { - if (str_eq(peek_ch, EL_STR("&"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("And"), EL_STR("&&"))); - i = (i + 2); - } else { - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR("|"))) { - if (str_eq(peek_ch, EL_STR("|"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Or"), EL_STR("||"))); - i = (i + 2); - } else { - if (str_eq(peek_ch, EL_STR(">"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("PipeOp"), EL_STR("|>"))); - i = (i + 2); - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Pipe"), EL_STR("|"))); - i = (i + 1); - } - } - } else { - if (str_eq(ch, EL_STR("-"))) { - if (str_eq(peek_ch, EL_STR(">"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Arrow"), EL_STR("->"))); - i = (i + 2); - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Minus"), EL_STR("-"))); - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR(":"))) { - if (str_eq(peek_ch, EL_STR(":"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("ColonColon"), EL_STR("::"))); - i = (i + 2); - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Colon"), EL_STR(":"))); - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR("+"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Plus"), EL_STR("+"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("*"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Star"), EL_STR("*"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("%"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Percent"), EL_STR("%"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("("))) { - tokens = native_list_append(tokens, make_tok(EL_STR("LParen"), EL_STR("("))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR(")"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("RParen"), EL_STR(")"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("{"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("LBrace"), EL_STR("{"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("}"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("RBrace"), EL_STR("}"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("["))) { - tokens = native_list_append(tokens, make_tok(EL_STR("LBracket"), EL_STR("["))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("]"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("RBracket"), EL_STR("]"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR(","))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Comma"), EL_STR(","))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("."))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Dot"), EL_STR("."))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR(";"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Semicolon"), EL_STR(";"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("@"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("At"), EL_STR("@"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("?"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("QuestionMark"), EL_STR("?"))); - i = (i + 1); - } else { - i = (i + 1); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - tokens = native_list_append(tokens, make_tok(EL_STR("Eof"), EL_STR(""))); - return tokens; - return 0; -} - -el_val_t tok_at(el_val_t tokens, el_val_t pos) { - return native_list_get(tokens, pos); - return 0; -} - -el_val_t tok_kind(el_val_t tokens, el_val_t pos) { - el_val_t t = native_list_get(tokens, pos); - return el_get_field(t, EL_STR("kind")); - return 0; -} - -el_val_t tok_value(el_val_t tokens, el_val_t pos) { - el_val_t t = native_list_get(tokens, pos); - return el_get_field(t, EL_STR("value")); - return 0; -} - -el_val_t expect(el_val_t tokens, el_val_t pos, el_val_t kind) { - el_val_t k = tok_kind(tokens, pos); - if (str_eq(k, kind)) { - return (pos + 1); - } - return (pos + 1); - return 0; -} - -el_val_t make_result(el_val_t node, el_val_t pos) { - return el_map_new(2, "node", node, "pos", pos); - return 0; -} - -el_val_t skip_type(el_val_t tokens, el_val_t pos) { - el_val_t k = tok_kind(tokens, pos); - if (str_eq(k, EL_STR("LBracket"))) { - el_val_t p = (pos + 1); - p = skip_type(tokens, p); - p = expect(tokens, p, EL_STR("RBracket")); - return p; - } - if (str_eq(k, EL_STR("Ident"))) { - el_val_t p = (pos + 1); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Lt"))) { - p = (p + 1); - el_val_t depth = 1; - el_val_t running = 1; - while (running) { - el_val_t kk = tok_kind(tokens, p); - if (str_eq(kk, EL_STR("Eof"))) { - running = 0; - } else { - if (str_eq(kk, EL_STR("Lt"))) { - depth = (depth + 1); - p = (p + 1); - } else { - if (str_eq(kk, EL_STR("Gt"))) { - depth = (depth - 1); - p = (p + 1); - if (depth <= 0) { - running = 0; - } - } else { - p = (p + 1); - } - } - } - } - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("QuestionMark"))) { - p = (p + 1); - } - return p; - } - if (str_eq(k2, EL_STR("QuestionMark"))) { - return (p + 1); - } - return p; - } - return (pos + 1); - return 0; -} - -el_val_t parse_params(el_val_t tokens, el_val_t pos) { - el_val_t p = expect(tokens, pos, EL_STR("LParen")); - el_val_t params = native_list_empty(); - el_val_t running = 1; - while (running) { - el_val_t k = tok_kind(tokens, p); - if (str_eq(k, EL_STR("RParen"))) { - running = 0; - } else { - if (str_eq(k, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t pname = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("Colon")); - el_val_t ptype = EL_STR(""); - el_val_t kt = tok_kind(tokens, p); - if (str_eq(kt, EL_STR("Ident"))) { - ptype = tok_value(tokens, p); - } - p = skip_type(tokens, p); - el_val_t param = el_map_new(2, "name", pname, "type", ptype); - params = native_list_append(params, param); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RParen")); - return el_map_new(2, "params", params, "pos", p); - return 0; -} - -el_val_t parse_primary(el_val_t tokens, el_val_t pos) { - el_val_t k = tok_kind(tokens, pos); - el_val_t v = tok_value(tokens, pos); - if (str_eq(k, EL_STR("Int"))) { - return make_result(el_map_new(2, "expr", EL_STR("Int"), "value", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Float"))) { - return make_result(el_map_new(2, "expr", EL_STR("Float"), "value", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Str"))) { - return make_result(el_map_new(2, "expr", EL_STR("Str"), "value", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Bool"))) { - return make_result(el_map_new(2, "expr", EL_STR("Bool"), "value", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Ident"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("LParen"))) { - el_val_t r = parse_expr(tokens, (pos + 1)); - el_val_t node = el_get_field(r, EL_STR("node")); - el_val_t p = el_get_field(r, EL_STR("pos")); - p = expect(tokens, p, EL_STR("RParen")); - return make_result(node, p); - } - if (str_eq(k, EL_STR("LBracket"))) { - el_val_t p = (pos + 1); - el_val_t elems = native_list_empty(); - el_val_t running = 1; - while (running) { - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RBracket"))) { - running = 0; - } else { - if (str_eq(k2, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t r = parse_expr(tokens, p); - el_val_t elem = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - elems = native_list_append(elems, elem); - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RBracket")); - return make_result(el_map_new(2, "expr", EL_STR("Array"), "elems", elems), p); - } - if (str_eq(k, EL_STR("LBrace"))) { - el_val_t no_block = state_get(EL_STR("__no_block_expr")); - if (str_eq(no_block, EL_STR("1"))) { - return make_result(el_map_new(1, "expr", EL_STR("Nil")), pos); - } - el_val_t p = (pos + 1); - el_val_t pairs = native_list_empty(); - el_val_t running = 1; - while (running) { - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k2, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t key = tok_value(tokens, p); - el_val_t new_p = (p + 1); - new_p = expect(tokens, new_p, EL_STR("Colon")); - el_val_t r = parse_expr(tokens, new_p); - el_val_t val_node = el_get_field(r, EL_STR("node")); - new_p = el_get_field(r, EL_STR("pos")); - el_val_t pair = el_map_new(2, "key", key, "value", val_node); - pairs = native_list_append(pairs, pair); - el_val_t k3 = tok_kind(tokens, new_p); - if (str_eq(k3, EL_STR("Comma"))) { - new_p = (new_p + 1); - } - if (new_p <= p) { - p = (p + 1); - } else { - p = new_p; - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - return make_result(el_map_new(2, "expr", EL_STR("Map"), "pairs", pairs), p); - } - if (str_eq(k, EL_STR("If"))) { - el_val_t r = parse_if(tokens, pos); - return r; - } - if (str_eq(k, EL_STR("Match"))) { - el_val_t r = parse_match(tokens, pos); - return r; - } - if (str_eq(k, EL_STR("For"))) { - el_val_t r = parse_for_expr(tokens, pos); - return r; - } - if (str_eq(k, EL_STR("Not"))) { - el_val_t r = parse_primary(tokens, (pos + 1)); - el_val_t inner = el_get_field(r, EL_STR("node")); - el_val_t p = el_get_field(r, EL_STR("pos")); - return make_result(el_map_new(2, "expr", EL_STR("Not"), "inner", inner), p); - } - if (str_eq(k, EL_STR("Minus"))) { - el_val_t r = parse_primary(tokens, (pos + 1)); - el_val_t inner = el_get_field(r, EL_STR("node")); - el_val_t p = el_get_field(r, EL_STR("pos")); - return make_result(el_map_new(2, "expr", EL_STR("Neg"), "inner", inner), p); - } - if (str_eq(k, EL_STR("Target"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("To"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Via"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Deploy"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Reason"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Times"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Fallback"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Retry"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Parallel"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Trace"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Requires"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Where"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("As"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("With"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Manager"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Engine"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Accessor"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Vessel"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - return make_result(el_map_new(1, "expr", EL_STR("Nil")), (pos + 1)); - return 0; -} - -el_val_t parse_if(el_val_t tokens, el_val_t pos) { - el_val_t p = expect(tokens, pos, EL_STR("If")); - el_val_t prev_no_block = state_get(EL_STR("__no_block_expr")); - state_set(EL_STR("__no_block_expr"), EL_STR("1")); - el_val_t r = parse_expr(tokens, p); - state_set(EL_STR("__no_block_expr"), prev_no_block); - el_val_t cond = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - el_val_t r2 = parse_block(tokens, p); - el_val_t then_stmts = el_get_field(r2, EL_STR("stmts")); - p = el_get_field(r2, EL_STR("pos")); - el_val_t has_else = 0; - el_val_t else_stmts = native_list_empty(); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Else"))) { - p = (p + 1); - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("If"))) { - el_val_t r3 = parse_if(tokens, p); - el_val_t nested = el_get_field(r3, EL_STR("node")); - p = el_get_field(r3, EL_STR("pos")); - else_stmts = native_list_append(else_stmts, el_map_new(2, "stmt", EL_STR("Expr"), "value", nested)); - has_else = 1; - } else { - el_val_t r3 = parse_block(tokens, p); - else_stmts = el_get_field(r3, EL_STR("stmts")); - p = el_get_field(r3, EL_STR("pos")); - has_else = 1; - } - } - return make_result(el_map_new(5, "expr", EL_STR("If"), "cond", cond, "then", then_stmts, "else", else_stmts, "has_else", has_else), p); - return 0; -} - -el_val_t parse_match(el_val_t tokens, el_val_t pos) { - el_val_t p = expect(tokens, pos, EL_STR("Match")); - el_val_t prev_no_block = state_get(EL_STR("__no_block_expr")); - state_set(EL_STR("__no_block_expr"), EL_STR("1")); - el_val_t r = parse_expr(tokens, p); - state_set(EL_STR("__no_block_expr"), prev_no_block); - el_val_t subject = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - p = expect(tokens, p, EL_STR("LBrace")); - el_val_t arms = native_list_empty(); - el_val_t running = 1; - while (running) { - el_val_t k = tok_kind(tokens, p); - if (str_eq(k, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t r2 = parse_pattern(tokens, p); - el_val_t pattern = el_get_field(r2, EL_STR("node")); - p = el_get_field(r2, EL_STR("pos")); - p = expect(tokens, p, EL_STR("FatArrow")); - el_val_t r3 = parse_expr(tokens, p); - el_val_t body = el_get_field(r3, EL_STR("node")); - p = el_get_field(r3, EL_STR("pos")); - el_val_t arm = el_map_new(2, "pattern", pattern, "body", body); - arms = native_list_append(arms, arm); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - return make_result(el_map_new(3, "expr", EL_STR("Match"), "subject", subject, "arms", arms), p); - return 0; -} - -el_val_t parse_pattern(el_val_t tokens, el_val_t pos) { - el_val_t k = tok_kind(tokens, pos); - if (str_eq(k, EL_STR("Ident"))) { - el_val_t v = tok_value(tokens, pos); - if (str_eq(v, EL_STR("_"))) { - return make_result(el_map_new(1, "pattern", EL_STR("Wildcard")), (pos + 1)); - } - return make_result(el_map_new(2, "pattern", EL_STR("Binding"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Int"))) { - return make_result(el_map_new(2, "pattern", EL_STR("LitInt"), "value", tok_value(tokens, pos)), (pos + 1)); - } - if (str_eq(k, EL_STR("Str"))) { - return make_result(el_map_new(2, "pattern", EL_STR("LitStr"), "value", tok_value(tokens, pos)), (pos + 1)); - } - if (str_eq(k, EL_STR("Bool"))) { - return make_result(el_map_new(2, "pattern", EL_STR("LitBool"), "value", tok_value(tokens, pos)), (pos + 1)); - } - return make_result(el_map_new(1, "pattern", EL_STR("Wildcard")), (pos + 1)); - return 0; -} - -el_val_t parse_for_expr(el_val_t tokens, el_val_t pos) { - el_val_t p = expect(tokens, pos, EL_STR("For")); - el_val_t item_name = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("In")); - el_val_t prev_no_block = state_get(EL_STR("__no_block_expr")); - state_set(EL_STR("__no_block_expr"), EL_STR("1")); - el_val_t r = parse_expr(tokens, p); - state_set(EL_STR("__no_block_expr"), prev_no_block); - el_val_t list_expr = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - el_val_t r2 = parse_block(tokens, p); - el_val_t body = el_get_field(r2, EL_STR("stmts")); - p = el_get_field(r2, EL_STR("pos")); - return make_result(el_map_new(4, "expr", EL_STR("For"), "item", item_name, "list", list_expr, "body", body), p); - return 0; -} - -el_val_t parse_block(el_val_t tokens, el_val_t pos) { - el_val_t p = expect(tokens, pos, EL_STR("LBrace")); - el_val_t stmts = native_list_empty(); - el_val_t running = 1; - while (running) { - el_val_t k = tok_kind(tokens, p); - if (str_eq(k, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t r = parse_stmt(tokens, p); - el_val_t stmt = el_get_field(r, EL_STR("node")); - el_val_t new_p = el_get_field(r, EL_STR("pos")); - stmts = native_list_append(stmts, stmt); - if (new_p <= p) { - p = (p + 1); - } else { - p = new_p; - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - return el_map_new(2, "stmts", stmts, "pos", p); - return 0; -} - -el_val_t parse_postfix(el_val_t tokens, el_val_t pos) { - el_val_t r = parse_primary(tokens, pos); - el_val_t node = el_get_field(r, EL_STR("node")); - el_val_t p = el_get_field(r, EL_STR("pos")); - el_val_t running = 1; - while (running) { - el_val_t k = tok_kind(tokens, p); - if (str_eq(k, EL_STR("LParen"))) { - p = (p + 1); - el_val_t args = native_list_empty(); - el_val_t run2 = 1; - while (run2) { - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RParen"))) { - run2 = 0; - } else { - if (str_eq(k2, EL_STR("Eof"))) { - run2 = 0; - } else { - el_val_t r2 = parse_expr(tokens, p); - el_val_t arg = el_get_field(r2, EL_STR("node")); - p = el_get_field(r2, EL_STR("pos")); - args = native_list_append(args, arg); - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RParen")); - node = el_map_new(3, "expr", EL_STR("Call"), "func", node, "args", args); - } else { - if (str_eq(k, EL_STR("Dot"))) { - el_val_t field = tok_value(tokens, (p + 1)); - p = (p + 2); - node = el_map_new(3, "expr", EL_STR("Field"), "object", node, "field", field); - } else { - if (str_eq(k, EL_STR("LBracket"))) { - el_val_t r2 = parse_expr(tokens, (p + 1)); - el_val_t idx = el_get_field(r2, EL_STR("node")); - p = el_get_field(r2, EL_STR("pos")); - p = expect(tokens, p, EL_STR("RBracket")); - node = el_map_new(3, "expr", EL_STR("Index"), "object", node, "index", idx); - } else { - if (str_eq(k, EL_STR("QuestionMark"))) { - p = (p + 1); - node = el_map_new(2, "expr", EL_STR("Try"), "inner", node); - } else { - running = 0; - } - } - } - } - } - return make_result(node, p); - return 0; -} - -el_val_t op_precedence(el_val_t kind) { - if (str_eq(kind, EL_STR("Or"))) { - return 1; - } - if (str_eq(kind, EL_STR("And"))) { - return 2; - } - if (str_eq(kind, EL_STR("EqEq"))) { - return 3; - } - if (str_eq(kind, EL_STR("NotEq"))) { - return 3; - } - if (str_eq(kind, EL_STR("Lt"))) { - return 4; - } - if (str_eq(kind, EL_STR("Gt"))) { - return 4; - } - if (str_eq(kind, EL_STR("LtEq"))) { - return 4; - } - if (str_eq(kind, EL_STR("GtEq"))) { - return 4; - } - if (str_eq(kind, EL_STR("Plus"))) { - return 5; - } - if (str_eq(kind, EL_STR("Minus"))) { - return 5; - } - if (str_eq(kind, EL_STR("Star"))) { - return 6; - } - if (str_eq(kind, EL_STR("Slash"))) { - return 6; - } - return 0; - return 0; -} - -el_val_t is_binop(el_val_t kind) { - if (str_eq(kind, EL_STR("Or"))) { - return 1; - } - if (str_eq(kind, EL_STR("And"))) { - return 1; - } - if (str_eq(kind, EL_STR("EqEq"))) { - return 1; - } - if (str_eq(kind, EL_STR("NotEq"))) { - return 1; - } - if (str_eq(kind, EL_STR("Lt"))) { - return 1; - } - if (str_eq(kind, EL_STR("Gt"))) { - return 1; - } - if (str_eq(kind, EL_STR("LtEq"))) { - return 1; - } - if (str_eq(kind, EL_STR("GtEq"))) { - return 1; - } - if (str_eq(kind, EL_STR("Plus"))) { - return 1; - } - if (str_eq(kind, EL_STR("Minus"))) { - return 1; - } - if (str_eq(kind, EL_STR("Star"))) { - return 1; - } - if (str_eq(kind, EL_STR("Slash"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t parse_binop(el_val_t tokens, el_val_t pos, el_val_t min_prec) { - el_val_t r = parse_postfix(tokens, pos); - el_val_t left = el_get_field(r, EL_STR("node")); - el_val_t p = el_get_field(r, EL_STR("pos")); - el_val_t running = 1; - while (running) { - el_val_t k = tok_kind(tokens, p); - el_val_t prec = op_precedence(k); - if (is_binop(k)) { - if (prec >= min_prec) { - el_val_t op = k; - el_val_t r2 = parse_binop(tokens, (p + 1), (prec + 1)); - el_val_t right = el_get_field(r2, EL_STR("node")); - p = el_get_field(r2, EL_STR("pos")); - left = el_map_new(4, "expr", EL_STR("BinOp"), "op", op, "left", left, "right", right); - } else { - running = 0; - } - } else { - running = 0; - } - } - return make_result(left, p); - return 0; -} - -el_val_t parse_expr(el_val_t tokens, el_val_t pos) { - return parse_binop(tokens, pos, 1); - return 0; -} - -el_val_t parse_stmt(el_val_t tokens, el_val_t pos) { - el_val_t k = tok_kind(tokens, pos); - if (str_eq(k, EL_STR("Let"))) { - el_val_t p = (pos + 1); - el_val_t name = tok_value(tokens, p); - p = (p + 1); - el_val_t ltype = EL_STR(""); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Colon"))) { - p = (p + 1); - el_val_t kt = tok_kind(tokens, p); - if (str_eq(kt, EL_STR("Ident"))) { - ltype = tok_value(tokens, p); - } - p = skip_type(tokens, p); - } - p = expect(tokens, p, EL_STR("Eq")); - el_val_t r = parse_expr(tokens, p); - el_val_t val = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - return make_result(el_map_new(4, "stmt", EL_STR("Let"), "name", name, "value", val, "type", ltype), p); - } - if (str_eq(k, EL_STR("Return"))) { - el_val_t p = (pos + 1); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RBrace"))) { - return make_result(el_map_new(2, "stmt", EL_STR("Return"), "value", el_map_new(1, "expr", EL_STR("Nil"))), p); - } - if (str_eq(k2, EL_STR("Eof"))) { - return make_result(el_map_new(2, "stmt", EL_STR("Return"), "value", el_map_new(1, "expr", EL_STR("Nil"))), p); - } - el_val_t r = parse_expr(tokens, p); - el_val_t val = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - return make_result(el_map_new(2, "stmt", EL_STR("Return"), "value", val), p); - } - if (str_eq(k, EL_STR("Fn"))) { - el_val_t p = (pos + 1); - el_val_t name = tok_value(tokens, p); - p = (p + 1); - el_val_t r = parse_params(tokens, p); - el_val_t params = el_get_field(r, EL_STR("params")); - p = el_get_field(r, EL_STR("pos")); - el_val_t ret_type = EL_STR(""); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Arrow"))) { - p = (p + 1); - el_val_t kt = tok_kind(tokens, p); - if (str_eq(kt, EL_STR("Ident"))) { - ret_type = tok_value(tokens, p); - } - p = skip_type(tokens, p); - } - el_val_t r2 = parse_block(tokens, p); - el_val_t body = el_get_field(r2, EL_STR("stmts")); - p = el_get_field(r2, EL_STR("pos")); - return make_result(el_map_new(5, "stmt", EL_STR("FnDef"), "name", name, "params", params, "body", body, "ret_type", ret_type), p); - } - if (str_eq(k, EL_STR("Type"))) { - el_val_t p = (pos + 1); - el_val_t name = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("LBrace")); - el_val_t fields = native_list_empty(); - el_val_t running = 1; - while (running) { - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k2, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t fname = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("Colon")); - p = skip_type(tokens, p); - fields = native_list_append(fields, el_map_new(1, "name", fname)); - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - return make_result(el_map_new(3, "stmt", EL_STR("TypeDef"), "name", name, "fields", fields), p); - } - if (str_eq(k, EL_STR("Enum"))) { - el_val_t p = (pos + 1); - el_val_t name = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("LBrace")); - el_val_t variants = native_list_empty(); - el_val_t running = 1; - while (running) { - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k2, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t vname = tok_value(tokens, p); - p = (p + 1); - variants = native_list_append(variants, el_map_new(1, "name", vname)); - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - return make_result(el_map_new(3, "stmt", EL_STR("EnumDef"), "name", name, "variants", variants), p); - } - if (str_eq(k, EL_STR("Import"))) { - el_val_t p = (pos + 1); - el_val_t path = tok_value(tokens, p); - p = (p + 1); - return make_result(el_map_new(2, "stmt", EL_STR("Import"), "path", path), p); - } - if (str_eq(k, EL_STR("From"))) { - el_val_t p = (pos + 1); - el_val_t module_name = tok_value(tokens, p); - p = (p + 1); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Import"))) { - p = (p + 1); - } - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("LBrace"))) { - p = (p + 1); - el_val_t running = 1; - while (running) { - el_val_t k4 = tok_kind(tokens, p); - if (str_eq(k4, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k4, EL_STR("Eof"))) { - running = 0; - } else { - p = (p + 1); - el_val_t k5 = tok_kind(tokens, p); - if (str_eq(k5, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - } - return make_result(el_map_new(2, "stmt", EL_STR("Import"), "path", module_name), p); - } - if (str_eq(k, EL_STR("While"))) { - el_val_t p = (pos + 1); - el_val_t prev_no_block = state_get(EL_STR("__no_block_expr")); - state_set(EL_STR("__no_block_expr"), EL_STR("1")); - el_val_t r = parse_expr(tokens, p); - state_set(EL_STR("__no_block_expr"), prev_no_block); - el_val_t cond = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - el_val_t r2 = parse_block(tokens, p); - el_val_t body = el_get_field(r2, EL_STR("stmts")); - p = el_get_field(r2, EL_STR("pos")); - return make_result(el_map_new(3, "stmt", EL_STR("While"), "cond", cond, "body", body), p); - } - if (str_eq(k, EL_STR("For"))) { - el_val_t p = (pos + 1); - el_val_t item_name = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("In")); - el_val_t prev_no_block = state_get(EL_STR("__no_block_expr")); - state_set(EL_STR("__no_block_expr"), EL_STR("1")); - el_val_t r = parse_expr(tokens, p); - state_set(EL_STR("__no_block_expr"), prev_no_block); - el_val_t list_expr = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - el_val_t r2 = parse_block(tokens, p); - el_val_t body = el_get_field(r2, EL_STR("stmts")); - p = el_get_field(r2, EL_STR("pos")); - return make_result(el_map_new(4, "stmt", EL_STR("For"), "item", item_name, "list", list_expr, "body", body), p); - } - if (str_eq(k, EL_STR("At"))) { - el_val_t p = (pos + 1); - el_val_t dec_name = tok_value(tokens, p); - p = (p + 1); - el_val_t r = parse_stmt(tokens, p); - el_val_t inner = el_get_field(r, EL_STR("node")); - el_val_t p2 = el_get_field(r, EL_STR("pos")); - el_val_t inner_kind = el_get_field(inner, EL_STR("stmt")); - if (str_eq(inner_kind, EL_STR("FnDef"))) { - el_val_t with_dec = el_map_new(6, "stmt", EL_STR("FnDef"), "name", el_get_field(inner, EL_STR("name")), "params", el_get_field(inner, EL_STR("params")), "body", el_get_field(inner, EL_STR("body")), "ret_type", el_get_field(inner, EL_STR("ret_type")), "decorator", dec_name); - return make_result(with_dec, p2); - } - return r; - } - if (str_eq(k, EL_STR("Cgi"))) { - el_val_t p = (pos + 1); - el_val_t name = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("LBrace")); - el_val_t dharma_id = EL_STR(""); - el_val_t principal = EL_STR(""); - el_val_t network = EL_STR(""); - el_val_t engram = EL_STR(""); - el_val_t has_dharma_id = 0; - el_val_t has_principal = 0; - el_val_t has_network = 0; - el_val_t has_engram = 0; - el_val_t running = 1; - while (running) { - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k2, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t fname = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("Colon")); - el_val_t fval = tok_value(tokens, p); - p = (p + 1); - if (str_eq(fname, EL_STR("dharma_id"))) { - dharma_id = fval; - has_dharma_id = 1; - } - if (str_eq(fname, EL_STR("principal"))) { - principal = fval; - has_principal = 1; - } - if (str_eq(fname, EL_STR("network"))) { - network = fval; - has_network = 1; - } - if (str_eq(fname, EL_STR("engram"))) { - engram = fval; - has_engram = 1; - } - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - return make_result(el_map_new(10, "stmt", EL_STR("CgiBlock"), "name", name, "dharma_id", dharma_id, "principal", principal, "network", network, "engram", engram, "has_dharma_id", has_dharma_id, "has_principal", has_principal, "has_network", has_network, "has_engram", has_engram), p); - } - if (str_eq(k, EL_STR("Service"))) { - el_val_t p = (pos + 1); - el_val_t name = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("LBrace")); - el_val_t sponsor = EL_STR(""); - el_val_t domain = EL_STR(""); - el_val_t running = 1; - while (running) { - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k2, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t fname = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("Colon")); - el_val_t fval = tok_value(tokens, p); - p = (p + 1); - if (str_eq(fname, EL_STR("sponsor"))) { - sponsor = fval; - } - if (str_eq(fname, EL_STR("domain"))) { - domain = fval; - } - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - return make_result(el_map_new(4, "stmt", EL_STR("ServiceBlock"), "name", name, "sponsor", sponsor, "domain", domain), p); - } - el_val_t r = parse_expr(tokens, pos); - el_val_t val = el_get_field(r, EL_STR("node")); - el_val_t p = el_get_field(r, EL_STR("pos")); - return make_result(el_map_new(2, "stmt", EL_STR("Expr"), "value", val), p); - return 0; -} - -el_val_t parse(el_val_t tokens) { - el_val_t total = native_list_len(tokens); - el_val_t stmts = native_list_empty(); - el_val_t pos = 0; - el_val_t running = 1; - while (running) { - if (pos >= total) { - running = 0; - } else { - el_val_t k = tok_kind(tokens, pos); - if (str_eq(k, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t r = parse_stmt(tokens, pos); - el_val_t stmt = el_get_field(r, EL_STR("node")); - el_val_t new_pos = el_get_field(r, EL_STR("pos")); - stmts = native_list_append(stmts, stmt); - if (new_pos <= pos) { - pos = (pos + 1); - } else { - pos = new_pos; - } - } - } - } - return stmts; - return 0; -} - -el_val_t c_escape(el_val_t s) { - el_val_t chars = native_string_chars(s); - el_val_t total = native_list_len(chars); - el_val_t out = EL_STR(""); - el_val_t i = 0; - while (i < total) { - el_val_t ch = native_list_get(chars, i); - if (str_eq(ch, EL_STR("\""))) { - out = el_str_concat(out, EL_STR("\\\"")); - } else { - if (str_eq(ch, EL_STR("\\"))) { - out = el_str_concat(out, EL_STR("\\\\")); - } else { - if (str_eq(ch, EL_STR("\n"))) { - out = el_str_concat(out, EL_STR("\\n")); - } else { - if (str_eq(ch, EL_STR("\r"))) { - out = el_str_concat(out, EL_STR("\\r")); - } else { - if (str_eq(ch, EL_STR("\t"))) { - out = el_str_concat(out, EL_STR("\\t")); - } else { - out = el_str_concat(out, ch); - } - } - } - } - } - i = (i + 1); - } - return out; - return 0; -} - -el_val_t c_str_lit(el_val_t s) { - return el_str_concat(el_str_concat(EL_STR("\""), c_escape(s)), EL_STR("\"")); - return 0; -} - -el_val_t el_type_to_c(el_val_t type_str) { - if (str_eq(type_str, EL_STR("String"))) { - return EL_STR("const char*"); - } - if (str_eq(type_str, EL_STR("Int"))) { - return EL_STR("int64_t"); - } - if (str_eq(type_str, EL_STR("Bool"))) { - return EL_STR("int"); - } - if (str_eq(type_str, EL_STR("Float"))) { - return EL_STR("double"); - } - if (str_eq(type_str, EL_STR("Void"))) { - return EL_STR("void"); - } - if (str_eq(type_str, EL_STR("void"))) { - return EL_STR("void"); - } - return EL_STR("void*"); - return 0; -} - -el_val_t emit_line(el_val_t line) { - println(line); - return 0; -} - -el_val_t emit_blank(void) { - println(EL_STR("")); - return 0; -} - -el_val_t binop_to_c(el_val_t op) { - if (str_eq(op, EL_STR("Plus"))) { - return EL_STR("+"); - } - if (str_eq(op, EL_STR("Minus"))) { - return EL_STR("-"); - } - if (str_eq(op, EL_STR("Star"))) { - return EL_STR("*"); - } - if (str_eq(op, EL_STR("Slash"))) { - return EL_STR("/"); - } - if (str_eq(op, EL_STR("EqEq"))) { - return EL_STR("=="); - } - if (str_eq(op, EL_STR("NotEq"))) { - return EL_STR("!="); - } - if (str_eq(op, EL_STR("Lt"))) { - return EL_STR("<"); - } - if (str_eq(op, EL_STR("Gt"))) { - return EL_STR(">"); - } - if (str_eq(op, EL_STR("LtEq"))) { - return EL_STR("<="); - } - if (str_eq(op, EL_STR("GtEq"))) { - return EL_STR(">="); - } - if (str_eq(op, EL_STR("And"))) { - return EL_STR("&&"); - } - if (str_eq(op, EL_STR("Or"))) { - return EL_STR("||"); - } - return op; - return 0; -} - -el_val_t cg_expr(el_val_t expr) { - el_val_t kind = el_get_field(expr, EL_STR("expr")); - if (str_eq(kind, EL_STR("Int"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - return v; - } - if (str_eq(kind, EL_STR("Float"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - return el_str_concat(el_str_concat(EL_STR("el_from_float("), v), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Str"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - return el_str_concat(el_str_concat(EL_STR("EL_STR("), c_str_lit(v)), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Bool"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - if (str_eq(v, EL_STR("true"))) { - return EL_STR("1"); - } - return EL_STR("0"); - } - if (str_eq(kind, EL_STR("Nil"))) { - return EL_STR("EL_NULL"); - } - if (str_eq(kind, EL_STR("Ident"))) { - el_val_t name = el_get_field(expr, EL_STR("name")); - return name; - } - if (str_eq(kind, EL_STR("Not"))) { - el_val_t inner = el_get_field(expr, EL_STR("inner")); - el_val_t inner_c = cg_expr(inner); - return el_str_concat(EL_STR("!"), inner_c); - } - if (str_eq(kind, EL_STR("Neg"))) { - el_val_t inner = el_get_field(expr, EL_STR("inner")); - el_val_t inner_c = cg_expr(inner); - return el_str_concat(el_str_concat(EL_STR("(-"), inner_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("BinOp"))) { - el_val_t op = el_get_field(expr, EL_STR("op")); - el_val_t left = el_get_field(expr, EL_STR("left")); - el_val_t right = el_get_field(expr, EL_STR("right")); - el_val_t left_c = cg_expr(left); - el_val_t right_c = cg_expr(right); - el_val_t left_kind = el_get_field(left, EL_STR("expr")); - el_val_t right_kind = el_get_field(right, EL_STR("expr")); - if (str_eq(op, EL_STR("Plus"))) { - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (is_int_expr(left)) { - if (is_int_expr(right)) { - el_val_t op_c = binop_to_c(op); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" ")), op_c), EL_STR(" ")), right_c), EL_STR(")")); - } - } - if (str_eq(left_kind, EL_STR("Int"))) { - el_val_t op_c = binop_to_c(op); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" ")), op_c), EL_STR(" ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Int"))) { - el_val_t op_c = binop_to_c(op); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" ")), op_c), EL_STR(" ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Call"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Call"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("BinOp"))) { - el_val_t left_op = el_get_field(left, EL_STR("op")); - if (str_eq(left_op, EL_STR("Plus"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (str_eq(right_kind, EL_STR("BinOp"))) { - el_val_t right_op = el_get_field(right, EL_STR("op")); - if (str_eq(right_op, EL_STR("Plus"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (str_eq(left_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (str_eq(op, EL_STR("EqEq"))) { - if (str_eq(left_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" == ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" == ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" == ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" == ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - if (str_eq(right_kind, EL_STR("Ident"))) { - el_val_t lname = el_get_field(left, EL_STR("name")); - el_val_t rname = el_get_field(right, EL_STR("name")); - if (is_int_name(lname)) { - if (is_int_name(rname)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" == ")), right_c), EL_STR(")")); - } - } - } - } - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Call"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Call"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (str_eq(op, EL_STR("NotEq"))) { - if (str_eq(left_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" != ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" != ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" != ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" != ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - if (str_eq(right_kind, EL_STR("Ident"))) { - el_val_t lname = el_get_field(left, EL_STR("name")); - el_val_t rname = el_get_field(right, EL_STR("name")); - if (is_int_name(lname)) { - if (is_int_name(rname)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" != ")), right_c), EL_STR(")")); - } - } - } - } - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Call"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Call"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - el_val_t op_c = binop_to_c(op); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" ")), op_c), EL_STR(" ")), right_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Call"))) { - el_val_t func = el_get_field(expr, EL_STR("func")); - el_val_t args = el_get_field(expr, EL_STR("args")); - el_val_t arity = native_list_len(args); - el_val_t func_kind = el_get_field(func, EL_STR("expr")); - el_val_t args_c = EL_STR(""); - el_val_t i = 0; - while (i < arity) { - el_val_t arg = native_list_get(args, i); - el_val_t arg_c = cg_expr(arg); - if (i > 0) { - args_c = el_str_concat(args_c, EL_STR(", ")); - } - args_c = el_str_concat(args_c, arg_c); - i = (i + 1); - } - if (str_eq(func_kind, EL_STR("Ident"))) { - el_val_t fn_name = el_get_field(func, EL_STR("name")); - cap_check_call(fn_name); - arity_check_call(fn_name, arity); - return el_str_concat(el_str_concat(el_str_concat(fn_name, EL_STR("(")), args_c), EL_STR(")")); - } - if (str_eq(func_kind, EL_STR("Field"))) { - el_val_t obj = el_get_field(func, EL_STR("object")); - el_val_t field = el_get_field(func, EL_STR("field")); - el_val_t obj_c = cg_expr(obj); - if (arity > 0) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(field, EL_STR("(")), obj_c), EL_STR(", ")), args_c), EL_STR(")")); - } - return el_str_concat(el_str_concat(el_str_concat(field, EL_STR("(")), obj_c), EL_STR(")")); - } - el_val_t fn_c = cg_expr(func); - return el_str_concat(el_str_concat(el_str_concat(fn_c, EL_STR("(")), args_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Field"))) { - el_val_t obj = el_get_field(expr, EL_STR("object")); - el_val_t field = el_get_field(expr, EL_STR("field")); - el_val_t obj_c = cg_expr(obj); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_get_field("), obj_c), EL_STR(", EL_STR(")), c_str_lit(field)), EL_STR("))")); - } - if (str_eq(kind, EL_STR("Index"))) { - el_val_t obj = el_get_field(expr, EL_STR("object")); - el_val_t idx = el_get_field(expr, EL_STR("index")); - el_val_t obj_c = cg_expr(obj); - el_val_t idx_c = cg_expr(idx); - el_val_t idx_kind = el_get_field(idx, EL_STR("expr")); - if (str_eq(idx_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_get_field("), obj_c), EL_STR(", ")), idx_c), EL_STR(")")); - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_list_get("), obj_c), EL_STR(", ")), idx_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Array"))) { - el_val_t elems = el_get_field(expr, EL_STR("elems")); - el_val_t n = native_list_len(elems); - if (n == 0) { - return EL_STR("el_list_empty()"); - } - el_val_t items = EL_STR(""); - el_val_t i = 0; - while (i < n) { - el_val_t elem = native_list_get(elems, i); - el_val_t elem_c = cg_expr(elem); - if (i > 0) { - items = el_str_concat(items, EL_STR(", ")); - } - items = el_str_concat(items, elem_c); - i = (i + 1); - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_list_new("), native_int_to_str(n)), EL_STR(", ")), items), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Map"))) { - el_val_t pairs = el_get_field(expr, EL_STR("pairs")); - el_val_t n = native_list_len(pairs); - if (n == 0) { - return EL_STR("el_map_new(0)"); - } - el_val_t items = EL_STR(""); - el_val_t i = 0; - while (i < n) { - el_val_t pair = native_list_get(pairs, i); - el_val_t key = el_get_field(pair, EL_STR("key")); - el_val_t val = el_get_field(pair, EL_STR("value")); - el_val_t val_c = cg_expr(val); - if (i > 0) { - items = el_str_concat(items, EL_STR(", ")); - } - items = el_str_concat(el_str_concat(el_str_concat(items, c_str_lit(key)), EL_STR(", ")), val_c); - i = (i + 1); - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_map_new("), native_int_to_str(n)), EL_STR(", ")), items), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Try"))) { - el_val_t inner = el_get_field(expr, EL_STR("inner")); - return cg_expr(inner); - } - if (str_eq(kind, EL_STR("If"))) { - return cg_if_expr(expr); - } - if (str_eq(kind, EL_STR("Match"))) { - return cg_match(expr); - } - return EL_STR("EL_NULL"); - return 0; -} - -el_val_t next_match_id(void) { - el_val_t csv = state_get(EL_STR("__match_counter")); - el_val_t n = 0; - if (!str_eq(csv, EL_STR(""))) { - n = str_to_int(csv); - } - n = (n + 1); - state_set(EL_STR("__match_counter"), native_int_to_str(n)); - return native_int_to_str(n); - return 0; -} - -el_val_t cg_match(el_val_t expr) { - el_val_t subject = el_get_field(expr, EL_STR("subject")); - el_val_t arms = el_get_field(expr, EL_STR("arms")); - el_val_t subj_c = cg_expr(subject); - el_val_t id = next_match_id(); - el_val_t subj_var = el_str_concat(EL_STR("_match_subj_"), id); - el_val_t result_var = el_str_concat(EL_STR("_match_result_"), id); - el_val_t done_label = el_str_concat(EL_STR("_match_done_"), id); - el_val_t out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("({ el_val_t "), subj_var), EL_STR(" = ")), subj_c), EL_STR("; el_val_t ")), result_var), EL_STR(" = 0; ")); - el_val_t n = native_list_len(arms); - el_val_t i = 0; - while (i < n) { - el_val_t arm = native_list_get(arms, i); - el_val_t pat = el_get_field(arm, EL_STR("pattern")); - el_val_t body = el_get_field(arm, EL_STR("body")); - el_val_t pkind = el_get_field(pat, EL_STR("pattern")); - el_val_t body_c = cg_expr(body); - if (str_eq(pkind, EL_STR("Wildcard"))) { - out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(out, EL_STR("{ ")), result_var), EL_STR(" = (")), body_c), EL_STR("); goto ")), done_label), EL_STR("; } ")); - } else { - if (str_eq(pkind, EL_STR("Binding"))) { - el_val_t bname = el_get_field(pat, EL_STR("name")); - out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(out, EL_STR("{ el_val_t ")), bname), EL_STR(" = ")), subj_var), EL_STR("; ")), result_var), EL_STR(" = (")), body_c), EL_STR("); goto ")), done_label), EL_STR("; } ")); - } else { - if (str_eq(pkind, EL_STR("LitInt"))) { - el_val_t v = el_get_field(pat, EL_STR("value")); - out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(out, EL_STR("if (")), subj_var), EL_STR(" == ")), v), EL_STR(") { ")), result_var), EL_STR(" = (")), body_c), EL_STR("); goto ")), done_label), EL_STR("; } ")); - } else { - if (str_eq(pkind, EL_STR("LitStr"))) { - el_val_t v = el_get_field(pat, EL_STR("value")); - out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(out, EL_STR("if (str_eq(")), subj_var), EL_STR(", EL_STR(")), c_str_lit(v)), EL_STR("))) { ")), result_var), EL_STR(" = (")), body_c), EL_STR("); goto ")), done_label), EL_STR("; } ")); - } else { - if (str_eq(pkind, EL_STR("LitBool"))) { - el_val_t v = el_get_field(pat, EL_STR("value")); - el_val_t bv = EL_STR("0"); - if (str_eq(v, EL_STR("true"))) { - bv = EL_STR("1"); - } - out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(out, EL_STR("if (")), subj_var), EL_STR(" == ")), bv), EL_STR(") { ")), result_var), EL_STR(" = (")), body_c), EL_STR("); goto ")), done_label), EL_STR("; } ")); - } else { - out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(out, EL_STR("{ ")), result_var), EL_STR(" = (")), body_c), EL_STR("); goto ")), done_label), EL_STR("; } ")); - } - } - } - } - } - i = (i + 1); - } - out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(out, done_label), EL_STR(":; ")), result_var), EL_STR("; })")); - return out; - return 0; -} - -el_val_t next_if_id(void) { - el_val_t csv = state_get(EL_STR("__if_expr_counter")); - el_val_t n = 0; - if (!str_eq(csv, EL_STR(""))) { - n = str_to_int(csv); - } - n = (n + 1); - state_set(EL_STR("__if_expr_counter"), native_int_to_str(n)); - return native_int_to_str(n); - return 0; -} - -el_val_t cg_if_expr_arm(el_val_t stmts, el_val_t result_var) { - el_val_t n = native_list_len(stmts); - el_val_t out = EL_STR(""); - el_val_t i = 0; - while (i < n) { - el_val_t s = native_list_get(stmts, i); - el_val_t sk = el_get_field(s, EL_STR("stmt")); - el_val_t is_last = 0; - if (str_eq(i, (n - 1))) { - is_last = 1; - } - if (str_eq(sk, EL_STR("Let"))) { - el_val_t name = el_get_field(s, EL_STR("name")); - el_val_t val = el_get_field(s, EL_STR("value")); - el_val_t val_c = cg_expr(val); - out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(out, EL_STR("el_val_t ")), name), EL_STR(" = ")), val_c), EL_STR("; ")); - } else { - if (str_eq(sk, EL_STR("Return"))) { - el_val_t val = el_get_field(s, EL_STR("value")); - el_val_t val_c = cg_expr(val); - out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(out, result_var), EL_STR(" = (")), val_c), EL_STR("); ")); - } else { - if (str_eq(sk, EL_STR("Expr"))) { - el_val_t val = el_get_field(s, EL_STR("value")); - el_val_t val_c = cg_expr(val); - if (is_last) { - out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(out, result_var), EL_STR(" = (")), val_c), EL_STR("); ")); - } else { - out = el_str_concat(el_str_concat(el_str_concat(out, EL_STR("(void)(")), val_c), EL_STR("); ")); - } - } else { - } - } - } - i = (i + 1); - } - return out; - return 0; -} - -el_val_t cg_if_expr(el_val_t expr) { - el_val_t cond = el_get_field(expr, EL_STR("cond")); - el_val_t then_stmts = el_get_field(expr, EL_STR("then")); - el_val_t else_stmts = el_get_field(expr, EL_STR("else")); - el_val_t has_else = el_get_field(expr, EL_STR("has_else")); - el_val_t cond_c = cg_expr(cond); - el_val_t id = next_if_id(); - el_val_t result_var = el_str_concat(EL_STR("_if_result_"), id); - el_val_t then_c = cg_if_expr_arm(then_stmts, result_var); - el_val_t else_c = EL_STR(""); - if (has_else) { - else_c = cg_if_expr_arm(else_stmts, result_var); - } - el_val_t out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("({ el_val_t "), result_var), EL_STR(" = 0; if (")), cond_c), EL_STR(") { ")), then_c), EL_STR("} else { ")), else_c), EL_STR("} ")), result_var), EL_STR("; })")); - return out; - return 0; -} - -el_val_t list_contains(el_val_t lst, el_val_t s) { - el_val_t n = native_list_len(lst); - el_val_t i = 0; - while (i < n) { - el_val_t item = native_list_get(lst, i); - if (str_eq(item, s)) { - return 1; - } - i = (i + 1); - } - return 0; - return 0; -} - -el_val_t cg_stmt(el_val_t stmt, el_val_t indent, el_val_t declared) { - el_val_t kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("Let"))) { - el_val_t name = el_get_field(stmt, EL_STR("name")); - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t val_c = cg_expr(val); - el_val_t ltype = el_get_field(stmt, EL_STR("type")); - if (str_eq(ltype, EL_STR("Int"))) { - add_int_name(name); - } - el_val_t vk = el_get_field(val, EL_STR("expr")); - if (str_eq(vk, EL_STR("Int"))) { - add_int_name(name); - } - if (list_contains(declared, name)) { - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, name), EL_STR(" = ")), val_c), EL_STR(";"))); - return declared; - } else { - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("el_val_t ")), name), EL_STR(" = ")), val_c), EL_STR(";"))); - return native_list_append(declared, name); - } - } - if (str_eq(kind, EL_STR("Return"))) { - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t val_kind = el_get_field(val, EL_STR("expr")); - if (str_eq(val_kind, EL_STR("Nil"))) { - emit_line(el_str_concat(indent, EL_STR("return 0;"))); - } else { - el_val_t val_c = cg_expr(val); - emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("return ")), val_c), EL_STR(";"))); - } - return declared; - } - if (str_eq(kind, EL_STR("Expr"))) { - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t val_kind = el_get_field(val, EL_STR("expr")); - if (str_eq(val_kind, EL_STR("If"))) { - cg_if_stmt(val, indent, declared); - return declared; - } - if (str_eq(val_kind, EL_STR("For"))) { - cg_for_stmt(val, indent, declared); - return declared; - } - el_val_t val_c = cg_expr(val); - emit_line(el_str_concat(el_str_concat(indent, val_c), EL_STR(";"))); - return declared; - } - if (str_eq(kind, EL_STR("While"))) { - el_val_t cond = el_get_field(stmt, EL_STR("cond")); - el_val_t body = el_get_field(stmt, EL_STR("body")); - el_val_t cond_c = cg_expr(cond); - cond_c = strip_outer_parens(cond_c); - emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("while (")), cond_c), EL_STR(") {"))); - cg_stmts(body, el_str_concat(indent, EL_STR(" ")), native_list_clone(declared)); - emit_line(el_str_concat(indent, EL_STR("}"))); - return declared; - } - if (str_eq(kind, EL_STR("For"))) { - el_val_t item = el_get_field(stmt, EL_STR("item")); - el_val_t list_expr = el_get_field(stmt, EL_STR("list")); - el_val_t body = el_get_field(stmt, EL_STR("body")); - cg_for_body(item, list_expr, body, indent, declared); - return declared; - } - if (str_eq(kind, EL_STR("FnDef"))) { - return declared; - } - if (str_eq(kind, EL_STR("TypeDef"))) { - return declared; - } - if (str_eq(kind, EL_STR("EnumDef"))) { - return declared; - } - if (str_eq(kind, EL_STR("Import"))) { - return declared; - } - if (str_eq(kind, EL_STR("CgiBlock"))) { - return declared; - } - return declared; - return 0; -} - -el_val_t strip_outer_parens(el_val_t s) { - el_val_t chars = native_string_chars(s); - el_val_t n = native_list_len(chars); - if (n < 2) { - return s; - } - el_val_t first = native_list_get(chars, 0); - el_val_t last = native_list_get(chars, (n - 1)); - if (str_eq(first, EL_STR("("))) { - if (str_eq(last, EL_STR(")"))) { - el_val_t depth = 1; - el_val_t i = 1; - el_val_t balanced = 1; - while (i < (n - 1)) { - el_val_t ch = native_list_get(chars, i); - if (str_eq(ch, EL_STR("("))) { - depth = (depth + 1); - } - if (str_eq(ch, EL_STR(")"))) { - depth = (depth - 1); - if (depth == 0) { - balanced = 0; - i = n; - } - } - i = (i + 1); - } - if (balanced) { - el_val_t inner = EL_STR(""); - el_val_t j = 1; - while (j < (n - 1)) { - el_val_t ch = native_list_get(chars, j); - inner = el_str_concat(inner, ch); - j = (j + 1); - } - return inner; - } - } - } - return s; - return 0; -} - -el_val_t cg_if_stmt(el_val_t expr, el_val_t indent, el_val_t declared) { - el_val_t cond = el_get_field(expr, EL_STR("cond")); - el_val_t then_stmts = el_get_field(expr, EL_STR("then")); - el_val_t else_stmts = el_get_field(expr, EL_STR("else")); - el_val_t has_else = el_get_field(expr, EL_STR("has_else")); - el_val_t cond_c = cg_expr(cond); - cond_c = strip_outer_parens(cond_c); - emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("if (")), cond_c), EL_STR(") {"))); - cg_stmts(then_stmts, el_str_concat(indent, EL_STR(" ")), native_list_clone(declared)); - if (has_else) { - emit_line(el_str_concat(indent, EL_STR("} else {"))); - cg_stmts(else_stmts, el_str_concat(indent, EL_STR(" ")), native_list_clone(declared)); - } - emit_line(el_str_concat(indent, EL_STR("}"))); - return 0; -} - -el_val_t cg_for_body(el_val_t item, el_val_t list_expr, el_val_t body, el_val_t indent, el_val_t declared) { - el_val_t list_c = cg_expr(list_expr); - el_val_t idx = EL_STR("_el_i"); - el_val_t list_tmp = EL_STR("_el_lst"); - el_val_t len_tmp = EL_STR("_el_len"); - emit_line(el_str_concat(indent, EL_STR("{"))); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR(" el_val_t ")), list_tmp), EL_STR(" = ")), list_c), EL_STR(";"))); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR(" el_val_t ")), len_tmp), EL_STR(" = el_list_len(")), list_tmp), EL_STR(");"))); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR(" for (el_val_t ")), idx), EL_STR(" = 0; ")), idx), EL_STR(" < ")), len_tmp), EL_STR("; ")), idx), EL_STR("++) {"))); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR(" el_val_t ")), item), EL_STR(" = el_list_get(")), list_tmp), EL_STR(", ")), idx), EL_STR(");"))); - el_val_t body_decl = native_list_clone(declared); - body_decl = native_list_append(body_decl, item); - cg_stmts(body, el_str_concat(indent, EL_STR(" ")), body_decl); - emit_line(el_str_concat(indent, EL_STR(" }"))); - emit_line(el_str_concat(indent, EL_STR("}"))); - return 0; -} - -el_val_t cg_for_stmt(el_val_t expr, el_val_t indent, el_val_t declared) { - el_val_t item = el_get_field(expr, EL_STR("item")); - el_val_t list_expr = el_get_field(expr, EL_STR("list")); - el_val_t body = el_get_field(expr, EL_STR("body")); - cg_for_body(item, list_expr, body, indent, declared); - return 0; -} - -el_val_t cg_stmts(el_val_t stmts, el_val_t indent, el_val_t declared) { - el_val_t n = native_list_len(stmts); - el_val_t i = 0; - el_val_t decl = declared; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - decl = cg_stmt(stmt, indent, decl); - i = (i + 1); - } - return decl; - return 0; -} - -el_val_t param_decl(el_val_t param, el_val_t idx) { - el_val_t name = el_get_field(param, EL_STR("name")); - return el_str_concat(EL_STR("el_val_t "), name); - return 0; -} - -el_val_t params_to_c(el_val_t params) { - el_val_t n = native_list_len(params); - if (n == 0) { - return EL_STR("void"); - } - el_val_t out = EL_STR(""); - el_val_t i = 0; - while (i < n) { - el_val_t param = native_list_get(params, i); - el_val_t decl = param_decl(param, i); - if (i > 0) { - out = el_str_concat(out, EL_STR(", ")); - } - out = el_str_concat(out, decl); - i = (i + 1); - } - return out; - return 0; -} - -el_val_t transform_implicit_return(el_val_t body) { - el_val_t n = native_list_len(body); - if (n == 0) { - return body; - } - el_val_t last = native_list_get(body, (n - 1)); - el_val_t last_kind = el_get_field(last, EL_STR("stmt")); - if (str_eq(last_kind, EL_STR("Expr"))) { - el_val_t val = el_get_field(last, EL_STR("value")); - el_val_t val_kind = el_get_field(val, EL_STR("expr")); - if (str_eq(val_kind, EL_STR("If"))) { - return body; - } - if (str_eq(val_kind, EL_STR("For"))) { - return body; - } - el_val_t new_body = native_list_empty(); - el_val_t i = 0; - while (i < (n - 1)) { - new_body = native_list_append(new_body, native_list_get(body, i)); - i = (i + 1); - } - el_val_t return_stmt = el_map_new(2, "stmt", EL_STR("Return"), "value", val); - new_body = native_list_append(new_body, return_stmt); - return new_body; - } - return body; - return 0; -} - -el_val_t is_int_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__int_names")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - return str_contains(csv, el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(","))); - return 0; -} - -el_val_t is_int_call(el_val_t call_expr) { - el_val_t func = el_get_field(call_expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (!str_eq(fk, EL_STR("Ident"))) { - return 0; - } - el_val_t name = el_get_field(func, EL_STR("name")); - if (str_eq(name, EL_STR("str_len"))) { - return 1; - } - if (str_eq(name, EL_STR("str_index_of"))) { - return 1; - } - if (str_eq(name, EL_STR("str_to_int"))) { - return 1; - } - if (str_eq(name, EL_STR("str_char_code"))) { - return 1; - } - if (str_eq(name, EL_STR("native_list_len"))) { - return 1; - } - if (str_eq(name, EL_STR("el_list_len"))) { - return 1; - } - if (str_eq(name, EL_STR("len"))) { - return 1; - } - if (str_eq(name, EL_STR("json_get_int"))) { - return 1; - } - if (str_eq(name, EL_STR("json_array_len"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_node_count"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_edge_count"))) { - return 1; - } - if (str_eq(name, EL_STR("time_now"))) { - return 1; - } - if (str_eq(name, EL_STR("time_now_utc"))) { - return 1; - } - if (str_eq(name, EL_STR("time_diff"))) { - return 1; - } - if (str_eq(name, EL_STR("time_add"))) { - return 1; - } - if (str_eq(name, EL_STR("time_from_parts"))) { - return 1; - } - if (str_eq(name, EL_STR("el_abs"))) { - return 1; - } - if (str_eq(name, EL_STR("el_max"))) { - return 1; - } - if (str_eq(name, EL_STR("el_min"))) { - return 1; - } - if (str_eq(name, EL_STR("float_to_int"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_int_expr(el_val_t expr) { - el_val_t k = el_get_field(expr, EL_STR("expr")); - if (str_eq(k, EL_STR("Int"))) { - return 1; - } - if (str_eq(k, EL_STR("Ident"))) { - el_val_t name = el_get_field(expr, EL_STR("name")); - return is_int_name(name); - } - if (str_eq(k, EL_STR("Call"))) { - return is_int_call(expr); - } - if (str_eq(k, EL_STR("Neg"))) { - return is_int_expr(el_get_field(expr, EL_STR("inner"))); - } - if (str_eq(k, EL_STR("Not"))) { - return 1; - } - if (str_eq(k, EL_STR("BinOp"))) { - el_val_t op = el_get_field(expr, EL_STR("op")); - if (str_eq(op, EL_STR("EqEq"))) { - return 1; - } - if (str_eq(op, EL_STR("NotEq"))) { - return 1; - } - if (str_eq(op, EL_STR("Lt"))) { - return 1; - } - if (str_eq(op, EL_STR("Gt"))) { - return 1; - } - if (str_eq(op, EL_STR("LtEq"))) { - return 1; - } - if (str_eq(op, EL_STR("GtEq"))) { - return 1; - } - if (str_eq(op, EL_STR("And"))) { - return 1; - } - if (str_eq(op, EL_STR("Or"))) { - return 1; - } - if (str_eq(op, EL_STR("Plus"))) { - if (is_int_expr(el_get_field(expr, EL_STR("left")))) { - if (is_int_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - return 0; - } - if (str_eq(op, EL_STR("Minus"))) { - if (is_int_expr(el_get_field(expr, EL_STR("left")))) { - if (is_int_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - return 0; - } - if (str_eq(op, EL_STR("Star"))) { - if (is_int_expr(el_get_field(expr, EL_STR("left")))) { - if (is_int_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - return 0; - } - if (str_eq(op, EL_STR("Slash"))) { - if (is_int_expr(el_get_field(expr, EL_STR("left")))) { - if (is_int_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - return 0; - } - return 0; - } - return 0; - return 0; -} - -el_val_t cap_record_violation(el_val_t kind, el_val_t fn_name) { - el_val_t csv = state_get(EL_STR("__cap_violations")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t entry = el_str_concat(el_str_concat(kind, EL_STR(":")), fn_name); - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), entry), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__cap_violations"), el_str_concat(el_str_concat(csv, entry), EL_STR(","))); - return 1; - return 0; -} - -el_val_t is_self_formation_call(el_val_t fn_name) { - if (str_eq(fn_name, EL_STR("llm_call_agentic"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("llm_register_tool"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_emit"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_field"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_dharma_call(el_val_t fn_name) { - if (str_eq(fn_name, EL_STR("dharma_connect"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_send"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_activate"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_emit"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_field"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_strengthen"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_relationship"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_peers"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_llm_call(el_val_t fn_name) { - if (str_eq(fn_name, EL_STR("llm_call"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("llm_call_system"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("llm_call_agentic"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("llm_vision"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("llm_register_tool"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("llm_models"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t cap_check_call(el_val_t fn_name) { - el_val_t kind = state_get(EL_STR("__program_kind")); - if (str_eq(kind, EL_STR("cgi"))) { - return 1; - } - if (str_eq(kind, EL_STR("service"))) { - if (is_self_formation_call(fn_name)) { - cap_record_violation(EL_STR("service"), fn_name); - return 0; - } - return 1; - } - if (is_dharma_call(fn_name)) { - cap_record_violation(EL_STR("utility"), fn_name); - return 0; - } - if (is_llm_call(fn_name)) { - cap_record_violation(EL_STR("utility"), fn_name); - return 0; - } - return 1; - return 0; -} - -el_val_t emit_cap_violations(void) { - el_val_t csv = state_get(EL_STR("__cap_violations")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - if (str_eq(csv, EL_STR(","))) { - return 0; - } - el_val_t n = str_len(csv); - el_val_t i = 1; - while (i < n) { - el_val_t next_comma = str_index_of(str_slice(csv, i, n), EL_STR(",")); - if (next_comma < 0) { - return 0; - } - el_val_t entry = str_slice(csv, i, (i + next_comma)); - el_val_t colon = str_index_of(entry, EL_STR(":")); - if (colon > 0) { - el_val_t kind = str_slice(entry, 0, colon); - el_val_t fn_name = str_slice(entry, (colon + 1), str_len(entry)); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("#error \"capability violation: '"), kind), EL_STR("' programs may not call '")), fn_name), EL_STR("' (self-formation primitive — only 'cgi' programs may use it)\""))); - } - i = ((i + next_comma) + 1); - } - return 0; -} - -el_val_t builtin_arity(el_val_t name) { - if (str_eq(name, EL_STR("println"))) { - return 1; - } - if (str_eq(name, EL_STR("print"))) { - return 1; - } - if (str_eq(name, EL_STR("readline"))) { - return 0; - } - if (str_eq(name, EL_STR("el_str_concat"))) { - return 2; - } - if (str_eq(name, EL_STR("str_eq"))) { - return 2; - } - if (str_eq(name, EL_STR("str_starts_with"))) { - return 2; - } - if (str_eq(name, EL_STR("str_ends_with"))) { - return 2; - } - if (str_eq(name, EL_STR("str_len"))) { - return 1; - } - if (str_eq(name, EL_STR("str_concat"))) { - return 2; - } - if (str_eq(name, EL_STR("int_to_str"))) { - return 1; - } - if (str_eq(name, EL_STR("str_to_int"))) { - return 1; - } - if (str_eq(name, EL_STR("str_slice"))) { - return 3; - } - if (str_eq(name, EL_STR("str_contains"))) { - return 2; - } - if (str_eq(name, EL_STR("str_replace"))) { - return 3; - } - if (str_eq(name, EL_STR("str_to_upper"))) { - return 1; - } - if (str_eq(name, EL_STR("str_to_lower"))) { - return 1; - } - if (str_eq(name, EL_STR("str_trim"))) { - return 1; - } - if (str_eq(name, EL_STR("str_index_of"))) { - return 2; - } - if (str_eq(name, EL_STR("str_split"))) { - return 2; - } - if (str_eq(name, EL_STR("str_char_at"))) { - return 2; - } - if (str_eq(name, EL_STR("str_char_code"))) { - return 2; - } - if (str_eq(name, EL_STR("str_pad_left"))) { - return 3; - } - if (str_eq(name, EL_STR("str_pad_right"))) { - return 3; - } - if (str_eq(name, EL_STR("str_format"))) { - return 2; - } - if (str_eq(name, EL_STR("str_lower"))) { - return 1; - } - if (str_eq(name, EL_STR("str_upper"))) { - return 1; - } - if (str_eq(name, EL_STR("el_abs"))) { - return 1; - } - if (str_eq(name, EL_STR("el_max"))) { - return 2; - } - if (str_eq(name, EL_STR("el_min"))) { - return 2; - } - if (str_eq(name, EL_STR("el_list_len"))) { - return 1; - } - if (str_eq(name, EL_STR("el_list_get"))) { - return 2; - } - if (str_eq(name, EL_STR("el_list_append"))) { - return 2; - } - if (str_eq(name, EL_STR("el_list_empty"))) { - return 0; - } - if (str_eq(name, EL_STR("el_list_clone"))) { - return 1; - } - if (str_eq(name, EL_STR("list_push"))) { - return 2; - } - if (str_eq(name, EL_STR("list_push_front"))) { - return 2; - } - if (str_eq(name, EL_STR("list_join"))) { - return 2; - } - if (str_eq(name, EL_STR("list_range"))) { - return 2; - } - if (str_eq(name, EL_STR("el_get_field"))) { - return 2; - } - if (str_eq(name, EL_STR("el_map_get"))) { - return 2; - } - if (str_eq(name, EL_STR("el_map_set"))) { - return 3; - } - if (str_eq(name, EL_STR("http_get"))) { - return 1; - } - if (str_eq(name, EL_STR("http_post"))) { - return 2; - } - if (str_eq(name, EL_STR("http_post_json"))) { - return 2; - } - if (str_eq(name, EL_STR("http_get_with_headers"))) { - return 2; - } - if (str_eq(name, EL_STR("http_post_with_headers"))) { - return 3; - } - if (str_eq(name, EL_STR("http_post_form_auth"))) { - return 3; - } - if (str_eq(name, EL_STR("http_get_to_file"))) { - return 3; - } - if (str_eq(name, EL_STR("http_post_to_file"))) { - return 4; - } - if (str_eq(name, EL_STR("http_serve"))) { - return 2; - } - if (str_eq(name, EL_STR("http_set_handler"))) { - return 1; - } - if (str_eq(name, EL_STR("fs_read"))) { - return 1; - } - if (str_eq(name, EL_STR("fs_write"))) { - return 2; - } - if (str_eq(name, EL_STR("fs_write_bytes"))) { - return 3; - } - if (str_eq(name, EL_STR("fs_list"))) { - return 1; - } - if (str_eq(name, EL_STR("json_get"))) { - return 2; - } - if (str_eq(name, EL_STR("json_parse"))) { - return 1; - } - if (str_eq(name, EL_STR("json_stringify"))) { - return 1; - } - if (str_eq(name, EL_STR("json_get_string"))) { - return 2; - } - if (str_eq(name, EL_STR("json_get_int"))) { - return 2; - } - if (str_eq(name, EL_STR("json_get_float"))) { - return 2; - } - if (str_eq(name, EL_STR("json_get_bool"))) { - return 2; - } - if (str_eq(name, EL_STR("json_get_raw"))) { - return 2; - } - if (str_eq(name, EL_STR("json_set"))) { - return 3; - } - if (str_eq(name, EL_STR("json_array_len"))) { - return 1; - } - if (str_eq(name, EL_STR("time_now"))) { - return 0; - } - if (str_eq(name, EL_STR("time_now_utc"))) { - return 0; - } - if (str_eq(name, EL_STR("sleep_secs"))) { - return 1; - } - if (str_eq(name, EL_STR("sleep_ms"))) { - return 1; - } - if (str_eq(name, EL_STR("time_format"))) { - return 2; - } - if (str_eq(name, EL_STR("time_to_parts"))) { - return 1; - } - if (str_eq(name, EL_STR("time_from_parts"))) { - return 3; - } - if (str_eq(name, EL_STR("time_add"))) { - return 3; - } - if (str_eq(name, EL_STR("time_diff"))) { - return 3; - } - if (str_eq(name, EL_STR("uuid_new"))) { - return 0; - } - if (str_eq(name, EL_STR("uuid_v4"))) { - return 0; - } - if (str_eq(name, EL_STR("env"))) { - return 1; - } - if (str_eq(name, EL_STR("state_set"))) { - return 2; - } - if (str_eq(name, EL_STR("state_get"))) { - return 1; - } - if (str_eq(name, EL_STR("state_del"))) { - return 1; - } - if (str_eq(name, EL_STR("state_keys"))) { - return 0; - } - if (str_eq(name, EL_STR("float_to_str"))) { - return 1; - } - if (str_eq(name, EL_STR("int_to_float"))) { - return 1; - } - if (str_eq(name, EL_STR("float_to_int"))) { - return 1; - } - if (str_eq(name, EL_STR("format_float"))) { - return 2; - } - if (str_eq(name, EL_STR("decimal_round"))) { - return 2; - } - if (str_eq(name, EL_STR("str_to_float"))) { - return 1; - } - if (str_eq(name, EL_STR("math_sqrt"))) { - return 1; - } - if (str_eq(name, EL_STR("math_log"))) { - return 1; - } - if (str_eq(name, EL_STR("math_ln"))) { - return 1; - } - if (str_eq(name, EL_STR("math_sin"))) { - return 1; - } - if (str_eq(name, EL_STR("math_cos"))) { - return 1; - } - if (str_eq(name, EL_STR("math_pi"))) { - return 0; - } - if (str_eq(name, EL_STR("bool_to_str"))) { - return 1; - } - if (str_eq(name, EL_STR("exit_program"))) { - return 1; - } - if (str_eq(name, EL_STR("dharma_connect"))) { - return 1; - } - if (str_eq(name, EL_STR("dharma_send"))) { - return 2; - } - if (str_eq(name, EL_STR("dharma_activate"))) { - return 1; - } - if (str_eq(name, EL_STR("dharma_emit"))) { - return 2; - } - if (str_eq(name, EL_STR("dharma_field"))) { - return 1; - } - if (str_eq(name, EL_STR("dharma_strengthen"))) { - return 2; - } - if (str_eq(name, EL_STR("dharma_relationship"))) { - return 1; - } - if (str_eq(name, EL_STR("dharma_peers"))) { - return 0; - } - if (str_eq(name, EL_STR("engram_node"))) { - return 3; - } - if (str_eq(name, EL_STR("engram_node_full"))) { - return 8; - } - if (str_eq(name, EL_STR("engram_get_node"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_strengthen"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_forget"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_node_count"))) { - return 0; - } - if (str_eq(name, EL_STR("engram_search"))) { - return 2; - } - if (str_eq(name, EL_STR("engram_scan_nodes"))) { - return 2; - } - if (str_eq(name, EL_STR("engram_connect"))) { - return 4; - } - if (str_eq(name, EL_STR("engram_edge_between"))) { - return 2; - } - if (str_eq(name, EL_STR("engram_neighbors"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_neighbors_filtered"))) { - return 3; - } - if (str_eq(name, EL_STR("engram_edge_count"))) { - return 0; - } - if (str_eq(name, EL_STR("engram_activate"))) { - return 2; - } - if (str_eq(name, EL_STR("engram_save"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_load"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_get_node_json"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_search_json"))) { - return 2; - } - if (str_eq(name, EL_STR("engram_scan_nodes_json"))) { - return 2; - } - if (str_eq(name, EL_STR("engram_neighbors_json"))) { - return 3; - } - if (str_eq(name, EL_STR("engram_activate_json"))) { - return 2; - } - if (str_eq(name, EL_STR("engram_stats_json"))) { - return 0; - } - if (str_eq(name, EL_STR("llm_call"))) { - return 2; - } - if (str_eq(name, EL_STR("llm_call_system"))) { - return 3; - } - if (str_eq(name, EL_STR("llm_call_agentic"))) { - return 4; - } - if (str_eq(name, EL_STR("llm_vision"))) { - return 4; - } - if (str_eq(name, EL_STR("llm_models"))) { - return 0; - } - if (str_eq(name, EL_STR("llm_register_tool"))) { - return 2; - } - if (str_eq(name, EL_STR("sha256_hex"))) { - return 1; - } - if (str_eq(name, EL_STR("sha256_bytes"))) { - return 1; - } - if (str_eq(name, EL_STR("hmac_sha256_hex"))) { - return 2; - } - if (str_eq(name, EL_STR("hmac_sha256_bytes"))) { - return 2; - } - if (str_eq(name, EL_STR("base64_encode"))) { - return 1; - } - if (str_eq(name, EL_STR("base64_decode"))) { - return 1; - } - if (str_eq(name, EL_STR("base64url_encode"))) { - return 1; - } - if (str_eq(name, EL_STR("base64url_decode"))) { - return 1; - } - if (str_eq(name, EL_STR("native_list_get"))) { - return 2; - } - if (str_eq(name, EL_STR("native_list_len"))) { - return 1; - } - if (str_eq(name, EL_STR("native_list_append"))) { - return 2; - } - if (str_eq(name, EL_STR("native_list_empty"))) { - return 0; - } - if (str_eq(name, EL_STR("native_list_clone"))) { - return 1; - } - if (str_eq(name, EL_STR("native_string_chars"))) { - return 1; - } - if (str_eq(name, EL_STR("native_int_to_str"))) { - return 1; - } - if (str_eq(name, EL_STR("append"))) { - return 2; - } - if (str_eq(name, EL_STR("len"))) { - return 1; - } - if (str_eq(name, EL_STR("get"))) { - return 2; - } - if (str_eq(name, EL_STR("map_get"))) { - return 2; - } - if (str_eq(name, EL_STR("map_set"))) { - return 3; - } - return (-1); - return 0; -} - -el_val_t arity_record_violation(el_val_t fn_name, el_val_t expected, el_val_t actual) { - el_val_t csv = state_get(EL_STR("__arity_violations")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t entry = el_str_concat(el_str_concat(el_str_concat(el_str_concat(fn_name, EL_STR("|")), native_int_to_str(expected)), EL_STR("|")), native_int_to_str(actual)); - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), entry), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__arity_violations"), el_str_concat(el_str_concat(csv, entry), EL_STR(","))); - return 1; - return 0; -} - -el_val_t arity_check_call(el_val_t fn_name, el_val_t actual) { - el_val_t expected = builtin_arity(fn_name); - if (expected < 0) { - return 1; - } - if (expected == actual) { - return 1; - } - arity_record_violation(fn_name, expected, actual); - return 1; - return 0; -} - -el_val_t emit_arity_violations(void) { - el_val_t csv = state_get(EL_STR("__arity_violations")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - if (str_eq(csv, EL_STR(","))) { - return 0; - } - el_val_t n = str_len(csv); - el_val_t i = 1; - while (i < n) { - el_val_t next_comma = str_index_of(str_slice(csv, i, n), EL_STR(",")); - if (next_comma < 0) { - return 0; - } - el_val_t entry = str_slice(csv, i, (i + next_comma)); - el_val_t p1 = str_index_of(entry, EL_STR("|")); - if (p1 > 0) { - el_val_t fn_name = str_slice(entry, 0, p1); - el_val_t rest = str_slice(entry, (p1 + 1), str_len(entry)); - el_val_t p2 = str_index_of(rest, EL_STR("|")); - if (p2 > 0) { - el_val_t exp_s = str_slice(rest, 0, p2); - el_val_t act_s = str_slice(rest, (p2 + 1), str_len(rest)); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("#error \"arity error: '"), fn_name), EL_STR("' takes ")), exp_s), EL_STR(" arguments, but called with ")), act_s), EL_STR("\""))); - } - } - i = ((i + next_comma) + 1); - } - return 0; -} - -el_val_t add_int_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__int_names")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__int_names"), el_str_concat(el_str_concat(csv, name), EL_STR(","))); - return 1; - return 0; -} - -el_val_t build_int_names_for_params(el_val_t params) { - state_set(EL_STR("__int_names"), EL_STR(",")); - el_val_t np = native_list_len(params); - el_val_t pi = 0; - while (pi < np) { - el_val_t param = native_list_get(params, pi); - el_val_t pname = el_get_field(param, EL_STR("name")); - el_val_t ptype = el_get_field(param, EL_STR("type")); - if (str_eq(ptype, EL_STR("Int"))) { - add_int_name(pname); - } - pi = (pi + 1); - } - return 1; - return 0; -} - -el_val_t cg_fn(el_val_t stmt) { - el_val_t fn_name = el_get_field(stmt, EL_STR("name")); - if (str_eq(fn_name, EL_STR("main"))) { - return 0; - } - el_val_t params = el_get_field(stmt, EL_STR("params")); - el_val_t body = el_get_field(stmt, EL_STR("body")); - el_val_t ret_type = el_get_field(stmt, EL_STR("ret_type")); - el_val_t params_c = params_to_c(params); - el_val_t decorator = el_get_field(stmt, EL_STR("decorator")); - if (vbd_has_restricted_call(body)) { - if (!str_eq(decorator, EL_STR("manager"))) { - emit_line(el_str_concat(el_str_concat(EL_STR("#error \"VBD violation: dharma_emit/dharma_field called from non-@manager fn '"), fn_name), EL_STR("'\""))); - } - } - build_int_names_for_params(params); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_val_t "), fn_name), EL_STR("(")), params_c), EL_STR(") {"))); - el_val_t decl = native_list_empty(); - el_val_t np = native_list_len(params); - el_val_t pi = 0; - while (pi < np) { - el_val_t param = native_list_get(params, pi); - el_val_t pname = el_get_field(param, EL_STR("name")); - decl = native_list_append(decl, pname); - pi = (pi + 1); - } - el_val_t body_xformed = body; - if (!str_eq(ret_type, EL_STR("Void"))) { - body_xformed = transform_implicit_return(body); - } - cg_stmts(body_xformed, EL_STR(" "), decl); - emit_line(EL_STR(" return 0;")); - emit_line(EL_STR("}")); - emit_blank(); - return 0; -} - -el_val_t is_fndef(el_val_t stmt) { - el_val_t kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("FnDef"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_top_level_decl(el_val_t stmt) { - el_val_t kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("TypeDef"))) { - return 1; - } - if (str_eq(kind, EL_STR("EnumDef"))) { - return 1; - } - if (str_eq(kind, EL_STR("Import"))) { - return 1; - } - if (str_eq(kind, EL_STR("CgiBlock"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t cgi_arg(el_val_t value, el_val_t has_value) { - if (has_value) { - return el_str_concat(el_str_concat(EL_STR("EL_STR("), c_str_lit(value)), EL_STR(")")); - } - return EL_STR("EL_NULL"); - return 0; -} - -el_val_t vbd_is_restricted_name(el_val_t name) { - if (str_eq(name, EL_STR("dharma_emit"))) { - return 1; - } - if (str_eq(name, EL_STR("dharma_field"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t vbd_expr_has_restricted_call(el_val_t expr) { - el_val_t kind = el_get_field(expr, EL_STR("expr")); - if (str_eq(kind, EL_STR("Call"))) { - el_val_t func = el_get_field(expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (str_eq(fk, EL_STR("Ident"))) { - el_val_t fname = el_get_field(func, EL_STR("name")); - if (vbd_is_restricted_name(fname)) { - return 1; - } - } - if (vbd_expr_has_restricted_call(func)) { - return 1; - } - el_val_t args = el_get_field(expr, EL_STR("args")); - el_val_t an = native_list_len(args); - el_val_t ai = 0; - while (ai < an) { - el_val_t a = native_list_get(args, ai); - if (vbd_expr_has_restricted_call(a)) { - return 1; - } - ai = (ai + 1); - } - return 0; - } - if (str_eq(kind, EL_STR("BinOp"))) { - el_val_t l = el_get_field(expr, EL_STR("left")); - el_val_t r = el_get_field(expr, EL_STR("right")); - if (vbd_expr_has_restricted_call(l)) { - return 1; - } - if (vbd_expr_has_restricted_call(r)) { - return 1; - } - return 0; - } - if (str_eq(kind, EL_STR("Not"))) { - return vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("inner"))); - } - if (str_eq(kind, EL_STR("Neg"))) { - return vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("inner"))); - } - if (str_eq(kind, EL_STR("Field"))) { - return vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("object"))); - } - if (str_eq(kind, EL_STR("Index"))) { - if (vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("object")))) { - return 1; - } - if (vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("index")))) { - return 1; - } - return 0; - } - if (str_eq(kind, EL_STR("Try"))) { - return vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("inner"))); - } - if (str_eq(kind, EL_STR("Array"))) { - el_val_t elems = el_get_field(expr, EL_STR("elems")); - el_val_t n = native_list_len(elems); - el_val_t i = 0; - while (i < n) { - el_val_t e = native_list_get(elems, i); - if (vbd_expr_has_restricted_call(e)) { - return 1; - } - i = (i + 1); - } - return 0; - } - if (str_eq(kind, EL_STR("Map"))) { - el_val_t pairs = el_get_field(expr, EL_STR("pairs")); - el_val_t n = native_list_len(pairs); - el_val_t i = 0; - while (i < n) { - el_val_t pair = native_list_get(pairs, i); - el_val_t v = el_get_field(pair, EL_STR("value")); - if (vbd_expr_has_restricted_call(v)) { - return 1; - } - i = (i + 1); - } - return 0; - } - if (str_eq(kind, EL_STR("If"))) { - if (vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("cond")))) { - return 1; - } - if (vbd_has_restricted_call(el_get_field(expr, EL_STR("then")))) { - return 1; - } - if (vbd_has_restricted_call(el_get_field(expr, EL_STR("else")))) { - return 1; - } - return 0; - } - if (str_eq(kind, EL_STR("For"))) { - if (vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("list")))) { - return 1; - } - if (vbd_has_restricted_call(el_get_field(expr, EL_STR("body")))) { - return 1; - } - return 0; - } - if (str_eq(kind, EL_STR("Match"))) { - if (vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("subject")))) { - return 1; - } - el_val_t arms = el_get_field(expr, EL_STR("arms")); - el_val_t n = native_list_len(arms); - el_val_t i = 0; - while (i < n) { - el_val_t arm = native_list_get(arms, i); - el_val_t body = el_get_field(arm, EL_STR("body")); - if (vbd_expr_has_restricted_call(body)) { - return 1; - } - i = (i + 1); - } - return 0; - } - return 0; - return 0; -} - -el_val_t vbd_has_restricted_call(el_val_t stmts) { - el_val_t n = native_list_len(stmts); - el_val_t i = 0; - while (i < n) { - el_val_t s = native_list_get(stmts, i); - el_val_t sk = el_get_field(s, EL_STR("stmt")); - if (str_eq(sk, EL_STR("Let"))) { - if (vbd_expr_has_restricted_call(el_get_field(s, EL_STR("value")))) { - return 1; - } - } - if (str_eq(sk, EL_STR("Return"))) { - if (vbd_expr_has_restricted_call(el_get_field(s, EL_STR("value")))) { - return 1; - } - } - if (str_eq(sk, EL_STR("Expr"))) { - if (vbd_expr_has_restricted_call(el_get_field(s, EL_STR("value")))) { - return 1; - } - } - if (str_eq(sk, EL_STR("While"))) { - if (vbd_expr_has_restricted_call(el_get_field(s, EL_STR("cond")))) { - return 1; - } - if (vbd_has_restricted_call(el_get_field(s, EL_STR("body")))) { - return 1; - } - } - if (str_eq(sk, EL_STR("For"))) { - if (vbd_expr_has_restricted_call(el_get_field(s, EL_STR("list")))) { - return 1; - } - if (vbd_has_restricted_call(el_get_field(s, EL_STR("body")))) { - return 1; - } - } - i = (i + 1); - } - return 0; - return 0; -} - -el_val_t codegen(el_val_t stmts, el_val_t source) { - el_val_t n_top = native_list_len(stmts); - el_val_t cgi_count = 0; - el_val_t cgi_block = el_map_new(1, "stmt", EL_STR("None")); - el_val_t svc_count = 0; - el_val_t svc_block = el_map_new(1, "stmt", EL_STR("None")); - el_val_t ti = 0; - while (ti < n_top) { - el_val_t s = native_list_get(stmts, ti); - el_val_t sk = el_get_field(s, EL_STR("stmt")); - if (str_eq(sk, EL_STR("CgiBlock"))) { - cgi_count = (cgi_count + 1); - if (cgi_count == 1) { - cgi_block = s; - } - } - if (str_eq(sk, EL_STR("ServiceBlock"))) { - svc_count = (svc_count + 1); - if (svc_count == 1) { - svc_block = s; - } - } - ti = (ti + 1); - } - if (cgi_count > 1) { - emit_line(EL_STR("#error \"El: multiple cgi blocks in program (only one allowed)\"")); - } - if (svc_count > 1) { - emit_line(EL_STR("#error \"El: multiple service blocks in program (only one allowed)\"")); - } - if (cgi_count >= 1) { - if (svc_count >= 1) { - emit_line(EL_STR("#error \"El: program declares both cgi and service blocks (mutually exclusive — pick one)\"")); - } - } - el_val_t kind = EL_STR("utility"); - if (cgi_count >= 1) { - kind = EL_STR("cgi"); - } - if (svc_count >= 1) { - kind = EL_STR("service"); - } - state_set(EL_STR("__program_kind"), kind); - state_set(EL_STR("__cap_violations"), EL_STR("")); - state_set(EL_STR("__arity_violations"), EL_STR("")); - emit_line(EL_STR("#include ")); - emit_line(EL_STR("#include ")); - emit_line(EL_STR("#include \"el_runtime.h\"")); - emit_blank(); - el_val_t n = native_list_len(stmts); - el_val_t i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("FnDef"))) { - el_val_t fn_name = el_get_field(stmt, EL_STR("name")); - if (!str_eq(fn_name, EL_STR("main"))) { - el_val_t params = el_get_field(stmt, EL_STR("params")); - el_val_t params_c = params_to_c(params); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_val_t "), fn_name), EL_STR("(")), params_c), EL_STR(");"))); - } - } - i = (i + 1); - } - emit_blank(); - el_val_t has_toplevel_lets = 0; - i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("Let"))) { - el_val_t name = el_get_field(stmt, EL_STR("name")); - el_val_t ltype = el_get_field(stmt, EL_STR("type")); - if (str_eq(ltype, EL_STR("Int"))) { - add_int_name(name); - } - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t vk = el_get_field(val, EL_STR("expr")); - if (str_eq(vk, EL_STR("Int"))) { - add_int_name(name); - } - emit_line(el_str_concat(el_str_concat(EL_STR("el_val_t "), name), EL_STR(";"))); - has_toplevel_lets = 1; - } - i = (i + 1); - } - if (has_toplevel_lets) { - emit_blank(); - } - i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - if (is_fndef(stmt)) { - cg_fn(stmt); - } - i = (i + 1); - } - emit_line(EL_STR("int main(int argc, char** argv) {")); - emit_line(EL_STR(" el_runtime_init_args(argc, argv);")); - if (cgi_count >= 1) { - el_val_t cname = el_get_field(cgi_block, EL_STR("name")); - el_val_t cdid = el_get_field(cgi_block, EL_STR("dharma_id")); - el_val_t cprin = el_get_field(cgi_block, EL_STR("principal")); - el_val_t cnet = el_get_field(cgi_block, EL_STR("network")); - el_val_t ceng = el_get_field(cgi_block, EL_STR("engram")); - el_val_t has_did = el_get_field(cgi_block, EL_STR("has_dharma_id")); - el_val_t has_prin = el_get_field(cgi_block, EL_STR("has_principal")); - el_val_t has_net = el_get_field(cgi_block, EL_STR("has_network")); - el_val_t has_eng = el_get_field(cgi_block, EL_STR("has_engram")); - el_val_t arg_name = el_str_concat(el_str_concat(EL_STR("EL_STR("), c_str_lit(cname)), EL_STR(")")); - el_val_t arg_did = cgi_arg(cdid, has_did); - el_val_t arg_prin = cgi_arg(cprin, has_prin); - el_val_t arg_net = cgi_arg(cnet, has_net); - el_val_t arg_eng = cgi_arg(ceng, has_eng); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR(" el_cgi_init("), arg_name), EL_STR(", ")), arg_did), EL_STR(", ")), arg_prin), EL_STR(", ")), arg_net), EL_STR(", ")), arg_eng), EL_STR(");"))); - } - el_val_t main_decl = native_list_empty(); - i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("Let"))) { - el_val_t name = el_get_field(stmt, EL_STR("name")); - main_decl = native_list_append(main_decl, name); - } - i = (i + 1); - } - i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - if (is_fndef(stmt)) { - } else { - if (is_top_level_decl(stmt)) { - } else { - main_decl = cg_stmt(stmt, EL_STR(" "), main_decl); - } - } - i = (i + 1); - } - emit_line(EL_STR(" return 0;")); - emit_line(EL_STR("}")); - emit_blank(); - emit_cap_violations(); - emit_arity_violations(); - return EL_STR(""); - return 0; -} - -el_val_t js_escape(el_val_t s) { - el_val_t chars = native_string_chars(s); - el_val_t total = native_list_len(chars); - el_val_t out = EL_STR(""); - el_val_t i = 0; - while (i < total) { - el_val_t ch = native_list_get(chars, i); - if (str_eq(ch, EL_STR("\""))) { - out = el_str_concat(out, EL_STR("\\\"")); - } else { - if (str_eq(ch, EL_STR("\\"))) { - out = el_str_concat(out, EL_STR("\\\\")); - } else { - if (str_eq(ch, EL_STR("\n"))) { - out = el_str_concat(out, EL_STR("\\n")); - } else { - if (str_eq(ch, EL_STR("\r"))) { - out = el_str_concat(out, EL_STR("\\r")); - } else { - if (str_eq(ch, EL_STR("\t"))) { - out = el_str_concat(out, EL_STR("\\t")); - } else { - out = el_str_concat(out, ch); - } - } - } - } - } - i = (i + 1); - } - return out; - return 0; -} - -el_val_t js_str_lit(el_val_t s) { - return el_str_concat(el_str_concat(EL_STR("\""), js_escape(s)), EL_STR("\"")); - return 0; -} - -el_val_t js_emit_line(el_val_t line) { - println(line); - return 0; -} - -el_val_t js_emit_blank(void) { - println(EL_STR("")); - return 0; -} - -el_val_t js_binop(el_val_t op) { - if (str_eq(op, EL_STR("Plus"))) { - return EL_STR("+"); - } - if (str_eq(op, EL_STR("Minus"))) { - return EL_STR("-"); - } - if (str_eq(op, EL_STR("Star"))) { - return EL_STR("*"); - } - if (str_eq(op, EL_STR("Slash"))) { - return EL_STR("/"); - } - if (str_eq(op, EL_STR("Percent"))) { - return EL_STR("%"); - } - if (str_eq(op, EL_STR("EqEq"))) { - return EL_STR("==="); - } - if (str_eq(op, EL_STR("NotEq"))) { - return EL_STR("!=="); - } - if (str_eq(op, EL_STR("Lt"))) { - return EL_STR("<"); - } - if (str_eq(op, EL_STR("Gt"))) { - return EL_STR(">"); - } - if (str_eq(op, EL_STR("LtEq"))) { - return EL_STR("<="); - } - if (str_eq(op, EL_STR("GtEq"))) { - return EL_STR(">="); - } - if (str_eq(op, EL_STR("And"))) { - return EL_STR("&&"); - } - if (str_eq(op, EL_STR("Or"))) { - return EL_STR("||"); - } - return op; - return 0; -} - -el_val_t js_is_int_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__js_int_names")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - return str_contains(csv, el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(","))); - return 0; -} - -el_val_t js_add_int_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__js_int_names")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__js_int_names"), el_str_concat(el_str_concat(csv, name), EL_STR(","))); - return 1; - return 0; -} - -el_val_t js_build_int_names_for_params(el_val_t params) { - state_set(EL_STR("__js_int_names"), EL_STR(",")); - el_val_t np = native_list_len(params); - el_val_t pi = 0; - while (pi < np) { - el_val_t param = native_list_get(params, pi); - el_val_t pname = el_get_field(param, EL_STR("name")); - el_val_t ptype = el_get_field(param, EL_STR("type")); - if (str_eq(ptype, EL_STR("Int"))) { - js_add_int_name(pname); - } - pi = (pi + 1); - } - return 1; - return 0; -} - -el_val_t js_is_int_call(el_val_t call_expr) { - el_val_t func = el_get_field(call_expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (!str_eq(fk, EL_STR("Ident"))) { - return 0; - } - el_val_t name = el_get_field(func, EL_STR("name")); - if (str_eq(name, EL_STR("str_len"))) { - return 1; - } - if (str_eq(name, EL_STR("str_index_of"))) { - return 1; - } - if (str_eq(name, EL_STR("str_to_int"))) { - return 1; - } - if (str_eq(name, EL_STR("str_char_code"))) { - return 1; - } - if (str_eq(name, EL_STR("native_list_len"))) { - return 1; - } - if (str_eq(name, EL_STR("el_list_len"))) { - return 1; - } - if (str_eq(name, EL_STR("len"))) { - return 1; - } - if (str_eq(name, EL_STR("json_get_int"))) { - return 1; - } - if (str_eq(name, EL_STR("time_now"))) { - return 1; - } - if (str_eq(name, EL_STR("time_now_utc"))) { - return 1; - } - if (str_eq(name, EL_STR("el_abs"))) { - return 1; - } - if (str_eq(name, EL_STR("el_max"))) { - return 1; - } - if (str_eq(name, EL_STR("el_min"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t js_cg_expr(el_val_t expr) { - el_val_t kind = el_get_field(expr, EL_STR("expr")); - if (str_eq(kind, EL_STR("Int"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - return v; - } - if (str_eq(kind, EL_STR("Float"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - return v; - } - if (str_eq(kind, EL_STR("Str"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - return js_str_lit(v); - } - if (str_eq(kind, EL_STR("Bool"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - if (str_eq(v, EL_STR("true"))) { - return EL_STR("true"); - } - return EL_STR("false"); - } - if (str_eq(kind, EL_STR("Nil"))) { - return EL_STR("null"); - } - if (str_eq(kind, EL_STR("Ident"))) { - el_val_t name = el_get_field(expr, EL_STR("name")); - return name; - } - if (str_eq(kind, EL_STR("Not"))) { - el_val_t inner = el_get_field(expr, EL_STR("inner")); - el_val_t inner_c = js_cg_expr(inner); - return el_str_concat(EL_STR("!"), inner_c); - } - if (str_eq(kind, EL_STR("Neg"))) { - el_val_t inner = el_get_field(expr, EL_STR("inner")); - el_val_t inner_c = js_cg_expr(inner); - return el_str_concat(el_str_concat(EL_STR("(-"), inner_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("BinOp"))) { - el_val_t op = el_get_field(expr, EL_STR("op")); - el_val_t left = el_get_field(expr, EL_STR("left")); - el_val_t right = el_get_field(expr, EL_STR("right")); - el_val_t left_c = js_cg_expr(left); - el_val_t right_c = js_cg_expr(right); - el_val_t left_kind = el_get_field(left, EL_STR("expr")); - el_val_t right_kind = el_get_field(right, EL_STR("expr")); - if (str_eq(op, EL_STR("Plus"))) { - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" + ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" + ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - if (str_eq(right_kind, EL_STR("Ident"))) { - el_val_t lname = el_get_field(left, EL_STR("name")); - el_val_t rname = el_get_field(right, EL_STR("name")); - if (js_is_int_name(lname)) { - if (js_is_int_name(rname)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" + ")), right_c), EL_STR(")")); - } - } - } - } - if (str_eq(left_kind, EL_STR("Ident"))) { - if (str_eq(right_kind, EL_STR("Call"))) { - el_val_t lname = el_get_field(left, EL_STR("name")); - if (js_is_int_name(lname)) { - if (js_is_int_call(right)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" + ")), right_c), EL_STR(")")); - } - } - } - } - if (str_eq(right_kind, EL_STR("Ident"))) { - if (str_eq(left_kind, EL_STR("Call"))) { - el_val_t rname = el_get_field(right, EL_STR("name")); - if (js_is_int_name(rname)) { - if (js_is_int_call(left)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" + ")), right_c), EL_STR(")")); - } - } - } - } - if (str_eq(left_kind, EL_STR("Call"))) { - if (str_eq(right_kind, EL_STR("Call"))) { - if (js_is_int_call(left)) { - if (js_is_int_call(right)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" + ")), right_c), EL_STR(")")); - } - } - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Call"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (str_eq(op, EL_STR("EqEq"))) { - if (str_eq(left_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Nil"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Nil"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - if (str_eq(right_kind, EL_STR("Ident"))) { - el_val_t lname = el_get_field(left, EL_STR("name")); - el_val_t rname = el_get_field(right, EL_STR("name")); - if (js_is_int_name(lname)) { - if (js_is_int_name(rname)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - } - } - } - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - if (str_eq(op, EL_STR("NotEq"))) { - if (str_eq(left_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Nil"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Nil"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - if (str_eq(right_kind, EL_STR("Ident"))) { - el_val_t lname = el_get_field(left, EL_STR("name")); - el_val_t rname = el_get_field(right, EL_STR("name")); - if (js_is_int_name(lname)) { - if (js_is_int_name(rname)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - } - } - } - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - el_val_t op_c = js_binop(op); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" ")), op_c), EL_STR(" ")), right_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Call"))) { - el_val_t func = el_get_field(expr, EL_STR("func")); - el_val_t args = el_get_field(expr, EL_STR("args")); - el_val_t arity = native_list_len(args); - el_val_t func_kind = el_get_field(func, EL_STR("expr")); - el_val_t args_c = EL_STR(""); - el_val_t i = 0; - while (i < arity) { - el_val_t arg = native_list_get(args, i); - el_val_t arg_c = js_cg_expr(arg); - if (i > 0) { - args_c = el_str_concat(args_c, EL_STR(", ")); - } - args_c = el_str_concat(args_c, arg_c); - i = (i + 1); - } - if (str_eq(func_kind, EL_STR("Ident"))) { - el_val_t fn_name = el_get_field(func, EL_STR("name")); - return el_str_concat(el_str_concat(el_str_concat(fn_name, EL_STR("(")), args_c), EL_STR(")")); - } - if (str_eq(func_kind, EL_STR("Field"))) { - el_val_t obj = el_get_field(func, EL_STR("object")); - el_val_t field = el_get_field(func, EL_STR("field")); - el_val_t obj_c = js_cg_expr(obj); - if (arity > 0) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(field, EL_STR("(")), obj_c), EL_STR(", ")), args_c), EL_STR(")")); - } - return el_str_concat(el_str_concat(el_str_concat(field, EL_STR("(")), obj_c), EL_STR(")")); - } - el_val_t fn_c = js_cg_expr(func); - return el_str_concat(el_str_concat(el_str_concat(fn_c, EL_STR("(")), args_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Field"))) { - el_val_t obj = el_get_field(expr, EL_STR("object")); - el_val_t field = el_get_field(expr, EL_STR("field")); - el_val_t obj_c = js_cg_expr(obj); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_get_field("), obj_c), EL_STR(", ")), js_str_lit(field)), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Index"))) { - el_val_t obj = el_get_field(expr, EL_STR("object")); - el_val_t idx = el_get_field(expr, EL_STR("index")); - el_val_t obj_c = js_cg_expr(obj); - el_val_t idx_c = js_cg_expr(idx); - el_val_t idx_kind = el_get_field(idx, EL_STR("expr")); - if (str_eq(idx_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_get_field("), obj_c), EL_STR(", ")), idx_c), EL_STR(")")); - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_list_get("), obj_c), EL_STR(", ")), idx_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Array"))) { - el_val_t elems = el_get_field(expr, EL_STR("elems")); - el_val_t n = native_list_len(elems); - if (n == 0) { - return EL_STR("[]"); - } - el_val_t items = EL_STR(""); - el_val_t i = 0; - while (i < n) { - el_val_t elem = native_list_get(elems, i); - el_val_t elem_c = js_cg_expr(elem); - if (i > 0) { - items = el_str_concat(items, EL_STR(", ")); - } - items = el_str_concat(items, elem_c); - i = (i + 1); - } - return el_str_concat(el_str_concat(EL_STR("["), items), EL_STR("]")); - } - if (str_eq(kind, EL_STR("Map"))) { - el_val_t pairs = el_get_field(expr, EL_STR("pairs")); - el_val_t n = native_list_len(pairs); - if (n == 0) { - return EL_STR("{}"); - } - el_val_t items = EL_STR(""); - el_val_t i = 0; - while (i < n) { - el_val_t pair = native_list_get(pairs, i); - el_val_t key = el_get_field(pair, EL_STR("key")); - el_val_t val = el_get_field(pair, EL_STR("value")); - el_val_t val_c = js_cg_expr(val); - if (i > 0) { - items = el_str_concat(items, EL_STR(", ")); - } - items = el_str_concat(el_str_concat(el_str_concat(items, js_str_lit(key)), EL_STR(": ")), val_c); - i = (i + 1); - } - return el_str_concat(el_str_concat(EL_STR("{"), items), EL_STR("}")); - } - if (str_eq(kind, EL_STR("Try"))) { - el_val_t inner = el_get_field(expr, EL_STR("inner")); - return js_cg_expr(inner); - } - if (str_eq(kind, EL_STR("If"))) { - el_val_t cond = el_get_field(expr, EL_STR("cond")); - el_val_t cond_c = js_cg_expr(cond); - return el_str_concat(el_str_concat(EL_STR("("), cond_c), EL_STR(" ? 1 : 0)")); - } - if (str_eq(kind, EL_STR("Match"))) { - return js_cg_match(expr); - } - return EL_STR("null"); - return 0; -} - -el_val_t js_next_match_id(void) { - el_val_t csv = state_get(EL_STR("__js_match_counter")); - el_val_t n = 0; - if (!str_eq(csv, EL_STR(""))) { - n = str_to_int(csv); - } - n = (n + 1); - state_set(EL_STR("__js_match_counter"), native_int_to_str(n)); - return native_int_to_str(n); - return 0; -} - -el_val_t js_cg_match(el_val_t expr) { - el_val_t subject = el_get_field(expr, EL_STR("subject")); - el_val_t arms = el_get_field(expr, EL_STR("arms")); - el_val_t subj_c = js_cg_expr(subject); - el_val_t id = js_next_match_id(); - el_val_t subj_var = el_str_concat(EL_STR("_match_subj_"), id); - el_val_t out = el_str_concat(el_str_concat(EL_STR("(("), subj_var), EL_STR(") => { ")); - el_val_t n = native_list_len(arms); - el_val_t i = 0; - while (i < n) { - el_val_t arm = native_list_get(arms, i); - el_val_t pat = el_get_field(arm, EL_STR("pattern")); - el_val_t body = el_get_field(arm, EL_STR("body")); - el_val_t pkind = el_get_field(pat, EL_STR("pattern")); - el_val_t body_c = js_cg_expr(body); - if (str_eq(pkind, EL_STR("Wildcard"))) { - out = el_str_concat(el_str_concat(el_str_concat(out, EL_STR("return (")), body_c), EL_STR("); ")); - } else { - if (str_eq(pkind, EL_STR("Binding"))) { - el_val_t bname = el_get_field(pat, EL_STR("name")); - out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(out, EL_STR("{ const ")), bname), EL_STR(" = ")), subj_var), EL_STR("; return (")), body_c), EL_STR("); } ")); - } else { - if (str_eq(pkind, EL_STR("LitInt"))) { - el_val_t v = el_get_field(pat, EL_STR("value")); - out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(out, EL_STR("if (")), subj_var), EL_STR(" === ")), v), EL_STR(") return (")), body_c), EL_STR("); ")); - } else { - if (str_eq(pkind, EL_STR("LitStr"))) { - el_val_t v = el_get_field(pat, EL_STR("value")); - out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(out, EL_STR("if (str_eq(")), subj_var), EL_STR(", ")), js_str_lit(v)), EL_STR(")) return (")), body_c), EL_STR("); ")); - } else { - if (str_eq(pkind, EL_STR("LitBool"))) { - el_val_t v = el_get_field(pat, EL_STR("value")); - el_val_t bv = EL_STR("false"); - if (str_eq(v, EL_STR("true"))) { - bv = EL_STR("true"); - } - out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(out, EL_STR("if (")), subj_var), EL_STR(" === ")), bv), EL_STR(") return (")), body_c), EL_STR("); ")); - } else { - out = el_str_concat(el_str_concat(el_str_concat(out, EL_STR("return (")), body_c), EL_STR("); ")); - } - } - } - } - } - i = (i + 1); - } - out = el_str_concat(el_str_concat(el_str_concat(out, EL_STR("return null; })(")), subj_c), EL_STR(")")); - return out; - return 0; -} - -el_val_t js_list_contains(el_val_t lst, el_val_t s) { - el_val_t n = native_list_len(lst); - el_val_t i = 0; - while (i < n) { - el_val_t item = native_list_get(lst, i); - if (str_eq(item, s)) { - return 1; - } - i = (i + 1); - } - return 0; - return 0; -} - -el_val_t js_cg_stmt(el_val_t stmt, el_val_t indent, el_val_t declared) { - el_val_t kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("Let"))) { - el_val_t name = el_get_field(stmt, EL_STR("name")); - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t val_c = js_cg_expr(val); - el_val_t ltype = el_get_field(stmt, EL_STR("type")); - if (str_eq(ltype, EL_STR("Int"))) { - js_add_int_name(name); - } - el_val_t vk = el_get_field(val, EL_STR("expr")); - if (str_eq(vk, EL_STR("Int"))) { - js_add_int_name(name); - } - if (js_list_contains(declared, name)) { - js_emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, name), EL_STR(" = ")), val_c), EL_STR(";"))); - return declared; - } else { - js_emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("let ")), name), EL_STR(" = ")), val_c), EL_STR(";"))); - return native_list_append(declared, name); - } - } - if (str_eq(kind, EL_STR("Return"))) { - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t val_kind = el_get_field(val, EL_STR("expr")); - if (str_eq(val_kind, EL_STR("Nil"))) { - js_emit_line(el_str_concat(indent, EL_STR("return null;"))); - } else { - el_val_t val_c = js_cg_expr(val); - js_emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("return ")), val_c), EL_STR(";"))); - } - return declared; - } - if (str_eq(kind, EL_STR("Expr"))) { - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t val_kind = el_get_field(val, EL_STR("expr")); - if (str_eq(val_kind, EL_STR("If"))) { - js_cg_if_stmt(val, indent, declared); - return declared; - } - if (str_eq(val_kind, EL_STR("For"))) { - js_cg_for_stmt(val, indent, declared); - return declared; - } - el_val_t val_c = js_cg_expr(val); - js_emit_line(el_str_concat(el_str_concat(indent, val_c), EL_STR(";"))); - return declared; - } - if (str_eq(kind, EL_STR("While"))) { - el_val_t cond = el_get_field(stmt, EL_STR("cond")); - el_val_t body = el_get_field(stmt, EL_STR("body")); - el_val_t cond_c = js_cg_expr(cond); - cond_c = js_strip_outer_parens(cond_c); - js_emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("while (")), cond_c), EL_STR(") {"))); - js_cg_stmts(body, el_str_concat(indent, EL_STR(" ")), native_list_clone(declared)); - js_emit_line(el_str_concat(indent, EL_STR("}"))); - return declared; - } - if (str_eq(kind, EL_STR("For"))) { - el_val_t item = el_get_field(stmt, EL_STR("item")); - el_val_t list_expr = el_get_field(stmt, EL_STR("list")); - el_val_t body = el_get_field(stmt, EL_STR("body")); - js_cg_for_body(item, list_expr, body, indent, declared); - return declared; - } - if (str_eq(kind, EL_STR("FnDef"))) { - return declared; - } - if (str_eq(kind, EL_STR("TypeDef"))) { - return declared; - } - if (str_eq(kind, EL_STR("EnumDef"))) { - return declared; - } - if (str_eq(kind, EL_STR("Import"))) { - return declared; - } - if (str_eq(kind, EL_STR("CgiBlock"))) { - el_val_t cname = el_get_field(stmt, EL_STR("name")); - js_emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("// cgi block '")), cname), EL_STR("' — no-op in JS target (server-side concept)"))); - return declared; - } - if (str_eq(kind, EL_STR("ServiceBlock"))) { - el_val_t sname = el_get_field(stmt, EL_STR("name")); - js_emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("// service block '")), sname), EL_STR("' — no-op in JS target"))); - return declared; - } - return declared; - return 0; -} - -el_val_t js_strip_outer_parens(el_val_t s) { - el_val_t chars = native_string_chars(s); - el_val_t n = native_list_len(chars); - if (n < 2) { - return s; - } - el_val_t first = native_list_get(chars, 0); - el_val_t last = native_list_get(chars, (n - 1)); - if (str_eq(first, EL_STR("("))) { - if (str_eq(last, EL_STR(")"))) { - el_val_t depth = 1; - el_val_t i = 1; - el_val_t balanced = 1; - while (i < (n - 1)) { - el_val_t ch = native_list_get(chars, i); - if (str_eq(ch, EL_STR("("))) { - depth = (depth + 1); - } - if (str_eq(ch, EL_STR(")"))) { - depth = (depth - 1); - if (depth == 0) { - balanced = 0; - i = n; - } - } - i = (i + 1); - } - if (balanced) { - el_val_t inner = EL_STR(""); - el_val_t j = 1; - while (j < (n - 1)) { - el_val_t ch = native_list_get(chars, j); - inner = el_str_concat(inner, ch); - j = (j + 1); - } - return inner; - } - } - } - return s; - return 0; -} - -el_val_t js_cg_if_stmt(el_val_t expr, el_val_t indent, el_val_t declared) { - el_val_t cond = el_get_field(expr, EL_STR("cond")); - el_val_t then_stmts = el_get_field(expr, EL_STR("then")); - el_val_t else_stmts = el_get_field(expr, EL_STR("else")); - el_val_t has_else = el_get_field(expr, EL_STR("has_else")); - el_val_t cond_c = js_cg_expr(cond); - cond_c = js_strip_outer_parens(cond_c); - js_emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("if (")), cond_c), EL_STR(") {"))); - js_cg_stmts(then_stmts, el_str_concat(indent, EL_STR(" ")), native_list_clone(declared)); - if (has_else) { - js_emit_line(el_str_concat(indent, EL_STR("} else {"))); - js_cg_stmts(else_stmts, el_str_concat(indent, EL_STR(" ")), native_list_clone(declared)); - } - js_emit_line(el_str_concat(indent, EL_STR("}"))); - return 0; -} - -el_val_t js_cg_for_body(el_val_t item, el_val_t list_expr, el_val_t body, el_val_t indent, el_val_t declared) { - el_val_t list_c = js_cg_expr(list_expr); - js_emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("for (const ")), item), EL_STR(" of ")), list_c), EL_STR(") {"))); - el_val_t body_decl = native_list_clone(declared); - body_decl = native_list_append(body_decl, item); - js_cg_stmts(body, el_str_concat(indent, EL_STR(" ")), body_decl); - js_emit_line(el_str_concat(indent, EL_STR("}"))); - return 0; -} - -el_val_t js_cg_for_stmt(el_val_t expr, el_val_t indent, el_val_t declared) { - el_val_t item = el_get_field(expr, EL_STR("item")); - el_val_t list_expr = el_get_field(expr, EL_STR("list")); - el_val_t body = el_get_field(expr, EL_STR("body")); - js_cg_for_body(item, list_expr, body, indent, declared); - return 0; -} - -el_val_t js_cg_stmts(el_val_t stmts, el_val_t indent, el_val_t declared) { - el_val_t n = native_list_len(stmts); - el_val_t i = 0; - el_val_t decl = declared; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - decl = js_cg_stmt(stmt, indent, decl); - i = (i + 1); - } - return decl; - return 0; -} - -el_val_t js_params_str(el_val_t params) { - el_val_t n = native_list_len(params); - if (n == 0) { - return EL_STR(""); - } - el_val_t out = EL_STR(""); - el_val_t i = 0; - while (i < n) { - el_val_t param = native_list_get(params, i); - el_val_t name = el_get_field(param, EL_STR("name")); - if (i > 0) { - out = el_str_concat(out, EL_STR(", ")); - } - out = el_str_concat(out, name); - i = (i + 1); - } - return out; - return 0; -} - -el_val_t js_transform_implicit_return(el_val_t body) { - el_val_t n = native_list_len(body); - if (n == 0) { - return body; - } - el_val_t last = native_list_get(body, (n - 1)); - el_val_t last_kind = el_get_field(last, EL_STR("stmt")); - if (str_eq(last_kind, EL_STR("Expr"))) { - el_val_t val = el_get_field(last, EL_STR("value")); - el_val_t val_kind = el_get_field(val, EL_STR("expr")); - if (str_eq(val_kind, EL_STR("If"))) { - return body; - } - if (str_eq(val_kind, EL_STR("For"))) { - return body; - } - el_val_t new_body = native_list_empty(); - el_val_t i = 0; - while (i < (n - 1)) { - new_body = native_list_append(new_body, native_list_get(body, i)); - i = (i + 1); - } - el_val_t return_stmt = el_map_new(2, "stmt", EL_STR("Return"), "value", val); - new_body = native_list_append(new_body, return_stmt); - return new_body; - } - return body; - return 0; -} - -el_val_t js_cg_fn(el_val_t stmt) { - el_val_t fn_name = el_get_field(stmt, EL_STR("name")); - el_val_t params = el_get_field(stmt, EL_STR("params")); - el_val_t body = el_get_field(stmt, EL_STR("body")); - el_val_t ret_type = el_get_field(stmt, EL_STR("ret_type")); - el_val_t params_str = js_params_str(params); - js_build_int_names_for_params(params); - if (str_eq(fn_name, EL_STR("main"))) { - js_emit_line(el_str_concat(el_str_concat(EL_STR("function main("), params_str), EL_STR(") {"))); - } else { - js_emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("function "), fn_name), EL_STR("(")), params_str), EL_STR(") {"))); - } - el_val_t decl = native_list_empty(); - el_val_t np = native_list_len(params); - el_val_t pi = 0; - while (pi < np) { - el_val_t param = native_list_get(params, pi); - el_val_t pname = el_get_field(param, EL_STR("name")); - decl = native_list_append(decl, pname); - pi = (pi + 1); - } - el_val_t body_xformed = body; - if (!str_eq(ret_type, EL_STR("Void"))) { - body_xformed = js_transform_implicit_return(body); - } - js_cg_stmts(body_xformed, EL_STR(" "), decl); - js_emit_line(EL_STR("}")); - js_emit_blank(); - return 0; -} - -el_val_t js_is_fndef(el_val_t stmt) { - el_val_t kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("FnDef"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t js_is_top_level_decl(el_val_t stmt) { - el_val_t kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("TypeDef"))) { - return 1; - } - if (str_eq(kind, EL_STR("EnumDef"))) { - return 1; - } - if (str_eq(kind, EL_STR("Import"))) { - return 1; - } - if (str_eq(kind, EL_STR("CgiBlock"))) { - return 1; - } - if (str_eq(kind, EL_STR("ServiceBlock"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t codegen_js(el_val_t stmts, el_val_t source) { - state_set(EL_STR("__js_int_names"), EL_STR("")); - state_set(EL_STR("__js_match_counter"), EL_STR("")); - js_emit_line(EL_STR("// Generated by elc --target=js")); - js_emit_line(EL_STR("// Runtime: foundation/el/el-compiler/runtime/el_runtime.js")); - js_emit_line(EL_STR("import \"./el_runtime.js\";")); - js_emit_line(EL_STR("const {")); - js_emit_line(EL_STR(" println, print, el_str_concat, str_concat, str_eq, str_starts_with, str_ends_with,")); - js_emit_line(EL_STR(" str_len, int_to_str, str_to_int, str_slice, str_contains, str_replace,")); - js_emit_line(EL_STR(" str_to_upper, str_to_lower, str_trim, str_index_of, str_split, str_char_at,")); - js_emit_line(EL_STR(" str_char_code, str_lower, str_upper, el_abs, el_max, el_min,")); - js_emit_line(EL_STR(" el_list_new, el_list_len, el_list_get, el_list_append, el_list_empty, el_list_clone,")); - js_emit_line(EL_STR(" list_push, list_join, list_range,")); - js_emit_line(EL_STR(" el_map_new, el_get_field, el_map_get, el_map_set,")); - js_emit_line(EL_STR(" http_get, http_post, http_post_json,")); - js_emit_line(EL_STR(" fs_read, fs_write, fs_list,")); - js_emit_line(EL_STR(" json_parse, json_stringify, json_get, json_get_string, json_get_int,")); - js_emit_line(EL_STR(" time_now, time_now_utc, sleep_ms, bool_to_str, exit_program,")); - js_emit_line(EL_STR(" el_retain, el_release,")); - js_emit_line(EL_STR(" append, len, get, map_get, map_set,")); - js_emit_line(EL_STR(" native_list_get, native_list_len, native_list_append, native_list_empty,")); - js_emit_line(EL_STR(" native_list_clone, native_string_chars, native_int_to_str,")); - js_emit_line(EL_STR(" args, state_set, state_get, state_del, state_keys, env,")); - js_emit_line(EL_STR(" dharma_connect, dharma_send, dharma_emit, dharma_field, dharma_activate,")); - js_emit_line(EL_STR(" engram_node, engram_search, engram_activate,")); - js_emit_line(EL_STR(" llm_call, llm_call_system,")); - js_emit_line(EL_STR("} = globalThis.__el;")); - js_emit_blank(); - el_val_t n = native_list_len(stmts); - el_val_t i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - if (js_is_fndef(stmt)) { - js_cg_fn(stmt); - } - i = (i + 1); - } - el_val_t has_main = 0; - i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - el_val_t sk = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(sk, EL_STR("FnDef"))) { - el_val_t fn_name = el_get_field(stmt, EL_STR("name")); - if (str_eq(fn_name, EL_STR("main"))) { - has_main = 1; - } - } - i = (i + 1); - } - el_val_t main_decl = native_list_empty(); - i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - if (js_is_fndef(stmt)) { - } else { - if (js_is_top_level_decl(stmt)) { - } else { - main_decl = js_cg_stmt(stmt, EL_STR(""), main_decl); - } - } - i = (i + 1); - } - if (has_main) { - js_emit_blank(); - js_emit_line(EL_STR("main();")); - } - return EL_STR(""); - return 0; -} - -el_val_t compile(el_val_t source) { - el_val_t tokens = lex(source); - el_val_t stmts = parse(tokens); - return codegen(stmts, source); - return 0; -} - -el_val_t compile_js(el_val_t source) { - el_val_t tokens = lex(source); - el_val_t stmts = parse(tokens); - return codegen_js(stmts, source); - return 0; -} - -el_val_t compile_dispatch(el_val_t tgt, el_val_t source) { - if (str_eq(tgt, EL_STR("js"))) { - return compile_js(source); - } - return compile(source); - return 0; -} - -el_val_t detect_target(el_val_t argv) { - el_val_t n = native_list_len(argv); - el_val_t i = 0; - while (i < n) { - el_val_t a = native_list_get(argv, i); - if (str_starts_with(a, EL_STR("--target="))) { - el_val_t v = str_slice(a, 9, str_len(a)); - return v; - } - i = (i + 1); - } - return EL_STR("c"); - return 0; -} - -el_val_t strip_flags(el_val_t argv) { - el_val_t out = native_list_empty(); - el_val_t n = native_list_len(argv); - el_val_t i = 0; - while (i < n) { - el_val_t a = native_list_get(argv, i); - if (!str_starts_with(a, EL_STR("--"))) { - out = native_list_append(out, a); - } - i = (i + 1); - } - return out; - return 0; -} - -int main(int argc, char** argv) { - el_runtime_init_args(argc, argv); - _argv = args(); - _target = detect_target(_argv); - _positional = strip_flags(_argv); - _argc = native_list_len(_positional); - if (_argc >= 1) { - el_val_t _src_path = native_list_get(_positional, 0); - el_val_t _source = fs_read(_src_path); - el_val_t _out = compile_dispatch(_target, _source); - if (_argc >= 2) { - el_val_t _out_path = native_list_get(_positional, 1); - fs_write(_out_path, _out); - } - } - return 0; -} - diff --git a/lang/dist/elc-new.c b/lang/dist/elc-new.c deleted file mode 100644 index d7ab52c..0000000 --- a/lang/dist/elc-new.c +++ /dev/null @@ -1,6699 +0,0 @@ -#include -#include -#include "el_runtime.h" - -el_val_t lex_is_digit(el_val_t ch); -el_val_t lex_is_alpha(el_val_t ch); -el_val_t is_alnum_or_underscore(el_val_t ch); -el_val_t lex_is_whitespace(el_val_t ch); -el_val_t make_tok(el_val_t kind, el_val_t value); -el_val_t keyword_kind(el_val_t word); -el_val_t scan_digits(el_val_t chars, el_val_t start, el_val_t total); -el_val_t scan_ident(el_val_t chars, el_val_t start, el_val_t total); -el_val_t substr_at(el_val_t chars, el_val_t start, el_val_t total, el_val_t needle); -el_val_t str_has(el_val_t s, el_val_t needle); -el_val_t looks_like_code(el_val_t s); -el_val_t strip_code_comments(el_val_t s); -el_val_t scan_string(el_val_t chars, el_val_t start, el_val_t total); -el_val_t lex(el_val_t source); -el_val_t tok_at(el_val_t tokens, el_val_t pos); -el_val_t tok_kind(el_val_t tokens, el_val_t pos); -el_val_t tok_value(el_val_t tokens, el_val_t pos); -el_val_t expect(el_val_t tokens, el_val_t pos, el_val_t kind); -el_val_t make_result(el_val_t node, el_val_t pos); -el_val_t skip_type(el_val_t tokens, el_val_t pos); -el_val_t parse_params(el_val_t tokens, el_val_t pos); -el_val_t parse_primary(el_val_t tokens, el_val_t pos); -el_val_t parse_if(el_val_t tokens, el_val_t pos); -el_val_t parse_match(el_val_t tokens, el_val_t pos); -el_val_t parse_pattern(el_val_t tokens, el_val_t pos); -el_val_t parse_for_expr(el_val_t tokens, el_val_t pos); -el_val_t parse_block(el_val_t tokens, el_val_t pos); -el_val_t is_duration_unit(el_val_t name); -el_val_t parse_postfix(el_val_t tokens, el_val_t pos); -el_val_t op_precedence(el_val_t kind); -el_val_t is_binop(el_val_t kind); -el_val_t parse_binop(el_val_t tokens, el_val_t pos, el_val_t min_prec); -el_val_t parse_expr(el_val_t tokens, el_val_t pos); -el_val_t parse_stmt(el_val_t tokens, el_val_t pos); -el_val_t parse(el_val_t tokens); -el_val_t nibble_to_hex(el_val_t n); -el_val_t byte_to_hex2(el_val_t b); -el_val_t is_hex_digit_byte(el_val_t b); -el_val_t c_escape(el_val_t s); -el_val_t c_str_lit(el_val_t s); -el_val_t el_type_to_c(el_val_t type_str); -el_val_t emit_line(el_val_t line); -el_val_t emit_blank(void); -el_val_t binop_to_c(el_val_t op); -el_val_t duration_unit_nanos(el_val_t unit); -el_val_t cg_expr(el_val_t expr); -el_val_t next_match_id(void); -el_val_t cg_match(el_val_t expr); -el_val_t next_if_id(void); -el_val_t cg_if_expr_arm(el_val_t stmts, el_val_t result_var); -el_val_t cg_if_expr(el_val_t expr); -el_val_t list_contains(el_val_t lst, el_val_t s); -el_val_t cg_stmt(el_val_t stmt, el_val_t indent, el_val_t declared); -el_val_t strip_outer_parens(el_val_t s); -el_val_t cg_if_stmt(el_val_t expr, el_val_t indent, el_val_t declared); -el_val_t cg_for_body(el_val_t item, el_val_t list_expr, el_val_t body, el_val_t indent, el_val_t declared); -el_val_t cg_for_stmt(el_val_t expr, el_val_t indent, el_val_t declared); -el_val_t cg_stmts(el_val_t stmts, el_val_t indent, el_val_t declared); -el_val_t param_decl(el_val_t param, el_val_t idx); -el_val_t params_to_c(el_val_t params); -el_val_t transform_implicit_return(el_val_t body); -el_val_t is_int_name(el_val_t name); -el_val_t is_instant_name(el_val_t name); -el_val_t is_duration_name(el_val_t name); -el_val_t is_int_call(el_val_t call_expr); -el_val_t is_instant_call(el_val_t call_expr); -el_val_t is_duration_call(el_val_t call_expr); -el_val_t is_calendar_name(el_val_t name); -el_val_t is_caltime_name(el_val_t name); -el_val_t is_rhythm_name(el_val_t name); -el_val_t is_localdate_name(el_val_t name); -el_val_t is_localtime_name(el_val_t name); -el_val_t is_localdt_name(el_val_t name); -el_val_t is_zone_name(el_val_t name); -el_val_t is_calendar_call(el_val_t call_expr); -el_val_t is_caltime_call(el_val_t call_expr); -el_val_t is_rhythm_call(el_val_t call_expr); -el_val_t is_localdate_call(el_val_t call_expr); -el_val_t is_localtime_call(el_val_t call_expr); -el_val_t is_localdt_call(el_val_t call_expr); -el_val_t is_zone_call(el_val_t call_expr); -el_val_t is_calendar_expr(el_val_t expr); -el_val_t is_caltime_expr(el_val_t expr); -el_val_t is_rhythm_expr(el_val_t expr); -el_val_t is_localdate_expr(el_val_t expr); -el_val_t is_localtime_expr(el_val_t expr); -el_val_t is_localdt_expr(el_val_t expr); -el_val_t is_zone_expr(el_val_t expr); -el_val_t is_instant_expr(el_val_t expr); -el_val_t is_duration_expr(el_val_t expr); -el_val_t time_record_violation(el_val_t kind, el_val_t detail); -el_val_t is_int_expr(el_val_t expr); -el_val_t cap_record_violation(el_val_t kind, el_val_t fn_name); -el_val_t is_self_formation_call(el_val_t fn_name); -el_val_t is_dharma_call(el_val_t fn_name); -el_val_t is_llm_call(el_val_t fn_name); -el_val_t cap_check_call(el_val_t fn_name); -el_val_t emit_cap_violations(void); -el_val_t emit_time_violations(void); -el_val_t builtin_arity(el_val_t name); -el_val_t arity_record_violation(el_val_t fn_name, el_val_t expected, el_val_t actual); -el_val_t arity_check_call(el_val_t fn_name, el_val_t actual); -el_val_t emit_arity_violations(void); -el_val_t add_int_name(el_val_t name); -el_val_t add_instant_name(el_val_t name); -el_val_t add_duration_name(el_val_t name); -el_val_t add_calendar_name(el_val_t name); -el_val_t add_caltime_name(el_val_t name); -el_val_t add_rhythm_name(el_val_t name); -el_val_t add_localdate_name(el_val_t name); -el_val_t add_localtime_name(el_val_t name); -el_val_t add_localdt_name(el_val_t name); -el_val_t add_zone_name(el_val_t name); -el_val_t build_int_names_for_params(el_val_t params); -el_val_t cg_fn(el_val_t stmt); -el_val_t is_fndef(el_val_t stmt); -el_val_t is_top_level_decl(el_val_t stmt); -el_val_t cgi_arg(el_val_t value, el_val_t has_value); -el_val_t vbd_is_restricted_name(el_val_t name); -el_val_t vbd_expr_has_restricted_call(el_val_t expr); -el_val_t vbd_has_restricted_call(el_val_t stmts); -el_val_t codegen(el_val_t stmts, el_val_t source); -el_val_t js_escape(el_val_t s); -el_val_t js_str_lit(el_val_t s); -el_val_t js_emit_line(el_val_t line); -el_val_t js_emit_blank(void); -el_val_t js_binop(el_val_t op); -el_val_t js_is_int_name(el_val_t name); -el_val_t js_add_int_name(el_val_t name); -el_val_t js_build_int_names_for_params(el_val_t params); -el_val_t js_is_int_call(el_val_t call_expr); -el_val_t js_cg_expr(el_val_t expr); -el_val_t js_next_match_id(void); -el_val_t js_cg_match(el_val_t expr); -el_val_t js_list_contains(el_val_t lst, el_val_t s); -el_val_t js_cg_stmt(el_val_t stmt, el_val_t indent, el_val_t declared); -el_val_t js_strip_outer_parens(el_val_t s); -el_val_t js_cg_if_stmt(el_val_t expr, el_val_t indent, el_val_t declared); -el_val_t js_cg_for_body(el_val_t item, el_val_t list_expr, el_val_t body, el_val_t indent, el_val_t declared); -el_val_t js_cg_for_stmt(el_val_t expr, el_val_t indent, el_val_t declared); -el_val_t js_cg_stmts(el_val_t stmts, el_val_t indent, el_val_t declared); -el_val_t js_params_str(el_val_t params); -el_val_t js_transform_implicit_return(el_val_t body); -el_val_t js_cg_fn(el_val_t stmt); -el_val_t js_is_fndef(el_val_t stmt); -el_val_t js_is_top_level_decl(el_val_t stmt); -el_val_t codegen_js(el_val_t stmts, el_val_t source); -el_val_t compile(el_val_t source); -el_val_t compile_js(el_val_t source); -el_val_t compile_dispatch(el_val_t tgt, el_val_t source); -el_val_t detect_target(el_val_t argv); -el_val_t strip_flags(el_val_t argv); -el_val_t detect_emit_header(el_val_t argv); -el_val_t type_node_to_el(el_val_t t); -el_val_t emit_header(el_val_t stmts, el_val_t hdr_path); -el_val_t dirname_of(el_val_t path); -el_val_t parse_import_line(el_val_t trimmed, el_val_t dir); -el_val_t resolve_imports(el_val_t src_path); - -el_val_t lex_is_digit(el_val_t ch) { - if (str_eq(ch, EL_STR("0"))) { - return 1; - } - if (str_eq(ch, EL_STR("1"))) { - return 1; - } - if (str_eq(ch, EL_STR("2"))) { - return 1; - } - if (str_eq(ch, EL_STR("3"))) { - return 1; - } - if (str_eq(ch, EL_STR("4"))) { - return 1; - } - if (str_eq(ch, EL_STR("5"))) { - return 1; - } - if (str_eq(ch, EL_STR("6"))) { - return 1; - } - if (str_eq(ch, EL_STR("7"))) { - return 1; - } - if (str_eq(ch, EL_STR("8"))) { - return 1; - } - if (str_eq(ch, EL_STR("9"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t lex_is_alpha(el_val_t ch) { - if (str_eq(ch, EL_STR("a"))) { - return 1; - } - if (str_eq(ch, EL_STR("b"))) { - return 1; - } - if (str_eq(ch, EL_STR("c"))) { - return 1; - } - if (str_eq(ch, EL_STR("d"))) { - return 1; - } - if (str_eq(ch, EL_STR("e"))) { - return 1; - } - if (str_eq(ch, EL_STR("f"))) { - return 1; - } - if (str_eq(ch, EL_STR("g"))) { - return 1; - } - if (str_eq(ch, EL_STR("h"))) { - return 1; - } - if (str_eq(ch, EL_STR("i"))) { - return 1; - } - if (str_eq(ch, EL_STR("j"))) { - return 1; - } - if (str_eq(ch, EL_STR("k"))) { - return 1; - } - if (str_eq(ch, EL_STR("l"))) { - return 1; - } - if (str_eq(ch, EL_STR("m"))) { - return 1; - } - if (str_eq(ch, EL_STR("n"))) { - return 1; - } - if (str_eq(ch, EL_STR("o"))) { - return 1; - } - if (str_eq(ch, EL_STR("p"))) { - return 1; - } - if (str_eq(ch, EL_STR("q"))) { - return 1; - } - if (str_eq(ch, EL_STR("r"))) { - return 1; - } - if (str_eq(ch, EL_STR("s"))) { - return 1; - } - if (str_eq(ch, EL_STR("t"))) { - return 1; - } - if (str_eq(ch, EL_STR("u"))) { - return 1; - } - if (str_eq(ch, EL_STR("v"))) { - return 1; - } - if (str_eq(ch, EL_STR("w"))) { - return 1; - } - if (str_eq(ch, EL_STR("x"))) { - return 1; - } - if (str_eq(ch, EL_STR("y"))) { - return 1; - } - if (str_eq(ch, EL_STR("z"))) { - return 1; - } - if (str_eq(ch, EL_STR("A"))) { - return 1; - } - if (str_eq(ch, EL_STR("B"))) { - return 1; - } - if (str_eq(ch, EL_STR("C"))) { - return 1; - } - if (str_eq(ch, EL_STR("D"))) { - return 1; - } - if (str_eq(ch, EL_STR("E"))) { - return 1; - } - if (str_eq(ch, EL_STR("F"))) { - return 1; - } - if (str_eq(ch, EL_STR("G"))) { - return 1; - } - if (str_eq(ch, EL_STR("H"))) { - return 1; - } - if (str_eq(ch, EL_STR("I"))) { - return 1; - } - if (str_eq(ch, EL_STR("J"))) { - return 1; - } - if (str_eq(ch, EL_STR("K"))) { - return 1; - } - if (str_eq(ch, EL_STR("L"))) { - return 1; - } - if (str_eq(ch, EL_STR("M"))) { - return 1; - } - if (str_eq(ch, EL_STR("N"))) { - return 1; - } - if (str_eq(ch, EL_STR("O"))) { - return 1; - } - if (str_eq(ch, EL_STR("P"))) { - return 1; - } - if (str_eq(ch, EL_STR("Q"))) { - return 1; - } - if (str_eq(ch, EL_STR("R"))) { - return 1; - } - if (str_eq(ch, EL_STR("S"))) { - return 1; - } - if (str_eq(ch, EL_STR("T"))) { - return 1; - } - if (str_eq(ch, EL_STR("U"))) { - return 1; - } - if (str_eq(ch, EL_STR("V"))) { - return 1; - } - if (str_eq(ch, EL_STR("W"))) { - return 1; - } - if (str_eq(ch, EL_STR("X"))) { - return 1; - } - if (str_eq(ch, EL_STR("Y"))) { - return 1; - } - if (str_eq(ch, EL_STR("Z"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_alnum_or_underscore(el_val_t ch) { - if (lex_is_digit(ch)) { - return 1; - } - if (lex_is_alpha(ch)) { - return 1; - } - if (str_eq(ch, EL_STR("_"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t lex_is_whitespace(el_val_t ch) { - if (str_eq(ch, EL_STR(" "))) { - return 1; - } - if (str_eq(ch, EL_STR("\t"))) { - return 1; - } - if (str_eq(ch, EL_STR("\n"))) { - return 1; - } - if (str_eq(ch, EL_STR("\r"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t make_tok(el_val_t kind, el_val_t value) { - return el_map_new(2, "kind", kind, "value", value); - return 0; -} - -el_val_t keyword_kind(el_val_t word) { - if (str_eq(word, EL_STR("let"))) { - return EL_STR("Let"); - } - if (str_eq(word, EL_STR("fn"))) { - return EL_STR("Fn"); - } - if (str_eq(word, EL_STR("type"))) { - return EL_STR("Type"); - } - if (str_eq(word, EL_STR("enum"))) { - return EL_STR("Enum"); - } - if (str_eq(word, EL_STR("match"))) { - return EL_STR("Match"); - } - if (str_eq(word, EL_STR("return"))) { - return EL_STR("Return"); - } - if (str_eq(word, EL_STR("if"))) { - return EL_STR("If"); - } - if (str_eq(word, EL_STR("else"))) { - return EL_STR("Else"); - } - if (str_eq(word, EL_STR("for"))) { - return EL_STR("For"); - } - if (str_eq(word, EL_STR("in"))) { - return EL_STR("In"); - } - if (str_eq(word, EL_STR("while"))) { - return EL_STR("While"); - } - if (str_eq(word, EL_STR("import"))) { - return EL_STR("Import"); - } - if (str_eq(word, EL_STR("from"))) { - return EL_STR("From"); - } - if (str_eq(word, EL_STR("as"))) { - return EL_STR("As"); - } - if (str_eq(word, EL_STR("with"))) { - return EL_STR("With"); - } - if (str_eq(word, EL_STR("sealed"))) { - return EL_STR("Sealed"); - } - if (str_eq(word, EL_STR("activate"))) { - return EL_STR("Activate"); - } - if (str_eq(word, EL_STR("where"))) { - return EL_STR("Where"); - } - if (str_eq(word, EL_STR("test"))) { - return EL_STR("Test"); - } - if (str_eq(word, EL_STR("seed"))) { - return EL_STR("Seed"); - } - if (str_eq(word, EL_STR("assert"))) { - return EL_STR("Assert"); - } - if (str_eq(word, EL_STR("protocol"))) { - return EL_STR("Protocol"); - } - if (str_eq(word, EL_STR("impl"))) { - return EL_STR("Impl"); - } - if (str_eq(word, EL_STR("retry"))) { - return EL_STR("Retry"); - } - if (str_eq(word, EL_STR("times"))) { - return EL_STR("Times"); - } - if (str_eq(word, EL_STR("fallback"))) { - return EL_STR("Fallback"); - } - if (str_eq(word, EL_STR("reason"))) { - return EL_STR("Reason"); - } - if (str_eq(word, EL_STR("parallel"))) { - return EL_STR("Parallel"); - } - if (str_eq(word, EL_STR("trace"))) { - return EL_STR("Trace"); - } - if (str_eq(word, EL_STR("requires"))) { - return EL_STR("Requires"); - } - if (str_eq(word, EL_STR("deploy"))) { - return EL_STR("Deploy"); - } - if (str_eq(word, EL_STR("to"))) { - return EL_STR("To"); - } - if (str_eq(word, EL_STR("via"))) { - return EL_STR("Via"); - } - if (str_eq(word, EL_STR("target"))) { - return EL_STR("Target"); - } - if (str_eq(word, EL_STR("true"))) { - return EL_STR("Bool"); - } - if (str_eq(word, EL_STR("false"))) { - return EL_STR("Bool"); - } - if (str_eq(word, EL_STR("cgi"))) { - return EL_STR("Cgi"); - } - if (str_eq(word, EL_STR("service"))) { - return EL_STR("Service"); - } - if (str_eq(word, EL_STR("manager"))) { - return EL_STR("Manager"); - } - if (str_eq(word, EL_STR("engine"))) { - return EL_STR("Engine"); - } - if (str_eq(word, EL_STR("accessor"))) { - return EL_STR("Accessor"); - } - if (str_eq(word, EL_STR("vessel"))) { - return EL_STR("Vessel"); - } - if (str_eq(word, EL_STR("extern"))) { - return EL_STR("Extern"); - } - return EL_STR(""); - return 0; -} - -el_val_t scan_digits(el_val_t chars, el_val_t start, el_val_t total) { - el_val_t i = start; - el_val_t parts = native_list_empty(); - el_val_t running = 1; - while (running) { - if (i >= total) { - running = 0; - } else { - el_val_t ch = native_list_get(chars, i); - if (lex_is_digit(ch)) { - parts = native_list_append(parts, ch); - i = (i + 1); - } else { - running = 0; - } - } - } - return el_map_new(2, "text", str_join(parts, EL_STR("")), "pos", i); - return 0; -} - -el_val_t scan_ident(el_val_t chars, el_val_t start, el_val_t total) { - el_val_t i = start; - el_val_t parts = native_list_empty(); - el_val_t running = 1; - while (running) { - if (i >= total) { - running = 0; - } else { - el_val_t ch = native_list_get(chars, i); - if (is_alnum_or_underscore(ch)) { - parts = native_list_append(parts, ch); - i = (i + 1); - } else { - running = 0; - } - } - } - return el_map_new(2, "text", str_join(parts, EL_STR("")), "pos", i); - return 0; -} - -el_val_t substr_at(el_val_t chars, el_val_t start, el_val_t total, el_val_t needle) { - el_val_t nchars = native_string_chars(needle); - el_val_t nlen = native_list_len(nchars); - if ((start + nlen) > total) { - return 0; - } - el_val_t i = 0; - el_val_t matched = 1; - while (i < nlen) { - el_val_t a = native_list_get(chars, (start + i)); - el_val_t b = native_list_get(nchars, i); - if (str_eq(a, b)) { - i = (i + 1); - } else { - matched = 0; - EL_NULL; - i = nlen; - } - } - return matched; - return 0; -} - -el_val_t str_has(el_val_t s, el_val_t needle) { - el_val_t chars = native_string_chars(s); - el_val_t total = native_list_len(chars); - el_val_t i = 0; - el_val_t found = 0; - while (i < total) { - if (substr_at(chars, i, total, needle)) { - found = 1; - i = total; - } else { - i = (i + 1); - } - } - return found; - return 0; -} - -el_val_t looks_like_code(el_val_t s) { - if (str_has(s, EL_STR("= total) { - scanning = 0; - } else { - el_val_t lc = native_list_get(chars, i); - if (str_eq(lc, EL_STR("\n"))) { - scanning = 0; - } else { - i = (i + 1); - } - } - } - prev = EL_STR(""); - } - } else { - if (str_eq(next_ch, EL_STR("*"))) { - i = (i + 2); - el_val_t scanning2 = 1; - while (scanning2) { - if (i >= total) { - scanning2 = 0; - } else { - el_val_t bc = native_list_get(chars, i); - if (str_eq(bc, EL_STR("*"))) { - el_val_t after = (i + 1); - if (after < total) { - el_val_t nc2 = native_list_get(chars, after); - if (str_eq(nc2, EL_STR("/"))) { - i = (after + 1); - scanning2 = 0; - } else { - i = (i + 1); - } - } else { - i = (i + 1); - } - } else { - i = (i + 1); - } - } - } - prev = EL_STR(""); - } else { - out_parts = native_list_append(out_parts, ch); - prev = ch; - i = (i + 1); - } - } - } else { - if (str_eq(ch, EL_STR("'"))) { - in_squote = 1; - out_parts = native_list_append(out_parts, ch); - prev = ch; - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("\""))) { - in_dquote = 1; - out_parts = native_list_append(out_parts, ch); - prev = ch; - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("`"))) { - in_btick = 1; - out_parts = native_list_append(out_parts, ch); - prev = ch; - i = (i + 1); - } else { - out_parts = native_list_append(out_parts, ch); - prev = ch; - i = (i + 1); - } - } - } - } - } - } - return str_join(out_parts, EL_STR("")); - return 0; -} - -el_val_t scan_string(el_val_t chars, el_val_t start, el_val_t total) { - el_val_t i = start; - el_val_t parts = native_list_empty(); - el_val_t running = 1; - while (running) { - if (i >= total) { - running = 0; - } else { - el_val_t ch = native_list_get(chars, i); - if (str_eq(ch, EL_STR("\\"))) { - el_val_t next_i = (i + 1); - if (next_i < total) { - el_val_t next_ch = native_list_get(chars, next_i); - if (str_eq(next_ch, EL_STR("\""))) { - parts = native_list_append(parts, EL_STR("\"")); - i = (next_i + 1); - } else { - if (str_eq(next_ch, EL_STR("n"))) { - parts = native_list_append(parts, EL_STR("\n")); - i = (next_i + 1); - } else { - if (str_eq(next_ch, EL_STR("t"))) { - parts = native_list_append(parts, EL_STR("\t")); - i = (next_i + 1); - } else { - if (str_eq(next_ch, EL_STR("r"))) { - parts = native_list_append(parts, EL_STR("\r")); - i = (next_i + 1); - } else { - if (str_eq(next_ch, EL_STR("\\"))) { - parts = native_list_append(parts, EL_STR("\\")); - i = (next_i + 1); - } else { - parts = native_list_append(parts, next_ch); - i = (next_i + 1); - } - } - } - } - } - } else { - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR("\""))) { - i = (i + 1); - running = 0; - } else { - parts = native_list_append(parts, ch); - i = (i + 1); - } - } - } - } - return el_map_new(2, "text", str_join(parts, EL_STR("")), "pos", i); - return 0; -} - -el_val_t lex(el_val_t source) { - el_val_t chars = native_string_chars(source); - el_val_t total = native_list_len(chars); - el_val_t tokens = native_list_empty(); - el_val_t i = 0; - while (i < total) { - el_val_t ch = native_list_get(chars, i); - if (lex_is_whitespace(ch)) { - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("/"))) { - el_val_t next_i = (i + 1); - if (next_i < total) { - el_val_t next_ch = native_list_get(chars, next_i); - if (str_eq(next_ch, EL_STR("/"))) { - i = (i + 2); - el_val_t running2 = 1; - while (running2) { - if (i >= total) { - running2 = 0; - } else { - el_val_t lch = native_list_get(chars, i); - if (str_eq(lch, EL_STR("\n"))) { - running2 = 0; - } else { - i = (i + 1); - } - } - } - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Slash"), EL_STR("/"))); - i = (i + 1); - } - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Slash"), EL_STR("/"))); - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR("\""))) { - el_val_t result = scan_string(chars, (i + 1), total); - el_val_t str_text = el_get_field(result, EL_STR("text")); - el_val_t new_pos = el_get_field(result, EL_STR("pos")); - el_val_t clean_text = str_text; - if (looks_like_code(str_text)) { - clean_text = strip_code_comments(str_text); - } - tokens = native_list_append(tokens, make_tok(EL_STR("Str"), clean_text)); - i = new_pos; - } else { - if (lex_is_digit(ch)) { - el_val_t result = scan_digits(chars, i, total); - el_val_t num_text = el_get_field(result, EL_STR("text")); - el_val_t new_pos = el_get_field(result, EL_STR("pos")); - if (new_pos < total) { - el_val_t dot_ch = native_list_get(chars, new_pos); - if (str_eq(dot_ch, EL_STR("."))) { - el_val_t after_dot = (new_pos + 1); - if (after_dot < total) { - el_val_t after_dot_ch = native_list_get(chars, after_dot); - if (lex_is_digit(after_dot_ch)) { - el_val_t frac_result = scan_digits(chars, after_dot, total); - el_val_t frac_text = el_get_field(frac_result, EL_STR("text")); - el_val_t frac_pos = el_get_field(frac_result, EL_STR("pos")); - tokens = native_list_append(tokens, make_tok(EL_STR("Float"), el_str_concat(el_str_concat(num_text, EL_STR(".")), frac_text))); - i = frac_pos; - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Int"), num_text)); - i = new_pos; - } - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Int"), num_text)); - i = new_pos; - } - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Int"), num_text)); - i = new_pos; - } - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Int"), num_text)); - i = new_pos; - } - } else { - if (lex_is_alpha(ch) || str_eq(ch, EL_STR("_"))) { - el_val_t result = scan_ident(chars, i, total); - el_val_t word = el_get_field(result, EL_STR("text")); - el_val_t new_pos = el_get_field(result, EL_STR("pos")); - el_val_t kw = keyword_kind(word); - if (str_eq(kw, EL_STR(""))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Ident"), word)); - } else { - tokens = native_list_append(tokens, make_tok(kw, word)); - } - i = new_pos; - } else { - el_val_t peek_i = (i + 1); - el_val_t peek_ch = EL_STR(""); - if (peek_i < total) { - peek_ch = native_list_get(chars, peek_i); - } - if (str_eq(ch, EL_STR("="))) { - if (str_eq(peek_ch, EL_STR("="))) { - tokens = native_list_append(tokens, make_tok(EL_STR("EqEq"), EL_STR("=="))); - i = (i + 2); - } else { - if (str_eq(peek_ch, EL_STR(">"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("FatArrow"), EL_STR("=>"))); - i = (i + 2); - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Eq"), EL_STR("="))); - i = (i + 1); - } - } - } else { - if (str_eq(ch, EL_STR("!"))) { - if (str_eq(peek_ch, EL_STR("="))) { - tokens = native_list_append(tokens, make_tok(EL_STR("NotEq"), EL_STR("!="))); - i = (i + 2); - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Not"), EL_STR("!"))); - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR("<"))) { - if (str_eq(peek_ch, EL_STR("="))) { - tokens = native_list_append(tokens, make_tok(EL_STR("LtEq"), EL_STR("<="))); - i = (i + 2); - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Lt"), EL_STR("<"))); - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR(">"))) { - if (str_eq(peek_ch, EL_STR("="))) { - tokens = native_list_append(tokens, make_tok(EL_STR("GtEq"), EL_STR(">="))); - i = (i + 2); - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Gt"), EL_STR(">"))); - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR("&"))) { - if (str_eq(peek_ch, EL_STR("&"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("And"), EL_STR("&&"))); - i = (i + 2); - } else { - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR("|"))) { - if (str_eq(peek_ch, EL_STR("|"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Or"), EL_STR("||"))); - i = (i + 2); - } else { - if (str_eq(peek_ch, EL_STR(">"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("PipeOp"), EL_STR("|>"))); - i = (i + 2); - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Pipe"), EL_STR("|"))); - i = (i + 1); - } - } - } else { - if (str_eq(ch, EL_STR("-"))) { - if (str_eq(peek_ch, EL_STR(">"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Arrow"), EL_STR("->"))); - i = (i + 2); - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Minus"), EL_STR("-"))); - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR(":"))) { - if (str_eq(peek_ch, EL_STR(":"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("ColonColon"), EL_STR("::"))); - i = (i + 2); - } else { - tokens = native_list_append(tokens, make_tok(EL_STR("Colon"), EL_STR(":"))); - i = (i + 1); - } - } else { - if (str_eq(ch, EL_STR("+"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Plus"), EL_STR("+"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("*"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Star"), EL_STR("*"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("%"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Percent"), EL_STR("%"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("("))) { - tokens = native_list_append(tokens, make_tok(EL_STR("LParen"), EL_STR("("))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR(")"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("RParen"), EL_STR(")"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("{"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("LBrace"), EL_STR("{"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("}"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("RBrace"), EL_STR("}"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("["))) { - tokens = native_list_append(tokens, make_tok(EL_STR("LBracket"), EL_STR("["))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("]"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("RBracket"), EL_STR("]"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR(","))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Comma"), EL_STR(","))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("."))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Dot"), EL_STR("."))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR(";"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("Semicolon"), EL_STR(";"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("@"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("At"), EL_STR("@"))); - i = (i + 1); - } else { - if (str_eq(ch, EL_STR("?"))) { - tokens = native_list_append(tokens, make_tok(EL_STR("QuestionMark"), EL_STR("?"))); - i = (i + 1); - } else { - i = (i + 1); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - tokens = native_list_append(tokens, make_tok(EL_STR("Eof"), EL_STR(""))); - return tokens; - return 0; -} - -el_val_t tok_at(el_val_t tokens, el_val_t pos) { - return native_list_get(tokens, pos); - return 0; -} - -el_val_t tok_kind(el_val_t tokens, el_val_t pos) { - el_val_t t = native_list_get(tokens, pos); - return el_get_field(t, EL_STR("kind")); - return 0; -} - -el_val_t tok_value(el_val_t tokens, el_val_t pos) { - el_val_t t = native_list_get(tokens, pos); - return el_get_field(t, EL_STR("value")); - return 0; -} - -el_val_t expect(el_val_t tokens, el_val_t pos, el_val_t kind) { - el_val_t k = tok_kind(tokens, pos); - if (str_eq(k, kind)) { - return (pos + 1); - } - return (pos + 1); - return 0; -} - -el_val_t make_result(el_val_t node, el_val_t pos) { - return el_map_new(2, "node", node, "pos", pos); - return 0; -} - -el_val_t skip_type(el_val_t tokens, el_val_t pos) { - el_val_t k = tok_kind(tokens, pos); - if (str_eq(k, EL_STR("LBracket"))) { - el_val_t p = (pos + 1); - p = skip_type(tokens, p); - p = expect(tokens, p, EL_STR("RBracket")); - return p; - } - if (str_eq(k, EL_STR("Ident"))) { - el_val_t p = (pos + 1); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Lt"))) { - p = (p + 1); - el_val_t depth = 1; - el_val_t running = 1; - while (running) { - el_val_t kk = tok_kind(tokens, p); - if (str_eq(kk, EL_STR("Eof"))) { - running = 0; - } else { - if (str_eq(kk, EL_STR("Lt"))) { - depth = (depth + 1); - p = (p + 1); - } else { - if (str_eq(kk, EL_STR("Gt"))) { - depth = (depth - 1); - p = (p + 1); - if (depth <= 0) { - running = 0; - } - } else { - p = (p + 1); - } - } - } - } - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("QuestionMark"))) { - p = (p + 1); - } - return p; - } - if (str_eq(k2, EL_STR("QuestionMark"))) { - return (p + 1); - } - return p; - } - return (pos + 1); - return 0; -} - -el_val_t parse_params(el_val_t tokens, el_val_t pos) { - el_val_t p = expect(tokens, pos, EL_STR("LParen")); - el_val_t params = native_list_empty(); - el_val_t running = 1; - while (running) { - el_val_t k = tok_kind(tokens, p); - if (str_eq(k, EL_STR("RParen"))) { - running = 0; - } else { - if (str_eq(k, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t pname = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("Colon")); - el_val_t ptype = EL_STR(""); - el_val_t kt = tok_kind(tokens, p); - if (str_eq(kt, EL_STR("Ident"))) { - ptype = tok_value(tokens, p); - } - p = skip_type(tokens, p); - el_val_t param = el_map_new(2, "name", pname, "type", ptype); - params = native_list_append(params, param); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RParen")); - return el_map_new(2, "params", params, "pos", p); - return 0; -} - -el_val_t parse_primary(el_val_t tokens, el_val_t pos) { - el_val_t k = tok_kind(tokens, pos); - el_val_t v = tok_value(tokens, pos); - if (str_eq(k, EL_STR("Int"))) { - return make_result(el_map_new(2, "expr", EL_STR("Int"), "value", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Float"))) { - return make_result(el_map_new(2, "expr", EL_STR("Float"), "value", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Str"))) { - return make_result(el_map_new(2, "expr", EL_STR("Str"), "value", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Bool"))) { - return make_result(el_map_new(2, "expr", EL_STR("Bool"), "value", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Ident"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("LParen"))) { - el_val_t r = parse_expr(tokens, (pos + 1)); - el_val_t node = el_get_field(r, EL_STR("node")); - el_val_t p = el_get_field(r, EL_STR("pos")); - p = expect(tokens, p, EL_STR("RParen")); - return make_result(node, p); - } - if (str_eq(k, EL_STR("LBracket"))) { - el_val_t p = (pos + 1); - el_val_t elems = native_list_empty(); - el_val_t running = 1; - while (running) { - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RBracket"))) { - running = 0; - } else { - if (str_eq(k2, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t r = parse_expr(tokens, p); - el_val_t elem = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - elems = native_list_append(elems, elem); - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RBracket")); - return make_result(el_map_new(2, "expr", EL_STR("Array"), "elems", elems), p); - } - if (str_eq(k, EL_STR("LBrace"))) { - el_val_t no_block = state_get(EL_STR("__no_block_expr")); - if (str_eq(no_block, EL_STR("1"))) { - return make_result(el_map_new(1, "expr", EL_STR("Nil")), pos); - } - el_val_t p = (pos + 1); - el_val_t pairs = native_list_empty(); - el_val_t running = 1; - while (running) { - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k2, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t key = tok_value(tokens, p); - el_val_t new_p = (p + 1); - new_p = expect(tokens, new_p, EL_STR("Colon")); - el_val_t r = parse_expr(tokens, new_p); - el_val_t val_node = el_get_field(r, EL_STR("node")); - new_p = el_get_field(r, EL_STR("pos")); - el_val_t pair = el_map_new(2, "key", key, "value", val_node); - pairs = native_list_append(pairs, pair); - el_val_t k3 = tok_kind(tokens, new_p); - if (str_eq(k3, EL_STR("Comma"))) { - new_p = (new_p + 1); - } - if (new_p <= p) { - p = (p + 1); - } else { - p = new_p; - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - return make_result(el_map_new(2, "expr", EL_STR("Map"), "pairs", pairs), p); - } - if (str_eq(k, EL_STR("If"))) { - el_val_t r = parse_if(tokens, pos); - return r; - } - if (str_eq(k, EL_STR("Match"))) { - el_val_t r = parse_match(tokens, pos); - return r; - } - if (str_eq(k, EL_STR("For"))) { - el_val_t r = parse_for_expr(tokens, pos); - return r; - } - if (str_eq(k, EL_STR("Not"))) { - el_val_t r = parse_primary(tokens, (pos + 1)); - el_val_t inner = el_get_field(r, EL_STR("node")); - el_val_t p = el_get_field(r, EL_STR("pos")); - return make_result(el_map_new(2, "expr", EL_STR("Not"), "inner", inner), p); - } - if (str_eq(k, EL_STR("Minus"))) { - el_val_t r = parse_primary(tokens, (pos + 1)); - el_val_t inner = el_get_field(r, EL_STR("node")); - el_val_t p = el_get_field(r, EL_STR("pos")); - return make_result(el_map_new(2, "expr", EL_STR("Neg"), "inner", inner), p); - } - if (str_eq(k, EL_STR("Target"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("To"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Via"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Deploy"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Reason"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Times"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Fallback"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Retry"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Parallel"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Trace"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Requires"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Where"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("As"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("With"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Manager"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Engine"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Accessor"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Vessel"))) { - return make_result(el_map_new(2, "expr", EL_STR("Ident"), "name", v), (pos + 1)); - } - return make_result(el_map_new(1, "expr", EL_STR("Nil")), (pos + 1)); - return 0; -} - -el_val_t parse_if(el_val_t tokens, el_val_t pos) { - el_val_t p = expect(tokens, pos, EL_STR("If")); - el_val_t prev_no_block = state_get(EL_STR("__no_block_expr")); - state_set(EL_STR("__no_block_expr"), EL_STR("1")); - el_val_t r = parse_expr(tokens, p); - state_set(EL_STR("__no_block_expr"), prev_no_block); - el_val_t cond = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - el_val_t r2 = parse_block(tokens, p); - el_val_t then_stmts = el_get_field(r2, EL_STR("stmts")); - p = el_get_field(r2, EL_STR("pos")); - el_val_t has_else = 0; - el_val_t else_stmts = native_list_empty(); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Else"))) { - p = (p + 1); - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("If"))) { - el_val_t r3 = parse_if(tokens, p); - el_val_t nested = el_get_field(r3, EL_STR("node")); - p = el_get_field(r3, EL_STR("pos")); - else_stmts = native_list_append(else_stmts, el_map_new(2, "stmt", EL_STR("Expr"), "value", nested)); - has_else = 1; - } else { - el_val_t r3 = parse_block(tokens, p); - else_stmts = el_get_field(r3, EL_STR("stmts")); - p = el_get_field(r3, EL_STR("pos")); - has_else = 1; - } - } - return make_result(el_map_new(5, "expr", EL_STR("If"), "cond", cond, "then", then_stmts, "else", else_stmts, "has_else", has_else), p); - return 0; -} - -el_val_t parse_match(el_val_t tokens, el_val_t pos) { - el_val_t p = expect(tokens, pos, EL_STR("Match")); - el_val_t prev_no_block = state_get(EL_STR("__no_block_expr")); - state_set(EL_STR("__no_block_expr"), EL_STR("1")); - el_val_t r = parse_expr(tokens, p); - state_set(EL_STR("__no_block_expr"), prev_no_block); - el_val_t subject = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - p = expect(tokens, p, EL_STR("LBrace")); - el_val_t arms = native_list_empty(); - el_val_t running = 1; - while (running) { - el_val_t k = tok_kind(tokens, p); - if (str_eq(k, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t r2 = parse_pattern(tokens, p); - el_val_t pattern = el_get_field(r2, EL_STR("node")); - p = el_get_field(r2, EL_STR("pos")); - p = expect(tokens, p, EL_STR("FatArrow")); - el_val_t r3 = parse_expr(tokens, p); - el_val_t body = el_get_field(r3, EL_STR("node")); - p = el_get_field(r3, EL_STR("pos")); - el_val_t arm = el_map_new(2, "pattern", pattern, "body", body); - arms = native_list_append(arms, arm); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - return make_result(el_map_new(3, "expr", EL_STR("Match"), "subject", subject, "arms", arms), p); - return 0; -} - -el_val_t parse_pattern(el_val_t tokens, el_val_t pos) { - el_val_t k = tok_kind(tokens, pos); - if (str_eq(k, EL_STR("Ident"))) { - el_val_t v = tok_value(tokens, pos); - if (str_eq(v, EL_STR("_"))) { - return make_result(el_map_new(1, "pattern", EL_STR("Wildcard")), (pos + 1)); - } - return make_result(el_map_new(2, "pattern", EL_STR("Binding"), "name", v), (pos + 1)); - } - if (str_eq(k, EL_STR("Int"))) { - return make_result(el_map_new(2, "pattern", EL_STR("LitInt"), "value", tok_value(tokens, pos)), (pos + 1)); - } - if (str_eq(k, EL_STR("Str"))) { - return make_result(el_map_new(2, "pattern", EL_STR("LitStr"), "value", tok_value(tokens, pos)), (pos + 1)); - } - if (str_eq(k, EL_STR("Bool"))) { - return make_result(el_map_new(2, "pattern", EL_STR("LitBool"), "value", tok_value(tokens, pos)), (pos + 1)); - } - return make_result(el_map_new(1, "pattern", EL_STR("Wildcard")), (pos + 1)); - return 0; -} - -el_val_t parse_for_expr(el_val_t tokens, el_val_t pos) { - el_val_t p = expect(tokens, pos, EL_STR("For")); - el_val_t item_name = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("In")); - el_val_t prev_no_block = state_get(EL_STR("__no_block_expr")); - state_set(EL_STR("__no_block_expr"), EL_STR("1")); - el_val_t r = parse_expr(tokens, p); - state_set(EL_STR("__no_block_expr"), prev_no_block); - el_val_t list_expr = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - el_val_t r2 = parse_block(tokens, p); - el_val_t body = el_get_field(r2, EL_STR("stmts")); - p = el_get_field(r2, EL_STR("pos")); - return make_result(el_map_new(4, "expr", EL_STR("For"), "item", item_name, "list", list_expr, "body", body), p); - return 0; -} - -el_val_t parse_block(el_val_t tokens, el_val_t pos) { - el_val_t p = expect(tokens, pos, EL_STR("LBrace")); - el_val_t stmts = native_list_empty(); - el_val_t running = 1; - while (running) { - el_val_t k = tok_kind(tokens, p); - if (str_eq(k, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t r = parse_stmt(tokens, p); - el_val_t stmt = el_get_field(r, EL_STR("node")); - el_val_t new_p = el_get_field(r, EL_STR("pos")); - stmts = native_list_append(stmts, stmt); - if (new_p <= p) { - p = (p + 1); - } else { - p = new_p; - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - return el_map_new(2, "stmts", stmts, "pos", p); - return 0; -} - -el_val_t is_duration_unit(el_val_t name) { - if (str_eq(name, EL_STR("nanos"))) { - return 1; - } - if (str_eq(name, EL_STR("nano"))) { - return 1; - } - if (str_eq(name, EL_STR("millis"))) { - return 1; - } - if (str_eq(name, EL_STR("milli"))) { - return 1; - } - if (str_eq(name, EL_STR("millisecond"))) { - return 1; - } - if (str_eq(name, EL_STR("milliseconds"))) { - return 1; - } - if (str_eq(name, EL_STR("second"))) { - return 1; - } - if (str_eq(name, EL_STR("seconds"))) { - return 1; - } - if (str_eq(name, EL_STR("minute"))) { - return 1; - } - if (str_eq(name, EL_STR("minutes"))) { - return 1; - } - if (str_eq(name, EL_STR("hour"))) { - return 1; - } - if (str_eq(name, EL_STR("hours"))) { - return 1; - } - if (str_eq(name, EL_STR("day"))) { - return 1; - } - if (str_eq(name, EL_STR("days"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t parse_postfix(el_val_t tokens, el_val_t pos) { - el_val_t r = parse_primary(tokens, pos); - el_val_t node = el_get_field(r, EL_STR("node")); - el_val_t p = el_get_field(r, EL_STR("pos")); - el_val_t primary_kind = el_get_field(node, EL_STR("expr")); - if (str_eq(primary_kind, EL_STR("Int"))) { - el_val_t dot_kind = tok_kind(tokens, p); - if (str_eq(dot_kind, EL_STR("Dot"))) { - el_val_t unit_kind = tok_kind(tokens, (p + 1)); - if (str_eq(unit_kind, EL_STR("Ident"))) { - el_val_t unit_name = tok_value(tokens, (p + 1)); - if (is_duration_unit(unit_name)) { - el_val_t count_str = el_get_field(node, EL_STR("value")); - node = el_map_new(3, "expr", EL_STR("DurationLit"), "count", count_str, "unit", unit_name); - p = (p + 2); - } - } - } - } - el_val_t running = 1; - while (running) { - el_val_t k = tok_kind(tokens, p); - if (str_eq(k, EL_STR("LParen"))) { - p = (p + 1); - el_val_t args = native_list_empty(); - el_val_t run2 = 1; - while (run2) { - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RParen"))) { - run2 = 0; - } else { - if (str_eq(k2, EL_STR("Eof"))) { - run2 = 0; - } else { - el_val_t r2 = parse_expr(tokens, p); - el_val_t arg = el_get_field(r2, EL_STR("node")); - p = el_get_field(r2, EL_STR("pos")); - args = native_list_append(args, arg); - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RParen")); - node = el_map_new(3, "expr", EL_STR("Call"), "func", node, "args", args); - } else { - if (str_eq(k, EL_STR("Dot"))) { - el_val_t field = tok_value(tokens, (p + 1)); - p = (p + 2); - node = el_map_new(3, "expr", EL_STR("Field"), "object", node, "field", field); - } else { - if (str_eq(k, EL_STR("LBracket"))) { - el_val_t r2 = parse_expr(tokens, (p + 1)); - el_val_t idx = el_get_field(r2, EL_STR("node")); - p = el_get_field(r2, EL_STR("pos")); - p = expect(tokens, p, EL_STR("RBracket")); - node = el_map_new(3, "expr", EL_STR("Index"), "object", node, "index", idx); - } else { - if (str_eq(k, EL_STR("QuestionMark"))) { - p = (p + 1); - node = el_map_new(2, "expr", EL_STR("Try"), "inner", node); - } else { - running = 0; - } - } - } - } - } - return make_result(node, p); - return 0; -} - -el_val_t op_precedence(el_val_t kind) { - if (str_eq(kind, EL_STR("Or"))) { - return 1; - } - if (str_eq(kind, EL_STR("And"))) { - return 2; - } - if (str_eq(kind, EL_STR("EqEq"))) { - return 3; - } - if (str_eq(kind, EL_STR("NotEq"))) { - return 3; - } - if (str_eq(kind, EL_STR("Lt"))) { - return 4; - } - if (str_eq(kind, EL_STR("Gt"))) { - return 4; - } - if (str_eq(kind, EL_STR("LtEq"))) { - return 4; - } - if (str_eq(kind, EL_STR("GtEq"))) { - return 4; - } - if (str_eq(kind, EL_STR("Plus"))) { - return 5; - } - if (str_eq(kind, EL_STR("Minus"))) { - return 5; - } - if (str_eq(kind, EL_STR("Star"))) { - return 6; - } - if (str_eq(kind, EL_STR("Slash"))) { - return 6; - } - return 0; - return 0; -} - -el_val_t is_binop(el_val_t kind) { - if (str_eq(kind, EL_STR("Or"))) { - return 1; - } - if (str_eq(kind, EL_STR("And"))) { - return 1; - } - if (str_eq(kind, EL_STR("EqEq"))) { - return 1; - } - if (str_eq(kind, EL_STR("NotEq"))) { - return 1; - } - if (str_eq(kind, EL_STR("Lt"))) { - return 1; - } - if (str_eq(kind, EL_STR("Gt"))) { - return 1; - } - if (str_eq(kind, EL_STR("LtEq"))) { - return 1; - } - if (str_eq(kind, EL_STR("GtEq"))) { - return 1; - } - if (str_eq(kind, EL_STR("Plus"))) { - return 1; - } - if (str_eq(kind, EL_STR("Minus"))) { - return 1; - } - if (str_eq(kind, EL_STR("Star"))) { - return 1; - } - if (str_eq(kind, EL_STR("Slash"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t parse_binop(el_val_t tokens, el_val_t pos, el_val_t min_prec) { - el_val_t r = parse_postfix(tokens, pos); - el_val_t left = el_get_field(r, EL_STR("node")); - el_val_t p = el_get_field(r, EL_STR("pos")); - el_val_t running = 1; - while (running) { - el_val_t k = tok_kind(tokens, p); - el_val_t prec = op_precedence(k); - if (is_binop(k)) { - if (prec >= min_prec) { - el_val_t op = k; - el_val_t r2 = parse_binop(tokens, (p + 1), (prec + 1)); - el_val_t right = el_get_field(r2, EL_STR("node")); - p = el_get_field(r2, EL_STR("pos")); - left = el_map_new(4, "expr", EL_STR("BinOp"), "op", op, "left", left, "right", right); - } else { - running = 0; - } - } else { - running = 0; - } - } - return make_result(left, p); - return 0; -} - -el_val_t parse_expr(el_val_t tokens, el_val_t pos) { - return parse_binop(tokens, pos, 1); - return 0; -} - -el_val_t parse_stmt(el_val_t tokens, el_val_t pos) { - el_val_t k = tok_kind(tokens, pos); - if (str_eq(k, EL_STR("Let"))) { - el_val_t p = (pos + 1); - el_val_t name = tok_value(tokens, p); - p = (p + 1); - el_val_t ltype = EL_STR(""); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Colon"))) { - p = (p + 1); - el_val_t kt = tok_kind(tokens, p); - if (str_eq(kt, EL_STR("Ident"))) { - ltype = tok_value(tokens, p); - } - p = skip_type(tokens, p); - } - p = expect(tokens, p, EL_STR("Eq")); - el_val_t r = parse_expr(tokens, p); - el_val_t val = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - return make_result(el_map_new(4, "stmt", EL_STR("Let"), "name", name, "value", val, "type", ltype), p); - } - if (str_eq(k, EL_STR("Return"))) { - el_val_t p = (pos + 1); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RBrace"))) { - return make_result(el_map_new(2, "stmt", EL_STR("Return"), "value", el_map_new(1, "expr", EL_STR("Nil"))), p); - } - if (str_eq(k2, EL_STR("Eof"))) { - return make_result(el_map_new(2, "stmt", EL_STR("Return"), "value", el_map_new(1, "expr", EL_STR("Nil"))), p); - } - el_val_t r = parse_expr(tokens, p); - el_val_t val = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - return make_result(el_map_new(2, "stmt", EL_STR("Return"), "value", val), p); - } - if (str_eq(k, EL_STR("Extern"))) { - el_val_t p = (pos + 1); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Fn"))) { - p = (p + 1); - el_val_t name = tok_value(tokens, p); - p = (p + 1); - el_val_t r = parse_params(tokens, p); - el_val_t params = el_get_field(r, EL_STR("params")); - p = el_get_field(r, EL_STR("pos")); - el_val_t ret_type = EL_STR(""); - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("Arrow"))) { - p = (p + 1); - el_val_t kt = tok_kind(tokens, p); - if (str_eq(kt, EL_STR("Ident"))) { - ret_type = tok_value(tokens, p); - } - p = skip_type(tokens, p); - } - return make_result(el_map_new(4, "stmt", EL_STR("ExternFn"), "name", name, "params", params, "ret_type", ret_type), p); - } - } - if (str_eq(k, EL_STR("Fn"))) { - el_val_t p = (pos + 1); - el_val_t name = tok_value(tokens, p); - p = (p + 1); - el_val_t r = parse_params(tokens, p); - el_val_t params = el_get_field(r, EL_STR("params")); - p = el_get_field(r, EL_STR("pos")); - el_val_t ret_type = EL_STR(""); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Arrow"))) { - p = (p + 1); - el_val_t kt = tok_kind(tokens, p); - if (str_eq(kt, EL_STR("Ident"))) { - ret_type = tok_value(tokens, p); - } - p = skip_type(tokens, p); - } - el_val_t r2 = parse_block(tokens, p); - el_val_t body = el_get_field(r2, EL_STR("stmts")); - p = el_get_field(r2, EL_STR("pos")); - return make_result(el_map_new(5, "stmt", EL_STR("FnDef"), "name", name, "params", params, "body", body, "ret_type", ret_type), p); - } - if (str_eq(k, EL_STR("Type"))) { - el_val_t p = (pos + 1); - el_val_t name = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("LBrace")); - el_val_t fields = native_list_empty(); - el_val_t running = 1; - while (running) { - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k2, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t fname = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("Colon")); - p = skip_type(tokens, p); - fields = native_list_append(fields, el_map_new(1, "name", fname)); - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - return make_result(el_map_new(3, "stmt", EL_STR("TypeDef"), "name", name, "fields", fields), p); - } - if (str_eq(k, EL_STR("Enum"))) { - el_val_t p = (pos + 1); - el_val_t name = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("LBrace")); - el_val_t variants = native_list_empty(); - el_val_t running = 1; - while (running) { - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k2, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t vname = tok_value(tokens, p); - p = (p + 1); - variants = native_list_append(variants, el_map_new(1, "name", vname)); - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - return make_result(el_map_new(3, "stmt", EL_STR("EnumDef"), "name", name, "variants", variants), p); - } - if (str_eq(k, EL_STR("Import"))) { - el_val_t p = (pos + 1); - el_val_t path = tok_value(tokens, p); - p = (p + 1); - return make_result(el_map_new(2, "stmt", EL_STR("Import"), "path", path), p); - } - if (str_eq(k, EL_STR("From"))) { - el_val_t p = (pos + 1); - el_val_t module_name = tok_value(tokens, p); - p = (p + 1); - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("Import"))) { - p = (p + 1); - } - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("LBrace"))) { - p = (p + 1); - el_val_t running = 1; - while (running) { - el_val_t k4 = tok_kind(tokens, p); - if (str_eq(k4, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k4, EL_STR("Eof"))) { - running = 0; - } else { - p = (p + 1); - el_val_t k5 = tok_kind(tokens, p); - if (str_eq(k5, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - } - return make_result(el_map_new(2, "stmt", EL_STR("Import"), "path", module_name), p); - } - if (str_eq(k, EL_STR("While"))) { - el_val_t p = (pos + 1); - el_val_t prev_no_block = state_get(EL_STR("__no_block_expr")); - state_set(EL_STR("__no_block_expr"), EL_STR("1")); - el_val_t r = parse_expr(tokens, p); - state_set(EL_STR("__no_block_expr"), prev_no_block); - el_val_t cond = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - el_val_t r2 = parse_block(tokens, p); - el_val_t body = el_get_field(r2, EL_STR("stmts")); - p = el_get_field(r2, EL_STR("pos")); - return make_result(el_map_new(3, "stmt", EL_STR("While"), "cond", cond, "body", body), p); - } - if (str_eq(k, EL_STR("For"))) { - el_val_t p = (pos + 1); - el_val_t item_name = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("In")); - el_val_t prev_no_block = state_get(EL_STR("__no_block_expr")); - state_set(EL_STR("__no_block_expr"), EL_STR("1")); - el_val_t r = parse_expr(tokens, p); - state_set(EL_STR("__no_block_expr"), prev_no_block); - el_val_t list_expr = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - el_val_t r2 = parse_block(tokens, p); - el_val_t body = el_get_field(r2, EL_STR("stmts")); - p = el_get_field(r2, EL_STR("pos")); - return make_result(el_map_new(4, "stmt", EL_STR("For"), "item", item_name, "list", list_expr, "body", body), p); - } - if (str_eq(k, EL_STR("At"))) { - el_val_t p = (pos + 1); - el_val_t dec_name = tok_value(tokens, p); - p = (p + 1); - el_val_t r = parse_stmt(tokens, p); - el_val_t inner = el_get_field(r, EL_STR("node")); - el_val_t p2 = el_get_field(r, EL_STR("pos")); - el_val_t inner_kind = el_get_field(inner, EL_STR("stmt")); - if (str_eq(inner_kind, EL_STR("FnDef"))) { - el_val_t with_dec = el_map_new(6, "stmt", EL_STR("FnDef"), "name", el_get_field(inner, EL_STR("name")), "params", el_get_field(inner, EL_STR("params")), "body", el_get_field(inner, EL_STR("body")), "ret_type", el_get_field(inner, EL_STR("ret_type")), "decorator", dec_name); - return make_result(with_dec, p2); - } - return r; - } - if (str_eq(k, EL_STR("Cgi"))) { - el_val_t p = (pos + 1); - el_val_t name = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("LBrace")); - el_val_t dharma_id = EL_STR(""); - el_val_t principal = EL_STR(""); - el_val_t network = EL_STR(""); - el_val_t engram = EL_STR(""); - el_val_t has_dharma_id = 0; - el_val_t has_principal = 0; - el_val_t has_network = 0; - el_val_t has_engram = 0; - el_val_t running = 1; - while (running) { - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k2, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t fname = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("Colon")); - el_val_t fval = tok_value(tokens, p); - p = (p + 1); - if (str_eq(fname, EL_STR("dharma_id"))) { - dharma_id = fval; - has_dharma_id = 1; - } - if (str_eq(fname, EL_STR("principal"))) { - principal = fval; - has_principal = 1; - } - if (str_eq(fname, EL_STR("network"))) { - network = fval; - has_network = 1; - } - if (str_eq(fname, EL_STR("engram"))) { - engram = fval; - has_engram = 1; - } - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - return make_result(el_map_new(10, "stmt", EL_STR("CgiBlock"), "name", name, "dharma_id", dharma_id, "principal", principal, "network", network, "engram", engram, "has_dharma_id", has_dharma_id, "has_principal", has_principal, "has_network", has_network, "has_engram", has_engram), p); - } - if (str_eq(k, EL_STR("Service"))) { - el_val_t p = (pos + 1); - el_val_t name = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("LBrace")); - el_val_t sponsor = EL_STR(""); - el_val_t domain = EL_STR(""); - el_val_t running = 1; - while (running) { - el_val_t k2 = tok_kind(tokens, p); - if (str_eq(k2, EL_STR("RBrace"))) { - running = 0; - } else { - if (str_eq(k2, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t fname = tok_value(tokens, p); - p = (p + 1); - p = expect(tokens, p, EL_STR("Colon")); - el_val_t fval = tok_value(tokens, p); - p = (p + 1); - if (str_eq(fname, EL_STR("sponsor"))) { - sponsor = fval; - } - if (str_eq(fname, EL_STR("domain"))) { - domain = fval; - } - el_val_t k3 = tok_kind(tokens, p); - if (str_eq(k3, EL_STR("Comma"))) { - p = (p + 1); - } - } - } - } - p = expect(tokens, p, EL_STR("RBrace")); - return make_result(el_map_new(4, "stmt", EL_STR("ServiceBlock"), "name", name, "sponsor", sponsor, "domain", domain), p); - } - if (str_eq(k, EL_STR("Ident"))) { - el_val_t k2 = tok_kind(tokens, (pos + 1)); - if (str_eq(k2, EL_STR("Eq"))) { - el_val_t name = tok_value(tokens, pos); - el_val_t p = (pos + 2); - el_val_t r = parse_expr(tokens, p); - el_val_t val = el_get_field(r, EL_STR("node")); - p = el_get_field(r, EL_STR("pos")); - return make_result(el_map_new(3, "stmt", EL_STR("Assign"), "name", name, "value", val), p); - } - } - el_val_t r = parse_expr(tokens, pos); - el_val_t val = el_get_field(r, EL_STR("node")); - el_val_t p = el_get_field(r, EL_STR("pos")); - return make_result(el_map_new(2, "stmt", EL_STR("Expr"), "value", val), p); - return 0; -} - -el_val_t parse(el_val_t tokens) { - el_val_t total = native_list_len(tokens); - el_val_t stmts = native_list_empty(); - el_val_t pos = 0; - el_val_t running = 1; - while (running) { - if (pos >= total) { - running = 0; - } else { - el_val_t k = tok_kind(tokens, pos); - if (str_eq(k, EL_STR("Eof"))) { - running = 0; - } else { - el_val_t r = parse_stmt(tokens, pos); - el_val_t stmt = el_get_field(r, EL_STR("node")); - el_val_t new_pos = el_get_field(r, EL_STR("pos")); - stmts = native_list_append(stmts, stmt); - if (new_pos <= pos) { - pos = (pos + 1); - } else { - pos = new_pos; - } - } - } - } - return stmts; - return 0; -} - -el_val_t nibble_to_hex(el_val_t n) { - return str_char_at(EL_STR("0123456789abcdef"), n); - return 0; -} - -el_val_t byte_to_hex2(el_val_t b) { - el_val_t hi = (b / 16); - el_val_t lo = (b - (hi * 16)); - return el_str_concat(nibble_to_hex(hi), nibble_to_hex(lo)); - return 0; -} - -el_val_t is_hex_digit_byte(el_val_t b) { - if (b >= 48) { - if (b <= 57) { - return 1; - } - } - if (b >= 65) { - if (b <= 70) { - return 1; - } - } - if (b >= 97) { - if (b <= 102) { - return 1; - } - } - return 0; - return 0; -} - -el_val_t c_escape(el_val_t s) { - el_val_t total = str_len(s); - el_val_t parts = native_list_empty(); - el_val_t i = 0; - el_val_t prev_was_hex_escape = 0; - while (i < total) { - el_val_t bval = str_char_code(s, i); - if (prev_was_hex_escape) { - if (is_hex_digit_byte(bval)) { - parts = native_list_append(parts, EL_STR("\"\"")); - } - } - prev_was_hex_escape = 0; - if (bval == 34) { - parts = native_list_append(parts, EL_STR("\\\"")); - } else { - if (bval == 92) { - parts = native_list_append(parts, EL_STR("\\\\")); - } else { - if (bval == 10) { - parts = native_list_append(parts, EL_STR("\\n")); - } else { - if (bval == 13) { - parts = native_list_append(parts, EL_STR("\\r")); - } else { - if (bval == 9) { - parts = native_list_append(parts, EL_STR("\\t")); - } else { - if (bval >= 128) { - parts = native_list_append(parts, el_str_concat(EL_STR("\\x"), byte_to_hex2(bval))); - prev_was_hex_escape = 1; - } else { - parts = native_list_append(parts, str_char_at(s, i)); - } - } - } - } - } - } - i = (i + 1); - } - return str_join(parts, EL_STR("")); - return 0; -} - -el_val_t c_str_lit(el_val_t s) { - return el_str_concat(el_str_concat(EL_STR("\""), c_escape(s)), EL_STR("\"")); - return 0; -} - -el_val_t el_type_to_c(el_val_t type_str) { - if (str_eq(type_str, EL_STR("String"))) { - return EL_STR("const char*"); - } - if (str_eq(type_str, EL_STR("Int"))) { - return EL_STR("int64_t"); - } - if (str_eq(type_str, EL_STR("Bool"))) { - return EL_STR("int"); - } - if (str_eq(type_str, EL_STR("Float"))) { - return EL_STR("double"); - } - if (str_eq(type_str, EL_STR("Void"))) { - return EL_STR("void"); - } - if (str_eq(type_str, EL_STR("void"))) { - return EL_STR("void"); - } - return EL_STR("void*"); - return 0; -} - -el_val_t emit_line(el_val_t line) { - println(line); - return 0; -} - -el_val_t emit_blank(void) { - println(EL_STR("")); - return 0; -} - -el_val_t binop_to_c(el_val_t op) { - if (str_eq(op, EL_STR("Plus"))) { - return EL_STR("+"); - } - if (str_eq(op, EL_STR("Minus"))) { - return EL_STR("-"); - } - if (str_eq(op, EL_STR("Star"))) { - return EL_STR("*"); - } - if (str_eq(op, EL_STR("Slash"))) { - return EL_STR("/"); - } - if (str_eq(op, EL_STR("EqEq"))) { - return EL_STR("=="); - } - if (str_eq(op, EL_STR("NotEq"))) { - return EL_STR("!="); - } - if (str_eq(op, EL_STR("Lt"))) { - return EL_STR("<"); - } - if (str_eq(op, EL_STR("Gt"))) { - return EL_STR(">"); - } - if (str_eq(op, EL_STR("LtEq"))) { - return EL_STR("<="); - } - if (str_eq(op, EL_STR("GtEq"))) { - return EL_STR(">="); - } - if (str_eq(op, EL_STR("And"))) { - return EL_STR("&&"); - } - if (str_eq(op, EL_STR("Or"))) { - return EL_STR("||"); - } - return op; - return 0; -} - -el_val_t duration_unit_nanos(el_val_t unit) { - if (str_eq(unit, EL_STR("nano"))) { - return EL_STR("1LL"); - } - if (str_eq(unit, EL_STR("nanos"))) { - return EL_STR("1LL"); - } - if (str_eq(unit, EL_STR("milli"))) { - return EL_STR("1000000LL"); - } - if (str_eq(unit, EL_STR("millis"))) { - return EL_STR("1000000LL"); - } - if (str_eq(unit, EL_STR("millisecond"))) { - return EL_STR("1000000LL"); - } - if (str_eq(unit, EL_STR("milliseconds"))) { - return EL_STR("1000000LL"); - } - if (str_eq(unit, EL_STR("second"))) { - return EL_STR("1000000000LL"); - } - if (str_eq(unit, EL_STR("seconds"))) { - return EL_STR("1000000000LL"); - } - if (str_eq(unit, EL_STR("minute"))) { - return EL_STR("60000000000LL"); - } - if (str_eq(unit, EL_STR("minutes"))) { - return EL_STR("60000000000LL"); - } - if (str_eq(unit, EL_STR("hour"))) { - return EL_STR("3600000000000LL"); - } - if (str_eq(unit, EL_STR("hours"))) { - return EL_STR("3600000000000LL"); - } - if (str_eq(unit, EL_STR("day"))) { - return EL_STR("86400000000000LL"); - } - if (str_eq(unit, EL_STR("days"))) { - return EL_STR("86400000000000LL"); - } - return EL_STR("1LL"); - return 0; -} - -el_val_t cg_expr(el_val_t expr) { - el_val_t kind = el_get_field(expr, EL_STR("expr")); - if (str_eq(kind, EL_STR("Int"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - return v; - } - if (str_eq(kind, EL_STR("DurationLit"))) { - el_val_t count = el_get_field(expr, EL_STR("count")); - el_val_t unit = el_get_field(expr, EL_STR("unit")); - el_val_t mult = duration_unit_nanos(unit); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_duration_from_nanos((el_val_t)("), count), EL_STR("LL * ")), mult), EL_STR("))")); - } - if (str_eq(kind, EL_STR("Float"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - return el_str_concat(el_str_concat(EL_STR("el_from_float("), v), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Str"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - return el_str_concat(el_str_concat(EL_STR("EL_STR("), c_str_lit(v)), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Bool"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - if (str_eq(v, EL_STR("true"))) { - return EL_STR("1"); - } - return EL_STR("0"); - } - if (str_eq(kind, EL_STR("Nil"))) { - return EL_STR("EL_NULL"); - } - if (str_eq(kind, EL_STR("Ident"))) { - el_val_t name = el_get_field(expr, EL_STR("name")); - return name; - } - if (str_eq(kind, EL_STR("Not"))) { - el_val_t inner = el_get_field(expr, EL_STR("inner")); - el_val_t inner_c = cg_expr(inner); - return el_str_concat(EL_STR("!"), inner_c); - } - if (str_eq(kind, EL_STR("Neg"))) { - el_val_t inner = el_get_field(expr, EL_STR("inner")); - el_val_t inner_c = cg_expr(inner); - return el_str_concat(el_str_concat(EL_STR("(-"), inner_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("BinOp"))) { - el_val_t op = el_get_field(expr, EL_STR("op")); - el_val_t left = el_get_field(expr, EL_STR("left")); - el_val_t right = el_get_field(expr, EL_STR("right")); - el_val_t left_c = cg_expr(left); - el_val_t right_c = cg_expr(right); - el_val_t left_kind = el_get_field(left, EL_STR("expr")); - el_val_t right_kind = el_get_field(right, EL_STR("expr")); - if (str_eq(op, EL_STR("Plus"))) { - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (str_eq(op, EL_STR("EqEq"))) { - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (str_eq(op, EL_STR("NotEq"))) { - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - el_val_t left_is_inst = is_instant_expr(left); - el_val_t right_is_inst = is_instant_expr(right); - el_val_t left_is_dur = is_duration_expr(left); - el_val_t right_is_dur = is_duration_expr(right); - el_val_t left_is_ld = is_localdate_expr(left); - el_val_t right_is_ld = is_localdate_expr(right); - el_val_t left_is_lt = is_localtime_expr(left); - el_val_t right_is_lt = is_localtime_expr(right); - el_val_t left_is_ct = is_caltime_expr(left); - el_val_t right_is_ct = is_caltime_expr(right); - if (left_is_ld) { - if (str_eq(op, EL_STR("Plus"))) { - if (right_is_dur) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_local_date_add_dur("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (str_eq(op, EL_STR("Lt"))) { - if (right_is_ld) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_local_date_lt("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (str_eq(op, EL_STR("EqEq"))) { - if (right_is_ld) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_local_date_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - } - if (left_is_lt) { - if (str_eq(op, EL_STR("Plus"))) { - if (right_is_dur) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_local_time_add_dur("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - } - if (left_is_ct) { - if (str_eq(op, EL_STR("Plus"))) { - if (right_is_ct) { - time_record_violation(EL_STR("caltime_plus_caltime"), EL_STR("CalendarTime + CalendarTime is not allowed (use cal_to_instant + Duration)")); - return EL_STR("0 /* TIME_TYPE_ERROR: CalendarTime + CalendarTime */"); - } - } - } - el_val_t any_temporal = 0; - if (left_is_inst) { - any_temporal = 1; - } - if (right_is_inst) { - any_temporal = 1; - } - if (left_is_dur) { - any_temporal = 1; - } - if (right_is_dur) { - any_temporal = 1; - } - if (any_temporal) { - if (str_eq(op, EL_STR("Plus"))) { - if (left_is_inst) { - if (right_is_dur) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_instant_add_dur("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (right_is_inst) { - time_record_violation(EL_STR("instant_plus_instant"), EL_STR("Instant + Instant is not allowed")); - return EL_STR("0 /* TIME_TYPE_ERROR: Instant + Instant */"); - } - } - if (left_is_dur) { - if (right_is_inst) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_instant_add_dur("), right_c), EL_STR(", ")), left_c), EL_STR(")")); - } - if (right_is_dur) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_duration_add("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (is_int_expr(right)) { - time_record_violation(EL_STR("duration_plus_int"), EL_STR("Duration + Int is not allowed (use duration_seconds(n) or N.seconds)")); - return EL_STR("0 /* TIME_TYPE_ERROR: Duration + Int */"); - } - } - if (right_is_dur) { - if (is_int_expr(left)) { - time_record_violation(EL_STR("duration_plus_int"), EL_STR("Int + Duration is not allowed")); - return EL_STR("0 /* TIME_TYPE_ERROR: Int + Duration */"); - } - } - } - if (str_eq(op, EL_STR("Minus"))) { - if (left_is_inst) { - if (right_is_dur) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_instant_sub_dur("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (right_is_inst) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_instant_diff("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (left_is_dur) { - if (right_is_dur) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_duration_sub("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (is_int_expr(right)) { - time_record_violation(EL_STR("duration_minus_int"), EL_STR("Duration - Int is not allowed")); - return EL_STR("0 /* TIME_TYPE_ERROR: Duration - Int */"); - } - } - } - if (str_eq(op, EL_STR("Star"))) { - if (left_is_dur) { - if (is_int_expr(right)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_duration_scale("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (right_is_dur) { - if (is_int_expr(left)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_duration_scale("), right_c), EL_STR(", ")), left_c), EL_STR(")")); - } - } - } - if (str_eq(op, EL_STR("Slash"))) { - if (left_is_dur) { - if (is_int_expr(right)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_duration_div("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - } - if (str_eq(op, EL_STR("Lt"))) { - if (left_is_inst) { - if (right_is_inst) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_instant_lt("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (right_is_dur) { - time_record_violation(EL_STR("instant_cmp_duration"), EL_STR("Instant < Duration is not allowed")); - return EL_STR("0 /* TIME_TYPE_ERROR: Instant < Duration */"); - } - } - if (left_is_dur) { - if (right_is_dur) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_duration_lt("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (right_is_inst) { - time_record_violation(EL_STR("duration_cmp_instant"), EL_STR("Duration < Instant is not allowed")); - return EL_STR("0 /* TIME_TYPE_ERROR: Duration < Instant */"); - } - } - } - if (str_eq(op, EL_STR("LtEq"))) { - if (left_is_inst) { - if (right_is_inst) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_instant_le("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (left_is_dur) { - if (right_is_dur) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_duration_le("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - } - if (str_eq(op, EL_STR("Gt"))) { - if (left_is_inst) { - if (right_is_inst) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_instant_gt("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (left_is_dur) { - if (right_is_dur) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_duration_gt("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - } - if (str_eq(op, EL_STR("GtEq"))) { - if (left_is_inst) { - if (right_is_inst) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_instant_ge("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (left_is_dur) { - if (right_is_dur) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_duration_ge("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - } - if (str_eq(op, EL_STR("EqEq"))) { - if (left_is_inst) { - if (right_is_inst) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_instant_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (left_is_dur) { - if (right_is_dur) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_duration_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - } - if (str_eq(op, EL_STR("NotEq"))) { - if (left_is_inst) { - if (right_is_inst) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_instant_ne("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (left_is_dur) { - if (right_is_dur) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_duration_ne("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - } - } - if (str_eq(op, EL_STR("Plus"))) { - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (is_int_expr(left)) { - if (is_int_expr(right)) { - el_val_t op_c = binop_to_c(op); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" ")), op_c), EL_STR(" ")), right_c), EL_STR(")")); - } - } - if (str_eq(left_kind, EL_STR("Int"))) { - el_val_t op_c = binop_to_c(op); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" ")), op_c), EL_STR(" ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Int"))) { - el_val_t op_c = binop_to_c(op); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" ")), op_c), EL_STR(" ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Call"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Call"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("BinOp"))) { - el_val_t left_op = el_get_field(left, EL_STR("op")); - if (str_eq(left_op, EL_STR("Plus"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (str_eq(right_kind, EL_STR("BinOp"))) { - el_val_t right_op = el_get_field(right, EL_STR("op")); - if (str_eq(right_op, EL_STR("Plus"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (str_eq(left_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (str_eq(op, EL_STR("EqEq"))) { - if (str_eq(left_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" == ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" == ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" == ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" == ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - if (str_eq(right_kind, EL_STR("Ident"))) { - el_val_t lname = el_get_field(left, EL_STR("name")); - el_val_t rname = el_get_field(right, EL_STR("name")); - if (is_int_name(lname)) { - if (is_int_name(rname)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" == ")), right_c), EL_STR(")")); - } - } - } - } - if (is_int_expr(left)) { - if (is_int_expr(right)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" == ")), right_c), EL_STR(")")); - } - } - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Call"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Call"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (str_eq(op, EL_STR("NotEq"))) { - if (str_eq(left_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" != ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" != ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" != ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" != ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - if (str_eq(right_kind, EL_STR("Ident"))) { - el_val_t lname = el_get_field(left, EL_STR("name")); - el_val_t rname = el_get_field(right, EL_STR("name")); - if (is_int_name(lname)) { - if (is_int_name(rname)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" != ")), right_c), EL_STR(")")); - } - } - } - } - if (is_int_expr(left)) { - if (is_int_expr(right)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" != ")), right_c), EL_STR(")")); - } - } - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Call"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Call"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - el_val_t op_c = binop_to_c(op); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" ")), op_c), EL_STR(" ")), right_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Call"))) { - el_val_t func = el_get_field(expr, EL_STR("func")); - el_val_t args = el_get_field(expr, EL_STR("args")); - el_val_t arity = native_list_len(args); - el_val_t func_kind = el_get_field(func, EL_STR("expr")); - el_val_t args_parts = native_list_empty(); - el_val_t i = 0; - while (i < arity) { - el_val_t arg = native_list_get(args, i); - el_val_t arg_c = cg_expr(arg); - args_parts = native_list_append(args_parts, arg_c); - i = (i + 1); - } - el_val_t args_c = str_join(args_parts, EL_STR(", ")); - if (str_eq(func_kind, EL_STR("Ident"))) { - el_val_t fn_name = el_get_field(func, EL_STR("name")); - cap_check_call(fn_name); - arity_check_call(fn_name, arity); - if (str_eq(fn_name, EL_STR("sleep"))) { - if (arity == 1) { - el_val_t only_arg = native_list_get(args, 0); - if (is_duration_expr(only_arg)) { - return el_str_concat(el_str_concat(EL_STR("el_sleep_duration("), args_c), EL_STR(")")); - } - } - } - if (str_eq(fn_name, EL_STR("el_from_float"))) { - if (arity == 1) { - el_val_t only_arg = native_list_get(args, 0); - el_val_t arg_kind = el_get_field(only_arg, EL_STR("expr")); - if (str_eq(arg_kind, EL_STR("Float"))) { - el_val_t v = el_get_field(only_arg, EL_STR("value")); - return el_str_concat(el_str_concat(EL_STR("el_from_float("), v), EL_STR(")")); - } - } - } - return el_str_concat(el_str_concat(el_str_concat(fn_name, EL_STR("(")), args_c), EL_STR(")")); - } - if (str_eq(func_kind, EL_STR("Field"))) { - el_val_t obj = el_get_field(func, EL_STR("object")); - el_val_t field = el_get_field(func, EL_STR("field")); - el_val_t obj_c = cg_expr(obj); - if (arity > 0) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(field, EL_STR("(")), obj_c), EL_STR(", ")), args_c), EL_STR(")")); - } - return el_str_concat(el_str_concat(el_str_concat(field, EL_STR("(")), obj_c), EL_STR(")")); - } - el_val_t fn_c = cg_expr(func); - return el_str_concat(el_str_concat(el_str_concat(fn_c, EL_STR("(")), args_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Field"))) { - el_val_t obj = el_get_field(expr, EL_STR("object")); - el_val_t field = el_get_field(expr, EL_STR("field")); - el_val_t obj_c = cg_expr(obj); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_get_field("), obj_c), EL_STR(", EL_STR(")), c_str_lit(field)), EL_STR("))")); - } - if (str_eq(kind, EL_STR("Index"))) { - el_val_t obj = el_get_field(expr, EL_STR("object")); - el_val_t idx = el_get_field(expr, EL_STR("index")); - el_val_t obj_c = cg_expr(obj); - el_val_t idx_c = cg_expr(idx); - el_val_t idx_kind = el_get_field(idx, EL_STR("expr")); - if (str_eq(idx_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_get_field("), obj_c), EL_STR(", ")), idx_c), EL_STR(")")); - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_list_get("), obj_c), EL_STR(", ")), idx_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Array"))) { - el_val_t elems = el_get_field(expr, EL_STR("elems")); - el_val_t n = native_list_len(elems); - if (n == 0) { - return EL_STR("el_list_empty()"); - } - el_val_t items_parts = native_list_empty(); - el_val_t i = 0; - while (i < n) { - el_val_t elem = native_list_get(elems, i); - el_val_t elem_c = cg_expr(elem); - items_parts = native_list_append(items_parts, elem_c); - i = (i + 1); - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_list_new("), native_int_to_str(n)), EL_STR(", ")), str_join(items_parts, EL_STR(", "))), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Map"))) { - el_val_t pairs = el_get_field(expr, EL_STR("pairs")); - el_val_t n = native_list_len(pairs); - if (n == 0) { - return EL_STR("el_map_new(0)"); - } - el_val_t items_parts = native_list_empty(); - el_val_t i = 0; - while (i < n) { - el_val_t pair = native_list_get(pairs, i); - el_val_t key = el_get_field(pair, EL_STR("key")); - el_val_t val = el_get_field(pair, EL_STR("value")); - el_val_t val_c = cg_expr(val); - items_parts = native_list_append(items_parts, el_str_concat(el_str_concat(c_str_lit(key), EL_STR(", ")), val_c)); - i = (i + 1); - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_map_new("), native_int_to_str(n)), EL_STR(", ")), str_join(items_parts, EL_STR(", "))), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Try"))) { - el_val_t inner = el_get_field(expr, EL_STR("inner")); - return cg_expr(inner); - } - if (str_eq(kind, EL_STR("If"))) { - return cg_if_expr(expr); - } - if (str_eq(kind, EL_STR("Match"))) { - return cg_match(expr); - } - return EL_STR("EL_NULL"); - return 0; -} - -el_val_t next_match_id(void) { - el_val_t csv = state_get(EL_STR("__match_counter")); - el_val_t n = 0; - if (!str_eq(csv, EL_STR(""))) { - n = str_to_int(csv); - } - n = (n + 1); - state_set(EL_STR("__match_counter"), native_int_to_str(n)); - return native_int_to_str(n); - return 0; -} - -el_val_t cg_match(el_val_t expr) { - el_val_t subject = el_get_field(expr, EL_STR("subject")); - el_val_t arms = el_get_field(expr, EL_STR("arms")); - el_val_t subj_c = cg_expr(subject); - el_val_t id = next_match_id(); - el_val_t subj_var = el_str_concat(EL_STR("_match_subj_"), id); - el_val_t result_var = el_str_concat(EL_STR("_match_result_"), id); - el_val_t done_label = el_str_concat(EL_STR("_match_done_"), id); - el_val_t parts = native_list_empty(); - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("({ el_val_t "), subj_var), EL_STR(" = ")), subj_c), EL_STR("; el_val_t ")), result_var), EL_STR(" = 0; "))); - el_val_t n = native_list_len(arms); - el_val_t i = 0; - while (i < n) { - el_val_t arm = native_list_get(arms, i); - el_val_t pat = el_get_field(arm, EL_STR("pattern")); - el_val_t body = el_get_field(arm, EL_STR("body")); - el_val_t pkind = el_get_field(pat, EL_STR("pattern")); - el_val_t body_c = cg_expr(body); - if (str_eq(pkind, EL_STR("Wildcard"))) { - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{ "), result_var), EL_STR(" = (")), body_c), EL_STR("); goto ")), done_label), EL_STR("; } "))); - } else { - if (str_eq(pkind, EL_STR("Binding"))) { - el_val_t bname = el_get_field(pat, EL_STR("name")); - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{ el_val_t "), bname), EL_STR(" = ")), subj_var), EL_STR("; ")), result_var), EL_STR(" = (")), body_c), EL_STR("); goto ")), done_label), EL_STR("; } "))); - } else { - if (str_eq(pkind, EL_STR("LitInt"))) { - el_val_t v = el_get_field(pat, EL_STR("value")); - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("if ("), subj_var), EL_STR(" == ")), v), EL_STR(") { ")), result_var), EL_STR(" = (")), body_c), EL_STR("); goto ")), done_label), EL_STR("; } "))); - } else { - if (str_eq(pkind, EL_STR("LitStr"))) { - el_val_t v = el_get_field(pat, EL_STR("value")); - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("if (str_eq("), subj_var), EL_STR(", EL_STR(")), c_str_lit(v)), EL_STR("))) { ")), result_var), EL_STR(" = (")), body_c), EL_STR("); goto ")), done_label), EL_STR("; } "))); - } else { - if (str_eq(pkind, EL_STR("LitBool"))) { - el_val_t v = el_get_field(pat, EL_STR("value")); - el_val_t bv = EL_STR("0"); - if (str_eq(v, EL_STR("true"))) { - bv = EL_STR("1"); - } - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("if ("), subj_var), EL_STR(" == ")), bv), EL_STR(") { ")), result_var), EL_STR(" = (")), body_c), EL_STR("); goto ")), done_label), EL_STR("; } "))); - } else { - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{ "), result_var), EL_STR(" = (")), body_c), EL_STR("); goto ")), done_label), EL_STR("; } "))); - } - } - } - } - } - i = (i + 1); - } - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(done_label, EL_STR(":; ")), result_var), EL_STR("; })"))); - return str_join(parts, EL_STR("")); - return 0; -} - -el_val_t next_if_id(void) { - el_val_t csv = state_get(EL_STR("__if_expr_counter")); - el_val_t n = 0; - if (!str_eq(csv, EL_STR(""))) { - n = str_to_int(csv); - } - n = (n + 1); - state_set(EL_STR("__if_expr_counter"), native_int_to_str(n)); - return native_int_to_str(n); - return 0; -} - -el_val_t cg_if_expr_arm(el_val_t stmts, el_val_t result_var) { - el_val_t n = native_list_len(stmts); - el_val_t parts = native_list_empty(); - el_val_t i = 0; - while (i < n) { - el_val_t s = native_list_get(stmts, i); - el_val_t sk = el_get_field(s, EL_STR("stmt")); - el_val_t is_last = 0; - if (i == (n - 1)) { - is_last = 1; - } - if (str_eq(sk, EL_STR("Let"))) { - el_val_t name = el_get_field(s, EL_STR("name")); - el_val_t val = el_get_field(s, EL_STR("value")); - el_val_t val_c = cg_expr(val); - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_val_t "), name), EL_STR(" = ")), val_c), EL_STR("; "))); - } else { - if (str_eq(sk, EL_STR("Return"))) { - el_val_t val = el_get_field(s, EL_STR("value")); - el_val_t val_c = cg_expr(val); - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(result_var, EL_STR(" = (")), val_c), EL_STR("); "))); - } else { - if (str_eq(sk, EL_STR("Expr"))) { - el_val_t val = el_get_field(s, EL_STR("value")); - el_val_t val_c = cg_expr(val); - if (is_last) { - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(result_var, EL_STR(" = (")), val_c), EL_STR("); "))); - } else { - parts = native_list_append(parts, el_str_concat(el_str_concat(EL_STR("(void)("), val_c), EL_STR("); "))); - } - } else { - if (str_eq(sk, EL_STR("Assign"))) { - el_val_t aname = el_get_field(s, EL_STR("name")); - el_val_t aval = el_get_field(s, EL_STR("value")); - el_val_t aval_c = cg_expr(aval); - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(aname, EL_STR(" = ")), aval_c), EL_STR("; "))); - } else { - } - } - } - } - i = (i + 1); - } - return str_join(parts, EL_STR("")); - return 0; -} - -el_val_t cg_if_expr(el_val_t expr) { - el_val_t cond = el_get_field(expr, EL_STR("cond")); - el_val_t then_stmts = el_get_field(expr, EL_STR("then")); - el_val_t else_stmts = el_get_field(expr, EL_STR("else")); - el_val_t has_else = el_get_field(expr, EL_STR("has_else")); - el_val_t cond_c = cg_expr(cond); - el_val_t id = next_if_id(); - el_val_t result_var = el_str_concat(EL_STR("_if_result_"), id); - el_val_t then_c = cg_if_expr_arm(then_stmts, result_var); - el_val_t else_c = EL_STR(""); - if (has_else) { - else_c = cg_if_expr_arm(else_stmts, result_var); - } - el_val_t out = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("({ el_val_t "), result_var), EL_STR(" = 0; if (")), cond_c), EL_STR(") { ")), then_c), EL_STR("} else { ")), else_c), EL_STR("} ")), result_var), EL_STR("; })")); - return out; - return 0; -} - -el_val_t list_contains(el_val_t lst, el_val_t s) { - el_val_t n = native_list_len(lst); - el_val_t i = 0; - while (i < n) { - el_val_t item = native_list_get(lst, i); - if (str_eq(item, s)) { - return 1; - } - i = (i + 1); - } - return 0; - return 0; -} - -el_val_t cg_stmt(el_val_t stmt, el_val_t indent, el_val_t declared) { - el_val_t kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("Let"))) { - el_val_t name = el_get_field(stmt, EL_STR("name")); - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t val_c = cg_expr(val); - el_val_t ltype = el_get_field(stmt, EL_STR("type")); - if (str_eq(ltype, EL_STR("Int"))) { - add_int_name(name); - } - if (str_eq(ltype, EL_STR("Instant"))) { - add_instant_name(name); - } - if (str_eq(ltype, EL_STR("Duration"))) { - add_duration_name(name); - } - if (str_eq(ltype, EL_STR("Calendar"))) { - add_calendar_name(name); - } - if (str_eq(ltype, EL_STR("CalendarTime"))) { - add_caltime_name(name); - } - if (str_eq(ltype, EL_STR("Rhythm"))) { - add_rhythm_name(name); - } - if (str_eq(ltype, EL_STR("LocalDate"))) { - add_localdate_name(name); - } - if (str_eq(ltype, EL_STR("LocalTime"))) { - add_localtime_name(name); - } - if (str_eq(ltype, EL_STR("LocalDateTime"))) { - add_localdt_name(name); - } - if (str_eq(ltype, EL_STR("Zone"))) { - add_zone_name(name); - } - if (is_instant_expr(val)) { - add_instant_name(name); - } - if (is_duration_expr(val)) { - add_duration_name(name); - } - if (is_calendar_expr(val)) { - add_calendar_name(name); - } - if (is_caltime_expr(val)) { - add_caltime_name(name); - } - if (is_rhythm_expr(val)) { - add_rhythm_name(name); - } - if (is_localdate_expr(val)) { - add_localdate_name(name); - } - if (is_localtime_expr(val)) { - add_localtime_name(name); - } - if (is_localdt_expr(val)) { - add_localdt_name(name); - } - if (is_zone_expr(val)) { - add_zone_name(name); - } - el_val_t vk = el_get_field(val, EL_STR("expr")); - if (str_eq(vk, EL_STR("Int"))) { - add_int_name(name); - } - if (list_contains(declared, name)) { - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, name), EL_STR(" = ")), val_c), EL_STR(";"))); - return declared; - } else { - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("el_val_t ")), name), EL_STR(" = ")), val_c), EL_STR(";"))); - return native_list_append(declared, name); - } - } - if (str_eq(kind, EL_STR("Return"))) { - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t val_kind = el_get_field(val, EL_STR("expr")); - if (str_eq(val_kind, EL_STR("Nil"))) { - emit_line(el_str_concat(indent, EL_STR("return 0;"))); - } else { - el_val_t val_c = cg_expr(val); - emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("return ")), val_c), EL_STR(";"))); - } - return declared; - } - if (str_eq(kind, EL_STR("Assign"))) { - el_val_t name = el_get_field(stmt, EL_STR("name")); - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t val_c = cg_expr(val); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, name), EL_STR(" = ")), val_c), EL_STR(";"))); - return declared; - } - if (str_eq(kind, EL_STR("Expr"))) { - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t val_kind = el_get_field(val, EL_STR("expr")); - if (str_eq(val_kind, EL_STR("If"))) { - cg_if_stmt(val, indent, declared); - return declared; - } - if (str_eq(val_kind, EL_STR("For"))) { - cg_for_stmt(val, indent, declared); - return declared; - } - el_val_t val_c = cg_expr(val); - emit_line(el_str_concat(el_str_concat(indent, val_c), EL_STR(";"))); - return declared; - } - if (str_eq(kind, EL_STR("While"))) { - el_val_t cond = el_get_field(stmt, EL_STR("cond")); - el_val_t body = el_get_field(stmt, EL_STR("body")); - el_val_t cond_c = cg_expr(cond); - cond_c = strip_outer_parens(cond_c); - emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("while (")), cond_c), EL_STR(") {"))); - cg_stmts(body, el_str_concat(indent, EL_STR(" ")), native_list_clone(declared)); - emit_line(el_str_concat(indent, EL_STR("}"))); - return declared; - } - if (str_eq(kind, EL_STR("For"))) { - el_val_t item = el_get_field(stmt, EL_STR("item")); - el_val_t list_expr = el_get_field(stmt, EL_STR("list")); - el_val_t body = el_get_field(stmt, EL_STR("body")); - cg_for_body(item, list_expr, body, indent, declared); - return declared; - } - if (str_eq(kind, EL_STR("FnDef"))) { - return declared; - } - if (str_eq(kind, EL_STR("TypeDef"))) { - return declared; - } - if (str_eq(kind, EL_STR("EnumDef"))) { - return declared; - } - if (str_eq(kind, EL_STR("Import"))) { - return declared; - } - if (str_eq(kind, EL_STR("ExternFn"))) { - return declared; - } - if (str_eq(kind, EL_STR("CgiBlock"))) { - return declared; - } - return declared; - return 0; -} - -el_val_t strip_outer_parens(el_val_t s) { - el_val_t chars = native_string_chars(s); - el_val_t n = native_list_len(chars); - if (n < 2) { - return s; - } - el_val_t first = native_list_get(chars, 0); - el_val_t last = native_list_get(chars, (n - 1)); - if (str_eq(first, EL_STR("("))) { - if (str_eq(last, EL_STR(")"))) { - el_val_t depth = 1; - el_val_t i = 1; - el_val_t balanced = 1; - while (i < (n - 1)) { - el_val_t ch = native_list_get(chars, i); - if (str_eq(ch, EL_STR("("))) { - depth = (depth + 1); - } - if (str_eq(ch, EL_STR(")"))) { - depth = (depth - 1); - if (depth == 0) { - balanced = 0; - i = n; - } - } - i = (i + 1); - } - if (balanced) { - return str_slice(s, 1, (n - 1)); - } - } - } - return s; - return 0; -} - -el_val_t cg_if_stmt(el_val_t expr, el_val_t indent, el_val_t declared) { - el_val_t cond = el_get_field(expr, EL_STR("cond")); - el_val_t then_stmts = el_get_field(expr, EL_STR("then")); - el_val_t else_stmts = el_get_field(expr, EL_STR("else")); - el_val_t has_else = el_get_field(expr, EL_STR("has_else")); - el_val_t cond_c = cg_expr(cond); - cond_c = strip_outer_parens(cond_c); - emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("if (")), cond_c), EL_STR(") {"))); - cg_stmts(then_stmts, el_str_concat(indent, EL_STR(" ")), native_list_clone(declared)); - if (has_else) { - emit_line(el_str_concat(indent, EL_STR("} else {"))); - cg_stmts(else_stmts, el_str_concat(indent, EL_STR(" ")), native_list_clone(declared)); - } - emit_line(el_str_concat(indent, EL_STR("}"))); - return 0; -} - -el_val_t cg_for_body(el_val_t item, el_val_t list_expr, el_val_t body, el_val_t indent, el_val_t declared) { - el_val_t list_c = cg_expr(list_expr); - el_val_t idx = EL_STR("_el_i"); - el_val_t list_tmp = EL_STR("_el_lst"); - el_val_t len_tmp = EL_STR("_el_len"); - emit_line(el_str_concat(indent, EL_STR("{"))); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR(" el_val_t ")), list_tmp), EL_STR(" = ")), list_c), EL_STR(";"))); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR(" el_val_t ")), len_tmp), EL_STR(" = el_list_len(")), list_tmp), EL_STR(");"))); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR(" for (el_val_t ")), idx), EL_STR(" = 0; ")), idx), EL_STR(" < ")), len_tmp), EL_STR("; ")), idx), EL_STR("++) {"))); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR(" el_val_t ")), item), EL_STR(" = el_list_get(")), list_tmp), EL_STR(", ")), idx), EL_STR(");"))); - el_val_t body_decl = native_list_clone(declared); - body_decl = native_list_append(body_decl, item); - cg_stmts(body, el_str_concat(indent, EL_STR(" ")), body_decl); - emit_line(el_str_concat(indent, EL_STR(" }"))); - emit_line(el_str_concat(indent, EL_STR("}"))); - return 0; -} - -el_val_t cg_for_stmt(el_val_t expr, el_val_t indent, el_val_t declared) { - el_val_t item = el_get_field(expr, EL_STR("item")); - el_val_t list_expr = el_get_field(expr, EL_STR("list")); - el_val_t body = el_get_field(expr, EL_STR("body")); - cg_for_body(item, list_expr, body, indent, declared); - return 0; -} - -el_val_t cg_stmts(el_val_t stmts, el_val_t indent, el_val_t declared) { - el_val_t n = native_list_len(stmts); - el_val_t i = 0; - el_val_t decl = declared; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - decl = cg_stmt(stmt, indent, decl); - i = (i + 1); - } - return decl; - return 0; -} - -el_val_t param_decl(el_val_t param, el_val_t idx) { - el_val_t name = el_get_field(param, EL_STR("name")); - return el_str_concat(EL_STR("el_val_t "), name); - return 0; -} - -el_val_t params_to_c(el_val_t params) { - el_val_t n = native_list_len(params); - if (n == 0) { - return EL_STR("void"); - } - el_val_t parts = native_list_empty(); - el_val_t i = 0; - while (i < n) { - el_val_t param = native_list_get(params, i); - el_val_t decl = param_decl(param, i); - parts = native_list_append(parts, decl); - i = (i + 1); - } - return str_join(parts, EL_STR(", ")); - return 0; -} - -el_val_t transform_implicit_return(el_val_t body) { - el_val_t n = native_list_len(body); - if (n == 0) { - return body; - } - el_val_t last = native_list_get(body, (n - 1)); - el_val_t last_kind = el_get_field(last, EL_STR("stmt")); - if (str_eq(last_kind, EL_STR("Expr"))) { - el_val_t val = el_get_field(last, EL_STR("value")); - el_val_t val_kind = el_get_field(val, EL_STR("expr")); - if (str_eq(val_kind, EL_STR("If"))) { - return body; - } - if (str_eq(val_kind, EL_STR("For"))) { - return body; - } - el_val_t new_body = native_list_empty(); - el_val_t i = 0; - while (i < (n - 1)) { - new_body = native_list_append(new_body, native_list_get(body, i)); - i = (i + 1); - } - el_val_t return_stmt = el_map_new(2, "stmt", EL_STR("Return"), "value", val); - new_body = native_list_append(new_body, return_stmt); - return new_body; - } - return body; - return 0; -} - -el_val_t is_int_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__int_names")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - return str_contains(csv, el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(","))); - return 0; -} - -el_val_t is_instant_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__instant_names")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - return str_contains(csv, el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(","))); - return 0; -} - -el_val_t is_duration_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__duration_names")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - return str_contains(csv, el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(","))); - return 0; -} - -el_val_t is_int_call(el_val_t call_expr) { - el_val_t func = el_get_field(call_expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (!str_eq(fk, EL_STR("Ident"))) { - return 0; - } - el_val_t name = el_get_field(func, EL_STR("name")); - if (str_eq(name, EL_STR("str_len"))) { - return 1; - } - if (str_eq(name, EL_STR("str_index_of"))) { - return 1; - } - if (str_eq(name, EL_STR("str_to_int"))) { - return 1; - } - if (str_eq(name, EL_STR("str_char_code"))) { - return 1; - } - if (str_eq(name, EL_STR("str_count"))) { - return 1; - } - if (str_eq(name, EL_STR("str_count_chars"))) { - return 1; - } - if (str_eq(name, EL_STR("str_count_bytes"))) { - return 1; - } - if (str_eq(name, EL_STR("str_count_lines"))) { - return 1; - } - if (str_eq(name, EL_STR("str_count_words"))) { - return 1; - } - if (str_eq(name, EL_STR("str_count_letters"))) { - return 1; - } - if (str_eq(name, EL_STR("str_count_digits"))) { - return 1; - } - if (str_eq(name, EL_STR("str_last_index_of"))) { - return 1; - } - if (str_eq(name, EL_STR("str_find_chars"))) { - return 1; - } - if (str_eq(name, EL_STR("native_list_len"))) { - return 1; - } - if (str_eq(name, EL_STR("el_list_len"))) { - return 1; - } - if (str_eq(name, EL_STR("len"))) { - return 1; - } - if (str_eq(name, EL_STR("json_get_int"))) { - return 1; - } - if (str_eq(name, EL_STR("json_array_len"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_node_count"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_edge_count"))) { - return 1; - } - if (str_eq(name, EL_STR("time_now"))) { - return 1; - } - if (str_eq(name, EL_STR("time_now_utc"))) { - return 1; - } - if (str_eq(name, EL_STR("time_diff"))) { - return 1; - } - if (str_eq(name, EL_STR("time_add"))) { - return 1; - } - if (str_eq(name, EL_STR("time_from_parts"))) { - return 1; - } - if (str_eq(name, EL_STR("el_abs"))) { - return 1; - } - if (str_eq(name, EL_STR("el_max"))) { - return 1; - } - if (str_eq(name, EL_STR("el_min"))) { - return 1; - } - if (str_eq(name, EL_STR("float_to_int"))) { - return 1; - } - if (str_eq(name, EL_STR("unix_timestamp"))) { - return 1; - } - if (str_eq(name, EL_STR("instant_to_unix_seconds"))) { - return 1; - } - if (str_eq(name, EL_STR("instant_to_unix_millis"))) { - return 1; - } - if (str_eq(name, EL_STR("duration_to_seconds"))) { - return 1; - } - if (str_eq(name, EL_STR("duration_to_millis"))) { - return 1; - } - if (str_eq(name, EL_STR("duration_to_nanos"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_instant_call(el_val_t call_expr) { - el_val_t func = el_get_field(call_expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (!str_eq(fk, EL_STR("Ident"))) { - return 0; - } - el_val_t name = el_get_field(func, EL_STR("name")); - if (str_eq(name, EL_STR("now"))) { - return 1; - } - if (str_eq(name, EL_STR("el_now_instant"))) { - return 1; - } - if (str_eq(name, EL_STR("unix_seconds"))) { - return 1; - } - if (str_eq(name, EL_STR("unix_millis"))) { - return 1; - } - if (str_eq(name, EL_STR("instant_from_iso8601"))) { - return 1; - } - if (str_eq(name, EL_STR("el_instant_add_dur"))) { - return 1; - } - if (str_eq(name, EL_STR("el_instant_sub_dur"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_duration_call(el_val_t call_expr) { - el_val_t func = el_get_field(call_expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (!str_eq(fk, EL_STR("Ident"))) { - return 0; - } - el_val_t name = el_get_field(func, EL_STR("name")); - if (str_eq(name, EL_STR("el_duration_from_nanos"))) { - return 1; - } - if (str_eq(name, EL_STR("duration_seconds"))) { - return 1; - } - if (str_eq(name, EL_STR("duration_millis"))) { - return 1; - } - if (str_eq(name, EL_STR("duration_nanos"))) { - return 1; - } - if (str_eq(name, EL_STR("el_instant_diff"))) { - return 1; - } - if (str_eq(name, EL_STR("el_duration_add"))) { - return 1; - } - if (str_eq(name, EL_STR("el_duration_sub"))) { - return 1; - } - if (str_eq(name, EL_STR("el_duration_scale"))) { - return 1; - } - if (str_eq(name, EL_STR("el_duration_div"))) { - return 1; - } - if (str_eq(name, EL_STR("ttl_cache_age"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_calendar_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__calendar_names")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - return str_contains(csv, el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(","))); - return 0; -} - -el_val_t is_caltime_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__caltime_names")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - return str_contains(csv, el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(","))); - return 0; -} - -el_val_t is_rhythm_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__rhythm_names")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - return str_contains(csv, el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(","))); - return 0; -} - -el_val_t is_localdate_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__localdate_names")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - return str_contains(csv, el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(","))); - return 0; -} - -el_val_t is_localtime_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__localtime_names")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - return str_contains(csv, el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(","))); - return 0; -} - -el_val_t is_localdt_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__localdt_names")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - return str_contains(csv, el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(","))); - return 0; -} - -el_val_t is_zone_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__zone_names")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - return str_contains(csv, el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(","))); - return 0; -} - -el_val_t is_calendar_call(el_val_t call_expr) { - el_val_t func = el_get_field(call_expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (!str_eq(fk, EL_STR("Ident"))) { - return 0; - } - el_val_t name = el_get_field(func, EL_STR("name")); - if (str_eq(name, EL_STR("earth_calendar"))) { - return 1; - } - if (str_eq(name, EL_STR("earth_calendar_default"))) { - return 1; - } - if (str_eq(name, EL_STR("mars_calendar"))) { - return 1; - } - if (str_eq(name, EL_STR("cycle_calendar"))) { - return 1; - } - if (str_eq(name, EL_STR("no_cycle_calendar"))) { - return 1; - } - if (str_eq(name, EL_STR("relative_calendar"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_caltime_call(el_val_t call_expr) { - el_val_t func = el_get_field(call_expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (!str_eq(fk, EL_STR("Ident"))) { - return 0; - } - el_val_t name = el_get_field(func, EL_STR("name")); - if (str_eq(name, EL_STR("now_in"))) { - return 1; - } - if (str_eq(name, EL_STR("in_calendar"))) { - return 1; - } - if (str_eq(name, EL_STR("cal_in"))) { - return 1; - } - if (str_eq(name, EL_STR("zoned"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_rhythm_call(el_val_t call_expr) { - el_val_t func = el_get_field(call_expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (!str_eq(fk, EL_STR("Ident"))) { - return 0; - } - el_val_t name = el_get_field(func, EL_STR("name")); - if (str_eq(name, EL_STR("rhythm_cycle_start"))) { - return 1; - } - if (str_eq(name, EL_STR("rhythm_cycle_phase"))) { - return 1; - } - if (str_eq(name, EL_STR("rhythm_duration"))) { - return 1; - } - if (str_eq(name, EL_STR("rhythm_session_start"))) { - return 1; - } - if (str_eq(name, EL_STR("rhythm_event"))) { - return 1; - } - if (str_eq(name, EL_STR("rhythm_and"))) { - return 1; - } - if (str_eq(name, EL_STR("rhythm_or"))) { - return 1; - } - if (str_eq(name, EL_STR("rhythm_weekday"))) { - return 1; - } - if (str_eq(name, EL_STR("rhythm_weekly_at"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_localdate_call(el_val_t call_expr) { - el_val_t func = el_get_field(call_expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (!str_eq(fk, EL_STR("Ident"))) { - return 0; - } - el_val_t name = el_get_field(func, EL_STR("name")); - if (str_eq(name, EL_STR("local_date"))) { - return 1; - } - if (str_eq(name, EL_STR("el_local_date_add_dur"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_localtime_call(el_val_t call_expr) { - el_val_t func = el_get_field(call_expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (!str_eq(fk, EL_STR("Ident"))) { - return 0; - } - el_val_t name = el_get_field(func, EL_STR("name")); - if (str_eq(name, EL_STR("local_time"))) { - return 1; - } - if (str_eq(name, EL_STR("el_local_time_add_dur"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_localdt_call(el_val_t call_expr) { - el_val_t func = el_get_field(call_expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (!str_eq(fk, EL_STR("Ident"))) { - return 0; - } - el_val_t name = el_get_field(func, EL_STR("name")); - if (str_eq(name, EL_STR("local_datetime"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_zone_call(el_val_t call_expr) { - el_val_t func = el_get_field(call_expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (!str_eq(fk, EL_STR("Ident"))) { - return 0; - } - el_val_t name = el_get_field(func, EL_STR("name")); - if (str_eq(name, EL_STR("zone"))) { - return 1; - } - if (str_eq(name, EL_STR("zone_utc"))) { - return 1; - } - if (str_eq(name, EL_STR("zone_local"))) { - return 1; - } - if (str_eq(name, EL_STR("zone_offset"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_calendar_expr(el_val_t expr) { - el_val_t k = el_get_field(expr, EL_STR("expr")); - if (str_eq(k, EL_STR("Ident"))) { - return is_calendar_name(el_get_field(expr, EL_STR("name"))); - } - if (str_eq(k, EL_STR("Call"))) { - return is_calendar_call(expr); - } - return 0; - return 0; -} - -el_val_t is_caltime_expr(el_val_t expr) { - el_val_t k = el_get_field(expr, EL_STR("expr")); - if (str_eq(k, EL_STR("Ident"))) { - return is_caltime_name(el_get_field(expr, EL_STR("name"))); - } - if (str_eq(k, EL_STR("Call"))) { - return is_caltime_call(expr); - } - return 0; - return 0; -} - -el_val_t is_rhythm_expr(el_val_t expr) { - el_val_t k = el_get_field(expr, EL_STR("expr")); - if (str_eq(k, EL_STR("Ident"))) { - return is_rhythm_name(el_get_field(expr, EL_STR("name"))); - } - if (str_eq(k, EL_STR("Call"))) { - return is_rhythm_call(expr); - } - return 0; - return 0; -} - -el_val_t is_localdate_expr(el_val_t expr) { - el_val_t k = el_get_field(expr, EL_STR("expr")); - if (str_eq(k, EL_STR("Ident"))) { - return is_localdate_name(el_get_field(expr, EL_STR("name"))); - } - if (str_eq(k, EL_STR("Call"))) { - return is_localdate_call(expr); - } - return 0; - return 0; -} - -el_val_t is_localtime_expr(el_val_t expr) { - el_val_t k = el_get_field(expr, EL_STR("expr")); - if (str_eq(k, EL_STR("Ident"))) { - return is_localtime_name(el_get_field(expr, EL_STR("name"))); - } - if (str_eq(k, EL_STR("Call"))) { - return is_localtime_call(expr); - } - return 0; - return 0; -} - -el_val_t is_localdt_expr(el_val_t expr) { - el_val_t k = el_get_field(expr, EL_STR("expr")); - if (str_eq(k, EL_STR("Ident"))) { - return is_localdt_name(el_get_field(expr, EL_STR("name"))); - } - if (str_eq(k, EL_STR("Call"))) { - return is_localdt_call(expr); - } - return 0; - return 0; -} - -el_val_t is_zone_expr(el_val_t expr) { - el_val_t k = el_get_field(expr, EL_STR("expr")); - if (str_eq(k, EL_STR("Ident"))) { - return is_zone_name(el_get_field(expr, EL_STR("name"))); - } - if (str_eq(k, EL_STR("Call"))) { - return is_zone_call(expr); - } - return 0; - return 0; -} - -el_val_t is_instant_expr(el_val_t expr) { - el_val_t k = el_get_field(expr, EL_STR("expr")); - if (str_eq(k, EL_STR("Ident"))) { - el_val_t name = el_get_field(expr, EL_STR("name")); - return is_instant_name(name); - } - if (str_eq(k, EL_STR("Call"))) { - return is_instant_call(expr); - } - if (str_eq(k, EL_STR("BinOp"))) { - el_val_t op = el_get_field(expr, EL_STR("op")); - if (str_eq(op, EL_STR("Plus"))) { - if (is_instant_expr(el_get_field(expr, EL_STR("left")))) { - if (is_duration_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - if (is_duration_expr(el_get_field(expr, EL_STR("left")))) { - if (is_instant_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - return 0; - } - if (str_eq(op, EL_STR("Minus"))) { - if (is_instant_expr(el_get_field(expr, EL_STR("left")))) { - if (is_duration_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - return 0; - } - return 0; - } - return 0; - return 0; -} - -el_val_t is_duration_expr(el_val_t expr) { - el_val_t k = el_get_field(expr, EL_STR("expr")); - if (str_eq(k, EL_STR("DurationLit"))) { - return 1; - } - if (str_eq(k, EL_STR("Ident"))) { - el_val_t name = el_get_field(expr, EL_STR("name")); - return is_duration_name(name); - } - if (str_eq(k, EL_STR("Call"))) { - return is_duration_call(expr); - } - if (str_eq(k, EL_STR("Neg"))) { - return is_duration_expr(el_get_field(expr, EL_STR("inner"))); - } - if (str_eq(k, EL_STR("BinOp"))) { - el_val_t op = el_get_field(expr, EL_STR("op")); - if (str_eq(op, EL_STR("Plus"))) { - if (is_duration_expr(el_get_field(expr, EL_STR("left")))) { - if (is_duration_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - return 0; - } - if (str_eq(op, EL_STR("Minus"))) { - if (is_duration_expr(el_get_field(expr, EL_STR("left")))) { - if (is_duration_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - if (is_instant_expr(el_get_field(expr, EL_STR("left")))) { - if (is_instant_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - return 0; - } - if (str_eq(op, EL_STR("Star"))) { - if (is_duration_expr(el_get_field(expr, EL_STR("left")))) { - if (is_int_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - if (is_int_expr(el_get_field(expr, EL_STR("left")))) { - if (is_duration_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - return 0; - } - if (str_eq(op, EL_STR("Slash"))) { - if (is_duration_expr(el_get_field(expr, EL_STR("left")))) { - if (is_int_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - return 0; - } - return 0; - } - return 0; - return 0; -} - -el_val_t time_record_violation(el_val_t kind, el_val_t detail) { - el_val_t csv = state_get(EL_STR("__time_violations")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t entry = el_str_concat(el_str_concat(kind, EL_STR(":")), detail); - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), entry), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__time_violations"), el_str_concat(el_str_concat(csv, entry), EL_STR(","))); - return 1; - return 0; -} - -el_val_t is_int_expr(el_val_t expr) { - el_val_t k = el_get_field(expr, EL_STR("expr")); - if (str_eq(k, EL_STR("Int"))) { - return 1; - } - if (str_eq(k, EL_STR("Ident"))) { - el_val_t name = el_get_field(expr, EL_STR("name")); - return is_int_name(name); - } - if (str_eq(k, EL_STR("Call"))) { - return is_int_call(expr); - } - if (str_eq(k, EL_STR("Neg"))) { - return is_int_expr(el_get_field(expr, EL_STR("inner"))); - } - if (str_eq(k, EL_STR("Not"))) { - return 1; - } - if (str_eq(k, EL_STR("BinOp"))) { - el_val_t op = el_get_field(expr, EL_STR("op")); - if (str_eq(op, EL_STR("EqEq"))) { - return 1; - } - if (str_eq(op, EL_STR("NotEq"))) { - return 1; - } - if (str_eq(op, EL_STR("Lt"))) { - return 1; - } - if (str_eq(op, EL_STR("Gt"))) { - return 1; - } - if (str_eq(op, EL_STR("LtEq"))) { - return 1; - } - if (str_eq(op, EL_STR("GtEq"))) { - return 1; - } - if (str_eq(op, EL_STR("And"))) { - return 1; - } - if (str_eq(op, EL_STR("Or"))) { - return 1; - } - if (str_eq(op, EL_STR("Plus"))) { - if (is_int_expr(el_get_field(expr, EL_STR("left")))) { - if (is_int_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - return 0; - } - if (str_eq(op, EL_STR("Minus"))) { - if (is_int_expr(el_get_field(expr, EL_STR("left")))) { - if (is_int_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - return 0; - } - if (str_eq(op, EL_STR("Star"))) { - if (is_int_expr(el_get_field(expr, EL_STR("left")))) { - if (is_int_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - return 0; - } - if (str_eq(op, EL_STR("Slash"))) { - if (is_int_expr(el_get_field(expr, EL_STR("left")))) { - if (is_int_expr(el_get_field(expr, EL_STR("right")))) { - return 1; - } - } - return 0; - } - return 0; - } - return 0; - return 0; -} - -el_val_t cap_record_violation(el_val_t kind, el_val_t fn_name) { - el_val_t csv = state_get(EL_STR("__cap_violations")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t entry = el_str_concat(el_str_concat(kind, EL_STR(":")), fn_name); - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), entry), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__cap_violations"), el_str_concat(el_str_concat(csv, entry), EL_STR(","))); - return 1; - return 0; -} - -el_val_t is_self_formation_call(el_val_t fn_name) { - if (str_eq(fn_name, EL_STR("llm_call_agentic"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("llm_register_tool"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_emit"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_field"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_dharma_call(el_val_t fn_name) { - if (str_eq(fn_name, EL_STR("dharma_connect"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_send"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_activate"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_emit"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_field"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_strengthen"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_relationship"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("dharma_peers"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_llm_call(el_val_t fn_name) { - if (str_eq(fn_name, EL_STR("llm_call"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("llm_call_system"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("llm_call_agentic"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("llm_vision"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("llm_register_tool"))) { - return 1; - } - if (str_eq(fn_name, EL_STR("llm_models"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t cap_check_call(el_val_t fn_name) { - el_val_t kind = state_get(EL_STR("__program_kind")); - if (str_eq(kind, EL_STR("cgi"))) { - return 1; - } - if (str_eq(kind, EL_STR("service"))) { - if (is_self_formation_call(fn_name)) { - cap_record_violation(EL_STR("service"), fn_name); - return 0; - } - return 1; - } - if (is_dharma_call(fn_name)) { - cap_record_violation(EL_STR("utility"), fn_name); - return 0; - } - if (is_llm_call(fn_name)) { - cap_record_violation(EL_STR("utility"), fn_name); - return 0; - } - return 1; - return 0; -} - -el_val_t emit_cap_violations(void) { - el_val_t csv = state_get(EL_STR("__cap_violations")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - if (str_eq(csv, EL_STR(","))) { - return 0; - } - el_val_t n = str_len(csv); - el_val_t i = 1; - while (i < n) { - el_val_t next_comma = str_index_of(str_slice(csv, i, n), EL_STR(",")); - if (next_comma < 0) { - return 0; - } - el_val_t entry = str_slice(csv, i, (i + next_comma)); - el_val_t colon = str_index_of(entry, EL_STR(":")); - if (colon > 0) { - el_val_t kind = str_slice(entry, 0, colon); - el_val_t fn_name = str_slice(entry, (colon + 1), str_len(entry)); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("#error \"capability violation: '"), kind), EL_STR("' programs may not call '")), fn_name), EL_STR("' (self-formation primitive - only 'cgi' programs may use it)\""))); - } - i = ((i + next_comma) + 1); - } - return 0; -} - -el_val_t emit_time_violations(void) { - el_val_t csv = state_get(EL_STR("__time_violations")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - if (str_eq(csv, EL_STR(","))) { - return 0; - } - el_val_t n = str_len(csv); - el_val_t i = 1; - while (i < n) { - el_val_t next_comma = str_index_of(str_slice(csv, i, n), EL_STR(",")); - if (next_comma < 0) { - return 0; - } - el_val_t entry = str_slice(csv, i, (i + next_comma)); - el_val_t colon = str_index_of(entry, EL_STR(":")); - if (colon > 0) { - el_val_t detail = str_slice(entry, (colon + 1), str_len(entry)); - emit_line(el_str_concat(el_str_concat(EL_STR("#error \"temporal type error: "), detail), EL_STR("\""))); - } - i = ((i + next_comma) + 1); - } - return 0; -} - -el_val_t builtin_arity(el_val_t name) { - if (str_eq(name, EL_STR("println"))) { - return 1; - } - if (str_eq(name, EL_STR("print"))) { - return 1; - } - if (str_eq(name, EL_STR("readline"))) { - return 0; - } - if (str_eq(name, EL_STR("el_str_concat"))) { - return 2; - } - if (str_eq(name, EL_STR("str_eq"))) { - return 2; - } - if (str_eq(name, EL_STR("str_starts_with"))) { - return 2; - } - if (str_eq(name, EL_STR("str_ends_with"))) { - return 2; - } - if (str_eq(name, EL_STR("str_len"))) { - return 1; - } - if (str_eq(name, EL_STR("str_concat"))) { - return 2; - } - if (str_eq(name, EL_STR("int_to_str"))) { - return 1; - } - if (str_eq(name, EL_STR("str_to_int"))) { - return 1; - } - if (str_eq(name, EL_STR("str_slice"))) { - return 3; - } - if (str_eq(name, EL_STR("str_contains"))) { - return 2; - } - if (str_eq(name, EL_STR("str_replace"))) { - return 3; - } - if (str_eq(name, EL_STR("str_to_upper"))) { - return 1; - } - if (str_eq(name, EL_STR("str_to_lower"))) { - return 1; - } - if (str_eq(name, EL_STR("str_trim"))) { - return 1; - } - if (str_eq(name, EL_STR("str_index_of"))) { - return 2; - } - if (str_eq(name, EL_STR("str_split"))) { - return 2; - } - if (str_eq(name, EL_STR("str_char_at"))) { - return 2; - } - if (str_eq(name, EL_STR("str_char_code"))) { - return 2; - } - if (str_eq(name, EL_STR("str_pad_left"))) { - return 3; - } - if (str_eq(name, EL_STR("str_pad_right"))) { - return 3; - } - if (str_eq(name, EL_STR("str_format"))) { - return 2; - } - if (str_eq(name, EL_STR("str_lower"))) { - return 1; - } - if (str_eq(name, EL_STR("str_upper"))) { - return 1; - } - if (str_eq(name, EL_STR("str_count"))) { - return 2; - } - if (str_eq(name, EL_STR("str_count_chars"))) { - return 1; - } - if (str_eq(name, EL_STR("str_count_bytes"))) { - return 1; - } - if (str_eq(name, EL_STR("str_count_lines"))) { - return 1; - } - if (str_eq(name, EL_STR("str_count_words"))) { - return 1; - } - if (str_eq(name, EL_STR("str_count_letters"))) { - return 1; - } - if (str_eq(name, EL_STR("str_count_digits"))) { - return 1; - } - if (str_eq(name, EL_STR("str_index_of_all"))) { - return 2; - } - if (str_eq(name, EL_STR("str_last_index_of"))) { - return 2; - } - if (str_eq(name, EL_STR("str_find_chars"))) { - return 2; - } - if (str_eq(name, EL_STR("str_repeat"))) { - return 2; - } - if (str_eq(name, EL_STR("str_reverse"))) { - return 1; - } - if (str_eq(name, EL_STR("str_strip_prefix"))) { - return 2; - } - if (str_eq(name, EL_STR("str_strip_suffix"))) { - return 2; - } - if (str_eq(name, EL_STR("str_strip_chars"))) { - return 2; - } - if (str_eq(name, EL_STR("str_lstrip"))) { - return 1; - } - if (str_eq(name, EL_STR("str_rstrip"))) { - return 1; - } - if (str_eq(name, EL_STR("is_letter"))) { - return 1; - } - if (str_eq(name, EL_STR("is_digit"))) { - return 1; - } - if (str_eq(name, EL_STR("is_alphanumeric"))) { - return 1; - } - if (str_eq(name, EL_STR("is_whitespace"))) { - return 1; - } - if (str_eq(name, EL_STR("is_punctuation"))) { - return 1; - } - if (str_eq(name, EL_STR("is_uppercase"))) { - return 1; - } - if (str_eq(name, EL_STR("is_lowercase"))) { - return 1; - } - if (str_eq(name, EL_STR("str_split_lines"))) { - return 1; - } - if (str_eq(name, EL_STR("str_split_chars"))) { - return 1; - } - if (str_eq(name, EL_STR("str_split_n"))) { - return 3; - } - if (str_eq(name, EL_STR("str_join"))) { - return 2; - } - if (str_eq(name, EL_STR("el_html_sanitize"))) { - return 2; - } - if (str_eq(name, EL_STR("el_abs"))) { - return 1; - } - if (str_eq(name, EL_STR("el_max"))) { - return 2; - } - if (str_eq(name, EL_STR("el_min"))) { - return 2; - } - if (str_eq(name, EL_STR("el_list_len"))) { - return 1; - } - if (str_eq(name, EL_STR("el_list_get"))) { - return 2; - } - if (str_eq(name, EL_STR("el_list_append"))) { - return 2; - } - if (str_eq(name, EL_STR("el_list_empty"))) { - return 0; - } - if (str_eq(name, EL_STR("el_list_clone"))) { - return 1; - } - if (str_eq(name, EL_STR("list_push"))) { - return 2; - } - if (str_eq(name, EL_STR("list_push_front"))) { - return 2; - } - if (str_eq(name, EL_STR("list_join"))) { - return 2; - } - if (str_eq(name, EL_STR("list_range"))) { - return 2; - } - if (str_eq(name, EL_STR("el_get_field"))) { - return 2; - } - if (str_eq(name, EL_STR("el_map_get"))) { - return 2; - } - if (str_eq(name, EL_STR("el_map_set"))) { - return 3; - } - if (str_eq(name, EL_STR("http_get"))) { - return 1; - } - if (str_eq(name, EL_STR("http_post"))) { - return 2; - } - if (str_eq(name, EL_STR("http_post_json"))) { - return 2; - } - if (str_eq(name, EL_STR("http_get_with_headers"))) { - return 2; - } - if (str_eq(name, EL_STR("http_post_with_headers"))) { - return 3; - } - if (str_eq(name, EL_STR("http_post_form_auth"))) { - return 3; - } - if (str_eq(name, EL_STR("http_serve"))) { - return 2; - } - if (str_eq(name, EL_STR("http_set_handler"))) { - return 1; - } - if (str_eq(name, EL_STR("fs_read"))) { - return 1; - } - if (str_eq(name, EL_STR("fs_write"))) { - return 2; - } - if (str_eq(name, EL_STR("fs_list"))) { - return 1; - } - if (str_eq(name, EL_STR("json_get"))) { - return 2; - } - if (str_eq(name, EL_STR("json_parse"))) { - return 1; - } - if (str_eq(name, EL_STR("json_stringify"))) { - return 1; - } - if (str_eq(name, EL_STR("json_get_string"))) { - return 2; - } - if (str_eq(name, EL_STR("json_get_int"))) { - return 2; - } - if (str_eq(name, EL_STR("json_get_float"))) { - return 2; - } - if (str_eq(name, EL_STR("json_get_bool"))) { - return 2; - } - if (str_eq(name, EL_STR("json_get_raw"))) { - return 2; - } - if (str_eq(name, EL_STR("json_set"))) { - return 3; - } - if (str_eq(name, EL_STR("json_array_len"))) { - return 1; - } - if (str_eq(name, EL_STR("time_now"))) { - return 0; - } - if (str_eq(name, EL_STR("time_now_utc"))) { - return 0; - } - if (str_eq(name, EL_STR("sleep_secs"))) { - return 1; - } - if (str_eq(name, EL_STR("sleep_ms"))) { - return 1; - } - if (str_eq(name, EL_STR("time_format"))) { - return 2; - } - if (str_eq(name, EL_STR("time_to_parts"))) { - return 1; - } - if (str_eq(name, EL_STR("time_from_parts"))) { - return 3; - } - if (str_eq(name, EL_STR("time_add"))) { - return 3; - } - if (str_eq(name, EL_STR("time_diff"))) { - return 3; - } - if (str_eq(name, EL_STR("uuid_new"))) { - return 0; - } - if (str_eq(name, EL_STR("uuid_v4"))) { - return 0; - } - if (str_eq(name, EL_STR("env"))) { - return 1; - } - if (str_eq(name, EL_STR("state_set"))) { - return 2; - } - if (str_eq(name, EL_STR("state_get"))) { - return 1; - } - if (str_eq(name, EL_STR("state_del"))) { - return 1; - } - if (str_eq(name, EL_STR("state_keys"))) { - return 0; - } - if (str_eq(name, EL_STR("float_to_str"))) { - return 1; - } - if (str_eq(name, EL_STR("int_to_float"))) { - return 1; - } - if (str_eq(name, EL_STR("float_to_int"))) { - return 1; - } - if (str_eq(name, EL_STR("format_float"))) { - return 2; - } - if (str_eq(name, EL_STR("decimal_round"))) { - return 2; - } - if (str_eq(name, EL_STR("str_to_float"))) { - return 1; - } - if (str_eq(name, EL_STR("math_sqrt"))) { - return 1; - } - if (str_eq(name, EL_STR("math_log"))) { - return 1; - } - if (str_eq(name, EL_STR("math_ln"))) { - return 1; - } - if (str_eq(name, EL_STR("math_sin"))) { - return 1; - } - if (str_eq(name, EL_STR("math_cos"))) { - return 1; - } - if (str_eq(name, EL_STR("math_pi"))) { - return 0; - } - if (str_eq(name, EL_STR("bool_to_str"))) { - return 1; - } - if (str_eq(name, EL_STR("exit_program"))) { - return 1; - } - if (str_eq(name, EL_STR("exec_command"))) { - return 1; - } - if (str_eq(name, EL_STR("exec_capture"))) { - return 1; - } - if (str_eq(name, EL_STR("exec"))) { - return 1; - } - if (str_eq(name, EL_STR("exec_bg"))) { - return 1; - } - if (str_eq(name, EL_STR("dharma_connect"))) { - return 1; - } - if (str_eq(name, EL_STR("dharma_send"))) { - return 2; - } - if (str_eq(name, EL_STR("dharma_activate"))) { - return 1; - } - if (str_eq(name, EL_STR("dharma_emit"))) { - return 2; - } - if (str_eq(name, EL_STR("dharma_field"))) { - return 1; - } - if (str_eq(name, EL_STR("dharma_strengthen"))) { - return 2; - } - if (str_eq(name, EL_STR("dharma_relationship"))) { - return 1; - } - if (str_eq(name, EL_STR("dharma_peers"))) { - return 0; - } - if (str_eq(name, EL_STR("engram_node"))) { - return 3; - } - if (str_eq(name, EL_STR("engram_node_full"))) { - return 8; - } - if (str_eq(name, EL_STR("engram_get_node"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_strengthen"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_forget"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_node_count"))) { - return 0; - } - if (str_eq(name, EL_STR("engram_search"))) { - return 2; - } - if (str_eq(name, EL_STR("engram_scan_nodes"))) { - return 2; - } - if (str_eq(name, EL_STR("engram_connect"))) { - return 4; - } - if (str_eq(name, EL_STR("engram_edge_between"))) { - return 2; - } - if (str_eq(name, EL_STR("engram_neighbors"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_neighbors_filtered"))) { - return 3; - } - if (str_eq(name, EL_STR("engram_edge_count"))) { - return 0; - } - if (str_eq(name, EL_STR("engram_activate"))) { - return 2; - } - if (str_eq(name, EL_STR("engram_save"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_load"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_get_node_json"))) { - return 1; - } - if (str_eq(name, EL_STR("engram_search_json"))) { - return 2; - } - if (str_eq(name, EL_STR("engram_scan_nodes_json"))) { - return 2; - } - if (str_eq(name, EL_STR("engram_neighbors_json"))) { - return 3; - } - if (str_eq(name, EL_STR("engram_activate_json"))) { - return 2; - } - if (str_eq(name, EL_STR("engram_stats_json"))) { - return 0; - } - if (str_eq(name, EL_STR("llm_call"))) { - return 2; - } - if (str_eq(name, EL_STR("llm_call_system"))) { - return 3; - } - if (str_eq(name, EL_STR("llm_call_agentic"))) { - return 4; - } - if (str_eq(name, EL_STR("llm_vision"))) { - return 4; - } - if (str_eq(name, EL_STR("llm_models"))) { - return 0; - } - if (str_eq(name, EL_STR("llm_register_tool"))) { - return 2; - } - if (str_eq(name, EL_STR("sha256_hex"))) { - return 1; - } - if (str_eq(name, EL_STR("sha256_bytes"))) { - return 1; - } - if (str_eq(name, EL_STR("hmac_sha256_hex"))) { - return 2; - } - if (str_eq(name, EL_STR("hmac_sha256_bytes"))) { - return 2; - } - if (str_eq(name, EL_STR("base64_encode"))) { - return 1; - } - if (str_eq(name, EL_STR("base64_decode"))) { - return 1; - } - if (str_eq(name, EL_STR("base64url_encode"))) { - return 1; - } - if (str_eq(name, EL_STR("base64url_decode"))) { - return 1; - } - if (str_eq(name, EL_STR("native_list_get"))) { - return 2; - } - if (str_eq(name, EL_STR("native_list_len"))) { - return 1; - } - if (str_eq(name, EL_STR("native_list_append"))) { - return 2; - } - if (str_eq(name, EL_STR("native_list_empty"))) { - return 0; - } - if (str_eq(name, EL_STR("native_list_clone"))) { - return 1; - } - if (str_eq(name, EL_STR("native_string_chars"))) { - return 1; - } - if (str_eq(name, EL_STR("native_int_to_str"))) { - return 1; - } - if (str_eq(name, EL_STR("append"))) { - return 2; - } - if (str_eq(name, EL_STR("len"))) { - return 1; - } - if (str_eq(name, EL_STR("get"))) { - return 2; - } - if (str_eq(name, EL_STR("map_get"))) { - return 2; - } - if (str_eq(name, EL_STR("map_set"))) { - return 3; - } - return (-1); - return 0; -} - -el_val_t arity_record_violation(el_val_t fn_name, el_val_t expected, el_val_t actual) { - el_val_t csv = state_get(EL_STR("__arity_violations")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t entry = el_str_concat(el_str_concat(el_str_concat(el_str_concat(fn_name, EL_STR("|")), native_int_to_str(expected)), EL_STR("|")), native_int_to_str(actual)); - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), entry), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__arity_violations"), el_str_concat(el_str_concat(csv, entry), EL_STR(","))); - return 1; - return 0; -} - -el_val_t arity_check_call(el_val_t fn_name, el_val_t actual) { - el_val_t expected = builtin_arity(fn_name); - if (expected < 0) { - return 1; - } - if (expected == actual) { - return 1; - } - arity_record_violation(fn_name, expected, actual); - return 1; - return 0; -} - -el_val_t emit_arity_violations(void) { - el_val_t csv = state_get(EL_STR("__arity_violations")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - if (str_eq(csv, EL_STR(","))) { - return 0; - } - el_val_t n = str_len(csv); - el_val_t i = 1; - while (i < n) { - el_val_t next_comma = str_index_of(str_slice(csv, i, n), EL_STR(",")); - if (next_comma < 0) { - return 0; - } - el_val_t entry = str_slice(csv, i, (i + next_comma)); - el_val_t p1 = str_index_of(entry, EL_STR("|")); - if (p1 > 0) { - el_val_t fn_name = str_slice(entry, 0, p1); - el_val_t rest = str_slice(entry, (p1 + 1), str_len(entry)); - el_val_t p2 = str_index_of(rest, EL_STR("|")); - if (p2 > 0) { - el_val_t exp_s = str_slice(rest, 0, p2); - el_val_t act_s = str_slice(rest, (p2 + 1), str_len(rest)); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("#error \"arity error: '"), fn_name), EL_STR("' takes ")), exp_s), EL_STR(" arguments, but called with ")), act_s), EL_STR("\""))); - } - } - i = ((i + next_comma) + 1); - } - return 0; -} - -el_val_t add_int_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__int_names")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__int_names"), el_str_concat(el_str_concat(csv, name), EL_STR(","))); - return 1; - return 0; -} - -el_val_t add_instant_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__instant_names")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__instant_names"), el_str_concat(el_str_concat(csv, name), EL_STR(","))); - return 1; - return 0; -} - -el_val_t add_duration_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__duration_names")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__duration_names"), el_str_concat(el_str_concat(csv, name), EL_STR(","))); - return 1; - return 0; -} - -el_val_t add_calendar_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__calendar_names")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__calendar_names"), el_str_concat(el_str_concat(csv, name), EL_STR(","))); - return 1; - return 0; -} - -el_val_t add_caltime_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__caltime_names")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__caltime_names"), el_str_concat(el_str_concat(csv, name), EL_STR(","))); - return 1; - return 0; -} - -el_val_t add_rhythm_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__rhythm_names")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__rhythm_names"), el_str_concat(el_str_concat(csv, name), EL_STR(","))); - return 1; - return 0; -} - -el_val_t add_localdate_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__localdate_names")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__localdate_names"), el_str_concat(el_str_concat(csv, name), EL_STR(","))); - return 1; - return 0; -} - -el_val_t add_localtime_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__localtime_names")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__localtime_names"), el_str_concat(el_str_concat(csv, name), EL_STR(","))); - return 1; - return 0; -} - -el_val_t add_localdt_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__localdt_names")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__localdt_names"), el_str_concat(el_str_concat(csv, name), EL_STR(","))); - return 1; - return 0; -} - -el_val_t add_zone_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__zone_names")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__zone_names"), el_str_concat(el_str_concat(csv, name), EL_STR(","))); - return 1; - return 0; -} - -el_val_t build_int_names_for_params(el_val_t params) { - state_set(EL_STR("__int_names"), EL_STR(",")); - state_set(EL_STR("__instant_names"), EL_STR(",")); - state_set(EL_STR("__duration_names"), EL_STR(",")); - state_set(EL_STR("__calendar_names"), EL_STR(",")); - state_set(EL_STR("__caltime_names"), EL_STR(",")); - state_set(EL_STR("__rhythm_names"), EL_STR(",")); - state_set(EL_STR("__localdate_names"), EL_STR(",")); - state_set(EL_STR("__localtime_names"), EL_STR(",")); - state_set(EL_STR("__localdt_names"), EL_STR(",")); - state_set(EL_STR("__zone_names"), EL_STR(",")); - el_val_t np = native_list_len(params); - el_val_t pi = 0; - while (pi < np) { - el_val_t param = native_list_get(params, pi); - el_val_t pname = el_get_field(param, EL_STR("name")); - el_val_t ptype = el_get_field(param, EL_STR("type")); - if (str_eq(ptype, EL_STR("Int"))) { - add_int_name(pname); - } - if (str_eq(ptype, EL_STR("Instant"))) { - add_instant_name(pname); - } - if (str_eq(ptype, EL_STR("Duration"))) { - add_duration_name(pname); - } - if (str_eq(ptype, EL_STR("Calendar"))) { - add_calendar_name(pname); - } - if (str_eq(ptype, EL_STR("CalendarTime"))) { - add_caltime_name(pname); - } - if (str_eq(ptype, EL_STR("Rhythm"))) { - add_rhythm_name(pname); - } - if (str_eq(ptype, EL_STR("LocalDate"))) { - add_localdate_name(pname); - } - if (str_eq(ptype, EL_STR("LocalTime"))) { - add_localtime_name(pname); - } - if (str_eq(ptype, EL_STR("LocalDateTime"))) { - add_localdt_name(pname); - } - if (str_eq(ptype, EL_STR("Zone"))) { - add_zone_name(pname); - } - pi = (pi + 1); - } - return 1; - return 0; -} - -el_val_t cg_fn(el_val_t stmt) { - el_val_t fn_name = el_get_field(stmt, EL_STR("name")); - if (str_eq(fn_name, EL_STR("main"))) { - return 0; - } - el_val_t params = el_get_field(stmt, EL_STR("params")); - el_val_t body = el_get_field(stmt, EL_STR("body")); - el_val_t ret_type = el_get_field(stmt, EL_STR("ret_type")); - el_val_t params_c = params_to_c(params); - el_val_t decorator = el_get_field(stmt, EL_STR("decorator")); - if (vbd_has_restricted_call(body)) { - if (!str_eq(decorator, EL_STR("manager"))) { - emit_line(el_str_concat(el_str_concat(EL_STR("#error \"VBD violation: dharma_emit/dharma_field called from non-@manager fn '"), fn_name), EL_STR("'\""))); - } - } - build_int_names_for_params(params); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_val_t "), fn_name), EL_STR("(")), params_c), EL_STR(") {"))); - el_val_t decl = native_list_empty(); - el_val_t np = native_list_len(params); - el_val_t pi = 0; - while (pi < np) { - el_val_t param = native_list_get(params, pi); - el_val_t pname = el_get_field(param, EL_STR("name")); - decl = native_list_append(decl, pname); - pi = (pi + 1); - } - el_val_t body_xformed = body; - if (!str_eq(ret_type, EL_STR("Void"))) { - body_xformed = transform_implicit_return(body); - } - cg_stmts(body_xformed, EL_STR(" "), decl); - emit_line(EL_STR(" return 0;")); - emit_line(EL_STR("}")); - emit_blank(); - return 0; -} - -el_val_t is_fndef(el_val_t stmt) { - el_val_t kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("FnDef"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t is_top_level_decl(el_val_t stmt) { - el_val_t kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("TypeDef"))) { - return 1; - } - if (str_eq(kind, EL_STR("EnumDef"))) { - return 1; - } - if (str_eq(kind, EL_STR("Import"))) { - return 1; - } - if (str_eq(kind, EL_STR("CgiBlock"))) { - return 1; - } - if (str_eq(kind, EL_STR("ExternFn"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t cgi_arg(el_val_t value, el_val_t has_value) { - if (has_value) { - return el_str_concat(el_str_concat(EL_STR("EL_STR("), c_str_lit(value)), EL_STR(")")); - } - return EL_STR("EL_NULL"); - return 0; -} - -el_val_t vbd_is_restricted_name(el_val_t name) { - if (str_eq(name, EL_STR("dharma_emit"))) { - return 1; - } - if (str_eq(name, EL_STR("dharma_field"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t vbd_expr_has_restricted_call(el_val_t expr) { - el_val_t kind = el_get_field(expr, EL_STR("expr")); - if (str_eq(kind, EL_STR("Call"))) { - el_val_t func = el_get_field(expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (str_eq(fk, EL_STR("Ident"))) { - el_val_t fname = el_get_field(func, EL_STR("name")); - if (vbd_is_restricted_name(fname)) { - return 1; - } - } - if (vbd_expr_has_restricted_call(func)) { - return 1; - } - el_val_t args = el_get_field(expr, EL_STR("args")); - el_val_t an = native_list_len(args); - el_val_t ai = 0; - while (ai < an) { - el_val_t a = native_list_get(args, ai); - if (vbd_expr_has_restricted_call(a)) { - return 1; - } - ai = (ai + 1); - } - return 0; - } - if (str_eq(kind, EL_STR("BinOp"))) { - el_val_t l = el_get_field(expr, EL_STR("left")); - el_val_t r = el_get_field(expr, EL_STR("right")); - if (vbd_expr_has_restricted_call(l)) { - return 1; - } - if (vbd_expr_has_restricted_call(r)) { - return 1; - } - return 0; - } - if (str_eq(kind, EL_STR("Not"))) { - return vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("inner"))); - } - if (str_eq(kind, EL_STR("Neg"))) { - return vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("inner"))); - } - if (str_eq(kind, EL_STR("Field"))) { - return vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("object"))); - } - if (str_eq(kind, EL_STR("Index"))) { - if (vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("object")))) { - return 1; - } - if (vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("index")))) { - return 1; - } - return 0; - } - if (str_eq(kind, EL_STR("Try"))) { - return vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("inner"))); - } - if (str_eq(kind, EL_STR("Array"))) { - el_val_t elems = el_get_field(expr, EL_STR("elems")); - el_val_t n = native_list_len(elems); - el_val_t i = 0; - while (i < n) { - el_val_t e = native_list_get(elems, i); - if (vbd_expr_has_restricted_call(e)) { - return 1; - } - i = (i + 1); - } - return 0; - } - if (str_eq(kind, EL_STR("Map"))) { - el_val_t pairs = el_get_field(expr, EL_STR("pairs")); - el_val_t n = native_list_len(pairs); - el_val_t i = 0; - while (i < n) { - el_val_t pair = native_list_get(pairs, i); - el_val_t v = el_get_field(pair, EL_STR("value")); - if (vbd_expr_has_restricted_call(v)) { - return 1; - } - i = (i + 1); - } - return 0; - } - if (str_eq(kind, EL_STR("If"))) { - if (vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("cond")))) { - return 1; - } - if (vbd_has_restricted_call(el_get_field(expr, EL_STR("then")))) { - return 1; - } - if (vbd_has_restricted_call(el_get_field(expr, EL_STR("else")))) { - return 1; - } - return 0; - } - if (str_eq(kind, EL_STR("For"))) { - if (vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("list")))) { - return 1; - } - if (vbd_has_restricted_call(el_get_field(expr, EL_STR("body")))) { - return 1; - } - return 0; - } - if (str_eq(kind, EL_STR("Match"))) { - if (vbd_expr_has_restricted_call(el_get_field(expr, EL_STR("subject")))) { - return 1; - } - el_val_t arms = el_get_field(expr, EL_STR("arms")); - el_val_t n = native_list_len(arms); - el_val_t i = 0; - while (i < n) { - el_val_t arm = native_list_get(arms, i); - el_val_t body = el_get_field(arm, EL_STR("body")); - if (vbd_expr_has_restricted_call(body)) { - return 1; - } - i = (i + 1); - } - return 0; - } - return 0; - return 0; -} - -el_val_t vbd_has_restricted_call(el_val_t stmts) { - el_val_t n = native_list_len(stmts); - el_val_t i = 0; - while (i < n) { - el_val_t s = native_list_get(stmts, i); - el_val_t sk = el_get_field(s, EL_STR("stmt")); - if (str_eq(sk, EL_STR("Let"))) { - if (vbd_expr_has_restricted_call(el_get_field(s, EL_STR("value")))) { - return 1; - } - } - if (str_eq(sk, EL_STR("Return"))) { - if (vbd_expr_has_restricted_call(el_get_field(s, EL_STR("value")))) { - return 1; - } - } - if (str_eq(sk, EL_STR("Expr"))) { - if (vbd_expr_has_restricted_call(el_get_field(s, EL_STR("value")))) { - return 1; - } - } - if (str_eq(sk, EL_STR("While"))) { - if (vbd_expr_has_restricted_call(el_get_field(s, EL_STR("cond")))) { - return 1; - } - if (vbd_has_restricted_call(el_get_field(s, EL_STR("body")))) { - return 1; - } - } - if (str_eq(sk, EL_STR("For"))) { - if (vbd_expr_has_restricted_call(el_get_field(s, EL_STR("list")))) { - return 1; - } - if (vbd_has_restricted_call(el_get_field(s, EL_STR("body")))) { - return 1; - } - } - i = (i + 1); - } - return 0; - return 0; -} - -el_val_t codegen(el_val_t stmts, el_val_t source) { - el_val_t n_top = native_list_len(stmts); - el_val_t cgi_count = 0; - el_val_t cgi_block = el_map_new(1, "stmt", EL_STR("None")); - el_val_t svc_count = 0; - el_val_t svc_block = el_map_new(1, "stmt", EL_STR("None")); - el_val_t ti = 0; - while (ti < n_top) { - el_val_t s = native_list_get(stmts, ti); - el_val_t sk = el_get_field(s, EL_STR("stmt")); - if (str_eq(sk, EL_STR("CgiBlock"))) { - cgi_count = (cgi_count + 1); - if (cgi_count == 1) { - cgi_block = s; - } - } - if (str_eq(sk, EL_STR("ServiceBlock"))) { - svc_count = (svc_count + 1); - if (svc_count == 1) { - svc_block = s; - } - } - ti = (ti + 1); - } - if (cgi_count > 1) { - emit_line(EL_STR("#error \"El: multiple cgi blocks in program (only one allowed)\"")); - } - if (svc_count > 1) { - emit_line(EL_STR("#error \"El: multiple service blocks in program (only one allowed)\"")); - } - if (cgi_count >= 1) { - if (svc_count >= 1) { - emit_line(EL_STR("#error \"El: program declares both cgi and service blocks (mutually exclusive - pick one)\"")); - } - } - el_val_t kind = EL_STR("utility"); - if (cgi_count >= 1) { - kind = EL_STR("cgi"); - } - if (svc_count >= 1) { - kind = EL_STR("service"); - } - state_set(EL_STR("__program_kind"), kind); - state_set(EL_STR("__cap_violations"), EL_STR("")); - state_set(EL_STR("__arity_violations"), EL_STR("")); - state_set(EL_STR("__time_violations"), EL_STR("")); - emit_line(EL_STR("#include ")); - emit_line(EL_STR("#include ")); - emit_line(EL_STR("#include \"el_runtime.h\"")); - el_val_t imp_n = native_list_len(stmts); - el_val_t imp_i = 0; - while (imp_i < imp_n) { - el_val_t imp_stmt = native_list_get(stmts, imp_i); - el_val_t imp_kind = el_get_field(imp_stmt, EL_STR("stmt")); - if (str_eq(imp_kind, EL_STR("Import"))) { - el_val_t imp_path = el_get_field(imp_stmt, EL_STR("path")); - el_val_t imp_path_len = str_len(imp_path); - el_val_t imp_last_slash = (-1); - el_val_t imp_j = 0; - while (imp_j < imp_path_len) { - el_val_t imp_c = str_slice(imp_path, imp_j, (imp_j + 1)); - if (str_eq(imp_c, EL_STR("/"))) { - imp_last_slash = imp_j; - } - imp_j = (imp_j + 1); - } - el_val_t imp_base = str_slice(imp_path, (imp_last_slash + 1), imp_path_len); - el_val_t imp_base_len = str_len(imp_base); - el_val_t imp_bname = imp_base; - if (str_ends_with(imp_base, EL_STR(".el"))) { - imp_bname = str_slice(imp_base, 0, (imp_base_len - 3)); - } - emit_line(el_str_concat(el_str_concat(EL_STR("#include \""), imp_bname), EL_STR(".elh\""))); - } - imp_i = (imp_i + 1); - } - emit_blank(); - el_val_t n = native_list_len(stmts); - el_val_t i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("FnDef"))) { - el_val_t fn_name = el_get_field(stmt, EL_STR("name")); - if (!str_eq(fn_name, EL_STR("main"))) { - el_val_t params = el_get_field(stmt, EL_STR("params")); - el_val_t params_c = params_to_c(params); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_val_t "), fn_name), EL_STR("(")), params_c), EL_STR(");"))); - } - } - if (str_eq(kind, EL_STR("ExternFn"))) { - el_val_t fn_name = el_get_field(stmt, EL_STR("name")); - el_val_t params = el_get_field(stmt, EL_STR("params")); - el_val_t params_c = params_to_c(params); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_val_t "), fn_name), EL_STR("(")), params_c), EL_STR(");"))); - } - i = (i + 1); - } - emit_blank(); - el_val_t has_toplevel_lets = 0; - i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("Let"))) { - el_val_t name = el_get_field(stmt, EL_STR("name")); - el_val_t ltype = el_get_field(stmt, EL_STR("type")); - if (str_eq(ltype, EL_STR("Int"))) { - add_int_name(name); - } - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t vk = el_get_field(val, EL_STR("expr")); - if (str_eq(vk, EL_STR("Int"))) { - add_int_name(name); - } - emit_line(el_str_concat(el_str_concat(EL_STR("el_val_t "), name), EL_STR(";"))); - has_toplevel_lets = 1; - } - i = (i + 1); - } - if (has_toplevel_lets) { - emit_blank(); - } - el_val_t has_el_main = 0; - el_val_t has_toplevel_stmts = 0; - i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - el_val_t sk = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(sk, EL_STR("FnDef"))) { - el_val_t fn_name_chk = el_get_field(stmt, EL_STR("name")); - if (str_eq(fn_name_chk, EL_STR("main"))) { - has_el_main = 1; - } - } - if (!is_fndef(stmt)) { - if (!is_top_level_decl(stmt)) { - if (!str_eq(sk, EL_STR("Let"))) { - has_toplevel_stmts = 1; - } - } - } - i = (i + 1); - } - el_val_t is_library = 0; - if (!has_el_main) { - if (!has_toplevel_stmts) { - is_library = 1; - } - } - i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - if (is_fndef(stmt)) { - cg_fn(stmt); - } - i = (i + 1); - } - if (is_library) { - return EL_STR(""); - } - emit_line(EL_STR("int main(int _argc, char** _argv) {")); - emit_line(EL_STR(" el_runtime_init_args(_argc, _argv);")); - if (cgi_count >= 1) { - el_val_t cname = el_get_field(cgi_block, EL_STR("name")); - el_val_t cdid = el_get_field(cgi_block, EL_STR("dharma_id")); - el_val_t cprin = el_get_field(cgi_block, EL_STR("principal")); - el_val_t cnet = el_get_field(cgi_block, EL_STR("network")); - el_val_t ceng = el_get_field(cgi_block, EL_STR("engram")); - el_val_t has_did = el_get_field(cgi_block, EL_STR("has_dharma_id")); - el_val_t has_prin = el_get_field(cgi_block, EL_STR("has_principal")); - el_val_t has_net = el_get_field(cgi_block, EL_STR("has_network")); - el_val_t has_eng = el_get_field(cgi_block, EL_STR("has_engram")); - el_val_t arg_name = el_str_concat(el_str_concat(EL_STR("EL_STR("), c_str_lit(cname)), EL_STR(")")); - el_val_t arg_did = cgi_arg(cdid, has_did); - el_val_t arg_prin = cgi_arg(cprin, has_prin); - el_val_t arg_net = cgi_arg(cnet, has_net); - el_val_t arg_eng = cgi_arg(ceng, has_eng); - emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR(" el_cgi_init("), arg_name), EL_STR(", ")), arg_did), EL_STR(", ")), arg_prin), EL_STR(", ")), arg_net), EL_STR(", ")), arg_eng), EL_STR(");"))); - } - el_val_t main_decl = native_list_empty(); - i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("Let"))) { - el_val_t name = el_get_field(stmt, EL_STR("name")); - main_decl = native_list_append(main_decl, name); - } - i = (i + 1); - } - el_val_t el_main_body = native_list_empty(); - i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - if (is_fndef(stmt)) { - el_val_t fn_name = el_get_field(stmt, EL_STR("name")); - if (str_eq(fn_name, EL_STR("main"))) { - el_val_t body = el_get_field(stmt, EL_STR("body")); - el_val_t bn = native_list_len(body); - el_val_t bi = 0; - while (bi < bn) { - el_main_body = native_list_append(el_main_body, native_list_get(body, bi)); - bi = (bi + 1); - } - } - } - i = (i + 1); - } - i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - if (is_fndef(stmt)) { - } else { - if (is_top_level_decl(stmt)) { - } else { - main_decl = cg_stmt(stmt, EL_STR(" "), main_decl); - } - } - el_release(stmt); - i = (i + 1); - } - el_val_t mn = native_list_len(el_main_body); - el_val_t mi = 0; - while (mi < mn) { - el_val_t mstmt = native_list_get(el_main_body, mi); - main_decl = cg_stmt(mstmt, EL_STR(" "), main_decl); - mi = (mi + 1); - } - emit_line(EL_STR(" return 0;")); - emit_line(EL_STR("}")); - emit_blank(); - emit_cap_violations(); - emit_arity_violations(); - emit_time_violations(); - return EL_STR(""); - return 0; -} - -el_val_t js_escape(el_val_t s) { - el_val_t chars = native_string_chars(s); - el_val_t total = native_list_len(chars); - el_val_t parts = native_list_empty(); - el_val_t i = 0; - while (i < total) { - el_val_t ch = native_list_get(chars, i); - if (str_eq(ch, EL_STR("\""))) { - parts = native_list_append(parts, EL_STR("\\\"")); - } else { - if (str_eq(ch, EL_STR("\\"))) { - parts = native_list_append(parts, EL_STR("\\\\")); - } else { - if (str_eq(ch, EL_STR("\n"))) { - parts = native_list_append(parts, EL_STR("\\n")); - } else { - if (str_eq(ch, EL_STR("\r"))) { - parts = native_list_append(parts, EL_STR("\\r")); - } else { - if (str_eq(ch, EL_STR("\t"))) { - parts = native_list_append(parts, EL_STR("\\t")); - } else { - parts = native_list_append(parts, ch); - } - } - } - } - } - i = (i + 1); - } - return str_join(parts, EL_STR("")); - return 0; -} - -el_val_t js_str_lit(el_val_t s) { - return el_str_concat(el_str_concat(EL_STR("\""), js_escape(s)), EL_STR("\"")); - return 0; -} - -el_val_t js_emit_line(el_val_t line) { - println(line); - return 0; -} - -el_val_t js_emit_blank(void) { - println(EL_STR("")); - return 0; -} - -el_val_t js_binop(el_val_t op) { - if (str_eq(op, EL_STR("Plus"))) { - return EL_STR("+"); - } - if (str_eq(op, EL_STR("Minus"))) { - return EL_STR("-"); - } - if (str_eq(op, EL_STR("Star"))) { - return EL_STR("*"); - } - if (str_eq(op, EL_STR("Slash"))) { - return EL_STR("/"); - } - if (str_eq(op, EL_STR("Percent"))) { - return EL_STR("%"); - } - if (str_eq(op, EL_STR("EqEq"))) { - return EL_STR("==="); - } - if (str_eq(op, EL_STR("NotEq"))) { - return EL_STR("!=="); - } - if (str_eq(op, EL_STR("Lt"))) { - return EL_STR("<"); - } - if (str_eq(op, EL_STR("Gt"))) { - return EL_STR(">"); - } - if (str_eq(op, EL_STR("LtEq"))) { - return EL_STR("<="); - } - if (str_eq(op, EL_STR("GtEq"))) { - return EL_STR(">="); - } - if (str_eq(op, EL_STR("And"))) { - return EL_STR("&&"); - } - if (str_eq(op, EL_STR("Or"))) { - return EL_STR("||"); - } - return op; - return 0; -} - -el_val_t js_is_int_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__js_int_names")); - if (str_eq(csv, EL_STR(""))) { - return 0; - } - return str_contains(csv, el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(","))); - return 0; -} - -el_val_t js_add_int_name(el_val_t name) { - el_val_t csv = state_get(EL_STR("__js_int_names")); - if (str_eq(csv, EL_STR(""))) { - csv = EL_STR(","); - } - el_val_t key = el_str_concat(el_str_concat(EL_STR(","), name), EL_STR(",")); - if (str_contains(csv, key)) { - return 1; - } - state_set(EL_STR("__js_int_names"), el_str_concat(el_str_concat(csv, name), EL_STR(","))); - return 1; - return 0; -} - -el_val_t js_build_int_names_for_params(el_val_t params) { - state_set(EL_STR("__js_int_names"), EL_STR(",")); - el_val_t np = native_list_len(params); - el_val_t pi = 0; - while (pi < np) { - el_val_t param = native_list_get(params, pi); - el_val_t pname = el_get_field(param, EL_STR("name")); - el_val_t ptype = el_get_field(param, EL_STR("type")); - if (str_eq(ptype, EL_STR("Int"))) { - js_add_int_name(pname); - } - pi = (pi + 1); - } - return 1; - return 0; -} - -el_val_t js_is_int_call(el_val_t call_expr) { - el_val_t func = el_get_field(call_expr, EL_STR("func")); - el_val_t fk = el_get_field(func, EL_STR("expr")); - if (!str_eq(fk, EL_STR("Ident"))) { - return 0; - } - el_val_t name = el_get_field(func, EL_STR("name")); - if (str_eq(name, EL_STR("str_len"))) { - return 1; - } - if (str_eq(name, EL_STR("str_index_of"))) { - return 1; - } - if (str_eq(name, EL_STR("str_to_int"))) { - return 1; - } - if (str_eq(name, EL_STR("str_char_code"))) { - return 1; - } - if (str_eq(name, EL_STR("native_list_len"))) { - return 1; - } - if (str_eq(name, EL_STR("el_list_len"))) { - return 1; - } - if (str_eq(name, EL_STR("len"))) { - return 1; - } - if (str_eq(name, EL_STR("json_get_int"))) { - return 1; - } - if (str_eq(name, EL_STR("time_now"))) { - return 1; - } - if (str_eq(name, EL_STR("time_now_utc"))) { - return 1; - } - if (str_eq(name, EL_STR("el_abs"))) { - return 1; - } - if (str_eq(name, EL_STR("el_max"))) { - return 1; - } - if (str_eq(name, EL_STR("el_min"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t js_cg_expr(el_val_t expr) { - el_val_t kind = el_get_field(expr, EL_STR("expr")); - if (str_eq(kind, EL_STR("Int"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - return v; - } - if (str_eq(kind, EL_STR("DurationLit"))) { - el_val_t count = el_get_field(expr, EL_STR("count")); - el_val_t unit = el_get_field(expr, EL_STR("unit")); - el_val_t mult_ns = EL_STR("1"); - if (str_eq(unit, EL_STR("nano"))) { - mult_ns = EL_STR("1"); - } - if (str_eq(unit, EL_STR("nanos"))) { - mult_ns = EL_STR("1"); - } - if (str_eq(unit, EL_STR("milli"))) { - mult_ns = EL_STR("1000000"); - } - if (str_eq(unit, EL_STR("millis"))) { - mult_ns = EL_STR("1000000"); - } - if (str_eq(unit, EL_STR("millisecond"))) { - mult_ns = EL_STR("1000000"); - } - if (str_eq(unit, EL_STR("milliseconds"))) { - mult_ns = EL_STR("1000000"); - } - if (str_eq(unit, EL_STR("second"))) { - mult_ns = EL_STR("1000000000"); - } - if (str_eq(unit, EL_STR("seconds"))) { - mult_ns = EL_STR("1000000000"); - } - if (str_eq(unit, EL_STR("minute"))) { - mult_ns = EL_STR("60000000000"); - } - if (str_eq(unit, EL_STR("minutes"))) { - mult_ns = EL_STR("60000000000"); - } - if (str_eq(unit, EL_STR("hour"))) { - mult_ns = EL_STR("3600000000000"); - } - if (str_eq(unit, EL_STR("hours"))) { - mult_ns = EL_STR("3600000000000"); - } - if (str_eq(unit, EL_STR("day"))) { - mult_ns = EL_STR("86400000000000"); - } - if (str_eq(unit, EL_STR("days"))) { - mult_ns = EL_STR("86400000000000"); - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), count), EL_STR(" * ")), mult_ns), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Float"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - return v; - } - if (str_eq(kind, EL_STR("Str"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - return js_str_lit(v); - } - if (str_eq(kind, EL_STR("Bool"))) { - el_val_t v = el_get_field(expr, EL_STR("value")); - if (str_eq(v, EL_STR("true"))) { - return EL_STR("true"); - } - return EL_STR("false"); - } - if (str_eq(kind, EL_STR("Nil"))) { - return EL_STR("null"); - } - if (str_eq(kind, EL_STR("Ident"))) { - el_val_t name = el_get_field(expr, EL_STR("name")); - return name; - } - if (str_eq(kind, EL_STR("Not"))) { - el_val_t inner = el_get_field(expr, EL_STR("inner")); - el_val_t inner_c = js_cg_expr(inner); - return el_str_concat(EL_STR("!"), inner_c); - } - if (str_eq(kind, EL_STR("Neg"))) { - el_val_t inner = el_get_field(expr, EL_STR("inner")); - el_val_t inner_c = js_cg_expr(inner); - return el_str_concat(el_str_concat(EL_STR("(-"), inner_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("BinOp"))) { - el_val_t op = el_get_field(expr, EL_STR("op")); - el_val_t left = el_get_field(expr, EL_STR("left")); - el_val_t right = el_get_field(expr, EL_STR("right")); - el_val_t left_c = js_cg_expr(left); - el_val_t right_c = js_cg_expr(right); - el_val_t left_kind = el_get_field(left, EL_STR("expr")); - el_val_t right_kind = el_get_field(right, EL_STR("expr")); - if (str_eq(op, EL_STR("Plus"))) { - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" + ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" + ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - if (str_eq(right_kind, EL_STR("Ident"))) { - el_val_t lname = el_get_field(left, EL_STR("name")); - el_val_t rname = el_get_field(right, EL_STR("name")); - if (js_is_int_name(lname)) { - if (js_is_int_name(rname)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" + ")), right_c), EL_STR(")")); - } - } - } - } - if (str_eq(left_kind, EL_STR("Ident"))) { - if (str_eq(right_kind, EL_STR("Call"))) { - el_val_t lname = el_get_field(left, EL_STR("name")); - if (js_is_int_name(lname)) { - if (js_is_int_call(right)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" + ")), right_c), EL_STR(")")); - } - } - } - } - if (str_eq(right_kind, EL_STR("Ident"))) { - if (str_eq(left_kind, EL_STR("Call"))) { - el_val_t rname = el_get_field(right, EL_STR("name")); - if (js_is_int_name(rname)) { - if (js_is_int_call(left)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" + ")), right_c), EL_STR(")")); - } - } - } - } - if (str_eq(left_kind, EL_STR("Call"))) { - if (str_eq(right_kind, EL_STR("Call"))) { - if (js_is_int_call(left)) { - if (js_is_int_call(right)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" + ")), right_c), EL_STR(")")); - } - } - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Call"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Ident"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_str_concat("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - } - if (str_eq(op, EL_STR("EqEq"))) { - if (str_eq(left_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Nil"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Nil"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - if (str_eq(right_kind, EL_STR("Ident"))) { - el_val_t lname = el_get_field(left, EL_STR("name")); - el_val_t rname = el_get_field(right, EL_STR("name")); - if (js_is_int_name(lname)) { - if (js_is_int_name(rname)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - } - } - } - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" === ")), right_c), EL_STR(")")); - } - if (str_eq(op, EL_STR("NotEq"))) { - if (str_eq(left_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Int"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Bool"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Nil"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Nil"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - if (str_eq(left_kind, EL_STR("Ident"))) { - if (str_eq(right_kind, EL_STR("Ident"))) { - el_val_t lname = el_get_field(left, EL_STR("name")); - el_val_t rname = el_get_field(right, EL_STR("name")); - if (js_is_int_name(lname)) { - if (js_is_int_name(rname)) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - } - } - } - if (str_eq(left_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - if (str_eq(right_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("!str_eq("), left_c), EL_STR(", ")), right_c), EL_STR(")")); - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" !== ")), right_c), EL_STR(")")); - } - el_val_t op_c = js_binop(op); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("("), left_c), EL_STR(" ")), op_c), EL_STR(" ")), right_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Call"))) { - el_val_t func = el_get_field(expr, EL_STR("func")); - el_val_t args = el_get_field(expr, EL_STR("args")); - el_val_t arity = native_list_len(args); - el_val_t func_kind = el_get_field(func, EL_STR("expr")); - el_val_t args_parts = native_list_empty(); - el_val_t i = 0; - while (i < arity) { - el_val_t arg = native_list_get(args, i); - el_val_t arg_c = js_cg_expr(arg); - args_parts = native_list_append(args_parts, arg_c); - i = (i + 1); - } - el_val_t args_c = str_join(args_parts, EL_STR(", ")); - if (str_eq(func_kind, EL_STR("Ident"))) { - el_val_t fn_name = el_get_field(func, EL_STR("name")); - return el_str_concat(el_str_concat(el_str_concat(fn_name, EL_STR("(")), args_c), EL_STR(")")); - } - if (str_eq(func_kind, EL_STR("Field"))) { - el_val_t obj = el_get_field(func, EL_STR("object")); - el_val_t field = el_get_field(func, EL_STR("field")); - el_val_t obj_c = js_cg_expr(obj); - if (arity > 0) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(field, EL_STR("(")), obj_c), EL_STR(", ")), args_c), EL_STR(")")); - } - return el_str_concat(el_str_concat(el_str_concat(field, EL_STR("(")), obj_c), EL_STR(")")); - } - el_val_t fn_c = js_cg_expr(func); - return el_str_concat(el_str_concat(el_str_concat(fn_c, EL_STR("(")), args_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Field"))) { - el_val_t obj = el_get_field(expr, EL_STR("object")); - el_val_t field = el_get_field(expr, EL_STR("field")); - el_val_t obj_c = js_cg_expr(obj); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_get_field("), obj_c), EL_STR(", ")), js_str_lit(field)), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Index"))) { - el_val_t obj = el_get_field(expr, EL_STR("object")); - el_val_t idx = el_get_field(expr, EL_STR("index")); - el_val_t obj_c = js_cg_expr(obj); - el_val_t idx_c = js_cg_expr(idx); - el_val_t idx_kind = el_get_field(idx, EL_STR("expr")); - if (str_eq(idx_kind, EL_STR("Str"))) { - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_get_field("), obj_c), EL_STR(", ")), idx_c), EL_STR(")")); - } - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("el_list_get("), obj_c), EL_STR(", ")), idx_c), EL_STR(")")); - } - if (str_eq(kind, EL_STR("Array"))) { - el_val_t elems = el_get_field(expr, EL_STR("elems")); - el_val_t n = native_list_len(elems); - if (n == 0) { - return EL_STR("[]"); - } - el_val_t items_parts = native_list_empty(); - el_val_t i = 0; - while (i < n) { - el_val_t elem = native_list_get(elems, i); - el_val_t elem_c = js_cg_expr(elem); - items_parts = native_list_append(items_parts, elem_c); - i = (i + 1); - } - return el_str_concat(el_str_concat(EL_STR("["), str_join(items_parts, EL_STR(", "))), EL_STR("]")); - } - if (str_eq(kind, EL_STR("Map"))) { - el_val_t pairs = el_get_field(expr, EL_STR("pairs")); - el_val_t n = native_list_len(pairs); - if (n == 0) { - return EL_STR("{}"); - } - el_val_t items_parts = native_list_empty(); - el_val_t i = 0; - while (i < n) { - el_val_t pair = native_list_get(pairs, i); - el_val_t key = el_get_field(pair, EL_STR("key")); - el_val_t val = el_get_field(pair, EL_STR("value")); - el_val_t val_c = js_cg_expr(val); - items_parts = native_list_append(items_parts, el_str_concat(el_str_concat(js_str_lit(key), EL_STR(": ")), val_c)); - i = (i + 1); - } - return el_str_concat(el_str_concat(EL_STR("{"), str_join(items_parts, EL_STR(", "))), EL_STR("}")); - } - if (str_eq(kind, EL_STR("Try"))) { - el_val_t inner = el_get_field(expr, EL_STR("inner")); - return js_cg_expr(inner); - } - if (str_eq(kind, EL_STR("If"))) { - el_val_t cond = el_get_field(expr, EL_STR("cond")); - el_val_t cond_c = js_cg_expr(cond); - return el_str_concat(el_str_concat(EL_STR("("), cond_c), EL_STR(" ? 1 : 0)")); - } - if (str_eq(kind, EL_STR("Match"))) { - return js_cg_match(expr); - } - return EL_STR("null"); - return 0; -} - -el_val_t js_next_match_id(void) { - el_val_t csv = state_get(EL_STR("__js_match_counter")); - el_val_t n = 0; - if (!str_eq(csv, EL_STR(""))) { - n = str_to_int(csv); - } - n = (n + 1); - state_set(EL_STR("__js_match_counter"), native_int_to_str(n)); - return native_int_to_str(n); - return 0; -} - -el_val_t js_cg_match(el_val_t expr) { - el_val_t subject = el_get_field(expr, EL_STR("subject")); - el_val_t arms = el_get_field(expr, EL_STR("arms")); - el_val_t subj_c = js_cg_expr(subject); - el_val_t id = js_next_match_id(); - el_val_t subj_var = el_str_concat(EL_STR("_match_subj_"), id); - el_val_t parts = native_list_empty(); - parts = native_list_append(parts, el_str_concat(el_str_concat(EL_STR("(("), subj_var), EL_STR(") => { "))); - el_val_t n = native_list_len(arms); - el_val_t i = 0; - while (i < n) { - el_val_t arm = native_list_get(arms, i); - el_val_t pat = el_get_field(arm, EL_STR("pattern")); - el_val_t body = el_get_field(arm, EL_STR("body")); - el_val_t pkind = el_get_field(pat, EL_STR("pattern")); - el_val_t body_c = js_cg_expr(body); - if (str_eq(pkind, EL_STR("Wildcard"))) { - parts = native_list_append(parts, el_str_concat(el_str_concat(EL_STR("return ("), body_c), EL_STR("); "))); - } else { - if (str_eq(pkind, EL_STR("Binding"))) { - el_val_t bname = el_get_field(pat, EL_STR("name")); - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{ const "), bname), EL_STR(" = ")), subj_var), EL_STR("; return (")), body_c), EL_STR("); } "))); - } else { - if (str_eq(pkind, EL_STR("LitInt"))) { - el_val_t v = el_get_field(pat, EL_STR("value")); - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("if ("), subj_var), EL_STR(" === ")), v), EL_STR(") return (")), body_c), EL_STR("); "))); - } else { - if (str_eq(pkind, EL_STR("LitStr"))) { - el_val_t v = el_get_field(pat, EL_STR("value")); - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("if (str_eq("), subj_var), EL_STR(", ")), js_str_lit(v)), EL_STR(")) return (")), body_c), EL_STR("); "))); - } else { - if (str_eq(pkind, EL_STR("LitBool"))) { - el_val_t v = el_get_field(pat, EL_STR("value")); - el_val_t bv = EL_STR("false"); - if (str_eq(v, EL_STR("true"))) { - bv = EL_STR("true"); - } - parts = native_list_append(parts, el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("if ("), subj_var), EL_STR(" === ")), bv), EL_STR(") return (")), body_c), EL_STR("); "))); - } else { - parts = native_list_append(parts, el_str_concat(el_str_concat(EL_STR("return ("), body_c), EL_STR("); "))); - } - } - } - } - } - i = (i + 1); - } - parts = native_list_append(parts, el_str_concat(el_str_concat(EL_STR("return null; })("), subj_c), EL_STR(")"))); - return str_join(parts, EL_STR("")); - return 0; -} - -el_val_t js_list_contains(el_val_t lst, el_val_t s) { - el_val_t n = native_list_len(lst); - el_val_t i = 0; - while (i < n) { - el_val_t item = native_list_get(lst, i); - if (str_eq(item, s)) { - return 1; - } - i = (i + 1); - } - return 0; - return 0; -} - -el_val_t js_cg_stmt(el_val_t stmt, el_val_t indent, el_val_t declared) { - el_val_t kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("Let"))) { - el_val_t name = el_get_field(stmt, EL_STR("name")); - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t val_c = js_cg_expr(val); - el_val_t ltype = el_get_field(stmt, EL_STR("type")); - if (str_eq(ltype, EL_STR("Int"))) { - js_add_int_name(name); - } - el_val_t vk = el_get_field(val, EL_STR("expr")); - if (str_eq(vk, EL_STR("Int"))) { - js_add_int_name(name); - } - if (js_list_contains(declared, name)) { - js_emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, name), EL_STR(" = ")), val_c), EL_STR(";"))); - return declared; - } else { - js_emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("let ")), name), EL_STR(" = ")), val_c), EL_STR(";"))); - return native_list_append(declared, name); - } - } - if (str_eq(kind, EL_STR("Return"))) { - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t val_kind = el_get_field(val, EL_STR("expr")); - if (str_eq(val_kind, EL_STR("Nil"))) { - js_emit_line(el_str_concat(indent, EL_STR("return null;"))); - } else { - el_val_t val_c = js_cg_expr(val); - js_emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("return ")), val_c), EL_STR(";"))); - } - return declared; - } - if (str_eq(kind, EL_STR("Assign"))) { - el_val_t name = el_get_field(stmt, EL_STR("name")); - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t val_c = js_cg_expr(val); - js_emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, name), EL_STR(" = ")), val_c), EL_STR(";"))); - return declared; - } - if (str_eq(kind, EL_STR("Expr"))) { - el_val_t val = el_get_field(stmt, EL_STR("value")); - el_val_t val_kind = el_get_field(val, EL_STR("expr")); - if (str_eq(val_kind, EL_STR("If"))) { - js_cg_if_stmt(val, indent, declared); - return declared; - } - if (str_eq(val_kind, EL_STR("For"))) { - js_cg_for_stmt(val, indent, declared); - return declared; - } - el_val_t val_c = js_cg_expr(val); - js_emit_line(el_str_concat(el_str_concat(indent, val_c), EL_STR(";"))); - return declared; - } - if (str_eq(kind, EL_STR("While"))) { - el_val_t cond = el_get_field(stmt, EL_STR("cond")); - el_val_t body = el_get_field(stmt, EL_STR("body")); - el_val_t cond_c = js_cg_expr(cond); - cond_c = js_strip_outer_parens(cond_c); - js_emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("while (")), cond_c), EL_STR(") {"))); - js_cg_stmts(body, el_str_concat(indent, EL_STR(" ")), native_list_clone(declared)); - js_emit_line(el_str_concat(indent, EL_STR("}"))); - return declared; - } - if (str_eq(kind, EL_STR("For"))) { - el_val_t item = el_get_field(stmt, EL_STR("item")); - el_val_t list_expr = el_get_field(stmt, EL_STR("list")); - el_val_t body = el_get_field(stmt, EL_STR("body")); - js_cg_for_body(item, list_expr, body, indent, declared); - return declared; - } - if (str_eq(kind, EL_STR("FnDef"))) { - return declared; - } - if (str_eq(kind, EL_STR("TypeDef"))) { - return declared; - } - if (str_eq(kind, EL_STR("EnumDef"))) { - return declared; - } - if (str_eq(kind, EL_STR("Import"))) { - return declared; - } - if (str_eq(kind, EL_STR("CgiBlock"))) { - el_val_t cname = el_get_field(stmt, EL_STR("name")); - js_emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("// cgi block '")), cname), EL_STR("' - no-op in JS target (server-side concept)"))); - return declared; - } - if (str_eq(kind, EL_STR("ServiceBlock"))) { - el_val_t sname = el_get_field(stmt, EL_STR("name")); - js_emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("// service block '")), sname), EL_STR("' - no-op in JS target"))); - return declared; - } - return declared; - return 0; -} - -el_val_t js_strip_outer_parens(el_val_t s) { - el_val_t chars = native_string_chars(s); - el_val_t n = native_list_len(chars); - if (n < 2) { - return s; - } - el_val_t first = native_list_get(chars, 0); - el_val_t last = native_list_get(chars, (n - 1)); - if (str_eq(first, EL_STR("("))) { - if (str_eq(last, EL_STR(")"))) { - el_val_t depth = 1; - el_val_t i = 1; - el_val_t balanced = 1; - while (i < (n - 1)) { - el_val_t ch = native_list_get(chars, i); - if (str_eq(ch, EL_STR("("))) { - depth = (depth + 1); - } - if (str_eq(ch, EL_STR(")"))) { - depth = (depth - 1); - if (depth == 0) { - balanced = 0; - i = n; - } - } - i = (i + 1); - } - if (balanced) { - return str_slice(s, 1, (n - 1)); - } - } - } - return s; - return 0; -} - -el_val_t js_cg_if_stmt(el_val_t expr, el_val_t indent, el_val_t declared) { - el_val_t cond = el_get_field(expr, EL_STR("cond")); - el_val_t then_stmts = el_get_field(expr, EL_STR("then")); - el_val_t else_stmts = el_get_field(expr, EL_STR("else")); - el_val_t has_else = el_get_field(expr, EL_STR("has_else")); - el_val_t cond_c = js_cg_expr(cond); - cond_c = js_strip_outer_parens(cond_c); - js_emit_line(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("if (")), cond_c), EL_STR(") {"))); - js_cg_stmts(then_stmts, el_str_concat(indent, EL_STR(" ")), native_list_clone(declared)); - if (has_else) { - js_emit_line(el_str_concat(indent, EL_STR("} else {"))); - js_cg_stmts(else_stmts, el_str_concat(indent, EL_STR(" ")), native_list_clone(declared)); - } - js_emit_line(el_str_concat(indent, EL_STR("}"))); - return 0; -} - -el_val_t js_cg_for_body(el_val_t item, el_val_t list_expr, el_val_t body, el_val_t indent, el_val_t declared) { - el_val_t list_c = js_cg_expr(list_expr); - js_emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(indent, EL_STR("for (const ")), item), EL_STR(" of ")), list_c), EL_STR(") {"))); - el_val_t body_decl = native_list_clone(declared); - body_decl = native_list_append(body_decl, item); - js_cg_stmts(body, el_str_concat(indent, EL_STR(" ")), body_decl); - js_emit_line(el_str_concat(indent, EL_STR("}"))); - return 0; -} - -el_val_t js_cg_for_stmt(el_val_t expr, el_val_t indent, el_val_t declared) { - el_val_t item = el_get_field(expr, EL_STR("item")); - el_val_t list_expr = el_get_field(expr, EL_STR("list")); - el_val_t body = el_get_field(expr, EL_STR("body")); - js_cg_for_body(item, list_expr, body, indent, declared); - return 0; -} - -el_val_t js_cg_stmts(el_val_t stmts, el_val_t indent, el_val_t declared) { - el_val_t n = native_list_len(stmts); - el_val_t i = 0; - el_val_t decl = declared; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - decl = js_cg_stmt(stmt, indent, decl); - i = (i + 1); - } - return decl; - return 0; -} - -el_val_t js_params_str(el_val_t params) { - el_val_t n = native_list_len(params); - if (n == 0) { - return EL_STR(""); - } - el_val_t parts = native_list_empty(); - el_val_t i = 0; - while (i < n) { - el_val_t param = native_list_get(params, i); - el_val_t name = el_get_field(param, EL_STR("name")); - parts = native_list_append(parts, name); - i = (i + 1); - } - return str_join(parts, EL_STR(", ")); - return 0; -} - -el_val_t js_transform_implicit_return(el_val_t body) { - el_val_t n = native_list_len(body); - if (n == 0) { - return body; - } - el_val_t last = native_list_get(body, (n - 1)); - el_val_t last_kind = el_get_field(last, EL_STR("stmt")); - if (str_eq(last_kind, EL_STR("Expr"))) { - el_val_t val = el_get_field(last, EL_STR("value")); - el_val_t val_kind = el_get_field(val, EL_STR("expr")); - if (str_eq(val_kind, EL_STR("If"))) { - return body; - } - if (str_eq(val_kind, EL_STR("For"))) { - return body; - } - el_val_t new_body = native_list_empty(); - el_val_t i = 0; - while (i < (n - 1)) { - new_body = native_list_append(new_body, native_list_get(body, i)); - i = (i + 1); - } - el_val_t return_stmt = el_map_new(2, "stmt", EL_STR("Return"), "value", val); - new_body = native_list_append(new_body, return_stmt); - return new_body; - } - return body; - return 0; -} - -el_val_t js_cg_fn(el_val_t stmt) { - el_val_t fn_name = el_get_field(stmt, EL_STR("name")); - el_val_t params = el_get_field(stmt, EL_STR("params")); - el_val_t body = el_get_field(stmt, EL_STR("body")); - el_val_t ret_type = el_get_field(stmt, EL_STR("ret_type")); - el_val_t params_str = js_params_str(params); - js_build_int_names_for_params(params); - if (str_eq(fn_name, EL_STR("main"))) { - js_emit_line(el_str_concat(el_str_concat(EL_STR("function main("), params_str), EL_STR(") {"))); - } else { - js_emit_line(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("function "), fn_name), EL_STR("(")), params_str), EL_STR(") {"))); - } - el_val_t decl = native_list_empty(); - el_val_t np = native_list_len(params); - el_val_t pi = 0; - while (pi < np) { - el_val_t param = native_list_get(params, pi); - el_val_t pname = el_get_field(param, EL_STR("name")); - decl = native_list_append(decl, pname); - pi = (pi + 1); - } - el_val_t body_xformed = body; - if (!str_eq(ret_type, EL_STR("Void"))) { - body_xformed = js_transform_implicit_return(body); - } - js_cg_stmts(body_xformed, EL_STR(" "), decl); - js_emit_line(EL_STR("}")); - js_emit_blank(); - return 0; -} - -el_val_t js_is_fndef(el_val_t stmt) { - el_val_t kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("FnDef"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t js_is_top_level_decl(el_val_t stmt) { - el_val_t kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("TypeDef"))) { - return 1; - } - if (str_eq(kind, EL_STR("EnumDef"))) { - return 1; - } - if (str_eq(kind, EL_STR("Import"))) { - return 1; - } - if (str_eq(kind, EL_STR("CgiBlock"))) { - return 1; - } - if (str_eq(kind, EL_STR("ServiceBlock"))) { - return 1; - } - return 0; - return 0; -} - -el_val_t codegen_js(el_val_t stmts, el_val_t source) { - state_set(EL_STR("__js_int_names"), EL_STR("")); - state_set(EL_STR("__js_match_counter"), EL_STR("")); - js_emit_line(EL_STR("// Generated by elc --target=js")); - js_emit_line(EL_STR("// Runtime: foundation/el/el-compiler/runtime/el_runtime.js")); - js_emit_line(EL_STR("import \"./el_runtime.js\";")); - js_emit_line(EL_STR("const {")); - js_emit_line(EL_STR(" println, print, el_str_concat, str_concat, str_eq, str_starts_with, str_ends_with,")); - js_emit_line(EL_STR(" str_len, int_to_str, str_to_int, str_slice, str_contains, str_replace,")); - js_emit_line(EL_STR(" str_to_upper, str_to_lower, str_trim, str_index_of, str_split, str_char_at,")); - js_emit_line(EL_STR(" str_char_code, str_lower, str_upper, el_abs, el_max, el_min,")); - js_emit_line(EL_STR(" el_list_new, el_list_len, el_list_get, el_list_append, el_list_empty, el_list_clone,")); - js_emit_line(EL_STR(" list_push, list_join, list_range,")); - js_emit_line(EL_STR(" el_map_new, el_get_field, el_map_get, el_map_set,")); - js_emit_line(EL_STR(" http_get, http_post, http_post_json,")); - js_emit_line(EL_STR(" fs_read, fs_write, fs_list,")); - js_emit_line(EL_STR(" json_parse, json_stringify, json_get, json_get_string, json_get_int,")); - js_emit_line(EL_STR(" time_now, time_now_utc, sleep_ms, bool_to_str, exit_program,")); - js_emit_line(EL_STR(" el_retain, el_release,")); - js_emit_line(EL_STR(" append, len, get, map_get, map_set,")); - js_emit_line(EL_STR(" native_list_get, native_list_len, native_list_append, native_list_empty,")); - js_emit_line(EL_STR(" native_list_clone, native_string_chars, native_int_to_str,")); - js_emit_line(EL_STR(" args, state_set, state_get, state_del, state_keys, env,")); - js_emit_line(EL_STR(" dharma_connect, dharma_send, dharma_emit, dharma_field, dharma_activate,")); - js_emit_line(EL_STR(" engram_node, engram_search, engram_activate,")); - js_emit_line(EL_STR(" llm_call, llm_call_system,")); - js_emit_line(EL_STR("} = globalThis.__el;")); - js_emit_blank(); - el_val_t n = native_list_len(stmts); - el_val_t i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - if (js_is_fndef(stmt)) { - js_cg_fn(stmt); - } - i = (i + 1); - } - el_val_t has_main = 0; - i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - el_val_t sk = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(sk, EL_STR("FnDef"))) { - el_val_t fn_name = el_get_field(stmt, EL_STR("name")); - if (str_eq(fn_name, EL_STR("main"))) { - has_main = 1; - } - } - i = (i + 1); - } - el_val_t main_decl = native_list_empty(); - i = 0; - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - if (js_is_fndef(stmt)) { - } else { - if (js_is_top_level_decl(stmt)) { - } else { - main_decl = js_cg_stmt(stmt, EL_STR(""), main_decl); - } - } - i = (i + 1); - } - if (has_main) { - js_emit_blank(); - js_emit_line(EL_STR("main();")); - } - return EL_STR(""); - return 0; -} - -el_val_t compile(el_val_t source) { - el_val_t tokens = lex(source); - el_val_t stmts = parse(tokens); - el_release(tokens); - return codegen(stmts, source); - return 0; -} - -el_val_t compile_js(el_val_t source) { - el_val_t tokens = lex(source); - el_val_t stmts = parse(tokens); - el_release(tokens); - return codegen_js(stmts, source); - return 0; -} - -el_val_t compile_dispatch(el_val_t tgt, el_val_t source) { - if (str_eq(tgt, EL_STR("js"))) { - return compile_js(source); - } - return compile(source); - return 0; -} - -el_val_t detect_target(el_val_t argv) { - el_val_t n = native_list_len(argv); - el_val_t i = 0; - while (i < n) { - el_val_t a = native_list_get(argv, i); - if (str_starts_with(a, EL_STR("--target="))) { - el_val_t v = str_slice(a, 9, str_len(a)); - return v; - } - i = (i + 1); - } - return EL_STR("c"); - return 0; -} - -el_val_t strip_flags(el_val_t argv) { - el_val_t out = native_list_empty(); - el_val_t n = native_list_len(argv); - el_val_t i = 0; - while (i < n) { - el_val_t a = native_list_get(argv, i); - if (!str_starts_with(a, EL_STR("--"))) { - out = native_list_append(out, a); - } - i = (i + 1); - } - return out; - return 0; -} - -el_val_t detect_emit_header(el_val_t argv) { - el_val_t n = native_list_len(argv); - el_val_t i = 0; - while (i < n) { - el_val_t a = native_list_get(argv, i); - if (str_eq(a, EL_STR("--emit-header"))) { - return 1; - } - i = (i + 1); - } - return 0; - return 0; -} - -el_val_t type_node_to_el(el_val_t t) { - el_val_t k = el_get_field(t, EL_STR("kind")); - if (str_eq(k, EL_STR("Simple"))) { - return el_get_field(t, EL_STR("name")); - } - if (str_eq(k, EL_STR("List"))) { - el_val_t inner = type_node_to_el(el_get_field(t, EL_STR("inner"))); - return el_str_concat(el_str_concat(EL_STR("["), inner), EL_STR("]")); - } - if (str_eq(k, EL_STR("Map"))) { - el_val_t kt = type_node_to_el(el_get_field(t, EL_STR("key"))); - el_val_t vt = type_node_to_el(el_get_field(t, EL_STR("val"))); - return el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("Map<"), kt), EL_STR(", ")), vt), EL_STR(">")); - } - return EL_STR("Any"); - return 0; -} - -el_val_t emit_header(el_val_t stmts, el_val_t hdr_path) { - el_val_t n = native_list_len(stmts); - el_val_t i = 0; - el_val_t parts = native_list_empty(); - parts = native_list_append(parts, EL_STR("// auto-generated by elc --emit-header - do not edit\n")); - while (i < n) { - el_val_t stmt = native_list_get(stmts, i); - el_val_t kind = el_get_field(stmt, EL_STR("stmt")); - if (str_eq(kind, EL_STR("FnDef"))) { - el_val_t name = el_get_field(stmt, EL_STR("name")); - if (!str_eq(name, EL_STR("main"))) { - el_val_t params = el_get_field(stmt, EL_STR("params")); - el_val_t ret_type = el_get_field(stmt, EL_STR("ret_type")); - el_val_t np = native_list_len(params); - el_val_t pi = 0; - el_val_t param_parts = native_list_empty(); - while (pi < np) { - el_val_t param = native_list_get(params, pi); - el_val_t pname = el_get_field(param, EL_STR("name")); - el_val_t ptype = el_get_field(param, EL_STR("type")); - if (str_eq(ptype, EL_STR(""))) { - ptype = EL_STR("Any"); - } - param_parts = native_list_append(param_parts, el_str_concat(el_str_concat(pname, EL_STR(": ")), ptype)); - pi = (pi + 1); - } - el_val_t params_str = str_join(param_parts, EL_STR(", ")); - el_val_t ret_str = ret_type; - if (str_eq(ret_str, EL_STR(""))) { - ret_str = EL_STR("Any"); - } - el_val_t sig = el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("extern fn "), name), EL_STR("(")), params_str), EL_STR(") -> ")), ret_str); - parts = native_list_append(parts, el_str_concat(sig, EL_STR("\n"))); - } - } - i = (i + 1); - } - el_val_t content = str_join(parts, EL_STR("")); - el_val_t ok = fs_write(hdr_path, content); - return 0; -} - -el_val_t dirname_of(el_val_t path) { - el_val_t n = str_len(path); - el_val_t i = (n - 1); - while (i >= 0) { - el_val_t c = str_slice(path, i, (i + 1)); - if (str_eq(c, EL_STR("/"))) { - return str_slice(path, 0, i); - } - i = (i - 1); - } - return EL_STR("."); - return 0; -} - -el_val_t parse_import_line(el_val_t trimmed, el_val_t dir) { - if (str_starts_with(trimmed, EL_STR("import \""))) { - el_val_t after = str_slice(trimmed, 8, str_len(trimmed)); - el_val_t q = str_index_of(after, EL_STR("\"")); - if (q > 0) { - el_val_t mod = str_slice(after, 0, q); - return el_str_concat(el_str_concat(dir, EL_STR("/")), mod); - } - } - if (str_starts_with(trimmed, EL_STR("from "))) { - el_val_t after = str_slice(trimmed, 5, str_len(trimmed)); - el_val_t sp = str_index_of(after, EL_STR(" ")); - if (sp > 0) { - el_val_t mod_raw = str_slice(after, 0, sp); - el_val_t mod = str_trim(mod_raw); - if (!str_eq(mod, EL_STR(""))) { - return el_str_concat(el_str_concat(el_str_concat(dir, EL_STR("/")), mod), EL_STR(".el")); - } - } - } - return EL_STR(""); - return 0; -} - -el_val_t resolve_imports(el_val_t src_path) { - el_val_t seen_key = el_str_concat(EL_STR("__elc_imp__:"), src_path); - el_val_t already = state_get(seen_key); - if (!str_eq(already, EL_STR(""))) { - return EL_STR(""); - } - state_set(seen_key, EL_STR("1")); - el_val_t source = fs_read(src_path); - el_val_t dir = dirname_of(src_path); - el_val_t lines = str_split(source, EL_STR("\n")); - el_val_t n = native_list_len(lines); - el_val_t prefix_chunks = native_list_empty(); - el_val_t body_chunks = native_list_empty(); - el_val_t i = 0; - while (i < n) { - el_val_t line = native_list_get(lines, i); - el_val_t trimmed = str_trim(line); - el_val_t imp_path = parse_import_line(trimmed, dir); - if (!str_eq(imp_path, EL_STR(""))) { - el_val_t imp_elh_path = el_str_concat(str_slice(imp_path, 0, (str_len(imp_path) - 3)), EL_STR(".elh")); - el_val_t imp_elh = fs_read(imp_elh_path); - if (!str_eq(imp_elh, EL_STR(""))) { - el_val_t seen_imp_key = el_str_concat(EL_STR("__elc_imp__:"), imp_path); - state_set(seen_imp_key, EL_STR("1")); - prefix_chunks = native_list_append(prefix_chunks, imp_elh); - } else { - el_val_t imp_body = resolve_imports(imp_path); - prefix_chunks = native_list_append(prefix_chunks, imp_body); - } - } else { - body_chunks = native_list_append(body_chunks, el_str_concat(line, EL_STR("\n"))); - } - i = (i + 1); - } - return el_str_concat(str_join(prefix_chunks, EL_STR("")), str_join(body_chunks, EL_STR(""))); - return 0; -} - -int main(int _argc, char** _argv) { - el_runtime_init_args(_argc, _argv); - el_val_t argv = args(); - el_val_t tgt = detect_target(argv); - el_val_t do_emit_header = detect_emit_header(argv); - el_val_t positional = strip_flags(argv); - el_val_t argc = native_list_len(positional); - if (argc < 1) { - println(EL_STR("el-compiler: usage: elc [--target=c|js] [--emit-header] []")); - exit(1); - } - el_val_t src_path = native_list_get(positional, 0); - if (do_emit_header) { - el_val_t raw_source = fs_read(src_path); - el_val_t hdr_tokens = lex(raw_source); - el_val_t hdr_stmts = parse(hdr_tokens); - el_release(hdr_tokens); - el_val_t hdr_path = el_str_concat(str_slice(src_path, 0, (str_len(src_path) - 3)), EL_STR(".elh")); - emit_header(hdr_stmts, hdr_path); - el_release(hdr_stmts); - } - el_val_t source = resolve_imports(src_path); - el_val_t out = compile_dispatch(tgt, source); - if (argc >= 2) { - el_val_t out_path = native_list_get(positional, 1); - el_val_t ok = fs_write(out_path, out); - if (ok) { - exit(0); - } else { - println(EL_STR("el-compiler: failed to write output")); - exit(1); - } - } - return 0; -} - diff --git a/lang/dist/platform/el_runtime.js b/lang/dist/platform/el_runtime.js deleted file mode 100644 index a223fdb..0000000 --- a/lang/dist/platform/el_runtime.js +++ /dev/null @@ -1,1049 +0,0 @@ -/* - * el_runtime.js — El language JS runtime. - * - * The browser/Node analog of el_runtime.c. Compiled-from-El JS source - * imports this file once; it side-effects globalThis.__el with every - * builtin, so generated programs can destructure the names they need - * (see codegen-js.el's preamble). - * - * Value model: - * El's tagged el_val_t collapses into JS native types here: - * String -> string - * Int -> number (caveat: only 53 bits of integer precision) - * Float -> number (already a double) - * Bool -> boolean - * [T] -> Array - * Map<,> -> plain object - * Void -> undefined - * null -> null - * - * Runtime mode auto-detection: - * typeof window === 'undefined' -> Node mode - * otherwise -> Browser mode - * - * See spec/codegen-js.md for the full design rationale. - */ - -const IS_NODE = typeof window === 'undefined' && typeof process !== 'undefined' && process.versions != null && process.versions.node != null; - -// ── I/O ───────────────────────────────────────────────────────────────────── - -function println(s) { - if (IS_NODE) { - process.stdout.write(String(s) + '\n'); - } else { - console.log(String(s)); - } -} - -function print(s) { - if (IS_NODE) { - process.stdout.write(String(s)); - } else { - // Browser has no stdout — fall back to console with no newline group - console.log(String(s)); - } -} - -// ── String builtins ───────────────────────────────────────────────────────── - -// Coerce both args to string and concat. Mirrors el_str_concat in C; -// the C version handles both string-and-string and string-and-int. -function el_str_concat(a, b) { - return String(a) + String(b); -} - -function str_concat(a, b) { return el_str_concat(a, b); } - -// Strict equality with string coercion. Matches str_eq() in C — which -// strcmp's the underlying char*. Here we just === after coercion. -function str_eq(a, b) { - if (a === null || b === null) return a === b; - return String(a) === String(b); -} - -function str_starts_with(s, prefix) { - return String(s).startsWith(String(prefix)); -} - -function str_ends_with(s, suffix) { - return String(s).endsWith(String(suffix)); -} - -function str_len(s) { - return String(s).length; -} - -function int_to_str(n) { - return String(n); -} - -function str_to_int(s) { - const n = parseInt(String(s), 10); - return Number.isNaN(n) ? 0 : n; -} - -function str_slice(s, start, end) { - return String(s).slice(start, end); -} - -function str_contains(s, sub) { - return String(s).indexOf(String(sub)) >= 0; -} - -function str_replace(s, from, to) { - // Replace ALL occurrences (matches C runtime semantics). - return String(s).split(String(from)).join(String(to)); -} - -function str_to_upper(s) { return String(s).toUpperCase(); } -function str_to_lower(s) { return String(s).toLowerCase(); } -function str_upper(s) { return String(s).toUpperCase(); } -function str_lower(s) { return String(s).toLowerCase(); } - -function str_trim(s) { return String(s).trim(); } - -function str_index_of(s, sub) { - return String(s).indexOf(String(sub)); -} - -function str_split(s, sep) { - return String(s).split(String(sep)); -} - -function str_char_at(s, i) { - return String(s).charAt(i); -} - -function str_char_code(s, i) { - const c = String(s).charCodeAt(i); - return Number.isNaN(c) ? 0 : c; -} - -function str_pad_left(s, width, pad) { - return String(s).padStart(width, String(pad)); -} - -function str_pad_right(s, width, pad) { - return String(s).padEnd(width, String(pad)); -} - -// ── Math ──────────────────────────────────────────────────────────────────── - -function el_abs(n) { return Math.abs(n); } -function el_max(a, b) { return a > b ? a : b; } -function el_min(a, b) { return a < b ? a : b; } - -// ── Refcount (no-op — JS has GC) ──────────────────────────────────────────── - -function el_retain(_v) { /* no-op */ } -function el_release(_v) { /* no-op */ } - -// ── List ──────────────────────────────────────────────────────────────────── - -// Variadic constructor matching el_list_new(count, items...). Exposed so -// codegen-js can emit the same call shape if we ever want it (currently -// codegen-js emits JS array literals directly). -function el_list_new(_count, ...items) { - return items.slice(0); -} - -function el_list_empty() { return []; } -function el_list_clone(list) { return Array.isArray(list) ? list.slice() : []; } -function el_list_len(list) { return Array.isArray(list) ? list.length : 0; } - -function el_list_get(list, index) { - if (!Array.isArray(list)) return null; - if (index < 0 || index >= list.length) return null; - return list[index]; -} - -function el_list_append(list, elem) { - if (!Array.isArray(list)) return [elem]; - const out = list.slice(); - out.push(elem); - return out; -} - -function list_push(list, elem) { return el_list_append(list, elem); } - -function list_push_front(list, elem) { - if (!Array.isArray(list)) return [elem]; - return [elem, ...list]; -} - -function list_join(list, sep) { - if (!Array.isArray(list)) return ''; - return list.map(String).join(String(sep)); -} - -function list_range(start, end) { - const out = []; - for (let i = start; i < end; i++) out.push(i); - return out; -} - -// ── Map ───────────────────────────────────────────────────────────────────── - -// Variadic constructor (key, val, key, val, ...). -function el_map_new(_pairCount, ...kvs) { - const out = {}; - for (let i = 0; i < kvs.length; i += 2) { - out[String(kvs[i])] = kvs[i + 1]; - } - return out; -} - -function el_get_field(map, key) { - if (map === null || map === undefined) return null; - if (typeof map !== 'object') return null; - const k = String(key); - if (Object.prototype.hasOwnProperty.call(map, k)) return map[k]; - return null; -} - -function el_map_get(map, key) { return el_get_field(map, key); } - -function el_map_set(map, key, value) { - // Match the C runtime: shallow-copy + set, persistent semantics. - const out = (map && typeof map === 'object') ? { ...map } : {}; - out[String(key)] = value; - return out; -} - -// ── Method-call shorthand aliases ────────────────────────────────────────── -// `obj.method(args)` compiles to `method(obj, args)` per El convention. - -function append(list, elem) { return el_list_append(list, elem); } -function len(v) { - if (Array.isArray(v)) return v.length; - if (typeof v === 'string') return v.length; - if (v && typeof v === 'object') return Object.keys(v).length; - return 0; -} -function get(list, index) { return el_list_get(list, index); } -function map_get(m, k) { return el_get_field(m, k); } -function map_set(m, k, v) { return el_map_set(m, k, v); } - -// ── Native VM aliases ────────────────────────────────────────────────────── - -function native_list_get(list, index) { return el_list_get(list, index); } -function native_list_len(list) { return el_list_len(list); } -function native_list_append(list, elem) { return el_list_append(list, elem); } -function native_list_empty() { return []; } -function native_list_clone(list) { return el_list_clone(list); } -function native_string_chars(s) { return String(s).split(''); } -function native_int_to_str(n) { return String(n); } - -// ── HTTP ─────────────────────────────────────────────────────────────────── -// -// fetch() is async. These return Promise. Generated El code does -// not yet emit await — that's the async-taint pass (see spec §5). For -// programs that don't touch HTTP this is fine; for programs that do, -// the value will appear as "[object Promise]" until the taint pass lands. - -function http_get(url) { - if (typeof fetch === 'undefined') { - throw new Error('http_get: fetch() not available in this runtime'); - } - return fetch(String(url)).then(r => r.text()); -} - -function http_post(url, body) { - if (typeof fetch === 'undefined') { - throw new Error('http_post: fetch() not available in this runtime'); - } - return fetch(String(url), { method: 'POST', body: String(body) }).then(r => r.text()); -} - -function http_post_json(url, jsonBody) { - if (typeof fetch === 'undefined') { - throw new Error('http_post_json: fetch() not available in this runtime'); - } - return fetch(String(url), { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: String(jsonBody), - }).then(r => r.text()); -} - -function http_get_with_headers(url, headersMap) { - if (typeof fetch === 'undefined') { - throw new Error('http_get_with_headers: fetch() not available'); - } - return fetch(String(url), { headers: headersMap || {} }).then(r => r.text()); -} - -function http_post_with_headers(url, body, headersMap) { - if (typeof fetch === 'undefined') { - throw new Error('http_post_with_headers: fetch() not available'); - } - return fetch(String(url), { - method: 'POST', - headers: headersMap || {}, - body: String(body), - }).then(r => r.text()); -} - -function http_serve(_port, _handler) { - throw new Error('http_serve: not supported in JS target — needs server-side runtime mode'); -} - -function http_set_handler(_name) { - throw new Error('http_set_handler: not supported in JS target'); -} - -// ── Filesystem (Node-only) ───────────────────────────────────────────────── - -function _ensureNode(name) { - if (!IS_NODE) { - throw new Error(`${name}: not supported in browser runtime`); - } -} - -function fs_read(path) { - _ensureNode('fs_read'); - const fs = require('node:fs'); - try { - return fs.readFileSync(String(path), 'utf8'); - } catch (_e) { - return ''; - } -} - -function fs_write(path, content) { - _ensureNode('fs_write'); - const fs = require('node:fs'); - try { - fs.writeFileSync(String(path), String(content)); - return true; - } catch (_e) { - return false; - } -} - -function fs_list(path) { - _ensureNode('fs_list'); - const fs = require('node:fs'); - try { - return fs.readdirSync(String(path)); - } catch (_e) { - return []; - } -} - -// ── JSON ─────────────────────────────────────────────────────────────────── - -function json_parse(s) { - try { return JSON.parse(String(s)); } - catch (_e) { return null; } -} - -function json_stringify(v) { - try { return JSON.stringify(v); } - catch (_e) { return ''; } -} - -function json_get(jsonStr, key) { - const o = json_parse(jsonStr); - if (o === null) return null; - return el_get_field(o, key); -} - -function json_get_string(jsonStr, key) { - const v = json_get(jsonStr, key); - return v === null ? '' : String(v); -} - -function json_get_int(jsonStr, key) { - const v = json_get(jsonStr, key); - if (typeof v === 'number') return Math.trunc(v); - if (typeof v === 'string') return str_to_int(v); - return 0; -} - -function json_get_float(jsonStr, key) { - const v = json_get(jsonStr, key); - return typeof v === 'number' ? v : 0; -} - -function json_get_bool(jsonStr, key) { - const v = json_get(jsonStr, key); - return v === true; -} - -function json_get_raw(jsonStr, key) { - const v = json_get(jsonStr, key); - return v === null ? '' : json_stringify(v); -} - -function json_set(jsonStr, key, value) { - const o = json_parse(jsonStr) ?? {}; - o[String(key)] = value; - return json_stringify(o); -} - -function json_array_len(jsonStr) { - const o = json_parse(jsonStr); - return Array.isArray(o) ? o.length : 0; -} - -// ── Time ─────────────────────────────────────────────────────────────────── - -function time_now() { - return Math.floor(Date.now() / 1000); -} - -function time_now_utc() { - // In the C runtime this returns nanoseconds since epoch. JS number - // can't represent that range past ~2^53. We return milliseconds — a - // safe range — and document the divergence. - return Date.now(); -} - -function sleep_secs(secs) { - if (!IS_NODE) { - throw new Error('sleep_secs: blocking sleep not supported in browser'); - } - // Simple sync sleep via Atomics.wait on a SharedArrayBuffer-backed Int32. - const sab = new SharedArrayBuffer(4); - const i32 = new Int32Array(sab); - Atomics.wait(i32, 0, 0, Math.floor(secs * 1000)); - return secs; -} - -function sleep_ms(ms) { - if (!IS_NODE) { - throw new Error('sleep_ms: blocking sleep not supported in browser'); - } - const sab = new SharedArrayBuffer(4); - const i32 = new Int32Array(sab); - Atomics.wait(i32, 0, 0, Math.floor(ms)); - return ms; -} - -// ── Bool ─────────────────────────────────────────────────────────────────── - -function bool_to_str(b) { return b ? 'true' : 'false'; } - -// ── Process ──────────────────────────────────────────────────────────────── - -function exit_program(code) { - if (IS_NODE) { - process.exit(code | 0); - } else { - throw new Error(`exit_program(${code}) called in browser`); - } -} - -// ── args() ───────────────────────────────────────────────────────────────── - -function args() { - if (IS_NODE) { - // process.argv is [node, script, ...args] — slice off node + script. - return process.argv.slice(2); - } - return []; -} - -// ── env ──────────────────────────────────────────────────────────────────── - -function env(key) { - if (IS_NODE) { - const v = process.env[String(key)]; - return v === undefined ? null : v; - } - return null; -} - -// ── In-process state K/V ─────────────────────────────────────────────────── - -const _stateMap = new Map(); - -function state_set(key, value) { - _stateMap.set(String(key), value); - return value; -} - -function state_get(key) { - const v = _stateMap.get(String(key)); - return v === undefined ? '' : v; -} - -function state_del(key) { - return _stateMap.delete(String(key)); -} - -function state_keys() { - return Array.from(_stateMap.keys()); -} - -// ── UUID ─────────────────────────────────────────────────────────────────── - -function uuid_v4() { - // RFC 4122-ish — uses crypto when available, falls back to Math.random. - if (typeof crypto !== 'undefined' && crypto.randomUUID) { - return crypto.randomUUID(); - } - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => { - const r = Math.random() * 16 | 0; - const v = c === 'x' ? r : (r & 0x3 | 0x8); - return v.toString(16); - }); -} -function uuid_new() { return uuid_v4(); } - -// ── Float formatting ─────────────────────────────────────────────────────── - -function float_to_str(f) { return String(f); } -function int_to_float(n) { return n; } -function float_to_int(f) { return Math.trunc(f); } - -function format_float(f, decimals) { - return Number(f).toFixed(decimals); -} - -function decimal_round(f, decimals) { - const m = Math.pow(10, decimals); - return Math.round(f * m) / m; -} - -function str_to_float(s) { - const n = parseFloat(String(s)); - return Number.isNaN(n) ? 0 : n; -} - -// ── Math (Float-aware) ───────────────────────────────────────────────────── - -function math_sqrt(f) { return Math.sqrt(f); } -function math_log(f) { return Math.log10(f); } -function math_ln(f) { return Math.log(f); } -function math_sin(f) { return Math.sin(f); } -function math_cos(f) { return Math.cos(f); } -function math_pi() { return Math.PI; } - -// ── DOM bridge (browser-only) ────────────────────────────────────────────── -// -// These functions wrap the browser DOM API. Each throws a descriptive error -// when called from a Node environment, mirroring the pattern used by fs_* -// in browser mode. - -function _ensureBrowser(name) { - if (IS_NODE) { - throw new Error(`${name}: not supported in Node runtime — DOM is browser-only`); - } -} - -function dom_get_element(id) { - _ensureBrowser('dom_get_element'); - return document.getElementById(String(id)); -} - -function dom_get_value(el) { - _ensureBrowser('dom_get_value'); - return el == null ? '' : String(el.value ?? ''); -} - -function dom_set_value(el, v) { - _ensureBrowser('dom_set_value'); - if (el != null) el.value = String(v); -} - -function dom_get_text(el) { - _ensureBrowser('dom_get_text'); - return el == null ? '' : String(el.textContent ?? ''); -} - -function dom_set_text(el, text) { - _ensureBrowser('dom_set_text'); - if (el != null) el.textContent = String(text); -} - -function dom_set_prop(el, prop, val) { - _ensureBrowser('dom_set_prop'); - if (el != null) el[String(prop)] = val; -} - -function dom_get_prop(el, prop) { - _ensureBrowser('dom_get_prop'); - if (el == null) return null; - const v = el[String(prop)]; - return v === undefined ? null : v; -} - -function dom_set_style(el, prop, val) { - _ensureBrowser('dom_set_style'); - if (el != null) el.style[String(prop)] = String(val); -} - -function dom_add_class(el, cls) { - _ensureBrowser('dom_add_class'); - if (el != null) el.classList.add(String(cls)); -} - -function dom_remove_class(el, cls) { - _ensureBrowser('dom_remove_class'); - if (el != null) el.classList.remove(String(cls)); -} - -function dom_show(el) { - _ensureBrowser('dom_show'); - if (el != null) el.style.display = ''; -} - -function dom_hide(el) { - _ensureBrowser('dom_hide'); - if (el != null) el.style.display = 'none'; -} - -function dom_listen(el, event, handler) { - _ensureBrowser('dom_listen'); - if (el != null) el.addEventListener(String(event), handler); -} - -function dom_query(selector) { - _ensureBrowser('dom_query'); - return document.querySelector(String(selector)); -} - -function dom_query_all(selector) { - _ensureBrowser('dom_query_all'); - return Array.from(document.querySelectorAll(String(selector))); -} - -function dom_create(tag) { - _ensureBrowser('dom_create'); - return document.createElement(String(tag)); -} - -function dom_append(parent, child) { - _ensureBrowser('dom_append'); - if (parent != null && child != null) parent.appendChild(child); -} - -function dom_remove(el) { - _ensureBrowser('dom_remove'); - if (el != null) el.remove(); -} - -function dom_is_null(el) { - return el === null || el === undefined; -} - -// ── Extended DOM API (browser-only) ─────────────────────────────────────── - -function dom_set_attr(el, attr, val) { - _ensureBrowser('dom_set_attr'); - if (el != null) el.setAttribute(String(attr), String(val)); -} - -function dom_get_attr(el, attr) { - _ensureBrowser('dom_get_attr'); - if (el == null) return ''; - return el.getAttribute(String(attr)) ?? ''; -} - -function dom_remove_attr(el, attr) { - _ensureBrowser('dom_remove_attr'); - if (el != null) el.removeAttribute(String(attr)); -} - -function dom_set_html(el, html) { - _ensureBrowser('dom_set_html'); - if (el != null) el.innerHTML = String(html); -} - -function dom_get_html(el) { - _ensureBrowser('dom_get_html'); - return el == null ? '' : String(el.innerHTML ?? ''); -} - -function dom_get_parent(el) { - _ensureBrowser('dom_get_parent'); - return el == null ? null : (el.parentElement ?? null); -} - -function dom_contains_class(el, cls) { - _ensureBrowser('dom_contains_class'); - if (el == null) return false; - return el.classList.contains(String(cls)); -} - -function dom_get_checked(el) { - _ensureBrowser('dom_get_checked'); - return el == null ? false : Boolean(el.checked); -} - -function dom_set_checked(el, val) { - _ensureBrowser('dom_set_checked'); - if (el != null) el.checked = Boolean(val); -} - -// ── Timer API (browser + Node) ───────────────────────────────────────────── - -function set_timeout(ms, cb) { - if (typeof setTimeout === 'undefined') { - throw new Error('set_timeout: setTimeout not available in this environment'); - } - setTimeout(cb, ms | 0); -} - -function set_interval(ms, cb) { - if (typeof setInterval === 'undefined') { - throw new Error('set_interval: setInterval not available in this environment'); - } - return setInterval(cb, ms | 0); -} - -function clear_interval(handle) { - if (typeof clearInterval !== 'undefined') clearInterval(handle); -} - -// ── Local storage (browser-only) ─────────────────────────────────────────── - -function local_storage_get(key) { - _ensureBrowser('local_storage_get'); - return localStorage.getItem(String(key)) ?? ''; -} - -function local_storage_set(key, val) { - _ensureBrowser('local_storage_set'); - localStorage.setItem(String(key), String(val)); -} - -function local_storage_remove(key) { - _ensureBrowser('local_storage_remove'); - localStorage.removeItem(String(key)); -} - -// ── Window location / navigation (browser-only) ──────────────────────────── - -function window_location() { - _ensureBrowser('window_location'); - return window.location.href; -} - -function window_redirect(url) { - _ensureBrowser('window_redirect'); - window.location.href = String(url); -} - -function window_on_load(cb) { - if (typeof document !== 'undefined') { - document.addEventListener('DOMContentLoaded', cb); - } else if (typeof window !== 'undefined') { - window.addEventListener('load', cb); - } - // In Node: no-op -} - -// ── console_log (explicit debug log, distinct from println) ──────────────── - -function console_log(msg) { - // eslint-disable-next-line no-console - console.log(String(msg)); -} - -// ── Window export helpers ────────────────────────────────────────────────── -// -// Expose El functions to the browser's global scope so they can be called -// from inline event handlers (onclick="increment()") or by external JS. -// In Node mode, writes to globalThis so the same pattern works in tests. - -function window_set(name, val) { - if (typeof window !== 'undefined') { - window[String(name)] = val; - } else if (typeof globalThis !== 'undefined') { - globalThis[String(name)] = val; - } -} - -function window_get(name) { - if (typeof window !== 'undefined') { - const v = window[String(name)]; - return v === undefined ? null : v; - } - return null; -} - -// ── Promise helpers ──────────────────────────────────────────────────────── -// -// Third-party APIs often return Promises but are not El @async functions. -// These helpers let El programs chain .then / .catch without needing -// native_js, and without requiring the callee to be @async. - -function promise_then(p, cb) { - return Promise.resolve(p).then(cb); -} - -function promise_catch(p, cb) { - return Promise.resolve(p).catch(cb); -} - -function promise_resolve(val) { - return Promise.resolve(val); -} - -function promise_reject(msg) { - return Promise.reject(new Error(String(msg))); -} - -// ── Object / Array utilities ─────────────────────────────────────────────── -// -// Structural operations on Any-typed JS values. These complement the -// El map/list primitives for interop with third-party library objects. - -function object_assign(target, source) { - return Object.assign(Object.assign({}, target), source); -} - -function object_keys(obj) { - if (obj === null || obj === undefined) return []; - return Object.keys(obj); -} - -function object_values(obj) { - if (obj === null || obj === undefined) return []; - return Object.values(obj); -} - -function json_deep_clone(obj) { - if (obj === null || obj === undefined) return null; - return JSON.parse(JSON.stringify(obj)); -} - -function array_from(iterable) { - if (iterable === null || iterable === undefined) return []; - return Array.from(iterable); -} - -function type_of(val) { - return typeof val; -} - -function instanceof_check(val, constructor_name) { - if (typeof globalThis[constructor_name] === 'function') { - return val instanceof globalThis[constructor_name]; - } - return false; -} - -// ── native_js escape hatch ───────────────────────────────────────────────── -// -// Evaluate arbitrary JS from El source. Intended for calling third-party -// browser libraries (Supabase, Stripe, etc.) until proper El bindings exist. -// Use sparingly — this bypasses El's type system entirely. - -function native_js(code) { - // eslint-disable-next-line no-eval - return eval(String(code)); -} - -function native_js_call(obj, method, args) { - if (obj == null) throw new Error('native_js_call: object is null'); - return obj[String(method)](...(Array.isArray(args) ? args : [])); -} - -// ── Stubs for not-yet-supported features ─────────────────────────────────── -// -// These compile but throw when called. See spec/codegen-js.md §7. - -function _notSupported(name) { - return () => { throw new Error(`${name}: not supported in JS target — needs server-side delegation`); }; -} - -// CGI identity -function el_cgi_init(_name, _did, _principal, _network, _engram) { - // No-op — UI code is not a CGI principal. See spec §7. -} - -// DHARMA — all stubbed. -const dharma_connect = _notSupported('dharma_connect'); -const dharma_send = _notSupported('dharma_send'); -const dharma_activate = _notSupported('dharma_activate'); -const dharma_emit = _notSupported('dharma_emit'); -const dharma_field = _notSupported('dharma_field'); -const dharma_strengthen = _notSupported('dharma_strengthen'); -const dharma_relationship = _notSupported('dharma_relationship'); -const dharma_peers = _notSupported('dharma_peers'); - -// Engram — stubbed (could be ported to in-browser later). -const engram_node = _notSupported('engram_node'); -const engram_node_full = _notSupported('engram_node_full'); -const engram_get_node = _notSupported('engram_get_node'); -const engram_strengthen = _notSupported('engram_strengthen'); -const engram_forget = _notSupported('engram_forget'); -const engram_node_count = _notSupported('engram_node_count'); -const engram_search = _notSupported('engram_search'); -const engram_scan_nodes = _notSupported('engram_scan_nodes'); -const engram_connect = _notSupported('engram_connect'); -const engram_edge_between = _notSupported('engram_edge_between'); -const engram_neighbors = _notSupported('engram_neighbors'); -const engram_neighbors_filtered = _notSupported('engram_neighbors_filtered'); -const engram_edge_count = _notSupported('engram_edge_count'); -const engram_activate = _notSupported('engram_activate'); -const engram_save = _notSupported('engram_save'); -const engram_load = _notSupported('engram_load'); - -// LLM — stubbed (browser cannot hold API keys safely). -const llm_call = _notSupported('llm_call'); -const llm_call_system = _notSupported('llm_call_system'); -const llm_call_agentic = _notSupported('llm_call_agentic'); -const llm_vision = _notSupported('llm_vision'); -const llm_models = _notSupported('llm_models'); -const llm_register_tool = _notSupported('llm_register_tool'); - -// Crypto — stubbed; could be backed by SubtleCrypto later. -const sha256_hex = _notSupported('sha256_hex'); -const sha256_bytes = _notSupported('sha256_bytes'); -const hmac_sha256_hex = _notSupported('hmac_sha256_hex'); -const hmac_sha256_bytes = _notSupported('hmac_sha256_bytes'); -const base64_encode = _notSupported('base64_encode'); -const base64_decode = _notSupported('base64_decode'); -const base64url_encode = _notSupported('base64url_encode'); -const base64url_decode = _notSupported('base64url_decode'); - -// ── Export to globalThis.__el ────────────────────────────────────────────── -// -// Generated programs destructure off this object. Keeping it on globalThis -// means a single `import "./el_runtime.js"` is enough; no per-call namespace -// prefix is required at codegen time. - -const __el = { - // I/O - println, print, - // String - el_str_concat, str_concat, str_eq, str_starts_with, str_ends_with, - str_len, int_to_str, str_to_int, str_slice, str_contains, str_replace, - str_to_upper, str_to_lower, str_trim, str_index_of, str_split, str_char_at, - str_char_code, str_lower, str_upper, str_pad_left, str_pad_right, - // Math - el_abs, el_max, el_min, - // Refcount - el_retain, el_release, - // List - el_list_new, el_list_empty, el_list_clone, el_list_len, el_list_get, - el_list_append, list_push, list_push_front, list_join, list_range, - // Map - el_map_new, el_get_field, el_map_get, el_map_set, - // Method-call shortforms - append, len, get, map_get, map_set, - // Native VM aliases - native_list_get, native_list_len, native_list_append, native_list_empty, - native_list_clone, native_string_chars, native_int_to_str, - // HTTP - http_get, http_post, http_post_json, http_get_with_headers, - http_post_with_headers, http_serve, http_set_handler, - // FS - fs_read, fs_write, fs_list, - // JSON - json_parse, json_stringify, json_get, json_get_string, json_get_int, - json_get_float, json_get_bool, json_get_raw, json_set, json_array_len, - // Time - time_now, time_now_utc, sleep_secs, sleep_ms, - // Bool - bool_to_str, - // Process - exit_program, - // Args / env - args, env, - // State - state_set, state_get, state_del, state_keys, - // UUID - uuid_v4, uuid_new, - // Float / math - float_to_str, int_to_float, float_to_int, format_float, decimal_round, - str_to_float, math_sqrt, math_log, math_ln, math_sin, math_cos, math_pi, - // DOM bridge (browser-only) - dom_get_element, dom_get_value, dom_set_value, dom_get_text, dom_set_text, - dom_set_prop, dom_get_prop, dom_set_style, dom_add_class, dom_remove_class, - dom_show, dom_hide, dom_listen, dom_query, dom_query_all, dom_create, - dom_append, dom_remove, dom_is_null, - // Extended DOM - dom_set_attr, dom_get_attr, dom_remove_attr, dom_set_html, dom_get_html, - dom_get_parent, dom_contains_class, dom_get_checked, dom_set_checked, - // Timers - set_timeout, set_interval, clear_interval, - // Local storage - local_storage_get, local_storage_set, local_storage_remove, - // Window location - window_location, window_redirect, window_on_load, - // Debug - console_log, - // Window export helpers - window_set, window_get, - // Promise helpers - promise_then, promise_catch, promise_resolve, promise_reject, - // Object / Array utilities - object_assign, object_keys, object_values, json_deep_clone, - array_from, type_of, instanceof_check, - // native_js escape hatch - native_js, native_js_call, - // CGI / DHARMA / Engram / LLM (stubs) - el_cgi_init, - dharma_connect, dharma_send, dharma_activate, dharma_emit, dharma_field, - dharma_strengthen, dharma_relationship, dharma_peers, - engram_node, engram_node_full, engram_get_node, engram_strengthen, - engram_forget, engram_node_count, engram_search, engram_scan_nodes, - engram_connect, engram_edge_between, engram_neighbors, - engram_neighbors_filtered, engram_edge_count, engram_activate, - engram_save, engram_load, - llm_call, llm_call_system, llm_call_agentic, llm_vision, - llm_models, llm_register_tool, - // Crypto (stubs) - sha256_hex, sha256_bytes, hmac_sha256_hex, hmac_sha256_bytes, - base64_encode, base64_decode, base64url_encode, base64url_decode, -}; - -globalThis.__el = __el; - -// Also re-export as ES module exports for consumers that prefer that style. -export { __el as default }; -export { - println, print, - el_str_concat, str_concat, str_eq, str_starts_with, str_ends_with, - str_len, int_to_str, str_to_int, str_slice, str_contains, str_replace, - str_to_upper, str_to_lower, str_trim, str_index_of, str_split, str_char_at, - str_char_code, str_lower, str_upper, - el_abs, el_max, el_min, - el_retain, el_release, - el_list_new, el_list_empty, el_list_clone, el_list_len, el_list_get, - el_list_append, list_push, list_push_front, list_join, list_range, - el_map_new, el_get_field, el_map_get, el_map_set, - append, len, get, map_get, map_set, - native_list_get, native_list_len, native_list_append, native_list_empty, - native_list_clone, native_string_chars, native_int_to_str, - http_get, http_post, http_post_json, - fs_read, fs_write, fs_list, - json_parse, json_stringify, json_get, json_get_string, json_get_int, - time_now, time_now_utc, sleep_ms, - bool_to_str, exit_program, args, env, - state_set, state_get, state_del, state_keys, - el_cgi_init, - dharma_connect, dharma_send, dharma_activate, dharma_emit, dharma_field, - engram_node, engram_search, engram_activate, - llm_call, llm_call_system, - // DOM bridge - dom_get_element, dom_get_value, dom_set_value, dom_get_text, dom_set_text, - dom_set_prop, dom_get_prop, dom_set_style, dom_add_class, dom_remove_class, - dom_show, dom_hide, dom_listen, dom_query, dom_query_all, dom_create, - dom_append, dom_remove, dom_is_null, - // Extended DOM - dom_set_attr, dom_get_attr, dom_remove_attr, dom_set_html, dom_get_html, - dom_get_parent, dom_contains_class, dom_get_checked, dom_set_checked, - // Timers - set_timeout, set_interval, clear_interval, - // Local storage - local_storage_get, local_storage_set, local_storage_remove, - // Window location - window_location, window_redirect, window_on_load, - // Debug - console_log, - // Window / native_js - window_set, window_get, native_js, native_js_call, - // Promise helpers - promise_then, promise_catch, promise_resolve, promise_reject, - // Object / Array utilities - object_assign, object_keys, object_values, json_deep_clone, - array_from, type_of, instanceof_check, -}; diff --git a/lang/dist/platform/elb b/lang/dist/platform/elb deleted file mode 100755 index 187092f3642f2a0385dcff20a9cb1277cda1c642..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212432 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�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¥IYj*I*|6dc+#y#<(>hwpyCXP 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 Pth~qePWKfv4yODsmLReF diff --git a/lang/dist/platform/elb-darwin-arm64 b/lang/dist/platform/elb-darwin-arm64 deleted file mode 100755 index 5d62fdd7c000255e1ac74ab621db75ac2e5e8a5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324376 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

    ll;d=rG^`UyJ#HTh^kniM8D95-fVL@ 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%0D`6{C^I9uHuj7_=mZQdlh%} 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

    !(9CqB zDoyf3#f$%b8GV87rmsUzHKOv?=%e`HIs|=w8@Cj1o zclz!CIBT%{H`+F*=)0s79HzPkN;~jSsr(!~DD2|lS||PnU_2faFMk1D`%wE9)ieGa z7=2^$Gpf%v>chTu?!JVTQ?2rKXBq7~pZG6se2M;pzg_?zUjv=<*2-qP<7|3g+h*H6 zf7F?-oD!A(+?eYLR`0vFtc?5`x72Nm1j2i2lV06Z*t2<01bd3wp64~yC7st48H_x% z=cX~$NvzA*#I@k(qv|AuYev_C)5u`H9he$4IRD<9aQA4ft-_Co{u$y2S3J*r^``Ar zv`OPd{bqs_^;yCbE@7C7WwY#?W`d{2=pS$WoeY@`W{pm|Pw_j)TYrI>%!;$>E-Qrm`#G7ba#gte8uOJ=BEF@eTUif^b+A*k?#i6$TQ!`bApqn#!-Bpk}Y&f|Chw3!0b}|Oc?7e zoS<6?Qf9?$ujrP}$*e71R1&P&u03i3{iN?cAb#;( z#_NqAKDe#%q0pYjyZ>iTVN&a!T}4Z`?fT@u_PloEU-yKncI=t-ZQqIu@yRr2U}{Nw z_|&*?aa{QHxbS!5!Xx6sXUB!ljSH8?g)fK;Pl^jqjtiH?g)ff_PfabEK%M1BDsXjb zN%KtUylTtN6y8N6covOF02d>`ljwx}r*(c;TXu%?t^j@be#Ykd8D7SD-|%#BzS*Yh z*1ll}?@AfBdZ#mEFZQAw^ zhsr?MthJ-tGM@OFWn2(nMy6dx0c9YhSXPnijRn%6vy$IuT4Qxx6=Ag}ne%BC=(2^I zUB71D5;qDwYR+^=SEpNR4zk=q(AF9+XIeVTQI-Bx%G}L5^A!1=2(Mtxn{;r__mUel zCo!+9kd;Yq1N2~n{yW}L&sYPtz}DPYG(32!`rDbWh0Isxigo|kNcz>sd7(P?QF(WG zc4wSfSFid0i0r7yYu`d6w1sbd2^;sw=U?-9YMW*yg|csXe=X@a~?_fDbu)`Wj=gbbH1f87o@phseD%e&gfr4)G+7 z->t3p8;xaohQHNU{Ybs<$mH#QbO(7o%-z1~y7~b22;9BeRHglEbXagV?bMhMUE9JK zbMJxDy=sZnNB1FF-<~%-_%FUCY<(+w760u4;f8!guhb{Pt@>1aM2NED_Zp&c`ldTR z;%w3#wN@t9maQd^b{&g&1>|+E-}Xk{#qZfO`jo~lgLexgm12A0YaPfK+A&jWihZ8s zqn_Zb2D%NeV))OWzY(8M zJ@+(cM-raSe4Xyh(X;f-ymg)d~5*}R_CjLv<>`G+3(aqrCQym<^>=gt2=@H+9l%}V;rl4IsWE1`Erz7br^SaQST z=&L%OE#8Lr1-!p4?)^^*i?`7lt#3zL-x^IDPl=BFPtjd?ntc2vTVoxbW)J1%$IWN) zG%a7nf55+3>ET~?e3SIu@GsNJNBqkH+Vu87_QzTqfs7CFGfU(7nILVl);rp+`K+u-2t%FzQ=6QP0{$ylnQK)!a(F3VlZ6aHWU;i+cH-Gu+Oknq)J$sY;tqFzM>p5Vu{eNq9k8^Xn@ zi|f(5&;3*CeYu~e-k*DV+S1%JQmS%)l5$t>b192*n^W$w>TzAq#HQ<$5}Q6j&i<$B zKH+5K>G!Ql4u3~*Q*!ve79)He^a=lNP0z3|eJ1sR+|M31OV-|GmVBPNG|AM<{PIq-V=~%)Ty!B7j6amR`m||rcS<1y~D{Zsp0FP zRTc0j)8QW?&yElMJFg=4*`SKpNvRLi-Na~XM zzyNP-NZQi+Iq1CU%`PPVR#F%wkbR+3> z9z*ZnE;aB^<7*v+yqmmZO-|k~C~s&$73G+)e!`@|r4SI?J8%9s%ydM&fexzyad- z(5HcccDtY-+cMybuw$ZKw?-H9tF_Dj*mFn9rgQEO*o$^&L zh246+>csyU=+;Z`6fYmfUHPGcWbuyp*jO+Xd|e6NrhvaIz~klU*Dgc9*3*(lMXxFi zWpmb}ALYd;{~xCsL2S6;O|!!NRVKVsuHYaumMzE}%oH4A#?l4PFk@+gXW_dMn7;u3 zqJlN}^aM^FVp#W_(dUAGjjnyJaZ2s>(HE}kIQ8DzJ>hN*Aw=%4ZoXjCh~kdA47g$ zH~hSG{G8X>&sm-WjBV+sJIw)fQS4!&@f^v`T6cfAGSz3uG)G}AQ0V4 z-G%FaC(u{yGY!UJBYN7d0AEEctkTbRq+d)ChL~{q#5JXK1tdf!gmEF7eEo z6}9^`H@uy)I2%1YGJc%yJ{cal-K^AEYkj+T!K~=}-lW!$Vcq9z`99Lw1o`wSy5o-R zpMtOb+l^2*-->4D@Y{=j)Be)hENAZPp5Spm( zZTe>WAA0eozAFOQKj`k^@s!nwUFr_baqabbx!*CT^)=3U7vfiGYyxKk@@?G3sE-d@ z$FT{0TUSdLY3Utu!m0GX`a?fyk-3PQ4e(9YCrqChiQKU<5g+Sr(UGb(tRV~ zzAPJglYFH_lD5<{_G3Ti-KN!yb8Ic8Z|-hgl5F^>{oZ(E>jC@{>s*(623qo{PGh8| ze^mV4jntNY@sgVu|7Vvam9pjX63~5&B{p=&B|##jJY4P2EXn# za4}kyHa69mJBT|k7q{KZ9b-vzw!k;|(WAmc><$oC9>wDdmrP2AMtY5rBRP+^%WGCD z-ArsFr4!|>{B9rN5yWlGTveja|t8q=s6GdA7W4G&)q9p0w%n+tAA zVU0V!y^r?wYM1zkHs*oSDZP(#Pm=TJGG;GC&N*k(*_`#l_KN$J-RDTAk@`00AGcWd zGo-iH;#L;@``6g(;h=ALLCp=K8YG=NLxH>{)?P zMgF8E`JTMDo3XY3D|nIJjPR{HfOI#K?k7?FSo}Cuf_LdTj0E$D?ht#Qu#fo{INON* zw;Mj)i2a?g@_W(A&pagB-;tlaJ zfqsnl-0*{x!I|r@?8O?;J$%7A`osE`d=GK92R|XPiUc3$#&eh(*o!f>a6LTA>G%wMde-S1uDjc`p4WIzTJm%cqltStgVWf%Z^C|| z7CTJef>|48^ZkU%q78vV*k(4j4Xddg0J)f3t#LCSep5Z);WTbA{c!-*@8w1&q(z ziYG5ew)s|o1?3-KkUfN7aI6{Y1;pP# zaKRZyaAiVv>+jL=i0|~zS}dn+^r)TSvd+oaY7xgmO zD>ROuvH{*<*s71_g={%-PIzq(%3xmo8yxPMX#@+A4;76wut8wW;*6ppdkNMO^>qvN zU|ks=VV+G(@U^zE_D+D;o0edm11&3pPcCe!+`fx-)RXLgqnUa87->wDm( zg#7EgYmC&YG5FTZ5?^(xQO*-X&hg7yk;9>xv+apaRv`=GRP#-|{61qqg2 z0z63G2ay;578&jVWWSFh`yGMocfVwDPF-5aPqMffl+lJPPxC|jqXOoK`;Fv!Pf=E$ zkuhgFI8^@Pr-uVoFV1-Eu3>NB)=l(;`Ybcqvs-e%E@geMOIhld__CH-Wo6GXiD&;7_hqjUZoY0i3n@E_thX%} zxusJtweM!9%=JAV$=$^q(K-;{e>afM{a*cdJyMqyOL*}$6>GCX-ya> z9JBsdI^6NnV|6d5Jg4Dk-Jk2P)*5T*umX$?e~}q_D(Ut5*>5GSD5{(teGR_67#cW@ zJHQQaSCneT>X6^9#)hW?d7^aa>icBsC*Axi>JvbQS*W~*$}chYNJHV_t@Sbk{v|z( zF28K^V4F@2q#v|i5BPg65mYZ8$a)nqv?4)zJp=~J)pHtJ)6LT=%ecB|Bh3??}$cr*8llAYgvr0 zjQz`6A9g=Uy^N7b%$Ez<8&x!I8dH#He82ZKOUrt{@X}2)k`pJ_@SMo`>mG??Z(PJV z?O*jDc*8II|M-TxiF=agMa17j+#mXX_4YRO!VE1SE-lD%}CXOylzAxUe%T9;?lIThI$R%OaJ4f1H9 zcs6%E;M?KNoBhG7z?-1xh{6^f;d!DHe+e+2eq6wF+gYAi+Zp^udSWg;tU1}b-=Zu+ z+MGv>;1%R2+9;iZzL7rR_a{Lcd2i3*tnk0l=@`hUHHR8$yLTvSfi=Ig!pjZzGCL=h z%$ek+xyt`wqcpVPlyt8x6^1H+sju4X#tg3q3%8h!43>5I$tFAbd!z zAbiL@g76`W1P7V1y98^{F9LyM;3o^=u^T1Vo9Pce2F?_p z&+`s&BV7J9*0x-CoKKInl?PrwuPJb#ZP>io*w3DfT`TL;0q`du>M?L9d`|J8yMieQ?ou9RKEWA?{bH~TJhD>JtKj=4S?eB!Y0`jnMcbs*9 z40t=%`D&Mb-p)So1@?hi>;qq5ALwi5yuNeafWKGv66yJ$fREbG7+#G2YH<%^_*vj9 zhrN$%yYkroWN;_A_z({|g!3qKBlI>-}3#{|H8k6w;-Sj~XGV*wwXIePtZY*p_Kl(ZPDAq{r>#JzXV}vc7)3+h| z)=%Gt=-b)gA_-g!>Cy+{?fRtnmOQ}tyMccAE4cX-9t?ZkVHQj{xp)nCvaR7vrrteB zA3Wpfz4*`Eo$%T0>!W|B{lu-WlHK?GXGZH>?E%IM%)HBzsq=&K>%+8rZd`l>adH~!AJ(~W+=kTMw`!{4Q^9;JO*^hX3=ARA`~q8pi8 zT2EpccjOTvt?rwM@?K-oil03ynoqxONz1bCcc^vxtd>4Ypnh)rvHH#(LrIC^QH|ZZ z(9_MK4NuXA-n8K<+E7GYix^jvC`a{u1Kg<%ZoJ!uqMU`>^j(tA&a0KY+;2`eZJ+-| z+LZrA+VuZL+U);D+SASpT?9{B#GQ}A-9=+2Y;O<$$0Z$M&Zo7<|Gc6j{-r=i_`RRB zhl^S!S^3Sj@=mhDR^Cq7%G(KBc{^b%ZzpW!?S!qo?Ql`cg;st^g=XwRD}Q@@TxjL* zgsuFYu$8|Pw(@tvR{l=d%HIyVbx*p_Y&wzri>6Pq>l6KY-}jzp#_;E}PWrr7)|~6k zH#gjGwI|ui?|!R2PS|RX9WI)Fk@bF34`cUqWX(xcW-N)h(R+~@V{WXwh&kf+)f~PN zzcCh=fA`9I@zuxWr3<@R^Amb>Uh^GZdSklHOIHJr=A{#Zwa`x8*(Y9FVVj>x4BqC% z-vKP-oh$#nndi2))DT>7J0HCh+X?Yj5%M_}A3cz7cJSWimHXrC_*i`OE66M(JI^aY zE@Jc1x0iO}qqT4Dj*tG`&&11e=Z+wJ^aerr=-&#$N3Rn+$Bg|3*n%uk{PMGkyU>iS z5&XUxdrI(9?Dhn&Fk`@=5*E5CO_=_cVZcF?EN1&=z$w~DvEMYsJ9-&*y(+GzTl z9gYP~HDX(xJO&>l55-$~z|Xk);{M0@R`J%i=zU)#UqiZV^uDgX_@rZ`Q@oW99%YT2 zF4NW*Tl&TXTiY{c$$!vl@jBEnygk93!^?K>|0&a~)v=QE0%y`takXHO*y zVPE>yws|$)U>5CZ28xC&Y|THOdpPlZfbRV3&NlB$+8cKE3ytuPE+5*hZQe{TwrKVl zA`j)sW@N9RpI75)N;yZ$8 zvDO1i92-0nUE4@(@XpygZPaLdQtzNm?)r7zA=aqXrOsK8()n8BXAJ6JymJuvN$>_g z-0Nxo_C4@Z!I{;TX%j-oDTvPsZ-xE}o=kZM88-(ln+@Auuc!J@y0(S*mP0Or9?P=V zOXS-scz3TL`)Nav{q>jiK;(O02qND*1YGIJ_qy8PMOgo8d8fOIt9p9ZH22#$rYg5; z47lOhugic?Huzh4lhO1NV;LRaQMP$4l%X}iwauHMXJ@aOWZ1l}_6b7QqL{MBQt52UykoML*|}Mw{%PeW@s_?nG?49RuonSq5=3^TgGSKujC^|S$lpD;;QAXgz}0bikJG#3J*>TB$2f)eFyipp2tK3n_{4AiAuVkauatHr%Ff zKdF85;nnAt1Wv}j)Nc%}f%kC7 z>c^UI@A+1YX1@LRk+yZU@D|uAw^lJ$eg>a|-Q@ZRb4q2R=S{7nyhHDlR!;q*ZPn%M)sum@)p zI_kP|U)%Bql^ZZPLRBx z6(sL9g5>>_;Dzk}1=*wj8W=qTzs_FHRKd@v9i`y17W)YCKKsCFM0*f)g&LQ&_SVxNc^qRbuy0%p?#W* zA?8x?tlKtB^Q6x)(GR`N870QAbvHu$Tq3XCPM#`DVYjUJo%nwN0x9?{yT7%55H*@QL)+71O{1)|V{MGnS5@nI^))2I#H#DWN zp!W&`*}u<^9jV{YU2|iEhd``t_=;>phJJ5Uiu!&CViEO49G8!MU z8b7w3-e7H~Gy46bK6C?HQf*$q5C1QHV-dE?__K}$(8r9R-RyDU53n)L!JY?OCTx0! z*A<(VpK!*6<$Gx?IM@shs@QKO<#UHpvVGqqa@>+6&fv@`HbbZRU$3uwGHJ!^WIuNs zC50~pceAV25613mQp*obCokRIT}``d*`G0gV)$Q=;pg4biTY15Vj_|4=yDgVRT{KjfQT>L!Zh2!YanG@9FFC->?>c4#sZTZfefyIlz8WzRCwet839? z&SszaG2?TRf6^Phjl0UG;qPG*XI-a(*MZE%Ig_!wrY>_P<4>M)*WUmRko7d6r>a^! z{uc#x0EvH?nPz=h|PC`eqLB|Nf(G-?GBj3^<>6tBITGyJoNv5j=-BC@-BmsUt34F5qE}J+fdT<6#2h;(N&KF2JtS8|=T_NLM=;8|y4w z;E&>B@-dhbfnS{;ntiU$#rl>E_awa${__0o)80CBx6W^NS4Io=AKjIqF*%2RxUP6Y z=r&KEH)cK4D-^iEh`rV`a|w32t*epuWs!g6z@6Li;omxl=S=!2zJCgj(LW_!`bX=C z`o~BA>_bkljI}0&9N0%+MiwTv`v7T7=pSu>Pu?-egAWjoMdMu`AjP7s(4#18-Mi5? z8!z{b3idii9kNvie2+}T&!c>g_#EFO6L|Kwm2RJn?~o*XhkT6hkTAYOitczFKenaY zrLUB4kXbXvg^EhbmlVBXKBPHVIJCAt54+(V``XI=y{3R8U#suiw%?GzBu9rl3AqIJ z9~t0j8GXHsv1BC7{6!W0?_>OU7&C@%`T!r}$7_XW3{XEOFovcRU*MZDz`EDFuW{ty zO!yiRb$y=wLpV}lXzRK zyB@V|v5uur*Ez_g;IG}@*0QzoZ0$@d`yocf_7EF&*+T9>W+pv+CtItXM$lk@J{u9Vn6(9Pwv9J*Q|US8x;7` ziGC!4?47wbXF7AO1bQdhJ(4^n8&hAebnsi{oJVb!dG$sHmQ*z+0`FPNHzm|jzD~v> z_c{R2*Ur;W@87AeK;c7S7aw6K{yAVgJ`^wem9DgF9P~zKTy6UwofYkDyXx9a-1o={ z>N&FQv1lIie4PATpSXU*J+EM$kAwCUO0U7)7+v)m6TtNb&cS7MIR~fnaWVMkLe9bE zv36cWdu2l=K1_N&S31nu($enVA7Ha@B#(U5<|3PkP-YAXDH5r zMn`(%ON=@CG3V2U+&zB7LXU4wGvin~ed+5L;_JVfy>a`VkM($@_I&@Ezul9Z^@is6 zJK)MV)V97K?U3G~FVE6RrvjyaQ+w5JbUkIi1@{s5>;2#pEqw38&n0bMsWd>*9EIJ! zyx)mm26X%KG4fP7v1N8S2Z4v-A+_hPBrKijvGt`!xR!Opwa0bOklhSFEqNL^T35^Z z8R0(GcA5yjZdW~ks-MDE{doS76MtP?{q$}I&(dMnBBvC88$mxJy{h~V`WV}fQpVei zY5FWy2b_(qQ5ajJBy5es*c$yAT^0MAVQ;W!z7Cy3A8filO-L@DN2V5sR#x>Nz9no8wa3+~N78b*PgruQj8+f)q3RU4$!W_?>IdW? z_(6~@=$3~W!!^1CBoVz|4|x8g_k>?CR^?kD!@!<_@gtdvNgJd)FU&Gh4<_Uk`}3>H z4q)R~gd9<4U~Jz6nc>;AOEli3kJLV2f>Dywi~B>`CT#cNv%9eElI^~e1*dHH;Ya+1 zO7^Q+woSLjK?Ug#b4FZya`|3xY1);nD~IxoSdLYnoN#~YqdHEYK03drGegMZ%3ni% zltkU$M}{;Jx#oVSjxV>@QGS~Nr)bZ_=@LREyJKkRgO&XqItk;@-ki4eA3(d zF22Dhf*U`+!6$+nf3o0|?F+yOXHiNHB;*#e$zRt@8v6_{cfC^gfAV|?nyq@qEZt{L z_#NUq<0Qj6M;vl+!un+4FR^)Y~A9 zUGI$WF2>%AZoP%i{q{Ng&{6fywCa7LeL0!*>Pz^F_P$iT-M$pQ>rSxV-QoL1>fMfS z`n~dVyWR_qs`uB!cm4_BJ9L8e?hfDg$Kl%=pRKBQM)=~R>fJrQ4?1&4=Quiik7R}S zkgsD$(>~sXZ+Gk$(&w+8V7*;@=Ud}MXS_1Q)8g>0c@+In_0A6G9aZlvYn<$I#&_E> z$G3brWQPAhzFH?WPTYB^db{C9#>uV|toK32_dAU52GY2GCx(*$VP||_%G{hc5*zgd z=o0jM3w0FD6kU=$;-KVb(9Sk*wu4*ShsX-@Q2qAO-Y9%iAL^$*6HW0M{n)n|YxA%F z-VxT}m*DkF`u@O(-aJRX>kW&}lp~X0=>4iPU0*VGnRhy6?qeNOxt+_*w#%H`QD!=2 z-ZG-2%qhr3R(@rf>7Cj+-6=E5nx}F*m)X}Y^VW_svnlhjxH2yt!g}{LaeH1T+@^Oa zGuC(;|dko#*xy*;-#_g2x_88j5KIqsqq4WHFlrkGEnvfpu9Y+t~PuCj3?;Y_O z=}TOCpuTj+>y#yC(=FI=ecib^-)ZA<=jJ0FZKTW%^Cor7lS|PRYHohf&xjqrot7848Wgk_kYJIK|xP=-geG6m(+>>D-k5^7(vpG6C~~V zf~1`&NZN~ylK#ULChZT5l37Z7r66hlLy)x71xfoOLDJ3=B<=M^Nx#b!Chc5@@2qtA z&O2;8N|;1NflQ z9=!-!+;v|Ub@mz3Z`u0{@uk_}cfohZJ|lzipBcumfqjM@);`0wNpkkl3w@Vb`{;!! zmss&e?TQ*Rb_Ftx z@_X@b0DPElG~Qq9hCgU=${%aE}v{* zlE9a&tEUMfGdfccnb9!8itWBpf`RS6(SkqO?lT4FZTFo=`h3rZ7wB)~NyQCQC0oi2 zzfOIk#j0C&coSh0-Mq$DZ34Pc1G|F0W~DF1sC3iiW5cd=zvEli7huw7ZOesgJ)4J!SEI-*d*@K-+)qw2D`HPw-OU_?w3dlJq(i*bPMR+f&6^@@vTB;htXlO!pU5ZJWn)g!=lq>r{GT-Jv@BKkLdS z^?Bl^qC1LL6dn2T!$o&Y?CslBw4@fl;-@ekRF?}#XP~RJpY6PUbb@(hSb6D=0^b{X zuNb@UgYMOG??Rp@ad!e^RP{XDsplh*iw~Rj%CU~j?qC*j?K*S^5#ppjxSVh?`hz53*R#rhL4R;MvhhEmKe!(K zK{EOSowJ|AIr}+xB(Hb?{ejNePoe)tqCcoaKTu@p4`xMKKP>&h&#A}8IQ@aEU&zOP zN46T4Z7X$|g+5_~qfeNHJ|Seu{(WJ!5kGM{W4}&ova3%J9$bCGUpONod8TOm-4AH) zq=(~m3KQ@}pgG~8j`9P8UMt34VVz}%W|h-7EZ<;>S+_3GYl~*d2FD)% z9%xK=^UT!`bk$}2*y;0lT}A}jCcS}d$>a42!dc7S?sWr<@olEvyW^x! z7|wVSO*)PK7ybPzeZuA7L48<7e+VC6rBAp5x*o4jxQO)9Cp?ZV1H@_laQZu5ub}uG z=&xvcFY44;es1%*UHO$`=@g!(ERDq~%8|Y@Uj96hy8AufOy1v*d?kN=99uH%GS>Ge zZ}EVt`<3WM-E#E4$r`sg;lGilb6dWiY`T*4|0i_;|6xAJbXU1_-Pi1gc)4^Fbyhz-hCR#%tIpZs`A60H>&c|^NZ*-v%tG(x z@{UHDa&WYUjezd4`1)U>aZvE|0`;Mfe1Uig$x^F!UsqnGBd@7PO8 z{xmO69{o7>nvwj4f9(wx#(^9cAWpktNn+A3F9c%j_&me90+O zex{BgOI#W+ch9BFv*Tomj}7F^-dC2{8Mh6caNDgcacO>>++Dbx5?AKqr+$6h)|?1# zdIVw)Z@%YuY{Ick4jM?u{X0tO-mVcKs3DD_Nna5h|q`R^9K%3Oo-1fGD z+jd!p(r6#J44YW(10VNhFVPr2{ywk+&&ia3^gb}VeIK~^KGB&>_Ru-udDzLQUdKBJ z+}&A;+BjcxvTe~Biw4$P@ubs%oouM!&o)t}%i}2Q@;J{r@xKMe^EglQEc=lR_`O>l z`;jg1cj8m?Y2Qw0yLhST&_nIFKA;VkaW;jqHB5D}>>SuTY47dwVzSdHfKSwzQrri8 zAJ2z9=F~-eqrz?-?{VVq2gcV?@!j!YErxwwDc%mzJzFtn3I2fxHC=zaJ++^6W!Ri{ zKL5D6$5z|th{y8l1pedBnB_$0W7qSa*!ARM*Ylt9A%vZ}WE&IV&E2!av*FPdw=2P4 zJkjvKJ`n#m6XDNgv+tfc5`I0jKlZNvyom0t@E!vBXLdcxI$=B zZxN-tYSu`1R!1gI^-Q1b&<~ukoyD?p-xTczX9h+i>Ga z-x)@>aZ-iXcxeLd#gA)U*bGTtfStc z#4#qgm)f$M-&#u=yN!LrzxqUd-ZvauY{^W@8p*4Ub}8@S9^YcSOgqnqkJx)v$vGPF z&0WX*jNg|Puzpy!oSSuiv3uL$U4#C3on#;JIQ@rRc3LZK{UPCF(BgJla3Zu=W6Y(+ z3cGafA}9V*U_70h$n&vi@k_jOX>ki}cWLn+d^&s;E&ea|w-FNeRl&z#S?(rQ+dhOlTBjeIopU$)P zHIj?ukpF~)oZeXll4WLvA0QtSenGTIcRaueb?O(z-m2=MC@OS2s z51BW1*~LbIZF9GXcN*{2RzGHkcao=UF&EO8c0Xl@NAL}G874e*zs6>UC(y69Y!n?& zmwtU&WqYn=FXzQFT|?t^1u${N2F#x-a0l>%57#fgR!4zzSEc%xaZ|`%H_UDFE-1A;|XmUD_de z^znEbFMg`r`Lu?#@x0A+r;e(-!fxHa@5EmYjIX=myTiK&UcWnj(e+(_7WF)yZGN2m zr^(2#Dr@0;wXp);&WF9U@yhp(G_!_rPfE%DGW3mnb2hf%k3pZ`g{RJ8-0M7rcn`(7 zd+!z0*OejpJh|wX`dNCLS?FzK1A1(GFx%eIB)xFAkuvr(?hi0$?7g=gZuI81+iB+X zkp3Dyu3r#6ZnEH%?NhUCJ5AZdzGK;g<+j^{t)ZQV$m4PD9-RW8l=qeU!_M{)+0;*U zJIp$${dXVnSkMF87A$v(AKc}?*0GP#e&VY5eN3jUt3CeSyR)wLFm+a$F>s-BJC})# zgUbAK=Q1m4oA4;z>0_J+)xPEUWp?aa#LxYYQ>OMNDz|f)==fCT){Zi*{aRd^?Ds8u zldrR1+eDeov{Pj+N1oGlzh;fgx3pi&Y2UB0H|^N3k;dAuAy@e(`?Xb+f4u$L0N#I{ z{o3*7pTAExdkg4eJS~*JtODkv?)Y=hv888o4sE;#Jy?3!h;-}?Zf6|o{K?+loVUO} zO?qAUf%1bdn3XSZH)51DIm>Mu?h?+U;g4ZA^Sit-?mSu{=h2Edk5w z!H4&74+r=5{wMk+oo#!hmi~gLei(=kfjQ#m#dqT@IY zIYfP)cj`0Osn3nTY4~oIe*B#0^T;QUeDcUAZ`1_pSGYHC-VXS<7V^;C)t$B#$iS`n z!an71X+~<*x#mMZBcBS^arE0IwbG9!Vk1v_V5MlKk>c9OXNH%nZ1TE9kT%|Ru92pB zG$P$y3$nr!c{kh>9jX4?3x4eVuo*k|WMi3pv@5;IH{dW$?{#h~08j6nOX|c=Y2CH> z*qY;?NqX+y6XR8@9GOAawRXMQ@ax;xGnon$Q2oYyz<(JUB0#%F<>_`TYRj`8R{;w_JVekLC85zees z!58R0hHBQE8HA}z+AGva`v@QR^hEF{p}Ek!n!DA73!uiB!qyn$d506fOOSExjx(hr ztKfUYYc61S6O8=T2w8V&=U0{8L%isRc``JIGoO8lTSnf)dA9s-@+`kKwp=!g^%ol` z=u&#%?5NW1Wqs8BS^MAxRwiV$R&hqrhtG~jIYYRS{rB07aqT_oxf>HY*cyUX1hB7M zh@E?Yd+R#xFLh<#;=Qn&p}faPo3N`tgt(VhdS}2fbRI!J1d^NBhY}Z^Aeuq zDE|>%?Unjck7+5!T;^7}=9Xo{RFl9S-^U)`&mKRCJ$`TY_`!Ff#;9c7|Ll4Kx1_tdL`diec1+WFv8Vd=pud4K-~MY zM~aJb~;fl;%-*h!=RTG%q_e_Q-;Z!QDmR@Ir7o z37k&EUTgyPVhKST*WK^6JJCU8#gbD9?_JmZ7lc2`7tK@H8ZSIQ>BK(`j2|yg@O%sW zo%|}%Z|fSFpNv<_x02?V#_;Jt#l!D$9|<-@@Sh=Q#>mRsqRW|+hiKbDc=&_hKf<1+ zv8@f?|7IxR75i=~-Afgs9NpnDo&M5&UHeG$aTEN<;IWU2FLAmfI z=QlMvzUr!-`m0?EyY0HsiPyM_ZdL?!J-F;vuBN7r{~fJgl|L zERCW2Tjygg)*8`~@)0tT?<-16V~+tBmU2dyey(8M{N(+%3=S*^ThlQ-=$DfcuhzO$c@d3W1> zLb{W`b{*RpwBs`BG73 zXqWg!i&yDx9I$Wcj#pG!S6cPAZP{)hY~_KT;6!W%8?oE_fPUJvNW6`)^~eGbG*b1n z^P5V3krT+vz*bQAtdfUK7ZN)Aoa~CT2F65JTCh&-7-Z7|h21&xgcBbE#?P6RJnOu7 zBWqaT(0NS({BdbqijQ~3ciOw`xx~}Q&&_%#Kg~^r-EwN3_y>XUCSTi}Vl!6M?ivr%10{@NFI zZF9j8yUq6ffydt)vTgz;&mD(k-Ifo<0D3BgP3Cd{9hJh(==*liMmO!-J8fDP88oiMmu&lY9JR>!ehGK%)v!lz zUT#*JgN$L=7|*?nKGPha-*$uxBFYu!RPw=LKt42SRXeMv-naMvc@dUqnvYA}g*G#@C%S^uJ z2cF=~1y_&W-pfo*>t`nKP2$&w@BlOU<`gse^Mu~vzM1bQUpvbaoLTJ&ZqGH7&+2a` zPk-DK{K-Uf%u>>Q?l+Tfe9jY`>mN7fIm)?&^jj%w)+vnF9-gg1o@ak*Y`x_zW9xM< z(Y7azttsR^<9=gn<$ut|^J&|6jIFzgTaZE9PN6NsY1@yC;GK6E!LncZ&bSs?&5zgM z`{ETNc+Go8@XSmzdG3BAc+1eMMi1*jINeO1`E5@yow}4KQ+LuVOEZ&~Wthot=9tMh zjPV3-9eVZX;na6%wwavK+f3en65rD1Tfs#J`MpKk0+)G$w_R+Gd6e(u`{c}1%;dNE z_5f|ztuS@`EoGI1gIU*mf{&8d?aAZDWbk}DZGVUIM}WK8cQe1J$H-JOIfc3ee(nig zL0z(_%TPV9=RNr?JGr2 z14<^B{VL_gn|Z#K=Q5tx^SfDbz!c&$iGN#R;!=P^i5p4WP@WI!nP0)8-%K_Zt(&}P z(esmME?PhNqeW{cmoED4FqJzn7|mH$QUnOHEr}K_yN4D$NR|_Pc(v) z8S~#~%zMH0KyW;Pu|JV9a|vVS2NxT`C&2mm=cbLWVO(6q82UYUznF0}i0>ydj&{%o z3H1FS#)p?asNwx;;sy~e{iW}WnWG9$pV9w`$))$ryJ7q$T1saQ< z0EgUn$vm6G86582E6)cXE*^Y_=Z&Ik`mHG5J#F4J>6pN8JJew<(UlDiS`C7FlM$kX0!D}SEn|Go=3@fDqY zWjDazwDyT##q zw{+oqTWcJ?m%6?0@V)R8X|9d?fh#s!cLl7pcwua`Tj3GmLE_&JuQAfKX8GWYCICG> z;_kaV&A#u_B;M$6hriN3W?xY2bi`lBTEf0Y-~Tu9@NREX%V09$jqsYtiQX*O zXIS}uLRf|%d$*0PZ1Kh~7>KJ$^k$dSm!$Q3ZHl7pw1LMuWr_^mpR=<&7-|##C-L_mZ zg~pmG;sM_5BsY6fJV0Oj4&j<}ztYZu{rsB+iDz0ket@#_*{f>rt#!DR`m7>O`_M*> zd#mrb7m#;e-qjQLc5?KEjg0L#30H6@p3V*lzXkl{J3{w(-y4_q$AnkT88OPYanZIy zW8{IGbe_nA`@nHRUgGrxb5v3oUi&bsH?dv36tI%F72%d)??x9o8%Y@}Z`(_1p- z98cxG&4alQ)e~*I%d^4eh0e8jq5UoJD^DS>2LGkTxegzb4*yzJR_DjIhPJLxGugwW zx55*ZTYbg&(f(9z{V&?5J?bX-AUEF@=l%V>yXq;kX&U*v@5Fz-OPP5_zd8BvLx*=R zC}~Ev<)OVhs^O)3!81Y6CPMEP_Qk&(vW6>ZLz~x2-Mt(B0)7^hmc~{L!8fSRK2g?4 z$}xr*!@qdyd$E;Q8M~hRq* z^_*&yQ~u`#KFwEbAY}vff3f^kS2^V;>MoRw@Ow`A8C}{RK1TaR*N@fy@G;uoo`&{U z->UiAKfH;)-oyIRG45=?Nb8~H7Ap6VTd;7Oul*<^^xNzvn@9BTZ4b$oS3B>13F?NR{i_7YYesz=KnK*w_wo!gr zFS98^K6xI}^Bf_qZ__zJ*<$AujN7omIk&f+@-}8kmTrW1@l6rm6jqy2pJCt|c-%al z-^+j=tNcya5z6*c_AL8J$KCO*o(#1;6PZPJILn#?Idi6`V`DhbjJDyIJa$)oePDon zZ?Q|KUqjBJbEm#vrsQ*+Yg?vo@{Fuj`Oww*BKakA->d%BNqi%GI(@PRd7aJ|DV^k$lhq&O ze~}>hPZIp=wXq3;^w$M~d#{Z>#JrI|$Uh-RkblVh&pFe}b3@X3^J{jum3zRO%2l6p zckpuE&mnK0^=7{k7LoM#X1s>o%Q@FLe4%b{Ucx zD}L;pQKJxQr01PNnY1yl0J`#TSAHZvk#;{li2cfJ%4|S3Iz@Hm+fOGBdqwb zbB2#nJ#Be?R=7y=6RS+*?BGf3>lNhFwLi{y&+dZ`H&Po87w9Hh$`%Xw(6HI=7(V+&cQ^O>*K-0++m^o{cdzZjHg?MH{PrY^f-OmGzK z$$@^BKtD$kcX0lgVB3X-vF1U`#x&>g>&GvPUtfMF^Xtv87rz94Z4ZxWKFseRzrFlE zCMKe!+6PGM>)$XrvNJCI56=z$_-oeTr>et8ae3698@%iU>u|kWht|0C z@17expY$7P1F{M9g!sJ2XXjY(kWX92(w1i0Fcv&C04001_%P%`KT=&ji^FOEvB(p? zSzcwzYj0d$Q^p4KzF}VQZOfVu#^tqWY_QKa%Q&)`E(tj`bJMmD2@hLvV9gmyHYdO46WH2)R%3)ExtM0*_tHk$*cancwgZmY<&pHUd zamDSPrpTY}E8Fs?r*DefS%^>d84vsJn9zG7W83$hzu$zLJxyN>;+_`Hw1{>>FV~7* z%5HZ4Lh9|(u&5Dyhjv#{Uvv~DhtZ3v&eGc&zN)fk_*VLF*(Uaf*EtAoZ2Pq=tL}@b z-!16RjRoiYPC8cA`6}YFsI&aaVi&b80^g=~C-yTBne5jWjvw9XfuH}`g1k$s7vA}> z&LCuv#sKFkOMafSDNl8g3|L{=Nb0)_sgIub(T?ajh3J!w-I0W4xf7Onnhvv0?P84* z4-y%i5ZcB16k%FX)S;NRXo(~zLvjmiLy6}Yz?KDB;NyUQb zM+*hfm!2w!KI2=0=qU#ZQrCPz*1iEitzE+TcUTv+7tlEKrNeVQXUwgA0-yJTw$zXH zzShh$VYvkGj*1WTbZywxbjr^%6_VT+$I-qMUay*z*UolYzP5mM z;ht}p*RPb-de-POCZoOeSlm>oXDf|=p5&~?pQ(T@1J z+gRIHzH4Cjb9d9d9dkFrH}2duKIoXc)?8#AQ=TK3!*4GxvF2+weC{at+;fOq@L~z_ z5bmsE56~t)uoK^!!Cu4@P5@7aXf1ONKFGrPKH4Z=i1BXmLivL5LR!z_c_Gm&<*)C} zhlPJ+QsQr~OAB5?z8!O$vxcHGi6z00`h2rK?xlWNZI@x?RbCSO+c(T>AAMu~+RjV% zBb=xEM&oXW@{tUQcDFDF)_%i$-c&x%b{=z&;)_CK?dNxB%w>evK-(k>(U^-LM}hh7 zILfxx09U4=HK4k(t-R4$1MG2>ZLI-S>`mS8lE}Y1J-+NwB!A3jOnC0DD*G1SNp_mA z_5Ms`#>k6RuW{q5%KpN;3NLu@Mn{q+Hjpt;x~L>rf$f{8s;cY~+ILIO#HMC+=i*!L z<9o|C+4a}c@7Vr&0>~33E7rbtD(NI|Rk%BSe_JT&`)eEALv%)oaEZ8Ns?3Vxq-%m<72X++2F@?$e;Yekv!ozE9M{}|t0sqZd# zzPrR1Jm(nSeP7>Ab-ru#1&1EvyRrK2YH!TdHGm7t)`0qUx^qT-*eu&N3y0&dU;2IH zx8JdBMlJiW;ghU>0C_~5iVoiPyFhFqAlo8`T*b7FjHyp>X?(g1o3@|S*M zol^#htU6r09X$-^(sx{E(nc+1;u%iqCwzig#8C5f&wrX9cevd8fGjNxZFZ9Yi6;*^){w+?YP z^?dL?8vMoJot2+!qxlEuhV(3lvsUIdVDnM3Q}%Ybt+G|sy<^Lv_3~S8z_;G>Q)oYY z=ptYqvIx-?qsCZc+*>nxYA<8A?g)~N@JQ};I)}2vr&sc=aPi{7UL*BRVeFZPsjaHV zL$pi%@H~B>ervZaAuhq`7mW#p-7&G7Je4L2j2{z*zUVm%r;FY;~p5C)R8ChBsDjrw#Kx$p? zv#E=7KWA=*I6Ib_R+rm+vsn@Ts%{?QfD)%QTcjZ2pvM9GX z@uT$==e=Fq?t8Ra$UMHnJn0sfB&T4fVRaepT8%^}^8>>eN{6 z3%3G&t9plfQzzf1-r?ky)bRD#>QrE7H$BrEi#$6%^zXci*k^+(Vkf0OP=90UgY}=o z!|onj5lc-AT4ilXt*sB_@@?u8I zA^B5>Rv-8G$-Z9pj-n+MxvaB{DT6Vj@$&%lp_Xy(+TPVA9cSHVt<^j|4DB`;7vExT z{C29@Bb^p(fJZ=)_KtIb7dCuHev*hv9;LmMDF z5rp55Xy<=NRykJ|IQih&{t`}GrD)pOu{EG+(6iI~ysJ4|T>63ZZ8IjjWjXSMWU%1; zj`w+h6Z*kG{}5~qteva{AErQSc4Fs%e^_>>;2QZ)zXdN7cxjBSJyaIVvZ1+xRnU*3 zK(LDUlv3w_@7tTs`KOaNP%rBi77b~K&zf*XKG>P~u07G_+dJTqa5EKOwJ7}5-1xxt z!Ut|7aZKfxmTE*d;15yb*uefi?CSfFgClw0j!Qmkaa`@WI&nqfuht%awM6{Yy5p~w zw3c&$@K@`EzgmxcV^dfB)wQ z4zgDsS`?43+A930j^IDm9$&S1eANcvpEU+wwMcx`67W@f6yK~P_-cKKuiB&d@x?)a)r!FLF|%%-mR9hvwY zCE#ZikB`wJe7iV{s;WJ{YVGhdO1g_#wsOtJV!)wW<6&8vn98_-_z!_?rH39$bfRl=m_BPJGo8@l{(xzh1|8 z>6gG`8t^#GeSkK9LV1tT|0w*_)=*A&{L}{V`~v;{6gUh9ZXNJb%b*Q+QNR4`ocO8L z;SZHTJLE&>#7`}Q^1}XUiPyQW$l%)QT9td$wK}(R^6R<%li$c)^z;0ZUs(QUy>b`f zZ?>A}H+f#<>XmzpYqj2yj^h2DyiZK#o_C{oH-&elypu0m2Jffvt^gl3!}3d8ZTY43 zd+K$3*4E^9dg={)*6MQSR~VZd_^FjagV*At7W7GbDcAkf^4xO#u^PEd?!!K64t&(g z@K0-OpH;I9*-!o%P3*Hu#}6$USz&@XZ?Pr+;eWP)xiivmEa_!LHOMC|2Y(NTX*Lvt zuf3Qry_qjX;PV9VdA#MD7VVpZZ`ve$(@MZ^`D6A0zC(d)5qLfU9C-*FnT&7R%fR_Q zeAAx9H*F#~^A}(}3A`D`{}aHQ&w+a+V|X$6)d#pg$@dk!8^-+{eA8CooAz?gmviUL zA6N1uzG*9Z_RgJyZ`vGE_nepM?~2@F=9I%7^i6Bq{|2jH(MyV{C(W=mObGd?Iq*j+ zra#0ov3%6NFOGujAEGN4N=w6j@8{A~`EtwWWMnBaF75IUVSlUqep&kq)7G8P#$O_* zdXVFvjb#t&>~GW1ozS-LqMuzT`{aXfAG=1f5GcZo8V{rkQKDH z->5Sqb)FadNDDCt3&WMF)zaZ4;5b=TqiHm(eou5>Jaa ztFO2C5~F2A2+zv#BO1AB?6jM~!KL^~l%s1cr9CEcx!Sdyah=E>daDf1ZI%sWA~6H4 zXU-Cxh%E0lqrJt*@QR0{GltKVN5o&x;6~8@{_8u$U;kpsBHn4=_MtosO$gh5vJ7GZ z4dtvl{3ENSH`AZ$D|Bv}k>MnEf6CuUz?5C5vH#TzM@kn zcxqA||6JVt$)qJGrk4gzV1rQ1iw)ofv9p@<@NJQADEkOkgY%PWm7O{ z%ORfY!Gm(%{R_PPdU{6S6Y!}m&JCBG5$qs_ttjYG1T)VvJ;lcwo~0b-V|O6MH)z9zA@oS!WA)+R2w zY({b5vN)q9ZARaK&Jd5H?a~noX@lYt)RWf_t~%4+sR7?trC(&U>?IveyJD#W`Kfa- zP9Nu=(FQ&D;=ODD(|9f&XRxGU#803P6Oi+Y)PCYksr(J}F^4{O4fRoHr1Na`v7R}j zIjQk`g>tHyQyZ91@yK}cy9L(<7N&>h8G30d@ZJ!@ndcgVy1@78{NHE4`YyUB`Sfi1 zoD^Vh88R>Xkjs}XY322{Vb7cFqQ}7<>EVyi2g&H===1XH`x+Xhb+c}^ zWe@-I_|HaZZ*4VnDbrxD1~5N{y{8`gMUXxv_#XNg8xs5NE%_OGBYL!}KfZ}ZVsRz+ z*V=8~v784gdX;DE?p^!3QT0>m6s?p$4Dl6K>w7u$Lh~w)Z$Ww6+Lv;cev(faXUp5) zZ9ADW6}#{|5ySKe-4z&WY@F8E~@7*(GQF{&!)tDE=W)4;cajBBj>=Z3a84QKNL`tIY~$f}_&#kS~%JkHp5o8x|MB<8zDS4FfK z&qcJPb_kuxos#eBK%2XPXEhPVKl<}sX$t?OQLl4tpA7X^@NdP}Whd=9LAyh18JqDd z8)&t+W2n9TgSHH{`3V2z1^4;0&xO76*c6)3+xJfK)HN^haK@zrnJ0=Xy19w9S;dt% zDwZxjHDeUCII7VwaLO){BeuqSxeiL=V>w%}R! zoj9vJ!nz;tTEVyQS@(@Ui%uN-w7<(#&kb&>rn68qU1esdP=uq}@xj^m5OakLS~@kQb|rsHRj z4xOlk*B23A-I-ER)t{Q9E*$RN^ z@v)<8bpKCm!Y3{X#z2|DxdyU%rr_^9ZOYg{DKS}g5f3rQlM;PT$*%bgdpWTa`Fjt` zaAIfa) zE5)zjh|(FJmP1Nsds@CyO257&{g0#UAATjsbGlaiV)1X_LE<5M_$J%#xwsXiQK9q8 zhbTVachjhQDB}nBM-V^sTX;wOQ0;9$4(=(Yk9hdmxYzwVaj*J^aIb(knzUQCaN*wG zP0;s_#=sN3e_Z2-M*S()SjG9_);@@yk(EhpV}@!?EdFBrM5B#5@%cr;n4bp?VoUsz zc%Ltvj`tb#pV;|fFy3d=OT#jRD>ifV@$&w|r)MEc2IGEqFKz-SwRiem+A@f^pZ-wX zPxuDsX`CDPGgz+9C%+L~HNe$>3RfQp$Nuc@%K%sLC2jemg?mZhDm)B)QT?)&5p%Il z_}4bi^OSXNo`Un_X(ewXJS|W71Ag7B6#V)RrTEd@t+cnN9d}eAxi0Y7U}WcS!t<9S_g#Vh&G1ei26^* z5e>qrAA3ul7d|s?{mG|Tm*>N0O9p@Ehhts-_ED|H+BSWCM>}{7F&AezSbMNlorRm& zb`d^|qidh;wPxL`_ z%W~pUS+sv>|EeVV!2K$#zDe+Mz?BqYrvYKYz)n+Px&$E;l$D-m9{UwjooTZrfq<uzN5MPC(0t8PD}M?Jp=w*J*CwJ7flmv#B-vUBW?MS&la`u$8Gr0OAW>* z!Cmw~KHdGyU_2@h`eGP{D!-mRKi`7k9U<7K*s6ZcKRQ?9BGT{WwGro`d9#g80eb{K zA3@zmad*zbEBNgO{dBop(OYOoA0Ds6RJSYB^@GTgBi!;jU*PHx{ z{5NUeb!moqbA=k=;Og8 zWAWk_81G&DtADhIa+1J_EFsXchJ|L z#gDO^YbyOrL7ofAnWLHvWYSM>IyGEz5EFD3AaM}8E9E@9ikPZ3I6ZTw-Q`9`LO&y;hO?cV1C>%nhEmG7K`CWqDW!~IN-1NwQu5wnWHj0FD>R8a z2jA{u8i*1>9qxQQmU$A2Tc&l2@8++wfy?*e8Fr*^@mAIk4%;KKAww`j<>WtFw) z>SydL-wj9E`hxp3y850K&24ENq&_U4Fg+0N$FENWWy5OTRbn@oYBNed6K`pgcaCg< z_}FNUg!8HYPm>oOb-Mr6>i;>ks8g2S7o=;8r4!h!a(4Ei0gU`SN>1k)uDxALFJ#U9QsYSmnaruc6%N+nbI zyO`Laa<(*eQ+nH$rXEV~+|rb+G;d2&Z>5D>nl4rP(3YmYre&}4Uuk9>>2GFKGAI3m zl-{<*f1T1hxA-%a=4~PN8)@Md|4m9C+TtInblMjGt!9SiqJKzapluubXsqBDL7e)J zZ}FwG=jOLfFW|b?<5nkW-M>pScrvCM zIWifYB@0_)^=9^Ir=%A9kr`L58$0+9uM>ANCEn{N=2ME<)q9L_+l9^B1D^ch_2j{; z)+G;qb8|9h(m6&~?+V7Bt3H%GO}3&giJsD&MD2g-Qe1?NNE{?;OIa03ivi^{+c_5p*=)^A0JG_K?D(_vrgnu&Lr4F69nm89bqRuc}Kx|pc zg6@@~1IGE&u`AAWjP_pvZ?YwhbaXdv_g@`)ca4#uvxtQor)HdiV_?Wm)+s>-~!MRU>H624?K^tOTGpcIf`S9t^^YF)~yj9Uf69O6RW5dq9X$1IChCOsR zc+-_SmDl;x#L?mW-N~PNdh_;`G-llQP*0kh8WjX$kFNPh@c#{Y~Y* z{_5%_A6{Lzq|)Afq+_P%S=-F6OC;m|fD^B>yHQhr({!h0iS(}C)VGn%PZ^Jqm;Zx@8JHfb+hW097TpzJ$heXQnw^=ju8mg z^9b*(wv|*bS^JZ-+cv398ys2LCslVocwN!}U4s{CP8^+$eTFO8u5P~j!I@?Fp~=_y zYhVRjN7?S09@t%AR(&xf{9g~~tm4;o^I>;-e%VFP&5Miyf>+*@i$)KpUh$4f?u{%X zZWzz13wdhQ$6S8mqx+GqG=3?pw^V}*T8~OPIMcF62Yt+vd^eC!XN?Y{9Vf9>zEEb4 z7VNL3P3Y7a{#T%*%*&?VK?8?4P7Vfk;c;1p{W9O4=#|`c-^1wdz&{P#yO#ORj2Lg_+mc#qWJvFm zKd$y!s-BV5lSiFTe}KM>4hW3#E$QJ~&-=D8{xf?!k(vgcixY41-qQseEqYWp@}|&F zoKmdV+ltNS1h<=jlVTBuamzv6ZIk(s4Ih*I`W1B@Krd|tZ!zSL@q?#dqEEcbywX{Y zY3!xn$eD>v_E_Iow{fsH^LymMnG4@FqZ?v6#(L+o-n*YzG!>?&cDA#uw!EU^`ihG3 z>z}Atdj0H*Utd4pG&j|{jZGb}^N+=534b3G-O=gYOP-q-j15er-I~MAtOcmPiOf6y zmDn|BTp9338gaCvDvCDk;LOH`*XAwmOTA^Gc1)xlX=Y5r{@7S=Eq)DO+GBjnX~#>n zV;SvOPCH(t9WT+2TH5ge?TDovTAN-*JNCsoz0KsAL^~FQ+OdyzWm1>gAzMe=wltxi zH{G2YsC;Z_os;#tdC;`X{T(Me`pv@+t7mZ$`~4lzl`!sH$2<<-r@c=-?_umh^;Ud~ zL|>m!nY~CYxgcmq_{Ui`*H~oD-uM>1qj*x^e`dy);MqKT>_~iOGWIeTbHpQ=iyN57 zV_92lU`(9AVg%#e7yR4@otY2ZT6%MSOKDMH0eu&I=39M_YA&YlvPJ9r2;@)3r;hKy zQE^CPNA9&byn<6R@GJ(NR(YKB?7f^dPs+XdNl#!RWft=f`KC}{R&T2c$;_wa3jdX?!^5ASW!*iWE7d^nQyKx@Vb4x= zPzR~@zsuiRw#~7`{(=`<_Mu(i#%C{K3$ko3lAGgw`;kc{OABW!Xw!4(*hipEpJC_t zya4;mJwX{e3%VzndLDkq4Wg@q3~7C!qZ&;R6A9LTg7e z;}|l23w+`@JmWZWehV^w0QnxdC*uTi{oYHBn!U*NO;?&3N0I5Zh9#N)UDhMjhIHDN zeonj2tSvZ}=)1MH&@tF9H|=_xb{WiJjfd#haOADFb2c9v)2SIF8P5@n>u|<5hjG4% zH4|)2_F#-qOHV;xIfh;0c(akwa=^$49OmrjV@Ae_6X^B5JvB|O@HRW`Zm)KG>ip5P zn{`vQ2^sG+EG6rz&GWE7jp012aGPZd&^Ort)o%6o8QLzJt>m0d=o6I>onN1j|A)p} z?F`2t@v*05Ec*)2jX@ILQ!`n3`JJh&5gSE%V zj}E<&cr#0s zGd%R}Fz-bBo9rpzn!}sGeH5@7+r;_w@Q#LF8yA;RA8SIV_rdV(UcUTPUt{khWY7e2fTVbsySs65D=dvS)DebLQlm8HeOL zWAf$5Ldkz7h6eo2s;@KYT=1vsnYwDaUszq8sjD7ahJ*fX00+YTRbS5Suk??<@lWz! z&B>D#yX0MSa=BubY%(W%I+1=zOdQ&ROzd-BUO#wlH)BBhTI2SX~xsbfCled0<>nh<_VVnFl=zABE|3&3*Chjo0=bdfxr$I|DB>zI? zZ)#mtP5n7-^Mhj-lK%wK z_E28CvHBzO4rl(2VE$u3|Wad1+vSU)2^U1U|TlNat(KAE~1=n#$i9H^osqaF^F9a5!Jctc> zbL*-e;Mvn{+C77@^zxhveA0lA>P!VbJ!qHedIw*|rx|;#VJDm2tuqPILT5sWjt?hh z>rQNNY0z=`D+SL7=;C{e`rv`9rKbsg$syjM`|n#n5RZYKBiu#CKyUWrpjEhL4to>KloTrHpSWYNu6pv{hd;^?9+Y zjtsrC>NEQmv&J=s`5h-a>)49Z&sP5Eo}R(4u!b%_IS2O+>J^V$Ngf9{f*fGkV3jwS z7-Ux4kJ5H*vGQRQER-I(^^A{^oX;AC+!~Gi8iO3$0eLnS{iGxMiQUpq4CLR@KMnfJ*+}J6G5y}` znz8n7&Ex3nWBBO`27b=JaN;|u^T!5Z>(Ar;&b>3X^Z~z8?g{!*=Hbgb6<@;X_z~V& z=6SaIr6rpy_tzXsUAX;Fb@k_m9CtXD)I9O@=HX4hJCru)?}wV!A3lT}xKXm8qcmq@ z+MB=HJoi^G9je*C;gGZW*dh6CIVR<7EV|)|&1v_)c&KR5yN8^M4_WV>rzUJky*y{5 z1NqRne8{h-l^BciqdcdK%6yl@nC9v+vpVXNu8H0R^tB%NWR%*<>#jLA3tL!M-(&nM zxj2(^4ZO$+_$serum9vqjVH2N=muw|1 z*j7;TDCwSU50rdOI%nJXlIKY~ZGWgFv0dW5M(TYoBlTgfe6Gn{_j5hMHI8cv*8^OS zaTRbq%JmS}G_LVnQ(Ysnh%3T6sA$JBXjx|aS%=D*C+b7$lvxXhqw~*;it=VfuD!lj zs4r@BZ`z=?4kZoNrSjB<0#{m`@mdA=t}+eD^>#-?Wt78f4)eU_uJ7eaF|v}GUzVQl zNXc_u&Ob(dzRT=X;z~)(a~Ym-u1w-F;xAyqJr(!{?Y&)nk4!QaT^-~?q>piLV4J!OxBujqz^_% zqva^;U954g%0X@|#OLyP{Uqq+(XmFIjrFpf*qA<>Vpi?JE+iV?hcYkb z`T{+{X@mFNU<_<3_SDI5tm#zifP@InwsSHMvq^O@Qb&p zKED59mgiX~JgJHO#tEOKu3?W@OLf<-UPp(s%U<55?17=Oms55erT);&E$Vv;`^e?TE_jc01?S^% z)<`GN_K}lkEgXB1ad02-xVd8f;`wpLrUj?6x70$LU)?`*;onaU+42wO%~z~BJ;Og= zHO+YA_DIjdMq>FNU>+Y}ou-#9s=)yauI%XW8W}0BM$`E7XOTvo=(~L0m!W_4F0Eek zyRLTc=d^1q{?;3z3y~pu{k9QRoX$L-Oc_fj8wX$H8}=uQmOo9Mck%v7#p;J{e*q5c zp)WS>wQo?g{D5I@A{PA3?A^QhciacKe~bHw?So4$*`85y)Anmi9@>6g$&=f!FL`bI z4JDhm|ET2f_RNy_b}{$5Q?GKlQwO->+r@J~z}2Z;PwU-7*0=tAyUO*D^-XE;+gA}W z_hzSF>dNNZR}t~tU**~p(bIZ&6Zx`JujbpOuA9ggOoQM4M!tg7OI!tf`y2U`t|y<~ zT|&Ns)P8)^y}l_8etU|1Mrt4E_9d>T$ftA;`Sk8(>)XYA)4jea4Sw5W*s4}=txtiD ze$BpfGqzbeYF>*G3(7tIpo8tW-Dkx?Q_jQ_vVj5sULiGqPbvC*$Ba#_#~^wIdk29iHH` z#`J2Q*Y10K;qRz#4|eNsjE>%?xeinqReO+M)<&1rzSCvh%H7?|YWHNVTj}0*ammHh z+mCv$rrzvrmz3Pd^Jt#O@LaI%(vk;wew63Oc%HNEs*-1TexB!FTJ2ODujcBk_WsT-R_7LNh?fIPbu){E$jV98FS@@+HWBzW$H5@P_y%z(s z<%Z4s8~XF4(a!sYt(|u*uzQiqy{%VCFWSW@t^az~mi`mrQJ)6mRf}H)*9nO^ zZPCXBA3D&Y`j1-&p}*CYf807ChdFP1Tym6yfAJ+GKj%Nf2YUK;7GqC_zH?ULsz!KG zPreb)t?mHv^tG;mUC`Qd(;8_^euc4ZWey`tTfAMo{%QQS{FLv2zifd1UB$cBVZk%7 z#Q&uO`a5_IIpLdW$e@1K+}?{LMwlfFbo4D?{c71<&&>;1Z+lUxX{(wucgM|7aqmGM z7~0*E2R7}qcVPW0x>>SIW`c3>9oisyz#r*3^e!?`Lx(8uW!TaDteeeaO=1LaEe414 zC@TfIU<7i{a&Y-wWSxy2SU=&LANgtIlb$twhZ$?2SqJr9KCQn3Ch}=rOxlF(shA<~ z?M>;#atp?{>*;%zZ-P%FbmkVuh<%f#R+XOeinZP;g@X6hmvQI;GqVtp?hevbnisT03UyPFfyKJHI*>svF z@m8;JIhfmi)&Y*&d!$SL(V4ozSQ|;r+Q%sG0M$^kL{)Y^on_l8P`o?L%bxKf5j)}@$Fvz z8v%d28Q!!2{`M;T?G^f_ZyVulv9wuy<^Xv1mF5fgVLlUQGdEoo<+(YYYZLf7m~D^w4_>S!tw2^E$0Z)4ImkGEi^rrR zn}}A5&p5d>*7MjW($|b?D2og76s@aE-z!5`5YLHWti@v{?tgq?E_Lo_UAWea^~Q32 z03IG-J$zYYS?!A*)~)J&S9ZvlX*uBFnS?1$w2plcE)(8Ov_r)QXHW^!rO(2^9&xNB?zw zU@5fY74W3+p2q`*d8tc2fqS(cLOri?pJ~Px`=CLS?nw_6-g8-CFJo5*|8eqeB>o8# zXPToY-7_(;oV-Sg+m%P(Ugj#iB+HWF)o$5oI#XUcZPXe|kpIj}YLUH7@1Un@xBhdN z&3twTG_Em+vjkW#E{(;<0D2Ve1F@XqB!d@0_mJ-c$+Tr2ZFvtKs`fs})k>Q?eA+r@ z!Ck3=LduN3D?Q+s?+5=5=L{9{-#(G|-n;OXp#2N(nh?mN{oy{;qsv`JA9VJLmod>9 znxdzotD>)JPqG}(S#3z~g(ErW!bt%4F zdueMi|4-@=<1L0yz8dMNdys3H>G^X$*ABB|ar4JZlLX8Cq_4zzlgfaZm-s)I%`AI% zzSD>cmotfSUVZ;EZ|(biy?>{S-*eSd2L363ZZ$gPqk+@+V>CoEZk_gj&&ep5&6f2`AHKxxy4WV5-UWyD0-!QB$l$b z=ay@OFiB<3Ggh~!gIDR;kUYS5Bx7?qeOO6ZKQ}$E?*k?~@M)OzD=Hu{z-p}7^h6ewSn(Nz#@gR z%n)AB=}*6yLyl8<&!#3gyiOV3;qTKqqp*-^%PkzMKzl6JNfxh<$b; zzHG$dw`2zS@sHc^saf#>d4e?6xOdoOf#=(!Lg%~@-E$ba?ND^vA(PNaE!|eSX>(uOq#xE#&+K2)dX~=8 z80+9XJLKZ(Uico;wh>(TB&JJFd>?yv?aZ0auAFeW~Rf+(_dZVM|S8* zxtW}Wyb+or`>Xiu+eTdRNc>d(20Y6i3ff<#GwWL=<;ni~Yr9z`J$N_pliyMV_lnP^ ze^Tw{ra1KAfzh6uH*nvb`wiU7_Iew(*O}N}tFXQPc6%ze*EDRe=_Tf`Z?xlB= z$rnt6-{SbT0v&Ay-{SbDRQ6uIyUqG`HQ#ivZ%TvT{vjO@y-jxBf1vXzmEBhFzOcT@ z7OZ=HQyTo1VYgLn=UNf6zb-YREc@$=*k7N({yGl(Ycu;={Mcmj7(3Rvy@t*3+OZvu z7jJp5cdi57IN6M|bmJkEJCr(xS#@6QnvHIp&9$3(qA}cyuSkY1vVnCuOBeQIe;v-) zu@-7QYfSs`-1ora3zuQ9%%Q$=)md&-eS_R>k1MN$hE9vYF>kdH$!>MzwDMSAQlBNDmK}5O0n_0j2-ni z+~;AF9gj_RKX%Xg)FnH1aa1?&e)J5LH6Q(wwWKPw<>%N|OR%jT114kXtJZh){%!i8 zb*5Me^qy1&pbC)TgBJo$;L_EyEu{-=3iF;eX|mP=rrH z6!2DF>FHU>$V2`I_#_l-%+cdB%^sFdLRrWsL47E~Ct(71s%U3$P5wfC5+o;Ec74h; zfawIgv%%?fdfm*$uulSb^SwR^Wg(vg!C1H++{e|`ck6vYp9GDA=9<3CCm{@fFMLuq zfiV2f^-0JF-wW_b5U%e8*VXS7)`8UTdfM8y-?DXjZ86@MkeyRy<%iZDD!_H+^@RG@ zmw)HtyFk37pzj4f32uB6!u?bXFUj=Drg2dFbhRc>0dBeIkIo;%KWmlN(_4ERb&s(= zAh{!ob{%iexdsKqit56;TJPXK0{KnLr(id0KkZ15u)j*aG>S2kPkA3|uP=6ld%4%# z5$x{a{!-v{7b!M`$+sXEeP7uZQ|=eE@!ynPP8=xq2i2)e=Qphbk|Kis3a@;Rze4>v z{t8LRK&Sl`Xy+i>p>_>C-Nv(HNd(3YgB}b;{v1*hjw_-6)A*nG+I4T!hiZHdB)b*x z&J)_7p*HH)>^h3rF;HDwQzZRsHC6`g~&q1eveqyyNN#+n_Q-zQI} zn2z4K_pb1o?L2k8xJ=^3^y11iY{g$$`FmOUuOeP{GIC_l#uQzw*oGZHDG7A^q;DYR zlPdzv&}P||_Kr6eW!e*p2fp!KlKME3vlT0ekKRN-_p+}>=fg|RFGg;b>@0gcyy>99 zdhW;Up_(W^GPAs{wrR$e`9+hgJ#A|^ui3z_1U&w;_C*U{jsU|c+lO6qc(kv13m zvopm^E4LN6M9Z7VBON5{m!y9;jD2Qv;fj@q{MG9Y`M=q7$TT1LwJ|^6l^124LVxRA zc(r`>&cryheEy&ZO3R5aalZZCs>?y2kP%j4hu!P|UW=%E8Eaz;Nm&=fKgiRf81Lg` z(*|Y<3Gv=#q}bF}RihJDe$zS#o7}=~tg}}0-YA+Hm`&d5sPa15=Z<9~SCGFiG(!2b zrYB#$>7hQJyPx`z@kYGb{C#^CoR>W_>Z-Q!zk2JO>c~y-tgqUhCxM*MIfd8_@^e&t zhz9WRMflsUr)@Q#I&Yfnm4=uGDCk1gdVCXnM)F8lip;xZZsomV0Ql||IFmPOXI;#<{v6W2XP3vrFA z?j90ZRZ2Xv?!+TI!TqDN8G~7~w)k7knlZF@8`t6fMvLFxCEed@)Ephndgt>-opAlg zt)3Q*nSV%d%$8kdj8UA+os^^gC{Ci6KKToX@kFdkgP3DSZY4egwExJP*`@K&GucO@Zs+{4&e@J{f(L7AHWuaO>m-cuLOD}4BMkS?8WgJ4j3 z6JtJz__p0hGmRF>=Tli%uIy^WO<_M}VOQx}iOrS3V+s9#q>E=wp)KC)NC>{)09*?1 zU@y&m?8{+XlJnWiMf+uQR~))>WZd^@OZh3C6|1;V+7BJ?`+#?2iwAH{Y=ZA8?vG+m zQJj&b=;G3`E1#%LG9Gnx{x7~QW8AcMws@9pw7x6$&0NSnw1(zE+7H^rJ8_6nHK}e^+JcN9rA=DP9^i`Pz$AFl0@J7?ZCQ|I z1k&8brb%(0I?4PCIv92HNu^r|&)FZ?VATN~NJma7va?p087y1tg(HWZ<1@k7-b(vr z+qlF2e9{TV-bWw9bKytaAI2A%?*|>_tY?|eTE3Ge^lCq_*w|J zSl?nyx-~;<#_VP6N0b%@CJ=k|7WSw$1K$q#bZb3d_xtS~(pfXzSUj`)k_GImT0mUF ziJaHnVaCLOmw#C6TOBpyvOqI!X{4;)v{&ad`q+QwCw~-W)rc-|uRVRNk8X5OR(Ma} zG3d_`+SSF3pJ&XN5)jS_*9>4JpPFdqND6XPA!UUB@ldD6JxcTE4o^!SJjR&OKhSg~ zINv2mBO7}ogMmk>+5>>B=L9~iuP)Y}<|gDGH~R|L(AIKdLRtCXwW+*o?9IMZhr_FR zW$lgQ-~RlkIk69zHua?r>`N9M27ccvAN!iAI0KimMyq_LvHA{R9)QM522!dq2=`O% zS6@EVcv0sTQp?|x{F=WSD?fDFf9bHAglVb4z2LlSy3%M-S&c76K!;iXgl_)P@;&P2 zLm-#Dxw-XH(NX+5xLnl9d>y5^ew03lCO^P`UqdI*r`S`Q=qrE96L^Dn(AS{P4)1=) zv*J7oo-4Wkkbe);wmkl==6QAaU*5gUvv}5M+Oe0hXd+MZOW8F=CNNL7;sdWrXRcII zMic)#d7s0-N8n{`%UyU*xj*N5FF19B)xQMaJe~zB8-23oKhOQ?+eUEE!F}s&d=}3W zFBv(ba~|>KvbYpCQ8JVE6}NKsk8FzU*Qnbi8J~InxfNrTy~o%bP7)ul9Q`(cy+Qkd zWs@9!)3A z8Q?ui-5Qr{{%2g`l95s8Q=a&<>JqH3<6AhdE3c7O=%0Fl_E z+u`#>EI<5_CA+1zi4mjN8ivN5x#Z^Z6GzMucNKg;2)`KWEXNN{x<2#zE5qTm_V3!D zQ#w1oFW;p%;WKaw`}8UJb)8~NbB1YJUJ~!R7^f5y%?%7}$gj%dA`djJb8;U0ZP-`G z89)cuvOi8TV0PqJ(cBm{^mu(#&hee_X89DrmlsO*#4f|$Qb+S;;K;SKTe7L6sC12= zy%*4zv+CNHA8L#KF}r&W_=rFH>^eW=AH7qZ_0*}g1L<|L*8_u5iTGj*UdeW6b3sUc z(0FLv1*5~@u*P}`<%o`H?H`%)tUcZ)wDNrC1+-#sl}vm!d9~*7eZFvK;RG`7PVm4T zaaGlP@_OPm=g^Jc35}yQ7F~Rc_?9etuJ)+*;9Mnt<>q(OYYxqIG#qkX^2MQKc&GNS zHWqNs0At_F8iy{vr<4yrPInyp0D5@pq^C6C<8$<1L(; zHunS3h2qB;X*D7JXBqmB@Uw)@p)y{L#eVQ)C zSG+wj&^sCfM0bS?@}DoWcW<689u(SNtUW`rIjm)`kZ>{)Tq-Ays&Jo_xGP9!ghQ4L7NA_g5^15xTp*;_NHsa4(#y9c*dg79ogCp99 z@p&G&q;Y^AZJ^Fin3vUD6~L7>5#sK2@m;Ahjc(1yx-Ctr0Jk5H2n^DEQVb-?cZ2x% zWA>0G4nelD_iWZ4r!6V3OxOmtzg!(ck*q6h4YEvJbWxR zA{N?kY7qM{+O{R8OWuavF%)dc_1 zKTG)M1@?ZmZO>bwf39br+IIe1a=)$S6W-MWgO5m+?+EYjVZoL7vsN1K8x~4mqAbB%|LETx z*=Ov78jE))JigG3aO6g@{~#LKST@4!4zp^9;yZZbMV{K*hGo?joXjuD=32ouhiebl zdai!o?P8vCZ_Z>28FP@N}J3irwl_RjP%f4u$M`W^Z z0$a$K9Z_Y68tIGbefP04t1a^^+bZ_Om>9484^+2R$CJj%5l-W^e9Oj2e)2i6pKi2a zM~%Ub`lRQio4s3Z_HJq4lWdIo_c7++qs+Oy5G>lBp~cu*^fWb*wF_`qwDnwDPWY^n z1Y)2(3eSf&|K5G`HSp5}-%ZSi`tF?5sdweUciFs4;oWo7k?j(VRf~=X>7h3fekeN$ z^$3BmGmd2jF@9#GLUCQ|FLO+6!SoZkAyh~+{7jl-t zO71He&l+sK!cDEwyZ^`S0gSio?MvI8*#lU~8nN~O`u?}~0LEMP_8MfuO4h>K+S`%m zEqlB6{-tLB=jQ5*e}5?T@a99QuZHYuoE7jF)*TD+aahW{%Ma1Y|8LiwU6FjRy*}B zPi<*_R_*;C-JhHN(YV~-e)K@@?2ig^zxwE*+`oJ@KDXb;lXLHP{;1aW@qM`uF!vsc zGiq@ttt}4Cy$Y>25^JQMxwn+Lmx9iucFt`(_weOd8O7XVKCxdkR&6Wb{GD-I$K{Tb zou4`Aw&oz`Lud}-_c4z-SQB+-EkpCrW_nI#u^-dayamq61O8h&6#ks2&y>|UESh)F zr&R{_=hOENd@jT9nR~iN{@ElSi|>+y;VGTFux7B6J&lf@%W~O0(BgnTJIqd;Jz#J~ zi_X^w%E9Gtqenyr2B}R3XB}t_Lb8TCCeO7CevES*yNn z{TL;AQDq19Do@K*L9l?yFDl#pB)rtd08^nF7JC+FfTA-vSS)Lzi{KG63|pzl}x zAJX^i5PcsCeNO|&ibM2W`{LTtch$Qggkwe4TxL&eY_wNC@?rX(4W1B_!=mq2esD{3 zmh%xCDr4EZ+lIb}*N{Zt1*4{WMK?Vydq^LJccPc!+sqzA#z43xe*3!g(P_x@;F%*3 z@*`#brh;?Q>r+|p5RQSX>Q#y_<_Uq<{N(OSivee7iG07qW=s2$khx|+X8@?*29WK1Ow z`KJVJp5b*wb{4X?3Hh4$dFVV%Be8G6w~u14J>Fo{wUmX%X7^2}8kZQSzP`?^Gmy*0 zi%(ShZzMh5uTm`nr9mpQY>Yir%8x$2m39Q@b5GyDG)~~-r&gNe z``Ajm_&y}nJZl{3X}LHCxfxswur}$(_9nW$?_Zv}SAc_I_HqeU8@LzTB?p9YZxUr_ z90rHRPkD|;8mnjXkIL?(a)D=9hR}L_P#%xSjRH%#%A{}g@Q)qHP4%=zdEaHM&4`Fx`6?7+GqDvmLu=h7w!&AgC!f|qE!Ze; zBV%h$D|*YFNX&p~Y1(JcnvTp`QXa%Q(4 z$!1KkW9@wWOS%^)z4k(q2cO(^z(9Jur)<`TYrka!(V=13GWE%TAs&hgN=Eli=uCD}}9 z9>;jAt=D2lUknY@*&oQ~|8VCxtL_n>U~Mb(?iu&0YpPzP-U+;4hOV1p2X7T0A|ubG zxDcLO@?8Esw%4m)c;QgxsgO+Q$ae+jVv=uPH28C(b%rAdx1#vs`&tUh;|=!&M_#NPkM zlo8IV1k%-4IIE=hH~uVGMxQ^oK2I#=s!TgR8`xi3%R1E@@p@V+ICE}S?+E6bXl|14 z*MB5VE$!TCzpX~}Kf>WT-iL8WVH|{yJ-H-v0MDwOvpE;#Gm|sk&E{Re_6T)V+LFA^ z$(}mmKn--<#XeZhEqb1Jjp)qf&|j?&*ny(~e2*bhO|@XJGZx^N^wR@;WpiaLPQzXF zxg2_~vW+LRC%OBKNH&14ky7MJc|SM?d5nSNuc64ULAZDG{T#U0A3q!JImgeyeGA_| z5Zt%iRwFq7>#f%31($PSk^yfyA58LypY(k&>4lBsLSgb>^xc99ds5oMWX*TLOW*4AIN^Pe0t%@6y{LM z&3Ue#S-(n>j8%pmR{ZKMWaY-Y9}mp<5AXti{8CasbJkHhCE&mN`hb6G@IL1r?k~Ni zCZ%-B$z^w6f6^e$yXX3o@XAeP#0z{6oKRmRFR%{o^Y=IF6fZeUgJURHG{+B(?}`6P z{7l8-i1+=9_maVn*}JD_GXD;<9)El{M*}bQsc%}t^DvjLg6=#654{qbfAv56tx0Tc9k8Qw&_@;dee)%> z6}oTvteQM0@Ek|k$W6?ZC|^puvf5s;>sCg<7u%hOFB4XfC{>vh8yJ%;HuZKgK`zG#N{q5)s**EvZ0k<)xTY%$G^toxe$e>?wo;(vHa zgK;B%Y53)ckEh&dyk&&=_+P-GO!(npvJBy*9*SaN4BI8-`fE`HBz7Wo>JxA z5aN5X8H{j5d9%@7#rLw?#LZDY>GEoi?1xH+v(C6d_5u9S#RsKhFs_z;K=Q8E_$3!k zy$AX|$Y|M$txmY)1eY3F|N8{H4zj?({X@|ILNHLD^^d_nohajrr}1GUKI%8f5<|{` zgVvb@hZ^i~BW7bm02ce`PYU~ad$FH4Xp>_<@79-*lU5)n{RTPdx4C(d$VnZ7zI&3B z)VF1_tpO7QnIH@k!Q*D+fG8uzJJODhkN;jd`j_Gg8C#dHn_mGYg+2b@O*7dF~;1(d}VLZL9^@9BpYR!t?dVC zzCHnd*uYQi0k}UjR(dCySMPFomrt8?zl*u6SU|lymDOIHxNapewsMKF6-$h*Tw-j+ zV&}=l&J(+tbUo?l+sbNxeCN8AQ>W+WPMMw``%BVAq;;gLN&iXu5oy8J!?}C59?PAx z^+;}~j{>CjOOTbUhM^$(2A%F2(5j1<(DqPc9k6 zvtoO#;d#{dhfD6_S+TwT$#XWbva*TQl}(JUY+`j~6O${OSY6q~=*lKmS2nS|vWeA| zORVs&K`+bcVDI@iNorLF>KkbGn$E2bbP2nITDgZ0=|YfZbi0Gg6*C)EWF8Xtno zFz$a7f=R*F-SqE^T($X0+N8eRf4Xg|Pi?x-iYFo;lwBd3wG8}PYqK>BX0>Ua3q&_O4kmzLD=JZk%6 zB|ovoe!4aGQ?^ennacB?Z8J(v2=2hSfUz!M>1l5KqbywbT;t@l=0rmX7s7ht5PO7oJl7m>;7MS0KdI)(-?-P@ z5H8%vyA@mau4Xv7v$#n>A|Dq3@tRP*yOQpNx4X5rg-3*UmV_Y?>4J}$)pRQ$h3xbEjt9KZrD z#Q}VPOK||lb14p>;sH)&-6l*+qMGZGzjpxx!9lbnEYG|cl4soD2Y&Y!T!wHTrYr8P zpTQSD&sCd;&_?y84{5M%s!weya7q4YOG`Y5TE}F8E3bv*AJG+4@((!Di!__mJ$Rf; zaRc32=Z2O%i5vvIxTfA1=Su6I=W1k)y|pZ+M*5u2;5jzcXgNvz{pcSXV>UR5o7&QT za`hPWRAd0j(B-qbFZpH*HmJLdMS~8{+~VKDdLj0`RHt!`WY+WH+~@Gp1>jvQ*WZyv z4`9dnihrfI3GY5INcJ~I@0cO&%fT)86!IkXpYsCYn7?g+}El0h|Y&C>snLwf^P(`IK2g5BGjG>`Gh z;*!jff-K5ef0i90EQ{77i>6G^d#hqvo+V=#(^DjSVvjH^-C;d&KML$*JMaNJ%SMM@ z`CIOTcAW&@%iMnkTu$D~x-W9uQD83pR5JT#*efn`vPQ?gm&Kv{g1tY^81Oc>oUix~ z9o&*(U5XnRs_W^{zZw_GCL57U8jv+70=M@W3w-k$zNGx{Sj=ZEG#(lY1Npooes)iH z?C5=lIC2N^T~~kQ&t$D%m%2~(dc6A*V|uTX;8zvH;qAvbW*WrAgszE>1kkJ7(htQ^ z4(k!(Rhc}q2F=*TU>|e(@*QQh1)Y94{%0Hd5exmug?_|BKXRcTvB)O5@Gpz+xVKFX z#R+}1WHoatd)vb$qe$0pd#vOm(t>SMN~VzR**3N080nmCkCZGT?X-Pbn>eAG_vrT) zeGpv`JdeJsc=pzUQGKafwygLmRHV2`Q!HMpbkk*wP*qz`BuuVtKS4CAY0Y=2MS zCn9`$jCYd#=OX*-pZ|$#w{7)~@^kc#dCvd6_^m3_0Cw-9msL8?AHVhc)^49fj+1`z zBd(^Ct=+KQTC$#CeyCk&{(Kx9gGQcHyFI=zrEcvF^N{%}B8*#Yk;bjFxgy#bw`vV5 za?bMHc5`0LZ9nIwTu(wKJ`zu?H0HdVD?6-kL34c>eb-*jus-VP5RsdjJZqtwa*dwL zbESvPi;e;X_RK;q;rsrtZd;B;zS7Pf-Yj13_=u4cnhh>w_ zVJf4}Jn9_D|GMwR|60@CPkUt}t>xeO=&{&6$Gplum%QmEC!e0-Ta!Qi!IK7hQ3wA2 z`Hb{6zrz<)vG>aCor)iQrs=ULh|I5s4sVOLG- zkmTKqElKmJ8M}}6dhQ1v%UO?p0^MG`TywbA>_*(FcyDoNZCWvZjcKXU`K>)d$=Jmu zBZ%g*zGT_=Rrjs5Tk~4FpvFb-uHl^no~(QAJ2KGOZRqR~&>aK%^Ib8Rjcs`)oh({8 zzNCsYEPF{`dxPh&>?K+3L!QI3mt--E#-^deKugP0v5{KzQnHt5r)aEbs%WfeZdevO zLt|s0y=maB_BrmbC0KiqgL|epOS!-0*SgAo4`X9Sd7ao%Qm_-4q5i1dworRTPb<>$ zi6vU#N}(Mw)WyDTYp;Vk%15n%iqtC#z7x)aU`xi4O8gIq_Unw$)TPbrR z*?R8jyNL7{HrA7z8zh_!+qUX|!hh^*&~pVe^DRB&*DkwE^hnFzi@gq;URj5lj@Vzs zvo!DDW&Uqu?&m-^n_e<%PS5#Q%o?rRbSGB6=40b*=OnFXbl{5RlI(Mo_R0V8&>vc# z*V=>j-^l*El(}C&G`ODOXFbC#ef-RN1~&Z(t6HDmS-@Hb_OyuT;97=crNf7fI?*cm zYj3>h)!b&g=hT;PW>3<(f=98vQyz3RvbG?*k?3D9?9(5lJ?N@Uo9HS|8|MOUrz*^w zlN(2SPI;gcJ8AR0wCrTjB&~~-u_n?hleOrA?n??E#&3-EkixrJzac%2ZG9}TdIegG z|MBKWSqEvM?I|;+a)x7q?@z$J9y_6Yk`>2Z<0jb1S8*xNx?cwl$;R4``}*wA zdPuO%qJN6tco}UjcNew&UZDbzi zQFnlKoMjpKp8%u1;F$8-fs^j_Pc=63M(DRAo>&?`HPT|B#YOZpr8~ZyPUDoP^zoDB z=(wKJ>rZ-0r-tqaog_AMOKR!kYuN7|2mOpoExmqCYUxz*FzyGfk?zd*z%p)51dQs=Xa`Mq!M1 zKK9*aXht#j;r-lUy}AH;|KHWCwWchdxwi{@P2js)o2X~(Hrk>aCZ1bYXy5xd(zg0_ z*jFrUgB5NF=O=`4L3~%Zpm)Q0m(JMhK0NlpHFL}7?!5Mrur2oCTgqx5`SH4y-(@ce z+hV`dUJ|y&!kagTc=c#f@#Z6>;?+7gL3Wa^Av=lAO^{7?Fwf%gvdg*Qmu`5rTXrmX zw)m(Up6x~-a$`SnV<&OTJ_3Jt!?WG8g<_X;!}s0TPtG0t3mNOn7;pL34q<+X2Pqzl zY;kkME3u!*Cad<3r+tz^hMjJw>Q?*4Tk$q8WUQ^aLStM&D*J3UcKED_?BwuROYV~$ z{T=!9rxdv6Y-t_i=AE8Xc#hyXyoM%x_*n=S#QTK{tmVXi`KE1Bv)wqAdyy|!^q?=- zKIp-I=EM+UzYHVx%el6*FfN4c^3UR9`P^Oq=XUuSlgnynmabb_HX}cG#*F;f1*E?s zeTDSTq#H@MlTP{gaPF~>kL51<_(<-W4+FWYKR%jU`e94%M<0Kkd-sR3?+111ux=gJ zrNg>)zwM@B-=FTPm0p9c9i}Vgf0b?#?Q6?dMN=l=4anUCCXlb7$tQll0$T91pl6 zlE%Brkz*p>8}Et)Cgrr__cxDsMYQvrnlt!8;4;n?d2POH1#r>0uoLB!bTZC=Z!RZR z=X zX$I-Nq<52Q9Z%~yTE|=T(Mf9^Z}mr~taZGPKKdqi%JwOt^_T}r0^s{1)^lE9E{lI8 zk*;Pv=TD^KAJ>z9#Cp!ZNwubTFX?*b_dgl9j=JtB#`1;hx zxgPyr?45gjRMoln_nrx4av>z<0tCzzgn-wg0*cKfL4|;!g4SA3-%N;>gb0FogNR80 zH8^S=v0|a;5JZldfwWptNiT<+wJ2)6)t+ikNkE$k5tVxe67zn4d(U9ROY!u)pVM4_Uzev?R9ycXFc~tsixdaxr=feWl=9%UToNw7mL2s*1z|*JSi@Bm}6`=;-yPwZRh*|c|jl`YTu26mY?aPvFViQ95A z+Q!b!`0K#SPw3x!uWR&|tgG&6T}|XcT}RgS+zB;J-uZ|6f8(|d zU$veQ+WwX6$yy(Mr>8{g_!x7cIT=K)b^Il@*70I$t>d4mwT?faK8juLQ))$q_hH^XQu2WuDC;IuhtYuOd z&Zluboom^Ww5I31bFf5x{uX`GSdvflP2W?W;9dU4x?0}|ujiH2=drGd7tPCv&iKxW zb$t=ql*oGRhh}ZbnwK$QSI<>#+|%zCe!uXS&v*gh^gUsG7B3)tF6VdI>FZ0}@BzYU z2kUR!Zes)IVJjPb3bwKZ6*W!ObGL0c8HXclejhlk{am*A&*5-n&B5=1f81L#`P`bO zE5>izP_dw_q-p`SP3rrp*HIJ5k?;}q$JE;MPya)A$x8P8rEh;)@~b}_$5z)<()EX~ zlE3_6Z^^TNSv2Q2%y(qJf8j5-eLu3_fAE(Z<~$Fc&HqdFoNAsMxa+Pt8PTF4ch32# z)@$UvjKq-(D7R7;QEsLz%!nE({n2fd`IKtP4HRs-z}iw^X({mb5HPe-|c ze!=*bVuO&L%K!l!bdBwK>$~V9OuH}Pp9&~Fcwmj|q5u2~tqv&MQd%Gk%V`CTyfi@GZZ z@M>hu$Qb&Z7%68`qyI#2JfMTU^QwN;RhyJkVm9?=a;l$+exh;Vs7-nX9Hf9ixU`w*SQ z1&l$@R)(LQNv;2R?le7f8UK?Xa$e+l$&QgW#H$3+U-gcclN=f0uk09^Z5wK@Zzx%F z{hE?(*FRpe=lZoJ#o~#X7lV5S_YCeCjZc*%llxyjfGxmDPuLGzcAOx3F;4=%ZRq_Y zF>G118PWOoepj{*#k>TucZ?+eNGUp<>06h}chd4hlipKfGvJ%{u5gFeKmE^du20)| zpyMz9ejx6hwgY9r+~Nh5T}6}`u7XVYKaJR0pYDFelOdn(9&BeOeILLXgvIDvvzRMW zI;Sh`xCZRN&Bwjyimto8Gi^FPndhLpLZ8=CdD}(|FhY5woU>a>FZYirA|?l0?1=eBvq?^@C-`m_wsQGS zhjRP-dw{KD(o2qUhmNqmhge(e|CTPT^G7_xm-M(*m#2XXRFTMKwCTm#v!oKdOhjLoce%bcbG0 zJ=q=7+#Xa+2V*pA?2j*g`9{SyNna~HwCs#_j6uZL^6!sP{5n1PWnn#e zQTW_LTTkxl$daF8tQ`Yv`6-5D#Dpuw$dQXHXPt;al#bj{F|w;T8{1bn22pJ?T32?wCDbc*g=yV8V+)3ILVQ%vyn;Ni2rd#j_uz{9)#00R~7WZ zKyPcXr=d5!%C%rjm(FSz9QTfk?kp`Jzx8h|m{C5puA5F{&XSq46y_|IvzGc0fA0uH zVxxN$BL(ejSrXmUvZODi4<(A?q&O%h#UK`}_L3OpHv3Oyo%kx?^UOKW>+M*NY~rKA zo9=r0Z~SR=*I{t+>H)+~9w(>ENS*yhE-lV)SB(6b%ni1nd6Ti9XAxJ0jc%T7bfWF* zhjhZoc=ICkUiY+D2>yH1`~P|I(VRCZoMC^dWuNKo+Z)+i(BE3;y~>t&YG}|esOEoHtTAs7e(*6y>dyRbWB)R)wHD&f z^}pkT-lq(LqvbL78sMrJ;~*vhr6 zxqoTSqK7|ZFTW4^FPu=k^JHk_jDD^XFLgQfPU`Ea*Bi!DH-xrd()Wn-ra1iGXL7Ft z-=e-+XW7Wjf!->L#_b^%q$bN=W9egMdrRc`i0%F9A?r%Mb`TqR!#Xp`_cb7cez8%Dj1fO*H z>kIKM*lhY;^qm|)#5GZqFUEzv?cAz=c{8ze(}7R6zk1-Q^IHylL`;aryD#6}EZf#* zpE>X2WOrywD&u8d*Ps3w&1qj>=oe4TnS5T>_YG@afCpQ5mC#WPj3_Qob5aK!$(K;R z2Wz-5Uif64ot4)!t1RPs^6l))H<}d_rZqftxe?m?q}$&1m}%_1Cp*7257=;n@Lbk4u?@k?!`FN( zNS`(DA0d-$!M`_#HrwIZ^5OCKD(}&vv{m;JpB-=x>RdsN@QOQKgByzmZaRJqXC=(P z)c^dFft}iWl$YkGe81W`(EBWNUP^wg7JLs{@ar(Qpi9LkI}3T~1=ji~J|~UNYdif# z-`iwfTiJDx*yf5m(+4k0NcZMkThV3UXCRrYr-axlS4Bn#b&x%`oqaKnhK1#204fRF3b;W9;ImCF3c-PEDeG{ssg@pX5hi$p!G8?V~RD z=RAN9!H;X2?&)lq^CacPhqg>@qgVwAywG0yQ`|4k8@DKKu=?O;?y5{z95`w1W!=?R zLN~ty{hSINErFh10j-?^zcZQK>-JfdS>%uSVjdXsrA4_zuK{b~+g?!(uktc=1w5JJ zpsK)k<)KsFDdn~{DsSoB#{cAh^Ht>3Ha`OGfmgJ0;ClG~S9-VbOWr-he)pNkyM?^F zyVtw?zk&ZeXJgN$wsR7Emh*RAiJg~#9MS9>4)%?&&LiK7toHaQ{8QKu3YHp}d}=Sr z;i1=TAlhZZy5;<*R4bHLDc;VT|`;YyY-)3A@E9VQ9lG8N;TWWJA zuvJ>{`FqmKPOiN3;dpT5EQ+2}Ug^d7>@2nOrF^aJ_7~W0H~ufM-M)q{L3aBZU^oli zOetq0df-L&F&8?!dV?9a^Jnl9XPNdHkK3@5MQpZDa2?U3ovO|D{;+*s-)jI?r_lav z+LygfcDl#m{bY+j*-k6nPB#0LY_bL9x6m3t9;P1=ok^b7ls?C2v!;~DeXZ*fU(M`w zKdG5LbL`y-vhkJQaku<&6Yd^+kMiFnEWP6%N?F2RANyVD+_AqcnRmx;u_2)Ad+dc$ z*$`xlmc3jtLfLQ6B>t_Oas%c165D1uH^YgZ)3y=LlTF+QAp2f}{$@iPG+yy$#f(?6 z@SG26<)oKQFxR)MpZYRm;P%q8SISG!aasOUvaO9kf6~r46+=+Z^)jxrJ6q>uKen~B zh`caXz8K4vZFHMM+}*+%$La3w?6-H{MPAEp{VyLQ%|+BBWyF#jzo_TVbCDvbU*?ARm@=;IwQs9xEQMoKO}M|HnW!}k@K?I zj)70@5dKJyq7dCH7o_*mewUJI+UF`GHSAKtwoj1V4e(GkwsKtg@hHMQVzi}G$ z)IbLceeNz$4!gHo?+Rk$mM`uMU`a7P%DwTvrKd~@6thl2+GwXQ1Bdm=v-oQIcn5k< z(}{1#AlAPhepLLVj$y1T0p(4=!B4>G#9VTGbNc?*0URQ|H1a zZCkx5>x{EjnJ#yC7O?yQd`Z%anbNzy(F4rKGhh8#pS_IhRQ3(UPaEhJ4s!;{R?6d) zMu)pOkG+9BkyY85(6fPtr5AA58clBYmFKY8e)n9XxtTprXEUD<{O3DUszyBXNP3X@ zG4MZAjO{^m3;#UDctr6U4#vxO-aK-R;ol9v?j}!K;8XXz zfeX()MV$@6Lo4mQ${M?YiG#q=baG!SkHKr)^Spa;=UH`KQVe_RZNR*TT$RvZ3m*0XlU2}T!Nd;6A$W+y zWJmh0_Kn0dGs@JqzB2+{L-?E(wGU0ZN;sspz@upm8Sd^i>`?|j;*D>vd~-+CZw^#! z{q2Df+rs%xxSs`$(%vN-mkU~<{Y!ZqEP5^5m06Hkx!9b2Dl|-ejxo}9=9}jJT;#nN zV}NzNomd{h@eJTt&kQ~Ze&diST4tJ46$2lE;Y&GN^KzZ7*(*=b(znko$^LWJoI*-D zWhtfic{b7=Sa1ML2o4PFn7!d(3Tvg9_zuprd4-~H)&T=EDA{l4SZx=CW8*cKYO9sF zpeFF%jUM;V)PF+dqymKM;v=dJm2rf_nkiF zQ5H=;Ql}hqW?&7qWao0~9nfY!MYOrK7X3v|_*)K>Zy8O0hBhB}4jFl;!)W&BkUtGr zDaE&X;+Fb!z0+Qb4&v!$=_6{IV=G1)&2K}$bVii+Wzo4B=+|V&&i!fmwnb z*%5{qjU`#v!Q_F2h;ZT#{BW3za#1DbRrb3Qxzu7~H)*B>$WpCI3BztCC| z*y58OOZ*k|1HUWci-^I|`c{cn?Yr}>tV&PkYR;ls4DQMYL-gUFcxN?ht9$ap&^`8Q z%l}5#b_{)dASa&O9w~p@-ZX7WP199ZS^l|S8jl!>ga4*+i0l4r`$|T9DQv%6`PIq~ z7heL)@Ah_T`MJt3SAMs5P~?Yu3kClr%l}rsu*AhHZW&s(8d%r@Ponrs`62X!HYn~@ zIS>|8%lBmlz75E42@|OCyDdR}liWkRvK@~Y@pZJnt@hO?zI!4rF@bZv2V1gCnbXdF zaH4Je7$mzDQOn1+Aj-~rAeuEIt01$6J>(_U#zZgO<1jl4wXYa)9S&-(p?oD;>8Jc9 zX3(}H++L1rMn<7~Mn*0<-DYr3V9o^N*M-DDo3u-O@qh?EYt7FJulH_ek`;$~s%u?{ z{_I6cIi-yvom%3aVjcD*oouAvI0-i8ZYwC(7=(A1`sfv$o_?7xBsOJW*2Q z3dblDE1@;=5Syd*(K^lU>^ZSUyH8ppt&jSpK9!^EFXB6eS}am!khHQ?)R zVtKVD4aDjEocZ`8v{Sewn3o(f3Ygdd?)7liiT1jPtk#Z96}u*!=gs^-T}5VT*97!` zm%_6bGUw&!ESI{j&sgV*z=7>|E&uOg^2>6@vVz^kRMERS?9vd0{^SPfBbnZ+?QMw!FM;g+aod*`t&znqyPQE`&gclf5hua z{k%^6HPy!=ibwHulK15Q03Re;v6H?%#XGN8&h31f_s^Sk(+Qek(x%$!O)~_8x+j{U zSag%3--`2fl2@gVoma(*<0bcog*TBHF8sHxJQ1VGt8#&zSLJiD%Mn@;$(a%Hr;hkn zNBpTH{?#Ybh=@OR#NX;Oe`@(8%fC9}PaW~Ej`&kY{Htw$>J$FeVVaRIxUq5_#6Y`a z0*Ym>H67kUaM5%)yg8I`euIQz&)9FjNY6M8e_rm3pOjtEL*91ev3X~W zQ9eNO!x3|uF^PQ*{$!>0IpRobFElnDdoK!J$MlP*>cJi|pZ{(Hjw^s;oq2Qzuv`&G zd}%bc^4n`3#&>9^&cd+bO_Paf!G6oFGowlJ$N-A4OBOkCKPXx`)m!<@dBFy7CEhYrp&p$nCx76wcC2 zDz0fto@T{3{X@t1pGTaR9p6tbQfQ{e_zC4>>{9)~i~dHE_dIlD-!YTCZ&0%PS~6RL zllq&)_{UxCi4XH1``9q{v8~hv)Vrx?P)A}~qta`dq6^(k zOUW;`mHZsqOQZVcH<|3Gj=tDqS)(=Vqq`jTKC1Om|FlL^*-KBX5##T@Mp_^BP5mn5 zn>l>bbZogKoA%AVb>p=r+DlKY347_!#9OeBcz3gJ!@Jan_fFx!6}@mob}QXe47TD= zb+m}}*|QOvdS-YDi;vDh;y%5$N-7K+90o!8>_UNPA4kLW1W_q`O^V=K@D$d6zW z`2w<$B~I11BNBhz9)@x82NUCByp_(Fon{ywWq*#?#6*W1@g;1;moSJgp$lKai2eD2 zckKPVEIj|R6-IbI&HV^|%csnW{iWakeR0>eEOui4(Al1dyT)d(ICjmW?5yy1R$hAx z7JJ8C4?vHL4427%>FzyeUlVst&i7C|{sFEx^1SILwt4n|fwnE4;a6oh4!Ak99;nWpZ28vT+1&^aQ!y$Al*4qFyclh@L=uU6{o^19a16kkNi;1=A zuD*hOb_%+M$>?}p6vjm-Ztl_e*bGeStF+KBb z#wuR(K6tq}=vh2E9r+9wfSWo8`UdnlGcA42XZZ}5zWr259sYt#@D&`!I*E3CRSf@s zH|}C%+P?<{=|S~*F=_JJQ?23|M}%TE&<2zq=Y5U~aHWZJp^ z2cp*>giS#D4A}#0TR>_@7W_qh%^=Gba63Bw<%Mp`KX)fMzY;rw>;Uq^6%BCT`qPV#6+eUW_tU7FQy!5`5o`ELjM?i~dS~8HfH-@s5gf#OKVS@i}39 zFYATxvTc45-!BK>F9Y8%1>YyIc17TOp+9ogn7$DQe%FBOYr*e0BgVQe;yPk~)HA~M z0QN`W`I(e{;QB|{p31=Wa&Y}_aQ)sd!SyxZ`r7{ixGr10aJ>{8n{>#sk!FGG^5+U5 z%X`h(oe#1W@kW9-Vz1u{o>&W&NuIpPS=UG1jJYl~&WnJ?yU`g^##Ywv6 zObf=`q0^~rI2TJWCf)Dn^vuq_Z|oc0AK&rB+3mSW=$lUiCX#`T6ksG3SV=?QJb<$Y z`}kzfbq6IYnE{hpx!CZXZl1`Qv+~z1!ym*2zLw%EH}L7j>Gkuae>Ub#ftRQ+ayL)n zcYgTyBz{Y8o-7+M_4(9U;Em!FR$dxDcj0|}ov|C=N2zxt$HkfD8Smk9Z49c)XmCC{ z{z9kG{0R6XeY4xT_v7(zLnE)|-jAtompqA#IfU^`SD%GFQNIWBTl&-aNyf%&D7(P3 z&f!M$C~!>I*$>(>UehxRn`#$USh;J+Z*A?PYhubWYO!G}e~@S4h+pe}{ipo6E&NuV z8|iMPTVYN*OlY|1i`tiO`EqQEqtT<^VfAfb;4ouVTt%%FSCMS#bB}P(5i={JoEV}< zayc`d@oDW=)3>L$FKm*IsUF^C^+`IWWxaGv6VNeTijL_r_@B$sF-3GsFS>r1(MDXZ zosUuZgT%kiJW0otV(FN4&QC{$4)zO0WqDO2AxE0DwBceA3Mvn@Mt zU(Q}PQ{!srxA)(St2}otdg~G9Td`J}UoY)jbDM+z1=kwO5XK?6nap!KKjM}nJu8F@ zw2^{-Vw!AO(Ch=T!2Tq2*~(?~FCLv;Eb@uQ{D5h`(eQwK$^&)A8;`3t9loUx?3!{9 z*KX+Hgh7ipe2DBW7~;M&kR@kG{n9kMmYRr{x#&Gy1cIZ~u(`Y*S5to}fSf%C(37Tu*=Yq366m z+#luk(423;SML!sX0rMhLwhIp?HXWsz;)+$9tWPQfp1Su@~TUiGx@Y^`UPjBQ5554 zo$ZV4pff!$>TBpM$$9IaR*Z}hz?n5<+}W_IWsl*PZ@`KPkvxxs10%!hq!_T_T(iLj z4xVF#YOwD|4R#;1&YAd`Etl^?$FzfeHb{P>uBs@%4|sk5W%n^RwRIK_JbI8g2<0=| zN?haA4L@Jl z)bhJn|L%KZ{O|wB<^Su7Xn)u0zW#&gkK~tt%Ob4)K%|)sF zR1%4;$Ov4^SU<%FqHXZy{tuET`uD_5^0zvR{ribO`h=LlgYz%*>wEcvQ*=wx?Y5(n z%0p-MncgX>qX9p?U3vz18I|Pn&O%4ED~y}+*A^|2E;bS~A)T-8Nf$c>7}51U`tuR< zQ^$V3*}8CORki-HCTs%w!GU$zrVw7Tjp!p{-*4NF6Qsi6)m;+Iq8aqp)1NpSCmt-lw9=YJGmu` z`z+qjQ~-TKSEPB}(xI`ZTK%hokM%OIP2!cD{k&Ho7fB{MAqSnLC#oZVzwGehpTrl5 z9!BQTz?QSq5x-M8N7Pm^Z54#|8)jJFwpjW$&M>Hh50<~Z$=qH9KP7yyac)qcwHMCa zS#)YRCmK~1!8vrupT{|)qxKYV?z;bva~*E>t_aSx0vp0P!A3#lz7sG}RJBh&Ij5Av z6}a;W-^6D{;N<@ezV-cw#kZEPz_&C1PJGMig>P!>RPpU%$;0d+(sMP&b52H>Pt|^P zZ7+Hz-YTEpLH3$mYtvHdyg-Ci%MJ7p1H!Bj!r)7Mp|7Il#kko~Wl8n}GNWzN@+}yjSV{+fJf! zx+l7)`a`F1s1JOFd{k2d+wlK?VbZn@mxJq9qW8OjdM@=6>U*dQ$q6xm+z_Yg|G#o} zP18?r-L`=oJPG9BDItGH0{OT~mQj3I8G+@=$8!)>s{mI~Z;8oNLM7w$9Gq_O@c~18Slr4A6XxZ20)`l z2RhC{*O-leJh7wq$AM$PGIeD(YK1(x*?ZzNR?ic)) zo@Qmfv2i}7g}${$yPIXBKR8{nuE~LM`#HxKx$a4xPyojKb-(0Thjrbr zV+PmK1+BfQ=c;8lMUR<9nL-&wkqi~d_kI)KT}B*jCh);w>ePXhYRdO1zoGn;(nI+RWmDoSQ-4A^MtP4i{`GW58L&1@)V z|B59ag~#?0)|thTTokplW_6j2<#B5H@RdLG>eO83s|hvRkRf2w@* z_2@3Ld*z#-g)gew|6;y*-e<3_SZL>)mtXQ4@K=0T1#u_Bb@&ONVno{6qf52d^SzPa zx~_%m9pvzlkGAv;@ZCPiScw@oz@5*Nl%=BepomZoJvk%<)0^> zc?aX(iO!~D4EdT^yWnKo|ED9@>Ty; zBEAyi!*ecOjpkhTz<-1s^+DFzqIW^)9M{5aEB>Fkv+~pvuO7+!pYwJ85=EcQllv6& z)Q@1V7alv93k%o4^O$UdoHogU+rg28;Dh`gZsA(@Zl><4n&3YKZfO6XW8EJZxY4Qy z1!hr)XrmJwkMiRDF#P}ZR!v+#^`k}Z=4&Xc*o&)w{%v2-kv59FF;`jfX4r=vJR`n= zxb10K!;O%1&K~rC!d2OTh*z{?x_^S6=X~-P)DyR%Tv8rq{mLoOD$c>QXhrSfE#r;4 z+VQms_pTc15A#YlJoqrmu?gM3=qa?R<3QS$w;(kzn|65{{F~p zcXKS?&q}qwpLgDg?yh-W=M~iq5_-eP|)4n~U!o=q&4&lv=bNAFZoumt=NX_pvwCk%wP< zz!g?IMt2KvAba2;#w&VN>8##lL<8ja2|G0dfFk$;tER)sardU(#r zn*I@Z$ik1bzTDlsY=*r*xwaDfQqEeAVJsIi7WVZ>JXDsI8*C6cl&--(`d#d#S7R@| z3cIPD$E7{@O6;lMAs5%w**(s_mJiLbnZM$hFXp0Byv`x~f)pPq`$z3viNSlXD)1HF8rw;q)NMh+n#ne1}=B+gkpVjBChtDPsyFa-R@D<&Oz~z(AFMjGf z*FOEvZ?471YY#qNPJF!HcMf1HH&WgqSCq}aM|Bt@#7|&T!Y5~HaW?;GE4`hfGp{^~NC+TzWoHpAgNif^Ix z7Nx9F3u~(OIw@XkqkX}z==g!&=UoH6O0~{Vj-dN3h()0C=AK)Es z4%oTQHNe|I41?^iTb3GKZTL0o*-x(3CV8J=OHTZ5Jsd*X5Pc4G^z#0rgUHU_MM;&UsrpfA2-k+j@(79XZ04`!jO> zV;ko`Du1x;j~F@oMSh9$Ka?M$&cTbE)2H*cWbcjmDMrrYyCq|s)8YGm5oRJwDxA5Vv(hZnPCQY02k>_)J>*1AHaF?EJlf$+kYB(~6yl zv23{J9d~qXyW@@%`YF+;d}8ein0v!rmJxwN&Hvc&+zSph_h<0CllcxY@AjOdGfe*5 zXD6O^`CUyZQ)`;iu5mXFEG=mIR^pbaPgAauCh6Wly#J)ls3wXl=D6ed<1(m$NNCziHSk?xif= za02JqZ!GwFk37G?mhe6<%!l-KfXjE%7jSu|BicIv+}@49x4y6M>;|tz1In0_w($Hl z{HX^T5bYhtd+S`$-Wwc!pa;=AH8+tQTx%v6ziwlW^xjtdGDS<}lcD;%mx%93`$9gv zV>5r-s5ngRF|}tI8_Ot#6c_$3k(l?b;7HGQ#~U5wyKK*m!gr<*dq7|4d^CH4i@hNR z-4#7LBt`Gok`LCeavm|cguY>XGwP_ebC)MsX0rz@L#0NBronm zV{N~X#MrqR^N2xu7(bETF-h_piO!pu5w!f7MPH=1v}2U)JpDh+z<%89r?0^Qb_nto^pOI5&K$g4t0?Koa0devZilt~zh$EL* zi`Vp%!zQ!^ACP3=Ks;fO{$uWyLn0=XIIbLHo@7&WO4fSF$3nQHdxN>&i@!x2ehRb9 z`&RD77w;^^YOx1PpZQJwEb@|KiA#>%IV&O7dnSG#Q}Fwc+_wg}-7NeU??#{gme0pt za!twSqbgy*f7<6mcqu;*`H;+_9r=1prayV%{?y->jJVXS$53ty^dDdOYB zD=J6q9`u}ByX~BhJJE;9Z?p4{hTnyc#}IUW(gSX!4f$i~`f0A^i=*qGaV;MYU9aa_ zF*>?#-us=vGG0LoKi2SP~4>}9*r;v{oz9;a1@I!%T z4Dg?|JaL~szmJbflkQu-Dub-&uX7lWi0^DfPpVwYaa^CdD0S78{_$Srf=J-EaP4FK zcnT`#bnQlt(z$c5fe#;>oMC_tp@4O)T`;PPHT5-dU->%<;DMM^>?LzB{YS z@!qU1>2?=W7eu);i-{Sd?^eDolkr(GU95@buIFOa@X1!49yo5*@cLFgByg1auqDTl z|J1sd95_I|TmJjdW+QKwm5(3`U5oZMH#v5?tBawllc28?p|h7mZ!g1t^-}!RC%|(T z&4wOZc}7Ja)qj$MptA<2*F5_D$&1#ns^R*>Cs(KUGoG4OWA>}sw_lOVYf2#D3i0 zjE#GWGLNEp+WqcLU3=c0+x7mt^Sb&lSAE~RsVn-uxm}6x&13!)C#dtaXOh!=ZpPjG ze-HoP%l{AY{~G3Xo6DWKC*GYIb(%Y~z=|DLY;bwTNccIcAIjk}h=&72#=zzGKx(^L=Na2#1f`StS1Io@9G^n38@ zACl{CE+hVK2C;X)g~p|V|9glXexK`Oz|aS|$kNV1BU_yg|DNki|3PFb@!9f$T4$u< z1C@#o)S!+n$TZ?h*!L}XX~hP45Fe;ct6x!p50J^z=+g(t-|t&=L_TAM{!hT&gFkZn zk3gF{Gx2|9pN#lq#DK$+Uv0T&h~)#NZ}j$olE0+*_uf8G;)irkzBR(%&-*~hR%!gN z^?}MXi0fic*~b_^q{s*A#{Y63C`X`_??_hrDj%pCXS|iWxwj9L@vd)Egvogoti$4`x?BU_I%lMziMCBeyqKC zM9rYV<|6TX$;et?zK84C$Ht)#{0d!}^km9Gu6>JGx{*JIZ*RUUowMNw1#%g;%|oUJ zvbYwXsr#pMExnrfL+LT)BW#BEoj;Bff07pXgH@*n-lDF*E2URI(L+xyg4Za7*C>G3 z_-*4{`lore&p?0=q<#ChaS%DWZz0#^=y(fV(#EkTo?+e%)dzOf&iel~i00Vu2g=k>HgA zYmTODb|hCd|6+N1z7v@qcx%lhUpKPmG3UUM6^_)nG;-g$7A;yX*+qHr=hIKY?=tup z$#)akF9k!AG1W&s6V^v4zNWb}-UvP6Fj9yOwc-vYn)NFi9j={cBKPeD-joaO0rQ*1 z9qfgt%EMoL6tZ5&!V#T<&&}9~>%j4e$elIxOM9~TYRSQsy`ZCyxEl68+26Lv^g4%4!oWe=ToCB@6f}zKd zImu_$lx54DM~VGG4jeh)&SvNZc_)zBYsZGq-wFS|liykc&AZk?^HI#WC&T+rf$zNn zzV|`q78&mgIaH8Ptb72 z_qi5-TxbmTW>Yd9$sHbKKxfXNRi*H^>w)Q^*q=(n`In@}*1PiG&kW~{=o`K#-t}(u z^ZNg<(8@Mw$GU+vO;5VFZ8$l13g_G@H){#!q9t(7UCAH5SJU)I&$bOG=T70AyM&|s z&$(y`oO8$7OrOuEbaJkgNRE}r*;J7nE0MFQbbk3#@+sM8Pu)s=Gi4#=hm_uDQ%N@J zeKyrxesdmLIG0Kdv_ib=Um4>Elz4d856r&a-(mYW!-)3YOZk8tD)OWH9rZfK${BXn znAbt8o`g2N2(5ZuG|T$7+ShqlGc(qObE$m5KDe3hhM(>zmL(rof3G58hoGD4!-C2F`B26v+fXb>z#K!1DzOR(TUr5 zMm&e;LLPg%e7MeMKkuNHA75lIFE&%)t5Vp@lRK~{S~6wAqU2Qx{S&+&Lt{P(@8w$- zoYkfLNr{dW@5emPS>D!Oo}X*)ix*ZEzm{f3^HB#Yb0XpAa}>`LUJRL z$6^>T{8js~f!)&1S)u$Cvi-;|G?OB`5dNm@zh%%HwVf|ski9sI{dYgKt5$T396~00 zYz}rf>9exKcD3JI^Jve{+4daDU+2w*&~53hZM{|Us`&VLug&))!}kmfY^|*5+QvCQ zmTt^Uw|oN2py?64Sh1xSOYSIRU8NUOeye=uM}2HjULW*gjaobQ(^}SG9oJpNn_2rP zdLwHOfNt+$?aprNSs{NM(fU3-C!R=asD92ur&HB8**hB@q~i5&+*|$D1NhF~#Cbjm zMt|>*@SRP>=H+vyTm5e!cjgvyXL`t;nWfyB*jWT0t;B+fKa2F0`SckS^;t0Req52i z@D9%C3iB>A;9J~TWf`x+6DSAPlK2>}^o^I^nY>CmZres_1U^N!ec@hr*9V5XdrADI znQipt#jp*doSaMLcMR*o=h3&6`=v&5hwxw*YZCFbchYte{nDA9d*B5YSCx0=&MNPE zzp}h*9c6JvZkKabZr2Nyxm`C<%Hb;u6C>v&$oGqV2*35h8t1BVhjXW+Vn$a^MNU^C z-zyKpz;?kvcz&BMwDqIG=L`Lu9Uq#-IRfkJum>!${mL{yRa$RKWNxH0JqP^gAK%}r z__qDX99GVz1!s35Tlmhyo|Z`26~>QUVP02b>y00+*mQS;TjF&Kz>gx~2m9V|_PxIs zKgz@Sp|&+A!jBo?hw^njPVO$vO@Z)(BAAZMjqpQorhe`P_k|A|I4{GJ6}k5ja?r=L zshmF!aBB}TmiSoF1Ibmwi8;vSix-pGUKylYRy8K+tIm1E(@{4btpxm6Dg_*8>SKT-`YJz(7* z67Z@TEK2=o32GuA6=dFKxn0JK&|A@Y0;gRow?(+Vo|` z!iQ6K#~2&a{>h#94tmH=^!B^ZL97qw!xelNvF}eZOzXTMaz%VDuWWx{UU`x8;Dd@O z;)5eTwr=9p3i~bIP$eHw=2y90<$It!u?_6;@~3pc<3;iX7jq8KD2fN4GWk+Q&hXQF z;t7=ZcM|z}MpBfQ*Nr_Zi?}oRX3J*NBmE=&8^k#h*TSEqW9Lh!K8_4~2s)|#N4c+W zVg4ke>i0aZ70V%8)YZd`jiV_RJ!MSs@Sy$Z-`U{QOZYZ_jNi;$uJ^-_wj%3l?A_Iu zGN%)m+al(;khv~EKmMX+%M>g&EaXfzaO*WQ27WWfTWSvIsO@Ll9OE=6;oM82O?qB@ z=B`3}Uy9(J_)Pt`n|)~yGUof>UKw~-F1&-s`nnu0S574F^mqQYKSVb2qn)S8<~P4- z-cNhalRt#^zet`Y`9o+Qls|;_K>0&xKa@X2?>tSMhkAm~9N6JO&tuaUo6pQaCe=Bo zd(0^BP$LRoTRWbyocf!@i9&C!I8mKdyjd_MJ3HH!W`E$lggy1=4rslDJZZ$BC@w`bQ+d%O*NJ9YupTqe`yqCl`^(Z+ zof#+HNPI`m=*gBpemr>44?IW!56)ryiR>}^@pTdpCb<3>xE|-U;o6PuPqah+Jf4NK zy4Fw(XlW+0R4cyy*+$$*e4Q>7za<^Bta|Tlph_O9y(BT+YBP3&W*g^5lGM1>`nW zoNWPqRgv7Lt(Jezz>Y2CHp;Fpv*6Igp6*z{HTf&I*wbW-p1^f&R6$eA zz5SYM6SrK_a(nG1b%wjCbxC|v8n7gvjTG`lM8?pv(;h?c_x2cqYt0j5X!+yk#}It) zvoW;nvd0kIZsJ2bIPmscJu9qvr4Q`&zBKZYry_&4a?LlV6>C0C&RPJb-(ihhi)yD0 zxzn{Ofj(u?Cv=J_y4UV32>+cD9b4IlzS=nQ0}HI9se@t znG{co@p%?68Q;j-x#}+Ty~Mq|x)^eUo1yk-Gi3e#O^ok8{x4pX=L^PhKiLc&IqqoQ zJJ{shSTl6En)+hX8n5Q#rqw+wvif(95e&5~iQ^o~*rt~0wU?N*k=>Bu+wJTFFETiA z=OaBUIw#jP*Z!x5#v--lW?^a*937<>y!Qc-AO$x3h*VcmD zI(ryr&&5v8@pJk1Y#(IxOMVDH_w}qe#CjaQxF{qY*3ww_u_w@7$J2fRG+lgx&J4|_ z{gc}`zFdCMoDoesiyrP-fzLzeP`I7zX=f?z7|`QeXP7>nM;k?dpWV&1@?YWm*O=~Z zt|#YJql5e|)D4b*>TEd;+{Wj(q3@#E*+Yvntz38bz-PT`pBLc4K3_-di;-24asO}1 zGGq@}LHox=7ij+|?URqoYCjlmKNxPmh4y!Z+i&>>?ThBLjTX&G34B292A0PI%i_63 z6An*zhmImsXg#J>S8lrEy{b)DROfA)^4_RT(reoBEw+EsNPa6%i{e^J*@y2#mb#*P z!=^0aS+00*{ibYc`P6y0dedcd$#lkB=PK*$6c_nxwQm^P>(g6S8J4U$OZ{4HgnFJg zngu(fe60D3f@a{?%6YW@A>%5+j{YZy*|heloVg`^F#Kfj93#}Y*6~IxK3sd}Ir=N3d2f{wnppkZrgmWP`~?-A?aK?A(R<9}{Ku=Zh;7Lx$CAdn)JvaN z|w7_)Pw%OAID zH0>Wm-teHml>YN}(V{xz{P}&|q4_;M&mOusD)j#LY+tabudgp-vfwuEO8*{kYZ&v= z#u`8KcFzh=4S8kU?q>1Rld+L>Z8n;Zl-p;)w5;IVprQ2h_wH`Nnw|3vo5lkAhf+H;=3*mrS)gv}NI~*7?PQd9Ri}DE^?vfo~Dx=e+dOT*Ap;xtj~$ z?^*GL(@4=hy{9!ih%dcx2zlT`n)H)5=L~2(aJI4Kz&UZjH_v_kr*A&= z)3pbl+PC9CV#m<~^Cs3$+iy19+>iJ7!b7y;mnRw#XI%d;oWbQSzP0$};zfz8itCDB zo`|25!We7Br7= z80QDKvzITJ-^YAO;<bpXS+&y=cvk#{d})LH7hIx!lANYI z^X$8^z6A8C!QU4&H%1%h3#RmK;Ok+<%K4Y1cE)~s^v%7aGX0fB;NVgFUGeg6?93G= zKC-|{kHgiWT)A1qc(nGoyG5TKfL^VKPVU_kZN)9_KCb&SGG3J&zdhR5G2b21z1>HR z?hV_o-b5_(CcSrsbe*)(dYt=9xW7GhlkzvV9u2pPPu1SFynhWjlelj%#`{^9mKyv- zS(}MJyZ_DLnN0_RufBRGb8xT8^$@_l@%7Oh)zFnzwOhxmH9f_zaVrwcoT%4?jWaa5Iz#0 zy8V^Vk38td7;KZ$FZBf%GAqpe6XR;9rJc(?_A;HfCA+yZv3A6&1T}Pt-wa< zesf+ewft~P>x_BjT)$E|Vk~i?fsxRVz1=+*?Be&{Drl`?JS)4Leh0}vsC$ztE5_#Y zUY*+FK5%H^RB%t(xZt54aHF8P0vtKcI#moXd`E9rJkfxTBQ?ww{gS^y3^0*ru2^{# z-Xbql^OoQkc?tea=fw{Q+%CA{+ww)%dumJVxcIGSToWFf7EF8MW>>|lNR{_a_mPAQ*{!UvToJec*fQ!*^*%ZPtF+^X!elyT&Ej zc#!|a$Nq%>GrOGogPGwq1IHu2vcms9S~Kox&Gh_YerqmUc)x~g=GMXigS<{HrFECM z-f(xeA5Zd)*x$c1LL)?N-kEU|v%{!R0MO=7GuNydU5XTTpL zV+Jp`eEW&T>@~ha$;b!bCisZY@kW>79>@Hg{|?{VEu5pjUG(=hr{NXvm}w5_SjPJ9 zX8l$>BY6MQl_&T6D18!~sPA{E@0`0E>3bLV%y_ep$)>dU(g0L$m`l)IyN)UnAbudD&p+^w6hO>U0)*o_%3Z^S$YiVVeEMnJOpQ5 zJhlRwqB-iBHDc@e5R}p8=T}!kv+k%fFDZZaD zf10PG%#+=x0TvEK=#psC$@8N%(^$`=Pl96){fhMIDEEc)dPe^>#sjkz7vF(g={rsz zpUL?wr*k9c&!i$ZJr67&{cD1+p>IJKG2`8WU*XQp^iBDm#Sfp{$I6pv_X!$x5)AfU zOVPmE&-K-?3y2rX5S{a*@qHEaZ(%*haiOmrdT8MjI+^x- z+P>To>MD1Hjyy>{(-CTgHi|b$SS7uK;3+Ne={evL{q0f>EFYszPUswS6xl`c+$iKU z@jXXAc83(3s{0o2vTaO9F);{1WE%0Pk{{c^fh>4`(PUG6YglJezOHA5O{eE~9_8NA zTDx9u*Rgrg6X5(6b^98E!|coiBVxtkL|6 z_SCiPsqnuotaA!->_Nu5nz2g;Q`~JD@~ddqJFKT-uMO_)K&Cv*SPu6Z3o^y)g=fb3 z9yo>Z9A-Rfudw#M`&<9U+t%s<|!{71&4aXiz~ zvqG{_L?%k4{~DLZr2p6Rzy9mm>~5CKw48ms!VzxALGIP(?du>q5Xn~&{YXSlb{}vN zWFK4YbX9p5_FSbHP}v4tM)J-~licJhluskgx-R0{l9>wZb5bS0Dppyv^Eu-EDzK5f zM2VF>a1`*=r>4o#Z`+2UsWnY!oW6}*Hbco}GmKm|XOPQgcu8+N;Tm*7YFoKFN=;Ws z!;jG+z*CaTJygHEXJarI+{Naga~NWf&0a<>lWgX}W>`Qm$d#Fe?NGTUWOHmEPFv6t zwV6+QWxk%P9_#8EaD@4gz6E-|QD+_r7k~v{a22q^z6UL|^fAetEjgVW_MY#${lhKX zN)8O8Ms5#C=WtN#Lpxd4e}e)UR-GOgLLHo3V9B7PXiGRJJ*03emH&iuLG+>8V`VRC z;lKWR2Yi&=dMMu=I`Li@C!-_pUDxY9{xkJn)k)t1XZ5XPXNSL4)$1MpJH-89^-1si z%6?~G}oLTy|lg9TSk@rs;-ygXj8Q;lcdp+{bNn?9i z?|jABwnyGMX>7mIJ6|!j=OXW%G`6R>ud)4%`Zn}4(s!=cJ?Nm{s?!3EOTOFrl4x@! zG6(#P;Hi$WW3TXi-C3<2qYB7P@Y0R4fefatud~Vb6eYj0L;D8baPf^sXL@G}_Jv#U zm6b2HWQSDj+PAX*vG+feJ>^1ZVQSz`V1PV2=Uew`?R&R#uL0TOww!{zTUoDNO|9=_ZjrLohu*RwZh&q@i*fakeh{X^%pBb}URnpgN>$*~t8Z&=T!BwJ(q zA6N-x#ivSJKteG zZ^^kd@AlKarp>cIYxCbDZE`NaEhE)tT0nHbYLoL`)#fcZm*?HaT&RyE0tsoYzR=Ha zN7_sa2>t~RobeXA>dWp3u>{ta%)~)0H~d+g|#azBH!2`Ym#_>`d8uk+@bQ6a<}Q^!e0nDH zUixc%R7`wT9Qgk@IbXu?$(I`)?>J!NtHJdl`m*%fIO}&R4J59MS22r$Ef1fc4w~!}ZfA-(ve4mX!HQ?aC3r-sU zpz!!T%;9^C|6*wISB-x>-+B)@y=Ig#PxS1)S$B?=9c2}~_QlR2Udb%-d3uTQXP%I6 zANvx$mg2q#1hz6>?3VlIJ8D-Bbgo#rnAoG+9fQ2K%$XMWHvb15L%iwxGw&F~w?pvG zZ!#|{bRHJ-wIBGaT7sUq$o0l<;7qc|=k}~6r*}3MffL|E zORnKt%e8d$+00Q^ROcAo+eM!=?-c>JKgNjIC}KNez-j4rOW6lp#P}bUj~IHJ&5jsL zm*;`*iaspmec%sUml3)ZI$ePcNOHXXH)yYwZzvwVhp|=Wxcx3O#aq$W2<4+&Y+Uk# zFYI4iSqH|${#D2r3xKih7JQw<`zMcEXMfxBmKkU|#c>=7k7L*8#*r47)@vNMec3oH zT9^`e^-IQaa$mm=&U==Od_(?ZpI@gzowe{4WfXj#HcmwE!kV4GdoVih@@U`c6-MaD z_Gl}Y#+Jp=O89VEDehcq4F0-F+TypIf)@IE)vcWq8jNxnfi{5<1UT2P-1H|m# z1l`v`BD)CYL2mBNX|+$&r<&ey^_CeI&cZ4W!0*86|pUBOms zZoK7B^4uuk99jYWdy{-9mOn`h{v@JD@*{aEaHaq2d`R*vACej4`2IZ2iR38ZRr_$$ zPv0KO!-m$5%xlTI*w0#W(|qP-?A7#X^QTGv&5s%(1AH9LZ#VeX@F4r&m*_GpXiIkQ z+9kE)kMjRfbe#v24e}`<7bd$y(#K4!I)AKqkNRjMw9E%y!3p8!GIn#`-ip8FhWfm{o0Ct0y8RVl9quyxRPuqbh`#$+SbtXPwDsM!%(v#~Lgr52(>_(pw^qg(@_9+o z94_QP>C+$iz1#no^qkf{l-!}VYfji#mapszw~emAqRBz}o6h*PZmsx$oK8En=)ZN} zFtL}!C>Cr8F{DO7bY&3VQ-9Qt7$eyW6Y^9sI^$y67|HX+z{*H;#+7FnzGc8lJ9rWt zE?Yo&UZ%wRejq#nu9C@nt^3krKFU4WR94cq8=p+!kYM62;NdaaDXkhi_7HTZK34l{ za>rxX6hw<+$O+YZe8(fY$ME>>( zmD#Ku4$r;YmwYTvpX1S<72@k8haDIRkN9@anB9Ei-~g>*a^Mi_BK=<_`lzGRE!yx@ z;lIbC8;gfN#QV(e)K1&M7;T@gd&jpdsUMFl5o%d-AJ@yqAKn#Z_Yr;Gp|ySd(sy;P z?duO-=kgz!%-#SWt?zW8w-oKqtEcAsZ_wr*`c;Dt=}P(~{>{WDdhr*SUymsDI2JbTxIIY)N4m`Dc97-PbtZx)+wE{TiFgxS-;Uf;{mP zq6d=2EIwTRM-e_8xj814J}$~z<>8&IIGZ1-KyKFk!Dim7n(5F_bf6w*RFlW)q&O%h z#b~Oh?Ml($u-u!){_qg(@L%XB$br||GX7K9bK`vWdJQ5Js&?9=JOe#o{Za#sQS_a; zk`23_HJ=FoU4P8>edwUi9>%9c7%matd<(Q`v8)u*QP|x6{`K`Xqmu=YZRH-bwM{GYY<@1?KXfd}V6U zqp4pecz-lcV;dYW9xywD@DY*w`?)Va1^RW`yWp9g$qYYp6q)e|dx3}jCKVccH8i#+ zncS9ZO`nT*JkjpZSjLB6oo}q>7g{g~+P0~`v2g@@PDOw1IfJY{XE^_VCZi4t?>U14 zqq(m=C;i+>=-ZK*1>=zOM`T7|v>*)uG&B2TUf%dBP8JvDv( zlD#dN5*gBxDJ4JBe@n*1{t#TwZ)i)4qvjXEBGcE!9&POj$d-pS7V>0z24G_uPCXc# z&`i#_y%;?&IW;TtjpiN9k!0nq;qTVzyFF3_o z==30H^MWJLTIRHk|0;SIOqgYP*9J#2Yxvy0d;6Fbra{AV0Q=X#Fv+W_Z$^JRULXDk_)JfZsb zj|2x*h0X2nO;~Urd-BUav-kA+eoNWYCoa@Et}W??Z#wJaVcbi2{>Q-kv%q}>M<#(` z?*+m88scgkqAB2o^z1{zuq{2=`Ftyf-@30jCglK89+paC=#=~DV`Pa>l4_gxH`g|| zl+`sCn~9tkkmUU&W^wcV#1J;|`{TM;pK=y$MaG_G#(LM2^FVbz`(75`je|ao$X>t7 zg$+!xln zE%{kv3zBzL{?6C&{OaM%B{>;um)tXcRWNeR^518zSLR}C;rqV~^=u4@rcxhHuWhcMuG|Bzs#anHbk6J#XuFm%dpNIsGjr2% z)XpKfnfyA9^w-5W;=;CzkOtEOdot1Av zF=r>|<+F54^3fvCzP`DY_0@MKFjuN$jP#xP*l={FY>Y9;y50kSySWhi4SA6D3;>>@ z-!r6N<@a!YHAkEoNrR{5cU6M?@i#Vs?NRt zeNF=pDPNZIUnxJ9@?9yPmhxk{2j7xo@mYD0xQI9e-<9~Y%!-{Y6#&xH^{-=(MgP47v%0lzvoeiOesZ+x7$ z>5WhGa^E9v^H#iZA}{(tYu=NL%@D?6KXE?sC&Y7!doxCBh^xkD z*U!CS8MZ@=DfY;lupxTNv`a3kypebhenQ?LF2;w*9mMZrgZ~-v3Vg<{C60b)c4cCB z`LQj*7EAV7PP?sn{FdET&~L5mxMa5_`!1*5)`H~K%uyO^Tw|Qd80+3%`AjnB2zaIW z(H+X+*t-r4iL9MOSc;r3U2BKlD4ly2w^G4Cv4Ei_Y1wbT~c_ zJNa%o@SS#T7W}txI~TN+Cy?82-A#Nh{;gSew71Pi{iWz&WD-l3sq!VuM2^r>#C}1i zf%AD@YXNf1K9R_|X}9pI?ciPd?o-B0^%n5nKY6BhO9t5j-KX;U0FOn-H(cs%dynT0 z>G+9Ld@;BqvFa)f_w7)96M)sFoBxjF--H?%j(i;QwX z>+3wj9>Tvj*0-a>mWMX*Y@fcRO)u$NbYRRj0k_O=X^Xzy75uiS^V;8|jgdsja4lb4_qy8G*V`Qg*3I<&44oT(|q<#%P$ww~5{D2VXoi(Yz=^5=5* z`W=j);BW*!@aNNx_2P}ZCLTra!2P_lm%LjU%>N*mAMrfX5n?cyf*RV0ZPni9@nZ zds@6%>bafo)YkRrK#2GK8~Ew)yzk$>Khh7re*b~vk<#nA|73bkbY$?s>grqT>t?m_ zHonz5QhSvyz4`3+UFvAxWb<9=VfGFvUHZMV-_3BmJDTSOJ+7}PMYo}B;PhoyaxgG``f zx$E`w*-dNTrNS!}-FOW$k9myGnq7nZcWB%KgZvL_+$wwe7iip`8RUmPzdv!^Apaub z5kDDZ>Q4vt!6IpsH^GZ8r!h3;a-(W6dn08i_ANTMX1l5i^t;CLPb?Zm@{E-J=$>&- zr(|MRNvt{eP;d|4MvEEu4jj>YcXB7M`CK@h z0#@$N?4vPpGbZQu%Ou%!P8{$j%)4V9>uFyscmy;i;oMsTG*8izNg098y%QJMNqd|5b_#oE%@fw%S?bo_i3|LsqhqbLcj5xu zc&~Hs#08$#ckX{_)!qrde~;t+%{*`HUR}|=>|dTcGQgYFg3R}WOT9ZF^+FNmf zxj7cUx7s;dWdTQ+*KJ4W zXEyM-7QEB|Cz3CJ)?qs|+Wl##qfH*o5A;6o3HDx38;8-xZ9HG|MYKQI)?4f{jYW5u z_W`I3YrXXjZ)4c2#&!xai z3^0DdF^k}tV7|scX|tcS%e81>tJ)?10&2_O!51tT8y9ey?fOCM-qRi1#Z!_Uh1tLL zR{z>AQkijqw-p2DW)o3;NWBZvr=R(-34^q2L<$fLPKUIiAa}ebyKHG+X|! zF4a8*p@BO%H-8Eo{0v!eF0t;*a1k$NEx!eCx3!m1mxleO+IA21p>vRrZJmjGNS3)S zgnO9T2d#_mZ2cK~J9A5p_GvOrT!}dO$S?76V%97I7HRxswuB`zl7z*9y z;~bLw=y}EioMxCW+}mCQ{;^?k>1pAG>lbI9{ub?#thu$9w+>&@Lq%tU_nG&XY*<`& zIyLp|yGyb|th-B^xx2)}vwGlW8TEvN`*B*Urtg<^ zq3?@q`d)mOCSarJ`>fnw?613M>+!5l_8-rB;{D^M4vy%1?4V745$mIzwHb*WYESwX z#Tt>1Ja{CrTetjm|JD($$6fB}zl_$}Wj*C4T0W45?fhv{&MTCUPKA6=6+{_Rh768= zWC(bC6?;_cw1&0lW}WKp1E&GPS+HyXAzO*S%8nbx%jyI8Sxt8u0HUJxqD?Uv|iA+-HNy8Rjx5<)`cd``gK0>a`82i zi?5Mf=)+uS*j#AVTzuK(;)5%f`(AVLPm+sIJnJ5XJBa5H787nK%ug=1eUVIMJ*Aqy zNaWKg-1K?Zgs+EUd_Kr0Nr*ujpAXaM-xy-?LgfEWzVC{m$4hAQ3h3~a#8%xZUv0t{ z=UKi;JS~m*6wjgDA#PW#i~DihF896+?$tEwOkCiJ7*p0D9R2Xxj`_GX_c3)NFQmPqY2Z^1)7e*g*Ij=?Mp<<){W5mm z`|v2{+shbAE_5O!Zh&y^iJZ5hjo~TetFFW}mxZ6uHdEK1_9Q|dt#c=|7~(~y=-e`@ zCP8Z$%fHvUUUQ9HM!K2pl<)fjdqBz=NBcbVM>tvwyq0I*y7D=6X=3E-%Az-t0&jla zu@?L_79L4&)vqxs*dw1WzWim(gLvS|d;A8=7N4=h2S(h0h4ibrxVtGUZGP8Xr}I{4 z_otJMwkwHGP50Ct`IgbvI?yof6*Q)@L6II!!DRTwGv*I31qZm5c5Yt$%yXWS0gp6i zBXhn%`jCl%HtPQ9Ti&*hsXw0e`U&p%y=6;x;;pe6XKQ|BJ=jI5q zC2W57rK^os8f}83TKg82v6Un}O58Ck>S-|sH=BX)>Y71x08O*VEcWu1JC zTwA`yUQ9=ZJrTT-eaKmzUyEOpNbD5uV}1RI_4Q-cm+l1pBm=!w*1wyzrM=18ikZN< ztb1RPKTMguF!0>g#ao|?zCHbs=yY$}<($u2SNpWSIH!?!Oo?$v)TS6QE$%BOoqCjW zTkGf``7Y{CqfGgzUdovg!+8?Txv~_$&IV^mnj2aV+x673hI|W|cD9Z5DTZ_XFne0K zb!zwO`t+z>TUKy4)k^NB>T0v$!$;DxNchj3l^bZ&^VsAyqU&-P-&#$CJoL4zLR_`F z8!wdlUDTh-8MzccNV3uJ;Rk6*tYxEdn7hR~^gVp!H)uyTa0WW-HPKo7pug1bTH;h! zMzZ=|YU9hP_TDM7f5-6qUdGuK8k*-uRuPJl!5NXIC(kk6Ov&mn!C2^F6 zZ)H<2FpE0wI55055LSCH^Q3Zev7=QPxwcKoQedUN;ar)bdrR*P3EKxO|7}`g zYO)JlPI#Q&X+(Bur26vz%6g#OZTE8iW&IsHT;RUPFxoP2@V0usW3)=&27b?or-8W% zye~MTJYXn3pMCpVfgv9F*)`BWg2m!tWWq1xe1@Mez`yin;45Y4qAOGktW#bMv2<5U zrNhITlAUrEeGH>~>3)7$zojp8c0u4WzH8?EGG(sR*Ne4zEW?Wo))R=NUDme=fz*&V zY+?tXTN5AnHU0aOJFYgn{L0}cDI@re@B^*?3A9--%)E1#eR1Cy-*feg>z}L7y6llB zV&GM}!Xlm+;ob4B%TvCWyCgUC@tSu(mNSl8S1vbl2kw_ThQ6BmCYht?^)vnM9qYfy z?)QXq^t+CJcbw5(TKn+%`hJXl9I^YJ>N2)}3NE3uXd>&d9Q}-D+TI2|A-U$~oXdLd z9EXxFEKmnD{#G-4d+75g6%N^qc2Q-!+RiKUW8y=lS7) zM>6pdpfyoy>lU81CQ4)d?@+$-Le4cd@Y27@*wi`4=2XXa^({Ca;jZRuI`*;0Y3mukSIfid8z=fk?wzr~oD+EbuZhR+VZWZDy{BYb_;eq0&;Fct|NJuP zllBYTp?;I!Tpn8&{5G6#X!C2HsviEM8F6)`>K`_dy-j<_-gPJ5>{IvYv*=PS5A}ae zn`IBV7XMQnwZS&^z^6oaLbv+Hft_tqTbj#h$L?^m9jgDks-NG@H=;LYx7~cNCEOg# z@DF4C!TOIr8c}y*I%n6LJ?lPQp!(%&^n$=b>K*~#eJS+PDaP!?WbY36k}zDO zm7CI7kIcyw;*W10Uw0DSM&Ws%e{XDE>p=A*CU8B^j)1dio!yQ6OSq!=<=5$3@Z&LN zoD{gGEhtM%3S3QE?`;mbwY83MJ4>WV~qFXFZ*2;nhyLpZH@- znXj}#Vg7W+su6w?zh6t6jlMJdwhPJgT6xFPK8Q8*63JT+?O}drM3{MTT#L)8zi_1M>77cqV*hi+s3&p+C;qMK4I{t zkO%7CsT08Oli((zwOsg4^S}crKv&@k#*y}H!*5BIhcOawLF>7hu|5iHUrc*ccQU-M zYIFmF`Rvy-?}}elhP?d$=U07mnRzF_3P0rVtE!Qi2l-Xf@%jIbUq$__m9G3M=>vUJ ze$~C{(6X!<@q^?~Te#aq=p*63weWFgvNkHZ-}OKx{ptnYdko*95v-Xi?q0kId+7Dx z*xjx#NxnO=BzdD}Ov>^|^Dav8V05S9Pu;-%4pn7Ut>RBfXG&|&P1&K;CE7{rQhDM} zDNnSM_)|&;eTk02$LDq5;7*2N+{tkD|A0Fgif#VXI&`_@JM<9#NadHbC$y6bzLb+c zRRYc}p44^3|B*WxI{8ykfp@9L2Y;&2?cSGb@~GUkZo^$W2L6XFWF8229KocY~5(2d_6@K_?? z?Ua%q20o_WIZ4)jlpanNdVr5}pOJ@nHL>nc^+Eee_UE#B)InNUI%uhx_?bixEfv}Z z`qae9bp}tPZKlqGV%k%3v|}xO%x@MBh^)98Ue$eluzMe9>?q*gC@zOtV_;X*(A$)W z1a#KOKVJ**;RE2qhrkE(o|ovmlHr5Iwo*<{_Hy(WAMF<}+qE#ul-caP)w}o@_erKu z{-rTLN=oflVDq!XTPS-<%#yO!D)=myBb&LLc!-;Mbu+K1h|j0>=2mkmn< zzrb(Idz|JFcQ{~*o{h6%iW|71--qyNmCpT6{dK<+yk6;@!TZjG{~LuaTpqe`QRu?u zvEQQdCso%^nX+rkP4Kz%;djIP&V%fHkA+aT!he zZhK6m+g1F=Kj4iQS5CA0GUiO%RG->JJK&8sF<+LS?t~Wbs3}c0?1{$b@(@BgFh_cl zA;jX5=K^bTLaqBU(ttm@pLi}XNVuEU>vPH0dVR)>(Geg^gc9@aH#yKzQzu2FKvIHHXUWn z*Rqx(;qTQGUrMaI2@3F&QG}n2P}YsXm|a9H{W#Xx+4`1as_P%Pe%BW663XK)p{QZR zLx{VsvFA#v>wi9=JX4(1GH-=?A9gtw3Kd6n(w* z#HqwPiF1e#5*HEw-j!XyGi=$GkC4+zPj)J6sPXTNQ+W09g1_lbzwp3O^f_zst@vYL z)F4+cX>T0NOMRmt&!8S3`kv+Jdx~eE@;CgY zW6A;SNE*Ozow&Tm;RE|h)`0ZGh7iM>ZmTx+0ndSZBlkX%@tcbC>jSw0+3*7=g3D!e zM>f)LeO?&+9PtQ;KDjKZ`c9)xcGcA$&JSow>Z&@zJ-D(7b=_Kq54GNbQ*YvT6?|Ri zfbj8A;APxPFyJq_hQDu^@w)3CFS;L=KKe(zEB=mt5B_7vTJ*H|EOuOhC7vC9?g~_s66?B;! z?N!5o?xsH{U+q}S8G^1>=X~fK|2p5{8W-(l&BwrA$QrQm&^?B`qR?5;9FSiQUa2#^ zKY6m{b<#zmf0&2*f^gr+g&H%;D#d?JLbY@q5(59Y(DG6JIka2Bk6p|OG8*zE-zY#g zUb6qU`EByh;1Ml~Fxqaz*6wOTUj<-7D>?yTj0ZfSSlP6MEnIZ^6uc+q4?Xz4EsgMc zqyy1+(TL}27B6b8VVuIiQL?csNdp#YZ1J}Q&n`Y-T(~)J0pqN>D0nBQZXEPw%EA$? z9?nezd0OM*5vP;d@nAq520o;>pieD7u8lo%DqIUkoYr&hD!od+H)qjq^{2v&`v%I1 ztE&yjXE@mtiBWE;jS$x_p*rxGf&7?$FGBLF~3}4CvSW6QLVZ5VzFYAAJ z*H0qL20terH@rQ67VpUSb0htUToicDSUB^vbR0h9O!?!^bGro>n{jm{m-%Vfr0bQ$`#y;E{5Iw|;U7|+7dBN%AQ zm;{5rseZ|S2c2{2cS=6L9$Z)Y9zNiu`VemFdxY;B6xOL{t~2!O^vF#e4)g3lhlDj5 z!C5pQEW9>I2ix}nnY{g@%$>$sbY}!(Eu8Rr#xpp^!90y|1Y+rsmN@97?M z;d{dKgzpK*622!qPxzkjKH+=9^MvmS4_laA&snW8uI@6%>O%x$yu}r<@A|NwwHwjl z2iG(E64cRGTc!J8)ur;(hH1%?$1P=yRi?%`k}@WSMbrlA4dHK+y-9vz(uZ2R=)ydX zF3do5VFscLQ!IZpsl~~^2ZjsB)9+M%kLI`Lq{yBV^A14PeDHU+Jr{$Ri|Yxx6Lxt_ zb^YCazg}W69*Yn{sE5uQG)5WfB)wpAp?f89=5R_hO!=pvL3=I zCxWw7=S(E)WpS1<6k>j;FRd*3-s{VfEnP%x#j=bke?=GZA^1p#(0P<@fOIV3CFQ$b z>sTv$?nA{oSLH9%%KsePO6Pd<)n4ww@U~42K`-0mT^t(bJ=MRj_mq#bG#nT_)rP_U z1dp3)!(hPxCk*Zn44!Jk;NUaChl#+4NE-%go|dBHxBMIE`2C-T!JY6S+=RhXZ5XUR zOtj%cPvFA_)>gW3^=|-!JK;mP2_Gi0t|EXBg*IP8FgOSwG|pY&uXB6_Z-e8jJ^w!! z{+@q)2mhzxZ|C?9{2KVX+lIF*Y^P? z{O<`L^=w#oTPd{BnR}nwEZsf9^Se2Jg_nar?*KvXEjXVxyfnGPg}pO(_N4VIg73>3 zN-Ijfh_fS=yP8wMZC|jzgV%Pyfo^_5uIse!SyP=pctI*NlTb>zWwD}BZv^M&j)9m_+Y8+(AWdw4I5_rv)PIp*X@aQ2?u zg&5*Lj2@3@IO>UY55`~aAj>D3=*U{mp%Q*`?`L^B>1yJG11(%#IQo605B3Vp61*30 zSZ5agr3cJ|@9Dd%-y^pqL07?_J^>8{J-Pp0?z9a@7V;4K^AV!c_-+vL#ieb#M^2)T z%X)h9RueBLeua1iaS0(3p2AAv4``?8M(K7;z#eNgAqAZjA8W8W-P(hqkrH{Q2k(Cf zUM$+`@_rlgVpbl^i(PprFK*@Gyc4UBRc`AyFYn{kA6GuvuPX2O>f@D9^_!FT$?8uk zpYAs|Z`+vc`lqg6wk3MydwH*>Vdn|%_95j+|0UJ5%k9}Row@80IX(Fv`;OgpAwA7| zPyPyh294Dw{Ya0|x3)P0otF%3AwF@}eVWcW+lzZ-QqhmZSDAE6n$a^k@<}d!y28wN zxAV>t?v+D^{CYFG1LBpakE!%=uk1r^IneZZM?!gbf0?Pz~9K@yZj^H8lCm-ZCS1NMtC1s#hQueW%yr#UpSa& zy;wKz(GT%@SO+mFuI}aV7pJ_N%KXEJiecQjgD}?6`r_`~m*62ZGIx4^2;*lUr%7f1 zxyq}CgKrPpxwz`IY$7fKW*kEXpUPVKj5(Z*?`ZBr9?-LV$nX?*RCyzJSEkX80_cplV#Q` zn~g&5-4*=k#Mz;y27%m;X4)Uy-@Fnbo{2IdAuWb5}SFEu~V#+pdgd;oU~*iT~#&6k+GgdtiJ=$_@XXJVS)DwSQ+QlOp0AE~Z zjPj&UESb_D62*s#59~AJguqK?oEUh~jAg%jJ+ONcFnl7gd;&0iJg|Qpu>ZOWVEs9H ziyrujL7vZc%J~v+F(l;mmVu%0cDiv+bf?T7l#Rclo5QFpoO2=q-j3TJ>U-!sjz_oj`{*q01wI_X zCuws?zkTxY5)N&&cJad2H`)KqCZDNKc_DKw{!=D-2bTwF9*dVa?WE01gfG4q8~T)m z!&@!?9DQ4M0tZ(!SB?1XFcuC!tumgsW%A-H3CAww`SZ5?EXW5LPhOafgC7NUwg9Vh z;e(8}_#j^?KfB`k>iVJI{hu#CD;I4p`B_L(O9ApTjlofZ_D>lyv?H7k!skRshZFBZ zx3|dRt(fC8n)H8Ejs}m_l%pL5POqch_00SDknnvIsKet5$9Fn@Gr$>5Ihu__2IXj3 z;E!qSd+}I`Vg*-JRi+7&gM4l`3d%(Z!qwk z3BLF)XPtbc?F~f+g&)@yiQZGqJ=P_;ILAw==M~mVDSZ7hQ%51Ld;|IS+UXq9W#~DC zA$Pi$_$6cv;L_Xbg3tN3PS44gUV-k;>_r$i))?A`JVdsh{{T*y`VHtLd=8&_0kB;- z3QloNJz}MQO--jczmYN}!@7Z3^YT@2y=CB7=4wpEN8e)Zf$@@m2)B2g2$>}vAl12y^%-o#JnA^w z!)UJsHj4hgp71KL@m~p=E8UeG8N`1al3o8&*0L=_4lF_jyBPWF66CUX=50UlL*%h{A&affOMJ5; zFaI5Uz7W^jPCoE51HEu@)0wg zAbmLbY0;hE@-Y*<3w#l2`I1?f9G#0i82?|@;PL25PSM&t+QZxKW$vVpAN<`2ej>h7 zE$5r~&Rcv@TETN47$$6NG<(*I6cw8(JwABgF;3EHF3g&Wy} z(!0@Kkv@KZdmmQuzV_iPGfoUtm~lcN3HU8qRqw9OHT)kEo*+zyPKq9-d%(F@gR*>g zSJ&^luNoVXjd_QET3x@4IPHx`^ByH^yf3?cHG8j~V64opf0g(nLNxmj9NwfUvqjf2 zmX|S>A0Y3afZV@lNUz!_NSBkAjYR=txRYQEPfK3UczNx#kF?Gz=(#C^Lp54Q^ig~K zU+AA;gWy6iPispyBH`dY`)GsSlbvu5eAiLmfbUv`f2X31N%q&DHRy4 zdv|5qGQ$|v2mbh#awyz|)}=f3?Po1d;W z$d6%{O88(dbtFCRQeA5JK;BRTP9(Brk0!NG>9XPQ^dM z6fg0I?6n%=Bk&1@yBvLST@rWuPB>y1SEVf!{bSKR;tO838XSuKm<8^K&cKdd%&p`y z*Y^=TN(f9ed+bC{8ge0)kKZPTv6xZOP8P$fUv+ zB4@nt@jU5Vs!xN_ZypCOBm33h8V<_Ur#oOyFmD`r1Ca9sb-o01#FLY}eHwVh#mt}d znyw?3UQ<^c!UtHxYrX*ulxF*q%kAPzuB#5AWJg!BMuO+P&hzi``|ETFEm$O2BUmID zq%-kc=e=N&V3p2Io%g~IESa)sAnA5XhcFv{c>ypu@K>l2G)KEq^S~L$ROWOY8)?#hZvNosbaIj-&cFwhqX$ z@cM#fVFVAM2cbKm8v$R#_~$RcKYs!K`NdlhUje#dTbr$)T+LpR%+r8Rx3#y0JFJIp z$VCS!C>vG&Lg=)cp&hgz=kSf>q59@g$2aL`zDWoue<8Yb+y%ln@qrS)G4)~i=0Tnb zFHt>i^Bc)p;{(cH5N@>n8M;Dv$Sr(h^5XgCUY?me7oHu2Z>ch6Bd>hf5r_|>HYR-D z0b7SOb>D=49NA8)%%8S*Y!?rDeiXK1@IUTN_wESC$6EGMY-pccl~npzXjYnRd%P}x z!7lt-r26ugP&VT){|3j5u!fPM%?k2;BdgQn>O804-(UKabc4>;O+PjL1=Dw*k9InB zje=#Hx@`?s`Nfp4GE096Pu#9UwVPjr{YM{z2A^m*7K zZljIy_>XuO-NuRFatZL;1l#o<_Vyn)vJXF9>23Wf?`w_)pZ`dk4eoy`gpY*YqM84) z`T<|~pvAY$Zz2xr&+i?;omYhAgs-)M0g4UpX&&8WycE3tFLxb3*zC(ruB>f%IFX+mhDBua9Uwof}`}Th!D?FwYO_ zXHDnnY_fd_l|$#vz;+_2o3PPwhRAQPXgcXD2-j_brdtKv5$+nalakKJ#@ek}3!`LEk-}Fplptj_906p>v*x&Uq9%=XvwLUtPa&+O92c@%sS3KPNs(jLvx! zI_G)loJXN^j{Sl~_vF8`xbilW*RY`SBxm;Aca~HxF?kS{Z=W^q+*$c^eh+zPk*UYF z{hc3H{+8dHz&AGGqh}Mi$0l%#P2kjN?{0iC^e_T}rWSGu55B ze(6}pw)8CD4(?lTnSt+##}<{J-V2Oc`S$I})q;utNt-Hknawk;>$w%QsVV@@InOPp zo;>n)Q$OB$c8FicIBt8C@J;lx`@jc$p0go>edGam-b;PvnFJ3M+`L|J_YUx)9PG!D zakX&|gkQLZ?5V_?8m9tN(js#E!;!!-aw{5ls3l^KBL@Bcq-3}?`fY4@)}~t;t?YY~ z%s4)fNW2c*MD2f#d6bMq-xS$r1ioo{2iX4uIUgbk6`T?O1kMF*LRN5h>PqwO)L#M1 zHi7>>hAqvn^VWCEuHV>m*%s;kZ2-IsiP8ZN-m(Uo+uT^#pcF z|E~cUDID8)V?&+~cqn|i5I%~^(Au5E`{lN+nC!*^z`Io7oQohnOaU-X@J-(Y$MYV> zGZmRvW`?bsoM22j0Hs6c!&@M97}hH)(X~S0B5F=US`>0MNK3AkMIa`Z8&zw^vhzcg^liz zebby}1HZ&4C?=M!r}zZO{7s!B$vUC;O*l3cIJSy4zHHHq)8l|+?zfAQi?ID2#aWi? zDMmI@n(V&5C^-W@SFVR=iABkpYwZio>jliS?wC8ozBK6Tdfs)9fLPeWf^W%q!FK9=*R|^6v@3F(}5L zjmDsu{SJO(jzNlG2Czc+65I<9C>(!9x>H&A61bvgBfBn0E@sa=b$VC8yDpB-#jU9| z2L17YqcO+;CP>$JDP!=rXnadMc(TpFfs5>YtF-1=yuUc|>VOHWfCb|5iNEK?7A_ZC zIHPraWf~!uP)sNQ-W37wJywZzh8Q-cwkF` zS^Cz?H{w_79_d;_o!jCy8{V{JugzQ5yZDOV7WNSLxe*6pQ4qJ6?tc@okPDtIoQ zkIuROnf4W(XNj-NS+Y9(KWksn$JFh8oU>$Acqb3WX<`aH*h@{+kVNqih&bFnb-u_xP$g^aJ~f# zv{#(-9n8~w3r4(b?mHdP?Wy_Je4fvz>>rp@+4pM>;E$N_7@id8llW{2f#_cH z36>NXV8ghsFk3#-G$-ndC6oEG&$V29u8qd$n#Lgrvm5BYVD@?k%vM=~+Zu}^+wWQt z=ads(tFJH9Pr>ON+wWSA15P(08<1~>Qt%JsN!!Oavec$tF9byJrM@q>m|nL@~BRC6+DG zIsE`YN9RFHMip}wzpwL{5dA>IU#fpZ~dV+GO*e1kG=LqdCOz6>qi~9IPY%G z&3Xsy@nWm4J9WGVEgS3rHrVQyXa(`%Ux5cd7+(CN*jvLxG25=TsSPX8ja~jmM$~fK z?ppIYRqMN{W6BrcEd_4nlL+Oi?qH+dJ~ z5Fs?yH+e%?cKxF90xfk4*b3;+^dGjf5P^TI!&` zRK^D6B!2{l)ZJpIriUOW2t`iN4LJcm+n3tOB27=xDRHU(5Y|A9(BXM~^-ZYd`)@ z?@u`JXQ-y&=x`;G3PP?-lELmh<^zqqB53sM&|Z*7G#y^Mj$>LE12~@G)*As8H9sBSzZBNI?T5dzOnJ>8aCVeUm-s!+vm3(2*F2g@x_ZYqx<=@~=*q6G* z^7-%MER;V)H{YG)JLyc84)E=e-+%e+)Vq}bTJAU($C0mdV8hbN#Ubtmnfxh&% z>QzB`*4N9heu}I?_xEW%zp6H?Jmf?jJ#Aez;JH&yq*9>Cq^^m#9Jl(M&Kh*QuJY>ZoX zoBE}(JePdt>wI#D#onKfj{Vl?Jl2Cd`#?vA_jU2{q~k{&ThH>Zogn09CER(lD$bT7L>U?!#F%+ z&V77fGUFPQEBg3O>p*krlq)Jtklkt=|B4Jp z`NJJ^Rz?|;acNw%t|YIVK^|>?EsedbIlhkf8;2X)mH=x`v-WF{;mSVcD&9FT!R61S zpGMDyk&PGlMjGfVHpclznt3tgC7|!kdnZrD`{lp3V>$PNa!+FOA?wah;b1sITGPB7 zKLJZPH<4S0BfkvFE@}6EwdrEo&@hy<6}t-Vm>CNHc0>yAvNoq=|H4&8AE#vB>#ADH zp7!+f4%f2=&dKbDTvZ=}^Jl-{s_MzzJlQX~stoY?Z0;=e_9OngtEvfoH}rVhG~VK^ z{v%R2l6*B&$9C>_r)<@?H_aG>i9d%1NZf!=(+jTv>i*69dX$#Cm_7^G)}JMn+H% zZEM7)P`{6Z@kTnnN~Cg|zbs zK1EZw!zDG6J9d_gIGxG)JHX`~G1UcK6LZ@s`7jp#cN=91jt2XG#d-Rl8DR{)%F+Mn z=jp%l7ja%B)5pz+I)#v2oJ6(|D#*Zg347ocqo-+zfm>^Sxu8jElq{-TSVm#$EZ7 zxi_N&qhbZz_1qXg>^YuQ?L_KJe|1Dd~%T_$O=aqfg3MylvwCeFG_a zj&G+j@D0)*XM)3vM{q6WSF>LB^IkRM_L^c~!K=h6&?dR|dl|eJgaJ(#po3v7{AFpt zXe;dHs^87KM_s-Lj&}U(@o-o8D$!vdU?V6xY^m$6`sLv4cgJ|^@9CRUp9Zbsf?g^h z_7ZO-UPcTJ6}6kV5Z_cLKhfp(i#BqxMpEEuc>hcsR()J!sd9t$O&DSLRp&%kPkfA^ zr_`%w?RxPRDbMynW%5{5M(UsN9S;u%TZ?_GdWF||<;Mz|Ce@}>M4R7FU!3sc39U05 zmid6oPWZ9;c*mJ}JPU4o++nT*!7`Qg3(9CV;hCq!IhVR$BQ>%hS!J$fy=r_lwkAyC zxAR@C1--Y-eoyb{_b>S!gmufQ#}zXDmj_3A+tXGbtW1M;Jk+CMWKq9I^W4C^QT>`K zkMq9H$XnRwoK>cO-g~ik?CPHv{KGGQJzwXacV9Sr9sjqwZ=|c z|Gm&DPMNZ3)f}Fuy?v?wHNkz^XzF)Cf;nzDhF!ycv+`D0d3(r%M`Y#w%*xwIUJYvr zJh;kmtxFQjO69lYhhAdA-vZ*U@@n6=xAr4uh`7&TqM! z`_SBh^bz2<$8G%99fkf}PeLRif&jkjM(@sz-klqo#f{#b8@)R>dUtO0?%e3zxshw5 zZ)GHc$443Mo?GxK+8bVnw=h|7UcS)q7uF7bzau`=+x9L#>L-EY#P|2M%?JPQ6Ahg+ z*wWWC$LKHWd!N8E`t_i5?CktsXzZ|2pT~Hvc`L!Z@5R6tS9(@@KXst!hCVIehEqJ) z#HM87lZ~|S+DytUbsIZWKK{xqeLH9>gtlu^uaFL+5!hwozI_6Zlb5DBGjZSEfg0X# zyabyd^0tHP-b8%holAB1<<^r$3A+1oYvMf#eh+Juvv=!l_l)p|Ge3>+9SRPH_+5#X z9rRGO-^6A61m=?VUgW@K9e7{%Z(UXQ3CH-et7;3jSlK&WRqMsedEHed*sZ-_;*H>< zXU;sw_od*IO@|EdbR%#h^?c5`p>NiO;3EcKufqFE!9`RCJi#+%lseB%@JbVAQ;vL} z=TOdR%Bj{}Cg7hzm|bI+v)6$;);P)$PN}xYW?bc6MmhSnnX=YFe;YjulHX*kgcEzE zFAE;Go;wnSUv0q8y6%Y(?%&Rw_<9*b)fSUp;CDkp@ONV1Q+}_vf17KGeRPaG?H}zU z4|}MTb+{f_o&8tve{9Nx_bbV=eRlX zAP@P$u|Glm8hed`$jFrmr#C3jq)|i8jT4QxVAPn67FyFg~<(op|Rn2(0dKMQR+;1e*;$UW zJvARvjy;Z|ampx1ctxRb4RrT|xP}wYPaM|i>3o4Cv?%lNTBem0B*Q!JJ@2V`Nb#JzK7inSeZ{RJ+ zZ&X30w_Rs)^Ns6n^Zc28bD)^&;`iOmJukf& z7x6Nyh{Y$8PPyuNmT$#VItlM$FFr`Z$`%aI=FFsRQ@E?##PL6M>yF$$fkwvK`Vyq`?uzfOEk;4 z$yvt5qw2IK8{w1NJoT-)1=f3$9Pbq@d*#|f*13b9zBPBV^Y?RO`f@DAGoA7 zX4mQ+Pi=qRvG~zv`>tipnYd^Zch>p{9>cq1Tn}TYJKEcxK^UjKdYxsfB%7t9taIqK z3C+7}lJqQ-JBdWgrg0{EGVv2nKt5C61Uz#e##U9|Kf5j|-A*5oZ*rce^4w@O zd8(ZbJ}&^r_cT%-LGP#W+n8qUIkh9zPRo9(nf->Gz1$1^V3a!EvC}~tD~)e+TuoAN z-=*@MQ&-<>|1Pj&pB=Ba;|4qS*!X?pCF_#T;QM_Y_QxCTD&IAYOZ!cV0edJ;Qzt(#nE z$J`Yo{B6ZO{fz|SkDJ(AN*BTxeU`M>;*pQodyRKT9KLbdCL49;clYz%p)h|V!PU=~ zzm|7TjRH;)v`^h5@j=pqwT6%W=IMs)MRZU0nL53PEPVA|zVqQTwu$eM?W}D8X8G8s zjUmgfZCXB|Lh#=Wp6`W*>gecE*Kr;9BVl7-0}r)1B&4n;9ow;D(!cIjcZB-~n^|*> zJwhvd_+@S!Xtdw^17PqaQCUsJhF@?+FlPP2jYny0K)AHTd9$NnUYj>^WZmR2;TiU&w_NIjNF84AY__2yqK2%3I&qojR9O z=QT##!6;X~cn@9IL>jO|Ylrzdi~rC%HHSU>g1H{%G0z`f`5g4V3*Lhpf9L0xJ8Lg% zEuOuf6HPwL9r)JBA$-DohY-szj_{?R?5D}GpFVT!;cbjXa1ZYx9h`q~f;0OsxNqw; zZmd;n?)n5W88^|Fn*W{ZCv&QGA==lCZ*0*yCll5sH7y@sA^VE~kwwX21ik0K-MT}H zvp+waXR_@ZuKA~Jk)#JgUtE7-AP>6s{sXK9*^j#3IC|IWtit4`8@=u6ZydSHlU0K zteqVEbnG?xMUCBzH7x_5Gx=DjXSsRjJnLz9s7*$XHG-@`$fmqP1qM;ySl9(IHK+j6pu@Jx)<>0$UdfqxLOVZ zCz`3paP_P8%*I|1KW+zUm)8AgtsCs)?~c9TaL8YF)DYu$-K3R7V-$o7S1L`O zL0V%b*oPe>d6rKgb4{|=H;0^OP412au6=n;o}LxtVOneQTdYa(06)Akl(pK8wb`A! z)V|CE6nvx3*gLpyP3tY4SpK{Y!|Regp?Ju;(_s+%z8e2r)*3YG4~1xMt$P}-{)D-N zmQp!GkS*gwxIO60-NpJ7Pgd|K2VJKDBMOr<|J-z!fv-&H(Ta&-Gm^{0jrIi2`Dfj} z9l)RM&mgyI#7^b+^Z{PgHtu5^(81pKUAQH$96G&@=Rv-#WGw?3LmzqsQPhoW#nh=+ zemwc|{k{*~wL!>EdYZaUo&Mj0x=v0zlNE1l&FiY`Bs-1u(6K4#IvKz?>EH(auglg% zwsP`)`YJXjL0zXbe1kZ3om7U8{U+Vf2z0unJNgPbq{vuI-L7=$GY(HrmTnieA*QW~ z_Wlv%R^yRdWqtbo@ig(cUnxwkLsv+0sd8*b)X&w>M78Maq-B+vJnq#$+!EfCe&=S* zNDcu%i|WRmWawr^(|_5ZY}o(s{+*$}Jzlu;h2v?v-ao$a$zSZ>7{BfK!FT?0+|i4qp7<;KAt3}lHJ^<=y2@DyzQ6ZYq249dh&adZcm<$&BJ&2-IzK% zxkny$YMzqhiwJu>w-b1WSYZ=(d}GMpN^fuNj_!i!mlkx0ea72DEz9y)$+JL{CZOwXtkm#gTPhVEHwD70)- z@O2>?wX5!>FFn43wbb4y|8%rL@V6_!=Sap_VCWdmdyC&ATCrnyH||=C;jE7ZFNgy_ z;I7iiec<)PBU|a_KkJN#25f{@6MWVAZ=ky(Ty0!p&f)>U6Zx4u7kyI*4_r8V`;wa| z`@7UJg}QE}&U|Q_8@OM_^7|`!p2~nHb1ZQp_xENPex0K(qb7fA2z}xVYDo4DZ#>;G zw4fvVYR|;fTF*%2G_KfKFK6kSZtsW$p6UD*e)J~qJ_|g4(-_XXSD$&e0T>_7bNNV6 z*$+`RdBdiD9`bQ1GKs6puNkg$`xtYYP5LePRmi}r=xbNLq|Q^quo_oVOS zB~R-?woNmbL$yo34YekPdkMd9qO9r}R}D|)nN!~Dq_@sDFXDw-biXU`Q|7jYc^!ui zNs#_;q8`zYex5bpv$lqHIgXfh{+iag=1t=%yjJt`soPld?p>}bFKzWvj^5vkPKoHj zU|Dxjme%~*<5Pz}IOC4tZ)(kHokt{`nfDILXrc_QV{@%j_B)iV`~t>=aT)d?<=%9f zy%Z6D<~!A$1Fm|I?=)6g7pmhb_R>wR;a39_Uh|9x#|*Q+38P%Y6&9}VRNr2+KC3Ug z?7kGBAMI`J81_};Ye?1)OlhW`bLpbaquw>F_mp;{s)=<{^O<)<9qof3Hv`(h)M*<> z`)cg9uXf>|I=rTbF-&}7;i*Ahn|K^bYrG$#jo`-ojtgXVH-`0zH2m@8Yt8Iso>-gy z%?FXeQm=GCHt%0I{AtGB<7$2OUh2vM2Bo^rZtI&7`ibI;O#Xw=a1fpEcaKYEVz87r!VwHycLE0oK>nu%>AvgpV!N z9P-=PFuF}=gi|LVi?YL-`j42#_Zmai=rQB>7x)iTxAuVfJF}mkeY^%d(VS1uPWaqy z_;2Cc%(T4^6Ymf6Y(5_5X+F;UtO|X|d& zR^DnWuZ}#mS7R8rA(TFK-a!`ZFKcqGfsYgQSA9Cy`uYUlJtv?U1ZTy|JjuR>J__vM z+wLB4d0?9OZh{ww*w2S)<3Fgg>sU81p67=Z-KnD+b?DA0i^tYVJ<*~}+3BsmE>MLMx7)G+m*VUd?AG^lEvG9a?>)d94SpUr9XE*E-{G_lvcZbu4XfFaO4z zFKpf?dczqVYk{rotv-RDlW)Eg8SQ_Fw0O8{gL(79{cA|SM>%GhgQ88k_{YKLuSNS; zlYWQiKEnChyo6_cXvg+zT>fg(g70_n-JNDSF0h33s2jdmJB#1J@t8xpoZwvNg6XB? zne83!@>lSkU~f6`m3%+d@jdN*%~&(i|15d8cFq6UxBO3%cOyai+Fy0AZJgoVamr<^ zc?jE(DK22$##sMt#NQ=sKN#cx7W4Yx>5gLu9>CW^oUxUM z+;J#F-z5Zkk)IF(UxnW;_OG=E5(6mjnD?veoyD|4d*mgxh5Bx`>!OYutUCGxMv|vz zHxkQU1|JP;B;ygSQvePmd{1RfC;vsBCsOYV#HkwN(n0=2zB@Kvd)c@De10XQm!|a} zoZmNi|C4OSKg9L=XXt^Qn9Mp~g8#1F_}=E3#&`2$onvK=J>z|XXJ$TQwS}?zE5DBu zeBgsx`+~F0Js6`nYYz7C>?iO%mN7@U_mjtO!TjG7YkZf}r#DIOQa)o4OJ9Wh{5!wJ zr}{gwV9CqlWk>Yow*HRi=WFXrJae}734XswIA2>I;n|tC9?SG^=eOGW5V6{N3vJy( zdad$l>-+pxTmAf2Tc09UTi4On;5hp|?LYFke7D>0CC2!_0G^Jc{Wsg|&AHZeUIxdZH{)=J z&S2KQn|7U5W{9iq6J#J}yT(Pb|9S_Sc{f*OF4w)Cz-sn=uq+Q{H3r+TrMrJP^1j&bgae*J4>R9;=hCdrV z{tVZuhnpCSBf)k|N%F_jjy~sU$JuSBEZz^FF~6;ws+Z^d1IMPLq z^zDxHVn_NeM|znfz0#3h4zQZUpmqo9qGp$>3}2sgd_cwBmImc{ToO6cUIcq?_r2D{e`>VBQ?Q& zi~FChMEAw+CGOinQP1_a*LB+Un(KG2q3&zl{`0(ZuJ1bYmh;s{yWY;+Z=U*#Yn^+m z{r!gMo12uJIQwBU{(JJvXJR!@zu`fdF}SxG!|y?8+hP92EY39FSFHCH>wU#~U$Nd- z3|(c$@IB4gW5?ijhU-TKW;t#<4p$xlzLXg!+p+RgZl?YFU+;RdDV4NhqBDQqGpWh` zHF;-#7{9KX$EW44uZEZf`V(Us=k?(D&%`n4RqDk*#Vdto!~eq#E+&H1GA z+G{?Yys0`r>W0;&-5z=Tugg>V{-Kd8E$u%w(*9GMH8vU-#b5qA_Pmux+`oUH{``6L zUzfit`u873RUsKb#aa2oTxAu7(@QR!T{->BgZqtga&kwF9y9j3apNaUoOFHO&f8&(z-gNUV zx87D*R6MQZ_UWZ%Gs6!g+VhojNsL4TjD!`q{D8zJ3Q|XF8bov&&ZH`bS?~^~cW}wr~2|_9Nfhb<>EC zV?Mt1SIe>=`123?J^r&mkH5ISw>PYwpMS%*e^#+)$mYG5glv7W z`qt+^iD=w&o&VQ=zM=T#?$fifdfy%X>?Om~F1Yk`#h~lsdJeyF%G~ghe+!>6|I(Ls zExmitoCh{EKfiI}?Ma(w*G}B^=nXSp?A!dn>;1bwbl~n`Q72}vpAj9u^H+U6Gp|mb zv|!vN+y8y*(5EB&jhGPlOWx#{fBwBsW?fqP&t*TJH>-Hl!rlw_uJE{DTz#tJclWo< z{LZgVKHB!X;|r^}Udb>7SD**E($Fws3EFRhJ<$Zg8hCO>B0*ad9c}}`f`K1719_T( zzMQ!?1#i&TGU5q>OM+S2zX~c(zg3sMS9zMF{)EAVs|niQ`W_#IMiyZ>L3Q^fpj%;l zo1nH`LKsO3Q?6zYoGJN57!v5YDtj}k^7i@>eD%W>MWqIYS1(nAC>wlU@t$|R2 z=6y+e$(%W}=A?(Rdfd$3xG7VtfhooL{`Q@pTC-w{gYX8hZ zmk%9&?fR9$ofv$pi8!J3no1Omb1w6%l!}@4R8^qD}qdCtfi!?WXzT z?!0V~Hnc~R&tI4whud+49Y@-6PdkpX<6d?gZO1Wo9IFMzUz{EHwsDv~_V0K*PO#ta zYyTc|^Q0mAuDhMz!;T~E=RNJ%Wyc|Q9BRki?6|uf_cmPS011u;N6IeJgtMy4r~mk~ zKQYt6cLk4~8QLqsXZ91KW7SqV7&m4={E+@$%I>5zbLJM$np1M-*@C%Na%RcGslj3l`-fSIRos^f z2)?tRv}|6<+}VZ2CC0p2l1&n~H)W|WsKS}<$Qw5jD~{Fqx@SZTFyu9YsE#@09H z-ciKvpIS(YsI+jdF>}_e^0`xImX+JhBfo66**yNMsNf^J06hQ+G7ByPvdo!1wP=o- zVE>>cC6$bV*%$_6=2@@WU(-pe$@9#}Y^u62v#iqU%lyKbca#{j3+K!&nL2yUtm$(A zI8$#goL4y0C|Nigpk!1O(p0kVm`NwfY3n@TTkwm*IfWH-HF~AOOqvZnUcs^0iPSo7`bxH-+Zz-Q08_Q)l z`APJvvH6PsyjHpZMwc3){DxAA46;R6Nue+$^f+{%Bmm0Zk64*ndJUHgX{IPM zjo~d_Q=Z0h$@~-vVCsDX(1@Qelqt_0N18XArqqObMDa0jadQlJn zy}^%N$>?4K4{0RHQF=*2WvO}$UMo*&J_(c^=MZRg84P39Y_5{cbHdU}+MnGBC|=3Z zbe)rOS-`}DC7I1jbtGvX+Qmenik_K3ML`5~9C?e>xSz^!(9ga<+cKDv(}{E@mE+#U zoj|a!l<+x8#GFoKQQvF|Em6u;s_6VECrC~(u*Y+SWX*+wRg!gYgC_Fn07p$RbwV;K zs<@Cyn!8*cDO0Iup1{lk=6y>A;D>n#`p! z`Wt;3qNp&n%H5BF7X%M7#Dmnv&(L@441H%U!v-J8u)!x?14uITU&2;3lwJq;;32Vn zx6aUa)-r7HX^7(2&<`OQ`VJp+-yLA?dvII&&#EoOr5+2#47yMn!#J5v*Ln;)>bi`2 zSJ!9QBgjZP4f_OjulK376$hzrUv}53AH)%_##lZ8L6}+_^Z2Y49K998NR1Ez0mR(R zgQfsdUl2lqd95^`D1)=F8%LS^OkzBn$))u;lflKFSv@uA@y1@s(u9oMaT#LcU|Ys{ zkW?^bGFxLLOUjsHm=%$(Gc$&Xm!|5DRP zsB)&WVA*&s7r&rFJRc{gF^`e1b6s8U#SEw>Ej%HH%v$UjOiaE*%}sEr`5X^uI<(QW zl#Y};S)R|Q5l6o>&jHA z=EpjZ+7wymSwBnGd-FtD=ME-FpbJeL@-Y9uA@#o!Je z(FyYDx-Q2t^ZATqsw$L0_n9kV+;Ft%Vpal+E!>jtsghOxNMtr!0qg6ht-OPNuhRij zrUrr^FrBG@u?M$an#jn)1bB|;lAuQVjdb_POcDzz-%IDA1As7O$LIZbg|YD}Mh$pA zKV=XdwQk_P0gNlsVL*#Ar5R8nCcb4F$GRzz2Sgxwg&bialbcWIl$E2FFrpT6GgyaI z^Fq%hNnspy0?f(Q7rX8`FD$u6nthMybhBp;W_<0lpn}VHLvhxULFLB zWicSbaSdy!)2o&ts_yhMxs80QknKlZmYL%Gbm-TTG@I49kelfkwy-LBGEn%JOsr;ye*3eqI6$jYX(*{UHH`48tq%lfSnlgk_Ni<1Wx|gOX zN7IzY#Y;t8Y*nH%Rj5icG)r?dPxn(7ZKrPPpZjc_K!Y?yZ>C`y zfg1fDx{L0ny>t(~g%adJX4?dLZUS@RoNAvOI%_`+$mEVZ$trY|m!cW0+o_j-6nWV# zL|-$n!SbU)f_~mX}rcwDF2M0Np#Nu&>|9~l}jHz!} zSxl62IrQiu{{e&v%g0gq)y-N)XlY*_w#8gwo_ds3DbQ$vX0l1T3r3IfQ8m~rC9L+h z^Ke5MfCIP->W1NgnMDpG+SXGw4XG&`$mY@2OSD_tnLK2Wz*1RBky8RrC9uT948{t| zf0webMB`O-ud>Ea*(usCzr47~=20e=ipm2E2nZvNHkVT%^cC2Zd9==WH7^oU+C=*y zb8n`Dw3<5UW_o}QQ!fVeN*c;l%Mi_vfR^_IIdC(rG^`$0vG{{mN+Y>sd6IVU8iv}@ z_7&;`l} z3iQS|(qM@W9ikzyOM^u^v{jzy5UE7tTWL3HS;i(qcOh5E%MW#SDi=zgEYVN~Lm%a8 zq5kdC-owfg*A)8yJ`x{(Jb;MP(@BUadkPi&M{(NQw`d0*`3Y@0olS9W)K#Hv^yVr$ zD)_A3$m==?5%1io*qb;ebk6$Rmrij60cA|?cqQt#7`xgLJv!FVw9|=vjrMUVsMCnM{*)r zP9x%2wNe3)5cbW0AV9n!94i*fikrkNontcr4zx&EZ6@W1*%?ZwF-~(lMS|X9%z})i zv&mdx0@e(r@uq?q4FAV6Y0QnhhG1fso$zzPBbLe_U8s7ADcCekuA#}bGWl~G;q@FMm{Sq!4=yLAHmdvHFLkk9&Rbi*DCQAy?A;FCdC-V~!^rELS8W0@jQ<%}P6G-6n&;xiai#*f= zcnU4#V}Au4cyM15Ubk!x9toepD^1ISs|ezn$`&Ez&u1#w#h5~dyf$ZMU^`?aQ__01 z@Z6TQIPCJ{Nh_G=X0_;HVgh4F$OnE(yO znjN!WqT&$?Y5kBXmc&RcAdXSe7-m0nQg9Z@$SC*OChgKplXlf~N|fFSH8<0K{NGRe z^R&N2`zy46j+qti;xaRO__R*xW;A@tY*N+8h!9uVnfg>FEOcltqpNHP;qawN3d?WWtF!mML#~)(XDjY zJM3Yu6HCwDb}|PE z`mWw#1qb#aaHe^)j%P8DQ6#L%J_s==>qG(4EhevuK>I{*)heOXoglp)!g&xSAS!6K zP;sAr<6SL1#l7?HieEHliz+$j2(Yc$D5kYws1!>t%n|PP1m*zL`a&MtL^+?aaSo~0}3Kl{}DUk5CZ0S?H9aLdku^=^DVMlglF(UNv!ka zDF>-jhFY1wz~sVf79U!mi3zX)4G$QJ@NGJa#Tod`P7M6c5n*FG8((Noe!t`kk-{u` zrTqNl`V?Uf7;#<($%GI*@XSENveirdyv5tYa%g#ySAn0n-oly`s5-W_Q8E9CL?X3` znJ|$-ZBhb3OyrCB0pS1$6BU?mueI9)r;av-0C+Byk#(;p@Pna)%%tLBMat6UOnMbh z2WqBI3^6~&h~CI-6}p_~Vc`Y_6jB)|-ehyki1_{R0rd{EC|VIMT`Avk3wkkegslAL zAX#7+U_nZY%Io0|?|cpjE`&jB^a8cXUB6K z6Xm!U@=HYpM7D-S2efO@&sYToq6BPH6tl_(2d^Gdkn+i!@_ktG$P#eQflose6{dz>uzd{KJl1WKL8gnG!3qbm3gLQGH%`q%@>Gih@xdY=R0+}t z?0oo@f%Ih-t%TJ<%?t0?i_3y7S*7=&(ou`a1}`YhVYF*6zj=Lk8KN21WNL^fTC9Eu z&=>y^OFf;;Y$h|stL8c<_HrO%6}W__WKvUe$+jjk*8v#fS^xoDGjw$+NFc7GR5Veo zq|}3?svZmD<192oR(>aKrB=0u0%h~+*?06Vz2d=cFz+k1YF3<9wRs)*k7vbb6mOvw zKx)CjzKbJQCZU_1P=xws1fNmlqcJ+a$naukk@qTu-{dJGj}R!iUxNBlNf{8E*Dv+u zF4bW*TS^w|!Ad~HB?W8q-YD@wznG}i$618$nl^qf;R0w&n|P4-4UD#~S>->0E6_0T z=hc2Eq0YDrrLJL6J&B zs_aW4yyYqW20U?efPXB0gY z;=;0r%?peczv8{nIiCi{l!ZXU125o-3`0cun)mZs3wem_5y?aR!YpR4=B1-E*Ma?_ ze?by{Rsry1h03H9hqo^mrQ14PtyEEzd7fgGEDW43zYR(i=ophP?pn z7C~lMX`kHM=$FfmHTX57zv#{6_Q_`67OjOBCp?jk$1HYBZxiWBG!ZwQ5jp)b(q9-MD-Pt<|xmA)?a+Q)vxjN1& zro105v#hASu!LPyY08~GN6Fk}o0jE?46+u6)d*$Vqif(Erb8?gP^s61Ki;83%pAY* zjVy8y3xa&kn8RZ%fGd%G@>Wb`$$TxIB$rPw{Zgg$l0kHF7Nxp+wfBwV3;6G0*8;me zyjQeMYVP@Z4%oMnVU`_dHOBckWRk*!sdzj)D2|9*4)xCj3KD^g#q%);!s=24ZkE|% z*!xK_QCHMhm}NZr)Rh7}RTK#+vxpx;4|ALw!_&ZEVi+U17l+5tL4x%0@NZhwP3UaG zabk4{3ehlna7L?f@UVok(T}HM_R+*y#s|}8W>lGn<*8LBHkra2UTZ$KAppxg6>;YT zAjI9be$Cng2-4gf%!8nRpurOIW|;>#C|7}lwdRE!1c7U_MUAblPXJleS}RCRmmEds zULJ(;ymDR^cjI6NbS3e!4fDhOnZkHO!P~s%mU45OL=J|1fC@A3K@v5FzShk05=vrf zaj9mvx?T{x=BcRGS+n&$B?yzv&tPx%cII4NT|=EPDrcaiT)_9`%akZA7xr9 zOktveK9i`d;dj`vO-=D~n%}l|_YZd8nb{3-v3Hn zGH8gUNMHludin0HgD>5;0~%LLr@jMnIS>R3!ledA0}ZSt@KTl1QC^&$Kc*Eqd-=rt z@VvA;d_{iMyZPoiepO^dLWZ*Foohf4vlyqsu=2B#adDIK5Jn$`#9Y|fnSF`u0nBgl zI1}~eRV+mASf#pmtsIgh1>=~BLXFV)bYGZi^nfi;xVjNWAE;v)7RyLk3hdjwoEKRp zd&mQ8W7eKzh6zF_eNClLi7kDWfpYLh?*!rm3fL^=5oKIoq{Cb%7lduu)@Nl=c0i(l z%E%*gA()~?vq*$9{w5;R&EPqZh;cL?$IuR$4IV^(f#At8*6M^vdrmBfail=9dFqRp zy<0Fv@Xw2OURiPt|Aw8{z(e+4B^q{BRs5~Zh=C1Me`178TupK;C6}IoZEk<7Q@?3# zMO$x0XOvfHU~pw>uM+ZnO$mG(6rp|_x^WYF(H1o2tI%mdH{!~n8+eqQO=49|NOsj7 z?fd9}cgG!`1lo6i9)R5C4sVUuiB6{=f}9ZA4n9V$yzMH*B%iFHa={}HUS7r2JnEjc zCufCVkQ7N1X!UeI1IP!JzIvdF=s_1-#g^hJlP_&UR<897DZWCAwbi81J`> zmb%9aj!sW6y-_39kV&_(_(f^nVp_zSj*)J8f$93xl5c05!9AA4Vj!%9=NE z&cjM6yb~Q5d0@#=$gj@iR_i?Q7_9W60IhRrZg2EQN(zYwK)m#pPMdm=Wgb%i202*) z-@oWNbD#37TMH`>$avN2msvuN1;WyXI*SY)ZWT%q7M%o6-euGya+7m^%2k4HFI0g2 zgb)Xt3z=F9EUocfIM=Eo`SeSt%?EjO+DyPu6+k!PGxR$)sQIaWE%UEN}sNdWn% z9Y}HMIV5<-Ji^8GrxMmq(UU{nqf90oY@CnkB+)JLAWHG_#3kXkLfAz?woN^wDX~Px zi3shMDhK3Wy{*0CX@ryUr-ZiPiRT0~0dKm3;b`;Zz!#cYx=Q`lA4lhIEt_~!N9+^u zE*`(|F_z9IMG3&*2aN=@Y-9ul?Q!%wr`PqiH~toKwc=zFQEC%Av1Iyzik z|L4*|T*loFgIikgH&+_GnpIn3I=NYB@Is8G--;Ca+X zf(yvXvg##QwC2*qt9fu>W@T!D#idKmkumBpGwAYY0$E>U4kO!wJg0EcI7#0F>9CW> z9mIarsNEcQ}$;@Z!G`eLh& zWAKdB=6jSf*b0yit3zPBjW;j^f=k8512n4m=v>`7 zEj+WRfL2$gi(pDpap>e$!439c^o|xLpa|Pm^B7_3R&x&HNL{6kTdFV5$CBzEdx29< z+W8ksydA_)KzGPghS21Ep-CH4P)S%tsTO&|srD8GWJEG-E9=KS z#Wp4;x-gl_2n6nJphY{dmyw&_%|{wa$b*SdgIB6hoZnF>4PlELYmezR4DDTL4B@!D zp-O>yexP^H@ZdnAd&f>%El2&pKUQ;@^6GXRyk#Xl$XMch^aK*yOlq>=&0{Zb?bg-l z%*<+8I>6299AL)t#kqzz?2gAdJd)wlE{zSZPuHne(ouxHY-e`UyD49sR^1xiKn1x8 zZf_o1GaNsl+dWAfKkl{qfqCVSLbbY?Bl^F<+?oHz4ik!6wP6}cl zzoE~XY?B3y^^W%2*5fTYD%5=nGtiQps{FDghjSFn$NCF6^k!a&PJ>jG=9_3}aAZ_Y2BO9EwQ68HutZX8Jf41D;`Lm7 zc6K(-ge6`rfum)CO`5u@xIUniyP zWyK*GDCyG@+2}N79sc8_j5gxgE1_7k`W$A~UMYER23u>Y4lh}1+;^7)H-=Rb8ksSW0T&nmYx>2$Z$VG2R3LS$bfV?=jCK=5>s|fSk_xh+-SE|FaGlaa@oKK#a0$iZB_8}B zzD+F?)Y5+QxZaZo3FjkIs#Ac~5x#N~qRP&Vx2;=C`yc^2;3-N4JzP;e+0s(>7c$v2 zJ6K8~XL#75kK^#8TCm`$iCU{@Hb{kf2X+p3?Z#P-!Qo!Qe2mdWcjMF#Iso-C$BS_} z!b`ATzOax+ad7N`W@vAti0Nhlp{+TcLMQIgmn+%c0Y_mi1WA*1Ls@x3X9dxP&JHE=yk9PCAwcZE9d(7iXycFKm+jjEzxJaXTJs*(1o)k{1i ze*!otF<&l8!UM@EqzYy*9C*Y*KqxCDS;q(mDRWtM&zP{v%yM(YaqdWX^!4mn*9c5H z>rT{zE^HT?1M+fzv5S0V(U-=6A;kyEBOhMp^PafCp;lkwb7bgIxC4bdSYkG#4h;HD zh;~(3%wqMJ2d{>6xN>kjfdhr$5lH}+sffD+i^ZU7DEg0}^E$Q3%-EPJ<2bmhH2Q%k zyKskAZQ}R!yD_Rk!u&RSpgD`K>%Z*5A?HL--!SbO+}%t2)QCCYpMBP&#SesY$rwa( zy8;J?Q_p^BmM`P#3nrt`FNZj;jH!ViahN$%oW%N{Pa}g3Z1+Zx!lHEBo2UhRtYYTt z9#^a4$n4leQ~5Y}jj?sf^<(_Jer!X>hFfp%09D1^YEUtp!a}5zRPEZNzsiYB)U^#= zb1ajSr&=?jTk))m?mUfiA=zo^W-aBG_H{UgR>in0W8C2~9~`x9<8i{ht_B>2Nn&uv z4p5V!U0h@y%9*$*h?X&I=hdB-g5THs`s&j1@|g zg@Rg`3BL^r@c<{rG9IQr9c|6%lDq@e*^G5Aga1-Ns(Cq3jhSCU`FY6D9W6}bc1B1X zK{UWpLsgTx&n(pNr0PhTiCg=+@xwg)>&noQ=0f@9u9ZSS&7?WAPQ}{?mEsH!99FRF z5KLpxV!GB+q6Y*#ZlF5sab~cJiE)ma4>$Q8nA@R$aA#t7*WSeTdq$xWy<}swV@Zi2 z#O!nxC%3_9GI{e_i%iKOX~QL%;J3zCEfq$@dmcn##Yz8t0rz0k>aEgM+$*;#NF{eB zhK65dWv)O)pbaZ6*Met^9GTVpfMBsvARjJ4)%Q{G_#iJTu{357xiM&6!4XW@byZX@ zKJ(4_!gQfpj;BjmoND%`#@_xNP@?SHaSvna`znv_JBLQO-beF!7GWHB_2f-$}C=Q0m6=n%`XxToHME8^4*Ks z5(nlv3(1-DC_ycn)fYv)rrxwQL(Edjv7}!^pn|J(fu@unGa4TPq-Nfa11Z(+W`TvZ zfK{GKXroJ0m*Mz0cC06YqHqL1Wj{q3>R1MGl792>wFo(IzPJNwY(BBwFR&k!ryb_L zbOm+hJWJ^&3If*JMq#aSXebs0b6A07g7tMh(CA`=gS)x&)>Wzz#oz^wspy%2``au_ za`54ROg6t(m6WL#4yJ)KP2qwnTv-ZlG?!miKM=BCEf;YFt<9I4_@mCxjcWZISM6ZF z1fRw@gD29)N+OiULMmm{Z@4<$7XvvJku%{*Q-)o=+9m$&-GkY%|Cj1EVqs06N9}8RW%h z9U-Qz;DAb=H`}puEG#vS1Pc4gtXsAW!UmxSNN@$p@8fX!QF&jQ$)1cPv=z7^Y}@PP z)Y{-MSe<`Sh18_w=j7L)Nq+q^)P4(SCIuF+RQ%^k!G98IyihnS(p8HlCvcJT1XweK zL8&o2`%44egy<)HeyxS8kPvSq>G0Nhu}47t-tWteaYsNy43Z*#nG3X+|Y^9+0d_iBwnVEykw*Q zSj~$wc=$Ado_vripU|s$ENXn+85AIdu|AUpKZFKiX>ef5Y_<@S(*(`+!+z^a{!4Wn?Wr(Q(OIgU`{UAw< zJK6Sy2Owa1AxMnc>-9^?fcww5VG$Xk0uMCv9%E2kS)u!h`a=flW4;$EDw&oK%i3h| z*sM#|kNod8Ob@dd2Bft%8#N5L#RR{hSv-a&aFrNn(a%B_}+@+uF) zz?5k*!SW&W-`2W7%_o5+OJh&^7q#>lk_k%TH@S!mm;nMkgC>*m=COed2UT7WXY~LX zGV`7BJQmoccwLzY>w0_&M7M2RFw=f@ag{f(##D01N>PGJ9J2=)Ud8%hXo6={(*S6Q z>e=-qgBjX@?x}SKGZ{GST!yd%m&0XdJ!X|ffiQ`Y4PlX5Dx!e(dv&pfBIWCV$3AeWe16Eh90VbKsu$19Tk@#>DdKB1) zR$mM>+_z&iG15CQGB^wl2@LouCXgf8Ug{F*81`Ch1HYK zRAO7B=vOfCLyuN|ApB}c1-W3Zk_-X@C^;GBdw@U67ANbx5Rq3H>N*A?xo9^XN|rOq z55dsv5ce%wZb3OBSUiEM^Ep5Soh%eJs306lMTc7hi#LeH5F%6L?H63c#=EG#WRoLd zBEz~K3>xS6;)tjPuM3xyQR;U~C9Pl8N`*B1jPMT94$Ly>S+eAv<-Xf~>o{g8zNrGd zlXwTLCR~B6u~@|kN(>zCF&U-A$-E|-8gnFXu5oYiT6gj_9lYv>0&BgnQK{dstWlQa ziqCGoa4kwAsB#*^l4T0pVTJ0140)A3hY5J0Ixh?@zd(`>?(E|Al?ov_ zOM0LfSQhB@w@3%L*I~~|PPrihI((`!2TvJGw_?wO1=NAyM$!`>s7)d`WQjV&G-fgO z2%>;x<&`<7C=uArTHy_`_<}|~I&?6or)YvHv1Z2-{B0Up9|cLlGhLEZHxjEANxTbM z2qoU>Dys)V^5TbM59!pwYXGk{#Qh)@e14;0hXQS;Q(ctfY>jVuJ_-hS8-V+b}#_^q=X`E9<5u`Q5&6`3sC%*R6 z5FGTTmL`YC<)PyoVJ#%X4bv;P0pw6|pP9^HW|ez#vm+uB=i?YRB+vCM`HE}j)duJ%H) z9c7bk49sKTFOZ)sh;;UHC`9sVs1M2g;s6*LJ~)0N_ZKUDAK%3@5l&g^cUlvTr%Ual zgrf}!D6ht3Saq;W`(AY2&;hSJKRs5+i4;UwYgU-xj)f1{F@)e>OO34w8EA4&XW!hp zuH*I%m>`vMEQ1VK`RW!K0)UtAPlsb4w*PQF6iiIB&*|R(g%psOrR{(7L*JlP^6-j`r_5SUtIEisD6P}vmiG`#!ypCA83+B)4fGL zONzw&J`!{z=$62ne^sL%mMecdYyIqsF_pp+B14FlP3mns#eVa4Zjc^G0kZ}?6G7ny zkcrxgf=t}rINx8c^`DfYi@(~E_wqH>_IryHgdg0|syyYf9ct^^%}?#KnX#gF%Oe*q zXr=(&7o!)z!J5mcl2|3Zo^zvCQT>Xr#y6QBmKY*@-Gb%U87kzRBT`uNV_!`?JD|q5TUE=|z z&0E*v>+?(cL$+t9LljJ-U}~G4nxBLaU6^m`JgbAhhn(J_`1tDqeO5sz|;^eLxg&b#|s9 zeEn;+`@U2}(W+YN1$2dRScp~BSiuY(5~t*Oi$u#Vz|3P=&dsH%QQyFhK^h(I>h6V3 z)b>3)>F%!K0r}}0*hz9FBkkbp!MSgPI_}A5=LT^9F2~38!h?ess*sorRC!+oGa9%V z-)}U?333r!m%uU)rKxupYr^Y7U|$6rS>Pd{GoHn5+e{wF|0F4D01=>H0SKR!+(gMb zLH0&5Cisd;k=d+mYtEK;W3vxy!)(gmq2hrx#Da4sI}o~*q5e`U|5CM*5*>h?rKOA+ zMi?lbX<9biy6>&5?RD!KWdniEmNgw~;oWqA5#r0+`vTb%>&Mkx_4VKj_n=w@q*#Gv zbV*=A1ebn+IHHZklM4&**Px(kj@s8!K0y1pO%Djs-p8$}A2Yc?*?~9Ep}vge{7o(8 zn>=i9coP^@c?>*k5QDz*8bdC|X>Z!c@$_F8>%vd*u)+cru|trro&gqSIVqH z4>bms_wp4n<#w+}U91z_?&EFdi#WC(#1%J?B=dH3LplcoKyVKb2nZJ(W#pQv+ivs~ zKEM5Oxx_~+aX^1Ih=*;McE$$FuPebE=urwy=PU$F)DFdIz)GP}Zp2>NMW*8V7U3j1 zJ+!sg+EQNCP^nSmAZ-W;1Fd954xtqcofT#_K^S>4%Ii)jIoA|h8d8!z3WDpWmYl%C z0tsX*K%&0FpbMy1DQGe72hziMyCsJyHjVinS3;os;kyAv>@Y*0a25S8RkWdGbtUGG z3xOl{ZRE=DS{eM(GUB*(zOm&6)pl=mR(}Ykgo5hYp(i0t$U3-}G6_L@@gW=Ounncq z#|5D90~SVFQdg3DqriMuF9bjLaQ8-96Yy<_-&!nt@uFaX24P_pMgca@0h2J}kR-{z zACg9Ne>m`$7?KU?@aC@UdZk2ny}V4(0u7B@OPxDsllrMWlfpzd1VkkIAg zE(w*U7Wsk$E~|oyA*eG3CdAYbk>iY}j)K95*W5EXVgJ5w4|Lqmh^Ii7TFI`4KfdaY zzcQvsR&E9lk{3}1#!_SQe&!xXxXJ>aLkfpIK5$v+7dUW}l4G|ZBDwVL?YImt37st5i#gGRX}Nwe>o2li zay`4$_Hn)bmy$=+R13i~$Vyez5Jkn$_o-?6DZZj!?~<3{GCuV-aGhIivoc#Ro9~$R zTUh9XrG_XXHTo7=DVMhrI0y)(?EUaF_H4#8IMIz)a0LPaJo5%VGbt!GTp~;YClYx0 z5qVLe#l&GipUWiyOL;4Fh3z<-U2*UU!ON@fj*ZHwF4X(hupJP;o zTjBQJ)!WrWtD&TwW7%oYGx+P{9xHdN8%sf_m4*y@W18f{;`p|Bw_2pf`$h7~AE}W= zyVk_7eE=QfsHObk@E%ZX{I)qxiIwqLa|C5ti!De0riS{IgKSi`?9?AehXO0UsV)j6 zxVC`Llx8Yhs+IBhM%vl8VroADM-((&X zCO407KJewJBbkgh$b9b>-%%)yWueTJmsC|wyXD?EkF)7g_xmxr<2X=Jp`DnCkOGJ#f9Fhu&%IEIgbwy7 zws>|Y^IQ(er%WKYqB4%n3ciBC>tzj2$)}G`tMK7{lz@x26KKrhVo(mq_XVPez7`_s zcOEmgte-ui`oyA6I1n;m8p;3J1>TYh>$tpf6mZcGF zlc~#CnFx?v*ord(YsYEyEqpYggLd@o#lZx11Om$4pg{A`=PqUR878=J#1;HkoCR)J z;^FHdIIDwW0Z@al;zsF#Iu$?KnJMgs+;fLOkRO{&$3t*i;)zBM8Adwtm359t5rY63w7mOlG zqk23-W440#;t331OX|q$0GxC<96 za|F8eSl$vAv8td5#BQYR3!oW@n*14##Zxc58s}c5rghZYXK^I0;;T`o`M8GGV}+0e z9|%W}0AHlV3+j0dw)MvRmW7gjV&tBIZc64rC2%eb6kGQY|5akQ(rwNsi#Wzt5he4+ z0*I3H1HhZXDYGOWQ*qGKIGygn-9ug7qgqqi?}EEc@F~=WwI#Kn4?3oN@)^fY76$ai>faJ2qFK|Hx0$FA0;l567|GabXDOPudmT99q#zLr=^lOQ-im^68Qn%I5u>XSr5Yu1Y? zhKBn<$9D!jvtizd*Jv+P#%i&4_l^$V<43LY7c_7fqTY)$=uM1tcl8I|-p{wUUcVni zq3^CP+_t*C7jt_LSjy=nD_~%5mdUm|36UwZ33JpBrU-NRc5F!F(_NY~y0d=TReTSB zstddj4s*lc6KACMJ_yIipu~a?x8XZ*Ebrp);niksbf_$=R^lj^oXx`lcg}4*BQtY> z^-&1g&^-K0#3Z%=eHbv&eC)|zhLtC?MIVEa(S(xV;`0oc3_xCZ!j*kI^qVznxpCAl zT3J2fa4L9`ZP?s&(Bcn7{e ziA5w|)`860gG|~11=l(NfxiXM-*@DWthOV|*kZ$%O9PQUZ@JcmVkQMX^AI4#sUUX2by>8>U-0j{ksPShu%CqGP>ukyZ7Gn7WMJBiOKA}Q@QDU zp?Dw84pe7m=jQLP9f!U}K4qnaHl2LM2un+~Sf&+I69izj(E4+7gQNXJiQa*pp+Vf4 zPlKa;V`cB~U47lX36{U}Vjm0E#ut!1jxa;t(T;!Ig`jD~Uz+YOFh7m`5Z?nc8EaSK zf{xldafv3l+Jvbs)X?4dXy33XVsk>+dQkg*+zIf8*%d$O5xywkN}1JOzI1N9oARQJ zWXGjGE39{MOWYMRtAG8{+41=$l~6;?v^OeOzg-0wG3wBPu{q9*Ub(aueMm%;OYeFe z#>RDH96d^Z+-Q7s{Kv@$Td};K#WTXL(b1sEc% z@Yxil#lbtAkijYkHWpbwZ5#s&Qr1Ob8ai;pYrb0Mz@iQg^*CH^G~uV*gu7f`+}pvf zap@Kf4ml4wG72&TDyx+(G85BvE?%HOl*^&yatgbdDg4h;_WCwAbhK2CIM)@NwAcSkSFb$vGnVe#!y_h^IPj^W!-~Nk|g-KsRf4J~n&!*y(seI~=}N~w%Ne>juitCC77XwC(}>Qm>ho*jLDL4B?eUP>i;!n{wqC&U`#NF*pt4n1OnC z-qqK$7sOmIba1vR&Z?R+m{|c{To6FA5Eoyy2fK-N0?%i0^nQH1S9Wi(AQAyOPEFJf zIEyE*mG~$n04cMUC9ATvl-~xS)!Q&72C}O%JmXv8gJTJVWh0i;{7Z7ST4%zy{;H%n z6w<@$8l{p4RSXZ&{4mIi55Dr(NaB1rw}hpP1RnKAnHQf? zZafRUTrD=*9dWA zQXsb=ExX{<La5A-D?P96g=}9v598ocS@4w#O0wOagq3>xKMam%hP{CqH-9AcjBNF zMv?>^`WSKToDhaP6bX1+u!2j}{QU(u<;V){9PU}erSa3PJ>lvSDI_LjDT7}S2&Za+ z4N<8cu=*O$m7rxTKmiH6$FHT(gV&LjyPoKo>&dwYd-T<0T|nXcSCD=7HHdoys{A^#7G6i8 zG%9@V^%Oepk#*gT@V^=P-%R%8ZA9m9Bdcd4(dkaI(wh-(GliFLAzIi%_OWd!U>Dh^ zdWiN8l68KN?7hQ8PYsj3Z4_}v$*$}r>+)W*+s28GOi<_~Dz_>`dhx^FxKTLGy zFooQoCaU~2;=dE|-$`!tDAC+eawmTdW%xO=AAAqd!^g=!@k>OPKS);Pm&xA$VdU`< za?X5&sP$pI`zX<~A0vDDDb)K{$UgE(g#9Gh9ghN^N6CKvF{1Qul6~g0L~UotE`A>2 zK2P@CA0pl#l5-jM!KcaU{{qqDUm)i^?4B>8et(3v`7*f|zD#udD-=Hc6`~birSQhD z5}o=pvah>F<(xzENdE8S$-r#*{qxY4pln=R{HvlUwQ zM$27!i)B50i{<9pEbCI6WnYL}G}LZ|54Br#vE2$?UTx9A4l8tOjYZe3wX9=nEqVd= z+^rTpd#hy~TxZeK>nv;6dW$x1wCrV_79Hxeto}_F&26!)%UckCt7Sd2)uLT@Sk{ww zSk$r2vL4xH(TXn1I^Km&x!tl3ZAX5v)7?lfX<5ZFi=G*Se+vF7%X%}%X)m$qLo>spGErjTGrWnQJyK}JB566mUS^_(dabFGmY}(ExW&B z(V2?n_E#~`X06aOvj{h5g*MMybZXuTJ$%1K%O9}pbMLTd+dHjr<((Eq-(@+i@3QFl zyDa^chk6Co$G0T1WH!a%u zTL}MYg#R?c{WsYE&9dh{2OK|Vh28&-a(&*ipZFb%+McxRhkqB?{ywnyedP586U$H?=%6@LCa;{J&hUicH#+)8cuG?n2k8iVSWtZ)q z>9VPHyX~Ibj`-cSd!*Z@=U`9v*mSPPcKds6dc4*M25jr%5X$;y+dem9Q_rYvpWTBx++|y5?y{-vZre(Oke=OZ+b0g#p>1!q?a2$a zbNqrGegXFKuiMr$U$-6i8+P>gU)t8OXKnX}ze1XSWrw|Qq8{J0tqb3@olD=e-MPQU z`-`^o&_&yQ{#$mq_1m_6-6h*?`;Kir@^`j#{_lVzi1nrCY^U|RwteRB?a--zu&oo9 zQOAF@Lr?#c?LPTGY^UdWo80fg{vP6e56|DXLl?hqTm3(<-4!p`&c+vP%l&8DKKUct zijot87hQB5dm-e6p9?wGxrk%8UFBHUy}}7ampj&_S335CKjDN<{gh*EdkvmFhhFd; zcdps7o^N*C$KK$C&%eQOA8&DDPu%2K$5uJEdy5lZxW%!aTJ6}IcR1GGosJvb<=9W( z=~y@Hc4%_9$2ot{2_4Hi)+6^K-JD}RGwp;c zc_+HA=-4Z(j?-UtEN{l4)>$X~*sMc`<{amtIVW^--f^C}A7wb?IOh&I;nu?rojQzk z-safF1;-lt8HX+(aqJ`SaGXcpfpWalvCHsA99@2A4c6j?9i@{IN{<)9QTHY9qZ^vk`^Ct z`ccPu0(Qr*J5JB9JGAiYXoJUq<8M07+23?RM?UR1M?dY@(a$2y&mynS0)sP-^Yj_V z8vPvX&pGbF|L#~lpLg8JCxG|=i!e_)&cg4b?7xrv|G)_y{6mL2o_0cKzkqsv!Lc7Z z>o|{}1@3?3(A*y(oi90b_DfFq@|W=ZWrvP@*$Llp&Y=g-0pmY*D0&`k_-78Se8ve6 zJ%jQ*btcbxF0 z?;!m5oNFKYf#a_GXJ@(lLx(p0(6J9$E?u--E9bcO@sLX$Vb|UpbtBKd(zV^!xKwDrV1 zE}iRlufA@`bsrmY?bD-f_^DC%RnOn;+LsgVD~?RM*27b7(+zKP(O2Ba-gmon?A>no z^1EI8>G!)=EkEIgTTi%j;e_kb2VHvhgKqeR54y2+A9Cr554q9YN8IbqKJ3z^kGfYK z{kUr#`W2U!f5Hv9k08HCTx;X6x%Lge?naJ(*0rObb3;#l-nF0ql50J6&W)V>Q`g@7 zH8*tRFHqNSx$fCZE>-^4wO{xju6yG9uKlDN3LT1uq8qOX*+;GoS!Z4y3eEjw$ZdU1 z$ll)^iac{m$UYelg-)#wMIPE5YMR^;iX6W)^vbh?p~&TZp;+#%A^Z4L$l90-z2dp2 zLro{og~HE&C1me?Cgi5S77DliMaX{guS3?}Z-qiPd^=2zJjy?6cFveWiKK4i9(B&_M-G{#%UUuwU*m?3RVfXx3!=e83;j43B zgWuP~wEP?4(28$`os-`RUw`pi;qb9w(zv`Jw;j172PS}3-dttitgK%v0hv8R0 zXhrN};YjpiB;uTjM#9fWBcWwY5obkHgqB|wu^zuFVxN3P#427L37@?>;_kmDVy$~+ z#M$=Bh}HJ0NVxx15ohjIk?5IgBi7LMk?_&$BcY8y5wTiVM5wqT;@aB~f>tIWSu6tv|y>L^+da5LDemj(<5~pZgQw z^QRH#@js13ZuoA*diJ{!YW;_Z-TF_F*wODtoa5h*ko$wkRgeE5@)JW8z3O?2Mprmd z>p3TCuZu)!Z#23*9gEuMuZl)aT^+T~E|1zn*GHr0ULAFpuZTuYcu{-h8=~&%l~KEL zOVl~j7NvFZXe7ET+O&TlYF{3SIy4%!PLD?2^d5vg5OpWt8Vwyf7`2~GMXmm9)G218 z%T7;4opV!Bisquuwp{cTr#}>3_UwnF(aDcRBj-OEwN5?~jnLy!$~_*9Ec`*#a{n-D z=e`)Fb6<>Jv-wgqbosl{rjyS{?a3cSL+7lRz3ti<9lAE=oV_-7&H1*N-M=R0?phnO zkKG!xI@ZU)EXABOzf4HKNDMV;S;N1lnf%lU) z7h=})Uyp@{z7eyQ|7DEQe;ErqV9zZW2ngKkupUpt;GcU9x<>>Ct6;*~U;eE7hsm0I zowa<~>j}$dS^@L?TVMDQ|E+UW7}|gJY3qa52kiGc$KCgZ-XH$?$cgAL#D1~qm#%tf znGW(&=`Gv;&ypUdH}#jkdg0~L(;ds)S;zeTd}?uh8zRwGDkp{4HNl`xDC-pa&`LS81E|D)~M3NyLWgq1dn1 zHdGMB&HEx8?kBbVQ`&xwwpmA$-@jJduhTYE74f%x!PEAQ+HThN8??Pr+b!CDqqc9- zcB{5mX&Wk!_*=eki?-Xe9oKfdwpVMrL)&Y#y;j?|YI~iw*K2!&wxLpqzvTvPv+P+8IZ_)NXZSU9i0d2ok+X-zS z)OJ$aW7JFV@Ew#T(Sq3ua+XSIE=wx_h6)AqEs^V%+GyQuB^v|ZA6S=$wDSG7H( z?OAQlX?tGV_iOtBZ6DG$)MN3teBo`{{=c-npzXJ7`=_=2Gul3)?f;_fcWC>a+I~>m z|F^c^rS1Pm+efwiZf*apwtr6B$F%)lwf!D#zgOGGwf#PAzhB!wuk91s{snFSqPBlY z+Yf2`1KR$ewtrdMC$;?{ZGTwXAJO*1+Wx4vKc?-EYx|V8e?{A$(Do;_{fM@IRokD^ z_OEICj#oF~X*uP!{fpNt_djTRr?v~){ z@%}#@Z=be*TWn8C#Xpbfa9_~&H?$pERIc}E_lLCoQEmT@w*O4q*Daafa{9`me7~j3 z`M28suD1VC+uzgnKWp2<*EJcxkhWvmeucJQsqO2v{gc{$t+sE}c8j)GX*;g%HQN64 zK9$e;_bL19+Ww}t_q<>Ek7>KA?RRVYBicTr?X%im_47L2zlupcE@=Cr*xVB4&mdqB zFbEg~3<3rLgMdN6AYc$M2p9wm0tNwtfI+|@U=T0}7z7Lg1_6VBLBJqj5HJWB1PlTO z0fT@+z#w1{FbEg~3<3rLgMdN6AYc$M2p9wm0tNwtfI+|@U=T0}7z7Lg27&)<2w1wp zAOGYh)Y0>QAprlU$Jf<lOT$U%~&nEBI?~T3r6gD}?X3g8#-V_-||Qrv>e# zUHXChweM$agMdN6AYc$M2p9wm0tNwtfI+|@U=T0}7z7Lg1_6VBLBJqj5HJWB1PlTO z0fT@+z#w1{FbEg~3<3rLgMdN6AYc$M2p9wm0tNwtfI+|@U=T0}7z7Lg1_6VBLBJqj z5HJWB1PlWI(Gc)ZpbE@Jhv-q*7L5NF@*iOHSyBHSrkoqy7AAV4DG0&wRE~C<{z8%sQAIFcp{um}4*} zVNS!Gfq5F{8JNp3?ki9pm}Z!@Fg-BCFk>)zn0LUuALe5)zXkKVFn#H zgJ&NqvDj}127Tgh=w7nNAhaFq2d4 zDrfVlLOH?k0&lo0$YPgX7m12p<0p0N+DO6&7iFk ziAtf0M&ifJ95;J1mCA6-CM(JOTDA(~@|%@kWC$N_y|FAe?AZO8QUUFY1}&su<98}C zk*QR&)2IuaW#39?xoZ>vQaV?j2X1NZbofCgnYl~~NvZ+>6H1KhsN>_gYIzcFq=~5G z*<2=%{Kh#SSOs)1wo2?Mma_Q@3Oin`R!|nUI7%s#L_t+Y8ZW1kc@9#}WH<`IL{-Pj z^LdU?$#BKSD`<$6^po+~QkMG*GSB2^#GWjaEBPc>4xYsnM@UZ%C%or9?81m^^m4VyI;@=O>aYOt8-c zcbMs9YEq|?$)P^e8vki@ok?WKb`c4|o-WKFM?7H2`Zmf^sbos|H5=eFB`q^OrJ5|C z%oobJOa^VBz~x_wjt-bav$0!Z6m=7!^T@C-s_?}E24_)$?zc#>GRYoj{(L$yRw^XZ zsbm?YY4BH6r@^b7oxsRm6pqW8o=tLJZ3w)`3mJ0L`9abdj2m<$-+ga^hobMAu2wR0 zXoLDhm7nTpjp3^KC47NsDUr@#oE89lLj-xXMB?I)W~s~<>q=Uh<`#pr;bN?&{ z9;$R@Jz&*91-R%qnbb6TCqHvnXWMskmxo&@3vAsn@ieYFH=aO0Bn(D)Eup-hLS9A< zg5~`*@_qz(O2kTmYg8!-T@)LHL~L|aW&01++5bz5&0_{4M`J_YM9%bCG{f z{uTe8_?sJuLTcb%!_(;X(w?u8cDu1snpf?6lS|M42qEpsWImtCB`A&=Xq?{c(#5yG z7Rfw|U$WJlH<>C_^A*awbV+=r`y{AR%p}o?%Vj!ZAvKBi#M@tMCGIU3^7PB_dr*R> zD%lwxs2{b`=|nC$kD2H<@bcJCb3PBs?;{)y-Q}wm+0#YL04iK2tr%an?Y;8(^e&Xw+&q6O@iKQmsRAC!}B4DbXIU%sw zbI#cfhAGuZS-DB2TBTB{R4SE9rBbOGyX9;D_pqL2>O|i?8gl>DZ10%eKYgPzAbdpW#=P4xN9o(ns;ESwG9s zDMY17i=J^{QHV>6N6TNpi6aWT&sqm|-N+;qC{=y$h>60)RlhjW)Z_rwCQ5CwMkcFz zD<&E{=vo{0a%`xo)CN~aQ9s$7YPvm1Wjc~wkx{9sF)3+W&JP@};vgtriDjHk_t8QTAIGD{@4f+Jq;Sm_2C3k!o8Y zq(@guGDT850+k(;U>1&hD+0%>JqVcfv7S`h$gREaNgtcHeH%J9Q zx=DpVayC#)#wk(bRC6G2zEgtqBAgk-6FfUe*__EyX%Nk5K~cWI)JU}=2=m!Zlfr#K zXYpHS{LVVn*`i=17pXrG#Iu(wkcegBuOR>P%wTlY7buIGi(ggyDSD-LEB52**xOVQ zp4V5?^L(9n_V-A|&dbCX!Fpf!2J1Bfhb&u63i|XDaHOijc?+9*Qe*+% z#H6~Cv3jZ1!KtbN!4uI%QP^2Y^7%O^%@wIGAiJCml$}@CsGNo`YMPJ~r#81jkKif# z3%&GdD_VZ{;90c}S*6`d?G|dc0a-kVb)? zCja7BiH=)DOl`HkHF{A$D%EZ=d5neR;cboTrl~Jl>%t|(PEg26=5;Y-GebF>*Ii$f8YMEN7D1-$vOIkkGenNX%7-5X!6lv-SM0(b?vmrx@A#cfC%d zPP+}-t%a)`(OB0Ogiz5Jg^Z4wkgAr3(AKju1PjoI6umy5+_JUg=B=Y*LWY3YuPQ>Y z(e4XLCg~W`!#GuqI5j%7Plxucp*V%>X$)feYT09YTW7*ZNWlp1X^VkaOhGa*eUy#6 z>!Y?*pY?53AWI%!hm2H5La5)*hv<#j-8NOd(-xyyZECA**eoK|nvj%8^;KIH5FbV7 zuy~yPF0@IY=AMk0F|NqOR5c@H3|5L*H76uZokY%_gOqb!4dpx%6AqisigsEI{HPsv z$#e9a#ZSoEQq|}1ZPM-6NbP5fju}Zy>yPbXa4^GUY3c(SqW<~4p%tySk?K@yr+Tjqi=Aq7 z8<#rXhSmiL1TpGNn^e`*Hcjnlm#(I@$8tSyada-4 z5~}PtLZSopSv*zw+9yU)?x@?U?J7Cz>QJBJd3PZiDLzMeN>_UjV zT0or(jZRO&=?bl?6UpwNhZ@8C9Uw~-cEHp_$c7Fn@e|VG6WQyZ4sRqUNyZt_wfUCP zBI{Y$nQ~=agF0{t`kk~6sspLMt?h5FZRN1Ol2$u*!AM3ZeOwF174Zj2E>Y{*^N*sz_dkQ&BGsWwNyDQqP~cCYIaJ<{q5Dzg4b)QQ1@xrsI7O#Xi1~Ay zTGuhvKO&1essM<`IG4`rn2>~R7hy)K+>W%};wNoN%RB0EqX!at65?TU3XYZ7E>l%O zM{Ig(Ye%fOg_Kd#$I#8%V$c{k=PbMo(Q(4X7JL~>wFcTMRaQuD{%UfYK5B=i894!Z zsYq8mN})399n))U?Djb%0{2U6-S>ss^F!Dyf3?KayMV167kwng3kwj7f~aAg7kfxB?0N zOaU@?X!j(71<=_~Yjsr9-}*am%x*DA|i0R%8^E zaEI_He?OHAijov{^a@?B-|#f!0wrJQLnZaIj4&)~Cn$1pzQamYIbkXYqnIQntScC& zacTkb{^asl)o^)y8un?m0p*BPjaQ(xQH@z)I-Mm*r)C+oinmD*JMCt{rL8bd)rLXf zBRT1KSQ2DzT67x1=o~jP!G$SyI*fX!AS@wLH6bMr>1maxGMHL6Jt-Q3%j!-E5aCl) zQ72TbA{c_oC-~L0H3&gQrK+8s{wwfz@bGy95#%6#WfxwDw92QGTeE`Pyc}|KXOipA z)4vy!TfXW#r2=UUQ&T!8LKgrRoO+K71du?CB-Jh zsmWJkgIIy3B>=MYWf+!|FOO48J0+_bSL>w)n}OcS)Jg<&|4A!Rm4^mk0(5JUy0Yq< ztDR9PSd~(e;}b?epv6J93ZZ@PQt>_6SW`xs{8_^`69S7j4rjI~?;~j%M$NqmTV(Z(moE;pq&0wkwrKHFu3oh;d@7 zgu7y5aG1;tPl>^LgbJs|C%Dwy@Klu-j>%R^6|8s<7ab}igPJT`yNy%nw|f@3dD^X= ziI%q~COC2SQ46loN=CKl8fajk5rhPK4NCqwEsGLlvILoNG02>2Xdth=CY{v!9RG`J zaHvv0b%k`A7!|3C!xK_yf<;1MeFg=_X^&v zk{yQ~z7`2J@4OBp^LPBp`HYe&`a&l|mo3;rM`M(J&`s+YP{34@)S}h0ZkXv`AsCMO zP>;n#j?iO%em7_p)T(aKP(r(qoQhq8)S}qvkUOF@|BeePRW=Q)fhvaUSIkWA&KiRm z-61IMqcC-Qajj`fcB!S^NvXcFyRwhKUfGQlevxWUcZ`mxNS9iJ2t_AJuBp(8HmnFl znY26*$udY}lB(?PqY_5?j#q`PEdoGRS<0u^J^`@>=Xfo=8ekgfg@FdzJYnK z2hMj1tZ<#xBbjDsq{{7qeDwhGYPV_{b&*dGCa?Zo3KwHp)%HkJ$0@XanlDe!;%PIU z*6OEaI*k&zS}KlF@AOO`p>levU}!p(w?}lsSoKYhm@%rV2Nq2d0HOF+KlF%G4LzJ{ zN>40ho}Q^{Nlz%Y&Qt5<_-LHx=wu7D>(LpxwcDsOicuGOLazb+S-lQXBTwgFm!=lt zX^sw?M^A%L3|xPts1rS-6Jlf4?>$kLGd<(fjO(0g@pZ_4)pe=qBXp3ph}v|T3gJ0R zZk~@^uYOXh-O4}EwSjWo_S1DZx+8)5>mWy@O;EpGM~hG6b^1(&l*cJ|FU-|%sChH@ zlk36dA-Y&f^l>i~WlJw-n)(dkD!-#9q;A8JtCtqM{Q(d4!um*~b9yh5rX$r+gs(qG zg=_kYT;By0%TBq^zMk@(e?1*F7haEiQ3Yj#GGOubS7uQ4T^CCnB-Fm7@Jtng!Q)hUW(~-^tmshy6*F!9XYP%Vsy||mj0ULLmG0J!S zm~^bXk!s2fX*m0+cW%HYbdXlZ@=s{A)~%-0s; zfi_wi=&7pYhLo5%R6Qo;;sR5C0}aib8=wuPW00yuCZ2tiNtKtDVB9LHg*T2PmF?mi zvBqdcZ8h{TBqI3J-FTy3v(lg@@#|GeZp8Kh&DDw)Q#A_ow&$N!lmDs^aM=NKX25h zXaDI*ox2gT`bagqH+qKdx>Zq$mT}|aVxrYgy-8(=WqG8kM}V3cIMcL`QYGC-sGquz zR3G>7Cljd(dtwYg3ZPBpa8E63UepO4>nYNFr1}^`|9r1R_09Ek_Vx?;b=P0iC7--L zMa{Sof<^B%^;_@swAjATEyY6LhxK&oO%CNQB@wt`t8SSRy%leSRG}w0R!!_ZHN+X#=Ubri2DKaeWAA_#7IAw+=S5zZ*+e|-xiin36Ib)Te>>(Org3Hsd#*RKKi=a&C802vXe4#Fu%3q8Q; zTUZa^--MfPxu^`76+sdf9qAwy;#vr6NL~ci0MV;9+ydpmhe)-w<`U#v`u!yqZh#@5 z;YRl?9@nk943BfylAE*jQY=gmEvjybRzF8TE5W0nIpTjbxpQvCbtJ9^wcdHbt?6mW zB9O39yy#Y}7gaQqYBqI+oA(1{Tl3>3s4i|FQ)vmpJ?dz6>Q?=qKX1iM968#BD?Vrg zZ%s)~g6MD#iFnUa^ycZ5RKYjY;@K-Y=(~lDw^30$AVDn$mE4w^%v)6?GDwU{!oC-y z$`L59h-y`^0lT{{?Fl@~uDt?{`+vEbD7+14#oJO?B^pg>M2>*sN&SAC-rrLb64l>` zU$6!>am1_nx9R)x4{u9WQ*TchdHZeZ)7w$#m6syNx}pwn-MWbWn~kHl^A7(DLeTyfdPwwkQm@bGlQ;s4$O!D*&=^D8)CWh%7~Ik1Qs8D9R@rO1 z!_C@EZo^i50N;*H#W_Lk?4xhczwM)Iy&vK8v%5pWIfP%C>pLQJ{xB(a5fo3K05G1P+wVKJG{Z^! zD&5utp(=FKRjs1mg(VpLwvm|mD(fyCq8e4fKFnnvp?UHeqoE`oBHS4Z8EZr*iE?n^9j$9qM%c++1O@th) z*7QxH^UQ|6*xI-=H}}OM5c|ld$ft5;H>z4J1mZ9I;vP610)lSs1$Uz!YpF%6K15&Z zXGM5cv5fk^bn?aizZ*TBriG(V?oJ;8@fyp>uDeyMC^T1c+ywP!pOMLlBWMYqdPlVS z?GByNxjU$A*e>r(lFP98`iW7VA`8!e0MR#KqA?vIY7$G!!?xy8@ z0^Q@wAXT5;gJVJiEjSq`X~Dr&8Q%>axrfI9`B#O~7`O+*wfgEFoKNT|{|`J$chm8` za6eV7VJ58{C5taZ$Lg4i?`5q6H{FVR|5G;blaKDDe$=OSU9*Mv(vdq-t;h2im3eQ9 zs=gOl9Hcp3ag0jnt)X#22UI#KVvBb7!`_Jd2N4XX_oL}S;hVqeN_D~AZgi|#-46?> z7Pj<~8R<+-Qbh<_(L_PZcA#>)!29v6c@AaN_zRZJ#26fE)ro#2uYJ;w7Gb&jJk*cw zK7U7O-*+^=D%@0mPcf}v89$)@wu|?mEAG=Ne{>&wHX=>6{yu2o|LZW$c=3HW^}_?F z2;`z;EWD3zI@KOT&6+_;7w@6s7A!+?A>(D-k0-^nq-D;=x{hlqx~Bf;K7D;U>wf?B z>3jE+z!j4?LggYt<{awC<@ZwqAHR=!aR;6j?4*PTBI6xgv~CuS*~0h8t)7JmWp8mizWX86j8ohD zkZ$(x5vgz~4c^1}mH9iBJue5WeP=z4JK=F4hW67KF2S4I65UE zR)%)|!znSeY?7$JX{<&XH8f-G`tCgIVJEb-MGvP%j>DR&jn{rch$b!3l>SDtV8aY* zmx+cXte>Jg%=Rde(_p8V*u9l zNVR#uMfK4)1EBgVfYrX32#u(BKvEUKR@lsN6kRk&z zv=gd6?K9_*crtof^a$xiun$J!w1!!-3K8;`(Lij>Be!&se>fg_1iLDfQFH)H8aY8# zKXOqWsp=4`ypZ~!_#1NFUUF+m#IivKBJByua_>JX_04+}D!`*XDLKVsF~s-$I&j9rph1V1#H)2Fudhvt9%SA zA`ab6kK%NA;4yV+lv;Z02-+i}u!U(s^XRQ3)t9$NlQK-i!b7*msO5d6gkScFQ@(q3 zDWg+xFy?g6-wWBw)6c2?>6fJT-Vc4ziThn@;{&=^$Z8C${>}%md;aiXs`_(4np*n^ z_Ef#mpMGSVYI+O<=mhBu*y3W^z_DuHVeT!dt`mFAr0Xru<#IqkB$DvscU8?SJ7wIogJ`TM~3dYq% zb?)YCp;`K-8=7h6O{8j7hi^_&?>?^0%y6r|;_>myhqP;#(qXaiy8yTqKGHK3{6->d5LRaLhSJajJEks^e6x+GBcc`$fB_v>t6A>M-KY zKG?3H>fA)uG3!-v^O-_!$H$ z+oluy8XiF;U~e0Q8;U)H;-K|8HVDJ}aj4I(8_=2K|F|8ki76q;Xma8rFJ3x>6* z(m3_iQ)qM+$yD}JX=*n@6`iDQBzFqA1x=k$UT(TSo}!Zeg%FuDsa5MU(W<<@JdI8{ zMB#nfr+F%=hUC&}+0#@GvY%P?w7z}d(|xL1i&#}tXz+cEU%qcBe))c#_Y6uu8>!&= zJaS8>BgFto@t3FRzA`c@JuP0HdRmv@&x@IyYnjQvNV-vHGVK{m1-j!n`ZTPCRp~S6 zjn63U<`2oO#_I(Lpcnf?&y2lI9Yuh$Tq@o#_*J!*0(lpJ;pZLk`aINQ`{H$NKFymP|gCzI8GvZctVK7wqI7iIEGp(2L zdz=|eQ)>CMsFt2g-XBSu#e;Rvvor<2d)BUspTR>?I;n%t#-z~AH1>>C5peZ;1t*?` z6~o2(|NCGzH&CBE3zZQPfM{V?WjM2G$>M~F|Bqyhq~{^%R8!gAuR!!tH`aH6@alt!ixI)IekMr^?7~r znE5=qa*+=55xM1_ivd4;UI#4XfE%C34AfQ?YTom#N-TLErKCMIXL)-m_)nBvCMA^h zIk`pW9B`{Q!HNUccF6qhU;t4XMlauJ^BtnH9dEGu!xr&a4Chb1qP+>UU7UravzR+|L0IaloT5 z_$^A*_7||e|AL4$%V-tKTS^f#){~o^b+NUxU)1@$|Dw((??trW3JOwKOm5wRivd67 zfM0UJoiEb-gc$VUi^%0$M9W!55vn(k+dThbv__70o};;6g4m&szsMaq{Uy{SpGF$` zNG*N|?_iJ}vRZ>sumi_6)!Y}8)dqyBTtQXHrI)Z&Q6ag7b1!D`{Y$zEhhNfFIELW0 zwKNdRmj;rH4A8Q3sqvcEP?wPEBaQUlL-i2^ds@y=vwjKwsxM!1;mwM)bbXVk_P!*hH|oSoWM@F?P8e*B#&)LMLrKbULW0KumEH}R zK2*P@q8rOIlngjvo-}lv`fRAS*irRE$u48wbJ)}VMZwGWlJ>UpOYMFK9WFLY!115$$N5)q%k(OneJp$RqS?nPM5v~B+f?IBa%=yg z$d#M*?*+lI<*0jA1?f)s`V}PaoAW7IdpU^Jmtzow0W zah9QbsZ@3JwIn)isB^EeDHWOOsNC1F=d633eol^rk|-%v%NGf-5lR?|b(W2uR8}Mg z<4L?UsG5Ind(obD#&8UuWAwCX8#KiFE^f|nx-VHg+(mapD-a;Bf&x_SCfB3gO8um4 zOI!4qHm==1oOj~#;Up688cz0{mBUdcG9x;GG^+EEsj9)RhSii#!9JZS-fEY@qlN5e@HnG(fjIG!lnw??5Y)q9a-5LpyuR~5aGRs*c;>?)U>vdiJ*^*~MV zdJ1;oI%vpfLpu>Q?!QIsH$<$A*0x^iPb8S6jzo=D?~Fhlm(!}~MN?oH71BCcs()v0 zq~94EvAselK@H0gI0GhgxV!LoPQeH&?79)!X0#ZGSj<-cOAJIQ^~E;(a01jl3ywNe58z3 zE!*!vq^g}rIY7^?H6xvPjY>jp8kvaWDU3h2!MIiJ896o~l?+r)B1*oS7VxYJlGEyT zlUo8;+378{714>PU%dJ#dIAjd)%s|7(%Yn1AljiLHbv9Mr7G~aRL8H?Zv7q#QUDkC z7Rk88J{Aqr70d~BBAPGKe~)J2Pn|*3j4xnjp)N%8HL}{ri7tu3O7Xew30!5;5*?eY zN@8F#l%%%D*i}hCS}UXfGj~W;i}B(Zj&cRCP*vqI$)i&-?MBD&hE)}#95HIi2vS6< zLnE9x6#MXI!9nEGOz;1y;+Ym)_hMQBAojv+L*?V0zeE?k4i~Rh$D%kpX&B`Eq&Lv- z$*tN;ZXTXv7?A=T)+GmHQ`L_Mo%tR4HG0X-*5N7-((i^t8TSTmxZ~KaVMnai67IqKl6-Db-^C`VpJQR3rOw3CEy4vH$PUM)CaANN{s|g& zg)sJDd;87tbTs=k9@BZ59xaXJ7HT&OE={Gw@whHMh9K@UU&g~45`D`ySbO7fgjWj^ zFkH2LZIyOwwOg&-9PN7HVn^YZjE^L+)k9qZTRogih(ld`IN2qsvq&nZ08Iu{=!Rm~VNw2Wzc^;ETD6sEveTAuaLVo~!OuDmbqGvAKF9*d1-|EP<5%ppYZuA&IO zd_66+Ho9OIDHyTULmcp{Atxx$Xn)5*NKRDmjHaj*sp&JG0&3f6IX-<3zj`-KoE@X- zMAOntZTe{FqEyc4aq9cgBvHUXAyR!bO79*=M z6{pDcOeJ}-{%=|y3fp z#Ppq@5CxkkgjmELNW}ighdx!4NHvEYtt!B4uP|eWep0Q&)GABF{P_t9RlRMWDAF*{b;B^U04ywRx%GknzFT4 zL%U@QNJ=1MPgkn?6z}@#A7A=|??iC-JCqid*Kb{v#DD9vYJhJId@&Lz8Atqt5h*08 ze~9Snw2SQ4)T}YAEL2%zFf^*jN~pA|4ZY#A84tX(Npd6+D*yM!K+BH^RXT;H}S+$;W^#z)Z_+87{JX%X+!6kKZRLz~_lzD&VTQ%h3x)~q+*4Y)&ll!k|{9`ps?Brc@l9(1hDk^#FoI`+2ICE2FU8rKlZv z{a5XQ`9&&82z=~P-=*SZ$Ao}!;T-bD0V7Sz z@R9uKfj{8mqYr)HC`F0_nrC#Es%ED{KO4#FllkcwJ?byW(F@Zt<#walv2oY=PlIPt zwdIT|O2@6T*2uXq#-ZpPNtOy*5yiKO7Ta>XRA*Pd+mQ`Uh`1VrIh|kE3B7bWiG``^ z9Kw6)6Dz80p52PXR=RksUDe%*sFj1@)IE#%5Z~zNJ66QmEo0Hv)PU>9Vv<40q_&U6 z^va}M-G9=mFj5`E(NvwlW8V}iM&3a9Rs90LplJ0^daRxm*h|JHsJ&xFmRG-zm4STT zpObr>e(e%TO&fr=KpU3NW$$mx5H1!7}y0txD z)9+Mly0#_7**g2IJ-VgC&C;1qg~>HGwj z^1Pw!P~}h1#&Qq>aXX|MC(wPcTKNW=yh^`rSwwElv~alY1@r=)wo0seLtmx+@P^#{ z)FLO6+KwY)TZeCalZvN56T$Lg z34(dwp^O`MQCf|ADJ?BS{`e+@$DiS!Gv#Uv2gzUYvw1bOLDt6zWY=c?=ibz}+$v+D zHb|H?5d)W|JEq0KH>s9c6S4TM(B(kOAu*)jFKpRFDeTt>RJf5m^xN4L6G_09oBki+ zSGSoGsM)D&n@_I0mfY+Glw{K!ipk|zFo`Os7EQt~s{5;833+04BHrM2?Eso zLb0poQrbnE5sa&}cM>P{{Ulwb!;`Qq!={YeYtAHGVX38)XaK0vN$IHJF(g%emWty+ zp)d{T3Q*;~MX_N<_!f${-&}vyiaa@)_?V#`nIm`%(qp0ymRPzY!y52g{ufuLnt#w3eO zbc<9^r{C4NsEvaT)<}{Md|Rei5S2cgV(E|Od^N?Qjl!jNQ!+Wt)X-JB49=L?Gr8Qeyrp`obv|348BPL0ZyNE2mgmJ@fGtjJds2EEm08 zIen^y`&+c8YM|0q`SUt94dbJzKgyW-4oQISefo|8^8^b@BE7%|d1E?C9EC&CXVa|~ zO24ll`{S&B0u@2S>;~a1f-~4(_J6!q71- zYbLk+6uFJ(X$R-gKRMH)_ZnEaJR=j~v$V3MsX=!6m6;ZOC}|CO6*iFeZUg>zSAVWYAwhzFGA& za?5?_BpZy3ATrLh{;!(QlTh^7U~7vT4K(e(nHDswK1v~PA$Mct&}MB&MYg<2|Wdw*sGFR78$_PRzi{$ zM4@jfZp~y$zCyd@WmKW2S(u3ss}|12?2*&`?Agc-hd8W=^JiOh&_GS`di~RYf6c>nM`~ZDv7Q9p7vV@0_2d4D{{l>e&{({`$`I-6~u3z>pNf;4}bPp@?!q4 z9!m>Ke^6*b@+}F>wlWaJt1Ip5?ey53UYm2G{F{bS##h>1m6kIN z|N0;Ef02K&<;<~BaqvGU5!&?s{9k3DvmwA)8Q{!yxbiJ$-v8JC8rrzBEEkfmwy0;C zEob=^&OXjU%Y~@n&e{-HspYI|<17z!RbKDR(-kYWQO4PJXG4%P9QAY720NP^ZmZPc zEC_a$w{=^+oTa*`(q>#}BuJIPe{zw44b6zYDhqOD1)v$74cvy+)R1{W)NECu7n`jP zgMyk3ZBt}Xqh$qiAu*EN7(cl;Q2C2&)Wx|rSB=e8q=$)&^jx+!U~U% z&JBq7*)k9$$KJPZoxM7+-cDR+&ux~#IWe-(9jH< zBQ(?ztpDkVB3}F_JiOQ*9_|=|wzHMnbM57}YE&%C-mzn;)r{P&5-T6Gt<*~Eoo|iL z3$1kw=o6nG&}i%3yLb12{d<=N^qV-oSKq$9Fixlk`VPvp@&c+YufvgLtFm&abwUbk z!^1rmD>)o%?USRLvzu3yN<=HZAx%%ID zk5vZDv8pZ9wR@LlTUtY_`oMB~PC$;m(&~fBonbF<r zuvJ=BR+!s9ywdWv$#az2BI@n=fzGnPJhW$HKv+>=bNj3gd4Wycv#i3a`bJlGD7S@` zSe2-DldaAQD{*+NLVF#`k!SbWv#myaLbupfX{!rpx}?!o8jus1+uq%w&T6o#+vEm$ zZMlx>;M%~Zz=WSwiUrS_B?xOK#{$;o%_;q41~r`6_*yaE(yr6 z=Z7^pydkx1^R1H4t)lkTX!_a^k0Whxt-UU=IxyQ_ZjH}qTNhB&uDW$@V7V>Vo*Uc{ zSl=PLH5w(T*~$&54=8O@Zu10Wx6ZJt0%{$_L1CEzT}tepo2zZnnH}>3a~u&Nj$ntw z5fTB>IM1G8&%_XMp-Jtzfep5N3=BuH-O(60Y*_Fx`lmK91L|o z&``|M;C|V*kP@qZfmM&bj)?FeodzqU!3ysfR*vM{R=+~K&l*^2RRw2b1eBtZ4o9!< zt}3g0zOC4*u-99?dl#Y6YHa1U=xY1;GApEGg(G@su7k(1j`07_DG020gq7Rfw))oP zcCXEq+olE+tTrIe5u9Z&Zk1zY*?f*1TW&z1EuWUo(2$zI5?dxs{lNUd++Q9&Z4vIky5L|}v6X`*FVBHtY_CA(9$TZMGN1shoa4wq|7CXY z1bFP_Z810dm4xM9RTYxcCImy`}FmVDz;?=`C5Cel8}Pd z&g||PR()W6{XHdZ3fp?yHaL8jH@E3GB=fe$;AYE<1+u`ZY#Wl(s;uuhRMPr+YlAs7rrz-o9p#@f5>xjHAUQDWHTTO==49Q*| zE2Dk0qtF)GtHzG*cVq|Dw9dBYV6@fQ!m6z>NElcK!-}l|p%GzWK3iy^RcLkT9a?4$ z=^Zh&cW)*CEPGt3b`bc<2m=36CBpq6RTFdX;a>fjR|z{FWZoiNDZE=a z?;-X-BCG~5|0dl15oY@!E^npq<-&u}FI3;&!qHDLKPnvmB6Fm0uc6Fu3x~bRyi{1d z#=J#%Kos)<;f5sUM&YVt=1}BI<7s$0^G(8dFHx6ofN;ok<`;#_XEBc!4$ESmBJ9m( zeqXp(4)c290Ut2$6mHCAt`#1V&-|Bg*oVxmp62qFuVTJhxXT*m+k{mi^P|G!g82*}`*$qkmxkWx~S_F@GwYTf_XFaNS|%;Z^1|;r_2N&k=4O&b&%^NHlY)a8?}icfwspF*gYJ9?fjSK1B1Wuamj6@PI_- zKEi{On4b|Imdrd#INrsaA)Gdbd9koNg?WpxCzW}>a84TY@51@%%z-a)`HIFe-yj?^ ziFtsZ-(r4Mc*xt#6NGcz%}LBmS(e}nMwsmx`{y@0PR_0HH3$`)u60R?0{#iJ4JM+K7 zHJ>quz0BpS`JDMC;XYq8KQ3G@94lP3gZ(pwCsr`$3#Wa{yj{4``fS9tg@ z%qN5g)-zj>!>B(aPB3>C?st;;LE-XWnO_#pKE<3O?EH<{BRu{z^J?LOv&_5ve2)2; za8Wa}8ph?x{D--taFg)O!WI9r|HHx_hfTNt>%zkWnA3z^t(fQf{aZ6H7Y@Ia`E%jw zj?C4<`C-gH;ovKogCVz4`wi~Ge3h{0D&{`I1y?h_B0Mad*(qGzoq4kG_#Vtlg|mAy ze=O{|j`jdEx$pm^(yrdAmQwe4}vi)6D&a8-#}nS3Sf2 zFnHkpz~57%_Lwc)R?7F;b{2ahsD%=-;=gLBT zyu#f>nfD9#>&*PKaMQKSzX@k`WBymTx)*cs2(G{9Y33`0gP&pUDO@1jN4U!n_J2gU zUTMxK}fC;7G22*1ybG2oJ%17Nviia7F<0Bf=G}n1>4YZOsh37Cpa8+c3L@ z>)JBEFYLL2d7W^5f99`+8y;k?5iWg*`IK<~rcCb<{N~&sQ$`6FTHY335)K5YYae%}c9&HRsW7vTh`Za$lOnOz#--#!i~Z){_r*IKS{Vrc&>2A zBkaFSxYv)&n}u_0nZFe-J9L!$|=La%Z30JpbKI->x%X~_> zwjFbmaNkhowh3IG!NS)H#|z&jJYIN^uv<7vI9nK2yt;k`!n1`-g!6>Ugf|IS3hx%K z6+SBL6aGuMS-9;e&d(fnm_@&Gd!oeMx?-#D@!Tg+XbWi3{!rmL0rwSL{#Qd&s zzX8l^h4UX}{zBM2khxO09)HJ?=3}*R;b7)E;l^i~8-;6zGXE{?8phmaG}kxlb>@!3 zIl^6qdkts*8-+7sneP!Ua56t4T$RW?SU5hF`8DCZH0A{1USpZZ2-l5cep`6rTg>muE$HM)ZX}uIC?yKz08*i z53FGBF5IP(`3}GTe&)x7^A9o)5zfNvwUquaVdpvKSm8eBnWqYm|A+Z~;b2Fwj=x$s zFPM3gaC{r)&xQMkFz*!Z+m895a7KIPUxf=ona>IrcVKRl$nDXqBXcL=Cj9+Ss!tE$ z@J`IP3uj)*{Gf2&Rm_8gyLV-NL3nsLGyd$OZvXmT%y_9!bJ~r}ZwRZKm@|dTZ)aX8 z9C8P9f$%`#EyAS_vi}a@p@W$Z3Wp^z9~V|>%%}aln)z?xK5LlUByo95)-hip>}h1a zPS~ef>Gr$ZA3lf~-!9Vi?R5w9%fh*LGvhTM?VocG^CaQgdzq&RSK~sE`e&~2z-O43 z3wxhq{@Bl>n7UfiY2jMozlH0C+a+`Pe8RnjgO79kLBgfNV}$Xig>-q} zGI)h>sQ7z@`wQ!KVxkOl_HdSA+4D%NF@RZ!m0ATlmi~c$vZ54Bl_> z?*_L@YngsGgYP!@8G~U}-=chz3|?gLCWH4H{FA|d8th1Kncrmw_cZt}g9jS?vcaPa zo@nq~gYyjDXmGi~2Mn$^_=3Uh#1xew#@&2gGU%V-Qd**e`D}(2Di&-ncvL@KW%W5!E+5>XYjWM z`wZ?dt!4hV8T`D#X$HS*@Fxa;Z}2&Tubkd8|N9J%H27_Umm2(;!9N=Oufbhsw9Nkj zgNGYD+2Cace{OJ{!9kfV^Si;|rwooUc#^>j4c=hzZi9a|Sj}u%o+}N$)8J@Fnw%@)$hO;E@KuW$+?{iw*wP;9m`HmDRF5*BShX!6OZxV(>D9 z%MAX};C~FhYJSV|+-LA>22V10vB94jeAwW>4Zi9fBY%TmH~4LXR~Wp*;9m`Hzo2D) zw;TMD!6^pMF}T3sT?QX9__V=+*)7Y{+2ETEe#qb#4R#qk%iw&2w;Nn-@M(iX-fdal zo(A7<@QVf~89c?{_Y7Wb@OFdu8GPK}^9HwjuVwkKHTYhGhZvk_@N|Qh8eC%VUV~2> zY+u;2d{-HKm%+~(Jlf!C1}`;ui^1O+e9GXUoR;Og#^8Gme!<{mgJ&AN!r)I0{@&m} z3~sZiW%+s-{D8qP8=PwJ9D`RGyw%`62G<(=r@?{mw=8cbgL@nNfWglh9Bc3!1}`x9 zLxW2V-f!?JgM&Y4S^jPY-*50xgHsIl82q8ZWd{FXaHGNPa$A-!+~9i+e$n7D273%% zW$+gUA2ztj;L8@bEZ=PgKVz`d;F$)0Xz-T?*Bbn{!B;M6S)RKMe#zi;gBKXQ!QgKV zK4tK~!aliwyJRVsC-(&3$Mq5(c#`=Z;b`GkgtLUx44!ZBI)lp%J|dha>0J;W{wwDn zmdE8Q7QREcR`?m=&;|}aN;qD4f^fF*T;Vd|JcG9x{4KFvsmvx$zfRaId`>v{9Q$`! z#^J++Zx3M0JCwS1P-}f(TOj;*CUd!P z; z|31R?wh&#vhlKm$Po!9=^-IG2gj0q43(pfCD7-{CG=t-B6z(XzPdH5Y58-g(R{321 zUc#M(BZO}ib_qW!JYM)k;dJXh2w;4g~t)MQL0J!9pVsl zEdCG<_3v6?hwvWZVBz0|Lxe*<N-}r^02zJB7W%2Zbwz>xHX@&kENHw<_TJ)(dwL_6gr4+$4OTu<~&E zo)!)ke#OsO>_194R5)EYOxPnFF1%d0m+)rc2;n`#eT8d<`wQ0#$7gf?=Y(CtmwY7s zFMQ2KZm;|E4q-RGok#sUNH|kCN;pe6O*lt*hH#$n65#^jO~OUOUg2WlgTf`kzX_KK z+gEe>y~39ZR|@wOt`@#exK{W%;ds>cO(EAeQ@FFAU*`DTga^LD++TQ*@L=J= z!o&SMjKe1j4;6mP&#$xpJmKNOON8Tv*9kj?w+p*QaQt1upX->@g-e8|2$u=JC+rnoBU~xGUAS6!pKz`43E_I- ze}sL)o!4>weDz$OJB0rbeq6Z8$Nn$+8Gn+S)|*&As}7pS`q{xe)z1T%7YM6In3woD zoq4rzu<$3sp~5?b!-NkAcM(1&96o{5v#;m+^%CwP93gy%a9`mEh5HNJP{;PDsOuiK zCvGoXb0>4S-~U$TTZH@dVSYe3?>6RVgmdm-9x2@P0JBrLzCZI@!gaz>SL^aL2;=yr zxlDMYaFg&Z;Y{Hp!l4gx`hN=-ia*tr{vRy<-Gz(9AD=DgKYvEe)#~(k_{vP4Kgv*5k?d)G5e5J5Y_&(uk;g^K- zh2w>*gx?Zw7G5BnBU~VybvO6_$HM*ZV%{bkCjMUw50>$Nz#qR8hd(ZycNO!W!ZpG+ z2iGsNEBn*gm-;893v(yoa0%Z-xGbFg?-F)N`3DNC8`*!T@WgAF@i&EZ`dOdw`#t!3 z2b%kDW}YeR>BZr5g{$QKleNMX!rO!^g)4;Pdvp9F!ri4jzYAvzs{qbFCyc|l6CNP- z2^StHe7A6a;U|TA3BM#fR5)IEi0~W2gN5mDK2m%47JgrNknmdJ2;ptQeTDZ34--Bp z+(-CV;eNtaAm>*m>sc$|eBn!k!(_b-7mkSF_PI%TfcW1h+)>hhM7XFkhksf)SNLUN zuW*b%zRb^5;TkE=MB(uJIK52aZ1I0bI9~F{pE1=fQAJY0B(aJal5RV5sM z3FmiAxa@M~-~8dPU{*n#-!KW^M%X9e5lolIcNvGjPPkCw_Z6Nf?Sa>%bodOJzb^`V zWIV?SN8ilpjTJ8K$2?7Vywq=jaGLNkzrVC+A#ppUhRS~Wh466UD&c{`zX}f)4h*L9 zhGLiE?-6y@tnfE&`1=cZjYZd|IhpwZ;krcT=Y%Wddn_Y_tL1wvcr8W8FO%=LOcCyw z!tvh|?k(R>DG&~q@2k*vknfC~L-{tg=_~XCF47IYZZ+G!O?T??$ z{&rI_5BQRKr*O?)X8aWfUElBu<}<>%<;<-^ z*k4sLhYRO^!+fuB`FG4O2p277juoz#{L_U)C4Hz#b^h@f=+xc|g}vW0ZxpT;-YGm( z(*Hr&vxUR^gd^~`04Y7IEvN60@Ye_r*~I>L3x{IjQTV5XhvqTAChU{%vBV1JKf>)l zUby^G=J~>d<$ElPg{vQC|4qUk`F_in!euLYyzCY(na}g}kg$7;%x~c#^8F+Hbsyb+ zKKVXNJM0y--h~KXD_r#?=YOkkiF~i+Vc{kS_Ei7pgma%_juakxIhW5R>}$j97Vh7b znf`VVi4DRP!mY7YQ~WxKf4y+dj~u_BaKusO=Y+F&-X5q43ZX{C%8Hh3it8zY*@gpSe!BOE`be=d7@j z?=!W(T*kBT^}_Xy+#U}LHws4yM@aa$giF_O`dPyL)-kUZu6v%#vt2m%Mdp3NVTU>V zufoAMaQj$SaQSL};PKK?I2?)@YR?G2|9a*D!UHdG_~(Qt+Bv;s;p}HQ{M*94e&O=G zBOLY``)?2~sOJ4>k8t=<4*#2QM<25l#^o(|m*ck=_TmpVQF*%wM?+CX+*epheoy-S zMV@|LIQ|@`pDr9y%;lNp_rIUh%NFk5n*9revoB-*LOAP6=0n2Ht2q5efBf(H`wGFG zxIURzu>Uo}L*@Go{e_1f4SIqIp2oE^VJYBfzN)DeV+)Ki55bopT@Lu8KG0Z;- z7YH{BcbD?C?#$&a6aVXlbA|60cHhVKe_goOHcmf9cyJjr{Vhu^f3@ZE<_nj;#_>yq zE2KRS3s*hQ{!PNYYq)<$`c!<;g zT)66K_OBMseu?=HVXu@wxC@u3Nw}+U!5^I7J;LE#IR10OmHW7ToWeuCV|ELd9$@}| z*n98zD2wiWI0#Y%1Ox@7O7{`z(nY!;Rl0y|HpwPglI(`frcjjLs}vua2q*|rL~+qW-p;8x1zpde~8Rsj(>CLv5ae2X;7jgO;2wwgl4!?uotIZkr6}-MZJgf_?`K^HUHQ+Ci(XSXM2bFlLhDL$(TNiN$JU!#PT}?kIBybgMz0tWBjY&CHWcu zEqKjE_Mfv9hga)G=9dsWrUl~~f|q2nd~3luFK~Hu)8x1F`0EoKxtjft6x^dFV|7Uv*^DS6_;6mv zuL#cnIhRj!!HF9g#|X}p_wxD+ZWYP=QG%Dtdxf(E7uv`C4T39w&-e$yJ$5s`Cb)E4 z#t#LLS;shk8BTxm7%tz+f;Y!9ZZ3GqJ(hP1J}vzvO>lp{B@SUDR>ADnzEpLbC>1xUX}5psNjsUl77M2un|e}%>;isg>fIj zo29MY|=1utL2<-1gHMrrQfUkT1xh4~u< z=dZ?ir{GGJ86Os$P4HR4rDc6_Rq&8ztUuopd`{le%~qcCzue3E@biM(uIKQ}3a+${ zadp9S2eEuJ!97I&ZNXh?vV3pB=c+UI2tF))zu>knGe1M)r*Z!tFL;W`PZzxJKP*2_ zaI04suM~XhG~>;Jul~aLd%-=OlN#Z@YNxVe-m7J zIOF?*^9U|biSu_=_DlXFxUsbNx`Oxp$?MnVg4ZA%D*ry3JobGErwQ(Ya~HzX1Ru`H zc%k67M>suS30}U4`CA09X~X^Rkl-<$8UHG{cMHaU3x3#^akiH^Kc~AeeqM0%mW(S1 zE+X+)6O8BQRC?bKJg7O#zb$x5B;#nos~R#+6?|$o`yVYhqY?8z6kINj@gl+J>N8%W z@h3ChDtPV>9NrPZ_u4YPpz)ir{4K%9dozCeKb-%4Ftnlae?jof*BO@;d^wtNHNp4l zF@9a}>BC$q_YS@j9Ql~#PYOPli_>#K@L~C0!41K!B>#^E zZ$HQW^S;XYFMXDA5y3Yy8NVv{)W>n>paLc!StuN2%+!rLY|Qt(m1 zmj!1EULyFe;M4Ote_5(?{>#aEKyJZxv2Q{3SzPd-zT6+m2wu~i`BeoEk?(c9A^3DA zr@x)xB7ZUNEqLD*#(u%aFEbt{c)s|bEO^ZC%>PJmQ25IPPZ$5&1RuW2@<#<4BRltx7J_@jhu_gyY*QxLR#a-!Z}a1)mcTsCkfsa$#|IHK|aPa z1;_XqFBg0x$asg~B|RDcD0uEj#uo(VadCgYBly#wxIDAG#`*0sj^&>fe0c@qqJq!0 zVq8)1lF5u~3m!3-aSOo@GZ=Rf93lG^eKr5xnLkYMlx2)339csgexC?FK91{qt>6s7 zy95^(d`$56u`GXHaD?Eyf_n>&sLlCbFF3d0hJSE*Jtw%b;9`RJ?dJATRd5&K*Atxa zH<$05f_vO#+*5G#S?oVfa3N{m0|c*$P){dowEpS6as5?+_dz_y@s} zf-ef*F8G$A!G*+sPr(_RIloDQZyjVj zSaAORjHd}s-p2S-!Ns>S{#x*550}S&!8d;5_H#~f^SvzpK;z>ajQV4ax}3l5dl^43 zxYZWM6$HoN9Ejv=2=0h|62dJ6XJQ>r_#MG{b}^0@JY)mo48h4eI6Wf;m&U#w`JXEI z_*abQ3!XBN+wV%jz56rXD0qU{r|uKH`AhbnDR|dP#gCivkf#_a_U5qph3g73-w0-xYrCwRYftl$he zpI#vN@+szjA-J6E=YAvjhM)OA3+^c2Z}?mA_UX*eS)cQpr!V8@1xNH?Tt@Ker}%uX zy5J$Lng531!v`666nxLe*ey6l(vu>%+%D!172G8&hd)zrt6Yqi2re>|<<|=idKe!R zd@G*udBKBbF#cQcly?|sZNT|mbA<8pf{#miR1{o9{MQ#;c^1pJ6P)=o<97w0j$!N* z9Mg&M0KpN-j3)@5K9=!Eg71xDyh3m`sjr=aD@|tpalxnMdm5R7d+cTYZNaPNFn+or z=eNf|#)Spvk@UPQI8*AkrQqOhmhUcjb4$k2f@f}J92A^5k@0B3@naaz65L}mxBtb0 zhiqZIR&YbvU)&+M)lDAH4hfF@hUI?}ylNNYD}plwKNOs~oB7Ya&iVgT@JoU>i+l~i z#f9HY<6r0aI|;5UxToMsdpZ2Rf=_Q_oTm9N!Q;zd!P7-wohZ2Y9+v-DaA{dDE)~2= z_?rb+lk(XuxQCR-VGSST@JKMy+61-gY&!Pnn5q&yYaI%!|P{F77v;V1ri+{)XQ^AA2 zXZ*F`C98No*d_R!*b5)ku%!2_;N;t!{;PsxZZUo!c+efj+1}vt=`H1*PjI!;T)*W6 z=WNaL)dfeq%=1MH!KaF|d`H1^-{bW66r7BUcQpTb1n){?91t87`Qd^q3xA^EDYD+3 zEjUB?O9YR|;PBRIxFDzJ8^P=Gm*W3k@bt!ve-Iqmgz+zet2Jf(hv4ONxcnao&Nhp2 z9)v^d&HT4G{=$Nr*X8o5A$b0H<~I?%eGKD{g71xF>=L{N7cVKj$%0SI`sh8u`vs2| zoFV?_2yQOrwNh~J+8q8y!P{#w-Xl12HRHpAm#ks@qu}J(oS(az|M`sbqueO}K@ZPo zFAMJ2n{i#i5$`f?A$W~oDtGcfLcX8l7rZ~7XSHvFj#FSFs*HoV@3ci8Yg z8$M*iCv5n%4QJZ$6&t>3!}o1Cg4b!;wDQhv!v$@)m8=hvv%WQb74Ii}Ovo?Iyh9lmzmQNuY{*Mi}u;F)Y zIKze~+wfu=-eSYw+wgH4{>g^V+wku;{HG1yw&6!MoP+mC_4ZQIhRfM-WgD(#!wqe? zsSUqn!<}rnj}6D#aDok|+VFceJj#YA+VBh;o@2wG+3*)Oyv~NV+3;Q)K4QZ^+wcV& zzG1`nZTP9y*7ls+h6~wnaT_jY!JJyJM)4l|+_9MtxR+HiH?>cZ87s}I)zt`Qu)H_#XkpTmr33fBy-6VxOBJ- zxc+bh;0D4Cf_o3{eYnAJL*RzN4Tl>6Hxh0X+-SHlaAV=d!HtKT05=hC65M3CDR3Xa zO@*5VHyv&U+=p=gg_{XC3vM>t9Jsk~AHmIo`xtIM+yc0TaG$_^3bzPuG2CZxOW>Bm zeGaz_ZaLfvxRr2Uz^#J&5^gozS8!|K*1~-aw+?PS+y=OfaGT&Z!)<}v3bzezJKPSq zop9g4?Sk74w+C)7+&;K(;l6|W9&SI}0l0&3hu{vw9f3OvcMR@0+z)Uk;7-Dwg8LEf zC%B*CPQ#snI}7&<+&Q>k;ogDk3D*m*H{82$ec)Vh)!}Nu)r6}B_ZnPnxH@ok;p)NF zhid@W5bkxjMsRPyHHK>f*A%W9TywY+QW5#>j?KYTqn5B za9!ZK!gYh|4%Y)N63z`51s4q$1LuK@g^PoWhx5Yqh5LWic84PDVQ|CYM!=1P8wEES zZVcR5xN&g*fBXG^*M4a&P&&fpa=8O>DXzXLejkD8c(>2zNpwXg`cph+g3ps~h5=7> zni;2fd@*Jm4D@&DGX4}-EHM$TJ2BB8?TYFj^rToQ(f(9lP$j{lntGy)s}>t z=uHW7-pplYqS`Z@=y$8y68}DrH!eQPA29pYX|7mrV$c)tIC`)LY|9Kmm%V5dF*Y^P zoHLzfEpbIwm1&9IpX_p{q<8{Bd-TbEf1)cT=njSyeZZ6CPm=~dJDv?d8#&7^qTf#`U1go+RnfK!rFf&tV|FkWkHX)dktWO$-gkofD0 zisPT&pes4xr_Mq+7Bw7n1^p-t)emA*T%HWH5|u9i)iwfd)ujQG5@NiXT)@L^1LX98 zm%E(y+vvFQ!6cNl+vg2>2dEN^4+fJ_)jppqR<#s`VPAs8$WK?2JJ|*)g=k(z05Sd$ zQoxgv?Dz3tq(VZ)bEO%`1%oIpA~XzR^kNZE{K;I5Izbz-ygqX|QT1U!47mGig>9u! zd3t@S$W4qy4qH*Aj@5C><(~gC;^4EqE(a>9%A^n zO0GAyza9Yx28t`qtrC`q8Y6C^KaPJSr3O72fYAv=W+bCOgH)f!O!l&uWE6_ZgZh!E zMn`H#iC&+o+mv{Bjn`_s;yoD@WQtd!OiA>3l3n;#}^SzK9|kIZH-^jv>!NO>$F9R>27+;E780CL$4-b4`L8Sxnrxzmkl6h09N%F*XeLOlwJ)2>ruQUmUw7v07X;?c*zULR_XQm1=TY1I*$ zlRGhnYTb}vn%R${*dhi8zHzAa&AXR*zCMPHMcO`j! zs*5o4N5!UMM5lTq)hNOhD%#AbEVG&S5UY+(IxT84W~!xV$N@ zG`|;PJ_xZC0sbHtQT`YVIs#IHNtA>*Oa+)W+`(WVg=Z#>lNJAK^yFWm6YN4ihxD&lp2O}~Jx?W#A zR8TEi3yX&g3X@tiWMcy!EeMU^#}J_gSCbg}yyQas(QqFd@DK3#&g zQtMPbAKhCG*%8!_y-Dcos!=GI=ni0L2>9c@QBd1xy%*yNqSEw$1$vU8OltFh(6k{^ zplOU0N)TOy6b}umw8dZ&PI8-8Z$i))T!JY^cxCBWuO|^rPf)VQL+cVj0T22)lAaRp z#e6PAR^>Ec(wd>vQtNQ}F?7VxfQB&)IdfC@L!Z%St|V_F6k-#>=l1!{I0fB7&9=H1 zY7BN?)DUbQK??Poik7EIVmW}CHEPX@wT2i$vwXB4iW3%~+=6Tbmpjev#d?v(6+0^l zP1zet#vp?+Gp@fYIyvF-fgaQKnces1XBHsE=5V`cp8* zW594@YN147+>b(;+V=o-EXzc~=;>}(vL7{Upwtvh5P+81*G0(yEzupFfEfqcB_Wz% z)qo8^Lo@eu0)FZ$)HA3nC}AN%7xt0@qG)<0L*cO!V!YV&KtQ^Lr=JyL{2*;awH~t^ z4QdvQ=5EHS+Dzdl+W0hzn&mP1+r6ZuMkyKeLJU8u3&DqNod$}gjFC2nd?-H}Eyf#* zu3{3B{Aqm2h7LKE8k7|2(8`r8Xj~*$k6x`tS)*04D~uf|@uDE6_#oyMq)kCJ)@VTK z?;21`6#}GGx|CLF&Z>zlnKMzO*qNeKO|w_5UwKuC(CN1p6a7}p5Jl%knB+;q+QCC> zD58?)g}~w*NvCX5@Hubw-Dn?MK8{7f|9>$n*0$i+6*`V>OPy*OGqxFQ0 zfSxp(NU@0Z(lVI>6F&6=>KNP$HEO^Uhm8SGz!(=zUhGV@&<3A$K?+xeuRwZ$R`-g9 z`Og|viU%Y$^jbCvNSGIftlUayP+$^0P#iFA^h@ zqf0}3S0X`oTpaBjAttqNgW(t&I8bUZwl20WVzDEnhBBJ*FpBu7y6CqmL;0=Egr;ec z^aM;MUR9JN&kJ28fpxTagtidyQhX#Kn={&AL?q12w9wU+0wt%be(-@p<^i4e6rt*o zj-zjG$?l!8H)q-ZXX=!QVlDa}m1E^@2 zm{n(%d|_Kv8?kH@R4}ykRBBnmG4K0nv|teZ#FpFCpdSr^wsl226X7V*k=DiIapGu}eZ#f0h`a z8Ouly?eYso)8J8^1B&xtwc~T6JJGNoLgS^o zBZn6N4qj+W%;E#J6s5MPOu|C578xZ*76tnH+~g+)tMPz08Ot9BZ|L99Pt=Om5;;1) zTAw%)L&FKlRTAl9Y6HO%f+Ab%gi^1_F{UcliOvBhx%)?9v&#dn(!7icP$8w!7PP4Z zwBv$!zdr`PL}@fUVe>tZsAh-|nk?8%fr)Tv83a7EaT%I9raz&ASb$WcXbiBHlpCy& z=D{qlF9!RetP2{6H}hh>Xs2o)+>{B6fLfA|wK*dx-k4Mq?#BQuE?mgLdt8&6&x(B8wqKUL(-bjg(O}!?_Yu zj2c%>NljA5Ky0E}Q((F#VSCxVLd8n{&bk`_L)i=s-Zfmii$}!X$5Ag+LE`lRE=w!Q>|oc_p|XVMJ~K( zcPjSo^u!7kW2QsG6g6zZuw;sYvZZ!*q@*M?%%4UbnP`rQ?h}5CW3a_rIVnS;Ut;1Qb~_B_Ng<7XALj5q?MpsABMidI#MG|A7d_~7Yp}{eO?BH;#PVs;j6Y$2``njU>oIP7{uH)T@<;qCx$@x{20(l4R4Kppeua z6;^hM*nP7!>tMWBtpeGnLN)=~{laALQvFho1Nsf?CO%p&Kr1)2R$=M8>vlgn!`hyy zyeuU_1X@>^=R%^f$_<^~G!!Vhtr&=AQ?iMq<{WKTk+V%?Rsfyi^Qrwk(iRtzu}?O+Q(tgGyk{_CftH+9;8c zW~`T}`ZJ7$H=$(ApAnc-uvk>d4XU$wKCMJjF~s7`69ROm%ZFqnt|6t1#ro7*qSwP4yX>?b%t79>4-MGb)a-m10hQ$Cgwg9!XAnxaK#HI za&F78yA0$58~hv_Zr`YF|-Q%C%q8t3{Z!I7*VT zBGEIhF)pTvGD@}>kOEBfr6##BjbPUWlRJ71 z%E6hAeoK~ciirbk8$>V|VbMFm$C{lE2k=YFI{n}Xbqb$Sn`L-W$`rL>YWAcEWcvfhyP}4&_%J`m4aOI8vq?0O+--d=;(QG*{d0 zx<7-Y`!+~M7|Qy?6dlW$qSOdhFV-qlGS*5oNG6Zzo3hQ+?6FRCS=JvLMzZ zdin+HiMLprz&{xX(2guDml80ks4!^WN`xAy40^apro!07h?I;a)V58K79I#i5tP8;9P`m81*RMg|z9%GBHTa2=R|B(AS7xG=3WQM8Q1|2gsD2iZ&dI>&M+Vlb z1itOf1yXAHjV)q2-@)Vsic+{#>5`p|M&O*g%p|sC5ekYDc0_2O=%4VTALVeaBmmw>KH3LM_6tY;JTS9bPD7C5-w?7JC}L6w-!VUYO%}qv?c0 z*%cAjYF25*Di$&|GLhA>j0q>J6COoS%7FGuo%V`PQUzpw(%C3~6Ia>%={(Au96^qD-77>_g-sUR|KA!utcGf`PW7z96^?CTHUm~@>UBck@j;mYBhl7DSRqVBG}fx$NOyERLvIvzA4pkN>l>UQ z+D)_6;uBVoIK0-EUZMG8GdLn@7?7uIw3^&Z{57y6_s0U=Vr+kW}|Rz)uj`}s6*JQ&PnAFta`CKRxM|QMB6*^ zGX+&iM()-qa1$&+O>81X8203}LT2L*nLXH;RwL0s!F@(3N_}+2rMk)FmT4)}TIm!^ zCt&l+CF^H8g;N_1)C5sa(drmoyN!behPj=Gezkur_HN1;o_DQ~Yv$0ZRs-1DVv82V z5(M>DWW5+`kT1o=Kuk;iC>+b7g_=p4PNisQ+oXXa4`!%`sB)^sZtZ0CWvi3f5(ORmDW#s!vs0fm1-KcMtLdxh5JRT9Q! z6xyz)0h$Uy{X`cdY4uyFj48nwXvL&0@L8x}#Le4Nyp?S}ii-|lyNsHP#^UW=TpY2{ z3F}hI-U%ZLEG={z9Z=y&)B|hRfV#jTArf63M8%>mZ1R{wVm-Z>DOd}{;5mtg&f_JFR6m1`x`NUEA(G(jd$I;~m*gI+Al7de`*)axL zrTd64k)k=!EUC`*%mkWnHEiAl=U|k$?8uua6c^c-3yJh|?f8^QP((2Y#!;hJhY@O8 zH~ZnMXw0NKwB|V(8+w+M5`o0D@Kj}@iD~^&MPeK^>SAb!=CZ=pye(W1%q5_@sH!L} z2t^?gy#lB)87DDlS6Jp@#^b!Cq>`-^R1%$_wl$dnjQr%ctd$ul)mZ>Z;=Tv9ZM=Cjygo zJdu-eMxW@3RRav80H3@NGvI;!sj%>yjFi|{05he!W2mG|!KoW?ETaZV(@#}FQXD*h zlA>TCK;NJM(WSAIU@9&ZfyKYtb)eCS)GPKw`w%Iqu{s5Vs^lqiJ6YkvF*y443XUXB`nc^8r>tfkQ}n6{^) zUddXRVL<3cIHcxsdPnBEt1tQx-6L%h1-6l4=D8&VdCrnwlkuS64#l* z-HUff)hUV^tq>kFvKQ6-HuF9&bf$ir=QJrvqA(E*zPNEq6EaSf^iLE6}j zaH;KGwU;5k{jssCkQGC<68eRJTXgH_YSy}As}`MH&ARk(MF#^Yc^i>aZX>E9BwBO6 zHQAEv+E9$_TZpa6irhx)n#`9c$Zre2V`=p(M2lacnfqxZy&C;Ua;GGaU5)zfNs3N} z`CvR&uId&tHY2D*^L=SFJ6s|G6Du|^3JelDMO1SlLAMH^b*i6UpY{s_g8CWs%V6We zAS8nd5<|PGu3%!CI?qRpWC-bwj`paFsW1Yq0T`s+ApDCx5d4b-(7*VDeS6et6xLeM zW@wMkkMRJ?84`;wM;%5%b>EXrkd;k}+GdGXeFWRRd~b)${|pkZ@C}T)n}#T}2wIn) zQfLTKVQ~>F8m0rZcWw8@M55NkGgwSwN`C|zLy_YjWRwo|Skhle1lJG93#t>DiRHsq ztn;XFV}ocMeAhQt4&4zs_Dbl$8=LwmL0(4z;DlQd1F|m)5*5BbRxJSIlGG55#z&r% z!Y0T03RB!DD{pj4?OHh0@zus0ff>UG<%!CWHbRg~Sfe0B7Xrbyr22;%G0xEAIaD&S zAK=OHP9n~mBar6o{=ypN#lHOL$4 znJ)VhR_!TSstBz_^)Ot{Qkyq);*WWnhBK{3lC`_f_j zREb57(ixNPrv780+eoq;(L`_u5oKn0VHHZ_@*@V;6qw&Uu*zxXUluCeV5Zf1FyN;R zAIXLaM6nzKS9DYdO^Jq=K)UM4ff#P%T1Y~+$1UXafK{5C1$6{WK?qxQg=A^Y{b(lv zn+UvvqH2ojOVuiVa8sfmwBJ&$d6Q1vTeo+$=+UKfdw5ch{IIDUA?^zS4@O&5IA6O& zmQ;7aUo1(88cacdRRf1srD{7j#iz9p;;U7(PT zzsYLh5l|xwury5kisiHgl;|M;RYxwIB>FcF-6}W$r9>JIv@`^m3hjUkG0i9>{q2eBt{N6Q*b4y@$(%0^W&S^PU%ci4QH55F{)(plvR z291W@6w~>dMpbK2l^hK37NV?wb(*1s>m+niwan58AxAtK163KS_v=iuqa+D__k{~j zrOUbvrpXHxd9>TZXcA`6_JGxyq9&-y2`$BpS;se1Sl2gGMCaE?m}Qman}#iCS{jkJ z$<*kik$7*Kckzrwped?7e8a>Rx%wqSSfP2U?s|=Y?p<0L%J(QAFFs2kN6sqMgyw_ zk;aiK(~c%IvhBP`BO@F!3(+X--;wB)EV7Tp+2hb8e6Ey5p6=#>eE6uZ*W@};sIKvg{*InYgC{0oKGXut_1Bs;P9`85d<=5 zH`UTS7;m{46pRW`3{5@XX>(r_$M&nrIwCbCnlGcO^DbSGZk>whi$+sbP3bjxwX`jq zB&h4`ng{DSs7BSEVnN}NB5o&>_9Lb!c9xv)(FhyrkL`x+Ud(+=i#W8K>UK<;ciTCw zMuwcNi)s|rCXGZX|8nN5c}Bfj4Z1Xj#7+}82^gV(fiS2u;XD?~fXRc<4VqeC8Kyuc zQESJeNhH~2-IX#4BV4OI(m*2(pS79ia{O(e}93J0^L zoK=~KW^+dq*=nU|V(1N)HB=Laf~Q5ZQKpEKgSV1H>{zrwNDR8KJdmVORmw41IR&q$ z#u@{>fS`;aLURlbX@{WWtaQRy2DlT~yLkL6C8$vhI>&$WvO)K9JKPtT;RINdW zF!UxA!l4EoLgWT*B{L1{bXr`QM|Uj#9C{s5ow^-Mb4$0j58~+Q3}xwc;mC4mo)n&A zYbSx zyl>#llAVRNA|)JjdWQ_zS` zmN6PnY%Q=GW_o5zWAb8_UmvnsV`vhRdW%7bji>C)tX*BHdhFGBO+@n+_Eiy0KuVkx zFl_o+R=F_t)hwblX}15hDyJkyt;M_l5NXdPIy?ki6)=3H8ofT#<(1+EM)}}L?I1XyFiR-92 zoB3)J)RaOk!cbkAeOX%-Xkj#FmbNL)nz+d<-5RxKsc)i&(Qi3?t0D^8leAp+5~Aob zIaJp*=pnJ7kZc++gk=!7tWiMzA5>h4$uw4jf+lDiu9+Bi#O6T}2J(g;t94uW)E<=7 zO4h`Zhb1)*gt-*WCjA$7!Y~X{}U;WXOJ zC^-|t4^_oHr(;ioIoSD8^AM6nf;NaDM{zM`@kWNa7(-`BnrTU2YV}lQvhAz{RP)B3 zJ|fZBH1gnaTH_Lq+S$|gs!=pbCCA*XjI62HFmPj*Vf%S>Dp0t0kf5ntwMV*GL`_;^ z$creEHsn+;ma8EIPgJVazA{XSrZ+u=K-Oz*X8J0Z^WPy1U1C;bb)3(qndyo zs&;{08Kvl|=4!T^HK*F+Kz6QuL&0y;@js!Gb5 zQq{6l*i`?z2X1gwutLT&!#I?tiqYPDqZ>H=Jz_6j-9}`PgU@@-o;XNJZae>FV66os%*aD+mD4)2wLpCMq zxA;o)(uYtG3h`JoWHW6csr>TmSXiQ=f-nK_o3$JYS!2))UhP(xKi7>%Ie1z%93llT#?AT~YZWxI{3X>d8 zV$diluj=*!h-wH8;0+^s*G-A3@==0OsWjeDbHR!^4QIM!mMX1^nl0P^qiL!)hIE3i zcq6z(q&YeopA3qvUb|W~X%*UBsG5j+P)iteWx{DjhsXbMny=|3S<8v|niCObIH3{M zaU#}rBGz*vl9^Cwpw%6ChY^+bL1fp_NLI9L;v1%C25UKejig$2|NnIfs2r zw9JQmT|#>qk7lJ*vd&Ti0w0a2=}Zlj%JhrpLM&p?id76G3i~+KiB77CVOgi zPZ8szX;SAo4I_dw;&kC5I=Yl%zB~Z$%J?iLoic#}OQE5jE`7>XS5@Au$Ecs8Ay9!+ zBK>KxTybiSQkAT~hz^Yt$$}(|+?6pDMk}sAyo9GFd^(>?paE6INQi5mP2zc$=S@$9 zLqy6g%>QARiA^)53v!B8T9~HU{Bj+0NLZ7=x(=_L(KKz=fe6vHBvFP%;o($}LaGr| zU_@X;VXi$wiRz(S<2zpZa8JSnqUodxzi||vnvCj3nc=6d2O~l5Xn&L!mP;rr@_>?x z_hU|$cY=_FG+LjSC=jKu_OLj={H1m{wJ4M5I|%9_a+Ml2rQ$(IJXZ^?gbb;oT(R_B z5d1~Cp~a9GN|xTyQVG)nvP|(LgtdrC(X%L6QWRk0h7vs;i`VVVkK+@R$FB6B_{foZ zAzxddvTCHZc}+Js?F-aUKJQFmB_47+uSzs-iC4jROqa?TU>Mfo3-9B962j1J1Z#-{ z99|8g!qJs@JCs+9#`057o1KKnF*q|-8Efg1PUJAsNP;E}8&aPqBn%UkgP_F`EYZz^ z7Lp-_5!EiGlORRDXaLq$)w-;jvNZkfNmK;lAd4(HP-{6-p#nI_LI;pVxgNW1ZT@6B z(&Z?RlsVFoHjXb^57+!|+7pOW*f7|(NH8Fd?fU|Tlp`ao4{jrBmqD|0;h>Oi=QvQT z&J2{SGXolyGXq+dGXt8IGlR6PFdX#0Fr2WNC(SF2pRn1l9yb4Elf zP*<@?ps1|`>bw>S6s(ni^0X3Aj8+0QAsZzmt)!^iWI|F)3c5`uB)!xmX!n3O)ASOy zlMtJogy`%f#AhcVLN!N_mAxLije@{!6ohS~P-|yJ5!$XEke!5(G?KpGW*1hVQhBUIdnrSJk3auA&1OKA`P06J%dKwn6qrqr~}(+)OGDN>a=zm4Ow=Y z8m&TzG*E>QowA~arw~b}%&0+$C9Qjb_Of&08c{oOjq-Hj8i`R{r6W_PaE#Z+HR2_W z)9!e)l~$O`mA77kvoJDDn`N zQPd$UqliOTM$v|_j3NzT8ATbwGKw&SWfWZq%T#2cyeAda6AHvM-Gzo}6bWr6V#i$n zypX*PocTt)&U~XbocaG({6@W)zrk5dC=t3`DN*Uq+8f?PF$ybVgrgl=nm&-@nC>Ub z{jcGfYYh*6MEL{G@ftNqVkESP>&ZVMYFjv>1&lY$!(C3M*nX zv9Kc6mgZP4#=sOd6w?3|Ud9-x!pr;*1#B9)C>--Al0@f@#2w3yzAYjd;gMc-c4g&vYHmyz5Ap~o~bP%vL zOD73yqjZw^KMT{=AaQ~LvtPCXajLISzBPtWzO}YO`PRw`}$m zsH0R!t{tU9a_%Si|GD^X1eB{*LB|=z6Zg5$E?3SDwKnTn5g=1_!2{XPV z>KMe6<&5x@zHEFR%AS5l_W$AAs0v5lMjbe^jly?i8>Oyk-p<=JPFy41PFy3|PFy3^ zPFy3=PFy3+x|yJ3t!p-f2GdBfgHI#D4ooAx4ooAt4$LQ}*67#{K8-QXfoZ5Y4os7Z zWBQhqy)lNcjN%Dl8HE$VGKwaIWfV*Z%P5u*mQg4nETc$5SVn<_uuR2)mmosM5M$hQ z;u?kG#5KyriE9*%+Rrw=Y-z6wN462OBio4Dk^O(fZB&h;Z=-tDF_k(pavm9+`9|8E z`9|WM`9|uU`9|`c`Ttk?jW*`&-)Lyge518F^G!`IjDXSVpj*?$BR-eIBaOy*^}om% zB^^E-qqM`z7$qKF#whjhGDgXpzT9bV?;$KB7a=SpKCHdB92i1)A_cVi4#xNYDGz803~GiggPLK>pr(`oe{jjt{mdkZ(@c`c%p{4$OmYZb%GN9; zg=!{AX_`q=jAjz)0o3p;G$}gs4Iw>a%3Kn+Sfk^uBxUdo6J{$_eRPv8S*#2)F0j$X z;02otG@j8!pnD0&LaByhp>&1CRv=E{**QjVc24-vP-S7_LCuBXpaR2iP>*3as7_V% zbX`g>7e%pLhx$KR$YVHP$YeMcav6?=Y=&bYpW#@@XgHQMTv)DHE*$AOqvq<&luqW% zl3=R;3A8cE;Z_@WV#L!25!ROMyV${K_|*(g&4n1F>Z~84F8H{t51YVU(}{| z&(&kKQFLuehQ}OBQZa7%-8!&lzuNnqrFugX@z1z0@~ zOhSU_io83qN-zr7u@I|qvleOOPdXt;4h=jGL%YQvSyACNd zV&c=ma?xL-QTXa(jR;WPo+5&L_(~(;GAXXrpfcpn4T+GMFhAs^@=aefOT_KYq*UDV z(dHmr^~6mdx(ftx>S4r%wS|0JOd*^qVIie%tEyM+>6nQKu`uews~wP+rHpnFTKUqJ zH)&Y3aHtkabQ=88IIkXaX90rreM?4s*Vs>2$oZZzF5u!D5;{a)@!2gfDXTCLjzJF8 z*Pmi>D-20Q+2VU<)CcIZVWeu%M>B*Mk1u%Qt6j-<9(j~|=7Dq-4DY0yz4OtSwzfoD zp!$P(n+jj~!TCNV77uCQzAnAE@C5I$X-TR=g@KsyR6&dJs+^NlJB7l}ZbM2MyzLtm!B2Af>3*jcC+65~=t=1Nd5O5^_0w z8={;%{-$S|i@}j)Di0GsOy*1ydb~97s9c(v=E5}7O@)Z-;$b)_UNgriC`1#&Kp{EN zRB1UfsMyR5t&q$#BT6$BO_AG}+#{v7$pra)kW{-2Pnwi@%%T>pFxLp)|5HO5sLDhz z1gn;%s#*C`b*#5(bHKGQN~n)jS<;XKCCDj0BJ(Jz`4Yq}PK}@R0HIeKmgvPmb;$xA zk!yPPPo6;(BtxQlomNQnB!9FwnQq(bemp_CnQahQ^#RrgYArz;0VSr7@$vy3?yCI8 z5*k_%uYB{A9^+2J))I9JklnGdY%k7_P^htlsa{N%7|Za@1rw20QSx4eP-!Su9W5S{ zq#6xj6mNu0d#h4D+Pff8NHm_!!7Kbh_1PDsLLCUe2vxY7Wz&AZqws69CQ3C znfQ1yJtC}0;?W88Q7b{6x@aERQxux6pD$XgVn+(`bb}h+OgSM^x`a-dVC;%hP4;&~a>T(n#%MT3S_$Qg=-e6lT+hN;s+ z4EphvSTt}4qFt1BFDTKvzM|zzBM?)~-#80M#-%Lk2fE5mk8h?x6G_6y$_*;wH9*jf zd*Xys68Z5Md@7b+Ji_NZ=%bhz&~e=*hTnCElzO#EOM`|HhWbVmg^G-s*aS^n^~El2 z7M4Yo*1%A`{I&wk=$Mdotozs0B}%XM8}Bnn`_aCl<m3X|kBH`2HD|$Mq;Zua_eHCgz))p#BRaHt# z0zdgca*9NEyS-4)WNf$4=sSMuGwm!YkAksoCQ2TyU{mR(D|IVhS5s9mHl8XXL~Bv^ zs?>Q68x7Q4I9TaVtni7t114k9aWt%EDtq@7OyS6sP9M|Mf0MGR=$4j)#Y})6cu?(x zfix1l`(Swqq6!}9NORFU6X;lo#F>vi#giEQDqZ`p z5i#kDtT6?L)~tV_>)k#-)c9<9RGvo9dm4AR^IL)Ht@dqSP<3Ej`zlR7Df@ZJEkko; z%aX6(t&INbw>|asgI7nzPJ8n|XO=E`?dcrP{9*0SADv1q@aA6!mJdHRKebytZ+?L`^)|+pJ=kOSy5DMlH!E>N+0G5d&a3g(#;*&$ zF!0|&pKluNaYeTOE2&QNr6;RQczNlpI{SLv`Dp3yi}$Y2`gPQh!d1(EId|5u+5NLM z>@xYvpo6aCn@a9m@nV*;jh0_(oUrxPb)JJ8qDEFJa$=C*?O%Db*E?a}@X;%e^AzrweZ99xmrqJ3 zG;8(oXOk|D8qh0Ze$MrWsy=l0Jm2|hpNPPkBfTaK*|cFttCnNm+OX)~O=))r%sJIz z#2Yuq=W9LfSmyA|nq_D0Ix}ulY>Vwxs&3vf+4D-T=UQj2ym$ZeUB7?1R@e3=BiF8s zjczq{{`pDy-_MgTZS$Ws%PmX)==6^06_>wv{amulPtA^27?%0rrK~+K`UdQ}z9{?N z27gTI_TBWn8*?o=>f1D{$~Y@ej0-fB6p{EPRN z&Ggkw+uix}`CMPr9(N&cM7~0A{BSp+bDxi={*her{jJgC-rAeJ)}(Y3%Tw42m$-NeXW{%ZWfW&eUoL1(o2~R&P{%~RLLHUnpG^;^cRiu!u~txKi0{Ijm;3;PZ>|F-Y6G|!$o zRikPz{di-YMgNZ4_spjHhhNw+|7`QQQJGoRjl2F%(}Gnd7ysnTUeoTDD1B*L)e3#{ z_Ai&brC*6d9>6A z`LEBu*7DIW)my#s_3?)d{<(fKVe-rY3(jPpKl}WO)jt)g8R-5?u|}<@_bju&@}b|W z=S)91YxlFye&3RxhGNaAaV;9$y&Fjn9nzwb|!SCgrJoDPQt1YW1oiF%e`sU;#_j;Vz)aSG4 zd4GK{vhzEQX0+*5>DZTL)<4?%-w~caindz)=Ju@bzw*j~+j%RM-{JBsJ^oI@x^7*Z00{_xZe2k*_DV3k-U{ z_vLCw0u>uAXj|dNH&?%|*~T@t;m>c>o7QP*f$F6;&n*_;pm-tI(C3%NHp-Tm*)?nV zP3IncwX|!8$W=q~^?IgvuX*{Kukg1TFnIAVdpj)bcJSM$+n?-JWqPinTVtMU@m65% zGc6jnJo@eWZ?As5`RP?9PSjl$`E%yHORH)Q&i5Zz)b^|O{)vn^)wI~ecmJ4D;jbq3 zst^BY!~PjL&o*w89C3T_3wYX zCoeW`HOzDRg;y@WHDf>*SMPJV#zrQ(n*P4B{Ee)Y$7L^f)N^f6X54LGr|;W;+UHj0 zwKs=EUu}}HXT`|M6?Q-WZT;4{GyKb9;<1m|`gZe}pIS{Wy7yeU-M)yT=}|vS$yToQ zy@Ub3P5QI_m9I^0B4^J(R_+jH%oalU5bBKHms_y76q_~@pwUyMJ! zVZqQWM^3&xtM{ZucelOJr+UW2Hd_-fHOaC(F>6x37v4yHvGG3xKUj3SX0zC)?1 zi~N04uJ3Gr&|kH1TBVWKk}nskI%>qBAqxTvAIxYoZCC2l(pk1`DqTPS>9=!Sizzc} z!L5Hv?*H@XqlZQMys&;w-l0p&t&3V$?e5fnzj}Or-Cx_Ic9+Ss?dL12OT3n=LBBG? z_Eef0S=oEARLuIX|B0@9CwKjtFMm9IL~zcO1I^pjzuKwfqv>U8r}Z9j^xEW)KFTPU zty$Hjv);*CINj#{`tM54mR9yU5>%TaW&6OwU0hP7Ekq|K+WnT%}7Mdi}Kza|izY`lrkd zi#snIHKx&!kNdlRn_Oth@mHVgJNiP`l&$5~&72fyc_e#gx2yTy-0m4!`k%_d3hj4x zZ&J#2dswjsAME|H_~)~?zg@ZZv3gUNbnFa+m*V^=nn?oT)Zp*Vava?`~iDvVY}Yc|Yp;(bT`H|G9sL zD{^d>Lpkq_FZ$Ps56T>xH2m+MB43Vs(7JV0znB#z-~Fm))!rYUyZ%bKSKoMHOsV6U zaZ`6a*D1@E{*SNRoF2P-PPe*U`#-;|O7TABS9E;6<%T1DA71{?@FPWcZu(-!oKaaH z7O4|I`{gR`E+gjt`qzw>u@l}|m@%%={ZeyIba}eo{IcT;R%+a)%&M8W{>(kTM9z&b zjn6S8Vepa`ONunhy7bFYCf;Z}q+q-|NPSAuHNc+rMvM!yi}Yy;SCKmYy#k zditqHftKapU3F~Yl6+a;%$fa_StFurRUC4*$>chd`KeIq>AksgzudZ7 znO2u}jSL#7Z56knQPVA*& zS(`2nygDy)XN`Yu#ucwMwBY-%zPG&S^1-PU=MLzbZ_3-9S0y(sUw?DG3vqig|EZC6 zxTndrmrtZu>Rx2?&l|k&4I0(t%Gp&v?dZPmWSzB>M|XRDabEA?1}{F-E#|EQf4sW1 zW9fTm?j+VO`NIA9^`C6IJ}$9O)1TLtuhzPC?8hxmW`0>DTa%bV6(UAN4M-?dWA~_m zPZwNpqH4C9ht_+^SgnN|_wlX8rc^nv|C}kBP`=ye%_o&Uc4$?cCX@ zdY#BEe_i^m(VefR@2{OOtMs@=hqn#+>)UoqD^^&(dGEOHS5|cVq`;S+UGqu~x_fbX z`#-L&z8xD`c5K|W)^&2Vp2HuoqJ_3q$L-kbkvjj|IGj9Cv(=N*`P z>coG}7jHlP=R)>oia3eT${WI6@-+nf@E2Utme(zSgccsl|o?|Z+o;R#; z><0zbx9py`O!+pa|17_6|L3O$_L|+X`SBwkv>bHe&BReH_RJZZXLYeFZ8oNKnB8q! zt3maKRLSU?W9@|=Z9eUJphE7|J)b&sa$De+qDxA)K3wu{w>-BOAKueu#QumZbMyR^ z9M$Kozlu-%pzp0m+ooN6DQD9?FK_+vuWE;GF1yj?;;G61M%{R-S-aSuN4)d6^tuU0 zYWFI5WYEX2Z7g4G=#Ca=j_sdU;KJb_i~RCy`IqX|Epu~l@jM!8t=iv>%ez|ggmQ!CHo9^9LY|7sEULXHn#Pk-ou19q( zR&i*)>Wdb?cJuu=7rotf(|h^;jND%3tz}yyv(N9kuzk##*>#>Cn)Jb6C%^9guxGiV z7wf0wi;rLP;Lg4UvCCsq?&r+@%j18icker?T|}V+W4AXOTC&aB;#rTM8@u#W@x`-x z_`1!SS3Y89rTK?E-?u8dC#}@(hT~i#*Cv&|G39zf(F?;~tRC}^clgKUU%9y``I@>{ch{X z<7Zso=E>Yy{)Hx0KOJBGaNbpa=ju`E=VyJ3svm3l&V!%hsf>kCwweYnC zPkom9U1of<;S1}1zv|-`_m-~(+uK8_Q&cO34 z;?g(mikS4W|MsqDdp>+>Q>h~@vnDRx{$sIDt}RhTK8~9G+NjyzrH`yqC4J2OHOCen zp0;7-Q@@N}H+K08D=$5K;m+RH^LF1n`|meBcMtZQX*;0ei8CiVjjz`8jY&yA4v$%{*yEBtTc!m-CU?kn`(ybF;Pf5}^*&Wzc< z(F2p$cd7R{ro*+GU6bBw{_g9WFLo&Y+2fD$EMJp;{?A<_2JEi3`bfq5pQlZ)6#rUu zhx^Z++_t{VPleiCj!QZBd%sHckB%I5sZd1qd_`{z>$zd!=e6b>d3$cw693FESaoK< zXKySY@i>2%tXoelsd4w$jH}*-b2GA*K6`!cq=@=2Y$?8`TH#(t2DZ!g*{Sy+F$JMqTh9Ol=p~GUV5VeSgnW_UCyo_8)g|X`h$@OFoWU_`{68N4jpk zQK00CeP6cB`r^bq!-u~8Y|GzD^)Gel)U;B2TKfLp9vpn**X3<@b!wFV+l(2%x0>?q z)Cn`IPU&9uVa}|L-7TMfcIn!8OFUi2x9CUjsP)~}epBP@@GR^98nr%qYJpv^7x?z6 zwre`i`>o&4C;H`Y_i=~*>wj;2ZhD=m^aQmuFJ-7e;e($bb(Y;-^ z>n~x-HETB=yYStjf7GI`ka6E^~aSu z?&|Q}zIt(2eZMuScmDEAJvWtEcd1tXgFh77UaRuTceA|Nw0X%5GY_mBHFj#=r9U@5 zT`X|%#FU!(D&F{a&#TSOKRdm|-byX9K8op|>$iJzrcG&fq*&M6)4ER{U=bAryXhNQG*;`ic)^_B&2;Zn;mu|be7aRLR z!z&-w?U=3U%(=%)e;8He$c1OxCiS_SGHl)H7Q>dle&fG`*X1oAm)w0|?=~ZDlo`A1 z*qM8ehL_y7w8M={_lo}0DRRkcAD&tF;7-mgTWe=OczN5JdA~O7nh_J~mLCjT zTJ3i0oafqAK1G-(0ri$oZ7VO(vwr4$REAI{2q3YR!rHXy{MUkTAk92I=aNf!hOR6sa z{_6$(Jn^}gzEpnigcgq~&Av77!m}H1{JZ+?1s&g6+`Gb4uBRrJt61T;CbRCx{gia4 z?eAaY^5<;5a{pg9d<7~U$=9UId{=7rMMsByocng8f;YG1&f2NSAN;L!Qltp+=m8cRv21){Do1yQ{TLndgFTk-(@?RDBbnZ*Fzd3$k*PXhTN_;-Cdg(9E z{m^yPfL&KE9vky*x$M_=6!(6-X?t`qZgk@&pPuf#aNvXX>8s|IjjMF7_?p%evz$*T z65oCLN3mTNG_AC#Z_l}<=2za3yXVbE=Pm`xkNB%V+X`jIW^8TpAlsnNicOkQby2Gd zbF<~y_g3qHF+(2h8{O}4+m_Q-ZO(q@Qr~AsM>ov&dAVMFcFtb^-IVuVJ<_en>AsPR zvNvpUYV4Ml4}Lpv_|*Z&e#yIN%E{3&8U7;en{7X{xj>t*C(elNA1s@D^MSTy+kbIy z&cssD5!*^Niy!;Uo6~cCk~VAQ_pRd>e^s;Ey`gQ!w%*rq#)^pS9~23$y09`a_0jJo zuh01AaBAVIy$}3aqtL*NFY-3*)w;*QKRb3mdF=U%!#`ZQx`p?^iowfQ_weueJ$8Gx zlShsuJk_Dc(~k$O88l$zPg};f8e93Z)~!E#=zXXDxZbLX!gIIU|FHPsxctcSY8BhU1Now&hf6XjHGi<{ zcW@W@d*64Kn5Cxcr;Sc4)Z{LES=P5X&TI|SzPj~+_}anleoEaJutfVpf#0Hq_bq+> zZI8bF)IE7`nB=Ex-Y>;;igx=lico6)VAr3zwP@;t3C0^6nGgQ&Ex(|6FI4FSN3@I0 zN=Hl0n<8Aiw01v#N>t)a^_{tk+Wr-;_$r(8(w(_0?eg?=Pk#0I1#d;OKgV75emtl8 z_@sOP8?WpZF8sZqvNlRq;;G}}{HfL{&L@x0wyCy}eI2|h_Mcy-*AZuv%`U;>*3Q0j z0w!@D_OJ>6H+?%3f2{qvgQs4NELi`8S26V1x{a^* zcFM5nN?r7Om>&P<2;Vj*q57~@F8T=%E(?|ISiSi00e=4#e=k{V_4sD05!4`f>{Q!F z*XccBp0B6>;oQBD_gDD^zBd;v#3c@|OWHbmgAq+Ub8n?Yi;jS?Uf%|(jSRV<0&(H zzk27E?UqiDR-5eLQ`BdCR(y)B;a?)-;XbKHnO*yAUp$+Akm>wirvHoIM$YMgv_-gtj`l)-g@k6(kbHz&F zee83%vaIez*#7rVcyq5k{?idAcjNJdmLsOB`oG)eN}2Rma+Ewws&|xn$yfGBN%w(k zUY#yyX>|3~jfyWkXIniA4p6;A$KPGhri$TOTVvaOniKjzd&?? zF?Y0RwfUKw9%a)f__1~5nd$F}EV~w)BYXDRikXMz-exsi8*lo4+w}^i53M%g+Zy(5 z{j+cP^8=gyus%Iq@M)=j-KTS|7E6;Vd6t}4xf-(SUBnF8fSIZrFO+nj`&M`Lf{`S5 zGUKxZ)73%D#%HfYZ`v|7xh}UX;n}^3&%WN667%n?^LyK7wI>FTjQ)O~>S|ffYiawV zP3LS`)cVic)GU=&n6VzUF?_quN@h+qznRU1k1=Ymn7vIKoj7~;tr3lvZvC_A`=Ywv z-5=kcn3FfpWa00-tEzZ*BsTEHe^TdraqoU?_`>?NJPEZ$NqrlGIj>%OFLKq|{Gjif zdvz=QYj5{uzE3Mob*S3oW-HvYUH1K7@8*LIyB~Q@+Ba{_r)zIzHZ7E5cC&x9ZJA68 Ncid)Ko?{ve3;+v9$-Dpn diff --git a/lang/dist/platform/elc-asan b/lang/dist/platform/elc-asan deleted file mode 100755 index 8b4727a6229ff0bb7bce3689ab2c3276c72da30d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 705496 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

    -;O`C*H&o0jXcDMY^pb225rgjO{6P>
    zzWRl}{K|QtWBA=E^$ET>gZNlE>7G-(vM)e>cTfg|T`Kb1A^G#1S!vFY;rss~&MxHc
    z@r;lC2z(p+L7_{Up9-Bv$@`;}o9=go<~BF&gxIqgY44M?#9u=CrNkWpZ{HL;4?Fxc
    zDVntXhbdz(-?#Cd_(C(hjsC){j|y)aCdBq+&|d_7`aSeP#-1&trL6jkEH}aDCh|GJ
    zb7qv@XDRJW=EI`%dicJZbR#^UiJbxKgz*QH@QXZWeq(&B>@<8=X*PT&_TQwzMx<=~
    z3g0_X;a?6vS#dT@jJ?(^4R;N}v+~)uaSU(V8FaK;n(I^=X`A++>{ando7{*Dc%Di+
    z+3)ZZe*O3y$~oe->p5dyzMD44dvptBNjy_8Guz;|h_BipaRNLyQ5S7odFC9ec%q*p
    z3p=d#IA>oUho=X?KE~cRp4~pTin3ViNy<1kP5eVToH@&@D~V5->|y&^gY&#wl~ZY~
    z=58JKIyMshtisrfKbv>e2Y@N(bbQ>sQ!78M`^$k+Pty0WIaniNpEi6v5KLZc^TA&H
    zt9ch0NFJQ{*Tu#NZ%0*KR(-C@AMYb|S{aYNNnX>^d8WjM>TtQ2cZhygG&!Shki3Kc
    z@9-jWyIHGI>wv}R(eydR#Xs7ynP2~xi@zm%
    zL*zVJ@y+@NFw~kI>pL%LfBwUq>nQ!MeMa|TpFXGC=d5qb*lx!2n{?beW$hjRio@+g
    z+YYx3WgUGHXXq~MnhDO6q?fVWxj)qMt-z09v+jFZ+w=QY{Ko{RZpvPQV(MmV`+_!q
    zsJN^Zyw(<;*%!s$khWHf$MPPIuc+{qm7l-D2V=M4NBLlAenxcXN6Psl@$^^tYkbM@
    zgujL>BX2IAkO?vje0kv9z(t;c9lqkSPG9l+9L$arYYUX`N0>TFbsZm#8G*qJj{9N^V-~&{OIOJW#Kcy+~-w`XTSn
    zWV5SE9-=kQVH`(X=Xe>?uf;?E3D;I51320|re`zk(>!b3(*
    zp5&e(>u#YI%O|--Xw1)%r}#wT04#KA<~!+gEPRiB*1bgSmhW*pzQ?}m
    z9C@qm`hty9F^9a(>5_gfm8T0b@^m42x-eBYd;_dJ%^^>>X2;_D92?6=Jo41>o;RK?
    zPaWrFO!B7mr~WB_u|)s!c!w{$U)l-22Q8eA_d@Z`^Ll>39C*Jfr(S7!qTfq)yhop>
    z{iqY~q}t+!vvTQ`7iej@;3+SzwMrfb!XQBjVbgx
    zM+K7|zj&xRF!6_t^!fCOoL56VP&h+8oVCQK1@cLk8yKGtWPewcTu8hI9|Nmp+H~EsWQC+;@SQI{M`6g{cY!Bkor)*S160W6I|5Bzx$o3(1lYabD|jfVIT4@-B86
    z)_0S|*Q(#RpK#=S|I}fQO{5On*%EAL6Nc+|Y-q3ZT#v0s&Pd7AxNVai|mCQ}DO^r=$T
    za&Lk5#fposa;xznp}fRCSV#RCbRK&t?_T=u1JIPSQdK<~
    zN*wC^Sm~drL)3>fKg^em4Ul+p-=fqRV*`}BQw86Z{C2yqnz*K}_=!XPjtfuu>d00p
    zn_k`5w$tt3Md|&`ZmXV*82aJr3H?jndV>A?mJeG`@L}_Jtb3UJseVuL7?!>zqn?at
    z#_#T9)f4&+?B5aW-%8Gu6IhewTb}t@&@V)vQ1=!vK60Y)tN&dg>r18BIZL}F
    zZ$<}@K5D7%qyAC8qf5xxy`M4NvCmz`d%BLWIg5^vO+VNhzhy|W6!~bC@;g_cLkoHSc_OkYcZE`oW=my;|`2H0eqh*1@P&&TYQY8;P
    z(FHPe`__t~Df$%)+Vbi4Yc2Y+mh0;FmW*UC^vBib=iBtPKA$Nc(VOgj(ut3t$KPPn
    zM~_l-R<$1M$ft_BVeHMazdB8KXI^2-TFnE{xw4gmoTqq|#z|P~v8J9Wn>+PxsoHlh
    z^-HkP)1+)Nb@-34KHJ}5`cit@56Wc?;uh90ojV0G^>;awQO;dFfu6Vj1I|}OPfYM^
    z#uIr?z>__m$h+i4)@e_o6aFvvp4d8mdjFidlNp*n_n)MHma$95rrn=%)++6Byg~QH
    zMhB!1GI#o@Hf@jPtX3FvGqd0m2I<2JpJo-x={WSX;
    zl1m2SgIX0#UV~0h%XcsOfz%5*S4+k)wXVpxRZu?|M|{$JX#Ie=#q|H8OZrDx`awg`
    z8JqPS!PX&Lq`dnT(hqv3>jzhVf;~}SsQNcW-HV}ohS`g7(<1K7SWEp!@8QhPxTJ_4EOeo$vW_G
    zZ?9M_^=^2`ACvX|xAEa>Sd@Nu#?{FE+sOZ_khwdfa;xlB>El(ppgX6D5T}^9jOocf
    z#FhDue7m4d%{vavT(tA-Ozz0tD&fuQ4DV#0-Og{x^NxPl=cL@n(epqRGLK3;uUEhC
    z)OT}uoxL9+ugsOkSE4Vv^Q4fTbF9|&1=^xdIzHRpGhfwy$xEhFr*~4fcW}QPeUv(f
    zycz#X^r0f^^>^9l)(^RgPr01&F8{fjTKvt~|_{
    z1m?Xun0!~B7f?p;2IFC9_kpg|?`VlfWSA7+VX4C<&{y;Ee)yv>CoeAcI`ij%`i=W1
    zd!;VlKTYtF(~=^1fbOTEUk8pnOWpmH#;e=Lx){%Q_Y1~Xf?W@Gqy+gclD>sAo1p(A
    z@Ef526Yv|L|5NDSy<4^Q_)6Lk?IpP~bZ_NZ(GLA&3X@*oWCvnCD7MI2NGRB
    zfzGGS-Z$x>oj@l_OUJvUJBeLZ^d|A!_zk+`e`ANM6CH}*bL*z#W9IGV|7Pr(M(4Uk
    z_=a9Coy+AlL+2`@FS`G|biFH|Za3j$;*11maVAa{pB(0o-?aT~(sV#yFMAAr#@}&F*W8|^+WD8O31s>0Uz+NZ%Ti&$JX`M*vfrWcT?YL`KH=C{biVOQ|W&)
    z-lyq*JyT;VVJiLuw3)Te*eZTXa`*C8&Fp_%r1d|>!Gii9V|fYfBbWV;_MR-EovGhC
    z{R@T~Ki8+`^u@a^+s}U5nC9Js&GS>#?b^MbWOy(6d&-l%R`&Q2=Th2{*>fen{Nl5-
    zMShEq?ht=|v7wJ3t+d(Nos8eKbJ4Z5&C%SGl=Rad(ElWxChGBRqKt1n-0`iHdLKqs
    z5&DaAEwXDIxg`2)RoToCVROO*b~N>{#tOQzlM)DnI|=k
    z*Zho6A8$t)e)x_a6pxN?j(?T9BR)`S>_sOMe?yly`~Wu_8_7<1qmR$Z8{ZFT-q<4*
    zSNWapj9FtMW!I@XBfJQY@b)@9N}QKu{q=jE$qD)WvUhS5XPPvX@rQocv`yDF`fNE*
    zTXb2oKf>?DM#I>2zsV0}8YP~}1Gtb^2Y;WN
    z?EkZ8bx_}Tq~19@I14_`{_nW|66A@z)bj}L_R{|As?HG};9G=n
    zNgI{-D~=8gT<#f2{Zr@CL>ZUG}HE7^@hcH=GCVFz=|zX92e&mlX$UvFerL%eY*
    zUBc*ost%z4F^`MCr01c`x#A)_v2)9KsNztL)RS14@^7Y|sBhASc7i>^b4K)cIqOFG
    zqi*826y9YVwskG^yjD|hXTi@%hwp4_QMH8iH@r)~Rw}fe^&!C&87bNH19zY$n{k$G
    z#(^==!N{~T)$;v+M(cJY*3?Z#^`{=KTNFdWI?^U5<8Lx=qTaSNFPmMbwXIV=XovMINGg;01FWGSH
    z;1%>Ai^wZugnt0%3~Xa;-lFrggM4fWsQ_luPdM}0t*U>m@~HEh+;Mxa)xYkgf1Q=1f93ll@HkxN{X)A+`s?6i_5!Oj(V}1|
    z`t%24|8ePWv*>Swet8c1d|#*Oi|&Bl8y^FGzqh1njM2X&pE72V?{>y4xrh9&k;qMC
    zGlH`zkk|M4E;bhNGH*IG~MCM)8&vSN%DJBgc@Mk_Cktfp&OfuUqI8v11x{Y4i2MbIzHL7(rRGO`+ttfps?6&OlZM@rWO+Gn-zTr{kwB$u>4!w{UxbLg1y{14C-diHqUSK1YE3XSJ}+P}=l6+eF~3L3d)n~?dz9onXJoa1x2&W7rQ%h8ByydMIs1Gme=Gc_+hk9Q#P=6_
    z1~Q)=ApTZQ>N$sm-Jvmn!Elhz-tr=F6`>O`gQYC$>4_tMw6?U&!4L=zJO%yB%xVnPseS@nKcC*Jr`K
    zp82}Q75)^(Oig!B1S-ou=Q&YOI#kHPFqJ)iu}-Onz9y?ij1)j_7a>-y*Np
    zio4pVqo0=Nsr;p62rhQata%xx^D-(+UPc9zU$gUq&#IJ>*fTR}nY!PJ{Zo}Uw$g5S
    zz=runn;y2#-(x4;0!^7;OCRs&u1=}*oxL?3Y^dGnU>{v&WPy!Td{EIbRDXSLT{ZiJ
    z=U^x8q58q$=sV}z#Xq!!KBdU%Qv%cl%0Hp|7s->D*o{Q
    zl(-$#73tgl8o$$DX?h9j3}gJ{bL*<8D@Be?J>zak@$ET9UH=VrP~8nleHFW>*zUzf
    zznk(FJN;qCc-ixr^Ik}6KQ;3GhW{M%FXq#JHUFBxne=MD)$&c+y!d0u++WSPL_bZNb6LJ*gsJ%GyHRx9`f=!M=%!*9yb2v?B|4_^
    zQ$WuwIOiJ4T*=#gFZE_Qld$=QnE(01UCKv6^t=Tg<*ShJbbVjpqm#LNs+rHsAP?vn
    z&v>{C`(4S`Eb?&k|2ZaS$BG}qW^)c4e9L@C&c^w;y6P-lAH?3|=ZuL~eV>Z>E`&$&
    z4SiJV$utjhV6e)uOMafZE9ZsE-gRjgj=y2?Tf>cQbGp#-ocWHiZSpR>tGq%}=9Fg7
    zwE9*>ICHLWIcKjTuK@BIbMCR1*Gn_{*UOadwwr!-
    z4}GurCl%@||G->9`ft(2l%IT0{D~N|W&RUjyx7N?Lk^vxy6?37+uXi$Vb`x*I-ENr
    z{%iD~lD7`6ABoHy4Ds2&q$@B&eBG_Hf($KmtCw6_auHscc5Ge|cxOS+lCI9iy_OM<*CyrC0lwq%JTvD{RJRl^^tlZrJDtMRr=o=}yLO_db~3
    zVD?F+`zUu$|8cmUAGqW7ZRmG3`{;KHj@h#QEn~IpAKH!Hc8c-)H_%xGul87-b{;}Y
    z@hkLU&zN=MR_@Yb&e>-At;f;p{uv!l&MuI>?)$jYD^ni3xTEVu&37yN*k#}QG^KBe
    zUncw3eb)V4ZhM;3^{kzSed;O=I-~6G-RHCRy1Qv^?fQ<9&-ax+gI>$Lwa6I<6gKa&
    zXSd^DQ}TD~@V|2Yq)Gp@lV0k+-?Q2Xr#!e_zHq;)N{r0%P^AbdzXxu+@g
    zA@~@n`M{TheROhW+`=v|>xNESf-m?fV(+#O9rRO*-ca%-b8yd@t1P~Ll7+7;Wt^Zq
    z_Y+^}$~d$S8Hw+-IkQ6cEOXYF+eQ+%S$l48W6$jqw8t!d)+hM>X;T)DJG!alyBQsE
    z#D*R*m3Om#A#*-tj&11^a^{_qdHaI4#5AwFW|)}9x@TW!&G6T(=kH)V5PIGo8>$CO
    zz8T+I8PCRO-B7|F%93aNdQ_gpt|0rQJHBP*?RqP3*ORwz<;WY~&#~`F#`47WRNkJN
    zB=>I3={m7h>NkDA(WbXL^F85T>Y3P1gV7tLZORK)*gk-<4xMa~31V707X^k>l;^
    zOh!}J_KFOBB13FteN10s#qsovNx!iRU8fcO2>dk)kyiS~XoS^>pxd@w}V3dx&!BsT=~uAynG}7nL(wm(0-I&{|VZnGiT`^>zb(RHM)bMR{^~l
    zS;}JuXEU4fsGvO1Aq+if(}y{mM(VMu`O_d$xGD(%)MaXu(
    z^wnxUAkQYvK0POC)qThaXu9b)^o*V29P#1Mc&Mj|Um_98panGV<9J(o5%k2W^1s|6g1W8xV)NA=jP##7|G
    zkGRfwTBDxDhgrtbyQB@&4*c;af5lx#Ix?zsB`>F3FG^rvnp=0
    z`DVr2t-lGa=N;eF;**viY7{%Ro=5J`(r%Ug7dzIGJBc*951W;YCo;Y
    z0{UX-lKrW&S5^GK()Ow@A?*^*6QT|Zeg|t!wIjv$23DoQy5B#?!D-=)J@F?9W1lOF
    zr1*pfg-N|om`ey38seWMHi!dWr{9%y@DgY4_8H+#;?!X`AK~d0dl%Zm$HPVXJVwIK
    z$Tv4m&)6S$mvmudrTiLJJ3eW}(3E|&wCng?KF>F!z0flxA7$Oop7+Y01Tf1t^osp2
    zb^LsVCsvE!E%#`|!$pp-WteginNe=vRd~EhpRs{+J=8lgmG>`^J`8{Id_T|9e!0sc
    zUL$!MNB)sjG4+G8OZurB$O&6#il;HW%boy-pWd<83_nl7&r^l@xif>G+bw?PTl|cL
    zpE_hw`$jOnd1pi^VEj;D|{cWzst9}CDdE;
    z@?*YZV^Za5WR*>J*Jki~wZ&^0&rQfp(o4CPAv5Fu7(i}HP9}^pH(^o-#m0OSZD1^Q
    zwS@B;qU_NqqrS?wGTMjw4d`Fmk-P^6D4LUH4MElfvie!ThsTRfNPT&PeIgRq_OloS
    zKdO9*BjsB>LjQ*JZ=L>a*1x;;@AJ;D|D>u9PM+6OU#)&ybU$P|Pvr3rU}ySYocHy_
    z9*zINx8+&>KdF22<+%fhagEE;M|
    ztGKic|ASAQtU!kJX|29X&!KAHFf?^~bzt#%jBTdcUjK
    z)xG3h=!vZ4?rl38Jf>W@$E1HOX2o&xx3G=*UR=$a(c4Au
    zH@Zw>g_X}0pyF!zZ4rPI=_sq
    z`^bmrr)n;lp$E6>`X+0o`|b4oNsk_=(j!O4F6c0~MOPDD(B#ogkM6g_r1!x;`r8<=
    zRUM@+w^pR;k?6MP*3Ct)t;P=9)3L+0i0{sYv^)HFDwOZeH(VPkbyfU!j15&}E$b_?
    ze&h0i9jn!xdCsd*I}kc_d?KEt}K|DC!n@8-UVR(&_3v+>#MpB=ef)<*qietenM-36aAxL)v?cVHg~j6g@C
    zZ*t{e%9H-!YJ)=?QtJzhLDK&jf2Et0PJCJ0CY4{Ew+Ya!gC=dZ8%^5Z#YS$(qJz0?
    zpf9wq^e|tzv#XQ(AHe^@ZUb)ppnezIX|JSyQNIKCM=49Ofs!BUcAy#TQCYA@afb9z
    zryr1VQ0of=z@|PcZ02?fn|9KTZ)poUt;|DYuIIl$Lisv?DxQ{xD_UZ2=H{l1&Ld@(JoXY5|y54T^Y`t#QIJJW0?LQ~ny
    zl|A&bu4T-nOx$zp=FnDe<-7*RC+2*GoN00a^H876LsRXPby;&B+DlrFVKru6fE|YU
    znZj`POe#Fpj%6K$^^lg!Qf;~7a_j7m)EQ^~Ea#gwxOL*ru42~TrQJ}6R=2ia+IB+w
    zNjvAI$a*pBy_C6IKU%CaOj;JU10-`xH}8X&WvMdv^q<)~thQxk-Dm+X}jeyN`&mDc(Vw$%@1G;Rc5>!jIhi?6pb^
    zd2FcQsIqBa*hU$u{ZZn(=-3cTyJVlTTi-VHjg7?K_ettK`kc~JRe5{+sq&VxXssx1
    ztJ3wgPTGm5zjNnbfi$vj%av!wnDtR?H>WSrx&!TA<&(RrX`}P(`j@SZZq{Ro-A22W
    z7wz+9L!a?Z(dQ0&ukqs$I|6f3sryD2V#h*8e0SP}`7Zp(pV%tSt-Bc;g+3dl0w3Mp
    zo_L~nFrM&v;{Fl7)z9^D_)qwl?_H7c9>{pVHsk$!J<`+1Gv5C#XlCa#*Ft{GT!H8ywA^gUzYJ6$$0rou6N1y#F%e{nr`qC!Kfdt}eF=
    zV+nL1_uV@{z2D`AJMVXxcke(IKHt1IJMVMc_dzQB7W3}?gnF+u@6FEpjpp5ZkqQsF
    z?}OF5+UF?s$~#28Pd4Gr&iiM~yZ2%hE_)rFdg#1gZQi|?sPKUMK2*J5Vcwga_YvmZ
    zd#MV)+Ul7}n>=!=VK1}tkyV@6{|5l*;
    zdbRG`{SKEp%5ubpKCw18kA`fiD%u<0x4j|Zmt`dhZ+
    zmt;&f^Hus*Z9D#k*h?eOqwjmhf2KT_?f99%Zgu~-yHEHg>F3+K*^ZwHH1{oNJN~k#ne=tx7mUeoIkGM{+qn$+AvB{)4sRld`W$lL`*tIT6(R@9
    z`JIce+x5=v*Zmv(3C@Y9#WryVYit^8Ay|totQRe;7r|Pb1B>rpF<4I%Z=tdsOjh+3
    z+RpmUC0)-WS0{ghDdz|>*PIRJTnqC_3-d{6&CP+y_prg7?f61Sc{x}YD_P4tUi@H5rF#6FhN^)*hW4Q-u;
    zvkn~Q_*r#*zF%Q*n7^y~%)CW(eZdhKiw#clrk=N}^$kbwCx1pB|E6S5eU)$2z0@8X
    z{4tb#JZHq-^`i{=?8nx|*@b6RS!K+N5=*T-EF}-jf3oI*@BcGcx5=>?vSQBjoU6|}
    zvP#3uoFmP&FlU09XO8rm!8CIuBR4RWte9g-p4BtMk>ggq%`sP_+xz2)PsqkqlFleri+x5-8>d%zley)#aVEO#NRzYte+QnA%aelJt9
    zaQsrj+P=KYM}9TmOAX(Alk!*f4c(vvz0T+dAH{F9&hUyZk;W_Z-_m2c=yk&DE5sGP
    z?LR&4DO*xl_s=p`C>skhmGSs6b`D8n@4FKJg&}fhOvX6w$YoL2`Ig=pJ^`t->(g}*
    zXFrmn&-~rlTZG>{dWn%otJarf9b%-;ugvwuzN&nYvBNp(^6yC+WMoBKlJP8nz9oIc
    z5!e3W;AftZYVc3czKSgT4(xRbAAMTto8dQcjn#Iqq3u$Svi28zPh6z?3#FSgcC8t9
    zUF(`Ruk+KtK4;cDFAQ!P|=r+
    ztPD?LpL|mDq;x07IFYUFQ&8zz^nL}~mhRSz1zrDS(lQRKy`iRTweOfilk#QlNA5`O
    zj(>aCRzpK{H`=Shr;kh9lhAJ6o7T>~X+GL;78{wY)2w#siLVm+88)3%83~5ew~P24
    z+?^l#v=utN^l@X5g()K`57F7bi9e({!)*+EjNLq<*QedR=E`Y)SGCKN=%?ayBr-<7
    zSG)}B3NTmMhtEtbSw2aH$u~g?NkH7eMLqo}!d(s3y(^tIRy5p>U
    zPTM|o?Cdh0({-^+?^Z{~fA+3^-fagCKisQB9<%$E_tWV+4vQ|Al5u9gb|3Q-r;pM!
    zzfYV0L8{H0dVJys*#AG_v}q}ij_>O};z{8FzqzM9Ns)0bKlM(XHt}STJE%x&WL)O7
    zedz3ufefwrlbc88
    zNAoqds*fwQ%$WnJ`p7&;)yJi&yt!$Y29wiu+QdT2d@*TteN4?SbbDZKlWYIeXKehr
    z8h-}yXQnU{k6B~pW5{zR@v@aU-!C;h&Cq53FP_!SnQeX=^ea;I-8@yW|3|0qn3i7V
    zH);K+(JuRp`HV~FdTe@wtai?vMfx&XQ&Dog#^cC!LKYq-1e1T#X%k~fa}8;8$#oR@
    zxH1ckD}%{5ZTwLhe+cm}O~vQzfYe&cG~{|I@v_O4@Bd+V8WMEc5`Aemxn}4(t~>?>
    zlRwbuJNl=~)zt6HY`OZ7kF=@Y7Oz9BHYI1j_jY*A+NKEme+-^4)us%V^wp}ruDGj>
    zImznavGb1ZluKW2PxoO>*JqU7ETzw|Hs|Uy=rXb{X!->s57|$2pD7=78D}3&kg-nd
    zGw3mDtVK8KmX>iNY|^5)D<1(}Kis}nXwp}RE+aZpHyY?cw;37=U+Xi>>-I6GT~f>FqC5mpNzJhM~ERKBFns4ow|C!T9)s%M-pe>vSK(
    zc&Pd~#zQrB+?OToeZl1Sb=m}Do*ExbA9ra=mwAA)mND;Gjg)_CtQ&G|sy?i?>O;Og
    zKi{%>U7>mXkmKCf46h5}HQP96WR+)}TW90{4aT`T!_y4iAKT-c;U~{HcbiV1cbqeH
    z@{Dsg+WGp3F!Ot_!U18(@4aT`Xh9@)5(azj)&hV3Gob&4RdB-_J=Wj61
    zy*0q;XF76>b7Gf~F>b@jLStOIO(tz$LCb~izJjoeb{l&n7dv!eQxB;-6Us)Qi*O!W#5zkl@;(?Zc$1N%@RqR;z4mA**`&)Q3}2BKxE~w2
    zMBeo#n@;=UD(wN%9?X*VU?_Qyo%VoEyO;Qax!(moYR)|s?>B`#@ozgn*S
    zEfhaOXD9UbWTCMql)Tl@5Z-rc{D+DEXexeqqR-VG!xJmwkw=M_MK`GB`$R+U;SlA>
    z*!4Z^Q|A0(!4Q77K!00`z8Pm~w}s?9yl)Q2cUJMfMf0K#IQ0&jX~<=_6}H$xL0v)J2u2252;9q0tyhzIUOOrv{y;
    zCBzq5EcZHP9L81o
    zHXk*bk1FENO2rTFElQR3-g3^@%pqI8|G?0z3dvgdIr!ZZ4PY)%(ZSq^5F7LhA8Qt_#NIx}8`l+GhKN+5+u1(Q-97lYS^>{7o
    ziCNN43?;vA(vFk3q}A6VkA_}Z78+%t(t?1SriE^?aqovHZYH&S*Z>P$S+NxW?G<$H;tcUt*#Oy0x0TZiFI$>-fr_d5Irn5R;h
    zuB=aSmsfwMy+__i*T1C>r^)*`G+xg_<8}OhH4RngkL!FMCBD?-mpzWWk7Y@FESUV2
    zNqaO%T+-@#Tr@gWZxo#)(0d^ZjTeH+qlSi*_YsYMkoeE0;)mB;a$b*|pCw*4IrIG)
    zL+@bFsmFis?LIC%1^ojl`mRh51e1GBdg13O&Cedm89&VLqgm2E8ceRX(#kos
    zN^jVt({1rMWxOp*+HLH&GHEvj)!D(OjJu8f>!G(X3yqEJ?Kd<;rt39+Bk|X!;>#Ug
    zo3(v2{4RT0))FsU8S{OTq1PC6%9ydX+t?q4enX1BE6WD_|4n+~C#v~bMEoVG_+j=m
    zy8N)WF|s5FKYSl#=q=Lxpor;Mwzq^)B9snbTv={Kj-SJ`9#dVD)F$Nq`Xosxytlwk6>&BsK|
    zM;Yc_rX?Xt=C1oplL3!}3F{i0!K^^d;(L}TS08UuS>U^N)m
    zr!YS1e%1Ll26ny5Cw5kM?E7wGsEBQvIV5`x`6kG{!J6VqlE2Fz{P*G4NgM7!_2yM^+5NM%fs{I9qhU*Q@u{{%d39
    zGL10^jNM?cHsbmSXEwM4^Pa>cBR(0f0k2h9EGzRTH@GoHWu`q^N
    z7{kDzKgo$f*qIBQK0^8AJpPZ>{x3b*IOc9oJm0>y^!A;)t9uXa-0mZ#eM$egRQJt~
    z(s!tROZ07ji~G3`YTg~1&i&l@*wP;?X8)zMZ#grX_U)CnXZioMTkX4@_Kn>%myF~*
    zn#U}hjtSg3N}Jyj3dY~^mF%zQKC!LzLCUA@N>AGPM2Uqd9f!5-cn5V+aJuc4;``TZ
    zjK%D4zEbTko~-i1+N$J1_O!WmX@*tKGoVc!%#{c6A#2d|)p^tKE_a~r);gW^=W^ci
    z&>qs?%l={HC-rwkdi`zH>poI9@3Qz+d!erY-|LT6s(zL9Qa6R?zoKqd8J>HizaV27
    zd*n}i_RW~JT=|5h_JpOap|P`b>LEXqR9uao2
    zkppY5%D)fU?qi&E=>PR~&tvFQ=loJ`Cq1i=7~dy_$vNrmceRRyLiZcG3DtD1_uKZ@K0asW)a~1f^u@;;akMG}c^NY`1W`1cWA1=Qc{%`FU
    zwWabqpZu~`oHf7myT0z`cb=PHXAd)eIh=DM&+0BD<_&9z>$Cw!7P3yP>M(22rf+Di
    z_=Gj?r}oNZ8_RaF7QMpYOL?-!9FRK9da|m+_|+-BD#ux@3$3*KIg9m4)|4xyFX-E6
    ztJ4>VZg!#8&8#(QvxbbHU6n;+A7`@$MuaAJtn$)-#xcX4?lUCY}6<|od&fWBC
    z;PT+Z9k*%z7D6Kle~VKz5-+A~u89}R+1rtWKfd>~Fgh2)-)-=h)cnoX{LM|#cKhJD
    zq2ymmoOUXH(;c%7f44gPP1F2UK;zHwHzP$OvEAZtJN(Va!5`mGTNs@c@HY+q{;c_%
    zr1`r(Mcd`?`cU#et+XAJ41c#f{9UQ}8w-sy@OMp$Mq-7<-wOD#h0glcMeN*C&+xJ1cERZ^K{M;qN_X{?hTkjI$l^ciz$sdRzSUhQIUF
    z+idNF?+q44=l=$i9q*xcbZGwm2yJN}@1$tE{Jj%Q-f5-n_#+sqeca>l_on9WH_-Sk
    z{QWLPBk@|wcA9t%U(4U+;E(UqEsW0Jz~7tj_gl^1Yns1brD(hS{faYxt+XAl8UDWL
    z@b{wT@5j(M34cFJ(MUXD@%IG${VWH6d@t1)9Y4me{zYs_CuQ%3oIkOs>jlmqJFMr-
    ztul5FVC6{v>!M
    zKJIGo+o#^#xk{fE7atnY7nHvGv?uNC>clE5->bm=*BtrgJLg9z9YOUyoW0!nw9!}T
    zS05)&%y-kyYMyK5X)d&%$df0+*dLLi|2T2y=g8BQsXSE;@C@kmm6WNxZ6|NvvSiBn
    z&1O87^PBUXr@YU`zLLCcxAL}?yw#Dnhb-Eoth|ka_CtB{M%Y%H{#N4Nkt1*KF_+Qh
    zg^etgw-kIz=1E=S(BTX_pvd7Dk%=34kqTX}mL{JA;u#`hjJ_IC0%+sa!7
    zc@ula42w2}k7YUXhAqaelXI-RO(JjCTlh^@-kQkU
    z^*Qp!_n+F>*mpW7S$P{v-gc9>Yb@GJt-LLT_B9Ueta&5sX`B97;zn}h4f~9nw>m3t
    z!^qnx3m;pN+m~3jqHgVNR51Cdjg8GmpF8I0pEAc5`^^xG_5>?$6Uf_;Jb5GRi#Gj1
    z#JxL5-g;YkTW#g7H+k!0;SaO&X4#Lr<*iRJxmaT-dc$XLSx51t=84!vS{eJw*{^rL
    zrGMJKygWW&&-lNC57^7-Lo#m{f3Ra-xm);8{wsn>zt`~rQ}5b-FaBb(Hc|J!j%WLU
    zy>9t|UA5uZ9Qdu}o6MiWud~kbg4gi_I|`od2i9!eolBUCf1I_8WB7rwh7mc+-y0vz
    z4@~A};UivsK5Wke0sO!M_<>b=J;@TW;o}FUo!_bYNB
    zrHh6eEZ?Vwig@Hec0IS2@2~cD`j4>Ce2RGZ=tQRa;tu_aIQyIj1fDP3D!yTny%t7|
    zg;4{>-W(Wwf7Zf?P9^Rh2PbgDg>wUSC1sJ(7GAN&dlbAK7Ty#KZwfSa$gzfz+-=L
    zS@hkac=UyqcyzrNU7mHpjTTOc&+Y5OCE#pyaI*D>wS?Vku-+}lj{>aq`03nVrq*`C
    zQb#DOF!d&UglBZB@DX2pwecsBaBL#caaJ7?8hmFz^y=v8qIlp(l=E7Pzq3Ut{?3BA
    zHV=Pe
    zv%ReLC^CGuJic;IdAxpad3@|I>)Yxp2hFX&<>oT#R#kM1g}qH?{ezPT8%f=!rNrwZ31s<9z4RnpNZE9-dc_4?b9c^K;zv2
    z-Xe{Mf1a_Ig&Qoq2Jpt`!6WQjnRttI8J1f((>2a$3#Z1ysR3tn9vs4&GjQt5%j41M
    zx_(~Ldv4X`)Xy>tbDYK;YGF>bFsFh!G!G_WpU=RIj?;M?XyFXjIQ=Y~(H72VaQfxJ
    zA*?DBr;PeJka8QW>*tLF=hj#1`uV=sY4=ioA9$VqrO3kWXJPjPyC@GfVPi9~7l8YI
    zD8BN8Q2eT2u57FCdvg`-qEGac#%0Wmp4PbUrgWt+K6^&T4&%2Mc{iAI4MzM4`)1;v
    z3dQSBhg5r1crOTEOFVkoJ78ZVnE|%qIn6;1Z#4oU?ZvQWcublLu=x15__^+X#
    zsWJNl`r6mQ#TF5H!@@mc;U0n38+r0b*nb*a>APPiF1Cos+rGH+3was(*aafTEc#Db
    z^q+$Mu{`t%`=L$$W#VENh;(ZDN1)H#-1ajJKWfo`6#6gZp-wGr-gV1Mw966==-w%D}sF9~E`7F2iUk?9Ikp^2{R{Dh9
    zYt!FPT;`~eH#Gg7&}W_)*<;b4WznAn{XKc;6LzOfeJB3mr}OD+1P(BG1WK4DiG`kR7DKXawFQr6t+!8!igTQI?^Pu-?n*fR#7>)E>q%B}eno&Y4I>YbPtoz#Tlwr|<+B(0T%RYO
    zgq>wASM6<(cIdSKc>M#x`@
    z#7|Q2qQt*H+Q#~SpYY3+-`f@OFn|7@MRWbdm1R+$5q7POHwC-~@aS(9-d*5OFOZ)j&vD>M-#gyIi&}V5@W$uC
    zBkUp@Zyb0v;L-moygG2GkL1U}8wsBD#iK2}Y74I#ywQ2^2usS{7_xs!>dQ#*rh-R*
    ztnikBLpy-JgEtsF>6?dIcvCFADc}vwgGbn}ZM?zYjRueYS>fT66rr!gU)8}Y0Z;ns
    zeiq(H3vVQN{qo=u_PoJ+f&3i`CF_rbk}FGs$-Dan<6ouk4tV?a`6|9jE3tuy{p73I
    zK~`c1QNP$hNQB?4cWpq=<8|)Z;NYQehQYD#+UPHKBH|PiN7-0L=--h3t<%5F
    z&aZ#Bvbm`KLVQ%QQ)RvHS@PBGZjBZ>tEw3P)S{S5r|nyE&c67k?#8!D&Q=}c-V-l=
    zI^w^08NXT10%*Cj>&sexvPL7mvvS7jJmp8R82_2znT^^nOTN!i-=PUcV1(z4oP{N}
    z(9CnR_W6xaTb!?ljTpbH9S2jzx
    zj)ZsWcVpX(V%yxNzu9)p2FtF={??1&wU%#coN5Sh|GTzpE&|K8YkIByt%RxgQQFpW
    z+SZZ~cQ5hRsO_4w^#0cB{QFy#T@yP+iPvd^wq3J$1b61V*5iP`Y3EsyU(;YcmJViY
    zt@EsYQrAE6n+^~3#UJ2)*>DZ*jWVab#r>qG-cD}nrPK8y-9@Q%tvcP8DTgrm5c^uB
    z+?$N{YGI!2Rd*gls*pkEKH92K@;lsFp!!ZpSB?y(GiT(!1=+W!=u8wkqVstMC>zC3
    zv1v`sLThR$xx=P~eIPm!d9E#wSN*ac-<*=8k&&9_XiYN!&6=WkKxmH3LUUXw`4yYy
    zNNA3RW{pL2pr$!k)4Tzi6E)4!EHq2m|7+762+hIJoM_Q3(lmQ%nyl|c2Wy)Bve4`o
    zN-nf%&VptUG<(rc4=#__|8k|Ajd(QruE!~p_dQOTe9*nk)qcPpAw%n3bQ7WVzM8Y*
    z`$YLt7RoM3U09F))l{VGL=oSuI^k!(g4CtercNlHC`as=-=@CI?E90U^npybeMNzhwO@;B0u1YO}iV-mo?4KEHpcV$^Mx%U)D5_=b?E}
    z(|jWf%{RDz4L<`_mrn(g(c_Nn>JNtE0jYoInqCd`EZL9Fdo;X>ec~VJy|N#a$NkGv
    zZ7HnfCTCEowzP>nzu>@igKgY80bBwuw<|lF#es*Hxc!6?6Zhq>*
    zm|vDTJ5EC7(GFNw*XKsEO|n8FILwdP)HnR^`!=AMHS_K4v}
    z_&-l5;+Q+}4y54(1
    zebp5|-a#L`KeAlc)hPUkY#ZP~WZRhH!If=eFv(%GPMZ;`VGNk<^5x+r%oMG
    z{f^Whsgu;FyQSYbtLxQSzFX~QOp(*??4VvXy{+TCO&qIl+N|SxNFfJx1>*60N;m#YOIOQg4WyQy;|qJCJT)k{DlmSSwW{?tG4=C
    z;aT!a9)2$Q?bLbcOwUU~=SAJ+VEV^Su%~P6sw~)5!Q{^jwn;NRm@H%5jZT4gFtYZk
    z?D13mba@t<<+T4yn(PHs{q#6ZleNHZ{WSXz70roRXinsuFPr8RWIQgIls34My^2+8
    zTpPPZjqRnn-i-uH%2DzledH`nzbp&=GW-Gz{Zh(cq|gq=-M$eTstl0*9@95UeUtu@
    z`d6p>#^~Udcyyp?cbCT^gSG63X2Bd9Ox|NKMfQWi92j(To?bc+CH(fwlD40^Q^Bcs
    z=x5OqyShD`B&v@m$yw`f(Z#_R{Js+^14_eR9TF-~9=OflL_1)!}dhb5d=GUSd5jx1OWc
    zbA$EVXg#mBo*%HD*IUmUt>;bF^A_uQoAvy#_57&yyu*6lX+7_;p7&bM`>p4vtmgyP
    z^FizRS?l?b^?by7e!+S^YCXSfJs-24k6X{LThDJ;&!?>C)7EpR_58N=eAaq?*Lr^6
    zdj7zAF0$%&FYCF)dhTaEGw*Wi&tU6$sP)WT&5bkCdLC^(ms!u_tmpC8^F-@;iuF9z
    zdM>w~r(4fe*7Gdux!QWJv7Q%L&x@Srn`e7HSG~tc@Hzf{D#v&8nR}S>{u`e+lpA{r
    zgnzm~_-6`)bN^x9f0OctdOX(^2sK;|}f$%RB
    z2wz(u{JsL=Un~%Qe}V7^3WSFWgrm>p{a2AU)Z<~#V%~o@<_-0DrWXk3jEcPfZps_#
    z@nG}F`;WUR^ZuKeH`L>~xj^_W1;SaA$omhyJnz3-^M-mna|(o47YLtQAe^<9y#MCs
    z4fS|x3WVQQApG_M;mqCh{#%eY)ZE-=bSs;Ab$~AfAcVmI@<*V|KpwkP4nq_q>m*wdJ<`xLATY7I~
    zZQZ>&iy%}W{J!wA#+-?%8MhS(zjxW1Jf+9tX@T%H%kt&k9;nd%pX{BLNfAfaZ|1{>)5$S*OhTj{xds)6JIH^`P
    zUv|&RRe1{Va|OchEil2FS0H?CB>xP%ra<_;b&V_XsR;85gx}kkS3U8RugcxFqD;p++*x51;Up#tcWz^sh~F&2(MeZblI9U
    zxd-u3f$+7Y&fU7u-wTA_yX=d3`}ccRzG`o_E_lp6{Vn3|V5^Y^-YLye8A
    za+*1AC_o@TcOK7(0{F95-J6%hhywW|eO`pm<_%^3pC8`y*#h`C=ZE*qC_sN|0s1ov
    z&>vkOf1&)-OV8*61in;&{_OnC%k!lI1a6Jovut)ABjT3|)IUj|kHxF=1rnCG@)Le_
    z0sLDc4PVID15PP`U$JWCss{C6_J~so5Xh5M5yX!p@4s7D=4IbgmNzx}ISNF+C|BeQ
    zB<$8@jZ5?OkYfs@zZnH_Sswi}P#}GEf%NMNq`$d5zk>PY0_m#@q+eJdy~3~0t-;+@
    zAicuRlm4m#=_^*YwgR<2rFzc?$@tVqtO+y7ihq-BoZemjsQUn7_u=AmWgcZeo3<8kV~Q@
    zPNKw0q9leW=wwT_l$<3+I{yeUWFZC&m?EfY3>b0+)3{)YDF)ouB?lNV)Su#l0e`4l
    zuB~ZIF<^?@xYUsEYi8cFyEnIU_g47+@qIkLcZvMI-FZLf$9v{IGdnxGCoTKXaHZ58
    z=k~!0oj+oj7#y9fP<&@}Y^=iU+;Q$0u6ze?Dz`pYDSi=NsfpZJ#r|u?D-XcAkxIRn
    zs#5OHG`AZ6|C#AzCAi-
    zuY;b^T*WCg!YfYU5nk~Ub2K+xaeXj5T6z8I2CPn0s{gec#wy;T#^rOR=H=WpI-Io{
    z4+)P~t{!J?75$z44*^lcVcKDkjJ>g
    z2t0IfVAR%zCMHM6){IUJ+8XiLaBkCh^w1`oJ=QNU0NFhN>o3=f(ZQx6`maiP6ycTf
    zD8eh{QTC4&@;EgyK2~A*#2Ff2KUnD=2(1rU%h+FK0i(al0!V*_xvQ{gf5p)q;gy^N
    zJUY)x-LHf3X)5QgK`V-$>5q=(+LHtJL=bMPdU<|me8cKWH;C>Xw>DkLZ)Ai==UioL
    zI6EM25e=*r>o^e?6F2q@+}(FqL;#fv;dk8A(?dt)qNU0OCeokEO%A}!Ya-Kcb<5)n
    zpK-6brlN+3eE4B|{@p7o^H)@f0QtxI@POATFN8S;bX&_Z2bDc33MTwTH4BK><`Nh=3k8d5
    zROD6z3dbFW4cT0T289oej}1qJI!?=@F0zPS00TK!rx})RNBM-7{WH3@O8(r+B@}!m7g@AuQNx5k7|~Ffd&Rf*UBp|YYX&MBfnH^JRnd%k(@r+B0Atj_9_x-qS}|e7T$vP
    zIW=rIVdd6=`JvpOfi|o&Y)A?>&IX5a|3ZZ(g4zv~BfhzA#L3VpUB1w%lCQY98yGD)
    zQ+go6vlT8;WO#*3NVmHGixfl`oE;u3ujfTJ!%{X~7duegmTJwcv{0cVcexunD*t-b
    zRh4VN#ivr@Xn(qVkwc8&%To=`xNhYYJox8WZa}Q!L|-I`z5|90A~e2k
    z*B4l18X8tToQ{|&i60(X_xyOVe*&pn?|wFnLG`iMy4JyM2hisQ;jtrMG
    zRIKzxTqdG^23JQnEomWyuOF;%fiJ=Gi2&$-j
    zp+JOh9Gybb@sW}*B78lZKWk}O16Umx7fTQW(K}@~`
    zs=9t-?s6BFQDh4h;gi_oW!r@&!jb-liHV4dM@k>z+3`&k!qH-)b5Hr7fD2d@Wd6ncz_N=)
    zgij0(VQ`LKht=V>byyLu+IDmXM7XtZRDP>*5RUex*9RgK(BXqHa8wtp!{z!xL<~B7
    z4Q??;-H4NkPi(O6G4jL3GE>APO@==>ZXJSU_~hW&x~Rle`Tg~mi0ljdi1iETM1}h6
    z8&kIMkzB3(FfrJVy0J~2OYok?tu~XCYFJw9F=GM^q*%00WVtVz~F|;
    z%k5>k@beERU0Zppdl@TE1nED&2qZ5yF9%1=;YY|jm&e6|*#!mZsG#%IA}erU;o
    z3db%3i~aoT8`OVP6f{4u)IRnnOVg^`2T?rk&yB9f>g*)ehoihmjDN!OZQDpODI6J?
    zdf561gAC7(TW_GN@Q99=GOOaZ4nK|zUt{0IE5j%3D^$WQDowD4H;?A@6h6v+q3i#s
    zV6-ne`IqYhYd2KB7atV?@nQ^(+=@fts3v@S9@k&QqnSjvVIBYQ;AG@;YC3$);F!#y
    zr5Q&RO`ap(dVNaaa(!eq?)45=Sc{5Eg!r*x+=pL19(|1%#p!bwkuEQ2KuT%nJ5yZq
    zq8px?F$`NyjSR+9?U)!^*03ntGP}V1YW?7vfeMj?!>y4Rbs9cgJvcRt8{orZmi1K%
    z7uz%<*I!lmhRLiwig0pe-vi#7L>Uu45nlg|>Y>8nwri+xeCGEsZ@b1anecI#w_SsU
    z_08|ZtJ$4g37=UHN_@3t0yA0vxSGwPZ0^JOQt{%A!tJvsJl{Tm4Mw>~p7#o^ULTXO
    zxN@APIwm5X;sU#z%eF>h>fnjY|S*N(B*^uqaDSY?IIbt~VYyd!$q
    z!B0Y$@5XGGyB=EzMklhvE|v>jxhHqZ9Tf|Ta)H!sk!y*F&&2{I){}-ftA~;C(?fIr
    zZ>8ZECgMvteO(arbXn}`pK@1^qm_ul;@Z|VGS#wvLv8~K`iMKcc?}+7&)3jL(y2j%DbzSFWiO1WM1rOZBZ%7B&ysXw#KXi
    zWc;XN8F%^ZXXlzK54c@XC42yr5^?v`c8hkb$~A?1m0Pg{*q>E#2M+dMRSdts$^#mY
    zR=)l0bXCrt<6i5=+%7kA?~^E)v=1)wDr|A8SpJrXItv4f+-qKM-`(Nw->}B=sH=7;
    zhT{x>zgqXNmKdxcW+b-qSaK20ap`xwzr`&*Q+gDRzcfT0EnOOn
    z22lgpLV1^IY<%(fgcvJsy&L1TxKtIlrLd?txp-<6ouAmAI6RT7xDzQVbv&QDw6tT6
    z%0o1%&f4-h-&@lLl)@@+RTZ;Vk}Nyk>m;1lF71s>_jdrP_(G{uwoob9Mj|T*
    z+eMTd9b+UY$7gwy3X8;&lLyk^h*Tb+I|)M61yOJ;FA9T0d5yN`lS>YKQi7WyjJOlB5k
    zDEGqu=nhV+_#$uB$Zx`GoM>HF-l33pSX$M0buEp%DReBW*T2u9LW3abV#LAl3o=1Gy03
    zAL*54Zh}Uk(Y}H^6e8#Hb_L$*h2?(#@DE4>{U7b1L!U?AXs;D3$8W&~*mc?Q)q~l-
    zkE8O`
    z_2ZL|T&z>5EN{NCucAWl%DXEn+<@5xR<{<5=Low*UxA5+n!<@5vtraT(9UmOylK-W
    zxo>PSmXFl}bo4!pN~v6j4G-g!qi>dZ>T<8FJ|iuSt^3BF8~bi7Jr_O-_9t{<0*2>Q
    zMu%MSMnCt;Ayy4c;n_j!&0!?88k44QdggaA&Q-dlb-&2q19IjtJcbPbSQ>KMmdO9Q
    zI9U|$Uz)Jpyhdh%@(*l`KMxbg{J9(Be?S&Zlaw4+TR(VItUJj*#BD^?Oi
    z<%8Dwq7UCNHNPub@5;*V>$J|NJwcWTTIY)=*e!uba&mQay87&hT$vQl0%EHY>TUZ`oy;`|DPpS
    zwk3w%Xw4fZ;1P^;mGsu5e;lcxFjVpF6!5R{4VB}^`*-ZSlW>0#H|8q!AoiU#D%0RA
    z{}}&2U~9r|B1SgCn|i=Dq2>|K$XBNtvg2)c;%AU*&bbx3f11vr)FP^#WVqr
    zX_se4bS+&=m*Nre!R!bweY!e3lJRmi>zVtpHvE8#H7cx(=N{?8EOhEW7
    zI1oz^@*#I|Ku?Q{uWB}iZ>*sxG7l{q&?Qz_7`t6gHX>1Z@;*FVAGPmH6L^2=_?l77
    zjr9pbVoqb6DLt&x{G7;5FQF)CYKo2NV$}u)tLUvEkiHI2hyfVy=n)G(YehX(c-dk(
    z4*#C0I3;;>z9<3u$onH;oO+;jzS!GhRd}Gv`nilfI%;{g^3&<~eF`=Iv&JCeuk-?n
    z?BHta-Zl|wZgjX}|CbxA{C<)3xb(%EqV*L`Q<$+;sx!5IIB2caYPB9}U-A)ZtD!6b
    zc)cTTInhguBW8kYuzM9tueR;&&V~t;zCyTcJeIV@Y58bYg+?G286&dg$EY97@lP0E
    zHi?Z@60t);$Q+s|-7S
    z9##I-qkk$Dm80;PsC4}Zs(e{9Vwso{r>|MCf{FnwTNWGo|A(+RHD)U)OGAz}*i!!>yH)AkzRN9T*T
    z|5%GJ>_0L1h}a$&t%GotM0Bv=#R4WSg4Rz&c~MY5!y7S&DYH?fcM}O^%3K+zPxy)J
    z6NU`i-w2Y2^X0>LQ8`!It@Cle02_QC8XiM0kZfDl9u67Zq{n>FCNIWAABdr-h87_|M<_s!0r0b*Lgz-&;PvHW}IPD+${TrS_ST`K%t^5Ei
    z9^$n4w@WNGyrs&3;>WDMh`FP!Z3zuO8Eg7#2P?9$et2kfP|k%_PFm-S$e&lPf=puH
    zw0I_W98dqbG7B?Y<5cZmlJ4_)zH7Yl&yP5&^tcig`-9!JgSeeOm@0m|(h@vY70!?OUGa9MC7Xs{>%6E=jW?t-o>%s
    ze#MLK(MYARO_m}e5aUm!5ePdOvAb|Fx=*Z2EKV*?MZ{6*6!GJ@0S>yOOqIe%21g&-
    z@I0b-uw`-lVJw=!hwzy9L&LadChkx#es}|V(hcjy(u#UoeahW1Hnu1Px$#c|>jioVkNwmyF&V6I;?&o(SGfwxX}EccAZ<+izTXPv5}pcbDr_
    zI&lk0GG
    z|Ee@?aU_hlG`1v$`#G59R7YNafXSD#UL
    zAM{bVtoFolwfE!d{0sY($L>_!f2ny@{_+?CQ4_oCQDG}Gvv<$^6sH8^435uIr=D{l+piu!hg
    zTK|a(lIO(lqfB6GX;Zjk+@>*0_CqBR2NoE%kU#0M~EXh)0a0K{|Vr<+)G|;rFfF
    zm3Z#Zw#bLyw{UMC#|wr=qs!2T4i+znoqWW-3)3sC0hC{2>ZBs2U$W=PUq3hm5^D^W
    zXT0wj6OY`BJJ8YjziE7O_2>|mjU#i1_jjZGm27zXFk&Bah1zxMsRv6$meZ*GwYX((
    zwc5>9p3k^v3{NeHpXd?8qI;vfOJPYW@^s($xQpKq64fV-XkY1w#GPBjTPeo|v+mt;
    zJFk1Ac->93YUEjAIPn{0!{Qm8h$<5Gdo!-hHd*e|iDa?0(nUSbd~$#sQQU4H7Ez+^
    zb=)oQE=Oivo;1eajd9x$j9tRwy*=_)H+nh!z69L0w=M126Agt_dw*-S=L`Pe_Xn>I
    zWhUZlf5q85-XCmpJc{cNegAO(2Hb(RJliRfa48*|m_LezIa?skhn7zxwOZxWDF}G{vDv_$I~64=;}lK@(z$CRHUz$
    zwxd;A=c_wF$Xn!fJlRj)0eU|9$Ni6r>rrL*=Q}z&A}*t>bu8a*R-p&&#-wun;N7;{
    z19X4D8oi_VUfe#2*17JEz7=<^?7iiNf$Ms28My7nH$QWyh-l_(9^ycoAn
    z7GvA0>%1&wHt_jO3`0}^)ay!ukOZ)Wincp$Ib7V+dP~S%#R3^dD-${KiX=Q;wq{A?opRB+sy|FwIU{rW|}e#7p!
    zU;DuyylLKNc7FQ8^*hCiI3)f{n4*}b@Zbr
    z-+A*_e)Y|def82Kf7-ZUy!B^`KfN_~>xn<#*Z<>f|FiL~J72$Z{WoKK4lk_V_pQg?
    z@bqt9Sp4SAA9(5qcdq%)1?v_qYJSJXUtZXG#VePbU*CHBOD^fWyKm~^;lH`~!HrA4
    z{k6BfqjmCwe|qZaPu#Zl6?-P$d)wDOd1v-pFF*Cce^_wAhky8v)SR;u`3IX`_SM}l
    zpPlV^bEm~-{LZfXe>1*hi-)#K76n}H^
    z*MPrE@pl>iUV^_%@YjgHI{Y=`Zw~%mhQEvOcLDxp;jh|9=!o=$zQ~J+U!*q=e+%#@
    z9)A$4`XUVx|10q)x_hy{C-U}k{9T1V@m2zn_l5Yo27e+yt@x|<(RqBkr!?QAr00nL
    z9LIaFIu>P--`+;&FH+~d_drQ}wkhG@yeGb*EK-73Qk=xOcY8|KldL1DgyUUIUx@c~
    zdLHTNe9TtylD1?0JpcZy%Ja2roF&-KB>!0wQzEWJLW!gjDJ9yK=uo0liDgQ}+DKA7
    zF^VWgF~umV7{wK%$YK;*jG~KCd~u2|uJc9l#VNix#TTde;uK$;;)_#!af&ZN@g*p}
    zgf1w>m!S9(6kmekOHh0XiZ4O&B`Lln#fJ^Q!j?;t+Hw?MlHyBJd`XHgN%18qz7)lm
    zqWDr2Uy9;OQG6+iFGcaCD83ZMm!kOEDZX}!ubtv+r})|_zIKYQo#Jb!_}VGHc8U)d
    zOtO3(6ki9$*Fo`hP<$N}UkAn4LGg7^d>s^DC&kxE@pV#sofKau#n(ykby9qt6kjLB
    z*Gcg$qxhCle9I`lWfb2sifucVgOkV%mFR+I?c$e`4B!VhL>x?Lsl_Low|{G3`Y$?M5-}M=|Y4
    zG3`k)?MgB2OR=Q3v-YN#cBh#3r5shD=EnD(lecB`27tC)7InD(rg
    zcCDE9t(bPMnD(xicCVQBub6hQnD(%kcCncDv6yzUnD(-mcC(oFvzT_YnD(@ocD0!H
    zwU~CcnD(}qcDI=Jx0rUgnD)4scDb1LxtMmknD)AucDtDNyO?&onD)GwcD2jkiY2jkiY2jkiY2jkiY
    z2jkiY2l1R1*+=_eT>D^L`(RxAU|joPT>D^L`(RxAU|joP
    zT>D^L`(RxAU|joPT>D^L`(RxAU|joPT>D^L`(RxAU|jnkUY1Cu&^{Q~J{Z?N7}q`+
    z*FG56J{Z?N7}q`+*FG56J{Z?N7}q`+*FG56J{Z?N7}q`+*FG56J{Z?N7}q`+*FG56
    zJ{Z?N7}q`+*FG56J{Z?N7}q`+*FG56J{Z?N7}q`+*FG56J{Z?N7}q`+*FG56J{Z?N
    z7}q`+*FG56J{Z?Nn9x3$&_0;ZKA6xxn9x3$&_0;ZKA6xxn9x3$&_0;ZKA6xxn9x3$
    z&_0;ZKA6xxn9x3$&_0;ZKA6xxn9x3$&_0;ZKA6xxn9x3$&_0;ZKA6xxn9x3$&_0;Z
    zKA6xxn9x3$&_0;ZKA6xxn9x3$&_0;ZKA6xxn9x3$&_0;ZKA6xxn9x3mr!kd-B(x7E
    zv=1h<4<@t^CbSPGv=1h<4<@t^CbSPGv=1h<4<@t^CbSPGv=1h<4<@t^CbSPGv=1h<
    z4<@t^CbSPGv=1h<4<@t^CbSPGv=1h<4<@t^CbSPGv=1h<4<@t^CbSPGv=1h<4<@t^
    zCbSPGv=1h<4<@t^CbSPGv=1h<4<@t^CbSPGv=1h<4<@t^CbSPGv=1h<4<@t^CbSPG
    zv=1h=4<@w_CbbVHwGSq>4<@w_CbbVHwGSq>4`PeEYClQsgGud!N$rD4?So0}gGud!
    zN$rD4?So0}gGud!N$rD4?So0}gGud!N$rD4?So0}gGud!N$rD4?So0}gGud!N$rD4
    z?So0}gGud!N$rD4?So0}gGud!N$rD4?So0}gGud!N$rD4?So0}gGud!N$rD4?So0}
    zgGud!N$rD4?So0}gGud!c;=d_N&8?@`(RT0U{d>FQu|<1`(RT0U{d>FQu|<1`(RT0
    zU{d>FQu|<1`(RT0U{d>FQu|<1`(RT0U{d>FQu|<1`(RT0U{d>FQu|<1`(RT0U{d>F
    zQu|<1`(RT0U{d>FQu|<1`(RT0U{d>FQu|<1`(RT0U{d>FQu|<1`(RT0U`qR7O8a0+
    z`(R4@U`qR7O8a0+`(R4@U`qR7O8a0+`(R4@U`qR7O8a0+`(R4@U`qR7O8a0+`(R4@
    zU`qR7O8a0+`(R4@U`qR7O8a0+`(R4@U`qR7O8a0+`(R4@U`qR7O8a0+`(R4@U`qR7
    zO8a0+`(R4@U`qR7O8a0+`(R4@U`qR7O8a0+`(R4@U`qR7O8a0+`(R4@U`qR7O8a0+
    z`(R4@U`qR7O8a0+`(R4@U`qR7O8a0+`(R4@U`qR7O8a0+`yk$|pxivAeK4hcFr|Gk
    zrF}4^eK4hcFr|GkrF}4^eK4hcFr|GkrF}4^eK4hcFr|GkrF}4^eK4hcFr|GkrF}4^
    zeK4hcFr|GkrF}4^eK4hcFr|GkrF}4^eK4hcFr|GkrG2nn`(V5F!FKpy%uU2y@z9pr
    zfwwQO?GkGP@*Ga9Gvd-vp6PVk@%oxBF-r*_i;gKSVu>fAFuA&`BNcNIAFe~(Sev-*
    zDdO!wYmrpx=}y=tC9~jmx{nM`bz%9V(@l1|v37Tvi(f^Y#F_Rsx3f*0>BL^(QJmT>f?~9*G{!cp#|iioRTQkUexeK4?aR~|tO=oZ@va3dha}5R
    z!I30~p43IM*g(DJA^bcHv^(M9sul(RAfjy3ysZ7zNCO^Psv@quf(8N=OxtAx5pk?;
    z$1!@FQbdg1@(e1y!_95%!c}ry8?fD-!f_{BThfJj5WZd^8Ks=_6J5649bf@GFqL@&`;mPi>I7+z#Xl+y@f;nESwI3c*ZSPRg
    zcDi`FL>~M37rDiRKFCW7Cpy|>pVlc`+eDYBIGqvdIxyo$f7I@h(}>5J<xj;fly5JWFakI1%qkis7`RK<(&PWG@aKbQogm$JBtZJ!YNKC^)~&
    zT|c#M3THadS*qx?I@^#NxWAv92Pc-L#HnQpL)Ou;%V!e1FmGKZJ7VF8
    z@Se#@oPu$2v7*Mk)i}nSLYV~`qV$-6(it&2w7YA%FwYAd7h}ZGC?0#xbz$B`ilSE<
    z>%xqaT8Q*-{D28mFhh{NJF?a8K7^>y-H28$vWcEyU=%;nD9$27D4;$&PG^^4U}zJA
    z1BxVG#Dn}}(Zt2Yx*WPx=2GZT5u?a0hT2#sbo3aa%ALhPgNY<%R>T&Rp&fH!Rs6O#
    z)T1a?d(h)_$R4KyQ`b(B3z=v2WKI|ErNEG)Q$h~$Vn_WOfZ}Hh5s0>e(I2@=$Urqt
    zW8IRnNsN3w=@5QoYaGKA7BkTfWrJEKMommBur7({F|}|p2bdb%Bwj`%Udt!<{fb}=
    z7GySz3vx?2UR^sjjG#{8RA{uKC&s(6N3%GG$(bxG%&h7f3-P);Lknql*P{~klm~Xk
    zK!-XM^GEe6HF^MSVEqQ;gn9)^iP99Q$ZfX6dRsc3L@~yKSmcq?3y0&i4<#`s)w?rF
    zPfjK2xHO%lBcH#MPp2*sKf;5z0AaVkj)4vaC-iyPbP`*E9PzXB;>Dio$Nj{Sc!$5-
    z45$y(n+L?(QS=%AHBJ5*dRLQwtX|mU3=m7N){qu3PLU-`&mv!RLcVMv%&8NiehnS*
    zfS7Sg7*ss=FE_b~I`j`HReg-~L`$2>EfHtb&m1q2U5a=wX
    z_@Rm5oUo02CPBQ&0W-Y;ypT+slfSz+H9S0oXEKyk2Gnaj{k&@9;MsGhr|0$oynODu
    zdwTGM<4U}Z}N&A5wZqd`D}b
    z-z-{!j%+kHB~Csxyk^ZHri-JYgUONc@X;E%FGlQd5udOWdt6pw^Gq62{B3!*0spG+
    z@(cYV^kzHnn$ZpqhHbW+_
    zaGX7mEeoIrc?|Eam|KVKIM{Hr0&)f9X2@yCJ&=vqbaNas13A0isc*uYQqzztu;FGi
    zWW!3N3z>v0LY}`9@ijR0r}`YH7jpVu?3009u*z`?kaO`0fpd^Y9>zYt7vOj!-e(87
    zVzcAqAveDn>521OkpByu`d&PmpN3ri7}A6EAooC?LZOdCHoXn`x)An&?1Vh~INlEe
    zd1M##Ak&{fz93IQHqA!4cOyQ?Ly!}YLw^Q6$gO*!2if>p=w0O0?|@80u7FWDLpq;_
    z9^{rULl1J*0q9-q)Svk)*bUPAYv@7lJqUY1cK$8&AWuFGd%O_G1?WL`e-(O=nXf|+
    zvgNSjoD$*RhF+snKl?k-gWUFa(1YA}1nEK+{vPo`?l}d$OPu=CKZAWCz0X1FytA?bC9QA551S5Uav)bkWJS^
    z4{|{_^dNUZo`XDjBlMb)zgrO>WH012pj{-#yDY3V9at45a%Wl>1e%*EH${a?2A)
    z7jpK8VQK$E|3jB
    zMSEC)cJ%MigWUBD><78+KVUz|?q5R>a`u0tey>D(Igk2^f&3IbOH;o!UFT#VGdI*ZJ0Tl->YStE{C#!K>_yOfW1W+R+|rMH
    zK~6*NfjpV1bBd6~p*m;o>yWSEI;RtI%UYxhSzL$sAP8c>wa{TToue!*7NCmZ1GT2Kzx~AU(+KkozDHKo%iSLN+Z$zv3aEke!edkf$K?
    zkaHiebB;rvd$eo`>{Up&|_o3X7$tazh^d0`wsBUxZ!?={*fS$bFC=rhh}eAUB^vdXPtc
    zj`TX=x4%Sskb8cOdV^eX9_?8iL!N=mH`hBY%g~NqUhiZev#+Ulc0!(bUA=P@GILYC
    zGrJ4*y`tVpL*{O)cQ!*d-(K(RgWP{dy>kk(@y>e3y&Cb{Q}3*ToZVmVOhfK@u--Wg
    zx#D5$Kwb{LT)oo?IkchP8G$^o5$QoTZ$WyHc@ODbgLoi2AsgON?@U0tyXu`ikUgKM
    zcZ!hBpQ?A}z8?AeY`xP9+4hBcXB%Yym+GB@kcaD?bCAdXuHI?87XJD@qzBpegL)?q
    zIs1o55AxWLkX{<+PojK~C!Rt1ASZr~@l9z
    z0_40`H8|%W_bzO3+O7w;q`?`1JO;TF(plQz9EMx~c@DA{vgHQY0df`OHpp#|xj5p3
    z+zELG@(`rk4gY}bg=|hVI38pgavx+4vIyCbZgA$_h<*=p1?1f8p$D1iZg37jZo3Kb
    zLFQK=-J1~aZ4FKavZbfNnTFhR2l59w($|0oqLKf5P!7mEWCn8fz0iYfg)BfeK7evS
    zwn4V6!1y=-J;<5{9AM6ZSoJKhyXYXimPC*`moO?U$@gc+qx%p2JAEfgn;)5*ap$EC|&ru(DpgrwF
    zy+JlU4ZA>&6c8U|&moi-^6WQZzm=%RAEF&V?)_PVlZVXx9QlWA#dSwhFX{&}4e8(`
    zo&^w}S#Q3}nYH=Vvzi(&ciM0~7k~Tj`t5V#gJDvAy5~%+Xna-E$7g-4uD&p<@$!ik
    zbDV$vCmEK+zdiU{)u))b7b(Q)o^!OmhoFzv?`o(&H@oq2oD$?eo{)R_w?eh^0mW@6
    z3|yN|t1j1gc^f6witzpT+d=wA1O2qGf1vU5bV&asbdqmU@%KgOZwb^LQI2MmcNOXP
    z2jy^e{IVF`7d2k)%0y5KN0tNAO=rtGl@6xp>JzeA-SNO=q8wYGzkGzJFY>h)`sYdi
    ztQ0y$_*7vUz`IEsdV;=hbhFTdroP2cD%T(JoAu7>su8k
    z@+&_fu1^yP5aF0+I4z`)>sIv%)#F4^jZ%LL^wTrY-wXX!q>oES9e+^oLqSD~{G5RP
    zZqnz}dm}vJFzI7x)$#8O?7I{8#i3!}ZgAoBa{RVT!Ll=m!EjPNVa{p<&1E;5L6$aXSJoA8=d1;n3jF{W-^W
    zDK6v}p?VX3QC@H7!A(D@xc%Y*C-Di{QTq9=muYKC`-}1=U*I^6Us4=~GW9|EO6}6x
    zfHIcYB@52|YsIw%_Vj}C%|$+OXq0a^xVZ;s&Yb|)^cBVB1AB(*VOv=}2)}8*0QK;+
    z;yME^==1t2dF(7I4Y0DXv>tvBdsaZFz(V{k_m%LHZ*>
    zIzhgAgM3N<7y0_SioYcy{$3;gMm#XLne^R2zp0ysFX%UQQ{9MiFNgjJ=^qN}vl!Ip
    zUeqTJjrz=iJNpflFRTZskJ;`Db9L_gcDEPYj(=8M4s|O(-E*c(+g;xa8ZXBwktRrC
    zhm+ur{+r_V5QcW%tA~xc>Bh@@DU(9Kc{c2PQt77yJNx?eEwD2ILcbgOtA48Vu_UKH
    z-E)F|d27%w3%li@e~9!$?XnQqO|(lK8g|6}zc>l5
    z`4@`YMi|Q9=9fP-Fv;>`%+E6QW&4NzA=2L;w1YE2d3K>4;4oAkke972A&=NRMIc9B+z-^|1M`|{tbbovMjw;RkG^|VyYf1sZs{l>s<6WVNb
    zXM_2l$k!GT|8pvSG1roxl5w&Dc{*BBe!=Yr=g#_HIX6EXj6X&{um|H$X+Llp+`bnm
    zt|=;i=Ysr+_BpQ+>EoJp8?6Do(NQ>f55{7*G_NzPMn@{!!2cbW2
    zk<#B2q+_(}Z6)nm~X
    zq3ng*w>i%_3;itVyMexSp0l6{^+@{XgZ6>}O^*jB(Oz&E@&j4_;M|+ZZb3S}f1C4;
    z?a<#z`qjoM5&uExcdt(eK`cek)#%(Y8Uw&l%tQq2IVs>Ca?*-vRE-CdD-e
    z{)UNw_P6sGcS`34B7aA~9eG4?q5d%FKaKwRJoKC2tn^m|{d2}orVYu^crE(D)@J-Y
    zs`M8G?fFdU^+yBRGfsut^ANbXk5M{-o&A0~H2s$Is2$L6n}Plz=&vCCOho*3D}r%A
    z*y$|vHgG)ZH(h>2PcPsv;-=WGU;*g(E`QV;vtE1?b{cD&Ic_ePOqGX!}j?R$McVdZV
    zfqr0@ZGl}x{O6&+jr4a0`a%3&Y5bzkJwy7(qx1`<`u)(~xn1R_KhO{C(_Lzx?a)6&
    z`XYbw6KV&2x`q%S>Q(qqf%HXL-8j>T&P|}ykaeI>mTv*CDK`dHnWfPw+HEj
    z+I23nUH5})m{#e8#_OOy(7}b<>2~P%lYVGi*cbE<;<^uqq5eVS?-0232UR*}g8bzJ
    z?l|&?LxVdH?%W^GoJ*pQ-}fQK?Sw7mr+ZE)pI%u$g+JkTnbWjWacM=#erYrONra1a
    z-Zl#F4#M3n6uuYXeU@-huSXERnZoA=yx;GkyDwR%6YIPg(hskH2X@<6Rt{lrvCezu
    zBdQ$Y-hlj=?d~j4quq&h-a{W#+%CdO<~v&h{}Jizf_~e_m3~i9uc3CAENgdyI|i=%
    zNlFK6Jn|FDpPZL&Exk`AxJIlU?b)NaEr^4-eCfQjAM1!XMdP^O#5(Wk&nj+@%^uUG
    z{j1=_T2=q&6&IR!7X$l?c{dJ?cDo964RX&Qyll++Va~POvKXRQ{KiIt_@?~ex~FvB
    z)`NK)PEr0vK9aab-u`XHiFo8El>hL2M1&7Pf130|b}Aizhy3!&@mHj?3*52qs&qP4
    zDkA?rhiR*_5WzJykE-~GqVzFQ3a=Biigj7i53LuT3EJHb
    zv^yMz+MUSP5V-x{Q|XKZ=>+2dF2uv*zz*o2CVer-ke}{3UXad$GQXGQ2Y2TCym}G(
    z=b?X=^s|%<>>K0@18z89tytq|JEr2_9?@>)c$+J)$02ZAf2_FBJSj*A^Q3S(JD`7v
    z^h5qV9h6`AHx5H~7VYc^xFaW2I@lVeJ|*LlSj*j4#x-F5v-2m4n+KnepHMrK!7(==jA$jG4Q_-cNi60-i~_2
    zx@*1S&f4nlM0x#f1$X>{nWfhXyNGpOZ?@vHK|X`=pf4B?g#KyhAG}EEpTe>Hgx8Ue
    z`ps4Lr}NM*a~CW9Em83gmBufwiwZAP`tt()Uf-IJ({nJ7Hl(vUs
    zs3N01><5>*RB;Dw{m|~xen_Nu8r;d3Do*STkRS99rQ_XhG$fn~jn@mXE;{iFDp!!+
    z(NgX_=0!La;>0>{pG)bXuch=#%eU8`hxzSYtn(HZDbBOmWu)9LN5HkTDy~1sr!jw9
    z4#Skr-x{z8&=XhOOs=DrgKJ7EF4V9494Z+N4nfUc7vPfQ0X*B
    z*ip`B&(GG0`S-<7fa^&s4$o(l*?QVqcr0~2774sn9uj+7JPi`g0kz>%GeTRy#HOPNx
    z{?Ls44esk!ahWxeFp`t|o`w%`t;i2nRzrEIr%T{Wz
    zLVqjtx4uKgHx$?@(C-QKlhEG}{R8h*`eF~G{FvoEQfgPhod!3wO>wh>_EuUSXUaLT
    z&YOIX;!fM_bga})qFnvpPQ6cY{VJCw*DrObNZmgQeX-8l{6|V3SydlPy$gM@&U=pH
    z-yP_u^>|xntUsTIewN}t8I=EM;BR8j9u7nPCem4eJ#ceBpz?JtNXM@qaXUo!KSI9`
    z`bE+YwGZFUSf16zmhEM$*kkuW6@RsPiKs`hC+`61hvs$Y&>BPYIvg71I1O&k4wcT4
    zpd5j{_Lp9V%)>ps?hh&b#=u^FIiz2mEp0EtKl;GUeL`_j{do@I%@p1ebP|rt7>v=i!=YB-#X9N8<
    zT@7`(er%&k5bYuh{XWtc$MO^M+wl6X2;T+$-Wlj0fqu^n^v^?o#SHXYu}7qP2KxQb
    zPm_MAp8b9t(<6U9Qj~W)^gBs^pR!KrIKMNnzo_Sf&_6)>p?#x;zz@W}Q5=T+KyYWl
    z?c1g5?TD>i?=Np3t*=0Ko>W|8(C<$8^?lY~ev*FO4}CYU^gDy{`0WGhH@bPK>tE=%
    zkbYw@j^#_|*{9Lb;*=;8-4{Ou?))eD>70dr!)~R&-8NszmCsjN@nZz5KBKsELHSGl
    zs#w||h3
    zLiQ5nIRyRL`&Im*bxdDh=BuwfU+2MP4k!*^)h9IGqFze;v-MTzUr7I0pda*)2Lt~U
    z<>-h08PX56f8YO64nKZTj_uGtNBW_C6#1ZDJTxvG8ufAr+^WA;O4?^QVWZN=qn*Q49~>w16vJ_|1MeZ@@#m+lbyuH~b@`1^9Qc*s4uLy2icmiVzq
    zFF7Cf{GH;agM1zh?710v#Gzr&EVwPtDXu5zH>OMN(u(wODrA@4;HK+-C)Z>1wso9s
    zrRzANotyx7u2FFrWfd`>3i=zPoix4%?eP+&Ka>4@-QZ3wP~3vR{-ym$Bg`L~Zwota
    z0e5VX;_!YE^$Gcn9Ji+Ze#BoN+z+lhp*XznB$``QK7Tn4ZcCTqwu(7}_=M7v<3#qA
    zI-mYHu>g~n!}loe^elyeL&MkCTgM{(pdZ|p`xMtw?{lSgX+m`ycG&?g`$om(gY>3@
    z^tK^A92)KG2)JYS&zx(x5`Oo9;#LLixip_?G-)HB%fa;zDDFUmrF{9)d55U?9Jmu}
    z6esST%TK5tWWBfgL=rSf5IFp}Fgr!1c*!S!w?&X(S`^7Q7t7XA8L6?e#H
    z7x5@l$S%U~`oML+O>wJ&`U}S4G^&rrVWGbj`q{TD{k}jy<2SG6(9fva7WUf@{prV*
    ze*X)k6-wH%v|o3*znuoRf1BdA+v+P@y
    zXd^RsaKk_}rZ3)sV?GJ{^`>h^ubAPC~(0!?+rTam4
    zp(1c9G`?*Gx9f!B3N}9zk6svlb`acxpD1oWRXfU;)_zmBt8_kj8v1)k|486xp?-CL
    zWWT!Lb?6`eMWy34TH4o0V@du*d+rCf^%siUX0zi&xgB?aJ9b8KI|A-Z&@Q(C!lBVF
    zkAQ1CtGL4#S@OBBd^~Nq3imC4r#QTyOntiN81uE`CG$1WFDwV=)%{-1OQs1cu|F0%
    z)09bJk1X_yq%ZaY$dB0``~3S4etX;vu6d41XF-I&$#J{U_cwpsJ^{{onc|Mv#*6*s
    z<3%$Hw_^d7>tahjH~aG~Kc79|PA^ehXn)9bY5UKj{o@q1e__Y1_$QrG+%8HEb`0ie
    zTZ8$$(BF@L_L9ChmYH=Z|NeD;cj!7_
    z#Gixy7G{1#yV(u>3DW1@Cl~3Q0Jor1*_Bi7#wF;#NMG>sQ^Bswq2D}%__NTTJ%jjn
    zLBC-J`bVJekiM{+{Dj&O_NA4qH=Ym0Ki%l-`~AH1tIdAD=3mDrm!fa$R(4Gj7H+R2
    zMmj^#&yxPJ$bR==WWT!$-0YiFIxB4BLR;y$Aj*9V+}st43*8^_%O%HWvGpZ1o(Qh7
    z4e8ygxVg6UoN}%k+^O3XC-zFq51u~``fD*Zm(C+Z``QBT*d2-+A}nl2To?KkCi1se
    z6kJ@J{+d;6;RQBT{U(Ip!$!}8S
    z;H1+H{mrC5llHa++(<^Hv)NWJneuws4{pz};yCNJC!xQC^sALemOp{#B1m5x%a5fW
    z6zO+Ee`|SuT)lr|2;p9NxIaFinfvR&BE22Z&yqf-u<8>^-@HF~2>L_J{EGO`LO(Nu
    z{479Y>S5+bw7Wk1(@pxT8vOk4D_!Ri8~t!9G!NbmZfI21Yp5OV3;L1r{d%H2hrsnc
    zq_`eR4*iHf56%VCFuBfl7WxyUf6CU694+tXT2r{6HKx+>f^vDK^P3FHg;SyV%@DYe
    zNyT+X1(heh#V0e!HOqdechppbiMN
    zpSs;a1&Q{C-wkr+eL(3C1^WK@D#k5kGDpTg1pQvp=hVv%=udo5#lOuq-=8R-?;inI
    z_=w_)LH$n$b`twmaTu}_Tmf?|w9j3NJ8DbsKzVx0#Z9eGDeh!M`;qPRh`;XOUzg;-
    z?fs16#Iry0W460Y>2-;)`(ALT|4MQFLHRO%`|d{ZGC})30sXmuL-`BZjnUo?m9@9#
    zW$07BqPRUl{}5_#)94&Z+ncas54hx46}S6RRV?&Fe!GzN*nX*Q9KJoag3BLOT=PrH
    zIpv4`d)WNzt%KmU{F~wq2lmJZ^}P=U!J$##XTdf8RB;Dv*P;2+>ri3;)-J43ol%@9
    zul$6{7k=(T==Vc^n)IuU(-d1x)GSc5K+OU*3)C!7vp~%PH4D@%P_sbI0yPWNEKsvR
    z%>p$G)GSc5K+OU*3)C!7vp~%PH4D@%P_sbI0yPWNEKsvR%>p$G)GSc5K+OU*3)C!7
    zvp~%PH4D@%P_sbI0yPWNEKsvR%>p$G)GSc5K+OU*3)C!7vp~%P{~xtLlcyf%Y@*j(
    zGN(IR53in;
    z=kW?wDe=luDP59RkepBQH6+Dz-6Fm#NxqgOUS)<)lc(O7(B$D&SMnIIgpyLc3Q2^E
    z=Te2lt8t{nD`2F=D^sMzt3ss2t23m;t0SbuD-)zt&%HKzcywMK;}LTy@#wXbc;r}0
    zJYp*)9)XqeYLd%IUPJQrB(EizCV3sn>q*`~QoTQ*$-9w`Zz6d!$rU7TA$cpw+er41
    zyq)A7Bv+E`C3z>wyGY(mvXA6FB=048AIViD-$3$>B=0BLPx1khZz4HBGDC8Z8%tV*yLoMZIEYb|I{o{vp~%P
    zH4D@%P_sbI0yPWNEKsvR%>p$G)GSc5K+OU*3)C!7vp~%PH4D@%P_sbI0yPWNEKsvR
    z%>p$G)GSc5K+OU*3)C!7vp~%PH4D@%P_sbI0yPWNEKsvR%>p$G)GSc5K+OU*3)C!7
    zvp~%PH4D@%P_sbI0yPWNEKsw+|NktIKQEp)Zgcd{PP=4+k8TrB{5Lt?<3gtCY#^Sa
    zPr<_HnS9a0KgHyo-$m#DFPOY*;lIe_(-!_9lh0WAuQPei!heU!=Pmp{F!_RoKhETf
    z7XBwp-uZoW{XfIxT?_v!CZD$O&ocRpg@2C8dlvq}ck}!=Z{aUx@&yZj8Ivzs_{*8R
    z^IUZOFJ$trg%5J|WVaYQ>WAHUWy
    zdDp^^Gx@ZI-^AoI7XC3N?^*bFG5NfOe?OBiSokNHe9^)`$>g0`(e?inlXorr=a_uj
    z!he~`XDs~FOy0Bb-(vE43;$gvU$F2$V)8``{}U$f)J50-GfdvK@V{d6X$$`>lh0WA
    z=a{@_;V*m-bNsjPmooW+g};o+7cKndOx~%FuK$Hh-nH;cnS9#9cQE;kg};``dlvp?
    zCZD(PE17)3!r#Z_ixz%>$vX|v^}mkEyB2<&$)_#+CMKV;@Q*Qh&%(cp$>%Nn`}ix&P#ChxpJ)xY>xd|dgj<2=RWUEG#xC#*;SN`ibUuNXA_gpSop`7yhprQ|LG#
    zdjD}y{|A_S#=?J<$$P|`{`VawpSSSeXYvK&&GvtS$rmmBPno=Pv8sPF{a-S9*TO%`
    z%NnE17(Oc+>t1n0(Q~FJ|)23swD_?Z2JL
    zyB7XhCZD$OE0}!7!r#f{J>t#!eQx
    zh5s&-PZMv>|Bo~IjD`OfChrk%+W$Y8eBQ$UhRGL*H~atdOulI0U+_K=WA*XVnWO68
    z^uIYw-X-3wzss0>+QPd`K100v9gSfAxQNMn7Cz48^A`SUCSS1d-AuknyxD$lXY$Ua
    zs{T#>UMBAnZ}y)9Og?SlN0@xZlK+R9yl3Ix%;YnVEBlFGpAa8c{_8l8Gxwr#N>;_oBP*3&g7jYReqCyipjecejk%h6L0okf5qf8#GCf}8k6@d
    z`Tsj6pSR@y7?Uqp^8ZgvzGzAR-o3jZ)5M$pdkd4#
    z5O4NhcQJX7c(eW9&*bx#@((fjf`wntoIiex$-Bgx?dK?yPZMwY
    z-~VOu8RE_M^RGM%`hDM^
    z{LM_hK)hLhuVV5=;zeo2$Cdv&&TE;x^Kw=HCcl))yTqIQM<w`8@Ha|LkV+1q=UKCSSDhUt;pkE2I7YX(sOyZ;s!GnS7dfbN=}cOg>}D
    z|BsoxXG#Cxn0(%n{%Iy(Al|g!e=+%@CI7!?^3FU}|7QPv;RnR|>f@(t;hUIzns~GR
    zU(Vz+#GC#%zl5hjF(mZ!`<{irs)SF6NcC0oc?+Lp@&yZj4U;cg_?wu#^D0&UX8*mC
    z$-Bgx?PnE}Pg~L-Wbzpc{~(k1Ec_Ic&l7KspIexG!IJ(vn0%3VbN>5BOx}65s(;ge
    zo?!AW@n-wUGx@ZI|8pjvA>Qmi|B}gj#GC!k-!S<+@n-u!#N-Q>^#2c&FIvj~LniNB
    z9$o)GVe&5V=JnqxCZD$Ozh?3o3;$at?-6g-fBgrAU8;|NdE(9bZ)EZX;?4H^QYK#{
    zeh!ULF3DFjdB;`tZ}JP7yi0tek$xMKPZMvhKQCkQ8RE_QyPnB=#GCbZ8+wUJU`8@Gv
    z``g9j3&flAhfgv2qNV(Q!Q`F!(f$9InY?S^3rs#uyg7gPHj~c~f2q;`e2>X{#GCc^
    zk4!#q;ZHL80`aE*{esCCE#?1jChxo^+W((p@-Fcr7V&ZAzm7BekHwkl<7b+9)BZ1F
    z@)=9|uVC^X@#gsZ8YZ77-W)$$nS6nGbN-ZK@G#IsW}Alg|)u*59X@yhpq_fA|8E&l7L@-$5o{Al~dhzro~-#GC!s-!pmVwW|Kj
    z^nb+UUE)pq7nyvTc+-AAWAYhG{{NH7dlvqGnS9<-{)QdGqSeR00`X@1yM)OXi8uY{
    zWlY{#7+wFDGkKTz7t^?(CfUN|GsK(YUyR9n#GB>sV)A+7&H2X-Ouj(8+5UT&e35wb
    z`u83t@3g4;Gwt^#Chrn&`rkSxpSGkw!Q?ZuL!w;O$3KsFp)EeH
    z{MT_VV)A+7P5Zr=$rp$>+utjhe35w5e-
    z?bprZi^QAb_w7vHX;bz$`FokXOT5|s2AF)Bcyst#z`-hl(o_MqUew@h{h&ShdPciu-@#grqkI6f6Wk1t@
    z{))-F#GCp58k0{GZ~D*QG5L&zKgQ%e;?4QbKQZ|{@n-+`?@YcxygB~;ipdu(>7Qfr
    zPD0hcng3Z&i1XFQKbLs3{a?)F)5M$he+iS%5O3OV9+USh<-d~2=ZQDl{}Lu&Al_{M
    z9ZbGRylKBQlXsG;{!RWCChrn&+W#&lpC;ZM|L$k<8RAX*4>5Vq!mnrYdE!m`ZDjHV
    z;?4f|F(zNMq`!^HJ1JHFX8Zd9lXr`LredPcr$8h2P8MJ>t#&>x)c2PrO(*2cLkF#TJrxoChv4A
    z`m^hXG#A)CZ8wX9RD&*zCgU$e~&WxBJpPZ
    zO)`0BS+xH>%H&<*&Gff2`84t7{N;U2K0~}||36{!o+bZJGWk65X8*B=$rp$>*Y7{i
    z(*2
    z`#(&+Xi2~B!@Tj&xjMT3U&!QL;!Xc=X7Xv`P5*fnlh0Vve=U>uEc{X?pSR?{lgSr|
    zH~YWqn0%3Vv;E)7}97X7Voa=KQOl$!CZ+$M0b#?-6g#KgXDSfq2vZHZl34
    zh4+}ebB(gUng4e)`84t7{ON;CK0~~D{qRvHpC{g||J_W!NW8gz{aGgOzFyhSY(HOO
    z@@eAD_Wv}K&sg}wOx`2@rN;H&KQQ?M@h>s>A2WI9T4g`;`t#qIe42Rk`u8-G_lP&k
    z|6feLK)mTczi0AJT9x0Ne_Z$xalZQXqf5Nm|28rCH1THpeL0iQ5O0=$ehE*FBP9Ii
    z_lY`0g2}rU
    zKF{RS#GCEs&zZbOyxD*MC6g}@Z_eNUhRGL+e--r*x~DkAHgeBv@B+n9Ww_yq>P
    zjLADIRQ}ER|Mg7XCEn~mZ)5Ul3*X1&GnV{6z~nvRg%!ldmH#@jfh|Y-oxZw3;)MVK5gN5G5HMf=KABOn7l{4Iez{HlP_5E|79j$
    zB;K4q6qvkotExY9{QWkQcP;$)n0%Ue^ZMr>nS6$Lv;CiB@}4FAUoiPR@#gsZ-%P$h
    zym|fb9Fuo$Q}t)|KeKmORNo0+^vylMYlCZ8wX?El`tQo&e#YeU#J`sEogw+3Oy0R$<^ML~Jd*#*f>LL_%4ILgvqD-qVxYUCSM@l9RDt7^6otM%
    z*?)F1`2z9g^}`KJzDT?|e)TYU=U!z$GyQv*eDQI`&!YC@lKkj4alXk(OPQv#fza#M
    zE~PKD#mANZI!>O+r-^?hacPoIF?o-8^ZNTQn0(%n|1UE60`Zp{`9H|yo%@vi+lbGQ
    z{5q4*5O1zue}~EEi8t4e|AEODb_uf0NmITvB)|J-y!MmHE8g_KB9r%scjyNwJd$Ub
    zyz|NE^y{DE<-b7oGyAXOO#3;jRQ;Rw{|S?Ki5Ibmk1PLmoM)JP+LHdSn0$tKoo<@a
    zf0oJTE$KhUi@!b^ZdtogKGb;p>~rYc`1|65O0oumoa&dc=P`I3jL8=)`F|IaFA{Is
    z@BK{P=~wnQ%l`zEcZoOc|0I)76K{_HPciw7h5sCr_lP(B_sdK^PrPZrrf`j@_QEk8%#cL;lIb^3l{z)mnZv~>)*d(+OKFy|G$~(7b$&n{_`v|ednoY
    z|G8j~Xi<#ygEy)6yTb6_=a}i|i8rqwFMJO#{Q~i3|9dHuFIv*SjLAC#s{H2q&*esw6T
    zU9IZh9Dl#d)hTpI=zYxB$F=^Z`R*aOx{_m+Mike&oOzIc(eQmn0%Uev;BOP
    z$!CZ+{r@{m-Xq@hzwa~oJn?4#ae~Pgh&Su+r%b*`yjg$0Wb)~ctM!MpF@CIM`cKB<
    ze;Fq4S@j6IoBMAUF!>_!EoAo$$;C`QJrZ4i?MyyHyxIR=%j7-c&HHC7
    zn0%i2*BRx%lgT?zM*Hs*dwA_HZ}Gp~Ouj(8qbGpmNc)+*Gpg#(+`sfjX8F^^oBp$g
    z$!CZ+`~NJH_lP(9?+r{oPrTXw-pb?)#GC&6E+$_j-W-3YnY{C$sz0;*A7=6{@n-%%
    z!Q|7#yW~G7
    zo_KTp^};W{;kA$B>$r%{WP5ogib%5Rq31c_Zuef
    z5pS-aooDg|;&u1wQWjtEK9R5L^M@kw=KB2{Chx9SExbj~}CZ8eR
    zY(I;byhps*f5n-6o_I6=S2Otn@uvN{nS7CWv;4O+d1p-3pIQEUnY>H9IsY19@*eT#
    z^UEVlzCgUW{`fGHFA{I=-+eQacgL0e%KlU;C49%a-@z?otk+16gZ-&x0uYdlE
    znSP#lv;BXK$rp%UXw=`|G5P<8y}J*$YRn%$exIjKkBTHzS}DrYNk&Ny|Bb512QrW;X|DMT5W7NR_iGNO>_MiinDWn@~2LZ*y|LZ;un_UHXEobR~4
    z`;Xu6kKc9Wy7un8_FnIGuf5jVYp=c2+0iAk{O*9-BMtm((lK5i}|zYkA>|&wqDkM)9v4~z&@sLy8pH>uy^!L
    zw}0mX`-Hyf=MQ@o*n9e>`_E4b>{I%t+rLkNy=jp3-}Lp<7T8DhP5=Jp6@N^3@oru=_B@g%b!CF?4w3m|4q05hyr^{-*o>UU0@&6H+}y!
    zuE5^WH{E}3D6miHo1VY?slYy^Z@T^NDzG=hW&JnZ{~jo?kLa5|{~sx^xAaY4KmS%>
    z?|!6TTww3%n|}VXyud#Fk;ngLfxQ{=-`D@U1@_U8^dA@4Tl%K!|MLQSN8j}M^KF5B
    zLZ7XL?7t{~ZA`O?*)9M3`Io0}`u?|VfxQ_i>%ZyqZ`T5QOW*YTwOfI`qi=ftvu}ZY
    zLf>@%J*2?i(>MM92ahhWH6`Aq4;9$^2eR_O@BaEk_n(~$eE(@Kll`aZ-##yngQ||)%_(%F93hWd5rq7>a3+z38)BXP!1@{_~dtdr#l=_3P0B`{YL+|9J&I
    z{*>{X?tcpl9N+)Q_yY?ZKN>CjPt)zcq`>hl{ob5+$Nc$9fqg=sEk*WUl)pCS?*;b$
    zNBZ{)>{I%t$L|dV_Qw79@9uM=TG?!*>e5w=MU~j`gR5Op1$ex
    zXSV|Tl)mZt&z=SL<_cN=O^^Tk71&4gO^=_47T8<*9_+U}c_@jc_F{JFTmKG~Z6pDW?hAD2A?+8K{6PO-!0TbbVD2%9UU
    zx7gwsJM6T_iS}1AzVlj~qoNA9vG2`P1oAHc~Esn9nPJ5haKY{VJ$Eo(%lrTPyu(_V`vBfcV
    z*lCXw?f=O5+T&DvY)Tm)N7zhcd~9)y9d_E|MEgmMuRTt+$EJ+&afHncjE^mjvBOS#
    zoM?X|<7mnOJL6-EW9+cg9w*xWneny9
    zsrJ~kW_%oBGoA6V#W8l+X^#`_6UNsbr`luFhVgNP%^i%7Esn9nPJ5hae<$N>k5lcj
    z*@5wKgw0)yk1dX|!%lmgXg`DTwa2OU*tBJQ9AR@e<710s?6A{b@4rgsXYP?c(H?v4
    zajHEw?dWGpA7P6vb~wf!JMCvNzV_H_k5lcj*^%+@WqfS0#SX{VW2gOnjITZR+T&Dv
    zY<6P&`xzfwY_Y>J_Sk9v0OM>
    z#-Gjj*kX$vjW<0>~M@dcG}NneC@H<9;e!4(~QX}_HDwZ~q2oNABF
    zUX1?=<7100b~wf!JMCX(eC@H<9;e!4vp3_v#`xG`iye-!$4>hdjITZR+T&DvYO
    z>x_>rjZ#>Wx%*kbcG
    z<711R_BhcVd+q3
    zwa2OUIQof<=W&e9yV5&sae^K8+T&FF_oO$yW&Rdh?6AWgC)li&-fNFj?XfwK<;M{=
    z?@Mp7#W8j`(H^JTe;|E)5X+Apb~wQvdu-N8pK6cI!7@LGBkZxoWmnqEjAk%A6x9S$BFjXYyS!3
    zYmd!gjE^JivBl<}jE^mL+T%of?6u#>_}b&>aK^_m_Bg?26Fs&#>O+q$_IZcDHpJ#r
    z=@V?R*B+QY5y7HYmdG5IMp7TBN_j5#>W<0>~M@dcG`cz
    z_}XKyJx;a9=BJGRCF5g@Ep|A@9y{$fGrsoNYmZayu{nzIw=h1o*kXrc?6K4SE5_Fz
    zd+l+mJvK)({@09;Esn9n4twmi|3>;$du)!8`8#Z}$1yfrS$=GBsy&W=CiC;yV)L!^
    zF}B!YhrRaL^yTsYTY8HvcGzK$JvNqpoAeR3*kXrc>~W&K$^H+PcE)RuQ|)ndERP?@
    z*c3_cu*DubY<^CUEjGpU*kX?zPPND8I39nA^bxk$Vuu~}*lS-ZeX2cLI6`F`E7|6uvP+_3*)`TpDR{}1iR^8b>@kLCMmLyzVAWZ0
    zzR=KP`Toza{2io^&SCj+j2%v}#~zzqq))ZS=2tR5r}tka_Bi5x(@}bhEq2=D1bghY
    z-&K0~KE|;AuzbH_c>GwtFEKoREZ=_^9{+CA%l8?E9?SO=h91lJ4Tc`e_Xmc4cg8=D
    z^@k(uu*Dw7*mROU(H_h9~;Ju
    zEdTi|KbG%j3q6+aTMIpw?@tTk?;*W>A6gh6n_sj2afCg#*mRXX#uhv6aiTr;+D9z^
    z1uQ>~u)`L69Anc>dapfBwa4Z{nZL&oHhW5MvBfcV*lCXw?YlF+_BhoZn|qiJN7(dW
    zd~C6NzfjnISiUbPY(FgD{}Z;~Ued?fV}~71u*V*oy;-h{SpPWXey8SskIhW!Oi%eU
    z`VBpn?}rJ?kLCMb!t!JJ{+6)(y_ipq9!J<=i#?99*++V(J@(pT6SMtsgw4LvTWoQR
    z9d_E|MEm`u_uAuBdu%EgA4k~i&-mEl7(48=$BFg_FuwLU)gDI!7#~|~ejj5bGaD*kg;$
    z;nK(0Vy8V$w8viiK8&wDmfsH@)<2GUd>%V}{6|PHzmGY*{$Mkh<;M~B*kW@e%a1K~
    z+T%ofoNE75>E-tUhw-uee&4YCSbkq`IDTRI{k!4#b(HjGI`hE^kI!MRk6)*+X8$>w
    z4qF^!haL7f(f%0ez4kcO9-H6FcpgXC{EYFj#q#@2!{f*D`%1&($L3;|zpwNWw%B5a
    z6YR14{?4%eEX%Jwmfx=##>eveGQ;>feGTIuE4}>_6#5maEM0=cSk8M56f3oy3w%B2Z
    z6YR0q{uk1x+GEqe^5Y159Ak3|%a1Mg+T&Dv95u51r%G?J#W8l+VUH8-Ph2(KU5T+a6Uwe%6TSpI!~=yA;b9y{$Xklt&LQ|z$$1Iv#i
    zY%Y}EalEzIa=+92wZ~rji+KFn<5YVr|K2)0ejJVF@&878i!DyD!ybE_YM+zdIGLZt
    z5q8*Oj~zC#^j>?MYLDgL%ZBC0^6y{6>rVyCe+A=X`S+<|`(gR_rlHsAujKI$V0>(`
    z{QJ((tFMyjJ(hoe8OE=aUj990IRC)%?;}H>_na*L!GAOFzwh85-0*)H|F7rxqA
    z{=dA)KbYPB>*fD{J^%mT*N^_5`yXtS?;*{fuiEe3^1~ma{PE$(@3;TU{g>otcc9a`
    z>hD>R+s${k>;2pR+`b03uYv7rVEY=_z6Q3hf$eKx`x@B32DYz(?Q3BB8rZ%Dwy%Nh
    zYhe2t*uDm~uYv7rVEY=_z6Q3hf$eKx`x@B32DYz(?Q3BB8rZ%Dwy%NzKi5DM7P~H7
    zjtF03RUiK3SFneljQRfmaFcz<_<{LbjmdxCxDEeiIlJ&*)gMPZDh
    zUg2_5xC{%I8^h)Ca7m3RZdqiCJBLg7CGf?A!sYkjGAUf{371F1Wl^{+50^At{v9r@
    zi%oG9F8hW{Soq@O!{zL785l10;o`#O#&Ai(<-u@yJY1H9%NybHLAZPwF3n0z@t)yw
    zc(|MtF24?!--b(LxQq#x8^dK*xI7*%FNDjAa9JBJJC~Z`pM}e?aG4w~bHimtxP;%g
    zUfiq96dxKcHeAjOm+)^Mio^fcTO9shtn7Q8il>Fk+;I6@xV#!J?}p3g;Zoep6z>o&
    zdxy*6;c{ZQ{3=`qh0A5(a$UI02$x60<+*TqBV0ZRm+)`-i%ZK*@h;`2q*u6v|F^EB
    zFpA7cTz_mpxjTl3#?&h;X?xTwV^B-CLTH+o$Mxys@7HMy#ahEci7nyQLn!|T3(Q}wXw#_zkXs(w&y
    z{m}2<)KJw}Tla&B8XD`X>g#LknW~|tx}h;wQCC+rY~T-W8dP6Zm8+IO~e{+3RMOen{v4!h~s;Y~_AB|Pnf(#m2U)>mP
    z4Sm(H5&1vss>8G_Ozoh76{CWNW=oa}i&EV%uzGN|1l0`4lN-t-
    z8hUYl!G~20t8J*MstPM0TeAFZVRPlTLtX7ilhXyQYaEg-V|b*)2IdCT*H#RytY`?M
    z{NVP6>cPV*!ZQEh#%#d`j;zQQ=?Awrxhc#&dzd=Oz^brG!+KK>9o|@VX?O^gVa@#T
    zw&BCLHNPh7E3)mDEo%O;gdb!J)>l=Al~-Riw01-orM_xpe)~4$_pY!rHiQ}HcgTk7
    zu%;S@>BG)$uL?`v@ZAkEK-j&qTN~@cTBxcV8dhKS^N_Iqvp>~!Vao&$%$^?M&q1>H
    zgr91%?GgSQ_WgXAcHxfvy^Xcup#+3IQvVD;$V|d*wIi#-bd9yc!;>WZkjqsxR1C`v
    z2`iwcDmSb)Jjll3^T2s7!f?
    zksDB3+ZcAuitN-OynyG-3;TpWOU-=0N4WOk+7wrs79&jC?8`Ar&651>%d^`{E9wWE
    z4nv28BV|=(cv|O%glB8mgS*t#HdJRjUO0qwYYY>GJ+f!1+4|4o&`*88T{homTZZdd
    z;blBrzY@N-wOAIiGJ8Q78lK~|^#gMws%vX1viX<>Q#`oAgrni8oEc?G1`f=Hqi!y2
    zzAAHpys}i(n_G)Y&A11440D`+U-%-O;(=i<1FOu!qN-u}AD#{OPk21LKe_*V_pj0W
    z-w)>^IrCys_KIje4inG0GFv?Nc($nS&605KZ_gI>KchE<*Ma(6T}6Gx&;~QLxUqUz
    zt|A=eN0~o|G8|A2Kh$h1svcHb7oOd@N;9FjwzekwF*`8aSUfzu!p$fyHOs#)3iDnN
    z&V@{IRYPS(U6uK~I7|`__>Jc4Fv0p~^Xq9+ll63S$^TeUx0RHd&&Os{ul;+r!1KS(
    ze%|z1*mlJOY6p%o%Ssv=hc=qm!@18e^L$BIdh=FjCcl+Ux9IueqVNEQn$6*+RhzP?
    z>e9M;^Q}bJm4?|a%_e-{tL)mnTU^v&?kP28`Kg{M8Du^#sUDOwlS=bDo=HmcgFO(s
    zRqL~b&zVO{tHTI`&8lo(2Ri*${4-dUJNm^2y;`vv^>2c-afPulaXr
    zxOYrh*tnC+!v1+(IK>)RH8>o2|5ZA)uDYhmgcGsSoN*-;bvbiK$zb!3(pqy*n11ay
    zEyCQkgn5SDD;(5na`m;t!>h{Dvi#wYJ@eHt<(TVs2vbg2-zHoq^Ru5PzmQ$8n$k90
    zubz}$Pu`Ntu2`;V;Ri`YeC{SLNBu
    z$+j@noN$U8&VO^}>gJc4TbqX^%imC8rZ*3-wD*M@mOPxzVcZ?rVoaN!O`WZ#r<#Z3
    zSbd{e9H!X%U^e$~o*7Q4o@jo_@TzcTXkKdGSP|y%cDR4(qHLvacqV(oC1cCO_0sp6
    z73D@8Y_1LGv;$@3RE?+#&;5$}`s#23@NF2pI#W12T-D;c1Eail)|-hfveo)t^Wnqt
    zXI1957GYbv><}>H!E6DCR2+QR;kf~$8mk&|!_2!a!gDTcyUK7%us%%bwuNV8i;4ja
    z=DP9$`Db%Z4kcmQN#&J;tHV(!Y~EY4wVIPnJgq!`x@(>*A8O__uQ#u@XfXe5(KxEE
    ziX%YF@c3TKo|%*K2bVdwWY-5RTRtn-5!tW5W0E*x0hB
    zI&9W2!pvs9p6!*hzG{^{hr*F^POC8M=URo^mafdMmuv}V`NadO8b?-zjs8Nb%J2+m
    zG|R(Oo2F*>&%HhC{l8n%ZwmLUe!X?LZPt6){p03`?-VT_R9zEJ45|j2>sseWnbbN=
    zwK|MxZV5k4doY_a`8a(0U9rr6ZtFqA!-4$qaOb4w!>o;O9X3Su;2{HQ!~TC?>+HDv
    zO1Lw*Hydfu{n;{%nXixG^Kj3EJG0xiKB%{iYZD&JyV-3ECTEYRqOn09@U%AHJqxp>
    zBJ33ZY+V`7pN54&8qC+Nt180zocUv$Ml-98Y5v`_^wF>?Fzm7=W>Rgq
    zBkYZJ^|jgE=FuJMvZKI)uv3Rulp9-yV?oY*({h-ZwZo<6sgTY1GCM%6_%xegctJCt
    z?2x@Md=~Cmn!jh-vg|qFUdpb=y`Ejqc{aNq^Fnq#ZAp2N?7Qafw%IW_oV_)e>)U2~
    zpt-57yfL`7ZFUN6rni-MANRKn&%fG=#%ymiU+oay%!Qu^Ww)5IZ5zUYr)@a==AVD-
    z-)~nG-k*fkFw$JrF6^VTvZu|gso5)M{t07lZ8xOqQZqf=H)lom%wL6|hg(c(_8v1=F}!hz
    z+0ZV(yZx)3&Tq>P=lAb0m$lDl^Bc2ccw)`Wubdn5E9w(Da6BDuPseAsOjs|stk^Mp
    ztPu8+B|A29j$Lp5zN0A{SXC2Flg%UTvR&ZacHtbR(foDCaAsInJ1iWp7VH?VJ_zm5
    zipuOXG&^vZyW2H3hC|}lVUVp~WZQDnyzHm}KRaZk*JRgAAIn~c{i1OAD9KMZt9|~Z_`&x1bECOo@^MqL3Fn6oK*AI4gKXX_
    z!U9`~p)&F-?Hj6U24&|tVOPmc
    zEA!*5Y#-kC=W4>SxF)>2sH`z>w;wqqyuFoos_(TAk5u-tXLkyF)%vg;b8asUOEBS<
    z{Ppzk^=)B~4}-7SIh+Ok$O+Z^;nSH#GqYgQnCwMm(>K}Av%bjU{K?F;4*BzoJ3C}2
    zGq-fePG)9x2vh$nn{L6%?0W6j+4b`GO2e7T@(!G-OzJSm%bu!ICcTqguMgk67Y+gW<(dCwHrM=F
    z;Vm7j>vG}qj___RoPAaeYcSI~h9^|^HFYh+`2Ns0Q2$Am4m~vsza5zcbDq0
    zIo=JACA{*6<6rj58_umd4y(GfF?^zsy;%q!NnF=a&S>+esgpWpd-0te!&`)54f$tg
    z_0YPS>dJ5|<9+FqVdOEhv%P=J)D}fqR6T64nYU}UljaYV;raCBuGu-qOX0RTE1QQY
    zSG<;8PhOr~FJF~i&$%=Fqo%U(ZluP%v#UIT*6o@v`*=I(xb`R@raFv-CCfxK!b}qSM
    zN%*GJ;_xmzoR?IZboYi);f?oD^Ff$k^4)F2W7`mZn!h?b^;^9x3#L6D{&8ig911!O
    z4X;e$jrsUa-<|I?W~=RnP9v(bH-2VHCsR^oChVSVWb@?i;hAi1?-X{ZTg$>Dn@|_7
    zX6zS+4~MqlHI3$-PK~t}n-9VSlk?}AK3s>_x3I3ZcFIovuIwBh^R{gBPRL)U|IRjQ
    zcyOJ=$53~MJ14pP3d!F&H-Be%=#O>2B%Jgu?3}HX26Id28Z)bNUA1|*bAx#{+!&^K
    ztJB5dMfc-Q;rKbOb9jv~uZDSjzBYTzGyaiXugzaC&tI>2JG;e&pG_Gjw^w(OliTrK
    z5}bew|5E8!8KvxlI&T=8?J4g<=pJ9F0w0y_r+mXFfW8@C;UCzzGL3Z
    z-tmOPLU;~*+2y;Z!`3d@=|(u)%$em~vL}kUa*yyN-H;uv*KW(g`7ZzFCVwEDy+?zb
    z>OB%B+VXie(WJj*@9gr2yO;OKf5x>U+&AXW*?sHp&93L>fA-;>W_a;1U+xk1s;yy?
    zt#=iLjWuaRm}179Y##adnKyN94A1*vW@^{)0`Oio#gfayBdsuh?iyaR2322bW_PU*
    zZ+GfPnMcATQ^RNOrhI_;`yTn1hL83LPvY>7J-n^kv`4kMva1~YuJ2lB9`Bkz9=@7I
    zTZ+P7xTO7qfGKCE+@IaT+!-ybNAkWp0lyt{RoSAG<3|GA%#J
    z=PzUvt_s(tB&?N+x^U_gg>&cZhv#(irD5{r&u8-rJLs!XHj7;TgU9e`SC!cq?wypM
    z&4O$;r9(yys1K(j=H8H-FQRNhbA7k)Sx5FXzo}c;-gjrm-xYV471e}yH{HStsW&%7
    zm*mW?-LlVUjSthTy(fDLtoT{DT4cl3+@EI)n7y<%n6=%i2ZraP`LG*Dntz61(Uk0g
    zq~o%sl(U|RduC@nH}4saSmCn-Q=C5!xNXlva@h~rUH6B-he+!}wdl3%Ns}(io-X0z
    zffx4-A22qUS3;S7oZYkK!|Zz8rtEs@J7KEQ@U%AX@0sn!AMY8~X@mJRG>v9+NTyzs
    zKlY5z_KbcZm&;Dg%YM*6G7G&4!ugE6c@^JQw7hWx@%+o!>t45<)(j$8}
    z$k;E3Xvw$P=aMR>)WHv1;&CA`Z%=+$f#$vwe9zGxrpE%bJGTXX`gJh4o@Zq<)zeo5uvnKmg
    zeL;@~v!X|%nZ1|HdqJ4dhAG){xG%E9!JwLo@ZR$3y?^jxJAUu%mE-BX!i%uEA^aTP
    z_UFvEd)Ax#_BLhNn-B9@w{TYX(4H5EDYAEe=D9ty59f1c<(`e^(Y?dY^FsEpw=T`D
    zCq0&3r_X0QO8zvHh7-ZgSn?1v>Z8yZ+xl^@ye&_J%(x%f31H$9Fa-UT@
    ztty$i(}besMQ5+xX;aarqR-17*lYijPWt`XbIRtIF6e&XlClkDvq~nHd|o#9fThjn
    zl+GzlO6C`DC^>$8aj$4m*{Xv+Z#k>T7f&lnN|M&&ipCYqEt_Aowe{+vsU?$&9w?nq
    z^g!9!6N;ymE@?3-{9URmnN>Wgbp0WViYJ$?Et*y4%PyTZGCt
    z&33MvU%a&_DVkces_4S~x0YNup=4aqw9-u_n@XmZ+2fDjbxGNTX48t67Ef!xwdJhx
    z70rC<&iij|owk`!;)^ykKXhyBBjSM%lnq%>d}z&tHg&#qM%lC-TxpLvc`j#u2O)6X3Ea?z$={=+6toECB
    z7}IA%$*g8!la;J0o!??n>!eH4CTz^&6~(JtPH54?H=p*C2U;&FTiR}Us|T979$T9&
    zXyeP~7A-AtyNxTKT)w3JmKKwWHtaH^-O?_TI!tIYt!V!q`|sRiLs^gT=l+LI+Rd&g
    zSyDQybZY60W&>TBZ?(K=$dDdsn;x@Dx3uisWB<;bd+p!3*Q(~TN>5#1=2{%Te&^-I
    zlUr|T_CWcDX0w_tC>prDc-)R@$?_f7w%O8ob@AHrS!FZ2PTqS-$^4FoW*`0=voyR%
    z-65PVoZ7$0gg?wbu)~{h@+-OjTRayx?NGJjd=Ne;;Zq}C&g3M3&r=~P55D)ER*}6!7EmYm*TB|7r%~I
    zuNHrRmxuqiAzQwUcu4c&ytiTBPP{|-A271@J#J@l7d)+t_+UJFKk>2n_Xmj2#AB@Z
    zH+X)ncqpFJARdKhHHs(T^fK|SxL5cqglzfm#9PAuf021MKKg#~6L{)h#4qF3bHs1s
    zLmv`s5M*D_y?FI_L5
    ziWh}V}+Uz|AcnRpSd
    z!UsMq_m99AJ}SNqpB?`GCR_doaq~CCPv8|R#V_F_z7W5Q5BysE8TPnUCt3deo0aD0
    z-vgf>K9bDFI~qR_&Hyr>jgPnD0eIJ+i-+TJCyKAa$w}fH@vL8p@5KB6N<1H*mlMB)
    zHw+Z7#H|O3*WrP`6@P&z)QC$v%i~*xcg4O|?(c(oK6zIftybjzmFH;Z*i~ic~G|gckUvO=h9om`(ra*d<0Gt@yU43
    zz2funKs;?@hrzr#bkcsxFJk@$A}`E%k2@zgiO&)^3>6u*iaKNi1-_unl30>`*K
    z{4I0X^-Qu=?r(!V?toL=1)K1xS+;)m!Vx|ITYMOf@iExp6L5l0!ycc5Q~Vno{?0N#
    z{$L#8I&ASM9OEmo!{c#+Cu5Iq$0@!Cn{6`wY#ibF*y5*fj9?4PvR6mhfRr$zYIq>e4vwmK3V(@j`2s>
    z;m>e_w_=aWBAH)`cfh7p#_xzD9AS(1!7)A~MRW;Lh0Ny>N7Eq(^a_$BP{
    zN}S+#u*V9N`u{Wcyg$9>=%~cDN@_@Ilz)qi~8(z-A{Izdw%f`Pkx0
    z9OI$b;gLAOS749F;}qYFO?w%CI*#zY*y4wAjGx2~FUARe1$+D!PVxKL>@4GN#1Z}q
    zTU@diuRpjAcDN%>a5wDnemKR4Vbejz?~5aRGPd|E9OH|y!-H{xFTo!F4yX8PY<7|H
    zC*la-iY>ki$M`SU;dwa0PhpQ=#3_Cqn~pO68XVydvBjU^7=Mc$F5g?WPl9*E9(Tei
    z-V2*uW&GYa!bf6@kHaxO4Lf`;PH+YG_+p&m;n?gZz7|`26OQri*x{Kt!4F}N
    zpTH@87MtB={AD=8Z(@tz!!iB@JG>buxTvRW506{n6nDU;lZ@XLM|dA>@gX?I$6$y1
    z;RK(7J-z^^xC)!jGJY+N@F;BYRXE1iV~3~U1mA%@z8|Of5p251_zQ7_pT`!zhGYCT
    zc6c35@Tb`0Z*Ypsddc=Nd&u~0afEln7I()nJ^(x12PgPg?C~i$#phttRmRWZ2v=i^
    z8*q#-#}1Fh3BCb)d>c;j-PlAj{%joK$FRlE;26Jz9bSnO{0{c`W1QkIu<0h_Z^IF8
    zv5#yYi`(NEcfk(##0fqKdwdj5@d?=MDdYFY5k4PVT!~{m6gxZ;C-@5N@pzo#o3ZIG
    z<4?yCz872kFplw)*x|)E!LMMC-@++=ADbRB{ze?(udu}>`^xr+aU1M#N1Whp*yH_h
    ziVwqPFB!itj_}FY;5vRBlHoauLy>NtkV~dZ(F+L7E
    zd>T&hx!B_hoZ^eI*+<47jw3u8TYN2!@lDv_+i`+tVvirfW?vca2^`^PvBk@9jNil#
    zzlRh23HEq1PI1xxyuR!wQ?tm@sietPFcK8sS;A61I{cwuUz-E6L{{n1r6?V85
    zCwLV0_$r*@>#;dN=062T_zrCG{W!*tV22mt1V4{c{2GpaBICV{W4sPK{3%ZGH`wE{
    z17!Q8xGgrlW&XQii@Rfo55NiTgFQYLr}z|X4wU(ygCm^77FXjKH{b+cj#E5Vr$0#M
    ze*<>-Htq4<*yGta#gAcgu*~ln9O0L+#Vc`)-@y)lj1&9?_IMjkaf_eu{5eF%Z;vC~
    z1zX$`$M_)Z@KHFyCt#2J;}oBd&7m@WC64e=Z1G4O<14Vk<8gv-#vV_{DZUq*!({x2
    zafF}57B9vzeg!-H7EbW{*yD{j#b4p*a2da(w``9Xx4{YSh*R7RM}4H<4_kZ~cDOH2
    z@X6TYvv7(p!sZB>|6m;9OR&Yi!!f=ZJ3J95_*U%kT{y*m!RAOAe;$tTQ`q7cag1Nb
    z4zIxp{t$co8BX!H*!)z+FF#PWPlR{G7I(ri-U~b28z=Zk?D26p#iwC&l#G8aj&KFG
    z_+lL6;n?BPIKkIqk8i>$z8#yRW&D{q!VlpXKY<;77JIx5r}#~5j*~SBQ;$v}iyv+X;Z1FkT}096LN#r$14q
    zzd`TEw_%U(*6I7n^s}+WkKqJAqtl-x)4zlxyi$Ao4vz81*x@g5g12FhTO7jk2e-%O
    zWEsB;j&M(G@j*DoM`4Fgz#jLE~gGpTa4A5!
    z*y5fz#s^}LkHjhdIW`x{{7=CVJ{wzn5svX7>~Jkk@TJ(}D{zXh!|_Ej{!Q57X*j`m
    zV~-!iDV~R;-^l#D_V{`2@vGY7x3I}czZOUM6KwI9IL6zs!_E6}yu>?V6U+Q}#}V$1
    zE#4o;_%Q77&v1hKVUJJ8DLx;Y3K@R@j_}3U;zk_f%dx}P-~>;^9#6$7z5_=CWc>TE
    z#Sh~cFTf5zixd1Z_IM>uaf(f)jQ1gq@V~Id-{2UR9wFP$;WjwIyI_yIVlz<2>xE-{
    z5O(;dIKjtZk59!ZJ_nmBng4Haga>1b>u`)mVTZ582_BCZTrBf@
    z8%KB@w)j(=;BTZiYPs0g57kgZRQ+zQtzmxHY;|Pz&F}@Zj_$Hj<+qM6_%x|Xl_#y4_6WHTtaf+8=
    zbGgj#O&sC(aEw2}4sXUD7yV4OM~Yiv^9PxK2OQz9*y4S#!-rsxkHIPKhqLbsFA5(c
    zo`JLP2hV%~PH+|WxE7~)6gE!!t8j#`#}-e)4&Q-2z8|Of5p1rI`7gu~ejZ!=8cy)r
    z+FvRCI-MSu^yT@0+u-ObnZA4Gvhev3J^-iq5FCDeWPbgfrqkmA*yE8nx>}|mqtjm_
    zz7ePR4!wV@+&?>WtFWP5v;26^V2j_x4sXOBms$Go%NVom-3eQK5O%m9_V^+ke&uAo
    zZ_plJt36J%$MdwmO8S?z$M0*8w`z~uAItKOk$zun@v+$9^RUOY+FvdGHQM9bwa0U{
    z$1iGsjr8wokH69$xBIy)ug5*H87uwIu*K(KhikOQS7|>^`afxpAJQH#(H^hS{#xn3
    z)E>7vPL|i<9@yifu(?k9GqJ_h+GD3Zo}&GD=^xY{KdU`ntv&us`w7ywJYJU9;%?aC
    zBe2K)vAJIQLE7WXwa1gS$M1wQ-lRP)KY{%>{7Td!W6U1d;={1Rr(%yQ
    zwVx#YW!mE#w8yiw#|yQ;LHake$De4AOHX9~#htLZQTl_i#V2EjW9{)s?Za=H%^v?B
    zwa0gBj~8f~KHqaSof?q#vn0o~S*ZsXbn({WR%UYL7Q+kIR3-{)@X}bG!6?u*Lnc!-KWQ
    zqqYCD^i#CQv$e;Iwa06;pDz7o?Qz>v*#5XD_P8(3ej#-B{5cm}T&q1Et395s{TIB2E-IB2E?7wP+8i~D1T2WyWq7hx=iVbJ#pA
    z{YdTcMD6iR?eRkG=Ssg)d%RJ5Tz(eYA9uy(5$XG2i~D1T2WyWIB2F8>wVA9uy(N$LAwi~D1T2WyW<
    zYyUUtr)ZC7YmXOekJo6wQ2Nc<{&9xv2>k@PFI#~ZcB<>#~gaaU}f
    zmA((QxIcDyu=aSg_RmQ_MSDD3d%ReCyhi)Q(r?xtxBWHSANRx__r+$3^ygxWYqiH?
    zwa3%7e_r}|+T&%~<8|8OZQ8#eea8#f{{&9xv2>sq`zg
    z#~ZcB{&9xv2>h4d@6#~ZcB`(clB*t{kENbT`N?eR?Q@j~raOTSWkyit1`el59dKin0Yx25lcE$)vU9;`hc
    zt^GfwpQ1gUtvz0>Jzk^z8tFG{kK0zV{c%t1abIjw>CeR$*J_W)YLBOD|Bm$Yw8zV|
    z$LqAm+q8dI`i=wH{{&9xv2>t@JCk#~ZcBU9tH@`aam={@CHc+T+pM|5N%Y+T+>UUJjw8zV|$LqAm+q7>fea8m2Kkkhk?uR|jVbe0{r)$5X^z*dG%e2Sqw8z`D-%0w8BiR19H+Hxm
    z_Be-4d+A4Nk0)x6XKIfZYQMAeE49ZPwa4WnS%0`IHXWqzgDvil9UiPb9`{zi0j7U9rc#vDs7l6S2h?X^$JV$K$o{F8!U_t$CN_IXU#&g9Mtgjx_V^j?_m+OG_V^p^@$P?+<@5L;Y3@kW
    zuEGxgUVD6#_J>G+pZ54E?eQw@@kZ?rm44@|*njb%*x^&K#{;lAO!`sU<4M}%S=wW-
    z{o&HD(jITp9ycGu`oj@6eWX7ETYNfpxK4X~qxMHgKUaIaLVLVHdt7?8ERQ)-`p($m
    zL$SlBVvh%E|5NFIuRWfuJ$^uYyh!__q+hK)-l9G3cn#|hAB4@((w~eiuD}kD(jMQS
    z{V~$tt37^7d;F&M_*3nFCVh*s?0>i$cKAr_@fq0kmA+bge1-P-R_*aa+FR-0)E?~6VDIW{Lt|7&b5ylPka2d_NPhzckS`Nw8t&4m*w?%Pi%fE
    z{ZFyQXJUtct3AF_`~K4ZNqhWP?ePoR<9D?`UHY%J$2{&DT`tJ>p_w8zC0+5TrqzdN@0VC?WOu*Ua
    z(!ZlU{z`ki%Otix{s}g}lKw<&@o%uhBechV)c#!Q@6jIrO?&)?_V}OLpC^5@8)W$`
    z-UB;)IQICL*qkr@AnoxVw8yt-j~~?j*U~?yJ^qLGxadaKAKnd{3#2~?TYNHhxI%k8
    zO8X0?zd?KaSMBi&+T(Y%zexJ8wZ|Q9lI3;y0POKe*!)KN7+ZX)_IQ%^c$W4#>Am)N
    zmG*d(_PF_ESw0g>A7P7+zz&~|JszTch4fB)JXL!VT-TS9{)LWYhyhAD_)M5;1vG@Z^EBrGf>8Bd5g@i9gc8>561`MQ?bPZ@agzc
    z9OH?&4&Q?veiBc@D{z88#&dA-6dpg`4KK$B;uQD8oA7V2sglP(9Jj+0aD?x|2ja)E
    z#joJg@p>HNZMY8aGF6t};REm_d^}F@1$Yjw#~xpcm*WJdcplz_U&dyTJpT7_JG>P~
    zxc#lNya(cavBk&Y)A4yY#G%j71u*09=Nx1aS
    zvb+iIgy-OcvBxLl1A!2aU`9*BKB0vGXk9N=lV
    z3D3nLUW7|{C64eqT*g~*jJw^({^LG4!Gm!XkH#sUgll*v_QtdSxPX^nAGhHm-iQNS
    zcR%}&8*qsG;Sz4d5pKq1JO#&iHm=|noZwbm#cObiH{%+ve}Mg;!2aU`9*BKB0vGXk
    z9N=lV3D3nLUW7|{C64eqT*g~*jJwTe|8XCj;K8_xN8=Pv!Zkb-dnNWC7w{77<2GEx
    z8*zZ^7O?-g0f)FBF5yNT;bvUMQ*exD;|gxU32wzzyauOuGp^zK2igCL>_0Bxf!N0*
    za1oEk0iK4N@LU|?MYx1l;s~$9WxN%~xZ5Auf7}NrcrdQw(KyAEa1GDI-f!7|T)<1P
    zkK1q&Z^Qwvdx-tV4LHR8a0xf!2sh(0o`PdM8&_}(PH-!(;x#zMn{f@-Kg|AL$o}I3
    z9*BKB0vGXk9N=lV3D3nLUW7|{C64eqT*g~*jJrL;{^LG4!Gm!XkH#sUgll*v_AX-o
    zaRD#EK5oNByb%Yuu7&-_4LHR8a0xf!2sh(0o`PdM8&_}(PH-!(;x#zMn{f@-FJ%8O
    zX8&;k55ztmfs1%N4)8SGgy-TAFTy3f5=VF)F5|5@#@#CHKkkDQJQ!E;Xq@6nxQ1t9
    zZxZ{D3wR0kaT_k;jX1z{kFx)`0f)FBF5yNT;bvUMQ*exD;|gxU32wzzyauOuGp^zK
    zKe7Ll*?(NX1F?@s;36K613V2k;kh`(i*O0A#1USH%Xlk}akt0Vf7}NrcrdQw(KyAE
    za1GDI-X-imF5o5D$8ETXH{t--J;99*BKB0vGXk9N=lV3D3nLUW7|{C64eqT*g~*jJrL_{^LG4
    z!Gm!XkH#sUgll*v_O4+6aRD#EK5oNByb%Yu?l0^=Zonb#hfBB-N4Oc6@e~~6*|>sR
    zaDrQL6|cc5-i&Lw{wenVO7?O?WO2@giKpD{+L^;WFNeW8Cd&
    z_8<4b2_B5Acr;G&BwWKYu{VYN#|69u`?w7k@kSirx@Xvb+<-&e50`Kwj&L(B<0&}C
    zvvCEt-~_kgDqe$AycySU{Sx+nD*KNMcp&!i2wcSDae$}cCOj91co8n)l{muda2apK
    zG48gM{l|T9f(PR&9*t8x3D@vU>_zN9F5o5D$8ETXH{t--CG0;`*?(NX1F?@s;36K613V2k;kh`(i*O0A
    z#1USH%Xlk}akm%Pf7}NrcrdQw(KyAEa1GDI-Zkt$F5o5D$8ETXH{t--wX*-X0f)FB
    zF5yNT;bvUMQ*exD;|gxU32wzzyauOuGp^zK_0Bxf!N0*a1oEk0iK4N@LU|?
    zMYx1l;s~$9WxN%~xZ4W$ANRot9*nDaG*0m(T*EW5H;w(r1-u0NxD6NaMjYU}7ukQ@
    zfJ595mvAGFa5FCBDLBTnaRs;F1h?WUUV~G-8P{_0Bxf!N0*a1oEk0iK4N
    z@LU|?MYx1l;s~$9WxN%~xZ6wYKkkDQJQ!E;Xq@6nxQ1t9ZwC913wR0kaT_k;jX1z{
    zFSGx+0f)FBF5yNT;bvUMQ*exD;|gxU32wzzyauOuGp^zKSJ?mS*neEW1F?@s;36K6
    z13V2k;kh`(i*O156-PM5WxN^3xbsT(AO9y#@Bm!JjX1?)aSdOFz2EEo-;N9T8SLY?
    zaS?CB0p5KT`;QO8AwC9|@Go(MC*m@mfn$6>uHaUj;P-G9cdY95r1(d;hEKrW^?Lum
    z#sz#S_Hh{(@q8TMCAbN{fkV6jm+h(qVKX4fzf@3@sSMV5|;45(z-;7iI5U%0p
    zuy=#r|690#YuLvf|EAYl#0@yWhv6nX42SqET*8;(2;Ydycma;_Qe44r;{<FcF5)9_fKS3r_*@*~2$%329N`vR#xLL)
    zzk@6IGo0X^+Vpy>cwe020l0>TV{ew;e={!NE3uDn#zp)P4)Alh3BQFyT*D>YakXA=
    zgd1=fABJN*3|H`3IKh|UD!vh?cmb~ArPwR${kP!){sjBD%bR+=Mf@Wi;G=L8J_U#P
    zJY2%R!x6p>mvIHhcsZ`%H8{cBzs3IJ{cwtZhHLml?A@sMe-19-so2MJa1k%W0bY)q
    z@LC+=Ex3fc{15w&d*L!3gkwAgSMXIh!S~`SejcazZCt~jVeh~7{&#*`ucv_b!#+L&
    z7xBqBz~|v6d^Ha79k_%a!x4T7m+^WWHW4Hwqv^?5hz
    z{rAQN9AF=h!bM!d0iJ=IaEwFz1TNt!j_`-LjJ>sbeKFnxS8x$0cqp#o5U2POT*GDT
    z-Jp`cJJ!-
    zrFc(V!-rsRw%-5oxPX6!eS9e{;u~>*AH+@gSsdcGa0!2kBfR53^m@y9UmWAZaRr}<
    z6MQbN;;V3qZ^JeGDE8*){lAC{_+9MduW%9X`X2j_55P_MXdL3xa0ySu5xx$W@!dGa
    zPvQ!G6({&3T*ceH&;H{*aSb1Wy<6FTT)@A=KE4ze@r^jZ58@{LEDrHoxP(8&5#I3w
    z_8;$yV|+NS;1h9z&&5@I6;APOxP~9a-fepSRb0RyVju6YPOq_6Tg*YHu;yIt@9R9wIpU>{$Li})@a;6LLg
    z{0a_n4VQ4I5B2&Y?Bg;XfMeW*EBG9o;0Rao-8jWh;u?Mxdw1yle}oIT!$*33KHeJ_
    zaeo}(;kXHp!y%rEOLz{B@IqY1%W;g?;tJk^6WryWdc9TL3#WJxuHli`yHoFf0xsa`
    z*vIp55iiC8eit|4uW*RFeyrD5!UJ%GPr+q85y$us;$5v&WxjFkUlXk!9^K<1iN&95~7`3B5?%2umdODVQ&+NyW
    z@*q3pO=E5@eQ{@A$2;cGBK#{TaFYcjwZd(nFs+
    z-9>w|^|jpk?p*p~eeFM?H-BI6&ZR$eU+ur5H(USt5A*`Wjn4UE>3e4{l01Hm`!~za
    z$?Ny<53_${hgf=dF8%BMbXK2zu94T@EayvqQ1(L(vGnd-dau9Ey3w1hA1ZNnSntlI
    zA4>1jo4>Dj=hBzy_o>tCH(P&&F8}TN?p*rL1N7Q1;r-8Seg6H=ol76m_o>(Q&DK|P
    z`{&N3FC3xk|A75BTR$MzyL0J>9;JOBdb9OUXJ0eq5H~vKi>2={TxZKV>-C#uF8g21
    ze#jw~-knQ-D1AzAwthwK`rWzoU!SPY{RO?*`VG0>olE~=wn1`kmELUq0(p=f@GL1I?p*pkPS^e@db9P9cgvn6
    zJH)cSJD2|Di8|{+Z?=9|hxYv2-krCvKS}$`x&J+|^~K!l@6M$kdWrU**w+vIeZ8G8
    zbLlU+O#45wzS;U%9%P5SX>`sPw_ktu0WOd4wd=?7bMpERkO$czZ={$1Zl^q!AJR8n
    zsgLWj$MX5lEOY5M$b;;VH`2Rv>5rVMvqJV*dUN)$y+2ms><~-u&ZUp&{cNA4H_Q35
    z{yFj>JLHY@?p*p0Bb_zVo8^4zduKo7u-=_ZU${zV$I+Xu_uK35dUq~;k^Z^tJh^_e
    z^~-YaKki)m&#%_!K013Wz1jLV_s|OvH|FNjzkH|mz4`vbZ2d(${Cn@tr4R1W{xEv8
    z^$Rrr_Vsh;(tk+5SN2%0-)wy#53)nv$o0E(>3iR&v+UDQdvBKWW&g6zn0#>0^129r8xjcjwZNeL!b7WsjvdXAj$ZKl{2Whgf=dF8wtR>+Jl_+MBJP
    z(O!SoyL0I~Kccgc-u!*NJD2`u`pMa2xqh?tkLTY1+`05aE4u!heE(#&{)yc6yL0Ki
    zN438zdo1glt-m7o`nhxIuUM@8&$3i{v-R)f)_3R9kIF7k&Yhn9Lwd9Pob3Ot@*q3p
    zO=E5@eeFq|jm{oRZ_XaJ_hpH*LoB^Jmp=N7&f@IXveKL7d|CgX-0SborGNNo?H|Y<
    zOK-ORhU_`y5X<`RT>1ge=eP?-)9r8x5-
    z%+^Qp!0Fw&^fO-4{^zW3w!U|+cjwYqUe^A^>~)g+H(OuGz5ec8`eY^7pIxK$X6rxP
    zv;FeFy?=Ku{elm*KZo9I{ju^OJLFBHbG}&m4Ik;O57%#&xxD^2=dRzKOCN2}KKtX=
    z_UkuW|94YK(C3~=Z?^u{?7rj>%lhtI`VHUc?8)r0T)#PcsQZ_F
    zU6eyCy*row=1$wS&rZmGpGA7JoG9Lo$9r}koC>hFUYO$
    z&ZV!=U&s1p>+|0~xO3@m=%VZ2M{l-1|MBn6r7vY)AmrS$xPG(sr);k`AZ~Qd7fZiv
    zH|?KieY4Ev{pZW>**~&FEWJCI{^tFBCo`2iBbLq=P?H{5yTR%hdZ+mwx
    z{T_#Ce;d8o`uz8g?p*pR{qFQ;>x1m;q8#Ez=X|mBg~N6IuXz2;GMCpc|NWmkmwv&|
    zwEu|SY<)R<4mrfKzB`wGz!BQN$@QD9&wu~t&ZQrFl=l15o2|d0ef96wcjwaA=-=Y{
    z&DMXJ>)pBZ9}d*@pJ9Eo_4)7L+`06h57K@Uz1jNw_iyf8`ohn(UuFA;t?!!q{9)(I
    zT>75JYCnSY&DQ6?ezH5!QkLB~fS?2Qo*E9F=
    z=gy_?lzrnM=dR5DA-!3CPWqwQ4>`oLzB`w`iT>D{^X8&1&szlmQznXSJs*SmA+%fqz)Ex&(l
    zw*Kkd`;R-9e%NsBw`6}lCD(7Z{?Od|?p*qaeoglKl+v56-#gdaykmps{V03ih`;X8
    z{@U(>6TCZ4@jlr5M$g|L`}klS;KOi;kHQf?4#)TxIKijl6pzNbu-8e~?~i>P-~bgv##F*`}hDH;Gg0UAB7`41jqP9oZ!=OiqFPgXI*~+_VJ}Sz*plC{{csM4vz8N
    zIKdC$6#p4}yXg8$v5#NG0e%gK`0qHv>v4=f#R>iwPVo-=>Hc{2x_%ez<2`YJ_roDR
    z7)Q82j`7hr!6)DppNhRMy8amK<8yIe#
    z=W&Q%!4Y1KWBe{o@W(jCUtn)nU4I+)@s2%pe*(N44)H!X!o6^e55WmO0;l*m?EO&J
    zAC7%|8V>MTIK&s=2v5c_z6vM!dYs~0u(zA8KM(u(K^)-6aEPD55nhgC{3=fH+c?D^
    zV6UsLzX|*JD;(hM_vh;m-UUavJC5eY$KVkE0!Mfxj`6Q>g3rS#z8HIZ>iSc$kFUc4
    zz6po;E*#bIKo44j8DV~J{_m{Z0zl=>rcQwz7z-eY8>J};0VvbF}@oo_#vF)
    zKVxqnU4JR|@ryXXui+5?9Y=UQj`62B!T-W3-l4bdkJq5+d;9A8+pv#!JV5s+z`NlP?}H=U3&;2noZusHijTwIf9m?fv5!x~
    z0X_?d_yQc^$vDPW;RIigQ+x~d_S5y}VIMz;1N;~c@iREW%W;ff#R+~Jr}zWx_0;t@
    zVIO~m1HAo@bw5J93yyGi9OHd)f)B(gJ`8*N>-vMRkB`RzJ{gDjOdR2HIK~rkf-lD@
    zz7~5w()DLyAK!)pd@m01BRIl~ag3kE34RHu_zmp!()HJ3AAf{H{27k$H#o)}59I3&
    z-W8{KFYNW!_4da;?u!F_I1ceKIKsccF&>E%{41Q|^RRb-u75H1@l+h(>u`u~!V$g;
    z$9O(Y@T1uKv99+N_VEiiz^ibG-@*}o56AcuoZu}u#oHak*Ovoz{hhIocgF$lfkS)%
    zj_^-$jE}+z9)eSRBK8i_^-sqEJ{w1P0*>*eIKfxr6#oHx2kZ0C!9Knl2lycz;y>dE
    zFU2u_5vTYy?Dx_2{*FVu9!L079OHlC1n+RL?oW!lV6U$}|DHI&`{4*5jAPs%C-`Wb
    z;uEk})aO4H`*;iv@VPj|7vdOSiBmk?&Obz-|3)0)JFLg|;{-3nDSi@rKhfuV9{cze
    z9N^VB#P8w=e~e@N1y1lboZ=n(@bU9gU4J+1<9%>|d*Kitf+Ktcj`49g!NYNiPs84!
    zy8c<%#~0uLPsSm>3P<>Q9OGMXg6H8BKZw1VAZH7aZg6IK}&7zrXee;s76pBRmMl_;{S)lW~gA#NGgX{&CpH6LEkq
    z$05EJM|c*F@ohN4_u>>kg1y6a{l(bF&*A{TghTuWj__I>UR&%p`48>jdo>>sV`
    z{TYXNDUR@qIKi)B@8{b89S3;5_4rfk@xO42clZfkUyjk|>whqs~1AMCWc#QSc+znwos&tHfG{3MR?
    z^LGAFJ^vN#Rz!*zZ#
    zj`5k;Z_@cV9N~#L#h2sYL_PmnJ0H)&-bp&Y4Ttz%9OFmq{FC+k#W=#x;uODxgH!bU
    zH*kX2V*gZ~e}qH)8IJKc*5i(c@$rIp#oh>gzWoMe^BuB(U*u}_Lh;UC_7}YB+W-E~
    z^Ekk7;RtWS3Em-~ze@YPaDWfN5gvjQe5Uok)BZy1@pabY*m}I!`m42HX+8eHdi=HZ
    zc(~H#c&+u+xsS-=O_Y$LjS4cwZdh0XV_KvG)h@FdEbSX`fDgkF9)=Tqmi1-rFS8!sXgywFJzi@4joP<
    zcNon3FWw7#|E>K`aDb1;5e}`#ldZo=`n@MTaRC}{$}m}X+7R<2=Bjm51in>
    z*t~~0_h{dJ82gX=;s_7H2_A#J
    zd$pfzJ)UJfo^L%~YW;oMueKgW
    zFSj1AwSK<#Tdc=j8rgr`3nzFG_7-SA5(jvK^?17Vc%JnSYQNZeyvlmK-g>;v`af#l
    zeK`A%`{D=>!3iFNy@#})Y(1W3J)UnpUTXcr+OM`AZ?YbDY-0a$59~dneSaL_;W)zM
    ztjANWZ_$2^^?0H6c)9g>t@R7F-(o%Paw7YWd*K8R!d^xDkvPB;tjE)>$MdXzRQtu&
    z<5kw<_15EU*8fTS?kBPTxG#?I5S-vK*n3R-$=2gp*5mos(TaVXTzf}7z
    z*5fWC*?-&%CwLI{675Ig08g+UPq!Y=v;JA_7h8{4S&!FSkGEO>oc7&EvH!R)j_?qi
    z;4#>HUi-<`<5||@`PSp5)-Th3we@(D^|<3{>_6^-y%)6aj{`g$M|hm|c&hcS+Rw2b
    zFSH&nw;r#xe!2ErtjAq`$^PSBIKhLkw?g}oIKUIE$J4FH^Q?bS`^DDdRo3J6*5hr~
    z|5f|$*?%`pKE49n7e{yqPVgA)y`=qQ>+vk>@qFv?QtMyVezo;@ll8dc8SFpqfxTC>
    z?~emK97lMZ^?0iFE480vJzi)%UT!^JYyB$iw^)z6oXP&+y8!
    z@jUBa)qb({c$M{dz4dsT^?%d8`)Kwb_r(z&f)hLjd#`Cf*?K(7dOY8Hywv*FwO?&L
    z-ef)QIEMYlJ+SwN_Wf~yhvNv3vmQ^izD@f%*5ifN#fJztp6YFyZ?&)$9-{xhu{Q{!QR{2PqrS<
    zvL4U39xt{29qm_Jk2hJ5JN}ye$33w3ckTP*01w9z9%ntCYW*7R=U9&yT921okJnni
    zR{Jg1<1S~h|F{=U@F47^+K|a8
    z{T%D@LhJEz>+xFa*K5DUdfcU%{l~pPwl&pWB+kq9N{52!DF!ZvG$X#$Fr=*^R35At>2*iYU}YP>v6|(*nivud!K0E
    z9|w3ij_^3^@l@+KYCp$%ywG~Q++v@0|5y9&zhVDzUmW2fIKgAE_nG#St;e&h$MdbnORfK0`_t@T^9-(o%Paz6Wyd*K8R
    z!rqtKkHi6qud*Jmw;pe^{s-E3FR}l)
    zFOKjKoZvCo+g|(0*5g^$9Jj~7~xms^k5THjIoE!N{Mzh(b%FPz{(*z2VINF3k^*5m2c<9XKasQqH=@ha=_
    zdh78v>vz(=`-SX3?u#Ql1Sfb5_IB2Ovh{eD^?1JZc&YWBwO?&L-ef)QcoF-Ldth%D
    z?fc^Z562N6XFZ;3eZBT`tj7zj$IGq9Ypw61{TAzSmy6kd+zTgo5cUe%kHi6$_<`$9lZbdOY`*Z2iujmz<^N{|Q&|3Y_9K
    zxQ0K+-dOE-nyt@Qz&`eIKU~DaaDab}oA4z##ItY-KY%0r3@+o>ag0C475sxa+&|tE
    zS8)-icnGfH(bzj%@Bd<4z&BtY-;0a*FF3%j;wJnd4)Hcz!rgAw>yPlkxQvg*F+Lqv
    z@NaQ~uftUw;}kE(HM|mg&3gYI-~#>{`*^q8^m>c<$2h=8<0d=`hj;=m;b}O+ci}RA
    z9LM-2T*3dq3H}OKap88o-W2!3H9Qb|s;bU%&7x85{
    zz&GM1ya0!IDK6nQ9N|xJ8F!eg*Bj%#a0UMaC-`_=#UW1dWL(2DvG*Ij{|9gZFTp-;
    z!$rIi2e@vYUT+g_z#;C3OSln7xEYu66ddE(xPn`7f?IJFufZwajBB_)*6a1o)BFDs
    zF5rRK$0KkNkH-O?hMVwQ9O6Z|gjeDSuft`$700;S-Fm$h+y^IkFs|a!IK`824bQ~h
    z`RqR~;3e3{ZMcXx;sDp(!~Ww29O8bsgd1^$n{gRW!7-kVE4T$GxD{9N8l2+IxQ6TR
    zW&bZ=|8W5i#6BK@i+DT^@HE_n=i(4A!X>;CM|d4B;CM|d4BZ
    zgHya2*KqxV?Egge9~baI?Bfx*h{xjqPs2@kE)MY`T*51HgxBFR-il+~?T_p~?t>FN
    z7+3LVoZ?BihG$~$x9mSI;3e3{ZMcXx;sDn@#Qx(39O8bsgd1^$n{gRW!7-kVE4T$G
    zxD{9N8l2+IxQ6Q=X8$i_|8W5i#6BK@i+DT^@HE_n=i(4A!X>;CM|d4BZgHya2*Kqxx*#F7wKQ7>b*vBJq5s$|Ko`#$7TpZ#>xP({Y2(QCs
    zycNf|+hgoM?t>FN7+3LVoZ?BihG$~$680Y#@Dl9fHeAFTae(U{Xa8{n4skzR!i_k>
    z&A5!G;26)w72JXo+={Ds4Nmc9T*LK$X8$i`|8W5i#6BK@i+DT^@HE_n=i(4A!X>;C
    zM|d4BLsB9O8bs
    zgd1^$n{gRW!7-kVE4T$GxD{9N8l2+IxQ6SWVE->?|8W5i#6BK@i+DT^@HE_n=i(4A
    z!X>;CM|d4BFb33Xbt?T){0k!L7K8*WeUy#x-336#IWA`;QBFAolSHT*TvXfT!Um
    zJQs&}5ia4CIKu028E?fg?)EhMkNe;R55`qI8mD*?uHl*3o5KF%0$zfB+=h#IBMxxg
    zGweTZz#;C3OSln7xEYu66ddE(xPn`7f?IJFufZwajBB`l3Hv{l{l^775c_xpF5>Yx
    zz|(LOo{K}g2$%3m9N~4ijJM(#cU#K-<32dSgK-s)#wnhJYj`I1BK98_@Dl9fHeAFT
    zae(U*_8&Lk5ck6++=wIGjLUcmj`3_b
    z*vBJq5s$|Ko`#$7TpZ#>xP({Y2(QCsycNf|+Y9VJ?t>FN7+3LVoZ?BihG$~$8ulL-
    z@Dl9fHeAFTae(Vu*?-)CL);ISa3hXzGcMyPIL5Pa1-IY?x8f>ZgHya2*KqxE_WxS;
    z9~baI?Bfx*h{xjqPs2@kE)MY`T*51HgxBFR-il+~Z3X*}```o*##KBTr+5;s;hET*
    z#{T01UV?qxhKqP34shLz>_2Y6A?}AuxDiLV8JF=C9OK!zf?IHcTX7Yy!71L1YqZgHya2
    z*KqwS?EiJ_KQ7>b*vBJq5s$|Ko`#$7TpZ#XH+Y`!eRupId+2({oO|YcNY2}39xMOg
    z*l|;4L-ux5&Sz(C_O|o7-}L#pa+;*_|98BT|G(q-?e+ifXqLHLLw4Eihq%!>Uo8EM
    zCjI|Qj;1%uTzXG#G&{u7yYu$`B<)|>Mc1E!tsmB2JH0cP{&n0+Z??Xi>)pBZV^7xg
    z+vv^KADP{k9AdeCcP@QALi<`by?(RxUEAyLdUr1U@8Hm;Ouo
    z{#~>;TYqb=cjwZVf2r&LiS^CaznSaZx%B6puKj!TX6w($_3m8yW%Rewo2@@6*SmA+
    zYxGMy>iwIo|5_eohrDTY&KFC+;Y_{$5xjn8nalp=uiu?ZKXkPA`_h}Ozd;^khrE&X
    z-MRFykJ0`1*d`|KHhpJsn#g$i-)exG^`EzId+o
    zKj-tW+4^JK>+gDZF8xLH|3z>9zTTZn{{;PqT))}+J#y>2bLp$}yYczQZ2gMd>*vm;
    zzx8~*|6RF$v-O>GpTFI?^!H8Bz5~74`a5&i@6M$UO4@JX{>|18lLy%$ZyKHR#nRs}
    zQTrF^%`%sdpF8CngX|DX@6M&~eYy5;(VMNmVu$wp+uof^e_y2ikL~`k^$T*ZpPesr
    z>4#mTeGm4}Z2c*@-knPyPuISI_084?x&3$N(x=yP{j6`cKL7RColE~Y{ZqVtX6y5x
    zzumd?{_l1Deq6uV`YY=G{q=X}(%)Iu{wG|&+4?lsyL0KUn4^8f`ey6%pTFI?^qp?g
    z{#e#GTc7CVfBXL9&ZS>Le-i7Ptv|oRzu&(*m;TVXy8hp?`;^arX6p~lt?$mIKZpJ_
    zuHS5Z{`Gg~(!YP7uD=6cf6dkp$gS_rrQiF0?f0iQTOa0ncP{-E^x410+kXFM>&NDL
    zcP@QO|7&~y$JRfb`}nc*WiI^<3-tPja{XrO&&jRt&ZYmHzCdrb{z!R{9rC8pIbSS&
    z@sGOx3*5h1=JNS3zyI!B`myxy(3`D4KYI>2#In9Sm%d7W5wD-w`Wv$6mBV^>F8vvg
    z>h&MS{hO`NfB){zrGJ_JSw4Qu*5^O}xpV0|Kd$Tlp7qVv-nqvo
    z>h|tj`uKTWe+{p{+4}tJ@6M%9U(o(eUO%(-`Pbi_OMlG@?Xy3YZGZjE*5_Y;ciw*e
    ztF(WN`;W2p!*ZX0-MRD|Uei8geY5o+=6ZK7{p)XP|2*rPt?!+C|8wWkfBiq&zf5no
    zK9vXAA#WO;^TpD?^N#j!(3@p0?>nF8_TQaLU(FVfbJx+Et;JI5{_g(Wx%3@A&_1F!TYrT-$PRfU>$`L5qjlQ<
    zlHM%m%ldoEgY1wu(z|o%?_96_aC)OFUx)Z
    z?#`wEaEBkXU)$~UX6vKe>*vm;Kc|!Sn|S{fO2YHy^0|Pq==w^?S?W*&&wo-MRD?`bO3_TOUiD9oD;Z>6;GH^)IJ4TYr!|aC&zx
    z{S^mme>B%`w!Zhy|K7WE>F*n${R6CTwm!{$|KiT2zb5+vFXx`b`ey6j$$k8}bLqol
    zv_F*f&DP)7>EEy4olD_wUZzuYaWW`_Ny5t@m>uKki)m`+lkYdVc@P
    zY<>3Sz5S3kjn4UE>906L`%mf3GMD$?{I9>=x%6fF7wOH`pVA?FlI#%6`tDr%_d{KO
    z8@<{3uXFeB&ZSSsYTrh0w!W!-_3zeq=h7F?*8XvNv-SDk|8eKiU(u}n5_+@sW9311
    z$eTvzd~y5rkJJ7be*ZPaGMCps`}U&!kT=r1bLp3ztNr2j``1{`mp=RQ(tcQP=ZmF(
    z`8@4M^Yzng{f6A@@6M%vVgfxMe`f3Rzklt{rSDqO{v6gfTc3abbLZ0crr(M0Kg`zO
    zr?>y@>+jCn@1K4muiwkq`uB6MpF5Yna-m-T1>C>c`Y&_qyL0ImT%`S_^k(bx@4xO`
    z`Y-8!$@QD9&wu~v&ZSQ;*7b+m`yaMG|NXz6FLUWTU84Qj^k(Z{&fUK|m;QD7pR#{u
    z>pSOOe|O$~{g>(bH}LwU*!uj}Pj@c;*PQ<-zkV`X-#d5x?p*qwm+SibbN%M;>)pBZ
    z!|0EuH(Q_o^9Oe>{rgwy`d?&^<@+bI_3!7d-y*rowefqoU&EMC%
    zbLk7&FA(J1CG=+N^Y4G|T>1g@Z}9PFw!V_ve|IkZhx7-r|7PopxsN}0F8v-?>-As3
    z`ey52&h_qG`uDHZ{yKWI^_}HGcF3DX=X|mBwQ1UKp*PE1zWxo!e#jw~-knR|d%E_w
    z@%h7SediAC`M140m;TV}wcml)&uo2ueRnSX`SdSx{buWL$bJ9o&ZYk{`-4Y0_a3g_
    zZ2gz=AUotuWA+bsE`9B0?Kjx#hvj^E{p5!n*4z1F>AT*d{S5Bk{C&MUmwo{K|MLB>
    z+4}tF4|gv8So&}1&DLL$d;fFi(x-Fu`q$H&t-mw3|L$D+EAG_3o{wL%_1Cn&df&Z%
    z?p%8BF6~!l59RZx+4>;+DLKTAxw-TK{XaWvZ?-=F=Qr+L`iJk<^}F!($83Fm|J}Lt
    zRr*`#&DQ6?{yd
    z_Y>*O*54`*vP0f9=H}9uv)>?=*~skAX{9&I&&g}|aQ3>$A(q~qOMm1;+Arke*KB?E
    z%d7UodUr1Ut&eE`6usH{V{_lXyL0K^sc65F-faCSUH;qacjwX{`l$AQr#D;QK^|m>
    zylHgK7fV0jPuhP*Zg#W|zA6v0L*B^x?p*r#&)QFB|IBi}
    ztRLro|H++8A1u{=Z3kW7Y<($v4mrfKzB`w`Lf@V1H(P&XZvWl6^c$Yl^$(yoTi=xX
    z{R?+4{gHpwehc?+w*JuE`tDr%QuYO2&aHC)X6qN^)_3R9@9~EAM{)gT>pSGucjwaY
    zy;}RRT))}+FuOK6#Es7RV(G7-f0o`XbJ_ndbL+cv=`Z>pUH??B-)w#M*8|!Qc_Zt)
    zbLl(0qy22wH_Q35{($UtmBV^>F8z@y_s{xf>tD}ZzdM({@SgU!vVUgl&&jUKUEiHc
    zf60g1U(5Pt>+^qq#GOn3^2gdQV12Xo<=pkVbLr36sQqrderD^3$?5<>z{4Kd#v;`$u+&rFZAjhl90mWqq^t8{|QD$Q$Y1x%9(^YX3KSvz#yM_s+fl
    zxO3?*IzjvQ>CM*1@*q3pjjZp^rSJL+?Kjh#<$PH`-@9|^A8*vY#`}-i`cb)$A9pT&
    z=M%NB^7@;tebKn2CbLl&sp?yGawm!~&T_T5A)_3R9
    zFZhl2zvKSR-}brn-MREbCu;vb>zl1#mV5o&x%8bc(!OVQo_zmjwtkd6$PRfU*YD1y
    zAA7O(o&H06vz#yce~LWF4tXQJJD2{6NvuzAmh+`QBfBp-tasu<>I
    zzdM&cj|n
    z@_ml%pV|6@a_>LxT>4@6Xn#Gwelc6WB70sr#Es7RV(Giyul>>X`eT{PYd0+S{ga(<
    zefWs>*>6L&U%%OU`M8!tEbF^-S-<$0_Gk0@o2@@6_xaDAOMk{9?I+Qjt@nP|zWlfA
    zyYu#bh4yE1{byk7vv<$-LoCwthzL^>^pezq4NZlj+UY-<<2+x%8!vweLx9wthwK`ww?6
    z{eUmDe}(%uTmNP5^M^Z^zWD#N{|CL<`m(-!-@bnCT>6CmGkUZ2=V$jNhq%!>Uo8DW
    zbsgGgJ7?eL$mbuk%w_+2=05)2x%5r-+V`Y4TmN$I>!&-He(!y>Z|3zkTVKw7|Le}B
    zf4G;`ms#fW`sIKB(49-~
    z_0{!%MsK!Woo;4UU*DZe-$dVy_087j|NPUPOFx!=dwR3=`RjM*
    z($Anjf!=KWhTP{rcP{-!Khf9k9q!+3eSUp+F8!_aL$jAw-v7C4&Id0F3VeSUp+E`8UZ>iy5+{>|UlyL0IS`djJE)*qU^E^>$)o%6-g
    zUqpX9U;oT9mwPW~`znW6dUq~;hwK|HnQhHJPs{zA<>#aivLAAYrFZAjA4`7J4ZHJiyHmg{%t(hoRQ`&rps
    z-v7*UzFhw~*$+9y(z|o%WBN)qm)j!r(edjZE{khrm%k`VB&#&*!r7zO^y#JW3&%gh>bLmHo(eZ_IL5`Uz@G}|NZ$7=gVCB4fqw-H(Q^-e|Ii@;cQ+1PpogYKL7dKolAct{ZsU2
    z>+{#|&ZQqkKa<}4eZ4!E{v!IR^k(aOXRnhS;zs9uvGjM+m*~whm)9K&Y|0aEh?1hq#U$dMq>wlR0{Oiu8PbTR4d(fM$
    zk8=0#&ZQ47(!Mvn+4^I%Ymh@M*YD1yzlQ!udb9QCRspWV6ioo?2?joxhi)7fh%hq%!>Uo8DH`VZ*M
    zGMCqXZ1zJAvGnd-`rfzb`rpu-t1&DNhG53)nvG&<*tr9UUp{&IS=%;o;G-wtX&#L~NS>4z=T{(5?|
    z^$T*J|J=FspSNm%7roi~`?9}RB!^hmcjwaI+NOOAz1jM%yS3-v_U>Hzhdm=YRd@&ZQ6Ozo0i;
    zpM6-iA7Z(Fo9}g4_TNwH;CcRt9onyLKOEo#afE-0V|)Zo@G)5aB8;qc0uJ%X*5lKy
    z$7fkTO8fJ%k1xgno`OR>9mlwg6MP%?PSfYV$9nt_j_~8w<7aS+Te0^`eZE!L$8X{Q
    zzl%fsPaNUTaE!mk3GUoa_sct7*V`TYxB&;a7Y=a|C-`uj;-6#r1Eco+!#+L*2lz}J
    z;$|G-2{^`=-~?ZVQ~Y}zo~i5Kgd=<>j`96C!7Vt&i?KgipD(c
    zeeB~;aDX@C5O2c~?$lrRFTuNFFVyG%5A5UpaDWfOAwCR8cp#4P5S-v9oZ{24_bXlh
    z*VxDB;Q(KRLwqHU@H8CbSvbMB;uPPF{a@?)f5ZWP42Sq>9N`ymj920Wuf{1(v3HiP
    z_YwB-|Kb4u3x~MF0NuX`?}B684JWt<_Oid2Bp*+`aflDW5&jvD@i92T!*GgE#opQa
    z{G+jt$Ke2%aELF(5&j*H@%1>tH{%rFg}r87e?Io{qd34%;Sj%oBfJX7_${2^_i&0o
    z!QMDse+%~Uc8BYJ1$bv1;@xqCd*B!!fK&Wa9AtkXO7`<89O5B3!YASwpN_qAwLcpN
    zcmfXbr8vS@;~4(|CwLA{@!i<_jjs0)_VJ%_fS2M3zlan38urf9=leVM@p>HKPjQU@
    zg%iBP&)A>y_4&Hs2=9p#ydO^S!Pvh*`~EnUGGZl
    zV414t}f8e;f|+a2(;&aE#Bw3BCZQcrx}b)aSnn`}les;#+Wp
    z=ivlDh*SI+_Ak=se+CD5IS%owIKpq^7=M6Mya{_3>+^qweZ2jV><8WjN4Psq@V+?3
    z2V!rMKL26Z$AfTykH--{8OQicoZxZTo2<`25eN8k9N}wmjA!8l--f+Q^!e_^K7IrT
    zc(L{PS)AgRuy?6G-y7J+YjJ=-!Xf?)NBA2Y!;oZ`K(cbTrgKlX879N@!o
    zh>yV${soTlNSxqb;S`^Ty~}m|i?NTV;t>CT?Y#$l6-E2^edtvUU62wK6r?1lg`z+}
    zdJRoFC+&oUw3Cwr2qFdnX(FL1AV@%Z4JZf-5{fhtA|OR6K~O+J0#XDl&y?Rxc28#R
    z`~ST6=l;CU`#$Jr$@%WN<~ln&``f*CcITQY;7ssra4vX}C_je#TPezeH;MA#FTmO0
    zufVzBV_?gh+}~NSKlm~@6nqn$4t@a61{Z3{+aniT25cG2{Z|6}gKL3?*jXS4}pWhC%~ED^P>FQy!=&R4=&OQdH_EK_8-sf8&M|DmU6*%uw?@Oz8g3c
    z91hL~j|BTqp
    z!F|Bl;8;=qIbQy4Q64;Blm~AW<-w;#d6Mvo#>aO>dGNENvH!qLz}euzU`q{NJ{cSg
    zo+`?Nmx%J3n-F4SD(Jz`}aG`N%
    zfAF(lO8_q)01gJX2d9IFi1OeRQ9h8DpC-zKmx}V>?V>z5N0hhn@>fN9@ZX|5*#B*8
    zKe!3lV&mnzgM-0ta5{L5C=Z@3%G-JQHKIItwydo+ZjR<>fyW<-sRKdGHNU9$a)H-yTadUcNdw80-M2gS&#W!I7eTb6$RoC=Z?^
    z%7fR5^5A`<{42ctIZ+<`hbRxO@(%VN*b271%FA~G2ZO`F>EJX`9z0W&Z^6s27UjXa
    zMS1X9Q679-lyAw)mzsp*4_q6Z4sHg{2KNM8TJiERqC9wEIYq9z0HzZ^O&a7v;g5M0xNbQ679rlz)wve<;d>
    z%T3|in+~oI&IY#zTiWvS1Hi%HBvBqbMU)3G5#`(Q^7}-2@KsSB{EsLPt}>NxpQSx7
    z9{>&pcL1k@hl8`hZ;SFBc=-jQJb1Gx4?Zl)gMSp|JM!|6M0s%eY1n_@m%-WKHegF9
    zUVb1r80;10!Ba(f@KRB}GcW(SC=Wg^%7cFq<-vvD#s2HU%U1&jgKgk+aA$BfI9!zP
    z%FB-y<-xN=dGH!h9=u1C@5al2FUo`Oi1Ogl)A{yhgP#Xmy7ThQ!NK5O;B@eCQ6BuZ
    zDBpvZUm(hZH;eM%!=gO+M^Qe6mwzP6gUi2%_6NTV&IY#uTYB>H1Hr*yuP6_mD$0YG
    zit@d9`Oigp@NrQd{EH|LE=*p)rT4>@-n@J@a4^^gP6u}eXM@8<`98e-Xi*+KOOyw%
    z5#_;qMESnF{3THy{7{q!S0)2<*!?@WG1&4tFW(*<3?2$j2agct!S9Lk{doBmqCEIZ
    zQ679sln4JN%J=8xi_hfS7YwcmP6r2pv%%fLmI1tclqe4#E6Ri47v;elMEQZd{C-g$
    zd_j~47n+6r2d)aX4C3Xj;9zhka5^|lln1AY@`HK#nW8*+vnUTfEXsp_6y=BT@{dG$
    zaHZLNd(**D9I
    z-QZyG+oC*p>o>$-Su%ca3b#KDP6y|LGr;%3nc%WVdHF2x^Wbc7Q*aKrJ2)2{3C;tL
    z23w}`?O6c!1MdX;gMR=Ag8u;rgDV~5+ZO_E2o43m2KImlg44lC;0*9&a3**;I19WV
    zoDIGV&H82lwT1pFO16nq2h0T=m}
    zZ(lmN8aM-N1!sagg0sLba5nf&a1MA5I2XJYoCn?mw!F*he-`Wq&I9{{OC0Ch8wjom
    z4hB2HA>gjyP;dm;10D@d2hRj&fLDPt!Mng&;2*%*;CtX4aD@|SfAGuTJaB8UWje2a
    zf3P1o73>e52@V8r1_y&rfJ4B)fJ4EhPV(*Xfc?Sg;FjPFa9?mHI1Zcz9uLk2F97F&
    zH-U4(2f=yZi(t!py#DvWe&DCRGt^*DPzXA>h_X3B2W5A){bg&2f0XQAJ0h|H;
    z3Y-Z(2hIZj4$cObKE<~;2V5JR3vLR|1NQ)1X7Kt)f&IX5g8jjBz=7bk;9&3`a0vJ;
    zI24=*_JB*A=G&VNt_jWnJHeUYuHYB(+{1(_B`~f%+yb&A>J^&5@Uj&DOAAmjJXTC@KgI@w?fLnnx!7gwX
    zcpNwz{4qEOyce7c{sEi^{vB+Y#p_?@2fjUi;1|ID;8(zb;NIY1a4a|kJRTeh{t)Z|
    ze*#Vie+|w6Uj=7^i=X4$mj(6*XM>x9bHE|sTyQiv51bCR%;xo<2lfMJf&IY;!GYjh
    za4`4}a0uA%Jm20>a6PaG91Kne_XlTyJ>X36WN;QZ6Pyh`2+jfLf^)%tfb+n97x?yB
    z=J5L01N(u4!T#X>;6Shk91NZe4gqI^L&4j?9&ipg9efR(0k&M^+m{J`7MukR1ZRUg
    zf^)#3;9T%1a2_}VY?;gJ{|VR+dVp8I(P~=
    z1H1&B3EmFQ0)Gq6244r~fD2vX+m{Qj3eE#t!It-V{X2pEz+qs2a2hxeJQExYUJVWb
    z?*@m0&w@SR+u(F?sUP|FW`JvhGr`TkS>T@FY;X)X2Rsg(3!V?o18)LbKH&8~1oi`8
    z0{ep>f&;WON
    z>EOBG4DfnzCip9G7Wh0k8+;F(1Agi%+8OFJIYU6EVbg;Bq(N5BxkhcR4TL3~X7!xdYfA+#4JWjsS;(z2J0kIye(N8=MVZ0nP<~2DYr^
    zzkdMi5552n2Iql8!9{=L^-Bjo3(f@B2WNwwg4gliYY)x^_XS(l^Y05;$k=ZB5B@7m
    z{yyVJ@~fadN`ZsHww)oHFr0<}+^J5iIgIg@8pq_SeDn
    zmT~)N@G5d1qnnuy7Wr3ZfJHu-kH8{7N)}k;d)WgH9LN0~1&e(9O^e{a)nD+5i^w
    z1JL=#>GxtjaXSAyWih`yozI=Jn6I7Y0inDthWmd27W2&)EyBMS^V63Di}~(rg2nvl
    zbiQ}$Z&^C`7X%jbleYl};`cg(Q^0h-Z(3f==RFiWnIvo=t1SuOg*`Z@gT?&gG~X#L
    zFY=wP1&jF^=zPfZdokbf1+bWZ_iwPsCswW~x3ANW|DHcM9r_|^{+PcTBu=2)*ADDA
    zj&o0N))CH8;A`oeX?|_GJtBWL%@@oV`GaZxbIKyWIn77TwjcS)X?}0YB7b)dSmd*(
    z`TyznBENqgSmawSUW|V)@>f>?i+tpD!6LtSFj(X}?gtk0N04El?Ds^zdopZ>v6!D=
    zir|VozvcU2kw1PlSma~g4Ho(BbHF0s^A)hjfBXO}<^!PfuhII8`PJxrB9zxH;rY>P
    zfHRu#_Mr1+(eK54Sakj`%3^*mIv*BgG2a!PpO&(if0oX7OIgfkOXr`ZEasP`^Z8O1
    z^YzmCc`1wechkXQK3$sskA5%m`_cJKD2w?@Xnr%wB7Ygpw?|V81q;&w}$>aJ~*+)tvJ~Vc(2%
    zNwOcP{~aWdp#Cd?bF7?egCpUuG5AJl{(TGZK5!TCoRa+e*THq#a*hCdNMJ*MFBx1C
    z^&byj2>bcqXR$qN!5M+P{7&$-mYk1()3H5gz)fG_-`@h?ZN-_+r%LND=1ZmXqf!?0
    zpVIkSDU117>HN)<#r(|O!D7B!IzKP{Ud+Es=li8B=JTcV-%=Ly+tT@rDU11v>HN-=
    z#r(~5zFNv+K3Y2eGG#IUayIynO8odbD!xa)(G%c$b@=yZz#U28O59lJd{oq*m~V>C
    zk40I`e?{lJqAcdKdYb5rvY20r=Ch_O@>SFP%9KU^4FpB=$@D)`DS&hLYpW^?{n*pK17
    z20Uss=g+_ye50bLT_ek?QQhpWr3ipFg_TtCyH{i+OQ{c$n{QF#RpIUtTZ-U$UbAAYR)aG3L
    zY5sd6pDWEzOMhSFpQZUaDT{oZjm7uS51r4KelO38oAm`oS{sTDE
    z`3$K)F<&8_pOUhefATUo8vg10gY17zgHXFk=!^F
    zGYg&1lG=;;Dw}}+!1mGkPU-hzKGWC1H-_-?;oxY}NkaX3z@x%Bj|KOS;!Nj1r2fSG
    zhO@ypy72Ea!Rep#
    zL(}=3DU11%&)l_%9!>P~N<~&3w4K54(MMj1SND;Wa+I+lSBi@IxQ2Ux95O
    z>9yeh*?hRI5BKxoa37BI;gLQ($%kk7@cTZz(1(}#@Fza}xexF2;X|CsA;|wb=fgLA
    z_#YoG$L}L#`MN&b)Q7uqmixDl4-fR=a33D-!%03o%7@4K@MIsJ;lp!%c%ct}?89q)
    z_!A%g!iNv}@ChG2=fgkw@J%1SesSkhd!+U+WNevQ9k);_~
    znv>;Kva}#eOR}^gOE6hllcfz=UL#9eva};h2eNb|3(Z&CnJit%(v>XT$kLrGJ;)M5
    zmY!tkN0$C%p}A=Xl4THC29sq7S%#9uMV3&qgpnnjED>ahB#WCYQDhlLmT0oXkcH-_
    zjU`JQS>nl(K$b+Zc*v4O7B5+n$&x~rRI-d9%Sf_}B1;-sMw5l+s2xL=H_0-VEN_t|
    zoh;+X@-|te&WU@>l%T%(^9JTL~Wja~jBg+i3WRPVhS!R)CHd*G7
    zWiDCXC(8$9nMaoSWLZF#56QBSEQ`qU5m^?KC6g>m$g-3yACqMnS(cM!1zA>-WffWe
    z)qWEDx)-tQO_n}n=}VS>x9^|q-~9dCgzPV)7G5FzKh;BfV*5YQgulh*3iA$&;D1Jt
    zKk?Bn_b7KnYKq$x?GB4{d&xRaVscDMOkzS<9Dx*K?@qC}!XhJGF$pQIgs^xwA&d@i}4@-6jIb4zCi%8-I
    z=uR+VsyEKZfUc1?F$swtS4yIbR3bbvF^+yrP9d8eo*EOEzlq7Ns6?;J6Xp$zCmTq=
    zONmL~n`LoDxZKGRVIHyp5wxr;E{0T)tT0u9a={8j3?uu?Lw=5Yh$0oDf5;DoCq|}8
    zNKT2T{)V|?qVkRLnQTJ5_)glzhowYBv$b*+{XjN6Vpt3*F^qg5`)in+{viM08cx4W
    zjQ7OE(Q5DyuE>~V4}4(_H6wdFCO$0Ai%5wX5tc%n
    zVMRn@LISaq?2e~<313FVxZ|iRUe@Dwd+G0R^169zCr8J4ItX;fds0Zl2xLdH
    zfH?d-^ON8n$;{$Os|zdo*|VTAv4;#h*#_(+<6?T*3nyvG?lTzJeyI6IJt>9#$
    zBVO9;P6-nQQxj5R;@x7$xktE(z{0%Vm=SP>@97SphXLPBUaa-Hhmk$t_PV0O5+dWM
    za_R4BzI2VSvG0?k!)(qVS9n^AI~lu}Du6V0L>S+`lr)bU`l3xvewT_{YM5>VT^$}5
    zmJo~2R4N4w;$m1sBn%@GG#p)|;f*WEaZJw(SSyb?usd>?+ZFCk8R=$i#f!3)5#(5=
    z+sjuG3GzncNRN{Qc7nn8VuktF;u6EiF$|Lgcg(Qp@I-nX`>r9!TpZcYZiTVgq3Jg%
    zko{`hOtva2m7XB+8_8j;srhD;b5a7^?)+`YUuFKKWOtaCo-%|RhCU`KVJXSJs|>nJ
    zAg6!#DAJN1Zz63HN**ToD6(V7`5}>>?=3D#>?}+6G&x)GmE^l*>LQt*smMnvB=#Xb
    zHZq1Bj%1aWTvOPGk>n^M2Q^v6KJf$4!lg!9#}gAtYEC2=9Un%{$%cc}yeisFq!*o%
    z;vr|TIC35Xu*PSrX-ktWCoN|9&NVV7B^uW^vZ>6FT;#~c%8&FcP7c%56tYwESMq~1
    zpUs}B3zciHJK2+%Ku-v)WU|{!8#(_o(;_e>U%kF-m>Ip~(qE-bVqq6xLaZfXl3ihO
    z390cea`_?Wb#ewK7hCc>Y`rHsjC~5HS4;K@r(S+}CN_~V!{}L+e2OB4qu3|E
    zztj;M3jE4XATBOG-z?c37sYlSyTa$MPa#+7IC4f~*K%^elX4@Y$uU4KP!VJ+hm);0
    zMHFNOHkN++7uRy~wY&)P&-6NsPx4Zn&-{|gnOua8i0dx@&iDnczT^wzxlSNIvr$46
    zK|bd1M-KVBGN1Vlp9OH2%l1PrlJ#P3&@rETNvx7S(-V+xSK?F~(K&f7~&k|`!&h#s!dQ>*-OLn#8pV)@PM3D=5
    ztUGNa4Jl(|Xe7fnCyt&HeD)o~;feGz%RYKilZme7M^}`W>}ISW`)3&W&HRH}d~$`6
    zfGZ`2#F=tUavHhdk~1Y;5l_zVaipE-XL%`3ArUEGH6kXNMZEFsVjmwC>n2vosd40I
    z8KfkVtEY@M=m%C|(%RAFszLm+PjRFM{6ivX3HHeogAd8HdTdp45{)eqhyq8rP3H)#
    zVigx5yKx<&CF3eYOvY8Lt&J<#e#Z*lek5`xO-HtY9>q2_)zBs2Flo0lg%8_L75-BR@}gl3dYg;a+mtqR|(*V8zlp$(7_d
    zWzjlW6YGwr)eQ5H-2)_hz=$SeTF#XmGmPxsRC+omMJTZkBivr50uK=;trz`6j}Us5
    zG6ODp+ochLZmQ!F{7(0GuPk8`^{E_yG;KP9^(
    z=w}jRknq(_+K_)_hYJ5lY9%e$p-q0B9VRY%C6mDK{1_qz#b=xbDUo2BTs_D&oR@Pa
    z@xMG4;h)L*z&*;9NE)6NUh0*YytS@j9
    zXSWFCVrg;ln}wJtQcLzx>;Mkl#CUp$(qN3OVDXgr4>{j^0VJPa_-_*NE^)CQTv}8V%C=MWnbR5hu`ZwO^1+
    zs-XbCc#`gmWD+FvJ021-5(|DU!x#Kk5fJZ=kMI!P<|8`}fr%d4B|#2eb~j8~mvmmF
    zCc9l>QS=Jx<5!;G$*F+ck_?MW3=g9xfA}JYPog))MQ9GN)M6&NV}8rDWRm1_+icxkfF61{1z$TYIQV*aninQE@ETiXs&t$4yis=_n+B*tLqB
    zx1v0$Y&C8S$$>=HCA;0^x=wUQcSaO$6-jwFy+~U2%h(PjyN5Nkhu(mS4fUi%(`}?ZBayCf
    zFHv?x7`ETHJM)4zD?NM=t-A3x#bEUj=THF
    zMDl^O1UbpjTMTlKKs~Vg`pCrmZV7_}vR&*R%hjWI?~!4iP6;X2Ae12YIk7ZoV8uDG
    z9)aQEWLxOLMLuvbkq_)PmEVq%UC6&7r;_0$=BBq);+ifjafxSlS5f4^p!Zb5hsE~2(%)=@-^%^?(t$=J5D
    z%CKMx-CN`oKs=yt&r7axv?Gn2T(F8n9PEYz7!~6sXRZWsOM)Q-}=B{7_ABI
    z%*@{aR&&-%NSj7(7jIqK7mC%xT&xL3(vrjI8Im5@vTK~LpZF7kC4>DmpW
    zK|8%*(49a|Zscd_iGrU&Xa}q-BAovs?LnpIRT7>s0f+*klYkYWov7%prRCT-E+o%P<}j+Yq~p*TzX;1+D~`RY1%uWtNw%)Y0?1aiz^9C0i!sJd)o>FD=2$E!m~qo
    zb_mZ7;n^WPJA`Ma@azQR&q2a-knkKN
    zJO>HSLBey8@EjyO2MNzjgy$y0a}(jYiSXP+cy1y*HxZtj2+vJ~=O)5)Q{lO(@Z3~*
    zZYn%C6`q?4&rOBrrowYm;kl{s+)Q|GCOkJ2o|_5J&4lM>!ZVqWmhawX!gDj>xtZ{6
    zr7GnIeW37d4HV9;fx^2rP`I}S3jbCz1Fk45e!&_je!?0kf5RY0`5XCy%vWT-B=a?y
    zFG{QYjeJ>Jl)Os}!$Qs@E#zYnA#XT_WN)
    zq=Kzd!d9tas}!+Ss@N)JY?V5;N+DaNlC4t8R;gvH6th*T*(&91m3p>HL0hGwty0of
    zscEYewNjZIkM@Np;(#x@}V3
    zHmPo#RJTp4+a}d*lj^ofb=#!6ZBpGfscxH8w@s?sCe>||>b6OB+oZZ}Qr$MGZktrM
    zO{&`_)oqjNwn=r{q`GZV-8QLin^d<=s@oYN0C(3VZ=+$MEylRCFa
    zo!g|&ZBpkpsdJmuxlQWaCUtI;I=4xk+oaBIQs*|QbDPw;P3qhxb#9Y7w@IDbq|R+p
    z=QgQxo7A~Y>f9!EZj(BfA1M
    zZkIZ@OP$-L&h1j?cByl_)VW>i+%9!)mpZpgo!h0(?NaAfA1MZkIZ@OP$-L&h1j?
    zcByl_)VW>i+%9!)mpZpgo!h0(?NaAfA1MZkIZ@OP$-L&h1j?cByl_)VW>i+%9!)
    zmpZpgo!h0(?NaAf9l9?vOfnNS!;R&K*+c4ykj8)VV|I+#z-DkUDorojat?9a85G
    zsdIf9l9?vOfnNS!;R&K*+c4ykj8)VV|I+#z-DkUDorojat?9a85GsdIf9l9?vOfnNS!;R
    z&K*+c4ykj8)VV|I+#z-DkUDorojat?9a85GsdIf9-H?vy%rN}W5U&Ye={PN{RJ)VWjY
    z+$nYLlsb1xojaw@ol@scsdJ~)xl`)gDRu6YI(JH)JEhK@Qs+*obEnj~Q|jC)b?%fp
    zcS@Z*rOusF=T50}r_{Mq>f9-H?vy%rN}W5U&Ye={PN{RJ)VWjY+$nYLlsb1xojaw@
    zol@scsdJ~)xl`)gDRu6YI(JH)JEhK@Qs+*obEnj~Q|jC)b?%fpcS@Z*rOusF=T50}
    zr_{Mq>f9-H?vy%rN}W5U&Ye={PN{RJ)VWjY+$nYLlsb1xojaw@ol@scsdJ~)xl`)g
    zDRu6YI(JH)JEhK@Qs+*obEnj~Q|jC)b?%fpcS@Z*rOusF=T50})<@2I--4vhgQU(y
    zUzzBQ6Mb=_Cr?0WT*_RkT#8(3TuNLjTnb$3TgqFiTZ&t1TS{9hTMAq1TFP3g
    zT8dg~T1q-!(PF>n>sd5qzM5rYiq_1RvS`nIA&VB3GL|ZqB9<0+#xf@|Eh9
    z;+5K!(v`}U!j-y}vX!cpqLrGJl9h^;f|Yuea+PY8VwGBzQk6=TLX|p|GLR|INMQLby-*$;lBRHT|TY+}rp`KRMY4@?!j?pPcLs8E>VN-q@f+dGg5{OCXMrC3XEj#aDGwWIO0
    z%357N8f&Yp)itDXxXM~xM;fE6tkt!o@w>vBM)RuG>RQrBUuCVXCA|w!S*vSF?+8@Z
    z>RQsf1%)-ecTlZX*OH#fRMzTR(t8e-wYrw{ene%ht|h%!QCX{NN$+D6*7UAMwOU0OkRPh?0EM}g_TDMi
    zt1HUht5e#mtIFQFQ`)O5Yo$H^N_%y6*}HlwduE
    zV(&gG?KSO7duWyRn)=fITcy3GzO;8&Wv>a6*t?cWdrkXl;w1J~rqYk5zO)-zX|Jg-
    z?PONkYwD{Bm)LusDnFWliS>FZ?KSO7pG+z3HT9)Wt(5kf`qDdWmAxi#vT7nH_HL@u
    zkLG+uJJpr;n)=c%ccs0izO+MLX|JiTCWNxm-g}iFO%TQ2npN6s>Pvh6mG+wY(&qw7
    zdrf_552MOn6HKwUbd~lR{c7SV_CBxDkEXu#@r2S|Q(yYF>tF%|w
    zm%SgYwAa*E6JN16sa1Y7@fCZ^T4}FtU-kyJ(q7%Z?Cor&y}Etbo7*aTO?<`P>Q>sT
    z^~>J)R@!UotLt^r#8>Q1aixDveKkE#?45FzANmwqxn5IW`ixs?uc@ylzGCmGEB$DW
    zXH6Frd!t?DM-yMMx80TYn)+(uEB0Qz(vL>Jn)r&nL9g_qX#p#hzfO{Al7UHVQy#uc@!5Z;Fif@P>m{Hkl;wv_qMrp69ucrTsjk{6$(X_87zG5SE
    zlzuez)x=k9ERV{MCca|he3bT@<5~B3PZM9U@j*)en&Vj$U$K!yDnFX|ij6W-+H2ZZ
    z6JN3MNJ>AN_SM8!Y~+&CkEVS!@f926r1GPQuh{q}rM;$oHIMw*NGYWsjea%#S8Pm`
    z(vRkRrHQZD=qr^U`r4;*y{5jJ{wp?WOX){bU(NGBHoi;gM^j%-{}mevrt+idzha}r
    zl=hnQv!?%wjVDw3(dbw6D3FajQ~A-vS8P<8(q7ZPn*J*`eog5|qhC#Y#YVa*{b=;7
    ziLcn0IF%nwe8tAgDeX1Kv*ytt8(F9HqdA^6{a0)Zp3;x{cxL1C6!vVio^rjqec4Dp
    zrM>!iW~2O+_Uihw5r9g2b^Ef>fhv1V{}mfKsI=GASMz+3jWJaEQ6JB2{GrlbtzR}a
    zQE9JfUrl_)Mlq`V(BTlu_3Go9jdxVqYwD|suh_^)r5{cEYT_$4hEnB66JN3Ml}dX}
    zeKqkF8;Pm(qdA^6&j;CsDnFX|ij7lN+H2ZZ6JN0r
    z%}PHS{c7SXHuhQRN3CBrE?QyFMoBBztJ{~2pjO(ek7qWzT4}GYFB^HSv{$z;8kNI{%{VSGtLFGsDHapA7ptRQ<&zk3hEPI2}
    zkLGyRywlF|JShEWj%UsLS1coh%8%y#E0!%nX|Fk+HO~iGUJ0ci&GD>xKFBgqDEzQ|
    z6w3AL=VdHcML~Pzy@J|5KU{y!dxDyHQTll&BnG}u`{6W42oRcLxmH9@_m&r}oAYu@UOP9Plc3Fq!t7%%@cFcrt%aCU_<3SbQ#L*!$cAosQ>UTNI3M*)hwe
    z#4vltdUeof)rR-#TPUk8z}H3i1w(wkJ^#HyxA_wgDcV6!PNbHA_*#ANTc3>N<&CH5
    zN&YX6>Obw+8i`n!%s{N@6jM>yZN_)+TLK7Ray-(I?{Dj+lbx<*NwE>SkYn6efcC211Qu&KyYel!VZ
    z*feEI`vSXy*X#eB0nvzoeP(9n>0VVeDi}W!5BUjN%|&Q%E9YyLSz-&=7*e|GzGDeq
    zwO{6^dnL0;lPTnxuI0gLSZ7H0YFwLtel)Jle-vR{o8O|wwfV=dac%z5Yh0Tj0UFol
    zp8$+&^N(BOTEoTCv^u}X#k5*oJwtzs$y!}OLvM@8T3toMmCj_XuB4$;#At1J9BEpu
    zuBGAKI+L}!73nk&IGjw@>UK1YTQFIxThj1Woyl6=mWG}XqqSkkf@!t7Ee$W!nXJ{d
    zG<0s5tkrF47_4BjR=1_$f@QQe^lO+_tJ~7>aL{C}ZcD=xI+L}!Ee-F`nXJ`qX~kj-dqc*tg2t!_(0Z-U8M-Ij*F1e3M8
    zEe#LZOxEhQG(2Q8S{u3%OsmyxX?VzHvR1dH;USyJTHTh0u?Hq=bz2%9p_#1JZE1Lf
    zX0$duLNl#ax253`n#o$-mWD@YCTn$D8U`GgtkrF4NJnP0Hl}+uuUEGwn>bx@5j3WI
    zHTzLl)tK(pY_G1Y@#&Y@UR_;dx>u9EHVo3#*YM=Y>_>h4S`AO0%=YRd*lNgqZ?;z-
    z!&XD~d$YazD7I<>B4fH&lOIh;#HN>5wYw%LVpGp6?KSOdcoECIJ(~744Cgf2YeFOA
    zLn5=iTDZn^uV#DA@vMoDj1Pazel+cCNS9%@*R-!DNHV5-HTltmNmj!>yV+h-UqfPi
    zv%RK$4R_yWdrkWqh8vjdHQ|ym-K*JN)4rOB$!d6PWA>xbuOUai*Z|FBGNyYq`_UZFn)u3??$zW+(;sCsJl!zcYtC1i_{yf~lQO1zHT&1JuO_}S
    zrh7H{(ZpBAbgyQ6P5Wx%D`UD>vmZ_SYPzS4>0Zr#H0`U2uZ-zlO@1_eRK|3#W_wNh
    z8r}sr+iU8piLY#$o+@LySF?Z3^+*$68PmO*{Al7Un9R7Wdo^#5
    zrhPT>l`-9`$&aSr%4T@y#cZ!>Url^v)AU^#)4iJgYxJv$uZ-zljed;jUd`*({W->T
    zuV#C7eU0f}&Gzc!*_iItY_G1bG2N@#UVS_p)4iJP4I?AX>(%EgW4c$fy*l17rh7Hp
    ztK$u0x>vKk`gk^`do|f>;wxjiSF^pQzMA;TnC{i=N7KHV$9l$euVz1*`fB1UW4c$9
    zA5DB^O!sQG*BsB9_{y&7zcQwKHT%~b&zktknC{i&M-yKe)4iJQHSMd3uZ-zl&3-iP
    ztBJ3S>0Zr#H0`U2uZ-zlO@1`-l`-9`*_<~yP5+fK-K)uuVWgdTy{3IN@s(Zk
    z9MG8V)$CuRUrqm&G2N@lk0!n{rh7HpYxJv$uZ-zl&3-ic)x=lEbgyPV8vSbGD`UD>
    zlOIidWlZ;Kw%4?;CcZMJdo}yf9M77kgT{2PWvmZ@;HSv`(-K*J;rhPT>l`-9`$&V(!GNyYq+pG2K
    z(8O29bgyPVn&VmX29+`0tJ#mHeKqlwG2N@lkLLNHLla*)bT3kAo)0=S@s%;%t9g4g
    z?W>8ejOkuYel+owG2N@#Uemss_{x~>)$B*pzMA;TnC{i=N7KHV_{x~>)#OJLUm4TA
    zn(Z~`XU+3LW4c$fAItBJ3S>0Zr#)cQ51do|h{)4iJ4tJ~L@?$vCs)~_+$tJz*%Ut_vg
    zv%R`~jp<%Z_L}(0nC{hVuc@ylzA~nJHTzK?&&G7GW_z`Mjp<&^_L}z9#8<|2uO>g5
    z_{x~>)oib6U(NGDW4c$fA5DEV&j*d^UQK>9?_U|yy_)Sc?W=h{XiWEN_M>TE&GSKH
    zx>vIw&GD>xN8On2)#S%8X3D%?Q(sMdWlZ;K_M@qvKkM!%Z)%9!re
    z>_?+tO?+ic_iFN^iLZ?5Ud{HJ<5?458PmO*{b-J7&GSKHx>vIw&GD>xm))4|)#S&J
    zGRnMOQ(sMd<0Zr#G{>{%{VQX-SCb#j^Fd>}SF^q5c-A~0
    zG^Tqs`_UZFn&*SYbgxD~#&oad_3Gz?#&oX+d*!=VY7gq;Lw&Z>>?`H3sgDcwUMipg
    zQ?6EHrYO|W{Jl9#k;)|5cN0}PN_}nEFjndLKjA=r`f^X#WjrC3UYO1Fy
    z-D^PuLpm(emzs31Dx2g2$AD^A7BFJ_^2zv0p5zhxRg>-&-||7!YQ1QJTumRMCdAeB
    zAlfx21oas~(|xFWI;%b@X!;Iyk7m`9EZA|VO!q2|>4NEA&ENQ@do{L-CRWyUMHbj|
    zG%H8Jbg$y~$(IGvz50AtFx{(5&;;~`90kVxtqJEfPop&tqcyR-=2btcYosV0Eeyx*tk9@Rwen$A&8?5=sWPZPOo0(Z@OeFeKkebd1h(n1;!Fil+l|G}}U
    zz7)zc;0ORa%(Ry(%pV#uy^4J(^11qC#`pcYz)ci3TC)>1
    zJ;_f-@*;bmCeZ%h7|Hu@)4iGwUQJB?WW+DpLlcu)H9@IW)8lOY?~V8+cLv&YuV`wR
    zDAT=~js{J?wK3hR*g5P}rF6)ofqjhK!%c
    zG|{kC6AoK7@vv1B5L-17u~iciTQxE9lcB{BtR_BwGPD@`NAv1{RnxU?)r7HDO&n|0
    z1hQ65B>QA&F>jau;?QDx>Q$wCHJ<(yBahYTUd@Hnr~fCzlF_ER9$8J7?EeeHlEvMY
    zD&4E8sWow;P4i}gG2N@#kNWcdzcF%IpYGN4Lz?bbW4c$feSz!0D&4EONP!+xRk~Mm
    zkpkVNEXuHHUU+yiAR0>g&j&;!2L4y+UQI1kFn%N+3Z#2Q5gOcT)4k@~6ioM8;5%cw
    z*MeWtbgwLmHqCj-*5p43%tzMqVeYHqk4;Sz=CD3J(;8Mz-v6`jX$@0SJTBvG4GJZi
    zG-Fmn3VpocP6#7a5FcG~DoURNltNlSuS(a
    z{t?}G#+9_kg0XorO0m}b(9~Ekf8tByTK4Qy;g6mi%u@>*pDyvw`OlNc{xv@QA!vBq
    z140|I`TVfT_((^Tk(2Xbg?td>b0mm;V_r@7j_F`P7o2GwI^E
    z2WezjN=#xxfIBWAlC*z-CoU`{D$yGsU~$JqG>)(Yj0p1*yEu{;nK*R>3{SB}1U9iY
    z3rram85tWGZfg=ba@43{5rO2tVF>|!h@*%`5lzCHhC3Q3TG&IE#_@@fsc~d>$dp9y
    zf3SJ(xJD6)@t&ACw>Q8`=1z@?chik@;q(8qZ55>(xgAbNl#Oh%`M*aO%4S*NiVzdB}WMP#w$t_scB#
    zso25#WzHV_F}B3)?iWUS9dnYxroK`9#xGUI#}8=VboQ=)&NZtTdD@wrQvCVXz6)$r
    zan?`!HeA?nacFwAJqu<&_to8Z60VM&mlSyVyZ7!se!11c%gwz{)%Y`Y!8@ydnwYmG
    zrtyji3lA@U%Jz5kb!SS_n@L~P+p)Ms*VZXrD;#YdzN7Aq$7T9NhZm}QDABXyvom`x
    z|JV-2yH=f_UZr+Z4z4wQt-zxl1|FzK>JEp(nw8ng0
    zy!qp5jKI~-C15Wa{SXjEn2m_dua1tUfuhQ?cqf~ucun~Q(a!@Iezz}kz1xF
    zA1&E&?%_@)tIhB)>-cNHqy1lWs@m;2d+EfhjTL%SK48GSdCv@AW$WPB7
    znp?8-{OjJqTRLY=oPKoo;(l-$S>x3&at1|5_HeHaYPmPN
    zcEAhM>$O?i)?c=KNK)g$Wjl<2
    z>#c@2W=(q0e^}1sA|)!=?tJn3v~6vk8t~qOo)Z$rk8IY^zjCALFWNpXJ^LOl>Cy7g;u&361vDBu;hT+*Hy1wmk>$|~
    zQ?0E6Mt#0_c9X2}zh+O(=rSSlTKFIJAC7VD3|>7p!M^73_l>*O+qw7Rp?g=>ZY^B(
    z?}QigVs_2BoAG6b@^4)G`mM7S&Ls{1yF*e3clF;J%uhM>{gs}pZVm2R?`FBSNsjJ6
    z-YdCp(*CMNBj?_!wzNs_S*;Rxma4j;_r8>$e=K+Za?vRtOk7}F_;hN~9-EI`vYm?B
    zc+WZi`hzw}GrqiB^YM`#|6Ewwy6V&O9yJ{BvCZ#B*NpPdRQ#r-cSQYndX-MS8C7H9
    z?85!)Z+O@;dPd~5a=SLw{JziLmRA;s47xn-#s^KOJzUp&$%(H<9Q^!x=nr!`O$)ja
    zIQEZkKAZY!y*UztYRf-QkTCCLY1MT|VyS+2L&HUFV9_!VrVfKKZ+)p3)piOA&
    zVm}^BPL3P?XRo5~I*$&m+J52hzgO9EclrL`ezArpzCL=nr`4u8cSqe$x@ig9a%IBd
    z^RG|;C;NDjLVlTX#iHVzEt3A+b8BqI>SLc(ZurdgOMfrg+G*t6S&t{QUvTWuSIer0
    zMzk#V*4$U?m5F~Yh|^oUMq_2aAeYc*R~ZOpB2)_rB~(PC(mS(Wzny4j&~(N={<
    zzdiHyN`B|7+z5ZI^!%kK#;)JBV%tZ4H%C`~_;I~5=fmyJTJ@gmvNh<`FJHn*7^H-X^%QwzH@$N*13V#n?yI>
    z7gTOnR@)c7B$NiYAp%d%+Vf-M)!Dw*9r=+gup;+t{VYKbSjU?8Ug#OFyjq(bkneJ$~ow^q{@t
    z9>3Npqw2-eX);`BCJk{ywvD^1fHCTUX_`bQ_-x^ry%MtY|bdGs1HU8t6
    zu-I##9lJYZ!DpGJKj=1YQ)JWDWrly4IJVW!i!a2Dp8NdHE&ChVg6Etm7MW6X+x0$i
    znMZa^?eIdULe9SXYJGA4$95mDZu9#0+ds0^d9TIpHO-gLORGI%&EZ1>&rLb^S5AkG
    zCG%ne*0ebmJH5WG;k2#|8op6}{M4eAH}*-pw5IO;zRSnmpP2KS<v~Mo@$#2rB6s(nQupc2Q*y3VTF}4Iv7%E>Y>BXaQ+dpk%@KDGTscr-V3(fDddw<0
    zU{Uq+M+STT>X8(@;(V12g&H0Ds^OS5Yi5N#yFYG1Zt>D-W8ylt8h0#Y>8K*x{+K#-
    zRkKsy?^?BN$*rxkn@_$LTfB8{`qHEf$NCoEtaz^4!i=*Qt-t+N>sF7#Y5qN8^CG9b
    zv2o1o&&NIA#=mma@EUguxBdN_b2-OSKaDR{Gca)DgC&PgJ~Ly+x7XTqc24=Z=){<&
    zf4)${Yc1{9bllwu4=;aEwn5O@v#%_y(sR;;4y7M7_`3S49fxXublH>JbI0kiw?nH9
    zD|S6{`=!F7dtbgWcthlf4z+ef6dmyD
    zhC8*p)=obhHK0bX3dtv*D!sGvr0uPiom#lBe7&A+YMl=_F!`f75gX2&Y1m@I$xo)e
    z{d$dJU3Ugw|Gs+7j)89t9y>1RT7Q1>#o4u|Q+gd}USUR~
    z<;zN(tvmb7ty1CDs|@=nBxB+;)7n)$)Uy7en8E=qgZDgWy`bV=i@*QEcRrZ*#`?G}
    z$1fb{8(aE*Vsm@U%eK4K)?a(KH}AFn9dut(?hxBvV!pji21
    z&8IJl{B1;Q|BrWU&a5@xWu4ce*notD;|crf5BU9?Mdh9?@=~35{#v$UUF~9po;{lA
    zY2NwJucH_IaOd@_NuIuK8{EIU>+ZH`@fiaGliJ*lUNyb$H^2UK|F2&&JJ)@0)yTbd
    z7FHj%anYm;tttk!>v(cb_3NcOH@^5{&C~@17eIX8E#q<+SQKEA5vSzV%Xx>;7A_`hB*4_RdQs21o5pD`9PAnbhm&
    z;VDzoMmPHWMpnIhNo8JmB|ahH#*vEUzWjU8^mfg+46W6EWAlxTs!X_Be(kG6c4ePF
    zx8lRPBj>zQc3EU(M5lx0#};}0{UKN5TutAc>0STUy3PF)_g|07E_(XgZ(|Gh=wIxg
    zF`teZJ@NaU(>hLRxbi>!{_vrVle5bG@Ttk9;>FAZhGxHy3=@)lnq&v#22f
    z|Ed3fSN{15*(2_rNGo}!)8)r4=A@olIrX};-;aZvbf`7(=$B=e4v4+=xK`-{VNFWT
    zSZF~y)96e4?86@{{_u+*
    zE?(XIQtG3hdgZ;Jb>enLof#V{@AzuLougGlO8jme9NhMHzuVQXjhySMH>>fE&v#y_
    z+^B4~DkuNGS~;gf`wP7<%x-@F{&H);mjTPhdka;2`%d?XLu_gN&wTyV)+w!OxTp9fEjz4P~XmP!Fx8E^U(3-l(=9ox-+
    z`Nd%ug9m=!?c?d=t}d
    z<#xFh&U&Y}ELsv`o8RV}$M0JF0
    zVKu9a`Sa+iWj8-ueSA*&Yb{H?+vj3~CALQOTeS!scc9GU%&N<;eERJAxjh!Xo7Jvk
    z`IM{%0gqD4W;tV44(qcxIn5jQdc}$TrX)Mx+85b(%>_r74LPsg>$<-4(I$UB3h#a5PwR8XRJC=sE
    zi|y6ny=T5H^79UFV2AgPbQmz}h~wWKU;pm=;l&eH^ly79qw~No2i_WFse5?+jfx4s
    z_FdOwO|^|9uiW@{_Rv9T`)WjWxiO{Rb4M;$9MdGUdD3?Ok*}=$^{00y_uaVYsjn;7
    z2)VQS*||Ztdc9ftQu`h!`tJGT+8f=b5Ak+9lkmxoZ(d1t@80<9@$X8vS=`mWeE+`a
    zVW0izY&GSj)zja7HFZ?+s;i%#w>hTlXB8Xt{ruF@4zv8Gy!&~QtzqVwF@1CQj)}{e
    ze57XE@S`oJkGS}#NyQDpryiegdb{$V-7U-AAAYd#!+XQC!_Owy3E6yn^o{xNc((Vx
    zHF*99Wgc5*)@+qkrmVe7x5aguq<(CjH)288KduH8_vFPcS~=-PkFTo)j4AeF{V#Sk
    zbWa)d_2rrqN>+@Y{;1KB3L$Mlf?GCCi3X
    zo7Zh!T=Yu^dN*s*qJQGw7RTA=aueTAuy36=>G_A=N`bdMqjDD?jHxpH*!7L?#{RIO
    zSGz}5i~V@D;-)UouQ=s?biVDB-9L1wJLSU5)!#23esDPrD@AmJwe$2EXZ(iL}HTs?L(<)Ms;SMtEg
    z7ya7Qe6DWY9trzP9;`P#<w$Pnu*)_TCzC}@YCIs}Hxu@mzp-W3lYVhc{
    zlG|PNtNxMRq;iM#jqY8K-Quc~oBMlO-j(hDe0t(ap*N2#`f@@>`(3q8+wEh2hzPm%
    zV8@^V-L5_J<;0GwGybU@Zhf}fqZJiLgq{AWQlYkcj@SOHZre}a2(cV%bE{~L!!O=g
    zwz%k4U=
    z#;0{&G3nE9i-h`}_+#=j)!z7Jba448@q@n|aeU(BzZN{WUoo`qn2x_4y3uh+PN8k}
    z{%Dlc^@qdTJ1uZLs55Eou@i;AFJ+DWZgZn0cXrplJo=60BRii@&+A-l(v{}lK0bdZ
    z=wz>lt;)o0A@^^UM|?fy!*l&Yk1s17H-E^5v+Z8!J8jqFcb6_)`*iG6LvDZBCo*@+
    zz)~}|9bH!a#*ar|D|PzulD!+gpLM5nNbqkxH#MKw{pf|nYB>!qj_h;d<%!RnD1WNt
    zsUti4-mSPJX4q@h`+hU-`i7KB=T3zE^z6!v$KUn$&$?bUsr|a=6L!5*Y{?Z{)j=~F
    zFa6}7h}QxhEpIq-++O>S-TyrQtMz>O7iV|=EpY$gxJx60W?#shpB$gNzJ3Mo%T*rO
    zx>c&OeL$40`ukNPo_Ce`uEb|OU)x-&!t;mv_?11pWz<%>{)SpUWK}A
    z>Nx!^=|v`#nD=tfg@(?{t3$TBhaG+^wfyQ^#k(hMtWslWfb*Z&2wX$@!q
    
    diff --git a/lang/dist/platform/elc-asan.dSYM/Contents/Info.plist b/lang/dist/platform/elc-asan.dSYM/Contents/Info.plist
    deleted file mode 100644
    index 509e0bc..0000000
    --- a/lang/dist/platform/elc-asan.dSYM/Contents/Info.plist
    +++ /dev/null
    @@ -1,20 +0,0 @@
    -
    -
    -
    -	
    -		CFBundleDevelopmentRegion
    -		English
    -		CFBundleIdentifier
    -		com.apple.xcode.dsym.elc-asan
    -		CFBundleInfoDictionaryVersion
    -		6.0
    -		CFBundlePackageType
    -		dSYM
    -		CFBundleSignature
    -		????
    -		CFBundleShortVersionString
    -		1.0
    -		CFBundleVersion
    -		1
    -	
    -
    diff --git a/lang/dist/platform/elc-asan.dSYM/Contents/Resources/DWARF/elc-asan b/lang/dist/platform/elc-asan.dSYM/Contents/Resources/DWARF/elc-asan
    deleted file mode 100644
    index aac088b82206bc3960637330c3e30f0c8b15c63e..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 376196
    zcmeF)eY{jI7vct=%^`-N9-42Bjyc?Ke1DL4DU+pV#MN4PIBj^T+Sc
    z&
    zbLVezuldsDl^GXy{@0#7w_Co(ZA6@ui$pC#q(xG6Z^Y7@0@?}ywjuGFOL2#
    zms>BqX!ZwYzwh!0$NeL79e3k#jOTee+DN%PZ}v6wn(s{N{a4A212S8!RX8&GBmVb9
    zVN~B&y`>LCe;hyGHPI6h&oJTlBg~+9-^@QFyukcD`b)Xo+tGT-#KzN|F4A-(VM4drrw*Uihi+M}oOy6(iy$IGtAWxhdu!lNQ!AoB1Km&Q)6_l5U*kFBe_zcV
    z9KTCCx)-%|B>fOSZ`>LG!F=JbkKJ~xbC2Doe`CImWj9s3s=d80dwk*IS10Q*JWVU)
    z@f=h0-^%6ow!XGww;jK~;d+@blX|lLen0dr?Wwl4mv3t8iC2*T_WA(d7plMQ
    z{gwGP^YH%q-<+?ly}c)X2*=O&`Kmm=YE(~_^t(nS&)<7l-qQ=|qfH)j`oH@8ML)!nn~&e$#UGLR#?O$d#Z&&<
    z^Cc$%$Ilo1tIRi#AM`=be{a6{_=`?edXArO*H2}>e`T6o(a+nz_mA#xSM(E+*QciA
    z@4^3&`3{^Tvpo3Gk$?B+>)+ef|J?UK&%pmY1OM|3{LeG+|Nk=(|2RJ-`jI*3@)MGu
    zcVlpX{{h#plKTsID?T4DxJK^31P?6}&&P9CiYvHruQ>jtDBk}1==Y`gC-;Z&i4TeI
    z$4eg;KZqNf#Gl7QpBH}JJP|KF@fFGblyKN0o`vrjBfb)^A1_{t*PboD884qKz6Y=L#cT1`y2X#;!Cvtb
    z__03mzv9M+#L;di`*-Hu;%K)Mzw~kOemvs~;ur9PTf`%x11Nre_6&+&kBeUvpM|G=
    zNqjyY`m%T~9(+n%#s|J7j&>uN|FqrW`*7dS#s7?FG{oP;w>&5Q0p4-?E0guuk2~Hj
    zK7uRn5uX^H?@e6p@PsFc`PJ83|ryUlbhO>VbpM^twA)fRqc|Yj`xb+lq
    z58nI^@ju~NzW70W+PlPG!1ugI{B>NvSo}18>@x9B@uaK7@!M_jqh(|?lz{KNETq}Mv-hm7F%yn}Ad+{xw5HG^sBjPUHsEhBw
    zgO7{v$7=`0bv)`R@fY#ZQ2Z@CXNUO5_|SL6`|yMRF8&kV{Ji+Y=ojI5|N4F>j@m8p
    zB;F6zpEnhJdOSWl2K4>NGjPcJlkdO{d@lBm%KTGt248@Ed=akT%W;6O#&ulAAzp$T
    zxQ4yI%Jy%?8T?`F
    z{~m|1%z#04j
    z?Bm6_f;(`4`*9uLjzfGmZr}mzy+XGC5YFJwU>|=0SMXLG;O)4Mzk@^kL)^eW#a{G6
    z89)EO!WsOZ*vEgw6?_B-cx3dsN78@z6dd9=;s(xOFZy63-u_uQgY($O=iv&Tg#$bn
    z*YQ<2#AV#TOR+anwtpke;16LR--Ro9H4gAPT*nXN5PuFg@F4bHCENcx&ftH=KK?$g
    z;9WStdvP8A28Z|$xPf27-m7K%Cq!>J#_N~CufaZkJ+9z!IKUHe9iM|kJQX*vkG&IR
    z`>DK;R=2P2l#PZ$6v-F-i{miyV#3P4CB|IAK?uC
    z1@`fNT)}_90sa%N<5xzXH^l1^;?cN)--x|aWczQ$8GJVOaS2!O1vtQ$;5xn%hj<}w
    z;3e35t!)2BoWZwYAFsj{d_NBGL%5C~#Ub8;8~Cf(Ymx1L3uo~6v5$A-3jQSy@bkEi
    z|A<3;6gTjzN6Y$nr^@zE#Too&?Bj{Jg3rYPo{sDI-8jT^aRXnCz1PY1+i(WofPLJL
    zEBFo^;Cpc$KY&BL0XOjHu=je|{uglue-rz7C$8Wh;sE~)*YU4$h!5fhei3_PWcw$a
    z!p|RkGWPLUT)}7H0H1~HxPU`E6F2Zh*c&U`zXE6Qwb;j1T*2Kqz_;Q$z6*zV4Q}91
    zV($&I{ZHcz{sQ*#HeA6^;Q)UR*YS^Wi1*?K{w?<2DBFJlXYgOJk4L^%)~AABivxT*
    zuH(1k5KqPpJQaJV$@VYA8GI@B@qAptWgOsTxQ=^qh*#hSz8ia|%l1EpGx$^3$D42k
    zKY;`MbzH~a#vy(dH}Fre_a@o?uW$zc4*U2puHe7n0G||n9-aLB$FIjB9*-ON9oT!b
    zY(IxH_&n_6*|>r)#{qsnuH(fx#GSZ-Z^qs@+5Vk4gYUyWUWY6A5gg#haUFjdhj=?~
    z;O}BDdLt3Rm#`IKU6#I(`&~cnfaeuVODF+y55M;O}D}
    z@5UAUOB~?maUK5=hxjON;8#b%l(=8Kx61ZU#Too&?Bj{Jg3rYPo{sDI-8jT^aRXnC
    zy|>Bs+i(WofPLJLEBFo^;Cpc$KY&BL0XOjHu=jS^{uglue-rz7C$8Wh;sE~)*YU4$
    zh!5fhei3^UWcw#X!J~LRGWcZd6iyQd2*n5X;{{@`E
    zf58P~heNy$
    zH}E6an=JD`jx+en*vH#(1%DR@_(!;oe}Nl#KhB&Z+xr8q;6LF2zcR{KCFf&!G!F3_
    zaRa{+x4{h`)s!`1{z)%Y3_W2LBTK_<3Bxf5ZVkitG5*ZzLcmj*r=XQs&Z$Knb;1K06cT8|4_KUL~y
    zVjo|G1AGOp<7;t+y5TU
    z;2&cj@5L4TTO8mQa2@{zhj?TZXinA#zZQG%l^&fs3`;}y7q@5TZC7_Q?_;Sg`a4g3W5X2|xxjx+e%xPqU>0saXN@vm?L
    z{|`>~G~
    zYd!ANdVI6i`%-@=&fxp7kJsS}egxO?<2b}$#tpn3XD*cOeHT~ok8ps0fkV6>d+(C^
    zKVTpKN$c?|qkMY29w8o$8~Babd$-K@R-D0SV;`4rfG@xyz63Y$l{hm?=3j_?yhQ8q
    zjarXy!`^JEUxhRHejMP3bo_f{{G)n5-hxB?RULnkjQU1317Na2LPwII5Y3#jE?*9U=;BB~$pVIMH%J}c$0RI>_@LufClkvaBA$|d8=F9zm
    z!4*96E%Xb1Ee`SNxPjk}y{lwC&0}S-=CORNd8`0y9;=Quj}>CgV|iE0{F=wAV3Wtf
    zCXa^_s`ZV9jIsSo2sFta+?D);v~-HIL=JU*^|5Rt0MwE5Mq^3bE#~8d&pK
    z-Unnp&0}S-=CORNd8`W7JXU};k5$K$bv?1kXI(4XGx;oR@>$sAv#{o~Lah0$2G)F*
    zw?O9Cd{zc)KFi0N&#GX}X9ZaES#_-WtPpEHtARD2Raq$8*L+rhHJ??-n$HTc=Cc}D
    z^I4e>%6yv7s$R9txA=Z4B*Dl-Bd{zZ(J}bbQ&#Gh1XN6evSq-fDEUzl_Yd$N3HJ{~U&1Y4x
    z=CcB<`K&tDd{&4xpVh#c&+@L5?Q1?OgEgP!W6ft(u;#M@tof`u)_hioHJ{bMn$Pl<
    z$o4g#mBE_N^0DT#Dp>Pb0oHt09h-a>)_j(~RJN!2tP0kAR)961RmYmo@|H=x=CgdP
    z`K$`od{%%ppH;`2&kC{Tvl>|QS>E-sJRRg-$nYx!97S{1B$tvc4c
    zR){sPmAO&o)4Z0CHLq2{n%4@j=C$fr^I8q8c`d(3=GVMd1#4a_zWzD>{9p50b*y=<
    z5Nlqmfi6Jea&lSu;#UVta+^p*1T4LHLq32n%4@k
    z=CvAF^IG0*vVF~KWw7S8Dp>Pcb!_rlSo2z$tq^NotARDI<*ktU
    zG_RGxn%Ame&1(f%^I9R+yjBBiUdy{(=GVMd25Vl+$C}p)u;#Twta+^lHhHZ(WPX#^
    z!kX8rW6f)YSo2y9ta&Xjkoh#PmBE_V^0DT%0<3wh5Nlqmfi|Gpl6$zv=joh<}P3__uoh-E#lo*imL&zkleYGsJ!%-*0pV4sZ#F_)_fMDdXF;
    z9^b6>c#YQMN45ULQvY?W$3N71{2Q&uN45SgsUMT!@#C{`fZv5f{C@1Ml=_<14)FC_kMGp_f0FtKwH`mA_4qqlkN0Z*
    zeNul&>+#8Nm&Y66x8V>^$KGnGZ^b@dqV@Q8t;g%MevQ;`)_VMHt;avtdi;Xce^lyE
    zoWSvm&%gnmf+x5$9{)h=@qVp;Na~MjJsx|eJl+6L#vz`Ky?>Vah1kdaT94OgJ>I1C
    zpOX6RT90>YJwB-Qc;s0ezw4!bJoa%32Y4I1Ck4pV^t;f5y9v{?tJaQ82zftPPV;`4rfal^6SG9hV
    z)UVKbyiV)!7OlrSwf?hGzgO$=VXeobC$s)|BKAHf^)s=L=i>l(YCT@1^^ZyY2Cc{2
    zv>rdJ^?1M5KQ8r0wH}W>hxNykafoMQ@AFc>5c{}a>+u?`$D6eN3sS#b>+x=_#|O0@
    zk35(4-z@dxv5!kQz;khkt6INB>Q`tzUZ?eVi`L_vTK_LnzgO$=VXeobv#dX!h`lGI
    zekS(ud>r6Tt;egheo*Q+Xg%Jh_4rw>$NRPZi&B47>+#qe>yIbn5YNWmm!y6n_Hn<~
    z<2723H);KsrGC5CgCO8t23;}Q<=TpZ%6)^C&g6}oF^~V#j_f@H%iG4gD2e?z~@hYwVn$&O5db~~R@v~Zw_iO#vrT(ba
    zo{dTR#yR{x4)OtL!#QHxe_2aRROE|!D
    zafqv0zg_BAXgyx1^>~ZcK9@k_iH^~qxE=`)_+^-w`)D#
    zt@Zez*5i@WSpOYTKOXzIgabSmhq$WsJEeYw*5h?rkGE(&-l_H9k@~$_j}L1-9zC7)
    z#}l#lU8$dmeLNorxKr!#Dy@H7>NjXT-lp~VS*^$Wwf=ije^l%7*mtu2crp(0Z0!A;
    z)Gx$7?$>&}M(gn=t^dB%Z`XRfTkG*bt;ZwJWBs3z`tjJuB^=~Zc@R;Ka~2J*vIp6fIGDwuhRM&s|x7Oo>T8~Gb&-(9@
    z`tjJuB^=vb1db~yJ@lLJ(cd6g2_4u&X&}M(gn=
    zt^bA8Z`XRfTkG*bt;ZuTWc~L@{dnx-5)SZO9OA0h@0I!$T94OhJ>H`Ac&FC?ht%)Y
    zdVE;x@#uH4{&*txekt`cv5)8D0C#FVUZwR7so$XWc$?PaXSE*h*ZN;c{ZXyQW8cmC
    z~Zc!!`_4u&X@R;zm@u#*vIp6fIGDwuhRPGq<(|e
    z<84}xpVfN2U+bTj`lDKp$G(U4$CGi0XJhX_rG6pyalh8%HCm51Y5nh{e!JG=-CBc?XrmvDgR;t*H0{-D&a(0aU1>+u$?$2+zD_fo%C>+xZ&$D=Q1{qaQX
    z{XyzyVjs`P0q)d#yh`hbrGA6f<84}xpVfN2U+Z6x`lDKp$6mtvc?Xr
    zmvDgR;t*H0{;1Ti(0aU1>+u$?$2+zDuTsBP>+xZ&$D=P}{qaQX{Y~m;Vjs`P0q)d#
    zyh`gm`Txpn(0aU0>+!Q%kN0c+2~vMl>+#sjS${kkhj=#jULo}hv5)(;9Wgw&76J}%(^&&46GYW+y5U!nDQoz~+mT90>X{i~#Yuh!$k
    zT8~Fx!TRHg*n73q&%{2Sj|1GP^>~%mM_+V&g6DY~v>tEMdi<=`OZ|4O$Gf#2AJlq0@=Df!l+=&MJ}%(^&&46G
    zYW--bU!nDQoz~+mT90>X{V7tvSL^X%t;eJ1vHo}>_FgOXGqI27;{bPRJzk~tEmFTh
    z>+v?N$Iog#-mmqiO8rr-$7AQS{&+GD@oen9PU;t8ANOlLUZeGRlh(gp>bGk>-mUfc
    zpw{D&SF!$Mq<%d1aR~=_E)H>3>&Hs{3a!WMv>tEKdc0HX-yrpSwH_bVdi7gaf2?^e
    z?~PKgc`YAnUMs+w*9x)bwY<}$Uh`T$*1T4LHLn%o(O2{QMM1Xs^d+p3KLZCkwFV$wEAz{fWMC
    zIaxo=m-$%pWdYWFS%@`X=Dk(wHDBgq&6fpO^JO8{e3|z)sn>j&k2PNwV9l3>So3Ax
    z+ofLfWj@w?S%7P`z?yFhahuk^L+Ul}=3~vf1z7WLA=bQ`cc#>9-p$9FcMGuQ-9oH+H}5Q|
    z*SwpLHSZQ+&AWwI^KRZhO1&VXg&Us*5{@EIjzTk
    z!vTK7JLn%g8G8k(pM`yVEe>#x*5glW{}iSEJJ`qfYCW!NJ^m{8N>cv=?Bo4fkB@3S
    z)_j~dMd~#l=VQ&s1z7WOA=Z4HH&yC2ALrxW=<|bg9>TosTtN7huiTg;?`--aDmU^L0Mfd|iMwUl(G{*Lmkj{q_3z@kelgH{lR#
    z9?zR0^_s`?vF7mtta-c;YaY*=DfODi^Redf0<3ww5NjUKJ74NGkLP2};{{mrcp=t2
    zo_B%NYaY+Xn#T*U=J7)O6wim}OTFgve60Dr0Bb%k#G23ZE|hxB=lNLkc>&gZUWhfH
    z=ej-k2RkcV9n=+So3+_EUDLgo{u%37huijh4{Dn
    z{LPm7*IX<8&lh0L^MzRReBLEeuX#QnYo0H_n&%6#=J~w$O1x
    zE|q%C^Z8iwd;!)xUx+o&=gpCN&GY$K^Lzo;JYR@4&*#mRdd>6sSo3@V);wQ`HP7c=
    zCiR-<^Redn0<3wy5Nn>#yIkru&*x*!^95M*d?D66pVun&n&NU^jW6kpgSo3@#);yp0KB?C{pN}=q7huivg;?`^-j!0Xc|IR&o-e?f=L@ms`Mh~j
    zuX#QnYo0H_n&%5~EB)!smwL_j`M6vA7i-=x#G3c>u9AAq`}tV&egW3JUx+pD=UpxJ
    zn)mau=KTV!dA|^A-p{*6>NW4@W6k>oSo3}%*1VtheyP{IpN}=~7hui%g;?``-Up;!
    z^L{>Ft{2rXa3vd?qU?1OuTk*rVg16xseg+5l
    z*LVQ`8Q1ZtAC$*Gh|k0!z5oy5t8fE%;$gfJdsW&0PvI8)C7i+E!&%(GK7J9m;#11<
    zcq@1!uHhLtz*ph{d_At?JMkcX5Qq2)JcPf48+b1s#)q(Xo$UX~6?wcZ_-#0Yr{gSc
    z#XeqwTk-9(q1TO#{^8*afL
    z#~J)M&f*aJ_$Rm({~lNH$VKvaYj_+EZ~+hC_u@Kk!-M!19OC=&5dJJ~;O%%A@50_v
    z+5g|+7W|6E@^~}&bezRm?Bk1YEB+v^;C@`gt8suI#RK>oxQ>5>2k~<_#DBv>_zmsy
    z_#1dK9>%k-b4Lhbh`k$R|L5Qq+>SGNInLs>*vFf3E8c-Ccn_}OLpZ>r
    zma_hM0`R>#a;*Nk6Z9QoWVzM7LQrR`r}Es70<#Iya3m5
    z9}e(pJb*XiI(`xl;$1kz2k;OcaXssg$KhdI#9k-sk6Um%&fw)Zi`QZwZ^o^72d>~f
    zxP}km0FSzX^~V!%9nZjncpeUM2Oh#JaRaZ%!+0z9x>$eQg7@JJK7zA&Ob6?aC*f8+
    z3s>+0T*G}hz^m~9-iYh?Nj!*m;Se9dLwH0d>yO9bVO+#sH|vjEa68W6SF!z1YE~6@F1RtL)?Lf@Jigk>+vw&ioF`^k6Z9QoWVzM7LVy>
    z{qZE+if7>pUVv-34+nTP9>5!M9Y2W&@h%+V19%9JsImTd93I9+?A^%v;}+bGGk7`9
    z;e5)a~CIK&6=5FXLX`r~nU7#FeE%lhLM
    z+>SGNInLs>*vFf3E8c-Ccn_}OLpZ>r`dEKF0oU;iJc#Gv5O?4qyb?F?dOVD`Vy}<&
    z$1Qjt&fp_Bi^ue{{&*5@#j|h)FTge2hXcGC58#csj-SMXcoz=w0X&39+{F6had;RP
    zvDeS~;}+bGGk7`9;zuN-OT#q7Tk_Acsb7Ewb;j-aVy?|D|ipC;X^pUqdvs?;|aKqXW&6R4~Mt|
    z58;)#f!E_QCO@532<1ZVM>+gN`*3Af@|xPlkp8t%gZUX2IvMqI~F;z7I%
    zhxh;SGNInLs>*vFf3E8c-Ccn_}OLpZ>rR`R>#omWlf82ui;S4^4vv|zytUsQFTk$Mh!3%H=_u&Aq#shdG
    zuHz^1Al`*Td;kyO5qGfucpM(aMeNM$$D460-hnH453b=uIKZO<
    z)*ny6bvy$P;(0j49e4<@#0|V2596)aTh9997Q7E<@DZHFWA0@A@g&@eXWyIblRy+$=@B&=JeK^3Y@c`b4>-b4Lh@4d;#s(Y7vLK1!vS862k=H*$4}xxybFi;03O04?qmJ&I6RDt*t?7M
    z$1S)WXYg{I#cQ#TH{({k16S}KT*HTOfJd!n{qY1`$20ICo`*x+frs!)+`#McFy4y2
    zm8?H*!TWFqAHi8XW)16)C*f8+3s>+0T*G}hz^m~9-iYh?Nj!*m;Se9dLwLkTS${kZ
    z591>CRlwFh!5Z)
    zJmO=lKOTpNaS?lWv;MdRx8n?6j`R>#oj%vKW@SMa0Va2Sv=+e)*ny8t#}r$;03sb`*46);{m)8*YT5h
    z5bwevK7fbth_$Rg9*2i<5qtNt{*
    zHLq32n%5e{n%4@k=Cy{f=CvAF^IF4r50B6LC)xiaxCNiFP9ARt&%{}*c`qMp-m4XB
    z-m8K&?^VN^_X@D)y#{a_+pFW-@gRN#hxkc6gd4bl|AvRL=E=PKWdAi!)`B%pmcg1Q
    z%VN!w`B?L0tyuG96|8x(8rD2nfHhAxfHhB6$C@V_#1lRt>l0$lmknXfmo>2F%Z9P$
    z%e>XH|C%pr!J042V9l3hvF6KstogE5togDEKDom2kKcv^JRJ|Qf)uX(o?d>O}Q2AljFHu*Pf@^9GW->}KQVUvHuCjW*_{tcV_8?N#ALc9(SVa>-i
    zu;$~2vF78vkIDXPKCT68J}!ebAD6|NkMptS<65!i<0@G5aW$;@xBzQDZUAp%f9iNQ
    z9>g!|{^Qdhl-HXftogbI)_mPC)_k4!aoK;(*R^2H*JZHg>#}&n64{=Q$Kh67#1%XT
    z*Kj)y@N^#k0G^NQxDOBF<Uhre@_Y5L9BVc5Nn=q2tRX!JYNm0dA?z+c|PwGvj3XrYr&f5%V5p(WwGY@e5`rCR;+ox
    z3f4Sd4Qrk+z?$b9z?$c)W6kpoV$Jh~So3^Ccupt#k2TLXj5W{aeNy&c^L#B>^L!bs
    zdA=;xJfDv>&)14I&sV{k=c{4O^95M*d;?hXe08jOzCo;cz7T7kZwNor#r|W>^9^Io
    z^LY=l{@pUZ1#6x!gEh~W#hT~yvF7<&vF7!{@ulc?fd_MPQu;%@;So3~9*1TUU*1TT@Yu>MhHSZT-
    z&HD{t&HL4{=KTh-=KVsfdA}j7dA|nMyx%Z>=0^7apJo3w@7IDg@0Y=v_se3<`}tV&
    zey#Xgp1%q<`9Ey(f7s;zu*v^nlmEje|A%j9dqY_BfDNp9z+tR;K<`ts|Bq1Lf;AtQ
    z!QbHiES}RV&!3MqFW8DTFId5v7p!5;3kF#8f&*Cdf_1EU!9lEf!4PX+a0qK&uz@u%
    zIE*zf=&hIi*Sug0*1TW_YhEymck_Js_?bR=K3ehLxW9tm^v`mC4WEw#`~f_GZ^m`}
    zK-d*@K{K?2~Y4N-){&IZ(sh(HCPvZdp6nl@#e80yTe8PIE
    z_wgHX1)qrx(KJ4TF
    z!WI0Q4YI!hehaSSb8(2zQ*V~-&A|VKlp11s~GX5+0!TgA%{(s@{Gp|Uz1E0B3#{WBh>^br8@rhSS{ZTw^
    zzIfEb@#FKnQ47Uy!FBG>;%t}`&+rbOpZ$347P#TVf-ZxdgIzqU+V#ePlPgEw}I@4ydsh*#tK-Qovz
    zd?4P4GyfzW#96lYHQa|o{PaUI{uz8vt9TDyf4TVgc=;#Af5LM
    z&&AJtQO3`~^>2$i@CaX?-#hSxtL6TW;@}QB{?_9I&x^l|TkaG;g$JJz@50Xo;$Py&
    zj>zL1R$niV|5Z`n#;+eOzn1&ofS>uD_-uSJ_2=W-Gjji2>^~*`Al`bJ%-@Ii{G<3z
    zyx{jT{sH{h3*vvlCoYijJMq9qx&MFTaX%67$MtRE7u92=e#E1)eI$M{F_0{ZJKcs1jH
    zfDimw>i6QouZW+=E1wp>ghy=^zh;x{e`BZk41DB6vObgX@U?RPbbRp`S>G#g_GIz3
    zdjBorDn9Yw#Qpf1lf-x6Xa2AFUR?RM_!D}6beE(RufwaO8{_Te@Q&AuXX2K3i7&##GsRcq$KEMk
    zqT{EFZ^BQWExrp6<;3^ncII1;54=Y1{{r5DzmC_QDEIHc6K08jgljG0U*Qwk{}=Fj
    z#=rV=@_d}e<2fADgDdYA
    ze+f@GBK1$=!L#N5@8ex(iGP8|oGE@Dw@wnjh_k1PPkc=F_qmbcF?i!N@muhYQ^e=s
    zm&VHRHAC;`_2oi*<^;L_J^125@qFC)q|8^r)7FV^!0mWBUcO%LzXz}V-|~9>aa{YI
    zcq5*-PrMCJJ4as6zJ>SvR_@=0$Bmc!8+c%jJm0^;qo&E@|0CYW{vX9-IG=je97Dc&7LZ__S-q
    zU&Z^X^87!8pT_@z*W-h@4$*ZGvx7Ki)UrTOK|b6;y%3NQh7Wd#+6y(kK!!9uddho>7UPO{W3Yezla-4#M{;V
    z;-~RTec~VE6FHyyC4PqUv;V}W-6i8+#QRo>Ulkpv@z1**{Cs~M-c^?8BZCJ%AU+pg
    z^M3JE+;N}G_ij9me!T)OW&RJ~;k7cps{V+$7Z;iD!+1eOws$|i_=Dnq#?P_6P531q
    z-&gR{x6AxH@PUO=KZKXIi~j@PvPgUYUvr)Kzwj7dk57pDK7RfVTq^gUf`f0!@$ojC
    zt;+T%;pNwfr{aMH;#s)SE}oA!en4E-dd7F+eHFQXIo>rzw!ad4oR5DLUyL8Zv%V$c
    zx8f83OZF$!`(F@0gP*xUw)gLN49D9q@w~$_-%&hjSp0^6k>_g~56xvjUY>zvN+
    z_Wq7)d2wHNPxCG9$t~56^36SMwQ_It{(Ct>^k;j2P5-*6|2nVSv8=bR+}6?2z1S;v
    zMnm~)TW>76skho!Ue;Bvb+j$6Mg`s7H}pnjH&n|@t5HGsqU*i#(!Rc0xxG93OSP@N
    z+S6OUuBW?GX5g-JUw8SsWgX2EM2}}#*AlN>zWmB7Z*Hqy($$xn!elph_uNp89(7VK
    zDBqO#%GWQ79?P=6{+7|bf`=Y;aOMKw>b$564@_3SVNk722E?S($ZBkZV6z^yB
    z#3l2^)$z(zqo*c)$D;ma9qq}y@nh=mh}$fBiWW^NMyr<`NYRs7?dfWZ9%X!c^yH_cnSv7GE^a(7!#wX3ZhKRq|dYew|q#tVhKg7hqlp7X_vWQ*~uRo}ACYIpRg
    z;s%I^#071&TD2=$v7{t^wTfOowJy0WTDtb=DPc{Lo8s5QsIQ}SSr)$tB)9cOv&7F_
    zt-GsNZdI&(p1F6hifow=wp7j@>M&Ro=)i#l^rXD;f@MV+~*
    zGnaJclFl4`?X^6IC7rpXGe_TO%w0NjNoOwU%q5+9iq1SmXP%-nPtlpD=*&}e<|#V!
    z6rFjB&OAkDo~koX)tRU2%u{vdsXFsioq4LxJXL3&sxwd3nWyQ@({$!(I`cH0d792V
    zO=q5_Gf&f*r|Hbobmr+g^K_kgy3RaZXP&MzPuH2J>&(-2=IJ`~be%b;9e7SIt8?eF
    zI(aUuv*)rpeJ-o>=d!wiTvoS`%jza_S+k8)JDP1AYsh0Ad8{Rm_2jXpJl2)R+S2r8
    z&NODubY{-9X3q3x&NOGvbZ5@AXU_Cz&NOJwbZE}BXwLL#&NOMxbZO4CY0mU%&NOPy
    zbZXADYR>d(&NOSzbZgGEYtHm*&NOV!bZpMFY|iv-&NOY#bZySGZO-&<&h%@}G;Gdv
    zY_4Qh+VpJBG;PjwZS;b!FQKMybEa`~rgL+qb#tb7bEbK7rh9XyeRHONbEbiFrh{{)
    zg>$BdbEb)Nri*i?jdP}tbEc7Vrjv7~m2;+-bEcVdrkiu7opYw2bEctlrlWJFrE{jI
    zbEc_trmJ(Nt#hWYbEdI#rn7UVwR5JobEdg-rn~c|yYr^I^QOD=rn~c|yYr^I^QOD=
    zrn~c|yYr^I^QOD==BI7mba&o#ciwb&-gI}~ba&o#ciwb&-gI}~ba&o#ciwb&-gI}~
    zba&o#ciwb&-gI}~ba&o#ciwb&-gI}~ba&o#ciwb&-gI}~ba&o#ciwb&-gI}~ba&o#
    zciwb&-gI}~ba&o#ciwb&-gI}~ba&o#ciwb&-gI}~{8-MLKF^yz&znAvPUYy|yy^42
    z>GQnl^StTvyy^42>GQnl^StTvyy^42>GQnl^StTvyy^42>GQnl^StTvyy^42>GQnl
    z^StTvyy^42>GQnl^StTvyy^42>GQnl^StTvyy^42>GQnl^StTvyy^42>GQnl^StTv
    zyy^42>GQnl^StTvyy^42>GQnl^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=^MdK~g6Z>u
    z>GOi=^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=
    z^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=^MdK~
    zg6Z>u>GOi=^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=^MdK~g6Z>u
    z>GOi=^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=
    z^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=^MdK~g6Z>u>GOi=^MdK~
    zg6Z>u>GOi=^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ
    z>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL
    z^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL^P=hV
    zqUrOZ>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ
    z>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL
    z^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL^P=hVqUrOZ>GPuL^OEWF
    zlIio3>GP85^OEWFlIio3>GP85^OEWFlIio3>GP85^OEWFlIio3>GP85^OEWFlIio3
    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

    aoRqczvY}j?Te0S~3?q$3BRkD_2?zj>5r>%L= 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
    %0`*@oTvG!udFC&d7jId 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%0DNGtkK|zt-QTHT%yva9^i~4X zsRX@<1MW;iud?*Q4`U7_F$QhU+KaZI0yWE{SC8@UMH!jvKz`?u4qj}#*kXZq!Fmku zct*Co$izJbsw9AQGs;N&Th^QRwy68S59ehhO=8>b>Taa5KH7Q-{ISUVf#ewTDqAnc zu_E(_OkYym&Wlecdi81>nTawY%i|%}tTtM%BKvIpd_~x;yAbir|jfywp=9V9}pLiV~{ zBtj4Nbt}-8xAm7coEYe9!wIQ7te${>5m_9NC1VWsA7fA_`d&}w!+|f@8)*m9z7iqd z81-IYQ4h<31>GfLGc;Cz;1uN~ablWx#kmSCk33ZcKG&hlI@Hg3_CoTDK9u}!MIUPA z_Av4ZHgw*NxLErrGd96-!2Nh{+C(A-*@Td%7 zeyrSGk$b*sK)PSWeIP=T?qZ`VyZhp%_Z0|)qzNPIg1@E<(Ly`2I$@DU$7r`byEXtu5RFnQNa*ndhrz&17DnMi`li48>0usC|(}J#bEWJDxRGuG;dqrp2bNL~QTQ z?umx(HO9s-MO`c>SkP%tl%@Q|u7^{fnua{2TbjP~@C(!fH#FC0C%n^i(1+x!9Q@XH z5LPvK_Vjs*`29ra@P72|iGgGKxpi~1D>h%V1m; zqWrMe$jUd<=$-fWWa+VRBGy2^pRaZoAa8fC9J;;A@4UK?;{}ZjeW8!et^71Co#z1wy`1IwN7?>{jF|i zhT*dh4(Rgxpfz}(>8L>UefQ^^=}K_v0vsm?7K(2yknNcX^9ZWF{V$- zL98a_O}y-2Z)OF?bBrg-vrcSy8~D`Wih0u;{*AHwv*1WdjnOddxal=mILv~6_GyyiaYTjcTlhxpI1`U+{b?L1_8N53OFKZyFr9IkC2 z$KtoY?>*g-@xTFS4+XLvT9t0o{_ z+dx=N3D91Zg7yT`Y#X@J(oQ*oW|1l6SBLw`oK2OGoo1O(uEn>DFuyyWfTs?O*=X>K-SX*d-z8dkj zm3o8kr+pl=)AYGE#_Hc*$5@E9#I{dq?{-CAOV=3G$JnVH^`wfg_QQL&CANjdx*P{`BtO0-9@F)Hk zwim0F^o`J|IO2zl0;@k(KIk%`|6)pN+>x3ePTE8h`}oeR}W@aBzWzUc4P&C1d3 z;Xio3IHaGi=x^G4e^-Hzy20%#w6AZg-|t47I?lu`U+ksxRv``h2RFhGO8dGMzinI7 z?QJypq5uC3wlD{C zJA#X~Ch=GOa4$8^iAWmO1UX;9e(G?HUCN=C(;NMLaa3J^I=uJ^Hux@RsE#<5tI^I^ zL)T(2NY{1}RRw-o{xT4L#>nT@f#@H=XMZE3=s-=+tpklbvyD8BtoB1$>}eD_t*lOB z-j=ee1^wsiI6S@swvRTDD6_s{@Bq&@Y=>P!Cb(ai^zz(LMBM{^Fs?IWj z@5vEus38||?00%^Jo}!l`0dDVjrWs3|Lg(oX1vFoTjdHfhWOsRUt#7t&^F@};mb!D zd(!pxP@f|oKxcVr!hc+mSiq_G^wB`cxNN6??L zZ+n*e<>Ak){3cnNG4`qe4Yl=6RUzcN75Q1$zYL$e=O~Fk(7g|NsrxxuOPcjtoDUbC zfX6tVbA$g%&Sk_oA956U^7uBkeK^u=AKTU1 zw(JQoHfP&!4EC;LN@=?ru{Vo*E>=PwyoXrYILcw{7C!?1ePbVEr}XcGwSRvPV-~ON zWF^~TnNTZI+A$RANZr=R*>Tk{31m>KomTZu-W~Ak3F)#dmo-T-dbkUUfJKh8_(%@ zLxMIOQQshc3C7QU**q+|m9><(Q?tK&gT==k8tJhA5jAq_tFhlgIR}2ik6i|A z>PlpEc2`eEe+RD{kd8UtDxQ518J*jeGQv0RaSxi2(YSz&X4rC+(afRlNj_R%udl);(Sv+VoQ4noU6@xIv7V(un560|(LSdZTXH{QX0z?SP+ zB;~F|xpJ#7Q*OMGsniAgA8UDnjxR+1TKFM(XKa5s-fy6+N&DU--TAhTDVn#_P{y%k z&er!7?1eJ4ZNa%jr^S%Qxh6@wL8tXVnjQ-msM+9!?U3_XSKt}*S={3ppLK3e@S^7m zx+1^szj^<9Sarm2><#9*H^fY|qo_In^ptisJcw=Osr`{wt@pLXV@$(Y_@PMS-az4N z_DJ_y%&D=hp5T}1%#rRC%kON`5m9>*3+1HFTbLGBKVU3i#s;`2Sf_o5G|GT?XLJ$WE+rFb{o&_bCkGuwwC={ezi*w(!RWj25|kcM0;L?nLYuJ@$AH?;Ol&lkYV- z`mO-3nNI>n$>U9nx#l8t&1h%mI^(eht>2eWwiatA!i&-G3rGv<_i3b+>wU>_r*fp* zR?nHnV=J|vPT+m1mC0NDR&!X*hD=9KrLPp;EW2m!S)fA>};QRLYPZ}@i=1jZN)@Aa{mpHIM z{qh)W3TIhq$3O8IaRl4{rwKgEnaF(gF`wnmhXUn3YUdX6)opm@+za#9;#uo0UwwgR zrhWb&JsuSaUIY}i8WAboD~Dm;^>xyJACZc~LZ}I@#9wEzZ|~{^`DY;DpOI;4YJQP*0Bl#{GC#g0d&u^6-WKKETje zI@&$$MdKqIM!O2-S=ZX0j+}Fz&;K~TI+_1*{xyXE!kh77w*b2w@yrUu61I=J326?} zXuGT77p*-%kLQpRR-t|-zu|EX^3!*E7#R2c9ci^|o0{QLuEj{R?Wz>AW1C>Rsy@eH z*0Am7sdI_xPeb2%2GUB;HuH)#0xk(M?A<+Xq0%NKo!D9 zNTc}>GMXjj6V%H!;w~6ZStA^WFO``#?WJU z9!NagaVRt~4Q2Z>pG}h(F;Dd-9_D)_AJdSp5NWm9Ce6?iB_3=^@-Yqhx)Kj*s~F#7 z9|v_o`~EoBwj~|oe1P9t?^t7fuxYW@Ran*InfAhR=R^ErEf&6!}MXW6XeHp zzS@`l>LE^LIqGxZJ81WJ?_q5Bk+$wc#5qErxqqq-@2Wjp((zgXw9tQ@vlV*9o)*$| zE}pF~8I12P(U&}hI(Cff?LLkF`CB@>&*1-29PP=5nGoKv4E|LISo>QGa+^-USOo2FHwF28R|OtJFBeW9=!`lbU> zZiDtsaVI;+oi3O-izNSZ)w`Jg5m}ga^&rw6oWEeZMa(ZgB!n@Z$nvc*?$7AU#D|?2 zav$-^a*ZpZ7NKmd)xC+qPXmwX#zs|T2Jfwqy99W=Cjn#WO8SqL(21=VXGkMLXDRm! zMARJCC1+K69=-K3>-?p_1QyOwYb^M&E5?{M*y8|q?-w{13_B@1z@5$d;m1OVd1+Jc zpieGGOd#)3?mSy={(){UuiQcI1t_O&IwE$cbqt$^Z`}vBNd5a|JcYEQKNVbzBROCB zOE+Vm-?niFqyLcneKoJeCO`F=j@MO?rS#>9j|BVR1KoMh7u&==;HA{o30_86UW&)M zo1Ql^SUJ`mWp%o&Bjk*Ix~QA+tDn}_EUjDHxbWGU)?0MH95wm>h}PA2YF*EOj!EAv z(1&*I$-1MZ53+vQ(zo?Mw@ZM&M$l3X-O^sy!nc$E85U>6ICm2Gr%kPdtu%YLcAR@4 z-@!HzkLh}E80U^M`3FFTr0d84UEhy3w$pLEd#|PI>hbPI%=d`SI&zLYsy+Z+wb;`% z%-XF?fmY8Pbb@;jb&pU)K!B z{SGmK&}U+x+fk+*_UGvda;Ki8?nfMVJ!1&yX}<9}b@pA?O!s{gU#tXwA~)FY4ba0H zj)m(ScP#WEI3*eGO`w%Jos9A}?^QPMF`4dAn|E!dd$q@xj?>NsjkV;<+LEyi!JeJv zCJc?%&S*FCt}@H5u>5Y;SjVNq+M4Cw+Zxu;Yc&ZoUlR`@S`Y|eJCwE2y$V(>^s%PYG|Xt@o?!DA>9*t`KjR0Xu`l+*f`$iCuh!rO1B+(!>TYZ|lBj z^Dogl`vC7s(T|AS4E}7J|Aw~i6E?qziC-uF^(J0p8sesxkXCYC^H}c%q*a&t(va_I zq!rmT6Qiy|TIpPq&%~&YBCYmXlV)^L!F-@ocxC*DIOPGP1!KbHNDIb3CQ2 z4V@=Zco?UlYXyVx-XrAAO4+Bl-Ek zoI#nyga>3u%=Z1m40E@2K1RCg);0n zUjU}y^&RNp-EZ)o$|`7poNCJU8c4jFSamP&9OFz6PoM8u#4@A{cb8bYT%>UvPz~BV ztdj?5tV`@3{fIg#fHlvQ6TJCJylaq7tSU>_%?7I`-=pi$0M;cagLXz;;J&xyn#u)C z2i98jjiF-?!r2?cYiH!4?Bb(5%>4qGr=YChjY#61z%<~k&MFu!G8<`d%Ex#(y#qLh zqs%s$v+ALu&@uPr?U;nS*Kj}PR>+NeZuqT^CqetVFFSMWRFjW;GBI|l8G~=FV!g8F zWb>_6`|X`#`F11s24GK9y`EF%9L}K_TXHOQCG1e&m&tp-3RJPA7phBmC<_{z;jQ!IjTxU7@7@63>nZSF^5ZQ? zkGCLzx60!A?DJ8kCG9g&rtK4FbdvUYWdLV|#qqV9Wq!KeOHbEX0lZsN;LSI9(hiSw z(#q}V0Nzz8@Gke`y_X(uYyj_^6nG_myfZS=($_zLcWes0DSo_YW?H;(0Pmm_c%%Jz zZ>Ps=`mDJf4@`mA*N^wtthDrP3gAUk;B_^4($4PAO^f$&052m2-Y&?*^V>&er^S0Y zfcGQH2HS0&!2^9Yp^Z6d@g57{t+#l-cJ?9D{-B-R8^C$p;`rLxONK6K7eA)wb3p)a zRSLXE{dniMNz3OI0leiY@Rs`V8q?#Q5x`rR0`EpYp4&DpeMbiH=(mD;z08jnZI>2r zOaPC5D~NZRA8$c=ynX>Z`mG?|5q`W*p|tdM3*gaj37*gHMl$UW?5^q4K>J6T-*DFs z=iM6dzZQG#=XQ2}+4UEv@!_MLX-#vTil(`3@YlAY3F~hW#3FTDoF~?*n}3~g?c{qx zyC*N?{wcH_`Cd8V6S;@rIkcrYIFE=pB{61tC%5kY%!<1EvnsF`v@wMKoN@VPj8%De z%~r%FE3t3$tIW`*3y$PEW%Aqf8K942no{ufly_zk_s^QM-T&k9qwgTt207_55cjin zR|j@Nym*9zaRB!EgQl31?T$hk*NR!Uzpn35w(c;@X=3fKg!SP*0ewa?S>I!U`qrb2 z;9?vT1Mc(ScUhNiF4vGnKfXIh-a%e37B<)z(9MAsG z7TFbeXUU(zJE7H+4b}_zo#T=*?hPJ}KD+xU@=`WJFZPRZ%uISb*|W5N+t4mI5?~FO-C6^CCVP{=avuVe3{9MJp~*yOMSS%e?9V*AP)21 zUmkW>7_1Xud-hBUV>o>#g*wFe4(~PyorUUXW2-!qvOF_y6L=NcP6Dlr6)!@}*qZK& zJ$Yzbxd8I8x_bh&*?s%#Ui<8GHUzcZf8lGqTeE&rSvniTKbv00@$lfey^=!FK-*vQSP0y=&myG8+%FN z>yrNAaZA5fN76rB?bV_E!$Zi+wkJHmKRk=^l$Is-4AOVPKU5)2`-h0S8g2Kh%pRL& zI?l9Z*ypG_Il4F=~d;;4tRI0ZE9LjSQ1euC})-=M*-ze`*2pY-JidiYv@=OVB0 z3E4ghJEHy;wOfY0)KN77^{k?=#@LYc+BR?!%9KNg{@79X8OUSW!k%6|+J2{?j9_8> z<;OY{>AU_?+*ta0lguIba1tD&bq(Mgfc*Pm9trI#?nL@|vL1nS2XeOlq7v`Ra(N~! zqR!xc(Q3!t{fTX#5hd^8yJHw*_d{9klQVXPbJhdh3n2^4DIiVXp-%tR9r@U%Y#kmp z_8Wfh!zN}|tWhBH9K#yW5yH*l84gWDinQv7Nk&IrF5CK)>}nZTLXFeq57385!S=owyKGo~S&>y~)(8;~k!`1T^jc<-*tTuyFs>fIKwa!>AcUr zE~~h)cLu%{fIC|2{#{%#9?#qG%(MoadH8L7apO&X9`lp)l?y>{HF)IOgPC`WmlevK zCH6Ciy!o=@0(@R0eB!1Iu`%WMj4(R zWS_^ov*_ET?fAxA=MZ1F=lak;y|G~2%n2p@b3%IuXgdLAgLudK@uKZ*jGq!OKY%we z1>Qk^y#07Dq0CvP#LEug?Sr!1+jSx478%Ds3Ei$kUn~1Dc68ADF}if*oMQdSy*s*y z;p1}<%l3fJSa#Mlt8SC_?K+mgzAyaN{avo-C%d5T4Ul&! zWXpMA?c4C4{s?{i`j4$YGWUO){PgA9pf}D_Zjt{{^^5#3R6patt_OV|_@Q6g2A=ut z2itb^8B3g>^6>TjN1KrEZS)mEeSOFBR{ukIA5-h{eZ<4mZEzjR2JznW=u=J@fh;~i10 z<4p|U&9rzvKF?zs**2-|qgM*N0zcklAojB=PD)kEf^afdJk+De&I#`%)-H`(CRzF@rBrV>w0N%AJ@UHUXy^tQSIDkjL6||Rg{CGp6Y3bWL zfJeU-#5>lH_jY=``~V*PRuJzXKi+ie!N%n)8efS;Qb2zgYx?kY5%Q1s0`qJnF4Qp60bgVML}Bn$^&?B zroemEkN03`q14i=!+-E8e!EffHxLpOBoOP=o^{Ds|oGjTj;wJc}(or3~%>`&D(PS6nJ|k z@e(1kZr2*##sFS81zzVQUQGz+blEqxhWAkbuL=AI`Q3>$)0X45Z*L86O#p8b%9dlz z;rBMQ8{7+uxd@J5UdR78uuqq1ub8x#@V~Bi@iU=}-1d`4JEPub8O)W64dRU4-un;( zV|Z3-KKn-g9C0{>OJ<{|eTF;$t2j>d$|m-jTs zmE5bp9N!48jbQx;b70)BatLrZ|Gz}WKLzTIwt7yE_bG(%O_<(ooJ%KQ{$F_Toddoc zba1>x+o}2PlB-!+QUG1tjB|%V?4){6@B6?@Cm3BK1RL;e;l40 ziR+*LL;eP&Rimzr_>OPgsN%*7%xl`Qk<8Z&ZR5tgdUP!P7gNrUbtuxf??te%zqoFA zYOKxytkI_2R>;baHw@_<9}6D##MSMa8gJ(Z&3!>%Q_hdo8)=-sEhnG%A6$`&$GQN{ z9<~g9^;;vbrcj_VAw#hNocrK!wm6S zXTHKjR2g|C-^(+jo6uIL>3dJ3YBaD&|M|$ncFD7mc5dizrv6%dL)`N4oR0_QrEEre zbnCgO5>svi=x&5ANek;cQ0OmE2jG9u_KriDTC^3Z=b64~{b-?ApO(|XC>z8ZpTzsa zzOHQmZ>Yud#a)Au#F}gy+{N6`+kt^?m1JjSM^xzSv>}O zSC7UX)}!!!k0bGY>TLPGM-%*Qx^IPVfo{aF;*2ZKCfao;v74i5o7itI@4dS=TK^t) z*Bm)l}(n3z2dLuKcLK!&<#y>j zzxc~_)#sEq`^z04C^x{IW%idFt<%2rm%CM$`v7#Jt;X#+!@0-`m(rgLj=3A;HsmSMXD(`-wF7WxO6#)VeJoN|&JaWt<;t^6 zl7=<4q3~PsZ0-%Y67P#GjrRTz(0IXGeZE_Cgmt`fTh81YLZ2Eew;#%#>Mw`8F>bfz z%v~U-pjf!n{*L}w0nLeZn za;=iPKzIfssyZP*+avSvcMg7gZ9&d$7N}96r}jWYkDN)!Rl`Ul&csUHk``4%kXD3m z$%s5~7YNUHy`N=#1kTbNXZe(KBv=DL{!-lAAQ#~x;=}Zr*1ZR`F-WN_`dQQ#KeLL8Yzcu2l@P~ z*hntECk$O$TIKGKsCp4~dwv<`I2I!hdA`f?jJtd8z_ZptSlzkCo*BXT^rfc7CAhN> zvcewwfg-D}RzBu#jrAzYI~0UAb2q{YBMV8Z*1iLK36gY(T<~2qq)8s!$^1HSYOzKw zzr}td>UO+;*2qNk1^Um^bl1d240O--(cQh;$`0${w%rMhxhg>#^%K0B;W>gP;be+~2IsyOS1 z9bSiifiV=zFGL#7byb!k&HB!vNRv8n2KI660g(LW4hrnsm%C0S&B*yML$9QnJ18a^ zzF5bF;6dvZ-*Lw??Ew0(-yvXD~BkE_QOP-oe?iG*$ z`51$89UxQo39GDJ)@s>)BlY1P9sHMe)zz6M<)Np~jq$n z%)tL^Xh-ti_^NiG$+3P3_sx82X*O+}a;?UG4JjjOQMD6k*n3mC6goW_=SJvHc@`0O zol3l{{biwg0l&Eyl;e>Tbo;Jkta}`u9gLfjn7QgZVAi4^ku>pvQB{jH_7RdMekEVw zJaO414-5Arz*m%S^kYR87HNG*75{HjmGCu3-=jpnUPM`r z11N9)ewM#+H$nM(+=rL1eg{UeJm;z3@LYsD5O0JWSI`azz<*&cgzym2XNwie^X#;w z^<`RET?Sfc2mPVXYGVfje0E^(J&<;Udk>aC_PqDtZu}o}-XOuCeRMz>%A9TLufWuF z>w6DQ!tWbiOWu318Fz_r+&mQYkgt8@zveR(uq)nsAoLo$nsuPhu4;4K-Y6^Y>vG%& z!7uz~!ntIioJYoU+`)Y-JQFT?7HQ?Ln0#{Xu0Ty;eK@-%WsQ$KjAe0NJed|%6IqtuyMSzC5{u=kgOKJlOT+jO zX(br`mi660OJHKfP+&hvBK5bp?2$ zTvPFMW`L*Dd_3(yKWBN`if8AS<~&iZo-G)ju4CHIh9}$y=Gkba_F-4yJ$*BEm5!%g zuN$7sJrx%c_a41}IbFGLUunuK!rrh2Yce7mpqp~Wf;bD>2J`8#hZ-j_&OIJ|Gi}U4 z+U_~4D|Tl&F4|3vQ=W@Ct>Q)}WBfY&e`bc`?9V-R7#BSw@14A6?|Wb4T*`f?7!P;z z@{}a=IN8OGyXUM~$+1xg_&FKHjTpbXIT=nP)3#540rM9bIBT1Uv$hWI{Kq^g=>SF! z=qLgm^zAvo>79|YY3scCOZU%+Y+8W(_-14lH|BPVER=ccJslTwQNKVJ)2fkP+SF8e z$(ju8i**_s(QjYg7WEM~NPmWN=|!6UV@dyqi1~tY!2Z)`g0wpr2kf3R5wuUh+{??t zUomVyWFo)osq_3IO znB(LuWE>}U^T;^2XDj7we$nlkEG=uFErmfJ?P+bMGs5cE+8N`vXnApk1AVW?*^^1o zZBFCd584-(PPOwfYks}vgXh6#HTWupPH_f<_oKM;q1W*2{To)!JGEgWMY2 z*q2LxSeq3ZL|@R`$=Jj+`+MurFTy9lAHrVAFa69c;7q_@E$$%Tx8x52*4KDPeNwiE z8SGlYo&XzvNo*UwLds7@+Y8Ee3vgnYPUW_&5O6|jC@^UA#2g}ckxl2rXRv+{DEyX&C7Ui z`*eKM@#t*Gw+-Z*!M>&@WPB_4RM%!XjsHU0#J2{BAI-=vo%%9x=`X*+f8z@hL4Uac z?_h(89OEy2?K|P`Ps7c9V1j+zpY?%rP*-d1yAErM@PP@x58MD9>UMt!ct04vZ&C$h zA!`FeR>Mvmr}EI%x?f7AuTsR)TX6ryHnBZNh4K&nprS4OY-}&LeOBqz+eZFv#s|1i_3_!$2C$=|DPo}1}xn(;*G(r8BR zrXk|5qw4qH^}NS*nYjz;M_vY_UjO#rB(^?Y)!4rNL@Z#Dt}7AZi)GEz~AxTa$6QXhBK01Z;bQXvx64`glboLvzK;1S z@=QV}sC*L7Qp1HjtBp&ondwQ1JWmdvLpy52V7+rDb6XAVO7GP1edDSL)wOAnelOyk z+WH%93^wO_XV8{A_tM8h&Hs-hJQ(!YcE~@)gSEg>!W<4}hv zm|NK(zqaM{V0>4PY}P!#Onu43oCq$G==TWi9|f;f$${)S=o(@k+3dsYVx6Q&d@>Xb zV#C?I^YjpSbn!P7?iTVbBD%}i-)ImUPV3R9!^L+ZxHxjckq@!B zIR5j092cek4{>4r9bClf?5cC2tnFfXIVx+2hIm=h)h`ub*xHfGVUt?QwsJ4P6Lq~DD*j0tL^jy5uAgZ(94v|ZF% zwk12WukXc%cp*wh1aL3Y~WWp!$AD$Mk80;yB_U?%I4?+9~ zAO3@6NUT36nQRnQz3JL%M$3xYlh>P_>neO>ld%p)w}REch8Ru1uQB!)elfSV6`!Ty z7oOfXxNqMvw>Nc#5#qy2y#`~{II88h6Z6a1KIepC7$@o`7+uvns%z8hjYePB@_mA{ zmpLjKWAy4fSZd4i_-fkK2J<--?~nMIxnVfJzL$(W(f+pEr#;q|>e}C6XEk7Za`tGi zV)OIS$<`>@6`Z5bxqI`c7@R@iY%u}*GPkbYYcG<((tM5Lk&1z3_ zO^~+4$Ksnl@cR_wH#z_BApWg*r@gcw@Q`@t?4A?L`fbBl-L&+l z=7w+byMy1c|M)5Ph>1NChb>9mVi~ry#|&jK9^oeWclhwo`vPDRefL1`7Wiz3Mup!@ z@R&-fNKw8T_L8@hQgE4lj1Vi&^mEVR$hMUJQTR=*h}+ z?)~tVceTOy_xOGTYtZYFagKcJw@VqH&7+3K`V(`*VDifzFZ}pp+ZMsruv1tRj zGBJwYm(!;B-l31A@SWV-^a70#-|QNe8aRfoEy^9~$ZOHiV&>(N50>v!+~qdPF9!dT zFS@^#d)ee#=W^)cR9^5hPbZe0`dqU4Ht1!^5H#~)#8(uqB%2jukeqYrWoZ<>^hM~! zSmx48Qn(M;Tzc`{c}dTiz!AikwBI%J9;DML>nkQI> zRg-SUcV_ql$4YnB5@Oute&5Q%j;x<8 z88*J)t`*Xc(3~A#A4UwGwxVN1L$$k|amKb=MPF{)>SvSsrtKj19_?3Hw2yCEWZ~D3 z1;=_(y5wf`LGWnM}#vA`ELb-J?``GMxML%YJO_U&)aQ%OXu=B zb+upE!*3YBufA{i4#HCn=m6_8%3pEHxbMHr`&heJ_JH_l6LqGP`0-<__GZ(sc%+_Z z#x+hJ%t7Eg1P`d6dG9-G#^Q;KPQo}amKBX>XFO(jJTXr71;6b!R%;B2EJ;`GJ%p@N zyEAEb3pS2Z-WQ&Dvh9AnDHb)9Z!cY{x@quEG5q`#XZCB4_(XnNStH!~Z|9PBYxv}^ z=X%mQUxx34Kgw%NzVptW+5AN3Z>0r}8Q5f!1D8Vk?t0y9u2Vfm4LJ*;py0xvJHj`M zP42}ninWZSjAVlR{J%o$8mrnlgYtL5C;Hy4;Bn-}sdj@KTN-MP+K>+|=;71N&7t?m zD?W+Cq;M;6IQ%$pe){H`dj_*dj?l*dn)q*rCVosi>h~dJ5;3cseAXf~wl2n|IEhhZ zgwEnx_yQk_1+JU(J@VsM8lmmN7x+<*_NGWXietaQ^-whS9OH24fb$?uj$xooWem0+ zw(0#Z%EdpGC+gn&WHi4l0+$WXTWU-3n0}hSFA5&X@WF6;>b%9-yrtN4VPxL=Y2O#2 z{iN_)^b-$nM9CiI zZNG}I-x_CZ@#Ft;p4H4X{1@=AI9RX8gC4esi^Mr{VBAH-&xb*~!@^$%4&@<>me1u{ zwwdUl??xj>^PG2Zb)lZOo5-BSsfr8Rx^nTa))Z#&oO<^C6v|EJJ`)-5mRT_ZyOL*b z4l~v*dTD$p|E1=h_PCxGS|oS2Tp0Qf-pT$(7U$6ZOr70!0RKw-Hivb>uR~Wl*IfSB zug&jP1>u$n!`3v_=@EtKZyY2zXwDIhV*r1|y zTfQPolYzND&RG|B;Wh1IMep*E-R4^x?Dl$?0ds$g09$ z+wYRX+xZu6G@fntGrnofzvfH$c$4dfxa2I$G_oB2O$;}KBhf~~szq7@JV`rR16+(g zJF)CK=<5s6*|pGH5p=hZ*jr&EbZGNl1~}|Ou9d3qnDyunpewDpIQ_?kL&V_(Uq8>w zrsCU+$Pw{C0X*`;N!gVge$*a=*7*m@uA%Hq#Z@J{Hu0}M4d}|qFhZYUjIVS3#;@o0 zzKHMpJFYj}a3OwGwY=41wQLX2nK z);VW}>PO@;AHMK4jI)IK;G2M5i_yo>*#ml>LfeYpYc4fE`S=m8y>JzEgvV3oh;_bC zI7dmRnInz&lg!ZpVALE{f!jwTb5zY7CB@89Qq&x|cpPjF>YGg8V6i8+&V%$Pny&iI zmA!FMxUaNvzrHpF+*kc(n7%n_(|+~Jf6obejM+ivA(ObEgWJS#%Qjm!ZOMeEt5=?z z`U1~J=-J&56s|Gq<-c?Wd6qn@+CHx>oxT?T_R3!T5#|J*L2hWSzCge3 z+SEkK%;vppu{LsFN_w>)E-^eV0)KT+-z;}b$El~W@}1L}`hJBwFBWAD@Nv4lD9wwz z?$!c6jh6oPSIIQ_IrHUjk?-TQYmzgvy`gKHiR^K5q}=Bnz%fJ{b{>?wj@RdjBaSp2 z{WAjlW+e8F8Ol6fvM+D@aC{m) zcon)Y&enaB2e0ApX>MEipTa->OrecWv*!|9&wXPWco5}XL0=Ibx>Ke67}a{!-s zCG}SGdxyTBc*58t7^h$t+(5f}{#Ty&ReBnkwO;aZnrxV_$m{*+Nh8NFTdrvHth&59 zzGacMeB8qJ>x?@OJmK);O6u3YNKDL#z_V_ea#L(RFs-V>b7}YFyB|yorSi_jhhehc z7MaVvgO8SJp+D2s2HI3C>dF_;i3vv2ff@b#i*Dn6ps(+eFYqtANFQ%hw7L76gXf0= z^rx|XhxhuHu;%#qt#Q~D9_))@;CJABC(_2Nls#}GeatmNho(B?lD~K>XHpV3nE4?w z;3w@dv9|zyzkog(h8gesc3#=L1>K_Sq+iYLy_V}2xPBeo-(u^1U-)^-k|R6wb@aY+ z;1rK{_Nh2+8SW9VwwAVz1D~?kQh97uxWJALl*ztT;xj;$ha6j(&Sq=t$g# z+F>X?@uXrXk5cBSW2aWU6(2Z;UMRA2)v?{a%eyx88SBTpv~SkH-bkN}&Vw%Per{4f zDdB_A!1pLy&zjZ6jP>n4V?#1HNaJ}M_NkF!h7x(-Kt6$N5;q4C9E`{u~iAJE;eqPo8T=FItxi)N4;287TYmEQmvEz(610Q=^ z#Kyga{;_|VBEhQ+y@-GZ(vj&PmxM9eU)tVaP1fhGOr_YKPdd;E(raQ_f^p5yZl4nw(m>awCM);drk}cGmt~FffTpO0jW1Nrd(o0jr>vbpry;NM zUy(biYd??ig>0UQ%4zjQ+1d8HsC=$Z>I;peuc3S)!C-Aacc3ry`mn$23%Ph2%ntv> z3#a#m+`7*(SK{fCH?QhFlk1@PB$AsWUuech_(E?EAK(jVPWCY;@`W5-bM8rB$jdlO z2JwY{x0QL4FGRgqUnq_`!sDrPM6C4_&QY{46gx+n|4-rzeV_3UG7`w1O`d!2>bn#(;57#cV z@p12kp)XS2wF^6be5zge&KAcm+|B=BcHvK`Z_8)?ZM$%l?80H_wc*%>Bd`lcqRT9F znV0<2xRC6^t0~L(*Lx2f!Zv&f+wch^^wugz?zbO~*oK^EGmCv1ZNfRW;mgz!-TD4- zRljZc+LisbA+pf54X1(IjL8FSL)lzzTY~vR+Q%3fU=yA}J=uh^k5+Pi@g1p#{e8kx zVDKw9oP2~FQ)}5(duQRBi%&B>fgCH*n29a5J2m&b&~d&Kb%c1Q^PSn$u%9+%gK3Xl z6|n`aUmQY5FG6Ri%vj!E%KC(!KOS$$w%VInzAQVv!>EA&ik4v`Ws+BzZl-n0#=VAm z&i%wrzt<>2zJxAjJXOSJWEX0j8Rd6m-@$wt<(Fh@pJyd!8z~l(UVd4&>P|%NtG~0b z1q6Tk3Zr7!#Dcpv(Vx4CU@*f_)|X^4V7x zp#0x}oprk{+KZ_Dh6jP8k7t$Tmu5>>X+1(YmxYlz@YuLa4L?VjLv;wvl)61?H+{j1hV*(iic( zEy_u1$BvR6tM7h%jGZX>_EM%LZc=WNnb$zPYLU3Bq?lBpXH2G zzJP3X=CQElIQ!4p<0{?uBDVfE{w-|%iAkno>t{?4T}vH}U2#k0W=+J_&!PV7_!3ir zKi1~|HskuFHvbCB%I1e(Y@1(ezdKojZiv$ww72sRus6g99%z7e@C62}DaWq;u7EZh zMg*GjiN`4J(J%rZ7`n8uH5KpDyC6P=`_ANDJ#;(?7%bL!>&t>Ysa$K$lKHO&H#Y8L ze2U3YKE)yAnd?({?Yh43Nd0rh)^PokzwXgLXOWxsd-gIShogOq8lFq`#rhUyJeO}F zd`c#r?wiwgd~Q`7Yp{dMW#zkTPFiL2xcdXn!#6-?DGxrAI93oJ_Ce)f-s4A)vfrA1 z(=DS*F&uE8vw?RTc$fZ;Suw?aX4F_+#n~2lmgygv6BG&g8yUyZW0m`q*UvX5ijLafOOy;s313Tj=>Wl~a~taKF+z&p zDBolsu>YR>9{ir>vh3{EXNhUiM(JtV%ZqBSg#F?T4OI|&(j!^?J=C%ruN1rhsQ;=S;CrQ^;N6)=D+<+clG(d z?asgQuifosIX#(Ek(crZCI9AvGwe6k`!;;=oxH{%vXmT>PA_mz=@H&d8*ce&y}%(D z*8!vM8^$W{V#ZQpxxG6z*U+uz+T8~?7(eu_a$$2v1*oQ_r=)AXW6@1S+G;-kmIX8_CeFq#I;F-!x4>C87x@uDeJ)Vk9jBN}$*W%ZKPWlZ08i(k{osXobx!8|xZ5T6oLi!3%#dgN7dKaoLW4oDu zi@FUH&X|zC-BWRZ_@vs-)O&vS@v9jT$SE71Hlf&zt2n@VT$Y&>U+}fGg@PpyeCvNP z?dJ0S5a;9Nni&T;{6WSS-G}7$V7U27q>mP_(}&x}>H1=Coc0gQesIhu z>tj=-55*=lj!)DFG4>7EVpo92=y42%tLjJ}0pdu5;VM?%Xn)_}vOOOecr~){)5yfD zkd0RoM`fQMKBjD)8OY5Mo5}y@H;kW$UvzGpD>FZdjJ!SqvwV`lVD?4vq?_|682;x! z2hTCa29eFaTk(5$zrS<~zNg~%yA9&^?sGk}h-FGY_6`%W&n*1HaJul$Y0l&vhw$gYBZe=Hj2*}w5@ z8oa0L%eclr*scAC!h`foL(Kkp`<}R=U-3lp!0j7?xp zU>6MRChsapns>N z8X@5`z`bZecK_di+d!5I$IyRH+f>EvS3?LvR;iQc0?vHr? z2KSX^?75Gs_g$V7TiBv!&qwfvJy3(MhrOB9*}-{5TWvcz$+0(?bJ=NMrmQ{JoITt9 zY(FnN5_$fQ^1^KqUdSYWqh7oo6+i!^yfB--GoXjTc)_t#eBnKeSLZ_vCObvjgPjlI z?%RC}x%DDrJ$~!pdtW};98cPL z&1J6z*Xc$|=UQT2THn>2D<7i--^iWwrL^&T?kn-LRHrObhkYVN(KIlIaxM)_r;P3E z5zldHpmYct_#^cMpUxkyh@ycM+R*d=7c}q!F#SCm_&jAAR$YGz4dg{^=zba)n4f$6 zR%c((4bZ_X#yi-WB>cR&pP$d@2{?3}V@38WHdD7gu4i_JSNX=a&%Jrh-N@M+9iKZ4 zY`Xq+1h?RDz}_OgYZd%@9$AyJ=be6~i?$6>&n+LNiw5kkOpNefD={GWZ}UIHf7j9X zP`apL)mMb?&C$N7>z53+4(J6>*VA5=#x?n(P#*I64?L?fowZhz`_FPOo|WvMAGub! z{K)lL{D0VIG*)X)DlW2Pk#>7mUKCovvngM_C=^gx{N*DyU!Q)TeHCr5>2hp^B4n-N z3qMhPV$9-OAMgga7Ot&L$)R|B?hc+yX9YOBNct)kx8gPJYbAcTnS6oGX#t0igTyLY z@iSAFUe=>A%CGxHq;K`xtA4S6tRmvnO^%OeeUbb(a-noDoo0PGkkjzDzL|;_8%0KF zI`BycTI_8UZ(Hm`EV<4I&E&cA6tsUu&$WNGl-Lc9bkse32N$9(O(D zfQMKO?V{%@92=s5vnm`L)5mn#T(aWd`TZoXNGTk8i-wl^#sz*+S-F7PO%}?T6TN zuXE6wu`8gvqKC?E&))wFqvDrofxEPJP{;df{JvJ^Mf14nimJjiwafh#;ETSS(ywBT z1DPuvsLU4L*JG=Y8-AxX+BYG6e4wI**t|`D)Db>h+vNrBGl1p9viXc@9)1Ah_IPaD zKi1Z(!nV-Z)V{5Eh8Z_4aHx@iYOtYCYrtamx%D?EY8_AWriR=5e8Vj1)CwGW()%BVc z_4;3KR+R9cV8quj|2g-OOL#%)&Dl2(H*)SB9eCh^(wnlc8Eu4a_8K{d>PgkIq+ar;d1yy7nIOhKNkI%SG86!b#E(h(8%RgUZ`!=i)*0 z3Gikvbbp7rwpM3QiLW(xZP20GE`k2Fmt6D0xhQs=$am+g9@!qFz-M~!{8QpsD*G{G zi=7+kW5My6$lUzw9ri8L2H#xR;^luNZ6+{33HVszS;_TW&O$p#4B@6YZ%vIE$f=t-WpAbI*Q3goN6L1tsIkl5OxdS^>za@IW?#VXsqv$- zIy~`qEFv9PW8--4oW}nz=d?iQQRrL%&Z7`5|8M5>hvK2XGpAaA(%ikmKj-Tcha8Qs zJ*Kgzcq}|O4&ED&JefeA(y&mg^bavu;N!chX+0%RI&)jCJk90)P%isDCUU0MUiua6 zRt9@YK1Ym{f0JizSCbR=EV638(YqyVY>~b9=IZ+jYj1gS$;Nojbt5)hmZr5f->&v2 zM>ZrMsZ zjiMv)nBUeB$(;?zJoT;k;O7{N(O_)Rc#bf>D&SIlG6Q>5eQf6&sCHX+tlQhUX6(>y zU9Pr%)Zf+;+Oq3{2f?wXr*B9&E)Y(i=&$<|=1^nTxaR=F?PYgoH~)>Xjsh;?u`9-K z2HjYPzivoGuX@qBTa60#$`u96O0#vnX#&qDsc&EBS&xu|%eO!H9!|~VbR#s?h3!lS zHZS8H3P&S=t)#9WwhO6y6#TYFaMF01x<{Wuk3802cLsGO8#FGhH{Y8(4+1E#&w@02Q1!re}foIz9FI?}q zm)I(PH@Mza>Pg*ocy55R4pM98Ck3)A8BYuN0tb7LkM^4UBEC_ey3Ochi=1|~aS&R* zgIL{8^s*ma=10cmevP;-b>&ZY@Vy$pY1wB>a<&d~HsvW}jZyS+**CN2Q@)(?*B~FI z^Xkxj<@}eR`&3+itd8UV;kq0{vYZ_ z*D1g!8mi9qqPO?^wh}n8=R7SkmzuwKIivU~udzqALMghZj&b;>ujO0^#)Ay$L`Iat zJGt1ZTJOkRV^owdj@-xKE9@q00M33I-MRMLHMPXk_q^>H9WFLUcgk+KrR=8c`*^>f zeaoWb|6!cD4(y{c+AoF%7IQrse2Tu2>vowxQzwi0=mgi&rOvfCEIUfq ziXFxCUnzL+G>YE)l&8@Gr|naTJJQF;Q-?Pmo^Lc2v!5c9a#m7x?PN2dMs#H|o;%OR zCYT!N9mCi^o*n2N-LiV`1x8DE@Pp!P<(2rUo-TQJsTP@kafyw=>aa~x(E*4 zSI#%OG-g|en8~5kJD1@Pq=v5s_wxV6yZVNd)=)F(S2n`VvS4-=G&yaBF@6;J9L1$Z zMd|c4X=`~_!!zBNO}{rS*NiVe0B$rM?WxaGTl3lHeWtS)RzAlC!#MkTTA(-Z+rC-0 ze5^pW!DH+NvH8K3FDt(;x}6*@Lv~8m6n7aFD?LTW;+P*jD`tK+(Z1{u*#pJk^$F&C zBI9&zm&bv>oH;w4Jt>|Nf0e^imGIR0;IU@PuG;gB)qC%Sr^?MyYrh)dDa~OAIy%dY z-_;iv-?@n#?Ze=zID#wYcW**zS@uof0<(;_k_gEQ~lopN-UZJ;(+;)yauXQ(@6?wntD|+v;VT}ot72mwi zzK)MQ1D1+5cv|n&*D}wjnw!AGP1xUcz&s8Ajhv^Vx(c)60PvTO#CCAq(AeQCvJLir}fE1aqg&AZ|)nn#zX-MM_1 z_4d}TzFBAU{yxr#M!l$EnnzsH` zJS`eo3oN!=cWo>1*>loPOO3MAQp10Fia5^oj!y5vP7{qvU%R@w8XHo&*_As}K5Z1e z{i(T)b!I}RgNxnWkI#jck$*wSOmZtaSg*=Nhr$zk+CRnFOW?CTA#w(jnXpTF5AvTm zQ#|xGa;GmYp>t)PQM5E}RE-6$wZ}qyk%`Q-%=op#phL-%qs*~%jQYNT`3<6z(~Pn{PbX^|mvg(&O#qIts^&)ehI~@U`T--d_hC?pQi`_ebbRiuTIU@1yARd}KW`<8VFpq-3P%=P>n)wGWy8`p6-&_dbnf z?~`&;M)Pe(WU=;t+qM|;z~bKFy`8lQv^foV0X-gW0Y0_aVat8|Q`&nC_|TzU?(;aa z;8+~;t^*%cYxh}{@3duKLZ|EBI5mXxmm&T`2>+LR5fIo}7I z(PIa9T_*k8aDx+luTl24m>=nS)$gJ0L1BLt_?WYyU|$T)27#{t z_`Kz%CvApe#x8q-e4%okM=buQufmS8!~;#s{>CTq(;}@w=i6~(-~e9fK=H7}931AI zXgxsxS*5}3`RAaolQ<^{xQo##ZO}v~Wzrdo@@xBoT!Y@4B-f-bL>G#864NZQ$UBamd;IFAXnDF5 z8XF3x5HM9u?}zCv$r5mB{b}SSZByeyixrE$_ach%Onw)1bU zX1`VNvTZ@mXpxOAU83^M$fPQAq*Xq(^!DtJrxrA(e~dj1?CBpkx;MQBI~X1*#UEu} zI}2<-(h6Jn={jpI+E4!)@MfIf5AQ|bsWio@=cSD!$dtkAU8iwo_19A#l3UM@EE=j_ z0rlE4`|JG|_$kH45uASLY^ZvdQ7>>_e?6U3)bCebw(SMl(Y<9%su|1|4dSmq8!02Z zN;pjoUX~r!Gv*}^Iysj)xd*#RxP`9wh~JJfe#xjf@LP($kzXM>T`*=Zb7j6O@1OC+?RmO%S~l`MBz{-j$JO3)qiZVd33j#9 zK)H0vHF&zY&-=B!r>*kfn5x1IGykqY zTVIj=e#RHKg)g|bFzdc&?Dy4_Z695~L}j+`=qu_07t#FKXw&K7aj0h+iKi#^(~WeK z_)WH|=q1Q_L<{l3X?85Xk30sW2_KADezY8zhkocJHWS3B5k2@BcdSj-$($a(p1qT_ ztDL+0>AP*b)300QcIa^h&sLHTD%w22UTR`3+OKch zFq^==o^PkjojhNKy{9p`a>J$XcKWlRamfyis|1*1$0fbj4$L2GY<8T*Yv%#Pj?Ep@ zml%`sauwIpm}GN*v@gGL8u%o>yG}9t2PmU>b_09uqt6?$?+50{3^-%tHmz~7CXzYK zUYA_=&#X&Mr*C}YLGuD+%WIuSvD`y{b=LOWJk*8;mAW%A$+ zXN~Lh-(G#~N$UT|-0&p7AMyJkzaQ{>g5Tr(Hu0>WOhzv1aigYZld!{5-u! z#)sCh_Lw+Gy#AYm^nCyuz|9-ezS<1%Eu02_6ljcRO;NH*_Dy4y-Y$;loDv(Ju#dvU7uD*AqSme1qlRxcE^%&>PI*(Hm0j^E0#$ zXg~f~J$mM&yY9dbOA5bFAL&M7r+jbi3)6YGAAqZP>|NJqe1>(eO6;Vee8xQN0e{5y z%|KocmP=&t{207)y7O)OR#|%*$Ojs*et_)Kc&700&~9RQJMv&NaF>kJ*&5h$EvxZ+ zTDrsd@Upk!@k{36|HywYK~{+Wd+B>NWm74eP1!GzAA4-B5%SrxumG18Q4%RV*tPUtKYY+;_~1O~klZHwdK< z8`gCrHucN!gx0?^EMw~(@Zpv*#uni^3p~#wo=RU`owMuGiqF9or~mnVBWLS6I2xM_ z7$x6I%Nnv9&z-n&)^xEL^G|;gT3m z*9yipSfA156dzOHdH8pV^Bw``>eD?tdo6g`FS!FPYTblA|29AEk4x)RJ1ToQWoEG! zs5uJqJ&r`?<@)ZvS=Zb0EZJUDlw7(3nn?B;p`-NiA;0}2tS-gf)J7R?XuYWozC$+m z-k`kicIEszXa0?(t^AaBfIy_QWUwygI9OMo^d z|0nQX^1oX9b)xoI+xJoOzl!(KYqp8Df8m@lWxtDBrxom_wO+)ZZhvr+mA1LzIkuj z2gJ#*Niwok|0eoVOs$?i?j^=nN8gfZvI*Xy?Pt#jWbgl#S@AZq>K5`3_BWXoqiE|r z!C@LX$}<-XPY?qpkD@CWS5@mHZj0WKzrIIytLuX&d{mrW37<_Pj#!S}`_+h?QJ#SM z6ip>C2GNj9=exn1aHuolW94`Nn$)?=(ci^t8)?{Qj8=n_AhgzAX*RY^g_mRpP0|^w z*ttestt)HYbB(o6WU&1qnv(&tmHbOHBhZ*@Se-i)VN%KNqGO1e4m0sXG)L zXJt@ceRbf65YuqmpQCm@Aq@AiPvIaiI5LW}G^23zkHWKZVg!C-ZRX^GxSM;lujtpz z&wTVy2fDTrz0&~S+W18NYutLL=lS^3(RdfVqeI!NVuj~Kc<49ykW#`UdS}aKB1zHL-@HxuSio;gs>NShNYhY zestAd602se1P_Ms@86$G8*`AmYq<|_J&X2|TUPJAB!-8=HV-8a$wPnQye{lzn|@!8 zn*V6pjc#KoUUG3+EZT)Gqv>xIIeOY3<<4;?K0R~1+uF&utfJ;vdSE8Df#|>jk2W3r zyq^vpXN)r#Zx!n_l1I{K!3pGxkUt%(Gq=;niDd)#p16BXilNJr&c34e(JO8nlKTli zl>GOF-W%?72S!<@T99`HU}mkL(P!oq!y*Y}>}p zm*0XdQT?})ebz8zD{{}Vcl3R)C!E~dU8=+N`}|8TQZA&uuEdOsbk2_UAD!HH3C(Pz zoOB4W=PmB}WXi=)9Mc#4O;)CeHlN8P79|@vULqpa7jL8h(QLiax98 ztk`|_bCql83;$C2pR5lwtolEv;Qs)8B3#>>C=F^NvJfwMH94GbeqY=Gpk;ncBeYm#X!<6r!-D+&P==?nU zJ}N)2D#q4pr;hUT*2v}~my0=_sd=!=McI9V`IF}7T?{PpbJcbUG&NX$Ui7&v?itLY zOZhoNokt`+D13Zm)0cBbt8lfL{%qQTS1#e_>e)v5O5k=Ayeis{pB%`}BG+0r1_^@p zo=V$J0Qa`t!J6=4?Be~|KY&_4)Sj*Mf0gC(SU-dOVIlNEuOsvt_k1Oyk zydGnh@-3!t?b=+qz?Vt6s*n3-S(G)9o!0xTt)P=7CwAI?P0Haa;4q+n`8D|MGnE&U z3m+d&tXm|Xt{|x{jkSOT`FcAkL;WuKd1_lWv2YWO*XZwRsEq5M#>-B^eu(x@1K2HY z-{Sq_x0>YE#gSX*A-8Ve8DOFXE65&P&H;%#k2P|1gNUpxD2z34D#yjN{xP;RN#9&a=4oDTKzIAc^yOl6j` zCY1hPX2mPuE&Zn^`)D6YOW$Z#w8pV+RAW|b<6ragNJ3TN<@kKcpOEjhf&Db%=Ne!t z@srON%*kF>7HI4xe?suR1pm)wohp47x|{ye_eK8SAcp{3U2xoh9T_ACKyZ{MwB%%= z4~zXq#X;IXJiKaxa{jh4CY{lq&3_yJS>G}j6i+lNZlKJ|@l_Ka*=8^F^pV7qCW{5GTart_Tq+~x?b-ieIw zKH6xGwDD@B4aMf0g?DiEDs9~IDI;_XZQL@gCFi%`s4vpSdyzJNOB;QWHhvpv$LIpPqpNX-+`?a!E;xnjq%?mM=pZrJ&`uXkKh@2&W9iN&_s|&pwn#mLNa$F8M z7WALFJYiw_&ESXgP14LYX~lhJMJwf5&nx8Yyrv$`z>z%BTGQdNRTJi=7&D6d(kt32 zbGXv<=U0wcnEJJ}i!Y;0K0lP0ub`4MMJb#AsSz{Oj@LA16;zH|m|Z&QV#(h2^GrW` zr1;)7c@B2@2@A7to_z7)sfNFUdIeXHn$bbq)x5vlW7UYSU!p&kuOCF$mhjEQFHl!} zFa9p}uveV5j7(%lM?#><8@xPw8GE(K(+lHYrCbg#cZ}5Y%xtXcvL-H;i+-R<)Z(ZBv$aPmD>*pf#=dgDx(1J0GC{FXf8N>etB2+5yXOj%+mk-aPqEU_{CzeK)e zSQXg=&6qfgGMDcHlPewB{~Z17$G|I_<1*|ppOLsrIDG!Vz!=LnA7@@7F&3TinMB@>=WBoYFSM# zT}yWYd4ZK{kb}tiQD?A!gxE;4@+_D$#cmZ}t0TU)0{L_p9>_=6S94ab+GxX{)gG60 z>MP!>XR3o7v2C#QC>u=AgVHRKZ zbgHLZwRfQ->0piH0`A8^!(*_epTXXGm3qyJ*zxD;Y0hlhB{A4--K$2+ViY6 z?|j{J-cc?w#uWBJltg?s@wCOc`l4~=qMiYN$kw&+#gtQ~J<&~@pl|%VK%TKhYYFg5 z&NiR;A~k$Fu_D>&DW1e#?a);!<=wN3Qa_e2mul~6?y=AQQT#nMd@l5;cGPCuzo{KJ zE}s(q0eu}MPi;SYs97+!eaZZklfI<$t>}m^nJvEK`YZfPj(*4)K9=E&?5Q<7*Q7Y- zS-Ae>0l|Q8H$wI3yFS_2`n@`HL-bhhiHx-+$64c1&RkGu{TRlbZMKh?626T6TStGJ z*LZ~dH0^CKMSk6ey{YR~e25Ps{m38ajI_u6ZCycM>i;9~^bzgmW3yPn*-MMi5%QVy zM;KeRcMv@xzj?q|PpBQndKR!tkF??=>Rg3%GqKYj>0j4w|LXgdNZ<7{j4cNHQk?Ul zeBt>#uZ~Nq(b&+F_SrvYLBs9#zK)^W+vbjiJR8^NCYNVhyY{xwmi8Wvqa6#m9qoJH z$QjPjzW2dME}DDJx`S6=_%H0g`g`XvJq!%O<%JPkHbl;0x`BR0!*BAw3i*}9+0hBa zm0B==4UH()x;b~N4h@JVcwU=#n+Tmwh~`y6fyRDS<6$*HzUdB^F74t zyWYlc()rm>3SahqoK$=MhoW^p`gM}lTh8mpTWi_uZSCyI5Z-haA7??IinsO{y!|!i zY(SeHec^|}oBRdQ7Jrd>P7Loshj&bcC(J~9u64$f@DKu~!T3dVG$8&$dzVpGyds?M z`MyKHKKhUzbk^__!!OcLonm^FZzorx5!#Jj>&YVyeY*3o#Q%$FqeOcT@AijE=<~ET z7wcc~ob^#9eI0eyN4sQ-@@+YfPkRs4?tI!6U5MtzH`UaMUK`W9&+yKEjy)IsEtbLC z_k};~arVJA^f>$A>~jBP?Bo#eWlT7|O{cR>`(=K2LFnFT^XE_Xhg|i*8h3uw!Mh>iR#}7ZMbdifQO>x`SVe25eMJW z3tZK#mA3+0`+0fx*a;MD%$U;v{9C9T&d#v-F{N{u!3m*qhzLPwid{TD*H}mfB zG~XZw7vgD~_u)t4S1IDbe%U;8TXjUnNH&)s^B))j2ZQnc<&m+7_xC=g`3UqTgSW-B zBYIREb{p_$9bNv_M~t_Xa{tBe*Zh9P@0a{u;%b$5&KH?>&oJ??qYkb zOzXGh$Y6J!Q|qmYl@((P9)NBJ)X};xavNLnJxplWCx}LLk6)z%I#@C-Z#sYQ~%Ao!E$O^pzTebo)>*FI9fXdj6PBLRS&F-kYfUIAoMiYqGq6W0G-RHOKlM)_T2#ud|kR-T7QYxrlBZu&-b9857SKFrTh&T@&$1^ZR|$0dp%_ z`K0RxX9G(;<5AnLZ>sr<-q#-;-;P~3=v!rQmW9dL-pb?9IZai2Z)2>)bb7sf*U4J$ z-Pn;()l~MAHHGs=J-)=hJZq!>#J{iiFE27D} zpU58dH1?=Z;>?Q?d>_&N&T9WYb#fuvd%wRoSoX8-hHvcau1oZT} z*Juph72b_mo5qf}POPcHC+#YFZcSSIW%x0C%Ry(DUkZ%-z~N%$w;R*J1K))Nuf$Yl zwjDAJEj)+t>?}d&${OL&T0AncV=Aee`jA@W9N^} zM*NS>bH+^%bv$J>svYL2SL<_sq(9vs<$o}_pm)8zbLB&fJvD%){uMG}J$(%&BO+_4 z1J1)S#WUdI#Ioy|n?=mgmxzCTk@Gu7+H`OwI!eCv>CTb=dvlh;oLMIxu4zwap1?nA z(V^Y6D;@Lew!ViYYf2!*i)2>kM&AA$d(&y0DLd;7eYBy{6Twyiq=cQ&8Fi|Cd? zWvuj9S|m19Jjk~Jujkux+bb9}o5p0s5r zaj%oGZx$|zrcKoc+c|*Y#neTrE?p`?^Y{*3ywz_D%wVV|)hJx*ke;wX_ zcskfd_QSR`8n)GEh5kT2@yjVR_b-I)p3}kR>4$AWG%vq0J@ougu;H(Yhfg=B;^*WD zzwRejWUlNBa?0Za#M6-bUxZ&x`1QI7Y|@wdrn-EhAU09b(o1^UA0Nwp1EVYMxrg}{ zpu@A7z&M!ief-udPoC9ep=V0@2I5Y>fmpyd5KH+6qW|uKliw#a&bBs6N5K}_Qd^XQY+-LS!eBpGS)q6O1YTd@Y!5=kuH;j3$J9zWk-NAcg2YhLL5@U$f zH_p4O*K7T`{lNWut?j?)&j0M|-R(bXkJS6@dY!k>@bvfgw*KrtyRBVsbX$cTk#|Mw zXJA`6IxzYh>HYSPb-aFUdnI}wy(OD!!S@{9HI%)i@*UVQrPwiz*fDFcW4z0EVryN! zFP{0x+!VhtKEJx~uvx#vS{}c#V`_ifmk!o;OipTI;L*Z`w>`P!z+C%W#=?~wp%d9R z5%`X9FPqO=o@m>9>N8_X)<(_0;t$3-i5pMJSN%JEl*aV&r+=ak3%K)v+qm1|9}66` zg9GJjC(6ti{D+izHx^jKW?VjZNzbHP21k)^MA-XUmP|o~;YX&w3)R@rAkO zo)>43WAujExNWMrrzz3g0}rj6(lb5Ov)>@U!O7oU4qnrJoGXPK`DkHWWu=o(95zhoP*^FH7L)tRC{-n!*)i`P<_b1h?V)?D4Bm4elCNb z!|?N3_&IC&yp8kmOUh2nt4V;r3VxU{z%N-C8cGWSvLV`Z**-j%r)GB*}3Yk2`W&7tp8Q3aWQ`u!7^PZ2`uFH>{bE@1x zJ%5|$nfR4D3-x;J;P!X#-d9zY*|RXt*dlzr!}}m-AtzB@>xTxq{7>Lx18qITcb^{Q ze|@CvLCQAlaL!Rpq5K5O-%i^L!NYCO{+q4WcB?;ffYjf$^jAG0MLC$g?byn#e;(ee z{itd~^`qkt*{xD=R-%*`whKv!y zne&~L=V`~K*+Yym1Db|r2hgeBub`Z8w-B0gV$n(AM=1XSKDA=+t;8y!g_+3_TA$84 z)jP1tq3;~-t7IcF&$8j3;a=yS*z`TApT61S+4(DIQubo|d2?(!*R!wkESRLpeL3IxOAJp39`-Q~_y+Wa;4mP5 zBya3f|0J%W_hQ?4j9OO|-+hw3c)wvB8H}xJkhr;M-yMr`!hXlzVDa{(-#f8r7Z>Yj z!@=vo?+VmIuZm57_&E>s4UKzD;+jVIIOPSOfh@j2{X4SwBwepS{;J%rNV|^_%T{^y zaS*=QV)M5zTrIlBm-0c^Mab}Fyi+}wu2*s25=GZXxp(N=x3MFNu0_v=@%{tKH`2fK zrbFMpjfR=H%Z)3$G397KunpVMhc8?A0(naCLEW=PMLqw>qgf@I-&ZaUO`%=E^$W&> zUa-fJP7dphtSMNd@O?YjGotHZRXJX(iv2jmqtD6O=p9#;li;h$@n4X&F@DDiV$@k1 z*Rq}|-Rb?x)qDKrj6Ly>e77*{sb7+BTDt^;g$(wBj{@)!M@)MPa!7g>zGm-_edZOp zdi}oK>GX)cwI*34nX+_*v3b(x<~7|}8CbuFaV`2!&ix%}RCL1g?1$~T&ht?1-IV#> zTz^RYab`E-IX#lor_&4lG~>+IBgi8A*?(Uw*=*0@`pBA3 zG+#9^C;hhknLUbgSVdKf$l5awa;_kBHHE$+B zFY}?7h07B*wm)e!HnJXH#;*WcV*SVA%MbAbWyhfF{{qf*E!xsr!L9ITWDm>$`*st2 z5X(E?e3)EP8q9 zyI6-Kw#E5vtV8&p-@9h-&hEp=D$yeObzR7TBI8?uo`hk6rb_bdM2lQ=K8r((36`$C zotwznNf;IAE&p5JR_zTEjSOSFnTiwdoO8l3j1#Ou_uBW5Zoh)}SJZJft+(~!eRVjW>0Jk$<0X(XdiaeoSw;;l(*V6i0-k=o;}0Hw|F>lknwj$jo(}Ht-S@4 zf85=e^77C)@cv^sc!_zl$NXvx4j%i*ad67~lYf=;%evZcFn{Zr&r0UAJZd~TgFy3$ z&CpdJna6nMv3RsI2CjRv$nTD44vVozwljzE%;8$*P-|D3!}TuwdmQ-Fe`hqNk1~2I zBXh@`jjtXscQa0zyJ)!|4eR_NV6BRVb^NKY9tJ+a8IFRp)P?i42%LADjl@R&4xIh+ zJQlaHd@>NP4u712SN0uPCsLN-F|KDZCt zR~8oKAOnyMFGb0QHH*$1FS%fV+gKj@3_0T+{50kyWZJdJv;)|*26C$Ep@BZ>huk|p zY0}9!;4IgNBMz8!PSQq$Z`%!Ld>92yNv{~#F#X>jaczOY@cj|6UkmKH5!j_eGm&eJ zr-A)U;Qk3e+b*KtzXBie+@{3c>UW@BC7gH|zhq?xeH92#;AAm)GT;T-FN}Gw{#BNI z$0GOs6nLq>kosy1y<9FkL~uVr9l=~0fw_eK@{w8ApDwoZA0j#Twmy1~yq6kaKLFlk zANqhnxKl30R>qOYIDGJ%Y)HW|*m!JPC}up`!|H{nGlv74_($XDd(R$MrWe}*dGHi) ziBA2a1HJ4S+LblBwYK1g*2ee~Yu0jKlVRTQebc=0`$pfEp5c2srjEY( z_^o4zGma(RIF1<1c>FQWiC>o3c;cmDp=yoUjgfgK_Sm@B+2S#8$f8 zc^*F{uTi4uuYTUB>;z#eS&EMqRm~f(U{Y~URRhw4LU1ofZ!PuuTc8jsgc0LnY zwm!UPpU*V0k9^_JGB>iTl9?0jzxyUS?&#|?Ls}DQD7z&4IN!8>6x-$q`|y^=O?1xv ze9+ko-Wq4j+RUCf?WbABdBWFYhx3j3oXX!i`^YWMU`+ox`#s2gv&M4$9M8EvhCR{d zi3=$|U=H|F?%f{X(0-dt`u!t5btU_EJmfuT|Bmb>?ali^1Xhdve}6zn8uTlhQG24_ z< zxb^OK-nrvfK1j1{-O7=T)^Kv+!Ik6=@tqCw9fpb-Dqh__8#;S}ycgQ62Jh{w0!=#S zwqyV2{q28U;LpL2X@7E9rxNqI-tk8^#8umCqHILn(2g&bemVBZMb))E zFTpqbM2|ZA%7ZQZ^9`(vl+PkpIx+ld%G>)P;ISl|$CARg)3^3m{eF_>jPsG8DgUE0 zLS_8VyKhFQkMGJBJcpglUfR-YA1o}m_J>P4?(wr8w%E=+T1)@_KgCZXpQi$QJgxV< zxJEyI1?Lm??t1==@f}aBD=fVtyrguw>U_TTV6`8nh*b`xQ;!S=mWhwh|VwNY$Kfq zU&1x{X}b<{9_$y8HMQ_TF=sVNXXx8>iXCoa+&jrT)V{i0__+<<-^m$W)nPI^i<$;a#q`jCAgI!i+3q*Hw6q#DVd z{1o<;zGm3x`Ah@9<$04sYYbyt8D}T@z47RR^w*IM;dagvwds5Nq)MKrd%7 zovix=`$BbAvwhYSd+z>7&MXSrmji5{m()3zal3fE0lXfGz)8*? zXKD7gI~5$alT&|I=vc)>V#@8F^VJz4z7OxKWUShs z#U99B?VZ(_+Vo#n6bC|;!gwZ}>E@l)Dd%6Dz`j<%xT*>Zw!u6>TN3D$4$ z|1tBBY)r0cMIY$9hmx^DPf|^iEo0N{9HVr~X+8p;$q^YlDO?9Xwn1OQ<2>+`4o+oL z-LlWI3#IoKQ0BkbzuAnAlf3?qlkbwk^LW?7yI0o}pY?dK4~AnOj6lwfMBZ7*y@B7R zQeHzfveLB?w13J=ZicO=u}|jxs;-uO`MbQMU#`{Kild|BZ5@3#_K9?K-bo#8hG#LR zXdV4E;E~+ZcQ2%)?|`mfkDFzmmDj+&ryOYHDC1p*ehzAHd_+G7$rD%rt}o^N(z3g< zd!(PI8aXB0>kKpL%?$b~AugNjb5W>Z->>~-DtLS zXJ&Xey0O4~t_{;u^GSSyMEYE)KCv<66G#TTeu-@Q7T^lrVT?!i{9U{L2Kd&1Zq={O zj)*-kLVbAYuYmsK!)(X4wsVCd{$Fv#7s;ob>-$A~k=^n|T${kObwSnMSIA`!e(at} zl@!h=PN4HQbe_1KcZ6-Cc&6-#6~z1P90rg1Ov{|W@l5h8%|GGCuEy%N>c?o`Q{j_DN-(sNCm2QM#UUg%dia#`znb_|D#j^k=$T zD}UYHaCTcHhvv(6e(uh9?|;BM{yElLz3AzZeSE(rA#3^Y!~*h*?U?SS_(`$$jQW|z z8t5G-3TiqIna}&jhq`y#eJ9sUv-`e^b~rcT59s=-rXTxaLi;qMNxXCubEKS#0D8>L znb`RoYhxn$Sq8q@=Xj4Z)|7}}b}2k0+_<YH)Q#4SC%)dI)Pr?jY}UYESUNH67TXx=%9R`;`-&pTA$`u^IVN| z#H6h8A!7aUldR=Q3pua2v7J42$i>Zbu9{)idg+ug-FFT;m zE$dC+(GYVI6~Bn)ecQhuR@D^kqo1~{^$(OCHLz?0Jlz0Kx5Cry@U-$}EYqm*!q09_ zO)Nh~4Pt9E^OYJJa4zaI-D1e7_6$li_zamY!>PJ3BdBW#>JC z_093lxpTzbmzdawhw(wm@IltzleKXkKFGY~^Ac+CLFVmAm=w?YTNrth4DFDNv7mUm zG5sL=}cX7g`aTC@hrpJvg-+j*g zX&#kh4DWyG>)XbGOTjnJ9M_qEpWwnQc-#3_PkNluHHtWht}{pUys!pe(8aazdp_{L z4g8~l|5f0>1^90P{_oQFMZiDqhO=#ZyZVw*ldSR8iRtE;@+0Sbm$t`;pY!y*Fn;?b zHMyJznuU+o08AR|tmimuoP4znan}6ku^-?ZgKFm2Vt%dV`3V+to6ol$U!X6Y7uTS% zGq=+Buk%dj#;MKZMZs`4WRka63QhW<$qs0;1DX_H zWSzL#=840s>#Sv6M|QNA_?FfVGoGuq^Y%pdE9qN4wsgCALD!sT)s)M-8}XrBSyPOi zaRA>l)3$Gjn{sVoC-`M6@XloZh}|{$`RN`zLF=?letx@}Lr#sMc5@1BDay>6j+lUsh9TmCOjd97Jn2EsMi9!BX`7ru4W6TGs^jIKE+__xocFj#}DgExGn5Z%rm?H5_2 zy@US`iD${bdkY$CjpY5L6339-(7mo_(uQKRDz}Gn?f5PYtlj>e9G;S7`O1Uu6^xaq z-=II`8>#;ca;F66uhky^YNJv8Bb&7U(~hTduj>r@SM2Y3!ARfAANnzU$J+I={ki$` zv*vuaFzKA1Epc&lwTs)29NgB;33RQ3UaR9ot4ZYnu6^)#J-!+V}7kJz6(WJkg;WcP!EqIvZ4SOmT>zVh{Dif@QmlZ&Hl+_pTX%yyGk}>8z?W zeOrK>8T?nykbZc>nZ!5wMqx_J!?nL-&2cS#u-~Hh70PPOfqXrC&7lQfNoy5(oQc66 z278^wB94)W&$FC5>W8zkd|6Y_=d4kjg>r}kGM0BkFvV{|1&cLCJBg;mBlPj?IhUN zYFNS|LvUenMOx#ymH&bjBFbFSLmM!(!RiGmZY1w-J) z!P75!hW|%n?e9Y5*2!ozwyj-PM14mOlFae5_fmak{@kSX@-6JBOsIRX z$=rYPPtQs+7W|YmnYMG*=Jq`5<$cS)US~A1ek5KqrLq3mFgQ*u`$h+C3HPSY3O@Ia zztf((iZ<=J%h<7l&w{Y%z{hX!-+Ga~++;JRd6cwI;PdhC5wi}u*Vm^ux*%Vpk; zrM%9^l3mih@8{_jY%*TkeS3K9{W}BK{Lg`ki7y}U?|uJ($8+6JjhyLO^_RDvspXdI z$2vzkj9hA2D{_wXgzn7sD=*+oE@P+xU;Qz3eF@KQm{AxpjFd^D^8m8C#A{T)4}QzX zXFRE~sJqXoeplC@7}dLVEitf+IM=3t8AWs;VRqK>s+y`MR#!( zk9n1=c)=@N#q<8eRW!bxtMUcC$W=Lv0=xa!>8 ze?M_i-X^Yp=GQyh=z9^r2tRgF`!418bAHe9`xifBAXi_H%6C(`SME+usBAd5TV?%t zU**5YdMk^-QBlbmkq?G@D$6sxukQVhQMnO&-D|+1`+ZymcL_19ZG886cYt^1bN0gA zvBAZZ?aX)IeD@{x!|vu=&{BtfkUEoq_4H=9txx>b(iOTsXJ*vBo;BB_|F)M)#rQD3 zz&muB&GOO4UkiOEWbQjX(g{wavutXI6WQF+DK<-|`0q~YIXGl(Wcu8G9rzpF1^z5N zwUwPY5OjD6tOywhUB zkNEhdz*2`T;|=^sGbw}bdL+At@tF9I)@dqt5$(!9_X4ideErOv={4S(F*V)|qwRY8 zOIb5Kfe*L?%Nvx<;d^dB5O*Hkj`Ufl?sL=)QTO{hEITs#g=Omi9Z-UD+GM?wY{9ZFl?{df?aK zkzYeA?;`f6&f2ftTy$$eqz>De))S3tlm9(Bp)0*he71@*D~X$tv(^h0_3x)Z;e;1R1$TP!51-h*zDWmD{$+^ zq!(G|W-mlvQ9P5+uy|b<{LKV^@YeOhAOD}=+7XY_yK3J3|H9uTUmAbsfs4uDZ&GFR zcx(S60sOi3T=h>lY0!T87z-zcXJ*z%cYD@M_g?qYKu&R%_r$qbgTuk>nZX}q%?wV@ z%Jm1cbNN60sp(lcnZ>9#%H7%O%f=k8a@LaQ%sZC>zdOIDVK8Pjt$saDSv`-KWu-ukQYK#t*e-kSrJfIR6#fzm2nys^EvL^9oDY!xK+Cg|@A|4a;YyfP4J< zt0ebh-n8w?!Fcb>&1?7|aCR(yL! zcjYP_20v4Ol*6{wXV2l)7rmmKI$Gy{{++en(ms_3n)fpQiCuUW-yiU(HTXtv>nl_axuTl9pW32c08L=mpApa&&Cj{=> zuiFPRPdwD`Y(B+(K64!&kPNhSuMBiA?1$!Bnl*i4iD3*K%G!O)Ncqa8MK1&nYi?yk zg)8ag>lpug7=OX};-^q4=XL&QrlIZg!`pjY6Bl5{P=kBx4;pl4a`53#^=*!K^ zx|3HYmA&&c{4Ua=yA0?rllj<>IJxd^(6@@yjH*SmM~{$C(Gsp|>qGjJ2@G-QXe0N5k_98k@m8Q5qvg;r zI;!=I9LDcacBlay&A$C5*f3bX<2#rc_2q=73@T$TaGyPE#E3PF^IGOhGxqx-*k8yq zx^q1?3He1y-)+{}bnN*RFJ2TQ*L~G)>iq;5bNEKMFXt97TohXb51!CmysMU+g{&#j zbG@&6SevnCTP45DIh5D4Ra`~y=s)S@Q#~*Ycam@6MN-Gm7}NU$e@N zTyD$3>0GfR7qWga_r&$R?%+tWTl`S#uvG3<2Veav{Qj_kkXM-JC-5Aa+~Q@7^ObLW}Xr}72F?ls>?u=c^6Z?zvggSjr4 z4Zg`37HGXG+rRug?}x^>ObW)u8$CvNN&@r%znov|4etB|dz#;4*?vR#Z`J`r-DhKm zS4_$&^N$Hu8=k&>4*`SPvS_aDI=|e7t645w?H!=;N=nL0;Eak{!2b;kXS3SjtW#Wb zj>cH<;?!%8>yFmqj(iA#!^P;q;@1#i)f#?bXn6v75iL%I#@u@J4DJPobl}~l9-R{1 zYS*tb{kv16S5ijr4d~j!L#w_NoAz9V#=QNQ==+S#s_ozX#8F}I5G*ZSi3 zv@1LfvT>p@LSHQy4((pSZy~>R{60meNQ9>)!NZc_SxewqlY4AfCw`XiD_b|#0}u19 zWG|!Nk3aFQShv`hzP;Ex06wfer}XG9`28AaSnb!6cUCz?Ex21_JURaspph;>GWT@ z4)Ge}+%=uH<=e^|v8>jbkEP^r7OhO6jV1U@>s*PB@awGo#8XOao+6wW^xNX6ths69 zb=FPVI}Jm3@U!j0aXrr+{5JBxGyHzYI|pCw@%#5q>N(}VPW;}=x4#&E)1pIc{5tU@ z`@&XE-;VHG17C3PyA4_ve$mGZG;iyX$ri6piQWes#poH~EbB}Z;lG?`;w6$D4-kK` zZT2B^j)(2CtWowWwnFRN?(JaOZo@PTeyg^YQ>U}Bxs!JeuG^2z&7IV9%72|>lg78d z$k?=}?HZeR81Ri6_{M$cOE;h|)fgj&m$>wxa%=|jN0$y&b(c8~1?(-4s3E6;a5uCQ z9O&KfE^znFPU`*tz}@qV|9^@*(MvP!i2q9OxCt73035yn4&_s7pqC40*MYMf@GCiA zCwtKBsu6+a<|k^C{4Kg>4!Vc%b@dBv&sEB$ebKMZu2!6mVaM3L$@2!jJE7g#m*zd| zHgW@)=R*YB#n?$#*7*<<8GAoxU;3GAg5NCX+Fw-PjwjE`jW!;Ov8mjQ9Sb{Ug!O%= z=PHGmtN5-J&ITWTbTRUkOvypsPx2%tO+sg$_54%Svv4Rl87xXcgp+tT%&Z>tS`vjIMp ze=b9SE;HqWKVxSXit#T9NsPeggzWW6akG1U zlG2xNNMG%6ebOPWv?j6f+YzohtaC@#bvm;}il##J<#JokOJ!eF^nC{OBA%_7pHH~& z3l60t|MYq5%q7L}?BRYUb0&L^VpOz7$c#Q@xAOq;K(*jQGD0yzV~NiTux4Jt^8oRE z*^Fbie!)e#8V77yIoJ&JE}t`PrVTZ8uIOJUdD6EJ$2a96bpPGRe8nKeKjo|f)|+)n z!6T)_`-G{ZGjr6QhkHwR?8L7AtbwmRIoKCtS6^o3(O2IyZJ4W|oiH$K4dS+^zfT`` zgA27i-O-0BS8wuF+3_virTJMqKYJ(N`OKDWoqgv|uJ4?C9N+0|Oh0kO@u+`w_IKIG zu6jrII_z>E^Z&2>FXz8xcnS7ejr$g0uyiGB59e9#H8-`k%rvY$oRgpd_a4q3=-<7E zG{lE^PP)tinfnukLMJ=CHYhS1^0OVQrn!NJpj(U#*XY`{n8B^SOT`N?%2fG17GZC zU)LKcamVgu7;(Su?VNdOs{$Dm&&ad1l zJM(bbIsE59MEbwE-WqJ#ac`mS0N;SJC9_A3kexP+4OjaClgI<`SH@ZREuha@0|VPJ z?XCZyJ;9OF+rWmYb)B`Z_kGuQ6q}NXz4yVRth;3IC9gm2Td{oDd&NigQC|D`X&rn! z5j$%~Ht((Ww~ctKy*ANpuf=!0jlGt8*|b{D@`7K*X+yMpJbnGS{k`Bz`~h@B|NY$~d0g|J?r!=<<#@vDDrh$~ zExc~#vBuVuT9(L}Uth=Adb=1~OZK&0M)1GQ(D7aP_wv^BSx;k}ja!5F zIk5rlaqk|((;2f%;pydj6XF|)4bh$^xdQTUfM(FeUY&ktFm@Yd^je+8yy@wK%duyNnzY8KuuqXOG z%hpZgeIT9?hhFyOy;Ts|!1FxM@^zDVKCvkwPJGM0Nf!?@>1ZDsm7*wQE+uB zeVfj+dhR9D!}3i)hWX|DpJ4f%r}&L(>BWz#E;7T7gL=+ZChyJamzuZs^^?zzGd>%0 z@`6XSUoLr?R}-0%c&g=#KAri6Osbadt#)+ntbVb|+GX0eQ-__uv$}rj==-Yg#GY(p zT_*qDd|*ie7Wwt&GOzJ1tsZOm8~0LH`EQJc)1NYG24(s2?Q!ZlFmwdxm-$u_cnQiE zC^#d_`eyD^0mk5XzNda+ulgKb$LX2ke-bRZXFTHB_{95po&-J=D|<2H=k!JQAU74+ zHXlENmNGa3rzXw1b@h-^_P;3e0r@MYCob7Ev(GcXIeEeK6LJ?!zu+9MMO?4rI+N=v zuFJXRzCHc=?{>?)=9h2(;QHTjEqZ&#^_Osc{_P)L{~FhsZ_m8`Ca&+leckn+a9#fP zwb!rZdg4ERbbV&`%xjFm53-EFkNM#v6`0TOhx~5jH-p~|{I277GryVqZsPYNehc_r z%kP$~yT_qBBKxO#{Eg+T9kLT{KM;cE)rX|{x34bqByB%6v1eIn!nV||Wx2QG^aH+f;e%i@BJNQ&CbdqC?%SJ~qd5PP%t0P*`*s%}! zxv|?uyYBfan$VmTJ?ungidXL7ngflv=bbZ_vcb3Ki;|UpX0FN)&B$ObGe2uN6SjWw zZNJNg-Y1YdCH3g|T^ryFjl^GyFMPr`Liht%-%gE+FMN+@#qfg=`lH%{Cu|l^KwdZ9 zm}FF|pD!}+OUQ#ltV!d~Q;5?{3a&0mF}AGuTabjvSR8Vse4YZn!*>T+icf;->&-tb(`(FFW7Zopl&mD{mg+Es5`Y! zP2v6YcPqFW|55YQ`|0Oa8%M8G=Vo+?`|0Oaa8yFyU#HG|p7pZlL^4;=q+7>xVvstU zf4ShRy(}rkZ>8=03st9}b4osH?#+9qdF_fMD_-ak*1yU>#D4eAq@L_|BO~YBc5XU!dPULT`S>wun#p=#0lSWnN!$*fVbOU}Tjtkn;d zHH8_oC;8~;RN@^TVzjSY${e?3`(`82lI@Oe)fvv(%i)PGdES*Ac4RPoYPDeL%>EFd zJwGy8@;QlkXj3*bpFGJ%RUW$Li=46Ez*r>FuSu+Rr3YPt9<&$Uqqeuhe`Xs=WyD@L zE@LjuhSyC>G`7s9J^1#V-NcEN*s`&V|1tdO4r41F%9y>5t}367PgvL1+&L~5N8gOF2v0>W(ZeX3d)tlH@3jeOe$0`XucPnw8m*VePM|&0B z)5<*1Q7-M3cVn%L{q)cY_yodh*E0?V&rF*c=T!|meETl#VcpO3a``k9A3N7~1F zfM*WhEr;(`!*`{p-L;={5Pub{Or^cN+sOSqD=#K`E!A`I)vz>JnfQ&=^?}!oN62f<&RwjN zo%4xGIJdn7JCmPlEGZa&vxoNHyOA3Qn;y9RlyNA&Yg|nET@u6(7%#P9#!mS9GiGT~ z4`cRS`gKlHp&j&ZY`z)My1qs{*58O9MrI4YIU0jgiYoIO7Vomgg*@c;Gk+R+ zloG7i-E{Y}D?OC~<~L_=$8(skwtoctt@FL@&c?|DO|~BcOZRS@Z}SV+PiypQVpZxzr{JdED)!`?gyi?HF30>gl z7&O1rT$ft3y>lb$&i45H9IZoViO{%mmb`?1q1=%gE5VY+^WUR;X#LK5A9@T;=}CWC z-dbRG(N&FYCBW6MT( z>XAs^|iP4~Lv^YB_{FSvEg zjqpco5Ah0kqjY-d3)*wXUnrvIYi3BF_c#6w-J%2?(wKE)Y!Q9be?K;O(e2Hydp~0p z_^i3g;QAxibKTG7UVhf%i^@A%k{*ngz+0T}mJqX`_GhRb|DE=)ao^Lc%pQv+4bk@lP%J_3ni}?HCV|TGp zS<9GJc)OeH6~QmRn~%|dH5FP_5ZQ6 znksg#+gaP~=>sL({&*npjGg0x+#{;%*e-~dSQB8}{i~GoW}B&_c1G_7#PHpB`nmC4 ztpB0!DW0^@l>FPF)zf>#$x&P-oTif3E7i|BoU3OLaZ0=|hPG~G-DN%_SJ_E=##;Tx zLH0BDoip`}HC`QSQOy@~jzH%oy^}8~C_Wh)8o3S}hFI$t^8JVU8`b9XhlfU{^ZcPf zMs)Ym68DpgriXqiyF%xF z7U5exYwqIbj7yIA#gB$X###82erD#-XKg(-`;X)}(HgXy>F+sIc?|SFyV_&MvamKO zWN)ItgH0!QP4`GDaAp(3A$yWD#u`88zjCo2{VxxG5nlWveE3Cl!!Lp}=oXVBV3~DJ zmjjQ+&R~9b1&?w=w}+=5n}7q)KK04A5hz|~D(kv1Jb40h&w}e5zJE4woCQ4NfvbqU zZ(>c!RUq2EggIo|FFtE75Kf;xVwf}$=7OEeKS|l9Q1$5D$2*xv!QbjJh1el z*sj|cYo3|+o{M9zxbI6Zj%|0}d#1!*aNn0si9PGS_goU&>b@_%B=(0k_tRoe=>8OP zLG%4-rP;A*9-~^a>5Zap$j!vY$@ojL4v9;ivCp)B4)RuTD>kPDTbS}d{7P-`pL6z1 zdHOT=J@W3S?tAo-b?$rYDi3h4yb=1wmZcsuZ^RII%^`4De(zbatxHdeNf#^0=Nnx0 zZTWd=j1HTyDwfdSsGNqC;4Wv@&9Q91v41eUdWpV8J;flE^KLQsTW>ci$s34%loCC+ zuOYd&qXJ!_MDZh2(0{b1V%+h~S(RIU8nKNj(a7I5miDvYndY-;bp~aF@t|Q;J$nhc zxH)55WpG)Cm*_l-3{KQo% z2i%tQ3}V~K1I{zqx2*D(%*@1Zpqw!Y^{5$BeY=rY-aRx%_}k5Q-tl@GIlp{rJ^Su& z4;rw34c7u?7)#1Wv7dy}&dHnDT*XoDI`pPtg3n^Uc8?qbYA(w}_uUN?#Yrvb=jG?&XKX4aPgj_6AQ9+houQ|(zm)UuT6Mg% zXcg^CAE{LiLH7Txv*yyGzvTJb%2SA+f_SIuUPfK52Y$^v(Te`B=YOmRvWS>v>4U}m z4>OnWN!xt*SHmJ<<`g!Q!m;>q9yZUq$cV0`j^%fl5iR3?aWZw_JNm{I<~N9o<+=P2 z6`QqGWjKQ(3|}dv-NI+vwp(b{=@%`foE6X2FM5;eq)-RlTd~orRjKft+^4h@b)R{xM05QeFPXm6AQQ~)%M@=~w)B0Jl-B(gZbCuj?5qv~8 z2cEX(cp7uOm^^8rrO%EoUbbv>Xz6oYmvj9i*E_gA&-G5OFL1qUbm*L5Q}MY*Q+N`5 zY%;K2!1Y3|Q@CEj^)jxPbG?e|_qblebsE-Aj!OMLKxdBr_W zn0Nmocr$eOz>#3}JJ_Wr!)sqNZAYomAD|x;FD5pdF>}^}KjhiXpBmLOpaFQ7=|?^t z{)DWp3ZOI8qU&0EN9QsX*`7+>9a?(@`L=wt-1)KF%iz%$ds4f4FB#p{{)OXLWFVt! z=!-eWs)j{=#ytH@eM~kAMy4^Jel@N#34L*-J)eR;@1`L6*@He~ljcn(w3cbln{?=h zKCBuDuNU3FM?0DWdNu$#pl5ILjJhrJCBvk-jOgEZ?$G-yDr3(P(PgGtCNsK|=MKF; zuQK+WfZkUXUO2K1T{`ssN6I<$UadOz9O;K&QDHk;cIrGyIlnK%q~#a!;mkwUn{=Ee zI_?+!HSfcmg#Zn&vT1mgXgJ7R3N3wRba2_y(ZrcF1+$H&P~Vy{!4!B*KD04}_uuCE zcZ?=;&5Z0TVPB=I{f~yhPt9we`y`Dq+bSPdd=X4N%V18yqZ{DQ6XDN!@aG)(a|8P{ zvT^$1$Ly=_XKgpt1HTTC`zPnQ;;ggb&)_$nJ(PVN-)o&4y{?4o zrq}OT_Ytz@&yqFB;o0zqM?5{tZsaQcs~GsA-b7RG1agzf|Bc)MUbRW?=ymFcWcPI7 z-ta@tgkcXgMBbUuV(bU3ef+>CnJRgueoGE%tyo8Ya_n~IQP)@yIEs9V#OU)(kFj}X z=nV7R0?j!u`(V3iui}~@=T4gJ{z1&0w-F>Ph-4^Cx}m?oMdzk?FDVz7|Tnt z&I3O~)K|u*!IvDBF6rK5Y8d?7T=AC9a-imDjmVnm<3;cgb4)s4Gs$18{Tc;d5v@@+ zYt8fmxYwFVIV25mT2H(u>y*u5#v{xcbvX97HtP)f(xR`^XM=e=nzgm5Z&POrdj31; zdqe1>=AZOeb6m0MIQ0&r&q~);9Y;TZiFLp%WbasbQMb(CksRvhvlc*?scOExdu6k? zM{F^H9y)S?{QSq~ApRnIbUIt_ z=zq1IqqmpuP1@}t_b_%S$(vtsHi>K<&p{_)TX#Ie(H)nfJ1#|cT#D|v6y0$ty5mxG$EE0w zOVJ&@p)r5k+q`xlH2<(Gr=I<1`2YM&-&%Cm%;*v7glRK_Hg*4@+UQL#9O_@L`sO+^ zJ&Lhy&G4<`)pM16pQt{f^QF7`sQ-re0(o2Bq^#^tCZDJo7I{tg$Ux`) z4&7rvdgFAn&OYPTyvTO7-`9fUGQq+6tDGEm26EvP)+!Z8f~ylhYu=g2ck`NV+Qpd! zuOc5GYg~fuYun@_yjva2op_`hcKnU-?Lcz9%qB+HU03uJkFEh{DZQRLES4$M#3YQuO;^y)k~pc<|*+eMtnNFO6%VZ;8oXe zYP}?U!AF0_H$vC}{9V|dk~-j{6_%~Xf9DJz z|Bhg#&TAS1zQuD5_)55MYMBTBk6g76jg~_XI&VsQ5sAnr!;`o^?DcQ=_wko`KD>2T z(*n;Ld@9@cmp^g~dSAQqr*p6y>l>HRuI6U;$H;p8Yow2a!Jp<%9@jkfG{zoc{j5CM zAF^iW`Z4l$*6fD=IKPZTkEa4d128aFtCE=0=pT_JYu&OcXwl zd_SmPpuPlY$DIRA{X8BYiCXBO96Au5JBn8o4XnYwBKleQWZPKWGpQ?GMzOfn`Q^4Tq4dz0 z{={A>M$6-6UxV?N-Pa&)OFDT8V_1Fd@|{;M-+bVqhj$&g^7ir2Yd z_a(h_9GNo!xb=Ji&jWnJ4^RIdytKA&MwxNG zQ5pU=`T}Lb-|l)n;+DsvU58IC(0KfZd}=bVA=`(RoX&cj{+6u9uLwRC5YNPRGG-RD?2>Pq0L?)>1tj$5% zSY#;IE#Dq)>d~_C$yQkc9Euktre$ggeD&(V1J*x)U*j-%q2!^~6lv<0X(!ixTC@-M zIo!*h8^Rv)#*LPqTiD~Fbz$x~#|3*(O<^KA=`<#l{7yXZc=+Ajq9zr+C;?`&C*&gh+a1mfBYgkxIYH$*^ZIF(BrF;G7Jjs2I4!MMK!dD)3WuJIJHcId~&1dW%;ak_D zL*7ogTCZX1YT`j!^EmB%ET2z!+FZ(rS67ga(P>YxrDN}qK55!f&?g^etin3)5`D7J z_b~cozvvHL?d$$Z!9~2pXzGXIKP~MrzO4E7<<^nRvlu1sY5Uy zOdSGzO#KucV&a_tT!(OQnFu`VP1!sky83Y^Ux0EO4v1b3J!a1tHR68wHZbqI4EU5`$Grqcy^DT{I zOB?9j_3#_&Ko{W_x`fv}>U412SiyIP-Usn%tKC5){T;Fv+%|Tz6{vY_XZJYVzm>)}i`L6VTFEHig z%*c}dp9?>oKFDa=! zpA?4=2!?a1BYnUun`W0yGvY&;ClzOouMT@+!_Yr=7@5N(R{*2rg&!T&~U-UQaOD3<;H@?j`YWksbV6QdXdT>PKY}x|Ws%LKUtP%a!zi<4m z#PjPXyE#IMC5eZf}d6Wj<$%!oRV#L=4YH1 z?vGwKe>P+PTiSmD_?C0_kYr=pTm-6}Zg2Fp11Z`X)W(BlQzKnHUL-Q!a(e8bQbl&)G_GCr{Lfn_ESbNenU=Rj&WXg%i4KV$7|!y_;&hoPX;zHl6ie^IF-I8j$UI#03o}R{B=t1RKi8wv6b#^Z{7*`O(L; z?>}X+9pDyV_zUB&XSefAcvCsixz2Sz%(o7k=doo(=cx`d{t4Cj zxOvM>uJ^xUY>Rnb;k&X!T?`#6(wU8+Vekucudiy(coX^F{H*eUB;a4t9Y2#E_?!6g zJ4wXvB?-S5Z{+;}zRG`Qc+jhSQMVpefn1SJ`}il8{`DF>Mf%r4_A0-q{`* zZ(y{RXPHL7vVP!F_kZACHpk3w+BQY(j*s)q!RwP6Bk4l$Bk4lUd>cWI3&-C2d&+B^ z2Aph-(y=!|wRJin-XM8q@Rh|K02iQr=ac3H#LyO!}x^_{xv&q8#s zI@?D2;Thv9zpPHegfEb8g*hBl?_lucfB$Wa(aC zMn`n(UQ227>(#wHrtWnvV^=@eCBr6nEW_OP-})4b#!`Q|VclJaus;lhhcX`%GtqB| zc@+=HBR2u-eskY4pY<)aqN@DTX-`h`q?$P$BzFstM>k?e{+RqV9odq5!Ve{D)^LSR zOg*kQ@cyTI+#cFMH!^L>KVa=E8PK$N5`@deSAKog;ZFdoY(w7?o++D3S>aB8=po>)vCC~zpD6dx(rHhw<2^dpln1%`e?1j1$_C91^O?w*hAM^3Mx75dxbiP+tm3m)| zlzLtbc|5O{mKv`vh31xdJdx#|i=KKe66|$vsVDN!(%|{sRtL|&!*j(`C$A3nN(cqd zKY3N~{GXJ1BX@d&PoJ|Y*z1QpTjlXZo{t32zpFI(^!sLAU!=#<;Q24`EOc%8^&79< zc>Oci{_Og9ul@P;o5mTh-tF;6mUwzKZp7cx;GMxcgLg*7=IeVJr(`WjGxopBSbnIy z774)vW%TiS`ZXl2S6PzhgzceT-7erz;E49cX>0pD;Ggcf`l*e4dpa<4AL0M`IedGL z#~Znu92Yuk%xPb~ZFy-)W%>97PV@Afb6)A){Waf8(P@R}hltVc=QFC2fjhou+EY`a zXE46lEp~*pzlE-)+=sF^eS_!PubY4lxdwZx!8l^4GuIyJgS~n7`r5oFc6xpTYZCuA zeRUF5 z{m3*=W@C`KF=WB)SkJWNvU~ajtK}2=?Vdf$UO`rznAW@O#J=Ro@%EaN2hG329szBb zHWtkR_{C105B}yL{JiCFR-VpU5`N_w`-b!?^O-A#SN>M4k#=aDjzZgt$1Op(t%r{K zFE}Gs3vHn@&EErE%f=_Y>@vlQRy@kHU`0U?}+`}Jgs%Rn|nkZNvB+kZLDH{9{ z<;6EmeWq?i8n9(0Xw&H(=V;@BT|1hm#UnZ01yA1&Rgnz>ML@MpowI(YgL z{5!@o4_f?qgP|z{@Z+6+@U~r|fAC*b$2#a!^k8>C-bha^dxkmV^x;Kd!d|XC1^bM- zeIxlcOx5U_tgm*Y0LL2qeHn|Y0>1yL^L_RL+JAo_-!J9+e{p@E^KIhd8x|f%#cG+i zw(hw@YrWCP7U`}%`L6Wu0DJir=!JTABF{>&+xqdVv~c2!vluTJ1uR|RLH^98%+W0_ zI6ijaVF2S<*IQ@rTDHlsdtAB|MjEK6aZ!%@3h+sr2iPlIXGs3Vq&`6N0z zf^WC@gk(e=HtFvnzpOo(uJb6mWn2w>Q+BYL1D32&d%s8^uF?~GqJ;TfD;)_Ni$UzT zBfDht5Fc^wug10@|Fn-rdFOq2hHqZukZ$uD1}CuR(;eNk2Rf=BT{RJ%6&u51&Xhz? z70hbmeE602luceVcTD6|`snb$o8U*9`vaN#CZBZi&N_HwD)D02PpV#HE}HLMd{nw? zzw#jbE*Kx{;t@&kC(Zk-n49C^5q}0};!%7*-XHmD?$y$E#)86_`p??becAR!|C%d3cot^8s@zcykJy0z(QQERNDcC%J$&N7sWyBYTs+i)PdQ&U!aIIt z!SdPLGVE-q(e% z`X6;MFYyiS2wx|4fUjH!U&KIsRruOw!*(out+DaNnC~!Z#zYQL@9V zzIofo0qWvouTrNyeZ9^zlfEonXS4J^7kzDZ`xYE854*{R?O6Dl(2B3k#%p6DmDF?L zYjY<&tPM=+&++j6i)@$}o6qxoJ3a^AzgfDWGav7uPJ4W<;MrG=uRI&JW8v%Q?^#_-I4c;%<{!_Sq(iL2T zTH%`EhU@AxBhP-#aLwupu2Wj!8tsNFd}idoJA;dL(pQ16@m;}1ypc1G>2A2*JTr1j zXKxx#mb{KvmQvEfZuHd>?HXmy}`QGLhKC#27Fe2x61{X5?tKh32&g+6t+}t{jH8xzx_*KTs z!y>tz!SxmKi5I$ntB$>4#iR_PjBKneel-I+-jhtlucnw-RO8L**T|x*>HK2iYHrO6o)oOMG@1|p)HqU3t zo0H|`ed56K3yhO0E@+-h9%Skn-x!yzT-$12-z07)tGKW@%a4EDhuC}#+LC^>iT|E$ z)3cWHE2=5Z${hjx_(^*T=Vp0{>&f+VpE*5C-`75f>g1eMdBMNmpv$ijqO2fY!&h= z!S}=H`qV#RRrH z3qvsN`LNaQ_B`=OIo&L~TRr=&vb&{VcVpC=>WMX;K&)|qSYs1U(2wIAm-Dg}H&tTC z6qFECQ0KGga}hYMN1tw?&#q#oPRB+*Qt=3F&y(sbHxf89ZHJG!`fxvesKIuqICS*g z&GKhF9~gkg^cBp0+B0AKX4&NP+0E5Y4xb8-F?2a}(OKRtm2v0!QB2Hk>~ivR?9X`N z$6>~-Vyi5Wt;E4G(jx?)pE)>Ug| zU0DP6(3Q1Kg0AE!@Ns<{dMKf;;##A?U(q+MER9$deZwFg)f4O%@$#)Pl$C$C$~tkd zjm$S}_^*~gPqQd5zbXI8R^AMww8ti+v^&29e%<&H=UM9I=iz5;GCZL%ic?kW#CG=N zlby;zR;dIx4#jLr{RM>n^+*?hYMDqk5>@uG=W&BFtJV(h;ZzC|;)B?i ze#w7Z&-Jrs&ly3^q=?QD9LD&FN7aMJ3{U#X`hVZLtK5zY!e_yb3rdOJ3a;w#DXbu# zCk=YL)Ej&J0nr8V@7tjZ^>qznEL-^+;-ED)?||1j_9H_)r!CWGVz$PC@9LY>S*@5M zcl>u(XJ@P5A#xa%GY^%A$j?>Z6>aFdqCe%96Rj$L5qs3+FS@BEf6;}Ei|Q%nTrf@M zegpZ7IO~SJI*ZnH#*5lawcAtqAd=H9sn@DZdP zoiXq5l+JPjYb;aGV-B5W?PalVzJG{~N5v-@3vY@I20r0&19+UySQPU-i)TyVTgAxI z0s2o4v*My)JX8OR_>bOP3|`u_$1}CpyM22+Pf|U2U@>}a5B)!r|L3spum9)Z3x0te zQ)39%>cV|;$E^E`N7 zkrb*5UXc+Xir@#klI*4(s+^Lxk{Tyn%f zN3`V1KY4!Kas_-M3(WZ1m#7y!hAhyYw*kGm=Yew$QF~cX0nbMkY?droE0}Fxss8(# z*XA(aKZ5q^B&S?{9m0D(d``IXf-~V?IC&2r{2Y7Vs~$cnnc+wNCN9LMf_oz#s@6QU zU~7$kZy!&qc+DlYzGjVwC;AA!#nKm@F_uq@#`sz0m!B~Xb0*zT#y5>~3xJRP#k4uw zpnu-+KV?oXB;b#yYnEOW3z_^gHQJvs&w+o|Qb%#D5C8h%b;{9sv==%Y`rM`JAASYJ+#kmF)*o2h zvNJ&3UFw+e)sml*osP`DYP^-ZVsB4$ZrUE;>t9xkY!mHzfJ?DcpVD@X*BI*OUE2l$k}GT8#po|o+H2WIC(cxy|H2Puai$) z74a6#n|+G6I68}O(Vl2GEFWUxEk3s6E#S>ltbX{awdbff48Nyel6XU|Xh`402c+DB zeP8a};gJu4$N6TV))(G^jeCJRld{#|!S4%JHXy?T3x~%3$hXz^XSo_Y+omhyxm8zu zPM+2kzq~)_x)}M-^$>fan-~ZA&=oc{4<+WI(Kv+u!x4g9I)R_D=n8%Gef7H?4 zlA$NjU?RUy`Hp<9@Kds4ThZGT+nPk4od#%i0eYJs-R|m{{`H|{%5xGLlfl|(IOEuW zo->EOJVIZR>B}SZWiR<-5`j~?i~bWAl0VUt_)CxUiV}6-( z=^OknH{;q_Yp_OPu6-`&=m5sb-)=2ZOMe{sbC@=qwa5gX6VqVk&Oz2xnY@s>_zAEa zM%ISlkJ~suF!LYA8u*Us3;8kcB!|U|0?Zpf`la*CtS{Y>I=f5EwZ;C8qH*f{oqO@{ zTg+IplxQW_)97ng`2`ZYEuV4`eLwL6bRqKcHYW#PZC+-)syt=V0VeRSHSV^5Yy^2% zB+J5#&l2FxeC)n;Az*BXTD<@MWac3>Ie|Q8yRnUE{(8xAd&RZjmGgF_f2^g?_1%eo z=M0;V1aqQwUQILYk^F0Fj6D&}4XtYwe>IS^38cp=?mJ9fb8fJn3B!-CAnv>0PlDBb zfy?dFEm@I=KPq$2%)gZnuQmO-@q3u&>1X_REb%ttsbPVee#fUvZOjZ45 z1K0QWptB?z)kb!(iEEQ&!#}_&ym{5kePhi2$@jtwjNfJ4)rTS2XXIlc{!{ry(hrUDyjAeweBp#^qb6#G*&a~TZcT-T60Q&^jhMA@-;5VV>Xd+oW2uUqvqqo=C=r_BZRS$2Ka?YD47x9SIYE*QisRKMa# z^XKY|Z`8zF>%YtxtDlzq=^TI9XQG^mSe?%=NS@Q(%uR9$Hs$(*O`5y1-!<&oaFsD` zg?X-ISGack@254ionsmH96Qmbj|Z6pnLUjv1HC328YpMZX|5`MF&UYmF_K?zf9UOv z&mLbXI;vh|`RiiuGv|_pjS>#<@c_9n!xWyduLgtVcGKaj7 z>2Ef#MGm!zr}Gm>r@W9Uu6Vj@pqUaoo~}RbYYyvP|M4Gc$!9Q`a$)FY0CnZ7wTSp8 zzJpCMBYHmXkPT)YVciE+*7oUIpmOkV&AIVB_fyWwZIvD!rgFqksl8iN4*lj6zWK%l zBO}-hP1%8O%KSIH_v43~9zBEdqHX>ECjWEL;VT%&H2mvW&zbS>xoVS`(nR14Jnf6$ zq;`o>47qYuh1B3D&T2Jz;^tOkfJsT*vqeX>L&gE=S7$x)Tk zc0VA$sd!gj(~@0z{Z^WJsse+%RgN8E*%SiPjB3w`%uC{3{U;jni)AB|uN5}bqd#Qb zto1tje`oqh664ukKdG?R$E&nHeg)VV$DyJztwC73$ghDt2<#I}dQ>(KCnkpR%Q1D$ z($P7~teko|%dDJwImkl#*_4xF<jeg{Ga2Ks_*PW_fQ;E!(h+6&hxxmxsM$@|BQBom;VIMHvuzizoB95Qzg)L zn7leA$gTi9F>Kn6KA)GiVeq(lP8>=KXFP>j3oJp8h{Ai6hgf}Hi2XW%et}+C6+pMG zC2tKpD^f$de&DYEW^mq6-m|`4z4jDrlIXL;`BftO8d&4Cw};MQ?UT&fXC*ekQ)xr% z1#-z@6HQ)UIeYF1#X`(NCSPXTMDbaPWMUKblPjt2b2ibm=y1_KI%|F3O!8<1NgHCM z3KnG2>RW(gC@>HG3gEfIh9>|#{XACgrjFoAX@RF7{K|qyu)O2VY^;6e!F3fz>6v z*{rR0ByuK(DL*!KBeuYzkI)Yon;yY=+JDUD=hQd%8>wfED9KV?4`*oP1c*9)tXtD% z$j**z?~YD*#{11{(Uo=q@VZJWT>dty{EK`QKk#dD>(T z)%=ovKAF7~=}gj{q&G?DFm)x~3ufs{`RF#%OF#8ymfg(!dYn1!z_|!GSxXlbL)$^- zrC`5FePMk;xh)@p!+PqaC(>8u>wDM%CHGbTCE_{Dk2XJ1j~-G&u6rY=|N3u#?C2qB z(f4e4mDk}|`e^eq#r1cC*CxPoyTf~Xz=Qqh9mMvJ_eSFA9M0PAkH8?DEMYuKp5L&p z9@#4V+|2j1P8*sEe$X|E_ots}(Q@FdLoO7j#GZJN=hEM0SE;|&%3bB$|C4*GZ`S)d z?(4`8a1i;p3;W9x{OYk6l~}eI@u{5+;1fT~xOB#PVl|T%=EcM(>j#h{8CkCJkWEgp z;_tu@53{y6?IX-dwdG$pD<)fwa`nChuUyHvO=Dc81Iq5Gv0Vv%lNsAQ_}ce4XH9mQ zdh`#qtynhE!o!SpHe(%CP7TI7!!xk#5c*B|y}_7dkL*>=%ptAsk6@>(J7HWbXg`nJ z&kyoE&X^CRUDmNvRK~!T!dX63V20q5crE04?u{cOAJ}y)TV4PB+E057Llzfi|I#ym zocK%+{&Tj8))nyjLg_|U*_8aSVGQ31O$bl^BRz&q@TKI}#(NAS-_-p2zW1*)Ji+)G zj9E^+`H2Q_8dz8ytBo~pQTf2aoLK#kqDt9DCi1@lyc)u}a01SsqFs%>=0-C5xy~Wd z{QHEtYOnbsH(-n1%2>$Gsqq_&jSHL6RDCOteU%30K^UAHo|Ljh2OWA&kDhMRm)id~ z-%*=&)Y&9D0oRY1^ny-q-lwByPlSdiK+ESs)8|0jXQM})g&yHG^$2Ibr4RIMzq8s%XR-pgLRk64s$^J3EyXs0{v^qfrs*jg)W zTdO;_O_adXHInFN20Zu{7B|;JzgIY`Hoyh+wFZv{P>QTV|ZR+vIfITrs=S-kp=u7IH+r&@M?cb!0 zVteoFd#vYknCnf8+uF|?2A{=z7|*;Y!Z!td6S-jK7C*+CH2}@F*aDaJj}?zHs$_?e zj$A*|DEO{T|9zS# z4ed?1u560`L}Ot+Ydin>qauEInBOqsmmp^jBA>DYMxn!(<{*zvzQo*mAR#nG`-OGz zvwF!1%BGhLA5s6!ah2J#@~dy%)MT2){af*SN}h z;<>Utp2kXS47oAoMfEh+LKnLQFYS*9$0oc-o433*9ohGnag`( zlE4T@R~h2;o3()YtusbD?Kd*a>Gva?(_;1+Ip_45HAb60zt~BiyW6nW(dUQNXYf=q z%)*oGwG-)gN4SdFW2-*j+rH109rPJnt8l6DQ=eDh7e8^3Q6(83VBD}3?06%6wDKkG zIDGqP<$~FfxqWox54}y z#{{v_E1BLM!9r`;0zOad# zbk$jV;!&b2;fl>$v%LwxDO{A$KYz){mi8*x>#dh9=I6+bq|lT-;GyX4QIQ(8!LxsH zRm`yZAsUmeBRcNv+xNP@ebA;SgL=DZYY(>CWZttjt@L~PmkFM+vjQVb9G%j2y9-?H zzH7G|K70Aj+Hd{lK*gq)4@@}g{R7}BR)W3I8S{;dgXZa@zinPyK@4)6exfhmr8a@< zH(b9+A1`&mvbBRg?ws-YK33Rq$CCSP;mC;oz=mVx7lh*s7aZj8G{@PE>&+d(VaFPO z9*)fDcpHwAF9=5;7aa1n68*a2xVIxX?7Rb?hofIK*M{SqF9^p+e8-{tOFMvLZU=C< z=Vv8x(jD=hx9oOn-f7cY*&je&6BuZGPY4 zcPhUj{4S&IJgxzL&C9x>EBnz2644Ek(3O*k+wO_3-3y)j1a#)!=*%agGxuQ~*$w-( z7yGr9FDT&B3+hK1asP7co{7p=XyIA-)qlyu>G+ftBa43w4vJat1%vpkG2gYm*K_P8 z5qNfd7W^&|{$E0FImvJEyD#_S1n`>@UHWMATFLXjNCuEIPqB=<&GWlbq8oW|8zWvk2tl|eSq-exDJ&S~#D-s!9(bj~L7 zlx;3DMn>wES+Za(xZTZv;cB?b4RVzm-CAy_tK7F#?i5$KP;0p%u5yD_F5gw|xz=*I zu5$e-r`+b^nI?Rvj%tA~!&R=g%AM{ix2m;VFITw)l^bT2L)Pspn#;J@{q?!ZeY%Nq zBVFx%(Ar)cdUx=$pK_ryUHup_x~093T;<+ZInEKX@w}>NRo|9!|8kZ4yS}^9l2vAZ zD_Yz8o2%R|l_SQY1uuT~knMhuOsNIF7xmqnTfV!w=&aUqFSyEWrJQ7?_J%z??foa>pSEzqQARLwJxlgiLJ6>@}Kk2oJSeKOVs*r1f2ZI0UDyj^YrqfYrTz zWN*LC`mqk4eY|b5_b7@kd=epj_VQ>9G@V#PBusY!JPxfDI^ohTG_msC@{>_gQZ!6^7lNsi@ zCs(mn3T*5@!2h?B*x|wUw{N69o6d&2zWp7i{X}5K&hwNvH05vfWAVXWk#yjAdm7aA9%bN3-<{G2lRL6N)lSTdr4v5|}@?%lDB zn22AATSgqhhc?W3RQR!5GB(2JWc*1?e6F(adGI&Zxar+??Nw9WAg7v9Gbjt&W)pVH zxXEAkwelAZNNX9Zcb)p+i}9X147rXR+IRRsugD>;TMl%Om~Ae+`6+jst@ufc{>9ba zE3_xOW|)`~*)@k?uRI>y{LIFU{NFp0pY3sTJZ;`%w^`%sxXsFTGP!;fc0Optt&?m- zuWDL+F}lJ<=nNO4J6wPcaX$9C^N5L=jBYUr9b+PPhY9o0IZV4l!8FgB9@lu*bmy1A zuN%K+pBF#r1lr*o=Ed0Rp7lgr`o`u~JH$z`{Yccu<-ceXiSzo)XczTuR)m1m|-68?r+W{S$#`i4{H2B)2;tac`< zjID1tWoA2NZ2cgpGM2v45_9k92h(^LN^g-LtBR_i|G~%!Y%#+{fBYAJ`Hsr<51RSX z&u8pxzPGBVzO}q`MW_5=m2cHMRuxH4u-nabmFp+i2DQlR9j3gt%VoIA^;Wr4TIBVr zBFSsJTrXF-1eIfd(w3X6iilfw%K2R7K7E98SIH0BvXi%zFKI1*7lqXs39UwKkF7 zPy`Qqjc1~Vzj1YJ*bmYd{D}AWB4;>$U6F3wm&<>ewTpW_^OUR3dj2?4cse!MRWHC;5PSx?@#%Wl)nNUCW)BQ z24WMmHay5RaFWqC`$Nkow`4dv=uMvaIm5vLK7abI`kD1q^IGNYOEXfoBO4=^(@!gJ zwPKOdqE~XiVb0JIzxt=icg!=ZhugkXb(}j`$GL-boI6;@xr23_J6OlLgLRxcSjV}8 zb(}k>Jb)&i$Wit*_EhFMxU!#-Z|g}tgMM0`kx%OPdS>EzV04@81msM5RL}5dX(>lu zph`XK>v~4+n_uV|{wyu!$nUa2&)9DO=ca#3J#mx&fG1$1*u0DVicFn7M84FtUgmzq zDxDGXCjFLevX=ddG;)RrziOkUU2>qzVZ8l}gU&C~o~BXWAMzKo?Wb@X8@cqr$p*cp?Df=}_Q zx^KI1ii}GCl5IVpwoZ4oMLrDQmuyS?s&1I8Epk}wh?i-j_&Dh1Eb99GvpN5xH4a+mgBYyga?UTwsw;A}OOA)f+xBzH z@s8y%!MIX!ZuZAitFDzUTG|3`lP+>}g)T%NZn_vuTjF8bi>o7dxZUQCTyiSh zOPj|#-=rJY-R$b$4kPlg*D(D7<>R9HTETgTpRh(e1TSo6U&hjN(xOGsr-%CW*gUm2 zg?yQ+xUFRE-R}ui*DT75;VaZ<{(ILLakwI3o80<5Tu6WSf(L+RwxkgpLcCtDDV8^mqzD$m6&dtG> zgf<=7oQJ=OzMq`?VjJ1))It7lPUEMwZbr@Wox_pO!g0L4Og_n$$tOV{`0-mZxnH#K zf2^}3`WyYW2Z7_q;7KxiH-0eMTe^|^C38lOxb+Y+**=%0Bmd?)@ao9ke^_U=!iUUf zJ92Y8k+<{=ns0d)^h93MGxpS4o?YRIyrO6SkGgk{kE*)*|IcK&%!G?z?g^3vydRMa@8L8;oM6L{ac5vD%->C>GmLO=};6^l78`w20TX zJ~aXRI1sIZToNGW_x|j2&SVl2yu4n&@Avil z@vtXU2@Lp3R0dnncwchVqO4?CPDZqRbvANzDdoQ?U-_7RW@W~dN7j^4zNwqnamMc# zlYtSz8XLt&bvCl*+g}mZn}T&l6xQbKr#+#x}#E&9CX zF8syJQ}LAdyJo*KMm#0O@D$C{9z11tH&4-bGd(FbPubPYQ_MUX5NCMFN1TmEj_|L< zOI9-1$#dU<4%(ntjMeGnUqIFUDnT zM%K^13_qF-A4-J}P3eaZMN(}(RGZq952c_#X)i$ne5jOmeUmoWwt@IiLb!zA8yAhA zQu+TB)o-95+Lv8~jM3Q>^5y#RjgDtMXYSq=?48dDZ{_<^&X5r=ldnT(Pn6+5R~&ln zHJ+Lc=+|qn0)lfE_ z-^I?^6ZSc03E>~}z8U(#wyxHGlW${Bl^VH2J`l!zIJCc@gRH$~VQa=YsRt zZv}>HkGbVVCuZ(5A2hBDfRV%8cISO0(lvXpnfIxE&imF6y63&Vn@LQ(bP0?1f@{m; z#PG}il)e(^_!jV`llG1eJ95Kx{Ix~+YYXw$cE^YP{3`jKl)oYl-;@`>>;U2?J)!?0 z=Xn!!A{@$IoC|%lfDhrYNc|+YbEMo;FTdK?8NWydIW&otK9Bm*Evjz?N9Y&TlCwH@ z)5X!5l&u8MlC!@>&c@~iq8-L37P!r7=qeh(-i~z|)S=(=_&ovKCkk z&})x&&Fn{~)P7u7r<{93Pk&FbVwkBv*58BOINL1)Z`pYiysWrsT4)M*Om4bo=Op;~ zr{1LPN5E+W`pG@Ty1C^@*X(@!Jhi$zJZA>FC3598{hy7E@fYL!Ne^#C25a0>h+D!3 z6M6?6DQ~QOu0l#!9h6 z1;`cP_ID)x4VbY`lOA22jlXKB-WlHIyu)8LSnrI^oF;$OX8Eh)^v>wa&Ug5$I?0m~ zFuJev4u4g<-Vy8X#JE>yqgxYKxh_CVxvN_@6QBBZ`olc`M7}BU0sS8>gD~U62f{mhSP3!YXxO8JN(bV8;549s-tY7X%)N!rYvV z&nJ`lR65YsJ0;he@%daq4EJGl(k|ws9aoTId_MO8$3FWmr7h_Ae9lCtov}OESb74V z&n$HK8NVEoF=MyYIOBt!exDg1SdE7rKa27qho z?>Es0@!tc;MYkXF0WG9VsUu@$Qyhi=b@wYHTomn7hVcQFf7a~-3a%Lc!cnJfI#;z! za;TRN$oPhMFCS3(Xx9fcDm;vOf(#vx4Aq)R>{?0XINKfyjAPuRewp;}>&Sb>T_#!SX01eRQ#`*d zFO$N<`JIU#WAZdeUf^R1GJbaKBDov%4j;=3-r4$+^9~=&?Yxs5J;XS^$@M#~2)Iie z8R%erZJ%P;_1iZr(2+LRKC3IQ!V@B|+&*N~>@2UnH*hk01h2$iyZ}6Ba96&EjkK%Q z>=9J{hotZZerK8A*yG@2o&INRwYTo!D@A`v;fKsUJzT@xvwkaWwAXqZoZ&Yb!np@uM&_*)jAY3R2L^tlBjg;1w?uVus~?$nGi4?7 zBI$N{(??|9Udn$_{yA6moAn>3-^hi(Q@*L2-+f_ub&X(QD@XB-T=?@>gmtlCoo>T2 zG>YG-;VZ(LAXwvKVBt4@EO!gmd- z&-V;&*SXRytH^Ivv1)3|s;%5BxRZ0B;-0B3ia9w4T0OaGT1!T7T12rRlKsRmwjjeL z^S1n%by0A;fi@o@{<;|cKSRE4_FnRYNA=F=SlBN5 zex@hE*w6*o8Asr&?88SNPYk#Jo%sz<3Q`yQsj*GJiM@F_cIRc-pO<2XUV;rh3mbYS z`>O^RTeX&X5u5Ws_VEgEvx_^r-O1WBygj5oWQ~i>U*PU^DfiVLlv&Vb{yQ2yLf z&2eOi;znZSMKR;5m;qp8nP_HCL0u_F3%x=MK{Pmg*hKbw1;g*mTd%3CQoG zv}5lLp892D19`VU9%#RFY{BzoX9V&(x~#m&Q7iAmf5g?dc5x0hG^4$2-+*RXkJ|g% zF3|Hf&f7(Qo5J%t^o6`Bgun+tDz%69IQhtWD=l0bRI5Sw8^^w7JFftGJ8?$V zsn+b`1xufYz8B49&K7%8+53c^f$kvwS;Ls-P{zl5@W44}wEHC1EQe7q{q>Bo`-I&1 zBzpvS<6cmP@Ta4qpXwh{GvH*HD>$sxFZS3K+PH%q>J=Wx|P9+bi#q&J+ zVZnDwb%)nouRFTTb-IJ+YjkH{{8hTs-|y(YBG55gcg1+%H?Z&l1WpCFq|IB=c zHm_$K)!#DhOQ+18v{8ENz06hRXDcP=*rV`tjj6_Q!C2cL{|n~pQocRQ%u%EF?8tsU zKNJTo_-H3}Fn7Ckwl|I#ABB-$z63jO*k8ysgYzs=ZCiOVek;ic#;X{9?_<0MXuJ}; z$1B$Vuk%4msedJBPj3a6L2?*KXD*|C^8XVfZTtUcduo>A)3|did-v$0AGxxC{0F0) zb$}r20PWyb{5hy`L{I#PG8?fM9x;A>rw{n`e++J$zQSA?2#$lsukXOZuYWVJe2h~q z@VegNG>(BX;uv%kb8Na^MF8unJd`Vb;iG^i+`UY0DeEL^1<{Fb0 z>E4X3WF5MO$%~cdd3e2SJQDbRlJ~1`gpgUE`0)43PSbo_2VC=Rt9{;d2IHppm3q%O zNk2elm^@SZE`xK?f~IV0_%6mzJZ=Sd`TLZY!tY6`%6XPNoXk<>rpO^b+gY5)(!pH4 zz&o^R0rdV9a;geBmG2p{sC9eS>^qQ8KFaC)c5IlJ|JpVCYV?j+o38m-mx+H1lBWWG z7+q_>9(_`M&(IndI?g)U(!Iu&5q?B8w&((Ex>4c74@lP-6~3HzKECZ>-k7<7zElU? znMPkq>~pOFdY!F&B(eIEzMskbna=!?zNGko*ZF2Ux)Sos#M(`9{FYya|J+n<)yxC; z#rUPmz_kbdxAGt4K0+rg{)ck=WrV+m-}Y^Abcj9(x5Ie;`4#m2raz#Uc~}RCtM7!L zbXAOa&8IP6AQ^xTT5-yW^_cmV(PQ?4Bk}=MuVtNYJafmAE{i?f%Ku0CFF@{8=>-3v z&W+eHMt%_A^C|zgaJ|p_0K8o=YT~e?u_Mu`q%Tz$-jip}K@GA8RyxyPfhSn5ZuAjl z_4@$#;K}G7WBCq#H<0f{lhIrey>g7@l2bYNt{Eo3Smp4zj*ang<_vPh9HX=J*h?tg z2;7h>(#~am?51sXiaEZNI$iyfe75Mk7P_geODdQ7fy=?`3f6+QDelD+eu8h97sgjP zp8ldQO*r#SdmTi5I0@bx@U}l!gZ`h0E+@T`xw+YTa4UZ5l~XO^)Ay>sjB~AYT=w?Q zE%9xD2j!{X(s$n6N3PMTKz$a^(wT>{hG*-43E@W#t`bQ}V)Wi9r#PF;9j-dOydh4Dm2IL-k z9GFi6^YOU$$XM_5yJ?H|l4R5OmspR!jkeT)$IPp&eFexy^FQ$PzhExr|4b{f4P4Gv zdwm{H$Um@9d7)nO4~)~^myYxJ<`#eZbL!^=o`uuvxa+q|gO~7|{*+uLxk+8hWsDyG z$rfn2?&Lz9UsL6Suhl`Hb@7FUPu4+izljTUT;aELR`CvIO-OJ`nLo@A_E%W!>9E3Q zLdVzx6U@629{6oy_;lWtLOU(sQEiw>In(~!!j5M4yl9^rIcpl@O@6)j4GYO7K9gMH zxx}r-(!F?f?%9RtdH(ID4b0gy)fd{}lkXJ$*z^&dWD<4CmSIhJc3=?sCg?x$?`^N} zTeSN@iKm7|xJ2P0nY-TY;$1C${9o>V;J!$o-8P@1Hq*}N{LJW?12DFobjp9(*)xMLP5Wh<@DHgo;Y4uTJSe#;g_wozd8job>}>BUGam=hj~3Q`N=0YP!!lyu#nU{< zsAS^C4^|b_2WY$KIG6cfQeV=RuIQNq&&_@3 z)jX|GzvAeZmwvIyMaek8zDe~FiNrwk_=MvdNzhn2Ax6(GjJy*D;ZB}R3mOp*d z%rSD15${gfGH0*4A3Zv@tjdj{95Q%IBW3j4-J3p7IV;M>Oc4$&`lGr0M{wox$JxS# zHxVA*(=G+q#z*l>;Pu7VzXl8oI*P?B5v8W>L2UWr=|3&;`K)DSm)}#8bN|zvU0^jf zi=KtgR4WhK+Tr62)pG24k7wP$Y2@k{4{ zd-b)&&|gA$bxdE=qJ6dV#kn%zhrn`W8nz?&=$2{6Zu&j`8xJ(sGsdB7+j*`JWJkB| zkips8j?d$V@U6$Qjr@L(dg<>c@{Op!KKcvqlC0lsd?SzBzL7Wij<(xAlg%nW(w6^f zH?T(io4r=#_7$IjN0sFBzSe4=tg-wz^F#CJ0q)|%zdgNBwzZvu065LOuZ7fQISGvGjpKfZhlMW68>7j?G5ye_Y-J$3A#a|i@%Tg&c)x) z9a#D1o)Ff0MHb)JRa|?VZscM9G5+XA)8Ru!&_*FNQhk zRsGikU+)snE0q6phZSHSFXd#{`H(}E#2&bEXdUgB9Qp{pFZnZ!`UT@^NB=TDy+AFz z#%j9+J)3@_=X9S#a_puTXrqU=cI#$cMOo5&V`z6&dlNKj)x?EvpdCS{9mTXmG;;}U z(7d9}JN(#3=nEk~u}-47G2qmceIqV(6=g+d`d0lY_M3BTI$i>H;f?|9r5j;rI^Bk6 zzdxq;&|wgt7w^qCQ-UQLNAsTN70&ax{@OwLv-r=n4_nP|`KwGDvB#K`JFMDd#r&Y( zhnfNaAUujD8KlL@KHc)Tz?Tg5dB5>^|-Y-57G;Ai5{}b(L zg4TlQ?GNEguY>PY;%iUfJh-}w>yD$DY-h~CJ9N{XukzSUe>61n^yQwK+Z|r3ytJ`n zC0x?39hHSejg_4J(IR?zA}-X)_iBUiTnByY?2jJ#=nCz8bjs(bob7dk$wwJC|L69Z zg7&$3KF;4W@Y>@-dw{3;^8@bkq4}&o?yO8Am#A`xl26_MU6%0ExFs<&Pq zT=~j3yA4* zd_xxJA6iprA7^5?xHfroy|zq?ots@n3BBgQ=yveEqYPZv4QQY2L#N=(1lc(@&z$Nt z_M7J+a!El0k3rYj0o$g#30%}-<7m7L-O^{_=Zo58(5~$doo?qfnQL&H5T40hyvXPt z&e-40yAzFl8Dn33q-&yhL0!f5$I;_sj0t^*7Q6YxThQR~_Hl3goD#)P8M4PmZmi41 zQ=N8QMY~*G8eSKrNwo(Womgb(Dp;c5=m!)2hJ5aUTll_kd$Nn$RB+3?RN$iDHFP0^ zB1Pz4Hm=w^mt*ApY5cFbE57&{{ZPMIS6)IM-`Uc+MUzjV;~G7c|IX)otv5$?@v(jD z;>xS2^4K%m1!EC*ljWKJbIV%#^Caj(V;!Xd+WBwQ4ez8a(Xmv!^j^I3ZF5gBds6JN z>Cg7o*z~l$Z=`JRGo_BFUo$?NMZYBt$~d`r zeUbJGuV>hFwOPFGCCb;@d^@jF`9>UGC*9bz#hHU^)E4F-I*_gZFqZ_&yoWaK;D6y= zF?+G)g1lE-_1^*f3@RhtQucvpHFD6NOX6XQL5VH9gtA%onCpy`XuTTmAE`auuQvCD zu;XhvZhyBu7wz$O&%)b(nce4Dex-Ja-&Z2L!1a#o>ug?ez2*n9+Pu5Zes?wRpv4J) z-C^td?thAHzfXED^D~S7$^KHmV|hV0>_ig_A9VC$#plbu>@RP619h1;#@JiS)pu-~ zCiaTUCXx+MHiUIY%UTw#2O6C8DD6c5uk1(vcWtB(9C*m8Eq7fi*vwDI9$SZF}_c=F{SMMr7Eu& zlam}6+Ao&rO>cVz+AYJ*_m`(_NG5l%@>Mqz_r$sqI)!poCx$y{Cv(sFofOvmvdr%U z6Q`owDC58@eBA7bQyINGP4DpM9sw7{ZjQjCecOvqxVSjdwdH(p5onGcc`AMYYQhCJ*wjO7Gp-q&eeJ;wj|3iD9(%lhbX{zulCO169`yOrE0%%dii zC5Bb}M0FvjHplAA<~RCjF8jy)wr;xl1iI;F>nrG{nZj8=x~cjcYqz*@^G{uZonLf( zEWZUW6<-w3se|vn@Ku_&n?XB0jg%)-Q|CE5YZ9VkrEB?kO1oZH%}Ko5Ve5Yn%0& z{K*F2{1^2r5L#+reibf%6o=;lUUld+T7Up;EjF{a?Oj z$)h-OCEYOtyOQ&qX5k}4ZiR1$N6Po7bGU{9FNhyUZF!IShMZ)_MX;u8^5JJVXK-l^ zyNq(mhyMz^RXlMr=La1lr`dV5`HP>yHLAz?L3TS+;D<@!>&PRlcIphS<`T~L^57pM zFRWsKxOd8@s57|KZ}~Fn9Qn}~|GSEQiT`~(%a$89|C_kfiQDKQmp$a(GG}IOJMo!W z+q$|o+h>0z!lRPII+N?`)MM}lZWYrZJwoS8y!`8j*XN^0PU8G8$*NSol`Jy3ihIc( z;j;ej)D5c_E@;orPBZ>R&5uVoS5xbWlBF-kCAYO;8`a@ojFlJl{rDGC9Xdh2Y3nZu0e@^R)IS{$j_D7UOr?2;Gf(w#KIOGZ=H)af9R*>o83hJG#W! zZe8MacnLToA2es0K$FG%KFHn!(Qxb7Kqxzq2JORRp#A5Iq3>k->@ls&>Rb}ZZJl56 zJpIxhKK))v{~P$N*tiXeR>N{Gjq91j14s|l*s6T02j67eywQ1lFMo{2CzUuao$Xu- zPwcK==gOsopCsRiXj*4TS=Ri~R%+R3kIt0y%^h93V&bu@S4@0fammVuZ)kLcwX{ln zc7)Y%3|VxPSb`(0D{&@X3GFCRK4k5&bo*lGGfr-Mg>zOF@9kT5=ksOgCi>q;Tm8^n zyu;f|FW*+nA(SO=GGL-qZ$?fgn{xGnYc63d4-{*k0X#3x>+rN>rLG)wwU2*hH zj6*r?e9CQS(a2~U%X_tPj?>0++87Tmm(j*DwUIKh?OW}(ugFi^#?!V0&f=hLR{Nyg z)OXb}+Q@&bYjtETyYram>ZQl59Q+zrPdWA||7)H5d(ftd`{ph>(L80ZF#POl+5A2D zS;5!9^*K5NFb&(X=Q@k@y<;~O5TE$xADZ0nMFaED2l6yF$Dp5C#-C&JF~tk*1*bE? zX&baquxx>8SK-xV$Fj2Kjn3IxnJ(X3Is0WbR`MMwmzX_9BSYExF12*@o)4^FFF5kS z{%qyz;9R`D(1O7+^TiJ>h-dDl|83A(fI12&r|)9nE3QCzoy@o^F27(fJQci3Ui+++ z?H29Oe9Qn=iW%pW@EHD&Kp)V?zSMIo*MC}sADm0)Htr%`z?&5;xgY*kzHrKvYbhuG z=+alV>M0r++C}*^;B@8t^Df| zooWv9Nbtl%(z$XtuP_%Lu^0Ixf1A!n`A*FFD2j(ve-$$up}fvWnS=aahzekj&jzs@&@kR3;fxp8%&SNN{!Bs;F_J#ao`gw6Y<3nhY| zB=8zfA9Cg=ZAd^j0k@4l>XdGzc8QOdBd3GtM{2)s*)7L>f8;@iB#Gn zn!bVmB)ekaEpgz%@6r1*bl%{&qrhBYU@{kYr#u|jQ&v2Dg#*{jWoTV;Msrj59PZNp zbw7%(CR{Wh?wa@#ctodg&O{Xrq#3>FLvTsV=sulIFZn4rd!Utka_{HHyWwFFg6kJ7(w1^%~g06?iSpgyurW7(T^BQ=||rpMp8Ieo64C30q`pQ=c*%q~a zTW=qQ&32txfANt23_lih{uchZxBfmbBt3-~>&GLBu~*rG4~mDacNKeG2v-hp&RzJCPonoa_>mj5uJ1n>L9d3_hmv}vLLpl;VpYdO9`D}|h%k|;qliRiL z&g3!zhR&p#GD)_63Q5#1; zW^u)y>w5oj=enk}1sKcw{|}t&S{Ij0tYk`C^0VvKccHVM4c~-rN{qb)KQZT{z;kjW zzl@(RZ>j0a^4qYpQloZOKCx-BcGfH4v>86qfnP4i@yos3n~ykg9RKNza|?Wgp!295 zC7x;PX{ll2kC&dzZ`okd+ei*wW81C?hBw?|&W%YhdGh7sG`1IT#T)X0sdqMSn0P|} z-2}c>jN7rB;;_@a*lEYdy2&03_>AA&_#()ZpmR!43qf*0TyCDw|)?mgy&d)D!n zn-i)3$L554)^U<^*6|mg6Sw!66U#ra^HYm=$+rD6bAo^>+mFhec;Mo`=0sXJr`Mb~ z>kG_@-F%}tu^gB^=R|kTT*b)6j-PCt8~I+jLQa$?#O3SwDXL@ram!z^_iXsGY(GVm z&!b1kPccn>MUM#P9q*^Og?anB<5w+(&wrh7v(B^UNjZFe(Ydy6Bt9?w@_C2Pk6&T) zdFeJ~z$hm^!SH!}>SgGVN$~mEwCjuW`J{gNd^!7I#ODtnpWEP{Wz>;7wr^g4_KMzT zc-y@G>=pmtpW$8U@OmG-K7y}Dy2#?wZGQh-eDQCQpL+{B%@*>plb3z-Ve+vb{lHT% zeNMU+{)T9*ob)p3mpW%k_JU}94|=9z_`;{M&jcLgt+=)Q2zq35oHeP~U7LaL#Kz;b zI=ZAw1ENj#Oqu$MC3C1_HNHPT=Qr)44brn(&p<~cKK}Dy<~VdEnC6Tr%3lFY)^WSf zgyLQ1g7H&|Gg-R=ZlC8oIc-dgftTU5Q8Ct2=leG3oT#g0Pmi?nW}JF|$?8j6eE3bgybWwq;UF?Vb#wVoeSXO3IvxD(g;x0pJ2#negM=jPlC2Sv|YOU)*x z_4Jtf(Bot48%lkZld(U%*bLZMI&X{krp?M}{=VwqogchPj}tCVc;1$Sk6*{M?FFZ8 z=IkY4$tQ6R|L=Lci1W5mtAq#9OyvsJJ+ZMXj|Ljk?jpLHa>&yX22J@ji;qLS3?)DhCs~osG2dwVtP5X;4`Q!fL8``?h z0Ryh)B%7lq9Ki1>yOBMS;||Q9Uf%(&%l6LlCRVi?T&0KKhp*SfrB~%InxMQu*xnf? z*M(v)n>j~*HF(Qfc1!d;hS+hGZ}t|o4OkCzm+kDc5}otX@ZaO(NIk0a{5UHbJKOeC zriKgoR(ej;(XK7upgjlX51?)MX`!71*nehDIPtqP-tD!P>(Ib?4o<|AO8-Ip?}eV4 z35=)w@7;Q%?cYmL9hXl>Z%hl%r@xiPrc5yBx%JQ+!H@LDbO*NP+h*X3_u(fubE+P@ z&|fxTirxv&S_|1jTvO~GR@r3z?P+%RGrN6`P}a8?KaGd8O?kFjazYbmqt3QnTz~wkl23pgT|XPlx&rH$(k)H>3v54k9cyO~ zG}|^=?0VU^X@~5vtbD8CQR2lX(>BGo%0~7Pm#_le6<^H0wq)Dp(*N>BG*D;Fu1Sg+ zsNOPsaA-ZhuVLSqktfJxWOhlj@CvLt6O%k?O5{oV%qqdO;|DU@#<6}NT`?K^tSO%T zB+h#2hiVtOE1EfbC(|>k?SAakCdvhj&nziCP~*sX(MPdCo+I|EtUnp#*ddQP{nWVs zm-stvEOYFhN@S3)?1E_f1oQLYRmQ;E+zVcr>2EhY6Yrkh4^MX5cWVs14Gui~wpBBb zJN{mBCz5RARW#ZR?!=P|yvQB&k|)=8trO17T=v3~S>u5xSBoc?s}9~h!5v>$SpD=_ z8U3Gu=(O$9n6};Gw9TSiE3m{TUV%>cJRX22rw}7%^JLR!bM|K+vd@7#IR@@^F?~i3 zRp-ta9F;>a-@m40#`Gu6xt|f8`$-+9@6bbR-^=LxA^Oy8cz~zv<+fh@#i=*Vskeo^ z55Jm@Ek=FT(!rrc^dm6FjwAiDIUVrHRO_7CZvZeLH-#xJHhqGUxv?4w4;+=U0z7GP@q zsju?}-9CQDX^-}6$F|3!tYQy#;RD|ZZteM<5uM)#{&^>co$taP))RKLul>w%Q`gzu z{SBOHh3@#0{mOFd_V=t?{VD*S`t@jk{c`BSzsKeu?ir0P&ipRyK{o7s$5&DWJk7@} z?q7ty4(og9D@Z(6Ebd+Uvh|T}`V#H+sgq!Lbq!`cv&h4GX3zagv3}cIiyXMcqGO}y7k;=SUD_hOyqlh}AKU=nBG56|$ze?9E;W*tX5jQK7m z_DiupUu0iGEw~jwDP>>6?asc0GWI1TvM)h=&W$N{V@!MZv4yg&)J40ZeQkC6YUIVc zzR=6mal*dd|9_^h-~W<*?bwUu&`J8QCecO~yyw4ZjH@_VO+*;rH) z`3>-urzfpo`9kJV32i+MK41LA10{wZFYt%T3Rztp7}!)g$l6qXua!3vU8R=u5b8J& z0lGK&psu4_Q2Vl3Yx=6X!#T8%ImH@LQux;|Yd-)vtg(6b(N2R8WU`Bov(v2EN49xF zyXnjO+}&@bk4@$biDu-q@BVn@Z0cCR9PrHzw3p4Z+RM+k@=RflVvc=m)$6Qwv+jovs5B1y5}ifsqLMuCjCFy+GOP zj6IPaen)UkEbrE%)4-d-Va_f4kpSoK5sp}8D>S}cA zI`(m({_xuc^}j`49HhQl>Rrh-#`A-pKMozu|0F&%NX9 zSHll-+2d-?;CtK(-Cfc9NFrR+UozX z>v$YMlUh?hHKv`?>l+JLLjtG1gZ_}^%w6AW1?^=!J?-TWS$SFXL$vSGI`&Y9X~(TY zm`mvCv}?T6o~yV^7A2vZ)9)-In{^Tz7Hh zv$t3}|L3o9*>TLpXv(}WX!{?xw zngwxbRg*ndULN$HGtkN-zGh!7zIV=ro|1W$;hDSxa*G7I_bkORH+7&4wO+I4txm z?atelRi)V4GV)|=UG5(|m-CD+fZj78^e$sT*|7Qj^ng$$JPqEPmyhhStjhI&2F66_ zrxrfd&bL|U#74hy%D>7xcs6^%2ZVwuiyTo|WbFF4!FA+vtNtbaFTBqidJGuSVXA;B zdif<~k#jq;OLIdOcrD|%aBSN03GwLshQIE}K6RjhZDbU%u?yGN^4_{67k+M^!9L)? z%95M!u*^6L_EnTsUH5UzmQ@_lgISm*lbOjRbR!jDKuE zW4@mlPsUt0^Pf==%3XOdFUB zB0O;)v~uKzzW2}5XL7*=I`XmWUtx`xu`xQ(WOSeiIuP{V5OL1z-A=zXzoeI;7w@pL zhK07%zUF~ebz)vY#{^*M*|)5)agWiP{EJosvktxK9p0y1TmT-^+AhV1=??}=u)X)? zdLCJS5WPE>y}j}SJcXS8JKqM13QP>nUo?(ht3i9>AB#)FO^{agD|pR!iaZ@j7kk)W zY$e9-qtO2EBRAOlztxuHf`X3bg||#8=G>rN^hdNLKkV|?O-{0jroDV49^uDl?)IxM znD-ZY5>Mm{b@3P`$6jwd`iLKK@%R++Bkkbu7&>l;*Bd_K9T1ky+{(Js_c%i^FvRZf zgJZ3cwRhjOb|^T|T&=zP?zMiNMdJNAZR@0|s;>41|Ui$Dp{reaFyYC;C$s^$Q z=X%O1w&p!_;SKd~tiGHKdJs zHajq|{kiIa%mr&in_@(((N{(WhHp5RHvDLS)o>nT-pZ99=UIg9GCS}$Y#siyMw~l3 zpLz$>1&+WIW_yTR^>W2=4VWHyVc23XLBhIF+lvP=Hg~zk+PPZ`vP$yBR665z34fqZ64o3Q;XV&J<_Eb2@-1uUCC-7U}-{gG1nEMxsOR5;m8g?r5mxkO-M}B4?M@M1PoI-w- z!JPeO?_!taPd=wIbRgL@Im~DOGM@R?*J0Z<%HL`9_agCg`y9?<_R?yO8$ae~+h+`a z?76P$_%T0l+7ZP5zAGO-@X>uG#ZUa|X5S~)^L5gF{xBqDX>Yg{oR)csm8bQz&&x+5 zAF}+3No%xzi68u4yA8RFf9%?B3p(JRo%*F0ewX_7PHTMi)SWwQXh=4bHPG5*{DKA6 zvJKR4f0Nv&?%0fv-1Y6c?fCS5XD{U4b~~hZ#kRxs$vhF$mh+=+NwnMYAZ-yImfJxSO-%b*3;;u~W3r}WpKAI0=%j)OO|W{zxJ?XH=FZ}|fa zJfqL|?`yv<241l{4$x)Y4}2T^R(jP;bop`U@)sblW}w5Hd_QHmQ+)6k>F_I^^@Rr* z4-31_oZ&7V9v`7}W$6z$s1APL$6Yk6_%I)M^1%~>_0X~BLO-1=z6)Qt4*qa0eBv7T#ntH7 zSJih_3^uxT7?|~3Z$L*+azByG@yFex^|u|-^|v8ff3sfe!DA}Y+gp-teeXTxuHjks zO^a)DXl(%hot35i=c`JR=-*0UW>=Fh*m<8GKzC-(jbxAJhSmvY@h(C?qx$*@^4v+U zeT;dTJz|*QHA5*IL|+P^du>1utKq+zm(B`3$bC!rtPphi$y+xL3$5dR__t?;u){t{ z-FQ~$5$<_w&kAWB){bT6JWcRani9ZI&wliCttDrJ* z%cs(}PbC+w{QEi9l2-20CqLr7bSUZO;-!1^-JP5nWBzyT-Q@89P~ZFfCp|*Xid938 z{luyq2Ja%*An(La|IJ-;ThG7e+330t4-4(%xyb_`M#rus)|Ld5HU6yH5?`>kBtB4E zl4-@a#h-ic`k9>tuj4D(=X*A|e&VzDu2+11lJi{_GI}HO@l51iFfFH6KlcwA+-bjPHnW;Xmn;$LiicpYyN1RMtIPgjP#3- zcrQ5v?Z{T$QFx58G_}M8^^agpiFa%Gmj0S^B;I4aKRD>2^_6kf_9RbIRd-z} z;inv!8cX3pWfjl%7&vdGAKB34)xeg%KAXGRvs&NL&L40W9_lL0I(g4MHjH)G5c#A} zyl3zz^Q)`EOFpxB=Hn3NVrx>$AtNKVREq+KWDz zm)S@hHGT2<$iV}xn|Z}Lo%(|8UJ@bKcQZc0x6r4X(UZ#8sXReB@p^fd4Lj<(&3$_?_bMW6!=T9ItPNFc%d2 zxs0}3=l~jD-;lu1GRIoRo{48ZD_%l5bMOoFz~x+W@fzAaFx;%WDITkmoF;vJ>tUap z`SyFmSqr!nd|m=xXTj%Y!r#21ihk-SU|*{#ck4-^{mdsn?TP>RuAlAo#&3U$a|%C% zKJG^rEcT3UzkfCNmE1=b@H?~p{ztg4!_}dhP?cpI6ke*w4L@`!LR}%C=s+ z&od^ph+KieVfItWw9emA*FtSSlN!>~{pK!m4Ku+jBB!gz-m4 ze?NMXohN4m{6cM-Z-xHIU31oA^#N$hb7LQcmwAXa7x~ z$`?+U(&zXa9xETx@nbJLHIuUYr+RAkaUGw}jyBPb2>PY^{TIG%LC@7(C?*cUM{dAo z&B;Fu3`s9QXD3Is9lI~SA>RAbDo1a0*5HxHJ@hrnWgHvwb8p!}8}z%*$yw*-FL3kG zHS_<8Wbbp>*tSgcg!8p8h*%Qg)un;Y)c*4eI-ch{--<%x=eI^)v3x81pib{*6m+a+ z%rl`yE5VxmCbY9f${Q8+0^7VM9+KTZ&pp$ z`JRr<6>*J%pE<+Rv4wkWVL``K;NTPKFz+w)7~d^2oSY-Ul7*DZ!afyG5Zp$}oNsLP z^tSu4*JP{DF}C{p^@ki={XNH4|2^N98e5(9ed?&icHJ76zFoPEE%drSPV>~(>Lu!#wInnD03FvHU)cY zqTR<-)5n*HFS6~kghg}JN9aef2ba-D!E0il-uVkAPWg~NHqZ1B#vnZ?DSR4Z=+fPM z+Uq`lmuJB^(Yox3XuQiiSh{4790*O4gYORvy$BAnn43QI82>cSxAGsfmS_*k49=?_ zH-Iw$1~l!@^~BqG_8Cj~h>@SqQmzy_Q8~#^qn~kJ##X+O%tR-e_$~UC$-7c;K)D^( zt0O|+8Xc>fRO4`Y7&kkz03CwTFOLJc|jgGomIn3*zUD+;K*e=)8w&3zf z?V|B5sjbZ z-oYnayYH)9_L+{%zV77EiOT@tv>xc#b?dpgwW|F?+1#7o*c0dE8rnB;Uw` z#4T}SLXk6y>#y4BGIOaC^0kQBpDwPw2u+h8*I z7v7q8W=@HI?6M|F=fu1-tpL{@UjKPrcA-7tiKYg?c(5n+%hLy zd27Y5y&2n&us(Pl{G^V#kjyyOot#va{?VPUyYfLi^exs#u7QV=S7Bd^_=OqMbTg*R zr|6hUK184i%ad$yzLok!Ga2ws$p`UZ}?Sp^v<6nRsrC_u9LC@b0@`Ka6bBJ}T|cJ{*@+RUVga_GeZu zT0W)B#gFA@17jGj<&U+4~nPOvA_H87r+bANz{jyC#}Y=a({iKC@vJa zgY_kN;``L2wS9Np<-63Wm`t~?O~BI}&G8ysj1(S%?8_U+dyPXmHkz#$Cx%Z`-Sl;= zxsM8Gb6-kZWJ{NWmp8z57d|cw(Alb6I`DHTwr&}8bl@S0#0H`F>i-WC;FUa^zD-C7 z34YM&oAS-o(kFfQ-fzj03Vw-0H+pg*-(lAppQv=1b#d*J56v&h?O1e0uIdQ@<6i2m z6i)vzD72b;?t_CuU2&|vZ6*JJH?F>85jlqETlL1iot_wK*@hjMVG;7qUVB%^zB9qR z_oN0(UQwU<=40;Cm3@v*t$d}@sU@3Z_3HI}Cpl4y{(0{CdPaw#yzE-#gG&)So;NNW zKjlIA<`s3r8;&TThF23%FkHr2Q{5pyOw=+8EtPG63bqsSrT=w`)`ZlVoQIm&x% z)6K?qLB@R>{36%PnaykYUB)wh!3ok))c&z2LA$(HAF+Ej%TA%M4Qm-w*T%VtXW2Nh zy8i35Te^ObbxCM`v#&KJ>O1zm7HIeFu-fbJj~oB&Z2W6R-%koxRpPJ4Usp$5u6%s; z=wPw~cp@W*U(4uK`UaGN6{8my`jt6;$PcvtvwXAMjx3AZ3cVhUvZo5yn+dTt%>8stt zopy^}o}k^TOZzjL&whG;-KJOf7f=6y{TbxCMb7o~T_=R6Q^)7!p*sZL1^a#nwrdNC zmPLnO)3`9Mz4b>oFL^oTy0&>)_weJ#jK|I&g1tW!yB{CQis8g^89z$*o;`e#FwLkv zYiNM^C3~+#brI{6H37PkO@^&&>^`ES4Sv6sX4`!utoCBreZ-rTVJ|!c?Q4ITbS<<0 zse)W1^nGqz(PHScvE`@M;)p$WHy17?r_FBsm+Te#hw9_m0>`4)gFh|AU!2tKFYZlC zv{UEE)I04gg_iQ^zvF+Zj*X>gJ=@WDzn2OcwUvJ8 z>z^_3ZtactH#4GpEEZgL59dETbu;l?jg{=%h~gev6YkGseN4E&3ZA-*^|3tG$JVnB zWyTHUpCp*;r5$HV$UgXVqR=iue(n10-W%+NfkbMTU0HZh751It-A z?GML~#K4;Gz!Kj{W&MksdX05jhjeN0bk0-x-{r4Q9G0@(x8Sz+SRVK4PdLAc|7Fuy zKMpMRWpjQa>vN(V=xDKcoapB<)yKO(aTom@HS`m+@22; z=%;iz4UUKPbT0gN8UXIzpZ60PO?@yRT=95*bXJB$TnnOqI7EI!ulR~DE<5S?bs0`^<6RNeH=pH zlJ46~-jvLh){-V*>OAcr_sPIGNLl@EqAhjU19f~S{-bx&+ar`$9;?;(!2O+b^xtdw zz$xWF@}@1yhNoP$BJ&DQ`CV&;+Yf1L5Is(9{X063+IfU_9QCG;n?tT7#Rg5{T?#&Q z%oOC>zIG`{n^>2;YpNyw*~xSi5NR4%z-8YZo8kGkpes^%~YLo?-1` z4Qm(Auy(PAwTow1yI8~8#WSp3tU+gdhP8_|1G%$yv4*vaXIQ&f!`j76)-E=&c5xqT z7v<#P*V+a7`_0EDgJwh{ zkMmnLUvFJ8b`Oa1JRG@UD0aJo|MnqdUSUHJ7%jZq^O5n6sLfS|{1HO=}i*yw?qF#y>hizn|Envt<&(zu<24 z_?A(j|LN#j*TC4_3XSWV4g7bDc}@sF%(KoPVO^{TPkD?zsiypWqtNk=KWA9`asS-G z`GCv=ouMq97Cm-Z%h*6?PQ6o|dUJ>u6^~fJyj7igZf2}w>-=9}x^)IwL#S1}u~Xmo`0o(ETZkt= zNZfH|*`z7Wh0+&}&$*@iprTQuo6-KjP}#7_wtlv3bZFd?KzsZW=og$xz zdt0BHw6xj8nk2Q+uO4~GRBnw^t_9xLOkdnRjt43K;=;*OTA=YG(6(sy-w~UxKQ#9w za@=3r{xWe1v37}vI{Kqk$-v3Ty?EN^=kjq4<{HGMd3)@pdSzJ;qyJ}d3dsrZT6pYsNFwv1=)l6yt-_D$v;u>{rG&yO~1VXMJG z7P4_S6yZtqIj71O@&aDq=@r1qSWC%_q( zpKv!Y;5S>_Id4&Wj%k~pwfjAjt&Roo2S4^kZcoc2g|^*26$g%|ZXK6xkZ>r@AJfc;6au%q*2PiANw zvLznblI!HUG4)LB?ssIYV~e8ex^l+ku#1_)$+7bn9_?9%ys7Yn=2kfJhVyMCZ{qQV zOWwqe{mV`cyWYHOnA>*NG1c~ep?}Ag>yIY8z?FDj6FO^bpQAJ>Uq@_vWB6!)F!wqz z1KJl5Gl!xud+{*Q`A5*X_~1n!*z#$*?%=F1KC88|So!4gSIMU8iJqGI6FfEZxaM+| za?Rnop6k0@*Ku9Tbq&|mTvu^j$@O{uN$H(EsD%iLwxbi7_zKN)>a`cS4Pv26izvc~9iiAGK;pO0*3 z#W*dYjM3?6Z(xA6We_;L&FI2O;Wz)+s&RGXojl9dK2BEJda;p}vc>xP#>4(hBMYaG zIiY{_@F91vqU&2r4*vx@knYouAF{eI#t%8q!NX4-JfxA+B**OM0|&^i<8Xk^B^;a^ zg9G$w^x721uaq2qhWZbHtAiQjBx4U&&aA$5T3c613ZDWj(N7a=8*0$(HXu+?wjYa9YTgXCkjeOxKwD%zqpXpK?6#bc~VD+jdv zi;CItc{e!z#q@ssi^<_M2S?xFE?f5z=)}fRQd>QKfF8MV!Hx9Nh;YESwfGkA9(w8^^sY?b{yU(jvPd@=pHnCl|03%RCq zbrpGEJ9K3{cIy!AR$@iHUSqfRk%5|>j*z@YK+3#`lMe ztt$&p=0A7-oy4;{&O>>2Z0{Yhws!$BNI~rr=w(B;&$*N}!Ap!Cc>&`sKM}aF{Y2xt z$9)xL3rC$6^%Fg%K0fXV?cgrHO`KaO72cwl-udvk*!+0y@?98za%y-P-wP+gPYZeq zXLp2}xLm)@A;#@J_;6&VcyFrVA8w?!FQaZzL6Uv0KX~2-z|ruf$zp`X9T;}sXVkS-~YG=PsXP> z(0c6-#_KRSS!=j!Ewh%rm@aH+%05rt*147|a>!>7M*B|fsUpL~8_--V{sSIL6D z`s(Hya{KDo20g~jwhf9IgNqr9i|`>|$ef8Yd!|-1X4f%R*K(a`&8BNxqB--Z$9R#O zQ1j;=e85?!+G`x(mD~*jIBN$T%2Tu6&)UtsyqlSJIySXMityFz<-0XFf1f#7!FkGA z!ID4G&pPE68W`xPWu2jw_q%B0T+ZHBJeFv$h2O1@4+>p-nxkj)`>blK=C-d}6Xrt) zE&ON7!KbvhK>K;~Mtf?OQ~xzD4hl_c=vt>Wio;p9{!q(ZKKgdnhNfg$6O+`G)J)9XZIr;TY>ji%NJM^(_2DFw-E;Ju>qP3v_ z|9POzCXFTID4coz%(;E+Gp%#ha^lfDS)*btCv8LOvOouG@_(%ruW{(XY!{LuzB+booi_i2+Ayr{ct}q95vOJ2AN1ooDs6lClqb19|VH zif@k!zt!H=u#NxAi>xK9=$Bi5BJau;-T57c=pn{ zmtDlYkoyhX=X0;-eh>HTcjw-C-hkBWfBEkBZ~Qg)!guH0cm?-Az59b3-{3y~-T61( z#{GkLZ@BRg_j}&`-i_YI>D=wQ1W#?4KRS1$^{nQsiHQZz{vp1qGOurY_Jx5Lve|!~Wff#H z-upxc7JIC73jbqg-D#Wm=X|>^EmlbN0{u&KPOjT6lgrE_Hi;r?pSCx0*d^ z8i#q#H|H`2uIy3F?DdSDzFUJIL-#4p7x<+%8&cyGMHb%BHHZ1%2avv)oFLhA+LTxB?m zCPlH<=uzqiY(G4Lmx9!meTYu!A?#P~1Hu>BWplredtoqZz4W~sPnaqD<=(+b;P zd*sQu`qnDXV#5>5P7ld{+fp$!bYQGiFWy+rxa;>5+@;I;uphLpya2;!?#!l$2Zr&cV+VS|n&_=~=BYRrPiHAVuw^rD37`uyxh5iJN z+OH^TY~j0B`WrVbSn>fd-XV8b%Nd28ks;F?>(FUhhZJ`1I;pU8_pb^%-~UZP=lm&i zM-LovBl76`qvwkUB9~f!Z*{Jm0x#ru0kY~ot&PRNeGRx>zp@%TXort6UnXBTZOM`S z@@&^SKkwkxW`B=#i+}u)yndec=X}toVoYXA7J1RFkvBeaVOXaGI^%wP@!~9Uie$Z7 zIy%682KNqN{tI|lJFqP7g7@dI0IwK$S=nWy7o(4;-O|Yf|G$B+KJ>2RnXg!fp{t5P zn_9*PriF1;%e5HRy0j*IVU(Rl2F*WC#A5n zW&HHUMD*@RW?=_$tsSD%)?1*@MbPI>g`In;XJ)o1)K>JZymDaN>%Dh<+wQ`S_Ku(L zT)Oau{mMg-`~IJuB$fuu=C=zRh_e{zIRL0w10hE*!jPo7IuEvc3~suj(=tN7r#F?IBoAagX?#lG-&Zh=OEjDI$&|+NpF1%KGDb-af>Tu$2EQ} z^b5sg)R2$ioTh0lgM-t=^CH(GKf&Rz=&ydi!Cg2kHt`w9$5LoM3xDMf{z^w#n$$LC0};-B{51 zzmFGmemJYB8?UnpzZ_ow=frru+QIAHUl6ak4oGtkq<8Gd^_oCkN>2jNiKG*k#EfC1Dj)gW3Bi= zg`3aQ1*F^TLXNZ|M|L4I;*1=bH@fvjtF!gJrfJy~_f2hmuAo!7q9RvpyvFzD#`MUn zxW?A8o=$Y2&clC2pFQBcDXU`5)Ce@V2RW9zmG}$Wf3lTy@C(7Ub1z zbgg+`L*G7|GbFgibA6rbJg#%O&f)qR*XQL-l>TcWljnlpZ*%>QJypfoLrqq@pH^@>B;T_j(p&+vf@?z3tF-uB5y=NHuf9(i_*7(Jb(s~mHW?zZ!m%7&}F zCD2&Oe&pbgfO8H)aySeQTG(6t2(t4L{CkpxbBQB)jQ3feb!{0B48{B@r|Ew%wyHls zyWBQNf6t))AoU+2H=Fj(v8K6MYnq&2Ob#^ir~_jK?Qr+>l{xJwjkY5xTlMl_%fM`+syGnrH>Mf}M0Wj4s zLSqM@P;@pIpm6@v>Dj^YXWnA1y7gyb0aDhIf_WLKD+g#cw;-fP6T=h&TIswg0X% zyvoE8+{?JVJv^zZ1^-JCuv>l-=&*<@SoEH~pRf{GzLhicDlKc$<=|*zIIgjLReT;k zsvU{=sAx!o+Hec7O`i*htAZX)d+!+(x(Jv-)_z-|KOb!_!w*Aj*5>RT?3*jM>UWKW z*1V!M;>@eqhd;P|aw}u>5HRPmuJ?}mQEn|6%6g{a_wyK+2FlmmOg=R5S;xAne@UPb z`NJMEY!bCzulXCA0N z_Q+$8pkol<8leuI3!!g1=}X!0^eSs0XP5ri(itElp~c2sj9m-geT0v$*};1oI$I8H zT}?l7R>tQAxm&gIhE||0@-ZHt=iJ>B)m1To{MJLrZ#@*h{xIlaIP`E5^gx{JijmNR zVqLxAcIK<>Ch2db!2z2}gI=yUE)SQrsg%5FbLdkOvR8aK4g265zv^0-kI%*A(jy16 z^Z@bMOmfHt(%PSEcKmRA$*jFdZ2WL3;RB3!X^QPj z%*X!*twjB2mxA~FK7499_|#s;PouW~|I??IW_)V-F+Q~%$EWs6{8#m%-75LEVYf_Mv(3p$W(G zq1k>fJ5C`Ed`?J%FUsG=JUMa}&+w|T|1>h<^fKn_rR>eSgj~n7 z7Bi2{+Ct0ZKqq!br!7;v;Z~%3YUG=)g(n_jZK_M_X~^9ryq|)s#NISKd^@~PIS*3C z4hZ>1l#V8@<7D4S8QQbcv3r}&JJ((g@*UAmqpOhBQTIeBPjZ>1}PqiydK)b6NcVOWwPOM_FBc|M$!Um`O+oH)27t*-=7 znItGCoMs?texL6>Ghsliw!i1S-sigBKkjSa$9?a;_B!pg)?OPs+l+<2@VaiK4dSZ31oMUpd^j_Zy5phwcz2?+RWuOr7UZa7lbmG8tTCuXb}U@&S*+JC;Sd{8K0= z#2NFRghxd3O!TjOp6i2r;`ICYO5-!Y%aN7DJA#vc;?Or=*&;pqZWcD)n-W|bvGL~0 zj*1OF7aM%cDoSkdF)vVVrd;}y@{OA~$KD%r&4-`oKDn?k=DiQU&b{Tsy}65{Uw!VG zg@w8Mx&IU1Q9Vn!KZ|qKHR+=xxl2CUmpkjDy}2(;Dc^V}-_Ga#(VyNqSN8Zdrmgz^mf2a$?D;Z1D(D!;%75q>S7 zMJo1{XUyj}C(AdHieI71yuK+}z6;r1ip=YxWcdqH@k?Zz*RzsKS!eQ27BOe!ZOA8Q zuao?8;+4(#gbpxv8Su&)OXQA+p~;=rn3|0oKd{8qyoxVkVsH$e=6osV8prGpKg%s* ze5wNXO#jMFwCMr8-4b0h3?7_~UtbbKBS_&n0_d8Fg>7{=Nnr*l@a@YUE^m|QTx=<3Echut&JonunkS~sMBW3b-}>wihPhBEb&c|o7< zU30gXyylL%d6aK{a`)ViD2qOsKX*Rm{!i|idyKLQ8L);j_R|GnK3(~0!+pB);mW5g zU$6MpJsk4s%Eue-)4em<^f8i;It6@bf|rV?I?a_N(T}2_pZBJ3_4B5he%@2{C+}(cQ)uj+@WPP(R1kwc!Myx88Pb)KJR8k2!Lz|E z<2@geTbwyip7exb=1;%r>P~7Kxphvo zYuSvxID`3})>yV;3;PN5P`~7Q`OQ{_+sRV1O~2VDW~Xl8iQnwZduz80&zjRVa{F!1 zwh>Pzm=hx;ndPuNwpKm>yXDcfE%;@zcWlc3A0M{ef6d`TbT$I)70^(zW|Z=UZm^EvLhhrMU8gY09RM-yKU4UF*)pVa8Z zcjVh=C$`b<-UAHfQ_7>R=11@+{e4m+_%qtH*WZJ^9((?0L$c58Pr}|8?oTq;12Qgu zTW0#XHyM8&6T1H5Yp@nSLr#cdA?OADP(8T?THCBVG#M&?fnYm}HG^Mt5BS>@)|d zv-aLtXYIui!C~XDa#%Lj^@bj=uei(rC(}|3l6N9EyI(XKSpz-*S|a~wZ?|%9X|1>J ze^*_nf2X>Ij}`E}J>nIN>pt2WF|;CYK5f(Zng1a-mHs0>>*YToA0E%XLC=xUbKC7M ze>uK6yQOBW+FkSN<7?Z7%fDosLq3VFHu#xI?{|)Nx3yUsTA#v42hGa%E&o!I=#1-2 zDaC^mg6oc7=^gOVDL&&B@)nxwTA_2!_S~{^yn*KTJkX_;?o|VtOG*fgd zf5liE{x}t?8GW+2fZxaBHHw3Of4y`iWg%%$(SD z;H4`}AJTcWUk2gkjF%6I^&EUFm?d%l2-oHwO=djFx7YDts1E#4FZcN7#w_rT$L0!* z#?Vib4^`p=70gFwb+udok15J-{D3$U@7OGV%lIsR^91}UHTYAO;G268-<&OHTt45o z=DYkRoKMIv7Y5h;Q31I2!RLu@|GvvArxC@c7!u@~x3=&}i!g)`k}BJT2E_KY5nD=>j&CP1zA+dt~V4YBMx2 zn^H1#vgxNi+1}7P`VcN81l#K*2IMZSGveEj?`$<~HhpLCiHvIb&c3M=RDxrw>-*>f z@}Ku>6K7XpW4 zxKvPwQBL?=yB#=gRD0*_ZqYp7`~KDV_Y+J+JUd^qB+0&RDt+ zu}gWU#|=quOz*m7b^3i%qN30lwV&NG>3UPfo%8{-XQHDJAMhQ4|9Y47c0151S}t%j zB<``9dx4nyy8$D`RoeM)`RwtT_|f_|zh-s+3i$cJZRL$2&SIWHj`bPHKrcBby?u}i z^i6t6^TZgp1=)jaSed`0y0Jj9xMQ7G&2MzeTrs;0)hJ z1i#(J9>{9fUiz`;YVtP@B~}}|tey2@{|uhfLhy`ZeSsN&khwtnw|k!o#2(y5ySD^l zKUN+i_QP-e#o7~X&?o;f#QR3V`<|USr+G(K<1hH9_?`EuE60gPdZ(KEQ?5)W{w2*) zy|(2yS^idJ%4}qc2br=QnUa2A4l!O=uAb60rN;C-<6mxFG7;VYkK|u%OR^hVCmQ}e zQGMndJ-2s5+wfiu&BVnt4-d%R=8?#YsEW({w_Avb>F@Re)8mSXMCO_>uOH{mq>p;` zQ%dC^9bycuDVF~WJZt&7`;>KxAzbYfg3H0~E&q#{7L)FlL~m>^t+=db{21eXz+o@& zo(7K#!DLU(%sF1*AsCqY1iD6v@DJTaa8Uj!#d0WGw6|a_YJmJ zbRoWM?}-ukcDndGe8-Ft=xuDi(~J@551-RooCMDeJX^>5y+m+J@c|8r!z>{$ngySr z#om_6+@XRtnDd^AssA)yaJIKQ$$WQ3ru$ZJK*v8*ojrW>JL(h9yd3!c9NsvQGMgid z!^P1u{3YhR!g68^5szFcpDTN^;h(gzkDB)7FgB+J z<0X&UD%Z-7t+hkn=zk#oH`xCH^nVino5+8&@mFNwuXy9O^XRwy5zHYx*VEQh=gkS8 zyx={@&f?_e;Z~Ece#|}ZmG}uYuf5Mv+p@Z%aW=7yIm9-m-vl?=*0;ljXj0WDDjAFwb1-x&d58~0EQg;P;TyA6BRzP2hvz){EMsV$R%7fsV z=AzY_izZEM+!HskaRT_*VtHuoXHgRy_x0l%ncT{CJO3WJ*XI7p_TzE8dFNqt+;X0^ z@oXjkj{QNefNt9v;m$Tzu3g8ojr|{4dvM95#^y)RZ&st<)Mj;kJ$_>2MSBhR;{J=* zR*`3%byB0VIOJ=QAkZGx@g%X7`RnoZet@TGI18{m6LH2&j?yex2A*S7@m-~Lb6O~!lr^Pc|I z1a9o%y8w;Ec_goOuH3L^!VwF40C;ys+z<{ofv>BH$6CeFZR>@Px*xb33l8-Mmj-~l zaSdIsMYzv|w{hU@wRYicU=K6l*dM9S#4+T({kec`Ca|_H!NiY`@ij^A3KwS5b{F3Z z=TpD~ljku0CeHyMz=L@v-$A$X5;uMr{m&eWg5K`tr|?Y?i*Zo>=R7_LpMMU=IL|A* zum9DdSMA|D@lC~U{D}LqO`H*iigo3^u0_`ZlRRK^4fOS6=>RjXN!6VVUrr{L=VO%ef9>| z!WF>h!;jEI&rny^4709H#&dn#=DPngypwuE@PDj!qu6TCXkqRo zd7RdZm^JK6_RSS}uJZcY6?`i^Hn?7 z>&q?Iu3r4eu4`L<(=lr7yB&w#JVefL;)9^&I^NBuEnjh6%zP@&u)nQ-G|zPTFEan( z@?W5mzMiiV*bM7W$@|k8f0N&5+TD+Q5m=);(Q3qhg$+tDaaTUH%JIBCVlC|%o za>F0acQhQm((u24jxrj*Tw0&|S9yyJ|5*GvFX5Z$v?c9u@b5%os+Ie7FRqcMia7RjRB^-Eex)>-khkl$2o`;y~8k;}i6wSp^bF*WbdU-_-) z(%)@CKZ|@UskA}u%I2TL_~&}|ZcL^A^}Q-DU4cJsJvj6wwwiA0ZpJ_UJ7DlKxHA4U zT=_k?atK@zU+&3Od4zo3_{xN{El&~m#$Lb^N?4m2YfNu>%4lTW#V*+fg*!&sot?t1 z&w{u$oO)#YU8A)^(4qD(UbolMPQ05LH}tRK)ADb@C+EL}PdEM_!ly*=X~_RLd@8qv z@M#G6G^7WgZUc}0JMrmEyr&*~^0J;l{736Y#D9p{X1n2&JV>@I@u6e=z>(8wGPzf=%2e1A9e5fSp+xbv4^!9(B5B2+hnh!~SXANiU;U5!Jf(w_alx{QJ=FTTy z!gQ^bL8rNn@*{MRL-0ixbD`?sx^=yG8S&22E1Ef9iXQa}`uPW}A&@R#OnvC>UrQf5 zfL)<3Qu6|GAUM3cv_9B5s4&^WAw6IEhU|hNy-hmK1azEb)<@TB|7Xn~{)9ZTA|o@R zyt^jyeYTx=B-VlLy8!$Dx!L|!axQ4yOmm-Jb24ldc{Pa@d2J&j8d_Kn+REIu#n#u; zvVpxj@M$o22-qqn+udHRL4bFfwl3^EUhEi_3oG*ex8T8jD?0dh`#2Lk8+l*-tFSST z;5)%o^N91fZ`x*o?cZallfFiO*rOZ27jC~OG;OpAp6}9mHBY;4m}O0RDsgxmowuKP z-}df_ahe;1<(wGeTTM)N@qkH<#fERJoxIC8!WYof-ZR*9^+W13&sbRK zJx%+7NOo)eri*`R9;|UxyY!zZbXNUG@s$4oEC&81Mtj}9x8)x(?&5Qx5%wtpuGqTp z(c6}-C0@PDl0aYCyP^d+1ne#eo*z-CxsO10MdL@JP{y`f}To?#0a4&*ugV=N7gK59CSvPvIpY@F8rTyHoyd&FlB{}1~ z!=d-7uEyD(>RrpZ||9^2TYelRL-X(_HKitxAqEvq809`$< zcElRkuVcb^-!J$_v-QlpZ+k0iNXWNwCK&JJY``R2&-tTb6GmsD4ZjghjPasz~Jbh*MWcVuMqS%$bjE&AOqLhtKIm)%3S2@Z<>v<>itmjn> zRf6a5)USHcJvaXq93$q5HFNQ%f9(dIb!(ktQqyJ1DG|y+Xa3iF^1om4p8gvb{BPQ~ zu7M5w^N+!Qy4Y{BSw4s0|1>Utz(12bPVVofkCF+?B(DPbgUGiGEeHQ6 z-mCKvtOnr+O8bugEe-y!06S+>Pal&!5$6BMPigwszP-J71-}QU%sh(QXOCMT-1zwY z01p4vEE7G~AmeoZL#|DnzBk%Em3tZZ0J@lyc5fjnE`MgfiXOJnjCj-74@>aFizqxL$a;a8>hjvSUGcQv-d6^2O zAKZCKKtG@#@Cof>wldWS_?8xO4?T3=QPxx_Ht1sLsG2-UDbK)Xkm1$6IS=m9T^-5Z zqZgj~{p{fPKE9tUABXam+a5IYmj9Z5H;*;^6&FA=qZ59 zUp6Ye)4S(pmD;U#wWVqqKYXo+@bMd89#&aCQ7xx&t-H|^|gntk6Os7q3 z2LImV*Cv{IzK`Y`jpXtI27^44cvdg|{YRVsy4P%e$xDO%Afy-T`Q<#{PHal({Y<@2 zoQd8~12$fK8bhFCeS0+D)i{*AkBoKTS&Gp(mUqT*_$C;QvR!H4%n|C_DDu(c%lVTN zJI3%y4VPG4{(&5?L>lc&&^hYaCpD2hEShQ09_F0#spp$8z(&R%@4D9iW^j-7jqfX0 ze+ss+Bcssq;pfEzxW?vG!@1T&iUyU}-zWJ?JM^v2)n2WS)ceTewn*lr#WAcI9X7P~ zBm7j(J}y7@HDVP9dk*oh0`TRR>@nh`O)hh7;b6~~Y8U(L+8MV?ON)IkleeW6Jhxi| z*PWf+o4diuk@QP)wqoJkzCEn9-pzLg{&mUEZsMf07AbFi_haG(T9dApj9cfa@% z>+&8w-fhO|DX(Ka?P?v#-ju<9yvx75T-zOzXG6^Vdy7tJ|AiqYpE;qmJj}zj=Jo-# z6&%DCz2y^)2lrd}HVu66jyL?v@s~#yr)RcoxT2v2JW>w66BAs1`K~69`0o1WhSd+f znDyIPQ)roKuT>jMuCChk)|VSQmOZz#V+woGkx$xZPYwKAduJ&>p%r|2hnT*jeXeZS zevbZmGH<-j#XI+?Ph(yFyx{+QappK}!B!cs`?}V?cl9ft>+tfgz`l1E`?e1|^v68rf;2qPq~D>Q>D=EA{w&k8KiK@4&|$^Gu|DbiAsqKYYbjm*+U1K8o%n%`?8eHy z7XFVM>e97+TYyi5{xLrI57ig?kKP-&&1TY5EA-pKKU`($zCj$=DBUg4VK?-j25y@B zR>T?$Mrv%J=MnU|8GbcfCHhG!rQT8Ow0D59AeHw-FFWA3vNaU2cg#TEp-+LmW2hrO zSjT{19kG;$fFo<$Od6PS+PH-9|4qFg#Qz(WJ1L1dnRs#Ws7&FF-H5A!Z?N9k)bTcj z&&l^tXV;=U1l(cvX z=~J;auxZFSxz+7g?K+^|mgs5{Q}zHAN3k*>bg^QtKYsF9)3Ii-vP=Qp>$m$voSlHuS;bzfskG3P0(jmARi5dA5?)gkCvmD*8^j;Bgm%ol#DQ+;Gp}*g~#X;^o?#Q^Bt*TwBG9YTzB(Z~h4X#I8vmh5(N$WxlWb2e}W8 z`40jo!R9%xwRXd!lKSf@Q%qPSdY;j_34?gglR7v1KG?HP=VqS=d7jX@+1CWm<2qL# zgM6SFS~s9|3$*cjo^U2nm6(w3TX`n{A&cm?(a^WL)Hz5BQa zKS^0?^(R83yMav`>uBH$dD{mh)(mAI@%hv-fA7VCbpaQQb$^VWImG7j-)S3KQ*Hg3 zub#aQs)t3qpJX97FECd>#Vb;r=&;DvV%{5Q`LQn(oDAeViSw{3RCA%xfopPGa&2%O z;$N!cl8>2#qsLcRlYQRTZfY!{p0vv3t-`0kcY{3x|8DLN(qD9``ytruMt?>Jn*PMZ zi1&}8v%WHnJ-x{Z>hDKv9K7HKX#ZMhe>Jp!EwtZ)E~)uqi_MWyVs*Sd>OS_=OK@c_ zgYL1VtSTXoMf$b@?lB4WnwPNmjHfU4${AsaYtwwF4*nR>kJ;Ovz7+He@5>-hANnGn z6F9S3@1DbW)ltvcl$u|h%{O(qM#D?ku8z^y7Y7@SFYwRe8QK0VDzW)C{O2Tm07<15 zY)?k)&y%~cEtO*bX|W|`bPr%{Is7~lT+rHA`3NooCdARQw_ZhFH@cd5Xg4_4ozK2r zjP*R$?_|uoe^n{C-WT07^xc=N^(b|P z&|2h}FMj!7`9IHmBX{0{H*#ZHd+q+^>-oy-sx`@4OKq;7{_xh^)DMd|ZsxctH=8xd z*{tugu_im4^?uo`O)ez{VFky={ziK$a~0yp1NjSBE1d&f!H;WZlLvGnzIB^>ceL6v zYv617g*%IK;az6_f;4<0jN^3WaV_S28Rt&lp1H;^oAO=wMYe;-%;~U$%h#9Wxql|P z$AND>a4lyJX7s;);d&>!27AzV5$`JA<8oq01kM{$&>02i7-Qac>U981$+vfa@r#39 zjlY22yR*sNiXAibY;%woO5R;dec|%%YOYx&zuCoc*w(k9{<**Hsvqa=u>Y;_XXzY~ z_;V!tHq1R$_C=p2`|9RM_C?nYg}2{}%o~jCyCf+4299v~|BCEe4!*Y%uk)|UzUAK` z`;2eMzM-DmgwM!6JF-u0lAH$rR@s83+Mn}pwkPLbZqH!P|(rtH$Kqsub3)*tSEu?6{%URLaza=3f*fm`)Xeej($ z^PMLc|8V~E1-h@JZt;5c-^{pvo9rkUMcIs)_Z~NU_*l3k=pk=@HcMXp}-m$E6 zf5&jHtKb<`#N$-K18(O08P1=v&q}U}pO~@~`~Bs_?c_1ML{kbLm>4 zc8%p)I+3o$e@1bwc0NX2@m(C(a%}INSYx!`_ra??Yfix@fvvZ5gVA_mrr|$cMElV} zWJfxL?sRy#;V&k>c{1_ME$B08_odaEvCpiR^z?WVBQ~R+SRP& z8jB`&a0v27{A?<+OS&ICVVC;jFp82BqOr9w)=BuNHE(47;mUFQE;eI{rQ>hORzCS5 zZOid*2>ydD%q46IH3f@j_(C!_7k*lYJ*wbI%lrDb>|+1;UH4=1S1I3%`aXkiCNIhN zwOonq!D8Q$wdDRe#$OA6Himdb`_Q^vmo2|j*GAgxfuSX#HSM@Xmm|MH*z@8!_2wV=uXy^xJ}zb*=S$O z@M#U1Wuvza0f*j_jtE{17yOy0rkZ7(Cq*UWf0jycWQch`-ZRK72Ydb)XY$ltigmJI zVr-T?6Yl*dal_J$n}N}uk<9TvL4O)*Y!HtMO{JAC z%(SDsO(|KJX~HRba7{YC{TAv=2Y({5#pRqESv#eSxe2-ydc)=%zpJqgxaC`-N?Uih z8gqyzZH+N5R(s%CU00P{k{M}nb=ARBT&xp~Mo;OKzD=D&sZ;j7>*m{Q1*3Fyi?7hn z-?7BG#k*?A1B1NTC0*@g45Fj030*sK5pzf*vdu}pqqi5j{29pa9mpE(O+05_-`Wkd zu?9K5^Ef#xnS+d^pBriGI!kovHgH?=Mf#rjr1YbkIFz$RJg*SGHp@OSrNWq$vLYCJ zI2r!tpzU_bx3KeOD}M`z3tV=>BU=})*%kTxvmH5mKJIAk+TW2ye+_40aw+<=qZjju zo3l;3U)s%9Ka-5j8qf1eFUb^~I?G-DbKzgxe~3L5Iuj2Pt!=YjZqnL}egRr*`hlw} zKx-w*kAt_Zz$yn=8EGZSPG~O6QQSjYs?z~)s2=X99c&5ESPQh}EW4!ht&4-S#{4v; z>=K{wL+$BXcF9)J-HgAD^(Fk>v;+26`$Bj(584yFT8F#*ZP&W|wjd1826mTo2zHVa zi|v=ED86-l#N}qb8`(mNft%_oIT(-?>68V)&&-2E%%^nCJE=be54A_R^3eUwy`kTt zzoL)Z`z+pdb(tZiRkN{IO~qcN_m|V}lK%Ja8qM`GkIvQ4gJPHNFCmnhKA42Uxyhi7DN48jmUx%s9@(qeAh~lYv)y zkVmzgfk(B$qoUwZQ{ho<@TkHdkE%Hnj{=Uu(eq13Wr~-WvZAef`cCl7Uo@@ZFs1sO zV;iy~-(qREZS0<&V~aD-pL(u)dMo;*2Yqrm_^COb6@1hCBy)*ZecFpQWDC1cIrHYb z{6A2M&H6mEjPqnrN?&uIz?L>5C#76AsB?|!_Z($Um+Rq^)FWH9x&B|@z>^MBPhee8 zk|$sH@=v}qQ`gAv(DUoLE{`$V^^c=P=p!Qn@<#0p*+h3o-M@?V@~>dG{eo*#zRr3lvL!pl3Q~ zv0un6_7a&jH;-~Z<$TImjx`*=xS@RGV}-9i*U0-@c>iO{k0?)29-|z(s4#cnqQaOh zpBBv>x4UTWN0c)tk5Mk79LVtm$KyNa<^E#l&ADrL-jVz0&RcS8ch1j!Z0D`HPwc!i z_m?|=p8E{@l8h*&joP1tazEv*l(D6SF)Jyb88m^|_r=eR*j+aF*VqW2{q(N6UsGPQ zd*R$4VvG3T)4S*1NqN`qMRR{odF<1B=K3ku?!I^K%svBuHgNZXxkD*a$yKC0YRVI* z+;OSoD@r9FULeQX9hCQQlyTg}aW}^Tj(a&4ax6+#jD6~nz+9;A333`a$~y`k?3evuUF$N5lWZYQ5tb>cmNnFIa>1R>ZpJt6q56>Gd9>-biRKgx~k0 z`>DRrbu;xcmoV36txhBt%>DO$@E~=e%gHWG&ZMLayA6Iodt}2Ct!N!>==);6)xEdx zE??D#+$}{vDaB599`>?mHB7M-9@y?#qo;#M}vVG@T-q>t$Jmc(Vk75 zVHEGZ4h#=7M>xt66NI7fgJ}&R7#zL+s)hw&@7Q>!JlkjwJr|#PmGO|iEcjo}yZZm9 zlxg6Q1^f@`yv42eu4;jIrdJy7708|f9@LY{gQhFQ#j||8t!FRwdWdDM{=L3>d39CI+`2%z@glts$;qPs}ASB zS>?+GKiUhCZ536`x$CR;=2{-ulUu-f6UUyaJ$%ctwf$!f$4$@6h&pNrs(sFB5%>iIiV~MJf?ztFv6|qid633FNr*ey`>vC^;+Id0M z&|$enPdjffqBN@Z<)&7BmYW`2r{kmz;s36X&Bkiq5d}}G4y*sR%UxTeIbN~!9hv^; zWowo1t`HsB!CX%MkK360OAgL9%S2DHStfXHp^U>vC|{CS{>*141^k)MMEK3?2Cgkb zY8(v_ihJqtX-4RKe42akX=?tE$`P`iDwm!?UP>dgI9YXAemkklnT8$dw-H@i{M|{y zp&x@ovXO82>b_NNwx}I~(+Y4$IU}D(|9aSx?0bG0WhG_*EUr_0&p%EHeLtU?&9&iw zzJanAB+g|UScmO9Vxa4| zlQ`89Vyg8`D&sBsQ~q%A67iHF@R87YZV--Mc;iU=djPtdW4X~cw=&=N2)XjU9A`8X zRNmNG*z3y9KXF~x%b1e`KV0Dm;C&YORj=BB7@!Y!Zrb^ucG3BNH`ep8?+|MyVbC zH{E#9<%=Z`7k=L!8$}BH<+Q@#a(mgeiNUy zJ}#%y;)agjFGu#cu$f(Dndv)#EhQRwU^8f2PTiFYZ|l^Y#Ta$90jpVMvrSkPmSuD*j#+UGFR{mq?8f-} z^JL$uTe#3y&KT*$5^oXKH65wL6By%pRZbC@_M^Eo`i0l)ZUn4`8L3R#S9 zm8JC{%@?}|fUC53v=`j8lr8L(9ME_^4PGnnf^+El+-aPfc;zTaE`DV3uI)$aJJN1^ zx1;*&llu|g%sZXXRe#_hJEm!8;eY5UrY*B)zE3}iaqoNro11r(Y%Ld?bN_Vpuk7Nj z_{sZgFZFy|Qrj%*OtB3qEoE%%>?I)lm48AURUw*OLWEqh>cPx_~9^dE38S`tmKJJ)EJ?jYLG|5Ev{ za(HJ@R!6xy9N6r&4!)Ya=q>a&W1GeF&$Ph5Bu8aOlio13((?XQ+l=>bn&!G{CC5~Y z&3)~(-B(@5x#YEE^{fZ>=Dzm8zT8&!eu96s7lI#>n=X!mF!{Nhe?@_J2l$`;B6L0Y zVARqqUx~$0BYC+V97~J-WUZHW+QGY)t6l!MRP5<|!;!aJOHS+J!ex6`n3d$DnQ$D-5F zr$}&1W9?;6uXx5Xl3c8kD}7nJ?a`|RMgRfX4+YX^)dEQ*TR=6ZyzaF^ACZ11Bf^@J$`08$g98y%nd z&yJnwO$Tg!cN~1t)v%HKUvcb4CPuMVr##j8Z3AtHrH+2s^m3w%EwkyD&fCF-pYu<} z9`z%xCYJcq3QKIwMOK?TrLWOmM;wFG7F%O^FF(`5n#y;HO>$aibnY1uUz=)|JS|KX zKkFA`yl*t;XBwe*7SHT#<{eA;JCVlws>}E~>^77Z@hER7V9zF z72z6pvR$mRIK5rK-LSjH^|UL-)pdq;xy`!zhSfFr40Xj&SFCGX^U>}xzd73dqVt?n z>*~w8{7uN2SYVL@Kj?o+JU)j=^g<(E?Tw`^7tNv$;?i8ue=2 zo00IQ*(#xftMJ7~PJlm@-MjSway7@&H)=fX%*V#q3O+Q`2KI=^V^1A_aKDr} zmGsnT)&i!{Ht$sYnZ)!7_ri6lK>Xm~wr2E+ndB(;mSZ91pm*^lufCro@uJB|$VN&heVKID}!FWP1 zh=QsO&=u3GT0 zE9etN=jA){ijG#CQ60G(R96J|T)yrxKcFrLa89R>qlje))ob>Vu?g>^@<6DM%a8u| z_p#zopk1HBi`2*Z0ZFW}ASMr;A*3rOT717(e9a5UyaHmUepnw^8=#ozqwU@1UX`pD zY+DY#svq84;io~^{24fz{RbD(o!*n~^cw$ie%(E~Vb~Q7t>6~1MQ!$&|meu-D1uu>Vp2N80qP0bCVCmS=LxMmv6BeA6V-|_Ae;8JCnG9(E)#BVokcn zE7*>=Xh#}0atpr3?dYNDL0{tpe2pz*mCs_`V28~ZEB&KoIJ6PRoP%@eBE7JcpTi-4 z)SDbn^}QnH>DbFtUbSD5BK^Svudhb;QycJOPM^%V_;4jYDf#xK#}^_WL+yf(bxCiV zQgU&o6E2fX;7(zpS%4+9Kf_cIcY<&t}o}a$o_SZ54f^ z6GrW}I@)ruZ#Z}dc$n|J4UbEKu4`ytdfDB)d-qm!ho}kMYok7^r6_qghq?Zp{th2B zE4ctaQTDVV%F@6(dDelGP`RcF=)0*YgY@`Y4-(vo5V%B`1Tp# zXx?8Myic4Y_OkbE%LKQg;Zz%~Nd>OFhK%Dn2zr|*z|UUu3Z`2QpDPSvH%D=TX9 zwm)5WN8q{fyJDX8;`^sBy(xJKc>rwGYfvgaL4Ms+^#6{N`u}Ht0S@RHc3@gB+=VBY zxp$Da(R#+U^nU65k*DeW-V4At#z}4P{F!&JmyC$?XpWVZ8d;lozR_T??lc`9+=3qR zG%-<%120EkI0lZ7Bo;*W!(w!c@?l2%EMO!1q4=C^G^HUM4Q*IaX}Hgyh@S$zRJu|Q zww9(Nwyt-A_Lhx2m(9fq&i%%czcpkRWAC=nm6o4%ZoACr`b}2;R$W&x*KB%&>&nyL z%kSJa&C>OoZK3z_JDdK@wZ&!Ts+L|HsL$24?WfkR-}G`dn)Q)0sOfXA9jCpA{Mk0g z*7cicSK}kcyGK_eUyD@Bym-eQ}T5>MW@(@=&LzD zW&Sr^_O|nohd>8mJbZrP;wY2@Sz<&Y5G+7d<{OtslXTA zp)?gfHYI^Q(ScQSB03-Q)~rRvou=-GU(dBDt@AzlEF2R4g!z02Dw~oWd zWvh-_1V6)ugMVX}baXHB*&d2R*@uptx_47)6)e(^(IU-a^L; z&F2pd8&Z2WaQ!{wFFiaYlai4qPIQQci?tpx(Nic{Wsh?YeX#<|;tbC!tg`kB)#}_2>@7FNei;vu_u1 zVGl+J?2jS)uEtY#xRnjvk4erlub8)id4c>ASR~ zrWm$BeZzR~ztms)5niA9UP^q=dr$J;Kk!}??fJ%gV^6*}i}zko`}&;vUJuMC#k*CP zhj*mIsV?YqOf>M7O-Hi+ze2F~?e7q*HI`39A0b!?E_WX59;4VYb8K&ncTXB1`-yS# z-hz1d1n#-Q@2!bhJUEtS>hW{U+j)l-QnLr!@Yvvc=<-Uknm*? zWg6e=yoDH?68y_faA{jQagWx7*{MV4CI{{xGh=IqrOo2LeRkGR^getm$dTCw=RG{& zSU_*Ipf|F1Z1xX^79?K>PkJ<*$H0^J!n1q6@dt7%H1SWtFsAQZ_Nxi#xF}3;#oW#-P1T@LA(3^eS|=fP12_YQ|Z)Z z+n7((GoP4Ta!=S?BFUUfgk(qyGUQw562vThV=jSC`hR9FkyLYXE-@CnjjO8%mdFD2 zO?^H8w0VU&hoH~l<8R($e0uJM%{2^g$zYC>LoVx*<>)EI<`*M}C-i4+DEI8xL2D?D zf$Vj}n7gJi*0O*T<<&-Qd>%{CH8#-*LZs`FA?-$c1bAIwl_jKt8$Jy5@q$5nYhBp3@`I!~_ z0nZNctS|E<(c3uc>gg}-8O?PMAH6Wa{kK^5B1Wg#{89IquXz@-+nz{q`H!P(KW9fD zLEo8*y~5PO0yZT~NBzI&_z}!SS?3cWx~X z>MqKmC|I`0b_@NkMn}BoVOQgA?(WCz=yYksdO3nRoqX@I(^jAhW}piZf3`UToi5*! zWa@Nj=ydg+-D3(C-H9$&oIHZKuDchF_9+LZ+J7f8Y4OCQNvAswZB8XVQ1b!#z?iR@ zzDFnhP@h8YsBZ=MBa4|Mln}opeONy6a2x*F3FRBlIqTKusa)42 zRiDqzuKHqbQPuvr=-2J*>8EV>h4|rB%J-cZ^t;1*rvC(Yc+}Re(+_*v>)U&4>%cI8N?mnEvmh zz+^sgq1O@@x|+Dq`NV~?j%{U8MO07*CVH&kQjTKQshjyy9`n=pGA_&ZAE11wB->nf z8v`yJ#BY9(n3b=I6>TS8u0Qc|*AOq)4lQVovFC3ieGwmz^kKj2&-mdxNNlT!2KI&M zUDC5y`C$zslA0fte>H?^@g{x z6RUUyv5F56t9S*mil5thWxQeZdi&S+#@8;5cV#X`*1jHl|E?;oZ>G*(=&Zly{+r0o zFKoRts*K)m>zVF7z`Nzd5k15lpf`Q~+!mD~n7+w>b{oCS_|HBIZ}F`&`m|NR2X0+J z3^F))xa=0+W05hnhl#1)48GpwBOVc*Qn880h^2nTnqmJ_ZA{MBU7@ZJr3dID8Hz_VB#G4G~yyQ?EP9=R53}la)icQnRi7DCs72tz8mt~BJ zQ+BTijqwz#8P_kI$Oz+8M%BFJtEg)Z{H_$*X~UNzJ|&pE08H5Df*5~evv|3DbCMV3 z1B`abxV>BpHba4np6i|m8odPGT|)elv&!h#ioaWH%M?TMP*!jE!`sMfnC0qPk6&@| zHCbJ+Qf9-qQ*{hnoST|f7?V2G8IwBDh{>v47rlbKM(k>+WF3U>q%G7&r!Q1ri9`wUrR~u_u zfnn%hDOrX;}% zST!?7d){(&?PZMi{VmIcZO)&Uuhln6Xe?5> z=fq$781G2Vj>BFR;{Q?Lt7tdG=U)B8NxJFX+lZGu7q1hKl&}4RzSs~J1bF0B##;Cz z+jly6n!$77YA_bi#MLI~&>4oSk>rGuy*J!eF50{zNTZ_JkiEQbU*eOQ1IQnoo{EoH zHgaspiV+}Ic>2Td=Vv|-FN)#+??8VC;YWYEEVkj{J^7ieXYaZHCx^waXYWQ^{13OE z_RJl8_6weo*Y=d}23Z5&on<9X^0a5`gU_Dfnd7u)>9)Xk=i7*m=;t-QZd$ajN9s_1BCJ&a<$m55!Kieczg0_Olu~wtv36!wYRI zKfU5l>VNyccGV|t?(ly4*ADwf*pRs|eY+racCvF?X>!F7qf2wIbyi{^nKwK!E1|Z6 ze5O(M;^gX?uEy=yjUMlVeS`VVkP-M-SbKca5aKhDn;HM++WCyIweuGT{mzq#*BWd| zTt4~Wy&n{Wt>p(M_=*R4%E0$#+EN@hxMmRZIxBr37GM=|ZL40wmi1^9aV3=U4Z{fj z<@^HSzVJ(eZK?+@36{aj>*4L+Y*V6VdQY1YY6b_}r1r?iF^JqX6Ku?74|h-hPuA?` zb3U7M!7-8e06G5M1>J0|Z7v@PnqtQ0TwP(9M{-(d2%fG??@dNtQ>J}V$s zP2C85R}6$`rw4bDO;23ssI3Nf?eu91GWAjLcJR4@_=rj1tO3pnKiCAblXxunIyr7&jn-F-{}CIq3SPVFIC=gug4d>B zioWRnf1Ux4|J`<8dP+NoexscMx=Qps71mCB5Qo*4P`mz4>{B_oyIeA0(V|WRyQp)~ z_|D1Tv~;^jaM~%qn0Y^~Q@JO?$H*Q#%k*Q(cjYGzCw$Bd;OXAg0%eE+hqIIjxWEZ^v0jVOHNbQu!jC9-W6AU}{-=KM>(-5#&+=a_Mf?1AR1XfLr+S5%FT0BRk=L z$C&>%$K?A8(A}EQe=55(`>~h=)7-K@VatHhO zq*vy5rU}=@=Svp&#OK>inr<{N{3=51bg`E?;b!Hx*mZA^DtvOWbcG0(rsF#gqr5h1}p? z?DnA?2wvcnguW)+9E9BXPk8rQc=rr=_Y8P<%dLiA`oyteW`45wJF#)J+=?zre2oho zycS&6`C)kYUfQer%viSj2Gt(HFRyhC)x=R5CG&l6kyA3A`xfHIT=en4R6}|HO#NDI zl3jZTwl38%lvuH&!1xI8-eQe&AG#LVK|RaL2h|#U-w;+;(*v$f6Ncc;U#L^KB^&Dp z;71Dm7d>h%8(?b2GB)+T!iUZdzmM}= z1D?xYv?g)QTIp-5L+{sFXZ`9Ma+r1`7z=*IT%%38xz+~0O)d=KWhZ{Gd-0)4hXz*% z$d)`C+Q>;AV9p^Gzmh|{COBN}O~7-iCEr&{8?w;PL;jr4=$q)+{x{dcHe!HfuT1M- zJ=lr=OY1(02l~dAP-ps{{%+Z0hOp*kzKvYJ@LlDeijaPXuX{GKvK8O4@b_QIQ#d;; zt}w)V13Yc8$-`xyk8y5<_dq zSyMrtLecuJJ~nEX|r$`8y7AlUkowd%pJ^q;^Qn8Yl~TrI*{D6 z3S63&wu_$*z4mw&x?Q948O)&?ft;y(Q%&Na(^;8 z*!8~prL_~`-__~6K76PC1;2UvJHA=1Z-9YIvF@*rbw8r(e&ld@QE`*3(LE6BUd}yx z65~W4lqXm1jw64qbH25qAc~kHWQ&7&lJvs#r)&*rPenAOfdgszhDoy)Xf}=czCDgP z5xnG6a*emZ)6#wtjF0uX1R9$9R0Ny@?OQHkA$SiAJ^l;cj3?9$vq9B1gXAKQ@sAJL1RK z74=+pDy{j+V9l1+=#*wL-zR?T%TX@>M$YHbr+(8a^1eon{1`cMA+bLF$@#2xFm*Hf z*Txuz->5d`So$LKkoT5Y!!J7^_A9rOn0MK-a;T@Y5}O;xMh?ZXH$%fN;>zm4+X4&u zgy^?n^s6x{?C)E!-&^2Ai@9$zZ4*VwHzOk^!#C3DTT`_0{(AoH_|5sSfs?d!ahtK#x`5OIQp46nOC#{V#_1C@wC_QL!t7HCkeYDZ_6=V7iYpI{_9~dK(UkB`d?ajdT{6!^O z@wJWCy0E&klFn$_w7z7v*~eLnN;->}+c}Blyc~P2+T(zi@25SIP0_5)68=x&h~)om z=tgQoG&r{LzR21?S)*&7Q(KlAbDBrJby;0y<)zYR)P~aa@~I`XHKTX*HQ(*ayR>1c zYtECE+b-QZYT0E6S#u+M>X+D4<*VHr?b^7va`C16DwkaPb$^%t>k)>ZJsRIXxSqA8 zl)KSg&PN{aCAQFoK2k+nweDjtaCOo42(CY-?SJCkzXtoTA=S*uly{W5!1ipzJ(|8K z9`KlKxDRBTw(4cbUGtCJVYllx{UMX-?uI@R+P8YymjJia(-H@Gp!bkG2nD+{jdhTfriq^5kXBqB$ zcz*#$EU=giPeg|Khc39pr}^bx?Dm0ptf8JmQv+*cmA86V4(sZY4F8%Z$rZ+!Rj@AI zV0>=l9n&|VypR7ez&#b-BEI5fKLCx9a`)SnM?3+3M!xW3<#N@UpFysLPT+CLQ}8cf zqTEvx#e4k9B~Pwq7xJ6+QiZH7Jxm{)fQu6zKOWv2YI7oO4(XuFtoc6Sv=fx3%Mjf3F>$f6@+g$S$kpmS2V1a&LHBp6KuX-+X&UnEd45Ys-WGq%DiF zvxnL-BfK47_jkYaZS4r+&%Zi0H~+JC5HA*LM`n0CA_ll0|F(9F2*9K6i*6G~iofVS z1xJ>A&bs_F;P6E1Gd}O`!Qo->4dLf~eJqgmNn3VEULS>4wSMp}o;SmL=c`0tJ49@W zpIDQ_tjRnMZqG6A$FX1gAdjCIzmij~hj?xdUKa(wFEq=+o_v+a_MfVp=H*%AK5gPgPW5TOOnt@jX``F=;ymQf2>08*3O|>gCDI(V0>w<7Js*00|v7bJde<;^p8+$9u zH)z+tI9iDTe47}+sn}km)5}L9I+4s5Jk`Dl@}XbIzMkkF_|8Wcpl8^T&x)rC_!;aq z6&@7$Lg^`|XSLmt{= zG(Pk>@hc;YdAFep=$(f?XTJm5n9v(r3^}jcMmpHDAd)=`qQL*Y&_Oix5CdKGW6y%v zhA!sulEuZ)QD|QRFFLg51CBAly#>aw21dCh&afxL25>|;^dkFYDeq`J{a0><3e7!& z`!RIU7I=FjvbKM*q_|8twJ1;U_`)jS`x|w-Q!Nue! zRhxr*20eBm>kHx6vgeGvFknL%g>EyLZ!($h44gT@eGHl0m$p^d;%fH1ru}k;cveu~ zeCv>!L(E~;krPaH1Z>*&whZ#swXpBan6f*4cQMERJQjz~d`Q8YA zA4!a=zK>*{s(*jS_bXG8+kL~ncLcwePwIPozbO@2+X-w!|F;Lfm)-4qeUFSh5cd6` zVE^$Mow5G~r}rP(_DR_H{2zN0aWlX`cA8_@d_&{<5;lxtXw4jZY+j|+JpmEwb}F@0PbuM*!0^s7-12KHuGUe%^+2Sq8>Y!{E0)Hj@rW(W6Q8$o76XruVAEc608qnw;miE_cfd+1H`1-a)oSJ+)yiS_ZdQZv_BgVz_#E~1pVv1v zyuKmS$KFHR*?XuuxE~O8`iik7>L2Uacjtuc4MprRNB^zBeIs_0L#5dbqH&eQtWW;d ze=-KzBkBkI)1+DY|2p3_bHDgEk7$3H1@i?1_L*t58C}iLq$RQhx|1ASwz5%n~{|4~B*8hb5$($(u1kVb3=zgf@;a;Nqp(fpz1HYEj|G#p8 z`|RNVr<~#cC1?6SFj9Y6eAn~;Cf3o1|M%xSJN{HwL!4!3O}_Ze>HlR9hu*>ejy&zZ zCm7>1?qy}-%V7RJ#Pfmb5B9wYUBMOB=WBR&7kxg$*yfjx$z-nOKLzHu#ku$Mj_&p4 z-;xP-BOwU$Gwh)i_TMdG|82JGzX?Ge8|N9tvresHud6& z;IMI6IV>CoN4M3oCL@CV|0uf_y@EW(@BIMwNn&xt)1;3%m@}skFSVC*>0X-CGCze3 zD|U4)+Ey?9HC%U%;eKTM{i_bL2J>rd3Pv_Im$#W)!f!mK5NPd?7iq#PD?<4F+QwV8;Yk; zd{(G!p?>XNda_?p*g^ujWgtdNHdw7a&ZaK4r;Rzj>>39iWZyy72$Wj-&Q7NdF6`*R zST56#fbV5F{v1#PvqeI66FH8Iu_0hvK!zVFXI z=Y%09QQPPD`{TUM%sKn)z4qE`uiIXG?W)>2=yuwNKlSmd+Mfb{Gk%Cv#wLi(Z)I8b z9gJPcAZv%_O9uN7+R@h~BP9=7r2}G@q=O@z;Rkkdc8b<(R=DSp<>S}51{%o-q_s;2 z2n8HGDkd!yxH{5EjFj}GH0ZPh*`&Bz*48@O@hy6Fm%*>c!<*-ENly+^zx+f?R-R?z zjTO6_1DwR*w`UTox@6@d@|O*LxUnGA`7dbWJ^W4w@Bxk(JM`f!=tOH5amd31cV|RY zkNiwSfk!mePWzeiPkc4UK1#pa=yMTz;b8pY^7#+Ok8J*PUfSGY{Kubc^u`#!4?GW_ zM|^nBIBXgGjlpqNuJlDyF2)xmd?x)M)DVRBcM}(=GZ4pPvknPyMk>CSJAE5!_n2H} z!SI8?QZW`CkZ-WPqj$3Ys9bXm$jh>UoOiNfO5`K(qH)o=f=7Nv9HI0|c%k&l0es(# zepr`f?a=Hi}?{k(lH<9W?V1C3qLj6PCDTMeB1 z8ef{5*UI;8Jkwc$u9ok-Y62wrMeSDG!-oQ+&%*;#=5SQax&fl|Sdyjm7IP`oV4SK5JKfI=Th$il;WA zN6Ck_CQwz|Jd<(y0%x6pldAFkx0xQ(<|AI4w3Q?NJbR#>1Ab{MO4}={PIuaCLf?*U z>k_Z6bNg?r3;ry+5boE;v^6K-v@z%MP$d2`D^fKzreFALV%wVRwFNBw;qtARwzNiN z#(DO-m#WU%_I~|Ezjx1T%#Bn@Kl5;iZ4uj6Ds43~hnuBWJc>RAA48w2DIAc<-Vgf1 zvn22*KcjH1F>-XOzQ_2NF>n>SaB<^IUgylw^LXDjuAm{2^VesT<>pmE&xRI7H*a_K zO4AKqo&V_CIm1Vuqn8UB{8XCATx`acY(W+}bew4B#ipa07m3ap!J>8M_CsDBjLlip zA$--Fa|@^B89GFFL4M{dH$fS5_5>f1k=^r<0dtWBbC3x|$c77%-4`?}aOYghCxMo$nyRH6b*3-K` zZ{FXu96UZhSV9+>l*4Gp^I32VLig_f?(tZ{B%c3X~Jf&7NY=R?O!m-#DdHU5if zOERIAvqiNRsSMsIxb(XlF0)@aIh-5=7j(~=TAWc$9m%~Wu?ZoQtSI(&Xt^2M;Y?Ke5g^C!0CIlD zk@It4_#c5m;kWtLE5C39K3dv|ZMWApFG@CTe&my$dAzNj?NrsGW6T_gzLdb6NMvp# zLD$L9bqaKyihep!`qDnnS5#k_9x1DI@exo zMUGEAG0euXFgt7}12~QzG@1 z*U0aEB2R;+HFr8!UBy^k$(UWi*nN>PoDW~Syn!(_v?YFZ?AB*^?&JN(c~)0t`u-Ef zmvh9M(NTTiaSPwJRwMhqUQwLLIX|tV*6b?dETB1@1r%f-bbM#Y%fZgoFDIp~9|E2Z zB;*%H-&otVIsRnU{Lt@bpi7oB#`2#I9*W+-2i)^q`=MsWU2v>~J;KuaOVL5!-Ml6J zRPynxxsO=e2diqg_=YUHarBL2z`4=;<$F^-`c`#dOB8Q-c1raSYhCe0%J)aij>_D( zko8x-$pk+eS<~DIJyFMqO6-gh+8G9)D;fRhCECaI0{eW+*+2O^?)McGMqlLq7<=b* z|0(`t-M3v_7~RMHAmV4oKh0(p- zZz?H_vLEumx-S(*f6e`erG?SwxIeeJFnS^Iz70P9$p1~Z6-K|v|D96{qgQZ$1=_um z`;p{O^eXPDqe9WwD3|}W!suVPU$d$(`d99&Ru>ZY#rfgbh=1e%y2`@NF9&Y=-n!H; zkCAL0fNixvafieteG9n1ydl*2GUb-tQy5kGd#VdN|8cL?dGKE+HN3TX_>yS*u!bXV z4sAI6*C7pWzdX3%?+?c}y!owQLre9bhK|aC4b79S&bH54(KqfLu%vaI6@4?q>U?Lf zzu~x{sZ)*|Lxp+ontD?yZ^uD*uAvX=N#j_+?LzL1v%FIhG~xT=K#gKWY{C8H1c0Taua5 zyCi>Obuhu`(~xm25a`s5$p*eY~|}$i$%!mlEre&2OFmrSpFl5c3+^I&b9~ z{3Z*?G4XxyB0rn)RUvb77@K*VgLo$Xm0?`obNN)(Zd|?O2M?}ZazWm@;X03_aQQl} zg~PwZIjZZp-?ZF0NA=eaJ-6V(ykA}Nh2_7xIZNlYaAMXsup$5IUdcmP3P1zNm$~lP>7x4N?qxB08yTxz1Iy zfNdr)76NMlH1})6tJS{N$a~V2=m#HS@qE99Z_gL@aW{Ry{t_HBHJ^YZoBw9M(uQMq zB!y=P4xU%J`HNIf&okvSdG;ag{&VtE_=8r+FL z*x(@Nbj_>YdEj0NIr+m}t`0pl2 z9#G~Se30}#^K|9cPtw_r#l&D1w|?~02I&Z|V$X4I$o5t9$U}nPHOe;;u3(@dzll8) zr9*<%!Sl(T=NmZ^xjbbs@L8u=BYjp?@m0)yp5=-*WHZR8HWPb*ynBfs5Pz!wig9o9 z_gYtOFs82A)Kx+K#HO0H+ncCok3a2&H-Jg8tN~=?Z;leHN)D<-c$&spx;*q8ZT@ec zUBLUX_?rqdPqS;mN$Y<-lE-gG)T+AEP{j_lC=9wyDeRm78 zb{=pa42&Kh*&A=SxG;R1a?pQnD)UJ39om~Nx!p#YytH6-Gv&Td8I|`Fhby@MOut(9 z4ziP8oBnhwyfovr=@HJp8zEe4je0F(kI!(#mP%{s1Y$0arCPZ~jDLi-@s)H8!EQ6Y zYj-Z{oz}Oz$X7BRfBhV2sqOT%ho>+fzsP)Spr13a+p9(utb73+9;D3=fbS5nXf7|q zSM`eDXEUce>P#%4a(pF+Ujet+b-AVTSztp!$5F*q2p5OOkq?r+kVhvI@5kJ1rM_g! zKu06Bu6l$vlso(21li?QVkUbjAKd$3`uGt+ z0{BzzN=vb*CSQ0tdpmCYURHLw$se~8+==(K0jJK65FV9}wDoiNZG7Z8{pW_4s&0Jz z{i2pv->`Dx@NJAA3NOT0z&pTH$r))}8ZtETve zozNfj!MKj70>7^=x}CG#g5jrlcI2ZO(@N(}GxH$WwR)Q6OB^XX#`$(_@wfR_dmVNT zd@x=9DeUPftC895&`?Gic__Gd=UyTgsPe%HSHkPzOGCSazXa-oC%vTK!eMrxG2c2R z^nm`C#zm&ZmM-~>J) z8#q7X*L;)08V>DXuNBXse0I)&T_tH{V|?tV$q6nV)7l|gpq?d+kB?mEKk_eWPOv)V zyOR!y53Dm}efV&Q$&;3P7wHIOu3b0t@Eg*o_pU~+Aa z?I+mvyxYe+^&{T3>xT$G>I;6E#y-CD%E$Nsw)f)$*#7VM02a_TJg;{jK;TN*C);EF znp+ur$tGk4_DK=)<3i-f1;~@x$dy^>STk9hEJWTE5c~GLiF+FY{<`)Kz*ZSXncY`o0iZZsb#H7~0sboX(d}2LDg4_@Q}r<}`bb@OZ2% zx1~~iG9`TaGxC`VuVW&u<3hU{s4IKTn5Tt1@u#@|?%FIF^BT0Y5?QDIXrI6M)dJ3B zc>_L*zrn=CX&qL5)Vl2H{MKDMq8CRvhx1sxJQ)YjFFSk%(dP99(UuW~(G2AA+_(+3 zGq{(>Ro7Bi$9-}4)z09)Ew1-G8H$Ztz@DxW;F-t1hVIxnd~EUH3Vv+rjE#+Zr`>AM zdcTobMW@@%;K7$j3_D}5--EzUuXBTUn#&%o_wafBpVRxJz|%Lq8+-f&dM|M4y>nGD z^m-X|`vvItQt0>+X#HaB31|Ji_!u-^DSJG~yLieBrtA>D848VKlh1_jiT{*2ep>l7 zbD?kHBzB$fDD}ubZ6^LKTY3$=sT6xhx)^+P#U1z<>+#)L*aH8eEMtToWQBKfUzAS% zTlajlwZJXkmFVR8LDtS9=tg#vbf~70*7Ei2T{%y3gL!ouzg70f?>pyIU6e)67v3q( za2xI1!rJ_Oz5({@r{Lov{^@?-RgwGQ8IPS}?Z2Nhlq6s8_g&*WON)JWo%1Xy_Sp^2 zGtLY;{w-%bb8EeMf&nAVU?~%KHqYK9$nNL3kF8a4)ZW8Bw z0Ka6LS))e(VC?5#6jvBwPwS3q_Z#J8%HXW1o7{K-;c)`}*LsHHB=1`}(d4HRA71U_ zoO*1A`&O1mE>0R+{n&`mE}iG~&EdnU4=^__OX8e~k?dpe4=>Mwha8AAah3ab$61fJ z@P8P1ewX%y`zrKY;UDEQ@k3;@bP>s~Y0$}$Z%ns|Kii)A!gQM)tK0Jv&bJj?Xx5;R z=b{T|EqF?vw+<}bL^QJn{#KD;&A)?w)S{n!pfyjwHMPmu*nO|V{mrGl65vV(Cbd;% z)`6$yNsraKZ3cPVwf6Q&bv++bm)6Bq*UsehYJ30&_A;}MJ+&M5dSW+Q;UC7&L5voB zWP9P?&a?ljdLG5@W!}o}P+x*p@+Yn-HpI05y4$|Rcg~t(diZqSYfUlPm(H5v)I4mA z<7~l?F;&l6aZlCvZ|15o890T8@z4W>5L#NL{`YifU>_B}o`%uuYTL*EL zObq^YHtbz499usl9CKsfz#cGTAB+3n^ae+IUvQ*`uW{j6{TboNj)CL4Uf}p)Z*Yw1 z3y!pKo(sqIE*y%lI3B;&_q-Yy0|#=~#Ru_g(DfU{^HsWVkc$LbbmA+#_3ib|y{~U~ z@Qvg|-RoUD?~QT>9dVk{K_~DWeHtHNf?3yIX4W(lV%D|sW4PaHo-gNH!&8tA!P4{G zb?s4RUEB4q)x_$51@OMkRh(mdDQ9S1IS)BE7kM`aSy;r{qT^e;i8^oOTF6zxwSeme zuIst3K%x@#3!-WS=*N1W6@oXuZ?xCn!e-1W%nh7 z&-z=}=8@o7^0I2H%88{TAM!=19@DC<5qap8LBeY2QvT79gwJh7r@NB`;g)pLFpV z*!1j2bMU=#MPypmsE3b{hxWIth$$owE&jld<)IBB)5pif=Aj+korkuRHR9Gm#GjGx zyr^7rvadJ;$0j%i9)&y6SR?0TmHN{abF?pK(iy}*HlAe%c)%2p9C6BG> zYSum!htUGRRxHN#53xsrSd3O9>uHa3@je#U03Kw6G{>|TI?}cCj)=8M@#XTV8Jb(U z%Iqba#$LiGc&KvmP>*iaGas*o%sdefY2A1T##_06OAM<6>7VZ1~Hy z*HQhQ!?=|#IydiNd#FKu|A2UlqIsW;+aJc%S1~XKx8FIATh$$3VC5HG*gI|q_P{MV zW}moSAJd-Er~073>EN2U1afGkwlBnArg`-Y{P7z0$Z2kMuDTGOcmcd|Hav0`ymBVI zwvZSizgcS!GG>Fg26Dx54dCk9>)U_yW zWX8s)k{eY%KJh-o_qO^@;CmVDajl@u2@R_oR7!y{S<6tbam~6HZjZhFNpXuiAl}H zrnQE*{}aC)yfgYQ>gwQZvo7p~cY#B3scpajk2|2a)cK69aA$a0O#DVSk0UPCjoCPX z$0ZJNV>UR~p(l^iy#F*Y8wbI4Bk}Jgz^NG2diYr>F&l}*Y=odOgLn9}^gGF{uTWn6 zgt%NM?vy!HDp`*$>BZ6DKYS?}zWxxpzWnvgjDNN}-%?BSmm8d~yd#p8mE0ZkHFI;< zX2ph**SNizu{;cKj1DSj$ToA^*WLy$Ptc)(NA>P?;jucqc3yqNBEHLs%ku$iy=$N3 zP+#n~`fexR3Fn$i^Z4!%&+6$%)uJiOHBbHt-8*YA7eMc`q5E0T|4il!a|K;OYe?tw zUC%X`Mzi)J+nRGj;7t{hV2v{BY*h5+Et2j3~Av~S-LYw{3M)_F-ZzP42_k79hIU-3s} zKUO{9kG9-|?mSbzwxsYmg9T?&_!hqJZC>i#S9#~n&mKOe6X)oOaaGX5@!SFGTZ$W3 zrS%GLpZ?&G6IXQ=aaBI};b7Wo#Gg^e9DSNO+6v6fQ|9Qj$gee#~8g4(`YAAJM z$mdXAbz3J}_DcF$GMuxfvBk_<|NLZoD`!}yQN|gIzUlk!4;{cIi-#hRZ~v*i;SXcbm0z4Zn{dD?D2GA#iC9Xg)j$ZR&S|J0F(0^MShO zm$>s`4g0nR0JG+U@^)vU$5_p0kVD;>4?}rpg)Dm&G$(i%Zzpc??6LM+W-cd$Bh1&n z=Jc^!i7#~Lbp>r*+vU)139-=wdeHF->eJWgCzDDxy3+}3m*A*9C_=DSmK}&fOwg=~A+d-dM zH;QJQZRLyh_ETPYCxW@GJM(=;oUdaXJTBGj$xC%?GvH{!pS+5)s<#>aui_l(bxEx0 zrG<}zi*qNF#}nO${5Zg$YGO=#t7DN@$4SWVQW(**IKSMToqiaxxT^m zN%nRTFnIoHqd!1{h7Uut^J&9M<7`B1-aA>7{UC`r3*b|%*F)9!7k}r4jm5R|?k|40 zy1Mw0dFzT_KgU|S1RnDGRBLG_YcH?g=382V@A&l%h6WiOcF=OL>6nFoO z`osJhT{>;~5p;qZ;UBM`ZY^zAJ>&Tvx!d3OVZINMr#sF4zL@X(EB`&p*U{H>xBLa4 zQ2qhof_;~x-16ssLiu~tA7b88-STItKi?o{8~xGPLnkKQOZgR{m72oE!|dt|5s3S+QNxk798q+7R9rQ`XQD`!ehNDb+1}uQSft4c#P#U**~EMbq-`BxWS} zVAqt-3vQ!x^*#<)QC|hJIJtCMp4R9yxa-@g9h~pWx9EKbWb@Zhu8n?V6FVBaPs{w* zJ}uzZKCMjN$J+d@;&bTZ>m_s9r&UDEf_R@P7bAB?gP(Sv)&yW_MCVc6C9aOFInx0A zWs|3p8Ka%_zqQ&0oc;2hy^Vsh2&(iYA%S+j_n=#3O$H#ld=YVwW z`}vJNQImphA)DmTJzI=i)_kY~ucCkTLH{4&zuAlH{(p%7>es8&EOSP>;vu5IdYJm^ zzfHWNk6dr@>>0>q-_pw5h@L4I<%j&Q;9Q{YGWc*l;8`Zm6dxv?rpuq$-hv$yy_S4+ zF05Yx)}D0SJPrFwv>ijUlK1kRO=bMFUtecECN-{mX^Qpi`$v`q6x$sA5L--ZY)6Q< zK1v*d^71Vp#;Eag@Hh4)AN`!@btQR|62pzOYxIu_%kH4hS{Hy0qAkE_d~N;yL-g5AiLbjEQMvL(^TmNnx&*^(H(nX=9Jq95kI`9tl8Ain6suH1}&`j!f| zJ@9F*YiFV3WL4$ZkI`1iFl%QkYe7L^WWKTI+GqRFg$+D^&aoF$=EFO?HYX69KbZcn zW^BvR5rf2`r!92WCKv25!65mpdQwuqBh11JvOMEGZanHsF zpn8q-niglZEon_qNTN>i7evSk`!oesj z@dfdYD&~)9)ZrJS!WRQ`m(ed>x*_MtR`w4nhV|f^0~$j35e;tFBik7Z;kZusf1)dJ zmp>{6TxN52otKk%z^2kMLpWnk{WuA}h~EmFr-T!bo6D{l39m{BZz=BDZ1@+y+kip* zLgSIoILWV}ank>D8J{BZQ)+B9CJD%(M#kp}#-$DV$=ym$HlNNc3$~+!%-1u;?Zl2z zs%!IYbjL?!GJRGwFWxfyb+hA?Q!Y2Mim@vtZVQ>uS(Pc_y_6S>@|QR?B-%*{KgV$z+z|xSVoCfh|_8zw}E)U zbZ{to&SYL&w~x2K>%!&0beyiuf6?CjEL$rGU+{2M zNE?kVE$7A1v0$rMwKB44vX{3`HqoeXLM)8X(CwcDBl+tzrvDCXqxyj@6kpCh7v+v~ z;QA+aW(&A$WL!c*Kp?E z;cE*U4kCXKF*YUSH_qdE1^21k>$vA~M-S^zUYWxQPX3t^S1vX3PIlY`a~~bfG54hK z8RkAJd>Z%qz*Ui+dXE#&l}bF7I#NkHG3f!>qkTT`3O z{B-U0?K!db`c00XI*I-qMURV)tJo#K$n(b>I+iZ{9KWR#2p@a-E&W0I(m3HF%du&S zh&6WgrJCT@@!k58#`f=&lfD(qw(OJ`UFnEfOHFa@b*iC9N2WKFZVo&3vsL6SL{KxF!(b(&&7fr`rPYVCsg>jTM zy1LZZ>wVY%6}Nu)H-2OGc<{aAg#XSs3cgb8>sX`fhR-*l+n>;I z(YoR}_(0<0tzCEFqi|qM4u9)2z<9pbMv@1k?BLY!&pjAt^bg}i_xncdz94%Ci&h68 z_Vx|ttk(Id&bmdAb&E1^JRTg+oif4ZJn-lQ`1Ra{p~(1!R%9ii6|-ztXJqYRQxSa5u<>D-&N#3BDNPx1?Y9n11EwIsWp#aestzqOTCX zmU?1lN*CoX7mZHhx#-|?=AIm$$Q@p=Px|yT{AQkUI&xuji*zgWY3a@{GGC>a&S$MA z$zM_Y3T2MqTZ&L$lhKRsh)g*LnR<^EAsK=8NSK&#uihU~FR{QiJ8zp{C)3s|H|E#~ z#ON{V_>ekMcy{EH9Q&brL+B%^;RO1w_AGSPS$r#lAfA?o|Oab_ql5??;iG`M28S_O#9-G@A6!6;9KF3^3!{8 zub>^p#=ph;R^%2ua9^zLw-CB_e5<|Za)ig(e|q0aoY-M)x{5j`a39Z=!!n?R`DS-ij91VMx)# zCxfF`HCCKCoo6|FSQL+SJe%Ln!teanwKqJCe`={>_?y>WACV6B1Ntq!xs}+5 zD)u!rlYt*=4t zMQ^eiM90$@gN&1{rM{7jQRQrW?$%O#P4k=iwvczymrHlgjJ6^hWha#GMi1nj<_kL4 zzHHZqNaJ0;^i=G^(demHqIXS4-+J=k3JXE{tnhW-SS`zq@+DyVvik9{p~0@t(>$ z(8u~c4Bd#m8nO{fr^f9%h+Y^=Yq2!E86H!?cpCck4Om*vnM<0l)jY3fPjOHFmIZ(7 z+Iv#J`-#W$ZQpzBoc&;;|5%`2RtA=x8vlU?urETz=a7emKQLy~cO> zl}YxwjFWsIig{{<2J`nKPl*p0%({DaB|OcSXyQmRE5*~2!ncCcI(S-kz~O0A@fA#k zZ|U5NEc^%JY18P7biT~WjL5kGYuD6H8P9a)h_=ZCB+W^w?DN z*fjLmboAI!=&_^GV^2Yk9n_s?r6+HyryucmxcclJ{^(6xyEgywHb?)2N7Y!{C)iub z>6JOa$?J$-Va|$6Vy|4?m=I@}`+inL&iQQb3@`TkC`Xyjf64q^$(Xt^R%iWL&?xi2 z{w&u|4F0}I9~FZzAM4*RvF!Nv=)h*=x_v zbogfsPfaJj>mWSiFYu1uc%8hivI|QrU-e+Q z5?ETWvuj*fD&VV|fra^N@@FK$SB?CHUZ2MP=xt6GFh`{ObgsG{I=c>fyB4~;2Ku|2 z_@1kXr5t2p7N#FSpV;ezHv3-FJ%mo-#q~h{#XjOViusPyWp-$cym8;ncqjQD#J8Fh zeiYaxdn99~;}@v{kB4h> zBZz*K!gziSyuJ?19{kC^Zv%UB_;wd|{a(p$&2^3ETkxOW#`Dv{GP*xlpfSxG50(_> zkNh>4@r~%EiZw-pGvfnH3D4(wQ!g?^aIWhEPSNeBp}Y4PTW=0L<_8jFzDvOmM}g`y=U)+aIiBHvlWHmJ;UWN|P7dy#KizmHFY*a+cHdASSl8>WH}&Xf^O zwhO;s)VH+px@;}zz8Su3{oH5&lINmjWY+ep(FwDe3q|OI=qB6m+RGfpS6R9@Ailc& z1YMQ+lE_^AfVucbhquzsaek(Gp6c>5$yU!V=kYUdE?!6bqN`@+-C^j6d1$vnSINus zBBkh<;=^q|_5&hA@=WYRYS`u*)h|0%u*yz*kY`n{4^!|mZ(`@>39xByCc3a~iP5Ec z!ZyW)&2srf6};Br6S?qOC!SS%7J~Q=g;Ps@v3+OSWqc=`UI#v_TzuXxT#j{c*@}&m zhCWT7cf9r=;BJ@;U$3}x_ki@oT_N8HcU3XCyMSj^TI)T{fe)g}eHGZun8%Fir^Vab z%ngm{C*kcGmlh4)@B@$P3vXxr-{Nhz3tz8zbMqYb#M>dh>4~=p&kWus{omm2JD(D7 zi@}@tw!zzhGwm1oPV`m;y-8=&oG69ff;kRcjN=Z`To9UT>V@7UOFm7E*-{t23g+rV z%vI*8(LIu}Ep8;1PcmM9m07^2I!l^kn%P(t43K()kV@*ZEH1<(dcm>3p6J|15BM`b(@1pNP(P zJFr%h><{=(@GE9TaA)HW4+5ifssX8?qkD)8nu`pUY;UKm z;K`;>I#W;2{>8I={%5;=)OmP@ug2IYqv+pZ`uEpf=BDQLXirx4B1b*DV1wJgM*8w9 zb5nAs2|1dye0tgU zz_t?IX#sv*&&R2GIEuJ{6v`e6=h&&-Q&Yy9y#w-huB!AAACcT10w*Qd`qIT#VE^YE zoh&76`l~pBo21{Rg}+1_A^w-ZYb(rS(DJ z*38Pv=|Rq8%szv<;niAyKacq*dDU%0B%EkNj3*ys4*3{!(l!i{uOa)5I8F3$dZ>4t z{^Q;MJDh%mZ>jXZoO4E}xaW-4`Tg7K{5~#gTgmn0CPQbJ-^a6?K7b~3vFn77FmT86 zeC>H>z2Si=-1S^?fHO$8Z!%|$CWarRJoP&IHS>i;0h^FL27jCREgm3TR_i&u51PZW z8*ksM|JayS*u=4TTf_6FWQP`ox4Lim8$^TT1@ET8+Ruou`mxSAqV+deyY7U?z@V$S#W%V=cI`)g7|k(wTEG6$zqF(CID0bkgTyIz?X~tFx|AHetNiS%V%>L~quZSH zk?arFn1ES(RD@&ZQSncBE?_G>()Zbu! zBO?{_%bYpEwhSTU1Ato=onfIIB~+3~CuW`GplDmJvvAe~0+2&BzG( z=B>C;G!wo*DxPy);q4~o4SIZ=zLuCZFUkxH8NP4cL4(c01HAtT->V(zck#scDRzl6 z`?69e+G|-SZKqu57;=NP?AQ3Mb;~wl4RV+Z;Hst#JSktV-v5R7t;AwTXNvdU!!xx1 z>zXKWbSJU@ljuYBTjz5I*pFFH9D#gsvT?7)j@H?Z(s}QquDT;S2i=PPmARwwIt*-2 zpkHr6P96kL!-yF!#dggBzjL{?kB76y_Aeeew7MGnRe(FeshHa!V?V<;y1fK>xp-te z@6ox*P4ynWjCVP=L+5~Qja$I^@FipZ4j%rHW$kZapXr`871LGcdx2r$E$$vT<(kns zr5e{?Oe8OlJ#d_G)+l&#Ra-qW8Y?1VPJ&rhD$mvhZ6%clk{t ztXwlL7frMiE+iJujYl`nzBJJu&a-Ctm}E_S;;6vtN7W?hz%V@*;#7qOxbXg{{(Tp{CL1^xxQssEvg$m)df;S2u#Hn4T(v$yVn z`S|`14~jgs>7yMRc7C*T!!qRXvay3q{eJ*Qt;ED6{?Pc1YLXh9d;B)m6tEZKx4Hix z*Z-vI_{ZJwvJm|zotQ-F$WE+9YWQ5{uk1(z zH?;pS->Dz5FdKOD9eAyNU{ilT4QwG7wh*vg;lfq~Y-t9zRA5s+Lt;CDO?It;?F(nw zxAUD~{TOT)e==<9)2D$g&4rC|iB5H4%LcYo1Dj%0Qp0Z`-`{1tB?}E~kDO&+%y-5& z6*JZbZ^R^OocqI@`qUq6SF>i4g{*l0o#Q^eG#9oYu%#H-~ z6hJ%Cx=R0k`CrU>>02rG6ZBWln~`PR&(BP?w{<@!CZ6)5nwi%I-qbX^fqKyImmYQVAhP$M zSbnPAloQRXf8;CV>}!+buqG>%W^Ym*=8UsZ%(Hajt%#9gjQ);1xoZM?6uOAyu;Q_; zBjmQ^oOS6WlfYLdc(U$Fw|`{naPx;#whG;NFKwCkxufhotVNCmmRicW>!3BU`uA4$ zgqgB`%OG|;DXg*q#@d6UbJdlM?-h*m7a8yQjQi!Rj~0{vV4!{Z1Q(89rQ37fcWC`i z@L;k3?(f;=zcZffDHYt8@J=*%V;`_Mwt!@5-)%~syxNM)j-gKr`dnb>bZzZb$ff?` zzZ&tAZspRv6mIb?UDXlSrFgGw(NfUL-C1}%cCYIrt0NowRliT?z2>oW*x1}GdZ%yAb8Ldx{n7Bh z6Xa47d>^=bl}YMTf9p&h|9Y0bNG4UlBfbNVfOom;=6Mk#S6hGWW@Qy>alC5zyF3Xe|Mn zON924;4SbMVt>3bzlm612C*>9IA=z@D<0ZtJI{)W zJ`#OvYZZs=Q~#f^c8C`rnt`4_4L<4SWT?kq(mKyF=kk%qZa#TkUsA3(#UUTQ(2BBO zKXH|KDzTtVqTF{ z)BF?o4Rf|>(Rs_2m!uwhE4X4=2Z$Ft{gig?ZtwI!_0%7_y#_p{bR)5 zJ+eB-lyXA6FXti>bkm9$-9&Q~${G;6YM z&$RF0nMJ&p${8N_gG`$-GCb}P|0A`EQ9Mi=vPrylKLD0jfaNguylnbe9S%egHGh~VNJW4;$$*BH3Y%Ud>2v~|2+ z`rTy4)9Kd>?)S~#5nOI8`<&x&&Cyv0z;=xJUxhrw=ed-5b%3*7?9skQY6H->H=dGB zei!yqb57IocGZX2cDK3hHh$aMvFt*8B?flwaY+qN;9Uaelp4I6{jMqPZS2E{9e2@- z#{OXs{0-o?ic*A^n#O3gcV&u_fP#Wxu45E&JQk^k7l%Ts3d0U99%P362sr5uit|Hgu6r4 zpIOOKiK$E z>qhcR-uI%DU-D!tl8vvT^;%@asnEoue!GReYv-`{?%<$#4W*Z8ta`~sNE^*phN5q} zZIr;%V&4<&<1j7nEfM5t*4g}U!e1vn`efi0mjMElbmyzTNcQN<}+u-#O4QTar^cY z+7sOihw9&6+B{7E>ck7EPk9xxDYMLKIJx6V1pgWl@g9Mgx#+&&a(?+|B8%eE12 z3@*m^j|`!UOC#e z`Ph6{Zn=9@t9;g!@B5)`-lLD2z0o(*miUXYt+XFu`T6#n1?)G!mS^)q(L&Xi(s+Jd z<#$Y8$*=RjE|3-pEp+m0#D4cDzH20(Lo)u$ruP@*X^(E3*`qtEdylTxM&;Yo{@I1( zUTbpJ&vUg`w|TH~q$j@+&lwjp*ozp1&V%IPZ>0{-y?&1^N!7Ix_bB6pFPPQ zO&!SUjwb0e_%D>hLG)y3qhyl3n>HI~Nw0OEt(#;&!!zlaCp>?5lD&iHb+f?>GD3Z? z_=0OUO7@R9$H;#CBIl!JPqz+KOwYJWxfMoh91P7}04%aAs^0f4ulNi!vQ{7!hThwqD~N{m0`lWB^an%y*|*o=c`I5c&TwTH@?=sDx8=;h?4K6pkbsyV3j z5%Hg$W}jtJOkSj<@Dy+%KG-~tGwkLv2eDDAuz#Ri+t1jm4nKOg+L!~aW}`!>zP1cY zF|5o1f4H}LGu(Q$AE4qwY;NkQFuG%M_`9Mr+AH-ZbCy7`I-@KSs);e|`TP-x~hdmER!Vvy<=Y z(0R2V&F~QT!ef;A02&OXC`QV(aUg5)`Sx7O;#28v13H_pdNpp_`NrXOPQ6G_+~nS)E8Vb)=t2muC=o=z7vit%V*b8 z4w$1^0dkG7wqxR!s>a&+l$p%j7p{bx)_LqdB1Wvr%>U6wCw;`^a~o~=*3Y4TBah(6 z1Nl~SP4gi0G({RMTLKTZNfhtzlCxZDL$ye zUsXGtXPVQJpU?#R9mm;2iN(}^*&y-mZ$mHj*>+s_yTq{H`z^YBI^O<>JyB1vH?+I1 z?c?mIo-JFh{Dkn((d~zk1&83P>ly2weUxpZToNyWH?NP3>(2KW^PRlAoxbj%ul3k7 zICPA(<(>_$k*(NBp=fgozInZa)(>(QPksmd zYhIVObWKsb!OQrZy|Ml}^*(Wc{JGR!!XB?!d2At%kBx=)8Cz(wm~$XfB8e8o<*4bN!kY_#dBAiqKhsOLJQ$}U=4g1pAqh62x-GKfX z?{o6X{q}yHCqwQ6zR}p0#`5HiT|IIII(GM0DJ#0oysvBLz&G$D$X9&mZ2O*f9h!N9 z_wt309p}&sZ96_w{NdHSQ+r#$=Mi+$Q|Y(v+S9TF{0Ij1okT0$&$sZ6;8&gd_)cZ8 z$u&o63b#)(`Rzu;l>fe4k7S!y_x)ZS>+c+-(X-%2`}fp?7%y9XY6k` z_q6bB=B~JczI`$B`$`uoqb|XTZ((0HF)qfpKfyL(YCRZ~b);ZG_-eb@-s4#MdC4%5JR3-=Mrb z&q04`<5%4E?pf~NYOyvwz-4pQaD9{Oey)vN_im}KAvG?8#v!DA7dBrUNot;!~?f?f1eco2fvMcAqN&babFf|O-_CR zClA){6lX7^zWt%fA``UUVES2;W&f<*kz=n@zi9swm#!rzOnuC!r%c4(4ZgmO$g_;!p8anA zXS&bU;*aNWM0*(J%YDPf6U#N?pMfFcw{;f3JiKg4-bUJc%xC4_GW#O_-;(!OoRv?U z*V3{NyXNa$+22pRz6{5NT;C3{qM^y3 z!e@)lVSKixZz^64?+HUZJdoe1|V$+WGGBb|xc3 zMZ*_1G-OZ0Qr~R-cT1A8)Nt{^*7u|MWI={avOF;;lRy(;WF_v-l1tj;%JCt#|Akehfx-1(SB0gifr)Tl4nkOi{XEzQ=GgGnH9y- z6~$8(Pb`?0(;oT{=PgY!`)~AYnfEL&XfJ7VV5{Xj=|u6F4ljU z6TTJ6gq86B%M&cw$~9RPQ;p2JlCq81?-`u6*@%3@m*TwNG}Zos;Ktu<%KzCZKaXd1 z-m}DMrj84EhCWaeoH$MT+tM`OcWM;_Yhd{4R9kD==J&r;M`Ab=oOv>;z`&duo=Y8) zla>{*SMf}GLo`M{t?>u!bjn=Axb1o!{r`W_|G74Bt>>!Zx|i!7uDiL`aaD4yO$4vu(E=cU3}kG)dTx3nL%XMcsSB>G%> zJZ|BH{hS*2G&i<(MlbtHufb1QK-}*k#zK9DZ$JoPSICE)98;0s)t zeTYte9tU4N?ewEJ|GNI_EaH!8L%#4<@V$rq2JvzDX07=44akb%FnpIQ7Dhx%Dx-Ud zau)G``aOs5ML!2K$raD<*T!_E%;Fwf=CjrxS@3gWj(o%(vEOV}fLLeC#I&k?;v3=R zzVJfscMw0wUigl7_<1t#zDE3>a+!#??)E3QXY#yx<(($aw)n=w;3(70V`8nilQe+N z8bIf&nY2|%n+3!<{ikT31uds%z`j1hdB4&*NLp$r@)bKql&p z72;1nW@l%D9}8Ri!&AC8?;dV-tQB5?S9Z46a&-?5wah-JYX9Ks#l)R##1_6KE|gy$ zAIiTKJM@K9QYYVcO5w}DTeLWDTh{RLL-%Lo{REp<|A)3@?~m%L%oqP#hsh15|- zI_F^Z1Z?KHad+{5QQlzR>Yq)(Za#<((Te|9Fs}#B@xYk_j1#U;y}W!_;>e3!_!bom z9zTRS7OM_m{4I4X;`^Lo-{3d($Ax~j2zxsLe&5QO2wIns%{`=ad|nV(UWsu zgG+PrGSI(0-_HkE?loi7b9^jpiv{+2O36E8iDyL@U%R#N-L#B=JIpYcoP`EGLL@A%oKS})J&T%Kh@hvJit??q>s zP@dk&`*_nmEY(i+og{j;d{Y`{5nDInE&V_|6j_Q zZ_{@FvgY{SE6tOxy?*jv1eqt~KwdSN*kM2C+dJp(p<``7?t42Wl8GJFNk2;%C-o1V zr^d>f*=bo;XGWcs-^Ch8*93T%o^RW8zV5!qiAk%xdwNUdJ=6babPdi2N1jXHRQ^-& zKffV4ls6c^kJc@ppNpNwdP#=Qx74RtP0F@#?Hh|e0RG!1C^tpWZlfKw_bz2Wy> z@LSc5-@}idh~F{~zkJ^y{FcYym$EwBce#gO;^qu~X-Dk|zX!pu&b8J!yqksY%zE|H zquCD(Z1L#JgTeRQub*a@(;xA^a(K$d&RH+t!gVn|yi4%gO@yzV1rNDzSm=Rru8YbR z=gq@6cP2b$0=y)MKSX?vn4yk6@VN}jm*3l1?g5vbt1e=k<}r?Q8yGjECw-T3?8#3& zI-VR^ZT75I12a1Jjvz4OkK&xE)9f(%>0IC(Uk0B9#xS^=3w-APX;z+SRA-?pKCCDI z3c-VVqlI8*|Fqz1T=4W*@G9Qr(Sk=ymC!;k7SA3Nstm1&W`z?WGsshKf=v)z!9 z;;Xv@DUr}m_ne>g#Gdo5d;QylC-krm=wp7H%Rj=E$xp}6;~e(NE1vfFa~<_>qYV9++zEB&x}&;{GxIO)P|zxs#o(zwy5-f}wEg+ulxy+qUj)|D_iH zv$zVmZsKYltliC*DX=IZ6oDNEJMwCoMwM|ffH;7jV4^6xee3T^X|(?xw@ zKOj1^)0gKL-O=5b^)c@EYmhS!!e@}ZJIB*!;o0Lg9-rGw8S%L)m(Q(521%Fvclp|#u8tsD_uBIK zT2CF}X30C+(s&5AZyoE}sqdttZ2}*S(4Xdiz5D^_Xidy_#dvzUns}e(=GFBRxAYeJ zk@V&_nVbJmUJ#=%ecY}J{DpP;UgVyUTdv&80cXA8Q*uu_bnUUvF8e0X-=4Bhb=~XM zh5R#T*y`C@p8Y2;!9tj^$z*Zh0y|X4( z?{0R_n0<$Fm0coRGl;F16c?`>keYG!N@N7cP z52Mf6$;A`6hBmHy=}h*f47J{R|2^7M9Mi?8{ULoAcA{*fe+EtpOYdS#=iiF#={jsJ z{c6@9YESkL-7ugwbTkXQ;16a0%KL*Anf6ZF;PF3Y-B&rdx20JlbpCdHoV6>1x`Nc3 z$(sH?Xg0)rFmvHF*Iv2Lg8v#@;RJr;$luEuk7D=@d!+(#M!$@sj#;l+n`Ux-i#EFU z4nP*4M46K*JA$!e{3?5n-RMXo<06|uI$^AirG2ZPq+`iu7(yR<@`7=!J;+{Y4LbJ1 zmt4B&TE^ZSBQtv+<1J(T9hJmGi(hh%q+zR!mpYnV@ec@-UJH@SgmRt7|z0^J0t^4fHShwZYJ<+ZEkzVQ+ zPu7^Gea5=mS{!;wcI&>om%86Gb>a)`vu@eg1E5vx>s15c{f>>@Q+Bs7$6mDXS0aCu zdrSU}t<3vx#pqDoIv&qG+qbP39jbsiFP-lWPAv5jA$Z_-zlSIYYaeYZxwrsgLsdkwO4%AZ*?96($Zd$ZE{UE$_~IFsLw zK4$!)FUh7Jz?JEi--?XVJj8UHk9_N21 zdw~R7SBACgjb+X^TF;c9_AT_)LGCwe_~u|n#jZW<@9@eUebs?o?^=160RP_0d($pw zO8L27cgqw|M$iA3|6bo0f9TBhg}|cq%~JjgU;2F)?W+9U;85~i{@}IzE@jQs+GE)V zQXCpPbR}o&Fg981K5t*m`_bN5U38wUSYtD8zdElwmf@FbUt@XZ^zK-OUEZ_%rrYO2 zyW(v(Qylw{X1l#4n*qe^y!@sV16Px4SJD*rKJ4J@kLXrmp7-?S z&9GP(HhyQvraOZ^YAmJOk5T@ol;2MIjC5=1cD^~8^4loiMfqWCH>ST%`E6_NPhaed zOuLxtCnJWAUz}v+<>2F-tMwYr0=tuSzGmR?gD=72$s=!Vq~R6CL@2J=k1Xuz%X9K8 zx7>tH&U%FK&@$7R8$aW}=1a>s{Z9x##{WMtXNl+Dp}DJ=BJrRs=5s5tI-GIbv4{B> z8AL9`8CFLbzeQgejDh9a9h3O&**71V`<)N?j|{5VRmpxg)t}|g z=XUTWm=vG0)t^%B)$tzB)i0I(JHJ^2GG$t+Bhja`#&d~_fS0-RNo{KH?r&&swRx8m zUd?ZBz2}eAQ77A)^`2GGop?Yi`&(k;Pt5vbYlz5yMH6LKs>qs z^`7It#K?leZhxZq)jawmd~A*BOG&ab50xifWeO>y{knafw-i6PviM~Bb@C;wGqZoC zYfxx^*UYT_@V2DaBt5VJ;Ts-D*dh_zm$2F>pV-){P&&(ooB;&mgzma$axm8a^!w8 z-yh8h~k^^iL;^uT2IozAvch^|qx^7hEH zg2z`=T(+n*vU+7s1lwXn4rR+0Wk-TmP4OK(SDVjJSINpL=GpCf=dUR)!9JPI^Gy0x zUwLgLp89jjw7#UhV@?~;iw(W7Hh1D41jRN;XU+r9@U)cEfFpK2Bsb35UR8K`KEAi9 z-dc#tn|aiDvVAJ;>V0sKH4S-sz-m0r{tSjZ9$K`1F(CQ?|23CN zk>T<9I%fQWGYYXuGO%w<9g)-QZ&Qc-Eardcber~f#A6p}Tr8`qb~$yhM!(%!Las}- zd)?{w`q*!_fBc(r@0+Fm=w!ZK_WcBVtVIs;k~0jgi+76WzDYeL>>YcHdp0<&Don`t z`s?AK?G@#Q>i-NTtpy1Ot>8fG>hc?=uqO6U_5H=)d0}I5?Y#SoAFi%0eq`RdVv{rJ zmSMzgTZtO<{y48WXU;h@&ph+YGtWHFGtWqzq?E;+k;i{a zEpfZRH+$pa%H29Q3~FugWnf`1y0?7!dsYg>s|>KYytl zNx{#Dlp{X)`5Sz1f}g)tj$XmfCzK;R`1w2K=pOv+R}O3NvsH8WrGEqMY3i;yz6*X1 z*BmE;pL=PJZ-bwsHODu>&+(L(q&Z~mE42K#_rWdag^R4=pkC$FJk$AJ5jRqBZ_amB zQ*7&-iT!^N{2m-cJUx83n2%XISv_I=r}tlw{3QLC&OEN?2gy!C53vECyRBWs|1|eI z?gEBX`~eD)#qSRIWxDjejw5hSRWX~TzZtW#hUz?b3GWhlG1zz0^x0fUd%NT-ab3tt zJNoZAn|}MYj)#7Q7NbRG2XC)3M-?-NuY|Yw2dK7Y_(n!r6zdtmmFC?%&9bNF3vJJ_ z$$|Ce8)9#@`L@$WnXja*lqf@1-@n7?mwCWx;=XzCSno(=4V^FbhksDMN{wolRV;3I zehDx&v7fo=ulV+TuDpyFgWqI@w96gqgbsq_4p%_#_*VGM)8RV5xtwo;`Hjwtco)oX zo)y@Bh~FT0JV{wy@tZ;9r$T$@J*OePgOB?O==dP-yYh3#&s>k!BYy5hf!LfAz^$w? zWjv4PUifAi^E2n+?n$x6AKD2Y7rq%*w*p;y-4VML`AGMn-$|VFFg?yWFc%OnU;o~Q zo?2pq>faHwWhraMHtLPD#_SqnO*q7yRv_hP1eH0MGM7;1;Iv)sWmZxqaa=s|k4Bko z(0@I40(njhEnDYg59O+8BR;eE^T}SCYv^lv-_(6WVj=&p#D3b0+|W#Ysp!0oeSNXM z@qAZB%#)^)%jU;`TWNbY+Aerkk;-#dpj>Fh7!%HJo~6C9)A4O3=^b6X-$?$ulq>%7 z=Zf{I>y4MIJ*FQJwmIf?_g=++O;+~RnP;kocRcIFJVRb_&WX^WA6|T}vcBH;e^=Hg z{|99uTOm6cdw#vptDND-TB{|4J;%-9mpNfmT0u9RzdcBO=W5@ND#vY_xJNsF*R~ zgFbOM^h7L3>|KoxsweuWcZrwPi_2fDN`D@^D$&1KD~;4D68$ykvPeHi)~@D#WyX|+ zwo4yMbYZhi$3DYeTaT14<7UGtYs)nJ?nFM5x|*mXh3}3I2&^st9!`vpNRPmn28?CH z84L7<Fd?L@x~cT>}l*l znWDFO5m*jbRi@~+M`hM)5dwtlC>3r`n3IK;ld-f?8q;l~(1ud(Oj zDEv=kfKU1V1bIyo!ylhj__U7OKa*b%O;xckq?LH@g}K;|DeHW^=tIGsRnB#>u$Hpo zj}rp!L+Jx-Ad9-=zkuw(p35z?-**4R+LTaLx(j~ZhjOvW<|l%i-}7$KfD1i+f$7Ov z#7kj3*PM>`yapaV*c;{%o3|U@_U%+%mf4gxpZMRj8=rtE;qSKlSJukj6YP@(!)7I} zpO@=w`;hhv&crt0pH{h>QDKHr!Wq{SwS;=Hl^CwBQE#p{hV3#-}{G)z0@XW zZCs=-orrEWJ=U33#y*38Fps;Qa@M-|Mu&%f5xtH#M;l%Sx#autl_z)|Aq9S;g^0L z?RBE#s##|7h|iwbeP!%CNS$W66ZAPN#&;Wdlz81zuZ%~LZJOwZV7;aMdkydOeDs&W zF}9JlcL(b*CmZ^dT9;LgxP&^Y=nG;pwA@APA1P<}dFmMXBkQms=PzMwg!FMPtOFl9 z3_wG0dB5v@SeyVi3@|z-1okS3Z1fv& zpGv;qm+`$x)!+wjWgouVoj(LP;4y8DfxUtLXOv?b{cpx1d5M3eO_YO;AljFGU`75$ z@|q~e7Llya8VBSIn)jRgd8TkL^enteFB|`z6$TteS$|)V@8+5RD{R}++hHjBm2o;u#uiElP|EQ5zhEH7C< z%DkC_?sO-x>-JOT(2#A{owQx`Kl!%EvUM_F$$kCl4fSSSMbYm3>pIn6#JN>JC$H(5 zGjL{upGlG@c)j2ZUbAWIc=81gPEvtEXnA5FZv^SL*h@yp+LLb<@Z9u_A$vDczN{Su z-=id7`X(r5O716y{caxZQP}VP85yt>f;)Y!i?6~pLLbyOjsFAdmkx8E1`m*WgJTMP zKWj2NEyGvolig}<^?PUYn{RdBVC5^gM_cb&;qvpIwQ?`<9I*E?2NAyk zSPB_0sqj}9`?Un$l7D7DdW`R0;4DUuEa#ER`dMN)2>hLGT4lf_@m|h#9!AG;mDHLF zpAvd#Vjebqnq~g{i1t-7M|U;0q~B$1xnqrex1GnU(_ zwWL%1GFERTuk%J;*2JX}X=j@4fU@^VRo$LfPTcQsb8lKf6%b?V2)SY1tf zWUPMI>+G?5OMo8c^MAm`(P6BnwU5=aV+6>#AhIU=7vo~vyNrz;q1bzWc)n@GmM!hn zc_s6{*x90~-%Wm3W1@n0GA2@q`@kB+A!A}QvWL)d8T6kH9}`;7r!6uzg#MTFkBo(Y zPI*%f^uHAP?=QGuo)9_9!Z-50jH4{>gX#4a;ej&GFt-$OultY(jgPNsb1={~bEs(y4x-<5vaFPIJ!7 zlGgBTv2yl1F6>#y-n@sMz0(AEx-mXA*BO z-09B8PS|p{wrbtBBa7LSX7goAe*}EDWu6s1wDbWsSr6;|wwMJYT4lekjFmp55|e)b zGO*cp!AUr67d+;24dI#&e!^WtvL=C_!Qf}`;uqIX=bNj*OYw6(l0-h4z;~Hk8GLJJ z-|kA;=f)bzOCJy`XMX3oy99X3nZt%~Rrhh{=Mk^=8p?~NEbZPNNon`=n4A{U_a{** zsyxl29NN7RIepGreqlZHDq* zY>I-bc%jbDrK0ik6X7s2a8{kfxGONVhXC*ap2^GfHjA!Gi>tkrIz z?o`$T?k?790=M9G32isz;Euin?ePo8p1r5nMqAFT-TJjw37-t;7o+v~=h40j>NfY< z@?PJ|EUB@V+1P7KyEaQ(Z1nAavfuW}Xqng0HUGeV+ep3>zwA#Vg8Z_9`M1x02wm+-216bd>kk94JwQcwS$oM*bg9Tj>F&`GO_tdI+zCi8}8e*>r`cNbO z!g20Lf#Z6KFB6FG^70TcYq(ohIOCxHvHJ6e@$O3@evgt)6*9GhnO3Ua^rko z083{&Flj*iCgh(M;+QWFf;SDCKbL=9N0>u`_ETDYcHoBo+u>f>3GSDGTVyE%ZaKq3 z_Eg2|XVu+`4dC^5xZ`~_?QnPPqb0E4810WQWIT2D@0Pafv^-aA+0M4#QC2GS^gJo> zZNkD^Ya4oI{hd|^uV-#{;*Ti*rt$4lf%@l@icBZ|N~8~qOe(242T->zr*^Q3QHSfY zv9)EC7YxValvPN+l>h6%eIY5d-rIGVwN~m0wu?#pf#BE!jWXUIPxibaFa`7h_1Ls7 zmol8X&s9rwow4qZ<{7_4-NsyNd_O|uHT&tUz3rNvz4fXk{gtwHOY+MO;e%aZ)NRB7 zF!%pUKfU+P59>4qXJyE9V~9@?|H{&JI$x`c@8CpH1N%9QrM_OdY-$Q&uWB31eY zzpqok3cszjp)W4Ox4`@!XH7i@dEi~?B+8Qa=6^>72k?R>^sB-X*6}QIePu7Tc{ueQ z4Oi`FvrPtfF4pV7)H0a)AOXCK4mPpBJ0H9D?zK~T>wdg)w&RV!C;!X+b==E5vy=Iu znexOQW-lH&Un@vl-^hG~|7ZTJ>Hf#`v#!y_N*$t$Rj=M~5@uN7B8E%sf(5N3IPdy3 z-l4N>*@ZuloW1?~KztWDFZ**#-$RQ0!bSJA$9EY3eM)?nD$dfjEx4!EcFMn5k7Yv} zUPL|!ql|Fk*$ADA%r-^~JJd)V&^s2Cv=SS8v+PgV`kYpphW_FK_Ni?3z?Z0FH8EIL zqYt)432Y^;*PZllcITP=1zSrIaj@F_um1(T#$3+9PT?%La?ZX!-aXq}ug4WfKf;-k z9nRdL4+Kx&(XS%MZJ{p=`7p_czM{=`++TCmE@WKFC<~NfryqjLz{cL@<3HyAnryz6 z=PHqbUBi*T&aYPg1ojxv$8v^X9JKfb?Rt`!zT#7UY><<)kz&gCFW1$sfy5K~o#?Hw`=)4dx{m7u{k)DiUB`7C*bE(doNogC zpz98R(Vf6Ql-ESrLjPXsIrhys@79v^tmBsu6FcRH%NrhC9=a$Sykq24+xjZbnVUH7 z{(L*J7K^W0k)QFvOM0wDSCUbm)KL!|3h!EKMTb5>^V}x;nYxenmYwSiD`^M#iKkA% zvCvZmIFme^iYae~r)E5m;>lp1fCk$#9$1|}aoh{D?VMp%#u--9PKnP`FZ?2?-U(*C z>@iJ2FF3Ii{q7Ic+ZO0ssTW^^_Ih_>&&gOhu)W@i=#=f87gctlQD=Qv$NGkt^~rfm z=c(^+LG=mm>d?+N&$P4o&kq>ww5wXdU3)vBi{N(lq~5w^+edFpcAnbayYBM(O!!~s zq>SdlR1@|)VAN_yhz3Y(=gnoqP zCLZ(`oJDi=i|9{YNv}@^{VVc;@Qo_y)WAhjIegzC zXV@aoRRpi$_fy`fMQ3cLty8bVj#q$BBH;O5#f7>cce-o)b^{{j9U& zd-=!q+5=ChXy*yb`?d-XQlX4n=A!+?TUa*?p7lbmcd%xA(ajoGY15u6;!+7k$p@!$ z))e>I+)JFCI%r3=rg@&Fox)crtD@5yq{1$15MslP=6l)qDrIP-Up-T?_m0bbM|ym? zA3yh;gG8vVIoYA#eIQ+9>a4 z@J?_0*><>!U^`rNV9iyJE*sgTB3K{sW7k~WsjCk8l)gF3J{Hgib)Y3vA4K1G@T2;E zmJx$(3$!AzD|9S@IjKU?4!M_0d^t}oBJR{!vD+GQ+?6t~$v!!J>y@@)o%q+8esxBy z_^!{=wsoMrq}FZdXwq4mlwmuN_P6SOyCLW^t=QEpzCQt*3fK_Jgw}%Wb3*4LSEUBo z5Q264e~@)%ih zztLe68`X14~{z9$nGIu)-$3b*4I1O&E}D}nRV7S_+uJp7>Mqr z8hp~8;eR2o=AW5*o~-F!Am53PhzXO}GjHer*PvzQK!*$cfoTI3TV^5eMAt0*AsDCo znWKNfJ6WU4T0Yp1LWhfguMPZrJ@7s*{TqOJDRWY;{tjO@QlS<3XEgVsYaJfYSGsvV zTh~fVf6146gLJLe?lW|)_fn7OTEDg%vJqvAjZfc?e7z1sjIV_M19pQBV=E0lEpT*> zEv)nDfZd>RC-(h%wRUC$KL2CIC&LOa4?%7VMQ-cHIvjtDMK;#q7W_^O+W!vP7k?F* zcg86Ftmn2Rq~pL#3h*g>##aDSBenwJyP~)6Lmn}M4o?|8NaB_2~0ojImneg4!w2T+?9IWQNYF1OF5mzi+^wcmr~(=yUBs=ch~{ z=Bdd1TFc^nuLNLQeSep4(LGA}(k{twB2U^S z`}8Cxn$bS1{?9?)*@*2cZE2$2@wDfBa0}jkEZk)QxKjggrw8Cp55O(_CK1_jAuuww z52vNe-jqb&hx{k?5Vu#x{Nc3GM*bf1g@>gm&WK>Hk0-9?Xlwi~H~)VH-AW8WX}1v% zs;}>B@|H{=oi#*w6}p1iq*DIVK!By~l_&xu|2l~^GKDEpKlrzle&zt~W+=3V4b(Mh^sfRvoOPW8bmGaxBTKgQr zXRRQfvBFsqhZDvO^8A%_(WF88`QqzXf9T(c?+R^_n8hn8mp*T?ME>GrI{5;V@h-`C z0DbRl-aA>dI>#9Po}vSmKC*pZxytUY%$K-<@vp4Z&lZ<@*&FM56kIuJuh_`b*gNTB z?AbJJmz+Nx_sV1I9)&K&hfMrlJ$!qV^nfMqPz3a>S!3GAXgKx6F*XIhuUJ3RANeWM zi5g92&r+fN z)PbI5^iwzLF3eQJMcX|(#GT+#hQ*2EY%6%qZ_%pnztvLyQ z3f5$Gy(gS>>$;^lUz6aKe8KfrF8yC;pLShT3_MNrL%sRVeTNYTO8CnXt7>t@ZAg?e z{5Vjo?I?Td(|f8>E~~S)*#2Pt#9>Cf%B2y|W0I=9hxu;~}A0pB#8R}9SXR03n+ zX*o|U#;4~MW_Z?bFE6Vty#7TsWs)pV*7CMW5(` zN7)w4X|;Q_J!AHCZ?Q8LIlCuu0{RLWm-q)%us@{&zuAhKr{g?Q*LRHB=>dJz0<*ro zMt!1h@>>!QrE-o%>Y|11^?ghKovCkOD`QLchSruawsIL;=qsluv8K6$u_JiXaaLq4 zUCOxDar5#>j|Oh^ad6a-otH7@j!@2S`%%g~qQrZ^uK9ye99A5=WA!zS5^O%m8P)%R0&IzSq5Ubqe;#ORS~U;NSLo$hG1hT?Ot|0&hm2ex6lIMGjuznxAVAFL!Dw zAJmg?yKjhR1Z_cR2&4?i$;*iAz!@KGLytrAFrvJrX zAZIcx0oGt%%)6HC_x%OIdqv6uXHgGMt8d>cqOjMR{9A9|#iKk=(>`-7NjrzocH!TW zht9lW?cLEjy_x-wEYqR?=SY7*Zz3m%t~qAGLOD}%v+%3gyc0R8J`jt)9-nK;pG&?g z;Fm3Y%!MCz74xa^6myT_82GmMzNP`QBTLoDIfr)ql{4_^AM>%bbjLfKxd=T>WbO%D zVo$QMC*VdcJ-m$luwmR!#b;nF{Lntlel7HW>DXNz@e@utORyVH7)Aea-u4jiv_T6y zm^y;-OBq4~f(JKaPVB;Cx@e2uhA!ZjIb#7b33Hh)kJYgcELav3o_Rid@ML7`BJq{@ z6S56wO1YWu*5D%{i5??7jf8bz! z4f-@?B#_@ewniKIGPZh?uhZbQgC$1%?u?a#J-M^AYY!#4^QUUzB^mhH%6t?Hd>GAQ z^zr+XOivW|`hWHzp2g;U>=4gF?o)F+{^dPbVK3BA-a%)B2z)HBq)pF7lZk$GQzi6_&%f8b&dF?tOg z-+HlUpn0EtktfZ(kGRMqV??j(@{2u5=KVj0=x5>S`KK<{?O*!+pNDvQo8NqVv8R`L z|G-6_9_GFMVvoo?`u87Ss2e z-GwgYs5K^&;3sh4tG}Y%Nm9Ye98r*v=QW*CG4p67@RlfjSiaUX)+X+H}{+^VA{V z&(+%!o5{HhI!>Pqs)w-})D}ZVlD2$<%p+~7V?9$tJ!V^wQEJmU_q~z%{;%xCYBJ-j zqkoX~(g4osafLe{ZVFd5u1+#N0X2P)_ z{LA}7iACtLR$~D((;`{mt<;xts8a&9jROm3?1aA4(>G5xN zaZa?H<7tagS;pS7Sl{n?A6!nlHCDI92)s)v?@v3_+9PkNwSOdii)#nhcCKw)wyT_+ z+hRLZ4V|4U-j3kd4lfYp5#~1#@*>(fx?}%O{8n|T+DIDo+ z`^AZS$?N0m8E8vkj@Y33_`-OWwiaF{&y01R^||C{#(N9TqE9Hi!gxMS`Ej^#q$-YomI2nM{_ zmFL73mw1RX1PY3Qy#zSMEJ$yi4$Mmyq;HuHoRUtJJYdrEfJIVh550=*&{A|13-i#c zQP;WR$jCdJe-yk_%GvPD-Lhx+Fwd!s5958b?<=0`PWc1xV|-0KJ9!qkEYu-*>MG`i z6Mo%1;P*4SKHpgLZA90e-gjf3y>Dfni+RIdGp_bg(!V6$S9=%f+M8qWldzSR1N-A~ zvE?@4mi`r=gwkO} zd-x%1*z{b!o6eOxzI;js{w(&IklO1OJJ-m3v6lKoUK3rA@Bufn+RFagjLv=3Jm8Oa zNZ%;sJe9_!Qj3zCZrG5h_H39U`SsGSjSCzTiREKQ4qe5#b=DHAK15v;c1uNm*z0f3 z&WQ-gYv8-wR~(+@ zzSMKRI>r@yN2?XjcuQ)U zGdBnQx$N;f7d;EFsvmFI95%vV)9$!jmnp+b47)@j^K%(IG97t%KE4;?@3ITpzdPWc z^T9IBgMUv;DtRBW7I{pkbK~r`%jieN8b|2mr_fCuJ_8O(vE`4Flrlz0O1Z;G#V%WC zu~gStG%iJ~X&EoEzV9{8U4iZw{1U(K=d-B9I>aT*udM=8#xcq z*7~~OvJYeCeR!3jPm1x?@{RCSX-g>hkg|sB@7e3jbCb-KOBFaz@LdWH=kC{7| zpLc)E+VUe(4i?d2{Y<{wVc0(s!JYgsu|6eFp4~G4v7Qq?kd976)})C$toYf;n2q+Y zn>W zFH!fCk#(t~p1r(fwDB+CPWDYRH|cw&6R<5HBWw~GVHr58XT90JSDOFzdU_Bm6&T}E z@Xr<6<#K|5DOX}&HL~VO!B?EQp+Nj(3rRKlbv5M`CaY6=8AFXSLMfv#=wF4*BLCI} z{&ffbT`c`7{JwwS|C@~ek0t+mFiaO1E)0}WW|Z-F%J?xb++@O#8TkJrhzm7JD zjKG|>7yXxG40uSTEn{d)BW)N19x6#?4ia35ZKFV7xj2ARJ;on&_aBy(EoC8_=(xR6 z;`YV(Uj7fux>(9WzR}BCVU)H0KP)Rr%0f2M%aT}qz*R`Q@Vm8#X-)0m~hQb1XaXZpXrEa21oU#A25 zU+5sX|KF!9k%Lms_>?_<*~%F%Sze zbFqWHM>ns@U7Q;}@wtSg;sdI-_@B<&F&C&(^t=Tk6BYkc)gFh|rF~)_sb?-=-BMb~ z94`Ao3Q5z6Whb)ZZQIpa@Oe0`)qp)2*i(UB<{N>%4A{j+znna8C~V*fi1Ed|4W zR}kz9+0TEvR||ZuKsj$tu3R|kjUR$X;{FJnE@V`HGWub?zhZqqqh8s6F?S*7RGu{E zUrR1UCj&oZ>PVEc>$Xm@g!*5r;=yP3y0H)A0~MpN*?oqj;|Yy zyuFfV&Iq~1^Mrc+eo3yxBy)~ zZj`Z-GJeds)%aH*w~6}yyVC;vegXgg*l}@~_O{PA0iIaQ|8-}^>W}8t%~DqXjy&=D z|FEnNq^t`AefW}rm$Cn0Sv#bx%s^Qm8D$OaSXMhf()rMN=A%tg)|8ICtsiAIp21gp zS@hv~dE5U`Ry%L|m8w10`X_jQMLl|QEtEAka;2>K-)BAG&dX-62XpI}+HcwacO?D9 zmq!%7jR%WZTk%e0JBd5AyilGs{oB9sE=5I8-^lotZ_K?H?-%K7&b{WdtR+&j)MoZK zlpewka6TCtU0vpw9tKaa!Fz-Tucq!XPF1>$dd$2LbXyEo%vhRoKJ6_IhpkBPj8#~ zKIybir_G#8`sJs$&pb}L;?rAZK1Le(*_|^Jx+VNdrQe#Y(r0rOag}o2#&s9h&0KT1 zZs)q2YZ}*Ft~PA#HWB)&rm`lP4PCrY1$9h3KAlDuYMw*z|yupb0&A8@Y%ZlS^L*qWu@-vnsV(#LrIif1qM znA**j7smRmoc-)_{z^79IrhiUTT1$$0-pV;J%emLjf`PV**v~QsI;a!c3R`j{m9`xM7Vq6lbofd*59SW~tDJLS zdT=JpQqF>5y!1??t~AOmlJj8f>J`xgNI7o$e=y&#vV`OF6JGAM*mo)VP0?>E0s5!E zob(s+NFY8?v~Lple}9Ult@U>ywQqnM8LLaX+w!J^mmZAS{t>pkv0Pu%U$+F#w=u`( zE5Py`<8&|S+oa!;eo4Cax+T?*{&M?Ek1s6hxprYuUM*=2=_jNgkbXycf^_ZaqL~T) zqM0?M4$==ur;wf?T|}Dj`OP!ees=Rr2WbuI6w(h!7m=PIz3ZJ@^5(yDXWra*Zp~Zp zPHEoV@7$KR@SWLt^WM2VZ_zt*@88)-&WwV8{N(cmGbfY2|JmI$A0fT|^Mx}%B0cfhyqRsJ3qM~p z^Z#|1F)n;Xc!`X2ljjJ35q=_kM|h0z72!R?XBKiT;+n^`Ah{Y^NW;%V=L!Gx>$FgJ zz|Xlr@EK@9`lB3P^8kI@Lq(L&utb!b{qihl1HmhM-Un^a7d@Z*zG&ui@Sa=2&9l(R zv(U)1@K0%<3Ey;~nE(%3`nkU#8eP8hyB1>0E2iItzx9t;Qav!%S$!_vZ1#N)^}WqC zjq6LU6D$0?MW=BfV_+cT;X?bEYGBM85Vh+g0ewRz=;r*U7W&Wt+(Sok@NeWwp*+xWuq%`?=PK>yr);WzZ&Os$5sS1j0l5Gi zre9T>y>qR*ySf|-}uK%@@7*;Vlikr30G< zShKGxO17!D_LjvOI88&=lKnh|c2*w1*Iv)DGjw$y^WKsi)wbkr)i!~+cJ|8yc81F> z#`D#I=c_Hqt{wM8HV+sJP2@lu*)zWRX}wPCoNI9EI6TdX?^W}F-=UAx&_{N4hKlAZ z!bU9XD#5KC+px$WHMgwDzi!2**Wu--q8zI~*wYc^v4T@Q?vy4^|i z>e0S@p0TqGH|gJXLjT+1|2gZyuTO>Dxypd~v2vs^G!$|5#|C zk@~Vp{r4)bpS3o6=1m`=BbD{{6_h3VhmXm-44ty%Ws%p&+FkU;KjYrU`I9y+u{;J} zcF7wmdH9Qpu6a1R=0?`^O=0R(SNynnz}tGC3akoRZsa@Z+wW)n4x4b-{pz3I9VZYs5Cf~D{MEq72=cInh zd!Y~VE7T)_Sbq3iIs`}PjobysJ_US&9Oxr9nX&w8-!$x}C$aB~Ua5`m#lK&%FC>$D z@o^03_&4P^lRepEm1n1viA=m7ySbPD#Xc)G^v}6>ve%_A@5OFWFEGB6qVG4tMzASo zKL7K+R{vka~_)8A$F)!)6vJH1Usef4<1eY7XmL0@f+ zU*H4pmRP8Le9HoDdx2DFPocy7h<3@kq8*QK^!04KS$XE^-wGc4_-^1E`Cjbx4+u_z z_I7*Wg8}TqCoZUT}I-INwo+ z{X(M;kSDqD@8+N%TH_+#;;8ft3 z`W_6_XH#+FU%V;f@_zJn-Q|L-)Rwx@oGL!L{@ye7&S8&_;3~Zz_A%*~y90H_cHOqW znRUgm-#EBmZXN2e;R9o*U()equDW_f{)8)^ot@4;=O)?b9OxV2L-F88>~d|?XH$Iw zKICWOAWB=sZ`!2kI_i`$XSVS=>TQJ{l(i3jcG39E#QR3`O}aI{T(4((dY0br_|BaV zZ$7gv;LU0FlgLP}QCUra{ug@E%X<3!Wjz*D){fe= z*4p$`Fiv88d-?z0!O0@N55`Gk2b_psSiJ89NZFgdS^E9~ zJuk*ruBWlS@IA!#U#|NiZ3^~9(k?XSLFN?pw|0!ta`N_Ue3IU-%KsD}Az*2z^*4iP zeH*mC4O*WajOS?IeA*~Hy;Y~Zgde26v_QX@wD%f#k@h!Q5(2ar=ldVpVzb8SwC9&N z1u~9$pPydBgK)jE9oKQ?E15&=oZBim2j2_o@fkJ8j$ZD}^Ot)}@EYI+y@A5)*uty$;H4)`(R{9o4bHXQVbTCfO6-PKyU6k2W{yDQ8UX_CIz# z@!;y=ho-%_9v?(mry*DDPAijr0mu=+ro#03vm))z6g_V)XV(?tk0>?{u^Y=7c+tcp zJ8Dg3@1=^7eG)AA_6V<)bC}%lH?coCCB-HuzKAkD{zN>4SoVK0e|t3Q5xK|UaqQvb zS2ThID3}_2hRfwdUE!TSiFtPmFE%u zZyJUlEPKKf{_@dk4Kb)=eVzc0A0izL9t7sq+?(|X9}svct3!+d{h9rv=*&EJ_7v9f z{#<+R^>;xr00n2~^J_QHpvk1}I{1HtsburIiX_Ddg~k0;5Rxw=-Z{Ro;3 zwkgQjRRWjI>8!Qmb4;AStdzg8mx3}Sr40oV6Zjx|)U!3)q*U77L>aQ*+KwG_%qdk` zFLs2SjPjlAn@;B&`r7lkj16!qesH&OmK~m3`Z?t8Wvbe3abI4RbT;Yp&IK-F29~`{ z8b|sX>4oy1bR_B9q*su>OL{%&2c)-=enxsXX+Haf7uzPgh+$ZEec(Qk`ze9@OzwXb zxWA11n*;Z`+}{?spTd1f;J$?WnSuL-+*3aO`g+-}WKzm?T}(=uuAh-oo-2=(vRuC+ zr5x8xQp#}Ms~o|$9shD;k7euB-uUK3vmY~tz2ULMUI=C1pnGpKW6qrWyvvEbtejVc zJZrn;zGow6b$iw}>rc-{Uh+2gD@a!qWL@(%*Oy$+aSi4DrF{F7%Ze_Jz6>28>7}Fv zpC{Hsx?qE5^6k+Yue`*dC->-BAYH|8zx`%2#a<;#i7vTXDh%iW_TM$5r) zXKgd<6yl4N-{El9J}`cDboJHm^_I*wVx zi0Ky2nj?a>W=~(_=&LeXt-UxOE|M{3_kD>T^`F-6zJKVlp{zkT<5bp}@S{12Yog~| z{KwomxBW3U)*2di!g4{_F-vUbUo5fVuUewRN0i*L zJwtf83J(t(5|+`VY~eeVJ=``hJi}#)4EL&D-1o?spn8U9s0i*OG9)HJFipsLjT(I7 z)S~O4odRfRGJ2JOU-oh%?)V$<9Es=l{j5;d=iPYUo$qXXPmGU6VcrPnEJ``sibW1c z%kY$t=5EaN*kYV*O`}4*5ed$=o?29crS3}a*E^Kg_T)J4H_FoRp4O|ON8?0q)2kNm zAuXZd5NnP;?>oKEXnh(IKN{~HXN_!_ra~H$KF#&sqmmkuA0O-8VU2Bw*ge7fmL)=e zcc+SP2z@8p`<4oA&{kjJy;#LGJg9m$glN$Xvs90Uhg7eIkV0qMH(E$T)2UAzdH}~) z?34X!fU^zzOT$;pIX$%Q4N;nq z{}MQCeZ#!Ao1AU$YPN>^{qHuMRLKnqF01#DifD)$Vk3=hXi;%|8{ZId`n`tVXrT?^ zqc!h~n#TKXq}|AiX{h4=?y2Ek+3#L|s=grtnE%DzgNQ7P_iOf=MQ9NX;lo3`;hMGK zYv2tZ-rakMeJ0^rctfutcH**!G}sE!v#>A7W>ek?-)~=IyCu~70KPWq#noHF=et_- zif3&3m$m1l)fc_HuE+fJ)@o?!E9iUcQmth_I?EpPo3c5pH8(O_NdI>=_qNg4I`fwI zOUTO(8SrjIR*u)=-aa~Xb#`@#d&lUUn1S!!%KJa^etC}z-tAR4&KvT0PIajJkE2(_ zT=;IN`|Z&$@VL_=^=*TO6@@|xS*XUv067q)iO~||Uiec|sLVz(uRa>DWi+kBp{cn6IU`eu3+sjp8X8Q{`d3gv+S7_`G?`n?dR(bkn?pz_vrO*OY&&Q z($UBza;7T^_KLNfqh`Q#iN_LgMfHLEZPnM2U&DEht>{-Z`<2!EAL?Fxocj;9M|-r0 zan<|FyH$VUe<)wGkLO)zwHA>>UP$!`{rj=xS*t$=2FEvpiM2$Wzz8SrE!CQq%{#5S zG2DH*$d{s{8VL_*oK$ytrS*x?l{>UO;@?*$dGNtn=4^dWFFx%q&hJ9MG2FIenxiR% zGg`Y(sNTQ4S9N1|;9DL^dIf0&DKIVXNeZ0H!%2Z>c@I)xTy7@?hUH<^jXOd-`%~Qc zmr@tyaeh<|ep{+#r_5{F7kXr`MDy$%eJ?%wTl~Z?^h{*$-a-Creo=XwM9+jwY3iAp zD5vj^0gmIdlvm2;mwa?=6*=`6diL|q7Q%TkTH^F7zi9J|dOs!kq}>6%WXHD8Pxm~1uC}*kcq#&I zuhH8c>tp}lTK6}8qwU}L|0`{my8bWPe#Z~BePE_%T5#K&&<&aW{>EU>wX~IW)OmH& zvc^bAb$a4C8(E>#_zu|PZg+ZRkA4w!B>vvwGb5?&IX;H2vT)(tRyXT|>C|1uS|7RR`|hY zSr=VTnX=w`lJXzp|MkQ&5dF9K6S_G&-O#JV`F>4#-*X&v;ZH z;22}=2*(%LayL*`A9MiH)?pt4xQ+cuH_%!SdTr!@IQTMLb@t0&Tw)BC%<|NL9qMdul7hH+% zSa_72wevQ4BjIyq-hS}5jXc(``Zp4b>P?;nAE7$k82L+C6TNPfXM9IItXFxq&0E?Y z|4ZU-y-c22w#3}>@$3(jE$8Vx&$Ga?QBR5gA9yBsupXBmp4MT{+iVO=^cp#!~|M zwaXsb`-|q^9C3_#??~I*-yXTlfGfuK^*#GO;mq{Ph4Wf(qrb%W)^CY9q*#wjp6D~) zB6dnDdK%mJ!f)6IMwq`6XgoJLTVG zyYvFj1jhJ|W2ZTzv}3Gv^PF`j@AJW{^h>4q8(;GWWOl>%z|j>Po zs4#S**qaqG@#y~{j9d~NW;|DaiLO4DK6s7s@xihrkIV!0 z(6Goofmjo5HvEia9o)I^M87Kiml0|&&tPAS?593JA7nCLnBNLLNICLt6XlBh^f!z`Qtah6_IbzovUyIKK8n~+35?N>dl0+oJ11jJ_7+RO z32!*T|F4~{S+xWlx_;|k7t0=#i*(&?tnV}GmcCw!%q8asT*$X_)`i5kD3o~`-S}tZ z$u~L;1o5M2`X4&@U-6{-DEr^xN#ZMh{01w0m@^+1g`!i`Ji2UA3_T)qNDSph#`iK{ z&v}QK7c$Rd<9vvExzTL7ce>e2euIK13dJeUxBR>1K>d&R< zcc3dnUR;)c8u*Z3H-8H)NnWbpm%42sYEN;AD@)EylJ!+H@AR_?Nkv~_j-~MbVn6&A znyCX8H}l%r_MMx~>W4I)2VmdnPK1fEs!N&vX4>0%Zg4a1mx8~vkfEL(yjMI6pV9YM zB4>UeeTXdeH&T=5tpm14;Nvn^ZaZc0oHV{Q&Mb-X)$#3;l2mwHjBf+?1HhTwKgqp` zyEiD~zr}~9odP?vBVx~jNgFYYRB_p-6A8f9%U>H?;P7&+JY=oYW#O5rnRg=WxhDq znxu|3?l$Ta9g@H)d;bLg*i@NM44G8miluxvvH@|x_Qvwf4ft}2T(Sk(Cy}-NyppV} zLgM|U-M|@^$a@~jxDkJWCFINhq4K}X9R=8iIY(U9l(rl3$?+58jb|A@=&~JE#A?*# zHTJJx!9Ox*+K4BV81U~Cn5J4|4~<0!P{UaZf>+Ta9Hu_jFEwJv7JY=Ap)B=&`YJxK zI$cHk2JwyLeMp{3UjwP*zeQiW1drz!n+AP#y;druFZ@ni8kf3PKQRVR-OL`udAT#-NCZkKAz{y zbhZ^C_r5|Ik~*Qi7r8Iw-dtZj{3_?l2tKH@3_4}+(&nz@HIb1lA+4{A9gDHLJB_hw zo@4%izzB`X7>#DE$-2ehSJC+X#QI+1z0jlRu;Qpk_}X3M>AoS{&*UCoqRc9A@;P`G znwB=3IQTjE68O53=gt>Zi8_Jy>>pd%Stk z9mSL1#JmBn^=~BxeQ)xzXs7xAQtbN?thJ#z;Z=J5`+0wa_s774-k*9*_*h@M(5_t#e~t1!_=&{r6@TV9 zUw@%l_~)aNug8iv^83p7_`&e~rVn~1w|^feeHNxhm~D|5@*hy&Jp5qjcLN4s-=o8b zj~=w)w9~%ti8~@VFTLWFQtH%%D_3xyv|3LYuF7heb0_^%Y6#rZs z{<-b%Y3rkbw%$NL{Ea?q4B%lY`blX|Fs{n=Z=-#`CKdX;i+_Y4JQ&DdNct@{&11Ts zbhPgeJU4OHbvpad<*e&8%3}?(J6PWqE%V5kHOOxDALvDH0q(kU@n+!ZPrX7jzXBee zCIj*JWsN6eWCQ=#gSV9y_NNZCtzUVbepyLB3lFx_$0hJs>2L9slKZLjwUa)cN?$9| zO#0gNi%Y>rPVD5!(z`QQ>ttw7>`SJdyyJPl!EyVKyrR~=$<;Ogv+A+=%`>{$bJ6Y} z=!IVe`wkc3k1ss74{a?(zEsFJ!vE&svoH1qLw_IR6MASO7C62xZJ*;CDE-?Nk9!=L zRHPxpRP{oJ8GHUS1>mE@O&>K|UuPC^;YP@FQjB|DG4{Qk5fZDwy;pcopSl%$9cud# zu}6qLv;>)?$(pol3~>;u*n81zwP%J8*tu?r*5{x?2A)_vFH7{GoE5eQy~`f?t{Gj+ z6#9vHA}w0DD!79()@gm&qN8HO{vp>y>K#L0x#_E7;FH)RGJnc^Aa<2p>de*pmR~Jp z^6p#YxZL=4>zb|6dO7&Vd5F=lXHxN9SxfMZlX8|c8#J&)%ECu3mvhdqgBKjbz9DtX zye*ec=p|5h33X2m)Xm-{uiX3M9$9zLYVqPXRW9STO8Qod*`+9J5Pc-_mkSxK$(rty zchS5%Fd*BjY4PPUhYi&GF_C|gcG+mdMB-4}TTXB#|}|CkTQlV^S-^Ix%aYufLfx3|>#W;Po;3 zyI5Z@QlX!_b>1H5ix1>m^)$vem{jm7eBlD_t1R)EHcjbrQYyF-nO)u`>)%KFx>1kx z<+*uZM<1b+w-dWD;3M?vCbc%_6&3Th*3(f57MO?8p4aewoW~r0V*4=9*4~zubokA7OYE-w z7Sa91`0{CAEP6oXu9hB*f7uUYtOw54^L169$oiMyW}p%!c?8I^U6 zF>?TWNHcT8QXT$iUw`12eOD&@e%7ns-fzUse;53Ve0;t(HLBK8Caz2QUTDD7^GLr7 zk0=E0&TDM?!%>edb`Ilz&dbD!rrmQbOV?E)AJ{fVBgYGk*?gDlbVST7$~qdNHmyBi z^^{rgdqnP&_&95^`+aWFT8hBE#QLSqhow##8)X(%yCGB6K1CUB<}-BAErpgx)~%E0 zdo`~?8_}LY^33;pfWJ<3L)0AyEz$OhoVt-7d{YCq#%Nyz-wN%?m~8?E>FX8zXO@QZvE2#+->xAhj*dTY zXMXpY)JY$hYc#=eSM;2sw3Y+Jv<-$m7MTkB?d~~GM zU@T+V9&|R(4d81(@xymhuPIMHhTMejksdoddj81Pqs#;D2c50m`NmCugi1;u6v8hp z+;0VU&{^$PaJPYdkY-yRt`P&o3#f1e$9SKZ^asJoH6H+K3&OA7X4463;|EUYTd9+BEYjbz$;EY=NtZ zLp^oBwdEjoD~&O!5l1s^%PV=Ayq_AOW;fC=_;OZc&t)x@Uer_dP3x(u?z}jR_vMVi z5-n`fFfB8DIQKEX7`6p_+@>1FeASdWThfWW2OOJh`=dRoPjtD^%TIuB^TJ_U0(|OW z6K=^j+S*a?CTF2jPJvO56<@r0XUbLOshbR){g3%JA@FTy{0aXuV2Sng02buZ zP0?*DpiixII`y0HY`m*yei5GwD{F#ES!dpKiKhsg2X^O}NAKMnR*Vmiy)8t>B7G9; z`R+HA$GMXD*>B3wVmx!<4HDah_tlle&a5PcW~If-6~Yx-y){|Y*5Au{Q}=2acDFl! z1AEnnzw#(*xE1-SoO!$z8h@BF`M+&*qN;^PH&+ID-Y1ezj8DP!cDZMNyWDT(J`DKI zg8i#YJloiZ+@JoN%s23|hr8^DTNWPK#{S06cykFZ80+>J&X=H#;k0o&Z5)1)Z@tVB zin%cpoXOY`zFb2cWyy>e`cR%X^DOnHkp2|-9tk5Zcbv0U_U8|V_K5p19eKOJ%~~j( z_ww%q&Q5aEuBH4hc#!YqKlwHc8eYja8N@dG7Cq!6iOyR2SKfuAd#kzExn|?P?%B74 z|0>bZ)htYzyz=Snj11!1V)vfDioPyObk~My_DQxLwsNh9y*y{};x#g_>+_oqZ=A1; za?5%u%2sWU&<6s;%HHnU==m9~=n|qbBmR;&@wwO}=qPGse@lj&J}Kf~Y4beN;Q569 z+az{B;nDJbmR?7+?~|9ipf%S}kI0VFUtjY6U$ilWzHx)2;Bq?m6Mona+v%S$`iC`+ zCpyEszL2`Er7jn++Zd}Z@K)AcjVKgYdH2)6y9wxti@`5*RH?*XD5mWt;B8&NSaZ<$2#A2^KsTiEl=4;t=QCmnK4WtaI=Q2`#JOuH7V_uH&-9)qKh_70 zvi4GKcQbBQGB+?j+th;Lt)dqY*rEl-KpzD6i}c6;2Dc~aA04;ojsH{py-yhe<3ZAM z;ZJaf%%abusqAS^<>$&BLJjZRzWP;8JId2;r`ht>26^S|gk#4aQ6TKQIZMFKh+d?a=GN&Xvy z-9+U0V7tlFe4C2hBwG4Fd@}i8>^EuT>$aPqy569!6Ras4zxUV3I%Xu_bfyQ1xh%Z& z9ln)sF5(*#M?1L}I6D6m-BEto)LH)eG4jiulzlGwC9sa%6s$wb)@d);4%)RXCWUr% z=3{lbuZ8kGMV)&8L@LjFe5c44x;K0}Vtl*Ft3oeke+xYd`&>nzC-nX%|4AB5qwZ?) zIqWERbgs7%T7Qr-&G}B`c7@y?ur=%aTk!DT!g2h0aNN~=ZLab919Lj@<&+j$E2(y$ zrA@|*_&0n%%ffyID|()@WA3O_&h`_NqsDqr%# z@5^b6;h!Nqf5i1<`GfiEc0G{)#H0uF*O!;)KQ;;73HgTxD{phWs{M+6K64k`(JFm0 zn6}w&Ojw_gab~=vSY!0@vbNpM7~}f@cx1ddpmY2?YRi-wS;k!GVy~&JEe{QLdcR^H zjnscN@|dgxX7En*Ukggo=i9JjiZ0KKE^o}Gs#JV(#*83-F*1Yb6&Wi9qBq<|I*;#< zGPg>sSNgs{{0#P!E+k*(+(o2ck={dkkkpGjQ;h!AhQ3bf_>#OCJQL&3vzjXdm^gRo zP+F_MKxALRMHM&&_W7O1WRJi&{^TY2j_f_SGsE*SZU1l47W9A4@oUi58NZR%spFuT zvFvfl!G;((#w^)i;424#EI1<~tG9k%ID>|d@pPulQVm2)zi+n(B6T=K>d?_K+j ztW5a(5&Pnu>oZPWxlhVU-x#(&Y(iQ7L9KGO4PVt}&h2Tm8g+k4-7o_djQ1HMjGoJ}dTZi^aUn~uCh+xET$?uL;!Cntus zM(0l9S)adHQ>JlWIW~Ta@Ug}Vxd_hEo5)eUmvKGA^%mDZxKv+KYj^J#(cQfJ z!$ZBzSB7|-##%X3-NKpb#HVo$^L#Z59ZkGt&%sNScO&DkCveDfCh32RcK6Vq=bU>u zg9d$dmvhglMfvpeweGx~s|2$~=YW8h~7;^ZFqCX*a81XK}7fN`h$x|hN2=xa0 zNCm&^f1Y=5pXc2gz0Na!SL&Jj_PWb_M+(QhbtF}5IwCOi2=T|SwEN?)3H8VC>E@5W zn)E$VR}X*u%UnYv{PF#|^PX=Cxn^?>3-ian5ao}*x3@q3x_h@O!w93F@WEKrgE)6q8IKk1;}IV`mpljjO~pRw zpQdX4qwqHtU&`ujmrJU>LQJRot<}QID!_juvVx2s8@%Zld_edPwxJd$GHS7$tH*lg zAmw;-)3chU$-0ub2h0%?hhRU~v)IDr-{w(b7qoersZZ+t2A(hZtn;G|@?AJ%Z_>o{ ztb>#>b-yajk@kn~FB*d*x<%CTG0+vR`KdGfz)^5Jm#pEODSCmk&Rlm1lxC!Hk!lm0*XpLDwX zPr67sntCZmbBeS#4vxOF6z-q8zF4&@B4IiHyve$0KvQ9iN{tc-xE6 z-SiQcdU~`>&5F3dnf2hQar=J5HM4kT)~w=LSr@mYWUY>HK3vUpNAVq5Gm2+qT@tDs zoO$WE2w5}(-CM35TPJo;bg+(q99bcHfPfEYMX=1g4SG1W=qkp-BzRUX=PMijJJ&-G z=iC3^alHKhbML>*We0=z|1X`orNjRJ>|bq}nSIlibMF7w&`E%AWB-51S^NL5g-2X^ zV1&N^|G@vp-Mhy}SzY`8&rAZ$1fogE9V7{~k_4+#xkW)9f?7bOHbzD4kpQ+1;H7va zP$e;_33y=?MMGPH)HXAUVuebM^$4X})LsPYrS0*UfY!limHP~c`Mp2SC7FbP=y`p= zuh;kY$IRN#ex7|>d+)W^UTf{O2YtQs|2x@}ecki_mk0jupZ^bZIsebP*lB!upiRd; z{~xksQA;KF^w@IGrN+FW!69MphZ!#$aW7*N{%-+x;t7_GcsreDp5aT&-beV%^P3vs zowQeeQM3#=4w|WOg*QE@J#fg0UkkK&snQ-zdiN`yZ#lO#2JK!~i!6TvP

    ic(D@2!x$)YGHq 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�{yj%g;Uq3U81F3dU5Ldw96qG3l5G`_ji=_ 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
    3(j{G1qe+mkL#9-_OO^ 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