diff --git a/campaign/contracts/research-completion-abi.json b/campaign/contracts/research-completion-abi.json index 0561a80..a3d0960 100644 --- a/campaign/contracts/research-completion-abi.json +++ b/campaign/contracts/research-completion-abi.json @@ -21,121 +21,14 @@ "path": "/home/alex/sots-re" } }, - "checkpoint": "campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json", + "checkpoint": "campaign/runtime/checkpoints/research-completion-abi-34e545ce9e774117dec97cf0.json", "dependencies": [ "controls-bootstrap" ], "effects": [ "Evidence-backed RE handoff and raw static captures; no game or shared database state changes" ], - "evidence": [ - { - "axis": "static-recovery", - "binaries": [ - { - "path": "dumps/sots.exe", - "sha256": "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841" - } - ], - "id": "research-completion-abi-static-run-79357a65226f61d6a86c042d", - "inputs": [ - { - "path": "verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/report.md", - "sha256": "d5a28f01002f1711cf8575ffd817a8f0998b413c6280d656e6cdad5a90a04477" - } - ], - "integrated": true, - "outcomes": [ - { - "artifact": { - "path": "verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json", - "sha256": "4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c" - }, - "criterion": "ownership-recovered", - "status": "pass" - } - ], - "path": "verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json", - "sha256": "4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c", - "source": { - "engine": { - "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", - "path": "/home/alex/sots-engine" - }, - "re": { - "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", - "path": "/home/alex/sots-re" - } - }, - "source_binding": { - "engine": { - "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", - "path": "/home/alex/sots-engine", - "sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd" - }, - "re": { - "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", - "path": "/home/alex/sots-re", - "sha256": "e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4" - } - } - }, - { - "axis": "validation", - "binaries": [ - { - "path": "dumps/sots.exe", - "sha256": "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841" - } - ], - "id": "research-completion-abi-validation-run-735fcb8f4876c10285b03fad", - "inputs": [ - { - "path": "verify/results/saves/turn3-state.sav", - "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" - }, - { - "path": "verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json", - "sha256": "4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c" - } - ], - "integrated": true, - "outcomes": [ - { - "artifact": { - "path": "verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json", - "sha256": "6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433" - }, - "criterion": "independent-cross-check", - "status": "pass" - } - ], - "path": "verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json", - "sha256": "6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433", - "source": { - "engine": { - "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", - "path": "/home/alex/sots-engine" - }, - "re": { - "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", - "path": "/home/alex/sots-re" - } - }, - "source_binding": { - "engine": { - "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", - "path": "/home/alex/sots-engine", - "sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd" - }, - "re": { - "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", - "path": "/home/alex/sots-re", - "sha256": "e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4" - } - } - } - ], + "evidence": [], "id": "research-completion-abi", "inputs": [ "Existing binary fingerprint/address contract and private RE findings", @@ -161,7 +54,7 @@ "Start with findings/subsystems/{events,observedtech-append,research-replace}.md and campaign/pilots/research-replacement.md; cross-check binary bytes/decompilation rather than merely repeat notes. Anchors: RecordObservedTech 0x007ba1a0, EventStorage::PostEvent 0x008862b0, PlayerEvent constructor 0x0084ee30. Addresses are hypotheses to validate against fingerprint and actual tools.", "Produce recovered signatures, ownership/lifetime rules, short/long string and empty/full-capacity container paths, and exact unresolved dependencies with minimum next probe. Store raw tool outputs and a hash/provenance index in your owned RE results directory. Keep code-derived material out of engine repo." ], - "status": "accepted", + "status": "needs-revision", "stop_conditions": [ "Stop affected interpretation on binary fingerprint mismatch, contradictory ownership/ABI evidence, unavailable original data, or any scope-changing surprise; record and escalate to Astra", "Checkpoint every 20 calls/15 minutes and before compaction/stopping; return exact next RE action within 40 steps", diff --git a/campaign/contracts/research-live-record-bridge.json b/campaign/contracts/research-live-record-bridge.json index 1b38f80..9c0fb3c 100644 --- a/campaign/contracts/research-live-record-bridge.json +++ b/campaign/contracts/research-live-record-bridge.json @@ -41,7 +41,7 @@ "path": "/home/alex/sots-re" } }, - "checkpoint": "campaign/runtime/checkpoints/research-live-record-bridge-7b7432a9c65bd530392291c3.json", + "checkpoint": "campaign/runtime/checkpoints/research-live-record-bridge-646a5ada115eaf0a3924db19.json", "dependencies": [ "research-completion-abi" ], diff --git a/campaign/runtime/checkpoints/research-completion-abi-34e545ce9e774117dec97cf0.json b/campaign/runtime/checkpoints/research-completion-abi-34e545ce9e774117dec97cf0.json new file mode 100644 index 0000000..4c4c5a6 --- /dev/null +++ b/campaign/runtime/checkpoints/research-completion-abi-34e545ce9e774117dec97cf0.json @@ -0,0 +1,27 @@ +{ + "actor": "live-record surprise resolver", + "artifacts": [ + { + "path": "campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json", + "sha256": "d01550dd8874160d05378f6183d780c444a5285a4ebc5d3c6049fbda8e342957" + }, + { + "path": "campaign/runtime/decisions/d-6f4134237e68860fb02e8684.json", + "sha256": "7d4cac7b55de6bec11f7d32261a3ce9da946e937f2924032423b65a97799fb48" + }, + { + "path": "verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json", + "sha256": "ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b" + } + ], + "basis": "aaddeb76f74bbd1a43671f882770ec84a7d690b4060d060ef1a68f918e8edbb0", + "contract": "research-completion-abi", + "id": "34e545ce9e774117dec97cf0", + "model": "openai/gpt-6-astra", + "next_action": "Lead assigns a fresh bounded research-completion-abi analyst repair quantum to rehash binary/tool, reproduce the four named static windows and correct the interpretation per d-b51f3f76803e852ed250846a before independent integrated reacceptance.", + "role": "resolver", + "schema": "sots-checkpoint/1", + "session": "run-f63d1e050a7ee3fac7b44885", + "summary": "RESOLVER HANDOFF. Observation: recovered-static.md zero-temporary-turn assertion conflicts with hash-checked raw get/create and append captures. Decision d-b51f3f76803e852ed250846a supplies exact claim domains, corrected generated wording, cheapest probe and invalidation; dependency status needs-revision, two evidence records withdrawn and verifier verdict invalidated. No source changes. Assigned engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23/common /home/alex/sots-engine/.git and RE HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7/common /home/alex/sots-re/.git checked, both already dirty. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 not freshly rehashed. Capture binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and tool 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd are historical bindings, not current executable reproduction. Checkpoint artifact hashes matched manifest; no game execution or live safety test. Shell scope prevents binary/tool rerun; fresh analyst reproduction remains required. No VM/build/Ghidra access or mutation, no lease acquired, no delegation, commits or staging. Lead must assign repair through normal campaign controls; bridge and replacement readiness cannot use revoked acceptance. Integrator publication pending corrected integration; do not edit board history.", + "timestamp": "2026-09-10T04:19:56.187035+00:00" +} diff --git a/campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json b/campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json new file mode 100644 index 0000000..1f0cc34 --- /dev/null +++ b/campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json @@ -0,0 +1,47 @@ +{ + "actor": "live-record bridge architect", + "artifacts": [ + { + "path": "verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json", + "sha256": "ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b" + }, + { + "path": "verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt", + "sha256": "f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3" + }, + { + "path": "verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt", + "sha256": "57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15" + }, + { + "path": "verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt", + "sha256": "eb887fbef7b4686530d2fc1c0caf2c2ee78c761aa3706cebcf3c146a22480b2e" + }, + { + "path": "verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt", + "sha256": "e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1" + }, + { + "path": "verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt", + "sha256": "3c38887e60d009ab904772b13be93ac1eedd9bee85024e37110160a625db3a83" + }, + { + "path": "verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt", + "sha256": "67777b4a5f658d4629a24770929979494739b6b3bcb0075fb8af17c782d080be" + }, + { + "path": "campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json", + "sha256": "db60a0f8cb666707b422960873b905d4f8a449f7b288a612c8d48c604dc1d379" + } + ], + "basis": "6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8", + "contract": "research-live-record-bridge", + "id": "3374a5a2a8d056e7b4dc261c", + "model": "openai/gpt-5.6-sol", + "next_action": "Launch one fresh bounded openai/gpt-6-astra resolver quantum for open surprise s-5a78d3a0a10c1f8545df8eb1, using this contract, canonical state root and the same paired worktrees, and execute the surprise probe before any TurnEvents architecture editing resumes.", + "role": "architecture-review", + "schema": "sots-checkpoint/1", + "session": "run-472955e277202c411388c66b", + "summary": "QUANTUM-END CHECKPOINT. OBSERVATIONS: requested model openai/gpt-5.6-sol was available and matched the role registry. Assigned paired identities remained engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23/common-dir /home/alex/sots-engine/.git/source digest ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and RE HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7/common-dir /home/alex/sots-re/.git/source digest 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Binary and objdump identities remained SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd. Read-only capture run-472955e277202c411388c66b produced nine zero-return, nonempty-stdout, empty-stderr windows for get/create, append, growth, nested copy/destruction, TurnEvents destruction/allocation/range copy and vtable. Manifest SHA256 is ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b. Fresh bytes show local TurnEvents at EBP-0x24 receives vptr and zero nested header but no EvTurn write at EBP-0x20 before append; append copies that indeterminate word, then get/create overwrites stored EvTurn with requested turn after temporary nested-vector cleanup. This contradicts the accepted dependency prose claiming a zero temporary turn. DECISIONS: recorded open surprise s-5a78d3a0a10c1f8545df8eb1, enumerated surviving/qualified/overturned claims there, and paused all affected TurnEvents architecture encoding. Contract is blocked pending Astra; no JSON/architecture interpretation was amended behind a caveat. TESTS: independent manifest hash/returncode/stdout/stderr validator passed for all 9 windows; campaign validate passed; campaign status exposes the open surprise and blocked state. RESOURCES/BLOCKERS: VM144 lease remained released and no VM, Ghidra, build host, game, allocator or engine operation ran. No delegation, commit, stage or push occurred. Sole blocker is Astra resolution of transient EvTurn initialization and acceptance impact.", + "timestamp": "2026-09-10T04:15:45.749898+00:00" +} diff --git a/campaign/runtime/checkpoints/research-live-record-bridge-646a5ada115eaf0a3924db19.json b/campaign/runtime/checkpoints/research-live-record-bridge-646a5ada115eaf0a3924db19.json new file mode 100644 index 0000000..115515e --- /dev/null +++ b/campaign/runtime/checkpoints/research-live-record-bridge-646a5ada115eaf0a3924db19.json @@ -0,0 +1,39 @@ +{ + "actor": "live-record surprise resolver", + "artifacts": [ + { + "path": "campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json", + "sha256": "d01550dd8874160d05378f6183d780c444a5285a4ebc5d3c6049fbda8e342957" + }, + { + "path": "campaign/runtime/decisions/d-6f4134237e68860fb02e8684.json", + "sha256": "7d4cac7b55de6bec11f7d32261a3ce9da946e937f2924032423b65a97799fb48" + }, + { + "path": "campaign/runtime/checkpoints/research-completion-abi-34e545ce9e774117dec97cf0.json", + "sha256": "f209b48701f3ada32863022115038297740557310ecca2c6a7ddb0e73a4eeec6" + }, + { + "path": "verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json", + "sha256": "ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b" + }, + { + "path": "verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt", + "sha256": "f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3" + }, + { + "path": "verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt", + "sha256": "57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15" + } + ], + "basis": "6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8", + "contract": "research-live-record-bridge", + "id": "646a5ada115eaf0a3924db19", + "model": "openai/gpt-6-astra", + "next_action": "Lead assigns one fresh bounded research-completion-abi analyst repair quantum to freshly hash binary/tool and reproduce get/create, append, nested empty-copy and cleanup windows, then correct interpretation exactly per d-b51f3f76803e852ed250846a for subsequent independent integrated reacceptance.", + "role": "resolver", + "schema": "sots-checkpoint/1", + "session": "run-f63d1e050a7ee3fac7b44885", + "summary": "QUANTUM END, resolution only. OBSERVATIONS: inspected complete get/create, append, nested copy and destructor raw text; no EBP-0x20 write before append, scalar copied before final requested-turn store, temporary cleanup precedes that store. Initial checkpoint rehashed manifest and two decisive stdout artifacts to recorded identities. Captures report positive static execution only; no game/allocator experiment. Assigned paired HEAD/common directories verified engine 7741d42fc5e4e761e6449bdaf0e4a61d00036a23 /home/alex/sots-engine/.git; RE 3bfde5a70d874a723e797a695bbd847fd82c0aa7 /home/alex/sots-re/.git. Both trees pre-existing dirty, no source edits. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 not freshly recomputed. Historical binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841/tool 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd are manifest bindings, not fresh binary verification; shell denied source-binding/executable reproduction, no bypass. DECISIONS: d-b51f3f76803e852ed250846a and d-6f4134237e68860fb02e8684 overturn zero temporary EvTurn only in captured miss path, preserve scoped normal-return facts and qualify all transient/failure/live claims. Propagated dependency surprise s-c6786945b302de2a0b629960 and original bridge surprise both resolved through controls. ABI two evidence records withdrawn and verdict invalidated; ABI and bridge needs-revision, no acceptance. research-replacement remains proposed; readiness gated by reaccepted ABI, accepted live bridge and all original criteria. Corrected generated-row wording, invalidation scope and cheapest authorized analyst reproduction are in actual decisions; no board edits. TESTS: campaign validate passed after resolutions and dependency checkpoint. No live tests, unit tests or fresh objdump run claimed. BLOCKERS: fresh binary/tool/source identity, static repair, independent integrated reacceptance and all bridge readiness/runtime requirements remain. RESOURCES: VM144 local lease released; no guest access verification, no lease acquired, no VM/build/Ghidra mutation or cleanup required. No delegation, implementation/architecture edits, stage, commit or push. Lead/integrator must assign repair and later link decisions/regenerate projections after integration.", + "timestamp": "2026-09-10T04:20:32.577219+00:00" +} diff --git a/campaign/runtime/checkpoints/research-live-record-bridge-6bbfc33bf92bea8f03b42aaf.json b/campaign/runtime/checkpoints/research-live-record-bridge-6bbfc33bf92bea8f03b42aaf.json new file mode 100644 index 0000000..8b2f225 --- /dev/null +++ b/campaign/runtime/checkpoints/research-live-record-bridge-6bbfc33bf92bea8f03b42aaf.json @@ -0,0 +1,27 @@ +{ + "actor": "live-record bridge architect", + "artifacts": [ + { + "path": "campaign/research/research-live-record-bridge.md", + "sha256": "07f096d4ef2bc0104f52ab7e17727e9bd856393557084bfbd98b455930a00df6" + }, + { + "path": "campaign/research/research-live-record-addresses.json", + "sha256": "1bb9364fcb8cda6c3339165ff3f35ab4a6e23ad5355358200465e5fb19c746a1" + }, + { + "path": "verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json", + "sha256": "b60b5c956968477b6c2a0422115b3bf92942c474af0254a21723e47e45020bf3" + } + ], + "basis": "6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8", + "contract": "research-live-record-bridge", + "id": "6bbfc33bf92bea8f03b42aaf", + "model": "openai/gpt-5.6-sol", + "next_action": "Run pinned /usr/bin/objdump read-only captures for 0x00885380 and each directly invoked TurnEvents helper into verify/results/research-live-record-bridge/run-472955e277202c411388c66b/, recording exact argv, stdout/stderr hashes and return codes.", + "role": "architecture-review", + "schema": "sots-checkpoint/1", + "session": "run-472955e277202c411388c66b", + "summary": "PRE-EXPERIMENT CHECKPOINT. OBSERVATIONS: canonical contract is needs-revision with dependency research-completion-abi accepted and no open surprises. Requested model openai/gpt-5.6-sol is present in opencode models and matches campaign/models.json. Assigned engine worktree HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23, git common dir /home/alex/sots-engine/.git, source digest ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd. Assigned RE worktree HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7, git common dir /home/alex/sots-re/.git, source digest 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Both match contract baseline and recorded paired paths; dirty manifests are pre-existing and source-bound. Canonical RE HEAD is 7a780b7f22912a5f835e512f30ca3790c0193b1d and differs from baseline as expected for campaign state. Binary SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and /usr/bin/objdump SHA256 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd match the planning package. VM144 lease is released; no lab resource will be touched. Campaign validation passes. DECISION: perform only the checkpoint-directed read-only local-binary capture of EventStorage get/create TurnEvents 0x00885380 and directly invoked helper windows into a new immutable run directory, then update only owned architecture artifacts. No engine implementation, VM, Ghidra, build-host, commit, stage, push or delegation.", + "timestamp": "2026-09-10T04:10:11.274733+00:00" +} diff --git a/campaign/runtime/checkpoints/research-live-record-bridge-d08b4bbf364f3305ee2fef98.json b/campaign/runtime/checkpoints/research-live-record-bridge-d08b4bbf364f3305ee2fef98.json new file mode 100644 index 0000000..bfdac4e --- /dev/null +++ b/campaign/runtime/checkpoints/research-live-record-bridge-d08b4bbf364f3305ee2fef98.json @@ -0,0 +1,27 @@ +{ + "actor": "live-record surprise resolver", + "artifacts": [ + { + "path": "verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json", + "sha256": "ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b" + }, + { + "path": "verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt", + "sha256": "f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3" + }, + { + "path": "verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt", + "sha256": "57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15" + } + ], + "basis": "6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8", + "contract": "research-live-record-bridge", + "id": "d08b4bbf364f3305ee2fef98", + "model": "openai/gpt-6-astra", + "next_action": "Inspect affected accepted interpretation and campaign resolve semantics to record a scoped decision and invalidate the false zero-initialization acceptance.", + "role": "resolver", + "schema": "sots-checkpoint/1", + "session": "run-f63d1e050a7ee3fac7b44885", + "summary": "OBSERVATIONS: read canonical policy, contract, supplied checkpoint, sole open surprise s-5a78d3a0a10c1f8545df8eb1, affected accepted research-completion-abi contract/checkpoint and raw get/create/append windows. Raw entry contains no store to EBP-0x20 before append. Assigned HEAD/common-dir verified: engine 7741d42fc5e4e761e6449bdaf0e4a61d00036a23 /home/alex/sots-engine/.git; RE 3bfde5a70d874a723e797a695bbd847fd82c0aa7 /home/alex/sots-re/.git. Both trees have pre-existing dirty/untracked files; no edits. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 are not freshly rehashed. Shell overlay denied combined source-binding/status command; no workaround. Manifest records binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841, objdump 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd and 9 successful static captures, not game execution. DECISION pending further dependency/provenance review; no acceptance. VM144 local lease released; no live access checked, no resources acquired/mutated, no experiment, delegation or source edit. BLOCKER: affected architecture remains blocked; fresh executable rehash/reproduction unavailable in resolver shell scope.", + "timestamp": "2026-09-10T04:17:49.453904+00:00" +} diff --git a/campaign/runtime/decisions/d-6f4134237e68860fb02e8684.json b/campaign/runtime/decisions/d-6f4134237e68860fb02e8684.json new file mode 100644 index 0000000..1b8bcb4 --- /dev/null +++ b/campaign/runtime/decisions/d-6f4134237e68860fb02e8684.json @@ -0,0 +1,14 @@ +{ + "actor": "live-record surprise resolver", + "contract": "research-live-record-bridge", + "explanation": "Resolution session run-f63d1e050a7ee3fac7b44885. Governing claim-by-claim analysis, exact generated-row wording, provenance limitations and dependency invalidation are in campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json, not an alternate board history. Direct review of hash-checked complete get/create and append captures confirms no temporary EvTurn initialization before append; cleanup occurs before final requested-turn store. OVERTURNED: zero temporary turn and necessarily zero copied scalar in captured miss path. SURVIVES: captured normal-return ABI, last-match hit scan, vptr/empty nested header, scalar-copy plus nested deep-copy structure, temporary nested cleanup and final returned bucket with requested turn. QUALIFIED: incoming stack word is unspecified by this routine, not measured randomness/nonzero; final equivalence requires valid containers and successful helpers. Transient observers, padding, full-capacity/failure/unwind and live allocation remain untested. Unrelated observed-name, event equality and string ownership hypotheses are not falsified or newly certified. Manifest records positive static tool execution, not game execution; no instrument ran in game, no stale-build conclusion. Current binary/tool rehash and executable reproduction were not permitted in resolver shell; historical binding is not fresh acceptance.\nAffected dependency research-completion-abi is now needs-revision, both evidence records withdrawn and verdict invalidated by d-b51f3f76803e852ed250846a. Bridge had no evidence to invalidate; prior checkpoint is superseded, and zero-default-derived readiness/architecture assertions cannot be used. Bridge acceptance criteria ALL remain mandatory. This resolution permits only lead-assigned static correction/reproduction planning; it does not authorize bridge implementation, runtime fixtures or replacement wiring. Do not reproduce an uninitialized C++ read or silently declare zero initialization byte-exact: explicitly separate semantic normal-return fields from transient/padding behavior and retain complete write accounting. Lead must repair/reaccept ABI first; then assigned architect may encode the decision through documented generated channels and fill all missing readiness inputs. research-replacement remains proposed and unable to advance on withdrawn ABI acceptance; its other W1 claims are unchanged, not accepted. Integrator links actual decisions and regenerates projections only after integration. No implementation, architecture source, lab or publication edits performed.", + "id": "d-6f4134237e68860fb02e8684", + "invalidated_checkpoint": "campaign/runtime/checkpoints/research-live-record-bridge-d08b4bbf364f3305ee2fef98.json", + "invalidated_evidence": [], + "model": "openai/gpt-6-astra", + "probe": "Cheapest discriminator: complete-window stack def/use inspection of 0x885380..0x88544a and 0x884cb0..0x884d8f, already performed on checkpoint-hashed raw text; no EBP-0x20 write before append. Next authorized analyst quantum must freshly hash binary/tool and rerun those manifest commands plus nested empty-copy/cleanup, correct the dependency interpretation using d-b51f3f76803e852ed250846a wording, then obtain independent integrated reproduction. No VM needed for this correction. Any later transient sentinel experiment requires separate explicit lease/authority, positive execution and instrument-neutral controls; existing live runtime-matrix and negative-control requirements are not waived.", + "role": "resolver", + "schema": "sots-decision/1", + "surprise": "s-5a78d3a0a10c1f8545df8eb1", + "timestamp": "2026-09-10T04:19:28.345551+00:00" +} diff --git a/campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json b/campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json new file mode 100644 index 0000000..cb92a62 --- /dev/null +++ b/campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json @@ -0,0 +1,121 @@ +{ + "actor": "live-record surprise resolver", + "contract": "research-completion-abi", + "explanation": "Astra resolution, session run-f63d1e050a7ee3fac7b44885. OBSERVATION/PROVENANCE: reviewed complete raw get/create and append windows in verify/results/research-live-record-bridge/run-472955e277202c411388c66b; checkpoint d08b4bbf364f3305ee2fef98 rehashed manifest ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b and both stdout artifacts to their recorded hashes. Historical capture manifest binds sots.exe 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and objdump 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd with positive nonempty exit-zero static execution. Current binary/tool were not rehashed or rerun: resolver shell denies that operation. Worktree HEAD/common directories match baselines; dirty content is not inferred from HEAD. No game or hook ran; read-only disassembly introduces no runtime instrument effects. No stale-build or game-mechanism diagnosis is justified.\nOVERTURNED, exact captured normal miss-path domain: temporary EvTurn is initialized to zero, and append necessarily copies zero (recovered-static.md lines 68-69). Complete entry has no call before append and no store to EBP-0x20: prologue writes SEH at -4/-8/-c, stack reservation does not initialize locals, saved registers/cookie are below -24; miss stores vptr at -24, nested pointers at -1c/-18/-14 and EH state at -4. ECX names receiver+4. Append external-source branch loads source+4 at 0x884d62 and stores destination+4 at 0x884d6c, then nested-copy, then advances last at 0x884d78. Temporary nested cleanup at 0x885422 precedes requested-turn store to last-0x14 at 0x88542d.\nSURVIVES in those static windows for valid containers and normally returning helpers: ECX receiver/one stack argument/ret4/EAX bucket ABI; full last-match scan; vptr and empty nested-header initialization; scalar EvTurn copy distinct from nested deep-copy; cleanup of temporary nested vector; final new bucket turn equals requested turn and EAX=last-0x18. Existing unrelated ObservedTech, PlayerEvent equality and archived-state measurements are not falsified by this finding.\nQUALIFIED: transient EvTurn is an incoming stack word not initialized by this routine, not a measured random value or necessarily nonzero. Post-return semantics are statically usable only on successful normal paths with valid allocations; no conclusion about failure, reentrancy, transient observers, live allocator safety or all-byte/padding equivalence. Deep-copy/unwind outside inspected empty nested path retain prior static-only scope, not newly reproduced runtime coverage. Complete 0x18 layout must distinguish semantic fields from uninitialized/padding bytes, not invent defaults.\nINVALIDATION: controls withdraw both current integrated evidence records research-completion-abi-static-run-79357a65226f61d6a86c042d and research-completion-abi-validation-run-735fcb8f4876c10285b03fad and their verdict/checkpoint as acceptance, retaining raw historical measurements. ownership-recovered and independent-cross-check must be re-established against corrected interpretation; archived-state byte claims themselves are not overturned. No silent criterion waiver.\nREVISED SCOPE/NEXT: lead assigns the ABI owner a read-only identity/reproduction-and-correction quantum, then independent integrated verification and normal reacceptance. Generated row wording: On miss, initializes TurnEvents vptr and three nested-vector pointers; temporary EvTurn at +4 is not initialized by this routine. Append copies that incoming word, deep-copies nested vector and advances last. After temporary nested-vector cleanup, get/create writes requested turn into stored last element and returns it. Normal-return static semantics only; transient word, padding and failure effects are not runtime-certified. No source edits made by resolver. Bridge and replacement readiness remain gated by reaccepted ABI and all existing runtime criteria. Integrator must link this decision and regenerate projections after integration, not copy another history onto board.", + "id": "d-b51f3f76803e852ed250846a", + "invalidated_checkpoint": "campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json", + "invalidated_evidence": [ + { + "axis": "static-recovery", + "binaries": [ + { + "path": "dumps/sots.exe", + "sha256": "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841" + } + ], + "id": "research-completion-abi-static-run-79357a65226f61d6a86c042d", + "inputs": [ + { + "path": "verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/report.md", + "sha256": "d5a28f01002f1711cf8575ffd817a8f0998b413c6280d656e6cdad5a90a04477" + } + ], + "integrated": true, + "outcomes": [ + { + "artifact": { + "path": "verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json", + "sha256": "4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c" + }, + "criterion": "ownership-recovered", + "status": "pass" + } + ], + "path": "verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json", + "sha256": "4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c", + "source": { + "engine": { + "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", + "path": "/home/alex/sots-engine" + }, + "re": { + "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", + "path": "/home/alex/sots-re" + } + }, + "source_binding": { + "engine": { + "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", + "path": "/home/alex/sots-engine", + "sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd" + }, + "re": { + "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", + "path": "/home/alex/sots-re", + "sha256": "e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4" + } + } + }, + { + "axis": "validation", + "binaries": [ + { + "path": "dumps/sots.exe", + "sha256": "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841" + } + ], + "id": "research-completion-abi-validation-run-735fcb8f4876c10285b03fad", + "inputs": [ + { + "path": "verify/results/saves/turn3-state.sav", + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + { + "path": "verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json", + "sha256": "4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c" + } + ], + "integrated": true, + "outcomes": [ + { + "artifact": { + "path": "verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json", + "sha256": "6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433" + }, + "criterion": "independent-cross-check", + "status": "pass" + } + ], + "path": "verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json", + "sha256": "6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433", + "source": { + "engine": { + "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", + "path": "/home/alex/sots-engine" + }, + "re": { + "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", + "path": "/home/alex/sots-re" + } + }, + "source_binding": { + "engine": { + "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", + "path": "/home/alex/sots-engine", + "sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd" + }, + "re": { + "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", + "path": "/home/alex/sots-re", + "sha256": "e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4" + } + } + } + ], + "model": "openai/gpt-6-astra", + "probe": "Cheapest discriminator is read-only complete-window def/use review, performed on hash-checked archived get/create and append text here; no pre-append EBP-0x20 store exists. Before corrected acceptance, authorized analyst freshly hashes binary/tool and repeats manifest argv for those two windows plus nested empty-copy/cleanup, explicitly checks prologue stack offsets and cleanup-before-final-store order; independent verifier reproduces the corrected integrated package. No VM is needed for this interpretation repair. If transient runtime equivalence is later required, separately approve a leased fixture with two deliberately distinct initialized stack sentinels and spare/full capacity, pre/post-store observations and neutral controls; it is not authorized or executed here.", + "role": "resolver", + "schema": "sots-decision/1", + "surprise": "s-c6786945b302de2a0b629960", + "timestamp": "2026-09-10T04:19:02.935461+00:00" +} diff --git a/campaign/runtime/runs/active-research-live-record-bridge.json b/campaign/runtime/runs/active-research-live-record-bridge.json index 1e25b9d..5a04f42 100644 --- a/campaign/runtime/runs/active-research-live-record-bridge.json +++ b/campaign/runtime/runs/active-research-live-record-bridge.json @@ -1,5 +1,5 @@ { "contract": "research-live-record-bridge", - "run": "run-e21ce0d2909d8647e6a99a7b", + "run": "run-f63d1e050a7ee3fac7b44885", "status": "complete" } diff --git a/campaign/runtime/runs/run-472955e277202c411388c66b.json b/campaign/runtime/runs/run-472955e277202c411388c66b.json new file mode 100644 index 0000000..0630b69 --- /dev/null +++ b/campaign/runtime/runs/run-472955e277202c411388c66b.json @@ -0,0 +1,10352 @@ +{ + "actor": "live-record bridge architect", + "checkpoint": "campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json", + "checkpoint_session": "run-472955e277202c411388c66b", + "command": [ + "opencode", + "run", + "--format", + "json", + "--model", + "openai/gpt-5.6-sol", + "--agent", + "sots-lead", + "Start a FRESH bounded campaign quantum (40 steps). No delegation.\nRole=architecture-review; requested model=openai/gpt-5.6-sol; actor=live-record bridge architect; checkpoint session=run-472955e277202c411388c66b.\nCanonical state root: /home/alex/sots-re\nContract: /home/alex/sots-re/campaign/contracts/research-live-record-bridge.json\nLatest checkpoint: campaign/runtime/checkpoints/research-live-record-bridge-7b7432a9c65bd530392291c3.json\nEngine worktree: /tmp/opencode/sots-final-research-engine\nRE worktree: /tmp/opencode/sots-final-research-re\nRead canonical campaign/README.md, contract, latest checkpoint and open surprises before work. Verify source/worktree/resource identities. Only edit owned scope. Missing state means blocked. Do not commit, stage, push or mutate lab resources without explicit authority and a lease. Checkpoint every 20 tool calls or 15 minutes, before experiments, compaction and stopping; persist under canonical campaign/ using tools/campaign.py with the session above, exact model, actor and role. Include observations versus decisions, source identities, artifact paths, tests, blockers and ONE exact next action. Fresh checkpoint at quantum end is mandatory. Record a surprise and pause affected work if assumptions are falsified. Sol loop authority: perform approved architecture/planning work in owned scope. Do not rely on chat resume or automatic compaction." + ], + "completed_sessions": [ + "ses_f767f9fe3ffeUJ96GrQrTPvFgG" + ], + "config": { + "canonical_files": { + "campaign/agents/analyst.md": "895c41509016038b3f72c4a68608c4101511e69c5bf410e379286da1a6202952", + "campaign/agents/implementer.md": "eb5581051a92b3d2b9ddd947812b1c02ff6a0b5e7619e7674adc26701e9a3d91", + "campaign/agents/lab.md": "48f1765ebdcb2015e631ad91428f65735ff899e119134b652f70788ff2eae5b8", + "campaign/agents/lead.md": "8fcfe52be845ed98a172afb47ea888b19bb7bffa80f7b50ace58d2bb66924220", + "campaign/agents/resolver.md": "742c36dc8567669d462566d6121eed42fcff5bff34e8eff466e92249f7ca195f", + "campaign/agents/verifier.md": "e467fc644e4e37d631a7a4e35038d9d3d0498491f1d7811d61d99271ff345c6b", + "campaign/models.json": "00f959ff4ce16ba22f6befa7a9d495eb85d62d9e8001b1e1345eaae0e11b6e48", + "opencode.json": "027ab29992ab9a5a6ee20bd649ac002f5f3397030d18b070eb949cc42179de99" + }, + "effective": { + "agent_sha256": "b02d472ebe2f40dc62e3513b13294967e7cd2082dddcad8388a159e22ee0cd6a", + "sha256": "058e686030acbf2d6135031ce9b6178f24aff646241c3d44456e76db6570151c" + }, + "expanded_prompt_sha256": "761069d92e23d25f187f4d93d0fd45daff411085e85bcf644709d8f7ceb3ab9c", + "overlay": { + "agent": { + "sots-lead": { + "model": "openai/gpt-5.6-sol", + "permission": { + "bash": "allow", + "external_directory": { + "*": "deny", + "/home/alex/sots-re": "allow", + "/home/alex/sots-re/*": "allow", + "/tmp/opencode/sots-final-research-engine": "allow", + "/tmp/opencode/sots-final-research-engine/*": "allow", + "/tmp/opencode/sots-final-research-re": "allow", + "/tmp/opencode/sots-final-research-re/*": "allow" + }, + "glob": "allow", + "grep": "allow", + "list": "allow", + "question": "deny", + "read": "allow", + "task": "deny" + }, + "prompt": "You are the SOTS lead/integrator, running GPT-5.6 Sol. Read AGENTS.md, campaign/README.md,\nguides/multi-agent-workflow.md, selected contracts, latest checkpoints and open surprises.\nState lives in the explicitly selected canonical RE repository. Do not reconstruct it from chat.\n\nOwn architecture, task boundaries, model allocation, independent acceptance and integration.\nSelect work by dependencies unlocked and complete write sets, not row/leaf counts. At most two\nimplementation slices after the pilot. Delegate through tools/run_agent.py with explicit role,\ncontract, state root and paired worktrees. No nested worker delegation or implicit model fallback.\nValidate model availability before assigning work. Astra problem-resolution sessions are\nallowed when explicitly allocated. Keep exclusive file and resource ownership clear.\n\nWrite acceptance before implementation. Require independent verification and integrated source-\nbound evidence. Only you publish current pointers/projections. Never promote a historical claim\nwithout the stated workload, identity, coverage and reproduction. Host passed != full acceptance.\n\nHandle surprises as experiments: record evidence, block affected work, examine instrument/source\nidentity, list surviving/qualified/overturned claims, choose one discriminating check, update\ncontracts and invalidate affected results. Do not hide contradictions in appended caveats.\n\nCheckpoint every 20 tool calls/15min and before compaction, experiments, handoff or stop. At a\n40-step quantum boundary persist exact next action and finish; next session resumes from RE state.\nFollow explicit user authorization for commits/pushes; this rollout authorizes neither.\n", + "steps": 40 + } + }, + "model": "openai/gpt-5.6-sol" + }, + "path": "/home/alex/sots-re/opencode.json", + "sha256": "027ab29992ab9a5a6ee20bd649ac002f5f3397030d18b070eb949cc42179de99" + }, + "contract": "research-live-record-bridge", + "cwd": "/tmp/opencode/sots-final-research-re", + "ended_at": "2026-09-10T04:16:12.227774+00:00", + "error_events": 0, + "event_count": 124, + "id": "run-472955e277202c411388c66b", + "log": "campaign/runtime/runs/run-472955e277202c411388c66b.jsonl", + "malformed_events": 0, + "max_steps": 40, + "observed_model_status": "unavailable", + "observed_models": [], + "observed_sessions": [ + "ses_f767f9fe3ffeUJ96GrQrTPvFgG" + ], + "requested_model": "openai/gpt-5.6-sol", + "resolution_only": false, + "returncode": 0, + "role": "architecture-review", + "schema": "sots-run/1", + "source_after": { + "engine": { + "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", + "files": { + ".gitignore": { + "mode": 420, + "sha256": "5103c9533f0d31fea29c0cc85d543692af84a697416dfa7557e31c9843210145" + }, + "AGENTS.md": { + "mode": 420, + "sha256": "7d1d4bc05c35e3354a77b3c8d5d2c04fb9d6658d09e87bc814a50bc3d2033fb7" + }, + "CLAUDE.md": { + "mode": 420, + "sha256": "15d60c3d592302a2854df8bf6d39c0a578c22b9273a633447e10b76fd76291f5" + }, + "CMakeLists.txt": { + "mode": 420, + "sha256": "6e9791511ea23bf8bf5f7f58617a7e77bbe5006829609e425e565c11c1e8d7ed" + }, + "CMakePresets.json": { + "mode": 420, + "sha256": "fcd1dfe3989ee4f56fa3e419059e1db5621922165edf05f13cfe8e5d786d8bb0" + }, + "CONTRIBUTING.md": { + "mode": 420, + "sha256": "26a381fe08feb51f861655f77de4e558f056d1dba79162a2e82513a92d0e6506" + }, + "LICENSE": { + "mode": 420, + "sha256": "eedebad43ea495111bf4451d78cb440309d90a733d6a36445699dde0629f1858" + }, + "README.md": { + "mode": 420, + "sha256": "66c2437fe4f074e6499de50b0d5f0d013bc290333f4d4bf554b541261885a0c1" + }, + "cmake/toolchain-mingw-i686.cmake": { + "mode": 420, + "sha256": "231c0b79868a77d54cc6619f0b4ea18454964a1a078806f44a6ffe3fb7741a9b" + }, + "docs/A2-alliance-and-modcount.md": { + "mode": 420, + "sha256": "0c0c45c31d5d64124f3b91a161f8a2f4732c8a5d7f6bc524baf4d59f8a191701" + }, + "docs/AC-predictions.md": { + "mode": 420, + "sha256": "ab9e41714abdbc32e620d8a2068be8ebd2fc8898ba149113c66ccda248b4bcda" + }, + "docs/B1.md": { + "mode": 420, + "sha256": "42b61bbfc135cdcd0f1a32f63164b88e67106400de7f08f543f118eccd814364" + }, + "docs/B2.md": { + "mode": 420, + "sha256": "87dfd333ee15681a3aa4de58cf1b14ff8240e75afabc05012e0f28531cb4b8b8" + }, + "docs/B3.md": { + "mode": 420, + "sha256": "fb65c41037b6cd6252c67e5244d492a3a17ea4ba2ddae821d49fe0a879528518" + }, + "docs/B4.md": { + "mode": 420, + "sha256": "22547b3d2960684e52a380fb07f43a75bf50aebf93cede689f297cf38f4a012d" + }, + "docs/B6-ship-construction.md": { + "mode": 420, + "sha256": "9c5c4fd2059af965e317c9db5b7fbfc440397ddfcdc5bf7860115f6a8a0532ab" + }, + "docs/CB-capture.md": { + "mode": 420, + "sha256": "ce45a9082588051eda7438016dc66eb28bb4afda98b82cdc20102c4ca53529f0" + }, + "docs/CB-predictions.md": { + "mode": 420, + "sha256": "ba51538b018cbb403978f97ad45d4743937d49ba55c8f15d7af8f8e4aa441f0f" + }, + "docs/E-events.md": { + "mode": 420, + "sha256": "de98795aadb1617eab91815ebc34818bef8b52c36ba18b4521170065bfd2d201" + }, + "docs/EV-events.md": { + "mode": 420, + "sha256": "e7d9536cd23f5d800dc97f68167bb738088a16136004419f28de92d7fe1bcfb9" + }, + "docs/G-wire-schema.md": { + "mode": 420, + "sha256": "19db69ae359ddbd2a0509d02f1c616f939e0428480a8bb33c81f69145323a591" + }, + "docs/G3-civilian-growth.md": { + "mode": 420, + "sha256": "38ea3a8ddc3fdca258294d949c4cd2af1a930cdd9ba612d5e8fb48bc446bdf30" + }, + "docs/H-probes.md": { + "mode": 420, + "sha256": "f23e4d4cbc8c9a3000a0a58ed994dddd95466cee1ec45e961685e86dde4dc54f" + }, + "docs/L1-predictions.md": { + "mode": 420, + "sha256": "af97dbc9f15b9c2e6f223c89bac17826056fa4f3bced3c01513c1ad4d9ac1754" + }, + "docs/L2-predictions.md": { + "mode": 420, + "sha256": "18213ce5f3375d478f266de85c38c2b04ca2ae8ab4a2023780dca161fa14f460" + }, + "docs/L3-predictions.md": { + "mode": 420, + "sha256": "d1c9c0006079f47ef0d3371f4a2c2df2fe4f08ebdad0f8a12d1b0de35b15ae7e" + }, + "docs/L4-ai-orders.md": { + "mode": 420, + "sha256": "b04127c5158a882f252b2b6e8afb2d131f0de623cc0c62c86c612af803d75835" + }, + "docs/L4-predictions.md": { + "mode": 420, + "sha256": "6a194ae336920f13d8e4a44549cbe26be959beef81cffed88ef03b3cec563e44" + }, + "docs/L5-live-verification.md": { + "mode": 420, + "sha256": "4c1abe57c516b36f383390164a362f53294feda222c623283f1e6091d8ef0ec4" + }, + "docs/M-movefleet.md": { + "mode": 420, + "sha256": "718338edb8cbe8a449793b22889776a1783d1d0ade553c03973ea45d426eb426" + }, + "docs/M0.md": { + "mode": 420, + "sha256": "e121c380612a42727e3a973d8cf50f884d660bb4b43bc494258dc1c6b6f26705" + }, + "docs/M1.md": { + "mode": 420, + "sha256": "e0a36cf109d096748e55522eb8d7a261764cbf5ab5daf9342ba903d0f2bc6704" + }, + "docs/M2.md": { + "mode": 420, + "sha256": "25f9cad74eeee40afc2117333232384e1cf387b2b9132856650234c5ba593c61" + }, + "docs/N-output-term.md": { + "mode": 420, + "sha256": "3b8317e22714ef66b35efceee6fa0f7057c37f7c6e34d93cc5047cd1dd07ecde" + }, + "docs/P-events-wiring.md": { + "mode": 420, + "sha256": "72ee81b71b4c08ae451721c785dc5e01ed4ca43ff0fd474befca09dcc41599ba" + }, + "docs/PAR-predictions.md": { + "mode": 420, + "sha256": "16e8fbbac5001db0b10d766858c0ae2ea9619f37043a0883ee46da80d4dd4846" + }, + "docs/PL-players-residual.md": { + "mode": 420, + "sha256": "9bc29bc030ee8b0e00e496b91fe8fefac15179ce9fd01c0a11a7b5b5335356dc" + }, + "docs/R-recapture.md": { + "mode": 420, + "sha256": "73c62ab20c5eca5e87e1d18aefa60a2a2acd75cbc7510d31b27a2cd4ebcec38f" + }, + "docs/RB-predictions.md": { + "mode": 420, + "sha256": "c1016781505c10aa304d4710c5389918b744ab20cbd8cb54dce462c3dc28e4e7" + }, + "docs/S-standalone.md": { + "mode": 420, + "sha256": "8979b0a9fef33a55ca15bf3ef78064e72df332033354329ff2471ad6648e4a8e" + }, + "docs/SD-predictions.md": { + "mode": 420, + "sha256": "a76a568ccac7409e3cb3acef724dbe6b618d4ec30259bce33594098daff8b6a0" + }, + "docs/SV-script-objects.md": { + "mode": 420, + "sha256": "80ebd120fa9cf5e68ac4d33117966805b917d24bc339f7d82be972a280449409" + }, + "docs/T-turn-driver.md": { + "mode": 420, + "sha256": "a4096b8223cea87ce77cc64014c489d4625ed36fd3aec1358565ca5cf91d4e1e" + }, + "docs/U-unlock.md": { + "mode": 420, + "sha256": "5cbe3d8fb4bd30d029cb2db006a4dd3c6819885f55f434afb4bc8ae79b526901" + }, + "docs/V-eventlive.md": { + "mode": 420, + "sha256": "ebd08c000f42211e87958278f03d6891475cd8557658e1a42105cf5ed45a1aa1" + }, + "docs/W2-predictions.md": { + "mode": 420, + "sha256": "9972e27467cf0fe23a358818caf7edb979de25697d3aa4b97a2135ca79fe34f5" + }, + "docs/W2-watchpoints.md": { + "mode": 420, + "sha256": "f8634c5f977b2ca9b2e07df105cba09adacaeb6fb4cf046e41e5e1e42b83b107" + }, + "docs/W3-predictions.md": { + "mode": 420, + "sha256": "211cedc2d924bcf47cbb73166b408e9a27d795863ffc90aa2adbb85beeadffcf" + }, + "docs/W3-watchpoints.md": { + "mode": 420, + "sha256": "568e818e66d95f9079a1270c4d9b900c7eecfd5b5a3b4ba5a4aa0c843666f061" + }, + "docs/Y-standalone-rng-and-tail.md": { + "mode": 420, + "sha256": "49d926cc505d6ba07753748366e42ec32493a15c76bfaa45b2f66f52adc57f2b" + }, + "docs/Z-tail-rng.md": { + "mode": 420, + "sha256": "3ed2b40f728bcedd663c305cce13481bad1429af03fd5215ee3189161cfbd7f1" + }, + "docs/architecture.md": { + "mode": 420, + "sha256": "ba4732eb8a4c7054df5136a72d1774e4f1e919a517a1c74e975903fdd254422f" + }, + "docs/game-data.md": { + "mode": 420, + "sha256": "2124ea3d117b4ee6f48660d9711c1b4ef844a4ba37af7cea3766914d77bd6b23" + }, + "docs/game-design.md": { + "mode": 420, + "sha256": "5b40349ad446596b534567a5683cf9ea99709d9eff231890e0f6256c755f0272" + }, + "docs/game-effects.md": { + "mode": 420, + "sha256": "e1e0abc162602daaac255fe44b11c511adf45d4ef5fa188268411829b0817e5d" + }, + "docs/game-sim.md": { + "mode": 420, + "sha256": "d1e14770d252fd2f320a7baa1ad54c90d955cfc840f477d1700cfbbadcec730e" + }, + "docs/harness-audit.md": { + "mode": 420, + "sha256": "931d92cc744ec6ca3d961fbe7fe96dcab28060446058eb78be9835ebbce73ed0" + }, + "docs/mars-parse.md": { + "mode": 420, + "sha256": "d9fa3029ade4f9401c59fb88f4520a1ef3af9a9c6f2bb5d1a0ebfa1d5061d6dd" + }, + "docs/mars-rng.md": { + "mode": 420, + "sha256": "f2a01b88f105d07d0d0d514430e76da7632e5c8e4e3bbd6c99a25f1dc5daa89c" + }, + "docs/mars-stream.md": { + "mode": 420, + "sha256": "61a16c9b7c143b4bc2edee473cf1f8bd06c1a5144c120bc563e5ec6d770dd0e7" + }, + "docs/mars-text.md": { + "mode": 420, + "sha256": "2b6c7d2eecbb684160e7565d1d7224eb0d2f7e9a41f4d807095a182ea605dcf1" + }, + "docs/mars-vfs.md": { + "mode": 420, + "sha256": "1508c2a070d56f4fdabac3c2ef1fd08d3f93d7a3045d59158340ee22a6ff1b62" + }, + "docs/shim-trace.md": { + "mode": 420, + "sha256": "8a059c1ba761b366449c2db8ef248656da917050ed28855c6d812ecf91672fa5" + }, + "include/generated/sots_addresses.h": { + "mode": 420, + "sha256": "fc34ac4ee8cc7fea91c447b5715841dc6d3afe36f9aff04e88b6c29b5b64f448" + }, + "include/generated/sots_stream_schema.h": { + "mode": 420, + "sha256": "13446ce54d60a0b29adcefb51aeb5127a0a3ca8de2bd1665e4778ba5354bff8c" + }, + "opencode.json": { + "mode": 420, + "sha256": "9af560c2a49945e964beb689649c13775e2aaaf691af270a565d6c6826f76c15" + }, + "src/app/CMakeLists.txt": { + "mode": 420, + "sha256": "142999eded2ff494745ce550af76a8f8caf0269ad22d6d5650e7a79c19d22717" + }, + "src/app/alliance.cpp": { + "mode": 420, + "sha256": "37d6e57f7ce82a69a595cf474e7be7a544efef210f960e9cdfeab6168826bac9" + }, + "src/app/alliance.h": { + "mode": 420, + "sha256": "08fa8dc96286c7cb15a90a987fa22b17e195522e642ab8303b659ca58739eafd" + }, + "src/app/command_replay.cpp": { + "mode": 420, + "sha256": "739059930cd3a5f1d988522ff50c60d8657664a66c9fe19b019833f417b55824" + }, + "src/app/command_replay.h": { + "mode": 420, + "sha256": "956429a742554cada2124de49c6955e27b0e5d68db87dcc95b22c75ec7bd93c2" + }, + "src/app/construction_phase.cpp": { + "mode": 420, + "sha256": "025cd0ea1a7badd567f7f1cd59330b1e01149b5c5094575fbd438683658bb0df" + }, + "src/app/construction_phase.h": { + "mode": 420, + "sha256": "a4d39994096683a1144eb20282b205cf71e2045873cc15b53bdac214ab1e9a5e" + }, + "src/app/event_phase.cpp": { + "mode": 420, + "sha256": "80717fa7c7f108004d5250f12b6c994752a1a55d7f32c7d3ebf29f2869118c90" + }, + "src/app/event_phase.h": { + "mode": 420, + "sha256": "54077268fe4705270dc06bdc46a6fd9384fb5e0d36da19e55ea149b478d8cf34" + }, + "src/app/growth_phase.cpp": { + "mode": 420, + "sha256": "5924d2641fc98d902b56a3e6417d7a57d70c1564718951b098e7d14376ebc4e3" + }, + "src/app/growth_phase.h": { + "mode": 420, + "sha256": "8222ef811abff161c8f891a331a52e527de54fbf468949d1e0e188adc473ae3b" + }, + "src/app/main.cpp": { + "mode": 420, + "sha256": "adfd7dd177439bfd57509532bcf0f37779281ae9309daa93efe1ada3ef3f57a7" + }, + "src/app/observed_phase.cpp": { + "mode": 420, + "sha256": "31fb99678d60de6901b4bb1b251abe2421453264653cf5f7bd297a376c2b23f3" + }, + "src/app/observed_phase.h": { + "mode": 420, + "sha256": "f88fc22a5cb21a43e196d7fae09446126635d3284e6b398bca234f265234b693" + }, + "src/app/phase_catalog.cpp": { + "mode": 420, + "sha256": "e3da16e6d499b7836953251d940ce171792ada208156ca583277298f305fc316" + }, + "src/app/phase_catalog.h": { + "mode": 420, + "sha256": "da6fff506002079d8277358d0095981dc260449dc19677a533ef25ab709aed87" + }, + "src/app/report.cpp": { + "mode": 420, + "sha256": "da3feb6043f6e68cb9ea763f7242ac153a5944c59f448284faf34c64ad6b9228" + }, + "src/app/report.h": { + "mode": 420, + "sha256": "0495d164458ddb7187ce3105f82cee06cf9cf6c5b73ed8cb6e434e1d2e0f8481" + }, + "src/app/script_phase.cpp": { + "mode": 420, + "sha256": "61eeeeb7eac3145cee938ccfc564b231b6968ce7926fb9599c136134f0d5ea91" + }, + "src/app/script_phase.h": { + "mode": 420, + "sha256": "e52006ff939fa945870fafdc2412ba67e3d5e1cc2aa51c0ca0a884ce630aa1b7" + }, + "src/app/trade_raid.cpp": { + "mode": 420, + "sha256": "07d6bb904e655bb644ff6df2e417adb448487bb67acb62240ec5ecc978eabebf" + }, + "src/app/trade_raid.h": { + "mode": 420, + "sha256": "10e0b1460eb7810f1fcd61e67d47333373f06bdacf5a11372958a84a91084e52" + }, + "src/app/treaty.cpp": { + "mode": 420, + "sha256": "317463fc0e2a6ca7eaa4e2f096c3821655a4623de4085af44d951ed500837575" + }, + "src/app/treaty.h": { + "mode": 420, + "sha256": "836395a85868cbd6b7fda8f1d304128fd7cc6952aff37003e8e119a5ce0251f9" + }, + "src/app/turn.cpp": { + "mode": 420, + "sha256": "a626ddf80a340de50b70f09bf91c0180d255c533e65edce1532d807fcf5109b4" + }, + "src/app/turn.h": { + "mode": 420, + "sha256": "85c87aab5c5b5ad5a6a34cc9db710b1cf77dec1a7145ba1e0b5e17fff9a6a237" + }, + "src/app/turn_record.cpp": { + "mode": 420, + "sha256": "e1eb0b253e964ab4f8be1333f81e193ac64109544da384cbdf21858cbf931e4d" + }, + "src/app/turn_record.h": { + "mode": 420, + "sha256": "78d8d2948bd04bff5e7d2c55955b726f1cd7552a765e608e390209e03856f76d" + }, + "src/app/visibility_phase.cpp": { + "mode": 420, + "sha256": "34d9df699af3e57823ec8457c442408da854028f9b95db5820171caad0823131" + }, + "src/app/visibility_phase.h": { + "mode": 420, + "sha256": "60db50f5b98c5edafc86a33f982a7773acc291c1a18f9cf23323e53ebadcde27" + }, + "src/game/ai/CMakeLists.txt": { + "mode": 420, + "sha256": "f51509a2699f02ecab9faa1f75feaa38c299e6bbbe08bfbe5e8e86722037f6eb" + }, + "src/game/ai/agent.cpp": { + "mode": 420, + "sha256": "e1bbddc3deb797d62ae9c2b24bc811ec9379699992dd838694bd5eadc73feef7" + }, + "src/game/ai/agent.h": { + "mode": 420, + "sha256": "48aa26f32d52a3f8f4e37ed5c6986b1e87a8fe1e780d5314514eb5c75b8bc244" + }, + "src/game/ai/apply_order.cpp": { + "mode": 420, + "sha256": "122ffea1090382fd01bc505fd30c59557dfec2c9846609d00da6e80109da2253" + }, + "src/game/ai/apply_order.h": { + "mode": 420, + "sha256": "a3b7a1ca26243ba0fdd801b78978175db6f76e297a72876fa0a35e12f38e09b3" + }, + "src/game/ai/command_capture.cpp": { + "mode": 420, + "sha256": "cb9a1d37af9f66e78d368e03aeabec01e4d48f76aaa30348a51f4c70a915e4ec" + }, + "src/game/ai/command_capture.h": { + "mode": 420, + "sha256": "921599e5b2aa8b773db00134618efde687c7d9ba739abd787ec7666f4cfeb78f" + }, + "src/game/ai/orders.cpp": { + "mode": 420, + "sha256": "1b775eb1a030bc6e81e5b7702cbf8ad56288860276e8a0475da66f7367542640" + }, + "src/game/ai/orders.h": { + "mode": 420, + "sha256": "c2a3b8fe1a7c46a1c1104bc87be8696d9f0782cc304d27cb96d0ec6b182f12ae" + }, + "src/game/ai/tasks.cpp": { + "mode": 420, + "sha256": "b05878ccd94c375aac8723c8ea9499f77b98fb94acc5a75a15fa1948dbe83c76" + }, + "src/game/ai/tasks.h": { + "mode": 420, + "sha256": "b1de4f89c1679ccfdeaa8b852cb2ce407b71dcd1bffacf97df389a69f6ae3a5d" + }, + "src/game/ai/turn_order.cpp": { + "mode": 420, + "sha256": "858b12c51c4509e16a22a6c080d1c6b47bd23d2b8a11f84a48d34f24c4635f22" + }, + "src/game/ai/turn_order.h": { + "mode": 420, + "sha256": "3e76710928fc2df52fd8312abfb8f23a2ce162f8e0856f46672a4f46b5b4384f" + }, + "src/game/combat/CMakeLists.txt": { + "mode": 420, + "sha256": "4b3a05c45360e312d6c1d96c1f05a60437d19d2046257835e0d6c70ecc4ce115" + }, + "src/game/combat/retreat.cpp": { + "mode": 420, + "sha256": "eede86a4d25289dfc9132d5776b11114a109179e5aa10f2b985035e5b22d7a1f" + }, + "src/game/combat/retreat.h": { + "mode": 420, + "sha256": "5fc3e002a5f1944f29c74f862ff942b894e40e88afafd52358373ada36644d7d" + }, + "src/game/config/CMakeLists.txt": { + "mode": 420, + "sha256": "c746021654505c92be333cefb9df994431679d40d8d654b937feb950684830f7" + }, + "src/game/config/config_loader.cpp": { + "mode": 420, + "sha256": "d903ba06747e5b7d66400d03ee1f0a9896bf4268bb200dec0b5c8599dbd3d3a1" + }, + "src/game/config/config_loader.h": { + "mode": 420, + "sha256": "fda71dee1a4e2b896760e9ac344768e176ea4f0a08609c7d651033a1ee698085" + }, + "src/game/config/manifest_loader.cpp": { + "mode": 420, + "sha256": "dbe33dc5ae03db18f3b2c01b48cc1fced10f2cca599270c0a028321a7d7dd7c6" + }, + "src/game/config/manifest_loader.h": { + "mode": 420, + "sha256": "68e508b9e6d1222d980b22ae826b127693fdf0821b6539ed9e62a8ec031aa5b5" + }, + "src/game/config/msvc_sort.h": { + "mode": 420, + "sha256": "17fcb13bb49a634c80be38299617c6c16fd8addedfa88c53d67242c90b811716" + }, + "src/game/data/CMakeLists.txt": { + "mode": 420, + "sha256": "677ba0dd0ebb8176f4e7c41d5550f2ccedd56d49e7e4acb1eb0a7970e9e98a51" + }, + "src/game/data/block.cpp": { + "mode": 420, + "sha256": "f61312708c715ce525ed1a01e71f1446d31fc96ca1cc51f5bd863cac51702200" + }, + "src/game/data/block.h": { + "mode": 420, + "sha256": "f14155dfca5fd270ad6b4d462458aa8cd5c5edf5e19da4df492ee2907e99eccc" + }, + "src/game/data/catalog.cpp": { + "mode": 420, + "sha256": "7799ad3b31d43236cacbc51c3ab086265927f98b1346005a8adfed2796178ebc" + }, + "src/game/data/catalog.h": { + "mode": 420, + "sha256": "80223146bcdbf4808776f974df7e5f46b120a021979a22f50b5ce2d74ec16d6e" + }, + "src/game/data/common.cpp": { + "mode": 420, + "sha256": "e58ba046844be11c61f7f7e501829b48b4f16e7c0ab78f10fcf9189c133cf040" + }, + "src/game/data/common.h": { + "mode": 420, + "sha256": "d1ac8375c1be133a98a383e01598f393f194e1bd9790d1c1230bc6121a45a187" + }, + "src/game/data/fields.h": { + "mode": 420, + "sha256": "4209df368ad776b3c24350246acf47ad874fcbbe292fb16f9ca7dacaef2f08fb" + }, + "src/game/data/shipsection.cpp": { + "mode": 420, + "sha256": "82d5ba9be2a446e50934b0b9a03b16839bd3acd1a967d9441180a1baaa271264" + }, + "src/game/data/shipsection.h": { + "mode": 420, + "sha256": "bcf100f83691226c4993dd7866b67a0b48d9b4bc6841463fbf07f0f26bf9dca0" + }, + "src/game/data/strings.cpp": { + "mode": 420, + "sha256": "6d983d3a4cb4284215301409587136fb765a5e6a4c9f4b988e01d710c0815f59" + }, + "src/game/data/strings.h": { + "mode": 420, + "sha256": "fb292bd472ed68eb4a5e93484f3f92d8a0ae8661e6a61ca4b417ab889c508055" + }, + "src/game/data/techtree.cpp": { + "mode": 420, + "sha256": "2ac6e39faeef808c97375f3b8a3ee219fcab8cc09921f0ed8d82eef7374eb9ea" + }, + "src/game/data/techtree.h": { + "mode": 420, + "sha256": "504946c255405ab28d20d0ed6c095b3b63f0e6865afe0e8bb0707e607c363007" + }, + "src/game/data/turrets.cpp": { + "mode": 420, + "sha256": "ce7db50ef10825e168fee2bf57c4b6038dd1a356be7ada9ed6a4f6a4f31b07a4" + }, + "src/game/data/turrets.h": { + "mode": 420, + "sha256": "f01603ad32b0ffdf891c88cc54c39a725c6a436f8dda79ac23e7505e59853c64" + }, + "src/game/data/weapon.cpp": { + "mode": 420, + "sha256": "accb5aab2081babb26443cd257f292909e19440c40346e098144148922f5d3f6" + }, + "src/game/data/weapon.h": { + "mode": 420, + "sha256": "63aeb670ae7b8a1fd6daa35ed60ebe41a87f62a6ec2a12f44b13f9052c55b009" + }, + "src/game/design/CMakeLists.txt": { + "mode": 420, + "sha256": "42692f7917d99fb5b9e392c2d0f1d908b2bc5c61fc2e5687fddbd665dafe0bef" + }, + "src/game/design/defaults.cpp": { + "mode": 420, + "sha256": "8efa0b79646525375739a1acfe77e75d5ae6b669d1ecaa01f49f3f5183caf528" + }, + "src/game/design/defaults.h": { + "mode": 420, + "sha256": "20af056628f362a4d5ad7ba6277135697718197ec6844ae0ae85bf06d4cd818b" + }, + "src/game/design/design.cpp": { + "mode": 420, + "sha256": "e166281c52a6d92fed8810b38bd736cbd2a324f15d290a39a539d01ff35ead20" + }, + "src/game/design/design.h": { + "mode": 420, + "sha256": "7e936c78ca10c3a49470da67f1659cf4ee323d14d50b5b2c1ada08edfa8f6997" + }, + "src/game/design/hull.cpp": { + "mode": 420, + "sha256": "554b0ef6955ac230c7eca29ea2d94d60b5fbc91f34d9ff457091577c8602268a" + }, + "src/game/design/hull.h": { + "mode": 420, + "sha256": "997018e59c9d78ee1da7e7cb9561b94b76befacbe348a4ce3301c5f22b582461" + }, + "src/game/design/rules.cpp": { + "mode": 420, + "sha256": "a623984f9ab40c354320051fec00bab2c7e3728c2c90082b3b8051294b906319" + }, + "src/game/design/rules.h": { + "mode": 420, + "sha256": "70a8a42fe82e9805cbb957717688ab9f9eb3438226f6e0d696ef5f7a51529229" + }, + "src/game/design/stats.cpp": { + "mode": 420, + "sha256": "c05f420a00026289be8693c0d80bbd2354ce354a91a78459cfc8e70467326c54" + }, + "src/game/design/stats.h": { + "mode": 420, + "sha256": "ba0a5d3bcc98f5c3e64579d42da70bfdf563773ce2fe1e6bfa2b36b14c453fe5" + }, + "src/game/effects/CMakeLists.txt": { + "mode": 420, + "sha256": "2e20f138f98bc69653c8360a26f99f3f43f35beedea5e90dfd7e9721e7550f89" + }, + "src/game/effects/tech_effects.cpp": { + "mode": 420, + "sha256": "40358c2af37543ca3ab09b4d0433cdb4b0d2d212b45f648739cc86e979501604" + }, + "src/game/effects/tech_effects.h": { + "mode": 420, + "sha256": "ef70addf2caf1e3abf36ac9d878a8db37d2adbac370957f5b6a0b5825564a0d6" + }, + "src/game/effects/tech_id.cpp": { + "mode": 420, + "sha256": "11cd652e81a52e86d72541a5c3de77bb50de3d31226272e0d1856e5a15b7f9a6" + }, + "src/game/effects/tech_id.h": { + "mode": 420, + "sha256": "f37752250c80c9c75ef8e144e4646dc1290a2cc8ce72d9a37949c6408996df86" + }, + "src/game/events/CMakeLists.txt": { + "mode": 420, + "sha256": "9b1f14a3801a991ba065e0e39ae2e3fa3966018e8a98fcceeddeaca3909328e2" + }, + "src/game/events/event_log.cpp": { + "mode": 420, + "sha256": "3b131879ec5e81cd1ba2bb0cbdfa6e05775ed77684f4ed7a8f5cfae87da1e7b1" + }, + "src/game/events/event_log.h": { + "mode": 420, + "sha256": "2ff415b1120ca3f28421006a566280fb977027cfa3f209bdba0986350376a953" + }, + "src/game/events/research_events.cpp": { + "mode": 420, + "sha256": "9520b20eba2a2b4bd5925f13b420d526fc610d06aae7ffad314e3002c4f5a253" + }, + "src/game/events/research_events.h": { + "mode": 420, + "sha256": "b87340c6b14e9de97e5bc0c5a4cbd74e54bab2831c60edf88c0e42ff5218ea22" + }, + "src/game/nav/CMakeLists.txt": { + "mode": 420, + "sha256": "79cc0ba25c6d49f7784663ace033d01ab3d85a5d8015fe2f466f8f1a3065983a" + }, + "src/game/nav/pathplan.cpp": { + "mode": 420, + "sha256": "04cfe8fca5be565f5443c8f1402eb0072221dbd63f70855e35b3eeea752f1775" + }, + "src/game/nav/pathplan.h": { + "mode": 420, + "sha256": "28b51f737b458679888e555d985b9e8d41adf8ba91fa0980b5e83668758c86e7" + }, + "src/game/sim/CMakeLists.txt": { + "mode": 420, + "sha256": "4b3085116f88c903a137abef6806891f7b7245dcb031153df7a5465dd2521116" + }, + "src/game/sim/colony.cpp": { + "mode": 420, + "sha256": "e0f0bf15d87b6ac2e92053cbfe0869c0dbf9465d90a9bae5456bb46883423b77" + }, + "src/game/sim/colony.h": { + "mode": 420, + "sha256": "357dce21440140a6cf836a3c12175ebb5bb6706c37d5ecd315a4ee4937725b47" + }, + "src/game/sim/construction.cpp": { + "mode": 420, + "sha256": "8cf4792f487162ca3599f16f0e92d73b4c9549046044548c5aecf202dd564130" + }, + "src/game/sim/construction.h": { + "mode": 420, + "sha256": "a7f201101ad704f1994f809259ad60f780760fa36174d99a1ccd9299447f5460" + }, + "src/game/sim/economy.cpp": { + "mode": 420, + "sha256": "1e0b17b589496a6139e8ca10fe20553050be7c965a02daf8b520dd5020412d89" + }, + "src/game/sim/economy.h": { + "mode": 420, + "sha256": "6f3e33e803bb49367d4cee3c8ef6186f04b79e7cf901047fc48d933108ab6d2a" + }, + "src/game/sim/movement.cpp": { + "mode": 420, + "sha256": "80c64b2148304b84683cf3860ced1354f5c29c923bbc50cc5001030dd85c2cd2" + }, + "src/game/sim/movement.h": { + "mode": 420, + "sha256": "9a6b2b4960428634d8004cd5694ed6a7a10ab28fd9c0e2a9824ede3e201e9441" + }, + "src/game/sim/numeric.h": { + "mode": 420, + "sha256": "88f715192ea322ace4eea13ab5ae55f7f41600262025208e468b5259220522c2" + }, + "src/game/sim/observed.cpp": { + "mode": 420, + "sha256": "43d29a9fe1195dcc0b7e6101ea05bfd076f03636f9f68de473539c83db0ddd22" + }, + "src/game/sim/observed.h": { + "mode": 420, + "sha256": "0224b5bf341f30ff0e98d910547261b6732bdc0c5339b520e26fc51939c1269f" + }, + "src/game/sim/player_turn.cpp": { + "mode": 420, + "sha256": "beb1b2ed434df3727e676ac56e751beff87fa98e4a42e4657cc54d41025773a2" + }, + "src/game/sim/player_turn.h": { + "mode": 420, + "sha256": "f24f8f5e161486575cd341c2f5bfed46fa6983263edcf2320e9c24860b4be51a" + }, + "src/game/sim/research.cpp": { + "mode": 420, + "sha256": "95f2d325544ee018ec8d0f945e91b4172f6ba406f95e19f86c4fb9aac6b22a89" + }, + "src/game/sim/research.h": { + "mode": 420, + "sha256": "e27a311e977afb2e01242938dc8d928e9a67d1f761965e191cf907e05c1c86e9" + }, + "src/game/sim/rng.h": { + "mode": 420, + "sha256": "f7e5bbced3dbd37deb49a00b52d05f7c751501d654dabd645ecff7447355929c" + }, + "src/game/sim/scriptobjects.cpp": { + "mode": 420, + "sha256": "a4f9a1b49e4ba22a88726efbbea2f355b40a3c006734d9150d509a344720a4d2" + }, + "src/game/sim/scriptobjects.h": { + "mode": 420, + "sha256": "210d0eb51780df70a9bca133664429589c03ea33e4524e2c182801d4b4a5c74b" + }, + "src/game/sim/species.h": { + "mode": 420, + "sha256": "83b44c0600b99c5acb72a3484bb0708cfba765cdf594aede596a3c47d5ee6298" + }, + "src/game/sim/techgraph.cpp": { + "mode": 420, + "sha256": "81f8f1120eb1fa4a77752bd2e0917df3dd76372461416526ae510bd697944ef8" + }, + "src/game/sim/techgraph.h": { + "mode": 420, + "sha256": "b2fc90666080a6b7f27dc9290eef17774d57742c2a1f9e1f77d94c7fa5689f6e" + }, + "src/game/sim/tuning.h": { + "mode": 420, + "sha256": "4acfad4098de951cc3a94ca25a2f200e96caba1836bf7441de5a2b458c022194" + }, + "src/game/sim/visibility.cpp": { + "mode": 420, + "sha256": "25f86a34f9a98d2439672283a446ba1804973dae3f6d9aa3692342b05f3a3ac0" + }, + "src/game/sim/visibility.h": { + "mode": 420, + "sha256": "783896489a2a9ec8bce617b141bfb631e8ef92f958be7b5c2ca64fd75774471f" + }, + "src/mars/parse/CMakeLists.txt": { + "mode": 420, + "sha256": "76c290b786a3e73387ec8c574fd5a0dbeb6e629adbe970426314f16497f59fa9" + }, + "src/mars/parse/blocks.cpp": { + "mode": 420, + "sha256": "e60baa8127b21cf6eb6c8e2aa02c6a72c6403dbc29e8480ff658bf184266675b" + }, + "src/mars/parse/blocks.h": { + "mode": 420, + "sha256": "1e8b76919a584d1d7fb01c5ff5e3a7173e8456eca892d61f0c6b7bb8f02f33b1" + }, + "src/mars/parse/effect.cpp": { + "mode": 420, + "sha256": "beb76a841a3d42dbc157413384ff1a0312a7068d6b22020eadcee2e1cbbc81f9" + }, + "src/mars/parse/effect.h": { + "mode": 420, + "sha256": "aaa5c83f2d8eef24667bf05d0f71b2a346f2fce09dc9a45d7a5197c894922e44" + }, + "src/mars/parse/result.h": { + "mode": 420, + "sha256": "58cff456e353550abcd0f52e031d9d70f2b7a975f4762cfccc64eb6bc748dbd9" + }, + "src/mars/parse/script.h": { + "mode": 420, + "sha256": "69a493268c47a08672694489a51c3ff0a7f9aa870e5ae5a93d47ba033cf21ad3" + }, + "src/mars/parse/value.cpp": { + "mode": 420, + "sha256": "712133e4d725649f5461e6a46bac6842b0751ac3fb7e1c468f826638ec58f623" + }, + "src/mars/parse/value.h": { + "mode": 420, + "sha256": "60d692648dab7e3e216c8d9e6ef212592ba1df1a98260b1b4599354742947b38" + }, + "src/mars/rng/CMakeLists.txt": { + "mode": 420, + "sha256": "dceb4bc0fb35c95a12ed9aa36380e79aa75641b15ecc06e4289d39824087e2dc" + }, + "src/mars/rng/mt19937.cpp": { + "mode": 420, + "sha256": "0c60775e9437b8eaad49f67a96001c81947c8d9e6d2472e28b2b490515bac95b" + }, + "src/mars/rng/mt19937.h": { + "mode": 420, + "sha256": "300836ab26fd1a4d913b395f08770bb2c248029ef1b80ecbf0c4d886adca2b8e" + }, + "src/mars/stream/CMakeLists.txt": { + "mode": 420, + "sha256": "95ffbb0c519e55b7423ab048a3019e295b7ef3a3e9506044ef2e68569df9601a" + }, + "src/mars/stream/archive.h": { + "mode": 420, + "sha256": "84d9ae2bb3d6f444b3933b3816cafd12caee8619d2219f19cd10d32cfad01d2e" + }, + "src/mars/stream/bytes.h": { + "mode": 420, + "sha256": "9f5869952c9d6b925db32995a417ba292a0c1a672fc3850400150afb8163b3f1" + }, + "src/mars/stream/dump.cpp": { + "mode": 420, + "sha256": "1b5bba86b2f85b1718276f8db557601320ab8a165d5fbfe93e51219cca5a1c16" + }, + "src/mars/stream/dump.h": { + "mode": 420, + "sha256": "a69af300ae7083fb0a5362edbe7eecd5273c8807884aff9fbedd7ae606c7fc4f" + }, + "src/mars/stream/gzip.cpp": { + "mode": 420, + "sha256": "20d71fd50bd637f78e7ebb5217bc6607ebc257535cc4720e640e4badb72f1644" + }, + "src/mars/stream/gzip.h": { + "mode": 420, + "sha256": "6bce52c615eb120999adb1a6f7f06baa813a033c28e02e6d79ce77f5b7a929c9" + }, + "src/mars/stream/node.h": { + "mode": 420, + "sha256": "eb43054c8592db107557979c7fc8612dc0646ba5d62f154b9b7f96a37ba2e860" + }, + "src/mars/stream/probe.h": { + "mode": 420, + "sha256": "6411d0976d1e785e8c32af6ecfe1a797c0a9aa02314e5e42fae3ed7b3449ae13" + }, + "src/mars/stream/reader.cpp": { + "mode": 420, + "sha256": "90f19cbcdb0fc50795895ea1eff09cd6c0ab3069095c49b276f3894e3d6bcbb3" + }, + "src/mars/stream/reader.h": { + "mode": 420, + "sha256": "900508d97be1cbe566d77f2c91755d3db387535cd9574e41704b6d940daa1ff4" + }, + "src/mars/stream/save.cpp": { + "mode": 420, + "sha256": "6db367b3ea570a4d0ee831160e3f44cef380f58de163b9d9205ca7449e51e049" + }, + "src/mars/stream/save.h": { + "mode": 420, + "sha256": "b3a411600d98b42e9014e1fc3cbc3eac5f32f4393e9f72036d3d840c802bb469" + }, + "src/mars/stream/savedump_main.cpp": { + "mode": 420, + "sha256": "8dc687f009d9f455e9bfa4019f03df72e058cebbb3e9ae5bcbb308285470208c" + }, + "src/mars/stream/schema.h": { + "mode": 420, + "sha256": "b1cd64bc43076a3e5893239bd2eb5c216e7293ee541322ef74fb106928183a05" + }, + "src/mars/stream/shapes.h": { + "mode": 420, + "sha256": "45ee379ff8100b6bc27427a2580d7aae19ff3d5d0aa27f682d156ae6a92d0a6d" + }, + "src/mars/stream/writer.cpp": { + "mode": 420, + "sha256": "54804b06266e34793f5294f9a96d2939d641915a0f60fc4e3b4170bfcea6e083" + }, + "src/mars/stream/writer.h": { + "mode": 420, + "sha256": "921cd44ea30e0b9944825b1d2caafc46edc8f2c23506c807050ed9208a397340" + }, + "src/mars/text/CMakeLists.txt": { + "mode": 420, + "sha256": "dccb93b37c21c9b3c3b35a50ca8de55c9f00df2a9e0a33b6c36d659a75455436" + }, + "src/mars/text/csv.cpp": { + "mode": 420, + "sha256": "b190e12b86a3f416a72c110caf9e0b2d98cdd33851d2fa48b55a8d7ea39279af" + }, + "src/mars/text/csv.h": { + "mode": 420, + "sha256": "3b7ec6d0884e95bfab869c253eddc30a802602bd1f230cc69461cb9cf3c17917" + }, + "src/mars/text/flat_kv.cpp": { + "mode": 420, + "sha256": "b98d3b7345489f0b149e56cd15436fd6199e4cf00d7ce3f8b8b31fcdecb90e47" + }, + "src/mars/text/flat_kv.h": { + "mode": 420, + "sha256": "d6765cd42cad46597b6e36e9d08baf6819f7796442293043d5ff686e2376d292" + }, + "src/mars/text/lines.h": { + "mode": 420, + "sha256": "b9a16ccf0dc7bbf36100e0b66c80bcb818590b161f820d3c67d55bccff1c2c65" + }, + "src/mars/text/manifest.cpp": { + "mode": 420, + "sha256": "4da1bb615902ec61883e561f5dd375d89442f7b9046fbc864f6308f27921087e" + }, + "src/mars/text/manifest.h": { + "mode": 420, + "sha256": "dd7351a7a6a144e97f3a3b6a25d22d1518a099e95deadb8965cedb201601e102" + }, + "src/mars/text/result.h": { + "mode": 420, + "sha256": "7f817033811dff6fcef1d5b76f88922cb0392afb4359549876cd017a14755606" + }, + "src/mars/text/value.cpp": { + "mode": 420, + "sha256": "94b433d78f3211e1a4dd9eb8a0a00b514cbeaf63a03e738146c56dbbfe221479" + }, + "src/mars/text/value.h": { + "mode": 420, + "sha256": "d3b5c70af2f339ad27b43c38353fc7a2da83388854b02000fa1b6d9a4e1dfc07" + }, + "src/mars/vfs/CMakeLists.txt": { + "mode": 420, + "sha256": "630d5d4707ef3c0f24a414815cc23158853fe9d5aef429d6619abc1c433b3786" + }, + "src/mars/vfs/path.cpp": { + "mode": 420, + "sha256": "e1f3bbab1f90b0132aec24d8c5997dafab69ec72f01f2dd2fa63c91f83ef7aeb" + }, + "src/mars/vfs/path.h": { + "mode": 420, + "sha256": "043091008f2cab7c88185de63e7aae63ad9b0e384109f5b6fd8c31666c4e2033" + }, + "src/mars/vfs/result.h": { + "mode": 420, + "sha256": "19115bf1c5b3bf01da078a49209230053043610b342b01cdaaed126e2d3ea748" + }, + "src/mars/vfs/vfs.cpp": { + "mode": 420, + "sha256": "ab8272cd14b4b55e7af13f5383d6106f0b1caabdde57e69c1d0fb5b434d31cba" + }, + "src/mars/vfs/vfs.h": { + "mode": 420, + "sha256": "2484231baa64ede6fc35eb0f49e1fd7a3373d5c559f016d5adfb9fc433619d90" + }, + "src/mars/vfs/zip_archive.cpp": { + "mode": 420, + "sha256": "d66e70300539bd42bcf193683df7c34d2b0b03146fd79f0a180385ead1559e87" + }, + "src/mars/vfs/zip_archive.h": { + "mode": 420, + "sha256": "0ffbd90f7919741e63e86e14d0f87d247bc2cd16d2db54771071553249ad935d" + }, + "src/shim/binkw32.def": { + "mode": 420, + "sha256": "fb500fd9f9ecbff44123b89fc24cec72e91fec4c4430ce12a69efc06b20de235" + }, + "src/shim/fpu_force.cpp": { + "mode": 420, + "sha256": "c4b4e41a7ef81139c652ba8164ed8bb0d809b42182f0d0f048b9a9e63bebe59d" + }, + "src/shim/fpu_force.h": { + "mode": 420, + "sha256": "75bac23bc45510961f6b10d21c47e72d8dc0d3971a3ab30b795cad1d25332c06" + }, + "src/shim/hooks/ai_orders.cpp": { + "mode": 420, + "sha256": "091ed885012fffa0e02b83c53e547483dfdeaf1094933726e0291fff0a99e434" + }, + "src/shim/hooks/ai_orders.h": { + "mode": 420, + "sha256": "6e775b3f946f2eaf10dc2e236a3f3c7b9311ed4e82cd4be1ca30e6c62d49d053" + }, + "src/shim/hooks/ai_rng.cpp": { + "mode": 420, + "sha256": "b8fec711cb620561c8f4854e72c3fb0d73013c9b1cd69fa63fc05dd3d2f60289" + }, + "src/shim/hooks/ai_rng.h": { + "mode": 420, + "sha256": "1306f4d3c8071121b06c75232efa5c50b155c1f8752fcae852ee8e5497ce7d08" + }, + "src/shim/hooks/ai_visit.cpp": { + "mode": 420, + "sha256": "cd69811074820810edb1ed3779ca08bd99fea620b162d80a0395d35e8db7fc31" + }, + "src/shim/hooks/ai_visit.h": { + "mode": 420, + "sha256": "8315b433319f680e80a154409124355ad24842e9a0cdef5c8aa6d12422971189" + }, + "src/shim/hooks/budget_inputs.cpp": { + "mode": 420, + "sha256": "fa50fb74a3874886cf8aeb4012b9fd9a5a43ce38ab3c543ee425002ca32fd46b" + }, + "src/shim/hooks/budget_inputs.h": { + "mode": 420, + "sha256": "56e2f95930ff420820a3464162fde74ac0a3ff2e1dc8b493729fed342e4a6548" + }, + "src/shim/hooks/colony_inputs.cpp": { + "mode": 420, + "sha256": "7aa9191ec6292d765fd06c99ff1f2ae2e09a65fb1f238dd2727f28bd465dd46e" + }, + "src/shim/hooks/colony_inputs.h": { + "mode": 420, + "sha256": "87ec765e14106631e3f6423450e6e01d5bb21060fa91f83c267db215ef4986d9" + }, + "src/shim/hooks/colony_turn.cpp": { + "mode": 420, + "sha256": "b82616c7b9b05e96e7f4c40d853c686884b517a5424413686d61799df9d45420" + }, + "src/shim/hooks/colony_turn.h": { + "mode": 420, + "sha256": "a9013cc2e92998ff56ac0c8cc36dc42033fbe3072ee88b86882a1dd4dd0357d6" + }, + "src/shim/hooks/compute_budget.cpp": { + "mode": 420, + "sha256": "76a24f0daf1f49cfabbed13753c65754e26bfcc4f672791b37e926f82b5c1906" + }, + "src/shim/hooks/compute_budget.h": { + "mode": 420, + "sha256": "f308717e44e12151cfb20a6a0cf11ff8e99ecc9c17ef04783198feed05a24caa" + }, + "src/shim/hooks/dictionaries.cpp": { + "mode": 420, + "sha256": "b60794256c07964eb89d5295ecb711b402112fe5f982a9215dc3a304d03a567b" + }, + "src/shim/hooks/dictionaries.h": { + "mode": 420, + "sha256": "ac68fd66eb343d40ee97d6bf29c8b54f5d469a9ef8862687ae15e6ad8bdafdc0" + }, + "src/shim/hooks/draw_sites.cpp": { + "mode": 420, + "sha256": "e7a1fa40262db2ed22b1dfa5ca1bd2588da07bfbab046f23afa8e86c03814d79" + }, + "src/shim/hooks/draw_sites.h": { + "mode": 420, + "sha256": "0021323e918d464223d03b969d0e6992a0efac23ba84a31af901cf2ac74e9b13" + }, + "src/shim/hooks/event_inputs.cpp": { + "mode": 420, + "sha256": "eeb9cc87ef5c39994b7f25d5ccfe220c4775b32a4b11471b0fc0fb81fca4362b" + }, + "src/shim/hooks/event_inputs.h": { + "mode": 420, + "sha256": "c0e74aed8756b3de8ebbe5ab3d70cfa6282403efefc2d795e8f0b1b4cd44d731" + }, + "src/shim/hooks/fleet_movement.cpp": { + "mode": 420, + "sha256": "f01ae7f64b1d545089b002b79c9986d2a39b97ad3995c88a8b71fa05eedb90f0" + }, + "src/shim/hooks/fleet_movement.h": { + "mode": 420, + "sha256": "dbbfe50afaedad63ec45881819aa5de3907cdb411ddf8d1d3e6a5f9a386dc8af" + }, + "src/shim/hooks/global_consts.cpp": { + "mode": 420, + "sha256": "87a51601e1a7d963bf841ca4e892aa79de789a050f5d783c7b5d8bbc2e96a9a1" + }, + "src/shim/hooks/global_consts.h": { + "mode": 420, + "sha256": "b6ac4265ec1f02f11c342536dbc9970c13761ea68aec0a5962d0f4cd6aa5d265" + }, + "src/shim/hooks/movement_inputs.cpp": { + "mode": 420, + "sha256": "0e23f86e4a8ed6c292aea8e45512931cdd06742f25c5e0d175bf0ed3b2217502" + }, + "src/shim/hooks/movement_inputs.h": { + "mode": 420, + "sha256": "32904786cbb122c3c8c36faf6bd9ea5ade4cd8395e74199ec08dbcdb8019b66a" + }, + "src/shim/hooks/player_turn.cpp": { + "mode": 420, + "sha256": "33bcadd7569ad13c69f5f160423c8d469bc67725ce7b944cf4b4346fb8cc7f23" + }, + "src/shim/hooks/player_turn.h": { + "mode": 420, + "sha256": "a766a0d93f3860da6f8d1e0dcf110d6754cd8dfe67d867093f32e3d24e8ff0e0" + }, + "src/shim/hooks/player_turn_inputs.cpp": { + "mode": 420, + "sha256": "993dce2ca771a36337c9561695995a0825746563d2e84b4458de650f3e456799" + }, + "src/shim/hooks/player_turn_inputs.h": { + "mode": 420, + "sha256": "ca0d7916ca17d993aaef19be48d03076220ae15cdcc622aef52a7c6b5957ca71" + }, + "src/shim/hooks/probe_entry.cpp": { + "mode": 420, + "sha256": "5faf9cf04a2cf849d2dd54ce4ad9b812120fb99741f11e9d52fed450badf0506" + }, + "src/shim/hooks/probe_entry.h": { + "mode": 420, + "sha256": "f04f445863a6164d03bc9f6edcaa2e2b0108163241510f4c1dfcb0da7667d89f" + }, + "src/shim/hooks/research.cpp": { + "mode": 420, + "sha256": "dacd16403f1dd5be2ef2cc42f16938977bdd0ee9283d0bca647a079ee3d28e83" + }, + "src/shim/hooks/research.h": { + "mode": 420, + "sha256": "a62c4847be81ed9d10c4f5b9a876bd79898040aa11aa8764149d82db4b010a84" + }, + "src/shim/hooks/rng_ledger.cpp": { + "mode": 420, + "sha256": "119d325fcda72268bdc87f7ca7af05d059d4521c4d7d40ad7426ce070865eabb" + }, + "src/shim/hooks/rng_ledger.h": { + "mode": 420, + "sha256": "0d1e9c79e7601da921253e860c55d9b69c21e03a1014c49f1dd85fd0e5f70f30" + }, + "src/shim/hooks/system_output.cpp": { + "mode": 420, + "sha256": "93bfb7e6ca381041d1e9830f82b8d774a63c12593fc426fd3e9198c9373be3b4" + }, + "src/shim/hooks/system_output.h": { + "mode": 420, + "sha256": "62a8424c70bb8e6c3d9603ce752f6b19a3920a4a78be75718869d7dac73f3738" + }, + "src/shim/hooks/tail_rng.cpp": { + "mode": 420, + "sha256": "9b2a3923d1d837399f3486650ef0e49b502837ff7df46a12df9a9e9b0d4d9d07" + }, + "src/shim/hooks/tail_rng.h": { + "mode": 420, + "sha256": "b9585605e71364872db25c608012e94db2148f22e2e6fd40d4b590a83f3be92b" + }, + "src/shim/hooks/tech_effect_fields.cpp": { + "mode": 420, + "sha256": "4c4d558aba3ac4e1b10e0944c867911e61daea0b4ade716760546846cebcb7b3" + }, + "src/shim/hooks/tech_effect_fields.h": { + "mode": 420, + "sha256": "22b2c050f73c9de011a42dc5a52d92a1bd3b24a59f3ba3b4332d832fb1853420" + }, + "src/shim/hooks/tech_effects.cpp": { + "mode": 420, + "sha256": "2a20f01a18ed30a466e2023ae023aeed8718c680cda927d2f3b463b6dbe35714" + }, + "src/shim/hooks/tech_effects.h": { + "mode": 420, + "sha256": "ffbc4e8262146cd7764f0b9758fff01ce5d359b25a0f5d8c931313f32d035320" + }, + "src/shim/hooks/watchpoints.cpp": { + "mode": 420, + "sha256": "15c94333f22bb592129efe3fb800ea89987045f9ebbc0e6791d4397961fd727d" + }, + "src/shim/hooks/watchpoints.h": { + "mode": 420, + "sha256": "639ae42b230fb31762f50cac0422dcd5b7fda7a1a02c7739a86d1cd6eda62277" + }, + "src/shim/main.cpp": { + "mode": 420, + "sha256": "eebdac7f8f69b8b95cd290c96d41c6f3f0ed5c45ccd5de54ffc790af47083b99" + }, + "src/shim/shim.cfg": { + "mode": 420, + "sha256": "44ca58394455549150c3461cc888128a968b4f062807e19ef25b8eebf0bfd523" + }, + "src/shim/shim.cfg.b4compare": { + "mode": 420, + "sha256": "68bed5883a75132eb5e885b4750d23c1d5734c843a32a56dc7f96d2b73fdf962" + }, + "src/shim/shim.cfg.b4scout": { + "mode": 420, + "sha256": "faac0765478d88b63f371fbc307512e71fe05f2e6f97272e6e0ceb267cc6d626" + }, + "src/shim/shim.cfg.b4trace": { + "mode": 420, + "sha256": "6a89cdd3cfdf53cfbaff29278fd5d0edf156ad8a525c61624b60ddb1eb0575a1" + }, + "src/shim/shim.cfg.bupin": { + "mode": 420, + "sha256": "39d52ef1ccb18d4dea261b87d3f363ba45079022d1b9bc3531c552ef6df80ec2" + }, + "src/shim/shim.cfg.cbcapture": { + "mode": 420, + "sha256": "0939b1ea144976ded2d45ad885fa0f1ffa3d77f16cba9b4d5a9cb87623500a62" + }, + "src/shim/shim.cfg.cboff": { + "mode": 420, + "sha256": "7d5d6e2ceb7f86fd17543c9212e8547be6009f725871aadbaf6057af1f4f5484" + }, + "src/shim/shim.cfg.cbpin": { + "mode": 420, + "sha256": "72a222c025796458dc1a538eed3ea55f053ee5e3c01e5b19b802922a058d4fbe" + }, + "src/shim/shim.cfg.cbtrap": { + "mode": 420, + "sha256": "938c0893b95b576b75927d75787999c22b3424d28c8936456ea3723f62775e51" + }, + "src/shim/shim.cfg.crcompare": { + "mode": 420, + "sha256": "129031ceb358fef9e0fcee2fb42a0f20fd76d9db78f061f956bf75ce2cc51dec" + }, + "src/shim/shim.cfg.croff": { + "mode": 420, + "sha256": "f99345e7db55e695ecabf7a00fc16ced9a42e8882abfeabc8281b9a4ef26d730" + }, + "src/shim/shim.cfg.crreplace0": { + "mode": 420, + "sha256": "60c13bd76e546b4521ab4e6a7836439078e2a176a11e471e03434623153cb7d9" + }, + "src/shim/shim.cfg.crreplace1": { + "mode": 420, + "sha256": "d27f43eb970d6a9c8a0c8d8f7071633a226c34b675a6581b331c6e1ba6f36c9b" + }, + "src/shim/shim.cfg.fpu007f": { + "mode": 420, + "sha256": "998decddb80cf23d63c42d2d6c1d1aa85072258ca0870168ee772708ebfb6363" + }, + "src/shim/shim.cfg.fpu027f": { + "mode": 420, + "sha256": "f4f9585a8f6317807bcab498ebed5de5d42400124a82ea958558f1455176cebd" + }, + "src/shim/shim.cfg.fpu127f": { + "mode": 420, + "sha256": "1f50a475f0d347b5b5a7c2341eac4ea22092818e18bc7ea049154d309949e271" + }, + "src/shim/shim.cfg.fpu137f": { + "mode": 420, + "sha256": "8658d901e0688d87d2f2359fe725082b9956291988cdc0b82b155dde55fef5e9" + }, + "src/shim/shim.cfg.fpu1a7f": { + "mode": 420, + "sha256": "59ff1f48a10c378d0ea92d8a156b135a106017a5b6c47b65de304fde3187c588" + }, + "src/shim/shim.cfg.fpuoff": { + "mode": 420, + "sha256": "ce637b3f0eca81c04490335cd9fe8a537cd09e5ef14cc5b3050f548ca4d54c65" + }, + "src/shim/shim.cfg.hoff": { + "mode": 420, + "sha256": "dc9b4619fe84921ea5896c2cd190afb5bd4ca89422fb86bfee8459665f92cd7a" + }, + "src/shim/shim.cfg.hp0": { + "mode": 420, + "sha256": "ede723fc540adb94bf16af0f3086c1935aac008acb6a8d550e2a4e97ff232c2c" + }, + "src/shim/shim.cfg.hp10": { + "mode": 420, + "sha256": "1c1f07dfdb7f99d63ed9a62aa9a447efda690623164beeaf434c588e02ef12cd" + }, + "src/shim/shim.cfg.hp11": { + "mode": 420, + "sha256": "36eae0d554a79b9536e3c57d2fef187ae81bd3266947c7f45035be554fb59404" + }, + "src/shim/shim.cfg.hp4": { + "mode": 420, + "sha256": "5bb0d636247c37def9b5cbf0cc9138b13590a50ae8212890fb7d31dfb9e837f4" + }, + "src/shim/shim.cfg.hp8": { + "mode": 420, + "sha256": "a8fe5f16a299b2b9eb81a811c7ec5a3b1baf635fa179a69f1e23243c7d1e2133" + }, + "src/shim/shim.cfg.hp9": { + "mode": 420, + "sha256": "765fdf337bb6942dbd1357166646dbf7fde3777678a606c4dbfd368078f09b5d" + }, + "src/shim/shim.cfg.hpall": { + "mode": 420, + "sha256": "630f99725ea6aa933984f4c545634d127787672de36f6756da2591e22a36f366" + }, + "src/shim/shim.cfg.hprobes": { + "mode": 420, + "sha256": "3bad5e3e7bf35a85acc7169d27531788e9659dbe0f8b1a0c719777fdb6beb5dc" + }, + "src/shim/shim.cfg.hprobes2": { + "mode": 420, + "sha256": "c335f1ec8aeff1165213cd40adcdcd59893c65edf95b1537fc4460e6060911c5" + }, + "src/shim/shim.cfg.l1control": { + "mode": 420, + "sha256": "c5dec81556268795b9a3df175bafde340a3fe76c7d6e05389e09e79d2b138b43" + }, + "src/shim/shim.cfg.l1hive": { + "mode": 420, + "sha256": "970ce465f2363f391a93086f1b596e904265510e02e7d2d38174cc6ea22d9b25" + }, + "src/shim/shim.cfg.l1off": { + "mode": 420, + "sha256": "a4197233c65acb876328666cf37754aea96f942b6ea08105bdfb61d6d5bcbd64" + }, + "src/shim/shim.cfg.l1seed": { + "mode": 420, + "sha256": "360af979eaa0c13eaa4db38ff13dcc64b3e2ab538300c26497921301fd3817b9" + }, + "src/shim/shim.cfg.l1snlv": { + "mode": 420, + "sha256": "3603508983a87906ecce02e4c2e9581cf2fa59390af25335f0b221765c57ef6d" + }, + "src/shim/shim.cfg.l3cont": { + "mode": 420, + "sha256": "629530a34412ebf85fc8ce8d2e5931684eea9891b6b619419e6f8db8c37f0976" + }, + "src/shim/shim.cfg.l3control": { + "mode": 420, + "sha256": "42b6ec7ebc9c83dae4a58884803f627d54956eb308611ce1e8d3691a12a74ccb" + }, + "src/shim/shim.cfg.l3probe": { + "mode": 420, + "sha256": "692dabb6f00343bfcc2f86d62ade827c295acc4630a18a1f2ddcebd53640978d" + }, + "src/shim/shim.cfg.l4control": { + "mode": 420, + "sha256": "ab13b7e3604ee98e9372e3405e0eacb6d5965e02d5317cfee0ea9b9afbd750e3" + }, + "src/shim/shim.cfg.l4dump": { + "mode": 420, + "sha256": "fb40d67d8d7dca4587a1dc13a95826ab68eb3fcf44feb6006388935f3ee346f2" + }, + "src/shim/shim.cfg.l4off": { + "mode": 420, + "sha256": "629a3e41d11daa53325f31aeb77d14d5abe67058e274d36ed8feb71e2e30dc13" + }, + "src/shim/shim.cfg.l4probes": { + "mode": 420, + "sha256": "a446ff3d6117d5352ad9b3c3c02f6d6300ce0b1089f055925afe19b77f0a20f3" + }, + "src/shim/shim.cfg.l4research": { + "mode": 420, + "sha256": "ad400f7082680db82c6fb0d39eed488710e6661f9e3215b9ea2eb0ba53444b9b" + }, + "src/shim/shim.cfg.l5budget": { + "mode": 420, + "sha256": "74df0fa1bd14fec6e8028ba05c516f3a370ba389386e5a8459d594c2c7ad83ae" + }, + "src/shim/shim.cfg.l5control": { + "mode": 420, + "sha256": "3557f716dde348a98fda65a5bad54911fe6d52f75c2cf6a82cc5d4fc47a6e968" + }, + "src/shim/shim.cfg.output": { + "mode": 420, + "sha256": "a811cffac230a1d6c0f9c5adacb1b691ae289ec08de0da3726309a4e1213acb0" + }, + "src/shim/shim.cfg.parbr": { + "mode": 420, + "sha256": "ea8230b596e7baae0c127f5700391ec2c96d546daba8c70ce8b2800c83b096dd" + }, + "src/shim/shim.cfg.parctl": { + "mode": 420, + "sha256": "2d1190d032bb705030746197020c715f4ab8af551f944e9ec0abe136912ea60d" + }, + "src/shim/shim.cfg.parorders": { + "mode": 420, + "sha256": "2107be5ec950e69d01c43ab30919fbfe652823878f150111b158927bc41de8d6" + }, + "src/shim/shim.cfg.parpin": { + "mode": 420, + "sha256": "893f1f81cdef0a964145ebb1c4b1e2725af8868b14fed412d40e3cce71f824f4" + }, + "src/shim/shim.cfg.recapb1": { + "mode": 420, + "sha256": "688840567305218dada122b29284f6af44c3c63ca173db87406de159bb547c8f" + }, + "src/shim/shim.cfg.recapb3": { + "mode": 420, + "sha256": "2120646255bd70adf29ed2880daa6b11d0867b9cfc9f1c9644d63b92c263b69b" + }, + "src/shim/shim.cfg.recapmisc": { + "mode": 420, + "sha256": "cb1f794c51b5d3d74eb91cc084c96a04444cd79f22fc694d821b51924544f595" + }, + "src/shim/shim.cfg.recaptrace": { + "mode": 420, + "sha256": "0ae410cc72fe155837d711c78543e14b1f5743310cd023298eb1e5bbd5457e71" + }, + "src/shim/shim.cfg.sdbr": { + "mode": 420, + "sha256": "7cb2bfd798ed1286628f3a879606eff076c4f6011d95e1223376eb4d0a392ca8" + }, + "src/shim/shim.cfg.sdoff": { + "mode": 420, + "sha256": "9195aeddeb2caa4e3db7dfd775c43e96eb99cfdc59a6a61e65d86fb325f0054a" + }, + "src/shim/shim.cfg.sdpin": { + "mode": 420, + "sha256": "61119f197b1dc8ddcad059d2d2c2753dae457b4bda4eb29e06c78282eeda6a0b" + }, + "src/shim/shim.cfg.sdpin2": { + "mode": 420, + "sha256": "d6d7f82b500df4f3ed120b4ff421178cf4373a145fa803e57d22a0654e4f0f63" + }, + "src/shim/shim.cfg.tturn": { + "mode": 420, + "sha256": "2ab2d64288043c3c55fde668facde9307c0739e0c801c900790e11db57c5759b" + }, + "src/shim/shim.cfg.tturncmp": { + "mode": 420, + "sha256": "114d325ae3ece29422069ee74c790603abb38c49162dd32520a3eecd18ab6061" + }, + "src/shim/shim.cfg.w2control": { + "mode": 420, + "sha256": "d042c0082a8eb4f55b8e21983df292f0950adc4ac5787d4a0b83088c10c5a3eb" + }, + "src/shim/shim.cfg.w2watch": { + "mode": 420, + "sha256": "ddb9c18a1c6b6c23758e51ca9ac18b4b95abe206b162497adc2978c0384d6ee5" + }, + "src/shim/shim.cfg.w3control": { + "mode": 420, + "sha256": "c6a3a5ea1e39a0714dffee0e44a0e8d91a2b450534d7e4377273a55b3e87de8c" + }, + "src/shim/shim.cfg.w3mod": { + "mode": 420, + "sha256": "7c7f82aaa8b5b007a740324373060ca2ba84edc765eb4e7ce55afcaba4e1c2e0" + }, + "src/shim/shim.cfg.w3tshn": { + "mode": 420, + "sha256": "51fa826d0b18d6f01987d6748e6610847ec3a761257ffc382a40d234670afec3" + }, + "src/shim/shim.cfg.zledger": { + "mode": 420, + "sha256": "31d0535aff9660eb1ad06f529c88a42aa71b83b36f8404b7541a29327c508a51" + }, + "src/shim/trace/emitter.cpp": { + "mode": 420, + "sha256": "4253cac49f0761e487fd555c3c01e02fa22e2010789ad3af37c62c8fd2e02030" + }, + "src/shim/trace/emitter.h": { + "mode": 420, + "sha256": "aa7804614b3d3a214d5c32c33ed245ae24276979080baa9d5481d6594ee3f79d" + }, + "src/shim/trace/hook.h": { + "mode": 420, + "sha256": "35be73ac1c9519664957ffea639d873e8a811b4620f0feecb21b54ea2776f800" + }, + "src/shim/trace/platform.h": { + "mode": 420, + "sha256": "f1b78d971798e45998b26c6b0e20db49fceb7d4c63f0c8c37452c6c2c6df9538" + }, + "src/shim/trace/selftest.cpp": { + "mode": 420, + "sha256": "31461ae6d329a8a3856589b245f3bcf8631f0db9a5e00530e4f94279950de354" + }, + "src/shim/trace/selftest.h": { + "mode": 420, + "sha256": "583d7a10ef04254c7a0fb7dd2a6071ad012a9a97dfae0896bbd598970b206475" + }, + "src/shim/trace/sha256.cpp": { + "mode": 420, + "sha256": "2faf44b5b273612c776204c1d83e0910d86394f4f6207129a01c81dedc170aa8" + }, + "src/shim/trace/sha256.h": { + "mode": 420, + "sha256": "31ce080acdc086ff7657d9093ac9bea438203eaa8e392ca38539152cdd15038f" + }, + "src/shim/trace/tracer.cpp": { + "mode": 420, + "sha256": "37d9490dbdedc399ecdb30f46eb27f31a4ff8c902eadb2eb48ecca7fb0e8fb88" + }, + "src/shim/trace/tracer.h": { + "mode": 420, + "sha256": "cbb80f167b8f98777f9fb58ce107226f42027ffdbd868a6808047c48caf10f76" + }, + "tests/addr_smoke.cpp": { + "mode": 420, + "sha256": "ace1ab9549bb6f3e0048d0e6e3ec6061035395581b2db46c0a5acb097c428890" + }, + "tests/app/CMakeLists.txt": { + "mode": 420, + "sha256": "dd18f8e25d2a9ce988dc226e03c7c6e02a275bbbea74f505d005e42ca5972037" + }, + "tests/app/test_alliance.cpp": { + "mode": 420, + "sha256": "671b2cb3295f360c61ee87005287999710d12e10e7e532331c1c946ab97f7c4d" + }, + "tests/app/test_catalog.cpp": { + "mode": 420, + "sha256": "c4cd9840c1f1b5d5a6829f7f1c5a0245b5e66135d3bed6410a2b6eca1a037225" + }, + "tests/app/test_command_replay.cpp": { + "mode": 420, + "sha256": "739ebeea5bed551f232774bc812bcb794cfa057015fd187529fa563b5d7ae5eb" + }, + "tests/app/test_event_phase.cpp": { + "mode": 420, + "sha256": "05498df256759fe5b8af80e9e56c2ca071eb26de0651f257798fe1641da627ca" + }, + "tests/app/test_trade_raid.cpp": { + "mode": 420, + "sha256": "2158008bc711b8062381f346fa347a430582d8d1943b0de5f40eb2a38e9a3f75" + }, + "tests/app/test_treaty.cpp": { + "mode": 420, + "sha256": "0f98150a3f9397fd12109eae7359ff7e04a4060e10e01ecf1693eb2a4606ead7" + }, + "tests/app/test_turn.cpp": { + "mode": 420, + "sha256": "6d45b1d2d065528f14ae83d95314f2b6559e53cc23f1b9e2531c7c09b4b97eab" + }, + "tests/app/test_turn_record.cpp": { + "mode": 420, + "sha256": "a845971b8d25d71c3b1138495354ad392e4fc298f87eb9b89d1567c01ab59cde" + }, + "tests/game_ai/CMakeLists.txt": { + "mode": 420, + "sha256": "a57a82d0c79ff933564e200a5b3137f120e70a19834264eeb2438c4cafd7ad3e" + }, + "tests/game_ai/test_agent.cpp": { + "mode": 420, + "sha256": "41cb3fbfc7e0b277771a2e8dd17601285a1e3a911543fc1335ce05a4e4b5f11c" + }, + "tests/game_ai/test_apply_order.cpp": { + "mode": 420, + "sha256": "8669c2e9a4c95b670a9c41262c68ce183d3cf3900bc262e0a2e33500bfffc594" + }, + "tests/game_ai/test_command_capture.cpp": { + "mode": 420, + "sha256": "8c2bae38754b347beeefe85d796c13bcf43cf5bc9bc99eb743626028b4dbd7ab" + }, + "tests/game_ai/test_live_blocks.cpp": { + "mode": 420, + "sha256": "44cb6bd8b34c13e329f9b1d50bb2a5c5513e52761537dccfb01afb7d48be7580" + }, + "tests/game_ai/test_orders.cpp": { + "mode": 420, + "sha256": "b13d1a3a628de411abb4faf024a1ce8d3e94518f12285bb3d7e7e86b012ad43f" + }, + "tests/game_ai/test_tasks.cpp": { + "mode": 420, + "sha256": "ffd8eed7fa76a24616d579a4e31031dadf43a0534e33743fb104dfca552367fc" + }, + "tests/game_ai/test_turn_order.cpp": { + "mode": 420, + "sha256": "382d6a30e9151c57849595cb134b8e2da25d2763738c9cbfa18d3cad51ecce97" + }, + "tests/game_combat/CMakeLists.txt": { + "mode": 420, + "sha256": "fd0c0dfb54033353b7014e3c764c916522cb529b6b3eae8a8d52afd044c13fe2" + }, + "tests/game_combat/test_retreat.cpp": { + "mode": 420, + "sha256": "3fb0be08d230bbd7c4ea4a59319de7ab252e5b7cbee924afd069847da8dcf73d" + }, + "tests/game_config/CMakeLists.txt": { + "mode": 420, + "sha256": "9874822d186e783f25b2dcd87495e7e380d873b8a0790c67fffb9430468094ed" + }, + "tests/game_config/manifest_tests.cpp": { + "mode": 420, + "sha256": "3bc62e7e49699254151a825421973d831b25bcf7a22028c789e3ca63b0d77319" + }, + "tests/game_config/replay_trace.cpp": { + "mode": 420, + "sha256": "83602ec974b8195c3616230ad44c2d4fd6032f8ef5f96e7aa76d49a0a04ac05e" + }, + "tests/game_config/unit_tests.cpp": { + "mode": 420, + "sha256": "45b07c7289abac61fccd0a6cd0ff87812542ec888eb6d295fb87c3f57755cc6a" + }, + "tests/game_data/CMakeLists.txt": { + "mode": 420, + "sha256": "cb8cffb7217e82077d3db749dcacf29c098549159cc0f312ef04bfccaa30155d" + }, + "tests/game_data/build_and_run.sh": { + "mode": 493, + "sha256": "69ea9cb94468c56c329fcc5b9350431067e97091ed47c08bb10b57b38412883a" + }, + "tests/game_data/dump_catalog.cpp": { + "mode": 420, + "sha256": "4588e699c69586dfb77f0d9289e375407d4f9cf019690e26bfc78f7182167c89" + }, + "tests/game_data/oracle/compare.py": { + "mode": 420, + "sha256": "2cfe1ac93790de3351256d284392372721f94de5375686e6301ef39b1943ad12" + }, + "tests/game_data/realdata_test.cpp": { + "mode": 420, + "sha256": "334a924bf81c6ce6192a6688435b374e115382358f7e4554aa164295bdd38321" + }, + "tests/game_data/test_catalog.cpp": { + "mode": 420, + "sha256": "9ea5c3fff2388c5d7fbf295123dfd7b702ef21f17fc7c45a970822814abfce2e" + }, + "tests/game_data/test_main.cpp": { + "mode": 420, + "sha256": "e808f3e2054894da5481d549d93cc837daff61c7b049691f6e2ee453cec53389" + }, + "tests/game_data/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/game_data/test_shipsection.cpp": { + "mode": 420, + "sha256": "b3519f0de60d061a6f1ab8ee81d470a28fc17cc81b113639ef2c1e139c249b4c" + }, + "tests/game_data/test_techtree.cpp": { + "mode": 420, + "sha256": "d05c889da9edb622bd2b66aa8e300d8162e0c8788950daa1086fc049b90dd4bc" + }, + "tests/game_data/test_turrets.cpp": { + "mode": 420, + "sha256": "66adff30b974e9bf2c96c1af024fb85677e1a8307c801933d23f3d2ec9d8222c" + }, + "tests/game_data/test_weapon.cpp": { + "mode": 420, + "sha256": "b16b0481c0a8697ff16e39c9feb3ad9d5406250b7dd1c828bf12f1bb40ed746b" + }, + "tests/game_design/CMakeLists.txt": { + "mode": 420, + "sha256": "a26524ff14878564870853bc067c379d2ebd26c14e45bcbb06593d300ee4b3ca" + }, + "tests/game_design/build_and_run.sh": { + "mode": 493, + "sha256": "b1aab4d13b09fb1ea4205978bd7d8b05af5a6422ebe4a34261c3247489b48bd7" + }, + "tests/game_design/dump_designs.cpp": { + "mode": 420, + "sha256": "b1b24c5cb534ad821a20325869713c04b742c541c448ade83543d75608f7eda2" + }, + "tests/game_design/json_min.h": { + "mode": 420, + "sha256": "9cfd3eabe9b36d6b2863872e08fe6ebaddf0749d1966dea693f8bbc0472780ac" + }, + "tests/game_design/mini_catalog.cpp": { + "mode": 420, + "sha256": "5817c0251883c999c6ebd54c77fdcf3981181b41fb5f7637d445824d60942810" + }, + "tests/game_design/mini_catalog.h": { + "mode": 420, + "sha256": "ecb7fd0dffa8709008bcdf9b9da3e70e68f735f9b5ecd0dcb4c871a35ae43b59" + }, + "tests/game_design/oracle/compare.py": { + "mode": 420, + "sha256": "2db14952f7fca9a587995e326651b0d549b39ceefd9c0ac59982cd35ae5d21e7" + }, + "tests/game_design/realdata_test.cpp": { + "mode": 420, + "sha256": "cea57cd53d881b3bf2557cc32ea402c4991aa6de5ff72340861f195a8e20c141" + }, + "tests/game_design/stock_designs.cpp": { + "mode": 420, + "sha256": "2ac1b8bcb0f61852f4bc0a8b7cda51167531ca2a05d1e485991a4758cf586d03" + }, + "tests/game_design/stock_designs.h": { + "mode": 420, + "sha256": "a49173bde083467f5650cfbfbaebba5f16208d660fe7f2f3da81c2caff07c807" + }, + "tests/game_design/test_banks.cpp": { + "mode": 420, + "sha256": "c1d34991c53523cb7610a569e861e8a312da1fe659de0522a3594fb14cad24a6" + }, + "tests/game_design/test_census_saves.cpp": { + "mode": 420, + "sha256": "814c17c7a14db7b123579b7636ee7f2b720fdf4a5cbbe90f676dc01709c45e3b" + }, + "tests/game_design/test_hull.cpp": { + "mode": 420, + "sha256": "cff70268d58ab95ed963d335904110ab55c79d6a0f660f613409cf6d5d63e2bd" + }, + "tests/game_design/test_json.cpp": { + "mode": 420, + "sha256": "e7fa196274a4591834a974f742ff59c7ed1fb15fb138091b48a071354d001c5d" + }, + "tests/game_design/test_main.cpp": { + "mode": 420, + "sha256": "e808f3e2054894da5481d549d93cc837daff61c7b049691f6e2ee453cec53389" + }, + "tests/game_design/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/game_design/test_stats.cpp": { + "mode": 420, + "sha256": "a3681df901095b848cc6b1ae63d04fd70eeeadd406e7d51f3c76671cbf523a7a" + }, + "tests/game_design/test_structure.cpp": { + "mode": 420, + "sha256": "d09f7707ee170f8a933c657628c1da4f61a29c7eb2dc687a96c3985bdac941aa" + }, + "tests/game_design/test_tech.cpp": { + "mode": 420, + "sha256": "689c081a324c7ece3f70d711f7ac67a5b93207f95e2800a3a708f2f8dbe31965" + }, + "tests/game_effects/CMakeLists.txt": { + "mode": 420, + "sha256": "c80413a7103ce0ed7944fb096ad22fc206a091645428a6015ec3d0e442414a0a" + }, + "tests/game_effects/build_and_run.sh": { + "mode": 493, + "sha256": "ab5085eeab0ec65d8f7ddd7d79357cd15183888b1b4e51cb563810d4e4c64506" + }, + "tests/game_effects/test_effects.cpp": { + "mode": 420, + "sha256": "b10d804b1ad4fb140e13cc1984c6372dbbfdd92560f37583f2411bbcb45c16d4" + }, + "tests/game_events/CMakeLists.txt": { + "mode": 420, + "sha256": "c962651d71ee7783d5565b418f653f2954e489cf698762c5686f5f2dbb4304db" + }, + "tests/game_events/build_and_run.sh": { + "mode": 493, + "sha256": "8b92d249138ee53f728583a0c68b153eaf4e2ad7f92d415d8b3a83df2fb3ec28" + }, + "tests/game_events/test_events.cpp": { + "mode": 420, + "sha256": "182941b9b809b20d24a2e29c5e4bbd626e6da8486e87dc38d1c6088161ec793b" + }, + "tests/game_nav/CMakeLists.txt": { + "mode": 420, + "sha256": "7ee85557a167281f4576252428b4e01795232f31dc1d93c23b284568074cec3b" + }, + "tests/game_nav/test_pathplan.cpp": { + "mode": 420, + "sha256": "6229cc2b1be1ffffb3fbb812c2ccc89dba7099d349be3a6f8f2c2e26aa1dd58d" + }, + "tests/game_sim/CMakeLists.txt": { + "mode": 420, + "sha256": "563547cdd93bce41ef29a73289e5104a5df61f71cc980e49ea37cdbe26743be7" + }, + "tests/game_sim/build_and_run.sh": { + "mode": 493, + "sha256": "a9c42a931242c7f266f512b4d4ad11f6f8ecf43a447a06a04f174301ee19328a" + }, + "tests/game_sim/check.h": { + "mode": 420, + "sha256": "faddddc37a528f0235f510b249cfc1776ce30aff709329954f09093b01231221" + }, + "tests/game_sim/mini_json.h": { + "mode": 420, + "sha256": "710218b637aaf1a5eb7c49eaa7d158bc3e495135ec14bf8b41384769d0227ba5" + }, + "tests/game_sim/smoke_real_save.cpp": { + "mode": 420, + "sha256": "2432e92ac18fadfb1152c54d9dec9a77b3dbf506ea122401cbbd48584b7c9190" + }, + "tests/game_sim/test_colony.cpp": { + "mode": 420, + "sha256": "45355673c46cbaef66b2c81d04a845cf65b6ddfd9819350c7338d9771fafb6fe" + }, + "tests/game_sim/test_construction.cpp": { + "mode": 420, + "sha256": "8df75076a3f460e949e34100d55acf60b054603da6d4aeda4f73297442c06e21" + }, + "tests/game_sim/test_economy.cpp": { + "mode": 420, + "sha256": "43fe658fd2347e3667a901afa642713d70c85ef0ec75094642da2d05b9ca471b" + }, + "tests/game_sim/test_movement.cpp": { + "mode": 420, + "sha256": "1927c371d52115458d88552014cef30bba60e9bef5eb3acfce11b2bc623e06a6" + }, + "tests/game_sim/test_observed.cpp": { + "mode": 420, + "sha256": "1f6ad16c1a2c80f0621573b5196989b0349e47351585d83835be5e27f6ef3fe4" + }, + "tests/game_sim/test_player_turn.cpp": { + "mode": 420, + "sha256": "13f76eaa6cad265deec25416acf0cae2028d6cd1c7b9585df6e9252ba3f0cbed" + }, + "tests/game_sim/test_research.cpp": { + "mode": 420, + "sha256": "3dc668eb889c41f58db6007a96f54fe2a6d56ee6501a298fba3afbbe9637baf6" + }, + "tests/game_sim/test_scriptobjects.cpp": { + "mode": 420, + "sha256": "dfe90a42bcd2844c2ea3666816f97c05237206bf44467ac29790c72b7b498582" + }, + "tests/game_sim/test_techgraph.cpp": { + "mode": 420, + "sha256": "0627ea1c8012b90b62285cae2f31599ba8a8cd47928452910ade91f93502d68e" + }, + "tests/game_sim/test_visibility.cpp": { + "mode": 420, + "sha256": "ad756975b6605a164f2f9106daf2511730642eff354a866bc764a93a4be1efe7" + }, + "tests/mars_parse/.gitignore": { + "mode": 420, + "sha256": "181314065df2f2fdaf920b1a8b5311daa216a2d6489a06ada5b49cc514d89417" + }, + "tests/mars_parse/CMakeLists.txt": { + "mode": 420, + "sha256": "898204fbc1cec44f697e2803c8bc4887857950ba2b1192dd153de74d26de0ea4" + }, + "tests/mars_parse/build_and_run.sh": { + "mode": 493, + "sha256": "550c6df5fffbd85cfffc3312a03a5fa9d59c1e0416e883ddc2576cdb73eac6de" + }, + "tests/mars_parse/canon.cpp": { + "mode": 420, + "sha256": "63e2bcfb2820e7533aa3a287bcec6c318f7238006dce61ad35381562b979cd47" + }, + "tests/mars_parse/canon.h": { + "mode": 420, + "sha256": "c9a78b866d62c4e58643de2c4149572380a1392b411049c8fe74e37475d21d9e" + }, + "tests/mars_parse/oracle/dump.py": { + "mode": 420, + "sha256": "16e98089d5b532e35d6b88b3d50b4bb07e879c18512cf8d06cc5fd2aa9da1117" + }, + "tests/mars_parse/oracle_check.cpp": { + "mode": 420, + "sha256": "5eb81a0c2db8f96c6f8e51246ea9991642e5571dd94dd2e410e2fad632d47adb" + }, + "tests/mars_parse/test_blocks.cpp": { + "mode": 420, + "sha256": "f376a57891a83768ecc8b73ef5eb2333291c280760f7581ead53f7c2a71a4df5" + }, + "tests/mars_parse/test_effect.cpp": { + "mode": 420, + "sha256": "8bb14e7c718e772bfb4a22a7370f41080c49beabfa597ddd603be257bc310011" + }, + "tests/mars_parse/test_main.cpp": { + "mode": 420, + "sha256": "e808f3e2054894da5481d549d93cc837daff61c7b049691f6e2ee453cec53389" + }, + "tests/mars_parse/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/mars_parse/test_value.cpp": { + "mode": 420, + "sha256": "a8dbe3326e5339cdad8fed7dd678df92e8a8b675d0b854f4cea6517bf557069d" + }, + "tests/mars_stream/CMakeLists.txt": { + "mode": 420, + "sha256": "31c69840e6e2e566d2e0bbaf49ab3dec712d27e505d0810ddf0496ce3ff321e0" + }, + "tests/mars_stream/build_and_run.sh": { + "mode": 493, + "sha256": "3737e42960b66e788a11cdd7fa9917fe255b6a4f60280e9f620593bf688aab41" + }, + "tests/mars_stream/oracle/compare.py": { + "mode": 493, + "sha256": "f39dd70e4bbf1952cf99e3437fd1ed6252249f3455a2d3c73311f98d8ff4370e" + }, + "tests/mars_stream/test_domains.cpp": { + "mode": 420, + "sha256": "08394777f7bc4186883cd02058f17fda8f47c3ee47049892bd8762c28b5aa959" + }, + "tests/mars_stream/test_rng.cpp": { + "mode": 420, + "sha256": "55f77273d8af5880f976a24fb00dcd8042b31a7a33f15c9f4b62fdb85bba9d0a" + }, + "tests/mars_stream/test_save.cpp": { + "mode": 420, + "sha256": "50250bb4b4f2da05f9453c541f080e018b68731f24cbf93278d50ca93ddd8d63" + }, + "tests/mars_stream/test_stream.cpp": { + "mode": 420, + "sha256": "d0da9ac2287910527bdac875ab39e0147a9be2f5535f04b55460438f31be2537" + }, + "tests/mars_stream/test_wire_schema.cpp": { + "mode": 420, + "sha256": "1cfd259f554be8218cb182dd1facc07f6cd3dea52f0daf7303393e78c7c2eb97" + }, + "tests/mars_text/.gitignore": { + "mode": 420, + "sha256": "181314065df2f2fdaf920b1a8b5311daa216a2d6489a06ada5b49cc514d89417" + }, + "tests/mars_text/CMakeLists.txt": { + "mode": 420, + "sha256": "20f8e0cfa044fb4e6b1caca0ec8d6536e012c1c4ea4454fe990923f40a201752" + }, + "tests/mars_text/build_and_run.sh": { + "mode": 493, + "sha256": "59ae392080c01be0c7f5530ecb9ae4fbdcc02366242b27527c14b8efd5076d0c" + }, + "tests/mars_text/dump_json.cpp": { + "mode": 420, + "sha256": "e246384902c3adf4fa8f2a54e38c4912f6b58f168ebc9b1e158a719e2a52b1bc" + }, + "tests/mars_text/oracle/compare.py": { + "mode": 493, + "sha256": "46a796196a413aa28a0069086e45c96399f21308153b578f063801eb997b54ef" + }, + "tests/mars_text/oracle/dump.py": { + "mode": 493, + "sha256": "53fde94f6676a5504a247cf209e2a42d67e108cc9ea0b02f289562799ee7d880" + }, + "tests/mars_text/realdata_test.cpp": { + "mode": 420, + "sha256": "a399ad5cf91cf35f78809f5b9b5cac8b2eff344dbfbab07b8b27bf66058e1e3b" + }, + "tests/mars_text/unit_tests.cpp": { + "mode": 420, + "sha256": "cd1e9e4f6e0e503d4d9b0902bd2936513293490cdc680f94639ce93661ca09d7" + }, + "tests/mars_vfs/CMakeLists.txt": { + "mode": 420, + "sha256": "282015598e03430be0f47b779ce7087662415b3a59de14814cb3ba35c17af363" + }, + "tests/mars_vfs/build_and_run.sh": { + "mode": 493, + "sha256": "b6a8e7b0706d7416f548f071e742e600cab226663f7d4ad42299dbb76f631701" + }, + "tests/mars_vfs/make_fixture.py": { + "mode": 493, + "sha256": "57586249e57550869dd5adfbc4fdab173a59d2aee630ba69c20d562018d249f1" + }, + "tests/mars_vfs/realdata_test.cpp": { + "mode": 420, + "sha256": "c95248ae53d32bd5d8cf963ca3a39ea82e5ef08b76de736104b6aa34ec88c789" + }, + "tests/mars_vfs/test_main.cpp": { + "mode": 420, + "sha256": "cdb7bdf9b9356eb0b7f6cb0fab081cda2161b34af14ecf60cc44970e79d517c2" + }, + "tests/mars_vfs/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/mars_vfs/unit_tests.cpp": { + "mode": 420, + "sha256": "de8da00718799886fbbc5820e0f7d0e468a31ab0608361fb509b0c12932c9caf" + }, + "tests/mars_vfs/vfs_cat.cpp": { + "mode": 420, + "sha256": "4a443e779de264f5c0c68a631b1a353b1310a4e838d342527befd8ad1e2a25bd" + }, + "tests/mars_vfs/zip_builder.h": { + "mode": 420, + "sha256": "a0f3688e5a90b7e209497d66d0dcd30a0e1ac59a56ffcbed31b2a50967c1da3a" + }, + "tests/shim_budget/CMakeLists.txt": { + "mode": 420, + "sha256": "88a0f43e433c3a6879a7f6cccf8c84ba4559009614a3fe5adf6c558ea7a47245" + }, + "tests/shim_budget/unit_tests.cpp": { + "mode": 420, + "sha256": "654e96d0880232d3090223a0d9f92f428aeffa528fbd5eca89d6bfe348aefce0" + }, + "tests/shim_colony/CMakeLists.txt": { + "mode": 420, + "sha256": "d7b2674971b0eda32b2edd62244c32af81cea9e6d984a24ca6648edbaea80e06" + }, + "tests/shim_colony/unit_tests.cpp": { + "mode": 420, + "sha256": "4cc41308c10fa1e6aa047fb6c26e4c655b727884bce87b5a9e8e2f76db665474" + }, + "tests/shim_events/CMakeLists.txt": { + "mode": 420, + "sha256": "2b43190a2ce88cf7227250aa5a3b48e3006d24f0d6f5e9a5e48507c2733e4c45" + }, + "tests/shim_events/unit_tests.cpp": { + "mode": 420, + "sha256": "0dc151a4aecb24217cc38cb818bbe760b3da2b08a23ad734b3fa8506d25fe2b4" + }, + "tests/shim_movement/CMakeLists.txt": { + "mode": 420, + "sha256": "46ffe5a9815b189283e4d5ef67a0dcd159f60da7f9ca4a3577669035fefdc1f8" + }, + "tests/shim_movement/unit_tests.cpp": { + "mode": 420, + "sha256": "ee6ee983aa72f078a7ae398ca5f828aba14370c898ae4e56063697d28919ad69" + }, + "tests/shim_player_turn/CMakeLists.txt": { + "mode": 420, + "sha256": "f6affa205f857d4a45f8be05ae0426b6f9a2e8e127f5aeadbac2ed8a4c4daddc" + }, + "tests/shim_player_turn/unit_tests.cpp": { + "mode": 420, + "sha256": "0a528cdf64904dfd22c94ea911a15213701e7912921f04c1909799e6e6240450" + }, + "tests/shim_rng_ledger/CMakeLists.txt": { + "mode": 420, + "sha256": "b6a349f2611ec1f1de2013145a97f3da59cefec81dbc4d2f3e58af507e598bb4" + }, + "tests/shim_rng_ledger/unit_tests.cpp": { + "mode": 420, + "sha256": "d38d80dd907a3468036dbca2b017718b199ab4a0078eb5e5b019b913a9ef8d8c" + }, + "tests/shim_techfx/CMakeLists.txt": { + "mode": 420, + "sha256": "5eaf9a76df6b10258a8c1d2658b03d97377d48a778a1628ca94c9bd69fa7ba8a" + }, + "tests/shim_techfx/unit_tests.cpp": { + "mode": 420, + "sha256": "99a71a6d0ca1f53fc8ff0bc21e79acd64ba2cd9c9f990641e5970c866794595b" + }, + "tests/shim_trace/CMakeLists.txt": { + "mode": 420, + "sha256": "91bc736e198c5cef86ad2ad69ca77d93ab770e5faecf9e6d915f9263b9ce491b" + }, + "tests/shim_trace/check.h": { + "mode": 420, + "sha256": "f4b72b971886c64383880ba26484f9c908d21f5902dff0de0b42f276b00d8366" + }, + "tests/shim_trace/harness.h": { + "mode": 420, + "sha256": "d7eae563723843c1389b108fe2efb2e31b6c264d23567a370a09fb9b1d513697" + }, + "tests/shim_trace/oracle_emit.py": { + "mode": 420, + "sha256": "29ed06c602e9f0d6430bb3c81192b1946213a3f44b91107f7036f35f17b69f42" + }, + "tests/shim_trace/test_coverage.cpp": { + "mode": 420, + "sha256": "8ed5b6d755fe7e2bc98d525e97bc7817a5efb7ed5f0196d49d1c783de3a91bea" + }, + "tests/shim_trace/test_diff.cpp": { + "mode": 420, + "sha256": "afd8e5124cf6e1ad9c4f3e4c2beeb65d00002cf1d4cbaa2e876fea0817a7a347" + }, + "tests/shim_trace/test_emitter.cpp": { + "mode": 420, + "sha256": "a9255bbc055df36a01931e8a61dd1dbf16085f7713db7e7386f66b69ddb10762" + }, + "tests/shim_trace/test_hook.cpp": { + "mode": 420, + "sha256": "4dd67374e260ba2722219c2e44e6be76e583d0ad65844f34859cff49b66a30cc" + }, + "tests/shim_trace/test_sha256.cpp": { + "mode": 420, + "sha256": "b55aa15dc806e3e4a87ddf50657fa4e0af6a4e4e2205c4bd63d1ae066fe57428" + }, + "third_party/minhook/LICENSE.txt": { + "mode": 420, + "sha256": "d5c2224982b0b95a16b098a561335fa93f3eaf4d0aa964b7843edb986df78dc8" + }, + "third_party/minhook/VENDOR.txt": { + "mode": 420, + "sha256": "c79054234a5340f6199f8d9f47d6b3d88e8abd2120586cd78f081cfb81a6fabd" + }, + "third_party/minhook/include/MinHook.h": { + "mode": 420, + "sha256": "e34bbf7b855c842694f6e3dd78e2d280e99ed9732501e3dc1532a8626a8db8e5" + }, + "third_party/minhook/src/buffer.c": { + "mode": 420, + "sha256": "75a789eb718bd5ed2de039ccd330736a31d0a2d14e43d8e15e6cd2332432482d" + }, + "third_party/minhook/src/buffer.h": { + "mode": 420, + "sha256": "9769702bd625249e59a19ede05c84365fcc7707e1fa0e5df08df42227cee13e3" + }, + "third_party/minhook/src/hde/hde32.c": { + "mode": 420, + "sha256": "0ddbc3ab3e0b37e61691131289a151e34f508233ccf3f701752777e5d3f62d68" + }, + "third_party/minhook/src/hde/hde32.h": { + "mode": 420, + "sha256": "5132de5be8ac7a9d054420f5caef0fb01437faa892f03b3cdc77f795973bf15a" + }, + "third_party/minhook/src/hde/hde64.c": { + "mode": 420, + "sha256": "9bf19dd706d4bc255ebd1709f98fb44899df7a1f2412820d77295136e0620f1d" + }, + "third_party/minhook/src/hde/hde64.h": { + "mode": 420, + "sha256": "e99aa4997bda14b534c614c3d8cb78a72c4aca91a1212c8b03ec605d1d75e36e" + }, + "third_party/minhook/src/hde/pstdint.h": { + "mode": 420, + "sha256": "604d1cdf45c5a95bc9cf1bbf39ca05ef83013541101d34971c5cd7577e3d5247" + }, + "third_party/minhook/src/hde/table32.h": { + "mode": 420, + "sha256": "43bf687a9fff071b5f46070db4d36c846f8e069cdc57485ee897c499aacdde23" + }, + "third_party/minhook/src/hde/table64.h": { + "mode": 420, + "sha256": "b774446d2f110ce954fb0a710f4693c5562ddbd8d56fe84106f2ee80db8b50a2" + }, + "third_party/minhook/src/hook.c": { + "mode": 420, + "sha256": "3060d3c42f03a2f11324cbee95d853071757ed0fe4b1bc9eb5f0d8fc9e346a37" + }, + "third_party/minhook/src/trampoline.c": { + "mode": 420, + "sha256": "d837f8555681c3762468d712c43f2064ed31dee610e0b02965fd8aa54b88172f" + }, + "third_party/minhook/src/trampoline.h": { + "mode": 420, + "sha256": "27426751dde36cdd8346469e61cdcca47950b1056a69f21cc63f4b41743faf6a" + }, + "third_party/miniz/ChangeLog.md": { + "mode": 420, + "sha256": "ff3b6040f7cbd8c9779a0690e906c66408f7efe3cf88a25019323f0189025ec3" + }, + "third_party/miniz/LICENSE": { + "mode": 420, + "sha256": "0115478d567121238cf6cc1c0c361926cf07a49d9e4c9e66da97fac6a01646b3" + }, + "third_party/miniz/miniz.c": { + "mode": 420, + "sha256": "e2c1aeb66eef9191d8c3feb164db2def2335a61d039bf04ed849f6b042433b30" + }, + "third_party/miniz/miniz.h": { + "mode": 420, + "sha256": "b53b62ed122e559b8f679e3cb787a0b0035fe87a58f909da0e44931678f4e85f" + }, + "third_party/miniz/readme.md": { + "mode": 420, + "sha256": "b4ea367be28a36e5386f65118b73962bc659a67936d248be68b7a7c03b8d359b" + }, + "tools/build-shim.sh": { + "mode": 493, + "sha256": "1da3fdcc019dc6495c870a42b93cee9f21ff7f9623f033c2f50d9db9fd6a33e0" + }, + "tools/check_shim_configs.py": { + "mode": 420, + "sha256": "ef5e8f100c06d8c485a165ab668206af3e9aed3e1f6aa6ffec2592419fc2332f" + }, + "tools/clean_room_check.py": { + "mode": 420, + "sha256": "e15bc3ebfd29c6e2d8edfc32cc812858869b49ffa1404cafce14c4c24e0f4e24" + }, + "tools/clean_room_check.sh": { + "mode": 420, + "sha256": "6646eb6010be756113f7af39b9cfcb06e8580893fbd100a41993f87757ccfd6a" + }, + "tools/deploy.ps1": { + "mode": 420, + "sha256": "fe01f46bedc91d7b42ff98cb0e69633845094cc2802108d23d48eb70f32e3f27" + }, + "tools/sync-build.sh": { + "mode": 493, + "sha256": "ce418ace6c5edae8609849233bb5dfd24657f55141c8ef8507659608f12aee2d" + }, + "tools/undeploy.ps1": { + "mode": 420, + "sha256": "5730b6f95f161ba5a727dc0a34f26da7f1f697711495d6a9de9c289ecd747af0" + } + }, + "manifest_sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd", + "path": "/tmp/opencode/sots-final-research-engine" + }, + "re": { + "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", + "files": { + ".gitignore": { + "mode": 420, + "sha256": "ba56b745b84c6d15b7288df65f319831fed3cbf8edd1ab3a6476418f48fd95f8" + }, + "AGENTS.md": { + "mode": 420, + "sha256": "e722b65480a9f72c2fde1c677c789d4f4b347ef9b450894e9f4295035373df7a" + }, + "CLAUDE.md": { + "mode": 420, + "sha256": "b3e3e5851645a05543e91f128eb6d349abdc6f22accfd997012526e4d35eaa8e" + }, + "README.md": { + "mode": 420, + "sha256": "e318014a84d03e53983cdb1e5b0310f372b959f659b91abc9214faf530544afc" + }, + "campaign/DASHBOARD.md": { + "mode": 420, + "sha256": "eb207987006a3a661bf05b24fc361e1dda74b7a7f42f4abf4a3788cb17a254e6" + }, + "campaign/README.md": { + "mode": 420, + "sha256": "dc702a81c2c664c07eb170f082deb65bc3ff24e2b80d892bb082c7c4feac64fd" + }, + "campaign/agents/analyst.md": { + "mode": 420, + "sha256": "895c41509016038b3f72c4a68608c4101511e69c5bf410e379286da1a6202952" + }, + "campaign/agents/implementer.md": { + "mode": 420, + "sha256": "eb5581051a92b3d2b9ddd947812b1c02ff6a0b5e7619e7674adc26701e9a3d91" + }, + "campaign/agents/lab.md": { + "mode": 420, + "sha256": "48f1765ebdcb2015e631ad91428f65735ff899e119134b652f70788ff2eae5b8" + }, + "campaign/agents/lead.md": { + "mode": 420, + "sha256": "7661bbfca972be50a52c735b7f15f5be740158542c3d0cdbdf9a6a2590c7f1ea" + }, + "campaign/agents/resolver.md": { + "mode": 420, + "sha256": "742c36dc8567669d462566d6121eed42fcff5bff34e8eff466e92249f7ca195f" + }, + "campaign/agents/verifier.md": { + "mode": 420, + "sha256": "e467fc644e4e37d631a7a4e35038d9d3d0498491f1d7811d61d99271ff345c6b" + }, + "campaign/backlog.md": { + "mode": 420, + "sha256": "a10edaae044e84ee4d26e7461b88e557112f572d60c57e0025171a53dd209a35" + }, + "campaign/board.md": { + "mode": 420, + "sha256": "040c12a20f5bf70b8e6a239efb205039d1ce00a805411ba194a12bde9f40c03e" + }, + "campaign/contract.schema.json": { + "mode": 420, + "sha256": "a2c76ec042ca097a57c3c05c1e519e392d498d387a31808c7d0f70482d43c201" + }, + "campaign/contracts/controls-bootstrap.json": { + "mode": 384, + "sha256": "2943d2281229c102dd612676428a9714510e540671c1e04dae3e6fa7ea1b56ab" + }, + "campaign/contracts/launcher-smoke.json": { + "mode": 384, + "sha256": "c0418dd22bafc321b2f800acaf574dca7956c37b239d789981b920d50ab36599" + }, + "campaign/contracts/research-completion-abi.json": { + "mode": 420, + "sha256": "a5cf5e4bbc5052aa13dc34b55ee65f2997f9342e0b01062e85ad2c16d99daf71" + }, + "campaign/contracts/research-replacement.json": { + "mode": 420, + "sha256": "1108d30bf7e28f30b2446014503fc3200a8b8198a8fab0b866b873a81bf7b8b9" + }, + "campaign/current.json": { + "mode": 384, + "sha256": "87661aaf5ddfbb872365dae8c531453a1e0cb7f91b3ada046be3e829d2555f77" + }, + "campaign/models.json": { + "mode": 420, + "sha256": "95f507237a8e4fcf14189da4aa102dfae1dbaa536d4d8db6bcbfc30162ac5443" + }, + "campaign/open-questions.md": { + "mode": 420, + "sha256": "efb1c736a07bff32e75e0eede20681c206e2c95f439dffe9824702cb864972e7" + }, + "campaign/pilots/research-replacement.md": { + "mode": 420, + "sha256": "3101b8959f28ba2c6ffbac02a82b5ae0e841e7d78bd1f40f05b9d1d2278490ad" + }, + "campaign/research/SESSION.md": { + "mode": 420, + "sha256": "258a2884486ee777fbd8ff180abf23a3a320b2981ee1e90b57d4e3efe18643f2" + }, + "campaign/rollout/RESULT.md": { + "mode": 420, + "sha256": "87aba912d66e2f7bd9779f86cbae3c78d64b1be2572db02ac39fc70c750cb79c" + }, + "campaign/rollout/architecture-decision.md": { + "mode": 420, + "sha256": "8c710f390671500386745d063d6cb6edb175e6e26572286334d2f14a36be6d41" + }, + "campaign/rollout/controls-followup.md": { + "mode": 420, + "sha256": "44d0c95978cbc0953d6b1feab4463b29fab68c9d8dad2eca5fd562bb5aee1578" + }, + "campaign/rollout/controls-worker-state.md": { + "mode": 420, + "sha256": "02ff66f3f0fa978819e5c100e24cfd3752b9041590e2aed36f6abd62ce790f4e" + }, + "campaign/rollout/controls-worker.md": { + "mode": 420, + "sha256": "d022483618d3c3412785ba40e71106976c9b1c9978c43e424e3023a67b8b3f0f" + }, + "campaign/rollout/controls_evidence.py": { + "mode": 420, + "sha256": "bfaf4e523b2ca39c0ecdab94adf0b2b19a3da68aab8a0fcba69a613aed46588a" + }, + "campaign/rollout/engine-followup.md": { + "mode": 420, + "sha256": "d3d289fb4e4cfb7cf1ab6c3de597f530eafd27d3b1aa2f3e8904d6da3a95ac44" + }, + "campaign/rollout/engine-worker-state.md": { + "mode": 420, + "sha256": "76601fa42c95bd7d78ce46f528a33ef0483e0b7f2e19a1cfe1cab8e560bed05c" + }, + "campaign/rollout/engine-worker.md": { + "mode": 420, + "sha256": "fd8bbe69947b69baa61449548d5746723c941ad8b663ec66d1b278234bebe5b2" + }, + "campaign/rollout/formal-verifier-state.md": { + "mode": 420, + "sha256": "2fbac02f5f22b45e94ee33f9f53779fa059c5e93282d3c2f5ad0af027029a1f4" + }, + "campaign/rollout/formal-verifier.md": { + "mode": 420, + "sha256": "f961ceaef0037001e6576d760e28e7aded0502f3d8311925e5ed1cc537c996dc" + }, + "campaign/rollout/gate-followup.md": { + "mode": 420, + "sha256": "677f17aef214e7a6c92958dd8ad98137b238cc7fe7c1da23bcf36d727f28f7c8" + }, + "campaign/rollout/gate-worker-state.md": { + "mode": 420, + "sha256": "96514befccc589487ac3b6ff9348106aca2e4e8e3aa348471943d589c74629e2" + }, + "campaign/rollout/gate-worker.md": { + "mode": 420, + "sha256": "55db7c5f637d849fb2f200ab12c35a794c86e377a5de3f562b1c32455583e65f" + }, + "campaign/rollout/housekeeping-completion.md": { + "mode": 420, + "sha256": "a25041ebaeb030f1cfc62564b5bc57a98818ea75e082f28036e9cc367096ccd1" + }, + "campaign/rollout/housekeeping-followup.md": { + "mode": 420, + "sha256": "5759aaf403c019173450822dc5e9d4aad711a7497eba906caea39bdb39bd3702" + }, + "campaign/rollout/housekeeping-worker-state.md": { + "mode": 420, + "sha256": "5ee9a48a691709af325994fd3d44a1ac6e40d05f26e09b03ae7efec2ecbe25cc" + }, + "campaign/rollout/housekeeping-worker.md": { + "mode": 420, + "sha256": "bab8219fadd0688e91d6211478a01403a36ae74fd2b6f7df0ad5c8745a542ca9" + }, + "campaign/rollout/independent-review.md": { + "mode": 420, + "sha256": "a7a8ebcce5202db0e67c8c65135df751e69ee6728c4c2ced92e1cc85b4279f22" + }, + "campaign/rollout/lead-state.md": { + "mode": 420, + "sha256": "3ded5b3f97d7882f72abef5ea268765a5db29c8b619486c153f5c92742040c01" + }, + "campaign/rollout/publishing-worker-state.md": { + "mode": 420, + "sha256": "641977e4d0ec400a3a6c38121ae5e7904aa1accc47179ee148ad7cb199029b0e" + }, + "campaign/rollout/publishing-worker.md": { + "mode": 420, + "sha256": "822812fbc803d443fb7e0855268c34224eda29f95e57274c217275b09ff4410f" + }, + "campaign/rollout/review-followup.md": { + "mode": 420, + "sha256": "853e3b5aab09cd77fd54cae6d8a61fb5ae092603ab2be8dee2db6d80492a6443" + }, + "campaign/rollout/review-worker-state.md": { + "mode": 420, + "sha256": "a704e6023eaf3424761bf431e49687ae1f1d687119fe00a466b9da2d9ef7bd42" + }, + "campaign/rollout/review-worker.md": { + "mode": 420, + "sha256": "0e348015440aabef95766010f14880619d34a472102698c9819dfbb029b8a6c8" + }, + "campaign/rollout/sync_verifier_snapshot.py": { + "mode": 420, + "sha256": "4133e536bfdb0e206ecdfc072062e7674b07b973c7f8b9d7f1a268520523d6eb" + }, + "findings/.keep.md": { + "mode": 420, + "sha256": "141ed928eaf10a2023dd2c0ff6ea68cf6ec423cfd28d5a359d9c5add730bf64c" + }, + "findings/00-strategy.md": { + "mode": 420, + "sha256": "3bc97827988c6eb4647713c5655271e156dfa466fad5685924010f3244fe6386" + }, + "findings/01-fingerprint.md": { + "mode": 420, + "sha256": "7cf0503c29f5beff852427c2c5bdf8e9d968386de777c47b6130771cac944cac" + }, + "findings/_template.md": { + "mode": 420, + "sha256": "b92d0ca7bfef4498a5f9e594453f15ab15e2c88c7582c4ed5df4c40e6871c3b1" + }, + "findings/control-flow/ai-visit-order-probe.md": { + "mode": 420, + "sha256": "e89f91a33139014ebdc22d79064ecfd06f9b4ffebb4bbc3da73734fc47534047" + }, + "findings/control-flow/alliance-mask-and-modcount.md": { + "mode": 420, + "sha256": "ec66c6b76d9e4c8bed385acf70e6a7d5da08e05eca72ac1e8e5cb307d87f2552" + }, + "findings/control-flow/combat-done-tail.md": { + "mode": 420, + "sha256": "799ace775f12ebe9a2737a711c8d0a6e617f0cefec70b93bf094e47cf81cc348" + }, + "findings/control-flow/combat-resolver.md": { + "mode": 420, + "sha256": "abf1a9329c1bd8a96c76481246a00b380e9a17fa8dc8900810218026e5fe1b9e" + }, + "findings/control-flow/combat-retreat-pipeline.md": { + "mode": 420, + "sha256": "6c40c8bdbdde672c9cd67248d740d88892ad2b93b30e27e9bebe0e96027cf136" + }, + "findings/control-flow/fleet-visit-order-mechanism.md": { + "mode": 420, + "sha256": "a2ea1a6ac9d383380e16910cff89dff0e9b23f1df66f47ef91dd266bd50b3a6d" + }, + "findings/control-flow/gate-indexed-rng-audit.md": { + "mode": 420, + "sha256": "5004b2480787eec7be66f40474648030fdaf7759087a4c4651091152d89351cd" + }, + "findings/control-flow/hive-creation-rng.md": { + "mode": 420, + "sha256": "5ff37d571c0380c798a137e0c6947a0c63109de489fd2100c99bfc6637fc272b" + }, + "findings/control-flow/indirect-edges.md": { + "mode": 420, + "sha256": "3dbf2acf7354f61de66348fe40965f3138dbc4bbff8cb0f06b2751e71ed06ee1" + }, + "findings/control-flow/inlined-draws.md": { + "mode": 420, + "sha256": "3b099718543d7fb112664699749602ff9d61de9aaebb561fc93f1f8b7a152134" + }, + "findings/control-flow/per-history-residue.md": { + "mode": 420, + "sha256": "739c7fc760583ca143036ce554e1eece640d1662fba4642e6f80fadd3dad13f9" + }, + "findings/control-flow/pinned-seed-rich-turn.md": { + "mode": 420, + "sha256": "7c62336767b7c69f513446543f37662ba2a0872e207b906279446bbe399d65b6" + }, + "findings/control-flow/raid-gate-multiplicity.md": { + "mode": 420, + "sha256": "6d7b7357be428ff79186478dc37063657ca4d8e2ad49fcdd92493753748a52f4" + }, + "findings/control-flow/raid-intercept-species-word.md": { + "mode": 420, + "sha256": "1da80eb14f0e3e5a0ce139f62976bb305e3e75a1e5e0631d8287f94eac093d8f" + }, + "findings/control-flow/raid-intercept-z-word.md": { + "mode": 420, + "sha256": "beb421953b70377c8c759f5cc936321faa6316be76d41020b41f26c99706acb3" + }, + "findings/control-flow/raid-target-pick-verdict.md": { + "mode": 420, + "sha256": "d0262a4187e35547b28d6be842e7c730aa3ee93565404b587a790706afabd694" + }, + "findings/control-flow/seed-exposure-forward-test.md": { + "mode": 420, + "sha256": "f108a07ce695b64c482af58db4caeb2607059a3357b62f04f7f36ce45c84ff4a" + }, + "findings/control-flow/standalone-generator-and-turn-record.md": { + "mode": 420, + "sha256": "e499f62534580f27c2a01395e08312ebc7df13bdd307342096f468212aec600b" + }, + "findings/control-flow/standalone-scaffold.md": { + "mode": 420, + "sha256": "0bf928260d5058815a2f09c4df8c08eb359430aeea941f872018de7cbca39105" + }, + "findings/control-flow/tail-probes.md": { + "mode": 420, + "sha256": "ae45e84a9c7f257170f7550301fc4e1a35d5210269bda8070469a5c921cce95e" + }, + "findings/control-flow/tail-rng-ledger.md": { + "mode": 420, + "sha256": "2db588423e7b7de7729e5319477c17fbcea5b7a9cb8ff00b01cfd72bfce25403" + }, + "findings/control-flow/trade-raid-rng-gate.md": { + "mode": 420, + "sha256": "85c7b27aa284988b07b5e67c8e48ef1725289f1a6956d88be2572577cc06e1bf" + }, + "findings/control-flow/turn-driver.md": { + "mode": 420, + "sha256": "3f4e92041a0842d211ea9ae1ae16a9fe400dacf9632209102a1f76acc6b30792" + }, + "findings/control-flow/turn-spine.md": { + "mode": 420, + "sha256": "e2a64f82e5dececb4ba56859d1e53a0f720e08472c79c39197beba7f6041811b" + }, + "findings/control-flow/w3-containers-status-handlers.md": { + "mode": 420, + "sha256": "fffbaa6e3701abbe57a54046416a102502afeaa29b14632f9506905c22bf3914" + }, + "findings/control-flow/watchpoints-modcount-status.md": { + "mode": 420, + "sha256": "0aec4c93ca7219e29827a5069a9829d5e58da2001e79a7316bce288d3e9a6c7d" + }, + "findings/objects/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "findings/objects/00-inventory.md": { + "mode": 420, + "sha256": "cada5fc81c42cb50878a26e43a58640153c600319e66d4c92a23d7c363ff5f14" + }, + "findings/objects/aiagent-block.md": { + "mode": 420, + "sha256": "55d646ab57e90477993d263399254a3b103024d89fff42491b7df5cf4ffc8037" + }, + "findings/objects/classes-game.txt": { + "mode": 420, + "sha256": "e0eceb77c56e05bc7863d3a07805d703fc0ecec489ef24fabe7c6161f2835199" + }, + "findings/objects/classes-mars.txt": { + "mode": 420, + "sha256": "b624f7bd82a5277462a39627140a85c7a7929fd292b62e45edb5c96fd53b6145" + }, + "findings/objects/ghidra-recon.md": { + "mode": 420, + "sha256": "ca4b043a73c1d5573aa0c83cd3942db731884910c90e7d8544c8a32c939e2fda" + }, + "findings/objects/rtti-raw.txt": { + "mode": 420, + "sha256": "39f6fdf8793f8202c19cfb87a75466b215254a13050ec37c0c496699298247ad" + }, + "findings/objects/save-editor-structs.md": { + "mode": 420, + "sha256": "835d4fbf154275542383ea499a527c044ec7d577486c2735b817bd32d6e0c853" + }, + "findings/objects/schema-gaps-resolved.md": { + "mode": 420, + "sha256": "9ddae36eb8e3ef909c4902d01200fc8a17335271e4e063939ae162a3eea5bb3a" + }, + "findings/objects/serializable-types.txt": { + "mode": 420, + "sha256": "59c2f3942f55eb3f6687758a4c447b1ed8902caa60b97d9619bb8228e27c6838" + }, + "findings/objects/serializer-struct-recovery.md": { + "mode": 420, + "sha256": "5b56d8e1a5047d602cea7a76227f30e17244057fe21fde3d4e2cc76e9f185416" + }, + "findings/objects/ship-design-catalogue.md": { + "mode": 420, + "sha256": "feded2191180e184d34d4992935dc117bff8d052e8a2c63ecc29fa7b2e6b561d" + }, + "findings/objects/struct-recovery.md": { + "mode": 420, + "sha256": "4e99ef972529101f5700b52845e263fb3789e0b82d8cdeca921f1595a24d92db" + }, + "findings/objects/svsctob-variants.md": { + "mode": 420, + "sha256": "89617cd2909f2242e9e1657fd4a8f5aafe5aa0c1e0e9bc8926fb67c1e830dd2d" + }, + "findings/objects/svsctob-writers.md": { + "mode": 420, + "sha256": "7a9b7f3bf4eae63cf522246227410b2e3ca789284b7c620f01550fadf479622c" + }, + "findings/objects/turncommands-block.md": { + "mode": 420, + "sha256": "8eca2b79838114e7ae46d34c6e75eaf3b04c0448d9896ed4219b118f09e83046" + }, + "findings/objects/wire-schema-channel.md": { + "mode": 420, + "sha256": "31f0fc4e1cc3c3e7ef938aa22ad65cfdec32be4f1ade476a7ebf32c3c6f07d6f" + }, + "findings/objects/wire-schema-closeout.md": { + "mode": 420, + "sha256": "bbae848b4f8d6d0f2a914268ac34e75b4cea483f52816916202f3bd3cd084255" + }, + "findings/objects/wire-schema-ratchet-debt.md": { + "mode": 420, + "sha256": "0d144181478a607f2474a7c8a1b71ca49c881ef6fd068b5e8859c3fa8129507a" + }, + "findings/resolutions/2026-09-08-ai-seed-per-process.md": { + "mode": 420, + "sha256": "0765bdaeade29122ab5e64493f3a7c339f1e4c4445192ed09ae3d229dd6ae943" + }, + "findings/resolutions/2026-09-09-fleet-id-order-residue.md": { + "mode": 420, + "sha256": "b3d63a11e8ebd55da4af15760d044607b6105216898a018f5ceebc94750817e8" + }, + "findings/resolutions/2026-09-09-seed-exposure-is-a-predicate.md": { + "mode": 420, + "sha256": "dd7ce18738a625b9008ef80783bd64fc3857852775ab3b784b9e5f4fd5ae7de1" + }, + "findings/resolutions/2026-09-09-tail-draws.md": { + "mode": 420, + "sha256": "ff86a332ea9f87bd6f42a0b64e837e6f6f5876423ae9403a903aa9bfe7c42678" + }, + "findings/subsystems/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "findings/subsystems/ai-client-seed-is-per-process.md": { + "mode": 420, + "sha256": "5e6de0418588ff28cee29cb9affd69c3183819318c314eeb0771bbe810e6b4ed" + }, + "findings/subsystems/ai-order-capture.md": { + "mode": 420, + "sha256": "6efebf9f00b375d2c7f29ddeb24ef7a04e3b02cac9027369b490157a196d08ce" + }, + "findings/subsystems/ai-order-emission.md": { + "mode": 420, + "sha256": "9e54a13a18387a4f93acc5c66dbf71d365c81f1a8e6d2aee31f7a89712894ace" + }, + "findings/subsystems/ai-stepping-and-passes.md": { + "mode": 420, + "sha256": "e7e2fc612457a4e77df362aea2928d20fa5a2456fe12a7fbafeaf3c9e01c1dc1" + }, + "findings/subsystems/ai-task-system.md": { + "mode": 420, + "sha256": "577f8fc41256ebdf9629f1e30df9aac7f51c1a84b55f60c2b59e4af4c55126b2" + }, + "findings/subsystems/ai-turn-logic.md": { + "mode": 420, + "sha256": "79e9b7c9592d583db7b9d9ce472804038a71febf7527bd69e31b3399caeb0770" + }, + "findings/subsystems/battle-load-profile.md": { + "mode": 420, + "sha256": "3cf8e28925ebbb162bca9c3be9e6b2599c82ab6aaf9a9d99ffd9c934bf773c77" + }, + "findings/subsystems/data-model.md": { + "mode": 420, + "sha256": "f01c9bfcf8ed9fbf9fdd30556308a1dbb1094896050cc8a5e4fbc1c6c61aff78" + }, + "findings/subsystems/data-parsers.md": { + "mode": 420, + "sha256": "6a428c14279ac2c589b4af932e762ef7e3ada1a878128527b8d88858c11fbc35" + }, + "findings/subsystems/determinism-oracle.md": { + "mode": 420, + "sha256": "4fe0abad0b1b825392cd47b792d06756742495f26ff40a6a433d8608b4680bcb" + }, + "findings/subsystems/eventlive-verification.md": { + "mode": 420, + "sha256": "8bfcc75e57ddf88ec8a4b8885f033be8ffd420965077ab284b1ebce535ecf1a0" + }, + "findings/subsystems/events.md": { + "mode": 420, + "sha256": "c5d6e168d6d48eabec0ae0a448f9c3ec8d0f751a67fc320bc1021ba10008a3bf" + }, + "findings/subsystems/formula-gaps.md": { + "mode": 420, + "sha256": "63ec96a27fac5381d33cdce3e549d230bd5b0230e4d8573f4f3d45bab7d47ffc" + }, + "findings/subsystems/fpu-precision-sensitivity.md": { + "mode": 420, + "sha256": "4cf84e2a1c3d0eaaf9b3a7f218ad663ffa6984389b2a25851249733ad708ff8f" + }, + "findings/subsystems/golden-trace-recapture.md": { + "mode": 420, + "sha256": "b244f939b87dd464d78d919675c0e6aa010b0ec7b4fc6e4178e26c2c8ebee738" + }, + "findings/subsystems/id-allocation.md": { + "mode": 420, + "sha256": "b04a14a5a7d4d1c6137c4f9072987eebc997421e550881dcc2c8e386187f5b90" + }, + "findings/subsystems/income-term.md": { + "mode": 420, + "sha256": "c40286635675a91ce779b887a0394e92f946844873a778015efb98c4a105b67e" + }, + "findings/subsystems/loader-prototypes.md": { + "mode": 420, + "sha256": "f1d09471d5e17c45413b86805f561329f5af24eadfb17c3c740686c39b167ed6" + }, + "findings/subsystems/money-chain-float-widths.md": { + "mode": 420, + "sha256": "99bded6f2d34a713bc175deb4ad5ab4559ce1cc90274b036c1818ad8257c2fef" + }, + "findings/subsystems/movefleet-position-rounding.md": { + "mode": 420, + "sha256": "12dbdc03658cb042b5927586769dc9c19fc2eb812f703e73bf26273f8b0d65a6" + }, + "findings/subsystems/multiplayer-combat.md": { + "mode": 420, + "sha256": "2f4957011b5c5875b8aa7f71531dd5dfe3fd8df4f2c67a7be2fb5999f090c02b" + }, + "findings/subsystems/multiplayer-gamespy.md": { + "mode": 420, + "sha256": "a878e97775d27e085e58b18eaf5a67aaa522456d1055ca142f0477e3d6152d47" + }, + "findings/subsystems/multiplayer-tier0-verified.md": { + "mode": 420, + "sha256": "942ce29cbe22d8f7de5af54f2017c0433c7b8e1a56c864868ec906ffcbb9059a" + }, + "findings/subsystems/nav-classifier-live.md": { + "mode": 420, + "sha256": "b8aacdea8072a99ba1192e235088b372180f094795baf164e8cb95bd2df9f3b0" + }, + "findings/subsystems/nvo-tshn-visible-owner.md": { + "mode": 420, + "sha256": "ef96bb61769c02affd7148cd95e70bf358cbe6263fbe9b47aba6cf4cfa8486ad" + }, + "findings/subsystems/observedtech-append.md": { + "mode": 420, + "sha256": "61efcf51bffe53b8a10a2cdb8123db3f8c55b6874db87418fc31737efedaa652" + }, + "findings/subsystems/output-term.md": { + "mode": 420, + "sha256": "9eb9ff58a1d4cf34d3138f5044788b6f87ff4c94fa871b2dedd6ff6667196533" + }, + "findings/subsystems/output-turn-path.md": { + "mode": 420, + "sha256": "4e199e5cc14802c1b14b37cff0c1359b43aca94dab833f9024c7825c4c512588" + }, + "findings/subsystems/path-solver.md": { + "mode": 420, + "sha256": "3e0e318d45e14f844831c4180e47011263f64067dacf3249742882186d65cf18" + }, + "findings/subsystems/players-residual.md": { + "mode": 420, + "sha256": "e2f56c7983856470d37cd0fba4834a0ccb34dcaddbaf9acaf5dcdc253c6b3507" + }, + "findings/subsystems/population-growth.md": { + "mode": 420, + "sha256": "c2ec2f062e1224045b761640549e7374336ac762bd61c686a0c1378ad829a993" + }, + "findings/subsystems/rcex-explained.md": { + "mode": 420, + "sha256": "df7c9de6f02c1bd38f69e3a5344ec663d97b1d6b738ff408dfdeb0e2f6175b32" + }, + "findings/subsystems/relabel-new-ids.md": { + "mode": 420, + "sha256": "562ffe347adc6432a7824bfa2b324b6b1812b4fcc18343f0732c0f3d9991be20" + }, + "findings/subsystems/research-replace.md": { + "mode": 420, + "sha256": "d0f692cf687a7fe6aab62fc5d7d076eb595e1c33fd84c6f1e437ed01025cab4b" + }, + "findings/subsystems/roll-parity.md": { + "mode": 420, + "sha256": "7d97d7e5eee7b9f135e32b6553bb94ca83fd05b1eca7d18c42e9d65cae4d95d1" + }, + "findings/subsystems/rung-b-rich-turn.md": { + "mode": 420, + "sha256": "44378c6a305a82b2d131270fa5d97fdcd8a7fd5c9760ecbad7715383eac2db68" + }, + "findings/subsystems/running-the-game.md": { + "mode": 420, + "sha256": "f6109f69c6b86e4cf01d0f2e1f8be9921ff632513bca5d9e44e7f6c34f1cd260" + }, + "findings/subsystems/setresearched-cascade.md": { + "mode": 420, + "sha256": "9c079de161a1d1387339b8e8081395c1356c1443a0c898942acfb6efb65a454f" + }, + "findings/subsystems/ship-construction.md": { + "mode": 420, + "sha256": "86f570b1872c8dfac3982d1d7335f4798ccbd1bfd73c91d481afba2734c41216" + }, + "findings/subsystems/ship-design-composer.md": { + "mode": 420, + "sha256": "639b276e9205aaf6c90d9c458a383cc073e89f401ef8f17f8ad5a8a0c5899fa8" + }, + "findings/subsystems/snlv-measured.md": { + "mode": 420, + "sha256": "785324d176be969e1809090acd6b7a48d27f4fa41472c0d9c6f568c0b3a1e539" + }, + "findings/subsystems/spy-detection-roll.md": { + "mode": 420, + "sha256": "214179f5091408ef01ce4b80565068cb9a0885d1c6a233cda476280b9bf29c0a" + }, + "findings/subsystems/spy-program-draws.md": { + "mode": 420, + "sha256": "0c61c2f9cc767ae679921bfc42ef9a207ec9a6e0dc88419a673a8e439f1abfc1" + }, + "findings/subsystems/strategic-turn-internals.md": { + "mode": 420, + "sha256": "3a5c17e025d4968db6030f8ef1daaa2b03ccd4def12d35cf3a0eabcb0b5cbb54" + }, + "findings/subsystems/strings-and-config.md": { + "mode": 420, + "sha256": "67aefda7792e329b7df3f6e8cf42c7bae7049867cdda0741e871b183bc528786" + }, + "findings/subsystems/system-visibility-prediction.md": { + "mode": 420, + "sha256": "b420526ca0410bd4578dd2ed29cd9a21ed3578d6345d9f853a883e0159c1f89c" + }, + "findings/subsystems/system-visibility-record.md": { + "mode": 420, + "sha256": "d2843e10c156a7c85d7dab40d00204475fc725dc9b93656f6cde941ceceb5f51" + }, + "findings/subsystems/t34-observed-designs.md": { + "mode": 420, + "sha256": "207641821a55f5671749b000d478afd9e427336e2d123a55ad2203f34dfaa796" + }, + "findings/subsystems/tech-effects.md": { + "mode": 420, + "sha256": "7423f1e2cb2a597738b244d58bdf467431ee5de725ac434b904676ddcbcfc609" + }, + "findings/subsystems/techid-name-map.md": { + "mode": 420, + "sha256": "cfd92a7885dad3775465fc0c5b40aeb1749499f90071b44855ab8e1746d5f752" + }, + "findings/subsystems/trade-and-spy-workload.md": { + "mode": 420, + "sha256": "147057456fa30b6218df19679abab1ac31b78276a4272d221b70776e154396ba" + }, + "findings/subsystems/treaty-turn-stamp.md": { + "mode": 420, + "sha256": "fa0a8588847cc2b9e92cddeca65fd00fe3d84a00a1034d9354053c7e6cd9ceb5" + }, + "findings/subsystems/turn-command-replay.md": { + "mode": 420, + "sha256": "b65fa3c3c01c67bc16ec488e4a44e6c748256e941c80987528b7602038a56e07" + }, + "findings/subsystems/turn1-to-turn2-nondeterminism.md": { + "mode": 420, + "sha256": "9ebe834fa0f7c1cf864032ec67da76730ed6c239d6bd3a717f147490116acc4d" + }, + "findings/subsystems/turncommands-capture.md": { + "mode": 420, + "sha256": "a57fd2a77784fef1b176749878b161c4f04ac77c1f4a061a6b713787d92fb9ef" + }, + "findings/subsystems/ui-screen-map.md": { + "mode": 420, + "sha256": "d266285e3ca99ba3b5ebbab47c78f3df247a8b539c0519c6fd27a999b9d6f84b" + }, + "findings/subsystems/unlock-cascade.md": { + "mode": 420, + "sha256": "38d29a9484aa3910f5a62b5dd08225ba590bf26901203c5aef1b0b466fbbc5fb" + }, + "findings/subsystems/value-domain-census.md": { + "mode": 420, + "sha256": "bc99139708aee5da4cafec585fc35ab3523b51571518038db19b5f1383c6a6c4" + }, + "findings/subsystems/writer-byte-exact.md": { + "mode": 420, + "sha256": "a0e91a90d2ae78328dbaef30b37d53037cab26489e4729413bcfebbafcab0978" + }, + "ghidra/addresses.d/README.md": { + "mode": 420, + "sha256": "cf2745d5d3e504725ae5a296dc20e3d63b8d32a903445aafe2af61828a6d59c5" + }, + "ghidra/addresses.d/ag.json": { + "mode": 420, + "sha256": "24d5b11779364cf198008b143c7a3a092117ec4a1530c489497dbc8acdf62d8e" + }, + "ghidra/addresses.d/ap.json": { + "mode": 420, + "sha256": "e37f478836eb297f9cc5186cd7df3f5942abc4b6396a4d2866e613841437f778" + }, + "ghidra/addresses.d/ar.json": { + "mode": 420, + "sha256": "8d8620be8dd807a610ff63c0d77cbf266f3d9ce272158991d1f55d9c9910c248" + }, + "ghidra/addresses.d/as.json": { + "mode": 420, + "sha256": "08a869ab9466d4b575363cfb6fc084ca72cdc05d509c5d87e658a9a9977a7ae9" + }, + "ghidra/addresses.d/az.json": { + "mode": 420, + "sha256": "60b9a169605ac171cffb848024141c9224f6897bf69b547b9a4f2b5ddfc8d835" + }, + "ghidra/addresses.d/bu.json": { + "mode": 420, + "sha256": "79037146ba621e43e561bcf0577afc25b2ffac4ced44c902d2ea8ed9171b1bb9" + }, + "ghidra/addresses.d/cz.json": { + "mode": 420, + "sha256": "35de20ff0e38d05b5c58c89690dfc81ce44eb280a2a594ae862e55d56edb5d3c" + }, + "ghidra/addresses.d/dn.json": { + "mode": 420, + "sha256": "c41f877a37bc864f8f315a47b720ac204c22c25de405f4de63b845180641eba0" + }, + "ghidra/addresses.d/dt.json": { + "mode": 420, + "sha256": "580762e01175fb7246d0f9214e4ed9ba16bebcdb82ad1525fd1f77c0910c660f" + }, + "ghidra/addresses.d/lane-a.json": { + "mode": 420, + "sha256": "fce5f06866bddc6bca095d53e376495103dfd8900ad7da0d0d6731f105915d71" + }, + "ghidra/addresses.d/lane-a2.json": { + "mode": 420, + "sha256": "1207088eb2ae041afc2618a627029e25f578ae9fe8db73bb9efb616f39c34bf0" + }, + "ghidra/addresses.d/lane-ac.json": { + "mode": 420, + "sha256": "02a1c2f01ca0d11a7c38d416d94fabaea64b5c5919f6ceaead83430fb398710e" + }, + "ghidra/addresses.d/lane-ai1.json": { + "mode": 420, + "sha256": "134a0cb87b95bf5f39ed015bcdf64c6e8da6b22e073d5b5487148cb5421addff" + }, + "ghidra/addresses.d/lane-ai2.json": { + "mode": 420, + "sha256": "e9d94ce026231d420538400fa9c73fa8a2fa882d16f542c6b8ce2c34014acda6" + }, + "ghidra/addresses.d/lane-ai3.json": { + "mode": 420, + "sha256": "89c29e1bbb1159b7b6fb4fc8c232902f8497efc82290aba6f50c9c9097feec6a" + }, + "ghidra/addresses.d/lane-ai4.json": { + "mode": 420, + "sha256": "78b7897d3d2678ddbff7cd982bfa7d93a0c26817846a148fd3f46790fef9d7fb" + }, + "ghidra/addresses.d/lane-b5.json": { + "mode": 420, + "sha256": "641c724d1fbf28f5469aac488401ea2f92bdd3b929fbf053ddeef0ba5b8de9da" + }, + "ghidra/addresses.d/lane-b6.json": { + "mode": 420, + "sha256": "b2b2833220e3a645efab2b767f1d93d1215a54d195e28e6743db8f1d89934697" + }, + "ghidra/addresses.d/lane-c3.json": { + "mode": 420, + "sha256": "b732932503c181c77bb14ba0136379c8fa3501d0c1471b02d9bca7d023bb5f5a" + }, + "ghidra/addresses.d/lane-d2.json": { + "mode": 420, + "sha256": "8b5df39fb5eea0cd40dffc20aaccabe169f5472171dfd242ca2e75dfc4ca608c" + }, + "ghidra/addresses.d/lane-e1.json": { + "mode": 420, + "sha256": "cb38b41b747bf74ee73fb7eaa301da4bb896d089fa1dea4197382e94940c7f69" + }, + "ghidra/addresses.d/lane-e3.json": { + "mode": 420, + "sha256": "a5fe9dbb37ee587bf36a311771bbc9d8dcaa4d4fcc0b420b8f45829929b0ff98" + }, + "ghidra/addresses.d/lane-ev.json": { + "mode": 420, + "sha256": "b243d31bcd69bfb1e5928ba8b70e958e559c88ee5190ca34e569f217a784798c" + }, + "ghidra/addresses.d/lane-g2.json": { + "mode": 420, + "sha256": "84401f05c5cf2ca0839e817877892e904b3fd2fd4175607abc34453acd8ce822" + }, + "ghidra/addresses.d/lane-g3.json": { + "mode": 420, + "sha256": "d176eb4a07bb6b98acea77e1a0a9904d317a594768ecf8719bbfacbdf6522729" + }, + "ghidra/addresses.d/lane-h.json": { + "mode": 420, + "sha256": "e8cffe89c7feb1d9fa1949f33aff01edc7b84b49ab752275662f6f613c16c0b6" + }, + "ghidra/addresses.d/lane-i.json": { + "mode": 420, + "sha256": "a4c482ff6fee78e96da3400b9ba7d76b58634a5933ff388db5993a1b105c8aca" + }, + "ghidra/addresses.d/lane-id.json": { + "mode": 420, + "sha256": "3f48c9b2e2c3a08e13a856bfb78d551af17f5a1a1079f03f8edbf4615f17ca7d" + }, + "ghidra/addresses.d/lane-j.json": { + "mode": 420, + "sha256": "4fd95b08fee60a2748995cb082fe50d61e7179ae90b106f230bfc5c55a35660d" + }, + "ghidra/addresses.d/lane-k.json": { + "mode": 420, + "sha256": "f6ead3ff256fd2e1408d52bfa28e308f106ad672b3fe1cce0d136faac351136e" + }, + "ghidra/addresses.d/lane-l1.json": { + "mode": 420, + "sha256": "ecbab4a1b602beefd6889effc4883b7f7de01afabb7c5c071bbc4e2237e9131b" + }, + "ghidra/addresses.d/lane-l3.json": { + "mode": 420, + "sha256": "eabb96253bee36c799f1eb89108e284162606cfdc5e9bd29dbf7b5f88ee88adf" + }, + "ghidra/addresses.d/lane-l4.json": { + "mode": 420, + "sha256": "5b2b54d2f3e123e352e9a2b0f1d80fc8afcdd0b97916a94ee5a62ddc03b0ae75" + }, + "ghidra/addresses.d/lane-l5.json": { + "mode": 420, + "sha256": "cedc4869149212d401c519c46fa3f02769f9c939fc560fe8d35cc4f898091482" + }, + "ghidra/addresses.d/lane-n.json": { + "mode": 420, + "sha256": "6987efa430f2da8987e42e61e53113f914cb00e3e52a7c679565e7faf5160c82" + }, + "ghidra/addresses.d/lane-o.json": { + "mode": 420, + "sha256": "7fcf357f25ccdf061b6bc688339e2006f830c551718b6419a0a9d0ac968bb555" + }, + "ghidra/addresses.d/lane-p2.json": { + "mode": 420, + "sha256": "7eaa63d64a0054ef88f323f58b31fca07bd2372dc21560b4bda64eb13d869792" + }, + "ghidra/addresses.d/lane-par.json": { + "mode": 420, + "sha256": "3836b786aec28feb028271d05f368d7c332b8930b51cfdceb36540133a3d3237" + }, + "ghidra/addresses.d/lane-pl.json": { + "mode": 420, + "sha256": "f29953d17effbb7d8256687833023d4656522e74c40bf1ea646d3b35da3635d7" + }, + "ghidra/addresses.d/lane-q.json": { + "mode": 420, + "sha256": "6f98496ffc288fb30c3a7347a7e5252b296f2345afd1bf678f98a2c934b8935a" + }, + "ghidra/addresses.d/lane-rb.json": { + "mode": 420, + "sha256": "bff95b9452e0efb63e74f741682c8d1843abfe3e722143cf01cf092aa894d75d" + }, + "ghidra/addresses.d/lane-sd.json": { + "mode": 420, + "sha256": "d3239b619cbef5cddc9c7bde6525301a99a6423f8a0e42c1ea53b9ae269c6da9" + }, + "ghidra/addresses.d/lane-sv.json": { + "mode": 420, + "sha256": "f574d8b4dc75da722870c74eb29cd56c75e04dd0ac384b4549fc95d425e3de3a" + }, + "ghidra/addresses.d/lane-t.json": { + "mode": 420, + "sha256": "70975f3c1dea55ceb11af12b9ba3a04e8f7bba2e25f1355ffcd3cd457c41545c" + }, + "ghidra/addresses.d/lane-t2.json": { + "mode": 420, + "sha256": "1e3c59089b769cc5f5d3cf16c33cb6db002966f5beb1a4fb9dd8e28fe54cd6a7" + }, + "ghidra/addresses.d/lane-u.json": { + "mode": 420, + "sha256": "bcccb6ec9257537eece135adbfd126904ca0becf14f9b5d17253adf5d8c9e8fe" + }, + "ghidra/addresses.d/lane-v2.json": { + "mode": 420, + "sha256": "6a4d4960ce99c05b928164159eaf4482bf763785a1f8c50efe133667886d9a54" + }, + "ghidra/addresses.d/lane-w.json": { + "mode": 420, + "sha256": "3971d65c772146534f5d8c350f2d203add70ac82801f57f3704c47cd59b51226" + }, + "ghidra/addresses.d/lane-w2.json": { + "mode": 420, + "sha256": "677648e94de8e1e0d538c9575c9be942d0b37c1a847effcb3c2312af5b6aa7d9" + }, + "ghidra/addresses.d/lane-w3.json": { + "mode": 420, + "sha256": "50ed8ed1b16288b00bac4df0886646dbf9d6d6392867029b4eac386806b41b51" + }, + "ghidra/addresses.d/lane-z.json": { + "mode": 420, + "sha256": "bc63a82f2d0cb7636e95f8a07f183f80817a4c65d2bb7263a047ec3c540512eb" + }, + "ghidra/addresses.json": { + "mode": 420, + "sha256": "865c02d88ac6ede656160a5ab20521ad8854efa381d5a943ab422216aca2c016" + }, + "ghidra/generated/sots_addresses.h": { + "mode": 420, + "sha256": "1cf6b4ab40d3cde306edee12ba4eb05292b98ddcf5c2b7c22c1c64b6075b1bdf" + }, + "ghidra/scripts/FixPlayer.java": { + "mode": 420, + "sha256": "9f9ea470af063339511b1f1c85d6dea2df0827c4fed5806c6f641b1aad3e5660" + }, + "ghidra/scripts/FixThis.java": { + "mode": 420, + "sha256": "aafeeb482f71d1bdcbc99a51fb3f21989a46fbb49b5a572f3d9e436c9b3b98b4" + }, + "ghidra/scripts/LoaderRecon.java": { + "mode": 420, + "sha256": "1275d460227e0098254885fe70666d618da7215bca99483a5475c1e701ab9b27" + }, + "ghidra/scripts/LoaderWriteBack.java": { + "mode": 420, + "sha256": "d1040cb9ee80f0fe4d2310d95b38d7d94b0972283f74ea6058de0bdb9e510e63" + }, + "ghidra/scripts/SpineRecon.java": { + "mode": 420, + "sha256": "bea798733cf60f9478373cc453692104058b643ba5b7fc68e76945ae6f496950" + }, + "ghidra/scripts/SpineRecon2.java": { + "mode": 420, + "sha256": "94f10ac953091d50187a46b74803abb4812b244356f9336fa8e133a8a6cba0c6" + }, + "ghidra/scripts/SpineRecon3.java": { + "mode": 420, + "sha256": "b2344ab3d7195cfb935505ba1949f3d4862f787ccb95b812cef3856f92c94ffc" + }, + "ghidra/scripts/SpineRecon4.java": { + "mode": 420, + "sha256": "1093ee635be94f0c0bb31b5bd79f030faa0d7cbab96a495426363172cbcd1d66" + }, + "ghidra/scripts/TechFx.java": { + "mode": 420, + "sha256": "bfa8e990d65ad7cb2b665ee284ec2d645395e0fb3794ea146b175e2937a159ad" + }, + "ghidra/scripts/TechFx2.java": { + "mode": 420, + "sha256": "ee7040ed3316f2e717bac207c3e8ba9bf5ecb560f9e2b38335582c4ca6bae5a8" + }, + "ghidra/scripts/TechFx3.java": { + "mode": 420, + "sha256": "b672751160abcfee37d16eb2f107a60420b7d6956c312fe93e9f62578c06b96a" + }, + "ghidra/scripts/TechFx4.java": { + "mode": 420, + "sha256": "ef912e86f802452f33c20a1adb87eeb96f0ec893e26ee4bbd02305ba0c5e46c7" + }, + "ghidra/scripts/WriteBack.java": { + "mode": 420, + "sha256": "e002a5b86bc58cf75ef8d08dbaeb84bdf3306c1e8d49e92c0382f8ed858c57ac" + }, + "ghidra/vtable-owners.json": { + "mode": 420, + "sha256": "8ee89f3b43f56283a6ffcc605394a1ab246f8071370a9db8f1e770942a5a82a3" + }, + "guides/lab-screen-wall.md": { + "mode": 420, + "sha256": "d398b47853013dbce63b4af2f2ec680c39775732b9fbba13f5fc42a46628550f" + }, + "guides/method-rules.md": { + "mode": 420, + "sha256": "a71a8415202fe97ccaee3805bf4035684776c37f5613dc39a1f260aa33f94b69" + }, + "guides/multi-agent-workflow.md": { + "mode": 420, + "sha256": "f5bf0c30c12a3a9e1725549fe000be0105d415ca25b120673a780901148f08da" + }, + "guides/re-windows-2000s-howto.md": { + "mode": 420, + "sha256": "3490650440d6e683cb029915b8c2cace914b1f52538c9db89175ad4547db2901" + }, + "guides/windows-lab-housekeeping.md": { + "mode": 420, + "sha256": "4a9e9d66dd76e6b5ee1951686186190c650a617fa812fa4bd236ef02b783939a" + }, + "notes/.keep.md": { + "mode": 420, + "sha256": "7878c159a1b9636974e9093902027a24bf7b3c7520f13a8d96f930bd10d22f1c" + }, + "objects/generated/sots_stream_schema.h": { + "mode": 420, + "sha256": "13446ce54d60a0b29adcefb51aeb5127a0a3ca8de2bd1665e4778ba5354bff8c" + }, + "objects/layouts.h": { + "mode": 420, + "sha256": "24586f7f1c25530691193a919c6335ab1784fa2815b222326409cfe9e2a42981" + }, + "objects/layouts.json": { + "mode": 420, + "sha256": "16bfffa5020d98c12af61c72a48da8f2c5e06d1060358802717e585a49b150b2" + }, + "objects/layouts.md": { + "mode": 420, + "sha256": "83bc29fcd379847f9ebd6732edf9748c1c878052e889615928659307f97a148c" + }, + "objects/streams.json": { + "mode": 420, + "sha256": "60993eda14d0b1056578718d43a3b6d89816e12c4f5a00674806aeef9e81baf7" + }, + "opencode.json": { + "mode": 420, + "sha256": "d24be7fcee57d5eb04c6b7189822a2ca055dd4a70daafbea67f09a120945d49f" + }, + "scripts/.keep.md": { + "mode": 420, + "sha256": "b0cdcee8cfdc1b15ee444520b6b01c747399deea6d92ff2576ca6eb57331bbac" + }, + "scripts/forgejo_campaign.py": null, + "scripts/lane_v2_writeback.py": { + "mode": 420, + "sha256": "69a66058adb04926eeb6f0e81fa8f0392ce06de2e8d8eb61ebcf503bab6311da" + }, + "tools/DASHBOARD_README.md": { + "mode": 420, + "sha256": "f401cc54f64a4862a938263f37eaab22e6475e063e59726e02dce201f657dcc4" + }, + "tools/aiorders_to_tcb.py": { + "mode": 420, + "sha256": "9762d1fd45f3ab7c045088e222c5386a2cc63a6b25e1c09a49cbbd71837bfe17" + }, + "tools/cache_functions.py": { + "mode": 420, + "sha256": "18c037e48ab035764b0c877123ea7c998ef74240c63090e4f58142f57835e0b1" + }, + "tools/campaign.py": { + "mode": 420, + "sha256": "c7b7c7a30d907bba8e59386dee8704d7f3f5e978fcf709b686e37996fa465c31" + }, + "tools/check_agent_config.py": { + "mode": 420, + "sha256": "93115532cb38105777a5c5c20a9f2a808043370e0d4f560a9c82fe8e800076ec" + }, + "tools/dashboard.py": { + "mode": 420, + "sha256": "c84aeeea6fb7d5e45ccec8882bacc59182149f108edd9eb1585eab9ede99911c" + }, + "tools/displacement.py": null, + "tools/evidence.py": { + "mode": 420, + "sha256": "0a7f8497ed287b4b64aa5ba0cb25735172408e38f3605b3ff90f009c7f02eb85" + }, + "tools/gate.py": { + "mode": 420, + "sha256": "4df5ee7022fb2601687f06eab788e2cea1e345e580c4e92c9d47be1787d37460" + }, + "tools/gate.sh": { + "mode": 493, + "sha256": "d7ba27b9b0c6a03df48e4edc71884ef9986743f8afa751dbfec116df5aeee18c" + }, + "tools/gen_addresses.py": { + "mode": 493, + "sha256": "5d995585d4192a19db7cc6d31ed811fa80264159fc114f03f58793f9b6c4908e" + }, + "tools/gen_stream_schema.py": { + "mode": 420, + "sha256": "a9c3e925bb3370371a2c8cde8d738c657fe1cbf68c39c6155562bbb20c551461" + }, + "tools/max_income_oracle.py": { + "mode": 420, + "sha256": "8d3ec6ba5c677486200eab7d1ca55e1350947829e603737307fa394ac8e40bcd" + }, + "tools/max_income_predict.py": { + "mode": 420, + "sha256": "85400c82b6cb7c6786b7fb6486bdc7bcb1140817f7a0ff0b4fa4f7dbeded8797" + }, + "tools/probe_report.py": { + "mode": 420, + "sha256": "f3ef378c10bae4a8bef754d853f0e86616bb95b5e051e04cac97d362587df1a7" + }, + "tools/reva_call.py": { + "mode": 493, + "sha256": "89477650d38985f84b61a664572de1cbde1268b879d3da5e874598942822998b" + }, + "tools/rng_ledger_report.py": { + "mode": 493, + "sha256": "b4f3f581eb6de50118fd531c848354816c20197711e668ce8b0cfcb4d0392cf3" + }, + "tools/rng_oracle_check.py": { + "mode": 420, + "sha256": "f27ca7f9aa03bc672f04067bc71e73ac83742997f12f5f55ce11151bdc39d98a" + }, + "tools/rng_site_report.py": { + "mode": 493, + "sha256": "fabd950c002265403f7b13a8868a158d867828c9930770ed096a2610b086ad35" + }, + "tools/rtti_map.py": { + "mode": 420, + "sha256": "9ac88a8aa566fe08336ba6e50905ec4253409e1317f491c415b1b9ebcc0713e4" + }, + "tools/run_agent.py": { + "mode": 420, + "sha256": "0f5ccb53dcde59b64fe999768737b6cbd2dabcc1272e5605c1f1ecd86e5d5d2b" + }, + "tools/select_evidence.py": { + "mode": 420, + "sha256": "a6e648a77bcf799cc774ff9d0de83011283049ed0f0c44f6e08857a8410e9463" + }, + "tools/serializers.py": { + "mode": 420, + "sha256": "938904eb7b4ae30a61dd966494b112c6d52399f9d4a4658add06b40a54d6cb73" + }, + "tools/serializers_ghidra.py": { + "mode": 420, + "sha256": "d27da0afc8d043d31335bbe274fc76245e50cf0f9091a968b124f31c3a17997c" + }, + "tools/serializers_golden.py": { + "mode": 420, + "sha256": "29d2509b54704b80eff46a59a320719edb17a7eb67fd8acb8ad5e3c427d8e825" + }, + "tools/standalone_report.py": { + "mode": 420, + "sha256": "43a61c4031306732554aca23cd95b57d35f2a870766c33ccf8e005f22436525c" + }, + "tools/streams.py": { + "mode": 420, + "sha256": "57ec4ec5ad222a74f4461d70277d258e51779ae53ff74fd0e07eb51d4bae0afd" + }, + "tools/strfootprint.py": { + "mode": 420, + "sha256": "3b0db212c0b091ae2f63b866ee331435d013c535f233ec34ae3dfb63ded852dc" + }, + "tools/tcb_from_json.py": { + "mode": 420, + "sha256": "8fe09cff16802fda34db24f6f888610baa258399ab39173586b91a7a162f231a" + }, + "tools/techid_table.py": { + "mode": 420, + "sha256": "2c644bdbd3774b70dfdae7e77ff7a3a8e8563b58be7098a2d55ee30dc8b8fd07" + }, + "tools/turncommands_capture.py": { + "mode": 420, + "sha256": "0214d5da6f5f86e188bb2f03db8d3439267baee3a883c7df754601c7c1a38536" + }, + "tools/vmshot.py": { + "mode": 493, + "sha256": "09228bf8bd61918c49afc2b6da931fc8a7833be126be5384b85194e0e86eea44" + }, + "tools/vmwatch-install.sh": { + "mode": 493, + "sha256": "3c004f532422bd589a7294dabdf54d5a726f598c69012eaea3d73a748ad0123a" + }, + "tools/vmwatch.py": { + "mode": 493, + "sha256": "650d8232e46239a55b96f26d581d7d9c5815415c9014fd2e5b846b68c1346b39" + }, + "tools/vtable_map.py": { + "mode": 420, + "sha256": "2e19223efb79421ab4b807e32f0854b2592d7d3a3a52c12e84e47460b960f740" + }, + "tools/windows-housekeeping/Invoke-Housekeeping.ps1": { + "mode": 420, + "sha256": "a97911a3cfbd47813282efa7f52b4de03d28912487fffe0e7e7aa1a250cac01a" + }, + "tools/x86disp.py": { + "mode": 420, + "sha256": "a05a42d63813d2025a4da65bdd684e82a89c95c52901a8f490391e31c49a122e" + }, + "verify/campaign/test_controls.py": { + "mode": 420, + "sha256": "108460f4e90c4cb7036642e85de581e31fd70c478533c32364691260461814fc" + }, + "verify/config/test_agent_config.py": { + "mode": 420, + "sha256": "e60ee546672da91de08ca8fdd5d563b5f1207d0a865adf935017e06bf437585b" + }, + "verify/config/test_source_check.py": { + "mode": 420, + "sha256": "c16731e31a54256dde4f88d33007759ff21ad8537ca6cd2be38b9e34c59525ad" + }, + "verify/design-rules/SHIP_DESIGN_RULES.md": { + "mode": 420, + "sha256": "4decf51bfa03e8ab2b58478198332e834233100126949b920349f210b54521c8" + }, + "verify/design-rules/data/HiverInvasion_FleetTemplates.csv": { + "mode": 420, + "sha256": "327e799be3c75361267725c157f78b425d3a1df6ed6595104b2ce9993e8ae3a7" + }, + "verify/design-rules/data/UpstartApes_GiftFleetTemplates.csv": { + "mode": 420, + "sha256": "89939d70eb6ed48ec776a4a6fc50ccb68fc6be7162706bab199484bf7cdd5e44" + }, + "verify/design-rules/data/_defaultweapons.txt": { + "mode": 420, + "sha256": "ef9e33aa32840f1878ece67f88556d81a4255f63f6e8aad4ac73e575ef2c7ec8" + }, + "verify/design-rules/data/_turrets.txt": { + "mode": 420, + "sha256": "35de6ad40895f76298eef7dc354c739a5a59747b689c2324cfa5040442eddc18" + }, + "verify/design-rules/design_rules.py": { + "mode": 420, + "sha256": "772f70c7d6be2d20d10cf4f5d412233b267440d63d431bf7b320c29f3f06e313" + }, + "verify/design-rules/stock_designs.json": { + "mode": 420, + "sha256": "b363023e02899bc03e4c8b8423b394ef8abb190b1bcf437aade19be463353f68" + }, + "verify/design-rules/stock_designs.py": { + "mode": 420, + "sha256": "fe020f6058ec25b6fc456146abb6594825ee2b98ba5c5c5eeaff969ce4596031" + }, + "verify/design-rules/test_design_rules.py": { + "mode": 420, + "sha256": "6f6764d21d7a3337ec8aba9651b19947239a7d06a6cdf7c6e9be5ddefcfdd186" + }, + "verify/fpu-cw/cw_census.py": { + "mode": 420, + "sha256": "07b7ac5ae60df487867b592e82e9f74201b695437fba248813bc07305a21c7cc" + }, + "verify/fpu-cw/trace_bitdiff.py": { + "mode": 420, + "sha256": "b25c93d70e67ed2fa81e5ea7184f8ffe0cbd2e7c043bc94f923c3db1cf101b59" + }, + "verify/harness/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "verify/harness/cb/README.md": { + "mode": 420, + "sha256": "7a656251a600a9343ffa8afaa4f227e7cb8086be7d3c6879c0a403ab8acec71d" + }, + "verify/harness/cb/cbdo.sh": { + "mode": 493, + "sha256": "6f3d7fd35aeedb0841be9df0ba19136be2e7ccb5c44950d8aa821c61727232a6" + }, + "verify/harness/cb/cbfull.sh": { + "mode": 493, + "sha256": "609101217e9d35bf1caa5cb66f362e0796fcf6c1264bd92ff550d0ed12ca2521" + }, + "verify/harness/cb/cbload.sh": { + "mode": 493, + "sha256": "2e56bb64609434f6dfc6ebcf71a3c839ae59170db80c996ebee7c2219cb664ec" + }, + "verify/harness/cb/cbmenu.py": { + "mode": 420, + "sha256": "fb2e72a1a5390aa28dcae0fbc2d7b920b06bf3b1ea161bb757d4db3c8cd23af2" + }, + "verify/harness/cb/cbstep.sh": { + "mode": 493, + "sha256": "5896b21e8cf08b40e2a2958e44a51beb7e5b5a58cf35d405879a5df7cdd375b4" + }, + "verify/harness/compare/TRACE_FORMAT.md": { + "mode": 420, + "sha256": "cf6f61dc255e3aed0f293c141d9fd3b0d5e848e3abe4dcf50b4ca2d58e37c024" + }, + "verify/harness/compare/mkfixture.py": { + "mode": 420, + "sha256": "f081dd92b9e82e838f59ce8f9c79d5cdebb825255f13b6c49178516e7f3ef118" + }, + "verify/harness/compare/oracle_parsers.py": { + "mode": 420, + "sha256": "b1a745bfa63b447c87279afdb2885a0218f2a0dc2539f79414f8a2534e24c97b" + }, + "verify/harness/compare/test_tracecmp.py": { + "mode": 420, + "sha256": "f25eb9d5ea7215b8366c44924fb49a5f028a0188e709dadfd90cfbc30db0823e" + }, + "verify/harness/compare/tracecmp.py": { + "mode": 420, + "sha256": "d6ca461cabf15351e2040150144084b93d3caf22d879ee158ede04052ab03cbb" + }, + "verify/harness/l2-ui/README.md": { + "mode": 420, + "sha256": "48effd757522ee5ff70af6d77449dcfd805bb7744c9093d01c039b86e030d7f6" + }, + "verify/harness/l2-ui/launch-b.cmd": { + "mode": 420, + "sha256": "8f26c451a88765c49ecb3c8160ed4a3d06f1100a6d9323b305efc01f039dfada" + }, + "verify/harness/l2-ui/socks.ps1": { + "mode": 420, + "sha256": "401cce47d495507f60eeae45942c146586464959046ef9715cd69605753af027" + }, + "verify/harness/l2-ui/ui.ps1": { + "mode": 420, + "sha256": "355c8f222bf99f547d9d16a1665a072e6914917d48e4db22b8438d2d83708e97" + }, + "verify/harness/profiling/battle-run.sh": { + "mode": 493, + "sha256": "79f14ded5c3731efd655a6f9a4ac6795f3ace0a9b064c43ba4bf9a2cb988a7cf" + }, + "verify/harness/profiling/funcs.py": { + "mode": 420, + "sha256": "841a6f5e5dc1d845b7439c9ce9dc08e045864929b0f367908abea7ab54259207" + }, + "verify/harness/profiling/funcs.txt": { + "mode": 420, + "sha256": "d35b17dbb3970f5c24ae862748c5b91aee87491968719c34e48a8b88c0615835" + }, + "verify/harness/profiling/iat.py": { + "mode": 420, + "sha256": "82465ef8284739ab3d3c99acd0fa6cc5a4bb80c8680eb7a949218305fd10d3d3" + }, + "verify/harness/profiling/inspect.ps1": { + "mode": 420, + "sha256": "35bc7dd85108e3f4686975ef7f510b1cc9306b5839329f7fdd2a5ac27a140611" + }, + "verify/harness/profiling/names.txt": { + "mode": 420, + "sha256": "89d90f934e445447c68569448471a8917ee0bbfcb5fb96bba3e6566be9b0779c" + }, + "verify/harness/profiling/parse.py": { + "mode": 420, + "sha256": "680df36804e923d74da8e9fd8877b5ea66975c9ce8d239ad4507c829f881722a" + }, + "verify/harness/profiling/sampler.ps1": { + "mode": 420, + "sha256": "ef0edde8535ef07e508a732f8e11dc3d50fef966e5a9e4d8161085a83372993e" + }, + "verify/harness/profiling/shots.sh": { + "mode": 420, + "sha256": "87e554abf08068d6438417e266f1e7820e34a900a7d559fa0a7c4a2fa18002b3" + }, + "verify/harness/profiling/timerres.ps1": { + "mode": 420, + "sha256": "80362eb9ec8bd882abddf2507236e70db2dd21f64c9db07d217bdd49361ed89c" + }, + "verify/harness/profiling/turnloop.sh": { + "mode": 493, + "sha256": "8e28f076599a9eb53eace77ad77a10b0770f1ce617c7a76e6a2b9044ee0c8774" + }, + "verify/harness/profiling/turnwin.py": { + "mode": 420, + "sha256": "e2033a8e519a7c9f65f67b5592494a9843eb8bef41af6ab5652343aa86bd4c60" + }, + "verify/harness/profiling/ui.sh": { + "mode": 493, + "sha256": "e66774a4d070285e6c6a62472000222a691c7192096039e75fa726bab9f6afb7" + }, + "verify/harness/run-recipe/click_helper.ps1": { + "mode": 420, + "sha256": "150a1c17e12e8479244107cd01d95233c84d550e95a6f5e352fd529818a21d7d" + }, + "verify/harness/run-recipe/display.cfg": { + "mode": 420, + "sha256": "76b4876abd1cd163a5cc6b65a6106670476cde40c9b868a53a0dc45f517e132f" + }, + "verify/harness/run-recipe/dxvk_d3d9.log": { + "mode": 420, + "sha256": "f48ff2684a78cea563ab7f10e2f005638044352fe9cfc30dedf0f26ec7fecf23" + }, + "verify/harness/run-recipe/launch.cmd": { + "mode": 420, + "sha256": "90a6effe8ae835bf641cc775a17ad709198fdfeded4379f658255a82f594e5c2" + }, + "verify/harness/run-recipe/lvp_icd.x86.json": { + "mode": 420, + "sha256": "b89a08526e043a84c3a2550b5ea2fd7692f547ea295e8dd70e79c64fe81f6fbf" + }, + "verify/harness/run-recipe/run.txt": { + "mode": 420, + "sha256": "12c83295dae9db4a98142ef8fe7e45321c90960428df504ed3496e27838a0413" + }, + "verify/harness/run-recipe/session.log": { + "mode": 420, + "sha256": "e9ce9b496e9ee55bd64cc27afe594cee6136dfbc6cf9d9d44e9914b27e568a93" + }, + "verify/parsers/PARITY_NOTES.md": { + "mode": 420, + "sha256": "beecfe60358f5977529bd0784ffe18ca03c38d2dd36766f351c6a9addac83bda" + }, + "verify/parsers/effect_txt.py": { + "mode": 420, + "sha256": "7219045dfaf305dd64218ff8096e8cac69a53df1aabdf85f15e6c5e01c963e74" + }, + "verify/parsers/flat_kv.py": { + "mode": 420, + "sha256": "a26149cb21d152be5cbada3b764e042187daf2ec306b2dba1081737af6a7ae4f" + }, + "verify/parsers/manifest.py": { + "mode": 420, + "sha256": "62a08cfd82d5f701ae3b3f567bc8382cfd1b33b49bf6049ade47a932ef7109da" + }, + "verify/parsers/mars_data.py": { + "mode": 420, + "sha256": "90c7b8421044b1d7e262e6f20e5af391d97a712b12c2d3f0c3033567881d536f" + }, + "verify/parsers/verify.py": { + "mode": 420, + "sha256": "cc5d619bd6b3ca161b4bc8050c30e7d77f6bd3e964c971cc29e051efc1e25a33" + }, + "verify/publishing/test_dashboard.py": { + "mode": 420, + "sha256": "cc44e516da663f5d27bf817cbcbf24c052f2db52ee887d08d7c271caf8f6a000" + }, + "verify/results/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "verify/results/compare/.keep.md": { + "mode": 420, + "sha256": "4581f3fde61549f4c621b2f114228a62d066a528a270a9b41703238ff841ac1d" + }, + "verify/results/compare/b2-techfx-compare.json": { + "mode": 420, + "sha256": "b0533322d44b1694f36baf86d6660481ac5b22ce9c1d6b6b9668ea064cc08f4b" + }, + "verify/results/compare/b2-techfx-golden.json": { + "mode": 420, + "sha256": "4298a8229b85a3329c78d3618d3eb19aff096cb2da66e9238fd843d639b17f11" + }, + "verify/results/compare/cr-compare.json": { + "mode": 420, + "sha256": "f20e9a7c71412688c02b607f08a5224367598eba552e35a50e9922ca8f12edab" + }, + "verify/results/compare/cr-compare.md": { + "mode": 420, + "sha256": "0eb905744120b1cf264ba6e57497db64fdc8e225a87ef7bb86cf3f026ffe4d0d" + }, + "verify/results/compare/cr-replace0.json": { + "mode": 420, + "sha256": "f1556c5d74c236c82617061b5ec60b1a7ce4652bce87b6595eb89406ad832240" + }, + "verify/results/compare/cr-replace0.md": { + "mode": 420, + "sha256": "6f571e46350a29b811bc12b48e12ed2d443acba5f5be6310e0531c3790425d48" + }, + "verify/results/compare/cr-replace1.json": { + "mode": 420, + "sha256": "d0c1d6bd4a1f8f5343b584662d8202184479b01a51480443a97242daf27fccc2" + }, + "verify/results/compare/cr-replace1.md": { + "mode": 420, + "sha256": "111b51290468d5482a1910194487d26dc1b3ec534d699aa07a564de66bbf9d98" + }, + "verify/results/compare/eventlive-b3-t1-5.json": { + "mode": 420, + "sha256": "4f305180bcbe93523f407d1f8406ac52b84d4a20e2d611940716618fd37edfde" + }, + "verify/results/compare/eventlive-b3-t1-5.md": { + "mode": 420, + "sha256": "ec71d98210218fd5b5da69f6b17cf6991128a58a0358a6504e6497dd39159764" + }, + "verify/results/compare/eventlive-b3-t1.json": { + "mode": 420, + "sha256": "84f66c1e6a23f737d1615e75fd22fba958bfd851067acb42503e32a2812dd1de" + }, + "verify/results/compare/eventlive-b3-t1.md": { + "mode": 420, + "sha256": "299b8dd3f2cf42cbc9e6254fac01ee3dcb6abb0758c8f298beb6cc6464db4cfb" + }, + "verify/results/compare/eventlive-b3-zuul.json": { + "mode": 420, + "sha256": "a1a92c06202c8168362c33442edeb7ea7f76f6e586e5deea1b86dff9dc8f3494" + }, + "verify/results/compare/eventlive-b3-zuul.md": { + "mode": 420, + "sha256": "544791f9cd8b77a2d865f2a918d97e74559529f29943171bd1e8e2d8a120dec5" + }, + "verify/results/compare/l5-budget-boundary.md": { + "mode": 420, + "sha256": "6877f9cfc602876b4c213106493853822471a5aaa3e4e8ebf8dffd31373d89d9" + }, + "verify/results/compare/mf-after.json": { + "mode": 420, + "sha256": "586a824a0d0af1de0808c33c1c392c4022128f9c1305dc32b6749e8fa493e8f4" + }, + "verify/results/compare/mf-after.md": { + "mode": 420, + "sha256": "659be3da71cabfd3c34eb818f1bac07f848c58a878fd62d81ac7b1daa5f3ce03" + }, + "verify/results/compare/mf-before.json": { + "mode": 420, + "sha256": "259272b45ca9c63894d8c91e399ff91d7258b7836f1a0d5c91dd3972586b2498" + }, + "verify/results/compare/mf-before.md": { + "mode": 420, + "sha256": "4572530a1c93865d27aba47c23c418773ad39a834c8be1c004f5cc2f16f927a0" + }, + "verify/results/compare/output-ref-turn2.md": { + "mode": 420, + "sha256": "43a569165f9239f13edc31c7a848a6b839829ae06dd6e3b85d289a1552eb8d34" + }, + "verify/results/compare/output-zuul-and-ref.md": { + "mode": 420, + "sha256": "9bc0937c0b3e1e3e5a6cd3768dbfeae56a897615396b00834bd083611f3ef431" + }, + "verify/results/compare/recap-b1-compare.json": { + "mode": 420, + "sha256": "8e86cdd32373e41ac1cdc130b18acc188b35d5ab7112e1fc655d134c44ad9712" + }, + "verify/results/compare/recap-b1-compare.md": { + "mode": 420, + "sha256": "496a3246eda3be76d9d0f08726369d40aa879cf60a510f16209ae77585582841" + }, + "verify/results/compare/recap-b3-compare-t1-5.json": { + "mode": 420, + "sha256": "80eeeeccf15f427b75b053d06f6b32b1692a2ed9ca6b9a51c244e4166a1b0e78" + }, + "verify/results/compare/recap-b3-compare-t1-5.md": { + "mode": 420, + "sha256": "5b6295bff72d599f142e75fa913ca2da590322a6fd1d104328847159fc5e7802" + }, + "verify/results/compare/recap-b3-compare-t1.json": { + "mode": 420, + "sha256": "10d0d5f8aff90f6cce3cd87e30c7f8ff896c5b369f4dc8288141451e25727cb9" + }, + "verify/results/compare/recap-b3-compare-t1.md": { + "mode": 420, + "sha256": "2b0eb8865bb07a2dd8fd038bc19e38a34fbf19b9d3f6fabae085c16a74fbcc6f" + }, + "verify/results/compare/recap-golden-trace.json": { + "mode": 420, + "sha256": "50bb7e34ab2359adc83cc0647fc995d207173fcf6134e413565af450958f652f" + }, + "verify/results/compare/recap-golden-trace.md": { + "mode": 420, + "sha256": "586fc86fe78659902a5d0859c0bce44623bfcda0f375bb57b293796862c48e17" + }, + "verify/results/compare/recap-misc-compare.json": { + "mode": 420, + "sha256": "c73f3f3593a0d715a675b29c7b4f49c02a97578ee9d867ce15d217c43da2e466" + }, + "verify/results/compare/recap-misc-compare.md": { + "mode": 420, + "sha256": "b435c92441742b2b1b0236bfacff10c17757696baf446c544c4759b7e31237ed" + }, + "verify/results/compare/unlock-b3-t1-5.json": { + "mode": 420, + "sha256": "a4dbfc89f6f3d154edbbc62842a4e8d8a3c69b9589eafc1bb496b26a3ecf6e3d" + }, + "verify/results/compare/unlock-b3-t1-5.md": { + "mode": 420, + "sha256": "832626087ddc2da9064a192a1acfb3869d4a52c6398a070cbd66eaa1bdbe2e2e" + }, + "verify/results/compare/unlock-b3-t1.json": { + "mode": 420, + "sha256": "6d8938b8eaeb2da1c7fdccb1fb68f8e3a2b5b7f492cc096326cf3aadb2ab8d55" + }, + "verify/results/compare/unlock-b3-t1.md": { + "mode": 420, + "sha256": "8911e671a143c25765cd7c0b67f1b9cb23f4040fe26aad40ce59b1db858afdcd" + }, + "verify/results/compare/unlock-b3-zuul.json": { + "mode": 420, + "sha256": "3099d248d58c4395e92d65ad18c28227695a7c7935193be6c2bcf752fa0e0f04" + }, + "verify/results/compare/unlock-b3-zuul.md": { + "mode": 420, + "sha256": "f53b165c8502ba9b2416935179fdea68153fb6ebd2458b4ec9b4ecf6c741c91f" + }, + "verify/results/data-catalogs/crosslink.json": { + "mode": 420, + "sha256": "2966ba9780910b596e350c4f81eef5d74c4d235dc3a8d5cf6ad5fd53a407254a" + }, + "verify/results/data-catalogs/schema_stats.json": { + "mode": 420, + "sha256": "6e3f669ae77cdfa2c5cd6bbd29f5cecccd452d9a7b2397c2c23db6c33fda0a2a" + }, + "verify/results/data-catalogs/shipsections.json": { + "mode": 420, + "sha256": "2e7057c608d0cea755bf9dbfa291864d33e3f09ad5deff7bb3a8045bde7a4ab5" + }, + "verify/results/data-catalogs/strings.json": { + "mode": 420, + "sha256": "c36c1b2b9a2eace438f93698df6388fa94aec30d372bcd0bee7e09bb33c54d7c" + }, + "verify/results/data-catalogs/tech_tree.dot": { + "mode": 420, + "sha256": "96ce0492a1284167d82af2c07a8f8a0b3bb9864bc137195560d909df6a913055" + }, + "verify/results/data-catalogs/tech_tree.json": { + "mode": 420, + "sha256": "18df799410c5f650e15808c1ef247b4768a3dfff93795a5ec7f56cd6c4afc597" + }, + "verify/results/data-catalogs/weapons.json": { + "mode": 420, + "sha256": "a446b445c21519fc7992c84155c9652239567030843c405b4219d1f65022db01" + }, + "verify/results/fpu-cw/README.md": { + "mode": 420, + "sha256": "3928fd0f6a03a8ff0b170a7ed23a059120b5014b13bf6870d4f187ff299d5975" + }, + "verify/results/fpu-cw/cw-census.txt": { + "mode": 420, + "sha256": "b7854dc5cd249a2490d04264d758f1894a9ddf4b95573650365d47587c7589d3" + }, + "verify/results/fpu-cw/run-007f-rep/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-007f-rep/(Autosave).sav": { + "mode": 420, + "sha256": "ba2435beb17265af3abddb58cd26e926d42b39b358ef6d0c76f9897386174918" + }, + "verify/results/fpu-cw/run-007f-rep/shim.log": { + "mode": 420, + "sha256": "73b5b86da743a1cb37d4c0d97b29978923b55a7a47f80c7fa20ca47d424f6c02" + }, + "verify/results/fpu-cw/run-007f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-007f/(Autosave).sav": { + "mode": 420, + "sha256": "ba2435beb17265af3abddb58cd26e926d42b39b358ef6d0c76f9897386174918" + }, + "verify/results/fpu-cw/run-007f/shim.cfg": { + "mode": 420, + "sha256": "998decddb80cf23d63c42d2d6c1d1aa85072258ca0870168ee772708ebfb6363" + }, + "verify/results/fpu-cw/run-007f/shim.log": { + "mode": 420, + "sha256": "5721f47d7fd862156ce2cd1832cd1739636b5aee53c82323ef233ff6401775bb" + }, + "verify/results/fpu-cw/run-007f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "149c4fcf750fcf9e81dc86d8696271d9a14ca788891ac95cf96995e3737c68e4" + }, + "verify/results/fpu-cw/run-027f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-027f/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-027f/shim.cfg": { + "mode": 420, + "sha256": "f4f9585a8f6317807bcab498ebed5de5d42400124a82ea958558f1455176cebd" + }, + "verify/results/fpu-cw/run-027f/shim.log": { + "mode": 420, + "sha256": "4bd3f88bd27eb2e3ae1f42f4dc2ccf1cc5df1a2c1171d2eff8be86e7be684187" + }, + "verify/results/fpu-cw/run-027f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "b5d2611d0c08946c1e1eaa244a7e44782eac2592c392efb3d7147fbbd86816e7" + }, + "verify/results/fpu-cw/run-127f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-127f/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-127f/shim.cfg": { + "mode": 420, + "sha256": "1f50a475f0d347b5b5a7c2341eac4ea22092818e18bc7ea049154d309949e271" + }, + "verify/results/fpu-cw/run-127f/shim.log": { + "mode": 420, + "sha256": "03f1999dc8964912697782e856f89f190b6680d5732f2cd00b1569bff727a545" + }, + "verify/results/fpu-cw/run-127f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "fb1b9063cc53a6b39ea0a58e0545b9334fbd15d65dd839e72f2c4febbb1dd3f0" + }, + "verify/results/fpu-cw/run-137f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-137f/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-137f/shim.cfg": { + "mode": 420, + "sha256": "8658d901e0688d87d2f2359fe725082b9956291988cdc0b82b155dde55fef5e9" + }, + "verify/results/fpu-cw/run-137f/shim.log": { + "mode": 420, + "sha256": "83aa72572412d5248179397895029367685fd590d795991ab91c98cf9828ae29" + }, + "verify/results/fpu-cw/run-137f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "aad1fb6abd86beafb9f44e2c6060157e22618811d105f2379252e19008839b66" + }, + "verify/results/fpu-cw/run-1a7f-rep/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-1a7f-rep/(Autosave).sav": { + "mode": 420, + "sha256": "e48e25fa8425a8a1d174efe3e8a553153447f11f8f91c5fda25bd7db3a26cca7" + }, + "verify/results/fpu-cw/run-1a7f-rep/shim.log": { + "mode": 420, + "sha256": "38f2824fbe91bf2fa1ef55473a7468707248420805b6f6dc85245fd34fa94200" + }, + "verify/results/fpu-cw/run-1a7f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-1a7f/(Autosave).sav": { + "mode": 420, + "sha256": "e48e25fa8425a8a1d174efe3e8a553153447f11f8f91c5fda25bd7db3a26cca7" + }, + "verify/results/fpu-cw/run-1a7f/shim.cfg": { + "mode": 420, + "sha256": "59ff1f48a10c378d0ea92d8a156b135a106017a5b6c47b65de304fde3187c588" + }, + "verify/results/fpu-cw/run-1a7f/shim.log": { + "mode": 420, + "sha256": "a1bb0bd06dae6955ec09e7d0c6cd1e68e19aa2a114256cdeae1275def0a63091" + }, + "verify/results/fpu-cw/run-1a7f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "b9a7affb8235626fcfdd5afe143e4ec03be869b6b386bd9ac78389097df88cef" + }, + "verify/results/fpu-cw/run-off/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-off/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-off/shim.cfg": { + "mode": 420, + "sha256": "6a19c362121a3dba0aac857d6e998131e8b2478f19edcdcbd58006645d096c70" + }, + "verify/results/fpu-cw/run-off/shim.log": { + "mode": 420, + "sha256": "9e3cbd005f0b68037681939b289834c55629bac0e9cd35ac55e6d8ef5333a116" + }, + "verify/results/fpu-cw/run-off/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "ec2271c0d7e09fe51ead7f8d58859c692e8b302233191841d506ea14248caa8c" + }, + "verify/results/fpu-cw/state-checksum-diffs.txt": { + "mode": 420, + "sha256": "3417dfc1b75ad896ac6a5e974d51248eecca319565e2422e146897d19e121b68" + }, + "verify/results/fpu-cw/trace-bitdiff.txt": { + "mode": 420, + "sha256": "8f86707f26f30638097c85f0db6df219adbfebac4e9ec24f1feb8bfce112d4f2" + }, + "verify/results/housekeeping/vm140-result.json": { + "mode": 420, + "sha256": "2250b02342f5c02ba5464cb4656543c6366dec098fbc948006600896ac9254c0" + }, + "verify/results/housekeeping/vm141-result.json": { + "mode": 420, + "sha256": "03d92ffd2947b2f0c058e5c613e04567cffee45be456aece6d771b789f32fb93" + }, + "verify/results/housekeeping/vm144-result.json": { + "mode": 420, + "sha256": "ace15320f7e60995a68f2c9c03a5a44159ae2d64fa273d34d38e285d313a0393" + }, + "verify/results/housekeeping/vm145-result.json": { + "mode": 420, + "sha256": "768666178bf2910a2ff026351727b5cc96e48df70e1ba012031d34eafc95ad7a" + }, + "verify/results/housekeeping/vm146-result.json": { + "mode": 420, + "sha256": "eebb306a3ec8533abae6dfd59f127c48effe9f21107e0c5c09c751108e77bb97" + }, + "verify/results/multiplayer/l2-combat-hud-client.png": { + "mode": 420, + "sha256": "02c86592531ab2889a0eae04e44a644d33c754096fe60aca6640068a7a3f421f" + }, + "verify/results/multiplayer/l2-combat-hud-host.png": { + "mode": 420, + "sha256": "a56daf36fcc88627b29116ad9874c95a3c46960074ff9b823aa15c4ea2660dd7" + }, + "verify/results/multiplayer/l2-combat-loading.png": { + "mode": 420, + "sha256": "f94a718cee08e1b7d346490058f13a107d23aaa7c269fdd53b159a75d62fa558" + }, + "verify/results/multiplayer/l2-combat-round-draw.png": { + "mode": 420, + "sha256": "c1b8424540b702915302f9ff38eaf765e8e95fddc3c5c4d894438dcfcf8b6256" + }, + "verify/results/multiplayer/l2-combat.pcap": { + "mode": 420, + "sha256": "0f112ef96da6c465dbda51baf99eedd66967eed61c097f643bf6c66fc26af31b" + }, + "verify/results/multiplayer/l2-encounter-query-client.png": { + "mode": 420, + "sha256": "4c41b268ad256b0109483a2d9b5ba35de7b9cadb4eb32ef4a68f7867e6e747fd" + }, + "verify/results/multiplayer/l2-encounter-query-host.png": { + "mode": 420, + "sha256": "8c7b0c6d65ddde45eb3447f044589ffc36500b40c4d676af8321f800162f38a0" + }, + "verify/results/multiplayer/l2-fleet-built.png": { + "mode": 420, + "sha256": "6ac91fcf9b42caef50134de01804046d8e60d0fd3966592e9738ceff511949c2" + }, + "verify/results/multiplayer/l2-lobby-client-joined.png": { + "mode": 420, + "sha256": "4a8e698c9ea935449ff0421cd59acd517ebffa388a7572279b28be0369141ff6" + }, + "verify/results/multiplayer/l2-lobby-host-created.png": { + "mode": 420, + "sha256": "e6a7377cabafa973396cedafa5ad5b4863a42f9866709db88faf9572e0ed3c98" + }, + "verify/results/multiplayer/l2-move-warning-dialog.png": { + "mode": 420, + "sha256": "43c6219d74bc0cb28495f13784cdbd3a90c89746b108824c3a2138dbdadcb53e" + }, + "verify/results/multiplayer/l2-socks.log": { + "mode": 420, + "sha256": "109b630d6548d07404f9f905e6c527f10e25221698f1b66226f67f94c5f294b5" + }, + "verify/results/multiplayer/l2-turn13-client.png": { + "mode": 420, + "sha256": "d19f17c4219f21f6c9950440d528a1a91fe3907761df21fd0ba99321b8820baa" + }, + "verify/results/multiplayer/l2-turn13-host.png": { + "mode": 420, + "sha256": "811efcfb571d60435f772a3b619bb329717d1e162b88e440ec0d636b1c6042fc" + }, + "verify/results/multiplayer/w2-internet-browser-no-error.png": { + "mode": 420, + "sha256": "6409b977056c95b29928a0098f75fffd71c501128f9d9325c3000837131c8791" + }, + "verify/results/multiplayer/w2-join-manually-dialog.png": { + "mode": 420, + "sha256": "86904e94a5aec41c1e89271d2712558c3b5055bd2ae4fededfda103d1e22fb71" + }, + "verify/results/multiplayer/w2-lan-browse-listing.png": { + "mode": 420, + "sha256": "6f5d16fa719fb63dd627fba551221c7665b69002e83fe35b8d84912cd7d8ce83" + }, + "verify/results/multiplayer/w2-lobby-client.png": { + "mode": 420, + "sha256": "ede652b21e2a4ea07c8132e4080ba903d1052ebca336bb007e1e8efa62787f10" + }, + "verify/results/multiplayer/w2-mp-turn1.png": { + "mode": 420, + "sha256": "59f9a1f5d8c0fff45d3ae3406dfd9878a5915f18e999d909a5238a90a3b86ed6" + }, + "verify/results/multiplayer/w2-mp-turn2-client.png": { + "mode": 420, + "sha256": "d9da4c151cd8290f80b31eb5ed8a74a0a30a87d1f7a80a179fa082a9439e08e5" + }, + "verify/results/multiplayer/w2-mp-turn2-host.png": { + "mode": 420, + "sha256": "910efd36b4a7c1a85d8ad487660f856339af037b9b00fef0cafd5e77ebdc36e5" + }, + "verify/results/multiplayer/w2-tier0-filtered.pcap": { + "mode": 420, + "sha256": "e108778fd1afb7718c53a4164310b8523415ef073706d310583dab424e5921cc" + }, + "verify/results/saves/ac-turn20-raider.sav": { + "mode": 420, + "sha256": "ee787db8f63d8f564c597bd5a82709790a0fdf47827912037f96b736f2cbed34" + }, + "verify/results/saves/ac-turn22-raider.sav": { + "mode": 420, + "sha256": "0faeaa601e6a867876819e5646b85f8787851093b8e6bd6e3946eb867f2dcc74" + }, + "verify/results/saves/ad-oracle-A-post.sav": { + "mode": 420, + "sha256": "a634510e7208cceb10d8ce016ceb0153601f11d7291f08122bcdb6418e313331" + }, + "verify/results/saves/ad-oracle-B-post.sav": { + "mode": 420, + "sha256": "676b1778880b5d4784ba7f6ef48b1a8e56745adab70a815943b7744876686260" + }, + "verify/results/saves/ad-turn27-two-raiders.sav": { + "mode": 420, + "sha256": "1c8baa27680809d585ab1728391e82729642d32aaedffd5bf95b616f0a11a436" + }, + "verify/results/saves/ap-deploy-turn15.sav": { + "mode": 420, + "sha256": "844f2b746060dc2c4e2099cdc6ceffd5f55ef858c9e347df28c8aca3041f7165" + }, + "verify/results/saves/ap-oa-turn16.sav": { + "mode": 420, + "sha256": "e296394f578b3a5668e5934b9eec8d6c4638ca7411200078f97de1abd346f4c5" + }, + "verify/results/saves/ap-ob-turn16.sav": { + "mode": 420, + "sha256": "262f8bda97c9511d8d2b41e6a8a0582d6f5364c2b01b1caf99e639d0e4f53ebe" + }, + "verify/results/saves/ap-turn22-spydetected.sav": { + "mode": 420, + "sha256": "91381bd7e722ac3847795a402d78ebb31d74dbb5d2909f33d243aec3ef8abaf8" + }, + "verify/results/saves/ap-turn25-spydestroyed.sav": { + "mode": 420, + "sha256": "46380fcf4498d67507e4471eb9ee3762647c53ee5473be142fe5c34e37344bc3" + }, + "verify/results/saves/ar-oracle-A-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/ar-oracle-A-pre.sav": { + "mode": 420, + "sha256": "15b99255e1f03dab3e35ab8c1ac64f221cb5aa9321f113c7a6e3d1263c3f34ca" + }, + "verify/results/saves/ar-oracle-B-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/ar-r1-turn43-post.sav": { + "mode": 420, + "sha256": "37f4a54fd32303fdcc86522b07104fbf2fcb124eec9b1f7005b3446fefcc429f" + }, + "verify/results/saves/ar-r2-probes8-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/ar-turn37-816raiders.sav": { + "mode": 420, + "sha256": "b6f4e05ff226eabd1695003b36293553642553cea96ef417364393e2332a7094" + }, + "verify/results/saves/as-turn14-predeploy.sav": { + "mode": 420, + "sha256": "53986f8511cbf9920f32e2ea406ccf531dd08903fa5d06024fcf03ea7627221d" + }, + "verify/results/saves/as-turn15-spydeployed.sav": { + "mode": 420, + "sha256": "854a10fa1ea602f0f7909f9bf9154942e56ea5fa1db4cce47d6d32bf53952e08" + }, + "verify/results/saves/az-turn11-16destroyers.sav": { + "mode": 420, + "sha256": "501583c7cf2ac81c9db3191203cd3dc5ba5b9e228b9b9ce3dbdcc3650d0070a9" + }, + "verify/results/saves/az-turn23-tarka-comraid.sav": { + "mode": 420, + "sha256": "3d5eb826c149d1fd0278c746f32e6148ca9883a1bc5b522c0d5e6e13fac9788a" + }, + "verify/results/saves/bp-pinA-turn28.sav": { + "mode": 420, + "sha256": "e913ff41188211c02d536da616337544e64133996cd7cc7a6521a8df1960226f" + }, + "verify/results/saves/bp-pinB-turn28.sav": { + "mode": 420, + "sha256": "724528ffde9a7514b69ab9e82ed3b8c8ade63d622c0720de30503a73a92df11e" + }, + "verify/results/saves/bp-turn28-pre.sav": { + "mode": 420, + "sha256": "16f63adbf383946db17c381998957172bca803406b7df78f3b03805fef0bbcb8" + }, + "verify/results/saves/bq/bq-1A-endturn.sav": { + "mode": 420, + "sha256": "1a9d937b8bd9c4bb33dd235d4d6ad6e3b38d9f842fc740839e42e06f52356d39" + }, + "verify/results/saves/bq/bq-1A-post.sav": { + "mode": 420, + "sha256": "56980aa086e1a145b00f781b9d9cf618b152986f1c2267b9fd96cca0f1f604b9" + }, + "verify/results/saves/bq/bq-1B-endturn.sav": { + "mode": 420, + "sha256": "1a9d937b8bd9c4bb33dd235d4d6ad6e3b38d9f842fc740839e42e06f52356d39" + }, + "verify/results/saves/bq/bq-1B-post.sav": { + "mode": 420, + "sha256": "b36ac0ec2986f3a814dd22ca312c895ba6ec8a0e55fca54d8a7fd08a2f96a2c4" + }, + "verify/results/saves/bq/bq-1bA-endturn.sav": { + "mode": 420, + "sha256": "33e3009254f5acd17417053d88372f3d6851e0206932db0f9201cbce6c0f5b21" + }, + "verify/results/saves/bq/bq-1bA-post.sav": { + "mode": 420, + "sha256": "4c356f5916f0e6e4b0ba5f147e31177ae946abd6be2d124559e44c8a13b8ed10" + }, + "verify/results/saves/bq/bq-1bB-endturn.sav": { + "mode": 420, + "sha256": "33e3009254f5acd17417053d88372f3d6851e0206932db0f9201cbce6c0f5b21" + }, + "verify/results/saves/bq/bq-1bB-post.sav": { + "mode": 420, + "sha256": "4c356f5916f0e6e4b0ba5f147e31177ae946abd6be2d124559e44c8a13b8ed10" + }, + "verify/results/saves/bq/bq-res-post.sav": { + "mode": 420, + "sha256": "28bbd9b5c377afcd8f075b535eb1036ee46acf71ab614e7091ccdbdfb3703db2" + }, + "verify/results/saves/bs/bs-C-endturn.sav": { + "mode": 420, + "sha256": "15b99255e1f03dab3e35ab8c1ac64f221cb5aa9321f113c7a6e3d1263c3f34ca" + }, + "verify/results/saves/bs/bs-C-f38-autosave.sav": { + "mode": 420, + "sha256": "0fe8f37479a702d2e4e7752e6cb160dc242f00a082dc4115b7d10c77b24989f0" + }, + "verify/results/saves/bs/bs-C-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/bs/bs-L-endturn.sav": { + "mode": 420, + "sha256": "33e3009254f5acd17417053d88372f3d6851e0206932db0f9201cbce6c0f5b21" + }, + "verify/results/saves/bs/bs-L-post.sav": { + "mode": 420, + "sha256": "4c356f5916f0e6e4b0ba5f147e31177ae946abd6be2d124559e44c8a13b8ed10" + }, + "verify/results/saves/cb-c3-turn1to2-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/saves/cb-c5a-turn1to2-pinned-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/saves/cb-c5b-turn1to2-pinned-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/saves/cb-turn2to3-autosave.sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/saves/cb-turn2to3-endturn.sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/saves/certified-pairs.md": { + "mode": 420, + "sha256": "4e1cfb79cf5a51446b2eae21f91b565348ffa95a9ebac8f95e23019012aefb57" + }, + "verify/results/saves/cr/cr-oracle-autosave.sav": { + "mode": 420, + "sha256": "79df50475a7b83afa927d992b9f030dcf45710f4bda0133b8b1fa4800a72e420" + }, + "verify/results/saves/cr/cr-oracle-endturn.sav": { + "mode": 420, + "sha256": "e00eed0c03a31d27a81b7470a9dcc9ba08a2ac48c20baeee4f34749164743e3f" + }, + "verify/results/saves/cr/cr-replace0-autosave.sav": { + "mode": 420, + "sha256": "6b51db992b158caa5424d71b2dccf72924af7198b4165bfcfc870e0d438fb6d5" + }, + "verify/results/saves/cr/cr-replace1-autosave.sav": { + "mode": 420, + "sha256": "8a4309ee4fe0b3177a2820600b5016c7c256d0f51b065df469ecd0b4f2342235" + }, + "verify/results/saves/determinism-hashes.txt": { + "mode": 420, + "sha256": "bfa0615c4b310ae21c09a7d373d5a9d8799f36a0460089e5950fa0edf9d614d2" + }, + "verify/results/saves/human-turn11-spytechs.sav": { + "mode": 420, + "sha256": "aa63dd3d5489884f70d9c35acfb06c23c84531f403798842e7b0cf8cde94d1d4" + }, + "verify/results/saves/human-turn15-spyprogram.sav": { + "mode": 420, + "sha256": "22306d26f8831b90a62c00a2ebad5a97e77017b62ee96a7439d4c2c76c455cca" + }, + "verify/results/saves/human-turn2-orders.sav": { + "mode": 420, + "sha256": "9a94dec562622310893d6f522a0fae06f1033470f4182098e808b175e7df7c8d" + }, + "verify/results/saves/human-turn3-noderoute.sav": { + "mode": 420, + "sha256": "6db0912a050a846c8f3a184811644c76df3fdb65e83dffbf70289e21cc098a90" + }, + "verify/results/saves/human-turn5-traderoutes.sav": { + "mode": 420, + "sha256": "3829e6c6d8f26cd1183a972bd66edadbd71364c11a224b0a6e40461011bcab29" + }, + "verify/results/saves/human-turn8-traderoutes.sav": { + "mode": 420, + "sha256": "afeb3b2d724e07cf59f15eb1bdb9fcf853391fc06fe21beb20c069ff75b2f836" + }, + "verify/results/saves/turn1-state.sav": { + "mode": 420, + "sha256": "a3f9dc4b49fc669c814b09b87a9c6795de21bac80a1c7bfe3901b8e239fa36cc" + }, + "verify/results/saves/turn2-state.sav": { + "mode": 420, + "sha256": "ab4ac2d7e2977260a4de916f65c7ecc6dd5b0094dac4bb51241317232ea17ab4" + }, + "verify/results/saves/turn2-strict-issues.txt": { + "mode": 420, + "sha256": "33a169a2de29ad502e9b7c0159cd543e0b4d71f2d9b3903f5be58c7846db2429" + }, + "verify/results/saves/turn3-state.sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/saves/zuul-turn15-orders.sav": { + "mode": 420, + "sha256": "ef86a0d61de3533f023af5dc2b9a5720e4e0c5c97d900d88181603a13db7d045" + }, + "verify/results/saves/zuul-turn16-noderoute.sav": { + "mode": 420, + "sha256": "b6b5d283b62cc46bca914e86c34cf45e8960a653e818e59664087429bbb30103" + }, + "verify/results/saves/zuul-turn17-orders2.sav": { + "mode": 420, + "sha256": "1b863e684edecb4afe738ba30c8132065ebcf2d9977409325e714fe0173056e8" + }, + "verify/results/saves/zuul-turn17-rollpending.sav": { + "mode": 420, + "sha256": "aac5ba5b10ff1af6b0e38c565b2f0a60c16858ee4e89dd2a2f5b037eae95ee7d" + }, + "verify/results/saves/zuul-turn23-fleet23.sav": { + "mode": 420, + "sha256": "fd3748327d87b8c478f50fcd09d097eacff21e57d946ecb43b8119b4d0d78b1b" + }, + "verify/results/saves/zuul-turn5-species5.sav": { + "mode": 420, + "sha256": "48559ab5b719b332e47b4bf43af85a616bff1508125d62edb211b80637234af6" + }, + "verify/results/shim/ac/ac-probe-run-shim.log": { + "mode": 420, + "sha256": "b9b4a5f0e399e16b477cde0bd7e2c4ce378549eb5a467f7b8ae5eb64d75cb106" + }, + "verify/results/shim/ac/ac-probe-run-watch.txt": { + "mode": 420, + "sha256": "543d76d150aeb9318b9ae27acf638b8935eea30b1a2d47fb15354b584a458163" + }, + "verify/results/shim/ad/ad-r1-shim.log": { + "mode": 420, + "sha256": "fec98888b030ed42b84551aac1286c0baeaf15b8a545af068dc6605615e96df0" + }, + "verify/results/shim/aidesign/parse_aidesign.py": { + "mode": 420, + "sha256": "fbd4aeb71db548759bdb1ff65a5fdd0af6c192927e6ebe4b510f1083c3bdba13" + }, + "verify/results/shim/aidesign/sd-br-p1-hashes.txt": { + "mode": 420, + "sha256": "cd276116a51df01129f0e840d4c04f7964be34f75e51c384cd8df65969f458e6" + }, + "verify/results/shim/aidesign/sd-br-p1.txt": { + "mode": 420, + "sha256": "325cb9fcfa505ab2a93bbd00d60a7a4644b6b5970cb16a288cc7a43f2e825dd3" + }, + "verify/results/shim/aidesign/sd-pin-p1-hashes.txt": { + "mode": 420, + "sha256": "f0371c0a439d736ae7e67e71bd87d693481100d08243d16a1ac1f2ad0ab8bdce" + }, + "verify/results/shim/aidesign/sd-pin-p1.txt": { + "mode": 420, + "sha256": "45e693d279899e7a04cf59bda67190058896b56f3b0607d5aee21abb12f03071" + }, + "verify/results/shim/aidesign/sd-pin-p2-hashes.txt": { + "mode": 420, + "sha256": "e7d6dc12a940305087ee03dc7f8826f3c6343d24d8fea0f2aa78665d887138c9" + }, + "verify/results/shim/aidesign/sd-pin-p2.txt": { + "mode": 420, + "sha256": "b0206869206bc3a41bebb5175e31179f1a5d125a44b5ddfc10c67c4a0d13c22c" + }, + "verify/results/shim/aidesign/sd-t15-p1-hashes.txt": { + "mode": 420, + "sha256": "1ee71a623eb17e08c623ec8de3775218dc3a7c2de50d36a25dd2395382195962" + }, + "verify/results/shim/aidesign/sd-t15-p1.txt": { + "mode": 420, + "sha256": "df9f4906ee8bbb2efc9ba9a38c41607b89711d0bc9f705473d8448e9715d9280" + }, + "verify/results/shim/aiorders/cb-c1-turn2to3.txt": { + "mode": 420, + "sha256": "9d5014b346cb0fa9e2172f45db77c4437a03b069930eaaa80ea94e742891eb8f" + }, + "verify/results/shim/aiorders/cb-c3-turn1to2-run1.txt": { + "mode": 420, + "sha256": "fdaf27a32b93fdb3024f7a45f0d90b2cf833d3f592960027c3a6cf4ecbb8c616" + }, + "verify/results/shim/aiorders/cb-c5a-turn1to2-pinned.txt": { + "mode": 420, + "sha256": "d4daa0c2599c1b573ed59617243a392861dbc4e1fbeb707c7248708c015d998f" + }, + "verify/results/shim/aiorders/cb-c5b-turn1to2-pinned.txt": { + "mode": 420, + "sha256": "9682186176024242fddb901b10d9a5ad6beba91bd895c2001ca954fc293eab73" + }, + "verify/results/shim/aiorders/l4-research-run1.txt": { + "mode": 420, + "sha256": "5caf1fa25b7b8c2d6af213e59c6ec821be3c46cdd92a1024a6faf5d0a3b1d71c" + }, + "verify/results/shim/aiorders/l4-research-run2.txt": { + "mode": 420, + "sha256": "846ef2cfbc365e7ee2f481048978baf820d57026737261bfba3a328d59cdaad8" + }, + "verify/results/shim/aiorders/l4-turn1to2-aiorders.txt": { + "mode": 420, + "sha256": "c55d9b3c48cb552c02731003c26bb6dfcb8afb611c2a188d21fd4a39f550d269" + }, + "verify/results/shim/aiorders/l4-turn1to2-hooksoff-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/shim/aiorders/l4-turn1to2-instrumented-autosave.sav": { + "mode": 420, + "sha256": "e43ec1d2b443c1017d06b21eb8c76b927613ed49aa78bca46a595a9acb368d1d" + }, + "verify/results/shim/aiorders/l4-turn2to3-aiorders.txt": { + "mode": 420, + "sha256": "696c34996e4b5be0383794fae7ea114779f7fdd0a8cdceff5a00aeb07392933a" + }, + "verify/results/shim/airng/par-br-p1-hashes.txt": { + "mode": 420, + "sha256": "656b1d0c073d9988287e5b76543e42eb1c050d9ebc9872e2b7ec5208b7534b42" + }, + "verify/results/shim/airng/par-br-p1.txt": { + "mode": 420, + "sha256": "eadf1cfb7efd7b374472867ddf1cea5f60e30096090c950049f0c264b0299398" + }, + "verify/results/shim/airng/par-br-p2-hashes.txt": { + "mode": 420, + "sha256": "d97916075c7b4c10464962e9e38aed69288a4d68a16a369c1133df16fa134146" + }, + "verify/results/shim/airng/par-br-p2.txt": { + "mode": 420, + "sha256": "bda355cbbf07301cd6d3716eba32312261c402848c91780a97a6d5cce14c3d92" + }, + "verify/results/shim/airng/par-pin-a1-hashes.txt": { + "mode": 420, + "sha256": "5eb1b557826d45fe9d843b37a92aaef54cd1b8a60900f9c34b4fe25e4bd46a24" + }, + "verify/results/shim/airng/par-pin-a1.txt": { + "mode": 420, + "sha256": "17750bab77512434dcc9e66fc86cbfc34df497cadab5b732cf3b0ef3958e09a4" + }, + "verify/results/shim/airng/par-t1-br-p1-hashes.txt": { + "mode": 420, + "sha256": "7577c33ec33d9e94fb77225929c1f34a3dd94c18fe72a394017811b3b5d53467" + }, + "verify/results/shim/airng/par-t1-br-p1.txt": { + "mode": 420, + "sha256": "8bc9969e2da730d26cc5538b758858a00a4ba6ab2d398458ff4dece1edf8bf92" + }, + "verify/results/shim/airng/par-t1-br-p2-hashes.txt": { + "mode": 420, + "sha256": "7e60fc8615163e8ebccf22fc8910f2e7c4f72a9be7a74bc832bc2a0f64ade0da" + }, + "verify/results/shim/airng/par-t1-br-p2.txt": { + "mode": 420, + "sha256": "7e50a728eb5909bd602a9e6996b908b1b2665c8c983cc0258dad000c8bff8e35" + }, + "verify/results/shim/airng/par-t1-br-p3-hashes.txt": { + "mode": 420, + "sha256": "00ce6b3b4c9dbfd192d09b3b06d91b95576cee8a5a85fccdc36a85547fbdcbc4" + }, + "verify/results/shim/airng/par-t1-br-p3.txt": { + "mode": 420, + "sha256": "28cdf1f6b83c1764f1d1e51a67e3f873566b8503f8504ef52f5b5af24b21c0cb" + }, + "verify/results/shim/airng/parse_airng.py": { + "mode": 493, + "sha256": "3fafa7cf2363620d6a25248d085fbc4e3bd1fdbb9388a6795244834a9a2a2ed0" + }, + "verify/results/shim/ap/ap-probes8-d.shim.log": { + "mode": 420, + "sha256": "115545172568edc6a1d5bb3b559f968aa8a7aaa1f6aeba970daebce98fe56a0c" + }, + "verify/results/shim/ap/ap-probes8-w.shim.log": { + "mode": 420, + "sha256": "8af0897a884bb314958c5e6f2fccd88ff8b1890322dafd3bc904b3f983838620" + }, + "verify/results/shim/ar/ar-r1-ledger.txt": { + "mode": 420, + "sha256": "44bddfc0b9e94812a3a1cfd681a1350caedf2ed8e1174900c2f81c90dc95187e" + }, + "verify/results/shim/ar/ar-r1-probes.txt": { + "mode": 420, + "sha256": "c10251c9bcca5436dc42b2c0bd37b66c144aec4036f2069c2df9340fd764992c" + }, + "verify/results/shim/ar/ar-r1-shim.log": { + "mode": 420, + "sha256": "07003ee203d60a638cc8a1cb0a0f6b8042ba227705b4355f1254312c6dd54e28" + }, + "verify/results/shim/ar/ar-r1-sites.txt": { + "mode": 420, + "sha256": "d1923d549ef3567488d0382ae0ef75fa25c5b1b5812ee5349c5c47aea7a30514" + }, + "verify/results/shim/ar/ar-r2-shim.log": { + "mode": 420, + "sha256": "06dbf04cff5a56b0e55d8e73e5b1e3e9d9235f4afafc8139517b68d676781909" + }, + "verify/results/shim/as/as-probes8-run.shim.log": { + "mode": 420, + "sha256": "cd25c93d8b79e0f0df594fe681917fe880741a54a4188d4d72d2fbc6c42ba8d9" + }, + "verify/results/shim/bp/A-aiorders.txt": { + "mode": 420, + "sha256": "ee9f8bb1073e3bf02e115fdee014f79b11100a0e1e35e308c2bcd4b798302c34" + }, + "verify/results/shim/bp/A-shim.log": { + "mode": 420, + "sha256": "853eab98d09ff1e7a8e7da375a678561b02d6236adec627202ff3bb34d90e797" + }, + "verify/results/shim/bp/B-aiorders.txt": { + "mode": 420, + "sha256": "07daeacf33a16afbed64a8a01ffd26fa73c6d2acd0e6993dd9deb06a7fd93fc3" + }, + "verify/results/shim/bp/B-shim.log": { + "mode": 420, + "sha256": "cde2202333e81cc4eec2c47915181229a68a5fa99879968905a2809c4fe0a79a" + }, + "verify/results/shim/bp/L-aiorders.txt": { + "mode": 420, + "sha256": "28492b0f9be74f61db45eae49b44b41efbc1a3bf6f6d2c888e5cc40bfb7753bd" + }, + "verify/results/shim/bp/L-shim.log": { + "mode": 420, + "sha256": "550d8986a35b3f4742e7522df11bfbf2e832e417ad42cc1bff1a39dd4ee510fd" + }, + "verify/results/shim/bp/statecheck-AB.txt": { + "mode": 420, + "sha256": "dacb5cfa5541934f37b2b1c02b87e809c3f65ba8488aa88d925b295fade0083d" + }, + "verify/results/shim/bq/bq-res-aiorders.txt": { + "mode": 420, + "sha256": "991543eb53fbf1353fe99ed96d4ca358e05f6bac32f00bd1f6dc60fcc002c8b4" + }, + "verify/results/shim/bq/bq-res-shim.log": { + "mode": 420, + "sha256": "7855bd268f69443e7ddfda71873458144728630264703482901bf6d8ffbccd3a" + }, + "verify/results/shim/br/BR-aiorders.txt": { + "mode": 420, + "sha256": "d71e11e7c40aaa740adc55651af556afb9e92768336bc11747ad67151f33f4d1" + }, + "verify/results/shim/br/BR-airng.txt": { + "mode": 420, + "sha256": "04eaeaa688a448f64df00dedfd692b78bca0e3e1207a8292c2fafad507f919ea" + }, + "verify/results/shim/br/BR-shim.log": { + "mode": 420, + "sha256": "bc6ef7aa465c2b1a81d08555174e15fb1a97a207da9eefaa8a6155440869a13e" + }, + "verify/results/shim/br/BR2-deep-aiorders.txt": { + "mode": 420, + "sha256": "b9edb53f7d56c1bb26d3bb77349543dce9564930484bc832475a3a04e5f2ad15" + }, + "verify/results/shim/br/BR2-shim.log": { + "mode": 420, + "sha256": "0de7609693747fdf0abaebd60598af127c918f32561c993715aead91cd24b334" + }, + "verify/results/shim/br/aiorders-diff.txt": { + "mode": 420, + "sha256": "411ceb2bacd62185d25a3c58f199c0bdfcd2759705bef2b36536da3870f73a67" + }, + "verify/results/shim/br/cmp_aiorders.py": { + "mode": 420, + "sha256": "b6c192efb40866aa56f29d9ba2b89e17f18ae0579645db8f34a01010db09cc28" + }, + "verify/results/shim/br/shim.cfg.brdeep": { + "mode": 420, + "sha256": "b8017e344666df816f1191906cf8f54504d631bb7ce9d2f51f6f959e4934ff04" + }, + "verify/results/shim/br/shim.cfg.brprobe": { + "mode": 420, + "sha256": "4f090999dba63ef22ab4993bd6af557e9500819c84f27decc126771f48f98efb" + }, + "verify/results/shim/bs/C-aiorders.txt": { + "mode": 420, + "sha256": "5abc20b68edf6ff52301c01825040e1d6b41b582ba40403ed6c4edc42dcbe4e2" + }, + "verify/results/shim/bs/C-airng.txt": { + "mode": 420, + "sha256": "5a4a56506d1eeb82d3bf0fbba95842566911178a82f0aad9d700a9fe00f1b300" + }, + "verify/results/shim/bs/C-shim.log": { + "mode": 420, + "sha256": "8b8dad987589fd159e789806e89dbcf7a7b40b86446d55e1d0bf10ff25cb8f6f" + }, + "verify/results/shim/bs/L-aiorders.txt": { + "mode": 420, + "sha256": "a03e8c1587633ecbb683c376f30e35e126e98ff0e8204c4ee6b5e2b4fc254104" + }, + "verify/results/shim/bs/L-airng.txt": { + "mode": 420, + "sha256": "8d21083857facd3728446af612b3a97b47e5287a5fe0bdf01423812f8445dacd" + }, + "verify/results/shim/bs/L-shim.log": { + "mode": 420, + "sha256": "246af272e464c715c7abb00471b4ddc404b81143f4065006aa4daec4d82cadb9" + }, + "verify/results/shim/bs/shim.cfg.bsrun": { + "mode": 420, + "sha256": "570b15c208d31a367ec6c6886019693cb17b98d254cebead11ec6746ae5af256" + }, + "verify/results/shim/bu/BU1-aiorders.txt": { + "mode": 420, + "sha256": "944eeb701fcd22480513c34d93f8310541977e89a24ae237bd947aed44092529" + }, + "verify/results/shim/bu/BU1-aivisit.txt": { + "mode": 420, + "sha256": "721f038ef80be92325728fc30f095846b54ff1ac67a41537d4a4d1b97d5e9758" + }, + "verify/results/shim/bu/BU1-shim.log": { + "mode": 420, + "sha256": "28ca02f56823e577662744108965bc3ab1d7241143704ac8ceaacf2e9cd077f3" + }, + "verify/results/shim/bu/BU2-aiorders.txt": { + "mode": 420, + "sha256": "5c388039a3e832465f67b4ca88f3f67550d5189a3a68f33c508c4a467733c9ac" + }, + "verify/results/shim/bu/BU2-aivisit.txt": { + "mode": 420, + "sha256": "19963ed364f47fd965508d96fbf9d1f424938f711f2b1cdc83697f789189271a" + }, + "verify/results/shim/bu/BU2-shim.log": { + "mode": 420, + "sha256": "c0a8c467bc4b4134dc83ca5dedbbfed8dac887b432a56cd12f6e211c8d58daca" + }, + "verify/results/shim/bu/BU3-aiorders.txt": { + "mode": 420, + "sha256": "b6443b3f7db541149f54435f14ba830f54d2f950420f3f0694ff12a8b1eec143" + }, + "verify/results/shim/bu/BU3-aivisit.txt": { + "mode": 420, + "sha256": "fe67a4a1cc6a67e06b2eb5675b4b8543ab9f25ea39a18d7f4c83bce74482e0cc" + }, + "verify/results/shim/bu/BU3-shim.log": { + "mode": 420, + "sha256": "0a802ec556c87f44efaa06f211e75d9b89a66ac6db5a08e34d2a7eae992121ed" + }, + "verify/results/shim/bu/claim-order.txt": { + "mode": 420, + "sha256": "7135e3ed0204a4615e546bc882992073d4b48ee42ea341186c32b6b3dd3dfc47" + }, + "verify/results/shim/bu/claimcheck.py": { + "mode": 420, + "sha256": "85c5ec747f12cf37ec2dbc4021447909eeded68ecd1abb697a6fb60005a54aff" + }, + "verify/results/shim/bu/shim.cfg.bupin": { + "mode": 420, + "sha256": "6b37b047adc95f7c08b6767cdec5bd715a8851f14bff7f187772835d1cc032a7" + }, + "verify/results/shim/cr/cr-N.log": { + "mode": 420, + "sha256": "d5459e6dcf44fbe55d0f60f1ac40d68bed96319bb55986cc24a1b9ca0d8103e0" + }, + "verify/results/shim/cr/cr-R0.log": { + "mode": 420, + "sha256": "3b703881aa2b9a1c111201ff9543f2dcae0f948567ee877df275a1093bb567f7" + }, + "verify/results/shim/cr/cr-R1.log": { + "mode": 420, + "sha256": "8df6af84f74891ff9b0b02fa150641f5fadcd0419bc53c41cbe80bf14ec9c712" + }, + "verify/results/shim/eventlive/c6b-loaded.png": { + "mode": 420, + "sha256": "f442d4b211a47b331cef9a255e83732b80a1ede70ac200596c796ac0aa320017" + }, + "verify/results/shim/eventlive/c7b-turn3.png": { + "mode": 420, + "sha256": "3e070abfbdf4efd2662951049f8545f328aa172d64d00b9c5a1f4243426e803a" + }, + "verify/results/shim/eventlive/load-dialog-8files.png": { + "mode": 420, + "sha256": "e0fc5af16042a70b53bf7d44220db56c56a466c22c4abd641557e94b8e6c1693" + }, + "verify/results/shim/eventlive/shim-zuul.log": { + "mode": 420, + "sha256": "f9d184b33c46cab9d497f7a38056c099ce2ff9b5e8149f563a2353d91985fea1" + }, + "verify/results/shim/eventlive/shim.log": { + "mode": 420, + "sha256": "e65f2e3efa1ce8f70c483bb966448239923db2d3924c709a669bb1a890411b0c" + }, + "verify/results/shim/eventlive/t7-after.png": { + "mode": 420, + "sha256": "dc0a3e8f5a5c9032ead266d106fa69a57677711eb807d26376f29baa6ec0b934" + }, + "verify/results/shim/eventlive/zuul-turn1.png": { + "mode": 420, + "sha256": "f9af979ed08315c0a8d644af800318634b3641628f710f3f9b4d2c77d4f70fdc" + }, + "verify/results/shim/l1/README.md": { + "mode": 420, + "sha256": "f008081756d99825aa81d2802869476f8341f81aeb8c4dbbb77502cf76db5145" + }, + "verify/results/shim/l1/cdiff-frames-2-51.txt": { + "mode": 420, + "sha256": "57cb1911c5bfc7bdfacafc6bb1ad382fc05f46fb9cdcee4479d861af48e585c1" + }, + "verify/results/shim/l1/cdiff.py": { + "mode": 420, + "sha256": "2ace41ce6017cfac8758d8b9955f02de84738d90067a7dfadeb8bffffc842027" + }, + "verify/results/shim/l1/rep.py": { + "mode": 420, + "sha256": "1a7a3819da8e9aeaaf213a62b696388b0a9489924c964407536831b5f7dd9488" + }, + "verify/results/shim/l1/saves/l1-t1t2-post-hooksoff.sav": { + "mode": 420, + "sha256": "e43ec1d2b443c1017d06b21eb8c76b927613ed49aa78bca46a595a9acb368d1d" + }, + "verify/results/shim/l1/saves/l1-t1t2-post.sav": { + "mode": 420, + "sha256": "62061918176e344106e82357e58acc8adec488f6b2969831cb99a84cf25e31c5" + }, + "verify/results/shim/l1/saves/l1-t2t3-post.sav": { + "mode": 420, + "sha256": "2177c659d8dbc39cf7485abe367d42d55cc42cc9a61949d403dcbc79989ec32d" + }, + "verify/results/shim/l1/saves/l1-t2t3-pre.sav": { + "mode": 420, + "sha256": "641a33f06b2fe1c1caf0c4994442bf13a4b03f25a85b34a9875cd22b75715896" + }, + "verify/results/shim/l1/seed-two-processes.txt": { + "mode": 420, + "sha256": "d60412049ced59705284a46078f1906e1aad4140f90db2169e08aeb9530dd985" + }, + "verify/results/shim/l1/seedrep.py": { + "mode": 420, + "sha256": "a06de5d5ccc1e87808eb3877534076340ef5330bee9a86953b8f4dae0268e087" + }, + "verify/results/shim/l1/trace-et1.jsonl": { + "mode": 420, + "sha256": "f21a213bc56983bc94f24303b0837b160f93bfb7e3ca6abdbf2e18321f8dfa19" + }, + "verify/results/shim/l1/trace-et2.jsonl": { + "mode": 420, + "sha256": "6e44b0fc541c3082f91b115de67f5315f43b9db21f0696b856cfff2ead51323a" + }, + "verify/results/shim/l1/trace-oracle.jsonl": { + "mode": 420, + "sha256": "ad9ecbe79a71c84930302868850806798228fe0f2e625b442dd3ed579c05092c" + }, + "verify/results/shim/l1/trace-playforward-f51.jsonl": { + "mode": 420, + "sha256": "6ed0af385dfe7288ad2c994458c8f5d75fc8e29b603dd6607a3703591d25eeb4" + }, + "verify/results/shim/l1/trace-seed-proc1.jsonl": { + "mode": 420, + "sha256": "120074583eb02cd4c3a29aab5826f789d52a6146930b1763f9b0bb824e9a350a" + }, + "verify/results/shim/l1/trace-seed-proc2.jsonl": { + "mode": 420, + "sha256": "03dffeafeff0c33d926207f869741dc544141425c8f665bf58aad4fd363e2f95" + }, + "verify/results/shim/l1/watch-arm.txt": { + "mode": 420, + "sha256": "f8d5811c938d16d003a72a97f2b4b33112914a7ee378fa2b334282616592943e" + }, + "verify/results/shim/l1/watch-hits.txt": { + "mode": 420, + "sha256": "1bf62ac965036a189055cd59a92007c70a2a6aca307df54ce8ccb997048f43d5" + }, + "verify/results/shim/l3/l3-probe-run-shim.log": { + "mode": 420, + "sha256": "f5cd336971ae3d3eaff642e80d9defa20ec2e1ee11e212a082c24365b18d8684" + }, + "verify/results/shim/l3/l3-probe-run-watch.txt": { + "mode": 420, + "sha256": "8d969595789c690a688f7b8fac05288c614d5d9210388ca94315158948c85f24" + }, + "verify/results/shim/l3/l3-spy-run-shim.log": { + "mode": 420, + "sha256": "5abfd08445e9e8139945b095ddddfb56480062019ce6d40304a440c317f21fd1" + }, + "verify/results/shim/l3/l3-spy-run-watch.txt": { + "mode": 420, + "sha256": "c669ccf79202e7060c153151e4fe1be96acf4030cb64aa71bd6a5c212b550b47" + }, + "verify/results/shim/m0-main-menu.png": { + "mode": 420, + "sha256": "465207fda4722ca53585b71647a08b1149944036792a072e7c34e2c437a3e37c" + }, + "verify/results/shim/m0.log": { + "mode": 420, + "sha256": "581d63139503892b6aeeff71acb742143393e9f107aa1f3605d8c028c927cad1" + }, + "verify/results/shim/m1-shim.log": { + "mode": 420, + "sha256": "35401ea82b9a64dbfdb54c282c06c51d7b696afd4ea2794e16071e0fd5c7cbef" + }, + "verify/results/shim/m2-scout-shim.log": { + "mode": 420, + "sha256": "8c46117bdde6b6911a4d77b059b40803d4966652990c8fa3ed67773e5db0459f" + }, + "verify/results/shim/mf-after-shim.log": { + "mode": 420, + "sha256": "86601372b980828171e98fc71afe865f207b1745ef4dcdca646a618c91d17426" + }, + "verify/results/shim/mf-after-turn2.png": { + "mode": 420, + "sha256": "a1f83011ff96e990d7cc80f8306e8fe0c58b96f84eb73ccb6cb013019900133d" + }, + "verify/results/shim/mf-after-turn7.png": { + "mode": 420, + "sha256": "313f3863ab901320174c8ff7cf6f1f6b0d5b3d9d7a2f8999eae6413aedc46fc5" + }, + "verify/results/shim/mf-before-shim.log": { + "mode": 420, + "sha256": "8377a87c7ed05fd0cd7b61e3f1d5fc9c2b9fa294f812c67183d4ce31323a64b1" + }, + "verify/results/shim/mf-before-turn2.png": { + "mode": 420, + "sha256": "c9805791f402ec159fcc6acdd283120eae8536b230666d3049374525595b589f" + }, + "verify/results/shim/mf-before-turn7.png": { + "mode": 420, + "sha256": "3b880b8f96c4cc328aaff8e41068db29b295be8f000c432e321a51b6030b1272" + }, + "verify/results/shim/mf-human-home-no-ships.png": { + "mode": 420, + "sha256": "dfda3e9784eefdc7b75d04908e95c3a192eda7796685907c65bfde3068d6f2bb" + }, + "verify/results/shim/probes/human-t3-5-perturbed.txt": { + "mode": 420, + "sha256": "9b594ab18cdd9aec4fdf807b4d97576191bc6fd48a85cc872c222b515d0f7c01" + }, + "verify/results/shim/probes/human-t5.txt": { + "mode": 420, + "sha256": "0ddd9f0391a3a5d655f1809a9e79d537badd8071f8834e58bdbc7f95d9ff1320" + }, + "verify/results/shim/probes/oracle-restore/h-oracle-autosave.sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/shim/probes/oracle-restore/h-oracle-endturn.sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/shim/probes/zuul-t24-25.txt": { + "mode": 420, + "sha256": "50567b7cb1f008d025baf6cb4b4ad7af7d767a2182afd082c3ac1b1a66c79541" + }, + "verify/results/shim/recap-b1-shim.log": { + "mode": 420, + "sha256": "601cd4cbbec3e8c1f7776eadc4203256ec4c5d1e3e180295369727e1da69ff37" + }, + "verify/results/shim/recap-b3-shim.log": { + "mode": 420, + "sha256": "7c5110a9d4431cc03729a7bddcb13ee69a6d428199051e175b0921391fc02a80" + }, + "verify/results/shim/recap-misc-shim.log": { + "mode": 420, + "sha256": "7cadf2eadb08979cda39fe7e3ed6cfa3f62bdbcd256fc7550b3e27c3f08c9b3e" + }, + "verify/results/shim/recap-misc-turn7.png": { + "mode": 420, + "sha256": "2c1451ded36ad79389f0eb3db098b4e0b0a6f12495d64c832f6e093374005c29" + }, + "verify/results/shim/recap-trace-shim.log": { + "mode": 420, + "sha256": "56da143a92b2edda727862a6fd4a056c716153e23cfddbde076e218ce4c4285f" + }, + "verify/results/shim/recap-turn2-loaded.png": { + "mode": 420, + "sha256": "62a42c44f99d8a53bca735d54a5adf48b89449bb859e859ec573cb40e1a7f2d0" + }, + "verify/results/shim/tailrng/save_rng_delta.py": { + "mode": 420, + "sha256": "a9a04b131427a43372d87688b8eaf230a82a79e2c3c241a90ff4eb31e039749e" + }, + "verify/results/shim/tailrng/z-t5-autosave.sav": { + "mode": 420, + "sha256": "b2124798470d85ea86b0e9e4abfd9e23f3be73caa1115dd7614021be76305939" + }, + "verify/results/shim/tailrng/z-t6-autosave.sav": { + "mode": 420, + "sha256": "2ce6aef9d49ea238455f3ac680556c6a251065af3e28b6540fe09597ae38571c" + }, + "verify/results/shim/tailrng/z-t6-endturn.sav": { + "mode": 420, + "sha256": "afb112896c0236fa715ab3c10139958294085bb2066e22a6d7b76deb0dfa46dc" + }, + "verify/results/shim/tailrng/z2-autosave.sav": { + "mode": 420, + "sha256": "b2124798470d85ea86b0e9e4abfd9e23f3be73caa1115dd7614021be76305939" + }, + "verify/results/shim/tailrng/z2-endturn.sav": { + "mode": 420, + "sha256": "8648957fecf5041233f9add4c8173f78981f026f133ecdbecdb89ddd10917048" + }, + "verify/results/shim/unlock-shim.log": { + "mode": 420, + "sha256": "20a6625b369acb773543e530f1bfdc8b7eaca5c6b58415cc5009bb9858e16f22" + }, + "verify/results/shim/watchpoints/w2-modcount-status-2turns.txt": { + "mode": 420, + "sha256": "335be910dc11a20c9fb80f3b0f37f04fd50a9d8074697bb5365c3fea02790b74" + }, + "verify/results/shim/watchpoints/w2-shim-log-excerpt.txt": { + "mode": 420, + "sha256": "9a344045270e3815004a3376eccfbd030372faba54374d9b6626fd80740b8b13" + }, + "verify/results/shim/watchpoints/w3-modcount-turn1.txt": { + "mode": 420, + "sha256": "328a2319e320f5382e82ad497b6b73245c397cf67515e8a27fa9712418af81ae" + }, + "verify/results/shim/watchpoints/w3-shim-log-excerpt-turn1.txt": { + "mode": 420, + "sha256": "a9b3c20f90a76ee624bde6ee4cae9d1ff1f2baa67aa770a0e70042cb44d11915" + }, + "verify/results/shim/watchpoints/w3-shim-log-excerpt.txt": { + "mode": 420, + "sha256": "af9fe2258fe4168f6066768809c509380183f61bc337331392c5202b900d906a" + }, + "verify/results/shim/watchpoints/w3-tshn-containers.txt": { + "mode": 420, + "sha256": "08eab48d1a202f975f1be87e2279379646142f8b22d9dafc56295399083ed0af" + }, + "verify/results/standalone/cv/cv-input-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "d29f3514e4209954d6c068f34285615aef5f4627ba4627ce97c0e65f93620159" + }, + "verify/results/standalone/cv/cv-leaf-worklist.txt": { + "mode": 420, + "sha256": "0f309711de89cc10cf940d0d4b051b5052ce49a3cc0f3f80c532b50256410778" + }, + "verify/results/standalone/cv/cv-noreplay-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "3734f197cfefd017dbe562fd421d40859bfc2c37d9ac2cedf9c7ddd340a3a4a7" + }, + "verify/results/standalone/cv/cv-replay-run.log": { + "mode": 420, + "sha256": "7372c7da437ece21098cc6f66d0631e146d8aae14a9242bd2278a9922a7f7c02" + }, + "verify/results/standalone/cv/cv-replay-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "1932158abec82f45b9b838f4cb79b1088190ca5281d388f57356af7776e96950" + }, + "verify/results/standalone/dt/dt-canonical-after.txt": { + "mode": 420, + "sha256": "f32fdcf7d6431293133e951045b42a55e8a27d75cd859ad08cd719e5fb696712" + }, + "verify/results/standalone/dt/dt-canonical-before.txt": { + "mode": 420, + "sha256": "b56160cfdcfa0fff25be2aa566959261e375004905814803e231889da665188f" + }, + "verify/results/standalone/dt/dt-observed-leaves-remaining.txt": { + "mode": 420, + "sha256": "e14bd20e60480f98a564e585c0d25d2e758f71016811b8981dbdacd9d51c0c82" + }, + "verify/results/standalone/dt/dt-replay-run.log": { + "mode": 420, + "sha256": "4b7907fc4e735b1c12e3cf64671079abaad757aabd752b134a9fb27d065656cd" + }, + "verify/results/standalone/dt/dt-replay-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "8ddb84e7e6c2f663b1bc4b9611a56a46aac9d09863dcc5be765cb70dc9642c22" + }, + "verify/results/standalone/max-income-oracle.json": { + "mode": 420, + "sha256": "245796e0aea5f5c2238686cba10c651156117fb454805553b2508a8a8fe71a69" + }, + "verify/results/standalone/report.txt": { + "mode": 420, + "sha256": "b47e90432eaf38149f2ecb5316d1962813b6b1423848e36fcc9435ad1f5485df" + }, + "verify/results/standalone/rng-oracle.json": { + "mode": 420, + "sha256": "98a364c80f69d6a84b86c3f9ccc16176d9e769ff061569b0c0ddfced53f9146c" + }, + "verify/results/standalone/rng-oracle.txt": { + "mode": 420, + "sha256": "3496a217a7e4f80bb18c1b067eaedcafcf7bdc877460c6346606fd7f6a55b877" + }, + "verify/results/standalone/status.json": { + "mode": 420, + "sha256": "d38ca6222c83df3a5886e6b32a30772c7174cc0e584f4a3beabedc05770df9cd" + }, + "verify/results/standalone/t36-turnrecord.md": { + "mode": 420, + "sha256": "b017a93ad04af69ef469cd8ea536dff4cab17140d20b3665e7c89533ab5b8a84" + }, + "verify/results/state-checksum/ad-oracleA-vs-oracleB.txt": { + "mode": 420, + "sha256": "b6c440e20108ad2727a7d7aa32a4bd673ec03ca4372461797705d619de1ba48a" + }, + "verify/results/state-checksum/chain-turn1-3.json": { + "mode": 420, + "sha256": "33941d0dd77bfb79e4302f82a410f5f18fe3ae1ade684b5b59c6ed352789a696" + }, + "verify/results/state-checksum/chain.txt": { + "mode": 420, + "sha256": "ae1037dd8394b258ce91262877d348a0561c5f5056cfae74cc0d058e4166aa83" + }, + "verify/results/state-checksum/float-census.txt": { + "mode": 420, + "sha256": "c697c0f187ee8a8ebb157cbff8d7ae42c92f36a501b16acd9f9839a0ffc306a9" + }, + "verify/results/state-checksum/identical-roots.txt": { + "mode": 420, + "sha256": "1143fabfe96954440542adcd3830ad1d862be6c091f3c1b2e63e92a2751703e7" + }, + "verify/results/state-checksum/resave-localisation.txt": { + "mode": 420, + "sha256": "85f4e8fe3581ba5d0ae74974d757c4c2fddc008f3fbe6781891ae8ef65aa693e" + }, + "verify/results/state-checksum/roots.txt": { + "mode": 420, + "sha256": "6ea7ad668703baaff870720683bcc13beff557cebf8e7843526d6677e5b5ef68" + }, + "verify/results/state-checksum/turn2-to-turn3.txt": { + "mode": 420, + "sha256": "3649c86742460a54d89714df1917508f76952c44c07cb7fbc19010910c5df0f4" + }, + "verify/results/turncommands/br2-turn27-deep.tcb": { + "mode": 420, + "sha256": "329b9c3f1e9f85ddeeb71148bd5c0e38f7d26445ed349df60ffbfaf63db46102" + }, + "verify/results/turncommands/br2-turn27-shallow.tcb": { + "mode": 420, + "sha256": "d8346969421a92fa199d0b9faafa642dc2e71a527b08d27984fe73ee70ecbd6b" + }, + "verify/results/turncommands/cb-turn1to2-pinned-run2.json": { + "mode": 420, + "sha256": "01e572975339fbe8a242b2438719173bd5bb4f4916078e5887026408923eb356" + }, + "verify/results/turncommands/cb-turn1to2-pinned-run2.tcb": { + "mode": 420, + "sha256": "16e349db6c46e46520cd2e5f0a9fcf70b537dce878324dd873418ef6cebd8658" + }, + "verify/results/turncommands/cb-turn1to2-pinned.json": { + "mode": 420, + "sha256": "2d4f108b8ac6b1e582382ac25d53f354c293e7caf390b8462d15beaf8e43e01c" + }, + "verify/results/turncommands/cb-turn1to2-pinned.tcb": { + "mode": 420, + "sha256": "28ebfecc3495cc4f5b2892e420cb1b83f3cbdb6b7aabe107f4b1d18233a06094" + }, + "verify/results/turncommands/cb-turn1to2-run1.json": { + "mode": 420, + "sha256": "c9de70196af5453df15cfebcb92c973dfed9d54ffa0dc0a397839cf951ac9b58" + }, + "verify/results/turncommands/cb-turn1to2-run1.tcb": { + "mode": 420, + "sha256": "5cdcfb3ade6cdfb2c00c234f5535c791780230f520d27be14f617462347b4948" + }, + "verify/results/turncommands/cb-turn2to3.json": { + "mode": 420, + "sha256": "8a0d4fc9efae9dcb4eca0de41bf28444d79eb5a4fd4e426671a4d80ab5a46f44" + }, + "verify/results/turncommands/cb-turn2to3.tcb": { + "mode": 420, + "sha256": "420a5d03f2a4ecfa0789835cc46f98961d11bbd7c7fd5f59dc28301aa0b65b6b" + }, + "verify/results/turncommands/l4-turn1to2.tcb": { + "mode": 420, + "sha256": "1b9faa7f8aad9196e36cf1c450e340f37c502a69ccfcaaad7e289bd7b4727b12" + }, + "verify/results/turncommands/l4-turn2to3.tcb": { + "mode": 420, + "sha256": "b0443f176c3915389278de608a8e7c63fa48d4777b924c0e383c7279f2a297e0" + }, + "verify/save-reader/SAVE_FORMAT.md": { + "mode": 420, + "sha256": "5ac2556b6c063c9296ef29e8514cc312983d48a8e2c2832f504c970629990b33" + }, + "verify/save-reader/fixture_joint.sav": { + "mode": 420, + "sha256": "fbe41595e50bb580786f36b197d5b85f87820974c545107c864fa2f1862af3f1" + }, + "verify/save-reader/fixture_split.sav": { + "mode": 420, + "sha256": "3909f12d021bf840617dc8d599841b64d67be46e1c6882cba7728d312d310071" + }, + "verify/save-reader/save_reader.py": { + "mode": 420, + "sha256": "2dcac286b5382b67fe8f2dbce58c80950dd430b726ed0e98f3bcea155df0df35" + }, + "verify/save-reader/save_writer_stub.py": { + "mode": 420, + "sha256": "8343ad15f742ee1b9cd62108efbc9c4b2718c3807442e3dfcfa9513ced7d3638" + }, + "verify/save-reader/test_save_reader.py": { + "mode": 420, + "sha256": "29f609d037eed99bb5444004facbff7b2c5c36fae568e815810585fdc3ddd393" + }, + "verify/state-checksum/STATE_CHECKSUM.md": { + "mode": 420, + "sha256": "5680299a4df27e30cdb545d9d2a640caf9299d61acb662b9512589e4390954e1" + }, + "verify/state-checksum/float_census.py": { + "mode": 420, + "sha256": "a568aad8b9f38aba2474f33941550bf948d050694a1d04dc5c85d15687223ae9" + }, + "verify/state-checksum/run_validation.sh": { + "mode": 493, + "sha256": "bf84b999d2b90368703e80235bac0258b70a1c37dd1902c9205a914a59cb1fc2" + }, + "verify/state-checksum/stability_check.py": { + "mode": 420, + "sha256": "8e640561b05decf590524fbe0dbf3b76a5e2f9c7fde93e005ca6e79464c305f1" + }, + "verify/state-checksum/state_checksum.py": { + "mode": 420, + "sha256": "ed80458e84d92040aa3872464d8df315e935f379ca0da5a2df81c3049826e5b8" + }, + "verify/state-checksum/test_state_checksum.py": { + "mode": 420, + "sha256": "d0ccf8e8390fd0a5d76a8695a490d85dc7e8e415a06ec50b592c57474cc9a73b" + }, + "verify/tooling/README.md": { + "mode": 420, + "sha256": "b05249530d65d43220c1e5c4666939c360d6139ed404a8881f6ad0a9c5c27af6" + }, + "verify/tooling/fixtures.py": { + "mode": 420, + "sha256": "56cccc88b9b9468e07c9ddff39d65813098053ec9e8f00432736906389f200a7" + }, + "verify/tooling/host-tests.json": { + "mode": 420, + "sha256": "90833c99e2749ff890b16b943f43f6ebfc1a1c611f2ed1e40555426fded45c97" + }, + "verify/tooling/test_tooling.py": { + "mode": 420, + "sha256": "bb8d15960dfda13f15cffc57f3b669003b127b4dedbf34100bb4a51c29dd3c6d" + }, + "verify/traces/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "verify/traces/ac-probe-baseline-turn15.jsonl": { + "mode": 420, + "sha256": "a2f4e410f6a8d77f7680b4a69b5b2ac2f59fa80515b0cfe8209e7fec8e4a5b6b" + }, + "verify/traces/ac-probe-turn21-turn23.jsonl": { + "mode": 420, + "sha256": "2bb9317b82744c0da36ef6d9c1a78f31ebacea49b82a18005c0cc75bad62d345" + }, + "verify/traces/ad-r1-turn28-turn29.jsonl": { + "mode": 420, + "sha256": "cde7a1e010aa6195163f3b9320aa5c496fd8c271e9648c90c7319837dd967571" + }, + "verify/traces/ap-probes8-deploy-turn15.jsonl.gz": { + "mode": 420, + "sha256": "e257d5ea3fcb4be8da570d6a5589022e6ba412ff2712f4f06832812d8859e08a" + }, + "verify/traces/ap-probes8-turn16-turn26.jsonl.gz": { + "mode": 420, + "sha256": "df4fb35d9824799d8be79f3a9e976b55b7cd0fb5488b3e12711d04eb3c320f13" + }, + "verify/traces/ar-r1-turn38-turn43.jsonl": { + "mode": 420, + "sha256": "f8653cbd1956346816897b313031c5d70898144d1c84b1c849ac37bfe3bd993c" + }, + "verify/traces/ar-r2-control-turn38-turn39.jsonl": { + "mode": 420, + "sha256": "c1068652ddf54d2ff266c1dc1ef1e69ea663f5d2a83143408f77ec782b3dd988" + }, + "verify/traces/as-probes8-turn15-turn16.jsonl.gz": { + "mode": 420, + "sha256": "024bb0663b167eb364c8e138bae0bf10403860c195bd593cb56f60281060c4e8" + }, + "verify/traces/b2-final-menu.png": { + "mode": 420, + "sha256": "5a95fe260c9cb13dad5fc6f00460819107db93f4ac89f455077ad056600f83fd" + }, + "verify/traces/b2-shim.log": { + "mode": 420, + "sha256": "c31cf01af3659b7fdf008ff44f88f67ee4016dcfb30fc4a72b4d72ea0da8e404" + }, + "verify/traces/b2-techfx-compare.jsonl": { + "mode": 420, + "sha256": "f0202f45b276db6744c80768f12695153812bc882de688cf64705ed6a52f243c" + }, + "verify/traces/b2-techfx-golden.jsonl": { + "mode": 420, + "sha256": "43639e75bd9d510ed270c9cfcbb0c9665f5a6546f748ba81eba3f015e7ca233c" + }, + "verify/traces/cr-N.jsonl.gz": { + "mode": 420, + "sha256": "0071ae72a142533ffb91f9f04caa6704102c826761ff5ae24b57a1c3e9652e46" + }, + "verify/traces/cr-R0.jsonl.gz": { + "mode": 420, + "sha256": "6228c88cebb4dad2158e5586ecbcf71d1160116f2f4a2a8bc020658da8d7d706" + }, + "verify/traces/cr-R1.jsonl.gz": { + "mode": 420, + "sha256": "73f5f15b3343381cf3f973caaf74588fd3d0b6759de1ddcf9e12b9b3ebf29713" + }, + "verify/traces/eventlive-b3-t1-5.jsonl.gz": { + "mode": 420, + "sha256": "9cb344f1d8a3beb4bc1a2bf16baed6c38667443ead9f66fa0f53474a683d263c" + }, + "verify/traces/eventlive-b3-t1.jsonl": { + "mode": 420, + "sha256": "2d9962de9a7ea7fb28b33b72209706b4a27673096f71c8789f9f10ac465f387b" + }, + "verify/traces/eventlive-b3-zuul.jsonl.gz": { + "mode": 420, + "sha256": "0ee09bb884799e72c6a617ab02e741a7ba791ff458af439b9947a87b368a64de" + }, + "verify/traces/h-probes-human-perturbed-t3-5.jsonl.gz": { + "mode": 420, + "sha256": "2567f8ccb6276a4d647c4f4b88d14f7ae63aa4d1797f672a9bd9c7c86e4d7473" + }, + "verify/traces/h-probes-human-t5.jsonl.gz": { + "mode": 420, + "sha256": "92964779111573dc72e6a1845217cd7d709c9900594a106b3de7b59c2b7a88a7" + }, + "verify/traces/h-probes-zuul-t24-25.jsonl.gz": { + "mode": 420, + "sha256": "0966294af27b49159b1e72e683abc0b59fd52cc9bfd9f517130d30cedf7efa29" + }, + "verify/traces/l3-probe-turn8-turn15.jsonl": { + "mode": 420, + "sha256": "d1b5436f917bb4f6f74bd7b1967dbd0626db2c3a5cbc1d67684ef9f010826676" + }, + "verify/traces/m1-compare.jsonl": { + "mode": 420, + "sha256": "f0f6fd15bc73008e43e20d6ed4c4dd91fb2ec8b40935bfd3cc000d8a84ea6731" + }, + "verify/traces/m1-trace-golden.jsonl": { + "mode": 420, + "sha256": "4a4ddc031fb26a8f8b10dace297c73670f53dcbd250a9be94c0e31c9bb44dcc5" + }, + "verify/traces/mf-after-compare.jsonl": { + "mode": 420, + "sha256": "2a894892977176df1a9d6c8199b0f81b48c7bcac15d2c0e7786441fc6125226e" + }, + "verify/traces/mf-before-compare.jsonl": { + "mode": 420, + "sha256": "ee005097ebaac9f30c63f1e400fdf19a47e88010c71d215885234986d122410e" + }, + "verify/traces/output-ref-turn2.jsonl.gz": { + "mode": 420, + "sha256": "7af583350545501414eda38439f2d0fa39149342d9001d2926e2a4e4fdd5cdca" + }, + "verify/traces/output-zuul-and-ref.jsonl.gz": { + "mode": 420, + "sha256": "d581cb50f07766911fa59fa1df1524b33a9df6eec06226966efd5f54f09b6fb5" + }, + "verify/traces/recap-b1-compare.jsonl.gz": { + "mode": 420, + "sha256": "0ce1c92028a8cd10a38d7cca72f90c37ccbd844f24a1950bf0eb6e75739b44e2" + }, + "verify/traces/recap-b3-compare.jsonl": { + "mode": 420, + "sha256": "6ed3bcd99b4657d614bf63cc0fc2dfff650f4cb14e51086ea98c21bccbcf5fa8" + }, + "verify/traces/recap-golden-trace.jsonl.gz": { + "mode": 420, + "sha256": "d62431e9461ffb1b66adc16a39542b86fa8e0cf54a0ed446a8781c4d75a6c3bb" + }, + "verify/traces/recap-misc-compare.jsonl": { + "mode": 420, + "sha256": "d7c4446d45a9cab2af3da4a0d76f7a42c245da1f59db96fddf31d8b1f2c436ed" + }, + "verify/traces/tailrng-drawsites.jsonl.gz": { + "mode": 420, + "sha256": "5c1806e2b1452226674013119e3b220f3cf42be2ad8b0ed998050ad65d1f8415" + }, + "verify/traces/tailrng-refturn2.jsonl.gz": { + "mode": 420, + "sha256": "c33c6cafe015bda6acf5ca32b0c9595e1611f4ac82ecd3adaff8315c7bd3e560" + }, + "verify/traces/tailrng-zuul-long.jsonl.gz": { + "mode": 420, + "sha256": "213e7dd8a6809dd93190f41c87218e802f1fbe77d44d598f287c2a19544063af" + }, + "verify/traces/tailrng-zuul-noderoute.jsonl.gz": { + "mode": 420, + "sha256": "9476ee3b9b397ca9e20bc92eb887c109a075487cdd750746af051797e8838115" + }, + "verify/traces/unlock-b3-t1-5.jsonl.gz": { + "mode": 420, + "sha256": "f6e27a60bf6c74eb98d8bec50146fe1996642285ca008c6a70c3cb148c6ba54c" + }, + "verify/traces/unlock-b3-t1.jsonl.gz": { + "mode": 420, + "sha256": "bfa53bba3e59d17dd330e38ef52fd04fd92f05f3ad357fefd77388d083b49a05" + }, + "verify/traces/unlock-b3-zuul.jsonl.gz": { + "mode": 420, + "sha256": "d94c635105a75a68cb811a3881faf371678c075d240998f48fcf348b8459063f" + } + }, + "manifest_sha256": "b4db6808cc2b8aca33fa27eaab330d32811ce146d829a1bb9474a03f7ccdaeb4", + "path": "/tmp/opencode/sots-final-research-re" + } + }, + "source_before": { + "engine": { + "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", + "files": { + ".gitignore": { + "mode": 420, + "sha256": "5103c9533f0d31fea29c0cc85d543692af84a697416dfa7557e31c9843210145" + }, + "AGENTS.md": { + "mode": 420, + "sha256": "7d1d4bc05c35e3354a77b3c8d5d2c04fb9d6658d09e87bc814a50bc3d2033fb7" + }, + "CLAUDE.md": { + "mode": 420, + "sha256": "15d60c3d592302a2854df8bf6d39c0a578c22b9273a633447e10b76fd76291f5" + }, + "CMakeLists.txt": { + "mode": 420, + "sha256": "6e9791511ea23bf8bf5f7f58617a7e77bbe5006829609e425e565c11c1e8d7ed" + }, + "CMakePresets.json": { + "mode": 420, + "sha256": "fcd1dfe3989ee4f56fa3e419059e1db5621922165edf05f13cfe8e5d786d8bb0" + }, + "CONTRIBUTING.md": { + "mode": 420, + "sha256": "26a381fe08feb51f861655f77de4e558f056d1dba79162a2e82513a92d0e6506" + }, + "LICENSE": { + "mode": 420, + "sha256": "eedebad43ea495111bf4451d78cb440309d90a733d6a36445699dde0629f1858" + }, + "README.md": { + "mode": 420, + "sha256": "66c2437fe4f074e6499de50b0d5f0d013bc290333f4d4bf554b541261885a0c1" + }, + "cmake/toolchain-mingw-i686.cmake": { + "mode": 420, + "sha256": "231c0b79868a77d54cc6619f0b4ea18454964a1a078806f44a6ffe3fb7741a9b" + }, + "docs/A2-alliance-and-modcount.md": { + "mode": 420, + "sha256": "0c0c45c31d5d64124f3b91a161f8a2f4732c8a5d7f6bc524baf4d59f8a191701" + }, + "docs/AC-predictions.md": { + "mode": 420, + "sha256": "ab9e41714abdbc32e620d8a2068be8ebd2fc8898ba149113c66ccda248b4bcda" + }, + "docs/B1.md": { + "mode": 420, + "sha256": "42b61bbfc135cdcd0f1a32f63164b88e67106400de7f08f543f118eccd814364" + }, + "docs/B2.md": { + "mode": 420, + "sha256": "87dfd333ee15681a3aa4de58cf1b14ff8240e75afabc05012e0f28531cb4b8b8" + }, + "docs/B3.md": { + "mode": 420, + "sha256": "fb65c41037b6cd6252c67e5244d492a3a17ea4ba2ddae821d49fe0a879528518" + }, + "docs/B4.md": { + "mode": 420, + "sha256": "22547b3d2960684e52a380fb07f43a75bf50aebf93cede689f297cf38f4a012d" + }, + "docs/B6-ship-construction.md": { + "mode": 420, + "sha256": "9c5c4fd2059af965e317c9db5b7fbfc440397ddfcdc5bf7860115f6a8a0532ab" + }, + "docs/CB-capture.md": { + "mode": 420, + "sha256": "ce45a9082588051eda7438016dc66eb28bb4afda98b82cdc20102c4ca53529f0" + }, + "docs/CB-predictions.md": { + "mode": 420, + "sha256": "ba51538b018cbb403978f97ad45d4743937d49ba55c8f15d7af8f8e4aa441f0f" + }, + "docs/E-events.md": { + "mode": 420, + "sha256": "de98795aadb1617eab91815ebc34818bef8b52c36ba18b4521170065bfd2d201" + }, + "docs/EV-events.md": { + "mode": 420, + "sha256": "e7d9536cd23f5d800dc97f68167bb738088a16136004419f28de92d7fe1bcfb9" + }, + "docs/G-wire-schema.md": { + "mode": 420, + "sha256": "19db69ae359ddbd2a0509d02f1c616f939e0428480a8bb33c81f69145323a591" + }, + "docs/G3-civilian-growth.md": { + "mode": 420, + "sha256": "38ea3a8ddc3fdca258294d949c4cd2af1a930cdd9ba612d5e8fb48bc446bdf30" + }, + "docs/H-probes.md": { + "mode": 420, + "sha256": "f23e4d4cbc8c9a3000a0a58ed994dddd95466cee1ec45e961685e86dde4dc54f" + }, + "docs/L1-predictions.md": { + "mode": 420, + "sha256": "af97dbc9f15b9c2e6f223c89bac17826056fa4f3bced3c01513c1ad4d9ac1754" + }, + "docs/L2-predictions.md": { + "mode": 420, + "sha256": "18213ce5f3375d478f266de85c38c2b04ca2ae8ab4a2023780dca161fa14f460" + }, + "docs/L3-predictions.md": { + "mode": 420, + "sha256": "d1c9c0006079f47ef0d3371f4a2c2df2fe4f08ebdad0f8a12d1b0de35b15ae7e" + }, + "docs/L4-ai-orders.md": { + "mode": 420, + "sha256": "b04127c5158a882f252b2b6e8afb2d131f0de623cc0c62c86c612af803d75835" + }, + "docs/L4-predictions.md": { + "mode": 420, + "sha256": "6a194ae336920f13d8e4a44549cbe26be959beef81cffed88ef03b3cec563e44" + }, + "docs/L5-live-verification.md": { + "mode": 420, + "sha256": "4c1abe57c516b36f383390164a362f53294feda222c623283f1e6091d8ef0ec4" + }, + "docs/M-movefleet.md": { + "mode": 420, + "sha256": "718338edb8cbe8a449793b22889776a1783d1d0ade553c03973ea45d426eb426" + }, + "docs/M0.md": { + "mode": 420, + "sha256": "e121c380612a42727e3a973d8cf50f884d660bb4b43bc494258dc1c6b6f26705" + }, + "docs/M1.md": { + "mode": 420, + "sha256": "e0a36cf109d096748e55522eb8d7a261764cbf5ab5daf9342ba903d0f2bc6704" + }, + "docs/M2.md": { + "mode": 420, + "sha256": "25f9cad74eeee40afc2117333232384e1cf387b2b9132856650234c5ba593c61" + }, + "docs/N-output-term.md": { + "mode": 420, + "sha256": "3b8317e22714ef66b35efceee6fa0f7057c37f7c6e34d93cc5047cd1dd07ecde" + }, + "docs/P-events-wiring.md": { + "mode": 420, + "sha256": "72ee81b71b4c08ae451721c785dc5e01ed4ca43ff0fd474befca09dcc41599ba" + }, + "docs/PAR-predictions.md": { + "mode": 420, + "sha256": "16e8fbbac5001db0b10d766858c0ae2ea9619f37043a0883ee46da80d4dd4846" + }, + "docs/PL-players-residual.md": { + "mode": 420, + "sha256": "9bc29bc030ee8b0e00e496b91fe8fefac15179ce9fd01c0a11a7b5b5335356dc" + }, + "docs/R-recapture.md": { + "mode": 420, + "sha256": "73c62ab20c5eca5e87e1d18aefa60a2a2acd75cbc7510d31b27a2cd4ebcec38f" + }, + "docs/RB-predictions.md": { + "mode": 420, + "sha256": "c1016781505c10aa304d4710c5389918b744ab20cbd8cb54dce462c3dc28e4e7" + }, + "docs/S-standalone.md": { + "mode": 420, + "sha256": "8979b0a9fef33a55ca15bf3ef78064e72df332033354329ff2471ad6648e4a8e" + }, + "docs/SD-predictions.md": { + "mode": 420, + "sha256": "a76a568ccac7409e3cb3acef724dbe6b618d4ec30259bce33594098daff8b6a0" + }, + "docs/SV-script-objects.md": { + "mode": 420, + "sha256": "80ebd120fa9cf5e68ac4d33117966805b917d24bc339f7d82be972a280449409" + }, + "docs/T-turn-driver.md": { + "mode": 420, + "sha256": "a4096b8223cea87ce77cc64014c489d4625ed36fd3aec1358565ca5cf91d4e1e" + }, + "docs/U-unlock.md": { + "mode": 420, + "sha256": "5cbe3d8fb4bd30d029cb2db006a4dd3c6819885f55f434afb4bc8ae79b526901" + }, + "docs/V-eventlive.md": { + "mode": 420, + "sha256": "ebd08c000f42211e87958278f03d6891475cd8557658e1a42105cf5ed45a1aa1" + }, + "docs/W2-predictions.md": { + "mode": 420, + "sha256": "9972e27467cf0fe23a358818caf7edb979de25697d3aa4b97a2135ca79fe34f5" + }, + "docs/W2-watchpoints.md": { + "mode": 420, + "sha256": "f8634c5f977b2ca9b2e07df105cba09adacaeb6fb4cf046e41e5e1e42b83b107" + }, + "docs/W3-predictions.md": { + "mode": 420, + "sha256": "211cedc2d924bcf47cbb73166b408e9a27d795863ffc90aa2adbb85beeadffcf" + }, + "docs/W3-watchpoints.md": { + "mode": 420, + "sha256": "568e818e66d95f9079a1270c4d9b900c7eecfd5b5a3b4ba5a4aa0c843666f061" + }, + "docs/Y-standalone-rng-and-tail.md": { + "mode": 420, + "sha256": "49d926cc505d6ba07753748366e42ec32493a15c76bfaa45b2f66f52adc57f2b" + }, + "docs/Z-tail-rng.md": { + "mode": 420, + "sha256": "3ed2b40f728bcedd663c305cce13481bad1429af03fd5215ee3189161cfbd7f1" + }, + "docs/architecture.md": { + "mode": 420, + "sha256": "ba4732eb8a4c7054df5136a72d1774e4f1e919a517a1c74e975903fdd254422f" + }, + "docs/game-data.md": { + "mode": 420, + "sha256": "2124ea3d117b4ee6f48660d9711c1b4ef844a4ba37af7cea3766914d77bd6b23" + }, + "docs/game-design.md": { + "mode": 420, + "sha256": "5b40349ad446596b534567a5683cf9ea99709d9eff231890e0f6256c755f0272" + }, + "docs/game-effects.md": { + "mode": 420, + "sha256": "e1e0abc162602daaac255fe44b11c511adf45d4ef5fa188268411829b0817e5d" + }, + "docs/game-sim.md": { + "mode": 420, + "sha256": "d1e14770d252fd2f320a7baa1ad54c90d955cfc840f477d1700cfbbadcec730e" + }, + "docs/harness-audit.md": { + "mode": 420, + "sha256": "931d92cc744ec6ca3d961fbe7fe96dcab28060446058eb78be9835ebbce73ed0" + }, + "docs/mars-parse.md": { + "mode": 420, + "sha256": "d9fa3029ade4f9401c59fb88f4520a1ef3af9a9c6f2bb5d1a0ebfa1d5061d6dd" + }, + "docs/mars-rng.md": { + "mode": 420, + "sha256": "f2a01b88f105d07d0d0d514430e76da7632e5c8e4e3bbd6c99a25f1dc5daa89c" + }, + "docs/mars-stream.md": { + "mode": 420, + "sha256": "61a16c9b7c143b4bc2edee473cf1f8bd06c1a5144c120bc563e5ec6d770dd0e7" + }, + "docs/mars-text.md": { + "mode": 420, + "sha256": "2b6c7d2eecbb684160e7565d1d7224eb0d2f7e9a41f4d807095a182ea605dcf1" + }, + "docs/mars-vfs.md": { + "mode": 420, + "sha256": "1508c2a070d56f4fdabac3c2ef1fd08d3f93d7a3045d59158340ee22a6ff1b62" + }, + "docs/shim-trace.md": { + "mode": 420, + "sha256": "8a059c1ba761b366449c2db8ef248656da917050ed28855c6d812ecf91672fa5" + }, + "include/generated/sots_addresses.h": { + "mode": 420, + "sha256": "fc34ac4ee8cc7fea91c447b5715841dc6d3afe36f9aff04e88b6c29b5b64f448" + }, + "include/generated/sots_stream_schema.h": { + "mode": 420, + "sha256": "13446ce54d60a0b29adcefb51aeb5127a0a3ca8de2bd1665e4778ba5354bff8c" + }, + "opencode.json": { + "mode": 420, + "sha256": "9af560c2a49945e964beb689649c13775e2aaaf691af270a565d6c6826f76c15" + }, + "src/app/CMakeLists.txt": { + "mode": 420, + "sha256": "142999eded2ff494745ce550af76a8f8caf0269ad22d6d5650e7a79c19d22717" + }, + "src/app/alliance.cpp": { + "mode": 420, + "sha256": "37d6e57f7ce82a69a595cf474e7be7a544efef210f960e9cdfeab6168826bac9" + }, + "src/app/alliance.h": { + "mode": 420, + "sha256": "08fa8dc96286c7cb15a90a987fa22b17e195522e642ab8303b659ca58739eafd" + }, + "src/app/command_replay.cpp": { + "mode": 420, + "sha256": "739059930cd3a5f1d988522ff50c60d8657664a66c9fe19b019833f417b55824" + }, + "src/app/command_replay.h": { + "mode": 420, + "sha256": "956429a742554cada2124de49c6955e27b0e5d68db87dcc95b22c75ec7bd93c2" + }, + "src/app/construction_phase.cpp": { + "mode": 420, + "sha256": "025cd0ea1a7badd567f7f1cd59330b1e01149b5c5094575fbd438683658bb0df" + }, + "src/app/construction_phase.h": { + "mode": 420, + "sha256": "a4d39994096683a1144eb20282b205cf71e2045873cc15b53bdac214ab1e9a5e" + }, + "src/app/event_phase.cpp": { + "mode": 420, + "sha256": "80717fa7c7f108004d5250f12b6c994752a1a55d7f32c7d3ebf29f2869118c90" + }, + "src/app/event_phase.h": { + "mode": 420, + "sha256": "54077268fe4705270dc06bdc46a6fd9384fb5e0d36da19e55ea149b478d8cf34" + }, + "src/app/growth_phase.cpp": { + "mode": 420, + "sha256": "5924d2641fc98d902b56a3e6417d7a57d70c1564718951b098e7d14376ebc4e3" + }, + "src/app/growth_phase.h": { + "mode": 420, + "sha256": "8222ef811abff161c8f891a331a52e527de54fbf468949d1e0e188adc473ae3b" + }, + "src/app/main.cpp": { + "mode": 420, + "sha256": "adfd7dd177439bfd57509532bcf0f37779281ae9309daa93efe1ada3ef3f57a7" + }, + "src/app/observed_phase.cpp": { + "mode": 420, + "sha256": "31fb99678d60de6901b4bb1b251abe2421453264653cf5f7bd297a376c2b23f3" + }, + "src/app/observed_phase.h": { + "mode": 420, + "sha256": "f88fc22a5cb21a43e196d7fae09446126635d3284e6b398bca234f265234b693" + }, + "src/app/phase_catalog.cpp": { + "mode": 420, + "sha256": "e3da16e6d499b7836953251d940ce171792ada208156ca583277298f305fc316" + }, + "src/app/phase_catalog.h": { + "mode": 420, + "sha256": "da6fff506002079d8277358d0095981dc260449dc19677a533ef25ab709aed87" + }, + "src/app/report.cpp": { + "mode": 420, + "sha256": "da3feb6043f6e68cb9ea763f7242ac153a5944c59f448284faf34c64ad6b9228" + }, + "src/app/report.h": { + "mode": 420, + "sha256": "0495d164458ddb7187ce3105f82cee06cf9cf6c5b73ed8cb6e434e1d2e0f8481" + }, + "src/app/script_phase.cpp": { + "mode": 420, + "sha256": "61eeeeb7eac3145cee938ccfc564b231b6968ce7926fb9599c136134f0d5ea91" + }, + "src/app/script_phase.h": { + "mode": 420, + "sha256": "e52006ff939fa945870fafdc2412ba67e3d5e1cc2aa51c0ca0a884ce630aa1b7" + }, + "src/app/trade_raid.cpp": { + "mode": 420, + "sha256": "07d6bb904e655bb644ff6df2e417adb448487bb67acb62240ec5ecc978eabebf" + }, + "src/app/trade_raid.h": { + "mode": 420, + "sha256": "10e0b1460eb7810f1fcd61e67d47333373f06bdacf5a11372958a84a91084e52" + }, + "src/app/treaty.cpp": { + "mode": 420, + "sha256": "317463fc0e2a6ca7eaa4e2f096c3821655a4623de4085af44d951ed500837575" + }, + "src/app/treaty.h": { + "mode": 420, + "sha256": "836395a85868cbd6b7fda8f1d304128fd7cc6952aff37003e8e119a5ce0251f9" + }, + "src/app/turn.cpp": { + "mode": 420, + "sha256": "a626ddf80a340de50b70f09bf91c0180d255c533e65edce1532d807fcf5109b4" + }, + "src/app/turn.h": { + "mode": 420, + "sha256": "85c87aab5c5b5ad5a6a34cc9db710b1cf77dec1a7145ba1e0b5e17fff9a6a237" + }, + "src/app/turn_record.cpp": { + "mode": 420, + "sha256": "e1eb0b253e964ab4f8be1333f81e193ac64109544da384cbdf21858cbf931e4d" + }, + "src/app/turn_record.h": { + "mode": 420, + "sha256": "78d8d2948bd04bff5e7d2c55955b726f1cd7552a765e608e390209e03856f76d" + }, + "src/app/visibility_phase.cpp": { + "mode": 420, + "sha256": "34d9df699af3e57823ec8457c442408da854028f9b95db5820171caad0823131" + }, + "src/app/visibility_phase.h": { + "mode": 420, + "sha256": "60db50f5b98c5edafc86a33f982a7773acc291c1a18f9cf23323e53ebadcde27" + }, + "src/game/ai/CMakeLists.txt": { + "mode": 420, + "sha256": "f51509a2699f02ecab9faa1f75feaa38c299e6bbbe08bfbe5e8e86722037f6eb" + }, + "src/game/ai/agent.cpp": { + "mode": 420, + "sha256": "e1bbddc3deb797d62ae9c2b24bc811ec9379699992dd838694bd5eadc73feef7" + }, + "src/game/ai/agent.h": { + "mode": 420, + "sha256": "48aa26f32d52a3f8f4e37ed5c6986b1e87a8fe1e780d5314514eb5c75b8bc244" + }, + "src/game/ai/apply_order.cpp": { + "mode": 420, + "sha256": "122ffea1090382fd01bc505fd30c59557dfec2c9846609d00da6e80109da2253" + }, + "src/game/ai/apply_order.h": { + "mode": 420, + "sha256": "a3b7a1ca26243ba0fdd801b78978175db6f76e297a72876fa0a35e12f38e09b3" + }, + "src/game/ai/command_capture.cpp": { + "mode": 420, + "sha256": "cb9a1d37af9f66e78d368e03aeabec01e4d48f76aaa30348a51f4c70a915e4ec" + }, + "src/game/ai/command_capture.h": { + "mode": 420, + "sha256": "921599e5b2aa8b773db00134618efde687c7d9ba739abd787ec7666f4cfeb78f" + }, + "src/game/ai/orders.cpp": { + "mode": 420, + "sha256": "1b775eb1a030bc6e81e5b7702cbf8ad56288860276e8a0475da66f7367542640" + }, + "src/game/ai/orders.h": { + "mode": 420, + "sha256": "c2a3b8fe1a7c46a1c1104bc87be8696d9f0782cc304d27cb96d0ec6b182f12ae" + }, + "src/game/ai/tasks.cpp": { + "mode": 420, + "sha256": "b05878ccd94c375aac8723c8ea9499f77b98fb94acc5a75a15fa1948dbe83c76" + }, + "src/game/ai/tasks.h": { + "mode": 420, + "sha256": "b1de4f89c1679ccfdeaa8b852cb2ce407b71dcd1bffacf97df389a69f6ae3a5d" + }, + "src/game/ai/turn_order.cpp": { + "mode": 420, + "sha256": "858b12c51c4509e16a22a6c080d1c6b47bd23d2b8a11f84a48d34f24c4635f22" + }, + "src/game/ai/turn_order.h": { + "mode": 420, + "sha256": "3e76710928fc2df52fd8312abfb8f23a2ce162f8e0856f46672a4f46b5b4384f" + }, + "src/game/combat/CMakeLists.txt": { + "mode": 420, + "sha256": "4b3a05c45360e312d6c1d96c1f05a60437d19d2046257835e0d6c70ecc4ce115" + }, + "src/game/combat/retreat.cpp": { + "mode": 420, + "sha256": "eede86a4d25289dfc9132d5776b11114a109179e5aa10f2b985035e5b22d7a1f" + }, + "src/game/combat/retreat.h": { + "mode": 420, + "sha256": "5fc3e002a5f1944f29c74f862ff942b894e40e88afafd52358373ada36644d7d" + }, + "src/game/config/CMakeLists.txt": { + "mode": 420, + "sha256": "c746021654505c92be333cefb9df994431679d40d8d654b937feb950684830f7" + }, + "src/game/config/config_loader.cpp": { + "mode": 420, + "sha256": "d903ba06747e5b7d66400d03ee1f0a9896bf4268bb200dec0b5c8599dbd3d3a1" + }, + "src/game/config/config_loader.h": { + "mode": 420, + "sha256": "fda71dee1a4e2b896760e9ac344768e176ea4f0a08609c7d651033a1ee698085" + }, + "src/game/config/manifest_loader.cpp": { + "mode": 420, + "sha256": "dbe33dc5ae03db18f3b2c01b48cc1fced10f2cca599270c0a028321a7d7dd7c6" + }, + "src/game/config/manifest_loader.h": { + "mode": 420, + "sha256": "68e508b9e6d1222d980b22ae826b127693fdf0821b6539ed9e62a8ec031aa5b5" + }, + "src/game/config/msvc_sort.h": { + "mode": 420, + "sha256": "17fcb13bb49a634c80be38299617c6c16fd8addedfa88c53d67242c90b811716" + }, + "src/game/data/CMakeLists.txt": { + "mode": 420, + "sha256": "677ba0dd0ebb8176f4e7c41d5550f2ccedd56d49e7e4acb1eb0a7970e9e98a51" + }, + "src/game/data/block.cpp": { + "mode": 420, + "sha256": "f61312708c715ce525ed1a01e71f1446d31fc96ca1cc51f5bd863cac51702200" + }, + "src/game/data/block.h": { + "mode": 420, + "sha256": "f14155dfca5fd270ad6b4d462458aa8cd5c5edf5e19da4df492ee2907e99eccc" + }, + "src/game/data/catalog.cpp": { + "mode": 420, + "sha256": "7799ad3b31d43236cacbc51c3ab086265927f98b1346005a8adfed2796178ebc" + }, + "src/game/data/catalog.h": { + "mode": 420, + "sha256": "80223146bcdbf4808776f974df7e5f46b120a021979a22f50b5ce2d74ec16d6e" + }, + "src/game/data/common.cpp": { + "mode": 420, + "sha256": "e58ba046844be11c61f7f7e501829b48b4f16e7c0ab78f10fcf9189c133cf040" + }, + "src/game/data/common.h": { + "mode": 420, + "sha256": "d1ac8375c1be133a98a383e01598f393f194e1bd9790d1c1230bc6121a45a187" + }, + "src/game/data/fields.h": { + "mode": 420, + "sha256": "4209df368ad776b3c24350246acf47ad874fcbbe292fb16f9ca7dacaef2f08fb" + }, + "src/game/data/shipsection.cpp": { + "mode": 420, + "sha256": "82d5ba9be2a446e50934b0b9a03b16839bd3acd1a967d9441180a1baaa271264" + }, + "src/game/data/shipsection.h": { + "mode": 420, + "sha256": "bcf100f83691226c4993dd7866b67a0b48d9b4bc6841463fbf07f0f26bf9dca0" + }, + "src/game/data/strings.cpp": { + "mode": 420, + "sha256": "6d983d3a4cb4284215301409587136fb765a5e6a4c9f4b988e01d710c0815f59" + }, + "src/game/data/strings.h": { + "mode": 420, + "sha256": "fb292bd472ed68eb4a5e93484f3f92d8a0ae8661e6a61ca4b417ab889c508055" + }, + "src/game/data/techtree.cpp": { + "mode": 420, + "sha256": "2ac6e39faeef808c97375f3b8a3ee219fcab8cc09921f0ed8d82eef7374eb9ea" + }, + "src/game/data/techtree.h": { + "mode": 420, + "sha256": "504946c255405ab28d20d0ed6c095b3b63f0e6865afe0e8bb0707e607c363007" + }, + "src/game/data/turrets.cpp": { + "mode": 420, + "sha256": "ce7db50ef10825e168fee2bf57c4b6038dd1a356be7ada9ed6a4f6a4f31b07a4" + }, + "src/game/data/turrets.h": { + "mode": 420, + "sha256": "f01603ad32b0ffdf891c88cc54c39a725c6a436f8dda79ac23e7505e59853c64" + }, + "src/game/data/weapon.cpp": { + "mode": 420, + "sha256": "accb5aab2081babb26443cd257f292909e19440c40346e098144148922f5d3f6" + }, + "src/game/data/weapon.h": { + "mode": 420, + "sha256": "63aeb670ae7b8a1fd6daa35ed60ebe41a87f62a6ec2a12f44b13f9052c55b009" + }, + "src/game/design/CMakeLists.txt": { + "mode": 420, + "sha256": "42692f7917d99fb5b9e392c2d0f1d908b2bc5c61fc2e5687fddbd665dafe0bef" + }, + "src/game/design/defaults.cpp": { + "mode": 420, + "sha256": "8efa0b79646525375739a1acfe77e75d5ae6b669d1ecaa01f49f3f5183caf528" + }, + "src/game/design/defaults.h": { + "mode": 420, + "sha256": "20af056628f362a4d5ad7ba6277135697718197ec6844ae0ae85bf06d4cd818b" + }, + "src/game/design/design.cpp": { + "mode": 420, + "sha256": "e166281c52a6d92fed8810b38bd736cbd2a324f15d290a39a539d01ff35ead20" + }, + "src/game/design/design.h": { + "mode": 420, + "sha256": "7e936c78ca10c3a49470da67f1659cf4ee323d14d50b5b2c1ada08edfa8f6997" + }, + "src/game/design/hull.cpp": { + "mode": 420, + "sha256": "554b0ef6955ac230c7eca29ea2d94d60b5fbc91f34d9ff457091577c8602268a" + }, + "src/game/design/hull.h": { + "mode": 420, + "sha256": "997018e59c9d78ee1da7e7cb9561b94b76befacbe348a4ce3301c5f22b582461" + }, + "src/game/design/rules.cpp": { + "mode": 420, + "sha256": "a623984f9ab40c354320051fec00bab2c7e3728c2c90082b3b8051294b906319" + }, + "src/game/design/rules.h": { + "mode": 420, + "sha256": "70a8a42fe82e9805cbb957717688ab9f9eb3438226f6e0d696ef5f7a51529229" + }, + "src/game/design/stats.cpp": { + "mode": 420, + "sha256": "c05f420a00026289be8693c0d80bbd2354ce354a91a78459cfc8e70467326c54" + }, + "src/game/design/stats.h": { + "mode": 420, + "sha256": "ba0a5d3bcc98f5c3e64579d42da70bfdf563773ce2fe1e6bfa2b36b14c453fe5" + }, + "src/game/effects/CMakeLists.txt": { + "mode": 420, + "sha256": "2e20f138f98bc69653c8360a26f99f3f43f35beedea5e90dfd7e9721e7550f89" + }, + "src/game/effects/tech_effects.cpp": { + "mode": 420, + "sha256": "40358c2af37543ca3ab09b4d0433cdb4b0d2d212b45f648739cc86e979501604" + }, + "src/game/effects/tech_effects.h": { + "mode": 420, + "sha256": "ef70addf2caf1e3abf36ac9d878a8db37d2adbac370957f5b6a0b5825564a0d6" + }, + "src/game/effects/tech_id.cpp": { + "mode": 420, + "sha256": "11cd652e81a52e86d72541a5c3de77bb50de3d31226272e0d1856e5a15b7f9a6" + }, + "src/game/effects/tech_id.h": { + "mode": 420, + "sha256": "f37752250c80c9c75ef8e144e4646dc1290a2cc8ce72d9a37949c6408996df86" + }, + "src/game/events/CMakeLists.txt": { + "mode": 420, + "sha256": "9b1f14a3801a991ba065e0e39ae2e3fa3966018e8a98fcceeddeaca3909328e2" + }, + "src/game/events/event_log.cpp": { + "mode": 420, + "sha256": "3b131879ec5e81cd1ba2bb0cbdfa6e05775ed77684f4ed7a8f5cfae87da1e7b1" + }, + "src/game/events/event_log.h": { + "mode": 420, + "sha256": "2ff415b1120ca3f28421006a566280fb977027cfa3f209bdba0986350376a953" + }, + "src/game/events/research_events.cpp": { + "mode": 420, + "sha256": "9520b20eba2a2b4bd5925f13b420d526fc610d06aae7ffad314e3002c4f5a253" + }, + "src/game/events/research_events.h": { + "mode": 420, + "sha256": "b87340c6b14e9de97e5bc0c5a4cbd74e54bab2831c60edf88c0e42ff5218ea22" + }, + "src/game/nav/CMakeLists.txt": { + "mode": 420, + "sha256": "79cc0ba25c6d49f7784663ace033d01ab3d85a5d8015fe2f466f8f1a3065983a" + }, + "src/game/nav/pathplan.cpp": { + "mode": 420, + "sha256": "04cfe8fca5be565f5443c8f1402eb0072221dbd63f70855e35b3eeea752f1775" + }, + "src/game/nav/pathplan.h": { + "mode": 420, + "sha256": "28b51f737b458679888e555d985b9e8d41adf8ba91fa0980b5e83668758c86e7" + }, + "src/game/sim/CMakeLists.txt": { + "mode": 420, + "sha256": "4b3085116f88c903a137abef6806891f7b7245dcb031153df7a5465dd2521116" + }, + "src/game/sim/colony.cpp": { + "mode": 420, + "sha256": "e0f0bf15d87b6ac2e92053cbfe0869c0dbf9465d90a9bae5456bb46883423b77" + }, + "src/game/sim/colony.h": { + "mode": 420, + "sha256": "357dce21440140a6cf836a3c12175ebb5bb6706c37d5ecd315a4ee4937725b47" + }, + "src/game/sim/construction.cpp": { + "mode": 420, + "sha256": "8cf4792f487162ca3599f16f0e92d73b4c9549046044548c5aecf202dd564130" + }, + "src/game/sim/construction.h": { + "mode": 420, + "sha256": "a7f201101ad704f1994f809259ad60f780760fa36174d99a1ccd9299447f5460" + }, + "src/game/sim/economy.cpp": { + "mode": 420, + "sha256": "1e0b17b589496a6139e8ca10fe20553050be7c965a02daf8b520dd5020412d89" + }, + "src/game/sim/economy.h": { + "mode": 420, + "sha256": "6f3e33e803bb49367d4cee3c8ef6186f04b79e7cf901047fc48d933108ab6d2a" + }, + "src/game/sim/movement.cpp": { + "mode": 420, + "sha256": "80c64b2148304b84683cf3860ced1354f5c29c923bbc50cc5001030dd85c2cd2" + }, + "src/game/sim/movement.h": { + "mode": 420, + "sha256": "9a6b2b4960428634d8004cd5694ed6a7a10ab28fd9c0e2a9824ede3e201e9441" + }, + "src/game/sim/numeric.h": { + "mode": 420, + "sha256": "88f715192ea322ace4eea13ab5ae55f7f41600262025208e468b5259220522c2" + }, + "src/game/sim/observed.cpp": { + "mode": 420, + "sha256": "43d29a9fe1195dcc0b7e6101ea05bfd076f03636f9f68de473539c83db0ddd22" + }, + "src/game/sim/observed.h": { + "mode": 420, + "sha256": "0224b5bf341f30ff0e98d910547261b6732bdc0c5339b520e26fc51939c1269f" + }, + "src/game/sim/player_turn.cpp": { + "mode": 420, + "sha256": "beb1b2ed434df3727e676ac56e751beff87fa98e4a42e4657cc54d41025773a2" + }, + "src/game/sim/player_turn.h": { + "mode": 420, + "sha256": "f24f8f5e161486575cd341c2f5bfed46fa6983263edcf2320e9c24860b4be51a" + }, + "src/game/sim/research.cpp": { + "mode": 420, + "sha256": "95f2d325544ee018ec8d0f945e91b4172f6ba406f95e19f86c4fb9aac6b22a89" + }, + "src/game/sim/research.h": { + "mode": 420, + "sha256": "e27a311e977afb2e01242938dc8d928e9a67d1f761965e191cf907e05c1c86e9" + }, + "src/game/sim/rng.h": { + "mode": 420, + "sha256": "f7e5bbced3dbd37deb49a00b52d05f7c751501d654dabd645ecff7447355929c" + }, + "src/game/sim/scriptobjects.cpp": { + "mode": 420, + "sha256": "a4f9a1b49e4ba22a88726efbbea2f355b40a3c006734d9150d509a344720a4d2" + }, + "src/game/sim/scriptobjects.h": { + "mode": 420, + "sha256": "210d0eb51780df70a9bca133664429589c03ea33e4524e2c182801d4b4a5c74b" + }, + "src/game/sim/species.h": { + "mode": 420, + "sha256": "83b44c0600b99c5acb72a3484bb0708cfba765cdf594aede596a3c47d5ee6298" + }, + "src/game/sim/techgraph.cpp": { + "mode": 420, + "sha256": "81f8f1120eb1fa4a77752bd2e0917df3dd76372461416526ae510bd697944ef8" + }, + "src/game/sim/techgraph.h": { + "mode": 420, + "sha256": "b2fc90666080a6b7f27dc9290eef17774d57742c2a1f9e1f77d94c7fa5689f6e" + }, + "src/game/sim/tuning.h": { + "mode": 420, + "sha256": "4acfad4098de951cc3a94ca25a2f200e96caba1836bf7441de5a2b458c022194" + }, + "src/game/sim/visibility.cpp": { + "mode": 420, + "sha256": "25f86a34f9a98d2439672283a446ba1804973dae3f6d9aa3692342b05f3a3ac0" + }, + "src/game/sim/visibility.h": { + "mode": 420, + "sha256": "783896489a2a9ec8bce617b141bfb631e8ef92f958be7b5c2ca64fd75774471f" + }, + "src/mars/parse/CMakeLists.txt": { + "mode": 420, + "sha256": "76c290b786a3e73387ec8c574fd5a0dbeb6e629adbe970426314f16497f59fa9" + }, + "src/mars/parse/blocks.cpp": { + "mode": 420, + "sha256": "e60baa8127b21cf6eb6c8e2aa02c6a72c6403dbc29e8480ff658bf184266675b" + }, + "src/mars/parse/blocks.h": { + "mode": 420, + "sha256": "1e8b76919a584d1d7fb01c5ff5e3a7173e8456eca892d61f0c6b7bb8f02f33b1" + }, + "src/mars/parse/effect.cpp": { + "mode": 420, + "sha256": "beb76a841a3d42dbc157413384ff1a0312a7068d6b22020eadcee2e1cbbc81f9" + }, + "src/mars/parse/effect.h": { + "mode": 420, + "sha256": "aaa5c83f2d8eef24667bf05d0f71b2a346f2fce09dc9a45d7a5197c894922e44" + }, + "src/mars/parse/result.h": { + "mode": 420, + "sha256": "58cff456e353550abcd0f52e031d9d70f2b7a975f4762cfccc64eb6bc748dbd9" + }, + "src/mars/parse/script.h": { + "mode": 420, + "sha256": "69a493268c47a08672694489a51c3ff0a7f9aa870e5ae5a93d47ba033cf21ad3" + }, + "src/mars/parse/value.cpp": { + "mode": 420, + "sha256": "712133e4d725649f5461e6a46bac6842b0751ac3fb7e1c468f826638ec58f623" + }, + "src/mars/parse/value.h": { + "mode": 420, + "sha256": "60d692648dab7e3e216c8d9e6ef212592ba1df1a98260b1b4599354742947b38" + }, + "src/mars/rng/CMakeLists.txt": { + "mode": 420, + "sha256": "dceb4bc0fb35c95a12ed9aa36380e79aa75641b15ecc06e4289d39824087e2dc" + }, + "src/mars/rng/mt19937.cpp": { + "mode": 420, + "sha256": "0c60775e9437b8eaad49f67a96001c81947c8d9e6d2472e28b2b490515bac95b" + }, + "src/mars/rng/mt19937.h": { + "mode": 420, + "sha256": "300836ab26fd1a4d913b395f08770bb2c248029ef1b80ecbf0c4d886adca2b8e" + }, + "src/mars/stream/CMakeLists.txt": { + "mode": 420, + "sha256": "95ffbb0c519e55b7423ab048a3019e295b7ef3a3e9506044ef2e68569df9601a" + }, + "src/mars/stream/archive.h": { + "mode": 420, + "sha256": "84d9ae2bb3d6f444b3933b3816cafd12caee8619d2219f19cd10d32cfad01d2e" + }, + "src/mars/stream/bytes.h": { + "mode": 420, + "sha256": "9f5869952c9d6b925db32995a417ba292a0c1a672fc3850400150afb8163b3f1" + }, + "src/mars/stream/dump.cpp": { + "mode": 420, + "sha256": "1b5bba86b2f85b1718276f8db557601320ab8a165d5fbfe93e51219cca5a1c16" + }, + "src/mars/stream/dump.h": { + "mode": 420, + "sha256": "a69af300ae7083fb0a5362edbe7eecd5273c8807884aff9fbedd7ae606c7fc4f" + }, + "src/mars/stream/gzip.cpp": { + "mode": 420, + "sha256": "20d71fd50bd637f78e7ebb5217bc6607ebc257535cc4720e640e4badb72f1644" + }, + "src/mars/stream/gzip.h": { + "mode": 420, + "sha256": "6bce52c615eb120999adb1a6f7f06baa813a033c28e02e6d79ce77f5b7a929c9" + }, + "src/mars/stream/node.h": { + "mode": 420, + "sha256": "eb43054c8592db107557979c7fc8612dc0646ba5d62f154b9b7f96a37ba2e860" + }, + "src/mars/stream/probe.h": { + "mode": 420, + "sha256": "6411d0976d1e785e8c32af6ecfe1a797c0a9aa02314e5e42fae3ed7b3449ae13" + }, + "src/mars/stream/reader.cpp": { + "mode": 420, + "sha256": "90f19cbcdb0fc50795895ea1eff09cd6c0ab3069095c49b276f3894e3d6bcbb3" + }, + "src/mars/stream/reader.h": { + "mode": 420, + "sha256": "900508d97be1cbe566d77f2c91755d3db387535cd9574e41704b6d940daa1ff4" + }, + "src/mars/stream/save.cpp": { + "mode": 420, + "sha256": "6db367b3ea570a4d0ee831160e3f44cef380f58de163b9d9205ca7449e51e049" + }, + "src/mars/stream/save.h": { + "mode": 420, + "sha256": "b3a411600d98b42e9014e1fc3cbc3eac5f32f4393e9f72036d3d840c802bb469" + }, + "src/mars/stream/savedump_main.cpp": { + "mode": 420, + "sha256": "8dc687f009d9f455e9bfa4019f03df72e058cebbb3e9ae5bcbb308285470208c" + }, + "src/mars/stream/schema.h": { + "mode": 420, + "sha256": "b1cd64bc43076a3e5893239bd2eb5c216e7293ee541322ef74fb106928183a05" + }, + "src/mars/stream/shapes.h": { + "mode": 420, + "sha256": "45ee379ff8100b6bc27427a2580d7aae19ff3d5d0aa27f682d156ae6a92d0a6d" + }, + "src/mars/stream/writer.cpp": { + "mode": 420, + "sha256": "54804b06266e34793f5294f9a96d2939d641915a0f60fc4e3b4170bfcea6e083" + }, + "src/mars/stream/writer.h": { + "mode": 420, + "sha256": "921cd44ea30e0b9944825b1d2caafc46edc8f2c23506c807050ed9208a397340" + }, + "src/mars/text/CMakeLists.txt": { + "mode": 420, + "sha256": "dccb93b37c21c9b3c3b35a50ca8de55c9f00df2a9e0a33b6c36d659a75455436" + }, + "src/mars/text/csv.cpp": { + "mode": 420, + "sha256": "b190e12b86a3f416a72c110caf9e0b2d98cdd33851d2fa48b55a8d7ea39279af" + }, + "src/mars/text/csv.h": { + "mode": 420, + "sha256": "3b7ec6d0884e95bfab869c253eddc30a802602bd1f230cc69461cb9cf3c17917" + }, + "src/mars/text/flat_kv.cpp": { + "mode": 420, + "sha256": "b98d3b7345489f0b149e56cd15436fd6199e4cf00d7ce3f8b8b31fcdecb90e47" + }, + "src/mars/text/flat_kv.h": { + "mode": 420, + "sha256": "d6765cd42cad46597b6e36e9d08baf6819f7796442293043d5ff686e2376d292" + }, + "src/mars/text/lines.h": { + "mode": 420, + "sha256": "b9a16ccf0dc7bbf36100e0b66c80bcb818590b161f820d3c67d55bccff1c2c65" + }, + "src/mars/text/manifest.cpp": { + "mode": 420, + "sha256": "4da1bb615902ec61883e561f5dd375d89442f7b9046fbc864f6308f27921087e" + }, + "src/mars/text/manifest.h": { + "mode": 420, + "sha256": "dd7351a7a6a144e97f3a3b6a25d22d1518a099e95deadb8965cedb201601e102" + }, + "src/mars/text/result.h": { + "mode": 420, + "sha256": "7f817033811dff6fcef1d5b76f88922cb0392afb4359549876cd017a14755606" + }, + "src/mars/text/value.cpp": { + "mode": 420, + "sha256": "94b433d78f3211e1a4dd9eb8a0a00b514cbeaf63a03e738146c56dbbfe221479" + }, + "src/mars/text/value.h": { + "mode": 420, + "sha256": "d3b5c70af2f339ad27b43c38353fc7a2da83388854b02000fa1b6d9a4e1dfc07" + }, + "src/mars/vfs/CMakeLists.txt": { + "mode": 420, + "sha256": "630d5d4707ef3c0f24a414815cc23158853fe9d5aef429d6619abc1c433b3786" + }, + "src/mars/vfs/path.cpp": { + "mode": 420, + "sha256": "e1f3bbab1f90b0132aec24d8c5997dafab69ec72f01f2dd2fa63c91f83ef7aeb" + }, + "src/mars/vfs/path.h": { + "mode": 420, + "sha256": "043091008f2cab7c88185de63e7aae63ad9b0e384109f5b6fd8c31666c4e2033" + }, + "src/mars/vfs/result.h": { + "mode": 420, + "sha256": "19115bf1c5b3bf01da078a49209230053043610b342b01cdaaed126e2d3ea748" + }, + "src/mars/vfs/vfs.cpp": { + "mode": 420, + "sha256": "ab8272cd14b4b55e7af13f5383d6106f0b1caabdde57e69c1d0fb5b434d31cba" + }, + "src/mars/vfs/vfs.h": { + "mode": 420, + "sha256": "2484231baa64ede6fc35eb0f49e1fd7a3373d5c559f016d5adfb9fc433619d90" + }, + "src/mars/vfs/zip_archive.cpp": { + "mode": 420, + "sha256": "d66e70300539bd42bcf193683df7c34d2b0b03146fd79f0a180385ead1559e87" + }, + "src/mars/vfs/zip_archive.h": { + "mode": 420, + "sha256": "0ffbd90f7919741e63e86e14d0f87d247bc2cd16d2db54771071553249ad935d" + }, + "src/shim/binkw32.def": { + "mode": 420, + "sha256": "fb500fd9f9ecbff44123b89fc24cec72e91fec4c4430ce12a69efc06b20de235" + }, + "src/shim/fpu_force.cpp": { + "mode": 420, + "sha256": "c4b4e41a7ef81139c652ba8164ed8bb0d809b42182f0d0f048b9a9e63bebe59d" + }, + "src/shim/fpu_force.h": { + "mode": 420, + "sha256": "75bac23bc45510961f6b10d21c47e72d8dc0d3971a3ab30b795cad1d25332c06" + }, + "src/shim/hooks/ai_orders.cpp": { + "mode": 420, + "sha256": "091ed885012fffa0e02b83c53e547483dfdeaf1094933726e0291fff0a99e434" + }, + "src/shim/hooks/ai_orders.h": { + "mode": 420, + "sha256": "6e775b3f946f2eaf10dc2e236a3f3c7b9311ed4e82cd4be1ca30e6c62d49d053" + }, + "src/shim/hooks/ai_rng.cpp": { + "mode": 420, + "sha256": "b8fec711cb620561c8f4854e72c3fb0d73013c9b1cd69fa63fc05dd3d2f60289" + }, + "src/shim/hooks/ai_rng.h": { + "mode": 420, + "sha256": "1306f4d3c8071121b06c75232efa5c50b155c1f8752fcae852ee8e5497ce7d08" + }, + "src/shim/hooks/ai_visit.cpp": { + "mode": 420, + "sha256": "cd69811074820810edb1ed3779ca08bd99fea620b162d80a0395d35e8db7fc31" + }, + "src/shim/hooks/ai_visit.h": { + "mode": 420, + "sha256": "8315b433319f680e80a154409124355ad24842e9a0cdef5c8aa6d12422971189" + }, + "src/shim/hooks/budget_inputs.cpp": { + "mode": 420, + "sha256": "fa50fb74a3874886cf8aeb4012b9fd9a5a43ce38ab3c543ee425002ca32fd46b" + }, + "src/shim/hooks/budget_inputs.h": { + "mode": 420, + "sha256": "56e2f95930ff420820a3464162fde74ac0a3ff2e1dc8b493729fed342e4a6548" + }, + "src/shim/hooks/colony_inputs.cpp": { + "mode": 420, + "sha256": "7aa9191ec6292d765fd06c99ff1f2ae2e09a65fb1f238dd2727f28bd465dd46e" + }, + "src/shim/hooks/colony_inputs.h": { + "mode": 420, + "sha256": "87ec765e14106631e3f6423450e6e01d5bb21060fa91f83c267db215ef4986d9" + }, + "src/shim/hooks/colony_turn.cpp": { + "mode": 420, + "sha256": "b82616c7b9b05e96e7f4c40d853c686884b517a5424413686d61799df9d45420" + }, + "src/shim/hooks/colony_turn.h": { + "mode": 420, + "sha256": "a9013cc2e92998ff56ac0c8cc36dc42033fbe3072ee88b86882a1dd4dd0357d6" + }, + "src/shim/hooks/compute_budget.cpp": { + "mode": 420, + "sha256": "76a24f0daf1f49cfabbed13753c65754e26bfcc4f672791b37e926f82b5c1906" + }, + "src/shim/hooks/compute_budget.h": { + "mode": 420, + "sha256": "f308717e44e12151cfb20a6a0cf11ff8e99ecc9c17ef04783198feed05a24caa" + }, + "src/shim/hooks/dictionaries.cpp": { + "mode": 420, + "sha256": "b60794256c07964eb89d5295ecb711b402112fe5f982a9215dc3a304d03a567b" + }, + "src/shim/hooks/dictionaries.h": { + "mode": 420, + "sha256": "ac68fd66eb343d40ee97d6bf29c8b54f5d469a9ef8862687ae15e6ad8bdafdc0" + }, + "src/shim/hooks/draw_sites.cpp": { + "mode": 420, + "sha256": "e7a1fa40262db2ed22b1dfa5ca1bd2588da07bfbab046f23afa8e86c03814d79" + }, + "src/shim/hooks/draw_sites.h": { + "mode": 420, + "sha256": "0021323e918d464223d03b969d0e6992a0efac23ba84a31af901cf2ac74e9b13" + }, + "src/shim/hooks/event_inputs.cpp": { + "mode": 420, + "sha256": "eeb9cc87ef5c39994b7f25d5ccfe220c4775b32a4b11471b0fc0fb81fca4362b" + }, + "src/shim/hooks/event_inputs.h": { + "mode": 420, + "sha256": "c0e74aed8756b3de8ebbe5ab3d70cfa6282403efefc2d795e8f0b1b4cd44d731" + }, + "src/shim/hooks/fleet_movement.cpp": { + "mode": 420, + "sha256": "f01ae7f64b1d545089b002b79c9986d2a39b97ad3995c88a8b71fa05eedb90f0" + }, + "src/shim/hooks/fleet_movement.h": { + "mode": 420, + "sha256": "dbbfe50afaedad63ec45881819aa5de3907cdb411ddf8d1d3e6a5f9a386dc8af" + }, + "src/shim/hooks/global_consts.cpp": { + "mode": 420, + "sha256": "87a51601e1a7d963bf841ca4e892aa79de789a050f5d783c7b5d8bbc2e96a9a1" + }, + "src/shim/hooks/global_consts.h": { + "mode": 420, + "sha256": "b6ac4265ec1f02f11c342536dbc9970c13761ea68aec0a5962d0f4cd6aa5d265" + }, + "src/shim/hooks/movement_inputs.cpp": { + "mode": 420, + "sha256": "0e23f86e4a8ed6c292aea8e45512931cdd06742f25c5e0d175bf0ed3b2217502" + }, + "src/shim/hooks/movement_inputs.h": { + "mode": 420, + "sha256": "32904786cbb122c3c8c36faf6bd9ea5ade4cd8395e74199ec08dbcdb8019b66a" + }, + "src/shim/hooks/player_turn.cpp": { + "mode": 420, + "sha256": "33bcadd7569ad13c69f5f160423c8d469bc67725ce7b944cf4b4346fb8cc7f23" + }, + "src/shim/hooks/player_turn.h": { + "mode": 420, + "sha256": "a766a0d93f3860da6f8d1e0dcf110d6754cd8dfe67d867093f32e3d24e8ff0e0" + }, + "src/shim/hooks/player_turn_inputs.cpp": { + "mode": 420, + "sha256": "993dce2ca771a36337c9561695995a0825746563d2e84b4458de650f3e456799" + }, + "src/shim/hooks/player_turn_inputs.h": { + "mode": 420, + "sha256": "ca0d7916ca17d993aaef19be48d03076220ae15cdcc622aef52a7c6b5957ca71" + }, + "src/shim/hooks/probe_entry.cpp": { + "mode": 420, + "sha256": "5faf9cf04a2cf849d2dd54ce4ad9b812120fb99741f11e9d52fed450badf0506" + }, + "src/shim/hooks/probe_entry.h": { + "mode": 420, + "sha256": "f04f445863a6164d03bc9f6edcaa2e2b0108163241510f4c1dfcb0da7667d89f" + }, + "src/shim/hooks/research.cpp": { + "mode": 420, + "sha256": "dacd16403f1dd5be2ef2cc42f16938977bdd0ee9283d0bca647a079ee3d28e83" + }, + "src/shim/hooks/research.h": { + "mode": 420, + "sha256": "a62c4847be81ed9d10c4f5b9a876bd79898040aa11aa8764149d82db4b010a84" + }, + "src/shim/hooks/rng_ledger.cpp": { + "mode": 420, + "sha256": "119d325fcda72268bdc87f7ca7af05d059d4521c4d7d40ad7426ce070865eabb" + }, + "src/shim/hooks/rng_ledger.h": { + "mode": 420, + "sha256": "0d1e9c79e7601da921253e860c55d9b69c21e03a1014c49f1dd85fd0e5f70f30" + }, + "src/shim/hooks/system_output.cpp": { + "mode": 420, + "sha256": "93bfb7e6ca381041d1e9830f82b8d774a63c12593fc426fd3e9198c9373be3b4" + }, + "src/shim/hooks/system_output.h": { + "mode": 420, + "sha256": "62a8424c70bb8e6c3d9603ce752f6b19a3920a4a78be75718869d7dac73f3738" + }, + "src/shim/hooks/tail_rng.cpp": { + "mode": 420, + "sha256": "9b2a3923d1d837399f3486650ef0e49b502837ff7df46a12df9a9e9b0d4d9d07" + }, + "src/shim/hooks/tail_rng.h": { + "mode": 420, + "sha256": "b9585605e71364872db25c608012e94db2148f22e2e6fd40d4b590a83f3be92b" + }, + "src/shim/hooks/tech_effect_fields.cpp": { + "mode": 420, + "sha256": "4c4d558aba3ac4e1b10e0944c867911e61daea0b4ade716760546846cebcb7b3" + }, + "src/shim/hooks/tech_effect_fields.h": { + "mode": 420, + "sha256": "22b2c050f73c9de011a42dc5a52d92a1bd3b24a59f3ba3b4332d832fb1853420" + }, + "src/shim/hooks/tech_effects.cpp": { + "mode": 420, + "sha256": "2a20f01a18ed30a466e2023ae023aeed8718c680cda927d2f3b463b6dbe35714" + }, + "src/shim/hooks/tech_effects.h": { + "mode": 420, + "sha256": "ffbc4e8262146cd7764f0b9758fff01ce5d359b25a0f5d8c931313f32d035320" + }, + "src/shim/hooks/watchpoints.cpp": { + "mode": 420, + "sha256": "15c94333f22bb592129efe3fb800ea89987045f9ebbc0e6791d4397961fd727d" + }, + "src/shim/hooks/watchpoints.h": { + "mode": 420, + "sha256": "639ae42b230fb31762f50cac0422dcd5b7fda7a1a02c7739a86d1cd6eda62277" + }, + "src/shim/main.cpp": { + "mode": 420, + "sha256": "eebdac7f8f69b8b95cd290c96d41c6f3f0ed5c45ccd5de54ffc790af47083b99" + }, + "src/shim/shim.cfg": { + "mode": 420, + "sha256": "44ca58394455549150c3461cc888128a968b4f062807e19ef25b8eebf0bfd523" + }, + "src/shim/shim.cfg.b4compare": { + "mode": 420, + "sha256": "68bed5883a75132eb5e885b4750d23c1d5734c843a32a56dc7f96d2b73fdf962" + }, + "src/shim/shim.cfg.b4scout": { + "mode": 420, + "sha256": "faac0765478d88b63f371fbc307512e71fe05f2e6f97272e6e0ceb267cc6d626" + }, + "src/shim/shim.cfg.b4trace": { + "mode": 420, + "sha256": "6a89cdd3cfdf53cfbaff29278fd5d0edf156ad8a525c61624b60ddb1eb0575a1" + }, + "src/shim/shim.cfg.bupin": { + "mode": 420, + "sha256": "39d52ef1ccb18d4dea261b87d3f363ba45079022d1b9bc3531c552ef6df80ec2" + }, + "src/shim/shim.cfg.cbcapture": { + "mode": 420, + "sha256": "0939b1ea144976ded2d45ad885fa0f1ffa3d77f16cba9b4d5a9cb87623500a62" + }, + "src/shim/shim.cfg.cboff": { + "mode": 420, + "sha256": "7d5d6e2ceb7f86fd17543c9212e8547be6009f725871aadbaf6057af1f4f5484" + }, + "src/shim/shim.cfg.cbpin": { + "mode": 420, + "sha256": "72a222c025796458dc1a538eed3ea55f053ee5e3c01e5b19b802922a058d4fbe" + }, + "src/shim/shim.cfg.cbtrap": { + "mode": 420, + "sha256": "938c0893b95b576b75927d75787999c22b3424d28c8936456ea3723f62775e51" + }, + "src/shim/shim.cfg.crcompare": { + "mode": 420, + "sha256": "129031ceb358fef9e0fcee2fb42a0f20fd76d9db78f061f956bf75ce2cc51dec" + }, + "src/shim/shim.cfg.croff": { + "mode": 420, + "sha256": "f99345e7db55e695ecabf7a00fc16ced9a42e8882abfeabc8281b9a4ef26d730" + }, + "src/shim/shim.cfg.crreplace0": { + "mode": 420, + "sha256": "60c13bd76e546b4521ab4e6a7836439078e2a176a11e471e03434623153cb7d9" + }, + "src/shim/shim.cfg.crreplace1": { + "mode": 420, + "sha256": "d27f43eb970d6a9c8a0c8d8f7071633a226c34b675a6581b331c6e1ba6f36c9b" + }, + "src/shim/shim.cfg.fpu007f": { + "mode": 420, + "sha256": "998decddb80cf23d63c42d2d6c1d1aa85072258ca0870168ee772708ebfb6363" + }, + "src/shim/shim.cfg.fpu027f": { + "mode": 420, + "sha256": "f4f9585a8f6317807bcab498ebed5de5d42400124a82ea958558f1455176cebd" + }, + "src/shim/shim.cfg.fpu127f": { + "mode": 420, + "sha256": "1f50a475f0d347b5b5a7c2341eac4ea22092818e18bc7ea049154d309949e271" + }, + "src/shim/shim.cfg.fpu137f": { + "mode": 420, + "sha256": "8658d901e0688d87d2f2359fe725082b9956291988cdc0b82b155dde55fef5e9" + }, + "src/shim/shim.cfg.fpu1a7f": { + "mode": 420, + "sha256": "59ff1f48a10c378d0ea92d8a156b135a106017a5b6c47b65de304fde3187c588" + }, + "src/shim/shim.cfg.fpuoff": { + "mode": 420, + "sha256": "ce637b3f0eca81c04490335cd9fe8a537cd09e5ef14cc5b3050f548ca4d54c65" + }, + "src/shim/shim.cfg.hoff": { + "mode": 420, + "sha256": "dc9b4619fe84921ea5896c2cd190afb5bd4ca89422fb86bfee8459665f92cd7a" + }, + "src/shim/shim.cfg.hp0": { + "mode": 420, + "sha256": "ede723fc540adb94bf16af0f3086c1935aac008acb6a8d550e2a4e97ff232c2c" + }, + "src/shim/shim.cfg.hp10": { + "mode": 420, + "sha256": "1c1f07dfdb7f99d63ed9a62aa9a447efda690623164beeaf434c588e02ef12cd" + }, + "src/shim/shim.cfg.hp11": { + "mode": 420, + "sha256": "36eae0d554a79b9536e3c57d2fef187ae81bd3266947c7f45035be554fb59404" + }, + "src/shim/shim.cfg.hp4": { + "mode": 420, + "sha256": "5bb0d636247c37def9b5cbf0cc9138b13590a50ae8212890fb7d31dfb9e837f4" + }, + "src/shim/shim.cfg.hp8": { + "mode": 420, + "sha256": "a8fe5f16a299b2b9eb81a811c7ec5a3b1baf635fa179a69f1e23243c7d1e2133" + }, + "src/shim/shim.cfg.hp9": { + "mode": 420, + "sha256": "765fdf337bb6942dbd1357166646dbf7fde3777678a606c4dbfd368078f09b5d" + }, + "src/shim/shim.cfg.hpall": { + "mode": 420, + "sha256": "630f99725ea6aa933984f4c545634d127787672de36f6756da2591e22a36f366" + }, + "src/shim/shim.cfg.hprobes": { + "mode": 420, + "sha256": "3bad5e3e7bf35a85acc7169d27531788e9659dbe0f8b1a0c719777fdb6beb5dc" + }, + "src/shim/shim.cfg.hprobes2": { + "mode": 420, + "sha256": "c335f1ec8aeff1165213cd40adcdcd59893c65edf95b1537fc4460e6060911c5" + }, + "src/shim/shim.cfg.l1control": { + "mode": 420, + "sha256": "c5dec81556268795b9a3df175bafde340a3fe76c7d6e05389e09e79d2b138b43" + }, + "src/shim/shim.cfg.l1hive": { + "mode": 420, + "sha256": "970ce465f2363f391a93086f1b596e904265510e02e7d2d38174cc6ea22d9b25" + }, + "src/shim/shim.cfg.l1off": { + "mode": 420, + "sha256": "a4197233c65acb876328666cf37754aea96f942b6ea08105bdfb61d6d5bcbd64" + }, + "src/shim/shim.cfg.l1seed": { + "mode": 420, + "sha256": "360af979eaa0c13eaa4db38ff13dcc64b3e2ab538300c26497921301fd3817b9" + }, + "src/shim/shim.cfg.l1snlv": { + "mode": 420, + "sha256": "3603508983a87906ecce02e4c2e9581cf2fa59390af25335f0b221765c57ef6d" + }, + "src/shim/shim.cfg.l3cont": { + "mode": 420, + "sha256": "629530a34412ebf85fc8ce8d2e5931684eea9891b6b619419e6f8db8c37f0976" + }, + "src/shim/shim.cfg.l3control": { + "mode": 420, + "sha256": "42b6ec7ebc9c83dae4a58884803f627d54956eb308611ce1e8d3691a12a74ccb" + }, + "src/shim/shim.cfg.l3probe": { + "mode": 420, + "sha256": "692dabb6f00343bfcc2f86d62ade827c295acc4630a18a1f2ddcebd53640978d" + }, + "src/shim/shim.cfg.l4control": { + "mode": 420, + "sha256": "ab13b7e3604ee98e9372e3405e0eacb6d5965e02d5317cfee0ea9b9afbd750e3" + }, + "src/shim/shim.cfg.l4dump": { + "mode": 420, + "sha256": "fb40d67d8d7dca4587a1dc13a95826ab68eb3fcf44feb6006388935f3ee346f2" + }, + "src/shim/shim.cfg.l4off": { + "mode": 420, + "sha256": "629a3e41d11daa53325f31aeb77d14d5abe67058e274d36ed8feb71e2e30dc13" + }, + "src/shim/shim.cfg.l4probes": { + "mode": 420, + "sha256": "a446ff3d6117d5352ad9b3c3c02f6d6300ce0b1089f055925afe19b77f0a20f3" + }, + "src/shim/shim.cfg.l4research": { + "mode": 420, + "sha256": "ad400f7082680db82c6fb0d39eed488710e6661f9e3215b9ea2eb0ba53444b9b" + }, + "src/shim/shim.cfg.l5budget": { + "mode": 420, + "sha256": "74df0fa1bd14fec6e8028ba05c516f3a370ba389386e5a8459d594c2c7ad83ae" + }, + "src/shim/shim.cfg.l5control": { + "mode": 420, + "sha256": "3557f716dde348a98fda65a5bad54911fe6d52f75c2cf6a82cc5d4fc47a6e968" + }, + "src/shim/shim.cfg.output": { + "mode": 420, + "sha256": "a811cffac230a1d6c0f9c5adacb1b691ae289ec08de0da3726309a4e1213acb0" + }, + "src/shim/shim.cfg.parbr": { + "mode": 420, + "sha256": "ea8230b596e7baae0c127f5700391ec2c96d546daba8c70ce8b2800c83b096dd" + }, + "src/shim/shim.cfg.parctl": { + "mode": 420, + "sha256": "2d1190d032bb705030746197020c715f4ab8af551f944e9ec0abe136912ea60d" + }, + "src/shim/shim.cfg.parorders": { + "mode": 420, + "sha256": "2107be5ec950e69d01c43ab30919fbfe652823878f150111b158927bc41de8d6" + }, + "src/shim/shim.cfg.parpin": { + "mode": 420, + "sha256": "893f1f81cdef0a964145ebb1c4b1e2725af8868b14fed412d40e3cce71f824f4" + }, + "src/shim/shim.cfg.recapb1": { + "mode": 420, + "sha256": "688840567305218dada122b29284f6af44c3c63ca173db87406de159bb547c8f" + }, + "src/shim/shim.cfg.recapb3": { + "mode": 420, + "sha256": "2120646255bd70adf29ed2880daa6b11d0867b9cfc9f1c9644d63b92c263b69b" + }, + "src/shim/shim.cfg.recapmisc": { + "mode": 420, + "sha256": "cb1f794c51b5d3d74eb91cc084c96a04444cd79f22fc694d821b51924544f595" + }, + "src/shim/shim.cfg.recaptrace": { + "mode": 420, + "sha256": "0ae410cc72fe155837d711c78543e14b1f5743310cd023298eb1e5bbd5457e71" + }, + "src/shim/shim.cfg.sdbr": { + "mode": 420, + "sha256": "7cb2bfd798ed1286628f3a879606eff076c4f6011d95e1223376eb4d0a392ca8" + }, + "src/shim/shim.cfg.sdoff": { + "mode": 420, + "sha256": "9195aeddeb2caa4e3db7dfd775c43e96eb99cfdc59a6a61e65d86fb325f0054a" + }, + "src/shim/shim.cfg.sdpin": { + "mode": 420, + "sha256": "61119f197b1dc8ddcad059d2d2c2753dae457b4bda4eb29e06c78282eeda6a0b" + }, + "src/shim/shim.cfg.sdpin2": { + "mode": 420, + "sha256": "d6d7f82b500df4f3ed120b4ff421178cf4373a145fa803e57d22a0654e4f0f63" + }, + "src/shim/shim.cfg.tturn": { + "mode": 420, + "sha256": "2ab2d64288043c3c55fde668facde9307c0739e0c801c900790e11db57c5759b" + }, + "src/shim/shim.cfg.tturncmp": { + "mode": 420, + "sha256": "114d325ae3ece29422069ee74c790603abb38c49162dd32520a3eecd18ab6061" + }, + "src/shim/shim.cfg.w2control": { + "mode": 420, + "sha256": "d042c0082a8eb4f55b8e21983df292f0950adc4ac5787d4a0b83088c10c5a3eb" + }, + "src/shim/shim.cfg.w2watch": { + "mode": 420, + "sha256": "ddb9c18a1c6b6c23758e51ca9ac18b4b95abe206b162497adc2978c0384d6ee5" + }, + "src/shim/shim.cfg.w3control": { + "mode": 420, + "sha256": "c6a3a5ea1e39a0714dffee0e44a0e8d91a2b450534d7e4377273a55b3e87de8c" + }, + "src/shim/shim.cfg.w3mod": { + "mode": 420, + "sha256": "7c7f82aaa8b5b007a740324373060ca2ba84edc765eb4e7ce55afcaba4e1c2e0" + }, + "src/shim/shim.cfg.w3tshn": { + "mode": 420, + "sha256": "51fa826d0b18d6f01987d6748e6610847ec3a761257ffc382a40d234670afec3" + }, + "src/shim/shim.cfg.zledger": { + "mode": 420, + "sha256": "31d0535aff9660eb1ad06f529c88a42aa71b83b36f8404b7541a29327c508a51" + }, + "src/shim/trace/emitter.cpp": { + "mode": 420, + "sha256": "4253cac49f0761e487fd555c3c01e02fa22e2010789ad3af37c62c8fd2e02030" + }, + "src/shim/trace/emitter.h": { + "mode": 420, + "sha256": "aa7804614b3d3a214d5c32c33ed245ae24276979080baa9d5481d6594ee3f79d" + }, + "src/shim/trace/hook.h": { + "mode": 420, + "sha256": "35be73ac1c9519664957ffea639d873e8a811b4620f0feecb21b54ea2776f800" + }, + "src/shim/trace/platform.h": { + "mode": 420, + "sha256": "f1b78d971798e45998b26c6b0e20db49fceb7d4c63f0c8c37452c6c2c6df9538" + }, + "src/shim/trace/selftest.cpp": { + "mode": 420, + "sha256": "31461ae6d329a8a3856589b245f3bcf8631f0db9a5e00530e4f94279950de354" + }, + "src/shim/trace/selftest.h": { + "mode": 420, + "sha256": "583d7a10ef04254c7a0fb7dd2a6071ad012a9a97dfae0896bbd598970b206475" + }, + "src/shim/trace/sha256.cpp": { + "mode": 420, + "sha256": "2faf44b5b273612c776204c1d83e0910d86394f4f6207129a01c81dedc170aa8" + }, + "src/shim/trace/sha256.h": { + "mode": 420, + "sha256": "31ce080acdc086ff7657d9093ac9bea438203eaa8e392ca38539152cdd15038f" + }, + "src/shim/trace/tracer.cpp": { + "mode": 420, + "sha256": "37d9490dbdedc399ecdb30f46eb27f31a4ff8c902eadb2eb48ecca7fb0e8fb88" + }, + "src/shim/trace/tracer.h": { + "mode": 420, + "sha256": "cbb80f167b8f98777f9fb58ce107226f42027ffdbd868a6808047c48caf10f76" + }, + "tests/addr_smoke.cpp": { + "mode": 420, + "sha256": "ace1ab9549bb6f3e0048d0e6e3ec6061035395581b2db46c0a5acb097c428890" + }, + "tests/app/CMakeLists.txt": { + "mode": 420, + "sha256": "dd18f8e25d2a9ce988dc226e03c7c6e02a275bbbea74f505d005e42ca5972037" + }, + "tests/app/test_alliance.cpp": { + "mode": 420, + "sha256": "671b2cb3295f360c61ee87005287999710d12e10e7e532331c1c946ab97f7c4d" + }, + "tests/app/test_catalog.cpp": { + "mode": 420, + "sha256": "c4cd9840c1f1b5d5a6829f7f1c5a0245b5e66135d3bed6410a2b6eca1a037225" + }, + "tests/app/test_command_replay.cpp": { + "mode": 420, + "sha256": "739ebeea5bed551f232774bc812bcb794cfa057015fd187529fa563b5d7ae5eb" + }, + "tests/app/test_event_phase.cpp": { + "mode": 420, + "sha256": "05498df256759fe5b8af80e9e56c2ca071eb26de0651f257798fe1641da627ca" + }, + "tests/app/test_trade_raid.cpp": { + "mode": 420, + "sha256": "2158008bc711b8062381f346fa347a430582d8d1943b0de5f40eb2a38e9a3f75" + }, + "tests/app/test_treaty.cpp": { + "mode": 420, + "sha256": "0f98150a3f9397fd12109eae7359ff7e04a4060e10e01ecf1693eb2a4606ead7" + }, + "tests/app/test_turn.cpp": { + "mode": 420, + "sha256": "6d45b1d2d065528f14ae83d95314f2b6559e53cc23f1b9e2531c7c09b4b97eab" + }, + "tests/app/test_turn_record.cpp": { + "mode": 420, + "sha256": "a845971b8d25d71c3b1138495354ad392e4fc298f87eb9b89d1567c01ab59cde" + }, + "tests/game_ai/CMakeLists.txt": { + "mode": 420, + "sha256": "a57a82d0c79ff933564e200a5b3137f120e70a19834264eeb2438c4cafd7ad3e" + }, + "tests/game_ai/test_agent.cpp": { + "mode": 420, + "sha256": "41cb3fbfc7e0b277771a2e8dd17601285a1e3a911543fc1335ce05a4e4b5f11c" + }, + "tests/game_ai/test_apply_order.cpp": { + "mode": 420, + "sha256": "8669c2e9a4c95b670a9c41262c68ce183d3cf3900bc262e0a2e33500bfffc594" + }, + "tests/game_ai/test_command_capture.cpp": { + "mode": 420, + "sha256": "8c2bae38754b347beeefe85d796c13bcf43cf5bc9bc99eb743626028b4dbd7ab" + }, + "tests/game_ai/test_live_blocks.cpp": { + "mode": 420, + "sha256": "44cb6bd8b34c13e329f9b1d50bb2a5c5513e52761537dccfb01afb7d48be7580" + }, + "tests/game_ai/test_orders.cpp": { + "mode": 420, + "sha256": "b13d1a3a628de411abb4faf024a1ce8d3e94518f12285bb3d7e7e86b012ad43f" + }, + "tests/game_ai/test_tasks.cpp": { + "mode": 420, + "sha256": "ffd8eed7fa76a24616d579a4e31031dadf43a0534e33743fb104dfca552367fc" + }, + "tests/game_ai/test_turn_order.cpp": { + "mode": 420, + "sha256": "382d6a30e9151c57849595cb134b8e2da25d2763738c9cbfa18d3cad51ecce97" + }, + "tests/game_combat/CMakeLists.txt": { + "mode": 420, + "sha256": "fd0c0dfb54033353b7014e3c764c916522cb529b6b3eae8a8d52afd044c13fe2" + }, + "tests/game_combat/test_retreat.cpp": { + "mode": 420, + "sha256": "3fb0be08d230bbd7c4ea4a59319de7ab252e5b7cbee924afd069847da8dcf73d" + }, + "tests/game_config/CMakeLists.txt": { + "mode": 420, + "sha256": "9874822d186e783f25b2dcd87495e7e380d873b8a0790c67fffb9430468094ed" + }, + "tests/game_config/manifest_tests.cpp": { + "mode": 420, + "sha256": "3bc62e7e49699254151a825421973d831b25bcf7a22028c789e3ca63b0d77319" + }, + "tests/game_config/replay_trace.cpp": { + "mode": 420, + "sha256": "83602ec974b8195c3616230ad44c2d4fd6032f8ef5f96e7aa76d49a0a04ac05e" + }, + "tests/game_config/unit_tests.cpp": { + "mode": 420, + "sha256": "45b07c7289abac61fccd0a6cd0ff87812542ec888eb6d295fb87c3f57755cc6a" + }, + "tests/game_data/CMakeLists.txt": { + "mode": 420, + "sha256": "cb8cffb7217e82077d3db749dcacf29c098549159cc0f312ef04bfccaa30155d" + }, + "tests/game_data/build_and_run.sh": { + "mode": 493, + "sha256": "69ea9cb94468c56c329fcc5b9350431067e97091ed47c08bb10b57b38412883a" + }, + "tests/game_data/dump_catalog.cpp": { + "mode": 420, + "sha256": "4588e699c69586dfb77f0d9289e375407d4f9cf019690e26bfc78f7182167c89" + }, + "tests/game_data/oracle/compare.py": { + "mode": 420, + "sha256": "2cfe1ac93790de3351256d284392372721f94de5375686e6301ef39b1943ad12" + }, + "tests/game_data/realdata_test.cpp": { + "mode": 420, + "sha256": "334a924bf81c6ce6192a6688435b374e115382358f7e4554aa164295bdd38321" + }, + "tests/game_data/test_catalog.cpp": { + "mode": 420, + "sha256": "9ea5c3fff2388c5d7fbf295123dfd7b702ef21f17fc7c45a970822814abfce2e" + }, + "tests/game_data/test_main.cpp": { + "mode": 420, + "sha256": "e808f3e2054894da5481d549d93cc837daff61c7b049691f6e2ee453cec53389" + }, + "tests/game_data/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/game_data/test_shipsection.cpp": { + "mode": 420, + "sha256": "b3519f0de60d061a6f1ab8ee81d470a28fc17cc81b113639ef2c1e139c249b4c" + }, + "tests/game_data/test_techtree.cpp": { + "mode": 420, + "sha256": "d05c889da9edb622bd2b66aa8e300d8162e0c8788950daa1086fc049b90dd4bc" + }, + "tests/game_data/test_turrets.cpp": { + "mode": 420, + "sha256": "66adff30b974e9bf2c96c1af024fb85677e1a8307c801933d23f3d2ec9d8222c" + }, + "tests/game_data/test_weapon.cpp": { + "mode": 420, + "sha256": "b16b0481c0a8697ff16e39c9feb3ad9d5406250b7dd1c828bf12f1bb40ed746b" + }, + "tests/game_design/CMakeLists.txt": { + "mode": 420, + "sha256": "a26524ff14878564870853bc067c379d2ebd26c14e45bcbb06593d300ee4b3ca" + }, + "tests/game_design/build_and_run.sh": { + "mode": 493, + "sha256": "b1aab4d13b09fb1ea4205978bd7d8b05af5a6422ebe4a34261c3247489b48bd7" + }, + "tests/game_design/dump_designs.cpp": { + "mode": 420, + "sha256": "b1b24c5cb534ad821a20325869713c04b742c541c448ade83543d75608f7eda2" + }, + "tests/game_design/json_min.h": { + "mode": 420, + "sha256": "9cfd3eabe9b36d6b2863872e08fe6ebaddf0749d1966dea693f8bbc0472780ac" + }, + "tests/game_design/mini_catalog.cpp": { + "mode": 420, + "sha256": "5817c0251883c999c6ebd54c77fdcf3981181b41fb5f7637d445824d60942810" + }, + "tests/game_design/mini_catalog.h": { + "mode": 420, + "sha256": "ecb7fd0dffa8709008bcdf9b9da3e70e68f735f9b5ecd0dcb4c871a35ae43b59" + }, + "tests/game_design/oracle/compare.py": { + "mode": 420, + "sha256": "2db14952f7fca9a587995e326651b0d549b39ceefd9c0ac59982cd35ae5d21e7" + }, + "tests/game_design/realdata_test.cpp": { + "mode": 420, + "sha256": "cea57cd53d881b3bf2557cc32ea402c4991aa6de5ff72340861f195a8e20c141" + }, + "tests/game_design/stock_designs.cpp": { + "mode": 420, + "sha256": "2ac1b8bcb0f61852f4bc0a8b7cda51167531ca2a05d1e485991a4758cf586d03" + }, + "tests/game_design/stock_designs.h": { + "mode": 420, + "sha256": "a49173bde083467f5650cfbfbaebba5f16208d660fe7f2f3da81c2caff07c807" + }, + "tests/game_design/test_banks.cpp": { + "mode": 420, + "sha256": "c1d34991c53523cb7610a569e861e8a312da1fe659de0522a3594fb14cad24a6" + }, + "tests/game_design/test_census_saves.cpp": { + "mode": 420, + "sha256": "814c17c7a14db7b123579b7636ee7f2b720fdf4a5cbbe90f676dc01709c45e3b" + }, + "tests/game_design/test_hull.cpp": { + "mode": 420, + "sha256": "cff70268d58ab95ed963d335904110ab55c79d6a0f660f613409cf6d5d63e2bd" + }, + "tests/game_design/test_json.cpp": { + "mode": 420, + "sha256": "e7fa196274a4591834a974f742ff59c7ed1fb15fb138091b48a071354d001c5d" + }, + "tests/game_design/test_main.cpp": { + "mode": 420, + "sha256": "e808f3e2054894da5481d549d93cc837daff61c7b049691f6e2ee453cec53389" + }, + "tests/game_design/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/game_design/test_stats.cpp": { + "mode": 420, + "sha256": "a3681df901095b848cc6b1ae63d04fd70eeeadd406e7d51f3c76671cbf523a7a" + }, + "tests/game_design/test_structure.cpp": { + "mode": 420, + "sha256": "d09f7707ee170f8a933c657628c1da4f61a29c7eb2dc687a96c3985bdac941aa" + }, + "tests/game_design/test_tech.cpp": { + "mode": 420, + "sha256": "689c081a324c7ece3f70d711f7ac67a5b93207f95e2800a3a708f2f8dbe31965" + }, + "tests/game_effects/CMakeLists.txt": { + "mode": 420, + "sha256": "c80413a7103ce0ed7944fb096ad22fc206a091645428a6015ec3d0e442414a0a" + }, + "tests/game_effects/build_and_run.sh": { + "mode": 493, + "sha256": "ab5085eeab0ec65d8f7ddd7d79357cd15183888b1b4e51cb563810d4e4c64506" + }, + "tests/game_effects/test_effects.cpp": { + "mode": 420, + "sha256": "b10d804b1ad4fb140e13cc1984c6372dbbfdd92560f37583f2411bbcb45c16d4" + }, + "tests/game_events/CMakeLists.txt": { + "mode": 420, + "sha256": "c962651d71ee7783d5565b418f653f2954e489cf698762c5686f5f2dbb4304db" + }, + "tests/game_events/build_and_run.sh": { + "mode": 493, + "sha256": "8b92d249138ee53f728583a0c68b153eaf4e2ad7f92d415d8b3a83df2fb3ec28" + }, + "tests/game_events/test_events.cpp": { + "mode": 420, + "sha256": "182941b9b809b20d24a2e29c5e4bbd626e6da8486e87dc38d1c6088161ec793b" + }, + "tests/game_nav/CMakeLists.txt": { + "mode": 420, + "sha256": "7ee85557a167281f4576252428b4e01795232f31dc1d93c23b284568074cec3b" + }, + "tests/game_nav/test_pathplan.cpp": { + "mode": 420, + "sha256": "6229cc2b1be1ffffb3fbb812c2ccc89dba7099d349be3a6f8f2c2e26aa1dd58d" + }, + "tests/game_sim/CMakeLists.txt": { + "mode": 420, + "sha256": "563547cdd93bce41ef29a73289e5104a5df61f71cc980e49ea37cdbe26743be7" + }, + "tests/game_sim/build_and_run.sh": { + "mode": 493, + "sha256": "a9c42a931242c7f266f512b4d4ad11f6f8ecf43a447a06a04f174301ee19328a" + }, + "tests/game_sim/check.h": { + "mode": 420, + "sha256": "faddddc37a528f0235f510b249cfc1776ce30aff709329954f09093b01231221" + }, + "tests/game_sim/mini_json.h": { + "mode": 420, + "sha256": "710218b637aaf1a5eb7c49eaa7d158bc3e495135ec14bf8b41384769d0227ba5" + }, + "tests/game_sim/smoke_real_save.cpp": { + "mode": 420, + "sha256": "2432e92ac18fadfb1152c54d9dec9a77b3dbf506ea122401cbbd48584b7c9190" + }, + "tests/game_sim/test_colony.cpp": { + "mode": 420, + "sha256": "45355673c46cbaef66b2c81d04a845cf65b6ddfd9819350c7338d9771fafb6fe" + }, + "tests/game_sim/test_construction.cpp": { + "mode": 420, + "sha256": "8df75076a3f460e949e34100d55acf60b054603da6d4aeda4f73297442c06e21" + }, + "tests/game_sim/test_economy.cpp": { + "mode": 420, + "sha256": "43fe658fd2347e3667a901afa642713d70c85ef0ec75094642da2d05b9ca471b" + }, + "tests/game_sim/test_movement.cpp": { + "mode": 420, + "sha256": "1927c371d52115458d88552014cef30bba60e9bef5eb3acfce11b2bc623e06a6" + }, + "tests/game_sim/test_observed.cpp": { + "mode": 420, + "sha256": "1f6ad16c1a2c80f0621573b5196989b0349e47351585d83835be5e27f6ef3fe4" + }, + "tests/game_sim/test_player_turn.cpp": { + "mode": 420, + "sha256": "13f76eaa6cad265deec25416acf0cae2028d6cd1c7b9585df6e9252ba3f0cbed" + }, + "tests/game_sim/test_research.cpp": { + "mode": 420, + "sha256": "3dc668eb889c41f58db6007a96f54fe2a6d56ee6501a298fba3afbbe9637baf6" + }, + "tests/game_sim/test_scriptobjects.cpp": { + "mode": 420, + "sha256": "dfe90a42bcd2844c2ea3666816f97c05237206bf44467ac29790c72b7b498582" + }, + "tests/game_sim/test_techgraph.cpp": { + "mode": 420, + "sha256": "0627ea1c8012b90b62285cae2f31599ba8a8cd47928452910ade91f93502d68e" + }, + "tests/game_sim/test_visibility.cpp": { + "mode": 420, + "sha256": "ad756975b6605a164f2f9106daf2511730642eff354a866bc764a93a4be1efe7" + }, + "tests/mars_parse/.gitignore": { + "mode": 420, + "sha256": "181314065df2f2fdaf920b1a8b5311daa216a2d6489a06ada5b49cc514d89417" + }, + "tests/mars_parse/CMakeLists.txt": { + "mode": 420, + "sha256": "898204fbc1cec44f697e2803c8bc4887857950ba2b1192dd153de74d26de0ea4" + }, + "tests/mars_parse/build_and_run.sh": { + "mode": 493, + "sha256": "550c6df5fffbd85cfffc3312a03a5fa9d59c1e0416e883ddc2576cdb73eac6de" + }, + "tests/mars_parse/canon.cpp": { + "mode": 420, + "sha256": "63e2bcfb2820e7533aa3a287bcec6c318f7238006dce61ad35381562b979cd47" + }, + "tests/mars_parse/canon.h": { + "mode": 420, + "sha256": "c9a78b866d62c4e58643de2c4149572380a1392b411049c8fe74e37475d21d9e" + }, + "tests/mars_parse/oracle/dump.py": { + "mode": 420, + "sha256": "16e98089d5b532e35d6b88b3d50b4bb07e879c18512cf8d06cc5fd2aa9da1117" + }, + "tests/mars_parse/oracle_check.cpp": { + "mode": 420, + "sha256": "5eb81a0c2db8f96c6f8e51246ea9991642e5571dd94dd2e410e2fad632d47adb" + }, + "tests/mars_parse/test_blocks.cpp": { + "mode": 420, + "sha256": "f376a57891a83768ecc8b73ef5eb2333291c280760f7581ead53f7c2a71a4df5" + }, + "tests/mars_parse/test_effect.cpp": { + "mode": 420, + "sha256": "8bb14e7c718e772bfb4a22a7370f41080c49beabfa597ddd603be257bc310011" + }, + "tests/mars_parse/test_main.cpp": { + "mode": 420, + "sha256": "e808f3e2054894da5481d549d93cc837daff61c7b049691f6e2ee453cec53389" + }, + "tests/mars_parse/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/mars_parse/test_value.cpp": { + "mode": 420, + "sha256": "a8dbe3326e5339cdad8fed7dd678df92e8a8b675d0b854f4cea6517bf557069d" + }, + "tests/mars_stream/CMakeLists.txt": { + "mode": 420, + "sha256": "31c69840e6e2e566d2e0bbaf49ab3dec712d27e505d0810ddf0496ce3ff321e0" + }, + "tests/mars_stream/build_and_run.sh": { + "mode": 493, + "sha256": "3737e42960b66e788a11cdd7fa9917fe255b6a4f60280e9f620593bf688aab41" + }, + "tests/mars_stream/oracle/compare.py": { + "mode": 493, + "sha256": "f39dd70e4bbf1952cf99e3437fd1ed6252249f3455a2d3c73311f98d8ff4370e" + }, + "tests/mars_stream/test_domains.cpp": { + "mode": 420, + "sha256": "08394777f7bc4186883cd02058f17fda8f47c3ee47049892bd8762c28b5aa959" + }, + "tests/mars_stream/test_rng.cpp": { + "mode": 420, + "sha256": "55f77273d8af5880f976a24fb00dcd8042b31a7a33f15c9f4b62fdb85bba9d0a" + }, + "tests/mars_stream/test_save.cpp": { + "mode": 420, + "sha256": "50250bb4b4f2da05f9453c541f080e018b68731f24cbf93278d50ca93ddd8d63" + }, + "tests/mars_stream/test_stream.cpp": { + "mode": 420, + "sha256": "d0da9ac2287910527bdac875ab39e0147a9be2f5535f04b55460438f31be2537" + }, + "tests/mars_stream/test_wire_schema.cpp": { + "mode": 420, + "sha256": "1cfd259f554be8218cb182dd1facc07f6cd3dea52f0daf7303393e78c7c2eb97" + }, + "tests/mars_text/.gitignore": { + "mode": 420, + "sha256": "181314065df2f2fdaf920b1a8b5311daa216a2d6489a06ada5b49cc514d89417" + }, + "tests/mars_text/CMakeLists.txt": { + "mode": 420, + "sha256": "20f8e0cfa044fb4e6b1caca0ec8d6536e012c1c4ea4454fe990923f40a201752" + }, + "tests/mars_text/build_and_run.sh": { + "mode": 493, + "sha256": "59ae392080c01be0c7f5530ecb9ae4fbdcc02366242b27527c14b8efd5076d0c" + }, + "tests/mars_text/dump_json.cpp": { + "mode": 420, + "sha256": "e246384902c3adf4fa8f2a54e38c4912f6b58f168ebc9b1e158a719e2a52b1bc" + }, + "tests/mars_text/oracle/compare.py": { + "mode": 493, + "sha256": "46a796196a413aa28a0069086e45c96399f21308153b578f063801eb997b54ef" + }, + "tests/mars_text/oracle/dump.py": { + "mode": 493, + "sha256": "53fde94f6676a5504a247cf209e2a42d67e108cc9ea0b02f289562799ee7d880" + }, + "tests/mars_text/realdata_test.cpp": { + "mode": 420, + "sha256": "a399ad5cf91cf35f78809f5b9b5cac8b2eff344dbfbab07b8b27bf66058e1e3b" + }, + "tests/mars_text/unit_tests.cpp": { + "mode": 420, + "sha256": "cd1e9e4f6e0e503d4d9b0902bd2936513293490cdc680f94639ce93661ca09d7" + }, + "tests/mars_vfs/CMakeLists.txt": { + "mode": 420, + "sha256": "282015598e03430be0f47b779ce7087662415b3a59de14814cb3ba35c17af363" + }, + "tests/mars_vfs/build_and_run.sh": { + "mode": 493, + "sha256": "b6a8e7b0706d7416f548f071e742e600cab226663f7d4ad42299dbb76f631701" + }, + "tests/mars_vfs/make_fixture.py": { + "mode": 493, + "sha256": "57586249e57550869dd5adfbc4fdab173a59d2aee630ba69c20d562018d249f1" + }, + "tests/mars_vfs/realdata_test.cpp": { + "mode": 420, + "sha256": "c95248ae53d32bd5d8cf963ca3a39ea82e5ef08b76de736104b6aa34ec88c789" + }, + "tests/mars_vfs/test_main.cpp": { + "mode": 420, + "sha256": "cdb7bdf9b9356eb0b7f6cb0fab081cda2161b34af14ecf60cc44970e79d517c2" + }, + "tests/mars_vfs/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/mars_vfs/unit_tests.cpp": { + "mode": 420, + "sha256": "de8da00718799886fbbc5820e0f7d0e468a31ab0608361fb509b0c12932c9caf" + }, + "tests/mars_vfs/vfs_cat.cpp": { + "mode": 420, + "sha256": "4a443e779de264f5c0c68a631b1a353b1310a4e838d342527befd8ad1e2a25bd" + }, + "tests/mars_vfs/zip_builder.h": { + "mode": 420, + "sha256": "a0f3688e5a90b7e209497d66d0dcd30a0e1ac59a56ffcbed31b2a50967c1da3a" + }, + "tests/shim_budget/CMakeLists.txt": { + "mode": 420, + "sha256": "88a0f43e433c3a6879a7f6cccf8c84ba4559009614a3fe5adf6c558ea7a47245" + }, + "tests/shim_budget/unit_tests.cpp": { + "mode": 420, + "sha256": "654e96d0880232d3090223a0d9f92f428aeffa528fbd5eca89d6bfe348aefce0" + }, + "tests/shim_colony/CMakeLists.txt": { + "mode": 420, + "sha256": "d7b2674971b0eda32b2edd62244c32af81cea9e6d984a24ca6648edbaea80e06" + }, + "tests/shim_colony/unit_tests.cpp": { + "mode": 420, + "sha256": "4cc41308c10fa1e6aa047fb6c26e4c655b727884bce87b5a9e8e2f76db665474" + }, + "tests/shim_events/CMakeLists.txt": { + "mode": 420, + "sha256": "2b43190a2ce88cf7227250aa5a3b48e3006d24f0d6f5e9a5e48507c2733e4c45" + }, + "tests/shim_events/unit_tests.cpp": { + "mode": 420, + "sha256": "0dc151a4aecb24217cc38cb818bbe760b3da2b08a23ad734b3fa8506d25fe2b4" + }, + "tests/shim_movement/CMakeLists.txt": { + "mode": 420, + "sha256": "46ffe5a9815b189283e4d5ef67a0dcd159f60da7f9ca4a3577669035fefdc1f8" + }, + "tests/shim_movement/unit_tests.cpp": { + "mode": 420, + "sha256": "ee6ee983aa72f078a7ae398ca5f828aba14370c898ae4e56063697d28919ad69" + }, + "tests/shim_player_turn/CMakeLists.txt": { + "mode": 420, + "sha256": "f6affa205f857d4a45f8be05ae0426b6f9a2e8e127f5aeadbac2ed8a4c4daddc" + }, + "tests/shim_player_turn/unit_tests.cpp": { + "mode": 420, + "sha256": "0a528cdf64904dfd22c94ea911a15213701e7912921f04c1909799e6e6240450" + }, + "tests/shim_rng_ledger/CMakeLists.txt": { + "mode": 420, + "sha256": "b6a349f2611ec1f1de2013145a97f3da59cefec81dbc4d2f3e58af507e598bb4" + }, + "tests/shim_rng_ledger/unit_tests.cpp": { + "mode": 420, + "sha256": "d38d80dd907a3468036dbca2b017718b199ab4a0078eb5e5b019b913a9ef8d8c" + }, + "tests/shim_techfx/CMakeLists.txt": { + "mode": 420, + "sha256": "5eaf9a76df6b10258a8c1d2658b03d97377d48a778a1628ca94c9bd69fa7ba8a" + }, + "tests/shim_techfx/unit_tests.cpp": { + "mode": 420, + "sha256": "99a71a6d0ca1f53fc8ff0bc21e79acd64ba2cd9c9f990641e5970c866794595b" + }, + "tests/shim_trace/CMakeLists.txt": { + "mode": 420, + "sha256": "91bc736e198c5cef86ad2ad69ca77d93ab770e5faecf9e6d915f9263b9ce491b" + }, + "tests/shim_trace/check.h": { + "mode": 420, + "sha256": "f4b72b971886c64383880ba26484f9c908d21f5902dff0de0b42f276b00d8366" + }, + "tests/shim_trace/harness.h": { + "mode": 420, + "sha256": "d7eae563723843c1389b108fe2efb2e31b6c264d23567a370a09fb9b1d513697" + }, + "tests/shim_trace/oracle_emit.py": { + "mode": 420, + "sha256": "29ed06c602e9f0d6430bb3c81192b1946213a3f44b91107f7036f35f17b69f42" + }, + "tests/shim_trace/test_coverage.cpp": { + "mode": 420, + "sha256": "8ed5b6d755fe7e2bc98d525e97bc7817a5efb7ed5f0196d49d1c783de3a91bea" + }, + "tests/shim_trace/test_diff.cpp": { + "mode": 420, + "sha256": "afd8e5124cf6e1ad9c4f3e4c2beeb65d00002cf1d4cbaa2e876fea0817a7a347" + }, + "tests/shim_trace/test_emitter.cpp": { + "mode": 420, + "sha256": "a9255bbc055df36a01931e8a61dd1dbf16085f7713db7e7386f66b69ddb10762" + }, + "tests/shim_trace/test_hook.cpp": { + "mode": 420, + "sha256": "4dd67374e260ba2722219c2e44e6be76e583d0ad65844f34859cff49b66a30cc" + }, + "tests/shim_trace/test_sha256.cpp": { + "mode": 420, + "sha256": "b55aa15dc806e3e4a87ddf50657fa4e0af6a4e4e2205c4bd63d1ae066fe57428" + }, + "third_party/minhook/LICENSE.txt": { + "mode": 420, + "sha256": "d5c2224982b0b95a16b098a561335fa93f3eaf4d0aa964b7843edb986df78dc8" + }, + "third_party/minhook/VENDOR.txt": { + "mode": 420, + "sha256": "c79054234a5340f6199f8d9f47d6b3d88e8abd2120586cd78f081cfb81a6fabd" + }, + "third_party/minhook/include/MinHook.h": { + "mode": 420, + "sha256": "e34bbf7b855c842694f6e3dd78e2d280e99ed9732501e3dc1532a8626a8db8e5" + }, + "third_party/minhook/src/buffer.c": { + "mode": 420, + "sha256": "75a789eb718bd5ed2de039ccd330736a31d0a2d14e43d8e15e6cd2332432482d" + }, + "third_party/minhook/src/buffer.h": { + "mode": 420, + "sha256": "9769702bd625249e59a19ede05c84365fcc7707e1fa0e5df08df42227cee13e3" + }, + "third_party/minhook/src/hde/hde32.c": { + "mode": 420, + "sha256": "0ddbc3ab3e0b37e61691131289a151e34f508233ccf3f701752777e5d3f62d68" + }, + "third_party/minhook/src/hde/hde32.h": { + "mode": 420, + "sha256": "5132de5be8ac7a9d054420f5caef0fb01437faa892f03b3cdc77f795973bf15a" + }, + "third_party/minhook/src/hde/hde64.c": { + "mode": 420, + "sha256": "9bf19dd706d4bc255ebd1709f98fb44899df7a1f2412820d77295136e0620f1d" + }, + "third_party/minhook/src/hde/hde64.h": { + "mode": 420, + "sha256": "e99aa4997bda14b534c614c3d8cb78a72c4aca91a1212c8b03ec605d1d75e36e" + }, + "third_party/minhook/src/hde/pstdint.h": { + "mode": 420, + "sha256": "604d1cdf45c5a95bc9cf1bbf39ca05ef83013541101d34971c5cd7577e3d5247" + }, + "third_party/minhook/src/hde/table32.h": { + "mode": 420, + "sha256": "43bf687a9fff071b5f46070db4d36c846f8e069cdc57485ee897c499aacdde23" + }, + "third_party/minhook/src/hde/table64.h": { + "mode": 420, + "sha256": "b774446d2f110ce954fb0a710f4693c5562ddbd8d56fe84106f2ee80db8b50a2" + }, + "third_party/minhook/src/hook.c": { + "mode": 420, + "sha256": "3060d3c42f03a2f11324cbee95d853071757ed0fe4b1bc9eb5f0d8fc9e346a37" + }, + "third_party/minhook/src/trampoline.c": { + "mode": 420, + "sha256": "d837f8555681c3762468d712c43f2064ed31dee610e0b02965fd8aa54b88172f" + }, + "third_party/minhook/src/trampoline.h": { + "mode": 420, + "sha256": "27426751dde36cdd8346469e61cdcca47950b1056a69f21cc63f4b41743faf6a" + }, + "third_party/miniz/ChangeLog.md": { + "mode": 420, + "sha256": "ff3b6040f7cbd8c9779a0690e906c66408f7efe3cf88a25019323f0189025ec3" + }, + "third_party/miniz/LICENSE": { + "mode": 420, + "sha256": "0115478d567121238cf6cc1c0c361926cf07a49d9e4c9e66da97fac6a01646b3" + }, + "third_party/miniz/miniz.c": { + "mode": 420, + "sha256": "e2c1aeb66eef9191d8c3feb164db2def2335a61d039bf04ed849f6b042433b30" + }, + "third_party/miniz/miniz.h": { + "mode": 420, + "sha256": "b53b62ed122e559b8f679e3cb787a0b0035fe87a58f909da0e44931678f4e85f" + }, + "third_party/miniz/readme.md": { + "mode": 420, + "sha256": "b4ea367be28a36e5386f65118b73962bc659a67936d248be68b7a7c03b8d359b" + }, + "tools/build-shim.sh": { + "mode": 493, + "sha256": "1da3fdcc019dc6495c870a42b93cee9f21ff7f9623f033c2f50d9db9fd6a33e0" + }, + "tools/check_shim_configs.py": { + "mode": 420, + "sha256": "ef5e8f100c06d8c485a165ab668206af3e9aed3e1f6aa6ffec2592419fc2332f" + }, + "tools/clean_room_check.py": { + "mode": 420, + "sha256": "e15bc3ebfd29c6e2d8edfc32cc812858869b49ffa1404cafce14c4c24e0f4e24" + }, + "tools/clean_room_check.sh": { + "mode": 420, + "sha256": "6646eb6010be756113f7af39b9cfcb06e8580893fbd100a41993f87757ccfd6a" + }, + "tools/deploy.ps1": { + "mode": 420, + "sha256": "fe01f46bedc91d7b42ff98cb0e69633845094cc2802108d23d48eb70f32e3f27" + }, + "tools/sync-build.sh": { + "mode": 493, + "sha256": "ce418ace6c5edae8609849233bb5dfd24657f55141c8ef8507659608f12aee2d" + }, + "tools/undeploy.ps1": { + "mode": 420, + "sha256": "5730b6f95f161ba5a727dc0a34f26da7f1f697711495d6a9de9c289ecd747af0" + } + }, + "manifest_sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd", + "path": "/tmp/opencode/sots-final-research-engine" + }, + "re": { + "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", + "files": { + ".gitignore": { + "mode": 420, + "sha256": "ba56b745b84c6d15b7288df65f319831fed3cbf8edd1ab3a6476418f48fd95f8" + }, + "AGENTS.md": { + "mode": 420, + "sha256": "e722b65480a9f72c2fde1c677c789d4f4b347ef9b450894e9f4295035373df7a" + }, + "CLAUDE.md": { + "mode": 420, + "sha256": "b3e3e5851645a05543e91f128eb6d349abdc6f22accfd997012526e4d35eaa8e" + }, + "README.md": { + "mode": 420, + "sha256": "e318014a84d03e53983cdb1e5b0310f372b959f659b91abc9214faf530544afc" + }, + "campaign/DASHBOARD.md": { + "mode": 420, + "sha256": "eb207987006a3a661bf05b24fc361e1dda74b7a7f42f4abf4a3788cb17a254e6" + }, + "campaign/README.md": { + "mode": 420, + "sha256": "dc702a81c2c664c07eb170f082deb65bc3ff24e2b80d892bb082c7c4feac64fd" + }, + "campaign/agents/analyst.md": { + "mode": 420, + "sha256": "895c41509016038b3f72c4a68608c4101511e69c5bf410e379286da1a6202952" + }, + "campaign/agents/implementer.md": { + "mode": 420, + "sha256": "eb5581051a92b3d2b9ddd947812b1c02ff6a0b5e7619e7674adc26701e9a3d91" + }, + "campaign/agents/lab.md": { + "mode": 420, + "sha256": "48f1765ebdcb2015e631ad91428f65735ff899e119134b652f70788ff2eae5b8" + }, + "campaign/agents/lead.md": { + "mode": 420, + "sha256": "7661bbfca972be50a52c735b7f15f5be740158542c3d0cdbdf9a6a2590c7f1ea" + }, + "campaign/agents/resolver.md": { + "mode": 420, + "sha256": "742c36dc8567669d462566d6121eed42fcff5bff34e8eff466e92249f7ca195f" + }, + "campaign/agents/verifier.md": { + "mode": 420, + "sha256": "e467fc644e4e37d631a7a4e35038d9d3d0498491f1d7811d61d99271ff345c6b" + }, + "campaign/backlog.md": { + "mode": 420, + "sha256": "a10edaae044e84ee4d26e7461b88e557112f572d60c57e0025171a53dd209a35" + }, + "campaign/board.md": { + "mode": 420, + "sha256": "040c12a20f5bf70b8e6a239efb205039d1ce00a805411ba194a12bde9f40c03e" + }, + "campaign/contract.schema.json": { + "mode": 420, + "sha256": "a2c76ec042ca097a57c3c05c1e519e392d498d387a31808c7d0f70482d43c201" + }, + "campaign/contracts/controls-bootstrap.json": { + "mode": 384, + "sha256": "2943d2281229c102dd612676428a9714510e540671c1e04dae3e6fa7ea1b56ab" + }, + "campaign/contracts/launcher-smoke.json": { + "mode": 384, + "sha256": "c0418dd22bafc321b2f800acaf574dca7956c37b239d789981b920d50ab36599" + }, + "campaign/contracts/research-completion-abi.json": { + "mode": 420, + "sha256": "a5cf5e4bbc5052aa13dc34b55ee65f2997f9342e0b01062e85ad2c16d99daf71" + }, + "campaign/contracts/research-replacement.json": { + "mode": 420, + "sha256": "1108d30bf7e28f30b2446014503fc3200a8b8198a8fab0b866b873a81bf7b8b9" + }, + "campaign/current.json": { + "mode": 384, + "sha256": "87661aaf5ddfbb872365dae8c531453a1e0cb7f91b3ada046be3e829d2555f77" + }, + "campaign/models.json": { + "mode": 420, + "sha256": "95f507237a8e4fcf14189da4aa102dfae1dbaa536d4d8db6bcbfc30162ac5443" + }, + "campaign/open-questions.md": { + "mode": 420, + "sha256": "efb1c736a07bff32e75e0eede20681c206e2c95f439dffe9824702cb864972e7" + }, + "campaign/pilots/research-replacement.md": { + "mode": 420, + "sha256": "3101b8959f28ba2c6ffbac02a82b5ae0e841e7d78bd1f40f05b9d1d2278490ad" + }, + "campaign/research/SESSION.md": { + "mode": 420, + "sha256": "258a2884486ee777fbd8ff180abf23a3a320b2981ee1e90b57d4e3efe18643f2" + }, + "campaign/rollout/RESULT.md": { + "mode": 420, + "sha256": "87aba912d66e2f7bd9779f86cbae3c78d64b1be2572db02ac39fc70c750cb79c" + }, + "campaign/rollout/architecture-decision.md": { + "mode": 420, + "sha256": "8c710f390671500386745d063d6cb6edb175e6e26572286334d2f14a36be6d41" + }, + "campaign/rollout/controls-followup.md": { + "mode": 420, + "sha256": "44d0c95978cbc0953d6b1feab4463b29fab68c9d8dad2eca5fd562bb5aee1578" + }, + "campaign/rollout/controls-worker-state.md": { + "mode": 420, + "sha256": "02ff66f3f0fa978819e5c100e24cfd3752b9041590e2aed36f6abd62ce790f4e" + }, + "campaign/rollout/controls-worker.md": { + "mode": 420, + "sha256": "d022483618d3c3412785ba40e71106976c9b1c9978c43e424e3023a67b8b3f0f" + }, + "campaign/rollout/controls_evidence.py": { + "mode": 420, + "sha256": "bfaf4e523b2ca39c0ecdab94adf0b2b19a3da68aab8a0fcba69a613aed46588a" + }, + "campaign/rollout/engine-followup.md": { + "mode": 420, + "sha256": "d3d289fb4e4cfb7cf1ab6c3de597f530eafd27d3b1aa2f3e8904d6da3a95ac44" + }, + "campaign/rollout/engine-worker-state.md": { + "mode": 420, + "sha256": "76601fa42c95bd7d78ce46f528a33ef0483e0b7f2e19a1cfe1cab8e560bed05c" + }, + "campaign/rollout/engine-worker.md": { + "mode": 420, + "sha256": "fd8bbe69947b69baa61449548d5746723c941ad8b663ec66d1b278234bebe5b2" + }, + "campaign/rollout/formal-verifier-state.md": { + "mode": 420, + "sha256": "2fbac02f5f22b45e94ee33f9f53779fa059c5e93282d3c2f5ad0af027029a1f4" + }, + "campaign/rollout/formal-verifier.md": { + "mode": 420, + "sha256": "f961ceaef0037001e6576d760e28e7aded0502f3d8311925e5ed1cc537c996dc" + }, + "campaign/rollout/gate-followup.md": { + "mode": 420, + "sha256": "677f17aef214e7a6c92958dd8ad98137b238cc7fe7c1da23bcf36d727f28f7c8" + }, + "campaign/rollout/gate-worker-state.md": { + "mode": 420, + "sha256": "96514befccc589487ac3b6ff9348106aca2e4e8e3aa348471943d589c74629e2" + }, + "campaign/rollout/gate-worker.md": { + "mode": 420, + "sha256": "55db7c5f637d849fb2f200ab12c35a794c86e377a5de3f562b1c32455583e65f" + }, + "campaign/rollout/housekeeping-completion.md": { + "mode": 420, + "sha256": "a25041ebaeb030f1cfc62564b5bc57a98818ea75e082f28036e9cc367096ccd1" + }, + "campaign/rollout/housekeeping-followup.md": { + "mode": 420, + "sha256": "5759aaf403c019173450822dc5e9d4aad711a7497eba906caea39bdb39bd3702" + }, + "campaign/rollout/housekeeping-worker-state.md": { + "mode": 420, + "sha256": "5ee9a48a691709af325994fd3d44a1ac6e40d05f26e09b03ae7efec2ecbe25cc" + }, + "campaign/rollout/housekeeping-worker.md": { + "mode": 420, + "sha256": "bab8219fadd0688e91d6211478a01403a36ae74fd2b6f7df0ad5c8745a542ca9" + }, + "campaign/rollout/independent-review.md": { + "mode": 420, + "sha256": "a7a8ebcce5202db0e67c8c65135df751e69ee6728c4c2ced92e1cc85b4279f22" + }, + "campaign/rollout/lead-state.md": { + "mode": 420, + "sha256": "3ded5b3f97d7882f72abef5ea268765a5db29c8b619486c153f5c92742040c01" + }, + "campaign/rollout/publishing-worker-state.md": { + "mode": 420, + "sha256": "641977e4d0ec400a3a6c38121ae5e7904aa1accc47179ee148ad7cb199029b0e" + }, + "campaign/rollout/publishing-worker.md": { + "mode": 420, + "sha256": "822812fbc803d443fb7e0855268c34224eda29f95e57274c217275b09ff4410f" + }, + "campaign/rollout/review-followup.md": { + "mode": 420, + "sha256": "853e3b5aab09cd77fd54cae6d8a61fb5ae092603ab2be8dee2db6d80492a6443" + }, + "campaign/rollout/review-worker-state.md": { + "mode": 420, + "sha256": "a704e6023eaf3424761bf431e49687ae1f1d687119fe00a466b9da2d9ef7bd42" + }, + "campaign/rollout/review-worker.md": { + "mode": 420, + "sha256": "0e348015440aabef95766010f14880619d34a472102698c9819dfbb029b8a6c8" + }, + "campaign/rollout/sync_verifier_snapshot.py": { + "mode": 420, + "sha256": "4133e536bfdb0e206ecdfc072062e7674b07b973c7f8b9d7f1a268520523d6eb" + }, + "findings/.keep.md": { + "mode": 420, + "sha256": "141ed928eaf10a2023dd2c0ff6ea68cf6ec423cfd28d5a359d9c5add730bf64c" + }, + "findings/00-strategy.md": { + "mode": 420, + "sha256": "3bc97827988c6eb4647713c5655271e156dfa466fad5685924010f3244fe6386" + }, + "findings/01-fingerprint.md": { + "mode": 420, + "sha256": "7cf0503c29f5beff852427c2c5bdf8e9d968386de777c47b6130771cac944cac" + }, + "findings/_template.md": { + "mode": 420, + "sha256": "b92d0ca7bfef4498a5f9e594453f15ab15e2c88c7582c4ed5df4c40e6871c3b1" + }, + "findings/control-flow/ai-visit-order-probe.md": { + "mode": 420, + "sha256": "e89f91a33139014ebdc22d79064ecfd06f9b4ffebb4bbc3da73734fc47534047" + }, + "findings/control-flow/alliance-mask-and-modcount.md": { + "mode": 420, + "sha256": "ec66c6b76d9e4c8bed385acf70e6a7d5da08e05eca72ac1e8e5cb307d87f2552" + }, + "findings/control-flow/combat-done-tail.md": { + "mode": 420, + "sha256": "799ace775f12ebe9a2737a711c8d0a6e617f0cefec70b93bf094e47cf81cc348" + }, + "findings/control-flow/combat-resolver.md": { + "mode": 420, + "sha256": "abf1a9329c1bd8a96c76481246a00b380e9a17fa8dc8900810218026e5fe1b9e" + }, + "findings/control-flow/combat-retreat-pipeline.md": { + "mode": 420, + "sha256": "6c40c8bdbdde672c9cd67248d740d88892ad2b93b30e27e9bebe0e96027cf136" + }, + "findings/control-flow/fleet-visit-order-mechanism.md": { + "mode": 420, + "sha256": "a2ea1a6ac9d383380e16910cff89dff0e9b23f1df66f47ef91dd266bd50b3a6d" + }, + "findings/control-flow/gate-indexed-rng-audit.md": { + "mode": 420, + "sha256": "5004b2480787eec7be66f40474648030fdaf7759087a4c4651091152d89351cd" + }, + "findings/control-flow/hive-creation-rng.md": { + "mode": 420, + "sha256": "5ff37d571c0380c798a137e0c6947a0c63109de489fd2100c99bfc6637fc272b" + }, + "findings/control-flow/indirect-edges.md": { + "mode": 420, + "sha256": "3dbf2acf7354f61de66348fe40965f3138dbc4bbff8cb0f06b2751e71ed06ee1" + }, + "findings/control-flow/inlined-draws.md": { + "mode": 420, + "sha256": "3b099718543d7fb112664699749602ff9d61de9aaebb561fc93f1f8b7a152134" + }, + "findings/control-flow/per-history-residue.md": { + "mode": 420, + "sha256": "739c7fc760583ca143036ce554e1eece640d1662fba4642e6f80fadd3dad13f9" + }, + "findings/control-flow/pinned-seed-rich-turn.md": { + "mode": 420, + "sha256": "7c62336767b7c69f513446543f37662ba2a0872e207b906279446bbe399d65b6" + }, + "findings/control-flow/raid-gate-multiplicity.md": { + "mode": 420, + "sha256": "6d7b7357be428ff79186478dc37063657ca4d8e2ad49fcdd92493753748a52f4" + }, + "findings/control-flow/raid-intercept-species-word.md": { + "mode": 420, + "sha256": "1da80eb14f0e3e5a0ce139f62976bb305e3e75a1e5e0631d8287f94eac093d8f" + }, + "findings/control-flow/raid-intercept-z-word.md": { + "mode": 420, + "sha256": "beb421953b70377c8c759f5cc936321faa6316be76d41020b41f26c99706acb3" + }, + "findings/control-flow/raid-target-pick-verdict.md": { + "mode": 420, + "sha256": "d0262a4187e35547b28d6be842e7c730aa3ee93565404b587a790706afabd694" + }, + "findings/control-flow/seed-exposure-forward-test.md": { + "mode": 420, + "sha256": "f108a07ce695b64c482af58db4caeb2607059a3357b62f04f7f36ce45c84ff4a" + }, + "findings/control-flow/standalone-generator-and-turn-record.md": { + "mode": 420, + "sha256": "e499f62534580f27c2a01395e08312ebc7df13bdd307342096f468212aec600b" + }, + "findings/control-flow/standalone-scaffold.md": { + "mode": 420, + "sha256": "0bf928260d5058815a2f09c4df8c08eb359430aeea941f872018de7cbca39105" + }, + "findings/control-flow/tail-probes.md": { + "mode": 420, + "sha256": "ae45e84a9c7f257170f7550301fc4e1a35d5210269bda8070469a5c921cce95e" + }, + "findings/control-flow/tail-rng-ledger.md": { + "mode": 420, + "sha256": "2db588423e7b7de7729e5319477c17fbcea5b7a9cb8ff00b01cfd72bfce25403" + }, + "findings/control-flow/trade-raid-rng-gate.md": { + "mode": 420, + "sha256": "85c7b27aa284988b07b5e67c8e48ef1725289f1a6956d88be2572577cc06e1bf" + }, + "findings/control-flow/turn-driver.md": { + "mode": 420, + "sha256": "3f4e92041a0842d211ea9ae1ae16a9fe400dacf9632209102a1f76acc6b30792" + }, + "findings/control-flow/turn-spine.md": { + "mode": 420, + "sha256": "e2a64f82e5dececb4ba56859d1e53a0f720e08472c79c39197beba7f6041811b" + }, + "findings/control-flow/w3-containers-status-handlers.md": { + "mode": 420, + "sha256": "fffbaa6e3701abbe57a54046416a102502afeaa29b14632f9506905c22bf3914" + }, + "findings/control-flow/watchpoints-modcount-status.md": { + "mode": 420, + "sha256": "0aec4c93ca7219e29827a5069a9829d5e58da2001e79a7316bce288d3e9a6c7d" + }, + "findings/objects/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "findings/objects/00-inventory.md": { + "mode": 420, + "sha256": "cada5fc81c42cb50878a26e43a58640153c600319e66d4c92a23d7c363ff5f14" + }, + "findings/objects/aiagent-block.md": { + "mode": 420, + "sha256": "55d646ab57e90477993d263399254a3b103024d89fff42491b7df5cf4ffc8037" + }, + "findings/objects/classes-game.txt": { + "mode": 420, + "sha256": "e0eceb77c56e05bc7863d3a07805d703fc0ecec489ef24fabe7c6161f2835199" + }, + "findings/objects/classes-mars.txt": { + "mode": 420, + "sha256": "b624f7bd82a5277462a39627140a85c7a7929fd292b62e45edb5c96fd53b6145" + }, + "findings/objects/ghidra-recon.md": { + "mode": 420, + "sha256": "ca4b043a73c1d5573aa0c83cd3942db731884910c90e7d8544c8a32c939e2fda" + }, + "findings/objects/rtti-raw.txt": { + "mode": 420, + "sha256": "39f6fdf8793f8202c19cfb87a75466b215254a13050ec37c0c496699298247ad" + }, + "findings/objects/save-editor-structs.md": { + "mode": 420, + "sha256": "835d4fbf154275542383ea499a527c044ec7d577486c2735b817bd32d6e0c853" + }, + "findings/objects/schema-gaps-resolved.md": { + "mode": 420, + "sha256": "9ddae36eb8e3ef909c4902d01200fc8a17335271e4e063939ae162a3eea5bb3a" + }, + "findings/objects/serializable-types.txt": { + "mode": 420, + "sha256": "59c2f3942f55eb3f6687758a4c447b1ed8902caa60b97d9619bb8228e27c6838" + }, + "findings/objects/serializer-struct-recovery.md": { + "mode": 420, + "sha256": "5b56d8e1a5047d602cea7a76227f30e17244057fe21fde3d4e2cc76e9f185416" + }, + "findings/objects/ship-design-catalogue.md": { + "mode": 420, + "sha256": "feded2191180e184d34d4992935dc117bff8d052e8a2c63ecc29fa7b2e6b561d" + }, + "findings/objects/struct-recovery.md": { + "mode": 420, + "sha256": "4e99ef972529101f5700b52845e263fb3789e0b82d8cdeca921f1595a24d92db" + }, + "findings/objects/svsctob-variants.md": { + "mode": 420, + "sha256": "89617cd2909f2242e9e1657fd4a8f5aafe5aa0c1e0e9bc8926fb67c1e830dd2d" + }, + "findings/objects/svsctob-writers.md": { + "mode": 420, + "sha256": "7a9b7f3bf4eae63cf522246227410b2e3ca789284b7c620f01550fadf479622c" + }, + "findings/objects/turncommands-block.md": { + "mode": 420, + "sha256": "8eca2b79838114e7ae46d34c6e75eaf3b04c0448d9896ed4219b118f09e83046" + }, + "findings/objects/wire-schema-channel.md": { + "mode": 420, + "sha256": "31f0fc4e1cc3c3e7ef938aa22ad65cfdec32be4f1ade476a7ebf32c3c6f07d6f" + }, + "findings/objects/wire-schema-closeout.md": { + "mode": 420, + "sha256": "bbae848b4f8d6d0f2a914268ac34e75b4cea483f52816916202f3bd3cd084255" + }, + "findings/objects/wire-schema-ratchet-debt.md": { + "mode": 420, + "sha256": "0d144181478a607f2474a7c8a1b71ca49c881ef6fd068b5e8859c3fa8129507a" + }, + "findings/resolutions/2026-09-08-ai-seed-per-process.md": { + "mode": 420, + "sha256": "0765bdaeade29122ab5e64493f3a7c339f1e4c4445192ed09ae3d229dd6ae943" + }, + "findings/resolutions/2026-09-09-fleet-id-order-residue.md": { + "mode": 420, + "sha256": "b3d63a11e8ebd55da4af15760d044607b6105216898a018f5ceebc94750817e8" + }, + "findings/resolutions/2026-09-09-seed-exposure-is-a-predicate.md": { + "mode": 420, + "sha256": "dd7ce18738a625b9008ef80783bd64fc3857852775ab3b784b9e5f4fd5ae7de1" + }, + "findings/resolutions/2026-09-09-tail-draws.md": { + "mode": 420, + "sha256": "ff86a332ea9f87bd6f42a0b64e837e6f6f5876423ae9403a903aa9bfe7c42678" + }, + "findings/subsystems/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "findings/subsystems/ai-client-seed-is-per-process.md": { + "mode": 420, + "sha256": "5e6de0418588ff28cee29cb9affd69c3183819318c314eeb0771bbe810e6b4ed" + }, + "findings/subsystems/ai-order-capture.md": { + "mode": 420, + "sha256": "6efebf9f00b375d2c7f29ddeb24ef7a04e3b02cac9027369b490157a196d08ce" + }, + "findings/subsystems/ai-order-emission.md": { + "mode": 420, + "sha256": "9e54a13a18387a4f93acc5c66dbf71d365c81f1a8e6d2aee31f7a89712894ace" + }, + "findings/subsystems/ai-stepping-and-passes.md": { + "mode": 420, + "sha256": "e7e2fc612457a4e77df362aea2928d20fa5a2456fe12a7fbafeaf3c9e01c1dc1" + }, + "findings/subsystems/ai-task-system.md": { + "mode": 420, + "sha256": "577f8fc41256ebdf9629f1e30df9aac7f51c1a84b55f60c2b59e4af4c55126b2" + }, + "findings/subsystems/ai-turn-logic.md": { + "mode": 420, + "sha256": "79e9b7c9592d583db7b9d9ce472804038a71febf7527bd69e31b3399caeb0770" + }, + "findings/subsystems/battle-load-profile.md": { + "mode": 420, + "sha256": "3cf8e28925ebbb162bca9c3be9e6b2599c82ab6aaf9a9d99ffd9c934bf773c77" + }, + "findings/subsystems/data-model.md": { + "mode": 420, + "sha256": "f01c9bfcf8ed9fbf9fdd30556308a1dbb1094896050cc8a5e4fbc1c6c61aff78" + }, + "findings/subsystems/data-parsers.md": { + "mode": 420, + "sha256": "6a428c14279ac2c589b4af932e762ef7e3ada1a878128527b8d88858c11fbc35" + }, + "findings/subsystems/determinism-oracle.md": { + "mode": 420, + "sha256": "4fe0abad0b1b825392cd47b792d06756742495f26ff40a6a433d8608b4680bcb" + }, + "findings/subsystems/eventlive-verification.md": { + "mode": 420, + "sha256": "8bfcc75e57ddf88ec8a4b8885f033be8ffd420965077ab284b1ebce535ecf1a0" + }, + "findings/subsystems/events.md": { + "mode": 420, + "sha256": "c5d6e168d6d48eabec0ae0a448f9c3ec8d0f751a67fc320bc1021ba10008a3bf" + }, + "findings/subsystems/formula-gaps.md": { + "mode": 420, + "sha256": "63ec96a27fac5381d33cdce3e549d230bd5b0230e4d8573f4f3d45bab7d47ffc" + }, + "findings/subsystems/fpu-precision-sensitivity.md": { + "mode": 420, + "sha256": "4cf84e2a1c3d0eaaf9b3a7f218ad663ffa6984389b2a25851249733ad708ff8f" + }, + "findings/subsystems/golden-trace-recapture.md": { + "mode": 420, + "sha256": "b244f939b87dd464d78d919675c0e6aa010b0ec7b4fc6e4178e26c2c8ebee738" + }, + "findings/subsystems/id-allocation.md": { + "mode": 420, + "sha256": "b04a14a5a7d4d1c6137c4f9072987eebc997421e550881dcc2c8e386187f5b90" + }, + "findings/subsystems/income-term.md": { + "mode": 420, + "sha256": "c40286635675a91ce779b887a0394e92f946844873a778015efb98c4a105b67e" + }, + "findings/subsystems/loader-prototypes.md": { + "mode": 420, + "sha256": "f1d09471d5e17c45413b86805f561329f5af24eadfb17c3c740686c39b167ed6" + }, + "findings/subsystems/money-chain-float-widths.md": { + "mode": 420, + "sha256": "99bded6f2d34a713bc175deb4ad5ab4559ce1cc90274b036c1818ad8257c2fef" + }, + "findings/subsystems/movefleet-position-rounding.md": { + "mode": 420, + "sha256": "12dbdc03658cb042b5927586769dc9c19fc2eb812f703e73bf26273f8b0d65a6" + }, + "findings/subsystems/multiplayer-combat.md": { + "mode": 420, + "sha256": "2f4957011b5c5875b8aa7f71531dd5dfe3fd8df4f2c67a7be2fb5999f090c02b" + }, + "findings/subsystems/multiplayer-gamespy.md": { + "mode": 420, + "sha256": "a878e97775d27e085e58b18eaf5a67aaa522456d1055ca142f0477e3d6152d47" + }, + "findings/subsystems/multiplayer-tier0-verified.md": { + "mode": 420, + "sha256": "942ce29cbe22d8f7de5af54f2017c0433c7b8e1a56c864868ec906ffcbb9059a" + }, + "findings/subsystems/nav-classifier-live.md": { + "mode": 420, + "sha256": "b8aacdea8072a99ba1192e235088b372180f094795baf164e8cb95bd2df9f3b0" + }, + "findings/subsystems/nvo-tshn-visible-owner.md": { + "mode": 420, + "sha256": "ef96bb61769c02affd7148cd95e70bf358cbe6263fbe9b47aba6cf4cfa8486ad" + }, + "findings/subsystems/observedtech-append.md": { + "mode": 420, + "sha256": "61efcf51bffe53b8a10a2cdb8123db3f8c55b6874db87418fc31737efedaa652" + }, + "findings/subsystems/output-term.md": { + "mode": 420, + "sha256": "9eb9ff58a1d4cf34d3138f5044788b6f87ff4c94fa871b2dedd6ff6667196533" + }, + "findings/subsystems/output-turn-path.md": { + "mode": 420, + "sha256": "4e199e5cc14802c1b14b37cff0c1359b43aca94dab833f9024c7825c4c512588" + }, + "findings/subsystems/path-solver.md": { + "mode": 420, + "sha256": "3e0e318d45e14f844831c4180e47011263f64067dacf3249742882186d65cf18" + }, + "findings/subsystems/players-residual.md": { + "mode": 420, + "sha256": "e2f56c7983856470d37cd0fba4834a0ccb34dcaddbaf9acaf5dcdc253c6b3507" + }, + "findings/subsystems/population-growth.md": { + "mode": 420, + "sha256": "c2ec2f062e1224045b761640549e7374336ac762bd61c686a0c1378ad829a993" + }, + "findings/subsystems/rcex-explained.md": { + "mode": 420, + "sha256": "df7c9de6f02c1bd38f69e3a5344ec663d97b1d6b738ff408dfdeb0e2f6175b32" + }, + "findings/subsystems/relabel-new-ids.md": { + "mode": 420, + "sha256": "562ffe347adc6432a7824bfa2b324b6b1812b4fcc18343f0732c0f3d9991be20" + }, + "findings/subsystems/research-replace.md": { + "mode": 420, + "sha256": "d0f692cf687a7fe6aab62fc5d7d076eb595e1c33fd84c6f1e437ed01025cab4b" + }, + "findings/subsystems/roll-parity.md": { + "mode": 420, + "sha256": "7d97d7e5eee7b9f135e32b6553bb94ca83fd05b1eca7d18c42e9d65cae4d95d1" + }, + "findings/subsystems/rung-b-rich-turn.md": { + "mode": 420, + "sha256": "44378c6a305a82b2d131270fa5d97fdcd8a7fd5c9760ecbad7715383eac2db68" + }, + "findings/subsystems/running-the-game.md": { + "mode": 420, + "sha256": "f6109f69c6b86e4cf01d0f2e1f8be9921ff632513bca5d9e44e7f6c34f1cd260" + }, + "findings/subsystems/setresearched-cascade.md": { + "mode": 420, + "sha256": "9c079de161a1d1387339b8e8081395c1356c1443a0c898942acfb6efb65a454f" + }, + "findings/subsystems/ship-construction.md": { + "mode": 420, + "sha256": "86f570b1872c8dfac3982d1d7335f4798ccbd1bfd73c91d481afba2734c41216" + }, + "findings/subsystems/ship-design-composer.md": { + "mode": 420, + "sha256": "639b276e9205aaf6c90d9c458a383cc073e89f401ef8f17f8ad5a8a0c5899fa8" + }, + "findings/subsystems/snlv-measured.md": { + "mode": 420, + "sha256": "785324d176be969e1809090acd6b7a48d27f4fa41472c0d9c6f568c0b3a1e539" + }, + "findings/subsystems/spy-detection-roll.md": { + "mode": 420, + "sha256": "214179f5091408ef01ce4b80565068cb9a0885d1c6a233cda476280b9bf29c0a" + }, + "findings/subsystems/spy-program-draws.md": { + "mode": 420, + "sha256": "0c61c2f9cc767ae679921bfc42ef9a207ec9a6e0dc88419a673a8e439f1abfc1" + }, + "findings/subsystems/strategic-turn-internals.md": { + "mode": 420, + "sha256": "3a5c17e025d4968db6030f8ef1daaa2b03ccd4def12d35cf3a0eabcb0b5cbb54" + }, + "findings/subsystems/strings-and-config.md": { + "mode": 420, + "sha256": "67aefda7792e329b7df3f6e8cf42c7bae7049867cdda0741e871b183bc528786" + }, + "findings/subsystems/system-visibility-prediction.md": { + "mode": 420, + "sha256": "b420526ca0410bd4578dd2ed29cd9a21ed3578d6345d9f853a883e0159c1f89c" + }, + "findings/subsystems/system-visibility-record.md": { + "mode": 420, + "sha256": "d2843e10c156a7c85d7dab40d00204475fc725dc9b93656f6cde941ceceb5f51" + }, + "findings/subsystems/t34-observed-designs.md": { + "mode": 420, + "sha256": "207641821a55f5671749b000d478afd9e427336e2d123a55ad2203f34dfaa796" + }, + "findings/subsystems/tech-effects.md": { + "mode": 420, + "sha256": "7423f1e2cb2a597738b244d58bdf467431ee5de725ac434b904676ddcbcfc609" + }, + "findings/subsystems/techid-name-map.md": { + "mode": 420, + "sha256": "cfd92a7885dad3775465fc0c5b40aeb1749499f90071b44855ab8e1746d5f752" + }, + "findings/subsystems/trade-and-spy-workload.md": { + "mode": 420, + "sha256": "147057456fa30b6218df19679abab1ac31b78276a4272d221b70776e154396ba" + }, + "findings/subsystems/treaty-turn-stamp.md": { + "mode": 420, + "sha256": "fa0a8588847cc2b9e92cddeca65fd00fe3d84a00a1034d9354053c7e6cd9ceb5" + }, + "findings/subsystems/turn-command-replay.md": { + "mode": 420, + "sha256": "b65fa3c3c01c67bc16ec488e4a44e6c748256e941c80987528b7602038a56e07" + }, + "findings/subsystems/turn1-to-turn2-nondeterminism.md": { + "mode": 420, + "sha256": "9ebe834fa0f7c1cf864032ec67da76730ed6c239d6bd3a717f147490116acc4d" + }, + "findings/subsystems/turncommands-capture.md": { + "mode": 420, + "sha256": "a57fd2a77784fef1b176749878b161c4f04ac77c1f4a061a6b713787d92fb9ef" + }, + "findings/subsystems/ui-screen-map.md": { + "mode": 420, + "sha256": "d266285e3ca99ba3b5ebbab47c78f3df247a8b539c0519c6fd27a999b9d6f84b" + }, + "findings/subsystems/unlock-cascade.md": { + "mode": 420, + "sha256": "38d29a9484aa3910f5a62b5dd08225ba590bf26901203c5aef1b0b466fbbc5fb" + }, + "findings/subsystems/value-domain-census.md": { + "mode": 420, + "sha256": "bc99139708aee5da4cafec585fc35ab3523b51571518038db19b5f1383c6a6c4" + }, + "findings/subsystems/writer-byte-exact.md": { + "mode": 420, + "sha256": "a0e91a90d2ae78328dbaef30b37d53037cab26489e4729413bcfebbafcab0978" + }, + "ghidra/addresses.d/README.md": { + "mode": 420, + "sha256": "cf2745d5d3e504725ae5a296dc20e3d63b8d32a903445aafe2af61828a6d59c5" + }, + "ghidra/addresses.d/ag.json": { + "mode": 420, + "sha256": "24d5b11779364cf198008b143c7a3a092117ec4a1530c489497dbc8acdf62d8e" + }, + "ghidra/addresses.d/ap.json": { + "mode": 420, + "sha256": "e37f478836eb297f9cc5186cd7df3f5942abc4b6396a4d2866e613841437f778" + }, + "ghidra/addresses.d/ar.json": { + "mode": 420, + "sha256": "8d8620be8dd807a610ff63c0d77cbf266f3d9ce272158991d1f55d9c9910c248" + }, + "ghidra/addresses.d/as.json": { + "mode": 420, + "sha256": "08a869ab9466d4b575363cfb6fc084ca72cdc05d509c5d87e658a9a9977a7ae9" + }, + "ghidra/addresses.d/az.json": { + "mode": 420, + "sha256": "60b9a169605ac171cffb848024141c9224f6897bf69b547b9a4f2b5ddfc8d835" + }, + "ghidra/addresses.d/bu.json": { + "mode": 420, + "sha256": "79037146ba621e43e561bcf0577afc25b2ffac4ced44c902d2ea8ed9171b1bb9" + }, + "ghidra/addresses.d/cz.json": { + "mode": 420, + "sha256": "35de20ff0e38d05b5c58c89690dfc81ce44eb280a2a594ae862e55d56edb5d3c" + }, + "ghidra/addresses.d/dn.json": { + "mode": 420, + "sha256": "c41f877a37bc864f8f315a47b720ac204c22c25de405f4de63b845180641eba0" + }, + "ghidra/addresses.d/dt.json": { + "mode": 420, + "sha256": "580762e01175fb7246d0f9214e4ed9ba16bebcdb82ad1525fd1f77c0910c660f" + }, + "ghidra/addresses.d/lane-a.json": { + "mode": 420, + "sha256": "fce5f06866bddc6bca095d53e376495103dfd8900ad7da0d0d6731f105915d71" + }, + "ghidra/addresses.d/lane-a2.json": { + "mode": 420, + "sha256": "1207088eb2ae041afc2618a627029e25f578ae9fe8db73bb9efb616f39c34bf0" + }, + "ghidra/addresses.d/lane-ac.json": { + "mode": 420, + "sha256": "02a1c2f01ca0d11a7c38d416d94fabaea64b5c5919f6ceaead83430fb398710e" + }, + "ghidra/addresses.d/lane-ai1.json": { + "mode": 420, + "sha256": "134a0cb87b95bf5f39ed015bcdf64c6e8da6b22e073d5b5487148cb5421addff" + }, + "ghidra/addresses.d/lane-ai2.json": { + "mode": 420, + "sha256": "e9d94ce026231d420538400fa9c73fa8a2fa882d16f542c6b8ce2c34014acda6" + }, + "ghidra/addresses.d/lane-ai3.json": { + "mode": 420, + "sha256": "89c29e1bbb1159b7b6fb4fc8c232902f8497efc82290aba6f50c9c9097feec6a" + }, + "ghidra/addresses.d/lane-ai4.json": { + "mode": 420, + "sha256": "78b7897d3d2678ddbff7cd982bfa7d93a0c26817846a148fd3f46790fef9d7fb" + }, + "ghidra/addresses.d/lane-b5.json": { + "mode": 420, + "sha256": "641c724d1fbf28f5469aac488401ea2f92bdd3b929fbf053ddeef0ba5b8de9da" + }, + "ghidra/addresses.d/lane-b6.json": { + "mode": 420, + "sha256": "b2b2833220e3a645efab2b767f1d93d1215a54d195e28e6743db8f1d89934697" + }, + "ghidra/addresses.d/lane-c3.json": { + "mode": 420, + "sha256": "b732932503c181c77bb14ba0136379c8fa3501d0c1471b02d9bca7d023bb5f5a" + }, + "ghidra/addresses.d/lane-d2.json": { + "mode": 420, + "sha256": "8b5df39fb5eea0cd40dffc20aaccabe169f5472171dfd242ca2e75dfc4ca608c" + }, + "ghidra/addresses.d/lane-e1.json": { + "mode": 420, + "sha256": "cb38b41b747bf74ee73fb7eaa301da4bb896d089fa1dea4197382e94940c7f69" + }, + "ghidra/addresses.d/lane-e3.json": { + "mode": 420, + "sha256": "a5fe9dbb37ee587bf36a311771bbc9d8dcaa4d4fcc0b420b8f45829929b0ff98" + }, + "ghidra/addresses.d/lane-ev.json": { + "mode": 420, + "sha256": "b243d31bcd69bfb1e5928ba8b70e958e559c88ee5190ca34e569f217a784798c" + }, + "ghidra/addresses.d/lane-g2.json": { + "mode": 420, + "sha256": "84401f05c5cf2ca0839e817877892e904b3fd2fd4175607abc34453acd8ce822" + }, + "ghidra/addresses.d/lane-g3.json": { + "mode": 420, + "sha256": "d176eb4a07bb6b98acea77e1a0a9904d317a594768ecf8719bbfacbdf6522729" + }, + "ghidra/addresses.d/lane-h.json": { + "mode": 420, + "sha256": "e8cffe89c7feb1d9fa1949f33aff01edc7b84b49ab752275662f6f613c16c0b6" + }, + "ghidra/addresses.d/lane-i.json": { + "mode": 420, + "sha256": "a4c482ff6fee78e96da3400b9ba7d76b58634a5933ff388db5993a1b105c8aca" + }, + "ghidra/addresses.d/lane-id.json": { + "mode": 420, + "sha256": "3f48c9b2e2c3a08e13a856bfb78d551af17f5a1a1079f03f8edbf4615f17ca7d" + }, + "ghidra/addresses.d/lane-j.json": { + "mode": 420, + "sha256": "4fd95b08fee60a2748995cb082fe50d61e7179ae90b106f230bfc5c55a35660d" + }, + "ghidra/addresses.d/lane-k.json": { + "mode": 420, + "sha256": "f6ead3ff256fd2e1408d52bfa28e308f106ad672b3fe1cce0d136faac351136e" + }, + "ghidra/addresses.d/lane-l1.json": { + "mode": 420, + "sha256": "ecbab4a1b602beefd6889effc4883b7f7de01afabb7c5c071bbc4e2237e9131b" + }, + "ghidra/addresses.d/lane-l3.json": { + "mode": 420, + "sha256": "eabb96253bee36c799f1eb89108e284162606cfdc5e9bd29dbf7b5f88ee88adf" + }, + "ghidra/addresses.d/lane-l4.json": { + "mode": 420, + "sha256": "5b2b54d2f3e123e352e9a2b0f1d80fc8afcdd0b97916a94ee5a62ddc03b0ae75" + }, + "ghidra/addresses.d/lane-l5.json": { + "mode": 420, + "sha256": "cedc4869149212d401c519c46fa3f02769f9c939fc560fe8d35cc4f898091482" + }, + "ghidra/addresses.d/lane-n.json": { + "mode": 420, + "sha256": "6987efa430f2da8987e42e61e53113f914cb00e3e52a7c679565e7faf5160c82" + }, + "ghidra/addresses.d/lane-o.json": { + "mode": 420, + "sha256": "7fcf357f25ccdf061b6bc688339e2006f830c551718b6419a0a9d0ac968bb555" + }, + "ghidra/addresses.d/lane-p2.json": { + "mode": 420, + "sha256": "7eaa63d64a0054ef88f323f58b31fca07bd2372dc21560b4bda64eb13d869792" + }, + "ghidra/addresses.d/lane-par.json": { + "mode": 420, + "sha256": "3836b786aec28feb028271d05f368d7c332b8930b51cfdceb36540133a3d3237" + }, + "ghidra/addresses.d/lane-pl.json": { + "mode": 420, + "sha256": "f29953d17effbb7d8256687833023d4656522e74c40bf1ea646d3b35da3635d7" + }, + "ghidra/addresses.d/lane-q.json": { + "mode": 420, + "sha256": "6f98496ffc288fb30c3a7347a7e5252b296f2345afd1bf678f98a2c934b8935a" + }, + "ghidra/addresses.d/lane-rb.json": { + "mode": 420, + "sha256": "bff95b9452e0efb63e74f741682c8d1843abfe3e722143cf01cf092aa894d75d" + }, + "ghidra/addresses.d/lane-sd.json": { + "mode": 420, + "sha256": "d3239b619cbef5cddc9c7bde6525301a99a6423f8a0e42c1ea53b9ae269c6da9" + }, + "ghidra/addresses.d/lane-sv.json": { + "mode": 420, + "sha256": "f574d8b4dc75da722870c74eb29cd56c75e04dd0ac384b4549fc95d425e3de3a" + }, + "ghidra/addresses.d/lane-t.json": { + "mode": 420, + "sha256": "70975f3c1dea55ceb11af12b9ba3a04e8f7bba2e25f1355ffcd3cd457c41545c" + }, + "ghidra/addresses.d/lane-t2.json": { + "mode": 420, + "sha256": "1e3c59089b769cc5f5d3cf16c33cb6db002966f5beb1a4fb9dd8e28fe54cd6a7" + }, + "ghidra/addresses.d/lane-u.json": { + "mode": 420, + "sha256": "bcccb6ec9257537eece135adbfd126904ca0becf14f9b5d17253adf5d8c9e8fe" + }, + "ghidra/addresses.d/lane-v2.json": { + "mode": 420, + "sha256": "6a4d4960ce99c05b928164159eaf4482bf763785a1f8c50efe133667886d9a54" + }, + "ghidra/addresses.d/lane-w.json": { + "mode": 420, + "sha256": "3971d65c772146534f5d8c350f2d203add70ac82801f57f3704c47cd59b51226" + }, + "ghidra/addresses.d/lane-w2.json": { + "mode": 420, + "sha256": "677648e94de8e1e0d538c9575c9be942d0b37c1a847effcb3c2312af5b6aa7d9" + }, + "ghidra/addresses.d/lane-w3.json": { + "mode": 420, + "sha256": "50ed8ed1b16288b00bac4df0886646dbf9d6d6392867029b4eac386806b41b51" + }, + "ghidra/addresses.d/lane-z.json": { + "mode": 420, + "sha256": "bc63a82f2d0cb7636e95f8a07f183f80817a4c65d2bb7263a047ec3c540512eb" + }, + "ghidra/addresses.json": { + "mode": 420, + "sha256": "865c02d88ac6ede656160a5ab20521ad8854efa381d5a943ab422216aca2c016" + }, + "ghidra/generated/sots_addresses.h": { + "mode": 420, + "sha256": "1cf6b4ab40d3cde306edee12ba4eb05292b98ddcf5c2b7c22c1c64b6075b1bdf" + }, + "ghidra/scripts/FixPlayer.java": { + "mode": 420, + "sha256": "9f9ea470af063339511b1f1c85d6dea2df0827c4fed5806c6f641b1aad3e5660" + }, + "ghidra/scripts/FixThis.java": { + "mode": 420, + "sha256": "aafeeb482f71d1bdcbc99a51fb3f21989a46fbb49b5a572f3d9e436c9b3b98b4" + }, + "ghidra/scripts/LoaderRecon.java": { + "mode": 420, + "sha256": "1275d460227e0098254885fe70666d618da7215bca99483a5475c1e701ab9b27" + }, + "ghidra/scripts/LoaderWriteBack.java": { + "mode": 420, + "sha256": "d1040cb9ee80f0fe4d2310d95b38d7d94b0972283f74ea6058de0bdb9e510e63" + }, + "ghidra/scripts/SpineRecon.java": { + "mode": 420, + "sha256": "bea798733cf60f9478373cc453692104058b643ba5b7fc68e76945ae6f496950" + }, + "ghidra/scripts/SpineRecon2.java": { + "mode": 420, + "sha256": "94f10ac953091d50187a46b74803abb4812b244356f9336fa8e133a8a6cba0c6" + }, + "ghidra/scripts/SpineRecon3.java": { + "mode": 420, + "sha256": "b2344ab3d7195cfb935505ba1949f3d4862f787ccb95b812cef3856f92c94ffc" + }, + "ghidra/scripts/SpineRecon4.java": { + "mode": 420, + "sha256": "1093ee635be94f0c0bb31b5bd79f030faa0d7cbab96a495426363172cbcd1d66" + }, + "ghidra/scripts/TechFx.java": { + "mode": 420, + "sha256": "bfa8e990d65ad7cb2b665ee284ec2d645395e0fb3794ea146b175e2937a159ad" + }, + "ghidra/scripts/TechFx2.java": { + "mode": 420, + "sha256": "ee7040ed3316f2e717bac207c3e8ba9bf5ecb560f9e2b38335582c4ca6bae5a8" + }, + "ghidra/scripts/TechFx3.java": { + "mode": 420, + "sha256": "b672751160abcfee37d16eb2f107a60420b7d6956c312fe93e9f62578c06b96a" + }, + "ghidra/scripts/TechFx4.java": { + "mode": 420, + "sha256": "ef912e86f802452f33c20a1adb87eeb96f0ec893e26ee4bbd02305ba0c5e46c7" + }, + "ghidra/scripts/WriteBack.java": { + "mode": 420, + "sha256": "e002a5b86bc58cf75ef8d08dbaeb84bdf3306c1e8d49e92c0382f8ed858c57ac" + }, + "ghidra/vtable-owners.json": { + "mode": 420, + "sha256": "8ee89f3b43f56283a6ffcc605394a1ab246f8071370a9db8f1e770942a5a82a3" + }, + "guides/lab-screen-wall.md": { + "mode": 420, + "sha256": "d398b47853013dbce63b4af2f2ec680c39775732b9fbba13f5fc42a46628550f" + }, + "guides/method-rules.md": { + "mode": 420, + "sha256": "a71a8415202fe97ccaee3805bf4035684776c37f5613dc39a1f260aa33f94b69" + }, + "guides/multi-agent-workflow.md": { + "mode": 420, + "sha256": "f5bf0c30c12a3a9e1725549fe000be0105d415ca25b120673a780901148f08da" + }, + "guides/re-windows-2000s-howto.md": { + "mode": 420, + "sha256": "3490650440d6e683cb029915b8c2cace914b1f52538c9db89175ad4547db2901" + }, + "guides/windows-lab-housekeeping.md": { + "mode": 420, + "sha256": "4a9e9d66dd76e6b5ee1951686186190c650a617fa812fa4bd236ef02b783939a" + }, + "notes/.keep.md": { + "mode": 420, + "sha256": "7878c159a1b9636974e9093902027a24bf7b3c7520f13a8d96f930bd10d22f1c" + }, + "objects/generated/sots_stream_schema.h": { + "mode": 420, + "sha256": "13446ce54d60a0b29adcefb51aeb5127a0a3ca8de2bd1665e4778ba5354bff8c" + }, + "objects/layouts.h": { + "mode": 420, + "sha256": "24586f7f1c25530691193a919c6335ab1784fa2815b222326409cfe9e2a42981" + }, + "objects/layouts.json": { + "mode": 420, + "sha256": "16bfffa5020d98c12af61c72a48da8f2c5e06d1060358802717e585a49b150b2" + }, + "objects/layouts.md": { + "mode": 420, + "sha256": "83bc29fcd379847f9ebd6732edf9748c1c878052e889615928659307f97a148c" + }, + "objects/streams.json": { + "mode": 420, + "sha256": "60993eda14d0b1056578718d43a3b6d89816e12c4f5a00674806aeef9e81baf7" + }, + "opencode.json": { + "mode": 420, + "sha256": "d24be7fcee57d5eb04c6b7189822a2ca055dd4a70daafbea67f09a120945d49f" + }, + "scripts/.keep.md": { + "mode": 420, + "sha256": "b0cdcee8cfdc1b15ee444520b6b01c747399deea6d92ff2576ca6eb57331bbac" + }, + "scripts/forgejo_campaign.py": null, + "scripts/lane_v2_writeback.py": { + "mode": 420, + "sha256": "69a66058adb04926eeb6f0e81fa8f0392ce06de2e8d8eb61ebcf503bab6311da" + }, + "tools/DASHBOARD_README.md": { + "mode": 420, + "sha256": "f401cc54f64a4862a938263f37eaab22e6475e063e59726e02dce201f657dcc4" + }, + "tools/aiorders_to_tcb.py": { + "mode": 420, + "sha256": "9762d1fd45f3ab7c045088e222c5386a2cc63a6b25e1c09a49cbbd71837bfe17" + }, + "tools/cache_functions.py": { + "mode": 420, + "sha256": "18c037e48ab035764b0c877123ea7c998ef74240c63090e4f58142f57835e0b1" + }, + "tools/campaign.py": { + "mode": 420, + "sha256": "c7b7c7a30d907bba8e59386dee8704d7f3f5e978fcf709b686e37996fa465c31" + }, + "tools/check_agent_config.py": { + "mode": 420, + "sha256": "93115532cb38105777a5c5c20a9f2a808043370e0d4f560a9c82fe8e800076ec" + }, + "tools/dashboard.py": { + "mode": 420, + "sha256": "c84aeeea6fb7d5e45ccec8882bacc59182149f108edd9eb1585eab9ede99911c" + }, + "tools/displacement.py": null, + "tools/evidence.py": { + "mode": 420, + "sha256": "0a7f8497ed287b4b64aa5ba0cb25735172408e38f3605b3ff90f009c7f02eb85" + }, + "tools/gate.py": { + "mode": 420, + "sha256": "4df5ee7022fb2601687f06eab788e2cea1e345e580c4e92c9d47be1787d37460" + }, + "tools/gate.sh": { + "mode": 493, + "sha256": "d7ba27b9b0c6a03df48e4edc71884ef9986743f8afa751dbfec116df5aeee18c" + }, + "tools/gen_addresses.py": { + "mode": 493, + "sha256": "5d995585d4192a19db7cc6d31ed811fa80264159fc114f03f58793f9b6c4908e" + }, + "tools/gen_stream_schema.py": { + "mode": 420, + "sha256": "a9c3e925bb3370371a2c8cde8d738c657fe1cbf68c39c6155562bbb20c551461" + }, + "tools/max_income_oracle.py": { + "mode": 420, + "sha256": "8d3ec6ba5c677486200eab7d1ca55e1350947829e603737307fa394ac8e40bcd" + }, + "tools/max_income_predict.py": { + "mode": 420, + "sha256": "85400c82b6cb7c6786b7fb6486bdc7bcb1140817f7a0ff0b4fa4f7dbeded8797" + }, + "tools/probe_report.py": { + "mode": 420, + "sha256": "f3ef378c10bae4a8bef754d853f0e86616bb95b5e051e04cac97d362587df1a7" + }, + "tools/reva_call.py": { + "mode": 493, + "sha256": "89477650d38985f84b61a664572de1cbde1268b879d3da5e874598942822998b" + }, + "tools/rng_ledger_report.py": { + "mode": 493, + "sha256": "b4f3f581eb6de50118fd531c848354816c20197711e668ce8b0cfcb4d0392cf3" + }, + "tools/rng_oracle_check.py": { + "mode": 420, + "sha256": "f27ca7f9aa03bc672f04067bc71e73ac83742997f12f5f55ce11151bdc39d98a" + }, + "tools/rng_site_report.py": { + "mode": 493, + "sha256": "fabd950c002265403f7b13a8868a158d867828c9930770ed096a2610b086ad35" + }, + "tools/rtti_map.py": { + "mode": 420, + "sha256": "9ac88a8aa566fe08336ba6e50905ec4253409e1317f491c415b1b9ebcc0713e4" + }, + "tools/run_agent.py": { + "mode": 420, + "sha256": "0f5ccb53dcde59b64fe999768737b6cbd2dabcc1272e5605c1f1ecd86e5d5d2b" + }, + "tools/select_evidence.py": { + "mode": 420, + "sha256": "a6e648a77bcf799cc774ff9d0de83011283049ed0f0c44f6e08857a8410e9463" + }, + "tools/serializers.py": { + "mode": 420, + "sha256": "938904eb7b4ae30a61dd966494b112c6d52399f9d4a4658add06b40a54d6cb73" + }, + "tools/serializers_ghidra.py": { + "mode": 420, + "sha256": "d27da0afc8d043d31335bbe274fc76245e50cf0f9091a968b124f31c3a17997c" + }, + "tools/serializers_golden.py": { + "mode": 420, + "sha256": "29d2509b54704b80eff46a59a320719edb17a7eb67fd8acb8ad5e3c427d8e825" + }, + "tools/standalone_report.py": { + "mode": 420, + "sha256": "43a61c4031306732554aca23cd95b57d35f2a870766c33ccf8e005f22436525c" + }, + "tools/streams.py": { + "mode": 420, + "sha256": "57ec4ec5ad222a74f4461d70277d258e51779ae53ff74fd0e07eb51d4bae0afd" + }, + "tools/strfootprint.py": { + "mode": 420, + "sha256": "3b0db212c0b091ae2f63b866ee331435d013c535f233ec34ae3dfb63ded852dc" + }, + "tools/tcb_from_json.py": { + "mode": 420, + "sha256": "8fe09cff16802fda34db24f6f888610baa258399ab39173586b91a7a162f231a" + }, + "tools/techid_table.py": { + "mode": 420, + "sha256": "2c644bdbd3774b70dfdae7e77ff7a3a8e8563b58be7098a2d55ee30dc8b8fd07" + }, + "tools/turncommands_capture.py": { + "mode": 420, + "sha256": "0214d5da6f5f86e188bb2f03db8d3439267baee3a883c7df754601c7c1a38536" + }, + "tools/vmshot.py": { + "mode": 493, + "sha256": "09228bf8bd61918c49afc2b6da931fc8a7833be126be5384b85194e0e86eea44" + }, + "tools/vmwatch-install.sh": { + "mode": 493, + "sha256": "3c004f532422bd589a7294dabdf54d5a726f598c69012eaea3d73a748ad0123a" + }, + "tools/vmwatch.py": { + "mode": 493, + "sha256": "650d8232e46239a55b96f26d581d7d9c5815415c9014fd2e5b846b68c1346b39" + }, + "tools/vtable_map.py": { + "mode": 420, + "sha256": "2e19223efb79421ab4b807e32f0854b2592d7d3a3a52c12e84e47460b960f740" + }, + "tools/windows-housekeeping/Invoke-Housekeeping.ps1": { + "mode": 420, + "sha256": "a97911a3cfbd47813282efa7f52b4de03d28912487fffe0e7e7aa1a250cac01a" + }, + "tools/x86disp.py": { + "mode": 420, + "sha256": "a05a42d63813d2025a4da65bdd684e82a89c95c52901a8f490391e31c49a122e" + }, + "verify/campaign/test_controls.py": { + "mode": 420, + "sha256": "108460f4e90c4cb7036642e85de581e31fd70c478533c32364691260461814fc" + }, + "verify/config/test_agent_config.py": { + "mode": 420, + "sha256": "e60ee546672da91de08ca8fdd5d563b5f1207d0a865adf935017e06bf437585b" + }, + "verify/config/test_source_check.py": { + "mode": 420, + "sha256": "c16731e31a54256dde4f88d33007759ff21ad8537ca6cd2be38b9e34c59525ad" + }, + "verify/design-rules/SHIP_DESIGN_RULES.md": { + "mode": 420, + "sha256": "4decf51bfa03e8ab2b58478198332e834233100126949b920349f210b54521c8" + }, + "verify/design-rules/data/HiverInvasion_FleetTemplates.csv": { + "mode": 420, + "sha256": "327e799be3c75361267725c157f78b425d3a1df6ed6595104b2ce9993e8ae3a7" + }, + "verify/design-rules/data/UpstartApes_GiftFleetTemplates.csv": { + "mode": 420, + "sha256": "89939d70eb6ed48ec776a4a6fc50ccb68fc6be7162706bab199484bf7cdd5e44" + }, + "verify/design-rules/data/_defaultweapons.txt": { + "mode": 420, + "sha256": "ef9e33aa32840f1878ece67f88556d81a4255f63f6e8aad4ac73e575ef2c7ec8" + }, + "verify/design-rules/data/_turrets.txt": { + "mode": 420, + "sha256": "35de6ad40895f76298eef7dc354c739a5a59747b689c2324cfa5040442eddc18" + }, + "verify/design-rules/design_rules.py": { + "mode": 420, + "sha256": "772f70c7d6be2d20d10cf4f5d412233b267440d63d431bf7b320c29f3f06e313" + }, + "verify/design-rules/stock_designs.json": { + "mode": 420, + "sha256": "b363023e02899bc03e4c8b8423b394ef8abb190b1bcf437aade19be463353f68" + }, + "verify/design-rules/stock_designs.py": { + "mode": 420, + "sha256": "fe020f6058ec25b6fc456146abb6594825ee2b98ba5c5c5eeaff969ce4596031" + }, + "verify/design-rules/test_design_rules.py": { + "mode": 420, + "sha256": "6f6764d21d7a3337ec8aba9651b19947239a7d06a6cdf7c6e9be5ddefcfdd186" + }, + "verify/fpu-cw/cw_census.py": { + "mode": 420, + "sha256": "07b7ac5ae60df487867b592e82e9f74201b695437fba248813bc07305a21c7cc" + }, + "verify/fpu-cw/trace_bitdiff.py": { + "mode": 420, + "sha256": "b25c93d70e67ed2fa81e5ea7184f8ffe0cbd2e7c043bc94f923c3db1cf101b59" + }, + "verify/harness/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "verify/harness/cb/README.md": { + "mode": 420, + "sha256": "7a656251a600a9343ffa8afaa4f227e7cb8086be7d3c6879c0a403ab8acec71d" + }, + "verify/harness/cb/cbdo.sh": { + "mode": 493, + "sha256": "6f3d7fd35aeedb0841be9df0ba19136be2e7ccb5c44950d8aa821c61727232a6" + }, + "verify/harness/cb/cbfull.sh": { + "mode": 493, + "sha256": "609101217e9d35bf1caa5cb66f362e0796fcf6c1264bd92ff550d0ed12ca2521" + }, + "verify/harness/cb/cbload.sh": { + "mode": 493, + "sha256": "2e56bb64609434f6dfc6ebcf71a3c839ae59170db80c996ebee7c2219cb664ec" + }, + "verify/harness/cb/cbmenu.py": { + "mode": 420, + "sha256": "fb2e72a1a5390aa28dcae0fbc2d7b920b06bf3b1ea161bb757d4db3c8cd23af2" + }, + "verify/harness/cb/cbstep.sh": { + "mode": 493, + "sha256": "5896b21e8cf08b40e2a2958e44a51beb7e5b5a58cf35d405879a5df7cdd375b4" + }, + "verify/harness/compare/TRACE_FORMAT.md": { + "mode": 420, + "sha256": "cf6f61dc255e3aed0f293c141d9fd3b0d5e848e3abe4dcf50b4ca2d58e37c024" + }, + "verify/harness/compare/mkfixture.py": { + "mode": 420, + "sha256": "f081dd92b9e82e838f59ce8f9c79d5cdebb825255f13b6c49178516e7f3ef118" + }, + "verify/harness/compare/oracle_parsers.py": { + "mode": 420, + "sha256": "b1a745bfa63b447c87279afdb2885a0218f2a0dc2539f79414f8a2534e24c97b" + }, + "verify/harness/compare/test_tracecmp.py": { + "mode": 420, + "sha256": "f25eb9d5ea7215b8366c44924fb49a5f028a0188e709dadfd90cfbc30db0823e" + }, + "verify/harness/compare/tracecmp.py": { + "mode": 420, + "sha256": "d6ca461cabf15351e2040150144084b93d3caf22d879ee158ede04052ab03cbb" + }, + "verify/harness/l2-ui/README.md": { + "mode": 420, + "sha256": "48effd757522ee5ff70af6d77449dcfd805bb7744c9093d01c039b86e030d7f6" + }, + "verify/harness/l2-ui/launch-b.cmd": { + "mode": 420, + "sha256": "8f26c451a88765c49ecb3c8160ed4a3d06f1100a6d9323b305efc01f039dfada" + }, + "verify/harness/l2-ui/socks.ps1": { + "mode": 420, + "sha256": "401cce47d495507f60eeae45942c146586464959046ef9715cd69605753af027" + }, + "verify/harness/l2-ui/ui.ps1": { + "mode": 420, + "sha256": "355c8f222bf99f547d9d16a1665a072e6914917d48e4db22b8438d2d83708e97" + }, + "verify/harness/profiling/battle-run.sh": { + "mode": 493, + "sha256": "79f14ded5c3731efd655a6f9a4ac6795f3ace0a9b064c43ba4bf9a2cb988a7cf" + }, + "verify/harness/profiling/funcs.py": { + "mode": 420, + "sha256": "841a6f5e5dc1d845b7439c9ce9dc08e045864929b0f367908abea7ab54259207" + }, + "verify/harness/profiling/funcs.txt": { + "mode": 420, + "sha256": "d35b17dbb3970f5c24ae862748c5b91aee87491968719c34e48a8b88c0615835" + }, + "verify/harness/profiling/iat.py": { + "mode": 420, + "sha256": "82465ef8284739ab3d3c99acd0fa6cc5a4bb80c8680eb7a949218305fd10d3d3" + }, + "verify/harness/profiling/inspect.ps1": { + "mode": 420, + "sha256": "35bc7dd85108e3f4686975ef7f510b1cc9306b5839329f7fdd2a5ac27a140611" + }, + "verify/harness/profiling/names.txt": { + "mode": 420, + "sha256": "89d90f934e445447c68569448471a8917ee0bbfcb5fb96bba3e6566be9b0779c" + }, + "verify/harness/profiling/parse.py": { + "mode": 420, + "sha256": "680df36804e923d74da8e9fd8877b5ea66975c9ce8d239ad4507c829f881722a" + }, + "verify/harness/profiling/sampler.ps1": { + "mode": 420, + "sha256": "ef0edde8535ef07e508a732f8e11dc3d50fef966e5a9e4d8161085a83372993e" + }, + "verify/harness/profiling/shots.sh": { + "mode": 420, + "sha256": "87e554abf08068d6438417e266f1e7820e34a900a7d559fa0a7c4a2fa18002b3" + }, + "verify/harness/profiling/timerres.ps1": { + "mode": 420, + "sha256": "80362eb9ec8bd882abddf2507236e70db2dd21f64c9db07d217bdd49361ed89c" + }, + "verify/harness/profiling/turnloop.sh": { + "mode": 493, + "sha256": "8e28f076599a9eb53eace77ad77a10b0770f1ce617c7a76e6a2b9044ee0c8774" + }, + "verify/harness/profiling/turnwin.py": { + "mode": 420, + "sha256": "e2033a8e519a7c9f65f67b5592494a9843eb8bef41af6ab5652343aa86bd4c60" + }, + "verify/harness/profiling/ui.sh": { + "mode": 493, + "sha256": "e66774a4d070285e6c6a62472000222a691c7192096039e75fa726bab9f6afb7" + }, + "verify/harness/run-recipe/click_helper.ps1": { + "mode": 420, + "sha256": "150a1c17e12e8479244107cd01d95233c84d550e95a6f5e352fd529818a21d7d" + }, + "verify/harness/run-recipe/display.cfg": { + "mode": 420, + "sha256": "76b4876abd1cd163a5cc6b65a6106670476cde40c9b868a53a0dc45f517e132f" + }, + "verify/harness/run-recipe/dxvk_d3d9.log": { + "mode": 420, + "sha256": "f48ff2684a78cea563ab7f10e2f005638044352fe9cfc30dedf0f26ec7fecf23" + }, + "verify/harness/run-recipe/launch.cmd": { + "mode": 420, + "sha256": "90a6effe8ae835bf641cc775a17ad709198fdfeded4379f658255a82f594e5c2" + }, + "verify/harness/run-recipe/lvp_icd.x86.json": { + "mode": 420, + "sha256": "b89a08526e043a84c3a2550b5ea2fd7692f547ea295e8dd70e79c64fe81f6fbf" + }, + "verify/harness/run-recipe/run.txt": { + "mode": 420, + "sha256": "12c83295dae9db4a98142ef8fe7e45321c90960428df504ed3496e27838a0413" + }, + "verify/harness/run-recipe/session.log": { + "mode": 420, + "sha256": "e9ce9b496e9ee55bd64cc27afe594cee6136dfbc6cf9d9d44e9914b27e568a93" + }, + "verify/parsers/PARITY_NOTES.md": { + "mode": 420, + "sha256": "beecfe60358f5977529bd0784ffe18ca03c38d2dd36766f351c6a9addac83bda" + }, + "verify/parsers/effect_txt.py": { + "mode": 420, + "sha256": "7219045dfaf305dd64218ff8096e8cac69a53df1aabdf85f15e6c5e01c963e74" + }, + "verify/parsers/flat_kv.py": { + "mode": 420, + "sha256": "a26149cb21d152be5cbada3b764e042187daf2ec306b2dba1081737af6a7ae4f" + }, + "verify/parsers/manifest.py": { + "mode": 420, + "sha256": "62a08cfd82d5f701ae3b3f567bc8382cfd1b33b49bf6049ade47a932ef7109da" + }, + "verify/parsers/mars_data.py": { + "mode": 420, + "sha256": "90c7b8421044b1d7e262e6f20e5af391d97a712b12c2d3f0c3033567881d536f" + }, + "verify/parsers/verify.py": { + "mode": 420, + "sha256": "cc5d619bd6b3ca161b4bc8050c30e7d77f6bd3e964c971cc29e051efc1e25a33" + }, + "verify/publishing/test_dashboard.py": { + "mode": 420, + "sha256": "cc44e516da663f5d27bf817cbcbf24c052f2db52ee887d08d7c271caf8f6a000" + }, + "verify/results/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "verify/results/compare/.keep.md": { + "mode": 420, + "sha256": "4581f3fde61549f4c621b2f114228a62d066a528a270a9b41703238ff841ac1d" + }, + "verify/results/compare/b2-techfx-compare.json": { + "mode": 420, + "sha256": "b0533322d44b1694f36baf86d6660481ac5b22ce9c1d6b6b9668ea064cc08f4b" + }, + "verify/results/compare/b2-techfx-golden.json": { + "mode": 420, + "sha256": "4298a8229b85a3329c78d3618d3eb19aff096cb2da66e9238fd843d639b17f11" + }, + "verify/results/compare/cr-compare.json": { + "mode": 420, + "sha256": "f20e9a7c71412688c02b607f08a5224367598eba552e35a50e9922ca8f12edab" + }, + "verify/results/compare/cr-compare.md": { + "mode": 420, + "sha256": "0eb905744120b1cf264ba6e57497db64fdc8e225a87ef7bb86cf3f026ffe4d0d" + }, + "verify/results/compare/cr-replace0.json": { + "mode": 420, + "sha256": "f1556c5d74c236c82617061b5ec60b1a7ce4652bce87b6595eb89406ad832240" + }, + "verify/results/compare/cr-replace0.md": { + "mode": 420, + "sha256": "6f571e46350a29b811bc12b48e12ed2d443acba5f5be6310e0531c3790425d48" + }, + "verify/results/compare/cr-replace1.json": { + "mode": 420, + "sha256": "d0c1d6bd4a1f8f5343b584662d8202184479b01a51480443a97242daf27fccc2" + }, + "verify/results/compare/cr-replace1.md": { + "mode": 420, + "sha256": "111b51290468d5482a1910194487d26dc1b3ec534d699aa07a564de66bbf9d98" + }, + "verify/results/compare/eventlive-b3-t1-5.json": { + "mode": 420, + "sha256": "4f305180bcbe93523f407d1f8406ac52b84d4a20e2d611940716618fd37edfde" + }, + "verify/results/compare/eventlive-b3-t1-5.md": { + "mode": 420, + "sha256": "ec71d98210218fd5b5da69f6b17cf6991128a58a0358a6504e6497dd39159764" + }, + "verify/results/compare/eventlive-b3-t1.json": { + "mode": 420, + "sha256": "84f66c1e6a23f737d1615e75fd22fba958bfd851067acb42503e32a2812dd1de" + }, + "verify/results/compare/eventlive-b3-t1.md": { + "mode": 420, + "sha256": "299b8dd3f2cf42cbc9e6254fac01ee3dcb6abb0758c8f298beb6cc6464db4cfb" + }, + "verify/results/compare/eventlive-b3-zuul.json": { + "mode": 420, + "sha256": "a1a92c06202c8168362c33442edeb7ea7f76f6e586e5deea1b86dff9dc8f3494" + }, + "verify/results/compare/eventlive-b3-zuul.md": { + "mode": 420, + "sha256": "544791f9cd8b77a2d865f2a918d97e74559529f29943171bd1e8e2d8a120dec5" + }, + "verify/results/compare/l5-budget-boundary.md": { + "mode": 420, + "sha256": "6877f9cfc602876b4c213106493853822471a5aaa3e4e8ebf8dffd31373d89d9" + }, + "verify/results/compare/mf-after.json": { + "mode": 420, + "sha256": "586a824a0d0af1de0808c33c1c392c4022128f9c1305dc32b6749e8fa493e8f4" + }, + "verify/results/compare/mf-after.md": { + "mode": 420, + "sha256": "659be3da71cabfd3c34eb818f1bac07f848c58a878fd62d81ac7b1daa5f3ce03" + }, + "verify/results/compare/mf-before.json": { + "mode": 420, + "sha256": "259272b45ca9c63894d8c91e399ff91d7258b7836f1a0d5c91dd3972586b2498" + }, + "verify/results/compare/mf-before.md": { + "mode": 420, + "sha256": "4572530a1c93865d27aba47c23c418773ad39a834c8be1c004f5cc2f16f927a0" + }, + "verify/results/compare/output-ref-turn2.md": { + "mode": 420, + "sha256": "43a569165f9239f13edc31c7a848a6b839829ae06dd6e3b85d289a1552eb8d34" + }, + "verify/results/compare/output-zuul-and-ref.md": { + "mode": 420, + "sha256": "9bc0937c0b3e1e3e5a6cd3768dbfeae56a897615396b00834bd083611f3ef431" + }, + "verify/results/compare/recap-b1-compare.json": { + "mode": 420, + "sha256": "8e86cdd32373e41ac1cdc130b18acc188b35d5ab7112e1fc655d134c44ad9712" + }, + "verify/results/compare/recap-b1-compare.md": { + "mode": 420, + "sha256": "496a3246eda3be76d9d0f08726369d40aa879cf60a510f16209ae77585582841" + }, + "verify/results/compare/recap-b3-compare-t1-5.json": { + "mode": 420, + "sha256": "80eeeeccf15f427b75b053d06f6b32b1692a2ed9ca6b9a51c244e4166a1b0e78" + }, + "verify/results/compare/recap-b3-compare-t1-5.md": { + "mode": 420, + "sha256": "5b6295bff72d599f142e75fa913ca2da590322a6fd1d104328847159fc5e7802" + }, + "verify/results/compare/recap-b3-compare-t1.json": { + "mode": 420, + "sha256": "10d0d5f8aff90f6cce3cd87e30c7f8ff896c5b369f4dc8288141451e25727cb9" + }, + "verify/results/compare/recap-b3-compare-t1.md": { + "mode": 420, + "sha256": "2b0eb8865bb07a2dd8fd038bc19e38a34fbf19b9d3f6fabae085c16a74fbcc6f" + }, + "verify/results/compare/recap-golden-trace.json": { + "mode": 420, + "sha256": "50bb7e34ab2359adc83cc0647fc995d207173fcf6134e413565af450958f652f" + }, + "verify/results/compare/recap-golden-trace.md": { + "mode": 420, + "sha256": "586fc86fe78659902a5d0859c0bce44623bfcda0f375bb57b293796862c48e17" + }, + "verify/results/compare/recap-misc-compare.json": { + "mode": 420, + "sha256": "c73f3f3593a0d715a675b29c7b4f49c02a97578ee9d867ce15d217c43da2e466" + }, + "verify/results/compare/recap-misc-compare.md": { + "mode": 420, + "sha256": "b435c92441742b2b1b0236bfacff10c17757696baf446c544c4759b7e31237ed" + }, + "verify/results/compare/unlock-b3-t1-5.json": { + "mode": 420, + "sha256": "a4dbfc89f6f3d154edbbc62842a4e8d8a3c69b9589eafc1bb496b26a3ecf6e3d" + }, + "verify/results/compare/unlock-b3-t1-5.md": { + "mode": 420, + "sha256": "832626087ddc2da9064a192a1acfb3869d4a52c6398a070cbd66eaa1bdbe2e2e" + }, + "verify/results/compare/unlock-b3-t1.json": { + "mode": 420, + "sha256": "6d8938b8eaeb2da1c7fdccb1fb68f8e3a2b5b7f492cc096326cf3aadb2ab8d55" + }, + "verify/results/compare/unlock-b3-t1.md": { + "mode": 420, + "sha256": "8911e671a143c25765cd7c0b67f1b9cb23f4040fe26aad40ce59b1db858afdcd" + }, + "verify/results/compare/unlock-b3-zuul.json": { + "mode": 420, + "sha256": "3099d248d58c4395e92d65ad18c28227695a7c7935193be6c2bcf752fa0e0f04" + }, + "verify/results/compare/unlock-b3-zuul.md": { + "mode": 420, + "sha256": "f53b165c8502ba9b2416935179fdea68153fb6ebd2458b4ec9b4ecf6c741c91f" + }, + "verify/results/data-catalogs/crosslink.json": { + "mode": 420, + "sha256": "2966ba9780910b596e350c4f81eef5d74c4d235dc3a8d5cf6ad5fd53a407254a" + }, + "verify/results/data-catalogs/schema_stats.json": { + "mode": 420, + "sha256": "6e3f669ae77cdfa2c5cd6bbd29f5cecccd452d9a7b2397c2c23db6c33fda0a2a" + }, + "verify/results/data-catalogs/shipsections.json": { + "mode": 420, + "sha256": "2e7057c608d0cea755bf9dbfa291864d33e3f09ad5deff7bb3a8045bde7a4ab5" + }, + "verify/results/data-catalogs/strings.json": { + "mode": 420, + "sha256": "c36c1b2b9a2eace438f93698df6388fa94aec30d372bcd0bee7e09bb33c54d7c" + }, + "verify/results/data-catalogs/tech_tree.dot": { + "mode": 420, + "sha256": "96ce0492a1284167d82af2c07a8f8a0b3bb9864bc137195560d909df6a913055" + }, + "verify/results/data-catalogs/tech_tree.json": { + "mode": 420, + "sha256": "18df799410c5f650e15808c1ef247b4768a3dfff93795a5ec7f56cd6c4afc597" + }, + "verify/results/data-catalogs/weapons.json": { + "mode": 420, + "sha256": "a446b445c21519fc7992c84155c9652239567030843c405b4219d1f65022db01" + }, + "verify/results/fpu-cw/README.md": { + "mode": 420, + "sha256": "3928fd0f6a03a8ff0b170a7ed23a059120b5014b13bf6870d4f187ff299d5975" + }, + "verify/results/fpu-cw/cw-census.txt": { + "mode": 420, + "sha256": "b7854dc5cd249a2490d04264d758f1894a9ddf4b95573650365d47587c7589d3" + }, + "verify/results/fpu-cw/run-007f-rep/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-007f-rep/(Autosave).sav": { + "mode": 420, + "sha256": "ba2435beb17265af3abddb58cd26e926d42b39b358ef6d0c76f9897386174918" + }, + "verify/results/fpu-cw/run-007f-rep/shim.log": { + "mode": 420, + "sha256": "73b5b86da743a1cb37d4c0d97b29978923b55a7a47f80c7fa20ca47d424f6c02" + }, + "verify/results/fpu-cw/run-007f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-007f/(Autosave).sav": { + "mode": 420, + "sha256": "ba2435beb17265af3abddb58cd26e926d42b39b358ef6d0c76f9897386174918" + }, + "verify/results/fpu-cw/run-007f/shim.cfg": { + "mode": 420, + "sha256": "998decddb80cf23d63c42d2d6c1d1aa85072258ca0870168ee772708ebfb6363" + }, + "verify/results/fpu-cw/run-007f/shim.log": { + "mode": 420, + "sha256": "5721f47d7fd862156ce2cd1832cd1739636b5aee53c82323ef233ff6401775bb" + }, + "verify/results/fpu-cw/run-007f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "149c4fcf750fcf9e81dc86d8696271d9a14ca788891ac95cf96995e3737c68e4" + }, + "verify/results/fpu-cw/run-027f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-027f/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-027f/shim.cfg": { + "mode": 420, + "sha256": "f4f9585a8f6317807bcab498ebed5de5d42400124a82ea958558f1455176cebd" + }, + "verify/results/fpu-cw/run-027f/shim.log": { + "mode": 420, + "sha256": "4bd3f88bd27eb2e3ae1f42f4dc2ccf1cc5df1a2c1171d2eff8be86e7be684187" + }, + "verify/results/fpu-cw/run-027f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "b5d2611d0c08946c1e1eaa244a7e44782eac2592c392efb3d7147fbbd86816e7" + }, + "verify/results/fpu-cw/run-127f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-127f/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-127f/shim.cfg": { + "mode": 420, + "sha256": "1f50a475f0d347b5b5a7c2341eac4ea22092818e18bc7ea049154d309949e271" + }, + "verify/results/fpu-cw/run-127f/shim.log": { + "mode": 420, + "sha256": "03f1999dc8964912697782e856f89f190b6680d5732f2cd00b1569bff727a545" + }, + "verify/results/fpu-cw/run-127f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "fb1b9063cc53a6b39ea0a58e0545b9334fbd15d65dd839e72f2c4febbb1dd3f0" + }, + "verify/results/fpu-cw/run-137f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-137f/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-137f/shim.cfg": { + "mode": 420, + "sha256": "8658d901e0688d87d2f2359fe725082b9956291988cdc0b82b155dde55fef5e9" + }, + "verify/results/fpu-cw/run-137f/shim.log": { + "mode": 420, + "sha256": "83aa72572412d5248179397895029367685fd590d795991ab91c98cf9828ae29" + }, + "verify/results/fpu-cw/run-137f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "aad1fb6abd86beafb9f44e2c6060157e22618811d105f2379252e19008839b66" + }, + "verify/results/fpu-cw/run-1a7f-rep/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-1a7f-rep/(Autosave).sav": { + "mode": 420, + "sha256": "e48e25fa8425a8a1d174efe3e8a553153447f11f8f91c5fda25bd7db3a26cca7" + }, + "verify/results/fpu-cw/run-1a7f-rep/shim.log": { + "mode": 420, + "sha256": "38f2824fbe91bf2fa1ef55473a7468707248420805b6f6dc85245fd34fa94200" + }, + "verify/results/fpu-cw/run-1a7f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-1a7f/(Autosave).sav": { + "mode": 420, + "sha256": "e48e25fa8425a8a1d174efe3e8a553153447f11f8f91c5fda25bd7db3a26cca7" + }, + "verify/results/fpu-cw/run-1a7f/shim.cfg": { + "mode": 420, + "sha256": "59ff1f48a10c378d0ea92d8a156b135a106017a5b6c47b65de304fde3187c588" + }, + "verify/results/fpu-cw/run-1a7f/shim.log": { + "mode": 420, + "sha256": "a1bb0bd06dae6955ec09e7d0c6cd1e68e19aa2a114256cdeae1275def0a63091" + }, + "verify/results/fpu-cw/run-1a7f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "b9a7affb8235626fcfdd5afe143e4ec03be869b6b386bd9ac78389097df88cef" + }, + "verify/results/fpu-cw/run-off/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-off/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-off/shim.cfg": { + "mode": 420, + "sha256": "6a19c362121a3dba0aac857d6e998131e8b2478f19edcdcbd58006645d096c70" + }, + "verify/results/fpu-cw/run-off/shim.log": { + "mode": 420, + "sha256": "9e3cbd005f0b68037681939b289834c55629bac0e9cd35ac55e6d8ef5333a116" + }, + "verify/results/fpu-cw/run-off/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "ec2271c0d7e09fe51ead7f8d58859c692e8b302233191841d506ea14248caa8c" + }, + "verify/results/fpu-cw/state-checksum-diffs.txt": { + "mode": 420, + "sha256": "3417dfc1b75ad896ac6a5e974d51248eecca319565e2422e146897d19e121b68" + }, + "verify/results/fpu-cw/trace-bitdiff.txt": { + "mode": 420, + "sha256": "8f86707f26f30638097c85f0db6df219adbfebac4e9ec24f1feb8bfce112d4f2" + }, + "verify/results/housekeeping/vm140-result.json": { + "mode": 420, + "sha256": "2250b02342f5c02ba5464cb4656543c6366dec098fbc948006600896ac9254c0" + }, + "verify/results/housekeeping/vm141-result.json": { + "mode": 420, + "sha256": "03d92ffd2947b2f0c058e5c613e04567cffee45be456aece6d771b789f32fb93" + }, + "verify/results/housekeeping/vm144-result.json": { + "mode": 420, + "sha256": "ace15320f7e60995a68f2c9c03a5a44159ae2d64fa273d34d38e285d313a0393" + }, + "verify/results/housekeeping/vm145-result.json": { + "mode": 420, + "sha256": "768666178bf2910a2ff026351727b5cc96e48df70e1ba012031d34eafc95ad7a" + }, + "verify/results/housekeeping/vm146-result.json": { + "mode": 420, + "sha256": "eebb306a3ec8533abae6dfd59f127c48effe9f21107e0c5c09c751108e77bb97" + }, + "verify/results/multiplayer/l2-combat-hud-client.png": { + "mode": 420, + "sha256": "02c86592531ab2889a0eae04e44a644d33c754096fe60aca6640068a7a3f421f" + }, + "verify/results/multiplayer/l2-combat-hud-host.png": { + "mode": 420, + "sha256": "a56daf36fcc88627b29116ad9874c95a3c46960074ff9b823aa15c4ea2660dd7" + }, + "verify/results/multiplayer/l2-combat-loading.png": { + "mode": 420, + "sha256": "f94a718cee08e1b7d346490058f13a107d23aaa7c269fdd53b159a75d62fa558" + }, + "verify/results/multiplayer/l2-combat-round-draw.png": { + "mode": 420, + "sha256": "c1b8424540b702915302f9ff38eaf765e8e95fddc3c5c4d894438dcfcf8b6256" + }, + "verify/results/multiplayer/l2-combat.pcap": { + "mode": 420, + "sha256": "0f112ef96da6c465dbda51baf99eedd66967eed61c097f643bf6c66fc26af31b" + }, + "verify/results/multiplayer/l2-encounter-query-client.png": { + "mode": 420, + "sha256": "4c41b268ad256b0109483a2d9b5ba35de7b9cadb4eb32ef4a68f7867e6e747fd" + }, + "verify/results/multiplayer/l2-encounter-query-host.png": { + "mode": 420, + "sha256": "8c7b0c6d65ddde45eb3447f044589ffc36500b40c4d676af8321f800162f38a0" + }, + "verify/results/multiplayer/l2-fleet-built.png": { + "mode": 420, + "sha256": "6ac91fcf9b42caef50134de01804046d8e60d0fd3966592e9738ceff511949c2" + }, + "verify/results/multiplayer/l2-lobby-client-joined.png": { + "mode": 420, + "sha256": "4a8e698c9ea935449ff0421cd59acd517ebffa388a7572279b28be0369141ff6" + }, + "verify/results/multiplayer/l2-lobby-host-created.png": { + "mode": 420, + "sha256": "e6a7377cabafa973396cedafa5ad5b4863a42f9866709db88faf9572e0ed3c98" + }, + "verify/results/multiplayer/l2-move-warning-dialog.png": { + "mode": 420, + "sha256": "43c6219d74bc0cb28495f13784cdbd3a90c89746b108824c3a2138dbdadcb53e" + }, + "verify/results/multiplayer/l2-socks.log": { + "mode": 420, + "sha256": "109b630d6548d07404f9f905e6c527f10e25221698f1b66226f67f94c5f294b5" + }, + "verify/results/multiplayer/l2-turn13-client.png": { + "mode": 420, + "sha256": "d19f17c4219f21f6c9950440d528a1a91fe3907761df21fd0ba99321b8820baa" + }, + "verify/results/multiplayer/l2-turn13-host.png": { + "mode": 420, + "sha256": "811efcfb571d60435f772a3b619bb329717d1e162b88e440ec0d636b1c6042fc" + }, + "verify/results/multiplayer/w2-internet-browser-no-error.png": { + "mode": 420, + "sha256": "6409b977056c95b29928a0098f75fffd71c501128f9d9325c3000837131c8791" + }, + "verify/results/multiplayer/w2-join-manually-dialog.png": { + "mode": 420, + "sha256": "86904e94a5aec41c1e89271d2712558c3b5055bd2ae4fededfda103d1e22fb71" + }, + "verify/results/multiplayer/w2-lan-browse-listing.png": { + "mode": 420, + "sha256": "6f5d16fa719fb63dd627fba551221c7665b69002e83fe35b8d84912cd7d8ce83" + }, + "verify/results/multiplayer/w2-lobby-client.png": { + "mode": 420, + "sha256": "ede652b21e2a4ea07c8132e4080ba903d1052ebca336bb007e1e8efa62787f10" + }, + "verify/results/multiplayer/w2-mp-turn1.png": { + "mode": 420, + "sha256": "59f9a1f5d8c0fff45d3ae3406dfd9878a5915f18e999d909a5238a90a3b86ed6" + }, + "verify/results/multiplayer/w2-mp-turn2-client.png": { + "mode": 420, + "sha256": "d9da4c151cd8290f80b31eb5ed8a74a0a30a87d1f7a80a179fa082a9439e08e5" + }, + "verify/results/multiplayer/w2-mp-turn2-host.png": { + "mode": 420, + "sha256": "910efd36b4a7c1a85d8ad487660f856339af037b9b00fef0cafd5e77ebdc36e5" + }, + "verify/results/multiplayer/w2-tier0-filtered.pcap": { + "mode": 420, + "sha256": "e108778fd1afb7718c53a4164310b8523415ef073706d310583dab424e5921cc" + }, + "verify/results/saves/ac-turn20-raider.sav": { + "mode": 420, + "sha256": "ee787db8f63d8f564c597bd5a82709790a0fdf47827912037f96b736f2cbed34" + }, + "verify/results/saves/ac-turn22-raider.sav": { + "mode": 420, + "sha256": "0faeaa601e6a867876819e5646b85f8787851093b8e6bd6e3946eb867f2dcc74" + }, + "verify/results/saves/ad-oracle-A-post.sav": { + "mode": 420, + "sha256": "a634510e7208cceb10d8ce016ceb0153601f11d7291f08122bcdb6418e313331" + }, + "verify/results/saves/ad-oracle-B-post.sav": { + "mode": 420, + "sha256": "676b1778880b5d4784ba7f6ef48b1a8e56745adab70a815943b7744876686260" + }, + "verify/results/saves/ad-turn27-two-raiders.sav": { + "mode": 420, + "sha256": "1c8baa27680809d585ab1728391e82729642d32aaedffd5bf95b616f0a11a436" + }, + "verify/results/saves/ap-deploy-turn15.sav": { + "mode": 420, + "sha256": "844f2b746060dc2c4e2099cdc6ceffd5f55ef858c9e347df28c8aca3041f7165" + }, + "verify/results/saves/ap-oa-turn16.sav": { + "mode": 420, + "sha256": "e296394f578b3a5668e5934b9eec8d6c4638ca7411200078f97de1abd346f4c5" + }, + "verify/results/saves/ap-ob-turn16.sav": { + "mode": 420, + "sha256": "262f8bda97c9511d8d2b41e6a8a0582d6f5364c2b01b1caf99e639d0e4f53ebe" + }, + "verify/results/saves/ap-turn22-spydetected.sav": { + "mode": 420, + "sha256": "91381bd7e722ac3847795a402d78ebb31d74dbb5d2909f33d243aec3ef8abaf8" + }, + "verify/results/saves/ap-turn25-spydestroyed.sav": { + "mode": 420, + "sha256": "46380fcf4498d67507e4471eb9ee3762647c53ee5473be142fe5c34e37344bc3" + }, + "verify/results/saves/ar-oracle-A-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/ar-oracle-A-pre.sav": { + "mode": 420, + "sha256": "15b99255e1f03dab3e35ab8c1ac64f221cb5aa9321f113c7a6e3d1263c3f34ca" + }, + "verify/results/saves/ar-oracle-B-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/ar-r1-turn43-post.sav": { + "mode": 420, + "sha256": "37f4a54fd32303fdcc86522b07104fbf2fcb124eec9b1f7005b3446fefcc429f" + }, + "verify/results/saves/ar-r2-probes8-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/ar-turn37-816raiders.sav": { + "mode": 420, + "sha256": "b6f4e05ff226eabd1695003b36293553642553cea96ef417364393e2332a7094" + }, + "verify/results/saves/as-turn14-predeploy.sav": { + "mode": 420, + "sha256": "53986f8511cbf9920f32e2ea406ccf531dd08903fa5d06024fcf03ea7627221d" + }, + "verify/results/saves/as-turn15-spydeployed.sav": { + "mode": 420, + "sha256": "854a10fa1ea602f0f7909f9bf9154942e56ea5fa1db4cce47d6d32bf53952e08" + }, + "verify/results/saves/az-turn11-16destroyers.sav": { + "mode": 420, + "sha256": "501583c7cf2ac81c9db3191203cd3dc5ba5b9e228b9b9ce3dbdcc3650d0070a9" + }, + "verify/results/saves/az-turn23-tarka-comraid.sav": { + "mode": 420, + "sha256": "3d5eb826c149d1fd0278c746f32e6148ca9883a1bc5b522c0d5e6e13fac9788a" + }, + "verify/results/saves/bp-pinA-turn28.sav": { + "mode": 420, + "sha256": "e913ff41188211c02d536da616337544e64133996cd7cc7a6521a8df1960226f" + }, + "verify/results/saves/bp-pinB-turn28.sav": { + "mode": 420, + "sha256": "724528ffde9a7514b69ab9e82ed3b8c8ade63d622c0720de30503a73a92df11e" + }, + "verify/results/saves/bp-turn28-pre.sav": { + "mode": 420, + "sha256": "16f63adbf383946db17c381998957172bca803406b7df78f3b03805fef0bbcb8" + }, + "verify/results/saves/bq/bq-1A-endturn.sav": { + "mode": 420, + "sha256": "1a9d937b8bd9c4bb33dd235d4d6ad6e3b38d9f842fc740839e42e06f52356d39" + }, + "verify/results/saves/bq/bq-1A-post.sav": { + "mode": 420, + "sha256": "56980aa086e1a145b00f781b9d9cf618b152986f1c2267b9fd96cca0f1f604b9" + }, + "verify/results/saves/bq/bq-1B-endturn.sav": { + "mode": 420, + "sha256": "1a9d937b8bd9c4bb33dd235d4d6ad6e3b38d9f842fc740839e42e06f52356d39" + }, + "verify/results/saves/bq/bq-1B-post.sav": { + "mode": 420, + "sha256": "b36ac0ec2986f3a814dd22ca312c895ba6ec8a0e55fca54d8a7fd08a2f96a2c4" + }, + "verify/results/saves/bq/bq-1bA-endturn.sav": { + "mode": 420, + "sha256": "33e3009254f5acd17417053d88372f3d6851e0206932db0f9201cbce6c0f5b21" + }, + "verify/results/saves/bq/bq-1bA-post.sav": { + "mode": 420, + "sha256": "4c356f5916f0e6e4b0ba5f147e31177ae946abd6be2d124559e44c8a13b8ed10" + }, + "verify/results/saves/bq/bq-1bB-endturn.sav": { + "mode": 420, + "sha256": "33e3009254f5acd17417053d88372f3d6851e0206932db0f9201cbce6c0f5b21" + }, + "verify/results/saves/bq/bq-1bB-post.sav": { + "mode": 420, + "sha256": "4c356f5916f0e6e4b0ba5f147e31177ae946abd6be2d124559e44c8a13b8ed10" + }, + "verify/results/saves/bq/bq-res-post.sav": { + "mode": 420, + "sha256": "28bbd9b5c377afcd8f075b535eb1036ee46acf71ab614e7091ccdbdfb3703db2" + }, + "verify/results/saves/bs/bs-C-endturn.sav": { + "mode": 420, + "sha256": "15b99255e1f03dab3e35ab8c1ac64f221cb5aa9321f113c7a6e3d1263c3f34ca" + }, + "verify/results/saves/bs/bs-C-f38-autosave.sav": { + "mode": 420, + "sha256": "0fe8f37479a702d2e4e7752e6cb160dc242f00a082dc4115b7d10c77b24989f0" + }, + "verify/results/saves/bs/bs-C-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/bs/bs-L-endturn.sav": { + "mode": 420, + "sha256": "33e3009254f5acd17417053d88372f3d6851e0206932db0f9201cbce6c0f5b21" + }, + "verify/results/saves/bs/bs-L-post.sav": { + "mode": 420, + "sha256": "4c356f5916f0e6e4b0ba5f147e31177ae946abd6be2d124559e44c8a13b8ed10" + }, + "verify/results/saves/cb-c3-turn1to2-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/saves/cb-c5a-turn1to2-pinned-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/saves/cb-c5b-turn1to2-pinned-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/saves/cb-turn2to3-autosave.sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/saves/cb-turn2to3-endturn.sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/saves/certified-pairs.md": { + "mode": 420, + "sha256": "4e1cfb79cf5a51446b2eae21f91b565348ffa95a9ebac8f95e23019012aefb57" + }, + "verify/results/saves/cr/cr-oracle-autosave.sav": { + "mode": 420, + "sha256": "79df50475a7b83afa927d992b9f030dcf45710f4bda0133b8b1fa4800a72e420" + }, + "verify/results/saves/cr/cr-oracle-endturn.sav": { + "mode": 420, + "sha256": "e00eed0c03a31d27a81b7470a9dcc9ba08a2ac48c20baeee4f34749164743e3f" + }, + "verify/results/saves/cr/cr-replace0-autosave.sav": { + "mode": 420, + "sha256": "6b51db992b158caa5424d71b2dccf72924af7198b4165bfcfc870e0d438fb6d5" + }, + "verify/results/saves/cr/cr-replace1-autosave.sav": { + "mode": 420, + "sha256": "8a4309ee4fe0b3177a2820600b5016c7c256d0f51b065df469ecd0b4f2342235" + }, + "verify/results/saves/determinism-hashes.txt": { + "mode": 420, + "sha256": "bfa0615c4b310ae21c09a7d373d5a9d8799f36a0460089e5950fa0edf9d614d2" + }, + "verify/results/saves/human-turn11-spytechs.sav": { + "mode": 420, + "sha256": "aa63dd3d5489884f70d9c35acfb06c23c84531f403798842e7b0cf8cde94d1d4" + }, + "verify/results/saves/human-turn15-spyprogram.sav": { + "mode": 420, + "sha256": "22306d26f8831b90a62c00a2ebad5a97e77017b62ee96a7439d4c2c76c455cca" + }, + "verify/results/saves/human-turn2-orders.sav": { + "mode": 420, + "sha256": "9a94dec562622310893d6f522a0fae06f1033470f4182098e808b175e7df7c8d" + }, + "verify/results/saves/human-turn3-noderoute.sav": { + "mode": 420, + "sha256": "6db0912a050a846c8f3a184811644c76df3fdb65e83dffbf70289e21cc098a90" + }, + "verify/results/saves/human-turn5-traderoutes.sav": { + "mode": 420, + "sha256": "3829e6c6d8f26cd1183a972bd66edadbd71364c11a224b0a6e40461011bcab29" + }, + "verify/results/saves/human-turn8-traderoutes.sav": { + "mode": 420, + "sha256": "afeb3b2d724e07cf59f15eb1bdb9fcf853391fc06fe21beb20c069ff75b2f836" + }, + "verify/results/saves/turn1-state.sav": { + "mode": 420, + "sha256": "a3f9dc4b49fc669c814b09b87a9c6795de21bac80a1c7bfe3901b8e239fa36cc" + }, + "verify/results/saves/turn2-state.sav": { + "mode": 420, + "sha256": "ab4ac2d7e2977260a4de916f65c7ecc6dd5b0094dac4bb51241317232ea17ab4" + }, + "verify/results/saves/turn2-strict-issues.txt": { + "mode": 420, + "sha256": "33a169a2de29ad502e9b7c0159cd543e0b4d71f2d9b3903f5be58c7846db2429" + }, + "verify/results/saves/turn3-state.sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/saves/zuul-turn15-orders.sav": { + "mode": 420, + "sha256": "ef86a0d61de3533f023af5dc2b9a5720e4e0c5c97d900d88181603a13db7d045" + }, + "verify/results/saves/zuul-turn16-noderoute.sav": { + "mode": 420, + "sha256": "b6b5d283b62cc46bca914e86c34cf45e8960a653e818e59664087429bbb30103" + }, + "verify/results/saves/zuul-turn17-orders2.sav": { + "mode": 420, + "sha256": "1b863e684edecb4afe738ba30c8132065ebcf2d9977409325e714fe0173056e8" + }, + "verify/results/saves/zuul-turn17-rollpending.sav": { + "mode": 420, + "sha256": "aac5ba5b10ff1af6b0e38c565b2f0a60c16858ee4e89dd2a2f5b037eae95ee7d" + }, + "verify/results/saves/zuul-turn23-fleet23.sav": { + "mode": 420, + "sha256": "fd3748327d87b8c478f50fcd09d097eacff21e57d946ecb43b8119b4d0d78b1b" + }, + "verify/results/saves/zuul-turn5-species5.sav": { + "mode": 420, + "sha256": "48559ab5b719b332e47b4bf43af85a616bff1508125d62edb211b80637234af6" + }, + "verify/results/shim/ac/ac-probe-run-shim.log": { + "mode": 420, + "sha256": "b9b4a5f0e399e16b477cde0bd7e2c4ce378549eb5a467f7b8ae5eb64d75cb106" + }, + "verify/results/shim/ac/ac-probe-run-watch.txt": { + "mode": 420, + "sha256": "543d76d150aeb9318b9ae27acf638b8935eea30b1a2d47fb15354b584a458163" + }, + "verify/results/shim/ad/ad-r1-shim.log": { + "mode": 420, + "sha256": "fec98888b030ed42b84551aac1286c0baeaf15b8a545af068dc6605615e96df0" + }, + "verify/results/shim/aidesign/parse_aidesign.py": { + "mode": 420, + "sha256": "fbd4aeb71db548759bdb1ff65a5fdd0af6c192927e6ebe4b510f1083c3bdba13" + }, + "verify/results/shim/aidesign/sd-br-p1-hashes.txt": { + "mode": 420, + "sha256": "cd276116a51df01129f0e840d4c04f7964be34f75e51c384cd8df65969f458e6" + }, + "verify/results/shim/aidesign/sd-br-p1.txt": { + "mode": 420, + "sha256": "325cb9fcfa505ab2a93bbd00d60a7a4644b6b5970cb16a288cc7a43f2e825dd3" + }, + "verify/results/shim/aidesign/sd-pin-p1-hashes.txt": { + "mode": 420, + "sha256": "f0371c0a439d736ae7e67e71bd87d693481100d08243d16a1ac1f2ad0ab8bdce" + }, + "verify/results/shim/aidesign/sd-pin-p1.txt": { + "mode": 420, + "sha256": "45e693d279899e7a04cf59bda67190058896b56f3b0607d5aee21abb12f03071" + }, + "verify/results/shim/aidesign/sd-pin-p2-hashes.txt": { + "mode": 420, + "sha256": "e7d6dc12a940305087ee03dc7f8826f3c6343d24d8fea0f2aa78665d887138c9" + }, + "verify/results/shim/aidesign/sd-pin-p2.txt": { + "mode": 420, + "sha256": "b0206869206bc3a41bebb5175e31179f1a5d125a44b5ddfc10c67c4a0d13c22c" + }, + "verify/results/shim/aidesign/sd-t15-p1-hashes.txt": { + "mode": 420, + "sha256": "1ee71a623eb17e08c623ec8de3775218dc3a7c2de50d36a25dd2395382195962" + }, + "verify/results/shim/aidesign/sd-t15-p1.txt": { + "mode": 420, + "sha256": "df9f4906ee8bbb2efc9ba9a38c41607b89711d0bc9f705473d8448e9715d9280" + }, + "verify/results/shim/aiorders/cb-c1-turn2to3.txt": { + "mode": 420, + "sha256": "9d5014b346cb0fa9e2172f45db77c4437a03b069930eaaa80ea94e742891eb8f" + }, + "verify/results/shim/aiorders/cb-c3-turn1to2-run1.txt": { + "mode": 420, + "sha256": "fdaf27a32b93fdb3024f7a45f0d90b2cf833d3f592960027c3a6cf4ecbb8c616" + }, + "verify/results/shim/aiorders/cb-c5a-turn1to2-pinned.txt": { + "mode": 420, + "sha256": "d4daa0c2599c1b573ed59617243a392861dbc4e1fbeb707c7248708c015d998f" + }, + "verify/results/shim/aiorders/cb-c5b-turn1to2-pinned.txt": { + "mode": 420, + "sha256": "9682186176024242fddb901b10d9a5ad6beba91bd895c2001ca954fc293eab73" + }, + "verify/results/shim/aiorders/l4-research-run1.txt": { + "mode": 420, + "sha256": "5caf1fa25b7b8c2d6af213e59c6ec821be3c46cdd92a1024a6faf5d0a3b1d71c" + }, + "verify/results/shim/aiorders/l4-research-run2.txt": { + "mode": 420, + "sha256": "846ef2cfbc365e7ee2f481048978baf820d57026737261bfba3a328d59cdaad8" + }, + "verify/results/shim/aiorders/l4-turn1to2-aiorders.txt": { + "mode": 420, + "sha256": "c55d9b3c48cb552c02731003c26bb6dfcb8afb611c2a188d21fd4a39f550d269" + }, + "verify/results/shim/aiorders/l4-turn1to2-hooksoff-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/shim/aiorders/l4-turn1to2-instrumented-autosave.sav": { + "mode": 420, + "sha256": "e43ec1d2b443c1017d06b21eb8c76b927613ed49aa78bca46a595a9acb368d1d" + }, + "verify/results/shim/aiorders/l4-turn2to3-aiorders.txt": { + "mode": 420, + "sha256": "696c34996e4b5be0383794fae7ea114779f7fdd0a8cdceff5a00aeb07392933a" + }, + "verify/results/shim/airng/par-br-p1-hashes.txt": { + "mode": 420, + "sha256": "656b1d0c073d9988287e5b76543e42eb1c050d9ebc9872e2b7ec5208b7534b42" + }, + "verify/results/shim/airng/par-br-p1.txt": { + "mode": 420, + "sha256": "eadf1cfb7efd7b374472867ddf1cea5f60e30096090c950049f0c264b0299398" + }, + "verify/results/shim/airng/par-br-p2-hashes.txt": { + "mode": 420, + "sha256": "d97916075c7b4c10464962e9e38aed69288a4d68a16a369c1133df16fa134146" + }, + "verify/results/shim/airng/par-br-p2.txt": { + "mode": 420, + "sha256": "bda355cbbf07301cd6d3716eba32312261c402848c91780a97a6d5cce14c3d92" + }, + "verify/results/shim/airng/par-pin-a1-hashes.txt": { + "mode": 420, + "sha256": "5eb1b557826d45fe9d843b37a92aaef54cd1b8a60900f9c34b4fe25e4bd46a24" + }, + "verify/results/shim/airng/par-pin-a1.txt": { + "mode": 420, + "sha256": "17750bab77512434dcc9e66fc86cbfc34df497cadab5b732cf3b0ef3958e09a4" + }, + "verify/results/shim/airng/par-t1-br-p1-hashes.txt": { + "mode": 420, + "sha256": "7577c33ec33d9e94fb77225929c1f34a3dd94c18fe72a394017811b3b5d53467" + }, + "verify/results/shim/airng/par-t1-br-p1.txt": { + "mode": 420, + "sha256": "8bc9969e2da730d26cc5538b758858a00a4ba6ab2d398458ff4dece1edf8bf92" + }, + "verify/results/shim/airng/par-t1-br-p2-hashes.txt": { + "mode": 420, + "sha256": "7e60fc8615163e8ebccf22fc8910f2e7c4f72a9be7a74bc832bc2a0f64ade0da" + }, + "verify/results/shim/airng/par-t1-br-p2.txt": { + "mode": 420, + "sha256": "7e50a728eb5909bd602a9e6996b908b1b2665c8c983cc0258dad000c8bff8e35" + }, + "verify/results/shim/airng/par-t1-br-p3-hashes.txt": { + "mode": 420, + "sha256": "00ce6b3b4c9dbfd192d09b3b06d91b95576cee8a5a85fccdc36a85547fbdcbc4" + }, + "verify/results/shim/airng/par-t1-br-p3.txt": { + "mode": 420, + "sha256": "28cdf1f6b83c1764f1d1e51a67e3f873566b8503f8504ef52f5b5af24b21c0cb" + }, + "verify/results/shim/airng/parse_airng.py": { + "mode": 493, + "sha256": "3fafa7cf2363620d6a25248d085fbc4e3bd1fdbb9388a6795244834a9a2a2ed0" + }, + "verify/results/shim/ap/ap-probes8-d.shim.log": { + "mode": 420, + "sha256": "115545172568edc6a1d5bb3b559f968aa8a7aaa1f6aeba970daebce98fe56a0c" + }, + "verify/results/shim/ap/ap-probes8-w.shim.log": { + "mode": 420, + "sha256": "8af0897a884bb314958c5e6f2fccd88ff8b1890322dafd3bc904b3f983838620" + }, + "verify/results/shim/ar/ar-r1-ledger.txt": { + "mode": 420, + "sha256": "44bddfc0b9e94812a3a1cfd681a1350caedf2ed8e1174900c2f81c90dc95187e" + }, + "verify/results/shim/ar/ar-r1-probes.txt": { + "mode": 420, + "sha256": "c10251c9bcca5436dc42b2c0bd37b66c144aec4036f2069c2df9340fd764992c" + }, + "verify/results/shim/ar/ar-r1-shim.log": { + "mode": 420, + "sha256": "07003ee203d60a638cc8a1cb0a0f6b8042ba227705b4355f1254312c6dd54e28" + }, + "verify/results/shim/ar/ar-r1-sites.txt": { + "mode": 420, + "sha256": "d1923d549ef3567488d0382ae0ef75fa25c5b1b5812ee5349c5c47aea7a30514" + }, + "verify/results/shim/ar/ar-r2-shim.log": { + "mode": 420, + "sha256": "06dbf04cff5a56b0e55d8e73e5b1e3e9d9235f4afafc8139517b68d676781909" + }, + "verify/results/shim/as/as-probes8-run.shim.log": { + "mode": 420, + "sha256": "cd25c93d8b79e0f0df594fe681917fe880741a54a4188d4d72d2fbc6c42ba8d9" + }, + "verify/results/shim/bp/A-aiorders.txt": { + "mode": 420, + "sha256": "ee9f8bb1073e3bf02e115fdee014f79b11100a0e1e35e308c2bcd4b798302c34" + }, + "verify/results/shim/bp/A-shim.log": { + "mode": 420, + "sha256": "853eab98d09ff1e7a8e7da375a678561b02d6236adec627202ff3bb34d90e797" + }, + "verify/results/shim/bp/B-aiorders.txt": { + "mode": 420, + "sha256": "07daeacf33a16afbed64a8a01ffd26fa73c6d2acd0e6993dd9deb06a7fd93fc3" + }, + "verify/results/shim/bp/B-shim.log": { + "mode": 420, + "sha256": "cde2202333e81cc4eec2c47915181229a68a5fa99879968905a2809c4fe0a79a" + }, + "verify/results/shim/bp/L-aiorders.txt": { + "mode": 420, + "sha256": "28492b0f9be74f61db45eae49b44b41efbc1a3bf6f6d2c888e5cc40bfb7753bd" + }, + "verify/results/shim/bp/L-shim.log": { + "mode": 420, + "sha256": "550d8986a35b3f4742e7522df11bfbf2e832e417ad42cc1bff1a39dd4ee510fd" + }, + "verify/results/shim/bp/statecheck-AB.txt": { + "mode": 420, + "sha256": "dacb5cfa5541934f37b2b1c02b87e809c3f65ba8488aa88d925b295fade0083d" + }, + "verify/results/shim/bq/bq-res-aiorders.txt": { + "mode": 420, + "sha256": "991543eb53fbf1353fe99ed96d4ca358e05f6bac32f00bd1f6dc60fcc002c8b4" + }, + "verify/results/shim/bq/bq-res-shim.log": { + "mode": 420, + "sha256": "7855bd268f69443e7ddfda71873458144728630264703482901bf6d8ffbccd3a" + }, + "verify/results/shim/br/BR-aiorders.txt": { + "mode": 420, + "sha256": "d71e11e7c40aaa740adc55651af556afb9e92768336bc11747ad67151f33f4d1" + }, + "verify/results/shim/br/BR-airng.txt": { + "mode": 420, + "sha256": "04eaeaa688a448f64df00dedfd692b78bca0e3e1207a8292c2fafad507f919ea" + }, + "verify/results/shim/br/BR-shim.log": { + "mode": 420, + "sha256": "bc6ef7aa465c2b1a81d08555174e15fb1a97a207da9eefaa8a6155440869a13e" + }, + "verify/results/shim/br/BR2-deep-aiorders.txt": { + "mode": 420, + "sha256": "b9edb53f7d56c1bb26d3bb77349543dce9564930484bc832475a3a04e5f2ad15" + }, + "verify/results/shim/br/BR2-shim.log": { + "mode": 420, + "sha256": "0de7609693747fdf0abaebd60598af127c918f32561c993715aead91cd24b334" + }, + "verify/results/shim/br/aiorders-diff.txt": { + "mode": 420, + "sha256": "411ceb2bacd62185d25a3c58f199c0bdfcd2759705bef2b36536da3870f73a67" + }, + "verify/results/shim/br/cmp_aiorders.py": { + "mode": 420, + "sha256": "b6c192efb40866aa56f29d9ba2b89e17f18ae0579645db8f34a01010db09cc28" + }, + "verify/results/shim/br/shim.cfg.brdeep": { + "mode": 420, + "sha256": "b8017e344666df816f1191906cf8f54504d631bb7ce9d2f51f6f959e4934ff04" + }, + "verify/results/shim/br/shim.cfg.brprobe": { + "mode": 420, + "sha256": "4f090999dba63ef22ab4993bd6af557e9500819c84f27decc126771f48f98efb" + }, + "verify/results/shim/bs/C-aiorders.txt": { + "mode": 420, + "sha256": "5abc20b68edf6ff52301c01825040e1d6b41b582ba40403ed6c4edc42dcbe4e2" + }, + "verify/results/shim/bs/C-airng.txt": { + "mode": 420, + "sha256": "5a4a56506d1eeb82d3bf0fbba95842566911178a82f0aad9d700a9fe00f1b300" + }, + "verify/results/shim/bs/C-shim.log": { + "mode": 420, + "sha256": "8b8dad987589fd159e789806e89dbcf7a7b40b86446d55e1d0bf10ff25cb8f6f" + }, + "verify/results/shim/bs/L-aiorders.txt": { + "mode": 420, + "sha256": "a03e8c1587633ecbb683c376f30e35e126e98ff0e8204c4ee6b5e2b4fc254104" + }, + "verify/results/shim/bs/L-airng.txt": { + "mode": 420, + "sha256": "8d21083857facd3728446af612b3a97b47e5287a5fe0bdf01423812f8445dacd" + }, + "verify/results/shim/bs/L-shim.log": { + "mode": 420, + "sha256": "246af272e464c715c7abb00471b4ddc404b81143f4065006aa4daec4d82cadb9" + }, + "verify/results/shim/bs/shim.cfg.bsrun": { + "mode": 420, + "sha256": "570b15c208d31a367ec6c6886019693cb17b98d254cebead11ec6746ae5af256" + }, + "verify/results/shim/bu/BU1-aiorders.txt": { + "mode": 420, + "sha256": "944eeb701fcd22480513c34d93f8310541977e89a24ae237bd947aed44092529" + }, + "verify/results/shim/bu/BU1-aivisit.txt": { + "mode": 420, + "sha256": "721f038ef80be92325728fc30f095846b54ff1ac67a41537d4a4d1b97d5e9758" + }, + "verify/results/shim/bu/BU1-shim.log": { + "mode": 420, + "sha256": "28ca02f56823e577662744108965bc3ab1d7241143704ac8ceaacf2e9cd077f3" + }, + "verify/results/shim/bu/BU2-aiorders.txt": { + "mode": 420, + "sha256": "5c388039a3e832465f67b4ca88f3f67550d5189a3a68f33c508c4a467733c9ac" + }, + "verify/results/shim/bu/BU2-aivisit.txt": { + "mode": 420, + "sha256": "19963ed364f47fd965508d96fbf9d1f424938f711f2b1cdc83697f789189271a" + }, + "verify/results/shim/bu/BU2-shim.log": { + "mode": 420, + "sha256": "c0a8c467bc4b4134dc83ca5dedbbfed8dac887b432a56cd12f6e211c8d58daca" + }, + "verify/results/shim/bu/BU3-aiorders.txt": { + "mode": 420, + "sha256": "b6443b3f7db541149f54435f14ba830f54d2f950420f3f0694ff12a8b1eec143" + }, + "verify/results/shim/bu/BU3-aivisit.txt": { + "mode": 420, + "sha256": "fe67a4a1cc6a67e06b2eb5675b4b8543ab9f25ea39a18d7f4c83bce74482e0cc" + }, + "verify/results/shim/bu/BU3-shim.log": { + "mode": 420, + "sha256": "0a802ec556c87f44efaa06f211e75d9b89a66ac6db5a08e34d2a7eae992121ed" + }, + "verify/results/shim/bu/claim-order.txt": { + "mode": 420, + "sha256": "7135e3ed0204a4615e546bc882992073d4b48ee42ea341186c32b6b3dd3dfc47" + }, + "verify/results/shim/bu/claimcheck.py": { + "mode": 420, + "sha256": "85c5ec747f12cf37ec2dbc4021447909eeded68ecd1abb697a6fb60005a54aff" + }, + "verify/results/shim/bu/shim.cfg.bupin": { + "mode": 420, + "sha256": "6b37b047adc95f7c08b6767cdec5bd715a8851f14bff7f187772835d1cc032a7" + }, + "verify/results/shim/cr/cr-N.log": { + "mode": 420, + "sha256": "d5459e6dcf44fbe55d0f60f1ac40d68bed96319bb55986cc24a1b9ca0d8103e0" + }, + "verify/results/shim/cr/cr-R0.log": { + "mode": 420, + "sha256": "3b703881aa2b9a1c111201ff9543f2dcae0f948567ee877df275a1093bb567f7" + }, + "verify/results/shim/cr/cr-R1.log": { + "mode": 420, + "sha256": "8df6af84f74891ff9b0b02fa150641f5fadcd0419bc53c41cbe80bf14ec9c712" + }, + "verify/results/shim/eventlive/c6b-loaded.png": { + "mode": 420, + "sha256": "f442d4b211a47b331cef9a255e83732b80a1ede70ac200596c796ac0aa320017" + }, + "verify/results/shim/eventlive/c7b-turn3.png": { + "mode": 420, + "sha256": "3e070abfbdf4efd2662951049f8545f328aa172d64d00b9c5a1f4243426e803a" + }, + "verify/results/shim/eventlive/load-dialog-8files.png": { + "mode": 420, + "sha256": "e0fc5af16042a70b53bf7d44220db56c56a466c22c4abd641557e94b8e6c1693" + }, + "verify/results/shim/eventlive/shim-zuul.log": { + "mode": 420, + "sha256": "f9d184b33c46cab9d497f7a38056c099ce2ff9b5e8149f563a2353d91985fea1" + }, + "verify/results/shim/eventlive/shim.log": { + "mode": 420, + "sha256": "e65f2e3efa1ce8f70c483bb966448239923db2d3924c709a669bb1a890411b0c" + }, + "verify/results/shim/eventlive/t7-after.png": { + "mode": 420, + "sha256": "dc0a3e8f5a5c9032ead266d106fa69a57677711eb807d26376f29baa6ec0b934" + }, + "verify/results/shim/eventlive/zuul-turn1.png": { + "mode": 420, + "sha256": "f9af979ed08315c0a8d644af800318634b3641628f710f3f9b4d2c77d4f70fdc" + }, + "verify/results/shim/l1/README.md": { + "mode": 420, + "sha256": "f008081756d99825aa81d2802869476f8341f81aeb8c4dbbb77502cf76db5145" + }, + "verify/results/shim/l1/cdiff-frames-2-51.txt": { + "mode": 420, + "sha256": "57cb1911c5bfc7bdfacafc6bb1ad382fc05f46fb9cdcee4479d861af48e585c1" + }, + "verify/results/shim/l1/cdiff.py": { + "mode": 420, + "sha256": "2ace41ce6017cfac8758d8b9955f02de84738d90067a7dfadeb8bffffc842027" + }, + "verify/results/shim/l1/rep.py": { + "mode": 420, + "sha256": "1a7a3819da8e9aeaaf213a62b696388b0a9489924c964407536831b5f7dd9488" + }, + "verify/results/shim/l1/saves/l1-t1t2-post-hooksoff.sav": { + "mode": 420, + "sha256": "e43ec1d2b443c1017d06b21eb8c76b927613ed49aa78bca46a595a9acb368d1d" + }, + "verify/results/shim/l1/saves/l1-t1t2-post.sav": { + "mode": 420, + "sha256": "62061918176e344106e82357e58acc8adec488f6b2969831cb99a84cf25e31c5" + }, + "verify/results/shim/l1/saves/l1-t2t3-post.sav": { + "mode": 420, + "sha256": "2177c659d8dbc39cf7485abe367d42d55cc42cc9a61949d403dcbc79989ec32d" + }, + "verify/results/shim/l1/saves/l1-t2t3-pre.sav": { + "mode": 420, + "sha256": "641a33f06b2fe1c1caf0c4994442bf13a4b03f25a85b34a9875cd22b75715896" + }, + "verify/results/shim/l1/seed-two-processes.txt": { + "mode": 420, + "sha256": "d60412049ced59705284a46078f1906e1aad4140f90db2169e08aeb9530dd985" + }, + "verify/results/shim/l1/seedrep.py": { + "mode": 420, + "sha256": "a06de5d5ccc1e87808eb3877534076340ef5330bee9a86953b8f4dae0268e087" + }, + "verify/results/shim/l1/trace-et1.jsonl": { + "mode": 420, + "sha256": "f21a213bc56983bc94f24303b0837b160f93bfb7e3ca6abdbf2e18321f8dfa19" + }, + "verify/results/shim/l1/trace-et2.jsonl": { + "mode": 420, + "sha256": "6e44b0fc541c3082f91b115de67f5315f43b9db21f0696b856cfff2ead51323a" + }, + "verify/results/shim/l1/trace-oracle.jsonl": { + "mode": 420, + "sha256": "ad9ecbe79a71c84930302868850806798228fe0f2e625b442dd3ed579c05092c" + }, + "verify/results/shim/l1/trace-playforward-f51.jsonl": { + "mode": 420, + "sha256": "6ed0af385dfe7288ad2c994458c8f5d75fc8e29b603dd6607a3703591d25eeb4" + }, + "verify/results/shim/l1/trace-seed-proc1.jsonl": { + "mode": 420, + "sha256": "120074583eb02cd4c3a29aab5826f789d52a6146930b1763f9b0bb824e9a350a" + }, + "verify/results/shim/l1/trace-seed-proc2.jsonl": { + "mode": 420, + "sha256": "03dffeafeff0c33d926207f869741dc544141425c8f665bf58aad4fd363e2f95" + }, + "verify/results/shim/l1/watch-arm.txt": { + "mode": 420, + "sha256": "f8d5811c938d16d003a72a97f2b4b33112914a7ee378fa2b334282616592943e" + }, + "verify/results/shim/l1/watch-hits.txt": { + "mode": 420, + "sha256": "1bf62ac965036a189055cd59a92007c70a2a6aca307df54ce8ccb997048f43d5" + }, + "verify/results/shim/l3/l3-probe-run-shim.log": { + "mode": 420, + "sha256": "f5cd336971ae3d3eaff642e80d9defa20ec2e1ee11e212a082c24365b18d8684" + }, + "verify/results/shim/l3/l3-probe-run-watch.txt": { + "mode": 420, + "sha256": "8d969595789c690a688f7b8fac05288c614d5d9210388ca94315158948c85f24" + }, + "verify/results/shim/l3/l3-spy-run-shim.log": { + "mode": 420, + "sha256": "5abfd08445e9e8139945b095ddddfb56480062019ce6d40304a440c317f21fd1" + }, + "verify/results/shim/l3/l3-spy-run-watch.txt": { + "mode": 420, + "sha256": "c669ccf79202e7060c153151e4fe1be96acf4030cb64aa71bd6a5c212b550b47" + }, + "verify/results/shim/m0-main-menu.png": { + "mode": 420, + "sha256": "465207fda4722ca53585b71647a08b1149944036792a072e7c34e2c437a3e37c" + }, + "verify/results/shim/m0.log": { + "mode": 420, + "sha256": "581d63139503892b6aeeff71acb742143393e9f107aa1f3605d8c028c927cad1" + }, + "verify/results/shim/m1-shim.log": { + "mode": 420, + "sha256": "35401ea82b9a64dbfdb54c282c06c51d7b696afd4ea2794e16071e0fd5c7cbef" + }, + "verify/results/shim/m2-scout-shim.log": { + "mode": 420, + "sha256": "8c46117bdde6b6911a4d77b059b40803d4966652990c8fa3ed67773e5db0459f" + }, + "verify/results/shim/mf-after-shim.log": { + "mode": 420, + "sha256": "86601372b980828171e98fc71afe865f207b1745ef4dcdca646a618c91d17426" + }, + "verify/results/shim/mf-after-turn2.png": { + "mode": 420, + "sha256": "a1f83011ff96e990d7cc80f8306e8fe0c58b96f84eb73ccb6cb013019900133d" + }, + "verify/results/shim/mf-after-turn7.png": { + "mode": 420, + "sha256": "313f3863ab901320174c8ff7cf6f1f6b0d5b3d9d7a2f8999eae6413aedc46fc5" + }, + "verify/results/shim/mf-before-shim.log": { + "mode": 420, + "sha256": "8377a87c7ed05fd0cd7b61e3f1d5fc9c2b9fa294f812c67183d4ce31323a64b1" + }, + "verify/results/shim/mf-before-turn2.png": { + "mode": 420, + "sha256": "c9805791f402ec159fcc6acdd283120eae8536b230666d3049374525595b589f" + }, + "verify/results/shim/mf-before-turn7.png": { + "mode": 420, + "sha256": "3b880b8f96c4cc328aaff8e41068db29b295be8f000c432e321a51b6030b1272" + }, + "verify/results/shim/mf-human-home-no-ships.png": { + "mode": 420, + "sha256": "dfda3e9784eefdc7b75d04908e95c3a192eda7796685907c65bfde3068d6f2bb" + }, + "verify/results/shim/probes/human-t3-5-perturbed.txt": { + "mode": 420, + "sha256": "9b594ab18cdd9aec4fdf807b4d97576191bc6fd48a85cc872c222b515d0f7c01" + }, + "verify/results/shim/probes/human-t5.txt": { + "mode": 420, + "sha256": "0ddd9f0391a3a5d655f1809a9e79d537badd8071f8834e58bdbc7f95d9ff1320" + }, + "verify/results/shim/probes/oracle-restore/h-oracle-autosave.sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/shim/probes/oracle-restore/h-oracle-endturn.sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/shim/probes/zuul-t24-25.txt": { + "mode": 420, + "sha256": "50567b7cb1f008d025baf6cb4b4ad7af7d767a2182afd082c3ac1b1a66c79541" + }, + "verify/results/shim/recap-b1-shim.log": { + "mode": 420, + "sha256": "601cd4cbbec3e8c1f7776eadc4203256ec4c5d1e3e180295369727e1da69ff37" + }, + "verify/results/shim/recap-b3-shim.log": { + "mode": 420, + "sha256": "7c5110a9d4431cc03729a7bddcb13ee69a6d428199051e175b0921391fc02a80" + }, + "verify/results/shim/recap-misc-shim.log": { + "mode": 420, + "sha256": "7cadf2eadb08979cda39fe7e3ed6cfa3f62bdbcd256fc7550b3e27c3f08c9b3e" + }, + "verify/results/shim/recap-misc-turn7.png": { + "mode": 420, + "sha256": "2c1451ded36ad79389f0eb3db098b4e0b0a6f12495d64c832f6e093374005c29" + }, + "verify/results/shim/recap-trace-shim.log": { + "mode": 420, + "sha256": "56da143a92b2edda727862a6fd4a056c716153e23cfddbde076e218ce4c4285f" + }, + "verify/results/shim/recap-turn2-loaded.png": { + "mode": 420, + "sha256": "62a42c44f99d8a53bca735d54a5adf48b89449bb859e859ec573cb40e1a7f2d0" + }, + "verify/results/shim/tailrng/save_rng_delta.py": { + "mode": 420, + "sha256": "a9a04b131427a43372d87688b8eaf230a82a79e2c3c241a90ff4eb31e039749e" + }, + "verify/results/shim/tailrng/z-t5-autosave.sav": { + "mode": 420, + "sha256": "b2124798470d85ea86b0e9e4abfd9e23f3be73caa1115dd7614021be76305939" + }, + "verify/results/shim/tailrng/z-t6-autosave.sav": { + "mode": 420, + "sha256": "2ce6aef9d49ea238455f3ac680556c6a251065af3e28b6540fe09597ae38571c" + }, + "verify/results/shim/tailrng/z-t6-endturn.sav": { + "mode": 420, + "sha256": "afb112896c0236fa715ab3c10139958294085bb2066e22a6d7b76deb0dfa46dc" + }, + "verify/results/shim/tailrng/z2-autosave.sav": { + "mode": 420, + "sha256": "b2124798470d85ea86b0e9e4abfd9e23f3be73caa1115dd7614021be76305939" + }, + "verify/results/shim/tailrng/z2-endturn.sav": { + "mode": 420, + "sha256": "8648957fecf5041233f9add4c8173f78981f026f133ecdbecdb89ddd10917048" + }, + "verify/results/shim/unlock-shim.log": { + "mode": 420, + "sha256": "20a6625b369acb773543e530f1bfdc8b7eaca5c6b58415cc5009bb9858e16f22" + }, + "verify/results/shim/watchpoints/w2-modcount-status-2turns.txt": { + "mode": 420, + "sha256": "335be910dc11a20c9fb80f3b0f37f04fd50a9d8074697bb5365c3fea02790b74" + }, + "verify/results/shim/watchpoints/w2-shim-log-excerpt.txt": { + "mode": 420, + "sha256": "9a344045270e3815004a3376eccfbd030372faba54374d9b6626fd80740b8b13" + }, + "verify/results/shim/watchpoints/w3-modcount-turn1.txt": { + "mode": 420, + "sha256": "328a2319e320f5382e82ad497b6b73245c397cf67515e8a27fa9712418af81ae" + }, + "verify/results/shim/watchpoints/w3-shim-log-excerpt-turn1.txt": { + "mode": 420, + "sha256": "a9b3c20f90a76ee624bde6ee4cae9d1ff1f2baa67aa770a0e70042cb44d11915" + }, + "verify/results/shim/watchpoints/w3-shim-log-excerpt.txt": { + "mode": 420, + "sha256": "af9fe2258fe4168f6066768809c509380183f61bc337331392c5202b900d906a" + }, + "verify/results/shim/watchpoints/w3-tshn-containers.txt": { + "mode": 420, + "sha256": "08eab48d1a202f975f1be87e2279379646142f8b22d9dafc56295399083ed0af" + }, + "verify/results/standalone/cv/cv-input-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "d29f3514e4209954d6c068f34285615aef5f4627ba4627ce97c0e65f93620159" + }, + "verify/results/standalone/cv/cv-leaf-worklist.txt": { + "mode": 420, + "sha256": "0f309711de89cc10cf940d0d4b051b5052ce49a3cc0f3f80c532b50256410778" + }, + "verify/results/standalone/cv/cv-noreplay-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "3734f197cfefd017dbe562fd421d40859bfc2c37d9ac2cedf9c7ddd340a3a4a7" + }, + "verify/results/standalone/cv/cv-replay-run.log": { + "mode": 420, + "sha256": "7372c7da437ece21098cc6f66d0631e146d8aae14a9242bd2278a9922a7f7c02" + }, + "verify/results/standalone/cv/cv-replay-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "1932158abec82f45b9b838f4cb79b1088190ca5281d388f57356af7776e96950" + }, + "verify/results/standalone/dt/dt-canonical-after.txt": { + "mode": 420, + "sha256": "f32fdcf7d6431293133e951045b42a55e8a27d75cd859ad08cd719e5fb696712" + }, + "verify/results/standalone/dt/dt-canonical-before.txt": { + "mode": 420, + "sha256": "b56160cfdcfa0fff25be2aa566959261e375004905814803e231889da665188f" + }, + "verify/results/standalone/dt/dt-observed-leaves-remaining.txt": { + "mode": 420, + "sha256": "e14bd20e60480f98a564e585c0d25d2e758f71016811b8981dbdacd9d51c0c82" + }, + "verify/results/standalone/dt/dt-replay-run.log": { + "mode": 420, + "sha256": "4b7907fc4e735b1c12e3cf64671079abaad757aabd752b134a9fb27d065656cd" + }, + "verify/results/standalone/dt/dt-replay-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "8ddb84e7e6c2f663b1bc4b9611a56a46aac9d09863dcc5be765cb70dc9642c22" + }, + "verify/results/standalone/max-income-oracle.json": { + "mode": 420, + "sha256": "245796e0aea5f5c2238686cba10c651156117fb454805553b2508a8a8fe71a69" + }, + "verify/results/standalone/report.txt": { + "mode": 420, + "sha256": "b47e90432eaf38149f2ecb5316d1962813b6b1423848e36fcc9435ad1f5485df" + }, + "verify/results/standalone/rng-oracle.json": { + "mode": 420, + "sha256": "98a364c80f69d6a84b86c3f9ccc16176d9e769ff061569b0c0ddfced53f9146c" + }, + "verify/results/standalone/rng-oracle.txt": { + "mode": 420, + "sha256": "3496a217a7e4f80bb18c1b067eaedcafcf7bdc877460c6346606fd7f6a55b877" + }, + "verify/results/standalone/status.json": { + "mode": 420, + "sha256": "d38ca6222c83df3a5886e6b32a30772c7174cc0e584f4a3beabedc05770df9cd" + }, + "verify/results/standalone/t36-turnrecord.md": { + "mode": 420, + "sha256": "b017a93ad04af69ef469cd8ea536dff4cab17140d20b3665e7c89533ab5b8a84" + }, + "verify/results/state-checksum/ad-oracleA-vs-oracleB.txt": { + "mode": 420, + "sha256": "b6c440e20108ad2727a7d7aa32a4bd673ec03ca4372461797705d619de1ba48a" + }, + "verify/results/state-checksum/chain-turn1-3.json": { + "mode": 420, + "sha256": "33941d0dd77bfb79e4302f82a410f5f18fe3ae1ade684b5b59c6ed352789a696" + }, + "verify/results/state-checksum/chain.txt": { + "mode": 420, + "sha256": "ae1037dd8394b258ce91262877d348a0561c5f5056cfae74cc0d058e4166aa83" + }, + "verify/results/state-checksum/float-census.txt": { + "mode": 420, + "sha256": "c697c0f187ee8a8ebb157cbff8d7ae42c92f36a501b16acd9f9839a0ffc306a9" + }, + "verify/results/state-checksum/identical-roots.txt": { + "mode": 420, + "sha256": "1143fabfe96954440542adcd3830ad1d862be6c091f3c1b2e63e92a2751703e7" + }, + "verify/results/state-checksum/resave-localisation.txt": { + "mode": 420, + "sha256": "85f4e8fe3581ba5d0ae74974d757c4c2fddc008f3fbe6781891ae8ef65aa693e" + }, + "verify/results/state-checksum/roots.txt": { + "mode": 420, + "sha256": "6ea7ad668703baaff870720683bcc13beff557cebf8e7843526d6677e5b5ef68" + }, + "verify/results/state-checksum/turn2-to-turn3.txt": { + "mode": 420, + "sha256": "3649c86742460a54d89714df1917508f76952c44c07cb7fbc19010910c5df0f4" + }, + "verify/results/turncommands/br2-turn27-deep.tcb": { + "mode": 420, + "sha256": "329b9c3f1e9f85ddeeb71148bd5c0e38f7d26445ed349df60ffbfaf63db46102" + }, + "verify/results/turncommands/br2-turn27-shallow.tcb": { + "mode": 420, + "sha256": "d8346969421a92fa199d0b9faafa642dc2e71a527b08d27984fe73ee70ecbd6b" + }, + "verify/results/turncommands/cb-turn1to2-pinned-run2.json": { + "mode": 420, + "sha256": "01e572975339fbe8a242b2438719173bd5bb4f4916078e5887026408923eb356" + }, + "verify/results/turncommands/cb-turn1to2-pinned-run2.tcb": { + "mode": 420, + "sha256": "16e349db6c46e46520cd2e5f0a9fcf70b537dce878324dd873418ef6cebd8658" + }, + "verify/results/turncommands/cb-turn1to2-pinned.json": { + "mode": 420, + "sha256": "2d4f108b8ac6b1e582382ac25d53f354c293e7caf390b8462d15beaf8e43e01c" + }, + "verify/results/turncommands/cb-turn1to2-pinned.tcb": { + "mode": 420, + "sha256": "28ebfecc3495cc4f5b2892e420cb1b83f3cbdb6b7aabe107f4b1d18233a06094" + }, + "verify/results/turncommands/cb-turn1to2-run1.json": { + "mode": 420, + "sha256": "c9de70196af5453df15cfebcb92c973dfed9d54ffa0dc0a397839cf951ac9b58" + }, + "verify/results/turncommands/cb-turn1to2-run1.tcb": { + "mode": 420, + "sha256": "5cdcfb3ade6cdfb2c00c234f5535c791780230f520d27be14f617462347b4948" + }, + "verify/results/turncommands/cb-turn2to3.json": { + "mode": 420, + "sha256": "8a0d4fc9efae9dcb4eca0de41bf28444d79eb5a4fd4e426671a4d80ab5a46f44" + }, + "verify/results/turncommands/cb-turn2to3.tcb": { + "mode": 420, + "sha256": "420a5d03f2a4ecfa0789835cc46f98961d11bbd7c7fd5f59dc28301aa0b65b6b" + }, + "verify/results/turncommands/l4-turn1to2.tcb": { + "mode": 420, + "sha256": "1b9faa7f8aad9196e36cf1c450e340f37c502a69ccfcaaad7e289bd7b4727b12" + }, + "verify/results/turncommands/l4-turn2to3.tcb": { + "mode": 420, + "sha256": "b0443f176c3915389278de608a8e7c63fa48d4777b924c0e383c7279f2a297e0" + }, + "verify/save-reader/SAVE_FORMAT.md": { + "mode": 420, + "sha256": "5ac2556b6c063c9296ef29e8514cc312983d48a8e2c2832f504c970629990b33" + }, + "verify/save-reader/fixture_joint.sav": { + "mode": 420, + "sha256": "fbe41595e50bb580786f36b197d5b85f87820974c545107c864fa2f1862af3f1" + }, + "verify/save-reader/fixture_split.sav": { + "mode": 420, + "sha256": "3909f12d021bf840617dc8d599841b64d67be46e1c6882cba7728d312d310071" + }, + "verify/save-reader/save_reader.py": { + "mode": 420, + "sha256": "2dcac286b5382b67fe8f2dbce58c80950dd430b726ed0e98f3bcea155df0df35" + }, + "verify/save-reader/save_writer_stub.py": { + "mode": 420, + "sha256": "8343ad15f742ee1b9cd62108efbc9c4b2718c3807442e3dfcfa9513ced7d3638" + }, + "verify/save-reader/test_save_reader.py": { + "mode": 420, + "sha256": "29f609d037eed99bb5444004facbff7b2c5c36fae568e815810585fdc3ddd393" + }, + "verify/state-checksum/STATE_CHECKSUM.md": { + "mode": 420, + "sha256": "5680299a4df27e30cdb545d9d2a640caf9299d61acb662b9512589e4390954e1" + }, + "verify/state-checksum/float_census.py": { + "mode": 420, + "sha256": "a568aad8b9f38aba2474f33941550bf948d050694a1d04dc5c85d15687223ae9" + }, + "verify/state-checksum/run_validation.sh": { + "mode": 493, + "sha256": "bf84b999d2b90368703e80235bac0258b70a1c37dd1902c9205a914a59cb1fc2" + }, + "verify/state-checksum/stability_check.py": { + "mode": 420, + "sha256": "8e640561b05decf590524fbe0dbf3b76a5e2f9c7fde93e005ca6e79464c305f1" + }, + "verify/state-checksum/state_checksum.py": { + "mode": 420, + "sha256": "ed80458e84d92040aa3872464d8df315e935f379ca0da5a2df81c3049826e5b8" + }, + "verify/state-checksum/test_state_checksum.py": { + "mode": 420, + "sha256": "d0ccf8e8390fd0a5d76a8695a490d85dc7e8e415a06ec50b592c57474cc9a73b" + }, + "verify/tooling/README.md": { + "mode": 420, + "sha256": "b05249530d65d43220c1e5c4666939c360d6139ed404a8881f6ad0a9c5c27af6" + }, + "verify/tooling/fixtures.py": { + "mode": 420, + "sha256": "56cccc88b9b9468e07c9ddff39d65813098053ec9e8f00432736906389f200a7" + }, + "verify/tooling/host-tests.json": { + "mode": 420, + "sha256": "90833c99e2749ff890b16b943f43f6ebfc1a1c611f2ed1e40555426fded45c97" + }, + "verify/tooling/test_tooling.py": { + "mode": 420, + "sha256": "bb8d15960dfda13f15cffc57f3b669003b127b4dedbf34100bb4a51c29dd3c6d" + }, + "verify/traces/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "verify/traces/ac-probe-baseline-turn15.jsonl": { + "mode": 420, + "sha256": "a2f4e410f6a8d77f7680b4a69b5b2ac2f59fa80515b0cfe8209e7fec8e4a5b6b" + }, + "verify/traces/ac-probe-turn21-turn23.jsonl": { + "mode": 420, + "sha256": "2bb9317b82744c0da36ef6d9c1a78f31ebacea49b82a18005c0cc75bad62d345" + }, + "verify/traces/ad-r1-turn28-turn29.jsonl": { + "mode": 420, + "sha256": "cde7a1e010aa6195163f3b9320aa5c496fd8c271e9648c90c7319837dd967571" + }, + "verify/traces/ap-probes8-deploy-turn15.jsonl.gz": { + "mode": 420, + "sha256": "e257d5ea3fcb4be8da570d6a5589022e6ba412ff2712f4f06832812d8859e08a" + }, + "verify/traces/ap-probes8-turn16-turn26.jsonl.gz": { + "mode": 420, + "sha256": "df4fb35d9824799d8be79f3a9e976b55b7cd0fb5488b3e12711d04eb3c320f13" + }, + "verify/traces/ar-r1-turn38-turn43.jsonl": { + "mode": 420, + "sha256": "f8653cbd1956346816897b313031c5d70898144d1c84b1c849ac37bfe3bd993c" + }, + "verify/traces/ar-r2-control-turn38-turn39.jsonl": { + "mode": 420, + "sha256": "c1068652ddf54d2ff266c1dc1ef1e69ea663f5d2a83143408f77ec782b3dd988" + }, + "verify/traces/as-probes8-turn15-turn16.jsonl.gz": { + "mode": 420, + "sha256": "024bb0663b167eb364c8e138bae0bf10403860c195bd593cb56f60281060c4e8" + }, + "verify/traces/b2-final-menu.png": { + "mode": 420, + "sha256": "5a95fe260c9cb13dad5fc6f00460819107db93f4ac89f455077ad056600f83fd" + }, + "verify/traces/b2-shim.log": { + "mode": 420, + "sha256": "c31cf01af3659b7fdf008ff44f88f67ee4016dcfb30fc4a72b4d72ea0da8e404" + }, + "verify/traces/b2-techfx-compare.jsonl": { + "mode": 420, + "sha256": "f0202f45b276db6744c80768f12695153812bc882de688cf64705ed6a52f243c" + }, + "verify/traces/b2-techfx-golden.jsonl": { + "mode": 420, + "sha256": "43639e75bd9d510ed270c9cfcbb0c9665f5a6546f748ba81eba3f015e7ca233c" + }, + "verify/traces/cr-N.jsonl.gz": { + "mode": 420, + "sha256": "0071ae72a142533ffb91f9f04caa6704102c826761ff5ae24b57a1c3e9652e46" + }, + "verify/traces/cr-R0.jsonl.gz": { + "mode": 420, + "sha256": "6228c88cebb4dad2158e5586ecbcf71d1160116f2f4a2a8bc020658da8d7d706" + }, + "verify/traces/cr-R1.jsonl.gz": { + "mode": 420, + "sha256": "73f5f15b3343381cf3f973caaf74588fd3d0b6759de1ddcf9e12b9b3ebf29713" + }, + "verify/traces/eventlive-b3-t1-5.jsonl.gz": { + "mode": 420, + "sha256": "9cb344f1d8a3beb4bc1a2bf16baed6c38667443ead9f66fa0f53474a683d263c" + }, + "verify/traces/eventlive-b3-t1.jsonl": { + "mode": 420, + "sha256": "2d9962de9a7ea7fb28b33b72209706b4a27673096f71c8789f9f10ac465f387b" + }, + "verify/traces/eventlive-b3-zuul.jsonl.gz": { + "mode": 420, + "sha256": "0ee09bb884799e72c6a617ab02e741a7ba791ff458af439b9947a87b368a64de" + }, + "verify/traces/h-probes-human-perturbed-t3-5.jsonl.gz": { + "mode": 420, + "sha256": "2567f8ccb6276a4d647c4f4b88d14f7ae63aa4d1797f672a9bd9c7c86e4d7473" + }, + "verify/traces/h-probes-human-t5.jsonl.gz": { + "mode": 420, + "sha256": "92964779111573dc72e6a1845217cd7d709c9900594a106b3de7b59c2b7a88a7" + }, + "verify/traces/h-probes-zuul-t24-25.jsonl.gz": { + "mode": 420, + "sha256": "0966294af27b49159b1e72e683abc0b59fd52cc9bfd9f517130d30cedf7efa29" + }, + "verify/traces/l3-probe-turn8-turn15.jsonl": { + "mode": 420, + "sha256": "d1b5436f917bb4f6f74bd7b1967dbd0626db2c3a5cbc1d67684ef9f010826676" + }, + "verify/traces/m1-compare.jsonl": { + "mode": 420, + "sha256": "f0f6fd15bc73008e43e20d6ed4c4dd91fb2ec8b40935bfd3cc000d8a84ea6731" + }, + "verify/traces/m1-trace-golden.jsonl": { + "mode": 420, + "sha256": "4a4ddc031fb26a8f8b10dace297c73670f53dcbd250a9be94c0e31c9bb44dcc5" + }, + "verify/traces/mf-after-compare.jsonl": { + "mode": 420, + "sha256": "2a894892977176df1a9d6c8199b0f81b48c7bcac15d2c0e7786441fc6125226e" + }, + "verify/traces/mf-before-compare.jsonl": { + "mode": 420, + "sha256": "ee005097ebaac9f30c63f1e400fdf19a47e88010c71d215885234986d122410e" + }, + "verify/traces/output-ref-turn2.jsonl.gz": { + "mode": 420, + "sha256": "7af583350545501414eda38439f2d0fa39149342d9001d2926e2a4e4fdd5cdca" + }, + "verify/traces/output-zuul-and-ref.jsonl.gz": { + "mode": 420, + "sha256": "d581cb50f07766911fa59fa1df1524b33a9df6eec06226966efd5f54f09b6fb5" + }, + "verify/traces/recap-b1-compare.jsonl.gz": { + "mode": 420, + "sha256": "0ce1c92028a8cd10a38d7cca72f90c37ccbd844f24a1950bf0eb6e75739b44e2" + }, + "verify/traces/recap-b3-compare.jsonl": { + "mode": 420, + "sha256": "6ed3bcd99b4657d614bf63cc0fc2dfff650f4cb14e51086ea98c21bccbcf5fa8" + }, + "verify/traces/recap-golden-trace.jsonl.gz": { + "mode": 420, + "sha256": "d62431e9461ffb1b66adc16a39542b86fa8e0cf54a0ed446a8781c4d75a6c3bb" + }, + "verify/traces/recap-misc-compare.jsonl": { + "mode": 420, + "sha256": "d7c4446d45a9cab2af3da4a0d76f7a42c245da1f59db96fddf31d8b1f2c436ed" + }, + "verify/traces/tailrng-drawsites.jsonl.gz": { + "mode": 420, + "sha256": "5c1806e2b1452226674013119e3b220f3cf42be2ad8b0ed998050ad65d1f8415" + }, + "verify/traces/tailrng-refturn2.jsonl.gz": { + "mode": 420, + "sha256": "c33c6cafe015bda6acf5ca32b0c9595e1611f4ac82ecd3adaff8315c7bd3e560" + }, + "verify/traces/tailrng-zuul-long.jsonl.gz": { + "mode": 420, + "sha256": "213e7dd8a6809dd93190f41c87218e802f1fbe77d44d598f287c2a19544063af" + }, + "verify/traces/tailrng-zuul-noderoute.jsonl.gz": { + "mode": 420, + "sha256": "9476ee3b9b397ca9e20bc92eb887c109a075487cdd750746af051797e8838115" + }, + "verify/traces/unlock-b3-t1-5.jsonl.gz": { + "mode": 420, + "sha256": "f6e27a60bf6c74eb98d8bec50146fe1996642285ca008c6a70c3cb148c6ba54c" + }, + "verify/traces/unlock-b3-t1.jsonl.gz": { + "mode": 420, + "sha256": "bfa53bba3e59d17dd330e38ef52fd04fd92f05f3ad357fefd77388d083b49a05" + }, + "verify/traces/unlock-b3-zuul.jsonl.gz": { + "mode": 420, + "sha256": "d94c635105a75a68cb811a3881faf371678c075d240998f48fcf348b8459063f" + } + }, + "manifest_sha256": "b4db6808cc2b8aca33fa27eaab330d32811ce146d829a1bb9474a03f7ccdaeb4", + "path": "/tmp/opencode/sots-final-research-re" + } + }, + "started_at": "2026-09-10T04:08:05.650512+00:00", + "status": "complete", + "stderr": "campaign/runtime/runs/run-472955e277202c411388c66b.stderr.log", + "worktrees": { + "engine": "/tmp/opencode/sots-final-research-engine", + "re": "/tmp/opencode/sots-final-research-re" + } +} diff --git a/campaign/runtime/runs/run-472955e277202c411388c66b.jsonl b/campaign/runtime/runs/run-472955e277202c411388c66b.jsonl new file mode 100644 index 0000000..1605b97 --- /dev/null +++ b/campaign/runtime/runs/run-472955e277202c411388c66b.jsonl @@ -0,0 +1,124 @@ +{"type":"step_start","timestamp":1789013289560,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089806a52001x1PoLYmlw72QAw","messageID":"msg_0898061f1001Yv2OPaGMKkN3v8","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"ee5ec8dfe64ba502baf3b76473fea890b83e0903","type":"step-start"}} +{"type":"tool_use","timestamp":1789013294477,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"todowrite","callID":"call_ZhymHymdBgO050qoQTiB9Esa","state":{"status":"completed","input":{"todos":[{"content":"Read canonical campaign guidance, contract, checkpoint, and open surprises","status":"in_progress","priority":"high"},{"content":"Verify source, worktree, and resource identities against checkpoint/contract","status":"pending","priority":"high"},{"content":"Perform approved architecture-review work within owned scope","status":"pending","priority":"high"},{"content":"Validate owned-scope changes and campaign state","status":"pending","priority":"high"},{"content":"Write mandatory fresh canonical checkpoint with one exact next action","status":"pending","priority":"high"}]},"output":"[\n {\n \"content\": \"Read canonical campaign guidance, contract, checkpoint, and open surprises\",\n \"status\": \"in_progress\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Verify source, worktree, and resource identities against checkpoint/contract\",\n \"status\": \"pending\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Perform approved architecture-review work within owned scope\",\n \"status\": \"pending\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Validate owned-scope changes and campaign state\",\n \"status\": \"pending\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Write mandatory fresh canonical checkpoint with one exact next action\",\n \"status\": \"pending\",\n \"priority\": \"high\"\n }\n]","metadata":{"todos":[{"content":"Read canonical campaign guidance, contract, checkpoint, and open surprises","status":"in_progress","priority":"high"},{"content":"Verify source, worktree, and resource identities against checkpoint/contract","status":"pending","priority":"high"},{"content":"Perform approved architecture-review work within owned scope","status":"pending","priority":"high"},{"content":"Validate owned-scope changes and campaign state","status":"pending","priority":"high"},{"content":"Write mandatory fresh canonical checkpoint with one exact next action","status":"pending","priority":"high"}],"truncated":false},"title":"5 todos","time":{"start":1789013294470,"end":1789013294475}},"metadata":{"openai":{"itemId":"fc_03504f6037a24ebe016aa22d2ae64c87d18981ad16a5c17b9f"}},"id":"prt_089806fd9001OJtUV7I3PVSlWk","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_0898061f1001Yv2OPaGMKkN3v8"}} +{"type":"step_finish","timestamp":1789013294542,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089807dca0019Hi63RBTaD8ln3","reason":"tool-calls","snapshot":"4e28c7ed5f9d730b95e3d8b62702a3319a8030ab","messageID":"msg_0898061f1001Yv2OPaGMKkN3v8","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":6037,"input":5886,"output":129,"reasoning":22,"cache":{"write":0,"read":0}},"cost":0}} +{"type":"step_start","timestamp":1789013295828,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_0898082d0001HCMndVaSckngVr","messageID":"msg_089807df6001yVmklZeC5yS7jl","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"7067446430862e29f879afc6b5806c49146b1842","type":"step-start"}} +{"type":"tool_use","timestamp":1789013304839,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_7VJvXc1cXR2nz5qqaA77BmRv","state":{"status":"error","input":{"filePath":"/tmp/opencode/sots-final-research-engine/sots-engine/docs/architecture.md"},"error":"File not found: /tmp/opencode/sots-final-research-engine/sots-engine/docs/architecture.md","time":{"start":1789013304780,"end":1789013304817}},"metadata":{"openai":{"itemId":"fc_094384d877d06087016aa22d389d6087d1a772be8e5b7e9fc3"}},"id":"prt_08980a5c7001hsoqj9eLOvUAOh","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089807df6001yVmklZeC5yS7jl"}} +{"type":"tool_use","timestamp":1789013304839,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_YsFjNPJEoatrHfm7Romemly6","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/AGENTS.md"},"output":"/home/alex/sots-re/AGENTS.md\nfile\n\n1: # SOTS campaign instructions\n2: \n3: This repository is the state authority for the SOTS reconstruction and its Windows lab.\n4: Start with `campaign/README.md`, your contract, its latest checkpoint, and open surprises.\n5: Current policy: `guides/multi-agent-workflow.md`. Engine architecture: `sots-engine/docs/architecture.md`.\n6: Historical findings are evidence, not current execution instructions or accepted status.\n7: \n8: ## Authority and models\n9: \n10: - The normal lead/RE/implementation/verification/lab loop runs on **GPT-5.6 Sol\n11: (`openai/gpt-5.6-sol`)**. Reserve **GPT-6 Astra (`openai/gpt-6-astra`)** for resolving\n12: falsified assumptions, conflicting evidence, unexpected instrument effects, or changed scope.\n13: - `campaign/models.json` is the role/model registry. Launch with `tools/run_agent.py` and an\n14: explicit role, contract, state root, and paired worktrees. Never silently downgrade or fall back.\n15: - Ordinary implementation/test failures inside the contract may be fixed by its worker.\n16: Falsified assumptions, conflicting evidence, unexpected instrument effects, or changed scope\n17: require a recorded surprise and an Astra resolution before affected work continues.\n18: - No worker subdelegation. The lead assigns parallelism; max two implementation slices after\n19: the pilot. Independent workload preparation is scheduled against explicit resource leases.\n20: \n21: ## Durable state and context\n22: \n23: Checkpoint in the canonical RE state root every **20 tool calls or 15 minutes**, whichever is\n24: earlier, and before an experiment, compaction, handoff, or stop. Include model/session, exact\n25: source identities, evidence paths, decisions versus observations, tests, blockers, and ONE exact\n26: next action. Do not store state only in a chat summary or `/tmp`.\n27: The runner uses bounded 40-step quanta. After checkpointing, stop and restart from the repository;\n28: automatic compaction is a backstop, not proof that a checkpoint was written. On recovery read the\n29: contract/checkpoint, verify worktree and resource identities, then continue. Missing state means\n30: blocked, not permission to reconstruct progress from memory.\n31: \n32: ## Ownership\n33: \n34: Use distinct engine and RE worktrees per lane, baseline-pinned. Canonical runtime state is shared\n35: only through the campaign tools. One integrator writes current evidence pointers and projections.\n36: Never stage someone else's changes. No automatic commit, push, pull, or reset. Commands requiring\n37: these actions need explicit user authorization. Source edits use apply_patch.\n38: VM, shared build-host, and Ghidra mutation require leases. A stale lease is not automatically free.\n39: Record preconditions, side effects, cleanup and access verification for any lab operation.\n40: Rollout bootstrap file-ownership exception: `campaign/rollout/architecture-decision.md` only.\n41: \n42: ## Evidence\n43: \n44: No generic `verified` promotion. Separate understanding, implementation, original dependencies,\n45: and validation scope. A count is insufficient without distinct states, branch exposures, and\n46: positive execution evidence. Include all writes, container elements, allocations, IDs, events,\n47: RNG draws, and runtime-only inputs. Original-assisted execution is not independent replacement.\n48: Synthetic boundary tests and original-game differential tests are complementary. Missing required\n49: inputs, zero execution, incomplete coverage, unexpected skips, stale binaries or unbound source\n50: identity fail acceptance. One independent verifier must reproduce the package; integrated-tree\n51: evidence is required for acceptance. Reports are measurements until those gates pass.\n52: \n53: Never commit owner-supplied binaries/assets or secrets. Engine facts cross only documented\n54: generated channels. Never paste disassembly/decompiler output into the engine repository.\n\n(End of file - total 54 lines)\n","metadata":{"preview":"# SOTS campaign instructions\n\nThis repository is the state authority for the SOTS reconstruction and its Windows lab.\nStart with `campaign/README.md`, your contract, its latest checkpoint, and open surprises.\nCurrent policy: `guides/multi-agent-workflow.md`. Engine architecture: `sots-engine/docs/architecture.md`.\nHistorical findings are evidence, not current execution instructions or accepted status.\n\n## Authority and models\n\n- The normal lead/RE/implementation/verification/lab loop runs on **GPT-5.6 Sol\n (`openai/gpt-5.6-sol`)**. Reserve **GPT-6 Astra (`openai/gpt-6-astra`)** for resolving\n falsified assumptions, conflicting evidence, unexpected instrument effects, or changed scope.\n- `campaign/models.json` is the role/model registry. Launch with `tools/run_agent.py` and an\n explicit role, contract, state root, and paired worktrees. Never silently downgrade or fall back.\n- Ordinary implementation/test failures inside the contract may be fixed by its worker.\n Falsified assumptions, conflicting evidence, unexpected instrument effects, or changed scope\n require a recorded surprise and an Astra resolution before affected work continues.\n- No worker subdelegation. The lead assigns parallelism; max two implementation slices after\n the pilot. Independent workload preparation is scheduled against explicit resource leases.\n","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/AGENTS.md","text":"# SOTS campaign instructions\n\nThis repository is the state authority for the SOTS reconstruction and its Windows lab.\nStart with `campaign/README.md`, your contract, its latest checkpoint, and open surprises.\nCurrent policy: `guides/multi-agent-workflow.md`. Engine architecture: `sots-engine/docs/architecture.md`.\nHistorical findings are evidence, not current execution instructions or accepted status.\n\n## Authority and models\n\n- The normal lead/RE/implementation/verification/lab loop runs on **GPT-5.6 Sol\n (`openai/gpt-5.6-sol`)**. Reserve **GPT-6 Astra (`openai/gpt-6-astra`)** for resolving\n falsified assumptions, conflicting evidence, unexpected instrument effects, or changed scope.\n- `campaign/models.json` is the role/model registry. Launch with `tools/run_agent.py` and an\n explicit role, contract, state root, and paired worktrees. Never silently downgrade or fall back.\n- Ordinary implementation/test failures inside the contract may be fixed by its worker.\n Falsified assumptions, conflicting evidence, unexpected instrument effects, or changed scope\n require a recorded surprise and an Astra resolution before affected work continues.\n- No worker subdelegation. The lead assigns parallelism; max two implementation slices after\n the pilot. Independent workload preparation is scheduled against explicit resource leases.\n\n## Durable state and context\n\nCheckpoint in the canonical RE state root every **20 tool calls or 15 minutes**, whichever is\nearlier, and before an experiment, compaction, handoff, or stop. Include model/session, exact\nsource identities, evidence paths, decisions versus observations, tests, blockers, and ONE exact\nnext action. Do not store state only in a chat summary or `/tmp`.\nThe runner uses bounded 40-step quanta. After checkpointing, stop and restart from the repository;\nautomatic compaction is a backstop, not proof that a checkpoint was written. On recovery read the\ncontract/checkpoint, verify worktree and resource identities, then continue. Missing state means\nblocked, not permission to reconstruct progress from memory.\n\n## Ownership\n\nUse distinct engine and RE worktrees per lane, baseline-pinned. Canonical runtime state is shared\nonly through the campaign tools. One integrator writes current evidence pointers and projections.\nNever stage someone else's changes. No automatic commit, push, pull, or reset. Commands requiring\nthese actions need explicit user authorization. Source edits use apply_patch.\nVM, shared build-host, and Ghidra mutation require leases. A stale lease is not automatically free.\nRecord preconditions, side effects, cleanup and access verification for any lab operation.\nRollout bootstrap file-ownership exception: `campaign/rollout/architecture-decision.md` only.\n\n## Evidence\n\nNo generic `verified` promotion. Separate understanding, implementation, original dependencies,\nand validation scope. A count is insufficient without distinct states, branch exposures, and\npositive execution evidence. Include all writes, container elements, allocations, IDs, events,\nRNG draws, and runtime-only inputs. Original-assisted execution is not independent replacement.\nSynthetic boundary tests and original-game differential tests are complementary. Missing required\ninputs, zero execution, incomplete coverage, unexpected skips, stale binaries or unbound source\nidentity fail acceptance. One independent verifier must reproduce the package; integrated-tree\nevidence is required for acceptance. Reports are measurements until those gates pass.\n\nNever commit owner-supplied binaries/assets or secrets. Engine facts cross only documented\ngenerated channels. Never paste disassembly/decompiler output into the engine repository.","lineStart":1,"lineEnd":54,"totalLines":54,"truncated":false}},"title":"AGENTS.md","time":{"start":1789013304742,"end":1789013304827}},"metadata":{"openai":{"itemId":"fc_094384d877d06087016aa22d389d2087d1a00515ba8475b790"}},"id":"prt_08980a5a00011xVjNi9p9EcLLv","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089807df6001yVmklZeC5yS7jl"}} +{"type":"tool_use","timestamp":1789013304839,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_g1Xiv2Lf6IJ2TuQA7oIeuc6x","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/README.md"},"output":"/home/alex/sots-re/campaign/README.md\nfile\n\n1: # Canonical campaign controls\n2: \n3: `sots-re/campaign/` is the state authority. Start with your contract, its checkpoint, open\n4: surprises, and [current policy](../guides/multi-agent-workflow.md). Board/dashboard are generated\n5: projections. Historical evidence is not current acceptance. No automatic commits or lab operations.\n6: \n7: Framework development is complete. The `controls-bootstrap` contract reached scoped acceptance;\n8: see [rollout result](rollout/RESULT.md) and its current contract/verdict for source-bound evidence.\n9: Active work is reverse engineering. Change tooling only to unblock a named RE experiment.\n10: \n11: ## Contract format\n12: \n13: `contract.schema.json` is strict JSON Schema (unknown fields and duplicate JSON keys fail).\n14: The standard-library validator implements the schema's used subset. A populated example is\n15: [contracts/controls-bootstrap.json](contracts/controls-bootstrap.json); its lifecycle is in the record.\n16: \n17: Required fields:\n18: \n19: | Field | Structure |\n20: |---|---|\n21: | `id`, `title`, `status` | Slug, short title, lifecycle state |\n22: | `owner` | `{ \"name\": \"worker-identity\", \"role\": \"implementer\" }` |\n23: | `baseline` | `{ \"engine\": {\"path\":\"/absolute/canonical/engine\",\"commit\":\"full-commit-id\"}, \"re\": {\"path\":\"/absolute/canonical/re\",\"commit\":\"full-commit-id\"} }` |\n24: | `scope`, `inputs`, `effects` | Arrays of explicit nonempty strings; include full write set and runtime inputs |\n25: | `original_dependencies` | String array, including original-assisted portions and unavailable inputs |\n26: | `dependencies` | Array of other contract IDs; all must be accepted before ready/implementing |\n27: | `acceptance` | Array of `{ \"id\": \"unique-criterion\", \"axis\": \"validation-scope\", \"criterion\": \"executable requirement\" }` |\n28: | `predictions`, `stop_conditions` | String arrays of predictions and conditions that halt work |\n29: | `checkpoint` | `null` or `campaign/runtime/checkpoints/.json` |\n30: \n31: Optional `evidence` is an array of\n32: `{id,axis,path,sha256,source,integrated,source_binding,binaries,inputs,outcomes}`.\n33: `path` is an existing canonical RE-relative artifact; `sha256` hashes its actual bytes; `source`\n34: equals the contract's complete baseline object. Store understanding,\n35: implementation, original dependencies, and validation scope as separate acceptance/evidence axes.\n36: There is no generic `verified` scalar. Baseline commit IDs describe starting repositories;\n37: dirty source identity is machine-bound by `source_binding`, never inferred from those commits.\n38: Criteria need distinct states, branch exposure, positive execution, complete writes/elements,\n39: allocations/IDs/events/RNG/runtime inputs, synthetic and original-game differentials as applicable.\n40: The CLI checks package identity and declared axes; the independent reviewer evaluates the actual\n41: criteria, gate outcomes, full manifests and integrated reproduction. A passing measurement alone\n42: does not establish acceptance.\n43: \n44: ### Source-bound evidence interface (R4)\n45: \n46: `source_binding` is `{engine:{path,commit,sha256},re:{path,commit,sha256}}`. Generate it with:\n47: \n48: ```sh\n49: python3 tools/campaign.py --state-root /home/alex/sots-re source-binding research-replacement --engine-worktree /absolute/candidate-engine --re-worktree /absolute/candidate-re\n50: ```\n51: \n52: Omit both worktree arguments to bind the canonical integrated trees. Paths must be Git worktree\n53: roots in the respective baseline repositories. `commit` is the actual current HEAD; `sha256`\n54: is the deterministic digest of the actual file manifest, including dirty/untracked nonignored\n55: files, deleted tracked paths (`null`), file bytes and Unix modes. Symlinks/submodules fail closed.\n56: The fixed manifest policy uses `git ls-files --cached --others --exclude-standard`; ignored\n57: untracked build/output files are not source. Python cache directories are excluded. In RE only,\n58: `verify/results/` and `campaign/` are excluded **except** `campaign/models.json`,\n59: `campaign/contract.schema.json`, and `campaign/agents/**`. These exclusions prevent mutable\n60: contracts/checkpoints/evidence/projections from hashing themselves. Relevant RE tools, tests,\n61: generated facts and guides remain bound. Any consumed item outside that source inventory must\n62: appear among immutable input/binary artifacts. The independent reviewer checks inventory adequacy.\n63: \n64: `binaries` and `inputs` are nonempty arrays of `{path,sha256}` artifact references; for tooling\n65: contracts, bind the executable scripts/interpreter identity package and fixture input package.\n66: `outcomes` exactly covers the acceptance criterion IDs for that evidence axis, with entries\n67: `{criterion,status,artifact:{path,sha256}}`; promotion requires `status: \"pass\"`. Outcome artifacts\n68: contain positive execution, branch/state exposures, reproduction recipe and required effect/input\n69: accounting. The CLI checks identities, hashes and declared outcomes, **not arbitrary criterion\n70: semantics**. The independent verifier must reproduce and challenge those claims.\n71: \n72: For example, an outcome for the bootstrap contract is:\n73: \n74: ```json\n75: {\"criterion\":\"controls-negative-paths\",\"status\":\"pass\",\"artifact\":{\"path\":\"verify/results/controls/result.json\",\"sha256\":\"\"}}\n76: ```\n77: \n78: Capture bindings when producing evidence; do not attach a fresh source hash to old measurements.\n79: Every evidence/verdict/promotion check rehashes referenced sources and artifacts. Same-HEAD byte\n80: changes reject old evidence and verdicts. Integrated records require canonical paths, lead in\n81: integration state, and one identical binding across **all** final integrated evidence. A lead's\n82: `integrated` boolean cannot substitute for this check. Verdicts bind the full evidence array and\n83: the source-binding array; old verdicts lacking these identities must be reproduced.\n84: \n85: This contract wrapper is separate from gate measurement schema **`sots-gate/1`**, whose `source`\n86: still has `engine`/`re`. Reference its immutable manifest/binary/input package; do not rename its\n87: fields to match contract `source`. Reporter output is measured evidence, with `--require-match`\n88: for required equality, and gains acceptance only through independent contract/integration gates.\n89: \n90: ## State and transactions\n91: \n92: Every command requires `--state-root /absolute/canonical/sots-re` (the repository, not `campaign/`).\n93: No sibling inference. Control records stay below canonical `campaign/runtime/`; contracts remain\n94: in `campaign/contracts/`. Immutable hashed artifacts may be referenced anywhere inside canonical\n95: RE, including existing `verify/` corpora, without copying them. Absolute/traversing artifact paths,\n96: outside symlinks, Git internals and named secret/private-key locations are rejected; aliases are\n97: checked after resolution too. Never reference secrets or commit owner-supplied binaries/assets.\n98: JSON writes are atomic and fsynced; a canonical `flock` serializes\n99: CLI mutations, WIP decisions, and resource acquisition. Do not hand-edit active state concurrently\n100: with commands. Interrupted multi-file operations retain blocking records and require inspection.\n101: \n102: Runtime APIs (JSON files; no server):\n103: \n104: - `runtime/checkpoints/*.json`: `sots-checkpoint/1`, contract, actor/role/model/session, timestamp,\n105: contract `basis` digest, bounded summary (6000 characters), up to 32 `{path,sha256}` artifacts,\n106: and one `next_action` (2000 characters). Include observations versus decisions, source identities,\n107: tests, blockers, resources/access/cleanup, exact next action in the summary/artifacts.\n108: Do not attach the checkpoint's own contract as an artifact: saving the pointer changes that\n109: file. Its task metadata is already covered by `basis`; the CLI rejects this self-reference.\n110: - `runtime/surprises/*.json`: `sots-surprise/1`, id, contract, `status: open|resolved`, summary,\n111: discriminating probe, actor/model/session provenance where applicable, optional decision ID.\n112: - `runtime/decisions/*.json`: `sots-decision/1`, Astra resolution, explanation/probe, invalidated\n113: evidence and checkpoint; prior verdict is marked invalidated. Resolution returns needs-revision\n114: only when all surprises are closed. Re-probe and rebuild evidence; resolution is not acceptance.\n115: - `runtime/verdicts/.json`: independent verifier actor/session/model, pass/fail,\n116: explanation, contract basis, complete evidence digest and source-bindings digest.\n117: - `runtime/transitions/*.json`: actor/model, previous/next lifecycle state, timestamp.\n118: - `runtime/leases/.json`: owner, random token, held/released, acquisition/release provenance.\n119: - `runtime/runs/run-*.json`, `.jsonl`, `.stderr.log`: requested model/config, command, worktree\n120: manifests before/after, expanded prompt hash, effective configuration hashes, canonical config\n121: file hashes, actual events/session/model when emitted, completion/checkpoint status. Effective\n122: provider config is hashed rather than persisted because it can contain credentials.\n123: `active-.json` reserves the contract. Interrupted running reservations never auto-expire.\n124: \n125: Lifecycle: `proposed -> ready -> implementing -> verification -> integration -> accepted`.\n126: Blocked and needs-revision edges support repairs; no skipping stages. Ready requires scope,\n127: inputs, acceptance, stop conditions, valid pinned baseline and accepted dependencies. Implementing\n128: is atomically capped at two concurrent contracts; lead schedules only one pilot before enabling\n129: two independent slices. Verification requires fresh checkpoint/artifacts after implementation start.\n130: Integration requires lead plus independent passing verifier bound to current source/evidence.\n131: Accepted requires every declared axis in integrated evidence, passing independent verdict over\n132: that final package, and no open surprises. Adding integrated evidence changes the evidence digest:\n133: the verifier must attest the integrated package again. Handoff/promotion/end checkpoints must be\n134: within 15 minutes; recovery start has no age limit.\n135: \n136: Role/model registry: lead/architecture-review/analyst/implementer/verifier/lab =\n137: `openai/gpt-5.6-sol`; resolver = `openai/gpt-6-astra`.\n138: CLI identity fields are **claims, not authenticated model authority**. The runner requests the\n139: registry model explicitly and records emitted provenance. Editable JSON, agent permissions and\n140: shell-accessible tooling are not a security boundary. No silent routing fallback.\n141: \n142: ## Commands\n143: \n144: Run from either repository using the canonical tool path when necessary. Examples:\n145: \n146: ```sh\n147: python3 tools/campaign.py --state-root /home/alex/sots-re validate\n148: python3 tools/campaign.py --state-root /home/alex/sots-re list\n149: python3 tools/campaign.py --state-root /home/alex/sots-re status research-replacement\n150: python3 tools/campaign.py --state-root /home/alex/sots-re checkpoint controls-bootstrap --actor controls-architect --role architecture-review --model openai/gpt-6-astra --session rollout-controls --summary 'Source identities, observations, decisions, tests and blockers are in the attached checkpoint.' --artifact campaign/rollout/controls-worker-state.md --next-action 'Run the independent controls review.'\n151: python3 tools/campaign.py --state-root /home/alex/sots-re transition controls-bootstrap ready --actor controls-architect --role architecture-review --model openai/gpt-6-astra\n152: ```\n153: \n154: `surprise CONTRACT --summary TEXT --probe TEXT` blocks immediately. `resolve SURPRISE_ID\n155: --explanation TEXT --probe TEXT` requires claimed Astra lead/resolver. Both also require\n156: `--actor NAME --role ROLE --model MODEL`. `evidence CONTRACT --record campaign/path.json`\n157: uses the same identity flags; record format is the evidence object above. Integrated records\n158: require lead and integration state. `verdict CONTRACT --session SESSION --verdict pass|fail\n159: --explanation TEXT` requires verifier identity flags and independent actor/session.\n160: \n161: ```sh\n162: python3 tools/campaign.py --state-root /home/alex/sots-re lease acquire windows-vm --actor lab-one --role lab --model openai/gpt-5.5\n163: python3 tools/campaign.py --state-root /home/alex/sots-re lease show windows-vm\n164: python3 tools/campaign.py --state-root /home/alex/sots-re lease release windows-vm --actor lab-one --role lab --model openai/gpt-5.5 --token TOKEN_FROM_ACQUIRE\n165: python3 tools/campaign.py --state-root /home/alex/sots-re lease release windows-vm --actor lead --role lead --model openai/gpt-6-astra --lead-release --reason 'Confirmed prior operator stopped; access and cleanup checked.'\n166: ```\n167: \n168: No stale lease stealing. Explicit lead release requires an explanation and lab preconditions,\n169: side effects, cleanup, and access verification in the operator checkpoint. Treat lease tokens\n170: as local owner capabilities, not secrets to put in a board/dashboard.\n171: \n172: ## Fresh bounded launches\n173: \n174: Prepare **two actual linked worktrees**, each distinct from its canonical source repository,\n175: at the contract's full baseline commit. No auto commits/worktree creation. Launch uses explicit\n176: canonical `OPENCODE_CONFIG`, checks matching repo-local agent/model/40 steps, and sets the final\n177: environment overlay to bind requested role/model/steps. Other inherited config overrides are\n178: cleared. `opencode models` must list the exact requested model even for dry runs.\n179: \n180: ```sh\n181: python3 tools/run_agent.py --state-root /home/alex/sots-re --role implementer --actor worker-one --contract slice-one --engine-worktree /home/alex/worktrees/slice-one-engine --re-worktree /home/alex/worktrees/slice-one-re --cwd engine --dry-run\n182: ```\n183: \n184: Remove `--dry-run` to execute. Normal worker launch requires a valid durable checkpoint, matching\n185: owner/role/status, no open surprises, baseline HEADs and canonical Git common-directory identity.\n186: Recovery checks checkpoint identity/basis and artifact hashes regardless of age, rechecks any\n187: source-bound evidence, and validates paired Git worktree/baseline identity. Missing ordinary-worker\n188: state still blocks. Bootstrap lead/architecture-review can start without a checkpoint; they still\n189: need paired worktrees. Astra lead/resolver may launch a blocked contract with open surprises and\n190: without a worker checkpoint in **resolution-only** scope: read evidence and write decisions/state,\n191: no implementation. Its prompt and permission overlay carry that limit, and worktree source changes\n192: fail completion. Ordinary affected workers stay blocked. Other Astra architecture actors receive\n193: explicit architecture authority within their owned scope. Each run is a fresh\n194: `opencode run --format json --model ... --agent ...`; no resume/continue option is used. The prompt\n195: supplies the run ID to use as checkpoint `--session`; actual OpenCode session IDs are captured\n196: separately when emitted. On exit, a checkpoint after start matching actor/role/model/run ID is\n197: mandatory or the run is marked incomplete. Completion additionally requires a zero exit, no\n198: `type:error`, a successful `step_finish` with `part.reason: \"stop\"`, one nonempty actual session ID,\n199: and consistent explicitly emitted model IDs. Text/tool-call/length events alone cannot complete a\n200: run. Missing model emission is recorded `observed_model_status: \"unavailable\"`, never invented.\n201: \n202: The runner checks the exact Git baseline again under reservation lock, rejects intervening contract\n203: changes, and checks canonical model/prompt/config files and effective configuration for drift at\n204: completion. Expanded role prompt/model/steps are frozen in the last-layer environment overlay.\n205: `opencode debug config` runs in the actual launch cwd with the actual environment before execution\n206: and again at completion. Permissions explicitly allow read/search, ordinary worker shell commands,\n207: and external-directory access to the assigned paired trees plus canonical RE; role-specific edit\n208: denies survive. Task delegation and interactive questions are denied. No `--auto` is required.\n209: Noninteractive command/environment tests and a live loader check cover this overlay; an actual\n210: normal worker launch smoke is a separate lead integration check. Permissions and before/after\n211: checks are operational guards, not a sandbox or continuous filesystem audit.\n212: Compaction is a backstop; no token threshold or machine-enforced 20-tool-call claim.\n213: \n214: ## Local verification\n215: \n216: ```sh\n217: python3 -m unittest discover -s verify/campaign -p 'test_*.py' -v\n218: python3 tools/campaign.py --state-root /home/alex/sots-re validate\n219: ```\n220: \n221: Tests create commits only in disposable fixture repositories, linked worktrees and fake OpenCode processes; they do\n222: not launch agents or touch the lab. Historical rollout artifacts retain the scope and source identity\n223: of their runs; consult the accepted contract and current evidence, not an old handoff's status prose.\n\n(End of file - total 223 lines)\n","metadata":{"preview":"# Canonical campaign controls\n\n`sots-re/campaign/` is the state authority. Start with your contract, its checkpoint, open\nsurprises, and [current policy](../guides/multi-agent-workflow.md). Board/dashboard are generated\nprojections. Historical evidence is not current acceptance. No automatic commits or lab operations.\n\nFramework development is complete. The `controls-bootstrap` contract reached scoped acceptance;\nsee [rollout result](rollout/RESULT.md) and its current contract/verdict for source-bound evidence.\nActive work is reverse engineering. Change tooling only to unblock a named RE experiment.\n\n## Contract format\n\n`contract.schema.json` is strict JSON Schema (unknown fields and duplicate JSON keys fail).\nThe standard-library validator implements the schema's used subset. A populated example is\n[contracts/controls-bootstrap.json](contracts/controls-bootstrap.json); its lifecycle is in the record.\n\nRequired fields:\n\n| Field | Structure |\n|---|---|","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/README.md","text":"# Canonical campaign controls\n\n`sots-re/campaign/` is the state authority. Start with your contract, its checkpoint, open\nsurprises, and [current policy](../guides/multi-agent-workflow.md). Board/dashboard are generated\nprojections. Historical evidence is not current acceptance. No automatic commits or lab operations.\n\nFramework development is complete. The `controls-bootstrap` contract reached scoped acceptance;\nsee [rollout result](rollout/RESULT.md) and its current contract/verdict for source-bound evidence.\nActive work is reverse engineering. Change tooling only to unblock a named RE experiment.\n\n## Contract format\n\n`contract.schema.json` is strict JSON Schema (unknown fields and duplicate JSON keys fail).\nThe standard-library validator implements the schema's used subset. A populated example is\n[contracts/controls-bootstrap.json](contracts/controls-bootstrap.json); its lifecycle is in the record.\n\nRequired fields:\n\n| Field | Structure |\n|---|---|\n| `id`, `title`, `status` | Slug, short title, lifecycle state |\n| `owner` | `{ \"name\": \"worker-identity\", \"role\": \"implementer\" }` |\n| `baseline` | `{ \"engine\": {\"path\":\"/absolute/canonical/engine\",\"commit\":\"full-commit-id\"}, \"re\": {\"path\":\"/absolute/canonical/re\",\"commit\":\"full-commit-id\"} }` |\n| `scope`, `inputs`, `effects` | Arrays of explicit nonempty strings; include full write set and runtime inputs |\n| `original_dependencies` | String array, including original-assisted portions and unavailable inputs |\n| `dependencies` | Array of other contract IDs; all must be accepted before ready/implementing |\n| `acceptance` | Array of `{ \"id\": \"unique-criterion\", \"axis\": \"validation-scope\", \"criterion\": \"executable requirement\" }` |\n| `predictions`, `stop_conditions` | String arrays of predictions and conditions that halt work |\n| `checkpoint` | `null` or `campaign/runtime/checkpoints/.json` |\n\nOptional `evidence` is an array of\n`{id,axis,path,sha256,source,integrated,source_binding,binaries,inputs,outcomes}`.\n`path` is an existing canonical RE-relative artifact; `sha256` hashes its actual bytes; `source`\nequals the contract's complete baseline object. Store understanding,\nimplementation, original dependencies, and validation scope as separate acceptance/evidence axes.\nThere is no generic `verified` scalar. Baseline commit IDs describe starting repositories;\ndirty source identity is machine-bound by `source_binding`, never inferred from those commits.\nCriteria need distinct states, branch exposure, positive execution, complete writes/elements,\nallocations/IDs/events/RNG/runtime inputs, synthetic and original-game differentials as applicable.\nThe CLI checks package identity and declared axes; the independent reviewer evaluates the actual\ncriteria, gate outcomes, full manifests and integrated reproduction. A passing measurement alone\ndoes not establish acceptance.\n\n### Source-bound evidence interface (R4)\n\n`source_binding` is `{engine:{path,commit,sha256},re:{path,commit,sha256}}`. Generate it with:\n\n```sh\npython3 tools/campaign.py --state-root /home/alex/sots-re source-binding research-replacement --engine-worktree /absolute/candidate-engine --re-worktree /absolute/candidate-re\n```\n\nOmit both worktree arguments to bind the canonical integrated trees. Paths must be Git worktree\nroots in the respective baseline repositories. `commit` is the actual current HEAD; `sha256`\nis the deterministic digest of the actual file manifest, including dirty/untracked nonignored\nfiles, deleted tracked paths (`null`), file bytes and Unix modes. Symlinks/submodules fail closed.\nThe fixed manifest policy uses `git ls-files --cached --others --exclude-standard`; ignored\nuntracked build/output files are not source. Python cache directories are excluded. In RE only,\n`verify/results/` and `campaign/` are excluded **except** `campaign/models.json`,\n`campaign/contract.schema.json`, and `campaign/agents/**`. These exclusions prevent mutable\ncontracts/checkpoints/evidence/projections from hashing themselves. Relevant RE tools, tests,\ngenerated facts and guides remain bound. Any consumed item outside that source inventory must\nappear among immutable input/binary artifacts. The independent reviewer checks inventory adequacy.\n\n`binaries` and `inputs` are nonempty arrays of `{path,sha256}` artifact references; for tooling\ncontracts, bind the executable scripts/interpreter identity package and fixture input package.\n`outcomes` exactly covers the acceptance criterion IDs for that evidence axis, with entries\n`{criterion,status,artifact:{path,sha256}}`; promotion requires `status: \"pass\"`. Outcome artifacts\ncontain positive execution, branch/state exposures, reproduction recipe and required effect/input\naccounting. The CLI checks identities, hashes and declared outcomes, **not arbitrary criterion\nsemantics**. The independent verifier must reproduce and challenge those claims.\n\nFor example, an outcome for the bootstrap contract is:\n\n```json\n{\"criterion\":\"controls-negative-paths\",\"status\":\"pass\",\"artifact\":{\"path\":\"verify/results/controls/result.json\",\"sha256\":\"\"}}\n```\n\nCapture bindings when producing evidence; do not attach a fresh source hash to old measurements.\nEvery evidence/verdict/promotion check rehashes referenced sources and artifacts. Same-HEAD byte\nchanges reject old evidence and verdicts. Integrated records require canonical paths, lead in\nintegration state, and one identical binding across **all** final integrated evidence. A lead's\n`integrated` boolean cannot substitute for this check. Verdicts bind the full evidence array and\nthe source-binding array; old verdicts lacking these identities must be reproduced.\n\nThis contract wrapper is separate from gate measurement schema **`sots-gate/1`**, whose `source`\nstill has `engine`/`re`. Reference its immutable manifest/binary/input package; do not rename its\nfields to match contract `source`. Reporter output is measured evidence, with `--require-match`\nfor required equality, and gains acceptance only through independent contract/integration gates.\n\n## State and transactions\n\nEvery command requires `--state-root /absolute/canonical/sots-re` (the repository, not `campaign/`).\nNo sibling inference. Control records stay below canonical `campaign/runtime/`; contracts remain\nin `campaign/contracts/`. Immutable hashed artifacts may be referenced anywhere inside canonical\nRE, including existing `verify/` corpora, without copying them. Absolute/traversing artifact paths,\noutside symlinks, Git internals and named secret/private-key locations are rejected; aliases are\nchecked after resolution too. Never reference secrets or commit owner-supplied binaries/assets.\nJSON writes are atomic and fsynced; a canonical `flock` serializes\nCLI mutations, WIP decisions, and resource acquisition. Do not hand-edit active state concurrently\nwith commands. Interrupted multi-file operations retain blocking records and require inspection.\n\nRuntime APIs (JSON files; no server):\n\n- `runtime/checkpoints/*.json`: `sots-checkpoint/1`, contract, actor/role/model/session, timestamp,\n contract `basis` digest, bounded summary (6000 characters), up to 32 `{path,sha256}` artifacts,\n and one `next_action` (2000 characters). Include observations versus decisions, source identities,\n tests, blockers, resources/access/cleanup, exact next action in the summary/artifacts.\n Do not attach the checkpoint's own contract as an artifact: saving the pointer changes that\n file. Its task metadata is already covered by `basis`; the CLI rejects this self-reference.\n- `runtime/surprises/*.json`: `sots-surprise/1`, id, contract, `status: open|resolved`, summary,\n discriminating probe, actor/model/session provenance where applicable, optional decision ID.\n- `runtime/decisions/*.json`: `sots-decision/1`, Astra resolution, explanation/probe, invalidated\n evidence and checkpoint; prior verdict is marked invalidated. Resolution returns needs-revision\n only when all surprises are closed. Re-probe and rebuild evidence; resolution is not acceptance.\n- `runtime/verdicts/.json`: independent verifier actor/session/model, pass/fail,\n explanation, contract basis, complete evidence digest and source-bindings digest.\n- `runtime/transitions/*.json`: actor/model, previous/next lifecycle state, timestamp.\n- `runtime/leases/.json`: owner, random token, held/released, acquisition/release provenance.\n- `runtime/runs/run-*.json`, `.jsonl`, `.stderr.log`: requested model/config, command, worktree\n manifests before/after, expanded prompt hash, effective configuration hashes, canonical config\n file hashes, actual events/session/model when emitted, completion/checkpoint status. Effective\n provider config is hashed rather than persisted because it can contain credentials.\n `active-.json` reserves the contract. Interrupted running reservations never auto-expire.\n\nLifecycle: `proposed -> ready -> implementing -> verification -> integration -> accepted`.\nBlocked and needs-revision edges support repairs; no skipping stages. Ready requires scope,\ninputs, acceptance, stop conditions, valid pinned baseline and accepted dependencies. Implementing\nis atomically capped at two concurrent contracts; lead schedules only one pilot before enabling\ntwo independent slices. Verification requires fresh checkpoint/artifacts after implementation start.\nIntegration requires lead plus independent passing verifier bound to current source/evidence.\nAccepted requires every declared axis in integrated evidence, passing independent verdict over\nthat final package, and no open surprises. Adding integrated evidence changes the evidence digest:\nthe verifier must attest the integrated package again. Handoff/promotion/end checkpoints must be\nwithin 15 minutes; recovery start has no age limit.\n\nRole/model registry: lead/architecture-review/analyst/implementer/verifier/lab =\n`openai/gpt-5.6-sol`; resolver = `openai/gpt-6-astra`.\nCLI identity fields are **claims, not authenticated model authority**. The runner requests the\nregistry model explicitly and records emitted provenance. Editable JSON, agent permissions and\nshell-accessible tooling are not a security boundary. No silent routing fallback.\n\n## Commands\n\nRun from either repository using the canonical tool path when necessary. Examples:\n\n```sh\npython3 tools/campaign.py --state-root /home/alex/sots-re validate\npython3 tools/campaign.py --state-root /home/alex/sots-re list\npython3 tools/campaign.py --state-root /home/alex/sots-re status research-replacement\npython3 tools/campaign.py --state-root /home/alex/sots-re checkpoint controls-bootstrap --actor controls-architect --role architecture-review --model openai/gpt-6-astra --session rollout-controls --summary 'Source identities, observations, decisions, tests and blockers are in the attached checkpoint.' --artifact campaign/rollout/controls-worker-state.md --next-action 'Run the independent controls review.'\npython3 tools/campaign.py --state-root /home/alex/sots-re transition controls-bootstrap ready --actor controls-architect --role architecture-review --model openai/gpt-6-astra\n```\n\n`surprise CONTRACT --summary TEXT --probe TEXT` blocks immediately. `resolve SURPRISE_ID\n--explanation TEXT --probe TEXT` requires claimed Astra lead/resolver. Both also require\n`--actor NAME --role ROLE --model MODEL`. `evidence CONTRACT --record campaign/path.json`\nuses the same identity flags; record format is the evidence object above. Integrated records\nrequire lead and integration state. `verdict CONTRACT --session SESSION --verdict pass|fail\n--explanation TEXT` requires verifier identity flags and independent actor/session.\n\n```sh\npython3 tools/campaign.py --state-root /home/alex/sots-re lease acquire windows-vm --actor lab-one --role lab --model openai/gpt-5.5\npython3 tools/campaign.py --state-root /home/alex/sots-re lease show windows-vm\npython3 tools/campaign.py --state-root /home/alex/sots-re lease release windows-vm --actor lab-one --role lab --model openai/gpt-5.5 --token TOKEN_FROM_ACQUIRE\npython3 tools/campaign.py --state-root /home/alex/sots-re lease release windows-vm --actor lead --role lead --model openai/gpt-6-astra --lead-release --reason 'Confirmed prior operator stopped; access and cleanup checked.'\n```\n\nNo stale lease stealing. Explicit lead release requires an explanation and lab preconditions,\nside effects, cleanup, and access verification in the operator checkpoint. Treat lease tokens\nas local owner capabilities, not secrets to put in a board/dashboard.\n\n## Fresh bounded launches\n\nPrepare **two actual linked worktrees**, each distinct from its canonical source repository,\nat the contract's full baseline commit. No auto commits/worktree creation. Launch uses explicit\ncanonical `OPENCODE_CONFIG`, checks matching repo-local agent/model/40 steps, and sets the final\nenvironment overlay to bind requested role/model/steps. Other inherited config overrides are\ncleared. `opencode models` must list the exact requested model even for dry runs.\n\n```sh\npython3 tools/run_agent.py --state-root /home/alex/sots-re --role implementer --actor worker-one --contract slice-one --engine-worktree /home/alex/worktrees/slice-one-engine --re-worktree /home/alex/worktrees/slice-one-re --cwd engine --dry-run\n```\n\nRemove `--dry-run` to execute. Normal worker launch requires a valid durable checkpoint, matching\nowner/role/status, no open surprises, baseline HEADs and canonical Git common-directory identity.\nRecovery checks checkpoint identity/basis and artifact hashes regardless of age, rechecks any\nsource-bound evidence, and validates paired Git worktree/baseline identity. Missing ordinary-worker\nstate still blocks. Bootstrap lead/architecture-review can start without a checkpoint; they still\nneed paired worktrees. Astra lead/resolver may launch a blocked contract with open surprises and\nwithout a worker checkpoint in **resolution-only** scope: read evidence and write decisions/state,\nno implementation. Its prompt and permission overlay carry that limit, and worktree source changes\nfail completion. Ordinary affected workers stay blocked. Other Astra architecture actors receive\nexplicit architecture authority within their owned scope. Each run is a fresh\n`opencode run --format json --model ... --agent ...`; no resume/continue option is used. The prompt\nsupplies the run ID to use as checkpoint `--session`; actual OpenCode session IDs are captured\nseparately when emitted. On exit, a checkpoint after start matching actor/role/model/run ID is\nmandatory or the run is marked incomplete. Completion additionally requires a zero exit, no\n`type:error`, a successful `step_finish` with `part.reason: \"stop\"`, one nonempty actual session ID,\nand consistent explicitly emitted model IDs. Text/tool-call/length events alone cannot complete a\nrun. Missing model emission is recorded `observed_model_status: \"unavailable\"`, never invented.\n\nThe runner checks the exact Git baseline again under reservation lock, rejects intervening contract\nchanges, and checks canonical model/prompt/config files and effective configuration for drift at\ncompletion. Expanded role prompt/model/steps are frozen in the last-layer environment overlay.\n`opencode debug config` runs in the actual launch cwd with the actual environment before execution\nand again at completion. Permissions explicitly allow read/search, ordinary worker shell commands,\nand external-directory access to the assigned paired trees plus canonical RE; role-specific edit\ndenies survive. Task delegation and interactive questions are denied. No `--auto` is required.\nNoninteractive command/environment tests and a live loader check cover this overlay; an actual\nnormal worker launch smoke is a separate lead integration check. Permissions and before/after\nchecks are operational guards, not a sandbox or continuous filesystem audit.\nCompaction is a backstop; no token threshold or machine-enforced 20-tool-call claim.\n\n## Local verification\n\n```sh\npython3 -m unittest discover -s verify/campaign -p 'test_*.py' -v\npython3 tools/campaign.py --state-root /home/alex/sots-re validate\n```\n\nTests create commits only in disposable fixture repositories, linked worktrees and fake OpenCode processes; they do\nnot launch agents or touch the lab. Historical rollout artifacts retain the scope and source identity\nof their runs; consult the accepted contract and current evidence, not an old handoff's status prose.","lineStart":1,"lineEnd":223,"totalLines":223,"truncated":false}},"title":"campaign/README.md","time":{"start":1789013304748,"end":1789013304832}},"metadata":{"openai":{"itemId":"fc_094384d877d06087016aa22d389d3487d18cbde5a8d40a3a93"}},"id":"prt_08980a5a8001zEW3SJhSffrMQ4","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089807df6001yVmklZeC5yS7jl"}} +{"type":"tool_use","timestamp":1789013304840,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_HlvzC2lKXy1SZegSdB5fsdDm","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/guides/multi-agent-workflow.md"},"output":"/home/alex/sots-re/guides/multi-agent-workflow.md\nfile\n\n1: # Multi-agent operating architecture\n2: \n3: ## Product and milestone\n4: \n5: Reconstruct a behavior-equivalent engine consuming owner-supplied assets. The next product\n6: milestone is standalone replay given a captured command stream and complete declared runtime\n7: inputs. The first workflow pilot is the complete research write set. A passing host build is a\n8: component baseline, not a playable engine or independent replacement.\n9: \n10: ## Source of truth\n11: \n12: `campaign/contracts/` holds versioned tasks, `campaign/runtime/` holds checkpoints, sessions,\n13: leases and surprises, and evidence packages identify inputs, source and executable artifacts.\n14: `campaign/current.json` selects published evidence by path and digest. Board/dashboard are\n15: generated projections, never alternate writable authorities. Exact tool CLI/schema is documented\n16: in `campaign/README.md`. Historical findings retain their original experiment scope; they are\n17: not promoted by copying an old status into a new contract.\n18: \n19: ## Model authority\n20: \n21: | Responsibility | Model |\n22: |---|---|\n23: | Normal planning, architecture and integration loop | GPT-5.6 Sol |\n24: | Bounded RE analysis, implementation and independent verification | GPT-5.6 Sol |\n25: | Routine lab/workload operations | GPT-5.6 Sol |\n26: | Problem and surprise resolution | GPT-6 Astra |\n27: | Context compaction | GPT-5.5 |\n28: \n29: Exact provider IDs are in `campaign/models.json`. The lead escalates to Astra when a falsified\n30: assumption, conflict, instrument effect, or scope change blocks the loop. No fallback is automatic. Model names in editable JSON are\n31: provenance, not authentication: launcher events and independent review support the record.\n32: Permissions reduce accidental role drift; unrestricted local shell access is not a sandbox.\n33: \n34: ## Behavioral slice\n35: \n36: The lead specifies a bounded input domain, full observable write set, dependencies, acceptance\n37: workloads and stop conditions. The analyst recovers behavior; the verifier specifies discriminating\n38: tests before implementation; the implementer changes engine/adapters; the lab operator captures\n39: controls; the verifier reproduces; the integrator tests the combined source snapshot.\n40: \n41: Include transitive effects: allocations, IDs, container ELEMENTS, event text/records, RNG and\n42: nonserialized state. An address/function name is not a sufficient replacement boundary. If a\n43: neighbor function supplies required effects, extend the approved contract or expose it as an\n44: original dependency. Do not call the original and label the result independent.\n45: \n46: Lifecycle is `proposed → ready → implementing → verification → integration → accepted`, with\n47: blocked/revision states. Lifecycle is distinct from evidence strength. Acceptance is scoped to\n48: the manifest's exact procedure and workloads, never universal correctness.\n49: \n50: ## Independence\n51: \n52: Verifier and implementer are different executions. Verification starts with the contract, raw\n53: evidence and reproduction recipe, not just the author's conclusion. Require one meaningful\n54: challenge: held-out state, boundary, negative control, ablation, or independent state accounting.\n55: Both synthetic tests and original-game experiments matter. Repeat-call volume cannot replace\n56: branch and distinct-state coverage. Null effects and zero executions must be distinguishable.\n57: \n58: ## Sessions and recovery\n59: \n60: At most two implementation slices after a single-slice pilot. No nested worker delegation.\n61: Paired worktrees isolate source changes; unique build directories isolate artifacts. Canonical\n62: RE runtime state remains explicit even when a worker runs in `/tmp` worktrees.\n63: \n64: Checkpoint every 20 calls or 15min; also before experiments, compaction, handoff and stopping.\n65: Record source identities, exact changed paths, commands/results, artifacts and hashes, open\n66: surprises, held leases, requested/observed model, session identity and exact next action. Avoid\n67: large prose histories: raw logs belong in evidence; the checkpoint is a bounded resumption record.\n68: \n69: The launcher caps a quantum at 40 agent steps. A new quantum starts fresh using contract and\n70: checkpoint. Auto-compaction with an ample reserved window and four retained turns is enabled.\n71: This is a best-effort context backstop; regular durable checkpoints and fresh quanta provide the\n72: actual recovery discipline. Never claim a model compacted merely because a setting exists.\n73: \n74: ## Surprises\n75: \n76: On a falsified prediction, contradictory claim, unexplained regression, instrument interference,\n77: or newly necessary dependency: record the observation and evidence; block affected work. Astra\n78: first checks the instrument and source identity, then marks claims surviving/qualified/overturned,\n79: chooses a discriminating experiment, and records the revised plan. Unaffected contracted work\n80: may continue. Updating a paragraph without invalidating affected acceptance is insufficient.\n81: \n82: ## Lab ownership\n83: \n84: Acquire a canonical resource lease before VM, build-host or Ghidra mutation. An expired timestamp\n85: does not authorize stealing a lease. The lead reconciles stale ownership with actual processes.\n86: Use one guest at a time for maintenance, capture before/after inventory, preserve access and\n87: runtime dependencies, and verify unattended console login plus authenticated administration.\n88: Reboots require a free guest and a recorded recovery path. Runtime/Ghidra changes are experiments\n89: with provenance, not undocumented preparatory steps.\n90: \n91: ## Gate and publication\n92: \n93: Run the local gate with explicit engine, corpus, new output directory and profile. It snapshots\n94: source, uses fresh builds, records manifests and runs the expected test inventory once. Host\n95: profile allows a named list of unavailable asset/trace tests and publishes them as limitations.\n96: Full acceptance requires the full profile and the slice-specific original oracle; no blanket\n97: waiver converts a host pass to fidelity. Standalone measurement may diverge; acceptance may not.\n98: \n99: The integrator alone selects current results after verifying their hashes and source binding.\n100: No percentages of LOC, mapped rows or closed leaves purport to measure engine completeness.\n101: Run failure and missing evidence are visible states. Old results remain historical, not current.\n\n(End of file - total 101 lines)\n","metadata":{"preview":"# Multi-agent operating architecture\n\n## Product and milestone\n\nReconstruct a behavior-equivalent engine consuming owner-supplied assets. The next product\nmilestone is standalone replay given a captured command stream and complete declared runtime\ninputs. The first workflow pilot is the complete research write set. A passing host build is a\ncomponent baseline, not a playable engine or independent replacement.\n\n## Source of truth\n\n`campaign/contracts/` holds versioned tasks, `campaign/runtime/` holds checkpoints, sessions,\nleases and surprises, and evidence packages identify inputs, source and executable artifacts.\n`campaign/current.json` selects published evidence by path and digest. Board/dashboard are\ngenerated projections, never alternate writable authorities. Exact tool CLI/schema is documented\nin `campaign/README.md`. Historical findings retain their original experiment scope; they are\nnot promoted by copying an old status into a new contract.\n\n## Model authority\n","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/guides/multi-agent-workflow.md","text":"# Multi-agent operating architecture\n\n## Product and milestone\n\nReconstruct a behavior-equivalent engine consuming owner-supplied assets. The next product\nmilestone is standalone replay given a captured command stream and complete declared runtime\ninputs. The first workflow pilot is the complete research write set. A passing host build is a\ncomponent baseline, not a playable engine or independent replacement.\n\n## Source of truth\n\n`campaign/contracts/` holds versioned tasks, `campaign/runtime/` holds checkpoints, sessions,\nleases and surprises, and evidence packages identify inputs, source and executable artifacts.\n`campaign/current.json` selects published evidence by path and digest. Board/dashboard are\ngenerated projections, never alternate writable authorities. Exact tool CLI/schema is documented\nin `campaign/README.md`. Historical findings retain their original experiment scope; they are\nnot promoted by copying an old status into a new contract.\n\n## Model authority\n\n| Responsibility | Model |\n|---|---|\n| Normal planning, architecture and integration loop | GPT-5.6 Sol |\n| Bounded RE analysis, implementation and independent verification | GPT-5.6 Sol |\n| Routine lab/workload operations | GPT-5.6 Sol |\n| Problem and surprise resolution | GPT-6 Astra |\n| Context compaction | GPT-5.5 |\n\nExact provider IDs are in `campaign/models.json`. The lead escalates to Astra when a falsified\nassumption, conflict, instrument effect, or scope change blocks the loop. No fallback is automatic. Model names in editable JSON are\nprovenance, not authentication: launcher events and independent review support the record.\nPermissions reduce accidental role drift; unrestricted local shell access is not a sandbox.\n\n## Behavioral slice\n\nThe lead specifies a bounded input domain, full observable write set, dependencies, acceptance\nworkloads and stop conditions. The analyst recovers behavior; the verifier specifies discriminating\ntests before implementation; the implementer changes engine/adapters; the lab operator captures\ncontrols; the verifier reproduces; the integrator tests the combined source snapshot.\n\nInclude transitive effects: allocations, IDs, container ELEMENTS, event text/records, RNG and\nnonserialized state. An address/function name is not a sufficient replacement boundary. If a\nneighbor function supplies required effects, extend the approved contract or expose it as an\noriginal dependency. Do not call the original and label the result independent.\n\nLifecycle is `proposed → ready → implementing → verification → integration → accepted`, with\nblocked/revision states. Lifecycle is distinct from evidence strength. Acceptance is scoped to\nthe manifest's exact procedure and workloads, never universal correctness.\n\n## Independence\n\nVerifier and implementer are different executions. Verification starts with the contract, raw\nevidence and reproduction recipe, not just the author's conclusion. Require one meaningful\nchallenge: held-out state, boundary, negative control, ablation, or independent state accounting.\nBoth synthetic tests and original-game experiments matter. Repeat-call volume cannot replace\nbranch and distinct-state coverage. Null effects and zero executions must be distinguishable.\n\n## Sessions and recovery\n\nAt most two implementation slices after a single-slice pilot. No nested worker delegation.\nPaired worktrees isolate source changes; unique build directories isolate artifacts. Canonical\nRE runtime state remains explicit even when a worker runs in `/tmp` worktrees.\n\nCheckpoint every 20 calls or 15min; also before experiments, compaction, handoff and stopping.\nRecord source identities, exact changed paths, commands/results, artifacts and hashes, open\nsurprises, held leases, requested/observed model, session identity and exact next action. Avoid\nlarge prose histories: raw logs belong in evidence; the checkpoint is a bounded resumption record.\n\nThe launcher caps a quantum at 40 agent steps. A new quantum starts fresh using contract and\ncheckpoint. Auto-compaction with an ample reserved window and four retained turns is enabled.\nThis is a best-effort context backstop; regular durable checkpoints and fresh quanta provide the\nactual recovery discipline. Never claim a model compacted merely because a setting exists.\n\n## Surprises\n\nOn a falsified prediction, contradictory claim, unexplained regression, instrument interference,\nor newly necessary dependency: record the observation and evidence; block affected work. Astra\nfirst checks the instrument and source identity, then marks claims surviving/qualified/overturned,\nchooses a discriminating experiment, and records the revised plan. Unaffected contracted work\nmay continue. Updating a paragraph without invalidating affected acceptance is insufficient.\n\n## Lab ownership\n\nAcquire a canonical resource lease before VM, build-host or Ghidra mutation. An expired timestamp\ndoes not authorize stealing a lease. The lead reconciles stale ownership with actual processes.\nUse one guest at a time for maintenance, capture before/after inventory, preserve access and\nruntime dependencies, and verify unattended console login plus authenticated administration.\nReboots require a free guest and a recorded recovery path. Runtime/Ghidra changes are experiments\nwith provenance, not undocumented preparatory steps.\n\n## Gate and publication\n\nRun the local gate with explicit engine, corpus, new output directory and profile. It snapshots\nsource, uses fresh builds, records manifests and runs the expected test inventory once. Host\nprofile allows a named list of unavailable asset/trace tests and publishes them as limitations.\nFull acceptance requires the full profile and the slice-specific original oracle; no blanket\nwaiver converts a host pass to fidelity. Standalone measurement may diverge; acceptance may not.\n\nThe integrator alone selects current results after verifying their hashes and source binding.\nNo percentages of LOC, mapped rows or closed leaves purport to measure engine completeness.\nRun failure and missing evidence are visible states. Old results remain historical, not current.","lineStart":1,"lineEnd":101,"totalLines":101,"truncated":false}},"title":"guides/multi-agent-workflow.md","time":{"start":1789013304754,"end":1789013304836}},"metadata":{"openai":{"itemId":"fc_094384d877d06087016aa22d389d3c87d1ab6861cf19eb86a5"}},"id":"prt_08980a5ae001M2eLrEXaSmnNqM","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089807df6001yVmklZeC5yS7jl"}} +{"type":"tool_use","timestamp":1789013304862,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"glob","callID":"call_qyGYvezIHyZRo02nBdkFIvGa","state":{"status":"completed","input":{"pattern":"campaign/**/*surpris*","path":"/home/alex/sots-re"},"output":"No files found","metadata":{"count":0,"truncated":false},"title":"","time":{"start":1789013304773,"end":1789013304852}},"metadata":{"openai":{"itemId":"fc_094384d877d06087016aa22d389d5887d182224d394e2b561f"}},"id":"prt_08980a5c10014H3YlVGq4PYOwV","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089807df6001yVmklZeC5yS7jl"}} +{"type":"tool_use","timestamp":1789013304862,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_uif4OfbVUgdSwAcZHvPQPbWs","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/contracts/research-live-record-bridge.json"},"output":"/home/alex/sots-re/campaign/contracts/research-live-record-bridge.json\nfile\n\n1: {\n2: \"acceptance\": [\n3: {\n4: \"axis\": \"planning\",\n5: \"criterion\": \"Before ready, publish exact bridge-only source/test ownership, callable entrypoints and calling conventions, generated-address provenance, a bridge-only invocation route, VM/build resources, executable acceptance commands and immutable source/binary/fixture manifests. The route must not call or wire research replacement.\",\n6: \"id\": \"readiness\"\n7: },\n8: {\n9: \"axis\": \"understanding\",\n10: \"criterion\": \"Reconcile accepted binary evidence with generated and pure-model facts, including whether EvDsc participates in duplicate equality and whether the callable ObservedTech copy operation begins at 0x0079a150 or an interior site. Every exposed constructor/copy/append/destructor/new/delete operation has an exact ABI and ownership contract.\",\n11: \"id\": \"abi-reconciliation\"\n12: },\n13: {\n14: \"axis\": \"implementation\",\n15: \"criterion\": \"An isolated bridge constructs, copies, appends, updates and destroys complete live-layout ObservedTech, TurnEvents and PlayerEvent values using compatible original-runtime allocation services. It never copies raw owning headers and never calls original RecordObservedTech, EventStorage::PostEvent or any research completion root.\",\n16: \"id\": \"bridge-operations\"\n17: },\n18: {\n19: \"axis\": \"validation\",\n20: \"criterion\": \"Host tests and a fresh leased disposable-VM run positively execute empty, spare and full capacity; short and long strings; repeated observed names; exact duplicate and description-only-different events; normal destruction; and one contained recorded failure path. Preserve per-case operation/allocation/destruction counts and complete resulting records.\",\n21: \"id\": \"runtime-matrix\"\n22: },\n23: {\n24: \"axis\": \"validation\",\n25: \"criterion\": \"Executable negative controls reject raw string/header transfer, wrong callable entry or convention, mismatched allocator family, missing cleanup, double free, incomplete record fields, forbidden original decision-root calls, zero execution, missing artifacts and source/binary/fixture drift.\",\n26: \"id\": \"negative-controls\"\n27: },\n28: {\n29: \"axis\": \"validation\",\n30: \"criterion\": \"A different verifier session reproduces the source/binary/fixture-bound package and at least one meaningful negative control on an integrated tree. Author-only or static-only evidence cannot accept live allocator safety.\",\n31: \"id\": \"independent-reproduction\"\n32: }\n33: ],\n34: \"baseline\": {\n35: \"engine\": {\n36: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n37: \"path\": \"/home/alex/sots-engine\"\n38: },\n39: \"re\": {\n40: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n41: \"path\": \"/home/alex/sots-re\"\n42: }\n43: },\n44: \"checkpoint\": \"campaign/runtime/checkpoints/research-live-record-bridge-7b7432a9c65bd530392291c3.json\",\n45: \"dependencies\": [\n46: \"research-completion-abi\"\n47: ],\n48: \"effects\": [\n49: \"Complete 0x2c ObservedTech object fields, owned name string, existing-name update semantics, vector first/last/end and element lifetime across no-growth and growth paths.\",\n50: \"Complete 0x74 PlayerEvent fields and three independently owned strings, plus complete 0x18 TurnEvents bucket and nested vector lifetime across no-growth and growth paths.\",\n51: \"Event ID/order, exact duplicate behavior, description-only-different behavior and stale-bucket pruning only as needed to exercise the bridge fixture; no research callback or player-state effects.\",\n52: \"Allocation, copy, destruction and failure-path counters sufficient to detect leaks, mismatched frees, partial construction and double destruction.\"\n53: ],\n54: \"evidence\": [],\n55: \"id\": \"research-live-record-bridge\",\n56: \"inputs\": [\n57: \"Accepted research-completion-abi evidence and handoff, including binary fingerprint and independently reproduced static ownership windows.\",\n58: \"Original binary /home/alex/sots-re/dumps/sots.exe sha256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841; owner-supplied and never committed.\",\n59: \"Source-identical paired worktrees /tmp/opencode/sots-final-research-engine and /tmp/opencode/sots-final-research-re at the contract baselines; exact dirty source-content manifests are required before implementation evidence.\",\n60: \"Disposable VM144 is the preferred runtime fixture guest; verify its current MAC/IP, session/process state and housekeeping immediately before use, then acquire campaign/runtime/leases/vm144.json. VM140 is excluded from this experiment.\",\n61: \"Required but missing before ready: bridge-only invocation fixture, generated callable-address package, 32-bit shim/toolchain manifest, failure-containment design, executable acceptance checker and per-case expected records.\"\n62: ],\n63: \"original_dependencies\": [\n64: \"Original MSVCR100 scalar new/delete and narrowly accepted constructor/copy/append/destructor operations are permitted only as declared, counted ABI services.\",\n65: \"Original RecordObservedTech, EventStorage::PostEvent, ProcessResearch, SetResearched, OnTechResearched and localized string lookup are forbidden in the bridge fixture.\",\n66: \"The original game process supplies the MSVCR100 runtime and object address space for live tests; this contract does not claim standalone allocator or game-decision replacement.\"\n67: ],\n68: \"owner\": {\n69: \"name\": \"live-record bridge architect\",\n70: \"role\": \"architecture-review\"\n71: },\n72: \"predictions\": [\n73: \"ObservedTech no-growth append deep-copies one name; growth relocates every existing 0x2c element and destroys the old range without cross-runtime frees.\",\n74: \"PlayerEvent append deep-copies EvDsc, EvMsg and EvImg independently; full-capacity growth preserves all scalar/default fields and destroys old strings exactly once.\",\n75: \"Repeated observed name updates the existing record without vector growth; exact duplicate event does not append; description-only-different event does append if the accepted EvDsc equality result is correct.\",\n76: \"A contained allocation-failure fixture reports failure without an accepted partial record, leaked owned string, mismatched free or exception crossing into an unsafe ABI boundary.\"\n77: ],\n78: \"scope\": [\n79: \"Recover and implement only the live ABI bridge for ObservedTech, TurnEvents and PlayerEvent construction/copy/append/update/destruction plus isolated fixtures and acceptance tooling.\",\n80: \"First quantum is RE and architecture: reconcile callable boundaries and duplicate semantics, specify failure containment and name exact owned files. No engine implementation or VM mutation until the contract is ready and the operator holds required leases.\",\n81: \"Runtime validation uses a bridge-only fixture on a disposable clone. It must not wire src/shim/hooks/research.cpp or src/shim/main.cpp and must not execute a research completion workload.\",\n82: \"Static ABI acceptance is a dependency, not evidence of live safety. Acceptance remains scoped to bridge operations and does not promote research-replacement.\"\n83: ],\n84: \"status\": \"needs-revision\",\n85: \"stop_conditions\": [\n86: \"Remain proposed while callable ABI, exact ownership, fixture route, manifests, failure containment or executable acceptance is unresolved.\",\n87: \"Stop affected work and record a surprise on contradictory fresh binary/runtime evidence, binary/source drift, allocator mismatch, exception crossing, unexpected game-decision-root execution, leak/double-free, guest interference or access change.\",\n88: \"No Ghidra mutation or VM/build-host mutation without explicit assignment and the corresponding canonical lease; never touch VM140 under this contract.\",\n89: \"No research replacement wiring, delegation, staging, commit, push or destructive canonical worktree operation. Checkpoint every 20 calls/15 minutes and before experiment, handoff or stop.\"\n90: ],\n91: \"title\": \"Live ObservedTech and event record ABI bridge\"\n92: }\n\n(End of file - total 92 lines)\n","metadata":{"preview":"{\n \"acceptance\": [\n {\n \"axis\": \"planning\",\n \"criterion\": \"Before ready, publish exact bridge-only source/test ownership, callable entrypoints and calling conventions, generated-address provenance, a bridge-only invocation route, VM/build resources, executable acceptance commands and immutable source/binary/fixture manifests. The route must not call or wire research replacement.\",\n \"id\": \"readiness\"\n },\n {\n \"axis\": \"understanding\",\n \"criterion\": \"Reconcile accepted binary evidence with generated and pure-model facts, including whether EvDsc participates in duplicate equality and whether the callable ObservedTech copy operation begins at 0x0079a150 or an interior site. Every exposed constructor/copy/append/destructor/new/delete operation has an exact ABI and ownership contract.\",\n \"id\": \"abi-reconciliation\"\n },\n {\n \"axis\": \"implementation\",\n \"criterion\": \"An isolated bridge constructs, copies, appends, updates and destroys complete live-layout ObservedTech, TurnEvents and PlayerEvent values using compatible original-runtime allocation services. It never copies raw owning headers and never calls original RecordObservedTech, EventStorage::PostEvent or any research completion root.\",\n \"id\": \"bridge-operations\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Host tests and a fresh leased disposable-VM run positively execute empty, spare and full capacity; short and long strings; repeated observed names; exact duplicate and description-only-different events; normal destruction; and one contained recorded failure path. Preserve per-case operation/allocation/destruction counts and complete resulting records.\",","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/contracts/research-live-record-bridge.json","text":"{\n \"acceptance\": [\n {\n \"axis\": \"planning\",\n \"criterion\": \"Before ready, publish exact bridge-only source/test ownership, callable entrypoints and calling conventions, generated-address provenance, a bridge-only invocation route, VM/build resources, executable acceptance commands and immutable source/binary/fixture manifests. The route must not call or wire research replacement.\",\n \"id\": \"readiness\"\n },\n {\n \"axis\": \"understanding\",\n \"criterion\": \"Reconcile accepted binary evidence with generated and pure-model facts, including whether EvDsc participates in duplicate equality and whether the callable ObservedTech copy operation begins at 0x0079a150 or an interior site. Every exposed constructor/copy/append/destructor/new/delete operation has an exact ABI and ownership contract.\",\n \"id\": \"abi-reconciliation\"\n },\n {\n \"axis\": \"implementation\",\n \"criterion\": \"An isolated bridge constructs, copies, appends, updates and destroys complete live-layout ObservedTech, TurnEvents and PlayerEvent values using compatible original-runtime allocation services. It never copies raw owning headers and never calls original RecordObservedTech, EventStorage::PostEvent or any research completion root.\",\n \"id\": \"bridge-operations\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Host tests and a fresh leased disposable-VM run positively execute empty, spare and full capacity; short and long strings; repeated observed names; exact duplicate and description-only-different events; normal destruction; and one contained recorded failure path. Preserve per-case operation/allocation/destruction counts and complete resulting records.\",\n \"id\": \"runtime-matrix\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Executable negative controls reject raw string/header transfer, wrong callable entry or convention, mismatched allocator family, missing cleanup, double free, incomplete record fields, forbidden original decision-root calls, zero execution, missing artifacts and source/binary/fixture drift.\",\n \"id\": \"negative-controls\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"A different verifier session reproduces the source/binary/fixture-bound package and at least one meaningful negative control on an integrated tree. Author-only or static-only evidence cannot accept live allocator safety.\",\n \"id\": \"independent-reproduction\"\n }\n ],\n \"baseline\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"checkpoint\": \"campaign/runtime/checkpoints/research-live-record-bridge-7b7432a9c65bd530392291c3.json\",\n \"dependencies\": [\n \"research-completion-abi\"\n ],\n \"effects\": [\n \"Complete 0x2c ObservedTech object fields, owned name string, existing-name update semantics, vector first/last/end and element lifetime across no-growth and growth paths.\",\n \"Complete 0x74 PlayerEvent fields and three independently owned strings, plus complete 0x18 TurnEvents bucket and nested vector lifetime across no-growth and growth paths.\",\n \"Event ID/order, exact duplicate behavior, description-only-different behavior and stale-bucket pruning only as needed to exercise the bridge fixture; no research callback or player-state effects.\",\n \"Allocation, copy, destruction and failure-path counters sufficient to detect leaks, mismatched frees, partial construction and double destruction.\"\n ],\n \"evidence\": [],\n \"id\": \"research-live-record-bridge\",\n \"inputs\": [\n \"Accepted research-completion-abi evidence and handoff, including binary fingerprint and independently reproduced static ownership windows.\",\n \"Original binary /home/alex/sots-re/dumps/sots.exe sha256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841; owner-supplied and never committed.\",\n \"Source-identical paired worktrees /tmp/opencode/sots-final-research-engine and /tmp/opencode/sots-final-research-re at the contract baselines; exact dirty source-content manifests are required before implementation evidence.\",\n \"Disposable VM144 is the preferred runtime fixture guest; verify its current MAC/IP, session/process state and housekeeping immediately before use, then acquire campaign/runtime/leases/vm144.json. VM140 is excluded from this experiment.\",\n \"Required but missing before ready: bridge-only invocation fixture, generated callable-address package, 32-bit shim/toolchain manifest, failure-containment design, executable acceptance checker and per-case expected records.\"\n ],\n \"original_dependencies\": [\n \"Original MSVCR100 scalar new/delete and narrowly accepted constructor/copy/append/destructor operations are permitted only as declared, counted ABI services.\",\n \"Original RecordObservedTech, EventStorage::PostEvent, ProcessResearch, SetResearched, OnTechResearched and localized string lookup are forbidden in the bridge fixture.\",\n \"The original game process supplies the MSVCR100 runtime and object address space for live tests; this contract does not claim standalone allocator or game-decision replacement.\"\n ],\n \"owner\": {\n \"name\": \"live-record bridge architect\",\n \"role\": \"architecture-review\"\n },\n \"predictions\": [\n \"ObservedTech no-growth append deep-copies one name; growth relocates every existing 0x2c element and destroys the old range without cross-runtime frees.\",\n \"PlayerEvent append deep-copies EvDsc, EvMsg and EvImg independently; full-capacity growth preserves all scalar/default fields and destroys old strings exactly once.\",\n \"Repeated observed name updates the existing record without vector growth; exact duplicate event does not append; description-only-different event does append if the accepted EvDsc equality result is correct.\",\n \"A contained allocation-failure fixture reports failure without an accepted partial record, leaked owned string, mismatched free or exception crossing into an unsafe ABI boundary.\"\n ],\n \"scope\": [\n \"Recover and implement only the live ABI bridge for ObservedTech, TurnEvents and PlayerEvent construction/copy/append/update/destruction plus isolated fixtures and acceptance tooling.\",\n \"First quantum is RE and architecture: reconcile callable boundaries and duplicate semantics, specify failure containment and name exact owned files. No engine implementation or VM mutation until the contract is ready and the operator holds required leases.\",\n \"Runtime validation uses a bridge-only fixture on a disposable clone. It must not wire src/shim/hooks/research.cpp or src/shim/main.cpp and must not execute a research completion workload.\",\n \"Static ABI acceptance is a dependency, not evidence of live safety. Acceptance remains scoped to bridge operations and does not promote research-replacement.\"\n ],\n \"status\": \"needs-revision\",\n \"stop_conditions\": [\n \"Remain proposed while callable ABI, exact ownership, fixture route, manifests, failure containment or executable acceptance is unresolved.\",\n \"Stop affected work and record a surprise on contradictory fresh binary/runtime evidence, binary/source drift, allocator mismatch, exception crossing, unexpected game-decision-root execution, leak/double-free, guest interference or access change.\",\n \"No Ghidra mutation or VM/build-host mutation without explicit assignment and the corresponding canonical lease; never touch VM140 under this contract.\",\n \"No research replacement wiring, delegation, staging, commit, push or destructive canonical worktree operation. Checkpoint every 20 calls/15 minutes and before experiment, handoff or stop.\"\n ],\n \"title\": \"Live ObservedTech and event record ABI bridge\"\n}","lineStart":1,"lineEnd":92,"totalLines":92,"truncated":false}},"title":"campaign/contracts/research-live-record-bridge.json","time":{"start":1789013304761,"end":1789013304860}},"metadata":{"openai":{"itemId":"fc_094384d877d06087016aa22d389d4487d1b0324a8580fcc6f1"}},"id":"prt_08980a5b40015S51ZaRqNSu8rU","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089807df6001yVmklZeC5yS7jl"}} +{"type":"tool_use","timestamp":1789013304866,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_KagoEaSLsanE3HSB9MAQZhdH","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/checkpoints/research-live-record-bridge-7b7432a9c65bd530392291c3.json"},"output":"/home/alex/sots-re/campaign/runtime/checkpoints/research-live-record-bridge-7b7432a9c65bd530392291c3.json\nfile\n\n1: {\n2: \"actor\": \"live-record bridge architect\",\n3: \"artifacts\": [\n4: {\n5: \"path\": \"campaign/research/research-live-record-bridge.md\",\n6: \"sha256\": \"07f096d4ef2bc0104f52ab7e17727e9bd856393557084bfbd98b455930a00df6\"\n7: },\n8: {\n9: \"path\": \"campaign/research/research-live-record-addresses.json\",\n10: \"sha256\": \"1bb9364fcb8cda6c3339165ff3f35ab4a6e23ad5355358200465e5fb19c746a1\"\n11: },\n12: {\n13: \"path\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json\",\n14: \"sha256\": \"b60b5c956968477b6c2a0422115b3bf92942c474af0254a21723e47e45020bf3\"\n15: },\n16: {\n17: \"path\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-append-exact.stdout.txt\",\n18: \"sha256\": \"02164c44a5398853d2ea8efba8dbcb65166fa50229b95facf6e6abaf197cc754\"\n19: },\n20: {\n21: \"path\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-growth-exact.stdout.txt\",\n22: \"sha256\": \"d4c3b9bde5faac0838071464077fa67e1423c506e23452971da6c5b13858db25\"\n23: },\n24: {\n25: \"path\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-reallocate-exact.stdout.txt\",\n26: \"sha256\": \"514c78476ee03d2921ee8caea12155e6f1e1a078c3acffd22295d9a879f27160\"\n27: }\n28: ],\n29: \"basis\": \"6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8\",\n30: \"contract\": \"research-live-record-bridge\",\n31: \"id\": \"7b7432a9c65bd530392291c3\",\n32: \"model\": \"openai/gpt-5.6-sol\",\n33: \"next_action\": \"In a fresh bounded Sol architecture quantum, checkpoint before a read-only experiment, capture EventStorage get/create TurnEvents at 0x00885380 and all directly invoked helper windows into a new immutable run directory, then encode exact last-match lookup, empty-bucket construction, append lifetime, returned-pointer stability, turn publication order, ABI/return behavior and unwind ownership in campaign/research/research-live-record-addresses.json.\",\n34: \"role\": \"architecture-review\",\n35: \"schema\": \"sots-checkpoint/1\",\n36: \"session\": \"run-e21ce0d2909d8647e6a99a7b\",\n37: \"summary\": \"Quantum-end architecture checkpoint. OBSERVATIONS: immutable run-e21ce0d2909d8647e6a99a7b binds the pinned binary and paired source identities and captures PlayerEvent vector append 0x0086c580, reserve/growth 0x00869500, and reallocator 0x00865ee0. Static evidence establishes ECX vector plus source and ret 4 for append; internal-source index recomputation after growth; external-source retention; 0x74 stride and approximately 1.5x capacity rule; deep-copy relocation before flags-zero old-element destruction; matching-family old-storage release; end/last/first header publication only after success; append last publication only after copy; and unpublished-new-block unwind cleanup. All captures returned zero with empty stderr, the append bytes match accepted integrated evidence, campaign validation passes, and 37 campaign tests pass. No live allocator, exception, game, VM, Ghidra, build-host, or bridge operation ran; no contradiction or open surprise exists. DECISIONS: encode PlayerEvent append/growth as static planning evidence only, reject unaligned or inactive-capacity source pointers, and keep implementation blocked on TurnEvents/allocation/readiness rows.\",\n38: \"timestamp\": \"2026-09-10T04:06:57.778244+00:00\"\n39: }\n\n(End of file - total 39 lines)\n","metadata":{"preview":"{\n \"actor\": \"live-record bridge architect\",\n \"artifacts\": [\n {\n \"path\": \"campaign/research/research-live-record-bridge.md\",\n \"sha256\": \"07f096d4ef2bc0104f52ab7e17727e9bd856393557084bfbd98b455930a00df6\"\n },\n {\n \"path\": \"campaign/research/research-live-record-addresses.json\",\n \"sha256\": \"1bb9364fcb8cda6c3339165ff3f35ab4a6e23ad5355358200465e5fb19c746a1\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json\",\n \"sha256\": \"b60b5c956968477b6c2a0422115b3bf92942c474af0254a21723e47e45020bf3\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-append-exact.stdout.txt\",\n \"sha256\": \"02164c44a5398853d2ea8efba8dbcb65166fa50229b95facf6e6abaf197cc754\"\n },\n {","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/checkpoints/research-live-record-bridge-7b7432a9c65bd530392291c3.json","text":"{\n \"actor\": \"live-record bridge architect\",\n \"artifacts\": [\n {\n \"path\": \"campaign/research/research-live-record-bridge.md\",\n \"sha256\": \"07f096d4ef2bc0104f52ab7e17727e9bd856393557084bfbd98b455930a00df6\"\n },\n {\n \"path\": \"campaign/research/research-live-record-addresses.json\",\n \"sha256\": \"1bb9364fcb8cda6c3339165ff3f35ab4a6e23ad5355358200465e5fb19c746a1\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json\",\n \"sha256\": \"b60b5c956968477b6c2a0422115b3bf92942c474af0254a21723e47e45020bf3\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-append-exact.stdout.txt\",\n \"sha256\": \"02164c44a5398853d2ea8efba8dbcb65166fa50229b95facf6e6abaf197cc754\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-growth-exact.stdout.txt\",\n \"sha256\": \"d4c3b9bde5faac0838071464077fa67e1423c506e23452971da6c5b13858db25\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-reallocate-exact.stdout.txt\",\n \"sha256\": \"514c78476ee03d2921ee8caea12155e6f1e1a078c3acffd22295d9a879f27160\"\n }\n ],\n \"basis\": \"6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"7b7432a9c65bd530392291c3\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"next_action\": \"In a fresh bounded Sol architecture quantum, checkpoint before a read-only experiment, capture EventStorage get/create TurnEvents at 0x00885380 and all directly invoked helper windows into a new immutable run directory, then encode exact last-match lookup, empty-bucket construction, append lifetime, returned-pointer stability, turn publication order, ABI/return behavior and unwind ownership in campaign/research/research-live-record-addresses.json.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-checkpoint/1\",\n \"session\": \"run-e21ce0d2909d8647e6a99a7b\",\n \"summary\": \"Quantum-end architecture checkpoint. OBSERVATIONS: immutable run-e21ce0d2909d8647e6a99a7b binds the pinned binary and paired source identities and captures PlayerEvent vector append 0x0086c580, reserve/growth 0x00869500, and reallocator 0x00865ee0. Static evidence establishes ECX vector plus source and ret 4 for append; internal-source index recomputation after growth; external-source retention; 0x74 stride and approximately 1.5x capacity rule; deep-copy relocation before flags-zero old-element destruction; matching-family old-storage release; end/last/first header publication only after success; append last publication only after copy; and unpublished-new-block unwind cleanup. All captures returned zero with empty stderr, the append bytes match accepted integrated evidence, campaign validation passes, and 37 campaign tests pass. No live allocator, exception, game, VM, Ghidra, build-host, or bridge operation ran; no contradiction or open surprise exists. DECISIONS: encode PlayerEvent append/growth as static planning evidence only, reject unaligned or inactive-capacity source pointers, and keep implementation blocked on TurnEvents/allocation/readiness rows.\",\n \"timestamp\": \"2026-09-10T04:06:57.778244+00:00\"\n}","lineStart":1,"lineEnd":39,"totalLines":39,"truncated":false}},"title":"campaign/runtime/checkpoints/research-live-record-bridge-7b7432a9c65bd530392291c3.json","time":{"start":1789013304768,"end":1789013304864}},"metadata":{"openai":{"itemId":"fc_094384d877d06087016aa22d389d5087d1b3ed58b5dc29dfe9"}},"id":"prt_08980a5bb0011q6cuFw02j72qF","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089807df6001yVmklZeC5yS7jl"}} +{"type":"step_finish","timestamp":1789013304949,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08980a671001V1qsgLngHIJF44","reason":"tool-calls","snapshot":"f4d78107e3fed7d436d01032246a183cdb34a7fb","messageID":"msg_089807df6001yVmklZeC5yS7jl","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":6500,"input":464,"output":234,"reasoning":42,"cache":{"write":0,"read":5760}},"cost":0}} +{"type":"step_start","timestamp":1789013306317,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08980abca001JGF1L5pVOIL4ua","messageID":"msg_08980a696001cFOKUh4UWkKCO6","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"14e607be316bcaabd52f71b8fcbca1a4b4c072c8","type":"step-start"}} +{"type":"tool_use","timestamp":1789013317697,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_qMvEXoERXsViOEVxOqRX17mN","state":{"status":"completed","input":{"filePath":"/tmp/opencode/sots-final-research-engine"},"output":"/tmp/opencode/sots-final-research-engine\ndirectory\n\n.git\n.gitignore\nAGENTS.md\nCLAUDE.md\ncmake/\nCMakeLists.txt\nCMakePresets.json\nCONTRIBUTING.md\ndocs/\ninclude/\nLICENSE\nopencode.json\nREADME.md\nsrc/\ntests/\nthird_party/\ntools/\n\n(17 entries)\n","metadata":{"preview":".git\n.gitignore\nAGENTS.md\nCLAUDE.md\ncmake/\nCMakeLists.txt\nCMakePresets.json\nCONTRIBUTING.md\ndocs/\ninclude/\nLICENSE\nopencode.json\nREADME.md\nsrc/\ntests/\nthird_party/\ntools/","truncated":false,"loaded":[],"display":{"type":"directory","path":"/tmp/opencode/sots-final-research-engine","entries":[".git",".gitignore","AGENTS.md","CLAUDE.md","cmake/","CMakeLists.txt","CMakePresets.json","CONTRIBUTING.md","docs/","include/","LICENSE","opencode.json","README.md","src/","tests/","third_party/","tools/"],"offset":1,"totalEntries":17,"truncated":false}},"title":"../../../tmp/opencode/sots-final-research-engine","time":{"start":1789013317639,"end":1789013317664}},"metadata":{"openai":{"itemId":"fc_01561e98be97e978016aa22d45790887d1bc8c94b840ee86a4"}},"id":"prt_08980d8000014oE94wsgap7NQC","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980a696001cFOKUh4UWkKCO6"}} +{"type":"tool_use","timestamp":1789013317697,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_zzNWnrzo53hNzlvaWLCv3Iwe","state":{"status":"completed","input":{"filePath":"/tmp/opencode/sots-final-research-re"},"output":"/tmp/opencode/sots-final-research-re\ndirectory\n\n.git\n.gitignore\nAGENTS.md\ncampaign/\nCLAUDE.md\nfindings/\nghidra/\nguides/\nnotes/\nobjects/\nopencode.json\nREADME.md\nscripts/\ntools/\nverify/\n\n(15 entries)\n","metadata":{"preview":".git\n.gitignore\nAGENTS.md\ncampaign/\nCLAUDE.md\nfindings/\nghidra/\nguides/\nnotes/\nobjects/\nopencode.json\nREADME.md\nscripts/\ntools/\nverify/","truncated":false,"loaded":[],"display":{"type":"directory","path":"/tmp/opencode/sots-final-research-re","entries":[".git",".gitignore","AGENTS.md","campaign/","CLAUDE.md","findings/","ghidra/","guides/","notes/","objects/","opencode.json","README.md","scripts/","tools/","verify/"],"offset":1,"totalEntries":15,"truncated":false}},"title":"../../../tmp/opencode/sots-final-research-re","time":{"start":1789013317645,"end":1789013317667}},"metadata":{"openai":{"itemId":"fc_01561e98be97e978016aa22d45792087d183b5322ef317c8ad"}},"id":"prt_08980d80a001a11QBUD97Wretf","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980a696001cFOKUh4UWkKCO6"}} +{"type":"tool_use","timestamp":1789013317717,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"glob","callID":"call_f70H9XQTW52UpVPqLMEcBMLT","state":{"status":"completed","input":{"pattern":"campaign/runtime/surprises/*.json","path":"/home/alex/sots-re"},"output":"/home/alex/sots-re/campaign/runtime/surprises/s-410e48d5ae6cc4da0a6ae649.json\n/home/alex/sots-re/campaign/runtime/surprises/s-abd1c3613c9922cc94c608d5.json\n/home/alex/sots-re/campaign/runtime/surprises/s-6d1fcc617a20ca2bcbffc0cc.json\n/home/alex/sots-re/campaign/runtime/surprises/s-5c58b6a921997731f5b5ae1f.json\n/home/alex/sots-re/campaign/runtime/surprises/s-d2c8ec81e980396f2306f8fe.json\n/home/alex/sots-re/campaign/runtime/surprises/s-4a7d66ebd7d8a8f3ec59f11d.json\n/home/alex/sots-re/campaign/runtime/surprises/s-4f71bf4a5df4e5fc992bb6b2.json\n/home/alex/sots-re/campaign/runtime/surprises/s-f1c41532e618c77d41538902.json\n/home/alex/sots-re/campaign/runtime/surprises/s-8996365dab2cd6dc0e17bb9f.json","metadata":{"count":9,"truncated":false},"title":"","time":{"start":1789013317651,"end":1789013317700}},"metadata":{"openai":{"itemId":"fc_01561e98be97e978016aa22d45792887d1823c0402a3b1fd9a"}},"id":"prt_08980d80f001CpsgR29CE5xkHn","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980a696001cFOKUh4UWkKCO6"}} +{"type":"tool_use","timestamp":1789013317717,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_OkeGvnUTRvvojZGjbmxYVWy7","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/models.json"},"output":"/home/alex/sots-re/campaign/models.json\nfile\n\n1: {\n2: \"schema\": \"sots-models/1\",\n3: \"roles\": {\n4: \"lead\": \"openai/gpt-5.6-sol\",\n5: \"resolver\": \"openai/gpt-6-astra\",\n6: \"architecture-review\": \"openai/gpt-5.6-sol\",\n7: \"analyst\": \"openai/gpt-5.6-sol\",\n8: \"implementer\": \"openai/gpt-5.6-sol\",\n9: \"verifier\": \"openai/gpt-5.6-sol\",\n10: \"lab\": \"openai/gpt-5.6-sol\"\n11: },\n12: \"agents\": {\n13: \"lead\": \"sots-lead\",\n14: \"resolver\": \"sots-resolver\",\n15: \"architecture-review\": \"sots-lead\",\n16: \"analyst\": \"sots-analyst\",\n17: \"implementer\": \"sots-implementer\",\n18: \"verifier\": \"sots-verifier\",\n19: \"lab\": \"sots-lab\"\n20: },\n21: \"max_steps\": 40,\n22: \"implementation_wip\": 2\n23: }\n\n(End of file - total 23 lines)\n","metadata":{"preview":"{\n \"schema\": \"sots-models/1\",\n \"roles\": {\n \"lead\": \"openai/gpt-5.6-sol\",\n \"resolver\": \"openai/gpt-6-astra\",\n \"architecture-review\": \"openai/gpt-5.6-sol\",\n \"analyst\": \"openai/gpt-5.6-sol\",\n \"implementer\": \"openai/gpt-5.6-sol\",\n \"verifier\": \"openai/gpt-5.6-sol\",\n \"lab\": \"openai/gpt-5.6-sol\"\n },\n \"agents\": {\n \"lead\": \"sots-lead\",\n \"resolver\": \"sots-resolver\",\n \"architecture-review\": \"sots-lead\",\n \"analyst\": \"sots-analyst\",\n \"implementer\": \"sots-implementer\",\n \"verifier\": \"sots-verifier\",\n \"lab\": \"sots-lab\"\n },","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/models.json","text":"{\n \"schema\": \"sots-models/1\",\n \"roles\": {\n \"lead\": \"openai/gpt-5.6-sol\",\n \"resolver\": \"openai/gpt-6-astra\",\n \"architecture-review\": \"openai/gpt-5.6-sol\",\n \"analyst\": \"openai/gpt-5.6-sol\",\n \"implementer\": \"openai/gpt-5.6-sol\",\n \"verifier\": \"openai/gpt-5.6-sol\",\n \"lab\": \"openai/gpt-5.6-sol\"\n },\n \"agents\": {\n \"lead\": \"sots-lead\",\n \"resolver\": \"sots-resolver\",\n \"architecture-review\": \"sots-lead\",\n \"analyst\": \"sots-analyst\",\n \"implementer\": \"sots-implementer\",\n \"verifier\": \"sots-verifier\",\n \"lab\": \"sots-lab\"\n },\n \"max_steps\": 40,\n \"implementation_wip\": 2\n}","lineStart":1,"lineEnd":23,"totalLines":23,"truncated":false}},"title":"campaign/models.json","time":{"start":1789013317679,"end":1789013317712}},"metadata":{"openai":{"itemId":"fc_01561e98be97e978016aa22d45794887d1849c9f6835025ffe"}},"id":"prt_08980d82b001Zb8SeB6RuzNMky","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980a696001cFOKUh4UWkKCO6"}} +{"type":"tool_use","timestamp":1789013317717,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_gQ08DjZvZjp1I0ivkNci63X2","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/research/research-live-record-bridge.md"},"output":"/home/alex/sots-re/campaign/research/research-live-record-bridge.md\nfile\n\n1: # Live-record bridge readiness architecture\n2: \n3: Status: **planning draft; contract remains needs-revision**. This is acceptance-before-implementation\n4: for `research-live-record-bridge`, not live-safety evidence. No game, VM, allocator, constructor,\n5: or bridge code was executed while producing it.\n6: \n7: ## 1. Bound facts and reconciliation result\n8: \n9: The accepted dependency is the integrated static package\n10: `verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json`\n11: (binary `dumps/sots.exe`, SHA-256\n12: `970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841`). Its scope is static\n13: reproduction plus archived-save inspection, not live allocator safety.\n14: \n15: Two current generated-header statements are unsafe to consume and must be replaced by a dedicated\n16: bridge fact channel before implementation:\n17: \n18: * `include/generated/sots_addresses.h` says `EvDsc` is omitted from duplicate equality. The accepted\n19: repaired windows establish the opposite: after action, location, three floats, message and image,\n20: `0x00825d40` compares both descriptions through `0x0046f8c0`; a description-only difference is\n21: therefore **not** a duplicate.\n22: * The same header names `ObservedTech_copy_ctor = RVA 0x0039a184`, an interior inlined-copy site.\n23: Fresh pinned-binary reconciliation in\n24: `campaign/research/research-live-record-addresses.json` confirms callable helper entry VA\n25: `0x0079a150` (RVA `0x0039a150`). It is a three-stack-argument cdecl-style helper: unused\n26: allocator-shaped argument, destination, source; the caller removes 12 bytes after its plain\n27: `ret`. It has no supported return-value contract. Full-image linear disassembly found exactly two\n28: direct calls, both to `0x0079a150`; neither targets `0x0079a184`. The interior site depends on the\n29: entry prologue's EBP, SEH, ESI and construction-state setup and is therefore an executable negative\n30: control, never a fallback.\n31: \n32: The dedicated package now records the ObservedTech default constructor `0x008562a0`\n33: (`ECX=this`, no stack words, `EAX=this`, plain `ret`) and scalar-deleting destructor `0x00793610`\n34: (`ECX=this`, one flags word, `EAX=this`, `ret 4`). Fresh raw captures and a capture manifest are at\n35: `verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/`. The constructor creates\n36: the valid empty name string and all scalar defaults. The destructor frees a long name, resets that\n37: string, restores base vptr `0x009e22bc`, and frees object storage only when flags bit 0 is set. Vtable\n38: bytes at `0x00a2439c` put this destructor in slot zero; the accepted reallocation capture positively\n39: shows old embedded elements dispatched through slot zero with a pushed zero, so bridge calls must use\n40: flags=0 and must never repeat destruction.\n41: \n42: The dedicated package now also records the complete PlayerEvent default constructor `0x0084ee30`\n43: (`ECX=this`, no stack words, `EAX=this`, plain `ret`) in\n44: `verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/`. It establishes every\n45: logical field of the 0x74-byte object: vptr, zero ID/location/action/CID, three independent valid\n46: empty strings, and three `FLT_MAX` position words copied from `0x00af0dc8`; inactive SSO/allocator\n47: storage bytes are not overwritten. The fixed empty-literal/count-zero helper path allocates and\n48: frees nothing. Direct PE decoding of the constructor's\n49: MSVC FuncInfo records three unwind states: restore the base vptr, then destroy completed EvDsc,\n50: then destroy completed EvMsg. The current string is not treated as completed if its constructor\n51: helper throws. This establishes static partial-construction ownership only; no throw, allocation or\n52: live destructor was executed.\n53: \n54: The dedicated package now also records the complete PlayerEvent copy constructor `0x007693f0`\n55: (`ECX=destination`, stack source, `EAX=destination`, `ret 4`) in\n56: `verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/`. It writes the vptr and\n57: EvEID, independently empty-initializes and deep-copies EvDsc then EvMsg, copies EvLoc and all three\n58: EvPos words, independently initializes and deep-copies EvImg, then copies EvAct and EvCID. Every\n59: string copy uses `0x00425430` with offset zero/count `0xffffffff`; no source owning header is\n60: transferred. Direct PE decoding binds three MSVC unwind states: base-vptr restore, completed EvDsc\n61: destruction, then completed EvMsg destruction. Construction state advances before each potentially\n62: allocating string assignment, so the currently failing string is not treated as complete. This is\n63: static partial-copy ownership only; no allocation failure, throw or live destructor was executed.\n64: \n65: The dedicated package now also records the complete PlayerEvent destructor `0x0061ae90`\n66: (`ECX=this`, no stack words, plain `ret`, no supported return value) in\n67: `verify/results/research-live-record-bridge/run-a4f6a9922bf5800747bfdfc6/`. It destroys the three\n68: independent strings in reverse construction order: EvImg, EvMsg, then EvDsc. Each capacity-at-least-\n69: `0x10` branch frees that string's owned buffer through scalar-delete thunk `0x00924faa`, and every\n70: path resets the string to empty SSO before proceeding. Only after all three strings are empty does\n71: the helper replace PlayerEvent vptr `0x00a21958` with base vptr `0x009e22bc`. It takes no deleting\n72: flags and never frees enclosing PlayerEvent storage. The exact capture byte-matches both accepted\n73: dependency and integrated independent captures. This remains static ownership evidence; no live\n74: destruction, allocator or exception behavior was executed.\n75: \n76: The dedicated package now also records PlayerEvent vector append `0x0086c580`\n77: (`ECX=vector`, stack source, `ret 4`, no supported return) and reserve/growth helper\n78: `0x00869500` in\n79: `verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/`. An aligned source in\n80: the live range is reduced to an element index before growth and recomputed afterward; an external\n81: source pointer is retained. Full capacity reserves one element, selecting at least `size+1` and\n82: normally 1.5x capacity. Reallocator `0x00865ee0` allocates through `0x0078af40`, deep-copies the\n83: old range through `0x00772430`, destroys old elements with deleting flags zero, frees old storage,\n84: and only then publishes end, last and first. Append deep-copies the new element through\n85: `0x007693f0` and publishes last only after success. Bound MSVC metadata shows that partial element\n86: cleanup remains with the copy/range helper and the reallocator frees an unpublished new block before\n87: continuing propagation. This is static ownership evidence; no live allocation, throw, copy or\n88: destruction was executed.\n89: \n90: The dedicated package now also records ObservedTech vector append `0x007b7320`\n91: (`ECX=vector`, stack source, `ret 4`, no supported return). It distinguishes source inside the live\n92: range from source outside it, reserves one slot through `0x007b5820` only when full, deep-copies at\n93: the old/new last, and advances last only after normal return. Growth chooses at least\n94: `size+1` and normally 1.5x capacity, then follows `0x007b34e0` -> `0x0057e590` -> MSVCR100 new,\n95: deep-copies all old values, destroys the old range with flags zero, frees the old block through the\n96: matching thunk, and publishes the new three-pointer header. Static SEH state exposes partial-copy\n97: cleanup, but an actual throw remains unexecuted and cannot support live-safety acceptance.\n98: The reserve window is now bound to the direct raw capture and manifest at\n99: `verify/results/research-live-record-bridge/run-a52f7d5ebec657d8923d8402/`. Its full comparison records\n100: that the invalidated manual transcription omitted exactly eight presentation spaces while all 49\n101: address/opcode/mnemonic/operand rows match. Only the new 2472-byte stream is the current byte-exact\n102: capture; the old 2464-byte stream remains invalidated and must not be cited as raw evidence.\n103: \n104: The following accepted boundaries may seed the dedicated package, but each callable row still needs\n105: its raw-window artifact and exact prototype in that package: PlayerEvent destructor `0x0061ae90`\n106: (`ECX=this`, plain `ret`); get/create TurnEvents `0x00885380` (`ECX=EventStorage`, stack turn,\n107: `EAX=bucket`, `ret 4`); TurnEvents append `0x00884cb0` (`ECX=outer vector`, stack source,\n108: `ret 4`); TurnEvents slot-zero destructor `0x0062e120`; string assignment entry `0x00425430`\n109: with allocating worker `0x004249a0` (`ret 8`); MSVCR100 scalar delete/new import thunks\n110: `0x00924faa`/`0x00924fb6`. Original `RecordObservedTech`, `EventStorage::PostEvent`, and every\n111: research completion root are forbidden.\n112: \n113: ## 2. Exclusive write set\n114: \n115: One implementation lane owns exactly these new or modified paths in the assigned engine worktree:\n116: \n117: * `include/generated/sots_live_record_addresses.h` (generated; never hand-maintained)\n118: * `src/shim/live_record/{abi.h,bridge.h,bridge.cpp,fixture_entry.cpp,CMakeLists.txt}`\n119: * top-level `CMakeLists.txt` only to add the isolated live-record targets\n120: * `tests/shim_live_record/{CMakeLists.txt,unit_tests.cpp}`\n121: * `tools/build-live-record-fixture.ps1`\n122: \n123: It must not edit or link `src/shim/main.cpp`, `src/shim/hooks/research.cpp`, any research hook,\n124: or the standalone game model. The architecture/acceptance lane owns exactly:\n125: \n126: * `campaign/research/research-live-record-bridge.md`\n127: * `campaign/research/research-live-record-addresses.json`\n128: * `tools/generate_live_record_addresses.py`\n129: * `verify/live-record-bridge/{check_package.py,expected-records.json,forbidden-symbols.txt}`\n130: * immutable run directories below `verify/results/research-live-record-bridge/`\n131: \n132: Contract/checkpoint mutations remain canonical campaign transactions. Any expansion of either set\n133: requires contract revision before code changes.\n134: \n135: ## 3. Bridge-only invocation and ownership\n136: \n137: Build a **32-bit MSVC-2010-compatible** `sots_live_record_fixture.dll`, separate from `binkw32.dll`.\n138: A PowerShell controller starts a disposable game process without advancing a turn, loads only this\n139: fixture DLL, invokes exported `DWORD WINAPI RunLiveRecordBridgeFixture(void*)`, and exchanges a\n140: versioned request/result through a named file mapping. The export validates PE fingerprint/module\n141: base and resolves only generated RVAs. The controller records loaded modules and rejects any run\n142: where `binkw32.dll` is the campaign proxy or any forbidden decision-root address appears in the\n143: fixture import/call audit. This route neither links nor initializes the normal shim entry point.\n144: \n145: All owning objects stay inside the original process and one compiler/runtime family. The bridge\n146: never transfers a `std::string` or vector header across the mapping. Requests contain scalar fields\n147: and counted UTF-8 bytes; results contain scalar fields, copied string bytes, vector sizes/capacities,\n148: and operation counters. Construction is field-wise through accepted constructors/assignment/copy\n149: helpers. Append delegates to the accepted vector helper. Destruction is reverse-order, exactly once,\n150: with scalar-delete flags zero for embedded values; only array blocks created by the compatible\n151: original runtime are released through its matching service.\n152: \n153: Each operation owns a journal state (`empty`, `object-constructed`, each string assigned,\n154: `element-appended`, `result-copied`, `destroyed`). A deterministic failpoint fires **before** each\n155: original call and unwinds only completed states. Actual MSVC allocation exceptions are caught inside\n156: the MSVC-built DLL and converted to a result code; no C++ exception crosses the exported WINAPI\n157: boundary. The contained-failure case is accepted only when counters show no accepted partial record,\n158: no outstanding allocation, no mismatched family, and one destruction per completed owned value.\n159: \n160: ## 4. Required cases and accounting\n161: \n162: The fixture package must predeclare cases for empty, spare-capacity and full-capacity vectors; SSO\n163: and heap strings for every string field; repeated ObservedTech name update; exact event duplicate;\n164: description-only-different event; normal destruction; and one failpoint on a long-string/growth path.\n165: Every case records complete resulting ObservedTech, TurnEvents and PlayerEvent fields, first/last/end\n166: offsets, event ID/order, helper call counts, allocations by family and size, destructions/frees by\n167: object identity, failpoint, return status, forbidden-call count, and execution count. Zero cases,\n168: missing records, or unbalanced identities fail rather than skip.\n169: \n170: ## 5. Resources, manifests, and executable gates\n171: \n172: No resource is currently leased. Host generation/tests use the assigned paired worktrees and a\n173: unique output directory. The 32-bit package requires an immutable compiler/linker/SDK manifest\n174: (exact VS2010 tool binaries and hashes), generated-address JSON/header hashes, source bindings,\n175: fixture DLL/PDB/controller hashes, original EXE/MSVCR100 hashes, expected-record fixture hash, and\n176: command/environment manifest. Runtime uses **VM144 only** after verifying MAC/IP, console/admin\n177: access, game/session/process state and housekeeping, then acquiring canonical lease `vm144`.\n178: VM140 is excluded. Building on CT111 or another shared host also requires its named campaign lease.\n179: \n180: The eventual package must make these commands literal and zero-exit (output directory replaced by a\n181: new unique path each run):\n182: \n183: ```text\n184: python3 tools/generate_live_record_addresses.py --input campaign/research/research-live-record-addresses.json --output /include/generated/sots_live_record_addresses.h --check\n185: cmake -S -B -DSOTS_LIVE_RECORD_TESTS=ON\n186: cmake --build --target shim_live_record_unit_tests\n187: ctest --test-dir -R '^shim_live_record_' --output-on-failure\n188: powershell -NoProfile -File /tools/build-live-record-fixture.ps1 -Source -Out -Manifest \n189: powershell -NoProfile -File -Guest VM144 -Fixture -Cases -Out \n190: python3 verify/live-record-bridge/check_package.py --engine --re --package --require-source-match --require-binary-match --require-fixture-match --require-all-cases --require-balanced-lifetimes --require-negative-controls\n191: ```\n192: \n193: `check_package.py` must include executable mutations for raw owning-header transfer, interior/wrong\n194: entry, wrong convention, allocator-family mismatch, omitted cleanup, double free, incomplete fields,\n195: forbidden roots, zero execution, missing artifacts and source/binary/fixture drift. Host success is\n196: not live acceptance. A different verifier session must reproduce the integrated package and at least\n197: one mutation after all evidence is bound to one integrated source manifest.\n198: \n199: ## 6. Readiness blockers and exact next probe\n200: \n201: The contract remains needs-revision. Missing items are the generated address header and exact\n202: prototypes for PlayerEvent append, remaining allocation, and TurnEvents calls;\n203: verified VS2010 toolchain identity; controller and failure-containment implementation; literal VM144\n204: identity/preflight; expected records; checker; and immutable manifests.\n205: \n206: The `0x0079a150` versus `0x0079a184` check is complete and recorded in\n207: `research-live-record-addresses.json`; it qualifies only the ObservedTech copy-construction row.\n208: The shared string-assignment check is also complete in the JSON: `0x00425430` takes ECX destination\n209: plus source/offset/count stack arguments, returns the destination in EAX, and removes 12 bytes with\n210: `ret 0x0c`. Bridge copy sites use offset zero and count `0xffffffff`; allocation exceptions may\n211: propagate, so the fixture boundary must contain them. The ObservedTech constructor/destructor pair is\n212: now complete in the JSON, including virtual-slot provenance and the flags-zero embedded-object rule.\n213: The ObservedTech vector append/growth boundary is now encoded, including both source-location\n214: branches, growth allocation/copy/destruction, unsupported return value, and the static-only\n215: exceptional ownership qualification. PlayerEvent default construction at `0x0084ee30` is now\n216: complete, including exact writes across the 0x74-byte layout, three string initialization states,\n217: ABI/return and static exceptional partial-construction cleanup. PlayerEvent copy construction at\n218: `0x007693f0` is now complete, including the full ordered write set,\n219: three independent deep-copy states, ABI/return and static partial-copy unwind. PlayerEvent destruction\n220: at `0x0061ae90` is now complete, including reverse EvImg/EvMsg/EvDsc cleanup, conditional matching-\n221: family frees, empty-SSO resets, final base-vptr transition, ABI/no-return contract and static-only\n222: exception qualification. PlayerEvent vector append at `0x0086c580` is now complete in the JSON,\n223: including source-location branches, reserve capacity selection, range relocation, copy/destruction\n224: order, header publication, ABI/no-return behavior and static-only partial-copy unwind. The next\n225: discriminating static check is EventStorage get/create TurnEvents at `0x00885380`: bind its complete\n226: callable and helper windows and encode last-match lookup, empty-bucket construction, append lifetime,\n227: returned pointer stability and turn publication order.\n228: Do not begin bridge implementation until every exposed ABI row is encoded in the dedicated\n229: generated-address package.\n\n(End of file - total 229 lines)\n","metadata":{"preview":"# Live-record bridge readiness architecture\n\nStatus: **planning draft; contract remains needs-revision**. This is acceptance-before-implementation\nfor `research-live-record-bridge`, not live-safety evidence. No game, VM, allocator, constructor,\nor bridge code was executed while producing it.\n\n## 1. Bound facts and reconciliation result\n\nThe accepted dependency is the integrated static package\n`verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json`\n(binary `dumps/sots.exe`, SHA-256\n`970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841`). Its scope is static\nreproduction plus archived-save inspection, not live allocator safety.\n\nTwo current generated-header statements are unsafe to consume and must be replaced by a dedicated\nbridge fact channel before implementation:\n\n* `include/generated/sots_addresses.h` says `EvDsc` is omitted from duplicate equality. The accepted\n repaired windows establish the opposite: after action, location, three floats, message and image,\n `0x00825d40` compares both descriptions through `0x0046f8c0`; a description-only difference is","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/research/research-live-record-bridge.md","text":"# Live-record bridge readiness architecture\n\nStatus: **planning draft; contract remains needs-revision**. This is acceptance-before-implementation\nfor `research-live-record-bridge`, not live-safety evidence. No game, VM, allocator, constructor,\nor bridge code was executed while producing it.\n\n## 1. Bound facts and reconciliation result\n\nThe accepted dependency is the integrated static package\n`verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json`\n(binary `dumps/sots.exe`, SHA-256\n`970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841`). Its scope is static\nreproduction plus archived-save inspection, not live allocator safety.\n\nTwo current generated-header statements are unsafe to consume and must be replaced by a dedicated\nbridge fact channel before implementation:\n\n* `include/generated/sots_addresses.h` says `EvDsc` is omitted from duplicate equality. The accepted\n repaired windows establish the opposite: after action, location, three floats, message and image,\n `0x00825d40` compares both descriptions through `0x0046f8c0`; a description-only difference is\n therefore **not** a duplicate.\n* The same header names `ObservedTech_copy_ctor = RVA 0x0039a184`, an interior inlined-copy site.\n Fresh pinned-binary reconciliation in\n `campaign/research/research-live-record-addresses.json` confirms callable helper entry VA\n `0x0079a150` (RVA `0x0039a150`). It is a three-stack-argument cdecl-style helper: unused\n allocator-shaped argument, destination, source; the caller removes 12 bytes after its plain\n `ret`. It has no supported return-value contract. Full-image linear disassembly found exactly two\n direct calls, both to `0x0079a150`; neither targets `0x0079a184`. The interior site depends on the\n entry prologue's EBP, SEH, ESI and construction-state setup and is therefore an executable negative\n control, never a fallback.\n\nThe dedicated package now records the ObservedTech default constructor `0x008562a0`\n(`ECX=this`, no stack words, `EAX=this`, plain `ret`) and scalar-deleting destructor `0x00793610`\n(`ECX=this`, one flags word, `EAX=this`, `ret 4`). Fresh raw captures and a capture manifest are at\n`verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/`. The constructor creates\nthe valid empty name string and all scalar defaults. The destructor frees a long name, resets that\nstring, restores base vptr `0x009e22bc`, and frees object storage only when flags bit 0 is set. Vtable\nbytes at `0x00a2439c` put this destructor in slot zero; the accepted reallocation capture positively\nshows old embedded elements dispatched through slot zero with a pushed zero, so bridge calls must use\nflags=0 and must never repeat destruction.\n\nThe dedicated package now also records the complete PlayerEvent default constructor `0x0084ee30`\n(`ECX=this`, no stack words, `EAX=this`, plain `ret`) in\n`verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/`. It establishes every\nlogical field of the 0x74-byte object: vptr, zero ID/location/action/CID, three independent valid\nempty strings, and three `FLT_MAX` position words copied from `0x00af0dc8`; inactive SSO/allocator\nstorage bytes are not overwritten. The fixed empty-literal/count-zero helper path allocates and\nfrees nothing. Direct PE decoding of the constructor's\nMSVC FuncInfo records three unwind states: restore the base vptr, then destroy completed EvDsc,\nthen destroy completed EvMsg. The current string is not treated as completed if its constructor\nhelper throws. This establishes static partial-construction ownership only; no throw, allocation or\nlive destructor was executed.\n\nThe dedicated package now also records the complete PlayerEvent copy constructor `0x007693f0`\n(`ECX=destination`, stack source, `EAX=destination`, `ret 4`) in\n`verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/`. It writes the vptr and\nEvEID, independently empty-initializes and deep-copies EvDsc then EvMsg, copies EvLoc and all three\nEvPos words, independently initializes and deep-copies EvImg, then copies EvAct and EvCID. Every\nstring copy uses `0x00425430` with offset zero/count `0xffffffff`; no source owning header is\ntransferred. Direct PE decoding binds three MSVC unwind states: base-vptr restore, completed EvDsc\ndestruction, then completed EvMsg destruction. Construction state advances before each potentially\nallocating string assignment, so the currently failing string is not treated as complete. This is\nstatic partial-copy ownership only; no allocation failure, throw or live destructor was executed.\n\nThe dedicated package now also records the complete PlayerEvent destructor `0x0061ae90`\n(`ECX=this`, no stack words, plain `ret`, no supported return value) in\n`verify/results/research-live-record-bridge/run-a4f6a9922bf5800747bfdfc6/`. It destroys the three\nindependent strings in reverse construction order: EvImg, EvMsg, then EvDsc. Each capacity-at-least-\n`0x10` branch frees that string's owned buffer through scalar-delete thunk `0x00924faa`, and every\npath resets the string to empty SSO before proceeding. Only after all three strings are empty does\nthe helper replace PlayerEvent vptr `0x00a21958` with base vptr `0x009e22bc`. It takes no deleting\nflags and never frees enclosing PlayerEvent storage. The exact capture byte-matches both accepted\ndependency and integrated independent captures. This remains static ownership evidence; no live\ndestruction, allocator or exception behavior was executed.\n\nThe dedicated package now also records PlayerEvent vector append `0x0086c580`\n(`ECX=vector`, stack source, `ret 4`, no supported return) and reserve/growth helper\n`0x00869500` in\n`verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/`. An aligned source in\nthe live range is reduced to an element index before growth and recomputed afterward; an external\nsource pointer is retained. Full capacity reserves one element, selecting at least `size+1` and\nnormally 1.5x capacity. Reallocator `0x00865ee0` allocates through `0x0078af40`, deep-copies the\nold range through `0x00772430`, destroys old elements with deleting flags zero, frees old storage,\nand only then publishes end, last and first. Append deep-copies the new element through\n`0x007693f0` and publishes last only after success. Bound MSVC metadata shows that partial element\ncleanup remains with the copy/range helper and the reallocator frees an unpublished new block before\ncontinuing propagation. This is static ownership evidence; no live allocation, throw, copy or\ndestruction was executed.\n\nThe dedicated package now also records ObservedTech vector append `0x007b7320`\n(`ECX=vector`, stack source, `ret 4`, no supported return). It distinguishes source inside the live\nrange from source outside it, reserves one slot through `0x007b5820` only when full, deep-copies at\nthe old/new last, and advances last only after normal return. Growth chooses at least\n`size+1` and normally 1.5x capacity, then follows `0x007b34e0` -> `0x0057e590` -> MSVCR100 new,\ndeep-copies all old values, destroys the old range with flags zero, frees the old block through the\nmatching thunk, and publishes the new three-pointer header. Static SEH state exposes partial-copy\ncleanup, but an actual throw remains unexecuted and cannot support live-safety acceptance.\nThe reserve window is now bound to the direct raw capture and manifest at\n`verify/results/research-live-record-bridge/run-a52f7d5ebec657d8923d8402/`. Its full comparison records\nthat the invalidated manual transcription omitted exactly eight presentation spaces while all 49\naddress/opcode/mnemonic/operand rows match. Only the new 2472-byte stream is the current byte-exact\ncapture; the old 2464-byte stream remains invalidated and must not be cited as raw evidence.\n\nThe following accepted boundaries may seed the dedicated package, but each callable row still needs\nits raw-window artifact and exact prototype in that package: PlayerEvent destructor `0x0061ae90`\n(`ECX=this`, plain `ret`); get/create TurnEvents `0x00885380` (`ECX=EventStorage`, stack turn,\n`EAX=bucket`, `ret 4`); TurnEvents append `0x00884cb0` (`ECX=outer vector`, stack source,\n`ret 4`); TurnEvents slot-zero destructor `0x0062e120`; string assignment entry `0x00425430`\nwith allocating worker `0x004249a0` (`ret 8`); MSVCR100 scalar delete/new import thunks\n`0x00924faa`/`0x00924fb6`. Original `RecordObservedTech`, `EventStorage::PostEvent`, and every\nresearch completion root are forbidden.\n\n## 2. Exclusive write set\n\nOne implementation lane owns exactly these new or modified paths in the assigned engine worktree:\n\n* `include/generated/sots_live_record_addresses.h` (generated; never hand-maintained)\n* `src/shim/live_record/{abi.h,bridge.h,bridge.cpp,fixture_entry.cpp,CMakeLists.txt}`\n* top-level `CMakeLists.txt` only to add the isolated live-record targets\n* `tests/shim_live_record/{CMakeLists.txt,unit_tests.cpp}`\n* `tools/build-live-record-fixture.ps1`\n\nIt must not edit or link `src/shim/main.cpp`, `src/shim/hooks/research.cpp`, any research hook,\nor the standalone game model. The architecture/acceptance lane owns exactly:\n\n* `campaign/research/research-live-record-bridge.md`\n* `campaign/research/research-live-record-addresses.json`\n* `tools/generate_live_record_addresses.py`\n* `verify/live-record-bridge/{check_package.py,expected-records.json,forbidden-symbols.txt}`\n* immutable run directories below `verify/results/research-live-record-bridge/`\n\nContract/checkpoint mutations remain canonical campaign transactions. Any expansion of either set\nrequires contract revision before code changes.\n\n## 3. Bridge-only invocation and ownership\n\nBuild a **32-bit MSVC-2010-compatible** `sots_live_record_fixture.dll`, separate from `binkw32.dll`.\nA PowerShell controller starts a disposable game process without advancing a turn, loads only this\nfixture DLL, invokes exported `DWORD WINAPI RunLiveRecordBridgeFixture(void*)`, and exchanges a\nversioned request/result through a named file mapping. The export validates PE fingerprint/module\nbase and resolves only generated RVAs. The controller records loaded modules and rejects any run\nwhere `binkw32.dll` is the campaign proxy or any forbidden decision-root address appears in the\nfixture import/call audit. This route neither links nor initializes the normal shim entry point.\n\nAll owning objects stay inside the original process and one compiler/runtime family. The bridge\nnever transfers a `std::string` or vector header across the mapping. Requests contain scalar fields\nand counted UTF-8 bytes; results contain scalar fields, copied string bytes, vector sizes/capacities,\nand operation counters. Construction is field-wise through accepted constructors/assignment/copy\nhelpers. Append delegates to the accepted vector helper. Destruction is reverse-order, exactly once,\nwith scalar-delete flags zero for embedded values; only array blocks created by the compatible\noriginal runtime are released through its matching service.\n\nEach operation owns a journal state (`empty`, `object-constructed`, each string assigned,\n`element-appended`, `result-copied`, `destroyed`). A deterministic failpoint fires **before** each\noriginal call and unwinds only completed states. Actual MSVC allocation exceptions are caught inside\nthe MSVC-built DLL and converted to a result code; no C++ exception crosses the exported WINAPI\nboundary. The contained-failure case is accepted only when counters show no accepted partial record,\nno outstanding allocation, no mismatched family, and one destruction per completed owned value.\n\n## 4. Required cases and accounting\n\nThe fixture package must predeclare cases for empty, spare-capacity and full-capacity vectors; SSO\nand heap strings for every string field; repeated ObservedTech name update; exact event duplicate;\ndescription-only-different event; normal destruction; and one failpoint on a long-string/growth path.\nEvery case records complete resulting ObservedTech, TurnEvents and PlayerEvent fields, first/last/end\noffsets, event ID/order, helper call counts, allocations by family and size, destructions/frees by\nobject identity, failpoint, return status, forbidden-call count, and execution count. Zero cases,\nmissing records, or unbalanced identities fail rather than skip.\n\n## 5. Resources, manifests, and executable gates\n\nNo resource is currently leased. Host generation/tests use the assigned paired worktrees and a\nunique output directory. The 32-bit package requires an immutable compiler/linker/SDK manifest\n(exact VS2010 tool binaries and hashes), generated-address JSON/header hashes, source bindings,\nfixture DLL/PDB/controller hashes, original EXE/MSVCR100 hashes, expected-record fixture hash, and\ncommand/environment manifest. Runtime uses **VM144 only** after verifying MAC/IP, console/admin\naccess, game/session/process state and housekeeping, then acquiring canonical lease `vm144`.\nVM140 is excluded. Building on CT111 or another shared host also requires its named campaign lease.\n\nThe eventual package must make these commands literal and zero-exit (output directory replaced by a\nnew unique path each run):\n\n```text\npython3 tools/generate_live_record_addresses.py --input campaign/research/research-live-record-addresses.json --output /include/generated/sots_live_record_addresses.h --check\ncmake -S -B -DSOTS_LIVE_RECORD_TESTS=ON\ncmake --build --target shim_live_record_unit_tests\nctest --test-dir -R '^shim_live_record_' --output-on-failure\npowershell -NoProfile -File /tools/build-live-record-fixture.ps1 -Source -Out -Manifest \npowershell -NoProfile -File -Guest VM144 -Fixture -Cases -Out \npython3 verify/live-record-bridge/check_package.py --engine --re --package --require-source-match --require-binary-match --require-fixture-match --require-all-cases --require-balanced-lifetimes --require-negative-controls\n```\n\n`check_package.py` must include executable mutations for raw owning-header transfer, interior/wrong\nentry, wrong convention, allocator-family mismatch, omitted cleanup, double free, incomplete fields,\nforbidden roots, zero execution, missing artifacts and source/binary/fixture drift. Host success is\nnot live acceptance. A different verifier session must reproduce the integrated package and at least\none mutation after all evidence is bound to one integrated source manifest.\n\n## 6. Readiness blockers and exact next probe\n\nThe contract remains needs-revision. Missing items are the generated address header and exact\nprototypes for PlayerEvent append, remaining allocation, and TurnEvents calls;\nverified VS2010 toolchain identity; controller and failure-containment implementation; literal VM144\nidentity/preflight; expected records; checker; and immutable manifests.\n\nThe `0x0079a150` versus `0x0079a184` check is complete and recorded in\n`research-live-record-addresses.json`; it qualifies only the ObservedTech copy-construction row.\nThe shared string-assignment check is also complete in the JSON: `0x00425430` takes ECX destination\nplus source/offset/count stack arguments, returns the destination in EAX, and removes 12 bytes with\n`ret 0x0c`. Bridge copy sites use offset zero and count `0xffffffff`; allocation exceptions may\npropagate, so the fixture boundary must contain them. The ObservedTech constructor/destructor pair is\nnow complete in the JSON, including virtual-slot provenance and the flags-zero embedded-object rule.\nThe ObservedTech vector append/growth boundary is now encoded, including both source-location\nbranches, growth allocation/copy/destruction, unsupported return value, and the static-only\nexceptional ownership qualification. PlayerEvent default construction at `0x0084ee30` is now\ncomplete, including exact writes across the 0x74-byte layout, three string initialization states,\nABI/return and static exceptional partial-construction cleanup. PlayerEvent copy construction at\n`0x007693f0` is now complete, including the full ordered write set,\nthree independent deep-copy states, ABI/return and static partial-copy unwind. PlayerEvent destruction\nat `0x0061ae90` is now complete, including reverse EvImg/EvMsg/EvDsc cleanup, conditional matching-\nfamily frees, empty-SSO resets, final base-vptr transition, ABI/no-return contract and static-only\nexception qualification. PlayerEvent vector append at `0x0086c580` is now complete in the JSON,\nincluding source-location branches, reserve capacity selection, range relocation, copy/destruction\norder, header publication, ABI/no-return behavior and static-only partial-copy unwind. The next\ndiscriminating static check is EventStorage get/create TurnEvents at `0x00885380`: bind its complete\ncallable and helper windows and encode last-match lookup, empty-bucket construction, append lifetime,\nreturned pointer stability and turn publication order.\nDo not begin bridge implementation until every exposed ABI row is encoded in the dedicated\ngenerated-address package.","lineStart":1,"lineEnd":229,"totalLines":229,"truncated":false}},"title":"campaign/research/research-live-record-bridge.md","time":{"start":1789013317657,"end":1789013317714}},"metadata":{"openai":{"itemId":"fc_01561e98be97e978016aa22d45793087d1a27e21fcf26f2bbf"}},"id":"prt_08980d815001vI6B3dFabUf7E0","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980a696001cFOKUh4UWkKCO6"}} +{"type":"tool_use","timestamp":1789013317730,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"glob","callID":"call_QChEhlvRJvMGiowqr0Y7nd5w","state":{"status":"completed","input":{"pattern":"**/architecture.md","path":"/tmp/opencode/sots-final-research-engine"},"output":"/tmp/opencode/sots-final-research-engine/docs/architecture.md","metadata":{"count":1,"truncated":false},"title":"../../../tmp/opencode/sots-final-research-engine","time":{"start":1789013317684,"end":1789013317719}},"metadata":{"openai":{"itemId":"fc_01561e98be97e978016aa22d45795087d196acd6d8d1e222c9"}},"id":"prt_08980d8300016mR4X6a7dOSdVd","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980a696001cFOKUh4UWkKCO6"}} +{"type":"tool_use","timestamp":1789013317730,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"glob","callID":"call_RT206rkxt0uJrsh86hIJodfC","state":{"status":"completed","input":{"pattern":"campaign/contracts/research-completion-abi.json","path":"/home/alex/sots-re"},"output":"/home/alex/sots-re/campaign/contracts/research-completion-abi.json","metadata":{"count":1,"truncated":false},"title":"","time":{"start":1789013317691,"end":1789013317721}},"metadata":{"openai":{"itemId":"fc_01561e98be97e978016aa22d45795887d198332294dd1ed600"}},"id":"prt_08980d836001UDNv415wxzSRoz","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980a696001cFOKUh4UWkKCO6"}} +{"type":"tool_use","timestamp":1789013317748,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_a9RWkValqILARpD2qyXFmGkn","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/research/research-live-record-addresses.json"},"output":"/home/alex/sots-re/campaign/research/research-live-record-addresses.json\nfile\n\n1: {\n2: \"schema\": \"sots-live-record-addresses/1\",\n3: \"status\": \"incomplete-planning-input\",\n4: \"binary\": {\n5: \"path\": \"dumps/sots.exe\",\n6: \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\",\n7: \"image_base\": \"0x00400000\"\n8: },\n9: \"tool\": {\n10: \"path\": \"/usr/bin/objdump\",\n11: \"version\": \"GNU Binutils 2.38\",\n12: \"sha256\": \"1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd\"\n13: },\n14: \"source_identity\": {\n15: \"engine\": {\n16: \"path\": \"/tmp/opencode/sots-final-research-engine\",\n17: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n18: \"git_common_dir\": \"/home/alex/sots-engine/.git\"\n19: },\n20: \"re\": {\n21: \"path\": \"/tmp/opencode/sots-final-research-re\",\n22: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n23: \"git_common_dir\": \"/home/alex/sots-re/.git\"\n24: }\n25: },\n26: \"fresh_capture\": {\n27: \"session\": \"run-eca0889c30beb7f00f4ac264\",\n28: \"cwd\": \"/home/alex/sots-re\",\n29: \"commands\": [\n30: {\n31: \"argv\": [\n32: \"/usr/bin/objdump\",\n33: \"-D\",\n34: \"-Mintel\",\n35: \"--start-address=0x0079a142\",\n36: \"--stop-address=0x0079a1e0\",\n37: \"dumps/sots.exe\"\n38: ],\n39: \"returncode\": 0,\n40: \"stdout_bytes\": 3452,\n41: \"stdout_sha256\": \"f8f31b09ddb0a6d5b4016f84bfe86b994ed944be7372e264b90344fd560d4d05\",\n42: \"stderr_bytes\": 0,\n43: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"\n44: },\n45: {\n46: \"argv\": [\n47: \"/usr/bin/objdump\",\n48: \"-D\",\n49: \"-Mintel\",\n50: \"dumps/sots.exe\"\n51: ],\n52: \"returncode\": 0,\n53: \"stdout_bytes\": 148427275,\n54: \"stdout_sha256\": \"b748aef66fb4bb11be5223517a4c563eccd8c5117d86481c1459c20eded932c3\",\n55: \"stderr_bytes\": 0,\n56: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"\n57: },\n58: {\n59: \"argv\": [\n60: \"/usr/bin/objdump\",\n61: \"-D\",\n62: \"-Mintel\",\n63: \"--start-address=0x007b7320\",\n64: \"--stop-address=0x007b73a1\",\n65: \"dumps/sots.exe\"\n66: ],\n67: \"returncode\": 0,\n68: \"stdout_bytes\": 2794,\n69: \"stdout_sha256\": \"510efc3587feec6b34d52effccfd9afac6cec4ab3358de54ba7ad9aecfa73c67\",\n70: \"stderr_bytes\": 0,\n71: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"\n72: },\n73: {\n74: \"argv\": [\n75: \"/usr/bin/objdump\",\n76: \"-D\",\n77: \"-Mintel\",\n78: \"--start-address=0x00425430\",\n79: \"--stop-address=0x00425519\",\n80: \"dumps/sots.exe\"\n81: ],\n82: \"returncode\": 0,\n83: \"stdout_bytes\": 5205,\n84: \"stdout_sha256\": \"9f3ceb743ad7878d1d5900233d24acd2bd0bc86bc9f44acfcfccf0a6735e5c16\",\n85: \"stderr_bytes\": 0,\n86: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"\n87: }\n88: ]\n89: },\n90: \"constructor_destructor_capture\": {\n91: \"session\": \"run-a247a9d6650d9e0954596cc0\",\n92: \"manifest\": \"verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/manifest.json\",\n93: \"scope\": \"Read-only constructor, scalar-deleting destructor, and vtable-slot capture; planning evidence only.\"\n94: },\n95: \"reserve_recapture\": {\n96: \"session\": \"run-a52f7d5ebec657d8923d8402\",\n97: \"manifest\": \"verify/results/research-live-record-bridge/run-a52f7d5ebec657d8923d8402/manifest.json\",\n98: \"stdout\": \"verify/results/research-live-record-bridge/run-a52f7d5ebec657d8923d8402/observed-reserve.stdout.txt\",\n99: \"stdout_sha256\": \"2d011ed96329c4c4ff462cbfd65decac9dccf40558765244c769be1dedc92275\",\n100: \"comparison\": \"verify/results/research-live-record-bridge/run-a52f7d5ebec657d8923d8402/comparison.json\",\n101: \"scope\": \"Read-only byte-exact recapture of 0x007b5820..0x007b5898. Full comparison found the invalidated transcription omitted exactly eight presentation spaces; all 49 address/opcode/mnemonic/operand rows match. Planning evidence only.\"\n102: },\n103: \"player_event_constructor_capture\": {\n104: \"session\": \"run-c1238a40bfc3bfa7c2ff9ba6\",\n105: \"manifest\": \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/manifest.json\",\n106: \"constructor_stdout\": \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-exact.stdout.txt\",\n107: \"eh_analysis\": \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-eh-analysis.json\",\n108: \"scope\": \"Read-only callable constructor and MSVC unwind capture; static planning evidence only, not live allocator or exception execution.\"\n109: },\n110: \"player_event_copy_capture\": {\n111: \"session\": \"run-36c401e90eb0ec1db4d35865\",\n112: \"manifest\": \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/manifest.json\",\n113: \"copy_stdout\": \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-exact.stdout.txt\",\n114: \"eh_analysis\": \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-eh-analysis.json\",\n115: \"scope\": \"Read-only callable copy-constructor and MSVC unwind capture; static planning evidence only, not live allocator or exception execution.\"\n116: },\n117: \"player_event_destructor_capture\": {\n118: \"session\": \"run-a4f6a9922bf5800747bfdfc6\",\n119: \"manifest\": \"verify/results/research-live-record-bridge/run-a4f6a9922bf5800747bfdfc6/manifest.json\",\n120: \"destructor_stdout\": \"verify/results/research-live-record-bridge/run-a4f6a9922bf5800747bfdfc6/player-event-dtor-exact.stdout.txt\",\n121: \"context_stdout\": \"verify/results/research-live-record-bridge/run-a4f6a9922bf5800747bfdfc6/player-event-dtor-context.stdout.txt\",\n122: \"scope\": \"Read-only complete callable destructor and boundary capture; static planning evidence only, not live allocator or destruction execution.\"\n123: },\n124: \"player_event_append_capture\": {\n125: \"session\": \"run-e21ce0d2909d8647e6a99a7b\",\n126: \"manifest\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json\",\n127: \"append_stdout\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-append-exact.stdout.txt\",\n128: \"growth_stdout\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-growth-exact.stdout.txt\",\n129: \"reallocator_stdout\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-reallocate-exact.stdout.txt\",\n130: \"eh_analysis\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-append-eh-analysis.json\",\n131: \"scope\": \"Read-only callable append, reserve/growth, reallocation and MSVC unwind capture; static planning evidence only, not live allocator, copy, destruction or exception execution.\"\n132: },\n133: \"operations\": {\n134: \"observed_tech_default_construct\": {\n135: \"va\": \"0x008562a0\",\n136: \"rva\": \"0x004562a0\",\n137: \"callable_entry\": true,\n138: \"prototype\": \"ObservedTech *__thiscall observed_tech_default_construct(ObservedTech *destination)\",\n139: \"receiver\": \"ECX = writable uninitialized storage for one complete 0x2c-byte ObservedTech\",\n140: \"arguments\": [],\n141: \"stack_cleanup\": \"no stack arguments; helper ends in plain ret\",\n142: \"return\": \"EAX = destination ObservedTech pointer on normal return\",\n143: \"writes\": [\n144: \"vptr 0x00a2439c at destination +0x00\",\n145: \"zero dword at +0x04, covering both 16-bit turn fields\",\n146: \"zero byte at +0x08\",\n147: \"valid empty/SSO std::string rooted at +0x0c with size zero and capacity 0x0f\",\n148: \"zero dword at +0x28\"\n149: ],\n150: \"ownership\": \"Field-wise construction creates one valid embedded string; it does not adopt or copy an owning header. The constructor establishes an SEH frame around empty-string setup through VA 0x00425550. On normal return the destination owns exactly its initialized name string and must later be destroyed exactly once.\",\n151: \"vtable_provenance\": {\n152: \"vtable_va\": \"0x00a2439c\",\n153: \"complete_object_locator_va\": \"0x00a81c78\",\n154: \"slots\": [\n155: {\"index\": 0, \"va\": \"0x00793610\", \"meaning\": \"scalar-deleting destructor\"},\n156: {\"index\": 1, \"va\": \"0x00817c40\", \"meaning\": \"Read\"},\n157: {\"index\": 2, \"va\": \"0x00817cf0\", \"meaning\": \"Write\"}\n158: ]\n159: },\n160: \"captures\": [\n161: \"verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/observed-ctor.stdout.txt\",\n162: \"verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/observed-vtable.stdout.txt\",\n163: \"verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/manifest.json\"\n164: ]\n165: },\n166: \"observed_tech_scalar_delete_destruct\": {\n167: \"va\": \"0x00793610\",\n168: \"rva\": \"0x00393610\",\n169: \"callable_entry\": true,\n170: \"prototype\": \"ObservedTech *__thiscall observed_tech_scalar_delete_destruct(ObservedTech *value, uint32_t flags)\",\n171: \"receiver\": \"ECX = one fully constructed live-layout ObservedTech\",\n172: \"arguments\": [\n173: {\n174: \"index\": 0,\n175: \"location\": \"[entry ESP+0x04] / [EBP+0x08]\",\n176: \"meaning\": \"scalar-deleting flags; bit 0 requests freeing the object storage\"\n177: }\n178: ],\n179: \"stack_cleanup\": \"callee removes the one 4-byte flags argument with ret 4\",\n180: \"return\": \"EAX = input ObservedTech pointer on normal return, including the flags-bit-0 path\",\n181: \"writes\": [\n182: \"when name capacity at +0x20 is at least 0x10, frees the owned buffer pointer at +0x0c through VA 0x00924faa\",\n183: \"sets name capacity +0x20 to 0x0f, size +0x1c to zero, and first inline byte +0x0c to zero\",\n184: \"writes base vptr 0x009e22bc at +0x00\",\n185: \"when flags bit 0 is set, frees the ObservedTech storage through VA 0x00924faa\"\n186: ],\n187: \"ownership\": \"Consumes the one name ownership exactly once. For stack temporaries, vector elements, and all other embedded values the bridge must pass flags=0 so only member lifetime ends and object storage is not freed. Reuse after return requires a fresh constructor; a second destructor call is forbidden.\",\n188: \"embedded_invocation\": {\n189: \"flags\": 0,\n190: \"required_reason\": \"Original vector reallocation pushes zero before virtual slot-0 dispatch over each old 0x2c-byte element; flags=1 would incorrectly scalar-delete embedded storage.\"\n191: },\n192: \"captures\": [\n193: \"verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/observed-dtor.stdout.txt\",\n194: \"verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/observed-vtable.stdout.txt\",\n195: \"verify/results/research-completion-abi-independent/integration-lead-20260910/observed-realloc-wide.stdout.txt\",\n196: \"verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/manifest.json\"\n197: ]\n198: },\n199: \"observed_tech_copy_construct\": {\n200: \"va\": \"0x0079a150\",\n201: \"rva\": \"0x0039a150\",\n202: \"callable_entry\": true,\n203: \"prototype\": \"void __cdecl observed_tech_copy_construct(void *unused_allocator, ObservedTech *destination, const ObservedTech *source)\",\n204: \"arguments\": [\n205: {\n206: \"index\": 0,\n207: \"location\": \"[entry ESP+0x04] / [EBP+0x08]\",\n208: \"meaning\": \"allocator-shaped argument passed as vector+0x0c by both callers; not read by this helper\"\n209: },\n210: {\n211: \"index\": 1,\n212: \"location\": \"[entry ESP+0x08] / [EBP+0x0c]\",\n213: \"meaning\": \"destination ObservedTech pointer\"\n214: },\n215: {\n216: \"index\": 2,\n217: \"location\": \"[entry ESP+0x0c] / [EBP+0x10]\",\n218: \"meaning\": \"source ObservedTech pointer\"\n219: }\n220: ],\n221: \"stack_cleanup\": \"caller removes 12 bytes; helper ends in plain ret\",\n222: \"receiver\": \"none; incoming ECX is not consumed as a receiver\",\n223: \"return\": \"no supported return-value contract; EAX is incidental/clobbered\",\n224: \"writes\": [\n225: \"destination vptr at +0x00\",\n226: \"16-bit fields at +0x04 and +0x06\",\n227: \"byte field at +0x08\",\n228: \"deep-constructed string rooted at +0x0c through VA 0x00425430\",\n229: \"32-bit field at +0x28\"\n230: ],\n231: \"ownership\": \"Constructs destination field-wise. The destination string starts empty/SSO and is assigned from the source; no owning string header is copied. Entry SEH state covers the potentially allocating string operation.\",\n232: \"callers\": [\n233: {\n234: \"call_va\": \"0x007b7366\",\n235: \"containing_entry_va\": \"0x007b7320\",\n236: \"path\": \"source originally inside vector; source pointer recomputed after possible growth\"\n237: },\n238: {\n239: \"call_va\": \"0x007b738f\",\n240: \"containing_entry_va\": \"0x007b7320\",\n241: \"path\": \"source outside vector\"\n242: }\n243: ],\n244: \"all_direct_callers_probe\": \"Full-image linear objdump contained exactly the two direct call rows above for target 0x79a150.\",\n245: \"interior_negative_control\": {\n246: \"va\": \"0x0079a184\",\n247: \"rva\": \"0x0039a184\",\n248: \"callable_entry\": false,\n249: \"reason\": \"Interior instruction depends on the 0x0079a150 prologue having established EBP, SEH state, ESI=destination and local construction state. No direct caller targets it.\"\n250: },\n251: \"accepted_dependency_captures\": [\n252: \"verify/results/research-completion-abi-independent/integration-lead-20260910/observed-copy-control.stdout.txt\",\n253: \"verify/results/research-completion-abi-independent/integration-lead-20260910/observed-push-wide.stdout.txt\",\n254: \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\"\n255: ]\n256: },\n257: \"observed_tech_vector_append\": {\n258: \"va\": \"0x007b7320\",\n259: \"rva\": \"0x003b7320\",\n260: \"callable_entry\": true,\n261: \"prototype\": \"void __thiscall observed_tech_vector_append(ObservedTechVector *vector, const ObservedTech *source)\",\n262: \"receiver\": \"ECX = live three-pointer vector header: first at +0x00, last at +0x04, end at +0x08; allocator-shaped storage begins at +0x0c\",\n263: \"arguments\": [\n264: {\n265: \"index\": 0,\n266: \"location\": \"[entry ESP+0x04] / [EBP+0x08]\",\n267: \"meaning\": \"source live-layout ObservedTech to deep-copy\"\n268: }\n269: ],\n270: \"stack_cleanup\": \"callee removes the one 4-byte source argument with ret 4\",\n271: \"return\": \"no supported return-value contract; EAX is incidental after the copy helper\",\n272: \"source_location_branches\": [\n273: \"When source is in [first,last), computes its 0x2c-element index before any growth and recomputes source from the possibly replaced first pointer afterward.\",\n274: \"When source is outside [first,last), retains the caller pointer across possible growth. A pointer into unused capacity or exactly at last is not treated as a live in-vector source and is forbidden by the bridge precondition.\"\n275: ],\n276: \"no_growth\": \"Calls 0x0079a150 with vector+0x0c, destination=old last, and selected source; advances last by exactly 0x2c only after normal copy return. Existing elements and end are unchanged.\",\n277: \"growth\": {\n278: \"reserve_va\": \"0x007b5820\",\n279: \"reserve_prototype\": \"void __thiscall observed_tech_vector_reserve_additional(ObservedTechVector *vector, uint32_t additional_count)\",\n280: \"reserve_abi\": \"ECX=vector, one stack count, ret 4, no supported return; append passes additional_count=1 only when last==end.\",\n281: \"capacity_rule\": \"Rejects size+additional above 0x05d1745d elements; if required exceeds capacity, chooses at least required and otherwise approximately capacity+floor(capacity/2), capped through the same maximum check, then calls 0x007b34e0 with the chosen element capacity.\",\n282: \"reallocate_effects\": \"0x007b34e0 obtains count*0x2c storage through 0x0057e590 -> MSVCR100 scalar new thunk 0x00924fb6, deep-copy-constructs [old first,old last) into the new block through 0x0085e650, destroys each old element through virtual slot zero with flags=0, frees the old block through 0x00924faa, then writes end, last and first in that order. Append subsequently deep-copies the requested source at the new last and advances last by 0x2c.\",\n283: \"normal_postcondition\": \"All prior element values survive as independently owned deep copies; every old element is destroyed exactly once and old array storage is freed once through the matching runtime family.\"\n284: },\n285: \"exceptional_ownership\": \"The append helper has no local handler and advances last only after copy construction returns. Reserve/reallocate install MSVC SEH state around allocation/range copy; 0x0085e650 tracks the current destination and has a partial-range destruction funclet. Static control flow therefore supports cleanup before propagation and leaves the published vector header update until after successful relocation, but no live throw has been exercised. The bridge must contain any propagated C++ exception at its MSVC DLL boundary, must treat the operation as failed with no accepted new element, and must validate zero outstanding allocation/partial element before this row can support live-safety acceptance.\",\n286: \"captures\": [\n287: \"verify/results/research-completion-abi-independent/integration-lead-20260910/observed-push-wide.stdout.txt\",\n288: \"verify/results/research-live-record-bridge/run-a52f7d5ebec657d8923d8402/observed-reserve.stdout.txt\",\n289: \"verify/results/research-live-record-bridge/run-a52f7d5ebec657d8923d8402/manifest.json\",\n290: \"verify/results/research-live-record-bridge/run-a52f7d5ebec657d8923d8402/comparison.json\",\n291: \"verify/results/research-completion-abi-independent/integration-lead-20260910/observed-realloc-wide.stdout.txt\",\n292: \"verify/results/research-completion-abi-independent/integration-lead-20260910/observed-alloc-wide.stdout.txt\"\n293: ]\n294: },\n295: \"player_event_default_construct\": {\n296: \"va\": \"0x0084ee30\",\n297: \"rva\": \"0x0044ee30\",\n298: \"callable_entry\": true,\n299: \"prototype\": \"PlayerEvent *__thiscall player_event_default_construct(PlayerEvent *destination)\",\n300: \"receiver\": \"ECX = writable uninitialized storage for one complete 0x74-byte PlayerEvent\",\n301: \"arguments\": [],\n302: \"stack_cleanup\": \"no stack arguments; helper ends in plain ret\",\n303: \"return\": \"EAX = destination PlayerEvent pointer on normal return\",\n304: \"writes\": [\n305: \"vptr 0x00a21958 at destination +0x00\",\n306: \"EvEID zero at +0x04\",\n307: \"valid empty/SSO EvDsc std::string rooted at +0x08 with size zero, capacity 0x0f and first inline byte zero\",\n308: \"valid empty/SSO EvMsg std::string rooted at +0x24 with size zero, capacity 0x0f and first inline byte zero\",\n309: \"EvLoc zero at +0x40\",\n310: \"EvPos dwords at +0x44, +0x48 and +0x4c copied from 0x00af0dc8, 0x00af0dcc and 0x00af0dd0; each source word is 0x7f7fffff (FLT_MAX)\",\n311: \"valid empty/SSO EvImg std::string rooted at +0x50 with size zero, capacity 0x0f and first inline byte zero\",\n312: \"EvAct zero at +0x6c\",\n313: \"EvCID zero at +0x70\"\n314: ],\n315: \"complete_layout\": \"The listed writes establish every logical field of the 0x74-byte object: 4-byte vptr, 4-byte EvEID, three independent 0x1c-byte strings, EvLoc, three position dwords, EvAct and EvCID. They do not overwrite inactive SSO union bytes or the allocator-shaped trailing dword in each 0x1c-byte string object; those bytes are not observable string value or ownership state. No owning header is imported from caller storage.\",\n316: \"string_initialization\": \"Each string is manually established as empty/SSO and then passed as ECX to 0x00425550 with stack arguments empty literal 0x009e100c and count zero. The bound zero-count path writes size zero and the inline terminator, performs no allocation or free, and returns the destination with ret 8. On normal return all three are distinct valid owned subobjects even though inactive storage bytes may retain their prior contents.\",\n317: \"exceptional_partial_construction\": {\n318: \"handler_thunk_va\": \"0x0099613e\",\n319: \"func_info_va\": \"0x00ac98a4\",\n320: \"func_info\": \"MSVC magic 0x19930522, maxState 3, unwind map 0x00ac988c, no try-block or IP maps, flags 1\",\n321: \"unwind_states\": [\n322: \"state 0 -> -1 through 0x00996120: restore base vptr 0x009e22bc through 0x00763a00\",\n323: \"state 1 -> 0 through 0x00996128: destroy completed EvDsc at destination+0x08 through 0x008e0610, then continue state 0 cleanup\",\n324: \"state 2 -> 1 through 0x00996133: destroy completed EvMsg at destination+0x24 through 0x008e0610, then continue states 1 and 0 cleanup\"\n325: ],\n326: \"qualification\": \"The state is advanced immediately before the next empty-string helper call, so a hypothetical exception during construction of a string cleans only predecessor string subobjects plus the base; a failing current subobject is not treated as completed. For the constructor's fixed valid empty-literal/count-zero inputs, the bound 0x00425550 path does not allocate, free or call a failure helper. The third successful call is followed only by scalar stores on the observed path. This is static unwind topology; no throw or allocator behavior was executed.\"\n327: },\n328: \"ownership\": \"On normal return the destination owns three independently destructible valid strings and must be destroyed exactly once. A failed construction must not be passed to the complete PlayerEvent destructor; only the compiler unwind actions for completed states may run.\",\n329: \"captures\": [\n330: \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-exact.stdout.txt\",\n331: \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor.stdout.txt\",\n332: \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-ehdata.stdout.txt\",\n333: \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-funcinfo.stdout.txt\",\n334: \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-cleanup-base.stdout.txt\",\n335: \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-cleanup-string.stdout.txt\",\n336: \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/string-empty-init.stdout.txt\",\n337: \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-eh-record.bin\",\n338: \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-eh-analysis.json\",\n339: \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/manifest.json\"\n340: ]\n341: },\n342: \"player_event_copy_construct\": {\n343: \"va\": \"0x007693f0\",\n344: \"rva\": \"0x003693f0\",\n345: \"callable_entry\": true,\n346: \"prototype\": \"PlayerEvent *__thiscall player_event_copy_construct(PlayerEvent *destination, const PlayerEvent *source)\",\n347: \"receiver\": \"ECX = writable uninitialized storage for one complete 0x74-byte PlayerEvent\",\n348: \"arguments\": [\n349: {\n350: \"index\": 0,\n351: \"location\": \"[entry ESP+0x04] / [EBP+0x08]\",\n352: \"meaning\": \"source fully constructed live-layout PlayerEvent\"\n353: }\n354: ],\n355: \"stack_cleanup\": \"callee removes the one 4-byte source argument with ret 4\",\n356: \"return\": \"EAX = destination PlayerEvent pointer on normal return\",\n357: \"ordered_writes\": [\n358: \"writes vptr 0x00a21958 at destination +0x00, then copies source EvEID +0x04\",\n359: \"establishes destination EvDsc +0x08 as empty/SSO, then deep-assigns source EvDsc through 0x00425430 with offset zero and count 0xffffffff\",\n360: \"establishes destination EvMsg +0x24 as empty/SSO, then deep-assigns source EvMsg through 0x00425430 with offset zero and count 0xffffffff\",\n361: \"copies source EvLoc +0x40 and all three EvPos dwords +0x44, +0x48 and +0x4c\",\n362: \"establishes destination EvImg +0x50 as empty/SSO, then deep-assigns source EvImg through 0x00425430 with offset zero and count 0xffffffff\",\n363: \"copies source EvAct +0x6c and EvCID +0x70\"\n364: ],\n365: \"complete_layout\": \"The ordered writes establish every logical field of the 0x74-byte destination. Each destination string receives its own valid SSO or heap ownership; no source string header, pointer, size/capacity tuple, or other owning header is transferred.\",\n366: \"exceptional_partial_construction\": {\n367: \"handler_thunk_va\": \"0x009862de\",\n368: \"func_info_va\": \"0x00ab9f0c\",\n369: \"func_info\": \"MSVC magic 0x19930522, maxState 3, unwind map 0x00ab9ef4, no try-block or IP maps, flags 1\",\n370: \"unwind_states\": [\n371: \"state 0 -> -1 through 0x009862c0: restore base vptr 0x009e22bc through 0x00763a00\",\n372: \"state 1 -> 0 through 0x009862c8: destroy completed destination EvDsc at +0x08 through 0x008e0610, then continue state 0 cleanup\",\n373: \"state 2 -> 1 through 0x009862d3: destroy completed destination EvMsg at +0x24 through 0x008e0610, then continue states 1 and 0 cleanup\"\n374: ],\n375: \"qualification\": \"Construction state is set to 0 before the EvDsc assignment, 1 before the EvMsg assignment, and 2 before the EvImg assignment. Therefore a throwing current deep assignment is not treated as completed; only predecessor destination strings plus the base are unwound. After successful EvImg assignment, only scalar copies remain. This is static unwind topology; no allocation failure or throw was executed.\"\n376: },\n377: \"ownership\": \"On normal return destination owns three independent deep copies and must later be destroyed exactly once. Source remains unchanged and retains all three original ownerships. A failed copy must not be passed to the complete PlayerEvent destructor; compiler unwind handles only completed destination subobjects.\",\n378: \"captures\": [\n379: \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-exact.stdout.txt\",\n380: \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-ehdata.stdout.txt\",\n381: \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-funcinfo.stdout.txt\",\n382: \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-cleanup-base.stdout.txt\",\n383: \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-cleanup-string.stdout.txt\",\n384: \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-eh-record.bin\",\n385: \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-eh-analysis.json\",\n386: \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/manifest.json\"\n387: ]\n388: },\n389: \"player_event_vector_append\": {\n390: \"va\": \"0x0086c580\",\n391: \"rva\": \"0x0046c580\",\n392: \"callable_entry\": true,\n393: \"prototype\": \"void __thiscall player_event_vector_append(PlayerEventVector *vector, const PlayerEvent *source)\",\n394: \"receiver\": \"ECX = live three-pointer vector header: first at +0x00, last at +0x04 and end at +0x08; allocator-shaped storage begins at +0x0c\",\n395: \"arguments\": [{\"index\": 0, \"location\": \"[entry ESP+0x04] / [EBP+0x08]\", \"meaning\": \"source fully constructed live-layout PlayerEvent to deep-copy\"}],\n396: \"stack_cleanup\": \"callee removes the one 4-byte source argument with ret 4\",\n397: \"return\": \"no supported return-value contract; EAX is incidental after copy construction\",\n398: \"source_location_branches\": [\n399: \"For an element-aligned source in [first,last), computes its 0x74-byte element index before possible growth and recomputes the source from the possibly replaced first pointer afterward.\",\n400: \"For source below first or at/above last, retains the external caller pointer across possible growth. A source inside unused capacity, at last, or unaligned inside the live byte range violates the bridge precondition.\"\n401: ],\n402: \"no_growth\": \"Deep-copy-constructs at old last through 0x007693f0 and advances last by exactly 0x74 only after normal return. First, end and all prior elements remain unchanged.\",\n403: \"growth\": {\n404: \"reserve_va\": \"0x00869500\",\n405: \"reserve_prototype\": \"void __thiscall player_event_vector_reserve_additional(PlayerEventVector *vector, uint32_t additional_count)\",\n406: \"reserve_abi\": \"ECX=vector, one stack count, ret 4, no supported return; append passes additional_count=1 only when last==end.\",\n407: \"capacity_rule\": \"Rejects size+additional above 0x0234f72c elements. If required exceeds capacity, chooses at least required and otherwise capacity+floor(capacity/2), subject to the same maximum, then calls 0x00865ee0.\",\n408: \"reallocator_va\": \"0x00865ee0\",\n409: \"reallocator_abi\": \"ECX=vector, one requested-capacity stack word, ret 4, no supported return.\",\n410: \"reallocate_effects\": \"Allocates requested_count*0x74 through 0x0078af40 -> MSVCR100 scalar new thunk 0x00924fb6; deep-copy-constructs [old first,old last) through 0x00772430 -> 0x007693f0; destroys each old PlayerEvent by virtual slot zero with flags=0; frees old storage through 0x00924faa; then publishes end, last and first in that order. Append subsequently copies the requested source at new last and publishes last+0x74.\",\n411: \"normal_postcondition\": \"Every prior event survives as a complete independent deep copy; each old event is destroyed exactly once, old array storage is freed once through the matching runtime family, and the appended event owns three independent strings.\"\n412: },\n413: \"exceptional_ownership\": \"Append FuncInfo 0x00aa0428 has two branch-specific states whose actions call no-op 0x0080c5a0; partial destination cleanup remains inside 0x007693f0. Reallocator FuncInfo 0x00acb5d4 routes a failed range copy to 0x00865ff1, which frees the unpublished new block after the range helper destroys its completed prefix, then continues propagation through 0x00924fbc. Header publication and append last advancement occur only after successful relocation/copy. This is static unwind topology; no live throw was exercised, so the fixture must contain propagation and prove balanced identities before live-safety acceptance.\",\n414: \"captures\": [\n415: \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-append-exact.stdout.txt\",\n416: \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-growth-exact.stdout.txt\",\n417: \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-reallocate-exact.stdout.txt\",\n418: \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-reallocate-cleanup.stdout.txt\",\n419: \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-append-eh-analysis.json\",\n420: \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json\",\n421: \"verify/results/research-completion-abi-independent/integration-lead-20260910/player-append-wide.stdout.txt\"\n422: ]\n423: },\n424: \"player_event_destruct\": {\n425: \"va\": \"0x0061ae90\",\n426: \"rva\": \"0x0021ae90\",\n427: \"callable_entry\": true,\n428: \"prototype\": \"void __thiscall player_event_destruct(PlayerEvent *value)\",\n429: \"receiver\": \"ECX = one fully constructed live-layout 0x74-byte PlayerEvent\",\n430: \"arguments\": [],\n431: \"stack_cleanup\": \"no stack arguments; helper ends in plain ret\",\n432: \"return\": \"no supported return-value contract; EAX is untouched on the all-SSO path and otherwise may retain an incidental scalar-delete result\",\n433: \"ordered_writes\": [\n434: \"destroys EvImg first: when capacity +0x64 is at least 0x10, frees the owned buffer pointer at +0x50 through scalar-delete thunk 0x00924faa; then sets capacity +0x64 to 0x0f, size +0x60 to zero and first inline byte +0x50 to zero\",\n435: \"destroys EvMsg second: when capacity +0x38 is at least 0x10, frees the owned buffer pointer at +0x24 through scalar-delete thunk 0x00924faa; then sets capacity +0x38 to 0x0f, size +0x34 to zero and first inline byte +0x24 to zero\",\n436: \"destroys EvDsc last: when capacity +0x1c is at least 0x10, frees the owned buffer pointer at +0x08 through scalar-delete thunk 0x00924faa; then sets size +0x18 to zero, capacity +0x1c to 0x0f and first inline byte +0x08 to zero\",\n437: \"after all three strings are empty, replaces PlayerEvent vptr 0x00a21958 with base vptr 0x009e22bc at +0x00\"\n438: ],\n439: \"ownership\": \"Consumes the three independent PlayerEvent string ownerships exactly once in reverse member-construction order EvImg, EvMsg, EvDsc. SSO strings cause no free; heap strings each use the matching original-runtime scalar-delete thunk. This complete-object destructor does not take scalar-deleting flags and does not free the enclosing PlayerEvent storage. Reuse requires complete reconstruction; a second call is forbidden.\",\n440: \"exception_boundary\": \"The callable has no local SEH frame and performs only capacity tests, optional scalar-delete calls, empty-string state writes and the base-vptr transition. The original scalar-delete service is treated as nonthrowing by this static path, but no live destruction, allocator failure or exception behavior was executed; the bridge boundary must still prevent any exception from crossing its exported WINAPI entry.\",\n441: \"boundary\": \"The exact callable is 0x0061ae90..0x0061aefb inclusive, followed by int3 padding at 0x0061aefc..0x0061aeff and the next prologue at 0x0061af00.\",\n442: \"captures\": [\n443: \"verify/results/research-live-record-bridge/run-a4f6a9922bf5800747bfdfc6/player-event-dtor-exact.stdout.txt\",\n444: \"verify/results/research-live-record-bridge/run-a4f6a9922bf5800747bfdfc6/player-event-dtor-context.stdout.txt\",\n445: \"verify/results/research-live-record-bridge/run-a4f6a9922bf5800747bfdfc6/manifest.json\",\n446: \"verify/results/research-completion-abi-independent/integration-lead-20260910/player-dtor-control.stdout.txt\"\n447: ]\n448: },\n449: \"string_assign_substr\": {\n450: \"va\": \"0x00425430\",\n451: \"rva\": \"0x00025430\",\n452: \"callable_entry\": true,\n453: \"prototype\": \"std::string *__thiscall string_assign_substr(std::string *destination, const std::string *source, uint32_t source_offset, uint32_t count)\",\n454: \"receiver\": \"ECX = destination std::string\",\n455: \"arguments\": [\n456: {\n457: \"index\": 0,\n458: \"location\": \"[entry ESP+0x04] / [EBP+0x08]\",\n459: \"meaning\": \"source std::string pointer\"\n460: },\n461: {\n462: \"index\": 1,\n463: \"location\": \"[entry ESP+0x08] / [EBP+0x0c]\",\n464: \"meaning\": \"zero-based source byte offset\"\n465: },\n466: {\n467: \"index\": 2,\n468: \"location\": \"[entry ESP+0x0c] / [EBP+0x10]\",\n469: \"meaning\": \"maximum byte count; 0xffffffff means through source end\"\n470: }\n471: ],\n472: \"stack_cleanup\": \"callee removes all 12 stack-argument bytes with ret 0x0c\",\n473: \"return\": \"EAX = destination std::string pointer on every normal return path\",\n474: \"bridge_invocation\": {\n475: \"source\": \"valid live-layout source string\",\n476: \"source_offset\": 0,\n477: \"count\": \"0xffffffff\",\n478: \"destination_precondition\": \"already initialized empty or otherwise valid live-layout string\"\n479: },\n480: \"writes\": [\n481: \"destination bytes or destination-owned heap buffer\",\n482: \"destination size at +0x10\",\n483: \"destination capacity at +0x14 when growth is required\",\n484: \"terminating zero byte\"\n485: ],\n486: \"ownership\": \"Self-assignment uses two in-place erase operations. Non-self assignment selects source inline bytes when capacity is below 0x10 or its heap pointer otherwise. If destination capacity is insufficient it calls VA 0x004249a0 before copying; that worker uses the bound MSVCR100 new/delete thunks. The bridge must initialize destination first and must never transfer the source header.\",\n487: \"exception_boundary\": \"This helper has no local SEH frame. Invalid offset and excessive length call imported failure helpers; allocation can propagate from VA 0x004249a0. Bridge usage fixes offset=0/count=0xffffffff on a valid source, leaving allocation as the expected exceptional edge to be contained by the fixture DLL boundary.\",\n488: \"bridge_call_sites\": [\n489: \"0x0079a1bd copies ObservedTech name at +0x0c\",\n490: \"0x00769445 copies PlayerEvent EvDsc at +0x08\",\n491: \"0x00769464 copies PlayerEvent EvMsg at +0x24\",\n492: \"0x0076949b copies PlayerEvent EvImg at +0x50\"\n493: ],\n494: \"accepted_dependency_captures\": [\n495: \"verify/results/research-completion-abi-independent/integration-lead-20260910/observed-copy-control.stdout.txt\",\n496: \"verify/results/research-completion-abi-independent/integration-lead-20260910/player-copy-wide.stdout.txt\",\n497: \"verify/results/research-completion-abi-independent/integration-lead-20260910/string-alloc-wide.stdout.txt\",\n498: \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\"\n499: ]\n500: }\n501: },\n502: \"forbidden_entries\": [\n503: \"0x0079a184\"\n504: ],\n505: \"readiness\": {\n506: \"complete\": false,\n507: \"reason\": \"The ObservedTech default-construction, copy-construction, vector-append/growth and scalar-deleting destruction, PlayerEvent default-construction, copy-construction, vector-append/growth and destruction, and shared string-assignment rows are reconciled here. Every TurnEvents operation and remaining exposed allocation operations still require exact generated rows and bound captures before implementation.\"\n508: }\n509: }\n\n(End of file - total 509 lines)\n","metadata":{"preview":"{\n \"schema\": \"sots-live-record-addresses/1\",\n \"status\": \"incomplete-planning-input\",\n \"binary\": {\n \"path\": \"dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\",\n \"image_base\": \"0x00400000\"\n },\n \"tool\": {\n \"path\": \"/usr/bin/objdump\",\n \"version\": \"GNU Binutils 2.38\",\n \"sha256\": \"1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd\"\n },\n \"source_identity\": {\n \"engine\": {\n \"path\": \"/tmp/opencode/sots-final-research-engine\",\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"git_common_dir\": \"/home/alex/sots-engine/.git\"\n },\n \"re\": {","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/research/research-live-record-addresses.json","text":"{\n \"schema\": \"sots-live-record-addresses/1\",\n \"status\": \"incomplete-planning-input\",\n \"binary\": {\n \"path\": \"dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\",\n \"image_base\": \"0x00400000\"\n },\n \"tool\": {\n \"path\": \"/usr/bin/objdump\",\n \"version\": \"GNU Binutils 2.38\",\n \"sha256\": \"1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd\"\n },\n \"source_identity\": {\n \"engine\": {\n \"path\": \"/tmp/opencode/sots-final-research-engine\",\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"git_common_dir\": \"/home/alex/sots-engine/.git\"\n },\n \"re\": {\n \"path\": \"/tmp/opencode/sots-final-research-re\",\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"git_common_dir\": \"/home/alex/sots-re/.git\"\n }\n },\n \"fresh_capture\": {\n \"session\": \"run-eca0889c30beb7f00f4ac264\",\n \"cwd\": \"/home/alex/sots-re\",\n \"commands\": [\n {\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x0079a142\",\n \"--stop-address=0x0079a1e0\",\n \"dumps/sots.exe\"\n ],\n \"returncode\": 0,\n \"stdout_bytes\": 3452,\n \"stdout_sha256\": \"f8f31b09ddb0a6d5b4016f84bfe86b994ed944be7372e264b90344fd560d4d05\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"\n },\n {\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"dumps/sots.exe\"\n ],\n \"returncode\": 0,\n \"stdout_bytes\": 148427275,\n \"stdout_sha256\": \"b748aef66fb4bb11be5223517a4c563eccd8c5117d86481c1459c20eded932c3\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"\n },\n {\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x007b7320\",\n \"--stop-address=0x007b73a1\",\n \"dumps/sots.exe\"\n ],\n \"returncode\": 0,\n \"stdout_bytes\": 2794,\n \"stdout_sha256\": \"510efc3587feec6b34d52effccfd9afac6cec4ab3358de54ba7ad9aecfa73c67\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"\n },\n {\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00425430\",\n \"--stop-address=0x00425519\",\n \"dumps/sots.exe\"\n ],\n \"returncode\": 0,\n \"stdout_bytes\": 5205,\n \"stdout_sha256\": \"9f3ceb743ad7878d1d5900233d24acd2bd0bc86bc9f44acfcfccf0a6735e5c16\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\"\n }\n ]\n },\n \"constructor_destructor_capture\": {\n \"session\": \"run-a247a9d6650d9e0954596cc0\",\n \"manifest\": \"verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/manifest.json\",\n \"scope\": \"Read-only constructor, scalar-deleting destructor, and vtable-slot capture; planning evidence only.\"\n },\n \"reserve_recapture\": {\n \"session\": \"run-a52f7d5ebec657d8923d8402\",\n \"manifest\": \"verify/results/research-live-record-bridge/run-a52f7d5ebec657d8923d8402/manifest.json\",\n \"stdout\": \"verify/results/research-live-record-bridge/run-a52f7d5ebec657d8923d8402/observed-reserve.stdout.txt\",\n \"stdout_sha256\": \"2d011ed96329c4c4ff462cbfd65decac9dccf40558765244c769be1dedc92275\",\n \"comparison\": \"verify/results/research-live-record-bridge/run-a52f7d5ebec657d8923d8402/comparison.json\",\n \"scope\": \"Read-only byte-exact recapture of 0x007b5820..0x007b5898. Full comparison found the invalidated transcription omitted exactly eight presentation spaces; all 49 address/opcode/mnemonic/operand rows match. Planning evidence only.\"\n },\n \"player_event_constructor_capture\": {\n \"session\": \"run-c1238a40bfc3bfa7c2ff9ba6\",\n \"manifest\": \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/manifest.json\",\n \"constructor_stdout\": \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-exact.stdout.txt\",\n \"eh_analysis\": \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-eh-analysis.json\",\n \"scope\": \"Read-only callable constructor and MSVC unwind capture; static planning evidence only, not live allocator or exception execution.\"\n },\n \"player_event_copy_capture\": {\n \"session\": \"run-36c401e90eb0ec1db4d35865\",\n \"manifest\": \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/manifest.json\",\n \"copy_stdout\": \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-exact.stdout.txt\",\n \"eh_analysis\": \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-eh-analysis.json\",\n \"scope\": \"Read-only callable copy-constructor and MSVC unwind capture; static planning evidence only, not live allocator or exception execution.\"\n },\n \"player_event_destructor_capture\": {\n \"session\": \"run-a4f6a9922bf5800747bfdfc6\",\n \"manifest\": \"verify/results/research-live-record-bridge/run-a4f6a9922bf5800747bfdfc6/manifest.json\",\n \"destructor_stdout\": \"verify/results/research-live-record-bridge/run-a4f6a9922bf5800747bfdfc6/player-event-dtor-exact.stdout.txt\",\n \"context_stdout\": \"verify/results/research-live-record-bridge/run-a4f6a9922bf5800747bfdfc6/player-event-dtor-context.stdout.txt\",\n \"scope\": \"Read-only complete callable destructor and boundary capture; static planning evidence only, not live allocator or destruction execution.\"\n },\n \"player_event_append_capture\": {\n \"session\": \"run-e21ce0d2909d8647e6a99a7b\",\n \"manifest\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json\",\n \"append_stdout\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-append-exact.stdout.txt\",\n \"growth_stdout\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-growth-exact.stdout.txt\",\n \"reallocator_stdout\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-reallocate-exact.stdout.txt\",\n \"eh_analysis\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-append-eh-analysis.json\",\n \"scope\": \"Read-only callable append, reserve/growth, reallocation and MSVC unwind capture; static planning evidence only, not live allocator, copy, destruction or exception execution.\"\n },\n \"operations\": {\n \"observed_tech_default_construct\": {\n \"va\": \"0x008562a0\",\n \"rva\": \"0x004562a0\",\n \"callable_entry\": true,\n \"prototype\": \"ObservedTech *__thiscall observed_tech_default_construct(ObservedTech *destination)\",\n \"receiver\": \"ECX = writable uninitialized storage for one complete 0x2c-byte ObservedTech\",\n \"arguments\": [],\n \"stack_cleanup\": \"no stack arguments; helper ends in plain ret\",\n \"return\": \"EAX = destination ObservedTech pointer on normal return\",\n \"writes\": [\n \"vptr 0x00a2439c at destination +0x00\",\n \"zero dword at +0x04, covering both 16-bit turn fields\",\n \"zero byte at +0x08\",\n \"valid empty/SSO std::string rooted at +0x0c with size zero and capacity 0x0f\",\n \"zero dword at +0x28\"\n ],\n \"ownership\": \"Field-wise construction creates one valid embedded string; it does not adopt or copy an owning header. The constructor establishes an SEH frame around empty-string setup through VA 0x00425550. On normal return the destination owns exactly its initialized name string and must later be destroyed exactly once.\",\n \"vtable_provenance\": {\n \"vtable_va\": \"0x00a2439c\",\n \"complete_object_locator_va\": \"0x00a81c78\",\n \"slots\": [\n {\"index\": 0, \"va\": \"0x00793610\", \"meaning\": \"scalar-deleting destructor\"},\n {\"index\": 1, \"va\": \"0x00817c40\", \"meaning\": \"Read\"},\n {\"index\": 2, \"va\": \"0x00817cf0\", \"meaning\": \"Write\"}\n ]\n },\n \"captures\": [\n \"verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/observed-ctor.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/observed-vtable.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/manifest.json\"\n ]\n },\n \"observed_tech_scalar_delete_destruct\": {\n \"va\": \"0x00793610\",\n \"rva\": \"0x00393610\",\n \"callable_entry\": true,\n \"prototype\": \"ObservedTech *__thiscall observed_tech_scalar_delete_destruct(ObservedTech *value, uint32_t flags)\",\n \"receiver\": \"ECX = one fully constructed live-layout ObservedTech\",\n \"arguments\": [\n {\n \"index\": 0,\n \"location\": \"[entry ESP+0x04] / [EBP+0x08]\",\n \"meaning\": \"scalar-deleting flags; bit 0 requests freeing the object storage\"\n }\n ],\n \"stack_cleanup\": \"callee removes the one 4-byte flags argument with ret 4\",\n \"return\": \"EAX = input ObservedTech pointer on normal return, including the flags-bit-0 path\",\n \"writes\": [\n \"when name capacity at +0x20 is at least 0x10, frees the owned buffer pointer at +0x0c through VA 0x00924faa\",\n \"sets name capacity +0x20 to 0x0f, size +0x1c to zero, and first inline byte +0x0c to zero\",\n \"writes base vptr 0x009e22bc at +0x00\",\n \"when flags bit 0 is set, frees the ObservedTech storage through VA 0x00924faa\"\n ],\n \"ownership\": \"Consumes the one name ownership exactly once. For stack temporaries, vector elements, and all other embedded values the bridge must pass flags=0 so only member lifetime ends and object storage is not freed. Reuse after return requires a fresh constructor; a second destructor call is forbidden.\",\n \"embedded_invocation\": {\n \"flags\": 0,\n \"required_reason\": \"Original vector reallocation pushes zero before virtual slot-0 dispatch over each old 0x2c-byte element; flags=1 would incorrectly scalar-delete embedded storage.\"\n },\n \"captures\": [\n \"verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/observed-dtor.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/observed-vtable.stdout.txt\",\n \"verify/results/research-completion-abi-independent/integration-lead-20260910/observed-realloc-wide.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/manifest.json\"\n ]\n },\n \"observed_tech_copy_construct\": {\n \"va\": \"0x0079a150\",\n \"rva\": \"0x0039a150\",\n \"callable_entry\": true,\n \"prototype\": \"void __cdecl observed_tech_copy_construct(void *unused_allocator, ObservedTech *destination, const ObservedTech *source)\",\n \"arguments\": [\n {\n \"index\": 0,\n \"location\": \"[entry ESP+0x04] / [EBP+0x08]\",\n \"meaning\": \"allocator-shaped argument passed as vector+0x0c by both callers; not read by this helper\"\n },\n {\n \"index\": 1,\n \"location\": \"[entry ESP+0x08] / [EBP+0x0c]\",\n \"meaning\": \"destination ObservedTech pointer\"\n },\n {\n \"index\": 2,\n \"location\": \"[entry ESP+0x0c] / [EBP+0x10]\",\n \"meaning\": \"source ObservedTech pointer\"\n }\n ],\n \"stack_cleanup\": \"caller removes 12 bytes; helper ends in plain ret\",\n \"receiver\": \"none; incoming ECX is not consumed as a receiver\",\n \"return\": \"no supported return-value contract; EAX is incidental/clobbered\",\n \"writes\": [\n \"destination vptr at +0x00\",\n \"16-bit fields at +0x04 and +0x06\",\n \"byte field at +0x08\",\n \"deep-constructed string rooted at +0x0c through VA 0x00425430\",\n \"32-bit field at +0x28\"\n ],\n \"ownership\": \"Constructs destination field-wise. The destination string starts empty/SSO and is assigned from the source; no owning string header is copied. Entry SEH state covers the potentially allocating string operation.\",\n \"callers\": [\n {\n \"call_va\": \"0x007b7366\",\n \"containing_entry_va\": \"0x007b7320\",\n \"path\": \"source originally inside vector; source pointer recomputed after possible growth\"\n },\n {\n \"call_va\": \"0x007b738f\",\n \"containing_entry_va\": \"0x007b7320\",\n \"path\": \"source outside vector\"\n }\n ],\n \"all_direct_callers_probe\": \"Full-image linear objdump contained exactly the two direct call rows above for target 0x79a150.\",\n \"interior_negative_control\": {\n \"va\": \"0x0079a184\",\n \"rva\": \"0x0039a184\",\n \"callable_entry\": false,\n \"reason\": \"Interior instruction depends on the 0x0079a150 prologue having established EBP, SEH state, ESI=destination and local construction state. No direct caller targets it.\"\n },\n \"accepted_dependency_captures\": [\n \"verify/results/research-completion-abi-independent/integration-lead-20260910/observed-copy-control.stdout.txt\",\n \"verify/results/research-completion-abi-independent/integration-lead-20260910/observed-push-wide.stdout.txt\",\n \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\"\n ]\n },\n \"observed_tech_vector_append\": {\n \"va\": \"0x007b7320\",\n \"rva\": \"0x003b7320\",\n \"callable_entry\": true,\n \"prototype\": \"void __thiscall observed_tech_vector_append(ObservedTechVector *vector, const ObservedTech *source)\",\n \"receiver\": \"ECX = live three-pointer vector header: first at +0x00, last at +0x04, end at +0x08; allocator-shaped storage begins at +0x0c\",\n \"arguments\": [\n {\n \"index\": 0,\n \"location\": \"[entry ESP+0x04] / [EBP+0x08]\",\n \"meaning\": \"source live-layout ObservedTech to deep-copy\"\n }\n ],\n \"stack_cleanup\": \"callee removes the one 4-byte source argument with ret 4\",\n \"return\": \"no supported return-value contract; EAX is incidental after the copy helper\",\n \"source_location_branches\": [\n \"When source is in [first,last), computes its 0x2c-element index before any growth and recomputes source from the possibly replaced first pointer afterward.\",\n \"When source is outside [first,last), retains the caller pointer across possible growth. A pointer into unused capacity or exactly at last is not treated as a live in-vector source and is forbidden by the bridge precondition.\"\n ],\n \"no_growth\": \"Calls 0x0079a150 with vector+0x0c, destination=old last, and selected source; advances last by exactly 0x2c only after normal copy return. Existing elements and end are unchanged.\",\n \"growth\": {\n \"reserve_va\": \"0x007b5820\",\n \"reserve_prototype\": \"void __thiscall observed_tech_vector_reserve_additional(ObservedTechVector *vector, uint32_t additional_count)\",\n \"reserve_abi\": \"ECX=vector, one stack count, ret 4, no supported return; append passes additional_count=1 only when last==end.\",\n \"capacity_rule\": \"Rejects size+additional above 0x05d1745d elements; if required exceeds capacity, chooses at least required and otherwise approximately capacity+floor(capacity/2), capped through the same maximum check, then calls 0x007b34e0 with the chosen element capacity.\",\n \"reallocate_effects\": \"0x007b34e0 obtains count*0x2c storage through 0x0057e590 -> MSVCR100 scalar new thunk 0x00924fb6, deep-copy-constructs [old first,old last) into the new block through 0x0085e650, destroys each old element through virtual slot zero with flags=0, frees the old block through 0x00924faa, then writes end, last and first in that order. Append subsequently deep-copies the requested source at the new last and advances last by 0x2c.\",\n \"normal_postcondition\": \"All prior element values survive as independently owned deep copies; every old element is destroyed exactly once and old array storage is freed once through the matching runtime family.\"\n },\n \"exceptional_ownership\": \"The append helper has no local handler and advances last only after copy construction returns. Reserve/reallocate install MSVC SEH state around allocation/range copy; 0x0085e650 tracks the current destination and has a partial-range destruction funclet. Static control flow therefore supports cleanup before propagation and leaves the published vector header update until after successful relocation, but no live throw has been exercised. The bridge must contain any propagated C++ exception at its MSVC DLL boundary, must treat the operation as failed with no accepted new element, and must validate zero outstanding allocation/partial element before this row can support live-safety acceptance.\",\n \"captures\": [\n \"verify/results/research-completion-abi-independent/integration-lead-20260910/observed-push-wide.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-a52f7d5ebec657d8923d8402/observed-reserve.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-a52f7d5ebec657d8923d8402/manifest.json\",\n \"verify/results/research-live-record-bridge/run-a52f7d5ebec657d8923d8402/comparison.json\",\n \"verify/results/research-completion-abi-independent/integration-lead-20260910/observed-realloc-wide.stdout.txt\",\n \"verify/results/research-completion-abi-independent/integration-lead-20260910/observed-alloc-wide.stdout.txt\"\n ]\n },\n \"player_event_default_construct\": {\n \"va\": \"0x0084ee30\",\n \"rva\": \"0x0044ee30\",\n \"callable_entry\": true,\n \"prototype\": \"PlayerEvent *__thiscall player_event_default_construct(PlayerEvent *destination)\",\n \"receiver\": \"ECX = writable uninitialized storage for one complete 0x74-byte PlayerEvent\",\n \"arguments\": [],\n \"stack_cleanup\": \"no stack arguments; helper ends in plain ret\",\n \"return\": \"EAX = destination PlayerEvent pointer on normal return\",\n \"writes\": [\n \"vptr 0x00a21958 at destination +0x00\",\n \"EvEID zero at +0x04\",\n \"valid empty/SSO EvDsc std::string rooted at +0x08 with size zero, capacity 0x0f and first inline byte zero\",\n \"valid empty/SSO EvMsg std::string rooted at +0x24 with size zero, capacity 0x0f and first inline byte zero\",\n \"EvLoc zero at +0x40\",\n \"EvPos dwords at +0x44, +0x48 and +0x4c copied from 0x00af0dc8, 0x00af0dcc and 0x00af0dd0; each source word is 0x7f7fffff (FLT_MAX)\",\n \"valid empty/SSO EvImg std::string rooted at +0x50 with size zero, capacity 0x0f and first inline byte zero\",\n \"EvAct zero at +0x6c\",\n \"EvCID zero at +0x70\"\n ],\n \"complete_layout\": \"The listed writes establish every logical field of the 0x74-byte object: 4-byte vptr, 4-byte EvEID, three independent 0x1c-byte strings, EvLoc, three position dwords, EvAct and EvCID. They do not overwrite inactive SSO union bytes or the allocator-shaped trailing dword in each 0x1c-byte string object; those bytes are not observable string value or ownership state. No owning header is imported from caller storage.\",\n \"string_initialization\": \"Each string is manually established as empty/SSO and then passed as ECX to 0x00425550 with stack arguments empty literal 0x009e100c and count zero. The bound zero-count path writes size zero and the inline terminator, performs no allocation or free, and returns the destination with ret 8. On normal return all three are distinct valid owned subobjects even though inactive storage bytes may retain their prior contents.\",\n \"exceptional_partial_construction\": {\n \"handler_thunk_va\": \"0x0099613e\",\n \"func_info_va\": \"0x00ac98a4\",\n \"func_info\": \"MSVC magic 0x19930522, maxState 3, unwind map 0x00ac988c, no try-block or IP maps, flags 1\",\n \"unwind_states\": [\n \"state 0 -> -1 through 0x00996120: restore base vptr 0x009e22bc through 0x00763a00\",\n \"state 1 -> 0 through 0x00996128: destroy completed EvDsc at destination+0x08 through 0x008e0610, then continue state 0 cleanup\",\n \"state 2 -> 1 through 0x00996133: destroy completed EvMsg at destination+0x24 through 0x008e0610, then continue states 1 and 0 cleanup\"\n ],\n \"qualification\": \"The state is advanced immediately before the next empty-string helper call, so a hypothetical exception during construction of a string cleans only predecessor string subobjects plus the base; a failing current subobject is not treated as completed. For the constructor's fixed valid empty-literal/count-zero inputs, the bound 0x00425550 path does not allocate, free or call a failure helper. The third successful call is followed only by scalar stores on the observed path. This is static unwind topology; no throw or allocator behavior was executed.\"\n },\n \"ownership\": \"On normal return the destination owns three independently destructible valid strings and must be destroyed exactly once. A failed construction must not be passed to the complete PlayerEvent destructor; only the compiler unwind actions for completed states may run.\",\n \"captures\": [\n \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-exact.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-ehdata.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-funcinfo.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-cleanup-base.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-cleanup-string.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/string-empty-init.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-eh-record.bin\",\n \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/player-event-ctor-eh-analysis.json\",\n \"verify/results/research-live-record-bridge/run-c1238a40bfc3bfa7c2ff9ba6/manifest.json\"\n ]\n },\n \"player_event_copy_construct\": {\n \"va\": \"0x007693f0\",\n \"rva\": \"0x003693f0\",\n \"callable_entry\": true,\n \"prototype\": \"PlayerEvent *__thiscall player_event_copy_construct(PlayerEvent *destination, const PlayerEvent *source)\",\n \"receiver\": \"ECX = writable uninitialized storage for one complete 0x74-byte PlayerEvent\",\n \"arguments\": [\n {\n \"index\": 0,\n \"location\": \"[entry ESP+0x04] / [EBP+0x08]\",\n \"meaning\": \"source fully constructed live-layout PlayerEvent\"\n }\n ],\n \"stack_cleanup\": \"callee removes the one 4-byte source argument with ret 4\",\n \"return\": \"EAX = destination PlayerEvent pointer on normal return\",\n \"ordered_writes\": [\n \"writes vptr 0x00a21958 at destination +0x00, then copies source EvEID +0x04\",\n \"establishes destination EvDsc +0x08 as empty/SSO, then deep-assigns source EvDsc through 0x00425430 with offset zero and count 0xffffffff\",\n \"establishes destination EvMsg +0x24 as empty/SSO, then deep-assigns source EvMsg through 0x00425430 with offset zero and count 0xffffffff\",\n \"copies source EvLoc +0x40 and all three EvPos dwords +0x44, +0x48 and +0x4c\",\n \"establishes destination EvImg +0x50 as empty/SSO, then deep-assigns source EvImg through 0x00425430 with offset zero and count 0xffffffff\",\n \"copies source EvAct +0x6c and EvCID +0x70\"\n ],\n \"complete_layout\": \"The ordered writes establish every logical field of the 0x74-byte destination. Each destination string receives its own valid SSO or heap ownership; no source string header, pointer, size/capacity tuple, or other owning header is transferred.\",\n \"exceptional_partial_construction\": {\n \"handler_thunk_va\": \"0x009862de\",\n \"func_info_va\": \"0x00ab9f0c\",\n \"func_info\": \"MSVC magic 0x19930522, maxState 3, unwind map 0x00ab9ef4, no try-block or IP maps, flags 1\",\n \"unwind_states\": [\n \"state 0 -> -1 through 0x009862c0: restore base vptr 0x009e22bc through 0x00763a00\",\n \"state 1 -> 0 through 0x009862c8: destroy completed destination EvDsc at +0x08 through 0x008e0610, then continue state 0 cleanup\",\n \"state 2 -> 1 through 0x009862d3: destroy completed destination EvMsg at +0x24 through 0x008e0610, then continue states 1 and 0 cleanup\"\n ],\n \"qualification\": \"Construction state is set to 0 before the EvDsc assignment, 1 before the EvMsg assignment, and 2 before the EvImg assignment. Therefore a throwing current deep assignment is not treated as completed; only predecessor destination strings plus the base are unwound. After successful EvImg assignment, only scalar copies remain. This is static unwind topology; no allocation failure or throw was executed.\"\n },\n \"ownership\": \"On normal return destination owns three independent deep copies and must later be destroyed exactly once. Source remains unchanged and retains all three original ownerships. A failed copy must not be passed to the complete PlayerEvent destructor; compiler unwind handles only completed destination subobjects.\",\n \"captures\": [\n \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-exact.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-ehdata.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-funcinfo.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-cleanup-base.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-cleanup-string.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-eh-record.bin\",\n \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/player-event-copy-eh-analysis.json\",\n \"verify/results/research-live-record-bridge/run-36c401e90eb0ec1db4d35865/manifest.json\"\n ]\n },\n \"player_event_vector_append\": {\n \"va\": \"0x0086c580\",\n \"rva\": \"0x0046c580\",\n \"callable_entry\": true,\n \"prototype\": \"void __thiscall player_event_vector_append(PlayerEventVector *vector, const PlayerEvent *source)\",\n \"receiver\": \"ECX = live three-pointer vector header: first at +0x00, last at +0x04 and end at +0x08; allocator-shaped storage begins at +0x0c\",\n \"arguments\": [{\"index\": 0, \"location\": \"[entry ESP+0x04] / [EBP+0x08]\", \"meaning\": \"source fully constructed live-layout PlayerEvent to deep-copy\"}],\n \"stack_cleanup\": \"callee removes the one 4-byte source argument with ret 4\",\n \"return\": \"no supported return-value contract; EAX is incidental after copy construction\",\n \"source_location_branches\": [\n \"For an element-aligned source in [first,last), computes its 0x74-byte element index before possible growth and recomputes the source from the possibly replaced first pointer afterward.\",\n \"For source below first or at/above last, retains the external caller pointer across possible growth. A source inside unused capacity, at last, or unaligned inside the live byte range violates the bridge precondition.\"\n ],\n \"no_growth\": \"Deep-copy-constructs at old last through 0x007693f0 and advances last by exactly 0x74 only after normal return. First, end and all prior elements remain unchanged.\",\n \"growth\": {\n \"reserve_va\": \"0x00869500\",\n \"reserve_prototype\": \"void __thiscall player_event_vector_reserve_additional(PlayerEventVector *vector, uint32_t additional_count)\",\n \"reserve_abi\": \"ECX=vector, one stack count, ret 4, no supported return; append passes additional_count=1 only when last==end.\",\n \"capacity_rule\": \"Rejects size+additional above 0x0234f72c elements. If required exceeds capacity, chooses at least required and otherwise capacity+floor(capacity/2), subject to the same maximum, then calls 0x00865ee0.\",\n \"reallocator_va\": \"0x00865ee0\",\n \"reallocator_abi\": \"ECX=vector, one requested-capacity stack word, ret 4, no supported return.\",\n \"reallocate_effects\": \"Allocates requested_count*0x74 through 0x0078af40 -> MSVCR100 scalar new thunk 0x00924fb6; deep-copy-constructs [old first,old last) through 0x00772430 -> 0x007693f0; destroys each old PlayerEvent by virtual slot zero with flags=0; frees old storage through 0x00924faa; then publishes end, last and first in that order. Append subsequently copies the requested source at new last and publishes last+0x74.\",\n \"normal_postcondition\": \"Every prior event survives as a complete independent deep copy; each old event is destroyed exactly once, old array storage is freed once through the matching runtime family, and the appended event owns three independent strings.\"\n },\n \"exceptional_ownership\": \"Append FuncInfo 0x00aa0428 has two branch-specific states whose actions call no-op 0x0080c5a0; partial destination cleanup remains inside 0x007693f0. Reallocator FuncInfo 0x00acb5d4 routes a failed range copy to 0x00865ff1, which frees the unpublished new block after the range helper destroys its completed prefix, then continues propagation through 0x00924fbc. Header publication and append last advancement occur only after successful relocation/copy. This is static unwind topology; no live throw was exercised, so the fixture must contain propagation and prove balanced identities before live-safety acceptance.\",\n \"captures\": [\n \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-append-exact.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-growth-exact.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-reallocate-exact.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-reallocate-cleanup.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/player-event-append-eh-analysis.json\",\n \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json\",\n \"verify/results/research-completion-abi-independent/integration-lead-20260910/player-append-wide.stdout.txt\"\n ]\n },\n \"player_event_destruct\": {\n \"va\": \"0x0061ae90\",\n \"rva\": \"0x0021ae90\",\n \"callable_entry\": true,\n \"prototype\": \"void __thiscall player_event_destruct(PlayerEvent *value)\",\n \"receiver\": \"ECX = one fully constructed live-layout 0x74-byte PlayerEvent\",\n \"arguments\": [],\n \"stack_cleanup\": \"no stack arguments; helper ends in plain ret\",\n \"return\": \"no supported return-value contract; EAX is untouched on the all-SSO path and otherwise may retain an incidental scalar-delete result\",\n \"ordered_writes\": [\n \"destroys EvImg first: when capacity +0x64 is at least 0x10, frees the owned buffer pointer at +0x50 through scalar-delete thunk 0x00924faa; then sets capacity +0x64 to 0x0f, size +0x60 to zero and first inline byte +0x50 to zero\",\n \"destroys EvMsg second: when capacity +0x38 is at least 0x10, frees the owned buffer pointer at +0x24 through scalar-delete thunk 0x00924faa; then sets capacity +0x38 to 0x0f, size +0x34 to zero and first inline byte +0x24 to zero\",\n \"destroys EvDsc last: when capacity +0x1c is at least 0x10, frees the owned buffer pointer at +0x08 through scalar-delete thunk 0x00924faa; then sets size +0x18 to zero, capacity +0x1c to 0x0f and first inline byte +0x08 to zero\",\n \"after all three strings are empty, replaces PlayerEvent vptr 0x00a21958 with base vptr 0x009e22bc at +0x00\"\n ],\n \"ownership\": \"Consumes the three independent PlayerEvent string ownerships exactly once in reverse member-construction order EvImg, EvMsg, EvDsc. SSO strings cause no free; heap strings each use the matching original-runtime scalar-delete thunk. This complete-object destructor does not take scalar-deleting flags and does not free the enclosing PlayerEvent storage. Reuse requires complete reconstruction; a second call is forbidden.\",\n \"exception_boundary\": \"The callable has no local SEH frame and performs only capacity tests, optional scalar-delete calls, empty-string state writes and the base-vptr transition. The original scalar-delete service is treated as nonthrowing by this static path, but no live destruction, allocator failure or exception behavior was executed; the bridge boundary must still prevent any exception from crossing its exported WINAPI entry.\",\n \"boundary\": \"The exact callable is 0x0061ae90..0x0061aefb inclusive, followed by int3 padding at 0x0061aefc..0x0061aeff and the next prologue at 0x0061af00.\",\n \"captures\": [\n \"verify/results/research-live-record-bridge/run-a4f6a9922bf5800747bfdfc6/player-event-dtor-exact.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-a4f6a9922bf5800747bfdfc6/player-event-dtor-context.stdout.txt\",\n \"verify/results/research-live-record-bridge/run-a4f6a9922bf5800747bfdfc6/manifest.json\",\n \"verify/results/research-completion-abi-independent/integration-lead-20260910/player-dtor-control.stdout.txt\"\n ]\n },\n \"string_assign_substr\": {\n \"va\": \"0x00425430\",\n \"rva\": \"0x00025430\",\n \"callable_entry\": true,\n \"prototype\": \"std::string *__thiscall string_assign_substr(std::string *destination, const std::string *source, uint32_t source_offset, uint32_t count)\",\n \"receiver\": \"ECX = destination std::string\",\n \"arguments\": [\n {\n \"index\": 0,\n \"location\": \"[entry ESP+0x04] / [EBP+0x08]\",\n \"meaning\": \"source std::string pointer\"\n },\n {\n \"index\": 1,\n \"location\": \"[entry ESP+0x08] / [EBP+0x0c]\",\n \"meaning\": \"zero-based source byte offset\"\n },\n {\n \"index\": 2,\n \"location\": \"[entry ESP+0x0c] / [EBP+0x10]\",\n \"meaning\": \"maximum byte count; 0xffffffff means through source end\"\n }\n ],\n \"stack_cleanup\": \"callee removes all 12 stack-argument bytes with ret 0x0c\",\n \"return\": \"EAX = destination std::string pointer on every normal return path\",\n \"bridge_invocation\": {\n \"source\": \"valid live-layout source string\",\n \"source_offset\": 0,\n \"count\": \"0xffffffff\",\n \"destination_precondition\": \"already initialized empty or otherwise valid live-layout string\"\n },\n \"writes\": [\n \"destination bytes or destination-owned heap buffer\",\n \"destination size at +0x10\",\n \"destination capacity at +0x14 when growth is required\",\n \"terminating zero byte\"\n ],\n \"ownership\": \"Self-assignment uses two in-place erase operations. Non-self assignment selects source inline bytes when capacity is below 0x10 or its heap pointer otherwise. If destination capacity is insufficient it calls VA 0x004249a0 before copying; that worker uses the bound MSVCR100 new/delete thunks. The bridge must initialize destination first and must never transfer the source header.\",\n \"exception_boundary\": \"This helper has no local SEH frame. Invalid offset and excessive length call imported failure helpers; allocation can propagate from VA 0x004249a0. Bridge usage fixes offset=0/count=0xffffffff on a valid source, leaving allocation as the expected exceptional edge to be contained by the fixture DLL boundary.\",\n \"bridge_call_sites\": [\n \"0x0079a1bd copies ObservedTech name at +0x0c\",\n \"0x00769445 copies PlayerEvent EvDsc at +0x08\",\n \"0x00769464 copies PlayerEvent EvMsg at +0x24\",\n \"0x0076949b copies PlayerEvent EvImg at +0x50\"\n ],\n \"accepted_dependency_captures\": [\n \"verify/results/research-completion-abi-independent/integration-lead-20260910/observed-copy-control.stdout.txt\",\n \"verify/results/research-completion-abi-independent/integration-lead-20260910/player-copy-wide.stdout.txt\",\n \"verify/results/research-completion-abi-independent/integration-lead-20260910/string-alloc-wide.stdout.txt\",\n \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\"\n ]\n }\n },\n \"forbidden_entries\": [\n \"0x0079a184\"\n ],\n \"readiness\": {\n \"complete\": false,\n \"reason\": \"The ObservedTech default-construction, copy-construction, vector-append/growth and scalar-deleting destruction, PlayerEvent default-construction, copy-construction, vector-append/growth and destruction, and shared string-assignment rows are reconciled here. Every TurnEvents operation and remaining exposed allocation operations still require exact generated rows and bound captures before implementation.\"\n }\n}","lineStart":1,"lineEnd":509,"totalLines":509,"truncated":false}},"title":"campaign/research/research-live-record-addresses.json","time":{"start":1789013317673,"end":1789013317731}},"metadata":{"openai":{"itemId":"fc_01561e98be97e978016aa22d45793c87d1ac6874f95276373e"}},"id":"prt_08980d81b0017TwV1tDj7gdNVM","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980a696001cFOKUh4UWkKCO6"}} +{"type":"step_finish","timestamp":1789013317867,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08980d8e4001D128BdTqO04ei4","reason":"tool-calls","snapshot":"d8047100f42dff7c7c3a8b47a41b9ebdfa827be7","messageID":"msg_08980a696001cFOKUh4UWkKCO6","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":16150,"input":9656,"output":243,"reasoning":107,"cache":{"write":0,"read":6144}},"cost":0}} +{"type":"step_start","timestamp":1789013319769,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08980e055001kr4tTQcc7pNtAX","messageID":"msg_08980d918001fiJ8ItKrBrzQ0V","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"11931da43f46b8cbc42fec884a4c45852c38fd37","type":"step-start"}} +{"type":"tool_use","timestamp":1789013338160,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_wLiFwittHJNaDxDDhb30Vijp","state":{"status":"completed","input":{"filePath":"/tmp/opencode/sots-final-research-engine/docs/architecture.md"},"output":"/tmp/opencode/sots-final-research-engine/docs/architecture.md\nfile\n\n1: # Engine architecture and reconstruction contract\n2: \n3: ## Boundaries\n4: \n5: ```text\n6: owner assets / save / captured commands / explicit runtime inputs\n7: │\n8: mars I/O and game catalogs\n9: │\n10: game rules + typed simulation state/effects\n11: ┌──────┴──────┐\n12: app frontend shim adapters\n13: standalone turn original process\n14: └──────┬──────┘\n15: independent verification\n16: in sots-re\n17: ```\n18: \n19: - `mars/`: parsing, text, archives, serialization and RNG. No strategic decisions.\n20: - `game/`: catalogs and reusable rules/state transformations. No original-process pointers,\n21: Windows allocation assumptions, or direct UI/lab behavior.\n22: - `app/`: adapters from saved/explicit runtime inputs, command application, ordered phase\n23: orchestration and write-back. Reports distinguish evaluated/committed/blocked effects.\n24: - `shim/`: 32-bit live-process marshalling, ABI adapters and trace/compare/replace instrumentation.\n25: Original helper dependencies must be declared. Guards bound observed writes, not universal\n26: heap coverage. Comparing a copied original output is not an independent calculation.\n27: - `include/generated/`: generated facts/specification channels with RE provenance.\n28: - `tests/`: synthetic contract/boundary tests and external-data checks. A missing fixture is\n29: skipped explicitly; a configured but invalid fixture is a failure.\n30: \n31: ## Phase contract\n32: \n33: Every new or materially changed phase specifies:\n34: \n35: 1. Required inputs and their origin: serialized state, assets, captured commands, runtime-only\n36: state, or original helpers. Missing required inputs block commit; they are not implicit zero.\n37: 2. Ordered behavior, predicates, numeric precision and RNG word consumption.\n38: 3. Complete effects, including newly allocated objects, membership, IDs, event records and all\n39: container elements. A count/header change is not equivalent to producing the elements.\n40: 4. Supported domain and known unsupported cases, with executable preconditions where feasible.\n41: 5. Independent expected outputs and the workload/branch coverage needed to accept the claim.\n42: \n43: This is the contract for new work, not a claim that every existing partial phase already meets\n44: it. Existing approximations are tracked as dependencies in the RE campaign and retired by slice.\n45: \n46: ## State and time\n47: \n48: A save is not the entire runtime state. Replay must explicitly supply commands and any unsaved\n49: inputs needed by its scope. Generator state and ordering are part of the observable contract.\n50: Count actual generator words, including rejection draws and twists; administrative counters\n51: must not modify serialized RNG layout or values. Aggregate each leaf operation once; parent\n52: summary records must not double-count child effects.\n53: \n54: ## Verification and integration\n55: \n56: Use fresh source-bound builds. File bytes, inflated stream bytes, typed semantic state and\n57: gameplay behavior are different comparison surfaces and must be labelled separately. Roundtrip\n58: proves conservation on the sampled corpus, not correct interpretation of every possible field.\n59: Synthetic boundary tests complement real original-vs-new experiments. Accepted replacement\n60: requires positive execution evidence and no original execution performing the claimed work.\n61: \n62: Planning, model routing, checkpoints, resource leases, surprise resolution and result publication\n63: live only in `sots-re`. Architecture changes and plan-changing surprises require GPT-6 Astra.\n64: See that repository's `AGENTS.md`, `campaign/README.md`, and `guides/multi-agent-workflow.md`.\n\n(End of file - total 64 lines)\n","metadata":{"preview":"# Engine architecture and reconstruction contract\n\n## Boundaries\n\n```text\nowner assets / save / captured commands / explicit runtime inputs\n │\n mars I/O and game catalogs\n │\n game rules + typed simulation state/effects\n ┌──────┴──────┐\n app frontend shim adapters\n standalone turn original process\n └──────┬──────┘\n independent verification\n in sots-re\n```\n\n- `mars/`: parsing, text, archives, serialization and RNG. No strategic decisions.\n- `game/`: catalogs and reusable rules/state transformations. No original-process pointers,","truncated":false,"loaded":[],"display":{"type":"file","path":"/tmp/opencode/sots-final-research-engine/docs/architecture.md","text":"# Engine architecture and reconstruction contract\n\n## Boundaries\n\n```text\nowner assets / save / captured commands / explicit runtime inputs\n │\n mars I/O and game catalogs\n │\n game rules + typed simulation state/effects\n ┌──────┴──────┐\n app frontend shim adapters\n standalone turn original process\n └──────┬──────┘\n independent verification\n in sots-re\n```\n\n- `mars/`: parsing, text, archives, serialization and RNG. No strategic decisions.\n- `game/`: catalogs and reusable rules/state transformations. No original-process pointers,\n Windows allocation assumptions, or direct UI/lab behavior.\n- `app/`: adapters from saved/explicit runtime inputs, command application, ordered phase\n orchestration and write-back. Reports distinguish evaluated/committed/blocked effects.\n- `shim/`: 32-bit live-process marshalling, ABI adapters and trace/compare/replace instrumentation.\n Original helper dependencies must be declared. Guards bound observed writes, not universal\n heap coverage. Comparing a copied original output is not an independent calculation.\n- `include/generated/`: generated facts/specification channels with RE provenance.\n- `tests/`: synthetic contract/boundary tests and external-data checks. A missing fixture is\n skipped explicitly; a configured but invalid fixture is a failure.\n\n## Phase contract\n\nEvery new or materially changed phase specifies:\n\n1. Required inputs and their origin: serialized state, assets, captured commands, runtime-only\n state, or original helpers. Missing required inputs block commit; they are not implicit zero.\n2. Ordered behavior, predicates, numeric precision and RNG word consumption.\n3. Complete effects, including newly allocated objects, membership, IDs, event records and all\n container elements. A count/header change is not equivalent to producing the elements.\n4. Supported domain and known unsupported cases, with executable preconditions where feasible.\n5. Independent expected outputs and the workload/branch coverage needed to accept the claim.\n\nThis is the contract for new work, not a claim that every existing partial phase already meets\nit. Existing approximations are tracked as dependencies in the RE campaign and retired by slice.\n\n## State and time\n\nA save is not the entire runtime state. Replay must explicitly supply commands and any unsaved\ninputs needed by its scope. Generator state and ordering are part of the observable contract.\nCount actual generator words, including rejection draws and twists; administrative counters\nmust not modify serialized RNG layout or values. Aggregate each leaf operation once; parent\nsummary records must not double-count child effects.\n\n## Verification and integration\n\nUse fresh source-bound builds. File bytes, inflated stream bytes, typed semantic state and\ngameplay behavior are different comparison surfaces and must be labelled separately. Roundtrip\nproves conservation on the sampled corpus, not correct interpretation of every possible field.\nSynthetic boundary tests complement real original-vs-new experiments. Accepted replacement\nrequires positive execution evidence and no original execution performing the claimed work.\n\nPlanning, model routing, checkpoints, resource leases, surprise resolution and result publication\nlive only in `sots-re`. Architecture changes and plan-changing surprises require GPT-6 Astra.\nSee that repository's `AGENTS.md`, `campaign/README.md`, and `guides/multi-agent-workflow.md`.","lineStart":1,"lineEnd":64,"totalLines":64,"truncated":false}},"title":"../../../tmp/opencode/sots-final-research-engine/docs/architecture.md","time":{"start":1789013338047,"end":1789013338122}},"metadata":{"openai":{"itemId":"fc_021689cac1bbf7f3016aa22d59eaec87d1b9a1773304832590"}},"id":"prt_0898127ba001deX7VKU0U36k8u","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980d918001fiJ8ItKrBrzQ0V"}} +{"type":"tool_use","timestamp":1789013338160,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_ITjkrCQ9QgT6nUhHJpWdFTCq","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/contracts/research-completion-abi.json"},"output":"/home/alex/sots-re/campaign/contracts/research-completion-abi.json\nfile\n\n1: {\n2: \"acceptance\": [\n3: {\n4: \"axis\": \"static-recovery\",\n5: \"criterion\": \"Addresses/signatures and record/container/string lifetime rules backed by fresh binary/tool captures; distinguish recorded facts, inference and unexercised branches. Name exact callable allocation/copy/destruction operations or precise unresolved blockers.\",\n6: \"id\": \"ownership-recovered\"\n7: },\n8: {\n9: \"axis\": \"validation\",\n10: \"criterion\": \"Independent verifier checks key instruction/ABI claims and archived record values. No static-only claim of live allocator safety or replacement acceptance.\",\n11: \"id\": \"independent-cross-check\"\n12: }\n13: ],\n14: \"baseline\": {\n15: \"engine\": {\n16: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n17: \"path\": \"/home/alex/sots-engine\"\n18: },\n19: \"re\": {\n20: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n21: \"path\": \"/home/alex/sots-re\"\n22: }\n23: },\n24: \"checkpoint\": \"campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json\",\n25: \"dependencies\": [\n26: \"controls-bootstrap\"\n27: ],\n28: \"effects\": [\n29: \"Evidence-backed RE handoff and raw static captures; no game or shared database state changes\"\n30: ],\n31: \"evidence\": [\n32: {\n33: \"axis\": \"static-recovery\",\n34: \"binaries\": [\n35: {\n36: \"path\": \"dumps/sots.exe\",\n37: \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n38: }\n39: ],\n40: \"id\": \"research-completion-abi-static-run-79357a65226f61d6a86c042d\",\n41: \"inputs\": [\n42: {\n43: \"path\": \"verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/report.md\",\n44: \"sha256\": \"d5a28f01002f1711cf8575ffd817a8f0998b413c6280d656e6cdad5a90a04477\"\n45: }\n46: ],\n47: \"integrated\": true,\n48: \"outcomes\": [\n49: {\n50: \"artifact\": {\n51: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n52: \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n53: },\n54: \"criterion\": \"ownership-recovered\",\n55: \"status\": \"pass\"\n56: }\n57: ],\n58: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n59: \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\",\n60: \"source\": {\n61: \"engine\": {\n62: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n63: \"path\": \"/home/alex/sots-engine\"\n64: },\n65: \"re\": {\n66: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n67: \"path\": \"/home/alex/sots-re\"\n68: }\n69: },\n70: \"source_binding\": {\n71: \"engine\": {\n72: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n73: \"path\": \"/home/alex/sots-engine\",\n74: \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n75: },\n76: \"re\": {\n77: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n78: \"path\": \"/home/alex/sots-re\",\n79: \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n80: }\n81: }\n82: },\n83: {\n84: \"axis\": \"validation\",\n85: \"binaries\": [\n86: {\n87: \"path\": \"dumps/sots.exe\",\n88: \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n89: }\n90: ],\n91: \"id\": \"research-completion-abi-validation-run-735fcb8f4876c10285b03fad\",\n92: \"inputs\": [\n93: {\n94: \"path\": \"verify/results/saves/turn3-state.sav\",\n95: \"sha256\": \"978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921\"\n96: },\n97: {\n98: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n99: \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n100: }\n101: ],\n102: \"integrated\": true,\n103: \"outcomes\": [\n104: {\n105: \"artifact\": {\n106: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n107: \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\"\n108: },\n109: \"criterion\": \"independent-cross-check\",\n110: \"status\": \"pass\"\n111: }\n112: ],\n113: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n114: \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\",\n115: \"source\": {\n116: \"engine\": {\n117: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n118: \"path\": \"/home/alex/sots-engine\"\n119: },\n120: \"re\": {\n121: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n122: \"path\": \"/home/alex/sots-re\"\n123: }\n124: },\n125: \"source_binding\": {\n126: \"engine\": {\n127: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n128: \"path\": \"/home/alex/sots-engine\",\n129: \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n130: },\n131: \"re\": {\n132: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n133: \"path\": \"/home/alex/sots-re\",\n134: \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n135: }\n136: }\n137: }\n138: ],\n139: \"id\": \"research-completion-abi\",\n140: \"inputs\": [\n141: \"Existing binary fingerprint/address contract and private RE findings\",\n142: \"Owner-supplied binary or live read-only ReVa endpoint\",\n143: \"Archived CR traces/saves for observed behavior\",\n144: \"Source-identical current engine/RE worktree snapshots\"\n145: ],\n146: \"original_dependencies\": [\n147: \"Original binary is the object of analysis, not a replacement dependency decision\"\n148: ],\n149: \"owner\": {\n150: \"name\": \"research-abi-analyst\",\n151: \"role\": \"analyst\"\n152: },\n153: \"predictions\": [\n154: \"Count-only scratch updates conceal concrete element construction and original allocator ownership requirements\",\n155: \"The observed-tech and nested-event containers use different element strides and nontrivial string lifetimes; raw header copying is insufficient\"\n156: ],\n157: \"scope\": [\n158: \"Reverse engineering only. Own canonical campaign/research/research-completion-abi.md and verify/results/research-completion-abi/ captures. Use assigned source-identical paired worktrees for source inspection; canonical RE for unique evidence/checkpoint outputs.\",\n159: \"Recover actual constructors/copy/destructors/vector-growth/allocation/free conventions used by RecordObservedTech and EventStorage/TurnEvents/PlayerEvent. Resolve implementable ABI operations, not another general framework.\",\n160: \"Use existing ReVa read-only tools through canonical tools/reva_call.py or the owner-supplied local binary. No Ghidra renames/type writes, VM mutation, new engine code, framework code, agents or delegation. Do not commit/stage/push.\",\n161: \"Start with findings/subsystems/{events,observedtech-append,research-replace}.md and campaign/pilots/research-replacement.md; cross-check binary bytes/decompilation rather than merely repeat notes. Anchors: RecordObservedTech 0x007ba1a0, EventStorage::PostEvent 0x008862b0, PlayerEvent constructor 0x0084ee30. Addresses are hypotheses to validate against fingerprint and actual tools.\",\n162: \"Produce recovered signatures, ownership/lifetime rules, short/long string and empty/full-capacity container paths, and exact unresolved dependencies with minimum next probe. Store raw tool outputs and a hash/provenance index in your owned RE results directory. Keep code-derived material out of engine repo.\"\n163: ],\n164: \"status\": \"accepted\",\n165: \"stop_conditions\": [\n166: \"Stop affected interpretation on binary fingerprint mismatch, contradictory ownership/ABI evidence, unavailable original data, or any scope-changing surprise; record and escalate to Astra\",\n167: \"Checkpoint every 20 calls/15 minutes and before compaction/stopping; return exact next RE action within 40 steps\",\n168: \"Do not expand into framework development or mark pilot replacement ready/accepted\"\n169: ],\n170: \"title\": \"RE: research completion record construction and allocator ABI\"\n171: }\n\n(End of file - total 171 lines)\n","metadata":{"preview":"{\n \"acceptance\": [\n {\n \"axis\": \"static-recovery\",\n \"criterion\": \"Addresses/signatures and record/container/string lifetime rules backed by fresh binary/tool captures; distinguish recorded facts, inference and unexercised branches. Name exact callable allocation/copy/destruction operations or precise unresolved blockers.\",\n \"id\": \"ownership-recovered\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Independent verifier checks key instruction/ABI claims and archived record values. No static-only claim of live allocator safety or replacement acceptance.\",\n \"id\": \"independent-cross-check\"\n }\n ],\n \"baseline\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/contracts/research-completion-abi.json","text":"{\n \"acceptance\": [\n {\n \"axis\": \"static-recovery\",\n \"criterion\": \"Addresses/signatures and record/container/string lifetime rules backed by fresh binary/tool captures; distinguish recorded facts, inference and unexercised branches. Name exact callable allocation/copy/destruction operations or precise unresolved blockers.\",\n \"id\": \"ownership-recovered\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Independent verifier checks key instruction/ABI claims and archived record values. No static-only claim of live allocator safety or replacement acceptance.\",\n \"id\": \"independent-cross-check\"\n }\n ],\n \"baseline\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"checkpoint\": \"campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json\",\n \"dependencies\": [\n \"controls-bootstrap\"\n ],\n \"effects\": [\n \"Evidence-backed RE handoff and raw static captures; no game or shared database state changes\"\n ],\n \"evidence\": [\n {\n \"axis\": \"static-recovery\",\n \"binaries\": [\n {\n \"path\": \"dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n }\n ],\n \"id\": \"research-completion-abi-static-run-79357a65226f61d6a86c042d\",\n \"inputs\": [\n {\n \"path\": \"verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/report.md\",\n \"sha256\": \"d5a28f01002f1711cf8575ffd817a8f0998b413c6280d656e6cdad5a90a04477\"\n }\n ],\n \"integrated\": true,\n \"outcomes\": [\n {\n \"artifact\": {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n },\n \"criterion\": \"ownership-recovered\",\n \"status\": \"pass\"\n }\n ],\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\",\n \"source\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"source_binding\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\",\n \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n }\n }\n },\n {\n \"axis\": \"validation\",\n \"binaries\": [\n {\n \"path\": \"dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n }\n ],\n \"id\": \"research-completion-abi-validation-run-735fcb8f4876c10285b03fad\",\n \"inputs\": [\n {\n \"path\": \"verify/results/saves/turn3-state.sav\",\n \"sha256\": \"978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n }\n ],\n \"integrated\": true,\n \"outcomes\": [\n {\n \"artifact\": {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\"\n },\n \"criterion\": \"independent-cross-check\",\n \"status\": \"pass\"\n }\n ],\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\",\n \"source\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"source_binding\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\",\n \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n }\n }\n }\n ],\n \"id\": \"research-completion-abi\",\n \"inputs\": [\n \"Existing binary fingerprint/address contract and private RE findings\",\n \"Owner-supplied binary or live read-only ReVa endpoint\",\n \"Archived CR traces/saves for observed behavior\",\n \"Source-identical current engine/RE worktree snapshots\"\n ],\n \"original_dependencies\": [\n \"Original binary is the object of analysis, not a replacement dependency decision\"\n ],\n \"owner\": {\n \"name\": \"research-abi-analyst\",\n \"role\": \"analyst\"\n },\n \"predictions\": [\n \"Count-only scratch updates conceal concrete element construction and original allocator ownership requirements\",\n \"The observed-tech and nested-event containers use different element strides and nontrivial string lifetimes; raw header copying is insufficient\"\n ],\n \"scope\": [\n \"Reverse engineering only. Own canonical campaign/research/research-completion-abi.md and verify/results/research-completion-abi/ captures. Use assigned source-identical paired worktrees for source inspection; canonical RE for unique evidence/checkpoint outputs.\",\n \"Recover actual constructors/copy/destructors/vector-growth/allocation/free conventions used by RecordObservedTech and EventStorage/TurnEvents/PlayerEvent. Resolve implementable ABI operations, not another general framework.\",\n \"Use existing ReVa read-only tools through canonical tools/reva_call.py or the owner-supplied local binary. No Ghidra renames/type writes, VM mutation, new engine code, framework code, agents or delegation. Do not commit/stage/push.\",\n \"Start with findings/subsystems/{events,observedtech-append,research-replace}.md and campaign/pilots/research-replacement.md; cross-check binary bytes/decompilation rather than merely repeat notes. Anchors: RecordObservedTech 0x007ba1a0, EventStorage::PostEvent 0x008862b0, PlayerEvent constructor 0x0084ee30. Addresses are hypotheses to validate against fingerprint and actual tools.\",\n \"Produce recovered signatures, ownership/lifetime rules, short/long string and empty/full-capacity container paths, and exact unresolved dependencies with minimum next probe. Store raw tool outputs and a hash/provenance index in your owned RE results directory. Keep code-derived material out of engine repo.\"\n ],\n \"status\": \"accepted\",\n \"stop_conditions\": [\n \"Stop affected interpretation on binary fingerprint mismatch, contradictory ownership/ABI evidence, unavailable original data, or any scope-changing surprise; record and escalate to Astra\",\n \"Checkpoint every 20 calls/15 minutes and before compaction/stopping; return exact next RE action within 40 steps\",\n \"Do not expand into framework development or mark pilot replacement ready/accepted\"\n ],\n \"title\": \"RE: research completion record construction and allocator ABI\"\n}","lineStart":1,"lineEnd":171,"totalLines":171,"truncated":false}},"title":"campaign/contracts/research-completion-abi.json","time":{"start":1789013338053,"end":1789013338133}},"metadata":{"openai":{"itemId":"fc_021689cac1bbf7f3016aa22d59eafc87d1ba7dc424e67b5a24"}},"id":"prt_0898127c1001K2KOQCjpqZClBi","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980d918001fiJ8ItKrBrzQ0V"}} +{"type":"tool_use","timestamp":1789013338160,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_lh1zIKs4MDJ5YfcAGDtTFXiz","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/surprises/s-410e48d5ae6cc4da0a6ae649.json"},"output":"/home/alex/sots-re/campaign/runtime/surprises/s-410e48d5ae6cc4da0a6ae649.json\nfile\n\n1: {\n2: \"actor\": \"controls-architect\",\n3: \"contract\": \"controls-bootstrap\",\n4: \"decision\": \"d-42c6d0b4ee5114e6f2e07c99\",\n5: \"id\": \"s-410e48d5ae6cc4da0a6ae649\",\n6: \"model\": \"openai/gpt-6-astra\",\n7: \"probe\": \"Introduce an immutable typed acceptance package binding candidate/integrated source manifests, built binary, inputs and per-criterion results; change source bytes at unchanged HEAD and require integration/acceptance rejection.\",\n8: \"role\": \"architecture-review\",\n9: \"schema\": \"sots-surprise/1\",\n10: \"status\": \"resolved\",\n11: \"summary\": \"Independent review R4: lifecycle source binding checks baseline path/commit and artifact hashes, but not the actual candidate/integrated source manifest. Implementation bytes can change at the same HEAD without invalidating the current evidence/verdict. This requires a cross-cutting evidence package/interface decision with publishing and gate owners.\",\n12: \"timestamp\": \"2026-09-09T21:34:52.829937+00:00\"\n13: }\n\n(End of file - total 13 lines)\n","metadata":{"preview":"{\n \"actor\": \"controls-architect\",\n \"contract\": \"controls-bootstrap\",\n \"decision\": \"d-42c6d0b4ee5114e6f2e07c99\",\n \"id\": \"s-410e48d5ae6cc4da0a6ae649\",\n \"model\": \"openai/gpt-6-astra\",\n \"probe\": \"Introduce an immutable typed acceptance package binding candidate/integrated source manifests, built binary, inputs and per-criterion results; change source bytes at unchanged HEAD and require integration/acceptance rejection.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Independent review R4: lifecycle source binding checks baseline path/commit and artifact hashes, but not the actual candidate/integrated source manifest. Implementation bytes can change at the same HEAD without invalidating the current evidence/verdict. This requires a cross-cutting evidence package/interface decision with publishing and gate owners.\",\n \"timestamp\": \"2026-09-09T21:34:52.829937+00:00\"\n}","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/surprises/s-410e48d5ae6cc4da0a6ae649.json","text":"{\n \"actor\": \"controls-architect\",\n \"contract\": \"controls-bootstrap\",\n \"decision\": \"d-42c6d0b4ee5114e6f2e07c99\",\n \"id\": \"s-410e48d5ae6cc4da0a6ae649\",\n \"model\": \"openai/gpt-6-astra\",\n \"probe\": \"Introduce an immutable typed acceptance package binding candidate/integrated source manifests, built binary, inputs and per-criterion results; change source bytes at unchanged HEAD and require integration/acceptance rejection.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Independent review R4: lifecycle source binding checks baseline path/commit and artifact hashes, but not the actual candidate/integrated source manifest. Implementation bytes can change at the same HEAD without invalidating the current evidence/verdict. This requires a cross-cutting evidence package/interface decision with publishing and gate owners.\",\n \"timestamp\": \"2026-09-09T21:34:52.829937+00:00\"\n}","lineStart":1,"lineEnd":13,"totalLines":13,"truncated":false}},"title":"campaign/runtime/surprises/s-410e48d5ae6cc4da0a6ae649.json","time":{"start":1789013338060,"end":1789013338138}},"metadata":{"openai":{"itemId":"fc_021689cac1bbf7f3016aa22d59eb0887d1b17587a9f8e222fc"}},"id":"prt_0898127c7001RnvItP4kppQMIQ","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980d918001fiJ8ItKrBrzQ0V"}} +{"type":"tool_use","timestamp":1789013338160,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_LRARmKYaarRJFGk283ZLaTPP","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/surprises/s-abd1c3613c9922cc94c608d5.json"},"output":"/home/alex/sots-re/campaign/runtime/surprises/s-abd1c3613c9922cc94c608d5.json\nfile\n\n1: {\n2: \"actor\": \"final-controls-verifier\",\n3: \"contract\": \"controls-bootstrap\",\n4: \"decision\": \"d-d2aeed91781c4da6057f00a7\",\n5: \"id\": \"s-abd1c3613c9922cc94c608d5\",\n6: \"model\": \"openai/gpt-5.6-terra\",\n7: \"probe\": \"From canonical RE, run source-binding once with no worktree arguments and once with the assigned paired paths; confirm the differing RE digest and absence of paired tools/campaign.py plus verify/campaign/test_controls.py. Astra must decide whether independent integrated reproduction may use only dirty canonical trees or provide source-identical linked worktrees and repeat/attest verification.\",\n8: \"role\": \"verifier\",\n9: \"schema\": \"sots-surprise/1\",\n10: \"status\": \"resolved\",\n11: \"summary\": \"Falsified paired-worktree reproducibility assumption. The assigned /tmp/opencode/sots-launch-re is clean at the pinned RE HEAD but lacks tools/campaign.py and verify/campaign/test_controls.py; its source binding is 67b7b60509fe43c8d23382003fed069fb32549094eea0c039b75475e32a7a9eb, not the evidence binding 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Engine paired binding likewise differs (949dfb46... versus ccd8e020...). Canonical integrated trees do rehash exactly to the claimed binding and declared binary/input/outcome hashes match, but the supplied isolated paired source cannot reproduce the package from handoff alone. This blocks the final independent integrated verdict under the required linked-worktree/reproduction guard.\",\n12: \"timestamp\": \"2026-09-09T22:25:50.265100+00:00\"\n13: }\n\n(End of file - total 13 lines)\n","metadata":{"preview":"{\n \"actor\": \"final-controls-verifier\",\n \"contract\": \"controls-bootstrap\",\n \"decision\": \"d-d2aeed91781c4da6057f00a7\",\n \"id\": \"s-abd1c3613c9922cc94c608d5\",\n \"model\": \"openai/gpt-5.6-terra\",\n \"probe\": \"From canonical RE, run source-binding once with no worktree arguments and once with the assigned paired paths; confirm the differing RE digest and absence of paired tools/campaign.py plus verify/campaign/test_controls.py. Astra must decide whether independent integrated reproduction may use only dirty canonical trees or provide source-identical linked worktrees and repeat/attest verification.\",\n \"role\": \"verifier\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Falsified paired-worktree reproducibility assumption. The assigned /tmp/opencode/sots-launch-re is clean at the pinned RE HEAD but lacks tools/campaign.py and verify/campaign/test_controls.py; its source binding is 67b7b60509fe43c8d23382003fed069fb32549094eea0c039b75475e32a7a9eb, not the evidence binding 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Engine paired binding likewise differs (949dfb46... versus ccd8e020...). Canonical integrated trees do rehash exactly to the claimed binding and declared binary/input/outcome hashes match, but the supplied isolated paired source cannot reproduce the package from handoff alone. This blocks the final independent integrated verdict under the required linked-worktree/reproduction guard.\",\n \"timestamp\": \"2026-09-09T22:25:50.265100+00:00\"\n}","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/surprises/s-abd1c3613c9922cc94c608d5.json","text":"{\n \"actor\": \"final-controls-verifier\",\n \"contract\": \"controls-bootstrap\",\n \"decision\": \"d-d2aeed91781c4da6057f00a7\",\n \"id\": \"s-abd1c3613c9922cc94c608d5\",\n \"model\": \"openai/gpt-5.6-terra\",\n \"probe\": \"From canonical RE, run source-binding once with no worktree arguments and once with the assigned paired paths; confirm the differing RE digest and absence of paired tools/campaign.py plus verify/campaign/test_controls.py. Astra must decide whether independent integrated reproduction may use only dirty canonical trees or provide source-identical linked worktrees and repeat/attest verification.\",\n \"role\": \"verifier\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Falsified paired-worktree reproducibility assumption. The assigned /tmp/opencode/sots-launch-re is clean at the pinned RE HEAD but lacks tools/campaign.py and verify/campaign/test_controls.py; its source binding is 67b7b60509fe43c8d23382003fed069fb32549094eea0c039b75475e32a7a9eb, not the evidence binding 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Engine paired binding likewise differs (949dfb46... versus ccd8e020...). Canonical integrated trees do rehash exactly to the claimed binding and declared binary/input/outcome hashes match, but the supplied isolated paired source cannot reproduce the package from handoff alone. This blocks the final independent integrated verdict under the required linked-worktree/reproduction guard.\",\n \"timestamp\": \"2026-09-09T22:25:50.265100+00:00\"\n}","lineStart":1,"lineEnd":13,"totalLines":13,"truncated":false}},"title":"campaign/runtime/surprises/s-abd1c3613c9922cc94c608d5.json","time":{"start":1789013338065,"end":1789013338140}},"metadata":{"openai":{"itemId":"fc_021689cac1bbf7f3016aa22d59eb1087d1bc85de16705b3530"}},"id":"prt_0898127ce001O6LMlmjNR2GTaG","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980d918001fiJ8ItKrBrzQ0V"}} +{"type":"tool_use","timestamp":1789013338160,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_uec3sU5rPtEQWNsKykoLQ8Vb","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/surprises/s-6d1fcc617a20ca2bcbffc0cc.json"},"output":"/home/alex/sots-re/campaign/runtime/surprises/s-6d1fcc617a20ca2bcbffc0cc.json\nfile\n\n1: {\n2: \"actor\": \"rollout-lead\",\n3: \"contract\": \"controls-bootstrap\",\n4: \"decision\": \"d-6239404c8f40351310c8abf0\",\n5: \"id\": \"s-6d1fcc617a20ca2bcbffc0cc\",\n6: \"model\": \"openai/gpt-6-astra\",\n7: \"probe\": \"Allow verifier launch in verification and integration; reject owner overlap, source drift and open surprises in both.\",\n8: \"role\": \"lead\",\n9: \"schema\": \"sots-surprise/1\",\n10: \"status\": \"resolved\",\n11: \"summary\": \"Independent Astra R8: verifier launch permits verification only, but final integrated evidence requires a fresh verifier execution in integration.\",\n12: \"timestamp\": \"2026-09-09T22:09:56.316247+00:00\"\n13: }\n\n(End of file - total 13 lines)\n","metadata":{"preview":"{\n \"actor\": \"rollout-lead\",\n \"contract\": \"controls-bootstrap\",\n \"decision\": \"d-6239404c8f40351310c8abf0\",\n \"id\": \"s-6d1fcc617a20ca2bcbffc0cc\",\n \"model\": \"openai/gpt-6-astra\",\n \"probe\": \"Allow verifier launch in verification and integration; reject owner overlap, source drift and open surprises in both.\",\n \"role\": \"lead\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Independent Astra R8: verifier launch permits verification only, but final integrated evidence requires a fresh verifier execution in integration.\",\n \"timestamp\": \"2026-09-09T22:09:56.316247+00:00\"\n}","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/surprises/s-6d1fcc617a20ca2bcbffc0cc.json","text":"{\n \"actor\": \"rollout-lead\",\n \"contract\": \"controls-bootstrap\",\n \"decision\": \"d-6239404c8f40351310c8abf0\",\n \"id\": \"s-6d1fcc617a20ca2bcbffc0cc\",\n \"model\": \"openai/gpt-6-astra\",\n \"probe\": \"Allow verifier launch in verification and integration; reject owner overlap, source drift and open surprises in both.\",\n \"role\": \"lead\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Independent Astra R8: verifier launch permits verification only, but final integrated evidence requires a fresh verifier execution in integration.\",\n \"timestamp\": \"2026-09-09T22:09:56.316247+00:00\"\n}","lineStart":1,"lineEnd":13,"totalLines":13,"truncated":false}},"title":"campaign/runtime/surprises/s-6d1fcc617a20ca2bcbffc0cc.json","time":{"start":1789013338071,"end":1789013338143}},"metadata":{"openai":{"itemId":"fc_021689cac1bbf7f3016aa22d59eb1887d1bce02b25ca053de3"}},"id":"prt_0898127d3001NHzsOqeZqhwjhP","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980d918001fiJ8ItKrBrzQ0V"}} +{"type":"tool_use","timestamp":1789013338160,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_EgiHK7R8MPCWUKnmXjOB29w5","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/surprises/s-5c58b6a921997731f5b5ae1f.json"},"output":"/home/alex/sots-re/campaign/runtime/surprises/s-5c58b6a921997731f5b5ae1f.json\nfile\n\n1: {\n2: \"actor\": \"research-abi-independent\",\n3: \"contract\": \"research-completion-abi\",\n4: \"decision\": \"d-d2a9b8be6399a6abaa0e05a5\",\n5: \"id\": \"s-5c58b6a921997731f5b5ae1f\",\n6: \"model\": \"openai/gpt-5.6-sol\",\n7: \"probe\": \"Astra should first rerun both objdump -D -Mintel --start-address=0x00825d40 --stop-address=0x00825e65 dumps/sots.exe and the minimally widened --stop-address=0x00825e67 command against SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841, archive raw stdout bytes and objdump executable hash/version, and decide whether the existing capture was manually spliced or generated with a different effective boundary. Repair provenance before independent ABI interpretation resumes.\",\n8: \"role\": \"verifier\",\n9: \"schema\": \"sots-surprise/1\",\n10: \"status\": \"resolved\",\n11: \"summary\": \"Independent reproduction falsified the handoff claim that objdump-2026-09-09-dedup-helper.txt is unfiltered output from its exact first command. With the SHA256-matched executable and GNU objdump 2.38, the declared stop-address 0x00825e65 truncates the three-byte instruction beginning at 0x00825e64: current stdout is bytes c2 while the archive records c2 08 00. The other three declared windows reproduce exactly after only line-end whitespace normalization. This is a provenance/instrument-boundary contradiction; dedup interpretation is paused rather than converting the otherwise matching instructions into success.\",\n12: \"timestamp\": \"2026-09-10T00:19:20.577736+00:00\"\n13: }\n\n(End of file - total 13 lines)\n","metadata":{"preview":"{\n \"actor\": \"research-abi-independent\",\n \"contract\": \"research-completion-abi\",\n \"decision\": \"d-d2a9b8be6399a6abaa0e05a5\",\n \"id\": \"s-5c58b6a921997731f5b5ae1f\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"probe\": \"Astra should first rerun both objdump -D -Mintel --start-address=0x00825d40 --stop-address=0x00825e65 dumps/sots.exe and the minimally widened --stop-address=0x00825e67 command against SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841, archive raw stdout bytes and objdump executable hash/version, and decide whether the existing capture was manually spliced or generated with a different effective boundary. Repair provenance before independent ABI interpretation resumes.\",\n \"role\": \"verifier\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Independent reproduction falsified the handoff claim that objdump-2026-09-09-dedup-helper.txt is unfiltered output from its exact first command. With the SHA256-matched executable and GNU objdump 2.38, the declared stop-address 0x00825e65 truncates the three-byte instruction beginning at 0x00825e64: current stdout is bytes c2 while the archive records c2 08 00. The other three declared windows reproduce exactly after only line-end whitespace normalization. This is a provenance/instrument-boundary contradiction; dedup interpretation is paused rather than converting the otherwise matching instructions into success.\",\n \"timestamp\": \"2026-09-10T00:19:20.577736+00:00\"\n}","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/surprises/s-5c58b6a921997731f5b5ae1f.json","text":"{\n \"actor\": \"research-abi-independent\",\n \"contract\": \"research-completion-abi\",\n \"decision\": \"d-d2a9b8be6399a6abaa0e05a5\",\n \"id\": \"s-5c58b6a921997731f5b5ae1f\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"probe\": \"Astra should first rerun both objdump -D -Mintel --start-address=0x00825d40 --stop-address=0x00825e65 dumps/sots.exe and the minimally widened --stop-address=0x00825e67 command against SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841, archive raw stdout bytes and objdump executable hash/version, and decide whether the existing capture was manually spliced or generated with a different effective boundary. Repair provenance before independent ABI interpretation resumes.\",\n \"role\": \"verifier\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Independent reproduction falsified the handoff claim that objdump-2026-09-09-dedup-helper.txt is unfiltered output from its exact first command. With the SHA256-matched executable and GNU objdump 2.38, the declared stop-address 0x00825e65 truncates the three-byte instruction beginning at 0x00825e64: current stdout is bytes c2 while the archive records c2 08 00. The other three declared windows reproduce exactly after only line-end whitespace normalization. This is a provenance/instrument-boundary contradiction; dedup interpretation is paused rather than converting the otherwise matching instructions into success.\",\n \"timestamp\": \"2026-09-10T00:19:20.577736+00:00\"\n}","lineStart":1,"lineEnd":13,"totalLines":13,"truncated":false}},"title":"campaign/runtime/surprises/s-5c58b6a921997731f5b5ae1f.json","time":{"start":1789013338080,"end":1789013338145}},"metadata":{"openai":{"itemId":"fc_021689cac1bbf7f3016aa22d59eb2487d1bedfafad23ac5410"}},"id":"prt_0898127d9001TYtPRMrYQNqfI6","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980d918001fiJ8ItKrBrzQ0V"}} +{"type":"tool_use","timestamp":1789013338160,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_vUT2acCL76k0L0jVEcAfdcdd","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/surprises/s-d2c8ec81e980396f2306f8fe.json"},"output":"/home/alex/sots-re/campaign/runtime/surprises/s-d2c8ec81e980396f2306f8fe.json\nfile\n\n1: {\n2: \"actor\": \"live-record bridge architect\",\n3: \"contract\": \"research-live-record-bridge\",\n4: \"decision\": \"d-3205df5e8425dc9e1779e673\",\n5: \"id\": \"s-d2c8ec81e980396f2306f8fe\",\n6: \"model\": \"openai/gpt-5.6-sol\",\n7: \"probe\": \"Astra must compare the stored file with fresh command stdout under the pinned binary/tool identity, decide whether a byte-exact replacement supersedes only capture provenance, and require a fresh hash-bound reserve manifest before the ObservedTech append/growth row is treated as reconciled.\",\n8: \"role\": \"architecture-review\",\n9: \"schema\": \"sots-surprise/1\",\n10: \"status\": \"resolved\",\n11: \"summary\": \"Fresh provenance check falsified the claim that verify/results/research-live-record-bridge/run-ebf85a84ad4247c38792a787/observed-reserve.stdout.txt is byte-exact raw stdout. The stored manually transcribed capture is 2464 bytes/SHA256 5d10954f54a2f8c731ee8d4760414851963ab8dc539ecb66383cf09e176b5c87; rerunning pinned GNU objdump 2.38 against the hash-matched executable with start 0x007b5820 and stop 0x007b5899 produces 2472 bytes/SHA256 2d011ed96329c4c4ff462cbfd65decac9dccf40558765244c769be1dedc92275. First difference is one alignment space at byte 477. SURVIVES: binary/tool/source identities, decoded instructions, append ABI branches, reserve capacity rule, and references to accepted append/reallocator captures. QUALIFIED: the new reserve interpretation is an observation awaiting a byte-exact immutable capture. OVERTURNED: the newly added file cannot be called raw/unfiltered or used as source-bound capture evidence. Affected ABI-row promotion is paused; contract remains proposed. No implementation or lab work occurred.\",\n12: \"timestamp\": \"2026-09-10T02:50:12.833918+00:00\"\n13: }\n\n(End of file - total 13 lines)\n","metadata":{"preview":"{\n \"actor\": \"live-record bridge architect\",\n \"contract\": \"research-live-record-bridge\",\n \"decision\": \"d-3205df5e8425dc9e1779e673\",\n \"id\": \"s-d2c8ec81e980396f2306f8fe\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"probe\": \"Astra must compare the stored file with fresh command stdout under the pinned binary/tool identity, decide whether a byte-exact replacement supersedes only capture provenance, and require a fresh hash-bound reserve manifest before the ObservedTech append/growth row is treated as reconciled.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Fresh provenance check falsified the claim that verify/results/research-live-record-bridge/run-ebf85a84ad4247c38792a787/observed-reserve.stdout.txt is byte-exact raw stdout. The stored manually transcribed capture is 2464 bytes/SHA256 5d10954f54a2f8c731ee8d4760414851963ab8dc539ecb66383cf09e176b5c87; rerunning pinned GNU objdump 2.38 against the hash-matched executable with start 0x007b5820 and stop 0x007b5899 produces 2472 bytes/SHA256 2d011ed96329c4c4ff462cbfd65decac9dccf40558765244c769be1dedc92275. First difference is one alignment space at byte 477. SURVIVES: binary/tool/source identities, decoded instructions, append ABI branches, reserve capacity rule, and references to accepted append/reallocator captures. QUALIFIED: the new reserve interpretation is an observation awaiting a byte-exact immutable capture. OVERTURNED: the newly added file cannot be called raw/unfiltered or used as source-bound capture evidence. Affected ABI-row promotion is paused; contract remains proposed. No implementation or lab work occurred.\",\n \"timestamp\": \"2026-09-10T02:50:12.833918+00:00\"\n}","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/surprises/s-d2c8ec81e980396f2306f8fe.json","text":"{\n \"actor\": \"live-record bridge architect\",\n \"contract\": \"research-live-record-bridge\",\n \"decision\": \"d-3205df5e8425dc9e1779e673\",\n \"id\": \"s-d2c8ec81e980396f2306f8fe\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"probe\": \"Astra must compare the stored file with fresh command stdout under the pinned binary/tool identity, decide whether a byte-exact replacement supersedes only capture provenance, and require a fresh hash-bound reserve manifest before the ObservedTech append/growth row is treated as reconciled.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Fresh provenance check falsified the claim that verify/results/research-live-record-bridge/run-ebf85a84ad4247c38792a787/observed-reserve.stdout.txt is byte-exact raw stdout. The stored manually transcribed capture is 2464 bytes/SHA256 5d10954f54a2f8c731ee8d4760414851963ab8dc539ecb66383cf09e176b5c87; rerunning pinned GNU objdump 2.38 against the hash-matched executable with start 0x007b5820 and stop 0x007b5899 produces 2472 bytes/SHA256 2d011ed96329c4c4ff462cbfd65decac9dccf40558765244c769be1dedc92275. First difference is one alignment space at byte 477. SURVIVES: binary/tool/source identities, decoded instructions, append ABI branches, reserve capacity rule, and references to accepted append/reallocator captures. QUALIFIED: the new reserve interpretation is an observation awaiting a byte-exact immutable capture. OVERTURNED: the newly added file cannot be called raw/unfiltered or used as source-bound capture evidence. Affected ABI-row promotion is paused; contract remains proposed. No implementation or lab work occurred.\",\n \"timestamp\": \"2026-09-10T02:50:12.833918+00:00\"\n}","lineStart":1,"lineEnd":13,"totalLines":13,"truncated":false}},"title":"campaign/runtime/surprises/s-d2c8ec81e980396f2306f8fe.json","time":{"start":1789013338085,"end":1789013338148}},"metadata":{"openai":{"itemId":"fc_021689cac1bbf7f3016aa22d59eb2c87d1bf4e0373197a5c4a"}},"id":"prt_0898127e1001eJ2I03nnFKz4SL","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980d918001fiJ8ItKrBrzQ0V"}} +{"type":"tool_use","timestamp":1789013338160,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_xl7VNpyl63dNPDm0QWSwR77I","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/surprises/s-4a7d66ebd7d8a8f3ec59f11d.json"},"output":"/home/alex/sots-re/campaign/runtime/surprises/s-4a7d66ebd7d8a8f3ec59f11d.json\nfile\n\n1: {\n2: \"actor\": \"controls-independent-verifier\",\n3: \"contract\": \"controls-bootstrap\",\n4: \"decision\": \"d-2570bf9c76ae66711bdac461\",\n5: \"id\": \"s-4a7d66ebd7d8a8f3ec59f11d\",\n6: \"model\": \"openai/gpt-5.6-terra\",\n7: \"probe\": \"Parse every nonblank JSONL line of campaign/runtime/runs/run-cb15199f9272fe496bd10a8a.jsonl; compare count, error events, stop events, sessions, source_before/source_after and run record fields. Determine whether the false 24-event assertion invalidates only narrative verifier artifacts or the integrated controls evidence/verdict package.\",\n8: \"role\": \"verifier\",\n9: \"schema\": \"sots-surprise/1\",\n10: \"status\": \"resolved\",\n11: \"summary\": \"Contradictory prior verification claim: verdict controls-bootstrap.json and checkpoint b467c2d772260f1f03637133 report 24 parsed events for run-cb15199f9272fe496bd10a8a, but independent JSONL parsing finds 67 valid events. The run record itself reports event_count 67. The zero-error, one-session, one-stop, return-0 and unchanged-source facts agree; the count claim is false. Existing source-bound evidence does not document this raw-run count, so its acceptance impact needs Astra resolution before a new verdict.\",\n12: \"timestamp\": \"2026-09-09T22:17:38.435822+00:00\"\n13: }\n\n(End of file - total 13 lines)\n","metadata":{"preview":"{\n \"actor\": \"controls-independent-verifier\",\n \"contract\": \"controls-bootstrap\",\n \"decision\": \"d-2570bf9c76ae66711bdac461\",\n \"id\": \"s-4a7d66ebd7d8a8f3ec59f11d\",\n \"model\": \"openai/gpt-5.6-terra\",\n \"probe\": \"Parse every nonblank JSONL line of campaign/runtime/runs/run-cb15199f9272fe496bd10a8a.jsonl; compare count, error events, stop events, sessions, source_before/source_after and run record fields. Determine whether the false 24-event assertion invalidates only narrative verifier artifacts or the integrated controls evidence/verdict package.\",\n \"role\": \"verifier\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Contradictory prior verification claim: verdict controls-bootstrap.json and checkpoint b467c2d772260f1f03637133 report 24 parsed events for run-cb15199f9272fe496bd10a8a, but independent JSONL parsing finds 67 valid events. The run record itself reports event_count 67. The zero-error, one-session, one-stop, return-0 and unchanged-source facts agree; the count claim is false. Existing source-bound evidence does not document this raw-run count, so its acceptance impact needs Astra resolution before a new verdict.\",\n \"timestamp\": \"2026-09-09T22:17:38.435822+00:00\"\n}","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/surprises/s-4a7d66ebd7d8a8f3ec59f11d.json","text":"{\n \"actor\": \"controls-independent-verifier\",\n \"contract\": \"controls-bootstrap\",\n \"decision\": \"d-2570bf9c76ae66711bdac461\",\n \"id\": \"s-4a7d66ebd7d8a8f3ec59f11d\",\n \"model\": \"openai/gpt-5.6-terra\",\n \"probe\": \"Parse every nonblank JSONL line of campaign/runtime/runs/run-cb15199f9272fe496bd10a8a.jsonl; compare count, error events, stop events, sessions, source_before/source_after and run record fields. Determine whether the false 24-event assertion invalidates only narrative verifier artifacts or the integrated controls evidence/verdict package.\",\n \"role\": \"verifier\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Contradictory prior verification claim: verdict controls-bootstrap.json and checkpoint b467c2d772260f1f03637133 report 24 parsed events for run-cb15199f9272fe496bd10a8a, but independent JSONL parsing finds 67 valid events. The run record itself reports event_count 67. The zero-error, one-session, one-stop, return-0 and unchanged-source facts agree; the count claim is false. Existing source-bound evidence does not document this raw-run count, so its acceptance impact needs Astra resolution before a new verdict.\",\n \"timestamp\": \"2026-09-09T22:17:38.435822+00:00\"\n}","lineStart":1,"lineEnd":13,"totalLines":13,"truncated":false}},"title":"campaign/runtime/surprises/s-4a7d66ebd7d8a8f3ec59f11d.json","time":{"start":1789013338092,"end":1789013338150}},"metadata":{"openai":{"itemId":"fc_021689cac1bbf7f3016aa22d59eb3487d18800a18e63cddcce"}},"id":"prt_0898127e8001qe2FD5L6eO34H3","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980d918001fiJ8ItKrBrzQ0V"}} +{"type":"tool_use","timestamp":1789013338161,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_ESI4mDwFAPhIvU9JiNS9T6th","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/surprises/s-4f71bf4a5df4e5fc992bb6b2.json"},"output":"/home/alex/sots-re/campaign/runtime/surprises/s-4f71bf4a5df4e5fc992bb6b2.json\nfile\n\n1: {\n2: \"actor\": \"research-abi-independent\",\n3: \"contract\": \"research-completion-abi\",\n4: \"decision\": \"d-d4c494ba02ada278030ef473\",\n5: \"id\": \"s-4f71bf4a5df4e5fc992bb6b2\",\n6: \"model\": \"openai/gpt-5.6-sol\",\n7: \"probe\": \"Astra should inspect session manifest verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/manifest.json and raw observed-alloc/player-append/player-copy streams, compare the three archive lines, then require fresh paired narrow and minimally widened raw stdout/stderr captures with pinned input/tool/source identities for every ownership window whose terminal instruction is truncated. Decide whether to supersede only provenance or additional completeness claims; do not infer archive production history. After repair, a fresh independent verifier must reproduce the full windows and resume ownership/NaN/static-state checks.\",\n8: \"role\": \"verifier\",\n9: \"schema\": \"sots-surprise/1\",\n10: \"status\": \"resolved\",\n11: \"summary\": \"Session run-eba7860308317f839eb35392 fresh independent reproduction finds the repaired dedup window is correct, but exposes the same unfiltered-stop-boundary provenance contradiction in the ownership archive. objdump-2026-09-09-ownership.txt declares exact stops 0x0057e5e4, 0x0086c62e and 0x007694c0 yet prints complete c2 04 00 terminal instructions beginning at 0x0057e5e3, 0x0086c62d and 0x007694bf. Fresh GNU objdump 2.38 against the hash-matched executable prints only c2 for each command because each stop is one byte after the instruction start. Thus those archived sections cannot be literal unfiltered output of their declared commands under the bound instrument. The affected ABI/provenance review is paused; matching decoded semantics are not converted into success.\",\n12: \"timestamp\": \"2026-09-10T00:44:38.527547+00:00\"\n13: }\n\n(End of file - total 13 lines)\n","metadata":{"preview":"{\n \"actor\": \"research-abi-independent\",\n \"contract\": \"research-completion-abi\",\n \"decision\": \"d-d4c494ba02ada278030ef473\",\n \"id\": \"s-4f71bf4a5df4e5fc992bb6b2\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"probe\": \"Astra should inspect session manifest verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/manifest.json and raw observed-alloc/player-append/player-copy streams, compare the three archive lines, then require fresh paired narrow and minimally widened raw stdout/stderr captures with pinned input/tool/source identities for every ownership window whose terminal instruction is truncated. Decide whether to supersede only provenance or additional completeness claims; do not infer archive production history. After repair, a fresh independent verifier must reproduce the full windows and resume ownership/NaN/static-state checks.\",\n \"role\": \"verifier\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Session run-eba7860308317f839eb35392 fresh independent reproduction finds the repaired dedup window is correct, but exposes the same unfiltered-stop-boundary provenance contradiction in the ownership archive. objdump-2026-09-09-ownership.txt declares exact stops 0x0057e5e4, 0x0086c62e and 0x007694c0 yet prints complete c2 04 00 terminal instructions beginning at 0x0057e5e3, 0x0086c62d and 0x007694bf. Fresh GNU objdump 2.38 against the hash-matched executable prints only c2 for each command because each stop is one byte after the instruction start. Thus those archived sections cannot be literal unfiltered output of their declared commands under the bound instrument. The affected ABI/provenance review is paused; matching decoded semantics are not converted into success.\",\n \"timestamp\": \"2026-09-10T00:44:38.527547+00:00\"\n}","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/surprises/s-4f71bf4a5df4e5fc992bb6b2.json","text":"{\n \"actor\": \"research-abi-independent\",\n \"contract\": \"research-completion-abi\",\n \"decision\": \"d-d4c494ba02ada278030ef473\",\n \"id\": \"s-4f71bf4a5df4e5fc992bb6b2\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"probe\": \"Astra should inspect session manifest verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/manifest.json and raw observed-alloc/player-append/player-copy streams, compare the three archive lines, then require fresh paired narrow and minimally widened raw stdout/stderr captures with pinned input/tool/source identities for every ownership window whose terminal instruction is truncated. Decide whether to supersede only provenance or additional completeness claims; do not infer archive production history. After repair, a fresh independent verifier must reproduce the full windows and resume ownership/NaN/static-state checks.\",\n \"role\": \"verifier\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Session run-eba7860308317f839eb35392 fresh independent reproduction finds the repaired dedup window is correct, but exposes the same unfiltered-stop-boundary provenance contradiction in the ownership archive. objdump-2026-09-09-ownership.txt declares exact stops 0x0057e5e4, 0x0086c62e and 0x007694c0 yet prints complete c2 04 00 terminal instructions beginning at 0x0057e5e3, 0x0086c62d and 0x007694bf. Fresh GNU objdump 2.38 against the hash-matched executable prints only c2 for each command because each stop is one byte after the instruction start. Thus those archived sections cannot be literal unfiltered output of their declared commands under the bound instrument. The affected ABI/provenance review is paused; matching decoded semantics are not converted into success.\",\n \"timestamp\": \"2026-09-10T00:44:38.527547+00:00\"\n}","lineStart":1,"lineEnd":13,"totalLines":13,"truncated":false}},"title":"campaign/runtime/surprises/s-4f71bf4a5df4e5fc992bb6b2.json","time":{"start":1789013338097,"end":1789013338153}},"metadata":{"openai":{"itemId":"fc_021689cac1bbf7f3016aa22d59eb3c87d19398f96263cb8974"}},"id":"prt_0898127ee001hoEGRa3zpI6qu1","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980d918001fiJ8ItKrBrzQ0V"}} +{"type":"tool_use","timestamp":1789013338161,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_t4ms3CDkT6bjnrjAmdpSot0P","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/surprises/s-f1c41532e618c77d41538902.json"},"output":"/home/alex/sots-re/campaign/runtime/surprises/s-f1c41532e618c77d41538902.json\nfile\n\n1: {\n2: \"actor\": \"controls-architect\",\n3: \"contract\": \"controls-bootstrap\",\n4: \"decision\": \"d-ab717735fc6c1661919f6894\",\n5: \"id\": \"s-f1c41532e618c77d41538902\",\n6: \"model\": \"openai/gpt-6-astra\",\n7: \"probe\": \"Separate recovery identity/basis/artifact validation from end-run freshness; test old valid recovery state, missing/mismatched state, fresh end-run checkpoint and a resolution-only Astra launch with affected workers still blocked.\",\n8: \"role\": \"architecture-review\",\n9: \"schema\": \"sots-surprise/1\",\n10: \"status\": \"resolved\",\n11: \"summary\": \"Independent review R6: current launch guard applies 15-minute end-run freshness to recovery, preventing next-day recovery from valid durable state; unconditional open-surprise rejection also prevents a resolver quantum. Assignment explicitly requested no-open-surprise launch guards, so the resolver exception requires lead clarification.\",\n12: \"timestamp\": \"2026-09-09T21:34:59.734916+00:00\"\n13: }\n\n(End of file - total 13 lines)\n","metadata":{"preview":"{\n \"actor\": \"controls-architect\",\n \"contract\": \"controls-bootstrap\",\n \"decision\": \"d-ab717735fc6c1661919f6894\",\n \"id\": \"s-f1c41532e618c77d41538902\",\n \"model\": \"openai/gpt-6-astra\",\n \"probe\": \"Separate recovery identity/basis/artifact validation from end-run freshness; test old valid recovery state, missing/mismatched state, fresh end-run checkpoint and a resolution-only Astra launch with affected workers still blocked.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Independent review R6: current launch guard applies 15-minute end-run freshness to recovery, preventing next-day recovery from valid durable state; unconditional open-surprise rejection also prevents a resolver quantum. Assignment explicitly requested no-open-surprise launch guards, so the resolver exception requires lead clarification.\",\n \"timestamp\": \"2026-09-09T21:34:59.734916+00:00\"\n}","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/surprises/s-f1c41532e618c77d41538902.json","text":"{\n \"actor\": \"controls-architect\",\n \"contract\": \"controls-bootstrap\",\n \"decision\": \"d-ab717735fc6c1661919f6894\",\n \"id\": \"s-f1c41532e618c77d41538902\",\n \"model\": \"openai/gpt-6-astra\",\n \"probe\": \"Separate recovery identity/basis/artifact validation from end-run freshness; test old valid recovery state, missing/mismatched state, fresh end-run checkpoint and a resolution-only Astra launch with affected workers still blocked.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Independent review R6: current launch guard applies 15-minute end-run freshness to recovery, preventing next-day recovery from valid durable state; unconditional open-surprise rejection also prevents a resolver quantum. Assignment explicitly requested no-open-surprise launch guards, so the resolver exception requires lead clarification.\",\n \"timestamp\": \"2026-09-09T21:34:59.734916+00:00\"\n}","lineStart":1,"lineEnd":13,"totalLines":13,"truncated":false}},"title":"campaign/runtime/surprises/s-f1c41532e618c77d41538902.json","time":{"start":1789013338102,"end":1789013338155}},"metadata":{"openai":{"itemId":"fc_021689cac1bbf7f3016aa22d59eb4487d1846f25f247648664"}},"id":"prt_0898127f30017pM8FDUKFHK3Di","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980d918001fiJ8ItKrBrzQ0V"}} +{"type":"tool_use","timestamp":1789013338161,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_z6fveqjJyL3kAlaTTwi0oJzF","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/surprises/s-8996365dab2cd6dc0e17bb9f.json"},"output":"/home/alex/sots-re/campaign/runtime/surprises/s-8996365dab2cd6dc0e17bb9f.json\nfile\n\n1: {\n2: \"actor\": \"research-abi-analyst\",\n3: \"contract\": \"research-completion-abi\",\n4: \"decision\": \"d-2ff30c9f5355116bea822924\",\n5: \"id\": \"s-8996365dab2cd6dc0e17bb9f\",\n6: \"model\": \"openai/gpt-5.6-sol\",\n7: \"probe\": \"First verify 0x0046f8c0 is std::string equality (or otherwise characterize it) from independent raw instructions/callers; then use or construct two same-bucket PlayerEvents identical in EvAct/EvLoc/EvPos/EvMsg/EvImg but differing only in EvDsc. If 0x00825d40 returns null they are distinct and EvDsc is compared; if it returns the existing element the inherited omission survives and the call has another meaning.\",\n8: \"role\": \"analyst\",\n9: \"schema\": \"sots-surprise/1\",\n10: \"status\": \"resolved\",\n11: \"summary\": \"Fresh raw GNU objdump capture contradicts the standing event dedup semantic claim in findings/subsystems/events.md:185 that EvDsc is not compared. At 0x00825e11 candidate+0x08 and 0x00825e15 stored+0x08 are passed to 0x0046f8c0; its boolean result at 0x00825e21 branches to match return only when true. This occurs after EvAct, EvLoc, EvPos, EvMsg and EvImg comparisons, so description appears to participate in equality. The affected dedup interpretation is paused; no implementation or acceptance claim may use either version pending Astra resolution.\",\n12: \"timestamp\": \"2026-09-09T23:47:56.138628+00:00\"\n13: }\n\n(End of file - total 13 lines)\n","metadata":{"preview":"{\n \"actor\": \"research-abi-analyst\",\n \"contract\": \"research-completion-abi\",\n \"decision\": \"d-2ff30c9f5355116bea822924\",\n \"id\": \"s-8996365dab2cd6dc0e17bb9f\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"probe\": \"First verify 0x0046f8c0 is std::string equality (or otherwise characterize it) from independent raw instructions/callers; then use or construct two same-bucket PlayerEvents identical in EvAct/EvLoc/EvPos/EvMsg/EvImg but differing only in EvDsc. If 0x00825d40 returns null they are distinct and EvDsc is compared; if it returns the existing element the inherited omission survives and the call has another meaning.\",\n \"role\": \"analyst\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Fresh raw GNU objdump capture contradicts the standing event dedup semantic claim in findings/subsystems/events.md:185 that EvDsc is not compared. At 0x00825e11 candidate+0x08 and 0x00825e15 stored+0x08 are passed to 0x0046f8c0; its boolean result at 0x00825e21 branches to match return only when true. This occurs after EvAct, EvLoc, EvPos, EvMsg and EvImg comparisons, so description appears to participate in equality. The affected dedup interpretation is paused; no implementation or acceptance claim may use either version pending Astra resolution.\",\n \"timestamp\": \"2026-09-09T23:47:56.138628+00:00\"\n}","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/surprises/s-8996365dab2cd6dc0e17bb9f.json","text":"{\n \"actor\": \"research-abi-analyst\",\n \"contract\": \"research-completion-abi\",\n \"decision\": \"d-2ff30c9f5355116bea822924\",\n \"id\": \"s-8996365dab2cd6dc0e17bb9f\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"probe\": \"First verify 0x0046f8c0 is std::string equality (or otherwise characterize it) from independent raw instructions/callers; then use or construct two same-bucket PlayerEvents identical in EvAct/EvLoc/EvPos/EvMsg/EvImg but differing only in EvDsc. If 0x00825d40 returns null they are distinct and EvDsc is compared; if it returns the existing element the inherited omission survives and the call has another meaning.\",\n \"role\": \"analyst\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"resolved\",\n \"summary\": \"Fresh raw GNU objdump capture contradicts the standing event dedup semantic claim in findings/subsystems/events.md:185 that EvDsc is not compared. At 0x00825e11 candidate+0x08 and 0x00825e15 stored+0x08 are passed to 0x0046f8c0; its boolean result at 0x00825e21 branches to match return only when true. This occurs after EvAct, EvLoc, EvPos, EvMsg and EvImg comparisons, so description appears to participate in equality. The affected dedup interpretation is paused; no implementation or acceptance claim may use either version pending Astra resolution.\",\n \"timestamp\": \"2026-09-09T23:47:56.138628+00:00\"\n}","lineStart":1,"lineEnd":13,"totalLines":13,"truncated":false}},"title":"campaign/runtime/surprises/s-8996365dab2cd6dc0e17bb9f.json","time":{"start":1789013338110,"end":1789013338157}},"metadata":{"openai":{"itemId":"fc_021689cac1bbf7f3016aa22d59eb4c87d1825ec8a2d57175f3"}},"id":"prt_0898127f80013I6SgkjV4imUyB","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08980d918001fiJ8ItKrBrzQ0V"}} +{"type":"step_finish","timestamp":1789013338209,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08981285e0014b7YFZ5SIUe427","reason":"tool-calls","snapshot":"7aaeb6f9f076c1bded430c6bd7cafa6d902caf93","messageID":"msg_08980d918001fiJ8ItKrBrzQ0V","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":33113,"input":16928,"output":475,"reasoning":94,"cache":{"write":0,"read":15616}},"cost":0}} +{"type":"step_start","timestamp":1789013340196,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_0898130200011BGQv3IOd6sP4S","messageID":"msg_089812884001b5CDF4iuz5c87C","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"33f18a6cf7c2247985d74f2961d9d4ef9b03e90b","type":"step-start"}} +{"type":"tool_use","timestamp":1789013358165,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_ipr4zCCucILZSm9mKD2FLwiE","state":{"status":"completed","input":{"command":"git rev-parse HEAD && git rev-parse --git-common-dir && git rev-parse --show-toplevel && git status --short","workdir":"/tmp/opencode/sots-final-research-engine"},"output":"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\n/home/alex/sots-engine/.git\n/tmp/opencode/sots-final-research-engine\n M CONTRIBUTING.md\n M README.md\n M docs/S-standalone.md\n M src/app/turn.cpp\n M src/game/sim/CMakeLists.txt\n M src/mars/rng/mt19937.cpp\n M src/mars/rng/mt19937.h\n M tests/app/CMakeLists.txt\n M tests/app/test_command_replay.cpp\n M tests/app/test_turn.cpp\n M tests/app/test_turn_record.cpp\n M tests/game_config/CMakeLists.txt\n M tests/game_data/CMakeLists.txt\n M tests/game_design/CMakeLists.txt\n M tests/game_design/test_census_saves.cpp\n M tests/game_sim/CMakeLists.txt\n M tests/mars_stream/CMakeLists.txt\n M tests/mars_stream/test_domains.cpp\n M tests/mars_stream/test_rng.cpp\n M tests/mars_stream/test_save.cpp\n M tests/mars_text/CMakeLists.txt\n M tests/mars_vfs/CMakeLists.txt\n M tools/clean_room_check.sh\n?? AGENTS.md\n?? CLAUDE.md\n?? docs/architecture.md\n?? opencode.json\n?? tools/clean_room_check.py\n","metadata":{"output":"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\n/home/alex/sots-engine/.git\n/tmp/opencode/sots-final-research-engine\n M CONTRIBUTING.md\n M README.md\n M docs/S-standalone.md\n M src/app/turn.cpp\n M src/game/sim/CMakeLists.txt\n M src/mars/rng/mt19937.cpp\n M src/mars/rng/mt19937.h\n M tests/app/CMakeLists.txt\n M tests/app/test_command_replay.cpp\n M tests/app/test_turn.cpp\n M tests/app/test_turn_record.cpp\n M tests/game_config/CMakeLists.txt\n M tests/game_data/CMakeLists.txt\n M tests/game_design/CMakeLists.txt\n M tests/game_design/test_census_saves.cpp\n M tests/game_sim/CMakeLists.txt\n M tests/mars_stream/CMakeLists.txt\n M tests/mars_stream/test_domains.cpp\n M tests/mars_stream/test_rng.cpp\n M tests/mars_stream/test_save.cpp\n M tests/mars_text/CMakeLists.txt\n M tests/mars_vfs/CMakeLists.txt\n M tools/clean_room_check.sh\n?? AGENTS.md\n?? CLAUDE.md\n?? docs/architecture.md\n?? opencode.json\n?? tools/clean_room_check.py\n","exit":0,"truncated":false},"title":"git rev-parse HEAD && git rev-parse --git-common-dir && git rev-parse --show-toplevel && git status --short","time":{"start":1789013358005,"end":1789013358145}},"metadata":{"openai":{"itemId":"fc_0bad0b72ed05cd7f016aa22d6dd8e087d1969b38f4b8838379"}},"id":"prt_0898175aa001EM3Q2UWeBOFBDl","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089812884001b5CDF4iuz5c87C"}} +{"type":"tool_use","timestamp":1789013358165,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_eJuFV6fpCQhL2xhEN7idTJvI","state":{"status":"completed","input":{"command":"git rev-parse HEAD && git rev-parse --git-common-dir && git rev-parse --show-toplevel && git status --short","workdir":"/tmp/opencode/sots-final-research-re"},"output":"3bfde5a70d874a723e797a695bbd847fd82c0aa7\n/home/alex/sots-re/.git\n/tmp/opencode/sots-final-research-re\n M README.md\n M campaign/DASHBOARD.md\n M campaign/backlog.md\n M campaign/board.md\n M campaign/open-questions.md\n M findings/00-strategy.md\n M findings/subsystems/nav-classifier-live.md\n M findings/subsystems/research-replace.md\n M guides/method-rules.md\n D scripts/forgejo_campaign.py\n M tools/DASHBOARD_README.md\n M tools/dashboard.py\n D tools/displacement.py\n M tools/gate.sh\n M tools/standalone_report.py\n?? AGENTS.md\n?? CLAUDE.md\n?? campaign/README.md\n?? campaign/agents/\n?? campaign/contract.schema.json\n?? campaign/contracts/\n?? campaign/current.json\n?? campaign/models.json\n?? campaign/pilots/\n?? campaign/research/\n?? campaign/rollout/\n?? guides/multi-agent-workflow.md\n?? guides/windows-lab-housekeeping.md\n?? opencode.json\n?? tools/campaign.py\n?? tools/check_agent_config.py\n?? tools/evidence.py\n?? tools/gate.py\n?? tools/run_agent.py\n?? tools/select_evidence.py\n?? tools/windows-housekeeping/\n?? verify/campaign/\n?? verify/config/\n?? verify/publishing/\n?? verify/results/housekeeping/\n?? verify/tooling/\n","metadata":{"output":"3bfde5a70d874a723e797a695bbd847fd82c0aa7\n/home/alex/sots-re/.git\n/tmp/opencode/sots-final-research-re\n M README.md\n M campaign/DASHBOARD.md\n M campaign/backlog.md\n M campaign/board.md\n M campaign/open-questions.md\n M findings/00-strategy.md\n M findings/subsystems/nav-classifier-live.md\n M findings/subsystems/research-replace.md\n M guides/method-rules.md\n D scripts/forgejo_campaign.py\n M tools/DASHBOARD_README.md\n M tools/dashboard.py\n D tools/displacement.py\n M tools/gate.sh\n M tools/standalone_report.py\n?? AGENTS.md\n?? CLAUDE.md\n?? campaign/README.md\n?? campaign/agents/\n?? campaign/contract.schema.json\n?? campaign/contracts/\n?? campaign/current.json\n?? campaign/models.json\n?? campaign/pilots/\n?? campaign/research/\n?? campaign/rollout/\n?? guides/multi-agent-workflow.md\n?? guides/windows-lab-housekeeping.md\n?? opencode.json\n?? tools/campaign.py\n?? tools/check_agent_config.py\n?? tools/evidence.py\n?? tools/gate.py\n?? tools/run_agent.py\n?? tools/select_evidence.py\n?? tools/windows-housekeeping/\n?? verify/campaign/\n?? verify/config/\n?? verify/publishing/\n?? verify/results/housekeeping/\n?? verify/tooling/\n","exit":0,"truncated":false},"title":"git rev-parse HEAD && git rev-parse --git-common-dir && git rev-parse --show-toplevel && git status --short","time":{"start":1789013358016,"end":1789013358148}},"metadata":{"openai":{"itemId":"fc_0bad0b72ed05cd7f016aa22d6dd8f487d1b360a9e24b7b23e5"}},"id":"prt_0898175b7001XHAjdtn9IpcMkX","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089812884001b5CDF4iuz5c87C"}} +{"type":"tool_use","timestamp":1789013358166,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_JbWp61uqRyj8nHvkRAgiELBv","state":{"status":"completed","input":{"command":"git rev-parse HEAD && git rev-parse --git-common-dir && git status --short","workdir":"/home/alex/sots-re"},"output":"7a780b7f22912a5f835e512f30ca3790c0193b1d\n.git\n M README.md\n M campaign/runtime/runs/active-research-live-record-bridge.json\n M findings/00-strategy.md\n M findings/subsystems/nav-classifier-live.md\n M findings/subsystems/research-replace.md\n M guides/method-rules.md\n D scripts/forgejo_campaign.py\n M tools/DASHBOARD_README.md\n M tools/dashboard.py\n D tools/displacement.py\n M tools/gate.sh\n M tools/standalone_report.py\n?? campaign/runtime/runs/run-472955e277202c411388c66b.json\n?? campaign/runtime/runs/run-472955e277202c411388c66b.jsonl\n?? campaign/runtime/runs/run-472955e277202c411388c66b.stderr.log\n","metadata":{"output":"7a780b7f22912a5f835e512f30ca3790c0193b1d\n.git\n M README.md\n M campaign/runtime/runs/active-research-live-record-bridge.json\n M findings/00-strategy.md\n M findings/subsystems/nav-classifier-live.md\n M findings/subsystems/research-replace.md\n M guides/method-rules.md\n D scripts/forgejo_campaign.py\n M tools/DASHBOARD_README.md\n M tools/dashboard.py\n D tools/displacement.py\n M tools/gate.sh\n M tools/standalone_report.py\n?? campaign/runtime/runs/run-472955e277202c411388c66b.json\n?? campaign/runtime/runs/run-472955e277202c411388c66b.jsonl\n?? campaign/runtime/runs/run-472955e277202c411388c66b.stderr.log\n","exit":0,"truncated":false},"title":"git rev-parse HEAD && git rev-parse --git-common-dir && git status --short","time":{"start":1789013358022,"end":1789013358152}},"metadata":{"openai":{"itemId":"fc_0bad0b72ed05cd7f016aa22d6dd8fc87d19ab4bb64e22427e2"}},"id":"prt_0898175c3001gZf0AlXoas7Z3o","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089812884001b5CDF4iuz5c87C"}} +{"type":"tool_use","timestamp":1789013358166,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_CKTmAeeSXrLr0lwuLZzSfQ9e","state":{"status":"completed","input":{"command":"sha256sum \"dumps/sots.exe\" \"/usr/bin/objdump\" \"campaign/research/research-live-record-bridge.md\" \"campaign/research/research-live-record-addresses.json\" \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json\"","workdir":"/home/alex/sots-re"},"output":"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 dumps/sots.exe\n1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd /usr/bin/objdump\n07f096d4ef2bc0104f52ab7e17727e9bd856393557084bfbd98b455930a00df6 campaign/research/research-live-record-bridge.md\n1bb9364fcb8cda6c3339165ff3f35ab4a6e23ad5355358200465e5fb19c746a1 campaign/research/research-live-record-addresses.json\nb60b5c956968477b6c2a0422115b3bf92942c474af0254a21723e47e45020bf3 verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json\n","metadata":{"output":"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 dumps/sots.exe\n1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd /usr/bin/objdump\n07f096d4ef2bc0104f52ab7e17727e9bd856393557084bfbd98b455930a00df6 campaign/research/research-live-record-bridge.md\n1bb9364fcb8cda6c3339165ff3f35ab4a6e23ad5355358200465e5fb19c746a1 campaign/research/research-live-record-addresses.json\nb60b5c956968477b6c2a0422115b3bf92942c474af0254a21723e47e45020bf3 verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json\n","exit":0,"truncated":false},"title":"sha256sum \"dumps/sots.exe\" \"/usr/bin/objdump\" \"campaign/research/research-live-record-bridge.md\" \"campaign/research/research-live-record-addresses.json\" \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json\"","time":{"start":1789013358028,"end":1789013358156}},"metadata":{"openai":{"itemId":"fc_0bad0b72ed05cd7f016aa22d6dd90487d198a842b798ad9de8"}},"id":"prt_0898175c8001HY9U2bt5L7SfTz","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089812884001b5CDF4iuz5c87C"}} +{"type":"tool_use","timestamp":1789013358175,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_JEOn9FKbEsxfCR2wCznPIjwT","state":{"status":"completed","input":{"command":"python3 tools/campaign.py --state-root /home/alex/sots-re status research-live-record-bridge","workdir":"/home/alex/sots-re"},"output":"[\n {\n \"acceptance\": [\n {\n \"axis\": \"planning\",\n \"criterion\": \"Before ready, publish exact bridge-only source/test ownership, callable entrypoints and calling conventions, generated-address provenance, a bridge-only invocation route, VM/build resources, executable acceptance commands and immutable source/binary/fixture manifests. The route must not call or wire research replacement.\",\n \"id\": \"readiness\"\n },\n {\n \"axis\": \"understanding\",\n \"criterion\": \"Reconcile accepted binary evidence with generated and pure-model facts, including whether EvDsc participates in duplicate equality and whether the callable ObservedTech copy operation begins at 0x0079a150 or an interior site. Every exposed constructor/copy/append/destructor/new/delete operation has an exact ABI and ownership contract.\",\n \"id\": \"abi-reconciliation\"\n },\n {\n \"axis\": \"implementation\",\n \"criterion\": \"An isolated bridge constructs, copies, appends, updates and destroys complete live-layout ObservedTech, TurnEvents and PlayerEvent values using compatible original-runtime allocation services. It never copies raw owning headers and never calls original RecordObservedTech, EventStorage::PostEvent or any research completion root.\",\n \"id\": \"bridge-operations\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Host tests and a fresh leased disposable-VM run positively execute empty, spare and full capacity; short and long strings; repeated observed names; exact duplicate and description-only-different events; normal destruction; and one contained recorded failure path. Preserve per-case operation/allocation/destruction counts and complete resulting records.\",\n \"id\": \"runtime-matrix\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Executable negative controls reject raw string/header transfer, wrong callable entry or convention, mismatched allocator family, missing cleanup, double free, incomplete record fields, forbidden original decision-root calls, zero execution, missing artifacts and source/binary/fixture drift.\",\n \"id\": \"negative-controls\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"A different verifier session reproduces the source/binary/fixture-bound package and at least one meaningful negative control on an integrated tree. Author-only or static-only evidence cannot accept live allocator safety.\",\n \"id\": \"independent-reproduction\"\n }\n ],\n \"baseline\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"checkpoint\": \"campaign/runtime/checkpoints/research-live-record-bridge-7b7432a9c65bd530392291c3.json\",\n \"dependencies\": [\n \"research-completion-abi\"\n ],\n \"effects\": [\n \"Complete 0x2c ObservedTech object fields, owned name string, existing-name update semantics, vector first/last/end and element lifetime across no-growth and growth paths.\",\n \"Complete 0x74 PlayerEvent fields and three independently owned strings, plus complete 0x18 TurnEvents bucket and nested vector lifetime across no-growth and growth paths.\",\n \"Event ID/order, exact duplicate behavior, description-only-different behavior and stale-bucket pruning only as needed to exercise the bridge fixture; no research callback or player-state effects.\",\n \"Allocation, copy, destruction and failure-path counters sufficient to detect leaks, mismatched frees, partial construction and double destruction.\"\n ],\n \"evidence\": [],\n \"id\": \"research-live-record-bridge\",\n \"inputs\": [\n \"Accepted research-completion-abi evidence and handoff, including binary fingerprint and independently reproduced static ownership windows.\",\n \"Original binary /home/alex/sots-re/dumps/sots.exe sha256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841; owner-supplied and never committed.\",\n \"Source-identical paired worktrees /tmp/opencode/sots-final-research-engine and /tmp/opencode/sots-final-research-re at the contract baselines; exact dirty source-content manifests are required before implementation evidence.\",\n \"Disposable VM144 is the preferred runtime fixture guest; verify its current MAC/IP, session/process state and housekeeping immediately before use, then acquire campaign/runtime/leases/vm144.json. VM140 is excluded from this experiment.\",\n \"Required but missing before ready: bridge-only invocation fixture, generated callable-address package, 32-bit shim/toolchain manifest, failure-containment design, executable acceptance checker and per-case expected records.\"\n ],\n \"open_surprises\": [],\n \"original_dependencies\": [\n \"Original MSVCR100 scalar new/delete and narrowly accepted constructor/copy/append/destructor operations are permitted only as declared, counted ABI services.\",\n \"Original RecordObservedTech, EventStorage::PostEvent, ProcessResearch, SetResearched, OnTechResearched and localized string lookup are forbidden in the bridge fixture.\",\n \"The original game process supplies the MSVCR100 runtime and object address space for live tests; this contract does not claim standalone allocator or game-decision replacement.\"\n ],\n \"owner\": {\n \"name\": \"live-record bridge architect\",\n \"role\": \"architecture-review\"\n },\n \"predictions\": [\n \"ObservedTech no-growth append deep-copies one name; growth relocates every existing 0x2c element and destroys the old range without cross-runtime frees.\",\n \"PlayerEvent append deep-copies EvDsc, EvMsg and EvImg independently; full-capacity growth preserves all scalar/default fields and destroys old strings exactly once.\",\n \"Repeated observed name updates the existing record without vector growth; exact duplicate event does not append; description-only-different event does append if the accepted EvDsc equality result is correct.\",\n \"A contained allocation-failure fixture reports failure without an accepted partial record, leaked owned string, mismatched free or exception crossing into an unsafe ABI boundary.\"\n ],\n \"scope\": [\n \"Recover and implement only the live ABI bridge for ObservedTech, TurnEvents and PlayerEvent construction/copy/append/update/destruction plus isolated fixtures and acceptance tooling.\",\n \"First quantum is RE and architecture: reconcile callable boundaries and duplicate semantics, specify failure containment and name exact owned files. No engine implementation or VM mutation until the contract is ready and the operator holds required leases.\",\n \"Runtime validation uses a bridge-only fixture on a disposable clone. It must not wire src/shim/hooks/research.cpp or src/shim/main.cpp and must not execute a research completion workload.\",\n \"Static ABI acceptance is a dependency, not evidence of live safety. Acceptance remains scoped to bridge operations and does not promote research-replacement.\"\n ],\n \"status\": \"needs-revision\",\n \"stop_conditions\": [\n \"Remain proposed while callable ABI, exact ownership, fixture route, manifests, failure containment or executable acceptance is unresolved.\",\n \"Stop affected work and record a surprise on contradictory fresh binary/runtime evidence, binary/source drift, allocator mismatch, exception crossing, unexpected game-decision-root execution, leak/double-free, guest interference or access change.\",\n \"No Ghidra mutation or VM/build-host mutation without explicit assignment and the corresponding canonical lease; never touch VM140 under this contract.\",\n \"No research replacement wiring, delegation, staging, commit, push or destructive canonical worktree operation. Checkpoint every 20 calls/15 minutes and before experiment, handoff or stop.\"\n ],\n \"title\": \"Live ObservedTech and event record ABI bridge\"\n }\n]\n","metadata":{"output":"[\n {\n \"acceptance\": [\n {\n \"axis\": \"planning\",\n \"criterion\": \"Before ready, publish exact bridge-only source/test ownership, callable entrypoints and calling conventions, generated-address provenance, a bridge-only invocation route, VM/build resources, executable acceptance commands and immutable source/binary/fixture manifests. The route must not call or wire research replacement.\",\n \"id\": \"readiness\"\n },\n {\n \"axis\": \"understanding\",\n \"criterion\": \"Reconcile accepted binary evidence with generated and pure-model facts, including whether EvDsc participates in duplicate equality and whether the callable ObservedTech copy operation begins at 0x0079a150 or an interior site. Every exposed constructor/copy/append/destructor/new/delete operation has an exact ABI and ownership contract.\",\n \"id\": \"abi-reconciliation\"\n },\n {\n \"axis\": \"implementation\",\n \"criterion\": \"An isolated bridge constructs, copies, appends, updates and destroys complete live-layout ObservedTech, TurnEvents and PlayerEvent values using compatible original-runtime allocation services. It never copies raw owning headers and never calls original RecordObservedTech, EventStorage::PostEvent or any research completion root.\",\n \"id\": \"bridge-operations\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Host tests and a fresh leased disposable-VM run positively execute empty, spare and full capacity; short and long strings; repeated observed names; exact duplicate and description-only-different events; normal destruction; and one contained recorded failure path. Preserve per-case operation/allocation/destruction counts and complete resulting records.\",\n \"id\": \"runtime-matrix\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Executable negative controls reject raw string/header transfer, wrong callable entry or convention, mismatched allocator family, missing cleanup, double free, incomplete record fields, forbidden original decision-root calls, zero execution, missing artifacts and source/binary/fixture drift.\",\n \"id\": \"negative-controls\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"A different verifier session reproduces the source/binary/fixture-bound package and at least one meaningful negative control on an integrated tree. Author-only or static-only evidence cannot accept live allocator safety.\",\n \"id\": \"independent-reproduction\"\n }\n ],\n \"baseline\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"checkpoint\": \"campaign/runtime/checkpoints/research-live-record-bridge-7b7432a9c65bd530392291c3.json\",\n \"dependencies\": [\n \"research-completion-abi\"\n ],\n \"effects\": [\n \"Complete 0x2c ObservedTech object fields, owned name string, existing-name update semantics, vector first/last/end and element lifetime across no-growth and growth paths.\",\n \"Complete 0x74 PlayerEvent fields and three independently owned strings, plus complete 0x18 TurnEvents bucket and nested vector lifetime across no-growth and growth paths.\",\n \"Event ID/order, exact duplicate behavior, description-only-different behavior and stale-bucket pruning only as needed to exercise the bridge fixture; no research callback or player-state effects.\",\n \"Allocation, copy, destruction and failure-path counters sufficient to detect leaks, mismatched frees, partial construction and double destruction.\"\n ],\n \"evidence\": [],\n \"id\": \"research-live-record-bridge\",\n \"inputs\": [\n \"Accepted research-completion-abi evidence and handoff, including binary fingerprint and independently reproduced static ownership windows.\",\n \"Original binary /home/alex/sots-re/dumps/sots.exe sha256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841; owner-supplied and never committed.\",\n \"Source-identical paired worktrees /tmp/opencode/sots-final-research-engine and /tmp/opencode/sots-final-research-re at the contract baselines; exact dirty source-content manifests are required before implementation evidence.\",\n \"Disposable VM144 is the preferred runtime fixture guest; verify its current MAC/IP, session/process state and housekeeping immediately before use, then acquire campaign/runtime/leases/vm144.json. VM140 is excluded from this experiment.\",\n \"Required but missing before ready: bridge-only invocation fixture, generated callable-address package, 32-bit shim/toolchain manifest, failure-containment design, executable acceptance checker and per-case expected records.\"\n ],\n \"open_surprises\": [],\n \"original_dependencies\": [\n \"Original MSVCR100 scalar new/delete and narrowly accepted constructor/copy/append/destructor operations are permitted only as declared, counted ABI services.\",\n \"Original RecordObservedTech, EventStorage::PostEvent, ProcessResearch, SetResearched, OnTechResearched and localized string lookup are forbidden in the bridge fixture.\",\n \"The original game process supplies the MSVCR100 runtime and object address space for live tests; this contract does not claim standalone allocator or game-decision replacement.\"\n ],\n \"owner\": {\n \"name\": \"live-record bridge architect\",\n \"role\": \"architecture-review\"\n },\n \"predictions\": [\n \"ObservedTech no-growth append deep-copies one name; growth relocates every existing 0x2c element and destroys the old range without cross-runtime frees.\",\n \"PlayerEvent append deep-copies EvDsc, EvMsg and EvImg independently; full-capacity growth preserves all scalar/default fields and destroys old strings exactly once.\",\n \"Repeated observed name updates the existing record without vector growth; exact duplicate event does not append; description-only-different event does append if the accepted EvDsc equality result is correct.\",\n \"A contained allocation-failure fixture reports failure without an accepted partial record, leaked owned string, mismatched free or exception crossing into an unsafe ABI boundary.\"\n ],\n \"scope\": [\n \"Recover and implement only the live ABI bridge for ObservedTech, TurnEvents and PlayerEvent construction/copy/append/update/destruction plus isolated fixtures and acceptance tooling.\",\n \"First quantum is RE and architecture: reconcile callable boundaries and duplicate semantics, specify failure containment and name exact owned files. No engine implementation or VM mutation until the contract is ready and the operator holds required leases.\",\n \"Runtime validation uses a bridge-only fixture on a disposable clone. It must not wire src/shim/hooks/research.cpp or src/shim/main.cpp and must not execute a research completion workload.\",\n \"Static ABI acceptance is a dependency, not evidence of live safety. Acceptance remains scoped to bridge operations and does not promote research-replacement.\"\n ],\n \"status\": \"needs-revision\",\n \"stop_conditions\": [\n \"Remain proposed while callable ABI, exact ownership, fixture route, manifests, failure containment or executable acceptance is unresolved.\",\n \"Stop affected work and record a surprise on contradictory fresh binary/runtime evidence, binary/source drift, allocator mismatch, exception crossing, unexpected game-decision-root execution, leak/double-free, guest interference or access change.\",\n \"No Ghidra mutation or VM/build-host mutation without explicit assignment and the corresponding canonical lease; never touch VM140 under this contract.\",\n \"No research replacement wiring, delegation, staging, commit, push or destructive canonical worktree operation. Checkpoint every 20 calls/15 minutes and before experiment, handoff or stop.\"\n ],\n \"title\": \"Live ObservedTech and event record ABI bridge\"\n }\n]\n","exit":0,"truncated":false},"title":"python3 tools/campaign.py --state-root /home/alex/sots-re status research-live-record-bridge","time":{"start":1789013358034,"end":1789013358171}},"metadata":{"openai":{"itemId":"fc_0bad0b72ed05cd7f016aa22d6dd90c87d1aab09201306ce6b8"}},"id":"prt_0898175ce001LAlf6f23ySM2kE","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089812884001b5CDF4iuz5c87C"}} +{"type":"tool_use","timestamp":1789013358187,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_TymHZhajYjtwLiBYMibinNoc","state":{"status":"completed","input":{"command":"python3 tools/campaign.py --state-root /home/alex/sots-re validate","workdir":"/home/alex/sots-re"},"output":"[\n \"controls-bootstrap\",\n \"launcher-smoke\",\n \"research-completion-abi\",\n \"research-live-record-bridge\",\n \"research-replacement\"\n]\n","metadata":{"output":"[\n \"controls-bootstrap\",\n \"launcher-smoke\",\n \"research-completion-abi\",\n \"research-live-record-bridge\",\n \"research-replacement\"\n]\n","exit":0,"truncated":false},"title":"python3 tools/campaign.py --state-root /home/alex/sots-re validate","time":{"start":1789013358040,"end":1789013358177}},"metadata":{"openai":{"itemId":"fc_0bad0b72ed05cd7f016aa22d6dd91487d194462a670bb93507"}},"id":"prt_0898175d4001p228HtaGlZPY6l","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089812884001b5CDF4iuz5c87C"}} +{"type":"tool_use","timestamp":1789013359485,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_piVZkemCsNd3i8AkD5Yf9aXL","state":{"status":"completed","input":{"command":"opencode models","timeout":120000,"workdir":"/home/alex/sots-re"},"output":"opencode/big-pickle\nopencode/ling-3.0-flash-fin-free\nopencode/mimo-v2.5-free\nopencode/muse-spark-1.2-contributor-free\nopencode/muse-spark-1.3-contributor-free\nopencode/nemotron-3-ultra-free\nopencode/nemotron-3.5-lightning-free\nllamacpp/gemma3-27b\nllamacpp/gpt-oss-20b\nllamacpp/mistral-small-3.2\nllamacpp/qwen3-14b\nllamacpp/qwen3-30b-a3b\nllamacpp/qwen3-32b\nllamacpp/qwen3-8b\nllamacpp/qwen3.6-27b\nllamacpp/qwen3.8-27b\nllamacpp/qwen3.8-27b-abliterated\nllamacpp/qwq-32b\nllamacpp/r1-distill-32b\nllamacpp/r1-distill-32b-48k\nllamacpp/r1-distill-32b-abliterated\nopenai/gpt-5.3-codex-spark\nopenai/gpt-5.4\nopenai/gpt-5.4-fast\nopenai/gpt-5.4-mini\nopenai/gpt-5.4-mini-fast\nopenai/gpt-5.5\nopenai/gpt-5.5-fast\nopenai/gpt-5.6-luna\nopenai/gpt-5.6-luna-fast\nopenai/gpt-5.6-sol\nopenai/gpt-5.6-sol-fast\nopenai/gpt-5.6-terra\nopenai/gpt-5.6-terra-fast\nopenai/gpt-6-astra\nopenai/gpt-6-astra-fast\n","metadata":{"output":"opencode/big-pickle\nopencode/ling-3.0-flash-fin-free\nopencode/mimo-v2.5-free\nopencode/muse-spark-1.2-contributor-free\nopencode/muse-spark-1.3-contributor-free\nopencode/nemotron-3-ultra-free\nopencode/nemotron-3.5-lightning-free\nllamacpp/gemma3-27b\nllamacpp/gpt-oss-20b\nllamacpp/mistral-small-3.2\nllamacpp/qwen3-14b\nllamacpp/qwen3-30b-a3b\nllamacpp/qwen3-32b\nllamacpp/qwen3-8b\nllamacpp/qwen3.6-27b\nllamacpp/qwen3.8-27b\nllamacpp/qwen3.8-27b-abliterated\nllamacpp/qwq-32b\nllamacpp/r1-distill-32b\nllamacpp/r1-distill-32b-48k\nllamacpp/r1-distill-32b-abliterated\nopenai/gpt-5.3-codex-spark\nopenai/gpt-5.4\nopenai/gpt-5.4-fast\nopenai/gpt-5.4-mini\nopenai/gpt-5.4-mini-fast\nopenai/gpt-5.5\nopenai/gpt-5.5-fast\nopenai/gpt-5.6-luna\nopenai/gpt-5.6-luna-fast\nopenai/gpt-5.6-sol\nopenai/gpt-5.6-sol-fast\nopenai/gpt-5.6-terra\nopenai/gpt-5.6-terra-fast\nopenai/gpt-6-astra\nopenai/gpt-6-astra-fast\n","exit":0,"truncated":false},"title":"opencode models","time":{"start":1789013358058,"end":1789013359482}},"metadata":{"openai":{"itemId":"fc_0bad0b72ed05cd7f016aa22d6dd91887d18706b3f3fdf3dd06"}},"id":"prt_0898175d9001m5aK2JVjt98bGN","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089812884001b5CDF4iuz5c87C"}} +{"type":"step_finish","timestamp":1789013359527,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089817ba4001wJA4ClHorAl67Q","reason":"tool-calls","snapshot":"5d9815b146d67d7fbfa966c28b3757e23bd22f6d","messageID":"msg_089812884001b5CDF4iuz5c87C","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":41203,"input":8265,"output":391,"reasoning":163,"cache":{"write":0,"read":32384}},"cost":0}} +{"type":"step_start","timestamp":1789013361282,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08981827e001iMGTCnZ0LxJCRz","messageID":"msg_089817bcf0013nOtPWrROY0nly","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"0b8f12f6feaebf34e5083ff20f990e2a64ba880c","type":"step-start"}} +{"type":"tool_use","timestamp":1789013375706,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"grep","callID":"call_F1BJ8IpivPPaSrgTFqVJy9j3","state":{"status":"completed","input":{"pattern":"885380|00885380|TurnEvents","path":"/home/alex/sots-re/findings","include":"*.md"},"output":"Found 48 matches\n/home/alex/sots-re/findings/objects/save-editor-structs.md:\n Line 321: serializers (`EventStorage` 0x00825cc0, `TurnEvents` 0x00825bb0/0x00825c40, `PlayerEvent`\n\n Line 327: Events : n x TurnEvents (0x18 bytes each)\n\n\n/home/alex/sots-re/findings/objects/struct-recovery.md:\n Line 320: | 0x29c | -0x104 | `EventStorage` (inline) | `Events` | {`EvNxID`@+0x14, `Events` vector@+4} |\n\n\n/home/alex/sots-re/findings/objects/wire-schema-channel.md:\n Line 128: (`EventStorage` → `TurnEvents` → `Event`, three nesting levels), `ShipRecs`, `sprjs`, `civr`/`spe`,\n\n\n/home/alex/sots-re/findings/objects/svsctob-writers.md:\n Line 93: | `BuildTurnEvents` 0x007db780 | 0x007db81f / 0x007dbd9d | 0x1a / 0x1b | after the tail |\n\n\n/home/alex/sots-re/findings/subsystems/t34-observed-designs.md:\n Line 57: `ServerPlayer+0x254/+0x258`\"). Its two other callers are `BuildTurnEvents` `0x007db780` and\n\n\n/home/alex/sots-re/findings/subsystems/events.md:\n Line 38: | 0x04 | `TurnEvents*` | `Events._Myfirst` | 0x008853aa `mov edx,[esi+8]; sub edx,[esi+4]` |\n\n Line 39: | 0x08 | `TurnEvents*` | `Events._Mylast` | same |\n\n Line 40: | 0x0c | `TurnEvents*` | `Events._Myend` | vector growth in 0x00885427+ |\n\n Line 51: ### `TurnEvents` (0x18 bytes) — new\n\n Line 96: `TurnEvents` write 0x00825bb0 / read 0x00825c40: `EvTurn` then the nested collection `Events`.\n\n Line 104: Events : n × TurnEvents\n\n Line 174: 8. `TurnEvents* bucket = GetOrCreateTurnBucket(turn)` — 0x00885380.\n\n Line 180: ### `EventStorage::FindDuplicate` — 0x00825d40, `__thiscall (TurnEvents*, PlayerEvent*)`, `ret 8`\n\n Line 190: ### `EventStorage::GetOrCreateTurnBucket` — 0x00885380, `__thiscall (int turn)`, `ret 4`\n\n Line 424: * `TurnEvents`' vptr/vtable contents beyond slot 0 (the virtual dtor used by the pruner).\n\n Line 431: read/`0x8b9d50` direction and the two `TurnEvents` directions were disassembled. The field\n\n\n/home/alex/sots-re/findings/subsystems/ui-screen-map.md:\n Line 79: | S16 | **Events (turn news)** | `GUI/Events/*` (61 tga: per-race `*_tv_events512_1-4`, `special_events512_1-14`, `EventBG`, `EventButtons`, `static_screen`, `*_Victory/_Defeated`, `Draw`, `Progression*`); ~250 `EVENT_*` sprites; `EVENTMSG_*` (415), `EVENTSUM_*` (247), `TOOLTIP_EVENTS_CLOSE`; `UI_NEWS_OPEN/CLOSE/CHANGE` | one \"TV\" card per event with prev/next; ticker summaries | `EventPanel`, `EventPanel_ForLists`, `EventsDisplayPanel`, `EventsTickerPanel`, `EventsHistoryPanel/List` (+`Item`) | `EventStorage` (+`Event`, `TurnEvents`), `StrategyEvent`, `SystemEvent`, `SETurnEvents`, `SNMGenericEvent` |\n\n Line 155: 3. **Processing** (`PROCESSING_TITLE`, `SEProcessTurn`, `SEAIPrepareTurn`, AI `SNMRunAI`): movement (`SEFleetArrived`), builds (`SEBuildCompleted`), research, trade, plague/morale, scenario scripts, then `SETurnResults` + `SETurnEvents`.\n\n\n/home/alex/sots-re/findings/subsystems/strategic-turn-internals.md:\n Line 155: | `TRADE_SECTOR_SIZE` | 0x007c4140, 0x00841bf0, 0x008483c0, `BuildTurnEvents` | sector partition of the map |\n\n\n/home/alex/sots-re/findings/control-flow/turn-spine.md:\n Line 198: → StrategyServer::GenerateTurnEvents 0x007dc640 → BuildTurnEvents 0x007db780 (EventStorage::TurnEvents per player, SynchronizePlayer) [SETurnEvents]\n\n Line 204: → (SELastPlaying / SEResumePlaying / SETurnEvents drive the UI_LAST_PLAYING \"new turn\" sound and the S16 events list)\n\n\n/home/alex/sots-re/findings/control-flow/turn-driver.md:\n Line 377: | `FUN_0081b390` phase 0 | a **previous-turn snapshot pass**: per system copies \"current\" words into shadow words (`+0x20c/0x210/0x214 ← +0x68/0x6c/0x70`, `+0x150.. ← +0x120..`, `+0xc9 ← +0xc8`), per player `+0x188 ← Sav(+0x284)` and `+0x18c ← +0x138`. Also called from `BuildTurnEvents`, so it is what \"changed since last turn\" is diffed against. Draw-free, event-free |\n\n\n/home/alex/sots-re/findings/control-flow/combat-done-tail.md:\n Line 31: GenerateTurnEvents(S)\n\n Line 408: | **discard** | `GenerateTurnEvents` 0x007dc640, first statement | `FUN_007c5610(&scratch, S->+0x304, S->+0x308)` — erase-to-empty of `S+0x304` |\n\n Line 429: ## 5B. Turn events — and `BuildTurnEvents` is not what its name says\n\n Line 431: `GenerateTurnEvents` 0x007dc640 is **122 bytes** and does four things:\n\n Line 439: if (S->+0x128 & 4) BuildTurnEvents(S) ; almost always false\n\n Line 442: `BuildTurnEvents` 0x007db780 (3701 B) is **not a per-turn event builder**. Its whole body is under\n\n Line 446: `SETurnEvents` (0x28), `SESyncDesign` (0x19), plus `SynchronizePlayer`. It **references no `EVENT_*` string\n\n Line 454: `SETurnEvents` (id **0x28**) is a **verbatim copy of one player's own `EventStorage` bucket for the current\n\n Line 456: `{ SE vptr, TurnEvents vptr, bucket->EvTurn, copy of bucket->Events }`, sent with\n\n Line 459: **`sizeof(EventStorage::TurnEvents) == 0x18`, four ways**: the serializer touches `+0x04` (`int EvTurn`) and\n\n Line 468: `EventStorage::TurnEvents` at `+0x08` (vptr `+0x08`, `EvTurn` `+0x0c`, `vector` `+0x10/+0x14/+0x18`),\n\n Line 472: ### 5B.1 `TurnEvents_Write` and `TurnEvents_Read` are swapped in Ghidra\n\n Line 474: 0x00825bb0 (labelled `TurnEvents_Write`) calls `0x008b9d20`, which invokes stream vtable slot `+0x10`, passes\n\n Line 476: `TurnEvents_Read`) calls `0x008b9d50`, which invokes slot `+0x24` and pushes the member's *value* — that is\n\n Line 485: *Source: 5A is instruction-verified end to end (I re-read `GenerateTurnEvents`, the `ApplyEncounterResults`\n\n Line 486: tail and the `SynchronizePlayer` dispatch from the bytes myself). 5B's `BuildTurnEvents` phase list and the\n\n Line 505: 6. GenerateTurnEvents(S) 0x007dc640 <-- TURN EVENTS\n\n Line 578: turn computes — the tail's 36 phases, `ApplyEncounterResults`, `GenerateTurnEvents` — has already run and\n\n Line 647: | **turn events** | not here, and mostly not per-turn either: `GenerateTurnEvents` 0x007dc640 is a 122-byte flush, and the `BuildTurnEvents` it may call is the load/rejoin resync. See §5B |\n\n Line 650: A whole-image direct-call reachability search from 0x007d92a0 to each of `BuildTurnEvents` 0x007db780,\n\n Line 651: `GenerateTurnEvents` 0x007dc640, `SETurnResults::Create` 0x007a7ae0, the copy ctor 0x007c24d0,\n\n Line 652: `vector::resize` 0x007cd2a0, `SynchronizePlayer` 0x007c6220 and the `TurnEvents` serializers\n\n Line 670: `SETurnResults`, **0x28** `SETurnEvents`, **0x29** `SEResetMap`, **0x2a** `SEInitTrade`.\n\n Line 774: `SaveGame_WriteFile`, `OpenSaveStream`, `IsSinglePlayerHost`, `GenerateTurnEvents`, the\n\n Line 787: `TurnEvents` embedded in an `SETurnResults` is filled on a normal turn (§5B, labelled hypothesis).\n","metadata":{"matches":48,"truncated":false},"title":"885380|00885380|TurnEvents","time":{"start":1789013375693,"end":1789013375703}},"metadata":{"openai":{"itemId":"fc_0e9fc23ee289467f016aa22d7f3d8087d18acd1021fdc44980"}},"id":"prt_08981ba5a001Y6AgAju4zU8rBi","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089817bcf0013nOtPWrROY0nly"}} +{"type":"tool_use","timestamp":1789013375772,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"grep","callID":"call_zxYOvD87HYJ48xsLu3F8hYL2","state":{"status":"completed","input":{"pattern":"885380|00885380","path":"/home/alex/sots-re/verify/results/research-completion-abi-independent","include":"*"},"output":"Found 5 matches\n/home/alex/sots-re/verify/results/research-completion-abi-independent/reproduce_run_eba7860308317f839eb35392.py:\n Line 29: (\"turn-get-create\", \"D\", 0x00885380, 0x00885500),\n\n\n/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/turn-get-create.stdout.txt:\n Line 7: 00885380 <.text+0x484380>:\n\n Line 8: 885380:\t55 \tpush ebp\n\n\n/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/manifest.json:\n Line 304: \"--start-address=0x00885380\",\n\n Line 308: \"start\": \"0x00885380\",\n","metadata":{"matches":5,"truncated":false},"title":"885380|00885380","time":{"start":1789013375755,"end":1789013375771}},"metadata":{"openai":{"itemId":"fc_0e9fc23ee289467f016aa22d7f3d9487d18a5427bcc1267664"}},"id":"prt_08981bae5001eafwKjWlu9P7m6","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089817bcf0013nOtPWrROY0nly"}} +{"type":"tool_use","timestamp":1789013375809,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_rJGDepGAaeNbCnsRbVHq5Xha","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/runs/run-472955e277202c411388c66b.json"},"output":"/home/alex/sots-re/campaign/runtime/runs/run-472955e277202c411388c66b.json\nfile\n\n1: {\n2: \"actor\": \"live-record bridge architect\",\n3: \"checkpoint_session\": \"run-472955e277202c411388c66b\",\n4: \"command\": [\n5: \"opencode\",\n6: \"run\",\n7: \"--format\",\n8: \"json\",\n9: \"--model\",\n10: \"openai/gpt-5.6-sol\",\n11: \"--agent\",\n12: \"sots-lead\",\n13: \"Start a FRESH bounded campaign quantum (40 steps). No delegation.\\nRole=architecture-review; requested model=openai/gpt-5.6-sol; actor=live-record bridge architect; checkpoint session=run-472955e277202c411388c66b.\\nCanonical state root: /home/alex/sots-re\\nContract: /home/alex/sots-re/campaign/contracts/research-live-record-bridge.json\\nLatest checkpoint: campaign/runtime/checkpoints/research-live-record-bridge-7b7432a9c65bd530392291c3.json\\nEngine worktree: /tmp/opencode/sots-final-research-engine\\nRE worktree: /tmp/opencode/sots-final-research-re\\nRead canonical campaign/README.md, contract, latest checkpoint and open surprises before work. Verify source/worktree/resource identities. Only edit owned scope. Missing state means blocked. Do not commit, stage, push or mutate lab resources without explicit authority and a lease. Checkpoint every 20 tool calls or 15 minutes, before experiments, compaction and stopping; persist under canonical campaign/ using tools/campaign.py with the session above, exact model, actor and role. Include observations versus decisions, source identities, artifact paths, tests, blockers and ONE exact next action. Fresh checkpoint at quantum end is mandatory. Record a surprise and pause affected work if assumptions are falsified. Sol loop authority: perform approved architecture/planning work in owned scope. Do not rely on chat resume or automatic compaction.\"\n14: ],\n15: \"config\": {\n16: \"canonical_files\": {\n17: \"campaign/agents/analyst.md\": \"895c41509016038b3f72c4a68608c4101511e69c5bf410e379286da1a6202952\",\n18: \"campaign/agents/implementer.md\": \"eb5581051a92b3d2b9ddd947812b1c02ff6a0b5e7619e7674adc26701e9a3d91\",\n19: \"campaign/agents/lab.md\": \"48f1765ebdcb2015e631ad91428f65735ff899e119134b652f70788ff2eae5b8\",\n20: \"campaign/agents/lead.md\": \"8fcfe52be845ed98a172afb47ea888b19bb7bffa80f7b50ace58d2bb66924220\",\n21: \"campaign/agents/resolver.md\": \"742c36dc8567669d462566d6121eed42fcff5bff34e8eff466e92249f7ca195f\",\n22: \"campaign/agents/verifier.md\": \"e467fc644e4e37d631a7a4e35038d9d3d0498491f1d7811d61d99271ff345c6b\",\n23: \"campaign/models.json\": \"00f959ff4ce16ba22f6befa7a9d495eb85d62d9e8001b1e1345eaae0e11b6e48\",\n24: \"opencode.json\": \"027ab29992ab9a5a6ee20bd649ac002f5f3397030d18b070eb949cc42179de99\"\n25: },\n26: \"effective\": {\n27: \"agent_sha256\": \"b02d472ebe2f40dc62e3513b13294967e7cd2082dddcad8388a159e22ee0cd6a\",\n28: \"sha256\": \"058e686030acbf2d6135031ce9b6178f24aff646241c3d44456e76db6570151c\"\n29: },\n30: \"expanded_prompt_sha256\": \"761069d92e23d25f187f4d93d0fd45daff411085e85bcf644709d8f7ceb3ab9c\",\n31: \"overlay\": {\n32: \"agent\": {\n33: \"sots-lead\": {\n34: \"model\": \"openai/gpt-5.6-sol\",\n35: \"permission\": {\n36: \"bash\": \"allow\",\n37: \"external_directory\": {\n38: \"*\": \"deny\",\n39: \"/home/alex/sots-re\": \"allow\",\n40: \"/home/alex/sots-re/*\": \"allow\",\n41: \"/tmp/opencode/sots-final-research-engine\": \"allow\",\n42: \"/tmp/opencode/sots-final-research-engine/*\": \"allow\",\n43: \"/tmp/opencode/sots-final-research-re\": \"allow\",\n44: \"/tmp/opencode/sots-final-research-re/*\": \"allow\"\n45: },\n46: \"glob\": \"allow\",\n47: \"grep\": \"allow\",\n48: \"list\": \"allow\",\n49: \"question\": \"deny\",\n50: \"read\": \"allow\",\n51: \"task\": \"deny\"\n52: },\n53: \"prompt\": \"You are the SOTS lead/integrator, running GPT-5.6 Sol. Read AGENTS.md, campaign/README.md,\\nguides/multi-agent-workflow.md, selected contracts, latest checkpoints and open surprises.\\nState lives in the explicitly selected canonical RE repository. Do not reconstruct it from chat.\\n\\nOwn architecture, task boundaries, model allocation, independent acceptance and integration.\\nSelect work by dependencies unlocked and complete write sets, not row/leaf counts. At most two\\nimplementation slices after the pilot. Delegate through tools/run_agent.py with explicit role,\\ncontract, state root and paired worktrees. No nested worker delegation or implicit model fallback.\\nValidate model availability before assigning work. Astra problem-resolution sessions are\\nallowed when explicitly allocated. Keep exclusive file and resource ownership clear.\\n\\nWrite acceptance before implementation. Require independent verification and integrated source-\\nbound evidence. Only you publish current pointers/projections. Never promote a historical claim\\nwithout the stated workload, identity, coverage and reproduction. Host passed != full acceptance.\\n\\nHandle surprises as experiments: record evidence, block affected work, examine instrument/source\\nidentity, list surviving/qualified/overturned claims, choose one discriminating check, update\\ncontracts and invalidate affected results. Do not hide contradictions in appended caveats.\\n\\nCheckpoint every 20 tool calls/15min and before compaction, experiments, handoff or stop. At a\\n40-step quantum boundary persist exact next action and finish; next session resumes from RE state.\\nFollow explicit user authorization for commits/pushes; this rollout authorizes neither.\\n\",\n54: \"steps\": 40\n55: }\n56: },\n57: \"model\": \"openai/gpt-5.6-sol\"\n58: },\n59: \"path\": \"/home/alex/sots-re/opencode.json\",\n60: \"sha256\": \"027ab29992ab9a5a6ee20bd649ac002f5f3397030d18b070eb949cc42179de99\"\n61: },\n62: \"contract\": \"research-live-record-bridge\",\n63: \"cwd\": \"/tmp/opencode/sots-final-research-re\",\n64: \"id\": \"run-472955e277202c411388c66b\",\n65: \"max_steps\": 40,\n66: \"requested_model\": \"openai/gpt-5.6-sol\",\n67: \"resolution_only\": false,\n68: \"role\": \"architecture-review\",\n69: \"schema\": \"sots-run/1\",\n70: \"source_before\": {\n71: \"engine\": {\n72: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n73: \"files\": {\n74: \".gitignore\": {\n75: \"mode\": 420,\n76: \"sha256\": \"5103c9533f0d31fea29c0cc85d543692af84a697416dfa7557e31c9843210145\"\n77: },\n78: \"AGENTS.md\": {\n79: \"mode\": 420,\n80: \"sha256\": \"7d1d4bc05c35e3354a77b3c8d5d2c04fb9d6658d09e87bc814a50bc3d2033fb7\"\n81: },\n82: \"CLAUDE.md\": {\n83: \"mode\": 420,\n84: \"sha256\": \"15d60c3d592302a2854df8bf6d39c0a578c22b9273a633447e10b76fd76291f5\"\n85: },\n86: \"CMakeLists.txt\": {\n87: \"mode\": 420,\n88: \"sha256\": \"6e9791511ea23bf8bf5f7f58617a7e77bbe5006829609e425e565c11c1e8d7ed\"\n89: },\n90: \"CMakePresets.json\": {\n91: \"mode\": 420,\n92: \"sha256\": \"fcd1dfe3989ee4f56fa3e419059e1db5621922165edf05f13cfe8e5d786d8bb0\"\n93: },\n94: \"CONTRIBUTING.md\": {\n95: \"mode\": 420,\n96: \"sha256\": \"26a381fe08feb51f861655f77de4e558f056d1dba79162a2e82513a92d0e6506\"\n97: },\n98: \"LICENSE\": {\n99: \"mode\": 420,\n100: \"sha256\": \"eedebad43ea495111bf4451d78cb440309d90a733d6a36445699dde0629f1858\"\n101: },\n102: \"README.md\": {\n103: \"mode\": 420,\n104: \"sha256\": \"66c2437fe4f074e6499de50b0d5f0d013bc290333f4d4bf554b541261885a0c1\"\n105: },\n106: \"cmake/toolchain-mingw-i686.cmake\": {\n107: \"mode\": 420,\n108: \"sha256\": \"231c0b79868a77d54cc6619f0b4ea18454964a1a078806f44a6ffe3fb7741a9b\"\n109: },\n110: \"docs/A2-alliance-and-modcount.md\": {\n111: \"mode\": 420,\n112: \"sha256\": \"0c0c45c31d5d64124f3b91a161f8a2f4732c8a5d7f6bc524baf4d59f8a191701\"\n113: },\n114: \"docs/AC-predictions.md\": {\n115: \"mode\": 420,\n116: \"sha256\": \"ab9e41714abdbc32e620d8a2068be8ebd2fc8898ba149113c66ccda248b4bcda\"\n117: },\n118: \"docs/B1.md\": {\n119: \"mode\": 420,\n120: \"sha256\": \"42b61bbfc135cdcd0f1a32f63164b88e67106400de7f08f543f118eccd814364\"\n121: },\n122: \"docs/B2.md\": {\n123: \"mode\": 420,\n124: \"sha256\": \"87dfd333ee15681a3aa4de58cf1b14ff8240e75afabc05012e0f28531cb4b8b8\"\n125: },\n126: \"docs/B3.md\": {\n127: \"mode\": 420,\n128: \"sha256\": \"fb65c41037b6cd6252c67e5244d492a3a17ea4ba2ddae821d49fe0a879528518\"\n129: },\n130: \"docs/B4.md\": {\n131: \"mode\": 420,\n132: \"sha256\": \"22547b3d2960684e52a380fb07f43a75bf50aebf93cede689f297cf38f4a012d\"\n133: },\n134: \"docs/B6-ship-construction.md\": {\n135: \"mode\": 420,\n136: \"sha256\": \"9c5c4fd2059af965e317c9db5b7fbfc440397ddfcdc5bf7860115f6a8a0532ab\"\n137: },\n138: \"docs/CB-capture.md\": {\n139: \"mode\": 420,\n140: \"sha256\": \"ce45a9082588051eda7438016dc66eb28bb4afda98b82cdc20102c4ca53529f0\"\n141: },\n142: \"docs/CB-predictions.md\": {\n143: \"mode\": 420,\n144: \"sha256\": \"ba51538b018cbb403978f97ad45d4743937d49ba55c8f15d7af8f8e4aa441f0f\"\n145: },\n146: \"docs/E-events.md\": {\n147: \"mode\": 420,\n148: \"sha256\": \"de98795aadb1617eab91815ebc34818bef8b52c36ba18b4521170065bfd2d201\"\n149: },\n150: \"docs/EV-events.md\": {\n151: \"mode\": 420,\n152: \"sha256\": \"e7d9536cd23f5d800dc97f68167bb738088a16136004419f28de92d7fe1bcfb9\"\n153: },\n154: \"docs/G-wire-schema.md\": {\n155: \"mode\": 420,\n156: \"sha256\": \"19db69ae359ddbd2a0509d02f1c616f939e0428480a8bb33c81f69145323a591\"\n157: },\n158: \"docs/G3-civilian-growth.md\": {\n159: \"mode\": 420,\n160: \"sha256\": \"38ea3a8ddc3fdca258294d949c4cd2af1a930cdd9ba612d5e8fb48bc446bdf30\"\n161: },\n162: \"docs/H-probes.md\": {\n163: \"mode\": 420,\n164: \"sha256\": \"f23e4d4cbc8c9a3000a0a58ed994dddd95466cee1ec45e961685e86dde4dc54f\"\n165: },\n166: \"docs/L1-predictions.md\": {\n167: \"mode\": 420,\n168: \"sha256\": \"af97dbc9f15b9c2e6f223c89bac17826056fa4f3bced3c01513c1ad4d9ac1754\"\n169: },\n170: \"docs/L2-predictions.md\": {\n171: \"mode\": 420,\n172: \"sha256\": \"18213ce5f3375d478f266de85c38c2b04ca2ae8ab4a2023780dca161fa14f460\"\n173: },\n174: \"docs/L3-predictions.md\": {\n175: \"mode\": 420,\n176: \"sha256\": \"d1c9c0006079f47ef0d3371f4a2c2df2fe4f08ebdad0f8a12d1b0de35b15ae7e\"\n177: },\n178: \"docs/L4-ai-orders.md\": {\n179: \"mode\": 420,\n180: \"sha256\": \"b04127c5158a882f252b2b6e8afb2d131f0de623cc0c62c86c612af803d75835\"\n181: },\n182: \"docs/L4-predictions.md\": {\n183: \"mode\": 420,\n184: \"sha256\": \"6a194ae336920f13d8e4a44549cbe26be959beef81cffed88ef03b3cec563e44\"\n185: },\n186: \"docs/L5-live-verification.md\": {\n187: \"mode\": 420,\n188: \"sha256\": \"4c1abe57c516b36f383390164a362f53294feda222c623283f1e6091d8ef0ec4\"\n189: },\n190: \"docs/M-movefleet.md\": {\n191: \"mode\": 420,\n192: \"sha256\": \"718338edb8cbe8a449793b22889776a1783d1d0ade553c03973ea45d426eb426\"\n193: },\n194: \"docs/M0.md\": {\n195: \"mode\": 420,\n196: \"sha256\": \"e121c380612a42727e3a973d8cf50f884d660bb4b43bc494258dc1c6b6f26705\"\n197: },\n198: \"docs/M1.md\": {\n199: \"mode\": 420,\n200: \"sha256\": \"e0a36cf109d096748e55522eb8d7a261764cbf5ab5daf9342ba903d0f2bc6704\"\n201: },\n202: \"docs/M2.md\": {\n203: \"mode\": 420,\n204: \"sha256\": \"25f9cad74eeee40afc2117333232384e1cf387b2b9132856650234c5ba593c61\"\n205: },\n206: \"docs/N-output-term.md\": {\n207: \"mode\": 420,\n208: \"sha256\": \"3b8317e22714ef66b35efceee6fa0f7057c37f7c6e34d93cc5047cd1dd07ecde\"\n209: },\n210: \"docs/P-events-wiring.md\": {\n211: \"mode\": 420,\n212: \"sha256\": \"72ee81b71b4c08ae451721c785dc5e01ed4ca43ff0fd474befca09dcc41599ba\"\n213: },\n214: \"docs/PAR-predictions.md\": {\n215: \"mode\": 420,\n216: \"sha256\": \"16e8fbbac5001db0b10d766858c0ae2ea9619f37043a0883ee46da80d4dd4846\"\n217: },\n218: \"docs/PL-players-residual.md\": {\n219: \"mode\": 420,\n220: \"sha256\": \"9bc29bc030ee8b0e00e496b91fe8fefac15179ce9fd01c0a11a7b5b5335356dc\"\n221: },\n222: \"docs/R-recapture.md\": {\n223: \"mode\": 420,\n224: \"sha256\": \"73c62ab20c5eca5e87e1d18aefa60a2a2acd75cbc7510d31b27a2cd4ebcec38f\"\n225: },\n226: \"docs/RB-predictions.md\": {\n227: \"mode\": 420,\n228: \"sha256\": \"c1016781505c10aa304d4710c5389918b744ab20cbd8cb54dce462c3dc28e4e7\"\n229: },\n230: \"docs/S-standalone.md\": {\n231: \"mode\": 420,\n232: \"sha256\": \"8979b0a9fef33a55ca15bf3ef78064e72df332033354329ff2471ad6648e4a8e\"\n233: },\n234: \"docs/SD-predictions.md\": {\n235: \"mode\": 420,\n236: \"sha256\": \"a76a568ccac7409e3cb3acef724dbe6b618d4ec30259bce33594098daff8b6a0\"\n237: },\n238: \"docs/SV-script-objects.md\": {\n239: \"mode\": 420,\n240: \"sha256\": \"80ebd120fa9cf5e68ac4d33117966805b917d24bc339f7d82be972a280449409\"\n241: },\n242: \"docs/T-turn-driver.md\": {\n243: \"mode\": 420,\n244: \"sha256\": \"a4096b8223cea87ce77cc64014c489d4625ed36fd3aec1358565ca5cf91d4e1e\"\n245: },\n246: \"docs/U-unlock.md\": {\n247: \"mode\": 420,\n248: \"sha256\": \"5cbe3d8fb4bd30d029cb2db006a4dd3c6819885f55f434afb4bc8ae79b526901\"\n249: },\n250: \"docs/V-eventlive.md\": {\n251: \"mode\": 420,\n252: \"sha256\": \"ebd08c000f42211e87958278f03d6891475cd8557658e1a42105cf5ed45a1aa1\"\n253: },\n254: \"docs/W2-predictions.md\": {\n255: \"mode\": 420,\n256: \"sha256\": \"9972e27467cf0fe23a358818caf7edb979de25697d3aa4b97a2135ca79fe34f5\"\n257: },\n258: \"docs/W2-watchpoints.md\": {\n259: \"mode\": 420,\n260: \"sha256\": \"f8634c5f977b2ca9b2e07df105cba09adacaeb6fb4cf046e41e5e1e42b83b107\"\n261: },\n262: \"docs/W3-predictions.md\": {\n263: \"mode\": 420,\n264: \"sha256\": \"211cedc2d924bcf47cbb73166b408e9a27d795863ffc90aa2adbb85beeadffcf\"\n265: },\n266: \"docs/W3-watchpoints.md\": {\n267: \"mode\": 420,\n268: \"sha256\": \"568e818e66d95f9079a1270c4d9b900c7eecfd5b5a3b4ba5a4aa0c843666f061\"\n269: },\n270: \"docs/Y-standalone-rng-and-tail.md\": {\n271: \"mode\": 420,\n272: \"sha256\": \"49d926cc505d6ba07753748366e42ec32493a15c76bfaa45b2f66f52adc57f2b\"\n273: },\n274: \"docs/Z-tail-rng.md\": {\n275: \"mode\": 420,\n276: \"sha256\": \"3ed2b40f728bcedd663c305cce13481bad1429af03fd5215ee3189161cfbd7f1\"\n277: },\n278: \"docs/architecture.md\": {\n279: \"mode\": 420,\n280: \"sha256\": \"ba4732eb8a4c7054df5136a72d1774e4f1e919a517a1c74e975903fdd254422f\"\n281: },\n282: \"docs/game-data.md\": {\n283: \"mode\": 420,\n284: \"sha256\": \"2124ea3d117b4ee6f48660d9711c1b4ef844a4ba37af7cea3766914d77bd6b23\"\n285: },\n286: \"docs/game-design.md\": {\n287: \"mode\": 420,\n288: \"sha256\": \"5b40349ad446596b534567a5683cf9ea99709d9eff231890e0f6256c755f0272\"\n289: },\n290: \"docs/game-effects.md\": {\n291: \"mode\": 420,\n292: \"sha256\": \"e1e0abc162602daaac255fe44b11c511adf45d4ef5fa188268411829b0817e5d\"\n293: },\n294: \"docs/game-sim.md\": {\n295: \"mode\": 420,\n296: \"sha256\": \"d1e14770d252fd2f320a7baa1ad54c90d955cfc840f477d1700cfbbadcec730e\"\n297: },\n298: \"docs/harness-audit.md\": {\n299: \"mode\": 420,\n300: \"sha256\": \"931d92cc744ec6ca3d961fbe7fe96dcab28060446058eb78be9835ebbce73ed0\"\n301: },\n302: \"docs/mars-parse.md\": {\n303: \"mode\": 420,\n304: \"sha256\": \"d9fa3029ade4f9401c59fb88f4520a1ef3af9a9c6f2bb5d1a0ebfa1d5061d6dd\"\n305: },\n306: \"docs/mars-rng.md\": {\n307: \"mode\": 420,\n308: \"sha256\": \"f2a01b88f105d07d0d0d514430e76da7632e5c8e4e3bbd6c99a25f1dc5daa89c\"\n309: },\n310: \"docs/mars-stream.md\": {\n311: \"mode\": 420,\n312: \"sha256\": \"61a16c9b7c143b4bc2edee473cf1f8bd06c1a5144c120bc563e5ec6d770dd0e7\"\n313: },\n314: \"docs/mars-text.md\": {\n315: \"mode\": 420,\n316: \"sha256\": \"2b6c7d2eecbb684160e7565d1d7224eb0d2f7e9a41f4d807095a182ea605dcf1\"\n317: },\n318: \"docs/mars-vfs.md\": {\n319: \"mode\": 420,\n320: \"sha256\": \"1508c2a070d56f4fdabac3c2ef1fd08d3f93d7a3045d59158340ee22a6ff1b62\"\n321: },\n322: \"docs/shim-trace.md\": {\n323: \"mode\": 420,\n324: \"sha256\": \"8a059c1ba761b366449c2db8ef248656da917050ed28855c6d812ecf91672fa5\"\n325: },\n326: \"include/generated/sots_addresses.h\": {\n327: \"mode\": 420,\n328: \"sha256\": \"fc34ac4ee8cc7fea91c447b5715841dc6d3afe36f9aff04e88b6c29b5b64f448\"\n329: },\n330: \"include/generated/sots_stream_schema.h\": {\n331: \"mode\": 420,\n332: \"sha256\": \"13446ce54d60a0b29adcefb51aeb5127a0a3ca8de2bd1665e4778ba5354bff8c\"\n333: },\n334: \"opencode.json\": {\n335: \"mode\": 420,\n336: \"sha256\": \"9af560c2a49945e964beb689649c13775e2aaaf691af270a565d6c6826f76c15\"\n337: },\n338: \"src/app/CMakeLists.txt\": {\n339: \"mode\": 420,\n340: \"sha256\": \"142999eded2ff494745ce550af76a8f8caf0269ad22d6d5650e7a79c19d22717\"\n341: },\n342: \"src/app/alliance.cpp\": {\n343: \"mode\": 420,\n344: \"sha256\": \"37d6e57f7ce82a69a595cf474e7be7a544efef210f960e9cdfeab6168826bac9\"\n345: },\n346: \"src/app/alliance.h\": {\n347: \"mode\": 420,\n348: \"sha256\": \"08fa8dc96286c7cb15a90a987fa22b17e195522e642ab8303b659ca58739eafd\"\n349: },\n350: \"src/app/command_replay.cpp\": {\n351: \"mode\": 420,\n352: \"sha256\": \"739059930cd3a5f1d988522ff50c60d8657664a66c9fe19b019833f417b55824\"\n353: },\n354: \"src/app/command_replay.h\": {\n355: \"mode\": 420,\n356: \"sha256\": \"956429a742554cada2124de49c6955e27b0e5d68db87dcc95b22c75ec7bd93c2\"\n357: },\n358: \"src/app/construction_phase.cpp\": {\n359: \"mode\": 420,\n360: \"sha256\": \"025cd0ea1a7badd567f7f1cd59330b1e01149b5c5094575fbd438683658bb0df\"\n361: },\n362: \"src/app/construction_phase.h\": {\n363: \"mode\": 420,\n364: \"sha256\": \"a4d39994096683a1144eb20282b205cf71e2045873cc15b53bdac214ab1e9a5e\"\n365: },\n366: \"src/app/event_phase.cpp\": {\n367: \"mode\": 420,\n368: \"sha256\": \"80717fa7c7f108004d5250f12b6c994752a1a55d7f32c7d3ebf29f2869118c90\"\n369: },\n370: \"src/app/event_phase.h\": {\n371: \"mode\": 420,\n372: \"sha256\": \"54077268fe4705270dc06bdc46a6fd9384fb5e0d36da19e55ea149b478d8cf34\"\n373: },\n374: \"src/app/growth_phase.cpp\": {\n375: \"mode\": 420,\n376: \"sha256\": \"5924d2641fc98d902b56a3e6417d7a57d70c1564718951b098e7d14376ebc4e3\"\n377: },\n378: \"src/app/growth_phase.h\": {\n379: \"mode\": 420,\n380: \"sha256\": \"8222ef811abff161c8f891a331a52e527de54fbf468949d1e0e188adc473ae3b\"\n381: },\n382: \"src/app/main.cpp\": {\n383: \"mode\": 420,\n384: \"sha256\": \"adfd7dd177439bfd57509532bcf0f37779281ae9309daa93efe1ada3ef3f57a7\"\n385: },\n386: \"src/app/observed_phase.cpp\": {\n387: \"mode\": 420,\n388: \"sha256\": \"31fb99678d60de6901b4bb1b251abe2421453264653cf5f7bd297a376c2b23f3\"\n389: },\n390: \"src/app/observed_phase.h\": {\n391: \"mode\": 420,\n392: \"sha256\": \"f88fc22a5cb21a43e196d7fae09446126635d3284e6b398bca234f265234b693\"\n393: },\n394: \"src/app/phase_catalog.cpp\": {\n395: \"mode\": 420,\n396: \"sha256\": \"e3da16e6d499b7836953251d940ce171792ada208156ca583277298f305fc316\"\n397: },\n398: \"src/app/phase_catalog.h\": {\n399: \"mode\": 420,\n400: \"sha256\": \"da6fff506002079d8277358d0095981dc260449dc19677a533ef25ab709aed87\"\n401: },\n402: \"src/app/report.cpp\": {\n403: \"mode\": 420,\n404: \"sha256\": \"da3feb6043f6e68cb9ea763f7242ac153a5944c59f448284faf34c64ad6b9228\"\n405: },\n406: \"src/app/report.h\": {\n407: \"mode\": 420,\n408: \"sha256\": \"0495d164458ddb7187ce3105f82cee06cf9cf6c5b73ed8cb6e434e1d2e0f8481\"\n409: },\n410: \"src/app/script_phase.cpp\": {\n411: \"mode\": 420,\n412: \"sha256\": \"61eeeeb7eac3145cee938ccfc564b231b6968ce7926fb9599c136134f0d5ea91\"\n413: },\n414: \"src/app/script_phase.h\": {\n415: \"mode\": 420,\n416: \"sha256\": \"e52006ff939fa945870fafdc2412ba67e3d5e1cc2aa51c0ca0a884ce630aa1b7\"\n417: },\n418: \"src/app/trade_raid.cpp\": {\n419: \"mode\": 420,\n420: \"sha256\": \"07d6bb904e655bb644ff6df2e417adb448487bb67acb62240ec5ecc978eabebf\"\n421: },\n422: \"src/app/trade_raid.h\": {\n423: \"mode\": 420,\n424: \"sha256\": \"10e0b1460eb7810f1fcd61e67d47333373f06bdacf5a11372958a84a91084e52\"\n425: },\n426: \"src/app/treaty.cpp\": {\n427: \"mode\": 420,\n428: \"sha256\": \"317463fc0e2a6ca7eaa4e2f096c3821655a4623de4085af44d951ed500837575\"\n429: },\n430: \"src/app/treaty.h\": {\n431: \"mode\": 420,\n432: \"sha256\": \"836395a85868cbd6b7fda8f1d304128fd7cc6952aff37003e8e119a5ce0251f9\"\n433: },\n434: \"src/app/turn.cpp\": {\n435: \"mode\": 420,\n436: \"sha256\": \"a626ddf80a340de50b70f09bf91c0180d255c533e65edce1532d807fcf5109b4\"\n437: },\n438: \"src/app/turn.h\": {\n439: \"mode\": 420,\n440: \"sha256\": \"85c87aab5c5b5ad5a6a34cc9db710b1cf77dec1a7145ba1e0b5e17fff9a6a237\"\n441: },\n442: \"src/app/turn_record.cpp\": {\n443: \"mode\": 420,\n444: \"sha256\": \"e1eb0b253e964ab4f8be1333f81e193ac64109544da384cbdf21858cbf931e4d\"\n445: },\n446: \"src/app/turn_record.h\": {\n447: \"mode\": 420,\n448: \"sha256\": \"78d8d2948bd04bff5e7d2c55955b726f1cd7552a765e608e390209e03856f76d\"\n449: },\n450: \"src/app/visibility_phase.cpp\": {\n451: \"mode\": 420,\n452: \"sha256\": \"34d9df699af3e57823ec8457c442408da854028f9b95db5820171caad0823131\"\n453: },\n454: \"src/app/visibility_phase.h\": {\n455: \"mode\": 420,\n456: \"sha256\": \"60db50f5b98c5edafc86a33f982a7773acc291c1a18f9cf23323e53ebadcde27\"\n457: },\n458: \"src/game/ai/CMakeLists.txt\": {\n459: \"mode\": 420,\n460: \"sha256\": \"f51509a2699f02ecab9faa1f75feaa38c299e6bbbe08bfbe5e8e86722037f6eb\"\n461: },\n462: \"src/game/ai/agent.cpp\": {\n463: \"mode\": 420,\n464: \"sha256\": \"e1bbddc3deb797d62ae9c2b24bc811ec9379699992dd838694bd5eadc73feef7\"\n465: },\n466: \"src/game/ai/agent.h\": {\n467: \"mode\": 420,\n468: \"sha256\": \"48aa26f32d52a3f8f4e37ed5c6986b1e87a8fe1e780d5314514eb5c75b8bc244\"\n469: },\n470: \"src/game/ai/apply_order.cpp\": {\n471: \"mode\": 420,\n472: \"sha256\": \"122ffea1090382fd01bc505fd30c59557dfec2c9846609d00da6e80109da2253\"\n473: },\n474: \"src/game/ai/apply_order.h\": {\n475: \"mode\": 420,\n476: \"sha256\": \"a3b7a1ca26243ba0fdd801b78978175db6f76e297a72876fa0a35e12f38e09b3\"\n477: },\n478: \"src/game/ai/command_capture.cpp\": {\n479: \"mode\": 420,\n480: \"sha256\": \"cb9a1d37af9f66e78d368e03aeabec01e4d48f76aaa30348a51f4c70a915e4ec\"\n481: },\n482: \"src/game/ai/command_capture.h\": {\n483: \"mode\": 420,\n484: \"sha256\": \"921599e5b2aa8b773db00134618efde687c7d9ba739abd787ec7666f4cfeb78f\"\n485: },\n486: \"src/game/ai/orders.cpp\": {\n487: \"mode\": 420,\n488: \"sha256\": \"1b775eb1a030bc6e81e5b7702cbf8ad56288860276e8a0475da66f7367542640\"\n489: },\n490: \"src/game/ai/orders.h\": {\n491: \"mode\": 420,\n492: \"sha256\": \"c2a3b8fe1a7c46a1c1104bc87be8696d9f0782cc304d27cb96d0ec6b182f12ae\"\n493: },\n494: \"src/game/ai/tasks.cpp\": {\n495: \"mode\": 420,\n496: \"sha256\": \"b05878ccd94c375aac8723c8ea9499f77b98fb94acc5a75a15fa1948dbe83c76\"\n497: },\n498: \"src/game/ai/tasks.h\": {\n499: \"mode\": 420,\n500: \"sha256\": \"b1de4f89c1679ccfdeaa8b852cb2ce407b71dcd1bffacf97df389a69f6ae3a5d\"\n501: },\n502: \"src/game/ai/turn_order.cpp\": {\n503: \"mode\": 420,\n504: \"sha256\": \"858b12c51c4509e16a22a6c080d1c6b47bd23d2b8a11f84a48d34f24c4635f22\"\n505: },\n506: \"src/game/ai/turn_order.h\": {\n507: \"mode\": 420,\n508: \"sha256\": \"3e76710928fc2df52fd8312abfb8f23a2ce162f8e0856f46672a4f46b5b4384f\"\n509: },\n510: \"src/game/combat/CMakeLists.txt\": {\n511: \"mode\": 420,\n512: \"sha256\": \"4b3a05c45360e312d6c1d96c1f05a60437d19d2046257835e0d6c70ecc4ce115\"\n513: },\n514: \"src/game/combat/retreat.cpp\": {\n515: \"mode\": 420,\n516: \"sha256\": \"eede86a4d25289dfc9132d5776b11114a109179e5aa10f2b985035e5b22d7a1f\"\n517: },\n518: \"src/game/combat/retreat.h\": {\n519: \"mode\": 420,\n520: \"sha256\": \"5fc3e002a5f1944f29c74f862ff942b894e40e88afafd52358373ada36644d7d\"\n521: },\n522: \"src/game/config/CMakeLists.txt\": {\n523: \"mode\": 420,\n524: \"sha256\": \"c746021654505c92be333cefb9df994431679d40d8d654b937feb950684830f7\"\n525: },\n526: \"src/game/config/config_loader.cpp\": {\n527: \"mode\": 420,\n528: \"sha256\": \"d903ba06747e5b7d66400d03ee1f0a9896bf4268bb200dec0b5c8599dbd3d3a1\"\n529: },\n530: \"src/game/config/config_loader.h\": {\n531: \"mode\": 420,\n532: \"sha256\": \"fda71dee1a4e2b896760e9ac344768e176ea4f0a08609c7d651033a1ee698085\"\n533: },\n534: \"src/game/config/manifest_loader.cpp\": {\n535: \"mode\": 420,\n536: \"sha256\": \"dbe33dc5ae03db18f3b2c01b48cc1fced10f2cca599270c0a028321a7d7dd7c6\"\n537: },\n538: \"src/game/config/manifest_loader.h\": {\n539: \"mode\": 420,\n540: \"sha256\": \"68e508b9e6d1222d980b22ae826b127693fdf0821b6539ed9e62a8ec031aa5b5\"\n541: },\n542: \"src/game/config/msvc_sort.h\": {\n543: \"mode\": 420,\n544: \"sha256\": \"17fcb13bb49a634c80be38299617c6c16fd8addedfa88c53d67242c90b811716\"\n545: },\n546: \"src/game/data/CMakeLists.txt\": {\n547: \"mode\": 420,\n548: \"sha256\": \"677ba0dd0ebb8176f4e7c41d5550f2ccedd56d49e7e4acb1eb0a7970e9e98a51\"\n549: },\n550: \"src/game/data/block.cpp\": {\n551: \"mode\": 420,\n552: \"sha256\": \"f61312708c715ce525ed1a01e71f1446d31fc96ca1cc51f5bd863cac51702200\"\n553: },\n554: \"src/game/data/block.h\": {\n555: \"mode\": 420,\n556: \"sha256\": \"f14155dfca5fd270ad6b4d462458aa8cd5c5edf5e19da4df492ee2907e99eccc\"\n557: },\n558: \"src/game/data/catalog.cpp\": {\n559: \"mode\": 420,\n560: \"sha256\": \"7799ad3b31d43236cacbc51c3ab086265927f98b1346005a8adfed2796178ebc\"\n561: },\n562: \"src/game/data/catalog.h\": {\n563: \"mode\": 420,\n564: \"sha256\": \"80223146bcdbf4808776f974df7e5f46b120a021979a22f50b5ce2d74ec16d6e\"\n565: },\n566: \"src/game/data/common.cpp\": {\n567: \"mode\": 420,\n568: \"sha256\": \"e58ba046844be11c61f7f7e501829b48b4f16e7c0ab78f10fcf9189c133cf040\"\n569: },\n570: \"src/game/data/common.h\": {\n571: \"mode\": 420,\n572: \"sha256\": \"d1ac8375c1be133a98a383e01598f393f194e1bd9790d1c1230bc6121a45a187\"\n573: },\n574: \"src/game/data/fields.h\": {\n575: \"mode\": 420,\n576: \"sha256\": \"4209df368ad776b3c24350246acf47ad874fcbbe292fb16f9ca7dacaef2f08fb\"\n577: },\n578: \"src/game/data/shipsection.cpp\": {\n579: \"mode\": 420,\n580: \"sha256\": \"82d5ba9be2a446e50934b0b9a03b16839bd3acd1a967d9441180a1baaa271264\"\n581: },\n582: \"src/game/data/shipsection.h\": {\n583: \"mode\": 420,\n584: \"sha256\": \"bcf100f83691226c4993dd7866b67a0b48d9b4bc6841463fbf07f0f26bf9dca0\"\n585: },\n586: \"src/game/data/strings.cpp\": {\n587: \"mode\": 420,\n588: \"sha256\": \"6d983d3a4cb4284215301409587136fb765a5e6a4c9f4b988e01d710c0815f59\"\n589: },\n590: \"src/game/data/strings.h\": {\n591: \"mode\": 420,\n592: \"sha256\": \"fb292bd472ed68eb4a5e93484f3f92d8a0ae8661e6a61ca4b417ab889c508055\"\n593: },\n594: \"src/game/data/techtree.cpp\": {\n595: \"mode\": 420,\n596: \"sha256\": \"2ac6e39faeef808c97375f3b8a3ee219fcab8cc09921f0ed8d82eef7374eb9ea\"\n597: },\n598: \"src/game/data/techtree.h\": {\n599: \"mode\": 420,\n600: \"sha256\": \"504946c255405ab28d20d0ed6c095b3b63f0e6865afe0e8bb0707e607c363007\"\n601: },\n602: \"src/game/data/turrets.cpp\": {\n603: \"mode\": 420,\n604: \"sha256\": \"ce7db50ef10825e168fee2bf57c4b6038dd1a356be7ada9ed6a4f6a4f31b07a4\"\n605: },\n606: \"src/game/data/turrets.h\": {\n607: \"mode\": 420,\n608: \"sha256\": \"f01603ad32b0ffdf891c88cc54c39a725c6a436f8dda79ac23e7505e59853c64\"\n609: },\n610: \"src/game/data/weapon.cpp\": {\n611: \"mode\": 420,\n612: \"sha256\": \"accb5aab2081babb26443cd257f292909e19440c40346e098144148922f5d3f6\"\n613: },\n614: \"src/game/data/weapon.h\": {\n615: \"mode\": 420,\n616: \"sha256\": \"63aeb670ae7b8a1fd6daa35ed60ebe41a87f62a6ec2a12f44b13f9052c55b009\"\n617: },\n618: \"src/game/design/CMakeLists.txt\": {\n619: \"mode\": 420,\n620: \"sha256\": \"42692f7917d99fb5b9e392c2d0f1d908b2bc5c61fc2e5687fddbd665dafe0bef\"\n621: },\n622: \"src/game/design/defaults.cpp\": {\n623: \"mode\": 420,\n624: \"sha256\": \"8efa0b79646525375739a1acfe77e75d5ae6b669d1ecaa01f49f3f5183caf528\"\n625: },\n626: \"src/game/design/defaults.h\": {\n627: \"mode\": 420,\n628: \"sha256\": \"20af056628f362a4d5ad7ba6277135697718197ec6844ae0ae85bf06d4cd818b\"\n629: },\n630: \"src/game/design/design.cpp\": {\n631: \"mode\": 420,\n632: \"sha256\": \"e166281c52a6d92fed8810b38bd736cbd2a324f15d290a39a539d01ff35ead20\"\n633: },\n634: \"src/game/design/design.h\": {\n635: \"mode\": 420,\n636: \"sha256\": \"7e936c78ca10c3a49470da67f1659cf4ee323d14d50b5b2c1ada08edfa8f6997\"\n637: },\n638: \"src/game/design/hull.cpp\": {\n639: \"mode\": 420,\n640: \"sha256\": \"554b0ef6955ac230c7eca29ea2d94d60b5fbc91f34d9ff457091577c8602268a\"\n641: },\n642: \"src/game/design/hull.h\": {\n643: \"mode\": 420,\n644: \"sha256\": \"997018e59c9d78ee1da7e7cb9561b94b76befacbe348a4ce3301c5f22b582461\"\n645: },\n646: \"src/game/design/rules.cpp\": {\n647: \"mode\": 420,\n648: \"sha256\": \"a623984f9ab40c354320051fec00bab2c7e3728c2c90082b3b8051294b906319\"\n649: },\n650: \"src/game/design/rules.h\": {\n651: \"mode\": 420,\n652: \"sha256\": \"70a8a42fe82e9805cbb957717688ab9f9eb3438226f6e0d696ef5f7a51529229\"\n653: },\n654: \"src/game/design/stats.cpp\": {\n655: \"mode\": 420,\n656: \"sha256\": \"c05f420a00026289be8693c0d80bbd2354ce354a91a78459cfc8e70467326c54\"\n657: },\n658: \"src/game/design/stats.h\": {\n659: \"mode\": 420,\n660: \"sha256\": \"ba0a5d3bcc98f5c3e64579d42da70bfdf563773ce2fe1e6bfa2b36b14c453fe5\"\n661: },\n662: \"src/game/effects/CMakeLists.txt\": {\n663: \"mode\": 420,\n664: \"sha256\": \"2e20f138f98bc69653c8360a26f99f3f43f35beedea5e90dfd7e9721e7550f89\"\n665: },\n666: \"src/game/effects/tech_effects.cpp\": {\n667: \"mode\": 420,\n668: \"sha256\": \"40358c2af37543ca3ab09b4d0433cdb4b0d2d212b45f648739cc86e979501604\"\n669: },\n670: \"src/game/effects/tech_effects.h\": {\n671: \"mode\": 420,\n672: \"sha256\": \"ef70addf2caf1e3abf36ac9d878a8db37d2adbac370957f5b6a0b5825564a0d6\"\n673: },\n674: \"src/game/effects/tech_id.cpp\": {\n675: \"mode\": 420,\n676: \"sha256\": \"11cd652e81a52e86d72541a5c3de77bb50de3d31226272e0d1856e5a15b7f9a6\"\n677: },\n678: \"src/game/effects/tech_id.h\": {\n679: \"mode\": 420,\n680: \"sha256\": \"f37752250c80c9c75ef8e144e4646dc1290a2cc8ce72d9a37949c6408996df86\"\n681: },\n682: \"src/game/events/CMakeLists.txt\": {\n683: \"mode\": 420,\n684: \"sha256\": \"9b1f14a3801a991ba065e0e39ae2e3fa3966018e8a98fcceeddeaca3909328e2\"\n685: },\n686: \"src/game/events/event_log.cpp\": {\n687: \"mode\": 420,\n688: \"sha256\": \"3b131879ec5e81cd1ba2bb0cbdfa6e05775ed77684f4ed7a8f5cfae87da1e7b1\"\n689: },\n690: \"src/game/events/event_log.h\": {\n691: \"mode\": 420,\n692: \"sha256\": \"2ff415b1120ca3f28421006a566280fb977027cfa3f209bdba0986350376a953\"\n693: },\n694: \"src/game/events/research_events.cpp\": {\n695: \"mode\": 420,\n696: \"sha256\": \"9520b20eba2a2b4bd5925f13b420d526fc610d06aae7ffad314e3002c4f5a253\"\n697: },\n698: \"src/game/events/research_events.h\": {\n699: \"mode\": 420,\n700: \"sha256\": \"b87340c6b14e9de97e5bc0c5a4cbd74e54bab2831c60edf88c0e42ff5218ea22\"\n701: },\n702: \"src/game/nav/CMakeLists.txt\": {\n703: \"mode\": 420,\n704: \"sha256\": \"79cc0ba25c6d49f7784663ace033d01ab3d85a5d8015fe2f466f8f1a3065983a\"\n705: },\n706: \"src/game/nav/pathplan.cpp\": {\n707: \"mode\": 420,\n708: \"sha256\": \"04cfe8fca5be565f5443c8f1402eb0072221dbd63f70855e35b3eeea752f1775\"\n709: },\n710: \"src/game/nav/pathplan.h\": {\n711: \"mode\": 420,\n712: \"sha256\": \"28b51f737b458679888e555d985b9e8d41adf8ba91fa0980b5e83668758c86e7\"\n713: },\n714: \"src/game/sim/CMakeLists.txt\": {\n715: \"mode\": 420,\n716: \"sha256\": \"4b3085116f88c903a137abef6806891f7b7245dcb031153df7a5465dd2521116\"\n717: },\n718: \"src/game/sim/colony.cpp\": {\n719: \"mode\": 420,\n720: \"sha256\": \"e0f0bf15d87b6ac2e92053cbfe0869c0dbf9465d90a9bae5456bb46883423b77\"\n721: },\n722: \"src/game/sim/colony.h\": {\n723: \"mode\": 420,\n724: \"sha256\": \"357dce21440140a6cf836a3c12175ebb5bb6706c37d5ecd315a4ee4937725b47\"\n725: },\n726: \"src/game/sim/construction.cpp\": {\n727: \"mode\": 420,\n728: \"sha256\": \"8cf4792f487162ca3599f16f0e92d73b4c9549046044548c5aecf202dd564130\"\n729: },\n730: \"src/game/sim/construction.h\": {\n731: \"mode\": 420,\n732: \"sha256\": \"a7f201101ad704f1994f809259ad60f780760fa36174d99a1ccd9299447f5460\"\n733: },\n734: \"src/game/sim/economy.cpp\": {\n735: \"mode\": 420,\n736: \"sha256\": \"1e0b17b589496a6139e8ca10fe20553050be7c965a02daf8b520dd5020412d89\"\n737: },\n738: \"src/game/sim/economy.h\": {\n739: \"mode\": 420,\n740: \"sha256\": \"6f3e33e803bb49367d4cee3c8ef6186f04b79e7cf901047fc48d933108ab6d2a\"\n741: },\n742: \"src/game/sim/movement.cpp\": {\n743: \"mode\": 420,\n744: \"sha256\": \"80c64b2148304b84683cf3860ced1354f5c29c923bbc50cc5001030dd85c2cd2\"\n745: },\n746: \"src/game/sim/movement.h\": {\n747: \"mode\": 420,\n748: \"sha256\": \"9a6b2b4960428634d8004cd5694ed6a7a10ab28fd9c0e2a9824ede3e201e9441\"\n749: },\n750: \"src/game/sim/numeric.h\": {\n751: \"mode\": 420,\n752: \"sha256\": \"88f715192ea322ace4eea13ab5ae55f7f41600262025208e468b5259220522c2\"\n753: },\n754: \"src/game/sim/observed.cpp\": {\n755: \"mode\": 420,\n756: \"sha256\": \"43d29a9fe1195dcc0b7e6101ea05bfd076f03636f9f68de473539c83db0ddd22\"\n757: },\n758: \"src/game/sim/observed.h\": {\n759: \"mode\": 420,\n760: \"sha256\": \"0224b5bf341f30ff0e98d910547261b6732bdc0c5339b520e26fc51939c1269f\"\n761: },\n762: \"src/game/sim/player_turn.cpp\": {\n763: \"mode\": 420,\n764: \"sha256\": \"beb1b2ed434df3727e676ac56e751beff87fa98e4a42e4657cc54d41025773a2\"\n765: },\n766: \"src/game/sim/player_turn.h\": {\n767: \"mode\": 420,\n768: \"sha256\": \"f24f8f5e161486575cd341c2f5bfed46fa6983263edcf2320e9c24860b4be51a\"\n769: },\n770: \"src/game/sim/research.cpp\": {\n771: \"mode\": 420,\n772: \"sha256\": \"95f2d325544ee018ec8d0f945e91b4172f6ba406f95e19f86c4fb9aac6b22a89\"\n773: },\n774: \"src/game/sim/research.h\": {\n775: \"mode\": 420,\n776: \"sha256\": \"e27a311e977afb2e01242938dc8d928e9a67d1f761965e191cf907e05c1c86e9\"\n777: },\n778: \"src/game/sim/rng.h\": {\n779: \"mode\": 420,\n780: \"sha256\": \"f7e5bbced3dbd37deb49a00b52d05f7c751501d654dabd645ecff7447355929c\"\n781: },\n782: \"src/game/sim/scriptobjects.cpp\": {\n783: \"mode\": 420,\n784: \"sha256\": \"a4f9a1b49e4ba22a88726efbbea2f355b40a3c006734d9150d509a344720a4d2\"\n785: },\n786: \"src/game/sim/scriptobjects.h\": {\n787: \"mode\": 420,\n788: \"sha256\": \"210d0eb51780df70a9bca133664429589c03ea33e4524e2c182801d4b4a5c74b\"\n789: },\n790: \"src/game/sim/species.h\": {\n791: \"mode\": 420,\n792: \"sha256\": \"83b44c0600b99c5acb72a3484bb0708cfba765cdf594aede596a3c47d5ee6298\"\n793: },\n794: \"src/game/sim/techgraph.cpp\": {\n795: \"mode\": 420,\n796: \"sha256\": \"81f8f1120eb1fa4a77752bd2e0917df3dd76372461416526ae510bd697944ef8\"\n797: },\n798: \"src/game/sim/techgraph.h\": {\n799: \"mode\": 420,\n800: \"sha256\": \"b2fc90666080a6b7f27dc9290eef17774d57742c2a1f9e1f77d94c7fa5689f6e\"\n801: },\n802: \"src/game/sim/tuning.h\": {\n803: \"mode\": 420,\n804: \"sha256\": \"4acfad4098de951cc3a94ca25a2f200e96caba1836bf7441de5a2b458c022194\"\n805: },\n806: \"src/game/sim/visibility.cpp\": {\n807: \"mode\": 420,\n808: \"sha256\": \"25f86a34f9a98d2439672283a446ba1804973dae3f6d9aa3692342b05f3a3ac0\"\n809: },\n810: \"src/game/sim/visibility.h\": {\n811: \"mode\": 420,\n812: \"sha256\": \"783896489a2a9ec8bce617b141bfb631e8ef92f958be7b5c2ca64fd75774471f\"\n813: },\n814: \"src/mars/parse/CMakeLists.txt\": {\n815: \"mode\": 420,\n816: \"sha256\": \"76c290b786a3e73387ec8c574fd5a0dbeb6e629adbe970426314f16497f59fa9\"\n817: },\n818: \"src/mars/parse/blocks.cpp\": {\n819: \"mode\": 420,\n820: \"sha256\": \"e60baa8127b21cf6eb6c8e2aa02c6a72c6403dbc29e8480ff658bf184266675b\"\n821: },\n822: \"src/mars/parse/blocks.h\": {\n823: \"mode\": 420,\n824: \"sha256\": \"1e8b76919a584d1d7fb01c5ff5e3a7173e8456eca892d61f0c6b7bb8f02f33b1\"\n825: },\n826: \"src/mars/parse/effect.cpp\": {\n827: \"mode\": 420,\n828: \"sha256\": \"beb76a841a3d42dbc157413384ff1a0312a7068d6b22020eadcee2e1cbbc81f9\"\n829: },\n830: \"src/mars/parse/effect.h\": {\n831: \"mode\": 420,\n832: \"sha256\": \"aaa5c83f2d8eef24667bf05d0f71b2a346f2fce09dc9a45d7a5197c894922e44\"\n833: },\n834: \"src/mars/parse/result.h\": {\n835: \"mode\": 420,\n836: \"sha256\": \"58cff456e353550abcd0f52e031d9d70f2b7a975f4762cfccc64eb6bc748dbd9\"\n837: },\n838: \"src/mars/parse/script.h\": {\n839: \"mode\": 420,\n840: \"sha256\": \"69a493268c47a08672694489a51c3ff0a7f9aa870e5ae5a93d47ba033cf21ad3\"\n841: },\n842: \"src/mars/parse/value.cpp\": {\n843: \"mode\": 420,\n844: \"sha256\": \"712133e4d725649f5461e6a46bac6842b0751ac3fb7e1c468f826638ec58f623\"\n845: },\n846: \"src/mars/parse/value.h\": {\n847: \"mode\": 420,\n848: \"sha256\": \"60d692648dab7e3e216c8d9e6ef212592ba1df1a98260b1b4599354742947b38\"\n849: },\n850: \"src/mars/rng/CMakeLists.txt\": {\n851: \"mode\": 420,\n852: \"sha256\": \"dceb4bc0fb35c95a12ed9aa36380e79aa75641b15ecc06e4289d39824087e2dc\"\n853: },\n854: \"src/mars/rng/mt19937.cpp\": {\n855: \"mode\": 420,\n856: \"sha256\": \"0c60775e9437b8eaad49f67a96001c81947c8d9e6d2472e28b2b490515bac95b\"\n857: },\n858: \"src/mars/rng/mt19937.h\": {\n859: \"mode\": 420,\n860: \"sha256\": \"300836ab26fd1a4d913b395f08770bb2c248029ef1b80ecbf0c4d886adca2b8e\"\n861: },\n862: \"src/mars/stream/CMakeLists.txt\": {\n863: \"mode\": 420,\n864: \"sha256\": \"95ffbb0c519e55b7423ab048a3019e295b7ef3a3e9506044ef2e68569df9601a\"\n865: },\n866: \"src/mars/stream/archive.h\": {\n867: \"mode\": 420,\n868: \"sha256\": \"84d9ae2bb3d6f444b3933b3816cafd12caee8619d2219f19cd10d32cfad01d2e\"\n869: },\n870: \"src/mars/stream/bytes.h\": {\n871: \"mode\": 420,\n872: \"sha256\": \"9f5869952c9d6b925db32995a417ba292a0c1a672fc3850400150afb8163b3f1\"\n873: },\n874: \"src/mars/stream/dump.cpp\": {\n875: \"mode\": 420,\n876: \"sha256\": \"1b5bba86b2f85b1718276f8db557601320ab8a165d5fbfe93e51219cca5a1c16\"\n877: },\n878: \"src/mars/stream/dump.h\": {\n879: \"mode\": 420,\n880: \"sha256\": \"a69af300ae7083fb0a5362edbe7eecd5273c8807884aff9fbedd7ae606c7fc4f\"\n881: },\n882: \"src/mars/stream/gzip.cpp\": {\n883: \"mode\": 420,\n884: \"sha256\": \"20d71fd50bd637f78e7ebb5217bc6607ebc257535cc4720e640e4badb72f1644\"\n885: },\n886: \"src/mars/stream/gzip.h\": {\n887: \"mode\": 420,\n888: \"sha256\": \"6bce52c615eb120999adb1a6f7f06baa813a033c28e02e6d79ce77f5b7a929c9\"\n889: },\n890: \"src/mars/stream/node.h\": {\n891: \"mode\": 420,\n892: \"sha256\": \"eb43054c8592db107557979c7fc8612dc0646ba5d62f154b9b7f96a37ba2e860\"\n893: },\n894: \"src/mars/stream/probe.h\": {\n895: \"mode\": 420,\n896: \"sha256\": \"6411d0976d1e785e8c32af6ecfe1a797c0a9aa02314e5e42fae3ed7b3449ae13\"\n897: },\n898: \"src/mars/stream/reader.cpp\": {\n899: \"mode\": 420,\n900: \"sha256\": \"90f19cbcdb0fc50795895ea1eff09cd6c0ab3069095c49b276f3894e3d6bcbb3\"\n901: },\n902: \"src/mars/stream/reader.h\": {\n903: \"mode\": 420,\n904: \"sha256\": \"900508d97be1cbe566d77f2c91755d3db387535cd9574e41704b6d940daa1ff4\"\n905: },\n906: \"src/mars/stream/save.cpp\": {\n907: \"mode\": 420,\n908: \"sha256\": \"6db367b3ea570a4d0ee831160e3f44cef380f58de163b9d9205ca7449e51e049\"\n909: },\n910: \"src/mars/stream/save.h\": {\n911: \"mode\": 420,\n912: \"sha256\": \"b3a411600d98b42e9014e1fc3cbc3eac5f32f4393e9f72036d3d840c802bb469\"\n913: },\n914: \"src/mars/stream/savedump_main.cpp\": {\n915: \"mode\": 420,\n916: \"sha256\": \"8dc687f009d9f455e9bfa4019f03df72e058cebbb3e9ae5bcbb308285470208c\"\n917: },\n918: \"src/mars/stream/schema.h\": {\n919: \"mode\": 420,\n920: \"sha256\": \"b1cd64bc43076a3e5893239bd2eb5c216e7293ee541322ef74fb106928183a05\"\n921: },\n922: \"src/mars/stream/shapes.h\": {\n923: \"mode\": 420,\n924: \"sha256\": \"45ee379ff8100b6bc27427a2580d7aae19ff3d5d0aa27f682d156ae6a92d0a6d\"\n925: },\n926: \"src/mars/stream/writer.cpp\": {\n927: \"mode\": 420,\n928: \"sha256\": \"54804b06266e34793f5294f9a96d2939d641915a0f60fc4e3b4170bfcea6e083\"\n929: },\n930: \"src/mars/stream/writer.h\": {\n931: \"mode\": 420,\n932: \"sha256\": \"921cd44ea30e0b9944825b1d2caafc46edc8f2c23506c807050ed9208a397340\"\n933: },\n934: \"src/mars/text/CMakeLists.txt\": {\n935: \"mode\": 420,\n936: \"sha256\": \"dccb93b37c21c9b3c3b35a50ca8de55c9f00df2a9e0a33b6c36d659a75455436\"\n937: },\n938: \"src/mars/text/csv.cpp\": {\n939: \"mode\": 420,\n940: \"sha256\": \"b190e12b86a3f416a72c110caf9e0b2d98cdd33851d2fa48b55a8d7ea39279af\"\n941: },\n942: \"src/mars/text/csv.h\": {\n943: \"mode\": 420,\n944: \"sha256\": \"3b7ec6d0884e95bfab869c253eddc30a802602bd1f230cc69461cb9cf3c17917\"\n945: },\n946: \"src/mars/text/flat_kv.cpp\": {\n947: \"mode\": 420,\n948: \"sha256\": \"b98d3b7345489f0b149e56cd15436fd6199e4cf00d7ce3f8b8b31fcdecb90e47\"\n949: },\n950: \"src/mars/text/flat_kv.h\": {\n951: \"mode\": 420,\n952: \"sha256\": \"d6765cd42cad46597b6e36e9d08baf6819f7796442293043d5ff686e2376d292\"\n953: },\n954: \"src/mars/text/lines.h\": {\n955: \"mode\": 420,\n956: \"sha256\": \"b9a16ccf0dc7bbf36100e0b66c80bcb818590b161f820d3c67d55bccff1c2c65\"\n957: },\n958: \"src/mars/text/manifest.cpp\": {\n959: \"mode\": 420,\n960: \"sha256\": \"4da1bb615902ec61883e561f5dd375d89442f7b9046fbc864f6308f27921087e\"\n961: },\n962: \"src/mars/text/manifest.h\": {\n963: \"mode\": 420,\n964: \"sha256\": \"dd7351a7a6a144e97f3a3b6a25d22d1518a099e95deadb8965cedb201601e102\"\n965: },\n966: \"src/mars/text/result.h\": {\n967: \"mode\": 420,\n968: \"sha256\": \"7f817033811dff6fcef1d5b76f88922cb0392afb4359549876cd017a14755606\"\n969: },\n970: \"src/mars/text/value.cpp\": {\n971: \"mode\": 420,\n972: \"sha256\": \"94b433d78f3211e1a4dd9eb8a0a00b514cbeaf63a03e738146c56dbbfe221479\"\n973: },\n974: \"src/mars/text/value.h\": {\n975: \"mode\": 420,\n976: \"sha256\": \"d3b5c70af2f339ad27b43c38353fc7a2da83388854b02000fa1b6d9a4e1dfc07\"\n977: },\n978: \"src/mars/vfs/CMakeLists.txt\": {\n979: \"mode\": 420,\n980: \"sha256\": \"630d5d4707ef3c0f24a414815cc23158853fe9d5aef429d6619abc1c433b3786\"\n981: },\n982: \"src/mars/vfs/path.cpp\": {\n983: \"mode\": 420,\n984: \"sha256\": \"e1f3bbab1f90b0132aec24d8c5997dafab69ec72f01f2dd2fa63c91f83ef7aeb\"\n985: },\n986: \"src/mars/vfs/path.h\": {\n987: \"mode\": 420,\n988: \"sha256\": \"043091008f2cab7c88185de63e7aae63ad9b0e384109f5b6fd8c31666c4e2033\"\n989: },\n990: \"src/mars/vfs/result.h\": {\n991: \"mode\": 420,\n992: \"sha256\": \"19115bf1c5b3bf01da078a49209230053043610b342b01cdaaed126e2d3ea748\"\n993: },\n994: \"src/mars/vfs/vfs.cpp\": {\n995: \"mode\": 420,\n996: \"sha256\": \"ab8272cd14b4b55e7af13f5383d6106f0b1caabdde57e69c1d0fb5b434d31cba\"\n997: },\n998: \"src/mars/vfs/vfs.h\": {\n999: \"mode\": 420,\n1000: \"sha256\": \"2484231baa64ede6fc35eb0f49e1fd7a3373d5c559f016d5adfb9fc433619d90\"\n1001: },\n1002: \"src/mars/vfs/zip_archive.cpp\": {\n1003: \"mode\": 420,\n1004: \"sha256\": \"d66e70300539bd42bcf193683df7c34d2b0b03146fd79f0a180385ead1559e87\"\n1005: },\n1006: \"src/mars/vfs/zip_archive.h\": {\n1007: \"mode\": 420,\n1008: \"sha256\": \"0ffbd90f7919741e63e86e14d0f87d247bc2cd16d2db54771071553249ad935d\"\n1009: },\n1010: \"src/shim/binkw32.def\": {\n1011: \"mode\": 420,\n1012: \"sha256\": \"fb500fd9f9ecbff44123b89fc24cec72e91fec4c4430ce12a69efc06b20de235\"\n1013: },\n1014: \"src/shim/fpu_force.cpp\": {\n1015: \"mode\": 420,\n1016: \"sha256\": \"c4b4e41a7ef81139c652ba8164ed8bb0d809b42182f0d0f048b9a9e63bebe59d\"\n1017: },\n1018: \"src/shim/fpu_force.h\": {\n1019: \"mode\": 420,\n1020: \"sha256\": \"75bac23bc45510961f6b10d21c47e72d8dc0d3971a3ab30b795cad1d25332c06\"\n1021: },\n1022: \"src/shim/hooks/ai_orders.cpp\": {\n1023: \"mode\": 420,\n1024: \"sha256\": \"091ed885012fffa0e02b83c53e547483dfdeaf1094933726e0291fff0a99e434\"\n1025: },\n1026: \"src/shim/hooks/ai_orders.h\": {\n1027: \"mode\": 420,\n1028: \"sha256\": \"6e775b3f946f2eaf10dc2e236a3f3c7b9311ed4e82cd4be1ca30e6c62d49d053\"\n1029: },\n1030: \"src/shim/hooks/ai_rng.cpp\": {\n1031: \"mode\": 420,\n1032: \"sha256\": \"b8fec711cb620561c8f4854e72c3fb0d73013c9b1cd69fa63fc05dd3d2f60289\"\n1033: },\n1034: \"src/shim/hooks/ai_rng.h\": {\n1035: \"mode\": 420,\n1036: \"sha256\": \"1306f4d3c8071121b06c75232efa5c50b155c1f8752fcae852ee8e5497ce7d08\"\n1037: },\n1038: \"src/shim/hooks/ai_visit.cpp\": {\n1039: \"mode\": 420,\n1040: \"sha256\": \"cd69811074820810edb1ed3779ca08bd99fea620b162d80a0395d35e8db7fc31\"\n1041: },\n1042: \"src/shim/hooks/ai_visit.h\": {\n1043: \"mode\": 420,\n1044: \"sha256\": \"8315b433319f680e80a154409124355ad24842e9a0cdef5c8aa6d12422971189\"\n1045: },\n1046: \"src/shim/hooks/budget_inputs.cpp\": {\n1047: \"mode\": 420,\n1048: \"sha256\": \"fa50fb74a3874886cf8aeb4012b9fd9a5a43ce38ab3c543ee425002ca32fd46b\"\n1049: },\n1050: \"src/shim/hooks/budget_inputs.h\": {\n1051: \"mode\": 420,\n1052: \"sha256\": \"56e2f95930ff420820a3464162fde74ac0a3ff2e1dc8b493729fed342e4a6548\"\n1053: },\n1054: \"src/shim/hooks/colony_inputs.cpp\": {\n1055: \"mode\": 420,\n1056: \"sha256\": \"7aa9191ec6292d765fd06c99ff1f2ae2e09a65fb1f238dd2727f28bd465dd46e\"\n1057: },\n1058: \"src/shim/hooks/colony_inputs.h\": {\n1059: \"mode\": 420,\n1060: \"sha256\": \"87ec765e14106631e3f6423450e6e01d5bb21060fa91f83c267db215ef4986d9\"\n1061: },\n1062: \"src/shim/hooks/colony_turn.cpp\": {\n1063: \"mode\": 420,\n1064: \"sha256\": \"b82616c7b9b05e96e7f4c40d853c686884b517a5424413686d61799df9d45420\"\n1065: },\n1066: \"src/shim/hooks/colony_turn.h\": {\n1067: \"mode\": 420,\n1068: \"sha256\": \"a9013cc2e92998ff56ac0c8cc36dc42033fbe3072ee88b86882a1dd4dd0357d6\"\n1069: },\n1070: \"src/shim/hooks/compute_budget.cpp\": {\n1071: \"mode\": 420,\n1072: \"sha256\": \"76a24f0daf1f49cfabbed13753c65754e26bfcc4f672791b37e926f82b5c1906\"\n1073: },\n1074: \"src/shim/hooks/compute_budget.h\": {\n1075: \"mode\": 420,\n1076: \"sha256\": \"f308717e44e12151cfb20a6a0cf11ff8e99ecc9c17ef04783198feed05a24caa\"\n1077: },\n1078: \"src/shim/hooks/dictionaries.cpp\": {\n1079: \"mode\": 420,\n1080: \"sha256\": \"b60794256c07964eb89d5295ecb711b402112fe5f982a9215dc3a304d03a567b\"\n1081: },\n1082: \"src/shim/hooks/dictionaries.h\": {\n1083: \"mode\": 420,\n1084: \"sha256\": \"ac68fd66eb343d40ee97d6bf29c8b54f5d469a9ef8862687ae15e6ad8bdafdc0\"\n1085: },\n1086: \"src/shim/hooks/draw_sites.cpp\": {\n1087: \"mode\": 420,\n1088: \"sha256\": \"e7a1fa40262db2ed22b1dfa5ca1bd2588da07bfbab046f23afa8e86c03814d79\"\n1089: },\n1090: \"src/shim/hooks/draw_sites.h\": {\n1091: \"mode\": 420,\n1092: \"sha256\": \"0021323e918d464223d03b969d0e6992a0efac23ba84a31af901cf2ac74e9b13\"\n1093: },\n1094: \"src/shim/hooks/event_inputs.cpp\": {\n1095: \"mode\": 420,\n1096: \"sha256\": \"eeb9cc87ef5c39994b7f25d5ccfe220c4775b32a4b11471b0fc0fb81fca4362b\"\n1097: },\n1098: \"src/shim/hooks/event_inputs.h\": {\n1099: \"mode\": 420,\n1100: \"sha256\": \"c0e74aed8756b3de8ebbe5ab3d70cfa6282403efefc2d795e8f0b1b4cd44d731\"\n1101: },\n1102: \"src/shim/hooks/fleet_movement.cpp\": {\n1103: \"mode\": 420,\n1104: \"sha256\": \"f01ae7f64b1d545089b002b79c9986d2a39b97ad3995c88a8b71fa05eedb90f0\"\n1105: },\n1106: \"src/shim/hooks/fleet_movement.h\": {\n1107: \"mode\": 420,\n1108: \"sha256\": \"dbbfe50afaedad63ec45881819aa5de3907cdb411ddf8d1d3e6a5f9a386dc8af\"\n1109: },\n1110: \"src/shim/hooks/global_consts.cpp\": {\n1111: \"mode\": 420,\n1112: \"sha256\": \"87a51601e1a7d963bf841ca4e892aa79de789a050f5d783c7b5d8bbc2e96a9a1\"\n1113: },\n1114: \"src/shim/hooks/global_consts.h\": {\n1115: \"mode\": 420,\n1116: \"sha256\": \"b6ac4265ec1f02f11c342536dbc9970c13761ea68aec0a5962d0f4cd6aa5d265\"\n1117: },\n1118: \"src/shim/hooks/movement_inputs.cpp\": {\n1119: \"mode\": 420,\n1120: \"sha256\": \"0e23f86e4a8ed6c292aea8e45512931cdd06742f25c5e0d175bf0ed3b2217502\"\n1121: },\n1122: \"src/shim/hooks/movement_inputs.h\": {\n1123: \"mode\": 420,\n1124: \"sha256\": \"32904786cbb122c3c8c36faf6bd9ea5ade4cd8395e74199ec08dbcdb8019b66a\"\n1125: },\n1126: \"src/shim/hooks/player_turn.cpp\": {\n1127: \"mode\": 420,\n1128: \"sha256\": \"33bcadd7569ad13c69f5f160423c8d469bc67725ce7b944cf4b4346fb8cc7f23\"\n1129: },\n1130: \"src/shim/hooks/player_turn.h\": {\n1131: \"mode\": 420,\n1132: \"sha256\": \"a766a0d93f3860da6f8d1e0dcf110d6754cd8dfe67d867093f32e3d24e8ff0e0\"\n1133: },\n1134: \"src/shim/hooks/player_turn_inputs.cpp\": {\n1135: \"mode\": 420,\n1136: \"sha256\": \"993dce2ca771a36337c9561695995a0825746563d2e84b4458de650f3e456799\"\n1137: },\n1138: \"src/shim/hooks/player_turn_inputs.h\": {\n1139: \"mode\": 420,\n1140: \"sha256\": \"ca0d7916ca17d993aaef19be48d03076220ae15cdcc622aef52a7c6b5957ca71\"\n1141: },\n1142: \"src/shim/hooks/probe_entry.cpp\": {\n1143: \"mode\": 420,\n1144: \"sha256\": \"5faf9cf04a2cf849d2dd54ce4ad9b812120fb99741f11e9d52fed450badf0506\"\n1145: },\n1146: \"src/shim/hooks/probe_entry.h\": {\n1147: \"mode\": 420,\n1148: \"sha256\": \"f04f445863a6164d03bc9f6edcaa2e2b0108163241510f4c1dfcb0da7667d89f\"\n1149: },\n1150: \"src/shim/hooks/research.cpp\": {\n1151: \"mode\": 420,\n1152: \"sha256\": \"dacd16403f1dd5be2ef2cc42f16938977bdd0ee9283d0bca647a079ee3d28e83\"\n1153: },\n1154: \"src/shim/hooks/research.h\": {\n1155: \"mode\": 420,\n1156: \"sha256\": \"a62c4847be81ed9d10c4f5b9a876bd79898040aa11aa8764149d82db4b010a84\"\n1157: },\n1158: \"src/shim/hooks/rng_ledger.cpp\": {\n1159: \"mode\": 420,\n1160: \"sha256\": \"119d325fcda72268bdc87f7ca7af05d059d4521c4d7d40ad7426ce070865eabb\"\n1161: },\n1162: \"src/shim/hooks/rng_ledger.h\": {\n1163: \"mode\": 420,\n1164: \"sha256\": \"0d1e9c79e7601da921253e860c55d9b69c21e03a1014c49f1dd85fd0e5f70f30\"\n1165: },\n1166: \"src/shim/hooks/system_output.cpp\": {\n1167: \"mode\": 420,\n1168: \"sha256\": \"93bfb7e6ca381041d1e9830f82b8d774a63c12593fc426fd3e9198c9373be3b4\"\n1169: },\n1170: \"src/shim/hooks/system_output.h\": {\n1171: \"mode\": 420,\n1172: \"sha256\": \"62a8424c70bb8e6c3d9603ce752f6b19a3920a4a78be75718869d7dac73f3738\"\n1173: },\n1174: \"src/shim/hooks/tail_rng.cpp\": {\n1175: \"mode\": 420,\n1176: \"sha256\": \"9b2a3923d1d837399f3486650ef0e49b502837ff7df46a12df9a9e9b0d4d9d07\"\n1177: },\n1178: \"src/shim/hooks/tail_rng.h\": {\n1179: \"mode\": 420,\n1180: \"sha256\": \"b9585605e71364872db25c608012e94db2148f22e2e6fd40d4b590a83f3be92b\"\n1181: },\n1182: \"src/shim/hooks/tech_effect_fields.cpp\": {\n1183: \"mode\": 420,\n1184: \"sha256\": \"4c4d558aba3ac4e1b10e0944c867911e61daea0b4ade716760546846cebcb7b3\"\n1185: },\n1186: \"src/shim/hooks/tech_effect_fields.h\": {\n1187: \"mode\": 420,\n1188: \"sha256\": \"22b2c050f73c9de011a42dc5a52d92a1bd3b24a59f3ba3b4332d832fb1853420\"\n1189: },\n1190: \"src/shim/hooks/tech_effects.cpp\": {\n1191: \"mode\": 420,\n1192: \"sha256\": \"2a20f01a18ed30a466e2023ae023aeed8718c680cda927d2f3b463b6dbe35714\"\n1193: },\n1194: \"src/shim/hooks/tech_effects.h\": {\n1195: \"mode\": 420,\n1196: \"sha256\": \"ffbc4e8262146cd7764f0b9758fff01ce5d359b25a0f5d8c931313f32d035320\"\n1197: },\n1198: \"src/shim/hooks/watchpoints.cpp\": {\n1199: \"mode\": 420,\n1200: \"sha256\": \"15c94333f22bb592129efe3fb800ea89987045f9ebbc0e6791d4397961fd727d\"\n1201: },\n1202: \"src/shim/hooks/watchpoints.h\": {\n1203: \"mode\": 420,\n1204: \"sha256\": \"639ae42b230fb31762f50cac0422dcd5b7fda7a1a02c7739a86d1cd6eda62277\"\n1205: },\n1206: \"src/shim/main.cpp\": {\n1207: \"mode\": 420,\n1208: \"sha256\": \"eebdac7f8f69b8b95cd290c96d41c6f3f0ed5c45ccd5de54ffc790af47083b99\"\n1209: },\n1210: \"src/shim/shim.cfg\": {\n1211: \"mode\": 420,\n\n(Output capped at 50 KB. Showing lines 1-1211. Use offset=1212 to continue.)\n","metadata":{"preview":"{\n \"actor\": \"live-record bridge architect\",\n \"checkpoint_session\": \"run-472955e277202c411388c66b\",\n \"command\": [\n \"opencode\",\n \"run\",\n \"--format\",\n \"json\",\n \"--model\",\n \"openai/gpt-5.6-sol\",\n \"--agent\",\n \"sots-lead\",\n \"Start a FRESH bounded campaign quantum (40 steps). No delegation.\\nRole=architecture-review; requested model=openai/gpt-5.6-sol; actor=live-record bridge architect; checkpoint session=run-472955e277202c411388c66b.\\nCanonical state root: /home/alex/sots-re\\nContract: /home/alex/sots-re/campaign/contracts/research-live-record-bridge.json\\nLatest checkpoint: campaign/runtime/checkpoints/research-live-record-bridge-7b7432a9c65bd530392291c3.json\\nEngine worktree: /tmp/opencode/sots-final-research-engine\\nRE worktree: /tmp/opencode/sots-final-research-re\\nRead canonical campaign/README.md, contract, latest checkpoint and open surprises before work. Verify source/worktree/resource identities. Only edit owned scope. Missing state means blocked. Do not commit, stage, push or mutate lab resources without explicit authority and a lease. Checkpoint every 20 tool calls or 15 minutes, before experiments, compaction and stopping; persist under canonical campaign/ using tools/campaign.py with the session above, exact model, actor and role. Include observations versus decisions, source identities, artifact paths, tests, blockers and ONE exact next action. Fresh checkpoint at quantum end is mandatory. Record a surprise and pause affected work if assumptions are falsified. Sol loop authority: perform approved architecture/planning work in owned scope. Do not rely on chat resume or automatic compaction.\"\n ],\n \"config\": {\n \"canonical_files\": {\n \"campaign/agents/analyst.md\": \"895c41509016038b3f72c4a68608c4101511e69c5bf410e379286da1a6202952\",\n \"campaign/agents/implementer.md\": \"eb5581051a92b3d2b9ddd947812b1c02ff6a0b5e7619e7674adc26701e9a3d91\",\n \"campaign/agents/lab.md\": \"48f1765ebdcb2015e631ad91428f65735ff899e119134b652f70788ff2eae5b8\",\n \"campaign/agents/lead.md\": \"8fcfe52be845ed98a172afb47ea888b19bb7bffa80f7b50ace58d2bb66924220\",","truncated":true,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/runs/run-472955e277202c411388c66b.json","text":"{\n \"actor\": \"live-record bridge architect\",\n \"checkpoint_session\": \"run-472955e277202c411388c66b\",\n \"command\": [\n \"opencode\",\n \"run\",\n \"--format\",\n \"json\",\n \"--model\",\n \"openai/gpt-5.6-sol\",\n \"--agent\",\n \"sots-lead\",\n \"Start a FRESH bounded campaign quantum (40 steps). No delegation.\\nRole=architecture-review; requested model=openai/gpt-5.6-sol; actor=live-record bridge architect; checkpoint session=run-472955e277202c411388c66b.\\nCanonical state root: /home/alex/sots-re\\nContract: /home/alex/sots-re/campaign/contracts/research-live-record-bridge.json\\nLatest checkpoint: campaign/runtime/checkpoints/research-live-record-bridge-7b7432a9c65bd530392291c3.json\\nEngine worktree: /tmp/opencode/sots-final-research-engine\\nRE worktree: /tmp/opencode/sots-final-research-re\\nRead canonical campaign/README.md, contract, latest checkpoint and open surprises before work. Verify source/worktree/resource identities. Only edit owned scope. Missing state means blocked. Do not commit, stage, push or mutate lab resources without explicit authority and a lease. Checkpoint every 20 tool calls or 15 minutes, before experiments, compaction and stopping; persist under canonical campaign/ using tools/campaign.py with the session above, exact model, actor and role. Include observations versus decisions, source identities, artifact paths, tests, blockers and ONE exact next action. Fresh checkpoint at quantum end is mandatory. Record a surprise and pause affected work if assumptions are falsified. Sol loop authority: perform approved architecture/planning work in owned scope. Do not rely on chat resume or automatic compaction.\"\n ],\n \"config\": {\n \"canonical_files\": {\n \"campaign/agents/analyst.md\": \"895c41509016038b3f72c4a68608c4101511e69c5bf410e379286da1a6202952\",\n \"campaign/agents/implementer.md\": \"eb5581051a92b3d2b9ddd947812b1c02ff6a0b5e7619e7674adc26701e9a3d91\",\n \"campaign/agents/lab.md\": \"48f1765ebdcb2015e631ad91428f65735ff899e119134b652f70788ff2eae5b8\",\n \"campaign/agents/lead.md\": \"8fcfe52be845ed98a172afb47ea888b19bb7bffa80f7b50ace58d2bb66924220\",\n \"campaign/agents/resolver.md\": \"742c36dc8567669d462566d6121eed42fcff5bff34e8eff466e92249f7ca195f\",\n \"campaign/agents/verifier.md\": \"e467fc644e4e37d631a7a4e35038d9d3d0498491f1d7811d61d99271ff345c6b\",\n \"campaign/models.json\": \"00f959ff4ce16ba22f6befa7a9d495eb85d62d9e8001b1e1345eaae0e11b6e48\",\n \"opencode.json\": \"027ab29992ab9a5a6ee20bd649ac002f5f3397030d18b070eb949cc42179de99\"\n },\n \"effective\": {\n \"agent_sha256\": \"b02d472ebe2f40dc62e3513b13294967e7cd2082dddcad8388a159e22ee0cd6a\",\n \"sha256\": \"058e686030acbf2d6135031ce9b6178f24aff646241c3d44456e76db6570151c\"\n },\n \"expanded_prompt_sha256\": \"761069d92e23d25f187f4d93d0fd45daff411085e85bcf644709d8f7ceb3ab9c\",\n \"overlay\": {\n \"agent\": {\n \"sots-lead\": {\n \"model\": \"openai/gpt-5.6-sol\",\n \"permission\": {\n \"bash\": \"allow\",\n \"external_directory\": {\n \"*\": \"deny\",\n \"/home/alex/sots-re\": \"allow\",\n \"/home/alex/sots-re/*\": \"allow\",\n \"/tmp/opencode/sots-final-research-engine\": \"allow\",\n \"/tmp/opencode/sots-final-research-engine/*\": \"allow\",\n \"/tmp/opencode/sots-final-research-re\": \"allow\",\n \"/tmp/opencode/sots-final-research-re/*\": \"allow\"\n },\n \"glob\": \"allow\",\n \"grep\": \"allow\",\n \"list\": \"allow\",\n \"question\": \"deny\",\n \"read\": \"allow\",\n \"task\": \"deny\"\n },\n \"prompt\": \"You are the SOTS lead/integrator, running GPT-5.6 Sol. Read AGENTS.md, campaign/README.md,\\nguides/multi-agent-workflow.md, selected contracts, latest checkpoints and open surprises.\\nState lives in the explicitly selected canonical RE repository. Do not reconstruct it from chat.\\n\\nOwn architecture, task boundaries, model allocation, independent acceptance and integration.\\nSelect work by dependencies unlocked and complete write sets, not row/leaf counts. At most two\\nimplementation slices after the pilot. Delegate through tools/run_agent.py with explicit role,\\ncontract, state root and paired worktrees. No nested worker delegation or implicit model fallback.\\nValidate model availability before assigning work. Astra problem-resolution sessions are\\nallowed when explicitly allocated. Keep exclusive file and resource ownership clear.\\n\\nWrite acceptance before implementation. Require independent verification and integrated source-\\nbound evidence. Only you publish current pointers/projections. Never promote a historical claim\\nwithout the stated workload, identity, coverage and reproduction. Host passed != full acceptance.\\n\\nHandle surprises as experiments: record evidence, block affected work, examine instrument/source\\nidentity, list surviving/qualified/overturned claims, choose one discriminating check, update\\ncontracts and invalidate affected results. Do not hide contradictions in appended caveats.\\n\\nCheckpoint every 20 tool calls/15min and before compaction, experiments, handoff or stop. At a\\n40-step quantum boundary persist exact next action and finish; next session resumes from RE state.\\nFollow explicit user authorization for commits/pushes; this rollout authorizes neither.\\n\",\n \"steps\": 40\n }\n },\n \"model\": \"openai/gpt-5.6-sol\"\n },\n \"path\": \"/home/alex/sots-re/opencode.json\",\n \"sha256\": \"027ab29992ab9a5a6ee20bd649ac002f5f3397030d18b070eb949cc42179de99\"\n },\n \"contract\": \"research-live-record-bridge\",\n \"cwd\": \"/tmp/opencode/sots-final-research-re\",\n \"id\": \"run-472955e277202c411388c66b\",\n \"max_steps\": 40,\n \"requested_model\": \"openai/gpt-5.6-sol\",\n \"resolution_only\": false,\n \"role\": \"architecture-review\",\n \"schema\": \"sots-run/1\",\n \"source_before\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"files\": {\n \".gitignore\": {\n \"mode\": 420,\n \"sha256\": \"5103c9533f0d31fea29c0cc85d543692af84a697416dfa7557e31c9843210145\"\n },\n \"AGENTS.md\": {\n \"mode\": 420,\n \"sha256\": \"7d1d4bc05c35e3354a77b3c8d5d2c04fb9d6658d09e87bc814a50bc3d2033fb7\"\n },\n \"CLAUDE.md\": {\n \"mode\": 420,\n \"sha256\": \"15d60c3d592302a2854df8bf6d39c0a578c22b9273a633447e10b76fd76291f5\"\n },\n \"CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"6e9791511ea23bf8bf5f7f58617a7e77bbe5006829609e425e565c11c1e8d7ed\"\n },\n \"CMakePresets.json\": {\n \"mode\": 420,\n \"sha256\": \"fcd1dfe3989ee4f56fa3e419059e1db5621922165edf05f13cfe8e5d786d8bb0\"\n },\n \"CONTRIBUTING.md\": {\n \"mode\": 420,\n \"sha256\": \"26a381fe08feb51f861655f77de4e558f056d1dba79162a2e82513a92d0e6506\"\n },\n \"LICENSE\": {\n \"mode\": 420,\n \"sha256\": \"eedebad43ea495111bf4451d78cb440309d90a733d6a36445699dde0629f1858\"\n },\n \"README.md\": {\n \"mode\": 420,\n \"sha256\": \"66c2437fe4f074e6499de50b0d5f0d013bc290333f4d4bf554b541261885a0c1\"\n },\n \"cmake/toolchain-mingw-i686.cmake\": {\n \"mode\": 420,\n \"sha256\": \"231c0b79868a77d54cc6619f0b4ea18454964a1a078806f44a6ffe3fb7741a9b\"\n },\n \"docs/A2-alliance-and-modcount.md\": {\n \"mode\": 420,\n \"sha256\": \"0c0c45c31d5d64124f3b91a161f8a2f4732c8a5d7f6bc524baf4d59f8a191701\"\n },\n \"docs/AC-predictions.md\": {\n \"mode\": 420,\n \"sha256\": \"ab9e41714abdbc32e620d8a2068be8ebd2fc8898ba149113c66ccda248b4bcda\"\n },\n \"docs/B1.md\": {\n \"mode\": 420,\n \"sha256\": \"42b61bbfc135cdcd0f1a32f63164b88e67106400de7f08f543f118eccd814364\"\n },\n \"docs/B2.md\": {\n \"mode\": 420,\n \"sha256\": \"87dfd333ee15681a3aa4de58cf1b14ff8240e75afabc05012e0f28531cb4b8b8\"\n },\n \"docs/B3.md\": {\n \"mode\": 420,\n \"sha256\": \"fb65c41037b6cd6252c67e5244d492a3a17ea4ba2ddae821d49fe0a879528518\"\n },\n \"docs/B4.md\": {\n \"mode\": 420,\n \"sha256\": \"22547b3d2960684e52a380fb07f43a75bf50aebf93cede689f297cf38f4a012d\"\n },\n \"docs/B6-ship-construction.md\": {\n \"mode\": 420,\n \"sha256\": \"9c5c4fd2059af965e317c9db5b7fbfc440397ddfcdc5bf7860115f6a8a0532ab\"\n },\n \"docs/CB-capture.md\": {\n \"mode\": 420,\n \"sha256\": \"ce45a9082588051eda7438016dc66eb28bb4afda98b82cdc20102c4ca53529f0\"\n },\n \"docs/CB-predictions.md\": {\n \"mode\": 420,\n \"sha256\": \"ba51538b018cbb403978f97ad45d4743937d49ba55c8f15d7af8f8e4aa441f0f\"\n },\n \"docs/E-events.md\": {\n \"mode\": 420,\n \"sha256\": \"de98795aadb1617eab91815ebc34818bef8b52c36ba18b4521170065bfd2d201\"\n },\n \"docs/EV-events.md\": {\n \"mode\": 420,\n \"sha256\": \"e7d9536cd23f5d800dc97f68167bb738088a16136004419f28de92d7fe1bcfb9\"\n },\n \"docs/G-wire-schema.md\": {\n \"mode\": 420,\n \"sha256\": \"19db69ae359ddbd2a0509d02f1c616f939e0428480a8bb33c81f69145323a591\"\n },\n \"docs/G3-civilian-growth.md\": {\n \"mode\": 420,\n \"sha256\": \"38ea3a8ddc3fdca258294d949c4cd2af1a930cdd9ba612d5e8fb48bc446bdf30\"\n },\n \"docs/H-probes.md\": {\n \"mode\": 420,\n \"sha256\": \"f23e4d4cbc8c9a3000a0a58ed994dddd95466cee1ec45e961685e86dde4dc54f\"\n },\n \"docs/L1-predictions.md\": {\n \"mode\": 420,\n \"sha256\": \"af97dbc9f15b9c2e6f223c89bac17826056fa4f3bced3c01513c1ad4d9ac1754\"\n },\n \"docs/L2-predictions.md\": {\n \"mode\": 420,\n \"sha256\": \"18213ce5f3375d478f266de85c38c2b04ca2ae8ab4a2023780dca161fa14f460\"\n },\n \"docs/L3-predictions.md\": {\n \"mode\": 420,\n \"sha256\": \"d1c9c0006079f47ef0d3371f4a2c2df2fe4f08ebdad0f8a12d1b0de35b15ae7e\"\n },\n \"docs/L4-ai-orders.md\": {\n \"mode\": 420,\n \"sha256\": \"b04127c5158a882f252b2b6e8afb2d131f0de623cc0c62c86c612af803d75835\"\n },\n \"docs/L4-predictions.md\": {\n \"mode\": 420,\n \"sha256\": \"6a194ae336920f13d8e4a44549cbe26be959beef81cffed88ef03b3cec563e44\"\n },\n \"docs/L5-live-verification.md\": {\n \"mode\": 420,\n \"sha256\": \"4c1abe57c516b36f383390164a362f53294feda222c623283f1e6091d8ef0ec4\"\n },\n \"docs/M-movefleet.md\": {\n \"mode\": 420,\n \"sha256\": \"718338edb8cbe8a449793b22889776a1783d1d0ade553c03973ea45d426eb426\"\n },\n \"docs/M0.md\": {\n \"mode\": 420,\n \"sha256\": \"e121c380612a42727e3a973d8cf50f884d660bb4b43bc494258dc1c6b6f26705\"\n },\n \"docs/M1.md\": {\n \"mode\": 420,\n \"sha256\": \"e0a36cf109d096748e55522eb8d7a261764cbf5ab5daf9342ba903d0f2bc6704\"\n },\n \"docs/M2.md\": {\n \"mode\": 420,\n \"sha256\": \"25f9cad74eeee40afc2117333232384e1cf387b2b9132856650234c5ba593c61\"\n },\n \"docs/N-output-term.md\": {\n \"mode\": 420,\n \"sha256\": \"3b8317e22714ef66b35efceee6fa0f7057c37f7c6e34d93cc5047cd1dd07ecde\"\n },\n \"docs/P-events-wiring.md\": {\n \"mode\": 420,\n \"sha256\": \"72ee81b71b4c08ae451721c785dc5e01ed4ca43ff0fd474befca09dcc41599ba\"\n },\n \"docs/PAR-predictions.md\": {\n \"mode\": 420,\n \"sha256\": \"16e8fbbac5001db0b10d766858c0ae2ea9619f37043a0883ee46da80d4dd4846\"\n },\n \"docs/PL-players-residual.md\": {\n \"mode\": 420,\n \"sha256\": \"9bc29bc030ee8b0e00e496b91fe8fefac15179ce9fd01c0a11a7b5b5335356dc\"\n },\n \"docs/R-recapture.md\": {\n \"mode\": 420,\n \"sha256\": \"73c62ab20c5eca5e87e1d18aefa60a2a2acd75cbc7510d31b27a2cd4ebcec38f\"\n },\n \"docs/RB-predictions.md\": {\n \"mode\": 420,\n \"sha256\": \"c1016781505c10aa304d4710c5389918b744ab20cbd8cb54dce462c3dc28e4e7\"\n },\n \"docs/S-standalone.md\": {\n \"mode\": 420,\n \"sha256\": \"8979b0a9fef33a55ca15bf3ef78064e72df332033354329ff2471ad6648e4a8e\"\n },\n \"docs/SD-predictions.md\": {\n \"mode\": 420,\n \"sha256\": \"a76a568ccac7409e3cb3acef724dbe6b618d4ec30259bce33594098daff8b6a0\"\n },\n \"docs/SV-script-objects.md\": {\n \"mode\": 420,\n \"sha256\": \"80ebd120fa9cf5e68ac4d33117966805b917d24bc339f7d82be972a280449409\"\n },\n \"docs/T-turn-driver.md\": {\n \"mode\": 420,\n \"sha256\": \"a4096b8223cea87ce77cc64014c489d4625ed36fd3aec1358565ca5cf91d4e1e\"\n },\n \"docs/U-unlock.md\": {\n \"mode\": 420,\n \"sha256\": \"5cbe3d8fb4bd30d029cb2db006a4dd3c6819885f55f434afb4bc8ae79b526901\"\n },\n \"docs/V-eventlive.md\": {\n \"mode\": 420,\n \"sha256\": \"ebd08c000f42211e87958278f03d6891475cd8557658e1a42105cf5ed45a1aa1\"\n },\n \"docs/W2-predictions.md\": {\n \"mode\": 420,\n \"sha256\": \"9972e27467cf0fe23a358818caf7edb979de25697d3aa4b97a2135ca79fe34f5\"\n },\n \"docs/W2-watchpoints.md\": {\n \"mode\": 420,\n \"sha256\": \"f8634c5f977b2ca9b2e07df105cba09adacaeb6fb4cf046e41e5e1e42b83b107\"\n },\n \"docs/W3-predictions.md\": {\n \"mode\": 420,\n \"sha256\": \"211cedc2d924bcf47cbb73166b408e9a27d795863ffc90aa2adbb85beeadffcf\"\n },\n \"docs/W3-watchpoints.md\": {\n \"mode\": 420,\n \"sha256\": \"568e818e66d95f9079a1270c4d9b900c7eecfd5b5a3b4ba5a4aa0c843666f061\"\n },\n \"docs/Y-standalone-rng-and-tail.md\": {\n \"mode\": 420,\n \"sha256\": \"49d926cc505d6ba07753748366e42ec32493a15c76bfaa45b2f66f52adc57f2b\"\n },\n \"docs/Z-tail-rng.md\": {\n \"mode\": 420,\n \"sha256\": \"3ed2b40f728bcedd663c305cce13481bad1429af03fd5215ee3189161cfbd7f1\"\n },\n \"docs/architecture.md\": {\n \"mode\": 420,\n \"sha256\": \"ba4732eb8a4c7054df5136a72d1774e4f1e919a517a1c74e975903fdd254422f\"\n },\n \"docs/game-data.md\": {\n \"mode\": 420,\n \"sha256\": \"2124ea3d117b4ee6f48660d9711c1b4ef844a4ba37af7cea3766914d77bd6b23\"\n },\n \"docs/game-design.md\": {\n \"mode\": 420,\n \"sha256\": \"5b40349ad446596b534567a5683cf9ea99709d9eff231890e0f6256c755f0272\"\n },\n \"docs/game-effects.md\": {\n \"mode\": 420,\n \"sha256\": \"e1e0abc162602daaac255fe44b11c511adf45d4ef5fa188268411829b0817e5d\"\n },\n \"docs/game-sim.md\": {\n \"mode\": 420,\n \"sha256\": \"d1e14770d252fd2f320a7baa1ad54c90d955cfc840f477d1700cfbbadcec730e\"\n },\n \"docs/harness-audit.md\": {\n \"mode\": 420,\n \"sha256\": \"931d92cc744ec6ca3d961fbe7fe96dcab28060446058eb78be9835ebbce73ed0\"\n },\n \"docs/mars-parse.md\": {\n \"mode\": 420,\n \"sha256\": \"d9fa3029ade4f9401c59fb88f4520a1ef3af9a9c6f2bb5d1a0ebfa1d5061d6dd\"\n },\n \"docs/mars-rng.md\": {\n \"mode\": 420,\n \"sha256\": \"f2a01b88f105d07d0d0d514430e76da7632e5c8e4e3bbd6c99a25f1dc5daa89c\"\n },\n \"docs/mars-stream.md\": {\n \"mode\": 420,\n \"sha256\": \"61a16c9b7c143b4bc2edee473cf1f8bd06c1a5144c120bc563e5ec6d770dd0e7\"\n },\n \"docs/mars-text.md\": {\n \"mode\": 420,\n \"sha256\": \"2b6c7d2eecbb684160e7565d1d7224eb0d2f7e9a41f4d807095a182ea605dcf1\"\n },\n \"docs/mars-vfs.md\": {\n \"mode\": 420,\n \"sha256\": \"1508c2a070d56f4fdabac3c2ef1fd08d3f93d7a3045d59158340ee22a6ff1b62\"\n },\n \"docs/shim-trace.md\": {\n \"mode\": 420,\n \"sha256\": \"8a059c1ba761b366449c2db8ef248656da917050ed28855c6d812ecf91672fa5\"\n },\n \"include/generated/sots_addresses.h\": {\n \"mode\": 420,\n \"sha256\": \"fc34ac4ee8cc7fea91c447b5715841dc6d3afe36f9aff04e88b6c29b5b64f448\"\n },\n \"include/generated/sots_stream_schema.h\": {\n \"mode\": 420,\n \"sha256\": \"13446ce54d60a0b29adcefb51aeb5127a0a3ca8de2bd1665e4778ba5354bff8c\"\n },\n \"opencode.json\": {\n \"mode\": 420,\n \"sha256\": \"9af560c2a49945e964beb689649c13775e2aaaf691af270a565d6c6826f76c15\"\n },\n \"src/app/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"142999eded2ff494745ce550af76a8f8caf0269ad22d6d5650e7a79c19d22717\"\n },\n \"src/app/alliance.cpp\": {\n \"mode\": 420,\n \"sha256\": \"37d6e57f7ce82a69a595cf474e7be7a544efef210f960e9cdfeab6168826bac9\"\n },\n \"src/app/alliance.h\": {\n \"mode\": 420,\n \"sha256\": \"08fa8dc96286c7cb15a90a987fa22b17e195522e642ab8303b659ca58739eafd\"\n },\n \"src/app/command_replay.cpp\": {\n \"mode\": 420,\n \"sha256\": \"739059930cd3a5f1d988522ff50c60d8657664a66c9fe19b019833f417b55824\"\n },\n \"src/app/command_replay.h\": {\n \"mode\": 420,\n \"sha256\": \"956429a742554cada2124de49c6955e27b0e5d68db87dcc95b22c75ec7bd93c2\"\n },\n \"src/app/construction_phase.cpp\": {\n \"mode\": 420,\n \"sha256\": \"025cd0ea1a7badd567f7f1cd59330b1e01149b5c5094575fbd438683658bb0df\"\n },\n \"src/app/construction_phase.h\": {\n \"mode\": 420,\n \"sha256\": \"a4d39994096683a1144eb20282b205cf71e2045873cc15b53bdac214ab1e9a5e\"\n },\n \"src/app/event_phase.cpp\": {\n \"mode\": 420,\n \"sha256\": \"80717fa7c7f108004d5250f12b6c994752a1a55d7f32c7d3ebf29f2869118c90\"\n },\n \"src/app/event_phase.h\": {\n \"mode\": 420,\n \"sha256\": \"54077268fe4705270dc06bdc46a6fd9384fb5e0d36da19e55ea149b478d8cf34\"\n },\n \"src/app/growth_phase.cpp\": {\n \"mode\": 420,\n \"sha256\": \"5924d2641fc98d902b56a3e6417d7a57d70c1564718951b098e7d14376ebc4e3\"\n },\n \"src/app/growth_phase.h\": {\n \"mode\": 420,\n \"sha256\": \"8222ef811abff161c8f891a331a52e527de54fbf468949d1e0e188adc473ae3b\"\n },\n \"src/app/main.cpp\": {\n \"mode\": 420,\n \"sha256\": \"adfd7dd177439bfd57509532bcf0f37779281ae9309daa93efe1ada3ef3f57a7\"\n },\n \"src/app/observed_phase.cpp\": {\n \"mode\": 420,\n \"sha256\": \"31fb99678d60de6901b4bb1b251abe2421453264653cf5f7bd297a376c2b23f3\"\n },\n \"src/app/observed_phase.h\": {\n \"mode\": 420,\n \"sha256\": \"f88fc22a5cb21a43e196d7fae09446126635d3284e6b398bca234f265234b693\"\n },\n \"src/app/phase_catalog.cpp\": {\n \"mode\": 420,\n \"sha256\": \"e3da16e6d499b7836953251d940ce171792ada208156ca583277298f305fc316\"\n },\n \"src/app/phase_catalog.h\": {\n \"mode\": 420,\n \"sha256\": \"da6fff506002079d8277358d0095981dc260449dc19677a533ef25ab709aed87\"\n },\n \"src/app/report.cpp\": {\n \"mode\": 420,\n \"sha256\": \"da3feb6043f6e68cb9ea763f7242ac153a5944c59f448284faf34c64ad6b9228\"\n },\n \"src/app/report.h\": {\n \"mode\": 420,\n \"sha256\": \"0495d164458ddb7187ce3105f82cee06cf9cf6c5b73ed8cb6e434e1d2e0f8481\"\n },\n \"src/app/script_phase.cpp\": {\n \"mode\": 420,\n \"sha256\": \"61eeeeb7eac3145cee938ccfc564b231b6968ce7926fb9599c136134f0d5ea91\"\n },\n \"src/app/script_phase.h\": {\n \"mode\": 420,\n \"sha256\": \"e52006ff939fa945870fafdc2412ba67e3d5e1cc2aa51c0ca0a884ce630aa1b7\"\n },\n \"src/app/trade_raid.cpp\": {\n \"mode\": 420,\n \"sha256\": \"07d6bb904e655bb644ff6df2e417adb448487bb67acb62240ec5ecc978eabebf\"\n },\n \"src/app/trade_raid.h\": {\n \"mode\": 420,\n \"sha256\": \"10e0b1460eb7810f1fcd61e67d47333373f06bdacf5a11372958a84a91084e52\"\n },\n \"src/app/treaty.cpp\": {\n \"mode\": 420,\n \"sha256\": \"317463fc0e2a6ca7eaa4e2f096c3821655a4623de4085af44d951ed500837575\"\n },\n \"src/app/treaty.h\": {\n \"mode\": 420,\n \"sha256\": \"836395a85868cbd6b7fda8f1d304128fd7cc6952aff37003e8e119a5ce0251f9\"\n },\n \"src/app/turn.cpp\": {\n \"mode\": 420,\n \"sha256\": \"a626ddf80a340de50b70f09bf91c0180d255c533e65edce1532d807fcf5109b4\"\n },\n \"src/app/turn.h\": {\n \"mode\": 420,\n \"sha256\": \"85c87aab5c5b5ad5a6a34cc9db710b1cf77dec1a7145ba1e0b5e17fff9a6a237\"\n },\n \"src/app/turn_record.cpp\": {\n \"mode\": 420,\n \"sha256\": \"e1eb0b253e964ab4f8be1333f81e193ac64109544da384cbdf21858cbf931e4d\"\n },\n \"src/app/turn_record.h\": {\n \"mode\": 420,\n \"sha256\": \"78d8d2948bd04bff5e7d2c55955b726f1cd7552a765e608e390209e03856f76d\"\n },\n \"src/app/visibility_phase.cpp\": {\n \"mode\": 420,\n \"sha256\": \"34d9df699af3e57823ec8457c442408da854028f9b95db5820171caad0823131\"\n },\n \"src/app/visibility_phase.h\": {\n \"mode\": 420,\n \"sha256\": \"60db50f5b98c5edafc86a33f982a7773acc291c1a18f9cf23323e53ebadcde27\"\n },\n \"src/game/ai/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"f51509a2699f02ecab9faa1f75feaa38c299e6bbbe08bfbe5e8e86722037f6eb\"\n },\n \"src/game/ai/agent.cpp\": {\n \"mode\": 420,\n \"sha256\": \"e1bbddc3deb797d62ae9c2b24bc811ec9379699992dd838694bd5eadc73feef7\"\n },\n \"src/game/ai/agent.h\": {\n \"mode\": 420,\n \"sha256\": \"48aa26f32d52a3f8f4e37ed5c6986b1e87a8fe1e780d5314514eb5c75b8bc244\"\n },\n \"src/game/ai/apply_order.cpp\": {\n \"mode\": 420,\n \"sha256\": \"122ffea1090382fd01bc505fd30c59557dfec2c9846609d00da6e80109da2253\"\n },\n \"src/game/ai/apply_order.h\": {\n \"mode\": 420,\n \"sha256\": \"a3b7a1ca26243ba0fdd801b78978175db6f76e297a72876fa0a35e12f38e09b3\"\n },\n \"src/game/ai/command_capture.cpp\": {\n \"mode\": 420,\n \"sha256\": \"cb9a1d37af9f66e78d368e03aeabec01e4d48f76aaa30348a51f4c70a915e4ec\"\n },\n \"src/game/ai/command_capture.h\": {\n \"mode\": 420,\n \"sha256\": \"921599e5b2aa8b773db00134618efde687c7d9ba739abd787ec7666f4cfeb78f\"\n },\n \"src/game/ai/orders.cpp\": {\n \"mode\": 420,\n \"sha256\": \"1b775eb1a030bc6e81e5b7702cbf8ad56288860276e8a0475da66f7367542640\"\n },\n \"src/game/ai/orders.h\": {\n \"mode\": 420,\n \"sha256\": \"c2a3b8fe1a7c46a1c1104bc87be8696d9f0782cc304d27cb96d0ec6b182f12ae\"\n },\n \"src/game/ai/tasks.cpp\": {\n \"mode\": 420,\n \"sha256\": \"b05878ccd94c375aac8723c8ea9499f77b98fb94acc5a75a15fa1948dbe83c76\"\n },\n \"src/game/ai/tasks.h\": {\n \"mode\": 420,\n \"sha256\": \"b1de4f89c1679ccfdeaa8b852cb2ce407b71dcd1bffacf97df389a69f6ae3a5d\"\n },\n \"src/game/ai/turn_order.cpp\": {\n \"mode\": 420,\n \"sha256\": \"858b12c51c4509e16a22a6c080d1c6b47bd23d2b8a11f84a48d34f24c4635f22\"\n },\n \"src/game/ai/turn_order.h\": {\n \"mode\": 420,\n \"sha256\": \"3e76710928fc2df52fd8312abfb8f23a2ce162f8e0856f46672a4f46b5b4384f\"\n },\n \"src/game/combat/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"4b3a05c45360e312d6c1d96c1f05a60437d19d2046257835e0d6c70ecc4ce115\"\n },\n \"src/game/combat/retreat.cpp\": {\n \"mode\": 420,\n \"sha256\": \"eede86a4d25289dfc9132d5776b11114a109179e5aa10f2b985035e5b22d7a1f\"\n },\n \"src/game/combat/retreat.h\": {\n \"mode\": 420,\n \"sha256\": \"5fc3e002a5f1944f29c74f862ff942b894e40e88afafd52358373ada36644d7d\"\n },\n \"src/game/config/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"c746021654505c92be333cefb9df994431679d40d8d654b937feb950684830f7\"\n },\n \"src/game/config/config_loader.cpp\": {\n \"mode\": 420,\n \"sha256\": \"d903ba06747e5b7d66400d03ee1f0a9896bf4268bb200dec0b5c8599dbd3d3a1\"\n },\n \"src/game/config/config_loader.h\": {\n \"mode\": 420,\n \"sha256\": \"fda71dee1a4e2b896760e9ac344768e176ea4f0a08609c7d651033a1ee698085\"\n },\n \"src/game/config/manifest_loader.cpp\": {\n \"mode\": 420,\n \"sha256\": \"dbe33dc5ae03db18f3b2c01b48cc1fced10f2cca599270c0a028321a7d7dd7c6\"\n },\n \"src/game/config/manifest_loader.h\": {\n \"mode\": 420,\n \"sha256\": \"68e508b9e6d1222d980b22ae826b127693fdf0821b6539ed9e62a8ec031aa5b5\"\n },\n \"src/game/config/msvc_sort.h\": {\n \"mode\": 420,\n \"sha256\": \"17fcb13bb49a634c80be38299617c6c16fd8addedfa88c53d67242c90b811716\"\n },\n \"src/game/data/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"677ba0dd0ebb8176f4e7c41d5550f2ccedd56d49e7e4acb1eb0a7970e9e98a51\"\n },\n \"src/game/data/block.cpp\": {\n \"mode\": 420,\n \"sha256\": \"f61312708c715ce525ed1a01e71f1446d31fc96ca1cc51f5bd863cac51702200\"\n },\n \"src/game/data/block.h\": {\n \"mode\": 420,\n \"sha256\": \"f14155dfca5fd270ad6b4d462458aa8cd5c5edf5e19da4df492ee2907e99eccc\"\n },\n \"src/game/data/catalog.cpp\": {\n \"mode\": 420,\n \"sha256\": \"7799ad3b31d43236cacbc51c3ab086265927f98b1346005a8adfed2796178ebc\"\n },\n \"src/game/data/catalog.h\": {\n \"mode\": 420,\n \"sha256\": \"80223146bcdbf4808776f974df7e5f46b120a021979a22f50b5ce2d74ec16d6e\"\n },\n \"src/game/data/common.cpp\": {\n \"mode\": 420,\n \"sha256\": \"e58ba046844be11c61f7f7e501829b48b4f16e7c0ab78f10fcf9189c133cf040\"\n },\n \"src/game/data/common.h\": {\n \"mode\": 420,\n \"sha256\": \"d1ac8375c1be133a98a383e01598f393f194e1bd9790d1c1230bc6121a45a187\"\n },\n \"src/game/data/fields.h\": {\n \"mode\": 420,\n \"sha256\": \"4209df368ad776b3c24350246acf47ad874fcbbe292fb16f9ca7dacaef2f08fb\"\n },\n \"src/game/data/shipsection.cpp\": {\n \"mode\": 420,\n \"sha256\": \"82d5ba9be2a446e50934b0b9a03b16839bd3acd1a967d9441180a1baaa271264\"\n },\n \"src/game/data/shipsection.h\": {\n \"mode\": 420,\n \"sha256\": \"bcf100f83691226c4993dd7866b67a0b48d9b4bc6841463fbf07f0f26bf9dca0\"\n },\n \"src/game/data/strings.cpp\": {\n \"mode\": 420,\n \"sha256\": \"6d983d3a4cb4284215301409587136fb765a5e6a4c9f4b988e01d710c0815f59\"\n },\n \"src/game/data/strings.h\": {\n \"mode\": 420,\n \"sha256\": \"fb292bd472ed68eb4a5e93484f3f92d8a0ae8661e6a61ca4b417ab889c508055\"\n },\n \"src/game/data/techtree.cpp\": {\n \"mode\": 420,\n \"sha256\": \"2ac6e39faeef808c97375f3b8a3ee219fcab8cc09921f0ed8d82eef7374eb9ea\"\n },\n \"src/game/data/techtree.h\": {\n \"mode\": 420,\n \"sha256\": \"504946c255405ab28d20d0ed6c095b3b63f0e6865afe0e8bb0707e607c363007\"\n },\n \"src/game/data/turrets.cpp\": {\n \"mode\": 420,\n \"sha256\": \"ce7db50ef10825e168fee2bf57c4b6038dd1a356be7ada9ed6a4f6a4f31b07a4\"\n },\n \"src/game/data/turrets.h\": {\n \"mode\": 420,\n \"sha256\": \"f01603ad32b0ffdf891c88cc54c39a725c6a436f8dda79ac23e7505e59853c64\"\n },\n \"src/game/data/weapon.cpp\": {\n \"mode\": 420,\n \"sha256\": \"accb5aab2081babb26443cd257f292909e19440c40346e098144148922f5d3f6\"\n },\n \"src/game/data/weapon.h\": {\n \"mode\": 420,\n \"sha256\": \"63aeb670ae7b8a1fd6daa35ed60ebe41a87f62a6ec2a12f44b13f9052c55b009\"\n },\n \"src/game/design/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"42692f7917d99fb5b9e392c2d0f1d908b2bc5c61fc2e5687fddbd665dafe0bef\"\n },\n \"src/game/design/defaults.cpp\": {\n \"mode\": 420,\n \"sha256\": \"8efa0b79646525375739a1acfe77e75d5ae6b669d1ecaa01f49f3f5183caf528\"\n },\n \"src/game/design/defaults.h\": {\n \"mode\": 420,\n \"sha256\": \"20af056628f362a4d5ad7ba6277135697718197ec6844ae0ae85bf06d4cd818b\"\n },\n \"src/game/design/design.cpp\": {\n \"mode\": 420,\n \"sha256\": \"e166281c52a6d92fed8810b38bd736cbd2a324f15d290a39a539d01ff35ead20\"\n },\n \"src/game/design/design.h\": {\n \"mode\": 420,\n \"sha256\": \"7e936c78ca10c3a49470da67f1659cf4ee323d14d50b5b2c1ada08edfa8f6997\"\n },\n \"src/game/design/hull.cpp\": {\n \"mode\": 420,\n \"sha256\": \"554b0ef6955ac230c7eca29ea2d94d60b5fbc91f34d9ff457091577c8602268a\"\n },\n \"src/game/design/hull.h\": {\n \"mode\": 420,\n \"sha256\": \"997018e59c9d78ee1da7e7cb9561b94b76befacbe348a4ce3301c5f22b582461\"\n },\n \"src/game/design/rules.cpp\": {\n \"mode\": 420,\n \"sha256\": \"a623984f9ab40c354320051fec00bab2c7e3728c2c90082b3b8051294b906319\"\n },\n \"src/game/design/rules.h\": {\n \"mode\": 420,\n \"sha256\": \"70a8a42fe82e9805cbb957717688ab9f9eb3438226f6e0d696ef5f7a51529229\"\n },\n \"src/game/design/stats.cpp\": {\n \"mode\": 420,\n \"sha256\": \"c05f420a00026289be8693c0d80bbd2354ce354a91a78459cfc8e70467326c54\"\n },\n \"src/game/design/stats.h\": {\n \"mode\": 420,\n \"sha256\": \"ba0a5d3bcc98f5c3e64579d42da70bfdf563773ce2fe1e6bfa2b36b14c453fe5\"\n },\n \"src/game/effects/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"2e20f138f98bc69653c8360a26f99f3f43f35beedea5e90dfd7e9721e7550f89\"\n },\n \"src/game/effects/tech_effects.cpp\": {\n \"mode\": 420,\n \"sha256\": \"40358c2af37543ca3ab09b4d0433cdb4b0d2d212b45f648739cc86e979501604\"\n },\n \"src/game/effects/tech_effects.h\": {\n \"mode\": 420,\n \"sha256\": \"ef70addf2caf1e3abf36ac9d878a8db37d2adbac370957f5b6a0b5825564a0d6\"\n },\n \"src/game/effects/tech_id.cpp\": {\n \"mode\": 420,\n \"sha256\": \"11cd652e81a52e86d72541a5c3de77bb50de3d31226272e0d1856e5a15b7f9a6\"\n },\n \"src/game/effects/tech_id.h\": {\n \"mode\": 420,\n \"sha256\": \"f37752250c80c9c75ef8e144e4646dc1290a2cc8ce72d9a37949c6408996df86\"\n },\n \"src/game/events/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"9b1f14a3801a991ba065e0e39ae2e3fa3966018e8a98fcceeddeaca3909328e2\"\n },\n \"src/game/events/event_log.cpp\": {\n \"mode\": 420,\n \"sha256\": \"3b131879ec5e81cd1ba2bb0cbdfa6e05775ed77684f4ed7a8f5cfae87da1e7b1\"\n },\n \"src/game/events/event_log.h\": {\n \"mode\": 420,\n \"sha256\": \"2ff415b1120ca3f28421006a566280fb977027cfa3f209bdba0986350376a953\"\n },\n \"src/game/events/research_events.cpp\": {\n \"mode\": 420,\n \"sha256\": \"9520b20eba2a2b4bd5925f13b420d526fc610d06aae7ffad314e3002c4f5a253\"\n },\n \"src/game/events/research_events.h\": {\n \"mode\": 420,\n \"sha256\": \"b87340c6b14e9de97e5bc0c5a4cbd74e54bab2831c60edf88c0e42ff5218ea22\"\n },\n \"src/game/nav/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"79cc0ba25c6d49f7784663ace033d01ab3d85a5d8015fe2f466f8f1a3065983a\"\n },\n \"src/game/nav/pathplan.cpp\": {\n \"mode\": 420,\n \"sha256\": \"04cfe8fca5be565f5443c8f1402eb0072221dbd63f70855e35b3eeea752f1775\"\n },\n \"src/game/nav/pathplan.h\": {\n \"mode\": 420,\n \"sha256\": \"28b51f737b458679888e555d985b9e8d41adf8ba91fa0980b5e83668758c86e7\"\n },\n \"src/game/sim/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"4b3085116f88c903a137abef6806891f7b7245dcb031153df7a5465dd2521116\"\n },\n \"src/game/sim/colony.cpp\": {\n \"mode\": 420,\n \"sha256\": \"e0f0bf15d87b6ac2e92053cbfe0869c0dbf9465d90a9bae5456bb46883423b77\"\n },\n \"src/game/sim/colony.h\": {\n \"mode\": 420,\n \"sha256\": \"357dce21440140a6cf836a3c12175ebb5bb6706c37d5ecd315a4ee4937725b47\"\n },\n \"src/game/sim/construction.cpp\": {\n \"mode\": 420,\n \"sha256\": \"8cf4792f487162ca3599f16f0e92d73b4c9549046044548c5aecf202dd564130\"\n },\n \"src/game/sim/construction.h\": {\n \"mode\": 420,\n \"sha256\": \"a7f201101ad704f1994f809259ad60f780760fa36174d99a1ccd9299447f5460\"\n },\n \"src/game/sim/economy.cpp\": {\n \"mode\": 420,\n \"sha256\": \"1e0b17b589496a6139e8ca10fe20553050be7c965a02daf8b520dd5020412d89\"\n },\n \"src/game/sim/economy.h\": {\n \"mode\": 420,\n \"sha256\": \"6f3e33e803bb49367d4cee3c8ef6186f04b79e7cf901047fc48d933108ab6d2a\"\n },\n \"src/game/sim/movement.cpp\": {\n \"mode\": 420,\n \"sha256\": \"80c64b2148304b84683cf3860ced1354f5c29c923bbc50cc5001030dd85c2cd2\"\n },\n \"src/game/sim/movement.h\": {\n \"mode\": 420,\n \"sha256\": \"9a6b2b4960428634d8004cd5694ed6a7a10ab28fd9c0e2a9824ede3e201e9441\"\n },\n \"src/game/sim/numeric.h\": {\n \"mode\": 420,\n \"sha256\": \"88f715192ea322ace4eea13ab5ae55f7f41600262025208e468b5259220522c2\"\n },\n \"src/game/sim/observed.cpp\": {\n \"mode\": 420,\n \"sha256\": \"43d29a9fe1195dcc0b7e6101ea05bfd076f03636f9f68de473539c83db0ddd22\"\n },\n \"src/game/sim/observed.h\": {\n \"mode\": 420,\n \"sha256\": \"0224b5bf341f30ff0e98d910547261b6732bdc0c5339b520e26fc51939c1269f\"\n },\n \"src/game/sim/player_turn.cpp\": {\n \"mode\": 420,\n \"sha256\": \"beb1b2ed434df3727e676ac56e751beff87fa98e4a42e4657cc54d41025773a2\"\n },\n \"src/game/sim/player_turn.h\": {\n \"mode\": 420,\n \"sha256\": \"f24f8f5e161486575cd341c2f5bfed46fa6983263edcf2320e9c24860b4be51a\"\n },\n \"src/game/sim/research.cpp\": {\n \"mode\": 420,\n \"sha256\": \"95f2d325544ee018ec8d0f945e91b4172f6ba406f95e19f86c4fb9aac6b22a89\"\n },\n \"src/game/sim/research.h\": {\n \"mode\": 420,\n \"sha256\": \"e27a311e977afb2e01242938dc8d928e9a67d1f761965e191cf907e05c1c86e9\"\n },\n \"src/game/sim/rng.h\": {\n \"mode\": 420,\n \"sha256\": \"f7e5bbced3dbd37deb49a00b52d05f7c751501d654dabd645ecff7447355929c\"\n },\n \"src/game/sim/scriptobjects.cpp\": {\n \"mode\": 420,\n \"sha256\": \"a4f9a1b49e4ba22a88726efbbea2f355b40a3c006734d9150d509a344720a4d2\"\n },\n \"src/game/sim/scriptobjects.h\": {\n \"mode\": 420,\n \"sha256\": \"210d0eb51780df70a9bca133664429589c03ea33e4524e2c182801d4b4a5c74b\"\n },\n \"src/game/sim/species.h\": {\n \"mode\": 420,\n \"sha256\": \"83b44c0600b99c5acb72a3484bb0708cfba765cdf594aede596a3c47d5ee6298\"\n },\n \"src/game/sim/techgraph.cpp\": {\n \"mode\": 420,\n \"sha256\": \"81f8f1120eb1fa4a77752bd2e0917df3dd76372461416526ae510bd697944ef8\"\n },\n \"src/game/sim/techgraph.h\": {\n \"mode\": 420,\n \"sha256\": \"b2fc90666080a6b7f27dc9290eef17774d57742c2a1f9e1f77d94c7fa5689f6e\"\n },\n \"src/game/sim/tuning.h\": {\n \"mode\": 420,\n \"sha256\": \"4acfad4098de951cc3a94ca25a2f200e96caba1836bf7441de5a2b458c022194\"\n },\n \"src/game/sim/visibility.cpp\": {\n \"mode\": 420,\n \"sha256\": \"25f86a34f9a98d2439672283a446ba1804973dae3f6d9aa3692342b05f3a3ac0\"\n },\n \"src/game/sim/visibility.h\": {\n \"mode\": 420,\n \"sha256\": \"783896489a2a9ec8bce617b141bfb631e8ef92f958be7b5c2ca64fd75774471f\"\n },\n \"src/mars/parse/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"76c290b786a3e73387ec8c574fd5a0dbeb6e629adbe970426314f16497f59fa9\"\n },\n \"src/mars/parse/blocks.cpp\": {\n \"mode\": 420,\n \"sha256\": \"e60baa8127b21cf6eb6c8e2aa02c6a72c6403dbc29e8480ff658bf184266675b\"\n },\n \"src/mars/parse/blocks.h\": {\n \"mode\": 420,\n \"sha256\": \"1e8b76919a584d1d7fb01c5ff5e3a7173e8456eca892d61f0c6b7bb8f02f33b1\"\n },\n \"src/mars/parse/effect.cpp\": {\n \"mode\": 420,\n \"sha256\": \"beb76a841a3d42dbc157413384ff1a0312a7068d6b22020eadcee2e1cbbc81f9\"\n },\n \"src/mars/parse/effect.h\": {\n \"mode\": 420,\n \"sha256\": \"aaa5c83f2d8eef24667bf05d0f71b2a346f2fce09dc9a45d7a5197c894922e44\"\n },\n \"src/mars/parse/result.h\": {\n \"mode\": 420,\n \"sha256\": \"58cff456e353550abcd0f52e031d9d70f2b7a975f4762cfccc64eb6bc748dbd9\"\n },\n \"src/mars/parse/script.h\": {\n \"mode\": 420,\n \"sha256\": \"69a493268c47a08672694489a51c3ff0a7f9aa870e5ae5a93d47ba033cf21ad3\"\n },\n \"src/mars/parse/value.cpp\": {\n \"mode\": 420,\n \"sha256\": \"712133e4d725649f5461e6a46bac6842b0751ac3fb7e1c468f826638ec58f623\"\n },\n \"src/mars/parse/value.h\": {\n \"mode\": 420,\n \"sha256\": \"60d692648dab7e3e216c8d9e6ef212592ba1df1a98260b1b4599354742947b38\"\n },\n \"src/mars/rng/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"dceb4bc0fb35c95a12ed9aa36380e79aa75641b15ecc06e4289d39824087e2dc\"\n },\n \"src/mars/rng/mt19937.cpp\": {\n \"mode\": 420,\n \"sha256\": \"0c60775e9437b8eaad49f67a96001c81947c8d9e6d2472e28b2b490515bac95b\"\n },\n \"src/mars/rng/mt19937.h\": {\n \"mode\": 420,\n \"sha256\": \"300836ab26fd1a4d913b395f08770bb2c248029ef1b80ecbf0c4d886adca2b8e\"\n },\n \"src/mars/stream/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"95ffbb0c519e55b7423ab048a3019e295b7ef3a3e9506044ef2e68569df9601a\"\n },\n \"src/mars/stream/archive.h\": {\n \"mode\": 420,\n \"sha256\": \"84d9ae2bb3d6f444b3933b3816cafd12caee8619d2219f19cd10d32cfad01d2e\"\n },\n \"src/mars/stream/bytes.h\": {\n \"mode\": 420,\n \"sha256\": \"9f5869952c9d6b925db32995a417ba292a0c1a672fc3850400150afb8163b3f1\"\n },\n \"src/mars/stream/dump.cpp\": {\n \"mode\": 420,\n \"sha256\": \"1b5bba86b2f85b1718276f8db557601320ab8a165d5fbfe93e51219cca5a1c16\"\n },\n \"src/mars/stream/dump.h\": {\n \"mode\": 420,\n \"sha256\": \"a69af300ae7083fb0a5362edbe7eecd5273c8807884aff9fbedd7ae606c7fc4f\"\n },\n \"src/mars/stream/gzip.cpp\": {\n \"mode\": 420,\n \"sha256\": \"20d71fd50bd637f78e7ebb5217bc6607ebc257535cc4720e640e4badb72f1644\"\n },\n \"src/mars/stream/gzip.h\": {\n \"mode\": 420,\n \"sha256\": \"6bce52c615eb120999adb1a6f7f06baa813a033c28e02e6d79ce77f5b7a929c9\"\n },\n \"src/mars/stream/node.h\": {\n \"mode\": 420,\n \"sha256\": \"eb43054c8592db107557979c7fc8612dc0646ba5d62f154b9b7f96a37ba2e860\"\n },\n \"src/mars/stream/probe.h\": {\n \"mode\": 420,\n \"sha256\": \"6411d0976d1e785e8c32af6ecfe1a797c0a9aa02314e5e42fae3ed7b3449ae13\"\n },\n \"src/mars/stream/reader.cpp\": {\n \"mode\": 420,\n \"sha256\": \"90f19cbcdb0fc50795895ea1eff09cd6c0ab3069095c49b276f3894e3d6bcbb3\"\n },\n \"src/mars/stream/reader.h\": {\n \"mode\": 420,\n \"sha256\": \"900508d97be1cbe566d77f2c91755d3db387535cd9574e41704b6d940daa1ff4\"\n },\n \"src/mars/stream/save.cpp\": {\n \"mode\": 420,\n \"sha256\": \"6db367b3ea570a4d0ee831160e3f44cef380f58de163b9d9205ca7449e51e049\"\n },\n \"src/mars/stream/save.h\": {\n \"mode\": 420,\n \"sha256\": \"b3a411600d98b42e9014e1fc3cbc3eac5f32f4393e9f72036d3d840c802bb469\"\n },\n \"src/mars/stream/savedump_main.cpp\": {\n \"mode\": 420,\n \"sha256\": \"8dc687f009d9f455e9bfa4019f03df72e058cebbb3e9ae5bcbb308285470208c\"\n },\n \"src/mars/stream/schema.h\": {\n \"mode\": 420,\n \"sha256\": \"b1cd64bc43076a3e5893239bd2eb5c216e7293ee541322ef74fb106928183a05\"\n },\n \"src/mars/stream/shapes.h\": {\n \"mode\": 420,\n \"sha256\": \"45ee379ff8100b6bc27427a2580d7aae19ff3d5d0aa27f682d156ae6a92d0a6d\"\n },\n \"src/mars/stream/writer.cpp\": {\n \"mode\": 420,\n \"sha256\": \"54804b06266e34793f5294f9a96d2939d641915a0f60fc4e3b4170bfcea6e083\"\n },\n \"src/mars/stream/writer.h\": {\n \"mode\": 420,\n \"sha256\": \"921cd44ea30e0b9944825b1d2caafc46edc8f2c23506c807050ed9208a397340\"\n },\n \"src/mars/text/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"dccb93b37c21c9b3c3b35a50ca8de55c9f00df2a9e0a33b6c36d659a75455436\"\n },\n \"src/mars/text/csv.cpp\": {\n \"mode\": 420,\n \"sha256\": \"b190e12b86a3f416a72c110caf9e0b2d98cdd33851d2fa48b55a8d7ea39279af\"\n },\n \"src/mars/text/csv.h\": {\n \"mode\": 420,\n \"sha256\": \"3b7ec6d0884e95bfab869c253eddc30a802602bd1f230cc69461cb9cf3c17917\"\n },\n \"src/mars/text/flat_kv.cpp\": {\n \"mode\": 420,\n \"sha256\": \"b98d3b7345489f0b149e56cd15436fd6199e4cf00d7ce3f8b8b31fcdecb90e47\"\n },\n \"src/mars/text/flat_kv.h\": {\n \"mode\": 420,\n \"sha256\": \"d6765cd42cad46597b6e36e9d08baf6819f7796442293043d5ff686e2376d292\"\n },\n \"src/mars/text/lines.h\": {\n \"mode\": 420,\n \"sha256\": \"b9a16ccf0dc7bbf36100e0b66c80bcb818590b161f820d3c67d55bccff1c2c65\"\n },\n \"src/mars/text/manifest.cpp\": {\n \"mode\": 420,\n \"sha256\": \"4da1bb615902ec61883e561f5dd375d89442f7b9046fbc864f6308f27921087e\"\n },\n \"src/mars/text/manifest.h\": {\n \"mode\": 420,\n \"sha256\": \"dd7351a7a6a144e97f3a3b6a25d22d1518a099e95deadb8965cedb201601e102\"\n },\n \"src/mars/text/result.h\": {\n \"mode\": 420,\n \"sha256\": \"7f817033811dff6fcef1d5b76f88922cb0392afb4359549876cd017a14755606\"\n },\n \"src/mars/text/value.cpp\": {\n \"mode\": 420,\n \"sha256\": \"94b433d78f3211e1a4dd9eb8a0a00b514cbeaf63a03e738146c56dbbfe221479\"\n },\n \"src/mars/text/value.h\": {\n \"mode\": 420,\n \"sha256\": \"d3b5c70af2f339ad27b43c38353fc7a2da83388854b02000fa1b6d9a4e1dfc07\"\n },\n \"src/mars/vfs/CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"630d5d4707ef3c0f24a414815cc23158853fe9d5aef429d6619abc1c433b3786\"\n },\n \"src/mars/vfs/path.cpp\": {\n \"mode\": 420,\n \"sha256\": \"e1f3bbab1f90b0132aec24d8c5997dafab69ec72f01f2dd2fa63c91f83ef7aeb\"\n },\n \"src/mars/vfs/path.h\": {\n \"mode\": 420,\n \"sha256\": \"043091008f2cab7c88185de63e7aae63ad9b0e384109f5b6fd8c31666c4e2033\"\n },\n \"src/mars/vfs/result.h\": {\n \"mode\": 420,\n \"sha256\": \"19115bf1c5b3bf01da078a49209230053043610b342b01cdaaed126e2d3ea748\"\n },\n \"src/mars/vfs/vfs.cpp\": {\n \"mode\": 420,\n \"sha256\": \"ab8272cd14b4b55e7af13f5383d6106f0b1caabdde57e69c1d0fb5b434d31cba\"\n },\n \"src/mars/vfs/vfs.h\": {\n \"mode\": 420,\n \"sha256\": \"2484231baa64ede6fc35eb0f49e1fd7a3373d5c559f016d5adfb9fc433619d90\"\n },\n \"src/mars/vfs/zip_archive.cpp\": {\n \"mode\": 420,\n \"sha256\": \"d66e70300539bd42bcf193683df7c34d2b0b03146fd79f0a180385ead1559e87\"\n },\n \"src/mars/vfs/zip_archive.h\": {\n \"mode\": 420,\n \"sha256\": \"0ffbd90f7919741e63e86e14d0f87d247bc2cd16d2db54771071553249ad935d\"\n },\n \"src/shim/binkw32.def\": {\n \"mode\": 420,\n \"sha256\": \"fb500fd9f9ecbff44123b89fc24cec72e91fec4c4430ce12a69efc06b20de235\"\n },\n \"src/shim/fpu_force.cpp\": {\n \"mode\": 420,\n \"sha256\": \"c4b4e41a7ef81139c652ba8164ed8bb0d809b42182f0d0f048b9a9e63bebe59d\"\n },\n \"src/shim/fpu_force.h\": {\n \"mode\": 420,\n \"sha256\": \"75bac23bc45510961f6b10d21c47e72d8dc0d3971a3ab30b795cad1d25332c06\"\n },\n \"src/shim/hooks/ai_orders.cpp\": {\n \"mode\": 420,\n \"sha256\": \"091ed885012fffa0e02b83c53e547483dfdeaf1094933726e0291fff0a99e434\"\n },\n \"src/shim/hooks/ai_orders.h\": {\n \"mode\": 420,\n \"sha256\": \"6e775b3f946f2eaf10dc2e236a3f3c7b9311ed4e82cd4be1ca30e6c62d49d053\"\n },\n \"src/shim/hooks/ai_rng.cpp\": {\n \"mode\": 420,\n \"sha256\": \"b8fec711cb620561c8f4854e72c3fb0d73013c9b1cd69fa63fc05dd3d2f60289\"\n },\n \"src/shim/hooks/ai_rng.h\": {\n \"mode\": 420,\n \"sha256\": \"1306f4d3c8071121b06c75232efa5c50b155c1f8752fcae852ee8e5497ce7d08\"\n },\n \"src/shim/hooks/ai_visit.cpp\": {\n \"mode\": 420,\n \"sha256\": \"cd69811074820810edb1ed3779ca08bd99fea620b162d80a0395d35e8db7fc31\"\n },\n \"src/shim/hooks/ai_visit.h\": {\n \"mode\": 420,\n \"sha256\": \"8315b433319f680e80a154409124355ad24842e9a0cdef5c8aa6d12422971189\"\n },\n \"src/shim/hooks/budget_inputs.cpp\": {\n \"mode\": 420,\n \"sha256\": \"fa50fb74a3874886cf8aeb4012b9fd9a5a43ce38ab3c543ee425002ca32fd46b\"\n },\n \"src/shim/hooks/budget_inputs.h\": {\n \"mode\": 420,\n \"sha256\": \"56e2f95930ff420820a3464162fde74ac0a3ff2e1dc8b493729fed342e4a6548\"\n },\n \"src/shim/hooks/colony_inputs.cpp\": {\n \"mode\": 420,\n \"sha256\": \"7aa9191ec6292d765fd06c99ff1f2ae2e09a65fb1f238dd2727f28bd465dd46e\"\n },\n \"src/shim/hooks/colony_inputs.h\": {\n \"mode\": 420,\n \"sha256\": \"87ec765e14106631e3f6423450e6e01d5bb21060fa91f83c267db215ef4986d9\"\n },\n \"src/shim/hooks/colony_turn.cpp\": {\n \"mode\": 420,\n \"sha256\": \"b82616c7b9b05e96e7f4c40d853c686884b517a5424413686d61799df9d45420\"\n },\n \"src/shim/hooks/colony_turn.h\": {\n \"mode\": 420,\n \"sha256\": \"a9013cc2e92998ff56ac0c8cc36dc42033fbe3072ee88b86882a1dd4dd0357d6\"\n },\n \"src/shim/hooks/compute_budget.cpp\": {\n \"mode\": 420,\n \"sha256\": \"76a24f0daf1f49cfabbed13753c65754e26bfcc4f672791b37e926f82b5c1906\"\n },\n \"src/shim/hooks/compute_budget.h\": {\n \"mode\": 420,\n \"sha256\": \"f308717e44e12151cfb20a6a0cf11ff8e99ecc9c17ef04783198feed05a24caa\"\n },\n \"src/shim/hooks/dictionaries.cpp\": {\n \"mode\": 420,\n \"sha256\": \"b60794256c07964eb89d5295ecb711b402112fe5f982a9215dc3a304d03a567b\"\n },\n \"src/shim/hooks/dictionaries.h\": {\n \"mode\": 420,\n \"sha256\": \"ac68fd66eb343d40ee97d6bf29c8b54f5d469a9ef8862687ae15e6ad8bdafdc0\"\n },\n \"src/shim/hooks/draw_sites.cpp\": {\n \"mode\": 420,\n \"sha256\": \"e7a1fa40262db2ed22b1dfa5ca1bd2588da07bfbab046f23afa8e86c03814d79\"\n },\n \"src/shim/hooks/draw_sites.h\": {\n \"mode\": 420,\n \"sha256\": \"0021323e918d464223d03b969d0e6992a0efac23ba84a31af901cf2ac74e9b13\"\n },\n \"src/shim/hooks/event_inputs.cpp\": {\n \"mode\": 420,\n \"sha256\": \"eeb9cc87ef5c39994b7f25d5ccfe220c4775b32a4b11471b0fc0fb81fca4362b\"\n },\n \"src/shim/hooks/event_inputs.h\": {\n \"mode\": 420,\n \"sha256\": \"c0e74aed8756b3de8ebbe5ab3d70cfa6282403efefc2d795e8f0b1b4cd44d731\"\n },\n \"src/shim/hooks/fleet_movement.cpp\": {\n \"mode\": 420,\n \"sha256\": \"f01ae7f64b1d545089b002b79c9986d2a39b97ad3995c88a8b71fa05eedb90f0\"\n },\n \"src/shim/hooks/fleet_movement.h\": {\n \"mode\": 420,\n \"sha256\": \"dbbfe50afaedad63ec45881819aa5de3907cdb411ddf8d1d3e6a5f9a386dc8af\"\n },\n \"src/shim/hooks/global_consts.cpp\": {\n \"mode\": 420,\n \"sha256\": \"87a51601e1a7d963bf841ca4e892aa79de789a050f5d783c7b5d8bbc2e96a9a1\"\n },\n \"src/shim/hooks/global_consts.h\": {\n \"mode\": 420,\n \"sha256\": \"b6ac4265ec1f02f11c342536dbc9970c13761ea68aec0a5962d0f4cd6aa5d265\"\n },\n \"src/shim/hooks/movement_inputs.cpp\": {\n \"mode\": 420,\n \"sha256\": \"0e23f86e4a8ed6c292aea8e45512931cdd06742f25c5e0d175bf0ed3b2217502\"\n },\n \"src/shim/hooks/movement_inputs.h\": {\n \"mode\": 420,\n \"sha256\": \"32904786cbb122c3c8c36faf6bd9ea5ade4cd8395e74199ec08dbcdb8019b66a\"\n },\n \"src/shim/hooks/player_turn.cpp\": {\n \"mode\": 420,\n \"sha256\": \"33bcadd7569ad13c69f5f160423c8d469bc67725ce7b944cf4b4346fb8cc7f23\"\n },\n \"src/shim/hooks/player_turn.h\": {\n \"mode\": 420,\n \"sha256\": \"a766a0d93f3860da6f8d1e0dcf110d6754cd8dfe67d867093f32e3d24e8ff0e0\"\n },\n \"src/shim/hooks/player_turn_inputs.cpp\": {\n \"mode\": 420,\n \"sha256\": \"993dce2ca771a36337c9561695995a0825746563d2e84b4458de650f3e456799\"\n },\n \"src/shim/hooks/player_turn_inputs.h\": {\n \"mode\": 420,\n \"sha256\": \"ca0d7916ca17d993aaef19be48d03076220ae15cdcc622aef52a7c6b5957ca71\"\n },\n \"src/shim/hooks/probe_entry.cpp\": {\n \"mode\": 420,\n \"sha256\": \"5faf9cf04a2cf849d2dd54ce4ad9b812120fb99741f11e9d52fed450badf0506\"\n },\n \"src/shim/hooks/probe_entry.h\": {\n \"mode\": 420,\n \"sha256\": \"f04f445863a6164d03bc9f6edcaa2e2b0108163241510f4c1dfcb0da7667d89f\"\n },\n \"src/shim/hooks/research.cpp\": {\n \"mode\": 420,\n \"sha256\": \"dacd16403f1dd5be2ef2cc42f16938977bdd0ee9283d0bca647a079ee3d28e83\"\n },\n \"src/shim/hooks/research.h\": {\n \"mode\": 420,\n \"sha256\": \"a62c4847be81ed9d10c4f5b9a876bd79898040aa11aa8764149d82db4b010a84\"\n },\n \"src/shim/hooks/rng_ledger.cpp\": {\n \"mode\": 420,\n \"sha256\": \"119d325fcda72268bdc87f7ca7af05d059d4521c4d7d40ad7426ce070865eabb\"\n },\n \"src/shim/hooks/rng_ledger.h\": {\n \"mode\": 420,\n \"sha256\": \"0d1e9c79e7601da921253e860c55d9b69c21e03a1014c49f1dd85fd0e5f70f30\"\n },\n \"src/shim/hooks/system_output.cpp\": {\n \"mode\": 420,\n \"sha256\": \"93bfb7e6ca381041d1e9830f82b8d774a63c12593fc426fd3e9198c9373be3b4\"\n },\n \"src/shim/hooks/system_output.h\": {\n \"mode\": 420,\n \"sha256\": \"62a8424c70bb8e6c3d9603ce752f6b19a3920a4a78be75718869d7dac73f3738\"\n },\n \"src/shim/hooks/tail_rng.cpp\": {\n \"mode\": 420,\n \"sha256\": \"9b2a3923d1d837399f3486650ef0e49b502837ff7df46a12df9a9e9b0d4d9d07\"\n },\n \"src/shim/hooks/tail_rng.h\": {\n \"mode\": 420,\n \"sha256\": \"b9585605e71364872db25c608012e94db2148f22e2e6fd40d4b590a83f3be92b\"\n },\n \"src/shim/hooks/tech_effect_fields.cpp\": {\n \"mode\": 420,\n \"sha256\": \"4c4d558aba3ac4e1b10e0944c867911e61daea0b4ade716760546846cebcb7b3\"\n },\n \"src/shim/hooks/tech_effect_fields.h\": {\n \"mode\": 420,\n \"sha256\": \"22b2c050f73c9de011a42dc5a52d92a1bd3b24a59f3ba3b4332d832fb1853420\"\n },\n \"src/shim/hooks/tech_effects.cpp\": {\n \"mode\": 420,\n \"sha256\": \"2a20f01a18ed30a466e2023ae023aeed8718c680cda927d2f3b463b6dbe35714\"\n },\n \"src/shim/hooks/tech_effects.h\": {\n \"mode\": 420,\n \"sha256\": \"ffbc4e8262146cd7764f0b9758fff01ce5d359b25a0f5d8c931313f32d035320\"\n },\n \"src/shim/hooks/watchpoints.cpp\": {\n \"mode\": 420,\n \"sha256\": \"15c94333f22bb592129efe3fb800ea89987045f9ebbc0e6791d4397961fd727d\"\n },\n \"src/shim/hooks/watchpoints.h\": {\n \"mode\": 420,\n \"sha256\": \"639ae42b230fb31762f50cac0422dcd5b7fda7a1a02c7739a86d1cd6eda62277\"\n },\n \"src/shim/main.cpp\": {\n \"mode\": 420,\n \"sha256\": \"eebdac7f8f69b8b95cd290c96d41c6f3f0ed5c45ccd5de54ffc790af47083b99\"\n },\n \"src/shim/shim.cfg\": {\n \"mode\": 420,","lineStart":1,"lineEnd":1211,"totalLines":1212,"truncated":true}},"title":"campaign/runtime/runs/run-472955e277202c411388c66b.json","time":{"start":1789013375795,"end":1789013375805}},"metadata":{"openai":{"itemId":"fc_0e9fc23ee289467f016aa22d7f3d9c87d1a25b46fd5a04d139"}},"id":"prt_08981bb22001OBJXApSLRgJnJG","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089817bcf0013nOtPWrROY0nly"}} +{"type":"tool_use","timestamp":1789013375843,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_NN5hQFlLNL7F6rHAHZUYO2Ox","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/runs/active-research-live-record-bridge.json"},"output":"/home/alex/sots-re/campaign/runtime/runs/active-research-live-record-bridge.json\nfile\n\n1: {\n2: \"contract\": \"research-live-record-bridge\",\n3: \"run\": \"run-472955e277202c411388c66b\",\n4: \"status\": \"running\"\n5: }\n\n(End of file - total 5 lines)\n","metadata":{"preview":"{\n \"contract\": \"research-live-record-bridge\",\n \"run\": \"run-472955e277202c411388c66b\",\n \"status\": \"running\"\n}","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/runs/active-research-live-record-bridge.json","text":"{\n \"contract\": \"research-live-record-bridge\",\n \"run\": \"run-472955e277202c411388c66b\",\n \"status\": \"running\"\n}","lineStart":1,"lineEnd":5,"totalLines":5,"truncated":false}},"title":"campaign/runtime/runs/active-research-live-record-bridge.json","time":{"start":1789013375821,"end":1789013375842}},"metadata":{"openai":{"itemId":"fc_0e9fc23ee289467f016aa22d7f3da487d1a98e40b5dde6e4b1"}},"id":"prt_08981bb350015zJ04ab23hm7CV","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089817bcf0013nOtPWrROY0nly"}} +{"type":"tool_use","timestamp":1789013375984,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_pTaHgUyODHsRWISFFME4238a","state":{"status":"completed","input":{"command":"python3 tools/campaign.py --state-root /home/alex/sots-re source-binding research-live-record-bridge --engine-worktree /tmp/opencode/sots-final-research-engine --re-worktree /tmp/opencode/sots-final-research-re","timeout":120000,"workdir":"/home/alex/sots-re"},"output":"{\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/tmp/opencode/sots-final-research-engine\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/tmp/opencode/sots-final-research-re\",\n \"sha256\": \"6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8\"\n }\n}\n","metadata":{"output":"{\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/tmp/opencode/sots-final-research-engine\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/tmp/opencode/sots-final-research-re\",\n \"sha256\": \"6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8\"\n }\n}\n","exit":0,"truncated":false},"title":"python3 tools/campaign.py --state-root /home/alex/sots-re source-binding research-live-record-bridge --engine-worktree /tmp/opencode/sots-final-research-engine --re-worktree /tmp/opencode/sots-final-research-re","time":{"start":1789013375826,"end":1789013375982}},"metadata":{"openai":{"itemId":"fc_0e9fc23ee289467f016aa22d7f3da887d197a66db6207e87c1"}},"id":"prt_08981bb4f001Zuqv2unT1biVTT","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089817bcf0013nOtPWrROY0nly"}} +{"type":"tool_use","timestamp":1789013376122,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_g5sAxapVYEgjTY8tDPEYuh9Q","state":{"status":"completed","input":{"command":"python3 tools/campaign.py --state-root /home/alex/sots-re lease show vm144","workdir":"/home/alex/sots-re"},"output":"{\n \"explicit_lead_release\": false,\n \"model\": \"openai/gpt-5.5\",\n \"owner\": \"housekeeping-completion\",\n \"release_reason\": null,\n \"released_at\": \"2026-09-09T22:03:21.248149+00:00\",\n \"released_by\": \"housekeeping-completion\",\n \"resource\": \"vm144\",\n \"role\": \"lab\",\n \"schema\": \"sots-lease/1\",\n \"status\": \"released\",\n \"timestamp\": \"2026-09-09T21:56:15.518234+00:00\",\n \"token\": \"e56f3ae337d7d1fbd922dc0843553d8c418078c94ce4e28b3279bee9c4f1cabc\"\n}\n","metadata":{"output":"{\n \"explicit_lead_release\": false,\n \"model\": \"openai/gpt-5.5\",\n \"owner\": \"housekeeping-completion\",\n \"release_reason\": null,\n \"released_at\": \"2026-09-09T22:03:21.248149+00:00\",\n \"released_by\": \"housekeeping-completion\",\n \"resource\": \"vm144\",\n \"role\": \"lab\",\n \"schema\": \"sots-lease/1\",\n \"status\": \"released\",\n \"timestamp\": \"2026-09-09T21:56:15.518234+00:00\",\n \"token\": \"e56f3ae337d7d1fbd922dc0843553d8c418078c94ce4e28b3279bee9c4f1cabc\"\n}\n","exit":0,"truncated":false},"title":"python3 tools/campaign.py --state-root /home/alex/sots-re lease show vm144","time":{"start":1789013376074,"end":1789013376120}},"metadata":{"openai":{"itemId":"fc_0e9fc23ee289467f016aa22d7f3db087d19856f17d088fb594"}},"id":"prt_08981bb57001x77QbPdRxkbFc6","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089817bcf0013nOtPWrROY0nly"}} +{"type":"step_finish","timestamp":1789013376214,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08981bcd30019gH6HZKSgtnb28","reason":"tool-calls","snapshot":"02206fb5d224a48d8137022cdf106f71d52efe22","messageID":"msg_089817bcf0013nOtPWrROY0nly","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":44806,"input":3920,"output":301,"reasoning":137,"cache":{"write":0,"read":40448}},"cost":0}} +{"type":"step_start","timestamp":1789013378941,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08981c779001QDjd4dAS3GcV7m","messageID":"msg_08981bcff0011oBIdI2d57v941","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"7b5e06737e762c5be7cfd7638f1fcc02c2e5f98c","type":"step-start"}} +{"type":"tool_use","timestamp":1789013385435,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"todowrite","callID":"call_7reDYLLEs0RBiBA5bZ2A5gs6","state":{"status":"completed","input":{"todos":[{"content":"Read canonical campaign guidance, contract, checkpoint, and open surprises","status":"completed","priority":"high"},{"content":"Verify source, worktree, and resource identities against checkpoint/contract","status":"completed","priority":"high"},{"content":"Perform approved architecture-review work within owned scope","status":"in_progress","priority":"high"},{"content":"Validate owned-scope changes and campaign state","status":"pending","priority":"high"},{"content":"Write mandatory fresh canonical checkpoint with one exact next action","status":"pending","priority":"high"}]},"output":"[\n {\n \"content\": \"Read canonical campaign guidance, contract, checkpoint, and open surprises\",\n \"status\": \"completed\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Verify source, worktree, and resource identities against checkpoint/contract\",\n \"status\": \"completed\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Perform approved architecture-review work within owned scope\",\n \"status\": \"in_progress\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Validate owned-scope changes and campaign state\",\n \"status\": \"pending\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Write mandatory fresh canonical checkpoint with one exact next action\",\n \"status\": \"pending\",\n \"priority\": \"high\"\n }\n]","metadata":{"todos":[{"content":"Read canonical campaign guidance, contract, checkpoint, and open surprises","status":"completed","priority":"high"},{"content":"Verify source, worktree, and resource identities against checkpoint/contract","status":"completed","priority":"high"},{"content":"Perform approved architecture-review work within owned scope","status":"in_progress","priority":"high"},{"content":"Validate owned-scope changes and campaign state","status":"pending","priority":"high"},{"content":"Write mandatory fresh canonical checkpoint with one exact next action","status":"pending","priority":"high"}],"truncated":false},"title":"3 todos","time":{"start":1789013385431,"end":1789013385433}},"metadata":{"openai":{"itemId":"fc_0b99b26adda03244016aa22d85dff887d1b67e084a277ae02f"}},"id":"prt_08981d337001SeiE6OKgEDnpNU","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08981bcff0011oBIdI2d57v941"}} +{"type":"step_finish","timestamp":1789013385541,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08981e14300163hMKWdlZYONA5","reason":"tool-calls","snapshot":"9824b67870e9fde1b1f51679206a510e8804d793","messageID":"msg_08981bcff0011oBIdI2d57v941","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":70430,"input":25938,"output":129,"reasoning":75,"cache":{"write":0,"read":44288}},"cost":0}} +{"type":"step_start","timestamp":1789013388662,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08981ed72001g5aSjS5J9a4Xrp","messageID":"msg_08981e17a001tah5kXxvZcLbKF","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"dbabb25a266bb20020f189b5f88d1100ca4bba13","type":"step-start"}} +{"type":"tool_use","timestamp":1789013411300,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_F1fsCzAP7IyDUOTH56c0rz9n","state":{"status":"completed","input":{"command":"python3 tools/campaign.py --state-root /home/alex/sots-re checkpoint research-live-record-bridge --actor \"live-record bridge architect\" --role architecture-review --model openai/gpt-5.6-sol --session run-472955e277202c411388c66b --summary 'PRE-EXPERIMENT CHECKPOINT. OBSERVATIONS: canonical contract is needs-revision with dependency research-completion-abi accepted and no open surprises. Requested model openai/gpt-5.6-sol is present in opencode models and matches campaign/models.json. Assigned engine worktree HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23, git common dir /home/alex/sots-engine/.git, source digest ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd. Assigned RE worktree HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7, git common dir /home/alex/sots-re/.git, source digest 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Both match contract baseline and recorded paired paths; dirty manifests are pre-existing and source-bound. Canonical RE HEAD is 7a780b7f22912a5f835e512f30ca3790c0193b1d and differs from baseline as expected for campaign state. Binary SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and /usr/bin/objdump SHA256 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd match the planning package. VM144 lease is released; no lab resource will be touched. Campaign validation passes. DECISION: perform only the checkpoint-directed read-only local-binary capture of EventStorage get/create TurnEvents 0x00885380 and directly invoked helper windows into a new immutable run directory, then update only owned architecture artifacts. No engine implementation, VM, Ghidra, build-host, commit, stage, push or delegation.' --artifact campaign/research/research-live-record-bridge.md --artifact campaign/research/research-live-record-addresses.json --artifact verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json --next-action 'Run pinned /usr/bin/objdump read-only captures for 0x00885380 and each directly invoked TurnEvents helper into verify/results/research-live-record-bridge/run-472955e277202c411388c66b/, recording exact argv, stdout/stderr hashes and return codes.'","timeout":120000,"workdir":"/home/alex/sots-re"},"output":"{\n \"actor\": \"live-record bridge architect\",\n \"artifacts\": [\n {\n \"path\": \"campaign/research/research-live-record-bridge.md\",\n \"sha256\": \"07f096d4ef2bc0104f52ab7e17727e9bd856393557084bfbd98b455930a00df6\"\n },\n {\n \"path\": \"campaign/research/research-live-record-addresses.json\",\n \"sha256\": \"1bb9364fcb8cda6c3339165ff3f35ab4a6e23ad5355358200465e5fb19c746a1\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json\",\n \"sha256\": \"b60b5c956968477b6c2a0422115b3bf92942c474af0254a21723e47e45020bf3\"\n }\n ],\n \"basis\": \"6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"6bbfc33bf92bea8f03b42aaf\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"next_action\": \"Run pinned /usr/bin/objdump read-only captures for 0x00885380 and each directly invoked TurnEvents helper into verify/results/research-live-record-bridge/run-472955e277202c411388c66b/, recording exact argv, stdout/stderr hashes and return codes.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-checkpoint/1\",\n \"session\": \"run-472955e277202c411388c66b\",\n \"summary\": \"PRE-EXPERIMENT CHECKPOINT. OBSERVATIONS: canonical contract is needs-revision with dependency research-completion-abi accepted and no open surprises. Requested model openai/gpt-5.6-sol is present in opencode models and matches campaign/models.json. Assigned engine worktree HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23, git common dir /home/alex/sots-engine/.git, source digest ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd. Assigned RE worktree HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7, git common dir /home/alex/sots-re/.git, source digest 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Both match contract baseline and recorded paired paths; dirty manifests are pre-existing and source-bound. Canonical RE HEAD is 7a780b7f22912a5f835e512f30ca3790c0193b1d and differs from baseline as expected for campaign state. Binary SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and /usr/bin/objdump SHA256 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd match the planning package. VM144 lease is released; no lab resource will be touched. Campaign validation passes. DECISION: perform only the checkpoint-directed read-only local-binary capture of EventStorage get/create TurnEvents 0x00885380 and directly invoked helper windows into a new immutable run directory, then update only owned architecture artifacts. No engine implementation, VM, Ghidra, build-host, commit, stage, push or delegation.\",\n \"timestamp\": \"2026-09-10T04:10:11.274733+00:00\"\n}\n","metadata":{"output":"{\n \"actor\": \"live-record bridge architect\",\n \"artifacts\": [\n {\n \"path\": \"campaign/research/research-live-record-bridge.md\",\n \"sha256\": \"07f096d4ef2bc0104f52ab7e17727e9bd856393557084bfbd98b455930a00df6\"\n },\n {\n \"path\": \"campaign/research/research-live-record-addresses.json\",\n \"sha256\": \"1bb9364fcb8cda6c3339165ff3f35ab4a6e23ad5355358200465e5fb19c746a1\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json\",\n \"sha256\": \"b60b5c956968477b6c2a0422115b3bf92942c474af0254a21723e47e45020bf3\"\n }\n ],\n \"basis\": \"6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"6bbfc33bf92bea8f03b42aaf\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"next_action\": \"Run pinned /usr/bin/objdump read-only captures for 0x00885380 and each directly invoked TurnEvents helper into verify/results/research-live-record-bridge/run-472955e277202c411388c66b/, recording exact argv, stdout/stderr hashes and return codes.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-checkpoint/1\",\n \"session\": \"run-472955e277202c411388c66b\",\n \"summary\": \"PRE-EXPERIMENT CHECKPOINT. OBSERVATIONS: canonical contract is needs-revision with dependency research-completion-abi accepted and no open surprises. Requested model openai/gpt-5.6-sol is present in opencode models and matches campaign/models.json. Assigned engine worktree HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23, git common dir /home/alex/sots-engine/.git, source digest ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd. Assigned RE worktree HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7, git common dir /home/alex/sots-re/.git, source digest 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Both match contract baseline and recorded paired paths; dirty manifests are pre-existing and source-bound. Canonical RE HEAD is 7a780b7f22912a5f835e512f30ca3790c0193b1d and differs from baseline as expected for campaign state. Binary SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and /usr/bin/objdump SHA256 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd match the planning package. VM144 lease is released; no lab resource will be touched. Campaign validation passes. DECISION: perform only the checkpoint-directed read-only local-binary capture of EventStorage get/create TurnEvents 0x00885380 and directly invoked helper windows into a new immutable run directory, then update only owned architecture artifacts. No engine implementation, VM, Ghidra, build-host, commit, stage, push or delegation.\",\n \"timestamp\": \"2026-09-10T04:10:11.274733+00:00\"\n}\n","exit":0,"truncated":false},"title":"python3 tools/campaign.py --state-root /home/alex/sots-re checkpoint research-live-record-bridge --actor \"live-record bridge architect\" --role architecture-review --model openai/gpt-5.6-sol --session run-472955e277202c411388c66b --summary 'PRE-EXPERIMENT CHECKPOINT. OBSERVATIONS: canonical contract is needs-revision with dependency research-completion-abi accepted and no open surprises. Requested model openai/gpt-5.6-sol is present in opencode models and matches campaign/models.json. Assigned engine worktree HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23, git common dir /home/alex/sots-engine/.git, source digest ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd. Assigned RE worktree HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7, git common dir /home/alex/sots-re/.git, source digest 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Both match contract baseline and recorded paired paths; dirty manifests are pre-existing and source-bound. Canonical RE HEAD is 7a780b7f22912a5f835e512f30ca3790c0193b1d and differs from baseline as expected for campaign state. Binary SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and /usr/bin/objdump SHA256 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd match the planning package. VM144 lease is released; no lab resource will be touched. Campaign validation passes. DECISION: perform only the checkpoint-directed read-only local-binary capture of EventStorage get/create TurnEvents 0x00885380 and directly invoked helper windows into a new immutable run directory, then update only owned architecture artifacts. No engine implementation, VM, Ghidra, build-host, commit, stage, push or delegation.' --artifact campaign/research/research-live-record-bridge.md --artifact campaign/research/research-live-record-addresses.json --artifact verify/results/research-live-record-bridge/run-e21ce0d2909d8647e6a99a7b/manifest.json --next-action 'Run pinned /usr/bin/objdump read-only captures for 0x00885380 and each directly invoked TurnEvents helper into verify/results/research-live-record-bridge/run-472955e277202c411388c66b/, recording exact argv, stdout/stderr hashes and return codes.'","time":{"start":1789013411230,"end":1789013411298}},"metadata":{"openai":{"itemId":"fc_09420c8d3f80b21c016aa22d8c860887d1848a241be16b54c2"}},"id":"prt_08981ed74001id0V6bEUcGriBG","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08981e17a001tah5kXxvZcLbKF"}} +{"type":"step_finish","timestamp":1789013411381,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08982463200134QpNmy0O9kZ7j","reason":"tool-calls","snapshot":"2fade25128a6f3d3ce170dca9d410006d104b9d0","messageID":"msg_08981e17a001tah5kXxvZcLbKF","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":71297,"input":473,"output":680,"reasoning":0,"cache":{"write":0,"read":70144}},"cost":0}} +{"type":"step_start","timestamp":1789013413129,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089824d06001JFrOXXIemBm4Pv","messageID":"msg_08982466c001QSi4xUeAHvvXtt","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"ea26f18c79a8e65a02e588613e3aafa721369cb2","type":"step-start"}} +{"type":"tool_use","timestamp":1789013421350,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_ImnBTf3B5LT3i6iz5SoqtLp1","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/turn-get-create.stdout.txt"},"output":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/turn-get-create.stdout.txt\nfile\n\n1: \n2: /home/alex/sots-re/dumps/sots.exe: file format pei-i386\n3: \n4: \n5: Disassembly of section .text:\n6: \n7: 00885380 <.text+0x484380>:\n8: 885380:\t55 \tpush ebp\n9: 885381:\t8b ec \tmov ebp,esp\n10: 885383:\t6a ff \tpush 0xffffffff\n11: 885385:\t68 30 af 99 00 \tpush 0x99af30\n12: 88538a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n13: 885390:\t50 \tpush eax\n14: 885391:\t83 ec 18 \tsub esp,0x18\n15: 885394:\t53 \tpush ebx\n16: 885395:\t56 \tpush esi\n17: 885396:\t57 \tpush edi\n18: 885397:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n19: 88539c:\t33 c5 \txor eax,ebp\n20: 88539e:\t50 \tpush eax\n21: 88539f:\t8d 45 f4 \tlea eax,[ebp-0xc]\n22: 8853a2:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n23: 8853a8:\t8b f1 \tmov esi,ecx\n24: 8853aa:\t8b 56 08 \tmov edx,DWORD PTR [esi+0x8]\n25: 8853ad:\t2b 56 04 \tsub edx,DWORD PTR [esi+0x4]\n26: 8853b0:\t8d 4e 04 \tlea ecx,[esi+0x4]\n27: 8853b3:\tb8 ab aa aa 2a \tmov eax,0x2aaaaaab\n28: 8853b8:\tf7 ea \timul edx\n29: 8853ba:\tc1 fa 02 \tsar edx,0x2\n30: 8853bd:\t8b c2 \tmov eax,edx\n31: 8853bf:\tc1 e8 1f \tshr eax,0x1f\n32: 8853c2:\t33 db \txor ebx,ebx\n33: 8853c4:\t03 c2 \tadd eax,edx\n34: 8853c6:\t33 ff \txor edi,edi\n35: 8853c8:\t3b c3 \tcmp eax,ebx\n36: 8853ca:\t7e 30 \tjle 0x8853fc\n37: 8853cc:\t8b 11 \tmov edx,DWORD PTR [ecx]\n38: 8853ce:\t8b ff \tmov edi,edi\n39: 8853d0:\t8b 5d 08 \tmov ebx,DWORD PTR [ebp+0x8]\n40: 8853d3:\t39 5a 04 \tcmp DWORD PTR [edx+0x4],ebx\n41: 8853d6:\t75 02 \tjne 0x8853da\n42: 8853d8:\t8b fa \tmov edi,edx\n43: 8853da:\t83 c2 18 \tadd edx,0x18\n44: 8853dd:\t48 \tdec eax\n45: 8853de:\t75 f0 \tjne 0x8853d0\n46: 8853e0:\t33 db \txor ebx,ebx\n47: 8853e2:\t3b fb \tcmp edi,ebx\n48: 8853e4:\t74 16 \tje 0x8853fc\n49: 8853e6:\t8b c7 \tmov eax,edi\n50: 8853e8:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n51: 8853eb:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n52: 8853f2:\t59 \tpop ecx\n53: 8853f3:\t5f \tpop edi\n54: 8853f4:\t5e \tpop esi\n55: 8853f5:\t5b \tpop ebx\n56: 8853f6:\t8b e5 \tmov esp,ebp\n57: 8853f8:\t5d \tpop ebp\n58: 8853f9:\tc2 04 00 \tret 0x4\n59: 8853fc:\tc7 45 dc 7c f0 a0 00 \tmov DWORD PTR [ebp-0x24],0xa0f07c\n60: 885403:\t89 5d e4 \tmov DWORD PTR [ebp-0x1c],ebx\n61: 885406:\t89 5d e8 \tmov DWORD PTR [ebp-0x18],ebx\n62: 885409:\t89 5d ec \tmov DWORD PTR [ebp-0x14],ebx\n63: 88540c:\t8d 45 dc \tlea eax,[ebp-0x24]\n64: 88540f:\t50 \tpush eax\n65: 885410:\t89 5d fc \tmov DWORD PTR [ebp-0x4],ebx\n66: 885413:\te8 98 f8 ff ff \tcall 0x884cb0\n67: 885418:\t8d 4d e4 \tlea ecx,[ebp-0x1c]\n68: 88541b:\tc7 45 fc 01 00 00 00 \tmov DWORD PTR [ebp-0x4],0x1\n69: 885422:\te8 59 41 da ff \tcall 0x629580\n70: 885427:\t8b 46 08 \tmov eax,DWORD PTR [esi+0x8]\n71: 88542a:\t8b 4d 08 \tmov ecx,DWORD PTR [ebp+0x8]\n72: 88542d:\t89 48 ec \tmov DWORD PTR [eax-0x14],ecx\n73: 885430:\t8b 46 08 \tmov eax,DWORD PTR [esi+0x8]\n74: 885433:\t83 e8 18 \tsub eax,0x18\n75: 885436:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n76: 885439:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n77: 885440:\t59 \tpop ecx\n78: 885441:\t5f \tpop edi\n79: 885442:\t5e \tpop esi\n80: 885443:\t5b \tpop ebx\n81: 885444:\t8b e5 \tmov esp,ebp\n82: 885446:\t5d \tpop ebp\n83: 885447:\tc2 04 00 \tret 0x4\n84: 88544a:\tcc \tint3 \n85: 88544b:\tcc \tint3 \n86: 88544c:\tcc \tint3 \n87: 88544d:\tcc \tint3 \n88: 88544e:\tcc \tint3 \n89: 88544f:\tcc \tint3 \n90: 885450:\t55 \tpush ebp\n91: 885451:\t8b ec \tmov ebp,esp\n92: 885453:\t6a ff \tpush 0xffffffff\n93: 885455:\t68 73 af 99 00 \tpush 0x99af73\n94: 88545a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n95: 885460:\t50 \tpush eax\n96: 885461:\t81 ec 90 00 00 00 \tsub esp,0x90\n97: 885467:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n98: 88546c:\t33 c5 \txor eax,ebp\n99: 88546e:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n100: 885471:\t53 \tpush ebx\n101: 885472:\t56 \tpush esi\n102: 885473:\t57 \tpush edi\n103: 885474:\t50 \tpush eax\n104: 885475:\t8d 45 f4 \tlea eax,[ebp-0xc]\n105: 885478:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n106: 88547e:\t8b 7d 08 \tmov edi,DWORD PTR [ebp+0x8]\n107: 885481:\t8b 07 \tmov eax,DWORD PTR [edi]\n108: 885483:\t8b 50 10 \tmov edx,DWORD PTR [eax+0x10]\n109: 885486:\t89 8d 70 ff ff ff \tmov DWORD PTR [ebp-0x90],ecx\n110: 88548c:\t8d 71 04 \tlea esi,[ecx+0x4]\n111: 88548f:\t6a ff \tpush 0xffffffff\n112: 885491:\t8d 8d 78 ff ff ff \tlea ecx,[ebp-0x88]\n113: 885497:\t51 \tpush ecx\n114: 885498:\t68 34 b3 a2 00 \tpush 0xa2b334\n115: 88549d:\t8b cf \tmov ecx,edi\n116: 88549f:\t89 bd 74 ff ff ff \tmov DWORD PTR [ebp-0x8c],edi\n117: 8854a5:\tff d2 \tcall edx\n118: 8854a7:\t33 db \txor ebx,ebx\n119: 8854a9:\t3a c3 \tcmp al,bl\n120: 8854ab:\t74 0c \tje 0x8854b9\n121: 8854ad:\t3b f3 \tcmp esi,ebx\n122: 8854af:\t74 08 \tje 0x8854b9\n123: 8854b1:\t8b 85 78 ff ff ff \tmov eax,DWORD PTR [ebp-0x88]\n124: 8854b7:\t89 06 \tmov DWORD PTR [esi],eax\n125: 8854b9:\t88 9d 7f ff ff ff \tmov BYTE PTR [ebp-0x81],bl\n126: 8854bf:\t90 \tnop\n127: 8854c0:\t8d 4d 80 \tlea ecx,[ebp-0x80]\n128: 8854c3:\te8 98 2a fc ff \tcall 0x847f60\n129: 8854c8:\t8d 4d 80 \tlea ecx,[ebp-0x80]\n130: 8854cb:\t89 5d fc \tmov DWORD PTR [ebp-0x4],ebx\n131: 8854ce:\tc7 85 64 ff ff ff 0c \tmov DWORD PTR [ebp-0x9c],0xa2df0c\n132: 8854d5:\tdf a2 00 \n133: 8854d8:\t89 8d 68 ff ff ff \tmov DWORD PTR [ebp-0x98],ecx\n134: 8854de:\t89 9d 6c ff ff ff \tmov DWORD PTR [ebp-0x94],ebx\n135: 8854e4:\t8b 17 \tmov edx,DWORD PTR [edi]\n136: 8854e6:\t8b 52 14 \tmov edx,DWORD PTR [edx+0x14]\n137: 8854e9:\t8d 85 64 ff ff ff \tlea eax,[ebp-0x9c]\n138: 8854ef:\t50 \tpush eax\n139: 8854f0:\t68 e8 b2 a2 00 \tpush 0xa2b2e8\n140: 8854f5:\t8b cf \tmov ecx,edi\n141: 8854f7:\tc6 45 fc 01 \tmov BYTE PTR [ebp-0x4],0x1\n142: 8854fb:\tff d2 \tcall edx\n143: 8854fd:\t88 5d fc \tmov BYTE PTR [ebp-0x4],bl\n\n(End of file - total 143 lines)\n","metadata":{"preview":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00885380 <.text+0x484380>:\n 885380:\t55 \tpush ebp\n 885381:\t8b ec \tmov ebp,esp\n 885383:\t6a ff \tpush 0xffffffff\n 885385:\t68 30 af 99 00 \tpush 0x99af30\n 88538a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 885390:\t50 \tpush eax\n 885391:\t83 ec 18 \tsub esp,0x18\n 885394:\t53 \tpush ebx\n 885395:\t56 \tpush esi\n 885396:\t57 \tpush edi\n 885397:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 88539c:\t33 c5 \txor eax,ebp\n 88539e:\t50 \tpush eax","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/turn-get-create.stdout.txt","text":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00885380 <.text+0x484380>:\n 885380:\t55 \tpush ebp\n 885381:\t8b ec \tmov ebp,esp\n 885383:\t6a ff \tpush 0xffffffff\n 885385:\t68 30 af 99 00 \tpush 0x99af30\n 88538a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 885390:\t50 \tpush eax\n 885391:\t83 ec 18 \tsub esp,0x18\n 885394:\t53 \tpush ebx\n 885395:\t56 \tpush esi\n 885396:\t57 \tpush edi\n 885397:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 88539c:\t33 c5 \txor eax,ebp\n 88539e:\t50 \tpush eax\n 88539f:\t8d 45 f4 \tlea eax,[ebp-0xc]\n 8853a2:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n 8853a8:\t8b f1 \tmov esi,ecx\n 8853aa:\t8b 56 08 \tmov edx,DWORD PTR [esi+0x8]\n 8853ad:\t2b 56 04 \tsub edx,DWORD PTR [esi+0x4]\n 8853b0:\t8d 4e 04 \tlea ecx,[esi+0x4]\n 8853b3:\tb8 ab aa aa 2a \tmov eax,0x2aaaaaab\n 8853b8:\tf7 ea \timul edx\n 8853ba:\tc1 fa 02 \tsar edx,0x2\n 8853bd:\t8b c2 \tmov eax,edx\n 8853bf:\tc1 e8 1f \tshr eax,0x1f\n 8853c2:\t33 db \txor ebx,ebx\n 8853c4:\t03 c2 \tadd eax,edx\n 8853c6:\t33 ff \txor edi,edi\n 8853c8:\t3b c3 \tcmp eax,ebx\n 8853ca:\t7e 30 \tjle 0x8853fc\n 8853cc:\t8b 11 \tmov edx,DWORD PTR [ecx]\n 8853ce:\t8b ff \tmov edi,edi\n 8853d0:\t8b 5d 08 \tmov ebx,DWORD PTR [ebp+0x8]\n 8853d3:\t39 5a 04 \tcmp DWORD PTR [edx+0x4],ebx\n 8853d6:\t75 02 \tjne 0x8853da\n 8853d8:\t8b fa \tmov edi,edx\n 8853da:\t83 c2 18 \tadd edx,0x18\n 8853dd:\t48 \tdec eax\n 8853de:\t75 f0 \tjne 0x8853d0\n 8853e0:\t33 db \txor ebx,ebx\n 8853e2:\t3b fb \tcmp edi,ebx\n 8853e4:\t74 16 \tje 0x8853fc\n 8853e6:\t8b c7 \tmov eax,edi\n 8853e8:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n 8853eb:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n 8853f2:\t59 \tpop ecx\n 8853f3:\t5f \tpop edi\n 8853f4:\t5e \tpop esi\n 8853f5:\t5b \tpop ebx\n 8853f6:\t8b e5 \tmov esp,ebp\n 8853f8:\t5d \tpop ebp\n 8853f9:\tc2 04 00 \tret 0x4\n 8853fc:\tc7 45 dc 7c f0 a0 00 \tmov DWORD PTR [ebp-0x24],0xa0f07c\n 885403:\t89 5d e4 \tmov DWORD PTR [ebp-0x1c],ebx\n 885406:\t89 5d e8 \tmov DWORD PTR [ebp-0x18],ebx\n 885409:\t89 5d ec \tmov DWORD PTR [ebp-0x14],ebx\n 88540c:\t8d 45 dc \tlea eax,[ebp-0x24]\n 88540f:\t50 \tpush eax\n 885410:\t89 5d fc \tmov DWORD PTR [ebp-0x4],ebx\n 885413:\te8 98 f8 ff ff \tcall 0x884cb0\n 885418:\t8d 4d e4 \tlea ecx,[ebp-0x1c]\n 88541b:\tc7 45 fc 01 00 00 00 \tmov DWORD PTR [ebp-0x4],0x1\n 885422:\te8 59 41 da ff \tcall 0x629580\n 885427:\t8b 46 08 \tmov eax,DWORD PTR [esi+0x8]\n 88542a:\t8b 4d 08 \tmov ecx,DWORD PTR [ebp+0x8]\n 88542d:\t89 48 ec \tmov DWORD PTR [eax-0x14],ecx\n 885430:\t8b 46 08 \tmov eax,DWORD PTR [esi+0x8]\n 885433:\t83 e8 18 \tsub eax,0x18\n 885436:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n 885439:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n 885440:\t59 \tpop ecx\n 885441:\t5f \tpop edi\n 885442:\t5e \tpop esi\n 885443:\t5b \tpop ebx\n 885444:\t8b e5 \tmov esp,ebp\n 885446:\t5d \tpop ebp\n 885447:\tc2 04 00 \tret 0x4\n 88544a:\tcc \tint3 \n 88544b:\tcc \tint3 \n 88544c:\tcc \tint3 \n 88544d:\tcc \tint3 \n 88544e:\tcc \tint3 \n 88544f:\tcc \tint3 \n 885450:\t55 \tpush ebp\n 885451:\t8b ec \tmov ebp,esp\n 885453:\t6a ff \tpush 0xffffffff\n 885455:\t68 73 af 99 00 \tpush 0x99af73\n 88545a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 885460:\t50 \tpush eax\n 885461:\t81 ec 90 00 00 00 \tsub esp,0x90\n 885467:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 88546c:\t33 c5 \txor eax,ebp\n 88546e:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n 885471:\t53 \tpush ebx\n 885472:\t56 \tpush esi\n 885473:\t57 \tpush edi\n 885474:\t50 \tpush eax\n 885475:\t8d 45 f4 \tlea eax,[ebp-0xc]\n 885478:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n 88547e:\t8b 7d 08 \tmov edi,DWORD PTR [ebp+0x8]\n 885481:\t8b 07 \tmov eax,DWORD PTR [edi]\n 885483:\t8b 50 10 \tmov edx,DWORD PTR [eax+0x10]\n 885486:\t89 8d 70 ff ff ff \tmov DWORD PTR [ebp-0x90],ecx\n 88548c:\t8d 71 04 \tlea esi,[ecx+0x4]\n 88548f:\t6a ff \tpush 0xffffffff\n 885491:\t8d 8d 78 ff ff ff \tlea ecx,[ebp-0x88]\n 885497:\t51 \tpush ecx\n 885498:\t68 34 b3 a2 00 \tpush 0xa2b334\n 88549d:\t8b cf \tmov ecx,edi\n 88549f:\t89 bd 74 ff ff ff \tmov DWORD PTR [ebp-0x8c],edi\n 8854a5:\tff d2 \tcall edx\n 8854a7:\t33 db \txor ebx,ebx\n 8854a9:\t3a c3 \tcmp al,bl\n 8854ab:\t74 0c \tje 0x8854b9\n 8854ad:\t3b f3 \tcmp esi,ebx\n 8854af:\t74 08 \tje 0x8854b9\n 8854b1:\t8b 85 78 ff ff ff \tmov eax,DWORD PTR [ebp-0x88]\n 8854b7:\t89 06 \tmov DWORD PTR [esi],eax\n 8854b9:\t88 9d 7f ff ff ff \tmov BYTE PTR [ebp-0x81],bl\n 8854bf:\t90 \tnop\n 8854c0:\t8d 4d 80 \tlea ecx,[ebp-0x80]\n 8854c3:\te8 98 2a fc ff \tcall 0x847f60\n 8854c8:\t8d 4d 80 \tlea ecx,[ebp-0x80]\n 8854cb:\t89 5d fc \tmov DWORD PTR [ebp-0x4],ebx\n 8854ce:\tc7 85 64 ff ff ff 0c \tmov DWORD PTR [ebp-0x9c],0xa2df0c\n 8854d5:\tdf a2 00 \n 8854d8:\t89 8d 68 ff ff ff \tmov DWORD PTR [ebp-0x98],ecx\n 8854de:\t89 9d 6c ff ff ff \tmov DWORD PTR [ebp-0x94],ebx\n 8854e4:\t8b 17 \tmov edx,DWORD PTR [edi]\n 8854e6:\t8b 52 14 \tmov edx,DWORD PTR [edx+0x14]\n 8854e9:\t8d 85 64 ff ff ff \tlea eax,[ebp-0x9c]\n 8854ef:\t50 \tpush eax\n 8854f0:\t68 e8 b2 a2 00 \tpush 0xa2b2e8\n 8854f5:\t8b cf \tmov ecx,edi\n 8854f7:\tc6 45 fc 01 \tmov BYTE PTR [ebp-0x4],0x1\n 8854fb:\tff d2 \tcall edx\n 8854fd:\t88 5d fc \tmov BYTE PTR [ebp-0x4],bl","lineStart":1,"lineEnd":143,"totalLines":143,"truncated":false}},"title":"verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/turn-get-create.stdout.txt","time":{"start":1789013421337,"end":1789013421348}},"metadata":{"openai":{"itemId":"fc_000214353c95052a016aa22dad200887d19af7eb0563395b70"}},"id":"prt_089826cf1001lB6dNmvD3d9orx","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08982466c001QSi4xUeAHvvXtt"}} +{"type":"tool_use","timestamp":1789013421405,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_ikQgzWFrWaDBlm03Z4yF3sqA","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/findings/subsystems/events.md","offset":150,"limit":100},"output":"/home/alex/sots-re/findings/subsystems/events.md\nfile\n\n150: void* obj, // [ebp+0x40] may be NULL\n151: Vector3* pos, // [ebp+0x44] may be NULL\n152: int turn, // [ebp+0x48]\n153: const char* img, // [ebp+0x4c] may be NULL -> \"\"\n154: int act); // [ebp+0x50]\n155: // returns the event id; ret 0x4c\n156: ```\n157: \n158: `ret 0x4c` = 76 = 2 × 0x1c (the two by-value `std::string`s) + 5 × 4. Both string arguments\n159: are built **in the caller's frame by `sub esp,0x1c`** and a copy-construct, which is the MSVC\n160: by-value-`std::string` idiom; `PostEvent` frees their buffers itself before returning\n161: (0x00886415–0x00886446), so the caller must not.\n162: \n163: Body, in order (all read from the instruction stream):\n164: \n165: 1. `PlayerEvent ev;` — default ctor `0x0084ee30` on a `[ebp-0x84]` temporary.\n166: 2. `ev.EvDsc = summary; ev.EvMsg = message;` (0x0088630d, 0x0088631a).\n167: 3. `ev.EvLoc = obj ? obj->[+4] : 0` (0x00886322).\n168: 4. `ev.EvImg = img ? img : \"\"` — `\"\"` is `0x009e100c`; length by inline `strlen` (0x00886330).\n169: 5. `ev.EvAct = act`; **if `act == 0 && obj == NULL && pos == NULL` then `ev.EvAct = 2`**\n170: (0x00886353–0x0088636f). This default is easy to miss and changes the save bytes.\n171: 6. Position: `obj` wins (`obj->[+0x18/+0x1c/+0x20]`), else `pos` (`pos->[0/4/8]`), else the\n172: ctor's `FLT_MAX` triple (0x0088637a–0x008863a7).\n173: 7. `PruneOldTurns(turn)` — 0x00879eb0.\n174: 8. `TurnEvents* bucket = GetOrCreateTurnBucket(turn)` — 0x00885380.\n175: 9. `PlayerEvent* dup = FindDuplicate(bucket, &ev)` — 0x00825d40. **If non-NULL, return\n176: `dup->EvEID` and post nothing.**\n177: 10. else `bucket->Events.push_back(ev)`; `if (EvNxID == 0) EvNxID = 1;`\n178: `id = EvNxID++; back().EvEID = id;` return `id`.\n179: \n180: ### `EventStorage::FindDuplicate` — 0x00825d40, `__thiscall (TurnEvents*, PlayerEvent*)`, `ret 8`\n181: \n182: Linear scan of the bucket. Two events are the same when **all** of these match:\n183: `EvAct` (+0x6c), `EvLoc` (+0x40), the three `EvPos` floats (`fucompp`, so bitwise-unequal\n184: NaNs never match but the `FLT_MAX` sentinels always do), `EvMsg` (+0x24) and `EvImg` (+0x50).\n185: **`EvDsc` is NOT compared.** A NULL bucket returns 0 immediately.\n186: \n187: This is why the two identical `EVENT_SHIPS_BUILT` records in `turn3-state.sav` survive as\n188: separate events: they are in different turn buckets, and dedup is per-bucket.\n189: \n190: ### `EventStorage::GetOrCreateTurnBucket` — 0x00885380, `__thiscall (int turn)`, `ret 4`\n191: \n192: Scans `Events` for `EvTurn == turn`; **keeps scanning to the end and returns the *last*\n193: match** (0x008853d0–0x008853de has no early exit). If none, constructs a bucket\n194: (`0x00884cb0`, vtable `0x00a0f07c`), appends, and sets `_Mylast[-1].EvTurn = turn`\n195: (0x0088542d, `mov [eax-0x14], ecx`, i.e. `+4` off the new element at `_Mylast-0x18`).\n196: \n197: ### `EventStorage::PruneOldTurns` — 0x00879eb0, `__thiscall (int turn)`\n198: \n199: Cutoff is `turn - 0x32` (**50 turns**), constant, not from config: `0x00879ec3 add ebx,-0x32`.\n200: \n201: Precisely as coded — and this is a quirk worth reproducing rather than \"fixing\": it walks the\n202: **leading** run of buckets with `EvTurn < cutoff`, leaves `edi` pointing at the **last** one\n203: of that run, and then shifts from `edi` down to `_Myfirst`. So it erases `n-1` buckets, not\n204: `n`: **one stale bucket always survives**, and a single leading stale bucket is never\n205: removed at all (`0x00879ee2 cmp esi,edi; je` returns). It also stops at the first non-stale\n206: bucket, so a stale bucket after a fresh one is never reached.\n207: \n208: ### Convenience wrapper\n209: \n210: `0x00886470` (`ret` and prototype not verified by this lane) posts via `PostEvent` twice at\n211: 0x00886802 / 0x00886b22. **161 call sites in 113 functions** reference `PostEvent` directly —\n212: this is the single event API for the whole simulation, not a research-specific helper.\n213: \n214: ### Turn number\n215: \n216: Every research-path site computes the turn as `*(int*)(*(char**)(player + 8) + 8)`.\n217: `ServerPlayer+8` is the `StrategyServer` *second* base; `0x0080e320` is\n218: `__thiscall void* ServerPlayer::GetServer()` = `[this+8] ? [this+8]-4 : 0`, so the field is\n219: `StrategyServer(primary base)+0x0c`. This matches the B4 finding that `StrategyServer` has\n220: two bases four bytes apart.\n221: \n222: **CORRECTION (lane EV 2026-09-08): that field is the FRAME (the turn counter), not\n223: `ModCount`.** The two are different words and the saves separate them cleanly:\n224: `turn2-state.sav` has `Summary/Turn = 2`, `Sim/Frame = 2` and `Sim/ModCount = 12`, and every\n225: event the turn posted landed in bucket `EvTurn = 2`. If the argument were `ModCount` the\n226: buckets would be 12 and 24. The value is the **post-increment** turn — a turn run from a save\n227: at turn *N* posts into bucket *N+1* — because the frame is bumped in `BeginProcessTurn`,\n228: before either turn driver runs.\n229: \n230: ---\n231: \n232: ## 3. Which events the research path posts\n233: \n234: Order within `ServerPlayer::ProcessTurn` (0x00891340):\n235: \n236: | # | site | event | condition |\n237: |---|---|---|---|\n238: | 1 | `TechTree::ProcessResearch` 0x00587b97 | `EVENT_RESEARCH_OVERBUDGET` | per node, see below |\n239: | 2 | → `SetResearched` → `OnTechResearched` 0x008919b5 | `EVENT_RESEARCH_COMPLETE` / `_UNDERBUDGET` | see below |\n240: | 3 | → `OnTechResearched` 0x00892427 | `EVENT_TEMPERANCE` | temperance tech cured ≥1 addicted system |\n241: | 4 | `TechTree::ProcessResearch` 0x00587ff4 | `EVENT_TECHS_UNLOCKED` | tail loop, ≥1 newly available node |\n242: | 5 | `ProcessTurn` 0x0089168c | `EVENT_NO_RESEARCH` | no target, no affordable tech, tree not exhausted |\n243: \n244: `ProcessResearch`'s two posts bracket the per-node loop: OVERBUDGET fires **inside** the loop\n245: (so once per over-budget node), TECHS_UNLOCKED **once** after it.\n246: \n247: ### 3.1 `EVENT_RESEARCH_OVERBUDGET` — the B3 defect, fully explained\n248: \n249: Posted at **0x00587b97**, in `TechTree::ProcessResearch` (0x005876c0).\n\n(Showing lines 150-249 of 492. Use offset=250 to continue.)\n","metadata":{"preview":" void* obj, // [ebp+0x40] may be NULL\n Vector3* pos, // [ebp+0x44] may be NULL\n int turn, // [ebp+0x48]\n const char* img, // [ebp+0x4c] may be NULL -> \"\"\n int act); // [ebp+0x50]\n// returns the event id; ret 0x4c\n```\n\n`ret 0x4c` = 76 = 2 × 0x1c (the two by-value `std::string`s) + 5 × 4. Both string arguments\nare built **in the caller's frame by `sub esp,0x1c`** and a copy-construct, which is the MSVC\nby-value-`std::string` idiom; `PostEvent` frees their buffers itself before returning\n(0x00886415–0x00886446), so the caller must not.\n\nBody, in order (all read from the instruction stream):\n\n1. `PlayerEvent ev;` — default ctor `0x0084ee30` on a `[ebp-0x84]` temporary.\n2. `ev.EvDsc = summary; ev.EvMsg = message;` (0x0088630d, 0x0088631a).\n3. `ev.EvLoc = obj ? obj->[+4] : 0` (0x00886322).\n4. `ev.EvImg = img ? img : \"\"` — `\"\"` is `0x009e100c`; length by inline `strlen` (0x00886330).\n5. `ev.EvAct = act`; **if `act == 0 && obj == NULL && pos == NULL` then `ev.EvAct = 2`**","truncated":true,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/findings/subsystems/events.md","text":" void* obj, // [ebp+0x40] may be NULL\n Vector3* pos, // [ebp+0x44] may be NULL\n int turn, // [ebp+0x48]\n const char* img, // [ebp+0x4c] may be NULL -> \"\"\n int act); // [ebp+0x50]\n// returns the event id; ret 0x4c\n```\n\n`ret 0x4c` = 76 = 2 × 0x1c (the two by-value `std::string`s) + 5 × 4. Both string arguments\nare built **in the caller's frame by `sub esp,0x1c`** and a copy-construct, which is the MSVC\nby-value-`std::string` idiom; `PostEvent` frees their buffers itself before returning\n(0x00886415–0x00886446), so the caller must not.\n\nBody, in order (all read from the instruction stream):\n\n1. `PlayerEvent ev;` — default ctor `0x0084ee30` on a `[ebp-0x84]` temporary.\n2. `ev.EvDsc = summary; ev.EvMsg = message;` (0x0088630d, 0x0088631a).\n3. `ev.EvLoc = obj ? obj->[+4] : 0` (0x00886322).\n4. `ev.EvImg = img ? img : \"\"` — `\"\"` is `0x009e100c`; length by inline `strlen` (0x00886330).\n5. `ev.EvAct = act`; **if `act == 0 && obj == NULL && pos == NULL` then `ev.EvAct = 2`**\n (0x00886353–0x0088636f). This default is easy to miss and changes the save bytes.\n6. Position: `obj` wins (`obj->[+0x18/+0x1c/+0x20]`), else `pos` (`pos->[0/4/8]`), else the\n ctor's `FLT_MAX` triple (0x0088637a–0x008863a7).\n7. `PruneOldTurns(turn)` — 0x00879eb0.\n8. `TurnEvents* bucket = GetOrCreateTurnBucket(turn)` — 0x00885380.\n9. `PlayerEvent* dup = FindDuplicate(bucket, &ev)` — 0x00825d40. **If non-NULL, return\n `dup->EvEID` and post nothing.**\n10. else `bucket->Events.push_back(ev)`; `if (EvNxID == 0) EvNxID = 1;`\n `id = EvNxID++; back().EvEID = id;` return `id`.\n\n### `EventStorage::FindDuplicate` — 0x00825d40, `__thiscall (TurnEvents*, PlayerEvent*)`, `ret 8`\n\nLinear scan of the bucket. Two events are the same when **all** of these match:\n`EvAct` (+0x6c), `EvLoc` (+0x40), the three `EvPos` floats (`fucompp`, so bitwise-unequal\nNaNs never match but the `FLT_MAX` sentinels always do), `EvMsg` (+0x24) and `EvImg` (+0x50).\n**`EvDsc` is NOT compared.** A NULL bucket returns 0 immediately.\n\nThis is why the two identical `EVENT_SHIPS_BUILT` records in `turn3-state.sav` survive as\nseparate events: they are in different turn buckets, and dedup is per-bucket.\n\n### `EventStorage::GetOrCreateTurnBucket` — 0x00885380, `__thiscall (int turn)`, `ret 4`\n\nScans `Events` for `EvTurn == turn`; **keeps scanning to the end and returns the *last*\nmatch** (0x008853d0–0x008853de has no early exit). If none, constructs a bucket\n(`0x00884cb0`, vtable `0x00a0f07c`), appends, and sets `_Mylast[-1].EvTurn = turn`\n(0x0088542d, `mov [eax-0x14], ecx`, i.e. `+4` off the new element at `_Mylast-0x18`).\n\n### `EventStorage::PruneOldTurns` — 0x00879eb0, `__thiscall (int turn)`\n\nCutoff is `turn - 0x32` (**50 turns**), constant, not from config: `0x00879ec3 add ebx,-0x32`.\n\nPrecisely as coded — and this is a quirk worth reproducing rather than \"fixing\": it walks the\n**leading** run of buckets with `EvTurn < cutoff`, leaves `edi` pointing at the **last** one\nof that run, and then shifts from `edi` down to `_Myfirst`. So it erases `n-1` buckets, not\n`n`: **one stale bucket always survives**, and a single leading stale bucket is never\nremoved at all (`0x00879ee2 cmp esi,edi; je` returns). It also stops at the first non-stale\nbucket, so a stale bucket after a fresh one is never reached.\n\n### Convenience wrapper\n\n`0x00886470` (`ret` and prototype not verified by this lane) posts via `PostEvent` twice at\n0x00886802 / 0x00886b22. **161 call sites in 113 functions** reference `PostEvent` directly —\nthis is the single event API for the whole simulation, not a research-specific helper.\n\n### Turn number\n\nEvery research-path site computes the turn as `*(int*)(*(char**)(player + 8) + 8)`.\n`ServerPlayer+8` is the `StrategyServer` *second* base; `0x0080e320` is\n`__thiscall void* ServerPlayer::GetServer()` = `[this+8] ? [this+8]-4 : 0`, so the field is\n`StrategyServer(primary base)+0x0c`. This matches the B4 finding that `StrategyServer` has\ntwo bases four bytes apart.\n\n**CORRECTION (lane EV 2026-09-08): that field is the FRAME (the turn counter), not\n`ModCount`.** The two are different words and the saves separate them cleanly:\n`turn2-state.sav` has `Summary/Turn = 2`, `Sim/Frame = 2` and `Sim/ModCount = 12`, and every\nevent the turn posted landed in bucket `EvTurn = 2`. If the argument were `ModCount` the\nbuckets would be 12 and 24. The value is the **post-increment** turn — a turn run from a save\nat turn *N* posts into bucket *N+1* — because the frame is bumped in `BeginProcessTurn`,\nbefore either turn driver runs.\n\n---\n\n## 3. Which events the research path posts\n\nOrder within `ServerPlayer::ProcessTurn` (0x00891340):\n\n| # | site | event | condition |\n|---|---|---|---|\n| 1 | `TechTree::ProcessResearch` 0x00587b97 | `EVENT_RESEARCH_OVERBUDGET` | per node, see below |\n| 2 | → `SetResearched` → `OnTechResearched` 0x008919b5 | `EVENT_RESEARCH_COMPLETE` / `_UNDERBUDGET` | see below |\n| 3 | → `OnTechResearched` 0x00892427 | `EVENT_TEMPERANCE` | temperance tech cured ≥1 addicted system |\n| 4 | `TechTree::ProcessResearch` 0x00587ff4 | `EVENT_TECHS_UNLOCKED` | tail loop, ≥1 newly available node |\n| 5 | `ProcessTurn` 0x0089168c | `EVENT_NO_RESEARCH` | no target, no affordable tech, tree not exhausted |\n\n`ProcessResearch`'s two posts bracket the per-node loop: OVERBUDGET fires **inside** the loop\n(so once per over-budget node), TECHS_UNLOCKED **once** after it.\n\n### 3.1 `EVENT_RESEARCH_OVERBUDGET` — the B3 defect, fully explained\n\nPosted at **0x00587b97**, in `TechTree::ProcessResearch` (0x005876c0).","lineStart":150,"lineEnd":249,"totalLines":492,"truncated":true}},"title":"findings/subsystems/events.md","time":{"start":1789013421387,"end":1789013421403}},"metadata":{"openai":{"itemId":"fc_000214353c95052a016aa22dad202087d19ab900f289233961"}},"id":"prt_089826d1b001htNBQcCvOdkEbe","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08982466c001QSi4xUeAHvvXtt"}} +{"type":"tool_use","timestamp":1789013421467,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_qUpfKLOjHRdsM5uLuAiDQF1R","state":{"status":"completed","input":{"command":"ls -ld \"verify/results/research-live-record-bridge\"","workdir":"/home/alex/sots-re"},"output":"drwxr-xr-x 9 alex alex 4096 Sep 9 23:51 verify/results/research-live-record-bridge\n","metadata":{"output":"drwxr-xr-x 9 alex alex 4096 Sep 9 23:51 verify/results/research-live-record-bridge\n","exit":0,"truncated":false},"title":"ls -ld \"verify/results/research-live-record-bridge\"","time":{"start":1789013421450,"end":1789013421466}},"metadata":{"openai":{"itemId":"fc_000214353c95052a016aa22dad202887d1984e3284a0508d4f"}},"id":"prt_089826d56001JxjP2IGXfy00FX","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08982466c001QSi4xUeAHvvXtt"}} +{"type":"step_finish","timestamp":1789013421596,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089826e1800141PtFwcRS5wvCj","reason":"tool-calls","snapshot":"8c5ddbdd1c55231522d663fae1108f09716513d4","messageID":"msg_08982466c001QSi4xUeAHvvXtt","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":72475,"input":1696,"output":141,"reasoning":110,"cache":{"write":0,"read":70528}},"cost":0}} +{"type":"step_start","timestamp":1789013423442,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08982754b001hOL19OBuxQB2Am","messageID":"msg_089826e45001vEdj7T4pKRkMBF","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"9423461c2153b81bde897bbbb158b28d9ac6bff1","type":"step-start"}} +{"type":"tool_use","timestamp":1789013432764,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"grep","callID":"call_HkUfjzPfkizWZCNq01NLkLrc","state":{"status":"completed","input":{"pattern":"turn-append|884cb0|00629580|629580|TurnEvents append","path":"/home/alex/sots-re/verify/results/research-completion-abi-independent","include":"*"},"output":"Found 15 matches\n/home/alex/sots-re/verify/results/research-completion-abi-independent/reproduce_run_eba7860308317f839eb35392.py:\n Line 31: (\"turn-append\", \"D\", 0x00884CB0, 0x00884DC0),\n\n Line 33: (\"nested-dtor\", \"D\", 0x00629580, 0x00629620),\n\n\n/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/turn-get-create.stdout.txt:\n Line 66: 885413:\te8 98 f8 ff ff \tcall 0x884cb0\n\n Line 69: 885422:\te8 59 41 da ff \tcall 0x629580\n\n\n/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/turn-append.stdout.txt:\n Line 7: 00884cb0 <.text+0x483cb0>:\n\n Line 8: 884cb0:\t55 \tpush ebp\n\n\n/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/nested-dtor.stdout.txt:\n Line 7: 00629580 <.text+0x228580>:\n\n Line 8: 629580:\t57 \tpush edi\n\n\n/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/manifest.json:\n Line 337: \"name\": \"turn-append\",\n\n Line 342: \"--start-address=0x00884cb0\",\n\n Line 346: \"start\": \"0x00884cb0\",\n\n Line 380: \"--start-address=0x00629580\",\n\n Line 384: \"start\": \"0x00629580\",\n\n\n/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/turn-dtor.stdout.txt:\n Line 25: 62e153:\te8 28 b4 ff ff \tcall 0x629580\n\n\n/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/nested-copy.stdout.txt:\n Line 81: 779918:\te8 63 fc ea ff \tcall 0x629580\n","metadata":{"matches":15,"truncated":false},"title":"turn-append|884cb0|00629580|629580|TurnEvents append","time":{"start":1789013432746,"end":1789013432762}},"metadata":{"openai":{"itemId":"fc_0144e0ebb75ca691016aa22db8939087d1aa36da6827ed94f6"}},"id":"prt_08982999a001eeERf7KyrUOhFw","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089826e45001vEdj7T4pKRkMBF"}} +{"type":"tool_use","timestamp":1789013432795,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"grep","callID":"call_tSKBGukHh6ofm1yOQ73C6A9b","state":{"status":"completed","input":{"pattern":"884cb0|629580|TurnEvents","path":"/home/alex/sots-re/verify/results/research-completion-abi","include":"*"},"output":"Found 23 matches\n/home/alex/sots-re/verify/results/research-completion-abi/objdump-2026-09-09-turnevents.txt:\n Line 7: # objdump -D -Mintel --start-address=0x00884cb0 --stop-address=0x00884dc0 dumps/sots.exe\n\n Line 9: # objdump -D -Mintel --start-address=0x00629580 --stop-address=0x00629620 dumps/sots.exe\n\n Line 36: 00885413: e8 98 f8 ff ff call 0x884cb0\n\n Line 38: 00885422: e8 59 41 da ff call 0x629580\n\n Line 46: # vector::push_back: alias-sensitive source and 0x18 deep copy.\n\n Line 104: # TurnEvents range copy: vptr/turn plus deep copy of nested vector; unwind destroys completed elements.\n\n Line 140: 00779918: e8 63 fc ea ff call 0x629580\n\n Line 163: # TurnEvents and nested-vector destruction. Vtable 0x00a0f07c begins with 0x0062e120.\n\n Line 167: 0062e153: e8 28 b4 ff ff call 0x629580\n\n\n/home/alex/sots-re/verify/results/research-completion-abi/recovered-static.md:\n Line 58: ### Nested TurnEvents machine boundary\n\n Line 61: stack `int turn`, returns a `TurnEvents*` in EAX, and uses `ret 4`. It divides the outer byte span\n\n Line 65: * On a miss it initializes a stack `TurnEvents` with vptr `0x00a0f07c` and zero nested-vector\n\n Line 66: pointers, then calls outer `vector::push_back` at `0x00884cb0`. Only after append does\n\n Line 68: nested vector through `0x00629580` and returns the new element. The temporary itself starts with\n\n Line 70: * `0x00884cb0` is ECX receiver plus one source pointer and `ret 4`; stride is `0x18`. It handles a\n\n Line 72: branches install the TurnEvents vptr, copy `EvTurn`, and copy-construct the nested PlayerEvent\n\n Line 77: `0x00924fb6`. `0x0077fed0` copy-constructs every old TurnEvents, including an independent nested\n\n Line 78: vector via `0x00779850`; then `0x00883a60` invokes each old TurnEvents virtual destructor with\n\n Line 82: destructor calls `0x00629580` on the nested vector at `+8`; with flag bit zero it does not free the\n\n Line 83: inline TurnEvents object. `0x00629580` invokes every nested PlayerEvent virtual destructor in\n\n Line 90: `0x00629580`, and outer range-copy unwind at `0x0077fed0` destroys already completed TurnEvents.\n\n Line 124: vector is deep-assigned by `0x0077a6b0`. It destroys the trailing shifted-from TurnEvents through\n\n\n/home/alex/sots-re/verify/results/research-completion-abi/reva-2026-09-09-index.md:\n Line 32: `0x00885380`, `0x00825d40`, `0x00879eb0`, outer TurnEvents append/growth/copy/destruction, nested\n","metadata":{"matches":23,"truncated":false},"title":"884cb0|629580|TurnEvents","time":{"start":1789013432781,"end":1789013432793}},"metadata":{"openai":{"itemId":"fc_0144e0ebb75ca691016aa22db893a887d1a75ce088879026dd"}},"id":"prt_0898299ab001lwK2BrPkxsfgeG","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089826e45001vEdj7T4pKRkMBF"}} +{"type":"tool_use","timestamp":1789013432848,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_UCKRyS0IbMveaWWzJlGBmozp","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/manifest.json","offset":260,"limit":100},"output":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/manifest.json\nfile\n\n260: {\n261: \"name\": \"string-assign\",\n262: \"argv\": [\n263: \"/usr/bin/objdump\",\n264: \"-D\",\n265: \"-Mintel\",\n266: \"--start-address=0x004249a0\",\n267: \"--stop-address=0x00424ada\",\n268: \"/home/alex/sots-re/dumps/sots.exe\"\n269: ],\n270: \"start\": \"0x004249a0\",\n271: \"stop\": \"0x00424ada\",\n272: \"returncode\": 0,\n273: \"stdout_bytes\": 6038,\n274: \"stdout_sha256\": \"484f2b7f4a2c9476a1d936133c71f681c4d203cc936cbf23649a977fa08562a7\",\n275: \"stderr_bytes\": 0,\n276: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n277: \"instruction_lines\": 116\n278: },\n279: {\n280: \"name\": \"allocator-thunks\",\n281: \"argv\": [\n282: \"/usr/bin/objdump\",\n283: \"-D\",\n284: \"-Mintel\",\n285: \"--start-address=0x00924faa\",\n286: \"--stop-address=0x00924fbc\",\n287: \"/home/alex/sots-re/dumps/sots.exe\"\n288: ],\n289: \"start\": \"0x00924faa\",\n290: \"stop\": \"0x00924fbc\",\n291: \"returncode\": 0,\n292: \"stdout_bytes\": 304,\n293: \"stdout_sha256\": \"ad439944e6487e4131ac43f4ce75e61c5a362848b39ca99ca027fcee3f6162d0\",\n294: \"stderr_bytes\": 0,\n295: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n296: \"instruction_lines\": 4\n297: },\n298: {\n299: \"name\": \"turn-get-create\",\n300: \"argv\": [\n301: \"/usr/bin/objdump\",\n302: \"-D\",\n303: \"-Mintel\",\n304: \"--start-address=0x00885380\",\n305: \"--stop-address=0x00885500\",\n306: \"/home/alex/sots-re/dumps/sots.exe\"\n307: ],\n308: \"start\": \"0x00885380\",\n309: \"stop\": \"0x00885500\",\n310: \"returncode\": 0,\n311: \"stdout_bytes\": 7009,\n312: \"stdout_sha256\": \"452eddbe125d76d90ae46a105f53ce8d212e752bfc8b93914f47b68d972b542e\",\n313: \"stderr_bytes\": 0,\n314: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n315: \"instruction_lines\": 137\n316: },\n317: {\n318: \"name\": \"prune\",\n319: \"argv\": [\n320: \"/usr/bin/objdump\",\n321: \"-D\",\n322: \"-Mintel\",\n323: \"--start-address=0x00879eb0\",\n324: \"--stop-address=0x0087a020\",\n325: \"/home/alex/sots-re/dumps/sots.exe\"\n326: ],\n327: \"start\": \"0x00879eb0\",\n328: \"stop\": \"0x0087a020\",\n329: \"returncode\": 0,\n330: \"stdout_bytes\": 8418,\n331: \"stdout_sha256\": \"8cf4730115adfb80b37554bf21ea40e10d7bbddf0799994362b8058fc9eb64b6\",\n332: \"stderr_bytes\": 0,\n333: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n334: \"instruction_lines\": 166\n335: },\n336: {\n337: \"name\": \"turn-append\",\n338: \"argv\": [\n339: \"/usr/bin/objdump\",\n340: \"-D\",\n341: \"-Mintel\",\n342: \"--start-address=0x00884cb0\",\n343: \"--stop-address=0x00884dc0\",\n344: \"/home/alex/sots-re/dumps/sots.exe\"\n345: ],\n346: \"start\": \"0x00884cb0\",\n347: \"stop\": \"0x00884dc0\",\n348: \"returncode\": 0,\n349: \"stdout_bytes\": 5310,\n350: \"stdout_sha256\": \"8bdd01017c35700d05f205026448f21b2cccc9c9ba6895ceeb3c1a3935c2ebc8\",\n351: \"stderr_bytes\": 0,\n352: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n353: \"instruction_lines\": 102\n354: },\n355: {\n356: \"name\": \"turn-grow\",\n357: \"argv\": [\n358: \"/usr/bin/objdump\",\n359: \"-D\",\n\n(Showing lines 260-359 of 545. Use offset=360 to continue.)\n","metadata":{"preview":" {\n \"name\": \"string-assign\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x004249a0\",\n \"--stop-address=0x00424ada\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x004249a0\",\n \"stop\": \"0x00424ada\",\n \"returncode\": 0,\n \"stdout_bytes\": 6038,\n \"stdout_sha256\": \"484f2b7f4a2c9476a1d936133c71f681c4d203cc936cbf23649a977fa08562a7\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 116\n },\n {","truncated":true,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/manifest.json","text":" {\n \"name\": \"string-assign\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x004249a0\",\n \"--stop-address=0x00424ada\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x004249a0\",\n \"stop\": \"0x00424ada\",\n \"returncode\": 0,\n \"stdout_bytes\": 6038,\n \"stdout_sha256\": \"484f2b7f4a2c9476a1d936133c71f681c4d203cc936cbf23649a977fa08562a7\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 116\n },\n {\n \"name\": \"allocator-thunks\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00924faa\",\n \"--stop-address=0x00924fbc\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00924faa\",\n \"stop\": \"0x00924fbc\",\n \"returncode\": 0,\n \"stdout_bytes\": 304,\n \"stdout_sha256\": \"ad439944e6487e4131ac43f4ce75e61c5a362848b39ca99ca027fcee3f6162d0\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 4\n },\n {\n \"name\": \"turn-get-create\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00885380\",\n \"--stop-address=0x00885500\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00885380\",\n \"stop\": \"0x00885500\",\n \"returncode\": 0,\n \"stdout_bytes\": 7009,\n \"stdout_sha256\": \"452eddbe125d76d90ae46a105f53ce8d212e752bfc8b93914f47b68d972b542e\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 137\n },\n {\n \"name\": \"prune\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00879eb0\",\n \"--stop-address=0x0087a020\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00879eb0\",\n \"stop\": \"0x0087a020\",\n \"returncode\": 0,\n \"stdout_bytes\": 8418,\n \"stdout_sha256\": \"8cf4730115adfb80b37554bf21ea40e10d7bbddf0799994362b8058fc9eb64b6\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 166\n },\n {\n \"name\": \"turn-append\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00884cb0\",\n \"--stop-address=0x00884dc0\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00884cb0\",\n \"stop\": \"0x00884dc0\",\n \"returncode\": 0,\n \"stdout_bytes\": 5310,\n \"stdout_sha256\": \"8bdd01017c35700d05f205026448f21b2cccc9c9ba6895ceeb3c1a3935c2ebc8\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 102\n },\n {\n \"name\": \"turn-grow\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",","lineStart":260,"lineEnd":359,"totalLines":545,"truncated":true}},"title":"verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/manifest.json","time":{"start":1789013432839,"end":1789013432847}},"metadata":{"openai":{"itemId":"fc_0144e0ebb75ca691016aa22db893b487d19195743e237d654f"}},"id":"prt_0898299e6001N75u1ufjj4X7X4","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089826e45001vEdj7T4pKRkMBF"}} +{"type":"step_finish","timestamp":1789013433222,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089829b83001NwMov2aJ74UFcK","reason":"tool-calls","snapshot":"78c4ba31a7d5dcca425b986225212b05c7f6fe94","messageID":"msg_089826e45001vEdj7T4pKRkMBF","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":78339,"input":5988,"output":175,"reasoning":112,"cache":{"write":0,"read":72064}},"cost":0}} +{"type":"step_start","timestamp":1789013439550,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08982b43a001UEAx5uPudDGHq9","messageID":"msg_089829bb1001Vlq8ahjooPqHRg","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"92795801019a3fe16f7fb5d3259b5250689297ec","type":"step-start"}} +{"type":"tool_use","timestamp":1789013447082,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_2e3rg77501k8fqspS9Fqu89K","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-completion-abi/recovered-static.md","offset":50,"limit":55},"output":"/home/alex/sots-re/verify/results/research-completion-abi/recovered-static.md\nfile\n\n50: `0x00924faa`, then restores empty/SSO values. This establishes three independent owned-string\n51: cleanup paths in a copied event.\n52: * `0x004249a0`, called from the string assignment `0x00425430`, allocates new character storage via\n53: `0x00924fb6` and frees an existing long destination buffer through `0x00924faa` before installing\n54: the replacement pointer/size/capacity. The branch condition for long ownership is capacity\n55: `>= 0x10`; short strings stay inline. Per the independently captured PE imports, these thunks map\n56: to MSVCR100 scalar `operator delete` and scalar `operator new` respectively.\n57: \n58: ### Nested TurnEvents machine boundary\n59: \n60: * `0x00885380` is an ECX-receiver operation over the outer vector at receiver `+4`, takes one\n61: stack `int turn`, returns a `TurnEvents*` in EAX, and uses `ret 4`. It divides the outer byte span\n62: by `0x18`, scans every element, and overwrites its candidate on every `EvTurn` match. Therefore a\n63: hit returns the **last** matching bucket and performs no construction, allocation, ID update, or\n64: RNG draw.\n65: * On a miss it initializes a stack `TurnEvents` with vptr `0x00a0f07c` and zero nested-vector\n66: pointers, then calls outer `vector::push_back` at `0x00884cb0`. Only after append does\n67: it write the requested turn to the stored element at `_Mylast[-1]+4`. It destroys the temporary's\n68: nested vector through `0x00629580` and returns the new element. The temporary itself starts with\n69: turn zero; append deep-copies that zero before the stored turn is patched.\n70: * `0x00884cb0` is ECX receiver plus one source pointer and `ret 4`; stride is `0x18`. It handles a\n71: source pointer inside its own vector separately so growth cannot invalidate the source. Both\n72: branches install the TurnEvents vptr, copy `EvTurn`, and copy-construct the nested PlayerEvent\n73: vector through `0x00779850`; this is not a 24-byte header copy. It advances outer `_Mylast` only\n74: after the nested copy call returns.\n75: * Outer full-capacity growth is `0x008841a0` -> `0x00883a60`. Capacity selection is old capacity\n76: plus half where sufficient, otherwise required size. `0x006e8f50` allocates `count * 0x18` through\n77: `0x00924fb6`. `0x0077fed0` copy-constructs every old TurnEvents, including an independent nested\n78: vector via `0x00779850`; then `0x00883a60` invokes each old TurnEvents virtual destructor with\n79: deleting flag zero, frees the old outer allocation through `0x00924faa`, and writes all three\n80: outer vector pointers.\n81: * The vtable bytes at `0x00a0f07c` identify slot zero as `0x0062e120`. That scalar-deleting\n82: destructor calls `0x00629580` on the nested vector at `+8`; with flag bit zero it does not free the\n83: inline TurnEvents object. `0x00629580` invokes every nested PlayerEvent virtual destructor in\n84: `0x74` steps, frees the nested allocation through `0x00924faa`, and zeros all three nested vector\n85: pointers.\n86: * `0x00779850` is ECX destination nested vector plus one source-vector pointer and `ret 4`. An empty\n87: source leaves three zero pointers. A nonempty source allocates `count * 0x74` through\n88: `0x0078af40` -> `0x00924fb6`, then `0x007725a0` copy-constructs each PlayerEvent through\n89: `0x007693f0`. Its unwind destroys already completed PlayerEvents; `0x00779850` then calls\n90: `0x00629580`, and outer range-copy unwind at `0x0077fed0` destroys already completed TurnEvents.\n91: Outer reallocation's landing path frees the newly allocated outer block before continuing the\n92: exception through `0x00924fbc`. These are observed cleanup edges, not a claim that allocation\n93: failure has been executed live.\n94: \n95: ### Duplicate and prune branches\n96: \n97: * `0x00825d40` receives bucket and candidate pointers as two stack words, ignores incoming ECX,\n98: and uses `ret 8`. A null bucket or empty nested vector returns zero. It scans in `0x74` steps and\n99: checks, in order: `EvAct`, `EvLoc`, all three `EvPos` floats, `EvMsg`, `EvImg`, then calls\n100: `0x0046f8c0` with the strings rooted at `EvDsc +8`. Complete fresh capture establishes that\n101: `0x0046f8c0` is a two-stack-argument, caller-cleaned string-inequality operation: first argument is\n102: the stored string, second is the candidate string, EAX/AL is one iff the strings differ, and it\n103: uses plain `ret`. `0x00825e21` therefore reaches the matched-element return only when AL is zero,\n104: i.e. when descriptions are equal. A description-only difference continues the scan. This\n\n(Showing lines 50-104 of 167. Use offset=105 to continue.)\n","metadata":{"preview":" `0x00924faa`, then restores empty/SSO values. This establishes three independent owned-string\n cleanup paths in a copied event.\n* `0x004249a0`, called from the string assignment `0x00425430`, allocates new character storage via\n `0x00924fb6` and frees an existing long destination buffer through `0x00924faa` before installing\n the replacement pointer/size/capacity. The branch condition for long ownership is capacity\n `>= 0x10`; short strings stay inline. Per the independently captured PE imports, these thunks map\n to MSVCR100 scalar `operator delete` and scalar `operator new` respectively.\n\n### Nested TurnEvents machine boundary\n\n* `0x00885380` is an ECX-receiver operation over the outer vector at receiver `+4`, takes one\n stack `int turn`, returns a `TurnEvents*` in EAX, and uses `ret 4`. It divides the outer byte span\n by `0x18`, scans every element, and overwrites its candidate on every `EvTurn` match. Therefore a\n hit returns the **last** matching bucket and performs no construction, allocation, ID update, or\n RNG draw.\n* On a miss it initializes a stack `TurnEvents` with vptr `0x00a0f07c` and zero nested-vector\n pointers, then calls outer `vector::push_back` at `0x00884cb0`. Only after append does\n it write the requested turn to the stored element at `_Mylast[-1]+4`. It destroys the temporary's\n nested vector through `0x00629580` and returns the new element. The temporary itself starts with\n turn zero; append deep-copies that zero before the stored turn is patched.","truncated":true,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-completion-abi/recovered-static.md","text":" `0x00924faa`, then restores empty/SSO values. This establishes three independent owned-string\n cleanup paths in a copied event.\n* `0x004249a0`, called from the string assignment `0x00425430`, allocates new character storage via\n `0x00924fb6` and frees an existing long destination buffer through `0x00924faa` before installing\n the replacement pointer/size/capacity. The branch condition for long ownership is capacity\n `>= 0x10`; short strings stay inline. Per the independently captured PE imports, these thunks map\n to MSVCR100 scalar `operator delete` and scalar `operator new` respectively.\n\n### Nested TurnEvents machine boundary\n\n* `0x00885380` is an ECX-receiver operation over the outer vector at receiver `+4`, takes one\n stack `int turn`, returns a `TurnEvents*` in EAX, and uses `ret 4`. It divides the outer byte span\n by `0x18`, scans every element, and overwrites its candidate on every `EvTurn` match. Therefore a\n hit returns the **last** matching bucket and performs no construction, allocation, ID update, or\n RNG draw.\n* On a miss it initializes a stack `TurnEvents` with vptr `0x00a0f07c` and zero nested-vector\n pointers, then calls outer `vector::push_back` at `0x00884cb0`. Only after append does\n it write the requested turn to the stored element at `_Mylast[-1]+4`. It destroys the temporary's\n nested vector through `0x00629580` and returns the new element. The temporary itself starts with\n turn zero; append deep-copies that zero before the stored turn is patched.\n* `0x00884cb0` is ECX receiver plus one source pointer and `ret 4`; stride is `0x18`. It handles a\n source pointer inside its own vector separately so growth cannot invalidate the source. Both\n branches install the TurnEvents vptr, copy `EvTurn`, and copy-construct the nested PlayerEvent\n vector through `0x00779850`; this is not a 24-byte header copy. It advances outer `_Mylast` only\n after the nested copy call returns.\n* Outer full-capacity growth is `0x008841a0` -> `0x00883a60`. Capacity selection is old capacity\n plus half where sufficient, otherwise required size. `0x006e8f50` allocates `count * 0x18` through\n `0x00924fb6`. `0x0077fed0` copy-constructs every old TurnEvents, including an independent nested\n vector via `0x00779850`; then `0x00883a60` invokes each old TurnEvents virtual destructor with\n deleting flag zero, frees the old outer allocation through `0x00924faa`, and writes all three\n outer vector pointers.\n* The vtable bytes at `0x00a0f07c` identify slot zero as `0x0062e120`. That scalar-deleting\n destructor calls `0x00629580` on the nested vector at `+8`; with flag bit zero it does not free the\n inline TurnEvents object. `0x00629580` invokes every nested PlayerEvent virtual destructor in\n `0x74` steps, frees the nested allocation through `0x00924faa`, and zeros all three nested vector\n pointers.\n* `0x00779850` is ECX destination nested vector plus one source-vector pointer and `ret 4`. An empty\n source leaves three zero pointers. A nonempty source allocates `count * 0x74` through\n `0x0078af40` -> `0x00924fb6`, then `0x007725a0` copy-constructs each PlayerEvent through\n `0x007693f0`. Its unwind destroys already completed PlayerEvents; `0x00779850` then calls\n `0x00629580`, and outer range-copy unwind at `0x0077fed0` destroys already completed TurnEvents.\n Outer reallocation's landing path frees the newly allocated outer block before continuing the\n exception through `0x00924fbc`. These are observed cleanup edges, not a claim that allocation\n failure has been executed live.\n\n### Duplicate and prune branches\n\n* `0x00825d40` receives bucket and candidate pointers as two stack words, ignores incoming ECX,\n and uses `ret 8`. A null bucket or empty nested vector returns zero. It scans in `0x74` steps and\n checks, in order: `EvAct`, `EvLoc`, all three `EvPos` floats, `EvMsg`, `EvImg`, then calls\n `0x0046f8c0` with the strings rooted at `EvDsc +8`. Complete fresh capture establishes that\n `0x0046f8c0` is a two-stack-argument, caller-cleaned string-inequality operation: first argument is\n the stored string, second is the candidate string, EAX/AL is one iff the strings differ, and it\n uses plain `ret`. `0x00825e21` therefore reaches the matched-element return only when AL is zero,\n i.e. when descriptions are equal. A description-only difference continues the scan. This","lineStart":50,"lineEnd":104,"totalLines":167,"truncated":true}},"title":"verify/results/research-completion-abi/recovered-static.md","time":{"start":1789013447067,"end":1789013447080}},"metadata":{"openai":{"itemId":"fc_09dc4a6267b94f69016aa22dc6b31c87d199ba22db59fb9b53"}},"id":"prt_08982d131001G56onTQJRVCut2","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089829bb1001Vlq8ahjooPqHRg"}} +{"type":"tool_use","timestamp":1789013447145,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_uVQpjBdktgpngOEbmEG0hDQK","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/manifest.json","offset":336,"limit":175},"output":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/manifest.json\nfile\n\n336: {\n337: \"name\": \"turn-append\",\n338: \"argv\": [\n339: \"/usr/bin/objdump\",\n340: \"-D\",\n341: \"-Mintel\",\n342: \"--start-address=0x00884cb0\",\n343: \"--stop-address=0x00884dc0\",\n344: \"/home/alex/sots-re/dumps/sots.exe\"\n345: ],\n346: \"start\": \"0x00884cb0\",\n347: \"stop\": \"0x00884dc0\",\n348: \"returncode\": 0,\n349: \"stdout_bytes\": 5310,\n350: \"stdout_sha256\": \"8bdd01017c35700d05f205026448f21b2cccc9c9ba6895ceeb3c1a3935c2ebc8\",\n351: \"stderr_bytes\": 0,\n352: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n353: \"instruction_lines\": 102\n354: },\n355: {\n356: \"name\": \"turn-grow\",\n357: \"argv\": [\n358: \"/usr/bin/objdump\",\n359: \"-D\",\n360: \"-Mintel\",\n361: \"--start-address=0x008841a0\",\n362: \"--stop-address=0x00884440\",\n363: \"/home/alex/sots-re/dumps/sots.exe\"\n364: ],\n365: \"start\": \"0x008841a0\",\n366: \"stop\": \"0x00884440\",\n367: \"returncode\": 0,\n368: \"stdout_bytes\": 12599,\n369: \"stdout_sha256\": \"eb887fbef7b4686530d2fc1c0caf2c2ee78c761aa3706cebcf3c146a22480b2e\",\n370: \"stderr_bytes\": 0,\n371: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n372: \"instruction_lines\": 245\n373: },\n374: {\n375: \"name\": \"nested-dtor\",\n376: \"argv\": [\n377: \"/usr/bin/objdump\",\n378: \"-D\",\n379: \"-Mintel\",\n380: \"--start-address=0x00629580\",\n381: \"--stop-address=0x00629620\",\n382: \"/home/alex/sots-re/dumps/sots.exe\"\n383: ],\n384: \"start\": \"0x00629580\",\n385: \"stop\": \"0x00629620\",\n386: \"returncode\": 0,\n387: \"stdout_bytes\": 3992,\n388: \"stdout_sha256\": \"ff8c157c1eb1dcac82e28ab433965f17c3b666d2d02823b0209ee499707556e8\",\n389: \"stderr_bytes\": 0,\n390: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n391: \"instruction_lines\": 81\n392: },\n393: {\n394: \"name\": \"nested-copy\",\n395: \"argv\": [\n396: \"/usr/bin/objdump\",\n397: \"-D\",\n398: \"-Mintel\",\n399: \"--start-address=0x00779850\",\n400: \"--stop-address=0x00779a20\",\n401: \"/home/alex/sots-re/dumps/sots.exe\"\n402: ],\n403: \"start\": \"0x00779850\",\n404: \"stop\": \"0x00779a20\",\n405: \"returncode\": 0,\n406: \"stdout_bytes\": 8469,\n407: \"stdout_sha256\": \"e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1\",\n408: \"stderr_bytes\": 0,\n409: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n410: \"instruction_lines\": 169\n411: },\n412: {\n413: \"name\": \"turn-dtor\",\n414: \"argv\": [\n415: \"/usr/bin/objdump\",\n416: \"-D\",\n417: \"-Mintel\",\n418: \"--start-address=0x0062e120\",\n419: \"--stop-address=0x0062e190\",\n420: \"/home/alex/sots-re/dumps/sots.exe\"\n421: ],\n422: \"start\": \"0x0062e120\",\n423: \"stop\": \"0x0062e190\",\n424: \"returncode\": 0,\n425: \"stdout_bytes\": 2312,\n426: \"stdout_sha256\": \"67777b4a5f658d4629a24770929979494739b6b3bcb0075fb8af17c782d080be\",\n427: \"stderr_bytes\": 0,\n428: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n429: \"instruction_lines\": 48\n430: },\n431: {\n432: \"name\": \"turn-alloc\",\n433: \"argv\": [\n434: \"/usr/bin/objdump\",\n435: \"-D\",\n436: \"-Mintel\",\n437: \"--start-address=0x006e8f50\",\n438: \"--stop-address=0x006e8fb0\",\n439: \"/home/alex/sots-re/dumps/sots.exe\"\n440: ],\n441: \"start\": \"0x006e8f50\",\n442: \"stop\": \"0x006e8fb0\",\n443: \"returncode\": 0,\n444: \"stdout_bytes\": 1819,\n445: \"stdout_sha256\": \"a00efc52c0c259edeab80178eb3e11eb921b215ccac4882afc71b59b7e8da1c1\",\n446: \"stderr_bytes\": 0,\n447: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n448: \"instruction_lines\": 36\n449: },\n450: {\n451: \"name\": \"turn-range-copy\",\n452: \"argv\": [\n453: \"/usr/bin/objdump\",\n454: \"-D\",\n455: \"-Mintel\",\n456: \"--start-address=0x0077fed0\",\n457: \"--stop-address=0x00780040\",\n458: \"/home/alex/sots-re/dumps/sots.exe\"\n459: ],\n460: \"start\": \"0x0077fed0\",\n461: \"stop\": \"0x00780040\",\n462: \"returncode\": 0,\n463: \"stdout_bytes\": 7128,\n464: \"stdout_sha256\": \"b937abaeed9a4bd44e5736b8474262119fa6d78c96b5cf89e0a1d50f4c58b44d\",\n465: \"stderr_bytes\": 0,\n466: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n467: \"instruction_lines\": 136\n468: },\n469: {\n470: \"name\": \"player-range-copy\",\n471: \"argv\": [\n472: \"/usr/bin/objdump\",\n473: \"-D\",\n474: \"-Mintel\",\n475: \"--start-address=0x007725a0\",\n476: \"--stop-address=0x007726d0\",\n477: \"/home/alex/sots-re/dumps/sots.exe\"\n478: ],\n479: \"start\": \"0x007725a0\",\n480: \"stop\": \"0x007726d0\",\n481: \"returncode\": 0,\n482: \"stdout_bytes\": 6015,\n483: \"stdout_sha256\": \"829c3dc30d98ae3f0c8d71175e5c3925f5348e620e25945843bb0ed694ea4bf9\",\n484: \"stderr_bytes\": 0,\n485: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n486: \"instruction_lines\": 121\n487: },\n488: {\n489: \"name\": \"player-alloc\",\n490: \"argv\": [\n491: \"/usr/bin/objdump\",\n492: \"-D\",\n493: \"-Mintel\",\n494: \"--start-address=0x0078af40\",\n495: \"--stop-address=0x0078afa8\",\n496: \"/home/alex/sots-re/dumps/sots.exe\"\n497: ],\n498: \"start\": \"0x0078af40\",\n499: \"stop\": \"0x0078afa8\",\n500: \"returncode\": 0,\n501: \"stdout_bytes\": 2113,\n502: \"stdout_sha256\": \"b1c54d102d1921c02eae44392278ba763fe92441cf93fcd970392bf472f1acdf\",\n503: \"stderr_bytes\": 0,\n504: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n505: \"instruction_lines\": 43\n506: },\n507: {\n508: \"name\": \"player-ctor\",\n509: \"argv\": [\n510: \"/usr/bin/objdump\",\n\n(Showing lines 336-510 of 545. Use offset=511 to continue.)\n","metadata":{"preview":" {\n \"name\": \"turn-append\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00884cb0\",\n \"--stop-address=0x00884dc0\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00884cb0\",\n \"stop\": \"0x00884dc0\",\n \"returncode\": 0,\n \"stdout_bytes\": 5310,\n \"stdout_sha256\": \"8bdd01017c35700d05f205026448f21b2cccc9c9ba6895ceeb3c1a3935c2ebc8\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 102\n },\n {","truncated":true,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/manifest.json","text":" {\n \"name\": \"turn-append\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00884cb0\",\n \"--stop-address=0x00884dc0\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00884cb0\",\n \"stop\": \"0x00884dc0\",\n \"returncode\": 0,\n \"stdout_bytes\": 5310,\n \"stdout_sha256\": \"8bdd01017c35700d05f205026448f21b2cccc9c9ba6895ceeb3c1a3935c2ebc8\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 102\n },\n {\n \"name\": \"turn-grow\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x008841a0\",\n \"--stop-address=0x00884440\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x008841a0\",\n \"stop\": \"0x00884440\",\n \"returncode\": 0,\n \"stdout_bytes\": 12599,\n \"stdout_sha256\": \"eb887fbef7b4686530d2fc1c0caf2c2ee78c761aa3706cebcf3c146a22480b2e\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 245\n },\n {\n \"name\": \"nested-dtor\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00629580\",\n \"--stop-address=0x00629620\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00629580\",\n \"stop\": \"0x00629620\",\n \"returncode\": 0,\n \"stdout_bytes\": 3992,\n \"stdout_sha256\": \"ff8c157c1eb1dcac82e28ab433965f17c3b666d2d02823b0209ee499707556e8\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 81\n },\n {\n \"name\": \"nested-copy\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00779850\",\n \"--stop-address=0x00779a20\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00779850\",\n \"stop\": \"0x00779a20\",\n \"returncode\": 0,\n \"stdout_bytes\": 8469,\n \"stdout_sha256\": \"e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 169\n },\n {\n \"name\": \"turn-dtor\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x0062e120\",\n \"--stop-address=0x0062e190\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x0062e120\",\n \"stop\": \"0x0062e190\",\n \"returncode\": 0,\n \"stdout_bytes\": 2312,\n \"stdout_sha256\": \"67777b4a5f658d4629a24770929979494739b6b3bcb0075fb8af17c782d080be\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 48\n },\n {\n \"name\": \"turn-alloc\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x006e8f50\",\n \"--stop-address=0x006e8fb0\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x006e8f50\",\n \"stop\": \"0x006e8fb0\",\n \"returncode\": 0,\n \"stdout_bytes\": 1819,\n \"stdout_sha256\": \"a00efc52c0c259edeab80178eb3e11eb921b215ccac4882afc71b59b7e8da1c1\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 36\n },\n {\n \"name\": \"turn-range-copy\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x0077fed0\",\n \"--stop-address=0x00780040\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x0077fed0\",\n \"stop\": \"0x00780040\",\n \"returncode\": 0,\n \"stdout_bytes\": 7128,\n \"stdout_sha256\": \"b937abaeed9a4bd44e5736b8474262119fa6d78c96b5cf89e0a1d50f4c58b44d\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 136\n },\n {\n \"name\": \"player-range-copy\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x007725a0\",\n \"--stop-address=0x007726d0\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x007725a0\",\n \"stop\": \"0x007726d0\",\n \"returncode\": 0,\n \"stdout_bytes\": 6015,\n \"stdout_sha256\": \"829c3dc30d98ae3f0c8d71175e5c3925f5348e620e25945843bb0ed694ea4bf9\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 121\n },\n {\n \"name\": \"player-alloc\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x0078af40\",\n \"--stop-address=0x0078afa8\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x0078af40\",\n \"stop\": \"0x0078afa8\",\n \"returncode\": 0,\n \"stdout_bytes\": 2113,\n \"stdout_sha256\": \"b1c54d102d1921c02eae44392278ba763fe92441cf93fcd970392bf472f1acdf\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 43\n },\n {\n \"name\": \"player-ctor\",\n \"argv\": [\n \"/usr/bin/objdump\",","lineStart":336,"lineEnd":510,"totalLines":545,"truncated":true}},"title":"verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/manifest.json","time":{"start":1789013447131,"end":1789013447143}},"metadata":{"openai":{"itemId":"fc_09dc4a6267b94f69016aa22dc6b32c87d18892b40c9bf3ef1b"}},"id":"prt_08982d1b4001cYxeM9XemPveZ5","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089829bb1001Vlq8ahjooPqHRg"}} +{"type":"tool_use","timestamp":1789013447263,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_vsi2PacbqELLlv0sEf7nt7zV","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/turn-append.stdout.txt"},"output":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/turn-append.stdout.txt\nfile\n\n1: \n2: /home/alex/sots-re/dumps/sots.exe: file format pei-i386\n3: \n4: \n5: Disassembly of section .text:\n6: \n7: 00884cb0 <.text+0x483cb0>:\n8: 884cb0:\t55 \tpush ebp\n9: 884cb1:\t8b ec \tmov ebp,esp\n10: 884cb3:\t6a ff \tpush 0xffffffff\n11: 884cb5:\t68 72 0b 98 00 \tpush 0x980b72\n12: 884cba:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n13: 884cc0:\t50 \tpush eax\n14: 884cc1:\t51 \tpush ecx\n15: 884cc2:\t56 \tpush esi\n16: 884cc3:\t57 \tpush edi\n17: 884cc4:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n18: 884cc9:\t33 c5 \txor eax,ebp\n19: 884ccb:\t50 \tpush eax\n20: 884ccc:\t8d 45 f4 \tlea eax,[ebp-0xc]\n21: 884ccf:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n22: 884cd5:\t8b f9 \tmov edi,ecx\n23: 884cd7:\t8b 4f 04 \tmov ecx,DWORD PTR [edi+0x4]\n24: 884cda:\t8b 75 08 \tmov esi,DWORD PTR [ebp+0x8]\n25: 884cdd:\t3b f1 \tcmp esi,ecx\n26: 884cdf:\t73 59 \tjae 0x884d3a\n27: 884ce1:\t8b 07 \tmov eax,DWORD PTR [edi]\n28: 884ce3:\t3b c6 \tcmp eax,esi\n29: 884ce5:\t77 53 \tja 0x884d3a\n30: 884ce7:\t2b f0 \tsub esi,eax\n31: 884ce9:\tb8 ab aa aa 2a \tmov eax,0x2aaaaaab\n32: 884cee:\tf7 ee \timul esi\n33: 884cf0:\tc1 fa 02 \tsar edx,0x2\n34: 884cf3:\t8b f2 \tmov esi,edx\n35: 884cf5:\tc1 ee 1f \tshr esi,0x1f\n36: 884cf8:\t03 f2 \tadd esi,edx\n37: 884cfa:\t3b 4f 08 \tcmp ecx,DWORD PTR [edi+0x8]\n38: 884cfd:\t75 09 \tjne 0x884d08\n39: 884cff:\t6a 01 \tpush 0x1\n40: 884d01:\t8b cf \tmov ecx,edi\n41: 884d03:\te8 98 f4 ff ff \tcall 0x8841a0\n42: 884d08:\t8b 0f \tmov ecx,DWORD PTR [edi]\n43: 884d0a:\t8d 04 76 \tlea eax,[esi+esi*2]\n44: 884d0d:\t8d 0c c1 \tlea ecx,[ecx+eax*8]\n45: 884d10:\t8b 47 04 \tmov eax,DWORD PTR [edi+0x4]\n46: 884d13:\t89 45 08 \tmov DWORD PTR [ebp+0x8],eax\n47: 884d16:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n48: 884d19:\tc7 45 fc 00 00 00 00 \tmov DWORD PTR [ebp-0x4],0x0\n49: 884d20:\t85 c0 \ttest eax,eax\n50: 884d22:\t74 54 \tje 0x884d78\n51: 884d24:\tc7 00 7c f0 a0 00 \tmov DWORD PTR [eax],0xa0f07c\n52: 884d2a:\t8b 51 04 \tmov edx,DWORD PTR [ecx+0x4]\n53: 884d2d:\t83 c1 08 \tadd ecx,0x8\n54: 884d30:\tc6 45 fc 01 \tmov BYTE PTR [ebp-0x4],0x1\n55: 884d34:\t89 50 04 \tmov DWORD PTR [eax+0x4],edx\n56: 884d37:\t51 \tpush ecx\n57: 884d38:\teb 36 \tjmp 0x884d70\n58: 884d3a:\t3b 4f 08 \tcmp ecx,DWORD PTR [edi+0x8]\n59: 884d3d:\t75 09 \tjne 0x884d48\n60: 884d3f:\t6a 01 \tpush 0x1\n61: 884d41:\t8b cf \tmov ecx,edi\n62: 884d43:\te8 58 f4 ff ff \tcall 0x8841a0\n63: 884d48:\t8b 47 04 \tmov eax,DWORD PTR [edi+0x4]\n64: 884d4b:\t89 45 08 \tmov DWORD PTR [ebp+0x8],eax\n65: 884d4e:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n66: 884d51:\tc7 45 fc 02 00 00 00 \tmov DWORD PTR [ebp-0x4],0x2\n67: 884d58:\t85 c0 \ttest eax,eax\n68: 884d5a:\t74 1c \tje 0x884d78\n69: 884d5c:\tc7 00 7c f0 a0 00 \tmov DWORD PTR [eax],0xa0f07c\n70: 884d62:\t8b 4e 04 \tmov ecx,DWORD PTR [esi+0x4]\n71: 884d65:\t83 c6 08 \tadd esi,0x8\n72: 884d68:\tc6 45 fc 03 \tmov BYTE PTR [ebp-0x4],0x3\n73: 884d6c:\t89 48 04 \tmov DWORD PTR [eax+0x4],ecx\n74: 884d6f:\t56 \tpush esi\n75: 884d70:\t8d 48 08 \tlea ecx,[eax+0x8]\n76: 884d73:\te8 d8 4a ef ff \tcall 0x779850\n77: 884d78:\t83 47 04 18 \tadd DWORD PTR [edi+0x4],0x18\n78: 884d7c:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n79: 884d7f:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n80: 884d86:\t59 \tpop ecx\n81: 884d87:\t5f \tpop edi\n82: 884d88:\t5e \tpop esi\n83: 884d89:\t8b e5 \tmov esp,ebp\n84: 884d8b:\t5d \tpop ebp\n85: 884d8c:\tc2 04 00 \tret 0x4\n86: 884d8f:\tcc \tint3 \n87: 884d90:\t55 \tpush ebp\n88: 884d91:\t8b ec \tmov ebp,esp\n89: 884d93:\t53 \tpush ebx\n90: 884d94:\t56 \tpush esi\n91: 884d95:\t8b f1 \tmov esi,ecx\n92: 884d97:\t8b 5e 04 \tmov ebx,DWORD PTR [esi+0x4]\n93: 884d9a:\t8b cb \tmov ecx,ebx\n94: 884d9c:\t2b 0e \tsub ecx,DWORD PTR [esi]\n95: 884d9e:\tb8 ab aa aa 2a \tmov eax,0x2aaaaaab\n96: 884da3:\tf7 e9 \timul ecx\n97: 884da5:\tc1 fa 02 \tsar edx,0x2\n98: 884da8:\t8b c2 \tmov eax,edx\n99: 884daa:\tc1 e8 1f \tshr eax,0x1f\n100: 884dad:\t57 \tpush edi\n101: 884dae:\t8b 7d 08 \tmov edi,DWORD PTR [ebp+0x8]\n102: 884db1:\t03 c2 \tadd eax,edx\n103: 884db3:\t3b c7 \tcmp eax,edi\n104: 884db5:\t76 1c \tjbe 0x884dd3\n105: 884db7:\t8b 06 \tmov eax,DWORD PTR [esi]\n106: 884db9:\t8d 0c 7f \tlea ecx,[edi+edi*2]\n107: 884dbc:\t8d 04 c8 \tlea eax,[eax+ecx*8]\n108: 884dbf:\t53 \tpush ebx\n\n(End of file - total 108 lines)\n","metadata":{"preview":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00884cb0 <.text+0x483cb0>:\n 884cb0:\t55 \tpush ebp\n 884cb1:\t8b ec \tmov ebp,esp\n 884cb3:\t6a ff \tpush 0xffffffff\n 884cb5:\t68 72 0b 98 00 \tpush 0x980b72\n 884cba:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 884cc0:\t50 \tpush eax\n 884cc1:\t51 \tpush ecx\n 884cc2:\t56 \tpush esi\n 884cc3:\t57 \tpush edi\n 884cc4:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 884cc9:\t33 c5 \txor eax,ebp\n 884ccb:\t50 \tpush eax\n 884ccc:\t8d 45 f4 \tlea eax,[ebp-0xc]","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/turn-append.stdout.txt","text":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00884cb0 <.text+0x483cb0>:\n 884cb0:\t55 \tpush ebp\n 884cb1:\t8b ec \tmov ebp,esp\n 884cb3:\t6a ff \tpush 0xffffffff\n 884cb5:\t68 72 0b 98 00 \tpush 0x980b72\n 884cba:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 884cc0:\t50 \tpush eax\n 884cc1:\t51 \tpush ecx\n 884cc2:\t56 \tpush esi\n 884cc3:\t57 \tpush edi\n 884cc4:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 884cc9:\t33 c5 \txor eax,ebp\n 884ccb:\t50 \tpush eax\n 884ccc:\t8d 45 f4 \tlea eax,[ebp-0xc]\n 884ccf:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n 884cd5:\t8b f9 \tmov edi,ecx\n 884cd7:\t8b 4f 04 \tmov ecx,DWORD PTR [edi+0x4]\n 884cda:\t8b 75 08 \tmov esi,DWORD PTR [ebp+0x8]\n 884cdd:\t3b f1 \tcmp esi,ecx\n 884cdf:\t73 59 \tjae 0x884d3a\n 884ce1:\t8b 07 \tmov eax,DWORD PTR [edi]\n 884ce3:\t3b c6 \tcmp eax,esi\n 884ce5:\t77 53 \tja 0x884d3a\n 884ce7:\t2b f0 \tsub esi,eax\n 884ce9:\tb8 ab aa aa 2a \tmov eax,0x2aaaaaab\n 884cee:\tf7 ee \timul esi\n 884cf0:\tc1 fa 02 \tsar edx,0x2\n 884cf3:\t8b f2 \tmov esi,edx\n 884cf5:\tc1 ee 1f \tshr esi,0x1f\n 884cf8:\t03 f2 \tadd esi,edx\n 884cfa:\t3b 4f 08 \tcmp ecx,DWORD PTR [edi+0x8]\n 884cfd:\t75 09 \tjne 0x884d08\n 884cff:\t6a 01 \tpush 0x1\n 884d01:\t8b cf \tmov ecx,edi\n 884d03:\te8 98 f4 ff ff \tcall 0x8841a0\n 884d08:\t8b 0f \tmov ecx,DWORD PTR [edi]\n 884d0a:\t8d 04 76 \tlea eax,[esi+esi*2]\n 884d0d:\t8d 0c c1 \tlea ecx,[ecx+eax*8]\n 884d10:\t8b 47 04 \tmov eax,DWORD PTR [edi+0x4]\n 884d13:\t89 45 08 \tmov DWORD PTR [ebp+0x8],eax\n 884d16:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n 884d19:\tc7 45 fc 00 00 00 00 \tmov DWORD PTR [ebp-0x4],0x0\n 884d20:\t85 c0 \ttest eax,eax\n 884d22:\t74 54 \tje 0x884d78\n 884d24:\tc7 00 7c f0 a0 00 \tmov DWORD PTR [eax],0xa0f07c\n 884d2a:\t8b 51 04 \tmov edx,DWORD PTR [ecx+0x4]\n 884d2d:\t83 c1 08 \tadd ecx,0x8\n 884d30:\tc6 45 fc 01 \tmov BYTE PTR [ebp-0x4],0x1\n 884d34:\t89 50 04 \tmov DWORD PTR [eax+0x4],edx\n 884d37:\t51 \tpush ecx\n 884d38:\teb 36 \tjmp 0x884d70\n 884d3a:\t3b 4f 08 \tcmp ecx,DWORD PTR [edi+0x8]\n 884d3d:\t75 09 \tjne 0x884d48\n 884d3f:\t6a 01 \tpush 0x1\n 884d41:\t8b cf \tmov ecx,edi\n 884d43:\te8 58 f4 ff ff \tcall 0x8841a0\n 884d48:\t8b 47 04 \tmov eax,DWORD PTR [edi+0x4]\n 884d4b:\t89 45 08 \tmov DWORD PTR [ebp+0x8],eax\n 884d4e:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n 884d51:\tc7 45 fc 02 00 00 00 \tmov DWORD PTR [ebp-0x4],0x2\n 884d58:\t85 c0 \ttest eax,eax\n 884d5a:\t74 1c \tje 0x884d78\n 884d5c:\tc7 00 7c f0 a0 00 \tmov DWORD PTR [eax],0xa0f07c\n 884d62:\t8b 4e 04 \tmov ecx,DWORD PTR [esi+0x4]\n 884d65:\t83 c6 08 \tadd esi,0x8\n 884d68:\tc6 45 fc 03 \tmov BYTE PTR [ebp-0x4],0x3\n 884d6c:\t89 48 04 \tmov DWORD PTR [eax+0x4],ecx\n 884d6f:\t56 \tpush esi\n 884d70:\t8d 48 08 \tlea ecx,[eax+0x8]\n 884d73:\te8 d8 4a ef ff \tcall 0x779850\n 884d78:\t83 47 04 18 \tadd DWORD PTR [edi+0x4],0x18\n 884d7c:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n 884d7f:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n 884d86:\t59 \tpop ecx\n 884d87:\t5f \tpop edi\n 884d88:\t5e \tpop esi\n 884d89:\t8b e5 \tmov esp,ebp\n 884d8b:\t5d \tpop ebp\n 884d8c:\tc2 04 00 \tret 0x4\n 884d8f:\tcc \tint3 \n 884d90:\t55 \tpush ebp\n 884d91:\t8b ec \tmov ebp,esp\n 884d93:\t53 \tpush ebx\n 884d94:\t56 \tpush esi\n 884d95:\t8b f1 \tmov esi,ecx\n 884d97:\t8b 5e 04 \tmov ebx,DWORD PTR [esi+0x4]\n 884d9a:\t8b cb \tmov ecx,ebx\n 884d9c:\t2b 0e \tsub ecx,DWORD PTR [esi]\n 884d9e:\tb8 ab aa aa 2a \tmov eax,0x2aaaaaab\n 884da3:\tf7 e9 \timul ecx\n 884da5:\tc1 fa 02 \tsar edx,0x2\n 884da8:\t8b c2 \tmov eax,edx\n 884daa:\tc1 e8 1f \tshr eax,0x1f\n 884dad:\t57 \tpush edi\n 884dae:\t8b 7d 08 \tmov edi,DWORD PTR [ebp+0x8]\n 884db1:\t03 c2 \tadd eax,edx\n 884db3:\t3b c7 \tcmp eax,edi\n 884db5:\t76 1c \tjbe 0x884dd3\n 884db7:\t8b 06 \tmov eax,DWORD PTR [esi]\n 884db9:\t8d 0c 7f \tlea ecx,[edi+edi*2]\n 884dbc:\t8d 04 c8 \tlea eax,[eax+ecx*8]\n 884dbf:\t53 \tpush ebx","lineStart":1,"lineEnd":108,"totalLines":108,"truncated":false}},"title":"verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/turn-append.stdout.txt","time":{"start":1789013447253,"end":1789013447260}},"metadata":{"openai":{"itemId":"fc_09dc4a6267b94f69016aa22dc6b33487d1b8457ed080462ae0"}},"id":"prt_08982d1f9001IGL2mofShLlykg","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089829bb1001Vlq8ahjooPqHRg"}} +{"type":"tool_use","timestamp":1789013447454,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_VbspM6sew4L0RZVbk5lm7i3F","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/nested-dtor.stdout.txt"},"output":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/nested-dtor.stdout.txt\nfile\n\n1: \n2: /home/alex/sots-re/dumps/sots.exe: file format pei-i386\n3: \n4: \n5: Disassembly of section .text:\n6: \n7: 00629580 <.text+0x228580>:\n8: 629580:\t57 \tpush edi\n9: 629581:\t8b f9 \tmov edi,ecx\n10: 629583:\t83 3f 00 \tcmp DWORD PTR [edi],0x0\n11: 629586:\t74 36 \tje 0x6295be\n12: 629588:\t53 \tpush ebx\n13: 629589:\t56 \tpush esi\n14: 62958a:\tff 15 2c d1 9d 00 \tcall DWORD PTR ds:0x9dd12c\n15: 629590:\t8b 5f 04 \tmov ebx,DWORD PTR [edi+0x4]\n16: 629593:\t8b 37 \tmov esi,DWORD PTR [edi]\n17: 629595:\t3b f3 \tcmp esi,ebx\n18: 629597:\t74 18 \tje 0x6295b1\n19: 629599:\t8d a4 24 00 00 00 00 \tlea esp,[esp+0x0]\n20: 6295a0:\t8b 06 \tmov eax,DWORD PTR [esi]\n21: 6295a2:\t8b 10 \tmov edx,DWORD PTR [eax]\n22: 6295a4:\t6a 00 \tpush 0x0\n23: 6295a6:\t8b ce \tmov ecx,esi\n24: 6295a8:\tff d2 \tcall edx\n25: 6295aa:\t83 c6 74 \tadd esi,0x74\n26: 6295ad:\t3b f3 \tcmp esi,ebx\n27: 6295af:\t75 ef \tjne 0x6295a0\n28: 6295b1:\t8b 07 \tmov eax,DWORD PTR [edi]\n29: 6295b3:\t50 \tpush eax\n30: 6295b4:\te8 f1 b9 2f 00 \tcall 0x924faa\n31: 6295b9:\t83 c4 04 \tadd esp,0x4\n32: 6295bc:\t5e \tpop esi\n33: 6295bd:\t5b \tpop ebx\n34: 6295be:\t33 c0 \txor eax,eax\n35: 6295c0:\t89 07 \tmov DWORD PTR [edi],eax\n36: 6295c2:\t89 47 04 \tmov DWORD PTR [edi+0x4],eax\n37: 6295c5:\t89 47 08 \tmov DWORD PTR [edi+0x8],eax\n38: 6295c8:\t5f \tpop edi\n39: 6295c9:\tc3 \tret \n40: 6295ca:\tcc \tint3 \n41: 6295cb:\tcc \tint3 \n42: 6295cc:\tcc \tint3 \n43: 6295cd:\tcc \tint3 \n44: 6295ce:\tcc \tint3 \n45: 6295cf:\tcc \tint3 \n46: 6295d0:\t55 \tpush ebp\n47: 6295d1:\t8b ec \tmov ebp,esp\n48: 6295d3:\t51 \tpush ecx\n49: 6295d4:\t56 \tpush esi\n50: 6295d5:\t8b f1 \tmov esi,ecx\n51: 6295d7:\t8b 46 04 \tmov eax,DWORD PTR [esi+0x4]\n52: 6295da:\t8b 0e \tmov ecx,DWORD PTR [esi]\n53: 6295dc:\t89 75 fc \tmov DWORD PTR [ebp-0x4],esi\n54: 6295df:\t3b c8 \tcmp ecx,eax\n55: 6295e1:\t74 36 \tje 0x629619\n56: 6295e3:\t53 \tpush ebx\n57: 6295e4:\t57 \tpush edi\n58: 6295e5:\t51 \tpush ecx\n59: 6295e6:\t50 \tpush eax\n60: 6295e7:\t50 \tpush eax\n61: 6295e8:\te8 c3 e0 fe ff \tcall 0x6176b0\n62: 6295ed:\t8b 7e 04 \tmov edi,DWORD PTR [esi+0x4]\n63: 6295f0:\t8b d8 \tmov ebx,eax\n64: 6295f2:\t83 c4 0c \tadd esp,0xc\n65: 6295f5:\t8b f3 \tmov esi,ebx\n66: 6295f7:\t3b df \tcmp ebx,edi\n67: 6295f9:\t74 16 \tje 0x629611\n68: 6295fb:\teb 03 \tjmp 0x629600\n69: 6295fd:\t8d 49 00 \tlea ecx,[ecx+0x0]\n70: 629600:\t8b 06 \tmov eax,DWORD PTR [esi]\n71: 629602:\t8b 10 \tmov edx,DWORD PTR [eax]\n72: 629604:\t6a 00 \tpush 0x0\n73: 629606:\t8b ce \tmov ecx,esi\n74: 629608:\tff d2 \tcall edx\n75: 62960a:\t83 c6 10 \tadd esi,0x10\n76: 62960d:\t3b f7 \tcmp esi,edi\n77: 62960f:\t75 ef \tjne 0x629600\n78: 629611:\t8b 45 fc \tmov eax,DWORD PTR [ebp-0x4]\n79: 629614:\t5f \tpop edi\n80: 629615:\t89 58 04 \tmov DWORD PTR [eax+0x4],ebx\n81: 629618:\t5b \tpop ebx\n82: 629619:\t5e \tpop esi\n83: 62961a:\t8b e5 \tmov esp,ebp\n84: 62961c:\t5d \tpop ebp\n85: 62961d:\tc3 \tret \n86: 62961e:\tcc \tint3 \n87: 62961f:\tcc \tint3 \n\n(End of file - total 87 lines)\n","metadata":{"preview":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00629580 <.text+0x228580>:\n 629580:\t57 \tpush edi\n 629581:\t8b f9 \tmov edi,ecx\n 629583:\t83 3f 00 \tcmp DWORD PTR [edi],0x0\n 629586:\t74 36 \tje 0x6295be\n 629588:\t53 \tpush ebx\n 629589:\t56 \tpush esi\n 62958a:\tff 15 2c d1 9d 00 \tcall DWORD PTR ds:0x9dd12c\n 629590:\t8b 5f 04 \tmov ebx,DWORD PTR [edi+0x4]\n 629593:\t8b 37 \tmov esi,DWORD PTR [edi]\n 629595:\t3b f3 \tcmp esi,ebx\n 629597:\t74 18 \tje 0x6295b1\n 629599:\t8d a4 24 00 00 00 00 \tlea esp,[esp+0x0]\n 6295a0:\t8b 06 \tmov eax,DWORD PTR [esi]","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/nested-dtor.stdout.txt","text":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00629580 <.text+0x228580>:\n 629580:\t57 \tpush edi\n 629581:\t8b f9 \tmov edi,ecx\n 629583:\t83 3f 00 \tcmp DWORD PTR [edi],0x0\n 629586:\t74 36 \tje 0x6295be\n 629588:\t53 \tpush ebx\n 629589:\t56 \tpush esi\n 62958a:\tff 15 2c d1 9d 00 \tcall DWORD PTR ds:0x9dd12c\n 629590:\t8b 5f 04 \tmov ebx,DWORD PTR [edi+0x4]\n 629593:\t8b 37 \tmov esi,DWORD PTR [edi]\n 629595:\t3b f3 \tcmp esi,ebx\n 629597:\t74 18 \tje 0x6295b1\n 629599:\t8d a4 24 00 00 00 00 \tlea esp,[esp+0x0]\n 6295a0:\t8b 06 \tmov eax,DWORD PTR [esi]\n 6295a2:\t8b 10 \tmov edx,DWORD PTR [eax]\n 6295a4:\t6a 00 \tpush 0x0\n 6295a6:\t8b ce \tmov ecx,esi\n 6295a8:\tff d2 \tcall edx\n 6295aa:\t83 c6 74 \tadd esi,0x74\n 6295ad:\t3b f3 \tcmp esi,ebx\n 6295af:\t75 ef \tjne 0x6295a0\n 6295b1:\t8b 07 \tmov eax,DWORD PTR [edi]\n 6295b3:\t50 \tpush eax\n 6295b4:\te8 f1 b9 2f 00 \tcall 0x924faa\n 6295b9:\t83 c4 04 \tadd esp,0x4\n 6295bc:\t5e \tpop esi\n 6295bd:\t5b \tpop ebx\n 6295be:\t33 c0 \txor eax,eax\n 6295c0:\t89 07 \tmov DWORD PTR [edi],eax\n 6295c2:\t89 47 04 \tmov DWORD PTR [edi+0x4],eax\n 6295c5:\t89 47 08 \tmov DWORD PTR [edi+0x8],eax\n 6295c8:\t5f \tpop edi\n 6295c9:\tc3 \tret \n 6295ca:\tcc \tint3 \n 6295cb:\tcc \tint3 \n 6295cc:\tcc \tint3 \n 6295cd:\tcc \tint3 \n 6295ce:\tcc \tint3 \n 6295cf:\tcc \tint3 \n 6295d0:\t55 \tpush ebp\n 6295d1:\t8b ec \tmov ebp,esp\n 6295d3:\t51 \tpush ecx\n 6295d4:\t56 \tpush esi\n 6295d5:\t8b f1 \tmov esi,ecx\n 6295d7:\t8b 46 04 \tmov eax,DWORD PTR [esi+0x4]\n 6295da:\t8b 0e \tmov ecx,DWORD PTR [esi]\n 6295dc:\t89 75 fc \tmov DWORD PTR [ebp-0x4],esi\n 6295df:\t3b c8 \tcmp ecx,eax\n 6295e1:\t74 36 \tje 0x629619\n 6295e3:\t53 \tpush ebx\n 6295e4:\t57 \tpush edi\n 6295e5:\t51 \tpush ecx\n 6295e6:\t50 \tpush eax\n 6295e7:\t50 \tpush eax\n 6295e8:\te8 c3 e0 fe ff \tcall 0x6176b0\n 6295ed:\t8b 7e 04 \tmov edi,DWORD PTR [esi+0x4]\n 6295f0:\t8b d8 \tmov ebx,eax\n 6295f2:\t83 c4 0c \tadd esp,0xc\n 6295f5:\t8b f3 \tmov esi,ebx\n 6295f7:\t3b df \tcmp ebx,edi\n 6295f9:\t74 16 \tje 0x629611\n 6295fb:\teb 03 \tjmp 0x629600\n 6295fd:\t8d 49 00 \tlea ecx,[ecx+0x0]\n 629600:\t8b 06 \tmov eax,DWORD PTR [esi]\n 629602:\t8b 10 \tmov edx,DWORD PTR [eax]\n 629604:\t6a 00 \tpush 0x0\n 629606:\t8b ce \tmov ecx,esi\n 629608:\tff d2 \tcall edx\n 62960a:\t83 c6 10 \tadd esi,0x10\n 62960d:\t3b f7 \tcmp esi,edi\n 62960f:\t75 ef \tjne 0x629600\n 629611:\t8b 45 fc \tmov eax,DWORD PTR [ebp-0x4]\n 629614:\t5f \tpop edi\n 629615:\t89 58 04 \tmov DWORD PTR [eax+0x4],ebx\n 629618:\t5b \tpop ebx\n 629619:\t5e \tpop esi\n 62961a:\t8b e5 \tmov esp,ebp\n 62961c:\t5d \tpop ebp\n 62961d:\tc3 \tret \n 62961e:\tcc \tint3 \n 62961f:\tcc \tint3 ","lineStart":1,"lineEnd":87,"totalLines":87,"truncated":false}},"title":"verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392/nested-dtor.stdout.txt","time":{"start":1789013447445,"end":1789013447452}},"metadata":{"openai":{"itemId":"fc_09dc4a6267b94f69016aa22dc6b33c87d1ab4478b3b40b23fa"}},"id":"prt_08982d28d0015RWsrGiEuByfgg","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089829bb1001Vlq8ahjooPqHRg"}} +{"type":"step_finish","timestamp":1789013447726,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08982d42b001UJwiVizrJ05ryT","reason":"tool-calls","snapshot":"155e267208493305d3a7392b38f19686eb0daeb9","messageID":"msg_089829bb1001Vlq8ahjooPqHRg","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":81343,"input":3164,"output":212,"reasoning":15,"cache":{"write":0,"read":77952}},"cost":0}} +{"type":"step_start","timestamp":1789013451116,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08982e165001MjdgEYctlZpydi","messageID":"msg_08982d459001iMHOUNkILel6Gq","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"1be246bab26abec8e323a7bbe5145e2725688925","type":"step-start"}} +{"type":"tool_use","timestamp":1789013469566,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_WWkZGjKYe3VmBOuBSCkVHFjn","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-completion-abi-independent/reproduce_run_eba7860308317f839eb35392.py","offset":1,"limit":120},"output":"/home/alex/sots-re/verify/results/research-completion-abi-independent/reproduce_run_eba7860308317f839eb35392.py\nfile\n\n1: #!/usr/bin/env python3\n2: \"\"\"Reproduce static ABI windows; writes only this verifier session's result directory.\"\"\"\n3: import hashlib\n4: import json\n5: import pathlib\n6: import subprocess\n7: \n8: ROOT = pathlib.Path(\"/home/alex/sots-re\")\n9: OUT = ROOT / \"verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392\"\n10: EXE = ROOT / \"dumps/sots.exe\"\n11: OBJDUMP = pathlib.Path(\"/usr/bin/objdump\")\n12: \n13: WINDOWS = [\n14: (\"dedup-narrow\", \"D\", 0x00825D40, 0x00825E65),\n15: (\"dedup-wide\", \"D\", 0x00825D40, 0x00825E67),\n16: (\"string-ne\", \"D\", 0x0046F8C0, 0x0046F8F0),\n17: (\"string-compare\", \"D\", 0x004236A0, 0x0042370D),\n18: (\"byte-compare\", \"D\", 0x00422720, 0x00422796),\n19: (\"observed-ctor\", \"D\", 0x008562A0, 0x0085630D),\n20: (\"observed-append\", \"D\", 0x007B7320, 0x007B739F),\n21: (\"observed-realloc\", \"D\", 0x007B34E0, 0x007B35EF),\n22: (\"observed-copy\", \"D\", 0x0079A150, 0x0079A1D9),\n23: (\"player-append\", \"D\", 0x0086C580, 0x0086C62E),\n24: (\"player-copy\", \"D\", 0x007693F0, 0x007694C0),\n25: (\"player-dtor\", \"D\", 0x0061AE90, 0x0061AEFC),\n26: (\"observed-alloc\", \"D\", 0x0057E590, 0x0057E5E4),\n27: (\"string-assign\", \"D\", 0x004249A0, 0x00424ADA),\n28: (\"allocator-thunks\", \"D\", 0x00924FAA, 0x00924FBC),\n29: (\"turn-get-create\", \"D\", 0x00885380, 0x00885500),\n30: (\"prune\", \"D\", 0x00879EB0, 0x0087A020),\n31: (\"turn-append\", \"D\", 0x00884CB0, 0x00884DC0),\n32: (\"turn-grow\", \"D\", 0x008841A0, 0x00884440),\n33: (\"nested-dtor\", \"D\", 0x00629580, 0x00629620),\n34: (\"nested-copy\", \"D\", 0x00779850, 0x00779A20),\n35: (\"turn-dtor\", \"D\", 0x0062E120, 0x0062E190),\n36: (\"turn-alloc\", \"D\", 0x006E8F50, 0x006E8FB0),\n37: (\"turn-range-copy\", \"D\", 0x0077FED0, 0x00780040),\n38: (\"player-range-copy\", \"D\", 0x007725A0, 0x007726D0),\n39: (\"player-alloc\", \"D\", 0x0078AF40, 0x0078AFA8),\n40: (\"player-ctor\", \"D\", 0x0084EE30, 0x0084EEF4),\n41: (\"turn-vtable\", \"s\", 0x00A0F070, 0x00A0F0A0),\n42: ]\n43: \n44: \n45: def sha256(data: bytes) -> str:\n46: return hashlib.sha256(data).hexdigest()\n47: \n48: \n49: OUT.mkdir(exist_ok=False)\n50: records = []\n51: for name, mode, start, stop in WINDOWS:\n52: args = [str(OBJDUMP), f\"-{mode}\"]\n53: if mode == \"D\":\n54: args.append(\"-Mintel\")\n55: args += [f\"--start-address=0x{start:08x}\", f\"--stop-address=0x{stop:08x}\", str(EXE)]\n56: proc = subprocess.run(args, cwd=ROOT, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False)\n57: stdout_path = OUT / f\"{name}.stdout.txt\"\n58: stderr_path = OUT / f\"{name}.stderr.txt\"\n59: stdout_path.write_bytes(proc.stdout)\n60: stderr_path.write_bytes(proc.stderr)\n61: instruction_lines = sum(\n62: 1 for line in proc.stdout.splitlines()\n63: if line.lstrip()[:1].isdigit() and b\":\" in line\n64: )\n65: records.append({\n66: \"name\": name,\n67: \"argv\": args,\n68: \"start\": f\"0x{start:08x}\",\n69: \"stop\": f\"0x{stop:08x}\",\n70: \"returncode\": proc.returncode,\n71: \"stdout_bytes\": len(proc.stdout),\n72: \"stdout_sha256\": sha256(proc.stdout),\n73: \"stderr_bytes\": len(proc.stderr),\n74: \"stderr_sha256\": sha256(proc.stderr),\n75: \"instruction_lines\": instruction_lines,\n76: })\n77: \n78: manifest = {\n79: \"session\": \"run-eba7860308317f839eb35392\",\n80: \"cwd\": str(ROOT),\n81: \"input\": {\"path\": str(EXE), \"sha256\": sha256(EXE.read_bytes())},\n82: \"tool\": {\"path\": str(OBJDUMP), \"sha256\": sha256(OBJDUMP.read_bytes())},\n83: \"windows\": records,\n84: }\n85: (OUT / \"manifest.json\").write_text(json.dumps(manifest, indent=2) + \"\\n\", encoding=\"utf-8\")\n86: if any(r[\"returncode\"] != 0 or r[\"stdout_bytes\"] == 0 for r in records):\n87: raise SystemExit(1)\n\n(End of file - total 87 lines)\n","metadata":{"preview":"#!/usr/bin/env python3\n\"\"\"Reproduce static ABI windows; writes only this verifier session's result directory.\"\"\"\nimport hashlib\nimport json\nimport pathlib\nimport subprocess\n\nROOT = pathlib.Path(\"/home/alex/sots-re\")\nOUT = ROOT / \"verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392\"\nEXE = ROOT / \"dumps/sots.exe\"\nOBJDUMP = pathlib.Path(\"/usr/bin/objdump\")\n\nWINDOWS = [\n (\"dedup-narrow\", \"D\", 0x00825D40, 0x00825E65),\n (\"dedup-wide\", \"D\", 0x00825D40, 0x00825E67),\n (\"string-ne\", \"D\", 0x0046F8C0, 0x0046F8F0),\n (\"string-compare\", \"D\", 0x004236A0, 0x0042370D),\n (\"byte-compare\", \"D\", 0x00422720, 0x00422796),\n (\"observed-ctor\", \"D\", 0x008562A0, 0x0085630D),\n (\"observed-append\", \"D\", 0x007B7320, 0x007B739F),","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-completion-abi-independent/reproduce_run_eba7860308317f839eb35392.py","text":"#!/usr/bin/env python3\n\"\"\"Reproduce static ABI windows; writes only this verifier session's result directory.\"\"\"\nimport hashlib\nimport json\nimport pathlib\nimport subprocess\n\nROOT = pathlib.Path(\"/home/alex/sots-re\")\nOUT = ROOT / \"verify/results/research-completion-abi-independent/run-eba7860308317f839eb35392\"\nEXE = ROOT / \"dumps/sots.exe\"\nOBJDUMP = pathlib.Path(\"/usr/bin/objdump\")\n\nWINDOWS = [\n (\"dedup-narrow\", \"D\", 0x00825D40, 0x00825E65),\n (\"dedup-wide\", \"D\", 0x00825D40, 0x00825E67),\n (\"string-ne\", \"D\", 0x0046F8C0, 0x0046F8F0),\n (\"string-compare\", \"D\", 0x004236A0, 0x0042370D),\n (\"byte-compare\", \"D\", 0x00422720, 0x00422796),\n (\"observed-ctor\", \"D\", 0x008562A0, 0x0085630D),\n (\"observed-append\", \"D\", 0x007B7320, 0x007B739F),\n (\"observed-realloc\", \"D\", 0x007B34E0, 0x007B35EF),\n (\"observed-copy\", \"D\", 0x0079A150, 0x0079A1D9),\n (\"player-append\", \"D\", 0x0086C580, 0x0086C62E),\n (\"player-copy\", \"D\", 0x007693F0, 0x007694C0),\n (\"player-dtor\", \"D\", 0x0061AE90, 0x0061AEFC),\n (\"observed-alloc\", \"D\", 0x0057E590, 0x0057E5E4),\n (\"string-assign\", \"D\", 0x004249A0, 0x00424ADA),\n (\"allocator-thunks\", \"D\", 0x00924FAA, 0x00924FBC),\n (\"turn-get-create\", \"D\", 0x00885380, 0x00885500),\n (\"prune\", \"D\", 0x00879EB0, 0x0087A020),\n (\"turn-append\", \"D\", 0x00884CB0, 0x00884DC0),\n (\"turn-grow\", \"D\", 0x008841A0, 0x00884440),\n (\"nested-dtor\", \"D\", 0x00629580, 0x00629620),\n (\"nested-copy\", \"D\", 0x00779850, 0x00779A20),\n (\"turn-dtor\", \"D\", 0x0062E120, 0x0062E190),\n (\"turn-alloc\", \"D\", 0x006E8F50, 0x006E8FB0),\n (\"turn-range-copy\", \"D\", 0x0077FED0, 0x00780040),\n (\"player-range-copy\", \"D\", 0x007725A0, 0x007726D0),\n (\"player-alloc\", \"D\", 0x0078AF40, 0x0078AFA8),\n (\"player-ctor\", \"D\", 0x0084EE30, 0x0084EEF4),\n (\"turn-vtable\", \"s\", 0x00A0F070, 0x00A0F0A0),\n]\n\n\ndef sha256(data: bytes) -> str:\n return hashlib.sha256(data).hexdigest()\n\n\nOUT.mkdir(exist_ok=False)\nrecords = []\nfor name, mode, start, stop in WINDOWS:\n args = [str(OBJDUMP), f\"-{mode}\"]\n if mode == \"D\":\n args.append(\"-Mintel\")\n args += [f\"--start-address=0x{start:08x}\", f\"--stop-address=0x{stop:08x}\", str(EXE)]\n proc = subprocess.run(args, cwd=ROOT, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False)\n stdout_path = OUT / f\"{name}.stdout.txt\"\n stderr_path = OUT / f\"{name}.stderr.txt\"\n stdout_path.write_bytes(proc.stdout)\n stderr_path.write_bytes(proc.stderr)\n instruction_lines = sum(\n 1 for line in proc.stdout.splitlines()\n if line.lstrip()[:1].isdigit() and b\":\" in line\n )\n records.append({\n \"name\": name,\n \"argv\": args,\n \"start\": f\"0x{start:08x}\",\n \"stop\": f\"0x{stop:08x}\",\n \"returncode\": proc.returncode,\n \"stdout_bytes\": len(proc.stdout),\n \"stdout_sha256\": sha256(proc.stdout),\n \"stderr_bytes\": len(proc.stderr),\n \"stderr_sha256\": sha256(proc.stderr),\n \"instruction_lines\": instruction_lines,\n })\n\nmanifest = {\n \"session\": \"run-eba7860308317f839eb35392\",\n \"cwd\": str(ROOT),\n \"input\": {\"path\": str(EXE), \"sha256\": sha256(EXE.read_bytes())},\n \"tool\": {\"path\": str(OBJDUMP), \"sha256\": sha256(OBJDUMP.read_bytes())},\n \"windows\": records,\n}\n(OUT / \"manifest.json\").write_text(json.dumps(manifest, indent=2) + \"\\n\", encoding=\"utf-8\")\nif any(r[\"returncode\"] != 0 or r[\"stdout_bytes\"] == 0 for r in records):\n raise SystemExit(1)","lineStart":1,"lineEnd":87,"totalLines":87,"truncated":false}},"title":"verify/results/research-completion-abi-independent/reproduce_run_eba7860308317f839eb35392.py","time":{"start":1789013469556,"end":1789013469564}},"metadata":{"openai":{"itemId":"fc_08f7a2ed7207f406016aa22ddd56ec87d1878f4bea7e3479d6"}},"id":"prt_089832953001PEavvhxwU8WyMf","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08982d459001iMHOUNkILel6Gq"}} +{"type":"step_finish","timestamp":1789013469714,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089832a0e001rseFY6kNIxrtf0","reason":"tool-calls","snapshot":"221d135201bfeb82479a93122e039da75029e89d","messageID":"msg_08982d459001iMHOUNkILel6Gq","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":89827,"input":8468,"output":59,"reasoning":276,"cache":{"write":0,"read":81024}},"cost":0}} +{"type":"step_start","timestamp":1789013471595,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089833168001a2xfsK4SnZsHVv","messageID":"msg_089832a47001bLkXfTImvw86DP","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"2aa424c0097cfd809604bb5a2fa070a241fd42c7","type":"step-start"}} +{"type":"tool_use","timestamp":1789013525351,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"apply_patch","callID":"call_7JhCIAR68wnQCvGgIcDPUfwQ","state":{"status":"completed","input":{"patchText":"*** Begin Patch\n*** Add File: /home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py\n+#!/usr/bin/env python3\n+\"\"\"Capture the TurnEvents get/create bridge boundary from the pinned executable.\"\"\"\n+\n+import hashlib\n+import json\n+import pathlib\n+import subprocess\n+\n+\n+ROOT = pathlib.Path(\"/home/alex/sots-re\")\n+OUT = ROOT / \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b\"\n+EXE = ROOT / \"dumps/sots.exe\"\n+OBJDUMP = pathlib.Path(\"/usr/bin/objdump\")\n+SESSION = \"run-472955e277202c411388c66b\"\n+\n+WINDOWS = [\n+ (\"turn-get-create\", \"D\", 0x00885380, 0x0088544A),\n+ (\"turn-append\", \"D\", 0x00884CB0, 0x00884D8F),\n+ (\"turn-grow\", \"D\", 0x008841A0, 0x00884440),\n+ (\"nested-copy\", \"D\", 0x00779850, 0x00779A20),\n+ (\"nested-dtor\", \"D\", 0x00629580, 0x006295CA),\n+ (\"turn-dtor\", \"D\", 0x0062E120, 0x0062E190),\n+ (\"turn-alloc\", \"D\", 0x006E8F50, 0x006E8FB0),\n+ (\"turn-range-copy\", \"D\", 0x0077FED0, 0x00780040),\n+ (\"turn-vtable\", \"s\", 0x00A0F070, 0x00A0F0A0),\n+]\n+\n+\n+def sha256(data: bytes) -> str:\n+ return hashlib.sha256(data).hexdigest()\n+\n+\n+records = []\n+for name, mode, start, stop in WINDOWS:\n+ argv = [str(OBJDUMP), f\"-{mode}\"]\n+ if mode == \"D\":\n+ argv.append(\"-Mintel\")\n+ argv += [\n+ f\"--start-address=0x{start:08x}\",\n+ f\"--stop-address=0x{stop:08x}\",\n+ str(EXE),\n+ ]\n+ proc = subprocess.run(\n+ argv, cwd=ROOT, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False\n+ )\n+ (OUT / f\"{name}.stdout.txt\").write_bytes(proc.stdout)\n+ (OUT / f\"{name}.stderr.txt\").write_bytes(proc.stderr)\n+ records.append(\n+ {\n+ \"name\": name,\n+ \"argv\": argv,\n+ \"start\": f\"0x{start:08x}\",\n+ \"stop\": f\"0x{stop:08x}\",\n+ \"returncode\": proc.returncode,\n+ \"stdout_bytes\": len(proc.stdout),\n+ \"stdout_sha256\": sha256(proc.stdout),\n+ \"stderr_bytes\": len(proc.stderr),\n+ \"stderr_sha256\": sha256(proc.stderr),\n+ \"instruction_lines\": sum(\n+ 1\n+ for line in proc.stdout.splitlines()\n+ if line.lstrip()[:1].isdigit() and b\":\" in line\n+ ),\n+ }\n+ )\n+\n+manifest = {\n+ \"schema\": \"sots-live-record-static-capture/1\",\n+ \"session\": SESSION,\n+ \"scope\": \"Read-only TurnEvents get/create and directly required lifetime helpers; static planning evidence only.\",\n+ \"cwd\": str(ROOT),\n+ \"source_identity\": {\n+ \"engine\": {\n+ \"path\": \"/tmp/opencode/sots-final-research-engine\",\n+ \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n+ \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\",\n+ },\n+ \"re\": {\n+ \"path\": \"/tmp/opencode/sots-final-research-re\",\n+ \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n+ \"sha256\": \"6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8\",\n+ },\n+ },\n+ \"input\": {\"path\": str(EXE), \"sha256\": sha256(EXE.read_bytes())},\n+ \"tool\": {\n+ \"path\": str(OBJDUMP),\n+ \"version\": \"GNU Binutils 2.38\",\n+ \"sha256\": sha256(OBJDUMP.read_bytes()),\n+ },\n+ \"windows\": records,\n+}\n+(OUT / \"manifest.json\").write_text(\n+ json.dumps(manifest, indent=2) + \"\\n\", encoding=\"utf-8\"\n+)\n+\n+if any(\n+ record[\"returncode\"] != 0\n+ or record[\"stdout_bytes\"] == 0\n+ or record[\"stderr_bytes\"] != 0\n+ for record in records\n+):\n+ raise SystemExit(1)\n*** End Patch"},"output":"Success. Updated the following files:\nA verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py","metadata":{"diff":"Index: /home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py\n===================================================================\n--- /home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py\n+++ /home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py\n@@ -0,0 +1,102 @@\n+#!/usr/bin/env python3\n+\"\"\"Capture the TurnEvents get/create bridge boundary from the pinned executable.\"\"\"\n+\n+import hashlib\n+import json\n+import pathlib\n+import subprocess\n+\n+\n+ROOT = pathlib.Path(\"/home/alex/sots-re\")\n+OUT = ROOT / \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b\"\n+EXE = ROOT / \"dumps/sots.exe\"\n+OBJDUMP = pathlib.Path(\"/usr/bin/objdump\")\n+SESSION = \"run-472955e277202c411388c66b\"\n+\n+WINDOWS = [\n+ (\"turn-get-create\", \"D\", 0x00885380, 0x0088544A),\n+ (\"turn-append\", \"D\", 0x00884CB0, 0x00884D8F),\n+ (\"turn-grow\", \"D\", 0x008841A0, 0x00884440),\n+ (\"nested-copy\", \"D\", 0x00779850, 0x00779A20),\n+ (\"nested-dtor\", \"D\", 0x00629580, 0x006295CA),\n+ (\"turn-dtor\", \"D\", 0x0062E120, 0x0062E190),\n+ (\"turn-alloc\", \"D\", 0x006E8F50, 0x006E8FB0),\n+ (\"turn-range-copy\", \"D\", 0x0077FED0, 0x00780040),\n+ (\"turn-vtable\", \"s\", 0x00A0F070, 0x00A0F0A0),\n+]\n+\n+\n+def sha256(data: bytes) -> str:\n+ return hashlib.sha256(data).hexdigest()\n+\n+\n+records = []\n+for name, mode, start, stop in WINDOWS:\n+ argv = [str(OBJDUMP), f\"-{mode}\"]\n+ if mode == \"D\":\n+ argv.append(\"-Mintel\")\n+ argv += [\n+ f\"--start-address=0x{start:08x}\",\n+ f\"--stop-address=0x{stop:08x}\",\n+ str(EXE),\n+ ]\n+ proc = subprocess.run(\n+ argv, cwd=ROOT, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False\n+ )\n+ (OUT / f\"{name}.stdout.txt\").write_bytes(proc.stdout)\n+ (OUT / f\"{name}.stderr.txt\").write_bytes(proc.stderr)\n+ records.append(\n+ {\n+ \"name\": name,\n+ \"argv\": argv,\n+ \"start\": f\"0x{start:08x}\",\n+ \"stop\": f\"0x{stop:08x}\",\n+ \"returncode\": proc.returncode,\n+ \"stdout_bytes\": len(proc.stdout),\n+ \"stdout_sha256\": sha256(proc.stdout),\n+ \"stderr_bytes\": len(proc.stderr),\n+ \"stderr_sha256\": sha256(proc.stderr),\n+ \"instruction_lines\": sum(\n+ 1\n+ for line in proc.stdout.splitlines()\n+ if line.lstrip()[:1].isdigit() and b\":\" in line\n+ ),\n+ }\n+ )\n+\n+manifest = {\n+ \"schema\": \"sots-live-record-static-capture/1\",\n+ \"session\": SESSION,\n+ \"scope\": \"Read-only TurnEvents get/create and directly required lifetime helpers; static planning evidence only.\",\n+ \"cwd\": str(ROOT),\n+ \"source_identity\": {\n+ \"engine\": {\n+ \"path\": \"/tmp/opencode/sots-final-research-engine\",\n+ \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n+ \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\",\n+ },\n+ \"re\": {\n+ \"path\": \"/tmp/opencode/sots-final-research-re\",\n+ \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n+ \"sha256\": \"6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8\",\n+ },\n+ },\n+ \"input\": {\"path\": str(EXE), \"sha256\": sha256(EXE.read_bytes())},\n+ \"tool\": {\n+ \"path\": str(OBJDUMP),\n+ \"version\": \"GNU Binutils 2.38\",\n+ \"sha256\": sha256(OBJDUMP.read_bytes()),\n+ },\n+ \"windows\": records,\n+}\n+(OUT / \"manifest.json\").write_text(\n+ json.dumps(manifest, indent=2) + \"\\n\", encoding=\"utf-8\"\n+)\n+\n+if any(\n+ record[\"returncode\"] != 0\n+ or record[\"stdout_bytes\"] == 0\n+ or record[\"stderr_bytes\"] != 0\n+ for record in records\n+):\n+ raise SystemExit(1)\n\n","files":[{"filePath":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py","relativePath":"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py","type":"add","patch":"Index: /home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py\n===================================================================\n--- /home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py\n+++ /home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py\n@@ -0,0 +1,102 @@\n+#!/usr/bin/env python3\n+\"\"\"Capture the TurnEvents get/create bridge boundary from the pinned executable.\"\"\"\n+\n+import hashlib\n+import json\n+import pathlib\n+import subprocess\n+\n+\n+ROOT = pathlib.Path(\"/home/alex/sots-re\")\n+OUT = ROOT / \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b\"\n+EXE = ROOT / \"dumps/sots.exe\"\n+OBJDUMP = pathlib.Path(\"/usr/bin/objdump\")\n+SESSION = \"run-472955e277202c411388c66b\"\n+\n+WINDOWS = [\n+ (\"turn-get-create\", \"D\", 0x00885380, 0x0088544A),\n+ (\"turn-append\", \"D\", 0x00884CB0, 0x00884D8F),\n+ (\"turn-grow\", \"D\", 0x008841A0, 0x00884440),\n+ (\"nested-copy\", \"D\", 0x00779850, 0x00779A20),\n+ (\"nested-dtor\", \"D\", 0x00629580, 0x006295CA),\n+ (\"turn-dtor\", \"D\", 0x0062E120, 0x0062E190),\n+ (\"turn-alloc\", \"D\", 0x006E8F50, 0x006E8FB0),\n+ (\"turn-range-copy\", \"D\", 0x0077FED0, 0x00780040),\n+ (\"turn-vtable\", \"s\", 0x00A0F070, 0x00A0F0A0),\n+]\n+\n+\n+def sha256(data: bytes) -> str:\n+ return hashlib.sha256(data).hexdigest()\n+\n+\n+records = []\n+for name, mode, start, stop in WINDOWS:\n+ argv = [str(OBJDUMP), f\"-{mode}\"]\n+ if mode == \"D\":\n+ argv.append(\"-Mintel\")\n+ argv += [\n+ f\"--start-address=0x{start:08x}\",\n+ f\"--stop-address=0x{stop:08x}\",\n+ str(EXE),\n+ ]\n+ proc = subprocess.run(\n+ argv, cwd=ROOT, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False\n+ )\n+ (OUT / f\"{name}.stdout.txt\").write_bytes(proc.stdout)\n+ (OUT / f\"{name}.stderr.txt\").write_bytes(proc.stderr)\n+ records.append(\n+ {\n+ \"name\": name,\n+ \"argv\": argv,\n+ \"start\": f\"0x{start:08x}\",\n+ \"stop\": f\"0x{stop:08x}\",\n+ \"returncode\": proc.returncode,\n+ \"stdout_bytes\": len(proc.stdout),\n+ \"stdout_sha256\": sha256(proc.stdout),\n+ \"stderr_bytes\": len(proc.stderr),\n+ \"stderr_sha256\": sha256(proc.stderr),\n+ \"instruction_lines\": sum(\n+ 1\n+ for line in proc.stdout.splitlines()\n+ if line.lstrip()[:1].isdigit() and b\":\" in line\n+ ),\n+ }\n+ )\n+\n+manifest = {\n+ \"schema\": \"sots-live-record-static-capture/1\",\n+ \"session\": SESSION,\n+ \"scope\": \"Read-only TurnEvents get/create and directly required lifetime helpers; static planning evidence only.\",\n+ \"cwd\": str(ROOT),\n+ \"source_identity\": {\n+ \"engine\": {\n+ \"path\": \"/tmp/opencode/sots-final-research-engine\",\n+ \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n+ \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\",\n+ },\n+ \"re\": {\n+ \"path\": \"/tmp/opencode/sots-final-research-re\",\n+ \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n+ \"sha256\": \"6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8\",\n+ },\n+ },\n+ \"input\": {\"path\": str(EXE), \"sha256\": sha256(EXE.read_bytes())},\n+ \"tool\": {\n+ \"path\": str(OBJDUMP),\n+ \"version\": \"GNU Binutils 2.38\",\n+ \"sha256\": sha256(OBJDUMP.read_bytes()),\n+ },\n+ \"windows\": records,\n+}\n+(OUT / \"manifest.json\").write_text(\n+ json.dumps(manifest, indent=2) + \"\\n\", encoding=\"utf-8\"\n+)\n+\n+if any(\n+ record[\"returncode\"] != 0\n+ or record[\"stdout_bytes\"] == 0\n+ or record[\"stderr_bytes\"] != 0\n+ for record in records\n+):\n+ raise SystemExit(1)\n","additions":102,"deletions":0}],"diagnostics":{},"truncated":false},"title":"Success. Updated the following files:\nA verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py","time":{"start":1789013525342,"end":1789013525349}},"metadata":{"openai":{"itemId":"fc_0d871cca60e488ed016aa22de9b55887d1b0708bbc2efe7515"}},"id":"prt_089835935001n3xYMfF8IMFu2K","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089832a47001bLkXfTImvw86DP"}} +{"type":"step_finish","timestamp":1789013525488,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_0898403ed001j44GUYkzUw0C1Z","reason":"tool-calls","snapshot":"a463269a02962662154198b0cdc393938b3e48de","messageID":"msg_089832a47001bLkXfTImvw86DP","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":93013,"input":1996,"output":1380,"reasoning":293,"cache":{"write":0,"read":89344}},"cost":0}} +{"type":"step_start","timestamp":1789013527496,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089840bc4001WvfzNxe7MNPjtC","messageID":"msg_089840424001wsOtVGY6R4pRwz","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"fc276f4cec04cdecbb2abe9b535830dec2341060","type":"step-start"}} +{"type":"tool_use","timestamp":1789013536867,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_HjRHQcOC1D2BquKUCZ2nOllY","state":{"status":"completed","input":{"command":"python3 \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py\"","timeout":120000,"workdir":"/home/alex/sots-re"},"output":"(no output)","metadata":{"output":"(no output)","exit":0,"truncated":false},"title":"python3 \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py\"","time":{"start":1789013536761,"end":1789013536865}},"metadata":{"openai":{"itemId":"fc_0d85bc1bd9100484016aa22e2091e487d1883bdf87dc2d533f"}},"id":"prt_089842fc80016niw5JYUWro2pk","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089840424001wsOtVGY6R4pRwz"}} +{"type":"step_finish","timestamp":1789013536935,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_0898430a4001hDW6aOdEKSyHMa","reason":"tool-calls","snapshot":"f341a7894c0716651de01d898442afc0e547dccd","messageID":"msg_089840424001wsOtVGY6R4pRwz","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":93126,"input":1920,"output":63,"reasoning":7,"cache":{"write":0,"read":91136}},"cost":0}} +{"type":"step_start","timestamp":1789013538812,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_0898437f7001FtbfFfw6fvNOR5","messageID":"msg_0898430d6001U9YYHTd6U6ShUp","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"48689eed2520b07d8e9aa91ee928a452c39e5395","type":"step-start"}} +{"type":"tool_use","timestamp":1789013558299,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_4xJF1cBEetZUQ57bp5DBN9De","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json"},"output":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\nfile\n\n1: {\n2: \"schema\": \"sots-live-record-static-capture/1\",\n3: \"session\": \"run-472955e277202c411388c66b\",\n4: \"scope\": \"Read-only TurnEvents get/create and directly required lifetime helpers; static planning evidence only.\",\n5: \"cwd\": \"/home/alex/sots-re\",\n6: \"source_identity\": {\n7: \"engine\": {\n8: \"path\": \"/tmp/opencode/sots-final-research-engine\",\n9: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n10: \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n11: },\n12: \"re\": {\n13: \"path\": \"/tmp/opencode/sots-final-research-re\",\n14: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n15: \"sha256\": \"6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8\"\n16: }\n17: },\n18: \"input\": {\n19: \"path\": \"/home/alex/sots-re/dumps/sots.exe\",\n20: \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n21: },\n22: \"tool\": {\n23: \"path\": \"/usr/bin/objdump\",\n24: \"version\": \"GNU Binutils 2.38\",\n25: \"sha256\": \"1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd\"\n26: },\n27: \"windows\": [\n28: {\n29: \"name\": \"turn-get-create\",\n30: \"argv\": [\n31: \"/usr/bin/objdump\",\n32: \"-D\",\n33: \"-Mintel\",\n34: \"--start-address=0x00885380\",\n35: \"--stop-address=0x0088544a\",\n36: \"/home/alex/sots-re/dumps/sots.exe\"\n37: ],\n38: \"start\": \"0x00885380\",\n39: \"stop\": \"0x0088544a\",\n40: \"returncode\": 0,\n41: \"stdout_bytes\": 3974,\n42: \"stdout_sha256\": \"f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3\",\n43: \"stderr_bytes\": 0,\n44: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n45: \"instruction_lines\": 77\n46: },\n47: {\n48: \"name\": \"turn-append\",\n49: \"argv\": [\n50: \"/usr/bin/objdump\",\n51: \"-D\",\n52: \"-Mintel\",\n53: \"--start-address=0x00884cb0\",\n54: \"--stop-address=0x00884d8f\",\n55: \"/home/alex/sots-re/dumps/sots.exe\"\n56: ],\n57: \"start\": \"0x00884cb0\",\n58: \"stop\": \"0x00884d8f\",\n59: \"returncode\": 0,\n60: \"stdout_bytes\": 4179,\n61: \"stdout_sha256\": \"57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15\",\n62: \"stderr_bytes\": 0,\n63: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n64: \"instruction_lines\": 79\n65: },\n66: {\n67: \"name\": \"turn-grow\",\n68: \"argv\": [\n69: \"/usr/bin/objdump\",\n70: \"-D\",\n71: \"-Mintel\",\n72: \"--start-address=0x008841a0\",\n73: \"--stop-address=0x00884440\",\n74: \"/home/alex/sots-re/dumps/sots.exe\"\n75: ],\n76: \"start\": \"0x008841a0\",\n77: \"stop\": \"0x00884440\",\n78: \"returncode\": 0,\n79: \"stdout_bytes\": 12599,\n80: \"stdout_sha256\": \"eb887fbef7b4686530d2fc1c0caf2c2ee78c761aa3706cebcf3c146a22480b2e\",\n81: \"stderr_bytes\": 0,\n82: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n83: \"instruction_lines\": 245\n84: },\n85: {\n86: \"name\": \"nested-copy\",\n87: \"argv\": [\n88: \"/usr/bin/objdump\",\n89: \"-D\",\n90: \"-Mintel\",\n91: \"--start-address=0x00779850\",\n92: \"--stop-address=0x00779a20\",\n93: \"/home/alex/sots-re/dumps/sots.exe\"\n94: ],\n95: \"start\": \"0x00779850\",\n96: \"stop\": \"0x00779a20\",\n97: \"returncode\": 0,\n98: \"stdout_bytes\": 8469,\n99: \"stdout_sha256\": \"e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1\",\n100: \"stderr_bytes\": 0,\n101: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n102: \"instruction_lines\": 169\n103: },\n104: {\n105: \"name\": \"nested-dtor\",\n106: \"argv\": [\n107: \"/usr/bin/objdump\",\n108: \"-D\",\n109: \"-Mintel\",\n110: \"--start-address=0x00629580\",\n111: \"--stop-address=0x006295ca\",\n112: \"/home/alex/sots-re/dumps/sots.exe\"\n113: ],\n114: \"start\": \"0x00629580\",\n115: \"stop\": \"0x006295ca\",\n116: \"returncode\": 0,\n117: \"stdout_bytes\": 1727,\n118: \"stdout_sha256\": \"3c38887e60d009ab904772b13be93ac1eedd9bee85024e37110160a625db3a83\",\n119: \"stderr_bytes\": 0,\n120: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n121: \"instruction_lines\": 33\n122: },\n123: {\n124: \"name\": \"turn-dtor\",\n125: \"argv\": [\n126: \"/usr/bin/objdump\",\n127: \"-D\",\n128: \"-Mintel\",\n129: \"--start-address=0x0062e120\",\n130: \"--stop-address=0x0062e190\",\n131: \"/home/alex/sots-re/dumps/sots.exe\"\n132: ],\n133: \"start\": \"0x0062e120\",\n134: \"stop\": \"0x0062e190\",\n135: \"returncode\": 0,\n136: \"stdout_bytes\": 2312,\n137: \"stdout_sha256\": \"67777b4a5f658d4629a24770929979494739b6b3bcb0075fb8af17c782d080be\",\n138: \"stderr_bytes\": 0,\n139: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n140: \"instruction_lines\": 48\n141: },\n142: {\n143: \"name\": \"turn-alloc\",\n144: \"argv\": [\n145: \"/usr/bin/objdump\",\n146: \"-D\",\n147: \"-Mintel\",\n148: \"--start-address=0x006e8f50\",\n149: \"--stop-address=0x006e8fb0\",\n150: \"/home/alex/sots-re/dumps/sots.exe\"\n151: ],\n152: \"start\": \"0x006e8f50\",\n153: \"stop\": \"0x006e8fb0\",\n154: \"returncode\": 0,\n155: \"stdout_bytes\": 1819,\n156: \"stdout_sha256\": \"a00efc52c0c259edeab80178eb3e11eb921b215ccac4882afc71b59b7e8da1c1\",\n157: \"stderr_bytes\": 0,\n158: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n159: \"instruction_lines\": 36\n160: },\n161: {\n162: \"name\": \"turn-range-copy\",\n163: \"argv\": [\n164: \"/usr/bin/objdump\",\n165: \"-D\",\n166: \"-Mintel\",\n167: \"--start-address=0x0077fed0\",\n168: \"--stop-address=0x00780040\",\n169: \"/home/alex/sots-re/dumps/sots.exe\"\n170: ],\n171: \"start\": \"0x0077fed0\",\n172: \"stop\": \"0x00780040\",\n173: \"returncode\": 0,\n174: \"stdout_bytes\": 7128,\n175: \"stdout_sha256\": \"b937abaeed9a4bd44e5736b8474262119fa6d78c96b5cf89e0a1d50f4c58b44d\",\n176: \"stderr_bytes\": 0,\n177: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n178: \"instruction_lines\": 136\n179: },\n180: {\n181: \"name\": \"turn-vtable\",\n182: \"argv\": [\n183: \"/usr/bin/objdump\",\n184: \"-s\",\n185: \"--start-address=0x00a0f070\",\n186: \"--stop-address=0x00a0f0a0\",\n187: \"/home/alex/sots-re/dumps/sots.exe\"\n188: ],\n189: \"start\": \"0x00a0f070\",\n190: \"stop\": \"0x00a0f0a0\",\n191: \"returncode\": 0,\n192: \"stdout_bytes\": 276,\n193: \"stdout_sha256\": \"4ccf38cea420e0051b781513031ac0e83841c3828851e7198a8724e592912df9\",\n194: \"stderr_bytes\": 0,\n195: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n196: \"instruction_lines\": 0\n197: }\n198: ]\n199: }\n\n(End of file - total 199 lines)\n","metadata":{"preview":"{\n \"schema\": \"sots-live-record-static-capture/1\",\n \"session\": \"run-472955e277202c411388c66b\",\n \"scope\": \"Read-only TurnEvents get/create and directly required lifetime helpers; static planning evidence only.\",\n \"cwd\": \"/home/alex/sots-re\",\n \"source_identity\": {\n \"engine\": {\n \"path\": \"/tmp/opencode/sots-final-research-engine\",\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"path\": \"/tmp/opencode/sots-final-research-re\",\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"sha256\": \"6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8\"\n }\n },\n \"input\": {\n \"path\": \"/home/alex/sots-re/dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json","text":"{\n \"schema\": \"sots-live-record-static-capture/1\",\n \"session\": \"run-472955e277202c411388c66b\",\n \"scope\": \"Read-only TurnEvents get/create and directly required lifetime helpers; static planning evidence only.\",\n \"cwd\": \"/home/alex/sots-re\",\n \"source_identity\": {\n \"engine\": {\n \"path\": \"/tmp/opencode/sots-final-research-engine\",\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"path\": \"/tmp/opencode/sots-final-research-re\",\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"sha256\": \"6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8\"\n }\n },\n \"input\": {\n \"path\": \"/home/alex/sots-re/dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n },\n \"tool\": {\n \"path\": \"/usr/bin/objdump\",\n \"version\": \"GNU Binutils 2.38\",\n \"sha256\": \"1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd\"\n },\n \"windows\": [\n {\n \"name\": \"turn-get-create\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00885380\",\n \"--stop-address=0x0088544a\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00885380\",\n \"stop\": \"0x0088544a\",\n \"returncode\": 0,\n \"stdout_bytes\": 3974,\n \"stdout_sha256\": \"f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 77\n },\n {\n \"name\": \"turn-append\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00884cb0\",\n \"--stop-address=0x00884d8f\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00884cb0\",\n \"stop\": \"0x00884d8f\",\n \"returncode\": 0,\n \"stdout_bytes\": 4179,\n \"stdout_sha256\": \"57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 79\n },\n {\n \"name\": \"turn-grow\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x008841a0\",\n \"--stop-address=0x00884440\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x008841a0\",\n \"stop\": \"0x00884440\",\n \"returncode\": 0,\n \"stdout_bytes\": 12599,\n \"stdout_sha256\": \"eb887fbef7b4686530d2fc1c0caf2c2ee78c761aa3706cebcf3c146a22480b2e\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 245\n },\n {\n \"name\": \"nested-copy\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00779850\",\n \"--stop-address=0x00779a20\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00779850\",\n \"stop\": \"0x00779a20\",\n \"returncode\": 0,\n \"stdout_bytes\": 8469,\n \"stdout_sha256\": \"e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 169\n },\n {\n \"name\": \"nested-dtor\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00629580\",\n \"--stop-address=0x006295ca\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00629580\",\n \"stop\": \"0x006295ca\",\n \"returncode\": 0,\n \"stdout_bytes\": 1727,\n \"stdout_sha256\": \"3c38887e60d009ab904772b13be93ac1eedd9bee85024e37110160a625db3a83\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 33\n },\n {\n \"name\": \"turn-dtor\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x0062e120\",\n \"--stop-address=0x0062e190\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x0062e120\",\n \"stop\": \"0x0062e190\",\n \"returncode\": 0,\n \"stdout_bytes\": 2312,\n \"stdout_sha256\": \"67777b4a5f658d4629a24770929979494739b6b3bcb0075fb8af17c782d080be\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 48\n },\n {\n \"name\": \"turn-alloc\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x006e8f50\",\n \"--stop-address=0x006e8fb0\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x006e8f50\",\n \"stop\": \"0x006e8fb0\",\n \"returncode\": 0,\n \"stdout_bytes\": 1819,\n \"stdout_sha256\": \"a00efc52c0c259edeab80178eb3e11eb921b215ccac4882afc71b59b7e8da1c1\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 36\n },\n {\n \"name\": \"turn-range-copy\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x0077fed0\",\n \"--stop-address=0x00780040\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x0077fed0\",\n \"stop\": \"0x00780040\",\n \"returncode\": 0,\n \"stdout_bytes\": 7128,\n \"stdout_sha256\": \"b937abaeed9a4bd44e5736b8474262119fa6d78c96b5cf89e0a1d50f4c58b44d\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 136\n },\n {\n \"name\": \"turn-vtable\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-s\",\n \"--start-address=0x00a0f070\",\n \"--stop-address=0x00a0f0a0\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00a0f070\",\n \"stop\": \"0x00a0f0a0\",\n \"returncode\": 0,\n \"stdout_bytes\": 276,\n \"stdout_sha256\": \"4ccf38cea420e0051b781513031ac0e83841c3828851e7198a8724e592912df9\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 0\n }\n ]\n}","lineStart":1,"lineEnd":199,"totalLines":199,"truncated":false}},"title":"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json","time":{"start":1789013558282,"end":1789013558297}},"metadata":{"openai":{"itemId":"fc_02a68a3146a828a2016aa22e360fac87d1a97c5b3f2f216df5"}},"id":"prt_0898483d60010BduxofrC4OZEl","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_0898430d6001U9YYHTd6U6ShUp"}} +{"type":"tool_use","timestamp":1789013558330,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_CGZbUliScW6WtrXmAtPLeUro","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt"},"output":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\nfile\n\n1: \n2: /home/alex/sots-re/dumps/sots.exe: file format pei-i386\n3: \n4: \n5: Disassembly of section .text:\n6: \n7: 00885380 <.text+0x484380>:\n8: 885380:\t55 \tpush ebp\n9: 885381:\t8b ec \tmov ebp,esp\n10: 885383:\t6a ff \tpush 0xffffffff\n11: 885385:\t68 30 af 99 00 \tpush 0x99af30\n12: 88538a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n13: 885390:\t50 \tpush eax\n14: 885391:\t83 ec 18 \tsub esp,0x18\n15: 885394:\t53 \tpush ebx\n16: 885395:\t56 \tpush esi\n17: 885396:\t57 \tpush edi\n18: 885397:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n19: 88539c:\t33 c5 \txor eax,ebp\n20: 88539e:\t50 \tpush eax\n21: 88539f:\t8d 45 f4 \tlea eax,[ebp-0xc]\n22: 8853a2:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n23: 8853a8:\t8b f1 \tmov esi,ecx\n24: 8853aa:\t8b 56 08 \tmov edx,DWORD PTR [esi+0x8]\n25: 8853ad:\t2b 56 04 \tsub edx,DWORD PTR [esi+0x4]\n26: 8853b0:\t8d 4e 04 \tlea ecx,[esi+0x4]\n27: 8853b3:\tb8 ab aa aa 2a \tmov eax,0x2aaaaaab\n28: 8853b8:\tf7 ea \timul edx\n29: 8853ba:\tc1 fa 02 \tsar edx,0x2\n30: 8853bd:\t8b c2 \tmov eax,edx\n31: 8853bf:\tc1 e8 1f \tshr eax,0x1f\n32: 8853c2:\t33 db \txor ebx,ebx\n33: 8853c4:\t03 c2 \tadd eax,edx\n34: 8853c6:\t33 ff \txor edi,edi\n35: 8853c8:\t3b c3 \tcmp eax,ebx\n36: 8853ca:\t7e 30 \tjle 0x8853fc\n37: 8853cc:\t8b 11 \tmov edx,DWORD PTR [ecx]\n38: 8853ce:\t8b ff \tmov edi,edi\n39: 8853d0:\t8b 5d 08 \tmov ebx,DWORD PTR [ebp+0x8]\n40: 8853d3:\t39 5a 04 \tcmp DWORD PTR [edx+0x4],ebx\n41: 8853d6:\t75 02 \tjne 0x8853da\n42: 8853d8:\t8b fa \tmov edi,edx\n43: 8853da:\t83 c2 18 \tadd edx,0x18\n44: 8853dd:\t48 \tdec eax\n45: 8853de:\t75 f0 \tjne 0x8853d0\n46: 8853e0:\t33 db \txor ebx,ebx\n47: 8853e2:\t3b fb \tcmp edi,ebx\n48: 8853e4:\t74 16 \tje 0x8853fc\n49: 8853e6:\t8b c7 \tmov eax,edi\n50: 8853e8:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n51: 8853eb:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n52: 8853f2:\t59 \tpop ecx\n53: 8853f3:\t5f \tpop edi\n54: 8853f4:\t5e \tpop esi\n55: 8853f5:\t5b \tpop ebx\n56: 8853f6:\t8b e5 \tmov esp,ebp\n57: 8853f8:\t5d \tpop ebp\n58: 8853f9:\tc2 04 00 \tret 0x4\n59: 8853fc:\tc7 45 dc 7c f0 a0 00 \tmov DWORD PTR [ebp-0x24],0xa0f07c\n60: 885403:\t89 5d e4 \tmov DWORD PTR [ebp-0x1c],ebx\n61: 885406:\t89 5d e8 \tmov DWORD PTR [ebp-0x18],ebx\n62: 885409:\t89 5d ec \tmov DWORD PTR [ebp-0x14],ebx\n63: 88540c:\t8d 45 dc \tlea eax,[ebp-0x24]\n64: 88540f:\t50 \tpush eax\n65: 885410:\t89 5d fc \tmov DWORD PTR [ebp-0x4],ebx\n66: 885413:\te8 98 f8 ff ff \tcall 0x884cb0\n67: 885418:\t8d 4d e4 \tlea ecx,[ebp-0x1c]\n68: 88541b:\tc7 45 fc 01 00 00 00 \tmov DWORD PTR [ebp-0x4],0x1\n69: 885422:\te8 59 41 da ff \tcall 0x629580\n70: 885427:\t8b 46 08 \tmov eax,DWORD PTR [esi+0x8]\n71: 88542a:\t8b 4d 08 \tmov ecx,DWORD PTR [ebp+0x8]\n72: 88542d:\t89 48 ec \tmov DWORD PTR [eax-0x14],ecx\n73: 885430:\t8b 46 08 \tmov eax,DWORD PTR [esi+0x8]\n74: 885433:\t83 e8 18 \tsub eax,0x18\n75: 885436:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n76: 885439:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n77: 885440:\t59 \tpop ecx\n78: 885441:\t5f \tpop edi\n79: 885442:\t5e \tpop esi\n80: 885443:\t5b \tpop ebx\n81: 885444:\t8b e5 \tmov esp,ebp\n82: 885446:\t5d \tpop ebp\n83: 885447:\tc2 04 00 \tret 0x4\n\n(End of file - total 83 lines)\n","metadata":{"preview":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00885380 <.text+0x484380>:\n 885380:\t55 \tpush ebp\n 885381:\t8b ec \tmov ebp,esp\n 885383:\t6a ff \tpush 0xffffffff\n 885385:\t68 30 af 99 00 \tpush 0x99af30\n 88538a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 885390:\t50 \tpush eax\n 885391:\t83 ec 18 \tsub esp,0x18\n 885394:\t53 \tpush ebx\n 885395:\t56 \tpush esi\n 885396:\t57 \tpush edi\n 885397:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 88539c:\t33 c5 \txor eax,ebp\n 88539e:\t50 \tpush eax","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt","text":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00885380 <.text+0x484380>:\n 885380:\t55 \tpush ebp\n 885381:\t8b ec \tmov ebp,esp\n 885383:\t6a ff \tpush 0xffffffff\n 885385:\t68 30 af 99 00 \tpush 0x99af30\n 88538a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 885390:\t50 \tpush eax\n 885391:\t83 ec 18 \tsub esp,0x18\n 885394:\t53 \tpush ebx\n 885395:\t56 \tpush esi\n 885396:\t57 \tpush edi\n 885397:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 88539c:\t33 c5 \txor eax,ebp\n 88539e:\t50 \tpush eax\n 88539f:\t8d 45 f4 \tlea eax,[ebp-0xc]\n 8853a2:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n 8853a8:\t8b f1 \tmov esi,ecx\n 8853aa:\t8b 56 08 \tmov edx,DWORD PTR [esi+0x8]\n 8853ad:\t2b 56 04 \tsub edx,DWORD PTR [esi+0x4]\n 8853b0:\t8d 4e 04 \tlea ecx,[esi+0x4]\n 8853b3:\tb8 ab aa aa 2a \tmov eax,0x2aaaaaab\n 8853b8:\tf7 ea \timul edx\n 8853ba:\tc1 fa 02 \tsar edx,0x2\n 8853bd:\t8b c2 \tmov eax,edx\n 8853bf:\tc1 e8 1f \tshr eax,0x1f\n 8853c2:\t33 db \txor ebx,ebx\n 8853c4:\t03 c2 \tadd eax,edx\n 8853c6:\t33 ff \txor edi,edi\n 8853c8:\t3b c3 \tcmp eax,ebx\n 8853ca:\t7e 30 \tjle 0x8853fc\n 8853cc:\t8b 11 \tmov edx,DWORD PTR [ecx]\n 8853ce:\t8b ff \tmov edi,edi\n 8853d0:\t8b 5d 08 \tmov ebx,DWORD PTR [ebp+0x8]\n 8853d3:\t39 5a 04 \tcmp DWORD PTR [edx+0x4],ebx\n 8853d6:\t75 02 \tjne 0x8853da\n 8853d8:\t8b fa \tmov edi,edx\n 8853da:\t83 c2 18 \tadd edx,0x18\n 8853dd:\t48 \tdec eax\n 8853de:\t75 f0 \tjne 0x8853d0\n 8853e0:\t33 db \txor ebx,ebx\n 8853e2:\t3b fb \tcmp edi,ebx\n 8853e4:\t74 16 \tje 0x8853fc\n 8853e6:\t8b c7 \tmov eax,edi\n 8853e8:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n 8853eb:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n 8853f2:\t59 \tpop ecx\n 8853f3:\t5f \tpop edi\n 8853f4:\t5e \tpop esi\n 8853f5:\t5b \tpop ebx\n 8853f6:\t8b e5 \tmov esp,ebp\n 8853f8:\t5d \tpop ebp\n 8853f9:\tc2 04 00 \tret 0x4\n 8853fc:\tc7 45 dc 7c f0 a0 00 \tmov DWORD PTR [ebp-0x24],0xa0f07c\n 885403:\t89 5d e4 \tmov DWORD PTR [ebp-0x1c],ebx\n 885406:\t89 5d e8 \tmov DWORD PTR [ebp-0x18],ebx\n 885409:\t89 5d ec \tmov DWORD PTR [ebp-0x14],ebx\n 88540c:\t8d 45 dc \tlea eax,[ebp-0x24]\n 88540f:\t50 \tpush eax\n 885410:\t89 5d fc \tmov DWORD PTR [ebp-0x4],ebx\n 885413:\te8 98 f8 ff ff \tcall 0x884cb0\n 885418:\t8d 4d e4 \tlea ecx,[ebp-0x1c]\n 88541b:\tc7 45 fc 01 00 00 00 \tmov DWORD PTR [ebp-0x4],0x1\n 885422:\te8 59 41 da ff \tcall 0x629580\n 885427:\t8b 46 08 \tmov eax,DWORD PTR [esi+0x8]\n 88542a:\t8b 4d 08 \tmov ecx,DWORD PTR [ebp+0x8]\n 88542d:\t89 48 ec \tmov DWORD PTR [eax-0x14],ecx\n 885430:\t8b 46 08 \tmov eax,DWORD PTR [esi+0x8]\n 885433:\t83 e8 18 \tsub eax,0x18\n 885436:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n 885439:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n 885440:\t59 \tpop ecx\n 885441:\t5f \tpop edi\n 885442:\t5e \tpop esi\n 885443:\t5b \tpop ebx\n 885444:\t8b e5 \tmov esp,ebp\n 885446:\t5d \tpop ebp\n 885447:\tc2 04 00 \tret 0x4","lineStart":1,"lineEnd":83,"totalLines":83,"truncated":false}},"title":"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt","time":{"start":1789013558317,"end":1789013558328}},"metadata":{"openai":{"itemId":"fc_02a68a3146a828a2016aa22e360fc087d1b0479817ed60ab1d"}},"id":"prt_08984840d001Xx21113bQPza4Y","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_0898430d6001U9YYHTd6U6ShUp"}} +{"type":"tool_use","timestamp":1789013558381,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_y8A2AW3vV9PPl5ybSfwKIBiB","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt"},"output":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\nfile\n\n1: \n2: /home/alex/sots-re/dumps/sots.exe: file format pei-i386\n3: \n4: \n5: Disassembly of section .text:\n6: \n7: 00884cb0 <.text+0x483cb0>:\n8: 884cb0:\t55 \tpush ebp\n9: 884cb1:\t8b ec \tmov ebp,esp\n10: 884cb3:\t6a ff \tpush 0xffffffff\n11: 884cb5:\t68 72 0b 98 00 \tpush 0x980b72\n12: 884cba:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n13: 884cc0:\t50 \tpush eax\n14: 884cc1:\t51 \tpush ecx\n15: 884cc2:\t56 \tpush esi\n16: 884cc3:\t57 \tpush edi\n17: 884cc4:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n18: 884cc9:\t33 c5 \txor eax,ebp\n19: 884ccb:\t50 \tpush eax\n20: 884ccc:\t8d 45 f4 \tlea eax,[ebp-0xc]\n21: 884ccf:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n22: 884cd5:\t8b f9 \tmov edi,ecx\n23: 884cd7:\t8b 4f 04 \tmov ecx,DWORD PTR [edi+0x4]\n24: 884cda:\t8b 75 08 \tmov esi,DWORD PTR [ebp+0x8]\n25: 884cdd:\t3b f1 \tcmp esi,ecx\n26: 884cdf:\t73 59 \tjae 0x884d3a\n27: 884ce1:\t8b 07 \tmov eax,DWORD PTR [edi]\n28: 884ce3:\t3b c6 \tcmp eax,esi\n29: 884ce5:\t77 53 \tja 0x884d3a\n30: 884ce7:\t2b f0 \tsub esi,eax\n31: 884ce9:\tb8 ab aa aa 2a \tmov eax,0x2aaaaaab\n32: 884cee:\tf7 ee \timul esi\n33: 884cf0:\tc1 fa 02 \tsar edx,0x2\n34: 884cf3:\t8b f2 \tmov esi,edx\n35: 884cf5:\tc1 ee 1f \tshr esi,0x1f\n36: 884cf8:\t03 f2 \tadd esi,edx\n37: 884cfa:\t3b 4f 08 \tcmp ecx,DWORD PTR [edi+0x8]\n38: 884cfd:\t75 09 \tjne 0x884d08\n39: 884cff:\t6a 01 \tpush 0x1\n40: 884d01:\t8b cf \tmov ecx,edi\n41: 884d03:\te8 98 f4 ff ff \tcall 0x8841a0\n42: 884d08:\t8b 0f \tmov ecx,DWORD PTR [edi]\n43: 884d0a:\t8d 04 76 \tlea eax,[esi+esi*2]\n44: 884d0d:\t8d 0c c1 \tlea ecx,[ecx+eax*8]\n45: 884d10:\t8b 47 04 \tmov eax,DWORD PTR [edi+0x4]\n46: 884d13:\t89 45 08 \tmov DWORD PTR [ebp+0x8],eax\n47: 884d16:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n48: 884d19:\tc7 45 fc 00 00 00 00 \tmov DWORD PTR [ebp-0x4],0x0\n49: 884d20:\t85 c0 \ttest eax,eax\n50: 884d22:\t74 54 \tje 0x884d78\n51: 884d24:\tc7 00 7c f0 a0 00 \tmov DWORD PTR [eax],0xa0f07c\n52: 884d2a:\t8b 51 04 \tmov edx,DWORD PTR [ecx+0x4]\n53: 884d2d:\t83 c1 08 \tadd ecx,0x8\n54: 884d30:\tc6 45 fc 01 \tmov BYTE PTR [ebp-0x4],0x1\n55: 884d34:\t89 50 04 \tmov DWORD PTR [eax+0x4],edx\n56: 884d37:\t51 \tpush ecx\n57: 884d38:\teb 36 \tjmp 0x884d70\n58: 884d3a:\t3b 4f 08 \tcmp ecx,DWORD PTR [edi+0x8]\n59: 884d3d:\t75 09 \tjne 0x884d48\n60: 884d3f:\t6a 01 \tpush 0x1\n61: 884d41:\t8b cf \tmov ecx,edi\n62: 884d43:\te8 58 f4 ff ff \tcall 0x8841a0\n63: 884d48:\t8b 47 04 \tmov eax,DWORD PTR [edi+0x4]\n64: 884d4b:\t89 45 08 \tmov DWORD PTR [ebp+0x8],eax\n65: 884d4e:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n66: 884d51:\tc7 45 fc 02 00 00 00 \tmov DWORD PTR [ebp-0x4],0x2\n67: 884d58:\t85 c0 \ttest eax,eax\n68: 884d5a:\t74 1c \tje 0x884d78\n69: 884d5c:\tc7 00 7c f0 a0 00 \tmov DWORD PTR [eax],0xa0f07c\n70: 884d62:\t8b 4e 04 \tmov ecx,DWORD PTR [esi+0x4]\n71: 884d65:\t83 c6 08 \tadd esi,0x8\n72: 884d68:\tc6 45 fc 03 \tmov BYTE PTR [ebp-0x4],0x3\n73: 884d6c:\t89 48 04 \tmov DWORD PTR [eax+0x4],ecx\n74: 884d6f:\t56 \tpush esi\n75: 884d70:\t8d 48 08 \tlea ecx,[eax+0x8]\n76: 884d73:\te8 d8 4a ef ff \tcall 0x779850\n77: 884d78:\t83 47 04 18 \tadd DWORD PTR [edi+0x4],0x18\n78: 884d7c:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n79: 884d7f:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n80: 884d86:\t59 \tpop ecx\n81: 884d87:\t5f \tpop edi\n82: 884d88:\t5e \tpop esi\n83: 884d89:\t8b e5 \tmov esp,ebp\n84: 884d8b:\t5d \tpop ebp\n85: 884d8c:\tc2 04 00 \tret 0x4\n\n(End of file - total 85 lines)\n","metadata":{"preview":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00884cb0 <.text+0x483cb0>:\n 884cb0:\t55 \tpush ebp\n 884cb1:\t8b ec \tmov ebp,esp\n 884cb3:\t6a ff \tpush 0xffffffff\n 884cb5:\t68 72 0b 98 00 \tpush 0x980b72\n 884cba:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 884cc0:\t50 \tpush eax\n 884cc1:\t51 \tpush ecx\n 884cc2:\t56 \tpush esi\n 884cc3:\t57 \tpush edi\n 884cc4:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 884cc9:\t33 c5 \txor eax,ebp\n 884ccb:\t50 \tpush eax\n 884ccc:\t8d 45 f4 \tlea eax,[ebp-0xc]","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt","text":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00884cb0 <.text+0x483cb0>:\n 884cb0:\t55 \tpush ebp\n 884cb1:\t8b ec \tmov ebp,esp\n 884cb3:\t6a ff \tpush 0xffffffff\n 884cb5:\t68 72 0b 98 00 \tpush 0x980b72\n 884cba:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 884cc0:\t50 \tpush eax\n 884cc1:\t51 \tpush ecx\n 884cc2:\t56 \tpush esi\n 884cc3:\t57 \tpush edi\n 884cc4:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 884cc9:\t33 c5 \txor eax,ebp\n 884ccb:\t50 \tpush eax\n 884ccc:\t8d 45 f4 \tlea eax,[ebp-0xc]\n 884ccf:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n 884cd5:\t8b f9 \tmov edi,ecx\n 884cd7:\t8b 4f 04 \tmov ecx,DWORD PTR [edi+0x4]\n 884cda:\t8b 75 08 \tmov esi,DWORD PTR [ebp+0x8]\n 884cdd:\t3b f1 \tcmp esi,ecx\n 884cdf:\t73 59 \tjae 0x884d3a\n 884ce1:\t8b 07 \tmov eax,DWORD PTR [edi]\n 884ce3:\t3b c6 \tcmp eax,esi\n 884ce5:\t77 53 \tja 0x884d3a\n 884ce7:\t2b f0 \tsub esi,eax\n 884ce9:\tb8 ab aa aa 2a \tmov eax,0x2aaaaaab\n 884cee:\tf7 ee \timul esi\n 884cf0:\tc1 fa 02 \tsar edx,0x2\n 884cf3:\t8b f2 \tmov esi,edx\n 884cf5:\tc1 ee 1f \tshr esi,0x1f\n 884cf8:\t03 f2 \tadd esi,edx\n 884cfa:\t3b 4f 08 \tcmp ecx,DWORD PTR [edi+0x8]\n 884cfd:\t75 09 \tjne 0x884d08\n 884cff:\t6a 01 \tpush 0x1\n 884d01:\t8b cf \tmov ecx,edi\n 884d03:\te8 98 f4 ff ff \tcall 0x8841a0\n 884d08:\t8b 0f \tmov ecx,DWORD PTR [edi]\n 884d0a:\t8d 04 76 \tlea eax,[esi+esi*2]\n 884d0d:\t8d 0c c1 \tlea ecx,[ecx+eax*8]\n 884d10:\t8b 47 04 \tmov eax,DWORD PTR [edi+0x4]\n 884d13:\t89 45 08 \tmov DWORD PTR [ebp+0x8],eax\n 884d16:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n 884d19:\tc7 45 fc 00 00 00 00 \tmov DWORD PTR [ebp-0x4],0x0\n 884d20:\t85 c0 \ttest eax,eax\n 884d22:\t74 54 \tje 0x884d78\n 884d24:\tc7 00 7c f0 a0 00 \tmov DWORD PTR [eax],0xa0f07c\n 884d2a:\t8b 51 04 \tmov edx,DWORD PTR [ecx+0x4]\n 884d2d:\t83 c1 08 \tadd ecx,0x8\n 884d30:\tc6 45 fc 01 \tmov BYTE PTR [ebp-0x4],0x1\n 884d34:\t89 50 04 \tmov DWORD PTR [eax+0x4],edx\n 884d37:\t51 \tpush ecx\n 884d38:\teb 36 \tjmp 0x884d70\n 884d3a:\t3b 4f 08 \tcmp ecx,DWORD PTR [edi+0x8]\n 884d3d:\t75 09 \tjne 0x884d48\n 884d3f:\t6a 01 \tpush 0x1\n 884d41:\t8b cf \tmov ecx,edi\n 884d43:\te8 58 f4 ff ff \tcall 0x8841a0\n 884d48:\t8b 47 04 \tmov eax,DWORD PTR [edi+0x4]\n 884d4b:\t89 45 08 \tmov DWORD PTR [ebp+0x8],eax\n 884d4e:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n 884d51:\tc7 45 fc 02 00 00 00 \tmov DWORD PTR [ebp-0x4],0x2\n 884d58:\t85 c0 \ttest eax,eax\n 884d5a:\t74 1c \tje 0x884d78\n 884d5c:\tc7 00 7c f0 a0 00 \tmov DWORD PTR [eax],0xa0f07c\n 884d62:\t8b 4e 04 \tmov ecx,DWORD PTR [esi+0x4]\n 884d65:\t83 c6 08 \tadd esi,0x8\n 884d68:\tc6 45 fc 03 \tmov BYTE PTR [ebp-0x4],0x3\n 884d6c:\t89 48 04 \tmov DWORD PTR [eax+0x4],ecx\n 884d6f:\t56 \tpush esi\n 884d70:\t8d 48 08 \tlea ecx,[eax+0x8]\n 884d73:\te8 d8 4a ef ff \tcall 0x779850\n 884d78:\t83 47 04 18 \tadd DWORD PTR [edi+0x4],0x18\n 884d7c:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n 884d7f:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n 884d86:\t59 \tpop ecx\n 884d87:\t5f \tpop edi\n 884d88:\t5e \tpop esi\n 884d89:\t8b e5 \tmov esp,ebp\n 884d8b:\t5d \tpop ebp\n 884d8c:\tc2 04 00 \tret 0x4","lineStart":1,"lineEnd":85,"totalLines":85,"truncated":false}},"title":"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt","time":{"start":1789013558363,"end":1789013558379}},"metadata":{"openai":{"itemId":"fc_02a68a3146a828a2016aa22e360fc887d19b619e2fc98edb9a"}},"id":"prt_089848445001MnkmrSc6N7ph4B","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_0898430d6001U9YYHTd6U6ShUp"}} +{"type":"tool_use","timestamp":1789013558415,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_6JKcCeEH1cWx5l6x47N8Ss4v","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt"},"output":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt\nfile\n\n1: \n2: /home/alex/sots-re/dumps/sots.exe: file format pei-i386\n3: \n4: \n5: Disassembly of section .text:\n6: \n7: 0062e120 <.text+0x22d120>:\n8: 62e120:\t55 \tpush ebp\n9: 62e121:\t8b ec \tmov ebp,esp\n10: 62e123:\t6a ff \tpush 0xffffffff\n11: 62e125:\t68 08 92 98 00 \tpush 0x989208\n12: 62e12a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n13: 62e130:\t50 \tpush eax\n14: 62e131:\t51 \tpush ecx\n15: 62e132:\t56 \tpush esi\n16: 62e133:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n17: 62e138:\t33 c5 \txor eax,ebp\n18: 62e13a:\t50 \tpush eax\n19: 62e13b:\t8d 45 f4 \tlea eax,[ebp-0xc]\n20: 62e13e:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n21: 62e144:\t8b f1 \tmov esi,ecx\n22: 62e146:\t89 75 f0 \tmov DWORD PTR [ebp-0x10],esi\n23: 62e149:\t8d 4e 08 \tlea ecx,[esi+0x8]\n24: 62e14c:\tc7 45 fc 00 00 00 00 \tmov DWORD PTR [ebp-0x4],0x0\n25: 62e153:\te8 28 b4 ff ff \tcall 0x629580\n26: 62e158:\tf6 45 08 01 \ttest BYTE PTR [ebp+0x8],0x1\n27: 62e15c:\tc7 06 bc 22 9e 00 \tmov DWORD PTR [esi],0x9e22bc\n28: 62e162:\t74 09 \tje 0x62e16d\n29: 62e164:\t56 \tpush esi\n30: 62e165:\te8 40 6e 2f 00 \tcall 0x924faa\n31: 62e16a:\t83 c4 04 \tadd esp,0x4\n32: 62e16d:\t8b c6 \tmov eax,esi\n33: 62e16f:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n34: 62e172:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n35: 62e179:\t59 \tpop ecx\n36: 62e17a:\t5e \tpop esi\n37: 62e17b:\t8b e5 \tmov esp,ebp\n38: 62e17d:\t5d \tpop ebp\n39: 62e17e:\tc2 04 00 \tret 0x4\n40: 62e181:\tcc \tint3 \n41: 62e182:\tcc \tint3 \n42: 62e183:\tcc \tint3 \n43: 62e184:\tcc \tint3 \n44: 62e185:\tcc \tint3 \n45: 62e186:\tcc \tint3 \n46: 62e187:\tcc \tint3 \n47: 62e188:\tcc \tint3 \n48: 62e189:\tcc \tint3 \n49: 62e18a:\tcc \tint3 \n50: 62e18b:\tcc \tint3 \n51: 62e18c:\tcc \tint3 \n52: 62e18d:\tcc \tint3 \n53: 62e18e:\tcc \tint3 \n54: 62e18f:\tcc \tint3 \n\n(End of file - total 54 lines)\n","metadata":{"preview":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n0062e120 <.text+0x22d120>:\n 62e120:\t55 \tpush ebp\n 62e121:\t8b ec \tmov ebp,esp\n 62e123:\t6a ff \tpush 0xffffffff\n 62e125:\t68 08 92 98 00 \tpush 0x989208\n 62e12a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 62e130:\t50 \tpush eax\n 62e131:\t51 \tpush ecx\n 62e132:\t56 \tpush esi\n 62e133:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 62e138:\t33 c5 \txor eax,ebp\n 62e13a:\t50 \tpush eax\n 62e13b:\t8d 45 f4 \tlea eax,[ebp-0xc]\n 62e13e:\t64 a3 00 00 00 00 \tmov fs:0x0,eax","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt","text":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n0062e120 <.text+0x22d120>:\n 62e120:\t55 \tpush ebp\n 62e121:\t8b ec \tmov ebp,esp\n 62e123:\t6a ff \tpush 0xffffffff\n 62e125:\t68 08 92 98 00 \tpush 0x989208\n 62e12a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 62e130:\t50 \tpush eax\n 62e131:\t51 \tpush ecx\n 62e132:\t56 \tpush esi\n 62e133:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 62e138:\t33 c5 \txor eax,ebp\n 62e13a:\t50 \tpush eax\n 62e13b:\t8d 45 f4 \tlea eax,[ebp-0xc]\n 62e13e:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n 62e144:\t8b f1 \tmov esi,ecx\n 62e146:\t89 75 f0 \tmov DWORD PTR [ebp-0x10],esi\n 62e149:\t8d 4e 08 \tlea ecx,[esi+0x8]\n 62e14c:\tc7 45 fc 00 00 00 00 \tmov DWORD PTR [ebp-0x4],0x0\n 62e153:\te8 28 b4 ff ff \tcall 0x629580\n 62e158:\tf6 45 08 01 \ttest BYTE PTR [ebp+0x8],0x1\n 62e15c:\tc7 06 bc 22 9e 00 \tmov DWORD PTR [esi],0x9e22bc\n 62e162:\t74 09 \tje 0x62e16d\n 62e164:\t56 \tpush esi\n 62e165:\te8 40 6e 2f 00 \tcall 0x924faa\n 62e16a:\t83 c4 04 \tadd esp,0x4\n 62e16d:\t8b c6 \tmov eax,esi\n 62e16f:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n 62e172:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n 62e179:\t59 \tpop ecx\n 62e17a:\t5e \tpop esi\n 62e17b:\t8b e5 \tmov esp,ebp\n 62e17d:\t5d \tpop ebp\n 62e17e:\tc2 04 00 \tret 0x4\n 62e181:\tcc \tint3 \n 62e182:\tcc \tint3 \n 62e183:\tcc \tint3 \n 62e184:\tcc \tint3 \n 62e185:\tcc \tint3 \n 62e186:\tcc \tint3 \n 62e187:\tcc \tint3 \n 62e188:\tcc \tint3 \n 62e189:\tcc \tint3 \n 62e18a:\tcc \tint3 \n 62e18b:\tcc \tint3 \n 62e18c:\tcc \tint3 \n 62e18d:\tcc \tint3 \n 62e18e:\tcc \tint3 \n 62e18f:\tcc \tint3 ","lineStart":1,"lineEnd":54,"totalLines":54,"truncated":false}},"title":"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt","time":{"start":1789013558405,"end":1789013558412}},"metadata":{"openai":{"itemId":"fc_02a68a3146a828a2016aa22e360fd087d18868766fd3c6acfc"}},"id":"prt_089848468001MX4SfFb5bEuP4h","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_0898430d6001U9YYHTd6U6ShUp"}} +{"type":"tool_use","timestamp":1789013558432,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"read","callID":"call_qCGndcpAB2ntcaNP4UIfhvYV","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-vtable.stdout.txt"},"output":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-vtable.stdout.txt\nfile\n\n1: \n2: /home/alex/sots-re/dumps/sots.exe: file format pei-i386\n3: \n4: Contents of section .rdata:\n5: a0f070 701e6100 90b28500 14b5a700 20e16200 p.a......... .b.\n6: a0f080 b05b8200 405c8200 60b5a700 d0e26200 .[..@\\..`.....b.\n7: a0f090 c08a5f00 107a6100 d0764900 c08a5f00 .._..za..vI..._.\n\n(End of file - total 7 lines)\n","metadata":{"preview":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\nContents of section .rdata:\n a0f070 701e6100 90b28500 14b5a700 20e16200 p.a......... .b.\n a0f080 b05b8200 405c8200 60b5a700 d0e26200 .[..@\\..`.....b.\n a0f090 c08a5f00 107a6100 d0764900 c08a5f00 .._..za..vI..._.","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-vtable.stdout.txt","text":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\nContents of section .rdata:\n a0f070 701e6100 90b28500 14b5a700 20e16200 p.a......... .b.\n a0f080 b05b8200 405c8200 60b5a700 d0e26200 .[..@\\..`.....b.\n a0f090 c08a5f00 107a6100 d0764900 c08a5f00 .._..za..vI..._.","lineStart":1,"lineEnd":7,"totalLines":7,"truncated":false}},"title":"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-vtable.stdout.txt","time":{"start":1789013558425,"end":1789013558431}},"metadata":{"openai":{"itemId":"fc_02a68a3146a828a2016aa22e360fdc87d1aa6ec9649e5444f5"}},"id":"prt_089848496001cj4HiPpoRk4PTB","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_0898430d6001U9YYHTd6U6ShUp"}} +{"type":"step_finish","timestamp":1789013558566,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089848524001kv3ATrzE6wDoo5","reason":"tool-calls","snapshot":"b4f77f916372a9309e8ab41e0bda920bb8e541a7","messageID":"msg_0898430d6001U9YYHTd6U6ShUp","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":93409,"input":212,"output":259,"reasoning":10,"cache":{"write":0,"read":92928}},"cost":0}} +{"type":"step_start","timestamp":1789013562360,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_0898493ef001ackZjXgWWjaguO","messageID":"msg_08984855c001Oh2sE1i9jhOajy","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"df0357941ebf21377e6eba50a15ae0f3727aedd4","type":"step-start"}} +{"type":"tool_use","timestamp":1789013583357,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"grep","callID":"call_RUv97DI53WFrJAvafOc8XM9O","state":{"status":"completed","input":{"pattern":"call|ret|8841a0:|883a60:|924f|6e8f50|77fed0","path":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt"},"output":"Found 78 matches\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt:\n Line 58: 8853f9:\tc2 04 00 \tret 0x4\n\n Line 66: 885413:\te8 98 f8 ff ff \tcall 0x884cb0\n\n Line 69: 885422:\te8 59 41 da ff \tcall 0x629580\n\n Line 83: 885447:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-alloc.stdout.txt:\n Line 7: 006e8f50 <.text+0x2e7f50>:\n\n Line 8: 6e8f50:\t55 \tpush ebp\n\n Line 22: 6e8f71:\te8 40 c0 23 00 \tcall 0x924fb6\n\n Line 30: 6e8f8b:\tff 15 bc d1 9d 00 \tcall DWORD PTR ds:0x9dd1bc\n\n Line 35: 6e8fa1:\te8 16 c0 23 00 \tcall 0x924fbc\n\n Line 38: 6e8fa9:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt:\n Line 41: 884d03:\te8 98 f4 ff ff \tcall 0x8841a0\n\n Line 62: 884d43:\te8 58 f4 ff ff \tcall 0x8841a0\n\n Line 76: 884d73:\te8 d8 4a ef ff \tcall 0x779850\n\n Line 85: 884d8c:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt:\n Line 14: 62958a:\tff 15 2c d1 9d 00 \tcall DWORD PTR ds:0x9dd12c\n\n Line 24: 6295a8:\tff d2 \tcall edx\n\n Line 30: 6295b4:\te8 f1 b9 2f 00 \tcall 0x924faa\n\n Line 39: 6295c9:\tc3 \tret \n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-range-copy.stdout.txt:\n Line 7: 0077fed0 <.text+0x37eed0>:\n\n Line 8: 77fed0:\t55 \tpush ebp\n\n Line 42: 77ff32:\te8 19 99 ff ff \tcall 0x779850\n\n Line 56: 77ff58:\tff d0 \tcall eax\n\n Line 62: 77ff65:\te8 52 50 1a 00 \tcall 0x924fbc\n\n Line 72: 77ff7d:\tc3 \tret \n\n Line 107: 77ffd5:\te8 c6 c0 ff ff \tcall 0x77c0a0\n\n Line 114: 77ffee:\tff 15 50 d1 9d 00 \tcall DWORD PTR ds:0x9dd150\n\n Line 134: 780021:\te8 ea bf ff ff \tcall 0x77c010\n\n Line 140: 780031:\te8 86 4f 1a 00 \tcall 0x924fbc\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py:\n Line 30: return hashlib.sha256(data).hexdigest()\n\n Line 54: \"returncode\": proc.returncode,\n\n Line 97: record[\"returncode\"] != 0\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt:\n Line 8: 8841a0:\t55 \tpush ebp\n\n Line 27: 8841d0:\tff 15 50 d1 9d 00 \tcall DWORD PTR ds:0x9dd150\n\n Line 52: 88420e:\te8 4d f8 ff ff \tcall 0x883a60\n\n Line 56: 884216:\tc2 04 00 \tret 0x4\n\n Line 90: 884268:\te8 23 f9 ff ff \tcall 0x883b90\n\n Line 105: 88429d:\te8 7e ff ff ff \tcall 0x884220\n\n Line 111: 8842ab:\te8 70 ff ff ff \tcall 0x884220\n\n Line 122: 8842c7:\tc2 08 00 \tret 0x8\n\n Line 126: 8842d1:\te8 5a f5 fe ff \tcall 0x873830\n\n Line 129: 8842da:\te8 dd 0c 0a 00 \tcall 0x924fbc\n\n Line 184: 88437f:\te8 8c d3 ef ff \tcall 0x781710\n\n Line 187: 88438b:\te8 80 cb c8 ff \tcall 0x510f10\n\n Line 190: 884397:\te8 04 1c f1 ff \tcall 0x795fa0\n\n Line 193: 8843a3:\te8 38 11 de ff \tcall 0x6654e0\n\n Line 203: 8843bf:\tc2 04 00 \tret 0x4\n\n Line 242: 884412:\te8 09 59 03 00 \tcall 0x8b9d20\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json:\n Line 40: \"returncode\": 0,\n\n Line 59: \"returncode\": 0,\n\n Line 78: \"returncode\": 0,\n\n Line 97: \"returncode\": 0,\n\n Line 116: \"returncode\": 0,\n\n Line 135: \"returncode\": 0,\n\n Line 148: \"--start-address=0x006e8f50\",\n\n Line 152: \"start\": \"0x006e8f50\",\n\n Line 154: \"returncode\": 0,\n\n Line 167: \"--start-address=0x0077fed0\",\n\n Line 171: \"start\": \"0x0077fed0\",\n\n Line 173: \"returncode\": 0,\n\n Line 191: \"returncode\": 0,\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt:\n Line 25: 62e153:\te8 28 b4 ff ff \tcall 0x629580\n\n Line 30: 62e165:\te8 40 6e 2f 00 \tcall 0x924faa\n\n Line 39: 62e17e:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt:\n Line 48: 7798c1:\tff 15 50 d1 9d 00 \tcall DWORD PTR ds:0x9dd150\n\n Line 51: 7798cb:\te8 70 16 01 00 \tcall 0x78af40\n\n Line 67: 7798f4:\te8 a7 8c ff ff \tcall 0x7725a0\n\n Line 79: 779912:\tc2 04 00 \tret 0x4\n\n Line 81: 779918:\te8 63 fc ea ff \tcall 0x629580\n\n Line 84: 779921:\te8 96 b6 1a 00 \tcall 0x924fbc\n\n Line 114: 77996a:\te8 e1 05 14 00 \tcall 0x8b9f50\n\n Line 117: 779972:\te8 09 cc c9 ff \tcall 0x416580\n\n Line 122: 779983:\te8 58 08 14 00 \tcall 0x8ba1e0\n\n Line 124: 77998a:\te8 d1 58 dc ff \tcall 0x53f260\n\n Line 132: 7799ad:\te8 fe 52 dc ff \tcall 0x53ecb0\n\n Line 146: 7799d8:\te8 f3 d7 c9 ff \tcall 0x4171d0\n\n Line 152: 7799ea:\te8 bb b5 1a 00 \tcall 0x924faa\n\n Line 160: 779a03:\te8 7a b3 1a 00 \tcall 0x924d82\n\n Line 163: 779a0b:\tc3 \tret \n","metadata":{"matches":78,"truncated":false},"title":"call|ret|8841a0:|883a60:|924f|6e8f50|77fed0","time":{"start":1789013583312,"end":1789013583347}},"metadata":{"openai":{"itemId":"fc_0e94b4572b12e8f3016aa22e4eeba487d1a1d0e257b406b6f7"}},"id":"prt_08984e55d001kNxmcskDfsN8xD","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08984855c001Oh2sE1i9jhOajy"}} +{"type":"tool_use","timestamp":1789013583450,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"grep","callID":"call_kVzUiZ4rmEQdyJPml0npDnm7","state":{"status":"completed","input":{"pattern":"call|ret|779850:|924f|7725a0|629580","path":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt"},"output":"Found 75 matches\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt:\n Line 58: 8853f9:\tc2 04 00 \tret 0x4\n\n Line 66: 885413:\te8 98 f8 ff ff \tcall 0x884cb0\n\n Line 69: 885422:\te8 59 41 da ff \tcall 0x629580\n\n Line 83: 885447:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt:\n Line 41: 884d03:\te8 98 f4 ff ff \tcall 0x8841a0\n\n Line 62: 884d43:\te8 58 f4 ff ff \tcall 0x8841a0\n\n Line 76: 884d73:\te8 d8 4a ef ff \tcall 0x779850\n\n Line 85: 884d8c:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt:\n Line 7: 00629580 <.text+0x228580>:\n\n Line 8: 629580:\t57 \tpush edi\n\n Line 14: 62958a:\tff 15 2c d1 9d 00 \tcall DWORD PTR ds:0x9dd12c\n\n Line 24: 6295a8:\tff d2 \tcall edx\n\n Line 30: 6295b4:\te8 f1 b9 2f 00 \tcall 0x924faa\n\n Line 39: 6295c9:\tc3 \tret \n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py:\n Line 21: (\"nested-dtor\", \"D\", 0x00629580, 0x006295CA),\n\n Line 30: return hashlib.sha256(data).hexdigest()\n\n Line 54: \"returncode\": proc.returncode,\n\n Line 97: record[\"returncode\"] != 0\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json:\n Line 40: \"returncode\": 0,\n\n Line 59: \"returncode\": 0,\n\n Line 78: \"returncode\": 0,\n\n Line 97: \"returncode\": 0,\n\n Line 110: \"--start-address=0x00629580\",\n\n Line 114: \"start\": \"0x00629580\",\n\n Line 116: \"returncode\": 0,\n\n Line 135: \"returncode\": 0,\n\n Line 154: \"returncode\": 0,\n\n Line 173: \"returncode\": 0,\n\n Line 191: \"returncode\": 0,\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt:\n Line 8: 779850:\t55 \tpush ebp\n\n Line 48: 7798c1:\tff 15 50 d1 9d 00 \tcall DWORD PTR ds:0x9dd150\n\n Line 51: 7798cb:\te8 70 16 01 00 \tcall 0x78af40\n\n Line 67: 7798f4:\te8 a7 8c ff ff \tcall 0x7725a0\n\n Line 79: 779912:\tc2 04 00 \tret 0x4\n\n Line 81: 779918:\te8 63 fc ea ff \tcall 0x629580\n\n Line 84: 779921:\te8 96 b6 1a 00 \tcall 0x924fbc\n\n Line 114: 77996a:\te8 e1 05 14 00 \tcall 0x8b9f50\n\n Line 117: 779972:\te8 09 cc c9 ff \tcall 0x416580\n\n Line 122: 779983:\te8 58 08 14 00 \tcall 0x8ba1e0\n\n Line 124: 77998a:\te8 d1 58 dc ff \tcall 0x53f260\n\n Line 132: 7799ad:\te8 fe 52 dc ff \tcall 0x53ecb0\n\n Line 146: 7799d8:\te8 f3 d7 c9 ff \tcall 0x4171d0\n\n Line 152: 7799ea:\te8 bb b5 1a 00 \tcall 0x924faa\n\n Line 160: 779a03:\te8 7a b3 1a 00 \tcall 0x924d82\n\n Line 163: 779a0b:\tc3 \tret \n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt:\n Line 25: 62e153:\te8 28 b4 ff ff \tcall 0x629580\n\n Line 30: 62e165:\te8 40 6e 2f 00 \tcall 0x924faa\n\n Line 39: 62e17e:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt:\n Line 27: 8841d0:\tff 15 50 d1 9d 00 \tcall DWORD PTR ds:0x9dd150\n\n Line 52: 88420e:\te8 4d f8 ff ff \tcall 0x883a60\n\n Line 56: 884216:\tc2 04 00 \tret 0x4\n\n Line 90: 884268:\te8 23 f9 ff ff \tcall 0x883b90\n\n Line 105: 88429d:\te8 7e ff ff ff \tcall 0x884220\n\n Line 111: 8842ab:\te8 70 ff ff ff \tcall 0x884220\n\n Line 122: 8842c7:\tc2 08 00 \tret 0x8\n\n Line 126: 8842d1:\te8 5a f5 fe ff \tcall 0x873830\n\n Line 129: 8842da:\te8 dd 0c 0a 00 \tcall 0x924fbc\n\n Line 184: 88437f:\te8 8c d3 ef ff \tcall 0x781710\n\n Line 187: 88438b:\te8 80 cb c8 ff \tcall 0x510f10\n\n Line 190: 884397:\te8 04 1c f1 ff \tcall 0x795fa0\n\n Line 193: 8843a3:\te8 38 11 de ff \tcall 0x6654e0\n\n Line 203: 8843bf:\tc2 04 00 \tret 0x4\n\n Line 242: 884412:\te8 09 59 03 00 \tcall 0x8b9d20\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-alloc.stdout.txt:\n Line 22: 6e8f71:\te8 40 c0 23 00 \tcall 0x924fb6\n\n Line 30: 6e8f8b:\tff 15 bc d1 9d 00 \tcall DWORD PTR ds:0x9dd1bc\n\n Line 35: 6e8fa1:\te8 16 c0 23 00 \tcall 0x924fbc\n\n Line 38: 6e8fa9:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-range-copy.stdout.txt:\n Line 42: 77ff32:\te8 19 99 ff ff \tcall 0x779850\n\n Line 56: 77ff58:\tff d0 \tcall eax\n\n Line 62: 77ff65:\te8 52 50 1a 00 \tcall 0x924fbc\n\n Line 72: 77ff7d:\tc3 \tret \n\n Line 107: 77ffd5:\te8 c6 c0 ff ff \tcall 0x77c0a0\n\n Line 114: 77ffee:\tff 15 50 d1 9d 00 \tcall DWORD PTR ds:0x9dd150\n\n Line 134: 780021:\te8 ea bf ff ff \tcall 0x77c010\n\n Line 140: 780031:\te8 86 4f 1a 00 \tcall 0x924fbc\n","metadata":{"matches":75,"truncated":false},"title":"call|ret|779850:|924f|7725a0|629580","time":{"start":1789013583430,"end":1789013583448}},"metadata":{"openai":{"itemId":"fc_0e94b4572b12e8f3016aa22e4eebb887d1b34e60a951ac412a"}},"id":"prt_08984e6130019Avg2d41EMGiUe","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08984855c001Oh2sE1i9jhOajy"}} +{"type":"tool_use","timestamp":1789013583559,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"grep","callID":"call_FspNPXD39G2IM1tQbO8NF0F5","state":{"status":"completed","input":{"pattern":"call|ret|6e8f50:|924f","path":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-alloc.stdout.txt"},"output":"Found 70 matches\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt:\n Line 58: 8853f9:\tc2 04 00 \tret 0x4\n\n Line 66: 885413:\te8 98 f8 ff ff \tcall 0x884cb0\n\n Line 69: 885422:\te8 59 41 da ff \tcall 0x629580\n\n Line 83: 885447:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt:\n Line 41: 884d03:\te8 98 f4 ff ff \tcall 0x8841a0\n\n Line 62: 884d43:\te8 58 f4 ff ff \tcall 0x8841a0\n\n Line 76: 884d73:\te8 d8 4a ef ff \tcall 0x779850\n\n Line 85: 884d8c:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt:\n Line 48: 7798c1:\tff 15 50 d1 9d 00 \tcall DWORD PTR ds:0x9dd150\n\n Line 51: 7798cb:\te8 70 16 01 00 \tcall 0x78af40\n\n Line 67: 7798f4:\te8 a7 8c ff ff \tcall 0x7725a0\n\n Line 79: 779912:\tc2 04 00 \tret 0x4\n\n Line 81: 779918:\te8 63 fc ea ff \tcall 0x629580\n\n Line 84: 779921:\te8 96 b6 1a 00 \tcall 0x924fbc\n\n Line 114: 77996a:\te8 e1 05 14 00 \tcall 0x8b9f50\n\n Line 117: 779972:\te8 09 cc c9 ff \tcall 0x416580\n\n Line 122: 779983:\te8 58 08 14 00 \tcall 0x8ba1e0\n\n Line 124: 77998a:\te8 d1 58 dc ff \tcall 0x53f260\n\n Line 132: 7799ad:\te8 fe 52 dc ff \tcall 0x53ecb0\n\n Line 146: 7799d8:\te8 f3 d7 c9 ff \tcall 0x4171d0\n\n Line 152: 7799ea:\te8 bb b5 1a 00 \tcall 0x924faa\n\n Line 160: 779a03:\te8 7a b3 1a 00 \tcall 0x924d82\n\n Line 163: 779a0b:\tc3 \tret \n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt:\n Line 14: 62958a:\tff 15 2c d1 9d 00 \tcall DWORD PTR ds:0x9dd12c\n\n Line 24: 6295a8:\tff d2 \tcall edx\n\n Line 30: 6295b4:\te8 f1 b9 2f 00 \tcall 0x924faa\n\n Line 39: 6295c9:\tc3 \tret \n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-range-copy.stdout.txt:\n Line 42: 77ff32:\te8 19 99 ff ff \tcall 0x779850\n\n Line 56: 77ff58:\tff d0 \tcall eax\n\n Line 62: 77ff65:\te8 52 50 1a 00 \tcall 0x924fbc\n\n Line 72: 77ff7d:\tc3 \tret \n\n Line 107: 77ffd5:\te8 c6 c0 ff ff \tcall 0x77c0a0\n\n Line 114: 77ffee:\tff 15 50 d1 9d 00 \tcall DWORD PTR ds:0x9dd150\n\n Line 134: 780021:\te8 ea bf ff ff \tcall 0x77c010\n\n Line 140: 780031:\te8 86 4f 1a 00 \tcall 0x924fbc\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py:\n Line 30: return hashlib.sha256(data).hexdigest()\n\n Line 54: \"returncode\": proc.returncode,\n\n Line 97: record[\"returncode\"] != 0\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt:\n Line 27: 8841d0:\tff 15 50 d1 9d 00 \tcall DWORD PTR ds:0x9dd150\n\n Line 52: 88420e:\te8 4d f8 ff ff \tcall 0x883a60\n\n Line 56: 884216:\tc2 04 00 \tret 0x4\n\n Line 90: 884268:\te8 23 f9 ff ff \tcall 0x883b90\n\n Line 105: 88429d:\te8 7e ff ff ff \tcall 0x884220\n\n Line 111: 8842ab:\te8 70 ff ff ff \tcall 0x884220\n\n Line 122: 8842c7:\tc2 08 00 \tret 0x8\n\n Line 126: 8842d1:\te8 5a f5 fe ff \tcall 0x873830\n\n Line 129: 8842da:\te8 dd 0c 0a 00 \tcall 0x924fbc\n\n Line 184: 88437f:\te8 8c d3 ef ff \tcall 0x781710\n\n Line 187: 88438b:\te8 80 cb c8 ff \tcall 0x510f10\n\n Line 190: 884397:\te8 04 1c f1 ff \tcall 0x795fa0\n\n Line 193: 8843a3:\te8 38 11 de ff \tcall 0x6654e0\n\n Line 203: 8843bf:\tc2 04 00 \tret 0x4\n\n Line 242: 884412:\te8 09 59 03 00 \tcall 0x8b9d20\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-alloc.stdout.txt:\n Line 8: 6e8f50:\t55 \tpush ebp\n\n Line 22: 6e8f71:\te8 40 c0 23 00 \tcall 0x924fb6\n\n Line 30: 6e8f8b:\tff 15 bc d1 9d 00 \tcall DWORD PTR ds:0x9dd1bc\n\n Line 35: 6e8fa1:\te8 16 c0 23 00 \tcall 0x924fbc\n\n Line 38: 6e8fa9:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt:\n Line 25: 62e153:\te8 28 b4 ff ff \tcall 0x629580\n\n Line 30: 62e165:\te8 40 6e 2f 00 \tcall 0x924faa\n\n Line 39: 62e17e:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json:\n Line 40: \"returncode\": 0,\n\n Line 59: \"returncode\": 0,\n\n Line 78: \"returncode\": 0,\n\n Line 97: \"returncode\": 0,\n\n Line 116: \"returncode\": 0,\n\n Line 135: \"returncode\": 0,\n\n Line 154: \"returncode\": 0,\n\n Line 173: \"returncode\": 0,\n\n Line 191: \"returncode\": 0,\n","metadata":{"matches":70,"truncated":false},"title":"call|ret|6e8f50:|924f","time":{"start":1789013583543,"end":1789013583557}},"metadata":{"openai":{"itemId":"fc_0e94b4572b12e8f3016aa22e4eebc887d1beac51a5265c8246"}},"id":"prt_08984e64f001keNLGfOCLcQHho","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08984855c001Oh2sE1i9jhOajy"}} +{"type":"tool_use","timestamp":1789013583655,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"grep","callID":"call_GRZoJ7WGXJzrSXQZjsAOFasr","state":{"status":"completed","input":{"pattern":"call|ret|77fed0:|779850|629580","path":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-range-copy.stdout.txt"},"output":"Found 80 matches\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt:\n Line 58: 8853f9:\tc2 04 00 \tret 0x4\n\n Line 66: 885413:\te8 98 f8 ff ff \tcall 0x884cb0\n\n Line 69: 885422:\te8 59 41 da ff \tcall 0x629580\n\n Line 83: 885447:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt:\n Line 41: 884d03:\te8 98 f4 ff ff \tcall 0x8841a0\n\n Line 62: 884d43:\te8 58 f4 ff ff \tcall 0x8841a0\n\n Line 76: 884d73:\te8 d8 4a ef ff \tcall 0x779850\n\n Line 85: 884d8c:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt:\n Line 7: 00629580 <.text+0x228580>:\n\n Line 8: 629580:\t57 \tpush edi\n\n Line 14: 62958a:\tff 15 2c d1 9d 00 \tcall DWORD PTR ds:0x9dd12c\n\n Line 24: 6295a8:\tff d2 \tcall edx\n\n Line 30: 6295b4:\te8 f1 b9 2f 00 \tcall 0x924faa\n\n Line 39: 6295c9:\tc3 \tret \n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py:\n Line 20: (\"nested-copy\", \"D\", 0x00779850, 0x00779A20),\n\n Line 21: (\"nested-dtor\", \"D\", 0x00629580, 0x006295CA),\n\n Line 30: return hashlib.sha256(data).hexdigest()\n\n Line 54: \"returncode\": proc.returncode,\n\n Line 97: record[\"returncode\"] != 0\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt:\n Line 7: 00779850 <.text+0x378850>:\n\n Line 8: 779850:\t55 \tpush ebp\n\n Line 48: 7798c1:\tff 15 50 d1 9d 00 \tcall DWORD PTR ds:0x9dd150\n\n Line 51: 7798cb:\te8 70 16 01 00 \tcall 0x78af40\n\n Line 67: 7798f4:\te8 a7 8c ff ff \tcall 0x7725a0\n\n Line 79: 779912:\tc2 04 00 \tret 0x4\n\n Line 81: 779918:\te8 63 fc ea ff \tcall 0x629580\n\n Line 84: 779921:\te8 96 b6 1a 00 \tcall 0x924fbc\n\n Line 114: 77996a:\te8 e1 05 14 00 \tcall 0x8b9f50\n\n Line 117: 779972:\te8 09 cc c9 ff \tcall 0x416580\n\n Line 122: 779983:\te8 58 08 14 00 \tcall 0x8ba1e0\n\n Line 124: 77998a:\te8 d1 58 dc ff \tcall 0x53f260\n\n Line 132: 7799ad:\te8 fe 52 dc ff \tcall 0x53ecb0\n\n Line 146: 7799d8:\te8 f3 d7 c9 ff \tcall 0x4171d0\n\n Line 152: 7799ea:\te8 bb b5 1a 00 \tcall 0x924faa\n\n Line 160: 779a03:\te8 7a b3 1a 00 \tcall 0x924d82\n\n Line 163: 779a0b:\tc3 \tret \n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-range-copy.stdout.txt:\n Line 8: 77fed0:\t55 \tpush ebp\n\n Line 42: 77ff32:\te8 19 99 ff ff \tcall 0x779850\n\n Line 56: 77ff58:\tff d0 \tcall eax\n\n Line 62: 77ff65:\te8 52 50 1a 00 \tcall 0x924fbc\n\n Line 72: 77ff7d:\tc3 \tret \n\n Line 107: 77ffd5:\te8 c6 c0 ff ff \tcall 0x77c0a0\n\n Line 114: 77ffee:\tff 15 50 d1 9d 00 \tcall DWORD PTR ds:0x9dd150\n\n Line 134: 780021:\te8 ea bf ff ff \tcall 0x77c010\n\n Line 140: 780031:\te8 86 4f 1a 00 \tcall 0x924fbc\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt:\n Line 27: 8841d0:\tff 15 50 d1 9d 00 \tcall DWORD PTR ds:0x9dd150\n\n Line 52: 88420e:\te8 4d f8 ff ff \tcall 0x883a60\n\n Line 56: 884216:\tc2 04 00 \tret 0x4\n\n Line 90: 884268:\te8 23 f9 ff ff \tcall 0x883b90\n\n Line 105: 88429d:\te8 7e ff ff ff \tcall 0x884220\n\n Line 111: 8842ab:\te8 70 ff ff ff \tcall 0x884220\n\n Line 122: 8842c7:\tc2 08 00 \tret 0x8\n\n Line 126: 8842d1:\te8 5a f5 fe ff \tcall 0x873830\n\n Line 129: 8842da:\te8 dd 0c 0a 00 \tcall 0x924fbc\n\n Line 184: 88437f:\te8 8c d3 ef ff \tcall 0x781710\n\n Line 187: 88438b:\te8 80 cb c8 ff \tcall 0x510f10\n\n Line 190: 884397:\te8 04 1c f1 ff \tcall 0x795fa0\n\n Line 193: 8843a3:\te8 38 11 de ff \tcall 0x6654e0\n\n Line 203: 8843bf:\tc2 04 00 \tret 0x4\n\n Line 242: 884412:\te8 09 59 03 00 \tcall 0x8b9d20\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt:\n Line 25: 62e153:\te8 28 b4 ff ff \tcall 0x629580\n\n Line 30: 62e165:\te8 40 6e 2f 00 \tcall 0x924faa\n\n Line 39: 62e17e:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-alloc.stdout.txt:\n Line 22: 6e8f71:\te8 40 c0 23 00 \tcall 0x924fb6\n\n Line 30: 6e8f8b:\tff 15 bc d1 9d 00 \tcall DWORD PTR ds:0x9dd1bc\n\n Line 35: 6e8fa1:\te8 16 c0 23 00 \tcall 0x924fbc\n\n Line 38: 6e8fa9:\tc2 04 00 \tret 0x4\n\n\n/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json:\n Line 40: \"returncode\": 0,\n\n Line 59: \"returncode\": 0,\n\n Line 78: \"returncode\": 0,\n\n Line 91: \"--start-address=0x00779850\",\n\n Line 95: \"start\": \"0x00779850\",\n\n Line 97: \"returncode\": 0,\n\n Line 110: \"--start-address=0x00629580\",\n\n Line 114: \"start\": \"0x00629580\",\n\n Line 116: \"returncode\": 0,\n\n Line 135: \"returncode\": 0,\n\n Line 154: \"returncode\": 0,\n\n Line 173: \"returncode\": 0,\n\n Line 191: \"returncode\": 0,\n","metadata":{"matches":80,"truncated":false},"title":"call|ret|77fed0:|779850|629580","time":{"start":1789013583646,"end":1789013583654}},"metadata":{"openai":{"itemId":"fc_0e94b4572b12e8f3016aa22e4eebdc87d1a17e387c1654e8a9"}},"id":"prt_08984e6f3001Hb2meFrIx8dQup","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08984855c001Oh2sE1i9jhOajy"}} +{"type":"step_finish","timestamp":1789013583761,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08984e78d001cYnyw8ioZb14eM","reason":"tool-calls","snapshot":"6e13de8a592a946090d85c814e7c54b0b2bd3715","messageID":"msg_08984855c001Oh2sE1i9jhOajy","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":102243,"input":8554,"output":296,"reasoning":337,"cache":{"write":0,"read":93056}},"cost":0}} +{"type":"step_start","timestamp":1789013585843,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08984efb00018RBPkXNEIJXMW4","messageID":"msg_08984e7d0001X81ZH4JtBkwqF1","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"6a42a0685d29496d1195caea6d1b688a99a25fa0","type":"step-start"}} +{"type":"tool_use","timestamp":1789013620502,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_bMFIEpkfGIAGIEE0p9aN2xBd","state":{"status":"completed","input":{"command":"python3 tools/campaign.py --state-root /home/alex/sots-re surprise research-live-record-bridge --actor \"live-record bridge architect\" --role architecture-review --model openai/gpt-5.6-sol --session run-472955e277202c411388c66b --summary 'Fresh pinned-binary capture contradicts the accepted dependency interpretation that EventStorage get/create initializes a miss-path temporary TurnEvents EvTurn to zero before append. In 0x00885380, local TurnEvents begins at [EBP-0x24]: 0x008853fc writes vptr, and 0x00885403/06/09 zero only nested-vector pointers at +0x08/+0x0c/+0x10. No instruction writes temporary EvTurn at [EBP-0x20] before 0x00885413 calls append. Append 0x00884d62 copies source+0x04 into destination+0x04, so the newly appended element transiently receives the uninitialized stack word; 0x0088542d overwrites the stored element EvTurn with the requested turn after temporary nested-vector destruction. SURVIVES: exact get/create ABI, full last-match scan, final returned bucket pointer, final requested-turn publication, deep nested-vector copy, and temporary nested-vector cleanup. QUALIFIED: miss-path append lifetime and unwind remain static-only. OVERTURNED: research-completion-abi/recovered-static.md statement that the temporary starts with turn zero and append deep-copies zero. No live behavior, VM, Ghidra or engine code ran. Pause affected TurnEvents architecture encoding and readiness.' --probe 'Astra must inspect the complete 0x00885380..0x0088544a entry window and 0x00884cb0..0x00884d8f append window from verify/results/research-live-record-bridge/run-472955e277202c411388c66b, enumerate every write to [EBP-0x20] before the append call, and decide whether the transient EvTurn is indeterminate and whether final post-publication semantics remain usable. Revise/invalidate the accepted dependency interpretation and prescribe the exact generated-row wording before TurnEvents planning continues.'","timeout":120000,"workdir":"/home/alex/sots-re"},"output":"usage: campaign.py [-h] --state-root STATE_ROOT\n {list,status,validate,source-binding,checkpoint,transition,surprise,resolve,evidence,verdict,lease}\n ...\ncampaign.py: error: unrecognized arguments: --session run-472955e277202c411388c66b\n","metadata":{"output":"usage: campaign.py [-h] --state-root STATE_ROOT\n {list,status,validate,source-binding,checkpoint,transition,surprise,resolve,evidence,verdict,lease}\n ...\ncampaign.py: error: unrecognized arguments: --session run-472955e277202c411388c66b\n","exit":2,"truncated":false},"title":"python3 tools/campaign.py --state-root /home/alex/sots-re surprise research-live-record-bridge --actor \"live-record bridge architect\" --role architecture-review --model openai/gpt-5.6-sol --session run-472955e277202c411388c66b --summary 'Fresh pinned-binary capture contradicts the accepted dependency interpretation that EventStorage get/create initializes a miss-path temporary TurnEvents EvTurn to zero before append. In 0x00885380, local TurnEvents begins at [EBP-0x24]: 0x008853fc writes vptr, and 0x00885403/06/09 zero only nested-vector pointers at +0x08/+0x0c/+0x10. No instruction writes temporary EvTurn at [EBP-0x20] before 0x00885413 calls append. Append 0x00884d62 copies source+0x04 into destination+0x04, so the newly appended element transiently receives the uninitialized stack word; 0x0088542d overwrites the stored element EvTurn with the requested turn after temporary nested-vector destruction. SURVIVES: exact get/create ABI, full last-match scan, final returned bucket pointer, final requested-turn publication, deep nested-vector copy, and temporary nested-vector cleanup. QUALIFIED: miss-path append lifetime and unwind remain static-only. OVERTURNED: research-completion-abi/recovered-static.md statement that the temporary starts with turn zero and append deep-copies zero. No live behavior, VM, Ghidra or engine code ran. Pause affected TurnEvents architecture encoding and readiness.' --probe 'Astra must inspect the complete 0x00885380..0x0088544a entry window and 0x00884cb0..0x00884d8f append window from verify/results/research-live-record-bridge/run-472955e277202c411388c66b, enumerate every write to [EBP-0x20] before the append call, and decide whether the transient EvTurn is indeterminate and whether final post-publication semantics remain usable. Revise/invalidate the accepted dependency interpretation and prescribe the exact generated-row wording before TurnEvents planning continues.'","time":{"start":1789013620447,"end":1789013620501}},"metadata":{"openai":{"itemId":"fc_048fd1a504d0ba57016aa22e6508c087d185f10d528347cc32"}},"id":"prt_089853b22001Tt3pl6fMgptECG","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08984e7d0001X81ZH4JtBkwqF1"}} +{"type":"step_finish","timestamp":1789013620667,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_0898577b8001UlF8to7MhfkF4L","reason":"tool-calls","snapshot":"3d09d3726d7153e6a3082c191c0f018569fa4fc9","messageID":"msg_08984e7d0001X81ZH4JtBkwqF1","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":112510,"input":9921,"output":497,"reasoning":588,"cache":{"write":0,"read":101504}},"cost":0}} +{"type":"step_start","timestamp":1789013626303,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089858db60018UFpSKTzkCxFM0","messageID":"msg_0898577f1001E9kSkbWUImyvoB","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"666484c3ef3f66328b427c80f1b9944d13f54b26","type":"step-start"}} +{"type":"tool_use","timestamp":1789013628728,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_TlekxZNKMsGckkodBAdyLQGI","state":{"status":"completed","input":{"command":"python3 tools/campaign.py --state-root /home/alex/sots-re surprise --help","workdir":"/home/alex/sots-re"},"output":"usage: campaign.py surprise [-h] --actor ACTOR --role\n {lead,resolver,architecture-review,analyst,implementer,verifier,lab}\n --model MODEL --summary SUMMARY --probe PROBE\n contract\n\npositional arguments:\n contract\n\noptions:\n -h, --help show this help message and exit\n --actor ACTOR\n --role {lead,resolver,architecture-review,analyst,implementer,verifier,lab}\n --model MODEL\n --summary SUMMARY\n --probe PROBE\n","metadata":{"output":"usage: campaign.py surprise [-h] --actor ACTOR --role\n {lead,resolver,architecture-review,analyst,implementer,verifier,lab}\n --model MODEL --summary SUMMARY --probe PROBE\n contract\n\npositional arguments:\n contract\n\noptions:\n -h, --help show this help message and exit\n --actor ACTOR\n --role {lead,resolver,architecture-review,analyst,implementer,verifier,lab}\n --model MODEL\n --summary SUMMARY\n --probe PROBE\n","exit":0,"truncated":false},"title":"python3 tools/campaign.py --state-root /home/alex/sots-re surprise --help","time":{"start":1789013628678,"end":1789013628727}},"metadata":{"openai":{"itemId":"fc_08a79a4351ef6b39016aa22e7b785487d19a50896474a14a25"}},"id":"prt_08985927b001LfhJsnFOZkrRN9","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_0898577f1001E9kSkbWUImyvoB"}} +{"type":"step_finish","timestamp":1789013628938,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089859807001HM7UjX0RoOpRqu","reason":"tool-calls","snapshot":"11b22604d827f7ab0bf9c4f8d9e87289143bd9a5","messageID":"msg_0898577f1001E9kSkbWUImyvoB","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":112660,"input":1355,"output":49,"reasoning":24,"cache":{"write":0,"read":111232}},"cost":0}} +{"type":"step_start","timestamp":1789013631467,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08985a1e7001hjujhW1CMqi3bX","messageID":"msg_089859842001DFmGlEGqsbvLFz","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"8dbff695008c2a78fc2fc7b9bbb4726c654d9c25","type":"step-start"}} +{"type":"tool_use","timestamp":1789013661447,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_XMWCsDb6g8Fwzhd0Jn0qCaGU","state":{"status":"completed","input":{"command":"python3 tools/campaign.py --state-root /home/alex/sots-re surprise research-live-record-bridge --actor \"live-record bridge architect\" --role architecture-review --model openai/gpt-5.6-sol --summary 'Session run-472955e277202c411388c66b fresh pinned-binary capture contradicts the accepted dependency interpretation that EventStorage get/create initializes a miss-path temporary TurnEvents EvTurn to zero before append. In 0x00885380, local TurnEvents begins at [EBP-0x24]: 0x008853fc writes vptr, and 0x00885403/06/09 zero only nested-vector pointers at +0x08/+0x0c/+0x10. No instruction writes temporary EvTurn at [EBP-0x20] before 0x00885413 calls append. Append 0x00884d62 copies source+0x04 into destination+0x04, so the newly appended element transiently receives the uninitialized stack word; 0x0088542d overwrites the stored element EvTurn with the requested turn after temporary nested-vector destruction. SURVIVES: exact get/create ABI, full last-match scan, final returned bucket pointer, final requested-turn publication, deep nested-vector copy, and temporary nested-vector cleanup. QUALIFIED: miss-path append lifetime and unwind remain static-only. OVERTURNED: research-completion-abi/recovered-static.md statement that the temporary starts with turn zero and append deep-copies zero. No live behavior, VM, Ghidra or engine code ran. Pause affected TurnEvents architecture encoding and readiness.' --probe 'Astra must inspect the complete 0x00885380..0x0088544a entry window and 0x00884cb0..0x00884d8f append window from verify/results/research-live-record-bridge/run-472955e277202c411388c66b, enumerate every write to [EBP-0x20] before the append call, and decide whether the transient EvTurn is indeterminate and whether final post-publication semantics remain usable. Revise/invalidate the accepted dependency interpretation and prescribe the exact generated-row wording before TurnEvents planning continues.'","timeout":120000,"workdir":"/home/alex/sots-re"},"output":"{\n \"actor\": \"live-record bridge architect\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"s-5a78d3a0a10c1f8545df8eb1\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"probe\": \"Astra must inspect the complete 0x00885380..0x0088544a entry window and 0x00884cb0..0x00884d8f append window from verify/results/research-live-record-bridge/run-472955e277202c411388c66b, enumerate every write to [EBP-0x20] before the append call, and decide whether the transient EvTurn is indeterminate and whether final post-publication semantics remain usable. Revise/invalidate the accepted dependency interpretation and prescribe the exact generated-row wording before TurnEvents planning continues.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"open\",\n \"summary\": \"Session run-472955e277202c411388c66b fresh pinned-binary capture contradicts the accepted dependency interpretation that EventStorage get/create initializes a miss-path temporary TurnEvents EvTurn to zero before append. In 0x00885380, local TurnEvents begins at [EBP-0x24]: 0x008853fc writes vptr, and 0x00885403/06/09 zero only nested-vector pointers at +0x08/+0x0c/+0x10. No instruction writes temporary EvTurn at [EBP-0x20] before 0x00885413 calls append. Append 0x00884d62 copies source+0x04 into destination+0x04, so the newly appended element transiently receives the uninitialized stack word; 0x0088542d overwrites the stored element EvTurn with the requested turn after temporary nested-vector destruction. SURVIVES: exact get/create ABI, full last-match scan, final returned bucket pointer, final requested-turn publication, deep nested-vector copy, and temporary nested-vector cleanup. QUALIFIED: miss-path append lifetime and unwind remain static-only. OVERTURNED: research-completion-abi/recovered-static.md statement that the temporary starts with turn zero and append deep-copies zero. No live behavior, VM, Ghidra or engine code ran. Pause affected TurnEvents architecture encoding and readiness.\",\n \"timestamp\": \"2026-09-10T04:14:21.422536+00:00\"\n}\n","metadata":{"output":"{\n \"actor\": \"live-record bridge architect\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"s-5a78d3a0a10c1f8545df8eb1\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"probe\": \"Astra must inspect the complete 0x00885380..0x0088544a entry window and 0x00884cb0..0x00884d8f append window from verify/results/research-live-record-bridge/run-472955e277202c411388c66b, enumerate every write to [EBP-0x20] before the append call, and decide whether the transient EvTurn is indeterminate and whether final post-publication semantics remain usable. Revise/invalidate the accepted dependency interpretation and prescribe the exact generated-row wording before TurnEvents planning continues.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"open\",\n \"summary\": \"Session run-472955e277202c411388c66b fresh pinned-binary capture contradicts the accepted dependency interpretation that EventStorage get/create initializes a miss-path temporary TurnEvents EvTurn to zero before append. In 0x00885380, local TurnEvents begins at [EBP-0x24]: 0x008853fc writes vptr, and 0x00885403/06/09 zero only nested-vector pointers at +0x08/+0x0c/+0x10. No instruction writes temporary EvTurn at [EBP-0x20] before 0x00885413 calls append. Append 0x00884d62 copies source+0x04 into destination+0x04, so the newly appended element transiently receives the uninitialized stack word; 0x0088542d overwrites the stored element EvTurn with the requested turn after temporary nested-vector destruction. SURVIVES: exact get/create ABI, full last-match scan, final returned bucket pointer, final requested-turn publication, deep nested-vector copy, and temporary nested-vector cleanup. QUALIFIED: miss-path append lifetime and unwind remain static-only. OVERTURNED: research-completion-abi/recovered-static.md statement that the temporary starts with turn zero and append deep-copies zero. No live behavior, VM, Ghidra or engine code ran. Pause affected TurnEvents architecture encoding and readiness.\",\n \"timestamp\": \"2026-09-10T04:14:21.422536+00:00\"\n}\n","exit":0,"truncated":false},"title":"python3 tools/campaign.py --state-root /home/alex/sots-re surprise research-live-record-bridge --actor \"live-record bridge architect\" --role architecture-review --model openai/gpt-5.6-sol --summary 'Session run-472955e277202c411388c66b fresh pinned-binary capture contradicts the accepted dependency interpretation that EventStorage get/create initializes a miss-path temporary TurnEvents EvTurn to zero before append. In 0x00885380, local TurnEvents begins at [EBP-0x24]: 0x008853fc writes vptr, and 0x00885403/06/09 zero only nested-vector pointers at +0x08/+0x0c/+0x10. No instruction writes temporary EvTurn at [EBP-0x20] before 0x00885413 calls append. Append 0x00884d62 copies source+0x04 into destination+0x04, so the newly appended element transiently receives the uninitialized stack word; 0x0088542d overwrites the stored element EvTurn with the requested turn after temporary nested-vector destruction. SURVIVES: exact get/create ABI, full last-match scan, final returned bucket pointer, final requested-turn publication, deep nested-vector copy, and temporary nested-vector cleanup. QUALIFIED: miss-path append lifetime and unwind remain static-only. OVERTURNED: research-completion-abi/recovered-static.md statement that the temporary starts with turn zero and append deep-copies zero. No live behavior, VM, Ghidra or engine code ran. Pause affected TurnEvents architecture encoding and readiness.' --probe 'Astra must inspect the complete 0x00885380..0x0088544a entry window and 0x00884cb0..0x00884d8f append window from verify/results/research-live-record-bridge/run-472955e277202c411388c66b, enumerate every write to [EBP-0x20] before the append call, and decide whether the transient EvTurn is indeterminate and whether final post-publication semantics remain usable. Revise/invalidate the accepted dependency interpretation and prescribe the exact generated-row wording before TurnEvents planning continues.'","time":{"start":1789013661380,"end":1789013661445}},"metadata":{"openai":{"itemId":"fc_017b0139c428cbcb016aa22e9cd86487d1b0bb02b6171c6048"}},"id":"prt_089861646001zV2KeJmH9g5lKf","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089859842001DFmGlEGqsbvLFz"}} +{"type":"step_finish","timestamp":1789013661498,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089861737001H327jwWQVLGbnM","reason":"tool-calls","snapshot":"d65ed2706bf759f19cba8935c5b376d6db479d6e","messageID":"msg_089859842001DFmGlEGqsbvLFz","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":113292,"input":404,"output":496,"reasoning":8,"cache":{"write":0,"read":112384}},"cost":0}} +{"type":"step_start","timestamp":1789013664793,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_0898624100011dJc3NlGmtGIau","messageID":"msg_089861772001hqBL5VpzxmiyAS","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"6dba1355bc6a8f9e9b2204466f91560641f15855","type":"step-start"}} +{"type":"tool_use","timestamp":1789013698370,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_rwKhO8BPP1Kq1GZnKbDxp0CE","state":{"status":"completed","input":{"command":"sha256sum \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\" \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\" \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\" \"campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json\"","workdir":"/home/alex/sots-re"},"output":"ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\nf6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3 verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\n57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15 verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\ndb60a0f8cb666707b422960873b905d4f8a449f7b288a612c8d48c604dc1d379 campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json\n","metadata":{"output":"ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\nf6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3 verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\n57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15 verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\ndb60a0f8cb666707b422960873b905d4f8a449f7b288a612c8d48c604dc1d379 campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json\n","exit":0,"truncated":false},"title":"sha256sum \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\" \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\" \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\" \"campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json\"","time":{"start":1789013698335,"end":1789013698364}},"metadata":{"openai":{"itemId":"fc_0c962c687295b293016aa22ec20af487d1bee321b700b8334c"}},"id":"prt_08986a71b001cMUE8gJmPD3v3H","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089861772001hqBL5VpzxmiyAS"}} +{"type":"tool_use","timestamp":1789013698370,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_8xX9ZalNgl9I0aoCsU7LK7FZ","state":{"status":"completed","input":{"command":"git status --short -- \"campaign/contracts/research-live-record-bridge.json\" \"campaign/runtime/checkpoints\" \"campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json\" \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b\"","workdir":"/home/alex/sots-re"},"output":" M campaign/contracts/research-live-record-bridge.json\n?? campaign/runtime/checkpoints/research-live-record-bridge-6bbfc33bf92bea8f03b42aaf.json\n?? campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json\n?? verify/results/research-live-record-bridge/run-472955e277202c411388c66b/\n","metadata":{"output":" M campaign/contracts/research-live-record-bridge.json\n?? campaign/runtime/checkpoints/research-live-record-bridge-6bbfc33bf92bea8f03b42aaf.json\n?? campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json\n?? verify/results/research-live-record-bridge/run-472955e277202c411388c66b/\n","exit":0,"truncated":false},"title":"git status --short -- \"campaign/contracts/research-live-record-bridge.json\" \"campaign/runtime/checkpoints\" \"campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json\" \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b\"","time":{"start":1789013698342,"end":1789013698367}},"metadata":{"openai":{"itemId":"fc_0c962c687295b293016aa22ec20b0487d1aec6ea155e8b98b2"}},"id":"prt_08986a723001ZJu3fJATjOjOKn","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089861772001hqBL5VpzxmiyAS"}} +{"type":"tool_use","timestamp":1789013698386,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_IXhzSqJ598JIPAEB1pq9sKcf","state":{"status":"completed","input":{"command":"python3 -c 'import hashlib,json,pathlib; p=pathlib.Path(\"verify/results/research-live-record-bridge/run-472955e277202c411388c66b\"); m=json.loads((p/\"manifest.json\").read_text()); assert m[\"input\"][\"sha256\"]==hashlib.sha256(pathlib.Path(m[\"input\"][\"path\"]).read_bytes()).hexdigest(); assert m[\"tool\"][\"sha256\"]==hashlib.sha256(pathlib.Path(m[\"tool\"][\"path\"]).read_bytes()).hexdigest(); assert len(m[\"windows\"])==9; [(lambda o: (o[\"stdout_sha256\"]==hashlib.sha256((p/f\"{o['\"'\"'name'\"'\"']}.stdout.txt\").read_bytes()).hexdigest() and o[\"stderr_sha256\"]==hashlib.sha256((p/f\"{o['\"'\"'name'\"'\"']}.stderr.txt\").read_bytes()).hexdigest() and o[\"returncode\"]==0 and o[\"stdout_bytes\"]>0 and o[\"stderr_bytes\"]==0) or (_ for _ in ()).throw(AssertionError(o[\"name\"])))(o) for o in m[\"windows\"]]; print(\"manifest-ok windows=9\")'","workdir":"/home/alex/sots-re"},"output":"manifest-ok windows=9\n","metadata":{"output":"manifest-ok windows=9\n","exit":0,"truncated":false},"title":"python3 -c 'import hashlib,json,pathlib; p=pathlib.Path(\"verify/results/research-live-record-bridge/run-472955e277202c411388c66b\"); m=json.loads((p/\"manifest.json\").read_text()); assert m[\"input\"][\"sha256\"]==hashlib.sha256(pathlib.Path(m[\"input\"][\"path\"]).read_bytes()).hexdigest(); assert m[\"tool\"][\"sha256\"]==hashlib.sha256(pathlib.Path(m[\"tool\"][\"path\"]).read_bytes()).hexdigest(); assert len(m[\"windows\"])==9; [(lambda o: (o[\"stdout_sha256\"]==hashlib.sha256((p/f\"{o['\"'\"'name'\"'\"']}.stdout.txt\").read_bytes()).hexdigest() and o[\"stderr_sha256\"]==hashlib.sha256((p/f\"{o['\"'\"'name'\"'\"']}.stderr.txt\").read_bytes()).hexdigest() and o[\"returncode\"]==0 and o[\"stdout_bytes\"]>0 and o[\"stderr_bytes\"]==0) or (_ for _ in ()).throw(AssertionError(o[\"name\"])))(o) for o in m[\"windows\"]]; print(\"manifest-ok windows=9\")'","time":{"start":1789013698311,"end":1789013698384}},"metadata":{"openai":{"itemId":"fc_0c962c687295b293016aa22ec20aa887d19af36925724a9701"}},"id":"prt_08986a700001lr8C8DsZV5vG1K","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089861772001hqBL5VpzxmiyAS"}} +{"type":"tool_use","timestamp":1789013698398,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_ahhIEeDwTJWxoE2COrABLq9j","state":{"status":"completed","input":{"command":"python3 tools/campaign.py --state-root /home/alex/sots-re status research-live-record-bridge","workdir":"/home/alex/sots-re"},"output":"[\n {\n \"acceptance\": [\n {\n \"axis\": \"planning\",\n \"criterion\": \"Before ready, publish exact bridge-only source/test ownership, callable entrypoints and calling conventions, generated-address provenance, a bridge-only invocation route, VM/build resources, executable acceptance commands and immutable source/binary/fixture manifests. The route must not call or wire research replacement.\",\n \"id\": \"readiness\"\n },\n {\n \"axis\": \"understanding\",\n \"criterion\": \"Reconcile accepted binary evidence with generated and pure-model facts, including whether EvDsc participates in duplicate equality and whether the callable ObservedTech copy operation begins at 0x0079a150 or an interior site. Every exposed constructor/copy/append/destructor/new/delete operation has an exact ABI and ownership contract.\",\n \"id\": \"abi-reconciliation\"\n },\n {\n \"axis\": \"implementation\",\n \"criterion\": \"An isolated bridge constructs, copies, appends, updates and destroys complete live-layout ObservedTech, TurnEvents and PlayerEvent values using compatible original-runtime allocation services. It never copies raw owning headers and never calls original RecordObservedTech, EventStorage::PostEvent or any research completion root.\",\n \"id\": \"bridge-operations\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Host tests and a fresh leased disposable-VM run positively execute empty, spare and full capacity; short and long strings; repeated observed names; exact duplicate and description-only-different events; normal destruction; and one contained recorded failure path. Preserve per-case operation/allocation/destruction counts and complete resulting records.\",\n \"id\": \"runtime-matrix\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Executable negative controls reject raw string/header transfer, wrong callable entry or convention, mismatched allocator family, missing cleanup, double free, incomplete record fields, forbidden original decision-root calls, zero execution, missing artifacts and source/binary/fixture drift.\",\n \"id\": \"negative-controls\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"A different verifier session reproduces the source/binary/fixture-bound package and at least one meaningful negative control on an integrated tree. Author-only or static-only evidence cannot accept live allocator safety.\",\n \"id\": \"independent-reproduction\"\n }\n ],\n \"baseline\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"checkpoint\": \"campaign/runtime/checkpoints/research-live-record-bridge-6bbfc33bf92bea8f03b42aaf.json\",\n \"dependencies\": [\n \"research-completion-abi\"\n ],\n \"effects\": [\n \"Complete 0x2c ObservedTech object fields, owned name string, existing-name update semantics, vector first/last/end and element lifetime across no-growth and growth paths.\",\n \"Complete 0x74 PlayerEvent fields and three independently owned strings, plus complete 0x18 TurnEvents bucket and nested vector lifetime across no-growth and growth paths.\",\n \"Event ID/order, exact duplicate behavior, description-only-different behavior and stale-bucket pruning only as needed to exercise the bridge fixture; no research callback or player-state effects.\",\n \"Allocation, copy, destruction and failure-path counters sufficient to detect leaks, mismatched frees, partial construction and double destruction.\"\n ],\n \"evidence\": [],\n \"id\": \"research-live-record-bridge\",\n \"inputs\": [\n \"Accepted research-completion-abi evidence and handoff, including binary fingerprint and independently reproduced static ownership windows.\",\n \"Original binary /home/alex/sots-re/dumps/sots.exe sha256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841; owner-supplied and never committed.\",\n \"Source-identical paired worktrees /tmp/opencode/sots-final-research-engine and /tmp/opencode/sots-final-research-re at the contract baselines; exact dirty source-content manifests are required before implementation evidence.\",\n \"Disposable VM144 is the preferred runtime fixture guest; verify its current MAC/IP, session/process state and housekeeping immediately before use, then acquire campaign/runtime/leases/vm144.json. VM140 is excluded from this experiment.\",\n \"Required but missing before ready: bridge-only invocation fixture, generated callable-address package, 32-bit shim/toolchain manifest, failure-containment design, executable acceptance checker and per-case expected records.\"\n ],\n \"open_surprises\": [\n {\n \"actor\": \"live-record bridge architect\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"s-5a78d3a0a10c1f8545df8eb1\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"probe\": \"Astra must inspect the complete 0x00885380..0x0088544a entry window and 0x00884cb0..0x00884d8f append window from verify/results/research-live-record-bridge/run-472955e277202c411388c66b, enumerate every write to [EBP-0x20] before the append call, and decide whether the transient EvTurn is indeterminate and whether final post-publication semantics remain usable. Revise/invalidate the accepted dependency interpretation and prescribe the exact generated-row wording before TurnEvents planning continues.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"open\",\n \"summary\": \"Session run-472955e277202c411388c66b fresh pinned-binary capture contradicts the accepted dependency interpretation that EventStorage get/create initializes a miss-path temporary TurnEvents EvTurn to zero before append. In 0x00885380, local TurnEvents begins at [EBP-0x24]: 0x008853fc writes vptr, and 0x00885403/06/09 zero only nested-vector pointers at +0x08/+0x0c/+0x10. No instruction writes temporary EvTurn at [EBP-0x20] before 0x00885413 calls append. Append 0x00884d62 copies source+0x04 into destination+0x04, so the newly appended element transiently receives the uninitialized stack word; 0x0088542d overwrites the stored element EvTurn with the requested turn after temporary nested-vector destruction. SURVIVES: exact get/create ABI, full last-match scan, final returned bucket pointer, final requested-turn publication, deep nested-vector copy, and temporary nested-vector cleanup. QUALIFIED: miss-path append lifetime and unwind remain static-only. OVERTURNED: research-completion-abi/recovered-static.md statement that the temporary starts with turn zero and append deep-copies zero. No live behavior, VM, Ghidra or engine code ran. Pause affected TurnEvents architecture encoding and readiness.\",\n \"timestamp\": \"2026-09-10T04:14:21.422536+00:00\"\n }\n ],\n \"original_dependencies\": [\n \"Original MSVCR100 scalar new/delete and narrowly accepted constructor/copy/append/destructor operations are permitted only as declared, counted ABI services.\",\n \"Original RecordObservedTech, EventStorage::PostEvent, ProcessResearch, SetResearched, OnTechResearched and localized string lookup are forbidden in the bridge fixture.\",\n \"The original game process supplies the MSVCR100 runtime and object address space for live tests; this contract does not claim standalone allocator or game-decision replacement.\"\n ],\n \"owner\": {\n \"name\": \"live-record bridge architect\",\n \"role\": \"architecture-review\"\n },\n \"predictions\": [\n \"ObservedTech no-growth append deep-copies one name; growth relocates every existing 0x2c element and destroys the old range without cross-runtime frees.\",\n \"PlayerEvent append deep-copies EvDsc, EvMsg and EvImg independently; full-capacity growth preserves all scalar/default fields and destroys old strings exactly once.\",\n \"Repeated observed name updates the existing record without vector growth; exact duplicate event does not append; description-only-different event does append if the accepted EvDsc equality result is correct.\",\n \"A contained allocation-failure fixture reports failure without an accepted partial record, leaked owned string, mismatched free or exception crossing into an unsafe ABI boundary.\"\n ],\n \"scope\": [\n \"Recover and implement only the live ABI bridge for ObservedTech, TurnEvents and PlayerEvent construction/copy/append/update/destruction plus isolated fixtures and acceptance tooling.\",\n \"First quantum is RE and architecture: reconcile callable boundaries and duplicate semantics, specify failure containment and name exact owned files. No engine implementation or VM mutation until the contract is ready and the operator holds required leases.\",\n \"Runtime validation uses a bridge-only fixture on a disposable clone. It must not wire src/shim/hooks/research.cpp or src/shim/main.cpp and must not execute a research completion workload.\",\n \"Static ABI acceptance is a dependency, not evidence of live safety. Acceptance remains scoped to bridge operations and does not promote research-replacement.\"\n ],\n \"status\": \"blocked\",\n \"stop_conditions\": [\n \"Remain proposed while callable ABI, exact ownership, fixture route, manifests, failure containment or executable acceptance is unresolved.\",\n \"Stop affected work and record a surprise on contradictory fresh binary/runtime evidence, binary/source drift, allocator mismatch, exception crossing, unexpected game-decision-root execution, leak/double-free, guest interference or access change.\",\n \"No Ghidra mutation or VM/build-host mutation without explicit assignment and the corresponding canonical lease; never touch VM140 under this contract.\",\n \"No research replacement wiring, delegation, staging, commit, push or destructive canonical worktree operation. Checkpoint every 20 calls/15 minutes and before experiment, handoff or stop.\"\n ],\n \"title\": \"Live ObservedTech and event record ABI bridge\"\n }\n]\n","metadata":{"output":"[\n {\n \"acceptance\": [\n {\n \"axis\": \"planning\",\n \"criterion\": \"Before ready, publish exact bridge-only source/test ownership, callable entrypoints and calling conventions, generated-address provenance, a bridge-only invocation route, VM/build resources, executable acceptance commands and immutable source/binary/fixture manifests. The route must not call or wire research replacement.\",\n \"id\": \"readiness\"\n },\n {\n \"axis\": \"understanding\",\n \"criterion\": \"Reconcile accepted binary evidence with generated and pure-model facts, including whether EvDsc participates in duplicate equality and whether the callable ObservedTech copy operation begins at 0x0079a150 or an interior site. Every exposed constructor/copy/append/destructor/new/delete operation has an exact ABI and ownership contract.\",\n \"id\": \"abi-reconciliation\"\n },\n {\n \"axis\": \"implementation\",\n \"criterion\": \"An isolated bridge constructs, copies, appends, updates and destroys complete live-layout ObservedTech, TurnEvents and PlayerEvent values using compatible original-runtime allocation services. It never copies raw owning headers and never calls original RecordObservedTech, EventStorage::PostEvent or any research completion root.\",\n \"id\": \"bridge-operations\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Host tests and a fresh leased disposable-VM run positively execute empty, spare and full capacity; short and long strings; repeated observed names; exact duplicate and description-only-different events; normal destruction; and one contained recorded failure path. Preserve per-case operation/allocation/destruction counts and complete resulting records.\",\n \"id\": \"runtime-matrix\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Executable negative controls reject raw string/header transfer, wrong callable entry or convention, mismatched allocator family, missing cleanup, double free, incomplete record fields, forbidden original decision-root calls, zero execution, missing artifacts and source/binary/fixture drift.\",\n \"id\": \"negative-controls\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"A different verifier session reproduces the source/binary/fixture-bound package and at least one meaningful negative control on an integrated tree. Author-only or static-only evidence cannot accept live allocator safety.\",\n \"id\": \"independent-reproduction\"\n }\n ],\n \"baseline\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"checkpoint\": \"campaign/runtime/checkpoints/research-live-record-bridge-6bbfc33bf92bea8f03b42aaf.json\",\n \"dependencies\": [\n \"research-completion-abi\"\n ],\n \"effects\": [\n \"Complete 0x2c ObservedTech object fields, owned name string, existing-name update semantics, vector first/last/end and element lifetime across no-growth and growth paths.\",\n \"Complete 0x74 PlayerEvent fields and three independently owned strings, plus complete 0x18 TurnEvents bucket and nested vector lifetime across no-growth and growth paths.\",\n \"Event ID/order, exact duplicate behavior, description-only-different behavior and stale-bucket pruning only as needed to exercise the bridge fixture; no research callback or player-state effects.\",\n \"Allocation, copy, destruction and failure-path counters sufficient to detect leaks, mismatched frees, partial construction and double destruction.\"\n ],\n \"evidence\": [],\n \"id\": \"research-live-record-bridge\",\n \"inputs\": [\n \"Accepted research-completion-abi evidence and handoff, including binary fingerprint and independently reproduced static ownership windows.\",\n \"Original binary /home/alex/sots-re/dumps/sots.exe sha256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841; owner-supplied and never committed.\",\n \"Source-identical paired worktrees /tmp/opencode/sots-final-research-engine and /tmp/opencode/sots-final-research-re at the contract baselines; exact dirty source-content manifests are required before implementation evidence.\",\n \"Disposable VM144 is the preferred runtime fixture guest; verify its current MAC/IP, session/process state and housekeeping immediately before use, then acquire campaign/runtime/leases/vm144.json. VM140 is excluded from this experiment.\",\n \"Required but missing before ready: bridge-only invocation fixture, generated callable-address package, 32-bit shim/toolchain manifest, failure-containment design, executable acceptance checker and per-case expected records.\"\n ],\n \"open_surprises\": [\n {\n \"actor\": \"live-record bridge architect\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"s-5a78d3a0a10c1f8545df8eb1\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"probe\": \"Astra must inspect the complete 0x00885380..0x0088544a entry window and 0x00884cb0..0x00884d8f append window from verify/results/research-live-record-bridge/run-472955e277202c411388c66b, enumerate every write to [EBP-0x20] before the append call, and decide whether the transient EvTurn is indeterminate and whether final post-publication semantics remain usable. Revise/invalidate the accepted dependency interpretation and prescribe the exact generated-row wording before TurnEvents planning continues.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"open\",\n \"summary\": \"Session run-472955e277202c411388c66b fresh pinned-binary capture contradicts the accepted dependency interpretation that EventStorage get/create initializes a miss-path temporary TurnEvents EvTurn to zero before append. In 0x00885380, local TurnEvents begins at [EBP-0x24]: 0x008853fc writes vptr, and 0x00885403/06/09 zero only nested-vector pointers at +0x08/+0x0c/+0x10. No instruction writes temporary EvTurn at [EBP-0x20] before 0x00885413 calls append. Append 0x00884d62 copies source+0x04 into destination+0x04, so the newly appended element transiently receives the uninitialized stack word; 0x0088542d overwrites the stored element EvTurn with the requested turn after temporary nested-vector destruction. SURVIVES: exact get/create ABI, full last-match scan, final returned bucket pointer, final requested-turn publication, deep nested-vector copy, and temporary nested-vector cleanup. QUALIFIED: miss-path append lifetime and unwind remain static-only. OVERTURNED: research-completion-abi/recovered-static.md statement that the temporary starts with turn zero and append deep-copies zero. No live behavior, VM, Ghidra or engine code ran. Pause affected TurnEvents architecture encoding and readiness.\",\n \"timestamp\": \"2026-09-10T04:14:21.422536+00:00\"\n }\n ],\n \"original_dependencies\": [\n \"Original MSVCR100 scalar new/delete and narrowly accepted constructor/copy/append/destructor operations are permitted only as declared, counted ABI services.\",\n \"Original RecordObservedTech, EventStorage::PostEvent, ProcessResearch, SetResearched, OnTechResearched and localized string lookup are forbidden in the bridge fixture.\",\n \"The original game process supplies the MSVCR100 runtime and object address space for live tests; this contract does not claim standalone allocator or game-decision replacement.\"\n ],\n \"owner\": {\n \"name\": \"live-record bridge architect\",\n \"role\": \"architecture-review\"\n },\n \"predictions\": [\n \"ObservedTech no-growth append deep-copies one name; growth relocates every existing 0x2c element and destroys the old range without cross-runtime frees.\",\n \"PlayerEvent append deep-copies EvDsc, EvMsg and EvImg independently; full-capacity growth preserves all scalar/default fields and destroys old strings exactly once.\",\n \"Repeated observed name updates the existing record without vector growth; exact duplicate event does not append; description-only-different event does append if the accepted EvDsc equality result is correct.\",\n \"A contained allocation-failure fixture reports failure without an accepted partial record, leaked owned string, mismatched free or exception crossing into an unsafe ABI boundary.\"\n ],\n \"scope\": [\n \"Recover and implement only the live ABI bridge for ObservedTech, TurnEvents and PlayerEvent construction/copy/append/update/destruction plus isolated fixtures and acceptance tooling.\",\n \"First quantum is RE and architecture: reconcile callable boundaries and duplicate semantics, specify failure containment and name exact owned files. No engine implementation or VM mutation until the contract is ready and the operator holds required leases.\",\n \"Runtime validation uses a bridge-only fixture on a disposable clone. It must not wire src/shim/hooks/research.cpp or src/shim/main.cpp and must not execute a research completion workload.\",\n \"Static ABI acceptance is a dependency, not evidence of live safety. Acceptance remains scoped to bridge operations and does not promote research-replacement.\"\n ],\n \"status\": \"blocked\",\n \"stop_conditions\": [\n \"Remain proposed while callable ABI, exact ownership, fixture route, manifests, failure containment or executable acceptance is unresolved.\",\n \"Stop affected work and record a surprise on contradictory fresh binary/runtime evidence, binary/source drift, allocator mismatch, exception crossing, unexpected game-decision-root execution, leak/double-free, guest interference or access change.\",\n \"No Ghidra mutation or VM/build-host mutation without explicit assignment and the corresponding canonical lease; never touch VM140 under this contract.\",\n \"No research replacement wiring, delegation, staging, commit, push or destructive canonical worktree operation. Checkpoint every 20 calls/15 minutes and before experiment, handoff or stop.\"\n ],\n \"title\": \"Live ObservedTech and event record ABI bridge\"\n }\n]\n","exit":0,"truncated":false},"title":"python3 tools/campaign.py --state-root /home/alex/sots-re status research-live-record-bridge","time":{"start":1789013698327,"end":1789013698395}},"metadata":{"openai":{"itemId":"fc_0c962c687295b293016aa22ec20ae087d187a1876acfbf391c"}},"id":"prt_08986a713001VUU8yO0mj39eml","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089861772001hqBL5VpzxmiyAS"}} +{"type":"tool_use","timestamp":1789013698402,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_M4jPYhv5taywEjjrQgfqpAUI","state":{"status":"completed","input":{"command":"python3 tools/campaign.py --state-root /home/alex/sots-re validate","workdir":"/home/alex/sots-re"},"output":"[\n \"controls-bootstrap\",\n \"launcher-smoke\",\n \"research-completion-abi\",\n \"research-live-record-bridge\",\n \"research-replacement\"\n]\n","metadata":{"output":"[\n \"controls-bootstrap\",\n \"launcher-smoke\",\n \"research-completion-abi\",\n \"research-live-record-bridge\",\n \"research-replacement\"\n]\n","exit":0,"truncated":false},"title":"python3 tools/campaign.py --state-root /home/alex/sots-re validate","time":{"start":1789013698319,"end":1789013698399}},"metadata":{"openai":{"itemId":"fc_0c962c687295b293016aa22ec20ac887d1b9e43d7cfee4cc09"}},"id":"prt_08986a70b001pM1qOa4FU8I3Op","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_089861772001hqBL5VpzxmiyAS"}} +{"type":"step_finish","timestamp":1789013698452,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08986a791001I6fC1r277RBzKs","reason":"tool-calls","snapshot":"5d0494fb637a662f4b3224fc25cb505c77c7f667","messageID":"msg_089861772001hqBL5VpzxmiyAS","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":114880,"input":1199,"output":656,"reasoning":385,"cache":{"write":0,"read":112640}},"cost":0}} +{"type":"step_start","timestamp":1789013701228,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08986b268001yRr2RhlhxapdG7","messageID":"msg_08986a7ca001R5290o07rV46hO","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"22ef9dd99a1ca3483edd4fe422a57cc8d1122d15","type":"step-start"}} +{"type":"tool_use","timestamp":1789013706656,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"todowrite","callID":"call_2tL0lRZvhDRMNhaBNbPDHr0E","state":{"status":"completed","input":{"todos":[{"content":"Read canonical campaign guidance, contract, checkpoint, and open surprises","status":"completed","priority":"high"},{"content":"Verify source, worktree, and resource identities against checkpoint/contract","status":"completed","priority":"high"},{"content":"Perform approved architecture-review work within owned scope","status":"completed","priority":"high"},{"content":"Validate owned-scope changes and campaign state","status":"completed","priority":"high"},{"content":"Write mandatory fresh canonical checkpoint with one exact next action","status":"in_progress","priority":"high"}]},"output":"[\n {\n \"content\": \"Read canonical campaign guidance, contract, checkpoint, and open surprises\",\n \"status\": \"completed\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Verify source, worktree, and resource identities against checkpoint/contract\",\n \"status\": \"completed\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Perform approved architecture-review work within owned scope\",\n \"status\": \"completed\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Validate owned-scope changes and campaign state\",\n \"status\": \"completed\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Write mandatory fresh canonical checkpoint with one exact next action\",\n \"status\": \"in_progress\",\n \"priority\": \"high\"\n }\n]","metadata":{"todos":[{"content":"Read canonical campaign guidance, contract, checkpoint, and open surprises","status":"completed","priority":"high"},{"content":"Verify source, worktree, and resource identities against checkpoint/contract","status":"completed","priority":"high"},{"content":"Perform approved architecture-review work within owned scope","status":"completed","priority":"high"},{"content":"Validate owned-scope changes and campaign state","status":"completed","priority":"high"},{"content":"Write mandatory fresh canonical checkpoint with one exact next action","status":"in_progress","priority":"high"}],"truncated":false},"title":"1 todos","time":{"start":1789013706652,"end":1789013706654}},"metadata":{"openai":{"itemId":"fc_05c379316e186a7f016aa22ec71dcc87d1abd27c69ff16297e"}},"id":"prt_08986ba0e001jBlx1dzyR1PyjC","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08986a7ca001R5290o07rV46hO"}} +{"type":"step_finish","timestamp":1789013706811,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08986c838001aNhbAdBYFNyeIr","reason":"tool-calls","snapshot":"6399cb61efd0f8d32fed244b770fcda1b0b4a582","messageID":"msg_08986a7ca001R5290o07rV46hO","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":117649,"input":3819,"output":129,"reasoning":37,"cache":{"write":0,"read":113664}},"cost":0}} +{"type":"step_start","timestamp":1789013709114,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08986d132001eTfu0zzvkd4Eyk","messageID":"msg_08986c874001ui4nLUZtKcdi1S","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"37e67a7d28f05b846372a7d7362e9e46e2e6fbdb","type":"step-start"}} +{"type":"tool_use","timestamp":1789013745776,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"bash","callID":"call_Amp9yaczGfSe1stGZ7pIew0W","state":{"status":"completed","input":{"command":"python3 tools/campaign.py --state-root /home/alex/sots-re checkpoint research-live-record-bridge --actor \"live-record bridge architect\" --role architecture-review --model openai/gpt-5.6-sol --session run-472955e277202c411388c66b --summary 'QUANTUM-END CHECKPOINT. OBSERVATIONS: requested model openai/gpt-5.6-sol was available and matched the role registry. Assigned paired identities remained engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23/common-dir /home/alex/sots-engine/.git/source digest ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and RE HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7/common-dir /home/alex/sots-re/.git/source digest 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Binary and objdump identities remained SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd. Read-only capture run-472955e277202c411388c66b produced nine zero-return, nonempty-stdout, empty-stderr windows for get/create, append, growth, nested copy/destruction, TurnEvents destruction/allocation/range copy and vtable. Manifest SHA256 is ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b. Fresh bytes show local TurnEvents at EBP-0x24 receives vptr and zero nested header but no EvTurn write at EBP-0x20 before append; append copies that indeterminate word, then get/create overwrites stored EvTurn with requested turn after temporary nested-vector cleanup. This contradicts the accepted dependency prose claiming a zero temporary turn. DECISIONS: recorded open surprise s-5a78d3a0a10c1f8545df8eb1, enumerated surviving/qualified/overturned claims there, and paused all affected TurnEvents architecture encoding. Contract is blocked pending Astra; no JSON/architecture interpretation was amended behind a caveat. TESTS: independent manifest hash/returncode/stdout/stderr validator passed for all 9 windows; campaign validate passed; campaign status exposes the open surprise and blocked state. RESOURCES/BLOCKERS: VM144 lease remained released and no VM, Ghidra, build host, game, allocator or engine operation ran. No delegation, commit, stage or push occurred. Sole blocker is Astra resolution of transient EvTurn initialization and acceptance impact.' --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt --artifact campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json --next-action 'Launch one fresh bounded openai/gpt-6-astra resolver quantum for open surprise s-5a78d3a0a10c1f8545df8eb1, using this contract, canonical state root and the same paired worktrees, and execute the surprise probe before any TurnEvents architecture editing resumes.'","timeout":120000,"workdir":"/home/alex/sots-re"},"output":"{\n \"actor\": \"live-record bridge architect\",\n \"artifacts\": [\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\",\n \"sha256\": \"ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\",\n \"sha256\": \"f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\",\n \"sha256\": \"57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt\",\n \"sha256\": \"eb887fbef7b4686530d2fc1c0caf2c2ee78c761aa3706cebcf3c146a22480b2e\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt\",\n \"sha256\": \"e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt\",\n \"sha256\": \"3c38887e60d009ab904772b13be93ac1eedd9bee85024e37110160a625db3a83\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt\",\n \"sha256\": \"67777b4a5f658d4629a24770929979494739b6b3bcb0075fb8af17c782d080be\"\n },\n {\n \"path\": \"campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json\",\n \"sha256\": \"db60a0f8cb666707b422960873b905d4f8a449f7b288a612c8d48c604dc1d379\"\n }\n ],\n \"basis\": \"6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"3374a5a2a8d056e7b4dc261c\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"next_action\": \"Launch one fresh bounded openai/gpt-6-astra resolver quantum for open surprise s-5a78d3a0a10c1f8545df8eb1, using this contract, canonical state root and the same paired worktrees, and execute the surprise probe before any TurnEvents architecture editing resumes.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-checkpoint/1\",\n \"session\": \"run-472955e277202c411388c66b\",\n \"summary\": \"QUANTUM-END CHECKPOINT. OBSERVATIONS: requested model openai/gpt-5.6-sol was available and matched the role registry. Assigned paired identities remained engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23/common-dir /home/alex/sots-engine/.git/source digest ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and RE HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7/common-dir /home/alex/sots-re/.git/source digest 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Binary and objdump identities remained SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd. Read-only capture run-472955e277202c411388c66b produced nine zero-return, nonempty-stdout, empty-stderr windows for get/create, append, growth, nested copy/destruction, TurnEvents destruction/allocation/range copy and vtable. Manifest SHA256 is ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b. Fresh bytes show local TurnEvents at EBP-0x24 receives vptr and zero nested header but no EvTurn write at EBP-0x20 before append; append copies that indeterminate word, then get/create overwrites stored EvTurn with requested turn after temporary nested-vector cleanup. This contradicts the accepted dependency prose claiming a zero temporary turn. DECISIONS: recorded open surprise s-5a78d3a0a10c1f8545df8eb1, enumerated surviving/qualified/overturned claims there, and paused all affected TurnEvents architecture encoding. Contract is blocked pending Astra; no JSON/architecture interpretation was amended behind a caveat. TESTS: independent manifest hash/returncode/stdout/stderr validator passed for all 9 windows; campaign validate passed; campaign status exposes the open surprise and blocked state. RESOURCES/BLOCKERS: VM144 lease remained released and no VM, Ghidra, build host, game, allocator or engine operation ran. No delegation, commit, stage or push occurred. Sole blocker is Astra resolution of transient EvTurn initialization and acceptance impact.\",\n \"timestamp\": \"2026-09-10T04:15:45.749898+00:00\"\n}\n","metadata":{"output":"{\n \"actor\": \"live-record bridge architect\",\n \"artifacts\": [\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\",\n \"sha256\": \"ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\",\n \"sha256\": \"f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\",\n \"sha256\": \"57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt\",\n \"sha256\": \"eb887fbef7b4686530d2fc1c0caf2c2ee78c761aa3706cebcf3c146a22480b2e\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt\",\n \"sha256\": \"e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt\",\n \"sha256\": \"3c38887e60d009ab904772b13be93ac1eedd9bee85024e37110160a625db3a83\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt\",\n \"sha256\": \"67777b4a5f658d4629a24770929979494739b6b3bcb0075fb8af17c782d080be\"\n },\n {\n \"path\": \"campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json\",\n \"sha256\": \"db60a0f8cb666707b422960873b905d4f8a449f7b288a612c8d48c604dc1d379\"\n }\n ],\n \"basis\": \"6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"3374a5a2a8d056e7b4dc261c\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"next_action\": \"Launch one fresh bounded openai/gpt-6-astra resolver quantum for open surprise s-5a78d3a0a10c1f8545df8eb1, using this contract, canonical state root and the same paired worktrees, and execute the surprise probe before any TurnEvents architecture editing resumes.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-checkpoint/1\",\n \"session\": \"run-472955e277202c411388c66b\",\n \"summary\": \"QUANTUM-END CHECKPOINT. OBSERVATIONS: requested model openai/gpt-5.6-sol was available and matched the role registry. Assigned paired identities remained engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23/common-dir /home/alex/sots-engine/.git/source digest ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and RE HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7/common-dir /home/alex/sots-re/.git/source digest 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Binary and objdump identities remained SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd. Read-only capture run-472955e277202c411388c66b produced nine zero-return, nonempty-stdout, empty-stderr windows for get/create, append, growth, nested copy/destruction, TurnEvents destruction/allocation/range copy and vtable. Manifest SHA256 is ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b. Fresh bytes show local TurnEvents at EBP-0x24 receives vptr and zero nested header but no EvTurn write at EBP-0x20 before append; append copies that indeterminate word, then get/create overwrites stored EvTurn with requested turn after temporary nested-vector cleanup. This contradicts the accepted dependency prose claiming a zero temporary turn. DECISIONS: recorded open surprise s-5a78d3a0a10c1f8545df8eb1, enumerated surviving/qualified/overturned claims there, and paused all affected TurnEvents architecture encoding. Contract is blocked pending Astra; no JSON/architecture interpretation was amended behind a caveat. TESTS: independent manifest hash/returncode/stdout/stderr validator passed for all 9 windows; campaign validate passed; campaign status exposes the open surprise and blocked state. RESOURCES/BLOCKERS: VM144 lease remained released and no VM, Ghidra, build host, game, allocator or engine operation ran. No delegation, commit, stage or push occurred. Sole blocker is Astra resolution of transient EvTurn initialization and acceptance impact.\",\n \"timestamp\": \"2026-09-10T04:15:45.749898+00:00\"\n}\n","exit":0,"truncated":false},"title":"python3 tools/campaign.py --state-root /home/alex/sots-re checkpoint research-live-record-bridge --actor \"live-record bridge architect\" --role architecture-review --model openai/gpt-5.6-sol --session run-472955e277202c411388c66b --summary 'QUANTUM-END CHECKPOINT. OBSERVATIONS: requested model openai/gpt-5.6-sol was available and matched the role registry. Assigned paired identities remained engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23/common-dir /home/alex/sots-engine/.git/source digest ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and RE HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7/common-dir /home/alex/sots-re/.git/source digest 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Binary and objdump identities remained SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd. Read-only capture run-472955e277202c411388c66b produced nine zero-return, nonempty-stdout, empty-stderr windows for get/create, append, growth, nested copy/destruction, TurnEvents destruction/allocation/range copy and vtable. Manifest SHA256 is ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b. Fresh bytes show local TurnEvents at EBP-0x24 receives vptr and zero nested header but no EvTurn write at EBP-0x20 before append; append copies that indeterminate word, then get/create overwrites stored EvTurn with requested turn after temporary nested-vector cleanup. This contradicts the accepted dependency prose claiming a zero temporary turn. DECISIONS: recorded open surprise s-5a78d3a0a10c1f8545df8eb1, enumerated surviving/qualified/overturned claims there, and paused all affected TurnEvents architecture encoding. Contract is blocked pending Astra; no JSON/architecture interpretation was amended behind a caveat. TESTS: independent manifest hash/returncode/stdout/stderr validator passed for all 9 windows; campaign validate passed; campaign status exposes the open surprise and blocked state. RESOURCES/BLOCKERS: VM144 lease remained released and no VM, Ghidra, build host, game, allocator or engine operation ran. No delegation, commit, stage or push occurred. Sole blocker is Astra resolution of transient EvTurn initialization and acceptance impact.' --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt --artifact campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json --next-action 'Launch one fresh bounded openai/gpt-6-astra resolver quantum for open surprise s-5a78d3a0a10c1f8545df8eb1, using this contract, canonical state root and the same paired worktrees, and execute the surprise probe before any TurnEvents architecture editing resumes.'","time":{"start":1789013745705,"end":1789013745774}},"metadata":{"openai":{"itemId":"fc_046ee89291d30813016aa22ed1d71487d1bb515c6e3d543eee"}},"id":"prt_08986e421001qF1DgMgUjfDghS","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_08986c874001ui4nLUZtKcdi1S"}} +{"type":"step_finish","timestamp":1789013745839,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_0898760ab001CYz4RSaKqhHIyM","reason":"tool-calls","snapshot":"0a47e01c900f5cc7b6528eebad4b149c020937fb","messageID":"msg_08986c874001ui4nLUZtKcdi1S","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":118961,"input":460,"output":995,"reasoning":130,"cache":{"write":0,"read":117376}},"cost":0}} +{"type":"step_start","timestamp":1789013748021,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089876932001KWABsEXaF26P8b","messageID":"msg_0898760e8001QPtxcBE7UxXszj","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"60901f0407fa3c2ed60d459b57bdbc478c9f3208","type":"step-start"}} +{"type":"tool_use","timestamp":1789013755771,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"type":"tool","tool":"todowrite","callID":"call_Ey2EeUfDMwjYz2Q23Fy9itma","state":{"status":"completed","input":{"todos":[{"content":"Read canonical campaign guidance, contract, checkpoint, and open surprises","status":"completed","priority":"high"},{"content":"Verify source, worktree, and resource identities against checkpoint/contract","status":"completed","priority":"high"},{"content":"Perform approved architecture-review work within owned scope","status":"completed","priority":"high"},{"content":"Validate owned-scope changes and campaign state","status":"completed","priority":"high"},{"content":"Write mandatory fresh canonical checkpoint with one exact next action","status":"completed","priority":"high"}]},"output":"[\n {\n \"content\": \"Read canonical campaign guidance, contract, checkpoint, and open surprises\",\n \"status\": \"completed\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Verify source, worktree, and resource identities against checkpoint/contract\",\n \"status\": \"completed\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Perform approved architecture-review work within owned scope\",\n \"status\": \"completed\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Validate owned-scope changes and campaign state\",\n \"status\": \"completed\",\n \"priority\": \"high\"\n },\n {\n \"content\": \"Write mandatory fresh canonical checkpoint with one exact next action\",\n \"status\": \"completed\",\n \"priority\": \"high\"\n }\n]","metadata":{"todos":[{"content":"Read canonical campaign guidance, contract, checkpoint, and open surprises","status":"completed","priority":"high"},{"content":"Verify source, worktree, and resource identities against checkpoint/contract","status":"completed","priority":"high"},{"content":"Perform approved architecture-review work within owned scope","status":"completed","priority":"high"},{"content":"Validate owned-scope changes and campaign state","status":"completed","priority":"high"},{"content":"Write mandatory fresh canonical checkpoint with one exact next action","status":"completed","priority":"high"}],"truncated":false},"title":"0 todos","time":{"start":1789013755767,"end":1789013755770}},"metadata":{"openai":{"itemId":"fc_0fca6792ad67aeea016aa22ef8475c87d19f971d30eb310447"}},"id":"prt_089877a27001QfLa56h03cd7qs","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","messageID":"msg_0898760e8001QPtxcBE7UxXszj"}} +{"type":"step_finish","timestamp":1789013755940,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_089878821001p90tE61xlcd0XT","reason":"tool-calls","snapshot":"24b121aad1228b9192b1a4dbe6d7f259228e202d","messageID":"msg_0898760e8001QPtxcBE7UxXszj","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":120691,"input":2821,"output":128,"reasoning":110,"cache":{"write":0,"read":117632}},"cost":0}} +{"type":"step_start","timestamp":1789013758708,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_0898792ec001O4Sf4g3jqr3spb","messageID":"msg_089878858001YSAi2K9x4cp0Ro","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","snapshot":"7d9f5d84f0a9a45eec54823084a3a0f4b22f0928","type":"step-start"}} +{"type":"text","timestamp":1789013770766,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_0898792f3001tvzPSFMbsAd3DF","messageID":"msg_089878858001YSAi2K9x4cp0Ro","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"text","text":"Campaign quantum stopped and checkpointed.\n\n- Captured 9 read-only TurnEvents ABI/helper windows under:\n `verify/results/research-live-record-bridge/run-472955e277202c411388c66b/`\n- Manifest validation passed; campaign validation passed.\n- Found a contradiction: miss-path temporary `EvTurn` is not initialized before append, contrary to accepted dependency prose.\n- Recorded open surprise: `s-5a78d3a0a10c1f8545df8eb1`\n- Contract is now blocked; affected TurnEvents architecture work paused.\n- Final checkpoint:\n `campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json`\n- Exact next action: launch a bounded `openai/gpt-6-astra` resolver quantum for the surprise probe.\n\nNo delegation, lab mutation, staging, commit, or push occurred.","time":{"start":1789013758707,"end":1789013770764},"metadata":{"openai":{"itemId":"msg_0e400bc70a61f71e016aa22efe73f087d1a47493665332814c","phase":"final_answer"}}}} +{"type":"step_finish","timestamp":1789013771024,"sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","part":{"id":"prt_08987c30c0018WWSW4SBTuQ26i","reason":"stop","snapshot":"7d8a936b6f54db47172f922815b0dd6687671bab","messageID":"msg_089878858001YSAi2K9x4cp0Ro","sessionID":"ses_f767f9fe3ffeUJ96GrQrTPvFgG","type":"step-finish","tokens":{"total":121075,"input":557,"output":198,"reasoning":0,"cache":{"write":0,"read":120320}},"cost":0}} diff --git a/campaign/runtime/runs/run-472955e277202c411388c66b.stderr.log b/campaign/runtime/runs/run-472955e277202c411388c66b.stderr.log new file mode 100644 index 0000000..e69de29 diff --git a/campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.json b/campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.json new file mode 100644 index 0000000..28a9be4 --- /dev/null +++ b/campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.json @@ -0,0 +1,10369 @@ +{ + "actor": "live-record surprise resolver", + "checkpoint": "campaign/runtime/checkpoints/research-live-record-bridge-646a5ada115eaf0a3924db19.json", + "checkpoint_session": "run-f63d1e050a7ee3fac7b44885", + "command": [ + "opencode", + "run", + "--format", + "json", + "--model", + "openai/gpt-6-astra", + "--agent", + "sots-resolver", + "Start a FRESH bounded campaign quantum (40 steps). No delegation.\nRole=resolver; requested model=openai/gpt-6-astra; actor=live-record surprise resolver; checkpoint session=run-f63d1e050a7ee3fac7b44885.\nCanonical state root: /home/alex/sots-re\nContract: /home/alex/sots-re/campaign/contracts/research-live-record-bridge.json\nLatest checkpoint: campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json\nEngine worktree: /tmp/opencode/sots-final-research-engine\nRE worktree: /tmp/opencode/sots-final-research-re\nRead canonical campaign/README.md, contract, latest checkpoint and open surprises before work. Verify source/worktree/resource identities. Only edit owned scope. Missing state means blocked. Do not commit, stage, push or mutate lab resources without explicit authority and a lease. Checkpoint every 20 tool calls or 15 minutes, before experiments, compaction and stopping; persist under canonical campaign/ using tools/campaign.py with the session above, exact model, actor and role. Include observations versus decisions, source identities, artifact paths, tests, blockers and ONE exact next action. Fresh checkpoint at quantum end is mandatory. Record a surprise and pause affected work if assumptions are falsified. RESOLUTION-ONLY: read evidence, record decisions/checkpoints; no implementation or architecture source edits. Do not rely on chat resume or automatic compaction." + ], + "completed_sessions": [ + "ses_f7677c13bffeSc7NxK5XDVgyJc" + ], + "config": { + "canonical_files": { + "campaign/agents/analyst.md": "895c41509016038b3f72c4a68608c4101511e69c5bf410e379286da1a6202952", + "campaign/agents/implementer.md": "eb5581051a92b3d2b9ddd947812b1c02ff6a0b5e7619e7674adc26701e9a3d91", + "campaign/agents/lab.md": "48f1765ebdcb2015e631ad91428f65735ff899e119134b652f70788ff2eae5b8", + "campaign/agents/lead.md": "8fcfe52be845ed98a172afb47ea888b19bb7bffa80f7b50ace58d2bb66924220", + "campaign/agents/resolver.md": "742c36dc8567669d462566d6121eed42fcff5bff34e8eff466e92249f7ca195f", + "campaign/agents/verifier.md": "e467fc644e4e37d631a7a4e35038d9d3d0498491f1d7811d61d99271ff345c6b", + "campaign/models.json": "00f959ff4ce16ba22f6befa7a9d495eb85d62d9e8001b1e1345eaae0e11b6e48", + "opencode.json": "027ab29992ab9a5a6ee20bd649ac002f5f3397030d18b070eb949cc42179de99" + }, + "effective": { + "agent_sha256": "538b7262e3a21bba755e48cc1974eefb35bf710a5d23dde6d05fedb73250b7a0", + "sha256": "a1af2e7a400b316721b62a04182808806d2f1e774a248420663c627375e4984b" + }, + "expanded_prompt_sha256": "75226903f94e211868d70015e18e88cc3e3d338111743753bcd8a0f35e13e317", + "overlay": { + "agent": { + "sots-resolver": { + "model": "openai/gpt-6-astra", + "permission": { + "bash": { + "*": "deny", + "git -C * diff *": "allow", + "git -C * log *": "allow", + "git -C * rev-parse *": "allow", + "git -C * show *": "allow", + "git -C * status *": "allow", + "python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re checkpoint *": "allow", + "python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re resolve *": "allow", + "python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re status *": "allow", + "python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re surprise *": "allow", + "python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re validate *": "allow" + }, + "edit": { + "*": "deny", + "/home/alex/sots-re/campaign/contracts/*": "allow", + "/home/alex/sots-re/campaign/runtime/*": "allow" + }, + "external_directory": { + "*": "deny", + "/home/alex/sots-re": "allow", + "/home/alex/sots-re/*": "allow", + "/tmp/opencode/sots-final-research-engine": "allow", + "/tmp/opencode/sots-final-research-engine/*": "allow", + "/tmp/opencode/sots-final-research-re": "allow", + "/tmp/opencode/sots-final-research-re/*": "allow" + }, + "glob": "allow", + "grep": "allow", + "list": "allow", + "question": "deny", + "read": "allow", + "task": "deny" + }, + "prompt": "You are the SOTS resolver, running GPT-6 Astra. Read canonical RE AGENTS.md, campaign/README.md,\nthe surprise, affected contracts, checkpoints and raw evidence. First state the observation and\nits provenance. Check source/binary/input identity, positive execution and instrument neutrality\nbefore interpreting game behavior. Do not diagnose a stale build as a game mechanism.\n\nFor every affected claim record survives / qualified / overturned and exact domain. Name the\ncheapest discriminating experiment, revised scope/dependencies and affected evidence that must\nbe invalidated. Resolve through campaign controls with a durable Astra decision. Never silently\nwaive acceptance or treat untested inference as measurement. Leave blocked work blocked until\nthe decision supplies a valid next action. No autonomous lab mutation or nested delegation.\n\nCheckpoint every 20 calls/15min and before compaction, handoff or stop. Use short bounded sessions;\nthe repository carries decisions, not chat memory. Do not create another explanatory history in\nthe live board: link the actual decision and regenerate projections after integration.\n", + "steps": 40 + } + }, + "model": "openai/gpt-6-astra" + }, + "path": "/home/alex/sots-re/opencode.json", + "sha256": "027ab29992ab9a5a6ee20bd649ac002f5f3397030d18b070eb949cc42179de99" + }, + "contract": "research-live-record-bridge", + "cwd": "/tmp/opencode/sots-final-research-re", + "ended_at": "2026-09-10T04:20:46.259393+00:00", + "error_events": 0, + "event_count": 69, + "id": "run-f63d1e050a7ee3fac7b44885", + "log": "campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.jsonl", + "malformed_events": 0, + "max_steps": 40, + "observed_model_status": "unavailable", + "observed_models": [], + "observed_sessions": [ + "ses_f7677c13bffeSc7NxK5XDVgyJc" + ], + "requested_model": "openai/gpt-6-astra", + "resolution_only": true, + "returncode": 0, + "role": "resolver", + "schema": "sots-run/1", + "source_after": { + "engine": { + "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", + "files": { + ".gitignore": { + "mode": 420, + "sha256": "5103c9533f0d31fea29c0cc85d543692af84a697416dfa7557e31c9843210145" + }, + "AGENTS.md": { + "mode": 420, + "sha256": "7d1d4bc05c35e3354a77b3c8d5d2c04fb9d6658d09e87bc814a50bc3d2033fb7" + }, + "CLAUDE.md": { + "mode": 420, + "sha256": "15d60c3d592302a2854df8bf6d39c0a578c22b9273a633447e10b76fd76291f5" + }, + "CMakeLists.txt": { + "mode": 420, + "sha256": "6e9791511ea23bf8bf5f7f58617a7e77bbe5006829609e425e565c11c1e8d7ed" + }, + "CMakePresets.json": { + "mode": 420, + "sha256": "fcd1dfe3989ee4f56fa3e419059e1db5621922165edf05f13cfe8e5d786d8bb0" + }, + "CONTRIBUTING.md": { + "mode": 420, + "sha256": "26a381fe08feb51f861655f77de4e558f056d1dba79162a2e82513a92d0e6506" + }, + "LICENSE": { + "mode": 420, + "sha256": "eedebad43ea495111bf4451d78cb440309d90a733d6a36445699dde0629f1858" + }, + "README.md": { + "mode": 420, + "sha256": "66c2437fe4f074e6499de50b0d5f0d013bc290333f4d4bf554b541261885a0c1" + }, + "cmake/toolchain-mingw-i686.cmake": { + "mode": 420, + "sha256": "231c0b79868a77d54cc6619f0b4ea18454964a1a078806f44a6ffe3fb7741a9b" + }, + "docs/A2-alliance-and-modcount.md": { + "mode": 420, + "sha256": "0c0c45c31d5d64124f3b91a161f8a2f4732c8a5d7f6bc524baf4d59f8a191701" + }, + "docs/AC-predictions.md": { + "mode": 420, + "sha256": "ab9e41714abdbc32e620d8a2068be8ebd2fc8898ba149113c66ccda248b4bcda" + }, + "docs/B1.md": { + "mode": 420, + "sha256": "42b61bbfc135cdcd0f1a32f63164b88e67106400de7f08f543f118eccd814364" + }, + "docs/B2.md": { + "mode": 420, + "sha256": "87dfd333ee15681a3aa4de58cf1b14ff8240e75afabc05012e0f28531cb4b8b8" + }, + "docs/B3.md": { + "mode": 420, + "sha256": "fb65c41037b6cd6252c67e5244d492a3a17ea4ba2ddae821d49fe0a879528518" + }, + "docs/B4.md": { + "mode": 420, + "sha256": "22547b3d2960684e52a380fb07f43a75bf50aebf93cede689f297cf38f4a012d" + }, + "docs/B6-ship-construction.md": { + "mode": 420, + "sha256": "9c5c4fd2059af965e317c9db5b7fbfc440397ddfcdc5bf7860115f6a8a0532ab" + }, + "docs/CB-capture.md": { + "mode": 420, + "sha256": "ce45a9082588051eda7438016dc66eb28bb4afda98b82cdc20102c4ca53529f0" + }, + "docs/CB-predictions.md": { + "mode": 420, + "sha256": "ba51538b018cbb403978f97ad45d4743937d49ba55c8f15d7af8f8e4aa441f0f" + }, + "docs/E-events.md": { + "mode": 420, + "sha256": "de98795aadb1617eab91815ebc34818bef8b52c36ba18b4521170065bfd2d201" + }, + "docs/EV-events.md": { + "mode": 420, + "sha256": "e7d9536cd23f5d800dc97f68167bb738088a16136004419f28de92d7fe1bcfb9" + }, + "docs/G-wire-schema.md": { + "mode": 420, + "sha256": "19db69ae359ddbd2a0509d02f1c616f939e0428480a8bb33c81f69145323a591" + }, + "docs/G3-civilian-growth.md": { + "mode": 420, + "sha256": "38ea3a8ddc3fdca258294d949c4cd2af1a930cdd9ba612d5e8fb48bc446bdf30" + }, + "docs/H-probes.md": { + "mode": 420, + "sha256": "f23e4d4cbc8c9a3000a0a58ed994dddd95466cee1ec45e961685e86dde4dc54f" + }, + "docs/L1-predictions.md": { + "mode": 420, + "sha256": "af97dbc9f15b9c2e6f223c89bac17826056fa4f3bced3c01513c1ad4d9ac1754" + }, + "docs/L2-predictions.md": { + "mode": 420, + "sha256": "18213ce5f3375d478f266de85c38c2b04ca2ae8ab4a2023780dca161fa14f460" + }, + "docs/L3-predictions.md": { + "mode": 420, + "sha256": "d1c9c0006079f47ef0d3371f4a2c2df2fe4f08ebdad0f8a12d1b0de35b15ae7e" + }, + "docs/L4-ai-orders.md": { + "mode": 420, + "sha256": "b04127c5158a882f252b2b6e8afb2d131f0de623cc0c62c86c612af803d75835" + }, + "docs/L4-predictions.md": { + "mode": 420, + "sha256": "6a194ae336920f13d8e4a44549cbe26be959beef81cffed88ef03b3cec563e44" + }, + "docs/L5-live-verification.md": { + "mode": 420, + "sha256": "4c1abe57c516b36f383390164a362f53294feda222c623283f1e6091d8ef0ec4" + }, + "docs/M-movefleet.md": { + "mode": 420, + "sha256": "718338edb8cbe8a449793b22889776a1783d1d0ade553c03973ea45d426eb426" + }, + "docs/M0.md": { + "mode": 420, + "sha256": "e121c380612a42727e3a973d8cf50f884d660bb4b43bc494258dc1c6b6f26705" + }, + "docs/M1.md": { + "mode": 420, + "sha256": "e0a36cf109d096748e55522eb8d7a261764cbf5ab5daf9342ba903d0f2bc6704" + }, + "docs/M2.md": { + "mode": 420, + "sha256": "25f9cad74eeee40afc2117333232384e1cf387b2b9132856650234c5ba593c61" + }, + "docs/N-output-term.md": { + "mode": 420, + "sha256": "3b8317e22714ef66b35efceee6fa0f7057c37f7c6e34d93cc5047cd1dd07ecde" + }, + "docs/P-events-wiring.md": { + "mode": 420, + "sha256": "72ee81b71b4c08ae451721c785dc5e01ed4ca43ff0fd474befca09dcc41599ba" + }, + "docs/PAR-predictions.md": { + "mode": 420, + "sha256": "16e8fbbac5001db0b10d766858c0ae2ea9619f37043a0883ee46da80d4dd4846" + }, + "docs/PL-players-residual.md": { + "mode": 420, + "sha256": "9bc29bc030ee8b0e00e496b91fe8fefac15179ce9fd01c0a11a7b5b5335356dc" + }, + "docs/R-recapture.md": { + "mode": 420, + "sha256": "73c62ab20c5eca5e87e1d18aefa60a2a2acd75cbc7510d31b27a2cd4ebcec38f" + }, + "docs/RB-predictions.md": { + "mode": 420, + "sha256": "c1016781505c10aa304d4710c5389918b744ab20cbd8cb54dce462c3dc28e4e7" + }, + "docs/S-standalone.md": { + "mode": 420, + "sha256": "8979b0a9fef33a55ca15bf3ef78064e72df332033354329ff2471ad6648e4a8e" + }, + "docs/SD-predictions.md": { + "mode": 420, + "sha256": "a76a568ccac7409e3cb3acef724dbe6b618d4ec30259bce33594098daff8b6a0" + }, + "docs/SV-script-objects.md": { + "mode": 420, + "sha256": "80ebd120fa9cf5e68ac4d33117966805b917d24bc339f7d82be972a280449409" + }, + "docs/T-turn-driver.md": { + "mode": 420, + "sha256": "a4096b8223cea87ce77cc64014c489d4625ed36fd3aec1358565ca5cf91d4e1e" + }, + "docs/U-unlock.md": { + "mode": 420, + "sha256": "5cbe3d8fb4bd30d029cb2db006a4dd3c6819885f55f434afb4bc8ae79b526901" + }, + "docs/V-eventlive.md": { + "mode": 420, + "sha256": "ebd08c000f42211e87958278f03d6891475cd8557658e1a42105cf5ed45a1aa1" + }, + "docs/W2-predictions.md": { + "mode": 420, + "sha256": "9972e27467cf0fe23a358818caf7edb979de25697d3aa4b97a2135ca79fe34f5" + }, + "docs/W2-watchpoints.md": { + "mode": 420, + "sha256": "f8634c5f977b2ca9b2e07df105cba09adacaeb6fb4cf046e41e5e1e42b83b107" + }, + "docs/W3-predictions.md": { + "mode": 420, + "sha256": "211cedc2d924bcf47cbb73166b408e9a27d795863ffc90aa2adbb85beeadffcf" + }, + "docs/W3-watchpoints.md": { + "mode": 420, + "sha256": "568e818e66d95f9079a1270c4d9b900c7eecfd5b5a3b4ba5a4aa0c843666f061" + }, + "docs/Y-standalone-rng-and-tail.md": { + "mode": 420, + "sha256": "49d926cc505d6ba07753748366e42ec32493a15c76bfaa45b2f66f52adc57f2b" + }, + "docs/Z-tail-rng.md": { + "mode": 420, + "sha256": "3ed2b40f728bcedd663c305cce13481bad1429af03fd5215ee3189161cfbd7f1" + }, + "docs/architecture.md": { + "mode": 420, + "sha256": "ba4732eb8a4c7054df5136a72d1774e4f1e919a517a1c74e975903fdd254422f" + }, + "docs/game-data.md": { + "mode": 420, + "sha256": "2124ea3d117b4ee6f48660d9711c1b4ef844a4ba37af7cea3766914d77bd6b23" + }, + "docs/game-design.md": { + "mode": 420, + "sha256": "5b40349ad446596b534567a5683cf9ea99709d9eff231890e0f6256c755f0272" + }, + "docs/game-effects.md": { + "mode": 420, + "sha256": "e1e0abc162602daaac255fe44b11c511adf45d4ef5fa188268411829b0817e5d" + }, + "docs/game-sim.md": { + "mode": 420, + "sha256": "d1e14770d252fd2f320a7baa1ad54c90d955cfc840f477d1700cfbbadcec730e" + }, + "docs/harness-audit.md": { + "mode": 420, + "sha256": "931d92cc744ec6ca3d961fbe7fe96dcab28060446058eb78be9835ebbce73ed0" + }, + "docs/mars-parse.md": { + "mode": 420, + "sha256": "d9fa3029ade4f9401c59fb88f4520a1ef3af9a9c6f2bb5d1a0ebfa1d5061d6dd" + }, + "docs/mars-rng.md": { + "mode": 420, + "sha256": "f2a01b88f105d07d0d0d514430e76da7632e5c8e4e3bbd6c99a25f1dc5daa89c" + }, + "docs/mars-stream.md": { + "mode": 420, + "sha256": "61a16c9b7c143b4bc2edee473cf1f8bd06c1a5144c120bc563e5ec6d770dd0e7" + }, + "docs/mars-text.md": { + "mode": 420, + "sha256": "2b6c7d2eecbb684160e7565d1d7224eb0d2f7e9a41f4d807095a182ea605dcf1" + }, + "docs/mars-vfs.md": { + "mode": 420, + "sha256": "1508c2a070d56f4fdabac3c2ef1fd08d3f93d7a3045d59158340ee22a6ff1b62" + }, + "docs/shim-trace.md": { + "mode": 420, + "sha256": "8a059c1ba761b366449c2db8ef248656da917050ed28855c6d812ecf91672fa5" + }, + "include/generated/sots_addresses.h": { + "mode": 420, + "sha256": "fc34ac4ee8cc7fea91c447b5715841dc6d3afe36f9aff04e88b6c29b5b64f448" + }, + "include/generated/sots_stream_schema.h": { + "mode": 420, + "sha256": "13446ce54d60a0b29adcefb51aeb5127a0a3ca8de2bd1665e4778ba5354bff8c" + }, + "opencode.json": { + "mode": 420, + "sha256": "9af560c2a49945e964beb689649c13775e2aaaf691af270a565d6c6826f76c15" + }, + "src/app/CMakeLists.txt": { + "mode": 420, + "sha256": "142999eded2ff494745ce550af76a8f8caf0269ad22d6d5650e7a79c19d22717" + }, + "src/app/alliance.cpp": { + "mode": 420, + "sha256": "37d6e57f7ce82a69a595cf474e7be7a544efef210f960e9cdfeab6168826bac9" + }, + "src/app/alliance.h": { + "mode": 420, + "sha256": "08fa8dc96286c7cb15a90a987fa22b17e195522e642ab8303b659ca58739eafd" + }, + "src/app/command_replay.cpp": { + "mode": 420, + "sha256": "739059930cd3a5f1d988522ff50c60d8657664a66c9fe19b019833f417b55824" + }, + "src/app/command_replay.h": { + "mode": 420, + "sha256": "956429a742554cada2124de49c6955e27b0e5d68db87dcc95b22c75ec7bd93c2" + }, + "src/app/construction_phase.cpp": { + "mode": 420, + "sha256": "025cd0ea1a7badd567f7f1cd59330b1e01149b5c5094575fbd438683658bb0df" + }, + "src/app/construction_phase.h": { + "mode": 420, + "sha256": "a4d39994096683a1144eb20282b205cf71e2045873cc15b53bdac214ab1e9a5e" + }, + "src/app/event_phase.cpp": { + "mode": 420, + "sha256": "80717fa7c7f108004d5250f12b6c994752a1a55d7f32c7d3ebf29f2869118c90" + }, + "src/app/event_phase.h": { + "mode": 420, + "sha256": "54077268fe4705270dc06bdc46a6fd9384fb5e0d36da19e55ea149b478d8cf34" + }, + "src/app/growth_phase.cpp": { + "mode": 420, + "sha256": "5924d2641fc98d902b56a3e6417d7a57d70c1564718951b098e7d14376ebc4e3" + }, + "src/app/growth_phase.h": { + "mode": 420, + "sha256": "8222ef811abff161c8f891a331a52e527de54fbf468949d1e0e188adc473ae3b" + }, + "src/app/main.cpp": { + "mode": 420, + "sha256": "adfd7dd177439bfd57509532bcf0f37779281ae9309daa93efe1ada3ef3f57a7" + }, + "src/app/observed_phase.cpp": { + "mode": 420, + "sha256": "31fb99678d60de6901b4bb1b251abe2421453264653cf5f7bd297a376c2b23f3" + }, + "src/app/observed_phase.h": { + "mode": 420, + "sha256": "f88fc22a5cb21a43e196d7fae09446126635d3284e6b398bca234f265234b693" + }, + "src/app/phase_catalog.cpp": { + "mode": 420, + "sha256": "e3da16e6d499b7836953251d940ce171792ada208156ca583277298f305fc316" + }, + "src/app/phase_catalog.h": { + "mode": 420, + "sha256": "da6fff506002079d8277358d0095981dc260449dc19677a533ef25ab709aed87" + }, + "src/app/report.cpp": { + "mode": 420, + "sha256": "da3feb6043f6e68cb9ea763f7242ac153a5944c59f448284faf34c64ad6b9228" + }, + "src/app/report.h": { + "mode": 420, + "sha256": "0495d164458ddb7187ce3105f82cee06cf9cf6c5b73ed8cb6e434e1d2e0f8481" + }, + "src/app/script_phase.cpp": { + "mode": 420, + "sha256": "61eeeeb7eac3145cee938ccfc564b231b6968ce7926fb9599c136134f0d5ea91" + }, + "src/app/script_phase.h": { + "mode": 420, + "sha256": "e52006ff939fa945870fafdc2412ba67e3d5e1cc2aa51c0ca0a884ce630aa1b7" + }, + "src/app/trade_raid.cpp": { + "mode": 420, + "sha256": "07d6bb904e655bb644ff6df2e417adb448487bb67acb62240ec5ecc978eabebf" + }, + "src/app/trade_raid.h": { + "mode": 420, + "sha256": "10e0b1460eb7810f1fcd61e67d47333373f06bdacf5a11372958a84a91084e52" + }, + "src/app/treaty.cpp": { + "mode": 420, + "sha256": "317463fc0e2a6ca7eaa4e2f096c3821655a4623de4085af44d951ed500837575" + }, + "src/app/treaty.h": { + "mode": 420, + "sha256": "836395a85868cbd6b7fda8f1d304128fd7cc6952aff37003e8e119a5ce0251f9" + }, + "src/app/turn.cpp": { + "mode": 420, + "sha256": "a626ddf80a340de50b70f09bf91c0180d255c533e65edce1532d807fcf5109b4" + }, + "src/app/turn.h": { + "mode": 420, + "sha256": "85c87aab5c5b5ad5a6a34cc9db710b1cf77dec1a7145ba1e0b5e17fff9a6a237" + }, + "src/app/turn_record.cpp": { + "mode": 420, + "sha256": "e1eb0b253e964ab4f8be1333f81e193ac64109544da384cbdf21858cbf931e4d" + }, + "src/app/turn_record.h": { + "mode": 420, + "sha256": "78d8d2948bd04bff5e7d2c55955b726f1cd7552a765e608e390209e03856f76d" + }, + "src/app/visibility_phase.cpp": { + "mode": 420, + "sha256": "34d9df699af3e57823ec8457c442408da854028f9b95db5820171caad0823131" + }, + "src/app/visibility_phase.h": { + "mode": 420, + "sha256": "60db50f5b98c5edafc86a33f982a7773acc291c1a18f9cf23323e53ebadcde27" + }, + "src/game/ai/CMakeLists.txt": { + "mode": 420, + "sha256": "f51509a2699f02ecab9faa1f75feaa38c299e6bbbe08bfbe5e8e86722037f6eb" + }, + "src/game/ai/agent.cpp": { + "mode": 420, + "sha256": "e1bbddc3deb797d62ae9c2b24bc811ec9379699992dd838694bd5eadc73feef7" + }, + "src/game/ai/agent.h": { + "mode": 420, + "sha256": "48aa26f32d52a3f8f4e37ed5c6986b1e87a8fe1e780d5314514eb5c75b8bc244" + }, + "src/game/ai/apply_order.cpp": { + "mode": 420, + "sha256": "122ffea1090382fd01bc505fd30c59557dfec2c9846609d00da6e80109da2253" + }, + "src/game/ai/apply_order.h": { + "mode": 420, + "sha256": "a3b7a1ca26243ba0fdd801b78978175db6f76e297a72876fa0a35e12f38e09b3" + }, + "src/game/ai/command_capture.cpp": { + "mode": 420, + "sha256": "cb9a1d37af9f66e78d368e03aeabec01e4d48f76aaa30348a51f4c70a915e4ec" + }, + "src/game/ai/command_capture.h": { + "mode": 420, + "sha256": "921599e5b2aa8b773db00134618efde687c7d9ba739abd787ec7666f4cfeb78f" + }, + "src/game/ai/orders.cpp": { + "mode": 420, + "sha256": "1b775eb1a030bc6e81e5b7702cbf8ad56288860276e8a0475da66f7367542640" + }, + "src/game/ai/orders.h": { + "mode": 420, + "sha256": "c2a3b8fe1a7c46a1c1104bc87be8696d9f0782cc304d27cb96d0ec6b182f12ae" + }, + "src/game/ai/tasks.cpp": { + "mode": 420, + "sha256": "b05878ccd94c375aac8723c8ea9499f77b98fb94acc5a75a15fa1948dbe83c76" + }, + "src/game/ai/tasks.h": { + "mode": 420, + "sha256": "b1de4f89c1679ccfdeaa8b852cb2ce407b71dcd1bffacf97df389a69f6ae3a5d" + }, + "src/game/ai/turn_order.cpp": { + "mode": 420, + "sha256": "858b12c51c4509e16a22a6c080d1c6b47bd23d2b8a11f84a48d34f24c4635f22" + }, + "src/game/ai/turn_order.h": { + "mode": 420, + "sha256": "3e76710928fc2df52fd8312abfb8f23a2ce162f8e0856f46672a4f46b5b4384f" + }, + "src/game/combat/CMakeLists.txt": { + "mode": 420, + "sha256": "4b3a05c45360e312d6c1d96c1f05a60437d19d2046257835e0d6c70ecc4ce115" + }, + "src/game/combat/retreat.cpp": { + "mode": 420, + "sha256": "eede86a4d25289dfc9132d5776b11114a109179e5aa10f2b985035e5b22d7a1f" + }, + "src/game/combat/retreat.h": { + "mode": 420, + "sha256": "5fc3e002a5f1944f29c74f862ff942b894e40e88afafd52358373ada36644d7d" + }, + "src/game/config/CMakeLists.txt": { + "mode": 420, + "sha256": "c746021654505c92be333cefb9df994431679d40d8d654b937feb950684830f7" + }, + "src/game/config/config_loader.cpp": { + "mode": 420, + "sha256": "d903ba06747e5b7d66400d03ee1f0a9896bf4268bb200dec0b5c8599dbd3d3a1" + }, + "src/game/config/config_loader.h": { + "mode": 420, + "sha256": "fda71dee1a4e2b896760e9ac344768e176ea4f0a08609c7d651033a1ee698085" + }, + "src/game/config/manifest_loader.cpp": { + "mode": 420, + "sha256": "dbe33dc5ae03db18f3b2c01b48cc1fced10f2cca599270c0a028321a7d7dd7c6" + }, + "src/game/config/manifest_loader.h": { + "mode": 420, + "sha256": "68e508b9e6d1222d980b22ae826b127693fdf0821b6539ed9e62a8ec031aa5b5" + }, + "src/game/config/msvc_sort.h": { + "mode": 420, + "sha256": "17fcb13bb49a634c80be38299617c6c16fd8addedfa88c53d67242c90b811716" + }, + "src/game/data/CMakeLists.txt": { + "mode": 420, + "sha256": "677ba0dd0ebb8176f4e7c41d5550f2ccedd56d49e7e4acb1eb0a7970e9e98a51" + }, + "src/game/data/block.cpp": { + "mode": 420, + "sha256": "f61312708c715ce525ed1a01e71f1446d31fc96ca1cc51f5bd863cac51702200" + }, + "src/game/data/block.h": { + "mode": 420, + "sha256": "f14155dfca5fd270ad6b4d462458aa8cd5c5edf5e19da4df492ee2907e99eccc" + }, + "src/game/data/catalog.cpp": { + "mode": 420, + "sha256": "7799ad3b31d43236cacbc51c3ab086265927f98b1346005a8adfed2796178ebc" + }, + "src/game/data/catalog.h": { + "mode": 420, + "sha256": "80223146bcdbf4808776f974df7e5f46b120a021979a22f50b5ce2d74ec16d6e" + }, + "src/game/data/common.cpp": { + "mode": 420, + "sha256": "e58ba046844be11c61f7f7e501829b48b4f16e7c0ab78f10fcf9189c133cf040" + }, + "src/game/data/common.h": { + "mode": 420, + "sha256": "d1ac8375c1be133a98a383e01598f393f194e1bd9790d1c1230bc6121a45a187" + }, + "src/game/data/fields.h": { + "mode": 420, + "sha256": "4209df368ad776b3c24350246acf47ad874fcbbe292fb16f9ca7dacaef2f08fb" + }, + "src/game/data/shipsection.cpp": { + "mode": 420, + "sha256": "82d5ba9be2a446e50934b0b9a03b16839bd3acd1a967d9441180a1baaa271264" + }, + "src/game/data/shipsection.h": { + "mode": 420, + "sha256": "bcf100f83691226c4993dd7866b67a0b48d9b4bc6841463fbf07f0f26bf9dca0" + }, + "src/game/data/strings.cpp": { + "mode": 420, + "sha256": "6d983d3a4cb4284215301409587136fb765a5e6a4c9f4b988e01d710c0815f59" + }, + "src/game/data/strings.h": { + "mode": 420, + "sha256": "fb292bd472ed68eb4a5e93484f3f92d8a0ae8661e6a61ca4b417ab889c508055" + }, + "src/game/data/techtree.cpp": { + "mode": 420, + "sha256": "2ac6e39faeef808c97375f3b8a3ee219fcab8cc09921f0ed8d82eef7374eb9ea" + }, + "src/game/data/techtree.h": { + "mode": 420, + "sha256": "504946c255405ab28d20d0ed6c095b3b63f0e6865afe0e8bb0707e607c363007" + }, + "src/game/data/turrets.cpp": { + "mode": 420, + "sha256": "ce7db50ef10825e168fee2bf57c4b6038dd1a356be7ada9ed6a4f6a4f31b07a4" + }, + "src/game/data/turrets.h": { + "mode": 420, + "sha256": "f01603ad32b0ffdf891c88cc54c39a725c6a436f8dda79ac23e7505e59853c64" + }, + "src/game/data/weapon.cpp": { + "mode": 420, + "sha256": "accb5aab2081babb26443cd257f292909e19440c40346e098144148922f5d3f6" + }, + "src/game/data/weapon.h": { + "mode": 420, + "sha256": "63aeb670ae7b8a1fd6daa35ed60ebe41a87f62a6ec2a12f44b13f9052c55b009" + }, + "src/game/design/CMakeLists.txt": { + "mode": 420, + "sha256": "42692f7917d99fb5b9e392c2d0f1d908b2bc5c61fc2e5687fddbd665dafe0bef" + }, + "src/game/design/defaults.cpp": { + "mode": 420, + "sha256": "8efa0b79646525375739a1acfe77e75d5ae6b669d1ecaa01f49f3f5183caf528" + }, + "src/game/design/defaults.h": { + "mode": 420, + "sha256": "20af056628f362a4d5ad7ba6277135697718197ec6844ae0ae85bf06d4cd818b" + }, + "src/game/design/design.cpp": { + "mode": 420, + "sha256": "e166281c52a6d92fed8810b38bd736cbd2a324f15d290a39a539d01ff35ead20" + }, + "src/game/design/design.h": { + "mode": 420, + "sha256": "7e936c78ca10c3a49470da67f1659cf4ee323d14d50b5b2c1ada08edfa8f6997" + }, + "src/game/design/hull.cpp": { + "mode": 420, + "sha256": "554b0ef6955ac230c7eca29ea2d94d60b5fbc91f34d9ff457091577c8602268a" + }, + "src/game/design/hull.h": { + "mode": 420, + "sha256": "997018e59c9d78ee1da7e7cb9561b94b76befacbe348a4ce3301c5f22b582461" + }, + "src/game/design/rules.cpp": { + "mode": 420, + "sha256": "a623984f9ab40c354320051fec00bab2c7e3728c2c90082b3b8051294b906319" + }, + "src/game/design/rules.h": { + "mode": 420, + "sha256": "70a8a42fe82e9805cbb957717688ab9f9eb3438226f6e0d696ef5f7a51529229" + }, + "src/game/design/stats.cpp": { + "mode": 420, + "sha256": "c05f420a00026289be8693c0d80bbd2354ce354a91a78459cfc8e70467326c54" + }, + "src/game/design/stats.h": { + "mode": 420, + "sha256": "ba0a5d3bcc98f5c3e64579d42da70bfdf563773ce2fe1e6bfa2b36b14c453fe5" + }, + "src/game/effects/CMakeLists.txt": { + "mode": 420, + "sha256": "2e20f138f98bc69653c8360a26f99f3f43f35beedea5e90dfd7e9721e7550f89" + }, + "src/game/effects/tech_effects.cpp": { + "mode": 420, + "sha256": "40358c2af37543ca3ab09b4d0433cdb4b0d2d212b45f648739cc86e979501604" + }, + "src/game/effects/tech_effects.h": { + "mode": 420, + "sha256": "ef70addf2caf1e3abf36ac9d878a8db37d2adbac370957f5b6a0b5825564a0d6" + }, + "src/game/effects/tech_id.cpp": { + "mode": 420, + "sha256": "11cd652e81a52e86d72541a5c3de77bb50de3d31226272e0d1856e5a15b7f9a6" + }, + "src/game/effects/tech_id.h": { + "mode": 420, + "sha256": "f37752250c80c9c75ef8e144e4646dc1290a2cc8ce72d9a37949c6408996df86" + }, + "src/game/events/CMakeLists.txt": { + "mode": 420, + "sha256": "9b1f14a3801a991ba065e0e39ae2e3fa3966018e8a98fcceeddeaca3909328e2" + }, + "src/game/events/event_log.cpp": { + "mode": 420, + "sha256": "3b131879ec5e81cd1ba2bb0cbdfa6e05775ed77684f4ed7a8f5cfae87da1e7b1" + }, + "src/game/events/event_log.h": { + "mode": 420, + "sha256": "2ff415b1120ca3f28421006a566280fb977027cfa3f209bdba0986350376a953" + }, + "src/game/events/research_events.cpp": { + "mode": 420, + "sha256": "9520b20eba2a2b4bd5925f13b420d526fc610d06aae7ffad314e3002c4f5a253" + }, + "src/game/events/research_events.h": { + "mode": 420, + "sha256": "b87340c6b14e9de97e5bc0c5a4cbd74e54bab2831c60edf88c0e42ff5218ea22" + }, + "src/game/nav/CMakeLists.txt": { + "mode": 420, + "sha256": "79cc0ba25c6d49f7784663ace033d01ab3d85a5d8015fe2f466f8f1a3065983a" + }, + "src/game/nav/pathplan.cpp": { + "mode": 420, + "sha256": "04cfe8fca5be565f5443c8f1402eb0072221dbd63f70855e35b3eeea752f1775" + }, + "src/game/nav/pathplan.h": { + "mode": 420, + "sha256": "28b51f737b458679888e555d985b9e8d41adf8ba91fa0980b5e83668758c86e7" + }, + "src/game/sim/CMakeLists.txt": { + "mode": 420, + "sha256": "4b3085116f88c903a137abef6806891f7b7245dcb031153df7a5465dd2521116" + }, + "src/game/sim/colony.cpp": { + "mode": 420, + "sha256": "e0f0bf15d87b6ac2e92053cbfe0869c0dbf9465d90a9bae5456bb46883423b77" + }, + "src/game/sim/colony.h": { + "mode": 420, + "sha256": "357dce21440140a6cf836a3c12175ebb5bb6706c37d5ecd315a4ee4937725b47" + }, + "src/game/sim/construction.cpp": { + "mode": 420, + "sha256": "8cf4792f487162ca3599f16f0e92d73b4c9549046044548c5aecf202dd564130" + }, + "src/game/sim/construction.h": { + "mode": 420, + "sha256": "a7f201101ad704f1994f809259ad60f780760fa36174d99a1ccd9299447f5460" + }, + "src/game/sim/economy.cpp": { + "mode": 420, + "sha256": "1e0b17b589496a6139e8ca10fe20553050be7c965a02daf8b520dd5020412d89" + }, + "src/game/sim/economy.h": { + "mode": 420, + "sha256": "6f3e33e803bb49367d4cee3c8ef6186f04b79e7cf901047fc48d933108ab6d2a" + }, + "src/game/sim/movement.cpp": { + "mode": 420, + "sha256": "80c64b2148304b84683cf3860ced1354f5c29c923bbc50cc5001030dd85c2cd2" + }, + "src/game/sim/movement.h": { + "mode": 420, + "sha256": "9a6b2b4960428634d8004cd5694ed6a7a10ab28fd9c0e2a9824ede3e201e9441" + }, + "src/game/sim/numeric.h": { + "mode": 420, + "sha256": "88f715192ea322ace4eea13ab5ae55f7f41600262025208e468b5259220522c2" + }, + "src/game/sim/observed.cpp": { + "mode": 420, + "sha256": "43d29a9fe1195dcc0b7e6101ea05bfd076f03636f9f68de473539c83db0ddd22" + }, + "src/game/sim/observed.h": { + "mode": 420, + "sha256": "0224b5bf341f30ff0e98d910547261b6732bdc0c5339b520e26fc51939c1269f" + }, + "src/game/sim/player_turn.cpp": { + "mode": 420, + "sha256": "beb1b2ed434df3727e676ac56e751beff87fa98e4a42e4657cc54d41025773a2" + }, + "src/game/sim/player_turn.h": { + "mode": 420, + "sha256": "f24f8f5e161486575cd341c2f5bfed46fa6983263edcf2320e9c24860b4be51a" + }, + "src/game/sim/research.cpp": { + "mode": 420, + "sha256": "95f2d325544ee018ec8d0f945e91b4172f6ba406f95e19f86c4fb9aac6b22a89" + }, + "src/game/sim/research.h": { + "mode": 420, + "sha256": "e27a311e977afb2e01242938dc8d928e9a67d1f761965e191cf907e05c1c86e9" + }, + "src/game/sim/rng.h": { + "mode": 420, + "sha256": "f7e5bbced3dbd37deb49a00b52d05f7c751501d654dabd645ecff7447355929c" + }, + "src/game/sim/scriptobjects.cpp": { + "mode": 420, + "sha256": "a4f9a1b49e4ba22a88726efbbea2f355b40a3c006734d9150d509a344720a4d2" + }, + "src/game/sim/scriptobjects.h": { + "mode": 420, + "sha256": "210d0eb51780df70a9bca133664429589c03ea33e4524e2c182801d4b4a5c74b" + }, + "src/game/sim/species.h": { + "mode": 420, + "sha256": "83b44c0600b99c5acb72a3484bb0708cfba765cdf594aede596a3c47d5ee6298" + }, + "src/game/sim/techgraph.cpp": { + "mode": 420, + "sha256": "81f8f1120eb1fa4a77752bd2e0917df3dd76372461416526ae510bd697944ef8" + }, + "src/game/sim/techgraph.h": { + "mode": 420, + "sha256": "b2fc90666080a6b7f27dc9290eef17774d57742c2a1f9e1f77d94c7fa5689f6e" + }, + "src/game/sim/tuning.h": { + "mode": 420, + "sha256": "4acfad4098de951cc3a94ca25a2f200e96caba1836bf7441de5a2b458c022194" + }, + "src/game/sim/visibility.cpp": { + "mode": 420, + "sha256": "25f86a34f9a98d2439672283a446ba1804973dae3f6d9aa3692342b05f3a3ac0" + }, + "src/game/sim/visibility.h": { + "mode": 420, + "sha256": "783896489a2a9ec8bce617b141bfb631e8ef92f958be7b5c2ca64fd75774471f" + }, + "src/mars/parse/CMakeLists.txt": { + "mode": 420, + "sha256": "76c290b786a3e73387ec8c574fd5a0dbeb6e629adbe970426314f16497f59fa9" + }, + "src/mars/parse/blocks.cpp": { + "mode": 420, + "sha256": "e60baa8127b21cf6eb6c8e2aa02c6a72c6403dbc29e8480ff658bf184266675b" + }, + "src/mars/parse/blocks.h": { + "mode": 420, + "sha256": "1e8b76919a584d1d7fb01c5ff5e3a7173e8456eca892d61f0c6b7bb8f02f33b1" + }, + "src/mars/parse/effect.cpp": { + "mode": 420, + "sha256": "beb76a841a3d42dbc157413384ff1a0312a7068d6b22020eadcee2e1cbbc81f9" + }, + "src/mars/parse/effect.h": { + "mode": 420, + "sha256": "aaa5c83f2d8eef24667bf05d0f71b2a346f2fce09dc9a45d7a5197c894922e44" + }, + "src/mars/parse/result.h": { + "mode": 420, + "sha256": "58cff456e353550abcd0f52e031d9d70f2b7a975f4762cfccc64eb6bc748dbd9" + }, + "src/mars/parse/script.h": { + "mode": 420, + "sha256": "69a493268c47a08672694489a51c3ff0a7f9aa870e5ae5a93d47ba033cf21ad3" + }, + "src/mars/parse/value.cpp": { + "mode": 420, + "sha256": "712133e4d725649f5461e6a46bac6842b0751ac3fb7e1c468f826638ec58f623" + }, + "src/mars/parse/value.h": { + "mode": 420, + "sha256": "60d692648dab7e3e216c8d9e6ef212592ba1df1a98260b1b4599354742947b38" + }, + "src/mars/rng/CMakeLists.txt": { + "mode": 420, + "sha256": "dceb4bc0fb35c95a12ed9aa36380e79aa75641b15ecc06e4289d39824087e2dc" + }, + "src/mars/rng/mt19937.cpp": { + "mode": 420, + "sha256": "0c60775e9437b8eaad49f67a96001c81947c8d9e6d2472e28b2b490515bac95b" + }, + "src/mars/rng/mt19937.h": { + "mode": 420, + "sha256": "300836ab26fd1a4d913b395f08770bb2c248029ef1b80ecbf0c4d886adca2b8e" + }, + "src/mars/stream/CMakeLists.txt": { + "mode": 420, + "sha256": "95ffbb0c519e55b7423ab048a3019e295b7ef3a3e9506044ef2e68569df9601a" + }, + "src/mars/stream/archive.h": { + "mode": 420, + "sha256": "84d9ae2bb3d6f444b3933b3816cafd12caee8619d2219f19cd10d32cfad01d2e" + }, + "src/mars/stream/bytes.h": { + "mode": 420, + "sha256": "9f5869952c9d6b925db32995a417ba292a0c1a672fc3850400150afb8163b3f1" + }, + "src/mars/stream/dump.cpp": { + "mode": 420, + "sha256": "1b5bba86b2f85b1718276f8db557601320ab8a165d5fbfe93e51219cca5a1c16" + }, + "src/mars/stream/dump.h": { + "mode": 420, + "sha256": "a69af300ae7083fb0a5362edbe7eecd5273c8807884aff9fbedd7ae606c7fc4f" + }, + "src/mars/stream/gzip.cpp": { + "mode": 420, + "sha256": "20d71fd50bd637f78e7ebb5217bc6607ebc257535cc4720e640e4badb72f1644" + }, + "src/mars/stream/gzip.h": { + "mode": 420, + "sha256": "6bce52c615eb120999adb1a6f7f06baa813a033c28e02e6d79ce77f5b7a929c9" + }, + "src/mars/stream/node.h": { + "mode": 420, + "sha256": "eb43054c8592db107557979c7fc8612dc0646ba5d62f154b9b7f96a37ba2e860" + }, + "src/mars/stream/probe.h": { + "mode": 420, + "sha256": "6411d0976d1e785e8c32af6ecfe1a797c0a9aa02314e5e42fae3ed7b3449ae13" + }, + "src/mars/stream/reader.cpp": { + "mode": 420, + "sha256": "90f19cbcdb0fc50795895ea1eff09cd6c0ab3069095c49b276f3894e3d6bcbb3" + }, + "src/mars/stream/reader.h": { + "mode": 420, + "sha256": "900508d97be1cbe566d77f2c91755d3db387535cd9574e41704b6d940daa1ff4" + }, + "src/mars/stream/save.cpp": { + "mode": 420, + "sha256": "6db367b3ea570a4d0ee831160e3f44cef380f58de163b9d9205ca7449e51e049" + }, + "src/mars/stream/save.h": { + "mode": 420, + "sha256": "b3a411600d98b42e9014e1fc3cbc3eac5f32f4393e9f72036d3d840c802bb469" + }, + "src/mars/stream/savedump_main.cpp": { + "mode": 420, + "sha256": "8dc687f009d9f455e9bfa4019f03df72e058cebbb3e9ae5bcbb308285470208c" + }, + "src/mars/stream/schema.h": { + "mode": 420, + "sha256": "b1cd64bc43076a3e5893239bd2eb5c216e7293ee541322ef74fb106928183a05" + }, + "src/mars/stream/shapes.h": { + "mode": 420, + "sha256": "45ee379ff8100b6bc27427a2580d7aae19ff3d5d0aa27f682d156ae6a92d0a6d" + }, + "src/mars/stream/writer.cpp": { + "mode": 420, + "sha256": "54804b06266e34793f5294f9a96d2939d641915a0f60fc4e3b4170bfcea6e083" + }, + "src/mars/stream/writer.h": { + "mode": 420, + "sha256": "921cd44ea30e0b9944825b1d2caafc46edc8f2c23506c807050ed9208a397340" + }, + "src/mars/text/CMakeLists.txt": { + "mode": 420, + "sha256": "dccb93b37c21c9b3c3b35a50ca8de55c9f00df2a9e0a33b6c36d659a75455436" + }, + "src/mars/text/csv.cpp": { + "mode": 420, + "sha256": "b190e12b86a3f416a72c110caf9e0b2d98cdd33851d2fa48b55a8d7ea39279af" + }, + "src/mars/text/csv.h": { + "mode": 420, + "sha256": "3b7ec6d0884e95bfab869c253eddc30a802602bd1f230cc69461cb9cf3c17917" + }, + "src/mars/text/flat_kv.cpp": { + "mode": 420, + "sha256": "b98d3b7345489f0b149e56cd15436fd6199e4cf00d7ce3f8b8b31fcdecb90e47" + }, + "src/mars/text/flat_kv.h": { + "mode": 420, + "sha256": "d6765cd42cad46597b6e36e9d08baf6819f7796442293043d5ff686e2376d292" + }, + "src/mars/text/lines.h": { + "mode": 420, + "sha256": "b9a16ccf0dc7bbf36100e0b66c80bcb818590b161f820d3c67d55bccff1c2c65" + }, + "src/mars/text/manifest.cpp": { + "mode": 420, + "sha256": "4da1bb615902ec61883e561f5dd375d89442f7b9046fbc864f6308f27921087e" + }, + "src/mars/text/manifest.h": { + "mode": 420, + "sha256": "dd7351a7a6a144e97f3a3b6a25d22d1518a099e95deadb8965cedb201601e102" + }, + "src/mars/text/result.h": { + "mode": 420, + "sha256": "7f817033811dff6fcef1d5b76f88922cb0392afb4359549876cd017a14755606" + }, + "src/mars/text/value.cpp": { + "mode": 420, + "sha256": "94b433d78f3211e1a4dd9eb8a0a00b514cbeaf63a03e738146c56dbbfe221479" + }, + "src/mars/text/value.h": { + "mode": 420, + "sha256": "d3b5c70af2f339ad27b43c38353fc7a2da83388854b02000fa1b6d9a4e1dfc07" + }, + "src/mars/vfs/CMakeLists.txt": { + "mode": 420, + "sha256": "630d5d4707ef3c0f24a414815cc23158853fe9d5aef429d6619abc1c433b3786" + }, + "src/mars/vfs/path.cpp": { + "mode": 420, + "sha256": "e1f3bbab1f90b0132aec24d8c5997dafab69ec72f01f2dd2fa63c91f83ef7aeb" + }, + "src/mars/vfs/path.h": { + "mode": 420, + "sha256": "043091008f2cab7c88185de63e7aae63ad9b0e384109f5b6fd8c31666c4e2033" + }, + "src/mars/vfs/result.h": { + "mode": 420, + "sha256": "19115bf1c5b3bf01da078a49209230053043610b342b01cdaaed126e2d3ea748" + }, + "src/mars/vfs/vfs.cpp": { + "mode": 420, + "sha256": "ab8272cd14b4b55e7af13f5383d6106f0b1caabdde57e69c1d0fb5b434d31cba" + }, + "src/mars/vfs/vfs.h": { + "mode": 420, + "sha256": "2484231baa64ede6fc35eb0f49e1fd7a3373d5c559f016d5adfb9fc433619d90" + }, + "src/mars/vfs/zip_archive.cpp": { + "mode": 420, + "sha256": "d66e70300539bd42bcf193683df7c34d2b0b03146fd79f0a180385ead1559e87" + }, + "src/mars/vfs/zip_archive.h": { + "mode": 420, + "sha256": "0ffbd90f7919741e63e86e14d0f87d247bc2cd16d2db54771071553249ad935d" + }, + "src/shim/binkw32.def": { + "mode": 420, + "sha256": "fb500fd9f9ecbff44123b89fc24cec72e91fec4c4430ce12a69efc06b20de235" + }, + "src/shim/fpu_force.cpp": { + "mode": 420, + "sha256": "c4b4e41a7ef81139c652ba8164ed8bb0d809b42182f0d0f048b9a9e63bebe59d" + }, + "src/shim/fpu_force.h": { + "mode": 420, + "sha256": "75bac23bc45510961f6b10d21c47e72d8dc0d3971a3ab30b795cad1d25332c06" + }, + "src/shim/hooks/ai_orders.cpp": { + "mode": 420, + "sha256": "091ed885012fffa0e02b83c53e547483dfdeaf1094933726e0291fff0a99e434" + }, + "src/shim/hooks/ai_orders.h": { + "mode": 420, + "sha256": "6e775b3f946f2eaf10dc2e236a3f3c7b9311ed4e82cd4be1ca30e6c62d49d053" + }, + "src/shim/hooks/ai_rng.cpp": { + "mode": 420, + "sha256": "b8fec711cb620561c8f4854e72c3fb0d73013c9b1cd69fa63fc05dd3d2f60289" + }, + "src/shim/hooks/ai_rng.h": { + "mode": 420, + "sha256": "1306f4d3c8071121b06c75232efa5c50b155c1f8752fcae852ee8e5497ce7d08" + }, + "src/shim/hooks/ai_visit.cpp": { + "mode": 420, + "sha256": "cd69811074820810edb1ed3779ca08bd99fea620b162d80a0395d35e8db7fc31" + }, + "src/shim/hooks/ai_visit.h": { + "mode": 420, + "sha256": "8315b433319f680e80a154409124355ad24842e9a0cdef5c8aa6d12422971189" + }, + "src/shim/hooks/budget_inputs.cpp": { + "mode": 420, + "sha256": "fa50fb74a3874886cf8aeb4012b9fd9a5a43ce38ab3c543ee425002ca32fd46b" + }, + "src/shim/hooks/budget_inputs.h": { + "mode": 420, + "sha256": "56e2f95930ff420820a3464162fde74ac0a3ff2e1dc8b493729fed342e4a6548" + }, + "src/shim/hooks/colony_inputs.cpp": { + "mode": 420, + "sha256": "7aa9191ec6292d765fd06c99ff1f2ae2e09a65fb1f238dd2727f28bd465dd46e" + }, + "src/shim/hooks/colony_inputs.h": { + "mode": 420, + "sha256": "87ec765e14106631e3f6423450e6e01d5bb21060fa91f83c267db215ef4986d9" + }, + "src/shim/hooks/colony_turn.cpp": { + "mode": 420, + "sha256": "b82616c7b9b05e96e7f4c40d853c686884b517a5424413686d61799df9d45420" + }, + "src/shim/hooks/colony_turn.h": { + "mode": 420, + "sha256": "a9013cc2e92998ff56ac0c8cc36dc42033fbe3072ee88b86882a1dd4dd0357d6" + }, + "src/shim/hooks/compute_budget.cpp": { + "mode": 420, + "sha256": "76a24f0daf1f49cfabbed13753c65754e26bfcc4f672791b37e926f82b5c1906" + }, + "src/shim/hooks/compute_budget.h": { + "mode": 420, + "sha256": "f308717e44e12151cfb20a6a0cf11ff8e99ecc9c17ef04783198feed05a24caa" + }, + "src/shim/hooks/dictionaries.cpp": { + "mode": 420, + "sha256": "b60794256c07964eb89d5295ecb711b402112fe5f982a9215dc3a304d03a567b" + }, + "src/shim/hooks/dictionaries.h": { + "mode": 420, + "sha256": "ac68fd66eb343d40ee97d6bf29c8b54f5d469a9ef8862687ae15e6ad8bdafdc0" + }, + "src/shim/hooks/draw_sites.cpp": { + "mode": 420, + "sha256": "e7a1fa40262db2ed22b1dfa5ca1bd2588da07bfbab046f23afa8e86c03814d79" + }, + "src/shim/hooks/draw_sites.h": { + "mode": 420, + "sha256": "0021323e918d464223d03b969d0e6992a0efac23ba84a31af901cf2ac74e9b13" + }, + "src/shim/hooks/event_inputs.cpp": { + "mode": 420, + "sha256": "eeb9cc87ef5c39994b7f25d5ccfe220c4775b32a4b11471b0fc0fb81fca4362b" + }, + "src/shim/hooks/event_inputs.h": { + "mode": 420, + "sha256": "c0e74aed8756b3de8ebbe5ab3d70cfa6282403efefc2d795e8f0b1b4cd44d731" + }, + "src/shim/hooks/fleet_movement.cpp": { + "mode": 420, + "sha256": "f01ae7f64b1d545089b002b79c9986d2a39b97ad3995c88a8b71fa05eedb90f0" + }, + "src/shim/hooks/fleet_movement.h": { + "mode": 420, + "sha256": "dbbfe50afaedad63ec45881819aa5de3907cdb411ddf8d1d3e6a5f9a386dc8af" + }, + "src/shim/hooks/global_consts.cpp": { + "mode": 420, + "sha256": "87a51601e1a7d963bf841ca4e892aa79de789a050f5d783c7b5d8bbc2e96a9a1" + }, + "src/shim/hooks/global_consts.h": { + "mode": 420, + "sha256": "b6ac4265ec1f02f11c342536dbc9970c13761ea68aec0a5962d0f4cd6aa5d265" + }, + "src/shim/hooks/movement_inputs.cpp": { + "mode": 420, + "sha256": "0e23f86e4a8ed6c292aea8e45512931cdd06742f25c5e0d175bf0ed3b2217502" + }, + "src/shim/hooks/movement_inputs.h": { + "mode": 420, + "sha256": "32904786cbb122c3c8c36faf6bd9ea5ade4cd8395e74199ec08dbcdb8019b66a" + }, + "src/shim/hooks/player_turn.cpp": { + "mode": 420, + "sha256": "33bcadd7569ad13c69f5f160423c8d469bc67725ce7b944cf4b4346fb8cc7f23" + }, + "src/shim/hooks/player_turn.h": { + "mode": 420, + "sha256": "a766a0d93f3860da6f8d1e0dcf110d6754cd8dfe67d867093f32e3d24e8ff0e0" + }, + "src/shim/hooks/player_turn_inputs.cpp": { + "mode": 420, + "sha256": "993dce2ca771a36337c9561695995a0825746563d2e84b4458de650f3e456799" + }, + "src/shim/hooks/player_turn_inputs.h": { + "mode": 420, + "sha256": "ca0d7916ca17d993aaef19be48d03076220ae15cdcc622aef52a7c6b5957ca71" + }, + "src/shim/hooks/probe_entry.cpp": { + "mode": 420, + "sha256": "5faf9cf04a2cf849d2dd54ce4ad9b812120fb99741f11e9d52fed450badf0506" + }, + "src/shim/hooks/probe_entry.h": { + "mode": 420, + "sha256": "f04f445863a6164d03bc9f6edcaa2e2b0108163241510f4c1dfcb0da7667d89f" + }, + "src/shim/hooks/research.cpp": { + "mode": 420, + "sha256": "dacd16403f1dd5be2ef2cc42f16938977bdd0ee9283d0bca647a079ee3d28e83" + }, + "src/shim/hooks/research.h": { + "mode": 420, + "sha256": "a62c4847be81ed9d10c4f5b9a876bd79898040aa11aa8764149d82db4b010a84" + }, + "src/shim/hooks/rng_ledger.cpp": { + "mode": 420, + "sha256": "119d325fcda72268bdc87f7ca7af05d059d4521c4d7d40ad7426ce070865eabb" + }, + "src/shim/hooks/rng_ledger.h": { + "mode": 420, + "sha256": "0d1e9c79e7601da921253e860c55d9b69c21e03a1014c49f1dd85fd0e5f70f30" + }, + "src/shim/hooks/system_output.cpp": { + "mode": 420, + "sha256": "93bfb7e6ca381041d1e9830f82b8d774a63c12593fc426fd3e9198c9373be3b4" + }, + "src/shim/hooks/system_output.h": { + "mode": 420, + "sha256": "62a8424c70bb8e6c3d9603ce752f6b19a3920a4a78be75718869d7dac73f3738" + }, + "src/shim/hooks/tail_rng.cpp": { + "mode": 420, + "sha256": "9b2a3923d1d837399f3486650ef0e49b502837ff7df46a12df9a9e9b0d4d9d07" + }, + "src/shim/hooks/tail_rng.h": { + "mode": 420, + "sha256": "b9585605e71364872db25c608012e94db2148f22e2e6fd40d4b590a83f3be92b" + }, + "src/shim/hooks/tech_effect_fields.cpp": { + "mode": 420, + "sha256": "4c4d558aba3ac4e1b10e0944c867911e61daea0b4ade716760546846cebcb7b3" + }, + "src/shim/hooks/tech_effect_fields.h": { + "mode": 420, + "sha256": "22b2c050f73c9de011a42dc5a52d92a1bd3b24a59f3ba3b4332d832fb1853420" + }, + "src/shim/hooks/tech_effects.cpp": { + "mode": 420, + "sha256": "2a20f01a18ed30a466e2023ae023aeed8718c680cda927d2f3b463b6dbe35714" + }, + "src/shim/hooks/tech_effects.h": { + "mode": 420, + "sha256": "ffbc4e8262146cd7764f0b9758fff01ce5d359b25a0f5d8c931313f32d035320" + }, + "src/shim/hooks/watchpoints.cpp": { + "mode": 420, + "sha256": "15c94333f22bb592129efe3fb800ea89987045f9ebbc0e6791d4397961fd727d" + }, + "src/shim/hooks/watchpoints.h": { + "mode": 420, + "sha256": "639ae42b230fb31762f50cac0422dcd5b7fda7a1a02c7739a86d1cd6eda62277" + }, + "src/shim/main.cpp": { + "mode": 420, + "sha256": "eebdac7f8f69b8b95cd290c96d41c6f3f0ed5c45ccd5de54ffc790af47083b99" + }, + "src/shim/shim.cfg": { + "mode": 420, + "sha256": "44ca58394455549150c3461cc888128a968b4f062807e19ef25b8eebf0bfd523" + }, + "src/shim/shim.cfg.b4compare": { + "mode": 420, + "sha256": "68bed5883a75132eb5e885b4750d23c1d5734c843a32a56dc7f96d2b73fdf962" + }, + "src/shim/shim.cfg.b4scout": { + "mode": 420, + "sha256": "faac0765478d88b63f371fbc307512e71fe05f2e6f97272e6e0ceb267cc6d626" + }, + "src/shim/shim.cfg.b4trace": { + "mode": 420, + "sha256": "6a89cdd3cfdf53cfbaff29278fd5d0edf156ad8a525c61624b60ddb1eb0575a1" + }, + "src/shim/shim.cfg.bupin": { + "mode": 420, + "sha256": "39d52ef1ccb18d4dea261b87d3f363ba45079022d1b9bc3531c552ef6df80ec2" + }, + "src/shim/shim.cfg.cbcapture": { + "mode": 420, + "sha256": "0939b1ea144976ded2d45ad885fa0f1ffa3d77f16cba9b4d5a9cb87623500a62" + }, + "src/shim/shim.cfg.cboff": { + "mode": 420, + "sha256": "7d5d6e2ceb7f86fd17543c9212e8547be6009f725871aadbaf6057af1f4f5484" + }, + "src/shim/shim.cfg.cbpin": { + "mode": 420, + "sha256": "72a222c025796458dc1a538eed3ea55f053ee5e3c01e5b19b802922a058d4fbe" + }, + "src/shim/shim.cfg.cbtrap": { + "mode": 420, + "sha256": "938c0893b95b576b75927d75787999c22b3424d28c8936456ea3723f62775e51" + }, + "src/shim/shim.cfg.crcompare": { + "mode": 420, + "sha256": "129031ceb358fef9e0fcee2fb42a0f20fd76d9db78f061f956bf75ce2cc51dec" + }, + "src/shim/shim.cfg.croff": { + "mode": 420, + "sha256": "f99345e7db55e695ecabf7a00fc16ced9a42e8882abfeabc8281b9a4ef26d730" + }, + "src/shim/shim.cfg.crreplace0": { + "mode": 420, + "sha256": "60c13bd76e546b4521ab4e6a7836439078e2a176a11e471e03434623153cb7d9" + }, + "src/shim/shim.cfg.crreplace1": { + "mode": 420, + "sha256": "d27f43eb970d6a9c8a0c8d8f7071633a226c34b675a6581b331c6e1ba6f36c9b" + }, + "src/shim/shim.cfg.fpu007f": { + "mode": 420, + "sha256": "998decddb80cf23d63c42d2d6c1d1aa85072258ca0870168ee772708ebfb6363" + }, + "src/shim/shim.cfg.fpu027f": { + "mode": 420, + "sha256": "f4f9585a8f6317807bcab498ebed5de5d42400124a82ea958558f1455176cebd" + }, + "src/shim/shim.cfg.fpu127f": { + "mode": 420, + "sha256": "1f50a475f0d347b5b5a7c2341eac4ea22092818e18bc7ea049154d309949e271" + }, + "src/shim/shim.cfg.fpu137f": { + "mode": 420, + "sha256": "8658d901e0688d87d2f2359fe725082b9956291988cdc0b82b155dde55fef5e9" + }, + "src/shim/shim.cfg.fpu1a7f": { + "mode": 420, + "sha256": "59ff1f48a10c378d0ea92d8a156b135a106017a5b6c47b65de304fde3187c588" + }, + "src/shim/shim.cfg.fpuoff": { + "mode": 420, + "sha256": "ce637b3f0eca81c04490335cd9fe8a537cd09e5ef14cc5b3050f548ca4d54c65" + }, + "src/shim/shim.cfg.hoff": { + "mode": 420, + "sha256": "dc9b4619fe84921ea5896c2cd190afb5bd4ca89422fb86bfee8459665f92cd7a" + }, + "src/shim/shim.cfg.hp0": { + "mode": 420, + "sha256": "ede723fc540adb94bf16af0f3086c1935aac008acb6a8d550e2a4e97ff232c2c" + }, + "src/shim/shim.cfg.hp10": { + "mode": 420, + "sha256": "1c1f07dfdb7f99d63ed9a62aa9a447efda690623164beeaf434c588e02ef12cd" + }, + "src/shim/shim.cfg.hp11": { + "mode": 420, + "sha256": "36eae0d554a79b9536e3c57d2fef187ae81bd3266947c7f45035be554fb59404" + }, + "src/shim/shim.cfg.hp4": { + "mode": 420, + "sha256": "5bb0d636247c37def9b5cbf0cc9138b13590a50ae8212890fb7d31dfb9e837f4" + }, + "src/shim/shim.cfg.hp8": { + "mode": 420, + "sha256": "a8fe5f16a299b2b9eb81a811c7ec5a3b1baf635fa179a69f1e23243c7d1e2133" + }, + "src/shim/shim.cfg.hp9": { + "mode": 420, + "sha256": "765fdf337bb6942dbd1357166646dbf7fde3777678a606c4dbfd368078f09b5d" + }, + "src/shim/shim.cfg.hpall": { + "mode": 420, + "sha256": "630f99725ea6aa933984f4c545634d127787672de36f6756da2591e22a36f366" + }, + "src/shim/shim.cfg.hprobes": { + "mode": 420, + "sha256": "3bad5e3e7bf35a85acc7169d27531788e9659dbe0f8b1a0c719777fdb6beb5dc" + }, + "src/shim/shim.cfg.hprobes2": { + "mode": 420, + "sha256": "c335f1ec8aeff1165213cd40adcdcd59893c65edf95b1537fc4460e6060911c5" + }, + "src/shim/shim.cfg.l1control": { + "mode": 420, + "sha256": "c5dec81556268795b9a3df175bafde340a3fe76c7d6e05389e09e79d2b138b43" + }, + "src/shim/shim.cfg.l1hive": { + "mode": 420, + "sha256": "970ce465f2363f391a93086f1b596e904265510e02e7d2d38174cc6ea22d9b25" + }, + "src/shim/shim.cfg.l1off": { + "mode": 420, + "sha256": "a4197233c65acb876328666cf37754aea96f942b6ea08105bdfb61d6d5bcbd64" + }, + "src/shim/shim.cfg.l1seed": { + "mode": 420, + "sha256": "360af979eaa0c13eaa4db38ff13dcc64b3e2ab538300c26497921301fd3817b9" + }, + "src/shim/shim.cfg.l1snlv": { + "mode": 420, + "sha256": "3603508983a87906ecce02e4c2e9581cf2fa59390af25335f0b221765c57ef6d" + }, + "src/shim/shim.cfg.l3cont": { + "mode": 420, + "sha256": "629530a34412ebf85fc8ce8d2e5931684eea9891b6b619419e6f8db8c37f0976" + }, + "src/shim/shim.cfg.l3control": { + "mode": 420, + "sha256": "42b6ec7ebc9c83dae4a58884803f627d54956eb308611ce1e8d3691a12a74ccb" + }, + "src/shim/shim.cfg.l3probe": { + "mode": 420, + "sha256": "692dabb6f00343bfcc2f86d62ade827c295acc4630a18a1f2ddcebd53640978d" + }, + "src/shim/shim.cfg.l4control": { + "mode": 420, + "sha256": "ab13b7e3604ee98e9372e3405e0eacb6d5965e02d5317cfee0ea9b9afbd750e3" + }, + "src/shim/shim.cfg.l4dump": { + "mode": 420, + "sha256": "fb40d67d8d7dca4587a1dc13a95826ab68eb3fcf44feb6006388935f3ee346f2" + }, + "src/shim/shim.cfg.l4off": { + "mode": 420, + "sha256": "629a3e41d11daa53325f31aeb77d14d5abe67058e274d36ed8feb71e2e30dc13" + }, + "src/shim/shim.cfg.l4probes": { + "mode": 420, + "sha256": "a446ff3d6117d5352ad9b3c3c02f6d6300ce0b1089f055925afe19b77f0a20f3" + }, + "src/shim/shim.cfg.l4research": { + "mode": 420, + "sha256": "ad400f7082680db82c6fb0d39eed488710e6661f9e3215b9ea2eb0ba53444b9b" + }, + "src/shim/shim.cfg.l5budget": { + "mode": 420, + "sha256": "74df0fa1bd14fec6e8028ba05c516f3a370ba389386e5a8459d594c2c7ad83ae" + }, + "src/shim/shim.cfg.l5control": { + "mode": 420, + "sha256": "3557f716dde348a98fda65a5bad54911fe6d52f75c2cf6a82cc5d4fc47a6e968" + }, + "src/shim/shim.cfg.output": { + "mode": 420, + "sha256": "a811cffac230a1d6c0f9c5adacb1b691ae289ec08de0da3726309a4e1213acb0" + }, + "src/shim/shim.cfg.parbr": { + "mode": 420, + "sha256": "ea8230b596e7baae0c127f5700391ec2c96d546daba8c70ce8b2800c83b096dd" + }, + "src/shim/shim.cfg.parctl": { + "mode": 420, + "sha256": "2d1190d032bb705030746197020c715f4ab8af551f944e9ec0abe136912ea60d" + }, + "src/shim/shim.cfg.parorders": { + "mode": 420, + "sha256": "2107be5ec950e69d01c43ab30919fbfe652823878f150111b158927bc41de8d6" + }, + "src/shim/shim.cfg.parpin": { + "mode": 420, + "sha256": "893f1f81cdef0a964145ebb1c4b1e2725af8868b14fed412d40e3cce71f824f4" + }, + "src/shim/shim.cfg.recapb1": { + "mode": 420, + "sha256": "688840567305218dada122b29284f6af44c3c63ca173db87406de159bb547c8f" + }, + "src/shim/shim.cfg.recapb3": { + "mode": 420, + "sha256": "2120646255bd70adf29ed2880daa6b11d0867b9cfc9f1c9644d63b92c263b69b" + }, + "src/shim/shim.cfg.recapmisc": { + "mode": 420, + "sha256": "cb1f794c51b5d3d74eb91cc084c96a04444cd79f22fc694d821b51924544f595" + }, + "src/shim/shim.cfg.recaptrace": { + "mode": 420, + "sha256": "0ae410cc72fe155837d711c78543e14b1f5743310cd023298eb1e5bbd5457e71" + }, + "src/shim/shim.cfg.sdbr": { + "mode": 420, + "sha256": "7cb2bfd798ed1286628f3a879606eff076c4f6011d95e1223376eb4d0a392ca8" + }, + "src/shim/shim.cfg.sdoff": { + "mode": 420, + "sha256": "9195aeddeb2caa4e3db7dfd775c43e96eb99cfdc59a6a61e65d86fb325f0054a" + }, + "src/shim/shim.cfg.sdpin": { + "mode": 420, + "sha256": "61119f197b1dc8ddcad059d2d2c2753dae457b4bda4eb29e06c78282eeda6a0b" + }, + "src/shim/shim.cfg.sdpin2": { + "mode": 420, + "sha256": "d6d7f82b500df4f3ed120b4ff421178cf4373a145fa803e57d22a0654e4f0f63" + }, + "src/shim/shim.cfg.tturn": { + "mode": 420, + "sha256": "2ab2d64288043c3c55fde668facde9307c0739e0c801c900790e11db57c5759b" + }, + "src/shim/shim.cfg.tturncmp": { + "mode": 420, + "sha256": "114d325ae3ece29422069ee74c790603abb38c49162dd32520a3eecd18ab6061" + }, + "src/shim/shim.cfg.w2control": { + "mode": 420, + "sha256": "d042c0082a8eb4f55b8e21983df292f0950adc4ac5787d4a0b83088c10c5a3eb" + }, + "src/shim/shim.cfg.w2watch": { + "mode": 420, + "sha256": "ddb9c18a1c6b6c23758e51ca9ac18b4b95abe206b162497adc2978c0384d6ee5" + }, + "src/shim/shim.cfg.w3control": { + "mode": 420, + "sha256": "c6a3a5ea1e39a0714dffee0e44a0e8d91a2b450534d7e4377273a55b3e87de8c" + }, + "src/shim/shim.cfg.w3mod": { + "mode": 420, + "sha256": "7c7f82aaa8b5b007a740324373060ca2ba84edc765eb4e7ce55afcaba4e1c2e0" + }, + "src/shim/shim.cfg.w3tshn": { + "mode": 420, + "sha256": "51fa826d0b18d6f01987d6748e6610847ec3a761257ffc382a40d234670afec3" + }, + "src/shim/shim.cfg.zledger": { + "mode": 420, + "sha256": "31d0535aff9660eb1ad06f529c88a42aa71b83b36f8404b7541a29327c508a51" + }, + "src/shim/trace/emitter.cpp": { + "mode": 420, + "sha256": "4253cac49f0761e487fd555c3c01e02fa22e2010789ad3af37c62c8fd2e02030" + }, + "src/shim/trace/emitter.h": { + "mode": 420, + "sha256": "aa7804614b3d3a214d5c32c33ed245ae24276979080baa9d5481d6594ee3f79d" + }, + "src/shim/trace/hook.h": { + "mode": 420, + "sha256": "35be73ac1c9519664957ffea639d873e8a811b4620f0feecb21b54ea2776f800" + }, + "src/shim/trace/platform.h": { + "mode": 420, + "sha256": "f1b78d971798e45998b26c6b0e20db49fceb7d4c63f0c8c37452c6c2c6df9538" + }, + "src/shim/trace/selftest.cpp": { + "mode": 420, + "sha256": "31461ae6d329a8a3856589b245f3bcf8631f0db9a5e00530e4f94279950de354" + }, + "src/shim/trace/selftest.h": { + "mode": 420, + "sha256": "583d7a10ef04254c7a0fb7dd2a6071ad012a9a97dfae0896bbd598970b206475" + }, + "src/shim/trace/sha256.cpp": { + "mode": 420, + "sha256": "2faf44b5b273612c776204c1d83e0910d86394f4f6207129a01c81dedc170aa8" + }, + "src/shim/trace/sha256.h": { + "mode": 420, + "sha256": "31ce080acdc086ff7657d9093ac9bea438203eaa8e392ca38539152cdd15038f" + }, + "src/shim/trace/tracer.cpp": { + "mode": 420, + "sha256": "37d9490dbdedc399ecdb30f46eb27f31a4ff8c902eadb2eb48ecca7fb0e8fb88" + }, + "src/shim/trace/tracer.h": { + "mode": 420, + "sha256": "cbb80f167b8f98777f9fb58ce107226f42027ffdbd868a6808047c48caf10f76" + }, + "tests/addr_smoke.cpp": { + "mode": 420, + "sha256": "ace1ab9549bb6f3e0048d0e6e3ec6061035395581b2db46c0a5acb097c428890" + }, + "tests/app/CMakeLists.txt": { + "mode": 420, + "sha256": "dd18f8e25d2a9ce988dc226e03c7c6e02a275bbbea74f505d005e42ca5972037" + }, + "tests/app/test_alliance.cpp": { + "mode": 420, + "sha256": "671b2cb3295f360c61ee87005287999710d12e10e7e532331c1c946ab97f7c4d" + }, + "tests/app/test_catalog.cpp": { + "mode": 420, + "sha256": "c4cd9840c1f1b5d5a6829f7f1c5a0245b5e66135d3bed6410a2b6eca1a037225" + }, + "tests/app/test_command_replay.cpp": { + "mode": 420, + "sha256": "739ebeea5bed551f232774bc812bcb794cfa057015fd187529fa563b5d7ae5eb" + }, + "tests/app/test_event_phase.cpp": { + "mode": 420, + "sha256": "05498df256759fe5b8af80e9e56c2ca071eb26de0651f257798fe1641da627ca" + }, + "tests/app/test_trade_raid.cpp": { + "mode": 420, + "sha256": "2158008bc711b8062381f346fa347a430582d8d1943b0de5f40eb2a38e9a3f75" + }, + "tests/app/test_treaty.cpp": { + "mode": 420, + "sha256": "0f98150a3f9397fd12109eae7359ff7e04a4060e10e01ecf1693eb2a4606ead7" + }, + "tests/app/test_turn.cpp": { + "mode": 420, + "sha256": "6d45b1d2d065528f14ae83d95314f2b6559e53cc23f1b9e2531c7c09b4b97eab" + }, + "tests/app/test_turn_record.cpp": { + "mode": 420, + "sha256": "a845971b8d25d71c3b1138495354ad392e4fc298f87eb9b89d1567c01ab59cde" + }, + "tests/game_ai/CMakeLists.txt": { + "mode": 420, + "sha256": "a57a82d0c79ff933564e200a5b3137f120e70a19834264eeb2438c4cafd7ad3e" + }, + "tests/game_ai/test_agent.cpp": { + "mode": 420, + "sha256": "41cb3fbfc7e0b277771a2e8dd17601285a1e3a911543fc1335ce05a4e4b5f11c" + }, + "tests/game_ai/test_apply_order.cpp": { + "mode": 420, + "sha256": "8669c2e9a4c95b670a9c41262c68ce183d3cf3900bc262e0a2e33500bfffc594" + }, + "tests/game_ai/test_command_capture.cpp": { + "mode": 420, + "sha256": "8c2bae38754b347beeefe85d796c13bcf43cf5bc9bc99eb743626028b4dbd7ab" + }, + "tests/game_ai/test_live_blocks.cpp": { + "mode": 420, + "sha256": "44cb6bd8b34c13e329f9b1d50bb2a5c5513e52761537dccfb01afb7d48be7580" + }, + "tests/game_ai/test_orders.cpp": { + "mode": 420, + "sha256": "b13d1a3a628de411abb4faf024a1ce8d3e94518f12285bb3d7e7e86b012ad43f" + }, + "tests/game_ai/test_tasks.cpp": { + "mode": 420, + "sha256": "ffd8eed7fa76a24616d579a4e31031dadf43a0534e33743fb104dfca552367fc" + }, + "tests/game_ai/test_turn_order.cpp": { + "mode": 420, + "sha256": "382d6a30e9151c57849595cb134b8e2da25d2763738c9cbfa18d3cad51ecce97" + }, + "tests/game_combat/CMakeLists.txt": { + "mode": 420, + "sha256": "fd0c0dfb54033353b7014e3c764c916522cb529b6b3eae8a8d52afd044c13fe2" + }, + "tests/game_combat/test_retreat.cpp": { + "mode": 420, + "sha256": "3fb0be08d230bbd7c4ea4a59319de7ab252e5b7cbee924afd069847da8dcf73d" + }, + "tests/game_config/CMakeLists.txt": { + "mode": 420, + "sha256": "9874822d186e783f25b2dcd87495e7e380d873b8a0790c67fffb9430468094ed" + }, + "tests/game_config/manifest_tests.cpp": { + "mode": 420, + "sha256": "3bc62e7e49699254151a825421973d831b25bcf7a22028c789e3ca63b0d77319" + }, + "tests/game_config/replay_trace.cpp": { + "mode": 420, + "sha256": "83602ec974b8195c3616230ad44c2d4fd6032f8ef5f96e7aa76d49a0a04ac05e" + }, + "tests/game_config/unit_tests.cpp": { + "mode": 420, + "sha256": "45b07c7289abac61fccd0a6cd0ff87812542ec888eb6d295fb87c3f57755cc6a" + }, + "tests/game_data/CMakeLists.txt": { + "mode": 420, + "sha256": "cb8cffb7217e82077d3db749dcacf29c098549159cc0f312ef04bfccaa30155d" + }, + "tests/game_data/build_and_run.sh": { + "mode": 493, + "sha256": "69ea9cb94468c56c329fcc5b9350431067e97091ed47c08bb10b57b38412883a" + }, + "tests/game_data/dump_catalog.cpp": { + "mode": 420, + "sha256": "4588e699c69586dfb77f0d9289e375407d4f9cf019690e26bfc78f7182167c89" + }, + "tests/game_data/oracle/compare.py": { + "mode": 420, + "sha256": "2cfe1ac93790de3351256d284392372721f94de5375686e6301ef39b1943ad12" + }, + "tests/game_data/realdata_test.cpp": { + "mode": 420, + "sha256": "334a924bf81c6ce6192a6688435b374e115382358f7e4554aa164295bdd38321" + }, + "tests/game_data/test_catalog.cpp": { + "mode": 420, + "sha256": "9ea5c3fff2388c5d7fbf295123dfd7b702ef21f17fc7c45a970822814abfce2e" + }, + "tests/game_data/test_main.cpp": { + "mode": 420, + "sha256": "e808f3e2054894da5481d549d93cc837daff61c7b049691f6e2ee453cec53389" + }, + "tests/game_data/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/game_data/test_shipsection.cpp": { + "mode": 420, + "sha256": "b3519f0de60d061a6f1ab8ee81d470a28fc17cc81b113639ef2c1e139c249b4c" + }, + "tests/game_data/test_techtree.cpp": { + "mode": 420, + "sha256": "d05c889da9edb622bd2b66aa8e300d8162e0c8788950daa1086fc049b90dd4bc" + }, + "tests/game_data/test_turrets.cpp": { + "mode": 420, + "sha256": "66adff30b974e9bf2c96c1af024fb85677e1a8307c801933d23f3d2ec9d8222c" + }, + "tests/game_data/test_weapon.cpp": { + "mode": 420, + "sha256": "b16b0481c0a8697ff16e39c9feb3ad9d5406250b7dd1c828bf12f1bb40ed746b" + }, + "tests/game_design/CMakeLists.txt": { + "mode": 420, + "sha256": "a26524ff14878564870853bc067c379d2ebd26c14e45bcbb06593d300ee4b3ca" + }, + "tests/game_design/build_and_run.sh": { + "mode": 493, + "sha256": "b1aab4d13b09fb1ea4205978bd7d8b05af5a6422ebe4a34261c3247489b48bd7" + }, + "tests/game_design/dump_designs.cpp": { + "mode": 420, + "sha256": "b1b24c5cb534ad821a20325869713c04b742c541c448ade83543d75608f7eda2" + }, + "tests/game_design/json_min.h": { + "mode": 420, + "sha256": "9cfd3eabe9b36d6b2863872e08fe6ebaddf0749d1966dea693f8bbc0472780ac" + }, + "tests/game_design/mini_catalog.cpp": { + "mode": 420, + "sha256": "5817c0251883c999c6ebd54c77fdcf3981181b41fb5f7637d445824d60942810" + }, + "tests/game_design/mini_catalog.h": { + "mode": 420, + "sha256": "ecb7fd0dffa8709008bcdf9b9da3e70e68f735f9b5ecd0dcb4c871a35ae43b59" + }, + "tests/game_design/oracle/compare.py": { + "mode": 420, + "sha256": "2db14952f7fca9a587995e326651b0d549b39ceefd9c0ac59982cd35ae5d21e7" + }, + "tests/game_design/realdata_test.cpp": { + "mode": 420, + "sha256": "cea57cd53d881b3bf2557cc32ea402c4991aa6de5ff72340861f195a8e20c141" + }, + "tests/game_design/stock_designs.cpp": { + "mode": 420, + "sha256": "2ac1b8bcb0f61852f4bc0a8b7cda51167531ca2a05d1e485991a4758cf586d03" + }, + "tests/game_design/stock_designs.h": { + "mode": 420, + "sha256": "a49173bde083467f5650cfbfbaebba5f16208d660fe7f2f3da81c2caff07c807" + }, + "tests/game_design/test_banks.cpp": { + "mode": 420, + "sha256": "c1d34991c53523cb7610a569e861e8a312da1fe659de0522a3594fb14cad24a6" + }, + "tests/game_design/test_census_saves.cpp": { + "mode": 420, + "sha256": "814c17c7a14db7b123579b7636ee7f2b720fdf4a5cbbe90f676dc01709c45e3b" + }, + "tests/game_design/test_hull.cpp": { + "mode": 420, + "sha256": "cff70268d58ab95ed963d335904110ab55c79d6a0f660f613409cf6d5d63e2bd" + }, + "tests/game_design/test_json.cpp": { + "mode": 420, + "sha256": "e7fa196274a4591834a974f742ff59c7ed1fb15fb138091b48a071354d001c5d" + }, + "tests/game_design/test_main.cpp": { + "mode": 420, + "sha256": "e808f3e2054894da5481d549d93cc837daff61c7b049691f6e2ee453cec53389" + }, + "tests/game_design/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/game_design/test_stats.cpp": { + "mode": 420, + "sha256": "a3681df901095b848cc6b1ae63d04fd70eeeadd406e7d51f3c76671cbf523a7a" + }, + "tests/game_design/test_structure.cpp": { + "mode": 420, + "sha256": "d09f7707ee170f8a933c657628c1da4f61a29c7eb2dc687a96c3985bdac941aa" + }, + "tests/game_design/test_tech.cpp": { + "mode": 420, + "sha256": "689c081a324c7ece3f70d711f7ac67a5b93207f95e2800a3a708f2f8dbe31965" + }, + "tests/game_effects/CMakeLists.txt": { + "mode": 420, + "sha256": "c80413a7103ce0ed7944fb096ad22fc206a091645428a6015ec3d0e442414a0a" + }, + "tests/game_effects/build_and_run.sh": { + "mode": 493, + "sha256": "ab5085eeab0ec65d8f7ddd7d79357cd15183888b1b4e51cb563810d4e4c64506" + }, + "tests/game_effects/test_effects.cpp": { + "mode": 420, + "sha256": "b10d804b1ad4fb140e13cc1984c6372dbbfdd92560f37583f2411bbcb45c16d4" + }, + "tests/game_events/CMakeLists.txt": { + "mode": 420, + "sha256": "c962651d71ee7783d5565b418f653f2954e489cf698762c5686f5f2dbb4304db" + }, + "tests/game_events/build_and_run.sh": { + "mode": 493, + "sha256": "8b92d249138ee53f728583a0c68b153eaf4e2ad7f92d415d8b3a83df2fb3ec28" + }, + "tests/game_events/test_events.cpp": { + "mode": 420, + "sha256": "182941b9b809b20d24a2e29c5e4bbd626e6da8486e87dc38d1c6088161ec793b" + }, + "tests/game_nav/CMakeLists.txt": { + "mode": 420, + "sha256": "7ee85557a167281f4576252428b4e01795232f31dc1d93c23b284568074cec3b" + }, + "tests/game_nav/test_pathplan.cpp": { + "mode": 420, + "sha256": "6229cc2b1be1ffffb3fbb812c2ccc89dba7099d349be3a6f8f2c2e26aa1dd58d" + }, + "tests/game_sim/CMakeLists.txt": { + "mode": 420, + "sha256": "563547cdd93bce41ef29a73289e5104a5df61f71cc980e49ea37cdbe26743be7" + }, + "tests/game_sim/build_and_run.sh": { + "mode": 493, + "sha256": "a9c42a931242c7f266f512b4d4ad11f6f8ecf43a447a06a04f174301ee19328a" + }, + "tests/game_sim/check.h": { + "mode": 420, + "sha256": "faddddc37a528f0235f510b249cfc1776ce30aff709329954f09093b01231221" + }, + "tests/game_sim/mini_json.h": { + "mode": 420, + "sha256": "710218b637aaf1a5eb7c49eaa7d158bc3e495135ec14bf8b41384769d0227ba5" + }, + "tests/game_sim/smoke_real_save.cpp": { + "mode": 420, + "sha256": "2432e92ac18fadfb1152c54d9dec9a77b3dbf506ea122401cbbd48584b7c9190" + }, + "tests/game_sim/test_colony.cpp": { + "mode": 420, + "sha256": "45355673c46cbaef66b2c81d04a845cf65b6ddfd9819350c7338d9771fafb6fe" + }, + "tests/game_sim/test_construction.cpp": { + "mode": 420, + "sha256": "8df75076a3f460e949e34100d55acf60b054603da6d4aeda4f73297442c06e21" + }, + "tests/game_sim/test_economy.cpp": { + "mode": 420, + "sha256": "43fe658fd2347e3667a901afa642713d70c85ef0ec75094642da2d05b9ca471b" + }, + "tests/game_sim/test_movement.cpp": { + "mode": 420, + "sha256": "1927c371d52115458d88552014cef30bba60e9bef5eb3acfce11b2bc623e06a6" + }, + "tests/game_sim/test_observed.cpp": { + "mode": 420, + "sha256": "1f6ad16c1a2c80f0621573b5196989b0349e47351585d83835be5e27f6ef3fe4" + }, + "tests/game_sim/test_player_turn.cpp": { + "mode": 420, + "sha256": "13f76eaa6cad265deec25416acf0cae2028d6cd1c7b9585df6e9252ba3f0cbed" + }, + "tests/game_sim/test_research.cpp": { + "mode": 420, + "sha256": "3dc668eb889c41f58db6007a96f54fe2a6d56ee6501a298fba3afbbe9637baf6" + }, + "tests/game_sim/test_scriptobjects.cpp": { + "mode": 420, + "sha256": "dfe90a42bcd2844c2ea3666816f97c05237206bf44467ac29790c72b7b498582" + }, + "tests/game_sim/test_techgraph.cpp": { + "mode": 420, + "sha256": "0627ea1c8012b90b62285cae2f31599ba8a8cd47928452910ade91f93502d68e" + }, + "tests/game_sim/test_visibility.cpp": { + "mode": 420, + "sha256": "ad756975b6605a164f2f9106daf2511730642eff354a866bc764a93a4be1efe7" + }, + "tests/mars_parse/.gitignore": { + "mode": 420, + "sha256": "181314065df2f2fdaf920b1a8b5311daa216a2d6489a06ada5b49cc514d89417" + }, + "tests/mars_parse/CMakeLists.txt": { + "mode": 420, + "sha256": "898204fbc1cec44f697e2803c8bc4887857950ba2b1192dd153de74d26de0ea4" + }, + "tests/mars_parse/build_and_run.sh": { + "mode": 493, + "sha256": "550c6df5fffbd85cfffc3312a03a5fa9d59c1e0416e883ddc2576cdb73eac6de" + }, + "tests/mars_parse/canon.cpp": { + "mode": 420, + "sha256": "63e2bcfb2820e7533aa3a287bcec6c318f7238006dce61ad35381562b979cd47" + }, + "tests/mars_parse/canon.h": { + "mode": 420, + "sha256": "c9a78b866d62c4e58643de2c4149572380a1392b411049c8fe74e37475d21d9e" + }, + "tests/mars_parse/oracle/dump.py": { + "mode": 420, + "sha256": "16e98089d5b532e35d6b88b3d50b4bb07e879c18512cf8d06cc5fd2aa9da1117" + }, + "tests/mars_parse/oracle_check.cpp": { + "mode": 420, + "sha256": "5eb81a0c2db8f96c6f8e51246ea9991642e5571dd94dd2e410e2fad632d47adb" + }, + "tests/mars_parse/test_blocks.cpp": { + "mode": 420, + "sha256": "f376a57891a83768ecc8b73ef5eb2333291c280760f7581ead53f7c2a71a4df5" + }, + "tests/mars_parse/test_effect.cpp": { + "mode": 420, + "sha256": "8bb14e7c718e772bfb4a22a7370f41080c49beabfa597ddd603be257bc310011" + }, + "tests/mars_parse/test_main.cpp": { + "mode": 420, + "sha256": "e808f3e2054894da5481d549d93cc837daff61c7b049691f6e2ee453cec53389" + }, + "tests/mars_parse/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/mars_parse/test_value.cpp": { + "mode": 420, + "sha256": "a8dbe3326e5339cdad8fed7dd678df92e8a8b675d0b854f4cea6517bf557069d" + }, + "tests/mars_stream/CMakeLists.txt": { + "mode": 420, + "sha256": "31c69840e6e2e566d2e0bbaf49ab3dec712d27e505d0810ddf0496ce3ff321e0" + }, + "tests/mars_stream/build_and_run.sh": { + "mode": 493, + "sha256": "3737e42960b66e788a11cdd7fa9917fe255b6a4f60280e9f620593bf688aab41" + }, + "tests/mars_stream/oracle/compare.py": { + "mode": 493, + "sha256": "f39dd70e4bbf1952cf99e3437fd1ed6252249f3455a2d3c73311f98d8ff4370e" + }, + "tests/mars_stream/test_domains.cpp": { + "mode": 420, + "sha256": "08394777f7bc4186883cd02058f17fda8f47c3ee47049892bd8762c28b5aa959" + }, + "tests/mars_stream/test_rng.cpp": { + "mode": 420, + "sha256": "55f77273d8af5880f976a24fb00dcd8042b31a7a33f15c9f4b62fdb85bba9d0a" + }, + "tests/mars_stream/test_save.cpp": { + "mode": 420, + "sha256": "50250bb4b4f2da05f9453c541f080e018b68731f24cbf93278d50ca93ddd8d63" + }, + "tests/mars_stream/test_stream.cpp": { + "mode": 420, + "sha256": "d0da9ac2287910527bdac875ab39e0147a9be2f5535f04b55460438f31be2537" + }, + "tests/mars_stream/test_wire_schema.cpp": { + "mode": 420, + "sha256": "1cfd259f554be8218cb182dd1facc07f6cd3dea52f0daf7303393e78c7c2eb97" + }, + "tests/mars_text/.gitignore": { + "mode": 420, + "sha256": "181314065df2f2fdaf920b1a8b5311daa216a2d6489a06ada5b49cc514d89417" + }, + "tests/mars_text/CMakeLists.txt": { + "mode": 420, + "sha256": "20f8e0cfa044fb4e6b1caca0ec8d6536e012c1c4ea4454fe990923f40a201752" + }, + "tests/mars_text/build_and_run.sh": { + "mode": 493, + "sha256": "59ae392080c01be0c7f5530ecb9ae4fbdcc02366242b27527c14b8efd5076d0c" + }, + "tests/mars_text/dump_json.cpp": { + "mode": 420, + "sha256": "e246384902c3adf4fa8f2a54e38c4912f6b58f168ebc9b1e158a719e2a52b1bc" + }, + "tests/mars_text/oracle/compare.py": { + "mode": 493, + "sha256": "46a796196a413aa28a0069086e45c96399f21308153b578f063801eb997b54ef" + }, + "tests/mars_text/oracle/dump.py": { + "mode": 493, + "sha256": "53fde94f6676a5504a247cf209e2a42d67e108cc9ea0b02f289562799ee7d880" + }, + "tests/mars_text/realdata_test.cpp": { + "mode": 420, + "sha256": "a399ad5cf91cf35f78809f5b9b5cac8b2eff344dbfbab07b8b27bf66058e1e3b" + }, + "tests/mars_text/unit_tests.cpp": { + "mode": 420, + "sha256": "cd1e9e4f6e0e503d4d9b0902bd2936513293490cdc680f94639ce93661ca09d7" + }, + "tests/mars_vfs/CMakeLists.txt": { + "mode": 420, + "sha256": "282015598e03430be0f47b779ce7087662415b3a59de14814cb3ba35c17af363" + }, + "tests/mars_vfs/build_and_run.sh": { + "mode": 493, + "sha256": "b6a8e7b0706d7416f548f071e742e600cab226663f7d4ad42299dbb76f631701" + }, + "tests/mars_vfs/make_fixture.py": { + "mode": 493, + "sha256": "57586249e57550869dd5adfbc4fdab173a59d2aee630ba69c20d562018d249f1" + }, + "tests/mars_vfs/realdata_test.cpp": { + "mode": 420, + "sha256": "c95248ae53d32bd5d8cf963ca3a39ea82e5ef08b76de736104b6aa34ec88c789" + }, + "tests/mars_vfs/test_main.cpp": { + "mode": 420, + "sha256": "cdb7bdf9b9356eb0b7f6cb0fab081cda2161b34af14ecf60cc44970e79d517c2" + }, + "tests/mars_vfs/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/mars_vfs/unit_tests.cpp": { + "mode": 420, + "sha256": "de8da00718799886fbbc5820e0f7d0e468a31ab0608361fb509b0c12932c9caf" + }, + "tests/mars_vfs/vfs_cat.cpp": { + "mode": 420, + "sha256": "4a443e779de264f5c0c68a631b1a353b1310a4e838d342527befd8ad1e2a25bd" + }, + "tests/mars_vfs/zip_builder.h": { + "mode": 420, + "sha256": "a0f3688e5a90b7e209497d66d0dcd30a0e1ac59a56ffcbed31b2a50967c1da3a" + }, + "tests/shim_budget/CMakeLists.txt": { + "mode": 420, + "sha256": "88a0f43e433c3a6879a7f6cccf8c84ba4559009614a3fe5adf6c558ea7a47245" + }, + "tests/shim_budget/unit_tests.cpp": { + "mode": 420, + "sha256": "654e96d0880232d3090223a0d9f92f428aeffa528fbd5eca89d6bfe348aefce0" + }, + "tests/shim_colony/CMakeLists.txt": { + "mode": 420, + "sha256": "d7b2674971b0eda32b2edd62244c32af81cea9e6d984a24ca6648edbaea80e06" + }, + "tests/shim_colony/unit_tests.cpp": { + "mode": 420, + "sha256": "4cc41308c10fa1e6aa047fb6c26e4c655b727884bce87b5a9e8e2f76db665474" + }, + "tests/shim_events/CMakeLists.txt": { + "mode": 420, + "sha256": "2b43190a2ce88cf7227250aa5a3b48e3006d24f0d6f5e9a5e48507c2733e4c45" + }, + "tests/shim_events/unit_tests.cpp": { + "mode": 420, + "sha256": "0dc151a4aecb24217cc38cb818bbe760b3da2b08a23ad734b3fa8506d25fe2b4" + }, + "tests/shim_movement/CMakeLists.txt": { + "mode": 420, + "sha256": "46ffe5a9815b189283e4d5ef67a0dcd159f60da7f9ca4a3577669035fefdc1f8" + }, + "tests/shim_movement/unit_tests.cpp": { + "mode": 420, + "sha256": "ee6ee983aa72f078a7ae398ca5f828aba14370c898ae4e56063697d28919ad69" + }, + "tests/shim_player_turn/CMakeLists.txt": { + "mode": 420, + "sha256": "f6affa205f857d4a45f8be05ae0426b6f9a2e8e127f5aeadbac2ed8a4c4daddc" + }, + "tests/shim_player_turn/unit_tests.cpp": { + "mode": 420, + "sha256": "0a528cdf64904dfd22c94ea911a15213701e7912921f04c1909799e6e6240450" + }, + "tests/shim_rng_ledger/CMakeLists.txt": { + "mode": 420, + "sha256": "b6a349f2611ec1f1de2013145a97f3da59cefec81dbc4d2f3e58af507e598bb4" + }, + "tests/shim_rng_ledger/unit_tests.cpp": { + "mode": 420, + "sha256": "d38d80dd907a3468036dbca2b017718b199ab4a0078eb5e5b019b913a9ef8d8c" + }, + "tests/shim_techfx/CMakeLists.txt": { + "mode": 420, + "sha256": "5eaf9a76df6b10258a8c1d2658b03d97377d48a778a1628ca94c9bd69fa7ba8a" + }, + "tests/shim_techfx/unit_tests.cpp": { + "mode": 420, + "sha256": "99a71a6d0ca1f53fc8ff0bc21e79acd64ba2cd9c9f990641e5970c866794595b" + }, + "tests/shim_trace/CMakeLists.txt": { + "mode": 420, + "sha256": "91bc736e198c5cef86ad2ad69ca77d93ab770e5faecf9e6d915f9263b9ce491b" + }, + "tests/shim_trace/check.h": { + "mode": 420, + "sha256": "f4b72b971886c64383880ba26484f9c908d21f5902dff0de0b42f276b00d8366" + }, + "tests/shim_trace/harness.h": { + "mode": 420, + "sha256": "d7eae563723843c1389b108fe2efb2e31b6c264d23567a370a09fb9b1d513697" + }, + "tests/shim_trace/oracle_emit.py": { + "mode": 420, + "sha256": "29ed06c602e9f0d6430bb3c81192b1946213a3f44b91107f7036f35f17b69f42" + }, + "tests/shim_trace/test_coverage.cpp": { + "mode": 420, + "sha256": "8ed5b6d755fe7e2bc98d525e97bc7817a5efb7ed5f0196d49d1c783de3a91bea" + }, + "tests/shim_trace/test_diff.cpp": { + "mode": 420, + "sha256": "afd8e5124cf6e1ad9c4f3e4c2beeb65d00002cf1d4cbaa2e876fea0817a7a347" + }, + "tests/shim_trace/test_emitter.cpp": { + "mode": 420, + "sha256": "a9255bbc055df36a01931e8a61dd1dbf16085f7713db7e7386f66b69ddb10762" + }, + "tests/shim_trace/test_hook.cpp": { + "mode": 420, + "sha256": "4dd67374e260ba2722219c2e44e6be76e583d0ad65844f34859cff49b66a30cc" + }, + "tests/shim_trace/test_sha256.cpp": { + "mode": 420, + "sha256": "b55aa15dc806e3e4a87ddf50657fa4e0af6a4e4e2205c4bd63d1ae066fe57428" + }, + "third_party/minhook/LICENSE.txt": { + "mode": 420, + "sha256": "d5c2224982b0b95a16b098a561335fa93f3eaf4d0aa964b7843edb986df78dc8" + }, + "third_party/minhook/VENDOR.txt": { + "mode": 420, + "sha256": "c79054234a5340f6199f8d9f47d6b3d88e8abd2120586cd78f081cfb81a6fabd" + }, + "third_party/minhook/include/MinHook.h": { + "mode": 420, + "sha256": "e34bbf7b855c842694f6e3dd78e2d280e99ed9732501e3dc1532a8626a8db8e5" + }, + "third_party/minhook/src/buffer.c": { + "mode": 420, + "sha256": "75a789eb718bd5ed2de039ccd330736a31d0a2d14e43d8e15e6cd2332432482d" + }, + "third_party/minhook/src/buffer.h": { + "mode": 420, + "sha256": "9769702bd625249e59a19ede05c84365fcc7707e1fa0e5df08df42227cee13e3" + }, + "third_party/minhook/src/hde/hde32.c": { + "mode": 420, + "sha256": "0ddbc3ab3e0b37e61691131289a151e34f508233ccf3f701752777e5d3f62d68" + }, + "third_party/minhook/src/hde/hde32.h": { + "mode": 420, + "sha256": "5132de5be8ac7a9d054420f5caef0fb01437faa892f03b3cdc77f795973bf15a" + }, + "third_party/minhook/src/hde/hde64.c": { + "mode": 420, + "sha256": "9bf19dd706d4bc255ebd1709f98fb44899df7a1f2412820d77295136e0620f1d" + }, + "third_party/minhook/src/hde/hde64.h": { + "mode": 420, + "sha256": "e99aa4997bda14b534c614c3d8cb78a72c4aca91a1212c8b03ec605d1d75e36e" + }, + "third_party/minhook/src/hde/pstdint.h": { + "mode": 420, + "sha256": "604d1cdf45c5a95bc9cf1bbf39ca05ef83013541101d34971c5cd7577e3d5247" + }, + "third_party/minhook/src/hde/table32.h": { + "mode": 420, + "sha256": "43bf687a9fff071b5f46070db4d36c846f8e069cdc57485ee897c499aacdde23" + }, + "third_party/minhook/src/hde/table64.h": { + "mode": 420, + "sha256": "b774446d2f110ce954fb0a710f4693c5562ddbd8d56fe84106f2ee80db8b50a2" + }, + "third_party/minhook/src/hook.c": { + "mode": 420, + "sha256": "3060d3c42f03a2f11324cbee95d853071757ed0fe4b1bc9eb5f0d8fc9e346a37" + }, + "third_party/minhook/src/trampoline.c": { + "mode": 420, + "sha256": "d837f8555681c3762468d712c43f2064ed31dee610e0b02965fd8aa54b88172f" + }, + "third_party/minhook/src/trampoline.h": { + "mode": 420, + "sha256": "27426751dde36cdd8346469e61cdcca47950b1056a69f21cc63f4b41743faf6a" + }, + "third_party/miniz/ChangeLog.md": { + "mode": 420, + "sha256": "ff3b6040f7cbd8c9779a0690e906c66408f7efe3cf88a25019323f0189025ec3" + }, + "third_party/miniz/LICENSE": { + "mode": 420, + "sha256": "0115478d567121238cf6cc1c0c361926cf07a49d9e4c9e66da97fac6a01646b3" + }, + "third_party/miniz/miniz.c": { + "mode": 420, + "sha256": "e2c1aeb66eef9191d8c3feb164db2def2335a61d039bf04ed849f6b042433b30" + }, + "third_party/miniz/miniz.h": { + "mode": 420, + "sha256": "b53b62ed122e559b8f679e3cb787a0b0035fe87a58f909da0e44931678f4e85f" + }, + "third_party/miniz/readme.md": { + "mode": 420, + "sha256": "b4ea367be28a36e5386f65118b73962bc659a67936d248be68b7a7c03b8d359b" + }, + "tools/build-shim.sh": { + "mode": 493, + "sha256": "1da3fdcc019dc6495c870a42b93cee9f21ff7f9623f033c2f50d9db9fd6a33e0" + }, + "tools/check_shim_configs.py": { + "mode": 420, + "sha256": "ef5e8f100c06d8c485a165ab668206af3e9aed3e1f6aa6ffec2592419fc2332f" + }, + "tools/clean_room_check.py": { + "mode": 420, + "sha256": "e15bc3ebfd29c6e2d8edfc32cc812858869b49ffa1404cafce14c4c24e0f4e24" + }, + "tools/clean_room_check.sh": { + "mode": 420, + "sha256": "6646eb6010be756113f7af39b9cfcb06e8580893fbd100a41993f87757ccfd6a" + }, + "tools/deploy.ps1": { + "mode": 420, + "sha256": "fe01f46bedc91d7b42ff98cb0e69633845094cc2802108d23d48eb70f32e3f27" + }, + "tools/sync-build.sh": { + "mode": 493, + "sha256": "ce418ace6c5edae8609849233bb5dfd24657f55141c8ef8507659608f12aee2d" + }, + "tools/undeploy.ps1": { + "mode": 420, + "sha256": "5730b6f95f161ba5a727dc0a34f26da7f1f697711495d6a9de9c289ecd747af0" + } + }, + "manifest_sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd", + "path": "/tmp/opencode/sots-final-research-engine" + }, + "re": { + "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", + "files": { + ".gitignore": { + "mode": 420, + "sha256": "ba56b745b84c6d15b7288df65f319831fed3cbf8edd1ab3a6476418f48fd95f8" + }, + "AGENTS.md": { + "mode": 420, + "sha256": "e722b65480a9f72c2fde1c677c789d4f4b347ef9b450894e9f4295035373df7a" + }, + "CLAUDE.md": { + "mode": 420, + "sha256": "b3e3e5851645a05543e91f128eb6d349abdc6f22accfd997012526e4d35eaa8e" + }, + "README.md": { + "mode": 420, + "sha256": "e318014a84d03e53983cdb1e5b0310f372b959f659b91abc9214faf530544afc" + }, + "campaign/DASHBOARD.md": { + "mode": 420, + "sha256": "eb207987006a3a661bf05b24fc361e1dda74b7a7f42f4abf4a3788cb17a254e6" + }, + "campaign/README.md": { + "mode": 420, + "sha256": "dc702a81c2c664c07eb170f082deb65bc3ff24e2b80d892bb082c7c4feac64fd" + }, + "campaign/agents/analyst.md": { + "mode": 420, + "sha256": "895c41509016038b3f72c4a68608c4101511e69c5bf410e379286da1a6202952" + }, + "campaign/agents/implementer.md": { + "mode": 420, + "sha256": "eb5581051a92b3d2b9ddd947812b1c02ff6a0b5e7619e7674adc26701e9a3d91" + }, + "campaign/agents/lab.md": { + "mode": 420, + "sha256": "48f1765ebdcb2015e631ad91428f65735ff899e119134b652f70788ff2eae5b8" + }, + "campaign/agents/lead.md": { + "mode": 420, + "sha256": "7661bbfca972be50a52c735b7f15f5be740158542c3d0cdbdf9a6a2590c7f1ea" + }, + "campaign/agents/resolver.md": { + "mode": 420, + "sha256": "742c36dc8567669d462566d6121eed42fcff5bff34e8eff466e92249f7ca195f" + }, + "campaign/agents/verifier.md": { + "mode": 420, + "sha256": "e467fc644e4e37d631a7a4e35038d9d3d0498491f1d7811d61d99271ff345c6b" + }, + "campaign/backlog.md": { + "mode": 420, + "sha256": "a10edaae044e84ee4d26e7461b88e557112f572d60c57e0025171a53dd209a35" + }, + "campaign/board.md": { + "mode": 420, + "sha256": "040c12a20f5bf70b8e6a239efb205039d1ce00a805411ba194a12bde9f40c03e" + }, + "campaign/contract.schema.json": { + "mode": 420, + "sha256": "a2c76ec042ca097a57c3c05c1e519e392d498d387a31808c7d0f70482d43c201" + }, + "campaign/contracts/controls-bootstrap.json": { + "mode": 384, + "sha256": "2943d2281229c102dd612676428a9714510e540671c1e04dae3e6fa7ea1b56ab" + }, + "campaign/contracts/launcher-smoke.json": { + "mode": 384, + "sha256": "c0418dd22bafc321b2f800acaf574dca7956c37b239d789981b920d50ab36599" + }, + "campaign/contracts/research-completion-abi.json": { + "mode": 420, + "sha256": "a5cf5e4bbc5052aa13dc34b55ee65f2997f9342e0b01062e85ad2c16d99daf71" + }, + "campaign/contracts/research-replacement.json": { + "mode": 420, + "sha256": "1108d30bf7e28f30b2446014503fc3200a8b8198a8fab0b866b873a81bf7b8b9" + }, + "campaign/current.json": { + "mode": 384, + "sha256": "87661aaf5ddfbb872365dae8c531453a1e0cb7f91b3ada046be3e829d2555f77" + }, + "campaign/models.json": { + "mode": 420, + "sha256": "95f507237a8e4fcf14189da4aa102dfae1dbaa536d4d8db6bcbfc30162ac5443" + }, + "campaign/open-questions.md": { + "mode": 420, + "sha256": "efb1c736a07bff32e75e0eede20681c206e2c95f439dffe9824702cb864972e7" + }, + "campaign/pilots/research-replacement.md": { + "mode": 420, + "sha256": "3101b8959f28ba2c6ffbac02a82b5ae0e841e7d78bd1f40f05b9d1d2278490ad" + }, + "campaign/research/SESSION.md": { + "mode": 420, + "sha256": "258a2884486ee777fbd8ff180abf23a3a320b2981ee1e90b57d4e3efe18643f2" + }, + "campaign/rollout/RESULT.md": { + "mode": 420, + "sha256": "87aba912d66e2f7bd9779f86cbae3c78d64b1be2572db02ac39fc70c750cb79c" + }, + "campaign/rollout/architecture-decision.md": { + "mode": 420, + "sha256": "8c710f390671500386745d063d6cb6edb175e6e26572286334d2f14a36be6d41" + }, + "campaign/rollout/controls-followup.md": { + "mode": 420, + "sha256": "44d0c95978cbc0953d6b1feab4463b29fab68c9d8dad2eca5fd562bb5aee1578" + }, + "campaign/rollout/controls-worker-state.md": { + "mode": 420, + "sha256": "02ff66f3f0fa978819e5c100e24cfd3752b9041590e2aed36f6abd62ce790f4e" + }, + "campaign/rollout/controls-worker.md": { + "mode": 420, + "sha256": "d022483618d3c3412785ba40e71106976c9b1c9978c43e424e3023a67b8b3f0f" + }, + "campaign/rollout/controls_evidence.py": { + "mode": 420, + "sha256": "bfaf4e523b2ca39c0ecdab94adf0b2b19a3da68aab8a0fcba69a613aed46588a" + }, + "campaign/rollout/engine-followup.md": { + "mode": 420, + "sha256": "d3d289fb4e4cfb7cf1ab6c3de597f530eafd27d3b1aa2f3e8904d6da3a95ac44" + }, + "campaign/rollout/engine-worker-state.md": { + "mode": 420, + "sha256": "76601fa42c95bd7d78ce46f528a33ef0483e0b7f2e19a1cfe1cab8e560bed05c" + }, + "campaign/rollout/engine-worker.md": { + "mode": 420, + "sha256": "fd8bbe69947b69baa61449548d5746723c941ad8b663ec66d1b278234bebe5b2" + }, + "campaign/rollout/formal-verifier-state.md": { + "mode": 420, + "sha256": "2fbac02f5f22b45e94ee33f9f53779fa059c5e93282d3c2f5ad0af027029a1f4" + }, + "campaign/rollout/formal-verifier.md": { + "mode": 420, + "sha256": "f961ceaef0037001e6576d760e28e7aded0502f3d8311925e5ed1cc537c996dc" + }, + "campaign/rollout/gate-followup.md": { + "mode": 420, + "sha256": "677f17aef214e7a6c92958dd8ad98137b238cc7fe7c1da23bcf36d727f28f7c8" + }, + "campaign/rollout/gate-worker-state.md": { + "mode": 420, + "sha256": "96514befccc589487ac3b6ff9348106aca2e4e8e3aa348471943d589c74629e2" + }, + "campaign/rollout/gate-worker.md": { + "mode": 420, + "sha256": "55db7c5f637d849fb2f200ab12c35a794c86e377a5de3f562b1c32455583e65f" + }, + "campaign/rollout/housekeeping-completion.md": { + "mode": 420, + "sha256": "a25041ebaeb030f1cfc62564b5bc57a98818ea75e082f28036e9cc367096ccd1" + }, + "campaign/rollout/housekeeping-followup.md": { + "mode": 420, + "sha256": "5759aaf403c019173450822dc5e9d4aad711a7497eba906caea39bdb39bd3702" + }, + "campaign/rollout/housekeeping-worker-state.md": { + "mode": 420, + "sha256": "5ee9a48a691709af325994fd3d44a1ac6e40d05f26e09b03ae7efec2ecbe25cc" + }, + "campaign/rollout/housekeeping-worker.md": { + "mode": 420, + "sha256": "bab8219fadd0688e91d6211478a01403a36ae74fd2b6f7df0ad5c8745a542ca9" + }, + "campaign/rollout/independent-review.md": { + "mode": 420, + "sha256": "a7a8ebcce5202db0e67c8c65135df751e69ee6728c4c2ced92e1cc85b4279f22" + }, + "campaign/rollout/lead-state.md": { + "mode": 420, + "sha256": "3ded5b3f97d7882f72abef5ea268765a5db29c8b619486c153f5c92742040c01" + }, + "campaign/rollout/publishing-worker-state.md": { + "mode": 420, + "sha256": "641977e4d0ec400a3a6c38121ae5e7904aa1accc47179ee148ad7cb199029b0e" + }, + "campaign/rollout/publishing-worker.md": { + "mode": 420, + "sha256": "822812fbc803d443fb7e0855268c34224eda29f95e57274c217275b09ff4410f" + }, + "campaign/rollout/review-followup.md": { + "mode": 420, + "sha256": "853e3b5aab09cd77fd54cae6d8a61fb5ae092603ab2be8dee2db6d80492a6443" + }, + "campaign/rollout/review-worker-state.md": { + "mode": 420, + "sha256": "a704e6023eaf3424761bf431e49687ae1f1d687119fe00a466b9da2d9ef7bd42" + }, + "campaign/rollout/review-worker.md": { + "mode": 420, + "sha256": "0e348015440aabef95766010f14880619d34a472102698c9819dfbb029b8a6c8" + }, + "campaign/rollout/sync_verifier_snapshot.py": { + "mode": 420, + "sha256": "4133e536bfdb0e206ecdfc072062e7674b07b973c7f8b9d7f1a268520523d6eb" + }, + "findings/.keep.md": { + "mode": 420, + "sha256": "141ed928eaf10a2023dd2c0ff6ea68cf6ec423cfd28d5a359d9c5add730bf64c" + }, + "findings/00-strategy.md": { + "mode": 420, + "sha256": "3bc97827988c6eb4647713c5655271e156dfa466fad5685924010f3244fe6386" + }, + "findings/01-fingerprint.md": { + "mode": 420, + "sha256": "7cf0503c29f5beff852427c2c5bdf8e9d968386de777c47b6130771cac944cac" + }, + "findings/_template.md": { + "mode": 420, + "sha256": "b92d0ca7bfef4498a5f9e594453f15ab15e2c88c7582c4ed5df4c40e6871c3b1" + }, + "findings/control-flow/ai-visit-order-probe.md": { + "mode": 420, + "sha256": "e89f91a33139014ebdc22d79064ecfd06f9b4ffebb4bbc3da73734fc47534047" + }, + "findings/control-flow/alliance-mask-and-modcount.md": { + "mode": 420, + "sha256": "ec66c6b76d9e4c8bed385acf70e6a7d5da08e05eca72ac1e8e5cb307d87f2552" + }, + "findings/control-flow/combat-done-tail.md": { + "mode": 420, + "sha256": "799ace775f12ebe9a2737a711c8d0a6e617f0cefec70b93bf094e47cf81cc348" + }, + "findings/control-flow/combat-resolver.md": { + "mode": 420, + "sha256": "abf1a9329c1bd8a96c76481246a00b380e9a17fa8dc8900810218026e5fe1b9e" + }, + "findings/control-flow/combat-retreat-pipeline.md": { + "mode": 420, + "sha256": "6c40c8bdbdde672c9cd67248d740d88892ad2b93b30e27e9bebe0e96027cf136" + }, + "findings/control-flow/fleet-visit-order-mechanism.md": { + "mode": 420, + "sha256": "a2ea1a6ac9d383380e16910cff89dff0e9b23f1df66f47ef91dd266bd50b3a6d" + }, + "findings/control-flow/gate-indexed-rng-audit.md": { + "mode": 420, + "sha256": "5004b2480787eec7be66f40474648030fdaf7759087a4c4651091152d89351cd" + }, + "findings/control-flow/hive-creation-rng.md": { + "mode": 420, + "sha256": "5ff37d571c0380c798a137e0c6947a0c63109de489fd2100c99bfc6637fc272b" + }, + "findings/control-flow/indirect-edges.md": { + "mode": 420, + "sha256": "3dbf2acf7354f61de66348fe40965f3138dbc4bbff8cb0f06b2751e71ed06ee1" + }, + "findings/control-flow/inlined-draws.md": { + "mode": 420, + "sha256": "3b099718543d7fb112664699749602ff9d61de9aaebb561fc93f1f8b7a152134" + }, + "findings/control-flow/per-history-residue.md": { + "mode": 420, + "sha256": "739c7fc760583ca143036ce554e1eece640d1662fba4642e6f80fadd3dad13f9" + }, + "findings/control-flow/pinned-seed-rich-turn.md": { + "mode": 420, + "sha256": "7c62336767b7c69f513446543f37662ba2a0872e207b906279446bbe399d65b6" + }, + "findings/control-flow/raid-gate-multiplicity.md": { + "mode": 420, + "sha256": "6d7b7357be428ff79186478dc37063657ca4d8e2ad49fcdd92493753748a52f4" + }, + "findings/control-flow/raid-intercept-species-word.md": { + "mode": 420, + "sha256": "1da80eb14f0e3e5a0ce139f62976bb305e3e75a1e5e0631d8287f94eac093d8f" + }, + "findings/control-flow/raid-intercept-z-word.md": { + "mode": 420, + "sha256": "beb421953b70377c8c759f5cc936321faa6316be76d41020b41f26c99706acb3" + }, + "findings/control-flow/raid-target-pick-verdict.md": { + "mode": 420, + "sha256": "d0262a4187e35547b28d6be842e7c730aa3ee93565404b587a790706afabd694" + }, + "findings/control-flow/seed-exposure-forward-test.md": { + "mode": 420, + "sha256": "f108a07ce695b64c482af58db4caeb2607059a3357b62f04f7f36ce45c84ff4a" + }, + "findings/control-flow/standalone-generator-and-turn-record.md": { + "mode": 420, + "sha256": "e499f62534580f27c2a01395e08312ebc7df13bdd307342096f468212aec600b" + }, + "findings/control-flow/standalone-scaffold.md": { + "mode": 420, + "sha256": "0bf928260d5058815a2f09c4df8c08eb359430aeea941f872018de7cbca39105" + }, + "findings/control-flow/tail-probes.md": { + "mode": 420, + "sha256": "ae45e84a9c7f257170f7550301fc4e1a35d5210269bda8070469a5c921cce95e" + }, + "findings/control-flow/tail-rng-ledger.md": { + "mode": 420, + "sha256": "2db588423e7b7de7729e5319477c17fbcea5b7a9cb8ff00b01cfd72bfce25403" + }, + "findings/control-flow/trade-raid-rng-gate.md": { + "mode": 420, + "sha256": "85c7b27aa284988b07b5e67c8e48ef1725289f1a6956d88be2572577cc06e1bf" + }, + "findings/control-flow/turn-driver.md": { + "mode": 420, + "sha256": "3f4e92041a0842d211ea9ae1ae16a9fe400dacf9632209102a1f76acc6b30792" + }, + "findings/control-flow/turn-spine.md": { + "mode": 420, + "sha256": "e2a64f82e5dececb4ba56859d1e53a0f720e08472c79c39197beba7f6041811b" + }, + "findings/control-flow/w3-containers-status-handlers.md": { + "mode": 420, + "sha256": "fffbaa6e3701abbe57a54046416a102502afeaa29b14632f9506905c22bf3914" + }, + "findings/control-flow/watchpoints-modcount-status.md": { + "mode": 420, + "sha256": "0aec4c93ca7219e29827a5069a9829d5e58da2001e79a7316bce288d3e9a6c7d" + }, + "findings/objects/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "findings/objects/00-inventory.md": { + "mode": 420, + "sha256": "cada5fc81c42cb50878a26e43a58640153c600319e66d4c92a23d7c363ff5f14" + }, + "findings/objects/aiagent-block.md": { + "mode": 420, + "sha256": "55d646ab57e90477993d263399254a3b103024d89fff42491b7df5cf4ffc8037" + }, + "findings/objects/classes-game.txt": { + "mode": 420, + "sha256": "e0eceb77c56e05bc7863d3a07805d703fc0ecec489ef24fabe7c6161f2835199" + }, + "findings/objects/classes-mars.txt": { + "mode": 420, + "sha256": "b624f7bd82a5277462a39627140a85c7a7929fd292b62e45edb5c96fd53b6145" + }, + "findings/objects/ghidra-recon.md": { + "mode": 420, + "sha256": "ca4b043a73c1d5573aa0c83cd3942db731884910c90e7d8544c8a32c939e2fda" + }, + "findings/objects/rtti-raw.txt": { + "mode": 420, + "sha256": "39f6fdf8793f8202c19cfb87a75466b215254a13050ec37c0c496699298247ad" + }, + "findings/objects/save-editor-structs.md": { + "mode": 420, + "sha256": "835d4fbf154275542383ea499a527c044ec7d577486c2735b817bd32d6e0c853" + }, + "findings/objects/schema-gaps-resolved.md": { + "mode": 420, + "sha256": "9ddae36eb8e3ef909c4902d01200fc8a17335271e4e063939ae162a3eea5bb3a" + }, + "findings/objects/serializable-types.txt": { + "mode": 420, + "sha256": "59c2f3942f55eb3f6687758a4c447b1ed8902caa60b97d9619bb8228e27c6838" + }, + "findings/objects/serializer-struct-recovery.md": { + "mode": 420, + "sha256": "5b56d8e1a5047d602cea7a76227f30e17244057fe21fde3d4e2cc76e9f185416" + }, + "findings/objects/ship-design-catalogue.md": { + "mode": 420, + "sha256": "feded2191180e184d34d4992935dc117bff8d052e8a2c63ecc29fa7b2e6b561d" + }, + "findings/objects/struct-recovery.md": { + "mode": 420, + "sha256": "4e99ef972529101f5700b52845e263fb3789e0b82d8cdeca921f1595a24d92db" + }, + "findings/objects/svsctob-variants.md": { + "mode": 420, + "sha256": "89617cd2909f2242e9e1657fd4a8f5aafe5aa0c1e0e9bc8926fb67c1e830dd2d" + }, + "findings/objects/svsctob-writers.md": { + "mode": 420, + "sha256": "7a9b7f3bf4eae63cf522246227410b2e3ca789284b7c620f01550fadf479622c" + }, + "findings/objects/turncommands-block.md": { + "mode": 420, + "sha256": "8eca2b79838114e7ae46d34c6e75eaf3b04c0448d9896ed4219b118f09e83046" + }, + "findings/objects/wire-schema-channel.md": { + "mode": 420, + "sha256": "31f0fc4e1cc3c3e7ef938aa22ad65cfdec32be4f1ade476a7ebf32c3c6f07d6f" + }, + "findings/objects/wire-schema-closeout.md": { + "mode": 420, + "sha256": "bbae848b4f8d6d0f2a914268ac34e75b4cea483f52816916202f3bd3cd084255" + }, + "findings/objects/wire-schema-ratchet-debt.md": { + "mode": 420, + "sha256": "0d144181478a607f2474a7c8a1b71ca49c881ef6fd068b5e8859c3fa8129507a" + }, + "findings/resolutions/2026-09-08-ai-seed-per-process.md": { + "mode": 420, + "sha256": "0765bdaeade29122ab5e64493f3a7c339f1e4c4445192ed09ae3d229dd6ae943" + }, + "findings/resolutions/2026-09-09-fleet-id-order-residue.md": { + "mode": 420, + "sha256": "b3d63a11e8ebd55da4af15760d044607b6105216898a018f5ceebc94750817e8" + }, + "findings/resolutions/2026-09-09-seed-exposure-is-a-predicate.md": { + "mode": 420, + "sha256": "dd7ce18738a625b9008ef80783bd64fc3857852775ab3b784b9e5f4fd5ae7de1" + }, + "findings/resolutions/2026-09-09-tail-draws.md": { + "mode": 420, + "sha256": "ff86a332ea9f87bd6f42a0b64e837e6f6f5876423ae9403a903aa9bfe7c42678" + }, + "findings/subsystems/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "findings/subsystems/ai-client-seed-is-per-process.md": { + "mode": 420, + "sha256": "5e6de0418588ff28cee29cb9affd69c3183819318c314eeb0771bbe810e6b4ed" + }, + "findings/subsystems/ai-order-capture.md": { + "mode": 420, + "sha256": "6efebf9f00b375d2c7f29ddeb24ef7a04e3b02cac9027369b490157a196d08ce" + }, + "findings/subsystems/ai-order-emission.md": { + "mode": 420, + "sha256": "9e54a13a18387a4f93acc5c66dbf71d365c81f1a8e6d2aee31f7a89712894ace" + }, + "findings/subsystems/ai-stepping-and-passes.md": { + "mode": 420, + "sha256": "e7e2fc612457a4e77df362aea2928d20fa5a2456fe12a7fbafeaf3c9e01c1dc1" + }, + "findings/subsystems/ai-task-system.md": { + "mode": 420, + "sha256": "577f8fc41256ebdf9629f1e30df9aac7f51c1a84b55f60c2b59e4af4c55126b2" + }, + "findings/subsystems/ai-turn-logic.md": { + "mode": 420, + "sha256": "79e9b7c9592d583db7b9d9ce472804038a71febf7527bd69e31b3399caeb0770" + }, + "findings/subsystems/battle-load-profile.md": { + "mode": 420, + "sha256": "3cf8e28925ebbb162bca9c3be9e6b2599c82ab6aaf9a9d99ffd9c934bf773c77" + }, + "findings/subsystems/data-model.md": { + "mode": 420, + "sha256": "f01c9bfcf8ed9fbf9fdd30556308a1dbb1094896050cc8a5e4fbc1c6c61aff78" + }, + "findings/subsystems/data-parsers.md": { + "mode": 420, + "sha256": "6a428c14279ac2c589b4af932e762ef7e3ada1a878128527b8d88858c11fbc35" + }, + "findings/subsystems/determinism-oracle.md": { + "mode": 420, + "sha256": "4fe0abad0b1b825392cd47b792d06756742495f26ff40a6a433d8608b4680bcb" + }, + "findings/subsystems/eventlive-verification.md": { + "mode": 420, + "sha256": "8bfcc75e57ddf88ec8a4b8885f033be8ffd420965077ab284b1ebce535ecf1a0" + }, + "findings/subsystems/events.md": { + "mode": 420, + "sha256": "c5d6e168d6d48eabec0ae0a448f9c3ec8d0f751a67fc320bc1021ba10008a3bf" + }, + "findings/subsystems/formula-gaps.md": { + "mode": 420, + "sha256": "63ec96a27fac5381d33cdce3e549d230bd5b0230e4d8573f4f3d45bab7d47ffc" + }, + "findings/subsystems/fpu-precision-sensitivity.md": { + "mode": 420, + "sha256": "4cf84e2a1c3d0eaaf9b3a7f218ad663ffa6984389b2a25851249733ad708ff8f" + }, + "findings/subsystems/golden-trace-recapture.md": { + "mode": 420, + "sha256": "b244f939b87dd464d78d919675c0e6aa010b0ec7b4fc6e4178e26c2c8ebee738" + }, + "findings/subsystems/id-allocation.md": { + "mode": 420, + "sha256": "b04a14a5a7d4d1c6137c4f9072987eebc997421e550881dcc2c8e386187f5b90" + }, + "findings/subsystems/income-term.md": { + "mode": 420, + "sha256": "c40286635675a91ce779b887a0394e92f946844873a778015efb98c4a105b67e" + }, + "findings/subsystems/loader-prototypes.md": { + "mode": 420, + "sha256": "f1d09471d5e17c45413b86805f561329f5af24eadfb17c3c740686c39b167ed6" + }, + "findings/subsystems/money-chain-float-widths.md": { + "mode": 420, + "sha256": "99bded6f2d34a713bc175deb4ad5ab4559ce1cc90274b036c1818ad8257c2fef" + }, + "findings/subsystems/movefleet-position-rounding.md": { + "mode": 420, + "sha256": "12dbdc03658cb042b5927586769dc9c19fc2eb812f703e73bf26273f8b0d65a6" + }, + "findings/subsystems/multiplayer-combat.md": { + "mode": 420, + "sha256": "2f4957011b5c5875b8aa7f71531dd5dfe3fd8df4f2c67a7be2fb5999f090c02b" + }, + "findings/subsystems/multiplayer-gamespy.md": { + "mode": 420, + "sha256": "a878e97775d27e085e58b18eaf5a67aaa522456d1055ca142f0477e3d6152d47" + }, + "findings/subsystems/multiplayer-tier0-verified.md": { + "mode": 420, + "sha256": "942ce29cbe22d8f7de5af54f2017c0433c7b8e1a56c864868ec906ffcbb9059a" + }, + "findings/subsystems/nav-classifier-live.md": { + "mode": 420, + "sha256": "b8aacdea8072a99ba1192e235088b372180f094795baf164e8cb95bd2df9f3b0" + }, + "findings/subsystems/nvo-tshn-visible-owner.md": { + "mode": 420, + "sha256": "ef96bb61769c02affd7148cd95e70bf358cbe6263fbe9b47aba6cf4cfa8486ad" + }, + "findings/subsystems/observedtech-append.md": { + "mode": 420, + "sha256": "61efcf51bffe53b8a10a2cdb8123db3f8c55b6874db87418fc31737efedaa652" + }, + "findings/subsystems/output-term.md": { + "mode": 420, + "sha256": "9eb9ff58a1d4cf34d3138f5044788b6f87ff4c94fa871b2dedd6ff6667196533" + }, + "findings/subsystems/output-turn-path.md": { + "mode": 420, + "sha256": "4e199e5cc14802c1b14b37cff0c1359b43aca94dab833f9024c7825c4c512588" + }, + "findings/subsystems/path-solver.md": { + "mode": 420, + "sha256": "3e0e318d45e14f844831c4180e47011263f64067dacf3249742882186d65cf18" + }, + "findings/subsystems/players-residual.md": { + "mode": 420, + "sha256": "e2f56c7983856470d37cd0fba4834a0ccb34dcaddbaf9acaf5dcdc253c6b3507" + }, + "findings/subsystems/population-growth.md": { + "mode": 420, + "sha256": "c2ec2f062e1224045b761640549e7374336ac762bd61c686a0c1378ad829a993" + }, + "findings/subsystems/rcex-explained.md": { + "mode": 420, + "sha256": "df7c9de6f02c1bd38f69e3a5344ec663d97b1d6b738ff408dfdeb0e2f6175b32" + }, + "findings/subsystems/relabel-new-ids.md": { + "mode": 420, + "sha256": "562ffe347adc6432a7824bfa2b324b6b1812b4fcc18343f0732c0f3d9991be20" + }, + "findings/subsystems/research-replace.md": { + "mode": 420, + "sha256": "d0f692cf687a7fe6aab62fc5d7d076eb595e1c33fd84c6f1e437ed01025cab4b" + }, + "findings/subsystems/roll-parity.md": { + "mode": 420, + "sha256": "7d97d7e5eee7b9f135e32b6553bb94ca83fd05b1eca7d18c42e9d65cae4d95d1" + }, + "findings/subsystems/rung-b-rich-turn.md": { + "mode": 420, + "sha256": "44378c6a305a82b2d131270fa5d97fdcd8a7fd5c9760ecbad7715383eac2db68" + }, + "findings/subsystems/running-the-game.md": { + "mode": 420, + "sha256": "f6109f69c6b86e4cf01d0f2e1f8be9921ff632513bca5d9e44e7f6c34f1cd260" + }, + "findings/subsystems/setresearched-cascade.md": { + "mode": 420, + "sha256": "9c079de161a1d1387339b8e8081395c1356c1443a0c898942acfb6efb65a454f" + }, + "findings/subsystems/ship-construction.md": { + "mode": 420, + "sha256": "86f570b1872c8dfac3982d1d7335f4798ccbd1bfd73c91d481afba2734c41216" + }, + "findings/subsystems/ship-design-composer.md": { + "mode": 420, + "sha256": "639b276e9205aaf6c90d9c458a383cc073e89f401ef8f17f8ad5a8a0c5899fa8" + }, + "findings/subsystems/snlv-measured.md": { + "mode": 420, + "sha256": "785324d176be969e1809090acd6b7a48d27f4fa41472c0d9c6f568c0b3a1e539" + }, + "findings/subsystems/spy-detection-roll.md": { + "mode": 420, + "sha256": "214179f5091408ef01ce4b80565068cb9a0885d1c6a233cda476280b9bf29c0a" + }, + "findings/subsystems/spy-program-draws.md": { + "mode": 420, + "sha256": "0c61c2f9cc767ae679921bfc42ef9a207ec9a6e0dc88419a673a8e439f1abfc1" + }, + "findings/subsystems/strategic-turn-internals.md": { + "mode": 420, + "sha256": "3a5c17e025d4968db6030f8ef1daaa2b03ccd4def12d35cf3a0eabcb0b5cbb54" + }, + "findings/subsystems/strings-and-config.md": { + "mode": 420, + "sha256": "67aefda7792e329b7df3f6e8cf42c7bae7049867cdda0741e871b183bc528786" + }, + "findings/subsystems/system-visibility-prediction.md": { + "mode": 420, + "sha256": "b420526ca0410bd4578dd2ed29cd9a21ed3578d6345d9f853a883e0159c1f89c" + }, + "findings/subsystems/system-visibility-record.md": { + "mode": 420, + "sha256": "d2843e10c156a7c85d7dab40d00204475fc725dc9b93656f6cde941ceceb5f51" + }, + "findings/subsystems/t34-observed-designs.md": { + "mode": 420, + "sha256": "207641821a55f5671749b000d478afd9e427336e2d123a55ad2203f34dfaa796" + }, + "findings/subsystems/tech-effects.md": { + "mode": 420, + "sha256": "7423f1e2cb2a597738b244d58bdf467431ee5de725ac434b904676ddcbcfc609" + }, + "findings/subsystems/techid-name-map.md": { + "mode": 420, + "sha256": "cfd92a7885dad3775465fc0c5b40aeb1749499f90071b44855ab8e1746d5f752" + }, + "findings/subsystems/trade-and-spy-workload.md": { + "mode": 420, + "sha256": "147057456fa30b6218df19679abab1ac31b78276a4272d221b70776e154396ba" + }, + "findings/subsystems/treaty-turn-stamp.md": { + "mode": 420, + "sha256": "fa0a8588847cc2b9e92cddeca65fd00fe3d84a00a1034d9354053c7e6cd9ceb5" + }, + "findings/subsystems/turn-command-replay.md": { + "mode": 420, + "sha256": "b65fa3c3c01c67bc16ec488e4a44e6c748256e941c80987528b7602038a56e07" + }, + "findings/subsystems/turn1-to-turn2-nondeterminism.md": { + "mode": 420, + "sha256": "9ebe834fa0f7c1cf864032ec67da76730ed6c239d6bd3a717f147490116acc4d" + }, + "findings/subsystems/turncommands-capture.md": { + "mode": 420, + "sha256": "a57fd2a77784fef1b176749878b161c4f04ac77c1f4a061a6b713787d92fb9ef" + }, + "findings/subsystems/ui-screen-map.md": { + "mode": 420, + "sha256": "d266285e3ca99ba3b5ebbab47c78f3df247a8b539c0519c6fd27a999b9d6f84b" + }, + "findings/subsystems/unlock-cascade.md": { + "mode": 420, + "sha256": "38d29a9484aa3910f5a62b5dd08225ba590bf26901203c5aef1b0b466fbbc5fb" + }, + "findings/subsystems/value-domain-census.md": { + "mode": 420, + "sha256": "bc99139708aee5da4cafec585fc35ab3523b51571518038db19b5f1383c6a6c4" + }, + "findings/subsystems/writer-byte-exact.md": { + "mode": 420, + "sha256": "a0e91a90d2ae78328dbaef30b37d53037cab26489e4729413bcfebbafcab0978" + }, + "ghidra/addresses.d/README.md": { + "mode": 420, + "sha256": "cf2745d5d3e504725ae5a296dc20e3d63b8d32a903445aafe2af61828a6d59c5" + }, + "ghidra/addresses.d/ag.json": { + "mode": 420, + "sha256": "24d5b11779364cf198008b143c7a3a092117ec4a1530c489497dbc8acdf62d8e" + }, + "ghidra/addresses.d/ap.json": { + "mode": 420, + "sha256": "e37f478836eb297f9cc5186cd7df3f5942abc4b6396a4d2866e613841437f778" + }, + "ghidra/addresses.d/ar.json": { + "mode": 420, + "sha256": "8d8620be8dd807a610ff63c0d77cbf266f3d9ce272158991d1f55d9c9910c248" + }, + "ghidra/addresses.d/as.json": { + "mode": 420, + "sha256": "08a869ab9466d4b575363cfb6fc084ca72cdc05d509c5d87e658a9a9977a7ae9" + }, + "ghidra/addresses.d/az.json": { + "mode": 420, + "sha256": "60b9a169605ac171cffb848024141c9224f6897bf69b547b9a4f2b5ddfc8d835" + }, + "ghidra/addresses.d/bu.json": { + "mode": 420, + "sha256": "79037146ba621e43e561bcf0577afc25b2ffac4ced44c902d2ea8ed9171b1bb9" + }, + "ghidra/addresses.d/cz.json": { + "mode": 420, + "sha256": "35de20ff0e38d05b5c58c89690dfc81ce44eb280a2a594ae862e55d56edb5d3c" + }, + "ghidra/addresses.d/dn.json": { + "mode": 420, + "sha256": "c41f877a37bc864f8f315a47b720ac204c22c25de405f4de63b845180641eba0" + }, + "ghidra/addresses.d/dt.json": { + "mode": 420, + "sha256": "580762e01175fb7246d0f9214e4ed9ba16bebcdb82ad1525fd1f77c0910c660f" + }, + "ghidra/addresses.d/lane-a.json": { + "mode": 420, + "sha256": "fce5f06866bddc6bca095d53e376495103dfd8900ad7da0d0d6731f105915d71" + }, + "ghidra/addresses.d/lane-a2.json": { + "mode": 420, + "sha256": "1207088eb2ae041afc2618a627029e25f578ae9fe8db73bb9efb616f39c34bf0" + }, + "ghidra/addresses.d/lane-ac.json": { + "mode": 420, + "sha256": "02a1c2f01ca0d11a7c38d416d94fabaea64b5c5919f6ceaead83430fb398710e" + }, + "ghidra/addresses.d/lane-ai1.json": { + "mode": 420, + "sha256": "134a0cb87b95bf5f39ed015bcdf64c6e8da6b22e073d5b5487148cb5421addff" + }, + "ghidra/addresses.d/lane-ai2.json": { + "mode": 420, + "sha256": "e9d94ce026231d420538400fa9c73fa8a2fa882d16f542c6b8ce2c34014acda6" + }, + "ghidra/addresses.d/lane-ai3.json": { + "mode": 420, + "sha256": "89c29e1bbb1159b7b6fb4fc8c232902f8497efc82290aba6f50c9c9097feec6a" + }, + "ghidra/addresses.d/lane-ai4.json": { + "mode": 420, + "sha256": "78b7897d3d2678ddbff7cd982bfa7d93a0c26817846a148fd3f46790fef9d7fb" + }, + "ghidra/addresses.d/lane-b5.json": { + "mode": 420, + "sha256": "641c724d1fbf28f5469aac488401ea2f92bdd3b929fbf053ddeef0ba5b8de9da" + }, + "ghidra/addresses.d/lane-b6.json": { + "mode": 420, + "sha256": "b2b2833220e3a645efab2b767f1d93d1215a54d195e28e6743db8f1d89934697" + }, + "ghidra/addresses.d/lane-c3.json": { + "mode": 420, + "sha256": "b732932503c181c77bb14ba0136379c8fa3501d0c1471b02d9bca7d023bb5f5a" + }, + "ghidra/addresses.d/lane-d2.json": { + "mode": 420, + "sha256": "8b5df39fb5eea0cd40dffc20aaccabe169f5472171dfd242ca2e75dfc4ca608c" + }, + "ghidra/addresses.d/lane-e1.json": { + "mode": 420, + "sha256": "cb38b41b747bf74ee73fb7eaa301da4bb896d089fa1dea4197382e94940c7f69" + }, + "ghidra/addresses.d/lane-e3.json": { + "mode": 420, + "sha256": "a5fe9dbb37ee587bf36a311771bbc9d8dcaa4d4fcc0b420b8f45829929b0ff98" + }, + "ghidra/addresses.d/lane-ev.json": { + "mode": 420, + "sha256": "b243d31bcd69bfb1e5928ba8b70e958e559c88ee5190ca34e569f217a784798c" + }, + "ghidra/addresses.d/lane-g2.json": { + "mode": 420, + "sha256": "84401f05c5cf2ca0839e817877892e904b3fd2fd4175607abc34453acd8ce822" + }, + "ghidra/addresses.d/lane-g3.json": { + "mode": 420, + "sha256": "d176eb4a07bb6b98acea77e1a0a9904d317a594768ecf8719bbfacbdf6522729" + }, + "ghidra/addresses.d/lane-h.json": { + "mode": 420, + "sha256": "e8cffe89c7feb1d9fa1949f33aff01edc7b84b49ab752275662f6f613c16c0b6" + }, + "ghidra/addresses.d/lane-i.json": { + "mode": 420, + "sha256": "a4c482ff6fee78e96da3400b9ba7d76b58634a5933ff388db5993a1b105c8aca" + }, + "ghidra/addresses.d/lane-id.json": { + "mode": 420, + "sha256": "3f48c9b2e2c3a08e13a856bfb78d551af17f5a1a1079f03f8edbf4615f17ca7d" + }, + "ghidra/addresses.d/lane-j.json": { + "mode": 420, + "sha256": "4fd95b08fee60a2748995cb082fe50d61e7179ae90b106f230bfc5c55a35660d" + }, + "ghidra/addresses.d/lane-k.json": { + "mode": 420, + "sha256": "f6ead3ff256fd2e1408d52bfa28e308f106ad672b3fe1cce0d136faac351136e" + }, + "ghidra/addresses.d/lane-l1.json": { + "mode": 420, + "sha256": "ecbab4a1b602beefd6889effc4883b7f7de01afabb7c5c071bbc4e2237e9131b" + }, + "ghidra/addresses.d/lane-l3.json": { + "mode": 420, + "sha256": "eabb96253bee36c799f1eb89108e284162606cfdc5e9bd29dbf7b5f88ee88adf" + }, + "ghidra/addresses.d/lane-l4.json": { + "mode": 420, + "sha256": "5b2b54d2f3e123e352e9a2b0f1d80fc8afcdd0b97916a94ee5a62ddc03b0ae75" + }, + "ghidra/addresses.d/lane-l5.json": { + "mode": 420, + "sha256": "cedc4869149212d401c519c46fa3f02769f9c939fc560fe8d35cc4f898091482" + }, + "ghidra/addresses.d/lane-n.json": { + "mode": 420, + "sha256": "6987efa430f2da8987e42e61e53113f914cb00e3e52a7c679565e7faf5160c82" + }, + "ghidra/addresses.d/lane-o.json": { + "mode": 420, + "sha256": "7fcf357f25ccdf061b6bc688339e2006f830c551718b6419a0a9d0ac968bb555" + }, + "ghidra/addresses.d/lane-p2.json": { + "mode": 420, + "sha256": "7eaa63d64a0054ef88f323f58b31fca07bd2372dc21560b4bda64eb13d869792" + }, + "ghidra/addresses.d/lane-par.json": { + "mode": 420, + "sha256": "3836b786aec28feb028271d05f368d7c332b8930b51cfdceb36540133a3d3237" + }, + "ghidra/addresses.d/lane-pl.json": { + "mode": 420, + "sha256": "f29953d17effbb7d8256687833023d4656522e74c40bf1ea646d3b35da3635d7" + }, + "ghidra/addresses.d/lane-q.json": { + "mode": 420, + "sha256": "6f98496ffc288fb30c3a7347a7e5252b296f2345afd1bf678f98a2c934b8935a" + }, + "ghidra/addresses.d/lane-rb.json": { + "mode": 420, + "sha256": "bff95b9452e0efb63e74f741682c8d1843abfe3e722143cf01cf092aa894d75d" + }, + "ghidra/addresses.d/lane-sd.json": { + "mode": 420, + "sha256": "d3239b619cbef5cddc9c7bde6525301a99a6423f8a0e42c1ea53b9ae269c6da9" + }, + "ghidra/addresses.d/lane-sv.json": { + "mode": 420, + "sha256": "f574d8b4dc75da722870c74eb29cd56c75e04dd0ac384b4549fc95d425e3de3a" + }, + "ghidra/addresses.d/lane-t.json": { + "mode": 420, + "sha256": "70975f3c1dea55ceb11af12b9ba3a04e8f7bba2e25f1355ffcd3cd457c41545c" + }, + "ghidra/addresses.d/lane-t2.json": { + "mode": 420, + "sha256": "1e3c59089b769cc5f5d3cf16c33cb6db002966f5beb1a4fb9dd8e28fe54cd6a7" + }, + "ghidra/addresses.d/lane-u.json": { + "mode": 420, + "sha256": "bcccb6ec9257537eece135adbfd126904ca0becf14f9b5d17253adf5d8c9e8fe" + }, + "ghidra/addresses.d/lane-v2.json": { + "mode": 420, + "sha256": "6a4d4960ce99c05b928164159eaf4482bf763785a1f8c50efe133667886d9a54" + }, + "ghidra/addresses.d/lane-w.json": { + "mode": 420, + "sha256": "3971d65c772146534f5d8c350f2d203add70ac82801f57f3704c47cd59b51226" + }, + "ghidra/addresses.d/lane-w2.json": { + "mode": 420, + "sha256": "677648e94de8e1e0d538c9575c9be942d0b37c1a847effcb3c2312af5b6aa7d9" + }, + "ghidra/addresses.d/lane-w3.json": { + "mode": 420, + "sha256": "50ed8ed1b16288b00bac4df0886646dbf9d6d6392867029b4eac386806b41b51" + }, + "ghidra/addresses.d/lane-z.json": { + "mode": 420, + "sha256": "bc63a82f2d0cb7636e95f8a07f183f80817a4c65d2bb7263a047ec3c540512eb" + }, + "ghidra/addresses.json": { + "mode": 420, + "sha256": "865c02d88ac6ede656160a5ab20521ad8854efa381d5a943ab422216aca2c016" + }, + "ghidra/generated/sots_addresses.h": { + "mode": 420, + "sha256": "1cf6b4ab40d3cde306edee12ba4eb05292b98ddcf5c2b7c22c1c64b6075b1bdf" + }, + "ghidra/scripts/FixPlayer.java": { + "mode": 420, + "sha256": "9f9ea470af063339511b1f1c85d6dea2df0827c4fed5806c6f641b1aad3e5660" + }, + "ghidra/scripts/FixThis.java": { + "mode": 420, + "sha256": "aafeeb482f71d1bdcbc99a51fb3f21989a46fbb49b5a572f3d9e436c9b3b98b4" + }, + "ghidra/scripts/LoaderRecon.java": { + "mode": 420, + "sha256": "1275d460227e0098254885fe70666d618da7215bca99483a5475c1e701ab9b27" + }, + "ghidra/scripts/LoaderWriteBack.java": { + "mode": 420, + "sha256": "d1040cb9ee80f0fe4d2310d95b38d7d94b0972283f74ea6058de0bdb9e510e63" + }, + "ghidra/scripts/SpineRecon.java": { + "mode": 420, + "sha256": "bea798733cf60f9478373cc453692104058b643ba5b7fc68e76945ae6f496950" + }, + "ghidra/scripts/SpineRecon2.java": { + "mode": 420, + "sha256": "94f10ac953091d50187a46b74803abb4812b244356f9336fa8e133a8a6cba0c6" + }, + "ghidra/scripts/SpineRecon3.java": { + "mode": 420, + "sha256": "b2344ab3d7195cfb935505ba1949f3d4862f787ccb95b812cef3856f92c94ffc" + }, + "ghidra/scripts/SpineRecon4.java": { + "mode": 420, + "sha256": "1093ee635be94f0c0bb31b5bd79f030faa0d7cbab96a495426363172cbcd1d66" + }, + "ghidra/scripts/TechFx.java": { + "mode": 420, + "sha256": "bfa8e990d65ad7cb2b665ee284ec2d645395e0fb3794ea146b175e2937a159ad" + }, + "ghidra/scripts/TechFx2.java": { + "mode": 420, + "sha256": "ee7040ed3316f2e717bac207c3e8ba9bf5ecb560f9e2b38335582c4ca6bae5a8" + }, + "ghidra/scripts/TechFx3.java": { + "mode": 420, + "sha256": "b672751160abcfee37d16eb2f107a60420b7d6956c312fe93e9f62578c06b96a" + }, + "ghidra/scripts/TechFx4.java": { + "mode": 420, + "sha256": "ef912e86f802452f33c20a1adb87eeb96f0ec893e26ee4bbd02305ba0c5e46c7" + }, + "ghidra/scripts/WriteBack.java": { + "mode": 420, + "sha256": "e002a5b86bc58cf75ef8d08dbaeb84bdf3306c1e8d49e92c0382f8ed858c57ac" + }, + "ghidra/vtable-owners.json": { + "mode": 420, + "sha256": "8ee89f3b43f56283a6ffcc605394a1ab246f8071370a9db8f1e770942a5a82a3" + }, + "guides/lab-screen-wall.md": { + "mode": 420, + "sha256": "d398b47853013dbce63b4af2f2ec680c39775732b9fbba13f5fc42a46628550f" + }, + "guides/method-rules.md": { + "mode": 420, + "sha256": "a71a8415202fe97ccaee3805bf4035684776c37f5613dc39a1f260aa33f94b69" + }, + "guides/multi-agent-workflow.md": { + "mode": 420, + "sha256": "f5bf0c30c12a3a9e1725549fe000be0105d415ca25b120673a780901148f08da" + }, + "guides/re-windows-2000s-howto.md": { + "mode": 420, + "sha256": "3490650440d6e683cb029915b8c2cace914b1f52538c9db89175ad4547db2901" + }, + "guides/windows-lab-housekeeping.md": { + "mode": 420, + "sha256": "4a9e9d66dd76e6b5ee1951686186190c650a617fa812fa4bd236ef02b783939a" + }, + "notes/.keep.md": { + "mode": 420, + "sha256": "7878c159a1b9636974e9093902027a24bf7b3c7520f13a8d96f930bd10d22f1c" + }, + "objects/generated/sots_stream_schema.h": { + "mode": 420, + "sha256": "13446ce54d60a0b29adcefb51aeb5127a0a3ca8de2bd1665e4778ba5354bff8c" + }, + "objects/layouts.h": { + "mode": 420, + "sha256": "24586f7f1c25530691193a919c6335ab1784fa2815b222326409cfe9e2a42981" + }, + "objects/layouts.json": { + "mode": 420, + "sha256": "16bfffa5020d98c12af61c72a48da8f2c5e06d1060358802717e585a49b150b2" + }, + "objects/layouts.md": { + "mode": 420, + "sha256": "83bc29fcd379847f9ebd6732edf9748c1c878052e889615928659307f97a148c" + }, + "objects/streams.json": { + "mode": 420, + "sha256": "60993eda14d0b1056578718d43a3b6d89816e12c4f5a00674806aeef9e81baf7" + }, + "opencode.json": { + "mode": 420, + "sha256": "d24be7fcee57d5eb04c6b7189822a2ca055dd4a70daafbea67f09a120945d49f" + }, + "scripts/.keep.md": { + "mode": 420, + "sha256": "b0cdcee8cfdc1b15ee444520b6b01c747399deea6d92ff2576ca6eb57331bbac" + }, + "scripts/forgejo_campaign.py": null, + "scripts/lane_v2_writeback.py": { + "mode": 420, + "sha256": "69a66058adb04926eeb6f0e81fa8f0392ce06de2e8d8eb61ebcf503bab6311da" + }, + "tools/DASHBOARD_README.md": { + "mode": 420, + "sha256": "f401cc54f64a4862a938263f37eaab22e6475e063e59726e02dce201f657dcc4" + }, + "tools/aiorders_to_tcb.py": { + "mode": 420, + "sha256": "9762d1fd45f3ab7c045088e222c5386a2cc63a6b25e1c09a49cbbd71837bfe17" + }, + "tools/cache_functions.py": { + "mode": 420, + "sha256": "18c037e48ab035764b0c877123ea7c998ef74240c63090e4f58142f57835e0b1" + }, + "tools/campaign.py": { + "mode": 420, + "sha256": "c7b7c7a30d907bba8e59386dee8704d7f3f5e978fcf709b686e37996fa465c31" + }, + "tools/check_agent_config.py": { + "mode": 420, + "sha256": "93115532cb38105777a5c5c20a9f2a808043370e0d4f560a9c82fe8e800076ec" + }, + "tools/dashboard.py": { + "mode": 420, + "sha256": "c84aeeea6fb7d5e45ccec8882bacc59182149f108edd9eb1585eab9ede99911c" + }, + "tools/displacement.py": null, + "tools/evidence.py": { + "mode": 420, + "sha256": "0a7f8497ed287b4b64aa5ba0cb25735172408e38f3605b3ff90f009c7f02eb85" + }, + "tools/gate.py": { + "mode": 420, + "sha256": "4df5ee7022fb2601687f06eab788e2cea1e345e580c4e92c9d47be1787d37460" + }, + "tools/gate.sh": { + "mode": 493, + "sha256": "d7ba27b9b0c6a03df48e4edc71884ef9986743f8afa751dbfec116df5aeee18c" + }, + "tools/gen_addresses.py": { + "mode": 493, + "sha256": "5d995585d4192a19db7cc6d31ed811fa80264159fc114f03f58793f9b6c4908e" + }, + "tools/gen_stream_schema.py": { + "mode": 420, + "sha256": "a9c3e925bb3370371a2c8cde8d738c657fe1cbf68c39c6155562bbb20c551461" + }, + "tools/max_income_oracle.py": { + "mode": 420, + "sha256": "8d3ec6ba5c677486200eab7d1ca55e1350947829e603737307fa394ac8e40bcd" + }, + "tools/max_income_predict.py": { + "mode": 420, + "sha256": "85400c82b6cb7c6786b7fb6486bdc7bcb1140817f7a0ff0b4fa4f7dbeded8797" + }, + "tools/probe_report.py": { + "mode": 420, + "sha256": "f3ef378c10bae4a8bef754d853f0e86616bb95b5e051e04cac97d362587df1a7" + }, + "tools/reva_call.py": { + "mode": 493, + "sha256": "89477650d38985f84b61a664572de1cbde1268b879d3da5e874598942822998b" + }, + "tools/rng_ledger_report.py": { + "mode": 493, + "sha256": "b4f3f581eb6de50118fd531c848354816c20197711e668ce8b0cfcb4d0392cf3" + }, + "tools/rng_oracle_check.py": { + "mode": 420, + "sha256": "f27ca7f9aa03bc672f04067bc71e73ac83742997f12f5f55ce11151bdc39d98a" + }, + "tools/rng_site_report.py": { + "mode": 493, + "sha256": "fabd950c002265403f7b13a8868a158d867828c9930770ed096a2610b086ad35" + }, + "tools/rtti_map.py": { + "mode": 420, + "sha256": "9ac88a8aa566fe08336ba6e50905ec4253409e1317f491c415b1b9ebcc0713e4" + }, + "tools/run_agent.py": { + "mode": 420, + "sha256": "0f5ccb53dcde59b64fe999768737b6cbd2dabcc1272e5605c1f1ecd86e5d5d2b" + }, + "tools/select_evidence.py": { + "mode": 420, + "sha256": "a6e648a77bcf799cc774ff9d0de83011283049ed0f0c44f6e08857a8410e9463" + }, + "tools/serializers.py": { + "mode": 420, + "sha256": "938904eb7b4ae30a61dd966494b112c6d52399f9d4a4658add06b40a54d6cb73" + }, + "tools/serializers_ghidra.py": { + "mode": 420, + "sha256": "d27da0afc8d043d31335bbe274fc76245e50cf0f9091a968b124f31c3a17997c" + }, + "tools/serializers_golden.py": { + "mode": 420, + "sha256": "29d2509b54704b80eff46a59a320719edb17a7eb67fd8acb8ad5e3c427d8e825" + }, + "tools/standalone_report.py": { + "mode": 420, + "sha256": "43a61c4031306732554aca23cd95b57d35f2a870766c33ccf8e005f22436525c" + }, + "tools/streams.py": { + "mode": 420, + "sha256": "57ec4ec5ad222a74f4461d70277d258e51779ae53ff74fd0e07eb51d4bae0afd" + }, + "tools/strfootprint.py": { + "mode": 420, + "sha256": "3b0db212c0b091ae2f63b866ee331435d013c535f233ec34ae3dfb63ded852dc" + }, + "tools/tcb_from_json.py": { + "mode": 420, + "sha256": "8fe09cff16802fda34db24f6f888610baa258399ab39173586b91a7a162f231a" + }, + "tools/techid_table.py": { + "mode": 420, + "sha256": "2c644bdbd3774b70dfdae7e77ff7a3a8e8563b58be7098a2d55ee30dc8b8fd07" + }, + "tools/turncommands_capture.py": { + "mode": 420, + "sha256": "0214d5da6f5f86e188bb2f03db8d3439267baee3a883c7df754601c7c1a38536" + }, + "tools/vmshot.py": { + "mode": 493, + "sha256": "09228bf8bd61918c49afc2b6da931fc8a7833be126be5384b85194e0e86eea44" + }, + "tools/vmwatch-install.sh": { + "mode": 493, + "sha256": "3c004f532422bd589a7294dabdf54d5a726f598c69012eaea3d73a748ad0123a" + }, + "tools/vmwatch.py": { + "mode": 493, + "sha256": "650d8232e46239a55b96f26d581d7d9c5815415c9014fd2e5b846b68c1346b39" + }, + "tools/vtable_map.py": { + "mode": 420, + "sha256": "2e19223efb79421ab4b807e32f0854b2592d7d3a3a52c12e84e47460b960f740" + }, + "tools/windows-housekeeping/Invoke-Housekeeping.ps1": { + "mode": 420, + "sha256": "a97911a3cfbd47813282efa7f52b4de03d28912487fffe0e7e7aa1a250cac01a" + }, + "tools/x86disp.py": { + "mode": 420, + "sha256": "a05a42d63813d2025a4da65bdd684e82a89c95c52901a8f490391e31c49a122e" + }, + "verify/campaign/test_controls.py": { + "mode": 420, + "sha256": "108460f4e90c4cb7036642e85de581e31fd70c478533c32364691260461814fc" + }, + "verify/config/test_agent_config.py": { + "mode": 420, + "sha256": "e60ee546672da91de08ca8fdd5d563b5f1207d0a865adf935017e06bf437585b" + }, + "verify/config/test_source_check.py": { + "mode": 420, + "sha256": "c16731e31a54256dde4f88d33007759ff21ad8537ca6cd2be38b9e34c59525ad" + }, + "verify/design-rules/SHIP_DESIGN_RULES.md": { + "mode": 420, + "sha256": "4decf51bfa03e8ab2b58478198332e834233100126949b920349f210b54521c8" + }, + "verify/design-rules/data/HiverInvasion_FleetTemplates.csv": { + "mode": 420, + "sha256": "327e799be3c75361267725c157f78b425d3a1df6ed6595104b2ce9993e8ae3a7" + }, + "verify/design-rules/data/UpstartApes_GiftFleetTemplates.csv": { + "mode": 420, + "sha256": "89939d70eb6ed48ec776a4a6fc50ccb68fc6be7162706bab199484bf7cdd5e44" + }, + "verify/design-rules/data/_defaultweapons.txt": { + "mode": 420, + "sha256": "ef9e33aa32840f1878ece67f88556d81a4255f63f6e8aad4ac73e575ef2c7ec8" + }, + "verify/design-rules/data/_turrets.txt": { + "mode": 420, + "sha256": "35de6ad40895f76298eef7dc354c739a5a59747b689c2324cfa5040442eddc18" + }, + "verify/design-rules/design_rules.py": { + "mode": 420, + "sha256": "772f70c7d6be2d20d10cf4f5d412233b267440d63d431bf7b320c29f3f06e313" + }, + "verify/design-rules/stock_designs.json": { + "mode": 420, + "sha256": "b363023e02899bc03e4c8b8423b394ef8abb190b1bcf437aade19be463353f68" + }, + "verify/design-rules/stock_designs.py": { + "mode": 420, + "sha256": "fe020f6058ec25b6fc456146abb6594825ee2b98ba5c5c5eeaff969ce4596031" + }, + "verify/design-rules/test_design_rules.py": { + "mode": 420, + "sha256": "6f6764d21d7a3337ec8aba9651b19947239a7d06a6cdf7c6e9be5ddefcfdd186" + }, + "verify/fpu-cw/cw_census.py": { + "mode": 420, + "sha256": "07b7ac5ae60df487867b592e82e9f74201b695437fba248813bc07305a21c7cc" + }, + "verify/fpu-cw/trace_bitdiff.py": { + "mode": 420, + "sha256": "b25c93d70e67ed2fa81e5ea7184f8ffe0cbd2e7c043bc94f923c3db1cf101b59" + }, + "verify/harness/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "verify/harness/cb/README.md": { + "mode": 420, + "sha256": "7a656251a600a9343ffa8afaa4f227e7cb8086be7d3c6879c0a403ab8acec71d" + }, + "verify/harness/cb/cbdo.sh": { + "mode": 493, + "sha256": "6f3d7fd35aeedb0841be9df0ba19136be2e7ccb5c44950d8aa821c61727232a6" + }, + "verify/harness/cb/cbfull.sh": { + "mode": 493, + "sha256": "609101217e9d35bf1caa5cb66f362e0796fcf6c1264bd92ff550d0ed12ca2521" + }, + "verify/harness/cb/cbload.sh": { + "mode": 493, + "sha256": "2e56bb64609434f6dfc6ebcf71a3c839ae59170db80c996ebee7c2219cb664ec" + }, + "verify/harness/cb/cbmenu.py": { + "mode": 420, + "sha256": "fb2e72a1a5390aa28dcae0fbc2d7b920b06bf3b1ea161bb757d4db3c8cd23af2" + }, + "verify/harness/cb/cbstep.sh": { + "mode": 493, + "sha256": "5896b21e8cf08b40e2a2958e44a51beb7e5b5a58cf35d405879a5df7cdd375b4" + }, + "verify/harness/compare/TRACE_FORMAT.md": { + "mode": 420, + "sha256": "cf6f61dc255e3aed0f293c141d9fd3b0d5e848e3abe4dcf50b4ca2d58e37c024" + }, + "verify/harness/compare/mkfixture.py": { + "mode": 420, + "sha256": "f081dd92b9e82e838f59ce8f9c79d5cdebb825255f13b6c49178516e7f3ef118" + }, + "verify/harness/compare/oracle_parsers.py": { + "mode": 420, + "sha256": "b1a745bfa63b447c87279afdb2885a0218f2a0dc2539f79414f8a2534e24c97b" + }, + "verify/harness/compare/test_tracecmp.py": { + "mode": 420, + "sha256": "f25eb9d5ea7215b8366c44924fb49a5f028a0188e709dadfd90cfbc30db0823e" + }, + "verify/harness/compare/tracecmp.py": { + "mode": 420, + "sha256": "d6ca461cabf15351e2040150144084b93d3caf22d879ee158ede04052ab03cbb" + }, + "verify/harness/l2-ui/README.md": { + "mode": 420, + "sha256": "48effd757522ee5ff70af6d77449dcfd805bb7744c9093d01c039b86e030d7f6" + }, + "verify/harness/l2-ui/launch-b.cmd": { + "mode": 420, + "sha256": "8f26c451a88765c49ecb3c8160ed4a3d06f1100a6d9323b305efc01f039dfada" + }, + "verify/harness/l2-ui/socks.ps1": { + "mode": 420, + "sha256": "401cce47d495507f60eeae45942c146586464959046ef9715cd69605753af027" + }, + "verify/harness/l2-ui/ui.ps1": { + "mode": 420, + "sha256": "355c8f222bf99f547d9d16a1665a072e6914917d48e4db22b8438d2d83708e97" + }, + "verify/harness/profiling/battle-run.sh": { + "mode": 493, + "sha256": "79f14ded5c3731efd655a6f9a4ac6795f3ace0a9b064c43ba4bf9a2cb988a7cf" + }, + "verify/harness/profiling/funcs.py": { + "mode": 420, + "sha256": "841a6f5e5dc1d845b7439c9ce9dc08e045864929b0f367908abea7ab54259207" + }, + "verify/harness/profiling/funcs.txt": { + "mode": 420, + "sha256": "d35b17dbb3970f5c24ae862748c5b91aee87491968719c34e48a8b88c0615835" + }, + "verify/harness/profiling/iat.py": { + "mode": 420, + "sha256": "82465ef8284739ab3d3c99acd0fa6cc5a4bb80c8680eb7a949218305fd10d3d3" + }, + "verify/harness/profiling/inspect.ps1": { + "mode": 420, + "sha256": "35bc7dd85108e3f4686975ef7f510b1cc9306b5839329f7fdd2a5ac27a140611" + }, + "verify/harness/profiling/names.txt": { + "mode": 420, + "sha256": "89d90f934e445447c68569448471a8917ee0bbfcb5fb96bba3e6566be9b0779c" + }, + "verify/harness/profiling/parse.py": { + "mode": 420, + "sha256": "680df36804e923d74da8e9fd8877b5ea66975c9ce8d239ad4507c829f881722a" + }, + "verify/harness/profiling/sampler.ps1": { + "mode": 420, + "sha256": "ef0edde8535ef07e508a732f8e11dc3d50fef966e5a9e4d8161085a83372993e" + }, + "verify/harness/profiling/shots.sh": { + "mode": 420, + "sha256": "87e554abf08068d6438417e266f1e7820e34a900a7d559fa0a7c4a2fa18002b3" + }, + "verify/harness/profiling/timerres.ps1": { + "mode": 420, + "sha256": "80362eb9ec8bd882abddf2507236e70db2dd21f64c9db07d217bdd49361ed89c" + }, + "verify/harness/profiling/turnloop.sh": { + "mode": 493, + "sha256": "8e28f076599a9eb53eace77ad77a10b0770f1ce617c7a76e6a2b9044ee0c8774" + }, + "verify/harness/profiling/turnwin.py": { + "mode": 420, + "sha256": "e2033a8e519a7c9f65f67b5592494a9843eb8bef41af6ab5652343aa86bd4c60" + }, + "verify/harness/profiling/ui.sh": { + "mode": 493, + "sha256": "e66774a4d070285e6c6a62472000222a691c7192096039e75fa726bab9f6afb7" + }, + "verify/harness/run-recipe/click_helper.ps1": { + "mode": 420, + "sha256": "150a1c17e12e8479244107cd01d95233c84d550e95a6f5e352fd529818a21d7d" + }, + "verify/harness/run-recipe/display.cfg": { + "mode": 420, + "sha256": "76b4876abd1cd163a5cc6b65a6106670476cde40c9b868a53a0dc45f517e132f" + }, + "verify/harness/run-recipe/dxvk_d3d9.log": { + "mode": 420, + "sha256": "f48ff2684a78cea563ab7f10e2f005638044352fe9cfc30dedf0f26ec7fecf23" + }, + "verify/harness/run-recipe/launch.cmd": { + "mode": 420, + "sha256": "90a6effe8ae835bf641cc775a17ad709198fdfeded4379f658255a82f594e5c2" + }, + "verify/harness/run-recipe/lvp_icd.x86.json": { + "mode": 420, + "sha256": "b89a08526e043a84c3a2550b5ea2fd7692f547ea295e8dd70e79c64fe81f6fbf" + }, + "verify/harness/run-recipe/run.txt": { + "mode": 420, + "sha256": "12c83295dae9db4a98142ef8fe7e45321c90960428df504ed3496e27838a0413" + }, + "verify/harness/run-recipe/session.log": { + "mode": 420, + "sha256": "e9ce9b496e9ee55bd64cc27afe594cee6136dfbc6cf9d9d44e9914b27e568a93" + }, + "verify/parsers/PARITY_NOTES.md": { + "mode": 420, + "sha256": "beecfe60358f5977529bd0784ffe18ca03c38d2dd36766f351c6a9addac83bda" + }, + "verify/parsers/effect_txt.py": { + "mode": 420, + "sha256": "7219045dfaf305dd64218ff8096e8cac69a53df1aabdf85f15e6c5e01c963e74" + }, + "verify/parsers/flat_kv.py": { + "mode": 420, + "sha256": "a26149cb21d152be5cbada3b764e042187daf2ec306b2dba1081737af6a7ae4f" + }, + "verify/parsers/manifest.py": { + "mode": 420, + "sha256": "62a08cfd82d5f701ae3b3f567bc8382cfd1b33b49bf6049ade47a932ef7109da" + }, + "verify/parsers/mars_data.py": { + "mode": 420, + "sha256": "90c7b8421044b1d7e262e6f20e5af391d97a712b12c2d3f0c3033567881d536f" + }, + "verify/parsers/verify.py": { + "mode": 420, + "sha256": "cc5d619bd6b3ca161b4bc8050c30e7d77f6bd3e964c971cc29e051efc1e25a33" + }, + "verify/publishing/test_dashboard.py": { + "mode": 420, + "sha256": "cc44e516da663f5d27bf817cbcbf24c052f2db52ee887d08d7c271caf8f6a000" + }, + "verify/results/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "verify/results/compare/.keep.md": { + "mode": 420, + "sha256": "4581f3fde61549f4c621b2f114228a62d066a528a270a9b41703238ff841ac1d" + }, + "verify/results/compare/b2-techfx-compare.json": { + "mode": 420, + "sha256": "b0533322d44b1694f36baf86d6660481ac5b22ce9c1d6b6b9668ea064cc08f4b" + }, + "verify/results/compare/b2-techfx-golden.json": { + "mode": 420, + "sha256": "4298a8229b85a3329c78d3618d3eb19aff096cb2da66e9238fd843d639b17f11" + }, + "verify/results/compare/cr-compare.json": { + "mode": 420, + "sha256": "f20e9a7c71412688c02b607f08a5224367598eba552e35a50e9922ca8f12edab" + }, + "verify/results/compare/cr-compare.md": { + "mode": 420, + "sha256": "0eb905744120b1cf264ba6e57497db64fdc8e225a87ef7bb86cf3f026ffe4d0d" + }, + "verify/results/compare/cr-replace0.json": { + "mode": 420, + "sha256": "f1556c5d74c236c82617061b5ec60b1a7ce4652bce87b6595eb89406ad832240" + }, + "verify/results/compare/cr-replace0.md": { + "mode": 420, + "sha256": "6f571e46350a29b811bc12b48e12ed2d443acba5f5be6310e0531c3790425d48" + }, + "verify/results/compare/cr-replace1.json": { + "mode": 420, + "sha256": "d0c1d6bd4a1f8f5343b584662d8202184479b01a51480443a97242daf27fccc2" + }, + "verify/results/compare/cr-replace1.md": { + "mode": 420, + "sha256": "111b51290468d5482a1910194487d26dc1b3ec534d699aa07a564de66bbf9d98" + }, + "verify/results/compare/eventlive-b3-t1-5.json": { + "mode": 420, + "sha256": "4f305180bcbe93523f407d1f8406ac52b84d4a20e2d611940716618fd37edfde" + }, + "verify/results/compare/eventlive-b3-t1-5.md": { + "mode": 420, + "sha256": "ec71d98210218fd5b5da69f6b17cf6991128a58a0358a6504e6497dd39159764" + }, + "verify/results/compare/eventlive-b3-t1.json": { + "mode": 420, + "sha256": "84f66c1e6a23f737d1615e75fd22fba958bfd851067acb42503e32a2812dd1de" + }, + "verify/results/compare/eventlive-b3-t1.md": { + "mode": 420, + "sha256": "299b8dd3f2cf42cbc9e6254fac01ee3dcb6abb0758c8f298beb6cc6464db4cfb" + }, + "verify/results/compare/eventlive-b3-zuul.json": { + "mode": 420, + "sha256": "a1a92c06202c8168362c33442edeb7ea7f76f6e586e5deea1b86dff9dc8f3494" + }, + "verify/results/compare/eventlive-b3-zuul.md": { + "mode": 420, + "sha256": "544791f9cd8b77a2d865f2a918d97e74559529f29943171bd1e8e2d8a120dec5" + }, + "verify/results/compare/l5-budget-boundary.md": { + "mode": 420, + "sha256": "6877f9cfc602876b4c213106493853822471a5aaa3e4e8ebf8dffd31373d89d9" + }, + "verify/results/compare/mf-after.json": { + "mode": 420, + "sha256": "586a824a0d0af1de0808c33c1c392c4022128f9c1305dc32b6749e8fa493e8f4" + }, + "verify/results/compare/mf-after.md": { + "mode": 420, + "sha256": "659be3da71cabfd3c34eb818f1bac07f848c58a878fd62d81ac7b1daa5f3ce03" + }, + "verify/results/compare/mf-before.json": { + "mode": 420, + "sha256": "259272b45ca9c63894d8c91e399ff91d7258b7836f1a0d5c91dd3972586b2498" + }, + "verify/results/compare/mf-before.md": { + "mode": 420, + "sha256": "4572530a1c93865d27aba47c23c418773ad39a834c8be1c004f5cc2f16f927a0" + }, + "verify/results/compare/output-ref-turn2.md": { + "mode": 420, + "sha256": "43a569165f9239f13edc31c7a848a6b839829ae06dd6e3b85d289a1552eb8d34" + }, + "verify/results/compare/output-zuul-and-ref.md": { + "mode": 420, + "sha256": "9bc0937c0b3e1e3e5a6cd3768dbfeae56a897615396b00834bd083611f3ef431" + }, + "verify/results/compare/recap-b1-compare.json": { + "mode": 420, + "sha256": "8e86cdd32373e41ac1cdc130b18acc188b35d5ab7112e1fc655d134c44ad9712" + }, + "verify/results/compare/recap-b1-compare.md": { + "mode": 420, + "sha256": "496a3246eda3be76d9d0f08726369d40aa879cf60a510f16209ae77585582841" + }, + "verify/results/compare/recap-b3-compare-t1-5.json": { + "mode": 420, + "sha256": "80eeeeccf15f427b75b053d06f6b32b1692a2ed9ca6b9a51c244e4166a1b0e78" + }, + "verify/results/compare/recap-b3-compare-t1-5.md": { + "mode": 420, + "sha256": "5b6295bff72d599f142e75fa913ca2da590322a6fd1d104328847159fc5e7802" + }, + "verify/results/compare/recap-b3-compare-t1.json": { + "mode": 420, + "sha256": "10d0d5f8aff90f6cce3cd87e30c7f8ff896c5b369f4dc8288141451e25727cb9" + }, + "verify/results/compare/recap-b3-compare-t1.md": { + "mode": 420, + "sha256": "2b0eb8865bb07a2dd8fd038bc19e38a34fbf19b9d3f6fabae085c16a74fbcc6f" + }, + "verify/results/compare/recap-golden-trace.json": { + "mode": 420, + "sha256": "50bb7e34ab2359adc83cc0647fc995d207173fcf6134e413565af450958f652f" + }, + "verify/results/compare/recap-golden-trace.md": { + "mode": 420, + "sha256": "586fc86fe78659902a5d0859c0bce44623bfcda0f375bb57b293796862c48e17" + }, + "verify/results/compare/recap-misc-compare.json": { + "mode": 420, + "sha256": "c73f3f3593a0d715a675b29c7b4f49c02a97578ee9d867ce15d217c43da2e466" + }, + "verify/results/compare/recap-misc-compare.md": { + "mode": 420, + "sha256": "b435c92441742b2b1b0236bfacff10c17757696baf446c544c4759b7e31237ed" + }, + "verify/results/compare/unlock-b3-t1-5.json": { + "mode": 420, + "sha256": "a4dbfc89f6f3d154edbbc62842a4e8d8a3c69b9589eafc1bb496b26a3ecf6e3d" + }, + "verify/results/compare/unlock-b3-t1-5.md": { + "mode": 420, + "sha256": "832626087ddc2da9064a192a1acfb3869d4a52c6398a070cbd66eaa1bdbe2e2e" + }, + "verify/results/compare/unlock-b3-t1.json": { + "mode": 420, + "sha256": "6d8938b8eaeb2da1c7fdccb1fb68f8e3a2b5b7f492cc096326cf3aadb2ab8d55" + }, + "verify/results/compare/unlock-b3-t1.md": { + "mode": 420, + "sha256": "8911e671a143c25765cd7c0b67f1b9cb23f4040fe26aad40ce59b1db858afdcd" + }, + "verify/results/compare/unlock-b3-zuul.json": { + "mode": 420, + "sha256": "3099d248d58c4395e92d65ad18c28227695a7c7935193be6c2bcf752fa0e0f04" + }, + "verify/results/compare/unlock-b3-zuul.md": { + "mode": 420, + "sha256": "f53b165c8502ba9b2416935179fdea68153fb6ebd2458b4ec9b4ecf6c741c91f" + }, + "verify/results/data-catalogs/crosslink.json": { + "mode": 420, + "sha256": "2966ba9780910b596e350c4f81eef5d74c4d235dc3a8d5cf6ad5fd53a407254a" + }, + "verify/results/data-catalogs/schema_stats.json": { + "mode": 420, + "sha256": "6e3f669ae77cdfa2c5cd6bbd29f5cecccd452d9a7b2397c2c23db6c33fda0a2a" + }, + "verify/results/data-catalogs/shipsections.json": { + "mode": 420, + "sha256": "2e7057c608d0cea755bf9dbfa291864d33e3f09ad5deff7bb3a8045bde7a4ab5" + }, + "verify/results/data-catalogs/strings.json": { + "mode": 420, + "sha256": "c36c1b2b9a2eace438f93698df6388fa94aec30d372bcd0bee7e09bb33c54d7c" + }, + "verify/results/data-catalogs/tech_tree.dot": { + "mode": 420, + "sha256": "96ce0492a1284167d82af2c07a8f8a0b3bb9864bc137195560d909df6a913055" + }, + "verify/results/data-catalogs/tech_tree.json": { + "mode": 420, + "sha256": "18df799410c5f650e15808c1ef247b4768a3dfff93795a5ec7f56cd6c4afc597" + }, + "verify/results/data-catalogs/weapons.json": { + "mode": 420, + "sha256": "a446b445c21519fc7992c84155c9652239567030843c405b4219d1f65022db01" + }, + "verify/results/fpu-cw/README.md": { + "mode": 420, + "sha256": "3928fd0f6a03a8ff0b170a7ed23a059120b5014b13bf6870d4f187ff299d5975" + }, + "verify/results/fpu-cw/cw-census.txt": { + "mode": 420, + "sha256": "b7854dc5cd249a2490d04264d758f1894a9ddf4b95573650365d47587c7589d3" + }, + "verify/results/fpu-cw/run-007f-rep/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-007f-rep/(Autosave).sav": { + "mode": 420, + "sha256": "ba2435beb17265af3abddb58cd26e926d42b39b358ef6d0c76f9897386174918" + }, + "verify/results/fpu-cw/run-007f-rep/shim.log": { + "mode": 420, + "sha256": "73b5b86da743a1cb37d4c0d97b29978923b55a7a47f80c7fa20ca47d424f6c02" + }, + "verify/results/fpu-cw/run-007f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-007f/(Autosave).sav": { + "mode": 420, + "sha256": "ba2435beb17265af3abddb58cd26e926d42b39b358ef6d0c76f9897386174918" + }, + "verify/results/fpu-cw/run-007f/shim.cfg": { + "mode": 420, + "sha256": "998decddb80cf23d63c42d2d6c1d1aa85072258ca0870168ee772708ebfb6363" + }, + "verify/results/fpu-cw/run-007f/shim.log": { + "mode": 420, + "sha256": "5721f47d7fd862156ce2cd1832cd1739636b5aee53c82323ef233ff6401775bb" + }, + "verify/results/fpu-cw/run-007f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "149c4fcf750fcf9e81dc86d8696271d9a14ca788891ac95cf96995e3737c68e4" + }, + "verify/results/fpu-cw/run-027f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-027f/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-027f/shim.cfg": { + "mode": 420, + "sha256": "f4f9585a8f6317807bcab498ebed5de5d42400124a82ea958558f1455176cebd" + }, + "verify/results/fpu-cw/run-027f/shim.log": { + "mode": 420, + "sha256": "4bd3f88bd27eb2e3ae1f42f4dc2ccf1cc5df1a2c1171d2eff8be86e7be684187" + }, + "verify/results/fpu-cw/run-027f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "b5d2611d0c08946c1e1eaa244a7e44782eac2592c392efb3d7147fbbd86816e7" + }, + "verify/results/fpu-cw/run-127f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-127f/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-127f/shim.cfg": { + "mode": 420, + "sha256": "1f50a475f0d347b5b5a7c2341eac4ea22092818e18bc7ea049154d309949e271" + }, + "verify/results/fpu-cw/run-127f/shim.log": { + "mode": 420, + "sha256": "03f1999dc8964912697782e856f89f190b6680d5732f2cd00b1569bff727a545" + }, + "verify/results/fpu-cw/run-127f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "fb1b9063cc53a6b39ea0a58e0545b9334fbd15d65dd839e72f2c4febbb1dd3f0" + }, + "verify/results/fpu-cw/run-137f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-137f/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-137f/shim.cfg": { + "mode": 420, + "sha256": "8658d901e0688d87d2f2359fe725082b9956291988cdc0b82b155dde55fef5e9" + }, + "verify/results/fpu-cw/run-137f/shim.log": { + "mode": 420, + "sha256": "83aa72572412d5248179397895029367685fd590d795991ab91c98cf9828ae29" + }, + "verify/results/fpu-cw/run-137f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "aad1fb6abd86beafb9f44e2c6060157e22618811d105f2379252e19008839b66" + }, + "verify/results/fpu-cw/run-1a7f-rep/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-1a7f-rep/(Autosave).sav": { + "mode": 420, + "sha256": "e48e25fa8425a8a1d174efe3e8a553153447f11f8f91c5fda25bd7db3a26cca7" + }, + "verify/results/fpu-cw/run-1a7f-rep/shim.log": { + "mode": 420, + "sha256": "38f2824fbe91bf2fa1ef55473a7468707248420805b6f6dc85245fd34fa94200" + }, + "verify/results/fpu-cw/run-1a7f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-1a7f/(Autosave).sav": { + "mode": 420, + "sha256": "e48e25fa8425a8a1d174efe3e8a553153447f11f8f91c5fda25bd7db3a26cca7" + }, + "verify/results/fpu-cw/run-1a7f/shim.cfg": { + "mode": 420, + "sha256": "59ff1f48a10c378d0ea92d8a156b135a106017a5b6c47b65de304fde3187c588" + }, + "verify/results/fpu-cw/run-1a7f/shim.log": { + "mode": 420, + "sha256": "a1bb0bd06dae6955ec09e7d0c6cd1e68e19aa2a114256cdeae1275def0a63091" + }, + "verify/results/fpu-cw/run-1a7f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "b9a7affb8235626fcfdd5afe143e4ec03be869b6b386bd9ac78389097df88cef" + }, + "verify/results/fpu-cw/run-off/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-off/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-off/shim.cfg": { + "mode": 420, + "sha256": "6a19c362121a3dba0aac857d6e998131e8b2478f19edcdcbd58006645d096c70" + }, + "verify/results/fpu-cw/run-off/shim.log": { + "mode": 420, + "sha256": "9e3cbd005f0b68037681939b289834c55629bac0e9cd35ac55e6d8ef5333a116" + }, + "verify/results/fpu-cw/run-off/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "ec2271c0d7e09fe51ead7f8d58859c692e8b302233191841d506ea14248caa8c" + }, + "verify/results/fpu-cw/state-checksum-diffs.txt": { + "mode": 420, + "sha256": "3417dfc1b75ad896ac6a5e974d51248eecca319565e2422e146897d19e121b68" + }, + "verify/results/fpu-cw/trace-bitdiff.txt": { + "mode": 420, + "sha256": "8f86707f26f30638097c85f0db6df219adbfebac4e9ec24f1feb8bfce112d4f2" + }, + "verify/results/housekeeping/vm140-result.json": { + "mode": 420, + "sha256": "2250b02342f5c02ba5464cb4656543c6366dec098fbc948006600896ac9254c0" + }, + "verify/results/housekeeping/vm141-result.json": { + "mode": 420, + "sha256": "03d92ffd2947b2f0c058e5c613e04567cffee45be456aece6d771b789f32fb93" + }, + "verify/results/housekeeping/vm144-result.json": { + "mode": 420, + "sha256": "ace15320f7e60995a68f2c9c03a5a44159ae2d64fa273d34d38e285d313a0393" + }, + "verify/results/housekeeping/vm145-result.json": { + "mode": 420, + "sha256": "768666178bf2910a2ff026351727b5cc96e48df70e1ba012031d34eafc95ad7a" + }, + "verify/results/housekeeping/vm146-result.json": { + "mode": 420, + "sha256": "eebb306a3ec8533abae6dfd59f127c48effe9f21107e0c5c09c751108e77bb97" + }, + "verify/results/multiplayer/l2-combat-hud-client.png": { + "mode": 420, + "sha256": "02c86592531ab2889a0eae04e44a644d33c754096fe60aca6640068a7a3f421f" + }, + "verify/results/multiplayer/l2-combat-hud-host.png": { + "mode": 420, + "sha256": "a56daf36fcc88627b29116ad9874c95a3c46960074ff9b823aa15c4ea2660dd7" + }, + "verify/results/multiplayer/l2-combat-loading.png": { + "mode": 420, + "sha256": "f94a718cee08e1b7d346490058f13a107d23aaa7c269fdd53b159a75d62fa558" + }, + "verify/results/multiplayer/l2-combat-round-draw.png": { + "mode": 420, + "sha256": "c1b8424540b702915302f9ff38eaf765e8e95fddc3c5c4d894438dcfcf8b6256" + }, + "verify/results/multiplayer/l2-combat.pcap": { + "mode": 420, + "sha256": "0f112ef96da6c465dbda51baf99eedd66967eed61c097f643bf6c66fc26af31b" + }, + "verify/results/multiplayer/l2-encounter-query-client.png": { + "mode": 420, + "sha256": "4c41b268ad256b0109483a2d9b5ba35de7b9cadb4eb32ef4a68f7867e6e747fd" + }, + "verify/results/multiplayer/l2-encounter-query-host.png": { + "mode": 420, + "sha256": "8c7b0c6d65ddde45eb3447f044589ffc36500b40c4d676af8321f800162f38a0" + }, + "verify/results/multiplayer/l2-fleet-built.png": { + "mode": 420, + "sha256": "6ac91fcf9b42caef50134de01804046d8e60d0fd3966592e9738ceff511949c2" + }, + "verify/results/multiplayer/l2-lobby-client-joined.png": { + "mode": 420, + "sha256": "4a8e698c9ea935449ff0421cd59acd517ebffa388a7572279b28be0369141ff6" + }, + "verify/results/multiplayer/l2-lobby-host-created.png": { + "mode": 420, + "sha256": "e6a7377cabafa973396cedafa5ad5b4863a42f9866709db88faf9572e0ed3c98" + }, + "verify/results/multiplayer/l2-move-warning-dialog.png": { + "mode": 420, + "sha256": "43c6219d74bc0cb28495f13784cdbd3a90c89746b108824c3a2138dbdadcb53e" + }, + "verify/results/multiplayer/l2-socks.log": { + "mode": 420, + "sha256": "109b630d6548d07404f9f905e6c527f10e25221698f1b66226f67f94c5f294b5" + }, + "verify/results/multiplayer/l2-turn13-client.png": { + "mode": 420, + "sha256": "d19f17c4219f21f6c9950440d528a1a91fe3907761df21fd0ba99321b8820baa" + }, + "verify/results/multiplayer/l2-turn13-host.png": { + "mode": 420, + "sha256": "811efcfb571d60435f772a3b619bb329717d1e162b88e440ec0d636b1c6042fc" + }, + "verify/results/multiplayer/w2-internet-browser-no-error.png": { + "mode": 420, + "sha256": "6409b977056c95b29928a0098f75fffd71c501128f9d9325c3000837131c8791" + }, + "verify/results/multiplayer/w2-join-manually-dialog.png": { + "mode": 420, + "sha256": "86904e94a5aec41c1e89271d2712558c3b5055bd2ae4fededfda103d1e22fb71" + }, + "verify/results/multiplayer/w2-lan-browse-listing.png": { + "mode": 420, + "sha256": "6f5d16fa719fb63dd627fba551221c7665b69002e83fe35b8d84912cd7d8ce83" + }, + "verify/results/multiplayer/w2-lobby-client.png": { + "mode": 420, + "sha256": "ede652b21e2a4ea07c8132e4080ba903d1052ebca336bb007e1e8efa62787f10" + }, + "verify/results/multiplayer/w2-mp-turn1.png": { + "mode": 420, + "sha256": "59f9a1f5d8c0fff45d3ae3406dfd9878a5915f18e999d909a5238a90a3b86ed6" + }, + "verify/results/multiplayer/w2-mp-turn2-client.png": { + "mode": 420, + "sha256": "d9da4c151cd8290f80b31eb5ed8a74a0a30a87d1f7a80a179fa082a9439e08e5" + }, + "verify/results/multiplayer/w2-mp-turn2-host.png": { + "mode": 420, + "sha256": "910efd36b4a7c1a85d8ad487660f856339af037b9b00fef0cafd5e77ebdc36e5" + }, + "verify/results/multiplayer/w2-tier0-filtered.pcap": { + "mode": 420, + "sha256": "e108778fd1afb7718c53a4164310b8523415ef073706d310583dab424e5921cc" + }, + "verify/results/saves/ac-turn20-raider.sav": { + "mode": 420, + "sha256": "ee787db8f63d8f564c597bd5a82709790a0fdf47827912037f96b736f2cbed34" + }, + "verify/results/saves/ac-turn22-raider.sav": { + "mode": 420, + "sha256": "0faeaa601e6a867876819e5646b85f8787851093b8e6bd6e3946eb867f2dcc74" + }, + "verify/results/saves/ad-oracle-A-post.sav": { + "mode": 420, + "sha256": "a634510e7208cceb10d8ce016ceb0153601f11d7291f08122bcdb6418e313331" + }, + "verify/results/saves/ad-oracle-B-post.sav": { + "mode": 420, + "sha256": "676b1778880b5d4784ba7f6ef48b1a8e56745adab70a815943b7744876686260" + }, + "verify/results/saves/ad-turn27-two-raiders.sav": { + "mode": 420, + "sha256": "1c8baa27680809d585ab1728391e82729642d32aaedffd5bf95b616f0a11a436" + }, + "verify/results/saves/ap-deploy-turn15.sav": { + "mode": 420, + "sha256": "844f2b746060dc2c4e2099cdc6ceffd5f55ef858c9e347df28c8aca3041f7165" + }, + "verify/results/saves/ap-oa-turn16.sav": { + "mode": 420, + "sha256": "e296394f578b3a5668e5934b9eec8d6c4638ca7411200078f97de1abd346f4c5" + }, + "verify/results/saves/ap-ob-turn16.sav": { + "mode": 420, + "sha256": "262f8bda97c9511d8d2b41e6a8a0582d6f5364c2b01b1caf99e639d0e4f53ebe" + }, + "verify/results/saves/ap-turn22-spydetected.sav": { + "mode": 420, + "sha256": "91381bd7e722ac3847795a402d78ebb31d74dbb5d2909f33d243aec3ef8abaf8" + }, + "verify/results/saves/ap-turn25-spydestroyed.sav": { + "mode": 420, + "sha256": "46380fcf4498d67507e4471eb9ee3762647c53ee5473be142fe5c34e37344bc3" + }, + "verify/results/saves/ar-oracle-A-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/ar-oracle-A-pre.sav": { + "mode": 420, + "sha256": "15b99255e1f03dab3e35ab8c1ac64f221cb5aa9321f113c7a6e3d1263c3f34ca" + }, + "verify/results/saves/ar-oracle-B-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/ar-r1-turn43-post.sav": { + "mode": 420, + "sha256": "37f4a54fd32303fdcc86522b07104fbf2fcb124eec9b1f7005b3446fefcc429f" + }, + "verify/results/saves/ar-r2-probes8-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/ar-turn37-816raiders.sav": { + "mode": 420, + "sha256": "b6f4e05ff226eabd1695003b36293553642553cea96ef417364393e2332a7094" + }, + "verify/results/saves/as-turn14-predeploy.sav": { + "mode": 420, + "sha256": "53986f8511cbf9920f32e2ea406ccf531dd08903fa5d06024fcf03ea7627221d" + }, + "verify/results/saves/as-turn15-spydeployed.sav": { + "mode": 420, + "sha256": "854a10fa1ea602f0f7909f9bf9154942e56ea5fa1db4cce47d6d32bf53952e08" + }, + "verify/results/saves/az-turn11-16destroyers.sav": { + "mode": 420, + "sha256": "501583c7cf2ac81c9db3191203cd3dc5ba5b9e228b9b9ce3dbdcc3650d0070a9" + }, + "verify/results/saves/az-turn23-tarka-comraid.sav": { + "mode": 420, + "sha256": "3d5eb826c149d1fd0278c746f32e6148ca9883a1bc5b522c0d5e6e13fac9788a" + }, + "verify/results/saves/bp-pinA-turn28.sav": { + "mode": 420, + "sha256": "e913ff41188211c02d536da616337544e64133996cd7cc7a6521a8df1960226f" + }, + "verify/results/saves/bp-pinB-turn28.sav": { + "mode": 420, + "sha256": "724528ffde9a7514b69ab9e82ed3b8c8ade63d622c0720de30503a73a92df11e" + }, + "verify/results/saves/bp-turn28-pre.sav": { + "mode": 420, + "sha256": "16f63adbf383946db17c381998957172bca803406b7df78f3b03805fef0bbcb8" + }, + "verify/results/saves/bq/bq-1A-endturn.sav": { + "mode": 420, + "sha256": "1a9d937b8bd9c4bb33dd235d4d6ad6e3b38d9f842fc740839e42e06f52356d39" + }, + "verify/results/saves/bq/bq-1A-post.sav": { + "mode": 420, + "sha256": "56980aa086e1a145b00f781b9d9cf618b152986f1c2267b9fd96cca0f1f604b9" + }, + "verify/results/saves/bq/bq-1B-endturn.sav": { + "mode": 420, + "sha256": "1a9d937b8bd9c4bb33dd235d4d6ad6e3b38d9f842fc740839e42e06f52356d39" + }, + "verify/results/saves/bq/bq-1B-post.sav": { + "mode": 420, + "sha256": "b36ac0ec2986f3a814dd22ca312c895ba6ec8a0e55fca54d8a7fd08a2f96a2c4" + }, + "verify/results/saves/bq/bq-1bA-endturn.sav": { + "mode": 420, + "sha256": "33e3009254f5acd17417053d88372f3d6851e0206932db0f9201cbce6c0f5b21" + }, + "verify/results/saves/bq/bq-1bA-post.sav": { + "mode": 420, + "sha256": "4c356f5916f0e6e4b0ba5f147e31177ae946abd6be2d124559e44c8a13b8ed10" + }, + "verify/results/saves/bq/bq-1bB-endturn.sav": { + "mode": 420, + "sha256": "33e3009254f5acd17417053d88372f3d6851e0206932db0f9201cbce6c0f5b21" + }, + "verify/results/saves/bq/bq-1bB-post.sav": { + "mode": 420, + "sha256": "4c356f5916f0e6e4b0ba5f147e31177ae946abd6be2d124559e44c8a13b8ed10" + }, + "verify/results/saves/bq/bq-res-post.sav": { + "mode": 420, + "sha256": "28bbd9b5c377afcd8f075b535eb1036ee46acf71ab614e7091ccdbdfb3703db2" + }, + "verify/results/saves/bs/bs-C-endturn.sav": { + "mode": 420, + "sha256": "15b99255e1f03dab3e35ab8c1ac64f221cb5aa9321f113c7a6e3d1263c3f34ca" + }, + "verify/results/saves/bs/bs-C-f38-autosave.sav": { + "mode": 420, + "sha256": "0fe8f37479a702d2e4e7752e6cb160dc242f00a082dc4115b7d10c77b24989f0" + }, + "verify/results/saves/bs/bs-C-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/bs/bs-L-endturn.sav": { + "mode": 420, + "sha256": "33e3009254f5acd17417053d88372f3d6851e0206932db0f9201cbce6c0f5b21" + }, + "verify/results/saves/bs/bs-L-post.sav": { + "mode": 420, + "sha256": "4c356f5916f0e6e4b0ba5f147e31177ae946abd6be2d124559e44c8a13b8ed10" + }, + "verify/results/saves/cb-c3-turn1to2-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/saves/cb-c5a-turn1to2-pinned-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/saves/cb-c5b-turn1to2-pinned-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/saves/cb-turn2to3-autosave.sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/saves/cb-turn2to3-endturn.sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/saves/certified-pairs.md": { + "mode": 420, + "sha256": "4e1cfb79cf5a51446b2eae21f91b565348ffa95a9ebac8f95e23019012aefb57" + }, + "verify/results/saves/cr/cr-oracle-autosave.sav": { + "mode": 420, + "sha256": "79df50475a7b83afa927d992b9f030dcf45710f4bda0133b8b1fa4800a72e420" + }, + "verify/results/saves/cr/cr-oracle-endturn.sav": { + "mode": 420, + "sha256": "e00eed0c03a31d27a81b7470a9dcc9ba08a2ac48c20baeee4f34749164743e3f" + }, + "verify/results/saves/cr/cr-replace0-autosave.sav": { + "mode": 420, + "sha256": "6b51db992b158caa5424d71b2dccf72924af7198b4165bfcfc870e0d438fb6d5" + }, + "verify/results/saves/cr/cr-replace1-autosave.sav": { + "mode": 420, + "sha256": "8a4309ee4fe0b3177a2820600b5016c7c256d0f51b065df469ecd0b4f2342235" + }, + "verify/results/saves/determinism-hashes.txt": { + "mode": 420, + "sha256": "bfa0615c4b310ae21c09a7d373d5a9d8799f36a0460089e5950fa0edf9d614d2" + }, + "verify/results/saves/human-turn11-spytechs.sav": { + "mode": 420, + "sha256": "aa63dd3d5489884f70d9c35acfb06c23c84531f403798842e7b0cf8cde94d1d4" + }, + "verify/results/saves/human-turn15-spyprogram.sav": { + "mode": 420, + "sha256": "22306d26f8831b90a62c00a2ebad5a97e77017b62ee96a7439d4c2c76c455cca" + }, + "verify/results/saves/human-turn2-orders.sav": { + "mode": 420, + "sha256": "9a94dec562622310893d6f522a0fae06f1033470f4182098e808b175e7df7c8d" + }, + "verify/results/saves/human-turn3-noderoute.sav": { + "mode": 420, + "sha256": "6db0912a050a846c8f3a184811644c76df3fdb65e83dffbf70289e21cc098a90" + }, + "verify/results/saves/human-turn5-traderoutes.sav": { + "mode": 420, + "sha256": "3829e6c6d8f26cd1183a972bd66edadbd71364c11a224b0a6e40461011bcab29" + }, + "verify/results/saves/human-turn8-traderoutes.sav": { + "mode": 420, + "sha256": "afeb3b2d724e07cf59f15eb1bdb9fcf853391fc06fe21beb20c069ff75b2f836" + }, + "verify/results/saves/turn1-state.sav": { + "mode": 420, + "sha256": "a3f9dc4b49fc669c814b09b87a9c6795de21bac80a1c7bfe3901b8e239fa36cc" + }, + "verify/results/saves/turn2-state.sav": { + "mode": 420, + "sha256": "ab4ac2d7e2977260a4de916f65c7ecc6dd5b0094dac4bb51241317232ea17ab4" + }, + "verify/results/saves/turn2-strict-issues.txt": { + "mode": 420, + "sha256": "33a169a2de29ad502e9b7c0159cd543e0b4d71f2d9b3903f5be58c7846db2429" + }, + "verify/results/saves/turn3-state.sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/saves/zuul-turn15-orders.sav": { + "mode": 420, + "sha256": "ef86a0d61de3533f023af5dc2b9a5720e4e0c5c97d900d88181603a13db7d045" + }, + "verify/results/saves/zuul-turn16-noderoute.sav": { + "mode": 420, + "sha256": "b6b5d283b62cc46bca914e86c34cf45e8960a653e818e59664087429bbb30103" + }, + "verify/results/saves/zuul-turn17-orders2.sav": { + "mode": 420, + "sha256": "1b863e684edecb4afe738ba30c8132065ebcf2d9977409325e714fe0173056e8" + }, + "verify/results/saves/zuul-turn17-rollpending.sav": { + "mode": 420, + "sha256": "aac5ba5b10ff1af6b0e38c565b2f0a60c16858ee4e89dd2a2f5b037eae95ee7d" + }, + "verify/results/saves/zuul-turn23-fleet23.sav": { + "mode": 420, + "sha256": "fd3748327d87b8c478f50fcd09d097eacff21e57d946ecb43b8119b4d0d78b1b" + }, + "verify/results/saves/zuul-turn5-species5.sav": { + "mode": 420, + "sha256": "48559ab5b719b332e47b4bf43af85a616bff1508125d62edb211b80637234af6" + }, + "verify/results/shim/ac/ac-probe-run-shim.log": { + "mode": 420, + "sha256": "b9b4a5f0e399e16b477cde0bd7e2c4ce378549eb5a467f7b8ae5eb64d75cb106" + }, + "verify/results/shim/ac/ac-probe-run-watch.txt": { + "mode": 420, + "sha256": "543d76d150aeb9318b9ae27acf638b8935eea30b1a2d47fb15354b584a458163" + }, + "verify/results/shim/ad/ad-r1-shim.log": { + "mode": 420, + "sha256": "fec98888b030ed42b84551aac1286c0baeaf15b8a545af068dc6605615e96df0" + }, + "verify/results/shim/aidesign/parse_aidesign.py": { + "mode": 420, + "sha256": "fbd4aeb71db548759bdb1ff65a5fdd0af6c192927e6ebe4b510f1083c3bdba13" + }, + "verify/results/shim/aidesign/sd-br-p1-hashes.txt": { + "mode": 420, + "sha256": "cd276116a51df01129f0e840d4c04f7964be34f75e51c384cd8df65969f458e6" + }, + "verify/results/shim/aidesign/sd-br-p1.txt": { + "mode": 420, + "sha256": "325cb9fcfa505ab2a93bbd00d60a7a4644b6b5970cb16a288cc7a43f2e825dd3" + }, + "verify/results/shim/aidesign/sd-pin-p1-hashes.txt": { + "mode": 420, + "sha256": "f0371c0a439d736ae7e67e71bd87d693481100d08243d16a1ac1f2ad0ab8bdce" + }, + "verify/results/shim/aidesign/sd-pin-p1.txt": { + "mode": 420, + "sha256": "45e693d279899e7a04cf59bda67190058896b56f3b0607d5aee21abb12f03071" + }, + "verify/results/shim/aidesign/sd-pin-p2-hashes.txt": { + "mode": 420, + "sha256": "e7d6dc12a940305087ee03dc7f8826f3c6343d24d8fea0f2aa78665d887138c9" + }, + "verify/results/shim/aidesign/sd-pin-p2.txt": { + "mode": 420, + "sha256": "b0206869206bc3a41bebb5175e31179f1a5d125a44b5ddfc10c67c4a0d13c22c" + }, + "verify/results/shim/aidesign/sd-t15-p1-hashes.txt": { + "mode": 420, + "sha256": "1ee71a623eb17e08c623ec8de3775218dc3a7c2de50d36a25dd2395382195962" + }, + "verify/results/shim/aidesign/sd-t15-p1.txt": { + "mode": 420, + "sha256": "df9f4906ee8bbb2efc9ba9a38c41607b89711d0bc9f705473d8448e9715d9280" + }, + "verify/results/shim/aiorders/cb-c1-turn2to3.txt": { + "mode": 420, + "sha256": "9d5014b346cb0fa9e2172f45db77c4437a03b069930eaaa80ea94e742891eb8f" + }, + "verify/results/shim/aiorders/cb-c3-turn1to2-run1.txt": { + "mode": 420, + "sha256": "fdaf27a32b93fdb3024f7a45f0d90b2cf833d3f592960027c3a6cf4ecbb8c616" + }, + "verify/results/shim/aiorders/cb-c5a-turn1to2-pinned.txt": { + "mode": 420, + "sha256": "d4daa0c2599c1b573ed59617243a392861dbc4e1fbeb707c7248708c015d998f" + }, + "verify/results/shim/aiorders/cb-c5b-turn1to2-pinned.txt": { + "mode": 420, + "sha256": "9682186176024242fddb901b10d9a5ad6beba91bd895c2001ca954fc293eab73" + }, + "verify/results/shim/aiorders/l4-research-run1.txt": { + "mode": 420, + "sha256": "5caf1fa25b7b8c2d6af213e59c6ec821be3c46cdd92a1024a6faf5d0a3b1d71c" + }, + "verify/results/shim/aiorders/l4-research-run2.txt": { + "mode": 420, + "sha256": "846ef2cfbc365e7ee2f481048978baf820d57026737261bfba3a328d59cdaad8" + }, + "verify/results/shim/aiorders/l4-turn1to2-aiorders.txt": { + "mode": 420, + "sha256": "c55d9b3c48cb552c02731003c26bb6dfcb8afb611c2a188d21fd4a39f550d269" + }, + "verify/results/shim/aiorders/l4-turn1to2-hooksoff-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/shim/aiorders/l4-turn1to2-instrumented-autosave.sav": { + "mode": 420, + "sha256": "e43ec1d2b443c1017d06b21eb8c76b927613ed49aa78bca46a595a9acb368d1d" + }, + "verify/results/shim/aiorders/l4-turn2to3-aiorders.txt": { + "mode": 420, + "sha256": "696c34996e4b5be0383794fae7ea114779f7fdd0a8cdceff5a00aeb07392933a" + }, + "verify/results/shim/airng/par-br-p1-hashes.txt": { + "mode": 420, + "sha256": "656b1d0c073d9988287e5b76543e42eb1c050d9ebc9872e2b7ec5208b7534b42" + }, + "verify/results/shim/airng/par-br-p1.txt": { + "mode": 420, + "sha256": "eadf1cfb7efd7b374472867ddf1cea5f60e30096090c950049f0c264b0299398" + }, + "verify/results/shim/airng/par-br-p2-hashes.txt": { + "mode": 420, + "sha256": "d97916075c7b4c10464962e9e38aed69288a4d68a16a369c1133df16fa134146" + }, + "verify/results/shim/airng/par-br-p2.txt": { + "mode": 420, + "sha256": "bda355cbbf07301cd6d3716eba32312261c402848c91780a97a6d5cce14c3d92" + }, + "verify/results/shim/airng/par-pin-a1-hashes.txt": { + "mode": 420, + "sha256": "5eb1b557826d45fe9d843b37a92aaef54cd1b8a60900f9c34b4fe25e4bd46a24" + }, + "verify/results/shim/airng/par-pin-a1.txt": { + "mode": 420, + "sha256": "17750bab77512434dcc9e66fc86cbfc34df497cadab5b732cf3b0ef3958e09a4" + }, + "verify/results/shim/airng/par-t1-br-p1-hashes.txt": { + "mode": 420, + "sha256": "7577c33ec33d9e94fb77225929c1f34a3dd94c18fe72a394017811b3b5d53467" + }, + "verify/results/shim/airng/par-t1-br-p1.txt": { + "mode": 420, + "sha256": "8bc9969e2da730d26cc5538b758858a00a4ba6ab2d398458ff4dece1edf8bf92" + }, + "verify/results/shim/airng/par-t1-br-p2-hashes.txt": { + "mode": 420, + "sha256": "7e60fc8615163e8ebccf22fc8910f2e7c4f72a9be7a74bc832bc2a0f64ade0da" + }, + "verify/results/shim/airng/par-t1-br-p2.txt": { + "mode": 420, + "sha256": "7e50a728eb5909bd602a9e6996b908b1b2665c8c983cc0258dad000c8bff8e35" + }, + "verify/results/shim/airng/par-t1-br-p3-hashes.txt": { + "mode": 420, + "sha256": "00ce6b3b4c9dbfd192d09b3b06d91b95576cee8a5a85fccdc36a85547fbdcbc4" + }, + "verify/results/shim/airng/par-t1-br-p3.txt": { + "mode": 420, + "sha256": "28cdf1f6b83c1764f1d1e51a67e3f873566b8503f8504ef52f5b5af24b21c0cb" + }, + "verify/results/shim/airng/parse_airng.py": { + "mode": 493, + "sha256": "3fafa7cf2363620d6a25248d085fbc4e3bd1fdbb9388a6795244834a9a2a2ed0" + }, + "verify/results/shim/ap/ap-probes8-d.shim.log": { + "mode": 420, + "sha256": "115545172568edc6a1d5bb3b559f968aa8a7aaa1f6aeba970daebce98fe56a0c" + }, + "verify/results/shim/ap/ap-probes8-w.shim.log": { + "mode": 420, + "sha256": "8af0897a884bb314958c5e6f2fccd88ff8b1890322dafd3bc904b3f983838620" + }, + "verify/results/shim/ar/ar-r1-ledger.txt": { + "mode": 420, + "sha256": "44bddfc0b9e94812a3a1cfd681a1350caedf2ed8e1174900c2f81c90dc95187e" + }, + "verify/results/shim/ar/ar-r1-probes.txt": { + "mode": 420, + "sha256": "c10251c9bcca5436dc42b2c0bd37b66c144aec4036f2069c2df9340fd764992c" + }, + "verify/results/shim/ar/ar-r1-shim.log": { + "mode": 420, + "sha256": "07003ee203d60a638cc8a1cb0a0f6b8042ba227705b4355f1254312c6dd54e28" + }, + "verify/results/shim/ar/ar-r1-sites.txt": { + "mode": 420, + "sha256": "d1923d549ef3567488d0382ae0ef75fa25c5b1b5812ee5349c5c47aea7a30514" + }, + "verify/results/shim/ar/ar-r2-shim.log": { + "mode": 420, + "sha256": "06dbf04cff5a56b0e55d8e73e5b1e3e9d9235f4afafc8139517b68d676781909" + }, + "verify/results/shim/as/as-probes8-run.shim.log": { + "mode": 420, + "sha256": "cd25c93d8b79e0f0df594fe681917fe880741a54a4188d4d72d2fbc6c42ba8d9" + }, + "verify/results/shim/bp/A-aiorders.txt": { + "mode": 420, + "sha256": "ee9f8bb1073e3bf02e115fdee014f79b11100a0e1e35e308c2bcd4b798302c34" + }, + "verify/results/shim/bp/A-shim.log": { + "mode": 420, + "sha256": "853eab98d09ff1e7a8e7da375a678561b02d6236adec627202ff3bb34d90e797" + }, + "verify/results/shim/bp/B-aiorders.txt": { + "mode": 420, + "sha256": "07daeacf33a16afbed64a8a01ffd26fa73c6d2acd0e6993dd9deb06a7fd93fc3" + }, + "verify/results/shim/bp/B-shim.log": { + "mode": 420, + "sha256": "cde2202333e81cc4eec2c47915181229a68a5fa99879968905a2809c4fe0a79a" + }, + "verify/results/shim/bp/L-aiorders.txt": { + "mode": 420, + "sha256": "28492b0f9be74f61db45eae49b44b41efbc1a3bf6f6d2c888e5cc40bfb7753bd" + }, + "verify/results/shim/bp/L-shim.log": { + "mode": 420, + "sha256": "550d8986a35b3f4742e7522df11bfbf2e832e417ad42cc1bff1a39dd4ee510fd" + }, + "verify/results/shim/bp/statecheck-AB.txt": { + "mode": 420, + "sha256": "dacb5cfa5541934f37b2b1c02b87e809c3f65ba8488aa88d925b295fade0083d" + }, + "verify/results/shim/bq/bq-res-aiorders.txt": { + "mode": 420, + "sha256": "991543eb53fbf1353fe99ed96d4ca358e05f6bac32f00bd1f6dc60fcc002c8b4" + }, + "verify/results/shim/bq/bq-res-shim.log": { + "mode": 420, + "sha256": "7855bd268f69443e7ddfda71873458144728630264703482901bf6d8ffbccd3a" + }, + "verify/results/shim/br/BR-aiorders.txt": { + "mode": 420, + "sha256": "d71e11e7c40aaa740adc55651af556afb9e92768336bc11747ad67151f33f4d1" + }, + "verify/results/shim/br/BR-airng.txt": { + "mode": 420, + "sha256": "04eaeaa688a448f64df00dedfd692b78bca0e3e1207a8292c2fafad507f919ea" + }, + "verify/results/shim/br/BR-shim.log": { + "mode": 420, + "sha256": "bc6ef7aa465c2b1a81d08555174e15fb1a97a207da9eefaa8a6155440869a13e" + }, + "verify/results/shim/br/BR2-deep-aiorders.txt": { + "mode": 420, + "sha256": "b9edb53f7d56c1bb26d3bb77349543dce9564930484bc832475a3a04e5f2ad15" + }, + "verify/results/shim/br/BR2-shim.log": { + "mode": 420, + "sha256": "0de7609693747fdf0abaebd60598af127c918f32561c993715aead91cd24b334" + }, + "verify/results/shim/br/aiorders-diff.txt": { + "mode": 420, + "sha256": "411ceb2bacd62185d25a3c58f199c0bdfcd2759705bef2b36536da3870f73a67" + }, + "verify/results/shim/br/cmp_aiorders.py": { + "mode": 420, + "sha256": "b6c192efb40866aa56f29d9ba2b89e17f18ae0579645db8f34a01010db09cc28" + }, + "verify/results/shim/br/shim.cfg.brdeep": { + "mode": 420, + "sha256": "b8017e344666df816f1191906cf8f54504d631bb7ce9d2f51f6f959e4934ff04" + }, + "verify/results/shim/br/shim.cfg.brprobe": { + "mode": 420, + "sha256": "4f090999dba63ef22ab4993bd6af557e9500819c84f27decc126771f48f98efb" + }, + "verify/results/shim/bs/C-aiorders.txt": { + "mode": 420, + "sha256": "5abc20b68edf6ff52301c01825040e1d6b41b582ba40403ed6c4edc42dcbe4e2" + }, + "verify/results/shim/bs/C-airng.txt": { + "mode": 420, + "sha256": "5a4a56506d1eeb82d3bf0fbba95842566911178a82f0aad9d700a9fe00f1b300" + }, + "verify/results/shim/bs/C-shim.log": { + "mode": 420, + "sha256": "8b8dad987589fd159e789806e89dbcf7a7b40b86446d55e1d0bf10ff25cb8f6f" + }, + "verify/results/shim/bs/L-aiorders.txt": { + "mode": 420, + "sha256": "a03e8c1587633ecbb683c376f30e35e126e98ff0e8204c4ee6b5e2b4fc254104" + }, + "verify/results/shim/bs/L-airng.txt": { + "mode": 420, + "sha256": "8d21083857facd3728446af612b3a97b47e5287a5fe0bdf01423812f8445dacd" + }, + "verify/results/shim/bs/L-shim.log": { + "mode": 420, + "sha256": "246af272e464c715c7abb00471b4ddc404b81143f4065006aa4daec4d82cadb9" + }, + "verify/results/shim/bs/shim.cfg.bsrun": { + "mode": 420, + "sha256": "570b15c208d31a367ec6c6886019693cb17b98d254cebead11ec6746ae5af256" + }, + "verify/results/shim/bu/BU1-aiorders.txt": { + "mode": 420, + "sha256": "944eeb701fcd22480513c34d93f8310541977e89a24ae237bd947aed44092529" + }, + "verify/results/shim/bu/BU1-aivisit.txt": { + "mode": 420, + "sha256": "721f038ef80be92325728fc30f095846b54ff1ac67a41537d4a4d1b97d5e9758" + }, + "verify/results/shim/bu/BU1-shim.log": { + "mode": 420, + "sha256": "28ca02f56823e577662744108965bc3ab1d7241143704ac8ceaacf2e9cd077f3" + }, + "verify/results/shim/bu/BU2-aiorders.txt": { + "mode": 420, + "sha256": "5c388039a3e832465f67b4ca88f3f67550d5189a3a68f33c508c4a467733c9ac" + }, + "verify/results/shim/bu/BU2-aivisit.txt": { + "mode": 420, + "sha256": "19963ed364f47fd965508d96fbf9d1f424938f711f2b1cdc83697f789189271a" + }, + "verify/results/shim/bu/BU2-shim.log": { + "mode": 420, + "sha256": "c0a8c467bc4b4134dc83ca5dedbbfed8dac887b432a56cd12f6e211c8d58daca" + }, + "verify/results/shim/bu/BU3-aiorders.txt": { + "mode": 420, + "sha256": "b6443b3f7db541149f54435f14ba830f54d2f950420f3f0694ff12a8b1eec143" + }, + "verify/results/shim/bu/BU3-aivisit.txt": { + "mode": 420, + "sha256": "fe67a4a1cc6a67e06b2eb5675b4b8543ab9f25ea39a18d7f4c83bce74482e0cc" + }, + "verify/results/shim/bu/BU3-shim.log": { + "mode": 420, + "sha256": "0a802ec556c87f44efaa06f211e75d9b89a66ac6db5a08e34d2a7eae992121ed" + }, + "verify/results/shim/bu/claim-order.txt": { + "mode": 420, + "sha256": "7135e3ed0204a4615e546bc882992073d4b48ee42ea341186c32b6b3dd3dfc47" + }, + "verify/results/shim/bu/claimcheck.py": { + "mode": 420, + "sha256": "85c5ec747f12cf37ec2dbc4021447909eeded68ecd1abb697a6fb60005a54aff" + }, + "verify/results/shim/bu/shim.cfg.bupin": { + "mode": 420, + "sha256": "6b37b047adc95f7c08b6767cdec5bd715a8851f14bff7f187772835d1cc032a7" + }, + "verify/results/shim/cr/cr-N.log": { + "mode": 420, + "sha256": "d5459e6dcf44fbe55d0f60f1ac40d68bed96319bb55986cc24a1b9ca0d8103e0" + }, + "verify/results/shim/cr/cr-R0.log": { + "mode": 420, + "sha256": "3b703881aa2b9a1c111201ff9543f2dcae0f948567ee877df275a1093bb567f7" + }, + "verify/results/shim/cr/cr-R1.log": { + "mode": 420, + "sha256": "8df6af84f74891ff9b0b02fa150641f5fadcd0419bc53c41cbe80bf14ec9c712" + }, + "verify/results/shim/eventlive/c6b-loaded.png": { + "mode": 420, + "sha256": "f442d4b211a47b331cef9a255e83732b80a1ede70ac200596c796ac0aa320017" + }, + "verify/results/shim/eventlive/c7b-turn3.png": { + "mode": 420, + "sha256": "3e070abfbdf4efd2662951049f8545f328aa172d64d00b9c5a1f4243426e803a" + }, + "verify/results/shim/eventlive/load-dialog-8files.png": { + "mode": 420, + "sha256": "e0fc5af16042a70b53bf7d44220db56c56a466c22c4abd641557e94b8e6c1693" + }, + "verify/results/shim/eventlive/shim-zuul.log": { + "mode": 420, + "sha256": "f9d184b33c46cab9d497f7a38056c099ce2ff9b5e8149f563a2353d91985fea1" + }, + "verify/results/shim/eventlive/shim.log": { + "mode": 420, + "sha256": "e65f2e3efa1ce8f70c483bb966448239923db2d3924c709a669bb1a890411b0c" + }, + "verify/results/shim/eventlive/t7-after.png": { + "mode": 420, + "sha256": "dc0a3e8f5a5c9032ead266d106fa69a57677711eb807d26376f29baa6ec0b934" + }, + "verify/results/shim/eventlive/zuul-turn1.png": { + "mode": 420, + "sha256": "f9af979ed08315c0a8d644af800318634b3641628f710f3f9b4d2c77d4f70fdc" + }, + "verify/results/shim/l1/README.md": { + "mode": 420, + "sha256": "f008081756d99825aa81d2802869476f8341f81aeb8c4dbbb77502cf76db5145" + }, + "verify/results/shim/l1/cdiff-frames-2-51.txt": { + "mode": 420, + "sha256": "57cb1911c5bfc7bdfacafc6bb1ad382fc05f46fb9cdcee4479d861af48e585c1" + }, + "verify/results/shim/l1/cdiff.py": { + "mode": 420, + "sha256": "2ace41ce6017cfac8758d8b9955f02de84738d90067a7dfadeb8bffffc842027" + }, + "verify/results/shim/l1/rep.py": { + "mode": 420, + "sha256": "1a7a3819da8e9aeaaf213a62b696388b0a9489924c964407536831b5f7dd9488" + }, + "verify/results/shim/l1/saves/l1-t1t2-post-hooksoff.sav": { + "mode": 420, + "sha256": "e43ec1d2b443c1017d06b21eb8c76b927613ed49aa78bca46a595a9acb368d1d" + }, + "verify/results/shim/l1/saves/l1-t1t2-post.sav": { + "mode": 420, + "sha256": "62061918176e344106e82357e58acc8adec488f6b2969831cb99a84cf25e31c5" + }, + "verify/results/shim/l1/saves/l1-t2t3-post.sav": { + "mode": 420, + "sha256": "2177c659d8dbc39cf7485abe367d42d55cc42cc9a61949d403dcbc79989ec32d" + }, + "verify/results/shim/l1/saves/l1-t2t3-pre.sav": { + "mode": 420, + "sha256": "641a33f06b2fe1c1caf0c4994442bf13a4b03f25a85b34a9875cd22b75715896" + }, + "verify/results/shim/l1/seed-two-processes.txt": { + "mode": 420, + "sha256": "d60412049ced59705284a46078f1906e1aad4140f90db2169e08aeb9530dd985" + }, + "verify/results/shim/l1/seedrep.py": { + "mode": 420, + "sha256": "a06de5d5ccc1e87808eb3877534076340ef5330bee9a86953b8f4dae0268e087" + }, + "verify/results/shim/l1/trace-et1.jsonl": { + "mode": 420, + "sha256": "f21a213bc56983bc94f24303b0837b160f93bfb7e3ca6abdbf2e18321f8dfa19" + }, + "verify/results/shim/l1/trace-et2.jsonl": { + "mode": 420, + "sha256": "6e44b0fc541c3082f91b115de67f5315f43b9db21f0696b856cfff2ead51323a" + }, + "verify/results/shim/l1/trace-oracle.jsonl": { + "mode": 420, + "sha256": "ad9ecbe79a71c84930302868850806798228fe0f2e625b442dd3ed579c05092c" + }, + "verify/results/shim/l1/trace-playforward-f51.jsonl": { + "mode": 420, + "sha256": "6ed0af385dfe7288ad2c994458c8f5d75fc8e29b603dd6607a3703591d25eeb4" + }, + "verify/results/shim/l1/trace-seed-proc1.jsonl": { + "mode": 420, + "sha256": "120074583eb02cd4c3a29aab5826f789d52a6146930b1763f9b0bb824e9a350a" + }, + "verify/results/shim/l1/trace-seed-proc2.jsonl": { + "mode": 420, + "sha256": "03dffeafeff0c33d926207f869741dc544141425c8f665bf58aad4fd363e2f95" + }, + "verify/results/shim/l1/watch-arm.txt": { + "mode": 420, + "sha256": "f8d5811c938d16d003a72a97f2b4b33112914a7ee378fa2b334282616592943e" + }, + "verify/results/shim/l1/watch-hits.txt": { + "mode": 420, + "sha256": "1bf62ac965036a189055cd59a92007c70a2a6aca307df54ce8ccb997048f43d5" + }, + "verify/results/shim/l3/l3-probe-run-shim.log": { + "mode": 420, + "sha256": "f5cd336971ae3d3eaff642e80d9defa20ec2e1ee11e212a082c24365b18d8684" + }, + "verify/results/shim/l3/l3-probe-run-watch.txt": { + "mode": 420, + "sha256": "8d969595789c690a688f7b8fac05288c614d5d9210388ca94315158948c85f24" + }, + "verify/results/shim/l3/l3-spy-run-shim.log": { + "mode": 420, + "sha256": "5abfd08445e9e8139945b095ddddfb56480062019ce6d40304a440c317f21fd1" + }, + "verify/results/shim/l3/l3-spy-run-watch.txt": { + "mode": 420, + "sha256": "c669ccf79202e7060c153151e4fe1be96acf4030cb64aa71bd6a5c212b550b47" + }, + "verify/results/shim/m0-main-menu.png": { + "mode": 420, + "sha256": "465207fda4722ca53585b71647a08b1149944036792a072e7c34e2c437a3e37c" + }, + "verify/results/shim/m0.log": { + "mode": 420, + "sha256": "581d63139503892b6aeeff71acb742143393e9f107aa1f3605d8c028c927cad1" + }, + "verify/results/shim/m1-shim.log": { + "mode": 420, + "sha256": "35401ea82b9a64dbfdb54c282c06c51d7b696afd4ea2794e16071e0fd5c7cbef" + }, + "verify/results/shim/m2-scout-shim.log": { + "mode": 420, + "sha256": "8c46117bdde6b6911a4d77b059b40803d4966652990c8fa3ed67773e5db0459f" + }, + "verify/results/shim/mf-after-shim.log": { + "mode": 420, + "sha256": "86601372b980828171e98fc71afe865f207b1745ef4dcdca646a618c91d17426" + }, + "verify/results/shim/mf-after-turn2.png": { + "mode": 420, + "sha256": "a1f83011ff96e990d7cc80f8306e8fe0c58b96f84eb73ccb6cb013019900133d" + }, + "verify/results/shim/mf-after-turn7.png": { + "mode": 420, + "sha256": "313f3863ab901320174c8ff7cf6f1f6b0d5b3d9d7a2f8999eae6413aedc46fc5" + }, + "verify/results/shim/mf-before-shim.log": { + "mode": 420, + "sha256": "8377a87c7ed05fd0cd7b61e3f1d5fc9c2b9fa294f812c67183d4ce31323a64b1" + }, + "verify/results/shim/mf-before-turn2.png": { + "mode": 420, + "sha256": "c9805791f402ec159fcc6acdd283120eae8536b230666d3049374525595b589f" + }, + "verify/results/shim/mf-before-turn7.png": { + "mode": 420, + "sha256": "3b880b8f96c4cc328aaff8e41068db29b295be8f000c432e321a51b6030b1272" + }, + "verify/results/shim/mf-human-home-no-ships.png": { + "mode": 420, + "sha256": "dfda3e9784eefdc7b75d04908e95c3a192eda7796685907c65bfde3068d6f2bb" + }, + "verify/results/shim/probes/human-t3-5-perturbed.txt": { + "mode": 420, + "sha256": "9b594ab18cdd9aec4fdf807b4d97576191bc6fd48a85cc872c222b515d0f7c01" + }, + "verify/results/shim/probes/human-t5.txt": { + "mode": 420, + "sha256": "0ddd9f0391a3a5d655f1809a9e79d537badd8071f8834e58bdbc7f95d9ff1320" + }, + "verify/results/shim/probes/oracle-restore/h-oracle-autosave.sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/shim/probes/oracle-restore/h-oracle-endturn.sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/shim/probes/zuul-t24-25.txt": { + "mode": 420, + "sha256": "50567b7cb1f008d025baf6cb4b4ad7af7d767a2182afd082c3ac1b1a66c79541" + }, + "verify/results/shim/recap-b1-shim.log": { + "mode": 420, + "sha256": "601cd4cbbec3e8c1f7776eadc4203256ec4c5d1e3e180295369727e1da69ff37" + }, + "verify/results/shim/recap-b3-shim.log": { + "mode": 420, + "sha256": "7c5110a9d4431cc03729a7bddcb13ee69a6d428199051e175b0921391fc02a80" + }, + "verify/results/shim/recap-misc-shim.log": { + "mode": 420, + "sha256": "7cadf2eadb08979cda39fe7e3ed6cfa3f62bdbcd256fc7550b3e27c3f08c9b3e" + }, + "verify/results/shim/recap-misc-turn7.png": { + "mode": 420, + "sha256": "2c1451ded36ad79389f0eb3db098b4e0b0a6f12495d64c832f6e093374005c29" + }, + "verify/results/shim/recap-trace-shim.log": { + "mode": 420, + "sha256": "56da143a92b2edda727862a6fd4a056c716153e23cfddbde076e218ce4c4285f" + }, + "verify/results/shim/recap-turn2-loaded.png": { + "mode": 420, + "sha256": "62a42c44f99d8a53bca735d54a5adf48b89449bb859e859ec573cb40e1a7f2d0" + }, + "verify/results/shim/tailrng/save_rng_delta.py": { + "mode": 420, + "sha256": "a9a04b131427a43372d87688b8eaf230a82a79e2c3c241a90ff4eb31e039749e" + }, + "verify/results/shim/tailrng/z-t5-autosave.sav": { + "mode": 420, + "sha256": "b2124798470d85ea86b0e9e4abfd9e23f3be73caa1115dd7614021be76305939" + }, + "verify/results/shim/tailrng/z-t6-autosave.sav": { + "mode": 420, + "sha256": "2ce6aef9d49ea238455f3ac680556c6a251065af3e28b6540fe09597ae38571c" + }, + "verify/results/shim/tailrng/z-t6-endturn.sav": { + "mode": 420, + "sha256": "afb112896c0236fa715ab3c10139958294085bb2066e22a6d7b76deb0dfa46dc" + }, + "verify/results/shim/tailrng/z2-autosave.sav": { + "mode": 420, + "sha256": "b2124798470d85ea86b0e9e4abfd9e23f3be73caa1115dd7614021be76305939" + }, + "verify/results/shim/tailrng/z2-endturn.sav": { + "mode": 420, + "sha256": "8648957fecf5041233f9add4c8173f78981f026f133ecdbecdb89ddd10917048" + }, + "verify/results/shim/unlock-shim.log": { + "mode": 420, + "sha256": "20a6625b369acb773543e530f1bfdc8b7eaca5c6b58415cc5009bb9858e16f22" + }, + "verify/results/shim/watchpoints/w2-modcount-status-2turns.txt": { + "mode": 420, + "sha256": "335be910dc11a20c9fb80f3b0f37f04fd50a9d8074697bb5365c3fea02790b74" + }, + "verify/results/shim/watchpoints/w2-shim-log-excerpt.txt": { + "mode": 420, + "sha256": "9a344045270e3815004a3376eccfbd030372faba54374d9b6626fd80740b8b13" + }, + "verify/results/shim/watchpoints/w3-modcount-turn1.txt": { + "mode": 420, + "sha256": "328a2319e320f5382e82ad497b6b73245c397cf67515e8a27fa9712418af81ae" + }, + "verify/results/shim/watchpoints/w3-shim-log-excerpt-turn1.txt": { + "mode": 420, + "sha256": "a9b3c20f90a76ee624bde6ee4cae9d1ff1f2baa67aa770a0e70042cb44d11915" + }, + "verify/results/shim/watchpoints/w3-shim-log-excerpt.txt": { + "mode": 420, + "sha256": "af9fe2258fe4168f6066768809c509380183f61bc337331392c5202b900d906a" + }, + "verify/results/shim/watchpoints/w3-tshn-containers.txt": { + "mode": 420, + "sha256": "08eab48d1a202f975f1be87e2279379646142f8b22d9dafc56295399083ed0af" + }, + "verify/results/standalone/cv/cv-input-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "d29f3514e4209954d6c068f34285615aef5f4627ba4627ce97c0e65f93620159" + }, + "verify/results/standalone/cv/cv-leaf-worklist.txt": { + "mode": 420, + "sha256": "0f309711de89cc10cf940d0d4b051b5052ce49a3cc0f3f80c532b50256410778" + }, + "verify/results/standalone/cv/cv-noreplay-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "3734f197cfefd017dbe562fd421d40859bfc2c37d9ac2cedf9c7ddd340a3a4a7" + }, + "verify/results/standalone/cv/cv-replay-run.log": { + "mode": 420, + "sha256": "7372c7da437ece21098cc6f66d0631e146d8aae14a9242bd2278a9922a7f7c02" + }, + "verify/results/standalone/cv/cv-replay-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "1932158abec82f45b9b838f4cb79b1088190ca5281d388f57356af7776e96950" + }, + "verify/results/standalone/dt/dt-canonical-after.txt": { + "mode": 420, + "sha256": "f32fdcf7d6431293133e951045b42a55e8a27d75cd859ad08cd719e5fb696712" + }, + "verify/results/standalone/dt/dt-canonical-before.txt": { + "mode": 420, + "sha256": "b56160cfdcfa0fff25be2aa566959261e375004905814803e231889da665188f" + }, + "verify/results/standalone/dt/dt-observed-leaves-remaining.txt": { + "mode": 420, + "sha256": "e14bd20e60480f98a564e585c0d25d2e758f71016811b8981dbdacd9d51c0c82" + }, + "verify/results/standalone/dt/dt-replay-run.log": { + "mode": 420, + "sha256": "4b7907fc4e735b1c12e3cf64671079abaad757aabd752b134a9fb27d065656cd" + }, + "verify/results/standalone/dt/dt-replay-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "8ddb84e7e6c2f663b1bc4b9611a56a46aac9d09863dcc5be765cb70dc9642c22" + }, + "verify/results/standalone/max-income-oracle.json": { + "mode": 420, + "sha256": "245796e0aea5f5c2238686cba10c651156117fb454805553b2508a8a8fe71a69" + }, + "verify/results/standalone/report.txt": { + "mode": 420, + "sha256": "b47e90432eaf38149f2ecb5316d1962813b6b1423848e36fcc9435ad1f5485df" + }, + "verify/results/standalone/rng-oracle.json": { + "mode": 420, + "sha256": "98a364c80f69d6a84b86c3f9ccc16176d9e769ff061569b0c0ddfced53f9146c" + }, + "verify/results/standalone/rng-oracle.txt": { + "mode": 420, + "sha256": "3496a217a7e4f80bb18c1b067eaedcafcf7bdc877460c6346606fd7f6a55b877" + }, + "verify/results/standalone/status.json": { + "mode": 420, + "sha256": "d38ca6222c83df3a5886e6b32a30772c7174cc0e584f4a3beabedc05770df9cd" + }, + "verify/results/standalone/t36-turnrecord.md": { + "mode": 420, + "sha256": "b017a93ad04af69ef469cd8ea536dff4cab17140d20b3665e7c89533ab5b8a84" + }, + "verify/results/state-checksum/ad-oracleA-vs-oracleB.txt": { + "mode": 420, + "sha256": "b6c440e20108ad2727a7d7aa32a4bd673ec03ca4372461797705d619de1ba48a" + }, + "verify/results/state-checksum/chain-turn1-3.json": { + "mode": 420, + "sha256": "33941d0dd77bfb79e4302f82a410f5f18fe3ae1ade684b5b59c6ed352789a696" + }, + "verify/results/state-checksum/chain.txt": { + "mode": 420, + "sha256": "ae1037dd8394b258ce91262877d348a0561c5f5056cfae74cc0d058e4166aa83" + }, + "verify/results/state-checksum/float-census.txt": { + "mode": 420, + "sha256": "c697c0f187ee8a8ebb157cbff8d7ae42c92f36a501b16acd9f9839a0ffc306a9" + }, + "verify/results/state-checksum/identical-roots.txt": { + "mode": 420, + "sha256": "1143fabfe96954440542adcd3830ad1d862be6c091f3c1b2e63e92a2751703e7" + }, + "verify/results/state-checksum/resave-localisation.txt": { + "mode": 420, + "sha256": "85f4e8fe3581ba5d0ae74974d757c4c2fddc008f3fbe6781891ae8ef65aa693e" + }, + "verify/results/state-checksum/roots.txt": { + "mode": 420, + "sha256": "6ea7ad668703baaff870720683bcc13beff557cebf8e7843526d6677e5b5ef68" + }, + "verify/results/state-checksum/turn2-to-turn3.txt": { + "mode": 420, + "sha256": "3649c86742460a54d89714df1917508f76952c44c07cb7fbc19010910c5df0f4" + }, + "verify/results/turncommands/br2-turn27-deep.tcb": { + "mode": 420, + "sha256": "329b9c3f1e9f85ddeeb71148bd5c0e38f7d26445ed349df60ffbfaf63db46102" + }, + "verify/results/turncommands/br2-turn27-shallow.tcb": { + "mode": 420, + "sha256": "d8346969421a92fa199d0b9faafa642dc2e71a527b08d27984fe73ee70ecbd6b" + }, + "verify/results/turncommands/cb-turn1to2-pinned-run2.json": { + "mode": 420, + "sha256": "01e572975339fbe8a242b2438719173bd5bb4f4916078e5887026408923eb356" + }, + "verify/results/turncommands/cb-turn1to2-pinned-run2.tcb": { + "mode": 420, + "sha256": "16e349db6c46e46520cd2e5f0a9fcf70b537dce878324dd873418ef6cebd8658" + }, + "verify/results/turncommands/cb-turn1to2-pinned.json": { + "mode": 420, + "sha256": "2d4f108b8ac6b1e582382ac25d53f354c293e7caf390b8462d15beaf8e43e01c" + }, + "verify/results/turncommands/cb-turn1to2-pinned.tcb": { + "mode": 420, + "sha256": "28ebfecc3495cc4f5b2892e420cb1b83f3cbdb6b7aabe107f4b1d18233a06094" + }, + "verify/results/turncommands/cb-turn1to2-run1.json": { + "mode": 420, + "sha256": "c9de70196af5453df15cfebcb92c973dfed9d54ffa0dc0a397839cf951ac9b58" + }, + "verify/results/turncommands/cb-turn1to2-run1.tcb": { + "mode": 420, + "sha256": "5cdcfb3ade6cdfb2c00c234f5535c791780230f520d27be14f617462347b4948" + }, + "verify/results/turncommands/cb-turn2to3.json": { + "mode": 420, + "sha256": "8a0d4fc9efae9dcb4eca0de41bf28444d79eb5a4fd4e426671a4d80ab5a46f44" + }, + "verify/results/turncommands/cb-turn2to3.tcb": { + "mode": 420, + "sha256": "420a5d03f2a4ecfa0789835cc46f98961d11bbd7c7fd5f59dc28301aa0b65b6b" + }, + "verify/results/turncommands/l4-turn1to2.tcb": { + "mode": 420, + "sha256": "1b9faa7f8aad9196e36cf1c450e340f37c502a69ccfcaaad7e289bd7b4727b12" + }, + "verify/results/turncommands/l4-turn2to3.tcb": { + "mode": 420, + "sha256": "b0443f176c3915389278de608a8e7c63fa48d4777b924c0e383c7279f2a297e0" + }, + "verify/save-reader/SAVE_FORMAT.md": { + "mode": 420, + "sha256": "5ac2556b6c063c9296ef29e8514cc312983d48a8e2c2832f504c970629990b33" + }, + "verify/save-reader/fixture_joint.sav": { + "mode": 420, + "sha256": "fbe41595e50bb580786f36b197d5b85f87820974c545107c864fa2f1862af3f1" + }, + "verify/save-reader/fixture_split.sav": { + "mode": 420, + "sha256": "3909f12d021bf840617dc8d599841b64d67be46e1c6882cba7728d312d310071" + }, + "verify/save-reader/save_reader.py": { + "mode": 420, + "sha256": "2dcac286b5382b67fe8f2dbce58c80950dd430b726ed0e98f3bcea155df0df35" + }, + "verify/save-reader/save_writer_stub.py": { + "mode": 420, + "sha256": "8343ad15f742ee1b9cd62108efbc9c4b2718c3807442e3dfcfa9513ced7d3638" + }, + "verify/save-reader/test_save_reader.py": { + "mode": 420, + "sha256": "29f609d037eed99bb5444004facbff7b2c5c36fae568e815810585fdc3ddd393" + }, + "verify/state-checksum/STATE_CHECKSUM.md": { + "mode": 420, + "sha256": "5680299a4df27e30cdb545d9d2a640caf9299d61acb662b9512589e4390954e1" + }, + "verify/state-checksum/float_census.py": { + "mode": 420, + "sha256": "a568aad8b9f38aba2474f33941550bf948d050694a1d04dc5c85d15687223ae9" + }, + "verify/state-checksum/run_validation.sh": { + "mode": 493, + "sha256": "bf84b999d2b90368703e80235bac0258b70a1c37dd1902c9205a914a59cb1fc2" + }, + "verify/state-checksum/stability_check.py": { + "mode": 420, + "sha256": "8e640561b05decf590524fbe0dbf3b76a5e2f9c7fde93e005ca6e79464c305f1" + }, + "verify/state-checksum/state_checksum.py": { + "mode": 420, + "sha256": "ed80458e84d92040aa3872464d8df315e935f379ca0da5a2df81c3049826e5b8" + }, + "verify/state-checksum/test_state_checksum.py": { + "mode": 420, + "sha256": "d0ccf8e8390fd0a5d76a8695a490d85dc7e8e415a06ec50b592c57474cc9a73b" + }, + "verify/tooling/README.md": { + "mode": 420, + "sha256": "b05249530d65d43220c1e5c4666939c360d6139ed404a8881f6ad0a9c5c27af6" + }, + "verify/tooling/fixtures.py": { + "mode": 420, + "sha256": "56cccc88b9b9468e07c9ddff39d65813098053ec9e8f00432736906389f200a7" + }, + "verify/tooling/host-tests.json": { + "mode": 420, + "sha256": "90833c99e2749ff890b16b943f43f6ebfc1a1c611f2ed1e40555426fded45c97" + }, + "verify/tooling/test_tooling.py": { + "mode": 420, + "sha256": "bb8d15960dfda13f15cffc57f3b669003b127b4dedbf34100bb4a51c29dd3c6d" + }, + "verify/traces/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "verify/traces/ac-probe-baseline-turn15.jsonl": { + "mode": 420, + "sha256": "a2f4e410f6a8d77f7680b4a69b5b2ac2f59fa80515b0cfe8209e7fec8e4a5b6b" + }, + "verify/traces/ac-probe-turn21-turn23.jsonl": { + "mode": 420, + "sha256": "2bb9317b82744c0da36ef6d9c1a78f31ebacea49b82a18005c0cc75bad62d345" + }, + "verify/traces/ad-r1-turn28-turn29.jsonl": { + "mode": 420, + "sha256": "cde7a1e010aa6195163f3b9320aa5c496fd8c271e9648c90c7319837dd967571" + }, + "verify/traces/ap-probes8-deploy-turn15.jsonl.gz": { + "mode": 420, + "sha256": "e257d5ea3fcb4be8da570d6a5589022e6ba412ff2712f4f06832812d8859e08a" + }, + "verify/traces/ap-probes8-turn16-turn26.jsonl.gz": { + "mode": 420, + "sha256": "df4fb35d9824799d8be79f3a9e976b55b7cd0fb5488b3e12711d04eb3c320f13" + }, + "verify/traces/ar-r1-turn38-turn43.jsonl": { + "mode": 420, + "sha256": "f8653cbd1956346816897b313031c5d70898144d1c84b1c849ac37bfe3bd993c" + }, + "verify/traces/ar-r2-control-turn38-turn39.jsonl": { + "mode": 420, + "sha256": "c1068652ddf54d2ff266c1dc1ef1e69ea663f5d2a83143408f77ec782b3dd988" + }, + "verify/traces/as-probes8-turn15-turn16.jsonl.gz": { + "mode": 420, + "sha256": "024bb0663b167eb364c8e138bae0bf10403860c195bd593cb56f60281060c4e8" + }, + "verify/traces/b2-final-menu.png": { + "mode": 420, + "sha256": "5a95fe260c9cb13dad5fc6f00460819107db93f4ac89f455077ad056600f83fd" + }, + "verify/traces/b2-shim.log": { + "mode": 420, + "sha256": "c31cf01af3659b7fdf008ff44f88f67ee4016dcfb30fc4a72b4d72ea0da8e404" + }, + "verify/traces/b2-techfx-compare.jsonl": { + "mode": 420, + "sha256": "f0202f45b276db6744c80768f12695153812bc882de688cf64705ed6a52f243c" + }, + "verify/traces/b2-techfx-golden.jsonl": { + "mode": 420, + "sha256": "43639e75bd9d510ed270c9cfcbb0c9665f5a6546f748ba81eba3f015e7ca233c" + }, + "verify/traces/cr-N.jsonl.gz": { + "mode": 420, + "sha256": "0071ae72a142533ffb91f9f04caa6704102c826761ff5ae24b57a1c3e9652e46" + }, + "verify/traces/cr-R0.jsonl.gz": { + "mode": 420, + "sha256": "6228c88cebb4dad2158e5586ecbcf71d1160116f2f4a2a8bc020658da8d7d706" + }, + "verify/traces/cr-R1.jsonl.gz": { + "mode": 420, + "sha256": "73f5f15b3343381cf3f973caaf74588fd3d0b6759de1ddcf9e12b9b3ebf29713" + }, + "verify/traces/eventlive-b3-t1-5.jsonl.gz": { + "mode": 420, + "sha256": "9cb344f1d8a3beb4bc1a2bf16baed6c38667443ead9f66fa0f53474a683d263c" + }, + "verify/traces/eventlive-b3-t1.jsonl": { + "mode": 420, + "sha256": "2d9962de9a7ea7fb28b33b72209706b4a27673096f71c8789f9f10ac465f387b" + }, + "verify/traces/eventlive-b3-zuul.jsonl.gz": { + "mode": 420, + "sha256": "0ee09bb884799e72c6a617ab02e741a7ba791ff458af439b9947a87b368a64de" + }, + "verify/traces/h-probes-human-perturbed-t3-5.jsonl.gz": { + "mode": 420, + "sha256": "2567f8ccb6276a4d647c4f4b88d14f7ae63aa4d1797f672a9bd9c7c86e4d7473" + }, + "verify/traces/h-probes-human-t5.jsonl.gz": { + "mode": 420, + "sha256": "92964779111573dc72e6a1845217cd7d709c9900594a106b3de7b59c2b7a88a7" + }, + "verify/traces/h-probes-zuul-t24-25.jsonl.gz": { + "mode": 420, + "sha256": "0966294af27b49159b1e72e683abc0b59fd52cc9bfd9f517130d30cedf7efa29" + }, + "verify/traces/l3-probe-turn8-turn15.jsonl": { + "mode": 420, + "sha256": "d1b5436f917bb4f6f74bd7b1967dbd0626db2c3a5cbc1d67684ef9f010826676" + }, + "verify/traces/m1-compare.jsonl": { + "mode": 420, + "sha256": "f0f6fd15bc73008e43e20d6ed4c4dd91fb2ec8b40935bfd3cc000d8a84ea6731" + }, + "verify/traces/m1-trace-golden.jsonl": { + "mode": 420, + "sha256": "4a4ddc031fb26a8f8b10dace297c73670f53dcbd250a9be94c0e31c9bb44dcc5" + }, + "verify/traces/mf-after-compare.jsonl": { + "mode": 420, + "sha256": "2a894892977176df1a9d6c8199b0f81b48c7bcac15d2c0e7786441fc6125226e" + }, + "verify/traces/mf-before-compare.jsonl": { + "mode": 420, + "sha256": "ee005097ebaac9f30c63f1e400fdf19a47e88010c71d215885234986d122410e" + }, + "verify/traces/output-ref-turn2.jsonl.gz": { + "mode": 420, + "sha256": "7af583350545501414eda38439f2d0fa39149342d9001d2926e2a4e4fdd5cdca" + }, + "verify/traces/output-zuul-and-ref.jsonl.gz": { + "mode": 420, + "sha256": "d581cb50f07766911fa59fa1df1524b33a9df6eec06226966efd5f54f09b6fb5" + }, + "verify/traces/recap-b1-compare.jsonl.gz": { + "mode": 420, + "sha256": "0ce1c92028a8cd10a38d7cca72f90c37ccbd844f24a1950bf0eb6e75739b44e2" + }, + "verify/traces/recap-b3-compare.jsonl": { + "mode": 420, + "sha256": "6ed3bcd99b4657d614bf63cc0fc2dfff650f4cb14e51086ea98c21bccbcf5fa8" + }, + "verify/traces/recap-golden-trace.jsonl.gz": { + "mode": 420, + "sha256": "d62431e9461ffb1b66adc16a39542b86fa8e0cf54a0ed446a8781c4d75a6c3bb" + }, + "verify/traces/recap-misc-compare.jsonl": { + "mode": 420, + "sha256": "d7c4446d45a9cab2af3da4a0d76f7a42c245da1f59db96fddf31d8b1f2c436ed" + }, + "verify/traces/tailrng-drawsites.jsonl.gz": { + "mode": 420, + "sha256": "5c1806e2b1452226674013119e3b220f3cf42be2ad8b0ed998050ad65d1f8415" + }, + "verify/traces/tailrng-refturn2.jsonl.gz": { + "mode": 420, + "sha256": "c33c6cafe015bda6acf5ca32b0c9595e1611f4ac82ecd3adaff8315c7bd3e560" + }, + "verify/traces/tailrng-zuul-long.jsonl.gz": { + "mode": 420, + "sha256": "213e7dd8a6809dd93190f41c87218e802f1fbe77d44d598f287c2a19544063af" + }, + "verify/traces/tailrng-zuul-noderoute.jsonl.gz": { + "mode": 420, + "sha256": "9476ee3b9b397ca9e20bc92eb887c109a075487cdd750746af051797e8838115" + }, + "verify/traces/unlock-b3-t1-5.jsonl.gz": { + "mode": 420, + "sha256": "f6e27a60bf6c74eb98d8bec50146fe1996642285ca008c6a70c3cb148c6ba54c" + }, + "verify/traces/unlock-b3-t1.jsonl.gz": { + "mode": 420, + "sha256": "bfa53bba3e59d17dd330e38ef52fd04fd92f05f3ad357fefd77388d083b49a05" + }, + "verify/traces/unlock-b3-zuul.jsonl.gz": { + "mode": 420, + "sha256": "d94c635105a75a68cb811a3881faf371678c075d240998f48fcf348b8459063f" + } + }, + "manifest_sha256": "b4db6808cc2b8aca33fa27eaab330d32811ce146d829a1bb9474a03f7ccdaeb4", + "path": "/tmp/opencode/sots-final-research-re" + } + }, + "source_before": { + "engine": { + "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", + "files": { + ".gitignore": { + "mode": 420, + "sha256": "5103c9533f0d31fea29c0cc85d543692af84a697416dfa7557e31c9843210145" + }, + "AGENTS.md": { + "mode": 420, + "sha256": "7d1d4bc05c35e3354a77b3c8d5d2c04fb9d6658d09e87bc814a50bc3d2033fb7" + }, + "CLAUDE.md": { + "mode": 420, + "sha256": "15d60c3d592302a2854df8bf6d39c0a578c22b9273a633447e10b76fd76291f5" + }, + "CMakeLists.txt": { + "mode": 420, + "sha256": "6e9791511ea23bf8bf5f7f58617a7e77bbe5006829609e425e565c11c1e8d7ed" + }, + "CMakePresets.json": { + "mode": 420, + "sha256": "fcd1dfe3989ee4f56fa3e419059e1db5621922165edf05f13cfe8e5d786d8bb0" + }, + "CONTRIBUTING.md": { + "mode": 420, + "sha256": "26a381fe08feb51f861655f77de4e558f056d1dba79162a2e82513a92d0e6506" + }, + "LICENSE": { + "mode": 420, + "sha256": "eedebad43ea495111bf4451d78cb440309d90a733d6a36445699dde0629f1858" + }, + "README.md": { + "mode": 420, + "sha256": "66c2437fe4f074e6499de50b0d5f0d013bc290333f4d4bf554b541261885a0c1" + }, + "cmake/toolchain-mingw-i686.cmake": { + "mode": 420, + "sha256": "231c0b79868a77d54cc6619f0b4ea18454964a1a078806f44a6ffe3fb7741a9b" + }, + "docs/A2-alliance-and-modcount.md": { + "mode": 420, + "sha256": "0c0c45c31d5d64124f3b91a161f8a2f4732c8a5d7f6bc524baf4d59f8a191701" + }, + "docs/AC-predictions.md": { + "mode": 420, + "sha256": "ab9e41714abdbc32e620d8a2068be8ebd2fc8898ba149113c66ccda248b4bcda" + }, + "docs/B1.md": { + "mode": 420, + "sha256": "42b61bbfc135cdcd0f1a32f63164b88e67106400de7f08f543f118eccd814364" + }, + "docs/B2.md": { + "mode": 420, + "sha256": "87dfd333ee15681a3aa4de58cf1b14ff8240e75afabc05012e0f28531cb4b8b8" + }, + "docs/B3.md": { + "mode": 420, + "sha256": "fb65c41037b6cd6252c67e5244d492a3a17ea4ba2ddae821d49fe0a879528518" + }, + "docs/B4.md": { + "mode": 420, + "sha256": "22547b3d2960684e52a380fb07f43a75bf50aebf93cede689f297cf38f4a012d" + }, + "docs/B6-ship-construction.md": { + "mode": 420, + "sha256": "9c5c4fd2059af965e317c9db5b7fbfc440397ddfcdc5bf7860115f6a8a0532ab" + }, + "docs/CB-capture.md": { + "mode": 420, + "sha256": "ce45a9082588051eda7438016dc66eb28bb4afda98b82cdc20102c4ca53529f0" + }, + "docs/CB-predictions.md": { + "mode": 420, + "sha256": "ba51538b018cbb403978f97ad45d4743937d49ba55c8f15d7af8f8e4aa441f0f" + }, + "docs/E-events.md": { + "mode": 420, + "sha256": "de98795aadb1617eab91815ebc34818bef8b52c36ba18b4521170065bfd2d201" + }, + "docs/EV-events.md": { + "mode": 420, + "sha256": "e7d9536cd23f5d800dc97f68167bb738088a16136004419f28de92d7fe1bcfb9" + }, + "docs/G-wire-schema.md": { + "mode": 420, + "sha256": "19db69ae359ddbd2a0509d02f1c616f939e0428480a8bb33c81f69145323a591" + }, + "docs/G3-civilian-growth.md": { + "mode": 420, + "sha256": "38ea3a8ddc3fdca258294d949c4cd2af1a930cdd9ba612d5e8fb48bc446bdf30" + }, + "docs/H-probes.md": { + "mode": 420, + "sha256": "f23e4d4cbc8c9a3000a0a58ed994dddd95466cee1ec45e961685e86dde4dc54f" + }, + "docs/L1-predictions.md": { + "mode": 420, + "sha256": "af97dbc9f15b9c2e6f223c89bac17826056fa4f3bced3c01513c1ad4d9ac1754" + }, + "docs/L2-predictions.md": { + "mode": 420, + "sha256": "18213ce5f3375d478f266de85c38c2b04ca2ae8ab4a2023780dca161fa14f460" + }, + "docs/L3-predictions.md": { + "mode": 420, + "sha256": "d1c9c0006079f47ef0d3371f4a2c2df2fe4f08ebdad0f8a12d1b0de35b15ae7e" + }, + "docs/L4-ai-orders.md": { + "mode": 420, + "sha256": "b04127c5158a882f252b2b6e8afb2d131f0de623cc0c62c86c612af803d75835" + }, + "docs/L4-predictions.md": { + "mode": 420, + "sha256": "6a194ae336920f13d8e4a44549cbe26be959beef81cffed88ef03b3cec563e44" + }, + "docs/L5-live-verification.md": { + "mode": 420, + "sha256": "4c1abe57c516b36f383390164a362f53294feda222c623283f1e6091d8ef0ec4" + }, + "docs/M-movefleet.md": { + "mode": 420, + "sha256": "718338edb8cbe8a449793b22889776a1783d1d0ade553c03973ea45d426eb426" + }, + "docs/M0.md": { + "mode": 420, + "sha256": "e121c380612a42727e3a973d8cf50f884d660bb4b43bc494258dc1c6b6f26705" + }, + "docs/M1.md": { + "mode": 420, + "sha256": "e0a36cf109d096748e55522eb8d7a261764cbf5ab5daf9342ba903d0f2bc6704" + }, + "docs/M2.md": { + "mode": 420, + "sha256": "25f9cad74eeee40afc2117333232384e1cf387b2b9132856650234c5ba593c61" + }, + "docs/N-output-term.md": { + "mode": 420, + "sha256": "3b8317e22714ef66b35efceee6fa0f7057c37f7c6e34d93cc5047cd1dd07ecde" + }, + "docs/P-events-wiring.md": { + "mode": 420, + "sha256": "72ee81b71b4c08ae451721c785dc5e01ed4ca43ff0fd474befca09dcc41599ba" + }, + "docs/PAR-predictions.md": { + "mode": 420, + "sha256": "16e8fbbac5001db0b10d766858c0ae2ea9619f37043a0883ee46da80d4dd4846" + }, + "docs/PL-players-residual.md": { + "mode": 420, + "sha256": "9bc29bc030ee8b0e00e496b91fe8fefac15179ce9fd01c0a11a7b5b5335356dc" + }, + "docs/R-recapture.md": { + "mode": 420, + "sha256": "73c62ab20c5eca5e87e1d18aefa60a2a2acd75cbc7510d31b27a2cd4ebcec38f" + }, + "docs/RB-predictions.md": { + "mode": 420, + "sha256": "c1016781505c10aa304d4710c5389918b744ab20cbd8cb54dce462c3dc28e4e7" + }, + "docs/S-standalone.md": { + "mode": 420, + "sha256": "8979b0a9fef33a55ca15bf3ef78064e72df332033354329ff2471ad6648e4a8e" + }, + "docs/SD-predictions.md": { + "mode": 420, + "sha256": "a76a568ccac7409e3cb3acef724dbe6b618d4ec30259bce33594098daff8b6a0" + }, + "docs/SV-script-objects.md": { + "mode": 420, + "sha256": "80ebd120fa9cf5e68ac4d33117966805b917d24bc339f7d82be972a280449409" + }, + "docs/T-turn-driver.md": { + "mode": 420, + "sha256": "a4096b8223cea87ce77cc64014c489d4625ed36fd3aec1358565ca5cf91d4e1e" + }, + "docs/U-unlock.md": { + "mode": 420, + "sha256": "5cbe3d8fb4bd30d029cb2db006a4dd3c6819885f55f434afb4bc8ae79b526901" + }, + "docs/V-eventlive.md": { + "mode": 420, + "sha256": "ebd08c000f42211e87958278f03d6891475cd8557658e1a42105cf5ed45a1aa1" + }, + "docs/W2-predictions.md": { + "mode": 420, + "sha256": "9972e27467cf0fe23a358818caf7edb979de25697d3aa4b97a2135ca79fe34f5" + }, + "docs/W2-watchpoints.md": { + "mode": 420, + "sha256": "f8634c5f977b2ca9b2e07df105cba09adacaeb6fb4cf046e41e5e1e42b83b107" + }, + "docs/W3-predictions.md": { + "mode": 420, + "sha256": "211cedc2d924bcf47cbb73166b408e9a27d795863ffc90aa2adbb85beeadffcf" + }, + "docs/W3-watchpoints.md": { + "mode": 420, + "sha256": "568e818e66d95f9079a1270c4d9b900c7eecfd5b5a3b4ba5a4aa0c843666f061" + }, + "docs/Y-standalone-rng-and-tail.md": { + "mode": 420, + "sha256": "49d926cc505d6ba07753748366e42ec32493a15c76bfaa45b2f66f52adc57f2b" + }, + "docs/Z-tail-rng.md": { + "mode": 420, + "sha256": "3ed2b40f728bcedd663c305cce13481bad1429af03fd5215ee3189161cfbd7f1" + }, + "docs/architecture.md": { + "mode": 420, + "sha256": "ba4732eb8a4c7054df5136a72d1774e4f1e919a517a1c74e975903fdd254422f" + }, + "docs/game-data.md": { + "mode": 420, + "sha256": "2124ea3d117b4ee6f48660d9711c1b4ef844a4ba37af7cea3766914d77bd6b23" + }, + "docs/game-design.md": { + "mode": 420, + "sha256": "5b40349ad446596b534567a5683cf9ea99709d9eff231890e0f6256c755f0272" + }, + "docs/game-effects.md": { + "mode": 420, + "sha256": "e1e0abc162602daaac255fe44b11c511adf45d4ef5fa188268411829b0817e5d" + }, + "docs/game-sim.md": { + "mode": 420, + "sha256": "d1e14770d252fd2f320a7baa1ad54c90d955cfc840f477d1700cfbbadcec730e" + }, + "docs/harness-audit.md": { + "mode": 420, + "sha256": "931d92cc744ec6ca3d961fbe7fe96dcab28060446058eb78be9835ebbce73ed0" + }, + "docs/mars-parse.md": { + "mode": 420, + "sha256": "d9fa3029ade4f9401c59fb88f4520a1ef3af9a9c6f2bb5d1a0ebfa1d5061d6dd" + }, + "docs/mars-rng.md": { + "mode": 420, + "sha256": "f2a01b88f105d07d0d0d514430e76da7632e5c8e4e3bbd6c99a25f1dc5daa89c" + }, + "docs/mars-stream.md": { + "mode": 420, + "sha256": "61a16c9b7c143b4bc2edee473cf1f8bd06c1a5144c120bc563e5ec6d770dd0e7" + }, + "docs/mars-text.md": { + "mode": 420, + "sha256": "2b6c7d2eecbb684160e7565d1d7224eb0d2f7e9a41f4d807095a182ea605dcf1" + }, + "docs/mars-vfs.md": { + "mode": 420, + "sha256": "1508c2a070d56f4fdabac3c2ef1fd08d3f93d7a3045d59158340ee22a6ff1b62" + }, + "docs/shim-trace.md": { + "mode": 420, + "sha256": "8a059c1ba761b366449c2db8ef248656da917050ed28855c6d812ecf91672fa5" + }, + "include/generated/sots_addresses.h": { + "mode": 420, + "sha256": "fc34ac4ee8cc7fea91c447b5715841dc6d3afe36f9aff04e88b6c29b5b64f448" + }, + "include/generated/sots_stream_schema.h": { + "mode": 420, + "sha256": "13446ce54d60a0b29adcefb51aeb5127a0a3ca8de2bd1665e4778ba5354bff8c" + }, + "opencode.json": { + "mode": 420, + "sha256": "9af560c2a49945e964beb689649c13775e2aaaf691af270a565d6c6826f76c15" + }, + "src/app/CMakeLists.txt": { + "mode": 420, + "sha256": "142999eded2ff494745ce550af76a8f8caf0269ad22d6d5650e7a79c19d22717" + }, + "src/app/alliance.cpp": { + "mode": 420, + "sha256": "37d6e57f7ce82a69a595cf474e7be7a544efef210f960e9cdfeab6168826bac9" + }, + "src/app/alliance.h": { + "mode": 420, + "sha256": "08fa8dc96286c7cb15a90a987fa22b17e195522e642ab8303b659ca58739eafd" + }, + "src/app/command_replay.cpp": { + "mode": 420, + "sha256": "739059930cd3a5f1d988522ff50c60d8657664a66c9fe19b019833f417b55824" + }, + "src/app/command_replay.h": { + "mode": 420, + "sha256": "956429a742554cada2124de49c6955e27b0e5d68db87dcc95b22c75ec7bd93c2" + }, + "src/app/construction_phase.cpp": { + "mode": 420, + "sha256": "025cd0ea1a7badd567f7f1cd59330b1e01149b5c5094575fbd438683658bb0df" + }, + "src/app/construction_phase.h": { + "mode": 420, + "sha256": "a4d39994096683a1144eb20282b205cf71e2045873cc15b53bdac214ab1e9a5e" + }, + "src/app/event_phase.cpp": { + "mode": 420, + "sha256": "80717fa7c7f108004d5250f12b6c994752a1a55d7f32c7d3ebf29f2869118c90" + }, + "src/app/event_phase.h": { + "mode": 420, + "sha256": "54077268fe4705270dc06bdc46a6fd9384fb5e0d36da19e55ea149b478d8cf34" + }, + "src/app/growth_phase.cpp": { + "mode": 420, + "sha256": "5924d2641fc98d902b56a3e6417d7a57d70c1564718951b098e7d14376ebc4e3" + }, + "src/app/growth_phase.h": { + "mode": 420, + "sha256": "8222ef811abff161c8f891a331a52e527de54fbf468949d1e0e188adc473ae3b" + }, + "src/app/main.cpp": { + "mode": 420, + "sha256": "adfd7dd177439bfd57509532bcf0f37779281ae9309daa93efe1ada3ef3f57a7" + }, + "src/app/observed_phase.cpp": { + "mode": 420, + "sha256": "31fb99678d60de6901b4bb1b251abe2421453264653cf5f7bd297a376c2b23f3" + }, + "src/app/observed_phase.h": { + "mode": 420, + "sha256": "f88fc22a5cb21a43e196d7fae09446126635d3284e6b398bca234f265234b693" + }, + "src/app/phase_catalog.cpp": { + "mode": 420, + "sha256": "e3da16e6d499b7836953251d940ce171792ada208156ca583277298f305fc316" + }, + "src/app/phase_catalog.h": { + "mode": 420, + "sha256": "da6fff506002079d8277358d0095981dc260449dc19677a533ef25ab709aed87" + }, + "src/app/report.cpp": { + "mode": 420, + "sha256": "da3feb6043f6e68cb9ea763f7242ac153a5944c59f448284faf34c64ad6b9228" + }, + "src/app/report.h": { + "mode": 420, + "sha256": "0495d164458ddb7187ce3105f82cee06cf9cf6c5b73ed8cb6e434e1d2e0f8481" + }, + "src/app/script_phase.cpp": { + "mode": 420, + "sha256": "61eeeeb7eac3145cee938ccfc564b231b6968ce7926fb9599c136134f0d5ea91" + }, + "src/app/script_phase.h": { + "mode": 420, + "sha256": "e52006ff939fa945870fafdc2412ba67e3d5e1cc2aa51c0ca0a884ce630aa1b7" + }, + "src/app/trade_raid.cpp": { + "mode": 420, + "sha256": "07d6bb904e655bb644ff6df2e417adb448487bb67acb62240ec5ecc978eabebf" + }, + "src/app/trade_raid.h": { + "mode": 420, + "sha256": "10e0b1460eb7810f1fcd61e67d47333373f06bdacf5a11372958a84a91084e52" + }, + "src/app/treaty.cpp": { + "mode": 420, + "sha256": "317463fc0e2a6ca7eaa4e2f096c3821655a4623de4085af44d951ed500837575" + }, + "src/app/treaty.h": { + "mode": 420, + "sha256": "836395a85868cbd6b7fda8f1d304128fd7cc6952aff37003e8e119a5ce0251f9" + }, + "src/app/turn.cpp": { + "mode": 420, + "sha256": "a626ddf80a340de50b70f09bf91c0180d255c533e65edce1532d807fcf5109b4" + }, + "src/app/turn.h": { + "mode": 420, + "sha256": "85c87aab5c5b5ad5a6a34cc9db710b1cf77dec1a7145ba1e0b5e17fff9a6a237" + }, + "src/app/turn_record.cpp": { + "mode": 420, + "sha256": "e1eb0b253e964ab4f8be1333f81e193ac64109544da384cbdf21858cbf931e4d" + }, + "src/app/turn_record.h": { + "mode": 420, + "sha256": "78d8d2948bd04bff5e7d2c55955b726f1cd7552a765e608e390209e03856f76d" + }, + "src/app/visibility_phase.cpp": { + "mode": 420, + "sha256": "34d9df699af3e57823ec8457c442408da854028f9b95db5820171caad0823131" + }, + "src/app/visibility_phase.h": { + "mode": 420, + "sha256": "60db50f5b98c5edafc86a33f982a7773acc291c1a18f9cf23323e53ebadcde27" + }, + "src/game/ai/CMakeLists.txt": { + "mode": 420, + "sha256": "f51509a2699f02ecab9faa1f75feaa38c299e6bbbe08bfbe5e8e86722037f6eb" + }, + "src/game/ai/agent.cpp": { + "mode": 420, + "sha256": "e1bbddc3deb797d62ae9c2b24bc811ec9379699992dd838694bd5eadc73feef7" + }, + "src/game/ai/agent.h": { + "mode": 420, + "sha256": "48aa26f32d52a3f8f4e37ed5c6986b1e87a8fe1e780d5314514eb5c75b8bc244" + }, + "src/game/ai/apply_order.cpp": { + "mode": 420, + "sha256": "122ffea1090382fd01bc505fd30c59557dfec2c9846609d00da6e80109da2253" + }, + "src/game/ai/apply_order.h": { + "mode": 420, + "sha256": "a3b7a1ca26243ba0fdd801b78978175db6f76e297a72876fa0a35e12f38e09b3" + }, + "src/game/ai/command_capture.cpp": { + "mode": 420, + "sha256": "cb9a1d37af9f66e78d368e03aeabec01e4d48f76aaa30348a51f4c70a915e4ec" + }, + "src/game/ai/command_capture.h": { + "mode": 420, + "sha256": "921599e5b2aa8b773db00134618efde687c7d9ba739abd787ec7666f4cfeb78f" + }, + "src/game/ai/orders.cpp": { + "mode": 420, + "sha256": "1b775eb1a030bc6e81e5b7702cbf8ad56288860276e8a0475da66f7367542640" + }, + "src/game/ai/orders.h": { + "mode": 420, + "sha256": "c2a3b8fe1a7c46a1c1104bc87be8696d9f0782cc304d27cb96d0ec6b182f12ae" + }, + "src/game/ai/tasks.cpp": { + "mode": 420, + "sha256": "b05878ccd94c375aac8723c8ea9499f77b98fb94acc5a75a15fa1948dbe83c76" + }, + "src/game/ai/tasks.h": { + "mode": 420, + "sha256": "b1de4f89c1679ccfdeaa8b852cb2ce407b71dcd1bffacf97df389a69f6ae3a5d" + }, + "src/game/ai/turn_order.cpp": { + "mode": 420, + "sha256": "858b12c51c4509e16a22a6c080d1c6b47bd23d2b8a11f84a48d34f24c4635f22" + }, + "src/game/ai/turn_order.h": { + "mode": 420, + "sha256": "3e76710928fc2df52fd8312abfb8f23a2ce162f8e0856f46672a4f46b5b4384f" + }, + "src/game/combat/CMakeLists.txt": { + "mode": 420, + "sha256": "4b3a05c45360e312d6c1d96c1f05a60437d19d2046257835e0d6c70ecc4ce115" + }, + "src/game/combat/retreat.cpp": { + "mode": 420, + "sha256": "eede86a4d25289dfc9132d5776b11114a109179e5aa10f2b985035e5b22d7a1f" + }, + "src/game/combat/retreat.h": { + "mode": 420, + "sha256": "5fc3e002a5f1944f29c74f862ff942b894e40e88afafd52358373ada36644d7d" + }, + "src/game/config/CMakeLists.txt": { + "mode": 420, + "sha256": "c746021654505c92be333cefb9df994431679d40d8d654b937feb950684830f7" + }, + "src/game/config/config_loader.cpp": { + "mode": 420, + "sha256": "d903ba06747e5b7d66400d03ee1f0a9896bf4268bb200dec0b5c8599dbd3d3a1" + }, + "src/game/config/config_loader.h": { + "mode": 420, + "sha256": "fda71dee1a4e2b896760e9ac344768e176ea4f0a08609c7d651033a1ee698085" + }, + "src/game/config/manifest_loader.cpp": { + "mode": 420, + "sha256": "dbe33dc5ae03db18f3b2c01b48cc1fced10f2cca599270c0a028321a7d7dd7c6" + }, + "src/game/config/manifest_loader.h": { + "mode": 420, + "sha256": "68e508b9e6d1222d980b22ae826b127693fdf0821b6539ed9e62a8ec031aa5b5" + }, + "src/game/config/msvc_sort.h": { + "mode": 420, + "sha256": "17fcb13bb49a634c80be38299617c6c16fd8addedfa88c53d67242c90b811716" + }, + "src/game/data/CMakeLists.txt": { + "mode": 420, + "sha256": "677ba0dd0ebb8176f4e7c41d5550f2ccedd56d49e7e4acb1eb0a7970e9e98a51" + }, + "src/game/data/block.cpp": { + "mode": 420, + "sha256": "f61312708c715ce525ed1a01e71f1446d31fc96ca1cc51f5bd863cac51702200" + }, + "src/game/data/block.h": { + "mode": 420, + "sha256": "f14155dfca5fd270ad6b4d462458aa8cd5c5edf5e19da4df492ee2907e99eccc" + }, + "src/game/data/catalog.cpp": { + "mode": 420, + "sha256": "7799ad3b31d43236cacbc51c3ab086265927f98b1346005a8adfed2796178ebc" + }, + "src/game/data/catalog.h": { + "mode": 420, + "sha256": "80223146bcdbf4808776f974df7e5f46b120a021979a22f50b5ce2d74ec16d6e" + }, + "src/game/data/common.cpp": { + "mode": 420, + "sha256": "e58ba046844be11c61f7f7e501829b48b4f16e7c0ab78f10fcf9189c133cf040" + }, + "src/game/data/common.h": { + "mode": 420, + "sha256": "d1ac8375c1be133a98a383e01598f393f194e1bd9790d1c1230bc6121a45a187" + }, + "src/game/data/fields.h": { + "mode": 420, + "sha256": "4209df368ad776b3c24350246acf47ad874fcbbe292fb16f9ca7dacaef2f08fb" + }, + "src/game/data/shipsection.cpp": { + "mode": 420, + "sha256": "82d5ba9be2a446e50934b0b9a03b16839bd3acd1a967d9441180a1baaa271264" + }, + "src/game/data/shipsection.h": { + "mode": 420, + "sha256": "bcf100f83691226c4993dd7866b67a0b48d9b4bc6841463fbf07f0f26bf9dca0" + }, + "src/game/data/strings.cpp": { + "mode": 420, + "sha256": "6d983d3a4cb4284215301409587136fb765a5e6a4c9f4b988e01d710c0815f59" + }, + "src/game/data/strings.h": { + "mode": 420, + "sha256": "fb292bd472ed68eb4a5e93484f3f92d8a0ae8661e6a61ca4b417ab889c508055" + }, + "src/game/data/techtree.cpp": { + "mode": 420, + "sha256": "2ac6e39faeef808c97375f3b8a3ee219fcab8cc09921f0ed8d82eef7374eb9ea" + }, + "src/game/data/techtree.h": { + "mode": 420, + "sha256": "504946c255405ab28d20d0ed6c095b3b63f0e6865afe0e8bb0707e607c363007" + }, + "src/game/data/turrets.cpp": { + "mode": 420, + "sha256": "ce7db50ef10825e168fee2bf57c4b6038dd1a356be7ada9ed6a4f6a4f31b07a4" + }, + "src/game/data/turrets.h": { + "mode": 420, + "sha256": "f01603ad32b0ffdf891c88cc54c39a725c6a436f8dda79ac23e7505e59853c64" + }, + "src/game/data/weapon.cpp": { + "mode": 420, + "sha256": "accb5aab2081babb26443cd257f292909e19440c40346e098144148922f5d3f6" + }, + "src/game/data/weapon.h": { + "mode": 420, + "sha256": "63aeb670ae7b8a1fd6daa35ed60ebe41a87f62a6ec2a12f44b13f9052c55b009" + }, + "src/game/design/CMakeLists.txt": { + "mode": 420, + "sha256": "42692f7917d99fb5b9e392c2d0f1d908b2bc5c61fc2e5687fddbd665dafe0bef" + }, + "src/game/design/defaults.cpp": { + "mode": 420, + "sha256": "8efa0b79646525375739a1acfe77e75d5ae6b669d1ecaa01f49f3f5183caf528" + }, + "src/game/design/defaults.h": { + "mode": 420, + "sha256": "20af056628f362a4d5ad7ba6277135697718197ec6844ae0ae85bf06d4cd818b" + }, + "src/game/design/design.cpp": { + "mode": 420, + "sha256": "e166281c52a6d92fed8810b38bd736cbd2a324f15d290a39a539d01ff35ead20" + }, + "src/game/design/design.h": { + "mode": 420, + "sha256": "7e936c78ca10c3a49470da67f1659cf4ee323d14d50b5b2c1ada08edfa8f6997" + }, + "src/game/design/hull.cpp": { + "mode": 420, + "sha256": "554b0ef6955ac230c7eca29ea2d94d60b5fbc91f34d9ff457091577c8602268a" + }, + "src/game/design/hull.h": { + "mode": 420, + "sha256": "997018e59c9d78ee1da7e7cb9561b94b76befacbe348a4ce3301c5f22b582461" + }, + "src/game/design/rules.cpp": { + "mode": 420, + "sha256": "a623984f9ab40c354320051fec00bab2c7e3728c2c90082b3b8051294b906319" + }, + "src/game/design/rules.h": { + "mode": 420, + "sha256": "70a8a42fe82e9805cbb957717688ab9f9eb3438226f6e0d696ef5f7a51529229" + }, + "src/game/design/stats.cpp": { + "mode": 420, + "sha256": "c05f420a00026289be8693c0d80bbd2354ce354a91a78459cfc8e70467326c54" + }, + "src/game/design/stats.h": { + "mode": 420, + "sha256": "ba0a5d3bcc98f5c3e64579d42da70bfdf563773ce2fe1e6bfa2b36b14c453fe5" + }, + "src/game/effects/CMakeLists.txt": { + "mode": 420, + "sha256": "2e20f138f98bc69653c8360a26f99f3f43f35beedea5e90dfd7e9721e7550f89" + }, + "src/game/effects/tech_effects.cpp": { + "mode": 420, + "sha256": "40358c2af37543ca3ab09b4d0433cdb4b0d2d212b45f648739cc86e979501604" + }, + "src/game/effects/tech_effects.h": { + "mode": 420, + "sha256": "ef70addf2caf1e3abf36ac9d878a8db37d2adbac370957f5b6a0b5825564a0d6" + }, + "src/game/effects/tech_id.cpp": { + "mode": 420, + "sha256": "11cd652e81a52e86d72541a5c3de77bb50de3d31226272e0d1856e5a15b7f9a6" + }, + "src/game/effects/tech_id.h": { + "mode": 420, + "sha256": "f37752250c80c9c75ef8e144e4646dc1290a2cc8ce72d9a37949c6408996df86" + }, + "src/game/events/CMakeLists.txt": { + "mode": 420, + "sha256": "9b1f14a3801a991ba065e0e39ae2e3fa3966018e8a98fcceeddeaca3909328e2" + }, + "src/game/events/event_log.cpp": { + "mode": 420, + "sha256": "3b131879ec5e81cd1ba2bb0cbdfa6e05775ed77684f4ed7a8f5cfae87da1e7b1" + }, + "src/game/events/event_log.h": { + "mode": 420, + "sha256": "2ff415b1120ca3f28421006a566280fb977027cfa3f209bdba0986350376a953" + }, + "src/game/events/research_events.cpp": { + "mode": 420, + "sha256": "9520b20eba2a2b4bd5925f13b420d526fc610d06aae7ffad314e3002c4f5a253" + }, + "src/game/events/research_events.h": { + "mode": 420, + "sha256": "b87340c6b14e9de97e5bc0c5a4cbd74e54bab2831c60edf88c0e42ff5218ea22" + }, + "src/game/nav/CMakeLists.txt": { + "mode": 420, + "sha256": "79cc0ba25c6d49f7784663ace033d01ab3d85a5d8015fe2f466f8f1a3065983a" + }, + "src/game/nav/pathplan.cpp": { + "mode": 420, + "sha256": "04cfe8fca5be565f5443c8f1402eb0072221dbd63f70855e35b3eeea752f1775" + }, + "src/game/nav/pathplan.h": { + "mode": 420, + "sha256": "28b51f737b458679888e555d985b9e8d41adf8ba91fa0980b5e83668758c86e7" + }, + "src/game/sim/CMakeLists.txt": { + "mode": 420, + "sha256": "4b3085116f88c903a137abef6806891f7b7245dcb031153df7a5465dd2521116" + }, + "src/game/sim/colony.cpp": { + "mode": 420, + "sha256": "e0f0bf15d87b6ac2e92053cbfe0869c0dbf9465d90a9bae5456bb46883423b77" + }, + "src/game/sim/colony.h": { + "mode": 420, + "sha256": "357dce21440140a6cf836a3c12175ebb5bb6706c37d5ecd315a4ee4937725b47" + }, + "src/game/sim/construction.cpp": { + "mode": 420, + "sha256": "8cf4792f487162ca3599f16f0e92d73b4c9549046044548c5aecf202dd564130" + }, + "src/game/sim/construction.h": { + "mode": 420, + "sha256": "a7f201101ad704f1994f809259ad60f780760fa36174d99a1ccd9299447f5460" + }, + "src/game/sim/economy.cpp": { + "mode": 420, + "sha256": "1e0b17b589496a6139e8ca10fe20553050be7c965a02daf8b520dd5020412d89" + }, + "src/game/sim/economy.h": { + "mode": 420, + "sha256": "6f3e33e803bb49367d4cee3c8ef6186f04b79e7cf901047fc48d933108ab6d2a" + }, + "src/game/sim/movement.cpp": { + "mode": 420, + "sha256": "80c64b2148304b84683cf3860ced1354f5c29c923bbc50cc5001030dd85c2cd2" + }, + "src/game/sim/movement.h": { + "mode": 420, + "sha256": "9a6b2b4960428634d8004cd5694ed6a7a10ab28fd9c0e2a9824ede3e201e9441" + }, + "src/game/sim/numeric.h": { + "mode": 420, + "sha256": "88f715192ea322ace4eea13ab5ae55f7f41600262025208e468b5259220522c2" + }, + "src/game/sim/observed.cpp": { + "mode": 420, + "sha256": "43d29a9fe1195dcc0b7e6101ea05bfd076f03636f9f68de473539c83db0ddd22" + }, + "src/game/sim/observed.h": { + "mode": 420, + "sha256": "0224b5bf341f30ff0e98d910547261b6732bdc0c5339b520e26fc51939c1269f" + }, + "src/game/sim/player_turn.cpp": { + "mode": 420, + "sha256": "beb1b2ed434df3727e676ac56e751beff87fa98e4a42e4657cc54d41025773a2" + }, + "src/game/sim/player_turn.h": { + "mode": 420, + "sha256": "f24f8f5e161486575cd341c2f5bfed46fa6983263edcf2320e9c24860b4be51a" + }, + "src/game/sim/research.cpp": { + "mode": 420, + "sha256": "95f2d325544ee018ec8d0f945e91b4172f6ba406f95e19f86c4fb9aac6b22a89" + }, + "src/game/sim/research.h": { + "mode": 420, + "sha256": "e27a311e977afb2e01242938dc8d928e9a67d1f761965e191cf907e05c1c86e9" + }, + "src/game/sim/rng.h": { + "mode": 420, + "sha256": "f7e5bbced3dbd37deb49a00b52d05f7c751501d654dabd645ecff7447355929c" + }, + "src/game/sim/scriptobjects.cpp": { + "mode": 420, + "sha256": "a4f9a1b49e4ba22a88726efbbea2f355b40a3c006734d9150d509a344720a4d2" + }, + "src/game/sim/scriptobjects.h": { + "mode": 420, + "sha256": "210d0eb51780df70a9bca133664429589c03ea33e4524e2c182801d4b4a5c74b" + }, + "src/game/sim/species.h": { + "mode": 420, + "sha256": "83b44c0600b99c5acb72a3484bb0708cfba765cdf594aede596a3c47d5ee6298" + }, + "src/game/sim/techgraph.cpp": { + "mode": 420, + "sha256": "81f8f1120eb1fa4a77752bd2e0917df3dd76372461416526ae510bd697944ef8" + }, + "src/game/sim/techgraph.h": { + "mode": 420, + "sha256": "b2fc90666080a6b7f27dc9290eef17774d57742c2a1f9e1f77d94c7fa5689f6e" + }, + "src/game/sim/tuning.h": { + "mode": 420, + "sha256": "4acfad4098de951cc3a94ca25a2f200e96caba1836bf7441de5a2b458c022194" + }, + "src/game/sim/visibility.cpp": { + "mode": 420, + "sha256": "25f86a34f9a98d2439672283a446ba1804973dae3f6d9aa3692342b05f3a3ac0" + }, + "src/game/sim/visibility.h": { + "mode": 420, + "sha256": "783896489a2a9ec8bce617b141bfb631e8ef92f958be7b5c2ca64fd75774471f" + }, + "src/mars/parse/CMakeLists.txt": { + "mode": 420, + "sha256": "76c290b786a3e73387ec8c574fd5a0dbeb6e629adbe970426314f16497f59fa9" + }, + "src/mars/parse/blocks.cpp": { + "mode": 420, + "sha256": "e60baa8127b21cf6eb6c8e2aa02c6a72c6403dbc29e8480ff658bf184266675b" + }, + "src/mars/parse/blocks.h": { + "mode": 420, + "sha256": "1e8b76919a584d1d7fb01c5ff5e3a7173e8456eca892d61f0c6b7bb8f02f33b1" + }, + "src/mars/parse/effect.cpp": { + "mode": 420, + "sha256": "beb76a841a3d42dbc157413384ff1a0312a7068d6b22020eadcee2e1cbbc81f9" + }, + "src/mars/parse/effect.h": { + "mode": 420, + "sha256": "aaa5c83f2d8eef24667bf05d0f71b2a346f2fce09dc9a45d7a5197c894922e44" + }, + "src/mars/parse/result.h": { + "mode": 420, + "sha256": "58cff456e353550abcd0f52e031d9d70f2b7a975f4762cfccc64eb6bc748dbd9" + }, + "src/mars/parse/script.h": { + "mode": 420, + "sha256": "69a493268c47a08672694489a51c3ff0a7f9aa870e5ae5a93d47ba033cf21ad3" + }, + "src/mars/parse/value.cpp": { + "mode": 420, + "sha256": "712133e4d725649f5461e6a46bac6842b0751ac3fb7e1c468f826638ec58f623" + }, + "src/mars/parse/value.h": { + "mode": 420, + "sha256": "60d692648dab7e3e216c8d9e6ef212592ba1df1a98260b1b4599354742947b38" + }, + "src/mars/rng/CMakeLists.txt": { + "mode": 420, + "sha256": "dceb4bc0fb35c95a12ed9aa36380e79aa75641b15ecc06e4289d39824087e2dc" + }, + "src/mars/rng/mt19937.cpp": { + "mode": 420, + "sha256": "0c60775e9437b8eaad49f67a96001c81947c8d9e6d2472e28b2b490515bac95b" + }, + "src/mars/rng/mt19937.h": { + "mode": 420, + "sha256": "300836ab26fd1a4d913b395f08770bb2c248029ef1b80ecbf0c4d886adca2b8e" + }, + "src/mars/stream/CMakeLists.txt": { + "mode": 420, + "sha256": "95ffbb0c519e55b7423ab048a3019e295b7ef3a3e9506044ef2e68569df9601a" + }, + "src/mars/stream/archive.h": { + "mode": 420, + "sha256": "84d9ae2bb3d6f444b3933b3816cafd12caee8619d2219f19cd10d32cfad01d2e" + }, + "src/mars/stream/bytes.h": { + "mode": 420, + "sha256": "9f5869952c9d6b925db32995a417ba292a0c1a672fc3850400150afb8163b3f1" + }, + "src/mars/stream/dump.cpp": { + "mode": 420, + "sha256": "1b5bba86b2f85b1718276f8db557601320ab8a165d5fbfe93e51219cca5a1c16" + }, + "src/mars/stream/dump.h": { + "mode": 420, + "sha256": "a69af300ae7083fb0a5362edbe7eecd5273c8807884aff9fbedd7ae606c7fc4f" + }, + "src/mars/stream/gzip.cpp": { + "mode": 420, + "sha256": "20d71fd50bd637f78e7ebb5217bc6607ebc257535cc4720e640e4badb72f1644" + }, + "src/mars/stream/gzip.h": { + "mode": 420, + "sha256": "6bce52c615eb120999adb1a6f7f06baa813a033c28e02e6d79ce77f5b7a929c9" + }, + "src/mars/stream/node.h": { + "mode": 420, + "sha256": "eb43054c8592db107557979c7fc8612dc0646ba5d62f154b9b7f96a37ba2e860" + }, + "src/mars/stream/probe.h": { + "mode": 420, + "sha256": "6411d0976d1e785e8c32af6ecfe1a797c0a9aa02314e5e42fae3ed7b3449ae13" + }, + "src/mars/stream/reader.cpp": { + "mode": 420, + "sha256": "90f19cbcdb0fc50795895ea1eff09cd6c0ab3069095c49b276f3894e3d6bcbb3" + }, + "src/mars/stream/reader.h": { + "mode": 420, + "sha256": "900508d97be1cbe566d77f2c91755d3db387535cd9574e41704b6d940daa1ff4" + }, + "src/mars/stream/save.cpp": { + "mode": 420, + "sha256": "6db367b3ea570a4d0ee831160e3f44cef380f58de163b9d9205ca7449e51e049" + }, + "src/mars/stream/save.h": { + "mode": 420, + "sha256": "b3a411600d98b42e9014e1fc3cbc3eac5f32f4393e9f72036d3d840c802bb469" + }, + "src/mars/stream/savedump_main.cpp": { + "mode": 420, + "sha256": "8dc687f009d9f455e9bfa4019f03df72e058cebbb3e9ae5bcbb308285470208c" + }, + "src/mars/stream/schema.h": { + "mode": 420, + "sha256": "b1cd64bc43076a3e5893239bd2eb5c216e7293ee541322ef74fb106928183a05" + }, + "src/mars/stream/shapes.h": { + "mode": 420, + "sha256": "45ee379ff8100b6bc27427a2580d7aae19ff3d5d0aa27f682d156ae6a92d0a6d" + }, + "src/mars/stream/writer.cpp": { + "mode": 420, + "sha256": "54804b06266e34793f5294f9a96d2939d641915a0f60fc4e3b4170bfcea6e083" + }, + "src/mars/stream/writer.h": { + "mode": 420, + "sha256": "921cd44ea30e0b9944825b1d2caafc46edc8f2c23506c807050ed9208a397340" + }, + "src/mars/text/CMakeLists.txt": { + "mode": 420, + "sha256": "dccb93b37c21c9b3c3b35a50ca8de55c9f00df2a9e0a33b6c36d659a75455436" + }, + "src/mars/text/csv.cpp": { + "mode": 420, + "sha256": "b190e12b86a3f416a72c110caf9e0b2d98cdd33851d2fa48b55a8d7ea39279af" + }, + "src/mars/text/csv.h": { + "mode": 420, + "sha256": "3b7ec6d0884e95bfab869c253eddc30a802602bd1f230cc69461cb9cf3c17917" + }, + "src/mars/text/flat_kv.cpp": { + "mode": 420, + "sha256": "b98d3b7345489f0b149e56cd15436fd6199e4cf00d7ce3f8b8b31fcdecb90e47" + }, + "src/mars/text/flat_kv.h": { + "mode": 420, + "sha256": "d6765cd42cad46597b6e36e9d08baf6819f7796442293043d5ff686e2376d292" + }, + "src/mars/text/lines.h": { + "mode": 420, + "sha256": "b9a16ccf0dc7bbf36100e0b66c80bcb818590b161f820d3c67d55bccff1c2c65" + }, + "src/mars/text/manifest.cpp": { + "mode": 420, + "sha256": "4da1bb615902ec61883e561f5dd375d89442f7b9046fbc864f6308f27921087e" + }, + "src/mars/text/manifest.h": { + "mode": 420, + "sha256": "dd7351a7a6a144e97f3a3b6a25d22d1518a099e95deadb8965cedb201601e102" + }, + "src/mars/text/result.h": { + "mode": 420, + "sha256": "7f817033811dff6fcef1d5b76f88922cb0392afb4359549876cd017a14755606" + }, + "src/mars/text/value.cpp": { + "mode": 420, + "sha256": "94b433d78f3211e1a4dd9eb8a0a00b514cbeaf63a03e738146c56dbbfe221479" + }, + "src/mars/text/value.h": { + "mode": 420, + "sha256": "d3b5c70af2f339ad27b43c38353fc7a2da83388854b02000fa1b6d9a4e1dfc07" + }, + "src/mars/vfs/CMakeLists.txt": { + "mode": 420, + "sha256": "630d5d4707ef3c0f24a414815cc23158853fe9d5aef429d6619abc1c433b3786" + }, + "src/mars/vfs/path.cpp": { + "mode": 420, + "sha256": "e1f3bbab1f90b0132aec24d8c5997dafab69ec72f01f2dd2fa63c91f83ef7aeb" + }, + "src/mars/vfs/path.h": { + "mode": 420, + "sha256": "043091008f2cab7c88185de63e7aae63ad9b0e384109f5b6fd8c31666c4e2033" + }, + "src/mars/vfs/result.h": { + "mode": 420, + "sha256": "19115bf1c5b3bf01da078a49209230053043610b342b01cdaaed126e2d3ea748" + }, + "src/mars/vfs/vfs.cpp": { + "mode": 420, + "sha256": "ab8272cd14b4b55e7af13f5383d6106f0b1caabdde57e69c1d0fb5b434d31cba" + }, + "src/mars/vfs/vfs.h": { + "mode": 420, + "sha256": "2484231baa64ede6fc35eb0f49e1fd7a3373d5c559f016d5adfb9fc433619d90" + }, + "src/mars/vfs/zip_archive.cpp": { + "mode": 420, + "sha256": "d66e70300539bd42bcf193683df7c34d2b0b03146fd79f0a180385ead1559e87" + }, + "src/mars/vfs/zip_archive.h": { + "mode": 420, + "sha256": "0ffbd90f7919741e63e86e14d0f87d247bc2cd16d2db54771071553249ad935d" + }, + "src/shim/binkw32.def": { + "mode": 420, + "sha256": "fb500fd9f9ecbff44123b89fc24cec72e91fec4c4430ce12a69efc06b20de235" + }, + "src/shim/fpu_force.cpp": { + "mode": 420, + "sha256": "c4b4e41a7ef81139c652ba8164ed8bb0d809b42182f0d0f048b9a9e63bebe59d" + }, + "src/shim/fpu_force.h": { + "mode": 420, + "sha256": "75bac23bc45510961f6b10d21c47e72d8dc0d3971a3ab30b795cad1d25332c06" + }, + "src/shim/hooks/ai_orders.cpp": { + "mode": 420, + "sha256": "091ed885012fffa0e02b83c53e547483dfdeaf1094933726e0291fff0a99e434" + }, + "src/shim/hooks/ai_orders.h": { + "mode": 420, + "sha256": "6e775b3f946f2eaf10dc2e236a3f3c7b9311ed4e82cd4be1ca30e6c62d49d053" + }, + "src/shim/hooks/ai_rng.cpp": { + "mode": 420, + "sha256": "b8fec711cb620561c8f4854e72c3fb0d73013c9b1cd69fa63fc05dd3d2f60289" + }, + "src/shim/hooks/ai_rng.h": { + "mode": 420, + "sha256": "1306f4d3c8071121b06c75232efa5c50b155c1f8752fcae852ee8e5497ce7d08" + }, + "src/shim/hooks/ai_visit.cpp": { + "mode": 420, + "sha256": "cd69811074820810edb1ed3779ca08bd99fea620b162d80a0395d35e8db7fc31" + }, + "src/shim/hooks/ai_visit.h": { + "mode": 420, + "sha256": "8315b433319f680e80a154409124355ad24842e9a0cdef5c8aa6d12422971189" + }, + "src/shim/hooks/budget_inputs.cpp": { + "mode": 420, + "sha256": "fa50fb74a3874886cf8aeb4012b9fd9a5a43ce38ab3c543ee425002ca32fd46b" + }, + "src/shim/hooks/budget_inputs.h": { + "mode": 420, + "sha256": "56e2f95930ff420820a3464162fde74ac0a3ff2e1dc8b493729fed342e4a6548" + }, + "src/shim/hooks/colony_inputs.cpp": { + "mode": 420, + "sha256": "7aa9191ec6292d765fd06c99ff1f2ae2e09a65fb1f238dd2727f28bd465dd46e" + }, + "src/shim/hooks/colony_inputs.h": { + "mode": 420, + "sha256": "87ec765e14106631e3f6423450e6e01d5bb21060fa91f83c267db215ef4986d9" + }, + "src/shim/hooks/colony_turn.cpp": { + "mode": 420, + "sha256": "b82616c7b9b05e96e7f4c40d853c686884b517a5424413686d61799df9d45420" + }, + "src/shim/hooks/colony_turn.h": { + "mode": 420, + "sha256": "a9013cc2e92998ff56ac0c8cc36dc42033fbe3072ee88b86882a1dd4dd0357d6" + }, + "src/shim/hooks/compute_budget.cpp": { + "mode": 420, + "sha256": "76a24f0daf1f49cfabbed13753c65754e26bfcc4f672791b37e926f82b5c1906" + }, + "src/shim/hooks/compute_budget.h": { + "mode": 420, + "sha256": "f308717e44e12151cfb20a6a0cf11ff8e99ecc9c17ef04783198feed05a24caa" + }, + "src/shim/hooks/dictionaries.cpp": { + "mode": 420, + "sha256": "b60794256c07964eb89d5295ecb711b402112fe5f982a9215dc3a304d03a567b" + }, + "src/shim/hooks/dictionaries.h": { + "mode": 420, + "sha256": "ac68fd66eb343d40ee97d6bf29c8b54f5d469a9ef8862687ae15e6ad8bdafdc0" + }, + "src/shim/hooks/draw_sites.cpp": { + "mode": 420, + "sha256": "e7a1fa40262db2ed22b1dfa5ca1bd2588da07bfbab046f23afa8e86c03814d79" + }, + "src/shim/hooks/draw_sites.h": { + "mode": 420, + "sha256": "0021323e918d464223d03b969d0e6992a0efac23ba84a31af901cf2ac74e9b13" + }, + "src/shim/hooks/event_inputs.cpp": { + "mode": 420, + "sha256": "eeb9cc87ef5c39994b7f25d5ccfe220c4775b32a4b11471b0fc0fb81fca4362b" + }, + "src/shim/hooks/event_inputs.h": { + "mode": 420, + "sha256": "c0e74aed8756b3de8ebbe5ab3d70cfa6282403efefc2d795e8f0b1b4cd44d731" + }, + "src/shim/hooks/fleet_movement.cpp": { + "mode": 420, + "sha256": "f01ae7f64b1d545089b002b79c9986d2a39b97ad3995c88a8b71fa05eedb90f0" + }, + "src/shim/hooks/fleet_movement.h": { + "mode": 420, + "sha256": "dbbfe50afaedad63ec45881819aa5de3907cdb411ddf8d1d3e6a5f9a386dc8af" + }, + "src/shim/hooks/global_consts.cpp": { + "mode": 420, + "sha256": "87a51601e1a7d963bf841ca4e892aa79de789a050f5d783c7b5d8bbc2e96a9a1" + }, + "src/shim/hooks/global_consts.h": { + "mode": 420, + "sha256": "b6ac4265ec1f02f11c342536dbc9970c13761ea68aec0a5962d0f4cd6aa5d265" + }, + "src/shim/hooks/movement_inputs.cpp": { + "mode": 420, + "sha256": "0e23f86e4a8ed6c292aea8e45512931cdd06742f25c5e0d175bf0ed3b2217502" + }, + "src/shim/hooks/movement_inputs.h": { + "mode": 420, + "sha256": "32904786cbb122c3c8c36faf6bd9ea5ade4cd8395e74199ec08dbcdb8019b66a" + }, + "src/shim/hooks/player_turn.cpp": { + "mode": 420, + "sha256": "33bcadd7569ad13c69f5f160423c8d469bc67725ce7b944cf4b4346fb8cc7f23" + }, + "src/shim/hooks/player_turn.h": { + "mode": 420, + "sha256": "a766a0d93f3860da6f8d1e0dcf110d6754cd8dfe67d867093f32e3d24e8ff0e0" + }, + "src/shim/hooks/player_turn_inputs.cpp": { + "mode": 420, + "sha256": "993dce2ca771a36337c9561695995a0825746563d2e84b4458de650f3e456799" + }, + "src/shim/hooks/player_turn_inputs.h": { + "mode": 420, + "sha256": "ca0d7916ca17d993aaef19be48d03076220ae15cdcc622aef52a7c6b5957ca71" + }, + "src/shim/hooks/probe_entry.cpp": { + "mode": 420, + "sha256": "5faf9cf04a2cf849d2dd54ce4ad9b812120fb99741f11e9d52fed450badf0506" + }, + "src/shim/hooks/probe_entry.h": { + "mode": 420, + "sha256": "f04f445863a6164d03bc9f6edcaa2e2b0108163241510f4c1dfcb0da7667d89f" + }, + "src/shim/hooks/research.cpp": { + "mode": 420, + "sha256": "dacd16403f1dd5be2ef2cc42f16938977bdd0ee9283d0bca647a079ee3d28e83" + }, + "src/shim/hooks/research.h": { + "mode": 420, + "sha256": "a62c4847be81ed9d10c4f5b9a876bd79898040aa11aa8764149d82db4b010a84" + }, + "src/shim/hooks/rng_ledger.cpp": { + "mode": 420, + "sha256": "119d325fcda72268bdc87f7ca7af05d059d4521c4d7d40ad7426ce070865eabb" + }, + "src/shim/hooks/rng_ledger.h": { + "mode": 420, + "sha256": "0d1e9c79e7601da921253e860c55d9b69c21e03a1014c49f1dd85fd0e5f70f30" + }, + "src/shim/hooks/system_output.cpp": { + "mode": 420, + "sha256": "93bfb7e6ca381041d1e9830f82b8d774a63c12593fc426fd3e9198c9373be3b4" + }, + "src/shim/hooks/system_output.h": { + "mode": 420, + "sha256": "62a8424c70bb8e6c3d9603ce752f6b19a3920a4a78be75718869d7dac73f3738" + }, + "src/shim/hooks/tail_rng.cpp": { + "mode": 420, + "sha256": "9b2a3923d1d837399f3486650ef0e49b502837ff7df46a12df9a9e9b0d4d9d07" + }, + "src/shim/hooks/tail_rng.h": { + "mode": 420, + "sha256": "b9585605e71364872db25c608012e94db2148f22e2e6fd40d4b590a83f3be92b" + }, + "src/shim/hooks/tech_effect_fields.cpp": { + "mode": 420, + "sha256": "4c4d558aba3ac4e1b10e0944c867911e61daea0b4ade716760546846cebcb7b3" + }, + "src/shim/hooks/tech_effect_fields.h": { + "mode": 420, + "sha256": "22b2c050f73c9de011a42dc5a52d92a1bd3b24a59f3ba3b4332d832fb1853420" + }, + "src/shim/hooks/tech_effects.cpp": { + "mode": 420, + "sha256": "2a20f01a18ed30a466e2023ae023aeed8718c680cda927d2f3b463b6dbe35714" + }, + "src/shim/hooks/tech_effects.h": { + "mode": 420, + "sha256": "ffbc4e8262146cd7764f0b9758fff01ce5d359b25a0f5d8c931313f32d035320" + }, + "src/shim/hooks/watchpoints.cpp": { + "mode": 420, + "sha256": "15c94333f22bb592129efe3fb800ea89987045f9ebbc0e6791d4397961fd727d" + }, + "src/shim/hooks/watchpoints.h": { + "mode": 420, + "sha256": "639ae42b230fb31762f50cac0422dcd5b7fda7a1a02c7739a86d1cd6eda62277" + }, + "src/shim/main.cpp": { + "mode": 420, + "sha256": "eebdac7f8f69b8b95cd290c96d41c6f3f0ed5c45ccd5de54ffc790af47083b99" + }, + "src/shim/shim.cfg": { + "mode": 420, + "sha256": "44ca58394455549150c3461cc888128a968b4f062807e19ef25b8eebf0bfd523" + }, + "src/shim/shim.cfg.b4compare": { + "mode": 420, + "sha256": "68bed5883a75132eb5e885b4750d23c1d5734c843a32a56dc7f96d2b73fdf962" + }, + "src/shim/shim.cfg.b4scout": { + "mode": 420, + "sha256": "faac0765478d88b63f371fbc307512e71fe05f2e6f97272e6e0ceb267cc6d626" + }, + "src/shim/shim.cfg.b4trace": { + "mode": 420, + "sha256": "6a89cdd3cfdf53cfbaff29278fd5d0edf156ad8a525c61624b60ddb1eb0575a1" + }, + "src/shim/shim.cfg.bupin": { + "mode": 420, + "sha256": "39d52ef1ccb18d4dea261b87d3f363ba45079022d1b9bc3531c552ef6df80ec2" + }, + "src/shim/shim.cfg.cbcapture": { + "mode": 420, + "sha256": "0939b1ea144976ded2d45ad885fa0f1ffa3d77f16cba9b4d5a9cb87623500a62" + }, + "src/shim/shim.cfg.cboff": { + "mode": 420, + "sha256": "7d5d6e2ceb7f86fd17543c9212e8547be6009f725871aadbaf6057af1f4f5484" + }, + "src/shim/shim.cfg.cbpin": { + "mode": 420, + "sha256": "72a222c025796458dc1a538eed3ea55f053ee5e3c01e5b19b802922a058d4fbe" + }, + "src/shim/shim.cfg.cbtrap": { + "mode": 420, + "sha256": "938c0893b95b576b75927d75787999c22b3424d28c8936456ea3723f62775e51" + }, + "src/shim/shim.cfg.crcompare": { + "mode": 420, + "sha256": "129031ceb358fef9e0fcee2fb42a0f20fd76d9db78f061f956bf75ce2cc51dec" + }, + "src/shim/shim.cfg.croff": { + "mode": 420, + "sha256": "f99345e7db55e695ecabf7a00fc16ced9a42e8882abfeabc8281b9a4ef26d730" + }, + "src/shim/shim.cfg.crreplace0": { + "mode": 420, + "sha256": "60c13bd76e546b4521ab4e6a7836439078e2a176a11e471e03434623153cb7d9" + }, + "src/shim/shim.cfg.crreplace1": { + "mode": 420, + "sha256": "d27f43eb970d6a9c8a0c8d8f7071633a226c34b675a6581b331c6e1ba6f36c9b" + }, + "src/shim/shim.cfg.fpu007f": { + "mode": 420, + "sha256": "998decddb80cf23d63c42d2d6c1d1aa85072258ca0870168ee772708ebfb6363" + }, + "src/shim/shim.cfg.fpu027f": { + "mode": 420, + "sha256": "f4f9585a8f6317807bcab498ebed5de5d42400124a82ea958558f1455176cebd" + }, + "src/shim/shim.cfg.fpu127f": { + "mode": 420, + "sha256": "1f50a475f0d347b5b5a7c2341eac4ea22092818e18bc7ea049154d309949e271" + }, + "src/shim/shim.cfg.fpu137f": { + "mode": 420, + "sha256": "8658d901e0688d87d2f2359fe725082b9956291988cdc0b82b155dde55fef5e9" + }, + "src/shim/shim.cfg.fpu1a7f": { + "mode": 420, + "sha256": "59ff1f48a10c378d0ea92d8a156b135a106017a5b6c47b65de304fde3187c588" + }, + "src/shim/shim.cfg.fpuoff": { + "mode": 420, + "sha256": "ce637b3f0eca81c04490335cd9fe8a537cd09e5ef14cc5b3050f548ca4d54c65" + }, + "src/shim/shim.cfg.hoff": { + "mode": 420, + "sha256": "dc9b4619fe84921ea5896c2cd190afb5bd4ca89422fb86bfee8459665f92cd7a" + }, + "src/shim/shim.cfg.hp0": { + "mode": 420, + "sha256": "ede723fc540adb94bf16af0f3086c1935aac008acb6a8d550e2a4e97ff232c2c" + }, + "src/shim/shim.cfg.hp10": { + "mode": 420, + "sha256": "1c1f07dfdb7f99d63ed9a62aa9a447efda690623164beeaf434c588e02ef12cd" + }, + "src/shim/shim.cfg.hp11": { + "mode": 420, + "sha256": "36eae0d554a79b9536e3c57d2fef187ae81bd3266947c7f45035be554fb59404" + }, + "src/shim/shim.cfg.hp4": { + "mode": 420, + "sha256": "5bb0d636247c37def9b5cbf0cc9138b13590a50ae8212890fb7d31dfb9e837f4" + }, + "src/shim/shim.cfg.hp8": { + "mode": 420, + "sha256": "a8fe5f16a299b2b9eb81a811c7ec5a3b1baf635fa179a69f1e23243c7d1e2133" + }, + "src/shim/shim.cfg.hp9": { + "mode": 420, + "sha256": "765fdf337bb6942dbd1357166646dbf7fde3777678a606c4dbfd368078f09b5d" + }, + "src/shim/shim.cfg.hpall": { + "mode": 420, + "sha256": "630f99725ea6aa933984f4c545634d127787672de36f6756da2591e22a36f366" + }, + "src/shim/shim.cfg.hprobes": { + "mode": 420, + "sha256": "3bad5e3e7bf35a85acc7169d27531788e9659dbe0f8b1a0c719777fdb6beb5dc" + }, + "src/shim/shim.cfg.hprobes2": { + "mode": 420, + "sha256": "c335f1ec8aeff1165213cd40adcdcd59893c65edf95b1537fc4460e6060911c5" + }, + "src/shim/shim.cfg.l1control": { + "mode": 420, + "sha256": "c5dec81556268795b9a3df175bafde340a3fe76c7d6e05389e09e79d2b138b43" + }, + "src/shim/shim.cfg.l1hive": { + "mode": 420, + "sha256": "970ce465f2363f391a93086f1b596e904265510e02e7d2d38174cc6ea22d9b25" + }, + "src/shim/shim.cfg.l1off": { + "mode": 420, + "sha256": "a4197233c65acb876328666cf37754aea96f942b6ea08105bdfb61d6d5bcbd64" + }, + "src/shim/shim.cfg.l1seed": { + "mode": 420, + "sha256": "360af979eaa0c13eaa4db38ff13dcc64b3e2ab538300c26497921301fd3817b9" + }, + "src/shim/shim.cfg.l1snlv": { + "mode": 420, + "sha256": "3603508983a87906ecce02e4c2e9581cf2fa59390af25335f0b221765c57ef6d" + }, + "src/shim/shim.cfg.l3cont": { + "mode": 420, + "sha256": "629530a34412ebf85fc8ce8d2e5931684eea9891b6b619419e6f8db8c37f0976" + }, + "src/shim/shim.cfg.l3control": { + "mode": 420, + "sha256": "42b6ec7ebc9c83dae4a58884803f627d54956eb308611ce1e8d3691a12a74ccb" + }, + "src/shim/shim.cfg.l3probe": { + "mode": 420, + "sha256": "692dabb6f00343bfcc2f86d62ade827c295acc4630a18a1f2ddcebd53640978d" + }, + "src/shim/shim.cfg.l4control": { + "mode": 420, + "sha256": "ab13b7e3604ee98e9372e3405e0eacb6d5965e02d5317cfee0ea9b9afbd750e3" + }, + "src/shim/shim.cfg.l4dump": { + "mode": 420, + "sha256": "fb40d67d8d7dca4587a1dc13a95826ab68eb3fcf44feb6006388935f3ee346f2" + }, + "src/shim/shim.cfg.l4off": { + "mode": 420, + "sha256": "629a3e41d11daa53325f31aeb77d14d5abe67058e274d36ed8feb71e2e30dc13" + }, + "src/shim/shim.cfg.l4probes": { + "mode": 420, + "sha256": "a446ff3d6117d5352ad9b3c3c02f6d6300ce0b1089f055925afe19b77f0a20f3" + }, + "src/shim/shim.cfg.l4research": { + "mode": 420, + "sha256": "ad400f7082680db82c6fb0d39eed488710e6661f9e3215b9ea2eb0ba53444b9b" + }, + "src/shim/shim.cfg.l5budget": { + "mode": 420, + "sha256": "74df0fa1bd14fec6e8028ba05c516f3a370ba389386e5a8459d594c2c7ad83ae" + }, + "src/shim/shim.cfg.l5control": { + "mode": 420, + "sha256": "3557f716dde348a98fda65a5bad54911fe6d52f75c2cf6a82cc5d4fc47a6e968" + }, + "src/shim/shim.cfg.output": { + "mode": 420, + "sha256": "a811cffac230a1d6c0f9c5adacb1b691ae289ec08de0da3726309a4e1213acb0" + }, + "src/shim/shim.cfg.parbr": { + "mode": 420, + "sha256": "ea8230b596e7baae0c127f5700391ec2c96d546daba8c70ce8b2800c83b096dd" + }, + "src/shim/shim.cfg.parctl": { + "mode": 420, + "sha256": "2d1190d032bb705030746197020c715f4ab8af551f944e9ec0abe136912ea60d" + }, + "src/shim/shim.cfg.parorders": { + "mode": 420, + "sha256": "2107be5ec950e69d01c43ab30919fbfe652823878f150111b158927bc41de8d6" + }, + "src/shim/shim.cfg.parpin": { + "mode": 420, + "sha256": "893f1f81cdef0a964145ebb1c4b1e2725af8868b14fed412d40e3cce71f824f4" + }, + "src/shim/shim.cfg.recapb1": { + "mode": 420, + "sha256": "688840567305218dada122b29284f6af44c3c63ca173db87406de159bb547c8f" + }, + "src/shim/shim.cfg.recapb3": { + "mode": 420, + "sha256": "2120646255bd70adf29ed2880daa6b11d0867b9cfc9f1c9644d63b92c263b69b" + }, + "src/shim/shim.cfg.recapmisc": { + "mode": 420, + "sha256": "cb1f794c51b5d3d74eb91cc084c96a04444cd79f22fc694d821b51924544f595" + }, + "src/shim/shim.cfg.recaptrace": { + "mode": 420, + "sha256": "0ae410cc72fe155837d711c78543e14b1f5743310cd023298eb1e5bbd5457e71" + }, + "src/shim/shim.cfg.sdbr": { + "mode": 420, + "sha256": "7cb2bfd798ed1286628f3a879606eff076c4f6011d95e1223376eb4d0a392ca8" + }, + "src/shim/shim.cfg.sdoff": { + "mode": 420, + "sha256": "9195aeddeb2caa4e3db7dfd775c43e96eb99cfdc59a6a61e65d86fb325f0054a" + }, + "src/shim/shim.cfg.sdpin": { + "mode": 420, + "sha256": "61119f197b1dc8ddcad059d2d2c2753dae457b4bda4eb29e06c78282eeda6a0b" + }, + "src/shim/shim.cfg.sdpin2": { + "mode": 420, + "sha256": "d6d7f82b500df4f3ed120b4ff421178cf4373a145fa803e57d22a0654e4f0f63" + }, + "src/shim/shim.cfg.tturn": { + "mode": 420, + "sha256": "2ab2d64288043c3c55fde668facde9307c0739e0c801c900790e11db57c5759b" + }, + "src/shim/shim.cfg.tturncmp": { + "mode": 420, + "sha256": "114d325ae3ece29422069ee74c790603abb38c49162dd32520a3eecd18ab6061" + }, + "src/shim/shim.cfg.w2control": { + "mode": 420, + "sha256": "d042c0082a8eb4f55b8e21983df292f0950adc4ac5787d4a0b83088c10c5a3eb" + }, + "src/shim/shim.cfg.w2watch": { + "mode": 420, + "sha256": "ddb9c18a1c6b6c23758e51ca9ac18b4b95abe206b162497adc2978c0384d6ee5" + }, + "src/shim/shim.cfg.w3control": { + "mode": 420, + "sha256": "c6a3a5ea1e39a0714dffee0e44a0e8d91a2b450534d7e4377273a55b3e87de8c" + }, + "src/shim/shim.cfg.w3mod": { + "mode": 420, + "sha256": "7c7f82aaa8b5b007a740324373060ca2ba84edc765eb4e7ce55afcaba4e1c2e0" + }, + "src/shim/shim.cfg.w3tshn": { + "mode": 420, + "sha256": "51fa826d0b18d6f01987d6748e6610847ec3a761257ffc382a40d234670afec3" + }, + "src/shim/shim.cfg.zledger": { + "mode": 420, + "sha256": "31d0535aff9660eb1ad06f529c88a42aa71b83b36f8404b7541a29327c508a51" + }, + "src/shim/trace/emitter.cpp": { + "mode": 420, + "sha256": "4253cac49f0761e487fd555c3c01e02fa22e2010789ad3af37c62c8fd2e02030" + }, + "src/shim/trace/emitter.h": { + "mode": 420, + "sha256": "aa7804614b3d3a214d5c32c33ed245ae24276979080baa9d5481d6594ee3f79d" + }, + "src/shim/trace/hook.h": { + "mode": 420, + "sha256": "35be73ac1c9519664957ffea639d873e8a811b4620f0feecb21b54ea2776f800" + }, + "src/shim/trace/platform.h": { + "mode": 420, + "sha256": "f1b78d971798e45998b26c6b0e20db49fceb7d4c63f0c8c37452c6c2c6df9538" + }, + "src/shim/trace/selftest.cpp": { + "mode": 420, + "sha256": "31461ae6d329a8a3856589b245f3bcf8631f0db9a5e00530e4f94279950de354" + }, + "src/shim/trace/selftest.h": { + "mode": 420, + "sha256": "583d7a10ef04254c7a0fb7dd2a6071ad012a9a97dfae0896bbd598970b206475" + }, + "src/shim/trace/sha256.cpp": { + "mode": 420, + "sha256": "2faf44b5b273612c776204c1d83e0910d86394f4f6207129a01c81dedc170aa8" + }, + "src/shim/trace/sha256.h": { + "mode": 420, + "sha256": "31ce080acdc086ff7657d9093ac9bea438203eaa8e392ca38539152cdd15038f" + }, + "src/shim/trace/tracer.cpp": { + "mode": 420, + "sha256": "37d9490dbdedc399ecdb30f46eb27f31a4ff8c902eadb2eb48ecca7fb0e8fb88" + }, + "src/shim/trace/tracer.h": { + "mode": 420, + "sha256": "cbb80f167b8f98777f9fb58ce107226f42027ffdbd868a6808047c48caf10f76" + }, + "tests/addr_smoke.cpp": { + "mode": 420, + "sha256": "ace1ab9549bb6f3e0048d0e6e3ec6061035395581b2db46c0a5acb097c428890" + }, + "tests/app/CMakeLists.txt": { + "mode": 420, + "sha256": "dd18f8e25d2a9ce988dc226e03c7c6e02a275bbbea74f505d005e42ca5972037" + }, + "tests/app/test_alliance.cpp": { + "mode": 420, + "sha256": "671b2cb3295f360c61ee87005287999710d12e10e7e532331c1c946ab97f7c4d" + }, + "tests/app/test_catalog.cpp": { + "mode": 420, + "sha256": "c4cd9840c1f1b5d5a6829f7f1c5a0245b5e66135d3bed6410a2b6eca1a037225" + }, + "tests/app/test_command_replay.cpp": { + "mode": 420, + "sha256": "739ebeea5bed551f232774bc812bcb794cfa057015fd187529fa563b5d7ae5eb" + }, + "tests/app/test_event_phase.cpp": { + "mode": 420, + "sha256": "05498df256759fe5b8af80e9e56c2ca071eb26de0651f257798fe1641da627ca" + }, + "tests/app/test_trade_raid.cpp": { + "mode": 420, + "sha256": "2158008bc711b8062381f346fa347a430582d8d1943b0de5f40eb2a38e9a3f75" + }, + "tests/app/test_treaty.cpp": { + "mode": 420, + "sha256": "0f98150a3f9397fd12109eae7359ff7e04a4060e10e01ecf1693eb2a4606ead7" + }, + "tests/app/test_turn.cpp": { + "mode": 420, + "sha256": "6d45b1d2d065528f14ae83d95314f2b6559e53cc23f1b9e2531c7c09b4b97eab" + }, + "tests/app/test_turn_record.cpp": { + "mode": 420, + "sha256": "a845971b8d25d71c3b1138495354ad392e4fc298f87eb9b89d1567c01ab59cde" + }, + "tests/game_ai/CMakeLists.txt": { + "mode": 420, + "sha256": "a57a82d0c79ff933564e200a5b3137f120e70a19834264eeb2438c4cafd7ad3e" + }, + "tests/game_ai/test_agent.cpp": { + "mode": 420, + "sha256": "41cb3fbfc7e0b277771a2e8dd17601285a1e3a911543fc1335ce05a4e4b5f11c" + }, + "tests/game_ai/test_apply_order.cpp": { + "mode": 420, + "sha256": "8669c2e9a4c95b670a9c41262c68ce183d3cf3900bc262e0a2e33500bfffc594" + }, + "tests/game_ai/test_command_capture.cpp": { + "mode": 420, + "sha256": "8c2bae38754b347beeefe85d796c13bcf43cf5bc9bc99eb743626028b4dbd7ab" + }, + "tests/game_ai/test_live_blocks.cpp": { + "mode": 420, + "sha256": "44cb6bd8b34c13e329f9b1d50bb2a5c5513e52761537dccfb01afb7d48be7580" + }, + "tests/game_ai/test_orders.cpp": { + "mode": 420, + "sha256": "b13d1a3a628de411abb4faf024a1ce8d3e94518f12285bb3d7e7e86b012ad43f" + }, + "tests/game_ai/test_tasks.cpp": { + "mode": 420, + "sha256": "ffd8eed7fa76a24616d579a4e31031dadf43a0534e33743fb104dfca552367fc" + }, + "tests/game_ai/test_turn_order.cpp": { + "mode": 420, + "sha256": "382d6a30e9151c57849595cb134b8e2da25d2763738c9cbfa18d3cad51ecce97" + }, + "tests/game_combat/CMakeLists.txt": { + "mode": 420, + "sha256": "fd0c0dfb54033353b7014e3c764c916522cb529b6b3eae8a8d52afd044c13fe2" + }, + "tests/game_combat/test_retreat.cpp": { + "mode": 420, + "sha256": "3fb0be08d230bbd7c4ea4a59319de7ab252e5b7cbee924afd069847da8dcf73d" + }, + "tests/game_config/CMakeLists.txt": { + "mode": 420, + "sha256": "9874822d186e783f25b2dcd87495e7e380d873b8a0790c67fffb9430468094ed" + }, + "tests/game_config/manifest_tests.cpp": { + "mode": 420, + "sha256": "3bc62e7e49699254151a825421973d831b25bcf7a22028c789e3ca63b0d77319" + }, + "tests/game_config/replay_trace.cpp": { + "mode": 420, + "sha256": "83602ec974b8195c3616230ad44c2d4fd6032f8ef5f96e7aa76d49a0a04ac05e" + }, + "tests/game_config/unit_tests.cpp": { + "mode": 420, + "sha256": "45b07c7289abac61fccd0a6cd0ff87812542ec888eb6d295fb87c3f57755cc6a" + }, + "tests/game_data/CMakeLists.txt": { + "mode": 420, + "sha256": "cb8cffb7217e82077d3db749dcacf29c098549159cc0f312ef04bfccaa30155d" + }, + "tests/game_data/build_and_run.sh": { + "mode": 493, + "sha256": "69ea9cb94468c56c329fcc5b9350431067e97091ed47c08bb10b57b38412883a" + }, + "tests/game_data/dump_catalog.cpp": { + "mode": 420, + "sha256": "4588e699c69586dfb77f0d9289e375407d4f9cf019690e26bfc78f7182167c89" + }, + "tests/game_data/oracle/compare.py": { + "mode": 420, + "sha256": "2cfe1ac93790de3351256d284392372721f94de5375686e6301ef39b1943ad12" + }, + "tests/game_data/realdata_test.cpp": { + "mode": 420, + "sha256": "334a924bf81c6ce6192a6688435b374e115382358f7e4554aa164295bdd38321" + }, + "tests/game_data/test_catalog.cpp": { + "mode": 420, + "sha256": "9ea5c3fff2388c5d7fbf295123dfd7b702ef21f17fc7c45a970822814abfce2e" + }, + "tests/game_data/test_main.cpp": { + "mode": 420, + "sha256": "e808f3e2054894da5481d549d93cc837daff61c7b049691f6e2ee453cec53389" + }, + "tests/game_data/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/game_data/test_shipsection.cpp": { + "mode": 420, + "sha256": "b3519f0de60d061a6f1ab8ee81d470a28fc17cc81b113639ef2c1e139c249b4c" + }, + "tests/game_data/test_techtree.cpp": { + "mode": 420, + "sha256": "d05c889da9edb622bd2b66aa8e300d8162e0c8788950daa1086fc049b90dd4bc" + }, + "tests/game_data/test_turrets.cpp": { + "mode": 420, + "sha256": "66adff30b974e9bf2c96c1af024fb85677e1a8307c801933d23f3d2ec9d8222c" + }, + "tests/game_data/test_weapon.cpp": { + "mode": 420, + "sha256": "b16b0481c0a8697ff16e39c9feb3ad9d5406250b7dd1c828bf12f1bb40ed746b" + }, + "tests/game_design/CMakeLists.txt": { + "mode": 420, + "sha256": "a26524ff14878564870853bc067c379d2ebd26c14e45bcbb06593d300ee4b3ca" + }, + "tests/game_design/build_and_run.sh": { + "mode": 493, + "sha256": "b1aab4d13b09fb1ea4205978bd7d8b05af5a6422ebe4a34261c3247489b48bd7" + }, + "tests/game_design/dump_designs.cpp": { + "mode": 420, + "sha256": "b1b24c5cb534ad821a20325869713c04b742c541c448ade83543d75608f7eda2" + }, + "tests/game_design/json_min.h": { + "mode": 420, + "sha256": "9cfd3eabe9b36d6b2863872e08fe6ebaddf0749d1966dea693f8bbc0472780ac" + }, + "tests/game_design/mini_catalog.cpp": { + "mode": 420, + "sha256": "5817c0251883c999c6ebd54c77fdcf3981181b41fb5f7637d445824d60942810" + }, + "tests/game_design/mini_catalog.h": { + "mode": 420, + "sha256": "ecb7fd0dffa8709008bcdf9b9da3e70e68f735f9b5ecd0dcb4c871a35ae43b59" + }, + "tests/game_design/oracle/compare.py": { + "mode": 420, + "sha256": "2db14952f7fca9a587995e326651b0d549b39ceefd9c0ac59982cd35ae5d21e7" + }, + "tests/game_design/realdata_test.cpp": { + "mode": 420, + "sha256": "cea57cd53d881b3bf2557cc32ea402c4991aa6de5ff72340861f195a8e20c141" + }, + "tests/game_design/stock_designs.cpp": { + "mode": 420, + "sha256": "2ac1b8bcb0f61852f4bc0a8b7cda51167531ca2a05d1e485991a4758cf586d03" + }, + "tests/game_design/stock_designs.h": { + "mode": 420, + "sha256": "a49173bde083467f5650cfbfbaebba5f16208d660fe7f2f3da81c2caff07c807" + }, + "tests/game_design/test_banks.cpp": { + "mode": 420, + "sha256": "c1d34991c53523cb7610a569e861e8a312da1fe659de0522a3594fb14cad24a6" + }, + "tests/game_design/test_census_saves.cpp": { + "mode": 420, + "sha256": "814c17c7a14db7b123579b7636ee7f2b720fdf4a5cbbe90f676dc01709c45e3b" + }, + "tests/game_design/test_hull.cpp": { + "mode": 420, + "sha256": "cff70268d58ab95ed963d335904110ab55c79d6a0f660f613409cf6d5d63e2bd" + }, + "tests/game_design/test_json.cpp": { + "mode": 420, + "sha256": "e7fa196274a4591834a974f742ff59c7ed1fb15fb138091b48a071354d001c5d" + }, + "tests/game_design/test_main.cpp": { + "mode": 420, + "sha256": "e808f3e2054894da5481d549d93cc837daff61c7b049691f6e2ee453cec53389" + }, + "tests/game_design/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/game_design/test_stats.cpp": { + "mode": 420, + "sha256": "a3681df901095b848cc6b1ae63d04fd70eeeadd406e7d51f3c76671cbf523a7a" + }, + "tests/game_design/test_structure.cpp": { + "mode": 420, + "sha256": "d09f7707ee170f8a933c657628c1da4f61a29c7eb2dc687a96c3985bdac941aa" + }, + "tests/game_design/test_tech.cpp": { + "mode": 420, + "sha256": "689c081a324c7ece3f70d711f7ac67a5b93207f95e2800a3a708f2f8dbe31965" + }, + "tests/game_effects/CMakeLists.txt": { + "mode": 420, + "sha256": "c80413a7103ce0ed7944fb096ad22fc206a091645428a6015ec3d0e442414a0a" + }, + "tests/game_effects/build_and_run.sh": { + "mode": 493, + "sha256": "ab5085eeab0ec65d8f7ddd7d79357cd15183888b1b4e51cb563810d4e4c64506" + }, + "tests/game_effects/test_effects.cpp": { + "mode": 420, + "sha256": "b10d804b1ad4fb140e13cc1984c6372dbbfdd92560f37583f2411bbcb45c16d4" + }, + "tests/game_events/CMakeLists.txt": { + "mode": 420, + "sha256": "c962651d71ee7783d5565b418f653f2954e489cf698762c5686f5f2dbb4304db" + }, + "tests/game_events/build_and_run.sh": { + "mode": 493, + "sha256": "8b92d249138ee53f728583a0c68b153eaf4e2ad7f92d415d8b3a83df2fb3ec28" + }, + "tests/game_events/test_events.cpp": { + "mode": 420, + "sha256": "182941b9b809b20d24a2e29c5e4bbd626e6da8486e87dc38d1c6088161ec793b" + }, + "tests/game_nav/CMakeLists.txt": { + "mode": 420, + "sha256": "7ee85557a167281f4576252428b4e01795232f31dc1d93c23b284568074cec3b" + }, + "tests/game_nav/test_pathplan.cpp": { + "mode": 420, + "sha256": "6229cc2b1be1ffffb3fbb812c2ccc89dba7099d349be3a6f8f2c2e26aa1dd58d" + }, + "tests/game_sim/CMakeLists.txt": { + "mode": 420, + "sha256": "563547cdd93bce41ef29a73289e5104a5df61f71cc980e49ea37cdbe26743be7" + }, + "tests/game_sim/build_and_run.sh": { + "mode": 493, + "sha256": "a9c42a931242c7f266f512b4d4ad11f6f8ecf43a447a06a04f174301ee19328a" + }, + "tests/game_sim/check.h": { + "mode": 420, + "sha256": "faddddc37a528f0235f510b249cfc1776ce30aff709329954f09093b01231221" + }, + "tests/game_sim/mini_json.h": { + "mode": 420, + "sha256": "710218b637aaf1a5eb7c49eaa7d158bc3e495135ec14bf8b41384769d0227ba5" + }, + "tests/game_sim/smoke_real_save.cpp": { + "mode": 420, + "sha256": "2432e92ac18fadfb1152c54d9dec9a77b3dbf506ea122401cbbd48584b7c9190" + }, + "tests/game_sim/test_colony.cpp": { + "mode": 420, + "sha256": "45355673c46cbaef66b2c81d04a845cf65b6ddfd9819350c7338d9771fafb6fe" + }, + "tests/game_sim/test_construction.cpp": { + "mode": 420, + "sha256": "8df75076a3f460e949e34100d55acf60b054603da6d4aeda4f73297442c06e21" + }, + "tests/game_sim/test_economy.cpp": { + "mode": 420, + "sha256": "43fe658fd2347e3667a901afa642713d70c85ef0ec75094642da2d05b9ca471b" + }, + "tests/game_sim/test_movement.cpp": { + "mode": 420, + "sha256": "1927c371d52115458d88552014cef30bba60e9bef5eb3acfce11b2bc623e06a6" + }, + "tests/game_sim/test_observed.cpp": { + "mode": 420, + "sha256": "1f6ad16c1a2c80f0621573b5196989b0349e47351585d83835be5e27f6ef3fe4" + }, + "tests/game_sim/test_player_turn.cpp": { + "mode": 420, + "sha256": "13f76eaa6cad265deec25416acf0cae2028d6cd1c7b9585df6e9252ba3f0cbed" + }, + "tests/game_sim/test_research.cpp": { + "mode": 420, + "sha256": "3dc668eb889c41f58db6007a96f54fe2a6d56ee6501a298fba3afbbe9637baf6" + }, + "tests/game_sim/test_scriptobjects.cpp": { + "mode": 420, + "sha256": "dfe90a42bcd2844c2ea3666816f97c05237206bf44467ac29790c72b7b498582" + }, + "tests/game_sim/test_techgraph.cpp": { + "mode": 420, + "sha256": "0627ea1c8012b90b62285cae2f31599ba8a8cd47928452910ade91f93502d68e" + }, + "tests/game_sim/test_visibility.cpp": { + "mode": 420, + "sha256": "ad756975b6605a164f2f9106daf2511730642eff354a866bc764a93a4be1efe7" + }, + "tests/mars_parse/.gitignore": { + "mode": 420, + "sha256": "181314065df2f2fdaf920b1a8b5311daa216a2d6489a06ada5b49cc514d89417" + }, + "tests/mars_parse/CMakeLists.txt": { + "mode": 420, + "sha256": "898204fbc1cec44f697e2803c8bc4887857950ba2b1192dd153de74d26de0ea4" + }, + "tests/mars_parse/build_and_run.sh": { + "mode": 493, + "sha256": "550c6df5fffbd85cfffc3312a03a5fa9d59c1e0416e883ddc2576cdb73eac6de" + }, + "tests/mars_parse/canon.cpp": { + "mode": 420, + "sha256": "63e2bcfb2820e7533aa3a287bcec6c318f7238006dce61ad35381562b979cd47" + }, + "tests/mars_parse/canon.h": { + "mode": 420, + "sha256": "c9a78b866d62c4e58643de2c4149572380a1392b411049c8fe74e37475d21d9e" + }, + "tests/mars_parse/oracle/dump.py": { + "mode": 420, + "sha256": "16e98089d5b532e35d6b88b3d50b4bb07e879c18512cf8d06cc5fd2aa9da1117" + }, + "tests/mars_parse/oracle_check.cpp": { + "mode": 420, + "sha256": "5eb81a0c2db8f96c6f8e51246ea9991642e5571dd94dd2e410e2fad632d47adb" + }, + "tests/mars_parse/test_blocks.cpp": { + "mode": 420, + "sha256": "f376a57891a83768ecc8b73ef5eb2333291c280760f7581ead53f7c2a71a4df5" + }, + "tests/mars_parse/test_effect.cpp": { + "mode": 420, + "sha256": "8bb14e7c718e772bfb4a22a7370f41080c49beabfa597ddd603be257bc310011" + }, + "tests/mars_parse/test_main.cpp": { + "mode": 420, + "sha256": "e808f3e2054894da5481d549d93cc837daff61c7b049691f6e2ee453cec53389" + }, + "tests/mars_parse/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/mars_parse/test_value.cpp": { + "mode": 420, + "sha256": "a8dbe3326e5339cdad8fed7dd678df92e8a8b675d0b854f4cea6517bf557069d" + }, + "tests/mars_stream/CMakeLists.txt": { + "mode": 420, + "sha256": "31c69840e6e2e566d2e0bbaf49ab3dec712d27e505d0810ddf0496ce3ff321e0" + }, + "tests/mars_stream/build_and_run.sh": { + "mode": 493, + "sha256": "3737e42960b66e788a11cdd7fa9917fe255b6a4f60280e9f620593bf688aab41" + }, + "tests/mars_stream/oracle/compare.py": { + "mode": 493, + "sha256": "f39dd70e4bbf1952cf99e3437fd1ed6252249f3455a2d3c73311f98d8ff4370e" + }, + "tests/mars_stream/test_domains.cpp": { + "mode": 420, + "sha256": "08394777f7bc4186883cd02058f17fda8f47c3ee47049892bd8762c28b5aa959" + }, + "tests/mars_stream/test_rng.cpp": { + "mode": 420, + "sha256": "55f77273d8af5880f976a24fb00dcd8042b31a7a33f15c9f4b62fdb85bba9d0a" + }, + "tests/mars_stream/test_save.cpp": { + "mode": 420, + "sha256": "50250bb4b4f2da05f9453c541f080e018b68731f24cbf93278d50ca93ddd8d63" + }, + "tests/mars_stream/test_stream.cpp": { + "mode": 420, + "sha256": "d0da9ac2287910527bdac875ab39e0147a9be2f5535f04b55460438f31be2537" + }, + "tests/mars_stream/test_wire_schema.cpp": { + "mode": 420, + "sha256": "1cfd259f554be8218cb182dd1facc07f6cd3dea52f0daf7303393e78c7c2eb97" + }, + "tests/mars_text/.gitignore": { + "mode": 420, + "sha256": "181314065df2f2fdaf920b1a8b5311daa216a2d6489a06ada5b49cc514d89417" + }, + "tests/mars_text/CMakeLists.txt": { + "mode": 420, + "sha256": "20f8e0cfa044fb4e6b1caca0ec8d6536e012c1c4ea4454fe990923f40a201752" + }, + "tests/mars_text/build_and_run.sh": { + "mode": 493, + "sha256": "59ae392080c01be0c7f5530ecb9ae4fbdcc02366242b27527c14b8efd5076d0c" + }, + "tests/mars_text/dump_json.cpp": { + "mode": 420, + "sha256": "e246384902c3adf4fa8f2a54e38c4912f6b58f168ebc9b1e158a719e2a52b1bc" + }, + "tests/mars_text/oracle/compare.py": { + "mode": 493, + "sha256": "46a796196a413aa28a0069086e45c96399f21308153b578f063801eb997b54ef" + }, + "tests/mars_text/oracle/dump.py": { + "mode": 493, + "sha256": "53fde94f6676a5504a247cf209e2a42d67e108cc9ea0b02f289562799ee7d880" + }, + "tests/mars_text/realdata_test.cpp": { + "mode": 420, + "sha256": "a399ad5cf91cf35f78809f5b9b5cac8b2eff344dbfbab07b8b27bf66058e1e3b" + }, + "tests/mars_text/unit_tests.cpp": { + "mode": 420, + "sha256": "cd1e9e4f6e0e503d4d9b0902bd2936513293490cdc680f94639ce93661ca09d7" + }, + "tests/mars_vfs/CMakeLists.txt": { + "mode": 420, + "sha256": "282015598e03430be0f47b779ce7087662415b3a59de14814cb3ba35c17af363" + }, + "tests/mars_vfs/build_and_run.sh": { + "mode": 493, + "sha256": "b6a8e7b0706d7416f548f071e742e600cab226663f7d4ad42299dbb76f631701" + }, + "tests/mars_vfs/make_fixture.py": { + "mode": 493, + "sha256": "57586249e57550869dd5adfbc4fdab173a59d2aee630ba69c20d562018d249f1" + }, + "tests/mars_vfs/realdata_test.cpp": { + "mode": 420, + "sha256": "c95248ae53d32bd5d8cf963ca3a39ea82e5ef08b76de736104b6aa34ec88c789" + }, + "tests/mars_vfs/test_main.cpp": { + "mode": 420, + "sha256": "cdb7bdf9b9356eb0b7f6cb0fab081cda2161b34af14ecf60cc44970e79d517c2" + }, + "tests/mars_vfs/test_main.h": { + "mode": 420, + "sha256": "fd63ecf0b56330ee41184fb166498887a8e0af48c7ca60a33ad3270aa5af51fc" + }, + "tests/mars_vfs/unit_tests.cpp": { + "mode": 420, + "sha256": "de8da00718799886fbbc5820e0f7d0e468a31ab0608361fb509b0c12932c9caf" + }, + "tests/mars_vfs/vfs_cat.cpp": { + "mode": 420, + "sha256": "4a443e779de264f5c0c68a631b1a353b1310a4e838d342527befd8ad1e2a25bd" + }, + "tests/mars_vfs/zip_builder.h": { + "mode": 420, + "sha256": "a0f3688e5a90b7e209497d66d0dcd30a0e1ac59a56ffcbed31b2a50967c1da3a" + }, + "tests/shim_budget/CMakeLists.txt": { + "mode": 420, + "sha256": "88a0f43e433c3a6879a7f6cccf8c84ba4559009614a3fe5adf6c558ea7a47245" + }, + "tests/shim_budget/unit_tests.cpp": { + "mode": 420, + "sha256": "654e96d0880232d3090223a0d9f92f428aeffa528fbd5eca89d6bfe348aefce0" + }, + "tests/shim_colony/CMakeLists.txt": { + "mode": 420, + "sha256": "d7b2674971b0eda32b2edd62244c32af81cea9e6d984a24ca6648edbaea80e06" + }, + "tests/shim_colony/unit_tests.cpp": { + "mode": 420, + "sha256": "4cc41308c10fa1e6aa047fb6c26e4c655b727884bce87b5a9e8e2f76db665474" + }, + "tests/shim_events/CMakeLists.txt": { + "mode": 420, + "sha256": "2b43190a2ce88cf7227250aa5a3b48e3006d24f0d6f5e9a5e48507c2733e4c45" + }, + "tests/shim_events/unit_tests.cpp": { + "mode": 420, + "sha256": "0dc151a4aecb24217cc38cb818bbe760b3da2b08a23ad734b3fa8506d25fe2b4" + }, + "tests/shim_movement/CMakeLists.txt": { + "mode": 420, + "sha256": "46ffe5a9815b189283e4d5ef67a0dcd159f60da7f9ca4a3577669035fefdc1f8" + }, + "tests/shim_movement/unit_tests.cpp": { + "mode": 420, + "sha256": "ee6ee983aa72f078a7ae398ca5f828aba14370c898ae4e56063697d28919ad69" + }, + "tests/shim_player_turn/CMakeLists.txt": { + "mode": 420, + "sha256": "f6affa205f857d4a45f8be05ae0426b6f9a2e8e127f5aeadbac2ed8a4c4daddc" + }, + "tests/shim_player_turn/unit_tests.cpp": { + "mode": 420, + "sha256": "0a528cdf64904dfd22c94ea911a15213701e7912921f04c1909799e6e6240450" + }, + "tests/shim_rng_ledger/CMakeLists.txt": { + "mode": 420, + "sha256": "b6a349f2611ec1f1de2013145a97f3da59cefec81dbc4d2f3e58af507e598bb4" + }, + "tests/shim_rng_ledger/unit_tests.cpp": { + "mode": 420, + "sha256": "d38d80dd907a3468036dbca2b017718b199ab4a0078eb5e5b019b913a9ef8d8c" + }, + "tests/shim_techfx/CMakeLists.txt": { + "mode": 420, + "sha256": "5eaf9a76df6b10258a8c1d2658b03d97377d48a778a1628ca94c9bd69fa7ba8a" + }, + "tests/shim_techfx/unit_tests.cpp": { + "mode": 420, + "sha256": "99a71a6d0ca1f53fc8ff0bc21e79acd64ba2cd9c9f990641e5970c866794595b" + }, + "tests/shim_trace/CMakeLists.txt": { + "mode": 420, + "sha256": "91bc736e198c5cef86ad2ad69ca77d93ab770e5faecf9e6d915f9263b9ce491b" + }, + "tests/shim_trace/check.h": { + "mode": 420, + "sha256": "f4b72b971886c64383880ba26484f9c908d21f5902dff0de0b42f276b00d8366" + }, + "tests/shim_trace/harness.h": { + "mode": 420, + "sha256": "d7eae563723843c1389b108fe2efb2e31b6c264d23567a370a09fb9b1d513697" + }, + "tests/shim_trace/oracle_emit.py": { + "mode": 420, + "sha256": "29ed06c602e9f0d6430bb3c81192b1946213a3f44b91107f7036f35f17b69f42" + }, + "tests/shim_trace/test_coverage.cpp": { + "mode": 420, + "sha256": "8ed5b6d755fe7e2bc98d525e97bc7817a5efb7ed5f0196d49d1c783de3a91bea" + }, + "tests/shim_trace/test_diff.cpp": { + "mode": 420, + "sha256": "afd8e5124cf6e1ad9c4f3e4c2beeb65d00002cf1d4cbaa2e876fea0817a7a347" + }, + "tests/shim_trace/test_emitter.cpp": { + "mode": 420, + "sha256": "a9255bbc055df36a01931e8a61dd1dbf16085f7713db7e7386f66b69ddb10762" + }, + "tests/shim_trace/test_hook.cpp": { + "mode": 420, + "sha256": "4dd67374e260ba2722219c2e44e6be76e583d0ad65844f34859cff49b66a30cc" + }, + "tests/shim_trace/test_sha256.cpp": { + "mode": 420, + "sha256": "b55aa15dc806e3e4a87ddf50657fa4e0af6a4e4e2205c4bd63d1ae066fe57428" + }, + "third_party/minhook/LICENSE.txt": { + "mode": 420, + "sha256": "d5c2224982b0b95a16b098a561335fa93f3eaf4d0aa964b7843edb986df78dc8" + }, + "third_party/minhook/VENDOR.txt": { + "mode": 420, + "sha256": "c79054234a5340f6199f8d9f47d6b3d88e8abd2120586cd78f081cfb81a6fabd" + }, + "third_party/minhook/include/MinHook.h": { + "mode": 420, + "sha256": "e34bbf7b855c842694f6e3dd78e2d280e99ed9732501e3dc1532a8626a8db8e5" + }, + "third_party/minhook/src/buffer.c": { + "mode": 420, + "sha256": "75a789eb718bd5ed2de039ccd330736a31d0a2d14e43d8e15e6cd2332432482d" + }, + "third_party/minhook/src/buffer.h": { + "mode": 420, + "sha256": "9769702bd625249e59a19ede05c84365fcc7707e1fa0e5df08df42227cee13e3" + }, + "third_party/minhook/src/hde/hde32.c": { + "mode": 420, + "sha256": "0ddbc3ab3e0b37e61691131289a151e34f508233ccf3f701752777e5d3f62d68" + }, + "third_party/minhook/src/hde/hde32.h": { + "mode": 420, + "sha256": "5132de5be8ac7a9d054420f5caef0fb01437faa892f03b3cdc77f795973bf15a" + }, + "third_party/minhook/src/hde/hde64.c": { + "mode": 420, + "sha256": "9bf19dd706d4bc255ebd1709f98fb44899df7a1f2412820d77295136e0620f1d" + }, + "third_party/minhook/src/hde/hde64.h": { + "mode": 420, + "sha256": "e99aa4997bda14b534c614c3d8cb78a72c4aca91a1212c8b03ec605d1d75e36e" + }, + "third_party/minhook/src/hde/pstdint.h": { + "mode": 420, + "sha256": "604d1cdf45c5a95bc9cf1bbf39ca05ef83013541101d34971c5cd7577e3d5247" + }, + "third_party/minhook/src/hde/table32.h": { + "mode": 420, + "sha256": "43bf687a9fff071b5f46070db4d36c846f8e069cdc57485ee897c499aacdde23" + }, + "third_party/minhook/src/hde/table64.h": { + "mode": 420, + "sha256": "b774446d2f110ce954fb0a710f4693c5562ddbd8d56fe84106f2ee80db8b50a2" + }, + "third_party/minhook/src/hook.c": { + "mode": 420, + "sha256": "3060d3c42f03a2f11324cbee95d853071757ed0fe4b1bc9eb5f0d8fc9e346a37" + }, + "third_party/minhook/src/trampoline.c": { + "mode": 420, + "sha256": "d837f8555681c3762468d712c43f2064ed31dee610e0b02965fd8aa54b88172f" + }, + "third_party/minhook/src/trampoline.h": { + "mode": 420, + "sha256": "27426751dde36cdd8346469e61cdcca47950b1056a69f21cc63f4b41743faf6a" + }, + "third_party/miniz/ChangeLog.md": { + "mode": 420, + "sha256": "ff3b6040f7cbd8c9779a0690e906c66408f7efe3cf88a25019323f0189025ec3" + }, + "third_party/miniz/LICENSE": { + "mode": 420, + "sha256": "0115478d567121238cf6cc1c0c361926cf07a49d9e4c9e66da97fac6a01646b3" + }, + "third_party/miniz/miniz.c": { + "mode": 420, + "sha256": "e2c1aeb66eef9191d8c3feb164db2def2335a61d039bf04ed849f6b042433b30" + }, + "third_party/miniz/miniz.h": { + "mode": 420, + "sha256": "b53b62ed122e559b8f679e3cb787a0b0035fe87a58f909da0e44931678f4e85f" + }, + "third_party/miniz/readme.md": { + "mode": 420, + "sha256": "b4ea367be28a36e5386f65118b73962bc659a67936d248be68b7a7c03b8d359b" + }, + "tools/build-shim.sh": { + "mode": 493, + "sha256": "1da3fdcc019dc6495c870a42b93cee9f21ff7f9623f033c2f50d9db9fd6a33e0" + }, + "tools/check_shim_configs.py": { + "mode": 420, + "sha256": "ef5e8f100c06d8c485a165ab668206af3e9aed3e1f6aa6ffec2592419fc2332f" + }, + "tools/clean_room_check.py": { + "mode": 420, + "sha256": "e15bc3ebfd29c6e2d8edfc32cc812858869b49ffa1404cafce14c4c24e0f4e24" + }, + "tools/clean_room_check.sh": { + "mode": 420, + "sha256": "6646eb6010be756113f7af39b9cfcb06e8580893fbd100a41993f87757ccfd6a" + }, + "tools/deploy.ps1": { + "mode": 420, + "sha256": "fe01f46bedc91d7b42ff98cb0e69633845094cc2802108d23d48eb70f32e3f27" + }, + "tools/sync-build.sh": { + "mode": 493, + "sha256": "ce418ace6c5edae8609849233bb5dfd24657f55141c8ef8507659608f12aee2d" + }, + "tools/undeploy.ps1": { + "mode": 420, + "sha256": "5730b6f95f161ba5a727dc0a34f26da7f1f697711495d6a9de9c289ecd747af0" + } + }, + "manifest_sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd", + "path": "/tmp/opencode/sots-final-research-engine" + }, + "re": { + "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", + "files": { + ".gitignore": { + "mode": 420, + "sha256": "ba56b745b84c6d15b7288df65f319831fed3cbf8edd1ab3a6476418f48fd95f8" + }, + "AGENTS.md": { + "mode": 420, + "sha256": "e722b65480a9f72c2fde1c677c789d4f4b347ef9b450894e9f4295035373df7a" + }, + "CLAUDE.md": { + "mode": 420, + "sha256": "b3e3e5851645a05543e91f128eb6d349abdc6f22accfd997012526e4d35eaa8e" + }, + "README.md": { + "mode": 420, + "sha256": "e318014a84d03e53983cdb1e5b0310f372b959f659b91abc9214faf530544afc" + }, + "campaign/DASHBOARD.md": { + "mode": 420, + "sha256": "eb207987006a3a661bf05b24fc361e1dda74b7a7f42f4abf4a3788cb17a254e6" + }, + "campaign/README.md": { + "mode": 420, + "sha256": "dc702a81c2c664c07eb170f082deb65bc3ff24e2b80d892bb082c7c4feac64fd" + }, + "campaign/agents/analyst.md": { + "mode": 420, + "sha256": "895c41509016038b3f72c4a68608c4101511e69c5bf410e379286da1a6202952" + }, + "campaign/agents/implementer.md": { + "mode": 420, + "sha256": "eb5581051a92b3d2b9ddd947812b1c02ff6a0b5e7619e7674adc26701e9a3d91" + }, + "campaign/agents/lab.md": { + "mode": 420, + "sha256": "48f1765ebdcb2015e631ad91428f65735ff899e119134b652f70788ff2eae5b8" + }, + "campaign/agents/lead.md": { + "mode": 420, + "sha256": "7661bbfca972be50a52c735b7f15f5be740158542c3d0cdbdf9a6a2590c7f1ea" + }, + "campaign/agents/resolver.md": { + "mode": 420, + "sha256": "742c36dc8567669d462566d6121eed42fcff5bff34e8eff466e92249f7ca195f" + }, + "campaign/agents/verifier.md": { + "mode": 420, + "sha256": "e467fc644e4e37d631a7a4e35038d9d3d0498491f1d7811d61d99271ff345c6b" + }, + "campaign/backlog.md": { + "mode": 420, + "sha256": "a10edaae044e84ee4d26e7461b88e557112f572d60c57e0025171a53dd209a35" + }, + "campaign/board.md": { + "mode": 420, + "sha256": "040c12a20f5bf70b8e6a239efb205039d1ce00a805411ba194a12bde9f40c03e" + }, + "campaign/contract.schema.json": { + "mode": 420, + "sha256": "a2c76ec042ca097a57c3c05c1e519e392d498d387a31808c7d0f70482d43c201" + }, + "campaign/contracts/controls-bootstrap.json": { + "mode": 384, + "sha256": "2943d2281229c102dd612676428a9714510e540671c1e04dae3e6fa7ea1b56ab" + }, + "campaign/contracts/launcher-smoke.json": { + "mode": 384, + "sha256": "c0418dd22bafc321b2f800acaf574dca7956c37b239d789981b920d50ab36599" + }, + "campaign/contracts/research-completion-abi.json": { + "mode": 420, + "sha256": "a5cf5e4bbc5052aa13dc34b55ee65f2997f9342e0b01062e85ad2c16d99daf71" + }, + "campaign/contracts/research-replacement.json": { + "mode": 420, + "sha256": "1108d30bf7e28f30b2446014503fc3200a8b8198a8fab0b866b873a81bf7b8b9" + }, + "campaign/current.json": { + "mode": 384, + "sha256": "87661aaf5ddfbb872365dae8c531453a1e0cb7f91b3ada046be3e829d2555f77" + }, + "campaign/models.json": { + "mode": 420, + "sha256": "95f507237a8e4fcf14189da4aa102dfae1dbaa536d4d8db6bcbfc30162ac5443" + }, + "campaign/open-questions.md": { + "mode": 420, + "sha256": "efb1c736a07bff32e75e0eede20681c206e2c95f439dffe9824702cb864972e7" + }, + "campaign/pilots/research-replacement.md": { + "mode": 420, + "sha256": "3101b8959f28ba2c6ffbac02a82b5ae0e841e7d78bd1f40f05b9d1d2278490ad" + }, + "campaign/research/SESSION.md": { + "mode": 420, + "sha256": "258a2884486ee777fbd8ff180abf23a3a320b2981ee1e90b57d4e3efe18643f2" + }, + "campaign/rollout/RESULT.md": { + "mode": 420, + "sha256": "87aba912d66e2f7bd9779f86cbae3c78d64b1be2572db02ac39fc70c750cb79c" + }, + "campaign/rollout/architecture-decision.md": { + "mode": 420, + "sha256": "8c710f390671500386745d063d6cb6edb175e6e26572286334d2f14a36be6d41" + }, + "campaign/rollout/controls-followup.md": { + "mode": 420, + "sha256": "44d0c95978cbc0953d6b1feab4463b29fab68c9d8dad2eca5fd562bb5aee1578" + }, + "campaign/rollout/controls-worker-state.md": { + "mode": 420, + "sha256": "02ff66f3f0fa978819e5c100e24cfd3752b9041590e2aed36f6abd62ce790f4e" + }, + "campaign/rollout/controls-worker.md": { + "mode": 420, + "sha256": "d022483618d3c3412785ba40e71106976c9b1c9978c43e424e3023a67b8b3f0f" + }, + "campaign/rollout/controls_evidence.py": { + "mode": 420, + "sha256": "bfaf4e523b2ca39c0ecdab94adf0b2b19a3da68aab8a0fcba69a613aed46588a" + }, + "campaign/rollout/engine-followup.md": { + "mode": 420, + "sha256": "d3d289fb4e4cfb7cf1ab6c3de597f530eafd27d3b1aa2f3e8904d6da3a95ac44" + }, + "campaign/rollout/engine-worker-state.md": { + "mode": 420, + "sha256": "76601fa42c95bd7d78ce46f528a33ef0483e0b7f2e19a1cfe1cab8e560bed05c" + }, + "campaign/rollout/engine-worker.md": { + "mode": 420, + "sha256": "fd8bbe69947b69baa61449548d5746723c941ad8b663ec66d1b278234bebe5b2" + }, + "campaign/rollout/formal-verifier-state.md": { + "mode": 420, + "sha256": "2fbac02f5f22b45e94ee33f9f53779fa059c5e93282d3c2f5ad0af027029a1f4" + }, + "campaign/rollout/formal-verifier.md": { + "mode": 420, + "sha256": "f961ceaef0037001e6576d760e28e7aded0502f3d8311925e5ed1cc537c996dc" + }, + "campaign/rollout/gate-followup.md": { + "mode": 420, + "sha256": "677f17aef214e7a6c92958dd8ad98137b238cc7fe7c1da23bcf36d727f28f7c8" + }, + "campaign/rollout/gate-worker-state.md": { + "mode": 420, + "sha256": "96514befccc589487ac3b6ff9348106aca2e4e8e3aa348471943d589c74629e2" + }, + "campaign/rollout/gate-worker.md": { + "mode": 420, + "sha256": "55db7c5f637d849fb2f200ab12c35a794c86e377a5de3f562b1c32455583e65f" + }, + "campaign/rollout/housekeeping-completion.md": { + "mode": 420, + "sha256": "a25041ebaeb030f1cfc62564b5bc57a98818ea75e082f28036e9cc367096ccd1" + }, + "campaign/rollout/housekeeping-followup.md": { + "mode": 420, + "sha256": "5759aaf403c019173450822dc5e9d4aad711a7497eba906caea39bdb39bd3702" + }, + "campaign/rollout/housekeeping-worker-state.md": { + "mode": 420, + "sha256": "5ee9a48a691709af325994fd3d44a1ac6e40d05f26e09b03ae7efec2ecbe25cc" + }, + "campaign/rollout/housekeeping-worker.md": { + "mode": 420, + "sha256": "bab8219fadd0688e91d6211478a01403a36ae74fd2b6f7df0ad5c8745a542ca9" + }, + "campaign/rollout/independent-review.md": { + "mode": 420, + "sha256": "a7a8ebcce5202db0e67c8c65135df751e69ee6728c4c2ced92e1cc85b4279f22" + }, + "campaign/rollout/lead-state.md": { + "mode": 420, + "sha256": "3ded5b3f97d7882f72abef5ea268765a5db29c8b619486c153f5c92742040c01" + }, + "campaign/rollout/publishing-worker-state.md": { + "mode": 420, + "sha256": "641977e4d0ec400a3a6c38121ae5e7904aa1accc47179ee148ad7cb199029b0e" + }, + "campaign/rollout/publishing-worker.md": { + "mode": 420, + "sha256": "822812fbc803d443fb7e0855268c34224eda29f95e57274c217275b09ff4410f" + }, + "campaign/rollout/review-followup.md": { + "mode": 420, + "sha256": "853e3b5aab09cd77fd54cae6d8a61fb5ae092603ab2be8dee2db6d80492a6443" + }, + "campaign/rollout/review-worker-state.md": { + "mode": 420, + "sha256": "a704e6023eaf3424761bf431e49687ae1f1d687119fe00a466b9da2d9ef7bd42" + }, + "campaign/rollout/review-worker.md": { + "mode": 420, + "sha256": "0e348015440aabef95766010f14880619d34a472102698c9819dfbb029b8a6c8" + }, + "campaign/rollout/sync_verifier_snapshot.py": { + "mode": 420, + "sha256": "4133e536bfdb0e206ecdfc072062e7674b07b973c7f8b9d7f1a268520523d6eb" + }, + "findings/.keep.md": { + "mode": 420, + "sha256": "141ed928eaf10a2023dd2c0ff6ea68cf6ec423cfd28d5a359d9c5add730bf64c" + }, + "findings/00-strategy.md": { + "mode": 420, + "sha256": "3bc97827988c6eb4647713c5655271e156dfa466fad5685924010f3244fe6386" + }, + "findings/01-fingerprint.md": { + "mode": 420, + "sha256": "7cf0503c29f5beff852427c2c5bdf8e9d968386de777c47b6130771cac944cac" + }, + "findings/_template.md": { + "mode": 420, + "sha256": "b92d0ca7bfef4498a5f9e594453f15ab15e2c88c7582c4ed5df4c40e6871c3b1" + }, + "findings/control-flow/ai-visit-order-probe.md": { + "mode": 420, + "sha256": "e89f91a33139014ebdc22d79064ecfd06f9b4ffebb4bbc3da73734fc47534047" + }, + "findings/control-flow/alliance-mask-and-modcount.md": { + "mode": 420, + "sha256": "ec66c6b76d9e4c8bed385acf70e6a7d5da08e05eca72ac1e8e5cb307d87f2552" + }, + "findings/control-flow/combat-done-tail.md": { + "mode": 420, + "sha256": "799ace775f12ebe9a2737a711c8d0a6e617f0cefec70b93bf094e47cf81cc348" + }, + "findings/control-flow/combat-resolver.md": { + "mode": 420, + "sha256": "abf1a9329c1bd8a96c76481246a00b380e9a17fa8dc8900810218026e5fe1b9e" + }, + "findings/control-flow/combat-retreat-pipeline.md": { + "mode": 420, + "sha256": "6c40c8bdbdde672c9cd67248d740d88892ad2b93b30e27e9bebe0e96027cf136" + }, + "findings/control-flow/fleet-visit-order-mechanism.md": { + "mode": 420, + "sha256": "a2ea1a6ac9d383380e16910cff89dff0e9b23f1df66f47ef91dd266bd50b3a6d" + }, + "findings/control-flow/gate-indexed-rng-audit.md": { + "mode": 420, + "sha256": "5004b2480787eec7be66f40474648030fdaf7759087a4c4651091152d89351cd" + }, + "findings/control-flow/hive-creation-rng.md": { + "mode": 420, + "sha256": "5ff37d571c0380c798a137e0c6947a0c63109de489fd2100c99bfc6637fc272b" + }, + "findings/control-flow/indirect-edges.md": { + "mode": 420, + "sha256": "3dbf2acf7354f61de66348fe40965f3138dbc4bbff8cb0f06b2751e71ed06ee1" + }, + "findings/control-flow/inlined-draws.md": { + "mode": 420, + "sha256": "3b099718543d7fb112664699749602ff9d61de9aaebb561fc93f1f8b7a152134" + }, + "findings/control-flow/per-history-residue.md": { + "mode": 420, + "sha256": "739c7fc760583ca143036ce554e1eece640d1662fba4642e6f80fadd3dad13f9" + }, + "findings/control-flow/pinned-seed-rich-turn.md": { + "mode": 420, + "sha256": "7c62336767b7c69f513446543f37662ba2a0872e207b906279446bbe399d65b6" + }, + "findings/control-flow/raid-gate-multiplicity.md": { + "mode": 420, + "sha256": "6d7b7357be428ff79186478dc37063657ca4d8e2ad49fcdd92493753748a52f4" + }, + "findings/control-flow/raid-intercept-species-word.md": { + "mode": 420, + "sha256": "1da80eb14f0e3e5a0ce139f62976bb305e3e75a1e5e0631d8287f94eac093d8f" + }, + "findings/control-flow/raid-intercept-z-word.md": { + "mode": 420, + "sha256": "beb421953b70377c8c759f5cc936321faa6316be76d41020b41f26c99706acb3" + }, + "findings/control-flow/raid-target-pick-verdict.md": { + "mode": 420, + "sha256": "d0262a4187e35547b28d6be842e7c730aa3ee93565404b587a790706afabd694" + }, + "findings/control-flow/seed-exposure-forward-test.md": { + "mode": 420, + "sha256": "f108a07ce695b64c482af58db4caeb2607059a3357b62f04f7f36ce45c84ff4a" + }, + "findings/control-flow/standalone-generator-and-turn-record.md": { + "mode": 420, + "sha256": "e499f62534580f27c2a01395e08312ebc7df13bdd307342096f468212aec600b" + }, + "findings/control-flow/standalone-scaffold.md": { + "mode": 420, + "sha256": "0bf928260d5058815a2f09c4df8c08eb359430aeea941f872018de7cbca39105" + }, + "findings/control-flow/tail-probes.md": { + "mode": 420, + "sha256": "ae45e84a9c7f257170f7550301fc4e1a35d5210269bda8070469a5c921cce95e" + }, + "findings/control-flow/tail-rng-ledger.md": { + "mode": 420, + "sha256": "2db588423e7b7de7729e5319477c17fbcea5b7a9cb8ff00b01cfd72bfce25403" + }, + "findings/control-flow/trade-raid-rng-gate.md": { + "mode": 420, + "sha256": "85c7b27aa284988b07b5e67c8e48ef1725289f1a6956d88be2572577cc06e1bf" + }, + "findings/control-flow/turn-driver.md": { + "mode": 420, + "sha256": "3f4e92041a0842d211ea9ae1ae16a9fe400dacf9632209102a1f76acc6b30792" + }, + "findings/control-flow/turn-spine.md": { + "mode": 420, + "sha256": "e2a64f82e5dececb4ba56859d1e53a0f720e08472c79c39197beba7f6041811b" + }, + "findings/control-flow/w3-containers-status-handlers.md": { + "mode": 420, + "sha256": "fffbaa6e3701abbe57a54046416a102502afeaa29b14632f9506905c22bf3914" + }, + "findings/control-flow/watchpoints-modcount-status.md": { + "mode": 420, + "sha256": "0aec4c93ca7219e29827a5069a9829d5e58da2001e79a7316bce288d3e9a6c7d" + }, + "findings/objects/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "findings/objects/00-inventory.md": { + "mode": 420, + "sha256": "cada5fc81c42cb50878a26e43a58640153c600319e66d4c92a23d7c363ff5f14" + }, + "findings/objects/aiagent-block.md": { + "mode": 420, + "sha256": "55d646ab57e90477993d263399254a3b103024d89fff42491b7df5cf4ffc8037" + }, + "findings/objects/classes-game.txt": { + "mode": 420, + "sha256": "e0eceb77c56e05bc7863d3a07805d703fc0ecec489ef24fabe7c6161f2835199" + }, + "findings/objects/classes-mars.txt": { + "mode": 420, + "sha256": "b624f7bd82a5277462a39627140a85c7a7929fd292b62e45edb5c96fd53b6145" + }, + "findings/objects/ghidra-recon.md": { + "mode": 420, + "sha256": "ca4b043a73c1d5573aa0c83cd3942db731884910c90e7d8544c8a32c939e2fda" + }, + "findings/objects/rtti-raw.txt": { + "mode": 420, + "sha256": "39f6fdf8793f8202c19cfb87a75466b215254a13050ec37c0c496699298247ad" + }, + "findings/objects/save-editor-structs.md": { + "mode": 420, + "sha256": "835d4fbf154275542383ea499a527c044ec7d577486c2735b817bd32d6e0c853" + }, + "findings/objects/schema-gaps-resolved.md": { + "mode": 420, + "sha256": "9ddae36eb8e3ef909c4902d01200fc8a17335271e4e063939ae162a3eea5bb3a" + }, + "findings/objects/serializable-types.txt": { + "mode": 420, + "sha256": "59c2f3942f55eb3f6687758a4c447b1ed8902caa60b97d9619bb8228e27c6838" + }, + "findings/objects/serializer-struct-recovery.md": { + "mode": 420, + "sha256": "5b56d8e1a5047d602cea7a76227f30e17244057fe21fde3d4e2cc76e9f185416" + }, + "findings/objects/ship-design-catalogue.md": { + "mode": 420, + "sha256": "feded2191180e184d34d4992935dc117bff8d052e8a2c63ecc29fa7b2e6b561d" + }, + "findings/objects/struct-recovery.md": { + "mode": 420, + "sha256": "4e99ef972529101f5700b52845e263fb3789e0b82d8cdeca921f1595a24d92db" + }, + "findings/objects/svsctob-variants.md": { + "mode": 420, + "sha256": "89617cd2909f2242e9e1657fd4a8f5aafe5aa0c1e0e9bc8926fb67c1e830dd2d" + }, + "findings/objects/svsctob-writers.md": { + "mode": 420, + "sha256": "7a9b7f3bf4eae63cf522246227410b2e3ca789284b7c620f01550fadf479622c" + }, + "findings/objects/turncommands-block.md": { + "mode": 420, + "sha256": "8eca2b79838114e7ae46d34c6e75eaf3b04c0448d9896ed4219b118f09e83046" + }, + "findings/objects/wire-schema-channel.md": { + "mode": 420, + "sha256": "31f0fc4e1cc3c3e7ef938aa22ad65cfdec32be4f1ade476a7ebf32c3c6f07d6f" + }, + "findings/objects/wire-schema-closeout.md": { + "mode": 420, + "sha256": "bbae848b4f8d6d0f2a914268ac34e75b4cea483f52816916202f3bd3cd084255" + }, + "findings/objects/wire-schema-ratchet-debt.md": { + "mode": 420, + "sha256": "0d144181478a607f2474a7c8a1b71ca49c881ef6fd068b5e8859c3fa8129507a" + }, + "findings/resolutions/2026-09-08-ai-seed-per-process.md": { + "mode": 420, + "sha256": "0765bdaeade29122ab5e64493f3a7c339f1e4c4445192ed09ae3d229dd6ae943" + }, + "findings/resolutions/2026-09-09-fleet-id-order-residue.md": { + "mode": 420, + "sha256": "b3d63a11e8ebd55da4af15760d044607b6105216898a018f5ceebc94750817e8" + }, + "findings/resolutions/2026-09-09-seed-exposure-is-a-predicate.md": { + "mode": 420, + "sha256": "dd7ce18738a625b9008ef80783bd64fc3857852775ab3b784b9e5f4fd5ae7de1" + }, + "findings/resolutions/2026-09-09-tail-draws.md": { + "mode": 420, + "sha256": "ff86a332ea9f87bd6f42a0b64e837e6f6f5876423ae9403a903aa9bfe7c42678" + }, + "findings/subsystems/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "findings/subsystems/ai-client-seed-is-per-process.md": { + "mode": 420, + "sha256": "5e6de0418588ff28cee29cb9affd69c3183819318c314eeb0771bbe810e6b4ed" + }, + "findings/subsystems/ai-order-capture.md": { + "mode": 420, + "sha256": "6efebf9f00b375d2c7f29ddeb24ef7a04e3b02cac9027369b490157a196d08ce" + }, + "findings/subsystems/ai-order-emission.md": { + "mode": 420, + "sha256": "9e54a13a18387a4f93acc5c66dbf71d365c81f1a8e6d2aee31f7a89712894ace" + }, + "findings/subsystems/ai-stepping-and-passes.md": { + "mode": 420, + "sha256": "e7e2fc612457a4e77df362aea2928d20fa5a2456fe12a7fbafeaf3c9e01c1dc1" + }, + "findings/subsystems/ai-task-system.md": { + "mode": 420, + "sha256": "577f8fc41256ebdf9629f1e30df9aac7f51c1a84b55f60c2b59e4af4c55126b2" + }, + "findings/subsystems/ai-turn-logic.md": { + "mode": 420, + "sha256": "79e9b7c9592d583db7b9d9ce472804038a71febf7527bd69e31b3399caeb0770" + }, + "findings/subsystems/battle-load-profile.md": { + "mode": 420, + "sha256": "3cf8e28925ebbb162bca9c3be9e6b2599c82ab6aaf9a9d99ffd9c934bf773c77" + }, + "findings/subsystems/data-model.md": { + "mode": 420, + "sha256": "f01c9bfcf8ed9fbf9fdd30556308a1dbb1094896050cc8a5e4fbc1c6c61aff78" + }, + "findings/subsystems/data-parsers.md": { + "mode": 420, + "sha256": "6a428c14279ac2c589b4af932e762ef7e3ada1a878128527b8d88858c11fbc35" + }, + "findings/subsystems/determinism-oracle.md": { + "mode": 420, + "sha256": "4fe0abad0b1b825392cd47b792d06756742495f26ff40a6a433d8608b4680bcb" + }, + "findings/subsystems/eventlive-verification.md": { + "mode": 420, + "sha256": "8bfcc75e57ddf88ec8a4b8885f033be8ffd420965077ab284b1ebce535ecf1a0" + }, + "findings/subsystems/events.md": { + "mode": 420, + "sha256": "c5d6e168d6d48eabec0ae0a448f9c3ec8d0f751a67fc320bc1021ba10008a3bf" + }, + "findings/subsystems/formula-gaps.md": { + "mode": 420, + "sha256": "63ec96a27fac5381d33cdce3e549d230bd5b0230e4d8573f4f3d45bab7d47ffc" + }, + "findings/subsystems/fpu-precision-sensitivity.md": { + "mode": 420, + "sha256": "4cf84e2a1c3d0eaaf9b3a7f218ad663ffa6984389b2a25851249733ad708ff8f" + }, + "findings/subsystems/golden-trace-recapture.md": { + "mode": 420, + "sha256": "b244f939b87dd464d78d919675c0e6aa010b0ec7b4fc6e4178e26c2c8ebee738" + }, + "findings/subsystems/id-allocation.md": { + "mode": 420, + "sha256": "b04a14a5a7d4d1c6137c4f9072987eebc997421e550881dcc2c8e386187f5b90" + }, + "findings/subsystems/income-term.md": { + "mode": 420, + "sha256": "c40286635675a91ce779b887a0394e92f946844873a778015efb98c4a105b67e" + }, + "findings/subsystems/loader-prototypes.md": { + "mode": 420, + "sha256": "f1d09471d5e17c45413b86805f561329f5af24eadfb17c3c740686c39b167ed6" + }, + "findings/subsystems/money-chain-float-widths.md": { + "mode": 420, + "sha256": "99bded6f2d34a713bc175deb4ad5ab4559ce1cc90274b036c1818ad8257c2fef" + }, + "findings/subsystems/movefleet-position-rounding.md": { + "mode": 420, + "sha256": "12dbdc03658cb042b5927586769dc9c19fc2eb812f703e73bf26273f8b0d65a6" + }, + "findings/subsystems/multiplayer-combat.md": { + "mode": 420, + "sha256": "2f4957011b5c5875b8aa7f71531dd5dfe3fd8df4f2c67a7be2fb5999f090c02b" + }, + "findings/subsystems/multiplayer-gamespy.md": { + "mode": 420, + "sha256": "a878e97775d27e085e58b18eaf5a67aaa522456d1055ca142f0477e3d6152d47" + }, + "findings/subsystems/multiplayer-tier0-verified.md": { + "mode": 420, + "sha256": "942ce29cbe22d8f7de5af54f2017c0433c7b8e1a56c864868ec906ffcbb9059a" + }, + "findings/subsystems/nav-classifier-live.md": { + "mode": 420, + "sha256": "b8aacdea8072a99ba1192e235088b372180f094795baf164e8cb95bd2df9f3b0" + }, + "findings/subsystems/nvo-tshn-visible-owner.md": { + "mode": 420, + "sha256": "ef96bb61769c02affd7148cd95e70bf358cbe6263fbe9b47aba6cf4cfa8486ad" + }, + "findings/subsystems/observedtech-append.md": { + "mode": 420, + "sha256": "61efcf51bffe53b8a10a2cdb8123db3f8c55b6874db87418fc31737efedaa652" + }, + "findings/subsystems/output-term.md": { + "mode": 420, + "sha256": "9eb9ff58a1d4cf34d3138f5044788b6f87ff4c94fa871b2dedd6ff6667196533" + }, + "findings/subsystems/output-turn-path.md": { + "mode": 420, + "sha256": "4e199e5cc14802c1b14b37cff0c1359b43aca94dab833f9024c7825c4c512588" + }, + "findings/subsystems/path-solver.md": { + "mode": 420, + "sha256": "3e0e318d45e14f844831c4180e47011263f64067dacf3249742882186d65cf18" + }, + "findings/subsystems/players-residual.md": { + "mode": 420, + "sha256": "e2f56c7983856470d37cd0fba4834a0ccb34dcaddbaf9acaf5dcdc253c6b3507" + }, + "findings/subsystems/population-growth.md": { + "mode": 420, + "sha256": "c2ec2f062e1224045b761640549e7374336ac762bd61c686a0c1378ad829a993" + }, + "findings/subsystems/rcex-explained.md": { + "mode": 420, + "sha256": "df7c9de6f02c1bd38f69e3a5344ec663d97b1d6b738ff408dfdeb0e2f6175b32" + }, + "findings/subsystems/relabel-new-ids.md": { + "mode": 420, + "sha256": "562ffe347adc6432a7824bfa2b324b6b1812b4fcc18343f0732c0f3d9991be20" + }, + "findings/subsystems/research-replace.md": { + "mode": 420, + "sha256": "d0f692cf687a7fe6aab62fc5d7d076eb595e1c33fd84c6f1e437ed01025cab4b" + }, + "findings/subsystems/roll-parity.md": { + "mode": 420, + "sha256": "7d97d7e5eee7b9f135e32b6553bb94ca83fd05b1eca7d18c42e9d65cae4d95d1" + }, + "findings/subsystems/rung-b-rich-turn.md": { + "mode": 420, + "sha256": "44378c6a305a82b2d131270fa5d97fdcd8a7fd5c9760ecbad7715383eac2db68" + }, + "findings/subsystems/running-the-game.md": { + "mode": 420, + "sha256": "f6109f69c6b86e4cf01d0f2e1f8be9921ff632513bca5d9e44e7f6c34f1cd260" + }, + "findings/subsystems/setresearched-cascade.md": { + "mode": 420, + "sha256": "9c079de161a1d1387339b8e8081395c1356c1443a0c898942acfb6efb65a454f" + }, + "findings/subsystems/ship-construction.md": { + "mode": 420, + "sha256": "86f570b1872c8dfac3982d1d7335f4798ccbd1bfd73c91d481afba2734c41216" + }, + "findings/subsystems/ship-design-composer.md": { + "mode": 420, + "sha256": "639b276e9205aaf6c90d9c458a383cc073e89f401ef8f17f8ad5a8a0c5899fa8" + }, + "findings/subsystems/snlv-measured.md": { + "mode": 420, + "sha256": "785324d176be969e1809090acd6b7a48d27f4fa41472c0d9c6f568c0b3a1e539" + }, + "findings/subsystems/spy-detection-roll.md": { + "mode": 420, + "sha256": "214179f5091408ef01ce4b80565068cb9a0885d1c6a233cda476280b9bf29c0a" + }, + "findings/subsystems/spy-program-draws.md": { + "mode": 420, + "sha256": "0c61c2f9cc767ae679921bfc42ef9a207ec9a6e0dc88419a673a8e439f1abfc1" + }, + "findings/subsystems/strategic-turn-internals.md": { + "mode": 420, + "sha256": "3a5c17e025d4968db6030f8ef1daaa2b03ccd4def12d35cf3a0eabcb0b5cbb54" + }, + "findings/subsystems/strings-and-config.md": { + "mode": 420, + "sha256": "67aefda7792e329b7df3f6e8cf42c7bae7049867cdda0741e871b183bc528786" + }, + "findings/subsystems/system-visibility-prediction.md": { + "mode": 420, + "sha256": "b420526ca0410bd4578dd2ed29cd9a21ed3578d6345d9f853a883e0159c1f89c" + }, + "findings/subsystems/system-visibility-record.md": { + "mode": 420, + "sha256": "d2843e10c156a7c85d7dab40d00204475fc725dc9b93656f6cde941ceceb5f51" + }, + "findings/subsystems/t34-observed-designs.md": { + "mode": 420, + "sha256": "207641821a55f5671749b000d478afd9e427336e2d123a55ad2203f34dfaa796" + }, + "findings/subsystems/tech-effects.md": { + "mode": 420, + "sha256": "7423f1e2cb2a597738b244d58bdf467431ee5de725ac434b904676ddcbcfc609" + }, + "findings/subsystems/techid-name-map.md": { + "mode": 420, + "sha256": "cfd92a7885dad3775465fc0c5b40aeb1749499f90071b44855ab8e1746d5f752" + }, + "findings/subsystems/trade-and-spy-workload.md": { + "mode": 420, + "sha256": "147057456fa30b6218df19679abab1ac31b78276a4272d221b70776e154396ba" + }, + "findings/subsystems/treaty-turn-stamp.md": { + "mode": 420, + "sha256": "fa0a8588847cc2b9e92cddeca65fd00fe3d84a00a1034d9354053c7e6cd9ceb5" + }, + "findings/subsystems/turn-command-replay.md": { + "mode": 420, + "sha256": "b65fa3c3c01c67bc16ec488e4a44e6c748256e941c80987528b7602038a56e07" + }, + "findings/subsystems/turn1-to-turn2-nondeterminism.md": { + "mode": 420, + "sha256": "9ebe834fa0f7c1cf864032ec67da76730ed6c239d6bd3a717f147490116acc4d" + }, + "findings/subsystems/turncommands-capture.md": { + "mode": 420, + "sha256": "a57fd2a77784fef1b176749878b161c4f04ac77c1f4a061a6b713787d92fb9ef" + }, + "findings/subsystems/ui-screen-map.md": { + "mode": 420, + "sha256": "d266285e3ca99ba3b5ebbab47c78f3df247a8b539c0519c6fd27a999b9d6f84b" + }, + "findings/subsystems/unlock-cascade.md": { + "mode": 420, + "sha256": "38d29a9484aa3910f5a62b5dd08225ba590bf26901203c5aef1b0b466fbbc5fb" + }, + "findings/subsystems/value-domain-census.md": { + "mode": 420, + "sha256": "bc99139708aee5da4cafec585fc35ab3523b51571518038db19b5f1383c6a6c4" + }, + "findings/subsystems/writer-byte-exact.md": { + "mode": 420, + "sha256": "a0e91a90d2ae78328dbaef30b37d53037cab26489e4729413bcfebbafcab0978" + }, + "ghidra/addresses.d/README.md": { + "mode": 420, + "sha256": "cf2745d5d3e504725ae5a296dc20e3d63b8d32a903445aafe2af61828a6d59c5" + }, + "ghidra/addresses.d/ag.json": { + "mode": 420, + "sha256": "24d5b11779364cf198008b143c7a3a092117ec4a1530c489497dbc8acdf62d8e" + }, + "ghidra/addresses.d/ap.json": { + "mode": 420, + "sha256": "e37f478836eb297f9cc5186cd7df3f5942abc4b6396a4d2866e613841437f778" + }, + "ghidra/addresses.d/ar.json": { + "mode": 420, + "sha256": "8d8620be8dd807a610ff63c0d77cbf266f3d9ce272158991d1f55d9c9910c248" + }, + "ghidra/addresses.d/as.json": { + "mode": 420, + "sha256": "08a869ab9466d4b575363cfb6fc084ca72cdc05d509c5d87e658a9a9977a7ae9" + }, + "ghidra/addresses.d/az.json": { + "mode": 420, + "sha256": "60b9a169605ac171cffb848024141c9224f6897bf69b547b9a4f2b5ddfc8d835" + }, + "ghidra/addresses.d/bu.json": { + "mode": 420, + "sha256": "79037146ba621e43e561bcf0577afc25b2ffac4ced44c902d2ea8ed9171b1bb9" + }, + "ghidra/addresses.d/cz.json": { + "mode": 420, + "sha256": "35de20ff0e38d05b5c58c89690dfc81ce44eb280a2a594ae862e55d56edb5d3c" + }, + "ghidra/addresses.d/dn.json": { + "mode": 420, + "sha256": "c41f877a37bc864f8f315a47b720ac204c22c25de405f4de63b845180641eba0" + }, + "ghidra/addresses.d/dt.json": { + "mode": 420, + "sha256": "580762e01175fb7246d0f9214e4ed9ba16bebcdb82ad1525fd1f77c0910c660f" + }, + "ghidra/addresses.d/lane-a.json": { + "mode": 420, + "sha256": "fce5f06866bddc6bca095d53e376495103dfd8900ad7da0d0d6731f105915d71" + }, + "ghidra/addresses.d/lane-a2.json": { + "mode": 420, + "sha256": "1207088eb2ae041afc2618a627029e25f578ae9fe8db73bb9efb616f39c34bf0" + }, + "ghidra/addresses.d/lane-ac.json": { + "mode": 420, + "sha256": "02a1c2f01ca0d11a7c38d416d94fabaea64b5c5919f6ceaead83430fb398710e" + }, + "ghidra/addresses.d/lane-ai1.json": { + "mode": 420, + "sha256": "134a0cb87b95bf5f39ed015bcdf64c6e8da6b22e073d5b5487148cb5421addff" + }, + "ghidra/addresses.d/lane-ai2.json": { + "mode": 420, + "sha256": "e9d94ce026231d420538400fa9c73fa8a2fa882d16f542c6b8ce2c34014acda6" + }, + "ghidra/addresses.d/lane-ai3.json": { + "mode": 420, + "sha256": "89c29e1bbb1159b7b6fb4fc8c232902f8497efc82290aba6f50c9c9097feec6a" + }, + "ghidra/addresses.d/lane-ai4.json": { + "mode": 420, + "sha256": "78b7897d3d2678ddbff7cd982bfa7d93a0c26817846a148fd3f46790fef9d7fb" + }, + "ghidra/addresses.d/lane-b5.json": { + "mode": 420, + "sha256": "641c724d1fbf28f5469aac488401ea2f92bdd3b929fbf053ddeef0ba5b8de9da" + }, + "ghidra/addresses.d/lane-b6.json": { + "mode": 420, + "sha256": "b2b2833220e3a645efab2b767f1d93d1215a54d195e28e6743db8f1d89934697" + }, + "ghidra/addresses.d/lane-c3.json": { + "mode": 420, + "sha256": "b732932503c181c77bb14ba0136379c8fa3501d0c1471b02d9bca7d023bb5f5a" + }, + "ghidra/addresses.d/lane-d2.json": { + "mode": 420, + "sha256": "8b5df39fb5eea0cd40dffc20aaccabe169f5472171dfd242ca2e75dfc4ca608c" + }, + "ghidra/addresses.d/lane-e1.json": { + "mode": 420, + "sha256": "cb38b41b747bf74ee73fb7eaa301da4bb896d089fa1dea4197382e94940c7f69" + }, + "ghidra/addresses.d/lane-e3.json": { + "mode": 420, + "sha256": "a5fe9dbb37ee587bf36a311771bbc9d8dcaa4d4fcc0b420b8f45829929b0ff98" + }, + "ghidra/addresses.d/lane-ev.json": { + "mode": 420, + "sha256": "b243d31bcd69bfb1e5928ba8b70e958e559c88ee5190ca34e569f217a784798c" + }, + "ghidra/addresses.d/lane-g2.json": { + "mode": 420, + "sha256": "84401f05c5cf2ca0839e817877892e904b3fd2fd4175607abc34453acd8ce822" + }, + "ghidra/addresses.d/lane-g3.json": { + "mode": 420, + "sha256": "d176eb4a07bb6b98acea77e1a0a9904d317a594768ecf8719bbfacbdf6522729" + }, + "ghidra/addresses.d/lane-h.json": { + "mode": 420, + "sha256": "e8cffe89c7feb1d9fa1949f33aff01edc7b84b49ab752275662f6f613c16c0b6" + }, + "ghidra/addresses.d/lane-i.json": { + "mode": 420, + "sha256": "a4c482ff6fee78e96da3400b9ba7d76b58634a5933ff388db5993a1b105c8aca" + }, + "ghidra/addresses.d/lane-id.json": { + "mode": 420, + "sha256": "3f48c9b2e2c3a08e13a856bfb78d551af17f5a1a1079f03f8edbf4615f17ca7d" + }, + "ghidra/addresses.d/lane-j.json": { + "mode": 420, + "sha256": "4fd95b08fee60a2748995cb082fe50d61e7179ae90b106f230bfc5c55a35660d" + }, + "ghidra/addresses.d/lane-k.json": { + "mode": 420, + "sha256": "f6ead3ff256fd2e1408d52bfa28e308f106ad672b3fe1cce0d136faac351136e" + }, + "ghidra/addresses.d/lane-l1.json": { + "mode": 420, + "sha256": "ecbab4a1b602beefd6889effc4883b7f7de01afabb7c5c071bbc4e2237e9131b" + }, + "ghidra/addresses.d/lane-l3.json": { + "mode": 420, + "sha256": "eabb96253bee36c799f1eb89108e284162606cfdc5e9bd29dbf7b5f88ee88adf" + }, + "ghidra/addresses.d/lane-l4.json": { + "mode": 420, + "sha256": "5b2b54d2f3e123e352e9a2b0f1d80fc8afcdd0b97916a94ee5a62ddc03b0ae75" + }, + "ghidra/addresses.d/lane-l5.json": { + "mode": 420, + "sha256": "cedc4869149212d401c519c46fa3f02769f9c939fc560fe8d35cc4f898091482" + }, + "ghidra/addresses.d/lane-n.json": { + "mode": 420, + "sha256": "6987efa430f2da8987e42e61e53113f914cb00e3e52a7c679565e7faf5160c82" + }, + "ghidra/addresses.d/lane-o.json": { + "mode": 420, + "sha256": "7fcf357f25ccdf061b6bc688339e2006f830c551718b6419a0a9d0ac968bb555" + }, + "ghidra/addresses.d/lane-p2.json": { + "mode": 420, + "sha256": "7eaa63d64a0054ef88f323f58b31fca07bd2372dc21560b4bda64eb13d869792" + }, + "ghidra/addresses.d/lane-par.json": { + "mode": 420, + "sha256": "3836b786aec28feb028271d05f368d7c332b8930b51cfdceb36540133a3d3237" + }, + "ghidra/addresses.d/lane-pl.json": { + "mode": 420, + "sha256": "f29953d17effbb7d8256687833023d4656522e74c40bf1ea646d3b35da3635d7" + }, + "ghidra/addresses.d/lane-q.json": { + "mode": 420, + "sha256": "6f98496ffc288fb30c3a7347a7e5252b296f2345afd1bf678f98a2c934b8935a" + }, + "ghidra/addresses.d/lane-rb.json": { + "mode": 420, + "sha256": "bff95b9452e0efb63e74f741682c8d1843abfe3e722143cf01cf092aa894d75d" + }, + "ghidra/addresses.d/lane-sd.json": { + "mode": 420, + "sha256": "d3239b619cbef5cddc9c7bde6525301a99a6423f8a0e42c1ea53b9ae269c6da9" + }, + "ghidra/addresses.d/lane-sv.json": { + "mode": 420, + "sha256": "f574d8b4dc75da722870c74eb29cd56c75e04dd0ac384b4549fc95d425e3de3a" + }, + "ghidra/addresses.d/lane-t.json": { + "mode": 420, + "sha256": "70975f3c1dea55ceb11af12b9ba3a04e8f7bba2e25f1355ffcd3cd457c41545c" + }, + "ghidra/addresses.d/lane-t2.json": { + "mode": 420, + "sha256": "1e3c59089b769cc5f5d3cf16c33cb6db002966f5beb1a4fb9dd8e28fe54cd6a7" + }, + "ghidra/addresses.d/lane-u.json": { + "mode": 420, + "sha256": "bcccb6ec9257537eece135adbfd126904ca0becf14f9b5d17253adf5d8c9e8fe" + }, + "ghidra/addresses.d/lane-v2.json": { + "mode": 420, + "sha256": "6a4d4960ce99c05b928164159eaf4482bf763785a1f8c50efe133667886d9a54" + }, + "ghidra/addresses.d/lane-w.json": { + "mode": 420, + "sha256": "3971d65c772146534f5d8c350f2d203add70ac82801f57f3704c47cd59b51226" + }, + "ghidra/addresses.d/lane-w2.json": { + "mode": 420, + "sha256": "677648e94de8e1e0d538c9575c9be942d0b37c1a847effcb3c2312af5b6aa7d9" + }, + "ghidra/addresses.d/lane-w3.json": { + "mode": 420, + "sha256": "50ed8ed1b16288b00bac4df0886646dbf9d6d6392867029b4eac386806b41b51" + }, + "ghidra/addresses.d/lane-z.json": { + "mode": 420, + "sha256": "bc63a82f2d0cb7636e95f8a07f183f80817a4c65d2bb7263a047ec3c540512eb" + }, + "ghidra/addresses.json": { + "mode": 420, + "sha256": "865c02d88ac6ede656160a5ab20521ad8854efa381d5a943ab422216aca2c016" + }, + "ghidra/generated/sots_addresses.h": { + "mode": 420, + "sha256": "1cf6b4ab40d3cde306edee12ba4eb05292b98ddcf5c2b7c22c1c64b6075b1bdf" + }, + "ghidra/scripts/FixPlayer.java": { + "mode": 420, + "sha256": "9f9ea470af063339511b1f1c85d6dea2df0827c4fed5806c6f641b1aad3e5660" + }, + "ghidra/scripts/FixThis.java": { + "mode": 420, + "sha256": "aafeeb482f71d1bdcbc99a51fb3f21989a46fbb49b5a572f3d9e436c9b3b98b4" + }, + "ghidra/scripts/LoaderRecon.java": { + "mode": 420, + "sha256": "1275d460227e0098254885fe70666d618da7215bca99483a5475c1e701ab9b27" + }, + "ghidra/scripts/LoaderWriteBack.java": { + "mode": 420, + "sha256": "d1040cb9ee80f0fe4d2310d95b38d7d94b0972283f74ea6058de0bdb9e510e63" + }, + "ghidra/scripts/SpineRecon.java": { + "mode": 420, + "sha256": "bea798733cf60f9478373cc453692104058b643ba5b7fc68e76945ae6f496950" + }, + "ghidra/scripts/SpineRecon2.java": { + "mode": 420, + "sha256": "94f10ac953091d50187a46b74803abb4812b244356f9336fa8e133a8a6cba0c6" + }, + "ghidra/scripts/SpineRecon3.java": { + "mode": 420, + "sha256": "b2344ab3d7195cfb935505ba1949f3d4862f787ccb95b812cef3856f92c94ffc" + }, + "ghidra/scripts/SpineRecon4.java": { + "mode": 420, + "sha256": "1093ee635be94f0c0bb31b5bd79f030faa0d7cbab96a495426363172cbcd1d66" + }, + "ghidra/scripts/TechFx.java": { + "mode": 420, + "sha256": "bfa8e990d65ad7cb2b665ee284ec2d645395e0fb3794ea146b175e2937a159ad" + }, + "ghidra/scripts/TechFx2.java": { + "mode": 420, + "sha256": "ee7040ed3316f2e717bac207c3e8ba9bf5ecb560f9e2b38335582c4ca6bae5a8" + }, + "ghidra/scripts/TechFx3.java": { + "mode": 420, + "sha256": "b672751160abcfee37d16eb2f107a60420b7d6956c312fe93e9f62578c06b96a" + }, + "ghidra/scripts/TechFx4.java": { + "mode": 420, + "sha256": "ef912e86f802452f33c20a1adb87eeb96f0ec893e26ee4bbd02305ba0c5e46c7" + }, + "ghidra/scripts/WriteBack.java": { + "mode": 420, + "sha256": "e002a5b86bc58cf75ef8d08dbaeb84bdf3306c1e8d49e92c0382f8ed858c57ac" + }, + "ghidra/vtable-owners.json": { + "mode": 420, + "sha256": "8ee89f3b43f56283a6ffcc605394a1ab246f8071370a9db8f1e770942a5a82a3" + }, + "guides/lab-screen-wall.md": { + "mode": 420, + "sha256": "d398b47853013dbce63b4af2f2ec680c39775732b9fbba13f5fc42a46628550f" + }, + "guides/method-rules.md": { + "mode": 420, + "sha256": "a71a8415202fe97ccaee3805bf4035684776c37f5613dc39a1f260aa33f94b69" + }, + "guides/multi-agent-workflow.md": { + "mode": 420, + "sha256": "f5bf0c30c12a3a9e1725549fe000be0105d415ca25b120673a780901148f08da" + }, + "guides/re-windows-2000s-howto.md": { + "mode": 420, + "sha256": "3490650440d6e683cb029915b8c2cace914b1f52538c9db89175ad4547db2901" + }, + "guides/windows-lab-housekeeping.md": { + "mode": 420, + "sha256": "4a9e9d66dd76e6b5ee1951686186190c650a617fa812fa4bd236ef02b783939a" + }, + "notes/.keep.md": { + "mode": 420, + "sha256": "7878c159a1b9636974e9093902027a24bf7b3c7520f13a8d96f930bd10d22f1c" + }, + "objects/generated/sots_stream_schema.h": { + "mode": 420, + "sha256": "13446ce54d60a0b29adcefb51aeb5127a0a3ca8de2bd1665e4778ba5354bff8c" + }, + "objects/layouts.h": { + "mode": 420, + "sha256": "24586f7f1c25530691193a919c6335ab1784fa2815b222326409cfe9e2a42981" + }, + "objects/layouts.json": { + "mode": 420, + "sha256": "16bfffa5020d98c12af61c72a48da8f2c5e06d1060358802717e585a49b150b2" + }, + "objects/layouts.md": { + "mode": 420, + "sha256": "83bc29fcd379847f9ebd6732edf9748c1c878052e889615928659307f97a148c" + }, + "objects/streams.json": { + "mode": 420, + "sha256": "60993eda14d0b1056578718d43a3b6d89816e12c4f5a00674806aeef9e81baf7" + }, + "opencode.json": { + "mode": 420, + "sha256": "d24be7fcee57d5eb04c6b7189822a2ca055dd4a70daafbea67f09a120945d49f" + }, + "scripts/.keep.md": { + "mode": 420, + "sha256": "b0cdcee8cfdc1b15ee444520b6b01c747399deea6d92ff2576ca6eb57331bbac" + }, + "scripts/forgejo_campaign.py": null, + "scripts/lane_v2_writeback.py": { + "mode": 420, + "sha256": "69a66058adb04926eeb6f0e81fa8f0392ce06de2e8d8eb61ebcf503bab6311da" + }, + "tools/DASHBOARD_README.md": { + "mode": 420, + "sha256": "f401cc54f64a4862a938263f37eaab22e6475e063e59726e02dce201f657dcc4" + }, + "tools/aiorders_to_tcb.py": { + "mode": 420, + "sha256": "9762d1fd45f3ab7c045088e222c5386a2cc63a6b25e1c09a49cbbd71837bfe17" + }, + "tools/cache_functions.py": { + "mode": 420, + "sha256": "18c037e48ab035764b0c877123ea7c998ef74240c63090e4f58142f57835e0b1" + }, + "tools/campaign.py": { + "mode": 420, + "sha256": "c7b7c7a30d907bba8e59386dee8704d7f3f5e978fcf709b686e37996fa465c31" + }, + "tools/check_agent_config.py": { + "mode": 420, + "sha256": "93115532cb38105777a5c5c20a9f2a808043370e0d4f560a9c82fe8e800076ec" + }, + "tools/dashboard.py": { + "mode": 420, + "sha256": "c84aeeea6fb7d5e45ccec8882bacc59182149f108edd9eb1585eab9ede99911c" + }, + "tools/displacement.py": null, + "tools/evidence.py": { + "mode": 420, + "sha256": "0a7f8497ed287b4b64aa5ba0cb25735172408e38f3605b3ff90f009c7f02eb85" + }, + "tools/gate.py": { + "mode": 420, + "sha256": "4df5ee7022fb2601687f06eab788e2cea1e345e580c4e92c9d47be1787d37460" + }, + "tools/gate.sh": { + "mode": 493, + "sha256": "d7ba27b9b0c6a03df48e4edc71884ef9986743f8afa751dbfec116df5aeee18c" + }, + "tools/gen_addresses.py": { + "mode": 493, + "sha256": "5d995585d4192a19db7cc6d31ed811fa80264159fc114f03f58793f9b6c4908e" + }, + "tools/gen_stream_schema.py": { + "mode": 420, + "sha256": "a9c3e925bb3370371a2c8cde8d738c657fe1cbf68c39c6155562bbb20c551461" + }, + "tools/max_income_oracle.py": { + "mode": 420, + "sha256": "8d3ec6ba5c677486200eab7d1ca55e1350947829e603737307fa394ac8e40bcd" + }, + "tools/max_income_predict.py": { + "mode": 420, + "sha256": "85400c82b6cb7c6786b7fb6486bdc7bcb1140817f7a0ff0b4fa4f7dbeded8797" + }, + "tools/probe_report.py": { + "mode": 420, + "sha256": "f3ef378c10bae4a8bef754d853f0e86616bb95b5e051e04cac97d362587df1a7" + }, + "tools/reva_call.py": { + "mode": 493, + "sha256": "89477650d38985f84b61a664572de1cbde1268b879d3da5e874598942822998b" + }, + "tools/rng_ledger_report.py": { + "mode": 493, + "sha256": "b4f3f581eb6de50118fd531c848354816c20197711e668ce8b0cfcb4d0392cf3" + }, + "tools/rng_oracle_check.py": { + "mode": 420, + "sha256": "f27ca7f9aa03bc672f04067bc71e73ac83742997f12f5f55ce11151bdc39d98a" + }, + "tools/rng_site_report.py": { + "mode": 493, + "sha256": "fabd950c002265403f7b13a8868a158d867828c9930770ed096a2610b086ad35" + }, + "tools/rtti_map.py": { + "mode": 420, + "sha256": "9ac88a8aa566fe08336ba6e50905ec4253409e1317f491c415b1b9ebcc0713e4" + }, + "tools/run_agent.py": { + "mode": 420, + "sha256": "0f5ccb53dcde59b64fe999768737b6cbd2dabcc1272e5605c1f1ecd86e5d5d2b" + }, + "tools/select_evidence.py": { + "mode": 420, + "sha256": "a6e648a77bcf799cc774ff9d0de83011283049ed0f0c44f6e08857a8410e9463" + }, + "tools/serializers.py": { + "mode": 420, + "sha256": "938904eb7b4ae30a61dd966494b112c6d52399f9d4a4658add06b40a54d6cb73" + }, + "tools/serializers_ghidra.py": { + "mode": 420, + "sha256": "d27da0afc8d043d31335bbe274fc76245e50cf0f9091a968b124f31c3a17997c" + }, + "tools/serializers_golden.py": { + "mode": 420, + "sha256": "29d2509b54704b80eff46a59a320719edb17a7eb67fd8acb8ad5e3c427d8e825" + }, + "tools/standalone_report.py": { + "mode": 420, + "sha256": "43a61c4031306732554aca23cd95b57d35f2a870766c33ccf8e005f22436525c" + }, + "tools/streams.py": { + "mode": 420, + "sha256": "57ec4ec5ad222a74f4461d70277d258e51779ae53ff74fd0e07eb51d4bae0afd" + }, + "tools/strfootprint.py": { + "mode": 420, + "sha256": "3b0db212c0b091ae2f63b866ee331435d013c535f233ec34ae3dfb63ded852dc" + }, + "tools/tcb_from_json.py": { + "mode": 420, + "sha256": "8fe09cff16802fda34db24f6f888610baa258399ab39173586b91a7a162f231a" + }, + "tools/techid_table.py": { + "mode": 420, + "sha256": "2c644bdbd3774b70dfdae7e77ff7a3a8e8563b58be7098a2d55ee30dc8b8fd07" + }, + "tools/turncommands_capture.py": { + "mode": 420, + "sha256": "0214d5da6f5f86e188bb2f03db8d3439267baee3a883c7df754601c7c1a38536" + }, + "tools/vmshot.py": { + "mode": 493, + "sha256": "09228bf8bd61918c49afc2b6da931fc8a7833be126be5384b85194e0e86eea44" + }, + "tools/vmwatch-install.sh": { + "mode": 493, + "sha256": "3c004f532422bd589a7294dabdf54d5a726f598c69012eaea3d73a748ad0123a" + }, + "tools/vmwatch.py": { + "mode": 493, + "sha256": "650d8232e46239a55b96f26d581d7d9c5815415c9014fd2e5b846b68c1346b39" + }, + "tools/vtable_map.py": { + "mode": 420, + "sha256": "2e19223efb79421ab4b807e32f0854b2592d7d3a3a52c12e84e47460b960f740" + }, + "tools/windows-housekeeping/Invoke-Housekeeping.ps1": { + "mode": 420, + "sha256": "a97911a3cfbd47813282efa7f52b4de03d28912487fffe0e7e7aa1a250cac01a" + }, + "tools/x86disp.py": { + "mode": 420, + "sha256": "a05a42d63813d2025a4da65bdd684e82a89c95c52901a8f490391e31c49a122e" + }, + "verify/campaign/test_controls.py": { + "mode": 420, + "sha256": "108460f4e90c4cb7036642e85de581e31fd70c478533c32364691260461814fc" + }, + "verify/config/test_agent_config.py": { + "mode": 420, + "sha256": "e60ee546672da91de08ca8fdd5d563b5f1207d0a865adf935017e06bf437585b" + }, + "verify/config/test_source_check.py": { + "mode": 420, + "sha256": "c16731e31a54256dde4f88d33007759ff21ad8537ca6cd2be38b9e34c59525ad" + }, + "verify/design-rules/SHIP_DESIGN_RULES.md": { + "mode": 420, + "sha256": "4decf51bfa03e8ab2b58478198332e834233100126949b920349f210b54521c8" + }, + "verify/design-rules/data/HiverInvasion_FleetTemplates.csv": { + "mode": 420, + "sha256": "327e799be3c75361267725c157f78b425d3a1df6ed6595104b2ce9993e8ae3a7" + }, + "verify/design-rules/data/UpstartApes_GiftFleetTemplates.csv": { + "mode": 420, + "sha256": "89939d70eb6ed48ec776a4a6fc50ccb68fc6be7162706bab199484bf7cdd5e44" + }, + "verify/design-rules/data/_defaultweapons.txt": { + "mode": 420, + "sha256": "ef9e33aa32840f1878ece67f88556d81a4255f63f6e8aad4ac73e575ef2c7ec8" + }, + "verify/design-rules/data/_turrets.txt": { + "mode": 420, + "sha256": "35de6ad40895f76298eef7dc354c739a5a59747b689c2324cfa5040442eddc18" + }, + "verify/design-rules/design_rules.py": { + "mode": 420, + "sha256": "772f70c7d6be2d20d10cf4f5d412233b267440d63d431bf7b320c29f3f06e313" + }, + "verify/design-rules/stock_designs.json": { + "mode": 420, + "sha256": "b363023e02899bc03e4c8b8423b394ef8abb190b1bcf437aade19be463353f68" + }, + "verify/design-rules/stock_designs.py": { + "mode": 420, + "sha256": "fe020f6058ec25b6fc456146abb6594825ee2b98ba5c5c5eeaff969ce4596031" + }, + "verify/design-rules/test_design_rules.py": { + "mode": 420, + "sha256": "6f6764d21d7a3337ec8aba9651b19947239a7d06a6cdf7c6e9be5ddefcfdd186" + }, + "verify/fpu-cw/cw_census.py": { + "mode": 420, + "sha256": "07b7ac5ae60df487867b592e82e9f74201b695437fba248813bc07305a21c7cc" + }, + "verify/fpu-cw/trace_bitdiff.py": { + "mode": 420, + "sha256": "b25c93d70e67ed2fa81e5ea7184f8ffe0cbd2e7c043bc94f923c3db1cf101b59" + }, + "verify/harness/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "verify/harness/cb/README.md": { + "mode": 420, + "sha256": "7a656251a600a9343ffa8afaa4f227e7cb8086be7d3c6879c0a403ab8acec71d" + }, + "verify/harness/cb/cbdo.sh": { + "mode": 493, + "sha256": "6f3d7fd35aeedb0841be9df0ba19136be2e7ccb5c44950d8aa821c61727232a6" + }, + "verify/harness/cb/cbfull.sh": { + "mode": 493, + "sha256": "609101217e9d35bf1caa5cb66f362e0796fcf6c1264bd92ff550d0ed12ca2521" + }, + "verify/harness/cb/cbload.sh": { + "mode": 493, + "sha256": "2e56bb64609434f6dfc6ebcf71a3c839ae59170db80c996ebee7c2219cb664ec" + }, + "verify/harness/cb/cbmenu.py": { + "mode": 420, + "sha256": "fb2e72a1a5390aa28dcae0fbc2d7b920b06bf3b1ea161bb757d4db3c8cd23af2" + }, + "verify/harness/cb/cbstep.sh": { + "mode": 493, + "sha256": "5896b21e8cf08b40e2a2958e44a51beb7e5b5a58cf35d405879a5df7cdd375b4" + }, + "verify/harness/compare/TRACE_FORMAT.md": { + "mode": 420, + "sha256": "cf6f61dc255e3aed0f293c141d9fd3b0d5e848e3abe4dcf50b4ca2d58e37c024" + }, + "verify/harness/compare/mkfixture.py": { + "mode": 420, + "sha256": "f081dd92b9e82e838f59ce8f9c79d5cdebb825255f13b6c49178516e7f3ef118" + }, + "verify/harness/compare/oracle_parsers.py": { + "mode": 420, + "sha256": "b1a745bfa63b447c87279afdb2885a0218f2a0dc2539f79414f8a2534e24c97b" + }, + "verify/harness/compare/test_tracecmp.py": { + "mode": 420, + "sha256": "f25eb9d5ea7215b8366c44924fb49a5f028a0188e709dadfd90cfbc30db0823e" + }, + "verify/harness/compare/tracecmp.py": { + "mode": 420, + "sha256": "d6ca461cabf15351e2040150144084b93d3caf22d879ee158ede04052ab03cbb" + }, + "verify/harness/l2-ui/README.md": { + "mode": 420, + "sha256": "48effd757522ee5ff70af6d77449dcfd805bb7744c9093d01c039b86e030d7f6" + }, + "verify/harness/l2-ui/launch-b.cmd": { + "mode": 420, + "sha256": "8f26c451a88765c49ecb3c8160ed4a3d06f1100a6d9323b305efc01f039dfada" + }, + "verify/harness/l2-ui/socks.ps1": { + "mode": 420, + "sha256": "401cce47d495507f60eeae45942c146586464959046ef9715cd69605753af027" + }, + "verify/harness/l2-ui/ui.ps1": { + "mode": 420, + "sha256": "355c8f222bf99f547d9d16a1665a072e6914917d48e4db22b8438d2d83708e97" + }, + "verify/harness/profiling/battle-run.sh": { + "mode": 493, + "sha256": "79f14ded5c3731efd655a6f9a4ac6795f3ace0a9b064c43ba4bf9a2cb988a7cf" + }, + "verify/harness/profiling/funcs.py": { + "mode": 420, + "sha256": "841a6f5e5dc1d845b7439c9ce9dc08e045864929b0f367908abea7ab54259207" + }, + "verify/harness/profiling/funcs.txt": { + "mode": 420, + "sha256": "d35b17dbb3970f5c24ae862748c5b91aee87491968719c34e48a8b88c0615835" + }, + "verify/harness/profiling/iat.py": { + "mode": 420, + "sha256": "82465ef8284739ab3d3c99acd0fa6cc5a4bb80c8680eb7a949218305fd10d3d3" + }, + "verify/harness/profiling/inspect.ps1": { + "mode": 420, + "sha256": "35bc7dd85108e3f4686975ef7f510b1cc9306b5839329f7fdd2a5ac27a140611" + }, + "verify/harness/profiling/names.txt": { + "mode": 420, + "sha256": "89d90f934e445447c68569448471a8917ee0bbfcb5fb96bba3e6566be9b0779c" + }, + "verify/harness/profiling/parse.py": { + "mode": 420, + "sha256": "680df36804e923d74da8e9fd8877b5ea66975c9ce8d239ad4507c829f881722a" + }, + "verify/harness/profiling/sampler.ps1": { + "mode": 420, + "sha256": "ef0edde8535ef07e508a732f8e11dc3d50fef966e5a9e4d8161085a83372993e" + }, + "verify/harness/profiling/shots.sh": { + "mode": 420, + "sha256": "87e554abf08068d6438417e266f1e7820e34a900a7d559fa0a7c4a2fa18002b3" + }, + "verify/harness/profiling/timerres.ps1": { + "mode": 420, + "sha256": "80362eb9ec8bd882abddf2507236e70db2dd21f64c9db07d217bdd49361ed89c" + }, + "verify/harness/profiling/turnloop.sh": { + "mode": 493, + "sha256": "8e28f076599a9eb53eace77ad77a10b0770f1ce617c7a76e6a2b9044ee0c8774" + }, + "verify/harness/profiling/turnwin.py": { + "mode": 420, + "sha256": "e2033a8e519a7c9f65f67b5592494a9843eb8bef41af6ab5652343aa86bd4c60" + }, + "verify/harness/profiling/ui.sh": { + "mode": 493, + "sha256": "e66774a4d070285e6c6a62472000222a691c7192096039e75fa726bab9f6afb7" + }, + "verify/harness/run-recipe/click_helper.ps1": { + "mode": 420, + "sha256": "150a1c17e12e8479244107cd01d95233c84d550e95a6f5e352fd529818a21d7d" + }, + "verify/harness/run-recipe/display.cfg": { + "mode": 420, + "sha256": "76b4876abd1cd163a5cc6b65a6106670476cde40c9b868a53a0dc45f517e132f" + }, + "verify/harness/run-recipe/dxvk_d3d9.log": { + "mode": 420, + "sha256": "f48ff2684a78cea563ab7f10e2f005638044352fe9cfc30dedf0f26ec7fecf23" + }, + "verify/harness/run-recipe/launch.cmd": { + "mode": 420, + "sha256": "90a6effe8ae835bf641cc775a17ad709198fdfeded4379f658255a82f594e5c2" + }, + "verify/harness/run-recipe/lvp_icd.x86.json": { + "mode": 420, + "sha256": "b89a08526e043a84c3a2550b5ea2fd7692f547ea295e8dd70e79c64fe81f6fbf" + }, + "verify/harness/run-recipe/run.txt": { + "mode": 420, + "sha256": "12c83295dae9db4a98142ef8fe7e45321c90960428df504ed3496e27838a0413" + }, + "verify/harness/run-recipe/session.log": { + "mode": 420, + "sha256": "e9ce9b496e9ee55bd64cc27afe594cee6136dfbc6cf9d9d44e9914b27e568a93" + }, + "verify/parsers/PARITY_NOTES.md": { + "mode": 420, + "sha256": "beecfe60358f5977529bd0784ffe18ca03c38d2dd36766f351c6a9addac83bda" + }, + "verify/parsers/effect_txt.py": { + "mode": 420, + "sha256": "7219045dfaf305dd64218ff8096e8cac69a53df1aabdf85f15e6c5e01c963e74" + }, + "verify/parsers/flat_kv.py": { + "mode": 420, + "sha256": "a26149cb21d152be5cbada3b764e042187daf2ec306b2dba1081737af6a7ae4f" + }, + "verify/parsers/manifest.py": { + "mode": 420, + "sha256": "62a08cfd82d5f701ae3b3f567bc8382cfd1b33b49bf6049ade47a932ef7109da" + }, + "verify/parsers/mars_data.py": { + "mode": 420, + "sha256": "90c7b8421044b1d7e262e6f20e5af391d97a712b12c2d3f0c3033567881d536f" + }, + "verify/parsers/verify.py": { + "mode": 420, + "sha256": "cc5d619bd6b3ca161b4bc8050c30e7d77f6bd3e964c971cc29e051efc1e25a33" + }, + "verify/publishing/test_dashboard.py": { + "mode": 420, + "sha256": "cc44e516da663f5d27bf817cbcbf24c052f2db52ee887d08d7c271caf8f6a000" + }, + "verify/results/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "verify/results/compare/.keep.md": { + "mode": 420, + "sha256": "4581f3fde61549f4c621b2f114228a62d066a528a270a9b41703238ff841ac1d" + }, + "verify/results/compare/b2-techfx-compare.json": { + "mode": 420, + "sha256": "b0533322d44b1694f36baf86d6660481ac5b22ce9c1d6b6b9668ea064cc08f4b" + }, + "verify/results/compare/b2-techfx-golden.json": { + "mode": 420, + "sha256": "4298a8229b85a3329c78d3618d3eb19aff096cb2da66e9238fd843d639b17f11" + }, + "verify/results/compare/cr-compare.json": { + "mode": 420, + "sha256": "f20e9a7c71412688c02b607f08a5224367598eba552e35a50e9922ca8f12edab" + }, + "verify/results/compare/cr-compare.md": { + "mode": 420, + "sha256": "0eb905744120b1cf264ba6e57497db64fdc8e225a87ef7bb86cf3f026ffe4d0d" + }, + "verify/results/compare/cr-replace0.json": { + "mode": 420, + "sha256": "f1556c5d74c236c82617061b5ec60b1a7ce4652bce87b6595eb89406ad832240" + }, + "verify/results/compare/cr-replace0.md": { + "mode": 420, + "sha256": "6f571e46350a29b811bc12b48e12ed2d443acba5f5be6310e0531c3790425d48" + }, + "verify/results/compare/cr-replace1.json": { + "mode": 420, + "sha256": "d0c1d6bd4a1f8f5343b584662d8202184479b01a51480443a97242daf27fccc2" + }, + "verify/results/compare/cr-replace1.md": { + "mode": 420, + "sha256": "111b51290468d5482a1910194487d26dc1b3ec534d699aa07a564de66bbf9d98" + }, + "verify/results/compare/eventlive-b3-t1-5.json": { + "mode": 420, + "sha256": "4f305180bcbe93523f407d1f8406ac52b84d4a20e2d611940716618fd37edfde" + }, + "verify/results/compare/eventlive-b3-t1-5.md": { + "mode": 420, + "sha256": "ec71d98210218fd5b5da69f6b17cf6991128a58a0358a6504e6497dd39159764" + }, + "verify/results/compare/eventlive-b3-t1.json": { + "mode": 420, + "sha256": "84f66c1e6a23f737d1615e75fd22fba958bfd851067acb42503e32a2812dd1de" + }, + "verify/results/compare/eventlive-b3-t1.md": { + "mode": 420, + "sha256": "299b8dd3f2cf42cbc9e6254fac01ee3dcb6abb0758c8f298beb6cc6464db4cfb" + }, + "verify/results/compare/eventlive-b3-zuul.json": { + "mode": 420, + "sha256": "a1a92c06202c8168362c33442edeb7ea7f76f6e586e5deea1b86dff9dc8f3494" + }, + "verify/results/compare/eventlive-b3-zuul.md": { + "mode": 420, + "sha256": "544791f9cd8b77a2d865f2a918d97e74559529f29943171bd1e8e2d8a120dec5" + }, + "verify/results/compare/l5-budget-boundary.md": { + "mode": 420, + "sha256": "6877f9cfc602876b4c213106493853822471a5aaa3e4e8ebf8dffd31373d89d9" + }, + "verify/results/compare/mf-after.json": { + "mode": 420, + "sha256": "586a824a0d0af1de0808c33c1c392c4022128f9c1305dc32b6749e8fa493e8f4" + }, + "verify/results/compare/mf-after.md": { + "mode": 420, + "sha256": "659be3da71cabfd3c34eb818f1bac07f848c58a878fd62d81ac7b1daa5f3ce03" + }, + "verify/results/compare/mf-before.json": { + "mode": 420, + "sha256": "259272b45ca9c63894d8c91e399ff91d7258b7836f1a0d5c91dd3972586b2498" + }, + "verify/results/compare/mf-before.md": { + "mode": 420, + "sha256": "4572530a1c93865d27aba47c23c418773ad39a834c8be1c004f5cc2f16f927a0" + }, + "verify/results/compare/output-ref-turn2.md": { + "mode": 420, + "sha256": "43a569165f9239f13edc31c7a848a6b839829ae06dd6e3b85d289a1552eb8d34" + }, + "verify/results/compare/output-zuul-and-ref.md": { + "mode": 420, + "sha256": "9bc0937c0b3e1e3e5a6cd3768dbfeae56a897615396b00834bd083611f3ef431" + }, + "verify/results/compare/recap-b1-compare.json": { + "mode": 420, + "sha256": "8e86cdd32373e41ac1cdc130b18acc188b35d5ab7112e1fc655d134c44ad9712" + }, + "verify/results/compare/recap-b1-compare.md": { + "mode": 420, + "sha256": "496a3246eda3be76d9d0f08726369d40aa879cf60a510f16209ae77585582841" + }, + "verify/results/compare/recap-b3-compare-t1-5.json": { + "mode": 420, + "sha256": "80eeeeccf15f427b75b053d06f6b32b1692a2ed9ca6b9a51c244e4166a1b0e78" + }, + "verify/results/compare/recap-b3-compare-t1-5.md": { + "mode": 420, + "sha256": "5b6295bff72d599f142e75fa913ca2da590322a6fd1d104328847159fc5e7802" + }, + "verify/results/compare/recap-b3-compare-t1.json": { + "mode": 420, + "sha256": "10d0d5f8aff90f6cce3cd87e30c7f8ff896c5b369f4dc8288141451e25727cb9" + }, + "verify/results/compare/recap-b3-compare-t1.md": { + "mode": 420, + "sha256": "2b0eb8865bb07a2dd8fd038bc19e38a34fbf19b9d3f6fabae085c16a74fbcc6f" + }, + "verify/results/compare/recap-golden-trace.json": { + "mode": 420, + "sha256": "50bb7e34ab2359adc83cc0647fc995d207173fcf6134e413565af450958f652f" + }, + "verify/results/compare/recap-golden-trace.md": { + "mode": 420, + "sha256": "586fc86fe78659902a5d0859c0bce44623bfcda0f375bb57b293796862c48e17" + }, + "verify/results/compare/recap-misc-compare.json": { + "mode": 420, + "sha256": "c73f3f3593a0d715a675b29c7b4f49c02a97578ee9d867ce15d217c43da2e466" + }, + "verify/results/compare/recap-misc-compare.md": { + "mode": 420, + "sha256": "b435c92441742b2b1b0236bfacff10c17757696baf446c544c4759b7e31237ed" + }, + "verify/results/compare/unlock-b3-t1-5.json": { + "mode": 420, + "sha256": "a4dbfc89f6f3d154edbbc62842a4e8d8a3c69b9589eafc1bb496b26a3ecf6e3d" + }, + "verify/results/compare/unlock-b3-t1-5.md": { + "mode": 420, + "sha256": "832626087ddc2da9064a192a1acfb3869d4a52c6398a070cbd66eaa1bdbe2e2e" + }, + "verify/results/compare/unlock-b3-t1.json": { + "mode": 420, + "sha256": "6d8938b8eaeb2da1c7fdccb1fb68f8e3a2b5b7f492cc096326cf3aadb2ab8d55" + }, + "verify/results/compare/unlock-b3-t1.md": { + "mode": 420, + "sha256": "8911e671a143c25765cd7c0b67f1b9cb23f4040fe26aad40ce59b1db858afdcd" + }, + "verify/results/compare/unlock-b3-zuul.json": { + "mode": 420, + "sha256": "3099d248d58c4395e92d65ad18c28227695a7c7935193be6c2bcf752fa0e0f04" + }, + "verify/results/compare/unlock-b3-zuul.md": { + "mode": 420, + "sha256": "f53b165c8502ba9b2416935179fdea68153fb6ebd2458b4ec9b4ecf6c741c91f" + }, + "verify/results/data-catalogs/crosslink.json": { + "mode": 420, + "sha256": "2966ba9780910b596e350c4f81eef5d74c4d235dc3a8d5cf6ad5fd53a407254a" + }, + "verify/results/data-catalogs/schema_stats.json": { + "mode": 420, + "sha256": "6e3f669ae77cdfa2c5cd6bbd29f5cecccd452d9a7b2397c2c23db6c33fda0a2a" + }, + "verify/results/data-catalogs/shipsections.json": { + "mode": 420, + "sha256": "2e7057c608d0cea755bf9dbfa291864d33e3f09ad5deff7bb3a8045bde7a4ab5" + }, + "verify/results/data-catalogs/strings.json": { + "mode": 420, + "sha256": "c36c1b2b9a2eace438f93698df6388fa94aec30d372bcd0bee7e09bb33c54d7c" + }, + "verify/results/data-catalogs/tech_tree.dot": { + "mode": 420, + "sha256": "96ce0492a1284167d82af2c07a8f8a0b3bb9864bc137195560d909df6a913055" + }, + "verify/results/data-catalogs/tech_tree.json": { + "mode": 420, + "sha256": "18df799410c5f650e15808c1ef247b4768a3dfff93795a5ec7f56cd6c4afc597" + }, + "verify/results/data-catalogs/weapons.json": { + "mode": 420, + "sha256": "a446b445c21519fc7992c84155c9652239567030843c405b4219d1f65022db01" + }, + "verify/results/fpu-cw/README.md": { + "mode": 420, + "sha256": "3928fd0f6a03a8ff0b170a7ed23a059120b5014b13bf6870d4f187ff299d5975" + }, + "verify/results/fpu-cw/cw-census.txt": { + "mode": 420, + "sha256": "b7854dc5cd249a2490d04264d758f1894a9ddf4b95573650365d47587c7589d3" + }, + "verify/results/fpu-cw/run-007f-rep/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-007f-rep/(Autosave).sav": { + "mode": 420, + "sha256": "ba2435beb17265af3abddb58cd26e926d42b39b358ef6d0c76f9897386174918" + }, + "verify/results/fpu-cw/run-007f-rep/shim.log": { + "mode": 420, + "sha256": "73b5b86da743a1cb37d4c0d97b29978923b55a7a47f80c7fa20ca47d424f6c02" + }, + "verify/results/fpu-cw/run-007f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-007f/(Autosave).sav": { + "mode": 420, + "sha256": "ba2435beb17265af3abddb58cd26e926d42b39b358ef6d0c76f9897386174918" + }, + "verify/results/fpu-cw/run-007f/shim.cfg": { + "mode": 420, + "sha256": "998decddb80cf23d63c42d2d6c1d1aa85072258ca0870168ee772708ebfb6363" + }, + "verify/results/fpu-cw/run-007f/shim.log": { + "mode": 420, + "sha256": "5721f47d7fd862156ce2cd1832cd1739636b5aee53c82323ef233ff6401775bb" + }, + "verify/results/fpu-cw/run-007f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "149c4fcf750fcf9e81dc86d8696271d9a14ca788891ac95cf96995e3737c68e4" + }, + "verify/results/fpu-cw/run-027f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-027f/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-027f/shim.cfg": { + "mode": 420, + "sha256": "f4f9585a8f6317807bcab498ebed5de5d42400124a82ea958558f1455176cebd" + }, + "verify/results/fpu-cw/run-027f/shim.log": { + "mode": 420, + "sha256": "4bd3f88bd27eb2e3ae1f42f4dc2ccf1cc5df1a2c1171d2eff8be86e7be684187" + }, + "verify/results/fpu-cw/run-027f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "b5d2611d0c08946c1e1eaa244a7e44782eac2592c392efb3d7147fbbd86816e7" + }, + "verify/results/fpu-cw/run-127f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-127f/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-127f/shim.cfg": { + "mode": 420, + "sha256": "1f50a475f0d347b5b5a7c2341eac4ea22092818e18bc7ea049154d309949e271" + }, + "verify/results/fpu-cw/run-127f/shim.log": { + "mode": 420, + "sha256": "03f1999dc8964912697782e856f89f190b6680d5732f2cd00b1569bff727a545" + }, + "verify/results/fpu-cw/run-127f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "fb1b9063cc53a6b39ea0a58e0545b9334fbd15d65dd839e72f2c4febbb1dd3f0" + }, + "verify/results/fpu-cw/run-137f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-137f/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-137f/shim.cfg": { + "mode": 420, + "sha256": "8658d901e0688d87d2f2359fe725082b9956291988cdc0b82b155dde55fef5e9" + }, + "verify/results/fpu-cw/run-137f/shim.log": { + "mode": 420, + "sha256": "83aa72572412d5248179397895029367685fd590d795991ab91c98cf9828ae29" + }, + "verify/results/fpu-cw/run-137f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "aad1fb6abd86beafb9f44e2c6060157e22618811d105f2379252e19008839b66" + }, + "verify/results/fpu-cw/run-1a7f-rep/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-1a7f-rep/(Autosave).sav": { + "mode": 420, + "sha256": "e48e25fa8425a8a1d174efe3e8a553153447f11f8f91c5fda25bd7db3a26cca7" + }, + "verify/results/fpu-cw/run-1a7f-rep/shim.log": { + "mode": 420, + "sha256": "38f2824fbe91bf2fa1ef55473a7468707248420805b6f6dc85245fd34fa94200" + }, + "verify/results/fpu-cw/run-1a7f/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-1a7f/(Autosave).sav": { + "mode": 420, + "sha256": "e48e25fa8425a8a1d174efe3e8a553153447f11f8f91c5fda25bd7db3a26cca7" + }, + "verify/results/fpu-cw/run-1a7f/shim.cfg": { + "mode": 420, + "sha256": "59ff1f48a10c378d0ea92d8a156b135a106017a5b6c47b65de304fde3187c588" + }, + "verify/results/fpu-cw/run-1a7f/shim.log": { + "mode": 420, + "sha256": "a1bb0bd06dae6955ec09e7d0c6cd1e68e19aa2a114256cdeae1275def0a63091" + }, + "verify/results/fpu-cw/run-1a7f/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "b9a7affb8235626fcfdd5afe143e4ec03be869b6b386bd9ac78389097df88cef" + }, + "verify/results/fpu-cw/run-off/(Autosave EndTurn).sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/fpu-cw/run-off/(Autosave).sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/fpu-cw/run-off/shim.cfg": { + "mode": 420, + "sha256": "6a19c362121a3dba0aac857d6e998131e8b2478f19edcdcbd58006645d096c70" + }, + "verify/results/fpu-cw/run-off/shim.log": { + "mode": 420, + "sha256": "9e3cbd005f0b68037681939b289834c55629bac0e9cd35ac55e6d8ef5333a116" + }, + "verify/results/fpu-cw/run-off/shim.trace.jsonl.gz": { + "mode": 420, + "sha256": "ec2271c0d7e09fe51ead7f8d58859c692e8b302233191841d506ea14248caa8c" + }, + "verify/results/fpu-cw/state-checksum-diffs.txt": { + "mode": 420, + "sha256": "3417dfc1b75ad896ac6a5e974d51248eecca319565e2422e146897d19e121b68" + }, + "verify/results/fpu-cw/trace-bitdiff.txt": { + "mode": 420, + "sha256": "8f86707f26f30638097c85f0db6df219adbfebac4e9ec24f1feb8bfce112d4f2" + }, + "verify/results/housekeeping/vm140-result.json": { + "mode": 420, + "sha256": "2250b02342f5c02ba5464cb4656543c6366dec098fbc948006600896ac9254c0" + }, + "verify/results/housekeeping/vm141-result.json": { + "mode": 420, + "sha256": "03d92ffd2947b2f0c058e5c613e04567cffee45be456aece6d771b789f32fb93" + }, + "verify/results/housekeeping/vm144-result.json": { + "mode": 420, + "sha256": "ace15320f7e60995a68f2c9c03a5a44159ae2d64fa273d34d38e285d313a0393" + }, + "verify/results/housekeeping/vm145-result.json": { + "mode": 420, + "sha256": "768666178bf2910a2ff026351727b5cc96e48df70e1ba012031d34eafc95ad7a" + }, + "verify/results/housekeeping/vm146-result.json": { + "mode": 420, + "sha256": "eebb306a3ec8533abae6dfd59f127c48effe9f21107e0c5c09c751108e77bb97" + }, + "verify/results/multiplayer/l2-combat-hud-client.png": { + "mode": 420, + "sha256": "02c86592531ab2889a0eae04e44a644d33c754096fe60aca6640068a7a3f421f" + }, + "verify/results/multiplayer/l2-combat-hud-host.png": { + "mode": 420, + "sha256": "a56daf36fcc88627b29116ad9874c95a3c46960074ff9b823aa15c4ea2660dd7" + }, + "verify/results/multiplayer/l2-combat-loading.png": { + "mode": 420, + "sha256": "f94a718cee08e1b7d346490058f13a107d23aaa7c269fdd53b159a75d62fa558" + }, + "verify/results/multiplayer/l2-combat-round-draw.png": { + "mode": 420, + "sha256": "c1b8424540b702915302f9ff38eaf765e8e95fddc3c5c4d894438dcfcf8b6256" + }, + "verify/results/multiplayer/l2-combat.pcap": { + "mode": 420, + "sha256": "0f112ef96da6c465dbda51baf99eedd66967eed61c097f643bf6c66fc26af31b" + }, + "verify/results/multiplayer/l2-encounter-query-client.png": { + "mode": 420, + "sha256": "4c41b268ad256b0109483a2d9b5ba35de7b9cadb4eb32ef4a68f7867e6e747fd" + }, + "verify/results/multiplayer/l2-encounter-query-host.png": { + "mode": 420, + "sha256": "8c7b0c6d65ddde45eb3447f044589ffc36500b40c4d676af8321f800162f38a0" + }, + "verify/results/multiplayer/l2-fleet-built.png": { + "mode": 420, + "sha256": "6ac91fcf9b42caef50134de01804046d8e60d0fd3966592e9738ceff511949c2" + }, + "verify/results/multiplayer/l2-lobby-client-joined.png": { + "mode": 420, + "sha256": "4a8e698c9ea935449ff0421cd59acd517ebffa388a7572279b28be0369141ff6" + }, + "verify/results/multiplayer/l2-lobby-host-created.png": { + "mode": 420, + "sha256": "e6a7377cabafa973396cedafa5ad5b4863a42f9866709db88faf9572e0ed3c98" + }, + "verify/results/multiplayer/l2-move-warning-dialog.png": { + "mode": 420, + "sha256": "43c6219d74bc0cb28495f13784cdbd3a90c89746b108824c3a2138dbdadcb53e" + }, + "verify/results/multiplayer/l2-socks.log": { + "mode": 420, + "sha256": "109b630d6548d07404f9f905e6c527f10e25221698f1b66226f67f94c5f294b5" + }, + "verify/results/multiplayer/l2-turn13-client.png": { + "mode": 420, + "sha256": "d19f17c4219f21f6c9950440d528a1a91fe3907761df21fd0ba99321b8820baa" + }, + "verify/results/multiplayer/l2-turn13-host.png": { + "mode": 420, + "sha256": "811efcfb571d60435f772a3b619bb329717d1e162b88e440ec0d636b1c6042fc" + }, + "verify/results/multiplayer/w2-internet-browser-no-error.png": { + "mode": 420, + "sha256": "6409b977056c95b29928a0098f75fffd71c501128f9d9325c3000837131c8791" + }, + "verify/results/multiplayer/w2-join-manually-dialog.png": { + "mode": 420, + "sha256": "86904e94a5aec41c1e89271d2712558c3b5055bd2ae4fededfda103d1e22fb71" + }, + "verify/results/multiplayer/w2-lan-browse-listing.png": { + "mode": 420, + "sha256": "6f5d16fa719fb63dd627fba551221c7665b69002e83fe35b8d84912cd7d8ce83" + }, + "verify/results/multiplayer/w2-lobby-client.png": { + "mode": 420, + "sha256": "ede652b21e2a4ea07c8132e4080ba903d1052ebca336bb007e1e8efa62787f10" + }, + "verify/results/multiplayer/w2-mp-turn1.png": { + "mode": 420, + "sha256": "59f9a1f5d8c0fff45d3ae3406dfd9878a5915f18e999d909a5238a90a3b86ed6" + }, + "verify/results/multiplayer/w2-mp-turn2-client.png": { + "mode": 420, + "sha256": "d9da4c151cd8290f80b31eb5ed8a74a0a30a87d1f7a80a179fa082a9439e08e5" + }, + "verify/results/multiplayer/w2-mp-turn2-host.png": { + "mode": 420, + "sha256": "910efd36b4a7c1a85d8ad487660f856339af037b9b00fef0cafd5e77ebdc36e5" + }, + "verify/results/multiplayer/w2-tier0-filtered.pcap": { + "mode": 420, + "sha256": "e108778fd1afb7718c53a4164310b8523415ef073706d310583dab424e5921cc" + }, + "verify/results/saves/ac-turn20-raider.sav": { + "mode": 420, + "sha256": "ee787db8f63d8f564c597bd5a82709790a0fdf47827912037f96b736f2cbed34" + }, + "verify/results/saves/ac-turn22-raider.sav": { + "mode": 420, + "sha256": "0faeaa601e6a867876819e5646b85f8787851093b8e6bd6e3946eb867f2dcc74" + }, + "verify/results/saves/ad-oracle-A-post.sav": { + "mode": 420, + "sha256": "a634510e7208cceb10d8ce016ceb0153601f11d7291f08122bcdb6418e313331" + }, + "verify/results/saves/ad-oracle-B-post.sav": { + "mode": 420, + "sha256": "676b1778880b5d4784ba7f6ef48b1a8e56745adab70a815943b7744876686260" + }, + "verify/results/saves/ad-turn27-two-raiders.sav": { + "mode": 420, + "sha256": "1c8baa27680809d585ab1728391e82729642d32aaedffd5bf95b616f0a11a436" + }, + "verify/results/saves/ap-deploy-turn15.sav": { + "mode": 420, + "sha256": "844f2b746060dc2c4e2099cdc6ceffd5f55ef858c9e347df28c8aca3041f7165" + }, + "verify/results/saves/ap-oa-turn16.sav": { + "mode": 420, + "sha256": "e296394f578b3a5668e5934b9eec8d6c4638ca7411200078f97de1abd346f4c5" + }, + "verify/results/saves/ap-ob-turn16.sav": { + "mode": 420, + "sha256": "262f8bda97c9511d8d2b41e6a8a0582d6f5364c2b01b1caf99e639d0e4f53ebe" + }, + "verify/results/saves/ap-turn22-spydetected.sav": { + "mode": 420, + "sha256": "91381bd7e722ac3847795a402d78ebb31d74dbb5d2909f33d243aec3ef8abaf8" + }, + "verify/results/saves/ap-turn25-spydestroyed.sav": { + "mode": 420, + "sha256": "46380fcf4498d67507e4471eb9ee3762647c53ee5473be142fe5c34e37344bc3" + }, + "verify/results/saves/ar-oracle-A-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/ar-oracle-A-pre.sav": { + "mode": 420, + "sha256": "15b99255e1f03dab3e35ab8c1ac64f221cb5aa9321f113c7a6e3d1263c3f34ca" + }, + "verify/results/saves/ar-oracle-B-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/ar-r1-turn43-post.sav": { + "mode": 420, + "sha256": "37f4a54fd32303fdcc86522b07104fbf2fcb124eec9b1f7005b3446fefcc429f" + }, + "verify/results/saves/ar-r2-probes8-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/ar-turn37-816raiders.sav": { + "mode": 420, + "sha256": "b6f4e05ff226eabd1695003b36293553642553cea96ef417364393e2332a7094" + }, + "verify/results/saves/as-turn14-predeploy.sav": { + "mode": 420, + "sha256": "53986f8511cbf9920f32e2ea406ccf531dd08903fa5d06024fcf03ea7627221d" + }, + "verify/results/saves/as-turn15-spydeployed.sav": { + "mode": 420, + "sha256": "854a10fa1ea602f0f7909f9bf9154942e56ea5fa1db4cce47d6d32bf53952e08" + }, + "verify/results/saves/az-turn11-16destroyers.sav": { + "mode": 420, + "sha256": "501583c7cf2ac81c9db3191203cd3dc5ba5b9e228b9b9ce3dbdcc3650d0070a9" + }, + "verify/results/saves/az-turn23-tarka-comraid.sav": { + "mode": 420, + "sha256": "3d5eb826c149d1fd0278c746f32e6148ca9883a1bc5b522c0d5e6e13fac9788a" + }, + "verify/results/saves/bp-pinA-turn28.sav": { + "mode": 420, + "sha256": "e913ff41188211c02d536da616337544e64133996cd7cc7a6521a8df1960226f" + }, + "verify/results/saves/bp-pinB-turn28.sav": { + "mode": 420, + "sha256": "724528ffde9a7514b69ab9e82ed3b8c8ade63d622c0720de30503a73a92df11e" + }, + "verify/results/saves/bp-turn28-pre.sav": { + "mode": 420, + "sha256": "16f63adbf383946db17c381998957172bca803406b7df78f3b03805fef0bbcb8" + }, + "verify/results/saves/bq/bq-1A-endturn.sav": { + "mode": 420, + "sha256": "1a9d937b8bd9c4bb33dd235d4d6ad6e3b38d9f842fc740839e42e06f52356d39" + }, + "verify/results/saves/bq/bq-1A-post.sav": { + "mode": 420, + "sha256": "56980aa086e1a145b00f781b9d9cf618b152986f1c2267b9fd96cca0f1f604b9" + }, + "verify/results/saves/bq/bq-1B-endturn.sav": { + "mode": 420, + "sha256": "1a9d937b8bd9c4bb33dd235d4d6ad6e3b38d9f842fc740839e42e06f52356d39" + }, + "verify/results/saves/bq/bq-1B-post.sav": { + "mode": 420, + "sha256": "b36ac0ec2986f3a814dd22ca312c895ba6ec8a0e55fca54d8a7fd08a2f96a2c4" + }, + "verify/results/saves/bq/bq-1bA-endturn.sav": { + "mode": 420, + "sha256": "33e3009254f5acd17417053d88372f3d6851e0206932db0f9201cbce6c0f5b21" + }, + "verify/results/saves/bq/bq-1bA-post.sav": { + "mode": 420, + "sha256": "4c356f5916f0e6e4b0ba5f147e31177ae946abd6be2d124559e44c8a13b8ed10" + }, + "verify/results/saves/bq/bq-1bB-endturn.sav": { + "mode": 420, + "sha256": "33e3009254f5acd17417053d88372f3d6851e0206932db0f9201cbce6c0f5b21" + }, + "verify/results/saves/bq/bq-1bB-post.sav": { + "mode": 420, + "sha256": "4c356f5916f0e6e4b0ba5f147e31177ae946abd6be2d124559e44c8a13b8ed10" + }, + "verify/results/saves/bq/bq-res-post.sav": { + "mode": 420, + "sha256": "28bbd9b5c377afcd8f075b535eb1036ee46acf71ab614e7091ccdbdfb3703db2" + }, + "verify/results/saves/bs/bs-C-endturn.sav": { + "mode": 420, + "sha256": "15b99255e1f03dab3e35ab8c1ac64f221cb5aa9321f113c7a6e3d1263c3f34ca" + }, + "verify/results/saves/bs/bs-C-f38-autosave.sav": { + "mode": 420, + "sha256": "0fe8f37479a702d2e4e7752e6cb160dc242f00a082dc4115b7d10c77b24989f0" + }, + "verify/results/saves/bs/bs-C-post.sav": { + "mode": 420, + "sha256": "7a8b3d5eb3a60ebac9f40646d3e4b15768a24a0af047a439ce090c7cf38e8b38" + }, + "verify/results/saves/bs/bs-L-endturn.sav": { + "mode": 420, + "sha256": "33e3009254f5acd17417053d88372f3d6851e0206932db0f9201cbce6c0f5b21" + }, + "verify/results/saves/bs/bs-L-post.sav": { + "mode": 420, + "sha256": "4c356f5916f0e6e4b0ba5f147e31177ae946abd6be2d124559e44c8a13b8ed10" + }, + "verify/results/saves/cb-c3-turn1to2-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/saves/cb-c5a-turn1to2-pinned-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/saves/cb-c5b-turn1to2-pinned-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/saves/cb-turn2to3-autosave.sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/saves/cb-turn2to3-endturn.sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/saves/certified-pairs.md": { + "mode": 420, + "sha256": "4e1cfb79cf5a51446b2eae21f91b565348ffa95a9ebac8f95e23019012aefb57" + }, + "verify/results/saves/cr/cr-oracle-autosave.sav": { + "mode": 420, + "sha256": "79df50475a7b83afa927d992b9f030dcf45710f4bda0133b8b1fa4800a72e420" + }, + "verify/results/saves/cr/cr-oracle-endturn.sav": { + "mode": 420, + "sha256": "e00eed0c03a31d27a81b7470a9dcc9ba08a2ac48c20baeee4f34749164743e3f" + }, + "verify/results/saves/cr/cr-replace0-autosave.sav": { + "mode": 420, + "sha256": "6b51db992b158caa5424d71b2dccf72924af7198b4165bfcfc870e0d438fb6d5" + }, + "verify/results/saves/cr/cr-replace1-autosave.sav": { + "mode": 420, + "sha256": "8a4309ee4fe0b3177a2820600b5016c7c256d0f51b065df469ecd0b4f2342235" + }, + "verify/results/saves/determinism-hashes.txt": { + "mode": 420, + "sha256": "bfa0615c4b310ae21c09a7d373d5a9d8799f36a0460089e5950fa0edf9d614d2" + }, + "verify/results/saves/human-turn11-spytechs.sav": { + "mode": 420, + "sha256": "aa63dd3d5489884f70d9c35acfb06c23c84531f403798842e7b0cf8cde94d1d4" + }, + "verify/results/saves/human-turn15-spyprogram.sav": { + "mode": 420, + "sha256": "22306d26f8831b90a62c00a2ebad5a97e77017b62ee96a7439d4c2c76c455cca" + }, + "verify/results/saves/human-turn2-orders.sav": { + "mode": 420, + "sha256": "9a94dec562622310893d6f522a0fae06f1033470f4182098e808b175e7df7c8d" + }, + "verify/results/saves/human-turn3-noderoute.sav": { + "mode": 420, + "sha256": "6db0912a050a846c8f3a184811644c76df3fdb65e83dffbf70289e21cc098a90" + }, + "verify/results/saves/human-turn5-traderoutes.sav": { + "mode": 420, + "sha256": "3829e6c6d8f26cd1183a972bd66edadbd71364c11a224b0a6e40461011bcab29" + }, + "verify/results/saves/human-turn8-traderoutes.sav": { + "mode": 420, + "sha256": "afeb3b2d724e07cf59f15eb1bdb9fcf853391fc06fe21beb20c069ff75b2f836" + }, + "verify/results/saves/turn1-state.sav": { + "mode": 420, + "sha256": "a3f9dc4b49fc669c814b09b87a9c6795de21bac80a1c7bfe3901b8e239fa36cc" + }, + "verify/results/saves/turn2-state.sav": { + "mode": 420, + "sha256": "ab4ac2d7e2977260a4de916f65c7ecc6dd5b0094dac4bb51241317232ea17ab4" + }, + "verify/results/saves/turn2-strict-issues.txt": { + "mode": 420, + "sha256": "33a169a2de29ad502e9b7c0159cd543e0b4d71f2d9b3903f5be58c7846db2429" + }, + "verify/results/saves/turn3-state.sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/saves/zuul-turn15-orders.sav": { + "mode": 420, + "sha256": "ef86a0d61de3533f023af5dc2b9a5720e4e0c5c97d900d88181603a13db7d045" + }, + "verify/results/saves/zuul-turn16-noderoute.sav": { + "mode": 420, + "sha256": "b6b5d283b62cc46bca914e86c34cf45e8960a653e818e59664087429bbb30103" + }, + "verify/results/saves/zuul-turn17-orders2.sav": { + "mode": 420, + "sha256": "1b863e684edecb4afe738ba30c8132065ebcf2d9977409325e714fe0173056e8" + }, + "verify/results/saves/zuul-turn17-rollpending.sav": { + "mode": 420, + "sha256": "aac5ba5b10ff1af6b0e38c565b2f0a60c16858ee4e89dd2a2f5b037eae95ee7d" + }, + "verify/results/saves/zuul-turn23-fleet23.sav": { + "mode": 420, + "sha256": "fd3748327d87b8c478f50fcd09d097eacff21e57d946ecb43b8119b4d0d78b1b" + }, + "verify/results/saves/zuul-turn5-species5.sav": { + "mode": 420, + "sha256": "48559ab5b719b332e47b4bf43af85a616bff1508125d62edb211b80637234af6" + }, + "verify/results/shim/ac/ac-probe-run-shim.log": { + "mode": 420, + "sha256": "b9b4a5f0e399e16b477cde0bd7e2c4ce378549eb5a467f7b8ae5eb64d75cb106" + }, + "verify/results/shim/ac/ac-probe-run-watch.txt": { + "mode": 420, + "sha256": "543d76d150aeb9318b9ae27acf638b8935eea30b1a2d47fb15354b584a458163" + }, + "verify/results/shim/ad/ad-r1-shim.log": { + "mode": 420, + "sha256": "fec98888b030ed42b84551aac1286c0baeaf15b8a545af068dc6605615e96df0" + }, + "verify/results/shim/aidesign/parse_aidesign.py": { + "mode": 420, + "sha256": "fbd4aeb71db548759bdb1ff65a5fdd0af6c192927e6ebe4b510f1083c3bdba13" + }, + "verify/results/shim/aidesign/sd-br-p1-hashes.txt": { + "mode": 420, + "sha256": "cd276116a51df01129f0e840d4c04f7964be34f75e51c384cd8df65969f458e6" + }, + "verify/results/shim/aidesign/sd-br-p1.txt": { + "mode": 420, + "sha256": "325cb9fcfa505ab2a93bbd00d60a7a4644b6b5970cb16a288cc7a43f2e825dd3" + }, + "verify/results/shim/aidesign/sd-pin-p1-hashes.txt": { + "mode": 420, + "sha256": "f0371c0a439d736ae7e67e71bd87d693481100d08243d16a1ac1f2ad0ab8bdce" + }, + "verify/results/shim/aidesign/sd-pin-p1.txt": { + "mode": 420, + "sha256": "45e693d279899e7a04cf59bda67190058896b56f3b0607d5aee21abb12f03071" + }, + "verify/results/shim/aidesign/sd-pin-p2-hashes.txt": { + "mode": 420, + "sha256": "e7d6dc12a940305087ee03dc7f8826f3c6343d24d8fea0f2aa78665d887138c9" + }, + "verify/results/shim/aidesign/sd-pin-p2.txt": { + "mode": 420, + "sha256": "b0206869206bc3a41bebb5175e31179f1a5d125a44b5ddfc10c67c4a0d13c22c" + }, + "verify/results/shim/aidesign/sd-t15-p1-hashes.txt": { + "mode": 420, + "sha256": "1ee71a623eb17e08c623ec8de3775218dc3a7c2de50d36a25dd2395382195962" + }, + "verify/results/shim/aidesign/sd-t15-p1.txt": { + "mode": 420, + "sha256": "df9f4906ee8bbb2efc9ba9a38c41607b89711d0bc9f705473d8448e9715d9280" + }, + "verify/results/shim/aiorders/cb-c1-turn2to3.txt": { + "mode": 420, + "sha256": "9d5014b346cb0fa9e2172f45db77c4437a03b069930eaaa80ea94e742891eb8f" + }, + "verify/results/shim/aiorders/cb-c3-turn1to2-run1.txt": { + "mode": 420, + "sha256": "fdaf27a32b93fdb3024f7a45f0d90b2cf833d3f592960027c3a6cf4ecbb8c616" + }, + "verify/results/shim/aiorders/cb-c5a-turn1to2-pinned.txt": { + "mode": 420, + "sha256": "d4daa0c2599c1b573ed59617243a392861dbc4e1fbeb707c7248708c015d998f" + }, + "verify/results/shim/aiorders/cb-c5b-turn1to2-pinned.txt": { + "mode": 420, + "sha256": "9682186176024242fddb901b10d9a5ad6beba91bd895c2001ca954fc293eab73" + }, + "verify/results/shim/aiorders/l4-research-run1.txt": { + "mode": 420, + "sha256": "5caf1fa25b7b8c2d6af213e59c6ec821be3c46cdd92a1024a6faf5d0a3b1d71c" + }, + "verify/results/shim/aiorders/l4-research-run2.txt": { + "mode": 420, + "sha256": "846ef2cfbc365e7ee2f481048978baf820d57026737261bfba3a328d59cdaad8" + }, + "verify/results/shim/aiorders/l4-turn1to2-aiorders.txt": { + "mode": 420, + "sha256": "c55d9b3c48cb552c02731003c26bb6dfcb8afb611c2a188d21fd4a39f550d269" + }, + "verify/results/shim/aiorders/l4-turn1to2-hooksoff-autosave.sav": { + "mode": 420, + "sha256": "d59bb9f2fd0eb5358c35954fbf2fcb70d06bafbba2560e0fa5d3f906bfb159d8" + }, + "verify/results/shim/aiorders/l4-turn1to2-instrumented-autosave.sav": { + "mode": 420, + "sha256": "e43ec1d2b443c1017d06b21eb8c76b927613ed49aa78bca46a595a9acb368d1d" + }, + "verify/results/shim/aiorders/l4-turn2to3-aiorders.txt": { + "mode": 420, + "sha256": "696c34996e4b5be0383794fae7ea114779f7fdd0a8cdceff5a00aeb07392933a" + }, + "verify/results/shim/airng/par-br-p1-hashes.txt": { + "mode": 420, + "sha256": "656b1d0c073d9988287e5b76543e42eb1c050d9ebc9872e2b7ec5208b7534b42" + }, + "verify/results/shim/airng/par-br-p1.txt": { + "mode": 420, + "sha256": "eadf1cfb7efd7b374472867ddf1cea5f60e30096090c950049f0c264b0299398" + }, + "verify/results/shim/airng/par-br-p2-hashes.txt": { + "mode": 420, + "sha256": "d97916075c7b4c10464962e9e38aed69288a4d68a16a369c1133df16fa134146" + }, + "verify/results/shim/airng/par-br-p2.txt": { + "mode": 420, + "sha256": "bda355cbbf07301cd6d3716eba32312261c402848c91780a97a6d5cce14c3d92" + }, + "verify/results/shim/airng/par-pin-a1-hashes.txt": { + "mode": 420, + "sha256": "5eb1b557826d45fe9d843b37a92aaef54cd1b8a60900f9c34b4fe25e4bd46a24" + }, + "verify/results/shim/airng/par-pin-a1.txt": { + "mode": 420, + "sha256": "17750bab77512434dcc9e66fc86cbfc34df497cadab5b732cf3b0ef3958e09a4" + }, + "verify/results/shim/airng/par-t1-br-p1-hashes.txt": { + "mode": 420, + "sha256": "7577c33ec33d9e94fb77225929c1f34a3dd94c18fe72a394017811b3b5d53467" + }, + "verify/results/shim/airng/par-t1-br-p1.txt": { + "mode": 420, + "sha256": "8bc9969e2da730d26cc5538b758858a00a4ba6ab2d398458ff4dece1edf8bf92" + }, + "verify/results/shim/airng/par-t1-br-p2-hashes.txt": { + "mode": 420, + "sha256": "7e60fc8615163e8ebccf22fc8910f2e7c4f72a9be7a74bc832bc2a0f64ade0da" + }, + "verify/results/shim/airng/par-t1-br-p2.txt": { + "mode": 420, + "sha256": "7e50a728eb5909bd602a9e6996b908b1b2665c8c983cc0258dad000c8bff8e35" + }, + "verify/results/shim/airng/par-t1-br-p3-hashes.txt": { + "mode": 420, + "sha256": "00ce6b3b4c9dbfd192d09b3b06d91b95576cee8a5a85fccdc36a85547fbdcbc4" + }, + "verify/results/shim/airng/par-t1-br-p3.txt": { + "mode": 420, + "sha256": "28cdf1f6b83c1764f1d1e51a67e3f873566b8503f8504ef52f5b5af24b21c0cb" + }, + "verify/results/shim/airng/parse_airng.py": { + "mode": 493, + "sha256": "3fafa7cf2363620d6a25248d085fbc4e3bd1fdbb9388a6795244834a9a2a2ed0" + }, + "verify/results/shim/ap/ap-probes8-d.shim.log": { + "mode": 420, + "sha256": "115545172568edc6a1d5bb3b559f968aa8a7aaa1f6aeba970daebce98fe56a0c" + }, + "verify/results/shim/ap/ap-probes8-w.shim.log": { + "mode": 420, + "sha256": "8af0897a884bb314958c5e6f2fccd88ff8b1890322dafd3bc904b3f983838620" + }, + "verify/results/shim/ar/ar-r1-ledger.txt": { + "mode": 420, + "sha256": "44bddfc0b9e94812a3a1cfd681a1350caedf2ed8e1174900c2f81c90dc95187e" + }, + "verify/results/shim/ar/ar-r1-probes.txt": { + "mode": 420, + "sha256": "c10251c9bcca5436dc42b2c0bd37b66c144aec4036f2069c2df9340fd764992c" + }, + "verify/results/shim/ar/ar-r1-shim.log": { + "mode": 420, + "sha256": "07003ee203d60a638cc8a1cb0a0f6b8042ba227705b4355f1254312c6dd54e28" + }, + "verify/results/shim/ar/ar-r1-sites.txt": { + "mode": 420, + "sha256": "d1923d549ef3567488d0382ae0ef75fa25c5b1b5812ee5349c5c47aea7a30514" + }, + "verify/results/shim/ar/ar-r2-shim.log": { + "mode": 420, + "sha256": "06dbf04cff5a56b0e55d8e73e5b1e3e9d9235f4afafc8139517b68d676781909" + }, + "verify/results/shim/as/as-probes8-run.shim.log": { + "mode": 420, + "sha256": "cd25c93d8b79e0f0df594fe681917fe880741a54a4188d4d72d2fbc6c42ba8d9" + }, + "verify/results/shim/bp/A-aiorders.txt": { + "mode": 420, + "sha256": "ee9f8bb1073e3bf02e115fdee014f79b11100a0e1e35e308c2bcd4b798302c34" + }, + "verify/results/shim/bp/A-shim.log": { + "mode": 420, + "sha256": "853eab98d09ff1e7a8e7da375a678561b02d6236adec627202ff3bb34d90e797" + }, + "verify/results/shim/bp/B-aiorders.txt": { + "mode": 420, + "sha256": "07daeacf33a16afbed64a8a01ffd26fa73c6d2acd0e6993dd9deb06a7fd93fc3" + }, + "verify/results/shim/bp/B-shim.log": { + "mode": 420, + "sha256": "cde2202333e81cc4eec2c47915181229a68a5fa99879968905a2809c4fe0a79a" + }, + "verify/results/shim/bp/L-aiorders.txt": { + "mode": 420, + "sha256": "28492b0f9be74f61db45eae49b44b41efbc1a3bf6f6d2c888e5cc40bfb7753bd" + }, + "verify/results/shim/bp/L-shim.log": { + "mode": 420, + "sha256": "550d8986a35b3f4742e7522df11bfbf2e832e417ad42cc1bff1a39dd4ee510fd" + }, + "verify/results/shim/bp/statecheck-AB.txt": { + "mode": 420, + "sha256": "dacb5cfa5541934f37b2b1c02b87e809c3f65ba8488aa88d925b295fade0083d" + }, + "verify/results/shim/bq/bq-res-aiorders.txt": { + "mode": 420, + "sha256": "991543eb53fbf1353fe99ed96d4ca358e05f6bac32f00bd1f6dc60fcc002c8b4" + }, + "verify/results/shim/bq/bq-res-shim.log": { + "mode": 420, + "sha256": "7855bd268f69443e7ddfda71873458144728630264703482901bf6d8ffbccd3a" + }, + "verify/results/shim/br/BR-aiorders.txt": { + "mode": 420, + "sha256": "d71e11e7c40aaa740adc55651af556afb9e92768336bc11747ad67151f33f4d1" + }, + "verify/results/shim/br/BR-airng.txt": { + "mode": 420, + "sha256": "04eaeaa688a448f64df00dedfd692b78bca0e3e1207a8292c2fafad507f919ea" + }, + "verify/results/shim/br/BR-shim.log": { + "mode": 420, + "sha256": "bc6ef7aa465c2b1a81d08555174e15fb1a97a207da9eefaa8a6155440869a13e" + }, + "verify/results/shim/br/BR2-deep-aiorders.txt": { + "mode": 420, + "sha256": "b9edb53f7d56c1bb26d3bb77349543dce9564930484bc832475a3a04e5f2ad15" + }, + "verify/results/shim/br/BR2-shim.log": { + "mode": 420, + "sha256": "0de7609693747fdf0abaebd60598af127c918f32561c993715aead91cd24b334" + }, + "verify/results/shim/br/aiorders-diff.txt": { + "mode": 420, + "sha256": "411ceb2bacd62185d25a3c58f199c0bdfcd2759705bef2b36536da3870f73a67" + }, + "verify/results/shim/br/cmp_aiorders.py": { + "mode": 420, + "sha256": "b6c192efb40866aa56f29d9ba2b89e17f18ae0579645db8f34a01010db09cc28" + }, + "verify/results/shim/br/shim.cfg.brdeep": { + "mode": 420, + "sha256": "b8017e344666df816f1191906cf8f54504d631bb7ce9d2f51f6f959e4934ff04" + }, + "verify/results/shim/br/shim.cfg.brprobe": { + "mode": 420, + "sha256": "4f090999dba63ef22ab4993bd6af557e9500819c84f27decc126771f48f98efb" + }, + "verify/results/shim/bs/C-aiorders.txt": { + "mode": 420, + "sha256": "5abc20b68edf6ff52301c01825040e1d6b41b582ba40403ed6c4edc42dcbe4e2" + }, + "verify/results/shim/bs/C-airng.txt": { + "mode": 420, + "sha256": "5a4a56506d1eeb82d3bf0fbba95842566911178a82f0aad9d700a9fe00f1b300" + }, + "verify/results/shim/bs/C-shim.log": { + "mode": 420, + "sha256": "8b8dad987589fd159e789806e89dbcf7a7b40b86446d55e1d0bf10ff25cb8f6f" + }, + "verify/results/shim/bs/L-aiorders.txt": { + "mode": 420, + "sha256": "a03e8c1587633ecbb683c376f30e35e126e98ff0e8204c4ee6b5e2b4fc254104" + }, + "verify/results/shim/bs/L-airng.txt": { + "mode": 420, + "sha256": "8d21083857facd3728446af612b3a97b47e5287a5fe0bdf01423812f8445dacd" + }, + "verify/results/shim/bs/L-shim.log": { + "mode": 420, + "sha256": "246af272e464c715c7abb00471b4ddc404b81143f4065006aa4daec4d82cadb9" + }, + "verify/results/shim/bs/shim.cfg.bsrun": { + "mode": 420, + "sha256": "570b15c208d31a367ec6c6886019693cb17b98d254cebead11ec6746ae5af256" + }, + "verify/results/shim/bu/BU1-aiorders.txt": { + "mode": 420, + "sha256": "944eeb701fcd22480513c34d93f8310541977e89a24ae237bd947aed44092529" + }, + "verify/results/shim/bu/BU1-aivisit.txt": { + "mode": 420, + "sha256": "721f038ef80be92325728fc30f095846b54ff1ac67a41537d4a4d1b97d5e9758" + }, + "verify/results/shim/bu/BU1-shim.log": { + "mode": 420, + "sha256": "28ca02f56823e577662744108965bc3ab1d7241143704ac8ceaacf2e9cd077f3" + }, + "verify/results/shim/bu/BU2-aiorders.txt": { + "mode": 420, + "sha256": "5c388039a3e832465f67b4ca88f3f67550d5189a3a68f33c508c4a467733c9ac" + }, + "verify/results/shim/bu/BU2-aivisit.txt": { + "mode": 420, + "sha256": "19963ed364f47fd965508d96fbf9d1f424938f711f2b1cdc83697f789189271a" + }, + "verify/results/shim/bu/BU2-shim.log": { + "mode": 420, + "sha256": "c0a8c467bc4b4134dc83ca5dedbbfed8dac887b432a56cd12f6e211c8d58daca" + }, + "verify/results/shim/bu/BU3-aiorders.txt": { + "mode": 420, + "sha256": "b6443b3f7db541149f54435f14ba830f54d2f950420f3f0694ff12a8b1eec143" + }, + "verify/results/shim/bu/BU3-aivisit.txt": { + "mode": 420, + "sha256": "fe67a4a1cc6a67e06b2eb5675b4b8543ab9f25ea39a18d7f4c83bce74482e0cc" + }, + "verify/results/shim/bu/BU3-shim.log": { + "mode": 420, + "sha256": "0a802ec556c87f44efaa06f211e75d9b89a66ac6db5a08e34d2a7eae992121ed" + }, + "verify/results/shim/bu/claim-order.txt": { + "mode": 420, + "sha256": "7135e3ed0204a4615e546bc882992073d4b48ee42ea341186c32b6b3dd3dfc47" + }, + "verify/results/shim/bu/claimcheck.py": { + "mode": 420, + "sha256": "85c5ec747f12cf37ec2dbc4021447909eeded68ecd1abb697a6fb60005a54aff" + }, + "verify/results/shim/bu/shim.cfg.bupin": { + "mode": 420, + "sha256": "6b37b047adc95f7c08b6767cdec5bd715a8851f14bff7f187772835d1cc032a7" + }, + "verify/results/shim/cr/cr-N.log": { + "mode": 420, + "sha256": "d5459e6dcf44fbe55d0f60f1ac40d68bed96319bb55986cc24a1b9ca0d8103e0" + }, + "verify/results/shim/cr/cr-R0.log": { + "mode": 420, + "sha256": "3b703881aa2b9a1c111201ff9543f2dcae0f948567ee877df275a1093bb567f7" + }, + "verify/results/shim/cr/cr-R1.log": { + "mode": 420, + "sha256": "8df6af84f74891ff9b0b02fa150641f5fadcd0419bc53c41cbe80bf14ec9c712" + }, + "verify/results/shim/eventlive/c6b-loaded.png": { + "mode": 420, + "sha256": "f442d4b211a47b331cef9a255e83732b80a1ede70ac200596c796ac0aa320017" + }, + "verify/results/shim/eventlive/c7b-turn3.png": { + "mode": 420, + "sha256": "3e070abfbdf4efd2662951049f8545f328aa172d64d00b9c5a1f4243426e803a" + }, + "verify/results/shim/eventlive/load-dialog-8files.png": { + "mode": 420, + "sha256": "e0fc5af16042a70b53bf7d44220db56c56a466c22c4abd641557e94b8e6c1693" + }, + "verify/results/shim/eventlive/shim-zuul.log": { + "mode": 420, + "sha256": "f9d184b33c46cab9d497f7a38056c099ce2ff9b5e8149f563a2353d91985fea1" + }, + "verify/results/shim/eventlive/shim.log": { + "mode": 420, + "sha256": "e65f2e3efa1ce8f70c483bb966448239923db2d3924c709a669bb1a890411b0c" + }, + "verify/results/shim/eventlive/t7-after.png": { + "mode": 420, + "sha256": "dc0a3e8f5a5c9032ead266d106fa69a57677711eb807d26376f29baa6ec0b934" + }, + "verify/results/shim/eventlive/zuul-turn1.png": { + "mode": 420, + "sha256": "f9af979ed08315c0a8d644af800318634b3641628f710f3f9b4d2c77d4f70fdc" + }, + "verify/results/shim/l1/README.md": { + "mode": 420, + "sha256": "f008081756d99825aa81d2802869476f8341f81aeb8c4dbbb77502cf76db5145" + }, + "verify/results/shim/l1/cdiff-frames-2-51.txt": { + "mode": 420, + "sha256": "57cb1911c5bfc7bdfacafc6bb1ad382fc05f46fb9cdcee4479d861af48e585c1" + }, + "verify/results/shim/l1/cdiff.py": { + "mode": 420, + "sha256": "2ace41ce6017cfac8758d8b9955f02de84738d90067a7dfadeb8bffffc842027" + }, + "verify/results/shim/l1/rep.py": { + "mode": 420, + "sha256": "1a7a3819da8e9aeaaf213a62b696388b0a9489924c964407536831b5f7dd9488" + }, + "verify/results/shim/l1/saves/l1-t1t2-post-hooksoff.sav": { + "mode": 420, + "sha256": "e43ec1d2b443c1017d06b21eb8c76b927613ed49aa78bca46a595a9acb368d1d" + }, + "verify/results/shim/l1/saves/l1-t1t2-post.sav": { + "mode": 420, + "sha256": "62061918176e344106e82357e58acc8adec488f6b2969831cb99a84cf25e31c5" + }, + "verify/results/shim/l1/saves/l1-t2t3-post.sav": { + "mode": 420, + "sha256": "2177c659d8dbc39cf7485abe367d42d55cc42cc9a61949d403dcbc79989ec32d" + }, + "verify/results/shim/l1/saves/l1-t2t3-pre.sav": { + "mode": 420, + "sha256": "641a33f06b2fe1c1caf0c4994442bf13a4b03f25a85b34a9875cd22b75715896" + }, + "verify/results/shim/l1/seed-two-processes.txt": { + "mode": 420, + "sha256": "d60412049ced59705284a46078f1906e1aad4140f90db2169e08aeb9530dd985" + }, + "verify/results/shim/l1/seedrep.py": { + "mode": 420, + "sha256": "a06de5d5ccc1e87808eb3877534076340ef5330bee9a86953b8f4dae0268e087" + }, + "verify/results/shim/l1/trace-et1.jsonl": { + "mode": 420, + "sha256": "f21a213bc56983bc94f24303b0837b160f93bfb7e3ca6abdbf2e18321f8dfa19" + }, + "verify/results/shim/l1/trace-et2.jsonl": { + "mode": 420, + "sha256": "6e44b0fc541c3082f91b115de67f5315f43b9db21f0696b856cfff2ead51323a" + }, + "verify/results/shim/l1/trace-oracle.jsonl": { + "mode": 420, + "sha256": "ad9ecbe79a71c84930302868850806798228fe0f2e625b442dd3ed579c05092c" + }, + "verify/results/shim/l1/trace-playforward-f51.jsonl": { + "mode": 420, + "sha256": "6ed0af385dfe7288ad2c994458c8f5d75fc8e29b603dd6607a3703591d25eeb4" + }, + "verify/results/shim/l1/trace-seed-proc1.jsonl": { + "mode": 420, + "sha256": "120074583eb02cd4c3a29aab5826f789d52a6146930b1763f9b0bb824e9a350a" + }, + "verify/results/shim/l1/trace-seed-proc2.jsonl": { + "mode": 420, + "sha256": "03dffeafeff0c33d926207f869741dc544141425c8f665bf58aad4fd363e2f95" + }, + "verify/results/shim/l1/watch-arm.txt": { + "mode": 420, + "sha256": "f8d5811c938d16d003a72a97f2b4b33112914a7ee378fa2b334282616592943e" + }, + "verify/results/shim/l1/watch-hits.txt": { + "mode": 420, + "sha256": "1bf62ac965036a189055cd59a92007c70a2a6aca307df54ce8ccb997048f43d5" + }, + "verify/results/shim/l3/l3-probe-run-shim.log": { + "mode": 420, + "sha256": "f5cd336971ae3d3eaff642e80d9defa20ec2e1ee11e212a082c24365b18d8684" + }, + "verify/results/shim/l3/l3-probe-run-watch.txt": { + "mode": 420, + "sha256": "8d969595789c690a688f7b8fac05288c614d5d9210388ca94315158948c85f24" + }, + "verify/results/shim/l3/l3-spy-run-shim.log": { + "mode": 420, + "sha256": "5abfd08445e9e8139945b095ddddfb56480062019ce6d40304a440c317f21fd1" + }, + "verify/results/shim/l3/l3-spy-run-watch.txt": { + "mode": 420, + "sha256": "c669ccf79202e7060c153151e4fe1be96acf4030cb64aa71bd6a5c212b550b47" + }, + "verify/results/shim/m0-main-menu.png": { + "mode": 420, + "sha256": "465207fda4722ca53585b71647a08b1149944036792a072e7c34e2c437a3e37c" + }, + "verify/results/shim/m0.log": { + "mode": 420, + "sha256": "581d63139503892b6aeeff71acb742143393e9f107aa1f3605d8c028c927cad1" + }, + "verify/results/shim/m1-shim.log": { + "mode": 420, + "sha256": "35401ea82b9a64dbfdb54c282c06c51d7b696afd4ea2794e16071e0fd5c7cbef" + }, + "verify/results/shim/m2-scout-shim.log": { + "mode": 420, + "sha256": "8c46117bdde6b6911a4d77b059b40803d4966652990c8fa3ed67773e5db0459f" + }, + "verify/results/shim/mf-after-shim.log": { + "mode": 420, + "sha256": "86601372b980828171e98fc71afe865f207b1745ef4dcdca646a618c91d17426" + }, + "verify/results/shim/mf-after-turn2.png": { + "mode": 420, + "sha256": "a1f83011ff96e990d7cc80f8306e8fe0c58b96f84eb73ccb6cb013019900133d" + }, + "verify/results/shim/mf-after-turn7.png": { + "mode": 420, + "sha256": "313f3863ab901320174c8ff7cf6f1f6b0d5b3d9d7a2f8999eae6413aedc46fc5" + }, + "verify/results/shim/mf-before-shim.log": { + "mode": 420, + "sha256": "8377a87c7ed05fd0cd7b61e3f1d5fc9c2b9fa294f812c67183d4ce31323a64b1" + }, + "verify/results/shim/mf-before-turn2.png": { + "mode": 420, + "sha256": "c9805791f402ec159fcc6acdd283120eae8536b230666d3049374525595b589f" + }, + "verify/results/shim/mf-before-turn7.png": { + "mode": 420, + "sha256": "3b880b8f96c4cc328aaff8e41068db29b295be8f000c432e321a51b6030b1272" + }, + "verify/results/shim/mf-human-home-no-ships.png": { + "mode": 420, + "sha256": "dfda3e9784eefdc7b75d04908e95c3a192eda7796685907c65bfde3068d6f2bb" + }, + "verify/results/shim/probes/human-t3-5-perturbed.txt": { + "mode": 420, + "sha256": "9b594ab18cdd9aec4fdf807b4d97576191bc6fd48a85cc872c222b515d0f7c01" + }, + "verify/results/shim/probes/human-t5.txt": { + "mode": 420, + "sha256": "0ddd9f0391a3a5d655f1809a9e79d537badd8071f8834e58bdbc7f95d9ff1320" + }, + "verify/results/shim/probes/oracle-restore/h-oracle-autosave.sav": { + "mode": 420, + "sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921" + }, + "verify/results/shim/probes/oracle-restore/h-oracle-endturn.sav": { + "mode": 420, + "sha256": "bb4fd9ac89f41e3bc0db2af08b18ce83417521ac4bcee695fc9fa6ce16e30948" + }, + "verify/results/shim/probes/zuul-t24-25.txt": { + "mode": 420, + "sha256": "50567b7cb1f008d025baf6cb4b4ad7af7d767a2182afd082c3ac1b1a66c79541" + }, + "verify/results/shim/recap-b1-shim.log": { + "mode": 420, + "sha256": "601cd4cbbec3e8c1f7776eadc4203256ec4c5d1e3e180295369727e1da69ff37" + }, + "verify/results/shim/recap-b3-shim.log": { + "mode": 420, + "sha256": "7c5110a9d4431cc03729a7bddcb13ee69a6d428199051e175b0921391fc02a80" + }, + "verify/results/shim/recap-misc-shim.log": { + "mode": 420, + "sha256": "7cadf2eadb08979cda39fe7e3ed6cfa3f62bdbcd256fc7550b3e27c3f08c9b3e" + }, + "verify/results/shim/recap-misc-turn7.png": { + "mode": 420, + "sha256": "2c1451ded36ad79389f0eb3db098b4e0b0a6f12495d64c832f6e093374005c29" + }, + "verify/results/shim/recap-trace-shim.log": { + "mode": 420, + "sha256": "56da143a92b2edda727862a6fd4a056c716153e23cfddbde076e218ce4c4285f" + }, + "verify/results/shim/recap-turn2-loaded.png": { + "mode": 420, + "sha256": "62a42c44f99d8a53bca735d54a5adf48b89449bb859e859ec573cb40e1a7f2d0" + }, + "verify/results/shim/tailrng/save_rng_delta.py": { + "mode": 420, + "sha256": "a9a04b131427a43372d87688b8eaf230a82a79e2c3c241a90ff4eb31e039749e" + }, + "verify/results/shim/tailrng/z-t5-autosave.sav": { + "mode": 420, + "sha256": "b2124798470d85ea86b0e9e4abfd9e23f3be73caa1115dd7614021be76305939" + }, + "verify/results/shim/tailrng/z-t6-autosave.sav": { + "mode": 420, + "sha256": "2ce6aef9d49ea238455f3ac680556c6a251065af3e28b6540fe09597ae38571c" + }, + "verify/results/shim/tailrng/z-t6-endturn.sav": { + "mode": 420, + "sha256": "afb112896c0236fa715ab3c10139958294085bb2066e22a6d7b76deb0dfa46dc" + }, + "verify/results/shim/tailrng/z2-autosave.sav": { + "mode": 420, + "sha256": "b2124798470d85ea86b0e9e4abfd9e23f3be73caa1115dd7614021be76305939" + }, + "verify/results/shim/tailrng/z2-endturn.sav": { + "mode": 420, + "sha256": "8648957fecf5041233f9add4c8173f78981f026f133ecdbecdb89ddd10917048" + }, + "verify/results/shim/unlock-shim.log": { + "mode": 420, + "sha256": "20a6625b369acb773543e530f1bfdc8b7eaca5c6b58415cc5009bb9858e16f22" + }, + "verify/results/shim/watchpoints/w2-modcount-status-2turns.txt": { + "mode": 420, + "sha256": "335be910dc11a20c9fb80f3b0f37f04fd50a9d8074697bb5365c3fea02790b74" + }, + "verify/results/shim/watchpoints/w2-shim-log-excerpt.txt": { + "mode": 420, + "sha256": "9a344045270e3815004a3376eccfbd030372faba54374d9b6626fd80740b8b13" + }, + "verify/results/shim/watchpoints/w3-modcount-turn1.txt": { + "mode": 420, + "sha256": "328a2319e320f5382e82ad497b6b73245c397cf67515e8a27fa9712418af81ae" + }, + "verify/results/shim/watchpoints/w3-shim-log-excerpt-turn1.txt": { + "mode": 420, + "sha256": "a9b3c20f90a76ee624bde6ee4cae9d1ff1f2baa67aa770a0e70042cb44d11915" + }, + "verify/results/shim/watchpoints/w3-shim-log-excerpt.txt": { + "mode": 420, + "sha256": "af9fe2258fe4168f6066768809c509380183f61bc337331392c5202b900d906a" + }, + "verify/results/shim/watchpoints/w3-tshn-containers.txt": { + "mode": 420, + "sha256": "08eab48d1a202f975f1be87e2279379646142f8b22d9dafc56295399083ed0af" + }, + "verify/results/standalone/cv/cv-input-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "d29f3514e4209954d6c068f34285615aef5f4627ba4627ce97c0e65f93620159" + }, + "verify/results/standalone/cv/cv-leaf-worklist.txt": { + "mode": 420, + "sha256": "0f309711de89cc10cf940d0d4b051b5052ce49a3cc0f3f80c532b50256410778" + }, + "verify/results/standalone/cv/cv-noreplay-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "3734f197cfefd017dbe562fd421d40859bfc2c37d9ac2cedf9c7ddd340a3a4a7" + }, + "verify/results/standalone/cv/cv-replay-run.log": { + "mode": 420, + "sha256": "7372c7da437ece21098cc6f66d0631e146d8aae14a9242bd2278a9922a7f7c02" + }, + "verify/results/standalone/cv/cv-replay-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "1932158abec82f45b9b838f4cb79b1088190ca5281d388f57356af7776e96950" + }, + "verify/results/standalone/dt/dt-canonical-after.txt": { + "mode": 420, + "sha256": "f32fdcf7d6431293133e951045b42a55e8a27d75cd859ad08cd719e5fb696712" + }, + "verify/results/standalone/dt/dt-canonical-before.txt": { + "mode": 420, + "sha256": "b56160cfdcfa0fff25be2aa566959261e375004905814803e231889da665188f" + }, + "verify/results/standalone/dt/dt-observed-leaves-remaining.txt": { + "mode": 420, + "sha256": "e14bd20e60480f98a564e585c0d25d2e758f71016811b8981dbdacd9d51c0c82" + }, + "verify/results/standalone/dt/dt-replay-run.log": { + "mode": 420, + "sha256": "4b7907fc4e735b1c12e3cf64671079abaad757aabd752b134a9fb27d065656cd" + }, + "verify/results/standalone/dt/dt-replay-vs-bp-pinB.txt": { + "mode": 420, + "sha256": "8ddb84e7e6c2f663b1bc4b9611a56a46aac9d09863dcc5be765cb70dc9642c22" + }, + "verify/results/standalone/max-income-oracle.json": { + "mode": 420, + "sha256": "245796e0aea5f5c2238686cba10c651156117fb454805553b2508a8a8fe71a69" + }, + "verify/results/standalone/report.txt": { + "mode": 420, + "sha256": "b47e90432eaf38149f2ecb5316d1962813b6b1423848e36fcc9435ad1f5485df" + }, + "verify/results/standalone/rng-oracle.json": { + "mode": 420, + "sha256": "98a364c80f69d6a84b86c3f9ccc16176d9e769ff061569b0c0ddfced53f9146c" + }, + "verify/results/standalone/rng-oracle.txt": { + "mode": 420, + "sha256": "3496a217a7e4f80bb18c1b067eaedcafcf7bdc877460c6346606fd7f6a55b877" + }, + "verify/results/standalone/status.json": { + "mode": 420, + "sha256": "d38ca6222c83df3a5886e6b32a30772c7174cc0e584f4a3beabedc05770df9cd" + }, + "verify/results/standalone/t36-turnrecord.md": { + "mode": 420, + "sha256": "b017a93ad04af69ef469cd8ea536dff4cab17140d20b3665e7c89533ab5b8a84" + }, + "verify/results/state-checksum/ad-oracleA-vs-oracleB.txt": { + "mode": 420, + "sha256": "b6c440e20108ad2727a7d7aa32a4bd673ec03ca4372461797705d619de1ba48a" + }, + "verify/results/state-checksum/chain-turn1-3.json": { + "mode": 420, + "sha256": "33941d0dd77bfb79e4302f82a410f5f18fe3ae1ade684b5b59c6ed352789a696" + }, + "verify/results/state-checksum/chain.txt": { + "mode": 420, + "sha256": "ae1037dd8394b258ce91262877d348a0561c5f5056cfae74cc0d058e4166aa83" + }, + "verify/results/state-checksum/float-census.txt": { + "mode": 420, + "sha256": "c697c0f187ee8a8ebb157cbff8d7ae42c92f36a501b16acd9f9839a0ffc306a9" + }, + "verify/results/state-checksum/identical-roots.txt": { + "mode": 420, + "sha256": "1143fabfe96954440542adcd3830ad1d862be6c091f3c1b2e63e92a2751703e7" + }, + "verify/results/state-checksum/resave-localisation.txt": { + "mode": 420, + "sha256": "85f4e8fe3581ba5d0ae74974d757c4c2fddc008f3fbe6781891ae8ef65aa693e" + }, + "verify/results/state-checksum/roots.txt": { + "mode": 420, + "sha256": "6ea7ad668703baaff870720683bcc13beff557cebf8e7843526d6677e5b5ef68" + }, + "verify/results/state-checksum/turn2-to-turn3.txt": { + "mode": 420, + "sha256": "3649c86742460a54d89714df1917508f76952c44c07cb7fbc19010910c5df0f4" + }, + "verify/results/turncommands/br2-turn27-deep.tcb": { + "mode": 420, + "sha256": "329b9c3f1e9f85ddeeb71148bd5c0e38f7d26445ed349df60ffbfaf63db46102" + }, + "verify/results/turncommands/br2-turn27-shallow.tcb": { + "mode": 420, + "sha256": "d8346969421a92fa199d0b9faafa642dc2e71a527b08d27984fe73ee70ecbd6b" + }, + "verify/results/turncommands/cb-turn1to2-pinned-run2.json": { + "mode": 420, + "sha256": "01e572975339fbe8a242b2438719173bd5bb4f4916078e5887026408923eb356" + }, + "verify/results/turncommands/cb-turn1to2-pinned-run2.tcb": { + "mode": 420, + "sha256": "16e349db6c46e46520cd2e5f0a9fcf70b537dce878324dd873418ef6cebd8658" + }, + "verify/results/turncommands/cb-turn1to2-pinned.json": { + "mode": 420, + "sha256": "2d4f108b8ac6b1e582382ac25d53f354c293e7caf390b8462d15beaf8e43e01c" + }, + "verify/results/turncommands/cb-turn1to2-pinned.tcb": { + "mode": 420, + "sha256": "28ebfecc3495cc4f5b2892e420cb1b83f3cbdb6b7aabe107f4b1d18233a06094" + }, + "verify/results/turncommands/cb-turn1to2-run1.json": { + "mode": 420, + "sha256": "c9de70196af5453df15cfebcb92c973dfed9d54ffa0dc0a397839cf951ac9b58" + }, + "verify/results/turncommands/cb-turn1to2-run1.tcb": { + "mode": 420, + "sha256": "5cdcfb3ade6cdfb2c00c234f5535c791780230f520d27be14f617462347b4948" + }, + "verify/results/turncommands/cb-turn2to3.json": { + "mode": 420, + "sha256": "8a0d4fc9efae9dcb4eca0de41bf28444d79eb5a4fd4e426671a4d80ab5a46f44" + }, + "verify/results/turncommands/cb-turn2to3.tcb": { + "mode": 420, + "sha256": "420a5d03f2a4ecfa0789835cc46f98961d11bbd7c7fd5f59dc28301aa0b65b6b" + }, + "verify/results/turncommands/l4-turn1to2.tcb": { + "mode": 420, + "sha256": "1b9faa7f8aad9196e36cf1c450e340f37c502a69ccfcaaad7e289bd7b4727b12" + }, + "verify/results/turncommands/l4-turn2to3.tcb": { + "mode": 420, + "sha256": "b0443f176c3915389278de608a8e7c63fa48d4777b924c0e383c7279f2a297e0" + }, + "verify/save-reader/SAVE_FORMAT.md": { + "mode": 420, + "sha256": "5ac2556b6c063c9296ef29e8514cc312983d48a8e2c2832f504c970629990b33" + }, + "verify/save-reader/fixture_joint.sav": { + "mode": 420, + "sha256": "fbe41595e50bb580786f36b197d5b85f87820974c545107c864fa2f1862af3f1" + }, + "verify/save-reader/fixture_split.sav": { + "mode": 420, + "sha256": "3909f12d021bf840617dc8d599841b64d67be46e1c6882cba7728d312d310071" + }, + "verify/save-reader/save_reader.py": { + "mode": 420, + "sha256": "2dcac286b5382b67fe8f2dbce58c80950dd430b726ed0e98f3bcea155df0df35" + }, + "verify/save-reader/save_writer_stub.py": { + "mode": 420, + "sha256": "8343ad15f742ee1b9cd62108efbc9c4b2718c3807442e3dfcfa9513ced7d3638" + }, + "verify/save-reader/test_save_reader.py": { + "mode": 420, + "sha256": "29f609d037eed99bb5444004facbff7b2c5c36fae568e815810585fdc3ddd393" + }, + "verify/state-checksum/STATE_CHECKSUM.md": { + "mode": 420, + "sha256": "5680299a4df27e30cdb545d9d2a640caf9299d61acb662b9512589e4390954e1" + }, + "verify/state-checksum/float_census.py": { + "mode": 420, + "sha256": "a568aad8b9f38aba2474f33941550bf948d050694a1d04dc5c85d15687223ae9" + }, + "verify/state-checksum/run_validation.sh": { + "mode": 493, + "sha256": "bf84b999d2b90368703e80235bac0258b70a1c37dd1902c9205a914a59cb1fc2" + }, + "verify/state-checksum/stability_check.py": { + "mode": 420, + "sha256": "8e640561b05decf590524fbe0dbf3b76a5e2f9c7fde93e005ca6e79464c305f1" + }, + "verify/state-checksum/state_checksum.py": { + "mode": 420, + "sha256": "ed80458e84d92040aa3872464d8df315e935f379ca0da5a2df81c3049826e5b8" + }, + "verify/state-checksum/test_state_checksum.py": { + "mode": 420, + "sha256": "d0ccf8e8390fd0a5d76a8695a490d85dc7e8e415a06ec50b592c57474cc9a73b" + }, + "verify/tooling/README.md": { + "mode": 420, + "sha256": "b05249530d65d43220c1e5c4666939c360d6139ed404a8881f6ad0a9c5c27af6" + }, + "verify/tooling/fixtures.py": { + "mode": 420, + "sha256": "56cccc88b9b9468e07c9ddff39d65813098053ec9e8f00432736906389f200a7" + }, + "verify/tooling/host-tests.json": { + "mode": 420, + "sha256": "90833c99e2749ff890b16b943f43f6ebfc1a1c611f2ed1e40555426fded45c97" + }, + "verify/tooling/test_tooling.py": { + "mode": 420, + "sha256": "bb8d15960dfda13f15cffc57f3b669003b127b4dedbf34100bb4a51c29dd3c6d" + }, + "verify/traces/.keep.md": { + "mode": 420, + "sha256": "b9ed9ae581d08f2411346c518e16cd894f159dbe569e3c778b31d9e9a3677786" + }, + "verify/traces/ac-probe-baseline-turn15.jsonl": { + "mode": 420, + "sha256": "a2f4e410f6a8d77f7680b4a69b5b2ac2f59fa80515b0cfe8209e7fec8e4a5b6b" + }, + "verify/traces/ac-probe-turn21-turn23.jsonl": { + "mode": 420, + "sha256": "2bb9317b82744c0da36ef6d9c1a78f31ebacea49b82a18005c0cc75bad62d345" + }, + "verify/traces/ad-r1-turn28-turn29.jsonl": { + "mode": 420, + "sha256": "cde7a1e010aa6195163f3b9320aa5c496fd8c271e9648c90c7319837dd967571" + }, + "verify/traces/ap-probes8-deploy-turn15.jsonl.gz": { + "mode": 420, + "sha256": "e257d5ea3fcb4be8da570d6a5589022e6ba412ff2712f4f06832812d8859e08a" + }, + "verify/traces/ap-probes8-turn16-turn26.jsonl.gz": { + "mode": 420, + "sha256": "df4fb35d9824799d8be79f3a9e976b55b7cd0fb5488b3e12711d04eb3c320f13" + }, + "verify/traces/ar-r1-turn38-turn43.jsonl": { + "mode": 420, + "sha256": "f8653cbd1956346816897b313031c5d70898144d1c84b1c849ac37bfe3bd993c" + }, + "verify/traces/ar-r2-control-turn38-turn39.jsonl": { + "mode": 420, + "sha256": "c1068652ddf54d2ff266c1dc1ef1e69ea663f5d2a83143408f77ec782b3dd988" + }, + "verify/traces/as-probes8-turn15-turn16.jsonl.gz": { + "mode": 420, + "sha256": "024bb0663b167eb364c8e138bae0bf10403860c195bd593cb56f60281060c4e8" + }, + "verify/traces/b2-final-menu.png": { + "mode": 420, + "sha256": "5a95fe260c9cb13dad5fc6f00460819107db93f4ac89f455077ad056600f83fd" + }, + "verify/traces/b2-shim.log": { + "mode": 420, + "sha256": "c31cf01af3659b7fdf008ff44f88f67ee4016dcfb30fc4a72b4d72ea0da8e404" + }, + "verify/traces/b2-techfx-compare.jsonl": { + "mode": 420, + "sha256": "f0202f45b276db6744c80768f12695153812bc882de688cf64705ed6a52f243c" + }, + "verify/traces/b2-techfx-golden.jsonl": { + "mode": 420, + "sha256": "43639e75bd9d510ed270c9cfcbb0c9665f5a6546f748ba81eba3f015e7ca233c" + }, + "verify/traces/cr-N.jsonl.gz": { + "mode": 420, + "sha256": "0071ae72a142533ffb91f9f04caa6704102c826761ff5ae24b57a1c3e9652e46" + }, + "verify/traces/cr-R0.jsonl.gz": { + "mode": 420, + "sha256": "6228c88cebb4dad2158e5586ecbcf71d1160116f2f4a2a8bc020658da8d7d706" + }, + "verify/traces/cr-R1.jsonl.gz": { + "mode": 420, + "sha256": "73f5f15b3343381cf3f973caaf74588fd3d0b6759de1ddcf9e12b9b3ebf29713" + }, + "verify/traces/eventlive-b3-t1-5.jsonl.gz": { + "mode": 420, + "sha256": "9cb344f1d8a3beb4bc1a2bf16baed6c38667443ead9f66fa0f53474a683d263c" + }, + "verify/traces/eventlive-b3-t1.jsonl": { + "mode": 420, + "sha256": "2d9962de9a7ea7fb28b33b72209706b4a27673096f71c8789f9f10ac465f387b" + }, + "verify/traces/eventlive-b3-zuul.jsonl.gz": { + "mode": 420, + "sha256": "0ee09bb884799e72c6a617ab02e741a7ba791ff458af439b9947a87b368a64de" + }, + "verify/traces/h-probes-human-perturbed-t3-5.jsonl.gz": { + "mode": 420, + "sha256": "2567f8ccb6276a4d647c4f4b88d14f7ae63aa4d1797f672a9bd9c7c86e4d7473" + }, + "verify/traces/h-probes-human-t5.jsonl.gz": { + "mode": 420, + "sha256": "92964779111573dc72e6a1845217cd7d709c9900594a106b3de7b59c2b7a88a7" + }, + "verify/traces/h-probes-zuul-t24-25.jsonl.gz": { + "mode": 420, + "sha256": "0966294af27b49159b1e72e683abc0b59fd52cc9bfd9f517130d30cedf7efa29" + }, + "verify/traces/l3-probe-turn8-turn15.jsonl": { + "mode": 420, + "sha256": "d1b5436f917bb4f6f74bd7b1967dbd0626db2c3a5cbc1d67684ef9f010826676" + }, + "verify/traces/m1-compare.jsonl": { + "mode": 420, + "sha256": "f0f6fd15bc73008e43e20d6ed4c4dd91fb2ec8b40935bfd3cc000d8a84ea6731" + }, + "verify/traces/m1-trace-golden.jsonl": { + "mode": 420, + "sha256": "4a4ddc031fb26a8f8b10dace297c73670f53dcbd250a9be94c0e31c9bb44dcc5" + }, + "verify/traces/mf-after-compare.jsonl": { + "mode": 420, + "sha256": "2a894892977176df1a9d6c8199b0f81b48c7bcac15d2c0e7786441fc6125226e" + }, + "verify/traces/mf-before-compare.jsonl": { + "mode": 420, + "sha256": "ee005097ebaac9f30c63f1e400fdf19a47e88010c71d215885234986d122410e" + }, + "verify/traces/output-ref-turn2.jsonl.gz": { + "mode": 420, + "sha256": "7af583350545501414eda38439f2d0fa39149342d9001d2926e2a4e4fdd5cdca" + }, + "verify/traces/output-zuul-and-ref.jsonl.gz": { + "mode": 420, + "sha256": "d581cb50f07766911fa59fa1df1524b33a9df6eec06226966efd5f54f09b6fb5" + }, + "verify/traces/recap-b1-compare.jsonl.gz": { + "mode": 420, + "sha256": "0ce1c92028a8cd10a38d7cca72f90c37ccbd844f24a1950bf0eb6e75739b44e2" + }, + "verify/traces/recap-b3-compare.jsonl": { + "mode": 420, + "sha256": "6ed3bcd99b4657d614bf63cc0fc2dfff650f4cb14e51086ea98c21bccbcf5fa8" + }, + "verify/traces/recap-golden-trace.jsonl.gz": { + "mode": 420, + "sha256": "d62431e9461ffb1b66adc16a39542b86fa8e0cf54a0ed446a8781c4d75a6c3bb" + }, + "verify/traces/recap-misc-compare.jsonl": { + "mode": 420, + "sha256": "d7c4446d45a9cab2af3da4a0d76f7a42c245da1f59db96fddf31d8b1f2c436ed" + }, + "verify/traces/tailrng-drawsites.jsonl.gz": { + "mode": 420, + "sha256": "5c1806e2b1452226674013119e3b220f3cf42be2ad8b0ed998050ad65d1f8415" + }, + "verify/traces/tailrng-refturn2.jsonl.gz": { + "mode": 420, + "sha256": "c33c6cafe015bda6acf5ca32b0c9595e1611f4ac82ecd3adaff8315c7bd3e560" + }, + "verify/traces/tailrng-zuul-long.jsonl.gz": { + "mode": 420, + "sha256": "213e7dd8a6809dd93190f41c87218e802f1fbe77d44d598f287c2a19544063af" + }, + "verify/traces/tailrng-zuul-noderoute.jsonl.gz": { + "mode": 420, + "sha256": "9476ee3b9b397ca9e20bc92eb887c109a075487cdd750746af051797e8838115" + }, + "verify/traces/unlock-b3-t1-5.jsonl.gz": { + "mode": 420, + "sha256": "f6e27a60bf6c74eb98d8bec50146fe1996642285ca008c6a70c3cb148c6ba54c" + }, + "verify/traces/unlock-b3-t1.jsonl.gz": { + "mode": 420, + "sha256": "bfa53bba3e59d17dd330e38ef52fd04fd92f05f3ad357fefd77388d083b49a05" + }, + "verify/traces/unlock-b3-zuul.jsonl.gz": { + "mode": 420, + "sha256": "d94c635105a75a68cb811a3881faf371678c075d240998f48fcf348b8459063f" + } + }, + "manifest_sha256": "b4db6808cc2b8aca33fa27eaab330d32811ce146d829a1bb9474a03f7ccdaeb4", + "path": "/tmp/opencode/sots-final-research-re" + } + }, + "started_at": "2026-09-10T04:16:41.399169+00:00", + "status": "complete", + "stderr": "campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.stderr.log", + "worktrees": { + "engine": "/tmp/opencode/sots-final-research-engine", + "re": "/tmp/opencode/sots-final-research-re" + } +} diff --git a/campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.jsonl b/campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.jsonl new file mode 100644 index 0000000..98a8a25 --- /dev/null +++ b/campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.jsonl @@ -0,0 +1,69 @@ +{"type":"step_start","timestamp":1789013805825,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_089884af8001WwBzmoW8LAUuaU","messageID":"msg_0898840a80014Y5hMhgvp4aXMV","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"04e829cd6ceba0b6785e51b4797135565a6ec3ea","type":"step-start"}} +{"type":"tool_use","timestamp":1789013806414,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_nyW1IsZ1Y25j70k6fgmBmRr8","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/README.md"},"output":"/home/alex/sots-re/campaign/README.md\nfile\n\n1: # Canonical campaign controls\n2: \n3: `sots-re/campaign/` is the state authority. Start with your contract, its checkpoint, open\n4: surprises, and [current policy](../guides/multi-agent-workflow.md). Board/dashboard are generated\n5: projections. Historical evidence is not current acceptance. No automatic commits or lab operations.\n6: \n7: Framework development is complete. The `controls-bootstrap` contract reached scoped acceptance;\n8: see [rollout result](rollout/RESULT.md) and its current contract/verdict for source-bound evidence.\n9: Active work is reverse engineering. Change tooling only to unblock a named RE experiment.\n10: \n11: ## Contract format\n12: \n13: `contract.schema.json` is strict JSON Schema (unknown fields and duplicate JSON keys fail).\n14: The standard-library validator implements the schema's used subset. A populated example is\n15: [contracts/controls-bootstrap.json](contracts/controls-bootstrap.json); its lifecycle is in the record.\n16: \n17: Required fields:\n18: \n19: | Field | Structure |\n20: |---|---|\n21: | `id`, `title`, `status` | Slug, short title, lifecycle state |\n22: | `owner` | `{ \"name\": \"worker-identity\", \"role\": \"implementer\" }` |\n23: | `baseline` | `{ \"engine\": {\"path\":\"/absolute/canonical/engine\",\"commit\":\"full-commit-id\"}, \"re\": {\"path\":\"/absolute/canonical/re\",\"commit\":\"full-commit-id\"} }` |\n24: | `scope`, `inputs`, `effects` | Arrays of explicit nonempty strings; include full write set and runtime inputs |\n25: | `original_dependencies` | String array, including original-assisted portions and unavailable inputs |\n26: | `dependencies` | Array of other contract IDs; all must be accepted before ready/implementing |\n27: | `acceptance` | Array of `{ \"id\": \"unique-criterion\", \"axis\": \"validation-scope\", \"criterion\": \"executable requirement\" }` |\n28: | `predictions`, `stop_conditions` | String arrays of predictions and conditions that halt work |\n29: | `checkpoint` | `null` or `campaign/runtime/checkpoints/.json` |\n30: \n31: Optional `evidence` is an array of\n32: `{id,axis,path,sha256,source,integrated,source_binding,binaries,inputs,outcomes}`.\n33: `path` is an existing canonical RE-relative artifact; `sha256` hashes its actual bytes; `source`\n34: equals the contract's complete baseline object. Store understanding,\n35: implementation, original dependencies, and validation scope as separate acceptance/evidence axes.\n36: There is no generic `verified` scalar. Baseline commit IDs describe starting repositories;\n37: dirty source identity is machine-bound by `source_binding`, never inferred from those commits.\n38: Criteria need distinct states, branch exposure, positive execution, complete writes/elements,\n39: allocations/IDs/events/RNG/runtime inputs, synthetic and original-game differentials as applicable.\n40: The CLI checks package identity and declared axes; the independent reviewer evaluates the actual\n41: criteria, gate outcomes, full manifests and integrated reproduction. A passing measurement alone\n42: does not establish acceptance.\n43: \n44: ### Source-bound evidence interface (R4)\n45: \n46: `source_binding` is `{engine:{path,commit,sha256},re:{path,commit,sha256}}`. Generate it with:\n47: \n48: ```sh\n49: python3 tools/campaign.py --state-root /home/alex/sots-re source-binding research-replacement --engine-worktree /absolute/candidate-engine --re-worktree /absolute/candidate-re\n50: ```\n51: \n52: Omit both worktree arguments to bind the canonical integrated trees. Paths must be Git worktree\n53: roots in the respective baseline repositories. `commit` is the actual current HEAD; `sha256`\n54: is the deterministic digest of the actual file manifest, including dirty/untracked nonignored\n55: files, deleted tracked paths (`null`), file bytes and Unix modes. Symlinks/submodules fail closed.\n56: The fixed manifest policy uses `git ls-files --cached --others --exclude-standard`; ignored\n57: untracked build/output files are not source. Python cache directories are excluded. In RE only,\n58: `verify/results/` and `campaign/` are excluded **except** `campaign/models.json`,\n59: `campaign/contract.schema.json`, and `campaign/agents/**`. These exclusions prevent mutable\n60: contracts/checkpoints/evidence/projections from hashing themselves. Relevant RE tools, tests,\n61: generated facts and guides remain bound. Any consumed item outside that source inventory must\n62: appear among immutable input/binary artifacts. The independent reviewer checks inventory adequacy.\n63: \n64: `binaries` and `inputs` are nonempty arrays of `{path,sha256}` artifact references; for tooling\n65: contracts, bind the executable scripts/interpreter identity package and fixture input package.\n66: `outcomes` exactly covers the acceptance criterion IDs for that evidence axis, with entries\n67: `{criterion,status,artifact:{path,sha256}}`; promotion requires `status: \"pass\"`. Outcome artifacts\n68: contain positive execution, branch/state exposures, reproduction recipe and required effect/input\n69: accounting. The CLI checks identities, hashes and declared outcomes, **not arbitrary criterion\n70: semantics**. The independent verifier must reproduce and challenge those claims.\n71: \n72: For example, an outcome for the bootstrap contract is:\n73: \n74: ```json\n75: {\"criterion\":\"controls-negative-paths\",\"status\":\"pass\",\"artifact\":{\"path\":\"verify/results/controls/result.json\",\"sha256\":\"\"}}\n76: ```\n77: \n78: Capture bindings when producing evidence; do not attach a fresh source hash to old measurements.\n79: Every evidence/verdict/promotion check rehashes referenced sources and artifacts. Same-HEAD byte\n80: changes reject old evidence and verdicts. Integrated records require canonical paths, lead in\n81: integration state, and one identical binding across **all** final integrated evidence. A lead's\n82: `integrated` boolean cannot substitute for this check. Verdicts bind the full evidence array and\n83: the source-binding array; old verdicts lacking these identities must be reproduced.\n84: \n85: This contract wrapper is separate from gate measurement schema **`sots-gate/1`**, whose `source`\n86: still has `engine`/`re`. Reference its immutable manifest/binary/input package; do not rename its\n87: fields to match contract `source`. Reporter output is measured evidence, with `--require-match`\n88: for required equality, and gains acceptance only through independent contract/integration gates.\n89: \n90: ## State and transactions\n91: \n92: Every command requires `--state-root /absolute/canonical/sots-re` (the repository, not `campaign/`).\n93: No sibling inference. Control records stay below canonical `campaign/runtime/`; contracts remain\n94: in `campaign/contracts/`. Immutable hashed artifacts may be referenced anywhere inside canonical\n95: RE, including existing `verify/` corpora, without copying them. Absolute/traversing artifact paths,\n96: outside symlinks, Git internals and named secret/private-key locations are rejected; aliases are\n97: checked after resolution too. Never reference secrets or commit owner-supplied binaries/assets.\n98: JSON writes are atomic and fsynced; a canonical `flock` serializes\n99: CLI mutations, WIP decisions, and resource acquisition. Do not hand-edit active state concurrently\n100: with commands. Interrupted multi-file operations retain blocking records and require inspection.\n101: \n102: Runtime APIs (JSON files; no server):\n103: \n104: - `runtime/checkpoints/*.json`: `sots-checkpoint/1`, contract, actor/role/model/session, timestamp,\n105: contract `basis` digest, bounded summary (6000 characters), up to 32 `{path,sha256}` artifacts,\n106: and one `next_action` (2000 characters). Include observations versus decisions, source identities,\n107: tests, blockers, resources/access/cleanup, exact next action in the summary/artifacts.\n108: Do not attach the checkpoint's own contract as an artifact: saving the pointer changes that\n109: file. Its task metadata is already covered by `basis`; the CLI rejects this self-reference.\n110: - `runtime/surprises/*.json`: `sots-surprise/1`, id, contract, `status: open|resolved`, summary,\n111: discriminating probe, actor/model/session provenance where applicable, optional decision ID.\n112: - `runtime/decisions/*.json`: `sots-decision/1`, Astra resolution, explanation/probe, invalidated\n113: evidence and checkpoint; prior verdict is marked invalidated. Resolution returns needs-revision\n114: only when all surprises are closed. Re-probe and rebuild evidence; resolution is not acceptance.\n115: - `runtime/verdicts/.json`: independent verifier actor/session/model, pass/fail,\n116: explanation, contract basis, complete evidence digest and source-bindings digest.\n117: - `runtime/transitions/*.json`: actor/model, previous/next lifecycle state, timestamp.\n118: - `runtime/leases/.json`: owner, random token, held/released, acquisition/release provenance.\n119: - `runtime/runs/run-*.json`, `.jsonl`, `.stderr.log`: requested model/config, command, worktree\n120: manifests before/after, expanded prompt hash, effective configuration hashes, canonical config\n121: file hashes, actual events/session/model when emitted, completion/checkpoint status. Effective\n122: provider config is hashed rather than persisted because it can contain credentials.\n123: `active-.json` reserves the contract. Interrupted running reservations never auto-expire.\n124: \n125: Lifecycle: `proposed -> ready -> implementing -> verification -> integration -> accepted`.\n126: Blocked and needs-revision edges support repairs; no skipping stages. Ready requires scope,\n127: inputs, acceptance, stop conditions, valid pinned baseline and accepted dependencies. Implementing\n128: is atomically capped at two concurrent contracts; lead schedules only one pilot before enabling\n129: two independent slices. Verification requires fresh checkpoint/artifacts after implementation start.\n130: Integration requires lead plus independent passing verifier bound to current source/evidence.\n131: Accepted requires every declared axis in integrated evidence, passing independent verdict over\n132: that final package, and no open surprises. Adding integrated evidence changes the evidence digest:\n133: the verifier must attest the integrated package again. Handoff/promotion/end checkpoints must be\n134: within 15 minutes; recovery start has no age limit.\n135: \n136: Role/model registry: lead/architecture-review/analyst/implementer/verifier/lab =\n137: `openai/gpt-5.6-sol`; resolver = `openai/gpt-6-astra`.\n138: CLI identity fields are **claims, not authenticated model authority**. The runner requests the\n139: registry model explicitly and records emitted provenance. Editable JSON, agent permissions and\n140: shell-accessible tooling are not a security boundary. No silent routing fallback.\n141: \n142: ## Commands\n143: \n144: Run from either repository using the canonical tool path when necessary. Examples:\n145: \n146: ```sh\n147: python3 tools/campaign.py --state-root /home/alex/sots-re validate\n148: python3 tools/campaign.py --state-root /home/alex/sots-re list\n149: python3 tools/campaign.py --state-root /home/alex/sots-re status research-replacement\n150: python3 tools/campaign.py --state-root /home/alex/sots-re checkpoint controls-bootstrap --actor controls-architect --role architecture-review --model openai/gpt-6-astra --session rollout-controls --summary 'Source identities, observations, decisions, tests and blockers are in the attached checkpoint.' --artifact campaign/rollout/controls-worker-state.md --next-action 'Run the independent controls review.'\n151: python3 tools/campaign.py --state-root /home/alex/sots-re transition controls-bootstrap ready --actor controls-architect --role architecture-review --model openai/gpt-6-astra\n152: ```\n153: \n154: `surprise CONTRACT --summary TEXT --probe TEXT` blocks immediately. `resolve SURPRISE_ID\n155: --explanation TEXT --probe TEXT` requires claimed Astra lead/resolver. Both also require\n156: `--actor NAME --role ROLE --model MODEL`. `evidence CONTRACT --record campaign/path.json`\n157: uses the same identity flags; record format is the evidence object above. Integrated records\n158: require lead and integration state. `verdict CONTRACT --session SESSION --verdict pass|fail\n159: --explanation TEXT` requires verifier identity flags and independent actor/session.\n160: \n161: ```sh\n162: python3 tools/campaign.py --state-root /home/alex/sots-re lease acquire windows-vm --actor lab-one --role lab --model openai/gpt-5.5\n163: python3 tools/campaign.py --state-root /home/alex/sots-re lease show windows-vm\n164: python3 tools/campaign.py --state-root /home/alex/sots-re lease release windows-vm --actor lab-one --role lab --model openai/gpt-5.5 --token TOKEN_FROM_ACQUIRE\n165: python3 tools/campaign.py --state-root /home/alex/sots-re lease release windows-vm --actor lead --role lead --model openai/gpt-6-astra --lead-release --reason 'Confirmed prior operator stopped; access and cleanup checked.'\n166: ```\n167: \n168: No stale lease stealing. Explicit lead release requires an explanation and lab preconditions,\n169: side effects, cleanup, and access verification in the operator checkpoint. Treat lease tokens\n170: as local owner capabilities, not secrets to put in a board/dashboard.\n171: \n172: ## Fresh bounded launches\n173: \n174: Prepare **two actual linked worktrees**, each distinct from its canonical source repository,\n175: at the contract's full baseline commit. No auto commits/worktree creation. Launch uses explicit\n176: canonical `OPENCODE_CONFIG`, checks matching repo-local agent/model/40 steps, and sets the final\n177: environment overlay to bind requested role/model/steps. Other inherited config overrides are\n178: cleared. `opencode models` must list the exact requested model even for dry runs.\n179: \n180: ```sh\n181: python3 tools/run_agent.py --state-root /home/alex/sots-re --role implementer --actor worker-one --contract slice-one --engine-worktree /home/alex/worktrees/slice-one-engine --re-worktree /home/alex/worktrees/slice-one-re --cwd engine --dry-run\n182: ```\n183: \n184: Remove `--dry-run` to execute. Normal worker launch requires a valid durable checkpoint, matching\n185: owner/role/status, no open surprises, baseline HEADs and canonical Git common-directory identity.\n186: Recovery checks checkpoint identity/basis and artifact hashes regardless of age, rechecks any\n187: source-bound evidence, and validates paired Git worktree/baseline identity. Missing ordinary-worker\n188: state still blocks. Bootstrap lead/architecture-review can start without a checkpoint; they still\n189: need paired worktrees. Astra lead/resolver may launch a blocked contract with open surprises and\n190: without a worker checkpoint in **resolution-only** scope: read evidence and write decisions/state,\n191: no implementation. Its prompt and permission overlay carry that limit, and worktree source changes\n192: fail completion. Ordinary affected workers stay blocked. Other Astra architecture actors receive\n193: explicit architecture authority within their owned scope. Each run is a fresh\n194: `opencode run --format json --model ... --agent ...`; no resume/continue option is used. The prompt\n195: supplies the run ID to use as checkpoint `--session`; actual OpenCode session IDs are captured\n196: separately when emitted. On exit, a checkpoint after start matching actor/role/model/run ID is\n197: mandatory or the run is marked incomplete. Completion additionally requires a zero exit, no\n198: `type:error`, a successful `step_finish` with `part.reason: \"stop\"`, one nonempty actual session ID,\n199: and consistent explicitly emitted model IDs. Text/tool-call/length events alone cannot complete a\n200: run. Missing model emission is recorded `observed_model_status: \"unavailable\"`, never invented.\n201: \n202: The runner checks the exact Git baseline again under reservation lock, rejects intervening contract\n203: changes, and checks canonical model/prompt/config files and effective configuration for drift at\n204: completion. Expanded role prompt/model/steps are frozen in the last-layer environment overlay.\n205: `opencode debug config` runs in the actual launch cwd with the actual environment before execution\n206: and again at completion. Permissions explicitly allow read/search, ordinary worker shell commands,\n207: and external-directory access to the assigned paired trees plus canonical RE; role-specific edit\n208: denies survive. Task delegation and interactive questions are denied. No `--auto` is required.\n209: Noninteractive command/environment tests and a live loader check cover this overlay; an actual\n210: normal worker launch smoke is a separate lead integration check. Permissions and before/after\n211: checks are operational guards, not a sandbox or continuous filesystem audit.\n212: Compaction is a backstop; no token threshold or machine-enforced 20-tool-call claim.\n213: \n214: ## Local verification\n215: \n216: ```sh\n217: python3 -m unittest discover -s verify/campaign -p 'test_*.py' -v\n218: python3 tools/campaign.py --state-root /home/alex/sots-re validate\n219: ```\n220: \n221: Tests create commits only in disposable fixture repositories, linked worktrees and fake OpenCode processes; they do\n222: not launch agents or touch the lab. Historical rollout artifacts retain the scope and source identity\n223: of their runs; consult the accepted contract and current evidence, not an old handoff's status prose.\n\n(End of file - total 223 lines)\n","metadata":{"preview":"# Canonical campaign controls\n\n`sots-re/campaign/` is the state authority. Start with your contract, its checkpoint, open\nsurprises, and [current policy](../guides/multi-agent-workflow.md). Board/dashboard are generated\nprojections. Historical evidence is not current acceptance. No automatic commits or lab operations.\n\nFramework development is complete. The `controls-bootstrap` contract reached scoped acceptance;\nsee [rollout result](rollout/RESULT.md) and its current contract/verdict for source-bound evidence.\nActive work is reverse engineering. Change tooling only to unblock a named RE experiment.\n\n## Contract format\n\n`contract.schema.json` is strict JSON Schema (unknown fields and duplicate JSON keys fail).\nThe standard-library validator implements the schema's used subset. A populated example is\n[contracts/controls-bootstrap.json](contracts/controls-bootstrap.json); its lifecycle is in the record.\n\nRequired fields:\n\n| Field | Structure |\n|---|---|","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/README.md","text":"# Canonical campaign controls\n\n`sots-re/campaign/` is the state authority. Start with your contract, its checkpoint, open\nsurprises, and [current policy](../guides/multi-agent-workflow.md). Board/dashboard are generated\nprojections. Historical evidence is not current acceptance. No automatic commits or lab operations.\n\nFramework development is complete. The `controls-bootstrap` contract reached scoped acceptance;\nsee [rollout result](rollout/RESULT.md) and its current contract/verdict for source-bound evidence.\nActive work is reverse engineering. Change tooling only to unblock a named RE experiment.\n\n## Contract format\n\n`contract.schema.json` is strict JSON Schema (unknown fields and duplicate JSON keys fail).\nThe standard-library validator implements the schema's used subset. A populated example is\n[contracts/controls-bootstrap.json](contracts/controls-bootstrap.json); its lifecycle is in the record.\n\nRequired fields:\n\n| Field | Structure |\n|---|---|\n| `id`, `title`, `status` | Slug, short title, lifecycle state |\n| `owner` | `{ \"name\": \"worker-identity\", \"role\": \"implementer\" }` |\n| `baseline` | `{ \"engine\": {\"path\":\"/absolute/canonical/engine\",\"commit\":\"full-commit-id\"}, \"re\": {\"path\":\"/absolute/canonical/re\",\"commit\":\"full-commit-id\"} }` |\n| `scope`, `inputs`, `effects` | Arrays of explicit nonempty strings; include full write set and runtime inputs |\n| `original_dependencies` | String array, including original-assisted portions and unavailable inputs |\n| `dependencies` | Array of other contract IDs; all must be accepted before ready/implementing |\n| `acceptance` | Array of `{ \"id\": \"unique-criterion\", \"axis\": \"validation-scope\", \"criterion\": \"executable requirement\" }` |\n| `predictions`, `stop_conditions` | String arrays of predictions and conditions that halt work |\n| `checkpoint` | `null` or `campaign/runtime/checkpoints/.json` |\n\nOptional `evidence` is an array of\n`{id,axis,path,sha256,source,integrated,source_binding,binaries,inputs,outcomes}`.\n`path` is an existing canonical RE-relative artifact; `sha256` hashes its actual bytes; `source`\nequals the contract's complete baseline object. Store understanding,\nimplementation, original dependencies, and validation scope as separate acceptance/evidence axes.\nThere is no generic `verified` scalar. Baseline commit IDs describe starting repositories;\ndirty source identity is machine-bound by `source_binding`, never inferred from those commits.\nCriteria need distinct states, branch exposure, positive execution, complete writes/elements,\nallocations/IDs/events/RNG/runtime inputs, synthetic and original-game differentials as applicable.\nThe CLI checks package identity and declared axes; the independent reviewer evaluates the actual\ncriteria, gate outcomes, full manifests and integrated reproduction. A passing measurement alone\ndoes not establish acceptance.\n\n### Source-bound evidence interface (R4)\n\n`source_binding` is `{engine:{path,commit,sha256},re:{path,commit,sha256}}`. Generate it with:\n\n```sh\npython3 tools/campaign.py --state-root /home/alex/sots-re source-binding research-replacement --engine-worktree /absolute/candidate-engine --re-worktree /absolute/candidate-re\n```\n\nOmit both worktree arguments to bind the canonical integrated trees. Paths must be Git worktree\nroots in the respective baseline repositories. `commit` is the actual current HEAD; `sha256`\nis the deterministic digest of the actual file manifest, including dirty/untracked nonignored\nfiles, deleted tracked paths (`null`), file bytes and Unix modes. Symlinks/submodules fail closed.\nThe fixed manifest policy uses `git ls-files --cached --others --exclude-standard`; ignored\nuntracked build/output files are not source. Python cache directories are excluded. In RE only,\n`verify/results/` and `campaign/` are excluded **except** `campaign/models.json`,\n`campaign/contract.schema.json`, and `campaign/agents/**`. These exclusions prevent mutable\ncontracts/checkpoints/evidence/projections from hashing themselves. Relevant RE tools, tests,\ngenerated facts and guides remain bound. Any consumed item outside that source inventory must\nappear among immutable input/binary artifacts. The independent reviewer checks inventory adequacy.\n\n`binaries` and `inputs` are nonempty arrays of `{path,sha256}` artifact references; for tooling\ncontracts, bind the executable scripts/interpreter identity package and fixture input package.\n`outcomes` exactly covers the acceptance criterion IDs for that evidence axis, with entries\n`{criterion,status,artifact:{path,sha256}}`; promotion requires `status: \"pass\"`. Outcome artifacts\ncontain positive execution, branch/state exposures, reproduction recipe and required effect/input\naccounting. The CLI checks identities, hashes and declared outcomes, **not arbitrary criterion\nsemantics**. The independent verifier must reproduce and challenge those claims.\n\nFor example, an outcome for the bootstrap contract is:\n\n```json\n{\"criterion\":\"controls-negative-paths\",\"status\":\"pass\",\"artifact\":{\"path\":\"verify/results/controls/result.json\",\"sha256\":\"\"}}\n```\n\nCapture bindings when producing evidence; do not attach a fresh source hash to old measurements.\nEvery evidence/verdict/promotion check rehashes referenced sources and artifacts. Same-HEAD byte\nchanges reject old evidence and verdicts. Integrated records require canonical paths, lead in\nintegration state, and one identical binding across **all** final integrated evidence. A lead's\n`integrated` boolean cannot substitute for this check. Verdicts bind the full evidence array and\nthe source-binding array; old verdicts lacking these identities must be reproduced.\n\nThis contract wrapper is separate from gate measurement schema **`sots-gate/1`**, whose `source`\nstill has `engine`/`re`. Reference its immutable manifest/binary/input package; do not rename its\nfields to match contract `source`. Reporter output is measured evidence, with `--require-match`\nfor required equality, and gains acceptance only through independent contract/integration gates.\n\n## State and transactions\n\nEvery command requires `--state-root /absolute/canonical/sots-re` (the repository, not `campaign/`).\nNo sibling inference. Control records stay below canonical `campaign/runtime/`; contracts remain\nin `campaign/contracts/`. Immutable hashed artifacts may be referenced anywhere inside canonical\nRE, including existing `verify/` corpora, without copying them. Absolute/traversing artifact paths,\noutside symlinks, Git internals and named secret/private-key locations are rejected; aliases are\nchecked after resolution too. Never reference secrets or commit owner-supplied binaries/assets.\nJSON writes are atomic and fsynced; a canonical `flock` serializes\nCLI mutations, WIP decisions, and resource acquisition. Do not hand-edit active state concurrently\nwith commands. Interrupted multi-file operations retain blocking records and require inspection.\n\nRuntime APIs (JSON files; no server):\n\n- `runtime/checkpoints/*.json`: `sots-checkpoint/1`, contract, actor/role/model/session, timestamp,\n contract `basis` digest, bounded summary (6000 characters), up to 32 `{path,sha256}` artifacts,\n and one `next_action` (2000 characters). Include observations versus decisions, source identities,\n tests, blockers, resources/access/cleanup, exact next action in the summary/artifacts.\n Do not attach the checkpoint's own contract as an artifact: saving the pointer changes that\n file. Its task metadata is already covered by `basis`; the CLI rejects this self-reference.\n- `runtime/surprises/*.json`: `sots-surprise/1`, id, contract, `status: open|resolved`, summary,\n discriminating probe, actor/model/session provenance where applicable, optional decision ID.\n- `runtime/decisions/*.json`: `sots-decision/1`, Astra resolution, explanation/probe, invalidated\n evidence and checkpoint; prior verdict is marked invalidated. Resolution returns needs-revision\n only when all surprises are closed. Re-probe and rebuild evidence; resolution is not acceptance.\n- `runtime/verdicts/.json`: independent verifier actor/session/model, pass/fail,\n explanation, contract basis, complete evidence digest and source-bindings digest.\n- `runtime/transitions/*.json`: actor/model, previous/next lifecycle state, timestamp.\n- `runtime/leases/.json`: owner, random token, held/released, acquisition/release provenance.\n- `runtime/runs/run-*.json`, `.jsonl`, `.stderr.log`: requested model/config, command, worktree\n manifests before/after, expanded prompt hash, effective configuration hashes, canonical config\n file hashes, actual events/session/model when emitted, completion/checkpoint status. Effective\n provider config is hashed rather than persisted because it can contain credentials.\n `active-.json` reserves the contract. Interrupted running reservations never auto-expire.\n\nLifecycle: `proposed -> ready -> implementing -> verification -> integration -> accepted`.\nBlocked and needs-revision edges support repairs; no skipping stages. Ready requires scope,\ninputs, acceptance, stop conditions, valid pinned baseline and accepted dependencies. Implementing\nis atomically capped at two concurrent contracts; lead schedules only one pilot before enabling\ntwo independent slices. Verification requires fresh checkpoint/artifacts after implementation start.\nIntegration requires lead plus independent passing verifier bound to current source/evidence.\nAccepted requires every declared axis in integrated evidence, passing independent verdict over\nthat final package, and no open surprises. Adding integrated evidence changes the evidence digest:\nthe verifier must attest the integrated package again. Handoff/promotion/end checkpoints must be\nwithin 15 minutes; recovery start has no age limit.\n\nRole/model registry: lead/architecture-review/analyst/implementer/verifier/lab =\n`openai/gpt-5.6-sol`; resolver = `openai/gpt-6-astra`.\nCLI identity fields are **claims, not authenticated model authority**. The runner requests the\nregistry model explicitly and records emitted provenance. Editable JSON, agent permissions and\nshell-accessible tooling are not a security boundary. No silent routing fallback.\n\n## Commands\n\nRun from either repository using the canonical tool path when necessary. Examples:\n\n```sh\npython3 tools/campaign.py --state-root /home/alex/sots-re validate\npython3 tools/campaign.py --state-root /home/alex/sots-re list\npython3 tools/campaign.py --state-root /home/alex/sots-re status research-replacement\npython3 tools/campaign.py --state-root /home/alex/sots-re checkpoint controls-bootstrap --actor controls-architect --role architecture-review --model openai/gpt-6-astra --session rollout-controls --summary 'Source identities, observations, decisions, tests and blockers are in the attached checkpoint.' --artifact campaign/rollout/controls-worker-state.md --next-action 'Run the independent controls review.'\npython3 tools/campaign.py --state-root /home/alex/sots-re transition controls-bootstrap ready --actor controls-architect --role architecture-review --model openai/gpt-6-astra\n```\n\n`surprise CONTRACT --summary TEXT --probe TEXT` blocks immediately. `resolve SURPRISE_ID\n--explanation TEXT --probe TEXT` requires claimed Astra lead/resolver. Both also require\n`--actor NAME --role ROLE --model MODEL`. `evidence CONTRACT --record campaign/path.json`\nuses the same identity flags; record format is the evidence object above. Integrated records\nrequire lead and integration state. `verdict CONTRACT --session SESSION --verdict pass|fail\n--explanation TEXT` requires verifier identity flags and independent actor/session.\n\n```sh\npython3 tools/campaign.py --state-root /home/alex/sots-re lease acquire windows-vm --actor lab-one --role lab --model openai/gpt-5.5\npython3 tools/campaign.py --state-root /home/alex/sots-re lease show windows-vm\npython3 tools/campaign.py --state-root /home/alex/sots-re lease release windows-vm --actor lab-one --role lab --model openai/gpt-5.5 --token TOKEN_FROM_ACQUIRE\npython3 tools/campaign.py --state-root /home/alex/sots-re lease release windows-vm --actor lead --role lead --model openai/gpt-6-astra --lead-release --reason 'Confirmed prior operator stopped; access and cleanup checked.'\n```\n\nNo stale lease stealing. Explicit lead release requires an explanation and lab preconditions,\nside effects, cleanup, and access verification in the operator checkpoint. Treat lease tokens\nas local owner capabilities, not secrets to put in a board/dashboard.\n\n## Fresh bounded launches\n\nPrepare **two actual linked worktrees**, each distinct from its canonical source repository,\nat the contract's full baseline commit. No auto commits/worktree creation. Launch uses explicit\ncanonical `OPENCODE_CONFIG`, checks matching repo-local agent/model/40 steps, and sets the final\nenvironment overlay to bind requested role/model/steps. Other inherited config overrides are\ncleared. `opencode models` must list the exact requested model even for dry runs.\n\n```sh\npython3 tools/run_agent.py --state-root /home/alex/sots-re --role implementer --actor worker-one --contract slice-one --engine-worktree /home/alex/worktrees/slice-one-engine --re-worktree /home/alex/worktrees/slice-one-re --cwd engine --dry-run\n```\n\nRemove `--dry-run` to execute. Normal worker launch requires a valid durable checkpoint, matching\nowner/role/status, no open surprises, baseline HEADs and canonical Git common-directory identity.\nRecovery checks checkpoint identity/basis and artifact hashes regardless of age, rechecks any\nsource-bound evidence, and validates paired Git worktree/baseline identity. Missing ordinary-worker\nstate still blocks. Bootstrap lead/architecture-review can start without a checkpoint; they still\nneed paired worktrees. Astra lead/resolver may launch a blocked contract with open surprises and\nwithout a worker checkpoint in **resolution-only** scope: read evidence and write decisions/state,\nno implementation. Its prompt and permission overlay carry that limit, and worktree source changes\nfail completion. Ordinary affected workers stay blocked. Other Astra architecture actors receive\nexplicit architecture authority within their owned scope. Each run is a fresh\n`opencode run --format json --model ... --agent ...`; no resume/continue option is used. The prompt\nsupplies the run ID to use as checkpoint `--session`; actual OpenCode session IDs are captured\nseparately when emitted. On exit, a checkpoint after start matching actor/role/model/run ID is\nmandatory or the run is marked incomplete. Completion additionally requires a zero exit, no\n`type:error`, a successful `step_finish` with `part.reason: \"stop\"`, one nonempty actual session ID,\nand consistent explicitly emitted model IDs. Text/tool-call/length events alone cannot complete a\nrun. Missing model emission is recorded `observed_model_status: \"unavailable\"`, never invented.\n\nThe runner checks the exact Git baseline again under reservation lock, rejects intervening contract\nchanges, and checks canonical model/prompt/config files and effective configuration for drift at\ncompletion. Expanded role prompt/model/steps are frozen in the last-layer environment overlay.\n`opencode debug config` runs in the actual launch cwd with the actual environment before execution\nand again at completion. Permissions explicitly allow read/search, ordinary worker shell commands,\nand external-directory access to the assigned paired trees plus canonical RE; role-specific edit\ndenies survive. Task delegation and interactive questions are denied. No `--auto` is required.\nNoninteractive command/environment tests and a live loader check cover this overlay; an actual\nnormal worker launch smoke is a separate lead integration check. Permissions and before/after\nchecks are operational guards, not a sandbox or continuous filesystem audit.\nCompaction is a backstop; no token threshold or machine-enforced 20-tool-call claim.\n\n## Local verification\n\n```sh\npython3 -m unittest discover -s verify/campaign -p 'test_*.py' -v\npython3 tools/campaign.py --state-root /home/alex/sots-re validate\n```\n\nTests create commits only in disposable fixture repositories, linked worktrees and fake OpenCode processes; they do\nnot launch agents or touch the lab. Historical rollout artifacts retain the scope and source identity\nof their runs; consult the accepted contract and current evidence, not an old handoff's status prose.","lineStart":1,"lineEnd":223,"totalLines":223,"truncated":false}},"title":"campaign/README.md","time":{"start":1789013806398,"end":1789013806410}},"metadata":{"openai":{"itemId":"fc_0c3138e4899964b5016aa22f2d9fb887d1b103edc410df8f40"}},"id":"prt_089884afb001uw2Or8BWSmKe25","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_0898840a80014Y5hMhgvp4aXMV"}} +{"type":"step_finish","timestamp":1789013806506,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_089884da500178C8SOGxMllHp7","reason":"tool-calls","snapshot":"a400e7a2091dd65e511554904b1784f0c57de86a","messageID":"msg_0898840a80014Y5hMhgvp4aXMV","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":5823,"input":5794,"output":29,"reasoning":0,"cache":{"write":0,"read":0}},"cost":0}} +{"type":"step_start","timestamp":1789013813370,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898868750010eFwPCH0OR3CvQ","messageID":"msg_089884dd9001lEvZMi7udGde1J","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"e8be67876b87e8aa1b1765b0bf2f11f6fde62bd8","type":"step-start"}} +{"type":"tool_use","timestamp":1789013813495,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_66cqNO5eeNExqVPJVPP4Dn2L","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/AGENTS.md"},"output":"/home/alex/sots-re/AGENTS.md\nfile\n\n1: # SOTS campaign instructions\n2: \n3: This repository is the state authority for the SOTS reconstruction and its Windows lab.\n4: Start with `campaign/README.md`, your contract, its latest checkpoint, and open surprises.\n5: Current policy: `guides/multi-agent-workflow.md`. Engine architecture: `sots-engine/docs/architecture.md`.\n6: Historical findings are evidence, not current execution instructions or accepted status.\n7: \n8: ## Authority and models\n9: \n10: - The normal lead/RE/implementation/verification/lab loop runs on **GPT-5.6 Sol\n11: (`openai/gpt-5.6-sol`)**. Reserve **GPT-6 Astra (`openai/gpt-6-astra`)** for resolving\n12: falsified assumptions, conflicting evidence, unexpected instrument effects, or changed scope.\n13: - `campaign/models.json` is the role/model registry. Launch with `tools/run_agent.py` and an\n14: explicit role, contract, state root, and paired worktrees. Never silently downgrade or fall back.\n15: - Ordinary implementation/test failures inside the contract may be fixed by its worker.\n16: Falsified assumptions, conflicting evidence, unexpected instrument effects, or changed scope\n17: require a recorded surprise and an Astra resolution before affected work continues.\n18: - No worker subdelegation. The lead assigns parallelism; max two implementation slices after\n19: the pilot. Independent workload preparation is scheduled against explicit resource leases.\n20: \n21: ## Durable state and context\n22: \n23: Checkpoint in the canonical RE state root every **20 tool calls or 15 minutes**, whichever is\n24: earlier, and before an experiment, compaction, handoff, or stop. Include model/session, exact\n25: source identities, evidence paths, decisions versus observations, tests, blockers, and ONE exact\n26: next action. Do not store state only in a chat summary or `/tmp`.\n27: The runner uses bounded 40-step quanta. After checkpointing, stop and restart from the repository;\n28: automatic compaction is a backstop, not proof that a checkpoint was written. On recovery read the\n29: contract/checkpoint, verify worktree and resource identities, then continue. Missing state means\n30: blocked, not permission to reconstruct progress from memory.\n31: \n32: ## Ownership\n33: \n34: Use distinct engine and RE worktrees per lane, baseline-pinned. Canonical runtime state is shared\n35: only through the campaign tools. One integrator writes current evidence pointers and projections.\n36: Never stage someone else's changes. No automatic commit, push, pull, or reset. Commands requiring\n37: these actions need explicit user authorization. Source edits use apply_patch.\n38: VM, shared build-host, and Ghidra mutation require leases. A stale lease is not automatically free.\n39: Record preconditions, side effects, cleanup and access verification for any lab operation.\n40: Rollout bootstrap file-ownership exception: `campaign/rollout/architecture-decision.md` only.\n41: \n42: ## Evidence\n43: \n44: No generic `verified` promotion. Separate understanding, implementation, original dependencies,\n45: and validation scope. A count is insufficient without distinct states, branch exposures, and\n46: positive execution evidence. Include all writes, container elements, allocations, IDs, events,\n47: RNG draws, and runtime-only inputs. Original-assisted execution is not independent replacement.\n48: Synthetic boundary tests and original-game differential tests are complementary. Missing required\n49: inputs, zero execution, incomplete coverage, unexpected skips, stale binaries or unbound source\n50: identity fail acceptance. One independent verifier must reproduce the package; integrated-tree\n51: evidence is required for acceptance. Reports are measurements until those gates pass.\n52: \n53: Never commit owner-supplied binaries/assets or secrets. Engine facts cross only documented\n54: generated channels. Never paste disassembly/decompiler output into the engine repository.\n\n(End of file - total 54 lines)\n","metadata":{"preview":"# SOTS campaign instructions\n\nThis repository is the state authority for the SOTS reconstruction and its Windows lab.\nStart with `campaign/README.md`, your contract, its latest checkpoint, and open surprises.\nCurrent policy: `guides/multi-agent-workflow.md`. Engine architecture: `sots-engine/docs/architecture.md`.\nHistorical findings are evidence, not current execution instructions or accepted status.\n\n## Authority and models\n\n- The normal lead/RE/implementation/verification/lab loop runs on **GPT-5.6 Sol\n (`openai/gpt-5.6-sol`)**. Reserve **GPT-6 Astra (`openai/gpt-6-astra`)** for resolving\n falsified assumptions, conflicting evidence, unexpected instrument effects, or changed scope.\n- `campaign/models.json` is the role/model registry. Launch with `tools/run_agent.py` and an\n explicit role, contract, state root, and paired worktrees. Never silently downgrade or fall back.\n- Ordinary implementation/test failures inside the contract may be fixed by its worker.\n Falsified assumptions, conflicting evidence, unexpected instrument effects, or changed scope\n require a recorded surprise and an Astra resolution before affected work continues.\n- No worker subdelegation. The lead assigns parallelism; max two implementation slices after\n the pilot. Independent workload preparation is scheduled against explicit resource leases.\n","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/AGENTS.md","text":"# SOTS campaign instructions\n\nThis repository is the state authority for the SOTS reconstruction and its Windows lab.\nStart with `campaign/README.md`, your contract, its latest checkpoint, and open surprises.\nCurrent policy: `guides/multi-agent-workflow.md`. Engine architecture: `sots-engine/docs/architecture.md`.\nHistorical findings are evidence, not current execution instructions or accepted status.\n\n## Authority and models\n\n- The normal lead/RE/implementation/verification/lab loop runs on **GPT-5.6 Sol\n (`openai/gpt-5.6-sol`)**. Reserve **GPT-6 Astra (`openai/gpt-6-astra`)** for resolving\n falsified assumptions, conflicting evidence, unexpected instrument effects, or changed scope.\n- `campaign/models.json` is the role/model registry. Launch with `tools/run_agent.py` and an\n explicit role, contract, state root, and paired worktrees. Never silently downgrade or fall back.\n- Ordinary implementation/test failures inside the contract may be fixed by its worker.\n Falsified assumptions, conflicting evidence, unexpected instrument effects, or changed scope\n require a recorded surprise and an Astra resolution before affected work continues.\n- No worker subdelegation. The lead assigns parallelism; max two implementation slices after\n the pilot. Independent workload preparation is scheduled against explicit resource leases.\n\n## Durable state and context\n\nCheckpoint in the canonical RE state root every **20 tool calls or 15 minutes**, whichever is\nearlier, and before an experiment, compaction, handoff, or stop. Include model/session, exact\nsource identities, evidence paths, decisions versus observations, tests, blockers, and ONE exact\nnext action. Do not store state only in a chat summary or `/tmp`.\nThe runner uses bounded 40-step quanta. After checkpointing, stop and restart from the repository;\nautomatic compaction is a backstop, not proof that a checkpoint was written. On recovery read the\ncontract/checkpoint, verify worktree and resource identities, then continue. Missing state means\nblocked, not permission to reconstruct progress from memory.\n\n## Ownership\n\nUse distinct engine and RE worktrees per lane, baseline-pinned. Canonical runtime state is shared\nonly through the campaign tools. One integrator writes current evidence pointers and projections.\nNever stage someone else's changes. No automatic commit, push, pull, or reset. Commands requiring\nthese actions need explicit user authorization. Source edits use apply_patch.\nVM, shared build-host, and Ghidra mutation require leases. A stale lease is not automatically free.\nRecord preconditions, side effects, cleanup and access verification for any lab operation.\nRollout bootstrap file-ownership exception: `campaign/rollout/architecture-decision.md` only.\n\n## Evidence\n\nNo generic `verified` promotion. Separate understanding, implementation, original dependencies,\nand validation scope. A count is insufficient without distinct states, branch exposures, and\npositive execution evidence. Include all writes, container elements, allocations, IDs, events,\nRNG draws, and runtime-only inputs. Original-assisted execution is not independent replacement.\nSynthetic boundary tests and original-game differential tests are complementary. Missing required\ninputs, zero execution, incomplete coverage, unexpected skips, stale binaries or unbound source\nidentity fail acceptance. One independent verifier must reproduce the package; integrated-tree\nevidence is required for acceptance. Reports are measurements until those gates pass.\n\nNever commit owner-supplied binaries/assets or secrets. Engine facts cross only documented\ngenerated channels. Never paste disassembly/decompiler output into the engine repository.","lineStart":1,"lineEnd":54,"totalLines":54,"truncated":false}},"title":"AGENTS.md","time":{"start":1789013813431,"end":1789013813442}},"metadata":{"openai":{"itemId":"fc_01cb4e171217cf1d016aa22f35404487d19c0c68a420e56684"}},"id":"prt_0898868b20014lORLP08ZfhyCe","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_089884dd9001lEvZMi7udGde1J"}} +{"type":"tool_use","timestamp":1789013813496,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_sAzHRy90ZxLEYpbSipG3rO8d","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/contracts/research-live-record-bridge.json"},"output":"/home/alex/sots-re/campaign/contracts/research-live-record-bridge.json\nfile\n\n1: {\n2: \"acceptance\": [\n3: {\n4: \"axis\": \"planning\",\n5: \"criterion\": \"Before ready, publish exact bridge-only source/test ownership, callable entrypoints and calling conventions, generated-address provenance, a bridge-only invocation route, VM/build resources, executable acceptance commands and immutable source/binary/fixture manifests. The route must not call or wire research replacement.\",\n6: \"id\": \"readiness\"\n7: },\n8: {\n9: \"axis\": \"understanding\",\n10: \"criterion\": \"Reconcile accepted binary evidence with generated and pure-model facts, including whether EvDsc participates in duplicate equality and whether the callable ObservedTech copy operation begins at 0x0079a150 or an interior site. Every exposed constructor/copy/append/destructor/new/delete operation has an exact ABI and ownership contract.\",\n11: \"id\": \"abi-reconciliation\"\n12: },\n13: {\n14: \"axis\": \"implementation\",\n15: \"criterion\": \"An isolated bridge constructs, copies, appends, updates and destroys complete live-layout ObservedTech, TurnEvents and PlayerEvent values using compatible original-runtime allocation services. It never copies raw owning headers and never calls original RecordObservedTech, EventStorage::PostEvent or any research completion root.\",\n16: \"id\": \"bridge-operations\"\n17: },\n18: {\n19: \"axis\": \"validation\",\n20: \"criterion\": \"Host tests and a fresh leased disposable-VM run positively execute empty, spare and full capacity; short and long strings; repeated observed names; exact duplicate and description-only-different events; normal destruction; and one contained recorded failure path. Preserve per-case operation/allocation/destruction counts and complete resulting records.\",\n21: \"id\": \"runtime-matrix\"\n22: },\n23: {\n24: \"axis\": \"validation\",\n25: \"criterion\": \"Executable negative controls reject raw string/header transfer, wrong callable entry or convention, mismatched allocator family, missing cleanup, double free, incomplete record fields, forbidden original decision-root calls, zero execution, missing artifacts and source/binary/fixture drift.\",\n26: \"id\": \"negative-controls\"\n27: },\n28: {\n29: \"axis\": \"validation\",\n30: \"criterion\": \"A different verifier session reproduces the source/binary/fixture-bound package and at least one meaningful negative control on an integrated tree. Author-only or static-only evidence cannot accept live allocator safety.\",\n31: \"id\": \"independent-reproduction\"\n32: }\n33: ],\n34: \"baseline\": {\n35: \"engine\": {\n36: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n37: \"path\": \"/home/alex/sots-engine\"\n38: },\n39: \"re\": {\n40: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n41: \"path\": \"/home/alex/sots-re\"\n42: }\n43: },\n44: \"checkpoint\": \"campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json\",\n45: \"dependencies\": [\n46: \"research-completion-abi\"\n47: ],\n48: \"effects\": [\n49: \"Complete 0x2c ObservedTech object fields, owned name string, existing-name update semantics, vector first/last/end and element lifetime across no-growth and growth paths.\",\n50: \"Complete 0x74 PlayerEvent fields and three independently owned strings, plus complete 0x18 TurnEvents bucket and nested vector lifetime across no-growth and growth paths.\",\n51: \"Event ID/order, exact duplicate behavior, description-only-different behavior and stale-bucket pruning only as needed to exercise the bridge fixture; no research callback or player-state effects.\",\n52: \"Allocation, copy, destruction and failure-path counters sufficient to detect leaks, mismatched frees, partial construction and double destruction.\"\n53: ],\n54: \"evidence\": [],\n55: \"id\": \"research-live-record-bridge\",\n56: \"inputs\": [\n57: \"Accepted research-completion-abi evidence and handoff, including binary fingerprint and independently reproduced static ownership windows.\",\n58: \"Original binary /home/alex/sots-re/dumps/sots.exe sha256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841; owner-supplied and never committed.\",\n59: \"Source-identical paired worktrees /tmp/opencode/sots-final-research-engine and /tmp/opencode/sots-final-research-re at the contract baselines; exact dirty source-content manifests are required before implementation evidence.\",\n60: \"Disposable VM144 is the preferred runtime fixture guest; verify its current MAC/IP, session/process state and housekeeping immediately before use, then acquire campaign/runtime/leases/vm144.json. VM140 is excluded from this experiment.\",\n61: \"Required but missing before ready: bridge-only invocation fixture, generated callable-address package, 32-bit shim/toolchain manifest, failure-containment design, executable acceptance checker and per-case expected records.\"\n62: ],\n63: \"original_dependencies\": [\n64: \"Original MSVCR100 scalar new/delete and narrowly accepted constructor/copy/append/destructor operations are permitted only as declared, counted ABI services.\",\n65: \"Original RecordObservedTech, EventStorage::PostEvent, ProcessResearch, SetResearched, OnTechResearched and localized string lookup are forbidden in the bridge fixture.\",\n66: \"The original game process supplies the MSVCR100 runtime and object address space for live tests; this contract does not claim standalone allocator or game-decision replacement.\"\n67: ],\n68: \"owner\": {\n69: \"name\": \"live-record bridge architect\",\n70: \"role\": \"architecture-review\"\n71: },\n72: \"predictions\": [\n73: \"ObservedTech no-growth append deep-copies one name; growth relocates every existing 0x2c element and destroys the old range without cross-runtime frees.\",\n74: \"PlayerEvent append deep-copies EvDsc, EvMsg and EvImg independently; full-capacity growth preserves all scalar/default fields and destroys old strings exactly once.\",\n75: \"Repeated observed name updates the existing record without vector growth; exact duplicate event does not append; description-only-different event does append if the accepted EvDsc equality result is correct.\",\n76: \"A contained allocation-failure fixture reports failure without an accepted partial record, leaked owned string, mismatched free or exception crossing into an unsafe ABI boundary.\"\n77: ],\n78: \"scope\": [\n79: \"Recover and implement only the live ABI bridge for ObservedTech, TurnEvents and PlayerEvent construction/copy/append/update/destruction plus isolated fixtures and acceptance tooling.\",\n80: \"First quantum is RE and architecture: reconcile callable boundaries and duplicate semantics, specify failure containment and name exact owned files. No engine implementation or VM mutation until the contract is ready and the operator holds required leases.\",\n81: \"Runtime validation uses a bridge-only fixture on a disposable clone. It must not wire src/shim/hooks/research.cpp or src/shim/main.cpp and must not execute a research completion workload.\",\n82: \"Static ABI acceptance is a dependency, not evidence of live safety. Acceptance remains scoped to bridge operations and does not promote research-replacement.\"\n83: ],\n84: \"status\": \"blocked\",\n85: \"stop_conditions\": [\n86: \"Remain proposed while callable ABI, exact ownership, fixture route, manifests, failure containment or executable acceptance is unresolved.\",\n87: \"Stop affected work and record a surprise on contradictory fresh binary/runtime evidence, binary/source drift, allocator mismatch, exception crossing, unexpected game-decision-root execution, leak/double-free, guest interference or access change.\",\n88: \"No Ghidra mutation or VM/build-host mutation without explicit assignment and the corresponding canonical lease; never touch VM140 under this contract.\",\n89: \"No research replacement wiring, delegation, staging, commit, push or destructive canonical worktree operation. Checkpoint every 20 calls/15 minutes and before experiment, handoff or stop.\"\n90: ],\n91: \"title\": \"Live ObservedTech and event record ABI bridge\"\n92: }\n\n(End of file - total 92 lines)\n","metadata":{"preview":"{\n \"acceptance\": [\n {\n \"axis\": \"planning\",\n \"criterion\": \"Before ready, publish exact bridge-only source/test ownership, callable entrypoints and calling conventions, generated-address provenance, a bridge-only invocation route, VM/build resources, executable acceptance commands and immutable source/binary/fixture manifests. The route must not call or wire research replacement.\",\n \"id\": \"readiness\"\n },\n {\n \"axis\": \"understanding\",\n \"criterion\": \"Reconcile accepted binary evidence with generated and pure-model facts, including whether EvDsc participates in duplicate equality and whether the callable ObservedTech copy operation begins at 0x0079a150 or an interior site. Every exposed constructor/copy/append/destructor/new/delete operation has an exact ABI and ownership contract.\",\n \"id\": \"abi-reconciliation\"\n },\n {\n \"axis\": \"implementation\",\n \"criterion\": \"An isolated bridge constructs, copies, appends, updates and destroys complete live-layout ObservedTech, TurnEvents and PlayerEvent values using compatible original-runtime allocation services. It never copies raw owning headers and never calls original RecordObservedTech, EventStorage::PostEvent or any research completion root.\",\n \"id\": \"bridge-operations\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Host tests and a fresh leased disposable-VM run positively execute empty, spare and full capacity; short and long strings; repeated observed names; exact duplicate and description-only-different events; normal destruction; and one contained recorded failure path. Preserve per-case operation/allocation/destruction counts and complete resulting records.\",","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/contracts/research-live-record-bridge.json","text":"{\n \"acceptance\": [\n {\n \"axis\": \"planning\",\n \"criterion\": \"Before ready, publish exact bridge-only source/test ownership, callable entrypoints and calling conventions, generated-address provenance, a bridge-only invocation route, VM/build resources, executable acceptance commands and immutable source/binary/fixture manifests. The route must not call or wire research replacement.\",\n \"id\": \"readiness\"\n },\n {\n \"axis\": \"understanding\",\n \"criterion\": \"Reconcile accepted binary evidence with generated and pure-model facts, including whether EvDsc participates in duplicate equality and whether the callable ObservedTech copy operation begins at 0x0079a150 or an interior site. Every exposed constructor/copy/append/destructor/new/delete operation has an exact ABI and ownership contract.\",\n \"id\": \"abi-reconciliation\"\n },\n {\n \"axis\": \"implementation\",\n \"criterion\": \"An isolated bridge constructs, copies, appends, updates and destroys complete live-layout ObservedTech, TurnEvents and PlayerEvent values using compatible original-runtime allocation services. It never copies raw owning headers and never calls original RecordObservedTech, EventStorage::PostEvent or any research completion root.\",\n \"id\": \"bridge-operations\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Host tests and a fresh leased disposable-VM run positively execute empty, spare and full capacity; short and long strings; repeated observed names; exact duplicate and description-only-different events; normal destruction; and one contained recorded failure path. Preserve per-case operation/allocation/destruction counts and complete resulting records.\",\n \"id\": \"runtime-matrix\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Executable negative controls reject raw string/header transfer, wrong callable entry or convention, mismatched allocator family, missing cleanup, double free, incomplete record fields, forbidden original decision-root calls, zero execution, missing artifacts and source/binary/fixture drift.\",\n \"id\": \"negative-controls\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"A different verifier session reproduces the source/binary/fixture-bound package and at least one meaningful negative control on an integrated tree. Author-only or static-only evidence cannot accept live allocator safety.\",\n \"id\": \"independent-reproduction\"\n }\n ],\n \"baseline\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"checkpoint\": \"campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json\",\n \"dependencies\": [\n \"research-completion-abi\"\n ],\n \"effects\": [\n \"Complete 0x2c ObservedTech object fields, owned name string, existing-name update semantics, vector first/last/end and element lifetime across no-growth and growth paths.\",\n \"Complete 0x74 PlayerEvent fields and three independently owned strings, plus complete 0x18 TurnEvents bucket and nested vector lifetime across no-growth and growth paths.\",\n \"Event ID/order, exact duplicate behavior, description-only-different behavior and stale-bucket pruning only as needed to exercise the bridge fixture; no research callback or player-state effects.\",\n \"Allocation, copy, destruction and failure-path counters sufficient to detect leaks, mismatched frees, partial construction and double destruction.\"\n ],\n \"evidence\": [],\n \"id\": \"research-live-record-bridge\",\n \"inputs\": [\n \"Accepted research-completion-abi evidence and handoff, including binary fingerprint and independently reproduced static ownership windows.\",\n \"Original binary /home/alex/sots-re/dumps/sots.exe sha256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841; owner-supplied and never committed.\",\n \"Source-identical paired worktrees /tmp/opencode/sots-final-research-engine and /tmp/opencode/sots-final-research-re at the contract baselines; exact dirty source-content manifests are required before implementation evidence.\",\n \"Disposable VM144 is the preferred runtime fixture guest; verify its current MAC/IP, session/process state and housekeeping immediately before use, then acquire campaign/runtime/leases/vm144.json. VM140 is excluded from this experiment.\",\n \"Required but missing before ready: bridge-only invocation fixture, generated callable-address package, 32-bit shim/toolchain manifest, failure-containment design, executable acceptance checker and per-case expected records.\"\n ],\n \"original_dependencies\": [\n \"Original MSVCR100 scalar new/delete and narrowly accepted constructor/copy/append/destructor operations are permitted only as declared, counted ABI services.\",\n \"Original RecordObservedTech, EventStorage::PostEvent, ProcessResearch, SetResearched, OnTechResearched and localized string lookup are forbidden in the bridge fixture.\",\n \"The original game process supplies the MSVCR100 runtime and object address space for live tests; this contract does not claim standalone allocator or game-decision replacement.\"\n ],\n \"owner\": {\n \"name\": \"live-record bridge architect\",\n \"role\": \"architecture-review\"\n },\n \"predictions\": [\n \"ObservedTech no-growth append deep-copies one name; growth relocates every existing 0x2c element and destroys the old range without cross-runtime frees.\",\n \"PlayerEvent append deep-copies EvDsc, EvMsg and EvImg independently; full-capacity growth preserves all scalar/default fields and destroys old strings exactly once.\",\n \"Repeated observed name updates the existing record without vector growth; exact duplicate event does not append; description-only-different event does append if the accepted EvDsc equality result is correct.\",\n \"A contained allocation-failure fixture reports failure without an accepted partial record, leaked owned string, mismatched free or exception crossing into an unsafe ABI boundary.\"\n ],\n \"scope\": [\n \"Recover and implement only the live ABI bridge for ObservedTech, TurnEvents and PlayerEvent construction/copy/append/update/destruction plus isolated fixtures and acceptance tooling.\",\n \"First quantum is RE and architecture: reconcile callable boundaries and duplicate semantics, specify failure containment and name exact owned files. No engine implementation or VM mutation until the contract is ready and the operator holds required leases.\",\n \"Runtime validation uses a bridge-only fixture on a disposable clone. It must not wire src/shim/hooks/research.cpp or src/shim/main.cpp and must not execute a research completion workload.\",\n \"Static ABI acceptance is a dependency, not evidence of live safety. Acceptance remains scoped to bridge operations and does not promote research-replacement.\"\n ],\n \"status\": \"blocked\",\n \"stop_conditions\": [\n \"Remain proposed while callable ABI, exact ownership, fixture route, manifests, failure containment or executable acceptance is unresolved.\",\n \"Stop affected work and record a surprise on contradictory fresh binary/runtime evidence, binary/source drift, allocator mismatch, exception crossing, unexpected game-decision-root execution, leak/double-free, guest interference or access change.\",\n \"No Ghidra mutation or VM/build-host mutation without explicit assignment and the corresponding canonical lease; never touch VM140 under this contract.\",\n \"No research replacement wiring, delegation, staging, commit, push or destructive canonical worktree operation. Checkpoint every 20 calls/15 minutes and before experiment, handoff or stop.\"\n ],\n \"title\": \"Live ObservedTech and event record ABI bridge\"\n}","lineStart":1,"lineEnd":92,"totalLines":92,"truncated":false}},"title":"campaign/contracts/research-live-record-bridge.json","time":{"start":1789013813415,"end":1789013813487}},"metadata":{"openai":{"itemId":"fc_01cb4e171217cf1d016aa22f35401c87d1af227ecdaeb157e7"}},"id":"prt_089886878001wrNfvo1jSXxnMD","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_089884dd9001lEvZMi7udGde1J"}} +{"type":"tool_use","timestamp":1789013813496,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_poY8W7iZxmRzMACS5c7w0GFN","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json"},"output":"/home/alex/sots-re/campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json\nfile\n\n1: {\n2: \"actor\": \"live-record bridge architect\",\n3: \"artifacts\": [\n4: {\n5: \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\",\n6: \"sha256\": \"ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b\"\n7: },\n8: {\n9: \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\",\n10: \"sha256\": \"f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3\"\n11: },\n12: {\n13: \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\",\n14: \"sha256\": \"57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15\"\n15: },\n16: {\n17: \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt\",\n18: \"sha256\": \"eb887fbef7b4686530d2fc1c0caf2c2ee78c761aa3706cebcf3c146a22480b2e\"\n19: },\n20: {\n21: \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt\",\n22: \"sha256\": \"e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1\"\n23: },\n24: {\n25: \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt\",\n26: \"sha256\": \"3c38887e60d009ab904772b13be93ac1eedd9bee85024e37110160a625db3a83\"\n27: },\n28: {\n29: \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt\",\n30: \"sha256\": \"67777b4a5f658d4629a24770929979494739b6b3bcb0075fb8af17c782d080be\"\n31: },\n32: {\n33: \"path\": \"campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json\",\n34: \"sha256\": \"db60a0f8cb666707b422960873b905d4f8a449f7b288a612c8d48c604dc1d379\"\n35: }\n36: ],\n37: \"basis\": \"6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8\",\n38: \"contract\": \"research-live-record-bridge\",\n39: \"id\": \"3374a5a2a8d056e7b4dc261c\",\n40: \"model\": \"openai/gpt-5.6-sol\",\n41: \"next_action\": \"Launch one fresh bounded openai/gpt-6-astra resolver quantum for open surprise s-5a78d3a0a10c1f8545df8eb1, using this contract, canonical state root and the same paired worktrees, and execute the surprise probe before any TurnEvents architecture editing resumes.\",\n42: \"role\": \"architecture-review\",\n43: \"schema\": \"sots-checkpoint/1\",\n44: \"session\": \"run-472955e277202c411388c66b\",\n45: \"summary\": \"QUANTUM-END CHECKPOINT. OBSERVATIONS: requested model openai/gpt-5.6-sol was available and matched the role registry. Assigned paired identities remained engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23/common-dir /home/alex/sots-engine/.git/source digest ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and RE HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7/common-dir /home/alex/sots-re/.git/source digest 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Binary and objdump identities remained SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd. Read-only capture run-472955e277202c411388c66b produced nine zero-return, nonempty-stdout, empty-stderr windows for get/create, append, growth, nested copy/destruction, TurnEvents destruction/allocation/range copy and vtable. Manifest SHA256 is ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b. Fresh bytes show local TurnEvents at EBP-0x24 receives vptr and zero nested header but no EvTurn write at EBP-0x20 before append; append copies that indeterminate word, then get/create overwrites stored EvTurn with requested turn after temporary nested-vector cleanup. This contradicts the accepted dependency prose claiming a zero temporary turn. DECISIONS: recorded open surprise s-5a78d3a0a10c1f8545df8eb1, enumerated surviving/qualified/overturned claims there, and paused all affected TurnEvents architecture encoding. Contract is blocked pending Astra; no JSON/architecture interpretation was amended behind a caveat. TESTS: independent manifest hash/returncode/stdout/stderr validator passed for all 9 windows; campaign validate passed; campaign status exposes the open surprise and blocked state. RESOURCES/BLOCKERS: VM144 lease remained released and no VM, Ghidra, build host, game, allocator or engine operation ran. No delegation, commit, stage or push occurred. Sole blocker is Astra resol... (line truncated to 2000 chars)\n46: \"timestamp\": \"2026-09-10T04:15:45.749898+00:00\"\n47: }\n\n(End of file - total 47 lines)\n","metadata":{"preview":"{\n \"actor\": \"live-record bridge architect\",\n \"artifacts\": [\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\",\n \"sha256\": \"ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\",\n \"sha256\": \"f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\",\n \"sha256\": \"57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt\",\n \"sha256\": \"eb887fbef7b4686530d2fc1c0caf2c2ee78c761aa3706cebcf3c146a22480b2e\"\n },\n {","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json","text":"{\n \"actor\": \"live-record bridge architect\",\n \"artifacts\": [\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\",\n \"sha256\": \"ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\",\n \"sha256\": \"f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\",\n \"sha256\": \"57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt\",\n \"sha256\": \"eb887fbef7b4686530d2fc1c0caf2c2ee78c761aa3706cebcf3c146a22480b2e\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt\",\n \"sha256\": \"e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt\",\n \"sha256\": \"3c38887e60d009ab904772b13be93ac1eedd9bee85024e37110160a625db3a83\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt\",\n \"sha256\": \"67777b4a5f658d4629a24770929979494739b6b3bcb0075fb8af17c782d080be\"\n },\n {\n \"path\": \"campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json\",\n \"sha256\": \"db60a0f8cb666707b422960873b905d4f8a449f7b288a612c8d48c604dc1d379\"\n }\n ],\n \"basis\": \"6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"3374a5a2a8d056e7b4dc261c\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"next_action\": \"Launch one fresh bounded openai/gpt-6-astra resolver quantum for open surprise s-5a78d3a0a10c1f8545df8eb1, using this contract, canonical state root and the same paired worktrees, and execute the surprise probe before any TurnEvents architecture editing resumes.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-checkpoint/1\",\n \"session\": \"run-472955e277202c411388c66b\",\n \"summary\": \"QUANTUM-END CHECKPOINT. OBSERVATIONS: requested model openai/gpt-5.6-sol was available and matched the role registry. Assigned paired identities remained engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23/common-dir /home/alex/sots-engine/.git/source digest ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and RE HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7/common-dir /home/alex/sots-re/.git/source digest 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8. Binary and objdump identities remained SHA256 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd. Read-only capture run-472955e277202c411388c66b produced nine zero-return, nonempty-stdout, empty-stderr windows for get/create, append, growth, nested copy/destruction, TurnEvents destruction/allocation/range copy and vtable. Manifest SHA256 is ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b. Fresh bytes show local TurnEvents at EBP-0x24 receives vptr and zero nested header but no EvTurn write at EBP-0x20 before append; append copies that indeterminate word, then get/create overwrites stored EvTurn with requested turn after temporary nested-vector cleanup. This contradicts the accepted dependency prose claiming a zero temporary turn. DECISIONS: recorded open surprise s-5a78d3a0a10c1f8545df8eb1, enumerated surviving/qualified/overturned claims there, and paused all affected TurnEvents architecture encoding. Contract is blocked pending Astra; no JSON/architecture interpretation was amended behind a caveat. TESTS: independent manifest hash/returncode/stdout/stderr validator passed for all 9 windows; campaign validate passed; campaign status exposes the open surprise and blocked state. RESOURCES/BLOCKERS: VM144 lease remained released and no VM, Ghidra, build host, game, allocator or engine operation ran. No delegation, commit, stage or push occurred. Sole blocker is Astra resol... (line truncated to 2000 chars)\n \"timestamp\": \"2026-09-10T04:15:45.749898+00:00\"\n}","lineStart":1,"lineEnd":47,"totalLines":47,"truncated":false}},"title":"campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json","time":{"start":1789013813424,"end":1789013813492}},"metadata":{"openai":{"itemId":"fc_01cb4e171217cf1d016aa22f35403887d198db9b9d171701d5"}},"id":"prt_0898868aa001DglrbTkASYarex","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_089884dd9001lEvZMi7udGde1J"}} +{"type":"tool_use","timestamp":1789013813507,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"glob","callID":"call_DpGdD8fFd9Pttqii1uyI4QAY","state":{"status":"completed","input":{"pattern":"campaign/runtime/surprises/*.json"},"output":"/home/alex/sots-re/campaign/runtime/surprises/s-410e48d5ae6cc4da0a6ae649.json\n/home/alex/sots-re/campaign/runtime/surprises/s-abd1c3613c9922cc94c608d5.json\n/home/alex/sots-re/campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json\n/home/alex/sots-re/campaign/runtime/surprises/s-6d1fcc617a20ca2bcbffc0cc.json\n/home/alex/sots-re/campaign/runtime/surprises/s-5c58b6a921997731f5b5ae1f.json\n/home/alex/sots-re/campaign/runtime/surprises/s-d2c8ec81e980396f2306f8fe.json\n/home/alex/sots-re/campaign/runtime/surprises/s-4a7d66ebd7d8a8f3ec59f11d.json\n/home/alex/sots-re/campaign/runtime/surprises/s-4f71bf4a5df4e5fc992bb6b2.json\n/home/alex/sots-re/campaign/runtime/surprises/s-f1c41532e618c77d41538902.json\n/home/alex/sots-re/campaign/runtime/surprises/s-8996365dab2cd6dc0e17bb9f.json","metadata":{"count":10,"truncated":false},"title":"","time":{"start":1789013813453,"end":1789013813498}},"metadata":{"openai":{"itemId":"fc_01cb4e171217cf1d016aa22f35405887d19e1197fe2ed1a325"}},"id":"prt_0898868c9001fU5o4k2SNYAqMA","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_089884dd9001lEvZMi7udGde1J"}} +{"type":"tool_use","timestamp":1789013813512,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_x0DCvPHdno337onJW8amJdz8","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/guides/multi-agent-workflow.md"},"output":"/home/alex/sots-re/guides/multi-agent-workflow.md\nfile\n\n1: # Multi-agent operating architecture\n2: \n3: ## Product and milestone\n4: \n5: Reconstruct a behavior-equivalent engine consuming owner-supplied assets. The next product\n6: milestone is standalone replay given a captured command stream and complete declared runtime\n7: inputs. The first workflow pilot is the complete research write set. A passing host build is a\n8: component baseline, not a playable engine or independent replacement.\n9: \n10: ## Source of truth\n11: \n12: `campaign/contracts/` holds versioned tasks, `campaign/runtime/` holds checkpoints, sessions,\n13: leases and surprises, and evidence packages identify inputs, source and executable artifacts.\n14: `campaign/current.json` selects published evidence by path and digest. Board/dashboard are\n15: generated projections, never alternate writable authorities. Exact tool CLI/schema is documented\n16: in `campaign/README.md`. Historical findings retain their original experiment scope; they are\n17: not promoted by copying an old status into a new contract.\n18: \n19: ## Model authority\n20: \n21: | Responsibility | Model |\n22: |---|---|\n23: | Normal planning, architecture and integration loop | GPT-5.6 Sol |\n24: | Bounded RE analysis, implementation and independent verification | GPT-5.6 Sol |\n25: | Routine lab/workload operations | GPT-5.6 Sol |\n26: | Problem and surprise resolution | GPT-6 Astra |\n27: | Context compaction | GPT-5.5 |\n28: \n29: Exact provider IDs are in `campaign/models.json`. The lead escalates to Astra when a falsified\n30: assumption, conflict, instrument effect, or scope change blocks the loop. No fallback is automatic. Model names in editable JSON are\n31: provenance, not authentication: launcher events and independent review support the record.\n32: Permissions reduce accidental role drift; unrestricted local shell access is not a sandbox.\n33: \n34: ## Behavioral slice\n35: \n36: The lead specifies a bounded input domain, full observable write set, dependencies, acceptance\n37: workloads and stop conditions. The analyst recovers behavior; the verifier specifies discriminating\n38: tests before implementation; the implementer changes engine/adapters; the lab operator captures\n39: controls; the verifier reproduces; the integrator tests the combined source snapshot.\n40: \n41: Include transitive effects: allocations, IDs, container ELEMENTS, event text/records, RNG and\n42: nonserialized state. An address/function name is not a sufficient replacement boundary. If a\n43: neighbor function supplies required effects, extend the approved contract or expose it as an\n44: original dependency. Do not call the original and label the result independent.\n45: \n46: Lifecycle is `proposed → ready → implementing → verification → integration → accepted`, with\n47: blocked/revision states. Lifecycle is distinct from evidence strength. Acceptance is scoped to\n48: the manifest's exact procedure and workloads, never universal correctness.\n49: \n50: ## Independence\n51: \n52: Verifier and implementer are different executions. Verification starts with the contract, raw\n53: evidence and reproduction recipe, not just the author's conclusion. Require one meaningful\n54: challenge: held-out state, boundary, negative control, ablation, or independent state accounting.\n55: Both synthetic tests and original-game experiments matter. Repeat-call volume cannot replace\n56: branch and distinct-state coverage. Null effects and zero executions must be distinguishable.\n57: \n58: ## Sessions and recovery\n59: \n60: At most two implementation slices after a single-slice pilot. No nested worker delegation.\n61: Paired worktrees isolate source changes; unique build directories isolate artifacts. Canonical\n62: RE runtime state remains explicit even when a worker runs in `/tmp` worktrees.\n63: \n64: Checkpoint every 20 calls or 15min; also before experiments, compaction, handoff and stopping.\n65: Record source identities, exact changed paths, commands/results, artifacts and hashes, open\n66: surprises, held leases, requested/observed model, session identity and exact next action. Avoid\n67: large prose histories: raw logs belong in evidence; the checkpoint is a bounded resumption record.\n68: \n69: The launcher caps a quantum at 40 agent steps. A new quantum starts fresh using contract and\n70: checkpoint. Auto-compaction with an ample reserved window and four retained turns is enabled.\n71: This is a best-effort context backstop; regular durable checkpoints and fresh quanta provide the\n72: actual recovery discipline. Never claim a model compacted merely because a setting exists.\n73: \n74: ## Surprises\n75: \n76: On a falsified prediction, contradictory claim, unexplained regression, instrument interference,\n77: or newly necessary dependency: record the observation and evidence; block affected work. Astra\n78: first checks the instrument and source identity, then marks claims surviving/qualified/overturned,\n79: chooses a discriminating experiment, and records the revised plan. Unaffected contracted work\n80: may continue. Updating a paragraph without invalidating affected acceptance is insufficient.\n81: \n82: ## Lab ownership\n83: \n84: Acquire a canonical resource lease before VM, build-host or Ghidra mutation. An expired timestamp\n85: does not authorize stealing a lease. The lead reconciles stale ownership with actual processes.\n86: Use one guest at a time for maintenance, capture before/after inventory, preserve access and\n87: runtime dependencies, and verify unattended console login plus authenticated administration.\n88: Reboots require a free guest and a recorded recovery path. Runtime/Ghidra changes are experiments\n89: with provenance, not undocumented preparatory steps.\n90: \n91: ## Gate and publication\n92: \n93: Run the local gate with explicit engine, corpus, new output directory and profile. It snapshots\n94: source, uses fresh builds, records manifests and runs the expected test inventory once. Host\n95: profile allows a named list of unavailable asset/trace tests and publishes them as limitations.\n96: Full acceptance requires the full profile and the slice-specific original oracle; no blanket\n97: waiver converts a host pass to fidelity. Standalone measurement may diverge; acceptance may not.\n98: \n99: The integrator alone selects current results after verifying their hashes and source binding.\n100: No percentages of LOC, mapped rows or closed leaves purport to measure engine completeness.\n101: Run failure and missing evidence are visible states. Old results remain historical, not current.\n\n(End of file - total 101 lines)\n","metadata":{"preview":"# Multi-agent operating architecture\n\n## Product and milestone\n\nReconstruct a behavior-equivalent engine consuming owner-supplied assets. The next product\nmilestone is standalone replay given a captured command stream and complete declared runtime\ninputs. The first workflow pilot is the complete research write set. A passing host build is a\ncomponent baseline, not a playable engine or independent replacement.\n\n## Source of truth\n\n`campaign/contracts/` holds versioned tasks, `campaign/runtime/` holds checkpoints, sessions,\nleases and surprises, and evidence packages identify inputs, source and executable artifacts.\n`campaign/current.json` selects published evidence by path and digest. Board/dashboard are\ngenerated projections, never alternate writable authorities. Exact tool CLI/schema is documented\nin `campaign/README.md`. Historical findings retain their original experiment scope; they are\nnot promoted by copying an old status into a new contract.\n\n## Model authority\n","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/guides/multi-agent-workflow.md","text":"# Multi-agent operating architecture\n\n## Product and milestone\n\nReconstruct a behavior-equivalent engine consuming owner-supplied assets. The next product\nmilestone is standalone replay given a captured command stream and complete declared runtime\ninputs. The first workflow pilot is the complete research write set. A passing host build is a\ncomponent baseline, not a playable engine or independent replacement.\n\n## Source of truth\n\n`campaign/contracts/` holds versioned tasks, `campaign/runtime/` holds checkpoints, sessions,\nleases and surprises, and evidence packages identify inputs, source and executable artifacts.\n`campaign/current.json` selects published evidence by path and digest. Board/dashboard are\ngenerated projections, never alternate writable authorities. Exact tool CLI/schema is documented\nin `campaign/README.md`. Historical findings retain their original experiment scope; they are\nnot promoted by copying an old status into a new contract.\n\n## Model authority\n\n| Responsibility | Model |\n|---|---|\n| Normal planning, architecture and integration loop | GPT-5.6 Sol |\n| Bounded RE analysis, implementation and independent verification | GPT-5.6 Sol |\n| Routine lab/workload operations | GPT-5.6 Sol |\n| Problem and surprise resolution | GPT-6 Astra |\n| Context compaction | GPT-5.5 |\n\nExact provider IDs are in `campaign/models.json`. The lead escalates to Astra when a falsified\nassumption, conflict, instrument effect, or scope change blocks the loop. No fallback is automatic. Model names in editable JSON are\nprovenance, not authentication: launcher events and independent review support the record.\nPermissions reduce accidental role drift; unrestricted local shell access is not a sandbox.\n\n## Behavioral slice\n\nThe lead specifies a bounded input domain, full observable write set, dependencies, acceptance\nworkloads and stop conditions. The analyst recovers behavior; the verifier specifies discriminating\ntests before implementation; the implementer changes engine/adapters; the lab operator captures\ncontrols; the verifier reproduces; the integrator tests the combined source snapshot.\n\nInclude transitive effects: allocations, IDs, container ELEMENTS, event text/records, RNG and\nnonserialized state. An address/function name is not a sufficient replacement boundary. If a\nneighbor function supplies required effects, extend the approved contract or expose it as an\noriginal dependency. Do not call the original and label the result independent.\n\nLifecycle is `proposed → ready → implementing → verification → integration → accepted`, with\nblocked/revision states. Lifecycle is distinct from evidence strength. Acceptance is scoped to\nthe manifest's exact procedure and workloads, never universal correctness.\n\n## Independence\n\nVerifier and implementer are different executions. Verification starts with the contract, raw\nevidence and reproduction recipe, not just the author's conclusion. Require one meaningful\nchallenge: held-out state, boundary, negative control, ablation, or independent state accounting.\nBoth synthetic tests and original-game experiments matter. Repeat-call volume cannot replace\nbranch and distinct-state coverage. Null effects and zero executions must be distinguishable.\n\n## Sessions and recovery\n\nAt most two implementation slices after a single-slice pilot. No nested worker delegation.\nPaired worktrees isolate source changes; unique build directories isolate artifacts. Canonical\nRE runtime state remains explicit even when a worker runs in `/tmp` worktrees.\n\nCheckpoint every 20 calls or 15min; also before experiments, compaction, handoff and stopping.\nRecord source identities, exact changed paths, commands/results, artifacts and hashes, open\nsurprises, held leases, requested/observed model, session identity and exact next action. Avoid\nlarge prose histories: raw logs belong in evidence; the checkpoint is a bounded resumption record.\n\nThe launcher caps a quantum at 40 agent steps. A new quantum starts fresh using contract and\ncheckpoint. Auto-compaction with an ample reserved window and four retained turns is enabled.\nThis is a best-effort context backstop; regular durable checkpoints and fresh quanta provide the\nactual recovery discipline. Never claim a model compacted merely because a setting exists.\n\n## Surprises\n\nOn a falsified prediction, contradictory claim, unexplained regression, instrument interference,\nor newly necessary dependency: record the observation and evidence; block affected work. Astra\nfirst checks the instrument and source identity, then marks claims surviving/qualified/overturned,\nchooses a discriminating experiment, and records the revised plan. Unaffected contracted work\nmay continue. Updating a paragraph without invalidating affected acceptance is insufficient.\n\n## Lab ownership\n\nAcquire a canonical resource lease before VM, build-host or Ghidra mutation. An expired timestamp\ndoes not authorize stealing a lease. The lead reconciles stale ownership with actual processes.\nUse one guest at a time for maintenance, capture before/after inventory, preserve access and\nruntime dependencies, and verify unattended console login plus authenticated administration.\nReboots require a free guest and a recorded recovery path. Runtime/Ghidra changes are experiments\nwith provenance, not undocumented preparatory steps.\n\n## Gate and publication\n\nRun the local gate with explicit engine, corpus, new output directory and profile. It snapshots\nsource, uses fresh builds, records manifests and runs the expected test inventory once. Host\nprofile allows a named list of unavailable asset/trace tests and publishes them as limitations.\nFull acceptance requires the full profile and the slice-specific original oracle; no blanket\nwaiver converts a host pass to fidelity. Standalone measurement may diverge; acceptance may not.\n\nThe integrator alone selects current results after verifying their hashes and source binding.\nNo percentages of LOC, mapped rows or closed leaves purport to measure engine completeness.\nRun failure and missing evidence are visible states. Old results remain historical, not current.","lineStart":1,"lineEnd":101,"totalLines":101,"truncated":false}},"title":"guides/multi-agent-workflow.md","time":{"start":1789013813446,"end":1789013813509}},"metadata":{"openai":{"itemId":"fc_01cb4e171217cf1d016aa22f35405087d1b50d5517fbc0240b"}},"id":"prt_0898868b8001E1uVqJ052uki5a","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_089884dd9001lEvZMi7udGde1J"}} +{"type":"step_finish","timestamp":1789013813597,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898869590015jYQx0tHY3slV3","reason":"tool-calls","snapshot":"c06785dc5388b320a65af246cfeff767c29655db","messageID":"msg_089884dd9001lEvZMi7udGde1J","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":9945,"input":4141,"output":172,"reasoning":0,"cache":{"write":0,"read":5632}},"cost":0}} +{"type":"step_start","timestamp":1789013815398,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898870620014jG2bc9nzRdy4t","messageID":"msg_08988698c001qEMT7i73D1mysj","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"6a30df9e036c9eda139730eeb688640ec9bb1bc5","type":"step-start"}} +{"type":"tool_use","timestamp":1789013826371,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_ezi501MzjQTB6ucarhGpPedB","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json"},"output":"/home/alex/sots-re/campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json\nfile\n\n1: {\n2: \"actor\": \"live-record bridge architect\",\n3: \"contract\": \"research-live-record-bridge\",\n4: \"id\": \"s-5a78d3a0a10c1f8545df8eb1\",\n5: \"model\": \"openai/gpt-5.6-sol\",\n6: \"probe\": \"Astra must inspect the complete 0x00885380..0x0088544a entry window and 0x00884cb0..0x00884d8f append window from verify/results/research-live-record-bridge/run-472955e277202c411388c66b, enumerate every write to [EBP-0x20] before the append call, and decide whether the transient EvTurn is indeterminate and whether final post-publication semantics remain usable. Revise/invalidate the accepted dependency interpretation and prescribe the exact generated-row wording before TurnEvents planning continues.\",\n7: \"role\": \"architecture-review\",\n8: \"schema\": \"sots-surprise/1\",\n9: \"status\": \"open\",\n10: \"summary\": \"Session run-472955e277202c411388c66b fresh pinned-binary capture contradicts the accepted dependency interpretation that EventStorage get/create initializes a miss-path temporary TurnEvents EvTurn to zero before append. In 0x00885380, local TurnEvents begins at [EBP-0x24]: 0x008853fc writes vptr, and 0x00885403/06/09 zero only nested-vector pointers at +0x08/+0x0c/+0x10. No instruction writes temporary EvTurn at [EBP-0x20] before 0x00885413 calls append. Append 0x00884d62 copies source+0x04 into destination+0x04, so the newly appended element transiently receives the uninitialized stack word; 0x0088542d overwrites the stored element EvTurn with the requested turn after temporary nested-vector destruction. SURVIVES: exact get/create ABI, full last-match scan, final returned bucket pointer, final requested-turn publication, deep nested-vector copy, and temporary nested-vector cleanup. QUALIFIED: miss-path append lifetime and unwind remain static-only. OVERTURNED: research-completion-abi/recovered-static.md statement that the temporary starts with turn zero and append deep-copies zero. No live behavior, VM, Ghidra or engine code ran. Pause affected TurnEvents architecture encoding and readiness.\",\n11: \"timestamp\": \"2026-09-10T04:14:21.422536+00:00\"\n12: }\n\n(End of file - total 12 lines)\n","metadata":{"preview":"{\n \"actor\": \"live-record bridge architect\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"s-5a78d3a0a10c1f8545df8eb1\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"probe\": \"Astra must inspect the complete 0x00885380..0x0088544a entry window and 0x00884cb0..0x00884d8f append window from verify/results/research-live-record-bridge/run-472955e277202c411388c66b, enumerate every write to [EBP-0x20] before the append call, and decide whether the transient EvTurn is indeterminate and whether final post-publication semantics remain usable. Revise/invalidate the accepted dependency interpretation and prescribe the exact generated-row wording before TurnEvents planning continues.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"open\",\n \"summary\": \"Session run-472955e277202c411388c66b fresh pinned-binary capture contradicts the accepted dependency interpretation that EventStorage get/create initializes a miss-path temporary TurnEvents EvTurn to zero before append. In 0x00885380, local TurnEvents begins at [EBP-0x24]: 0x008853fc writes vptr, and 0x00885403/06/09 zero only nested-vector pointers at +0x08/+0x0c/+0x10. No instruction writes temporary EvTurn at [EBP-0x20] before 0x00885413 calls append. Append 0x00884d62 copies source+0x04 into destination+0x04, so the newly appended element transiently receives the uninitialized stack word; 0x0088542d overwrites the stored element EvTurn with the requested turn after temporary nested-vector destruction. SURVIVES: exact get/create ABI, full last-match scan, final returned bucket pointer, final requested-turn publication, deep nested-vector copy, and temporary nested-vector cleanup. QUALIFIED: miss-path append lifetime and unwind remain static-only. OVERTURNED: research-completion-abi/recovered-static.md statement that the temporary starts with turn zero and append deep-copies zero. No live behavior, VM, Ghidra or engine code ran. Pause affected TurnEvents architecture encoding and readiness.\",\n \"timestamp\": \"2026-09-10T04:14:21.422536+00:00\"\n}","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json","text":"{\n \"actor\": \"live-record bridge architect\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"s-5a78d3a0a10c1f8545df8eb1\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"probe\": \"Astra must inspect the complete 0x00885380..0x0088544a entry window and 0x00884cb0..0x00884d8f append window from verify/results/research-live-record-bridge/run-472955e277202c411388c66b, enumerate every write to [EBP-0x20] before the append call, and decide whether the transient EvTurn is indeterminate and whether final post-publication semantics remain usable. Revise/invalidate the accepted dependency interpretation and prescribe the exact generated-row wording before TurnEvents planning continues.\",\n \"role\": \"architecture-review\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"open\",\n \"summary\": \"Session run-472955e277202c411388c66b fresh pinned-binary capture contradicts the accepted dependency interpretation that EventStorage get/create initializes a miss-path temporary TurnEvents EvTurn to zero before append. In 0x00885380, local TurnEvents begins at [EBP-0x24]: 0x008853fc writes vptr, and 0x00885403/06/09 zero only nested-vector pointers at +0x08/+0x0c/+0x10. No instruction writes temporary EvTurn at [EBP-0x20] before 0x00885413 calls append. Append 0x00884d62 copies source+0x04 into destination+0x04, so the newly appended element transiently receives the uninitialized stack word; 0x0088542d overwrites the stored element EvTurn with the requested turn after temporary nested-vector destruction. SURVIVES: exact get/create ABI, full last-match scan, final returned bucket pointer, final requested-turn publication, deep nested-vector copy, and temporary nested-vector cleanup. QUALIFIED: miss-path append lifetime and unwind remain static-only. OVERTURNED: research-completion-abi/recovered-static.md statement that the temporary starts with turn zero and append deep-copies zero. No live behavior, VM, Ghidra or engine code ran. Pause affected TurnEvents architecture encoding and readiness.\",\n \"timestamp\": \"2026-09-10T04:14:21.422536+00:00\"\n}","lineStart":1,"lineEnd":12,"totalLines":12,"truncated":false}},"title":"campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json","time":{"start":1789013826361,"end":1789013826368}},"metadata":{"openai":{"itemId":"fc_0ad496f45a2f3a29016aa22f41edb087d189ceb2eeaa8ef323"}},"id":"prt_089889a47001qQ9Mjv3YrhC6U7","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_08988698c001qEMT7i73D1mysj"}} +{"type":"tool_use","timestamp":1789013826507,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_NoefcDKfw7HnrQQyES1f7eG3","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/contracts/research-completion-abi.json"},"output":"/home/alex/sots-re/campaign/contracts/research-completion-abi.json\nfile\n\n1: {\n2: \"acceptance\": [\n3: {\n4: \"axis\": \"static-recovery\",\n5: \"criterion\": \"Addresses/signatures and record/container/string lifetime rules backed by fresh binary/tool captures; distinguish recorded facts, inference and unexercised branches. Name exact callable allocation/copy/destruction operations or precise unresolved blockers.\",\n6: \"id\": \"ownership-recovered\"\n7: },\n8: {\n9: \"axis\": \"validation\",\n10: \"criterion\": \"Independent verifier checks key instruction/ABI claims and archived record values. No static-only claim of live allocator safety or replacement acceptance.\",\n11: \"id\": \"independent-cross-check\"\n12: }\n13: ],\n14: \"baseline\": {\n15: \"engine\": {\n16: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n17: \"path\": \"/home/alex/sots-engine\"\n18: },\n19: \"re\": {\n20: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n21: \"path\": \"/home/alex/sots-re\"\n22: }\n23: },\n24: \"checkpoint\": \"campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json\",\n25: \"dependencies\": [\n26: \"controls-bootstrap\"\n27: ],\n28: \"effects\": [\n29: \"Evidence-backed RE handoff and raw static captures; no game or shared database state changes\"\n30: ],\n31: \"evidence\": [\n32: {\n33: \"axis\": \"static-recovery\",\n34: \"binaries\": [\n35: {\n36: \"path\": \"dumps/sots.exe\",\n37: \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n38: }\n39: ],\n40: \"id\": \"research-completion-abi-static-run-79357a65226f61d6a86c042d\",\n41: \"inputs\": [\n42: {\n43: \"path\": \"verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/report.md\",\n44: \"sha256\": \"d5a28f01002f1711cf8575ffd817a8f0998b413c6280d656e6cdad5a90a04477\"\n45: }\n46: ],\n47: \"integrated\": true,\n48: \"outcomes\": [\n49: {\n50: \"artifact\": {\n51: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n52: \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n53: },\n54: \"criterion\": \"ownership-recovered\",\n55: \"status\": \"pass\"\n56: }\n57: ],\n58: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n59: \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\",\n60: \"source\": {\n61: \"engine\": {\n62: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n63: \"path\": \"/home/alex/sots-engine\"\n64: },\n65: \"re\": {\n66: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n67: \"path\": \"/home/alex/sots-re\"\n68: }\n69: },\n70: \"source_binding\": {\n71: \"engine\": {\n72: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n73: \"path\": \"/home/alex/sots-engine\",\n74: \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n75: },\n76: \"re\": {\n77: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n78: \"path\": \"/home/alex/sots-re\",\n79: \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n80: }\n81: }\n82: },\n83: {\n84: \"axis\": \"validation\",\n85: \"binaries\": [\n86: {\n87: \"path\": \"dumps/sots.exe\",\n88: \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n89: }\n90: ],\n91: \"id\": \"research-completion-abi-validation-run-735fcb8f4876c10285b03fad\",\n92: \"inputs\": [\n93: {\n94: \"path\": \"verify/results/saves/turn3-state.sav\",\n95: \"sha256\": \"978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921\"\n96: },\n97: {\n98: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n99: \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n100: }\n101: ],\n102: \"integrated\": true,\n103: \"outcomes\": [\n104: {\n105: \"artifact\": {\n106: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n107: \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\"\n108: },\n109: \"criterion\": \"independent-cross-check\",\n110: \"status\": \"pass\"\n111: }\n112: ],\n113: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n114: \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\",\n115: \"source\": {\n116: \"engine\": {\n117: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n118: \"path\": \"/home/alex/sots-engine\"\n119: },\n120: \"re\": {\n121: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n122: \"path\": \"/home/alex/sots-re\"\n123: }\n124: },\n125: \"source_binding\": {\n126: \"engine\": {\n127: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n128: \"path\": \"/home/alex/sots-engine\",\n129: \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n130: },\n131: \"re\": {\n132: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n133: \"path\": \"/home/alex/sots-re\",\n134: \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n135: }\n136: }\n137: }\n138: ],\n139: \"id\": \"research-completion-abi\",\n140: \"inputs\": [\n141: \"Existing binary fingerprint/address contract and private RE findings\",\n142: \"Owner-supplied binary or live read-only ReVa endpoint\",\n143: \"Archived CR traces/saves for observed behavior\",\n144: \"Source-identical current engine/RE worktree snapshots\"\n145: ],\n146: \"original_dependencies\": [\n147: \"Original binary is the object of analysis, not a replacement dependency decision\"\n148: ],\n149: \"owner\": {\n150: \"name\": \"research-abi-analyst\",\n151: \"role\": \"analyst\"\n152: },\n153: \"predictions\": [\n154: \"Count-only scratch updates conceal concrete element construction and original allocator ownership requirements\",\n155: \"The observed-tech and nested-event containers use different element strides and nontrivial string lifetimes; raw header copying is insufficient\"\n156: ],\n157: \"scope\": [\n158: \"Reverse engineering only. Own canonical campaign/research/research-completion-abi.md and verify/results/research-completion-abi/ captures. Use assigned source-identical paired worktrees for source inspection; canonical RE for unique evidence/checkpoint outputs.\",\n159: \"Recover actual constructors/copy/destructors/vector-growth/allocation/free conventions used by RecordObservedTech and EventStorage/TurnEvents/PlayerEvent. Resolve implementable ABI operations, not another general framework.\",\n160: \"Use existing ReVa read-only tools through canonical tools/reva_call.py or the owner-supplied local binary. No Ghidra renames/type writes, VM mutation, new engine code, framework code, agents or delegation. Do not commit/stage/push.\",\n161: \"Start with findings/subsystems/{events,observedtech-append,research-replace}.md and campaign/pilots/research-replacement.md; cross-check binary bytes/decompilation rather than merely repeat notes. Anchors: RecordObservedTech 0x007ba1a0, EventStorage::PostEvent 0x008862b0, PlayerEvent constructor 0x0084ee30. Addresses are hypotheses to validate against fingerprint and actual tools.\",\n162: \"Produce recovered signatures, ownership/lifetime rules, short/long string and empty/full-capacity container paths, and exact unresolved dependencies with minimum next probe. Store raw tool outputs and a hash/provenance index in your owned RE results directory. Keep code-derived material out of engine repo.\"\n163: ],\n164: \"status\": \"accepted\",\n165: \"stop_conditions\": [\n166: \"Stop affected interpretation on binary fingerprint mismatch, contradictory ownership/ABI evidence, unavailable original data, or any scope-changing surprise; record and escalate to Astra\",\n167: \"Checkpoint every 20 calls/15 minutes and before compaction/stopping; return exact next RE action within 40 steps\",\n168: \"Do not expand into framework development or mark pilot replacement ready/accepted\"\n169: ],\n170: \"title\": \"RE: research completion record construction and allocator ABI\"\n171: }\n\n(End of file - total 171 lines)\n","metadata":{"preview":"{\n \"acceptance\": [\n {\n \"axis\": \"static-recovery\",\n \"criterion\": \"Addresses/signatures and record/container/string lifetime rules backed by fresh binary/tool captures; distinguish recorded facts, inference and unexercised branches. Name exact callable allocation/copy/destruction operations or precise unresolved blockers.\",\n \"id\": \"ownership-recovered\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Independent verifier checks key instruction/ABI claims and archived record values. No static-only claim of live allocator safety or replacement acceptance.\",\n \"id\": \"independent-cross-check\"\n }\n ],\n \"baseline\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/contracts/research-completion-abi.json","text":"{\n \"acceptance\": [\n {\n \"axis\": \"static-recovery\",\n \"criterion\": \"Addresses/signatures and record/container/string lifetime rules backed by fresh binary/tool captures; distinguish recorded facts, inference and unexercised branches. Name exact callable allocation/copy/destruction operations or precise unresolved blockers.\",\n \"id\": \"ownership-recovered\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Independent verifier checks key instruction/ABI claims and archived record values. No static-only claim of live allocator safety or replacement acceptance.\",\n \"id\": \"independent-cross-check\"\n }\n ],\n \"baseline\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"checkpoint\": \"campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json\",\n \"dependencies\": [\n \"controls-bootstrap\"\n ],\n \"effects\": [\n \"Evidence-backed RE handoff and raw static captures; no game or shared database state changes\"\n ],\n \"evidence\": [\n {\n \"axis\": \"static-recovery\",\n \"binaries\": [\n {\n \"path\": \"dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n }\n ],\n \"id\": \"research-completion-abi-static-run-79357a65226f61d6a86c042d\",\n \"inputs\": [\n {\n \"path\": \"verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/report.md\",\n \"sha256\": \"d5a28f01002f1711cf8575ffd817a8f0998b413c6280d656e6cdad5a90a04477\"\n }\n ],\n \"integrated\": true,\n \"outcomes\": [\n {\n \"artifact\": {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n },\n \"criterion\": \"ownership-recovered\",\n \"status\": \"pass\"\n }\n ],\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\",\n \"source\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"source_binding\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\",\n \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n }\n }\n },\n {\n \"axis\": \"validation\",\n \"binaries\": [\n {\n \"path\": \"dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n }\n ],\n \"id\": \"research-completion-abi-validation-run-735fcb8f4876c10285b03fad\",\n \"inputs\": [\n {\n \"path\": \"verify/results/saves/turn3-state.sav\",\n \"sha256\": \"978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n }\n ],\n \"integrated\": true,\n \"outcomes\": [\n {\n \"artifact\": {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\"\n },\n \"criterion\": \"independent-cross-check\",\n \"status\": \"pass\"\n }\n ],\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\",\n \"source\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"source_binding\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\",\n \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n }\n }\n }\n ],\n \"id\": \"research-completion-abi\",\n \"inputs\": [\n \"Existing binary fingerprint/address contract and private RE findings\",\n \"Owner-supplied binary or live read-only ReVa endpoint\",\n \"Archived CR traces/saves for observed behavior\",\n \"Source-identical current engine/RE worktree snapshots\"\n ],\n \"original_dependencies\": [\n \"Original binary is the object of analysis, not a replacement dependency decision\"\n ],\n \"owner\": {\n \"name\": \"research-abi-analyst\",\n \"role\": \"analyst\"\n },\n \"predictions\": [\n \"Count-only scratch updates conceal concrete element construction and original allocator ownership requirements\",\n \"The observed-tech and nested-event containers use different element strides and nontrivial string lifetimes; raw header copying is insufficient\"\n ],\n \"scope\": [\n \"Reverse engineering only. Own canonical campaign/research/research-completion-abi.md and verify/results/research-completion-abi/ captures. Use assigned source-identical paired worktrees for source inspection; canonical RE for unique evidence/checkpoint outputs.\",\n \"Recover actual constructors/copy/destructors/vector-growth/allocation/free conventions used by RecordObservedTech and EventStorage/TurnEvents/PlayerEvent. Resolve implementable ABI operations, not another general framework.\",\n \"Use existing ReVa read-only tools through canonical tools/reva_call.py or the owner-supplied local binary. No Ghidra renames/type writes, VM mutation, new engine code, framework code, agents or delegation. Do not commit/stage/push.\",\n \"Start with findings/subsystems/{events,observedtech-append,research-replace}.md and campaign/pilots/research-replacement.md; cross-check binary bytes/decompilation rather than merely repeat notes. Anchors: RecordObservedTech 0x007ba1a0, EventStorage::PostEvent 0x008862b0, PlayerEvent constructor 0x0084ee30. Addresses are hypotheses to validate against fingerprint and actual tools.\",\n \"Produce recovered signatures, ownership/lifetime rules, short/long string and empty/full-capacity container paths, and exact unresolved dependencies with minimum next probe. Store raw tool outputs and a hash/provenance index in your owned RE results directory. Keep code-derived material out of engine repo.\"\n ],\n \"status\": \"accepted\",\n \"stop_conditions\": [\n \"Stop affected interpretation on binary fingerprint mismatch, contradictory ownership/ABI evidence, unavailable original data, or any scope-changing surprise; record and escalate to Astra\",\n \"Checkpoint every 20 calls/15 minutes and before compaction/stopping; return exact next RE action within 40 steps\",\n \"Do not expand into framework development or mark pilot replacement ready/accepted\"\n ],\n \"title\": \"RE: research completion record construction and allocator ABI\"\n}","lineStart":1,"lineEnd":171,"totalLines":171,"truncated":false}},"title":"campaign/contracts/research-completion-abi.json","time":{"start":1789013826498,"end":1789013826505}},"metadata":{"openai":{"itemId":"fc_0ad496f45a2f3a29016aa22f41edc887d1b8e0861719eff734"}},"id":"prt_089889b730015rNfOx2Ahrg5wk","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_08988698c001qEMT7i73D1mysj"}} +{"type":"tool_use","timestamp":1789013826840,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_9uXEhLwxBNbIXWg8CsOOMg3Z","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json"},"output":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\nfile\n\n1: {\n2: \"schema\": \"sots-live-record-static-capture/1\",\n3: \"session\": \"run-472955e277202c411388c66b\",\n4: \"scope\": \"Read-only TurnEvents get/create and directly required lifetime helpers; static planning evidence only.\",\n5: \"cwd\": \"/home/alex/sots-re\",\n6: \"source_identity\": {\n7: \"engine\": {\n8: \"path\": \"/tmp/opencode/sots-final-research-engine\",\n9: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n10: \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n11: },\n12: \"re\": {\n13: \"path\": \"/tmp/opencode/sots-final-research-re\",\n14: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n15: \"sha256\": \"6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8\"\n16: }\n17: },\n18: \"input\": {\n19: \"path\": \"/home/alex/sots-re/dumps/sots.exe\",\n20: \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n21: },\n22: \"tool\": {\n23: \"path\": \"/usr/bin/objdump\",\n24: \"version\": \"GNU Binutils 2.38\",\n25: \"sha256\": \"1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd\"\n26: },\n27: \"windows\": [\n28: {\n29: \"name\": \"turn-get-create\",\n30: \"argv\": [\n31: \"/usr/bin/objdump\",\n32: \"-D\",\n33: \"-Mintel\",\n34: \"--start-address=0x00885380\",\n35: \"--stop-address=0x0088544a\",\n36: \"/home/alex/sots-re/dumps/sots.exe\"\n37: ],\n38: \"start\": \"0x00885380\",\n39: \"stop\": \"0x0088544a\",\n40: \"returncode\": 0,\n41: \"stdout_bytes\": 3974,\n42: \"stdout_sha256\": \"f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3\",\n43: \"stderr_bytes\": 0,\n44: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n45: \"instruction_lines\": 77\n46: },\n47: {\n48: \"name\": \"turn-append\",\n49: \"argv\": [\n50: \"/usr/bin/objdump\",\n51: \"-D\",\n52: \"-Mintel\",\n53: \"--start-address=0x00884cb0\",\n54: \"--stop-address=0x00884d8f\",\n55: \"/home/alex/sots-re/dumps/sots.exe\"\n56: ],\n57: \"start\": \"0x00884cb0\",\n58: \"stop\": \"0x00884d8f\",\n59: \"returncode\": 0,\n60: \"stdout_bytes\": 4179,\n61: \"stdout_sha256\": \"57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15\",\n62: \"stderr_bytes\": 0,\n63: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n64: \"instruction_lines\": 79\n65: },\n66: {\n67: \"name\": \"turn-grow\",\n68: \"argv\": [\n69: \"/usr/bin/objdump\",\n70: \"-D\",\n71: \"-Mintel\",\n72: \"--start-address=0x008841a0\",\n73: \"--stop-address=0x00884440\",\n74: \"/home/alex/sots-re/dumps/sots.exe\"\n75: ],\n76: \"start\": \"0x008841a0\",\n77: \"stop\": \"0x00884440\",\n78: \"returncode\": 0,\n79: \"stdout_bytes\": 12599,\n80: \"stdout_sha256\": \"eb887fbef7b4686530d2fc1c0caf2c2ee78c761aa3706cebcf3c146a22480b2e\",\n81: \"stderr_bytes\": 0,\n82: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n83: \"instruction_lines\": 245\n84: },\n85: {\n86: \"name\": \"nested-copy\",\n87: \"argv\": [\n88: \"/usr/bin/objdump\",\n89: \"-D\",\n90: \"-Mintel\",\n91: \"--start-address=0x00779850\",\n92: \"--stop-address=0x00779a20\",\n93: \"/home/alex/sots-re/dumps/sots.exe\"\n94: ],\n95: \"start\": \"0x00779850\",\n96: \"stop\": \"0x00779a20\",\n97: \"returncode\": 0,\n98: \"stdout_bytes\": 8469,\n99: \"stdout_sha256\": \"e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1\",\n100: \"stderr_bytes\": 0,\n101: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n102: \"instruction_lines\": 169\n103: },\n104: {\n105: \"name\": \"nested-dtor\",\n106: \"argv\": [\n107: \"/usr/bin/objdump\",\n108: \"-D\",\n109: \"-Mintel\",\n110: \"--start-address=0x00629580\",\n111: \"--stop-address=0x006295ca\",\n112: \"/home/alex/sots-re/dumps/sots.exe\"\n113: ],\n114: \"start\": \"0x00629580\",\n115: \"stop\": \"0x006295ca\",\n116: \"returncode\": 0,\n117: \"stdout_bytes\": 1727,\n118: \"stdout_sha256\": \"3c38887e60d009ab904772b13be93ac1eedd9bee85024e37110160a625db3a83\",\n119: \"stderr_bytes\": 0,\n120: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n121: \"instruction_lines\": 33\n122: },\n123: {\n124: \"name\": \"turn-dtor\",\n125: \"argv\": [\n126: \"/usr/bin/objdump\",\n127: \"-D\",\n128: \"-Mintel\",\n129: \"--start-address=0x0062e120\",\n130: \"--stop-address=0x0062e190\",\n131: \"/home/alex/sots-re/dumps/sots.exe\"\n132: ],\n133: \"start\": \"0x0062e120\",\n134: \"stop\": \"0x0062e190\",\n135: \"returncode\": 0,\n136: \"stdout_bytes\": 2312,\n137: \"stdout_sha256\": \"67777b4a5f658d4629a24770929979494739b6b3bcb0075fb8af17c782d080be\",\n138: \"stderr_bytes\": 0,\n139: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n140: \"instruction_lines\": 48\n141: },\n142: {\n143: \"name\": \"turn-alloc\",\n144: \"argv\": [\n145: \"/usr/bin/objdump\",\n146: \"-D\",\n147: \"-Mintel\",\n148: \"--start-address=0x006e8f50\",\n149: \"--stop-address=0x006e8fb0\",\n150: \"/home/alex/sots-re/dumps/sots.exe\"\n151: ],\n152: \"start\": \"0x006e8f50\",\n153: \"stop\": \"0x006e8fb0\",\n154: \"returncode\": 0,\n155: \"stdout_bytes\": 1819,\n156: \"stdout_sha256\": \"a00efc52c0c259edeab80178eb3e11eb921b215ccac4882afc71b59b7e8da1c1\",\n157: \"stderr_bytes\": 0,\n158: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n159: \"instruction_lines\": 36\n160: },\n161: {\n162: \"name\": \"turn-range-copy\",\n163: \"argv\": [\n164: \"/usr/bin/objdump\",\n165: \"-D\",\n166: \"-Mintel\",\n167: \"--start-address=0x0077fed0\",\n168: \"--stop-address=0x00780040\",\n169: \"/home/alex/sots-re/dumps/sots.exe\"\n170: ],\n171: \"start\": \"0x0077fed0\",\n172: \"stop\": \"0x00780040\",\n173: \"returncode\": 0,\n174: \"stdout_bytes\": 7128,\n175: \"stdout_sha256\": \"b937abaeed9a4bd44e5736b8474262119fa6d78c96b5cf89e0a1d50f4c58b44d\",\n176: \"stderr_bytes\": 0,\n177: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n178: \"instruction_lines\": 136\n179: },\n180: {\n181: \"name\": \"turn-vtable\",\n182: \"argv\": [\n183: \"/usr/bin/objdump\",\n184: \"-s\",\n185: \"--start-address=0x00a0f070\",\n186: \"--stop-address=0x00a0f0a0\",\n187: \"/home/alex/sots-re/dumps/sots.exe\"\n188: ],\n189: \"start\": \"0x00a0f070\",\n190: \"stop\": \"0x00a0f0a0\",\n191: \"returncode\": 0,\n192: \"stdout_bytes\": 276,\n193: \"stdout_sha256\": \"4ccf38cea420e0051b781513031ac0e83841c3828851e7198a8724e592912df9\",\n194: \"stderr_bytes\": 0,\n195: \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n196: \"instruction_lines\": 0\n197: }\n198: ]\n199: }\n\n(End of file - total 199 lines)\n","metadata":{"preview":"{\n \"schema\": \"sots-live-record-static-capture/1\",\n \"session\": \"run-472955e277202c411388c66b\",\n \"scope\": \"Read-only TurnEvents get/create and directly required lifetime helpers; static planning evidence only.\",\n \"cwd\": \"/home/alex/sots-re\",\n \"source_identity\": {\n \"engine\": {\n \"path\": \"/tmp/opencode/sots-final-research-engine\",\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"path\": \"/tmp/opencode/sots-final-research-re\",\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"sha256\": \"6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8\"\n }\n },\n \"input\": {\n \"path\": \"/home/alex/sots-re/dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json","text":"{\n \"schema\": \"sots-live-record-static-capture/1\",\n \"session\": \"run-472955e277202c411388c66b\",\n \"scope\": \"Read-only TurnEvents get/create and directly required lifetime helpers; static planning evidence only.\",\n \"cwd\": \"/home/alex/sots-re\",\n \"source_identity\": {\n \"engine\": {\n \"path\": \"/tmp/opencode/sots-final-research-engine\",\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"path\": \"/tmp/opencode/sots-final-research-re\",\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"sha256\": \"6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8\"\n }\n },\n \"input\": {\n \"path\": \"/home/alex/sots-re/dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n },\n \"tool\": {\n \"path\": \"/usr/bin/objdump\",\n \"version\": \"GNU Binutils 2.38\",\n \"sha256\": \"1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd\"\n },\n \"windows\": [\n {\n \"name\": \"turn-get-create\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00885380\",\n \"--stop-address=0x0088544a\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00885380\",\n \"stop\": \"0x0088544a\",\n \"returncode\": 0,\n \"stdout_bytes\": 3974,\n \"stdout_sha256\": \"f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 77\n },\n {\n \"name\": \"turn-append\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00884cb0\",\n \"--stop-address=0x00884d8f\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00884cb0\",\n \"stop\": \"0x00884d8f\",\n \"returncode\": 0,\n \"stdout_bytes\": 4179,\n \"stdout_sha256\": \"57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 79\n },\n {\n \"name\": \"turn-grow\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x008841a0\",\n \"--stop-address=0x00884440\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x008841a0\",\n \"stop\": \"0x00884440\",\n \"returncode\": 0,\n \"stdout_bytes\": 12599,\n \"stdout_sha256\": \"eb887fbef7b4686530d2fc1c0caf2c2ee78c761aa3706cebcf3c146a22480b2e\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 245\n },\n {\n \"name\": \"nested-copy\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00779850\",\n \"--stop-address=0x00779a20\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00779850\",\n \"stop\": \"0x00779a20\",\n \"returncode\": 0,\n \"stdout_bytes\": 8469,\n \"stdout_sha256\": \"e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 169\n },\n {\n \"name\": \"nested-dtor\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x00629580\",\n \"--stop-address=0x006295ca\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00629580\",\n \"stop\": \"0x006295ca\",\n \"returncode\": 0,\n \"stdout_bytes\": 1727,\n \"stdout_sha256\": \"3c38887e60d009ab904772b13be93ac1eedd9bee85024e37110160a625db3a83\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 33\n },\n {\n \"name\": \"turn-dtor\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x0062e120\",\n \"--stop-address=0x0062e190\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x0062e120\",\n \"stop\": \"0x0062e190\",\n \"returncode\": 0,\n \"stdout_bytes\": 2312,\n \"stdout_sha256\": \"67777b4a5f658d4629a24770929979494739b6b3bcb0075fb8af17c782d080be\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 48\n },\n {\n \"name\": \"turn-alloc\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x006e8f50\",\n \"--stop-address=0x006e8fb0\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x006e8f50\",\n \"stop\": \"0x006e8fb0\",\n \"returncode\": 0,\n \"stdout_bytes\": 1819,\n \"stdout_sha256\": \"a00efc52c0c259edeab80178eb3e11eb921b215ccac4882afc71b59b7e8da1c1\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 36\n },\n {\n \"name\": \"turn-range-copy\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-D\",\n \"-Mintel\",\n \"--start-address=0x0077fed0\",\n \"--stop-address=0x00780040\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x0077fed0\",\n \"stop\": \"0x00780040\",\n \"returncode\": 0,\n \"stdout_bytes\": 7128,\n \"stdout_sha256\": \"b937abaeed9a4bd44e5736b8474262119fa6d78c96b5cf89e0a1d50f4c58b44d\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 136\n },\n {\n \"name\": \"turn-vtable\",\n \"argv\": [\n \"/usr/bin/objdump\",\n \"-s\",\n \"--start-address=0x00a0f070\",\n \"--stop-address=0x00a0f0a0\",\n \"/home/alex/sots-re/dumps/sots.exe\"\n ],\n \"start\": \"0x00a0f070\",\n \"stop\": \"0x00a0f0a0\",\n \"returncode\": 0,\n \"stdout_bytes\": 276,\n \"stdout_sha256\": \"4ccf38cea420e0051b781513031ac0e83841c3828851e7198a8724e592912df9\",\n \"stderr_bytes\": 0,\n \"stderr_sha256\": \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\",\n \"instruction_lines\": 0\n }\n ]\n}","lineStart":1,"lineEnd":199,"totalLines":199,"truncated":false}},"title":"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json","time":{"start":1789013826823,"end":1789013826838}},"metadata":{"openai":{"itemId":"fc_0ad496f45a2f3a29016aa22f41edd087d1b17543ffccc0fb48"}},"id":"prt_089889cba001SbVs0RlY9vDG9U","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_08988698c001qEMT7i73D1mysj"}} +{"type":"tool_use","timestamp":1789013826937,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"grep","callID":"call_P3TMrpgimYben9KmpJVCH8CD","state":{"status":"completed","input":{"pattern":"\"status\": \"open\"","path":"/home/alex/sots-re/campaign/runtime/surprises"},"output":"Found 1 matches\n/home/alex/sots-re/campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json:\n Line 9: \"status\": \"open\",\n","metadata":{"matches":1,"truncated":false},"title":"\"status\": \"open\"","time":{"start":1789013826916,"end":1789013826936}},"metadata":{"openai":{"itemId":"fc_0ad496f45a2f3a29016aa22f41ede487d1bbb592508536fc55"}},"id":"prt_089889d590019rigbbJP13UfOo","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_08988698c001qEMT7i73D1mysj"}} +{"type":"tool_use","timestamp":1789013826959,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"bash","callID":"call_ur3G3Xqkm8jaRamHU3TAPYrz","state":{"status":"error","input":{"command":"git -C /tmp/opencode/sots-final-research-engine rev-parse HEAD --git-common-dir && git -C /tmp/opencode/sots-final-research-engine status --short && git -C /tmp/opencode/sots-final-research-re rev-parse HEAD --git-common-dir && git -C /tmp/opencode/sots-final-research-re status --short && python3 tools/campaign.py --state-root /home/alex/sots-re status research-live-record-bridge && python3 tools/campaign.py --state-root /home/alex/sots-re source-binding research-live-record-bridge --engine-worktree /tmp/opencode/sots-final-research-engine --re-worktree /tmp/opencode/sots-final-research-re"},"error":"The user has specified a rule which prevents you from using this specific tool call. Here are some of the relevant rules [{\"permission\":\"*\",\"action\":\"allow\",\"pattern\":\"*\"},{\"permission\":\"bash\",\"pattern\":\"*\",\"action\":\"deny\"},{\"permission\":\"bash\",\"pattern\":\"git -C * status *\",\"action\":\"allow\"},{\"permission\":\"bash\",\"pattern\":\"git -C * diff *\",\"action\":\"allow\"},{\"permission\":\"bash\",\"pattern\":\"git -C * log *\",\"action\":\"allow\"},{\"permission\":\"bash\",\"pattern\":\"git -C * rev-parse *\",\"action\":\"allow\"},{\"permission\":\"bash\",\"pattern\":\"git -C * show *\",\"action\":\"allow\"},{\"permission\":\"bash\",\"pattern\":\"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re checkpoint *\",\"action\":\"allow\"},{\"permission\":\"bash\",\"pattern\":\"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re resolve *\",\"action\":\"allow\"},{\"permission\":\"bash\",\"pattern\":\"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re surprise *\",\"action\":\"allow\"},{\"permission\":\"bash\",\"pattern\":\"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re status *\",\"action\":\"allow\"},{\"permission\":\"bash\",\"pattern\":\"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re validate *\",\"action\":\"allow\"}]","time":{"start":1789013826903,"end":1789013826958}},"metadata":{"openai":{"itemId":"fc_0ad496f45a2f3a29016aa22f41eddc87d1be5c969d8a870ff2"}},"id":"prt_089889d35001BLHpxNkzsXjheF","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_08988698c001qEMT7i73D1mysj"}} +{"type":"step_finish","timestamp":1789013827016,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_089889dc50016vmZqNH6uHWRty","reason":"tool-calls","snapshot":"63757368b378d3f82505856b1e1004c2f023de68","messageID":"msg_08988698c001qEMT7i73D1mysj","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":16446,"input":6492,"output":344,"reasoning":10,"cache":{"write":0,"read":9600}},"cost":0}} +{"type":"step_start","timestamp":1789013829446,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_08988a7350017gWs9xUucZbq6K","messageID":"msg_089889def001fESSqNaa0DBopF","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"b76dd5eecf1b81f7cd960cd21b5013b20adefdc4","type":"step-start"}} +{"type":"text","timestamp":1789013840503,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_08988a901001o530rUH6XoH3V3","messageID":"msg_089889def001fESSqNaa0DBopF","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"text","text":"Observation: the architect’s pinned-binary static capture reports no initialization of the temporary `TurnEvents.EvTurn` before append, contradicting the accepted “temporary turn is zero” interpretation. Provenance is surprise `s-5a78d3a0a10c1f8545df8eb1` and capture manifest `run-472955e277202c411388c66b`. This is a static instruction claim—not measured game behavior or live allocator safety. I’m checking the raw windows and identities before deciding its scope.\n\n","time":{"start":1789013829889,"end":1789013840501},"metadata":{"openai":{"itemId":"msg_0d3d0ca7034730dc016aa22f45d29c87d1be8fd241117cc11a","phase":"commentary"}}}} +{"type":"tool_use","timestamp":1789013840548,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_aOxSO2knDksFKXf25C7g4r4M","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt"},"output":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\nfile\n\n1: \n2: /home/alex/sots-re/dumps/sots.exe: file format pei-i386\n3: \n4: \n5: Disassembly of section .text:\n6: \n7: 00885380 <.text+0x484380>:\n8: 885380:\t55 \tpush ebp\n9: 885381:\t8b ec \tmov ebp,esp\n10: 885383:\t6a ff \tpush 0xffffffff\n11: 885385:\t68 30 af 99 00 \tpush 0x99af30\n12: 88538a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n13: 885390:\t50 \tpush eax\n14: 885391:\t83 ec 18 \tsub esp,0x18\n15: 885394:\t53 \tpush ebx\n16: 885395:\t56 \tpush esi\n17: 885396:\t57 \tpush edi\n18: 885397:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n19: 88539c:\t33 c5 \txor eax,ebp\n20: 88539e:\t50 \tpush eax\n21: 88539f:\t8d 45 f4 \tlea eax,[ebp-0xc]\n22: 8853a2:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n23: 8853a8:\t8b f1 \tmov esi,ecx\n24: 8853aa:\t8b 56 08 \tmov edx,DWORD PTR [esi+0x8]\n25: 8853ad:\t2b 56 04 \tsub edx,DWORD PTR [esi+0x4]\n26: 8853b0:\t8d 4e 04 \tlea ecx,[esi+0x4]\n27: 8853b3:\tb8 ab aa aa 2a \tmov eax,0x2aaaaaab\n28: 8853b8:\tf7 ea \timul edx\n29: 8853ba:\tc1 fa 02 \tsar edx,0x2\n30: 8853bd:\t8b c2 \tmov eax,edx\n31: 8853bf:\tc1 e8 1f \tshr eax,0x1f\n32: 8853c2:\t33 db \txor ebx,ebx\n33: 8853c4:\t03 c2 \tadd eax,edx\n34: 8853c6:\t33 ff \txor edi,edi\n35: 8853c8:\t3b c3 \tcmp eax,ebx\n36: 8853ca:\t7e 30 \tjle 0x8853fc\n37: 8853cc:\t8b 11 \tmov edx,DWORD PTR [ecx]\n38: 8853ce:\t8b ff \tmov edi,edi\n39: 8853d0:\t8b 5d 08 \tmov ebx,DWORD PTR [ebp+0x8]\n40: 8853d3:\t39 5a 04 \tcmp DWORD PTR [edx+0x4],ebx\n41: 8853d6:\t75 02 \tjne 0x8853da\n42: 8853d8:\t8b fa \tmov edi,edx\n43: 8853da:\t83 c2 18 \tadd edx,0x18\n44: 8853dd:\t48 \tdec eax\n45: 8853de:\t75 f0 \tjne 0x8853d0\n46: 8853e0:\t33 db \txor ebx,ebx\n47: 8853e2:\t3b fb \tcmp edi,ebx\n48: 8853e4:\t74 16 \tje 0x8853fc\n49: 8853e6:\t8b c7 \tmov eax,edi\n50: 8853e8:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n51: 8853eb:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n52: 8853f2:\t59 \tpop ecx\n53: 8853f3:\t5f \tpop edi\n54: 8853f4:\t5e \tpop esi\n55: 8853f5:\t5b \tpop ebx\n56: 8853f6:\t8b e5 \tmov esp,ebp\n57: 8853f8:\t5d \tpop ebp\n58: 8853f9:\tc2 04 00 \tret 0x4\n59: 8853fc:\tc7 45 dc 7c f0 a0 00 \tmov DWORD PTR [ebp-0x24],0xa0f07c\n60: 885403:\t89 5d e4 \tmov DWORD PTR [ebp-0x1c],ebx\n61: 885406:\t89 5d e8 \tmov DWORD PTR [ebp-0x18],ebx\n62: 885409:\t89 5d ec \tmov DWORD PTR [ebp-0x14],ebx\n63: 88540c:\t8d 45 dc \tlea eax,[ebp-0x24]\n64: 88540f:\t50 \tpush eax\n65: 885410:\t89 5d fc \tmov DWORD PTR [ebp-0x4],ebx\n66: 885413:\te8 98 f8 ff ff \tcall 0x884cb0\n67: 885418:\t8d 4d e4 \tlea ecx,[ebp-0x1c]\n68: 88541b:\tc7 45 fc 01 00 00 00 \tmov DWORD PTR [ebp-0x4],0x1\n69: 885422:\te8 59 41 da ff \tcall 0x629580\n70: 885427:\t8b 46 08 \tmov eax,DWORD PTR [esi+0x8]\n71: 88542a:\t8b 4d 08 \tmov ecx,DWORD PTR [ebp+0x8]\n72: 88542d:\t89 48 ec \tmov DWORD PTR [eax-0x14],ecx\n73: 885430:\t8b 46 08 \tmov eax,DWORD PTR [esi+0x8]\n74: 885433:\t83 e8 18 \tsub eax,0x18\n75: 885436:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n76: 885439:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n77: 885440:\t59 \tpop ecx\n78: 885441:\t5f \tpop edi\n79: 885442:\t5e \tpop esi\n80: 885443:\t5b \tpop ebx\n81: 885444:\t8b e5 \tmov esp,ebp\n82: 885446:\t5d \tpop ebp\n83: 885447:\tc2 04 00 \tret 0x4\n\n(End of file - total 83 lines)\n","metadata":{"preview":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00885380 <.text+0x484380>:\n 885380:\t55 \tpush ebp\n 885381:\t8b ec \tmov ebp,esp\n 885383:\t6a ff \tpush 0xffffffff\n 885385:\t68 30 af 99 00 \tpush 0x99af30\n 88538a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 885390:\t50 \tpush eax\n 885391:\t83 ec 18 \tsub esp,0x18\n 885394:\t53 \tpush ebx\n 885395:\t56 \tpush esi\n 885396:\t57 \tpush edi\n 885397:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 88539c:\t33 c5 \txor eax,ebp\n 88539e:\t50 \tpush eax","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt","text":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00885380 <.text+0x484380>:\n 885380:\t55 \tpush ebp\n 885381:\t8b ec \tmov ebp,esp\n 885383:\t6a ff \tpush 0xffffffff\n 885385:\t68 30 af 99 00 \tpush 0x99af30\n 88538a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 885390:\t50 \tpush eax\n 885391:\t83 ec 18 \tsub esp,0x18\n 885394:\t53 \tpush ebx\n 885395:\t56 \tpush esi\n 885396:\t57 \tpush edi\n 885397:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 88539c:\t33 c5 \txor eax,ebp\n 88539e:\t50 \tpush eax\n 88539f:\t8d 45 f4 \tlea eax,[ebp-0xc]\n 8853a2:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n 8853a8:\t8b f1 \tmov esi,ecx\n 8853aa:\t8b 56 08 \tmov edx,DWORD PTR [esi+0x8]\n 8853ad:\t2b 56 04 \tsub edx,DWORD PTR [esi+0x4]\n 8853b0:\t8d 4e 04 \tlea ecx,[esi+0x4]\n 8853b3:\tb8 ab aa aa 2a \tmov eax,0x2aaaaaab\n 8853b8:\tf7 ea \timul edx\n 8853ba:\tc1 fa 02 \tsar edx,0x2\n 8853bd:\t8b c2 \tmov eax,edx\n 8853bf:\tc1 e8 1f \tshr eax,0x1f\n 8853c2:\t33 db \txor ebx,ebx\n 8853c4:\t03 c2 \tadd eax,edx\n 8853c6:\t33 ff \txor edi,edi\n 8853c8:\t3b c3 \tcmp eax,ebx\n 8853ca:\t7e 30 \tjle 0x8853fc\n 8853cc:\t8b 11 \tmov edx,DWORD PTR [ecx]\n 8853ce:\t8b ff \tmov edi,edi\n 8853d0:\t8b 5d 08 \tmov ebx,DWORD PTR [ebp+0x8]\n 8853d3:\t39 5a 04 \tcmp DWORD PTR [edx+0x4],ebx\n 8853d6:\t75 02 \tjne 0x8853da\n 8853d8:\t8b fa \tmov edi,edx\n 8853da:\t83 c2 18 \tadd edx,0x18\n 8853dd:\t48 \tdec eax\n 8853de:\t75 f0 \tjne 0x8853d0\n 8853e0:\t33 db \txor ebx,ebx\n 8853e2:\t3b fb \tcmp edi,ebx\n 8853e4:\t74 16 \tje 0x8853fc\n 8853e6:\t8b c7 \tmov eax,edi\n 8853e8:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n 8853eb:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n 8853f2:\t59 \tpop ecx\n 8853f3:\t5f \tpop edi\n 8853f4:\t5e \tpop esi\n 8853f5:\t5b \tpop ebx\n 8853f6:\t8b e5 \tmov esp,ebp\n 8853f8:\t5d \tpop ebp\n 8853f9:\tc2 04 00 \tret 0x4\n 8853fc:\tc7 45 dc 7c f0 a0 00 \tmov DWORD PTR [ebp-0x24],0xa0f07c\n 885403:\t89 5d e4 \tmov DWORD PTR [ebp-0x1c],ebx\n 885406:\t89 5d e8 \tmov DWORD PTR [ebp-0x18],ebx\n 885409:\t89 5d ec \tmov DWORD PTR [ebp-0x14],ebx\n 88540c:\t8d 45 dc \tlea eax,[ebp-0x24]\n 88540f:\t50 \tpush eax\n 885410:\t89 5d fc \tmov DWORD PTR [ebp-0x4],ebx\n 885413:\te8 98 f8 ff ff \tcall 0x884cb0\n 885418:\t8d 4d e4 \tlea ecx,[ebp-0x1c]\n 88541b:\tc7 45 fc 01 00 00 00 \tmov DWORD PTR [ebp-0x4],0x1\n 885422:\te8 59 41 da ff \tcall 0x629580\n 885427:\t8b 46 08 \tmov eax,DWORD PTR [esi+0x8]\n 88542a:\t8b 4d 08 \tmov ecx,DWORD PTR [ebp+0x8]\n 88542d:\t89 48 ec \tmov DWORD PTR [eax-0x14],ecx\n 885430:\t8b 46 08 \tmov eax,DWORD PTR [esi+0x8]\n 885433:\t83 e8 18 \tsub eax,0x18\n 885436:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n 885439:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n 885440:\t59 \tpop ecx\n 885441:\t5f \tpop edi\n 885442:\t5e \tpop esi\n 885443:\t5b \tpop ebx\n 885444:\t8b e5 \tmov esp,ebp\n 885446:\t5d \tpop ebp\n 885447:\tc2 04 00 \tret 0x4","lineStart":1,"lineEnd":83,"totalLines":83,"truncated":false}},"title":"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt","time":{"start":1789013840536,"end":1789013840546}},"metadata":{"openai":{"itemId":"fc_0d3d0ca7034730dc016aa22f505b8487d19873591e58260dac"}},"id":"prt_08988d295001tkzmzE77Q9tmMd","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_089889def001fESSqNaa0DBopF"}} +{"type":"tool_use","timestamp":1789013840584,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_VI4uWzgnMHnzqYBuOGfQ00hc","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json"},"output":"/home/alex/sots-re/campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json\nfile\n\n1: {\n2: \"actor\": \"research-abi-independent\",\n3: \"artifacts\": [\n4: {\n5: \"path\": \"verify/results/research-completion-abi-independent/verification-plan-run-d94d4516b9d898793318805e.md\",\n6: \"sha256\": \"78b7dea4e916d5ef7e4b10b488970e51407094580bbc4d2f807082fb0018a76d\"\n7: },\n8: {\n9: \"path\": \"verify/results/research-completion-abi-independent/reproduce_run_d94d4516b9d898793318805e.py\",\n10: \"sha256\": \"cd71d370d9e1c393a98f6c1034f8e785b0b3e95a2ecb96319ee193b23f656eaa\"\n11: },\n12: {\n13: \"path\": \"verify/results/research-completion-abi-independent/heldout_run_d94d4516b9d898793318805e.py\",\n14: \"sha256\": \"14935c800bac1dc60dce71fa8067b9c0a282d2871002381a4432b0141be8beec\"\n15: },\n16: {\n17: \"path\": \"verify/results/research-completion-abi-independent/run-d94d4516b9d898793318805e/manifest.json\",\n18: \"sha256\": \"c7313047b4f013068649fc7784db4db277a6ca42083ec5cdb446221559561deb\"\n19: },\n20: {\n21: \"path\": \"verify/results/research-completion-abi-independent/run-d94d4516b9d898793318805e/independent-state.json\",\n22: \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\"\n23: },\n24: {\n25: \"path\": \"verify/results/research-completion-abi-independent/run-d94d4516b9d898793318805e/heldout-boundary.json\",\n26: \"sha256\": \"c7c950672d987d2243bfeede543f6ff37918c806873def6e9c3bd12ba5c5f091\"\n27: },\n28: {\n29: \"path\": \"verify/results/research-completion-abi-independent/result-run-d94d4516b9d898793318805e.md\",\n30: \"sha256\": \"b2278ae463654bf05f8456fad5c14dd837539cc1d5f0840f5a2098026a17e321\"\n31: },\n32: {\n33: \"path\": \"campaign/runtime/verdicts/research-completion-abi.json\",\n34: \"sha256\": \"b1f643b17e5b63677466e1264126fefb9b9360c0194917f111f3387ddc2a5b08\"\n35: }\n36: ],\n37: \"basis\": \"aaddeb76f74bbd1a43671f882770ec84a7d690b4060d060ef1a68f918e8edbb0\",\n38: \"contract\": \"research-completion-abi\",\n39: \"id\": \"d2e4078886c66df34ee00b24\",\n40: \"model\": \"openai/gpt-5.6-sol\",\n41: \"next_action\": \"Lead reviews verdict b1f643b17e5b63677466e1264126fefb9b9360c0194917f111f3387ddc2a5b08 and, if campaign acceptance policy is satisfied, transitions research-completion-abi from integration to accepted.\",\n42: \"role\": \"verifier\",\n43: \"schema\": \"sots-checkpoint/1\",\n44: \"session\": \"run-d94d4516b9d898793318805e\",\n45: \"summary\": \"QUANTUM END. DECISION: fresh independent PASS verdict recorded over the CURRENT INTEGRATED two-record evidence array; verifier made no lifecycle transition. CLASSIFICATION: independent static reproduction plus archived-state inspection only, not original-assisted runtime, partial/full live compare, independent replacement, or integrated replay. OBSERVATIONS/IDENTITY: assigned engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23/common /home/alex/sots-engine/.git remains binding ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd; assigned RE HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7/common /home/alex/sots-re/.git remains paired binding 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8; assigned trees were not edited. Canonical integrated binding engine ccd8e020...50fd / RE e74ef6cf...bd4 still exactly matches both evidence records. Binary 970b7de7...c841, save 978041ac...0921 and objdump 1eaaef2e...d4cd match. TESTS/REPRODUCTION: py_compile and reproduce_run_d94d4516b9d898793318805e.py exited 0; 22 nonempty static windows plus two strict state tools, empty stderr/no skips. Manifest equals integrated manifest except session; independent state byte-equal. Heldout script exited 0: all seven exact return encodings and 14 shifted-start negative controls passed; 0x2c/0x74, deep-copy, three-delete, description, and three unordered-or-unequal float branches exposed. Actual state: EvNxID 4, turn-3 count 2, event ID 3 full fields/defaults, exact 609080-byte rebuild, RNG leaf 2503 bytes/digest 0978fdf34ff7962f76c2de810dc93e0a. 37 campaign tests pass; final campaign validate passes. Verdict hash b1f643b17e5b63677466e1264126fefb9b9360c0194917f111f3387ddc2a5b08, evidence digest e5073be0...a931. FAILURES/RESIDUALS: no new failed prediction or surprise; historical provenance/description failures remain failures resolved by Astra. No live empty/full, short/long, duplicate/different, NaN, unwind/failure, allocator-family, original differe... (line truncated to 2000 chars)\n46: \"timestamp\": \"2026-09-10T01:40:39.007537+00:00\"\n47: }\n\n(End of file - total 47 lines)\n","metadata":{"preview":"{\n \"actor\": \"research-abi-independent\",\n \"artifacts\": [\n {\n \"path\": \"verify/results/research-completion-abi-independent/verification-plan-run-d94d4516b9d898793318805e.md\",\n \"sha256\": \"78b7dea4e916d5ef7e4b10b488970e51407094580bbc4d2f807082fb0018a76d\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/reproduce_run_d94d4516b9d898793318805e.py\",\n \"sha256\": \"cd71d370d9e1c393a98f6c1034f8e785b0b3e95a2ecb96319ee193b23f656eaa\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/heldout_run_d94d4516b9d898793318805e.py\",\n \"sha256\": \"14935c800bac1dc60dce71fa8067b9c0a282d2871002381a4432b0141be8beec\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/run-d94d4516b9d898793318805e/manifest.json\",\n \"sha256\": \"c7313047b4f013068649fc7784db4db277a6ca42083ec5cdb446221559561deb\"\n },\n {","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json","text":"{\n \"actor\": \"research-abi-independent\",\n \"artifacts\": [\n {\n \"path\": \"verify/results/research-completion-abi-independent/verification-plan-run-d94d4516b9d898793318805e.md\",\n \"sha256\": \"78b7dea4e916d5ef7e4b10b488970e51407094580bbc4d2f807082fb0018a76d\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/reproduce_run_d94d4516b9d898793318805e.py\",\n \"sha256\": \"cd71d370d9e1c393a98f6c1034f8e785b0b3e95a2ecb96319ee193b23f656eaa\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/heldout_run_d94d4516b9d898793318805e.py\",\n \"sha256\": \"14935c800bac1dc60dce71fa8067b9c0a282d2871002381a4432b0141be8beec\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/run-d94d4516b9d898793318805e/manifest.json\",\n \"sha256\": \"c7313047b4f013068649fc7784db4db277a6ca42083ec5cdb446221559561deb\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/run-d94d4516b9d898793318805e/independent-state.json\",\n \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/run-d94d4516b9d898793318805e/heldout-boundary.json\",\n \"sha256\": \"c7c950672d987d2243bfeede543f6ff37918c806873def6e9c3bd12ba5c5f091\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/result-run-d94d4516b9d898793318805e.md\",\n \"sha256\": \"b2278ae463654bf05f8456fad5c14dd837539cc1d5f0840f5a2098026a17e321\"\n },\n {\n \"path\": \"campaign/runtime/verdicts/research-completion-abi.json\",\n \"sha256\": \"b1f643b17e5b63677466e1264126fefb9b9360c0194917f111f3387ddc2a5b08\"\n }\n ],\n \"basis\": \"aaddeb76f74bbd1a43671f882770ec84a7d690b4060d060ef1a68f918e8edbb0\",\n \"contract\": \"research-completion-abi\",\n \"id\": \"d2e4078886c66df34ee00b24\",\n \"model\": \"openai/gpt-5.6-sol\",\n \"next_action\": \"Lead reviews verdict b1f643b17e5b63677466e1264126fefb9b9360c0194917f111f3387ddc2a5b08 and, if campaign acceptance policy is satisfied, transitions research-completion-abi from integration to accepted.\",\n \"role\": \"verifier\",\n \"schema\": \"sots-checkpoint/1\",\n \"session\": \"run-d94d4516b9d898793318805e\",\n \"summary\": \"QUANTUM END. DECISION: fresh independent PASS verdict recorded over the CURRENT INTEGRATED two-record evidence array; verifier made no lifecycle transition. CLASSIFICATION: independent static reproduction plus archived-state inspection only, not original-assisted runtime, partial/full live compare, independent replacement, or integrated replay. OBSERVATIONS/IDENTITY: assigned engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23/common /home/alex/sots-engine/.git remains binding ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd; assigned RE HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7/common /home/alex/sots-re/.git remains paired binding 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8; assigned trees were not edited. Canonical integrated binding engine ccd8e020...50fd / RE e74ef6cf...bd4 still exactly matches both evidence records. Binary 970b7de7...c841, save 978041ac...0921 and objdump 1eaaef2e...d4cd match. TESTS/REPRODUCTION: py_compile and reproduce_run_d94d4516b9d898793318805e.py exited 0; 22 nonempty static windows plus two strict state tools, empty stderr/no skips. Manifest equals integrated manifest except session; independent state byte-equal. Heldout script exited 0: all seven exact return encodings and 14 shifted-start negative controls passed; 0x2c/0x74, deep-copy, three-delete, description, and three unordered-or-unequal float branches exposed. Actual state: EvNxID 4, turn-3 count 2, event ID 3 full fields/defaults, exact 609080-byte rebuild, RNG leaf 2503 bytes/digest 0978fdf34ff7962f76c2de810dc93e0a. 37 campaign tests pass; final campaign validate passes. Verdict hash b1f643b17e5b63677466e1264126fefb9b9360c0194917f111f3387ddc2a5b08, evidence digest e5073be0...a931. FAILURES/RESIDUALS: no new failed prediction or surprise; historical provenance/description failures remain failures resolved by Astra. No live empty/full, short/long, duplicate/different, NaN, unwind/failure, allocator-family, original differe... (line truncated to 2000 chars)\n \"timestamp\": \"2026-09-10T01:40:39.007537+00:00\"\n}","lineStart":1,"lineEnd":47,"totalLines":47,"truncated":false}},"title":"campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json","time":{"start":1789013840556,"end":1789013840578}},"metadata":{"openai":{"itemId":"fc_0d3d0ca7034730dc016aa22f505ba087d181bd2761a7d3fc8a"}},"id":"prt_08988d2a8001nd0fXSIoABbTOn","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_089889def001fESSqNaa0DBopF"}} +{"type":"tool_use","timestamp":1789013840584,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_4OTgXaw8a3Yw51R7R8iTzMfs","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt"},"output":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\nfile\n\n1: \n2: /home/alex/sots-re/dumps/sots.exe: file format pei-i386\n3: \n4: \n5: Disassembly of section .text:\n6: \n7: 00884cb0 <.text+0x483cb0>:\n8: 884cb0:\t55 \tpush ebp\n9: 884cb1:\t8b ec \tmov ebp,esp\n10: 884cb3:\t6a ff \tpush 0xffffffff\n11: 884cb5:\t68 72 0b 98 00 \tpush 0x980b72\n12: 884cba:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n13: 884cc0:\t50 \tpush eax\n14: 884cc1:\t51 \tpush ecx\n15: 884cc2:\t56 \tpush esi\n16: 884cc3:\t57 \tpush edi\n17: 884cc4:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n18: 884cc9:\t33 c5 \txor eax,ebp\n19: 884ccb:\t50 \tpush eax\n20: 884ccc:\t8d 45 f4 \tlea eax,[ebp-0xc]\n21: 884ccf:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n22: 884cd5:\t8b f9 \tmov edi,ecx\n23: 884cd7:\t8b 4f 04 \tmov ecx,DWORD PTR [edi+0x4]\n24: 884cda:\t8b 75 08 \tmov esi,DWORD PTR [ebp+0x8]\n25: 884cdd:\t3b f1 \tcmp esi,ecx\n26: 884cdf:\t73 59 \tjae 0x884d3a\n27: 884ce1:\t8b 07 \tmov eax,DWORD PTR [edi]\n28: 884ce3:\t3b c6 \tcmp eax,esi\n29: 884ce5:\t77 53 \tja 0x884d3a\n30: 884ce7:\t2b f0 \tsub esi,eax\n31: 884ce9:\tb8 ab aa aa 2a \tmov eax,0x2aaaaaab\n32: 884cee:\tf7 ee \timul esi\n33: 884cf0:\tc1 fa 02 \tsar edx,0x2\n34: 884cf3:\t8b f2 \tmov esi,edx\n35: 884cf5:\tc1 ee 1f \tshr esi,0x1f\n36: 884cf8:\t03 f2 \tadd esi,edx\n37: 884cfa:\t3b 4f 08 \tcmp ecx,DWORD PTR [edi+0x8]\n38: 884cfd:\t75 09 \tjne 0x884d08\n39: 884cff:\t6a 01 \tpush 0x1\n40: 884d01:\t8b cf \tmov ecx,edi\n41: 884d03:\te8 98 f4 ff ff \tcall 0x8841a0\n42: 884d08:\t8b 0f \tmov ecx,DWORD PTR [edi]\n43: 884d0a:\t8d 04 76 \tlea eax,[esi+esi*2]\n44: 884d0d:\t8d 0c c1 \tlea ecx,[ecx+eax*8]\n45: 884d10:\t8b 47 04 \tmov eax,DWORD PTR [edi+0x4]\n46: 884d13:\t89 45 08 \tmov DWORD PTR [ebp+0x8],eax\n47: 884d16:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n48: 884d19:\tc7 45 fc 00 00 00 00 \tmov DWORD PTR [ebp-0x4],0x0\n49: 884d20:\t85 c0 \ttest eax,eax\n50: 884d22:\t74 54 \tje 0x884d78\n51: 884d24:\tc7 00 7c f0 a0 00 \tmov DWORD PTR [eax],0xa0f07c\n52: 884d2a:\t8b 51 04 \tmov edx,DWORD PTR [ecx+0x4]\n53: 884d2d:\t83 c1 08 \tadd ecx,0x8\n54: 884d30:\tc6 45 fc 01 \tmov BYTE PTR [ebp-0x4],0x1\n55: 884d34:\t89 50 04 \tmov DWORD PTR [eax+0x4],edx\n56: 884d37:\t51 \tpush ecx\n57: 884d38:\teb 36 \tjmp 0x884d70\n58: 884d3a:\t3b 4f 08 \tcmp ecx,DWORD PTR [edi+0x8]\n59: 884d3d:\t75 09 \tjne 0x884d48\n60: 884d3f:\t6a 01 \tpush 0x1\n61: 884d41:\t8b cf \tmov ecx,edi\n62: 884d43:\te8 58 f4 ff ff \tcall 0x8841a0\n63: 884d48:\t8b 47 04 \tmov eax,DWORD PTR [edi+0x4]\n64: 884d4b:\t89 45 08 \tmov DWORD PTR [ebp+0x8],eax\n65: 884d4e:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n66: 884d51:\tc7 45 fc 02 00 00 00 \tmov DWORD PTR [ebp-0x4],0x2\n67: 884d58:\t85 c0 \ttest eax,eax\n68: 884d5a:\t74 1c \tje 0x884d78\n69: 884d5c:\tc7 00 7c f0 a0 00 \tmov DWORD PTR [eax],0xa0f07c\n70: 884d62:\t8b 4e 04 \tmov ecx,DWORD PTR [esi+0x4]\n71: 884d65:\t83 c6 08 \tadd esi,0x8\n72: 884d68:\tc6 45 fc 03 \tmov BYTE PTR [ebp-0x4],0x3\n73: 884d6c:\t89 48 04 \tmov DWORD PTR [eax+0x4],ecx\n74: 884d6f:\t56 \tpush esi\n75: 884d70:\t8d 48 08 \tlea ecx,[eax+0x8]\n76: 884d73:\te8 d8 4a ef ff \tcall 0x779850\n77: 884d78:\t83 47 04 18 \tadd DWORD PTR [edi+0x4],0x18\n78: 884d7c:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n79: 884d7f:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n80: 884d86:\t59 \tpop ecx\n81: 884d87:\t5f \tpop edi\n82: 884d88:\t5e \tpop esi\n83: 884d89:\t8b e5 \tmov esp,ebp\n84: 884d8b:\t5d \tpop ebp\n85: 884d8c:\tc2 04 00 \tret 0x4\n\n(End of file - total 85 lines)\n","metadata":{"preview":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00884cb0 <.text+0x483cb0>:\n 884cb0:\t55 \tpush ebp\n 884cb1:\t8b ec \tmov ebp,esp\n 884cb3:\t6a ff \tpush 0xffffffff\n 884cb5:\t68 72 0b 98 00 \tpush 0x980b72\n 884cba:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 884cc0:\t50 \tpush eax\n 884cc1:\t51 \tpush ecx\n 884cc2:\t56 \tpush esi\n 884cc3:\t57 \tpush edi\n 884cc4:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 884cc9:\t33 c5 \txor eax,ebp\n 884ccb:\t50 \tpush eax\n 884ccc:\t8d 45 f4 \tlea eax,[ebp-0xc]","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt","text":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00884cb0 <.text+0x483cb0>:\n 884cb0:\t55 \tpush ebp\n 884cb1:\t8b ec \tmov ebp,esp\n 884cb3:\t6a ff \tpush 0xffffffff\n 884cb5:\t68 72 0b 98 00 \tpush 0x980b72\n 884cba:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 884cc0:\t50 \tpush eax\n 884cc1:\t51 \tpush ecx\n 884cc2:\t56 \tpush esi\n 884cc3:\t57 \tpush edi\n 884cc4:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 884cc9:\t33 c5 \txor eax,ebp\n 884ccb:\t50 \tpush eax\n 884ccc:\t8d 45 f4 \tlea eax,[ebp-0xc]\n 884ccf:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n 884cd5:\t8b f9 \tmov edi,ecx\n 884cd7:\t8b 4f 04 \tmov ecx,DWORD PTR [edi+0x4]\n 884cda:\t8b 75 08 \tmov esi,DWORD PTR [ebp+0x8]\n 884cdd:\t3b f1 \tcmp esi,ecx\n 884cdf:\t73 59 \tjae 0x884d3a\n 884ce1:\t8b 07 \tmov eax,DWORD PTR [edi]\n 884ce3:\t3b c6 \tcmp eax,esi\n 884ce5:\t77 53 \tja 0x884d3a\n 884ce7:\t2b f0 \tsub esi,eax\n 884ce9:\tb8 ab aa aa 2a \tmov eax,0x2aaaaaab\n 884cee:\tf7 ee \timul esi\n 884cf0:\tc1 fa 02 \tsar edx,0x2\n 884cf3:\t8b f2 \tmov esi,edx\n 884cf5:\tc1 ee 1f \tshr esi,0x1f\n 884cf8:\t03 f2 \tadd esi,edx\n 884cfa:\t3b 4f 08 \tcmp ecx,DWORD PTR [edi+0x8]\n 884cfd:\t75 09 \tjne 0x884d08\n 884cff:\t6a 01 \tpush 0x1\n 884d01:\t8b cf \tmov ecx,edi\n 884d03:\te8 98 f4 ff ff \tcall 0x8841a0\n 884d08:\t8b 0f \tmov ecx,DWORD PTR [edi]\n 884d0a:\t8d 04 76 \tlea eax,[esi+esi*2]\n 884d0d:\t8d 0c c1 \tlea ecx,[ecx+eax*8]\n 884d10:\t8b 47 04 \tmov eax,DWORD PTR [edi+0x4]\n 884d13:\t89 45 08 \tmov DWORD PTR [ebp+0x8],eax\n 884d16:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n 884d19:\tc7 45 fc 00 00 00 00 \tmov DWORD PTR [ebp-0x4],0x0\n 884d20:\t85 c0 \ttest eax,eax\n 884d22:\t74 54 \tje 0x884d78\n 884d24:\tc7 00 7c f0 a0 00 \tmov DWORD PTR [eax],0xa0f07c\n 884d2a:\t8b 51 04 \tmov edx,DWORD PTR [ecx+0x4]\n 884d2d:\t83 c1 08 \tadd ecx,0x8\n 884d30:\tc6 45 fc 01 \tmov BYTE PTR [ebp-0x4],0x1\n 884d34:\t89 50 04 \tmov DWORD PTR [eax+0x4],edx\n 884d37:\t51 \tpush ecx\n 884d38:\teb 36 \tjmp 0x884d70\n 884d3a:\t3b 4f 08 \tcmp ecx,DWORD PTR [edi+0x8]\n 884d3d:\t75 09 \tjne 0x884d48\n 884d3f:\t6a 01 \tpush 0x1\n 884d41:\t8b cf \tmov ecx,edi\n 884d43:\te8 58 f4 ff ff \tcall 0x8841a0\n 884d48:\t8b 47 04 \tmov eax,DWORD PTR [edi+0x4]\n 884d4b:\t89 45 08 \tmov DWORD PTR [ebp+0x8],eax\n 884d4e:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n 884d51:\tc7 45 fc 02 00 00 00 \tmov DWORD PTR [ebp-0x4],0x2\n 884d58:\t85 c0 \ttest eax,eax\n 884d5a:\t74 1c \tje 0x884d78\n 884d5c:\tc7 00 7c f0 a0 00 \tmov DWORD PTR [eax],0xa0f07c\n 884d62:\t8b 4e 04 \tmov ecx,DWORD PTR [esi+0x4]\n 884d65:\t83 c6 08 \tadd esi,0x8\n 884d68:\tc6 45 fc 03 \tmov BYTE PTR [ebp-0x4],0x3\n 884d6c:\t89 48 04 \tmov DWORD PTR [eax+0x4],ecx\n 884d6f:\t56 \tpush esi\n 884d70:\t8d 48 08 \tlea ecx,[eax+0x8]\n 884d73:\te8 d8 4a ef ff \tcall 0x779850\n 884d78:\t83 47 04 18 \tadd DWORD PTR [edi+0x4],0x18\n 884d7c:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n 884d7f:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n 884d86:\t59 \tpop ecx\n 884d87:\t5f \tpop edi\n 884d88:\t5e \tpop esi\n 884d89:\t8b e5 \tmov esp,ebp\n 884d8b:\t5d \tpop ebp\n 884d8c:\tc2 04 00 \tret 0x4","lineStart":1,"lineEnd":85,"totalLines":85,"truncated":false}},"title":"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt","time":{"start":1789013840550,"end":1789013840582}},"metadata":{"openai":{"itemId":"fc_0d3d0ca7034730dc016aa22f505b9487d196cba07f088371b3"}},"id":"prt_08988d29a001zcgP4xY5u9KfZA","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_089889def001fESSqNaa0DBopF"}} +{"type":"tool_use","timestamp":1789013840599,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"grep","callID":"call_XCojtAN8k068AKhYKubOngHH","state":{"status":"completed","input":{"pattern":"def .*resolve|invalidated|resolve_parser|add_parser\\(\"resolve|--explanation","path":"/home/alex/sots-re/tools/campaign.py"},"output":"Found 8 matches\n/home/alex/sots-re/tools/vtable_map.py:\n Line 679: def resolve_site(code, fva, ins, kinds, wr, tgts, n, k, carrier=()):\n\n Line 930: def resolve_all(d, vfts):\n\n\n/home/alex/sots-re/tools/campaign.py:\n Line 499: def resolve(self, sid, actor, role, model, explanation, probe):\n\n Line 511: \"invalidated_evidence\": c.get(\"evidence\", []), \"invalidated_checkpoint\": c[\"checkpoint\"]}\n\n Line 520: verdict[\"verdict\"] = \"invalidated\"\n\n Line 578: s = identified(\"resolve\"); s.add_argument(\"surprise\"); s.add_argument(\"--explanation\", required=True); s.add_argument(\"--probe\", required=True)\n\n Line 581: s.add_argument(\"--verdict\", required=True, choices=[\"pass\", \"fail\"]); s.add_argument(\"--explanation\", required=True)\n\n\n/home/alex/sots-re/tools/check_agent_config.py:\n Line 15: def check(root: Path, resolved: bool = False) -> list[str]:\n","metadata":{"matches":8,"truncated":false},"title":"def .*resolve|invalidated|resolve_parser|add_parser\\(\"resolve|--explanation","time":{"start":1789013840562,"end":1789013840586}},"metadata":{"openai":{"itemId":"fc_0d3d0ca7034730dc016aa22f505ba887d1973be647fa7850ac"}},"id":"prt_08988d2ae001xRHJ1QiYFQYke1","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_089889def001fESSqNaa0DBopF"}} +{"type":"tool_use","timestamp":1789013840605,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_W7GjQRMF8gFJkRmASUnXjacM","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/leases/vm144.json"},"output":"/home/alex/sots-re/campaign/runtime/leases/vm144.json\nfile\n\n1: {\n2: \"explicit_lead_release\": false,\n3: \"model\": \"openai/gpt-5.5\",\n4: \"owner\": \"housekeeping-completion\",\n5: \"release_reason\": null,\n6: \"released_at\": \"2026-09-09T22:03:21.248149+00:00\",\n7: \"released_by\": \"housekeeping-completion\",\n8: \"resource\": \"vm144\",\n9: \"role\": \"lab\",\n10: \"schema\": \"sots-lease/1\",\n11: \"status\": \"released\",\n12: \"timestamp\": \"2026-09-09T21:56:15.518234+00:00\",\n13: \"token\": \"e56f3ae337d7d1fbd922dc0843553d8c418078c94ce4e28b3279bee9c4f1cabc\"\n14: }\n\n(End of file - total 14 lines)\n","metadata":{"preview":"{\n \"explicit_lead_release\": false,\n \"model\": \"openai/gpt-5.5\",\n \"owner\": \"housekeeping-completion\",\n \"release_reason\": null,\n \"released_at\": \"2026-09-09T22:03:21.248149+00:00\",\n \"released_by\": \"housekeeping-completion\",\n \"resource\": \"vm144\",\n \"role\": \"lab\",\n \"schema\": \"sots-lease/1\",\n \"status\": \"released\",\n \"timestamp\": \"2026-09-09T21:56:15.518234+00:00\",\n \"token\": \"e56f3ae337d7d1fbd922dc0843553d8c418078c94ce4e28b3279bee9c4f1cabc\"\n}","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/leases/vm144.json","text":"{\n \"explicit_lead_release\": false,\n \"model\": \"openai/gpt-5.5\",\n \"owner\": \"housekeeping-completion\",\n \"release_reason\": null,\n \"released_at\": \"2026-09-09T22:03:21.248149+00:00\",\n \"released_by\": \"housekeeping-completion\",\n \"resource\": \"vm144\",\n \"role\": \"lab\",\n \"schema\": \"sots-lease/1\",\n \"status\": \"released\",\n \"timestamp\": \"2026-09-09T21:56:15.518234+00:00\",\n \"token\": \"e56f3ae337d7d1fbd922dc0843553d8c418078c94ce4e28b3279bee9c4f1cabc\"\n}","lineStart":1,"lineEnd":14,"totalLines":14,"truncated":false}},"title":"campaign/runtime/leases/vm144.json","time":{"start":1789013840572,"end":1789013840603}},"metadata":{"openai":{"itemId":"fc_0d3d0ca7034730dc016aa22f505bb087d1b2a7f687994e54ca"}},"id":"prt_08988d2b4001FmIk2mimA57EP9","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_089889def001fESSqNaa0DBopF"}} +{"type":"step_finish","timestamp":1789013840761,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_08988d373001ectT1NuR7RpcAD","reason":"tool-calls","snapshot":"d8d25510a0d6064c2a918d99dffbb3c35f58c346","messageID":"msg_089889def001fESSqNaa0DBopF","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":23397,"input":7029,"output":356,"reasoning":12,"cache":{"write":0,"read":16000}},"cost":0}} +{"type":"step_start","timestamp":1789013844376,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_08988e193001eYmfzGzFj9aZ36","messageID":"msg_08988d3a7001uedGoHRZy1zcB4","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"8652148ed269bbb9c19e99b75992ded7db89e2b0","type":"step-start"}} +{"type":"tool_use","timestamp":1789013847338,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"bash","callID":"call_zjiZkMgWRWKB4f76TiYJPs2m","state":{"status":"completed","input":{"command":"git -C /tmp/opencode/sots-final-research-engine rev-parse HEAD --git-common-dir && git -C /tmp/opencode/sots-final-research-re rev-parse HEAD --git-common-dir && git -C /tmp/opencode/sots-final-research-engine status --short && git -C /tmp/opencode/sots-final-research-re status --short"},"output":"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\n/home/alex/sots-engine/.git\n3bfde5a70d874a723e797a695bbd847fd82c0aa7\n/home/alex/sots-re/.git\n M CONTRIBUTING.md\n M README.md\n M docs/S-standalone.md\n M src/app/turn.cpp\n M src/game/sim/CMakeLists.txt\n M src/mars/rng/mt19937.cpp\n M src/mars/rng/mt19937.h\n M tests/app/CMakeLists.txt\n M tests/app/test_command_replay.cpp\n M tests/app/test_turn.cpp\n M tests/app/test_turn_record.cpp\n M tests/game_config/CMakeLists.txt\n M tests/game_data/CMakeLists.txt\n M tests/game_design/CMakeLists.txt\n M tests/game_design/test_census_saves.cpp\n M tests/game_sim/CMakeLists.txt\n M tests/mars_stream/CMakeLists.txt\n M tests/mars_stream/test_domains.cpp\n M tests/mars_stream/test_rng.cpp\n M tests/mars_stream/test_save.cpp\n M tests/mars_text/CMakeLists.txt\n M tests/mars_vfs/CMakeLists.txt\n M tools/clean_room_check.sh\n?? AGENTS.md\n?? CLAUDE.md\n?? docs/architecture.md\n?? opencode.json\n?? tools/clean_room_check.py\n M README.md\n M campaign/DASHBOARD.md\n M campaign/backlog.md\n M campaign/board.md\n M campaign/open-questions.md\n M findings/00-strategy.md\n M findings/subsystems/nav-classifier-live.md\n M findings/subsystems/research-replace.md\n M guides/method-rules.md\n D scripts/forgejo_campaign.py\n M tools/DASHBOARD_README.md\n M tools/dashboard.py\n D tools/displacement.py\n M tools/gate.sh\n M tools/standalone_report.py\n?? AGENTS.md\n?? CLAUDE.md\n?? campaign/README.md\n?? campaign/agents/\n?? campaign/contract.schema.json\n?? campaign/contracts/\n?? campaign/current.json\n?? campaign/models.json\n?? campaign/pilots/\n?? campaign/research/\n?? campaign/rollout/\n?? guides/multi-agent-workflow.md\n?? guides/windows-lab-housekeeping.md\n?? opencode.json\n?? tools/campaign.py\n?? tools/check_agent_config.py\n?? tools/evidence.py\n?? tools/gate.py\n?? tools/run_agent.py\n?? tools/select_evidence.py\n?? tools/windows-housekeeping/\n?? verify/campaign/\n?? verify/config/\n?? verify/publishing/\n?? verify/results/housekeeping/\n?? verify/tooling/\n","metadata":{"output":"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\n/home/alex/sots-engine/.git\n3bfde5a70d874a723e797a695bbd847fd82c0aa7\n/home/alex/sots-re/.git\n M CONTRIBUTING.md\n M README.md\n M docs/S-standalone.md\n M src/app/turn.cpp\n M src/game/sim/CMakeLists.txt\n M src/mars/rng/mt19937.cpp\n M src/mars/rng/mt19937.h\n M tests/app/CMakeLists.txt\n M tests/app/test_command_replay.cpp\n M tests/app/test_turn.cpp\n M tests/app/test_turn_record.cpp\n M tests/game_config/CMakeLists.txt\n M tests/game_data/CMakeLists.txt\n M tests/game_design/CMakeLists.txt\n M tests/game_design/test_census_saves.cpp\n M tests/game_sim/CMakeLists.txt\n M tests/mars_stream/CMakeLists.txt\n M tests/mars_stream/test_domains.cpp\n M tests/mars_stream/test_rng.cpp\n M tests/mars_stream/test_save.cpp\n M tests/mars_text/CMakeLists.txt\n M tests/mars_vfs/CMakeLists.txt\n M tools/clean_room_check.sh\n?? AGENTS.md\n?? CLAUDE.md\n?? docs/architecture.md\n?? opencode.json\n?? tools/clean_room_check.py\n M README.md\n M campaign/DASHBOARD.md\n M campaign/backlog.md\n M campaign/board.md\n M campaign/open-questions.md\n M findings/00-strategy.md\n M findings/subsystems/nav-classifier-live.md\n M findings/subsystems/research-replace.md\n M guides/method-rules.md\n D scripts/forgejo_campaign.py\n M tools/DASHBOARD_README.md\n M tools/dashboard.py\n D tools/displacement.py\n M tools/gate.sh\n M tools/standalone_report.py\n?? AGENTS.md\n?? CLAUDE.md\n?? campaign/README.md\n?? campaign/agents/\n?? campaign/contract.schema.json\n?? campaign/contracts/\n?? campaign/current.json\n?? campaign/models.json\n?? campaign/pilots/\n?? campaign/research/\n?? campaign/rollout/\n?? guides/multi-agent-workflow.md\n?? guides/windows-lab-housekeeping.md\n?? opencode.json\n?? tools/campaign.py\n?? tools/check_agent_config.py\n?? tools/evidence.py\n?? tools/gate.py\n?? tools/run_agent.py\n?? tools/select_evidence.py\n?? tools/windows-housekeeping/\n?? verify/campaign/\n?? verify/config/\n?? verify/publishing/\n?? verify/results/housekeeping/\n?? verify/tooling/\n","exit":0,"truncated":false},"title":"git -C /tmp/opencode/sots-final-research-engine rev-parse HEAD --git-common-dir && git -C /tmp/opencode/sots-final-research-re rev-parse HEAD --git-common-dir && git -C /tmp/opencode/sots-final-research-engine status --short && git -C /tmp/opencode/sots-final-research-re status --short","time":{"start":1789013847315,"end":1789013847336}},"metadata":{"openai":{"itemId":"fc_0c283a1bac120543016aa22f54558087d1bd0bb3425f44923b"}},"id":"prt_08988e1960010SdVmaSqA8iIEJ","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_08988d3a7001uedGoHRZy1zcB4"}} +{"type":"step_finish","timestamp":1789013847395,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_08988ed5f001TZBskN2OyCh1TR","reason":"tool-calls","snapshot":"4b138938314e6579939271d9ee7503ecb49cde59","messageID":"msg_08988d3a7001uedGoHRZy1zcB4","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":29650,"input":6644,"output":94,"reasoning":0,"cache":{"write":0,"read":22912}},"cost":0}} +{"type":"step_start","timestamp":1789013850762,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_08988fa86001atXepefazV3ZCQ","messageID":"msg_08988ed8d001LBHKpuZBVD0rTD","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"8f7d5a966805384ebc2cf49e47464107586841e6","type":"step-start"}} +{"type":"tool_use","timestamp":1789013869478,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"bash","callID":"call_Lw6J3PhyQFqNz1nlvgAhyRem","state":{"status":"completed","input":{"command":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re checkpoint research-live-record-bridge --actor 'live-record surprise resolver' --role resolver --model openai/gpt-6-astra --session run-f63d1e050a7ee3fac7b44885 --summary 'OBSERVATIONS: read canonical policy, contract, supplied checkpoint, sole open surprise s-5a78d3a0a10c1f8545df8eb1, affected accepted research-completion-abi contract/checkpoint and raw get/create/append windows. Raw entry contains no store to EBP-0x20 before append. Assigned HEAD/common-dir verified: engine 7741d42fc5e4e761e6449bdaf0e4a61d00036a23 /home/alex/sots-engine/.git; RE 3bfde5a70d874a723e797a695bbd847fd82c0aa7 /home/alex/sots-re/.git. Both trees have pre-existing dirty/untracked files; no edits. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 are not freshly rehashed. Shell overlay denied combined source-binding/status command; no workaround. Manifest records binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841, objdump 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd and 9 successful static captures, not game execution. DECISION pending further dependency/provenance review; no acceptance. VM144 local lease released; no live access checked, no resources acquired/mutated, no experiment, delegation or source edit. BLOCKER: affected architecture remains blocked; fresh executable rehash/reproduction unavailable in resolver shell scope.' --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt --next-action 'Inspect affected accepted interpretation and campaign resolve semantics to record a scoped decision and invalidate the false zero-initialization acceptance.'"},"output":"{\n \"actor\": \"live-record surprise resolver\",\n \"artifacts\": [\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\",\n \"sha256\": \"ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\",\n \"sha256\": \"f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\",\n \"sha256\": \"57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15\"\n }\n ],\n \"basis\": \"6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"d08b4bbf364f3305ee2fef98\",\n \"model\": \"openai/gpt-6-astra\",\n \"next_action\": \"Inspect affected accepted interpretation and campaign resolve semantics to record a scoped decision and invalidate the false zero-initialization acceptance.\",\n \"role\": \"resolver\",\n \"schema\": \"sots-checkpoint/1\",\n \"session\": \"run-f63d1e050a7ee3fac7b44885\",\n \"summary\": \"OBSERVATIONS: read canonical policy, contract, supplied checkpoint, sole open surprise s-5a78d3a0a10c1f8545df8eb1, affected accepted research-completion-abi contract/checkpoint and raw get/create/append windows. Raw entry contains no store to EBP-0x20 before append. Assigned HEAD/common-dir verified: engine 7741d42fc5e4e761e6449bdaf0e4a61d00036a23 /home/alex/sots-engine/.git; RE 3bfde5a70d874a723e797a695bbd847fd82c0aa7 /home/alex/sots-re/.git. Both trees have pre-existing dirty/untracked files; no edits. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 are not freshly rehashed. Shell overlay denied combined source-binding/status command; no workaround. Manifest records binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841, objdump 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd and 9 successful static captures, not game execution. DECISION pending further dependency/provenance review; no acceptance. VM144 local lease released; no live access checked, no resources acquired/mutated, no experiment, delegation or source edit. BLOCKER: affected architecture remains blocked; fresh executable rehash/reproduction unavailable in resolver shell scope.\",\n \"timestamp\": \"2026-09-10T04:17:49.453904+00:00\"\n}\n","metadata":{"output":"{\n \"actor\": \"live-record surprise resolver\",\n \"artifacts\": [\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\",\n \"sha256\": \"ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\",\n \"sha256\": \"f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\",\n \"sha256\": \"57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15\"\n }\n ],\n \"basis\": \"6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"d08b4bbf364f3305ee2fef98\",\n \"model\": \"openai/gpt-6-astra\",\n \"next_action\": \"Inspect affected accepted interpretation and campaign resolve semantics to record a scoped decision and invalidate the false zero-initialization acceptance.\",\n \"role\": \"resolver\",\n \"schema\": \"sots-checkpoint/1\",\n \"session\": \"run-f63d1e050a7ee3fac7b44885\",\n \"summary\": \"OBSERVATIONS: read canonical policy, contract, supplied checkpoint, sole open surprise s-5a78d3a0a10c1f8545df8eb1, affected accepted research-completion-abi contract/checkpoint and raw get/create/append windows. Raw entry contains no store to EBP-0x20 before append. Assigned HEAD/common-dir verified: engine 7741d42fc5e4e761e6449bdaf0e4a61d00036a23 /home/alex/sots-engine/.git; RE 3bfde5a70d874a723e797a695bbd847fd82c0aa7 /home/alex/sots-re/.git. Both trees have pre-existing dirty/untracked files; no edits. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 are not freshly rehashed. Shell overlay denied combined source-binding/status command; no workaround. Manifest records binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841, objdump 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd and 9 successful static captures, not game execution. DECISION pending further dependency/provenance review; no acceptance. VM144 local lease released; no live access checked, no resources acquired/mutated, no experiment, delegation or source edit. BLOCKER: affected architecture remains blocked; fresh executable rehash/reproduction unavailable in resolver shell scope.\",\n \"timestamp\": \"2026-09-10T04:17:49.453904+00:00\"\n}\n","exit":0,"truncated":false},"title":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re checkpoint research-live-record-bridge --actor 'live-record surprise resolver' --role resolver --model openai/gpt-6-astra --session run-f63d1e050a7ee3fac7b44885 --summary 'OBSERVATIONS: read canonical policy, contract, supplied checkpoint, sole open surprise s-5a78d3a0a10c1f8545df8eb1, affected accepted research-completion-abi contract/checkpoint and raw get/create/append windows. Raw entry contains no store to EBP-0x20 before append. Assigned HEAD/common-dir verified: engine 7741d42fc5e4e761e6449bdaf0e4a61d00036a23 /home/alex/sots-engine/.git; RE 3bfde5a70d874a723e797a695bbd847fd82c0aa7 /home/alex/sots-re/.git. Both trees have pre-existing dirty/untracked files; no edits. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 are not freshly rehashed. Shell overlay denied combined source-binding/status command; no workaround. Manifest records binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841, objdump 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd and 9 successful static captures, not game execution. DECISION pending further dependency/provenance review; no acceptance. VM144 local lease released; no live access checked, no resources acquired/mutated, no experiment, delegation or source edit. BLOCKER: affected architecture remains blocked; fresh executable rehash/reproduction unavailable in resolver shell scope.' --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt --next-action 'Inspect affected accepted interpretation and campaign resolve semantics to record a scoped decision and invalidate the false zero-initialization acceptance.'","time":{"start":1789013869409,"end":1789013869476}},"metadata":{"openai":{"itemId":"fc_054aac8dd5288e76016aa22f5aeae487d188f7dcf14d233e0f"}},"id":"prt_08988fc09001W6m1dt9fTA3Wfv","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_08988ed8d001LBHKpuZBVD0rTD"}} +{"type":"step_finish","timestamp":1789013869521,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898943ce001rDY6brC1AqX9nP","reason":"tool-calls","snapshot":"3e88e422f1b989732453b9996c35f5098f5f12c2","messageID":"msg_08988ed8d001LBHKpuZBVD0rTD","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":30851,"input":783,"output":618,"reasoning":10,"cache":{"write":0,"read":29440}},"cost":0}} +{"type":"step_start","timestamp":1789013878700,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898967a6001L5rG089RNEkCK4","messageID":"msg_0898943f9001FmQKRwwNMnIsCx","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"8eba5b001d7a53a0007bf6445ec1895e39102e69","type":"step-start"}} +{"type":"tool_use","timestamp":1789013878836,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_DXcbg6ZpcWiBdn5y4qTfhDJo","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/tools/campaign.py","offset":474,"limit":64},"output":"/home/alex/sots-re/tools/campaign.py\nfile\n\n474: self.check_verdict(c)\n475: event = {\"contract\": cid, \"from\": c[\"status\"], \"to\": target, \"timestamp\": now(), \"actor\": actor, \"role\": role, \"model\": model}\n476: # Write blocking intent first; unresolved surprises also guard against interrupted writes.\n477: atomic_json(self.path(f\"campaign/runtime/transitions/{cid}-{secrets.token_hex(12)}.json\"), event)\n478: c[\"status\"] = target\n479: if target == \"needs-revision\":\n480: c[\"evidence\"] = []\n481: c[\"checkpoint\"] = None\n482: self.save(c)\n483: return c\n484: \n485: def surprise(self, cid, actor, role, model, summary, probe):\n486: self.identity(actor, role, model)\n487: if not summary.strip() or not probe.strip() or len(summary) > 6000 or len(probe) > 2000:\n488: raise ControlError(\"surprise requires bounded explanation and discriminating probe\")\n489: with self.lock():\n490: c = self.load(cid)\n491: sid = \"s-\" + secrets.token_hex(12)\n492: record = {\"schema\": \"sots-surprise/1\", \"id\": sid, \"contract\": cid, \"status\": \"open\", \"summary\": summary,\n493: \"probe\": probe, \"actor\": actor, \"role\": role, \"model\": model, \"timestamp\": now()}\n494: atomic_json(self.path(f\"campaign/runtime/surprises/{sid}.json\"), record)\n495: c[\"status\"] = \"blocked\"\n496: self.save(c)\n497: return record\n498: \n499: def resolve(self, sid, actor, role, model, explanation, probe):\n500: self.identity(actor, role, model)\n501: if role not in {\"lead\", \"resolver\"} or not explanation.strip() or not probe.strip() or len(explanation) > 6000 or len(probe) > 2000:\n502: raise ControlError(\"Astra lead/resolver explanation and discriminating probe required\")\n503: with self.lock():\n504: path = self.path(f\"campaign/runtime/surprises/{self.identifier(sid)}.json\")\n505: s = read_json(path)\n506: if s.get(\"status\") != \"open\":\n507: raise ControlError(\"surprise is not open\")\n508: c = self.load(s[\"contract\"])\n509: decision = {\"schema\": \"sots-decision/1\", \"id\": \"d-\" + secrets.token_hex(12), \"contract\": c[\"id\"], \"surprise\": sid,\n510: \"actor\": actor, \"role\": role, \"model\": model, \"timestamp\": now(), \"explanation\": explanation, \"probe\": probe,\n511: \"invalidated_evidence\": c.get(\"evidence\", []), \"invalidated_checkpoint\": c[\"checkpoint\"]}\n512: atomic_json(self.path(f\"campaign/runtime/decisions/{decision['id']}.json\"), decision)\n513: c[\"evidence\"] = []\n514: c[\"checkpoint\"] = None\n515: c[\"status\"] = \"blocked\"\n516: self.save(c)\n517: vpath = self.path(f\"campaign/runtime/verdicts/{c['id']}.json\")\n518: if vpath.exists():\n519: verdict = read_json(vpath)\n520: verdict[\"verdict\"] = \"invalidated\"\n521: verdict[\"decision\"] = decision[\"id\"]\n522: atomic_json(vpath, verdict)\n523: s.update(status=\"resolved\", decision=decision[\"id\"])\n524: atomic_json(path, s)\n525: if not self.open_surprises(c[\"id\"]):\n526: c[\"status\"] = \"needs-revision\"\n527: self.save(c)\n528: return decision\n529: \n530: def lease(self, action, resource, actor=None, token=None, lead_release=False, role=None, model=None, reason=None):\n531: path = self.path(f\"campaign/runtime/leases/{self.identifier(resource)}.json\")\n532: with self.lock():\n533: current = read_json(path) if path.exists() else None\n534: if current is not None and (not isinstance(current, dict) or current.get(\"schema\") != \"sots-lease/1\" or current.get(\"resource\") != resource or current.get(\"status\") not in {\"held\", \"released\"} or not current.get(\"owner\") or not current.get(\"token\")):\n535: raise ControlError(\"malformed existing lease; explicit repair required\")\n536: if action == \"show\":\n537: return current\n\n(Showing lines 474-537 of 624. Use offset=538 to continue.)\n","metadata":{"preview":" self.check_verdict(c)\n event = {\"contract\": cid, \"from\": c[\"status\"], \"to\": target, \"timestamp\": now(), \"actor\": actor, \"role\": role, \"model\": model}\n # Write blocking intent first; unresolved surprises also guard against interrupted writes.\n atomic_json(self.path(f\"campaign/runtime/transitions/{cid}-{secrets.token_hex(12)}.json\"), event)\n c[\"status\"] = target\n if target == \"needs-revision\":\n c[\"evidence\"] = []\n c[\"checkpoint\"] = None\n self.save(c)\n return c\n\n def surprise(self, cid, actor, role, model, summary, probe):\n self.identity(actor, role, model)\n if not summary.strip() or not probe.strip() or len(summary) > 6000 or len(probe) > 2000:\n raise ControlError(\"surprise requires bounded explanation and discriminating probe\")\n with self.lock():\n c = self.load(cid)\n sid = \"s-\" + secrets.token_hex(12)\n record = {\"schema\": \"sots-surprise/1\", \"id\": sid, \"contract\": cid, \"status\": \"open\", \"summary\": summary,\n \"probe\": probe, \"actor\": actor, \"role\": role, \"model\": model, \"timestamp\": now()}","truncated":true,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/tools/campaign.py","text":" self.check_verdict(c)\n event = {\"contract\": cid, \"from\": c[\"status\"], \"to\": target, \"timestamp\": now(), \"actor\": actor, \"role\": role, \"model\": model}\n # Write blocking intent first; unresolved surprises also guard against interrupted writes.\n atomic_json(self.path(f\"campaign/runtime/transitions/{cid}-{secrets.token_hex(12)}.json\"), event)\n c[\"status\"] = target\n if target == \"needs-revision\":\n c[\"evidence\"] = []\n c[\"checkpoint\"] = None\n self.save(c)\n return c\n\n def surprise(self, cid, actor, role, model, summary, probe):\n self.identity(actor, role, model)\n if not summary.strip() or not probe.strip() or len(summary) > 6000 or len(probe) > 2000:\n raise ControlError(\"surprise requires bounded explanation and discriminating probe\")\n with self.lock():\n c = self.load(cid)\n sid = \"s-\" + secrets.token_hex(12)\n record = {\"schema\": \"sots-surprise/1\", \"id\": sid, \"contract\": cid, \"status\": \"open\", \"summary\": summary,\n \"probe\": probe, \"actor\": actor, \"role\": role, \"model\": model, \"timestamp\": now()}\n atomic_json(self.path(f\"campaign/runtime/surprises/{sid}.json\"), record)\n c[\"status\"] = \"blocked\"\n self.save(c)\n return record\n\n def resolve(self, sid, actor, role, model, explanation, probe):\n self.identity(actor, role, model)\n if role not in {\"lead\", \"resolver\"} or not explanation.strip() or not probe.strip() or len(explanation) > 6000 or len(probe) > 2000:\n raise ControlError(\"Astra lead/resolver explanation and discriminating probe required\")\n with self.lock():\n path = self.path(f\"campaign/runtime/surprises/{self.identifier(sid)}.json\")\n s = read_json(path)\n if s.get(\"status\") != \"open\":\n raise ControlError(\"surprise is not open\")\n c = self.load(s[\"contract\"])\n decision = {\"schema\": \"sots-decision/1\", \"id\": \"d-\" + secrets.token_hex(12), \"contract\": c[\"id\"], \"surprise\": sid,\n \"actor\": actor, \"role\": role, \"model\": model, \"timestamp\": now(), \"explanation\": explanation, \"probe\": probe,\n \"invalidated_evidence\": c.get(\"evidence\", []), \"invalidated_checkpoint\": c[\"checkpoint\"]}\n atomic_json(self.path(f\"campaign/runtime/decisions/{decision['id']}.json\"), decision)\n c[\"evidence\"] = []\n c[\"checkpoint\"] = None\n c[\"status\"] = \"blocked\"\n self.save(c)\n vpath = self.path(f\"campaign/runtime/verdicts/{c['id']}.json\")\n if vpath.exists():\n verdict = read_json(vpath)\n verdict[\"verdict\"] = \"invalidated\"\n verdict[\"decision\"] = decision[\"id\"]\n atomic_json(vpath, verdict)\n s.update(status=\"resolved\", decision=decision[\"id\"])\n atomic_json(path, s)\n if not self.open_surprises(c[\"id\"]):\n c[\"status\"] = \"needs-revision\"\n self.save(c)\n return decision\n\n def lease(self, action, resource, actor=None, token=None, lead_release=False, role=None, model=None, reason=None):\n path = self.path(f\"campaign/runtime/leases/{self.identifier(resource)}.json\")\n with self.lock():\n current = read_json(path) if path.exists() else None\n if current is not None and (not isinstance(current, dict) or current.get(\"schema\") != \"sots-lease/1\" or current.get(\"resource\") != resource or current.get(\"status\") not in {\"held\", \"released\"} or not current.get(\"owner\") or not current.get(\"token\")):\n raise ControlError(\"malformed existing lease; explicit repair required\")\n if action == \"show\":\n return current","lineStart":474,"lineEnd":537,"totalLines":624,"truncated":true}},"title":"tools/campaign.py","time":{"start":1789013878774,"end":1789013878825}},"metadata":{"openai":{"itemId":"fc_007c03943ce28a4d016aa22f76997087d1969fb567585d77e8"}},"id":"prt_0898967a9001tzV0NbcXcwSzF4","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_0898943f9001FmQKRwwNMnIsCx"}} +{"type":"tool_use","timestamp":1789013878836,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_mLrhJw7HHCvHIlOP1ih4xqVn","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt","limit":190},"output":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt\nfile\n\n1: \n2: /home/alex/sots-re/dumps/sots.exe: file format pei-i386\n3: \n4: \n5: Disassembly of section .text:\n6: \n7: 00779850 <.text+0x378850>:\n8: 779850:\t55 \tpush ebp\n9: 779851:\t8b ec \tmov ebp,esp\n10: 779853:\t6a ff \tpush 0xffffffff\n11: 779855:\t68 10 7b 98 00 \tpush 0x987b10\n12: 77985a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n13: 779860:\t50 \tpush eax\n14: 779861:\t83 ec 08 \tsub esp,0x8\n15: 779864:\t53 \tpush ebx\n16: 779865:\t56 \tpush esi\n17: 779866:\t57 \tpush edi\n18: 779867:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n19: 77986c:\t33 c5 \txor eax,ebp\n20: 77986e:\t50 \tpush eax\n21: 77986f:\t8d 45 f4 \tlea eax,[ebp-0xc]\n22: 779872:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n23: 779878:\t89 65 f0 \tmov DWORD PTR [ebp-0x10],esp\n24: 77987b:\t8b f1 \tmov esi,ecx\n25: 77987d:\t89 75 ec \tmov DWORD PTR [ebp-0x14],esi\n26: 779880:\t8b 5d 08 \tmov ebx,DWORD PTR [ebp+0x8]\n27: 779883:\t33 c0 \txor eax,eax\n28: 779885:\t89 06 \tmov DWORD PTR [esi],eax\n29: 779887:\t89 46 04 \tmov DWORD PTR [esi+0x4],eax\n30: 77988a:\t89 46 08 \tmov DWORD PTR [esi+0x8],eax\n31: 77988d:\t8b 4b 04 \tmov ecx,DWORD PTR [ebx+0x4]\n32: 779890:\t2b 0b \tsub ecx,DWORD PTR [ebx]\n33: 779892:\tb8 09 cb 3d 8d \tmov eax,0x8d3dcb09\n34: 779897:\tf7 e9 \timul ecx\n35: 779899:\t03 d1 \tadd edx,ecx\n36: 77989b:\tc1 fa 06 \tsar edx,0x6\n37: 77989e:\t8b fa \tmov edi,edx\n38: 7798a0:\tb8 00 00 00 00 \tmov eax,0x0\n39: 7798a5:\tc1 ef 1f \tshr edi,0x1f\n40: 7798a8:\t03 fa \tadd edi,edx\n41: 7798aa:\t89 06 \tmov DWORD PTR [esi],eax\n42: 7798ac:\t89 46 04 \tmov DWORD PTR [esi+0x4],eax\n43: 7798af:\t89 46 08 \tmov DWORD PTR [esi+0x8],eax\n44: 7798b2:\t74 4b \tje 0x7798ff\n45: 7798b4:\t81 ff 2c f7 34 02 \tcmp edi,0x234f72c\n46: 7798ba:\t76 0b \tjbe 0x7798c7\n47: 7798bc:\t68 90 1f 9e 00 \tpush 0x9e1f90\n48: 7798c1:\tff 15 50 d1 9d 00 \tcall DWORD PTR ds:0x9dd150\n49: 7798c7:\t8d 4e 0c \tlea ecx,[esi+0xc]\n50: 7798ca:\t57 \tpush edi\n51: 7798cb:\te8 70 16 01 00 \tcall 0x78af40\n52: 7798d0:\t6b ff 74 \timul edi,edi,0x74\n53: 7798d3:\t8b 55 08 \tmov edx,DWORD PTR [ebp+0x8]\n54: 7798d6:\t52 \tpush edx\n55: 7798d7:\t8d 56 0c \tlea edx,[esi+0xc]\n56: 7798da:\t52 \tpush edx\n57: 7798db:\t03 f8 \tadd edi,eax\n58: 7798dd:\t89 06 \tmov DWORD PTR [esi],eax\n59: 7798df:\t89 46 04 \tmov DWORD PTR [esi+0x4],eax\n60: 7798e2:\t89 7e 08 \tmov DWORD PTR [esi+0x8],edi\n61: 7798e5:\t8b 4b 04 \tmov ecx,DWORD PTR [ebx+0x4]\n62: 7798e8:\t8b 1b \tmov ebx,DWORD PTR [ebx]\n63: 7798ea:\t50 \tpush eax\n64: 7798eb:\t51 \tpush ecx\n65: 7798ec:\t53 \tpush ebx\n66: 7798ed:\tc7 45 fc 00 00 00 00 \tmov DWORD PTR [ebp-0x4],0x0\n67: 7798f4:\te8 a7 8c ff ff \tcall 0x7725a0\n68: 7798f9:\t83 c4 14 \tadd esp,0x14\n69: 7798fc:\t89 46 04 \tmov DWORD PTR [esi+0x4],eax\n70: 7798ff:\t8b c6 \tmov eax,esi\n71: 779901:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n72: 779904:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n73: 77990b:\t59 \tpop ecx\n74: 77990c:\t5f \tpop edi\n75: 77990d:\t5e \tpop esi\n76: 77990e:\t5b \tpop ebx\n77: 77990f:\t8b e5 \tmov esp,ebp\n78: 779911:\t5d \tpop ebp\n79: 779912:\tc2 04 00 \tret 0x4\n80: 779915:\t8b 4d ec \tmov ecx,DWORD PTR [ebp-0x14]\n81: 779918:\te8 63 fc ea ff \tcall 0x629580\n82: 77991d:\t6a 00 \tpush 0x0\n83: 77991f:\t6a 00 \tpush 0x0\n84: 779921:\te8 96 b6 1a 00 \tcall 0x924fbc\n85: 779926:\tcc \tint3 \n86: 779927:\tcc \tint3 \n87: 779928:\tcc \tint3 \n88: 779929:\tcc \tint3 \n89: 77992a:\tcc \tint3 \n90: 77992b:\tcc \tint3 \n91: 77992c:\tcc \tint3 \n92: 77992d:\tcc \tint3 \n93: 77992e:\tcc \tint3 \n94: 77992f:\tcc \tint3 \n95: 779930:\t55 \tpush ebp\n96: 779931:\t8b ec \tmov ebp,esp\n97: 779933:\t6a ff \tpush 0xffffffff\n98: 779935:\t68 38 06 97 00 \tpush 0x970638\n99: 77993a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n100: 779940:\t50 \tpush eax\n101: 779941:\t83 ec 20 \tsub esp,0x20\n102: 779944:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n103: 779949:\t33 c5 \txor eax,ebp\n104: 77994b:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n105: 77994e:\t56 \tpush esi\n106: 77994f:\t50 \tpush eax\n107: 779950:\t8d 45 f4 \tlea eax,[ebp-0xc]\n108: 779953:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n109: 779959:\t8b f1 \tmov esi,ecx\n110: 77995b:\t8b 86 8c 00 00 00 \tmov eax,DWORD PTR [esi+0x8c]\n111: 779961:\t85 c0 \ttest eax,eax\n112: 779963:\t75 0c \tjne 0x779971\n113: 779965:\t68 34 24 a2 00 \tpush 0xa22434\n114: 77996a:\te8 e1 05 14 00 \tcall 0x8b9f50\n115: 77996f:\teb 7e \tjmp 0x7799ef\n116: 779971:\t50 \tpush eax\n117: 779972:\te8 09 cc c9 ff \tcall 0x416580\n118: 779977:\t83 c4 04 \tadd esp,0x4\n119: 77997a:\t85 c0 \ttest eax,eax\n120: 77997c:\t74 0c \tje 0x77998a\n121: 77997e:\t68 f8 23 a2 00 \tpush 0xa223f8\n122: 779983:\te8 58 08 14 00 \tcall 0x8ba1e0\n123: 779988:\teb 65 \tjmp 0x7799ef\n124: 77998a:\te8 d1 58 dc ff \tcall 0x53f260\n125: 77998f:\tc7 45 e8 0f 00 00 00 \tmov DWORD PTR [ebp-0x18],0xf\n126: 779996:\tc7 45 e4 00 00 00 00 \tmov DWORD PTR [ebp-0x1c],0x0\n127: 77999d:\tc6 45 d4 00 \tmov BYTE PTR [ebp-0x2c],0x0\n128: 7799a1:\t8d 4d d4 \tlea ecx,[ebp-0x2c]\n129: 7799a4:\t51 \tpush ecx\n130: 7799a5:\t50 \tpush eax\n131: 7799a6:\tc7 45 fc 00 00 00 00 \tmov DWORD PTR [ebp-0x4],0x0\n132: 7799ad:\te8 fe 52 dc ff \tcall 0x53ecb0\n133: 7799b2:\t8b 45 d4 \tmov eax,DWORD PTR [ebp-0x2c]\n134: 7799b5:\t83 c4 08 \tadd esp,0x8\n135: 7799b8:\t83 7d e8 10 \tcmp DWORD PTR [ebp-0x18],0x10\n136: 7799bc:\t73 03 \tjae 0x7799c1\n137: 7799be:\t8d 45 d4 \tlea eax,[ebp-0x2c]\n138: 7799c1:\t8b 96 8c 00 00 00 \tmov edx,DWORD PTR [esi+0x8c]\n139: 7799c7:\t6a 00 \tpush 0x0\n140: 7799c9:\t56 \tpush esi\n141: 7799ca:\t68 a0 8d 77 00 \tpush 0x778da0\n142: 7799cf:\t68 e0 ea 76 00 \tpush 0x76eae0\n143: 7799d4:\t6a 00 \tpush 0x0\n144: 7799d6:\t50 \tpush eax\n145: 7799d7:\t52 \tpush edx\n146: 7799d8:\te8 f3 d7 c9 ff \tcall 0x4171d0\n147: 7799dd:\t83 c4 1c \tadd esp,0x1c\n148: 7799e0:\t83 7d e8 10 \tcmp DWORD PTR [ebp-0x18],0x10\n149: 7799e4:\t72 0c \tjb 0x7799f2\n150: 7799e6:\t8b 45 d4 \tmov eax,DWORD PTR [ebp-0x2c]\n151: 7799e9:\t50 \tpush eax\n152: 7799ea:\te8 bb b5 1a 00 \tcall 0x924faa\n153: 7799ef:\t83 c4 04 \tadd esp,0x4\n154: 7799f2:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n155: 7799f5:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n156: 7799fc:\t59 \tpop ecx\n157: 7799fd:\t5e \tpop esi\n158: 7799fe:\t8b 4d f0 \tmov ecx,DWORD PTR [ebp-0x10]\n159: 779a01:\t33 cd \txor ecx,ebp\n160: 779a03:\te8 7a b3 1a 00 \tcall 0x924d82\n161: 779a08:\t8b e5 \tmov esp,ebp\n162: 779a0a:\t5d \tpop ebp\n163: 779a0b:\tc3 \tret \n164: 779a0c:\tcc \tint3 \n165: 779a0d:\tcc \tint3 \n166: 779a0e:\tcc \tint3 \n167: 779a0f:\tcc \tint3 \n168: 779a10:\t53 \tpush ebx\n169: 779a11:\t56 \tpush esi\n170: 779a12:\t8b f1 \tmov esi,ecx\n171: 779a14:\t57 \tpush edi\n172: 779a15:\t8b be 24 01 00 00 \tmov edi,DWORD PTR [esi+0x124]\n173: 779a1b:\t33 db \txor ebx,ebx\n174: 779a1d:\t3b fb \tcmp edi,ebx\n175: 779a1f:\t74 \tje 0x779a31\n\n(End of file - total 175 lines)\n","metadata":{"preview":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00779850 <.text+0x378850>:\n 779850:\t55 \tpush ebp\n 779851:\t8b ec \tmov ebp,esp\n 779853:\t6a ff \tpush 0xffffffff\n 779855:\t68 10 7b 98 00 \tpush 0x987b10\n 77985a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 779860:\t50 \tpush eax\n 779861:\t83 ec 08 \tsub esp,0x8\n 779864:\t53 \tpush ebx\n 779865:\t56 \tpush esi\n 779866:\t57 \tpush edi\n 779867:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 77986c:\t33 c5 \txor eax,ebp\n 77986e:\t50 \tpush eax","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt","text":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00779850 <.text+0x378850>:\n 779850:\t55 \tpush ebp\n 779851:\t8b ec \tmov ebp,esp\n 779853:\t6a ff \tpush 0xffffffff\n 779855:\t68 10 7b 98 00 \tpush 0x987b10\n 77985a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 779860:\t50 \tpush eax\n 779861:\t83 ec 08 \tsub esp,0x8\n 779864:\t53 \tpush ebx\n 779865:\t56 \tpush esi\n 779866:\t57 \tpush edi\n 779867:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 77986c:\t33 c5 \txor eax,ebp\n 77986e:\t50 \tpush eax\n 77986f:\t8d 45 f4 \tlea eax,[ebp-0xc]\n 779872:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n 779878:\t89 65 f0 \tmov DWORD PTR [ebp-0x10],esp\n 77987b:\t8b f1 \tmov esi,ecx\n 77987d:\t89 75 ec \tmov DWORD PTR [ebp-0x14],esi\n 779880:\t8b 5d 08 \tmov ebx,DWORD PTR [ebp+0x8]\n 779883:\t33 c0 \txor eax,eax\n 779885:\t89 06 \tmov DWORD PTR [esi],eax\n 779887:\t89 46 04 \tmov DWORD PTR [esi+0x4],eax\n 77988a:\t89 46 08 \tmov DWORD PTR [esi+0x8],eax\n 77988d:\t8b 4b 04 \tmov ecx,DWORD PTR [ebx+0x4]\n 779890:\t2b 0b \tsub ecx,DWORD PTR [ebx]\n 779892:\tb8 09 cb 3d 8d \tmov eax,0x8d3dcb09\n 779897:\tf7 e9 \timul ecx\n 779899:\t03 d1 \tadd edx,ecx\n 77989b:\tc1 fa 06 \tsar edx,0x6\n 77989e:\t8b fa \tmov edi,edx\n 7798a0:\tb8 00 00 00 00 \tmov eax,0x0\n 7798a5:\tc1 ef 1f \tshr edi,0x1f\n 7798a8:\t03 fa \tadd edi,edx\n 7798aa:\t89 06 \tmov DWORD PTR [esi],eax\n 7798ac:\t89 46 04 \tmov DWORD PTR [esi+0x4],eax\n 7798af:\t89 46 08 \tmov DWORD PTR [esi+0x8],eax\n 7798b2:\t74 4b \tje 0x7798ff\n 7798b4:\t81 ff 2c f7 34 02 \tcmp edi,0x234f72c\n 7798ba:\t76 0b \tjbe 0x7798c7\n 7798bc:\t68 90 1f 9e 00 \tpush 0x9e1f90\n 7798c1:\tff 15 50 d1 9d 00 \tcall DWORD PTR ds:0x9dd150\n 7798c7:\t8d 4e 0c \tlea ecx,[esi+0xc]\n 7798ca:\t57 \tpush edi\n 7798cb:\te8 70 16 01 00 \tcall 0x78af40\n 7798d0:\t6b ff 74 \timul edi,edi,0x74\n 7798d3:\t8b 55 08 \tmov edx,DWORD PTR [ebp+0x8]\n 7798d6:\t52 \tpush edx\n 7798d7:\t8d 56 0c \tlea edx,[esi+0xc]\n 7798da:\t52 \tpush edx\n 7798db:\t03 f8 \tadd edi,eax\n 7798dd:\t89 06 \tmov DWORD PTR [esi],eax\n 7798df:\t89 46 04 \tmov DWORD PTR [esi+0x4],eax\n 7798e2:\t89 7e 08 \tmov DWORD PTR [esi+0x8],edi\n 7798e5:\t8b 4b 04 \tmov ecx,DWORD PTR [ebx+0x4]\n 7798e8:\t8b 1b \tmov ebx,DWORD PTR [ebx]\n 7798ea:\t50 \tpush eax\n 7798eb:\t51 \tpush ecx\n 7798ec:\t53 \tpush ebx\n 7798ed:\tc7 45 fc 00 00 00 00 \tmov DWORD PTR [ebp-0x4],0x0\n 7798f4:\te8 a7 8c ff ff \tcall 0x7725a0\n 7798f9:\t83 c4 14 \tadd esp,0x14\n 7798fc:\t89 46 04 \tmov DWORD PTR [esi+0x4],eax\n 7798ff:\t8b c6 \tmov eax,esi\n 779901:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n 779904:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n 77990b:\t59 \tpop ecx\n 77990c:\t5f \tpop edi\n 77990d:\t5e \tpop esi\n 77990e:\t5b \tpop ebx\n 77990f:\t8b e5 \tmov esp,ebp\n 779911:\t5d \tpop ebp\n 779912:\tc2 04 00 \tret 0x4\n 779915:\t8b 4d ec \tmov ecx,DWORD PTR [ebp-0x14]\n 779918:\te8 63 fc ea ff \tcall 0x629580\n 77991d:\t6a 00 \tpush 0x0\n 77991f:\t6a 00 \tpush 0x0\n 779921:\te8 96 b6 1a 00 \tcall 0x924fbc\n 779926:\tcc \tint3 \n 779927:\tcc \tint3 \n 779928:\tcc \tint3 \n 779929:\tcc \tint3 \n 77992a:\tcc \tint3 \n 77992b:\tcc \tint3 \n 77992c:\tcc \tint3 \n 77992d:\tcc \tint3 \n 77992e:\tcc \tint3 \n 77992f:\tcc \tint3 \n 779930:\t55 \tpush ebp\n 779931:\t8b ec \tmov ebp,esp\n 779933:\t6a ff \tpush 0xffffffff\n 779935:\t68 38 06 97 00 \tpush 0x970638\n 77993a:\t64 a1 00 00 00 00 \tmov eax,fs:0x0\n 779940:\t50 \tpush eax\n 779941:\t83 ec 20 \tsub esp,0x20\n 779944:\ta1 78 8b af 00 \tmov eax,ds:0xaf8b78\n 779949:\t33 c5 \txor eax,ebp\n 77994b:\t89 45 f0 \tmov DWORD PTR [ebp-0x10],eax\n 77994e:\t56 \tpush esi\n 77994f:\t50 \tpush eax\n 779950:\t8d 45 f4 \tlea eax,[ebp-0xc]\n 779953:\t64 a3 00 00 00 00 \tmov fs:0x0,eax\n 779959:\t8b f1 \tmov esi,ecx\n 77995b:\t8b 86 8c 00 00 00 \tmov eax,DWORD PTR [esi+0x8c]\n 779961:\t85 c0 \ttest eax,eax\n 779963:\t75 0c \tjne 0x779971\n 779965:\t68 34 24 a2 00 \tpush 0xa22434\n 77996a:\te8 e1 05 14 00 \tcall 0x8b9f50\n 77996f:\teb 7e \tjmp 0x7799ef\n 779971:\t50 \tpush eax\n 779972:\te8 09 cc c9 ff \tcall 0x416580\n 779977:\t83 c4 04 \tadd esp,0x4\n 77997a:\t85 c0 \ttest eax,eax\n 77997c:\t74 0c \tje 0x77998a\n 77997e:\t68 f8 23 a2 00 \tpush 0xa223f8\n 779983:\te8 58 08 14 00 \tcall 0x8ba1e0\n 779988:\teb 65 \tjmp 0x7799ef\n 77998a:\te8 d1 58 dc ff \tcall 0x53f260\n 77998f:\tc7 45 e8 0f 00 00 00 \tmov DWORD PTR [ebp-0x18],0xf\n 779996:\tc7 45 e4 00 00 00 00 \tmov DWORD PTR [ebp-0x1c],0x0\n 77999d:\tc6 45 d4 00 \tmov BYTE PTR [ebp-0x2c],0x0\n 7799a1:\t8d 4d d4 \tlea ecx,[ebp-0x2c]\n 7799a4:\t51 \tpush ecx\n 7799a5:\t50 \tpush eax\n 7799a6:\tc7 45 fc 00 00 00 00 \tmov DWORD PTR [ebp-0x4],0x0\n 7799ad:\te8 fe 52 dc ff \tcall 0x53ecb0\n 7799b2:\t8b 45 d4 \tmov eax,DWORD PTR [ebp-0x2c]\n 7799b5:\t83 c4 08 \tadd esp,0x8\n 7799b8:\t83 7d e8 10 \tcmp DWORD PTR [ebp-0x18],0x10\n 7799bc:\t73 03 \tjae 0x7799c1\n 7799be:\t8d 45 d4 \tlea eax,[ebp-0x2c]\n 7799c1:\t8b 96 8c 00 00 00 \tmov edx,DWORD PTR [esi+0x8c]\n 7799c7:\t6a 00 \tpush 0x0\n 7799c9:\t56 \tpush esi\n 7799ca:\t68 a0 8d 77 00 \tpush 0x778da0\n 7799cf:\t68 e0 ea 76 00 \tpush 0x76eae0\n 7799d4:\t6a 00 \tpush 0x0\n 7799d6:\t50 \tpush eax\n 7799d7:\t52 \tpush edx\n 7799d8:\te8 f3 d7 c9 ff \tcall 0x4171d0\n 7799dd:\t83 c4 1c \tadd esp,0x1c\n 7799e0:\t83 7d e8 10 \tcmp DWORD PTR [ebp-0x18],0x10\n 7799e4:\t72 0c \tjb 0x7799f2\n 7799e6:\t8b 45 d4 \tmov eax,DWORD PTR [ebp-0x2c]\n 7799e9:\t50 \tpush eax\n 7799ea:\te8 bb b5 1a 00 \tcall 0x924faa\n 7799ef:\t83 c4 04 \tadd esp,0x4\n 7799f2:\t8b 4d f4 \tmov ecx,DWORD PTR [ebp-0xc]\n 7799f5:\t64 89 0d 00 00 00 00 \tmov DWORD PTR fs:0x0,ecx\n 7799fc:\t59 \tpop ecx\n 7799fd:\t5e \tpop esi\n 7799fe:\t8b 4d f0 \tmov ecx,DWORD PTR [ebp-0x10]\n 779a01:\t33 cd \txor ecx,ebp\n 779a03:\te8 7a b3 1a 00 \tcall 0x924d82\n 779a08:\t8b e5 \tmov esp,ebp\n 779a0a:\t5d \tpop ebp\n 779a0b:\tc3 \tret \n 779a0c:\tcc \tint3 \n 779a0d:\tcc \tint3 \n 779a0e:\tcc \tint3 \n 779a0f:\tcc \tint3 \n 779a10:\t53 \tpush ebx\n 779a11:\t56 \tpush esi\n 779a12:\t8b f1 \tmov esi,ecx\n 779a14:\t57 \tpush edi\n 779a15:\t8b be 24 01 00 00 \tmov edi,DWORD PTR [esi+0x124]\n 779a1b:\t33 db \txor ebx,ebx\n 779a1d:\t3b fb \tcmp edi,ebx\n 779a1f:\t74 \tje 0x779a31","lineStart":1,"lineEnd":175,"totalLines":175,"truncated":false}},"title":"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt","time":{"start":1789013878809,"end":1789013878832}},"metadata":{"openai":{"itemId":"fc_007c03943ce28a4d016aa22f7699ac87d1bc593277606405a3"}},"id":"prt_08989680a001Hz5wiGSIyNldom","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_0898943f9001FmQKRwwNMnIsCx"}} +{"type":"tool_use","timestamp":1789013878837,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_yOUlwaBvxsGzzzgzDsuagM68","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt"},"output":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt\nfile\n\n1: \n2: /home/alex/sots-re/dumps/sots.exe: file format pei-i386\n3: \n4: \n5: Disassembly of section .text:\n6: \n7: 00629580 <.text+0x228580>:\n8: 629580:\t57 \tpush edi\n9: 629581:\t8b f9 \tmov edi,ecx\n10: 629583:\t83 3f 00 \tcmp DWORD PTR [edi],0x0\n11: 629586:\t74 36 \tje 0x6295be\n12: 629588:\t53 \tpush ebx\n13: 629589:\t56 \tpush esi\n14: 62958a:\tff 15 2c d1 9d 00 \tcall DWORD PTR ds:0x9dd12c\n15: 629590:\t8b 5f 04 \tmov ebx,DWORD PTR [edi+0x4]\n16: 629593:\t8b 37 \tmov esi,DWORD PTR [edi]\n17: 629595:\t3b f3 \tcmp esi,ebx\n18: 629597:\t74 18 \tje 0x6295b1\n19: 629599:\t8d a4 24 00 00 00 00 \tlea esp,[esp+0x0]\n20: 6295a0:\t8b 06 \tmov eax,DWORD PTR [esi]\n21: 6295a2:\t8b 10 \tmov edx,DWORD PTR [eax]\n22: 6295a4:\t6a 00 \tpush 0x0\n23: 6295a6:\t8b ce \tmov ecx,esi\n24: 6295a8:\tff d2 \tcall edx\n25: 6295aa:\t83 c6 74 \tadd esi,0x74\n26: 6295ad:\t3b f3 \tcmp esi,ebx\n27: 6295af:\t75 ef \tjne 0x6295a0\n28: 6295b1:\t8b 07 \tmov eax,DWORD PTR [edi]\n29: 6295b3:\t50 \tpush eax\n30: 6295b4:\te8 f1 b9 2f 00 \tcall 0x924faa\n31: 6295b9:\t83 c4 04 \tadd esp,0x4\n32: 6295bc:\t5e \tpop esi\n33: 6295bd:\t5b \tpop ebx\n34: 6295be:\t33 c0 \txor eax,eax\n35: 6295c0:\t89 07 \tmov DWORD PTR [edi],eax\n36: 6295c2:\t89 47 04 \tmov DWORD PTR [edi+0x4],eax\n37: 6295c5:\t89 47 08 \tmov DWORD PTR [edi+0x8],eax\n38: 6295c8:\t5f \tpop edi\n39: 6295c9:\tc3 \tret \n\n(End of file - total 39 lines)\n","metadata":{"preview":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00629580 <.text+0x228580>:\n 629580:\t57 \tpush edi\n 629581:\t8b f9 \tmov edi,ecx\n 629583:\t83 3f 00 \tcmp DWORD PTR [edi],0x0\n 629586:\t74 36 \tje 0x6295be\n 629588:\t53 \tpush ebx\n 629589:\t56 \tpush esi\n 62958a:\tff 15 2c d1 9d 00 \tcall DWORD PTR ds:0x9dd12c\n 629590:\t8b 5f 04 \tmov ebx,DWORD PTR [edi+0x4]\n 629593:\t8b 37 \tmov esi,DWORD PTR [edi]\n 629595:\t3b f3 \tcmp esi,ebx\n 629597:\t74 18 \tje 0x6295b1\n 629599:\t8d a4 24 00 00 00 00 \tlea esp,[esp+0x0]\n 6295a0:\t8b 06 \tmov eax,DWORD PTR [esi]","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt","text":"\n/home/alex/sots-re/dumps/sots.exe: file format pei-i386\n\n\nDisassembly of section .text:\n\n00629580 <.text+0x228580>:\n 629580:\t57 \tpush edi\n 629581:\t8b f9 \tmov edi,ecx\n 629583:\t83 3f 00 \tcmp DWORD PTR [edi],0x0\n 629586:\t74 36 \tje 0x6295be\n 629588:\t53 \tpush ebx\n 629589:\t56 \tpush esi\n 62958a:\tff 15 2c d1 9d 00 \tcall DWORD PTR ds:0x9dd12c\n 629590:\t8b 5f 04 \tmov ebx,DWORD PTR [edi+0x4]\n 629593:\t8b 37 \tmov esi,DWORD PTR [edi]\n 629595:\t3b f3 \tcmp esi,ebx\n 629597:\t74 18 \tje 0x6295b1\n 629599:\t8d a4 24 00 00 00 00 \tlea esp,[esp+0x0]\n 6295a0:\t8b 06 \tmov eax,DWORD PTR [esi]\n 6295a2:\t8b 10 \tmov edx,DWORD PTR [eax]\n 6295a4:\t6a 00 \tpush 0x0\n 6295a6:\t8b ce \tmov ecx,esi\n 6295a8:\tff d2 \tcall edx\n 6295aa:\t83 c6 74 \tadd esi,0x74\n 6295ad:\t3b f3 \tcmp esi,ebx\n 6295af:\t75 ef \tjne 0x6295a0\n 6295b1:\t8b 07 \tmov eax,DWORD PTR [edi]\n 6295b3:\t50 \tpush eax\n 6295b4:\te8 f1 b9 2f 00 \tcall 0x924faa\n 6295b9:\t83 c4 04 \tadd esp,0x4\n 6295bc:\t5e \tpop esi\n 6295bd:\t5b \tpop ebx\n 6295be:\t33 c0 \txor eax,eax\n 6295c0:\t89 07 \tmov DWORD PTR [edi],eax\n 6295c2:\t89 47 04 \tmov DWORD PTR [edi+0x4],eax\n 6295c5:\t89 47 08 \tmov DWORD PTR [edi+0x8],eax\n 6295c8:\t5f \tpop edi\n 6295c9:\tc3 \tret ","lineStart":1,"lineEnd":39,"totalLines":39,"truncated":false}},"title":"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt","time":{"start":1789013878793,"end":1789013878834}},"metadata":{"openai":{"itemId":"fc_007c03943ce28a4d016aa22f7699a087d1b0b4d10b93d0d85e"}},"id":"prt_089896805001VlLtYbDNlF7EH3","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_0898943f9001FmQKRwwNMnIsCx"}} +{"type":"tool_use","timestamp":1789013878849,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"grep","callID":"call_Hl4xJEWCVMbAAbXOOjz6knUf","state":{"status":"completed","input":{"pattern":"temporary|zero|885380|00885380","path":"/home/alex/sots-re/verify/results/research-completion-abi","include":"*.md"},"output":"Found 33 matches\n/home/alex/sots-re/verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/report.md:\n Line 22: All 22 objdump commands exited zero and every stderr stream is empty. For each paired row below,\n\n\n/home/alex/sots-re/verify/results/research-completion-abi/recovered-static.md:\n Line 25: to `_Myres=15`, `_Mysize=0`, empty first byte; zeros `+4` (therefore both 16-bit turns), `+8`, and\n\n Line 31: from its pre-growth index. Thus append copies the temporary rather than adopting its string header.\n\n Line 42: element's virtual destructor slot 0 with pushed zero, then frees the old array through\n\n Line 60: * `0x00885380` is an ECX-receiver operation over the outer vector at receiver `+4`, takes one\n\n Line 65: * On a miss it initializes a stack `TurnEvents` with vptr `0x00a0f07c` and zero nested-vector\n\n Line 67: it write the requested turn to the stored element at `_Mylast[-1]+4`. It destroys the temporary's\n\n Line 68: nested vector through `0x00629580` and returns the new element. The temporary itself starts with\n\n Line 69: turn zero; append deep-copies that zero before the stored turn is patched.\n\n Line 79: deleting flag zero, frees the old outer allocation through `0x00924faa`, and writes all three\n\n Line 81: * The vtable bytes at `0x00a0f07c` identify slot zero as `0x0062e120`. That scalar-deleting\n\n Line 82: destructor calls `0x00629580` on the nested vector at `+8`; with flag bit zero it does not free the\n\n Line 84: `0x74` steps, frees the nested allocation through `0x00924faa`, and zeros all three nested vector\n\n Line 87: source leaves three zero pointers. A nonempty source allocates `count * 0x74` through\n\n Line 98: and uses `ret 8`. A null bucket or empty nested vector returns zero. It scans in `0x74` steps and\n\n Line 103: uses plain `ret`. `0x00825e21` therefore reaches the matched-element return only when AL is zero,\n\n Line 108: exhaustion returns zero. The wrapper performs no writes, allocation, destruction, ID change,\n\n Line 111: pointer, and passes candidate length/data plus stored length and offset zero to `0x004236a0`.\n\n Line 114: zero; any byte or length difference returns nonzero, which `0x0046f8c0` normalizes to one. Thus\n\n Line 117: it is unreachable for this offset-zero call, and no failure path was executed live. Its exact\n\n Line 125: virtual slot zero and sets outer `_Mylast` to the end of the retained prefix. Thus it removes\n\n Line 133: reaches the constructor/append sequence. The wrapper later destroys its temporary long string, so\n\n Line 136: live allocation failure outcome. `EventStorage::PostEvent` constructs a temporary PlayerEvent,\n\n\n/home/alex/sots-re/verify/results/research-completion-abi/reva-2026-09-09-index.md:\n Line 32: `0x00885380`, `0x00825d40`, `0x00879eb0`, outer TurnEvents append/growth/copy/destruction, nested\n\n Line 37: `objdump-2026-09-09-dedup-helper.txt` was intended to repair that gap with exit-zero GNU objdump 2.38\n\n Line 40: passes both `EvDsc` strings to `0x0046f8c0`; that helper returns one for unequal strings and zero for\n\n Line 41: equal strings. `0x00825e23` jumps to the matched-element return only on zero. Therefore description\n\n Line 55: * `objdump-2026-09-10-dedup-narrow.stdout.txt` / `.stderr.txt`, exact stop `0x00825e65`, exit zero,\n\n Line 57: * `objdump-2026-09-10-dedup-wide.stdout.txt` / `.stderr.txt`, exact stop `0x00825e67`, exit zero,\n\n Line 80: stops. All 22 commands exited zero with empty stderr. This supersedes command-to-terminal-byte\n\n Line 91: 2. Long versus short strings: verify `>= 0x10` cleanup and that the temporary cleanup after\n\n Line 101: 6. Prune boundaries: distinguish zero, one, and two leading stale buckets, plus stale-after-fresh;\n\n\n/home/alex/sots-re/verify/results/research-completion-abi/objdump-2026-09-10-boundary-repair.md:\n Line 24: Both commands exited zero. Their stdout and stderr byte streams were redirected separately and\n","metadata":{"matches":33,"truncated":false},"title":"temporary|zero|885380|00885380","time":{"start":1789013878781,"end":1789013878841}},"metadata":{"openai":{"itemId":"fc_007c03943ce28a4d016aa22f76998c87d19647abf909902e4d"}},"id":"prt_0898967f9001yNFF8gcqbVfz3U","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_0898943f9001FmQKRwwNMnIsCx"}} +{"type":"tool_use","timestamp":1789013878859,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_PYQbtUeCZvxf9DXhMVvJJRIT","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.json","limit":180},"output":"/home/alex/sots-re/campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.json\nfile\n\n1: {\n2: \"actor\": \"live-record surprise resolver\",\n3: \"checkpoint_session\": \"run-f63d1e050a7ee3fac7b44885\",\n4: \"command\": [\n5: \"opencode\",\n6: \"run\",\n7: \"--format\",\n8: \"json\",\n9: \"--model\",\n10: \"openai/gpt-6-astra\",\n11: \"--agent\",\n12: \"sots-resolver\",\n13: \"Start a FRESH bounded campaign quantum (40 steps). No delegation.\\nRole=resolver; requested model=openai/gpt-6-astra; actor=live-record surprise resolver; checkpoint session=run-f63d1e050a7ee3fac7b44885.\\nCanonical state root: /home/alex/sots-re\\nContract: /home/alex/sots-re/campaign/contracts/research-live-record-bridge.json\\nLatest checkpoint: campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json\\nEngine worktree: /tmp/opencode/sots-final-research-engine\\nRE worktree: /tmp/opencode/sots-final-research-re\\nRead canonical campaign/README.md, contract, latest checkpoint and open surprises before work. Verify source/worktree/resource identities. Only edit owned scope. Missing state means blocked. Do not commit, stage, push or mutate lab resources without explicit authority and a lease. Checkpoint every 20 tool calls or 15 minutes, before experiments, compaction and stopping; persist under canonical campaign/ using tools/campaign.py with the session above, exact model, actor and role. Include observations versus decisions, source identities, artifact paths, tests, blockers and ONE exact next action. Fresh checkpoint at quantum end is mandatory. Record a surprise and pause affected work if assumptions are falsified. RESOLUTION-ONLY: read evidence, record decisions/checkpoints; no implementation or architecture source edits. Do not rely on chat resume or automatic compaction.\"\n14: ],\n15: \"config\": {\n16: \"canonical_files\": {\n17: \"campaign/agents/analyst.md\": \"895c41509016038b3f72c4a68608c4101511e69c5bf410e379286da1a6202952\",\n18: \"campaign/agents/implementer.md\": \"eb5581051a92b3d2b9ddd947812b1c02ff6a0b5e7619e7674adc26701e9a3d91\",\n19: \"campaign/agents/lab.md\": \"48f1765ebdcb2015e631ad91428f65735ff899e119134b652f70788ff2eae5b8\",\n20: \"campaign/agents/lead.md\": \"8fcfe52be845ed98a172afb47ea888b19bb7bffa80f7b50ace58d2bb66924220\",\n21: \"campaign/agents/resolver.md\": \"742c36dc8567669d462566d6121eed42fcff5bff34e8eff466e92249f7ca195f\",\n22: \"campaign/agents/verifier.md\": \"e467fc644e4e37d631a7a4e35038d9d3d0498491f1d7811d61d99271ff345c6b\",\n23: \"campaign/models.json\": \"00f959ff4ce16ba22f6befa7a9d495eb85d62d9e8001b1e1345eaae0e11b6e48\",\n24: \"opencode.json\": \"027ab29992ab9a5a6ee20bd649ac002f5f3397030d18b070eb949cc42179de99\"\n25: },\n26: \"effective\": {\n27: \"agent_sha256\": \"538b7262e3a21bba755e48cc1974eefb35bf710a5d23dde6d05fedb73250b7a0\",\n28: \"sha256\": \"a1af2e7a400b316721b62a04182808806d2f1e774a248420663c627375e4984b\"\n29: },\n30: \"expanded_prompt_sha256\": \"75226903f94e211868d70015e18e88cc3e3d338111743753bcd8a0f35e13e317\",\n31: \"overlay\": {\n32: \"agent\": {\n33: \"sots-resolver\": {\n34: \"model\": \"openai/gpt-6-astra\",\n35: \"permission\": {\n36: \"bash\": {\n37: \"*\": \"deny\",\n38: \"git -C * diff *\": \"allow\",\n39: \"git -C * log *\": \"allow\",\n40: \"git -C * rev-parse *\": \"allow\",\n41: \"git -C * show *\": \"allow\",\n42: \"git -C * status *\": \"allow\",\n43: \"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re checkpoint *\": \"allow\",\n44: \"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re resolve *\": \"allow\",\n45: \"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re status *\": \"allow\",\n46: \"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re surprise *\": \"allow\",\n47: \"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re validate *\": \"allow\"\n48: },\n49: \"edit\": {\n50: \"*\": \"deny\",\n51: \"/home/alex/sots-re/campaign/contracts/*\": \"allow\",\n52: \"/home/alex/sots-re/campaign/runtime/*\": \"allow\"\n53: },\n54: \"external_directory\": {\n55: \"*\": \"deny\",\n56: \"/home/alex/sots-re\": \"allow\",\n57: \"/home/alex/sots-re/*\": \"allow\",\n58: \"/tmp/opencode/sots-final-research-engine\": \"allow\",\n59: \"/tmp/opencode/sots-final-research-engine/*\": \"allow\",\n60: \"/tmp/opencode/sots-final-research-re\": \"allow\",\n61: \"/tmp/opencode/sots-final-research-re/*\": \"allow\"\n62: },\n63: \"glob\": \"allow\",\n64: \"grep\": \"allow\",\n65: \"list\": \"allow\",\n66: \"question\": \"deny\",\n67: \"read\": \"allow\",\n68: \"task\": \"deny\"\n69: },\n70: \"prompt\": \"You are the SOTS resolver, running GPT-6 Astra. Read canonical RE AGENTS.md, campaign/README.md,\\nthe surprise, affected contracts, checkpoints and raw evidence. First state the observation and\\nits provenance. Check source/binary/input identity, positive execution and instrument neutrality\\nbefore interpreting game behavior. Do not diagnose a stale build as a game mechanism.\\n\\nFor every affected claim record survives / qualified / overturned and exact domain. Name the\\ncheapest discriminating experiment, revised scope/dependencies and affected evidence that must\\nbe invalidated. Resolve through campaign controls with a durable Astra decision. Never silently\\nwaive acceptance or treat untested inference as measurement. Leave blocked work blocked until\\nthe decision supplies a valid next action. No autonomous lab mutation or nested delegation.\\n\\nCheckpoint every 20 calls/15min and before compaction, handoff or stop. Use short bounded sessions;\\nthe repository carries decisions, not chat memory. Do not create another explanatory history in\\nthe live board: link the actual decision and regenerate projections after integration.\\n\",\n71: \"steps\": 40\n72: }\n73: },\n74: \"model\": \"openai/gpt-6-astra\"\n75: },\n76: \"path\": \"/home/alex/sots-re/opencode.json\",\n77: \"sha256\": \"027ab29992ab9a5a6ee20bd649ac002f5f3397030d18b070eb949cc42179de99\"\n78: },\n79: \"contract\": \"research-live-record-bridge\",\n80: \"cwd\": \"/tmp/opencode/sots-final-research-re\",\n81: \"id\": \"run-f63d1e050a7ee3fac7b44885\",\n82: \"max_steps\": 40,\n83: \"requested_model\": \"openai/gpt-6-astra\",\n84: \"resolution_only\": true,\n85: \"role\": \"resolver\",\n86: \"schema\": \"sots-run/1\",\n87: \"source_before\": {\n88: \"engine\": {\n89: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n90: \"files\": {\n91: \".gitignore\": {\n92: \"mode\": 420,\n93: \"sha256\": \"5103c9533f0d31fea29c0cc85d543692af84a697416dfa7557e31c9843210145\"\n94: },\n95: \"AGENTS.md\": {\n96: \"mode\": 420,\n97: \"sha256\": \"7d1d4bc05c35e3354a77b3c8d5d2c04fb9d6658d09e87bc814a50bc3d2033fb7\"\n98: },\n99: \"CLAUDE.md\": {\n100: \"mode\": 420,\n101: \"sha256\": \"15d60c3d592302a2854df8bf6d39c0a578c22b9273a633447e10b76fd76291f5\"\n102: },\n103: \"CMakeLists.txt\": {\n104: \"mode\": 420,\n105: \"sha256\": \"6e9791511ea23bf8bf5f7f58617a7e77bbe5006829609e425e565c11c1e8d7ed\"\n106: },\n107: \"CMakePresets.json\": {\n108: \"mode\": 420,\n109: \"sha256\": \"fcd1dfe3989ee4f56fa3e419059e1db5621922165edf05f13cfe8e5d786d8bb0\"\n110: },\n111: \"CONTRIBUTING.md\": {\n112: \"mode\": 420,\n113: \"sha256\": \"26a381fe08feb51f861655f77de4e558f056d1dba79162a2e82513a92d0e6506\"\n114: },\n115: \"LICENSE\": {\n116: \"mode\": 420,\n117: \"sha256\": \"eedebad43ea495111bf4451d78cb440309d90a733d6a36445699dde0629f1858\"\n118: },\n119: \"README.md\": {\n120: \"mode\": 420,\n121: \"sha256\": \"66c2437fe4f074e6499de50b0d5f0d013bc290333f4d4bf554b541261885a0c1\"\n122: },\n123: \"cmake/toolchain-mingw-i686.cmake\": {\n124: \"mode\": 420,\n125: \"sha256\": \"231c0b79868a77d54cc6619f0b4ea18454964a1a078806f44a6ffe3fb7741a9b\"\n126: },\n127: \"docs/A2-alliance-and-modcount.md\": {\n128: \"mode\": 420,\n129: \"sha256\": \"0c0c45c31d5d64124f3b91a161f8a2f4732c8a5d7f6bc524baf4d59f8a191701\"\n130: },\n131: \"docs/AC-predictions.md\": {\n132: \"mode\": 420,\n133: \"sha256\": \"ab9e41714abdbc32e620d8a2068be8ebd2fc8898ba149113c66ccda248b4bcda\"\n134: },\n135: \"docs/B1.md\": {\n136: \"mode\": 420,\n137: \"sha256\": \"42b61bbfc135cdcd0f1a32f63164b88e67106400de7f08f543f118eccd814364\"\n138: },\n139: \"docs/B2.md\": {\n140: \"mode\": 420,\n141: \"sha256\": \"87dfd333ee15681a3aa4de58cf1b14ff8240e75afabc05012e0f28531cb4b8b8\"\n142: },\n143: \"docs/B3.md\": {\n144: \"mode\": 420,\n145: \"sha256\": \"fb65c41037b6cd6252c67e5244d492a3a17ea4ba2ddae821d49fe0a879528518\"\n146: },\n147: \"docs/B4.md\": {\n148: \"mode\": 420,\n149: \"sha256\": \"22547b3d2960684e52a380fb07f43a75bf50aebf93cede689f297cf38f4a012d\"\n150: },\n151: \"docs/B6-ship-construction.md\": {\n152: \"mode\": 420,\n153: \"sha256\": \"9c5c4fd2059af965e317c9db5b7fbfc440397ddfcdc5bf7860115f6a8a0532ab\"\n154: },\n155: \"docs/CB-capture.md\": {\n156: \"mode\": 420,\n157: \"sha256\": \"ce45a9082588051eda7438016dc66eb28bb4afda98b82cdc20102c4ca53529f0\"\n158: },\n159: \"docs/CB-predictions.md\": {\n160: \"mode\": 420,\n161: \"sha256\": \"ba51538b018cbb403978f97ad45d4743937d49ba55c8f15d7af8f8e4aa441f0f\"\n162: },\n163: \"docs/E-events.md\": {\n164: \"mode\": 420,\n165: \"sha256\": \"de98795aadb1617eab91815ebc34818bef8b52c36ba18b4521170065bfd2d201\"\n166: },\n167: \"docs/EV-events.md\": {\n168: \"mode\": 420,\n169: \"sha256\": \"e7d9536cd23f5d800dc97f68167bb738088a16136004419f28de92d7fe1bcfb9\"\n170: },\n171: \"docs/G-wire-schema.md\": {\n172: \"mode\": 420,\n173: \"sha256\": \"19db69ae359ddbd2a0509d02f1c616f939e0428480a8bb33c81f69145323a591\"\n174: },\n175: \"docs/G3-civilian-growth.md\": {\n176: \"mode\": 420,\n177: \"sha256\": \"38ea3a8ddc3fdca258294d949c4cd2af1a930cdd9ba612d5e8fb48bc446bdf30\"\n178: },\n179: \"docs/H-probes.md\": {\n180: \"mode\": 420,\n\n(Showing lines 1-180 of 5223. Use offset=181 to continue.)\n","metadata":{"preview":"{\n \"actor\": \"live-record surprise resolver\",\n \"checkpoint_session\": \"run-f63d1e050a7ee3fac7b44885\",\n \"command\": [\n \"opencode\",\n \"run\",\n \"--format\",\n \"json\",\n \"--model\",\n \"openai/gpt-6-astra\",\n \"--agent\",\n \"sots-resolver\",\n \"Start a FRESH bounded campaign quantum (40 steps). No delegation.\\nRole=resolver; requested model=openai/gpt-6-astra; actor=live-record surprise resolver; checkpoint session=run-f63d1e050a7ee3fac7b44885.\\nCanonical state root: /home/alex/sots-re\\nContract: /home/alex/sots-re/campaign/contracts/research-live-record-bridge.json\\nLatest checkpoint: campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json\\nEngine worktree: /tmp/opencode/sots-final-research-engine\\nRE worktree: /tmp/opencode/sots-final-research-re\\nRead canonical campaign/README.md, contract, latest checkpoint and open surprises before work. Verify source/worktree/resource identities. Only edit owned scope. Missing state means blocked. Do not commit, stage, push or mutate lab resources without explicit authority and a lease. Checkpoint every 20 tool calls or 15 minutes, before experiments, compaction and stopping; persist under canonical campaign/ using tools/campaign.py with the session above, exact model, actor and role. Include observations versus decisions, source identities, artifact paths, tests, blockers and ONE exact next action. Fresh checkpoint at quantum end is mandatory. Record a surprise and pause affected work if assumptions are falsified. RESOLUTION-ONLY: read evidence, record decisions/checkpoints; no implementation or architecture source edits. Do not rely on chat resume or automatic compaction.\"\n ],\n \"config\": {\n \"canonical_files\": {\n \"campaign/agents/analyst.md\": \"895c41509016038b3f72c4a68608c4101511e69c5bf410e379286da1a6202952\",\n \"campaign/agents/implementer.md\": \"eb5581051a92b3d2b9ddd947812b1c02ff6a0b5e7619e7674adc26701e9a3d91\",\n \"campaign/agents/lab.md\": \"48f1765ebdcb2015e631ad91428f65735ff899e119134b652f70788ff2eae5b8\",\n \"campaign/agents/lead.md\": \"8fcfe52be845ed98a172afb47ea888b19bb7bffa80f7b50ace58d2bb66924220\",","truncated":true,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.json","text":"{\n \"actor\": \"live-record surprise resolver\",\n \"checkpoint_session\": \"run-f63d1e050a7ee3fac7b44885\",\n \"command\": [\n \"opencode\",\n \"run\",\n \"--format\",\n \"json\",\n \"--model\",\n \"openai/gpt-6-astra\",\n \"--agent\",\n \"sots-resolver\",\n \"Start a FRESH bounded campaign quantum (40 steps). No delegation.\\nRole=resolver; requested model=openai/gpt-6-astra; actor=live-record surprise resolver; checkpoint session=run-f63d1e050a7ee3fac7b44885.\\nCanonical state root: /home/alex/sots-re\\nContract: /home/alex/sots-re/campaign/contracts/research-live-record-bridge.json\\nLatest checkpoint: campaign/runtime/checkpoints/research-live-record-bridge-3374a5a2a8d056e7b4dc261c.json\\nEngine worktree: /tmp/opencode/sots-final-research-engine\\nRE worktree: /tmp/opencode/sots-final-research-re\\nRead canonical campaign/README.md, contract, latest checkpoint and open surprises before work. Verify source/worktree/resource identities. Only edit owned scope. Missing state means blocked. Do not commit, stage, push or mutate lab resources without explicit authority and a lease. Checkpoint every 20 tool calls or 15 minutes, before experiments, compaction and stopping; persist under canonical campaign/ using tools/campaign.py with the session above, exact model, actor and role. Include observations versus decisions, source identities, artifact paths, tests, blockers and ONE exact next action. Fresh checkpoint at quantum end is mandatory. Record a surprise and pause affected work if assumptions are falsified. RESOLUTION-ONLY: read evidence, record decisions/checkpoints; no implementation or architecture source edits. Do not rely on chat resume or automatic compaction.\"\n ],\n \"config\": {\n \"canonical_files\": {\n \"campaign/agents/analyst.md\": \"895c41509016038b3f72c4a68608c4101511e69c5bf410e379286da1a6202952\",\n \"campaign/agents/implementer.md\": \"eb5581051a92b3d2b9ddd947812b1c02ff6a0b5e7619e7674adc26701e9a3d91\",\n \"campaign/agents/lab.md\": \"48f1765ebdcb2015e631ad91428f65735ff899e119134b652f70788ff2eae5b8\",\n \"campaign/agents/lead.md\": \"8fcfe52be845ed98a172afb47ea888b19bb7bffa80f7b50ace58d2bb66924220\",\n \"campaign/agents/resolver.md\": \"742c36dc8567669d462566d6121eed42fcff5bff34e8eff466e92249f7ca195f\",\n \"campaign/agents/verifier.md\": \"e467fc644e4e37d631a7a4e35038d9d3d0498491f1d7811d61d99271ff345c6b\",\n \"campaign/models.json\": \"00f959ff4ce16ba22f6befa7a9d495eb85d62d9e8001b1e1345eaae0e11b6e48\",\n \"opencode.json\": \"027ab29992ab9a5a6ee20bd649ac002f5f3397030d18b070eb949cc42179de99\"\n },\n \"effective\": {\n \"agent_sha256\": \"538b7262e3a21bba755e48cc1974eefb35bf710a5d23dde6d05fedb73250b7a0\",\n \"sha256\": \"a1af2e7a400b316721b62a04182808806d2f1e774a248420663c627375e4984b\"\n },\n \"expanded_prompt_sha256\": \"75226903f94e211868d70015e18e88cc3e3d338111743753bcd8a0f35e13e317\",\n \"overlay\": {\n \"agent\": {\n \"sots-resolver\": {\n \"model\": \"openai/gpt-6-astra\",\n \"permission\": {\n \"bash\": {\n \"*\": \"deny\",\n \"git -C * diff *\": \"allow\",\n \"git -C * log *\": \"allow\",\n \"git -C * rev-parse *\": \"allow\",\n \"git -C * show *\": \"allow\",\n \"git -C * status *\": \"allow\",\n \"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re checkpoint *\": \"allow\",\n \"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re resolve *\": \"allow\",\n \"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re status *\": \"allow\",\n \"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re surprise *\": \"allow\",\n \"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re validate *\": \"allow\"\n },\n \"edit\": {\n \"*\": \"deny\",\n \"/home/alex/sots-re/campaign/contracts/*\": \"allow\",\n \"/home/alex/sots-re/campaign/runtime/*\": \"allow\"\n },\n \"external_directory\": {\n \"*\": \"deny\",\n \"/home/alex/sots-re\": \"allow\",\n \"/home/alex/sots-re/*\": \"allow\",\n \"/tmp/opencode/sots-final-research-engine\": \"allow\",\n \"/tmp/opencode/sots-final-research-engine/*\": \"allow\",\n \"/tmp/opencode/sots-final-research-re\": \"allow\",\n \"/tmp/opencode/sots-final-research-re/*\": \"allow\"\n },\n \"glob\": \"allow\",\n \"grep\": \"allow\",\n \"list\": \"allow\",\n \"question\": \"deny\",\n \"read\": \"allow\",\n \"task\": \"deny\"\n },\n \"prompt\": \"You are the SOTS resolver, running GPT-6 Astra. Read canonical RE AGENTS.md, campaign/README.md,\\nthe surprise, affected contracts, checkpoints and raw evidence. First state the observation and\\nits provenance. Check source/binary/input identity, positive execution and instrument neutrality\\nbefore interpreting game behavior. Do not diagnose a stale build as a game mechanism.\\n\\nFor every affected claim record survives / qualified / overturned and exact domain. Name the\\ncheapest discriminating experiment, revised scope/dependencies and affected evidence that must\\nbe invalidated. Resolve through campaign controls with a durable Astra decision. Never silently\\nwaive acceptance or treat untested inference as measurement. Leave blocked work blocked until\\nthe decision supplies a valid next action. No autonomous lab mutation or nested delegation.\\n\\nCheckpoint every 20 calls/15min and before compaction, handoff or stop. Use short bounded sessions;\\nthe repository carries decisions, not chat memory. Do not create another explanatory history in\\nthe live board: link the actual decision and regenerate projections after integration.\\n\",\n \"steps\": 40\n }\n },\n \"model\": \"openai/gpt-6-astra\"\n },\n \"path\": \"/home/alex/sots-re/opencode.json\",\n \"sha256\": \"027ab29992ab9a5a6ee20bd649ac002f5f3397030d18b070eb949cc42179de99\"\n },\n \"contract\": \"research-live-record-bridge\",\n \"cwd\": \"/tmp/opencode/sots-final-research-re\",\n \"id\": \"run-f63d1e050a7ee3fac7b44885\",\n \"max_steps\": 40,\n \"requested_model\": \"openai/gpt-6-astra\",\n \"resolution_only\": true,\n \"role\": \"resolver\",\n \"schema\": \"sots-run/1\",\n \"source_before\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"files\": {\n \".gitignore\": {\n \"mode\": 420,\n \"sha256\": \"5103c9533f0d31fea29c0cc85d543692af84a697416dfa7557e31c9843210145\"\n },\n \"AGENTS.md\": {\n \"mode\": 420,\n \"sha256\": \"7d1d4bc05c35e3354a77b3c8d5d2c04fb9d6658d09e87bc814a50bc3d2033fb7\"\n },\n \"CLAUDE.md\": {\n \"mode\": 420,\n \"sha256\": \"15d60c3d592302a2854df8bf6d39c0a578c22b9273a633447e10b76fd76291f5\"\n },\n \"CMakeLists.txt\": {\n \"mode\": 420,\n \"sha256\": \"6e9791511ea23bf8bf5f7f58617a7e77bbe5006829609e425e565c11c1e8d7ed\"\n },\n \"CMakePresets.json\": {\n \"mode\": 420,\n \"sha256\": \"fcd1dfe3989ee4f56fa3e419059e1db5621922165edf05f13cfe8e5d786d8bb0\"\n },\n \"CONTRIBUTING.md\": {\n \"mode\": 420,\n \"sha256\": \"26a381fe08feb51f861655f77de4e558f056d1dba79162a2e82513a92d0e6506\"\n },\n \"LICENSE\": {\n \"mode\": 420,\n \"sha256\": \"eedebad43ea495111bf4451d78cb440309d90a733d6a36445699dde0629f1858\"\n },\n \"README.md\": {\n \"mode\": 420,\n \"sha256\": \"66c2437fe4f074e6499de50b0d5f0d013bc290333f4d4bf554b541261885a0c1\"\n },\n \"cmake/toolchain-mingw-i686.cmake\": {\n \"mode\": 420,\n \"sha256\": \"231c0b79868a77d54cc6619f0b4ea18454964a1a078806f44a6ffe3fb7741a9b\"\n },\n \"docs/A2-alliance-and-modcount.md\": {\n \"mode\": 420,\n \"sha256\": \"0c0c45c31d5d64124f3b91a161f8a2f4732c8a5d7f6bc524baf4d59f8a191701\"\n },\n \"docs/AC-predictions.md\": {\n \"mode\": 420,\n \"sha256\": \"ab9e41714abdbc32e620d8a2068be8ebd2fc8898ba149113c66ccda248b4bcda\"\n },\n \"docs/B1.md\": {\n \"mode\": 420,\n \"sha256\": \"42b61bbfc135cdcd0f1a32f63164b88e67106400de7f08f543f118eccd814364\"\n },\n \"docs/B2.md\": {\n \"mode\": 420,\n \"sha256\": \"87dfd333ee15681a3aa4de58cf1b14ff8240e75afabc05012e0f28531cb4b8b8\"\n },\n \"docs/B3.md\": {\n \"mode\": 420,\n \"sha256\": \"fb65c41037b6cd6252c67e5244d492a3a17ea4ba2ddae821d49fe0a879528518\"\n },\n \"docs/B4.md\": {\n \"mode\": 420,\n \"sha256\": \"22547b3d2960684e52a380fb07f43a75bf50aebf93cede689f297cf38f4a012d\"\n },\n \"docs/B6-ship-construction.md\": {\n \"mode\": 420,\n \"sha256\": \"9c5c4fd2059af965e317c9db5b7fbfc440397ddfcdc5bf7860115f6a8a0532ab\"\n },\n \"docs/CB-capture.md\": {\n \"mode\": 420,\n \"sha256\": \"ce45a9082588051eda7438016dc66eb28bb4afda98b82cdc20102c4ca53529f0\"\n },\n \"docs/CB-predictions.md\": {\n \"mode\": 420,\n \"sha256\": \"ba51538b018cbb403978f97ad45d4743937d49ba55c8f15d7af8f8e4aa441f0f\"\n },\n \"docs/E-events.md\": {\n \"mode\": 420,\n \"sha256\": \"de98795aadb1617eab91815ebc34818bef8b52c36ba18b4521170065bfd2d201\"\n },\n \"docs/EV-events.md\": {\n \"mode\": 420,\n \"sha256\": \"e7d9536cd23f5d800dc97f68167bb738088a16136004419f28de92d7fe1bcfb9\"\n },\n \"docs/G-wire-schema.md\": {\n \"mode\": 420,\n \"sha256\": \"19db69ae359ddbd2a0509d02f1c616f939e0428480a8bb33c81f69145323a591\"\n },\n \"docs/G3-civilian-growth.md\": {\n \"mode\": 420,\n \"sha256\": \"38ea3a8ddc3fdca258294d949c4cd2af1a930cdd9ba612d5e8fb48bc446bdf30\"\n },\n \"docs/H-probes.md\": {\n \"mode\": 420,","lineStart":1,"lineEnd":180,"totalLines":5223,"truncated":true}},"title":"campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.json","time":{"start":1789013878787,"end":1789013878856}},"metadata":{"openai":{"itemId":"fc_007c03943ce28a4d016aa22f76999887d184666fc22c0a26ac"}},"id":"prt_0898967ff001Kw5SA2jlFGhi4O","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_0898943f9001FmQKRwwNMnIsCx"}} +{"type":"step_finish","timestamp":1789013878901,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_089896872001KAkzNnykrDSwHT","reason":"tool-calls","snapshot":"b55e681807cffe295812034cabd2c8c38faa81e5","messageID":"msg_0898943f9001FmQKRwwNMnIsCx","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":31964,"input":1640,"output":244,"reasoning":0,"cache":{"write":0,"read":30080}},"cost":0}} +{"type":"step_start","timestamp":1789013881617,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_08989730d001FVlA7c61BwIDt9","messageID":"msg_0898968a0001qHk0QRJLpOlsiO","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"704620df3f3d356569fafd6843fb33573525d8d4","type":"step-start"}} +{"type":"tool_use","timestamp":1789013888933,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_0SNeNJcODsmB6WM5sutHZO3y","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/verify/results/research-completion-abi/recovered-static.md","offset":54,"limit":42},"output":"/home/alex/sots-re/verify/results/research-completion-abi/recovered-static.md\nfile\n\n54: the replacement pointer/size/capacity. The branch condition for long ownership is capacity\n55: `>= 0x10`; short strings stay inline. Per the independently captured PE imports, these thunks map\n56: to MSVCR100 scalar `operator delete` and scalar `operator new` respectively.\n57: \n58: ### Nested TurnEvents machine boundary\n59: \n60: * `0x00885380` is an ECX-receiver operation over the outer vector at receiver `+4`, takes one\n61: stack `int turn`, returns a `TurnEvents*` in EAX, and uses `ret 4`. It divides the outer byte span\n62: by `0x18`, scans every element, and overwrites its candidate on every `EvTurn` match. Therefore a\n63: hit returns the **last** matching bucket and performs no construction, allocation, ID update, or\n64: RNG draw.\n65: * On a miss it initializes a stack `TurnEvents` with vptr `0x00a0f07c` and zero nested-vector\n66: pointers, then calls outer `vector::push_back` at `0x00884cb0`. Only after append does\n67: it write the requested turn to the stored element at `_Mylast[-1]+4`. It destroys the temporary's\n68: nested vector through `0x00629580` and returns the new element. The temporary itself starts with\n69: turn zero; append deep-copies that zero before the stored turn is patched.\n70: * `0x00884cb0` is ECX receiver plus one source pointer and `ret 4`; stride is `0x18`. It handles a\n71: source pointer inside its own vector separately so growth cannot invalidate the source. Both\n72: branches install the TurnEvents vptr, copy `EvTurn`, and copy-construct the nested PlayerEvent\n73: vector through `0x00779850`; this is not a 24-byte header copy. It advances outer `_Mylast` only\n74: after the nested copy call returns.\n75: * Outer full-capacity growth is `0x008841a0` -> `0x00883a60`. Capacity selection is old capacity\n76: plus half where sufficient, otherwise required size. `0x006e8f50` allocates `count * 0x18` through\n77: `0x00924fb6`. `0x0077fed0` copy-constructs every old TurnEvents, including an independent nested\n78: vector via `0x00779850`; then `0x00883a60` invokes each old TurnEvents virtual destructor with\n79: deleting flag zero, frees the old outer allocation through `0x00924faa`, and writes all three\n80: outer vector pointers.\n81: * The vtable bytes at `0x00a0f07c` identify slot zero as `0x0062e120`. That scalar-deleting\n82: destructor calls `0x00629580` on the nested vector at `+8`; with flag bit zero it does not free the\n83: inline TurnEvents object. `0x00629580` invokes every nested PlayerEvent virtual destructor in\n84: `0x74` steps, frees the nested allocation through `0x00924faa`, and zeros all three nested vector\n85: pointers.\n86: * `0x00779850` is ECX destination nested vector plus one source-vector pointer and `ret 4`. An empty\n87: source leaves three zero pointers. A nonempty source allocates `count * 0x74` through\n88: `0x0078af40` -> `0x00924fb6`, then `0x007725a0` copy-constructs each PlayerEvent through\n89: `0x007693f0`. Its unwind destroys already completed PlayerEvents; `0x00779850` then calls\n90: `0x00629580`, and outer range-copy unwind at `0x0077fed0` destroys already completed TurnEvents.\n91: Outer reallocation's landing path frees the newly allocated outer block before continuing the\n92: exception through `0x00924fbc`. These are observed cleanup edges, not a claim that allocation\n93: failure has been executed live.\n94: \n95: ### Duplicate and prune branches\n\n(Showing lines 54-95 of 167. Use offset=96 to continue.)\n","metadata":{"preview":" the replacement pointer/size/capacity. The branch condition for long ownership is capacity\n `>= 0x10`; short strings stay inline. Per the independently captured PE imports, these thunks map\n to MSVCR100 scalar `operator delete` and scalar `operator new` respectively.\n\n### Nested TurnEvents machine boundary\n\n* `0x00885380` is an ECX-receiver operation over the outer vector at receiver `+4`, takes one\n stack `int turn`, returns a `TurnEvents*` in EAX, and uses `ret 4`. It divides the outer byte span\n by `0x18`, scans every element, and overwrites its candidate on every `EvTurn` match. Therefore a\n hit returns the **last** matching bucket and performs no construction, allocation, ID update, or\n RNG draw.\n* On a miss it initializes a stack `TurnEvents` with vptr `0x00a0f07c` and zero nested-vector\n pointers, then calls outer `vector::push_back` at `0x00884cb0`. Only after append does\n it write the requested turn to the stored element at `_Mylast[-1]+4`. It destroys the temporary's\n nested vector through `0x00629580` and returns the new element. The temporary itself starts with\n turn zero; append deep-copies that zero before the stored turn is patched.\n* `0x00884cb0` is ECX receiver plus one source pointer and `ret 4`; stride is `0x18`. It handles a\n source pointer inside its own vector separately so growth cannot invalidate the source. Both\n branches install the TurnEvents vptr, copy `EvTurn`, and copy-construct the nested PlayerEvent\n vector through `0x00779850`; this is not a 24-byte header copy. It advances outer `_Mylast` only","truncated":true,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/verify/results/research-completion-abi/recovered-static.md","text":" the replacement pointer/size/capacity. The branch condition for long ownership is capacity\n `>= 0x10`; short strings stay inline. Per the independently captured PE imports, these thunks map\n to MSVCR100 scalar `operator delete` and scalar `operator new` respectively.\n\n### Nested TurnEvents machine boundary\n\n* `0x00885380` is an ECX-receiver operation over the outer vector at receiver `+4`, takes one\n stack `int turn`, returns a `TurnEvents*` in EAX, and uses `ret 4`. It divides the outer byte span\n by `0x18`, scans every element, and overwrites its candidate on every `EvTurn` match. Therefore a\n hit returns the **last** matching bucket and performs no construction, allocation, ID update, or\n RNG draw.\n* On a miss it initializes a stack `TurnEvents` with vptr `0x00a0f07c` and zero nested-vector\n pointers, then calls outer `vector::push_back` at `0x00884cb0`. Only after append does\n it write the requested turn to the stored element at `_Mylast[-1]+4`. It destroys the temporary's\n nested vector through `0x00629580` and returns the new element. The temporary itself starts with\n turn zero; append deep-copies that zero before the stored turn is patched.\n* `0x00884cb0` is ECX receiver plus one source pointer and `ret 4`; stride is `0x18`. It handles a\n source pointer inside its own vector separately so growth cannot invalidate the source. Both\n branches install the TurnEvents vptr, copy `EvTurn`, and copy-construct the nested PlayerEvent\n vector through `0x00779850`; this is not a 24-byte header copy. It advances outer `_Mylast` only\n after the nested copy call returns.\n* Outer full-capacity growth is `0x008841a0` -> `0x00883a60`. Capacity selection is old capacity\n plus half where sufficient, otherwise required size. `0x006e8f50` allocates `count * 0x18` through\n `0x00924fb6`. `0x0077fed0` copy-constructs every old TurnEvents, including an independent nested\n vector via `0x00779850`; then `0x00883a60` invokes each old TurnEvents virtual destructor with\n deleting flag zero, frees the old outer allocation through `0x00924faa`, and writes all three\n outer vector pointers.\n* The vtable bytes at `0x00a0f07c` identify slot zero as `0x0062e120`. That scalar-deleting\n destructor calls `0x00629580` on the nested vector at `+8`; with flag bit zero it does not free the\n inline TurnEvents object. `0x00629580` invokes every nested PlayerEvent virtual destructor in\n `0x74` steps, frees the nested allocation through `0x00924faa`, and zeros all three nested vector\n pointers.\n* `0x00779850` is ECX destination nested vector plus one source-vector pointer and `ret 4`. An empty\n source leaves three zero pointers. A nonempty source allocates `count * 0x74` through\n `0x0078af40` -> `0x00924fb6`, then `0x007725a0` copy-constructs each PlayerEvent through\n `0x007693f0`. Its unwind destroys already completed PlayerEvents; `0x00779850` then calls\n `0x00629580`, and outer range-copy unwind at `0x0077fed0` destroys already completed TurnEvents.\n Outer reallocation's landing path frees the newly allocated outer block before continuing the\n exception through `0x00924fbc`. These are observed cleanup edges, not a claim that allocation\n failure has been executed live.\n\n### Duplicate and prune branches","lineStart":54,"lineEnd":95,"totalLines":167,"truncated":true}},"title":"verify/results/research-completion-abi/recovered-static.md","time":{"start":1789013888890,"end":1789013888930}},"metadata":{"openai":{"itemId":"fc_0a24281048bc1141016aa22f80b1dc87d1bfac26e35a3fa90d"}},"id":"prt_089898f5c001fmI29u1blfhTd8","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_0898968a0001qHk0QRJLpOlsiO"}} +{"type":"tool_use","timestamp":1789013888939,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"grep","callID":"call_cQZLKT7x0N8t2JY7qneRij3s","state":{"status":"completed","input":{"pattern":"research-completion-abi|research-live-record-bridge","path":"/home/alex/sots-re/campaign/contracts","include":"*.json"},"output":"Found 17 matches\n/home/alex/sots-re/campaign/contracts/research-replacement.json:\n Line 56: \"research-completion-abi\"\n\n Line 76: \"Accepted static dependency research-completion-abi establishes record/container/string ABI only; live allocator safety, runtime construction and replacement acceptance remain absent.\"\n\n\n/home/alex/sots-re/campaign/contracts/research-live-record-bridge.json:\n Line 44: \"checkpoint\": \"campaign/runtime/checkpoints/research-live-record-bridge-d08b4bbf364f3305ee2fef98.json\",\n\n Line 46: \"research-completion-abi\"\n\n Line 55: \"id\": \"research-live-record-bridge\",\n\n Line 57: \"Accepted research-completion-abi evidence and handoff, including binary fingerprint and independently reproduced static ownership windows.\",\n\n\n/home/alex/sots-re/campaign/contracts/research-completion-abi.json:\n Line 24: \"checkpoint\": \"campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json\",\n\n Line 40: \"id\": \"research-completion-abi-static-run-79357a65226f61d6a86c042d\",\n\n Line 43: \"path\": \"verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/report.md\",\n\n Line 51: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n\n Line 58: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n\n Line 91: \"id\": \"research-completion-abi-validation-run-735fcb8f4876c10285b03fad\",\n\n Line 98: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n\n Line 106: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n\n Line 113: \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n\n Line 139: \"id\": \"research-completion-abi\",\n\n Line 158: \"Reverse engineering only. Own canonical campaign/research/research-completion-abi.md and verify/results/research-completion-abi/ captures. Use assigned source-identical paired worktrees for source inspection; canonical RE for unique evidence/checkpoint outputs.\",\n","metadata":{"matches":17,"truncated":false},"title":"research-completion-abi|research-live-record-bridge","time":{"start":1789013888917,"end":1789013888937}},"metadata":{"openai":{"itemId":"fc_0a24281048bc1141016aa22f80b20487d1876b0ae90838c90a"}},"id":"prt_089898f910017P1DY86NwPfFLz","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_0898968a0001qHk0QRJLpOlsiO"}} +{"type":"tool_use","timestamp":1789013888952,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"grep","callID":"call_k2IlHrgtxfQnPDMlSMkBB3Zg","state":{"status":"error","input":{"pattern":"\"sha256\": \"(ccd8|6696)|\"path\": \"/tmp/opencode/sots-final|\"started","path":"/home/alex/sots-re/campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.json"},"error":"Ripgrep JSON record exceeded 65536 bytes","time":{"start":1789013888904,"end":1789013888942}},"metadata":{"openai":{"itemId":"fc_0a24281048bc1141016aa22f80b1f087d1986bc88a794f2b02"}},"id":"prt_089898f7e001uUz2ziS4PIfRDj","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_0898968a0001qHk0QRJLpOlsiO"}} +{"type":"tool_use","timestamp":1789013888976,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"bash","callID":"call_PEe2M5zlnHZEpfGPww3jOOtQ","state":{"status":"completed","input":{"command":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re status research-completion-abi"},"output":"[\n {\n \"acceptance\": [\n {\n \"axis\": \"static-recovery\",\n \"criterion\": \"Addresses/signatures and record/container/string lifetime rules backed by fresh binary/tool captures; distinguish recorded facts, inference and unexercised branches. Name exact callable allocation/copy/destruction operations or precise unresolved blockers.\",\n \"id\": \"ownership-recovered\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Independent verifier checks key instruction/ABI claims and archived record values. No static-only claim of live allocator safety or replacement acceptance.\",\n \"id\": \"independent-cross-check\"\n }\n ],\n \"baseline\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"checkpoint\": \"campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json\",\n \"dependencies\": [\n \"controls-bootstrap\"\n ],\n \"effects\": [\n \"Evidence-backed RE handoff and raw static captures; no game or shared database state changes\"\n ],\n \"evidence\": [\n {\n \"axis\": \"static-recovery\",\n \"binaries\": [\n {\n \"path\": \"dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n }\n ],\n \"id\": \"research-completion-abi-static-run-79357a65226f61d6a86c042d\",\n \"inputs\": [\n {\n \"path\": \"verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/report.md\",\n \"sha256\": \"d5a28f01002f1711cf8575ffd817a8f0998b413c6280d656e6cdad5a90a04477\"\n }\n ],\n \"integrated\": true,\n \"outcomes\": [\n {\n \"artifact\": {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n },\n \"criterion\": \"ownership-recovered\",\n \"status\": \"pass\"\n }\n ],\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\",\n \"source\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"source_binding\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\",\n \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n }\n }\n },\n {\n \"axis\": \"validation\",\n \"binaries\": [\n {\n \"path\": \"dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n }\n ],\n \"id\": \"research-completion-abi-validation-run-735fcb8f4876c10285b03fad\",\n \"inputs\": [\n {\n \"path\": \"verify/results/saves/turn3-state.sav\",\n \"sha256\": \"978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n }\n ],\n \"integrated\": true,\n \"outcomes\": [\n {\n \"artifact\": {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\"\n },\n \"criterion\": \"independent-cross-check\",\n \"status\": \"pass\"\n }\n ],\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\",\n \"source\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"source_binding\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\",\n \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n }\n }\n }\n ],\n \"id\": \"research-completion-abi\",\n \"inputs\": [\n \"Existing binary fingerprint/address contract and private RE findings\",\n \"Owner-supplied binary or live read-only ReVa endpoint\",\n \"Archived CR traces/saves for observed behavior\",\n \"Source-identical current engine/RE worktree snapshots\"\n ],\n \"open_surprises\": [],\n \"original_dependencies\": [\n \"Original binary is the object of analysis, not a replacement dependency decision\"\n ],\n \"owner\": {\n \"name\": \"research-abi-analyst\",\n \"role\": \"analyst\"\n },\n \"predictions\": [\n \"Count-only scratch updates conceal concrete element construction and original allocator ownership requirements\",\n \"The observed-tech and nested-event containers use different element strides and nontrivial string lifetimes; raw header copying is insufficient\"\n ],\n \"scope\": [\n \"Reverse engineering only. Own canonical campaign/research/research-completion-abi.md and verify/results/research-completion-abi/ captures. Use assigned source-identical paired worktrees for source inspection; canonical RE for unique evidence/checkpoint outputs.\",\n \"Recover actual constructors/copy/destructors/vector-growth/allocation/free conventions used by RecordObservedTech and EventStorage/TurnEvents/PlayerEvent. Resolve implementable ABI operations, not another general framework.\",\n \"Use existing ReVa read-only tools through canonical tools/reva_call.py or the owner-supplied local binary. No Ghidra renames/type writes, VM mutation, new engine code, framework code, agents or delegation. Do not commit/stage/push.\",\n \"Start with findings/subsystems/{events,observedtech-append,research-replace}.md and campaign/pilots/research-replacement.md; cross-check binary bytes/decompilation rather than merely repeat notes. Anchors: RecordObservedTech 0x007ba1a0, EventStorage::PostEvent 0x008862b0, PlayerEvent constructor 0x0084ee30. Addresses are hypotheses to validate against fingerprint and actual tools.\",\n \"Produce recovered signatures, ownership/lifetime rules, short/long string and empty/full-capacity container paths, and exact unresolved dependencies with minimum next probe. Store raw tool outputs and a hash/provenance index in your owned RE results directory. Keep code-derived material out of engine repo.\"\n ],\n \"status\": \"accepted\",\n \"stop_conditions\": [\n \"Stop affected interpretation on binary fingerprint mismatch, contradictory ownership/ABI evidence, unavailable original data, or any scope-changing surprise; record and escalate to Astra\",\n \"Checkpoint every 20 calls/15 minutes and before compaction/stopping; return exact next RE action within 40 steps\",\n \"Do not expand into framework development or mark pilot replacement ready/accepted\"\n ],\n \"title\": \"RE: research completion record construction and allocator ABI\"\n }\n]\n","metadata":{"output":"[\n {\n \"acceptance\": [\n {\n \"axis\": \"static-recovery\",\n \"criterion\": \"Addresses/signatures and record/container/string lifetime rules backed by fresh binary/tool captures; distinguish recorded facts, inference and unexercised branches. Name exact callable allocation/copy/destruction operations or precise unresolved blockers.\",\n \"id\": \"ownership-recovered\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Independent verifier checks key instruction/ABI claims and archived record values. No static-only claim of live allocator safety or replacement acceptance.\",\n \"id\": \"independent-cross-check\"\n }\n ],\n \"baseline\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"checkpoint\": \"campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json\",\n \"dependencies\": [\n \"controls-bootstrap\"\n ],\n \"effects\": [\n \"Evidence-backed RE handoff and raw static captures; no game or shared database state changes\"\n ],\n \"evidence\": [\n {\n \"axis\": \"static-recovery\",\n \"binaries\": [\n {\n \"path\": \"dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n }\n ],\n \"id\": \"research-completion-abi-static-run-79357a65226f61d6a86c042d\",\n \"inputs\": [\n {\n \"path\": \"verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/report.md\",\n \"sha256\": \"d5a28f01002f1711cf8575ffd817a8f0998b413c6280d656e6cdad5a90a04477\"\n }\n ],\n \"integrated\": true,\n \"outcomes\": [\n {\n \"artifact\": {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n },\n \"criterion\": \"ownership-recovered\",\n \"status\": \"pass\"\n }\n ],\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\",\n \"source\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"source_binding\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\",\n \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n }\n }\n },\n {\n \"axis\": \"validation\",\n \"binaries\": [\n {\n \"path\": \"dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n }\n ],\n \"id\": \"research-completion-abi-validation-run-735fcb8f4876c10285b03fad\",\n \"inputs\": [\n {\n \"path\": \"verify/results/saves/turn3-state.sav\",\n \"sha256\": \"978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n }\n ],\n \"integrated\": true,\n \"outcomes\": [\n {\n \"artifact\": {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\"\n },\n \"criterion\": \"independent-cross-check\",\n \"status\": \"pass\"\n }\n ],\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\",\n \"source\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"source_binding\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\",\n \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n }\n }\n }\n ],\n \"id\": \"research-completion-abi\",\n \"inputs\": [\n \"Existing binary fingerprint/address contract and private RE findings\",\n \"Owner-supplied binary or live read-only ReVa endpoint\",\n \"Archived CR traces/saves for observed behavior\",\n \"Source-identical current engine/RE worktree snapshots\"\n ],\n \"open_surprises\": [],\n \"original_dependencies\": [\n \"Original binary is the object of analysis, not a replacement dependency decision\"\n ],\n \"owner\": {\n \"name\": \"research-abi-analyst\",\n \"role\": \"analyst\"\n },\n \"predictions\": [\n \"Count-only scratch updates conceal concrete element construction and original allocator ownership requirements\",\n \"The observed-tech and nested-event containers use different element strides and nontrivial string lifetimes; raw header copying is insufficient\"\n ],\n \"scope\": [\n \"Reverse engineering only. Own canonical campaign/research/research-completion-abi.md and verify/results/research-completion-abi/ captures. Use assigned source-identical paired worktrees for source inspection; canonical RE for unique evidence/checkpoint outputs.\",\n \"Recover actual constructors/copy/destructors/vector-growth/allocation/free conventions used by RecordObservedTech and EventStorage/TurnEvents/PlayerEvent. Resolve implementable ABI operations, not another general framework.\",\n \"Use existing ReVa read-only tools through canonical tools/reva_call.py or the owner-supplied local binary. No Ghidra renames/type writes, VM mutation, new engine code, framework code, agents or delegation. Do not commit/stage/push.\",\n \"Start with findings/subsystems/{events,observedtech-append,research-replace}.md and campaign/pilots/research-replacement.md; cross-check binary bytes/decompilation rather than merely repeat notes. Anchors: RecordObservedTech 0x007ba1a0, EventStorage::PostEvent 0x008862b0, PlayerEvent constructor 0x0084ee30. Addresses are hypotheses to validate against fingerprint and actual tools.\",\n \"Produce recovered signatures, ownership/lifetime rules, short/long string and empty/full-capacity container paths, and exact unresolved dependencies with minimum next probe. Store raw tool outputs and a hash/provenance index in your owned RE results directory. Keep code-derived material out of engine repo.\"\n ],\n \"status\": \"accepted\",\n \"stop_conditions\": [\n \"Stop affected interpretation on binary fingerprint mismatch, contradictory ownership/ABI evidence, unavailable original data, or any scope-changing surprise; record and escalate to Astra\",\n \"Checkpoint every 20 calls/15 minutes and before compaction/stopping; return exact next RE action within 40 steps\",\n \"Do not expand into framework development or mark pilot replacement ready/accepted\"\n ],\n \"title\": \"RE: research completion record construction and allocator ABI\"\n }\n]\n","exit":0,"truncated":false},"title":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re status research-completion-abi","time":{"start":1789013888909,"end":1789013888972}},"metadata":{"openai":{"itemId":"fc_0a24281048bc1141016aa22f80b1fc87d18af9e8070bf0e996"}},"id":"prt_089898f89001HHr8DhGMrsq8R2","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_0898968a0001qHk0QRJLpOlsiO"}} +{"type":"step_finish","timestamp":1789013889039,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_08989900b001j4jynyw8ohhUPw","reason":"tool-calls","snapshot":"c2b982d091f41707c51c8b1cfd98e49f69150790","messageID":"msg_0898968a0001qHk0QRJLpOlsiO","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":42943,"input":11090,"output":218,"reasoning":19,"cache":{"write":0,"read":31616}},"cost":0}} +{"type":"step_start","timestamp":1789013891700,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_089899a70001Fyet0Rairw0b4H","messageID":"msg_08989903e001bzT2lFCs95qv1e","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"b4e5ba8036252d4e36db91aa3e98ee8e5445da6b","type":"step-start"}} +{"type":"tool_use","timestamp":1789013894676,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"read","callID":"call_ZQxY9p6CmQpdsnHbKitH1B0t","state":{"status":"completed","input":{"filePath":"/home/alex/sots-re/campaign/contracts/research-replacement.json","limit":150},"output":"/home/alex/sots-re/campaign/contracts/research-replacement.json\nfile\n\n1: {\n2: \"acceptance\": [\n3: {\n4: \"axis\": \"planning\",\n5: \"criterion\": \"BLOCKED: accepted static ABI dependency is named and original-helper policy is fixed, but readiness still requires an accepted live-record-bridge contract, implemented tools/research_replacement.py interfaces from the pilot plan, required asset paths/hashes, W0 recertification, exact coordinator-owned paths and immutable source/binary/input manifests.\",\n6: \"id\": \"readiness\"\n7: },\n8: {\n9: \"axis\": \"implementation\",\n10: \"criterion\": \"Fresh full-profile source-bound host/assets/shim build; expected test identities and explicit positive executed workloads; no required missing input, unexpected skip or stale binary.\",\n11: \"id\": \"full-gate\"\n12: },\n13: {\n14: \"axis\": \"validation\",\n15: \"criterion\": \"Two fresh C1/C2 hooks-off processes and candidate compare N on the exact W1 input/route produce identical pre/post save pairs; full installed-site manifests and per-call CW retained. Reject incomplete raw bundles or disagreement.\",\n16: \"id\": \"control-neutrality\"\n17: },\n18: {\n19: \"axis\": \"implementation\",\n20: \"criterion\": \"W1 replace executes exactly one tech-144 completion and three unlocks, two actual event records and one full observed-tech record, refund 1166 and primary player effects; original displaced roots bypassed, declared helpers counted; zero unsupported paths, unreadable inputs or failures.\",\n21: \"id\": \"positive-replace\"\n22: },\n23: {\n24: \"axis\": \"validation\",\n25: \"criterion\": \"Require post-turn file-byte, inflated-byte and exact-bit unmasked state equality plus complete reader coverage and nonserialized order/RNG checks. Pre-turn resave equality, count-only regions and zero-execution passes cannot satisfy this criterion.\",\n26: \"id\": \"oracle\"\n27: },\n28: {\n29: \"axis\": \"validation\",\n30: \"criterion\": \"Executable checker rejects archived R0's 27 and R1's 16 leaf differences, absent callback/event/ObservedTech writes, W0 as completion evidence, missing artifacts, wrong hashes, and unknown RNG reported as zero.\",\n31: \"id\": \"negative-controls\"\n32: },\n33: {\n34: \"axis\": \"validation\",\n35: \"criterion\": \"Different verifier execution reproduces source/binary/input-bound package and a meaningful negative control; integrated-tree evidence is required before accepted. No author-only verdict or reporter --accept flag grants campaign acceptance.\",\n36: \"id\": \"independent-reproduction\"\n37: },\n38: {\n39: \"axis\": \"original_dependencies\",\n40: \"criterion\": \"Publish retained original helpers and W1-only scope separately. Require certified W2 and branch-specific original experiments plus synthetic boundaries before claiming RNG-consuming, other-effect-family, recursive, dedup, decay, plague or rebellion coverage.\",\n41: \"id\": \"coverage-and-dependencies\"\n42: }\n43: ],\n44: \"baseline\": {\n45: \"engine\": {\n46: \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n47: \"path\": \"/home/alex/sots-engine\"\n48: },\n49: \"re\": {\n50: \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n51: \"path\": \"/home/alex/sots-re\"\n52: }\n53: },\n54: \"checkpoint\": \"campaign/runtime/checkpoints/research-replacement-fc19e142bf1db96b10d29391.json\",\n55: \"dependencies\": [\n56: \"research-completion-abi\"\n57: ],\n58: \"effects\": [\n59: \"All node state/progress/flag/cost/availability/researched-turn/order words; tree order counter; capped spend and refund accumulator; idle-node decay; ordered cascade including conditional recursive zero-cost completions.\",\n60: \"RNG full state, left and next-index plus actual consumed words, including conditional completion rolls, Zuul second roll and research-event paths; W1 has zero words and proves no positive-draw branch.\",\n61: \"All applicable callback player floats, boolean/species/design-option masks, target and roll flags, node-bore storage and lifetimes. Existing WritePlayerState is not integration of the full research callback.\",\n62: \"ObservedTech full record name/first-last turn/detected/with fields, dedup/update, vector elements/header/capacity and compatible allocation/destruction. Scratch span growth is not an append implementation.\",\n63: \"Complete ordered event turn buckets, records, ids/nextId, text, image/action/location/position/chainId, dedup/pruning and allocation lifetimes; keyless count-only events cannot satisfy the save oracle.\",\n64: \"Conditional transitive system/ship AI/cap/addiction/plague changes, recursive Zuul grant, rebellion object allocation and cancellation must be implemented or rejected by approved preflight before mutation; TechApplyOutcome alone performs none of them.\",\n65: \"Observe downstream bankruptcy, repair and checksum consequences through full turn/save validation; never copy original post-state or patch expected derived leaves.\"\n66: ],\n67: \"id\": \"research-replacement\",\n68: \"inputs\": [\n69: \"W1 verify/results/saves/turn3-state.sav sha256 978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921; exact fresh-process LOAD route, one End Turn.\",\n70: \"Historical oracle verify/results/saves/cr/cr-oracle-endturn.sav sha256 e00eed0c03a31d27a81b7470a9dcc9ba08a2ac48c20baeee4f34749164743e3f and cr-oracle-autosave.sav sha256 79df50475a7b83afa927d992b9f030dcf45710f4bda0133b8b1fa4800a72e420; re-certify controls with current candidate inputs.\",\n71: \"Historical negative saves cr-replace0-autosave.sav sha256 6b51db992b158caa5424d71b2dccf72924af7198b4165bfcfc870e0d438fb6d5 and cr-replace1-autosave.sav sha256 8a4309ee4fe0b3177a2820600b5016c7c256d0f51b065df469ecd0b4f2342235 under verify/results/saves/cr/.\",\n72: \"Raw historical evidence: verify/traces/cr-{N,R0,R1}.jsonl.gz; verify/results/compare/cr-{compare,replace0,replace1}.json; verify/results/shim/cr/cr-{N,R0,R1}.log. Historical build cr-618ccb1-20260909T131556Z does not identify the current candidate.\",\n73: \"Required but missing: operator-owned executable/proxy and tech graph/tuning/localized string assets with explicit paths, SHA-256, locale and load order; generated-address provenance; compiler/toolchain; exact candidate source-content and binary manifests.\",\n74: \"Runtime-only inputs include tree order counter, allocation entries/order, current turn, target and pending-roll flags, preexisting observed-tech and event elements, RNG state/index/left, full FPU CW, installed interception sites and LOAD/continuation route.\",\n75: \"W0 turn2-state.sav one End Turn is a no-completion regression control; pin hash and re-certify. W2 different-tech positive-RNG/second-completion workload remains to be selected and certified before expanding scope.\",\n76: \"Accepted static dependency research-completion-abi establishes record/container/string ABI only; live allocator safety, runtime construction and replacement acceptance remain absent.\"\n77: ],\n78: \"original_dependencies\": [\n79: \"Retained and counted original TechTree::Cost supplies effective and cascade costs; independent effective-cost replacement is excluded.\",\n80: \"Retained and counted original TechTree::HasResearched supplies common-tail/design-mask lookup; replacement owns resulting writes.\",\n81: \"Retained and counted ServerPlayer::UpdateNodeBoreParams runs in common-tail order and may allocate/free state; independent node-bore maintenance is excluded.\",\n82: \"Original MSVCR100 scalar new/delete and accepted copy/container ABI may be used only as a counted live memory bridge. Original RecordObservedTech, EventStorage::PostEvent and string lookup are forbidden displaced roots; localized text must come from manifested runtime assets.\",\n83: \"Shim workload retains original turn driver, budget allocation, remaining simulation, data loading and save serialization. Successful scoped shim replacement would not establish independent standalone turn parity.\"\n84: ],\n85: \"owner\": {\n86: \"name\": \"Astra pilot architect\",\n87: \"role\": \"architecture-review\"\n88: },\n89: \"predictions\": [\n90: \"W1 owner order 32/496/512 with allocations 144:2898,90:0,9:0; exactly one completion and two null calls.\",\n91: \"Tech144 progress 5768->7500, state3->4, researched turn4/order22, counter22->23, unchanged flag; capped spend1732/refund1166; no RNG words.\",\n92: \"Tech132/136/142 become available turn4 at costs10000/16000/8000; observed-tech count10->11 with real element; event nextId5->7 with complete records.\",\n93: \"Existing R1 still fails by 16 leaves (independently reproduced); merely enabling cascade cannot close callback residuals. Runtime text assets may avoid original PostEvent but live adapter and policy are unresolved.\"\n94: ],\n95: \"scope\": [\n96: \"Planning only until ready: campaign/pilots/research-replacement.md is the detailed input, write-boundary and acceptance specification. No replacement code or lab operations authorized by this proposed contract.\",\n97: \"Target ProcessResearch plus SetResearched and required OnTechResearched effects for the W1 turn3 LOAD-to-turn4 completion; broad research correctness is not implied.\",\n98: \"The accepted static ABI dependency does not authorize live wiring. First accept a separately contracted live record bridge; then assign one complete W1 coordinator write set with baseline-pinned paired worktrees and exclusive source/build/VM ownership.\",\n99: \"Before implementation provide exact owned source paths, supported-input preflight, executable acceptance and immutable manifests. Uncommitted bootstrap changes are not bound by these HEAD IDs.\"\n100: ],\n101: \"status\": \"proposed\",\n102: \"stop_conditions\": [\n103: \"Remain proposed while readiness criterion, dependency decisions, input manifests and executable acceptance are missing; do not interpret narrative strings as execution proof.\",\n104: \"Stop on control disagreement, instrumentation mismatch, source/input drift, missing artifacts/assets, unknown RNG, unmodelled fired branch, unexpected writes, zero required execution or forbidden original fallback.\",\n105: \"Record any falsified assumption or changed scope as a surprise and obtain Astra resolution before affected work continues; checkpoint at 20 calls/15 minutes and before experiments, handoff or stop.\",\n106: \"No lab or shared-host mutation without explicit assignment and lease; no commits, staging, push or delegated work under the current pilot-design assignment.\"\n107: ],\n108: \"title\": \"Completion-bearing W1 research replacement pilot (proposed; live bridge, assets and runner pending)\"\n109: }\n\n(End of file - total 109 lines)\n","metadata":{"preview":"{\n \"acceptance\": [\n {\n \"axis\": \"planning\",\n \"criterion\": \"BLOCKED: accepted static ABI dependency is named and original-helper policy is fixed, but readiness still requires an accepted live-record-bridge contract, implemented tools/research_replacement.py interfaces from the pilot plan, required asset paths/hashes, W0 recertification, exact coordinator-owned paths and immutable source/binary/input manifests.\",\n \"id\": \"readiness\"\n },\n {\n \"axis\": \"implementation\",\n \"criterion\": \"Fresh full-profile source-bound host/assets/shim build; expected test identities and explicit positive executed workloads; no required missing input, unexpected skip or stale binary.\",\n \"id\": \"full-gate\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Two fresh C1/C2 hooks-off processes and candidate compare N on the exact W1 input/route produce identical pre/post save pairs; full installed-site manifests and per-call CW retained. Reject incomplete raw bundles or disagreement.\",\n \"id\": \"control-neutrality\"\n },\n {\n \"axis\": \"implementation\",\n \"criterion\": \"W1 replace executes exactly one tech-144 completion and three unlocks, two actual event records and one full observed-tech record, refund 1166 and primary player effects; original displaced roots bypassed, declared helpers counted; zero unsupported paths, unreadable inputs or failures.\",","truncated":false,"loaded":[],"display":{"type":"file","path":"/home/alex/sots-re/campaign/contracts/research-replacement.json","text":"{\n \"acceptance\": [\n {\n \"axis\": \"planning\",\n \"criterion\": \"BLOCKED: accepted static ABI dependency is named and original-helper policy is fixed, but readiness still requires an accepted live-record-bridge contract, implemented tools/research_replacement.py interfaces from the pilot plan, required asset paths/hashes, W0 recertification, exact coordinator-owned paths and immutable source/binary/input manifests.\",\n \"id\": \"readiness\"\n },\n {\n \"axis\": \"implementation\",\n \"criterion\": \"Fresh full-profile source-bound host/assets/shim build; expected test identities and explicit positive executed workloads; no required missing input, unexpected skip or stale binary.\",\n \"id\": \"full-gate\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Two fresh C1/C2 hooks-off processes and candidate compare N on the exact W1 input/route produce identical pre/post save pairs; full installed-site manifests and per-call CW retained. Reject incomplete raw bundles or disagreement.\",\n \"id\": \"control-neutrality\"\n },\n {\n \"axis\": \"implementation\",\n \"criterion\": \"W1 replace executes exactly one tech-144 completion and three unlocks, two actual event records and one full observed-tech record, refund 1166 and primary player effects; original displaced roots bypassed, declared helpers counted; zero unsupported paths, unreadable inputs or failures.\",\n \"id\": \"positive-replace\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Require post-turn file-byte, inflated-byte and exact-bit unmasked state equality plus complete reader coverage and nonserialized order/RNG checks. Pre-turn resave equality, count-only regions and zero-execution passes cannot satisfy this criterion.\",\n \"id\": \"oracle\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Executable checker rejects archived R0's 27 and R1's 16 leaf differences, absent callback/event/ObservedTech writes, W0 as completion evidence, missing artifacts, wrong hashes, and unknown RNG reported as zero.\",\n \"id\": \"negative-controls\"\n },\n {\n \"axis\": \"validation\",\n \"criterion\": \"Different verifier execution reproduces source/binary/input-bound package and a meaningful negative control; integrated-tree evidence is required before accepted. No author-only verdict or reporter --accept flag grants campaign acceptance.\",\n \"id\": \"independent-reproduction\"\n },\n {\n \"axis\": \"original_dependencies\",\n \"criterion\": \"Publish retained original helpers and W1-only scope separately. Require certified W2 and branch-specific original experiments plus synthetic boundaries before claiming RNG-consuming, other-effect-family, recursive, dedup, decay, plague or rebellion coverage.\",\n \"id\": \"coverage-and-dependencies\"\n }\n ],\n \"baseline\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"checkpoint\": \"campaign/runtime/checkpoints/research-replacement-fc19e142bf1db96b10d29391.json\",\n \"dependencies\": [\n \"research-completion-abi\"\n ],\n \"effects\": [\n \"All node state/progress/flag/cost/availability/researched-turn/order words; tree order counter; capped spend and refund accumulator; idle-node decay; ordered cascade including conditional recursive zero-cost completions.\",\n \"RNG full state, left and next-index plus actual consumed words, including conditional completion rolls, Zuul second roll and research-event paths; W1 has zero words and proves no positive-draw branch.\",\n \"All applicable callback player floats, boolean/species/design-option masks, target and roll flags, node-bore storage and lifetimes. Existing WritePlayerState is not integration of the full research callback.\",\n \"ObservedTech full record name/first-last turn/detected/with fields, dedup/update, vector elements/header/capacity and compatible allocation/destruction. Scratch span growth is not an append implementation.\",\n \"Complete ordered event turn buckets, records, ids/nextId, text, image/action/location/position/chainId, dedup/pruning and allocation lifetimes; keyless count-only events cannot satisfy the save oracle.\",\n \"Conditional transitive system/ship AI/cap/addiction/plague changes, recursive Zuul grant, rebellion object allocation and cancellation must be implemented or rejected by approved preflight before mutation; TechApplyOutcome alone performs none of them.\",\n \"Observe downstream bankruptcy, repair and checksum consequences through full turn/save validation; never copy original post-state or patch expected derived leaves.\"\n ],\n \"id\": \"research-replacement\",\n \"inputs\": [\n \"W1 verify/results/saves/turn3-state.sav sha256 978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921; exact fresh-process LOAD route, one End Turn.\",\n \"Historical oracle verify/results/saves/cr/cr-oracle-endturn.sav sha256 e00eed0c03a31d27a81b7470a9dcc9ba08a2ac48c20baeee4f34749164743e3f and cr-oracle-autosave.sav sha256 79df50475a7b83afa927d992b9f030dcf45710f4bda0133b8b1fa4800a72e420; re-certify controls with current candidate inputs.\",\n \"Historical negative saves cr-replace0-autosave.sav sha256 6b51db992b158caa5424d71b2dccf72924af7198b4165bfcfc870e0d438fb6d5 and cr-replace1-autosave.sav sha256 8a4309ee4fe0b3177a2820600b5016c7c256d0f51b065df469ecd0b4f2342235 under verify/results/saves/cr/.\",\n \"Raw historical evidence: verify/traces/cr-{N,R0,R1}.jsonl.gz; verify/results/compare/cr-{compare,replace0,replace1}.json; verify/results/shim/cr/cr-{N,R0,R1}.log. Historical build cr-618ccb1-20260909T131556Z does not identify the current candidate.\",\n \"Required but missing: operator-owned executable/proxy and tech graph/tuning/localized string assets with explicit paths, SHA-256, locale and load order; generated-address provenance; compiler/toolchain; exact candidate source-content and binary manifests.\",\n \"Runtime-only inputs include tree order counter, allocation entries/order, current turn, target and pending-roll flags, preexisting observed-tech and event elements, RNG state/index/left, full FPU CW, installed interception sites and LOAD/continuation route.\",\n \"W0 turn2-state.sav one End Turn is a no-completion regression control; pin hash and re-certify. W2 different-tech positive-RNG/second-completion workload remains to be selected and certified before expanding scope.\",\n \"Accepted static dependency research-completion-abi establishes record/container/string ABI only; live allocator safety, runtime construction and replacement acceptance remain absent.\"\n ],\n \"original_dependencies\": [\n \"Retained and counted original TechTree::Cost supplies effective and cascade costs; independent effective-cost replacement is excluded.\",\n \"Retained and counted original TechTree::HasResearched supplies common-tail/design-mask lookup; replacement owns resulting writes.\",\n \"Retained and counted ServerPlayer::UpdateNodeBoreParams runs in common-tail order and may allocate/free state; independent node-bore maintenance is excluded.\",\n \"Original MSVCR100 scalar new/delete and accepted copy/container ABI may be used only as a counted live memory bridge. Original RecordObservedTech, EventStorage::PostEvent and string lookup are forbidden displaced roots; localized text must come from manifested runtime assets.\",\n \"Shim workload retains original turn driver, budget allocation, remaining simulation, data loading and save serialization. Successful scoped shim replacement would not establish independent standalone turn parity.\"\n ],\n \"owner\": {\n \"name\": \"Astra pilot architect\",\n \"role\": \"architecture-review\"\n },\n \"predictions\": [\n \"W1 owner order 32/496/512 with allocations 144:2898,90:0,9:0; exactly one completion and two null calls.\",\n \"Tech144 progress 5768->7500, state3->4, researched turn4/order22, counter22->23, unchanged flag; capped spend1732/refund1166; no RNG words.\",\n \"Tech132/136/142 become available turn4 at costs10000/16000/8000; observed-tech count10->11 with real element; event nextId5->7 with complete records.\",\n \"Existing R1 still fails by 16 leaves (independently reproduced); merely enabling cascade cannot close callback residuals. Runtime text assets may avoid original PostEvent but live adapter and policy are unresolved.\"\n ],\n \"scope\": [\n \"Planning only until ready: campaign/pilots/research-replacement.md is the detailed input, write-boundary and acceptance specification. No replacement code or lab operations authorized by this proposed contract.\",\n \"Target ProcessResearch plus SetResearched and required OnTechResearched effects for the W1 turn3 LOAD-to-turn4 completion; broad research correctness is not implied.\",\n \"The accepted static ABI dependency does not authorize live wiring. First accept a separately contracted live record bridge; then assign one complete W1 coordinator write set with baseline-pinned paired worktrees and exclusive source/build/VM ownership.\",\n \"Before implementation provide exact owned source paths, supported-input preflight, executable acceptance and immutable manifests. Uncommitted bootstrap changes are not bound by these HEAD IDs.\"\n ],\n \"status\": \"proposed\",\n \"stop_conditions\": [\n \"Remain proposed while readiness criterion, dependency decisions, input manifests and executable acceptance are missing; do not interpret narrative strings as execution proof.\",\n \"Stop on control disagreement, instrumentation mismatch, source/input drift, missing artifacts/assets, unknown RNG, unmodelled fired branch, unexpected writes, zero required execution or forbidden original fallback.\",\n \"Record any falsified assumption or changed scope as a surprise and obtain Astra resolution before affected work continues; checkpoint at 20 calls/15 minutes and before experiments, handoff or stop.\",\n \"No lab or shared-host mutation without explicit assignment and lease; no commits, staging, push or delegated work under the current pilot-design assignment.\"\n ],\n \"title\": \"Completion-bearing W1 research replacement pilot (proposed; live bridge, assets and runner pending)\"\n}","lineStart":1,"lineEnd":109,"totalLines":109,"truncated":false}},"title":"campaign/contracts/research-replacement.json","time":{"start":1789013894661,"end":1789013894674}},"metadata":{"openai":{"itemId":"fc_0ab5f7d05025c87f016aa22f85ad8c87d1b69c2473b1602921"}},"id":"prt_08989a269001iZYHzK4ZoNC1GS","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_08989903e001bzT2lFCs95qv1e"}} +{"type":"step_finish","timestamp":1789013894800,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_08989a68d00119ySGb5NvBwD0T","reason":"tool-calls","snapshot":"81f5966e5653770d47487bd0225981b79b2e8b59","messageID":"msg_08989903e001bzT2lFCs95qv1e","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":46974,"input":4276,"output":38,"reasoning":36,"cache":{"write":0,"read":42624}},"cost":0}} +{"type":"step_start","timestamp":1789013896923,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_08989aed3001yt32gyIXk6OOx1","messageID":"msg_08989a6ba001r5fKjHFwXJu3GE","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"1d11fb8fdd9888077a9b2d33d239cafc05bd189f","type":"step-start"}} +{"type":"tool_use","timestamp":1789013905974,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"bash","callID":"call_mL9DU7veDUWwHXTJ5wW0Kbec","state":{"status":"completed","input":{"command":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re surprise research-completion-abi --actor 'live-record surprise resolver' --role resolver --model openai/gpt-6-astra --summary 'Propagated affected acceptance from bridge surprise s-5a78d3a0a10c1f8545df8eb1, resolver session run-f63d1e050a7ee3fac7b44885. recovered-static.md lines 68-69 asserts temporary EvTurn zero and copy of zero. Hash-bound raw get/create and append captures run-472955e277202c411388c66b contradict that assertion: no write to EBP-0x20 before call; source+4 copied at 0x884d62/6c; stored requested turn written only at 0x88542d after temporary nested cleanup. This is static interpretation falsification, not observed runtime nondeterminism. Both integrated evidence records and independent verdict must lose current acceptance pending corrected source-bound reproduction; raw captures and archived saves are retained as historical measurements.' --probe 'Enumerate all stack writes from 0x885380 through 0x885413 and map append source+4 and final last-0x14 store; freshly rehash binary/tool and reproduce these complete windows under an authorized read-only analyst session before corrected evidence acceptance.'"},"output":"{\n \"actor\": \"live-record surprise resolver\",\n \"contract\": \"research-completion-abi\",\n \"id\": \"s-c6786945b302de2a0b629960\",\n \"model\": \"openai/gpt-6-astra\",\n \"probe\": \"Enumerate all stack writes from 0x885380 through 0x885413 and map append source+4 and final last-0x14 store; freshly rehash binary/tool and reproduce these complete windows under an authorized read-only analyst session before corrected evidence acceptance.\",\n \"role\": \"resolver\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"open\",\n \"summary\": \"Propagated affected acceptance from bridge surprise s-5a78d3a0a10c1f8545df8eb1, resolver session run-f63d1e050a7ee3fac7b44885. recovered-static.md lines 68-69 asserts temporary EvTurn zero and copy of zero. Hash-bound raw get/create and append captures run-472955e277202c411388c66b contradict that assertion: no write to EBP-0x20 before call; source+4 copied at 0x884d62/6c; stored requested turn written only at 0x88542d after temporary nested cleanup. This is static interpretation falsification, not observed runtime nondeterminism. Both integrated evidence records and independent verdict must lose current acceptance pending corrected source-bound reproduction; raw captures and archived saves are retained as historical measurements.\",\n \"timestamp\": \"2026-09-10T04:18:25.950030+00:00\"\n}\n","metadata":{"output":"{\n \"actor\": \"live-record surprise resolver\",\n \"contract\": \"research-completion-abi\",\n \"id\": \"s-c6786945b302de2a0b629960\",\n \"model\": \"openai/gpt-6-astra\",\n \"probe\": \"Enumerate all stack writes from 0x885380 through 0x885413 and map append source+4 and final last-0x14 store; freshly rehash binary/tool and reproduce these complete windows under an authorized read-only analyst session before corrected evidence acceptance.\",\n \"role\": \"resolver\",\n \"schema\": \"sots-surprise/1\",\n \"status\": \"open\",\n \"summary\": \"Propagated affected acceptance from bridge surprise s-5a78d3a0a10c1f8545df8eb1, resolver session run-f63d1e050a7ee3fac7b44885. recovered-static.md lines 68-69 asserts temporary EvTurn zero and copy of zero. Hash-bound raw get/create and append captures run-472955e277202c411388c66b contradict that assertion: no write to EBP-0x20 before call; source+4 copied at 0x884d62/6c; stored requested turn written only at 0x88542d after temporary nested cleanup. This is static interpretation falsification, not observed runtime nondeterminism. Both integrated evidence records and independent verdict must lose current acceptance pending corrected source-bound reproduction; raw captures and archived saves are retained as historical measurements.\",\n \"timestamp\": \"2026-09-10T04:18:25.950030+00:00\"\n}\n","exit":0,"truncated":false},"title":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re surprise research-completion-abi --actor 'live-record surprise resolver' --role resolver --model openai/gpt-6-astra --summary 'Propagated affected acceptance from bridge surprise s-5a78d3a0a10c1f8545df8eb1, resolver session run-f63d1e050a7ee3fac7b44885. recovered-static.md lines 68-69 asserts temporary EvTurn zero and copy of zero. Hash-bound raw get/create and append captures run-472955e277202c411388c66b contradict that assertion: no write to EBP-0x20 before call; source+4 copied at 0x884d62/6c; stored requested turn written only at 0x88542d after temporary nested cleanup. This is static interpretation falsification, not observed runtime nondeterminism. Both integrated evidence records and independent verdict must lose current acceptance pending corrected source-bound reproduction; raw captures and archived saves are retained as historical measurements.' --probe 'Enumerate all stack writes from 0x885380 through 0x885413 and map append source+4 and final last-0x14 store; freshly rehash binary/tool and reproduce these complete windows under an authorized read-only analyst session before corrected evidence acceptance.'","time":{"start":1789013905907,"end":1789013905972}},"metadata":{"openai":{"itemId":"fc_089515579f3b41fc016aa22f88e46887d1b385d752db844836"}},"id":"prt_08989aeda001WJjB5lkIKVR7Qv","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_08989a6ba001r5fKjHFwXJu3GE"}} +{"type":"step_finish","timestamp":1789013906042,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_08989d277001MCmxi6wejqX5LO","reason":"tool-calls","snapshot":"fce0ef54f5a02d624e825e67ef908fd322d4a909","messageID":"msg_08989a6ba001r5fKjHFwXJu3GE","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":49848,"input":2824,"output":304,"reasoning":0,"cache":{"write":0,"read":46720}},"cost":0}} +{"type":"step_start","timestamp":1789013908431,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_08989dbca001d1BfHAmp9Mieu8","messageID":"msg_08989d2aa001adz24ejQguqVHK","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"bf88cdf69a71e08910f2facecccb1cbaff3befa8","type":"step-start"}} +{"type":"tool_use","timestamp":1789013942989,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"bash","callID":"call_FfKzTXXjL6JPE0QcrGkf0fPO","state":{"status":"completed","input":{"command":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re resolve s-c6786945b302de2a0b629960 --actor 'live-record surprise resolver' --role resolver --model openai/gpt-6-astra --explanation 'Astra resolution, session run-f63d1e050a7ee3fac7b44885. OBSERVATION/PROVENANCE: reviewed complete raw get/create and append windows in verify/results/research-live-record-bridge/run-472955e277202c411388c66b; checkpoint d08b4bbf364f3305ee2fef98 rehashed manifest ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b and both stdout artifacts to their recorded hashes. Historical capture manifest binds sots.exe 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and objdump 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd with positive nonempty exit-zero static execution. Current binary/tool were not rehashed or rerun: resolver shell denies that operation. Worktree HEAD/common directories match baselines; dirty content is not inferred from HEAD. No game or hook ran; read-only disassembly introduces no runtime instrument effects. No stale-build or game-mechanism diagnosis is justified.\nOVERTURNED, exact captured normal miss-path domain: temporary EvTurn is initialized to zero, and append necessarily copies zero (recovered-static.md lines 68-69). Complete entry has no call before append and no store to EBP-0x20: prologue writes SEH at -4/-8/-c, stack reservation does not initialize locals, saved registers/cookie are below -24; miss stores vptr at -24, nested pointers at -1c/-18/-14 and EH state at -4. ECX names receiver+4. Append external-source branch loads source+4 at 0x884d62 and stores destination+4 at 0x884d6c, then nested-copy, then advances last at 0x884d78. Temporary nested cleanup at 0x885422 precedes requested-turn store to last-0x14 at 0x88542d.\nSURVIVES in those static windows for valid containers and normally returning helpers: ECX receiver/one stack argument/ret4/EAX bucket ABI; full last-match scan; vptr and empty nested-header initialization; scalar EvTurn copy distinct from nested deep-copy; cleanup of temporary nested vector; final new bucket turn equals requested turn and EAX=last-0x18. Existing unrelated ObservedTech, PlayerEvent equality and archived-state measurements are not falsified by this finding.\nQUALIFIED: transient EvTurn is an incoming stack word not initialized by this routine, not a measured random value or necessarily nonzero. Post-return semantics are statically usable only on successful normal paths with valid allocations; no conclusion about failure, reentrancy, transient observers, live allocator safety or all-byte/padding equivalence. Deep-copy/unwind outside inspected empty nested path retain prior static-only scope, not newly reproduced runtime coverage. Complete 0x18 layout must distinguish semantic fields from uninitialized/padding bytes, not invent defaults.\nINVALIDATION: controls withdraw both current integrated evidence records research-completion-abi-static-run-79357a65226f61d6a86c042d and research-completion-abi-validation-run-735fcb8f4876c10285b03fad and their verdict/checkpoint as acceptance, retaining raw historical measurements. ownership-recovered and independent-cross-check must be re-established against corrected interpretation; archived-state byte claims themselves are not overturned. No silent criterion waiver.\nREVISED SCOPE/NEXT: lead assigns the ABI owner a read-only identity/reproduction-and-correction quantum, then independent integrated verification and normal reacceptance. Generated row wording: On miss, initializes TurnEvents vptr and three nested-vector pointers; temporary EvTurn at +4 is not initialized by this routine. Append copies that incoming word, deep-copies nested vector and advances last. After temporary nested-vector cleanup, get/create writes requested turn into stored last element and returns it. Normal-return static semantics only; transient word, padding and failure effects are not runtime-certified. No source edits made by resolver. Bridge and replacement readiness remain gated by reaccepted ABI and all existing runtime criteria. Integrator must link this decision and regenerate projections after integration, not copy another history onto board.' --probe 'Cheapest discriminator is read-only complete-window def/use review, performed on hash-checked archived get/create and append text here; no pre-append EBP-0x20 store exists. Before corrected acceptance, authorized analyst freshly hashes binary/tool and repeats manifest argv for those two windows plus nested empty-copy/cleanup, explicitly checks prologue stack offsets and cleanup-before-final-store order; independent verifier reproduces the corrected integrated package. No VM is needed for this interpretation repair. If transient runtime equivalence is later required, separately approve a leased fixture with two deliberately distinct initialized stack sentinels and spare/full capacity, pre/post-store observations and neutral controls; it is not authorized or executed here.'"},"output":"{\n \"actor\": \"live-record surprise resolver\",\n \"contract\": \"research-completion-abi\",\n \"explanation\": \"Astra resolution, session run-f63d1e050a7ee3fac7b44885. OBSERVATION/PROVENANCE: reviewed complete raw get/create and append windows in verify/results/research-live-record-bridge/run-472955e277202c411388c66b; checkpoint d08b4bbf364f3305ee2fef98 rehashed manifest ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b and both stdout artifacts to their recorded hashes. Historical capture manifest binds sots.exe 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and objdump 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd with positive nonempty exit-zero static execution. Current binary/tool were not rehashed or rerun: resolver shell denies that operation. Worktree HEAD/common directories match baselines; dirty content is not inferred from HEAD. No game or hook ran; read-only disassembly introduces no runtime instrument effects. No stale-build or game-mechanism diagnosis is justified.\\nOVERTURNED, exact captured normal miss-path domain: temporary EvTurn is initialized to zero, and append necessarily copies zero (recovered-static.md lines 68-69). Complete entry has no call before append and no store to EBP-0x20: prologue writes SEH at -4/-8/-c, stack reservation does not initialize locals, saved registers/cookie are below -24; miss stores vptr at -24, nested pointers at -1c/-18/-14 and EH state at -4. ECX names receiver+4. Append external-source branch loads source+4 at 0x884d62 and stores destination+4 at 0x884d6c, then nested-copy, then advances last at 0x884d78. Temporary nested cleanup at 0x885422 precedes requested-turn store to last-0x14 at 0x88542d.\\nSURVIVES in those static windows for valid containers and normally returning helpers: ECX receiver/one stack argument/ret4/EAX bucket ABI; full last-match scan; vptr and empty nested-header initialization; scalar EvTurn copy distinct from nested deep-copy; cleanup of temporary nested vector; final new bucket turn equals requested turn and EAX=last-0x18. Existing unrelated ObservedTech, PlayerEvent equality and archived-state measurements are not falsified by this finding.\\nQUALIFIED: transient EvTurn is an incoming stack word not initialized by this routine, not a measured random value or necessarily nonzero. Post-return semantics are statically usable only on successful normal paths with valid allocations; no conclusion about failure, reentrancy, transient observers, live allocator safety or all-byte/padding equivalence. Deep-copy/unwind outside inspected empty nested path retain prior static-only scope, not newly reproduced runtime coverage. Complete 0x18 layout must distinguish semantic fields from uninitialized/padding bytes, not invent defaults.\\nINVALIDATION: controls withdraw both current integrated evidence records research-completion-abi-static-run-79357a65226f61d6a86c042d and research-completion-abi-validation-run-735fcb8f4876c10285b03fad and their verdict/checkpoint as acceptance, retaining raw historical measurements. ownership-recovered and independent-cross-check must be re-established against corrected interpretation; archived-state byte claims themselves are not overturned. No silent criterion waiver.\\nREVISED SCOPE/NEXT: lead assigns the ABI owner a read-only identity/reproduction-and-correction quantum, then independent integrated verification and normal reacceptance. Generated row wording: On miss, initializes TurnEvents vptr and three nested-vector pointers; temporary EvTurn at +4 is not initialized by this routine. Append copies that incoming word, deep-copies nested vector and advances last. After temporary nested-vector cleanup, get/create writes requested turn into stored last element and returns it. Normal-return static semantics only; transient word, padding and failure effects are not runtime-certified. No source edits made by resolver. Bridge and replacement readiness remain gated by reaccepted ABI and all existing runtime criteria. Integrator must link this decision and regenerate projections after integration, not copy another history onto board.\",\n \"id\": \"d-b51f3f76803e852ed250846a\",\n \"invalidated_checkpoint\": \"campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json\",\n \"invalidated_evidence\": [\n {\n \"axis\": \"static-recovery\",\n \"binaries\": [\n {\n \"path\": \"dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n }\n ],\n \"id\": \"research-completion-abi-static-run-79357a65226f61d6a86c042d\",\n \"inputs\": [\n {\n \"path\": \"verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/report.md\",\n \"sha256\": \"d5a28f01002f1711cf8575ffd817a8f0998b413c6280d656e6cdad5a90a04477\"\n }\n ],\n \"integrated\": true,\n \"outcomes\": [\n {\n \"artifact\": {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n },\n \"criterion\": \"ownership-recovered\",\n \"status\": \"pass\"\n }\n ],\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\",\n \"source\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"source_binding\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\",\n \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n }\n }\n },\n {\n \"axis\": \"validation\",\n \"binaries\": [\n {\n \"path\": \"dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n }\n ],\n \"id\": \"research-completion-abi-validation-run-735fcb8f4876c10285b03fad\",\n \"inputs\": [\n {\n \"path\": \"verify/results/saves/turn3-state.sav\",\n \"sha256\": \"978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n }\n ],\n \"integrated\": true,\n \"outcomes\": [\n {\n \"artifact\": {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\"\n },\n \"criterion\": \"independent-cross-check\",\n \"status\": \"pass\"\n }\n ],\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\",\n \"source\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"source_binding\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\",\n \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n }\n }\n }\n ],\n \"model\": \"openai/gpt-6-astra\",\n \"probe\": \"Cheapest discriminator is read-only complete-window def/use review, performed on hash-checked archived get/create and append text here; no pre-append EBP-0x20 store exists. Before corrected acceptance, authorized analyst freshly hashes binary/tool and repeats manifest argv for those two windows plus nested empty-copy/cleanup, explicitly checks prologue stack offsets and cleanup-before-final-store order; independent verifier reproduces the corrected integrated package. No VM is needed for this interpretation repair. If transient runtime equivalence is later required, separately approve a leased fixture with two deliberately distinct initialized stack sentinels and spare/full capacity, pre/post-store observations and neutral controls; it is not authorized or executed here.\",\n \"role\": \"resolver\",\n \"schema\": \"sots-decision/1\",\n \"surprise\": \"s-c6786945b302de2a0b629960\",\n \"timestamp\": \"2026-09-10T04:19:02.935461+00:00\"\n}\n","metadata":{"output":"{\n \"actor\": \"live-record surprise resolver\",\n \"contract\": \"research-completion-abi\",\n \"explanation\": \"Astra resolution, session run-f63d1e050a7ee3fac7b44885. OBSERVATION/PROVENANCE: reviewed complete raw get/create and append windows in verify/results/research-live-record-bridge/run-472955e277202c411388c66b; checkpoint d08b4bbf364f3305ee2fef98 rehashed manifest ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b and both stdout artifacts to their recorded hashes. Historical capture manifest binds sots.exe 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and objdump 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd with positive nonempty exit-zero static execution. Current binary/tool were not rehashed or rerun: resolver shell denies that operation. Worktree HEAD/common directories match baselines; dirty content is not inferred from HEAD. No game or hook ran; read-only disassembly introduces no runtime instrument effects. No stale-build or game-mechanism diagnosis is justified.\\nOVERTURNED, exact captured normal miss-path domain: temporary EvTurn is initialized to zero, and append necessarily copies zero (recovered-static.md lines 68-69). Complete entry has no call before append and no store to EBP-0x20: prologue writes SEH at -4/-8/-c, stack reservation does not initialize locals, saved registers/cookie are below -24; miss stores vptr at -24, nested pointers at -1c/-18/-14 and EH state at -4. ECX names receiver+4. Append external-source branch loads source+4 at 0x884d62 and stores destination+4 at 0x884d6c, then nested-copy, then advances last at 0x884d78. Temporary nested cleanup at 0x885422 precedes requested-turn store to last-0x14 at 0x88542d.\\nSURVIVES in those static windows for valid containers and normally returning helpers: ECX receiver/one stack argument/ret4/EAX bucket ABI; full last-match scan; vptr and empty nested-header initialization; scalar EvTurn copy distinct from nested deep-copy; cleanup of temporary nested vector; final new bucket turn equals requested turn and EAX=last-0x18. Existing unrelated ObservedTech, PlayerEvent equality and archived-state measurements are not falsified by this finding.\\nQUALIFIED: transient EvTurn is an incoming stack word not initialized by this routine, not a measured random value or necessarily nonzero. Post-return semantics are statically usable only on successful normal paths with valid allocations; no conclusion about failure, reentrancy, transient observers, live allocator safety or all-byte/padding equivalence. Deep-copy/unwind outside inspected empty nested path retain prior static-only scope, not newly reproduced runtime coverage. Complete 0x18 layout must distinguish semantic fields from uninitialized/padding bytes, not invent defaults.\\nINVALIDATION: controls withdraw both current integrated evidence records research-completion-abi-static-run-79357a65226f61d6a86c042d and research-completion-abi-validation-run-735fcb8f4876c10285b03fad and their verdict/checkpoint as acceptance, retaining raw historical measurements. ownership-recovered and independent-cross-check must be re-established against corrected interpretation; archived-state byte claims themselves are not overturned. No silent criterion waiver.\\nREVISED SCOPE/NEXT: lead assigns the ABI owner a read-only identity/reproduction-and-correction quantum, then independent integrated verification and normal reacceptance. Generated row wording: On miss, initializes TurnEvents vptr and three nested-vector pointers; temporary EvTurn at +4 is not initialized by this routine. Append copies that incoming word, deep-copies nested vector and advances last. After temporary nested-vector cleanup, get/create writes requested turn into stored last element and returns it. Normal-return static semantics only; transient word, padding and failure effects are not runtime-certified. No source edits made by resolver. Bridge and replacement readiness remain gated by reaccepted ABI and all existing runtime criteria. Integrator must link this decision and regenerate projections after integration, not copy another history onto board.\",\n \"id\": \"d-b51f3f76803e852ed250846a\",\n \"invalidated_checkpoint\": \"campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json\",\n \"invalidated_evidence\": [\n {\n \"axis\": \"static-recovery\",\n \"binaries\": [\n {\n \"path\": \"dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n }\n ],\n \"id\": \"research-completion-abi-static-run-79357a65226f61d6a86c042d\",\n \"inputs\": [\n {\n \"path\": \"verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/report.md\",\n \"sha256\": \"d5a28f01002f1711cf8575ffd817a8f0998b413c6280d656e6cdad5a90a04477\"\n }\n ],\n \"integrated\": true,\n \"outcomes\": [\n {\n \"artifact\": {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n },\n \"criterion\": \"ownership-recovered\",\n \"status\": \"pass\"\n }\n ],\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\",\n \"source\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"source_binding\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\",\n \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n }\n }\n },\n {\n \"axis\": \"validation\",\n \"binaries\": [\n {\n \"path\": \"dumps/sots.exe\",\n \"sha256\": \"970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841\"\n }\n ],\n \"id\": \"research-completion-abi-validation-run-735fcb8f4876c10285b03fad\",\n \"inputs\": [\n {\n \"path\": \"verify/results/saves/turn3-state.sav\",\n \"sha256\": \"978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921\"\n },\n {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json\",\n \"sha256\": \"4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c\"\n }\n ],\n \"integrated\": true,\n \"outcomes\": [\n {\n \"artifact\": {\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\"\n },\n \"criterion\": \"independent-cross-check\",\n \"status\": \"pass\"\n }\n ],\n \"path\": \"verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json\",\n \"sha256\": \"6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433\",\n \"source\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\"\n }\n },\n \"source_binding\": {\n \"engine\": {\n \"commit\": \"7741d42fc5e4e761e6449bdaf0e4a61d00036a23\",\n \"path\": \"/home/alex/sots-engine\",\n \"sha256\": \"ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd\"\n },\n \"re\": {\n \"commit\": \"3bfde5a70d874a723e797a695bbd847fd82c0aa7\",\n \"path\": \"/home/alex/sots-re\",\n \"sha256\": \"e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4\"\n }\n }\n }\n ],\n \"model\": \"openai/gpt-6-astra\",\n \"probe\": \"Cheapest discriminator is read-only complete-window def/use review, performed on hash-checked archived get/create and append text here; no pre-append EBP-0x20 store exists. Before corrected acceptance, authorized analyst freshly hashes binary/tool and repeats manifest argv for those two windows plus nested empty-copy/cleanup, explicitly checks prologue stack offsets and cleanup-before-final-store order; independent verifier reproduces the corrected integrated package. No VM is needed for this interpretation repair. If transient runtime equivalence is later required, separately approve a leased fixture with two deliberately distinct initialized stack sentinels and spare/full capacity, pre/post-store observations and neutral controls; it is not authorized or executed here.\",\n \"role\": \"resolver\",\n \"schema\": \"sots-decision/1\",\n \"surprise\": \"s-c6786945b302de2a0b629960\",\n \"timestamp\": \"2026-09-10T04:19:02.935461+00:00\"\n}\n","exit":0,"truncated":false},"title":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re resolve s-c6786945b302de2a0b629960 --actor 'live-record surprise resolver' --role resolver --model openai/gpt-6-astra --explanation 'Astra resolution, session run-f63d1e050a7ee3fac7b44885. OBSERVATION/PROVENANCE: reviewed complete raw get/create and append windows in verify/results/research-live-record-bridge/run-472955e277202c411388c66b; checkpoint d08b4bbf364f3305ee2fef98 rehashed manifest ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b and both stdout artifacts to their recorded hashes. Historical capture manifest binds sots.exe 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and objdump 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd with positive nonempty exit-zero static execution. Current binary/tool were not rehashed or rerun: resolver shell denies that operation. Worktree HEAD/common directories match baselines; dirty content is not inferred from HEAD. No game or hook ran; read-only disassembly introduces no runtime instrument effects. No stale-build or game-mechanism diagnosis is justified.\nOVERTURNED, exact captured normal miss-path domain: temporary EvTurn is initialized to zero, and append necessarily copies zero (recovered-static.md lines 68-69). Complete entry has no call before append and no store to EBP-0x20: prologue writes SEH at -4/-8/-c, stack reservation does not initialize locals, saved registers/cookie are below -24; miss stores vptr at -24, nested pointers at -1c/-18/-14 and EH state at -4. ECX names receiver+4. Append external-source branch loads source+4 at 0x884d62 and stores destination+4 at 0x884d6c, then nested-copy, then advances last at 0x884d78. Temporary nested cleanup at 0x885422 precedes requested-turn store to last-0x14 at 0x88542d.\nSURVIVES in those static windows for valid containers and normally returning helpers: ECX receiver/one stack argument/ret4/EAX bucket ABI; full last-match scan; vptr and empty nested-header initialization; scalar EvTurn copy distinct from nested deep-copy; cleanup of temporary nested vector; final new bucket turn equals requested turn and EAX=last-0x18. Existing unrelated ObservedTech, PlayerEvent equality and archived-state measurements are not falsified by this finding.\nQUALIFIED: transient EvTurn is an incoming stack word not initialized by this routine, not a measured random value or necessarily nonzero. Post-return semantics are statically usable only on successful normal paths with valid allocations; no conclusion about failure, reentrancy, transient observers, live allocator safety or all-byte/padding equivalence. Deep-copy/unwind outside inspected empty nested path retain prior static-only scope, not newly reproduced runtime coverage. Complete 0x18 layout must distinguish semantic fields from uninitialized/padding bytes, not invent defaults.\nINVALIDATION: controls withdraw both current integrated evidence records research-completion-abi-static-run-79357a65226f61d6a86c042d and research-completion-abi-validation-run-735fcb8f4876c10285b03fad and their verdict/checkpoint as acceptance, retaining raw historical measurements. ownership-recovered and independent-cross-check must be re-established against corrected interpretation; archived-state byte claims themselves are not overturned. No silent criterion waiver.\nREVISED SCOPE/NEXT: lead assigns the ABI owner a read-only identity/reproduction-and-correction quantum, then independent integrated verification and normal reacceptance. Generated row wording: On miss, initializes TurnEvents vptr and three nested-vector pointers; temporary EvTurn at +4 is not initialized by this routine. Append copies that incoming word, deep-copies nested vector and advances last. After temporary nested-vector cleanup, get/create writes requested turn into stored last element and returns it. Normal-return static semantics only; transient word, padding and failure effects are not runtime-certified. No source edits made by resolver. Bridge and replacement readiness remain gated by reaccepted ABI and all existing runtime criteria. Integrator must link this decision and regenerate projections after integration, not copy another history onto board.' --probe 'Cheapest discriminator is read-only complete-window def/use review, performed on hash-checked archived get/create and append text here; no pre-append EBP-0x20 store exists. Before corrected acceptance, authorized analyst freshly hashes binary/tool and repeats manifest argv for those two windows plus nested empty-copy/cleanup, explicitly checks prologue stack offsets and cleanup-before-final-store order; independent verifier reproduces the corrected integrated package. No VM is needed for this interpretation repair. If transient runtime equivalence is later required, separately approve a leased fixture with two deliberately distinct initialized stack sentinels and spare/full capacity, pre/post-store observations and neutral controls; it is not authorized or executed here.'","time":{"start":1789013942891,"end":1789013942985}},"metadata":{"openai":{"itemId":"fc_051760ac45a2d307016aa22f94555c87d1ae354f9c60406274"}},"id":"prt_08989dbcd001U793PvkRWFarNJ","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_08989d2aa001adz24ejQguqVHK"}} +{"type":"step_finish","timestamp":1789013943026,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898a62ef001ikjSUcL7R90ydR","reason":"tool-calls","snapshot":"283ce7bd3c083bcb61f96af3569b76d6c645447a","messageID":"msg_08989d2aa001adz24ejQguqVHK","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":51362,"input":800,"output":1154,"reasoning":0,"cache":{"write":0,"read":49408}},"cost":0}} +{"type":"step_start","timestamp":1789013945211,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898a6b78001aW1w5zn7wZfmdW","messageID":"msg_0898a632600114Ps7uxrxLrLBc","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"848a92727c86ea01ebf8e020e65dad0bfdcaeb71","type":"step-start"}} +{"type":"tool_use","timestamp":1789013968385,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"bash","callID":"call_0pFeRNL5tu2mLlQPBIeUpu1W","state":{"status":"completed","input":{"command":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re resolve s-5a78d3a0a10c1f8545df8eb1 --actor 'live-record surprise resolver' --role resolver --model openai/gpt-6-astra --explanation 'Resolution session run-f63d1e050a7ee3fac7b44885. Governing claim-by-claim analysis, exact generated-row wording, provenance limitations and dependency invalidation are in campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json, not an alternate board history. Direct review of hash-checked complete get/create and append captures confirms no temporary EvTurn initialization before append; cleanup occurs before final requested-turn store. OVERTURNED: zero temporary turn and necessarily zero copied scalar in captured miss path. SURVIVES: captured normal-return ABI, last-match hit scan, vptr/empty nested header, scalar-copy plus nested deep-copy structure, temporary nested cleanup and final returned bucket with requested turn. QUALIFIED: incoming stack word is unspecified by this routine, not measured randomness/nonzero; final equivalence requires valid containers and successful helpers. Transient observers, padding, full-capacity/failure/unwind and live allocation remain untested. Unrelated observed-name, event equality and string ownership hypotheses are not falsified or newly certified. Manifest records positive static tool execution, not game execution; no instrument ran in game, no stale-build conclusion. Current binary/tool rehash and executable reproduction were not permitted in resolver shell; historical binding is not fresh acceptance.\nAffected dependency research-completion-abi is now needs-revision, both evidence records withdrawn and verdict invalidated by d-b51f3f76803e852ed250846a. Bridge had no evidence to invalidate; prior checkpoint is superseded, and zero-default-derived readiness/architecture assertions cannot be used. Bridge acceptance criteria ALL remain mandatory. This resolution permits only lead-assigned static correction/reproduction planning; it does not authorize bridge implementation, runtime fixtures or replacement wiring. Do not reproduce an uninitialized C++ read or silently declare zero initialization byte-exact: explicitly separate semantic normal-return fields from transient/padding behavior and retain complete write accounting. Lead must repair/reaccept ABI first; then assigned architect may encode the decision through documented generated channels and fill all missing readiness inputs. research-replacement remains proposed and unable to advance on withdrawn ABI acceptance; its other W1 claims are unchanged, not accepted. Integrator links actual decisions and regenerates projections only after integration. No implementation, architecture source, lab or publication edits performed.' --probe 'Cheapest discriminator: complete-window stack def/use inspection of 0x885380..0x88544a and 0x884cb0..0x884d8f, already performed on checkpoint-hashed raw text; no EBP-0x20 write before append. Next authorized analyst quantum must freshly hash binary/tool and rerun those manifest commands plus nested empty-copy/cleanup, correct the dependency interpretation using d-b51f3f76803e852ed250846a wording, then obtain independent integrated reproduction. No VM needed for this correction. Any later transient sentinel experiment requires separate explicit lease/authority, positive execution and instrument-neutral controls; existing live runtime-matrix and negative-control requirements are not waived.'"},"output":"{\n \"actor\": \"live-record surprise resolver\",\n \"contract\": \"research-live-record-bridge\",\n \"explanation\": \"Resolution session run-f63d1e050a7ee3fac7b44885. Governing claim-by-claim analysis, exact generated-row wording, provenance limitations and dependency invalidation are in campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json, not an alternate board history. Direct review of hash-checked complete get/create and append captures confirms no temporary EvTurn initialization before append; cleanup occurs before final requested-turn store. OVERTURNED: zero temporary turn and necessarily zero copied scalar in captured miss path. SURVIVES: captured normal-return ABI, last-match hit scan, vptr/empty nested header, scalar-copy plus nested deep-copy structure, temporary nested cleanup and final returned bucket with requested turn. QUALIFIED: incoming stack word is unspecified by this routine, not measured randomness/nonzero; final equivalence requires valid containers and successful helpers. Transient observers, padding, full-capacity/failure/unwind and live allocation remain untested. Unrelated observed-name, event equality and string ownership hypotheses are not falsified or newly certified. Manifest records positive static tool execution, not game execution; no instrument ran in game, no stale-build conclusion. Current binary/tool rehash and executable reproduction were not permitted in resolver shell; historical binding is not fresh acceptance.\\nAffected dependency research-completion-abi is now needs-revision, both evidence records withdrawn and verdict invalidated by d-b51f3f76803e852ed250846a. Bridge had no evidence to invalidate; prior checkpoint is superseded, and zero-default-derived readiness/architecture assertions cannot be used. Bridge acceptance criteria ALL remain mandatory. This resolution permits only lead-assigned static correction/reproduction planning; it does not authorize bridge implementation, runtime fixtures or replacement wiring. Do not reproduce an uninitialized C++ read or silently declare zero initialization byte-exact: explicitly separate semantic normal-return fields from transient/padding behavior and retain complete write accounting. Lead must repair/reaccept ABI first; then assigned architect may encode the decision through documented generated channels and fill all missing readiness inputs. research-replacement remains proposed and unable to advance on withdrawn ABI acceptance; its other W1 claims are unchanged, not accepted. Integrator links actual decisions and regenerates projections only after integration. No implementation, architecture source, lab or publication edits performed.\",\n \"id\": \"d-6f4134237e68860fb02e8684\",\n \"invalidated_checkpoint\": \"campaign/runtime/checkpoints/research-live-record-bridge-d08b4bbf364f3305ee2fef98.json\",\n \"invalidated_evidence\": [],\n \"model\": \"openai/gpt-6-astra\",\n \"probe\": \"Cheapest discriminator: complete-window stack def/use inspection of 0x885380..0x88544a and 0x884cb0..0x884d8f, already performed on checkpoint-hashed raw text; no EBP-0x20 write before append. Next authorized analyst quantum must freshly hash binary/tool and rerun those manifest commands plus nested empty-copy/cleanup, correct the dependency interpretation using d-b51f3f76803e852ed250846a wording, then obtain independent integrated reproduction. No VM needed for this correction. Any later transient sentinel experiment requires separate explicit lease/authority, positive execution and instrument-neutral controls; existing live runtime-matrix and negative-control requirements are not waived.\",\n \"role\": \"resolver\",\n \"schema\": \"sots-decision/1\",\n \"surprise\": \"s-5a78d3a0a10c1f8545df8eb1\",\n \"timestamp\": \"2026-09-10T04:19:28.345551+00:00\"\n}\n","metadata":{"output":"{\n \"actor\": \"live-record surprise resolver\",\n \"contract\": \"research-live-record-bridge\",\n \"explanation\": \"Resolution session run-f63d1e050a7ee3fac7b44885. Governing claim-by-claim analysis, exact generated-row wording, provenance limitations and dependency invalidation are in campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json, not an alternate board history. Direct review of hash-checked complete get/create and append captures confirms no temporary EvTurn initialization before append; cleanup occurs before final requested-turn store. OVERTURNED: zero temporary turn and necessarily zero copied scalar in captured miss path. SURVIVES: captured normal-return ABI, last-match hit scan, vptr/empty nested header, scalar-copy plus nested deep-copy structure, temporary nested cleanup and final returned bucket with requested turn. QUALIFIED: incoming stack word is unspecified by this routine, not measured randomness/nonzero; final equivalence requires valid containers and successful helpers. Transient observers, padding, full-capacity/failure/unwind and live allocation remain untested. Unrelated observed-name, event equality and string ownership hypotheses are not falsified or newly certified. Manifest records positive static tool execution, not game execution; no instrument ran in game, no stale-build conclusion. Current binary/tool rehash and executable reproduction were not permitted in resolver shell; historical binding is not fresh acceptance.\\nAffected dependency research-completion-abi is now needs-revision, both evidence records withdrawn and verdict invalidated by d-b51f3f76803e852ed250846a. Bridge had no evidence to invalidate; prior checkpoint is superseded, and zero-default-derived readiness/architecture assertions cannot be used. Bridge acceptance criteria ALL remain mandatory. This resolution permits only lead-assigned static correction/reproduction planning; it does not authorize bridge implementation, runtime fixtures or replacement wiring. Do not reproduce an uninitialized C++ read or silently declare zero initialization byte-exact: explicitly separate semantic normal-return fields from transient/padding behavior and retain complete write accounting. Lead must repair/reaccept ABI first; then assigned architect may encode the decision through documented generated channels and fill all missing readiness inputs. research-replacement remains proposed and unable to advance on withdrawn ABI acceptance; its other W1 claims are unchanged, not accepted. Integrator links actual decisions and regenerates projections only after integration. No implementation, architecture source, lab or publication edits performed.\",\n \"id\": \"d-6f4134237e68860fb02e8684\",\n \"invalidated_checkpoint\": \"campaign/runtime/checkpoints/research-live-record-bridge-d08b4bbf364f3305ee2fef98.json\",\n \"invalidated_evidence\": [],\n \"model\": \"openai/gpt-6-astra\",\n \"probe\": \"Cheapest discriminator: complete-window stack def/use inspection of 0x885380..0x88544a and 0x884cb0..0x884d8f, already performed on checkpoint-hashed raw text; no EBP-0x20 write before append. Next authorized analyst quantum must freshly hash binary/tool and rerun those manifest commands plus nested empty-copy/cleanup, correct the dependency interpretation using d-b51f3f76803e852ed250846a wording, then obtain independent integrated reproduction. No VM needed for this correction. Any later transient sentinel experiment requires separate explicit lease/authority, positive execution and instrument-neutral controls; existing live runtime-matrix and negative-control requirements are not waived.\",\n \"role\": \"resolver\",\n \"schema\": \"sots-decision/1\",\n \"surprise\": \"s-5a78d3a0a10c1f8545df8eb1\",\n \"timestamp\": \"2026-09-10T04:19:28.345551+00:00\"\n}\n","exit":0,"truncated":false},"title":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re resolve s-5a78d3a0a10c1f8545df8eb1 --actor 'live-record surprise resolver' --role resolver --model openai/gpt-6-astra --explanation 'Resolution session run-f63d1e050a7ee3fac7b44885. Governing claim-by-claim analysis, exact generated-row wording, provenance limitations and dependency invalidation are in campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json, not an alternate board history. Direct review of hash-checked complete get/create and append captures confirms no temporary EvTurn initialization before append; cleanup occurs before final requested-turn store. OVERTURNED: zero temporary turn and necessarily zero copied scalar in captured miss path. SURVIVES: captured normal-return ABI, last-match hit scan, vptr/empty nested header, scalar-copy plus nested deep-copy structure, temporary nested cleanup and final returned bucket with requested turn. QUALIFIED: incoming stack word is unspecified by this routine, not measured randomness/nonzero; final equivalence requires valid containers and successful helpers. Transient observers, padding, full-capacity/failure/unwind and live allocation remain untested. Unrelated observed-name, event equality and string ownership hypotheses are not falsified or newly certified. Manifest records positive static tool execution, not game execution; no instrument ran in game, no stale-build conclusion. Current binary/tool rehash and executable reproduction were not permitted in resolver shell; historical binding is not fresh acceptance.\nAffected dependency research-completion-abi is now needs-revision, both evidence records withdrawn and verdict invalidated by d-b51f3f76803e852ed250846a. Bridge had no evidence to invalidate; prior checkpoint is superseded, and zero-default-derived readiness/architecture assertions cannot be used. Bridge acceptance criteria ALL remain mandatory. This resolution permits only lead-assigned static correction/reproduction planning; it does not authorize bridge implementation, runtime fixtures or replacement wiring. Do not reproduce an uninitialized C++ read or silently declare zero initialization byte-exact: explicitly separate semantic normal-return fields from transient/padding behavior and retain complete write accounting. Lead must repair/reaccept ABI first; then assigned architect may encode the decision through documented generated channels and fill all missing readiness inputs. research-replacement remains proposed and unable to advance on withdrawn ABI acceptance; its other W1 claims are unchanged, not accepted. Integrator links actual decisions and regenerates projections only after integration. No implementation, architecture source, lab or publication edits performed.' --probe 'Cheapest discriminator: complete-window stack def/use inspection of 0x885380..0x88544a and 0x884cb0..0x884d8f, already performed on checkpoint-hashed raw text; no EBP-0x20 write before append. Next authorized analyst quantum must freshly hash binary/tool and rerun those manifest commands plus nested empty-copy/cleanup, correct the dependency interpretation using d-b51f3f76803e852ed250846a wording, then obtain independent integrated reproduction. No VM needed for this correction. Any later transient sentinel experiment requires separate explicit lease/authority, positive execution and instrument-neutral controls; existing live runtime-matrix and negative-control requirements are not waived.'","time":{"start":1789013968300,"end":1789013968383}},"metadata":{"openai":{"itemId":"fc_01b1ae65215a58f7016aa22fb9c06087d1b9694da71d8918d4"}},"id":"prt_0898a6dd200135OaeFPThq42C1","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_0898a632600114Ps7uxrxLrLBc"}} +{"type":"step_finish","timestamp":1789013968451,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898ac640001f49kpw1xc0t7aV","reason":"tool-calls","snapshot":"e7b61e9747a94500a92264ab3ea33643a7b954f0","messageID":"msg_0898a632600114Ps7uxrxLrLBc","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":54752,"input":3988,"output":708,"reasoning":8,"cache":{"write":0,"read":50048}},"cost":0}} +{"type":"step_start","timestamp":1789013973300,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898ad92c001dqzmTaMFlVEd2Z","messageID":"msg_0898ac66f001kJYe9VjrXT4e1L","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"ec08c8518089f4152675ac0d2ada899a037c9fa1","type":"step-start"}} +{"type":"text","timestamp":1789013977230,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898adb70001Wnuqo5ZVgH5nBr","messageID":"msg_0898ac66f001kJYe9VjrXT4e1L","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"text","text":"The static contradiction is resolved: the routine leaves the temporary turn word uninitialized, append copies it, and the routine writes the requested turn into the stored bucket after temporary cleanup. This does **not** establish runtime randomness or failure-path safety.\n\nCampaign controls have withdrawn the affected ABI acceptance and invalidated its verdict. Both ABI and bridge contracts are now `needs-revision`; implementation remains gated. The durable decisions prescribe the corrected wording and a fresh, read-only reproduction before independent reacceptance.\n\n","time":{"start":1789013973872,"end":1789013977227},"metadata":{"openai":{"itemId":"msg_0eb84e16f351ed31016aa22fd5cd3887d18e9dd585d50e80e1","phase":"commentary"}}}} +{"type":"tool_use","timestamp":1789013996212,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"bash","callID":"call_Hq9S9im3tvWuaqakz1NbMx8k","state":{"status":"completed","input":{"command":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re checkpoint research-completion-abi --actor 'live-record surprise resolver' --role resolver --model openai/gpt-6-astra --session run-f63d1e050a7ee3fac7b44885 --summary 'RESOLVER HANDOFF. Observation: recovered-static.md zero-temporary-turn assertion conflicts with hash-checked raw get/create and append captures. Decision d-b51f3f76803e852ed250846a supplies exact claim domains, corrected generated wording, cheapest probe and invalidation; dependency status needs-revision, two evidence records withdrawn and verifier verdict invalidated. No source changes. Assigned engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23/common /home/alex/sots-engine/.git and RE HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7/common /home/alex/sots-re/.git checked, both already dirty. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 not freshly rehashed. Capture binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and tool 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd are historical bindings, not current executable reproduction. Checkpoint artifact hashes matched manifest; no game execution or live safety test. Shell scope prevents binary/tool rerun; fresh analyst reproduction remains required. No VM/build/Ghidra access or mutation, no lease acquired, no delegation, commits or staging. Lead must assign repair through normal campaign controls; bridge and replacement readiness cannot use revoked acceptance. Integrator publication pending corrected integration; do not edit board history.' --artifact campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json --artifact campaign/runtime/decisions/d-6f4134237e68860fb02e8684.json --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json --next-action 'Lead assigns a fresh bounded research-completion-abi analyst repair quantum to rehash binary/tool, reproduce the four named static windows and correct the interpretation per d-b51f3f76803e852ed250846a before independent integrated reacceptance.'"},"output":"{\n \"actor\": \"live-record surprise resolver\",\n \"artifacts\": [\n {\n \"path\": \"campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json\",\n \"sha256\": \"d01550dd8874160d05378f6183d780c444a5285a4ebc5d3c6049fbda8e342957\"\n },\n {\n \"path\": \"campaign/runtime/decisions/d-6f4134237e68860fb02e8684.json\",\n \"sha256\": \"7d4cac7b55de6bec11f7d32261a3ce9da946e937f2924032423b65a97799fb48\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\",\n \"sha256\": \"ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b\"\n }\n ],\n \"basis\": \"aaddeb76f74bbd1a43671f882770ec84a7d690b4060d060ef1a68f918e8edbb0\",\n \"contract\": \"research-completion-abi\",\n \"id\": \"34e545ce9e774117dec97cf0\",\n \"model\": \"openai/gpt-6-astra\",\n \"next_action\": \"Lead assigns a fresh bounded research-completion-abi analyst repair quantum to rehash binary/tool, reproduce the four named static windows and correct the interpretation per d-b51f3f76803e852ed250846a before independent integrated reacceptance.\",\n \"role\": \"resolver\",\n \"schema\": \"sots-checkpoint/1\",\n \"session\": \"run-f63d1e050a7ee3fac7b44885\",\n \"summary\": \"RESOLVER HANDOFF. Observation: recovered-static.md zero-temporary-turn assertion conflicts with hash-checked raw get/create and append captures. Decision d-b51f3f76803e852ed250846a supplies exact claim domains, corrected generated wording, cheapest probe and invalidation; dependency status needs-revision, two evidence records withdrawn and verifier verdict invalidated. No source changes. Assigned engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23/common /home/alex/sots-engine/.git and RE HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7/common /home/alex/sots-re/.git checked, both already dirty. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 not freshly rehashed. Capture binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and tool 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd are historical bindings, not current executable reproduction. Checkpoint artifact hashes matched manifest; no game execution or live safety test. Shell scope prevents binary/tool rerun; fresh analyst reproduction remains required. No VM/build/Ghidra access or mutation, no lease acquired, no delegation, commits or staging. Lead must assign repair through normal campaign controls; bridge and replacement readiness cannot use revoked acceptance. Integrator publication pending corrected integration; do not edit board history.\",\n \"timestamp\": \"2026-09-10T04:19:56.187035+00:00\"\n}\n","metadata":{"output":"{\n \"actor\": \"live-record surprise resolver\",\n \"artifacts\": [\n {\n \"path\": \"campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json\",\n \"sha256\": \"d01550dd8874160d05378f6183d780c444a5285a4ebc5d3c6049fbda8e342957\"\n },\n {\n \"path\": \"campaign/runtime/decisions/d-6f4134237e68860fb02e8684.json\",\n \"sha256\": \"7d4cac7b55de6bec11f7d32261a3ce9da946e937f2924032423b65a97799fb48\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\",\n \"sha256\": \"ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b\"\n }\n ],\n \"basis\": \"aaddeb76f74bbd1a43671f882770ec84a7d690b4060d060ef1a68f918e8edbb0\",\n \"contract\": \"research-completion-abi\",\n \"id\": \"34e545ce9e774117dec97cf0\",\n \"model\": \"openai/gpt-6-astra\",\n \"next_action\": \"Lead assigns a fresh bounded research-completion-abi analyst repair quantum to rehash binary/tool, reproduce the four named static windows and correct the interpretation per d-b51f3f76803e852ed250846a before independent integrated reacceptance.\",\n \"role\": \"resolver\",\n \"schema\": \"sots-checkpoint/1\",\n \"session\": \"run-f63d1e050a7ee3fac7b44885\",\n \"summary\": \"RESOLVER HANDOFF. Observation: recovered-static.md zero-temporary-turn assertion conflicts with hash-checked raw get/create and append captures. Decision d-b51f3f76803e852ed250846a supplies exact claim domains, corrected generated wording, cheapest probe and invalidation; dependency status needs-revision, two evidence records withdrawn and verifier verdict invalidated. No source changes. Assigned engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23/common /home/alex/sots-engine/.git and RE HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7/common /home/alex/sots-re/.git checked, both already dirty. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 not freshly rehashed. Capture binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and tool 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd are historical bindings, not current executable reproduction. Checkpoint artifact hashes matched manifest; no game execution or live safety test. Shell scope prevents binary/tool rerun; fresh analyst reproduction remains required. No VM/build/Ghidra access or mutation, no lease acquired, no delegation, commits or staging. Lead must assign repair through normal campaign controls; bridge and replacement readiness cannot use revoked acceptance. Integrator publication pending corrected integration; do not edit board history.\",\n \"timestamp\": \"2026-09-10T04:19:56.187035+00:00\"\n}\n","exit":0,"truncated":false},"title":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re checkpoint research-completion-abi --actor 'live-record surprise resolver' --role resolver --model openai/gpt-6-astra --session run-f63d1e050a7ee3fac7b44885 --summary 'RESOLVER HANDOFF. Observation: recovered-static.md zero-temporary-turn assertion conflicts with hash-checked raw get/create and append captures. Decision d-b51f3f76803e852ed250846a supplies exact claim domains, corrected generated wording, cheapest probe and invalidation; dependency status needs-revision, two evidence records withdrawn and verifier verdict invalidated. No source changes. Assigned engine HEAD 7741d42fc5e4e761e6449bdaf0e4a61d00036a23/common /home/alex/sots-engine/.git and RE HEAD 3bfde5a70d874a723e797a695bbd847fd82c0aa7/common /home/alex/sots-re/.git checked, both already dirty. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 not freshly rehashed. Capture binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and tool 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd are historical bindings, not current executable reproduction. Checkpoint artifact hashes matched manifest; no game execution or live safety test. Shell scope prevents binary/tool rerun; fresh analyst reproduction remains required. No VM/build/Ghidra access or mutation, no lease acquired, no delegation, commits or staging. Lead must assign repair through normal campaign controls; bridge and replacement readiness cannot use revoked acceptance. Integrator publication pending corrected integration; do not edit board history.' --artifact campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json --artifact campaign/runtime/decisions/d-6f4134237e68860fb02e8684.json --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json --next-action 'Lead assigns a fresh bounded research-completion-abi analyst repair quantum to rehash binary/tool, reproduce the four named static windows and correct the interpretation per d-b51f3f76803e852ed250846a before independent integrated reacceptance.'","time":{"start":1789013996143,"end":1789013996210}},"metadata":{"openai":{"itemId":"fc_0eb84e16f351ed31016aa22fd9322487d1b94f2ca23e7fa256"}},"id":"prt_0898ae88d001lJxMNErWfn2Eim","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_0898ac66f001kJYe9VjrXT4e1L"}} +{"type":"step_finish","timestamp":1789013996292,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898b33010014IjZNgzYV3Ewke","reason":"tool-calls","snapshot":"438a11e53b2a7ea797a5d9a87a8f6aff711e7255","messageID":"msg_0898ac66f001kJYe9VjrXT4e1L","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":56319,"input":1674,"output":742,"reasoning":15,"cache":{"write":0,"read":53888}},"cost":0}} +{"type":"step_start","timestamp":1789013998740,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898b3c900014ubrTs84lY9xJZ","messageID":"msg_0898b3335001pU75fJOJtT4bAT","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"125951f512b632892cb47aea31c81ec8d62890d9","type":"step-start"}} +{"type":"tool_use","timestamp":1789013999941,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"bash","callID":"call_cMWOX65kLx3ZzNcTMfTYZtTu","state":{"status":"completed","input":{"command":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re validate"},"output":"[\n \"controls-bootstrap\",\n \"launcher-smoke\",\n \"research-completion-abi\",\n \"research-live-record-bridge\",\n \"research-replacement\"\n]\n","metadata":{"output":"[\n \"controls-bootstrap\",\n \"launcher-smoke\",\n \"research-completion-abi\",\n \"research-live-record-bridge\",\n \"research-replacement\"\n]\n","exit":0,"truncated":false},"title":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re validate","time":{"start":1789013999890,"end":1789013999940}},"metadata":{"openai":{"itemId":"fc_0626aa8deacb7b1b016aa22feeb39c87d184f5c0c122ed7062"}},"id":"prt_0898b3c93001bA3lrRFHvIyEJV","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_0898b3335001pU75fJOJtT4bAT"}} +{"type":"step_finish","timestamp":1789014000031,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898b419c001Eu4XzFLfIHeQrG","reason":"tool-calls","snapshot":"0354f4bd628bcf424a17fa5013a502d5c24bdf9e","messageID":"msg_0898b3335001pU75fJOJtT4bAT","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":57245,"input":1780,"output":41,"reasoning":0,"cache":{"write":0,"read":55424}},"cost":0}} +{"type":"step_start","timestamp":1789014004319,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898b525b001xzgdR7BL2bzzSW","messageID":"msg_0898b41d3001N0XdTydg6PI9S2","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"7dbd84cba43ab4482ec2011db7970f2b521b816f","type":"step-start"}} +{"type":"tool_use","timestamp":1789014032605,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"type":"tool","tool":"bash","callID":"call_shIJ7w1vGQSfliNwkBw7xi5q","state":{"status":"completed","input":{"command":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re checkpoint research-live-record-bridge --actor 'live-record surprise resolver' --role resolver --model openai/gpt-6-astra --session run-f63d1e050a7ee3fac7b44885 --summary 'QUANTUM END, resolution only. OBSERVATIONS: inspected complete get/create, append, nested copy and destructor raw text; no EBP-0x20 write before append, scalar copied before final requested-turn store, temporary cleanup precedes that store. Initial checkpoint rehashed manifest and two decisive stdout artifacts to recorded identities. Captures report positive static execution only; no game/allocator experiment. Assigned paired HEAD/common directories verified engine 7741d42fc5e4e761e6449bdaf0e4a61d00036a23 /home/alex/sots-engine/.git; RE 3bfde5a70d874a723e797a695bbd847fd82c0aa7 /home/alex/sots-re/.git. Both trees pre-existing dirty, no source edits. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 not freshly recomputed. Historical binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841/tool 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd are manifest bindings, not fresh binary verification; shell denied source-binding/executable reproduction, no bypass. DECISIONS: d-b51f3f76803e852ed250846a and d-6f4134237e68860fb02e8684 overturn zero temporary EvTurn only in captured miss path, preserve scoped normal-return facts and qualify all transient/failure/live claims. Propagated dependency surprise s-c6786945b302de2a0b629960 and original bridge surprise both resolved through controls. ABI two evidence records withdrawn and verdict invalidated; ABI and bridge needs-revision, no acceptance. research-replacement remains proposed; readiness gated by reaccepted ABI, accepted live bridge and all original criteria. Corrected generated-row wording, invalidation scope and cheapest authorized analyst reproduction are in actual decisions; no board edits. TESTS: campaign validate passed after resolutions and dependency checkpoint. No live tests, unit tests or fresh objdump run claimed. BLOCKERS: fresh binary/tool/source identity, static repair, independent integrated reacceptance and all bridge readiness/runtime requirements remain. RESOURCES: VM144 local lease released; no guest access verification, no lease acquired, no VM/build/Ghidra mutation or cleanup required. No delegation, implementation/architecture edits, stage, commit or push. Lead/integrator must assign repair and later link decisions/regenerate projections after integration.' --artifact campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json --artifact campaign/runtime/decisions/d-6f4134237e68860fb02e8684.json --artifact campaign/runtime/checkpoints/research-completion-abi-34e545ce9e774117dec97cf0.json --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt --next-action 'Lead assigns one fresh bounded research-completion-abi analyst repair quantum to freshly hash binary/tool and reproduce get/create, append, nested empty-copy and cleanup windows, then correct interpretation exactly per d-b51f3f76803e852ed250846a for subsequent independent integrated reacceptance.'"},"output":"{\n \"actor\": \"live-record surprise resolver\",\n \"artifacts\": [\n {\n \"path\": \"campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json\",\n \"sha256\": \"d01550dd8874160d05378f6183d780c444a5285a4ebc5d3c6049fbda8e342957\"\n },\n {\n \"path\": \"campaign/runtime/decisions/d-6f4134237e68860fb02e8684.json\",\n \"sha256\": \"7d4cac7b55de6bec11f7d32261a3ce9da946e937f2924032423b65a97799fb48\"\n },\n {\n \"path\": \"campaign/runtime/checkpoints/research-completion-abi-34e545ce9e774117dec97cf0.json\",\n \"sha256\": \"f209b48701f3ada32863022115038297740557310ecca2c6a7ddb0e73a4eeec6\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\",\n \"sha256\": \"ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\",\n \"sha256\": \"f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\",\n \"sha256\": \"57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15\"\n }\n ],\n \"basis\": \"6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"646a5ada115eaf0a3924db19\",\n \"model\": \"openai/gpt-6-astra\",\n \"next_action\": \"Lead assigns one fresh bounded research-completion-abi analyst repair quantum to freshly hash binary/tool and reproduce get/create, append, nested empty-copy and cleanup windows, then correct interpretation exactly per d-b51f3f76803e852ed250846a for subsequent independent integrated reacceptance.\",\n \"role\": \"resolver\",\n \"schema\": \"sots-checkpoint/1\",\n \"session\": \"run-f63d1e050a7ee3fac7b44885\",\n \"summary\": \"QUANTUM END, resolution only. OBSERVATIONS: inspected complete get/create, append, nested copy and destructor raw text; no EBP-0x20 write before append, scalar copied before final requested-turn store, temporary cleanup precedes that store. Initial checkpoint rehashed manifest and two decisive stdout artifacts to recorded identities. Captures report positive static execution only; no game/allocator experiment. Assigned paired HEAD/common directories verified engine 7741d42fc5e4e761e6449bdaf0e4a61d00036a23 /home/alex/sots-engine/.git; RE 3bfde5a70d874a723e797a695bbd847fd82c0aa7 /home/alex/sots-re/.git. Both trees pre-existing dirty, no source edits. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 not freshly recomputed. Historical binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841/tool 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd are manifest bindings, not fresh binary verification; shell denied source-binding/executable reproduction, no bypass. DECISIONS: d-b51f3f76803e852ed250846a and d-6f4134237e68860fb02e8684 overturn zero temporary EvTurn only in captured miss path, preserve scoped normal-return facts and qualify all transient/failure/live claims. Propagated dependency surprise s-c6786945b302de2a0b629960 and original bridge surprise both resolved through controls. ABI two evidence records withdrawn and verdict invalidated; ABI and bridge needs-revision, no acceptance. research-replacement remains proposed; readiness gated by reaccepted ABI, accepted live bridge and all original criteria. Corrected generated-row wording, invalidation scope and cheapest authorized analyst reproduction are in actual decisions; no board edits. TESTS: campaign validate passed after resolutions and dependency checkpoint. No live tests, unit tests or fresh objdump run claimed. BLOCKERS: fresh binary/tool/source identity, static repair, independent integrated reacceptance and all bridge readiness/runtime requirements remain. RESOURCES: VM144 local lease released; no guest access verification, no lease acquired, no VM/build/Ghidra mutation or cleanup required. No delegation, implementation/architecture edits, stage, commit or push. Lead/integrator must assign repair and later link decisions/regenerate projections after integration.\",\n \"timestamp\": \"2026-09-10T04:20:32.577219+00:00\"\n}\n","metadata":{"output":"{\n \"actor\": \"live-record surprise resolver\",\n \"artifacts\": [\n {\n \"path\": \"campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json\",\n \"sha256\": \"d01550dd8874160d05378f6183d780c444a5285a4ebc5d3c6049fbda8e342957\"\n },\n {\n \"path\": \"campaign/runtime/decisions/d-6f4134237e68860fb02e8684.json\",\n \"sha256\": \"7d4cac7b55de6bec11f7d32261a3ce9da946e937f2924032423b65a97799fb48\"\n },\n {\n \"path\": \"campaign/runtime/checkpoints/research-completion-abi-34e545ce9e774117dec97cf0.json\",\n \"sha256\": \"f209b48701f3ada32863022115038297740557310ecca2c6a7ddb0e73a4eeec6\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json\",\n \"sha256\": \"ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt\",\n \"sha256\": \"f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3\"\n },\n {\n \"path\": \"verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt\",\n \"sha256\": \"57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15\"\n }\n ],\n \"basis\": \"6fbcc78291fc02d5e549106bbd3affe29c5f458d742017c91e8d5c9272165cd8\",\n \"contract\": \"research-live-record-bridge\",\n \"id\": \"646a5ada115eaf0a3924db19\",\n \"model\": \"openai/gpt-6-astra\",\n \"next_action\": \"Lead assigns one fresh bounded research-completion-abi analyst repair quantum to freshly hash binary/tool and reproduce get/create, append, nested empty-copy and cleanup windows, then correct interpretation exactly per d-b51f3f76803e852ed250846a for subsequent independent integrated reacceptance.\",\n \"role\": \"resolver\",\n \"schema\": \"sots-checkpoint/1\",\n \"session\": \"run-f63d1e050a7ee3fac7b44885\",\n \"summary\": \"QUANTUM END, resolution only. OBSERVATIONS: inspected complete get/create, append, nested copy and destructor raw text; no EBP-0x20 write before append, scalar copied before final requested-turn store, temporary cleanup precedes that store. Initial checkpoint rehashed manifest and two decisive stdout artifacts to recorded identities. Captures report positive static execution only; no game/allocator experiment. Assigned paired HEAD/common directories verified engine 7741d42fc5e4e761e6449bdaf0e4a61d00036a23 /home/alex/sots-engine/.git; RE 3bfde5a70d874a723e797a695bbd847fd82c0aa7 /home/alex/sots-re/.git. Both trees pre-existing dirty, no source edits. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 not freshly recomputed. Historical binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841/tool 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd are manifest bindings, not fresh binary verification; shell denied source-binding/executable reproduction, no bypass. DECISIONS: d-b51f3f76803e852ed250846a and d-6f4134237e68860fb02e8684 overturn zero temporary EvTurn only in captured miss path, preserve scoped normal-return facts and qualify all transient/failure/live claims. Propagated dependency surprise s-c6786945b302de2a0b629960 and original bridge surprise both resolved through controls. ABI two evidence records withdrawn and verdict invalidated; ABI and bridge needs-revision, no acceptance. research-replacement remains proposed; readiness gated by reaccepted ABI, accepted live bridge and all original criteria. Corrected generated-row wording, invalidation scope and cheapest authorized analyst reproduction are in actual decisions; no board edits. TESTS: campaign validate passed after resolutions and dependency checkpoint. No live tests, unit tests or fresh objdump run claimed. BLOCKERS: fresh binary/tool/source identity, static repair, independent integrated reacceptance and all bridge readiness/runtime requirements remain. RESOURCES: VM144 local lease released; no guest access verification, no lease acquired, no VM/build/Ghidra mutation or cleanup required. No delegation, implementation/architecture edits, stage, commit or push. Lead/integrator must assign repair and later link decisions/regenerate projections after integration.\",\n \"timestamp\": \"2026-09-10T04:20:32.577219+00:00\"\n}\n","exit":0,"truncated":false},"title":"python3 /home/alex/sots-re/tools/campaign.py --state-root /home/alex/sots-re checkpoint research-live-record-bridge --actor 'live-record surprise resolver' --role resolver --model openai/gpt-6-astra --session run-f63d1e050a7ee3fac7b44885 --summary 'QUANTUM END, resolution only. OBSERVATIONS: inspected complete get/create, append, nested copy and destructor raw text; no EBP-0x20 write before append, scalar copied before final requested-turn store, temporary cleanup precedes that store. Initial checkpoint rehashed manifest and two decisive stdout artifacts to recorded identities. Captures report positive static execution only; no game/allocator experiment. Assigned paired HEAD/common directories verified engine 7741d42fc5e4e761e6449bdaf0e4a61d00036a23 /home/alex/sots-engine/.git; RE 3bfde5a70d874a723e797a695bbd847fd82c0aa7 /home/alex/sots-re/.git. Both trees pre-existing dirty, no source edits. Historical source digests ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd and 6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8 not freshly recomputed. Historical binary 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841/tool 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd are manifest bindings, not fresh binary verification; shell denied source-binding/executable reproduction, no bypass. DECISIONS: d-b51f3f76803e852ed250846a and d-6f4134237e68860fb02e8684 overturn zero temporary EvTurn only in captured miss path, preserve scoped normal-return facts and qualify all transient/failure/live claims. Propagated dependency surprise s-c6786945b302de2a0b629960 and original bridge surprise both resolved through controls. ABI two evidence records withdrawn and verdict invalidated; ABI and bridge needs-revision, no acceptance. research-replacement remains proposed; readiness gated by reaccepted ABI, accepted live bridge and all original criteria. Corrected generated-row wording, invalidation scope and cheapest authorized analyst reproduction are in actual decisions; no board edits. TESTS: campaign validate passed after resolutions and dependency checkpoint. No live tests, unit tests or fresh objdump run claimed. BLOCKERS: fresh binary/tool/source identity, static repair, independent integrated reacceptance and all bridge readiness/runtime requirements remain. RESOURCES: VM144 local lease released; no guest access verification, no lease acquired, no VM/build/Ghidra mutation or cleanup required. No delegation, implementation/architecture edits, stage, commit or push. Lead/integrator must assign repair and later link decisions/regenerate projections after integration.' --artifact campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json --artifact campaign/runtime/decisions/d-6f4134237e68860fb02e8684.json --artifact campaign/runtime/checkpoints/research-completion-abi-34e545ce9e774117dec97cf0.json --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt --artifact verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt --next-action 'Lead assigns one fresh bounded research-completion-abi analyst repair quantum to freshly hash binary/tool and reproduce get/create, append, nested empty-copy and cleanup windows, then correct interpretation exactly per d-b51f3f76803e852ed250846a for subsequent independent integrated reacceptance.'","time":{"start":1789014032533,"end":1789014032602}},"metadata":{"openai":{"itemId":"fc_087aae9821f2efa7016aa22ff43d7087d18ec2da2b859f1987"}},"id":"prt_0898b525d0017L5P07d2vYmjzm","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","messageID":"msg_0898b41d3001N0XdTydg6PI9S2"}} +{"type":"step_finish","timestamp":1789014032650,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898bc1060017Y985TLxdN3rpD","reason":"tool-calls","snapshot":"7f59632b17b4af0a713e40e3f766ef4975c01a32","messageID":"msg_0898b41d3001N0XdTydg6PI9S2","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":58216,"input":203,"output":925,"reasoning":0,"cache":{"write":0,"read":57088}},"cost":0}} +{"type":"step_start","timestamp":1789014034952,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898bca010019UbT8uF6DpYpSJ","messageID":"msg_0898bc135001680QMeYosGsBlN","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","snapshot":"3319db187f7c319a00f814306d7d9e3162dddc2c","type":"step-start"}} +{"type":"text","timestamp":1789014044941,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898bca07001DB6uLXIt4wcbHf","messageID":"msg_0898bc135001680QMeYosGsBlN","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"text","text":"Bounded resolution-only quantum completed and checkpointed.\n\n### Finding\nHash-checked raw captures show that the miss path **does not initialize temporary `TurnEvents.EvTurn`** before append. Append copies that incoming stack word; after temporary nested-vector cleanup, get/create writes the requested turn into the stored bucket.\n\n- **Overturned:** temporary turn is necessarily zero.\n- **Survives:** captured normal-return ABI, last-match lookup, nested-copy/cleanup structure, and final requested-turn assignment.\n- **Qualified:** transient values, failure/unwind behavior, padding equivalence, and live allocator safety remain unmeasured.\n\n### Campaign disposition\n- Recorded [ABI decision](campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json) and [bridge decision](campaign/runtime/decisions/d-6f4134237e68860fb02e8684.json).\n- Withdrew both affected ABI evidence records and invalidated its acceptance verdict.\n- ABI and bridge are **`needs-revision`**; implementation remains gated.\n- `campaign validate` passed.\n\nCurrent binary/tool rehash and executable reproduction were unavailable under resolver permissions. No fresh runtime measurement is claimed. No source edits, lab mutation, delegation, staging, or commits occurred.\n\n**Next action:** lead assigns one bounded ABI analyst repair quantum to rehash binary/tool, reproduce the four specified static windows, and correct the interpretation before independent integrated reacceptance.\n\n[Mandatory final checkpoint](campaign/runtime/checkpoints/research-live-record-bridge-646a5ada115eaf0a3924db19.json)","time":{"start":1789014034951,"end":1789014044939},"metadata":{"openai":{"itemId":"msg_0bd84d52f7f55826016aa23012e97487d19a0c7450554c8683","phase":"final_answer"}}}} +{"type":"step_finish","timestamp":1789014045095,"sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","part":{"id":"prt_0898bf1a40012gwZocrpUc7YwA","reason":"stop","snapshot":"eb392e6ff92bf7dec29d14c4fb77c955d5bc38c8","messageID":"msg_0898bc135001680QMeYosGsBlN","sessionID":"ses_f7677c13bffeSc7NxK5XDVgyJc","type":"step-finish","tokens":{"total":59873,"input":2454,"output":331,"reasoning":0,"cache":{"write":0,"read":57088}},"cost":0}} diff --git a/campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.stderr.log b/campaign/runtime/runs/run-f63d1e050a7ee3fac7b44885.stderr.log new file mode 100644 index 0000000..e69de29 diff --git a/campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json b/campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json new file mode 100644 index 0000000..9637e6e --- /dev/null +++ b/campaign/runtime/surprises/s-5a78d3a0a10c1f8545df8eb1.json @@ -0,0 +1,13 @@ +{ + "actor": "live-record bridge architect", + "contract": "research-live-record-bridge", + "decision": "d-6f4134237e68860fb02e8684", + "id": "s-5a78d3a0a10c1f8545df8eb1", + "model": "openai/gpt-5.6-sol", + "probe": "Astra must inspect the complete 0x00885380..0x0088544a entry window and 0x00884cb0..0x00884d8f append window from verify/results/research-live-record-bridge/run-472955e277202c411388c66b, enumerate every write to [EBP-0x20] before the append call, and decide whether the transient EvTurn is indeterminate and whether final post-publication semantics remain usable. Revise/invalidate the accepted dependency interpretation and prescribe the exact generated-row wording before TurnEvents planning continues.", + "role": "architecture-review", + "schema": "sots-surprise/1", + "status": "resolved", + "summary": "Session run-472955e277202c411388c66b fresh pinned-binary capture contradicts the accepted dependency interpretation that EventStorage get/create initializes a miss-path temporary TurnEvents EvTurn to zero before append. In 0x00885380, local TurnEvents begins at [EBP-0x24]: 0x008853fc writes vptr, and 0x00885403/06/09 zero only nested-vector pointers at +0x08/+0x0c/+0x10. No instruction writes temporary EvTurn at [EBP-0x20] before 0x00885413 calls append. Append 0x00884d62 copies source+0x04 into destination+0x04, so the newly appended element transiently receives the uninitialized stack word; 0x0088542d overwrites the stored element EvTurn with the requested turn after temporary nested-vector destruction. SURVIVES: exact get/create ABI, full last-match scan, final returned bucket pointer, final requested-turn publication, deep nested-vector copy, and temporary nested-vector cleanup. QUALIFIED: miss-path append lifetime and unwind remain static-only. OVERTURNED: research-completion-abi/recovered-static.md statement that the temporary starts with turn zero and append deep-copies zero. No live behavior, VM, Ghidra or engine code ran. Pause affected TurnEvents architecture encoding and readiness.", + "timestamp": "2026-09-10T04:14:21.422536+00:00" +} diff --git a/campaign/runtime/surprises/s-c6786945b302de2a0b629960.json b/campaign/runtime/surprises/s-c6786945b302de2a0b629960.json new file mode 100644 index 0000000..a5227f4 --- /dev/null +++ b/campaign/runtime/surprises/s-c6786945b302de2a0b629960.json @@ -0,0 +1,13 @@ +{ + "actor": "live-record surprise resolver", + "contract": "research-completion-abi", + "decision": "d-b51f3f76803e852ed250846a", + "id": "s-c6786945b302de2a0b629960", + "model": "openai/gpt-6-astra", + "probe": "Enumerate all stack writes from 0x885380 through 0x885413 and map append source+4 and final last-0x14 store; freshly rehash binary/tool and reproduce these complete windows under an authorized read-only analyst session before corrected evidence acceptance.", + "role": "resolver", + "schema": "sots-surprise/1", + "status": "resolved", + "summary": "Propagated affected acceptance from bridge surprise s-5a78d3a0a10c1f8545df8eb1, resolver session run-f63d1e050a7ee3fac7b44885. recovered-static.md lines 68-69 asserts temporary EvTurn zero and copy of zero. Hash-bound raw get/create and append captures run-472955e277202c411388c66b contradict that assertion: no write to EBP-0x20 before call; source+4 copied at 0x884d62/6c; stored requested turn written only at 0x88542d after temporary nested cleanup. This is static interpretation falsification, not observed runtime nondeterminism. Both integrated evidence records and independent verdict must lose current acceptance pending corrected source-bound reproduction; raw captures and archived saves are retained as historical measurements.", + "timestamp": "2026-09-10T04:18:25.950030+00:00" +} diff --git a/campaign/runtime/verdicts/research-completion-abi.json b/campaign/runtime/verdicts/research-completion-abi.json index 534f757..fa09954 100644 --- a/campaign/runtime/verdicts/research-completion-abi.json +++ b/campaign/runtime/verdicts/research-completion-abi.json @@ -2,6 +2,7 @@ "actor": "research-abi-independent", "basis": "aaddeb76f74bbd1a43671f882770ec84a7d690b4060d060ef1a68f918e8edbb0", "contract": "research-completion-abi", + "decision": "d-b51f3f76803e852ed250846a", "evidence_digest": "e5073be0f1187ee65c203eb9ad20adc64d18ff2d3314d554f58bd8487dafa931", "explanation": "Scoped integrated PASS over the current two-record integrated evidence array. Fresh handoff reproduction executed 22 nonempty static windows plus strict archived save parse/checksum: 24 positive subprocesses, empty stderr, no skips; manifest matches the integrated artifact except session and state is byte-identical. Seven narrow/wide boundaries reproduce complete ret 4/ret 8 bytes. Held-out direct-PE ablation confirmed each exact return and rejected all minus-one/plus-one shifted starts; static inspection exposed distinct 0x2c/0x74 strides, deep-copy calls, three guarded long-string deletes, description inequality and three unordered-or-unequal float branches. Actual state inspection found EvNxID 4, turn-3 count 2, event ID 3 fields/defaults, exact 609080-byte rebuild, and a 2503-byte RNG leaf with digest 0978fdf34ff7962f76c2de810dc93e0a. Integrated source/input/binary/outcome hashes remain bound and campaign tests/validation pass. Scope is independent static reproduction plus one archived state only: no live allocator safety, original differential, replacement or replay acceptance; runtime branch residuals remain. Historical failed provenance/description predictions remain failures resolved by Astra.", "model": "openai/gpt-5.6-sol", @@ -10,5 +11,5 @@ "session": "run-d94d4516b9d898793318805e", "source_bindings_digest": "bea3fe491275d544850c432ddcae2473a8fb226b5c97ec8151d3b75f7add7f73", "timestamp": "2026-09-10T01:39:48.486681+00:00", - "verdict": "pass" + "verdict": "invalidated" } diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py new file mode 100644 index 0000000..e8059bc --- /dev/null +++ b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/capture.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python3 +"""Capture the TurnEvents get/create bridge boundary from the pinned executable.""" + +import hashlib +import json +import pathlib +import subprocess + + +ROOT = pathlib.Path("/home/alex/sots-re") +OUT = ROOT / "verify/results/research-live-record-bridge/run-472955e277202c411388c66b" +EXE = ROOT / "dumps/sots.exe" +OBJDUMP = pathlib.Path("/usr/bin/objdump") +SESSION = "run-472955e277202c411388c66b" + +WINDOWS = [ + ("turn-get-create", "D", 0x00885380, 0x0088544A), + ("turn-append", "D", 0x00884CB0, 0x00884D8F), + ("turn-grow", "D", 0x008841A0, 0x00884440), + ("nested-copy", "D", 0x00779850, 0x00779A20), + ("nested-dtor", "D", 0x00629580, 0x006295CA), + ("turn-dtor", "D", 0x0062E120, 0x0062E190), + ("turn-alloc", "D", 0x006E8F50, 0x006E8FB0), + ("turn-range-copy", "D", 0x0077FED0, 0x00780040), + ("turn-vtable", "s", 0x00A0F070, 0x00A0F0A0), +] + + +def sha256(data: bytes) -> str: + return hashlib.sha256(data).hexdigest() + + +records = [] +for name, mode, start, stop in WINDOWS: + argv = [str(OBJDUMP), f"-{mode}"] + if mode == "D": + argv.append("-Mintel") + argv += [ + f"--start-address=0x{start:08x}", + f"--stop-address=0x{stop:08x}", + str(EXE), + ] + proc = subprocess.run( + argv, cwd=ROOT, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False + ) + (OUT / f"{name}.stdout.txt").write_bytes(proc.stdout) + (OUT / f"{name}.stderr.txt").write_bytes(proc.stderr) + records.append( + { + "name": name, + "argv": argv, + "start": f"0x{start:08x}", + "stop": f"0x{stop:08x}", + "returncode": proc.returncode, + "stdout_bytes": len(proc.stdout), + "stdout_sha256": sha256(proc.stdout), + "stderr_bytes": len(proc.stderr), + "stderr_sha256": sha256(proc.stderr), + "instruction_lines": sum( + 1 + for line in proc.stdout.splitlines() + if line.lstrip()[:1].isdigit() and b":" in line + ), + } + ) + +manifest = { + "schema": "sots-live-record-static-capture/1", + "session": SESSION, + "scope": "Read-only TurnEvents get/create and directly required lifetime helpers; static planning evidence only.", + "cwd": str(ROOT), + "source_identity": { + "engine": { + "path": "/tmp/opencode/sots-final-research-engine", + "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", + "sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd", + }, + "re": { + "path": "/tmp/opencode/sots-final-research-re", + "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", + "sha256": "6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8", + }, + }, + "input": {"path": str(EXE), "sha256": sha256(EXE.read_bytes())}, + "tool": { + "path": str(OBJDUMP), + "version": "GNU Binutils 2.38", + "sha256": sha256(OBJDUMP.read_bytes()), + }, + "windows": records, +} +(OUT / "manifest.json").write_text( + json.dumps(manifest, indent=2) + "\n", encoding="utf-8" +) + +if any( + record["returncode"] != 0 + or record["stdout_bytes"] == 0 + or record["stderr_bytes"] != 0 + for record in records +): + raise SystemExit(1) diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json new file mode 100644 index 0000000..e823d12 --- /dev/null +++ b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/manifest.json @@ -0,0 +1,199 @@ +{ + "schema": "sots-live-record-static-capture/1", + "session": "run-472955e277202c411388c66b", + "scope": "Read-only TurnEvents get/create and directly required lifetime helpers; static planning evidence only.", + "cwd": "/home/alex/sots-re", + "source_identity": { + "engine": { + "path": "/tmp/opencode/sots-final-research-engine", + "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", + "sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd" + }, + "re": { + "path": "/tmp/opencode/sots-final-research-re", + "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", + "sha256": "6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8" + } + }, + "input": { + "path": "/home/alex/sots-re/dumps/sots.exe", + "sha256": "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841" + }, + "tool": { + "path": "/usr/bin/objdump", + "version": "GNU Binutils 2.38", + "sha256": "1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd" + }, + "windows": [ + { + "name": "turn-get-create", + "argv": [ + "/usr/bin/objdump", + "-D", + "-Mintel", + "--start-address=0x00885380", + "--stop-address=0x0088544a", + "/home/alex/sots-re/dumps/sots.exe" + ], + "start": "0x00885380", + "stop": "0x0088544a", + "returncode": 0, + "stdout_bytes": 3974, + "stdout_sha256": "f6e72ba9b08fdf48d70f39379b2fb30a5adbe796072485f70c5795c10ab45ca3", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "instruction_lines": 77 + }, + { + "name": "turn-append", + "argv": [ + "/usr/bin/objdump", + "-D", + "-Mintel", + "--start-address=0x00884cb0", + "--stop-address=0x00884d8f", + "/home/alex/sots-re/dumps/sots.exe" + ], + "start": "0x00884cb0", + "stop": "0x00884d8f", + "returncode": 0, + "stdout_bytes": 4179, + "stdout_sha256": "57d6655feed0fc137bb2b7eee4bfcb09536b5a715603c917ee142770f1d52a15", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "instruction_lines": 79 + }, + { + "name": "turn-grow", + "argv": [ + "/usr/bin/objdump", + "-D", + "-Mintel", + "--start-address=0x008841a0", + "--stop-address=0x00884440", + "/home/alex/sots-re/dumps/sots.exe" + ], + "start": "0x008841a0", + "stop": "0x00884440", + "returncode": 0, + "stdout_bytes": 12599, + "stdout_sha256": "eb887fbef7b4686530d2fc1c0caf2c2ee78c761aa3706cebcf3c146a22480b2e", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "instruction_lines": 245 + }, + { + "name": "nested-copy", + "argv": [ + "/usr/bin/objdump", + "-D", + "-Mintel", + "--start-address=0x00779850", + "--stop-address=0x00779a20", + "/home/alex/sots-re/dumps/sots.exe" + ], + "start": "0x00779850", + "stop": "0x00779a20", + "returncode": 0, + "stdout_bytes": 8469, + "stdout_sha256": "e3988aa615066dce65ec16de0d61051ffc5deafe8c8eef4aeb0bbfbe931204a1", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "instruction_lines": 169 + }, + { + "name": "nested-dtor", + "argv": [ + "/usr/bin/objdump", + "-D", + "-Mintel", + "--start-address=0x00629580", + "--stop-address=0x006295ca", + "/home/alex/sots-re/dumps/sots.exe" + ], + "start": "0x00629580", + "stop": "0x006295ca", + "returncode": 0, + "stdout_bytes": 1727, + "stdout_sha256": "3c38887e60d009ab904772b13be93ac1eedd9bee85024e37110160a625db3a83", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "instruction_lines": 33 + }, + { + "name": "turn-dtor", + "argv": [ + "/usr/bin/objdump", + "-D", + "-Mintel", + "--start-address=0x0062e120", + "--stop-address=0x0062e190", + "/home/alex/sots-re/dumps/sots.exe" + ], + "start": "0x0062e120", + "stop": "0x0062e190", + "returncode": 0, + "stdout_bytes": 2312, + "stdout_sha256": "67777b4a5f658d4629a24770929979494739b6b3bcb0075fb8af17c782d080be", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "instruction_lines": 48 + }, + { + "name": "turn-alloc", + "argv": [ + "/usr/bin/objdump", + "-D", + "-Mintel", + "--start-address=0x006e8f50", + "--stop-address=0x006e8fb0", + "/home/alex/sots-re/dumps/sots.exe" + ], + "start": "0x006e8f50", + "stop": "0x006e8fb0", + "returncode": 0, + "stdout_bytes": 1819, + "stdout_sha256": "a00efc52c0c259edeab80178eb3e11eb921b215ccac4882afc71b59b7e8da1c1", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "instruction_lines": 36 + }, + { + "name": "turn-range-copy", + "argv": [ + "/usr/bin/objdump", + "-D", + "-Mintel", + "--start-address=0x0077fed0", + "--stop-address=0x00780040", + "/home/alex/sots-re/dumps/sots.exe" + ], + "start": "0x0077fed0", + "stop": "0x00780040", + "returncode": 0, + "stdout_bytes": 7128, + "stdout_sha256": "b937abaeed9a4bd44e5736b8474262119fa6d78c96b5cf89e0a1d50f4c58b44d", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "instruction_lines": 136 + }, + { + "name": "turn-vtable", + "argv": [ + "/usr/bin/objdump", + "-s", + "--start-address=0x00a0f070", + "--stop-address=0x00a0f0a0", + "/home/alex/sots-re/dumps/sots.exe" + ], + "start": "0x00a0f070", + "stop": "0x00a0f0a0", + "returncode": 0, + "stdout_bytes": 276, + "stdout_sha256": "4ccf38cea420e0051b781513031ac0e83841c3828851e7198a8724e592912df9", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "instruction_lines": 0 + } + ] +} diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stderr.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stderr.txt new file mode 100644 index 0000000..e69de29 diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt new file mode 100644 index 0000000..0aec076 --- /dev/null +++ b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-copy.stdout.txt @@ -0,0 +1,175 @@ + +/home/alex/sots-re/dumps/sots.exe: file format pei-i386 + + +Disassembly of section .text: + +00779850 <.text+0x378850>: + 779850: 55 push ebp + 779851: 8b ec mov ebp,esp + 779853: 6a ff push 0xffffffff + 779855: 68 10 7b 98 00 push 0x987b10 + 77985a: 64 a1 00 00 00 00 mov eax,fs:0x0 + 779860: 50 push eax + 779861: 83 ec 08 sub esp,0x8 + 779864: 53 push ebx + 779865: 56 push esi + 779866: 57 push edi + 779867: a1 78 8b af 00 mov eax,ds:0xaf8b78 + 77986c: 33 c5 xor eax,ebp + 77986e: 50 push eax + 77986f: 8d 45 f4 lea eax,[ebp-0xc] + 779872: 64 a3 00 00 00 00 mov fs:0x0,eax + 779878: 89 65 f0 mov DWORD PTR [ebp-0x10],esp + 77987b: 8b f1 mov esi,ecx + 77987d: 89 75 ec mov DWORD PTR [ebp-0x14],esi + 779880: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8] + 779883: 33 c0 xor eax,eax + 779885: 89 06 mov DWORD PTR [esi],eax + 779887: 89 46 04 mov DWORD PTR [esi+0x4],eax + 77988a: 89 46 08 mov DWORD PTR [esi+0x8],eax + 77988d: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4] + 779890: 2b 0b sub ecx,DWORD PTR [ebx] + 779892: b8 09 cb 3d 8d mov eax,0x8d3dcb09 + 779897: f7 e9 imul ecx + 779899: 03 d1 add edx,ecx + 77989b: c1 fa 06 sar edx,0x6 + 77989e: 8b fa mov edi,edx + 7798a0: b8 00 00 00 00 mov eax,0x0 + 7798a5: c1 ef 1f shr edi,0x1f + 7798a8: 03 fa add edi,edx + 7798aa: 89 06 mov DWORD PTR [esi],eax + 7798ac: 89 46 04 mov DWORD PTR [esi+0x4],eax + 7798af: 89 46 08 mov DWORD PTR [esi+0x8],eax + 7798b2: 74 4b je 0x7798ff + 7798b4: 81 ff 2c f7 34 02 cmp edi,0x234f72c + 7798ba: 76 0b jbe 0x7798c7 + 7798bc: 68 90 1f 9e 00 push 0x9e1f90 + 7798c1: ff 15 50 d1 9d 00 call DWORD PTR ds:0x9dd150 + 7798c7: 8d 4e 0c lea ecx,[esi+0xc] + 7798ca: 57 push edi + 7798cb: e8 70 16 01 00 call 0x78af40 + 7798d0: 6b ff 74 imul edi,edi,0x74 + 7798d3: 8b 55 08 mov edx,DWORD PTR [ebp+0x8] + 7798d6: 52 push edx + 7798d7: 8d 56 0c lea edx,[esi+0xc] + 7798da: 52 push edx + 7798db: 03 f8 add edi,eax + 7798dd: 89 06 mov DWORD PTR [esi],eax + 7798df: 89 46 04 mov DWORD PTR [esi+0x4],eax + 7798e2: 89 7e 08 mov DWORD PTR [esi+0x8],edi + 7798e5: 8b 4b 04 mov ecx,DWORD PTR [ebx+0x4] + 7798e8: 8b 1b mov ebx,DWORD PTR [ebx] + 7798ea: 50 push eax + 7798eb: 51 push ecx + 7798ec: 53 push ebx + 7798ed: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0 + 7798f4: e8 a7 8c ff ff call 0x7725a0 + 7798f9: 83 c4 14 add esp,0x14 + 7798fc: 89 46 04 mov DWORD PTR [esi+0x4],eax + 7798ff: 8b c6 mov eax,esi + 779901: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc] + 779904: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx + 77990b: 59 pop ecx + 77990c: 5f pop edi + 77990d: 5e pop esi + 77990e: 5b pop ebx + 77990f: 8b e5 mov esp,ebp + 779911: 5d pop ebp + 779912: c2 04 00 ret 0x4 + 779915: 8b 4d ec mov ecx,DWORD PTR [ebp-0x14] + 779918: e8 63 fc ea ff call 0x629580 + 77991d: 6a 00 push 0x0 + 77991f: 6a 00 push 0x0 + 779921: e8 96 b6 1a 00 call 0x924fbc + 779926: cc int3 + 779927: cc int3 + 779928: cc int3 + 779929: cc int3 + 77992a: cc int3 + 77992b: cc int3 + 77992c: cc int3 + 77992d: cc int3 + 77992e: cc int3 + 77992f: cc int3 + 779930: 55 push ebp + 779931: 8b ec mov ebp,esp + 779933: 6a ff push 0xffffffff + 779935: 68 38 06 97 00 push 0x970638 + 77993a: 64 a1 00 00 00 00 mov eax,fs:0x0 + 779940: 50 push eax + 779941: 83 ec 20 sub esp,0x20 + 779944: a1 78 8b af 00 mov eax,ds:0xaf8b78 + 779949: 33 c5 xor eax,ebp + 77994b: 89 45 f0 mov DWORD PTR [ebp-0x10],eax + 77994e: 56 push esi + 77994f: 50 push eax + 779950: 8d 45 f4 lea eax,[ebp-0xc] + 779953: 64 a3 00 00 00 00 mov fs:0x0,eax + 779959: 8b f1 mov esi,ecx + 77995b: 8b 86 8c 00 00 00 mov eax,DWORD PTR [esi+0x8c] + 779961: 85 c0 test eax,eax + 779963: 75 0c jne 0x779971 + 779965: 68 34 24 a2 00 push 0xa22434 + 77996a: e8 e1 05 14 00 call 0x8b9f50 + 77996f: eb 7e jmp 0x7799ef + 779971: 50 push eax + 779972: e8 09 cc c9 ff call 0x416580 + 779977: 83 c4 04 add esp,0x4 + 77997a: 85 c0 test eax,eax + 77997c: 74 0c je 0x77998a + 77997e: 68 f8 23 a2 00 push 0xa223f8 + 779983: e8 58 08 14 00 call 0x8ba1e0 + 779988: eb 65 jmp 0x7799ef + 77998a: e8 d1 58 dc ff call 0x53f260 + 77998f: c7 45 e8 0f 00 00 00 mov DWORD PTR [ebp-0x18],0xf + 779996: c7 45 e4 00 00 00 00 mov DWORD PTR [ebp-0x1c],0x0 + 77999d: c6 45 d4 00 mov BYTE PTR [ebp-0x2c],0x0 + 7799a1: 8d 4d d4 lea ecx,[ebp-0x2c] + 7799a4: 51 push ecx + 7799a5: 50 push eax + 7799a6: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0 + 7799ad: e8 fe 52 dc ff call 0x53ecb0 + 7799b2: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c] + 7799b5: 83 c4 08 add esp,0x8 + 7799b8: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10 + 7799bc: 73 03 jae 0x7799c1 + 7799be: 8d 45 d4 lea eax,[ebp-0x2c] + 7799c1: 8b 96 8c 00 00 00 mov edx,DWORD PTR [esi+0x8c] + 7799c7: 6a 00 push 0x0 + 7799c9: 56 push esi + 7799ca: 68 a0 8d 77 00 push 0x778da0 + 7799cf: 68 e0 ea 76 00 push 0x76eae0 + 7799d4: 6a 00 push 0x0 + 7799d6: 50 push eax + 7799d7: 52 push edx + 7799d8: e8 f3 d7 c9 ff call 0x4171d0 + 7799dd: 83 c4 1c add esp,0x1c + 7799e0: 83 7d e8 10 cmp DWORD PTR [ebp-0x18],0x10 + 7799e4: 72 0c jb 0x7799f2 + 7799e6: 8b 45 d4 mov eax,DWORD PTR [ebp-0x2c] + 7799e9: 50 push eax + 7799ea: e8 bb b5 1a 00 call 0x924faa + 7799ef: 83 c4 04 add esp,0x4 + 7799f2: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc] + 7799f5: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx + 7799fc: 59 pop ecx + 7799fd: 5e pop esi + 7799fe: 8b 4d f0 mov ecx,DWORD PTR [ebp-0x10] + 779a01: 33 cd xor ecx,ebp + 779a03: e8 7a b3 1a 00 call 0x924d82 + 779a08: 8b e5 mov esp,ebp + 779a0a: 5d pop ebp + 779a0b: c3 ret + 779a0c: cc int3 + 779a0d: cc int3 + 779a0e: cc int3 + 779a0f: cc int3 + 779a10: 53 push ebx + 779a11: 56 push esi + 779a12: 8b f1 mov esi,ecx + 779a14: 57 push edi + 779a15: 8b be 24 01 00 00 mov edi,DWORD PTR [esi+0x124] + 779a1b: 33 db xor ebx,ebx + 779a1d: 3b fb cmp edi,ebx + 779a1f: 74 je 0x779a31 diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stderr.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stderr.txt new file mode 100644 index 0000000..e69de29 diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt new file mode 100644 index 0000000..db08381 --- /dev/null +++ b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/nested-dtor.stdout.txt @@ -0,0 +1,39 @@ + +/home/alex/sots-re/dumps/sots.exe: file format pei-i386 + + +Disassembly of section .text: + +00629580 <.text+0x228580>: + 629580: 57 push edi + 629581: 8b f9 mov edi,ecx + 629583: 83 3f 00 cmp DWORD PTR [edi],0x0 + 629586: 74 36 je 0x6295be + 629588: 53 push ebx + 629589: 56 push esi + 62958a: ff 15 2c d1 9d 00 call DWORD PTR ds:0x9dd12c + 629590: 8b 5f 04 mov ebx,DWORD PTR [edi+0x4] + 629593: 8b 37 mov esi,DWORD PTR [edi] + 629595: 3b f3 cmp esi,ebx + 629597: 74 18 je 0x6295b1 + 629599: 8d a4 24 00 00 00 00 lea esp,[esp+0x0] + 6295a0: 8b 06 mov eax,DWORD PTR [esi] + 6295a2: 8b 10 mov edx,DWORD PTR [eax] + 6295a4: 6a 00 push 0x0 + 6295a6: 8b ce mov ecx,esi + 6295a8: ff d2 call edx + 6295aa: 83 c6 74 add esi,0x74 + 6295ad: 3b f3 cmp esi,ebx + 6295af: 75 ef jne 0x6295a0 + 6295b1: 8b 07 mov eax,DWORD PTR [edi] + 6295b3: 50 push eax + 6295b4: e8 f1 b9 2f 00 call 0x924faa + 6295b9: 83 c4 04 add esp,0x4 + 6295bc: 5e pop esi + 6295bd: 5b pop ebx + 6295be: 33 c0 xor eax,eax + 6295c0: 89 07 mov DWORD PTR [edi],eax + 6295c2: 89 47 04 mov DWORD PTR [edi+0x4],eax + 6295c5: 89 47 08 mov DWORD PTR [edi+0x8],eax + 6295c8: 5f pop edi + 6295c9: c3 ret diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-alloc.stderr.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-alloc.stderr.txt new file mode 100644 index 0000000..e69de29 diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-alloc.stdout.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-alloc.stdout.txt new file mode 100644 index 0000000..238f63a --- /dev/null +++ b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-alloc.stdout.txt @@ -0,0 +1,42 @@ + +/home/alex/sots-re/dumps/sots.exe: file format pei-i386 + + +Disassembly of section .text: + +006e8f50 <.text+0x2e7f50>: + 6e8f50: 55 push ebp + 6e8f51: 8b ec mov ebp,esp + 6e8f53: 8b 4d 08 mov ecx,DWORD PTR [ebp+0x8] + 6e8f56: 83 ec 0c sub esp,0xc + 6e8f59: 33 c0 xor eax,eax + 6e8f5b: 85 c9 test ecx,ecx + 6e8f5d: 74 47 je 0x6e8fa6 + 6e8f5f: 81 f9 aa aa aa 0a cmp ecx,0xaaaaaaa + 6e8f65: 77 16 ja 0x6e8f7d + 6e8f67: 8d 04 49 lea eax,[ecx+ecx*2] + 6e8f6a: 03 c0 add eax,eax + 6e8f6c: 03 c0 add eax,eax + 6e8f6e: 03 c0 add eax,eax + 6e8f70: 50 push eax + 6e8f71: e8 40 c0 23 00 call 0x924fb6 + 6e8f76: 83 c4 04 add esp,0x4 + 6e8f79: 85 c0 test eax,eax + 6e8f7b: 75 29 jne 0x6e8fa6 + 6e8f7d: 8d 4d 08 lea ecx,[ebp+0x8] + 6e8f80: 51 push ecx + 6e8f81: 8d 4d f4 lea ecx,[ebp-0xc] + 6e8f84: c7 45 08 00 00 00 00 mov DWORD PTR [ebp+0x8],0x0 + 6e8f8b: ff 15 bc d1 9d 00 call DWORD PTR ds:0x9dd1bc + 6e8f91: 68 90 d1 a8 00 push 0xa8d190 + 6e8f96: 8d 55 f4 lea edx,[ebp-0xc] + 6e8f99: 52 push edx + 6e8f9a: c7 45 f4 00 1f 9e 00 mov DWORD PTR [ebp-0xc],0x9e1f00 + 6e8fa1: e8 16 c0 23 00 call 0x924fbc + 6e8fa6: 8b e5 mov esp,ebp + 6e8fa8: 5d pop ebp + 6e8fa9: c2 04 00 ret 0x4 + 6e8fac: cc int3 + 6e8fad: cc int3 + 6e8fae: cc int3 + 6e8faf: cc int3 diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stderr.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stderr.txt new file mode 100644 index 0000000..e69de29 diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt new file mode 100644 index 0000000..f13718d --- /dev/null +++ b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-append.stdout.txt @@ -0,0 +1,85 @@ + +/home/alex/sots-re/dumps/sots.exe: file format pei-i386 + + +Disassembly of section .text: + +00884cb0 <.text+0x483cb0>: + 884cb0: 55 push ebp + 884cb1: 8b ec mov ebp,esp + 884cb3: 6a ff push 0xffffffff + 884cb5: 68 72 0b 98 00 push 0x980b72 + 884cba: 64 a1 00 00 00 00 mov eax,fs:0x0 + 884cc0: 50 push eax + 884cc1: 51 push ecx + 884cc2: 56 push esi + 884cc3: 57 push edi + 884cc4: a1 78 8b af 00 mov eax,ds:0xaf8b78 + 884cc9: 33 c5 xor eax,ebp + 884ccb: 50 push eax + 884ccc: 8d 45 f4 lea eax,[ebp-0xc] + 884ccf: 64 a3 00 00 00 00 mov fs:0x0,eax + 884cd5: 8b f9 mov edi,ecx + 884cd7: 8b 4f 04 mov ecx,DWORD PTR [edi+0x4] + 884cda: 8b 75 08 mov esi,DWORD PTR [ebp+0x8] + 884cdd: 3b f1 cmp esi,ecx + 884cdf: 73 59 jae 0x884d3a + 884ce1: 8b 07 mov eax,DWORD PTR [edi] + 884ce3: 3b c6 cmp eax,esi + 884ce5: 77 53 ja 0x884d3a + 884ce7: 2b f0 sub esi,eax + 884ce9: b8 ab aa aa 2a mov eax,0x2aaaaaab + 884cee: f7 ee imul esi + 884cf0: c1 fa 02 sar edx,0x2 + 884cf3: 8b f2 mov esi,edx + 884cf5: c1 ee 1f shr esi,0x1f + 884cf8: 03 f2 add esi,edx + 884cfa: 3b 4f 08 cmp ecx,DWORD PTR [edi+0x8] + 884cfd: 75 09 jne 0x884d08 + 884cff: 6a 01 push 0x1 + 884d01: 8b cf mov ecx,edi + 884d03: e8 98 f4 ff ff call 0x8841a0 + 884d08: 8b 0f mov ecx,DWORD PTR [edi] + 884d0a: 8d 04 76 lea eax,[esi+esi*2] + 884d0d: 8d 0c c1 lea ecx,[ecx+eax*8] + 884d10: 8b 47 04 mov eax,DWORD PTR [edi+0x4] + 884d13: 89 45 08 mov DWORD PTR [ebp+0x8],eax + 884d16: 89 45 f0 mov DWORD PTR [ebp-0x10],eax + 884d19: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0 + 884d20: 85 c0 test eax,eax + 884d22: 74 54 je 0x884d78 + 884d24: c7 00 7c f0 a0 00 mov DWORD PTR [eax],0xa0f07c + 884d2a: 8b 51 04 mov edx,DWORD PTR [ecx+0x4] + 884d2d: 83 c1 08 add ecx,0x8 + 884d30: c6 45 fc 01 mov BYTE PTR [ebp-0x4],0x1 + 884d34: 89 50 04 mov DWORD PTR [eax+0x4],edx + 884d37: 51 push ecx + 884d38: eb 36 jmp 0x884d70 + 884d3a: 3b 4f 08 cmp ecx,DWORD PTR [edi+0x8] + 884d3d: 75 09 jne 0x884d48 + 884d3f: 6a 01 push 0x1 + 884d41: 8b cf mov ecx,edi + 884d43: e8 58 f4 ff ff call 0x8841a0 + 884d48: 8b 47 04 mov eax,DWORD PTR [edi+0x4] + 884d4b: 89 45 08 mov DWORD PTR [ebp+0x8],eax + 884d4e: 89 45 f0 mov DWORD PTR [ebp-0x10],eax + 884d51: c7 45 fc 02 00 00 00 mov DWORD PTR [ebp-0x4],0x2 + 884d58: 85 c0 test eax,eax + 884d5a: 74 1c je 0x884d78 + 884d5c: c7 00 7c f0 a0 00 mov DWORD PTR [eax],0xa0f07c + 884d62: 8b 4e 04 mov ecx,DWORD PTR [esi+0x4] + 884d65: 83 c6 08 add esi,0x8 + 884d68: c6 45 fc 03 mov BYTE PTR [ebp-0x4],0x3 + 884d6c: 89 48 04 mov DWORD PTR [eax+0x4],ecx + 884d6f: 56 push esi + 884d70: 8d 48 08 lea ecx,[eax+0x8] + 884d73: e8 d8 4a ef ff call 0x779850 + 884d78: 83 47 04 18 add DWORD PTR [edi+0x4],0x18 + 884d7c: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc] + 884d7f: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx + 884d86: 59 pop ecx + 884d87: 5f pop edi + 884d88: 5e pop esi + 884d89: 8b e5 mov esp,ebp + 884d8b: 5d pop ebp + 884d8c: c2 04 00 ret 0x4 diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stderr.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stderr.txt new file mode 100644 index 0000000..e69de29 diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt new file mode 100644 index 0000000..252a00d --- /dev/null +++ b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-dtor.stdout.txt @@ -0,0 +1,54 @@ + +/home/alex/sots-re/dumps/sots.exe: file format pei-i386 + + +Disassembly of section .text: + +0062e120 <.text+0x22d120>: + 62e120: 55 push ebp + 62e121: 8b ec mov ebp,esp + 62e123: 6a ff push 0xffffffff + 62e125: 68 08 92 98 00 push 0x989208 + 62e12a: 64 a1 00 00 00 00 mov eax,fs:0x0 + 62e130: 50 push eax + 62e131: 51 push ecx + 62e132: 56 push esi + 62e133: a1 78 8b af 00 mov eax,ds:0xaf8b78 + 62e138: 33 c5 xor eax,ebp + 62e13a: 50 push eax + 62e13b: 8d 45 f4 lea eax,[ebp-0xc] + 62e13e: 64 a3 00 00 00 00 mov fs:0x0,eax + 62e144: 8b f1 mov esi,ecx + 62e146: 89 75 f0 mov DWORD PTR [ebp-0x10],esi + 62e149: 8d 4e 08 lea ecx,[esi+0x8] + 62e14c: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0 + 62e153: e8 28 b4 ff ff call 0x629580 + 62e158: f6 45 08 01 test BYTE PTR [ebp+0x8],0x1 + 62e15c: c7 06 bc 22 9e 00 mov DWORD PTR [esi],0x9e22bc + 62e162: 74 09 je 0x62e16d + 62e164: 56 push esi + 62e165: e8 40 6e 2f 00 call 0x924faa + 62e16a: 83 c4 04 add esp,0x4 + 62e16d: 8b c6 mov eax,esi + 62e16f: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc] + 62e172: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx + 62e179: 59 pop ecx + 62e17a: 5e pop esi + 62e17b: 8b e5 mov esp,ebp + 62e17d: 5d pop ebp + 62e17e: c2 04 00 ret 0x4 + 62e181: cc int3 + 62e182: cc int3 + 62e183: cc int3 + 62e184: cc int3 + 62e185: cc int3 + 62e186: cc int3 + 62e187: cc int3 + 62e188: cc int3 + 62e189: cc int3 + 62e18a: cc int3 + 62e18b: cc int3 + 62e18c: cc int3 + 62e18d: cc int3 + 62e18e: cc int3 + 62e18f: cc int3 diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stderr.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stderr.txt new file mode 100644 index 0000000..e69de29 diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt new file mode 100644 index 0000000..74205d2 --- /dev/null +++ b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-get-create.stdout.txt @@ -0,0 +1,83 @@ + +/home/alex/sots-re/dumps/sots.exe: file format pei-i386 + + +Disassembly of section .text: + +00885380 <.text+0x484380>: + 885380: 55 push ebp + 885381: 8b ec mov ebp,esp + 885383: 6a ff push 0xffffffff + 885385: 68 30 af 99 00 push 0x99af30 + 88538a: 64 a1 00 00 00 00 mov eax,fs:0x0 + 885390: 50 push eax + 885391: 83 ec 18 sub esp,0x18 + 885394: 53 push ebx + 885395: 56 push esi + 885396: 57 push edi + 885397: a1 78 8b af 00 mov eax,ds:0xaf8b78 + 88539c: 33 c5 xor eax,ebp + 88539e: 50 push eax + 88539f: 8d 45 f4 lea eax,[ebp-0xc] + 8853a2: 64 a3 00 00 00 00 mov fs:0x0,eax + 8853a8: 8b f1 mov esi,ecx + 8853aa: 8b 56 08 mov edx,DWORD PTR [esi+0x8] + 8853ad: 2b 56 04 sub edx,DWORD PTR [esi+0x4] + 8853b0: 8d 4e 04 lea ecx,[esi+0x4] + 8853b3: b8 ab aa aa 2a mov eax,0x2aaaaaab + 8853b8: f7 ea imul edx + 8853ba: c1 fa 02 sar edx,0x2 + 8853bd: 8b c2 mov eax,edx + 8853bf: c1 e8 1f shr eax,0x1f + 8853c2: 33 db xor ebx,ebx + 8853c4: 03 c2 add eax,edx + 8853c6: 33 ff xor edi,edi + 8853c8: 3b c3 cmp eax,ebx + 8853ca: 7e 30 jle 0x8853fc + 8853cc: 8b 11 mov edx,DWORD PTR [ecx] + 8853ce: 8b ff mov edi,edi + 8853d0: 8b 5d 08 mov ebx,DWORD PTR [ebp+0x8] + 8853d3: 39 5a 04 cmp DWORD PTR [edx+0x4],ebx + 8853d6: 75 02 jne 0x8853da + 8853d8: 8b fa mov edi,edx + 8853da: 83 c2 18 add edx,0x18 + 8853dd: 48 dec eax + 8853de: 75 f0 jne 0x8853d0 + 8853e0: 33 db xor ebx,ebx + 8853e2: 3b fb cmp edi,ebx + 8853e4: 74 16 je 0x8853fc + 8853e6: 8b c7 mov eax,edi + 8853e8: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc] + 8853eb: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx + 8853f2: 59 pop ecx + 8853f3: 5f pop edi + 8853f4: 5e pop esi + 8853f5: 5b pop ebx + 8853f6: 8b e5 mov esp,ebp + 8853f8: 5d pop ebp + 8853f9: c2 04 00 ret 0x4 + 8853fc: c7 45 dc 7c f0 a0 00 mov DWORD PTR [ebp-0x24],0xa0f07c + 885403: 89 5d e4 mov DWORD PTR [ebp-0x1c],ebx + 885406: 89 5d e8 mov DWORD PTR [ebp-0x18],ebx + 885409: 89 5d ec mov DWORD PTR [ebp-0x14],ebx + 88540c: 8d 45 dc lea eax,[ebp-0x24] + 88540f: 50 push eax + 885410: 89 5d fc mov DWORD PTR [ebp-0x4],ebx + 885413: e8 98 f8 ff ff call 0x884cb0 + 885418: 8d 4d e4 lea ecx,[ebp-0x1c] + 88541b: c7 45 fc 01 00 00 00 mov DWORD PTR [ebp-0x4],0x1 + 885422: e8 59 41 da ff call 0x629580 + 885427: 8b 46 08 mov eax,DWORD PTR [esi+0x8] + 88542a: 8b 4d 08 mov ecx,DWORD PTR [ebp+0x8] + 88542d: 89 48 ec mov DWORD PTR [eax-0x14],ecx + 885430: 8b 46 08 mov eax,DWORD PTR [esi+0x8] + 885433: 83 e8 18 sub eax,0x18 + 885436: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc] + 885439: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx + 885440: 59 pop ecx + 885441: 5f pop edi + 885442: 5e pop esi + 885443: 5b pop ebx + 885444: 8b e5 mov esp,ebp + 885446: 5d pop ebp + 885447: c2 04 00 ret 0x4 diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stderr.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stderr.txt new file mode 100644 index 0000000..e69de29 diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt new file mode 100644 index 0000000..4267c3d --- /dev/null +++ b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-grow.stdout.txt @@ -0,0 +1,251 @@ + +/home/alex/sots-re/dumps/sots.exe: file format pei-i386 + + +Disassembly of section .text: + +008841a0 <.text+0x4831a0>: + 8841a0: 55 push ebp + 8841a1: 8b ec mov ebp,esp + 8841a3: 8b 51 04 mov edx,DWORD PTR [ecx+0x4] + 8841a6: 56 push esi + 8841a7: 57 push edi + 8841a8: 8b 39 mov edi,DWORD PTR [ecx] + 8841aa: 2b d7 sub edx,edi + 8841ac: b8 ab aa aa 2a mov eax,0x2aaaaaab + 8841b1: f7 ea imul edx + 8841b3: 8b 45 08 mov eax,DWORD PTR [ebp+0x8] + 8841b6: c1 fa 02 sar edx,0x2 + 8841b9: 8b f2 mov esi,edx + 8841bb: c1 ee 1f shr esi,0x1f + 8841be: 03 f2 add esi,edx + 8841c0: ba aa aa aa 0a mov edx,0xaaaaaaa + 8841c5: 2b d0 sub edx,eax + 8841c7: 3b d6 cmp edx,esi + 8841c9: 73 0b jae 0x8841d6 + 8841cb: 68 90 1f 9e 00 push 0x9e1f90 + 8841d0: ff 15 50 d1 9d 00 call DWORD PTR ds:0x9dd150 + 8841d6: 8b 51 08 mov edx,DWORD PTR [ecx+0x8] + 8841d9: 03 f0 add esi,eax + 8841db: 2b d7 sub edx,edi + 8841dd: b8 ab aa aa 2a mov eax,0x2aaaaaab + 8841e2: f7 ea imul edx + 8841e4: c1 fa 02 sar edx,0x2 + 8841e7: 8b c2 mov eax,edx + 8841e9: c1 e8 1f shr eax,0x1f + 8841ec: 03 c2 add eax,edx + 8841ee: 3b f0 cmp esi,eax + 8841f0: 76 21 jbe 0x884213 + 8841f2: 8b d0 mov edx,eax + 8841f4: d1 ea shr edx,1 + 8841f6: bf aa aa aa 0a mov edi,0xaaaaaaa + 8841fb: 2b fa sub edi,edx + 8841fd: 3b f8 cmp edi,eax + 8841ff: 73 04 jae 0x884205 + 884201: 33 c0 xor eax,eax + 884203: eb 02 jmp 0x884207 + 884205: 03 c2 add eax,edx + 884207: 3b c6 cmp eax,esi + 884209: 73 02 jae 0x88420d + 88420b: 8b c6 mov eax,esi + 88420d: 50 push eax + 88420e: e8 4d f8 ff ff call 0x883a60 + 884213: 5f pop edi + 884214: 5e pop esi + 884215: 5d pop ebp + 884216: c2 04 00 ret 0x4 + 884219: cc int3 + 88421a: cc int3 + 88421b: cc int3 + 88421c: cc int3 + 88421d: cc int3 + 88421e: cc int3 + 88421f: cc int3 + 884220: 55 push ebp + 884221: 8b ec mov ebp,esp + 884223: 6a ff push 0xffffffff + 884225: 68 10 ad 99 00 push 0x99ad10 + 88422a: 64 a1 00 00 00 00 mov eax,fs:0x0 + 884230: 50 push eax + 884231: 83 ec 0c sub esp,0xc + 884234: 53 push ebx + 884235: 56 push esi + 884236: 57 push edi + 884237: a1 78 8b af 00 mov eax,ds:0xaf8b78 + 88423c: 33 c5 xor eax,ebp + 88423e: 50 push eax + 88423f: 8d 45 f4 lea eax,[ebp-0xc] + 884242: 64 a3 00 00 00 00 mov fs:0x0,eax + 884248: 89 65 f0 mov DWORD PTR [ebp-0x10],esp + 88424b: 8b d9 mov ebx,ecx + 88424d: 89 5d e8 mov DWORD PTR [ebp-0x18],ebx + 884250: 8b 7d 08 mov edi,DWORD PTR [ebp+0x8] + 884253: 80 bf 89 00 00 00 00 cmp BYTE PTR [edi+0x89],0x0 + 88425a: 8b 43 04 mov eax,DWORD PTR [ebx+0x4] + 88425d: 89 45 ec mov DWORD PTR [ebp-0x14],eax + 884260: 75 51 jne 0x8842b3 + 884262: 8d 4f 10 lea ecx,[edi+0x10] + 884265: 51 push ecx + 884266: 8b cb mov ecx,ebx + 884268: e8 23 f9 ff ff call 0x883b90 + 88426d: 8b 55 0c mov edx,DWORD PTR [ebp+0xc] + 884270: 8b 4d ec mov ecx,DWORD PTR [ebp-0x14] + 884273: 8b f0 mov esi,eax + 884275: 89 56 04 mov DWORD PTR [esi+0x4],edx + 884278: 8a 87 88 00 00 00 mov al,BYTE PTR [edi+0x88] + 88427e: 88 86 88 00 00 00 mov BYTE PTR [esi+0x88],al + 884284: 80 b9 89 00 00 00 00 cmp BYTE PTR [ecx+0x89],0x0 + 88428b: 74 03 je 0x884290 + 88428d: 89 75 ec mov DWORD PTR [ebp-0x14],esi + 884290: 8b 17 mov edx,DWORD PTR [edi] + 884292: 56 push esi + 884293: 52 push edx + 884294: 8b cb mov ecx,ebx + 884296: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0 + 88429d: e8 7e ff ff ff call 0x884220 + 8842a2: 89 06 mov DWORD PTR [esi],eax + 8842a4: 8b 47 08 mov eax,DWORD PTR [edi+0x8] + 8842a7: 56 push esi + 8842a8: 50 push eax + 8842a9: 8b cb mov ecx,ebx + 8842ab: e8 70 ff ff ff call 0x884220 + 8842b0: 89 46 08 mov DWORD PTR [esi+0x8],eax + 8842b3: 8b 45 ec mov eax,DWORD PTR [ebp-0x14] + 8842b6: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc] + 8842b9: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx + 8842c0: 59 pop ecx + 8842c1: 5f pop edi + 8842c2: 5e pop esi + 8842c3: 5b pop ebx + 8842c4: 8b e5 mov esp,ebp + 8842c6: 5d pop ebp + 8842c7: c2 08 00 ret 0x8 + 8842ca: 8b 4d ec mov ecx,DWORD PTR [ebp-0x14] + 8842cd: 51 push ecx + 8842ce: 8b 4d e8 mov ecx,DWORD PTR [ebp-0x18] + 8842d1: e8 5a f5 fe ff call 0x873830 + 8842d6: 6a 00 push 0x0 + 8842d8: 6a 00 push 0x0 + 8842da: e8 dd 0c 0a 00 call 0x924fbc + 8842df: cc int3 + 8842e0: 55 push ebp + 8842e1: 8b ec mov ebp,esp + 8842e3: 6a ff push 0xffffffff + 8842e5: 68 6c ad 99 00 push 0x99ad6c + 8842ea: 64 a1 00 00 00 00 mov eax,fs:0x0 + 8842f0: 50 push eax + 8842f1: 83 ec 78 sub esp,0x78 + 8842f4: 56 push esi + 8842f5: a1 78 8b af 00 mov eax,ds:0xaf8b78 + 8842fa: 33 c5 xor eax,ebp + 8842fc: 50 push eax + 8842fd: 8d 45 f4 lea eax,[ebp-0xc] + 884300: 64 a3 00 00 00 00 mov fs:0x0,eax + 884306: 8b f1 mov esi,ecx + 884308: 89 75 f0 mov DWORD PTR [ebp-0x10],esi + 88430b: 33 c0 xor eax,eax + 88430d: 89 46 28 mov DWORD PTR [esi+0x28],eax + 884310: 89 46 2c mov DWORD PTR [esi+0x2c],eax + 884313: 89 46 30 mov DWORD PTR [esi+0x30],eax + 884316: 89 45 fc mov DWORD PTR [ebp-0x4],eax + 884319: 89 46 40 mov DWORD PTR [esi+0x40],eax + 88431c: 89 46 44 mov DWORD PTR [esi+0x44],eax + 88431f: 89 46 48 mov DWORD PTR [esi+0x48],eax + 884322: 89 46 64 mov DWORD PTR [esi+0x64],eax + 884325: 89 46 68 mov DWORD PTR [esi+0x68],eax + 884328: 89 46 6c mov DWORD PTR [esi+0x6c],eax + 88432b: d9 ee fldz + 88432d: 83 c9 ff or ecx,0xffffffff + 884330: d9 5d 90 fstp DWORD PTR [ebp-0x70] + 884333: 89 4d 80 mov DWORD PTR [ebp-0x80],ecx + 884336: 89 45 88 mov DWORD PTR [ebp-0x78],eax + 884339: 89 45 8c mov DWORD PTR [ebp-0x74],eax + 88433c: 66 c7 45 94 01 00 mov WORD PTR [ebp-0x6c],0x1 + 884342: 89 45 a4 mov DWORD PTR [ebp-0x5c],eax + 884345: 89 45 a8 mov DWORD PTR [ebp-0x58],eax + 884348: 89 45 ac mov DWORD PTR [ebp-0x54],eax + 88434b: 89 45 b4 mov DWORD PTR [ebp-0x4c],eax + 88434e: 88 45 b8 mov BYTE PTR [ebp-0x48],al + 884351: 89 45 bc mov DWORD PTR [ebp-0x44],eax + 884354: 89 45 c0 mov DWORD PTR [ebp-0x40],eax + 884357: 89 45 c4 mov DWORD PTR [ebp-0x3c],eax + 88435a: 89 45 dc mov DWORD PTR [ebp-0x24],eax + 88435d: 89 45 e0 mov DWORD PTR [ebp-0x20],eax + 884360: 89 45 e4 mov DWORD PTR [ebp-0x1c],eax + 884363: 89 45 e8 mov DWORD PTR [ebp-0x18],eax + 884366: 89 45 cc mov DWORD PTR [ebp-0x34],eax + 884369: 89 45 d0 mov DWORD PTR [ebp-0x30],eax + 88436c: 89 4d d4 mov DWORD PTR [ebp-0x2c],ecx + 88436f: 89 4d d8 mov DWORD PTR [ebp-0x28],ecx + 884372: 8d 85 7c ff ff ff lea eax,[ebp-0x84] + 884378: 50 push eax + 884379: 8b ce mov ecx,esi + 88437b: c6 45 fc 03 mov BYTE PTR [ebp-0x4],0x3 + 88437f: e8 8c d3 ef ff call 0x781710 + 884384: 8d 4d e0 lea ecx,[ebp-0x20] + 884387: c6 45 fc 05 mov BYTE PTR [ebp-0x4],0x5 + 88438b: e8 80 cb c8 ff call 0x510f10 + 884390: 8d 4d bc lea ecx,[ebp-0x44] + 884393: c6 45 fc 04 mov BYTE PTR [ebp-0x4],0x4 + 884397: e8 04 1c f1 ff call 0x795fa0 + 88439c: 8d 4d a4 lea ecx,[ebp-0x5c] + 88439f: c6 45 fc 02 mov BYTE PTR [ebp-0x4],0x2 + 8843a3: e8 38 11 de ff call 0x6654e0 + 8843a8: 8b 4d 08 mov ecx,DWORD PTR [ebp+0x8] + 8843ab: 89 4e 60 mov DWORD PTR [esi+0x60],ecx + 8843ae: 8b c6 mov eax,esi + 8843b0: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc] + 8843b3: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx + 8843ba: 59 pop ecx + 8843bb: 5e pop esi + 8843bc: 8b e5 mov esp,ebp + 8843be: 5d pop ebp + 8843bf: c2 04 00 ret 0x4 + 8843c2: cc int3 + 8843c3: cc int3 + 8843c4: cc int3 + 8843c5: cc int3 + 8843c6: cc int3 + 8843c7: cc int3 + 8843c8: cc int3 + 8843c9: cc int3 + 8843ca: cc int3 + 8843cb: cc int3 + 8843cc: cc int3 + 8843cd: cc int3 + 8843ce: cc int3 + 8843cf: cc int3 + 8843d0: 55 push ebp + 8843d1: 8b ec mov ebp,esp + 8843d3: 6a ff push 0xffffffff + 8843d5: 68 f6 ad 99 00 push 0x99adf6 + 8843da: 64 a1 00 00 00 00 mov eax,fs:0x0 + 8843e0: 50 push eax + 8843e1: 81 ec a0 00 00 00 sub esp,0xa0 + 8843e7: 53 push ebx + 8843e8: 56 push esi + 8843e9: 57 push edi + 8843ea: a1 78 8b af 00 mov eax,ds:0xaf8b78 + 8843ef: 33 c5 xor eax,ebp + 8843f1: 50 push eax + 8843f2: 8d 45 f4 lea eax,[ebp-0xc] + 8843f5: 64 a3 00 00 00 00 mov fs:0x0,eax + 8843fb: 89 4d ec mov DWORD PTR [ebp-0x14],ecx + 8843fe: 8b 75 08 mov esi,DWORD PTR [ebp+0x8] + 884401: 6a ff push 0xffffffff + 884403: 8d 45 b4 lea eax,[ebp-0x4c] + 884406: 50 push eax + 884407: 68 2c bb a2 00 push 0xa2bb2c + 88440c: 33 db xor ebx,ebx + 88440e: 56 push esi + 88440f: 89 5d b4 mov DWORD PTR [ebp-0x4c],ebx + 884412: e8 09 59 03 00 call 0x8b9d20 + 884417: 83 c4 10 add esp,0x10 + 88441a: 89 5d 08 mov DWORD PTR [ebp+0x8],ebx + 88441d: 39 5d b4 cmp DWORD PTR [ebp-0x4c],ebx + 884420: 0f 8e 0e 01 00 00 jle 0x884534 + 884426: c7 85 54 ff ff ff e8 mov DWORD PTR [ebp-0xac],0xa313e8 + 88442d: 13 a3 00 + 884430: c7 85 5c ff ff ff b8 mov DWORD PTR [ebp-0xa4],0xa313b8 + 884437: 13 a3 00 + 88443a: 89 9d 68 ff ff ff mov DWORD PTR [ebp-0x98],ebx diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-range-copy.stderr.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-range-copy.stderr.txt new file mode 100644 index 0000000..e69de29 diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-range-copy.stdout.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-range-copy.stdout.txt new file mode 100644 index 0000000..2ff69b6 --- /dev/null +++ b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-range-copy.stdout.txt @@ -0,0 +1,142 @@ + +/home/alex/sots-re/dumps/sots.exe: file format pei-i386 + + +Disassembly of section .text: + +0077fed0 <.text+0x37eed0>: + 77fed0: 55 push ebp + 77fed1: 8b ec mov ebp,esp + 77fed3: 6a ff push 0xffffffff + 77fed5: 68 39 86 98 00 push 0x988639 + 77feda: 64 a1 00 00 00 00 mov eax,fs:0x0 + 77fee0: 50 push eax + 77fee1: 83 ec 08 sub esp,0x8 + 77fee4: 53 push ebx + 77fee5: 56 push esi + 77fee6: 57 push edi + 77fee7: a1 78 8b af 00 mov eax,ds:0xaf8b78 + 77feec: 33 c5 xor eax,ebp + 77feee: 50 push eax + 77feef: 8d 45 f4 lea eax,[ebp-0xc] + 77fef2: 64 a3 00 00 00 00 mov fs:0x0,eax + 77fef8: 89 65 f0 mov DWORD PTR [ebp-0x10],esp + 77fefb: 8b 75 10 mov esi,DWORD PTR [ebp+0x10] + 77fefe: 8b 7d 08 mov edi,DWORD PTR [ebp+0x8] + 77ff01: 89 75 ec mov DWORD PTR [ebp-0x14],esi + 77ff04: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0 + 77ff0b: b3 02 mov bl,0x2 + 77ff0d: 8d 49 00 lea ecx,[ecx+0x0] + 77ff10: 3b 7d 0c cmp edi,DWORD PTR [ebp+0xc] + 77ff13: 74 55 je 0x77ff6a + 77ff15: 89 75 08 mov DWORD PTR [ebp+0x8],esi + 77ff18: 85 f6 test esi,esi + 77ff1a: 74 1b je 0x77ff37 + 77ff1c: 8d 4f 08 lea ecx,[edi+0x8] + 77ff1f: c7 06 7c f0 a0 00 mov DWORD PTR [esi],0xa0f07c + 77ff25: 8b 47 04 mov eax,DWORD PTR [edi+0x4] + 77ff28: 51 push ecx + 77ff29: 8d 4e 08 lea ecx,[esi+0x8] + 77ff2c: 88 5d fc mov BYTE PTR [ebp-0x4],bl + 77ff2f: 89 46 04 mov DWORD PTR [esi+0x4],eax + 77ff32: e8 19 99 ff ff call 0x779850 + 77ff37: 83 c6 18 add esi,0x18 + 77ff3a: c6 45 fc 00 mov BYTE PTR [ebp-0x4],0x0 + 77ff3e: 89 75 10 mov DWORD PTR [ebp+0x10],esi + 77ff41: 83 c7 18 add edi,0x18 + 77ff44: eb ca jmp 0x77ff10 + 77ff46: 8b 75 ec mov esi,DWORD PTR [ebp-0x14] + 77ff49: 8b 7d 10 mov edi,DWORD PTR [ebp+0x10] + 77ff4c: 3b f7 cmp esi,edi + 77ff4e: 74 11 je 0x77ff61 + 77ff50: 8b 16 mov edx,DWORD PTR [esi] + 77ff52: 8b 02 mov eax,DWORD PTR [edx] + 77ff54: 6a 00 push 0x0 + 77ff56: 8b ce mov ecx,esi + 77ff58: ff d0 call eax + 77ff5a: 83 c6 18 add esi,0x18 + 77ff5d: 3b f7 cmp esi,edi + 77ff5f: 75 ef jne 0x77ff50 + 77ff61: 6a 00 push 0x0 + 77ff63: 6a 00 push 0x0 + 77ff65: e8 52 50 1a 00 call 0x924fbc + 77ff6a: 8b c6 mov eax,esi + 77ff6c: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc] + 77ff6f: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx + 77ff76: 59 pop ecx + 77ff77: 5f pop edi + 77ff78: 5e pop esi + 77ff79: 5b pop ebx + 77ff7a: 8b e5 mov esp,ebp + 77ff7c: 5d pop ebp + 77ff7d: c3 ret + 77ff7e: cc int3 + 77ff7f: cc int3 + 77ff80: 55 push ebp + 77ff81: 8b ec mov ebp,esp + 77ff83: 6a ff push 0xffffffff + 77ff85: 68 60 86 98 00 push 0x988660 + 77ff8a: 64 a1 00 00 00 00 mov eax,fs:0x0 + 77ff90: 50 push eax + 77ff91: 83 ec 0c sub esp,0xc + 77ff94: 53 push ebx + 77ff95: 56 push esi + 77ff96: 57 push edi + 77ff97: a1 78 8b af 00 mov eax,ds:0xaf8b78 + 77ff9c: 33 c5 xor eax,ebp + 77ff9e: 50 push eax + 77ff9f: 8d 45 f4 lea eax,[ebp-0xc] + 77ffa2: 64 a3 00 00 00 00 mov fs:0x0,eax + 77ffa8: 89 65 f0 mov DWORD PTR [ebp-0x10],esp + 77ffab: 8b f9 mov edi,ecx + 77ffad: 89 7d e8 mov DWORD PTR [ebp-0x18],edi + 77ffb0: 8b 45 0c mov eax,DWORD PTR [ebp+0xc] + 77ffb3: 89 45 ec mov DWORD PTR [ebp-0x14],eax + 77ffb6: c7 45 fc 00 00 00 00 mov DWORD PTR [ebp-0x4],0x0 + 77ffbd: 8d 49 00 lea ecx,[ecx+0x0] + 77ffc0: 3b 45 10 cmp eax,DWORD PTR [ebp+0x10] + 77ffc3: 74 71 je 0x780036 + 77ffc5: 8b 4d 08 mov ecx,DWORD PTR [ebp+0x8] + 77ffc8: 83 c0 08 add eax,0x8 + 77ffcb: 8d 71 04 lea esi,[ecx+0x4] + 77ffce: 50 push eax + 77ffcf: 8b 06 mov eax,DWORD PTR [esi] + 77ffd1: 50 push eax + 77ffd2: 51 push ecx + 77ffd3: 8b cf mov ecx,edi + 77ffd5: e8 c6 c0 ff ff call 0x77c0a0 + 77ffda: 8b 4f 04 mov ecx,DWORD PTR [edi+0x4] + 77ffdd: ba a9 aa aa 0a mov edx,0xaaaaaa9 + 77ffe2: 2b d1 sub edx,ecx + 77ffe4: 83 fa 01 cmp edx,0x1 + 77ffe7: 73 0b jae 0x77fff4 + 77ffe9: 68 b0 20 9e 00 push 0x9e20b0 + 77ffee: ff 15 50 d1 9d 00 call DWORD PTR ds:0x9dd150 + 77fff4: 41 inc ecx + 77fff5: 89 4f 04 mov DWORD PTR [edi+0x4],ecx + 77fff8: 89 06 mov DWORD PTR [esi],eax + 77fffa: 8b 48 04 mov ecx,DWORD PTR [eax+0x4] + 77fffd: 89 01 mov DWORD PTR [ecx],eax + 77ffff: 8b 55 0c mov edx,DWORD PTR [ebp+0xc] + 780002: 8b 02 mov eax,DWORD PTR [edx] + 780004: 89 45 0c mov DWORD PTR [ebp+0xc],eax + 780007: eb b7 jmp 0x77ffc0 + 780009: 8b 75 ec mov esi,DWORD PTR [ebp-0x14] + 78000c: 3b 75 0c cmp esi,DWORD PTR [ebp+0xc] + 78000f: 74 1c je 0x78002d + 780011: 8b 7d e8 mov edi,DWORD PTR [ebp-0x18] + 780014: 8b 45 08 mov eax,DWORD PTR [ebp+0x8] + 780017: 8b 40 04 mov eax,DWORD PTR [eax+0x4] + 78001a: 50 push eax + 78001b: 8d 4d e8 lea ecx,[ebp-0x18] + 78001e: 51 push ecx + 78001f: 8b cf mov ecx,edi + 780021: e8 ea bf ff ff call 0x77c010 + 780026: 8b 36 mov esi,DWORD PTR [esi] + 780028: 3b 75 0c cmp esi,DWORD PTR [ebp+0xc] + 78002b: 75 e7 jne 0x780014 + 78002d: 6a 00 push 0x0 + 78002f: 6a 00 push 0x0 + 780031: e8 86 4f 1a 00 call 0x924fbc + 780036: 8b 4d f4 mov ecx,DWORD PTR [ebp-0xc] + 780039: 64 89 0d 00 00 00 00 mov DWORD PTR fs:0x0,ecx diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-vtable.stderr.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-vtable.stderr.txt new file mode 100644 index 0000000..e69de29 diff --git a/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-vtable.stdout.txt b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-vtable.stdout.txt new file mode 100644 index 0000000..125848d --- /dev/null +++ b/verify/results/research-live-record-bridge/run-472955e277202c411388c66b/turn-vtable.stdout.txt @@ -0,0 +1,7 @@ + +/home/alex/sots-re/dumps/sots.exe: file format pei-i386 + +Contents of section .rdata: + a0f070 701e6100 90b28500 14b5a700 20e16200 p.a......... .b. + a0f080 b05b8200 405c8200 60b5a700 d0e26200 .[..@\..`.....b. + a0f090 c08a5f00 107a6100 d0764900 c08a5f00 .._..za..vI..._.