nmarshall commited on
Commit
88cec55
·
1 Parent(s): 8596d76

qvm: compose filter removal with export

Browse files
docs/FINDINGS.md CHANGED
@@ -1815,3 +1815,5 @@ RE-939: Rust matches180 original metadata-update cases, retaining the first exac
1815
  RE-940: Twenty-four original252829/252304/252500 compositions verify table checksums plus exact export records and file-operation order. Parse failure still retains count growth and exports, including an empty write through a supplied zero handle. Valid broadcast sentinel values are skipped by export, and wildcard masks are lost in serialized output. Native file IO remains captured; insertion table/caller provenance remains open. [Evidence](research/QVM_FILTER_INSERT_EXPORT.md).
1816
 
1817
  RE-941: Rust matches24 source insertion/export compositions, including all table checksums, optional export payloads, sentinel omission, mask loss and zero-handle empty writes after parser failure. The staged API preserves ordinary source mutation semantics and rejects unsupported domains atomically. Unit tests also cover4096-capacity refusal without export and unsupported-token rollback. Native filesystem operations remain plans for a future adapter. [Evidence](research/RUST_FILTER_INSERT_EXPORT.md).
 
 
 
1815
  RE-940: Twenty-four original252829/252304/252500 compositions verify table checksums plus exact export records and file-operation order. Parse failure still retains count growth and exports, including an empty write through a supplied zero handle. Valid broadcast sentinel values are skipped by export, and wildcard masks are lost in serialized output. Native file IO remains captured; insertion table/caller provenance remains open. [Evidence](research/QVM_FILTER_INSERT_EXPORT.md).
1816
 
1817
  RE-941: Rust matches24 source insertion/export compositions, including all table checksums, optional export payloads, sentinel omission, mask loss and zero-handle empty writes after parser failure. The staged API preserves ordinary source mutation semantics and rejects unsupported domains atomically. Unit tests also cover4096-capacity refusal without export and unsupported-token rollback. Native filesystem operations remain plans for a future adapter. [Evidence](research/RUST_FILTER_INSERT_EXPORT.md).
1818
+
1819
+ RE-942: Thirty original253296/252304/252500 compositions verify first-match removal, retained row metadata/masks/count, diagnostics and exact survivor export bytes. A sole removed record leaves a nonzero count and therefore causes an empty file write. Duplicate survivors remain serialized in original order. Parse failures and misses never invoke export. Native console/file operations are captured; actual filesystem errors and reload semantics remain open. [Evidence](research/QVM_FILTER_REMOVE_EXPORT.md).
docs/PROVISIONAL_TODO.md CHANGED
@@ -1861,3 +1861,5 @@ RE-924–933 completed bounded bot settings, announcement, connect-child composi
1861
  - [x] RE-940 Original insertion composed with recovered export ([evidence](research/QVM_FILTER_INSERT_EXPORT.md)).
1862
 
1863
  - [x] RE-941 Rust insertion with recovered export composition ([evidence](research/RUST_FILTER_INSERT_EXPORT.md)).
 
 
 
1861
  - [x] RE-940 Original insertion composed with recovered export ([evidence](research/QVM_FILTER_INSERT_EXPORT.md)).
1862
 
1863
  - [x] RE-941 Rust insertion with recovered export composition ([evidence](research/RUST_FILTER_INSERT_EXPORT.md)).
1864
+
1865
+ - [x] RE-942 Original removal composed with export and survivor serialization ([evidence](research/QVM_FILTER_REMOVE_EXPORT.md)).
docs/RESEARCH_LEDGER.md CHANGED
@@ -2429,3 +2429,7 @@ Twenty-four original252829/252304/252500 compositions verify table checksums plu
2429
  ## 2026-10-28 — RE-941 Rust insertion with recovered export composition
2430
 
2431
  Rust matches24 source insertion/export compositions, including all table checksums, optional export payloads, sentinel omission, mask loss and zero-handle empty writes after parser failure. The staged API preserves ordinary source mutation semantics and rejects unsupported domains atomically. Unit tests also cover4096-capacity refusal without export and unsupported-token rollback. Native filesystem operations remain plans for a future adapter. Focused `cargo xtask test-group rust-filter-insert-export` passes with deterministic report regeneration, relevant regressions and storage/documentation/whitespace checks. Full suite deferred to the tenth-commit boundary. Original assets unchanged; native IO effects remain captured.
 
 
 
 
 
2429
  ## 2026-10-28 — RE-941 Rust insertion with recovered export composition
2430
 
2431
  Rust matches24 source insertion/export compositions, including all table checksums, optional export payloads, sentinel omission, mask loss and zero-handle empty writes after parser failure. The staged API preserves ordinary source mutation semantics and rejects unsupported domains atomically. Unit tests also cover4096-capacity refusal without export and unsupported-token rollback. Native filesystem operations remain plans for a future adapter. Focused `cargo xtask test-group rust-filter-insert-export` passes with deterministic report regeneration, relevant regressions and storage/documentation/whitespace checks. Full suite deferred to the tenth-commit boundary. Original assets unchanged; native IO effects remain captured.
2432
+
2433
+ ## 2026-10-28 — RE-942 Original removal composed with export and survivor serialization
2434
+
2435
+ Thirty original253296/252304/252500 compositions verify first-match removal, retained row metadata/masks/count, diagnostics and exact survivor export bytes. A sole removed record leaves a nonzero count and therefore causes an empty file write. Duplicate survivors remain serialized in original order. Parse failures and misses never invoke export. Native console/file operations are captured; actual filesystem errors and reload semantics remain open. Focused `cargo xtask test-group qvm-filter-remove-export` passes with deterministic report regeneration, relevant regressions and storage/documentation/whitespace checks. Full suite deferred to the tenth-commit boundary. Original assets unchanged; native IO effects remain captured.
docs/REVERSE_ENGINEERING_TODO.md CHANGED
@@ -1898,3 +1898,5 @@ Purpose: turn the supplied installation into an evidence-backed specification of
1898
  - [x] RE-940 Original insertion composed with recovered export ([evidence](research/QVM_FILTER_INSERT_EXPORT.md)).
1899
 
1900
  - [x] RE-941 Rust insertion with recovered export composition ([evidence](research/RUST_FILTER_INSERT_EXPORT.md)).
 
 
 
1898
  - [x] RE-940 Original insertion composed with recovered export ([evidence](research/QVM_FILTER_INSERT_EXPORT.md)).
1899
 
1900
  - [x] RE-941 Rust insertion with recovered export composition ([evidence](research/RUST_FILTER_INSERT_EXPORT.md)).
1901
+
1902
+ - [x] RE-942 Original removal composed with export and survivor serialization ([evidence](research/QVM_FILTER_REMOVE_EXPORT.md)).
docs/research/QVM_FILTER_REMOVE_EXPORT.md ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # Original removal composed with export and survivor serialization
2
+
3
+ RE-942. Focused validation: `cargo xtask test-group qvm-filter-remove-export`. [Machine report](qvm-filter-remove-export.json).
4
+
5
+ Thirty original253296/252304/252500 compositions verify first-match removal, retained row metadata/masks/count, diagnostics and exact survivor export bytes. A sole removed record leaves a nonzero count and therefore causes an empty file write. Duplicate survivors remain serialized in original order. Parse failures and misses never invoke export. Native console/file operations are captured; actual filesystem errors and reload semantics remain open.
docs/research/README.md CHANGED
@@ -1433,3 +1433,5 @@ The extension collector adds five focused tests for native tail calls, command-r
1433
  - [RE-940: Original insertion composed with recovered export](QVM_FILTER_INSERT_EXPORT.md).
1434
 
1435
  - [RE-941: Rust insertion with recovered export composition](RUST_FILTER_INSERT_EXPORT.md).
 
 
 
1433
  - [RE-940: Original insertion composed with recovered export](QVM_FILTER_INSERT_EXPORT.md).
1434
 
1435
  - [RE-941: Rust insertion with recovered export composition](RUST_FILTER_INSERT_EXPORT.md).
1436
+
1437
+ - [RE-942: Original removal composed with export and survivor serialization](QVM_FILTER_REMOVE_EXPORT.md).
docs/research/qvm-filter-remove-export.json ADDED
@@ -0,0 +1,1485 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "limits": "Exact mask/comparison first-match scan; parser and integer children source-executed; native diagnostics and file IO captured. Native table provenance, malformed counts and unsafe parser tokens remain open.",
3
+ "probes": [
4
+ {
5
+ "changes": [],
6
+ "diagnostics": [
7
+ {
8
+ "op": "not-found",
9
+ "text": "312e322e332e34"
10
+ }
11
+ ],
12
+ "execution": {
13
+ "stop": 253380,
14
+ "trace_length": 33,
15
+ "trace_sha256": "5ec8276dcccff21f5d6d00c323d9518cd97a77ce7f2b3f3be8806459107d9440"
16
+ },
17
+ "exported": [],
18
+ "exports": [],
19
+ "input": {
20
+ "handle": 7,
21
+ "metadata": 0,
22
+ "rows": [],
23
+ "save": 0,
24
+ "text": "312e322e332e34"
25
+ },
26
+ "result": 0,
27
+ "rows": []
28
+ },
29
+ {
30
+ "changes": [],
31
+ "diagnostics": [
32
+ {
33
+ "op": "not-found",
34
+ "text": "312e2a"
35
+ }
36
+ ],
37
+ "execution": {
38
+ "stop": 253380,
39
+ "trace_length": 33,
40
+ "trace_sha256": "5ec8276dcccff21f5d6d00c323d9518cd97a77ce7f2b3f3be8806459107d9440"
41
+ },
42
+ "exported": [],
43
+ "exports": [],
44
+ "input": {
45
+ "handle": 7,
46
+ "metadata": 0,
47
+ "rows": [],
48
+ "save": 0,
49
+ "text": "312e2a"
50
+ },
51
+ "result": 0,
52
+ "rows": []
53
+ },
54
+ {
55
+ "changes": [],
56
+ "diagnostics": [
57
+ {
58
+ "op": "not-found",
59
+ "text": "2a"
60
+ }
61
+ ],
62
+ "execution": {
63
+ "stop": 253380,
64
+ "trace_length": 33,
65
+ "trace_sha256": "5ec8276dcccff21f5d6d00c323d9518cd97a77ce7f2b3f3be8806459107d9440"
66
+ },
67
+ "exported": [],
68
+ "exports": [],
69
+ "input": {
70
+ "handle": 7,
71
+ "metadata": 0,
72
+ "rows": [],
73
+ "save": 0,
74
+ "text": "2a"
75
+ },
76
+ "result": 0,
77
+ "rows": []
78
+ },
79
+ {
80
+ "changes": [],
81
+ "diagnostics": [
82
+ {
83
+ "op": "bad-address",
84
+ "text": "626164"
85
+ }
86
+ ],
87
+ "execution": {
88
+ "stop": 253312,
89
+ "trace_length": 15,
90
+ "trace_sha256": "4585d0dfd3ae6b60d316cb4ced7466e028bdcb045d0b352ee1ca2df5b244248d"
91
+ },
92
+ "exported": [],
93
+ "exports": [],
94
+ "input": {
95
+ "handle": 7,
96
+ "metadata": 0,
97
+ "rows": [],
98
+ "save": 0,
99
+ "text": "626164"
100
+ },
101
+ "result": 0,
102
+ "rows": []
103
+ },
104
+ {
105
+ "changes": [],
106
+ "diagnostics": [
107
+ {
108
+ "op": "not-found",
109
+ "text": "3235352e3235352e3235352e323535"
110
+ }
111
+ ],
112
+ "execution": {
113
+ "stop": 253380,
114
+ "trace_length": 33,
115
+ "trace_sha256": "5ec8276dcccff21f5d6d00c323d9518cd97a77ce7f2b3f3be8806459107d9440"
116
+ },
117
+ "exported": [],
118
+ "exports": [],
119
+ "input": {
120
+ "handle": 7,
121
+ "metadata": 0,
122
+ "rows": [],
123
+ "save": 0,
124
+ "text": "3235352e3235352e3235352e323535"
125
+ },
126
+ "result": 0,
127
+ "rows": []
128
+ },
129
+ {
130
+ "changes": [],
131
+ "diagnostics": [
132
+ {
133
+ "op": "bad-address",
134
+ "text": ""
135
+ }
136
+ ],
137
+ "execution": {
138
+ "stop": 253312,
139
+ "trace_length": 15,
140
+ "trace_sha256": "4585d0dfd3ae6b60d316cb4ced7466e028bdcb045d0b352ee1ca2df5b244248d"
141
+ },
142
+ "exported": [],
143
+ "exports": [],
144
+ "input": {
145
+ "handle": 7,
146
+ "metadata": 0,
147
+ "rows": [],
148
+ "save": 0,
149
+ "text": "312e"
150
+ },
151
+ "result": 0,
152
+ "rows": []
153
+ },
154
+ {
155
+ "changes": [
156
+ {
157
+ "address": 36275956,
158
+ "after": 4294967295,
159
+ "before": 67305985
160
+ },
161
+ {
162
+ "address": 36325104,
163
+ "after": 0,
164
+ "before": 1818326131
165
+ }
166
+ ],
167
+ "diagnostics": [
168
+ {
169
+ "op": "removed"
170
+ }
171
+ ],
172
+ "execution": {
173
+ "stop": 253357,
174
+ "trace_length": 61,
175
+ "trace_sha256": "13bb7eef03b8846c0562a52d8787005ca3203dac9f6f7b3101c3c1793f26cf2a"
176
+ },
177
+ "exported": [
178
+ {
179
+ "buffer": "",
180
+ "events": [
181
+ {
182
+ "op": "print",
183
+ "text": "57726974696e673a2062616e6c6973742e7478740a"
184
+ },
185
+ {
186
+ "mode": 1,
187
+ "op": "open",
188
+ "path": "62616e6c6973742e747874"
189
+ },
190
+ {
191
+ "handle": 7,
192
+ "op": "write",
193
+ "text": ""
194
+ },
195
+ {
196
+ "handle": 7,
197
+ "op": "close"
198
+ }
199
+ ],
200
+ "formats": []
201
+ }
202
+ ],
203
+ "exports": [
204
+ 252500
205
+ ],
206
+ "input": {
207
+ "handle": 7,
208
+ "metadata": 0,
209
+ "rows": [
210
+ [
211
+ 4294967295,
212
+ 67305985,
213
+ 9
214
+ ]
215
+ ],
216
+ "save": 0,
217
+ "text": "312e322e332e34"
218
+ },
219
+ "result": 1,
220
+ "rows": [
221
+ [
222
+ 4294967295,
223
+ 4294967295,
224
+ 9
225
+ ]
226
+ ]
227
+ },
228
+ {
229
+ "changes": [],
230
+ "diagnostics": [
231
+ {
232
+ "op": "not-found",
233
+ "text": "312e2a"
234
+ }
235
+ ],
236
+ "execution": {
237
+ "stop": 253380,
238
+ "trace_length": 54,
239
+ "trace_sha256": "82f219011dc1abe34f7c418409b4244671e550ca81c167d9d980eff5505b6fec"
240
+ },
241
+ "exported": [],
242
+ "exports": [],
243
+ "input": {
244
+ "handle": 7,
245
+ "metadata": 0,
246
+ "rows": [
247
+ [
248
+ 4294967295,
249
+ 67305985,
250
+ 9
251
+ ]
252
+ ],
253
+ "save": 0,
254
+ "text": "312e2a"
255
+ },
256
+ "result": 0,
257
+ "rows": [
258
+ [
259
+ 4294967295,
260
+ 67305985,
261
+ 9
262
+ ]
263
+ ]
264
+ },
265
+ {
266
+ "changes": [],
267
+ "diagnostics": [
268
+ {
269
+ "op": "not-found",
270
+ "text": "2a"
271
+ }
272
+ ],
273
+ "execution": {
274
+ "stop": 253380,
275
+ "trace_length": 54,
276
+ "trace_sha256": "82f219011dc1abe34f7c418409b4244671e550ca81c167d9d980eff5505b6fec"
277
+ },
278
+ "exported": [],
279
+ "exports": [],
280
+ "input": {
281
+ "handle": 7,
282
+ "metadata": 0,
283
+ "rows": [
284
+ [
285
+ 4294967295,
286
+ 67305985,
287
+ 9
288
+ ]
289
+ ],
290
+ "save": 0,
291
+ "text": "2a"
292
+ },
293
+ "result": 0,
294
+ "rows": [
295
+ [
296
+ 4294967295,
297
+ 67305985,
298
+ 9
299
+ ]
300
+ ]
301
+ },
302
+ {
303
+ "changes": [],
304
+ "diagnostics": [
305
+ {
306
+ "op": "bad-address",
307
+ "text": "626164"
308
+ }
309
+ ],
310
+ "execution": {
311
+ "stop": 253312,
312
+ "trace_length": 15,
313
+ "trace_sha256": "4585d0dfd3ae6b60d316cb4ced7466e028bdcb045d0b352ee1ca2df5b244248d"
314
+ },
315
+ "exported": [],
316
+ "exports": [],
317
+ "input": {
318
+ "handle": 7,
319
+ "metadata": 0,
320
+ "rows": [
321
+ [
322
+ 4294967295,
323
+ 67305985,
324
+ 9
325
+ ]
326
+ ],
327
+ "save": 0,
328
+ "text": "626164"
329
+ },
330
+ "result": 0,
331
+ "rows": [
332
+ [
333
+ 4294967295,
334
+ 67305985,
335
+ 9
336
+ ]
337
+ ]
338
+ },
339
+ {
340
+ "changes": [],
341
+ "diagnostics": [
342
+ {
343
+ "op": "not-found",
344
+ "text": "3235352e3235352e3235352e323535"
345
+ }
346
+ ],
347
+ "execution": {
348
+ "stop": 253380,
349
+ "trace_length": 64,
350
+ "trace_sha256": "88991c252b4388f362068ac8572f716844cf836f4acb6d9340a3759fe548a2cd"
351
+ },
352
+ "exported": [],
353
+ "exports": [],
354
+ "input": {
355
+ "handle": 7,
356
+ "metadata": 0,
357
+ "rows": [
358
+ [
359
+ 4294967295,
360
+ 67305985,
361
+ 9
362
+ ]
363
+ ],
364
+ "save": 0,
365
+ "text": "3235352e3235352e3235352e323535"
366
+ },
367
+ "result": 0,
368
+ "rows": [
369
+ [
370
+ 4294967295,
371
+ 67305985,
372
+ 9
373
+ ]
374
+ ]
375
+ },
376
+ {
377
+ "changes": [],
378
+ "diagnostics": [
379
+ {
380
+ "op": "bad-address",
381
+ "text": ""
382
+ }
383
+ ],
384
+ "execution": {
385
+ "stop": 253312,
386
+ "trace_length": 15,
387
+ "trace_sha256": "4585d0dfd3ae6b60d316cb4ced7466e028bdcb045d0b352ee1ca2df5b244248d"
388
+ },
389
+ "exported": [],
390
+ "exports": [],
391
+ "input": {
392
+ "handle": 7,
393
+ "metadata": 0,
394
+ "rows": [
395
+ [
396
+ 4294967295,
397
+ 67305985,
398
+ 9
399
+ ]
400
+ ],
401
+ "save": 0,
402
+ "text": "312e"
403
+ },
404
+ "result": 0,
405
+ "rows": [
406
+ [
407
+ 4294967295,
408
+ 67305985,
409
+ 9
410
+ ]
411
+ ]
412
+ },
413
+ {
414
+ "changes": [
415
+ {
416
+ "address": 36275956,
417
+ "after": 4294967295,
418
+ "before": 67305985
419
+ },
420
+ {
421
+ "address": 36325104,
422
+ "after": 775040561,
423
+ "before": 1818326131
424
+ }
425
+ ],
426
+ "diagnostics": [
427
+ {
428
+ "op": "removed"
429
+ }
430
+ ],
431
+ "execution": {
432
+ "stop": 253357,
433
+ "trace_length": 61,
434
+ "trace_sha256": "13bb7eef03b8846c0562a52d8787005ca3203dac9f6f7b3101c3c1793f26cf2a"
435
+ },
436
+ "exported": [
437
+ {
438
+ "buffer": "312e322e332e343a31300a",
439
+ "events": [
440
+ {
441
+ "op": "print",
442
+ "text": "57726974696e673a2062616e6c6973742e7478740a"
443
+ },
444
+ {
445
+ "mode": 1,
446
+ "op": "open",
447
+ "path": "62616e6c6973742e747874"
448
+ },
449
+ {
450
+ "handle": 7,
451
+ "op": "write",
452
+ "text": "312e322e332e343a31300a"
453
+ },
454
+ {
455
+ "handle": 7,
456
+ "op": "close"
457
+ }
458
+ ],
459
+ "formats": [
460
+ "312e322e332e343a31300a"
461
+ ]
462
+ }
463
+ ],
464
+ "exports": [
465
+ 252500
466
+ ],
467
+ "input": {
468
+ "handle": 7,
469
+ "metadata": 0,
470
+ "rows": [
471
+ [
472
+ 4294967295,
473
+ 67305985,
474
+ 9
475
+ ],
476
+ [
477
+ 4294967295,
478
+ 67305985,
479
+ 10
480
+ ]
481
+ ],
482
+ "save": 0,
483
+ "text": "312e322e332e34"
484
+ },
485
+ "result": 1,
486
+ "rows": [
487
+ [
488
+ 4294967295,
489
+ 4294967295,
490
+ 9
491
+ ],
492
+ [
493
+ 4294967295,
494
+ 67305985,
495
+ 10
496
+ ]
497
+ ]
498
+ },
499
+ {
500
+ "changes": [],
501
+ "diagnostics": [
502
+ {
503
+ "op": "not-found",
504
+ "text": "312e2a"
505
+ }
506
+ ],
507
+ "execution": {
508
+ "stop": 253380,
509
+ "trace_length": 75,
510
+ "trace_sha256": "4e6411971d70aff944003db02e357c7fd06a78d4f72d7034e48ab813bb66f9cd"
511
+ },
512
+ "exported": [],
513
+ "exports": [],
514
+ "input": {
515
+ "handle": 7,
516
+ "metadata": 0,
517
+ "rows": [
518
+ [
519
+ 4294967295,
520
+ 67305985,
521
+ 9
522
+ ],
523
+ [
524
+ 4294967295,
525
+ 67305985,
526
+ 10
527
+ ]
528
+ ],
529
+ "save": 0,
530
+ "text": "312e2a"
531
+ },
532
+ "result": 0,
533
+ "rows": [
534
+ [
535
+ 4294967295,
536
+ 67305985,
537
+ 9
538
+ ],
539
+ [
540
+ 4294967295,
541
+ 67305985,
542
+ 10
543
+ ]
544
+ ]
545
+ },
546
+ {
547
+ "changes": [],
548
+ "diagnostics": [
549
+ {
550
+ "op": "not-found",
551
+ "text": "2a"
552
+ }
553
+ ],
554
+ "execution": {
555
+ "stop": 253380,
556
+ "trace_length": 75,
557
+ "trace_sha256": "4e6411971d70aff944003db02e357c7fd06a78d4f72d7034e48ab813bb66f9cd"
558
+ },
559
+ "exported": [],
560
+ "exports": [],
561
+ "input": {
562
+ "handle": 7,
563
+ "metadata": 0,
564
+ "rows": [
565
+ [
566
+ 4294967295,
567
+ 67305985,
568
+ 9
569
+ ],
570
+ [
571
+ 4294967295,
572
+ 67305985,
573
+ 10
574
+ ]
575
+ ],
576
+ "save": 0,
577
+ "text": "2a"
578
+ },
579
+ "result": 0,
580
+ "rows": [
581
+ [
582
+ 4294967295,
583
+ 67305985,
584
+ 9
585
+ ],
586
+ [
587
+ 4294967295,
588
+ 67305985,
589
+ 10
590
+ ]
591
+ ]
592
+ },
593
+ {
594
+ "changes": [],
595
+ "diagnostics": [
596
+ {
597
+ "op": "bad-address",
598
+ "text": "626164"
599
+ }
600
+ ],
601
+ "execution": {
602
+ "stop": 253312,
603
+ "trace_length": 15,
604
+ "trace_sha256": "4585d0dfd3ae6b60d316cb4ced7466e028bdcb045d0b352ee1ca2df5b244248d"
605
+ },
606
+ "exported": [],
607
+ "exports": [],
608
+ "input": {
609
+ "handle": 7,
610
+ "metadata": 0,
611
+ "rows": [
612
+ [
613
+ 4294967295,
614
+ 67305985,
615
+ 9
616
+ ],
617
+ [
618
+ 4294967295,
619
+ 67305985,
620
+ 10
621
+ ]
622
+ ],
623
+ "save": 0,
624
+ "text": "626164"
625
+ },
626
+ "result": 0,
627
+ "rows": [
628
+ [
629
+ 4294967295,
630
+ 67305985,
631
+ 9
632
+ ],
633
+ [
634
+ 4294967295,
635
+ 67305985,
636
+ 10
637
+ ]
638
+ ]
639
+ },
640
+ {
641
+ "changes": [],
642
+ "diagnostics": [
643
+ {
644
+ "op": "not-found",
645
+ "text": "3235352e3235352e3235352e323535"
646
+ }
647
+ ],
648
+ "execution": {
649
+ "stop": 253380,
650
+ "trace_length": 95,
651
+ "trace_sha256": "74cc14c3b65f772fa1038a1ed3455229ea70d274bc68d3906d266781caed17fb"
652
+ },
653
+ "exported": [],
654
+ "exports": [],
655
+ "input": {
656
+ "handle": 7,
657
+ "metadata": 0,
658
+ "rows": [
659
+ [
660
+ 4294967295,
661
+ 67305985,
662
+ 9
663
+ ],
664
+ [
665
+ 4294967295,
666
+ 67305985,
667
+ 10
668
+ ]
669
+ ],
670
+ "save": 0,
671
+ "text": "3235352e3235352e3235352e323535"
672
+ },
673
+ "result": 0,
674
+ "rows": [
675
+ [
676
+ 4294967295,
677
+ 67305985,
678
+ 9
679
+ ],
680
+ [
681
+ 4294967295,
682
+ 67305985,
683
+ 10
684
+ ]
685
+ ]
686
+ },
687
+ {
688
+ "changes": [],
689
+ "diagnostics": [
690
+ {
691
+ "op": "bad-address",
692
+ "text": ""
693
+ }
694
+ ],
695
+ "execution": {
696
+ "stop": 253312,
697
+ "trace_length": 15,
698
+ "trace_sha256": "4585d0dfd3ae6b60d316cb4ced7466e028bdcb045d0b352ee1ca2df5b244248d"
699
+ },
700
+ "exported": [],
701
+ "exports": [],
702
+ "input": {
703
+ "handle": 7,
704
+ "metadata": 0,
705
+ "rows": [
706
+ [
707
+ 4294967295,
708
+ 67305985,
709
+ 9
710
+ ],
711
+ [
712
+ 4294967295,
713
+ 67305985,
714
+ 10
715
+ ]
716
+ ],
717
+ "save": 0,
718
+ "text": "312e"
719
+ },
720
+ "result": 0,
721
+ "rows": [
722
+ [
723
+ 4294967295,
724
+ 67305985,
725
+ 9
726
+ ],
727
+ [
728
+ 4294967295,
729
+ 67305985,
730
+ 10
731
+ ]
732
+ ]
733
+ },
734
+ {
735
+ "changes": [
736
+ {
737
+ "address": 36275968,
738
+ "after": 4294967295,
739
+ "before": 67305985
740
+ },
741
+ {
742
+ "address": 36325104,
743
+ "after": 774909489,
744
+ "before": 1818326131
745
+ }
746
+ ],
747
+ "diagnostics": [
748
+ {
749
+ "op": "removed"
750
+ }
751
+ ],
752
+ "execution": {
753
+ "stop": 253357,
754
+ "trace_length": 82,
755
+ "trace_sha256": "278e0610787c5a587cf4b4a08938b6243b582bae75f6a77575114e74b31ac52e"
756
+ },
757
+ "exported": [
758
+ {
759
+ "buffer": "312e302e302e303a31310a",
760
+ "events": [
761
+ {
762
+ "op": "print",
763
+ "text": "57726974696e673a2062616e6c6973742e7478740a"
764
+ },
765
+ {
766
+ "mode": 1,
767
+ "op": "open",
768
+ "path": "62616e6c6973742e747874"
769
+ },
770
+ {
771
+ "handle": 7,
772
+ "op": "write",
773
+ "text": "312e302e302e303a31310a"
774
+ },
775
+ {
776
+ "handle": 7,
777
+ "op": "close"
778
+ }
779
+ ],
780
+ "formats": [
781
+ "312e302e302e303a31310a"
782
+ ]
783
+ }
784
+ ],
785
+ "exports": [
786
+ 252500
787
+ ],
788
+ "input": {
789
+ "handle": 7,
790
+ "metadata": 0,
791
+ "rows": [
792
+ [
793
+ 255,
794
+ 1,
795
+ 11
796
+ ],
797
+ [
798
+ 4294967295,
799
+ 67305985,
800
+ 9
801
+ ]
802
+ ],
803
+ "save": 0,
804
+ "text": "312e322e332e34"
805
+ },
806
+ "result": 1,
807
+ "rows": [
808
+ [
809
+ 255,
810
+ 1,
811
+ 11
812
+ ],
813
+ [
814
+ 4294967295,
815
+ 4294967295,
816
+ 9
817
+ ]
818
+ ]
819
+ },
820
+ {
821
+ "changes": [
822
+ {
823
+ "address": 36275956,
824
+ "after": 4294967295,
825
+ "before": 1
826
+ },
827
+ {
828
+ "address": 36325104,
829
+ "after": 775040561,
830
+ "before": 1818326131
831
+ }
832
+ ],
833
+ "diagnostics": [
834
+ {
835
+ "op": "removed"
836
+ }
837
+ ],
838
+ "execution": {
839
+ "stop": 253357,
840
+ "trace_length": 61,
841
+ "trace_sha256": "13bb7eef03b8846c0562a52d8787005ca3203dac9f6f7b3101c3c1793f26cf2a"
842
+ },
843
+ "exported": [
844
+ {
845
+ "buffer": "312e322e332e343a390a",
846
+ "events": [
847
+ {
848
+ "op": "print",
849
+ "text": "57726974696e673a2062616e6c6973742e7478740a"
850
+ },
851
+ {
852
+ "mode": 1,
853
+ "op": "open",
854
+ "path": "62616e6c6973742e747874"
855
+ },
856
+ {
857
+ "handle": 7,
858
+ "op": "write",
859
+ "text": "312e322e332e343a390a"
860
+ },
861
+ {
862
+ "handle": 7,
863
+ "op": "close"
864
+ }
865
+ ],
866
+ "formats": [
867
+ "312e322e332e343a390a"
868
+ ]
869
+ }
870
+ ],
871
+ "exports": [
872
+ 252500
873
+ ],
874
+ "input": {
875
+ "handle": 7,
876
+ "metadata": 0,
877
+ "rows": [
878
+ [
879
+ 255,
880
+ 1,
881
+ 11
882
+ ],
883
+ [
884
+ 4294967295,
885
+ 67305985,
886
+ 9
887
+ ]
888
+ ],
889
+ "save": 0,
890
+ "text": "312e2a"
891
+ },
892
+ "result": 1,
893
+ "rows": [
894
+ [
895
+ 255,
896
+ 4294967295,
897
+ 11
898
+ ],
899
+ [
900
+ 4294967295,
901
+ 67305985,
902
+ 9
903
+ ]
904
+ ]
905
+ },
906
+ {
907
+ "changes": [],
908
+ "diagnostics": [
909
+ {
910
+ "op": "not-found",
911
+ "text": "2a"
912
+ }
913
+ ],
914
+ "execution": {
915
+ "stop": 253380,
916
+ "trace_length": 75,
917
+ "trace_sha256": "4e6411971d70aff944003db02e357c7fd06a78d4f72d7034e48ab813bb66f9cd"
918
+ },
919
+ "exported": [],
920
+ "exports": [],
921
+ "input": {
922
+ "handle": 7,
923
+ "metadata": 0,
924
+ "rows": [
925
+ [
926
+ 255,
927
+ 1,
928
+ 11
929
+ ],
930
+ [
931
+ 4294967295,
932
+ 67305985,
933
+ 9
934
+ ]
935
+ ],
936
+ "save": 0,
937
+ "text": "2a"
938
+ },
939
+ "result": 0,
940
+ "rows": [
941
+ [
942
+ 255,
943
+ 1,
944
+ 11
945
+ ],
946
+ [
947
+ 4294967295,
948
+ 67305985,
949
+ 9
950
+ ]
951
+ ]
952
+ },
953
+ {
954
+ "changes": [],
955
+ "diagnostics": [
956
+ {
957
+ "op": "bad-address",
958
+ "text": "626164"
959
+ }
960
+ ],
961
+ "execution": {
962
+ "stop": 253312,
963
+ "trace_length": 15,
964
+ "trace_sha256": "4585d0dfd3ae6b60d316cb4ced7466e028bdcb045d0b352ee1ca2df5b244248d"
965
+ },
966
+ "exported": [],
967
+ "exports": [],
968
+ "input": {
969
+ "handle": 7,
970
+ "metadata": 0,
971
+ "rows": [
972
+ [
973
+ 255,
974
+ 1,
975
+ 11
976
+ ],
977
+ [
978
+ 4294967295,
979
+ 67305985,
980
+ 9
981
+ ]
982
+ ],
983
+ "save": 0,
984
+ "text": "626164"
985
+ },
986
+ "result": 0,
987
+ "rows": [
988
+ [
989
+ 255,
990
+ 1,
991
+ 11
992
+ ],
993
+ [
994
+ 4294967295,
995
+ 67305985,
996
+ 9
997
+ ]
998
+ ]
999
+ },
1000
+ {
1001
+ "changes": [],
1002
+ "diagnostics": [
1003
+ {
1004
+ "op": "not-found",
1005
+ "text": "3235352e3235352e3235352e323535"
1006
+ }
1007
+ ],
1008
+ "execution": {
1009
+ "stop": 253380,
1010
+ "trace_length": 85,
1011
+ "trace_sha256": "c33d637d615d95807baf47d84327e0b5b96018069bdf3367a43bb00400674e8c"
1012
+ },
1013
+ "exported": [],
1014
+ "exports": [],
1015
+ "input": {
1016
+ "handle": 7,
1017
+ "metadata": 0,
1018
+ "rows": [
1019
+ [
1020
+ 255,
1021
+ 1,
1022
+ 11
1023
+ ],
1024
+ [
1025
+ 4294967295,
1026
+ 67305985,
1027
+ 9
1028
+ ]
1029
+ ],
1030
+ "save": 0,
1031
+ "text": "3235352e3235352e3235352e323535"
1032
+ },
1033
+ "result": 0,
1034
+ "rows": [
1035
+ [
1036
+ 255,
1037
+ 1,
1038
+ 11
1039
+ ],
1040
+ [
1041
+ 4294967295,
1042
+ 67305985,
1043
+ 9
1044
+ ]
1045
+ ]
1046
+ },
1047
+ {
1048
+ "changes": [],
1049
+ "diagnostics": [
1050
+ {
1051
+ "op": "bad-address",
1052
+ "text": ""
1053
+ }
1054
+ ],
1055
+ "execution": {
1056
+ "stop": 253312,
1057
+ "trace_length": 15,
1058
+ "trace_sha256": "4585d0dfd3ae6b60d316cb4ced7466e028bdcb045d0b352ee1ca2df5b244248d"
1059
+ },
1060
+ "exported": [],
1061
+ "exports": [],
1062
+ "input": {
1063
+ "handle": 7,
1064
+ "metadata": 0,
1065
+ "rows": [
1066
+ [
1067
+ 255,
1068
+ 1,
1069
+ 11
1070
+ ],
1071
+ [
1072
+ 4294967295,
1073
+ 67305985,
1074
+ 9
1075
+ ]
1076
+ ],
1077
+ "save": 0,
1078
+ "text": "312e"
1079
+ },
1080
+ "result": 0,
1081
+ "rows": [
1082
+ [
1083
+ 255,
1084
+ 1,
1085
+ 11
1086
+ ],
1087
+ [
1088
+ 4294967295,
1089
+ 67305985,
1090
+ 9
1091
+ ]
1092
+ ]
1093
+ },
1094
+ {
1095
+ "changes": [],
1096
+ "diagnostics": [
1097
+ {
1098
+ "op": "not-found",
1099
+ "text": "312e322e332e34"
1100
+ }
1101
+ ],
1102
+ "execution": {
1103
+ "stop": 253380,
1104
+ "trace_length": 85,
1105
+ "trace_sha256": "b948e5ab076a4902eb8a061d6f4d419cd8496d65cbff8c254d8d5306a7cbde12"
1106
+ },
1107
+ "exported": [],
1108
+ "exports": [],
1109
+ "input": {
1110
+ "handle": 7,
1111
+ "metadata": 0,
1112
+ "rows": [
1113
+ [
1114
+ 4294967295,
1115
+ 4294967295,
1116
+ 12
1117
+ ],
1118
+ [
1119
+ 0,
1120
+ 0,
1121
+ 13
1122
+ ]
1123
+ ],
1124
+ "save": 0,
1125
+ "text": "312e322e332e34"
1126
+ },
1127
+ "result": 0,
1128
+ "rows": [
1129
+ [
1130
+ 4294967295,
1131
+ 4294967295,
1132
+ 12
1133
+ ],
1134
+ [
1135
+ 0,
1136
+ 0,
1137
+ 13
1138
+ ]
1139
+ ]
1140
+ },
1141
+ {
1142
+ "changes": [],
1143
+ "diagnostics": [
1144
+ {
1145
+ "op": "not-found",
1146
+ "text": "312e2a"
1147
+ }
1148
+ ],
1149
+ "execution": {
1150
+ "stop": 253380,
1151
+ "trace_length": 75,
1152
+ "trace_sha256": "4e6411971d70aff944003db02e357c7fd06a78d4f72d7034e48ab813bb66f9cd"
1153
+ },
1154
+ "exported": [],
1155
+ "exports": [],
1156
+ "input": {
1157
+ "handle": 7,
1158
+ "metadata": 0,
1159
+ "rows": [
1160
+ [
1161
+ 4294967295,
1162
+ 4294967295,
1163
+ 12
1164
+ ],
1165
+ [
1166
+ 0,
1167
+ 0,
1168
+ 13
1169
+ ]
1170
+ ],
1171
+ "save": 0,
1172
+ "text": "312e2a"
1173
+ },
1174
+ "result": 0,
1175
+ "rows": [
1176
+ [
1177
+ 4294967295,
1178
+ 4294967295,
1179
+ 12
1180
+ ],
1181
+ [
1182
+ 0,
1183
+ 0,
1184
+ 13
1185
+ ]
1186
+ ]
1187
+ },
1188
+ {
1189
+ "changes": [
1190
+ {
1191
+ "address": 36275968,
1192
+ "after": 4294967295,
1193
+ "before": 0
1194
+ },
1195
+ {
1196
+ "address": 36325104,
1197
+ "after": 0,
1198
+ "before": 1818326131
1199
+ }
1200
+ ],
1201
+ "diagnostics": [
1202
+ {
1203
+ "op": "removed"
1204
+ }
1205
+ ],
1206
+ "execution": {
1207
+ "stop": 253357,
1208
+ "trace_length": 82,
1209
+ "trace_sha256": "278e0610787c5a587cf4b4a08938b6243b582bae75f6a77575114e74b31ac52e"
1210
+ },
1211
+ "exported": [
1212
+ {
1213
+ "buffer": "",
1214
+ "events": [
1215
+ {
1216
+ "op": "print",
1217
+ "text": "57726974696e673a2062616e6c6973742e7478740a"
1218
+ },
1219
+ {
1220
+ "mode": 1,
1221
+ "op": "open",
1222
+ "path": "62616e6c6973742e747874"
1223
+ },
1224
+ {
1225
+ "handle": 7,
1226
+ "op": "write",
1227
+ "text": ""
1228
+ },
1229
+ {
1230
+ "handle": 7,
1231
+ "op": "close"
1232
+ }
1233
+ ],
1234
+ "formats": []
1235
+ }
1236
+ ],
1237
+ "exports": [
1238
+ 252500
1239
+ ],
1240
+ "input": {
1241
+ "handle": 7,
1242
+ "metadata": 0,
1243
+ "rows": [
1244
+ [
1245
+ 4294967295,
1246
+ 4294967295,
1247
+ 12
1248
+ ],
1249
+ [
1250
+ 0,
1251
+ 0,
1252
+ 13
1253
+ ]
1254
+ ],
1255
+ "save": 0,
1256
+ "text": "2a"
1257
+ },
1258
+ "result": 1,
1259
+ "rows": [
1260
+ [
1261
+ 4294967295,
1262
+ 4294967295,
1263
+ 12
1264
+ ],
1265
+ [
1266
+ 0,
1267
+ 4294967295,
1268
+ 13
1269
+ ]
1270
+ ]
1271
+ },
1272
+ {
1273
+ "changes": [],
1274
+ "diagnostics": [
1275
+ {
1276
+ "op": "bad-address",
1277
+ "text": "626164"
1278
+ }
1279
+ ],
1280
+ "execution": {
1281
+ "stop": 253312,
1282
+ "trace_length": 15,
1283
+ "trace_sha256": "4585d0dfd3ae6b60d316cb4ced7466e028bdcb045d0b352ee1ca2df5b244248d"
1284
+ },
1285
+ "exported": [],
1286
+ "exports": [],
1287
+ "input": {
1288
+ "handle": 7,
1289
+ "metadata": 0,
1290
+ "rows": [
1291
+ [
1292
+ 4294967295,
1293
+ 4294967295,
1294
+ 12
1295
+ ],
1296
+ [
1297
+ 0,
1298
+ 0,
1299
+ 13
1300
+ ]
1301
+ ],
1302
+ "save": 0,
1303
+ "text": "626164"
1304
+ },
1305
+ "result": 0,
1306
+ "rows": [
1307
+ [
1308
+ 4294967295,
1309
+ 4294967295,
1310
+ 12
1311
+ ],
1312
+ [
1313
+ 0,
1314
+ 0,
1315
+ 13
1316
+ ]
1317
+ ]
1318
+ },
1319
+ {
1320
+ "changes": [
1321
+ {
1322
+ "address": 36325104,
1323
+ "after": 774909488,
1324
+ "before": 1818326131
1325
+ }
1326
+ ],
1327
+ "diagnostics": [
1328
+ {
1329
+ "op": "removed"
1330
+ }
1331
+ ],
1332
+ "execution": {
1333
+ "stop": 253357,
1334
+ "trace_length": 61,
1335
+ "trace_sha256": "13bb7eef03b8846c0562a52d8787005ca3203dac9f6f7b3101c3c1793f26cf2a"
1336
+ },
1337
+ "exported": [
1338
+ {
1339
+ "buffer": "302e302e302e303a31330a",
1340
+ "events": [
1341
+ {
1342
+ "op": "print",
1343
+ "text": "57726974696e673a2062616e6c6973742e7478740a"
1344
+ },
1345
+ {
1346
+ "mode": 1,
1347
+ "op": "open",
1348
+ "path": "62616e6c6973742e747874"
1349
+ },
1350
+ {
1351
+ "handle": 7,
1352
+ "op": "write",
1353
+ "text": "302e302e302e303a31330a"
1354
+ },
1355
+ {
1356
+ "handle": 7,
1357
+ "op": "close"
1358
+ }
1359
+ ],
1360
+ "formats": [
1361
+ "302e302e302e303a31330a"
1362
+ ]
1363
+ }
1364
+ ],
1365
+ "exports": [
1366
+ 252500
1367
+ ],
1368
+ "input": {
1369
+ "handle": 7,
1370
+ "metadata": 0,
1371
+ "rows": [
1372
+ [
1373
+ 4294967295,
1374
+ 4294967295,
1375
+ 12
1376
+ ],
1377
+ [
1378
+ 0,
1379
+ 0,
1380
+ 13
1381
+ ]
1382
+ ],
1383
+ "save": 0,
1384
+ "text": "3235352e3235352e3235352e323535"
1385
+ },
1386
+ "result": 1,
1387
+ "rows": [
1388
+ [
1389
+ 4294967295,
1390
+ 4294967295,
1391
+ 12
1392
+ ],
1393
+ [
1394
+ 0,
1395
+ 0,
1396
+ 13
1397
+ ]
1398
+ ]
1399
+ },
1400
+ {
1401
+ "changes": [],
1402
+ "diagnostics": [
1403
+ {
1404
+ "op": "bad-address",
1405
+ "text": ""
1406
+ }
1407
+ ],
1408
+ "execution": {
1409
+ "stop": 253312,
1410
+ "trace_length": 15,
1411
+ "trace_sha256": "4585d0dfd3ae6b60d316cb4ced7466e028bdcb045d0b352ee1ca2df5b244248d"
1412
+ },
1413
+ "exported": [],
1414
+ "exports": [],
1415
+ "input": {
1416
+ "handle": 7,
1417
+ "metadata": 0,
1418
+ "rows": [
1419
+ [
1420
+ 4294967295,
1421
+ 4294967295,
1422
+ 12
1423
+ ],
1424
+ [
1425
+ 0,
1426
+ 0,
1427
+ 13
1428
+ ]
1429
+ ],
1430
+ "save": 0,
1431
+ "text": "312e"
1432
+ },
1433
+ "result": 0,
1434
+ "rows": [
1435
+ [
1436
+ 4294967295,
1437
+ 4294967295,
1438
+ 12
1439
+ ],
1440
+ [
1441
+ 0,
1442
+ 0,
1443
+ 13
1444
+ ]
1445
+ ]
1446
+ }
1447
+ ],
1448
+ "root": 253296,
1449
+ "sha256": "a589351dfe517470a1b121dd2164714987d9e4577bf00c6486e1540035d7a79d",
1450
+ "source": {
1451
+ "archive": "zUrT43_qvm.pk3",
1452
+ "archive_sha256": "b59bf0c5bedf11d50e0edd220da7eade96de40601e98ae14c54c819047df0796",
1453
+ "member": {
1454
+ "bytes": 983300,
1455
+ "comment_hex": "",
1456
+ "compressed_bytes": 246560,
1457
+ "compression": 8,
1458
+ "crc32": "98ea1768",
1459
+ "create_system": 0,
1460
+ "create_version": 63,
1461
+ "date_time": [
1462
+ 2018,
1463
+ 6,
1464
+ 18,
1465
+ 22,
1466
+ 11,
1467
+ 50
1468
+ ],
1469
+ "directory": false,
1470
+ "entry_index": 2,
1471
+ "external_attr": 32,
1472
+ "extra_hex": "0a0020000000000001001800d1e24e974007d40116dcbf962f1fd20116dcbf962f1fd201",
1473
+ "extract_version": 20,
1474
+ "flags": 0,
1475
+ "header_offset": 221309,
1476
+ "internal_attr": 0,
1477
+ "occurrence": 0,
1478
+ "output": "assets/extracted/zUrT43_qvm.pk3/members/000002/vm/qagame.qvm",
1479
+ "path": "vm/qagame.qvm",
1480
+ "sha256": "a589351dfe517470a1b121dd2164714987d9e4577bf00c6486e1540035d7a79d",
1481
+ "type": "member",
1482
+ "volume": 0
1483
+ }
1484
+ }
1485
+ }
scripts/analyze_qvm_filter_remove_export.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Execute recovered filter mutation and its explicit child boundaries."""
2
+ from pathlib import Path
3
+ from analyze_qvm import write_json
4
+ from qvm_research_support import source
5
+ from qvm_filter_persistence_support import environment,mutate,mutation_fixtures
6
+ from qvm_filter_update_support import snapshot
7
+
8
+ def main():
9
+ q,raw,h,ins=source();probes=[]
10
+ for a in mutation_fixtures('remove'):
11
+ m,b=environment(raw,h,a['rows']);m,p,b=mutate(ins,m,b,bytes.fromhex(a['text']),'remove',a['metadata'],a['save'],True,a['handle']);p.update(input=a,rows=snapshot(m,len(a['rows'])));probes.append(p)
12
+ write_json(Path('docs/research/qvm-filter-remove-export.json'),dict(source=q['source'],sha256=q['sha256'],root=253296,probes=probes,limits='Exact mask/comparison first-match scan; parser and integer children source-executed; native diagnostics and file IO captured. Native table provenance, malformed counts and unsafe parser tokens remain open.'))
13
+ if __name__=='__main__':main()
scripts/test_qvm_filter_remove_export.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json,unittest
2
+ from pathlib import Path
3
+ from qvm_filter_persistence_support import mutation_oracle
4
+ class MutationTests(unittest.TestCase):
5
+ def test_source_mutation_and_effects(self):
6
+ rows=json.loads(Path('docs/research/qvm-filter-remove-export.json').read_text())['probes'];self.assertEqual(len(rows),30)
7
+ for p in rows:
8
+ for k,v in mutation_oracle(p['input'],'remove',True).items():self.assertEqual(p[k],v)
9
+ def test_duplicates_and_hole_sentinel(self):
10
+ a=dict(rows=[[0xffffffff,0x04030201,9],[0xffffffff,0x04030201,10]],text=b'1.2.3.4'.hex(),metadata=42,save=1,handle=7)
11
+ p=mutation_oracle(a,'remove',True);self.assertEqual(p['rows'][1],a['rows'][1]);self.assertEqual(p['result'],1)
12
+ a.update(rows=[[0xffffffff,0xffffffff,9]],text=b'255.255.255.255'.hex());self.assertEqual(mutation_oracle(a,'remove',True)['result'],1)
13
+ if __name__=='__main__':unittest.main()
xtask/checks.tsv CHANGED
@@ -3179,3 +3179,7 @@ edge docs/research/qvm-filter-insert-export.json scripts/analyze_rust_filter_ins
3179
  group rust-filter-insert-export scripts/analyze_rust_health_impulse.py
3180
  group gameplay scripts/analyze_rust_filter_insert_export.py
3181
  edge crates/urt-gameplay/src/qvm_format.rs scripts/analyze_rust_filter_insert_export.py
 
 
 
 
 
3179
  group rust-filter-insert-export scripts/analyze_rust_health_impulse.py
3180
  group gameplay scripts/analyze_rust_filter_insert_export.py
3181
  edge crates/urt-gameplay/src/qvm_format.rs scripts/analyze_rust_filter_insert_export.py
3182
+ report scripts/analyze_qvm_filter_remove_export.py docs/research/qvm-filter-remove-export.json
3183
+ edge docs/research/qvm-filter-remove-export.json scripts/test_qvm_filter_remove_export.py
3184
+ group qvm-filter-remove-export scripts/analyze_qvm_filter_remove_export.py
3185
+ edge scripts/analyze_qvm_filter_remove_export.py scripts/analyze_qvm_resumer_audit.py