home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-07-09 | 46.8 KB | 2,726 lines |
- Newsgroups: comp.sources.misc
- subject: v13i117: lj2ps 1.2 (09 of 13), a LaserJet to PostScript Translator
- From: lishka@uwslh.slh.wisc.edu (Chris Lishka (hang loose...) )
- Sender: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
-
- Posting-number: Volume 13, Issue 117
- Submitted-by: lishka@uwslh.slh.wisc.edu (Chris Lishka (hang loose...) )
- Archive-name: lj2ps-1.2/part09
-
- ---- Cut Here and unpack ----
- #!/bin/sh
- # this is lj2ps.09 (part 9 of a multipart archive)
- # do not concatenate these parts, unpack them in order with /bin/sh
- # file doc/pscan.idr continued
- #
- if touch 2>&1 | fgrep '[-amc]' > /dev/null
- then TOUCH=touch
- else TOUCH=true
- fi
- if test ! -r @shar_seq_.tmp; then
- echo "Please unpack part 1 first!"
- exit 1
- fi
- (read Scheck
- if test "$Scheck" != 9; then
- echo "Please unpack part $Scheck next!"
- exit 1
- else
- exit 0
- fi
- ) < @shar_seq_.tmp || exit 1
- echo "x - Continuing file doc/pscan.idr"
- sed 's/^X//' << 'SHAR_EOF' >> doc/pscan.idr &&
- X(PRM)
- X] Text
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
- X%I
- X133 419 450 295 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
- X%I
- X132 410 455 150 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
- X%I
- X218 129 218 210 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
- X%I
- X102 384 197 119 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
- X%I
- X251 244 450 276 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
- X%I
- X245 113 459 258 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
- X%I
- X250 97 448 129 Line
- XEnd
- X
- XBegin %I BSpl
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
- X%I 6
- X212 275
- X199 308
- X175 316
- X162 305
- X168 278
- X194 263
- X6 BSpl
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
- X%I
- X234 273 451 475 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
- X%I
- X235 124 460 466 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.804699 0 0 0.804699 61.6917 209.023 ] concat
- X%I
- X249 231 450 140 Line
- XEnd
- X
- XBegin %I BSpl
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.534872 0.601209 -0.601209 0.534872 266.082 24.2328 ] concat
- X%I 6
- X212 275
- X199 308
- X175 316
- X162 305
- X168 278
- X194 263
- X6 BSpl
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.804699 0 0 0.804699 109.169 472.964 ] concat
- X%I
- X[
- X(+ | - | 0-9)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.804699 0 0 0.804699 177.568 295.126 ] concat
- X%I
- X[
- X(0-9)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.804699 0 0 0.804699 189.639 298.344 ] concat
- X%I
- X[
- X()
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.804699 0 0 0.804699 202.514 452.042 ] concat
- X%I
- X[
- X(0-9)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.804699 0 0 0.804699 240.335 368.353 ] concat
- X%I
- X[
- X(P)
- X(e)
- X(r)
- X(i)
- X(o)
- X(d)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.804699 0 0 0.804699 243.554 446.409 ] concat
- X%I
- X[
- X(Other)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.804699 0 0 0.804699 292.64 289.493 ] concat
- X%I
- X[
- X(Lowercase)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.804699 0 0 0.804699 158.888 584.888 ] concat
- X%I
- X[
- X(Other)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.804699 0 0 0.804699 269.304 420.659 ] concat
- X%I
- X[
- X(Uppercase)
- X( or)
- X( Symbol)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.804699 0 0 0.804699 261.257 393.299 ] concat
- X%I
- X[
- X(Lowercase)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.804699 0 0 0.804699 252.405 333.751 ] concat
- X%I
- X[
- X(Other)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.804699 0 0 0.804699 289.421 338.579 ] concat
- X%I
- X[
- X(Uppercase)
- X( or)
- X( Symbol)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.804699 0 0 0.804699 171.935 505.957 ] concat
- X%I
- X[
- X(Lowercase)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.804699 0 0 0.804699 195.272 556.653 ] concat
- X%I
- X[
- X(Uppercase)
- X( or)
- X( Symbol)
- X] Text
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 1 0 0 1 -6 51 ] concat
- X%I
- X169 513 429 643 Line
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Gray80
- X0.2 0.2 0.2 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.804699 0 0 0.804699 188.88 70.0228 ] concat
- X%I
- X61 418 31 33 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Gray80
- X0.2 0.2 0.2 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.804699 0 0 0.804699 188.88 -47.9772 ] concat
- X%I
- X61 418 31 33 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Gray80
- X0.2 0.2 0.2 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.576954 0 0 0.576954 168.772 -31.7798 ] concat
- X%I
- X61 418 31 33 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.576954 0 0 0.576954 369.948 -33.5331 ] concat
- X%I
- X61 418 31 33 Elli
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 1 0 0 1 226 213 ] concat
- X%I
- X[
- X(= Intermediate State)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 1 0 0 1 426 212 ] concat
- X%I
- X[
- X(= End State)
- X] Text
- XEnd
- X
- XEnd %I eop
- X
- Xshowpage
- X
- X%%Trailer
- X
- Xend
- SHAR_EOF
- echo "File doc/pscan.idr is complete" &&
- $TOUCH -am 0707112690 doc/pscan.idr &&
- chmod 0644 doc/pscan.idr ||
- echo "restore of doc/pscan.idr failed"
- set `wc -c doc/pscan.idr`;Wc_c=$1
- if test "$Wc_c" != "17644"; then
- echo original size 17644, current size $Wc_c
- fi
- # ============= doc/scanner.doc ==============
- echo "x - extracting doc/scanner.doc (Text)"
- sed 's/^X//' << 'SHAR_EOF' > doc/scanner.doc &&
- XProgram: lj2ps, 1.2 (release)
- XFile: scanner.doc
- X
- XAuthor: Christopher Lishka
- XOrganization: Wisconsin State Laboratory of Hygiene
- X Data Deprocessing Dept.
- X
- XDate: March, 1990
- X
- X
- XTopic: Scanner Implementation Notes
- X
- X1. Introduction
- X
- XIn creating a LaserJet-to-Postscript converter, it is necessary to
- Xdevelop a scanner for properly distinguishing between text and
- XLaserJet commands. This document details the scanner I created, which
- Xwas a major section of the lj2ps program.
- X
- XAt first I used lex to generate a scanner module, which I tied into my
- Xprogram with the interface in scan.h. Although lex was likely not the
- Xmost efficient choice (due to the overwhelming features it offers), it
- Xdid allow me to modify my scanner as needed as more and more bugs were
- Xdiscovered in my original design.
- X
- XHowever, the use of lex proved to be a rocky road ending in a wide
- Xravine. Besides struggling with the state feature of lex, I
- Xencountered many small problems that are common when lex is used. The
- Xfinal straw was when I discovered that lex could not handle null
- Xcharacters in the input stream. If the scanner was to be useful and
- Xextendable, null characters *had* to be handled, for their use in
- Xbitmaps graphics was very common. This implied that the lex scanner I
- Xhad built had to be tossed out. The development effort of the lex
- Xscanner was not wasted though. It did provide a suitable platform for
- Xrevising my initial scanner design.
- X
- X
- X2. The Table-Driven Finite State Automata
- X
- XIn place of the inadequate lex scanner, I decided to create a
- Xhand-coded, state-driven FSA. This would provide a fast and efficient
- Xscanner that could overcome the defficiencies of the lex system.
- XHowever, it would also take more time to develop the FSA and translate
- Xit into tables.
- X
- XCertain characteristics of the LaserJet PCL scanner lent themselves
- Xwell to improved efficiency and compact design. One important
- Xcharacteristic was that no *actions* were required on the transitions
- Xfrom state to state. Instead, a single default action of copying the
- Xcurrent character to a token buffer was all that was needed. This
- Xallowed for the complete elimination of the action table. Another
- Xmajor aspect was the relatively small number of character classes.
- XThis allowed for a simple character class table translation mechanism.
- X
- X
- X3. Implementation Details
- X
- XWhat follows is the important details of my implementation.
- X
- X* There are actually *two* scanners. Although this may seem somewhat
- X "kludgy", it actually saves development time (which was a factor)
- X because a true parser does not need to be written. Instead, which
- X scanner is being used is recorded in a global variable, and it is
- X this one that is activated when scan() is run.
- X
- X The reason that two separate scanners can be used lies in the
- X LaserJet PCL language, which consists of text with embedded
- X commands. One scanner is responsible for scanning normal text, and
- X is able to differentiate command prefixes (which always start with
- X an escape character) from the surrounding text. The other scanner
- X is responsible for breaking up command parameters into useful
- X tokens.
- X
- X Each scanner has separate state and character class tables, as well
- X as the necessary state constants that go with them. The text
- X scanner's tables and constants all start with "st_" or "ST_",
- X whereas the parameter scanner uses "sp_" and "SP_".
- X
- X One problem that may crop up in the future is commands that require
- X trailing data. Currently these commands are not implemented. I
- X have not put provisions in for reading variable length data after a
- X PCL command. However, it would be fairly trivial to add another
- X function to the scanner module (say, scan_data(length)) that would
- X read in a fixed number of characters (which would be interpreted as
- X 8-bit bytes).
- X
- X* I have defined mnemonic constants for the various states. These
- X have to be in numeric order (starting with zero) and must correspond
- X directly to the states indexes in the state tables. If this were a
- X perfect world, C would have better enumeration facilities (believe
- X me-I looked into this) and would allow enumerations as indexes into
- X arrays. Since we must live with the flaws, this is what I have come
- X up with.
- X
- X Also note that there are two "special" state types: those marked
- X START and END. START should always be state 1, whereas END should
- X always be state 0. These two constants are used to label the start
- X and end states in both scanners, so they must remain the same for
- X both. I know that fixing the start and end states to predefined
- X numbers was a kludge, but it was a fairly easy (and, hopefully,
- X minor) solution.
- X
- X* My scanner differs slightly from the "traditional" model. In mine,
- X the *only* way to end the scanning of a token is to jump to the
- X *single* END state. "Blasphemy!" some may cry out, but actually
- X this works quite well. Once the END state is reached, the scanner
- X is finished. You can find out what token was scanned by maintaining
- X a notion of what the previous state was and referring back to it
- X when END is reached. Hence the use of the variable prev_state in
- X the function scan().
- X
- X Related to the single END state is the demise of "actions."
- X Although no actions on transitions are required, without a single
- X END state one would need to keep a record of (a) which states are
- X end states and (b) whether a put-back or accept of the last read
- X character should be performed on reaching an end state. (I actually
- X considered using multiple end states first, but then settled on this
- X because it was actually easier.) With only one END state, the only
- X thing that can be done when reaching here is to put-back the
- X character that caused the transition to this state. Therefore, the
- X actions in my scanner are *always* an implicit accept of each
- X character on a transition with a put-back of a character upon
- X arrival at the single END state. This makes everything much easier
- X conceptually.
- X
- X One consequence of this design is that the scanner must contain
- X explicit error states. In addition, *all* characters must belong to
- X some character class and all character classes must have a
- X transition to another state (in many states, most characters will
- X have a transition to an error state). This actually turns out to be
- X a useful mechanism for scanning LaserJet PCL, because all characters
- X can be text or data, and illegal characters in a command just cause
- X the command to be ignored.
- X
- X* The token numbers to be returned are determined at the end of scan()
- X in a large switch() statement (actually two switch()'s because of
- X the multiple scanners). This was the easiest way to do it, and was
- X relatively efficient. Note that prev_state must be examined,
- X because curr_state will *always* equal END when the switch() is
- X reached.
- X
- X
- SHAR_EOF
- $TOUCH -am 0707112690 doc/scanner.doc &&
- chmod 0664 doc/scanner.doc ||
- echo "restore of doc/scanner.doc failed"
- set `wc -c doc/scanner.doc`;Wc_c=$1
- if test "$Wc_c" != "6867"; then
- echo original size 6867, current size $Wc_c
- fi
- # ============= doc/suggest.doc ==============
- echo "x - extracting doc/suggest.doc (Text)"
- sed 's/^X//' << 'SHAR_EOF' > doc/suggest.doc &&
- XProgram: lj2ps, 1.2 (release)
- XFile: suggest.doc
- X
- XAuthor: Christopher Lishka
- XOrganization: Wisconsin State Laboratory of Hygiene
- X Data Processing Department
- X
- XDate: April 25th, 1990
- XLast modified: June 30th, 1990, by Chris Lishka
- X
- X
- XTopic: Suggestions for Improving lj2ps
- X
- XBesides adding missing PCL commands, there are many areas where lj2ps
- Xcould be improved. This file contains suggestions for those who want
- Xto extend the lj2ps program.
- X
- X* Add the missing commands LaserJet commands. These include:
- X
- X ** The position stack commands (fairly easy)
- X
- X ** Secondary font support (fairly easy)
- X
- X ** Macros (medium difficulty)
- X
- X ** Graphics commands (difficult)
- X
- X ** HP soft fonts (very difficult)
- X
- X
- X* Extend either the Test Suite or Metrics Suite (or both!) to include
- X more tests which would better test LaserJet operations and quirks.
- X
- X
- X* The font mechanism should be completely replaced. Here are some
- X suggestions for this area:
- X
- X ** Currently the fonts information is hard-coded into the file
- X ljfonts.c. A parser should be written that reads a file
- X describing which fonts are mounted in the virtual LaserJet.
- X
- X ** Currently there are two PostScript functions for setting the
- X current font: F and FS. In reality, only FS should be needed.
- X However, the scaling information for each font would need to be
- X changed, and I don't have the time to do this.
- X
- X ** Rescaleable, downloadable LaserJet fonts should be created for
- X the LaserWriter. The only way that the two machines will have
- X similar looking fonts is to custom-make LaserJet fonts for the
- X LaserWriter. This, of course, is a helluva lot of work! On the
- X other hand, it would improve the output immensely.
- X
- X
- X* Using two separate scanners is rather kludgy. It is very likely
- X that the text scanner could be replaced by a tightly-coded loop
- X which would read a character, check to see if it was "special", and
- X add it to the buffer if it wasn't. Special characters would include:
- X
- X (a) The escape character: this would throw execution into a special
- X command scanner/parser, which would handle recognition and
- X execution of all PCL commands. This parser would need to be
- X able to read long sequences of binary information (for commands
- X with data). After the command was finished, the parser would
- X return to the above text loop.
- X
- X (b) Left and right parentheses, backslash: these must be quoted in
- X PostScript programs, and cannot simply be written out.
- X
- X (c) Newline: perform PostScript code to write a newline.
- X
- X (d) Form feed: perform PostScript code to start a new page.
- X
- X (e) Tab: perform PostScript code to move to the next tab-stop.
- X
- X (f) Shift in: switch to the secondary character set.
- X
- X (g) Shift out: switch to the primary character set.
- X
- X (h) Null, and other non-special, non-printable characters: these
- X should produce a warning, even though the LaserJet would let
- X them slip by.
- X
- X
- X* I never implemented a real parser for the PCL commands. Instead,
- X each PCL command prefix has its own dedicated function. Each of
- X these functions has a small parser built into it. As you might
- X guess (especially after looking at the code!) this causes a lot of
- X similar code to be duplicated in each function. It would be nice to
- X implement a single "real" parser for the PCL commands, in
- X conjunction with the scanner changes mentioned above. This would
- X make the overall design much cleaner, and may improve the efficiency
- X some.
- SHAR_EOF
- $TOUCH -am 0707112690 doc/suggest.doc &&
- chmod 0664 doc/suggest.doc ||
- echo "restore of doc/suggest.doc failed"
- set `wc -c doc/suggest.doc`;Wc_c=$1
- if test "$Wc_c" != "3517"; then
- echo original size 3517, current size $Wc_c
- fi
- # ============= doc/tscan.idr ==============
- echo "x - extracting doc/tscan.idr (Text)"
- sed 's/^X//' << 'SHAR_EOF' > doc/tscan.idr &&
- X%!PS-Adobe-2.0 EPSF-1.2
- X%%DocumentFonts: Courier
- X%%Pages: 1
- X%%BoundingBox: 99 37 518 754
- X%%EndComments
- X
- X50 dict begin
- X
- X/arrowHeight 8 def
- X/arrowWidth 4 def
- X/none null def
- X/numGraphicParameters 17 def
- X/stringLimit 65535 def
- X
- X/Begin {
- Xsave
- XnumGraphicParameters dict begin
- X} def
- X
- X/End {
- Xend
- Xrestore
- X} def
- X
- X/SetB {
- Xdup type /nulltype eq {
- Xpop
- Xfalse /brushRightArrow idef
- Xfalse /brushLeftArrow idef
- Xtrue /brushNone idef
- X} {
- X/brushDashOffset idef
- X/brushDashArray idef
- X0 ne /brushRightArrow idef
- X0 ne /brushLeftArrow idef
- X/brushWidth idef
- Xfalse /brushNone idef
- X} ifelse
- X} def
- X
- X/SetCFg {
- X/fgblue idef
- X/fggreen idef
- X/fgred idef
- X} def
- X
- X/SetCBg {
- X/bgblue idef
- X/bggreen idef
- X/bgred idef
- X} def
- X
- X/SetF {
- X/printSize idef
- X/printFont idef
- X} def
- X
- X/SetP {
- Xdup type /nulltype eq {
- Xpop true /patternNone idef
- X} {
- X/patternGrayLevel idef
- XpatternGrayLevel -1 eq {
- X/patternString idef
- X} if
- Xfalse /patternNone idef
- X} ifelse
- X} def
- X
- X/BSpl {
- X0 begin
- Xstorexyn
- Xnewpath
- Xn 1 gt {
- X0 0 0 0 0 0 1 1 true subspline
- Xn 2 gt {
- X0 0 0 0 1 1 2 2 false subspline
- X1 1 n 3 sub {
- X/i exch def
- Xi 1 sub dup i dup i 1 add dup i 2 add dup false subspline
- X} for
- Xn 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
- X} if
- Xn 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
- XpatternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
- XbrushNone not { istroke } if
- X0 0 1 1 leftarrow
- Xn 2 sub dup n 1 sub dup rightarrow
- X} if
- Xend
- X} dup 0 4 dict put def
- X
- X/Circ {
- Xnewpath
- X0 360 arc
- XpatternNone not { ifill } if
- XbrushNone not { istroke } if
- X} def
- X
- X/CBSpl {
- X0 begin
- Xdup 2 gt {
- Xstorexyn
- Xnewpath
- Xn 1 sub dup 0 0 1 1 2 2 true subspline
- X1 1 n 3 sub {
- X/i exch def
- Xi 1 sub dup i dup i 1 add dup i 2 add dup false subspline
- X} for
- Xn 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
- Xn 2 sub dup n 1 sub dup 0 0 1 1 false subspline
- XpatternNone not { ifill } if
- XbrushNone not { istroke } if
- X} {
- XPoly
- X} ifelse
- Xend
- X} dup 0 4 dict put def
- X
- X/Elli {
- X0 begin
- Xnewpath
- X4 2 roll
- Xtranslate
- Xscale
- X0 0 1 0 360 arc
- XpatternNone not { ifill } if
- XbrushNone not { istroke } if
- Xend
- X} dup 0 1 dict put def
- X
- X/Line {
- X0 begin
- X2 storexyn
- Xnewpath
- Xx 0 get y 0 get moveto
- Xx 1 get y 1 get lineto
- XbrushNone not { istroke } if
- X0 0 1 1 leftarrow
- X0 0 1 1 rightarrow
- Xend
- X} dup 0 4 dict put def
- X
- X/MLine {
- X0 begin
- Xstorexyn
- Xnewpath
- Xn 1 gt {
- Xx 0 get y 0 get moveto
- X1 1 n 1 sub {
- X/i exch def
- Xx i get y i get lineto
- X} for
- XpatternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
- XbrushNone not { istroke } if
- X0 0 1 1 leftarrow
- Xn 2 sub dup n 1 sub dup rightarrow
- X} if
- Xend
- X} dup 0 4 dict put def
- X
- X/Poly {
- X3 1 roll
- Xnewpath
- Xmoveto
- X-1 add
- X{ lineto } repeat
- Xclosepath
- XpatternNone not { ifill } if
- XbrushNone not { istroke } if
- X} def
- X
- X/Rect {
- X0 begin
- X/t exch def
- X/r exch def
- X/b exch def
- X/l exch def
- Xnewpath
- Xl b moveto
- Xl t lineto
- Xr t lineto
- Xr b lineto
- Xclosepath
- XpatternNone not { ifill } if
- XbrushNone not { istroke } if
- Xend
- X} dup 0 4 dict put def
- X
- X/Text {
- Xishow
- X} def
- X
- X/idef {
- Xdup where { pop pop pop } { exch def } ifelse
- X} def
- X
- X/ifill {
- X0 begin
- Xgsave
- XpatternGrayLevel -1 ne {
- Xfgred bgred fgred sub patternGrayLevel mul add
- Xfggreen bggreen fggreen sub patternGrayLevel mul add
- Xfgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
- Xeofill
- X} {
- Xeoclip
- XoriginalCTM setmatrix
- Xpathbbox /t exch def /r exch def /b exch def /l exch def
- X/w r l sub ceiling cvi def
- X/h t b sub ceiling cvi def
- X/imageByteWidth w 8 div ceiling cvi def
- X/imageHeight h def
- Xbgred bggreen bgblue setrgbcolor
- Xeofill
- Xfgred fggreen fgblue setrgbcolor
- Xw 0 gt h 0 gt and {
- Xl b translate w h scale
- Xw h true [w 0 0 h neg 0 h] { patternproc } imagemask
- X} if
- X} ifelse
- Xgrestore
- Xend
- X} dup 0 8 dict put def
- X
- X/istroke {
- Xgsave
- XbrushDashOffset -1 eq {
- X[] 0 setdash
- X1 setgray
- X} {
- XbrushDashArray brushDashOffset setdash
- Xfgred fggreen fgblue setrgbcolor
- X} ifelse
- XbrushWidth setlinewidth
- XoriginalCTM setmatrix
- Xstroke
- Xgrestore
- X} def
- X
- X/ishow {
- X0 begin
- Xgsave
- XprintFont findfont printSize scalefont setfont
- Xfgred fggreen fgblue setrgbcolor
- X/vertoffset printSize neg def {
- X0 vertoffset moveto show
- X/vertoffset vertoffset printSize sub def
- X} forall
- Xgrestore
- Xend
- X} dup 0 3 dict put def
- X
- X/patternproc {
- X0 begin
- X/patternByteLength patternString length def
- X/patternHeight patternByteLength 8 mul sqrt cvi def
- X/patternWidth patternHeight def
- X/patternByteWidth patternWidth 8 idiv def
- X/imageByteMaxLength imageByteWidth imageHeight mul
- XstringLimit patternByteWidth sub min def
- X/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
- XpatternHeight mul patternHeight max def
- X/imageHeight imageHeight imageMaxHeight sub store
- X/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
- X0 1 imageMaxHeight 1 sub {
- X/y exch def
- X/patternRow y patternByteWidth mul patternByteLength mod def
- X/patternRowString patternString patternRow patternByteWidth getinterval def
- X/imageRow y imageByteWidth mul def
- X0 patternByteWidth imageByteWidth 1 sub {
- X/x exch def
- XimageString imageRow x add patternRowString putinterval
- X} for
- X} for
- XimageString
- Xend
- X} dup 0 12 dict put def
- X
- X/min {
- Xdup 3 2 roll dup 4 3 roll lt { exch } if pop
- X} def
- X
- X/max {
- Xdup 3 2 roll dup 4 3 roll gt { exch } if pop
- X} def
- X
- X/arrowhead {
- X0 begin
- Xtransform originalCTM itransform
- X/taily exch def
- X/tailx exch def
- Xtransform originalCTM itransform
- X/tipy exch def
- X/tipx exch def
- X/dy tipy taily sub def
- X/dx tipx tailx sub def
- X/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
- Xgsave
- XoriginalCTM setmatrix
- Xtipx tipy translate
- Xangle rotate
- Xnewpath
- X0 0 moveto
- XarrowHeight neg arrowWidth 2 div lineto
- XarrowHeight neg arrowWidth 2 div neg lineto
- Xclosepath
- XpatternNone not {
- XoriginalCTM setmatrix
- X/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
- XarrowWidth div def
- X/padtail brushWidth 2 div def
- Xtipx tipy translate
- Xangle rotate
- Xpadtip 0 translate
- XarrowHeight padtip add padtail add arrowHeight div dup scale
- Xarrowheadpath
- Xifill
- X} if
- XbrushNone not {
- XoriginalCTM setmatrix
- Xtipx tipy translate
- Xangle rotate
- Xarrowheadpath
- Xistroke
- X} if
- Xgrestore
- Xend
- X} dup 0 9 dict put def
- X
- X/arrowheadpath {
- Xnewpath
- X0 0 moveto
- XarrowHeight neg arrowWidth 2 div lineto
- XarrowHeight neg arrowWidth 2 div neg lineto
- Xclosepath
- X} def
- X
- X/leftarrow {
- X0 begin
- Xy exch get /taily exch def
- Xx exch get /tailx exch def
- Xy exch get /tipy exch def
- Xx exch get /tipx exch def
- XbrushLeftArrow { tipx tipy tailx taily arrowhead } if
- Xend
- X} dup 0 4 dict put def
- X
- X/rightarrow {
- X0 begin
- Xy exch get /tipy exch def
- Xx exch get /tipx exch def
- Xy exch get /taily exch def
- Xx exch get /tailx exch def
- XbrushRightArrow { tipx tipy tailx taily arrowhead } if
- Xend
- X} dup 0 4 dict put def
- X
- X/midpoint {
- X0 begin
- X/y1 exch def
- X/x1 exch def
- X/y0 exch def
- X/x0 exch def
- Xx0 x1 add 2 div
- Xy0 y1 add 2 div
- Xend
- X} dup 0 4 dict put def
- X
- X/thirdpoint {
- X0 begin
- X/y1 exch def
- X/x1 exch def
- X/y0 exch def
- X/x0 exch def
- Xx0 2 mul x1 add 3 div
- Xy0 2 mul y1 add 3 div
- Xend
- X} dup 0 4 dict put def
- X
- X/subspline {
- X0 begin
- X/movetoNeeded exch def
- Xy exch get /y3 exch def
- Xx exch get /x3 exch def
- Xy exch get /y2 exch def
- Xx exch get /x2 exch def
- Xy exch get /y1 exch def
- Xx exch get /x1 exch def
- Xy exch get /y0 exch def
- Xx exch get /x0 exch def
- Xx1 y1 x2 y2 thirdpoint
- X/p1y exch def
- X/p1x exch def
- Xx2 y2 x1 y1 thirdpoint
- X/p2y exch def
- X/p2x exch def
- Xx1 y1 x0 y0 thirdpoint
- Xp1x p1y midpoint
- X/p0y exch def
- X/p0x exch def
- Xx2 y2 x3 y3 thirdpoint
- Xp2x p2y midpoint
- X/p3y exch def
- X/p3x exch def
- XmovetoNeeded { p0x p0y moveto } if
- Xp1x p1y p2x p2y p3x p3y curveto
- Xend
- X} dup 0 17 dict put def
- X
- X/storexyn {
- X/n exch def
- X/y n array def
- X/x n array def
- Xn 1 sub -1 0 {
- X/i exch def
- Xy i 3 2 roll put
- Xx i 3 2 roll put
- X} for
- X} def
- X
- X%%EndProlog
- X
- X%I Idraw 5 Grid 8
- X
- X%%Page: 1 1
- X
- XBegin
- X%I b u
- X%I cfg u
- X%I cbg u
- X%I f u
- X%I p u
- X%I t
- X[ 0.96 0 0 0.96 0 0 ] concat
- X/originalCTM matrix currentmatrix def
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 1 0 0 1 130 138 ] concat
- X%I
- X[
- X(* All end states include a description of the token recognized.)
- X()
- X(* All states include the three letter code that is used in the C-code \(where)
- X( it is preceded by the prefix ST_\).)
- X()
- X(* All transitions are marked with the characters that cause the transition.)
- X()
- X(* The action for all transitions is to store the character in a buffer.)
- X()
- X(* The action for all end states is to accept the last character, except for the)
- X( states CLP, CRP, and TXT, which cause the last character to be put back into)
- X( the input stream.)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 2.67273 0 0 2.67273 167 782.691 ] concat
- X%I
- X[
- X(Text Scanner for lj2ps)
- X] Text
- XEnd
- X
- XBegin %I Pict
- X%I b u
- X%I cfg u
- X%I cbg u
- X%I f u
- X%I p u
- X%I t
- X[ 0.735593 0 0 0.735593 -382.698 146.167 ] concat
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 1090.48 160.992 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 1087.6 284.829 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 1088.56 220.51 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 1089.52 380.827 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 1088.56 441.305 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 1083.76 569.942 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 1012.72 570.902 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 943.6 572.822 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 872.562 571.862 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 799.604 572.822 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 727.605 572.822 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 656.567 571.862 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 650.807 370.267 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 1086.64 506.584 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 910.961 -43.4835 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 967.6 -44.4434 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 1023.28 -44.4434 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 1081.84 -43.4835 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 1092.4 43.8745 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 1092.4 102.433 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 743.925 -43.4835 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 893.682 330.908 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 988.719 332.828 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 652.727 207.071 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 653.687 156.192 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 654.647 103.393 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 653.687 51.5543 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 653.687 1.6355 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 799.604 -43.4835 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 854.322 -43.4835 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X67 550 72 710 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X71 548 138 710 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X75 546 206 715 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X78 545 281 715 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X82 543 353 718 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X85 540 423 717 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X89 538 496 719 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X90 534 494 667 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X91 530 496 598 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X90 526 497 534 Line
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 685.366 526.743 ] concat
- X%I
- X[
- X(Start)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 700.726 799.377 ] concat
- X%I
- X[
- X(Text)
- X(Left)
- X(Paren)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 771.764 799.377 ] concat
- X%I
- X[
- X(Text)
- X(Right)
- X(Paren)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 843.763 798.417 ] concat
- X%I
- X[
- X(Text)
- X(Back-)
- X(Slash)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 911.921 792.657 ] concat
- X%I
- X[
- X(Text)
- X(Newline)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 988.719 800.337 ] concat
- X%I
- X[
- X(Text)
- X(Form-)
- X(Feed)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1060.72 783.057 ] concat
- X%I
- X[
- X(Null)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1130.8 781.137 ] concat
- X%I
- X[
- X(Text)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1181.67 703.379 ] concat
- X%I
- X[
- X(Tab)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1182.63 640.021 ] concat
- X%I
- X[
- X(Shift)
- X(Out)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1183.59 580.502 ] concat
- X%I
- X[
- X(Shift)
- X(In)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 714.166 704.339 ] concat
- X%I
- X[
- X(\\\()
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 766.005 706.259 ] concat
- X%I
- X[
- X(\\\))
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 817.843 707.219 ] concat
- X%I
- X[
- X(\\\\)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 874.482 705.299 ] concat
- X%I
- X[
- X(\\n)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 911.921 697.619 ] concat
- X%I
- X[
- X(\\f)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 961.84 699.539 ] concat
- X%I
- X[
- X(\\0)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1012.72 709.139 ] concat
- X%I
- X[
- X(not\(\\f.\\n,^[,)
- X( \\\(,\\\),\\\\,)
- X( \\t,\\016,\\017\))
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1079.92 668.82 ] concat
- X%I
- X[
- X(\\t)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1078.96 624.661 ] concat
- X%I
- X[
- X(\\016)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1079.92 569.942 ] concat
- X%I
- X[
- X(\\017)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 734.325 784.017 ] concat
- X%I
- X[
- X(TLP)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 807.284 784.017 ] concat
- X%I
- X[
- X(TRP)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 879.282 784.017 ] concat
- X%I
- X[
- X(TBS)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 953.2 784.017 ] concat
- X%I
- X[
- X(TNL)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1026.16 784.017 ] concat
- X%I
- X[
- X(TFF)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1088.56 783.057 ] concat
- X%I
- X[
- X(NUL)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1162.48 781.137 ] concat
- X%I
- X[
- X(TXT)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1181.67 688.979 ] concat
- X%I
- X[
- X(TTB)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1184.55 615.061 ] concat
- X%I
- X[
- X(TSO)
- X] Text
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1184.55 553.623 ] concat
- X%I
- X[
- X(TSI)
- X] Text
- XEnd
- X
- XBegin %I BSpl
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 653.687 43.8745 ] concat
- X%I 6
- X549 743
- X565 752
- X583 743
- X583 727
- X567 719
- X549 728
- X6 BSpl
- XEnd
- X
- XBegin %I Text
- X%I cfg Black
- X0 0 0 SetCFg
- X%I f *-courier-medium-r-*-80-*
- X/Courier 8 SetF
- X%I t
- X[ 0.959978 0 0 0.959978 1169.2 734.098 ] concat
- X%I
- X[
- X(not\(\\f.\\n,^[,)
- X( \\\(,\\\),\\\\,)
- X( \\t,\\016,\\017\))
- X] Text
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 893.682 259.869 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Elli
- X%I b 65535
- X1 0 0 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 987.759 265.629 ] concat
- X%I
- X72 188 24 24 Elli
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X84 507 253 356 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X253 321 200 262 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X280 316 324 218 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X284 359 306 388 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X295 350 508 413 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X296 342 495 369 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X295 336 500 311 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X295 330 502 251 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X290 323 503 193 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X334 171 337 117 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X357 185 496 110 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X352 178 438 111 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X345 174 385 112 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X321 176 285 117 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X311 189 175 114 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X316 180 232 115 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X164 260 87 340 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X158 241 94 245 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X170 223 92 147 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X161 232 93 192 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X161 252 93 301 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X318 434 319 459 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- X%I
- X417 440 417 462 Line
- XEnd
- X
- XBegin %I Line
- X%I b 65535
- X1 0 1 [] 0 SetB
- X%I cfg Black
- X0 0 0 SetCFg
- X%I cbg White
- X1 1 1 SetCBg
- X%I p
- X0 SetP
- X%I t
- X[ 0.959978 0 0 0.959978 657.527 46.7544 ] concat
- SHAR_EOF
- echo "End of part 9"
- echo "File doc/tscan.idr is continued in part 10"
- echo "10" > @shar_seq_.tmp
- exit 0
-
-