summaryrefslogtreecommitdiff
path: root/web/fmweb
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /web/fmweb
Initial commit
Diffstat (limited to 'web/fmweb')
-rw-r--r--web/fmweb/fmweb.README32
-rw-r--r--web/fmweb/fmweb.mif9878
-rw-r--r--web/fmweb/fmweb.ps4073
3 files changed, 13983 insertions, 0 deletions
diff --git a/web/fmweb/fmweb.README b/web/fmweb/fmweb.README
new file mode 100644
index 0000000000..746fe9dd8f
--- /dev/null
+++ b/web/fmweb/fmweb.README
@@ -0,0 +1,32 @@
+fmweb is an attempt to do literate programming using FrameMaker.
+(The term web does not indicate any connection to the World Wide Web -
+please see the comp.programming.literate FAQ for details on "web" tools.)
+
+The fundamental problem I have with traditional web tools is that
+the web text looks like a mess, because it has code as well as
+documentation with formatting data all in the soup. I prefer WYSIWIG
+documentation systems over TeX, where formatting meta-information does
+not clutter up your thinking.
+
+fmweb allows you to write your code in a way that it looks exactly like
+the WEB system's output from the outset. It supports output to multiple files,
+is language independent, and doesn't care how many figures or fonts you
+use.
+
+The three files in this distribution are -
+ fmweb.mif - a FrameMaker 4 document containing everything - including
+ a perl5 fmweb script.
+ fmweb.ps - a postscript print of this document for those who don't
+ have Frame, but want to have a look at the approach.
+ fmweb.README - this file.
+
+
+Please send comments/ideas/flames to sriram@tcs.com. I am exploring usage
+of such an approach for largish systems. I would like to know what
+people who use the traditional WEB approach think of the workability of
+this approach.
+
+Sriram Srinivasan
+July 9, 1995
+(sriram@tcs.com)
+
diff --git a/web/fmweb/fmweb.mif b/web/fmweb/fmweb.mif
new file mode 100644
index 0000000000..d29d0ae4f9
--- /dev/null
+++ b/web/fmweb/fmweb.mif
@@ -0,0 +1,9878 @@
+<MIFFile 4.00> # Generated by FrameMaker xm4.0.1P1m
+# Options:
+# Paragraph Text
+# Paragraph Tags
+# Paragraph Formats
+# Font Information
+# Markers
+# Anchored Frames
+# Tables
+# Graphics and TextRect Layout
+# Master Page Items
+# Condition Catalog
+# Table Catalogs
+# Font Catalog
+# Paragraph Catalog
+# Document Template
+# Document Dictionary
+# Variables
+# Element Definitions
+# Elements
+#
+<Units Uin >
+<ColorCatalog
+ <Color
+ <ColorTag `Black'>
+ <ColorCyan 0.000000>
+ <ColorMagenta 0.000000>
+ <ColorYellow 0.000000>
+ <ColorBlack 100.000000>
+ <ColorAttribute ColorIsBlack >
+ <ColorAttribute ColorIsReserved >
+ > # end of Color
+ <Color
+ <ColorTag `White'>
+ <ColorCyan 0.000000>
+ <ColorMagenta 0.000000>
+ <ColorYellow 0.000000>
+ <ColorBlack 0.000000>
+ <ColorAttribute ColorIsWhite >
+ <ColorAttribute ColorIsReserved >
+ > # end of Color
+ <Color
+ <ColorTag `Red'>
+ <ColorCyan 0.000000>
+ <ColorMagenta 100.000000>
+ <ColorYellow 100.000000>
+ <ColorBlack 0.000000>
+ <ColorAttribute ColorIsRed >
+ <ColorAttribute ColorIsReserved >
+ > # end of Color
+ <Color
+ <ColorTag `Green'>
+ <ColorCyan 100.000000>
+ <ColorMagenta 0.000000>
+ <ColorYellow 100.000000>
+ <ColorBlack 0.000000>
+ <ColorAttribute ColorIsGreen >
+ <ColorAttribute ColorIsReserved >
+ > # end of Color
+ <Color
+ <ColorTag `Blue'>
+ <ColorCyan 100.000000>
+ <ColorMagenta 100.000000>
+ <ColorYellow 0.000000>
+ <ColorBlack 0.000000>
+ <ColorAttribute ColorIsBlue >
+ <ColorAttribute ColorIsReserved >
+ > # end of Color
+ <Color
+ <ColorTag `Cyan'>
+ <ColorCyan 100.000000>
+ <ColorMagenta 0.000000>
+ <ColorYellow 0.000000>
+ <ColorBlack 0.000000>
+ <ColorAttribute ColorIsCyan >
+ <ColorAttribute ColorIsReserved >
+ > # end of Color
+ <Color
+ <ColorTag `Magenta'>
+ <ColorCyan 0.000000>
+ <ColorMagenta 100.000000>
+ <ColorYellow 0.000000>
+ <ColorBlack 0.000000>
+ <ColorAttribute ColorIsMagenta >
+ <ColorAttribute ColorIsReserved >
+ > # end of Color
+ <Color
+ <ColorTag `Yellow'>
+ <ColorCyan 0.000000>
+ <ColorMagenta 0.000000>
+ <ColorYellow 100.000000>
+ <ColorBlack 0.000000>
+ <ColorAttribute ColorIsYellow >
+ <ColorAttribute ColorIsReserved >
+ > # end of Color
+> # end of ColorCatalog
+<ConditionCatalog
+ <Condition
+ <CTag `Fluff'>
+ <CState CShown >
+ <CStyle CAsIs >
+ > # end of Condition
+> # end of ConditionCatalog
+<PgfCatalog
+ <Pgf
+ <PgfTag `Body'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment LeftRight >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.0">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 5.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Helvetica'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Helvetica'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 0>
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `Bulleted'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.25">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 5.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Helvetica'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Helvetica'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum Yes >
+ <PgfNumFormat `\xa5 \\t'>
+ <PgfNumberFont `'>
+ <PgfNumAtEnd No >
+ <PgfNumTabs 1>
+ <TabStop
+ <TSX 0.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `CellBody'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.0">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 0.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Helvetica'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Helvetica'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 0>
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `CellHeading'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment Center >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.0">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 0.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Helvetica'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Helvetica'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 0>
+ <PgfHyphenate No >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `chunk'>
+ <PgfUseNextTag Yes >
+ <PgfNextTag `code'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.0">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 10.0 pt>
+ <PgfSpAfter 5.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `AvantGarde'>
+ <FVar `Regular'>
+ <FWeight `DemiBold'>
+ <FAngle `Regular'>
+ <FPostScriptName `AvantGarde-Demi'>
+ <FSize 12.0 pt>
+ <FUnderlining FSingle >
+ <FUnderline Yes >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum Yes >
+ <PgfNumFormat `C:<n+\>:\\t'>
+ <PgfNumberFont `'>
+ <PgfNumAtEnd No >
+ <PgfNumTabs 1>
+ <TabStop
+ <TSX 0.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `chunkTOC'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment LeftRight >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.0">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 5.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Helvetica'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Helvetica'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 2>
+ <TabStop
+ <TSX 0.41667">
+ <TSType Left >
+ <TSLeaderStr `.'>
+ > # end of TabStop
+ <TabStop
+ <TSX 5.80556">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `code'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.25">
+ <PgfLIndent 0.25">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 2.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `AvantGarde'>
+ <FVar `Regular'>
+ <FWeight `Book'>
+ <FAngle `Regular'>
+ <FPostScriptName `AvantGarde-Book'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 25>
+ <TabStop
+ <TSX 0.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 0.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 1.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 1.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 1.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 1.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 2.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 2.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 2.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 2.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 3.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 3.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 3.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 3.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 4.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 4.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 4.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 4.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 5.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 5.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 5.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 5.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 6.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 6.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 6.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `exchunk'>
+ <PgfUseNextTag Yes >
+ <PgfNextTag `code'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.0">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 10.0 pt>
+ <PgfSpAfter 5.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `AvantGarde'>
+ <FVar `Regular'>
+ <FWeight `DemiBold'>
+ <FAngle `Regular'>
+ <FPostScriptName `AvantGarde-Demi'>
+ <FSize 12.0 pt>
+ <FUnderlining FSingle >
+ <FUnderline Yes >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum Yes >
+ <PgfNumFormat `C:<n+\>:\\t'>
+ <PgfNumberFont `'>
+ <PgfNumAtEnd No >
+ <PgfNumTabs 1>
+ <TabStop
+ <TSX 0.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `File'>
+ <PgfUseNextTag Yes >
+ <PgfNextTag `code'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.0">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 7.0 pt>
+ <PgfSpAfter 7.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Bold'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Bold'>
+ <FSize 18.0 pt>
+ <FUnderlining FSingle >
+ <FUnderline Yes >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 2>
+ <FColor `Red'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 4.0 pt>
+ <PgfAutoNum Yes >
+ <PgfNumFormat `File: '>
+ <PgfNumberFont `'>
+ <PgfNumAtEnd No >
+ <PgfNumTabs 1>
+ <TabStop
+ <TSX 0.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `Footnote'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.25">
+ <PgfLIndent 0.41667">
+ <PgfRIndent 0.25">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 0.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 1>
+ <TabStop
+ <TSX 0.41667">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `Heading1'>
+ <PgfUseNextTag Yes >
+ <PgfNextTag `Body'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.0">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `Single Line'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 14.0 pt>
+ <PgfSpAfter 6.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext Yes >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Helvetica'>
+ <FVar `Regular'>
+ <FWeight `Bold'>
+ <FAngle `Regular'>
+ <FPostScriptName `Helvetica-Bold'>
+ <FSize 14.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 0>
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `Heading2'>
+ <PgfUseNextTag Yes >
+ <PgfNextTag `Body'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.0">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 14.0 pt>
+ <PgfSpAfter 4.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext Yes >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Helvetica'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Helvetica'>
+ <FSize 14.0 pt>
+ <FUnderlining FSingle >
+ <FUnderline Yes >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 3.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 0>
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `HeadingRunIn'>
+ <PgfUseNextTag Yes >
+ <PgfNextTag `Body'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.0">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle RunIn >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 6.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext Yes >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Bold'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Bold'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 0>
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `Indented'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.25">
+ <PgfLIndent 0.25">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 0.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 1>
+ <TabStop
+ <TSX 0.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `Numbered'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.25">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 0.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum Yes >
+ <PgfNumFormat `<n+\>.\\t'>
+ <PgfNumberFont `'>
+ <PgfNumAtEnd No >
+ <PgfNumTabs 1>
+ <TabStop
+ <TSX 0.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `Numbered1'>
+ <PgfUseNextTag Yes >
+ <PgfNextTag `Numbered'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.25">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 0.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum Yes >
+ <PgfNumFormat `<n=1\>.\\t'>
+ <PgfNumberFont `'>
+ <PgfNumAtEnd No >
+ <PgfNumTabs 1>
+ <TabStop
+ <TSX 0.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `perlcode'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.25">
+ <PgfLIndent 0.25">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 0.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `AvantGarde'>
+ <FVar `Regular'>
+ <FWeight `Book'>
+ <FAngle `Regular'>
+ <FPostScriptName `AvantGarde-Book'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 21>
+ <TabStop
+ <TSX 0.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 0.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 1.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 1.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 1.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 1.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 2.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 2.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 2.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 3.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 3.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 4.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 4.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 4.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 5.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 5.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 5.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 5.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 6.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 6.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 6.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `Ref'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment LeftRight >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.25">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 2.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Helvetica'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Helvetica'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum Yes >
+ <PgfNumFormat `R:<n+\>.\\t'>
+ <PgfNumberFont `'>
+ <PgfNumAtEnd No >
+ <PgfNumTabs 1>
+ <TabStop
+ <TSX 0.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `refersTo'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.25">
+ <PgfLIndent 0.25">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 2.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `AvantGarde'>
+ <FVar `Regular'>
+ <FWeight `Book'>
+ <FAngle `Regular'>
+ <FPostScriptName `AvantGarde-Book'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 25>
+ <TabStop
+ <TSX 0.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 0.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 1.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 1.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 1.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 1.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 2.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 2.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 2.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 2.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 3.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 3.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 3.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 3.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 4.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 4.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 4.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 4.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 5.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 5.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 5.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 5.75">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 6.0">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 6.25">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 6.5">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `refersToTOC'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment LeftRight >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.0">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 5.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Helvetica'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Helvetica'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 1>
+ <TabStop
+ <TSX 0.18056">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `TableFootnote'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.25">
+ <PgfLIndent 0.41667">
+ <PgfRIndent 0.25">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 0.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 1>
+ <TabStop
+ <TSX 0.41667">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `TableTitle'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment Center >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.0">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 0.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Bold'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Bold'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum Yes >
+ <PgfNumFormat `T:Table <n+\>: '>
+ <PgfNumberFont `'>
+ <PgfNumAtEnd No >
+ <PgfNumTabs 0>
+ <PgfHyphenate No >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <Pgf
+ <PgfTag `Title'>
+ <PgfUseNextTag Yes >
+ <PgfNextTag `Body'>
+ <PgfAlignment Center >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.0">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 18.0 pt>
+ <PgfSpAfter 8.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext Yes >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Helvetica'>
+ <FVar `Regular'>
+ <FWeight `Bold'>
+ <FAngle `Regular'>
+ <FPostScriptName `Helvetica-Bold'>
+ <FSize 18.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 3.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 0>
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+> # end of PgfCatalog
+<ElementDefCatalog
+> # end of ElementDefCatalog
+<FontCatalog
+ <Font
+ <FTag `code'>
+ <FFamily `AvantGarde'>
+ <FVar `Regular'>
+ <FWeight `Book'>
+ <FAngle `Regular'>
+ <FPostScriptName `AvantGarde-Book'>
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of Font
+ <Font
+ <FTag `Emphasis'>
+ <FAngle `Italic'>
+ > # end of Font
+ <Font
+ <FTag `EquationVariables'>
+ <FAngle `Italic'>
+ > # end of Font
+ <Font
+ <FTag `Symbol'>
+ <FFamily `Symbol'>
+ <FDW 0.0 pt>
+ > # end of Font
+> # end of FontCatalog
+<RulingCatalog
+ <Ruling
+ <RulingTag `Thin'>
+ <RulingPenWidth 0.5 pt>
+ <RulingGap 0.0 pt>
+ <RulingSeparation 0>
+ <RulingColor `Black'>
+ <RulingPen 0>
+ <RulingLines 1>
+ > # end of Ruling
+ <Ruling
+ <RulingTag `Medium'>
+ <RulingPenWidth 2.0 pt>
+ <RulingGap 0.0 pt>
+ <RulingSeparation 0>
+ <RulingColor `Black'>
+ <RulingPen 0>
+ <RulingLines 1>
+ > # end of Ruling
+ <Ruling
+ <RulingTag `Double'>
+ <RulingPenWidth 0.5 pt>
+ <RulingGap 2.0 pt>
+ <RulingSeparation 0>
+ <RulingColor `Black'>
+ <RulingPen 0>
+ <RulingLines 2>
+ > # end of Ruling
+ <Ruling
+ <RulingTag `Thick'>
+ <RulingPenWidth 3.0 pt>
+ <RulingGap 0.0 pt>
+ <RulingSeparation 0>
+ <RulingColor `Black'>
+ <RulingPen 0>
+ <RulingLines 1>
+ > # end of Ruling
+ <Ruling
+ <RulingTag `Very Thin'>
+ <RulingPenWidth 0.25 pt>
+ <RulingGap 0.0 pt>
+ <RulingSeparation 0>
+ <RulingColor `Black'>
+ <RulingPen 0>
+ <RulingLines 1>
+ > # end of Ruling
+> # end of RulingCatalog
+<TblCatalog
+ <TblFormat
+ <TblTag `Format A'>
+ <TblColumn
+ <TblColumnNum 0>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ <TblColumn
+ <TblColumnNum 1>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ <TblColumn
+ <TblColumnNum 2>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ <TblColumn
+ <TblColumnNum 3>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ <TblColumn
+ <TblColumnNum 4>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ <TblCellMargins 6.0 pt 6.0 pt 6.0 pt 4.0 pt>
+ <TblLIndent 0.0">
+ <TblRIndent 0.0">
+ <TblAlignment Left >
+ <TblPlacement Anywhere >
+ <TblSpBefore 12.0 pt>
+ <TblSpAfter 12.0 pt>
+ <TblBlockSize 1>
+ <TblHFFill 15>
+ <TblHFSeparation 0>
+ <TblHFColor `Black'>
+ <TblBodyFill 15>
+ <TblBodySeparation 0>
+ <TblBodyColor `Black'>
+ <TblShadeByColumn No >
+ <TblShadePeriod 2>
+ <TblXFill 15>
+ <TblXSeparation 0>
+ <TblXColor `Black'>
+ <TblAltShadePeriod 2>
+ <TblLRuling `Thin'>
+ <TblBRuling `Thin'>
+ <TblRRuling `Thin'>
+ <TblTRuling `Thin'>
+ <TblColumnRuling `Thin'>
+ <TblXColumnRuling `Thin'>
+ <TblBodyRowRuling `Thin'>
+ <TblXRowRuling `Thin'>
+ <TblHFRowRuling `Thin'>
+ <TblSeparatorRuling `Double'>
+ <TblXColumnNum 1>
+ <TblRulingPeriod 4>
+ <TblLastBRuling No >
+ <TblTitlePlacement InHeader >
+ <TblTitlePgf1
+ <PgfTag `TableTitle'>
+ > # end of TblTitlePgf1
+ <TblTitleGap 6.0 pt>
+ <TblInitNumColumns 5>
+ <TblInitNumHRows 1>
+ <TblInitNumBodyRows 8>
+ <TblInitNumFRows 0>
+ <TblNumByColumn No >
+ > # end of TblFormat
+ <TblFormat
+ <TblTag `Format B'>
+ <TblColumn
+ <TblColumnNum 0>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ <TblColumn
+ <TblColumnNum 1>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ <TblColumn
+ <TblColumnNum 2>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ <TblColumn
+ <TblColumnNum 3>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ <TblColumn
+ <TblColumnNum 4>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ <TblCellMargins 6.0 pt 6.0 pt 6.0 pt 4.0 pt>
+ <TblLIndent 0.0">
+ <TblRIndent 0.0">
+ <TblAlignment Center >
+ <TblPlacement Anywhere >
+ <TblSpBefore 12.0 pt>
+ <TblSpAfter 12.0 pt>
+ <TblBlockSize 1>
+ <TblHFFill 15>
+ <TblHFSeparation 0>
+ <TblHFColor `Black'>
+ <TblBodyFill 15>
+ <TblBodySeparation 0>
+ <TblBodyColor `Black'>
+ <TblShadeByColumn No >
+ <TblShadePeriod 2>
+ <TblXFill 15>
+ <TblXSeparation 0>
+ <TblXColor `Black'>
+ <TblAltShadePeriod 2>
+ <TblLRuling `'>
+ <TblBRuling `Thin'>
+ <TblRRuling `'>
+ <TblTRuling `Medium'>
+ <TblColumnRuling `Thin'>
+ <TblXColumnRuling `Thin'>
+ <TblBodyRowRuling `Thin'>
+ <TblXRowRuling `Thin'>
+ <TblHFRowRuling `Thin'>
+ <TblSeparatorRuling `Medium'>
+ <TblXColumnNum 1>
+ <TblRulingPeriod 4>
+ <TblLastBRuling No >
+ <TblTitlePlacement InHeader >
+ <TblTitlePgf1
+ <PgfTag `TableTitle'>
+ > # end of TblTitlePgf1
+ <TblTitleGap 6.0 pt>
+ <TblInitNumColumns 5>
+ <TblInitNumHRows 1>
+ <TblInitNumBodyRows 8>
+ <TblInitNumFRows 0>
+ <TblNumByColumn No >
+ > # end of TblFormat
+> # end of TblCatalog
+<Views
+ <View
+ <ViewNumber 1>
+ <ViewCutout `White'>
+ > # end of View
+ <View
+ <ViewNumber 2>
+ <ViewCutout `White'>
+ <ViewInvisible `Red'>
+ <ViewInvisible `Green'>
+ <ViewInvisible `Blue'>
+ <ViewInvisible `Cyan'>
+ <ViewInvisible `Magenta'>
+ > # end of View
+ <View
+ <ViewNumber 3>
+ <ViewInvisible `Black'>
+ <ViewCutout `White'>
+ > # end of View
+ <View
+ <ViewNumber 4>
+ <ViewCutout `White'>
+ > # end of View
+ <View
+ <ViewNumber 5>
+ <ViewCutout `White'>
+ > # end of View
+ <View
+ <ViewNumber 6>
+ <ViewCutout `White'>
+ > # end of View
+> # end of Views
+<VariableFormats
+ <VariableFormat
+ <VariableName `Page Count'>
+ <VariableDef `<$lastpagenum\>'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Current Date (Long)'>
+ <VariableDef `<$monthname\> <$daynum\>, <$year\>'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Current Date (Short)'>
+ <VariableDef `<$monthnum\>/<$daynum\>/<$shortyear\>'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Modification Date (Long)'>
+ <VariableDef `<$monthname\> <$daynum\>, <$year\> <$hour\>:<$minute00\> <$ampm\>'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Modification Date (Short)'>
+ <VariableDef `<$monthnum\>/<$daynum\>/<$shortyear\>'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Creation Date (Long)'>
+ <VariableDef `<$monthname\> <$daynum\>, <$year\>'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Creation Date (Short)'>
+ <VariableDef `<$monthnum\>/<$daynum\>/<$shortyear\>'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Filename (Long)'>
+ <VariableDef `<$fullfilename\>'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Filename (Short)'>
+ <VariableDef `<$filename\>'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Running H/F 1'>
+ <VariableDef `<$paratext[Title]\>'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Running H/F 2'>
+ <VariableDef `<$paratext[Heading1]\>'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Current Page #'>
+ <VariableDef `<$curpagenum\>'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Running H/F 3'>
+ <VariableDef `<$marker1\>'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Running H/F 4'>
+ <VariableDef `<$marker2\>'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Table Continuation'>
+ <VariableDef ` (Continued)'>
+ > # end of VariableFormat
+ <VariableFormat
+ <VariableName `Table Sheet'>
+ <VariableDef ` (Sheet <$tblsheetnum\> of <$tblsheetcount\>)'>
+ > # end of VariableFormat
+> # end of VariableFormats
+<XRefFormats
+ <XRefFormat
+ <XRefName `Heading & Page'>
+ <XRefDef `\xd2 <$paratext\>\xd3 on page\x11 <$pagenum\>'>
+ > # end of XRefFormat
+ <XRefFormat
+ <XRefName `Page'>
+ <XRefDef `page\x11 <$pagenum\>'>
+ > # end of XRefFormat
+ <XRefFormat
+ <XRefName `See Heading & Page'>
+ <XRefDef `See \xd2 <$paratext\>\xd3 on page\x11 <$pagenum\>.'>
+ > # end of XRefFormat
+ <XRefFormat
+ <XRefName `Table All'>
+ <XRefDef `Table\x11 <$paranumonly\>, \xd2 <$paratext\>,\xd3 on page\x11 <$pagenum\>'>
+ > # end of XRefFormat
+ <XRefFormat
+ <XRefName `Table Number & Page'>
+ <XRefDef `Table\x11 <$paranumonly\> on page\x11 <$pagenum\>'>
+ > # end of XRefFormat
+ <XRefFormat
+ <XRefName `chunkref'>
+ <XRefDef `<Emphasis\>\\<<$paratext\>\\\> , (<$paranum\>, p. <$pagenum\>)'>
+ > # end of XRefFormat
+ <XRefFormat
+ <XRefName `Ref'>
+ <XRefDef `[<$paranumonly\>]'>
+ > # end of XRefFormat
+> # end of XRefFormats
+<Document
+ <DViewRect 52 27 671 777 >
+ <DWindowRect 28 1 715 855 >
+ <DViewScale 100.0%>
+ <DNextUnique 432950>
+ <DPageSize 8.5" 11.0">
+ <DStartPage 1>
+ <DPageNumStyle Arabic >
+ <DPagePointStyle Arabic >
+ <DTwoSides No >
+ <DParity FirstRight >
+ <DFrozenPages No >
+ <DPageRounding DeleteEmptyPages >
+ <DMaxInterLine 2.0 pt>
+ <DMaxInterPgf 6.0 pt>
+ <DFNoteMaxH 4.0">
+ <FNoteStartNum 1>
+ <DFNoteRestart PerPage >
+ <DFNoteTag `Footnote'>
+ <DFNoteLabels `*\xa0 \xe0 '>
+ <DFNoteNumStyle Arabic >
+ <DFNoteAnchorPos FNSuperscript >
+ <DFNoteNumberPos FNBaseline >
+ <DFNoteAnchorPrefix `'>
+ <DFNoteAnchorSuffix `'>
+ <DFNoteNumberPrefix `'>
+ <DFNoteNumberSuffix `.\\t'>
+ <DTblFNoteTag `TableFootnote'>
+ <DTblFNoteLabels `*\xa0 \xe0 '>
+ <DTblFNoteNumStyle LCAlpha >
+ <DTblFNoteAnchorPos FNSuperscript >
+ <DTblFNoteNumberPos FNBaseline >
+ <DTblFNoteAnchorPrefix `'>
+ <DTblFNoteAnchorSuffix `'>
+ <DTblFNoteNumberPrefix `'>
+ <DTblFNoteNumberSuffix `.\\t'>
+ <DLinebreakChars `/ - \xd0 \xd1 '>
+ <DPunctuationChars `:;,.\xc9 !?'>
+ <DChBarGap 0.25">
+ <DChBarWidth 2.0 pt>
+ <DChBarPosition LeftOfCol >
+ <DChBarColor `Black'>
+ <DAutoChBars No >
+ <DShowAllConditions No >
+ <DDisplayOverrides No >
+ <DViewOnly No >
+ <DViewOnlyXRef GotoBehavior >
+ <DViewOnlySelect Yes >
+ <DViewOnlyWinBorders Yes >
+ <DViewOnlyWinMenubar Yes >
+ <DViewOnlyWinPopup Yes >
+ <DViewOnlyWinPalette No >
+ <DGridOn No >
+ <DPageGrid 0.5">
+ <DSnapGrid 0.125">
+ <DSnapRotation 0.25>
+ <DRulersOn Yes >
+ <DFullRulers No >
+ <DGraphicsOff No >
+ <DCurrentView 1>
+ <DBordersOn No >
+ <DSymbolsOn No >
+ <DElementBordersOn No >
+ <DSmartQuotesOn No >
+ <DSmartSpacesOn No >
+ <DLanguage USEnglish >
+ <DSuperscriptSize 80.0%>
+ <DSubscriptSize 80.0%>
+ <DSmallCapsSize 80.0%>
+ <DSuperscriptShift 40.0%>
+ <DSubscriptShift 25.0%>
+ <DMathAlphaCharFontFamily `Times'>
+ <DMathSmallIntegral 14.0 pt>
+ <DMathMediumIntegral 18.0 pt>
+ <DMathLargeIntegral 24.0 pt>
+ <DMathSmallSigma 14.0 pt>
+ <DMathMediumSigma 18.0 pt>
+ <DMathLargeSigma 24.0 pt>
+ <DMathSmallLevel1 9.0 pt>
+ <DMathMediumLevel1 12.0 pt>
+ <DMathLargeLevel1 14.0 pt>
+ <DMathSmallLevel2 7.0 pt>
+ <DMathMediumLevel2 9.0 pt>
+ <DMathLargeLevel2 12.0 pt>
+ <DMathSmallLevel3 5.0 pt>
+ <DMathMediumLevel3 6.0 pt>
+ <DMathLargeLevel3 8.0 pt>
+ <DMathSmallHoriz 0.0 pt>
+ <DMathMediumHoriz 0.0 pt>
+ <DMathLargeHoriz 0.0 pt>
+ <DMathSmallVert 0.0 pt>
+ <DMathMediumVert 0.0 pt>
+ <DMathLargeVert 0.0 pt>
+ <DMathShowCustom No >
+ <DMathFunctions `'>
+ <DMathNumbers `'>
+ <DMathVariables `EquationVariables'>
+ <DMathStrings `'>
+ <DMathGreek `'>
+ <DMathCatalog >
+ <DElementCatalogScope Strict >
+ <DPrintSkipBlankPages Yes >
+ <DPrintSeparations No >
+> # end of Document
+<BookComponent
+ <FileName `<c\>litTOC.doc'>
+ <FileNameSuffix `TOC'>
+ <DeriveLinks No >
+ <DeriveType TOC >
+ <DeriveTag `chunk'>
+ <DeriveTag `refersTo'>
+> # end of BookComponent
+<InitialAutoNums
+> # end of InitialAutoNums
+<Dictionary
+<OKWord `ChunkMode'>
+<OKWord `CodeMode'>
+<OKWord `FileMode'>
+<OKWord `Knuth'>
+<OKWord `MText'>
+<OKWord `ParaMode'>
+<OKWord `TeX'>
+<OKWord `WYSIWIGness'>
+<OKWord `WasteMode'>
+<OKWord `WinWordWEB'>
+<OKWord `XrefSrcText'>
+<OKWord `bythe'>
+<OKWord `chunkHeadings'>
+<OKWord `chunkReferred'>
+<OKWord `chunkref'>
+<OKWord `chunksByName'>
+<OKWord `currChunkHeading'>
+<OKWord `currMarkerText'>
+<OKWord `currModeProc'>
+<OKWord `diff'>
+<OKWord `fmweb'>
+<OKWord `initializations'>
+<OKWord `lookFor'>
+<OKWord `lookahead'>
+<OKWord `markerReferred'>
+<OKWord `markerToHeading'>
+<OKWord `meta'>
+<OKWord `mif'>
+<OKWord `newline'>
+<OKWord `noweb'>
+<OKWord `stderr'>
+<OKWord `stdout'>
+<OKWord `wc'>
+> # end of Dictionary
+<AFrames
+ <Frame
+ <ID 1>
+ <Unique 432614>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Angle 360.0>
+ <Overprint No >
+ <ShapeRect 1.51562" 1.44444" 5.46875" 2.80556">
+ <BRect 1.51562" 1.44444" 5.46875" 2.80556">
+ <FrameType Below >
+ <Float No >
+ <NSOffset 0.0">
+ <BLOffset -2.48611">
+ <AnchorAlign Center >
+ <Cropped Yes >
+ <Ellipse
+ <Unique 432615>
+ <GroupID 2>
+ <Pen 0>
+ <Fill 7>
+ <PenWidth 0.5 pt>
+ <Overprint No >
+ <ShapeRect 2.93653" 1.99538" 0.61111" 0.52778">
+ <BRect 2.93653" 1.99538" 0.61111" 0.52778">
+ > # end of Ellipse
+ <Rectangle
+ <Unique 432616>
+ <GroupID 2>
+ <Pen 7>
+ <Overprint No >
+ <ShapeRect 2.45042" 2.12038" 0.68056" 0.30556">
+ <BRect 2.45042" 2.12038" 0.68056" 0.30556">
+ > # end of Rectangle
+ <PolyLine
+ <Unique 432617>
+ <GroupID 2>
+ <Pen 0>
+ <HeadCap Square >
+ <HeadCap ArrowHead >
+ <TailCap Square >
+ <ArrowStyle
+ <TipAngle 16>
+ <BaseAngle 90>
+ <Length 12.0 pt>
+ <HeadType Filled >
+ <ScaleHead Yes >
+ <ScaleFactor 0.25 pt>
+ > # end of ArrowStyle
+ <Overprint No >
+ <NumPoints 2>
+ <Point 3.07546" 2.4738">
+ <Point 3.01373" 2.41978">
+ > # end of PolyLine
+ <Group
+ <ID 2>
+ <Unique 432618>
+ <Overprint No >
+ > # end of Group
+ <Ellipse
+ <Unique 432619>
+ <GroupID 3>
+ <Overprint No >
+ <ShapeRect 2.93653" 1.17748" 0.61111" 0.52778">
+ <BRect 2.93653" 1.17748" 0.61111" 0.52778">
+ > # end of Ellipse
+ <Rectangle
+ <Unique 432620>
+ <GroupID 3>
+ <Pen 7>
+ <Overprint No >
+ <ShapeRect 2.45042" 1.30248" 0.68056" 0.30556">
+ <BRect 2.45042" 1.30248" 0.68056" 0.30556">
+ > # end of Rectangle
+ <PolyLine
+ <Unique 432621>
+ <GroupID 3>
+ <Pen 0>
+ <Overprint No >
+ <NumPoints 2>
+ <Point 3.07546" 1.65589">
+ <Point 3.01373" 1.60188">
+ > # end of PolyLine
+ <Group
+ <ID 3>
+ <Unique 432622>
+ <Overprint No >
+ > # end of Group
+ <Ellipse
+ <Unique 432623>
+ <GroupID 4>
+ <Overprint No >
+ <ShapeRect 2.93653" 0.33642" 0.61111" 0.52778">
+ <BRect 2.93653" 0.33642" 0.61111" 0.52778">
+ > # end of Ellipse
+ <Rectangle
+ <Unique 432624>
+ <GroupID 4>
+ <Pen 7>
+ <Overprint No >
+ <ShapeRect 2.45042" 0.46142" 0.68056" 0.30556">
+ <BRect 2.45042" 0.46142" 0.68056" 0.30556">
+ > # end of Rectangle
+ <PolyLine
+ <Unique 432625>
+ <GroupID 4>
+ <Pen 0>
+ <Overprint No >
+ <NumPoints 2>
+ <Point 3.07546" 0.81484">
+ <Point 3.01373" 0.76082">
+ > # end of PolyLine
+ <Group
+ <ID 4>
+ <Unique 432626>
+ <Overprint No >
+ > # end of Group
+ <TextLine
+ <Unique 432627>
+ <Overprint No >
+ <TLOrigin 0.30358" 1.47986">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <Font
+ <FTag `'>
+ <FFamily `Helvetica'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Helvetica'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of Font
+ <String `Waste'>
+ > # end of TextLine
+ <TextLine
+ <Unique 432628>
+ <Overprint No >
+ <TLOrigin 1.38096" 1.47986">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `Para'>
+ > # end of TextLine
+ <TextLine
+ <Unique 432629>
+ <Overprint No >
+ <TLOrigin 2.84861" 0.66403">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `File'>
+ > # end of TextLine
+ <TextLine
+ <Unique 432630>
+ <Overprint No >
+ <TLOrigin 2.84861" 1.47986">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `Code'>
+ > # end of TextLine
+ <TextLine
+ <Unique 432631>
+ <Overprint No >
+ <TLOrigin 2.84861" 2.29569">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `Chunk'>
+ > # end of TextLine
+ <PolyLine
+ <Unique 432632>
+ <Overprint No >
+ <NumPoints 2>
+ <Point 0.75" 1.44444">
+ <Point 1.25" 1.44444">
+ > # end of PolyLine
+ <TextLine
+ <Unique 432633>
+ <Overprint No >
+ <TLOrigin 0.84722" 1.375">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <Font
+ <FTag `'>
+ <FFamily `AvantGarde'>
+ <FWeight `Book'>
+ <FPostScriptName `AvantGarde-Book'>
+ <FSize 7.0 pt>
+ > # end of Font
+ <String `Para'>
+ > # end of TextLine
+ <PolyLine
+ <Unique 432634>
+ <Overprint No >
+ <NumPoints 2>
+ <Point 1.625" 1.31944">
+ <Point 2.75" 0.69444">
+ > # end of PolyLine
+ <PolyLine
+ <Unique 432635>
+ <HeadCap Square >
+ <TailCap Square >
+ <TailCap ArrowHead >
+ <Overprint No >
+ <NumPoints 2>
+ <Point 0.75" 1.56944">
+ <Point 1.25" 1.56944">
+ > # end of PolyLine
+ <TextLine
+ <Unique 432636>
+ <Overprint No >
+ <TLOrigin 0.61111" 1.70356">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `All other pgf tags'>
+ > # end of TextLine
+ <TextLine
+ <Unique 432637>
+ <Overprint No >
+ <TLOrigin 1.62713" 1.01629">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `PgfTag File'>
+ > # end of TextLine
+ <TextLine
+ <Unique 432638>
+ <Overprint No >
+ <TLOrigin 2.00213" 1.55796">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `PgfTag code'>
+ > # end of TextLine
+ <PolyLine
+ <Unique 432639>
+ <HeadCap Square >
+ <HeadCap ArrowHead >
+ <TailCap Square >
+ <Overprint No >
+ <NumPoints 2>
+ <Point 1.75" 1.44444">
+ <Point 2.75" 1.44444">
+ > # end of PolyLine
+ <PolyLine
+ <Unique 432640>
+ <Overprint No >
+ <NumPoints 2>
+ <Point 1.625" 1.61111">
+ <Point 2.75" 2.23611">
+ > # end of PolyLine
+ <TextLine
+ <Unique 432641>
+ <Overprint No >
+ <TLOrigin 1.62713" 2.05078">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `PgfTag chunk'>
+ > # end of TextLine
+ <TextLine
+ <Unique 432642>
+ <Overprint No >
+ <TLOrigin 3.12713" 0.26629">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `String'>
+ > # end of TextLine
+ <TextLine
+ <Unique 432643>
+ <Overprint No >
+ <TLOrigin 2.66879" 1.1274">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `Char Tab, String, XrefSrcText'>
+ > # end of TextLine
+ <TextLine
+ <Unique 432644>
+ <Overprint No >
+ <TLOrigin 2.91879" 1.96074">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `MText , String'>
+ > # end of TextLine
+ <PolyLine
+ <Unique 432645>
+ <Overprint No >
+ <NumPoints 2>
+ <Point 3.27604" 2.23611">
+ <Point 4.60937" 1.56944">
+ > # end of PolyLine
+ <PolyLine
+ <Unique 432646>
+ <Overprint No >
+ <NumPoints 2>
+ <Point 3.15104" 0.61111">
+ <Point 4.59549" 1.29167">
+ > # end of PolyLine
+ <PolyLine
+ <Unique 432647>
+ <Overprint No >
+ <NumPoints 2>
+ <Point 3.23437" 1.45833">
+ <Point 4.56771" 1.45833">
+ > # end of PolyLine
+ <TextLine
+ <Unique 432648>
+ <Overprint No >
+ <TLOrigin 3.83546" 1.40518">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `End of para'>
+ > # end of TextLine
+ <TextLine
+ <Unique 432649>
+ <Overprint No >
+ <TLOrigin 4.64526" 1.47986">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <Font
+ <FTag `'>
+ <FFamily `Helvetica'>
+ <FWeight `Regular'>
+ <FPostScriptName `Helvetica'>
+ <FSize 10.0 pt>
+ > # end of Font
+ <String `Waste'>
+ > # end of TextLine
+ > # end of Frame
+> # end of AFrames
+<Tbls
+ <Tbl
+ <TblID 5>
+ <TblTag `Format A'>
+ <TblFormat
+ <TblColumn
+ <TblColumnNum 0>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ <Pgf
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ > # end of Pgf
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ <Pgf
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ > # end of Pgf
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ <TblColumn
+ <TblColumnNum 1>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ <Pgf
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ > # end of Pgf
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ <Pgf
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ > # end of Pgf
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ <TblColumn
+ <TblColumnNum 2>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ <Pgf
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ > # end of Pgf
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ <Pgf
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ > # end of Pgf
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ <TblColumn
+ <TblColumnNum 3>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ <Pgf
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ > # end of Pgf
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ <Pgf
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ > # end of Pgf
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ <TblColumn
+ <TblColumnNum 4>
+ <TblColumnWidth 1.0">
+ <TblColumnH
+ <PgfTag `CellHeading'>
+ <Pgf
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ > # end of Pgf
+ > # end of TblColumnH
+ <TblColumnBody
+ <PgfTag `CellBody'>
+ <Pgf
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ > # end of Pgf
+ > # end of TblColumnBody
+ <TblColumnF
+ <Pgf
+ <PgfTag `CellFooting'>
+ <PgfAlignment Center >
+ <PgfHyphenate No >
+ <PgfCellAlignment Middle >
+ <PgfCellMargins 0.0 pt 2.0 pt 0.0 pt 2.0 pt>
+ > # end of Pgf
+ > # end of TblColumnF
+ > # end of TblColumn
+ > # end of TblFormat
+ <TblNumColumns 2>
+ <Unique 432562>
+ <TblColumnWidth 1.875">
+ <TblColumnWidth 4.625">
+ <TblTitleContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432564>
+ <PgfTag `TableTitle'>
+ <PgfNumString `Table 1: '>
+ <ParaLine
+ <String `Important variables in fmweb'>
+ >
+ > # end of Para
+ > # end of TblTitleContent
+ <TblH
+ <Row
+ <RowMaxHeight 14.0">
+ <RowHeight 0.33333">
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432568>
+ <PgfTag `CellHeading'>
+ <ParaLine
+ <String `name'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432570>
+ <PgfTag `CellHeading'>
+ <ParaLine
+ <String `Description'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ > # end of Row
+ > # end of TblH
+ <TblBody
+ <Row
+ <RowMaxHeight 14.0">
+ <RowHeight 0.44444">
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432572>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `%chunksByName'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432574>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `An array of chunks, whose key is the heading of the chunk, and it\xd5 s value '>
+ >
+ <ParaLine
+ <String `is the entire code in that section.'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ > # end of Row
+ <Row
+ <RowMaxHeight 14.0">
+ <RowHeight 0.27778">
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432576>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `$currChunkHeading'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432578>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `The current chunk heading'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ > # end of Row
+ <Row
+ <RowMaxHeight 14.0">
+ <RowHeight 0.44444">
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432580>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `@chunkHeadings'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432582>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `A list of all the chunk headings, in order of appearance. If a heading has '>
+ >
+ <ParaLine
+ <String `been encountered before, it is not appended to this array.'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ > # end of Row
+ <Row
+ <RowMaxHeight 14.0">
+ <RowHeight 0.44444">
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432584>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `%markerReferred'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432586>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `Keeps track of all those chunk headings that have been referred to (by a '>
+ >
+ <ParaLine
+ <String `Frame cross reference).'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ > # end of Row
+ <Row
+ <RowMaxHeight 14.0">
+ <RowHeight 1.11111">
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432588>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `%markerToHeading'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432590>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `A translation table - Each chunk heading has a text (the \xd2 heading\xd3 ) that is '>
+ >
+ <ParaLine
+ <String `visible, and a marker text that Frame inserts. Unfortunately, these two '>
+ >
+ <ParaLine
+ <String `are not necessarily identical. This translation is necessary since the '>
+ >
+ <ParaLine
+ <String `script allows more than one chunk to have the same name (which is then '>
+ >
+ <ParaLine
+ <String `concatenated), but a cross reference can be created to only of these '>
+ >
+ <ParaLine
+ <String `paragraphs. '>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ > # end of Row
+ <Row
+ <RowMaxHeight 14.0">
+ <RowHeight 0.27778">
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432592>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `$line'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432594>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `Global var that contains the current line from the input MIF file.'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ > # end of Row
+ <Row
+ <RowMaxHeight 14.0">
+ <RowHeight 0.61111">
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432596>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `$currMarkerText'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432598>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `While evaluating a chunk paragraph, this keeps track of the current '>
+ >
+ <ParaLine
+ <String `marker text. Subsequently, the text of the paragraph and this marker text '>
+ >
+ <ParaLine
+ <String `are related by %markerToHeading'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ > # end of Row
+ <Row
+ <RowMaxHeight 14.0">
+ <RowHeight 0.44444">
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432600>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `$currModeProc'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432602>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `A reference to a mode subroutine. Each of these subroutines is part of a '>
+ >
+ <ParaLine
+ <String `state diagram (shown below).'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ > # end of Row
+ <Row
+ <RowMaxHeight 14.0">
+ <RowHeight 0.27778">
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432604>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `@lookFor'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432606>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `The set of tokens in which this state is interested.'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ > # end of Row
+ <Row
+ <RowMaxHeight 14.0">
+ <RowHeight 0.61111">
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432608>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `%chunkReferred'>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ <Cell
+ <CellContent
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432610>
+ <PgfTag `CellBody'>
+ <ParaLine
+ <String `This array (keyed by chunk heading) tracks all chunks that have been '>
+ >
+ <ParaLine
+ <String `referred to, by other chunks. The chunks that don\xd5 t belong to this cate'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `gory are the top-level chunks. '>
+ >
+ > # end of Para
+ > # end of CellContent
+ > # end of Cell
+ > # end of Row
+ > # end of TblBody
+> # end of Tbl
+> # end of Tbls
+<Page
+ <Unique 94657>
+ <PageType LeftMasterPage >
+ <PageTag `Left'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <TextRect
+ <ID 6>
+ <Unique 427029>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 0.5" 6.5" 0.13889">
+ <BRect 1.0" 0.5" 6.5" 0.13889">
+ <TRNext 0>
+ > # end of TextRect
+ <TextRect
+ <ID 7>
+ <Unique 427027>
+ <Overprint No >
+ <ShapeRect 1.0" 10.40741" 6.5" 0.13889">
+ <BRect 1.0" 10.40741" 6.5" 0.13889">
+ <TRNext 0>
+ > # end of TextRect
+ <TextRect
+ <ID 8>
+ <Unique 427019>
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 0>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 94658>
+ <PageType RightMasterPage >
+ <PageTag `Right'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <TextRect
+ <ID 9>
+ <Unique 427025>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 0.5" 6.5" 0.13889">
+ <BRect 1.0" 0.5" 6.5" 0.13889">
+ <TRNext 0>
+ > # end of TextRect
+ <TextRect
+ <ID 10>
+ <Unique 427023>
+ <Overprint No >
+ <ShapeRect 1.0" 10.40741" 6.5" 0.13889">
+ <BRect 1.0" 10.40741" 6.5" 0.13889">
+ <TRNext 0>
+ > # end of TextRect
+ <TextRect
+ <ID 11>
+ <Unique 427021>
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 0>
+ > # end of TextRect
+ <PolyLine
+ <Unique 432750>
+ <Pen 4>
+ <PenWidth 3.0 pt>
+ <HeadCap Square >
+ <TailCap Square >
+ <Overprint No >
+ <NumPoints 2>
+ <Point 0.45833" 10.25">
+ <Point 8.29167" 10.25">
+ > # end of PolyLine
+> # end of Page
+<Page
+ <Unique 94659>
+ <PageType ReferencePage >
+ <PageTag `Reference'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <TextLine
+ <Unique 94660>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <TLOrigin 1.0" 0.4489">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <Font
+ <FTag `'>
+ <FFamily `Helvetica'>
+ <FVar `Regular'>
+ <FWeight `Bold'>
+ <FAngle `Regular'>
+ <FPostScriptName `Helvetica-Bold'>
+ <FSize 12.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern No >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of Font
+ <String `Footnote'>
+ > # end of TextLine
+ <TextLine
+ <Unique 94661>
+ <Overprint No >
+ <TLOrigin 1.0" 1.70441">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `Single Line'>
+ > # end of TextLine
+ <Frame
+ <Unique 94662>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Angle 360.0>
+ <Overprint No >
+ <ShapeRect 1.0" 0.54167" 2.5" 0.20833">
+ <BRect 1.0" 0.54167" 2.5" 0.20833">
+ <FrameType NotAnchored >
+ <Tag `Footnote'>
+ <PolyLine
+ <Unique 427003>
+ <Pen 0>
+ <PenWidth 0.5 pt>
+ <HeadCap Square >
+ <TailCap Square >
+ <Overprint No >
+ <NumPoints 2>
+ <Point 0.125" 0.02778">
+ <Point 2.125" 0.02778">
+ > # end of PolyLine
+ > # end of Frame
+ <TextLine
+ <Unique 94664>
+ <Overprint No >
+ <TLOrigin 1.0" 2.45441">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `Double Line'>
+ > # end of TextLine
+ <Frame
+ <Unique 94665>
+ <Pen 15>
+ <PenWidth 1.0 pt>
+ <Angle 360.0>
+ <Overprint No >
+ <ShapeRect 1.0" 2.58333" 6.5" 0.16667">
+ <BRect 1.0" 2.58333" 6.5" 0.16667">
+ <FrameType NotAnchored >
+ <Tag `Double Line'>
+ <PolyLine
+ <Unique 427007>
+ <Pen 0>
+ <Overprint No >
+ <NumPoints 2>
+ <Point 0.0" 0.01389">
+ <Point 6.5" 0.01389">
+ > # end of PolyLine
+ <PolyLine
+ <Unique 427009>
+ <Overprint No >
+ <NumPoints 2>
+ <Point 0.0" 0.05556">
+ <Point 6.5" 0.05556">
+ > # end of PolyLine
+ > # end of Frame
+ <Frame
+ <Unique 94668>
+ <Pen 15>
+ <Angle 360.0>
+ <Overprint No >
+ <ShapeRect 1.0" 1.86111" 6.5" 0.13889">
+ <BRect 1.0" 1.86111" 6.5" 0.13889">
+ <FrameType NotAnchored >
+ <Tag `Single Line'>
+ <PolyLine
+ <Unique 427012>
+ <Pen 0>
+ <Overprint No >
+ <NumPoints 2>
+ <Point 0.0" 0.01389">
+ <Point 6.5" 0.01389">
+ > # end of PolyLine
+ > # end of Frame
+ <Frame
+ <Unique 94670>
+ <Pen 15>
+ <Angle 360.0>
+ <Overprint No >
+ <ShapeRect 1.0" 1.25" 2.5" 0.08333">
+ <BRect 1.0" 1.25" 2.5" 0.08333">
+ <FrameType NotAnchored >
+ <Tag `TableFootnote'>
+ > # end of Frame
+ <TextLine
+ <Unique 94671>
+ <Overprint No >
+ <TLOrigin 0.96836" 1.11233">
+ <TLAlignment Left >
+ <TLLanguage USEnglish >
+ <String `TableFootnote'>
+ > # end of TextLine
+> # end of Page
+<Page
+ <Unique 432787>
+ <PageType ReferencePage >
+ <PageTag `TOC'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <TextRect
+ <ID 12>
+ <Unique 432816>
+ <Pen 15>
+ <Fill 7>
+ <PenWidth 0.5 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 0.59722" 1.01389" 7.38889" 1.33333">
+ <BRect 0.59722" 1.01389" 7.38889" 1.33333">
+ <TRNext 0>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 996720>
+ <PageType BodyPage >
+ <PageNum `1'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <PageBackground `Default'>
+ <TextRect
+ <ID 13>
+ <Unique 427031>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 14>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 427187>
+ <PageType BodyPage >
+ <PageNum `2'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <PageBackground `Default'>
+ <TextRect
+ <ID 14>
+ <Unique 427188>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 15>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 427260>
+ <PageType BodyPage >
+ <PageNum `3'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <PageBackground `Default'>
+ <TextRect
+ <ID 15>
+ <Unique 427261>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 16>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 427334>
+ <PageType BodyPage >
+ <PageNum `4'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <PageBackground `Default'>
+ <TextRect
+ <ID 16>
+ <Unique 427335>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 17>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 427586>
+ <PageType BodyPage >
+ <PageNum `5'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <PageBackground `Default'>
+ <TextRect
+ <ID 17>
+ <Unique 427587>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 18>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 432656>
+ <PageType BodyPage >
+ <PageNum `6'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <PageBackground `Default'>
+ <TextRect
+ <ID 18>
+ <Unique 432657>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 19>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 432659>
+ <PageType BodyPage >
+ <PageNum `7'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <PageBackground `Default'>
+ <TextRect
+ <ID 19>
+ <Unique 432660>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 20>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 432662>
+ <PageType BodyPage >
+ <PageNum `8'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <PageBackground `Default'>
+ <TextRect
+ <ID 20>
+ <Unique 432663>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 21>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 432665>
+ <PageType BodyPage >
+ <PageNum `9'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <PageBackground `Default'>
+ <TextRect
+ <ID 21>
+ <Unique 432666>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 22>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 432668>
+ <PageType BodyPage >
+ <PageNum `10'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <PageBackground `Default'>
+ <TextRect
+ <ID 22>
+ <Unique 432669>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 23>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 432671>
+ <PageType BodyPage >
+ <PageNum `11'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <PageBackground `Default'>
+ <TextRect
+ <ID 23>
+ <Unique 432672>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 24>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 432674>
+ <PageType BodyPage >
+ <PageNum `12'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <PageBackground `Default'>
+ <TextRect
+ <ID 24>
+ <Unique 432675>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 25>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 432677>
+ <PageType BodyPage >
+ <PageNum `13'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <PageBackground `Default'>
+ <TextRect
+ <ID 25>
+ <Unique 432678>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 26>
+ > # end of TextRect
+> # end of Page
+<Page
+ <Unique 432680>
+ <PageType BodyPage >
+ <PageNum `14'>
+ <PageSize 8.5" 11.0">
+ <PageOrientation Portrait >
+ <PageAngle 0.0>
+ <PageBackground `Default'>
+ <TextRect
+ <ID 26>
+ <Unique 432681>
+ <Pen 15>
+ <Fill 15>
+ <PenWidth 1.0 pt>
+ <Separation 0>
+ <ObColor `Black'>
+ <DashedPattern
+ <DashedStyle Solid >
+ > # end of DashedPattern
+ <Overprint No >
+ <ShapeRect 1.0" 1.0" 6.5" 9.0">
+ <BRect 1.0" 1.0" 6.5" 9.0">
+ <TRNext 0>
+ > # end of TextRect
+> # end of Page
+<TextFlow
+ <TFTag `A'>
+ <TFAutoConnect Yes >
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 427020>
+ <Pgf
+ <PgfTag `Body'>
+ <PgfUseNextTag No >
+ <PgfNextTag `'>
+ <PgfAlignment LeftRight >
+ <PgfFIndent 0.0">
+ <PgfLIndent 0.0">
+ <PgfRIndent 0.0">
+ <PgfTopSeparator `'>
+ <PgfBotSeparator `'>
+ <PgfPlacement Anywhere >
+ <PgfPlacementStyle Normal >
+ <PgfRunInDefaultPunct `. '>
+ <PgfSpBefore 5.0 pt>
+ <PgfSpAfter 0.0 pt>
+ <PgfWithPrev No >
+ <PgfWithNext No >
+ <PgfBlockSize 1>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Helvetica'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Helvetica'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern Yes >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Proportional >
+ <PgfLeading 2.0 pt>
+ <PgfAutoNum No >
+ <PgfNumTabs 0>
+ <PgfHyphenate Yes >
+ <HyphenMaxLines 2>
+ <HyphenMinPrefix 3>
+ <HyphenMinSuffix 3>
+ <HyphenMinWord 5>
+ <PgfLetterSpace No >
+ <PgfMinWordSpace 90>
+ <PgfOptWordSpace 100>
+ <PgfMaxWordSpace 110>
+ <PgfLanguage USEnglish >
+ <PgfCellAlignment Top >
+ <PgfCellMargins 0.0 pt 0.0 pt 0.0 pt 0.0 pt>
+ <PgfCellLMarginFixed No >
+ <PgfCellTMarginFixed No >
+ <PgfCellRMarginFixed No >
+ <PgfCellBMarginFixed No >
+ > # end of Pgf
+ <ParaLine
+ <TextRectID 8>
+ >
+ > # end of Para
+> # end of TextFlow
+<TextFlow
+ <TFTag `A'>
+ <TFAutoConnect Yes >
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 427022>
+ <PgfTag `Body'>
+ <ParaLine
+ <TextRectID 11>
+ >
+ > # end of Para
+> # end of TextFlow
+<TextFlow
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 427024>
+ <Pgf
+ <PgfTag `Footer'>
+ <PgfSpBefore 0.0 pt>
+ <PgfFont
+ <FTag `'>
+ <FFamily `Times'>
+ <FVar `Regular'>
+ <FWeight `Regular'>
+ <FAngle `Regular'>
+ <FPostScriptName `Times-Roman'>
+ <FSize 10.0 pt>
+ <FUnderlining FNoUnderlining >
+ <FUnderline No >
+ <FDoubleUnderline No >
+ <FNumericUnderline No >
+ <FOverline No >
+ <FStrike No >
+ <FChangeBar No >
+ <FOutline No >
+ <FShadow No >
+ <FPairKern No >
+ <FCase FAsTyped >
+ <FPosition FNormal >
+ <FSupScript No >
+ <FSubScript No >
+ <FDX 0.0 pt>
+ <FDY 0.0 pt>
+ <FDW 0.0 pt>
+ <FSeparation 0>
+ <FColor `Black'>
+ > # end of PgfFont
+ <PgfLineSpacing Fixed >
+ <PgfNumTabs 2>
+ <TabStop
+ <TSX 3.25">
+ <TSType Center >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 6.5">
+ <TSType Right >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <HyphenMinPrefix 2>
+ <HyphenMinSuffix 2>
+ <PgfMinWordSpace 75>
+ <PgfMaxWordSpace 125>
+ > # end of Pgf
+ <ParaLine
+ <TextRectID 10>
+ <Char Tab >
+ <Char Tab >
+ <String `.. '>
+ <Variable
+ <VariableName `Current Page #'>
+ <Unique 432753>
+ > # end of Variable
+ >
+ > # end of Para
+> # end of TextFlow
+<TextFlow
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 427026>
+ <Pgf
+ <PgfTag `Header'>
+ > # end of Pgf
+ <ParaLine
+ <TextRectID 9>
+ >
+ > # end of Para
+> # end of TextFlow
+<TextFlow
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 427028>
+ <Pgf
+ <PgfTag `Footer'>
+ > # end of Pgf
+ <ParaLine
+ <TextRectID 7>
+ >
+ > # end of Para
+> # end of TextFlow
+<TextFlow
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 427030>
+ <Pgf
+ <PgfTag `Header'>
+ > # end of Pgf
+ <ParaLine
+ <TextRectID 6>
+ >
+ > # end of Para
+> # end of TextFlow
+<TextFlow
+ <TFTag `A'>
+ <TFAutoConnect Yes >
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432250>
+ <PgfTag `Title'>
+ <Pgf
+ <PgfBotSeparator `Double Line'>
+ > # end of Pgf
+ <ParaLine
+ <TextRectID 13>
+ <Font
+ <FTag `'>
+ <FFamily `AvantGarde'>
+ <FWeight `DemiBold'>
+ <FPostScriptName `AvantGarde-Demi'>
+ > # end of Font
+ <Conditional
+ <InCondition `Fluff'>
+ > # end of Conditional
+ <String `fmweb'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String `: Literate Programming using FrameMaker'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432251>
+ <PgfTag `Body'>
+ <Pgf
+ <PgfAlignment Center >
+ <PgfNumTabs 1>
+ <TabStop
+ <TSX 6.5">
+ <TSType Right >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ > # end of Pgf
+ <ParaLine
+ <String `Version 1.0'>
+ <Char HardReturn >
+ >
+ <ParaLine
+ <Char Tab >
+ <String `Sriram Srinivasan'>
+ <Char HardReturn >
+ >
+ <ParaLine
+ <Char Tab >
+ <String `('>
+ <Font
+ <FTag `'>
+ <FAngle `Oblique'>
+ <FPostScriptName `Helvetica-Oblique'>
+ > # end of Font
+ <String `sriram@tcs.com'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String `)'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432252>
+ <PgfTag `Heading1'>
+ <ParaLine
+ <String `Introduction'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432253>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `This document explains a simple approach for doing literate programming using FrameMaker, a word pro'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `cessing system. It is almost identical to the approach taken by WinWordWEB '>
+ <XRef
+ <XRefName `Ref'>
+ <XRefSrcText `32486: Ref: 1. WEB: http://info.desy.de/user/projects/LitProg/HTML.html'>
+ <XRefSrcFile `'>
+ <Unique 432255>
+ > # end of XRef
+ <String `[2]'>
+ <XRefEnd >
+ <String `, except that it can addi'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `tionally be used in batch mode.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432257>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `All implementations of literate programming provide facilities to break a piece of code into digestible '>
+ >
+ <ParaLine
+ <String `chunks which can be documented individually, and explained in any order. The only difference is in the way '>
+ >
+ <ParaLine
+ <String `the document should be written so that a tool can separate the code from the rest of the documentation. '>
+ >
+ <ParaLine
+ <String `WEB and such other tools provide a way of doing \xd2 in-band signalling\xd3 , to borrow a term from communica'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `tions. The programmer annotates different parts of a document by keywords, and a program such as '>
+ >
+ <ParaLine
+ <String `weave or tangle recognizes these keywords. In addition, these programs provide features such as section '>
+ >
+ <ParaLine
+ <String `numbering, indexing etc. and language specific features such as pretty-printing, macro expansion etc.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432258>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `The other approach is to do \xd2 out-of-band signalling\xd3 , where the formatting information is essentially kept '>
+ >
+ <ParaLine
+ <String `out of the documentation. This is the approach taken by fmweb and WinWordWEB. '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432259>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `There are a couple of reasons why I don\xd5 t use WEB based tools.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432260>
+ <PgfTag `Bulleted'>
+ <PgfNumString `\xa5 \t'>
+ <ParaLine
+ <String `It is always nice to see the output of a literate programming effort, but the input is rather messy. I dis'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `like seeing a lot of meta characters (like @, <<, \\, [[ ) etc. The sections are not immediately visible - '>
+ >
+ <ParaLine
+ <String `one goes around looking for \xd2 \\section\xd3 , for example. I do a fair amount of coding in '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `perl'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String `, and the two '>
+ >
+ <ParaLine
+ <String `notational structures put together make my head swim, esp. when I need to alter the code a few '>
+ >
+ <ParaLine
+ <String `months later. Having access to a WYSIWIG word processor such as FrameMaker means that I don\xd5 t '>
+ >
+ <ParaLine
+ <String `use TeX, and it is too much of an effort to learn the intricacies of LaTex or TeX to be able to use the '>
+ >
+ <ParaLine
+ <String `WEB based tools.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432261>
+ <PgfTag `Bulleted'>
+ <PgfNumString `\xa5 \t'>
+ <ParaLine
+ <String `A number of these tools are language specific. '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `noweb'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` is one exception to this rule, and I rather like '>
+ >
+ <ParaLine
+ <String `the simplicity of noweb. I don\xd5 t use noweb because of the reason explained above. '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432262>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `FrameMaker, like other good word processors, has excellent document formatting capabilities, cross refer'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `encing and indexing, table of contents, graphics, tables etc. What I see on the screen is the final output, '>
+ >
+ <ParaLine
+ <String `uncluttered by meta-information. '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432263>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `One problem that I have with this approach is that I am used to a Unix like development environment and '>
+ >
+ <ParaLine
+ <String `extensively use text based tools such as emacs/vi, perl, diff, sccs etc. For this reason, I have not tried this '>
+ >
+ <ParaLine
+ <String `approach on medium or larger sized implementations, though I hope to do that in the near future. '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432264>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `In general, I am somewhat unclear on how the literate programming paradigm helps a developer to think. '>
+ >
+ <ParaLine
+ <String `The prevailing wisdom is that this approach forces a lot more disciplined thinking on the part of the pro'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `grammer, since (s)he is in a teaching mode. I find that this helps in structuring the program well, once one '>
+ >
+ <ParaLine
+ <String `knows what one should be doing, but if I don\xd5 t have a top-down (step-wise refinement) solution in my mind, '>
+ >
+ <ParaLine
+ <String `I am not entirely sure how to start from a blank page. I tend to do small sections of the code using my reg'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `ular development environment, and once I have a reasonable top-down solution in mind, copy it all over to '>
+ >
+ <ParaLine
+ <String `a FrameMaker file and start refining it. '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432265>
+ <PgfTag `Heading1'>
+ <ParaLine
+ <String `The fmweb approach'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432266>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `To separate the code from the rest of the stuff, the developer uses three paragraph formats.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432267>
+ <PgfTag `Bulleted'>
+ <PgfNumString `\xa5 \t'>
+ <ParaLine
+ <TextRectID 14>
+ <String `\xd2 File\xd3 : The file name is mentioned in this paragraph, and all subsequent lines will eventually be '>
+ >
+ <ParaLine
+ <String `dumped into this file. '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432268>
+ <PgfTag `Bulleted'>
+ <PgfNumString `\xa5 \t'>
+ <ParaLine
+ <String `\xd2 chunk\xd3 : A chunk (or section) is a heading followed by a set of \xd2 code\xd3 paragraphs. The \xd2 chunk\xd3 para'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `graph tag identifies the heading for that section. It is possible to have more than one chunk with the '>
+ >
+ <ParaLine
+ <String `same name. '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432269>
+ <PgfTag `Bulleted'>
+ <PgfNumString `\xa5 \t'>
+ <ParaLine
+ <String `\xd2 code\xd3 : The developer writes code (in any language) using this paragraph tag. The Frame Maker cross '>
+ >
+ <ParaLine
+ <String `reference facility has to be used to refer to chunks. '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432270>
+ <PgfTag `Body'>
+ <ParaLine
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `fmweb'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` is a perl script that needs the FrameMaker document in a MIF format - it extracts chunks and code '>
+ >
+ <ParaLine
+ <String `paragraphs out, and does the requisite tangling (restoring the order of chunks). All chunks with the same '>
+ >
+ <ParaLine
+ <String `name are concatenated in the order they appear in the document. '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `fmweb'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` ignores all formatting informa'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `tion. Source line number information can be optionally output, in a format accepted by '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `cc'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` (#line).'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432271>
+ <PgfTag `Heading1'>
+ <ParaLine
+ <String `References'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432272>
+ <PgfTag `Ref'>
+ <PgfNumString `1.\t'>
+ <ParaLine
+ <String `\xd2 Literate Programming\xd3 , Donald Knuth, Center for the Study of Language and Information, Stanford '>
+ >
+ <ParaLine
+ <String `University, ISBN 0-937073-80-6 '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432274>
+ <PgfTag `Ref'>
+ <PgfNumString `2.\t'>
+ <ParaLine
+ <Marker
+ <MType 9>
+ <MText `32486: Ref: 1. WEB: http://info.desy.de/user/projects/LitProg/HTML.html'>
+ <MCurrPage 1>
+ <Unique 432273>
+ > # end of Marker
+ <Char Tab >
+ <String `WEB: http://info.desy.de/user/projects/LitProg/HTML.html - A pointer to all the other good stuff avail'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `able on the net.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432695>
+ <PgfTag `Heading1'>
+ <ParaLine
+ <Unconditional >
+ <String `Unpacking the distribution'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432692>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `This document contains an example program (wc.c) written in the format explained above, and the fmweb '>
+ >
+ <ParaLine
+ <String `script, along with some internal documentation.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432713>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `Save this file as wc.mif. This file will be used to test out the fmweb script.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432726>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `To extract fmweb (a perl5 script), go to Special-\>Conditional Text -\> Show/Hide..., and hide the conditional '>
+ >
+ <ParaLine
+ <String `tag called \xd2 Fluff\xd3 . Only the perl script should be remaining. Save this file as text only, and call it fmweb.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432729>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `Run fmweb - \xd2 perl5 fmweb < wc.mif\xd3 . This should produce a file called wc.c in the local directory. Compile '>
+ >
+ <ParaLine
+ <String `and execute wc, and compare against the system provided \xd2 wc\xd3 , if on a Unix system.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432935>
+ <PgfTag `Heading1'>
+ <ParaLine
+ <String `ToDo'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432936>
+ <PgfTag `Bulleted'>
+ <PgfNumString `\xa5 \t'>
+ <ParaLine
+ <String `Support multiple files'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432937>
+ <PgfTag `Bulleted'>
+ <PgfNumString `\xa5 \t'>
+ <ParaLine
+ <String `Largish example - map library'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432938>
+ <PgfTag `Bulleted'>
+ <PgfNumString `\xa5 \t'>
+ <ParaLine
+ <String `Speed up '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432939>
+ <PgfTag `Bulleted'>
+ <PgfNumString `\xa5 \t'>
+ <ParaLine
+ <String `Look at mml '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432940>
+ <PgfTag `Bulleted'>
+ <PgfNumString `\xa5 \t'>
+ <ParaLine
+ <String `Accept filenames as arguments'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432721>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432696>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432275>
+ <PgfTag `Heading1'>
+ <Pgf
+ <PgfPlacement PageTop >
+ > # end of Pgf
+ <ParaLine
+ <TextRectID 15>
+ <Conditional
+ <InCondition `Fluff'>
+ > # end of Conditional
+ <String `Appendix A: \xd4 wc\xd5 : A word count program'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432276>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432277>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `This section demonstrates how one can do Literate Programming with FrameMaker. There are only three '>
+ >
+ <ParaLine
+ <String `paragraph tags of interest - File (see \xd2 File:\xd3 below), \xd2 chunk\xd3 (all the numbered paragraphs) and \xd2 code\xd3 . Any '>
+ >
+ <ParaLine
+ <String `cross reference format can be used - \xd2 chunkref\xd3 is the name of the format used in the example below. '>
+ >
+ <ParaLine
+ <String `Apologies if the example looks like a ransom note - one does tend to get carried away by the availability of '>
+ >
+ <ParaLine
+ <String `fonts, and the WYSIWIGness of it all.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432278>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `The implementation and comments have been shamelessly lifted from Norman Ramsey\xd5 s noweb distribu'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `tion (ftp://bellcore.com/pub/norman/www/noweb/intro.html). This is just to provide a comparison of the two '>
+ >
+ <ParaLine
+ <String `approaches. I have modified some of the comments that do not apply to this approach.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432279>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `Thanks, Norman.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432280>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432281>
+ <PgfTag `File'>
+ <PgfNumString `File: '>
+ <ParaLine
+ <String `wc.c'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432282>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `The purpose of '>
+ <Font
+ <FTag `'>
+ <FFamily `Courier'>
+ <FPostScriptName `Courier'>
+ > # end of Font
+ <String `wc'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` is to count lines, words, and/or characters in a list of files. The number of lines in a file '>
+ >
+ <ParaLine
+ <String `is the number of newline characters it contains. The number of characters is the file length in bytes.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432283>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `A \Q\Qword\xd5 \xd5 is a maximal sequence of consecutive characters other than newline, space, or tab, containing '>
+ >
+ <ParaLine
+ <String `at least one visible ASCII code.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432284>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `(We assume that the standard ASCII code is in use.)'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432285>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `Most literate C programs share a common structure.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432286>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `It\xd5 s probably a good idea to state the overall structure explicitly at the outset. Here, then, is an overview of '>
+ >
+ <ParaLine
+ <String `the file '>
+ <Font
+ <FTag `code'>
+ <FSize 12.0 pt>
+ > # end of Font
+ <String `wc.c'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` that is defined by the '>
+ <Font
+ <FTag `code'>
+ <FSize 12.0 pt>
+ > # end of Font
+ <String `noweb'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` program '>
+ <Font
+ <FTag `code'>
+ <FSize 12.0 pt>
+ > # end of Font
+ <String `wc.fm'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432760>
+ <PgfTag `chunk'>
+ <PgfNumString `1:\t'>
+ <ParaLine
+ <String `Outline'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432764>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `81375: chunk: Header files to include'>
+ <XRefSrcFile `'>
+ <Unique 432762>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Header files to include\> , (2:, p. 3)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432768>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `52409: chunk: Definitions'>
+ <XRefSrcFile `'>
+ <Unique 432766>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Definitions\> , (3:, p. 3)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432299>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `67133: chunk: Global variables'>
+ <XRefSrcFile `'>
+ <Unique 432297>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Global variables\> , (4:, p. 4)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432303>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `56554: chunk: Functions'>
+ <XRefSrcFile `'>
+ <Unique 432301>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Functions\> , (23:, p. 8)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432307>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `19525: chunk: Main Program'>
+ <XRefSrcFile `'>
+ <Unique 432305>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Main Program\> , (5:, p. 4)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432308>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `We must include the standard I/O definitions, since we want to send formatted output to '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `stdout'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` and '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `stderr'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432309>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432311>
+ <PgfTag `chunk'>
+ <PgfNumString `2:\t'>
+ <ParaLine
+ <Marker
+ <MType 9>
+ <MText `81375: chunk: Header files to include'>
+ <MCurrPage 2>
+ <Unique 432310>
+ > # end of Marker
+ <String `Header files to include'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432312>
+ <PgfTag `code'>
+ <ParaLine
+ <String `#include <stdio.h\>'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432313>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432315>
+ <PgfTag `chunk'>
+ <PgfNumString `3:\t'>
+ <ParaLine
+ <Marker
+ <MType 9>
+ <MText `52409: chunk: Definitions'>
+ <MCurrPage 2>
+ <Unique 432314>
+ > # end of Marker
+ <String `Definitions'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432316>
+ <PgfTag `code'>
+ <ParaLine
+ <String `#define OK 0'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432317>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* status code for successful run */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432318>
+ <PgfTag `code'>
+ <ParaLine
+ <String `#define usage_error 1'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432319>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* status code for improper syntax */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432320>
+ <PgfTag `code'>
+ <ParaLine
+ <String `#define cannot_open_file 2'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432321>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* status code for file access error */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432322>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432324>
+ <PgfTag `chunk'>
+ <PgfNumString `4:\t'>
+ <ParaLine
+ <TextRectID 16>
+ <Marker
+ <MType 9>
+ <MText `67133: chunk: Global variables'>
+ <MCurrPage 3>
+ <Unique 432323>
+ > # end of Marker
+ <String `Global variables'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432325>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `The '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `status'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` variable will tell the operating system if the run was successful or not, and '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `prog_name'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` is used '>
+ >
+ <ParaLine
+ <String `in case there\xd5 s an error message to be printed.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432326>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432327>
+ <PgfTag `code'>
+ <ParaLine
+ <String `int status = OK;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432328>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* exit status of command, initially OK */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432329>
+ <PgfTag `code'>
+ <ParaLine
+ <String `char *prog_name;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432330>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* who we are */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432331>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432332>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `Now we come to the general layout of the '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `main'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` function.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432333>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432335>
+ <PgfTag `chunk'>
+ <PgfNumString `5:\t'>
+ <ParaLine
+ <Marker
+ <MType 9>
+ <MText `19525: chunk: Main Program'>
+ <MCurrPage 3>
+ <Unique 432334>
+ > # end of Marker
+ <String `Main Program'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432336>
+ <PgfTag `code'>
+ <ParaLine
+ <String `main(argc, argv)'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432337>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `int argc;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432338>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `/* number of arguments on UNIX command line */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432339>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String ` char **argv;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432340>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String ` /* the arguments, an array of strings */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432341>
+ <PgfTag `code'>
+ <ParaLine
+ <String `{'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432345>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `40463: chunk: Variables local to main'>
+ <XRefSrcFile `'>
+ <Unique 432343>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Variables local to main\> , (6:, p. 4)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432346>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String ` prog_name = argv[0];'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432350>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `33923: chunk: Set up option selection'>
+ <XRefSrcFile `'>
+ <Unique 432348>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Set up option selection\> , (7:, p. 4)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432354>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `34861: chunk: Process all the files'>
+ <XRefSrcFile `'>
+ <Unique 432352>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Process all the files\> , (8:, p. 5)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432358>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `69252: chunk: Print the grand totals if there were multiple files'>
+ <XRefSrcFile `'>
+ <Unique 432356>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Print the grand totals if there were multiple files\> , (21:, p. 8)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432359>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String ` exit(status);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432360>
+ <PgfTag `code'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432361>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432362>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `If the first argument begins with a \xd4 -\xd5 , the user is choosing the desired counts and specifying the order in '>
+ >
+ <ParaLine
+ <String `which they should be displayed. Each selection is given by the initial character (lines, words, or charac'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `ters). For example, \Q-cl\xd5 would cause just the number of characters and the number of lines to be printed, in '>
+ >
+ <ParaLine
+ <String `that order. '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432363>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `We do not process this string now; we simply remember where it is. It will be used to control the formatting '>
+ >
+ <ParaLine
+ <String `at output time.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432365>
+ <PgfTag `chunk'>
+ <PgfNumString `6:\t'>
+ <ParaLine
+ <Marker
+ <MType 9>
+ <MText `40463: chunk: Variables local to main'>
+ <MCurrPage 3>
+ <Unique 432364>
+ > # end of Marker
+ <String `Variables local to '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `main'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <Char Tab >
+ >
+ > # end of Para
+ <Para
+ <Unique 432366>
+ <PgfTag `code'>
+ <ParaLine
+ <String `int file_count;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432367>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* how many files there are */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432368>
+ <PgfTag `code'>
+ <ParaLine
+ <String `char *which;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432369>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* which counts to print */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432370>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432372>
+ <PgfTag `chunk'>
+ <PgfNumString `7:\t'>
+ <ParaLine
+ <Marker
+ <MType 9>
+ <MText `33923: chunk: Set up option selection'>
+ <MCurrPage 3>
+ <Unique 432371>
+ > # end of Marker
+ <String `Set up option selection'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432373>
+ <PgfTag `code'>
+ <ParaLine
+ <String `which = \xd2 lwc\xd3 ;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432374>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* if no option is given, print 3 values */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432375>
+ <PgfTag `code'>
+ <ParaLine
+ <String `if (argc \> 1 && *argv[1] == \xd4 -\xd5 ) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432376>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `which = argv[1] + 1;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432377>
+ <PgfTag `code'>
+ <ParaLine
+ <TextRectID 17>
+ <Char Tab >
+ <String `argc--;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432378>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `argv++;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432379>
+ <PgfTag `code'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432380>
+ <PgfTag `code'>
+ <ParaLine
+ <String `file_count = argc - 1;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432381>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432382>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `Now we scan the remaining arguments and try to open a file, if possible. The file is processed and its sta'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `tistics are given.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432383>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `We use a do ... while loop because we should read from the standard input if no file name is given.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432384>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432386>
+ <PgfTag `chunk'>
+ <PgfNumString `8:\t'>
+ <ParaLine
+ <Marker
+ <MType 9>
+ <MText `34861: chunk: Process all the files'>
+ <MCurrPage 4>
+ <Unique 432385>
+ > # end of Marker
+ <String `Process all the files'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432387>
+ <PgfTag `code'>
+ <ParaLine
+ <String `argc--;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432388>
+ <PgfTag `code'>
+ <ParaLine
+ <String `do {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432392>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` '>
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `41015: chunk: If a file is given, try to open *(++argv); continue if unsuccessful'>
+ <XRefSrcFile `'>
+ <Unique 432390>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<If a file is given, try to open *(++argv); continue if unsuccessful\> , (11:, p. 5)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432396>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `60827: chunk: Initialize pointers and counters'>
+ <XRefSrcFile `'>
+ <Unique 432394>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Initialize pointers and counters\> , (15:, p. 6)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432400>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `29900: chunk: Scan file'>
+ <XRefSrcFile `'>
+ <Unique 432398>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Scan file\> , (17:, p. 6)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432404>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `53529: chunk: Write statistics for file'>
+ <XRefSrcFile `'>
+ <Unique 432402>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Write statistics for file\> , (19:, p. 7)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432408>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` '>
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `35599: chunk: Close file'>
+ <XRefSrcFile `'>
+ <Unique 432406>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Close file\> , (12:, p. 6)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432412>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `14885: chunk: Update grand totals'>
+ <XRefSrcFile `'>
+ <Unique 432410>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Update grand totals\> , (20:, p. 7)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432413>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` /* even if there is only one file */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432414>
+ <PgfTag `code'>
+ <ParaLine
+ <String `} while (--argc \> 0);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432415>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432416>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `Here\xd5 s the code to open the file. A special trick allows us to handle input from '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `stdin'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` when no name is '>
+ >
+ <ParaLine
+ <String `given.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432417>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `Recall that the file descriptor to '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `stdin'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` is 0; that\xd5 s what we use as the default initial value.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432418>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432419>
+ <PgfTag `chunk'>
+ <PgfNumString `9:\t'>
+ <ParaLine
+ <String `Variables local to main'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432420>
+ <PgfTag `code'>
+ <ParaLine
+ <String `int fd = 0;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432421>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* file descriptor, initialized to stdin */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432422>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432423>
+ <PgfTag `chunk'>
+ <PgfNumString `10:\t'>
+ <ParaLine
+ <String `Definitions'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432424>
+ <PgfTag `code'>
+ <ParaLine
+ <String `#define READ_ONLY 0'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432425>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* read access code for system open */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432426>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432428>
+ <PgfTag `chunk'>
+ <PgfNumString `11:\t'>
+ <ParaLine
+ <Marker
+ <MType 9>
+ <MText `41015: chunk: If a file is given, try to open *(++argv); continue if unsuccessful'>
+ <MCurrPage 4>
+ <Unique 432427>
+ > # end of Marker
+ <String `If a file is given, try to open '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `*(++argv)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String `; '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `continue'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` if unsuccessful'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432429>
+ <PgfTag `code'>
+ <ParaLine
+ <String `if (file_count \> 0 '>
+ <Char Tab >
+ <Char Tab >
+ <String `&& (fd = open(*(++argv), READ_ONLY)) < 0) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432430>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `fprintf(stderr, \xd2 %s: cannot open file %s\\n\xd3 , prog_name, *argv);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432431>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String ` status |= cannot_open_file;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432432>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `file_count--;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432433>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `continue;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432434>
+ <PgfTag `code'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432435>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432437>
+ <PgfTag `chunk'>
+ <PgfNumString `12:\t'>
+ <ParaLine
+ <TextRectID 18>
+ <Marker
+ <MType 9>
+ <MText `35599: chunk: Close file'>
+ <MCurrPage 5>
+ <Unique 432436>
+ > # end of Marker
+ <String `Close file'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432438>
+ <PgfTag `code'>
+ <ParaLine
+ <String `close(fd);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432439>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432440>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `We will do some homemade buffering in order to speed things up: Characters will be read into the buffer '>
+ >
+ <ParaLine
+ <String `array before we process them. To do this we set up appropriate pointers and counters.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432441>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432442>
+ <PgfTag `chunk'>
+ <PgfNumString `13:\t'>
+ <ParaLine
+ <String `Definitions'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432443>
+ <PgfTag `code'>
+ <ParaLine
+ <String `#define buf_size BUFSIZ'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432444>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* stdio.h BUFSIZ chosen for efficiency */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432445>
+ <PgfTag `chunk'>
+ <PgfNumString `14:\t'>
+ <ParaLine
+ <String `Variables local to '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `main'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432446>
+ <PgfTag `code'>
+ <ParaLine
+ <String `char buffer[buf_size];'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432447>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* we read the input into this array */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432448>
+ <PgfTag `code'>
+ <ParaLine
+ <String `register char *ptr;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432449>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* first unprocessed character in buffer */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432450>
+ <PgfTag `code'>
+ <ParaLine
+ <String `register char *buf_end;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432451>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* the first unused position in buffer */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432452>
+ <PgfTag `code'>
+ <ParaLine
+ <String `register int c;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432453>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* current char, or # of chars just read */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432454>
+ <PgfTag `code'>
+ <ParaLine
+ <String `int in_word;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432455>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* are we within a word? */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432456>
+ <PgfTag `code'>
+ <ParaLine
+ <String `long word_count, line_count, char_count;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432457>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* # of words, lines, and chars so far */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432458>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432460>
+ <PgfTag `chunk'>
+ <PgfNumString `15:\t'>
+ <ParaLine
+ <Marker
+ <MType 9>
+ <MText `60827: chunk: Initialize pointers and counters'>
+ <MCurrPage 5>
+ <Unique 432459>
+ > # end of Marker
+ <String `Initialize pointers and counters'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432461>
+ <PgfTag `code'>
+ <ParaLine
+ <String `ptr = buf_end = buffer;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432462>
+ <PgfTag `code'>
+ <ParaLine
+ <String `line_count = word_count = char_count = 0;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432463>
+ <PgfTag `code'>
+ <ParaLine
+ <String `in_word = 0;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432464>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432465>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `The grand totals must be initialized to zero at the beginning of the program. If we made these variables '>
+ >
+ <ParaLine
+ <String `local to '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `main'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String `, we would have to do this initialization explicitly; however, C\xd5 s globals are automatically '>
+ >
+ <ParaLine
+ <String `zeroed. (Or rather, \Q\Qstatically zeroed.\xd5 \xd5 ) (Get it?)'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432466>
+ <PgfTag `chunk'>
+ <PgfNumString `16:\t'>
+ <ParaLine
+ <String `Global variables'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432467>
+ <PgfTag `code'>
+ <ParaLine
+ <String `long tot_word_count, tot_line_count, '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432468>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` tot_char_count;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432469>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` /* total number of words, lines, chars */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432471>
+ <PgfTag `chunk'>
+ <PgfNumString `17:\t'>
+ <ParaLine
+ <Marker
+ <MType 9>
+ <MText `29900: chunk: Scan file'>
+ <MCurrPage 5>
+ <Unique 432470>
+ > # end of Marker
+ <String `Scan file'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432472>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `This chunk, which does the counting, that is '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `wc'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String `\xd5 s '>
+ <Font
+ <FTag `'>
+ <FAngle `Oblique'>
+ <FPostScriptName `Helvetica-Oblique'>
+ > # end of Font
+ <String `raison d\xd5 etre'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String `, was actually one of the simplest to write. '>
+ >
+ <ParaLine
+ <String `We look at each character and change state if it begins or ends a word.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432473>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432474>
+ <PgfTag `code'>
+ <ParaLine
+ <String `while (1) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432478>
+ <PgfTag `refersTo'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <XRef
+ <XRefName `chunkref'>
+ <XRefSrcText `51742: chunk: Fill buffer if it is empty; break at end of file'>
+ <XRefSrcFile `'>
+ <Unique 432476>
+ > # end of XRef
+ <Font
+ <FTag `Emphasis'>
+ > # end of Font
+ <String `<Fill buffer if it is empty; break at end of file\> , (18:, p. 7)'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <XRefEnd >
+ >
+ > # end of Para
+ <Para
+ <Unique 432479>
+ <PgfTag `code'>
+ <ParaLine
+ <TextRectID 19>
+ <Char Tab >
+ <String ` c = *ptr++;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432480>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String ` if (c \> \xd4 \xd4 && c < 0177) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432481>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <Char Tab >
+ <String `/* visible ASCII codes */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432482>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String ` if (!in_word) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432483>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String ` word_count++;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432484>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `in_word = 1;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432485>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432486>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `continue;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432487>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432488>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `if (c == \xd4 \\n\xd5 ) line_count++;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432489>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String ` else if (c != \xd4 \xd4 && c != \xd4 \\t\xd5 ) continue;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432490>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String ` in_word = 0;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432491>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `/* c is newline, space, or tab */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432492>
+ <PgfTag `code'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432493>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432494>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `Buffered I/O allows us to count the number of characters almost for free.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432496>
+ <PgfTag `chunk'>
+ <PgfNumString `18:\t'>
+ <ParaLine
+ <Marker
+ <MType 9>
+ <MText `51742: chunk: Fill buffer if it is empty; break at end of file'>
+ <MCurrPage 6>
+ <Unique 432495>
+ > # end of Marker
+ <String `Fill '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `buffer'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` if it is empty; '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `break'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` at end of file'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432497>
+ <PgfTag `code'>
+ <ParaLine
+ <String `if (ptr \>= buf_end) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432498>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `ptr = buffer;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432499>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `c = read(fd, ptr, buf_size);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432500>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `if (c <= 0) break;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432501>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `char_count += c;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432502>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `buf_end = buffer + c;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432503>
+ <PgfTag `code'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432504>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432505>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `It\xd5 s convenient to output the statistics by defining a new function '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `wc_print'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String `; then the same function can be '>
+ >
+ <ParaLine
+ <String `used for the totals. Additionally we must decide here if we know the name of the file we have processed or '>
+ >
+ <ParaLine
+ <String `if it was just stdin.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432507>
+ <PgfTag `chunk'>
+ <PgfNumString `19:\t'>
+ <ParaLine
+ <Marker
+ <MType 9>
+ <MText `53529: chunk: Write statistics for file'>
+ <MCurrPage 6>
+ <Unique 432506>
+ > # end of Marker
+ <String `Write statistics for file'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432508>
+ <PgfTag `code'>
+ <ParaLine
+ <String `wc_print(which, char_count, word_count, '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432509>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` line_count);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432510>
+ <PgfTag `code'>
+ <ParaLine
+ <String `if (file_count)'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432511>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` printf(\xd2 %s\\n\xd3 , *argv); /* not stdin */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432512>
+ <PgfTag `code'>
+ <ParaLine
+ <String `else '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432513>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` printf(\xd2 \\n\xd3 ); /* stdin */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432514>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432516>
+ <PgfTag `chunk'>
+ <PgfNumString `20:\t'>
+ <ParaLine
+ <Marker
+ <MType 9>
+ <MText `14885: chunk: Update grand totals'>
+ <MCurrPage 6>
+ <Unique 432515>
+ > # end of Marker
+ <String `Update grand totals'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432517>
+ <PgfTag `code'>
+ <ParaLine
+ <String `tot_line_count += line_count;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432518>
+ <PgfTag `code'>
+ <ParaLine
+ <String `tot_word_count += word_count;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432519>
+ <PgfTag `code'>
+ <ParaLine
+ <String `tot_char_count += char_count;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432520>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432521>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432522>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `We might as well improve a bit on '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `Unix'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String `\xd5 s '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `wc'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` by displaying the number of files too.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432524>
+ <PgfTag `chunk'>
+ <PgfNumString `21:\t'>
+ <ParaLine
+ <TextRectID 20>
+ <Marker
+ <MType 9>
+ <MText `69252: chunk: Print the grand totals if there were multiple files'>
+ <MCurrPage 7>
+ <Unique 432523>
+ > # end of Marker
+ <String `Print the grand totals if there were multiple files'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432525>
+ <PgfTag `code'>
+ <ParaLine
+ <String `if (file_count \> 1) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432526>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `wc_print(which, tot_char_count, tot_word_count, tot_line_count);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432527>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `printf (\xd2 total in %d files\\n\xd3 , file_count);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432528>
+ <PgfTag `code'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432529>
+ <PgfTag `code'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432530>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `Here now is the function that prints the values according to the specified options. The calling routine is sup'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `posed to supply a newline. If an invalid option character is found we inform the user about proper usage of '>
+ >
+ <ParaLine
+ <String `the command. Counts are printed in 8-digit fields so that they will line up in columns.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432531>
+ <PgfTag `chunk'>
+ <PgfNumString `22:\t'>
+ <ParaLine
+ <String `Definitions'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432532>
+ <PgfTag `code'>
+ <ParaLine
+ <String `#define print_count(n) printf(\xd2 %8ld\xd3 , n)'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432534>
+ <PgfTag `chunk'>
+ <PgfNumString `23:\t'>
+ <ParaLine
+ <Marker
+ <MType 9>
+ <MText `56554: chunk: Functions'>
+ <MCurrPage 7>
+ <Unique 432533>
+ > # end of Marker
+ <String `Functions'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432535>
+ <PgfTag `code'>
+ <ParaLine
+ <String `wc_print (which, char_count, word_count, line_count)'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432536>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `char *which; /* which counts to print */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432537>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `long char_count, word_count, line_count;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432538>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String ` /* given totals */'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432539>
+ <PgfTag `code'>
+ <ParaLine
+ <String `{'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432540>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <String `while (*which)'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432541>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `switch (*which++) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432542>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `case \xd4 l\xd5 : print_count(line_count);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432543>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `break;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432544>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `case \xd4 w\xd5 : print_count(word_count);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432545>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `break;'>
+ <Char Tab >
+ >
+ > # end of Para
+ <Para
+ <Unique 432546>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `case \xd4 c\xd5 : print_count(char_count);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432547>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `break;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432548>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `default:'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432549>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `if ((status & usage_error) == 0) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432550>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `fprintf(stderr,'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432551>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `\xd2 Usage: %s [-lwc] [filename ...]\\n\xd3 , '>
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `prog_name);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432552>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `usage_error;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432553>
+ <PgfTag `code'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432554>
+ <PgfTag `code'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <Char Tab >
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432555>
+ <PgfTag `code'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432556>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432557>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `Incidentally, a test of this program against the system '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `wc'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` command on a SPARCstation showed that the '>
+ >
+ <ParaLine
+ <String `\Q\Qofficial\xd5 \xd5 '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `wc'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` was slightly slower. Furthermore, although that '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `wc'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` gave an appropriate error message for '>
+ >
+ <ParaLine
+ <String `the options \Q'>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `abc'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String `\xd5 , it made no complaints about the options \Qabc\xd5 ! '>
+ >
+ > # end of Para
+ <Para
+ <Unique 432558>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `Dare we suggest that the system routine might have been better if its programmer had used a more literate '>
+ >
+ <ParaLine
+ <String `approach?'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432559>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432560>
+ <PgfTag `Heading1'>
+ <ParaLine
+ <TextRectID 21>
+ <String `Appendix B: '>
+ <Font
+ <FTag `code'>
+ > # end of Font
+ <String `fmweb'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` source'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432561>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `To extract this source, go to special -\> conditional text, and hide the conditional tag named \xd2 Fluff\xd3 . Save the '>
+ >
+ <ParaLine
+ <String `file as a text file called fmweb. The first line of this file may need changing. '>
+ <ATbl 5>
+ >
+ > # end of Para
+ <Para
+ <Unique 432611>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 432612>
+ <PgfTag `Heading2'>
+ <ParaLine
+ <TextRectID 22>
+ <String `Description'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432650>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `fmweb is implemented as a simple state machine, whose state diagram is shown below.'>
+ <AFrame 1>
+ >
+ > # end of Para
+ <Para
+ <Unique 432651>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `Each of the events in the state diagram are mif statements. The subroutines ParaMode, FileMode, Code'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `Mode, ChunkMode and WasteMode implement the states. If these subs are called without any parame'>
+ <Char SoftHyphen >
+ >
+ <ParaLine
+ <String `ters, they do the necessary initializations required for that state, such as initializing @lookFor, which is the '>
+ >
+ <ParaLine
+ <String `set of lookahead patterns in which the current state is interested. The main loop calls these subs with $line '>
+ >
+ <ParaLine
+ <String `as the parameter - $line contains some event deemed interesting to the current state.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432652>
+ <PgfTag `Body'>
+ <ParaLine
+ <String `The script first reads in all the chunks and stores them in chunksByName, keyed by the chunk heading. '>
+ >
+ <ParaLine
+ <String `Each chunk may contain embedded cross references to other chunks. In MIF, an XrefSrcText statement is '>
+ >
+ <ParaLine
+ <String `the pointer to the source paragraph - more precisely, the chunk heading that this XrefSrcText points to, will '>
+ >
+ <ParaLine
+ <String `have a corresponding \xd2 MText\xd3 statement with exactly the same string. Since a chunk is simply all the '>
+ >
+ <ParaLine
+ <String `\xd2 code\xd3 paragraph strings concatenated together, cross references are simply embedded into this stream, '>
+ >
+ <ParaLine
+ <String `with a "\\200" character on either end, to identify it later.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432653>
+ <PgfTag `Body'>
+ <PgfEndCond Yes >
+ <PgfCondFullPgf Yes >
+ <ParaLine
+ <String `Finally, each of the top level chunks are taken in order (top level chunks are those that haven\xd5 t been '>
+ >
+ <ParaLine
+ <String `referred to by any other chunk), and expanded. The expansion process consists of substituting each '>
+ >
+ <ParaLine
+ <String `embedded reference by the appropriate chunk - this is a recursive process, since the chunk referred to '>
+ >
+ <ParaLine
+ <String `may itself contain other embedded references.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430847>
+ <PgfTag `Body'>
+ <ParaLine
+ <Font
+ <FTag `'>
+ <FFamily `AvantGarde'>
+ <FWeight `DemiBold'>
+ <FPostScriptName `AvantGarde-Demi'>
+ <FSize 18.0 pt>
+ > # end of Font
+ <Unconditional >
+ >
+ > # end of Para
+ <Para
+ <Unique 430772>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `#/usr/local/bin/perl5'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430031>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430032>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `#forward declarations.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430204>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `sub ParaMode'>
+ <String `;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430628>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `sub FileMode;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430630>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `sub CodeMode;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430632>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `sub ChunkMode;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430634>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `sub WasteMode;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430037>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430613>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `Initialize();'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430844>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430853>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `# Start with the Waste State.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430038>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `WasteMode();'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430039>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `# Main loop'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430040>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `while ($line = <STDIN\>) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430041>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `if (InterestingLine()) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430856>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <TextRectID 23>
+ <Char Tab >
+ <Char Tab >
+ <String `# Call the current mode proc (one of ParaMode,FileMode, CodeMode, ChunkMode;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430876>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `# WasteMode, or WasteOneStringMode)'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430854>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `&{$currModeProc}($line);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430043>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String ` }'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430044>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430045>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430046>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `#All chunks have been slurped in. '>
+ >
+ > # end of Para
+ <Para
+ <Unique 430048>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430883>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `# Find out which chunks have been referred to by othe r chunks. '>
+ >
+ > # end of Para
+ <Para
+ <Unique 430882>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `foreach $k (keys %markerReferred) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430049>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `$chunkReferred {$markerToHeading{$k}} = 1;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430050>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430051>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430889>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `# Can currently open only one file.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430052>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `open (F, '>
+ <String `"'>
+ <String `\> $currFile'>
+ <String `"'>
+ <String `) || die '>
+ <String `"'>
+ <String `Could not open $currFile for writing'>
+ <String `"'>
+ <String `;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430053>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430054>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `# The "tangle" process. Expand each top level chunk'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430892>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `foreach $c (@chunkHeadings) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430055>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `if (! $chunkReferred{$c}) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430056>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `ChunkExpand ($c);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430057>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$chunksByName{$c} =~ s/\\\\xd([2345]) /$xlat[$1]/g;'>
+ <String ` #Translate smart quotes'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430058>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$chunksByName{$c} =~ s/\\\\\\\\/\\\\/g;'>
+ <String ` #Convert \\\\ to \\'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430059>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$chunksByName{$c} =~ s/\\\\\>/\>/g;'>
+ <String ` # convert \\\> to \>'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430061>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `print F $chunksByName{$c}, '>
+ <String `"'>
+ <String `\\n'>
+ <String `"'>
+ <String `;'>
+ <String ` '>
+ >
+ > # end of Para
+ <Para
+ <Unique 430062>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430063>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430064>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430065>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `close (F);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430066>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `exit (0);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430903>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430067>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `#------------------------------------------------------------'>
+ <String `--------------------------------------------------'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430068>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430069>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `sub '>
+ <Font
+ <FTag `'>
+ <FWeight `DemiBold'>
+ <FPostScriptName `AvantGarde-Demi'>
+ > # end of Font
+ <String `ChunkExpand'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430070>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` local ($heading) = @_;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430071>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ >
+ > # end of Para
+ <Para
+ <Unique 430072>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` print '>
+ <String `"'>
+ <String `ChunkExpand : $heading \\n'>
+ <String `"'>
+ <String ` if $debugging;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430073>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430074>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` if (defined ($chunksByName{$heading})) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430904>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `# For each embedded marker found, call CHunkExpand recursively.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430907>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `# Note the /e option below.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430075>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `1 while '>
+ >
+ > # end of Para
+ <Para
+ <Unique 430076>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <Char Tab >
+ <String ` ($chunksByName{$heading} =~ '>
+ >
+ > # end of Para
+ <Para
+ <Unique 430077>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `s/\\200([^\\200]*)\\200/ChunkExpand($markerToHeading{$1})/e);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430078>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `return $chunksByName{$heading};'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430079>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` } else {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430080>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `return '>
+ <String `"'>
+ <String `??$heading??'>
+ <String `"'>
+ <String `;'>
+ <String ` # To indicate an unresolved cross reference.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430081>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` }'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430082>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430083>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430084>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `sub '>
+ <Font
+ <FTag `'>
+ <FWeight `DemiBold'>
+ <FPostScriptName `AvantGarde-Demi'>
+ > # end of Font
+ <String `WasteMode'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430085>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String ` local ($ev) = @_;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430086>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` if (! defined $ev) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430087>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `@lookFor = ($PARA);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430088>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$currModeProc = \\&WasteMode;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430089>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <TextRectID 24>
+ <Char Tab >
+ <Char Tab >
+ <String `return;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430090>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` }'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430091>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430092>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `ParaMode();'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430093>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430094>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430095>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `sub '>
+ <Font
+ <FTag `'>
+ <FWeight `DemiBold'>
+ <FPostScriptName `AvantGarde-Demi'>
+ > # end of Font
+ <String `ParaMode'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430096>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `local ($ev) = @_;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430097>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `if (! defined $ev) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430098>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `@lookFor = ('>
+ <String `"'>
+ <String `^ *<PgfTag \Qcode\xd5 '>
+ <String `"'>
+ <String `, '>
+ <String `"'>
+ <String `^ *<PgfTag \Qchunk\xd5 '>
+ <String `"'>
+ <String `, '>
+ <String `"'>
+ <String `^ *<PgfTag \QFile\xd5 '>
+ <String `"'>
+ <String `);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430099>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$currModeProc = \\&ParaMode;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430100>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `return;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430101>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` }'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430102>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` print '>
+ <String `"'>
+ <String `ParaMode : $ev \\n'>
+ <String `"'>
+ <String ` if $debugging;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430103>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` if ($ev =~ /code/ ) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430104>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `CodeMode();'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430105>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` } elsif ($ev =~ /chunk/ ) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430106>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `ChunkMode();'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430107>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` } elsif ($ev =~ /File/ ) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430108>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `FileMode();'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430109>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` } else {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430110>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `WasteMode();'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430111>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430112>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430113>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430114>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `sub '>
+ <Font
+ <FTag `'>
+ <FWeight `DemiBold'>
+ <FPostScriptName `AvantGarde-Demi'>
+ > # end of Font
+ <String `FileMode'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430115>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` local ($ev) = @_;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430116>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` if (! defined $ev) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430117>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `@lookFor = ('>
+ <String `"'>
+ <String `^ *<String'>
+ <String `"'>
+ <String `, $ENDOFPARA);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430118>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$currModeProc = \\&FileMode;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430119>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$currFile = '>
+ <String `""'>
+ <String `;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430120>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `return;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430121>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` }'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430122>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` print '>
+ <String `"'>
+ <String `FileMode : $ev \\n'>
+ <String `"'>
+ <String ` if $debugging;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430123>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` if ($ev =~ /^ *<String.*\\\Q(.+)\\\xd5 \>$/ ) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430124>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$currFile = $1;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430125>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` } else {'>
+ <String ` # End of para'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430126>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `WasteMode();'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430127>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430128>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430129>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430130>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `sub '>
+ <Font
+ <FTag `'>
+ <FWeight `DemiBold'>
+ <FPostScriptName `AvantGarde-Demi'>
+ > # end of Font
+ <String `CodeMode'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430131>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` local ($ev, $h) = @_;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430132>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `if (! defined $ev) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430133>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `@lookFor = ('>
+ <String `"'>
+ <String `^ *<Char Tab'>
+ <String `"'>
+ <String `, '>
+ <String `"'>
+ <String `^ *<String'>
+ <String `"'>
+ <String `, '>
+ <String `"'>
+ <String `^ *<XRefSrcText'>
+ <String `"'>
+ <String `, $ENDOFPARA);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430134>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$currModeProc = \\&CodeMode;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430135>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `return;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430136>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430137>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` print '>
+ <String `"'>
+ <String `CodeMode : $ev \\n'>
+ <String `"'>
+ <String ` if $debugging;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430138>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` if ($ev =~ /^ *<Char Tab/) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430139>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$chunksByName{$currChunkHeading} .= '>
+ <String `"'>
+ <String `\\t'>
+ <String `"'>
+ <String `;'>
+ <String ` '>
+ >
+ > # end of Para
+ <Para
+ <Unique 430140>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` } elsif ($ev =~ /String \\\Q(.*)\\\xd5 \>$/) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430141>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$chunksByName{$currChunkHeading} .= '>
+ <String `"'>
+ <String `$1'>
+ <String `"'>
+ <String `;'>
+ <String ` # Concatenate code to current chunk'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430142>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `} elsif (($h) = ($ev =~ /^ *<XRefSrcText (.*)\>$/)) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430143>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <TextRectID 25>
+ <Char Tab >
+ <Char Tab >
+ <String `$markerReferred{$h} = 1;'>
+ <String ` # Mark this chunk reference as "referred to"'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430144>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `# Put the text in as an embedded reference'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430916>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$chunksByName{$currChunkHeading} .= '>
+ <String `"'>
+ <String `\\200$h\\200\\n'>
+ <String `"'>
+ <String `;'>
+ <String ` '>
+ >
+ > # end of Para
+ <Para
+ <Unique 430145>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `# The next string is the string of the cross reference itself - having embedded the'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430924>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `# cross reference itself, we are not interested in this string.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430921>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `WasteOneStringMode();'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430146>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` } elsif ($ev =~ /$ENDOFPARA/o) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430147>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `# Assuming that each line of the code is in one "code" para . Time to append a '>
+ >
+ > # end of Para
+ <Para
+ <Unique 430926>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `# newline'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430925>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$chunksByName{$currChunkHeading} .= '>
+ <String `"'>
+ <String `\\n'>
+ <String `"'>
+ <String `;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430148>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `WasteMode();'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430149>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` }'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430150>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430151>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430152>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `sub '>
+ <Font
+ <FTag `'>
+ <FWeight `DemiBold'>
+ <FPostScriptName `AvantGarde-Demi'>
+ > # end of Font
+ <String `WasteOneStringMode'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430153>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `# Called from CodeMode above.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430927>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String ` local ($ev) = @_;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430154>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` if (! defined $ev) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430155>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `@lookFor = ('>
+ <String `"'>
+ <String `^ *<String'>
+ <String `"'>
+ <String `);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430156>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$currModeProc = \\&WasteOneStringMode;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430157>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `return;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430158>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` }'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430159>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` CodeMode();'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430160>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430161>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430162>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `sub '>
+ <Font
+ <FTag `'>
+ <FWeight `DemiBold'>
+ <FPostScriptName `AvantGarde-Demi'>
+ > # end of Font
+ <String `ChunkMode'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430163>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `local ($ev) = @_;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430164>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` if (! defined $ev) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430165>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `@lookFor = ('>
+ <String `"'>
+ <String `^ *<MText'>
+ <String `"'>
+ <String `, '>
+ <String `"'>
+ <String `^ *<String'>
+ <String `"'>
+ <String `, $ENDOFPARA);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430166>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$currChunkHeading = '>
+ <String `""'>
+ <String `;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430167>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$currMarkerText = '>
+ <String `""'>
+ <String `;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430168>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$currModeProc = \\&ChunkMode;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430169>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `return;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430170>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` }'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430171>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` if ($ev =~ /^ *<MText (.*)\>$/) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430932>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$currMarkerText = $1;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430173>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` } elsif ($ev =~ /^ *<String.*\\\Q(.+)\\\xd5 \>$/ ) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430174>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `$currChunkHeading .= $1;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430175>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` } else {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430176>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `# End of chunk para. '>
+ >
+ > # end of Para
+ <Para
+ <Unique 430935>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `print '>
+ <String `"'>
+ <String `ChunkMode : $1 \\n'>
+ <String `"'>
+ <String ` if $debugging;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430177>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `if (! defined $chunksByName{$currChunkHeading}) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430178>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `# Init the current chunk with blank code.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430936>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <Char Tab >
+ <Char Tab >
+ <String `$chunksByName{$currChunkHeading} = '>
+ <String `""'>
+ <String `;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430179>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430180>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `if (! defined $headingSeenBefore{$currChunkHeading}) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430937>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `# New chunk heading name seen.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430181>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <Char Tab >
+ <Char Tab >
+ <String ` push (@chunkHeadings, $currChunkHeading);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430182>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <Char Tab >
+ <Char Tab >
+ <String ` $headingSeenBefore{$currChunkHeading} = 1;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430183>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430184>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `if ($currMarkerText ne '>
+ <String `""'>
+ <String `)'>
+ <String ` {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430938>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <Char Tab >
+ <String `# cross reference between marker text and the actual heading'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430185>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <Char Tab >
+ <Char Tab >
+ <String `$markerToHeading{$currMarkerText} = $currChunkHeading;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430186>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430187>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <TextRectID 26>
+ <Char Tab >
+ <Char Tab >
+ <String `WasteMode();'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430188>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430189>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430190>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430191>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `sub '>
+ <Font
+ <FTag `'>
+ <FWeight `DemiBold'>
+ <FPostScriptName `AvantGarde-Demi'>
+ > # end of Font
+ <String `InterestingLine'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430192>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `# Does the line belong to any of the lookahead tokens? '>
+ >
+ > # end of Para
+ <Para
+ <Unique 430939>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `foreach $l (@lookFor) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430193>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `if ($line =~ /$l/) {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430194>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String ` '>
+ <Char Tab >
+ <String ` '>
+ <Char Tab >
+ <String `return $l;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430195>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <Char Tab >
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430196>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String ` }'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430197>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String ` '>
+ <Char Tab >
+ <String `return undef;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430198>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430585>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430586>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `sub '>
+ <Font
+ <FTag `'>
+ <FWeight `DemiBold'>
+ <FPostScriptName `AvantGarde-Demi'>
+ > # end of Font
+ <String `Initialize'>
+ <Font
+ <FTag `'>
+ > # end of Font
+ <String ` {'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430590>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `$debugging = 0;'>
+ <String ` # Change to 1 to get a trace.'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430591>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `$currFile = "-";'>
+ <Char Tab >
+ <Char Tab >
+ <String `# Output to stdout'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430592>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `$PARA = \xd5 ^ *<Para\xd5 ;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430593>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `$ENDOFPARA = \xd5 ^ *\> # end of Para\xd5 ;'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430594>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430595>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `#Translation table for smart quotes. '>
+ >
+ > # end of Para
+ <Para
+ <Unique 430596>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `$xlat[2] = "\\"";'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430597>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `$xlat[3] = "\\"";'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430598>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `$xlat[4] = "\\\xd5 ";'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430599>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `$xlat[5] = "\\\xd5 ";'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430600>
+ <PgfTag `perlcode'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430601>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `# Start off with a default chunk heading, in case the programmer starts off code without '>
+ >
+ > # end of Para
+ <Para
+ <Unique 430953>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `# a chunk heading'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430946>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `$currChunkHeading = " DEFAULT ";'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430602>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `$chunksByName {$currChunkHeading} = "";'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430603>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <Char Tab >
+ <String `push (@chunkHeadings, $currChunkHeading);'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430587>
+ <PgfTag `perlcode'>
+ <ParaLine
+ <String `}'>
+ >
+ > # end of Para
+ <Para
+ <Unique 430199>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 430200>
+ <PgfTag `Body'>
+ <PgfEndCond Yes >
+ <PgfCondFullPgf Yes >
+ <ParaLine
+ >
+ > # end of Para
+ <Para
+ <Unique 427886>
+ <PgfTag `Body'>
+ <ParaLine
+ >
+ > # end of Para
+> # end of TextFlow
+<TextFlow
+ <TFTag `TOC'>
+ <Notes
+ > # end of Notes
+ <Para
+ <Unique 432829>
+ <PgfTag `chunkTOC'>
+ <ParaLine
+ <TextRectID 12>
+ <String `<$paranum\>'>
+ <Char Tab >
+ <String `<$paratext\>'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432830>
+ <PgfTag `refersToTOC'>
+ <ParaLine
+ <String `<normalfont\>'>
+ <Char Tab >
+ <String `<$paratext\>'>
+ >
+ > # end of Para
+ <Para
+ <Unique 432825>
+ <Pgf
+ <PgfTag `HeadingTOC'>
+ <PgfAlignment Left >
+ <PgfFIndent 0.13883">
+ <PgfLIndent 0.13883">
+ <PgfRIndent 0.33333">
+ <PgfSpBefore 2.0 pt>
+ <PgfSpAfter 2.0 pt>
+ <PgfBlockSize 2>
+ <PgfLineSpacing Fixed >
+ <PgfNumTabs 2>
+ <TabStop
+ <TSX 0.48611">
+ <TSType Left >
+ <TSLeaderStr ` '>
+ > # end of TabStop
+ <TabStop
+ <TSX 4.0">
+ <TSType Right >
+ <TSLeaderStr `.'>
+ > # end of TabStop
+ <PgfHyphenate No >
+ > # end of Pgf
+ <ParaLine
+ >
+ > # end of Para
+> # end of TextFlow
+# End of MIFFile
diff --git a/web/fmweb/fmweb.ps b/web/fmweb/fmweb.ps
new file mode 100644
index 0000000000..c4647c4ed2
--- /dev/null
+++ b/web/fmweb/fmweb.ps
@@ -0,0 +1,4073 @@
+%!PS-Adobe-3.0
+%%BoundingBox: (atend)
+%%Pages: (atend)
+%%PageOrder: (atend)
+%%DocumentFonts: (atend)
+%%Creator: Frame 4.0
+%%DocumentData: Clean7Bit
+%%EndComments
+%%BeginProlog
+%
+% Frame ps_prolog 4.0, for use with Frame 4.0 products
+% This ps_prolog file is Copyright (c) 1986-1993 Frame Technology
+% Corporation. All rights reserved. This ps_prolog file may be
+% freely copied and distributed in conjunction with documents created
+% using FrameMaker, FrameBuilder and FrameViewer as long as this
+% copyright notice is preserved.
+%
+% Frame products normally print colors as their true color on a color printer
+% or as shades of gray, based on luminance, on a black-and white printer. The
+% following flag, if set to True, forces all non-white colors to print as pure
+% black. This has no effect on bitmap images.
+/FMPrintAllColorsAsBlack false def
+%
+% Frame products can either set their own line screens or use a printer's
+% default settings. Three flags below control this separately for no
+% separations, spot separations and process separations. If a flag
+% is true, then the default printer settings will not be changed. If it is
+% false, Frame products will use their own settings from a table based on
+% the printer's resolution.
+/FMUseDefaultNoSeparationScreen true def
+/FMUseDefaultSpotSeparationScreen true def
+/FMUseDefaultProcessSeparationScreen false def
+%
+% For any given PostScript printer resolution, Frame products have two sets of
+% screen angles and frequencies for printing process separations, which are
+% recomended by Adobe. The following variable chooses the higher frequencies
+% when set to true or the lower frequencies when set to false. This is only
+% effective if the appropriate FMUseDefault...SeparationScreen flag is false.
+/FMUseHighFrequencyScreens true def
+%
+% PostScript Level 2 printers contain an "Accurate Screens" feature which can
+% improve process separation rendering at the expense of compute time. This
+% flag is ignored by PostScript Level 1 printers.
+/FMUseAcccurateScreens true def
+%
+% The following PostScript procedure defines the spot function that Frame
+% products will use for process separations. You may un-comment-out one of
+% the alternative functions below, or use your own.
+%
+% Dot function
+/FMSpotFunction {abs exch abs 2 copy add 1 gt
+ {1 sub dup mul exch 1 sub dup mul add 1 sub }
+ {dup mul exch dup mul add 1 exch sub }ifelse } def
+%
+% Line function
+% /FMSpotFunction { pop } def
+%
+% Elipse function
+% /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add
+% sqrt 1 exch sub } def
+%
+%
+/FMversion (4.0) def
+/FMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def
+/FMPColor
+ FMLevel1 {
+ false
+ /colorimage where {pop pop true} if
+ } {
+ true
+ } ifelse
+def
+/FrameDict 400 dict def
+systemdict /errordict known not {/errordict 10 dict def
+ errordict /rangecheck {stop} put} if
+% The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk
+FrameDict /tmprangecheck errordict /rangecheck get put
+errordict /rangecheck {FrameDict /bug true put} put
+FrameDict /bug false put
+mark
+% Some PS machines read past the CR, so keep the following 3 lines together!
+currentfile 5 string readline
+00
+0000000000
+cleartomark
+errordict /rangecheck FrameDict /tmprangecheck get put
+FrameDict /bug get {
+ /readline {
+ /gstring exch def
+ /gfile exch def
+ /gindex 0 def
+ {
+ gfile read pop
+ dup 10 eq {exit} if
+ dup 13 eq {exit} if
+ gstring exch gindex exch put
+ /gindex gindex 1 add def
+ } loop
+ pop
+ gstring 0 gindex getinterval true
+ } bind def
+ } if
+/FMshowpage /showpage load def
+/FMquit /quit load def
+/FMFAILURE {
+ dup = flush
+ FMshowpage
+ /Helvetica findfont 12 scalefont setfont
+ 72 200 moveto
+ show FMshowpage
+ FMquit
+ } def
+/FMVERSION {
+ FMversion ne {
+ (Frame product version does not match ps_prolog!) FMFAILURE
+ } if
+ } def
+/FMBADEPSF {
+ (PostScript Lang. Ref. Man., 2nd Ed., H.2.4 says EPS must not call X )
+ dup dup (X) search pop exch pop exch pop length
+ 4 -1 roll
+ putinterval
+ FMFAILURE
+ } def
+/FMLOCAL {
+ FrameDict begin
+ 0 def
+ end
+ } def
+/concatprocs
+ {
+ /proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def
+ newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx
+}def
+FrameDict begin
+/FMnone 0 def
+/FMcyan 1 def
+/FMmagenta 2 def
+/FMyellow 3 def
+/FMblack 4 def
+/FMcustom 5 def
+/FrameNegative false def
+/FrameSepIs FMnone def
+/FrameSepBlack 0 def
+/FrameSepYellow 0 def
+/FrameSepMagenta 0 def
+/FrameSepCyan 0 def
+/FrameSepRed 1 def
+/FrameSepGreen 1 def
+/FrameSepBlue 1 def
+/FrameCurGray 1 def
+/FrameCurPat null def
+/FrameCurColors [ 0 0 0 1 0 0 0 ] def
+/FrameColorEpsilon .001 def
+/eqepsilon {
+ sub dup 0 lt {neg} if
+ FrameColorEpsilon le
+} bind def
+/FrameCmpColorsCMYK {
+ 2 copy 0 get exch 0 get eqepsilon {
+ 2 copy 1 get exch 1 get eqepsilon {
+ 2 copy 2 get exch 2 get eqepsilon {
+ 3 get exch 3 get eqepsilon
+ } {pop pop false} ifelse
+ }{pop pop false} ifelse
+ } {pop pop false} ifelse
+} bind def
+/FrameCmpColorsRGB {
+ 2 copy 4 get exch 0 get eqepsilon {
+ 2 copy 5 get exch 1 get eqepsilon {
+ 6 get exch 2 get eqepsilon
+ }{pop pop false} ifelse
+ } {pop pop false} ifelse
+} bind def
+/RGBtoCMYK {
+ 1 exch sub
+ 3 1 roll
+ 1 exch sub
+ 3 1 roll
+ 1 exch sub
+ 3 1 roll
+ 3 copy
+ 2 copy
+ le { pop } { exch pop } ifelse
+ 2 copy
+ le { pop } { exch pop } ifelse
+ dup dup dup
+ 6 1 roll
+ 4 1 roll
+ 7 1 roll
+ sub
+ 6 1 roll
+ sub
+ 5 1 roll
+ sub
+ 4 1 roll
+} bind def
+/CMYKtoRGB {
+ dup dup 4 -1 roll add
+ 5 1 roll 3 -1 roll add
+ 4 1 roll add
+ 1 exch sub dup 0 lt {pop 0} if 3 1 roll
+ 1 exch sub dup 0 lt {pop 0} if exch
+ 1 exch sub dup 0 lt {pop 0} if exch
+} bind def
+/FrameSepInit {
+ 1.0 RealSetgray
+} bind def
+/FrameSetSepColor {
+ /FrameSepBlue exch def
+ /FrameSepGreen exch def
+ /FrameSepRed exch def
+ /FrameSepBlack exch def
+ /FrameSepYellow exch def
+ /FrameSepMagenta exch def
+ /FrameSepCyan exch def
+ /FrameSepIs FMcustom def
+ setCurrentScreen
+} bind def
+/FrameSetCyan {
+ /FrameSepBlue 1.0 def
+ /FrameSepGreen 1.0 def
+ /FrameSepRed 0.0 def
+ /FrameSepBlack 0.0 def
+ /FrameSepYellow 0.0 def
+ /FrameSepMagenta 0.0 def
+ /FrameSepCyan 1.0 def
+ /FrameSepIs FMcyan def
+ setCurrentScreen
+} bind def
+
+/FrameSetMagenta {
+ /FrameSepBlue 1.0 def
+ /FrameSepGreen 0.0 def
+ /FrameSepRed 1.0 def
+ /FrameSepBlack 0.0 def
+ /FrameSepYellow 0.0 def
+ /FrameSepMagenta 1.0 def
+ /FrameSepCyan 0.0 def
+ /FrameSepIs FMmagenta def
+ setCurrentScreen
+} bind def
+
+/FrameSetYellow {
+ /FrameSepBlue 0.0 def
+ /FrameSepGreen 1.0 def
+ /FrameSepRed 1.0 def
+ /FrameSepBlack 0.0 def
+ /FrameSepYellow 1.0 def
+ /FrameSepMagenta 0.0 def
+ /FrameSepCyan 0.0 def
+ /FrameSepIs FMyellow def
+ setCurrentScreen
+} bind def
+
+/FrameSetBlack {
+ /FrameSepBlue 0.0 def
+ /FrameSepGreen 0.0 def
+ /FrameSepRed 0.0 def
+ /FrameSepBlack 1.0 def
+ /FrameSepYellow 0.0 def
+ /FrameSepMagenta 0.0 def
+ /FrameSepCyan 0.0 def
+ /FrameSepIs FMblack def
+ setCurrentScreen
+} bind def
+
+/FrameNoSep {
+ /FrameSepIs FMnone def
+ setCurrentScreen
+} bind def
+/FrameSetSepColors {
+ FrameDict begin
+ [ exch 1 add 1 roll ]
+ /FrameSepColors
+ exch def end
+ } bind def
+/FrameColorInSepListCMYK {
+ FrameSepColors {
+ exch dup 3 -1 roll
+ FrameCmpColorsCMYK
+ { pop true exit } if
+ } forall
+ dup true ne {pop false} if
+ } bind def
+/FrameColorInSepListRGB {
+ FrameSepColors {
+ exch dup 3 -1 roll
+ FrameCmpColorsRGB
+ { pop true exit } if
+ } forall
+ dup true ne {pop false} if
+ } bind def
+/RealSetgray /setgray load def
+/RealSetrgbcolor /setrgbcolor load def
+/RealSethsbcolor /sethsbcolor load def
+end
+/setgray {
+ FrameDict begin
+ FrameSepIs FMnone eq
+ { RealSetgray }
+ {
+ FrameSepIs FMblack eq
+ { RealSetgray }
+ { FrameSepIs FMcustom eq
+ FrameSepRed 0 eq and
+ FrameSepGreen 0 eq and
+ FrameSepBlue 0 eq and {
+ RealSetgray
+ } {
+ 1 RealSetgray pop
+ } ifelse
+ } ifelse
+ } ifelse
+ end
+} bind def
+/setrgbcolor {
+ FrameDict begin
+ FrameSepIs FMnone eq
+ { RealSetrgbcolor }
+ {
+ 3 copy [ 4 1 roll ]
+ FrameColorInSepListRGB
+ {
+ FrameSepBlue eq exch
+ FrameSepGreen eq and exch
+ FrameSepRed eq and
+ { 0 } { 1 } ifelse
+ }
+ {
+ FMPColor {
+ RealSetrgbcolor
+ currentcmykcolor
+ } {
+ RGBtoCMYK
+ } ifelse
+ FrameSepIs FMblack eq
+ {1.0 exch sub 4 1 roll pop pop pop} {
+ FrameSepIs FMyellow eq
+ {pop 1.0 exch sub 3 1 roll pop pop} {
+ FrameSepIs FMmagenta eq
+ {pop pop 1.0 exch sub exch pop } {
+ FrameSepIs FMcyan eq
+ {pop pop pop 1.0 exch sub }
+ {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse
+ } ifelse
+ RealSetgray
+ }
+ ifelse
+ end
+} bind def
+/sethsbcolor {
+ FrameDict begin
+ FrameSepIs FMnone eq
+ { RealSethsbcolor }
+ {
+ RealSethsbcolor
+ currentrgbcolor
+ setrgbcolor
+ }
+ ifelse
+ end
+} bind def
+FrameDict begin
+/setcmykcolor where {
+ pop /RealSetcmykcolor /setcmykcolor load def
+} {
+ /RealSetcmykcolor {
+ 4 1 roll
+ 3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat
+ setrgbcolor pop
+ } bind def
+} ifelse
+userdict /setcmykcolor {
+ FrameDict begin
+ FrameSepIs FMnone eq
+ { RealSetcmykcolor }
+ {
+ 4 copy [ 5 1 roll ]
+ FrameColorInSepListCMYK
+ {
+ FrameSepBlack eq exch
+ FrameSepYellow eq and exch
+ FrameSepMagenta eq and exch
+ FrameSepCyan eq and
+ { 0 } { 1 } ifelse
+ }
+ {
+ FrameSepIs FMblack eq
+ {1.0 exch sub 4 1 roll pop pop pop} {
+ FrameSepIs FMyellow eq
+ {pop 1.0 exch sub 3 1 roll pop pop} {
+ FrameSepIs FMmagenta eq
+ {pop pop 1.0 exch sub exch pop } {
+ FrameSepIs FMcyan eq
+ {pop pop pop 1.0 exch sub }
+ {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse
+ } ifelse
+ RealSetgray
+ }
+ ifelse
+ end
+ } bind put
+FMLevel1 not {
+
+ /patProcDict 5 dict dup begin
+ <0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke
+ 4 -4 moveto 12 4 lineto stroke
+ -4 4 moveto 4 12 lineto stroke} bind def
+ <0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke
+ -4 4 moveto 4 -4 lineto stroke
+ 4 12 moveto 12 4 lineto stroke} bind def
+ <8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke
+ -1 -1 moveto 9 9 lineto stroke } bind def
+ <03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke
+ 4 -4 moveto 12 4 lineto stroke
+ -4 4 moveto 4 12 lineto stroke} bind def
+ <8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke
+ -4 4 moveto 4 -4 lineto stroke
+ 4 12 moveto 12 4 lineto stroke} bind def
+ end def
+ /patDict 15 dict dup begin
+ /PatternType 1 def
+ /PaintType 2 def
+ /TilingType 3 def
+ /BBox [ 0 0 8 8 ] def
+ /XStep 8 def
+ /YStep 8 def
+ /PaintProc {
+ begin
+ patProcDict bstring known {
+ patProcDict bstring get exec
+ } {
+ 8 8 true [1 0 0 -1 0 8] bstring imagemask
+ } ifelse
+ end
+ } bind def
+ end def
+} if
+/combineColor {
+ FrameSepIs FMnone eq
+ {
+ graymode FMLevel1 or not {
+
+ [/Pattern [/DeviceCMYK]] setcolorspace
+ FrameCurColors 0 4 getinterval aload pop FrameCurPat setcolor
+ } {
+ FrameCurColors 3 get 1.0 ge {
+ FrameCurGray RealSetgray
+ } {
+ FMPColor graymode and {
+ 0 1 3 {
+ FrameCurColors exch get
+ 1 FrameCurGray sub mul
+ } for
+ RealSetcmykcolor
+ } {
+ 4 1 6 {
+ FrameCurColors exch get
+ graymode {
+ 1 exch sub 1 FrameCurGray sub mul 1 exch sub
+ } {
+ 1.0 lt {FrameCurGray} {1} ifelse
+ } ifelse
+ } for
+ RealSetrgbcolor
+ } ifelse
+ } ifelse
+ } ifelse
+ } {
+ FrameCurColors 0 4 getinterval aload
+ FrameColorInSepListCMYK {
+ FrameSepBlack eq exch
+ FrameSepYellow eq and exch
+ FrameSepMagenta eq and exch
+ FrameSepCyan eq and
+ FrameSepIs FMcustom eq and
+ { FrameCurGray } { 1 } ifelse
+ } {
+ FrameSepIs FMblack eq
+ {FrameCurGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} {
+ FrameSepIs FMyellow eq
+ {pop FrameCurGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} {
+ FrameSepIs FMmagenta eq
+ {pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub exch pop } {
+ FrameSepIs FMcyan eq
+ {pop pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub }
+ {pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse
+ } ifelse
+ graymode FMLevel1 or not {
+
+ [/Pattern [/DeviceGray]] setcolorspace
+ FrameCurPat setcolor
+ } {
+ graymode not FMLevel1 and {
+
+ dup 1 lt {pop FrameCurGray} if
+ } if
+ RealSetgray
+ } ifelse
+ } ifelse
+} bind def
+/savematrix {
+ orgmatrix currentmatrix pop
+ } bind def
+/restorematrix {
+ orgmatrix setmatrix
+ } bind def
+/dmatrix matrix def
+/dpi 72 0 dmatrix defaultmatrix dtransform
+ dup mul exch dup mul add sqrt def
+
+/freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def
+/sangle 1 0 dmatrix defaultmatrix dtransform exch atan def
+/dpiranges [ 2540 2400 1693 1270 1200 635 600 0 ] def
+/CMLowFreqs [ 100.402 94.8683 89.2289 100.402 94.8683 66.9349 63.2456 47.4342 ] def
+/YLowFreqs [ 95.25 90.0 84.65 95.25 90.0 70.5556 66.6667 50.0 ] def
+/KLowFreqs [ 89.8026 84.8528 79.8088 89.8026 84.8528 74.8355 70.7107 53.033 ] def
+/CLowAngles [ 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 71.5651 ] def
+/MLowAngles [ 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 18.4349 ] def
+/YLowTDot [ true true false true true false false false ] def
+/CMHighFreqs [ 133.87 126.491 133.843 108.503 102.523 100.402 94.8683 63.2456 ] def
+/YHighFreqs [ 127.0 120.0 126.975 115.455 109.091 95.25 90.0 60.0 ] def
+/KHighFreqs [ 119.737 113.137 119.713 128.289 121.218 89.8026 84.8528 63.6395 ] def
+/CHighAngles [ 71.5651 71.5651 71.5651 70.0169 70.0169 71.5651 71.5651 71.5651 ] def
+/MHighAngles [ 18.4349 18.4349 18.4349 19.9831 19.9831 18.4349 18.4349 18.4349 ] def
+/YHighTDot [ false false true false false true true false ] def
+/PatFreq [ 10.5833 10.0 9.4055 10.5833 10.0 10.5833 10.0 9.375 ] def
+/screenIndex {
+ 0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for
+} bind def
+/getCyanScreen {
+ FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse
+ screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load
+} bind def
+/getMagentaScreen {
+ FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse
+ screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load
+} bind def
+/getYellowScreen {
+ FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse
+ screenIndex dup 3 1 roll get 3 1 roll get { 3 div
+ {2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat
+ FMSpotFunction } } {/FMSpotFunction load } ifelse
+ 0.0 exch
+} bind def
+/getBlackScreen {
+ FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse
+ screenIndex get 45.0 /FMSpotFunction load
+} bind def
+/getSpotScreen {
+ getBlackScreen
+} bind def
+/getCompositeScreen {
+ getBlackScreen
+} bind def
+/FMSetScreen
+ FMLevel1 { /setscreen load
+ }{ {
+ 8 dict begin
+ /HalftoneType 1 def
+ /SpotFunction exch def
+ /Angle exch def
+ /Frequency exch def
+ /AccurateScreens FMUseAcccurateScreens def
+ currentdict end sethalftone
+ } bind } ifelse
+def
+/setDefaultScreen {
+ FMPColor {
+ orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer
+ }
+ {
+ orgxfer cvx settransfer
+ } ifelse
+ orgfreq organgle orgproc cvx setscreen
+} bind def
+/setCurrentScreen {
+ FrameSepIs FMnone eq {
+ FMUseDefaultNoSeparationScreen {
+ setDefaultScreen
+ } {
+ getCompositeScreen FMSetScreen
+ } ifelse
+ } {
+ FrameSepIs FMcustom eq {
+ FMUseDefaultSpotSeparationScreen {
+ setDefaultScreen
+ } {
+ getSpotScreen FMSetScreen
+ } ifelse
+ } {
+ FMUseDefaultProcessSeparationScreen {
+ setDefaultScreen
+ } {
+ FrameSepIs FMcyan eq {
+ getCyanScreen FMSetScreen
+ } {
+ FrameSepIs FMmagenta eq {
+ getMagentaScreen FMSetScreen
+ } {
+ FrameSepIs FMyellow eq {
+ getYellowScreen FMSetScreen
+ } {
+ getBlackScreen FMSetScreen
+ } ifelse
+ } ifelse
+ } ifelse
+ } ifelse
+ } ifelse
+ } ifelse
+} bind def
+end
+ /gstring FMLOCAL
+ /gfile FMLOCAL
+ /gindex FMLOCAL
+ /orgrxfer FMLOCAL
+ /orggxfer FMLOCAL
+ /orgbxfer FMLOCAL
+ /orgxfer FMLOCAL
+ /orgproc FMLOCAL
+ /orgrproc FMLOCAL
+ /orggproc FMLOCAL
+ /orgbproc FMLOCAL
+ /organgle FMLOCAL
+ /orgrangle FMLOCAL
+ /orggangle FMLOCAL
+ /orgbangle FMLOCAL
+ /orgfreq FMLOCAL
+ /orgrfreq FMLOCAL
+ /orggfreq FMLOCAL
+ /orgbfreq FMLOCAL
+ /yscale FMLOCAL
+ /xscale FMLOCAL
+ /edown FMLOCAL
+ /manualfeed FMLOCAL
+ /paperheight FMLOCAL
+ /paperwidth FMLOCAL
+/FMDOCUMENT {
+ array /FMfonts exch def
+ /#copies exch def
+ FrameDict begin
+ 0 ne /manualfeed exch def
+ /paperheight exch def
+ /paperwidth exch def
+ 0 ne /FrameNegative exch def
+ 0 ne /edown exch def
+ /yscale exch def
+ /xscale exch def
+ FMLevel1 {
+ manualfeed {setmanualfeed} if
+ /FMdicttop countdictstack 1 add def
+ /FMoptop count def
+ setpapername
+ manualfeed {true} {papersize} ifelse
+ {manualpapersize} {false} ifelse
+ {desperatepapersize} {false} ifelse
+ { (Can't select requested paper size for Frame print job!) FMFAILURE } if
+ count -1 FMoptop {pop pop} for
+ countdictstack -1 FMdicttop {pop end} for
+ }
+ {{1 dict dup /PageSize [paperwidth paperheight]put pop}stopped
+ { (Can't select requested paper size for Frame print job!) FMFAILURE } if
+ {1 dict dup /ManualFeed manualfeed put setpagedevice } stopped pop }
+ ifelse
+
+ FMPColor {
+ currentcolorscreen
+ cvlit /orgproc exch def
+ /organgle exch def
+ /orgfreq exch def
+ cvlit /orgbproc exch def
+ /orgbangle exch def
+ /orgbfreq exch def
+ cvlit /orggproc exch def
+ /orggangle exch def
+ /orggfreq exch def
+ cvlit /orgrproc exch def
+ /orgrangle exch def
+ /orgrfreq exch def
+ currentcolortransfer
+ FrameNegative {
+ 1 1 4 {
+ pop { 1 exch sub } concatprocs 4 1 roll
+ } for
+ 4 copy
+ setcolortransfer
+ } if
+ cvlit /orgxfer exch def
+ cvlit /orgbxfer exch def
+ cvlit /orggxfer exch def
+ cvlit /orgrxfer exch def
+ } {
+ currentscreen
+ cvlit /orgproc exch def
+ /organgle exch def
+ /orgfreq exch def
+
+ currenttransfer
+ FrameNegative {
+ { 1 exch sub } concatprocs
+ dup settransfer
+ } if
+ cvlit /orgxfer exch def
+ } ifelse
+ end
+} def
+/pagesave FMLOCAL
+/orgmatrix FMLOCAL
+/landscape FMLOCAL
+/pwid FMLOCAL
+/FMBEGINPAGE {
+ FrameDict begin
+ /pagesave save def
+ 3.86 setmiterlimit
+ /landscape exch 0 ne def
+ landscape {
+ 90 rotate 0 exch dup /pwid exch def neg translate pop
+ }{
+ pop /pwid exch def
+ } ifelse
+ edown { [-1 0 0 1 pwid 0] concat } if
+ 0 0 moveto paperwidth 0 lineto paperwidth paperheight lineto
+ 0 paperheight lineto 0 0 lineto 1 setgray fill
+ xscale yscale scale
+ /orgmatrix matrix def
+ gsave
+} def
+/FMENDPAGE {
+ grestore
+ pagesave restore
+ end
+ showpage
+ } def
+/FMFONTDEFINE {
+ FrameDict begin
+ findfont
+ ReEncode
+ 1 index exch
+ definefont
+ FMfonts 3 1 roll
+ put
+ end
+ } def
+/FMFILLS {
+ FrameDict begin dup
+ array /fillvals exch def
+ dict /patCache exch def
+ end
+ } def
+/FMFILL {
+ FrameDict begin
+ fillvals 3 1 roll put
+ end
+ } def
+/FMNORMALIZEGRAPHICS {
+ newpath
+ 0.0 0.0 moveto
+ 1 setlinewidth
+ 0 setlinecap
+ 0 0 0 sethsbcolor
+ 0 setgray
+ } bind def
+ /fx FMLOCAL
+ /fy FMLOCAL
+ /fh FMLOCAL
+ /fw FMLOCAL
+ /llx FMLOCAL
+ /lly FMLOCAL
+ /urx FMLOCAL
+ /ury FMLOCAL
+/FMBEGINEPSF {
+ end
+ /FMEPSF save def
+ /showpage {} def
+% See Adobe's "PostScript Language Reference Manual, 2nd Edition", page 714.
+% "...the following operators MUST NOT be used in an EPS file:" (emphasis ours)
+ /banddevice {(banddevice) FMBADEPSF} def
+ /clear {(clear) FMBADEPSF} def
+ /cleardictstack {(cleardictstack) FMBADEPSF} def
+ /copypage {(copypage) FMBADEPSF} def
+ /erasepage {(erasepage) FMBADEPSF} def
+ /exitserver {(exitserver) FMBADEPSF} def
+ /framedevice {(framedevice) FMBADEPSF} def
+ /grestoreall {(grestoreall) FMBADEPSF} def
+ /initclip {(initclip) FMBADEPSF} def
+ /initgraphics {(initgraphics) FMBADEPSF} def
+ /initmatrix {(initmatrix) FMBADEPSF} def
+ /quit {(quit) FMBADEPSF} def
+ /renderbands {(renderbands) FMBADEPSF} def
+ /setglobal {(setglobal) FMBADEPSF} def
+ /setpagedevice {(setpagedevice) FMBADEPSF} def
+ /setshared {(setshared) FMBADEPSF} def
+ /startjob {(startjob) FMBADEPSF} def
+ /lettertray {(lettertray) FMBADEPSF} def
+ /letter {(letter) FMBADEPSF} def
+ /lettersmall {(lettersmall) FMBADEPSF} def
+ /11x17tray {(11x17tray) FMBADEPSF} def
+ /11x17 {(11x17) FMBADEPSF} def
+ /ledgertray {(ledgertray) FMBADEPSF} def
+ /ledger {(ledger) FMBADEPSF} def
+ /legaltray {(legaltray) FMBADEPSF} def
+ /legal {(legal) FMBADEPSF} def
+ /statementtray {(statementtray) FMBADEPSF} def
+ /statement {(statement) FMBADEPSF} def
+ /executivetray {(executivetray) FMBADEPSF} def
+ /executive {(executive) FMBADEPSF} def
+ /a3tray {(a3tray) FMBADEPSF} def
+ /a3 {(a3) FMBADEPSF} def
+ /a4tray {(a4tray) FMBADEPSF} def
+ /a4 {(a4) FMBADEPSF} def
+ /a4small {(a4small) FMBADEPSF} def
+ /b4tray {(b4tray) FMBADEPSF} def
+ /b4 {(b4) FMBADEPSF} def
+ /b5tray {(b5tray) FMBADEPSF} def
+ /b5 {(b5) FMBADEPSF} def
+ FMNORMALIZEGRAPHICS
+ [/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall
+ fx fw 2 div add fy fh 2 div add translate
+ rotate
+ fw 2 div neg fh 2 div neg translate
+ fw urx llx sub div fh ury lly sub div scale
+ llx neg lly neg translate
+ /FMdicttop countdictstack 1 add def
+ /FMoptop count def
+ } bind def
+/FMENDEPSF {
+ count -1 FMoptop {pop pop} for
+ countdictstack -1 FMdicttop {pop end} for
+ FMEPSF restore
+ FrameDict begin
+ } bind def
+FrameDict begin
+/setmanualfeed {
+%%BeginFeature *ManualFeed True
+ statusdict /manualfeed true put
+%%EndFeature
+ } bind def
+/max {2 copy lt {exch} if pop} bind def
+/min {2 copy gt {exch} if pop} bind def
+/inch {72 mul} def
+/pagedimen {
+ paperheight sub abs 16 lt exch
+ paperwidth sub abs 16 lt and
+ {/papername exch def} {pop} ifelse
+ } bind def
+ /papersizedict FMLOCAL
+/setpapername {
+ /papersizedict 14 dict def
+ papersizedict begin
+ /papername /unknown def
+ /Letter 8.5 inch 11.0 inch pagedimen
+ /LetterSmall 7.68 inch 10.16 inch pagedimen
+ /Tabloid 11.0 inch 17.0 inch pagedimen
+ /Ledger 17.0 inch 11.0 inch pagedimen
+ /Legal 8.5 inch 14.0 inch pagedimen
+ /Statement 5.5 inch 8.5 inch pagedimen
+ /Executive 7.5 inch 10.0 inch pagedimen
+ /A3 11.69 inch 16.5 inch pagedimen
+ /A4 8.26 inch 11.69 inch pagedimen
+ /A4Small 7.47 inch 10.85 inch pagedimen
+ /B4 10.125 inch 14.33 inch pagedimen
+ /B5 7.16 inch 10.125 inch pagedimen
+ end
+ } bind def
+/papersize {
+ papersizedict begin
+ /Letter {lettertray letter} def
+ /LetterSmall {lettertray lettersmall} def
+ /Tabloid {11x17tray 11x17} def
+ /Ledger {ledgertray ledger} def
+ /Legal {legaltray legal} def
+ /Statement {statementtray statement} def
+ /Executive {executivetray executive} def
+ /A3 {a3tray a3} def
+ /A4 {a4tray a4} def
+ /A4Small {a4tray a4small} def
+ /B4 {b4tray b4} def
+ /B5 {b5tray b5} def
+ /unknown {unknown} def
+ papersizedict dup papername known {papername} {/unknown} ifelse get
+ end
+ statusdict begin stopped end
+ } bind def
+/manualpapersize {
+ papersizedict begin
+ /Letter {letter} def
+ /LetterSmall {lettersmall} def
+ /Tabloid {11x17} def
+ /Ledger {ledger} def
+ /Legal {legal} def
+ /Statement {statement} def
+ /Executive {executive} def
+ /A3 {a3} def
+ /A4 {a4} def
+ /A4Small {a4small} def
+ /B4 {b4} def
+ /B5 {b5} def
+ /unknown {unknown} def
+ papersizedict dup papername known {papername} {/unknown} ifelse get
+ end
+ stopped
+ } bind def
+/desperatepapersize {
+ statusdict /setpageparams known
+ {
+ paperwidth paperheight 0 1
+ statusdict begin
+ {setpageparams} stopped
+ end
+ } {true} ifelse
+ } bind def
+/DiacriticEncoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl
+/numbersign /dollar /percent /ampersand /quotesingle /parenleft
+/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
+/two /three /four /five /six /seven /eight /nine /colon /semicolon
+/less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
+/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
+/bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h
+/i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar
+/braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute
+/Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis
+/atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis
+/iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve
+/ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex
+/udieresis /dagger /.notdef /cent /sterling /section /bullet
+/paragraph /germandbls /registered /copyright /trademark /acute
+/dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef
+/yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown
+/exclamdown /logicalnot /.notdef /florin /.notdef /.notdef
+/guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde
+/Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright
+/quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis
+/fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl
+/periodcentered /quotesinglbase /quotedblbase /perthousand
+/Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute
+/Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve
+/Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron
+/breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
+] def
+/ReEncode {
+ dup
+ length
+ dict begin
+ {
+ 1 index /FID ne
+ {def}
+ {pop pop} ifelse
+ } forall
+ 0 eq {/Encoding DiacriticEncoding def} if
+ currentdict
+ end
+ } bind def
+FMPColor
+
+ {
+ /BEGINBITMAPCOLOR {
+ BITMAPCOLOR} def
+ /BEGINBITMAPCOLORc {
+ BITMAPCOLORc} def
+ /BEGINBITMAPTRUECOLOR {
+ BITMAPTRUECOLOR } def
+ /BEGINBITMAPTRUECOLORc {
+ BITMAPTRUECOLORc } def
+ }
+
+ {
+ /BEGINBITMAPCOLOR {
+ BITMAPGRAY} def
+ /BEGINBITMAPCOLORc {
+ BITMAPGRAYc} def
+ /BEGINBITMAPTRUECOLOR {
+ BITMAPTRUEGRAY } def
+ /BEGINBITMAPTRUECOLORc {
+ BITMAPTRUEGRAYc } def
+ }
+ifelse
+/K {
+ FMPrintAllColorsAsBlack {
+ dup 1 eq 2 index 1 eq and 3 index 1 eq and not
+ {7 {pop} repeat 0 0 0 1 0 0 0} if
+ } if
+ FrameCurColors astore
+ pop combineColor
+} bind def
+/graymode true def
+ /bwidth FMLOCAL
+ /bpside FMLOCAL
+ /bstring FMLOCAL
+ /onbits FMLOCAL
+ /offbits FMLOCAL
+ /xindex FMLOCAL
+ /yindex FMLOCAL
+ /x FMLOCAL
+ /y FMLOCAL
+/setPatternMode {
+ FMLevel1 {
+ /bwidth exch def
+ /bpside exch def
+ /bstring exch def
+ /onbits 0 def /offbits 0 def
+ freq sangle landscape {90 add} if
+ {/y exch def
+ /x exch def
+ /xindex x 1 add 2 div bpside mul cvi def
+ /yindex y 1 add 2 div bpside mul cvi def
+ bstring yindex bwidth mul xindex 8 idiv add get
+ 1 7 xindex 8 mod sub bitshift and 0 ne FrameNegative {not} if
+ {/onbits onbits 1 add def 1}
+ {/offbits offbits 1 add def 0}
+ ifelse
+ }
+ setscreen
+ offbits offbits onbits add div FrameNegative {1.0 exch sub} if
+ /FrameCurGray exch def
+ } {
+ pop pop
+ dup patCache exch known {
+ patCache exch get
+ } {
+ dup
+ patDict /bstring 3 -1 roll put
+ patDict
+ 9 PatFreq screenIndex get div dup matrix scale
+ makepattern
+ dup
+ patCache 4 -1 roll 3 -1 roll put
+ } ifelse
+ /FrameCurGray 0 def
+ /FrameCurPat exch def
+ } ifelse
+ /graymode false def
+ combineColor
+} bind def
+/setGrayScaleMode {
+ graymode not {
+ /graymode true def
+ FMLevel1 {
+ setCurrentScreen
+ } if
+ } if
+ /FrameCurGray exch def
+ combineColor
+} bind def
+/normalize {
+ transform round exch round exch itransform
+ } bind def
+/dnormalize {
+ dtransform round exch round exch idtransform
+ } bind def
+/lnormalize {
+ 0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop
+ } bind def
+/H {
+ lnormalize setlinewidth
+ } bind def
+/Z {
+ setlinecap
+ } bind def
+
+/PFill {
+ graymode FMLevel1 or not {
+ gsave 1 setgray eofill grestore
+ } if
+} bind def
+/PStroke {
+ graymode FMLevel1 or not {
+ gsave 1 setgray stroke grestore
+ } if
+ stroke
+} bind def
+ /fillvals FMLOCAL
+/X {
+ fillvals exch get
+ dup type /stringtype eq
+ {8 1 setPatternMode}
+ {setGrayScaleMode}
+ ifelse
+ } bind def
+/V {
+ PFill gsave eofill grestore
+ } bind def
+/Vclip {
+ clip
+ } bind def
+/Vstrk {
+ currentlinewidth exch setlinewidth PStroke setlinewidth
+ } bind def
+/N {
+ PStroke
+ } bind def
+/Nclip {
+ strokepath clip newpath
+ } bind def
+/Nstrk {
+ currentlinewidth exch setlinewidth PStroke setlinewidth
+ } bind def
+/M {newpath moveto} bind def
+/E {lineto} bind def
+/D {curveto} bind def
+/O {closepath} bind def
+ /n FMLOCAL
+/L {
+ /n exch def
+ newpath
+ normalize
+ moveto
+ 2 1 n {pop normalize lineto} for
+ } bind def
+/Y {
+ L
+ closepath
+ } bind def
+ /x1 FMLOCAL
+ /x2 FMLOCAL
+ /y1 FMLOCAL
+ /y2 FMLOCAL
+/R {
+ /y2 exch def
+ /x2 exch def
+ /y1 exch def
+ /x1 exch def
+ x1 y1
+ x2 y1
+ x2 y2
+ x1 y2
+ 4 Y
+ } bind def
+ /rad FMLOCAL
+/rarc
+ {rad
+ arcto
+ } bind def
+/RR {
+ /rad exch def
+ normalize
+ /y2 exch def
+ /x2 exch def
+ normalize
+ /y1 exch def
+ /x1 exch def
+ mark
+ newpath
+ {
+ x1 y1 rad add moveto
+ x1 y2 x2 y2 rarc
+ x2 y2 x2 y1 rarc
+ x2 y1 x1 y1 rarc
+ x1 y1 x1 y2 rarc
+ closepath
+ } stopped {x1 y1 x2 y2 R} if
+ cleartomark
+ } bind def
+/RRR {
+ /rad exch def
+ normalize /y4 exch def /x4 exch def
+ normalize /y3 exch def /x3 exch def
+ normalize /y2 exch def /x2 exch def
+ normalize /y1 exch def /x1 exch def
+ newpath
+ normalize moveto
+ mark
+ {
+ x2 y2 x3 y3 rarc
+ x3 y3 x4 y4 rarc
+ x4 y4 x1 y1 rarc
+ x1 y1 x2 y2 rarc
+ closepath
+ } stopped
+ {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if
+ cleartomark
+ } bind def
+/C {
+ grestore
+ gsave
+ R
+ clip
+ setCurrentScreen
+} bind def
+/CP {
+ grestore
+ gsave
+ Y
+ clip
+ setCurrentScreen
+} bind def
+ /FMpointsize FMLOCAL
+/F {
+ FMfonts exch get
+ FMpointsize scalefont
+ setfont
+ } bind def
+/Q {
+ /FMpointsize exch def
+ F
+ } bind def
+/T {
+ moveto show
+ } bind def
+/RF {
+ rotate
+ 0 ne {-1 1 scale} if
+ } bind def
+/TF {
+ gsave
+ moveto
+ RF
+ show
+ grestore
+ } bind def
+/P {
+ moveto
+ 0 32 3 2 roll widthshow
+ } bind def
+/PF {
+ gsave
+ moveto
+ RF
+ 0 32 3 2 roll widthshow
+ grestore
+ } bind def
+/S {
+ moveto
+ 0 exch ashow
+ } bind def
+/SF {
+ gsave
+ moveto
+ RF
+ 0 exch ashow
+ grestore
+ } bind def
+/B {
+ moveto
+ 0 32 4 2 roll 0 exch awidthshow
+ } bind def
+/BF {
+ gsave
+ moveto
+ RF
+ 0 32 4 2 roll 0 exch awidthshow
+ grestore
+ } bind def
+/G {
+ gsave
+ newpath
+ normalize translate 0.0 0.0 moveto
+ dnormalize scale
+ 0.0 0.0 1.0 5 3 roll arc
+ closepath
+ PFill fill
+ grestore
+ } bind def
+/Gstrk {
+ savematrix
+ newpath
+ 2 index 2 div add exch 3 index 2 div sub exch
+ normalize 2 index 2 div sub exch 3 index 2 div add exch
+ translate
+ scale
+ 0.0 0.0 1.0 5 3 roll arc
+ restorematrix
+ currentlinewidth exch setlinewidth PStroke setlinewidth
+ } bind def
+/Gclip {
+ newpath
+ savematrix
+ normalize translate 0.0 0.0 moveto
+ dnormalize scale
+ 0.0 0.0 1.0 5 3 roll arc
+ closepath
+ clip newpath
+ restorematrix
+ } bind def
+/GG {
+ gsave
+ newpath
+ normalize translate 0.0 0.0 moveto
+ rotate
+ dnormalize scale
+ 0.0 0.0 1.0 5 3 roll arc
+ closepath
+ PFill
+ fill
+ grestore
+ } bind def
+/GGclip {
+ savematrix
+ newpath
+ normalize translate 0.0 0.0 moveto
+ rotate
+ dnormalize scale
+ 0.0 0.0 1.0 5 3 roll arc
+ closepath
+ clip newpath
+ restorematrix
+ } bind def
+/GGstrk {
+ savematrix
+ newpath
+ normalize translate 0.0 0.0 moveto
+ rotate
+ dnormalize scale
+ 0.0 0.0 1.0 5 3 roll arc
+ closepath
+ restorematrix
+ currentlinewidth exch setlinewidth PStroke setlinewidth
+ } bind def
+/A {
+ gsave
+ savematrix
+ newpath
+ 2 index 2 div add exch 3 index 2 div sub exch
+ normalize 2 index 2 div sub exch 3 index 2 div add exch
+ translate
+ scale
+ 0.0 0.0 1.0 5 3 roll arc
+ restorematrix
+ PStroke
+ grestore
+ } bind def
+/Aclip {
+ newpath
+ savematrix
+ normalize translate 0.0 0.0 moveto
+ dnormalize scale
+ 0.0 0.0 1.0 5 3 roll arc
+ closepath
+ strokepath clip newpath
+ restorematrix
+} bind def
+/Astrk {
+ Gstrk
+} bind def
+/AA {
+ gsave
+ savematrix
+ newpath
+
+ 3 index 2 div add exch 4 index 2 div sub exch
+
+ normalize 3 index 2 div sub exch 4 index 2 div add exch
+ translate
+ rotate
+ scale
+ 0.0 0.0 1.0 5 3 roll arc
+ restorematrix
+ PStroke
+ grestore
+ } bind def
+/AAclip {
+ savematrix
+ newpath
+ normalize translate 0.0 0.0 moveto
+ rotate
+ dnormalize scale
+ 0.0 0.0 1.0 5 3 roll arc
+ closepath
+ strokepath clip newpath
+ restorematrix
+} bind def
+/AAstrk {
+ GGstrk
+} bind def
+ /x FMLOCAL
+ /y FMLOCAL
+ /w FMLOCAL
+ /h FMLOCAL
+ /xx FMLOCAL
+ /yy FMLOCAL
+ /ww FMLOCAL
+ /hh FMLOCAL
+ /FMsaveobject FMLOCAL
+ /FMoptop FMLOCAL
+ /FMdicttop FMLOCAL
+/BEGINPRINTCODE {
+ /FMdicttop countdictstack 1 add def
+ /FMoptop count 7 sub def
+ /FMsaveobject save def
+ userdict begin
+ /showpage {} def
+ FMNORMALIZEGRAPHICS
+ 3 index neg 3 index neg translate
+ } bind def
+/ENDPRINTCODE {
+ count -1 FMoptop {pop pop} for
+ countdictstack -1 FMdicttop {pop end} for
+ FMsaveobject restore
+ } bind def
+/gn {
+ 0
+ { 46 mul
+ cf read pop
+ 32 sub
+ dup 46 lt {exit} if
+ 46 sub add
+ } loop
+ add
+ } bind def
+ /str FMLOCAL
+/cfs {
+ /str sl string def
+ 0 1 sl 1 sub {str exch val put} for
+ str def
+ } bind def
+/ic [
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
+ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
+ 0
+ {0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx}
+ {10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx}
+ {19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12}
+ {13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh}
+ {4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh}
+ {13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl}
+ {7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl}
+ {0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl}
+ {10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl}
+ ] def
+ /sl FMLOCAL
+ /val FMLOCAL
+ /ws FMLOCAL
+ /im FMLOCAL
+ /bs FMLOCAL
+ /cs FMLOCAL
+ /len FMLOCAL
+ /pos FMLOCAL
+/ms {
+ /sl exch def
+ /val 255 def
+ /ws cfs
+ /im cfs
+ /val 0 def
+ /bs cfs
+ /cs cfs
+ } bind def
+400 ms
+/ip {
+ is
+ 0
+ cf cs readline pop
+ { ic exch get exec
+ add
+ } forall
+ pop
+
+ } bind def
+/rip {
+
+
+ bis ris copy pop
+ is
+ 0
+ cf cs readline pop
+ { ic exch get exec
+ add
+ } forall
+ pop pop
+ ris gis copy pop
+ dup is exch
+
+ cf cs readline pop
+ { ic exch get exec
+ add
+ } forall
+ pop pop
+ gis bis copy pop
+ dup add is exch
+
+ cf cs readline pop
+ { ic exch get exec
+ add
+ } forall
+ pop
+
+ } bind def
+/wh {
+ /len exch def
+ /pos exch def
+ ws 0 len getinterval im pos len getinterval copy pop
+ pos len
+ } bind def
+/bl {
+ /len exch def
+ /pos exch def
+ bs 0 len getinterval im pos len getinterval copy pop
+ pos len
+ } bind def
+/s1 1 string def
+/fl {
+ /len exch def
+ /pos exch def
+ /val cf s1 readhexstring pop 0 get def
+ pos 1 pos len add 1 sub {im exch val put} for
+ pos len
+ } bind def
+/hx {
+ 3 copy getinterval
+ cf exch readhexstring pop pop
+ } bind def
+ /h FMLOCAL
+ /w FMLOCAL
+ /d FMLOCAL
+ /lb FMLOCAL
+ /bitmapsave FMLOCAL
+ /is FMLOCAL
+ /cf FMLOCAL
+/wbytes {
+ dup dup
+ 24 eq { pop pop 3 mul }
+ { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse
+ } bind def
+/BEGINBITMAPBWc {
+ 1 {} COMMONBITMAPc
+ } bind def
+/BEGINBITMAPGRAYc {
+ 8 {} COMMONBITMAPc
+ } bind def
+/BEGINBITMAP2BITc {
+ 2 {} COMMONBITMAPc
+ } bind def
+/COMMONBITMAPc {
+
+ /r exch def
+ /d exch def
+ gsave
+
+ 3 index 2 div add exch
+ 4 index 2 div add exch
+ translate
+ rotate
+ 1 index 2 div neg
+ 1 index 2 div neg
+ translate
+ scale
+ /h exch def /w exch def
+ /lb w d wbytes def
+ sl lb lt {lb ms} if
+ /bitmapsave save def
+ r
+ /is im 0 lb getinterval def
+ ws 0 lb getinterval is copy pop
+ /cf currentfile def
+ w h d [w 0 0 h neg 0 h]
+ {ip} image
+ bitmapsave restore
+ grestore
+ } bind def
+/BEGINBITMAPBW {
+ 1 {} COMMONBITMAP
+ } bind def
+/BEGINBITMAPGRAY {
+ 8 {} COMMONBITMAP
+ } bind def
+/BEGINBITMAP2BIT {
+ 2 {} COMMONBITMAP
+ } bind def
+/COMMONBITMAP {
+ /r exch def
+ /d exch def
+ gsave
+
+ 3 index 2 div add exch
+ 4 index 2 div add exch
+ translate
+ rotate
+ 1 index 2 div neg
+ 1 index 2 div neg
+ translate
+ scale
+ /h exch def /w exch def
+ /bitmapsave save def
+ r
+ /is w d wbytes string def
+ /cf currentfile def
+ w h d [w 0 0 h neg 0 h]
+ {cf is readhexstring pop} image
+ bitmapsave restore
+ grestore
+ } bind def
+/ngrayt 256 array def
+/nredt 256 array def
+/nbluet 256 array def
+/ngreent 256 array def
+ /gryt FMLOCAL
+ /blut FMLOCAL
+ /grnt FMLOCAL
+ /redt FMLOCAL
+ /indx FMLOCAL
+ /cynu FMLOCAL
+ /magu FMLOCAL
+ /yelu FMLOCAL
+ /k FMLOCAL
+ /u FMLOCAL
+FMLevel1 {
+/colorsetup {
+ currentcolortransfer
+ /gryt exch def
+ /blut exch def
+ /grnt exch def
+ /redt exch def
+ 0 1 255 {
+ /indx exch def
+ /cynu 1 red indx get 255 div sub def
+ /magu 1 green indx get 255 div sub def
+ /yelu 1 blue indx get 255 div sub def
+ /k cynu magu min yelu min def
+ /u k currentundercolorremoval exec def
+% /u 0 def
+ nredt indx 1 0 cynu u sub max sub redt exec put
+ ngreent indx 1 0 magu u sub max sub grnt exec put
+ nbluet indx 1 0 yelu u sub max sub blut exec put
+ ngrayt indx 1 k currentblackgeneration exec sub gryt exec put
+ } for
+ {255 mul cvi nredt exch get}
+ {255 mul cvi ngreent exch get}
+ {255 mul cvi nbluet exch get}
+ {255 mul cvi ngrayt exch get}
+ setcolortransfer
+ {pop 0} setundercolorremoval
+ {} setblackgeneration
+ } bind def
+}
+{
+/colorSetup2 {
+ [ /Indexed /DeviceRGB 255
+ {dup red exch get 255 div
+ exch dup green exch get 255 div
+ exch blue exch get 255 div}
+ ] setcolorspace
+} bind def
+} ifelse
+ /tran FMLOCAL
+/fakecolorsetup {
+ /tran 256 string def
+ 0 1 255 {/indx exch def
+ tran indx
+ red indx get 77 mul
+ green indx get 151 mul
+ blue indx get 28 mul
+ add add 256 idiv put} for
+ currenttransfer
+ {255 mul cvi tran exch get 255.0 div}
+ exch concatprocs settransfer
+} bind def
+/BITMAPCOLOR {
+ /d 8 def
+ gsave
+
+ 3 index 2 div add exch
+ 4 index 2 div add exch
+ translate
+ rotate
+ 1 index 2 div neg
+ 1 index 2 div neg
+ translate
+ scale
+ /h exch def /w exch def
+ /bitmapsave save def
+ FMLevel1 {
+ colorsetup
+ /is w d wbytes string def
+ /cf currentfile def
+ w h d [w 0 0 h neg 0 h]
+ {cf is readhexstring pop} {is} {is} true 3 colorimage
+ } {
+ colorSetup2
+ /is w d wbytes string def
+ /cf currentfile def
+ 7 dict dup begin
+ /ImageType 1 def
+ /Width w def
+ /Height h def
+ /ImageMatrix [w 0 0 h neg 0 h] def
+ /DataSource {cf is readhexstring pop} bind def
+ /BitsPerComponent d def
+ /Decode [0 255] def
+ end image
+ } ifelse
+ bitmapsave restore
+ grestore
+ } bind def
+/BITMAPCOLORc {
+ /d 8 def
+ gsave
+
+ 3 index 2 div add exch
+ 4 index 2 div add exch
+ translate
+ rotate
+ 1 index 2 div neg
+ 1 index 2 div neg
+ translate
+ scale
+ /h exch def /w exch def
+ /lb w d wbytes def
+ sl lb lt {lb ms} if
+ /bitmapsave save def
+ FMLevel1 {
+ colorsetup
+ /is im 0 lb getinterval def
+ ws 0 lb getinterval is copy pop
+ /cf currentfile def
+ w h d [w 0 0 h neg 0 h]
+ {ip} {is} {is} true 3 colorimage
+ } {
+ colorSetup2
+ /is im 0 lb getinterval def
+ ws 0 lb getinterval is copy pop
+ /cf currentfile def
+ 7 dict dup begin
+ /ImageType 1 def
+ /Width w def
+ /Height h def
+ /ImageMatrix [w 0 0 h neg 0 h] def
+ /DataSource {ip} bind def
+ /BitsPerComponent d def
+ /Decode [0 255] def
+ end image
+ } ifelse
+ bitmapsave restore
+ grestore
+ } bind def
+/BITMAPTRUECOLORc {
+ /d 24 def
+ gsave
+
+ 3 index 2 div add exch
+ 4 index 2 div add exch
+ translate
+ rotate
+ 1 index 2 div neg
+ 1 index 2 div neg
+ translate
+ scale
+ /h exch def /w exch def
+ /lb w d wbytes def
+ sl lb lt {lb ms} if
+ /bitmapsave save def
+
+ /is im 0 lb getinterval def
+ /ris im 0 w getinterval def
+ /gis im w w getinterval def
+ /bis im w 2 mul w getinterval def
+
+ ws 0 lb getinterval is copy pop
+ /cf currentfile def
+ w h 8 [w 0 0 h neg 0 h]
+ {w rip pop ris} {gis} {bis} true 3 colorimage
+ bitmapsave restore
+ grestore
+ } bind def
+/BITMAPTRUECOLOR {
+ gsave
+
+ 3 index 2 div add exch
+ 4 index 2 div add exch
+ translate
+ rotate
+ 1 index 2 div neg
+ 1 index 2 div neg
+ translate
+ scale
+ /h exch def /w exch def
+ /bitmapsave save def
+ /is w string def
+ /gis w string def
+ /bis w string def
+ /cf currentfile def
+ w h 8 [w 0 0 h neg 0 h]
+ { cf is readhexstring pop }
+ { cf gis readhexstring pop }
+ { cf bis readhexstring pop }
+ true 3 colorimage
+ bitmapsave restore
+ grestore
+ } bind def
+/BITMAPTRUEGRAYc {
+ /d 24 def
+ gsave
+
+ 3 index 2 div add exch
+ 4 index 2 div add exch
+ translate
+ rotate
+ 1 index 2 div neg
+ 1 index 2 div neg
+ translate
+ scale
+ /h exch def /w exch def
+ /lb w d wbytes def
+ sl lb lt {lb ms} if
+ /bitmapsave save def
+
+ /is im 0 lb getinterval def
+ /ris im 0 w getinterval def
+ /gis im w w getinterval def
+ /bis im w 2 mul w getinterval def
+ ws 0 lb getinterval is copy pop
+ /cf currentfile def
+ w h 8 [w 0 0 h neg 0 h]
+ {w rip pop ris gis bis w gray} image
+ bitmapsave restore
+ grestore
+ } bind def
+/ww FMLOCAL
+/r FMLOCAL
+/g FMLOCAL
+/b FMLOCAL
+/i FMLOCAL
+/gray {
+ /ww exch def
+ /b exch def
+ /g exch def
+ /r exch def
+ 0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul
+ b i get .114 mul add add r i 3 -1 roll floor cvi put } for
+ r
+ } bind def
+/BITMAPTRUEGRAY {
+ gsave
+
+ 3 index 2 div add exch
+ 4 index 2 div add exch
+ translate
+ rotate
+ 1 index 2 div neg
+ 1 index 2 div neg
+ translate
+ scale
+ /h exch def /w exch def
+ /bitmapsave save def
+ /is w string def
+ /gis w string def
+ /bis w string def
+ /cf currentfile def
+ w h 8 [w 0 0 h neg 0 h]
+ { cf is readhexstring pop
+ cf gis readhexstring pop
+ cf bis readhexstring pop w gray} image
+ bitmapsave restore
+ grestore
+ } bind def
+/BITMAPGRAY {
+ 8 {fakecolorsetup} COMMONBITMAP
+ } bind def
+/BITMAPGRAYc {
+ 8 {fakecolorsetup} COMMONBITMAPc
+ } bind def
+/ENDBITMAP {
+ } bind def
+end
+ /ALDsave FMLOCAL
+ /ALDmatrix matrix def ALDmatrix currentmatrix pop
+/StartALD {
+ /ALDsave save def
+ savematrix
+ ALDmatrix setmatrix
+ } bind def
+/InALD {
+ restorematrix
+ } bind def
+/DoneALD {
+ ALDsave restore
+ } bind def
+/I { setdash } bind def
+/J { [] 0 setdash } bind def
+%%EndProlog
+%%BeginSetup
+(4.0) FMVERSION
+1 1 0 0 612 792 0 1 17 FMDOCUMENT
+0 0 /Times-Roman FMFONTDEFINE
+1 0 /AvantGarde-Demi FMFONTDEFINE
+2 0 /Helvetica-Bold FMFONTDEFINE
+3 0 /Helvetica FMFONTDEFINE
+4 0 /Helvetica-Oblique FMFONTDEFINE
+5 0 /AvantGarde-Book FMFONTDEFINE
+6 0 /Times-Bold FMFONTDEFINE
+7 0 /Courier FMFONTDEFINE
+8 0 /AvantGarde-BookOblique FMFONTDEFINE
+32 FMFILLS
+0 0 FMFILL
+1 0.1 FMFILL
+2 0.3 FMFILL
+3 0.5 FMFILL
+4 0.7 FMFILL
+5 0.9 FMFILL
+6 0.97 FMFILL
+7 1 FMFILL
+8 <0f1e3c78f0e1c387> FMFILL
+9 <0f87c3e1f0783c1e> FMFILL
+10 <cccccccccccccccc> FMFILL
+11 <ffff0000ffff0000> FMFILL
+12 <8142241818244281> FMFILL
+13 <03060c183060c081> FMFILL
+14 <8040201008040201> FMFILL
+16 1 FMFILL
+17 0.9 FMFILL
+18 0.7 FMFILL
+19 0.5 FMFILL
+20 0.3 FMFILL
+21 0.1 FMFILL
+22 0.03 FMFILL
+23 0 FMFILL
+24 <f0e1c3870f1e3c78> FMFILL
+25 <f0783c1e0f87c3e1> FMFILL
+26 <3333333333333333> FMFILL
+27 <0000ffff0000ffff> FMFILL
+28 <7ebddbe7e7dbbd7e> FMFILL
+29 <fcf9f3e7cf9f3f7e> FMFILL
+30 <7fbfdfeff7fbfdfe> FMFILL
+%%EndSetup
+%%Page: "1" 1
+%%BeginPaperSize: Letter
+%%EndPaperSize
+612 792 0 FMBEGINPAGE
+[0 0 0 1 0 0 0]
+[ 0 0 0 0 1 1 1]
+[ 0 1 1 0 1 0 0]
+[ 1 0 1 0 0 1 0]
+[ 1 1 0 0 0 0 1]
+[ 1 0 0 0 0 1 1]
+[ 0 1 0 0 1 0 1]
+[ 0 0 1 0 1 1 0]
+ 8 FrameSetSepColors
+FrameNoSep
+0 0 0 1 0 0 0 K
+J
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 10 Q
+0 X
+0 0 0 1 0 0 0 K
+(.. 1) 527.5 36 T
+0 0 0 1 0 0 0 K
+33 54 597 54 2 L
+3 H
+2 Z
+4 X
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+72 690 540 702 C
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+72 701 540 701 2 L
+1 H
+2 Z
+0 X
+0 0 0 1 0 0 0 K
+N
+72 698 540 698 2 L
+N
+0 -208 1000 792 C
+1 18 Q
+0 X
+0 0 0 1 0 0 0 K
+(fmweb) 95.08 708 T
+2 F
+(: Literate Programming using FrameMaker) 154.84 708 T
+3 10 Q
+(V) 280.98 672.33 T
+(ersion 1.0) 287.11 672.33 T
+(Sriram Srinivasan) 266.55 660.33 T
+(\050) 266.48 648.33 T
+4 F
+(sriram@tcs.com) 269.82 648.33 T
+3 F
+(\051) 342.18 648.33 T
+72 605 540 615 C
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+72 614 540 614 2 L
+1 H
+2 Z
+0 X
+0 0 0 1 0 0 0 K
+N
+0 -208 1000 792 C
+2 14 Q
+0 X
+0 0 0 1 0 0 0 K
+(Introduction) 72 619.67 T
+3 10 Q
+0.04 (This document explains a simple approach for doing literate programming using FrameMaker) 72 590.33 P
+0.04 (, a word pro-) 483.74 590.33 P
+0.44 (cessing system. It is almost identical to the approach taken by WinW) 72 577.71 P
+0.44 (ordWEB [2], except that it can addi-) 380.08 577.71 P
+(tionally be used in batch mode.) 72 565.71 T
+2.03 (All implementations of literate programming provide facilities to break a piece of code into digestible) 72 548.71 P
+-0.27 (chunks which can be documented individually) 72 536.71 P
+-0.27 (, and explained in any order) 272.2 536.71 P
+-0.27 (. The only dif) 393.69 536.71 P
+-0.27 (ference is in the way) 449.94 536.71 P
+0.52 (the document should be written so that a tool can separate the code from the rest of the documentation.) 72 524.71 P
+0.23 (WEB and such other tools provide a way of doing \322in-band signalling\323, to borrow a term from communica-) 72 512.71 P
+1.61 (tions. The programmer annotates dif) 72 500.71 P
+1.61 (ferent parts of a document by keywords, and a program such as) 239.42 500.71 P
+0.08 (weave or tangle recognizes these keywords. In addition, these programs provide features such as section) 72 488.71 P
+(numbering, indexing etc. and language speci\336c features such as pretty-printing, macro expansion etc.) 72 476.71 T
+0.76 (The other approach is to do \322out-of-band signalling\323, where the formatting information is essentially kept) 72 459.71 P
+(out of the documentation. This is the approach taken by fmweb and WinW) 72 447.71 T
+(ordWEB.) 399.2 447.71 T
+(There are a couple of reasons why I don\325t use WEB based tools.) 72 430.71 T
+(\245) 72 413.71 T
+(It is always nice to see the output of a literate programming ef) 90 413.71 T
+(fort, but the input is rather messy) 362.17 413.71 T
+(. I dis-) 507.05 413.71 T
+(like seeing a lot of meta characters \050like @, <<, \134, [[ \051 etc. The sections are not immediately visible -) 90 401.71 T
+(one goes around looking for \322\134section\323, for example. I do a fair amount of coding in) 90 389.71 T
+5 F
+(perl) 455.74 389.71 T
+3 F
+(, and the two) 474.07 389.71 T
+(notational structures put together make my head swim, esp. when I need to alter the code a few) 90 377.71 T
+(months later) 90 365.71 T
+(. Having access to a WYSIWIG word processor such as FrameMaker means that I don\325t) 144.47 365.71 T
+(use T) 90 353.71 T
+(eX, and it is too much of an ef) 113.9 353.71 T
+(fort to learn the intricacies of LaT) 246.02 353.71 T
+(ex or T) 390.53 353.71 T
+(eX to be able to use the) 420.54 353.71 T
+(WEB based tools.) 90 341.71 T
+(\245) 72 324.71 T
+(A number of these tools are language speci\336c.) 90 324.71 T
+5 F
+(noweb) 298.44 324.71 T
+3 F
+( is one exception to this rule, and I rather like) 332.72 324.71 T
+(the simplicity of noweb. I don\325t use noweb because of the reason explained above.) 90 312.71 T
+-0.13 (FrameMaker) 72 295.71 P
+-0.13 (, like other good word processors, has excellent document formatting capabilities, cross refer-) 128.12 295.71 P
+0.58 (encing and indexing, table of contents, graphics, tables etc. What I see on the screen is the \336nal output,) 72 283.71 P
+(uncluttered by meta-information.) 72 271.71 T
+0.2 (One problem that I have with this approach is that I am used to a Unix like development environment and) 72 254.71 P
+0.13 (extensively use text based tools such as emacs/vi, perl, dif) 72 242.71 P
+0.13 (f, sccs etc. For this reason, I have not tried this) 331.97 242.71 P
+(approach on medium or larger sized implementations, though I hope to do that in the near future.) 72 230.71 T
+0.28 (In general, I am somewhat unclear on how the literate programming paradigm helps a developer to think.) 72 213.71 P
+0.74 (The prevailing wisdom is that this approach forces a lot more disciplined thinking on the part of the pro-) 72 201.71 P
+0.09 (grammer) 72 189.71 P
+0.09 (, since \050s\051he is in a teaching mode. I \336nd that this helps in structuring the program well, once one) 111.45 189.71 P
+-0.22 (knows what one should be doing, but if I don\325t have a top-down \050step-wise re\336nement\051 solution in my mind,) 72 177.71 P
+0.02 (I am not entirely sure how to start from a blank page. I tend to do small sections of the code using my reg-) 72 165.71 P
+-0.03 (ular development environment, and once I have a reasonable top-down solution in mind, copy it all over to) 72 153.71 P
+(a FrameMaker \336le and start re\336ning it.) 72 141.71 T
+72 98.38 540 108.38 C
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+72 107.38 540 107.38 2 L
+1 H
+2 Z
+0 X
+0 0 0 1 0 0 0 K
+N
+0 -208 1000 792 C
+2 14 Q
+0 X
+0 0 0 1 0 0 0 K
+(The fmweb approach) 72 113.04 T
+3 10 Q
+(T) 72 83.71 T
+(o separate the code from the rest of the stuf) 77 83.71 T
+(f, the developer uses three paragraph formats.) 270.82 83.71 T
+0 0 0 1 0 0 0 K
+FMENDPAGE
+%%EndPage: "1" 1
+%%Page: "2" 2
+612 792 0 FMBEGINPAGE
+[0 0 0 1 0 0 0]
+[ 0 0 0 0 1 1 1]
+[ 0 1 1 0 1 0 0]
+[ 1 0 1 0 0 1 0]
+[ 1 1 0 0 0 0 1]
+[ 1 0 0 0 0 1 1]
+[ 0 1 0 0 1 0 1]
+[ 0 0 1 0 1 1 0]
+ 8 FrameSetSepColors
+FrameNoSep
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 10 Q
+0 X
+0 0 0 1 0 0 0 K
+(.. 2) 527.5 36 T
+0 0 0 1 0 0 0 K
+33 54 597 54 2 L
+3 H
+2 Z
+4 X
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+3 F
+0 X
+(\245) 72 713.33 T
+(\322File\323: The \336le name is mentioned in this paragraph, and all subsequent lines will eventually be) 90 713.33 T
+(dumped into this \336le.) 90 701.33 T
+(\245) 72 684.33 T
+(\322chunk\323: A chunk \050or section\051 is a heading followed by a set of \322code\323 paragraphs. The \322chunk\323 para-) 90 684.33 T
+(graph tag identi\336es the heading for that section. It is possible to have more than one chunk with the) 90 672.33 T
+(same name.) 90 660.33 T
+(\245) 72 643.33 T
+-0.36 (\322code\323: The developer writes code \050in any language\051 using this paragraph tag. The Frame Maker cross) 90 643.33 P
+(reference facility has to be used to refer to chunks.) 90 631.33 T
+5 F
+-0.16 (fmweb) 72 614.33 P
+3 F
+-0.16 ( is a perl script that needs the FrameMaker document in a MIF format - it extracts chunks and code) 106.15 614.33 P
+0.42 (paragraphs out, and does the requisite tangling \050restoring the order of chunks\051. All chunks with the same) 72 602.33 P
+0.35 (name are concatenated in the order they appear in the document.) 72 590.33 P
+5 F
+0.35 (fmweb) 369.39 590.33 P
+3 F
+0.35 ( ignores all formatting informa-) 403.54 590.33 P
+(tion. Source line number information can be optionally output, in a format accepted by) 72 578.33 T
+5 F
+(cc) 453.3 578.33 T
+3 F
+( \050#line\051.) 466.24 578.33 T
+72 535 540 545 C
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+72 544 540 544 2 L
+1 H
+2 Z
+0 X
+0 0 0 1 0 0 0 K
+N
+0 0 612 792 C
+2 14 Q
+0 X
+0 0 0 1 0 0 0 K
+(References) 72 549.67 T
+3 10 Q
+(1.) 72 520.33 T
+1 (\322Literate Programming\323, Donald Knuth, Center for the Study of Language and Information, Stanford) 90 520.33 P
+(University) 90 508.33 T
+(, ISBN 0-937073-80-6) 133.15 508.33 T
+(2.) 72 494.33 T
+0.82 (WEB: http://info.desy) 90 494.33 P
+0.82 (.de/user/projects/LitProg/HTML.html - A pointer to all the other good stuf) 183.46 494.33 P
+0.82 (f avail-) 509.73 494.33 P
+(able on the net.) 90 482.33 T
+72 439 540 449 C
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+72 448 540 448 2 L
+1 H
+2 Z
+0 X
+0 0 0 1 0 0 0 K
+N
+0 0 612 792 C
+2 14 Q
+0 X
+0 0 0 1 0 0 0 K
+(Unpacking the distribution) 72 453.67 T
+3 10 Q
+0.08 (This document contains an example program \050wc.c\051 written in the format explained above, and the fmweb) 72 424.33 P
+(script, along with some internal documentation.) 72 412.33 T
+(Save this \336le as wc.mif. This \336le will be used to test out the fmweb script.) 72 395.33 T
+-0.04 (T) 72 378.33 P
+-0.04 (o extract fmweb \050a perl5 script\051, go to Special->Conditional T) 77 378.33 P
+-0.04 (ext -> Show/Hide..., and hide the conditional) 344.28 378.33 P
+(tag called \322Fluf) 72 366.33 T
+(f\323. Only the perl script should be remaining. Save this \336le as text only) 137.4 366.33 T
+(, and call it fmweb.) 440.12 366.33 T
+0.18 (Run fmweb - \322perl5 fmweb < wc.mif\323. This should produce a \336le called wc.c in the local directory) 72 349.33 P
+0.18 (. Compile) 497.58 349.33 P
+(and execute wc, and compare against the system provided \322wc\323, if on a Unix system.) 72 337.33 T
+72 294 540 304 C
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+72 303 540 303 2 L
+1 H
+2 Z
+0 X
+0 0 0 1 0 0 0 K
+N
+0 0 612 792 C
+2 14 Q
+0 X
+0 0 0 1 0 0 0 K
+(T) 72 308.67 T
+(oDo) 79.52 308.67 T
+3 10 Q
+(\245) 72 279.33 T
+(Support multiple \336les) 90 279.33 T
+(\245) 72 262.33 T
+(Largish example - map library) 90 262.33 T
+(\245) 72 245.33 T
+(Speed up) 90 245.33 T
+(\245) 72 228.33 T
+(Look at mml) 90 228.33 T
+(\245) 72 211.33 T
+(Accept \336lenames as arguments) 90 211.33 T
+0 0 0 1 0 0 0 K
+FMENDPAGE
+%%EndPage: "2" 2
+%%Page: "3" 3
+612 792 0 FMBEGINPAGE
+[0 0 0 1 0 0 0]
+[ 0 0 0 0 1 1 1]
+[ 0 1 1 0 1 0 0]
+[ 1 0 1 0 0 1 0]
+[ 1 1 0 0 0 0 1]
+[ 1 0 0 0 0 1 1]
+[ 0 1 0 0 1 0 1]
+[ 0 0 1 0 1 1 0]
+ 8 FrameSetSepColors
+FrameNoSep
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 10 Q
+0 X
+0 0 0 1 0 0 0 K
+(.. 3) 527.5 36 T
+0 0 0 1 0 0 0 K
+33 54 597 54 2 L
+3 H
+2 Z
+4 X
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+72 696 540 706 C
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+72 705 540 705 2 L
+1 H
+2 Z
+0 X
+0 0 0 1 0 0 0 K
+N
+0 0 612 792 C
+2 14 Q
+0 X
+0 0 0 1 0 0 0 K
+(Appendix A: \324wc\325: A word count program) 72 710.67 T
+3 10 Q
+0.28 (This section demonstrates how one can do Literate Programming with FrameMaker) 72 664.33 P
+0.28 (. There are only three) 443.28 664.33 P
+-0.21 (paragraph tags of interest - File \050see \322File:\323 below\051, \322chunk\323 \050all the numbered paragraphs\051 and \322code\323. Any) 72 652.33 P
+1.11 (cross reference format can be used - \322chunkref\323 is the name of the format used in the example below) 72 640.33 P
+1.11 (.) 537.22 640.33 P
+-0.05 (Apologies if the example looks like a ransom note - one does tend to get carried away by the availability of) 72 628.33 P
+(fonts, and the WYSIWIGness of it all.) 72 616.33 T
+0.21 (The implementation and comments have been shamelessly lifted from Norman Ramsey\325) 72 599.33 P
+0.21 (s noweb distribu-) 464.01 599.33 P
+0.1 (tion \050ftp://bellcore.com/pub/norman/www/noweb/intro.html\051. This is just to provide a comparison of the two) 72 587.33 P
+(approaches. I have modi\336ed some of the comments that do not apply to this approach.) 72 575.33 T
+(Thanks, Norman.) 72 558.33 T
+0 1 1 0 1 0 0 K
+0 1 1 0 1 0 0 K
+144.97 515.22 72 515.22 2 L
+0 1 1 0 1 0 0 K
+V
+1.71 H
+0 Z
+N
+0 0 0 1 0 0 0 K
+0 1 1 0 1 0 0 K
+6 18 Q
+(File: wc.c) 72 517 T
+0 0 0 1 0 0 0 K
+3 10 Q
+0 0 0 1 0 0 0 K
+0.21 (The purpose of) 72 493.33 P
+7 F
+0.46 (wc) 142.68 493.33 P
+3 F
+0.21 ( is to count lines, words, and/or characters in a list of \336les. The number of lines in a \336le) 154.68 493.33 P
+(is the number of newline characters it contains. The number of characters is the \336le length in bytes.) 72 481.33 T
+0.42 (A ``word\325) 72 464.33 P
+0.42 (\325 is a maximal sequence of consecutive characters other than newline, space, or tab, containing) 112.24 464.33 P
+(at least one visible ASCII code.) 72 452.33 T
+(\050W) 72 435.33 T
+(e assume that the standard ASCII code is in use.\051) 84.59 435.33 T
+(Most literate C programs share a common structure.) 72 418.33 T
+0.13 (It\325) 72 401.33 P
+0.13 (s probably a good idea to state the overall structure explicitly at the outset. Here, then, is an overview of) 79.6 401.33 P
+(the \336le) 72 388 T
+5 12 Q
+(wc.c) 104.24 388 T
+3 10 Q
+( that is de\336ned by the) 133.06 388 T
+5 12 Q
+(noweb) 230.9 388 T
+3 10 Q
+( program) 272.04 388 T
+5 12 Q
+(wc.fm) 314.83 388 T
+82.08 362.9 72 362.9 2 L
+V
+1.08 H
+N
+1 F
+(1:) 72 364 T
+131.52 362.9 90 362.9 2 L
+V
+N
+(Outline) 90 364 T
+8 10 Q
+(<Header \336les to include> , \0502:, p. 3\051) 90 345.61 T
+(<De\336nitions> , \0503:, p. 3\051) 90 330.89 T
+(<Global variables> , \0504:, p. 4\051) 90 316.16 T
+(<Functions> , \05023:, p. 8\051) 90 301.44 T
+(<Main Pr) 90 286.72 T
+(ogram> , \0505:, p. 4\051) 131.84 286.72 T
+3 F
+-0.03 (W) 72 269.72 P
+-0.03 (e must include the standard I/O de\336nitions, since we want to send formatted output to) 81.26 269.72 P
+5 F
+-0.03 (stdout) 461.04 269.72 P
+3 F
+-0.03 ( and) 491.18 269.72 P
+5 F
+-0.03 (stderr) 513.36 269.72 P
+82.08 231.28 72 231.28 2 L
+V
+N
+1 12 Q
+(2:) 72 232.38 T
+220.08 231.28 90 231.28 2 L
+V
+N
+(Header \336les to include) 90 232.38 T
+5 10 Q
+(#include <stdio.h>) 90 214.72 T
+82.08 176.28 72 176.28 2 L
+V
+N
+1 12 Q
+(3:) 72 177.38 T
+149.04 176.28 90 176.28 2 L
+V
+N
+(De\336nitions) 90 177.38 T
+5 10 Q
+(#de\336ne OK 0) 90 159.72 T
+( /* status code for successful run */) 90 145.72 T
+(#de\336ne usage_err) 90 131.72 T
+(or 1) 176.63 131.72 T
+( /* status code for impr) 90 117.72 T
+(oper syntax */) 202.93 117.72 T
+(#de\336ne cannot_open_\336le 2) 90 103.72 T
+( /* status code for \336le access err) 90 89.72 T
+(or */) 247.18 89.72 T
+0 0 0 1 0 0 0 K
+FMENDPAGE
+%%EndPage: "3" 3
+%%Page: "4" 4
+612 792 0 FMBEGINPAGE
+[0 0 0 1 0 0 0]
+[ 0 0 0 0 1 1 1]
+[ 0 1 1 0 1 0 0]
+[ 1 0 1 0 0 1 0]
+[ 1 1 0 0 0 0 1]
+[ 1 0 0 0 0 1 1]
+[ 0 1 0 0 1 0 1]
+[ 0 0 1 0 1 1 0]
+ 8 FrameSetSepColors
+FrameNoSep
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 10 Q
+0 X
+0 0 0 1 0 0 0 K
+(.. 4) 527.5 36 T
+0 0 0 1 0 0 0 K
+33 54 597 54 2 L
+3 H
+2 Z
+4 X
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+82.08 710.9 72 710.9 2 L
+0 X
+V
+1.08 H
+0 Z
+N
+1 12 Q
+(4:) 72 712 T
+185.76 710.9 90 710.9 2 L
+V
+N
+(Global variables) 90 712 T
+3 10 Q
+-0.08 (The) 72 694.33 P
+5 F
+-0.08 (status) 91.93 694.33 P
+3 F
+-0.08 ( variable will tell the operating system if the run was successful or not, and) 119.38 694.33 P
+5 F
+-0.08 (pr) 448.83 694.33 P
+-0.08 (og_name) 458.61 694.33 P
+3 F
+-0.08 ( is used) 505.7 694.33 P
+(in case there\325) 72 682.33 T
+(s an error message to be printed.) 131.29 682.33 T
+5 F
+(int status = OK;) 90 651.33 T
+( /* exit status of command, initially OK */) 90 637.33 T
+(char *pr) 90 623.33 T
+(og_name;) 129.22 623.33 T
+( /* who we ar) 90 609.33 T
+(e */) 158.04 609.33 T
+3 F
+(Now we come to the general layout of the) 72 578.33 T
+5 F
+(main) 258.76 578.33 T
+3 F
+( function.) 283.07 578.33 T
+82.08 539.9 72 539.9 2 L
+V
+N
+1 12 Q
+(5:) 72 541 T
+132.72 539.9 90 539.9 2 L
+V
+N
+(Main Pr) 90 541 T
+171.14 539.9 132.5 539.9 2 L
+V
+N
+(ogram) 132.5 541 T
+5 10 Q
+(main\050ar) 90 523.33 T
+(gc, ar) 127.85 523.33 T
+(gv\051) 156.44 523.33 T
+(int ar) 108 509.33 T
+(gc;) 132.11 509.33 T
+(/* number of ar) 108 495.33 T
+(guments on UNIX command line */) 182.36 495.33 T
+( char **ar) 108 481.33 T
+(gv;) 157.07 481.33 T
+( /* the ar) 108 467.33 T
+(guments, an array of strings */) 150.77 467.33 T
+({) 90 453.33 T
+8 F
+(<V) 110.77 438.61 T
+(ariables local to main> , \0506:, p. 4\051) 123.05 438.61 T
+5 F
+( pr) 108 424.61 T
+(og_name = ar) 120.56 424.61 T
+(gv[0];) 189.1 424.61 T
+8 F
+(<Set up option selection> , \0507:, p. 4\051) 110.77 409.89 T
+(<Pr) 110.77 395.16 T
+(ocess all the \336les> , \0508:, p. 5\051) 125.72 395.16 T
+(<Print the grand totals if ther) 110.77 380.44 T
+(e wer) 246.75 380.44 T
+(e multiple \336les> , \05021:, p. 8\051) 273.8 380.44 T
+5 F
+( exit\050status\051;) 108 366.44 T
+(}) 90 352.44 T
+3 F
+0.58 (If the \336rst argument begins with a \324-\325, the user is choosing the desired counts and specifying the order in) 72 321.44 P
+0.8 (which they should be displayed. Each selection is given by the initial character \050lines, words, or charac-) 72 309.44 P
+-0.23 (ters\051. For example, `-cl\325 would cause just the number of characters and the number of lines to be printed, in) 72 297.44 P
+(that order) 72 285.44 T
+(.) 114.25 285.44 T
+-0.07 (W) 72 268.44 P
+-0.07 (e do not process this string now; we simply remember where it is. It will be used to control the formatting) 81.26 268.44 P
+(at output time.) 72 256.44 T
+82.08 232 72 232 2 L
+V
+N
+1 12 Q
+(6:) 72 233.11 T
+98.4 232 90 232 2 L
+V
+N
+(V) 90 233.11 T
+194.16 232 97.44 232 2 L
+V
+N
+(ariables local to) 97.44 233.11 T
+223.33 231.96 194.16 231.96 2 L
+V
+0.7 H
+N
+5 F
+(main) 194.16 233.11 T
+5 10 Q
+(int \336le_count;) 90 215.44 T
+( /* how many \336les ther) 90 201.44 T
+(e ar) 200.08 201.44 T
+(e */) 219.15 201.44 T
+(char *which;) 90 187.44 T
+( /* which counts to print */) 90 173.44 T
+82.08 135 72 135 2 L
+V
+1.08 H
+N
+1 12 Q
+(7:) 72 136.11 T
+222.24 135 90 135 2 L
+V
+N
+(Set up option selection) 90 136.11 T
+5 10 Q
+(which = \322lwc\323;) 90 118.44 T
+( /* if no option is given, print 3 values */) 90 104.44 T
+(if \050ar) 90 90.44 T
+(gc > 1 && *ar) 111.45 90.44 T
+(gv[1] == \324-\325\051 {) 176.57 90.44 T
+(which = ar) 108 76.44 T
+(gv[1] + 1;) 158.43 76.44 T
+0 0 0 1 0 0 0 K
+FMENDPAGE
+%%EndPage: "4" 4
+%%Page: "5" 5
+612 792 0 FMBEGINPAGE
+[0 0 0 1 0 0 0]
+[ 0 0 0 0 1 1 1]
+[ 0 1 1 0 1 0 0]
+[ 1 0 1 0 0 1 0]
+[ 1 1 0 0 0 0 1]
+[ 1 0 0 0 0 1 1]
+[ 0 1 0 0 1 0 1]
+[ 0 0 1 0 1 1 0]
+ 8 FrameSetSepColors
+FrameNoSep
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 10 Q
+0 X
+0 0 0 1 0 0 0 K
+(.. 5) 527.5 36 T
+0 0 0 1 0 0 0 K
+33 54 597 54 2 L
+3 H
+2 Z
+4 X
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+5 F
+0 X
+(ar) 108 713.33 T
+(gc--;) 117.85 713.33 T
+(ar) 108 699.33 T
+(gv++;) 117.85 699.33 T
+(}) 90 685.33 T
+(\336le_count = ar) 90 671.33 T
+(gc - 1;) 158.41 671.33 T
+3 F
+0.14 (Now we scan the remaining arguments and try to open a \336le, if possible. The \336le is processed and its sta-) 72 637.33 P
+(tistics are given.) 72 625.33 T
+(W) 72 608.33 T
+(e use a do ... while loop because we should read from the standard input if no \336le name is given.) 81.26 608.33 T
+82.08 566.9 72 566.9 2 L
+V
+1.08 H
+0 Z
+N
+1 12 Q
+(8:) 72 568 T
+100.56 566.9 90 566.9 2 L
+V
+N
+(Pr) 90 568 T
+198.26 566.9 100.34 566.9 2 L
+V
+N
+(ocess all the \336les) 100.34 568 T
+5 10 Q
+(ar) 90 550.33 T
+(gc--;) 99.85 550.33 T
+(do {) 90 536.33 T
+8 F
+(<If a \336le is given, try to open *\050++ar) 110.77 521.61 T
+(gv\051; continue if unsuccessful> , \05011:, p. 5\051) 277.69 521.61 T
+(<Initialize pointers and counters> , \05015:, p. 6\051) 113.54 506.89 T
+(<Scan \336le> , \05017:, p. 6\051) 113.54 492.16 T
+(<W) 113.54 477.44 T
+(rite statistics for \336le> , \05019:, p. 7\051) 128.91 477.44 T
+(<Close \336le> , \05012:, p. 6\051) 110.77 462.72 T
+(<Update grand totals> , \05020:, p. 7\051) 113.54 447.99 T
+5 F
+( /* even if ther) 108 433.99 T
+(e is only one \336le */) 176.44 433.99 T
+(} while \050--ar) 90 419.99 T
+(gc > 0\051;) 144.14 419.99 T
+3 F
+1.01 (Here\325) 72 388.99 P
+1.01 (s the code to open the \336le. A special trick allows us to handle input from) 95.71 388.99 P
+5 F
+1.01 (stdin) 435.35 388.99 P
+3 F
+1.01 ( when no name is) 457.57 388.99 P
+(given.) 72 376.99 T
+(Recall that the \336le descriptor to) 72 359.99 T
+5 F
+(stdin) 212.06 359.99 T
+3 F
+( is 0; that\325) 234.28 359.99 T
+(s what we use as the default initial value.) 276.9 359.99 T
+82.08 318.56 72 318.56 2 L
+V
+N
+1 12 Q
+(9:) 72 319.66 T
+98.4 318.56 90 318.56 2 L
+V
+N
+(V) 90 319.66 T
+223.44 318.56 97.44 318.56 2 L
+V
+N
+(ariables local to main) 97.44 319.66 T
+5 10 Q
+(int fd = 0;) 90 301.99 T
+( /* \336le descriptor) 90 287.99 T
+(, initialized to stdin */) 170.5 287.99 T
+88.8 249.56 72 249.56 2 L
+V
+N
+1 12 Q
+(10:) 72 250.66 T
+149.04 249.56 90 249.56 2 L
+V
+N
+(De\336nitions) 90 250.66 T
+5 10 Q
+(#de\336ne READ_ONL) 90 232.99 T
+(Y 0) 180.2 232.99 T
+( /* r) 90 218.99 T
+(ead access code for system open */) 109.9 218.99 T
+88.8 180.56 72 180.56 2 L
+V
+N
+1 12 Q
+(11:) 72 181.66 T
+248.4 180.56 90 180.56 2 L
+V
+N
+(If a \336le is given, try to open) 90 181.66 T
+284.28 180.51 248.4 180.51 2 L
+V
+0.7 H
+N
+5 F
+(*\050++ar) 248.4 181.66 T
+303.44 180.51 284.29 180.51 2 L
+V
+N
+(gv\051) 284.29 181.66 T
+310.16 180.56 303.44 180.56 2 L
+V
+1.08 H
+N
+1 F
+(;) 303.44 181.66 T
+361.99 180.51 310.16 180.51 2 L
+V
+0.7 H
+N
+5 F
+(continue) 310.16 181.66 T
+448.87 180.56 361.99 180.56 2 L
+V
+1.08 H
+N
+1 F
+( if unsuccessful) 361.99 181.66 T
+5 10 Q
+(if \050\336le_count > 0) 90 163.99 T
+(&& \050fd = open\050*\050++ar) 168.47 163.99 T
+(gv\051, READ_ONL) 271.23 163.99 T
+(Y\051\051 < 0\051 {) 343.8 163.99 T
+(fprintf\050stderr) 108 149.99 T
+(, \322%s: cannot open \336le %s\134n\323, pr) 164.88 149.99 T
+(og_name, *ar) 330.73 149.99 T
+(gv\051;) 397.46 149.99 T
+( status |= cannot_open_\336le;) 108 135.99 T
+(\336le_count--;) 108 121.99 T
+(continue;) 108 107.99 T
+(}) 90 93.99 T
+0 0 0 1 0 0 0 K
+FMENDPAGE
+%%EndPage: "5" 5
+%%Page: "6" 6
+612 792 0 FMBEGINPAGE
+[0 0 0 1 0 0 0]
+[ 0 0 0 0 1 1 1]
+[ 0 1 1 0 1 0 0]
+[ 1 0 1 0 0 1 0]
+[ 1 1 0 0 0 0 1]
+[ 1 0 0 0 0 1 1]
+[ 0 1 0 0 1 0 1]
+[ 0 0 1 0 1 1 0]
+ 8 FrameSetSepColors
+FrameNoSep
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 10 Q
+0 X
+0 0 0 1 0 0 0 K
+(.. 6) 527.5 36 T
+0 0 0 1 0 0 0 K
+33 54 597 54 2 L
+3 H
+2 Z
+4 X
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+88.8 710.9 72 710.9 2 L
+0 X
+V
+1.08 H
+0 Z
+N
+1 12 Q
+(12:) 72 712 T
+143.04 710.9 90 710.9 2 L
+V
+N
+(Close \336le) 90 712 T
+5 10 Q
+(close\050fd\051;) 90 694.33 T
+3 F
+0.46 (W) 72 663.33 P
+0.46 (e will do some homemade buf) 81.26 663.33 P
+0.46 (fering in order to speed things up: Characters will be read into the buf) 216.23 663.33 P
+0.46 (fer) 528.33 663.33 P
+(array before we process them. T) 72 651.33 T
+(o do this we set up appropriate pointers and counters.) 214.83 651.33 T
+88.8 609.9 72 609.9 2 L
+V
+N
+1 12 Q
+(13:) 72 611 T
+149.04 609.9 90 609.9 2 L
+V
+N
+(De\336nitions) 90 611 T
+5 10 Q
+(#de\336ne buf_size BUFSIZ) 90 593.33 T
+( /* stdio.h BUFSIZ chosen for ef) 90 579.33 T
+(\336ciency */) 236.7 579.33 T
+88.8 554.9 72 554.9 2 L
+V
+N
+1 12 Q
+(14:) 72 556 T
+98.4 554.9 90 554.9 2 L
+V
+N
+(V) 90 556 T
+194.16 554.9 97.44 554.9 2 L
+V
+N
+(ariables local to) 97.44 556 T
+223.33 554.85 194.16 554.85 2 L
+V
+0.7 H
+N
+5 F
+(main) 194.16 556 T
+5 10 Q
+(char buf) 90 538.33 T
+(fer[buf_size];) 131.25 538.33 T
+( /* we r) 90 524.33 T
+(ead the input into this array */) 127.48 524.33 T
+(r) 90 510.33 T
+(egister char *ptr;) 92.97 510.33 T
+( /* \336rst unpr) 90 496.33 T
+(ocessed character in buf) 146.82 496.33 T
+(fer */) 268.54 496.33 T
+(r) 90 482.33 T
+(egister char *buf_end;) 92.97 482.33 T
+( /* the \336rst unused position in buf) 90 468.33 T
+(fer */) 248.87 468.33 T
+(r) 90 454.33 T
+(egister int c;) 92.97 454.33 T
+( /* curr) 90 440.33 T
+(ent char) 125.46 440.33 T
+(, or # of chars just r) 165.58 440.33 T
+(ead */) 254.4 440.33 T
+(int in_wor) 90 426.33 T
+(d;) 135.17 426.33 T
+( /* ar) 90 412.33 T
+(e we within a wor) 116.73 412.33 T
+(d? */) 201.66 412.33 T
+(long wor) 90 398.33 T
+(d_count, line_count, char_count;) 131.96 398.33 T
+( /* # of wor) 90 384.33 T
+(ds, lines, and chars so far */) 145.51 384.33 T
+88.8 345.9 72 345.9 2 L
+V
+1.08 H
+N
+1 12 Q
+(15:) 72 347 T
+266.16 345.9 90 345.9 2 L
+V
+N
+(Initialize pointers and counters) 90 347 T
+5 10 Q
+(ptr = buf_end = buf) 90 329.33 T
+(fer;) 182.98 329.33 T
+(line_count = wor) 90 315.33 T
+(d_count = char_count = 0;) 169.6 315.33 T
+(in_wor) 90 301.33 T
+(d = 0;) 120.91 301.33 T
+3 F
+0.77 (The grand totals must be initialized to zero at the beginning of the program. If we made these variables) 72 270.33 P
+1.58 (local to) 72 258.33 P
+5 F
+1.58 (main) 109.62 258.33 P
+3 F
+1.58 (, we would have to do this initialization explicitly; however) 133.93 258.33 P
+1.58 (, C\325) 401.04 258.33 P
+1.58 (s globals are automatically) 417.44 258.33 P
+(zeroed. \050Or rather) 72 246.33 T
+(, ``statically zeroed.\325) 150.92 246.33 T
+(\325\051 \050Get it?\051) 239.65 246.33 T
+88.8 221.9 72 221.9 2 L
+V
+N
+1 12 Q
+(16:) 72 223 T
+185.76 221.9 90 221.9 2 L
+V
+N
+(Global variables) 90 223 T
+5 10 Q
+(long tot_wor) 90 205.33 T
+(d_count, tot_line_count,) 150.29 205.33 T
+( tot_char_count;) 90 191.33 T
+( /* total number of wor) 90 177.33 T
+(ds, lines, chars */) 202.79 177.33 T
+88.8 152.9 72 152.9 2 L
+V
+N
+1 12 Q
+(17:) 72 154 T
+139.2 152.9 90 152.9 2 L
+V
+N
+(Scan \336le) 90 154 T
+3 10 Q
+0.43 (This chunk, which does the counting, that is) 72 136.33 P
+5 F
+0.42 (wc) 271.61 136.33 P
+3 F
+0.43 (\325) 286.39 136.33 P
+0.43 (s) 288.43 136.33 P
+4 F
+0.43 (raison d\325etre) 296.64 136.33 P
+3 F
+0.43 (, was actually one of the simplest to write.) 352.08 136.33 P
+(W) 72 124.33 T
+(e look at each character and change state if it begins or ends a word.) 81.26 124.33 T
+5 F
+(while \0501\051 {) 90 93.33 T
+8 F
+(<Fill buf) 110.77 78.61 T
+(fer if it is empty; br) 146.52 78.61 T
+(eak at end of \336le> , \05018:, p. 7\051) 233.44 78.61 T
+0 0 0 1 0 0 0 K
+FMENDPAGE
+%%EndPage: "6" 6
+%%Page: "7" 7
+612 792 0 FMBEGINPAGE
+[0 0 0 1 0 0 0]
+[ 0 0 0 0 1 1 1]
+[ 0 1 1 0 1 0 0]
+[ 1 0 1 0 0 1 0]
+[ 1 1 0 0 0 0 1]
+[ 1 0 0 0 0 1 1]
+[ 0 1 0 0 1 0 1]
+[ 0 0 1 0 1 1 0]
+ 8 FrameSetSepColors
+FrameNoSep
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 10 Q
+0 X
+0 0 0 1 0 0 0 K
+(.. 7) 527.5 36 T
+0 0 0 1 0 0 0 K
+33 54 597 54 2 L
+3 H
+2 Z
+4 X
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+5 F
+0 X
+( c = *ptr++;) 108 713.33 T
+( if \050c > \324 \324 && c < 0177\051 {) 108 699.33 T
+(/* visible ASCII codes */) 126 685.33 T
+( if \050!in_wor) 126 671.33 T
+(d\051 {) 174.23 671.33 T
+( wor) 144 657.33 T
+(d_count++;) 164.58 657.33 T
+(in_wor) 144 643.33 T
+(d = 1;) 174.91 643.33 T
+(}) 126 629.33 T
+(continue;) 126 615.33 T
+(}) 108 601.33 T
+(if \050c == \324\134n\325\051 line_count++;) 108 587.33 T
+( else if \050c != \324 \324 && c != \324\134t\325\051 continue;) 108 573.33 T
+( in_wor) 108 559.33 T
+(d = 0;) 141.68 559.33 T
+(/* c is newline, space, or tab */) 108 545.33 T
+(}) 90 531.33 T
+3 F
+(Buf) 72 500.33 T
+(fered I/O allows us to count the number of characters almost for free.) 86.83 500.33 T
+88.8 475.9 72 475.9 2 L
+V
+1.08 H
+0 Z
+N
+1 12 Q
+(18:) 72 477 T
+107.76 475.9 90 475.9 2 L
+V
+N
+(Fill) 90 477 T
+127.01 475.85 107.76 475.85 2 L
+V
+0.7 H
+N
+5 F
+(buf) 107.76 477 T
+142.22 475.85 127.04 475.85 2 L
+V
+N
+(fer) 127.04 477 T
+220.7 475.9 142.22 475.9 2 L
+V
+1.08 H
+N
+1 F
+( if it is empty;) 142.22 477 T
+232.5 475.85 220.7 475.85 2 L
+V
+0.7 H
+N
+5 F
+(br) 220.7 477 T
+254.47 475.85 232.45 475.85 2 L
+V
+N
+(eak) 232.45 477 T
+330.07 475.9 254.47 475.9 2 L
+V
+1.08 H
+N
+1 F
+( at end of \336le) 254.47 477 T
+5 10 Q
+(if \050ptr >= buf_end\051 {) 90 459.33 T
+(ptr = buf) 108 445.33 T
+(fer;) 148.89 445.33 T
+(c = r) 108 431.33 T
+(ead\050fd, ptr) 129.04 431.33 T
+(, buf_size\051;) 180.61 431.33 T
+(if \050c <= 0\051 br) 108 417.33 T
+(eak;) 165.52 417.33 T
+(char_count += c;) 108 403.33 T
+(buf_end = buf) 108 389.33 T
+(fer + c;) 176.16 389.33 T
+(}) 90 375.33 T
+3 F
+0.17 (It\325) 72 344.33 P
+0.17 (s convenient to output the statistics by de\336ning a new function) 79.6 344.33 P
+5 F
+0.17 (wc_print) 358.33 344.33 P
+3 F
+0.17 (; then the same function can be) 399.43 344.33 P
+-0.05 (used for the totals. Additionally we must decide here if we know the name of the \336le we have processed or) 72 332.33 P
+(if it was just stdin.) 72 320.33 T
+88.8 295.9 72 295.9 2 L
+V
+N
+1 12 Q
+(19:) 72 297 T
+100.8 295.9 90 295.9 2 L
+V
+N
+(W) 90 297 T
+208.09 295.9 100.33 295.9 2 L
+V
+N
+(rite statistics for \336le) 100.33 297 T
+5 10 Q
+(wc_print\050which, char_count, wor) 90 279.33 T
+(d_count,) 248.66 279.33 T
+( line_count\051;) 90 265.33 T
+(if \050\336le_count\051) 90 251.33 T
+( printf\050\322 %s\134n\323, *ar) 90 237.33 T
+(gv\051; /* not stdin */) 179.74 237.33 T
+(else) 90 223.33 T
+( printf\050\322\134n\323\051; /* stdin */) 90 209.33 T
+88.8 170.9 72 170.9 2 L
+V
+N
+1 12 Q
+(20:) 72 172 T
+205.2 170.9 90 170.9 2 L
+V
+N
+(Update grand totals) 90 172 T
+5 10 Q
+(tot_line_count += line_count;) 90 154.33 T
+(tot_wor) 90 140.33 T
+(d_count += wor) 126.14 140.33 T
+(d_count;) 202.05 140.33 T
+(tot_char_count += char_count;) 90 126.33 T
+3 F
+(W) 72 78.33 T
+(e might as well improve a bit on) 81.26 78.33 T
+5 F
+(Unix) 224.09 78.33 T
+3 F
+(\325) 243.54 78.33 T
+(s) 245.58 78.33 T
+5 F
+(wc) 253.36 78.33 T
+3 F
+( by displaying the number of \336les too.) 268.14 78.33 T
+0 0 0 1 0 0 0 K
+FMENDPAGE
+%%EndPage: "7" 7
+%%Page: "8" 8
+612 792 0 FMBEGINPAGE
+[0 0 0 1 0 0 0]
+[ 0 0 0 0 1 1 1]
+[ 0 1 1 0 1 0 0]
+[ 1 0 1 0 0 1 0]
+[ 1 1 0 0 0 0 1]
+[ 1 0 0 0 0 1 1]
+[ 0 1 0 0 1 0 1]
+[ 0 0 1 0 1 1 0]
+ 8 FrameSetSepColors
+FrameNoSep
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 10 Q
+0 X
+0 0 0 1 0 0 0 K
+(.. 8) 527.5 36 T
+0 0 0 1 0 0 0 K
+33 54 597 54 2 L
+3 H
+2 Z
+4 X
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+88.8 710.9 72 710.9 2 L
+0 X
+V
+1.08 H
+0 Z
+N
+1 12 Q
+(21:) 72 712 T
+243.84 710.9 90 710.9 2 L
+V
+N
+(Print the grand totals if ther) 90 712 T
+275.9 710.9 243.74 710.9 2 L
+V
+N
+(e wer) 243.74 712 T
+358.61 710.9 275.81 710.9 2 L
+V
+N
+(e multiple \336les) 275.81 712 T
+5 10 Q
+(if \050\336le_count > 1\051 {) 90 694.33 T
+(wc_print\050which, tot_char_count, tot_wor) 108 680.33 T
+(d_count, tot_line_count\051;) 306.09 680.33 T
+(printf \050\322 total in %d \336les\134n\323, \336le_count\051;) 108 666.33 T
+(}) 90 652.33 T
+3 F
+-0.28 (Here now is the function that prints the values according to the speci\336ed options. The calling routine is sup-) 72 621.33 P
+-0.06 (posed to supply a newline. If an invalid option character is found we inform the user about proper usage of) 72 609.33 P
+(the command. Counts are printed in 8-digit \336elds so that they will line up in columns.) 72 597.33 T
+88.8 572.9 72 572.9 2 L
+V
+N
+1 12 Q
+(22:) 72 574 T
+149.04 572.9 90 572.9 2 L
+V
+N
+(De\336nitions) 90 574 T
+5 10 Q
+(#de\336ne print_count\050n\051 printf\050\322%8ld\323, n\051) 90 556.33 T
+88.8 531.9 72 531.9 2 L
+V
+N
+1 12 Q
+(23:) 72 533 T
+144.48 531.9 90 531.9 2 L
+V
+N
+(Functions) 90 533 T
+5 10 Q
+(wc_print \050which, char_count, wor) 90 515.33 T
+(d_count, line_count\051) 251.43 515.33 T
+(char *which; /* which counts to print */) 108 501.33 T
+(long char_count, wor) 108 487.33 T
+(d_count, line_count;) 211.5 487.33 T
+( /* given totals */) 108 473.33 T
+({) 90 459.33 T
+(while \050*which\051) 108 445.33 T
+(switch \050*which++\051 {) 126 431.33 T
+(case \324l\325: print_count\050line_count\051;) 144 417.33 T
+(br) 162 403.33 T
+(eak;) 171.79 403.33 T
+(case \324w\325: print_count\050wor) 144 389.33 T
+(d_count\051;) 267.73 389.33 T
+(br) 162 375.33 T
+(eak;) 171.79 375.33 T
+(case \324c\325: print_count\050char_count\051;) 144 361.33 T
+(br) 162 347.33 T
+(eak;) 171.79 347.33 T
+(default:) 144 333.33 T
+(if \050\050status & usage_err) 162 319.33 T
+(or\051 == 0\051 {) 265.35 319.33 T
+(fprintf\050stderr) 180 305.33 T
+(,) 236.88 305.33 T
+(\322Usage: %s [-lwc] [\336lename ...]\134n\323,) 198 291.33 T
+(pr) 366.15 291.33 T
+(og_name\051;) 375.94 291.33 T
+(usage_err) 180 277.33 T
+(or;) 227.5 277.33 T
+(}) 162 263.33 T
+(}) 126 249.33 T
+(}) 90 235.33 T
+3 F
+0.45 (Incidentally) 72 201.33 P
+0.45 (, a test of this program against the system) 121.28 201.33 P
+5 F
+0.45 (wc) 313.79 201.33 P
+3 F
+0.45 ( command on a SP) 328.57 201.33 P
+0.45 (ARCstation showed that the) 414.69 201.33 P
+0.82 (``of) 72 189.33 P
+0.82 (\336cial\325) 86.82 189.33 P
+0.82 (\325) 108.86 189.33 P
+5 F
+0.81 (wc) 114.68 189.33 P
+3 F
+0.82 ( was slightly slower) 129.46 189.33 P
+0.82 (. Furthermore, although that) 216.92 189.33 P
+5 F
+0.81 (wc) 346.92 189.33 P
+3 F
+0.82 ( gave an appropriate error message for) 361.7 189.33 P
+(the options `) 72 177.33 T
+5 F
+(abc) 127.03 177.33 T
+3 F
+(\325, it made no complaints about the options `abc\325!) 147.15 177.33 T
+-0.25 (Dare we suggest that the system routine might have been better if its programmer had used a more literate) 72 160.33 P
+(approach?) 72 148.33 T
+0 0 0 1 0 0 0 K
+FMENDPAGE
+%%EndPage: "8" 8
+%%Page: "9" 9
+612 792 0 FMBEGINPAGE
+[0 0 0 1 0 0 0]
+[ 0 0 0 0 1 1 1]
+[ 0 1 1 0 1 0 0]
+[ 1 0 1 0 0 1 0]
+[ 1 1 0 0 0 0 1]
+[ 1 0 0 0 0 1 1]
+[ 0 1 0 0 1 0 1]
+[ 0 0 1 0 1 1 0]
+ 8 FrameSetSepColors
+FrameNoSep
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 10 Q
+0 X
+0 0 0 1 0 0 0 K
+(.. 9) 527.5 36 T
+0 0 0 1 0 0 0 K
+33 54 597 54 2 L
+3 H
+2 Z
+4 X
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+72 696 540 706 C
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+72 705 540 705 2 L
+1 H
+2 Z
+0 X
+0 0 0 1 0 0 0 K
+N
+0 0 612 792 C
+2 14 Q
+0 X
+0 0 0 1 0 0 0 K
+(Appendix B:) 72 710.67 T
+5 F
+(fmweb) 158.34 710.67 T
+2 F
+( source) 206.15 710.67 T
+3 10 Q
+-0.25 (T) 72 681.33 P
+-0.25 (o extract this source, go to special -> conditional text, and hide the conditional tag named \322Fluf) 77 681.33 P
+-0.25 (f\323. Save the) 489.37 681.33 P
+(\336le as a text \336le called fmweb. The \336rst line of this \336le may need changing.) 72 669.33 T
+6 12 Q
+(T) 207.05 646 T
+(able 1: Important variables in fmweb) 213.95 646 T
+3 10 Q
+(name) 127 621.33 T
+(Description) 348.49 621.33 T
+(%chunksByName) 78 599.33 T
+-0.27 (An array of chunks, whose key is the heading of the chunk, and it\325) 213 599.33 P
+-0.27 (s value) 500.07 599.33 P
+(is the entire code in that section.) 213 587.33 T
+($currChunkHeading) 78 567.33 T
+(The current chunk heading) 213 567.33 T
+(@chunkHeadings) 78 547.33 T
+(A list of all the chunk headings, in order of appearance. If a heading has) 213 547.33 T
+(been encountered before, it is not appended to this array) 213 535.33 T
+(.) 463.52 535.33 T
+(%markerReferred) 78 515.33 T
+-0.1 (Keeps track of all those chunk headings that have been referred to \050by a) 213 515.33 P
+(Frame cross reference\051.) 213 503.33 T
+(%markerT) 78 483.33 T
+(oHeading) 123 483.33 T
+-0.38 (A translation table - Each chunk heading has a text \050the \322heading\323\051 that is) 213 483.33 P
+(visible, and a marker text that Frame inserts. Unfortunately) 213 471.33 T
+(, these two) 471.8 471.33 T
+(are not necessarily identical. This translation is necessary since the) 213 459.33 T
+-0.3 (script allows more than one chunk to have the same name \050which is then) 213 447.33 P
+(concatenated\051, but a cross reference can be created to only of these) 213 435.33 T
+(paragraphs.) 213 423.33 T
+($line) 78 403.33 T
+(Global var that contains the current line from the input MIF \336le.) 213 403.33 T
+($currMarkerT) 78 383.33 T
+(ext) 136.89 383.33 T
+(While evaluating a chunk paragraph, this keeps track of the current) 213 383.33 T
+-0.19 (marker text. Subsequently) 213 371.33 P
+-0.19 (, the text of the paragraph and this marker text) 328.04 371.33 P
+(are related by %markerT) 213 359.33 T
+(oHeading) 321.92 359.33 T
+($currModeProc) 78 339.33 T
+-0.06 (A reference to a mode subroutine. Each of these subroutines is part of a) 213 339.33 P
+(state diagram \050shown below\051.) 213 327.33 T
+(@lookFor) 78 307.33 T
+(The set of tokens in which this state is interested.) 213 307.33 T
+(%chunkReferred) 78 287.33 T
+(This array \050keyed by chunk heading\051 tracks all chunks that have been) 213 287.33 T
+(referred to, by other chunks. The chunks that don\325t belong to this cate-) 213 275.33 T
+(gory are the top-level chunks.) 213 263.33 T
+72 635.75 72 256.25 2 L
+V
+0.5 H
+0 Z
+N
+207 636.25 207 255.75 2 L
+V
+N
+540 635.75 540 256.25 2 L
+V
+N
+71.75 636 540.25 636 2 L
+V
+N
+72.25 613.25 539.75 613.25 2 L
+V
+N
+72.25 610.75 539.75 610.75 2 L
+V
+N
+71.75 580 540.25 580 2 L
+V
+N
+71.75 560 540.25 560 2 L
+V
+N
+71.75 528 540.25 528 2 L
+V
+N
+71.75 496 540.25 496 2 L
+V
+N
+71.75 416 540.25 416 2 L
+V
+N
+71.75 396 540.25 396 2 L
+V
+N
+71.75 352 540.25 352 2 L
+V
+N
+71.75 320 540.25 320 2 L
+V
+N
+71.75 300 540.25 300 2 L
+V
+N
+71.75 256 540.25 256 2 L
+V
+N
+0 0 0 1 0 0 0 K
+FMENDPAGE
+%%EndPage: "9" 9
+%%Page: "10" 10
+612 792 0 FMBEGINPAGE
+[0 0 0 1 0 0 0]
+[ 0 0 0 0 1 1 1]
+[ 0 1 1 0 1 0 0]
+[ 1 0 1 0 0 1 0]
+[ 1 1 0 0 0 0 1]
+[ 1 0 0 0 0 1 1]
+[ 0 1 0 0 1 0 1]
+[ 0 0 1 0 1 1 0]
+ 8 FrameSetSepColors
+FrameNoSep
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 10 Q
+0 X
+0 0 0 1 0 0 0 K
+(.. 10) 522.5 36 T
+0 0 0 1 0 0 0 K
+33 54 597 54 2 L
+3 H
+2 Z
+4 X
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+142.01 709.31 72 709.31 2 L
+0 X
+V
+1.02 H
+0 Z
+N
+3 14 Q
+(Description) 72 710.67 T
+3 10 Q
+(fmweb is implemented as a simple state machine, whose state diagram is shown below) 72 691.33 T
+(.) 457.7 691.33 T
+0.26 (Each of the events in the state diagram are mif statements. The subroutines ParaMode, FileMode, Code-) 72 472.33 P
+0.82 (Mode, ChunkMode and W) 72 460.33 P
+0.82 (asteMode implement the states. If these subs are called without any parame-) 190.25 460.33 P
+0.06 (ters, they do the necessary initializations required for that state, such as initializing @lookFor) 72 448.33 P
+0.06 (, which is the) 482.01 448.33 P
+-0.12 (set of lookahead patterns in which the current state is interested. The main loop calls these subs with $line) 72 436.33 P
+(as the parameter - $line contains some event deemed interesting to the current state.) 72 424.33 T
+0.72 (The script \336rst reads in all the chunks and stores them in chunksByName, keyed by the chunk heading.) 72 407.33 P
+0.04 (Each chunk may contain embedded cross references to other chunks. In MIF) 72 395.33 P
+0.04 (, an XrefSrcT) 412.02 395.33 P
+0.04 (ext statement is) 469.89 395.33 P
+-0.05 (the pointer to the source paragraph - more precisely) 72 383.33 P
+-0.05 (, the chunk heading that this XrefSrcT) 300.93 383.33 P
+-0.05 (ext points to, will) 466.8 383.33 P
+1.53 (have a corresponding \322MT) 72 371.33 P
+1.53 (ext\323 statement with exactly the same string. Since a chunk is simply all the) 192.19 371.33 P
+0.51 (\322code\323 paragraph strings concatenated together) 72 359.33 P
+0.51 (, cross references are simply embedded into this stream,) 284.71 359.33 P
+(with a "\134200" character on either end, to identify it later) 72 347.33 T
+(.) 310.89 347.33 T
+1.52 (Finally) 72 330.33 P
+1.52 (, each of the top level chunks are taken in order \050top level chunks are those that haven\325t been) 100.15 330.33 P
+1.83 (referred to by any other chunk\051, and expanded. The expansion process consists of substituting each) 72 318.33 P
+0.94 (embedded reference by the appropriate chunk - this is a recursive process, since the chunk referred to) 72 306.33 P
+(may itself contain other embedded references.) 72 294.33 T
+5 F
+(#/usr/local/bin/perl5) 90 257.33 T
+(#forwar) 90 233.33 T
+(d declarations.) 126.33 233.33 T
+(sub ParaMode;) 90 221.33 T
+(sub FileMode;) 90 209.33 T
+(sub CodeMode;) 90 197.33 T
+(sub ChunkMode;) 90 185.33 T
+(sub W) 90 173.33 T
+(asteMode;) 118.65 173.33 T
+(Initialize\050\051;) 90 149.33 T
+(# Start with the W) 90 125.33 T
+(aste State.) 173.11 125.33 T
+(W) 90 113.33 T
+(asteMode\050\051;) 99.1 113.33 T
+(# Main loop) 90 101.33 T
+(while \050$line = <STDIN>\051 {) 90 89.33 T
+(if \050Inter) 108 77.33 T
+(estingLine\050\051\051 {) 140.82 77.33 T
+72 72 540 720 C
+109.12 486 502.88 688 C
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+7 X
+0 0 0 1 0 0 0 K
+90 450 22 19 342.55 525.33 G
+0.5 H
+2 Z
+0 X
+90 450 22 19 342.55 525.33 A
+285.55 513.33 334.55 535.33 R
+7 X
+V
+N
+329.43 508.62 326.11 513.78 331.67 511.17 330.55 509.89 4 Y
+0 X
+V
+330.56 509.89 330.56 509.89 2 L
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+7 X
+90 450 22 19 342.55 584.22 G
+0 X
+90 450 22 19 342.55 584.22 A
+285.55 572.22 334.55 594.22 R
+7 X
+V
+N
+329.43 567.51 326.11 572.67 331.67 570.05 330.55 568.78 4 Y
+0 X
+V
+330.56 568.78 330.56 568.78 2 L
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+7 X
+90 450 22 19 342.55 644.78 G
+0 X
+90 450 22 19 342.55 644.78 A
+285.55 632.78 334.55 654.78 R
+7 X
+V
+N
+329.43 628.06 326.11 633.22 331.67 630.61 330.55 629.33 4 Y
+0 X
+V
+330.56 629.33 330.56 629.33 2 L
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+3 10 Q
+(W) 130.98 581.45 T
+(aste) 140.05 581.45 T
+(Para) 208.55 581.45 T
+(File) 314.23 640.19 T
+(Code) 314.23 581.45 T
+(Chunk) 314.23 522.71 T
+187.59 587.31 199.12 584 187.59 580.69 187.59 584 4 Y
+V
+163.12 584 187.59 584 2 L
+N
+5 7 Q
+(Para) 170.12 589 T
+295.43 635.29 307.12 638 298.64 629.51 297.04 632.4 4 Y
+V
+226.12 593 297.04 632.4 2 L
+N
+174.66 571.69 163.12 575 174.66 578.31 174.66 575 4 Y
+V
+174.66 575 199.12 575 2 L
+N
+(All other pgf tags) 153.12 565.34 T
+(PgfT) 226.28 614.83 T
+(ag File) 239.95 614.83 T
+(PgfT) 253.28 575.83 T
+(ag code) 266.95 575.83 T
+295.59 587.31 307.12 584 295.59 580.69 295.59 584 4 Y
+V
+235.12 584 295.59 584 2 L
+N
+298.64 535.5 307.12 527 295.43 529.71 297.04 532.61 4 Y
+V
+226.12 572 297.04 532.6 2 L
+N
+(PgfT) 226.28 540.34 T
+(ag chunk) 239.95 540.34 T
+(String) 334.28 668.83 T
+(Char T) 301.28 606.83 T
+(ab, String, Xr) 322.68 606.83 T
+(efSr) 364.68 606.83 T
+(cT) 376.98 606.83 T
+(ext) 384.14 606.83 T
+(MT) 319.28 546.83 T
+(ext , String) 328.35 546.83 T
+429.2 572.8 441 575 432.16 566.89 430.68 569.84 4 Y
+V
+345 527 430.68 569.84 2 L
+N
+430.97 602.91 439.99 595 428.15 596.93 429.56 599.92 4 Y
+V
+336 644 429.57 599.92 2 L
+N
+426.46 586.31 438 583 426.46 579.69 426.46 583 4 Y
+V
+342 583 426.46 583 2 L
+N
+(End of para) 385.28 586.83 T
+3 10 Q
+(W) 443.58 581.45 T
+(aste) 452.65 581.45 T
+72 72 540 720 C
+0 0 612 792 C
+0 0 0 1 0 0 0 K
+FMENDPAGE
+%%EndPage: "10" 10
+%%Page: "11" 11
+612 792 0 FMBEGINPAGE
+[0 0 0 1 0 0 0]
+[ 0 0 0 0 1 1 1]
+[ 0 1 1 0 1 0 0]
+[ 1 0 1 0 0 1 0]
+[ 1 1 0 0 0 0 1]
+[ 1 0 0 0 0 1 1]
+[ 0 1 0 0 1 0 1]
+[ 0 0 1 0 1 1 0]
+ 8 FrameSetSepColors
+FrameNoSep
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 10 Q
+0 X
+0 0 0 1 0 0 0 K
+(.. 11) 522.5 36 T
+0 0 0 1 0 0 0 K
+33 54 597 54 2 L
+3 H
+2 Z
+4 X
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+5 F
+0 X
+(# Call the curr) 126 713.33 T
+(ent mode pr) 193.33 713.33 T
+(oc \050one of ParaMode,FileMode, CodeMode, ChunkMode;) 253.93 713.33 T
+(# W) 126 701.33 T
+(asteMode, or W) 143.41 701.33 T
+(asteOneStringMode\051) 220.07 701.33 T
+(&{$currModePr) 126 689.33 T
+(oc}\050$line\051;) 199.17 689.33 T
+( }) 108 677.33 T
+(}) 90 665.33 T
+(#All chunks have been slurped in.) 90 641.33 T
+(# Find out which chunks have been r) 90 617.33 T
+(eferr) 267.24 617.33 T
+(ed to by othe r chunks.) 289.36 617.33 T
+(for) 90 605.33 T
+(each $k \050keys %markerReferr) 102.66 605.33 T
+(ed\051 {) 241.57 605.33 T
+($chunkReferr) 108 593.33 T
+(ed {$markerT) 171.5 593.33 T
+(oHeading{$k}} = 1;) 234.19 593.33 T
+(}) 90 581.33 T
+(# Can curr) 90 557.33 T
+(ently open only one \336le.) 140.67 557.33 T
+(open \050F) 90 545.33 T
+(, "> $currFile"\051 || die "Could not open $currFile for writing";) 126.06 545.33 T
+(# The "tangle" pr) 90 521.33 T
+(ocess. Expand each top level chunk) 168.23 521.33 T
+(for) 90 509.33 T
+(each $c \050@chunkHeadings\051 {) 102.66 509.33 T
+(if \050! $chunkReferr) 108 497.33 T
+(ed{$c}\051 {) 188.82 497.33 T
+(ChunkExpand \050$c\051;) 126 485.33 T
+($chunksByName{$c} =~ s/\134\134xd\050[2345]\051 /$xlat[$1]/g; #T) 126 473.33 T
+(ranslate smart quotes) 385.59 473.33 T
+($chunksByName{$c} =~ s/\134\134\134\134/\134\134/g; #Convert \134\134 to \134) 126 461.33 T
+($chunksByName{$c} =~ s/\134\134>/>/g; # convert \134> to >) 126 449.33 T
+(print F $chunksByName{$c}, "\134n";) 126 437.33 T
+(}) 108 425.33 T
+(}) 90 413.33 T
+(close \050F\051;) 90 389.33 T
+(exit \0500\051;) 90 377.33 T
+(#--------------------------------------------------------------------------------------------------------------) 90 353.33 T
+(sub) 90 329.33 T
+1 F
+(ChunkExpand) 109.55 329.33 T
+5 F
+( {) 177.75 329.33 T
+( local \050$heading\051 = @_;) 108 317.33 T
+( print "ChunkExpand : $heading \134n" if $debugging;) 108 293.33 T
+( if \050de\336ned \050$chunksByName{$heading}\051\051 {) 108 269.33 T
+(# For each embedded marker found, call CHunkExpand r) 126 257.33 T
+(ecursively.) 404.69 257.33 T
+(# Note the /e option below.) 126 245.33 T
+(1 while) 126 233.33 T
+( \050$chunksByName{$heading} =~) 126 221.33 T
+(s/\134200\050[^\134200]*\051\134200/ChunkExpand\050$markerT) 144 209.33 T
+(oHeading{$1}\051/e\051;) 364.28 209.33 T
+(r) 126 197.33 T
+(etur) 128.97 197.33 T
+(n $chunksByName{$heading};) 148.16 197.33 T
+( } else {) 108 185.33 T
+(r) 126 173.33 T
+(etur) 128.97 173.33 T
+(n "??$heading??"; # T) 148.16 173.33 T
+(o indicate an unr) 251.12 173.33 T
+(esolved cr) 334.2 173.33 T
+(oss r) 384.23 173.33 T
+(efer) 404.28 173.33 T
+(ence.) 423.39 173.33 T
+( }) 108 161.33 T
+(}) 90 149.33 T
+(sub) 90 125.33 T
+1 F
+(W) 109.55 125.33 T
+(asteMode) 118.05 125.33 T
+5 F
+( {) 166.85 125.33 T
+( local \050$ev\051 = @_;) 108 113.33 T
+( if \050! de\336ned $ev\051 {) 108 101.33 T
+(@lookFor = \050$P) 126 89.33 T
+(ARA\051;) 195.21 89.33 T
+($currModePr) 126 77.33 T
+(oc = \134&W) 188.09 77.33 T
+(asteMode;) 235.43 77.33 T
+0 0 0 1 0 0 0 K
+FMENDPAGE
+%%EndPage: "11" 11
+%%Page: "12" 12
+612 792 0 FMBEGINPAGE
+[0 0 0 1 0 0 0]
+[ 0 0 0 0 1 1 1]
+[ 0 1 1 0 1 0 0]
+[ 1 0 1 0 0 1 0]
+[ 1 1 0 0 0 0 1]
+[ 1 0 0 0 0 1 1]
+[ 0 1 0 0 1 0 1]
+[ 0 0 1 0 1 1 0]
+ 8 FrameSetSepColors
+FrameNoSep
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 10 Q
+0 X
+0 0 0 1 0 0 0 K
+(.. 12) 522.5 36 T
+0 0 0 1 0 0 0 K
+33 54 597 54 2 L
+3 H
+2 Z
+4 X
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+5 F
+0 X
+(r) 126 713.33 T
+(etur) 128.97 713.33 T
+(n;) 148.16 713.33 T
+( }) 108 701.33 T
+(ParaMode\050\051;) 108 677.33 T
+(}) 90 665.33 T
+(sub) 90 641.33 T
+1 F
+(ParaMode) 109.55 641.33 T
+5 F
+( {) 159.95 641.33 T
+(local \050$ev\051 = @_;) 108 629.33 T
+(if \050! de\336ned $ev\051 {) 108 617.33 T
+(@lookFor = \050"^ *<PgfT) 126 605.33 T
+(ag `code\325", "^ *<PgfT) 226.25 605.33 T
+(ag `chunk\325", "^ *<PgfT) 326.63 605.33 T
+(ag `File\325"\051;) 430.41 605.33 T
+($currModePr) 126 593.33 T
+(oc = \134&ParaMode;) 188.09 593.33 T
+(r) 126 581.33 T
+(etur) 128.97 581.33 T
+(n;) 148.16 581.33 T
+( }) 108 569.33 T
+( print "ParaMode : $ev \134n" if $debugging;) 108 557.33 T
+( if \050$ev =~ /code/ \051 {) 108 545.33 T
+(CodeMode\050\051;) 126 533.33 T
+( } elsif \050$ev =~ /chunk/ \051 {) 108 521.33 T
+(ChunkMode\050\051;) 126 509.33 T
+( } elsif \050$ev =~ /File/ \051 {) 108 497.33 T
+(FileMode\050\051;) 126 485.33 T
+( } else {) 108 473.33 T
+(W) 126 461.33 T
+(asteMode\050\051;) 135.1 461.33 T
+(}) 108 449.33 T
+(}) 90 437.33 T
+(sub) 90 413.33 T
+1 F
+(FileMode) 109.55 413.33 T
+5 F
+( {) 153.95 413.33 T
+( local \050$ev\051 = @_;) 108 401.33 T
+( if \050! de\336ned $ev\051 {) 108 389.33 T
+(@lookFor = \050"^ *<String", $ENDOFP) 126 377.33 T
+(ARA\051;) 286.02 377.33 T
+($currModePr) 126 365.33 T
+(oc = \134&FileMode;) 188.09 365.33 T
+($currFile = "";) 126 353.33 T
+(r) 126 341.33 T
+(etur) 128.97 341.33 T
+(n;) 148.16 341.33 T
+( }) 108 329.33 T
+( print "FileMode : $ev \134n" if $debugging;) 108 317.33 T
+( if \050$ev =~ /^ *<String.*\134`\050.+\051\134\325>$/ \051 {) 108 305.33 T
+($currFile = $1;) 126 293.33 T
+( } else { # End of para) 108 281.33 T
+(W) 126 269.33 T
+(asteMode\050\051;) 135.1 269.33 T
+(}) 108 257.33 T
+(}) 90 245.33 T
+(sub) 90 221.33 T
+1 F
+(CodeMode) 109.55 221.33 T
+5 F
+( {) 165.15 221.33 T
+( local \050$ev, $h\051 = @_;) 108 209.33 T
+(if \050! de\336ned $ev\051 {) 108 197.33 T
+(@lookFor = \050"^ *<Char T) 126 185.33 T
+(ab", "^ *<String", "^ *<XRefSr) 237.3 185.33 T
+(cT) 368.6 185.33 T
+(ext", $ENDOFP) 378.84 185.33 T
+(ARA\051;) 446.62 185.33 T
+($currModePr) 126 173.33 T
+(oc = \134&CodeMode;) 188.09 173.33 T
+(r) 108 161.33 T
+(etur) 110.97 161.33 T
+(n;) 130.16 161.33 T
+(}) 108 149.33 T
+( print "CodeMode : $ev \134n" if $debugging;) 108 137.33 T
+( if \050$ev =~ /^ *<Char T) 108 125.33 T
+(ab/\051 {) 211.7 125.33 T
+($chunksByName{$currChunkHeading} .= "\134t";) 126 113.33 T
+( } elsif \050$ev =~ /String \134`\050.*\051\134\325>$/\051 {) 108 101.33 T
+($chunksByName{$currChunkHeading} .= "$1"; # Concatenate code to curr) 126 89.33 T
+(ent chunk) 486.22 89.33 T
+(} elsif \050\050$h\051 = \050$ev =~ /^ *<XRefSr) 108 77.33 T
+(cT) 263.81 77.33 T
+(ext \050.*\051>$/\051\051 {) 274.05 77.33 T
+0 0 0 1 0 0 0 K
+FMENDPAGE
+%%EndPage: "12" 12
+%%Page: "13" 13
+612 792 0 FMBEGINPAGE
+[0 0 0 1 0 0 0]
+[ 0 0 0 0 1 1 1]
+[ 0 1 1 0 1 0 0]
+[ 1 0 1 0 0 1 0]
+[ 1 1 0 0 0 0 1]
+[ 1 0 0 0 0 1 1]
+[ 0 1 0 0 1 0 1]
+[ 0 0 1 0 1 1 0]
+ 8 FrameSetSepColors
+FrameNoSep
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 10 Q
+0 X
+0 0 0 1 0 0 0 K
+(.. 13) 522.5 36 T
+0 0 0 1 0 0 0 K
+33 54 597 54 2 L
+3 H
+2 Z
+4 X
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+5 F
+0 X
+($markerReferr) 126 713.33 T
+(ed{$h} = 1; # Mark this chunk r) 193.48 713.33 T
+(efer) 336.95 713.33 T
+(ence as "r) 356.06 713.33 T
+(eferr) 403.94 713.33 T
+(ed to") 426.06 713.33 T
+(# Put the text in as an embedded r) 126 701.33 T
+(efer) 294.12 701.33 T
+(ence) 313.23 701.33 T
+($chunksByName{$currChunkHeading} .= "\134200$h\134200\134n";) 126 689.33 T
+(# The next string is the string of the cr) 126 677.33 T
+(oss r) 301.33 677.33 T
+(efer) 321.38 677.33 T
+(ence itself - having embedded the) 340.49 677.33 T
+(# cr) 126 665.33 T
+(oss r) 143.75 665.33 T
+(efer) 163.8 665.33 T
+(ence itself, we ar) 182.91 665.33 T
+(e not inter) 265.08 665.33 T
+(ested in this string.) 314.12 665.33 T
+(W) 126 653.33 T
+(asteOneStringMode\050\051;) 135.1 653.33 T
+( } elsif \050$ev =~ /$ENDOFP) 108 641.33 T
+(ARA/o\051 {) 225.1 641.33 T
+(# Assuming that each line of the code is in one "code" para . T) 126 629.33 T
+(ime to append a) 426.54 629.33 T
+(# newline) 126 617.33 T
+($chunksByName{$currChunkHeading} .= "\134n";) 126 605.33 T
+(W) 126 593.33 T
+(asteMode\050\051;) 135.1 593.33 T
+( }) 108 581.33 T
+(}) 90 569.33 T
+(sub) 90 545.33 T
+1 F
+(W) 109.55 545.33 T
+(asteOneStringMode) 118.05 545.33 T
+5 F
+( {) 214.05 545.33 T
+(# Called fr) 108 533.33 T
+(om CodeMode above.) 157.5 533.33 T
+( local \050$ev\051 = @_;) 108 521.33 T
+( if \050! de\336ned $ev\051 {) 108 509.33 T
+(@lookFor = \050"^ *<String"\051;) 126 497.33 T
+($currModePr) 126 485.33 T
+(oc = \134&W) 188.09 485.33 T
+(asteOneStringMode;) 235.43 485.33 T
+(r) 126 473.33 T
+(etur) 128.97 473.33 T
+(n;) 148.16 473.33 T
+( }) 108 461.33 T
+( CodeMode\050\051;) 108 449.33 T
+(}) 90 437.33 T
+(sub) 90 413.33 T
+1 F
+(ChunkMode) 109.55 413.33 T
+5 F
+( {) 169.55 413.33 T
+(local \050$ev\051 = @_;) 108 401.33 T
+( if \050! de\336ned $ev\051 {) 108 389.33 T
+(@lookFor = \050"^ *<MT) 126 377.33 T
+(ext", "^ *<String", $ENDOFP) 219.68 377.33 T
+(ARA\051;) 344.53 377.33 T
+($currChunkHeading = "";) 126 365.33 T
+($currMarkerT) 126 353.33 T
+(ext = "";) 187.44 353.33 T
+($currModePr) 126 341.33 T
+(oc = \134&ChunkMode;) 188.09 341.33 T
+(r) 126 329.33 T
+(etur) 128.97 329.33 T
+(n;) 148.16 329.33 T
+( }) 108 317.33 T
+( if \050$ev =~ /^ *<MT) 108 305.33 T
+(ext \050.*\051>$/\051 {) 194.08 305.33 T
+($currMarkerT) 126 293.33 T
+(ext = $1;) 187.44 293.33 T
+( } elsif \050$ev =~ /^ *<String.*\134`\050.+\051\134\325>$/ \051 {) 108 281.33 T
+($currChunkHeading .= $1;) 126 269.33 T
+( } else {) 108 257.33 T
+(# End of chunk para.) 126 245.33 T
+(print "ChunkMode : $1 \134n" if $debugging;) 126 233.33 T
+(if \050! de\336ned $chunksByName{$currChunkHeading}\051 {) 126 221.33 T
+(# Init the curr) 144 209.33 T
+(ent chunk with blank code.) 206.12 209.33 T
+($chunksByName{$currChunkHeading} = "";) 144 197.33 T
+(}) 126 185.33 T
+(if \050! de\336ned $headingSeenBefor) 126 173.33 T
+(e{$currChunkHeading}\051 {) 279.39 173.33 T
+(# New chunk heading name seen.) 144 161.33 T
+( push \050@chunkHeadings, $currChunkHeading\051;) 144 149.33 T
+( $headingSeenBefor) 144 137.33 T
+(e{$currChunkHeading} = 1;) 242.4 137.33 T
+(}) 126 125.33 T
+(if \050$currMarkerT) 126 113.33 T
+(ext ne ""\051 {) 199.04 113.33 T
+(# cr) 144 101.33 T
+(oss r) 161.75 101.33 T
+(efer) 181.8 101.33 T
+(ence between marker text and the actual heading) 200.91 101.33 T
+($markerT) 144 89.33 T
+(oHeading{$currMarkerT) 187.06 89.33 T
+(ext} = $currChunkHeading;) 300.4 89.33 T
+(}) 126 77.33 T
+0 0 0 1 0 0 0 K
+FMENDPAGE
+%%EndPage: "13" 13
+%%Page: "14" 14
+612 792 0 FMBEGINPAGE
+[0 0 0 1 0 0 0]
+[ 0 0 0 0 1 1 1]
+[ 0 1 1 0 1 0 0]
+[ 1 0 1 0 0 1 0]
+[ 1 1 0 0 0 0 1]
+[ 1 0 0 0 0 1 1]
+[ 0 1 0 0 1 0 1]
+[ 0 0 1 0 1 1 0]
+ 8 FrameSetSepColors
+FrameNoSep
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+0 10 Q
+0 X
+0 0 0 1 0 0 0 K
+(.. 14) 522.5 36 T
+0 0 0 1 0 0 0 K
+33 54 597 54 2 L
+3 H
+2 Z
+4 X
+N
+0 0 0 1 0 0 0 K
+0 0 0 1 0 0 0 K
+5 F
+0 X
+(W) 126 713.33 T
+(asteMode\050\051;) 135.1 713.33 T
+(}) 108 701.33 T
+(}) 90 689.33 T
+(sub) 90 665.33 T
+1 F
+(Inter) 109.55 665.33 T
+(estingLine) 130.87 665.33 T
+5 F
+( {) 178.87 665.33 T
+(# Does the line belong to any of the lookahead tokens?) 108 653.33 T
+(for) 108 641.33 T
+(each $l \050@lookFor\051 {) 120.66 641.33 T
+(if \050$line =~ /$l/\051 {) 126 629.33 T
+(r) 144 617.33 T
+(etur) 146.97 617.33 T
+(n $l;) 166.16 617.33 T
+(}) 126 605.33 T
+( }) 108 593.33 T
+(r) 108 581.33 T
+(etur) 110.97 581.33 T
+(n undef;) 130.16 581.33 T
+(}) 90 569.33 T
+(sub) 90 545.33 T
+1 F
+(Initialize) 109.55 545.33 T
+5 F
+( {) 148.55 545.33 T
+($debugging = 0; # Change to 1 to get a trace.) 108 533.33 T
+($currFile = "-";) 108 521.33 T
+(# Output to stdout) 171.33 521.33 T
+($P) 108 509.33 T
+(ARA = \325^ *<Para\325;) 118.72 509.33 T
+($ENDOFP) 108 497.33 T
+(ARA = \325^ *> # end of Para\325;) 152.46 497.33 T
+(#T) 108 473.33 T
+(ranslation table for smart quotes.) 117.5 473.33 T
+($xlat[2] = "\134"";) 108 461.33 T
+($xlat[3] = "\134"";) 108 449.33 T
+($xlat[4] = "\134\325";) 108 437.33 T
+($xlat[5] = "\134\325";) 108 425.33 T
+(# Start of) 108 401.33 T
+(f with a default chunk heading, in case the pr) 150.4 401.33 T
+(ogrammer starts of) 371.1 401.33 T
+(f code without) 462.13 401.33 T
+(# a chunk heading) 108 389.33 T
+($currChunkHeading = " DEF) 108 377.33 T
+(AUL) 264.82 377.33 T
+(T ";) 282.93 377.33 T
+($chunksByName {$currChunkHeading} = "";) 108 365.33 T
+(push \050@chunkHeadings, $currChunkHeading\051;) 108 353.33 T
+(}) 90 341.33 T
+0 0 0 1 0 0 0 K
+FMENDPAGE
+%%EndPage: "14" 14
+%%Trailer
+%%BoundingBox: 0 0 612 792
+%%PageOrder: Ascend
+%%Pages: 14
+%%DocumentFonts: Times-Roman
+%%+ AvantGarde-Demi
+%%+ Helvetica-Bold
+%%+ Helvetica
+%%+ Helvetica-Oblique
+%%+ AvantGarde-Book
+%%+ Times-Bold
+%%+ Courier
+%%+ AvantGarde-BookOblique
+%%EOF