physicsrob commited on
Commit
1bedcfb
·
verified ·
1 Parent(s): 3e5aad7

Publish E1M1 70-layer seed-3 bundle

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +1 -0
  2. README.md +61 -0
  3. config.json +48 -0
  4. doom_bundle_manifest.json +368 -0
  5. doom_palette.json +1285 -0
  6. doom_tables.json +297 -0
  7. doom_vocab.json +3 -0
  8. examples/e1m1_prompt.txt +1 -0
  9. generation_config.json +8 -0
  10. infer.py +302 -0
  11. model-00001-of-00071.safetensors +3 -0
  12. model-00002-of-00071.safetensors +3 -0
  13. model-00003-of-00071.safetensors +3 -0
  14. model-00004-of-00071.safetensors +3 -0
  15. model-00005-of-00071.safetensors +3 -0
  16. model-00006-of-00071.safetensors +3 -0
  17. model-00007-of-00071.safetensors +3 -0
  18. model-00008-of-00071.safetensors +3 -0
  19. model-00009-of-00071.safetensors +3 -0
  20. model-00010-of-00071.safetensors +3 -0
  21. model-00011-of-00071.safetensors +3 -0
  22. model-00012-of-00071.safetensors +3 -0
  23. model-00013-of-00071.safetensors +3 -0
  24. model-00014-of-00071.safetensors +3 -0
  25. model-00015-of-00071.safetensors +3 -0
  26. model-00016-of-00071.safetensors +3 -0
  27. model-00017-of-00071.safetensors +3 -0
  28. model-00018-of-00071.safetensors +3 -0
  29. model-00019-of-00071.safetensors +3 -0
  30. model-00020-of-00071.safetensors +3 -0
  31. model-00021-of-00071.safetensors +3 -0
  32. model-00022-of-00071.safetensors +3 -0
  33. model-00023-of-00071.safetensors +3 -0
  34. model-00024-of-00071.safetensors +3 -0
  35. model-00025-of-00071.safetensors +3 -0
  36. model-00026-of-00071.safetensors +3 -0
  37. model-00027-of-00071.safetensors +3 -0
  38. model-00028-of-00071.safetensors +3 -0
  39. model-00029-of-00071.safetensors +3 -0
  40. model-00030-of-00071.safetensors +3 -0
  41. model-00031-of-00071.safetensors +3 -0
  42. model-00032-of-00071.safetensors +3 -0
  43. model-00033-of-00071.safetensors +3 -0
  44. model-00034-of-00071.safetensors +3 -0
  45. model-00035-of-00071.safetensors +3 -0
  46. model-00036-of-00071.safetensors +3 -0
  47. model-00037-of-00071.safetensors +3 -0
  48. model-00038-of-00071.safetensors +3 -0
  49. model-00039-of-00071.safetensors +3 -0
  50. model-00040-of-00071.safetensors +3 -0
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ doom_vocab.json filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: transformers
3
+ pipeline_tag: text-generation
4
+ ---
5
+
6
+ # TorchWright Doom — E1M1
7
+
8
+ This is a stock Hugging Face `Phi3ForCausalLM` that renders DOOM through
9
+ ordinary autoregressive inference. The model and the data-only fast tokenizer
10
+ load through the ordinary Transformers text-generation pipeline without
11
+ remote code.
12
+
13
+ The bundled `examples/e1m1_prompt.txt` is the executable prompt. Run
14
+ `infer.py` (at the bundle root) to produce canonical emitted row ids and raw
15
+ tokenizer text. `tools/pretty_text.py` formats that text for reading, while
16
+ `tools/txt_to_png.py` independently decodes its cursor/pixel protocol into a
17
+ PNG — every cursor move and pixel in that protocol is a model-emitted token.
18
+ The protocol is specified in `PROTOCOL.md` in the source repo. Neither
19
+ post-processing tool participates in inference or performs geometry,
20
+ visibility, lighting, texture selection, or sorting.
21
+
22
+ Ordinary Transformers pipeline inference works directly, with no custom or
23
+ remote model code:
24
+
25
+ ```python
26
+ from pathlib import Path
27
+ from huggingface_hub import hf_hub_download
28
+ from transformers import pipeline
29
+
30
+ repo = "physicsrob/torchwright-doom-e1m1-80x50"
31
+ prompt = Path(hf_hub_download(repo, "examples/e1m1_prompt.txt")).read_text()
32
+ generate = pipeline("text-generation", model=repo, device_map="auto")
33
+ generated_text = generate(prompt, return_full_text=False)[0]["generated_text"]
34
+ ```
35
+
36
+ The saved generation defaults are greedy and cover the complete frame. Use
37
+ the shipped `infer.py` when canonical integer row IDs, progress reporting, and
38
+ the exact terminal-token-preserving raw text are required.
39
+
40
+ Published checkpoints: [320×200](https://huggingface.co/physicsrob/torchwright-doom-e1m1)
41
+ and [80×50](https://huggingface.co/physicsrob/torchwright-doom-e1m1-80x50).
42
+ The compiler-facing source is
43
+ [torchwright_doom](https://github.com/physicsrob/torchwright_doom).
44
+
45
+ **This bundle:** screen 80×50, map
46
+ E1M1, dense fp32 sharded safetensors, eager attention (the validated
47
+ implementation), greedy decode, generation bound
48
+ 8000 new tokens.
49
+
50
+ **What running it takes:** the fp32 weight shards total
51
+ 31.75 GiB (34.09 GB). A complete 7,007-token
52
+ pipeline render peaked at 43.48 GiB reserved on one A100-80GB. At the
53
+ configured generation cap, the stock KV cache is
54
+ bounded at 12.41 GiB; one full layer's cache-growth copy adds
55
+ 0.18 GiB. This targets 64 GiB of total accelerator memory: one
56
+ 64-GiB-class device, or two 32-GiB consumer GPUs with `device_map="auto"`.
57
+ The shipped `infer.py` records the allocator's measured peak in
58
+ `output.ids.json`.
59
+
60
+ Canonical numbers and their provenance: `FACTS.md` in the source repo
61
+ (github.com/physicsrob/torchwright_doom).
config.json ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "Phi3ForCausalLM"
4
+ ],
5
+ "attention_dropout": 0.0,
6
+ "attn_implementation": "eager",
7
+ "bos_token_id": 93376,
8
+ "doom_screen_config": {
9
+ "detail": "low",
10
+ "height": 50,
11
+ "hud": true,
12
+ "scale": 4,
13
+ "width": 80
14
+ },
15
+ "doom_vocab_fingerprint": "ee25bcb4bd51bc5d62910c933953a7294847725a2d1754ec1e49ed53f4285ba1",
16
+ "embd_pdrop": 0.0,
17
+ "eos_token_id": 93309,
18
+ "head_dim": 128,
19
+ "hidden_act": "silu",
20
+ "hidden_size": 4096,
21
+ "initializer_range": 0.02,
22
+ "intermediate_size": 6732,
23
+ "max_position_embeddings": 16384,
24
+ "model_type": "phi3",
25
+ "num_attention_heads": 16,
26
+ "num_hidden_layers": 70,
27
+ "num_key_value_heads": 16,
28
+ "original_max_position_embeddings": 16384,
29
+ "pad_token_id": 93309,
30
+ "resid_pdrop": 0.0,
31
+ "rms_norm_eps": 1e-05,
32
+ "rope_parameters": {
33
+ "partial_rotary_factor": 0.5,
34
+ "rope_theta": 500000.0,
35
+ "rope_type": "default"
36
+ },
37
+ "sliding_window": null,
38
+ "task_specific_params": {
39
+ "text-generation": {
40
+ "do_sample": false,
41
+ "max_new_tokens": 8000
42
+ }
43
+ },
44
+ "tie_word_embeddings": true,
45
+ "transformers_version": "5.13.1",
46
+ "use_cache": true,
47
+ "vocab_size": 93378
48
+ }
doom_bundle_manifest.json ADDED
@@ -0,0 +1,368 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architecture": "Phi3ForCausalLM",
3
+ "artifact_kind": "hf_phi3_bundle",
4
+ "bos_token_id": 93376,
5
+ "bundle_identity": "torchwright_doom.phi3.v1:9e5152cdc4fab42c52d32e4f1ae99a9f8e3404a1833cc687b4a00736dbb347bd",
6
+ "compile": {
7
+ "n_layers": 70,
8
+ "solver_seed": 3,
9
+ "solver_workers": 16
10
+ },
11
+ "compile_payload_sha256": "9e5152cdc4fab42c52d32e4f1ae99a9f8e3404a1833cc687b4a00736dbb347bd",
12
+ "dtype": "float32",
13
+ "eos_token_id": 93309,
14
+ "files": {
15
+ "README.md": {
16
+ "sha256": "f914138a8e3ce8c487a9a6a4daff98c707a48d0b7215cb5446520a5897034af3",
17
+ "size": 2661
18
+ },
19
+ "config.json": {
20
+ "sha256": "b25c90d1a700999be69165b3263a8f2aa5e0d3a558424afaf807cf7690aae696",
21
+ "size": 1158
22
+ },
23
+ "doom_palette.json": {
24
+ "sha256": "e6a86012014e059fa3dcd22ee185a23d5eac6976fbc59debbdded09fd885f287",
25
+ "size": 11084
26
+ },
27
+ "doom_tables.json": {
28
+ "sha256": "e19c8d0996f7f92d17ed99687990e930f6b0e1c55da123e190916694c36e4d35",
29
+ "size": 4329
30
+ },
31
+ "doom_vocab.json": {
32
+ "sha256": "b97a6bb4593e2c52e73aefe1607cf9e54e803df7162d2f94281a2bfc0b559e81",
33
+ "size": 29582438
34
+ },
35
+ "examples/e1m1_prompt.txt": {
36
+ "sha256": "00304544ff8128be35068d0fc5b4522817f103259d7a9be26d1591c08ad19322",
37
+ "size": 53014
38
+ },
39
+ "generation_config.json": {
40
+ "sha256": "26b46caa597ffca856e3ccc3a4bf5586086c7fd8c01894de208b54d5be3e0247",
41
+ "size": 162
42
+ },
43
+ "infer.py": {
44
+ "sha256": "a99be58f8d1596e6e2584d926896ee5f0d42951e7d3705b6f7a6fa7788b9f145",
45
+ "size": 12361
46
+ },
47
+ "model-00001-of-00071.safetensors": {
48
+ "size": 465109456
49
+ },
50
+ "model-00002-of-00071.safetensors": {
51
+ "size": 465109456
52
+ },
53
+ "model-00003-of-00071.safetensors": {
54
+ "size": 465109456
55
+ },
56
+ "model-00004-of-00071.safetensors": {
57
+ "size": 465109456
58
+ },
59
+ "model-00005-of-00071.safetensors": {
60
+ "size": 465109456
61
+ },
62
+ "model-00006-of-00071.safetensors": {
63
+ "size": 465109456
64
+ },
65
+ "model-00007-of-00071.safetensors": {
66
+ "size": 465109456
67
+ },
68
+ "model-00008-of-00071.safetensors": {
69
+ "size": 465109456
70
+ },
71
+ "model-00009-of-00071.safetensors": {
72
+ "size": 465109456
73
+ },
74
+ "model-00010-of-00071.safetensors": {
75
+ "size": 465109456
76
+ },
77
+ "model-00011-of-00071.safetensors": {
78
+ "size": 465109456
79
+ },
80
+ "model-00012-of-00071.safetensors": {
81
+ "size": 465109456
82
+ },
83
+ "model-00013-of-00071.safetensors": {
84
+ "size": 465109456
85
+ },
86
+ "model-00014-of-00071.safetensors": {
87
+ "size": 465109456
88
+ },
89
+ "model-00015-of-00071.safetensors": {
90
+ "size": 465109456
91
+ },
92
+ "model-00016-of-00071.safetensors": {
93
+ "size": 465109456
94
+ },
95
+ "model-00017-of-00071.safetensors": {
96
+ "size": 465109456
97
+ },
98
+ "model-00018-of-00071.safetensors": {
99
+ "size": 465109456
100
+ },
101
+ "model-00019-of-00071.safetensors": {
102
+ "size": 465109456
103
+ },
104
+ "model-00020-of-00071.safetensors": {
105
+ "size": 465109456
106
+ },
107
+ "model-00021-of-00071.safetensors": {
108
+ "size": 465109456
109
+ },
110
+ "model-00022-of-00071.safetensors": {
111
+ "size": 465109456
112
+ },
113
+ "model-00023-of-00071.safetensors": {
114
+ "size": 465109456
115
+ },
116
+ "model-00024-of-00071.safetensors": {
117
+ "size": 465109456
118
+ },
119
+ "model-00025-of-00071.safetensors": {
120
+ "size": 465109456
121
+ },
122
+ "model-00026-of-00071.safetensors": {
123
+ "size": 465109456
124
+ },
125
+ "model-00027-of-00071.safetensors": {
126
+ "size": 465109456
127
+ },
128
+ "model-00028-of-00071.safetensors": {
129
+ "size": 465109456
130
+ },
131
+ "model-00029-of-00071.safetensors": {
132
+ "size": 465109456
133
+ },
134
+ "model-00030-of-00071.safetensors": {
135
+ "size": 465109456
136
+ },
137
+ "model-00031-of-00071.safetensors": {
138
+ "size": 465109456
139
+ },
140
+ "model-00032-of-00071.safetensors": {
141
+ "size": 465109456
142
+ },
143
+ "model-00033-of-00071.safetensors": {
144
+ "size": 465109456
145
+ },
146
+ "model-00034-of-00071.safetensors": {
147
+ "size": 465109456
148
+ },
149
+ "model-00035-of-00071.safetensors": {
150
+ "size": 465109456
151
+ },
152
+ "model-00036-of-00071.safetensors": {
153
+ "size": 465109456
154
+ },
155
+ "model-00037-of-00071.safetensors": {
156
+ "size": 465109456
157
+ },
158
+ "model-00038-of-00071.safetensors": {
159
+ "size": 465109456
160
+ },
161
+ "model-00039-of-00071.safetensors": {
162
+ "size": 465109456
163
+ },
164
+ "model-00040-of-00071.safetensors": {
165
+ "size": 465109456
166
+ },
167
+ "model-00041-of-00071.safetensors": {
168
+ "size": 465109456
169
+ },
170
+ "model-00042-of-00071.safetensors": {
171
+ "size": 465109456
172
+ },
173
+ "model-00043-of-00071.safetensors": {
174
+ "size": 465109456
175
+ },
176
+ "model-00044-of-00071.safetensors": {
177
+ "size": 465109456
178
+ },
179
+ "model-00045-of-00071.safetensors": {
180
+ "size": 465109456
181
+ },
182
+ "model-00046-of-00071.safetensors": {
183
+ "size": 465109456
184
+ },
185
+ "model-00047-of-00071.safetensors": {
186
+ "size": 465109456
187
+ },
188
+ "model-00048-of-00071.safetensors": {
189
+ "size": 465109456
190
+ },
191
+ "model-00049-of-00071.safetensors": {
192
+ "size": 465109456
193
+ },
194
+ "model-00050-of-00071.safetensors": {
195
+ "size": 465109456
196
+ },
197
+ "model-00051-of-00071.safetensors": {
198
+ "size": 465109456
199
+ },
200
+ "model-00052-of-00071.safetensors": {
201
+ "size": 465109456
202
+ },
203
+ "model-00053-of-00071.safetensors": {
204
+ "size": 465109456
205
+ },
206
+ "model-00054-of-00071.safetensors": {
207
+ "size": 465109456
208
+ },
209
+ "model-00055-of-00071.safetensors": {
210
+ "size": 465109456
211
+ },
212
+ "model-00056-of-00071.safetensors": {
213
+ "size": 465109456
214
+ },
215
+ "model-00057-of-00071.safetensors": {
216
+ "size": 465109456
217
+ },
218
+ "model-00058-of-00071.safetensors": {
219
+ "size": 465109456
220
+ },
221
+ "model-00059-of-00071.safetensors": {
222
+ "size": 465109456
223
+ },
224
+ "model-00060-of-00071.safetensors": {
225
+ "size": 465109456
226
+ },
227
+ "model-00061-of-00071.safetensors": {
228
+ "size": 465109456
229
+ },
230
+ "model-00062-of-00071.safetensors": {
231
+ "size": 465109456
232
+ },
233
+ "model-00063-of-00071.safetensors": {
234
+ "size": 465109456
235
+ },
236
+ "model-00064-of-00071.safetensors": {
237
+ "size": 465109456
238
+ },
239
+ "model-00065-of-00071.safetensors": {
240
+ "size": 465109456
241
+ },
242
+ "model-00066-of-00071.safetensors": {
243
+ "size": 465109456
244
+ },
245
+ "model-00067-of-00071.safetensors": {
246
+ "size": 465109456
247
+ },
248
+ "model-00068-of-00071.safetensors": {
249
+ "size": 465109456
250
+ },
251
+ "model-00069-of-00071.safetensors": {
252
+ "size": 465109456
253
+ },
254
+ "model-00070-of-00071.safetensors": {
255
+ "size": 465109456
256
+ },
257
+ "model-00071-of-00071.safetensors": {
258
+ "size": 1532231640
259
+ },
260
+ "model.safetensors.index.json": {
261
+ "sha256": "1eb370a106fac5f6c93ac3d145b3244663eb177403570ceccc5a0459417f7010",
262
+ "size": 33719
263
+ },
264
+ "tokenizer.json": {
265
+ "sha256": "3ee5714f6099f3afc583c16179dbee1206872fd3f72de59ae20924d09ea208c5",
266
+ "size": 3406072
267
+ },
268
+ "tokenizer_config.json": {
269
+ "sha256": "1e10276a4b031c73788c0d71609542fa4b1117bdedeba2c5f8375cfa62c6b9e6",
270
+ "size": 328
271
+ },
272
+ "tools/README.md": {
273
+ "sha256": "9a8d7d1a4853b1044ce50243f5c67375fbeebebb86995749baeedd350d8950b0",
274
+ "size": 746
275
+ },
276
+ "tools/pretty_text.py": {
277
+ "sha256": "4ef46191c463da2133a633248ea1ec9ecd4ff3c8c168786afe93b5bd6786d0d7",
278
+ "size": 13702
279
+ },
280
+ "tools/txt_to_png.py": {
281
+ "sha256": "988b5b1bdc09f482a4a0298011eb2fe17f011ac3f8224a253aa566573650a6eb",
282
+ "size": 5419
283
+ }
284
+ },
285
+ "format": "torchwright_doom.phi3.v1",
286
+ "formatter_data_sha256": "c97dd58fb2892e86d5a1989b84f177dba58ad1a8a4d122b2f5728b142f3003e5",
287
+ "frame_decoder_data_sha256": "5bc8e38898b52477eb2bcadac3ad095543f04ab506b8917eeeb4d0488c103971",
288
+ "generation": {
289
+ "max_new_tokens": 8000
290
+ },
291
+ "map": "E1M1",
292
+ "model": {
293
+ "d": 4096,
294
+ "d_head": 128,
295
+ "d_hidden": 8192,
296
+ "d_rot": 64,
297
+ "detail": "low",
298
+ "hud": true,
299
+ "max_layers": 200,
300
+ "max_seq_len": 16384,
301
+ "n_heads": 16,
302
+ "optimize": 3,
303
+ "scale": 4,
304
+ "trim_heads": true
305
+ },
306
+ "model_type": "phi3",
307
+ "pad_token_id": 93309,
308
+ "pose": {
309
+ "angle": 64,
310
+ "scene_origin": [
311
+ 1119.351851851852,
312
+ -3262.5
313
+ ],
314
+ "viewz": 41.0,
315
+ "x": 1056.0,
316
+ "y": -3616.0
317
+ },
318
+ "profile": "phi3",
319
+ "prompt": {
320
+ "n_rows": 3614,
321
+ "path": "examples/e1m1_prompt.txt",
322
+ "row_ids_sha256": "89845f52326ce3e82a39d0d8d0d22ab656718572195eb12bbee8821b48c91034",
323
+ "sha256": "00304544ff8128be35068d0fc5b4522817f103259d7a9be26d1591c08ad19322"
324
+ },
325
+ "region": {
326
+ "x1": 627.2,
327
+ "x2": 1395.2,
328
+ "y1": -3760.0,
329
+ "y2": -2800.0
330
+ },
331
+ "row_vocab_fingerprint": "ee25bcb4bd51bc5d62910c933953a7294847725a2d1754ec1e49ed53f4285ba1",
332
+ "schedule": {
333
+ "delivery": "cache",
334
+ "optimize": 3,
335
+ "selected_is_optimal": false,
336
+ "selected_objective": 70,
337
+ "selected_objective_blocks": [
338
+ 70,
339
+ 0
340
+ ],
341
+ "selected_origin": "solver",
342
+ "solver_best_bound": -1.0,
343
+ "solver_is_optimal": false,
344
+ "solver_objective": 70,
345
+ "solver_status": "FEASIBLE"
346
+ },
347
+ "screen": {
348
+ "detail": "low",
349
+ "height": 50,
350
+ "hud": true,
351
+ "scale": 4,
352
+ "width": 80
353
+ },
354
+ "source_revisions": {
355
+ "torchwright": "b431c4a5a2d39cab0b47033f1c0a89e3ee5cca31",
356
+ "torchwright_doom": "6c18b01969ceb8e96d003663b63f37d5fe39573b"
357
+ },
358
+ "tokenizer_vocab_sha256": "bbd8141ac2fbb7fceaaa12ed335b2179e731e85c6406e1da0f602556e753827d",
359
+ "validation": {
360
+ "complete": true,
361
+ "format_version": 2
362
+ },
363
+ "vocab_size": 93378,
364
+ "wad": {
365
+ "name": "doom1.wad",
366
+ "sha256": "1d7d43be501e67d927e415e0b8f3e29c3bf33075e859721816f652a526cac771"
367
+ }
368
+ }
doom_palette.json ADDED
@@ -0,0 +1,1285 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "colors": [
3
+ [
4
+ 0,
5
+ 0,
6
+ 0
7
+ ],
8
+ [
9
+ 31,
10
+ 23,
11
+ 11
12
+ ],
13
+ [
14
+ 23,
15
+ 15,
16
+ 7
17
+ ],
18
+ [
19
+ 75,
20
+ 75,
21
+ 75
22
+ ],
23
+ [
24
+ 255,
25
+ 255,
26
+ 255
27
+ ],
28
+ [
29
+ 27,
30
+ 27,
31
+ 27
32
+ ],
33
+ [
34
+ 19,
35
+ 19,
36
+ 19
37
+ ],
38
+ [
39
+ 11,
40
+ 11,
41
+ 11
42
+ ],
43
+ [
44
+ 7,
45
+ 7,
46
+ 7
47
+ ],
48
+ [
49
+ 47,
50
+ 55,
51
+ 31
52
+ ],
53
+ [
54
+ 35,
55
+ 43,
56
+ 15
57
+ ],
58
+ [
59
+ 23,
60
+ 31,
61
+ 7
62
+ ],
63
+ [
64
+ 15,
65
+ 23,
66
+ 0
67
+ ],
68
+ [
69
+ 79,
70
+ 59,
71
+ 43
72
+ ],
73
+ [
74
+ 71,
75
+ 51,
76
+ 35
77
+ ],
78
+ [
79
+ 63,
80
+ 43,
81
+ 27
82
+ ],
83
+ [
84
+ 255,
85
+ 183,
86
+ 183
87
+ ],
88
+ [
89
+ 247,
90
+ 171,
91
+ 171
92
+ ],
93
+ [
94
+ 243,
95
+ 163,
96
+ 163
97
+ ],
98
+ [
99
+ 235,
100
+ 151,
101
+ 151
102
+ ],
103
+ [
104
+ 231,
105
+ 143,
106
+ 143
107
+ ],
108
+ [
109
+ 223,
110
+ 135,
111
+ 135
112
+ ],
113
+ [
114
+ 219,
115
+ 123,
116
+ 123
117
+ ],
118
+ [
119
+ 211,
120
+ 115,
121
+ 115
122
+ ],
123
+ [
124
+ 203,
125
+ 107,
126
+ 107
127
+ ],
128
+ [
129
+ 199,
130
+ 99,
131
+ 99
132
+ ],
133
+ [
134
+ 191,
135
+ 91,
136
+ 91
137
+ ],
138
+ [
139
+ 187,
140
+ 87,
141
+ 87
142
+ ],
143
+ [
144
+ 179,
145
+ 79,
146
+ 79
147
+ ],
148
+ [
149
+ 175,
150
+ 71,
151
+ 71
152
+ ],
153
+ [
154
+ 167,
155
+ 63,
156
+ 63
157
+ ],
158
+ [
159
+ 163,
160
+ 59,
161
+ 59
162
+ ],
163
+ [
164
+ 155,
165
+ 51,
166
+ 51
167
+ ],
168
+ [
169
+ 151,
170
+ 47,
171
+ 47
172
+ ],
173
+ [
174
+ 143,
175
+ 43,
176
+ 43
177
+ ],
178
+ [
179
+ 139,
180
+ 35,
181
+ 35
182
+ ],
183
+ [
184
+ 131,
185
+ 31,
186
+ 31
187
+ ],
188
+ [
189
+ 127,
190
+ 27,
191
+ 27
192
+ ],
193
+ [
194
+ 119,
195
+ 23,
196
+ 23
197
+ ],
198
+ [
199
+ 115,
200
+ 19,
201
+ 19
202
+ ],
203
+ [
204
+ 107,
205
+ 15,
206
+ 15
207
+ ],
208
+ [
209
+ 103,
210
+ 11,
211
+ 11
212
+ ],
213
+ [
214
+ 95,
215
+ 7,
216
+ 7
217
+ ],
218
+ [
219
+ 91,
220
+ 7,
221
+ 7
222
+ ],
223
+ [
224
+ 83,
225
+ 7,
226
+ 7
227
+ ],
228
+ [
229
+ 79,
230
+ 0,
231
+ 0
232
+ ],
233
+ [
234
+ 71,
235
+ 0,
236
+ 0
237
+ ],
238
+ [
239
+ 67,
240
+ 0,
241
+ 0
242
+ ],
243
+ [
244
+ 255,
245
+ 235,
246
+ 223
247
+ ],
248
+ [
249
+ 255,
250
+ 227,
251
+ 211
252
+ ],
253
+ [
254
+ 255,
255
+ 219,
256
+ 199
257
+ ],
258
+ [
259
+ 255,
260
+ 211,
261
+ 187
262
+ ],
263
+ [
264
+ 255,
265
+ 207,
266
+ 179
267
+ ],
268
+ [
269
+ 255,
270
+ 199,
271
+ 167
272
+ ],
273
+ [
274
+ 255,
275
+ 191,
276
+ 155
277
+ ],
278
+ [
279
+ 255,
280
+ 187,
281
+ 147
282
+ ],
283
+ [
284
+ 255,
285
+ 179,
286
+ 131
287
+ ],
288
+ [
289
+ 247,
290
+ 171,
291
+ 123
292
+ ],
293
+ [
294
+ 239,
295
+ 163,
296
+ 115
297
+ ],
298
+ [
299
+ 231,
300
+ 155,
301
+ 107
302
+ ],
303
+ [
304
+ 223,
305
+ 147,
306
+ 99
307
+ ],
308
+ [
309
+ 215,
310
+ 139,
311
+ 91
312
+ ],
313
+ [
314
+ 207,
315
+ 131,
316
+ 83
317
+ ],
318
+ [
319
+ 203,
320
+ 127,
321
+ 79
322
+ ],
323
+ [
324
+ 191,
325
+ 123,
326
+ 75
327
+ ],
328
+ [
329
+ 179,
330
+ 115,
331
+ 71
332
+ ],
333
+ [
334
+ 171,
335
+ 111,
336
+ 67
337
+ ],
338
+ [
339
+ 163,
340
+ 107,
341
+ 63
342
+ ],
343
+ [
344
+ 155,
345
+ 99,
346
+ 59
347
+ ],
348
+ [
349
+ 143,
350
+ 95,
351
+ 55
352
+ ],
353
+ [
354
+ 135,
355
+ 87,
356
+ 51
357
+ ],
358
+ [
359
+ 127,
360
+ 83,
361
+ 47
362
+ ],
363
+ [
364
+ 119,
365
+ 79,
366
+ 43
367
+ ],
368
+ [
369
+ 107,
370
+ 71,
371
+ 39
372
+ ],
373
+ [
374
+ 95,
375
+ 67,
376
+ 35
377
+ ],
378
+ [
379
+ 83,
380
+ 63,
381
+ 31
382
+ ],
383
+ [
384
+ 75,
385
+ 55,
386
+ 27
387
+ ],
388
+ [
389
+ 63,
390
+ 47,
391
+ 23
392
+ ],
393
+ [
394
+ 51,
395
+ 43,
396
+ 19
397
+ ],
398
+ [
399
+ 43,
400
+ 35,
401
+ 15
402
+ ],
403
+ [
404
+ 239,
405
+ 239,
406
+ 239
407
+ ],
408
+ [
409
+ 231,
410
+ 231,
411
+ 231
412
+ ],
413
+ [
414
+ 223,
415
+ 223,
416
+ 223
417
+ ],
418
+ [
419
+ 219,
420
+ 219,
421
+ 219
422
+ ],
423
+ [
424
+ 211,
425
+ 211,
426
+ 211
427
+ ],
428
+ [
429
+ 203,
430
+ 203,
431
+ 203
432
+ ],
433
+ [
434
+ 199,
435
+ 199,
436
+ 199
437
+ ],
438
+ [
439
+ 191,
440
+ 191,
441
+ 191
442
+ ],
443
+ [
444
+ 183,
445
+ 183,
446
+ 183
447
+ ],
448
+ [
449
+ 179,
450
+ 179,
451
+ 179
452
+ ],
453
+ [
454
+ 171,
455
+ 171,
456
+ 171
457
+ ],
458
+ [
459
+ 167,
460
+ 167,
461
+ 167
462
+ ],
463
+ [
464
+ 159,
465
+ 159,
466
+ 159
467
+ ],
468
+ [
469
+ 151,
470
+ 151,
471
+ 151
472
+ ],
473
+ [
474
+ 147,
475
+ 147,
476
+ 147
477
+ ],
478
+ [
479
+ 139,
480
+ 139,
481
+ 139
482
+ ],
483
+ [
484
+ 131,
485
+ 131,
486
+ 131
487
+ ],
488
+ [
489
+ 127,
490
+ 127,
491
+ 127
492
+ ],
493
+ [
494
+ 119,
495
+ 119,
496
+ 119
497
+ ],
498
+ [
499
+ 111,
500
+ 111,
501
+ 111
502
+ ],
503
+ [
504
+ 107,
505
+ 107,
506
+ 107
507
+ ],
508
+ [
509
+ 99,
510
+ 99,
511
+ 99
512
+ ],
513
+ [
514
+ 91,
515
+ 91,
516
+ 91
517
+ ],
518
+ [
519
+ 87,
520
+ 87,
521
+ 87
522
+ ],
523
+ [
524
+ 79,
525
+ 79,
526
+ 79
527
+ ],
528
+ [
529
+ 71,
530
+ 71,
531
+ 71
532
+ ],
533
+ [
534
+ 67,
535
+ 67,
536
+ 67
537
+ ],
538
+ [
539
+ 59,
540
+ 59,
541
+ 59
542
+ ],
543
+ [
544
+ 55,
545
+ 55,
546
+ 55
547
+ ],
548
+ [
549
+ 47,
550
+ 47,
551
+ 47
552
+ ],
553
+ [
554
+ 39,
555
+ 39,
556
+ 39
557
+ ],
558
+ [
559
+ 35,
560
+ 35,
561
+ 35
562
+ ],
563
+ [
564
+ 119,
565
+ 255,
566
+ 111
567
+ ],
568
+ [
569
+ 111,
570
+ 239,
571
+ 103
572
+ ],
573
+ [
574
+ 103,
575
+ 223,
576
+ 95
577
+ ],
578
+ [
579
+ 95,
580
+ 207,
581
+ 87
582
+ ],
583
+ [
584
+ 91,
585
+ 191,
586
+ 79
587
+ ],
588
+ [
589
+ 83,
590
+ 175,
591
+ 71
592
+ ],
593
+ [
594
+ 75,
595
+ 159,
596
+ 63
597
+ ],
598
+ [
599
+ 67,
600
+ 147,
601
+ 55
602
+ ],
603
+ [
604
+ 63,
605
+ 131,
606
+ 47
607
+ ],
608
+ [
609
+ 55,
610
+ 115,
611
+ 43
612
+ ],
613
+ [
614
+ 47,
615
+ 99,
616
+ 35
617
+ ],
618
+ [
619
+ 39,
620
+ 83,
621
+ 27
622
+ ],
623
+ [
624
+ 31,
625
+ 67,
626
+ 23
627
+ ],
628
+ [
629
+ 23,
630
+ 51,
631
+ 15
632
+ ],
633
+ [
634
+ 19,
635
+ 35,
636
+ 11
637
+ ],
638
+ [
639
+ 11,
640
+ 23,
641
+ 7
642
+ ],
643
+ [
644
+ 191,
645
+ 167,
646
+ 143
647
+ ],
648
+ [
649
+ 183,
650
+ 159,
651
+ 135
652
+ ],
653
+ [
654
+ 175,
655
+ 151,
656
+ 127
657
+ ],
658
+ [
659
+ 167,
660
+ 143,
661
+ 119
662
+ ],
663
+ [
664
+ 159,
665
+ 135,
666
+ 111
667
+ ],
668
+ [
669
+ 155,
670
+ 127,
671
+ 107
672
+ ],
673
+ [
674
+ 147,
675
+ 123,
676
+ 99
677
+ ],
678
+ [
679
+ 139,
680
+ 115,
681
+ 91
682
+ ],
683
+ [
684
+ 131,
685
+ 107,
686
+ 87
687
+ ],
688
+ [
689
+ 123,
690
+ 99,
691
+ 79
692
+ ],
693
+ [
694
+ 119,
695
+ 95,
696
+ 75
697
+ ],
698
+ [
699
+ 111,
700
+ 87,
701
+ 67
702
+ ],
703
+ [
704
+ 103,
705
+ 83,
706
+ 63
707
+ ],
708
+ [
709
+ 95,
710
+ 75,
711
+ 55
712
+ ],
713
+ [
714
+ 87,
715
+ 67,
716
+ 51
717
+ ],
718
+ [
719
+ 83,
720
+ 63,
721
+ 47
722
+ ],
723
+ [
724
+ 159,
725
+ 131,
726
+ 99
727
+ ],
728
+ [
729
+ 143,
730
+ 119,
731
+ 83
732
+ ],
733
+ [
734
+ 131,
735
+ 107,
736
+ 75
737
+ ],
738
+ [
739
+ 119,
740
+ 95,
741
+ 63
742
+ ],
743
+ [
744
+ 103,
745
+ 83,
746
+ 51
747
+ ],
748
+ [
749
+ 91,
750
+ 71,
751
+ 43
752
+ ],
753
+ [
754
+ 79,
755
+ 59,
756
+ 35
757
+ ],
758
+ [
759
+ 67,
760
+ 51,
761
+ 27
762
+ ],
763
+ [
764
+ 123,
765
+ 127,
766
+ 99
767
+ ],
768
+ [
769
+ 111,
770
+ 115,
771
+ 87
772
+ ],
773
+ [
774
+ 103,
775
+ 107,
776
+ 79
777
+ ],
778
+ [
779
+ 91,
780
+ 99,
781
+ 71
782
+ ],
783
+ [
784
+ 83,
785
+ 87,
786
+ 59
787
+ ],
788
+ [
789
+ 71,
790
+ 79,
791
+ 51
792
+ ],
793
+ [
794
+ 63,
795
+ 71,
796
+ 43
797
+ ],
798
+ [
799
+ 55,
800
+ 63,
801
+ 39
802
+ ],
803
+ [
804
+ 255,
805
+ 255,
806
+ 115
807
+ ],
808
+ [
809
+ 235,
810
+ 219,
811
+ 87
812
+ ],
813
+ [
814
+ 215,
815
+ 187,
816
+ 67
817
+ ],
818
+ [
819
+ 195,
820
+ 155,
821
+ 47
822
+ ],
823
+ [
824
+ 175,
825
+ 123,
826
+ 31
827
+ ],
828
+ [
829
+ 155,
830
+ 91,
831
+ 19
832
+ ],
833
+ [
834
+ 135,
835
+ 67,
836
+ 7
837
+ ],
838
+ [
839
+ 115,
840
+ 43,
841
+ 0
842
+ ],
843
+ [
844
+ 255,
845
+ 255,
846
+ 255
847
+ ],
848
+ [
849
+ 255,
850
+ 219,
851
+ 219
852
+ ],
853
+ [
854
+ 255,
855
+ 187,
856
+ 187
857
+ ],
858
+ [
859
+ 255,
860
+ 155,
861
+ 155
862
+ ],
863
+ [
864
+ 255,
865
+ 123,
866
+ 123
867
+ ],
868
+ [
869
+ 255,
870
+ 95,
871
+ 95
872
+ ],
873
+ [
874
+ 255,
875
+ 63,
876
+ 63
877
+ ],
878
+ [
879
+ 255,
880
+ 31,
881
+ 31
882
+ ],
883
+ [
884
+ 255,
885
+ 0,
886
+ 0
887
+ ],
888
+ [
889
+ 239,
890
+ 0,
891
+ 0
892
+ ],
893
+ [
894
+ 227,
895
+ 0,
896
+ 0
897
+ ],
898
+ [
899
+ 215,
900
+ 0,
901
+ 0
902
+ ],
903
+ [
904
+ 203,
905
+ 0,
906
+ 0
907
+ ],
908
+ [
909
+ 191,
910
+ 0,
911
+ 0
912
+ ],
913
+ [
914
+ 179,
915
+ 0,
916
+ 0
917
+ ],
918
+ [
919
+ 167,
920
+ 0,
921
+ 0
922
+ ],
923
+ [
924
+ 155,
925
+ 0,
926
+ 0
927
+ ],
928
+ [
929
+ 139,
930
+ 0,
931
+ 0
932
+ ],
933
+ [
934
+ 127,
935
+ 0,
936
+ 0
937
+ ],
938
+ [
939
+ 115,
940
+ 0,
941
+ 0
942
+ ],
943
+ [
944
+ 103,
945
+ 0,
946
+ 0
947
+ ],
948
+ [
949
+ 91,
950
+ 0,
951
+ 0
952
+ ],
953
+ [
954
+ 79,
955
+ 0,
956
+ 0
957
+ ],
958
+ [
959
+ 67,
960
+ 0,
961
+ 0
962
+ ],
963
+ [
964
+ 231,
965
+ 231,
966
+ 255
967
+ ],
968
+ [
969
+ 199,
970
+ 199,
971
+ 255
972
+ ],
973
+ [
974
+ 171,
975
+ 171,
976
+ 255
977
+ ],
978
+ [
979
+ 143,
980
+ 143,
981
+ 255
982
+ ],
983
+ [
984
+ 115,
985
+ 115,
986
+ 255
987
+ ],
988
+ [
989
+ 83,
990
+ 83,
991
+ 255
992
+ ],
993
+ [
994
+ 55,
995
+ 55,
996
+ 255
997
+ ],
998
+ [
999
+ 27,
1000
+ 27,
1001
+ 255
1002
+ ],
1003
+ [
1004
+ 0,
1005
+ 0,
1006
+ 255
1007
+ ],
1008
+ [
1009
+ 0,
1010
+ 0,
1011
+ 227
1012
+ ],
1013
+ [
1014
+ 0,
1015
+ 0,
1016
+ 203
1017
+ ],
1018
+ [
1019
+ 0,
1020
+ 0,
1021
+ 179
1022
+ ],
1023
+ [
1024
+ 0,
1025
+ 0,
1026
+ 155
1027
+ ],
1028
+ [
1029
+ 0,
1030
+ 0,
1031
+ 131
1032
+ ],
1033
+ [
1034
+ 0,
1035
+ 0,
1036
+ 107
1037
+ ],
1038
+ [
1039
+ 0,
1040
+ 0,
1041
+ 83
1042
+ ],
1043
+ [
1044
+ 255,
1045
+ 255,
1046
+ 255
1047
+ ],
1048
+ [
1049
+ 255,
1050
+ 235,
1051
+ 219
1052
+ ],
1053
+ [
1054
+ 255,
1055
+ 215,
1056
+ 187
1057
+ ],
1058
+ [
1059
+ 255,
1060
+ 199,
1061
+ 155
1062
+ ],
1063
+ [
1064
+ 255,
1065
+ 179,
1066
+ 123
1067
+ ],
1068
+ [
1069
+ 255,
1070
+ 163,
1071
+ 91
1072
+ ],
1073
+ [
1074
+ 255,
1075
+ 143,
1076
+ 59
1077
+ ],
1078
+ [
1079
+ 255,
1080
+ 127,
1081
+ 27
1082
+ ],
1083
+ [
1084
+ 243,
1085
+ 115,
1086
+ 23
1087
+ ],
1088
+ [
1089
+ 235,
1090
+ 111,
1091
+ 15
1092
+ ],
1093
+ [
1094
+ 223,
1095
+ 103,
1096
+ 15
1097
+ ],
1098
+ [
1099
+ 215,
1100
+ 95,
1101
+ 11
1102
+ ],
1103
+ [
1104
+ 203,
1105
+ 87,
1106
+ 7
1107
+ ],
1108
+ [
1109
+ 195,
1110
+ 79,
1111
+ 0
1112
+ ],
1113
+ [
1114
+ 183,
1115
+ 71,
1116
+ 0
1117
+ ],
1118
+ [
1119
+ 175,
1120
+ 67,
1121
+ 0
1122
+ ],
1123
+ [
1124
+ 255,
1125
+ 255,
1126
+ 255
1127
+ ],
1128
+ [
1129
+ 255,
1130
+ 255,
1131
+ 215
1132
+ ],
1133
+ [
1134
+ 255,
1135
+ 255,
1136
+ 179
1137
+ ],
1138
+ [
1139
+ 255,
1140
+ 255,
1141
+ 143
1142
+ ],
1143
+ [
1144
+ 255,
1145
+ 255,
1146
+ 107
1147
+ ],
1148
+ [
1149
+ 255,
1150
+ 255,
1151
+ 71
1152
+ ],
1153
+ [
1154
+ 255,
1155
+ 255,
1156
+ 35
1157
+ ],
1158
+ [
1159
+ 255,
1160
+ 255,
1161
+ 0
1162
+ ],
1163
+ [
1164
+ 167,
1165
+ 63,
1166
+ 0
1167
+ ],
1168
+ [
1169
+ 159,
1170
+ 55,
1171
+ 0
1172
+ ],
1173
+ [
1174
+ 147,
1175
+ 47,
1176
+ 0
1177
+ ],
1178
+ [
1179
+ 135,
1180
+ 35,
1181
+ 0
1182
+ ],
1183
+ [
1184
+ 79,
1185
+ 59,
1186
+ 39
1187
+ ],
1188
+ [
1189
+ 67,
1190
+ 47,
1191
+ 27
1192
+ ],
1193
+ [
1194
+ 55,
1195
+ 35,
1196
+ 19
1197
+ ],
1198
+ [
1199
+ 47,
1200
+ 27,
1201
+ 11
1202
+ ],
1203
+ [
1204
+ 0,
1205
+ 0,
1206
+ 83
1207
+ ],
1208
+ [
1209
+ 0,
1210
+ 0,
1211
+ 71
1212
+ ],
1213
+ [
1214
+ 0,
1215
+ 0,
1216
+ 59
1217
+ ],
1218
+ [
1219
+ 0,
1220
+ 0,
1221
+ 47
1222
+ ],
1223
+ [
1224
+ 0,
1225
+ 0,
1226
+ 35
1227
+ ],
1228
+ [
1229
+ 0,
1230
+ 0,
1231
+ 23
1232
+ ],
1233
+ [
1234
+ 0,
1235
+ 0,
1236
+ 11
1237
+ ],
1238
+ [
1239
+ 0,
1240
+ 0,
1241
+ 0
1242
+ ],
1243
+ [
1244
+ 255,
1245
+ 159,
1246
+ 67
1247
+ ],
1248
+ [
1249
+ 255,
1250
+ 231,
1251
+ 75
1252
+ ],
1253
+ [
1254
+ 255,
1255
+ 123,
1256
+ 255
1257
+ ],
1258
+ [
1259
+ 255,
1260
+ 0,
1261
+ 255
1262
+ ],
1263
+ [
1264
+ 207,
1265
+ 0,
1266
+ 207
1267
+ ],
1268
+ [
1269
+ 159,
1270
+ 0,
1271
+ 155
1272
+ ],
1273
+ [
1274
+ 111,
1275
+ 0,
1276
+ 107
1277
+ ],
1278
+ [
1279
+ 167,
1280
+ 107,
1281
+ 107
1282
+ ]
1283
+ ],
1284
+ "format": "torchwright_doom.palette.v1"
1285
+ }
doom_tables.json ADDED
@@ -0,0 +1,297 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "angle_bam": 8192,
3
+ "angle_markers": [
4
+ "angle1",
5
+ "angle2",
6
+ "bangle1",
7
+ "bangle2",
8
+ "btheta1",
9
+ "btheta2",
10
+ "ds.uPhase",
11
+ "normalAngle",
12
+ "theta1",
13
+ "theta2",
14
+ "viewangle"
15
+ ],
16
+ "back_height_sentinel": -4096.0,
17
+ "carrier": {
18
+ "angle": {
19
+ "lo": -4096,
20
+ "size": 8192,
21
+ "start": 65536
22
+ },
23
+ "value": {
24
+ "hi": 1.0,
25
+ "levels": 65536,
26
+ "lo": -1.0,
27
+ "size": 65536,
28
+ "start": 0
29
+ }
30
+ },
31
+ "flat_names": [
32
+ "CEIL3_5",
33
+ "FLAT14",
34
+ "FLAT5_5",
35
+ "FLOOR4_8",
36
+ "FLOOR7_1",
37
+ "F_SKY1"
38
+ ],
39
+ "format": "torchwright_doom.tables.v2",
40
+ "header_levels": {
41
+ "R_AddLine": 1,
42
+ "R_CheckPlane": 2,
43
+ "R_DrawPlanes": 0,
44
+ "R_DrawPlanes.nextPlane": 1,
45
+ "R_DrawPlanes.nextVp": 1,
46
+ "R_DrawPlayerSprites": 0,
47
+ "R_MakeSpans.col": 2,
48
+ "R_MapPlane.row": 2,
49
+ "R_PointOnSide": 0,
50
+ "R_StoreWallRange": 1,
51
+ "R_Subsector": 0,
52
+ "ST_Drawer": 0,
53
+ "ST_Drawer.item": 1,
54
+ "begin": 0,
55
+ "boxpos": 1,
56
+ "bspCheckBack": 0,
57
+ "bspFront": 0,
58
+ "bspReturn": 0,
59
+ "done": 0,
60
+ "ds.meta": 2,
61
+ "ds.x2": 1,
62
+ "nextSeg": 1,
63
+ "noOp": 0,
64
+ "node": 0,
65
+ "planeDef": 0,
66
+ "seg": 1,
67
+ "setCursorX": 2,
68
+ "ss": 0,
69
+ "ssFloorPlane": 0,
70
+ "viewx": 0,
71
+ "visplaneBegin": 1
72
+ },
73
+ "layout": {
74
+ "field_indent": 4,
75
+ "indent_unit": 2
76
+ },
77
+ "marker_range": {
78
+ "back.ceil": [
79
+ -4160.0,
80
+ 256.0
81
+ ],
82
+ "back.floor": [
83
+ -4160.0,
84
+ 256.0
85
+ ],
86
+ "bbox0.bottom": [
87
+ -2048.0,
88
+ 3072.0
89
+ ],
90
+ "bbox0.left": [
91
+ -2048.0,
92
+ 3072.0
93
+ ],
94
+ "bbox0.right": [
95
+ -2048.0,
96
+ 3072.0
97
+ ],
98
+ "bbox0.top": [
99
+ -2048.0,
100
+ 3072.0
101
+ ],
102
+ "bbox1.bottom": [
103
+ -2048.0,
104
+ 3072.0
105
+ ],
106
+ "bbox1.left": [
107
+ -2048.0,
108
+ 3072.0
109
+ ],
110
+ "bbox1.right": [
111
+ -2048.0,
112
+ 3072.0
113
+ ],
114
+ "bbox1.top": [
115
+ -2048.0,
116
+ 3072.0
117
+ ],
118
+ "bx1": [
119
+ -2048.0,
120
+ 3072.0
121
+ ],
122
+ "bx2": [
123
+ -2048.0,
124
+ 3072.0
125
+ ],
126
+ "by1": [
127
+ -2048.0,
128
+ 3072.0
129
+ ],
130
+ "by2": [
131
+ -2048.0,
132
+ 3072.0
133
+ ],
134
+ "ceil": [
135
+ -256.0,
136
+ 256.0
137
+ ],
138
+ "ds.bsilheight": [
139
+ -256.0,
140
+ 256.0
141
+ ],
142
+ "ds.scale1": [
143
+ 0.0,
144
+ 3.347457627118644
145
+ ],
146
+ "ds.scale1.den": [
147
+ 0.0,
148
+ 1500.0
149
+ ],
150
+ "ds.scale2": [
151
+ 0.0,
152
+ 3.347457627118644
153
+ ],
154
+ "ds.scale2.den": [
155
+ 0.0,
156
+ 1500.0
157
+ ],
158
+ "ds.scalestep": [
159
+ -0.0625,
160
+ 0.0625
161
+ ],
162
+ "ds.scalestep.den": [
163
+ 0.0,
164
+ 44.0
165
+ ],
166
+ "ds.tsilheight": [
167
+ -256.0,
168
+ 256.0
169
+ ],
170
+ "dx": [
171
+ -512.0,
172
+ 512.0
173
+ ],
174
+ "dy": [
175
+ -512.0,
176
+ 512.0
177
+ ],
178
+ "floor": [
179
+ -256.0,
180
+ 256.0
181
+ ],
182
+ "planeHeight": [
183
+ -256.0,
184
+ 256.0
185
+ ],
186
+ "rowoffset": [
187
+ -256.0,
188
+ 256.0
189
+ ],
190
+ "segDcTmidLower": [
191
+ -4160.0,
192
+ 256.0
193
+ ],
194
+ "segDcTmidMid": [
195
+ -256.0,
196
+ 256.0
197
+ ],
198
+ "segDcTmidUpper": [
199
+ -4160.0,
200
+ 256.0
201
+ ],
202
+ "setCursorY": [
203
+ -256.0,
204
+ 256.0
205
+ ],
206
+ "v1.x": [
207
+ -1152.0,
208
+ 1152.0
209
+ ],
210
+ "v1.y": [
211
+ -1152.0,
212
+ 1152.0
213
+ ],
214
+ "v2.x": [
215
+ -1152.0,
216
+ 1152.0
217
+ ],
218
+ "v2.y": [
219
+ -1152.0,
220
+ 1152.0
221
+ ],
222
+ "viewx": [
223
+ -1152.0,
224
+ 1152.0
225
+ ],
226
+ "viewy": [
227
+ -1152.0,
228
+ 1152.0
229
+ ],
230
+ "viewz": [
231
+ -256.0,
232
+ 256.0
233
+ ],
234
+ "wallColU": [
235
+ 0.0,
236
+ 3.347457627118644
237
+ ],
238
+ "x": [
239
+ -1152.0,
240
+ 1152.0
241
+ ],
242
+ "y": [
243
+ -1152.0,
244
+ 1152.0
245
+ ]
246
+ },
247
+ "origin": [
248
+ 1119.351851851852,
249
+ -3262.5
250
+ ],
251
+ "screen": {
252
+ "column_count": 40,
253
+ "height": 50,
254
+ "pixel_width": 2,
255
+ "width": 80
256
+ },
257
+ "sentinel_markers": [
258
+ "back.ceil",
259
+ "back.floor"
260
+ ],
261
+ "value_steps": 65535,
262
+ "wall_names": [
263
+ "BROWN1",
264
+ "BROWN144",
265
+ "COMPUTE2",
266
+ "DOOR3",
267
+ "DOORSTOP",
268
+ "LITE3",
269
+ "STARTAN3",
270
+ "STEP6",
271
+ "SUPPORT2"
272
+ ],
273
+ "x_coord_markers": [
274
+ "bbox0.left",
275
+ "bbox0.right",
276
+ "bbox1.left",
277
+ "bbox1.right",
278
+ "bx1",
279
+ "bx2",
280
+ "v1.x",
281
+ "v2.x",
282
+ "viewx",
283
+ "x"
284
+ ],
285
+ "y_coord_markers": [
286
+ "bbox0.bottom",
287
+ "bbox0.top",
288
+ "bbox1.bottom",
289
+ "bbox1.top",
290
+ "by1",
291
+ "by2",
292
+ "v1.y",
293
+ "v2.y",
294
+ "viewy",
295
+ "y"
296
+ ]
297
+ }
doom_vocab.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b97a6bb4593e2c52e73aefe1607cf9e54e803df7162d2f94281a2bfc0b559e81
3
+ size 29582438
examples/e1m1_prompt.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ bos viewx value(v=-0.0549783) viewy value(v=-0.306844) viewz value(v=0.160143) viewangle angleValue(angle=2048) node(j=0) x value(v=0.229725) y value(v=0.582025) dx value(v=-0.0781109) dy value(v=-0.562493) child1(ss1) child0(ss29) bbox1.top value(v=0.0619059) bbox1.bottom value(v=-0.0505837) bbox1.left value(v=-0.112261) bbox1.right value(v=-0.0966354) bbox0.top value(v=0.0744182) bbox0.bottom value(v=0.0619059) bbox0.left value(v=-0.0966354) bbox0.right value(v=-0.0622416) node(j=1) x value(v=0.417227) y value(v=0.387594) dx value(v=1.5259e-05) dy value(v=0.124987) child1(ss29) child0(node0) bbox1.top value(v=0.049424) bbox1.bottom value(v=-0.0255894) bbox1.left value(v=-0.012253) bbox1.right value(v=0.0127413) bbox0.top value(v=0.0744182) bbox0.bottom value(v=-0.0505837) bbox0.left value(v=-0.112261) bbox0.right value(v=-0.0622416) node(j=2) x value(v=0.306111) y value(v=0.332021) dx value(v=0.37499) dy value(v=1.5259e-05) child1(ss0) child0(node1) bbox1.top value(v=-0.0505837) bbox1.bottom value(v=-0.0814374) bbox1.left value(v=-0.0997482) bbox1.right value(v=0.0127413) bbox0.top value(v=0.0744182) bbox0.bottom value(v=-0.0505837) bbox0.left value(v=-0.112261) bbox0.right value(v=0.0127413) node(j=3) x value(v=0.361685) y value(v=0.609796) dx value(v=-0.124987) dy value(v=1.5259e-05) child1(ss29) child0(node2) bbox1.top value(v=0.274403) bbox1.bottom value(v=0.0744182) bbox1.left value(v=-0.112261) bbox1.right value(v=0.0127413) bbox0.top value(v=0.0744182) bbox0.bottom value(v=-0.0814374) bbox0.left value(v=-0.112261) bbox0.right value(v=0.0127413) node(j=4) x value(v=0.47277) y value(v=0.554253) dx value(v=1.5259e-05) dy value(v=-0.249989) child1(node3) child0(ss29) bbox1.top value(v=0.274403) bbox1.bottom value(v=-0.0814374) bbox1.left value(v=-0.112261) bbox1.right value(v=0.0127413) bbox0.top value(v=0.274403) bbox0.bottom value(v=-0.153704) bbox0.left value(v=0.0127413) bbox0.right value(v=0.212757) node(j=5) x value(v=0.368612) y value(v=-0.105455) dx value(v=-0.0468605) dy value(v=0.421866) child1(ss29) child0(ss2) bbox1.top value(v=-0.138079) bbox1.bottom value(v=-0.350576) bbox1.left value(v=-0.0435035) bbox1.right value(v=0.212757) bbox0.top value(v=-0.138079) bbox0.bottom value(v=-0.350576) bbox0.left value(v=-0.0997482) bbox0.right value(v=-0.0227817) node(j=6) x value(v=0.799161) y value(v=0.102861) dx value(v=0.171862) dy value(v=-0.249989) child1(node5) child0(ss29) bbox1.top value(v=-0.138079) bbox1.bottom value(v=-0.350576) bbox1.left value(v=-0.0997482) bbox1.right value(v=0.212757) bbox0.top value(v=-0.153704) bbox0.bottom value(v=-0.203723) bbox0.left value(v=0.159625) bbox0.right value(v=0.193988) node(j=7) x value(v=0.479728) y value(v=0.137591) dx value(v=0.437491) dy value(v=1.5259e-05) child1(node6) child0(ss3) bbox1.top value(v=-0.138079) bbox1.bottom value(v=-0.350576) bbox1.left value(v=-0.0997482) bbox1.right value(v=0.212757) bbox0.top value(v=-0.0814374) bbox0.bottom value(v=-0.138079) bbox0.left value(v=-0.0997482) bbox0.right value(v=0.10338) node(j=8) x value(v=0.194995) y value(v=-0.00129702) dx value(v=0.0624857) dy value(v=1.5259e-05) child1(ss4) child0(ss5) bbox1.top value(v=-0.20058) bbox1.bottom value(v=-0.238087) bbox1.left value(v=-0.112261) bbox1.right value(v=-0.0997482) bbox0.top value(v=-0.138079) bbox0.bottom value(v=-0.175586) bbox0.left value(v=-0.112261) bbox0.right value(v=-0.0997482) node(j=9) x value(v=0.222797) y value(v=0.0542458) dx value(v=1.5259e-05) dy value(v=0.187488) child1(node7) child0(node8) bbox1.top value(v=-0.0814374) bbox1.bottom value(v=-0.350576) bbox1.left value(v=-0.0997482) bbox1.right value(v=0.212757) bbox0.top value(v=-0.138079) bbox0.bottom value(v=-0.238087) bbox0.left value(v=-0.112261) bbox0.right value(v=-0.0997482) node(j=10) x value(v=0.354726) y value(v=-0.362417) dx value(v=-0.296864) dy value(v=0.0624857) child1(ss6) child0(ss29) bbox1.top value(v=-0.350576) bbox1.bottom value(v=-0.400595) bbox1.left value(v=-0.0997482) bbox1.right value(v=0.137743) bbox0.top value(v=-0.363088) bbox0.bottom value(v=-0.400595) bbox0.left value(v=-0.0403601) bbox0.right value(v=0.137743) node(j=11) x value(v=0.750576) y value(v=-0.334646) dx value(v=1.5259e-05) dy value(v=-0.249989) child1(node10) child0(ss29) bbox1.top value(v=-0.350576) bbox1.bottom value(v=-0.400595) bbox1.left value(v=-0.0997482) bbox1.right value(v=0.137743) bbox0.top value(v=-0.350576) bbox0.bottom value(v=-0.413077) bbox0.left value(v=0.137743) bbox0.right value(v=0.212757) node(j=12) x value(v=0.806119) y value(v=-0.473533) dx value(v=0.249989) dy value(v=1.5259e-05) child1(ss29) child0(node11) bbox1.top value(v=-0.413077) bbox1.bottom value(v=-0.513085) bbox1.left value(v=0.162768) bbox1.right value(v=0.212757) bbox0.top value(v=-0.350576) bbox0.bottom value(v=-0.413077) bbox0.left value(v=-0.0997482) bbox0.right value(v=0.212757) node(j=13) x value(v=0.917235) y value(v=-0.334646) dx value(v=-0.37499) dy value(v=1.5259e-05) child1(node9) child0(node12) bbox1.top value(v=-0.0814374) bbox1.bottom value(v=-0.350576) bbox1.left value(v=-0.112261) bbox1.right value(v=0.212757) bbox0.top value(v=-0.350576) bbox0.bottom value(v=-0.513085) bbox0.left value(v=-0.0997482) bbox0.right value(v=0.212757) node(j=14) x value(v=0.799161) y value(v=0.102861) dx value(v=-0.281239) dy value(v=0.0781109) child1(node4) child0(node13) bbox1.top value(v=0.274403) bbox1.bottom value(v=-0.153704) bbox1.left value(v=-0.112261) bbox1.right value(v=0.212757) bbox0.top value(v=-0.0814374) bbox0.bottom value(v=-0.513085) bbox0.left value(v=-0.112261) bbox0.right value(v=0.212757) node(j=15) x value(v=0.0561074) y value(v=-0.112413) dx value(v=-0.499992) dy value(v=1.5259e-05) child1(ss7) child0(ss8) bbox1.top value(v=-0.238087) bbox1.bottom value(v=-0.250599) bbox1.left value(v=-0.274739) bbox1.right value(v=-0.174762) bbox0.top value(v=-0.250599) bbox0.bottom value(v=-0.250599) bbox0.left value(v=-0.274739) bbox0.right value(v=-0.174762) node(j=16) x value(v=-0.193896) y value(v=-0.0846418) dx value(v=1.5259e-05) dy value(v=-0.0624857) child1(ss9) child0(ss10) bbox1.top value(v=-0.238087) bbox1.bottom value(v=-0.3131) bbox1.left value(v=-0.362234) bbox1.right value(v=-0.287251) bbox0.top value(v=-0.250599) bbox0.bottom value(v=-0.250599) bbox0.left value(v=-0.287251) bbox0.right value(v=-0.274739) node(j=17) x value(v=-0.166094) y value(v=-0.112413) dx value(v=1.5259e-05) dy value(v=0.0624857) child1(node15) child0(node16) bbox1.top value(v=-0.238087) bbox1.bottom value(v=-0.250599) bbox1.left value(v=-0.274739) bbox1.right value(v=-0.174762) bbox0.top value(v=-0.238087) bbox0.bottom value(v=-0.3131) bbox0.left value(v=-0.362234) bbox0.right value(v=-0.274739) node(j=18) x value(v=0.0561074) y value(v=-0.112413) dx value(v=0.0624857) dy value(v=1.5259e-05) child1(ss11) child0(ss12) bbox1.top value(v=-0.250599) bbox1.bottom value(v=-0.250599) bbox1.left value(v=-0.174762) bbox1.right value(v=-0.162249) bbox0.top value(v=-0.238087) bbox0.bottom value(v=-0.250599) bbox0.left value(v=-0.162249) bbox0.right value(v=-0.112261) node(j=19) x value(v=0.194995) y value(v=-0.0846418) dx value(v=-0.249989) dy value(v=-0.0624857) child1(node18) child0(ss13) bbox1.top value(v=-0.238087) bbox1.bottom value(v=-0.250599) bbox1.left value(v=-0.174762) bbox1.right value(v=-0.112261) bbox0.top value(v=-0.238087) bbox0.bottom value(v=-0.3131) bbox0.left value(v=-0.162249) bbox0.right value(v=-0.112261) node(j=20) x value(v=0.0561074) y value(v=-0.0846418) dx value(v=1.5259e-05) dy value(v=-0.0624857) child1(node17) child0(node19) bbox1.top value(v=-0.238087) bbox1.bottom value(v=-0.3131) bbox1.left value(v=-0.362234) bbox1.right value(v=-0.174762) bbox0.top value(v=-0.238087) bbox0.bottom value(v=-0.3131) bbox0.left value(v=-0.174762) bbox0.right value(v=-0.112261) node(j=21) x value(v=0.028336) y value(v=-0.334646) dx value(v=-0.124987) dy value(v=1.5259e-05) child1(ss14) child0(ss15) bbox1.top value(v=-0.3131) bbox1.bottom value(v=-0.350576) bbox1.left value(v=-0.312245) bbox1.right value(v=-0.137255) bbox0.top value(v=-0.350576) bbox0.bottom value(v=-0.363088) bbox0.left value(v=-0.237232) bbox0.right value(v=-0.212238) node(j=22) x value(v=0.194995) y value(v=-0.251301) dx value(v=-0.124987) dy value(v=1.5259e-05) child1(node20) child0(node21) bbox1.top value(v=-0.238087) bbox1.bottom value(v=-0.3131) bbox1.left value(v=-0.362234) bbox1.right value(v=-0.112261) bbox0.top value(v=-0.3131) bbox0.bottom value(v=-0.363088) bbox0.left value(v=-0.312245) bbox0.right value(v=-0.137255) node(j=23) x value(v=-0.193896) y value(v=-0.0846418) dx value(v=1.5259e-05) dy value(v=0.499992) child1(ss17) child0(ss18) bbox1.top value(v=-0.138079) bbox1.bottom value(v=-0.238087) bbox1.left value(v=-0.287251) bbox1.right value(v=-0.274739) bbox0.top value(v=-0.138079) bbox0.bottom value(v=-0.238087) bbox0.left value(v=-0.362234) bbox0.right value(v=-0.287251) node(j=24) x value(v=-0.166094) y value(v=-0.0846418) dx value(v=1.5259e-05) dy value(v=0.499992) child1(ss16) child0(node23) bbox1.top value(v=-0.138079) bbox1.bottom value(v=-0.238087) bbox1.left value(v=-0.274739) bbox1.right value(v=-0.112261) bbox0.top value(v=-0.138079) bbox0.bottom value(v=-0.238087) bbox0.left value(v=-0.362234) bbox0.right value(v=-0.274739) node(j=25) x value(v=-0.166094) y value(v=0.165362) dx value(v=0.499992) dy value(v=1.5259e-05) child1(ss19) child0(ss20) bbox1.top value(v=-0.125597) bbox1.bottom value(v=-0.138079) bbox1.left value(v=-0.274739) bbox1.right value(v=-0.174762) bbox0.top value(v=-0.125597) bbox0.bottom value(v=-0.125597) bbox0.left value(v=-0.274739) bbox0.right value(v=-0.174762) node(j=26) x value(v=0.0839094) y value(v=0.165362) dx value(v=-0.0624857) dy value(v=1.5259e-05) child1(ss21) child0(ss22) bbox1.top value(v=-0.125597) bbox1.bottom value(v=-0.125597) bbox1.left value(v=-0.174762) bbox1.right value(v=-0.162249) bbox0.top value(v=-0.125597) bbox0.bottom value(v=-0.138079) bbox0.left value(v=-0.162249) bbox0.right value(v=-0.112261) node(j=27) x value(v=0.0561074) y value(v=0.165362) dx value(v=1.5259e-05) dy value(v=-0.0624857) child1(node25) child0(node26) bbox1.top value(v=-0.125597) bbox1.bottom value(v=-0.138079) bbox1.left value(v=-0.274739) bbox1.right value(v=-0.174762) bbox0.top value(v=-0.125597) bbox0.bottom value(v=-0.138079) bbox0.left value(v=-0.174762) bbox0.right value(v=-0.112261) node(j=28) x value(v=-0.193896) y value(v=0.165362) dx value(v=1.5259e-05) dy value(v=-0.0624857) child1(ss23) child0(ss24) bbox1.top value(v=-0.0755779) bbox1.bottom value(v=-0.138079) bbox1.left value(v=-0.362234) bbox1.right value(v=-0.287251) bbox0.top value(v=-0.125597) bbox0.bottom value(v=-0.125597) bbox0.left value(v=-0.287251) bbox0.right value(v=-0.274739) node(j=29) x value(v=-0.166094) y value(v=0.137591) dx value(v=1.5259e-05) dy value(v=0.0624857) child1(node27) child0(node28) bbox1.top value(v=-0.125597) bbox1.bottom value(v=-0.138079) bbox1.left value(v=-0.274739) bbox1.right value(v=-0.112261) bbox0.top value(v=-0.0755779) bbox0.bottom value(v=-0.138079) bbox0.left value(v=-0.362234) bbox0.right value(v=-0.274739) node(j=30) x value(v=-0.249439) y value(v=0.276478) dx value(v=0.265614) dy value(v=0.124987) child1(ss25) child0(ss26) bbox1.top value(v=-0.0505837) bbox1.bottom value(v=-0.138079) bbox1.left value(v=-0.312245) bbox1.right value(v=-0.112261) bbox0.top value(v=-0.0755779) bbox0.bottom value(v=-0.0755779) bbox0.left value(v=-0.362234) bbox0.right value(v=-0.312245) node(j=31) x value(v=-0.131395) y value(v=0.332021) dx value(v=0.484367) dy value(v=1.5259e-05) child1(node30) child0(ss27) bbox1.top value(v=-0.0505837) bbox1.bottom value(v=-0.138079) bbox1.left value(v=-0.362234) bbox1.right value(v=-0.112261) bbox0.top value(v=0.103319) bbox0.bottom value(v=-0.0505837) bbox0.left value(v=-0.162249) bbox0.right value(v=-0.112261) node(j=32) x value(v=0.0839094) y value(v=0.165362) dx value(v=0.249989) dy value(v=-0.0624857) child1(node29) child0(node31) bbox1.top value(v=-0.0755779) bbox1.bottom value(v=-0.138079) bbox1.left value(v=-0.362234) bbox1.right value(v=-0.112261) bbox0.top value(v=0.103319) bbox0.bottom value(v=-0.138079) bbox0.left value(v=-0.362234) bbox0.right value(v=-0.112261) node(j=33) x value(v=-0.193896) y value(v=0.137591) dx value(v=0.0624857) dy value(v=1.5259e-05) child1(node24) child0(node32) bbox1.top value(v=-0.138079) bbox1.bottom value(v=-0.238087) bbox1.left value(v=-0.362234) bbox1.right value(v=-0.112261) bbox0.top value(v=0.103319) bbox0.bottom value(v=-0.138079) bbox0.left value(v=-0.362234) bbox0.right value(v=-0.112261) node(j=34) x value(v=-0.166094) y value(v=-0.0846418) dx value(v=0.499992) dy value(v=1.5259e-05) child1(node22) child0(node33) bbox1.top value(v=-0.238087) bbox1.bottom value(v=-0.363088) bbox1.left value(v=-0.362234) bbox1.right value(v=-0.112261) bbox0.top value(v=0.103319) bbox0.bottom value(v=-0.238087) bbox0.left value(v=-0.362234) bbox0.right value(v=-0.112261) node(j=35) x value(v=-0.527214) y value(v=-0.0568704) dx value(v=1.5259e-05) dy value(v=0.0468605) child1(ss28) child0(ss29) bbox1.top value(v=-0.138079) bbox1.bottom value(v=-0.238087) bbox1.left value(v=-0.437247) bbox1.right value(v=-0.362234) bbox0.top value(v=-0.15996) bbox0.bottom value(v=-0.216205) bbox0.left value(v=-0.443503) bbox0.right value(v=-0.437247) node(j=36) x value(v=-0.5411) y value(v=-0.0360266) dx value(v=1.5259e-05) dy value(v=0.281239) child1(node35) child0(ss29) bbox1.top value(v=-0.138079) bbox1.bottom value(v=-0.238087) bbox1.left value(v=-0.443503) bbox1.right value(v=-0.362234) bbox0.top value(v=-0.100572) bbox0.bottom value(v=-0.275593) bbox0.left value(v=-0.537255) bbox0.right value(v=-0.443503) node(j=37) x value(v=-0.360555) y value(v=-0.251301) dx value(v=1.5259e-05) dy value(v=0.37499) child1(node34) child0(node36) bbox1.top value(v=0.103319) bbox1.bottom value(v=-0.363088) bbox1.left value(v=-0.362234) bbox1.right value(v=-0.112261) bbox0.top value(v=-0.100572) bbox0.bottom value(v=-0.275593) bbox0.left value(v=-0.537255) bbox0.right value(v=-0.362234) node(j=38) x value(v=-0.749447) y value(v=-0.0568704) dx value(v=1.5259e-05) dy value(v=-0.124987) child1(ss29) child0(node37) bbox1.top value(v=-0.0255894) bbox1.bottom value(v=-0.350576) bbox1.left value(v=-0.937255) bbox1.right value(v=-0.537255) bbox0.top value(v=0.103319) bbox0.bottom value(v=-0.363088) bbox0.left value(v=-0.537255) bbox0.right value(v=-0.112261) node(j=39) x value(v=0.194995) y value(v=-0.0846418) dx value(v=1.5259e-05) dy value(v=0.187488) child1(node14) child0(node38) bbox1.top value(v=0.274403) bbox1.bottom value(v=-0.513085) bbox1.left value(v=-0.112261) bbox1.right value(v=0.212757) bbox0.top value(v=0.103319) bbox0.bottom value(v=-0.363088) bbox0.left value(v=-0.937255) bbox0.right value(v=-0.112261) node(j=40) x value(v=0.917235) y value(v=-0.445731) dx value(v=1.5259e-05) dy value(v=-0.0624857) child1(node39) child0(ss29) bbox1.top value(v=0.274403) bbox1.bottom value(v=-0.513085) bbox1.left value(v=-0.937255) bbox1.right value(v=0.212757) bbox0.top value(v=0.274403) bbox0.bottom value(v=-0.825589) bbox0.left value(v=0.212757) bbox0.right value(v=0.850248) ss(s=0) seg(i=0,is_first_of_ss=yes) v1.x value(v=0.222797) v1.y value(v=0.263447) v2.x value(v=0.222797) v2.y value(v=0.276478) oneSided normalAngle angleValue(angle=-4096) floor value(v=-0.218738) ceil value(v=0.843748) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=1,is_first_of_ss=no) v1.x value(v=0.222797) v1.y value(v=0.276478) v2.x value(v=0.306111) v2.y value(v=0.332021) oneSided normalAngle angleValue(angle=2815) floor value(v=-0.218738) ceil value(v=0.843748) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) ss(s=1) seg(i=2,is_first_of_ss=yes) v1.x value(v=0.229725) v1.y value(v=0.582025) v2.x value(v=0.194995) v2.y value(v=0.332021) oneSided normalAngle angleValue(angle=-180) floor value(v=1.5259e-05) ceil value(v=0.562493) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=24) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) ss(s=2) seg(i=3,is_first_of_ss=yes) v1.x value(v=0.222797) v1.y value(v=0.0542458) v2.x value(v=0.222797) v2.y value(v=0.137591) twoSided normalAngle angleValue(angle=-4096) floor value(v=-0.218738) ceil value(v=0.843748) back.floor value(v=0.887694) back.ceil value(v=0.971008) texture.mid(none) texture.upper(STARTAN3) texture.lower(STARTAN3) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(yes,yes) rowoffset value(v=1.5259e-05) seg(i=4,is_first_of_ss=no) v1.x value(v=0.222797) v1.y value(v=-0.0846418) v2.x value(v=0.222797) v2.y value(v=-0.00129702) twoSided normalAngle angleValue(angle=-4096) floor value(v=-0.218738) ceil value(v=0.843748) back.floor value(v=0.887694) back.ceil value(v=0.971008) texture.mid(none) texture.upper(STARTAN3) texture.lower(STARTAN3) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(yes,yes) rowoffset value(v=1.5259e-05) seg(i=5,is_first_of_ss=no) v1.x value(v=0.222797) v1.y value(v=-0.00129702) v2.x value(v=0.222797) v2.y value(v=0.0542458) oneSided normalAngle angleValue(angle=-4096) floor value(v=-0.218738) ceil value(v=0.843748) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=6,is_first_of_ss=no) v1.x value(v=0.222797) v1.y value(v=-0.334646) v2.x value(v=0.222797) v2.y value(v=-0.0846418) oneSided normalAngle angleValue(angle=-4096) floor value(v=-0.218738) ceil value(v=0.843748) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=7,is_first_of_ss=no) v1.x value(v=0.39379) v1.y value(v=-0.334646) v2.x value(v=0.222797) v2.y value(v=-0.334646) twoSided normalAngle angleValue(angle=-2048) floor value(v=-0.218738) ceil value(v=0.843748) back.floor value(v=0.858701) back.ceil value(v=0.894926) texture.mid(none) texture.upper(STARTAN3) texture.lower(STARTAN3) lightStatic(light=4) emptyLine(no) closedDoor(no) pegging(yes,yes) rowoffset value(v=1.5259e-05) ss(s=3) seg(i=8,is_first_of_ss=yes) v1.x value(v=0.222797) v1.y value(v=0.137591) v2.x value(v=0.222797) v2.y value(v=0.263447) oneSided normalAngle angleValue(angle=-4096) floor value(v=-0.218738) ceil value(v=0.843748) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) ss(s=4) seg(i=9,is_first_of_ss=yes) v1.x value(v=0.194995) v1.y value(v=-0.0846418) v2.x value(v=0.194995) v2.y value(v=-0.00129702) twoSided normalAngle angleValue(angle=-4096) floor value(v=0.0312352) ceil value(v=0.749996) back.floor value(v=0.876799) back.ceil value(v=0.97464) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(yes,yes) rowoffset value(v=1.5259e-05) seg(i=10,is_first_of_ss=no) v1.x value(v=0.222797) v1.y value(v=-0.00129702) v2.x value(v=0.222797) v2.y value(v=-0.0846418) twoSided normalAngle angleValue(angle=0) floor value(v=0.0312352) ceil value(v=0.749996) back.floor value(v=0.858701) back.ceil value(v=0.981872) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(yes,yes) rowoffset value(v=1.5259e-05) seg(i=11,is_first_of_ss=no) v1.x value(v=0.194995) v1.y value(v=-0.00129702) v2.x value(v=0.222797) v2.y value(v=-0.00129702) oneSided normalAngle angleValue(angle=2048) floor value(v=0.0312352) ceil value(v=0.749996) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(DOORSTOP) texture.upper(none) texture.lower(none) lightStatic(light=4) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=12,is_first_of_ss=no) v1.x value(v=0.222797) v1.y value(v=-0.0846418) v2.x value(v=0.194995) v2.y value(v=-0.0846418) oneSided normalAngle angleValue(angle=-2048) floor value(v=0.0312352) ceil value(v=0.749996) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(DOORSTOP) texture.upper(none) texture.lower(none) lightStatic(light=4) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) ss(s=5) seg(i=13,is_first_of_ss=yes) v1.x value(v=0.194995) v1.y value(v=0.0542458) v2.x value(v=0.194995) v2.y value(v=0.137591) twoSided normalAngle angleValue(angle=-4096) floor value(v=0.0312352) ceil value(v=0.749996) back.floor value(v=0.876799) back.ceil value(v=0.97464) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(yes,yes) rowoffset value(v=1.5259e-05) seg(i=14,is_first_of_ss=no) v1.x value(v=0.222797) v1.y value(v=0.137591) v2.x value(v=0.222797) v2.y value(v=0.0542458) twoSided normalAngle angleValue(angle=0) floor value(v=0.0312352) ceil value(v=0.749996) back.floor value(v=0.858701) back.ceil value(v=0.981872) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(yes,yes) rowoffset value(v=1.5259e-05) seg(i=15,is_first_of_ss=no) v1.x value(v=0.222797) v1.y value(v=0.0542458) v2.x value(v=0.194995) v2.y value(v=0.0542458) oneSided normalAngle angleValue(angle=-2048) floor value(v=0.0312352) ceil value(v=0.749996) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(DOORSTOP) texture.upper(none) texture.lower(none) lightStatic(light=4) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=16,is_first_of_ss=no) v1.x value(v=0.194995) v1.y value(v=0.137591) v2.x value(v=0.222797) v2.y value(v=0.137591) oneSided normalAngle angleValue(angle=2048) floor value(v=0.0312352) ceil value(v=0.749996) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(DOORSTOP) texture.upper(none) texture.lower(none) lightStatic(light=4) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) ss(s=6) seg(i=17,is_first_of_ss=yes) v1.x value(v=0.354726) v1.y value(v=-0.362417) v2.x value(v=0.222797) v2.y value(v=-0.334646) oneSided normalAngle angleValue(angle=-2319) floor value(v=-0.218738) ceil value(v=0.0937362) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN144) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=18,is_first_of_ss=no) v1.x value(v=0.222797) v1.y value(v=-0.334646) v2.x value(v=0.750576) v2.y value(v=-0.334646) twoSided normalAngle angleValue(angle=2048) floor value(v=-0.218738) ceil value(v=0.0937362) back.floor value(v=0.858701) back.ceil value(v=0.981872) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=4) emptyLine(no) closedDoor(no) pegging(yes,yes) rowoffset value(v=1.5259e-05) ss(s=7) seg(i=19,is_first_of_ss=yes) v1.x value(v=-0.166094) v1.y value(v=-0.112413) v2.x value(v=-0.166094) v2.y value(v=-0.0846418) oneSided normalAngle angleValue(angle=-4096) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=8) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=20,is_first_of_ss=no) v1.x value(v=0.0561074) v1.y value(v=-0.0846418) v2.x value(v=0.0561074) v2.y value(v=-0.112413) oneSided normalAngle angleValue(angle=0) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=8) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=0.31249) seg(i=21,is_first_of_ss=no) v1.x value(v=0.0561074) v1.y value(v=-0.112413) v2.x value(v=-0.166094) v2.y value(v=-0.112413) twoSided normalAngle angleValue(angle=-2048) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=0.884062) back.ceil value(v=0.916655) texture.mid(none) texture.upper(COMPUTE2) texture.lower(STEP6) lightStatic(light=16) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) seg(i=22,is_first_of_ss=no) v1.x value(v=-0.166094) v1.y value(v=-0.0846418) v2.x value(v=0.0561074) v2.y value(v=-0.0846418) twoSided normalAngle angleValue(angle=2048) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=0.876799) back.ceil value(v=0.97464) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=16) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) ss(s=8) seg(i=23,is_first_of_ss=yes) v1.x value(v=-0.166094) v1.y value(v=-0.112413) v2.x value(v=0.0561074) v2.y value(v=-0.112413) twoSided normalAngle angleValue(angle=2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=0.88043) back.ceil value(v=0.938415) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) ss(s=9) seg(i=24,is_first_of_ss=yes) v1.x value(v=-0.249439) v1.y value(v=-0.251301) v2.x value(v=-0.360555) v2.y value(v=-0.251301) oneSided normalAngle angleValue(angle=-2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=25,is_first_of_ss=no) v1.x value(v=-0.193896) v1.y value(v=-0.0846418) v2.x value(v=-0.193896) v2.y value(v=-0.112413) oneSided normalAngle angleValue(angle=0) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=20) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=0.187488) seg(i=26,is_first_of_ss=no) v1.x value(v=-0.360555) v1.y value(v=-0.251301) v2.x value(v=-0.360555) v2.y value(v=-0.0846418) oneSided normalAngle angleValue(angle=-4096) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=20) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) ss(s=10) seg(i=27,is_first_of_ss=yes) v1.x value(v=-0.193896) v1.y value(v=-0.112413) v2.x value(v=-0.166094) v2.y value(v=-0.112413) oneSided normalAngle angleValue(angle=2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=0.187488) ss(s=11) seg(i=28,is_first_of_ss=yes) v1.x value(v=0.0561074) v1.y value(v=-0.112413) v2.x value(v=0.0839094) v2.y value(v=-0.112413) oneSided normalAngle angleValue(angle=2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) ss(s=12) seg(i=29,is_first_of_ss=yes) v1.x value(v=0.0839094) v1.y value(v=-0.112413) v2.x value(v=0.0839094) v2.y value(v=-0.0846418) oneSided normalAngle angleValue(angle=-4096) floor value(v=-0.0624857) ceil value(v=0.781247) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=30,is_first_of_ss=no) v1.x value(v=0.194995) v1.y value(v=-0.0846418) v2.x value(v=0.0839094) v2.y value(v=-0.112413) twoSided normalAngle angleValue(angle=-1728) floor value(v=-0.0624857) ceil value(v=0.781247) back.floor value(v=0.884062) back.ceil value(v=0.916655) texture.mid(none) texture.upper(STARTAN3) texture.lower(STEP6) lightStatic(light=4) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) ss(s=13) seg(i=31,is_first_of_ss=yes) v1.x value(v=0.194995) v1.y value(v=-0.251301) v2.x value(v=0.139452) v2.y value(v=-0.251301) oneSided normalAngle angleValue(angle=-2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=32,is_first_of_ss=no) v1.x value(v=0.194995) v1.y value(v=-0.0846418) v2.x value(v=0.194995) v2.y value(v=-0.251301) oneSided normalAngle angleValue(angle=0) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=20) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=33,is_first_of_ss=no) v1.x value(v=0.0839094) v1.y value(v=-0.112413) v2.x value(v=0.194995) v2.y value(v=-0.0846418) twoSided normalAngle angleValue(angle=2367) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=0.876799) back.ceil value(v=0.97464) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=24) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) ss(s=14) seg(i=34,is_first_of_ss=yes) v1.x value(v=0.028336) v1.y value(v=-0.334646) v2.x value(v=-0.0272068) v2.y value(v=-0.334646) oneSided normalAngle angleValue(angle=-2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=35,is_first_of_ss=no) v1.x value(v=-0.0827802) v1.y value(v=-0.334646) v2.x value(v=-0.138323) v2.y value(v=-0.334646) oneSided normalAngle angleValue(angle=-2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=36,is_first_of_ss=no) v1.x value(v=0.139452) v1.y value(v=-0.251301) v2.x value(v=0.028336) v2.y value(v=-0.334646) oneSided normalAngle angleValue(angle=-1209) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=24) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=37,is_first_of_ss=no) v1.x value(v=-0.138323) v1.y value(v=-0.334646) v2.x value(v=-0.249439) v2.y value(v=-0.251301) oneSided normalAngle angleValue(angle=-2887) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=24) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=38,is_first_of_ss=no) v1.x value(v=-0.0272068) v1.y value(v=-0.334646) v2.x value(v=-0.0827802) v2.y value(v=-0.334646) twoSided normalAngle angleValue(angle=-2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=0.884062) back.ceil value(v=0.916655) texture.mid(none) texture.upper(STARTAN3) texture.lower(STARTAN3) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(yes,yes) rowoffset value(v=1.5259e-05) ss(s=15) seg(i=39,is_first_of_ss=yes) v1.x value(v=-0.0272068) v1.y value(v=-0.362417) v2.x value(v=-0.0827802) v2.y value(v=-0.362417) oneSided normalAngle angleValue(angle=-2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(DOOR3) texture.upper(none) texture.lower(none) lightStatic(light=4) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=40,is_first_of_ss=no) v1.x value(v=-0.0827802) v1.y value(v=-0.362417) v2.x value(v=-0.0827802) v2.y value(v=-0.334646) oneSided normalAngle angleValue(angle=-4096) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(LITE3) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=41,is_first_of_ss=no) v1.x value(v=-0.0272068) v1.y value(v=-0.334646) v2.x value(v=-0.0272068) v2.y value(v=-0.362417) oneSided normalAngle angleValue(angle=0) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(LITE3) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=42,is_first_of_ss=no) v1.x value(v=-0.0827802) v1.y value(v=-0.334646) v2.x value(v=-0.0272068) v2.y value(v=-0.334646) twoSided normalAngle angleValue(angle=2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=0.884062) back.ceil value(v=0.916655) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=4) emptyLine(no) closedDoor(no) pegging(yes,yes) rowoffset value(v=1.5259e-05) ss(s=16) seg(i=43,is_first_of_ss=yes) v1.x value(v=0.0839094) v1.y value(v=-0.0846418) v2.x value(v=0.0561074) v2.y value(v=-0.0846418) oneSided normalAngle angleValue(angle=-2048) floor value(v=-0.0624857) ceil value(v=0.781247) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=8) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=44,is_first_of_ss=no) v1.x value(v=0.0561074) v1.y value(v=0.137591) v2.x value(v=0.0839094) v2.y value(v=0.137591) oneSided normalAngle angleValue(angle=2048) floor value(v=-0.0624857) ceil value(v=0.781247) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=8) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=45,is_first_of_ss=no) v1.x value(v=0.194995) v1.y value(v=-0.00129702) v2.x value(v=0.194995) v2.y value(v=-0.0846418) twoSided normalAngle angleValue(angle=0) floor value(v=-0.0624857) ceil value(v=0.781247) back.floor value(v=0.887694) back.ceil value(v=0.971008) texture.mid(none) texture.upper(STARTAN3) texture.lower(STARTAN3) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(yes,yes) rowoffset value(v=1.5259e-05) seg(i=46,is_first_of_ss=no) v1.x value(v=0.194995) v1.y value(v=0.0542458) v2.x value(v=0.194995) v2.y value(v=-0.00129702) oneSided normalAngle angleValue(angle=0) floor value(v=-0.0624857) ceil value(v=0.781247) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=47,is_first_of_ss=no) v1.x value(v=0.194995) v1.y value(v=0.137591) v2.x value(v=0.194995) v2.y value(v=0.0542458) twoSided normalAngle angleValue(angle=0) floor value(v=-0.0624857) ceil value(v=0.781247) back.floor value(v=0.887694) back.ceil value(v=0.971008) texture.mid(none) texture.upper(STARTAN3) texture.lower(STARTAN3) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(yes,yes) rowoffset value(v=1.5259e-05) seg(i=48,is_first_of_ss=no) v1.x value(v=-0.166094) v1.y value(v=0.137591) v2.x value(v=0.0561074) v2.y value(v=0.137591) twoSided normalAngle angleValue(angle=2048) floor value(v=-0.0624857) ceil value(v=0.781247) back.floor value(v=0.88043) back.ceil value(v=0.938415) texture.mid(none) texture.upper(STARTAN3) texture.lower(STEP6) lightStatic(light=8) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) seg(i=49,is_first_of_ss=no) v1.x value(v=0.0561074) v1.y value(v=-0.0846418) v2.x value(v=-0.166094) v2.y value(v=-0.0846418) twoSided normalAngle angleValue(angle=-2048) floor value(v=-0.0624857) ceil value(v=0.781247) back.floor value(v=0.88043) back.ceil value(v=0.938415) texture.mid(none) texture.upper(STARTAN3) texture.lower(STEP6) lightStatic(light=8) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) seg(i=50,is_first_of_ss=no) v1.x value(v=-0.166094) v1.y value(v=-0.0846418) v2.x value(v=-0.166094) v2.y value(v=0.137591) twoSided normalAngle angleValue(angle=-4096) floor value(v=-0.0624857) ceil value(v=0.781247) back.floor value(v=0.88043) back.ceil value(v=0.938415) texture.mid(none) texture.upper(STARTAN3) texture.lower(STEP6) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) ss(s=17) seg(i=51,is_first_of_ss=yes) v1.x value(v=-0.166094) v1.y value(v=-0.0846418) v2.x value(v=-0.193896) v2.y value(v=-0.0846418) oneSided normalAngle angleValue(angle=-2048) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=16) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=52,is_first_of_ss=no) v1.x value(v=-0.193896) v1.y value(v=0.137591) v2.x value(v=-0.166094) v2.y value(v=0.137591) oneSided normalAngle angleValue(angle=2048) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=16) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=53,is_first_of_ss=no) v1.x value(v=-0.166094) v1.y value(v=0.137591) v2.x value(v=-0.166094) v2.y value(v=-0.0846418) twoSided normalAngle angleValue(angle=0) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=0.876799) back.ceil value(v=0.97464) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=8) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) seg(i=54,is_first_of_ss=no) v1.x value(v=-0.193896) v1.y value(v=-0.0846418) v2.x value(v=-0.193896) v2.y value(v=0.137591) twoSided normalAngle angleValue(angle=-4096) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=0.884062) back.ceil value(v=0.916655) texture.mid(none) texture.upper(COMPUTE2) texture.lower(STEP6) lightStatic(light=8) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) ss(s=18) seg(i=55,is_first_of_ss=yes) v1.x value(v=-0.193896) v1.y value(v=0.137591) v2.x value(v=-0.193896) v2.y value(v=-0.0846418) twoSided normalAngle angleValue(angle=0) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=0.88043) back.ceil value(v=0.938415) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=20) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) seg(i=56,is_first_of_ss=no) v1.x value(v=-0.360555) v1.y value(v=-0.0846418) v2.x value(v=-0.360555) v2.y value(v=0.137591) twoSided normalAngle angleValue(angle=-4096) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=0.88043) back.ceil value(v=0.938415) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=20) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) ss(s=19) seg(i=57,is_first_of_ss=yes) v1.x value(v=-0.166094) v1.y value(v=0.137591) v2.x value(v=-0.166094) v2.y value(v=0.165362) oneSided normalAngle angleValue(angle=-4096) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=8) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=58,is_first_of_ss=no) v1.x value(v=0.0561074) v1.y value(v=0.165362) v2.x value(v=0.0561074) v2.y value(v=0.137591) oneSided normalAngle angleValue(angle=0) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=8) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=0.31249) seg(i=59,is_first_of_ss=no) v1.x value(v=0.0561074) v1.y value(v=0.137591) v2.x value(v=-0.166094) v2.y value(v=0.137591) twoSided normalAngle angleValue(angle=-2048) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=0.876799) back.ceil value(v=0.97464) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=16) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) seg(i=60,is_first_of_ss=no) v1.x value(v=-0.166094) v1.y value(v=0.165362) v2.x value(v=0.0561074) v2.y value(v=0.165362) twoSided normalAngle angleValue(angle=2048) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=0.884062) back.ceil value(v=0.916655) texture.mid(none) texture.upper(COMPUTE2) texture.lower(STEP6) lightStatic(light=16) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) ss(s=20) seg(i=61,is_first_of_ss=yes) v1.x value(v=0.0561074) v1.y value(v=0.165362) v2.x value(v=-0.166094) v2.y value(v=0.165362) twoSided normalAngle angleValue(angle=-2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=0.88043) back.ceil value(v=0.938415) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) ss(s=21) seg(i=62,is_first_of_ss=yes) v1.x value(v=0.0839094) v1.y value(v=0.165362) v2.x value(v=0.0561074) v2.y value(v=0.165362) oneSided normalAngle angleValue(angle=-2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) ss(s=22) seg(i=63,is_first_of_ss=yes) v1.x value(v=0.0839094) v1.y value(v=0.137591) v2.x value(v=0.0839094) v2.y value(v=0.165362) oneSided normalAngle angleValue(angle=-4096) floor value(v=-0.0624857) ceil value(v=0.781247) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=0) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=64,is_first_of_ss=no) v1.x value(v=0.0839094) v1.y value(v=0.165362) v2.x value(v=0.194995) v2.y value(v=0.137591) twoSided normalAngle angleValue(angle=1729) floor value(v=-0.0624857) ceil value(v=0.781247) back.floor value(v=0.884062) back.ceil value(v=0.916655) texture.mid(none) texture.upper(STARTAN3) texture.lower(STEP6) lightStatic(light=4) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) ss(s=23) seg(i=65,is_first_of_ss=yes) v1.x value(v=-0.193896) v1.y value(v=0.165362) v2.x value(v=-0.193896) v2.y value(v=0.137591) oneSided normalAngle angleValue(angle=0) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=20) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=0.187488) seg(i=66,is_first_of_ss=no) v1.x value(v=-0.360555) v1.y value(v=0.137591) v2.x value(v=-0.360555) v2.y value(v=0.276478) oneSided normalAngle angleValue(angle=-4096) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=20) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) ss(s=24) seg(i=67,is_first_of_ss=yes) v1.x value(v=-0.166094) v1.y value(v=0.165362) v2.x value(v=-0.193896) v2.y value(v=0.165362) oneSided normalAngle angleValue(angle=-2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(BROWN1) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=0.187488) ss(s=25) seg(i=68,is_first_of_ss=yes) v1.x value(v=0.194995) v1.y value(v=0.332021) v2.x value(v=0.194995) v2.y value(v=0.137591) oneSided normalAngle angleValue(angle=0) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=20) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=69,is_first_of_ss=no) v1.x value(v=0.194995) v1.y value(v=0.137591) v2.x value(v=0.0839094) v2.y value(v=0.165362) twoSided normalAngle angleValue(angle=-2368) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=0.876799) back.ceil value(v=0.97464) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=24) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) seg(i=70,is_first_of_ss=no) v1.x value(v=-0.249439) v1.y value(v=0.276478) v2.x value(v=-0.131395) v2.y value(v=0.332021) oneSided normalAngle angleValue(angle=2621) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=24) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=71,is_first_of_ss=no) v1.x value(v=-0.131395) v1.y value(v=0.332021) v2.x value(v=0.0839094) v2.y value(v=0.332021) oneSided normalAngle angleValue(angle=2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=72,is_first_of_ss=no) v1.x value(v=0.0839094) v1.y value(v=0.332021) v2.x value(v=0.194995) v2.y value(v=0.332021) twoSided normalAngle angleValue(angle=2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=0.884062) back.ceil value(v=0.949279) texture.mid(none) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) ss(s=26) seg(i=73,is_first_of_ss=yes) v1.x value(v=-0.360555) v1.y value(v=0.276478) v2.x value(v=-0.249439) v2.y value(v=0.276478) oneSided normalAngle angleValue(angle=2048) floor value(v=1.5259e-05) ceil value(v=0.281239) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) ss(s=27) seg(i=74,is_first_of_ss=yes) v1.x value(v=0.0839094) v1.y value(v=0.332021) v2.x value(v=0.111681) v2.y value(v=0.637598) oneSided normalAngle angleValue(angle=3978) floor value(v=1.5259e-05) ceil value(v=0.562493) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=24) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=75,is_first_of_ss=no) v1.x value(v=0.194995) v1.y value(v=0.332021) v2.x value(v=0.0839094) v2.y value(v=0.332021) twoSided normalAngle angleValue(angle=-2048) floor value(v=1.5259e-05) ceil value(v=0.562493) back.floor value(v=0.884062) back.ceil value(v=0.916655) texture.mid(none) texture.upper(STARTAN3) texture.lower(STEP6) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) ss(s=28) seg(i=76,is_first_of_ss=yes) v1.x value(v=-0.360555) v1.y value(v=0.137591) v2.x value(v=-0.360555) v2.y value(v=-0.0846418) twoSided normalAngle angleValue(angle=0) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=0.884062) back.ceil value(v=0.916655) texture.mid(none) texture.upper(STARTAN3) texture.lower(STEP6) lightStatic(light=24) emptyLine(no) closedDoor(no) pegging(yes,no) rowoffset value(v=1.5259e-05) seg(i=77,is_first_of_ss=no) v1.x value(v=-0.527214) v1.y value(v=0.109819) v2.x value(v=-0.381369) v2.y value(v=0.137591) oneSided normalAngle angleValue(angle=2293) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=78,is_first_of_ss=no) v1.x value(v=-0.381369) v1.y value(v=0.137591) v2.x value(v=-0.360555) v2.y value(v=0.137591) oneSided normalAngle angleValue(angle=2048) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(SUPPORT2) texture.upper(none) texture.lower(none) lightStatic(light=32) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=79,is_first_of_ss=no) v1.x value(v=-0.360555) v1.y value(v=-0.0846418) v2.x value(v=-0.381369) v2.y value(v=-0.0846418) oneSided normalAngle angleValue(angle=-2048) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(SUPPORT2) texture.upper(none) texture.lower(none) lightStatic(light=32) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) seg(i=80,is_first_of_ss=no) v1.x value(v=-0.381369) v1.y value(v=-0.0846418) v2.x value(v=-0.527214) v2.y value(v=-0.0568704) oneSided normalAngle angleValue(angle=-2294) floor value(v=-0.0312352) ceil value(v=0.468742) back.floor value(v=-0.971008) back.ceil value(v=-0.971008) texture.mid(STARTAN3) texture.upper(none) texture.lower(none) lightStatic(light=28) emptyLine(no) closedDoor(no) pegging(no,no) rowoffset value(v=1.5259e-05) ss(s=29) planeDef(p=0,flat_id=FLOOR7_1) planeHeight value(v=-0.218738) planeLight(light=255) planeDef(p=1,flat_id=FLAT14) planeHeight value(v=-0.0624857) planeLight(light=224) planeDef(p=2,flat_id=FLAT14) planeHeight value(v=-0.0312352) planeLight(light=192) planeDef(p=3,flat_id=FLOOR4_8) planeHeight value(v=-0.0312352) planeLight(light=128) planeDef(p=4,flat_id=FLOOR4_8) planeHeight value(v=1.5259e-05) planeLight(light=144) planeDef(p=5,flat_id=FLOOR4_8) planeHeight value(v=1.5259e-05) planeLight(light=255) planeDef(p=6,flat_id=FLAT5_5) planeHeight value(v=0.0312352) planeLight(light=255) planeDef(p=7,flat_id=CEIL3_5) planeHeight value(v=0.281239) planeLight(light=144) planeDef(p=8,flat_id=CEIL3_5) planeHeight value(v=0.281239) planeLight(light=255) planeDef(p=9,flat_id=CEIL3_5) planeHeight value(v=0.468742) planeLight(light=128) planeDef(p=10,flat_id=CEIL3_5) planeHeight value(v=0.468742) planeLight(light=192) planeDef(p=11,flat_id=CEIL3_5) planeHeight value(v=0.562493) planeLight(light=144) planeDef(p=12,flat_id=FLAT5_5) planeHeight value(v=0.749996) planeLight(light=255) planeDef(p=13,flat_id=CEIL3_5) planeHeight value(v=0.781247) planeLight(light=224) planeDef(p=14,flat_id=F_SKY1) planeHeight value(v=1.5259e-05) planeLight(light=0) ssFloorPlane(s=0,p=0) ssCeilingPlane(s=0,p=14) ssFloorPlane(s=1,p=4) ssCeilingPlane(s=1,p=11) ssFloorPlane(s=2,p=0) ssCeilingPlane(s=2,p=14) ssFloorPlane(s=3,p=0) ssCeilingPlane(s=3,p=14) ssFloorPlane(s=4,p=6) ssCeilingPlane(s=4,p=12) ssFloorPlane(s=5,p=6) ssCeilingPlane(s=5,p=12) ssFloorPlane(s=6,p=0) ssCeilingPlane(s=6,p=14) ssFloorPlane(s=7,p=2) ssCeilingPlane(s=7,p=10) ssFloorPlane(s=8,p=4) ssCeilingPlane(s=8,p=7) ssFloorPlane(s=9,p=4) ssCeilingPlane(s=9,p=7) ssFloorPlane(s=10,p=4) ssCeilingPlane(s=10,p=7) ssFloorPlane(s=11,p=4) ssCeilingPlane(s=11,p=7) ssFloorPlane(s=12,p=1) ssCeilingPlane(s=12,p=13) ssFloorPlane(s=13,p=4) ssCeilingPlane(s=13,p=7) ssFloorPlane(s=14,p=4) ssCeilingPlane(s=14,p=7) ssFloorPlane(s=15,p=5) ssCeilingPlane(s=15,p=8) ssFloorPlane(s=16,p=1) ssCeilingPlane(s=16,p=13) ssFloorPlane(s=17,p=2) ssCeilingPlane(s=17,p=10) ssFloorPlane(s=18,p=4) ssCeilingPlane(s=18,p=7) ssFloorPlane(s=19,p=2) ssCeilingPlane(s=19,p=10) ssFloorPlane(s=20,p=4) ssCeilingPlane(s=20,p=7) ssFloorPlane(s=21,p=4) ssCeilingPlane(s=21,p=7) ssFloorPlane(s=22,p=1) ssCeilingPlane(s=22,p=13) ssFloorPlane(s=23,p=4) ssCeilingPlane(s=23,p=7) ssFloorPlane(s=24,p=4) ssCeilingPlane(s=24,p=7) ssFloorPlane(s=25,p=4) ssCeilingPlane(s=25,p=7) ssFloorPlane(s=26,p=4) ssCeilingPlane(s=26,p=7) ssFloorPlane(s=27,p=4) ssCeilingPlane(s=27,p=11) ssFloorPlane(s=28,p=3) ssCeilingPlane(s=28,p=9) begin
generation_config.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token_id": 93376,
3
+ "do_sample": false,
4
+ "eos_token_id": 93309,
5
+ "max_new_tokens": 8000,
6
+ "pad_token_id": 93309,
7
+ "transformers_version": "5.13.1"
8
+ }
infer.py ADDED
@@ -0,0 +1,302 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """The sole Doom inference program: portable stock-Hugging-Face generation.
2
+
3
+ This file is copied byte-identical to the root of every published Doom
4
+ bundle (``<bundle>/infer.py``) and executed there as a subprocess — by
5
+ anyone who downloads a bundle and by production render orchestration
6
+ (``run.py``) alike. It is executed, never imported. It intentionally
7
+ imports no TorchWright or ``torchwright_doom`` code: text enters through
8
+ the saved tokenizer, a stock ``Phi3ForCausalLM`` produces rows (a "row" is
9
+ one tokenizer id — one row of the tied embedding matrix, one sequence
10
+ position), and the only outputs are canonical integer ids plus their raw
11
+ tokenizer text. No pixels are produced here: the bundle's standalone
12
+ tools (``tools/txt_to_png.py``; token protocol in ``PROTOCOL.md`` in the
13
+ source repo) decode those ids into a frame afterward and do no inference.
14
+ The bundle manifest's schema, field meanings, and completeness gate live
15
+ in ``torchwright_doom/bundle/manifest.py`` in the source repo.
16
+ """
17
+
18
+ from __future__ import annotations
19
+
20
+ import argparse
21
+ import hashlib
22
+ import json
23
+ import os
24
+ import time
25
+ from pathlib import Path
26
+
27
+ # Multi-shard checkpoints otherwise load serially. Keep these defaults in the
28
+ # portable program so downloaded bundles and production use the same loader.
29
+ os.environ.setdefault("HF_ENABLE_PARALLEL_LOADING", "true")
30
+ os.environ.setdefault("HF_PARALLEL_LOADING_WORKERS", "8")
31
+
32
+ import torch
33
+ import transformers
34
+ from transformers import TextGenerationPipeline, pipeline
35
+
36
+ _PROGRESS_INTERVAL_SECONDS = 15.0
37
+
38
+
39
+ def _canonical_json(value) -> bytes:
40
+ return json.dumps(value, ensure_ascii=False, separators=(",", ":")).encode("utf-8")
41
+
42
+
43
+ def _sha(data: bytes) -> str:
44
+ return hashlib.sha256(data).hexdigest()
45
+
46
+
47
+ def _cuda_devices(model) -> list[torch.device]:
48
+ return sorted(
49
+ {parameter.device for parameter in model.parameters() if parameter.is_cuda},
50
+ key=str,
51
+ )
52
+
53
+
54
+ class _ProgressStreamer:
55
+ """Report generation throughput without changing or collecting tokens."""
56
+
57
+ def __init__(self, prompt_rows: int, max_new_tokens: int) -> None:
58
+ self.prompt_rows = prompt_rows
59
+ self.max_new_tokens = max_new_tokens
60
+ self.started = time.monotonic()
61
+ self.last_progress = self.started
62
+ self.prefill_seconds: float | None = None
63
+ self.finished: float | None = None
64
+ self.generated_rows = 0
65
+ self._saw_prompt = False
66
+
67
+ def put(self, value: torch.Tensor) -> None:
68
+ # GenerationMixin streams the complete prompt once before any emitted
69
+ # row. It is already accounted for separately in ``prompt_rows``.
70
+ if not self._saw_prompt:
71
+ self._saw_prompt = True
72
+ return
73
+ now = time.monotonic()
74
+ if self.prefill_seconds is None:
75
+ self.prefill_seconds = now - self.started
76
+ print(
77
+ f"[infer] prefill complete; rows={self.prompt_rows} "
78
+ f"elapsed={self.prefill_seconds:.1f}s",
79
+ flush=True,
80
+ )
81
+ self.generated_rows += value.numel()
82
+ if now - self.last_progress >= _PROGRESS_INTERVAL_SECONDS:
83
+ elapsed = now - self.started - self.prefill_seconds
84
+ last_row = int(value.reshape(-1)[-1])
85
+ print(
86
+ f"[infer] decode rows={self.generated_rows}/{self.max_new_tokens} "
87
+ f"total_position={self.prompt_rows + self.generated_rows} "
88
+ f"elapsed={elapsed:.1f}s "
89
+ f"rows/s={self.generated_rows / elapsed:.1f} "
90
+ f"last_row={last_row}",
91
+ flush=True,
92
+ )
93
+ self.last_progress = now
94
+
95
+ def end(self) -> None:
96
+ self.finished = time.monotonic()
97
+
98
+ @property
99
+ def decode_seconds(self) -> float:
100
+ stopped = self.finished or time.monotonic()
101
+ prefill = self.prefill_seconds or 0.0
102
+ return stopped - self.started - prefill
103
+
104
+
105
+ def main(argv: list[str] | None = None) -> int:
106
+ parser = argparse.ArgumentParser(description="Run stock Phi-3 Doom inference")
107
+ parser.add_argument("--model", type=Path)
108
+ parser.add_argument("--prompt", type=Path)
109
+ parser.add_argument("--output", type=Path, default=Path("out"))
110
+ parser.add_argument(
111
+ "--device", default="cuda" if torch.cuda.is_available() else "cpu"
112
+ )
113
+ parser.add_argument("--max-new-tokens", type=int)
114
+ args = parser.parse_args(argv)
115
+
116
+ # This file sits at the bundle root, so its own directory is the bundle.
117
+ model_dir = (args.model or Path(__file__).resolve().parent).resolve()
118
+ prompt_path = args.prompt or model_dir / "examples" / "e1m1_prompt.txt"
119
+ manifest = json.loads((model_dir / "doom_bundle_manifest.json").read_text())
120
+ if not manifest.get("validation", {}).get("complete"):
121
+ raise ValueError("Doom bundle manifest is not complete")
122
+
123
+ prompt_bytes = prompt_path.read_bytes()
124
+ prompt_sha256 = _sha(prompt_bytes)
125
+ bundled_prompt = prompt_sha256 == manifest["prompt"]["sha256"]
126
+
127
+ load_t0 = time.monotonic()
128
+ model_kwargs = {
129
+ "attn_implementation": "eager",
130
+ # Read each shard's bytes eagerly: deferring them to mmap page faults
131
+ # stalls badly on network filesystems, and eager reads are harmless on
132
+ # local disks.
133
+ "disable_mmap": True,
134
+ }
135
+ generate: TextGenerationPipeline
136
+ if args.device != "cpu":
137
+ # Accelerate builds the skeleton on meta and dispatches each shard
138
+ # directly to the target device. This avoids a second full-model
139
+ # ``model.to(cuda)`` pass through CPU-backed mmap pages.
140
+ generate = pipeline(
141
+ "text-generation",
142
+ model=str(model_dir),
143
+ dtype=torch.float32,
144
+ model_kwargs=model_kwargs,
145
+ device_map=args.device,
146
+ )
147
+ else:
148
+ generate = pipeline(
149
+ "text-generation",
150
+ model=str(model_dir),
151
+ dtype=torch.float32,
152
+ model_kwargs=model_kwargs,
153
+ )
154
+ tokenizer = generate.tokenizer
155
+ if tokenizer is None:
156
+ raise RuntimeError("text-generation pipeline loaded without a tokenizer")
157
+ model = generate.model
158
+ model.eval()
159
+ cuda_devices = _cuda_devices(model)
160
+ for cuda_device in cuda_devices:
161
+ # Reset after loading: the current allocation still includes all
162
+ # weights, while the peak will additionally capture generation cache
163
+ # and runtime workspace. This is the consumer-fit measurement.
164
+ torch.cuda.reset_peak_memory_stats(cuda_device)
165
+ attention_implementation = getattr(model.config, "_attn_implementation", None)
166
+ if attention_implementation != "eager":
167
+ # Eager is the implementation the published render was validated
168
+ # under; fused kernels change fp accumulation order, and this check
169
+ # keeps every run on the validated numerics.
170
+ raise RuntimeError(
171
+ "Doom inference requires eager attention, got "
172
+ f"{attention_implementation!r}"
173
+ )
174
+ if (
175
+ model.config.original_max_position_embeddings
176
+ != model.config.max_position_embeddings
177
+ ):
178
+ raise RuntimeError(
179
+ "default-RoPE Doom model has inconsistent original/max position "
180
+ "capacity; GenerationMixin would discard its cache at the boundary"
181
+ )
182
+ load_seconds = time.monotonic() - load_t0
183
+
184
+ prompt_text = prompt_bytes.decode("utf-8")
185
+ encoded_prompt = tokenizer(
186
+ prompt_text,
187
+ return_tensors="pt",
188
+ add_special_tokens=False,
189
+ )
190
+ input_device = next(model.parameters()).device
191
+ prompt_ids = [int(row) for row in encoded_prompt.input_ids[0].tolist()]
192
+ prompt_ids_sha256 = _sha(_canonical_json(prompt_ids))
193
+ # Only the bundled prompt has a manifest row-id expectation; a custom
194
+ # prompt is permitted, never verified, and recorded in the payload as
195
+ # matches_bundled_prompt=false.
196
+ if bundled_prompt and prompt_ids_sha256 != manifest["prompt"]["row_ids_sha256"]:
197
+ raise ValueError("bundled prompt text does not reproduce its manifest rows")
198
+
199
+ default_new = int(manifest["generation"]["max_new_tokens"])
200
+ max_new = default_new if args.max_new_tokens is None else int(args.max_new_tokens)
201
+ if max_new < 1:
202
+ raise ValueError("max-new-tokens must be >= 1")
203
+ if len(prompt_ids) + max_new > model.config.max_position_embeddings:
204
+ raise ValueError("requested generation exceeds model position capacity")
205
+
206
+ print(
207
+ f"[infer] model ready in {load_seconds:.1f}s; prompt={len(prompt_ids)} "
208
+ f"max_new_tokens={max_new} device={input_device}",
209
+ flush=True,
210
+ )
211
+ generate_t0 = time.monotonic()
212
+ progress = _ProgressStreamer(len(prompt_ids), max_new)
213
+ print(f"[infer] generation started; max_new_tokens={max_new}", flush=True)
214
+ with torch.inference_mode():
215
+ records = generate(
216
+ prompt_text,
217
+ add_special_tokens=False,
218
+ return_tensors=True,
219
+ do_sample=False,
220
+ use_cache=True,
221
+ max_new_tokens=max_new,
222
+ eos_token_id=tokenizer.eos_token_id,
223
+ pad_token_id=tokenizer.pad_token_id,
224
+ streamer=progress,
225
+ )
226
+ generate_seconds = time.monotonic() - generate_t0
227
+ sequence = records[0]["generated_token_ids"]
228
+ generated = [int(row) for row in sequence[len(prompt_ids) :]]
229
+ for cuda_device in cuda_devices:
230
+ torch.cuda.synchronize(cuda_device)
231
+ cuda_memory = [
232
+ {
233
+ "device": str(cuda_device),
234
+ "peak_allocated_bytes": torch.cuda.max_memory_allocated(cuda_device),
235
+ "peak_reserved_bytes": torch.cuda.max_memory_reserved(cuda_device),
236
+ }
237
+ for cuda_device in cuda_devices
238
+ ]
239
+ prefill_seconds = progress.prefill_seconds or generate_seconds
240
+ decode_seconds = progress.decode_seconds
241
+ raw_text = tokenizer.decode(
242
+ generated, skip_special_tokens=False, clean_up_tokenization_spaces=False
243
+ )
244
+ if not isinstance(raw_text, str):
245
+ raise TypeError("tokenizer returned a batched decode for one row list")
246
+ if tokenizer(raw_text, add_special_tokens=False)["input_ids"] != generated:
247
+ raise ValueError("decoded output text does not round-trip to generated rows")
248
+
249
+ args.output.mkdir(parents=True, exist_ok=True)
250
+ emitted_ids_sha256 = _sha(_canonical_json(generated))
251
+ stopped = bool(generated and generated[-1] == tokenizer.eos_token_id)
252
+ payload = {
253
+ "format": "torchwright_doom.output_ids.v1",
254
+ "bundle": manifest.get("bundle_identity"),
255
+ "compile_payload_sha256": manifest.get("compile_payload_sha256"),
256
+ "row_vocab_fingerprint": manifest.get("row_vocab_fingerprint"),
257
+ "prompt": {
258
+ "sha256": prompt_sha256,
259
+ "matches_bundled_prompt": bundled_prompt,
260
+ "row_ids": prompt_ids,
261
+ "row_ids_sha256": prompt_ids_sha256,
262
+ },
263
+ "emitted_row_ids": generated,
264
+ "emitted_row_ids_sha256": emitted_ids_sha256,
265
+ "generation": {
266
+ "mode": "transformers_pipeline",
267
+ "max_new_tokens": max_new,
268
+ "termination_reason": "terminal" if stopped else "cap",
269
+ },
270
+ "timing_seconds": {
271
+ "load": load_seconds,
272
+ "prefill": prefill_seconds,
273
+ "decode": decode_seconds,
274
+ "generate": generate_seconds,
275
+ },
276
+ "attention_implementation": attention_implementation,
277
+ "cuda_memory": cuda_memory,
278
+ "transformers_version": transformers.__version__,
279
+ }
280
+ (args.output / "output.ids.json").write_text(
281
+ json.dumps(payload, indent=2, sort_keys=True) + "\n", encoding="utf-8"
282
+ )
283
+ (args.output / "output.txt").write_text(raw_text + "\n", encoding="utf-8")
284
+ print(
285
+ f"[infer] wrote {len(generated)} rows in {generate_seconds:.1f}s; "
286
+ f"stopped={payload['generation']['termination_reason']}",
287
+ flush=True,
288
+ )
289
+ for memory in cuda_memory:
290
+ peak_allocated = int(memory["peak_allocated_bytes"])
291
+ peak_reserved = int(memory["peak_reserved_bytes"])
292
+ print(
293
+ f"[infer] {memory['device']} peak allocated="
294
+ f"{peak_allocated / 1024**3:.2f} GiB "
295
+ f"reserved={peak_reserved / 1024**3:.2f} GiB",
296
+ flush=True,
297
+ )
298
+ return 0
299
+
300
+
301
+ if __name__ == "__main__":
302
+ raise SystemExit(main())
model-00001-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0cc628154a0403a98dce13a14a04aa9c4ae2d5155871330ab5c48d6de307776a
3
+ size 465109456
model-00002-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1e4ffc1f0657135e24b04ee036896defbb6ab444bb0aa5e01022b55275552f92
3
+ size 465109456
model-00003-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3699c01e45d62bdae73096903c707ebe4f7388e596ceee8b63076a7e4c7ac26d
3
+ size 465109456
model-00004-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:de7d79a5348bbec42917ad986901172c92e84f7a7684c50ffb99d9d5f8f8125d
3
+ size 465109456
model-00005-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bf660a8840f18c4dd453bd3171e0a6568d3e3a90085428c7f556d3a15ba0f342
3
+ size 465109456
model-00006-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cf73b0b6bf8449f49b21cfcc0c7ddb7dafc2b8f5a4cb47165241f332101f4c3e
3
+ size 465109456
model-00007-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a53441756d3bbb487b6cee462d4b82819e4c9d87a4906219b7d23c861190c3bc
3
+ size 465109456
model-00008-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a3bab93bfd0dddb8c6e723f774e308b14d8c88865a92f4e135d1f718f56d4a4f
3
+ size 465109456
model-00009-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1bc3209dfb0bf693e4c45fe401f90fefa80b58c42fbee9d7700cfd017f18c743
3
+ size 465109456
model-00010-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9c5cd393f0858d9a56fe32e84c8492a9a95082d3c3b4519e0498cbf3c1738691
3
+ size 465109456
model-00011-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d022b5fca4efb516430bf93c615e533c3878d2a37050c4d2785fe72cac763333
3
+ size 465109456
model-00012-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:be413d513b0bc88290cfd4868e3eb79d92fb80187a4cf9a544c3e7d0e290d952
3
+ size 465109456
model-00013-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:727810bcacb2f45acc005a0c712b1f9f00fe7fa3a6011403408f59a3e472b28a
3
+ size 465109456
model-00014-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e3886516fb9ece5a20e34ea45c1325da5119015040343959028ce17c278b2141
3
+ size 465109456
model-00015-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:08fbc0b5f3fb4bbd60517db1b43a099f3398e9a4fc1e90b253e3d6468a82eafe
3
+ size 465109456
model-00016-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:73c57e353d2d81dce51571285ec4d6a9c7f45835b70f6ea2427f4fe9ba120293
3
+ size 465109456
model-00017-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2b816b1553cfccd509039304bbdcb8e9ff630ca893c56b332c13d7b4cc1418bf
3
+ size 465109456
model-00018-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7f48f7f11ed8b228948bfca831548cfc9193fcda969c3a4c6226b00588eb47f1
3
+ size 465109456
model-00019-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bfb133e6b1eb6da7adb13aaf42d27ad60136af0eed4ca83d9658d0974c63e0a6
3
+ size 465109456
model-00020-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:77acff50332986d843e39164b38062b84608b5ffd7527035bc4f90d92a97c07a
3
+ size 465109456
model-00021-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:841813956ad296ff7dfa366f691845a3fff66f59fbc17036c0b85138af05a68e
3
+ size 465109456
model-00022-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ccb27258415dab0c4e7c71aa23ea6428dd210f7f1a815fd9396ba5f870f112f6
3
+ size 465109456
model-00023-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:771f323ad59c8d6060062b5d352a702e184c3be1ef1f16065657287951e925c0
3
+ size 465109456
model-00024-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:024ff75479aec401bdd0b7a2e69e7962c13bc24ba31e2d78e537d54e2041d71e
3
+ size 465109456
model-00025-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7494c2aeedd7faf7c7fc56a2e0b58edb371ffb25b97be5078257636ea472364d
3
+ size 465109456
model-00026-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3305c93469fb8296a66644784170523947ae165ec3eff9f5882db4d2b714017b
3
+ size 465109456
model-00027-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8e55879bfeeeaeda73c47e9903dd2fe23b7a8237d06064f356023ddf2bbeb073
3
+ size 465109456
model-00028-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6a60d72ab5fcfbb0fb7a6a38966e794415b3c2f6f1882f36560409b27d0b7139
3
+ size 465109456
model-00029-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e59b124b2a5ecb733af0c45bedc8545b05370df1fd7adb98b2d305106eaeb07a
3
+ size 465109456
model-00030-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7466d561b92ab08e51c5cd9b4bbdc8a687c60ea881bb321cc074a750b14de206
3
+ size 465109456
model-00031-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7b56dd565c8917f0a3eeefc030621cad4047f904dcc5da8003f0ebe16f7c6bfe
3
+ size 465109456
model-00032-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:496f75c37c1bedfc003b603b271625e9b01f0f7a1794a7dce721dfc1ec3f7edb
3
+ size 465109456
model-00033-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b10763b0500792c446416f4df96d25676cead556c0cb8c664370377c8a65183f
3
+ size 465109456
model-00034-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7d47f486c01a08676c1530425256fef290b833cdb09484b61daa7542a8fa8b87
3
+ size 465109456
model-00035-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:06539eb6d83f388c07558e40291e8a401c51baa65300a0d98127f03f6b15db50
3
+ size 465109456
model-00036-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8684a841938224cb9fb1f72cd8ad57bf3ec5cd416b1a26ca98a1ec390042f0da
3
+ size 465109456
model-00037-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:624818f442f15e6c6053618b0578f7b8f3efaee818e1d9988996933fa7127cfd
3
+ size 465109456
model-00038-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b438ea755205949d8b2c1f528bae714bfc12666977b6d9cf3cfc2d0a89b2ab66
3
+ size 465109456
model-00039-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7354d2f962c89502338324725df4d67ad6425751f9c49773f81ef2135ebab3c4
3
+ size 465109456
model-00040-of-00071.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c90244aac1c298d2a5791df516b89a435bddaeea28f9cc69af0363a546fbcee8
3
+ size 465109456