%%
%% This is file `doc.sty', generated
%% on <1993/9/27> with the docstrip utility (2.0r).
%%
%% The original source files were:
%%
%% doc.doc  (with options: `style,multicol')
%%
%% Copyright (C) 1989-1992 by Frank Mittelbach. All rights reserved.
%%
%% This file is part of the doc package.
%%
%% IMPORTANT NOTICE:
%%
%% You are not allowed to change this file. You may however copy
%% this file to a file with a different name and then change the
%% copy if you obey the restrictions on file changes described in
%% readme.mz.
%%
%% You are NOT ALLOWED to distribute this file alone. You are NOT
%% ALLOWED to take money for the distribution or use of this file
%% (or a changed version) except for a nominal charge for copying
%% etc.
%%
%% You are allowed to distribute this file under the condition that
%% it is distributed together with all files mentioned in
%% readme.mz0.
%%
%% If you receive only some of these files from someone, complain!
%%
%% However, if these files are distributed by established suppliers
%% as part of a complete TeX distribution, and the structure of the
%% distribution would make it difficult to distribute the whole set
%% of files, *those parties* are allowed to distribute only some of
%% the files provided that it is made clear that the user will get
%% a complete distribution-set upon request to that supplier (not
%% me). Notice that this permission is not granted to the end
%% user.
%%
%%
%% For error reports in case of UNCHANGED versions see readme.mz
%%
%%

\def\fileversion{v1.7k}
\def\filedate{92/08/24}
\def\docdate {92/08/28}

%% \CharacterTable
%%  {Upper-case    \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
%%   Lower-case    \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
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%%

%% Copyright (C) 1989-1992 Frank Mittelbach, all rights reserved.
%%% \CharacterTable
%%%  {Upper-case    \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
%%%   Lower-case    \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
%%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%%   Dollar        \$     Percent       \%     Ampersand     \&
%%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%%   Asterisk      \*     Plus          \+     Comma         \,
%%%   Minus         \-     Point         \.     Solidus       \/
%%%   Colon         \:     Semicolon     \;     Less than     \<
%%%   Equals        \=     Greater than  \>     Question mark \?
%%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%%   Right brace   \}     Tilde         \~}
%%%
\@ifundefined{macro@cnt}{}{\endinput} \typeout{Style-Option: `doc'
\fileversion \@spaces\space\space <\filedate> (FMi)} \typeout{English
  Documentation \@spaces\@spaces\space <\docdate> (DLo, FMi, RMCS)}
\catcode`\^^A=14
\def\macrocode{\macro@code
  \frenchspacing \@vobeyspaces
  \xmacro@code}
\def\macro@code{%
  \topsep \MacrocodeTopsep
  \@beginparpenalty \predisplaypenalty
  \trivlist \parskip \z@ \item[]%
  \macro@font
  \leftskip\@totalleftmargin \advance\leftskip\MacroIndent
  \rightskip\z@ \parindent\z@ \parfillskip\@flushglue
  \blank@linefalse \def\par{\ifblank@line
                            \leavevmode\fi
                            \blank@linetrue\@@par
                            \penalty\interlinepenalty}
  \obeylines \let\do\@makeother \catcode`\`\active \@noligs \dospecials
  \global\@newlistfalse
  \global\@minipagefalse
  \ifcodeline@index
    \everypar{\global\advance\c@CodelineNo\@ne
              \llap{\theCodelineNo\ \hskip\@totalleftmargin}%
              \check@module}%
  \else \everypar{\check@module}%
  \fi
  \init@crossref}
\newif\ifblank@line
\def\endmacrocode{%
                \ifpm@module \endgroup \pm@modulefalse \fi
                \everypar{}%
                \global\@inlabelfalse
                \endtrivlist
                \close@crossref}
\@ifundefined{MacroFont}{%
 \ifx\undefined\selectfont
   \def\MacroFont{\small\tt}\else
   \def\MacroFont{\math@fontsfalse\reset@font\small\tt}\fi
 }{}
\@ifundefined{AltMacroFont}{%
 \ifx\undefined\selectfont
   \def\AltMacroFont{\small\tt}\else
   \def\AltMacroFont{\math@fontsfalse\small\reset@font\it\tt}\fi
 }{}
\let\macro@font=\MacroFont
\def\check@module{%
 \ifcheck@modules
   \ifpm@module \endgroup \pm@modulefalse \fi
   \expandafter\futurelet\expandafter\next\expandafter\ch@percent
 \fi}
\newif\ifpm@module
\def\DontCheckModules{\check@modulesfalse}
\def\CheckModules{\check@modulestrue}
\newif\ifcheck@modules  \check@modulestrue
\def\ch@percent{%
 \if \percentchar\next
   \expandafter\check@angle
 \fi}
\def\check@angle#1{\futurelet\next\ch@angle}
\def\ch@angle{\if<\next
   \expandafter\ch@plus@etc
 \else \percentchar \fi}
\def\ch@plus@etc<{\futurelet\next\check@plus@etc}
\def\check@plus@etc{%
   \if +\next
     \let\next\pm@module
   \else\if -\next
     \let\next\pm@module
   \else\if *\next
     \let\next\star@module
   \else\if /\next
     \let\next\slash@module
   \else
     \let\next\pm@module
   \fi\fi\fi\fi
   \next}
\def\pm@module#1>{\pm@moduletrue
  \Module{#1}\begingroup
    \advance\guard@level\@ne
    \ifnum\guard@level>\c@StandardModuleDepth\AltMacroFont\fi
}
\def\star@module#1>{%
 \Module{#1}%
 \global \advance \guard@level\@ne
 \ifnum \guard@level>\c@StandardModuleDepth
   \global\let\macro@font=\AltMacroFont \macro@font
 \fi}
\def\slash@module#1>{%
 \Module{#1}%
 \global \advance \guard@level\m@ne
 \ifnum \guard@level=\c@StandardModuleDepth
   \global\let\macro@font\MacroFont  \macro@font
 \fi
}
\newcounter{StandardModuleDepth}
\newcount \guard@level
\@ifundefined{Module}{%
 \ifx\undefined\selectfont
   \def\Module#1{{\mod@math@codes$\fam\sffam\langle #1\rangle$}}
 \else
   \expandafter\ifx\csname ds@oldlfont\endcsname\relax
     \def\Module#1{{\mod@math@codes$\langle\sfmath{#1}\rangle$}}
   \else
     \def\Module#1{{\mod@math@codes$\langle{\sfmath #1}\rangle$}}
   \fi
 \fi}{}
\def\mod@math@codes{\mathcode`\|="226A \mathcode`\&="2026}
\ifx\selectfont\undefined
\else
 \ifx\sfmath\undefined
   \newmathalphabet*{\sfmath}{\sfdefault}{m}{n}\fi
\fi
\newskip\MacrocodeTopsep \MacrocodeTopsep = 3pt plus 1.2pt minus 1pt
\newdimen\MacroIndent
\settowidth\MacroIndent{\rm\scriptsize 00\ }
\@namedef{macrocode*}{\macro@code\sxmacro@code}
\expandafter\let\csname endmacrocode*\endcsname = \endmacrocode
\catcode`\!=\catcode`\%   ^^A In this section there must not be
                             ^^A any exclamation marks.
                             ^^A
\begingroup
\catcode`\|=\z@ \catcode`\[=\@ne \catcode`\]=\tw@
\catcode`\{=12 \catcode`\}=12
\catcode`\%=12 \catcode`\ =\active \catcode`\\=\active
!%    \end{macrocode*}
!    Next follows the actual definition of  \verb+\macro@code+;
!    notice the
!    use of the new escape character.  We manage to get the argument
!    surrounded by the string \verb+\end{macrocode}+, but at the end
!    however, in spite of the actual characters used during the
!    definition of
!    this macro, \verb+\end+ with the argument \verb+{macrocode}+
!    will be executed, to ensure a balanced environment.
!    \begin{macrocode*}
|gdef|xmacro@code#1%    \end{macrocode}[#1|end[macrocode]]
!%    \end{macrocode*}
! \begin{macro}{\sxmacro@code}
!    The definition of \verb+\sxmacro@code+ is completely analogous,
!    only
!    here a slightly different terminating string will be used.
!    Note that the space is not active in this environment.
!    \begin{macrocode}
|catcode`| =12
|gdef|sxmacro@code#1%    \end{macrocode*}[#1|end[macrocode*]]
!%    \end{macrocode}
!    because the \verb+\catcode+ changes have been made local by
!    commencing a
!    new group, there now follows the matching \verb+\endgroup+
!    in a rather
!    unusual style of writing.
!    \begin{macrocode}
|endgroup
!%    \end{macrocode}
\catcode`\!=12
\def\DescribeMacro{\leavevmode\@bsphack
  \begingroup\MakePrivateLetters\Describe@Macro}
\def\Describe@Macro#1{\endgroup
             \marginpar{\raggedleft\PrintDescribeMacro{#1}}%
             \SpecialUsageIndex{#1}\@esphack\ignorespaces}
\def\DescribeEnv{\leavevmode\@bsphack\begingroup\MakePrivateLetters
 \Describe@Env}
\def\Describe@Env#1{\endgroup
             \marginpar{\raggedleft\PrintDescribeEnv{#1}}%
             \SpecialEnvIndex{#1}\@esphack\ignorespaces}
\reversemarginpar
\setlength\marginparpush{0pt}  \setlength\marginparwidth{8pc}
{\catcode`\|=\z@ \catcode`\\=12
|gdef|bslash{\}}
\def\verbatim{\@beginparpenalty \predisplaypenalty \@verbatim
             \MacroFont \frenchspacing \@vobeyspaces \@xverbatim}
\@namedef{verbatim*}{\@beginparpenalty \predisplaypenalty \@verbatim
             \MacroFont \@sxverbatim}
\def\@verbatim{\trivlist \item[]\if@minipage\else\vskip\parskip\fi
     \leftskip\@totalleftmargin\rightskip\z@
     \parindent\z@\parfillskip\@flushglue\parskip\z@
     \@@par
     \@tempswafalse
\def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par
         \penalty\interlinepenalty
  \check@percent}%
\obeylines \catcode`\`\active \@noligs \let\do\@makeother
\dospecials}
{\catcode`\%=12
\long\gdef\check@percent#1{\ifx #1%\let\next\@empty \else
                                   \let\next=#1\fi \next}}
\begingroup
 \lccode`\~=`\^^M
 \lowercase{%
   \gdef\verb{\relax
     \ifmmode \hbox \else \leavevmode\null \fi
     \bgroup
     \tt   \catcode`\`\active \@noligs
     \let~\verb@err
     \catcode`\^^M\active
     \let\do\@makeother \dospecials
     \@ifstar\@sverb{\@vobeyspaces \frenchspacing \@sverb}}}
\endgroup
\def\verb@err{\egroup\@latexerr{\string\verb\space
              command ended by end of line.}\@ehc}
\def\@sverb#1{%
 \catcode`#1\active  \lccode`\~`#1%
 \lowercase{\let~\egroup}}
\newcount\macro@cnt \macro@cnt=0
\newcount\macro@level \macro@level=0
\def\macro{%
  \ifnum\macro@level=\z@ \begingroup \fi
  \catcode`\\12
  \MakePrivateLetters \m@cro@}
\long\def\m@cro@#1{\endgroup \topsep\MacroTopsep \trivlist
  \advance\macro@level\@ne
  \edef\saved@macroname{\string#1}%
 \def\makelabel##1{\llap{##1}}%
 \if@inlabel
   \let\@tempa\@empty \count@\macro@cnt
   \loop \ifnum\count@>\z@
     \edef\@tempa{\@tempa\hbox{\strut}}\advance\count@\m@ne \repeat
   \edef\makelabel##1{\llap{\vtop to\baselineskip
                              {\@tempa\hbox{##1}\vss}}}%
   \advance \macro@cnt \@ne
 \else  \macro@cnt\@ne  \fi
 \edef\@tempa{\noexpand\item[\noexpand\PrintMacroName{\string#1}]}%
 \@tempa
 {\advance\c@CodelineNo\@ne\SpecialMainIndex{#1}\nobreak}%
 \DoNotIndex{#1}%
 \ignorespaces}
\def\endmacro{%
  \endtrivlist
  \ifnum\macro@level>\@ne \advance\macro@level\m@ne \begingroup \fi}
\newskip\MacroTopsep     \MacroTopsep = 7pt plus 2pt minus 2pt
\@ifundefined{PrintMacroName}
  {\def\PrintMacroName#1{\strut \MacroFont \string #1\ }}{}
\@ifundefined{PrintDescribeMacro}
  {\def\PrintDescribeMacro#1{\strut \MacroFont \string #1\ }}{}
\@ifundefined{PrintDescribeEnv}
  {\def\PrintDescribeEnv#1{\strut \MacroFont #1\ }}{}
\begingroup
\catcode`\~\active
\gdef\SpecialEscapechar#1{%
   \begingroup
    \uccode`\~`#1%
    \uppercase{\gdef\active@escape@char{~}}%
    \escapechar\m@ne  \xdef\special@escape@char{\string#1}%
  \endgroup}
\endgroup
\begingroup   \catcode`\|=\z@  \catcode`\\=\active
|gdef|init@crossref{|catcode`|\|active   |let\|bslash
   |MakePrivateLetters
   |catcode|expandafter`|special@escape@char|active
   |expandafter|let|active@escape@char|scan@macro}
|endgroup
\SpecialEscapechar{\\}
\@ifundefined{MakePrivateLetters}
   {\let\MakePrivateLetters\makeatletter}{}
\def\close@crossref{\SpecialEscapechar\\}
\def\scan@macro{%
  \special@escape@char
  \step@checksum
  \ifscan@allowed
     \let\macro@namepart\@empty
     \def\next{\futurelet\next\macro@switch}%
  \else \let\next\@empty \fi
  \next}
\newif\ifscan@allowed    \scan@allowedtrue
\def\DisableCrossrefs{\@bsphack\scan@allowedfalse\@esphack}
\def\EnableCrossrefs{\@bsphack\scan@allowedtrue
                    \def\DisableCrossrefs{\@bsphack\@esphack}\@esphack}
\def\macro@switch{\ifcat\noexpand\next a%
    \let\next\macro@name
    \else \let\next\short@macro  \fi
  \next}
\def\short@macro#1{\begingroup
  \catcode`\&=11  \uccode`\&=\expandafter`\string#1%
  \uppercase{\def\macro@namepart{&}}%
  \endgroup
  \ifnot@excluded
    \produce@index{#1}\fi
   \scan@allowedfalse#1%
   \scan@allowedtrue }
\def\produce@index#1{%
 \if\noexpand#1\special@escape@char
    \scan@allowedfalse \it@is@a\special@escape@char \else
    \if\noexpand#1\bslash \it@is@a\bslash \else
      \if\noexpand#1\space \it@is@a\space \else
        \ifx#1\par
        \it@is@a\space \else
        \ifx#1\relax \else
          \if\noexpand#1\bgroup \LeftBraceIndex \else
            \if\noexpand#1\egroup \RightBraceIndex \else
              \if\noexpand#1\percentchar \PercentIndex \else
                \it@is@a{\string#1}%
      \fi \fi \fi \fi \fi \fi \fi \fi}
\def\macro@name#1{\edef\macro@namepart{\macro@namepart#1}%
    \futurelet\next\more@macroname}
\def\more@macroname{\ifcat\noexpand\next a%
    \let\next\macro@name
    \else \let\next\macro@finish \fi
    \next}
\def\macro@finish{%
 \macro@namepart
 \ifnot@excluded
    \edef\@tempa{\noexpand\SpecialIndex{\bslash\macro@namepart}}%
    \@tempa  \fi}
\def\DoNotIndex{\begingroup \MakePrivateLetters
   \catcode`\\12
   \do@not@index}
\long\def\do@not@index#1{%
   \endgroup
   \addto@hook\index@excludelist{#1,}}
\long\def\addto@hook#1#2{#1\expandafter{\the#1#2}}
\newtoks\index@excludelist
\index@excludelist{}
\begingroup
\catcode`\|=0%
\catcode`\\=12
|gdef|ifnot@excluded{|expandafter
    |expanded@notin|expandafter{|expandafter
    \|macro@namepart,}{|the|index@excludelist}}
|endgroup
\def\expanded@notin#1#2{%
\def\in@@##1#1##2##3\in@@{%
 \ifx\expanded@notin##2}%
\expandafter\in@@#2#1\expanded@notin\in@@}
\@ifundefined{actualchar}{\def\actualchar{=}}{}
\@ifundefined{quotechar}{\def\quotechar{!}}{}
\@ifundefined{levelchar}{\def\levelchar{>}}{}
\@ifundefined{encapchar}{\def\encapchar{|}}{}
\@ifundefined{verbatimchar}{\def\verbatimchar{+}}{}
\def\SpecialIndex#1{\@bsphack\special@index{\expandafter\@gobble
                                     \string#1\actualchar
     \string\verb\quotechar*\verbatimchar\string#1\verbatimchar}%
   \@esphack}

\def\SpecialMainIndex#1{\@bsphack\special@index{\expandafter\@gobble
                                       \string#1\actualchar
                                       \string\verb
                                       \quotechar*\verbatimchar
                                       \string#1\verbatimchar
                                       \encapchar main}%
                       \@esphack}
\def\SpecialUsageIndex#1{\@bsphack\index{\expandafter\@gobble\string#1%
   \actualchar\string\verb\quotechar*\verbatimchar
   \string#1\verbatimchar
   \encapchar usage}\@esphack}
\def\SpecialEnvIndex#1{\@bsphack
   \index{#1\actualchar{\tt #1} (environment)\encapchar usage}%
   \index{environments:\levelchar{\tt #1}\encapchar usage}\@esphack}
\def\SortIndex#1#2{\index{#1\actualchar#2}}
\def\it@is@a#1{\special@index{\quotechar #1\actualchar
                         \string\verb\quotechar*\verbatimchar
                         \quotechar\bslash\quotechar#1\verbatimchar}}
\@ifundefined{LeftBraceIndex}{\def\LeftBraceIndex{%
  \special@index{\bgroup\actualchar\string\verb\quotechar*\verbatimchar
         \quotechar\bslash{\verbatimchar\string\iffalse}\string\fi}}}{}

\@ifundefined{RightBraceIndex}{\def\RightBraceIndex{%
\special@index{\egroup\actualchar\string\iffalse{\string\fi\string\verb
          \quotechar*\verbatimchar\quotechar\bslash}\verbatimchar}}}{}
\@ifundefined{PercentIndex}
 {\def\PercentIndex{\it@is@a\percentchar}}{}
\def\OldMakeindex{\def\PercentIndex{%
   \special@index{\quotechar\percentchar\actualchar\string\verb
          \quotechar*\verbatimchar\quotechar\bslash
          \percentchar\percentchar\verbatimchar}}}
{\catcode`\%=12 \gdef\percentchar{%}}
\newif\ifhave@multicol
\openin\@ne multicol.sty
\ifeof\@ne \else \have@multicoltrue \fi
\closein\@ne \relax
\have@multicoltrue
\ifhave@multicol \input{multicol.sty} \fi
\newdimen\IndexMin         \IndexMin       = 80pt
\newcount\c@IndexColumns   \c@IndexColumns = 3
\ifhave@multicol
 \renewenvironment{theindex}
   {\begin{multicols}\c@IndexColumns[\index@prologue][\IndexMin]%
     \IndexParms \let\item\@idxitem \ignorespaces}%
   {\end{multicols}}
\else
 \typeout{Can't find multicols.sty -- will use normal index layout if
    necessary.}
 \def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
   \columnseprule \z@  \columnsep 35\p@
   \twocolumn[\index@prologue]%
   \IndexParms \let\item\@idxitem \ignorespaces}
 \def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
\fi
\long\def\IndexPrologue#1{\@bsphack\def\index@prologue{#1}\@esphack}
\@ifundefined{index@prologue}
    {\def\index@prologue{\section*{Index}%
                \markboth{Index}{Index}%
                The italic numbers denote the pages where the
                corresponding entry is described,
                numbers underlined point to the definition,
                all others indicate the places where it is used.
                }}{}
\@ifundefined{IndexParms}
   {\def\IndexParms{%
      \parindent \z@
      \columnsep 15pt
      \parskip 0pt plus 1pt
      \rightskip 15pt
      \mathsurround \z@
      \parfillskip=-15pt
       \small
      \def\@idxitem{\par\hangindent 30pt}%
      \def\subitem{\@idxitem\hspace*{15pt}}%
      \def\subsubitem{\@idxitem\hspace*{25pt}}%
      \def\indexspace{\par\vspace{10pt plus 2pt minus 3pt}}%
     }}{}
\def\efill{\hfill\nopagebreak}%
\def\dotfill{\leaders\hbox to.6em{\hss .\hss}\hskip\z@ plus  1fill}%
\def\dotfil{\leaders\hbox to.6em{\hss .\hss}\hfil}%
\def\pfill{\unskip~\dotfill\penalty500\strut\nobreak
              \dotfil~\ignorespaces}%
\def\*{\leavevmode\lower.8ex\hbox{$\,\widetilde{\ }\,$}}
\@ifundefined{main}{\def\main#1{\underline{#1}}}{}
\@ifundefined{usage}{\def\usage#1{{\it #1}}}{}
\def\PrintIndex{\@input{\jobname.ind}}
\def\printindex{\typeout{\string\printindex\space is obsolete!}%
               \typeout{Please use \string\PrintIndex\space
                        if you are a macro implementor^^J
                        or get a newer version of the documented
                        software if you are a user}%
               \PrintIndex}
\def\changes{\@bsphack\begingroup\@sanitize
  \catcode`\\\z@ \catcode`\ 10 \MakePercentIgnore
  \changes@}
\def\changes@#1#2#3{%
 \def\protect##1{\string##1\space}%
 \edef\@tempa{\noexpand\glossary{#1\levelchar
                                \expandafter\@gobble
                                \saved@macroname\actualchar
                                \string\verb\quotechar*%
                                \verbatimchar\saved@macroname
                                \verbatimchar:\levelchar #3}}%
 \@tempa\endgroup\@esphack}
\def\saved@macroname{"General"}
\let\RecordChanges\makeglossary
\newdimen\GlossaryMin         \GlossaryMin       = 80pt
\newcount\c@GlossaryColumns   \c@GlossaryColumns = 2
\ifhave@multicol
 \newenvironment{theglossary}{%
   \begin{multicols}\c@GlossaryColumns
                    [\glossary@prologue][\GlossaryMin]%
   \GlossaryParms \let\item\@idxitem \ignorespaces}%
  {\end{multicols}}
\else
 \newenvironment{theglossary}{%
     \@restonecoltrue\if@twocolumn\@restonecolfalse\fi
     \columnseprule \z@  \columnsep 35\p@
     \twocolumn[\glossary@prologue]%
     \GlossaryParms \let\item\@idxitem \ignorespaces}
   {\if@restonecol\onecolumn\else\clearpage\fi}
\fi
\long\def\GlossaryPrologue#1{\@bsphack
                            \def\glossary@prologue{#1}%
                            \@esphack}
\@ifundefined{glossary@prologue}
    {\def\glossary@prologue{\section*{{Change History}}%
                \markboth{{Change History}}{{Change History}}%
                }}{}
\@ifundefined{GlossaryParms}{\let\GlossaryParms\IndexParms}{}
\def\PrintChanges{\@input{\jobname.gls}}
\long\def\StopEventually#1{\@bsphack\gdef\Finale{#1%
             \check@checksum}%
          \init@checksum
          \@esphack}
\def\OnlyDescription{\@bsphack\long\def\StopEventually##1{%
          ##1\endinput}\@esphack}
\begingroup
\obeyspaces%
\catcode`\^^M\active%
\gdef\meta{\begingroup\obeyspaces\catcode`\^^M\active%
\let^^M\do@space\let \do@space%
\def\-{\egroup\discretionary{-}{}{}\hbox\bgroup\it}%
\m@ta}%
\endgroup
\def\m@ta#1{\leavevmode\hbox\bgroup$\langle$\it#1\/$\rangle$\egroup
   \endgroup}
\def\do@space{\egroup\space
   \hbox\bgroup\it\futurelet\next\sp@ce}
\def\sp@ce{\ifx\next\do@space\expandafter\sp@@ce\fi}
\def\sp@@ce#1{\futurelet\next\sp@ce}
\def\IndexInput#1{%
    \begingroup \macro@code
  \frenchspacing \@vobeyspaces
    \input{#1}\endmacrocode
    \endgroup}
\def\maketitle{\par
     \begingroup \def \thefootnote {\fnsymbol {footnote}}%
     \setcounter {footnote}\z@
     \def \@makefnmark {\hbox to \z@{$^{\@thefnmark }$\hss }}%
     \if@twocolumn \twocolumn [\@maketitle ]%
     \else \newpage \global \@topnum \z@ \@maketitle \fi
      \thispagestyle{titlepage}\@thanks \endgroup
     \setcounter {footnote}\z@
     \gdef\@date{\today}\gdef\@thanks{}%
     \gdef\@author{}\gdef\@title{}}
\@ifundefined{ps@titlepage}
   {\let\ps@titlepage=\ps@plain}{}
\def\MakeShortVerb#1{%
 \typeout{*** Made \expandafter\@gobble\string#1\space a short
          reference for \string\verb \on@line\space ***}%
 \add@special{#1}%
 \expandafter
 \xdef\csname cc\string#1\endcsname{\the\catcode`#1}%
 \begingroup
   \catcode`\~\active  \lccode`\~`#1%
   \lowercase{%
   \global\expandafter\let
      \csname ac\string#1\endcsname~%
   \gdef~{\verb~}}%
 \endgroup
 \global\catcode`#1\active}
\def\DeleteShortVerb#1{%
 \expandafter\ifx\csname cc\string#1\endcsname\relax
 \else
   \typeout{*** Deleted \expandafter\@gobble\string#1\space as short
            reference for \string\verb \on@line\space ***}%
   \rem@special{#1}%
   \global\catcode`#1\csname cc\string#1\endcsname
   \ifnum\catcode`#1=\active
     \begingroup
       \catcode`\~\active   \lccode`\~`#1%
       \lowercase{%
         \global\expandafter\let\expandafter~%
         \csname ac\string#1\endcsname}%
     \endgroup \fi \fi}
\def\add@special#1{%
 \rem@special{#1}%
 \expandafter\gdef\expandafter\dospecials\expandafter
   {\dospecials \do #1}%
 \expandafter\gdef\expandafter\@sanitize\expandafter
   {\@sanitize \@makeother #1}}
\def\rem@special#1{%
 \def\do##1{%
   \ifnum`#1=`##1 \else \noexpand\do\noexpand##1\fi}%
 \xdef\dospecials{\dospecials}%
 \begingroup
   \def\@makeother##1{%
     \ifnum`#1=`##1 \else \noexpand\@makeother\noexpand##1\fi}%
   \xdef\@sanitize{\@sanitize}%
 \endgroup}
\def\MakeShortverb{\typeout{*** Switch to \noexpand\MakeShortVerb
                        syntax, this is obsolete ***}\MakeShortVerb}
\def\DeleteShortverb{\typeout{*** Switch to \noexpand\DeleteShortVerb
                        syntax, this is obsolete ***}\DeleteShortVerb}
\def\init@checksum{\relax
   \global\bslash@cnt\z@}
\def\check@checksum{\relax
    \ifnum\check@sum=\z@
      \typeout{**********************************}%
      \typeout{* This macro file has no checksum!}%
      \typeout{* The checksum should be \the\bslash@cnt!}%
      \typeout{**********************************}%
    \else
      \ifnum\check@sum=\bslash@cnt
        \typeout{*******************}%
        \typeout{* Checksum passed *}%
        \typeout{*******************}%
      \else
        \errhelp\wrong@checksum
        \errmessage{Checksum not passed
                   (\the\check@sum<>\the\bslash@cnt)}%
       \fi
    \fi
    \global\check@sum\z@}
\newcount\check@sum           \check@sum  = \z@
\newcount\bslash@cnt          \bslash@cnt = \z@
\newhelp\wrong@checksum
  {The currently documented file seems to be wrong.^^J%
   Try to get a correct version.}%
\def\CheckSum#1{\@bsphack\global\check@sum#1\relax\@esphack}
\def\step@checksum{\global\advance\bslash@cnt\@ne}
\def\CharacterTable{\begingroup \CharTableChanges \character@table}
\begingroup
 \catcode`\~=11
 \gdef\character@table#1{\def\used~table{#1}%
     \ifx\used~table\default~table
          \typeout{***************************}%
          \typeout{* Character table correct *}%
          \typeout{***************************}%
     \else
        \errhelp\wrong@table
        \errmessage{Character table corrupted}%
        \show\default~table
        \show\used~table
     \fi
     \endgroup}
 \global\let\CharTableChanges\@empty
 \makeatother
 \gdef\default~table
    {Upper-case    \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
     Lower-case    \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
     Digits        \0\1\2\3\4\5\6\7\8\9
     Exclamation   \!     Double quote  \"     Hash (number) \#
     Dollar        \$     Percent       \%     Ampersand     \&
     Acute accent  \'     Left paren    \(     Right paren   \)
     Asterisk      \*     Plus          \+     Comma         \,
     Minus         \-     Point         \.     Solidus       \/
     Colon         \:     Semicolon     \;     Less than     \<
     Equals        \=     Greater than  \>     Question mark \?
     Commercial at \@     Left bracket  \[     Backslash     \\
     Right bracket \]     Circumflex    \^     Underscore    \_
     Grave accent  \`     Left brace    \{     Vertical bar  \|
     Right brace   \}     Tilde         \~}
\endgroup
 \newhelp\wrong@table{Some of the ASCII characters are corrupted.^^J
           I now \string\show\space you both tables for comparison.}
\newif\ifcodeline@index \codeline@indexfalse
\def\codeline@wrindex#1{\if@filesw
       \immediate\write\@indexfile
           {\string\indexentry{#1}%
           {\number\c@CodelineNo}}\fi}
\let\special@index = \@gobble
\def\CodelineIndex{\makeindex
                  \codeline@indextrue
                  \let\special@index\codeline@wrindex}
\def\PageIndex{\makeindex
              \codeline@indexfalse
              \let\special@index\index}
\newcount\c@CodelineNo  \c@CodelineNo\z@
\@ifundefined{theCodelineNo}
 {\ifx\selectfont\undefined
    \def\theCodelineNo{\rm\scriptsize\arabic{CodelineNo}}%
  \else
    \def\theCodelineNo{\reset@font\scriptsize\arabic{CodelineNo}}%
  \fi}
 {}
      \tolerance=1000\relax
{ \catcode`\"=12
 \global\mathcode`\\="705C \global\mathcode`\@="7040 }
\@ifundefined{DocstyleParms}{}{}
\DocstyleParms     \let\DocstyleParms\relax
\@ifundefined{AmSTeX}
  {\def\AmSTeX{\leavevmode\hbox{$\cal A\kern-.2em\lower.376ex%
       \hbox{$\cal M$}\kern-.2em\cal S$-\TeX}}}{}
\@ifundefined{BibTeX}
  {\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em%
   T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}}{}
\@ifundefined{SliTeX}
  {\def\SliTeX{{\rm S\kern-.06emL\kern-.18em\raise.32ex\hbox
               {\sc i}\kern -.03em\TeX}}}{}
\@ifundefined{PlainTeX}{\def\PlainTeX{{\sc Plain}\kern2pt\TeX}}{}
\@ifundefined{Web}{\def\Web{{\sc Web}}}{}
\def\MakePercentIgnore{\catcode`\%9\relax}
\def\MakePercentComment{\catcode`\%14\relax}
\def\DocInput#1{\MakePercentIgnore\input{#1}\MakePercentComment}
\ifx\on@line\undefined
 \def\on@line{ on input line \the\inputlineno}
 \errhelp{Support for input line numbers has been added
          to latex.tex <dec91>.^^J^^J%
          Please update to a newer LaTeX release.}
 \errmessage{Obsolete LaTeX release (older than Dec.91)}
\fi
\endinput
%%
%% End of file `doc.sty'.