now reads past cells and dimensions!
[pspp] / spo-notes
1 Exactly one NavRoot is always present
2
3 Exactly one NavHead is present except for .spo files that are (mostly)
4 empty, which have none
5
6 The Nav* strings only appear once per file, as:
7 ffff 0000 xxyy string
8 Sometimes there is zero spacing between these.
9
10 File begins with:
11         (00 | 0[1234] i0)
12         "SPSS Output Document"
13         (i0? | i1 63) ffff 0000
14         "NavHead"     # or any other "Nav*"
15         02 int32[x] int32[y] i24 int32[z] int32[w] int32[v]
16         (i0 | i1 | i2 | i3 | i4)
17         (i0| i1 | i2 | i3)
18         ffff 0000
19         "DspSimpleText"
20         00 (i0 (i0 | i1) 00)? ffff 0000
21         ("IndexedCollection" | "DspString")
22 and then with the IndexedCollection case:
23         00*14 ffff 0000
24 and the DspString case:
25         01 02 28 (00|05) 00 (00|01)
26         often followed by a string
27
28 The first byte might be a version number.  "Save As" or "Save" has the effect:
29     00 -> 00 (tried 1 out of 3)
30     01 -> 04 (tried 3 out of 3)
31     02 -> 04 (tried 1 out of many: deska, regress)
32     03 -> 04 (tried 1 out of many: 3d67bb)
33     04 -> 04 (tried 1 out of many: detailer2)
34
35 Charset numbers come from the list for \fcharset in the RTF
36 specification:
37 http://latex2rtf.sourceforge.net/rtfspec_6.html#rtfspec_10 The charset
38 number appears 4 bytes before the font name string, e.g. here it is
39 0xb2 or 178 (Arabic):
40
41      01 01 ed ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 bc 02 00 00 00 00 00 b2 00 00 00 22 41 72 61 62 69 63 20 54 72 61 6e 73 70 61 72 65 6e 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ............................."Arabic Transparent..............P...............
42
43 and here it is 0xee or 238 (Polish):
44
45      01 01 ed ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 bc 02 00 00 00 00 00 ee 00 00 00 22 41 72 69 61 6c 00 61 00 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ............................."Arial.a.l.......................P...............
46
47 It is usually 0 for "ANSI".
48
49 DspString is the label of the object that is currently selected.
50
51 The currently selected object is always the first in the file
52 regardless of the output hierarchy and order
53
54 The entire rec:NavPivot contents, minus the final 00 byte, appear
55 later in the file to identify the selected object.  However, the
56 initial 02 02*8 can disappear into a "float 0.0" if there's a leading
57 80.
58
59 Each object has a small negative number, e.g. 0xfffffe91 == -390.
60
61 Objects:
62   NavRoot: root output object
63   NavLog: log object
64   NavHead: heading with subobjects
65     NavTreeViewItem: assocated with NavHead somehow
66   NavTitle: title within a heading
67   NavNote: notes table
68   NavPivot: table
69
70 The start of the file might be a version number
71
72 x and y are either 0 or 2-3 byte values, e.g. 0x670b or 0x3b989.
73 z is a 2-3 byte negative value, e.g. 0xffff8997
74 w is a 2-byte value or 0
75 v is a 2-byte negative value or 0
76
77
78
79 rtf:
80
81         "Factor Analysis"
82         01 01
83         table 1
84         00 00 00 f9 00 00 00
85         "\rtf..."
86         00 18 00 00 00 00 00 00 00 de ff ff ff 18 00 00 00 00 00 00 00 28 00 00 00 28 00 00 00 18 04 00 00 ae 73 01 00 00 00 00 00 00 34 21 00 00 f8 2a 00 00 01 00 07 00 01 00 f6 04 00 00 f6 04 00 00 f6 04 00 00 f6 04 00 00 00 00 f0 00 00 00 00 00 01 00
87         "(Continued)"
88
89
90 rtf2:
91
92         "Factor Analysis"
93         01 01
94         table 1
95         00 00 00 da 00 00 00
96         "\rtf..."
97         00 ffff 0000
98
99 rtf3:
100
101         ...
102         00 1f 80 02 00 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 06 02 00 00 28 fd ff ff 02 00 00 00 01 00 00
103
104    1456  01 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00-00 00 00 00 05 80 01 02 28 05 00 01    03 4c 6f 67-               07 80 00 02 00 00........................(....Log......
105       3  01 00 00 00 01 00 00 00 03 80 00 00 00 00 00 00-00 00 00 00 05 80 01 02 28 05 00 01    03 4c 6f 67-               07 80 00 02 00 00........................(....Log......
106      13     00 00 00 00 00 00 00 03 80 00 00 00 00 00 00 00-00 00 00 05 80 01 02 28 05 00 00 00 08 53 50 53-53 20 4c 6f 67 07.......................(.....SPSS Log.
107      13     00 00 00 00 00 00 00 03 80 00 00 00 00 00 00 00-00 00 00 07 80 01 02 28 05 00 00 00 08 53 50 53-53 20 4c 6f 67 09.......................(.....SPSS Log.
108      13  01 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00-00 00 00 00 05 80 01 02 28 05 00 01    08 53 50 53-53 20 4c 6f 67 07........................(....SPSS Log.
109 notea.spo/Contents
110
111
112
113 PVPrintManager:
114
115         "PVPrintManager"
116         02 byte[x] 00 i2 (i0|i3) i1 00*7
117         sometimes 0000 ffff
118 where x is between 0a and 2e
119
120
121
122 regress, notea
123 --------------
124
125 ffff 0000 "NavPivot"
126         02 fa 3c 00 00 3b 5a 01 00
127         18 00 00 00 b4 35 ff ff 7f
128         02 00 00 13 28 ff ff
129         02 00 00 00
130         01 00 00 00
131
132         notea:
133         02 00 00 00 00 00 00 00 00
134         18 00 00 00 93 f0 ff ff dc
135         03 00 00 cd ef ff ff
136         02 00 00 00
137         01 00 00
138         missing terminator!
139
140 ffff 0000 "DspSimpleText"
141         00*10
142
143 ffff 0000 "DspString"
144         01 02 28 05 00 01 "Text Output"
145
146 ffff 0000 "NavOleItem"
147         00 01 00 00
148         07 00 00 00
149         01 00 00 00 00 00
150         01 00 00 00 00 00 00 00 00 00 00
151         01 00 00 00 00 00
152         "Regression"
153         01
154
155         notea:
156         00 01 00 00
157         01 00 00 00
158         01 00 00 00 00 00
159         01 00 00 00 00 00 00 00 00 00 00
160         01 00 00 00 00 00
161         00 01 01 f3 ff
162
163 ffff 0000 "PTPivotController"
164         02 67 02 00 00 a1 0d 00 00
165         64 00 00 00
166         64 00 00 00
167         64 00 00 00
168         64 00 00 00
169
170         notea:
171         02 29 20 69 31 38 28 66 38
172         64 00 00 00
173         64 00 00 00
174         64 00 00 00
175         64 00 00 00
176
177 ffff 0000 "PVPivotView"
178         04 00 00 00 00
179
180 ffff 0000 "PMPivotModel"
181         03
182
183 ffff 0000 "NDimensional__DspCell"
184         00 03 00 00 00
185
186 ffff 0000 "IndexedCollection"
187         00
188         05 00 00 00
189         01 00 13 80
190         00
191         0b 00 00 00
192         01 00 13 80
193         00
194         02 00 00 00
195         01 00
196
197 ffff 0000 "DspCell"
198         00 03 80 00*10
199
200 ffff 0000 "DspNumber"
201
202 NavTitle  02 00 00 00 00 00 00 00 00 18 00 00 00 03 .. .. .. 00 04 00 00 .. .. ff ff 02 00 00 00 01 00 00
203
204 80 02 <double>
205 80 01 02 28 05 00 01 <len1> <string>
206 80 01 02 28 05 00 01 ff <len2> <string>
207 80 01 03 28 05 80 02 <double> 
208
209 80 00 03
210 80 00 00 00 00 00 00 00 00 00 00 ..
211 80 01 .. .. .. ..
212
213 DspNumber:
214         01 <decimals> <width> <type>
215
216 NDimensional__DspCell:
217         00 int32[ndims]
218
219 IndexedCollection: 7+(9*ndims) bytes
220         00 0e 00 00 00 01 00
221
222         00 22 00 00 00 01 00
223   11 80 00 08 00 00 00 01 00
224
225         00 5c 00 00 00 01 00
226   13 80 00 5c 00 00 00 01 00
227   13 80 00 05 00 00 00 01 00
228
229         00 01 00 00 00 01 00
230   11 80 00 02 00 00 00 01 00
231   11 80 00 03 00 00 00 01 00
232   11 80 00 03 00 00 00 01 00
233
234            ^^ number of categories
235
236 ----------------------------------------------------------------------
237 ab1.dump
238
239 3 dimensions, 92x92x5:
240     NDimensional__DspCell  00 03 00 00 00
241
242     IndexedCollection  00 5c 00 00 00 01 00 13 80 00 5c 00 00 00 01 00 13 80 00 05 00 00 00 01 00
243
244 The cells are in order last dimension changes most quickly.
245
246 ----------------------------------------------------------------------
247
248 ZMAW_zaj3.dump
249
250 4-dimensions, 1x2x3x3, 18 cells
251
252 16 80 -> next 4th dim
253 11 80 00 03 00 00 00 01 00 -> increment another dim
254
255 ----------------------------------------------------------------------
256
257 rec:PMModelItemInfo 00
258  .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Contents"                           07 .. .. .. 55 80 .. 57 80 .. 
259  00 .. .. .. .. .. .. .. 07 .. 74 0e cell F40.2   "Output Created"                   .. .. .. .. 55 80 .. 57 80 ..
260  01 .. .. .. .. .. .. .. 08 .. 74 0e cell F40.2   "Comments"                         .. .. .. .. 55 80 .. 57 80 ..
261  .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2   "Input"                            06 .. .. .. 55 80 .. 57 80 ..
262  02 .. .. .. .. .. .. .. 0a .. 74 0e cell F40.2     "Data"                           .. .. .. .. 55 80 .. 57 80 ..
263  03 .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Active Dataset"                 .. .. .. .. 55 80 .. 57 80 ..
264  04 .. .. .. .. .. .. .. 0e .. 74 0e cell F40.2     "Filter"                         .. .. .. .. 55 80 .. 57 80 ..
265  05 .. .. .. .. .. .. .. 11 .. 74 0e cell F40.2     "Weight"                         .. .. .. .. 55 80 .. 57 80 ..
266  06 .. .. .. .. .. .. .. 12 .. 74 0e cell F40.2     "Split File"                     .. .. .. .. 55 80 .. 57 80 ..
267  07 .. .. .. .. .. .. .. 13 .. 74 0e cell F40.2     "N of Rows in Working Data File" .. .. .. .. 55 80 .. 57 80 .. 
268  .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2   "Missing Value Handling"           02 .. .. .. 55 80 .. 57 80 ..
269  08 .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Definition of Missing"          .. .. .. .. 55 80 .. 57 80 ..
270  09 .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Cases Used"                     .. .. .. .. 55 80 .. 57 80 ..
271  0a .. .. .. .. .. .. .. 17 .. 74 0e cell F40.2   "Weight Handling"                  .. .. .. .. 55 80 .. 57 80 ..
272  0b .. .. .. .. .. .. .. 18 .. 74 0e cell F40.2   "Syntax"                           .. .. .. .. 55 80 .. 57 80 ..
273  .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2   "Resources"                        03 .. .. .. 55 80 .. 57 80 ..
274  0c .. .. .. .. .. .. .. 1b .. 74 0e cell F40.2     "Elapsed Time"                   .. .. .. .. 55 80 .. 57 80 ..
275  0d .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Maximum Memory Required"        .. .. .. .. 55 80 .. 57 80 ..
276  0e .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Processor Time"
277
278 ab1:
279
280 rec:PMModelItemInfo ..
281  .. .. .. .. 01 .. .. .. 91 1a 74 0e cell F40.2 "Statistics"                         05 .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
282  00 .. .. .. .. .. .. .. 98 1a 74 0e cell F40.2 "Pearson Correlation"                .. .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
283  01 .. .. .. .. .. .. .. 99 1a 74 0e cell F40.2 "Sig. (2-tailed)"                    .. .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
284  02 .. .. .. .. .. .. .. 96 1a 74 0e cell F40.2 "Sum of Squares and Cross-products"  .. .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
285  03 .. .. .. .. .. .. .. 97 1a 74 0e cell F40.2 "Covariance"                         .. .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
286  04 .. .. .. .. .. .. .. 94 1a 74 0e cell F40.2 "N"                                  .. .. .. .. .. .. .. .. .. ..
287  05 .. .. .. 01 .. ff 7f 57 19 02 .. ff 7f 5b 19 02 .. ff 7f 5f 19 02 .. ff 7f 63 19 02 .. ff 7f 67 19 02 .. .. 05 .. .. .. .. .. .. .. .. .. 01 .. .. .. 02 .. .. .. 03 .. .. .. 04 .. .. .. ff 7f 4f 19 02 80 ..
288  ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
289  .. .. .. .. 01 .. .. .. 90 1a 74 0e
290
291 rec:PMModelItemInfo .. ..
292  .. .. .. 01 .. .. .. ff ff ff ff cell F40.2       "score"      01 .. .. .. 86 80 .. 88 80 .. ..
293  .. .. .. .. .. .. .. f4 0e 74 0e cell F40.2         "Valid"    09 .. .. .. 86 80 .. 88 80 .. ..
294  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "17..."  .. .. .. .. 86 80 .. 88 80 .. 01
295  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "22..."  .. .. .. .. 86 80 .. 88 80 .. 02
296  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "26..."  .. .. .. .. 86 80 .. 88 80 .. 03
297  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "29..."  .. .. .. .. 86 80 .. 88 80 .. 04
298  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "33..."  .. .. .. .. 86 80 .. 88 80 .. 05
299  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "37..."  .. .. .. .. 86 80 .. 88 80 .. 06
300  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "40..."  .. .. .. .. 86 80 .. 88 80 .. 07
301  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "48..."  .. .. .. .. 86 80 .. 88 80 .. 08
302  .. .. .. .. .. .. .. f2 0e 74 0e cell F40.2         "Total"    .. .. .. .. .. .. .. .. .. .. 09
303  .. .. .. 01 .. 90 .. 94 .. 98 .. 9c .. a0 .. a4 .. a8 .. ac .. b0 .. .. 09 .. .. .. .. .. .. .. .. .. 01 .. .. .. 02 .. .. .. 03 .. .. .. 04 .. .. .. 05 .. .. .. 06 .. .. .. 07 .. .. .. 08 .. ..
304  .. 84 80 .. 86 80 .. 88 80 .. .. .. .. .. 01 .. .. .. eb 0e 74 0e cell F40.2       "Statistics"
305  04 .. .. .. 86 80 .. 88 80 .. .. .. .. .. .. .. .. .. dc 0e 74 0e cell F40.2         "Frequency"
306  .. .. .. .. 86 80 .. 88 80 .. 01 .. .. .. .. .. .. .. e6 0e 74 0e cell F40.2         "Percent"
307  .. .. .. .. 86 80 .. 88 80 .. 02 .. .. .. .. .. .. .. f5 0e 74 0e cell F40.2         "Valid Percent"
308  .. .. .. .. 86 80 .. 88 80 .. 03 .. .. .. .. .. .. .. da 0e 74 0e cell F40.2         "Cumulative Percent"
309  .. .. .. .. .. .. .. .. .. .. 04 .. .. .. 01 .. b9 .. bd .. c1 .. c5 .. .. 04 .. .. .. .. .. .. .. .. .. 01 .. .. .. 02 .. .. .. 03 .. .. .. .. .. .. .. .. 01 .. .. 11 .. .. .. .. .. .. .. .. .. 4b .. .. .. .. .. .. .. .. .. .. ..
310
311 Output_201B:
312
313 rec:PMModelItemInfo       00
314 00 00 00 00 01 00 00 00 00 00 00 00 cell F40.2 "Variables" 5a 00 00 00 64 85 00 66 85 00
315 00 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10149"    00 00 00 00 64 85 00 66 85 00
316 01 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10150"    00 00 00 00 64 85 00 66 85 00
317 02 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10154"    00 00 00 00 64 85 00 66 85 00
318 03 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10168"    00 00 00 00 64 85 00 66 85 00
319 04 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10171"    00 00 00 00 64 85 00 66 85 00
320 05 00 00 00 00 00 00 00 ff ff ff ff
321 cell F40.2 "i10183"
322  00 00 00 00 64 85 00 66 85 00 06 00 00 00 00 00 00 00 ff ff ff ff
323 cell F40.2 "i10184"
324  00 00 00 00 64 85 00 66 85 00 07 00 00 00 00 00 00 00 ff ff ff ff
325 cell F40.2 "i10212"
326  00 00 00 00 64 85 00 66 85 00 08 00 00 00 00 00 00 00 ff ff ff ff
327 cell F40.2 "i10220"
328  00 00 00 00 64 85 00 66 85 00 09 00 00 00 00 00 00 00 ff ff ff ff ....d..f..............
329 cell F40.2 "i10222"
330  00 00 00 00 64 85 00 66 85 00 0a 00 00 00 00 00 00 00 ff ff ff ff ....d..f..............
331 cell F40.2 "i10226"
332  00 00 00 00 64 85 00 66 85 00 0b 00 00 00 00 00 00 00 ff ff ff ff
333 cell F40.2 "i10228"
334  00 00 00 00 64 85 00 66 85 00 0c 00 00 00 00 00 00 00 ff ff ff ff
335 cell F40.2 "i10229"
336  00 00 00 00 64 85 00 66 85 00 0d 00 00 00 00 00 00 00 ff ff ff ff ....d..f..............
337 cell F40.2 "i10230"
338  00 00 00 00 64 85 00 66 85 00 0e 00 00 00 00 00 00 00 ff ff ff ff
339 cell F40.2 "i10234"
340  00 00 00 00 64 85 00 66 85 00 0f 00 00 00 00 00 00 00 ff ff ff ff
341 cell F40.2 "i10244"
342  00 00 00 00 64 85 00 66 85 00 10 00 00 00 00 00 00 00 ff ff ff ff
343 cell F40.2 "i10247"
344  00 00 00 00 64 85 00 66 85 00 11 00 00 00 00 00 00 00 ff ff ff ff
345 cell F40.2 "i10250"
346  00 00 00 00 64 85 00 66 85 00 12 00 00 00 00 00 00 00 ff ff ff ff
347 cell F40.2 "i10265"
348  00 00 00 00 64 85 00 66 85 00 13 00 00 00 00 00 00 00 ff ff ff ff
349 cell F40.2 "i10266"
350  00 00 00 00 64 85 00 66 85 00 14 00 00 00 00 00 00 00 ff ff ff ff
351 cell F40.2 "i10269"
352  00 00 00 00 64 85 00 66 85 00 15 00 00 00 00 00 00 00 ff ff ff ff
353 cell F40.2 "i10270"
354  00 00 00 00 64 85 00 66 85 00 16 00 00 00 00 00 00 00 ff ff ff ff
355 cell F40.2 "i10272"
356  00 00 00 00 64 85 00 66 85 00 17 00 00 00 00 00 00 00 ff ff ff ff
357 cell F40.2 "i10286"
358  00 00 00 00 64 85 00 66 85 00 18 00 00 00 00 00 00 00 ff ff ff ff
359
360
361
362 ff is a way to say that there's a 4-byte number instead of 1-byte?
363
364
365 01 01 ed ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 bc 02 00 00 00 00 00 00 00 00 00 22 41 72 69 61 6c 00 61 00 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
366 07 80 00 02 00 00 00 0a 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00
367 01 01 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 01 00 00 00 00 00 00 00 00 00 22 43 6f 75 72 69 65 72 20 4e 65 77 00 72 00 20 00 4e 00 65 00 77 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
368 07 80 00 00 00 00 00 0f 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00
369 00
370
371
372  .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. 78 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22
373  .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. ef ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22
374  .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f2 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. bc 02 .. .. 01 .. .. .. .. .. .. 12
375  .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f2 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22
376  80 .. 80 .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22
377
378
379
380 record type 02
381 ==============
382
383 02 int16*4 int32*4
384
385
386
387 rec:NavLog
388
389 02 .. .. .. .. .. .. .. ..
390 18 .. .. .. .. .. .. .. b3 02 .. .. 30 f8 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogA" 07 80 .. 02 .. .. .. 0f .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0.......
391 18 .. .. .. 0e f8 ff ff b3 02 .. .. 3e f0 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogB" 07 80 .. 02 .. .. .. 13 .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0.......
392 18 .. .. .. 1c f0 ff ff 5f 02 .. .. 4c e8 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogC" 07 80 .. 02 .. .. .. 17 .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0.......
393 18 .. .. .. 2a e8 ff ff 5f 02 .. .. 5a e0 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogD" 07 80 .. 02 .. .. .. 1b .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0.......
394 18 .. .. .. 38 e0 ff ff 5f 02 .. .. 68 d8 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogE" 07 80 .. 02 .. .. .. 1f .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 02 .. 02 .. .. ..
395
396
397 NavTreeViewItem:
398
399 last bit is the number of children plus one, e.g. here it has 0x12+1
400 children.  It's actually the total number of nodes including the root
401 Output node.
402
403 rec:NavTreeViewItem       .. .. .. .. .. 02 .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. .. .. .. 18 .. .. .. .. .. .. .. de ff ff ff 18 .. .. .. .. .. .. .. 28 .. .. .. 28 .. .. .. cb 02 .. .. f0 86 .. .. .. .. .. .. .. f8 2a .. .. 34 21 .. .. 01 .. 0f .. 02 .. f6 04 .. .. f6 04 .. .. f6 04 .. .. f6 04 .. .. .. .. f0 .. .. .. 7c 02 01 .. ...............................................(...(.................*..4!..............................|...
404 "(Continued)"
405  01 01 .. .. ..
406 rtf
407  01 01 .. .. ..
408 rtf
409  .. 13 ..
410
411
412 Node depth:
413
414 The "04 00 00 00 04 00 00" is the number of nodes above the node, in
415 this case 4, three Headings and the Output node.  The first 04 is
416 reliable, the second one is sometimes 01.
417
418     00 01
419     float 0.000000
420      18 00 00 00
421     -46782  5f 02 00 00
422     -48782  04 00 00 00 04 00 00
423     cell F40.2 "LogZ"
424      07 80 00 02 00 00 00 7b 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 01 01 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90
425     font
426     rtf
427
428 The node numbering is insane: in decimal each node's number decreases
429 (these numbers are negative) by 2000 then by 34 alternately, except
430 that if a node is collapsed it *increases* by 2000 then decreases by
431 2000.  Below (test15.spo), LogI and LogN are collapsed:
432
433     5:rec:NavLog                02 00 00 00 00 00 00 00 00 18 00 00 00
434     6:-83394 (-83394)  5f 02 00 00
435     7:-85394 (-2000)  04 00 00 00 04 00 00 00
436     12:"LogAC"
437     18:-34 (+85360)  18 00 00 00 00 00 00 00 28 00 00 00 28 00 00 00 cb 02 00 00 92 4d 01 00 00 00 00 00 00 f8 2a 00 00 34 21 00 00 01 00 0f 00 02 00 f6 04 00 00 f6 04 00 00 f6 04 00 00 f6 04 00 00 00 00 f0 00 00 00 7c 02 01 00 ........(...(........M........*..4!..............................|...
438     31:-2000 (-1966)  01 00 00 00 01 00 00
439     32:cell F40.2 "LogA"
440     39:-2034 (-34)  b3 02 00 00
441     40:-4034 (-2000)  01 00 00 00 01 00 00
442     41:cell F40.2 "LogB"
443     48:-4068 (-34)  5f 02 00 00
444     49:-6068 (-2000)  01 00 00 00 01 00 00
445     50:cell F40.2 "LogC"
446     57:-6102 (-34)  5f 02 00 00
447     58:-8102 (-2000)  01 00 00 00 01 00 00
448     59:cell F40.2 "LogD"
449     66:-8136 (-34)  5f 02 00 00
450     67:-10136 (-2000)  01 00 00 00 01 00 00
451     68:cell F40.2 "LogE"
452     75:-10170 (-34)  5f 02 00 00
453     76:-12170 (-2000)  01 00 00 00 01 00 00
454     77:cell F40.2 "LogF"
455     88:-12204 (-34)  5f 02 00 00
456     89:-14204 (-2000)  02 00 00 00 02 00 00
457     90:cell F40.2 "LogG"
458     97:-14238 (-34)  5f 02 00 00
459     98:-16238 (-2000)  02 00 00 00 02 00 00
460     99:cell F40.2 "LogH"
461     106:-16272 (-34)  5f 02 00 00
462     107:-18272 (-2000)  02 00 00 00 02 00 00
463     108:cell F40.2 "LogI"
464     115:-16272 (+2000)  5f 02 00 00
465     116:-18272 (-2000)  02 00 00 00 02 00 00
466     117:cell F40.2 "LogJ"
467     124:-18306 (-34)  5f 02 00 00
468     125:-20306 (-2000)  02 00 00 00 02 00 00
469     126:cell F40.2 "LogK"
470     133:-20340 (-34)  5f 02 00 00
471     134:-22340 (-2000)  02 00 00 00 02 00 00
472     135:cell F40.2 "LogL"
473     142:-22374 (-34)  5f 02 00 00
474     143:-24374 (-2000)  02 00 00 00 02 00 00
475     144:cell F40.2 "LogM"
476     151:-24408 (-34)  5f 02 00 00
477     152:-26408 (-2000)  02 00 00 00 02 00 00
478     153:cell F40.2 "LogN"
479     160:-24408 (+2000)  5f 02 00 00
480     161:-26408 (-2000)  02 00 00 00 02 00 00
481     162:cell F40.2 "LogO"
482     169:-26442 (-34)  5f 02 00 00
483     170:-28442 (-2000)  02 00 00 00 02 00 00
484     171:cell F40.2 "LogP"
485     178:-28476 (-34)  5f 02 00 00
486     179:-30476 (-2000)  02 00 00 00 02 00 00
487     180:cell F40.2 "LogQ"
488     187:-30510 (-34)  5f 02 00 00
489     188:-32510 (-2000)  02 00 00 00 02 00 00
490     189:cell F40.2 "LogR"
491     196:-32544 (-34)  5f 02 00 00
492     197:-34544 (-2000)  02 00 00 00 02 00 00
493     198:cell F40.2 "LogS"
494     205:-34578 (-34)  5f 02 00 00
495     206:-36578 (-2000)  02 00 00 00 02 00 00
496     207:cell F40.2 "LogT"
497     214:-36612 (-34)  5f 02 00 00
498     215:-38612 (-2000)  02 00 00 00 02 00 00
499     216:cell F40.2 "LogU"
500     223:-38646 (-34)  5f 02 00 00
501     224:-40646 (-2000)  02 00 00 00 01 00 00
502     225:cell F40.2 "LogV"
503     236:-40680 (-34)  5f 02 00 00
504     237:-42680 (-2000)  03 00 00 00 03 00 00
505     238:cell F40.2 "LogW"
506     245:-42714 (-34)  5f 02 00 00
507     246:-44714 (-2000)  03 00 00 00 03 00 00
508     247:cell F40.2 "LogX"
509     254:-44748 (-34)  5f 02 00 00
510     255:-46748 (-2000)  03 00 00 00 03 00 00
511     256:cell F40.2 "LogY"
512     267:-46782 (-34)  5f 02 00 00
513     268:-48782 (-2000)  04 00 00 00 04 00 00
514     269:cell F40.2 "LogZ"
515     276:-48816 (-34)  5f 02 00 00
516     277:-50816 (-2000)  04 00 00 00 04 00 00
517     278:cell F40.2 "LogAA"
518     285:-50850 (-34)  5f 02 00 00
519     286:-52850 (-2000)  04 00 00 00 04 00 00
520     287:cell F40.2 "LogAB"
521     294:-52884 (-34)  5f 02 00 00
522     295:-54884 (-2000)  04 00 00 00 01 00 00
523     296:cell F40.2 "LogAC"
524     303:-54918 (-34)  5f 02 00 00
525     304:-56918 (-2000)  04 00 00 00 04 00 00
526     305:cell F40.2 "LogAC"
527     312:-56952 (-34)  5f 02 00 00
528     313:-58952 (-2000)  04 00 00 00 04 00 00
529     314:cell F40.2 "LogAC"
530     321:-58986 (-34)  5f 02 00 00
531     322:-60986 (-2000)  04 00 00 00 04 00 00
532     323:cell F40.2 "LogAC"
533     330:-61020 (-34)  5f 02 00 00
534     331:-63020 (-2000)  04 00 00 00 04 00 00
535     332:cell F40.2 "LogAC"
536     339:-63054 (-34)  5f 02 00 00
537     340:-65054 (-2000)  04 00 00 00 04 00 00
538     341:cell F40.2 "LogAC"
539     348:-65088 (-34)  5f 02 00 00
540     349:-67088 (-2000)  04 00 00 00 04 00 00
541     350:cell F40.2 "LogAC"
542     357:-67122 (-34)  5f 02 00 00
543     358:-69122 (-2000)  04 00 00 00 04 00 00
544     359:cell F40.2 "LogAC"
545     366:-69156 (-34)  5f 02 00 00
546     367:-71156 (-2000)  04 00 00 00 04 00 00
547     368:cell F40.2 "LogAC"
548     375:-71190 (-34)  5f 02 00 00
549     376:-73190 (-2000)  04 00 00 00 04 00 00
550     377:cell F40.2 "LogAC"
551     384:-73224 (-34)  5f 02 00 00
552     385:-75224 (-2000)  04 00 00 00 04 00 00
553     386:cell F40.2 "LogAC"
554     393:-75258 (-34)  5f 02 00 00
555     394:-77258 (-2000)  04 00 00 00 04 00 00
556     395:cell F40.2 "LogAC"
557     402:-77292 (-34)  5f 02 00 00
558     403:-79292 (-2000)  04 00 00 00 04 00 00
559     404:cell F40.2 "LogAC"
560     411:-79326 (-34)  5f 02 00 00
561     412:-81326 (-2000)  04 00 00 00 04 00 00
562     413:cell F40.2 "LogAC"
563     420:-81360 (-34)  5f 02 00 00
564     421:-83360 (-2000)  04 00 00 00 04 00 00
565     422:cell F40.2 "LogAC"
566
567
568 ZMAW_zaj3:
569
570 rec:PVTextStyle
571 .. 02 .. 02
572 .. c8 .. LM .. RM .. TM .. BM .. .. .. 01 .. yy yy yy yy ww ww .. .. xx xx xx xx .. .. .. .. zz zz zz zz ii uu ss cc cc cc cc 22 "Arial" FF FF FF .. .. .. a7 80 .. 01 .. .. .. .. .. BB BB BB .. SS .. a9 80 .. 01 .. ..
573 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 01 .. ..
574 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. .. .. ..
575 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 01 .. 02
576 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 02 .. 03
577 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 01 .. ..
578 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 01 .. ..
579 .. c8 .. 68 01 68 01 28 .. 28 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. .. 01 .. 01 .. .. .. .. .. .. .. 01
580 .. 01 .. .. .. .. .. .. .. 01 .. 01 .. .. .. .. .. .. .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. .. 01 .. 01 .. .. .. .. .. .. .. 01 ..
581
582 yy: font size, f2ffffff or f3ffffff is normalish, f8ffffff is tiny,
583 f0ffffff is big
584 ww: something to do with font size or stretch. 01 is normal, 02+ gets weird
585 xx: rotation angle
586 zz: 400 is normal weight, 700+ is bold
587 ii: 1+ is italic
588 uu: 1+ is underline
589 ss: 1+ is strikethrough
590 cc: RTF charset number, e.g. 0 for ANSI, 238 for Polish
591 FF: RGB foreground
592 BB: RGB background
593 SS: shade fraction from 0=unshaded to 0xa=opaque
594 LT, RM, TM, BM: margins, 20=1 point
595
596 Some confusion on separation, BB and later seem to correspond to the next area
597
598 Areas:
599 0. title
600 1. layers
601 2. corner
602 3. row heads
603 4. column heads
604 5. data
605 6. caption
606 7. footnotes
607
608  rr gg bb 00 00 00 ss 00 01
609  ff 00 ff 00 00 00 01 00 01 00
610  ff 00 ff 00 00 00 01 00 01 00
611  ff 00 ff 00 00 00 01 00 01 00
612  ff 00 ff 00 00 00 01 00 00 00
613  00 00 00 00 00 00 01 00
614  ff 00 ff 00 00 00 01 00 01 00
615  ff 00 ff 00 00 00 01 00
616
617 rr gg bb: stroke color
618 ss: style, 0=thin, 1=normal, 2=thick, 3=very thick, otherwise weird
619
620 Borders:
621 - horizontal category columns
622 - vertical category columns
623 ...
624 - left inner frame
625 - right inner frame
626 - top inner frame
627 - bottom inner frame
628 - left data area
629 - top data area
630
631
632 ..
633 01 .. ff .. ff .. .. .. .. ..
634 .. .. .. .. .. .. 03 80 ..
635 01 .. ff .. ff .. .. .. .. ..
636 01 .. ff .. ff .. .. .. .. ..
637 01 .. ff .. ff .. .. .. .. ..
638 01 .. ff .. ff .. .. .. .. ..
639
640 ..
641 01 .. .. .. .. .. .. .. .. ..
642 .. .. .. .. .. .. 03 80 ..
643 01 .. .. .. .. .. .. .. .. .. .. ..
644 01 .. .. .. .. .. .. .. .. .. .. ..
645
646 ..
647 01 .. 80 80 80 .. .. .. 01 ..
648 01 .. 80 80 80 .. .. .. 01 ..
649 01 .. 80 80 80 .. .. .. .. ..
650 01 .. 80 80 80 .. .. .. .. ..
651 ba 80 ..
652 01 .. 80 80 80 .. .. .. 01 ..
653 01 .. 80 80 80 .. .. .. 01 ..
654 01 .. 80 80 80 .. .. .. .. ..
655 01 .. 80 80 80 .. .. .. .. ..
656
657 class {00000319-0000-0000-c000-000000000046}: Enhanced Metafile
658    For these, dropping the first 4 bytes of Embedding*/CONTENTS file
659    yields an EMF file that the printemf program can dissect.
660
661 class {62078ae0-e4fe-11cd-838d-0000c0f17248}:
662     harder to pin down what's in these
663
664 view-spo can Edit|copy notes and tables for pasting into other applications
665
666 rigger: contains working graph!
667
668 correspondence:
669  1/01 80 ? "NavRoot"
670  3/03 80 -> "DspSimpleText"
671  5/05 80 -> "DspString" 01 02 28 (00|05) 00 01 b"string"
672  7/07 80 -> "NavTreeViewItem"
673  9/09 80 -> "NavLog"
674 11/0b 80 ?  "NavHead"
675 13/0d 80 ?  "NavTitle"
676 15/0f 80 ???
677 17/11 80 ???
678 19/13 80 ???
679 21/15 80 ???
680 24 18 80 -> "NavNote"
681 29 1d 80 -> "PTPivotController"
682 31 1f 80 -> "PTPivotView"
683 33/21 80 -> "PMPivotModel"
684 35/23 80 -> "NDimensional__DspCell"
685 37/25 80 -> "IndexedCollection"
686 39/27 80 -> "DspCell"
687 41/29 80 ? "DspNumber"
688   /50 80 -> "PMPivotItemTree"
689   /52 80 -> "AbstractTreeBranch"
690   /54 80 -> "PMModelItemInfo"
691
692
693 When the top-level "Output" node is selected for save:
694         04 i0
695         b"SPSS Output Document"
696         i1 63
697         ffff 0000 "NavRoot" 02 00*32
698         ffff 0000 "DspSimpleText" 00*10
699         ffff 0000 "DspString" 01 02 28 00 00 01 b"Output"
700         ffff 0000 "NavTreeViewItem"
701         00 i0 02 00 01 00*9 i1
702 00b0    (i0 | i24) (i24 | i-40) (i0 | i40 | i-40) (i40 | i-34)
703 00c0    i24 i0 i40 i40
704 00d0    (i1048 | some other 3-hex-digit number | i0)
705 00d4    (i0 | some 3 to 4-hex-digit number | i-40)
706 00d8    00*5
707 00dd    i8500           # paper width in 1000/inch (i11000 for landscape)
708 00e1    i11000          # paper length in 1000/inch (i8500 for landscape)
709 00e5    s1              # letter paper (5=legal, 9=A4, etc.)
710 00e7    s15             # s1, s7 also seen
711 00e9    s1              # portrait; s2 = landscape
712 00eb    i1270           # left margin in 2540/inch, e.g. 1270 = .5 inch
713 00ef    i1270           # top margin in 2540/inch
714 00f3    i1270           # right margin
715 00f7    i1270           # bottom margin
716 00fb    s0
717 00fd    s240            # object spacing in 1440/inch, e.g. 240 = 12 pt
718 00ff    s0              # charts: 0=asis, 1=full page, 2=half, 03=quarter
719 0101    s??
720 0103    s1              # starting page number
721 0105    b"(Continued)" 01 01 00*3
722 0116    w"{\rtf... pagetitle}"
723 01fd    01 01 00*3
724 0202    w"{\rtf... page number}"
725 02e9    00 short s2
726
727 (This is a valid spot for the file to contain 00000000 then eof)
728
729 02ee    ffff 0000 "NavLog" 02 i0*2 i24 
730 0307    (i0 | i-40) (i691 | i987) (2-3 digit negative int) i1
731 0317    i0
732 0318    03 80 00*10
733 0324    05 80 01 02 28 05 00 01 b"Log"
734
735 0333    07 80 00 02 00 00 00 0a 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 b"" 00
736 0347    01 01 (i-13 | i-12) 00*12 90 01 00*9 (22|31)
737 036b    32-bytes of null-padded font name, e.g. "Courier New".
738         Sometimes garbage after the first null.
739 038b    (i80 | i132) 00*8 i1
740 039b    w"{\rtf ... SPSS syntax...}"
741
742 Almost past SPSS syntax (only the } included):
743 0000    '}' 00
744
745 0002    ffff 0000 "NavHead" 02
746 0010    00*24 i1 i0
747 0030    03 80 00*10
748         05 80 01 02 28 05 00 01 b"Cluster|Crosstabs|..."
749
750 Just past the string:
751 0000    07 80 00 00 00 00 00 0f 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 b"Cluster|Crosstabs|..."
752
753 Just past the string again:
754 0000    00*3
755 0003    ffff 0000 "NavTitle"
756 0011    65 02 00 00 00 00 00 00  00 00 18 00 00 00 byte byte
757 0020    ff ff 00 04 00 00 byte byte
758 0028    ff ff 02 00 00 00 01 00  00 00
759 0032    03 80 00*10
760 003e    05 80  01 02 28 00 00 01 b"Title"
761 004c    07 80 00 08 00 00 00 14 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 b"Cluster|Crosstabs|..."
762
763 Just past the third string:
764 0000    01 01 i-19 00*12 bc 02 00*9 22
765 001e    32-bytes of buggy zero-padded string "Arial"
766 003e    i80 00*8 i1
767 004e    w"{\rtf...}"
768
769 Almost past the RTF (only } included):
770 0000    '}' 00
771
772 0002    ffff 0000 "NavNote"
773 0010    02 00*8 i24 (i0 | i-40)
774 0020    int int i2 i1
775 0030    03 80 00*10
776 003c    05 80 01 02 28 05 00 01 b"Notes"
777 004a    07 80 00 07 00*3 19 00 01 00*3 01 00*5 01 00*5 b"Cluster|Crosstabs|..."
778
779 Just past the fourth string:
780 0000    01
781
782 0001    ffff 0000 "PTPivotController"
783 0018    02
784 0019    byte*8    # weird ASCIIish garbage
785 0021    i100*4
786
787 0031    ffff 0000 "PVPivotView"
788 0042    05 00 00 00 00
789
790 0047    ffff 0000 "PMPivotModel"
791 0059    03
792
793 005a    ffff 0000 "NDimensional__DspCell"
794 0075    00 01 00 00 00
795
796 007a    ffff 0000 "IndexedCollection"
797 0091    00 byte 00 00 00 01 00
798
799 0098    ffff 0000 "DspCell"
800 00a6    00
801 00a7    03 80 00*10
802
803 Fork: cell contains number ("as-number"):
804 00b2    ffff 0000 "DspNumber"
805 00c1    01 00 14 16       # 00 14 16 is DATETIME20.0
806 00c5    80 02
807 00c7    double            # seconds since 1582...
808 00cf    b"16-APR-2007 15:20:00"    # or whatever
809 00e4    27 80 00
810         03 80 00*10
811 00f3    05 80 01 02 28 05 00 01 b" "
812         # Some files have extra 00 00 here
813         # but we're only considering as-number-nozeros
814 00fd    27 80 00
815 0100    03 80 00*10
816 010e    05 80 01 02 28 05 00 01
817 0114    # Either b"filename" with a length < 255
818         # or ff "filename" with a length >= 255
819
820 as-number-nozeros, after filename:
821 0000    27 80 00
822 0003    03 80 00*10
823 000a    05 80 01 02 28 05 00 01 b"<none> or DataSet1 or whatever"
824
825 as-number-nozeros, after dataset name:
826 0000    27 80 00
827 0003    03 80 00*10
828 000a    05 80 01 02 28 05 00 01 b"<none>"
829
830 # Some files have extra 00*8 here, we skip it:
831 0000    27 80 00
832 0003    03 80 00*5 (00|10) 00*4 05
833 0010    80 01 02 28 05 00 01 b"<none> or DATASET..."
834
835 as-number-nozeros-majority, after dataset name:
836 0000    27 80 00 03 80 00*10 05 80 01 02 28 05 00 01 b"<none>"
837 001e    27 80 00 03 80 00*10 2a 80 01 00 28 05 80 02 100.0 b"100"
838         # Followed by 6 optional zeros
839
840 as-number-nozeros-majority, after optional zeros:
841 0000    27 80 00 03 80 00*10 05 80 01 02 28 05 00 01 b"User-defined missing values..."
842                        ^ sixth 00 may be 10 instead
843
844 as-number-nozeros-majority, after "User-defined missing values...":
845 0000    27 80 00 03 80 00*10 (05|2a) 80 01 02 28 05 00 01 b"Statistics are based on..."
846
847 as-number-nozeros-majority, after "Statistics are based on...":
848 0000    00 00
849 0002    27 80 00 03 80 00*10 05 80 01 02 28 05 00 01 b"syntax fragment"
850                        ^ sixth 00 may be 10 instead
851
852 as-number-nozeros-majority, after syntax fragment:
853 0000    27 80 00 03 80 00*10 2a 80 01 02 0d 15 80 02 double b"0:00:00.02"
854 selecting for the ones that include Processor Time instead of RAM:
855 002a    27 80 00 03 80 00*10 2a 80 01 02 0d 15 80 02 double b"0:00:00.03"
856 0054    01 00 b"Notes" 00*4
857 0060    b"Cluster_Notes"
858
859 processor-time, after previous string:
860 0000    00 01 00 00 00 01 00
861
862 0007    ffff 0000 "PMPivotItemTree" 00
863 001d    ffff 0000 "AbstractTreeBranch" 00
864 0036    ffff 0000 "PMModelItemInfo"
865         00*9 byte*3 0e 00
866         03 80 00*10
867 0065    05 80 01 02 28 05 00 01 b"Contents" i7
868         52 80 00
869         54 80 00*9 07 00 74 0e 00
870         03 80 00*10
871 0099    05 80 01 02 28 05 00 01 b"Output Created" i0
872         52 80 00
873         54 80 00 01 00*7 08 00 74 0e 00
874         03 80 00*10
875 00d3    05 80 01 02 28 05 00 01 b"Comments" i0
876 00e8    52 80 00
877         54 80 00*9 09 00 74 0e 00
878         03 80 00*10
879         05 80 01 02 28 05 00 01 b"Input" i6
880         52 80 00
881         54 80 00 02 00*7 0a 00 74 0e 00 03 80 00*10
882 0138    05 80 01 02 28 05 00 01 b"Data" i0
883         52 80 00
884         54 80 00 03 00*12
885         03 80 00*10
886         05 80 01 02 28 05 00 01 b"Active Dataset" i0
887 0183    52 80 00
888         54 80 00 04 00*7 0e 00 74 0e 00 03 80 00*9
889 01a2    05 80 01 02 28 05 00 01 b"Filter" i0
890 01b5    52 80 00
891         54 80 00 05 00*7 11 00 74 0e 00 03 80 00*10
892 01d4    05 80 01 02 28 05 00 01 b"Weight" i0
893 01e7    52 80 00
894         54 80 00 06 00 00
895 01f0    00 00 00 00 00 12 00 74  0e 00 03 80 00 00 00 00
896 0200    00 00 00 00 00 00 05 80  01 02 28 05 00 01 b"Split File"
897 0219    00 00 00 00 52 80 00
898 0220    54 80 00 07 00 00 00 00  00 00 00 13 00 74 0e 00
899 0230    03 80 00 00 00 00 00 00  00 00 00 00 05 80 01 02
900 0240    28 05 00 01 b"N of Rows in Working Data File"
901 0263    00 00 00 00 52  80 00 54 80 00 00 00 00
902 0270    00 00 00 00 00 byte*2 74 0e 00 03 80 00 00 00 00
903 0280    00 00 00 00 00 00 05 80  01 02 28 05 00 01
904 028e    b"Missing Value Handling"
905 02a5    02 00 00  00 52 80 00 54 80 00 08
906 02b0    00 00 00 00 00 00 00 byte*2 74 0e 00 03 80 00 00
907 02c0    00 00 00 00 00 00 00 00  05 80 01 02 28 05 00 01
908 02d0    b"Definition of Missing"
909 02e6    00 00  00 00 52 80 00 54 80 00
910 02f0    09 00 00 00 00 00 00 00  byte*2 74 0e 00 03 80 00
911 0300    00 00 00 00 00 00 00 00  00 05 80 01 02 28 05 00
912 0310    01 b"Cases Used" 00*4
913 0320    52 80 00 54 80 00 0a 00  00 00 00 00 00 00 17 00
914 0330    74 0e 00 03 80 00 00 00  00 00 00 00 00 00 00 05
915 0340    80 01 02 28 05 00 01 b"Weight Handling"
916 0357    00 00 00 00 52 80 00 54 80
917 0360    00 0b 00 00 00 00 00 00  00 18 00 74 0e 00 03 80
918 0370    00 00 00 00 00 00 00 00  00 00 05 80 01 02 28 05
919 0380    00 01 b"Syntax" 00 00 00 00 52 80 00
920 0390    54 80 00 00 00 00 00 00  00 00 00 byte*2 74 0e 00
921 03a0    03 80 00 00 00 00 00 00  00 00 00 00 05 80 01 02
922 03b0    28 05 00 01 b"Resources" 02 00
923 03c0    00 00 52 80 00 54 80 00  0c 00 00 00 00 00 00 00
924 03d0    1b 00 74 0e 00 03 80 00  00 00 00 00 00 00 00 00
925 03e0    00 05 80 01 02 28 05 00  01 b"Elapsed Time"
926 03f6    00 00  00 00 52 80 00 54 80 00
927 0400    0d 00 00 00 00 00 00 00  00 00 00 00 00 03 80 00
928 0410    00 00 00 00 00 00 00 00  00 05 80 01 02 28 05 00
929 0420    01 b"Processor Time" i0
930
931 0434    00 00 00 00  00 00 0e 00 00 00 01 00
932 0440    58 00 5c 00 64 00 68 00  6c 00 70 00 74 00 78 00
933 0450    80 00 84 00 88 00 8c 00  94 00 98 00 00 0e 00 00
934 0460    00 00 00 00 00 00 00 01  00 00 00 02 00 00 00 03
935 0470    00 00 00 04 00 00 00 05  00 00 00 06 00 00 00 07
936 0480    00 00 00 08 00 00 00 09  00 00 00 0a 00 00 00 0b
937 0490    00 00 00 0c 00 00 00 0d  00 00 00 00 00 00 00 00
938 04a0    01 00 00 11 00 00 00 00  00 04 00 00 00 e1 00 00
939 04b0    00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
940 04c0    00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00
941 04d0    00 00 00 00 00 00 00 00  00 00 00 00 00 01 00 00
942 04e0    00 01 00
943
944 04e3    ffff 0000 b"PVViewDimension"
945 04f8    00 51 00 00 00 00 00 00
946 0500    00 00 00 00 0e 00 00 00  00 00 69 00 00 00 54 00
947 0510    00 00 4b 00 00 00 63 00  00 00 4b 00 00 00 4b 00
948 0520    00 00 4b 00 00 00 7d 00  00 00 87 00 00 00 5c 00
949 0530    00 00 72 00 00 00 4b 00  00 00 63 00 00 00 6f 00
950 0540    00 00 00 03 00 00 00 00  00 00 00 00 00 00 00 00
951 0550    00 87 00 00 00 00 03 80  00 00 00 00 00 00 00 00
952 0560    00 00 05 80 01 02 28 05  00 01 b"Notes"
953 0570    00 03 80 00 00 00 00 00  00 00 00 00 00 05 80 01
954 0580    02 28 00 00 01 00 00 00  00 00 00 00 00 00 03 80
955 0590    00 00 00 00 00 00 00 00  00 00 05 80 01 02 28 00
956 05a0    00 01 00
957
958 05a3    ffff 0000 "PTTableLook"
959 05b4    02 02 00 00  00 00 00 00 00 36 00 00
960 05c0    00 12 00 00 00
961
962 05c5    ffff 0000 "PVSeparatorStyle"
963 05db    00 01 00 00 00
964 05e0    00 00 00 00 00 00 00 00  00 00 00 00 a6 80 00 01  |................|
965 05f0    00 00 00 00 00 00 00 00  00 01 00 00 00 00 00 00  |................|
966 0600    00 00 00 01 00 00 00 00  00 00 00 00 00 01 00 00  |................|
967 0610    00 00 00 00 00 00 00
968
969 0607    ffff 0000 "PVCellStyle"
970 0628    00 01 00 00 00 00 00 ff
971
972 0630    ffff 0000 00
973
974 0637    ffff 0000 "PVTextStyle"
975 0646    00 02 00 02 00 c8 00 78 00 a0
976 0650    00 14 00 78 00 00 00 01  00 f3 ff ff ff 00 00 00
977 0660    00 00 00 00 00 00 00 00  00 bc 02 00 00 00 00 00
978 0670    00 00 00 00 22 b"Arial" 00 00 00 00 00
979 0680    00 a9 80 00 01 00 00 00  00 00 ff ff ff 00 00 00
980 0690    ab 80 00 01 00 00 00 c8  00 78 00 a0 00 14 00 14
981 06a0    00 00 00 01 00 f3 ff ff  ff 00 00 00 00 00 00 00
982 06b0    00 00 00 00 00 90 01 00  00 00 00 00 00 00 00 00
983 06c0    22 b"Arial" 00  00 00 00 00 00 a9 80 00
984 06d0    01 00 00 00 00 00 ff ff  ff 00 00 00 ab 80 00 01
985 06e0    00 00 00 c8 00 78 00 a0  00 14 00 14 00 00 00 01
986 06f0    00 f3 ff ff ff 00 00 00  00 00 00 00 00 00 00 00
987 0700    00 90 01 00 00 00 00 00  00 00 00 00 22 b"Arial"
988 0713    00 00 00 00 00  00 a9 80 00 01 00 00 00
989 0720    00 00 ff ff ff 00 00 00  ab 80 00 00 00 00 00 c8
990 0730    00 78 00 a0 00 14 00 14  00 00 00 01 00 f3 ff ff
991 0740    ff 00 00 00 00 00 00 00  00 00 00 00 00 90 01 00
992 0750    00 00 00 00 00 00 00 00  22 b"Arial" 00
993 0760    00 00 00 00 00 a9 80 00  01 00 00 00 00 00 ff ff
994 0770    ff 00 00 00 ab 80 00 01  00 02 00 c8 00 78 00 a0
995 0780    00 14 00 14 00 00 00 01  00 f3 ff ff ff 00 00 00
996 0790    00 00 00 00 00 00 00 00  00 90 01 00 00 00 00 00
997 07a0    00 00 00 00 22 b"Arial" 00 00 00 00 00
998 07b0    00 a9 80 00 01 00 00 00  00 00 ff ff ff 00 00 00
999 07c0    ab 80 00 02 00 03 00 c8  00 78 00 a0 00 14 00 14
1000 07d0    00 00 00 01 00 f3 ff ff  ff 00 00 00 00 00 00 00
1001 07e0    00 00 00 00 00 90 01 00  00 00 00 00 00 00 00 00
1002 07f0    22 b"Arial" 00  00 00 00 00 00 a9 80 00
1003 0800    01 00 00 00 00 00 ff ff  ff 00 00 00 ab 80 00 01
1004 0810    00 00 00 c8 00 78 00 a0  00 14 00 14 00 00 00 01
1005 0820    00 f3 ff ff ff 00 00 00  00 00 00 00 00 00 00 00
1006 0830    00 90 01 00 00 00 00 00  00 00 00 00 22 b"Arial"
1007 0843    00 00 00 00 00  00 a9 80 00 01 00 00 00
1008 0850    00 00 ff ff ff 00 00 00  ab 80 00 01 00 00 00 c8
1009 0860    00 68 01 68 01 28 00 28  00 00 00 01 00 f3 ff ff
1010 0870    ff 00 00 00 00 00 00 00  00 00 00 00 00 90 01 00
1011 0880    00 00 00 00 00 00 00 00  22 b"Arial" 00
1012 0890    00 00 00 00 00 00 00 01  00 00 00 00 00 00 00 01
1013 08a0    00 01 00 00 00 00 00 00  00 01 00 01 00 00 00 00
1014 08b0    00 00 00 01 00 01 00 00  00 00 00 00 00 01 00 00
1015 08c0    00 00 00 00 00 00 00 01  00 00 00 00 00 00 00 01
1016 08d0    00 01 00 00 00 00 00 00  00 01 00 b"(cont.)"
1017 08e3    24 00 00 00 48  00 00 00 24 00 00 00 78
1018 08f0    00 00 00 00 00 00 00 00  00 00 00
1019
1020 08fb    ffff 0000 "PVPrintManager" 02
1021 0910    1e 00 02 00 00 00 03 00  00 00 01 00 00 00 00 00
1022 0920    00 00 00 00 00 00 00
1023
1024 0927    ffff 0000 "NavText"
1025 0934    02 00 00 00  00 00 00 00 00 18 00 00
1026 0940    00 byte*2 ff ff byte*2 00  00 byte*2 ff ff 02 00 00
1027 0950    00 01 00 00 00 03 80 00  00 00 00 00 00 00 00 00
1028 0960    00 05 80 01 02 28 05 00  01 b"Active Dataset"
1029 0978    07 80 00 10 00 00 00 be
1030 0980    00 01 00 00 00 00 00 00  00 00 00 01 00 00 00 00
1031 0990    00 b"Cluster etc." 07 43 6c 75 73 74 65  72 01 01 f3 ff ff ff 00
1032 0990    00 0b 46 72 65 71 75 65  6e 63 69 65 73 01 01 f3
1033
1034 Just past "Cluster":
1035 0000    01 01 (f3|f4) ff ff ff 00 00  00 00 00 00 00 00 00 00
1036 0010    00 00 90 01 00 00 00 00  00 00 00 00 00 (22|31)
1037 001e    32-bytes of null-padded font name, e.g. "Courier New".
1038         Sometimes garbage after the first null.
1039 003e    byte 00*11 w"{\rtf... giving filesystem path}"
1040
1041 Almost past RTF (just trailing }):
1042 0000    '}' ffff 0000 "NavPivot" 02 int int i24 int
1043 0020    int int i2 i1
1044 0030    03 80 00*10 05 80 01 02
1045 0040    28 05 00 01 b"Statistics etc."
1046
1047 Just past "Statistics":
1048 0000    07 80 00 0c 00 00 00 c3  00 01 00 00 00 00 00 00
1049 0010    00 00 00 01 00 00 00 00  00 b"Cluster etc."
1050
1051 Just past "Cluster", using boot/Contents as exemplary:
1052 0000    01
1053 0001    1d 80 02 i0*2 i100*4        # 1d 80 corresponds to "PTPivotController"
1054 001c    1f 80 05 00*4               # 1f 80 corresponds to "PTPivotView"
1055 0023    21 80 03                    # 21 80 corresponds to "PMPivotModel"
1056 0026    23 80 00 (02|03) 00 00 00   # 23 80 corresponds to "NDimensional__DspCell"
1057 002d    25 80 00 i100 01 00         # 25 80 corresponds to "IndexedCollection"
1058 0036    25 80 00 i100 01 00
1059 003f    27 80 00 03 80 00*10 2a 80 01 F40.0 80 02 100.0 b"100"
1060 0062    27 80 00 03 80 00*10 2a 80 01 F40.0 80 02 100.0 b"100"
1061         ...repeats...
1062 0f03    25 80 00 6c 00 00 00 01 00
1063 0f0c    27 80 00 03 80 00*10 2a 80 01 F40.0 80 02 0.0 b"0"
1064         ...repeats...
1065 1cf8    25 80 00 6c 00 00 00 01 00
1066 1d01    27 80 00 03 80 00*10 2a 80 01 F40.8 1
1067
1068 Notes
1069 Output Created          16-JAN-2008 02:45:55
1070 Comments                 
1071 Input   Data    \\Ugly\amead\consulting\center\Dell\Exams\RE\analyses\Blended15\pilotdata-2008-01-15.csv
1072         Active Dataset  raw1
1073         Filter  <none>
1074         Weight  <none>
1075         Split File      <none>
1076         N of Rows in Working Data File  366
1077 Missing Value Handling  Definition of Missing   User-defined missing values are treated as missing.
1078         Cases Used      Statistics are based on all cases with valid data.
1079 Syntax          FREQUENCIES\r  VARIABLES=exam_id exam_name restarts\r  /ORDER=  ANALYSIS .\r
1080 Resources       Elapsed Time    0:00:00.02
1081         Processor Time  0:00:00.03