2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-06-04 03:10:52 +00:00

Fix EOL handling inside strings (fixes #226)

CR, CRLF, and LF are all supposed to be treated as LF; only one EOL is
to be ignored after backslash.
This commit is contained in:
Jay Berkenbilt 2018-08-05 18:59:41 -04:00
parent 1619cad1e8
commit 4a4736c695
10 changed files with 1084 additions and 1039 deletions

View File

@ -1,5 +1,8 @@
2018-08-05 Jay Berkenbilt <ejb@ql.org> 2018-08-05 Jay Berkenbilt <ejb@ql.org>
* Bug fix: end of line characters were not properly handled inside
strings in some cases. Fixes #226.
* Bug fix: infinite loop on progress reporting for very small * Bug fix: infinite loop on progress reporting for very small
files. Fixes #230. files. Fixes #230.

View File

@ -229,6 +229,7 @@ class QPDFTokenizer
bool string_ignoring_newline; bool string_ignoring_newline;
char bs_num_register[4]; char bs_num_register[4];
bool last_char_was_bs; bool last_char_was_bs;
bool last_char_was_cr;
}; };
PointerHolder<Members> m; PointerHolder<Members> m;
}; };

View File

@ -34,6 +34,7 @@ QPDFTokenizer::Members::reset()
string_depth = 0; string_depth = 0;
string_ignoring_newline = false; string_ignoring_newline = false;
last_char_was_bs = false; last_char_was_bs = false;
last_char_was_cr = false;
} }
QPDFTokenizer::Members::~Members() QPDFTokenizer::Members::~Members()
@ -217,6 +218,7 @@ QPDFTokenizer::presentCharacter(char ch)
memset(this->m->bs_num_register, '\0', memset(this->m->bs_num_register, '\0',
sizeof(this->m->bs_num_register)); sizeof(this->m->bs_num_register));
this->m->last_char_was_bs = false; this->m->last_char_was_bs = false;
this->m->last_char_was_cr = false;
this->m->state = st_in_string; this->m->state = st_in_string;
} }
else if (ch == '<') else if (ch == '<')
@ -334,8 +336,7 @@ QPDFTokenizer::presentCharacter(char ch)
} }
else if (this->m->state == st_in_string) else if (this->m->state == st_in_string)
{ {
if (this->m->string_ignoring_newline && if (this->m->string_ignoring_newline && (ch != '\n'))
(! ((ch == '\r') || (ch == '\n'))))
{ {
this->m->string_ignoring_newline = false; this->m->string_ignoring_newline = false;
} }
@ -353,9 +354,10 @@ QPDFTokenizer::presentCharacter(char ch)
bs_num_count = 0; bs_num_count = 0;
} }
if (this->m->string_ignoring_newline && ((ch == '\r') || (ch == '\n'))) if (this->m->string_ignoring_newline && (ch == '\n'))
{ {
// ignore // ignore
this->m->string_ignoring_newline = false;
} }
else if (ch_is_octal && else if (ch_is_octal &&
(this->m->last_char_was_bs || (bs_num_count > 0))) (this->m->last_char_was_bs || (bs_num_count > 0)))
@ -386,8 +388,10 @@ QPDFTokenizer::presentCharacter(char ch)
this->m->val += '\f'; this->m->val += '\f';
break; break;
case '\r':
case '\n': case '\n':
break;
case '\r':
this->m->string_ignoring_newline = true; this->m->string_ignoring_newline = true;
break; break;
@ -417,11 +421,26 @@ QPDFTokenizer::presentCharacter(char ch)
this->m->type = tt_string; this->m->type = tt_string;
this->m->state = st_token_ready; this->m->state = st_token_ready;
} }
else if (ch == '\r')
{
// CR by itself is converted to LF
this->m->val += '\n';
}
else if (ch == '\n')
{
// CR LF is converted to LF
if (! this->m->last_char_was_cr)
{
this->m->val += ch;
}
}
else else
{ {
this->m->val += ch; this->m->val += ch;
} }
this->m->last_char_was_cr =
((! this->m->string_ignoring_newline) && (ch == '\r'));
this->m->last_char_was_bs = this->m->last_char_was_bs =
((! this->m->last_char_was_bs) && (ch == '\\')); ((! this->m->last_char_was_bs) && (ch == '\\'));
} }

View File

@ -6,7 +6,7 @@ A B
one one
two two
three lines three lines
(string with \r\nCRNL) (string with \nCRLF and\nCR and\nLF)
and another and another
indentation indentation
(\001B%DEF)<01> (\001B%DEF)<01>
@ -21,7 +21,7 @@ This stream does end with a newline.
// bad tokens preserved // bad tokens preserved
// comments // comments
// indentation // indentation
// CR/NL inside string literal -- changed to \r or \n, newline follows // CR, CR/LF, LF inside string literal -- changed to \n
// whitespace in hexstring (removed) // whitespace in hexstring (removed)
// strings normalized // strings normalized
// newlines normalized // newlines normalized
@ -33,17 +33,17 @@ This stream does end with a newline.
/good name /good name
/bad#00name /bad#00name
WARNING: good14.pdf (offset 860): content normalization encountered bad tokens WARNING: good14.pdf (offset 874): content normalization encountered bad tokens
WARNING: good14.pdf (offset 860): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual. WARNING: good14.pdf (offset 874): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual.
-- stream 2 -- -- stream 2 --
(This stream ends with a \001 bad token (This stream ends with a \001 bad token
WARNING: good14.pdf (offset 1316): content normalization encountered bad tokens WARNING: good14.pdf (offset 1315): content normalization encountered bad tokens
WARNING: good14.pdf (offset 1316): normalized content ended with a bad token; you may be able to resolve this by coalescing content streams in combination with normalizing content. From the command line, specify --coalesce-contents WARNING: good14.pdf (offset 1315): normalized content ended with a bad token; you may be able to resolve this by coalescing content streams in combination with normalizing content. From the command line, specify --coalesce-contents
WARNING: good14.pdf (offset 1316): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual. WARNING: good14.pdf (offset 1315): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual.
-- stream 3 -- -- stream 3 --
<AB XWARNING: good14.pdf (offset 1406): content normalization encountered bad tokens <AB XWARNING: good14.pdf (offset 1405): content normalization encountered bad tokens
WARNING: good14.pdf (offset 1406): normalized content ended with a bad token; you may be able to resolve this by coalescing content streams in combination with normalizing content. From the command line, specify --coalesce-contents WARNING: good14.pdf (offset 1405): normalized content ended with a bad token; you may be able to resolve this by coalescing content streams in combination with normalizing content. From the command line, specify --coalesce-contents
WARNING: good14.pdf (offset 1406): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual. WARNING: good14.pdf (offset 1405): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual.
-- stream 4 -- -- stream 4 --
(ends with a name) (ends with a name)
/ThisMustBeLast-- stream 5 -- /ThisMustBeLast-- stream 5 --
@ -54,7 +54,7 @@ BI
ID ID
<506f7 <506f7
461746f> 461746f>
WARNING: good14.pdf (offset 1549): content normalization encountered bad tokens WARNING: good14.pdf (offset 1548): content normalization encountered bad tokens
WARNING: good14.pdf (offset 1549): normalized content ended with a bad token; you may be able to resolve this by coalescing content streams in combination with normalizing content. From the command line, specify --coalesce-contents WARNING: good14.pdf (offset 1548): normalized content ended with a bad token; you may be able to resolve this by coalescing content streams in combination with normalizing content. From the command line, specify --coalesce-contents
WARNING: good14.pdf (offset 1549): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual. WARNING: good14.pdf (offset 1548): Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual.
test 3 done test 3 done

View File

@ -70,7 +70,8 @@ B % here is another with CR
A B A B
one two three lines one two three lines
(string with (string with
CRNL) and another CRLF and CR and
LF) and another
indentation indentation
(B%DEF)() (B%DEF)()
<8A <8A
@ -78,14 +79,14 @@ CRNL) and another
(a\000b) <4D4F4F>endstream endobj (a\000b) <4D4F4F>endstream endobj
8 0 obj 8 0 obj
<< /Length 385 >> << /Length 370 >>
stream stream
This stream does end with a newline. This stream does end with a newline.
// tests: // tests:
// bad tokens preserved // bad tokens preserved
// comments // comments
// indentation // indentation
// CR/NL inside string literal -- changed to \r or \n, newline follows // CR, CR/LF, LF inside string literal -- changed to \n
// whitespace in hexstring (removed) // whitespace in hexstring (removed)
// strings normalized // strings normalized
// newlines normalized // newlines normalized
@ -101,7 +102,7 @@ endstream
endobj endobj
9 0 obj 9 0 obj
181 195
endobj endobj
10 0 obj 10 0 obj
@ -148,17 +149,17 @@ xref
0000000439 00000 n 0000000439 00000 n
0000000474 00000 n 0000000474 00000 n
0000000592 00000 n 0000000592 00000 n
0000000827 00000 n 0000000841 00000 n
0000001263 00000 n 0000001262 00000 n
0000001283 00000 n 0000001282 00000 n
0000001374 00000 n 0000001373 00000 n
0000001430 00000 n 0000001429 00000 n
0000001515 00000 n 0000001514 00000 n
trailer << trailer <<
/Size 14 /Size 14
/Root 1 0 R /Root 1 0 R
/QStreams [ 7 0 R 8 0 R 10 0 R 11 0 R 12 0 R 13 0 R ] /QStreams [ 7 0 R 8 0 R 10 0 R 11 0 R 12 0 R 13 0 R ]
>> >>
startxref startxref
1670 1669
%%EOF %%EOF

View File

@ -21,7 +21,8 @@ B % here is another with CR
A B A B
one two three lines one two three lines
(string with (string with
CRNL) and another CRLF and CR and
LF) and another
indentation indentation
(B%DEF)() (B%DEF)()
<8A <8A
@ -32,7 +33,7 @@ endobj
%QDF: ignore_newline %QDF: ignore_newline
3 0 obj 3 0 obj
181 195
endobj endobj
%% Original object ID: 8 0 %% Original object ID: 8 0
@ -46,7 +47,7 @@ This stream does end with a newline.
// bad tokens preserved // bad tokens preserved
// comments // comments
// indentation // indentation
// CR/NL inside string literal -- changed to \r or \n, newline follows // CR, CR/LF, LF inside string literal -- changed to \n
// whitespace in hexstring (removed) // whitespace in hexstring (removed)
// strings normalized // strings normalized
// newlines normalized // newlines normalized
@ -62,7 +63,7 @@ endstream
endobj endobj
5 0 obj 5 0 obj
385 370
endobj endobj
%% Original object ID: 10 0 %% Original object ID: 10 0
@ -206,23 +207,23 @@ xref
0000000000 65535 f 0000000000 65535 f
0000000052 00000 n 0000000052 00000 n
0000000134 00000 n 0000000134 00000 n
0000000392 00000 n 0000000406 00000 n
0000000439 00000 n 0000000453 00000 n
0000000879 00000 n 0000000878 00000 n
0000000927 00000 n 0000000926 00000 n
0000001022 00000 n 0000001021 00000 n
0000001069 00000 n 0000001068 00000 n
0000001151 00000 n 0000001150 00000 n
0000001197 00000 n 0000001196 00000 n
0000001310 00000 n 0000001309 00000 n
0000001358 00000 n 0000001357 00000 n
0000001518 00000 n 0000001517 00000 n
0000001566 00000 n 0000001565 00000 n
0000001677 00000 n 0000001676 00000 n
0000001924 00000 n 0000001923 00000 n
0000002025 00000 n 0000002024 00000 n
0000002072 00000 n 0000002071 00000 n
0000002218 00000 n 0000002217 00000 n
trailer << trailer <<
/QStreams [ /QStreams [
2 0 R 2 0 R
@ -237,5 +238,5 @@ trailer <<
/ID [<31415926535897932384626433832795><31415926535897932384626433832795>] /ID [<31415926535897932384626433832795><31415926535897932384626433832795>]
>> >>
startxref startxref
2254 2253
%%EOF %%EOF

View File

@ -181,352 +181,352 @@ skipping to endstream
7121: space: \x0a 7121: space: \x0a
7122: word: stream 7122: word: stream
skipping to endstream skipping to endstream
7404: word: endstream 7469: word: endstream
7413: space: \x0a 7478: space: \x0a
7414: word: endobj 7479: word: endobj
7420: space: \x0a\x0a 7485: space: \x0a\x0a
7422: integer: 44 7487: integer: 44
7424: space: 7489: space:
7425: integer: 0 7490: integer: 0
7426: space: 7491: space:
7427: word: obj 7492: word: obj
7430: space: \x0a 7495: space: \x0a
7431: integer: 275 7496: integer: 340
7434: space: \x0a 7499: space: \x0a
7435: word: endobj 7500: word: endobj
7441: space: \x0a\x0a 7506: space: \x0a\x0a
7443: comment: %% Contents for page 5 7508: comment: %% Contents for page 5
7465: space: \x0a 7530: space: \x0a
7466: comment: %% Original object ID: 41 0 7531: comment: %% Original object ID: 41 0
7493: space: \x0a 7558: space: \x0a
7494: integer: 45 7559: integer: 45
7496: space: 7561: space:
7497: integer: 0 7562: integer: 0
7498: space: 7563: space:
7499: word: obj 7564: word: obj
7502: space: \x0a 7567: space: \x0a
7503: dict_open: << 7568: dict_open: <<
7505: space: \x0a 7570: space: \x0a
7508: name: /Length 7573: name: /Length
7515: space: 7580: space:
7516: integer: 46 7581: integer: 46
7518: space: 7583: space:
7519: integer: 0 7584: integer: 0
7520: space: 7585: space:
7521: word: R 7586: word: R
7522: space: \x0a 7587: space: \x0a
7523: dict_close: >> 7588: dict_close: >>
7525: space: \x0a 7590: space: \x0a
7526: word: stream 7591: word: stream
skipping to endstream skipping to endstream
7601: word: endstream 7666: word: endstream
7610: space: \x0a 7675: space: \x0a
7611: word: endobj 7676: word: endobj
7617: space: \x0a
7618: comment: %QDF: ignore_newline
7638: space: \x0a\x0a
7640: integer: 46
7642: space:
7643: integer: 0
7644: space:
7645: word: obj
7648: space: \x0a
7649: integer: 67
7651: space: \x0a
7652: word: endobj
7658: space: \x0a\x0a
7660: comment: %% Contents for page 6
7682: space: \x0a 7682: space: \x0a
7683: comment: %% Original object ID: 42 0 7683: comment: %QDF: ignore_newline
7710: space: \x0a 7703: space: \x0a\x0a
7711: integer: 47 7705: integer: 46
7713: space: 7707: space:
7714: integer: 0 7708: integer: 0
7715: space: 7709: space:
7716: word: obj 7710: word: obj
7719: space: \x0a 7713: space: \x0a
7720: dict_open: << 7714: integer: 67
7722: space: \x0a 7716: space: \x0a
7725: name: /Length 7717: word: endobj
7732: space: 7723: space: \x0a\x0a
7733: integer: 48 7725: comment: %% Contents for page 6
7735: space: 7747: space: \x0a
7736: integer: 0 7748: comment: %% Original object ID: 42 0
7737: space: 7775: space: \x0a
7738: word: R 7776: integer: 47
7739: space: \x0a 7778: space:
7740: dict_close: >> 7779: integer: 0
7742: space: \x0a 7780: space:
7743: word: stream 7781: word: obj
7784: space: \x0a
7785: dict_open: <<
7787: space: \x0a
7790: name: /Length
7797: space:
7798: integer: 48
7800: space:
7801: integer: 0
7802: space:
7803: word: R
7804: space: \x0a
7805: dict_close: >>
7807: space: \x0a
7808: word: stream
skipping to endstream skipping to endstream
7794: word: endstream 7859: word: endstream
7803: space: \x0a 7868: space: \x0a
7804: word: endobj 7869: word: endobj
7810: space: \x0a\x0a 7875: space: \x0a\x0a
7812: integer: 48 7877: integer: 48
7814: space: 7879: space:
7815: integer: 0 7880: integer: 0
7816: space: 7881: space:
7817: word: obj 7882: word: obj
7820: space: \x0a 7885: space: \x0a
7821: integer: 44 7886: integer: 44
7823: space: \x0a 7888: space: \x0a
7824: word: endobj 7889: word: endobj
7830: space: \x0a\x0a 7895: space: \x0a\x0a
7832: comment: %% Contents for page 7 7897: comment: %% Contents for page 7
7854: space: \x0a 7919: space: \x0a
7855: comment: %% Original object ID: 43 0 7920: comment: %% Original object ID: 43 0
7882: space: \x0a 7947: space: \x0a
7883: integer: 49 7948: integer: 49
7885: space: 7950: space:
7886: integer: 0 7951: integer: 0
7887: space: 7952: space:
7888: word: obj 7953: word: obj
7891: space: \x0a 7956: space: \x0a
7892: dict_open: << 7957: dict_open: <<
7894: space: \x0a 7959: space: \x0a
7897: name: /Length 7962: name: /Length
7904: space: 7969: space:
7905: integer: 50 7970: integer: 50
7907: space: 7972: space:
7908: integer: 0 7973: integer: 0
7909: space: 7974: space:
7910: word: R 7975: word: R
7911: space: \x0a 7976: space: \x0a
7912: dict_close: >> 7977: dict_close: >>
7914: space: \x0a 7979: space: \x0a
7915: word: stream 7980: word: stream
skipping to endstream skipping to endstream
8241: word: endstream 8306: word: endstream
8250: space: \x0a 8315: space: \x0a
8251: word: endobj 8316: word: endobj
8257: space: \x0a 8322: space: \x0a
8258: comment: %QDF: ignore_newline 8323: comment: %QDF: ignore_newline
8278: space: \x0a\x0a 8343: space: \x0a\x0a
8280: integer: 50 8345: integer: 50
8282: space: 8347: space:
8283: integer: 0 8348: integer: 0
8284: space: 8349: space:
8285: word: obj 8350: word: obj
8288: space: \x0a 8353: space: \x0a
8289: integer: 318 8354: integer: 318
8292: space: \x0a 8357: space: \x0a
8293: word: endobj 8358: word: endobj
8299: space: \x0a\x0a 8364: space: \x0a\x0a
8301: comment: %% Contents for page 8 8366: comment: %% Contents for page 8
8323: space: \x0a 8388: space: \x0a
8324: comment: %% Original object ID: 44 0 8389: comment: %% Original object ID: 44 0
8351: space: \x0a 8416: space: \x0a
8352: integer: 51 8417: integer: 51
8354: space: 8419: space:
8355: integer: 0 8420: integer: 0
8356: space: 8421: space:
8357: word: obj 8422: word: obj
8360: space: \x0a 8425: space: \x0a
8361: dict_open: << 8426: dict_open: <<
8363: space: \x0a 8428: space: \x0a
8366: name: /Length 8431: name: /Length
8373: space: 8438: space:
8374: integer: 52 8439: integer: 52
8376: space: 8441: space:
8377: integer: 0 8442: integer: 0
8378: space: 8443: space:
8379: word: R 8444: word: R
8380: space: \x0a 8445: space: \x0a
8381: dict_close: >> 8446: dict_close: >>
8383: space: \x0a 8448: space: \x0a
8384: word: stream 8449: word: stream
skipping to endstream skipping to endstream
8435: word: endstream 8500: word: endstream
8444: space: \x0a 8509: space: \x0a
8445: word: endobj 8510: word: endobj
8451: space: \x0a\x0a 8516: space: \x0a\x0a
8453: integer: 52 8518: integer: 52
8455: space: 8520: space:
8456: integer: 0 8521: integer: 0
8457: space: 8522: space:
8458: word: obj 8523: word: obj
8461: space: \x0a 8526: space: \x0a
8462: integer: 44 8527: integer: 44
8464: space: \x0a 8529: space: \x0a
8465: word: endobj 8530: word: endobj
8471: space: \x0a\x0a 8536: space: \x0a\x0a
8473: comment: %% Contents for page 9 8538: comment: %% Contents for page 9
8495: space: \x0a 8560: space: \x0a
8496: comment: %% Original object ID: 45 0 8561: comment: %% Original object ID: 45 0
8523: space: \x0a 8588: space: \x0a
8524: integer: 53 8589: integer: 53
8526: space: 8591: space:
8527: integer: 0 8592: integer: 0
8528: space: 8593: space:
8529: word: obj 8594: word: obj
8532: space: \x0a 8597: space: \x0a
8533: dict_open: << 8598: dict_open: <<
8535: space: \x0a 8600: space: \x0a
8538: name: /Length 8603: name: /Length
8545: space: 8610: space:
8546: integer: 54 8611: integer: 54
8548: space: 8613: space:
8549: integer: 0 8614: integer: 0
8550: space: 8615: space:
8551: word: R 8616: word: R
8552: space: \x0a 8617: space: \x0a
8553: dict_close: >> 8618: dict_close: >>
8555: space: \x0a 8620: space: \x0a
8556: word: stream 8621: word: stream
skipping to endstream skipping to endstream
8607: word: endstream 8672: word: endstream
8616: space: \x0a 8681: space: \x0a
8617: word: endobj 8682: word: endobj
8623: space: \x0a\x0a 8688: space: \x0a\x0a
8625: integer: 54 8690: integer: 54
8627: space: 8692: space:
8628: integer: 0 8693: integer: 0
8629: space: 8694: space:
8630: word: obj 8695: word: obj
8633: space: \x0a 8698: space: \x0a
8634: integer: 44 8699: integer: 44
8636: space: \x0a 8701: space: \x0a
8637: word: endobj 8702: word: endobj
8643: space: \x0a\x0a 8708: space: \x0a\x0a
8645: comment: %% Contents for page 10 8710: comment: %% Contents for page 10
8668: space: \x0a 8733: space: \x0a
8669: comment: %% Original object ID: 46 0 8734: comment: %% Original object ID: 46 0
8696: space: \x0a 8761: space: \x0a
8697: integer: 55 8762: integer: 55
8699: space: 8764: space:
8700: integer: 0 8765: integer: 0
8701: space: 8766: space:
8702: word: obj 8767: word: obj
8705: space: \x0a 8770: space: \x0a
8706: dict_open: << 8771: dict_open: <<
8708: space: \x0a 8773: space: \x0a
8711: name: /Length 8776: name: /Length
8718: space: 8783: space:
8719: integer: 56 8784: integer: 56
8721: space: 8786: space:
8722: integer: 0 8787: integer: 0
8723: space: 8788: space:
8724: word: R 8789: word: R
8725: space: \x0a 8790: space: \x0a
8726: dict_close: >> 8791: dict_close: >>
8728: space: \x0a 8793: space: \x0a
8729: word: stream 8794: word: stream
skipping to endstream skipping to endstream
8780: word: endstream 8845: word: endstream
8789: space: \x0a 8854: space: \x0a
8790: word: endobj 8855: word: endobj
8796: space: \x0a\x0a 8861: space: \x0a\x0a
8798: integer: 56 8863: integer: 56
8800: space: 8865: space:
8801: integer: 0 8866: integer: 0
8802: space: 8867: space:
8803: word: obj 8868: word: obj
8806: space: \x0a 8871: space: \x0a
8807: integer: 44 8872: integer: 44
8809: space: \x0a 8874: space: \x0a
8810: word: endobj 8875: word: endobj
8816: space: \x0a\x0a 8881: space: \x0a\x0a
8818: comment: %% Contents for page 11 8883: comment: %% Contents for page 11
8841: space: \x0a 8906: space: \x0a
8842: comment: %% Original object ID: 47 0 8907: comment: %% Original object ID: 47 0
8869: space: \x0a 8934: space: \x0a
8870: integer: 57 8935: integer: 57
8872: space: 8937: space:
8873: integer: 0 8938: integer: 0
8874: space: 8939: space:
8875: word: obj 8940: word: obj
8878: space: \x0a 8943: space: \x0a
8879: dict_open: << 8944: dict_open: <<
8881: space: \x0a 8946: space: \x0a
8884: name: /Length 8949: name: /Length
8891: space: 8956: space:
8892: integer: 58 8957: integer: 58
8894: space: 8959: space:
8895: integer: 0 8960: integer: 0
8896: space: 8961: space:
8897: word: R 8962: word: R
8898: space: \x0a 8963: space: \x0a
8899: dict_close: >> 8964: dict_close: >>
8901: space: \x0a 8966: space: \x0a
8902: word: stream 8967: word: stream
skipping to endstream skipping to endstream
8953: word: endstream 9018: word: endstream
8962: space: \x0a 9027: space: \x0a
8963: word: endobj 9028: word: endobj
8969: space: \x0a\x0a 9034: space: \x0a\x0a
8971: integer: 58 9036: integer: 58
8973: space: 9038: space:
8974: integer: 0 9039: integer: 0
8975: space: 9040: space:
8976: word: obj 9041: word: obj
8979: space: \x0a 9044: space: \x0a
8980: integer: 44 9045: integer: 44
8982: space: \x0a 9047: space: \x0a
8983: word: endobj 9048: word: endobj
8989: space: \x0a\x0a 9054: space: \x0a\x0a
8991: integer: 59 9056: integer: 59
8993: space: 9058: space:
8994: integer: 0 9059: integer: 0
8995: space: 9060: space:
8996: word: obj 9061: word: obj
8999: space: \x0a 9064: space: \x0a
9000: dict_open: << 9065: dict_open: <<
9002: space: \x0a 9067: space: \x0a
9005: name: /Type 9070: name: /Type
9010: space: 9075: space:
9011: name: /XRef 9076: name: /XRef
9016: space: \x0a 9081: space: \x0a
9019: name: /Length 9084: name: /Length
9026: space: 9091: space:
9027: integer: 240 9092: integer: 240
9030: space: \x0a 9095: space: \x0a
9033: name: /W 9098: name: /W
9035: space: 9100: space:
9036: array_open: [ 9101: array_open: [
9037: space: 9102: space:
9038: integer: 1 9103: integer: 1
9039: space: 9104: space:
9040: integer: 2 9105: integer: 2
9041: space: 9106: space:
9042: integer: 1 9107: integer: 1
9043: space: 9108: space:
9044: array_close: ] 9109: array_close: ]
9045: space: \x0a 9110: space: \x0a
9048: name: /Root 9113: name: /Root
9053: space: 9118: space:
9054: integer: 2 9119: integer: 2
9055: space: 9120: space:
9056: integer: 0 9121: integer: 0
9057: space: 9122: space:
9058: word: R 9123: word: R
9059: space: \x0a 9124: space: \x0a
9062: name: /Size 9127: name: /Size
9067: space: 9132: space:
9068: integer: 60 9133: integer: 60
9070: space: \x0a 9135: space: \x0a
9073: name: /ID 9138: name: /ID
9076: space: 9141: space:
9077: array_open: [ 9142: array_open: [
9078: string: \x88\x04\x8e\x17\xc9a\xe0\x94\xff\xec\xe9\x8c\xb8\x8cF\xd0 (raw: <88048e17c961e094ffece98cb88c46d0>) 9143: string: \x88\x04\x8e\x17\xc9a\xe0\x94\xff\xec\xe9\x8c\xb8\x8cF\xd0 (raw: <88048e17c961e094ffece98cb88c46d0>)
9112: string: \xed\xd6\x0f\xe8\xee\x87\xf8\x871\xa8o\x81\x9f\xe6Q\x99 (raw: <edd60fe8ee87f88731a86f819fe65199>) 9177: string: \xed\xd6\x0f\xe8\xee\x87\xf8\x871\xa8o\x81\x9f\xe6Q\x99 (raw: <edd60fe8ee87f88731a86f819fe65199>)
9146: array_close: ] 9211: array_close: ]
9147: space: \x0a 9212: space: \x0a
9148: dict_close: >> 9213: dict_close: >>
9150: space: \x0a 9215: space: \x0a
9151: word: stream 9216: word: stream
skipping to endstream skipping to endstream
9399: word: endstream 9464: word: endstream
9408: space: \x0a 9473: space: \x0a
9409: word: endobj 9474: word: endobj
9415: space: \x0a\x0a 9480: space: \x0a\x0a
9417: word: startxref 9482: word: startxref
9426: space: \x0a 9491: space: \x0a
9427: integer: 8991 9492: integer: 9056
9431: space: \x0a 9496: space: \x0a
9432: comment: %%EOF 9497: comment: %%EOF
9437: space: \x0a 9502: space: \x0a
9438: eof 9503: eof
--- END FILE --- --- END FILE ---
--- BEGIN PAGE 1 --- --- BEGIN PAGE 1 ---
0: word: BT 0: word: BT
@ -659,69 +659,77 @@ skipping to endstream
58: space: \x0a 58: space: \x0a
61: string: quack (raw: (qu\\x0dack)) 61: string: quack (raw: (qu\\x0dack))
70: space: \x0a 70: space: \x0a
73: integer: 72 73: string: qu\x0aack (raw: (qu\\x0d\x0a\x0dack))
75: space: 84: space: \x0a
76: integer: 720 87: string: qu\x0aack (raw: (qu\\x0d\x0dack))
79: space: 97: space: \x0a
80: word: Td 100: string: qu\x0a\x0a\x0a\x0a\x0a\x0aack (raw: (qu\\x0a\x0a\x0d\x0a\x0a\x0d\x0d\x0a\x0aack))
82: space: \x0a 117: space: \x0a
85: real: 3.14 120: string: qu\x0a\x0a\x0a\x0a\x0a\x0aack (raw: (qu\x0a\x0d\x0a\x0a\x0d\x0d\x0a\x0aack))
89: space: \x0a
92: real: 3.
94: space: \x0a
97: real: .14
100: space: \x0a
103: real: +3.14
108: space: \x0a
111: real: +3.
114: space: \x0a
117: real: +.14
121: space: \x0a
124: real: -3.14
129: space: \x0a
132: real: -3.
135: space: \x0a 135: space: \x0a
138: real: -.14 138: integer: 72
142: space: \x0a 140: space:
145: integer: +16059 141: integer: 720
151: space: \x0a 144: space:
154: integer: -16059 145: word: Td
160: space: \x0a 147: space: \x0a
163: word: +. 150: real: 3.14
154: space: \x0a
157: real: 3.
159: space: \x0a
162: real: .14
165: space: \x0a 165: space: \x0a
168: bad: <fade\x0aET (invalid character (T) in hexstring) 168: real: +3.14
176: space: \x0a 173: space: \x0a
177: bad: ) (unexpected )) 176: real: +3.
178: bad: > (unexpected >) 179: space: \x0a
179: word: quack 182: real: +.14
184: space: 186: space: \x0a
185: bad: /name#oops (invalid name token) 189: real: -3.14
195: space: 194: space: \x0a
196: name: /name (raw: /n#61me) 197: real: -3.
203: space: 200: space: \x0a
204: word: one 203: real: -.14
207: space: 207: space: \x0a
208: bool: true 210: integer: +16059
212: space: 216: space: \x0a
213: word: two 219: integer: -16059
216: space: 225: space: \x0a
217: bool: false 228: word: +.
222: space: 230: space: \x0a
223: word: three 233: bad: <fade\x0aET (invalid character (T) in hexstring)
228: space: 241: space: \x0a
229: null: null 242: bad: ) (unexpected ))
233: space: 243: bad: > (unexpected >)
234: word: four 244: word: quack
238: space: \x0a 249: space:
239: word: !@#$^& 250: bad: /name#oops (invalid name token)
245: brace_open: { 260: space:
246: brace_close: } 261: name: /name (raw: /n#61me)
247: word: *-_+= 268: space:
252: space: \x0a 269: word: one
253: word: abc123def3.14true 272: space:
270: space: \x0a 273: bool: true
271: bad: <ff\x0a (EOF while reading token) 277: space:
275: eof 278: word: two
281: space:
282: bool: false
287: space:
288: word: three
293: space:
294: null: null
298: space:
299: word: four
303: space: \x0a
304: word: !@#$^&
310: brace_open: {
311: brace_close: }
312: word: *-_+=
317: space: \x0a
318: word: abc123def3.14true
335: space: \x0a
336: bad: <ff\x0a (EOF while reading token)
340: eof
--- END PAGE 4 --- --- END PAGE 4 ---
--- BEGIN PAGE 5 --- --- BEGIN PAGE 5 ---
0: word: BT 0: word: BT

View File

@ -81,172 +81,172 @@ skipping to endstream
7119: dict_close: >> 7119: dict_close: >>
7122: word: stream 7122: word: stream
skipping to endstream skipping to endstream
7404: word: endstream 7469: word: endstream
7414: word: endobj 7479: word: endobj
7422: integer: 44 7487: integer: 44
7425: integer: 0 7490: integer: 0
7427: word: obj 7492: word: obj
7431: integer: 275 7496: integer: 340
7435: word: endobj 7500: word: endobj
7494: integer: 45 7559: integer: 45
7497: integer: 0 7562: integer: 0
7499: word: obj 7564: word: obj
7503: dict_open: << 7568: dict_open: <<
7508: name: /Length 7573: name: /Length
7516: integer: 46 7581: integer: 46
7519: integer: 0 7584: integer: 0
7521: word: R 7586: word: R
7523: dict_close: >> 7588: dict_close: >>
7526: word: stream 7591: word: stream
skipping to endstream skipping to endstream
7601: word: endstream 7666: word: endstream
7611: word: endobj 7676: word: endobj
7640: integer: 46 7705: integer: 46
7643: integer: 0 7708: integer: 0
7645: word: obj 7710: word: obj
7649: integer: 67 7714: integer: 67
7652: word: endobj 7717: word: endobj
7711: integer: 47 7776: integer: 47
7714: integer: 0 7779: integer: 0
7716: word: obj 7781: word: obj
7720: dict_open: << 7785: dict_open: <<
7725: name: /Length 7790: name: /Length
7733: integer: 48 7798: integer: 48
7736: integer: 0 7801: integer: 0
7738: word: R 7803: word: R
7740: dict_close: >> 7805: dict_close: >>
7743: word: stream 7808: word: stream
skipping to endstream skipping to endstream
7794: word: endstream 7859: word: endstream
7804: word: endobj 7869: word: endobj
7812: integer: 48 7877: integer: 48
7815: integer: 0 7880: integer: 0
7817: word: obj 7882: word: obj
7821: integer: 44 7886: integer: 44
7824: word: endobj 7889: word: endobj
7883: integer: 49 7948: integer: 49
7886: integer: 0 7951: integer: 0
7888: word: obj 7953: word: obj
7892: dict_open: << 7957: dict_open: <<
7897: name: /Length 7962: name: /Length
7905: integer: 50 7970: integer: 50
7908: integer: 0 7973: integer: 0
7910: word: R 7975: word: R
7912: dict_close: >> 7977: dict_close: >>
7915: word: stream 7980: word: stream
skipping to endstream skipping to endstream
8241: word: endstream 8306: word: endstream
8251: word: endobj 8316: word: endobj
8280: integer: 50 8345: integer: 50
8283: integer: 0 8348: integer: 0
8285: word: obj 8350: word: obj
8289: integer: 318 8354: integer: 318
8293: word: endobj 8358: word: endobj
8352: integer: 51 8417: integer: 51
8355: integer: 0 8420: integer: 0
8357: word: obj 8422: word: obj
8361: dict_open: << 8426: dict_open: <<
8366: name: /Length 8431: name: /Length
8374: integer: 52 8439: integer: 52
8377: integer: 0 8442: integer: 0
8379: word: R 8444: word: R
8381: dict_close: >> 8446: dict_close: >>
8384: word: stream 8449: word: stream
skipping to endstream skipping to endstream
8435: word: endstream 8500: word: endstream
8445: word: endobj 8510: word: endobj
8453: integer: 52 8518: integer: 52
8456: integer: 0 8521: integer: 0
8458: word: obj 8523: word: obj
8462: integer: 44 8527: integer: 44
8465: word: endobj 8530: word: endobj
8524: integer: 53 8589: integer: 53
8527: integer: 0 8592: integer: 0
8529: word: obj 8594: word: obj
8533: dict_open: << 8598: dict_open: <<
8538: name: /Length 8603: name: /Length
8546: integer: 54 8611: integer: 54
8549: integer: 0 8614: integer: 0
8551: word: R 8616: word: R
8553: dict_close: >> 8618: dict_close: >>
8556: word: stream 8621: word: stream
skipping to endstream skipping to endstream
8607: word: endstream 8672: word: endstream
8617: word: endobj 8682: word: endobj
8625: integer: 54 8690: integer: 54
8628: integer: 0 8693: integer: 0
8630: word: obj 8695: word: obj
8634: integer: 44 8699: integer: 44
8637: word: endobj 8702: word: endobj
8697: integer: 55 8762: integer: 55
8700: integer: 0 8765: integer: 0
8702: word: obj 8767: word: obj
8706: dict_open: << 8771: dict_open: <<
8711: name: /Length 8776: name: /Length
8719: integer: 56 8784: integer: 56
8722: integer: 0 8787: integer: 0
8724: word: R 8789: word: R
8726: dict_close: >> 8791: dict_close: >>
8729: word: stream 8794: word: stream
skipping to endstream skipping to endstream
8780: word: endstream 8845: word: endstream
8790: word: endobj 8855: word: endobj
8798: integer: 56 8863: integer: 56
8801: integer: 0 8866: integer: 0
8803: word: obj 8868: word: obj
8807: integer: 44 8872: integer: 44
8810: word: endobj 8875: word: endobj
8870: integer: 57 8935: integer: 57
8873: integer: 0 8938: integer: 0
8875: word: obj 8940: word: obj
8879: dict_open: << 8944: dict_open: <<
8884: name: /Length 8949: name: /Length
8892: integer: 58 8957: integer: 58
8895: integer: 0 8960: integer: 0
8897: word: R 8962: word: R
8899: dict_close: >> 8964: dict_close: >>
8902: word: stream 8967: word: stream
skipping to endstream skipping to endstream
8953: word: endstream 9018: word: endstream
8963: word: endobj 9028: word: endobj
8971: integer: 58 9036: integer: 58
8974: integer: 0 9039: integer: 0
8976: word: obj 9041: word: obj
8980: integer: 44 9045: integer: 44
8983: word: endobj 9048: word: endobj
8991: integer: 59 9056: integer: 59
8994: integer: 0 9059: integer: 0
8996: word: obj 9061: word: obj
9000: dict_open: << 9065: dict_open: <<
9005: name: /Type 9070: name: /Type
9011: name: /XRef 9076: name: /XRef
9019: name: /Length 9084: name: /Length
9027: integer: 240 9092: integer: 240
9033: name: /W 9098: name: /W
9036: array_open: [ 9101: array_open: [
9038: integer: 1 9103: integer: 1
9040: integer: 2 9105: integer: 2
9042: integer: 1 9107: integer: 1
9044: array_close: ] 9109: array_close: ]
9048: name: /Root 9113: name: /Root
9054: integer: 2 9119: integer: 2
9056: integer: 0 9121: integer: 0
9058: word: R 9123: word: R
9062: name: /Size 9127: name: /Size
9068: integer: 60 9133: integer: 60
9073: name: /ID 9138: name: /ID
9077: array_open: [ 9142: array_open: [
9078: string: \x88\x04\x8e\x17\xc9a\xe0\x94\xff\xec\xe9\x8c\xb8\x8cF\xd0 (raw: <88048e17c961e094ffece98cb88c46d0>) 9143: string: \x88\x04\x8e\x17\xc9a\xe0\x94\xff\xec\xe9\x8c\xb8\x8cF\xd0 (raw: <88048e17c961e094ffece98cb88c46d0>)
9112: string: \xed\xd6\x0f\xe8\xee\x87\xf8\x871\xa8o\x81\x9f\xe6Q\x99 (raw: <edd60fe8ee87f88731a86f819fe65199>) 9177: string: \xed\xd6\x0f\xe8\xee\x87\xf8\x871\xa8o\x81\x9f\xe6Q\x99 (raw: <edd60fe8ee87f88731a86f819fe65199>)
9146: array_close: ] 9211: array_close: ]
9148: dict_close: >> 9213: dict_close: >>
9151: word: stream 9216: word: stream
skipping to endstream skipping to endstream
9399: word: endstream 9464: word: endstream
9409: word: endobj 9474: word: endobj
9417: word: startxref 9482: word: startxref
9427: integer: 8991 9492: integer: 9056
9438: eof 9503: eof
--- END FILE --- --- END FILE ---
--- BEGIN PAGE 1 --- --- BEGIN PAGE 1 ---
0: word: BT 0: word: BT
@ -325,41 +325,45 @@ skipping to endstream
36: string: quack (raw: (qu\\x0d\x0aack)) 36: string: quack (raw: (qu\\x0d\x0aack))
49: string: quack (raw: (qu\\x0aack)) 49: string: quack (raw: (qu\\x0aack))
61: string: quack (raw: (qu\\x0dack)) 61: string: quack (raw: (qu\\x0dack))
73: integer: 72 73: string: qu\x0aack (raw: (qu\\x0d\x0a\x0dack))
76: integer: 720 87: string: qu\x0aack (raw: (qu\\x0d\x0dack))
80: word: Td 100: string: qu\x0a\x0a\x0a\x0a\x0a\x0aack (raw: (qu\\x0a\x0a\x0d\x0a\x0a\x0d\x0d\x0a\x0aack))
85: real: 3.14 120: string: qu\x0a\x0a\x0a\x0a\x0a\x0aack (raw: (qu\x0a\x0d\x0a\x0a\x0d\x0d\x0a\x0aack))
92: real: 3. 138: integer: 72
97: real: .14 141: integer: 720
103: real: +3.14 145: word: Td
111: real: +3. 150: real: 3.14
117: real: +.14 157: real: 3.
124: real: -3.14 162: real: .14
132: real: -3. 168: real: +3.14
138: real: -.14 176: real: +3.
145: integer: +16059 182: real: +.14
154: integer: -16059 189: real: -3.14
163: word: +. 197: real: -3.
168: bad: <fade\x0aET (invalid character (T) in hexstring) 203: real: -.14
177: bad: ) (unexpected )) 210: integer: +16059
178: bad: > (unexpected >) 219: integer: -16059
179: word: quack 228: word: +.
185: bad: /name#oops (invalid name token) 233: bad: <fade\x0aET (invalid character (T) in hexstring)
196: name: /name (raw: /n#61me) 242: bad: ) (unexpected ))
204: word: one 243: bad: > (unexpected >)
208: bool: true 244: word: quack
213: word: two 250: bad: /name#oops (invalid name token)
217: bool: false 261: name: /name (raw: /n#61me)
223: word: three 269: word: one
229: null: null 273: bool: true
234: word: four 278: word: two
239: word: !@#$^& 282: bool: false
245: brace_open: { 288: word: three
246: brace_close: } 294: null: null
247: word: *-_+= 299: word: four
253: word: abc123def3.14true 304: word: !@#$^&
271: bad: <ff\x0a (EOF while reading token) 310: brace_open: {
275: eof 311: brace_close: }
312: word: *-_+=
318: word: abc123def3.14true
336: bad: <ff\x0a (EOF while reading token)
340: eof
--- END PAGE 4 --- --- END PAGE 4 ---
--- BEGIN PAGE 5 --- --- BEGIN PAGE 5 ---
0: word: BT 0: word: BT

View File

@ -181,352 +181,352 @@ skipping to endstream
7121: space: \x0a 7121: space: \x0a
7122: word: stream 7122: word: stream
skipping to endstream skipping to endstream
7404: word: endstream 7469: word: endstream
7413: space: \x0a 7478: space: \x0a
7414: word: endobj 7479: word: endobj
7420: space: \x0a\x0a 7485: space: \x0a\x0a
7422: integer: 44 7487: integer: 44
7424: space: 7489: space:
7425: integer: 0 7490: integer: 0
7426: space: 7491: space:
7427: word: obj 7492: word: obj
7430: space: \x0a 7495: space: \x0a
7431: integer: 275 7496: integer: 340
7434: space: \x0a 7499: space: \x0a
7435: word: endobj 7500: word: endobj
7441: space: \x0a\x0a 7506: space: \x0a\x0a
7443: comment: %% Contents for page 5 7508: comment: %% Contents for page 5
7465: space: \x0a 7530: space: \x0a
7466: comment: %% Original object ID: 41 0 7531: comment: %% Original object ID: 41 0
7493: space: \x0a 7558: space: \x0a
7494: integer: 45 7559: integer: 45
7496: space: 7561: space:
7497: integer: 0 7562: integer: 0
7498: space: 7563: space:
7499: word: obj 7564: word: obj
7502: space: \x0a 7567: space: \x0a
7503: dict_open: << 7568: dict_open: <<
7505: space: \x0a 7570: space: \x0a
7508: name: /Length 7573: name: /Length
7515: space: 7580: space:
7516: integer: 46 7581: integer: 46
7518: space: 7583: space:
7519: integer: 0 7584: integer: 0
7520: space: 7585: space:
7521: word: R 7586: word: R
7522: space: \x0a 7587: space: \x0a
7523: dict_close: >> 7588: dict_close: >>
7525: space: \x0a 7590: space: \x0a
7526: word: stream 7591: word: stream
skipping to endstream skipping to endstream
7601: word: endstream 7666: word: endstream
7610: space: \x0a 7675: space: \x0a
7611: word: endobj 7676: word: endobj
7617: space: \x0a
7618: comment: %QDF: ignore_newline
7638: space: \x0a\x0a
7640: integer: 46
7642: space:
7643: integer: 0
7644: space:
7645: word: obj
7648: space: \x0a
7649: integer: 67
7651: space: \x0a
7652: word: endobj
7658: space: \x0a\x0a
7660: comment: %% Contents for page 6
7682: space: \x0a 7682: space: \x0a
7683: comment: %% Original object ID: 42 0 7683: comment: %QDF: ignore_newline
7710: space: \x0a 7703: space: \x0a\x0a
7711: integer: 47 7705: integer: 46
7713: space: 7707: space:
7714: integer: 0 7708: integer: 0
7715: space: 7709: space:
7716: word: obj 7710: word: obj
7719: space: \x0a 7713: space: \x0a
7720: dict_open: << 7714: integer: 67
7722: space: \x0a 7716: space: \x0a
7725: name: /Length 7717: word: endobj
7732: space: 7723: space: \x0a\x0a
7733: integer: 48 7725: comment: %% Contents for page 6
7735: space: 7747: space: \x0a
7736: integer: 0 7748: comment: %% Original object ID: 42 0
7737: space: 7775: space: \x0a
7738: word: R 7776: integer: 47
7739: space: \x0a 7778: space:
7740: dict_close: >> 7779: integer: 0
7742: space: \x0a 7780: space:
7743: word: stream 7781: word: obj
7784: space: \x0a
7785: dict_open: <<
7787: space: \x0a
7790: name: /Length
7797: space:
7798: integer: 48
7800: space:
7801: integer: 0
7802: space:
7803: word: R
7804: space: \x0a
7805: dict_close: >>
7807: space: \x0a
7808: word: stream
skipping to endstream skipping to endstream
7794: word: endstream 7859: word: endstream
7803: space: \x0a 7868: space: \x0a
7804: word: endobj 7869: word: endobj
7810: space: \x0a\x0a 7875: space: \x0a\x0a
7812: integer: 48 7877: integer: 48
7814: space: 7879: space:
7815: integer: 0 7880: integer: 0
7816: space: 7881: space:
7817: word: obj 7882: word: obj
7820: space: \x0a 7885: space: \x0a
7821: integer: 44 7886: integer: 44
7823: space: \x0a 7888: space: \x0a
7824: word: endobj 7889: word: endobj
7830: space: \x0a\x0a 7895: space: \x0a\x0a
7832: comment: %% Contents for page 7 7897: comment: %% Contents for page 7
7854: space: \x0a 7919: space: \x0a
7855: comment: %% Original object ID: 43 0 7920: comment: %% Original object ID: 43 0
7882: space: \x0a 7947: space: \x0a
7883: integer: 49 7948: integer: 49
7885: space: 7950: space:
7886: integer: 0 7951: integer: 0
7887: space: 7952: space:
7888: word: obj 7953: word: obj
7891: space: \x0a 7956: space: \x0a
7892: dict_open: << 7957: dict_open: <<
7894: space: \x0a 7959: space: \x0a
7897: name: /Length 7962: name: /Length
7904: space: 7969: space:
7905: integer: 50 7970: integer: 50
7907: space: 7972: space:
7908: integer: 0 7973: integer: 0
7909: space: 7974: space:
7910: word: R 7975: word: R
7911: space: \x0a 7976: space: \x0a
7912: dict_close: >> 7977: dict_close: >>
7914: space: \x0a 7979: space: \x0a
7915: word: stream 7980: word: stream
skipping to endstream skipping to endstream
8241: word: endstream 8306: word: endstream
8250: space: \x0a 8315: space: \x0a
8251: word: endobj 8316: word: endobj
8257: space: \x0a 8322: space: \x0a
8258: comment: %QDF: ignore_newline 8323: comment: %QDF: ignore_newline
8278: space: \x0a\x0a 8343: space: \x0a\x0a
8280: integer: 50 8345: integer: 50
8282: space: 8347: space:
8283: integer: 0 8348: integer: 0
8284: space: 8349: space:
8285: word: obj 8350: word: obj
8288: space: \x0a 8353: space: \x0a
8289: integer: 318 8354: integer: 318
8292: space: \x0a 8357: space: \x0a
8293: word: endobj 8358: word: endobj
8299: space: \x0a\x0a 8364: space: \x0a\x0a
8301: comment: %% Contents for page 8 8366: comment: %% Contents for page 8
8323: space: \x0a 8388: space: \x0a
8324: comment: %% Original object ID: 44 0 8389: comment: %% Original object ID: 44 0
8351: space: \x0a 8416: space: \x0a
8352: integer: 51 8417: integer: 51
8354: space: 8419: space:
8355: integer: 0 8420: integer: 0
8356: space: 8421: space:
8357: word: obj 8422: word: obj
8360: space: \x0a 8425: space: \x0a
8361: dict_open: << 8426: dict_open: <<
8363: space: \x0a 8428: space: \x0a
8366: name: /Length 8431: name: /Length
8373: space: 8438: space:
8374: integer: 52 8439: integer: 52
8376: space: 8441: space:
8377: integer: 0 8442: integer: 0
8378: space: 8443: space:
8379: word: R 8444: word: R
8380: space: \x0a 8445: space: \x0a
8381: dict_close: >> 8446: dict_close: >>
8383: space: \x0a 8448: space: \x0a
8384: word: stream 8449: word: stream
skipping to endstream skipping to endstream
8435: word: endstream 8500: word: endstream
8444: space: \x0a 8509: space: \x0a
8445: word: endobj 8510: word: endobj
8451: space: \x0a\x0a 8516: space: \x0a\x0a
8453: integer: 52 8518: integer: 52
8455: space: 8520: space:
8456: integer: 0 8521: integer: 0
8457: space: 8522: space:
8458: word: obj 8523: word: obj
8461: space: \x0a 8526: space: \x0a
8462: integer: 44 8527: integer: 44
8464: space: \x0a 8529: space: \x0a
8465: word: endobj 8530: word: endobj
8471: space: \x0a\x0a 8536: space: \x0a\x0a
8473: comment: %% Contents for page 9 8538: comment: %% Contents for page 9
8495: space: \x0a 8560: space: \x0a
8496: comment: %% Original object ID: 45 0 8561: comment: %% Original object ID: 45 0
8523: space: \x0a 8588: space: \x0a
8524: integer: 53 8589: integer: 53
8526: space: 8591: space:
8527: integer: 0 8592: integer: 0
8528: space: 8593: space:
8529: word: obj 8594: word: obj
8532: space: \x0a 8597: space: \x0a
8533: dict_open: << 8598: dict_open: <<
8535: space: \x0a 8600: space: \x0a
8538: name: /Length 8603: name: /Length
8545: space: 8610: space:
8546: integer: 54 8611: integer: 54
8548: space: 8613: space:
8549: integer: 0 8614: integer: 0
8550: space: 8615: space:
8551: word: R 8616: word: R
8552: space: \x0a 8617: space: \x0a
8553: dict_close: >> 8618: dict_close: >>
8555: space: \x0a 8620: space: \x0a
8556: word: stream 8621: word: stream
skipping to endstream skipping to endstream
8607: word: endstream 8672: word: endstream
8616: space: \x0a 8681: space: \x0a
8617: word: endobj 8682: word: endobj
8623: space: \x0a\x0a 8688: space: \x0a\x0a
8625: integer: 54 8690: integer: 54
8627: space: 8692: space:
8628: integer: 0 8693: integer: 0
8629: space: 8694: space:
8630: word: obj 8695: word: obj
8633: space: \x0a 8698: space: \x0a
8634: integer: 44 8699: integer: 44
8636: space: \x0a 8701: space: \x0a
8637: word: endobj 8702: word: endobj
8643: space: \x0a\x0a 8708: space: \x0a\x0a
8645: comment: %% Contents for page 10 8710: comment: %% Contents for page 10
8668: space: \x0a 8733: space: \x0a
8669: comment: %% Original object ID: 46 0 8734: comment: %% Original object ID: 46 0
8696: space: \x0a 8761: space: \x0a
8697: integer: 55 8762: integer: 55
8699: space: 8764: space:
8700: integer: 0 8765: integer: 0
8701: space: 8766: space:
8702: word: obj 8767: word: obj
8705: space: \x0a 8770: space: \x0a
8706: dict_open: << 8771: dict_open: <<
8708: space: \x0a 8773: space: \x0a
8711: name: /Length 8776: name: /Length
8718: space: 8783: space:
8719: integer: 56 8784: integer: 56
8721: space: 8786: space:
8722: integer: 0 8787: integer: 0
8723: space: 8788: space:
8724: word: R 8789: word: R
8725: space: \x0a 8790: space: \x0a
8726: dict_close: >> 8791: dict_close: >>
8728: space: \x0a 8793: space: \x0a
8729: word: stream 8794: word: stream
skipping to endstream skipping to endstream
8780: word: endstream 8845: word: endstream
8789: space: \x0a 8854: space: \x0a
8790: word: endobj 8855: word: endobj
8796: space: \x0a\x0a 8861: space: \x0a\x0a
8798: integer: 56 8863: integer: 56
8800: space: 8865: space:
8801: integer: 0 8866: integer: 0
8802: space: 8867: space:
8803: word: obj 8868: word: obj
8806: space: \x0a 8871: space: \x0a
8807: integer: 44 8872: integer: 44
8809: space: \x0a 8874: space: \x0a
8810: word: endobj 8875: word: endobj
8816: space: \x0a\x0a 8881: space: \x0a\x0a
8818: comment: %% Contents for page 11 8883: comment: %% Contents for page 11
8841: space: \x0a 8906: space: \x0a
8842: comment: %% Original object ID: 47 0 8907: comment: %% Original object ID: 47 0
8869: space: \x0a 8934: space: \x0a
8870: integer: 57 8935: integer: 57
8872: space: 8937: space:
8873: integer: 0 8938: integer: 0
8874: space: 8939: space:
8875: word: obj 8940: word: obj
8878: space: \x0a 8943: space: \x0a
8879: dict_open: << 8944: dict_open: <<
8881: space: \x0a 8946: space: \x0a
8884: name: /Length 8949: name: /Length
8891: space: 8956: space:
8892: integer: 58 8957: integer: 58
8894: space: 8959: space:
8895: integer: 0 8960: integer: 0
8896: space: 8961: space:
8897: word: R 8962: word: R
8898: space: \x0a 8963: space: \x0a
8899: dict_close: >> 8964: dict_close: >>
8901: space: \x0a 8966: space: \x0a
8902: word: stream 8967: word: stream
skipping to endstream skipping to endstream
8953: word: endstream 9018: word: endstream
8962: space: \x0a 9027: space: \x0a
8963: word: endobj 9028: word: endobj
8969: space: \x0a\x0a 9034: space: \x0a\x0a
8971: integer: 58 9036: integer: 58
8973: space: 9038: space:
8974: integer: 0 9039: integer: 0
8975: space: 9040: space:
8976: word: obj 9041: word: obj
8979: space: \x0a 9044: space: \x0a
8980: integer: 44 9045: integer: 44
8982: space: \x0a 9047: space: \x0a
8983: word: endobj 9048: word: endobj
8989: space: \x0a\x0a 9054: space: \x0a\x0a
8991: integer: 59 9056: integer: 59
8993: space: 9058: space:
8994: integer: 0 9059: integer: 0
8995: space: 9060: space:
8996: word: obj 9061: word: obj
8999: space: \x0a 9064: space: \x0a
9000: dict_open: << 9065: dict_open: <<
9002: space: \x0a 9067: space: \x0a
9005: name: /Type 9070: name: /Type
9010: space: 9075: space:
9011: name: /XRef 9076: name: /XRef
9016: space: \x0a 9081: space: \x0a
9019: name: /Length 9084: name: /Length
9026: space: 9091: space:
9027: integer: 240 9092: integer: 240
9030: space: \x0a 9095: space: \x0a
9033: name: /W 9098: name: /W
9035: space: 9100: space:
9036: array_open: [ 9101: array_open: [
9037: space: 9102: space:
9038: integer: 1 9103: integer: 1
9039: space: 9104: space:
9040: integer: 2 9105: integer: 2
9041: space: 9106: space:
9042: integer: 1 9107: integer: 1
9043: space: 9108: space:
9044: array_close: ] 9109: array_close: ]
9045: space: \x0a 9110: space: \x0a
9048: name: /Root 9113: name: /Root
9053: space: 9118: space:
9054: integer: 2 9119: integer: 2
9055: space: 9120: space:
9056: integer: 0 9121: integer: 0
9057: space: 9122: space:
9058: word: R 9123: word: R
9059: space: \x0a 9124: space: \x0a
9062: name: /Size 9127: name: /Size
9067: space: 9132: space:
9068: integer: 60 9133: integer: 60
9070: space: \x0a 9135: space: \x0a
9073: name: /ID 9138: name: /ID
9076: space: 9141: space:
9077: array_open: [ 9142: array_open: [
9078: string: \x88\x04\x8e\x17\xc9a\xe0\x94\xff\xec\xe9\x8c\xb8\x8cF\xd0 (raw: <88048e17c961e094ffece98cb88c46d0>) 9143: string: \x88\x04\x8e\x17\xc9a\xe0\x94\xff\xec\xe9\x8c\xb8\x8cF\xd0 (raw: <88048e17c961e094ffece98cb88c46d0>)
9112: string: \xed\xd6\x0f\xe8\xee\x87\xf8\x871\xa8o\x81\x9f\xe6Q\x99 (raw: <edd60fe8ee87f88731a86f819fe65199>) 9177: string: \xed\xd6\x0f\xe8\xee\x87\xf8\x871\xa8o\x81\x9f\xe6Q\x99 (raw: <edd60fe8ee87f88731a86f819fe65199>)
9146: array_close: ] 9211: array_close: ]
9147: space: \x0a 9212: space: \x0a
9148: dict_close: >> 9213: dict_close: >>
9150: space: \x0a 9215: space: \x0a
9151: word: stream 9216: word: stream
skipping to endstream skipping to endstream
9399: word: endstream 9464: word: endstream
9408: space: \x0a 9473: space: \x0a
9409: word: endobj 9474: word: endobj
9415: space: \x0a\x0a 9480: space: \x0a\x0a
9417: word: startxref 9482: word: startxref
9426: space: \x0a 9491: space: \x0a
9427: integer: 8991 9492: integer: 9056
9431: space: \x0a 9496: space: \x0a
9432: comment: %%EOF 9497: comment: %%EOF
9437: space: \x0a 9502: space: \x0a
9438: eof 9503: eof
--- END FILE --- --- END FILE ---
--- BEGIN PAGE 1 --- --- BEGIN PAGE 1 ---
0: word: BT 0: word: BT
@ -659,69 +659,77 @@ skipping to endstream
58: space: \x0a 58: space: \x0a
61: string: quack (raw: (qu\\x0dack)) 61: string: quack (raw: (qu\\x0dack))
70: space: \x0a 70: space: \x0a
73: integer: 72 73: string: qu\x0aack (raw: (qu\\x0d\x0a\x0dack))
75: space: 84: space: \x0a
76: integer: 720 87: string: qu\x0aack (raw: (qu\\x0d\x0dack))
79: space: 97: space: \x0a
80: word: Td 100: string: qu\x0a\x0a\x0a\x0a\x0a\x0aack (raw: (qu\\x0a\x0a\x0d\x0a\x0a\x0d\x0d\x0a\x0aack))
82: space: \x0a 117: space: \x0a
85: real: 3.14 120: string: qu\x0a\x0a\x0a\x0a\x0a\x0aack (raw: (qu\x0a\x0d\x0a\x0a\x0d\x0d\x0a\x0aack))
89: space: \x0a
92: real: 3.
94: space: \x0a
97: real: .14
100: space: \x0a
103: real: +3.14
108: space: \x0a
111: real: +3.
114: space: \x0a
117: real: +.14
121: space: \x0a
124: real: -3.14
129: space: \x0a
132: real: -3.
135: space: \x0a 135: space: \x0a
138: real: -.14 138: integer: 72
142: space: \x0a 140: space:
145: integer: +16059 141: integer: 720
151: space: \x0a 144: space:
154: integer: -16059 145: word: Td
160: space: \x0a 147: space: \x0a
163: word: +. 150: real: 3.14
154: space: \x0a
157: real: 3.
159: space: \x0a
162: real: .14
165: space: \x0a 165: space: \x0a
168: bad: <fade\x0aET (invalid character (T) in hexstring) 168: real: +3.14
176: space: \x0a 173: space: \x0a
177: bad: ) (unexpected )) 176: real: +3.
178: bad: > (unexpected >) 179: space: \x0a
179: word: quack 182: real: +.14
184: space: 186: space: \x0a
185: bad: /name#oops (invalid name token) 189: real: -3.14
195: space: 194: space: \x0a
196: name: /name (raw: /n#61me) 197: real: -3.
203: space: 200: space: \x0a
204: word: one 203: real: -.14
207: space: 207: space: \x0a
208: bool: true 210: integer: +16059
212: space: 216: space: \x0a
213: word: two 219: integer: -16059
216: space: 225: space: \x0a
217: bool: false 228: word: +.
222: space: 230: space: \x0a
223: word: three 233: bad: <fade\x0aET (invalid character (T) in hexstring)
228: space: 241: space: \x0a
229: null: null 242: bad: ) (unexpected ))
233: space: 243: bad: > (unexpected >)
234: word: four 244: word: quack
238: space: \x0a 249: space:
239: word: !@#$^& 250: bad: /name#oops (invalid name token)
245: brace_open: { 260: space:
246: brace_close: } 261: name: /name (raw: /n#61me)
247: word: *-_+= 268: space:
252: space: \x0a 269: word: one
253: word: abc123def3.14true 272: space:
270: space: \x0a 273: bool: true
271: bad: <ff\x0a (EOF while reading token) 277: space:
275: eof 278: word: two
281: space:
282: bool: false
287: space:
288: word: three
293: space:
294: null: null
298: space:
299: word: four
303: space: \x0a
304: word: !@#$^&
310: brace_open: {
311: brace_close: }
312: word: *-_+=
317: space: \x0a
318: word: abc123def3.14true
335: space: \x0a
336: bad: <ff\x0a (EOF while reading token)
340: eof
--- END PAGE 4 --- --- END PAGE 4 ---
--- BEGIN PAGE 5 --- --- BEGIN PAGE 5 ---
0: word: BT 0: word: BT

Binary file not shown.