%% %% This is file `latex2e.ltx', generated %% on <1994/1/30> with the docstrip utility (2.2c). %% %% The original source files were: %% %% dircheck.dtx (with options: `initex,2ekernel,dircheck') %% lplain.dtx %% latex.dtx (with options: `code') %% docclass.dtx %% lhyphen.dtx (with options: `2ekernel') %% dump.dtx (with options: `code') %% %% Copyright (C) 1993 by LaTeX3 project. All rights reserved. %% For additional copyright information see further down in this file. %% %% This file is part of the LaTeX2e system. %% ---------------------------------------- %% %% This system is distributed in the hope that it will be useful, %% but WITHOUT ANY WARRANTY; without even the implied warranty of %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. %% %% %% IMPORTANT NOTICE: %% %% For error reports in case of UNCHANGED versions see readme files. %% %% Please do not request updates from us directly. Distribution is %% done through Mail-Servers and TeX organizations. %% %% You are not allowed to change this file. %% %% You are allowed to distribute this file under the condition that %% it is distributed together with all files mentioned in 00readme.l2e. %% %% If you receive only some of these files from someone, complain! %% %% You are NOT ALLOWED to distribute this file alone. You are NOT %% ALLOWED to take money for the distribution or use of either this %% file or a changed version, except for a nominal charge for copying %% etc. %%% ==================================================================== %%% @LaTeX-file{ %%% author_1 = "David Carlisle", %%% version = "0.2c", %%% date = "20 December 1993, %%% time = "17:51:47 GMT, %%% filename = "dircheck.dtx", %%% address_1 = "Computer Science Department %%% Manchester University %%% Oxford Road %%% Manchester %%% England %%% M13 9PL", %%% checksum = "46381 2485 8605 79037", %%% email_1 = "carlisle@cs.man.ac.uk (Internet)", %%% codetable = "ISO/ASCII", %%% keywords = "LaTeX,initialisation %%% supported = "yes", %%% docstring = " %%% System dependent initialisations for LaTeX2e %%% This file controls the definitions of the macros %%% \@currdir \input@path and \filename@parse", %%% } %%% ==================================================================== \catcode`\{=1 \catcode`\}=2 \catcode`\#=6 \catcode`\^=7 \chardef\active=13 \catcode`\@=11 \countdef\count@=255 \let\bgroup={ \let\egroup=} \let\@@input\input \let\@@end\end \chardef\@inputcheck0 \chardef\sixt@@n=16 \newlinechar`\^^J \def\typeout{\immediate\write17} \def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\_\do\%\do\~} \def\@makeother#1{\catcode`#1=12\relax} \def\space{ } \def\@tempswafalse{\let\if@tempswa\iffalse} \def\@tempswatrue{\let\if@tempswa\iftrue} \let\if@tempswa\iffalse \def\loop#1\repeat{\def\body{#1}\iterate} \def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next} \let\repeat\fi \def\fileversion{0.2c} \def\filedate{1993/12/17} \def\two@digits#1{\ifnum#1<10 0\fi\number#1} \long\def\@firstoftwo#1#2{#1} \long\def\@secondoftwo#1#2{#2} \def\@empty{} \catcode`\%=12 \def\@percentchar{%} \catcode`\%=14 \let\@currdir\@undefined \let\input@path\@undefined \let\filename@parse\@undefined \def\strip@meaning#1>{} \typeout{^^J***^^J% Inputting the system configuration file texsys.cfg.^^J% If TeX now produces the line : ! I can't find file `texsys.cfg'.^^J% Then somethong is wrong with your installation.^^J% texsys.cfg should have been produced by the first `docstrip' phase,^^J% and possibly later edited by you to match the current system.^^J% ***} \input texsys.cfg \typeout{***^^Jtexsys.cfg loaded.} \begingroup \catcode`\^^M=\active% \gdef\@copytexsys{{% \global\let\@copytexsys\@undefined% \immediate\closeout15 % \immediate\openout15=texsys.new % \endlinechar`\^^M% \def\peek{\ifx\@tempa\peek\else\expandafter\writeline\fi}% \let\do\@makeother\dospecials% \catcode`\^^M=\active% \def\writeline##1^^M{% \immediate\write15{##1}\futurelet\@tempa\peek}% \expandafter\writeline\@@input texsys.cfg % \peek}}% \endgroup \begingroup \count@\time \divide\count@ 60 \count2=-\count@ \multiply\count2 60 \advance\count2 \time \edef\stamp{% \the\year/\two@digits{\the\month}/\two@digits{\the\day}:% \two@digits{\the\count@}:\two@digits{\the\count2}} \immediate\openout15=texsys.new \immediate\write15{\stamp^^J} \immediate\closeout15 % \def\test#1#2#3{% \openin\@inputcheck#1 % \ifeof\@inputcheck \typeout{^^J#1 not found}% #3\relax \else \read\@inputcheck to \@tempa \ifx\@tempa\stamp \typeout{^^J#1 found}#2\relax \else \typeout{BAD: old file \@tempa (should be \stamp)}% #3\relax \fi \fi \closein\@inputcheck} \bgroup \endlinechar=-1 \ifx\@currdir\@undefined \test{./texsys.new}{\gdef\@currdir{./}}{} \test{[]texsys.new}{\gdef\@currdir{[]}}{} \test{:texsys.new}{\gdef\@currdir{:}}{} \ifx\@currdir\@undefined \global\let\@currdir\@empty \typeout{^^J***^^J% No syntax for the current directory could be found^^J% ***}% \fi \@copytexsys \immediate\write15{% ^^J\@percentchar\@percentchar\space\string\@currdir\space% <\stamp>^^J% \string\def\string\@currdir% {\expandafter\strip@meaning\meaning\@currdir}}% \else \expandafter\test\expandafter{\@currdir texsys.new }{}{% \edef\@tempa{\errhelp{% texsys.cfg specifies the current directory syntax to be^^J% \meaning\@currdir^^J% but this does not work on this system.^^J% Remove texsys.cfg and restart.}}\@tempa \errmessage{Bad texsys.cfg file: \noexpand\@currdir}\@@end} \@copytexsys \fi \egroup \typeout{^^J***^^J% \noexpand\@currdir set to: \expandafter\strip@meaning\meaning\@currdir.^^J% ***} \ifx\input@path\@undefined \typeout{^^J***^^J% Assuming \noexpand\openin and \noexpand\input^^J% have the same search path.^^J% ***^^J} \else \typeout{^^J***^^J% Assuming \noexpand\openin and \noexpand\input^^J% have different search paths.^^J% LaTeX will use the path specified by \noexpand\input@path:^^J% ***} \def\@tempc{\relax} \def\@tempd{ \errhelp{% texsys.cfg specifies \input@path^^J% but {} does not appear as an entry in the path.^^J% Edit texsys.cfg and restart.}% \errmessage{Bad texsys.cfg file: \noexpand\input@path}\@@end \let\@tempd\relax} \def\@tempa#1{% \def\@tempb{#1}\ifx\@tempb\@tempc\else \ifx\@tempb\@empty\let\@tempd\relax\fi \typeout{{\expandafter\strip@meaning\meaning\@tempb}}% \expandafter\@tempa \fi} \expandafter\@tempa\input@path\relax \typeout{***^^J} \@tempd \fi \endgroup \ifx\filename@parse\@undefined \def\@tempa{./}\ifx\@currdir\@tempa \typeout{^^J***^^JDefining UNIX/DOS style filename parser.^^J***} \def\filename@parse#1{% \let\filename@area\@empty \let\filename@base\@empty \let\filename@ext\relax \expandafter\filename@path#1/\\} \def\filename@path#1/#2\\{% \ifx\\#2\\% \def\@tempa{\filename@simple#1.\\}% \else \edef\filename@area{\filename@area#1/}% \def\@tempa{\filename@path#2\\}% \fi \@tempa} \else\def\@tempa{[]}\ifx\@currdir\@tempa \typeout{^^J***^^JDefining VMS style filename parser.^^J***} \def\filename@parse#1{% \let\filename@area\@empty \let\filename@base\@empty \let\filename@ext\relax \expandafter\filename@path#1]\\} \def\filename@path#1]#2\\{% \ifx\\#2\\% \def\@tempa{\filename@simple#1.\\}% \else \edef\filename@area{\filename@area#1]}% \def\@tempa{\filename@path#2\\}% \fi \@tempa} \else \typeout{^^J***^^JDefining generic filename parser.^^J***} \def\filename@parse#1{% \let\filename@area\@empty \let\filename@base\@empty \let\filename@ext\relax \expandafter\filename@simple#1.\\} \fi\fi \def\filename@simple#1.#2\\{% \ifx\\#2\\% \else \edef\filename@ext{\filename@dot#2\\}% \fi \edef\filename@base{#1}} \def\filename@dot#1.\\{#1} \else \typeout{^^J***^^J% \noexpand\filename@parse was defined in texsys.cfg:^^J% \expandafter\strip@meaning\meaning\filename@parse.^^J% ***} \fi %% \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 \~} %% \catcode`\{=1 % left brace is begin-group character \catcode`\}=2 % right brace is end-group character \catcode`\$=3 % dollar sign is math shift \catcode`\&=4 % ampersand is alignment tab \catcode`\#=6 % hash mark is macro parameter character \catcode`\^=7 % circumflex and uparrow are for superscripts \catcode`\_=8 % underline and downarrow are for subscripts \catcode`\^^I=10 % ascii tab is a blank space \chardef\active=13 \catcode`\~=\active % tilde is active \catcode`\^^L=\active \outer\def^^L{\par} % ascii form-feed is "\outer\par" \message{Preloading the plain format: codes,} \def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\_\do\%\do\~} \catcode`@=11 \mathcode`\ ="8000 % \space \mathcode`\!="5021 \mathcode`\'="8000 % ^\prime \mathcode`\(="4028 \mathcode`\)="5029 \mathcode`\*="2203 % \ast \mathcode`\+="202B \mathcode`\,="613B \mathcode`\-="2200 \mathcode`\.="013A \mathcode`\/="013D \mathcode`\:="303A \mathcode`\;="603B \mathcode`\<="313C \mathcode`\=="303D \mathcode`\>="313E \mathcode`\?="503F \mathcode`\[="405B \mathcode`\\="026E % \backslash \mathcode`\]="505D \mathcode`\_="8000 % \_ \mathcode`\{="4266 \mathcode`\|="026A \mathcode`\}="5267 \sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0 \delcode`\(="028300 \delcode`\)="029301 \delcode`\[="05B302 \delcode`\]="05D303 \delcode`\<="26830A \delcode`\>="26930B \delcode`\/="02F30E \delcode`\|="26A30C \delcode`\\="26E30F \chardef\@ne=1 \chardef\tw@=2 \chardef\thr@@=3 \chardef\sixt@@n=16 \chardef\@cclv=255 \mathchardef\@cclvi=256 \mathchardef\@m=1000 \mathchardef\@M=10000 \mathchardef\@MM=20000 \message{registers,} \count10=22 % allocates \count registers 23, 24, ... \count11=9 % allocates \dimen registers 10, 11, ... \count12=9 % allocates \skip registers 10, 11, ... \count13=9 % allocates \muskip registers 10, 11, ... \count14=9 % allocates \box registers 10, 11, ... \count15=9 % allocates \toks registers 10, 11, ... \count16=-1 % allocates input streams 0, 1, ... \count17=-1 % allocates output streams 0, 1, ... \count18=3 % allocates math families 4, 5, ... \count19=0 % allocates \language codes 1, 2, ... \count20=255 % allocates insertions 254, 253, ... \countdef\insc@unt=20 % the insertion counter \countdef\allocationnumber=21 % the most recent allocation \countdef\m@ne=22 \m@ne=-1 % a handy constant \def\wlog{\immediate\write\m@ne} % write on log file (only) \countdef\count@=255 \dimendef\dimen@=0 \dimendef\dimen@i=1 % global only \dimendef\dimen@ii=2 \skipdef\skip@=0 \toksdef\toks@=0 \def\newcount{\alloc@0\count\countdef\insc@unt} \def\newdimen{\alloc@1\dimen\dimendef\insc@unt} \outer\def\newskip{\alloc@2\skip\skipdef\insc@unt} \outer\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi} \outer\def\newbox{\alloc@4\box\chardef\insc@unt} \let\newtoks=\relax % we do this to allow plain.tex to be read in twice \outer\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}} \outer\def\newtoks{\alloc@5\toks\toksdef\@cclvi} \outer\def\newread{\alloc@6\read\chardef\sixt@@n} \outer\def\newwrite{\alloc@7\write\chardef\sixt@@n} \outer\def\newfam{\alloc@8\fam\chardef\sixt@@n} \outer\def\newlanguage{\alloc@9\language\chardef\@cclvi} \def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne \ch@ck#1#4#2% make sure there's still room \allocationnumber=\count1#1% \global#3#5=\allocationnumber \wlog{\string#5=\string#2\the\allocationnumber}} \outer\def\newinsert#1{\global\advance\insc@unt by\m@ne \ch@ck0\insc@unt\count \ch@ck1\insc@unt\dimen \ch@ck2\insc@unt\skip \ch@ck4\insc@unt\box \allocationnumber=\insc@unt \global\chardef#1=\allocationnumber \wlog{\string#1=\string\insert\the\allocationnumber}} \def\ch@ck#1#2#3{\ifnum\count1#1<#2% \else\errmessage{No room for a new #3}\fi} \newdimen\maxdimen \maxdimen=16383.99999pt % the largest legal \newskip\hideskip \hideskip=-1000pt plus 1fill % negative but can grow \newskip\@centering \@centering=0pt plus 1000pt minus 1000pt \newdimen\p@ \p@=1pt % this saves macro space and time \newdimen\z@ \z@=0pt % can be used both for 0pt and 0 \newskip\z@skip \z@skip=0pt plus0pt minus0pt \newbox\voidb@x % permanently void box register \outer\def\newif#1{\count@\escapechar \escapechar\m@ne \expandafter\expandafter\expandafter \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}% \expandafter\expandafter\expandafter \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}% \@if#1{false}\escapechar\count@} % the condition starts out false \def\@if#1#2{\csname\expandafter\if@\string#1#2\endcsname} {\uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}} % `if' is required \message{compatibility for TeX 2, } \ifx\undefined\inputlineno \newcount\inputlineno \inputlineno-1 % this could be used to detect that % an old TeX is in force \ifx\undefined\language % extra test for MLTeX 2, RmS 91/11/07 \newcount\language \fi \newcount\lefthyphenmin \newcount\righthyphenmin \newcount\errorcontextlines \newcount\holdinginserts \newdimen\emergencystretch \newcount\badness \let\noboundary\relax \newcount\setlanguage \fi \message{parameters,} \pretolerance=100 \tolerance=200 % INITEX sets this to 10000 \hbadness=1000 \vbadness=1000 \linepenalty=10 \hyphenpenalty=50 \exhyphenpenalty=50 \binoppenalty=700 \relpenalty=500 \clubpenalty=150 \widowpenalty=150 \displaywidowpenalty=50 \brokenpenalty=100 \predisplaypenalty=10000 \doublehyphendemerits=10000 \finalhyphendemerits=5000 \adjdemerits=10000 \tracinglostchars=1 \uchyph=1 \defaulthyphenchar=`\- \defaultskewchar=-1 \newlinechar=-1 \delimiterfactor=901 \showboxbreadth=5 \showboxdepth=3 \errorcontextlines=5 \hfuzz=0.1pt \vfuzz=0.1pt \overfullrule=5pt \hsize=6.5in \vsize=8.9in \maxdepth=4pt \splitmaxdepth=\maxdimen \boxmaxdepth=\maxdimen \delimitershortfall=5pt \nulldelimiterspace=1.2pt \scriptspace=0.5pt \parindent=20pt \parskip=0pt plus 1pt \abovedisplayskip=12pt plus 3pt minus 9pt \abovedisplayshortskip=0pt plus 3pt \belowdisplayskip=12pt plus 3pt minus 9pt \belowdisplayshortskip=7pt plus 3pt minus 4pt \topskip=10pt \splittopskip=10pt \parfillskip=0pt plus 1fil \thinmuskip=3mu \medmuskip=4mu plus 2mu minus 4mu \thickmuskip=5mu plus 5mu \newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt \newskip\medskipamount \medskipamount=6pt plus 2pt minus 2pt \newskip\bigskipamount \bigskipamount=12pt plus 4pt minus 4pt \newskip\normalbaselineskip \normalbaselineskip=12pt \newskip\normallineskip \normallineskip=1pt \newdimen\normallineskiplimit \normallineskiplimit=0pt \newdimen\jot \jot=3pt \newcount\interdisplaylinepenalty \interdisplaylinepenalty=100 \newcount\interfootnotelinepenalty \interfootnotelinepenalty=100 \def\magstephalf{1095 } \def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or 2074\or 2488\fi\relax} %% Additional \preloaded fonts can be specified here. %% (And those that were \preloaded above can be eliminated.) \message{macros,} \def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m \sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m} \def\nonfrenchspacing{\sfcode`\.3000\sfcode`\?3000\sfcode`\!3000% \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 } \def\normalbaselines{\lineskip\normallineskip \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit} \def\^^M{\ } % control = control \def\^^I{\ } % same for \def\lq{`} \def\rq{'} \def\lbrack{[} \def\rbrack{]} \let\endgraf=\par \let\endline=\cr \def\space{ } \def\empty{} \def\null{\hbox{}} \let\bgroup={ \let\egroup=} {\catcode`\^^M=\active % these lines must end with % \gdef\obeylines{\catcode`\^^M\active \let^^M\par}% \global\let^^M\par} % this is in case ^^M appears in a \write \def\obeyspaces{\catcode`\ \active} {\obeyspaces\global\let =\space} \def\loop#1\repeat{\def\body{#1}\iterate} \def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next} \let\repeat=\fi % this makes \loop...\if...\repeat skippable \def\thinspace{\kern .16667em } \def\negthinspace{\kern-.16667em } \def\enspace{\kern.5em } \def\enskip{\hskip.5em\relax} \def\quad{\hskip1em\relax} \def\qquad{\hskip2em\relax} \def\smallskip{\vskip\smallskipamount} \def\medskip{\vskip\medskipamount} \def\bigskip{\vskip\bigskipamount} \def\nointerlineskip{\prevdepth-1000\p@} \def\offinterlineskip{\baselineskip-1000\p@ \lineskip\z@ \lineskiplimit\maxdimen} \def\vglue{\afterassignment\vgl@\skip@=} \def\vgl@{\par \dimen@\prevdepth \hrule height\z@ \nobreak\vskip\skip@ \prevdepth\dimen@} \def\hglue{\afterassignment\hgl@\skip@=} \def\hgl@{\leavevmode \count@\spacefactor \vrule width\z@ \nobreak\hskip\skip@ \spacefactor\count@} \def~{\penalty\@M \ } % tie \def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-' \def\break{\penalty-\@M} \def\nobreak{\penalty \@M} \def\allowbreak{\penalty \z@} \def\filbreak{\par\vfil\penalty-200\vfilneg} \def\goodbreak{\par\penalty-500 } \def\eject{\par\break} \def\supereject{\par\penalty-\@MM} \def\removelastskip{\ifdim\lastskip=\z@\else\vskip-\lastskip\fi} \def\smallbreak{\par\ifdim\lastskip<\smallskipamount \removelastskip\penalty-50\smallskip\fi} \def\medbreak{\par\ifdim\lastskip<\medskipamount \removelastskip\penalty-100\medskip\fi} \def\bigbreak{\par\ifdim\lastskip<\bigskipamount \removelastskip\penalty-200\bigskip\fi} \def\@@line{\hbox to\hsize} \def\leftline#1{\@@line{#1\hss}} \def\rightline#1{\@@line{\hss#1}} \def\centerline#1{\@@line{\hss#1\hss}} \def\rlap#1{\hbox to\z@{#1\hss}} \def\llap#1{\hbox to\z@{\hss#1}} \def\m@th{\mathsurround=\z@} \def\underbar#1{$\setbox\z@\hbox{#1}\dp\z@\z@ \m@th \underline{\box\z@}$} \newbox\strutbox \setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@} \def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi} \def\hidewidth{\hskip\hideskip} % for alignment entries that can stick out \def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign \newcount\mscount \def\multispan#1{\omit \mscount#1\relax \loop\ifnum\mscount>\@ne \sp@n\repeat} \def\sp@n{\span\omit\advance\mscount\m@ne} \def\hang{\hangindent\parindent} \def\textindent#1{\indent\llap{#1\enspace}\ignorespaces} \def\item{\par\hang\textindent} %% RmS 91/11/04: Removed \itemitem since never needed/useful on LaTeX. \def\narrower{\advance\leftskip\parindent \advance\rightskip\parindent} \outer\def\proclaim #1. #2\par{\medbreak \noindent{\bf#1.\enspace}{\sl#2\par}% \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi} \def\raggedright{\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax} \def\ttraggedright{\tt\rightskip\z@ plus2em\relax} % for use with \tt only \chardef\%=`\% \chardef\&=`\& \chardef\#=`\# \chardef\$=`\$ \chardef\ss="19 \chardef\ae="1A \chardef\oe="1B \chardef\o="1C \chardef\AE="1D \chardef\OE="1E \chardef\O="1F \chardef\i="10 \chardef\j="11 % dotless letters \def\aa{\accent23a} \def\l{\char32l} \def\L{\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}} \def\leavevmode{\unhbox\voidb@x} % begins a paragraph, if necessary \def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}} \def\AA{\leavevmode\setbox0\hbox{h}\dimen@\ht0\advance\dimen@-1ex% \rlap{\raise.67\dimen@\hbox{\char'27}}A} \def\mathhexbox#1#2#3{\leavevmode \hbox{$\m@th \mathchar"#1#2#3$}} \def\dag{\mathhexbox279} \def\ddag{\mathhexbox27A} \def\S{\mathhexbox278} \def\P{\mathhexbox27B} \def\oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex% \ialign{##\crcr#1\crcr}}} % put characters over each other \def\ooalign{\lineskiplimit-\maxdimen \oalign} \def\sh@ft#1{\dimen\z@.00#1ex\multiply\dimen\z@\fontdimen1\font \kern-.0156\dimen\z@} % compensate for slant in lowered accents \def\pd#1{\oalign{#1\crcr\hidewidth\sh@ft{08}.\hidewidth}} \def\d{\protect\pd} \def\pb#1{\oalign{#1\crcr\hidewidth\sh@ft{29}% \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}} \def\b{\protect\pb} \def\pc#1{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1% \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi} \def\c{\protect\pc} \def\copyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\mathhexbox20D}}} \def\dots{\ldots} \def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX} \def\`#1{{\accent18 #1}} \def\'#1{{\accent19 #1}} \def\v#1{{\accent20 #1}} \def\u#1{{\accent21 #1}} \def\=#1{{\accent22 #1}} \def\^#1{{\accent94 #1}} \def\.#1{{\accent95 #1}} \def\H#1{{\accent125 #1}} \def\~#1{{\accent126 #1}} \def\"#1{{\accent127 #1}} \def\pt#1{{\edef\next{\the\font}\the\textfont1\accent127\next#1}} \def\t{\protect\pt} \def\hrulefill{\leavevmode\leaders\hrule\hfill\kern\z@} \def\dotfill{\leavevmode\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill\kern\z@} \def\rightarrowfill{$\m@th\mathord-\mkern-6mu% \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill \mkern-6mu\mathord\rightarrow$} \def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-6mu% \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill \mkern-6mu\mathord-$} \mathchardef\braceld="37A \mathchardef\bracerd="37B \mathchardef\bracelu="37C \mathchardef\braceru="37D \def\downbracefill{$\m@th \setbox\z@\hbox{$\braceld$}% \braceld\leaders\vrule height\ht\z@ depth\z@\hfill\braceru \bracelu\leaders\vrule height\ht\z@ depth\z@\hfill\bracerd$} \def\upbracefill{$\m@th \setbox\z@\hbox{$\braceld$}% \bracelu\leaders\vrule height\ht\z@ depth\z@\hfill\bracerd \braceld\leaders\vrule height\ht\z@ depth\z@\hfill\braceru$} \message{math definitions,} \let\sp=^ \let\sb=_ \def\,{\mskip\thinmuskip} \def\>{\mskip\medmuskip} \def\;{\mskip\thickmuskip} \def\!{\mskip-\thinmuskip} \def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}} {\catcode`\'=\active \gdef'{^\bgroup\prim@s}} \def\prim@s{\prime\futurelet\next\pr@m@s} \def\pr@m@s{\ifx'\next\let\nxt\pr@@@s \else\ifx^\next\let\nxt\pr@@@t \else\let\nxt\egroup\fi\fi \nxt} \def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup} {\catcode`\_=\active \global\let_=\_} % _ in math is either subscript or \_ \mathchardef\alpha="010B \mathchardef\beta="010C \mathchardef\gamma="010D \mathchardef\delta="010E \mathchardef\epsilon="010F \mathchardef\zeta="0110 \mathchardef\eta="0111 \mathchardef\theta="0112 \mathchardef\iota="0113 \mathchardef\kappa="0114 \mathchardef\lambda="0115 \mathchardef\mu="0116 \mathchardef\nu="0117 \mathchardef\xi="0118 \mathchardef\pi="0119 \mathchardef\rho="011A \mathchardef\sigma="011B \mathchardef\tau="011C \mathchardef\upsilon="011D \mathchardef\phi="011E \mathchardef\chi="011F \mathchardef\psi="0120 \mathchardef\omega="0121 \mathchardef\varepsilon="0122 \mathchardef\vartheta="0123 \mathchardef\varpi="0124 \mathchardef\varrho="0125 \mathchardef\varsigma="0126 \mathchardef\varphi="0127 \mathchardef\Gamma="7000 \mathchardef\Delta="7001 \mathchardef\Theta="7002 \mathchardef\Lambda="7003 \mathchardef\Xi="7004 \mathchardef\Pi="7005 \mathchardef\Sigma="7006 \mathchardef\Upsilon="7007 \mathchardef\Phi="7008 \mathchardef\Psi="7009 \mathchardef\Omega="700A \mathchardef\aleph="0240 \def\hbar{{\mathchar'26\mkern-9muh}} \mathchardef\imath="017B \mathchardef\jmath="017C \mathchardef\ell="0160 \mathchardef\wp="017D \mathchardef\Re="023C \mathchardef\Im="023D \mathchardef\partial="0140 \mathchardef\infty="0231 \mathchardef\prime="0230 \mathchardef\emptyset="023B \mathchardef\nabla="0272 \def\surd{{\mathchar"1270}} \mathchardef\top="023E \mathchardef\bot="023F \def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr \not\mathrel{\mkern14mu}\crcr \noalign{\nointerlineskip} \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}} \mathchardef\triangle="0234 \mathchardef\forall="0238 \mathchardef\exists="0239 \mathchardef\neg="023A \let\lnot=\neg \mathchardef\flat="015B \mathchardef\natural="015C \mathchardef\sharp="015D \mathchardef\clubsuit="027C \mathchardef\diamondsuit="027D \mathchardef\heartsuit="027E \mathchardef\spadesuit="027F \mathchardef\coprod="1360 \mathchardef\bigvee="1357 \mathchardef\bigwedge="1356 \mathchardef\biguplus="1355 \mathchardef\bigcap="1354 \mathchardef\bigcup="1353 \mathchardef\intop="1352 \def\int{\intop\nolimits} \mathchardef\prod="1351 \mathchardef\sum="1350 \mathchardef\bigotimes="134E \mathchardef\bigoplus="134C \mathchardef\bigodot="134A \mathchardef\ointop="1348 \def\oint{\ointop\nolimits} \mathchardef\bigsqcup="1346 \mathchardef\smallint="1273 \mathchardef\triangleleft="212F \mathchardef\triangleright="212E \mathchardef\bigtriangleup="2234 \mathchardef\bigtriangledown="2235 \mathchardef\wedge="225E \let\land=\wedge \mathchardef\vee="225F \let\lor=\vee \mathchardef\cap="225C \mathchardef\cup="225B \mathchardef\ddagger="227A \mathchardef\dagger="2279 \mathchardef\sqcap="2275 \mathchardef\sqcup="2274 \mathchardef\uplus="225D \mathchardef\amalg="2271 \mathchardef\diamond="2205 \mathchardef\bullet="220F \mathchardef\wr="226F \mathchardef\div="2204 \mathchardef\odot="220C \mathchardef\oslash="220B \mathchardef\otimes="220A \mathchardef\ominus="2209 \mathchardef\oplus="2208 \mathchardef\mp="2207 \mathchardef\pm="2206 \mathchardef\circ="220E \mathchardef\bigcirc="220D \mathchardef\setminus="226E % for set difference A\setminus B \mathchardef\cdot="2201 \mathchardef\ast="2203 \mathchardef\times="2202 \mathchardef\star="213F \mathchardef\propto="322F \mathchardef\sqsubseteq="3276 \mathchardef\sqsupseteq="3277 \mathchardef\parallel="326B \mathchardef\mid="326A \mathchardef\dashv="3261 \mathchardef\vdash="3260 \mathchardef\nearrow="3225 \mathchardef\searrow="3226 \mathchardef\nwarrow="322D \mathchardef\swarrow="322E \mathchardef\Leftrightarrow="322C \mathchardef\Leftarrow="3228 \mathchardef\Rightarrow="3229 \def\neq{\not=} \let\ne=\neq \mathchardef\leq="3214 \let\le=\leq \mathchardef\geq="3215 \let\ge=\geq \mathchardef\succ="321F \mathchardef\prec="321E \mathchardef\approx="3219 \mathchardef\succeq="3217 \mathchardef\preceq="3216 \mathchardef\supset="321B \mathchardef\subset="321A \mathchardef\supseteq="3213 \mathchardef\subseteq="3212 \mathchardef\in="3232 \mathchardef\ni="3233 \let\owns=\ni \mathchardef\gg="321D \mathchardef\ll="321C \mathchardef\not="3236 \mathchardef\leftrightarrow="3224 \mathchardef\leftarrow="3220 \let\gets=\leftarrow \mathchardef\rightarrow="3221 \let\to=\rightarrow \mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow} \mathchardef\sim="3218 \mathchardef\simeq="3227 \mathchardef\perp="323F \mathchardef\equiv="3211 \mathchardef\asymp="3210 \mathchardef\smile="315E \mathchardef\frown="315F \mathchardef\leftharpoonup="3128 \mathchardef\leftharpoondown="3129 \mathchardef\rightharpoonup="312A \mathchardef\rightharpoondown="312B \def\joinrel{\mathrel{\mkern-3mu}} \def\relbar{\mathrel{\smash-}} % \smash, because - has the same height as + \def\Relbar{\mathrel=} \mathchardef\lhook="312C \def\hookrightarrow{\lhook\joinrel\rightarrow} \mathchardef\rhook="312D \def\hookleftarrow{\leftarrow\joinrel\rhook} \def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft} \def\models{\mathrel|\joinrel=} \def\Longrightarrow{\Relbar\joinrel\Rightarrow} \def\longrightarrow{\protect\@lra} \def\@lra{\relbar\joinrel\rightarrow} \def\longleftarrow{\protect\@lla} \def\@lla{\leftarrow\joinrel\relbar} \def\Longleftarrow{\Leftarrow\joinrel\Relbar} \def\longmapsto{\mapstochar\longrightarrow} \def\longleftrightarrow{\leftarrow\joinrel\rightarrow} \def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow} \def\iff{\;\Longleftrightarrow\;} \mathchardef\ldotp="613A % ldot as a punctuation mark \mathchardef\cdotp="6201 % cdot as a punctuation mark \mathchardef\colon="603A % colon as a punctuation mark \def\@ldots{\mathinner{\ldotp\ldotp\ldotp}} \def\ldots{\protect\pldots} \def\pldots{\relax\ifmmode\@ldots\else\mbox{$\m@th\@ldots\,$}\fi} \def\cdots{\mathinner{\cdotp\cdotp\cdotp}} \def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@ \kern6\p@\hbox{.}\hbox{.}\hbox{.}}} \def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}} \def\acute{\mathaccent"7013 } \def\grave{\mathaccent"7012 } \def\ddot{\mathaccent"707F } \def\tilde{\mathaccent"707E } \def\bar{\mathaccent"7016 } \def\breve{\mathaccent"7015 } \def\check{\mathaccent"7014 } \def\hat{\mathaccent"705E } \def\vec{\mathaccent"017E } \def\dot{\mathaccent"705F } \def\widetilde{\mathaccent"0365 } \def\widehat{\mathaccent"0362 } \def\overrightarrow#1{\vbox{\m@th\ialign{##\crcr \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} $\hfil\displaystyle{#1}\hfil$\crcr}}} \def\overleftarrow#1{\vbox{\m@th\ialign{##\crcr \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip} $\hfil\displaystyle{#1}\hfil$\crcr}}} \def\overbrace#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3\p@} \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip} $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits} \def\underbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip} \upbracefill\crcr\noalign{\kern3\p@}}}}\limits} \def\skew#1#2#3{{#2{#3\mkern#1mu}\mkern-#1mu}{}} \def\lmoustache{\delimiter"437A340 } % top from (, bottom from ) \def\rmoustache{\delimiter"537B341 } % top from ), bottom from ( \def\lgroup{\delimiter"462833A } % extensible ( with sharper tips \def\rgroup{\delimiter"562933B } % extensible ) with sharper tips \def\arrowvert{\delimiter"26A33C } % arrow without arrowheads \def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads \def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces \def\Vert{\delimiter"26B30D } \let\|=\Vert \def\vert{\delimiter"26A30C } \def\uparrow{\delimiter"3222378 } \def\downarrow{\delimiter"3223379 } \def\updownarrow{\delimiter"326C33F } \def\Uparrow{\delimiter"322A37E } \def\Downarrow{\delimiter"322B37F } \def\Updownarrow{\delimiter"326D377 } \def\backslash{\delimiter"26E30F } % for double coset G\backslash H \def\rangle{\delimiter"526930B } \def\langle{\delimiter"426830A } \def\rbrace{\delimiter"5267309 } \let\}=\rbrace \def\lbrace{\delimiter"4266308 } \let\{=\lbrace \def\rceil{\delimiter"5265307 } \def\lceil{\delimiter"4264306 } \def\rfloor{\delimiter"5263305 } \def\lfloor{\delimiter"4262304 } \def\bigl{\mathopen\big} \def\bigm{\mathrel\big} \def\bigr{\mathclose\big} \def\Bigl{\mathopen\Big} \def\Bigm{\mathrel\Big} \def\Bigr{\mathclose\Big} \def\biggl{\mathopen\bigg} \def\biggm{\mathrel\bigg} \def\biggr{\mathclose\bigg} \def\Biggl{\mathopen\Bigg} \def\Biggm{\mathrel\Bigg} \def\Biggr{\mathclose\Bigg} \def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}} \def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}} \def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}} \def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}} \def\n@space{\nulldelimiterspace\z@ \m@th} \def\choose{\atopwithdelims()} \def\brack{\atopwithdelims[]} \def\brace{\atopwithdelims\{\}} \def\sqrt{\radical"270370 } \def\mathpalette#1#2{\mathchoice{#1\displaystyle{#2}}% {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}} \newbox\rootbox \def\root#1\of{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$} \mathpalette\r@@t} \def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$} \dimen@\ht\z@ \advance\dimen@-\dp\z@ \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu \box\z@} \newif\ifv@ \newif\ifh@ \def\vphantom{\v@true\h@false\ph@nt} \def\hphantom{\v@false\h@true\ph@nt} \def\phantom{\v@true\h@true\ph@nt} \def\ph@nt{\ifmmode\def\next{\mathpalette\mathph@nt}% \else\let\next\makeph@nt\fi\next} \def\makeph@nt#1{\setbox\z@\hbox{#1}\finph@nt} \def\mathph@nt#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt} \def\finph@nt{\setbox\tw@\null \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi \ifh@ \wd\tw@\wd\z@\fi \box\tw@} \def\mathstrut{\vphantom(} \def\smash{\relax % \relax, in case this comes first in \halign \ifmmode\def\next{\mathpalette\mathsm@sh}\else\let\next\makesm@sh \fi\next} \def\makesm@sh#1{\setbox\z@\hbox{#1}\finsm@sh} \def\mathsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh} \def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@} \def\cong{\mathrel{\mathpalette\@vereq\sim}} % congruence sign \def\@vereq#1#2{\lower.5\p@\vbox{\baselineskip\z@skip\lineskip-.5\p@ \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}} \def\notin{\mathrel{\m@th\mathpalette\c@ncel\in}} \def\c@ncel#1#2{\m@th\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}} \def\rightleftharpoons{\mathrel{\mathpalette\rlh@{}}} \def\rlh@#1{\vcenter{\m@th\hbox{\ooalign{\raise2pt \hbox{$#1\rightharpoonup$}\crcr $#1\leftharpoondown$}}}} \def\buildrel#1\over#2{\mathrel{\mathop{\kern\z@#2}\limits^{#1}}} \def\doteq{\buildrel\textstyle.\over=} \def\log{\mathop{\rm log}\nolimits} \def\lg{\mathop{\rm lg}\nolimits} \def\ln{\mathop{\rm ln}\nolimits} \def\lim{\mathop{\rm lim}} \def\limsup{\mathop{\rm lim\,sup}} \def\liminf{\mathop{\rm lim\,inf}} \def\sin{\mathop{\rm sin}\nolimits} \def\arcsin{\mathop{\rm arcsin}\nolimits} \def\sinh{\mathop{\rm sinh}\nolimits} \def\cos{\mathop{\rm cos}\nolimits} \def\arccos{\mathop{\rm arccos}\nolimits} \def\cosh{\mathop{\rm cosh}\nolimits} \def\tan{\mathop{\rm tan}\nolimits} \def\arctan{\mathop{\rm arctan}\nolimits} \def\tanh{\mathop{\rm tanh}\nolimits} \def\cot{\mathop{\rm cot}\nolimits} \def\coth{\mathop{\rm coth}\nolimits} \def\sec{\mathop{\rm sec}\nolimits} \def\csc{\mathop{\rm csc}\nolimits} \def\max{\mathop{\rm max}} \def\min{\mathop{\rm min}} \def\sup{\mathop{\rm sup}} \def\inf{\mathop{\rm inf}} \def\arg{\mathop{\rm arg}\nolimits} \def\ker{\mathop{\rm ker}\nolimits} \def\dim{\mathop{\rm dim}\nolimits} \def\hom{\mathop{\rm hom}\nolimits} \def\det{\mathop{\rm det}} \def\exp{\mathop{\rm exp}\nolimits} \def\Pr{\mathop{\rm Pr}} \def\gcd{\mathop{\rm gcd}} \def\deg{\mathop{\rm deg}\nolimits} \def\bmod{\mskip-\medmuskip\mkern5mu \mathbin{\rm mod}\penalty900\mkern5mu\mskip-\medmuskip} \def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)} %% RmS 91/08/14 inserted extra braces around entry for NFSS \def\cases#1{\left\{\,\vcenter{\normalbaselines\m@th \ialign{$##\hfil$&\quad{##}\hfil\crcr#1\crcr}}\right.} \def\matrix#1{\null\,\vcenter{\normalbaselines\m@th \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr \mathstrut\crcr\noalign{\kern-\baselineskip} #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,} \def\pmatrix#1{\left(\matrix{#1}\right)} \newdimen\p@renwd \def\bordermatrix#1{\begingroup \m@th \setbox\z@\vbox{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}% \ialign{$##$\hfil\kern2\p@\kern\p@renwd&\thinspace\hfil$##$\hfil &&\quad\hfil$##$\hfil\crcr \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}% #1\crcr\omit\strut\cr}}% \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}% \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}% \setbox\tw@\hbox{$\kern\wd\@ne\kern-\p@renwd\left(\kern-\wd\@ne \global\setbox\@ne\vbox{\box\@ne\kern2\p@}% \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}% \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup} \def\openup{\afterassignment\@penup\dimen@=} \def\@penup{\advance\lineskip\dimen@ \advance\baselineskip\dimen@ \advance\lineskiplimit\dimen@} \newif\ifdt@p \def\displ@y{\global\dt@ptrue\openup\jot\m@th \everycr{\noalign{\ifdt@p \global\dt@pfalse \vskip-\lineskiplimit \vskip\normallineskiplimit \else \penalty\interdisplaylinepenalty \fi}}} \def\@lign{\tabskip\z@skip\everycr{}} % restore inside \displ@y \def\displaylines#1{\displ@y \halign{\hbox to\displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr #1\crcr}} \newinsert\footins \skip\footins=\bigskipamount % space added when footnote is present \count\footins=1000 % footnote magnification factor (1 to 1) \dimen\footins=8in % maximum footnotes per page \def\footnoterule{\kern-3\p@ \hrule width 2in \kern 2.6\p@} % the \hrule is .4pt high %% FMi & RmS 91/08/26: added \errorcontextlines=\maxdimen, %% suggested by J. Schrod \def\tracingall{\tracingcommands\tw@\tracingstats\tw@ \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode \errorcontextlines\maxdimen\tracingonline\@ne} \def\showhyphens#1{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen\tenrm \pretolerance\m@ne\tolerance\m@ne\hbadness0\showboxdepth0\ #1}} %% Initialize \reset@font for use with Old font selection \nonfrenchspacing % punctuation affects the spacing \def\fileversion{v0.9n} \def\filedate{1993/12/20} \def\fmtname{LaTeX2e} \edef\fmtversion{1993/12/24} \everyjob{\typeout{LaTeX2e <\fmtversion> PRELIMINARY TEST RELEASE}} \immediate\write16{LaTeX2e <\fmtversion> PRELIMINARY TEST RELEASE} \catcode`\~=13 \def~{\penalty\@M \ } \newread\@inputcheck \newwrite\@unused \newwrite\@mainaux \def\two@digits#1{\ifnum#1<10 0\fi\number#1} \def\typeout#1{\begingroup\let\protect\string \immediate\write\@unused{#1}\endgroup} \newlinechar`\^^J \def\p@LaTeX{{\reset@font\rmfamily L\kern-.36em% \raise.3ex\hbox{\scshape a}\kern-.15em% T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} \def\p@LaTeX{L\kern-.36em {\setbox0\hbox{T}% \vbox to\ht0{\hbox{% \csname S@\f@size\endcsname \fontsize\sf@size\z@\selectfont A}% \vss}% }% \kern-.15em \TeX\@}% \def\p@SLiTeX{{\reset@font\rmfamily S\kern-.06em{\scshape l% \kern-.035emi}\kern-.06emT\kern -.1667em\lower.7ex\hbox{E}\kern-.125emX}} \def\LaTeX{\protect\p@LaTeX} \def\SLiTeX{\protect\p@SLiTeX} \def\LaTeXe{\protect\pLaTeXe} \def\pLaTeXe{\mbox{% \if b\expandafter\@car\f@series\@nil\boldmath\fi \LaTeX\kern.15em$2_{\textstyle\varepsilon}$}} \let\@@par=\par \let\@@hyph=\- % Original defin \def\-{\discretionary{-}{}{}} \def\@height{height} \def\@depth{depth} \def\@width{width} \def\@minus{minus} \def\@plus{plus} \def\{{\protect\@lb} \def\@lb{\relax\ifmmode\lbrace\else$\m@th\lbrace$\fi} \def\}{\protect\@rb} \def\@rb{\relax\ifmmode\rbrace\else$\m@th\rbrace$\fi} \message{counters,} \chardef\@xxxii=32 \mathchardef\@Mi=10001 \mathchardef\@Mii=10002 \mathchardef\@Miii=10003 \mathchardef\@Miv=10004 \def\newcount{\alloc@0\count\countdef\insc@unt} \def\newdimen{\alloc@1\dimen\dimendef\insc@unt} \def\newskip{\alloc@2\skip\skipdef\insc@unt} \def\newbox{\alloc@4\box\chardef\insc@unt} \def\newwrite{\alloc@7\write\chardef\sixt@@n} \newcount\@tempcnta \newcount\@tempcntb \newif\if@tempswa\@tempswatrue \newdimen\@tempdima \newdimen\@tempdimb \newbox\@tempboxa \newskip\@flushglue \@flushglue = 0pt plus 1fil \newskip\@tempskipa \newskip\@tempskipb \newtoks\@temptokena \message{hacks,} \def\typein{\let\@typein\relax\@ifnextchar[{\@xtypein}{\@xtypein[\@typein]}} \def\@xtypein[#1]#2{\typeout{#2}\read\@inputcheck to#1\ifx #1\@defpar \def#1{}\else \@iden{\expandafter\@strip\expandafter #1#1\@gobble\@gobble} \@gobble\fi\@typein} \def\@strip#1#2 \@gobble{\def #1{#2}} \def\@defpar{\par} \def\@iden#1{#1} \ifx\inputlineno\undefined \let\on@line\empty \else \ifnum\inputlineno=\m@ne \let\on@line\empty \else \def\on@line{ on input line \the\inputlineno} \fi \fi \def\@@warning#1{\typeout{LaTeX Warning: #1.}} \def\@warning#1{\@@warning{#1\on@line}} \def\@namedef#1{\expandafter\def\csname #1\endcsname} \def\@nameuse#1{\csname #1\endcsname} \def\@cons#1#2{\begingroup\let\@elt\relax\xdef#1{#1\@elt #2}\endgroup} \def\@car#1#2\@nil{#1} \def\@cdr#1#2\@nil{#2} \def\@carcube#1#2#3#4\@nil{#1#2#3} \long\def\@renewenv#1[#2]#3#4{\expandafter\renewcommand \csname #1\endcsname[#2]{#3}\long \expandafter\def\csname end#1\endcsname{#4}} \def\newcommand#1{% \@ifnextchar [{\@newcommand#1}{\@newcommand#1[0]}} \def\@newcommand#1[#2]{% \@ifnextchar [{\@xargdef#1[#2]}% {\@argdef#1[#2]}} \long\def\@argdef#1[#2]#3{% \@ifdefinable #1{\XXX@reargdef#1\@ne{#2}{#3}}} \long\def\@xargdef#1[#2][#3]#4{% \@ifdefinable#1{% \expandafter\def\expandafter#1\expandafter{% \expandafter \@ifnextchar \expandafter [% \csname\string#1\expandafter\endcsname \expandafter {\csname\string#1\endcsname[#3]}}% \expandafter\XXX@reargdef \csname\string#1\endcsname \tw@ {#2}% {#4}}} \long\def\XXX@reargdef#1#2#3{% \@tempcnta#3\relax \advance \@tempcnta \@ne \let#1\relax \edef\@tempa{\ifx#2\tw@ [#11]\fi}% \@tempcntb #2% \@whilenum\@tempcntb <\@tempcnta \do{% \edef\@tempa{\@tempa#1\the\@tempcntb}% \advance\@tempcntb \@ne}% \let#1##% \long\expandafter\def\expandafter#1\@tempa} \long\def\XXX@reargdef#1#2#3{% \@tempcnta#3\relax \advance \@tempcnta \@ne \let\@hash@\relax \edef\@tempa{\ifx#2\tw@ [\@hash@1]\fi}% \@tempcntb #2% \@whilenum\@tempcntb <\@tempcnta \do{% \edef\@tempa{\@tempa\@hash@\the\@tempcntb}% \advance\@tempcntb \@ne}% \let\@hash@##% \long\expandafter\def\expandafter#1\@tempa} \catcode`\?=11\relax \long\def\@reargdef#1[#2]#3{\@tempcnta#2\relax\let#1\relax \edef\@tempa{\long\def#1}\@tempcntb \@ne \let\@?@?\relax\@whilenum\@tempcnta>\z@ \do{\edef\@tempa{\@tempa\@?@?\the\@tempcntb}\advance\@tempcntb \@ne \advance \@tempcnta \m@ne}\let\@?@?##\@tempa{#3}} \catcode`\?=12\relax \def\renewcommand#1{% {\escapechar\m@ne\xdef\@gtempa{{\string#1}}}% \expandafter\@ifundefined\@gtempa {\@latexerr{\string#1\space undefined}\@ehc}% {}% \let\@ifdefinable\@rc@ifdefinable \newcommand#1} \long\def\@ifdefinable #1#2{% \edef\@tempa{\expandafter\@cdr\string #1\@nil}% \@ifundefined{\@tempa}% {\edef\@tempb{\expandafter\@carcube \@tempa xxxx\@nil}% \ifx \@tempb\@qend \@notdefinable\else \ifx \@tempa\@qrelax \@notdefinable\else #2\fi\fi}% {\@notdefinable}} \let\@@ifdefinable\@ifdefinable \long\def\@rc@ifdefinable#1#2{% \let\@ifdefinable\@@ifdefinable #2} \def\newenvironment#1#2#{% \@newenv{#1}{#2}} \def\renewenvironment#1{% \@ifundefined{#1}% {\@latexerr{Environment #1\space undefined}\@ehc }{}% \expandafter\let\csname#1\endcsname\relax \newenvironment{#1}} \long\def\@newenv#1#2#3#4{% \expandafter\newcommand \csname #1\endcsname#2{#3}\long \long\expandafter\def\csname end#1\endcsname{#4}} \def\providecommand#1{% {\escapechar\m@ne\xdef\@gtempa{{\string#1}}}% \expandafter\@ifundefined\@gtempa {\def\@tempa{\newcommand#1}}% {\def\@tempa{\renewcommand\@tempa}}% \@tempa}% \def\@checkcommand#1#2#{\@check@c#1{#2}} \def\@check@c#1#2#3{% \expandafter\let\csname\string\@tempa\endcsname\relax \renewcommand\@tempa#2{#3}% \@ifundefined{\string\@tempa}% {\@check@eq#1\@tempa}% {\expandafter\@check@eq \csname\string#1\expandafter\endcsname \csname\string\@tempa\endcsname}} \def\@check@eq#1#2{% \ifx#1#2\else \@@warning{Command \protect#1 has changed.^^J% Check if current package is valid}% \fi} \long\def\@firstofone#1{#1} \long\def\@firstoftwo#1#2{#1} \long\def\@secondoftwo#1#2{#2} \def\@expandtwoargs#1#2#3{% \edef\@tempa{\noexpand#1{#2}{#3}}\@tempa} \def\@ifundefined#1{% \expandafter\ifx\csname#1\endcsname\relax \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} \def\@preamblecmds{} \def\@onlypreamble#1{% \expandafter\gdef\expandafter\@preamblecmds\expandafter{% \@preamblecmds\do#1}} \@onlypreamble\@onlypreamble \edef\@qend{\expandafter\@cdr\string\end\@nil} \edef\@qrelax{\expandafter\@cdr\string\relax\@nil} \def\@ifnextchar#1#2#3{\let\@tempe=#1\def\@tempa{#2}\def\@tempb{#3}\futurelet \@tempc\@ifnch} \def\@ifnch{\ifx \@tempc \@sptoken \let\@tempd\@xifnch \else \ifx \@tempc \@tempe\let\@tempd\@tempa\else\let\@tempd\@tempb\fi \fi \@tempd} \def\:{\let\@sptoken= } \: % this makes \@sptoken a space token \def\:{\@xifnch} \expandafter\def\: {\futurelet\@tempc\@ifnch} \def\@ifstar#1#2{\@ifnextchar *{\def\@tempa*{#1}\@tempa}{#2}} \long\def\@dblarg#1{\@ifnextchar[{#1}{\@xdblarg{#1}}} \long\def\@xdblarg#1#2{#1[{#2}]{#2}} \def\@sanitize{\@makeother\ \@makeother\\\@makeother\$\@makeother\&% \@makeother\#\@makeother\^\@makeother\_\@makeother\%\@makeother\~} \message{control,} \def\@whilenoop#1{} \def\@whilenum#1\do #2{\ifnum #1\relax #2\relax\@iwhilenum{#1\relax #2\relax}\fi} \def\@iwhilenum#1{\ifnum #1\let\@nextwhile\@iwhilenum \else\let\@nextwhile\@whilenoop\fi\@nextwhile{#1}} \def\@whiledim#1\do #2{\ifdim #1\relax#2\@iwhiledim{#1\relax#2}\fi} \def\@iwhiledim#1{\ifdim #1\let\@nextwhile\@iwhiledim \else\let\@nextwhile\@whilenoop\fi\@nextwhile{#1}} \long\def\@whileswnoop#1\fi{} \long\def\@whilesw#1\fi#2{#1#2\@iwhilesw{#1#2}\fi\fi} \long\def\@iwhilesw#1\fi{#1\let\@nextwhile\@iwhilesw \else\let\@nextwhile\@whileswnoop\fi\@nextwhile{#1}\fi} \def\@nnil{\@nil} \def\@empty{} \def\@fornoop#1\@@#2#3{} \def\@for#1:=#2\do#3{\edef\@fortmp{#2}\ifx\@fortmp\@empty \else \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi} \def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi} \def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil \let\@nextwhile\@fornoop \else #4\relax\let\@nextwhile\@iforloop\fi\@nextwhile#2\@@#3{#4}} \def\@tfor#1:=#2\do#3{\def\@fortmp{#2}\ifx\@fortmp\@empty \else \@tforloop#2\@nil\@nil\@@#1{#3}\fi} \def\@tforloop#1#2\@@#3#4{\def#3{#1}\ifx #3\@nnil \let\@nextwhile\@fornoop \else #4\relax\let\@nextwhile\@tforloop\fi\@nextwhile#2\@@#3{#4}} \def\@removeelement#1#2#3{% \def\@tempa##1,#1,##2\@tempa{##1,##2\@tempb}% \def\@tempb##1,\@tempb##2\@tempb{\ifx,##1\@empty\else##1\fi}% \edef#3{\expandafter\@tempb\@tempa,#2,\@tempb,#1,\@tempa}} \let\protect=\relax \def\@setprotect{% \let\@@protect\protect \def\protect{\noexpand\protect\noexpand}} \def\@resetprotect{\let\protect\@@protect} \ifx\input@path\@undefined \def\IfFileExists#1{% \openin\@inputcheck#1 % \ifeof\@inputcheck \expandafter\@secondoftwo \else \closein\@inputcheck \expandafter\@firstoftwo \fi } \def\InputIfFileExists#1#2{% \IfFileExists{#1}% {#2\xdef\@filelist{\@filelist,#1}\@@input#1 }} \else \def\IfFileExists#1{% \let\@tempa\@secondoftwo \expandafter\@tfor\expandafter\@tempb\expandafter :\expandafter=\input@path\do{% \openin\@inputcheck\@tempb#1 % \ifeof\@inputcheck\else \ifx\@tempa\@secondoftwo \edef\@filef@und{\@tempb#1 }% \let\@tempa\@firstoftwo \fi \fi \closein\@inputcheck}% \@tempa} \def\InputIfFileExists#1#2{% \IfFileExists{#1}% {#2\xdef\@filelist{\@filelist,#1}\@@input\@filef@und}} \fi \def\input{\@ifnextchar\bgroup\@iinput\@@input} \def\@iinput#1{% \InputIfFileExists{#1}{}% {\filename@parse{#1}% \edef\@tempa{\noexpand\@missingfileerror {\filename@area\filename@base}% {\ifx\filename@ext\relax tex\else\filename@ext\fi}}% \@tempa}} \ifx\input@path\@undefined \def\@input#1{% \IfFileExists{#1}{\@@input#1 }{\typeout{No file #1.}}} \else \def\@input#1{% \IfFileExists{#1}{\@@input\@filef@und}{\typeout{No file #1.}}} \fi \def\@obsoletefile#1#2{% \@warning{inputting `#1' instead of obsolete `#2'}% } \input nfsscode.ltx \message{errors,} \let\c@errorcontextlines\errorcontextlines \c@errorcontextlines=-1 \def\@latexerr#1#2{% \edef\@tempc{#2}\errhelp\expandafter{\@tempc}% \typeout{LaTeX error. \space See LaTeX manual for explanation.^^J \space\@spaces\@spaces\@spaces Type \space H \space for immediate help.}% \begingroup \c@errorcontextlines\m@ne \errmessage{#1}% \endgroup } \def\@spaces{\space\space\space\space} \def\@eha{Your command was ignored. ^^JType \space I \space to replace it with another command,^^Jor \space \space to continue without it.} \def\@ehb{You've lost some text. \space \@ehc} \def\@ehc{Try typing \space \space to proceed.^^JIf that doesn't work, type \space X \space to quit.} \def\@ehd{You're in trouble here. \space\@ehc} \def\@notdefinable{\@latexerr{Command name '\@tempa' already used}\@eha} \def\@nolnerr{\@latexerr{There's no line here to end}\@eha} \def\@nocnterr{\@latexerr{No such counter}\@eha} \def\@ctrerr{\@latexerr{Counter too large}\@ehb} \def\@nodocument{\@latexerr{Missing \string\begin{document}}\@ehd} \def\@badend#1{\@latexerr{\string\begin{\@currenvir}\@currenvline\space ended by \string\end{#1}}\@eha} \def\@badmath{\@latexerr{Bad math environment delimiter}\@eha} \def\@toodeep{\@latexerr{Too deeply nested}\@ehd} \def\@badpoptabs{\@latexerr{\string\pushtabs \space and \string\poptabs \space don't match}\@ehd} \def\@badtab{\@latexerr{Undefined tab position}\@ehd} \def\@preamerr#1{\@latexerr{\ifcase #1 Illegal character\or Missing @-exp\or Missing p-arg\fi\space in array arg}\@ehd} \def\@badlinearg{\@latexerr{Bad \string\line\space or \string\vector \space argument}\@ehb} \def\@parmoderr{\@latexerr{Not in outer par mode}\@ehb} \def\@fltovf{\@latexerr{Too many unprocessed floats}\@ehb} \def\@latexbug{\@latexerr{This may be a LaTeX bug}{Call for help}} \def\@badcrerr {\@latexerr{Bad use of \string\\}\@ehc} \def\@noitemerr{\@latexerr{Something's wrong--perhaps a missing \string\item}\@ehc} \def\@notprerr {\@latexerr{Can be used only in preamble}\@eha} \def\@invalidchar{\@latexerr{Invalid character in input}\@ehc} \message{par,} \def\@par{\let\par\@@par\par} \def\@setpar#1{\def\par{#1}\def\@par{#1}} \def\@restorepar{\def\par{\@par}} \message{spacing,} \def\nopagebreak{\@ifnextchar[{\@nopgbk}{\@nopgbk[4]}} \def\@nopgbk[#1]{\ifvmode \penalty \@getpen{#1}\else \@bsphack\vadjust{\penalty \@getpen{#1}}\@esphack\fi} \def\pagebreak{\@ifnextchar[{\@pgbk}{\@pgbk[4]}} \def\@pgbk[#1]{\ifvmode \penalty -\@getpen{#1}\else \@bsphack\vadjust{\penalty -\@getpen{#1}}\@esphack\fi} \def\nolinebreak{\@ifnextchar[{\@nolnbk}{\@nolnbk[4]}} \def\@nolnbk[#1]{\ifvmode \@nolnerr\else \@tempskipa\lastskip \unskip \penalty \@getpen{#1}\ifdim \@tempskipa >\z@ \hskip\@tempskipa\ignorespaces\fi\fi} \def\linebreak{\@ifnextchar[{\@lnbk}{\@lnbk[4]}} \def\@lnbk[#1]{\ifvmode \@nolnerr\else \unskip\penalty -\@getpen{#1}\fi} \def\samepage{\interlinepenalty\@M \postdisplaypenalty\@M \interdisplaylinepenalty\@M \@beginparpenalty\@M \@endparpenalty\@M \@itempenalty\@M \@secpenalty\@M \interfootnotelinepenalty\@M} \def\newline{\ifvmode \@nolnerr \else \unskip\nobreak\hfil \penalty -\@M\fi} \def\@normalcr{\@ifstar{\vadjust{\penalty\@M}\@xnewline}{\@xnewline}} \def\@xnewline{\@ifnextchar[{\@newline}{\newline}} \def\@newline[#1]{\ifhmode\unskip\fi\vspace{#1}\newline} \let\\=\@normalcr \def\@getpen#1{\ifcase #1 0 \or \@lowpenalty\or \@medpenalty \or \@highpenalty \else \@M \fi} \newif\if@nobreak \@nobreakfalse \newdimen\@savsk \newcount\@savsf \def\@Esphack{\relax\ifmmode\else\ifhmode\spacefactor\@savsf \ifdim \@savsk >\z@ \global\@ignoretrue \ignorespaces \fi \fi\fi} \def \@bsphack{% \relax \ifvmode \@savsk \lastskip \ifdim \lastskip=\z@ \else \vskip -\lastskip \fi \else \ifhmode \@savsk \lastskip \@savsf \spacefactor \fi \fi } \def \@esphack{% \relax \ifvmode \nobreak \ifdim \@savsk=\z@ \else \vskip\@savsk \fi \else \ifhmode \spacefactor \@savsf \ifdim \@savsk>\z@ \ignorespaces \fi \fi \fi } \def \@bsphack{% \relax \ifhmode \@savsk \lastskip \@savsf \spacefactor \fi } \def \@esphack{% \relax \ifhmode \spacefactor \@savsf \ifdim \@savsk>\z@ \ignorespaces \fi \fi } \def \@Esphack{% \relax \ifhmode \spacefactor \@savsf \ifdim \@savsk>\z@ \global\@ignoretrue \ignorespaces \fi \fi } \def \@vbsphack{ % \relax \ifvmode \leavevmode \@savsk 1sp \@savsf \spacefactor \else \ifhmode \@savsk \lastskip \@savsf \spacefactor \fi \fi } \def\addvspace#1{\ifvmode \if@minipage\else \ifdim \lastskip =\z@ \vskip #1\relax \else \@tempskipb#1\relax\@xaddvskip \fi\fi \else\@noitemerr\fi} \def\@xaddvskip{\ifdim \lastskip <\@tempskipb\vskip-\lastskip\vskip \@tempskipb \else \ifdim \@tempskipb<\z@ \ifdim \lastskip <\z@ \else \advance\@tempskipb\lastskip \vskip -\lastskip \vskip \@tempskipb \fi\fi\fi} \def\addpenalty#1{\ifvmode \if@minipage\else\if@nobreak\else \ifdim\lastskip=\z@ \penalty#1\relax \else \@tempskipb\lastskip \vskip -\lastskip \penalty#1\vskip\@tempskipb \fi\fi\fi \else\@noitemerr\fi} \def\vspace{\@ifstar{\@vspacer}{\@vspace}} \def\@vspace#1{\ifvmode \dimen@\prevdepth \vskip #1\vskip\z@skip \prevdepth\dimen@ \else \@bsphack\vadjust{\dimen@\prevdepth \vskip #1\vskip\z@skip \prevdepth\dimen@}\@esphack\fi} \def\@vspacer#1{\ifvmode \dimen@\prevdepth \hrule \@height\z@ \nobreak \vskip #1\vskip\z@skip \prevdepth\dimen@ \else \@bsphack\vadjust{\dimen@\prevdepth \hrule \@height\z@ \nobreak \vskip #1\vskip\z@skip \prevdepth\dimen@}\@esphack\fi} \def\smallskip{\vspace\smallskipamount} \def\medskip{\vspace\medskipamount} \def\bigskip{\vspace\bigskipamount} \def\endtrivlist{\if@newlist\@noitemerr\fi \if@inlabel\indent\fi \ifhmode\unskip \par\fi \if@noparlist \else \ifdim\lastskip >\z@ \@tempskipa\lastskip \vskip -\lastskip \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip \vskip\@tempskipa \fi\@endparenv\fi} \def\@endparenv{\addpenalty\@endparpenalty\addvspace\@topsepadd\@endpetrue} \def\@doendpe{\@endpetrue \def\par{\@restorepar\everypar{}\par\@endpefalse}\everypar {\setbox\z@\lastbox\everypar{}\@endpefalse}} \newif\if@endpe \@endpefalse \def\,{\protect\pcomma} \def\pcomma{\relax\ifmmode\mskip\thinmuskip\else\thinspace\fi} \def\@{\spacefactor\@m} \def\hspace{\protect\phspace} \def\phspace{\@ifstar{\@hspacer}{\@hspace}} \def\@hspace#1{\hskip #1\relax} \def\@hspacer#1{\vrule \@width\z@\nobreak \hskip #1\hskip \z@skip} % extra \hskip 0pt added 12/17/85 to guard % against a following \unskip % \relax added 13 Oct 88 for usual TeX lossage % replaced both changes by \hskip\z@skip 27 Nov 91 \newskip\fill \fill = 0pt plus 1fill \def\stretch#1{\z@ \@plus #1fill\relax} {\catcode`\^^M=13 \gdef\obeycr{\catcode`\^^M=13 \def^^M{\\}\@gobblecr}% \gdef\restorecr{\catcode`\^^M=5 }} %} BRACE MATCHING \message{files,} \newif\if@filesw \@fileswtrue \newif\if@partsw \@partswfalse \newwrite\@mainaux \newwrite\@partaux \newcount\@clubpenalty \def\document{\endgroup \ifx\@unusedoptionlist\@empty\else \@@warning{Unused global option(s):^^J^^J% \@spaces[\@unusedoptionlist]^^J}% \fi \@colht\textheight \@colroom\textheight \vsize\textheight \columnwidth\textwidth \@clubpenalty\clubpenalty \if@twocolumn \advance\columnwidth -\columnsep \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue \fi \hsize\columnwidth \linewidth\hsize \begingroup\@floatplacement\@dblfloatplacement \makeatletter\let\@writefile\@gobbletwo \global\@multiplelabelsfalse \@input{\jobname.aux}% \endgroup \if@filesw \immediate\openout\@mainaux\jobname.aux \immediate\write\@mainaux{\relax}% \fi \process@table \let\glb@currsize\@empty %% Force \baselineskip initialisation. \def\do##1{\let ##1\@notprerr}% \@preamblecmds \let\do\noexpand \@normalsize\everypar{}\@noskipsecfalse\G@refundefinedfalse \@begindocumenthook \let\@begindocumenthook\@undefined } \def\@gobbletwo#1#2{} \def\nofiles{\@fileswfalse \typeout {No auxiliary output files.}\typeout{}} \@onlypreamble\nofiles \let\@auxout=\@mainaux \def\includeonly#1{\@partswtrue\edef\@partlist{#1}} \def\include#1{\relax \ifnum\@auxout=\@partaux \@latexerr{\string\include\space cannot be nested}\@eha \else \@include#1 \fi} \def\@include#1 {\clearpage \if@filesw \immediate\write\@mainaux{\string\@input{#1.aux}}\fi \@tempswatrue\if@partsw \@tempswafalse\edef\@tempb{#1}\@for \@tempa:=\@partlist\do{\ifx\@tempa\@tempb\@tempswatrue\fi}\fi \if@tempswa \let\@auxout\@partaux \if@filesw \immediate\openout\@partaux #1.aux \immediate\write\@partaux{\relax}\fi\@input{#1.tex}\clearpage \@writeckpt{#1}\if@filesw \immediate\closeout\@partaux \fi \else\@nameuse{cp@#1}\fi\let\@auxout\@mainaux} \def\@writeckpt#1{\if@filesw \immediate\write\@partaux{\string\@setckpt{#1}\@charlb}% {\let\@elt\@wckptelt \cl@@ckpt}\immediate\write\@partaux{\@charrb}\fi} \def\@wckptelt#1{\immediate\write\@partaux {\string\setcounter{#1}{\the\@nameuse{c@#1}}}} \def\@setckpt#1{\global\@namedef{cp@#1}} {\catcode`[=1 \catcode`]=2 \catcode`{=11 \catcode`}=11 \gdef\@charlb[{] \gdef\@charrb[}] ]% }brace matching \message{env. counters,} \def\setcounter#1#2{\@ifundefined{c@#1}{\@nocnterr}% {\global\csname c@#1\endcsname#2\relax}} \def\addtocounter#1#2{\@ifundefined{c@#1}{\@nocnterr}% {\global\advance\csname c@#1\endcsname #2\relax}} \def\newcounter#1{\expandafter\@ifdefinable \csname c@#1\endcsname {\@definecounter{#1}}\@ifnextchar[{\@newctr{#1}}{}} \def\value#1{\csname c@#1\endcsname} \def\@newctr#1[#2]{\@ifundefined{c@#2}{\@nocnterr}{\@addtoreset{#1}{#2}}} \def\stepcounter#1{\global\advance\csname c@#1\endcsname \@ne \begingroup\let\@elt\@stpelt \csname cl@#1\endcsname\endgroup} \def\@stpelt#1{\global\csname c@#1\endcsname \z@} \def\cl@@ckpt{\@elt{page}} \def\@definecounter#1{\expandafter\newcount\csname c@#1\endcsname \setcounter{#1}0 \expandafter\gdef\csname cl@#1\endcsname{}\@addtoreset {#1}{@ckpt}\expandafter\gdef\csname p@#1\endcsname{}\expandafter \gdef\csname the#1\endcsname{\arabic{#1}}} \def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}} \def\arabic#1{\@arabic{\@nameuse{c@#1}}} \def\roman#1{\@roman{\@nameuse{c@#1}}} \def\Roman#1{\@Roman{\@nameuse{c@#1}}} \def\alph#1{\@alph{\@nameuse{c@#1}}} \def\Alph#1{\@Alph{\@nameuse{c@#1}}} \def\fnsymbol#1{\@fnsymbol{\@nameuse{c@#1}}} \def\@arabic#1{\number #1} %% changed 29 Apr 86 \def\@roman#1{\romannumeral #1} \def\@Roman#1{\expandafter\uppercase\expandafter{\romannumeral #1}} \def\@alph#1{\ifcase#1\or a\or b\or c\or d\else\@ialph{#1}\fi} \def\@ialph#1{\ifcase#1\or \or \or \or \or e\or f\or g\or h\or i\or j\or k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or x\or y\or z\else\@ctrerr\fi} \def\@Alph#1{\ifcase#1\or A\or B\or C\or D\else\@Ialph{#1}\fi} \def\@Ialph#1{\ifcase#1\or \or \or \or \or E\or F\or G\or H\or I\or J\or K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or U\or V\or W\or X\or Y\or Z\else\@ctrerr\fi} \def\@fnsymbol#1{\ifcase#1\or *\or \dagger\or \ddagger\or \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger \or \ddagger\ddagger \else\@ctrerr\fi\relax} \message{page nos.,} \countdef\c@page=0 \c@page=1 \def\cl@page{} \def\pagenumbering#1{\global\c@page \@ne \gdef\thepage{\csname @#1\endcsname \c@page}} \message{x-ref,} \newif\ifG@refundefined \def\G@refundefinedtrue{\global\let\ifG@refundefined\iftrue} \def\G@refundefinedfalse{\global\let\ifG@refundefined\iffalse} \def\@setref#1#2#3{% \ifx#1\relax \protect\G@refundefinedtrue \nfss@text{\reset@font\bfseries ??}% \@warning{Reference `#3' on page \thepage \space undefined}% \else \expandafter#2#1\null \fi} \def\ref#1{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}} \def\pageref#1{\expandafter\@setref\csname r@#1\endcsname \@secondoftwo{#1}} \newif\if@multiplelabels \def\newlabel#1#2{\@ifundefined{r@#1}{}{\global\@multiplelabelstrue \@warning{Label `#1' multiply defined}}\global\@namedef{r@#1}{#2}} \def\label#1{\@bsphack\if@filesw {\let\thepage\relax \def\protect{\noexpand\noexpand\noexpand}% \edef\@tempa{\write\@auxout{\string \newlabel{#1}{{\@currentlabel}{\thepage}}}}% \expandafter}\@tempa \if@nobreak \ifvmode\nobreak\fi\fi\fi\@esphack} \def\refstepcounter#1{\stepcounter{#1}\let\@tempa\protect \def\protect{\noexpand\protect\noexpand}% \edef\@currentlabel{\csname p@#1\endcsname\csname the#1\endcsname}% \let\protect\@tempa} \def\@currentlabel{} % For \label commands that come before any environment \message{environments,} \def\@currenvir{document} \@onlypreamble\document \@onlypreamble\documentstyle \@onlypreamble\@documentstyle \@onlypreamble\@options \@onlypreamble\@preamblecmds \@onlypreamble\@optionlist \@onlypreamble\@optionfiles \@onlypreamble\nofiles \@onlypreamble\includeonly \@onlypreamble\makeindex \@onlypreamble\makeglossary \newif\if@ignore \def\enddocument{% \@checkend{document}% \@enddocumenthook \clearpage \begingroup \if@filesw \immediate\closeout\@mainaux \ifG@refundefined\@@warning{There are unresolved references}\fi \if@multiplelabels \@@warning{One or more label(s) multiply defined}% \else \def\@setckpt##1##2{}% \def\newlabel{\@testdef r}% \def\bibcite{\@testdef b}% \@tempswafalse \makeatletter \input\jobname.aux \if@tempswa \@@warning{Label(s) may have changed. Rerun to get cross-references right}% \fi \fi \fi \endgroup\deadcycles\z@\@@end} \def\@testdef #1#2#3{\def\@tempa{#3}\expandafter \ifx \csname #1@#2\endcsname \@tempa \else \@tempswatrue \fi} \long\def\@writefile#1#2{\@ifundefined{tf@#1}{}{% \immediate\write\csname tf@#1\endcsname{#2}}} % \long added 8 Feb 90, as suggested by Chris Rowley \def\stop{\clearpage\deadcycles\z@\let\par\@@par\@@end} \everypar{\@nodocument} %% To get an error if text appears before the \nullfont %% \begin{document} \def\begin#1{\@ifundefined{#1}{\def\@tempa{\@latexerr{Environment #1 undefined}\@eha}}{\def\@tempa{\def\@currenvir{#1}% \edef\@currenvline{\on@line}% \csname #1\endcsname}}\global\@ignorefalse %% \global... added 2 May 90 \begingroup\@endpefalse\@tempa} \def\end#1{\csname end#1\endcsname\@checkend{#1}% \expandafter\endgroup \if@endpe \@doendpe \fi \if@ignore \global\@ignorefalse \ignorespaces\fi} \def\@checkend#1{\def\@tempa{#1}\ifx \@tempa\@currenvir \else\@badend{#1}\fi} \let\@currenvline\space \message{math,} \def\({\relax\ifmmode\@badmath\else$%%$BRACE MATCH HACK \fi} \def\){\relax\ifmmode\ifinner$\else\@badmath%%$ BRACE MATCH HACK \fi\else \@badmath\fi} \def\[{\relax\ifmmode\@badmath\else \ifvmode \nointerlineskip \makebox[.6\linewidth]\fi$$%%$$ BRACE MATCH HACK \fi} \def\]{\relax\ifmmode\ifinner\@badmath\else$$\fi%%$$ BRACE MATCH HACK \else \@badmath \fi\ignorespaces} \let\math=\( \let\endmath=\) \def\displaymath{\[} \def\enddisplaymath{\]\global\@ignoretrue} \@definecounter{equation} \def\equation{$$ % $$ BRACE MATCHING HACK \refstepcounter{equation}} \def\endequation{\eqno \hbox{\@eqnnum}% $$ BRACE MATCHING HACK $$\global\@ignoretrue} \def\@eqnnum{{\reset@font\rmfamily (\theequation)}} \def\stackrel#1#2{\mathrel{\mathop{#2}\limits^{#1}}} \def\frac#1#2{{\begingroup#1\endgroup\over#2}} \let\@@sqrt=\sqrt \def\sqrt{\@ifnextchar[{\@sqrt}{\@@sqrt}} \def\@sqrt[#1]{\root #1\of} \let\:=\> \newcount\@eqcnt \newcount\@eqpen \newif\if@eqnsw\@eqnswtrue \@centering = 0pt plus 1000pt % Changed 11/4/85 to produce warning message % if line extends into margin. Doesn't warn % about formula overprinting equation number. \def\eqnarray{\refstepcounter{equation}% \global\@eqnswtrue\m@th \global\@eqcnt\z@\tabskip\@centering\let\\\@eqncr $$\everycr{}\halign to\displaywidth\bgroup\hskip\@centering $\displaystyle\tabskip\z@skip{##}$\@eqnsel&\global\@eqcnt\@ne \hskip \tw@\arraycolsep \hfil${##}$\hfil &\global\@eqcnt\tw@ \hskip \tw@\arraycolsep $\displaystyle{##}$\hfil \tabskip\@centering&\global\@eqcnt\thr@@ \hbox to\z@\bgroup\hss##\egroup\tabskip\z@skip\cr} \def\endeqnarray{\@@eqncr\egroup \global\advance\c@equation\m@ne$$\global\@ignoretrue} \let\@eqnsel=\relax \def\nonumber{\global\@eqnswfalse} \def\@eqncr{{\ifnum0=`}\fi\@ifstar{\global\@eqpen\@M \@yeqncr}{\global\@eqpen\interdisplaylinepenalty \@yeqncr}} \def\@yeqncr{\@ifnextchar [{\@xeqncr}{\@xeqncr[\z@skip]}} \def\@xeqncr[#1]{\ifnum0=`{\fi}\@@eqncr \noalign{\penalty\@eqpen\vskip\jot\vskip #1\relax}} \def\@@eqncr{\let\@tempa\relax \ifcase\@eqcnt \def\@tempa{& & &}\or \def\@tempa{& &}% \or \def\@tempa{&}\else \let\@tempa\@empty \@latexerr{Too many columns in eqnarray environment}\@ehc\fi \@tempa \if@eqnsw\@eqnnum\refstepcounter{equation}\fi \global\@eqnswtrue\global\@eqcnt\z@\cr} \let\@seqncr=\@eqncr \@namedef{eqnarray*}{\def\@eqncr{\nonumber\@seqncr}\eqnarray} \@namedef{endeqnarray*}{\nonumber\endeqnarray} \def\lefteqn#1{\hbox to\z@{$\displaystyle #1$\hss}} \def\ensuremath{\protect\p@ensuremath} \def\p@ensuremath#1{\ifmmode#1\else$#1$\fi} \message{center,} \def\@centercr{\ifhmode \unskip\else \@badcrerr\fi \par\@ifstar{\penalty \@M\@xcentercr}{\@xcentercr}} \def\@xcentercr{\addvspace{-\parskip}\@ifnextchar [{\@icentercr}{\ignorespaces}} \def\@icentercr[#1]{\vskip #1\ignorespaces} \def\center{\trivlist \centering\item\relax} \def\centering{\let\\\@centercr\rightskip\@flushglue\leftskip\@flushglue \parindent\z@\parfillskip\z@skip} \let\endcenter=\endtrivlist \newskip\@rightskip \@rightskip \z@skip \def\flushleft{\trivlist \raggedright\item\relax} \def\raggedright{\let\\\@centercr\@rightskip\@flushglue \rightskip\@rightskip \leftskip\z@skip \parindent\z@} \let\endflushleft=\endtrivlist \def\flushright{\trivlist \raggedleft\item\relax} \def\raggedleft{\let\\\@centercr\rightskip\z@skip\leftskip\@flushglue \parindent\z@\parfillskip\z@skip} \let\endflushright=\endtrivlist \message{verbatim,} {\catcode`\^^M=13 \gdef\@gobblecr{\@ifnextchar {\@gobble}{\ignorespaces}}} {\catcode`\ =\active\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}} \def\@xobeysp{\leavevmode\penalty10000\ } \begingroup \catcode `|=0 \catcode `[= 1 \catcode`]=2 \catcode `\{=12 \catcode `\}=12 \catcode`\\=12 |gdef|@xverbatim#1\end{verbatim}[#1|end[verbatim]] |gdef|@sxverbatim#1\end{verbatim*}[#1|end[verbatim*]] |endgroup \def\@gobble#1{} \def\@verbatim{\trivlist \item\relax \if@minipage\else\vskip\parskip\fi \leftskip\@totalleftmargin\rightskip\z@skip \parindent\z@\parfillskip\@flushglue\parskip\z@skip \@@par \@tempswafalse \def\par{\if@tempswa\hbox{}\fi\@tempswatrue\@@par \penalty\interlinepenalty}% \obeylines \verbatim@font \@noligs \let\do\@makeother \dospecials} \def\verbatim{\@verbatim \frenchspacing\@vobeyspaces \@xverbatim} \def\endverbatim{\if@newlist \leavevmode\fi\endtrivlist} \begingroup \catcode`\`=\active \gdef\verbatim@font{\normalfont\ttfamily \catcode96\active \def`{\leavevmode\kern\z@\char96 }} \endgroup \@namedef{verbatim*}{\@verbatim\@sxverbatim} \expandafter\let\csname endverbatim*\endcsname =\endverbatim \def\@makeother#1{\catcode`#1=12\relax} \let\verb@balance@group\@empty \def\verb@egroup{\global\let\verb@balance@group\@empty\egroup} \begingroup \obeylines% \gdef\verb@eol@error{\obeylines% \def^^M{\verb@egroup\@latexerr{% Text for \noexpand\verb command ended by end of line}\@ehc}}% \endgroup \def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi \bgroup \@noligs \verbatim@font \verb@eol@error \let\do\@makeother \dospecials \@ifstar{\@sverb}{\@verb}} \def\@sverb#1{% \catcode`#1\active \lccode`\~`#1% \gdef\verb@balance@group{\verb@egroup \@latexerr{Illegal use of \noexpand\verb command}\@ehc}% \aftergroup\verb@balance@group \lowercase{\let~\verb@egroup}}% \def\@verb{\@vobeyspaces \frenchspacing \@sverb} \def\verbatim@nolig@list{\do\`\do\<\do\>\do\,\do\'\do\-} \def\do@noligs#1{% \catcode`#1\active \begingroup \lccode`\~=`#1\relax \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}} \def\@noligs{\let\do\do@noligs \verbatim@nolig@list} \def\literal#1{{#1\kern\z@}} \message{list,} \newskip\topsep \newskip\partopsep \newskip\itemsep \newskip\parsep \newskip\@topsep \newskip\@topsepadd \newskip\@outerparskip \newdimen\leftmargin \newdimen\rightmargin \newdimen\listparindent \newdimen\itemindent \newdimen\labelwidth \newdimen\labelsep \newdimen\linewidth \newdimen\@totalleftmargin \@totalleftmargin=\z@ \newdimen\leftmargini \newdimen\leftmarginii \newdimen\leftmarginiii \newdimen\leftmarginiv \newdimen\leftmarginv \newdimen\leftmarginvi \newcount\@listdepth \@listdepth=0 \newcount\@itempenalty \newcount\@beginparpenalty \newcount\@endparpenalty \newbox\@labels \newif\if@inlabel \@inlabelfalse \newif\if@newlist \@newlistfalse \newif\if@noparitem \@noparitemfalse \newif\if@noparlist \@noparlistfalse \newif\if@noitemarg \@noitemargfalse \newif\if@nmbrlist \@nmbrlistfalse \def\list#1#2{\ifnum \@listdepth >5\relax \@toodeep \else \global\advance\@listdepth\@ne \fi \rightmargin \z@ \listparindent\z@ \itemindent\z@ \csname @list\romannumeral\the\@listdepth\endcsname \def\@itemlabel{#1}\let\makelabel\@mklab \@nmbrlistfalse #2\relax \@trivlist \parskip\parsep \parindent\listparindent \advance\linewidth -\rightmargin \advance\linewidth -\leftmargin \advance\@totalleftmargin \leftmargin \parshape \@ne \@totalleftmargin \linewidth \ignorespaces} \newcount\par@deathcycles \def\@trivlist{\@topsepadd\topsep \if@noskipsec \leavevmode \fi \ifvmode \advance\@topsepadd\partopsep \else \unskip\par\fi \if@inlabel \@noparitemtrue \@noparlisttrue \else \@noparlistfalse \@topsep\@topsepadd \fi \advance\@topsep \parskip \leftskip\z@skip\rightskip\@rightskip \parfillskip\@flushglue \par@deathcycles\z@ \@setpar{\if@newlist \advance\par@deathcycles\@ne \ifnum\par@deathcycles>\@m \@noitemerr{\@@par}\fi \else{\@@par}\fi}% \global\@newlisttrue \@outerparskip\parskip} \def\trivlist{\parsep\parskip\@nmbrlistfalse \@trivlist \labelwidth\z@ \leftmargin\z@ \itemindent\z@ \let\@itemlabel\@empty \def\makelabel##1{##1}} \def\endlist{\global\advance\@listdepth\m@ne \endtrivlist} \def\@mklab#1{\hfil #1} \def\@ltxnomath#1{\relax\ifmmode \@warning{\string#1\space in math mode}\fi} \def\item{\@ltxnomath\item \@ifnextchar [{\@item}{\@noitemargtrue \@item[\@itemlabel]}} \def\@donoparitem{\@noparitemfalse \global\setbox\@labels\hbox{\hskip -\leftmargin \unhbox\@labels \hskip \leftmargin}\if@minipage\else \@tempskipa\lastskip \vskip -\lastskip \advance\@tempskipa\@outerparskip \advance\@tempskipa -\parskip \vskip\@tempskipa\fi} \def\@item[#1]{\if@noparitem \@donoparitem \else \if@inlabel \indent \par \fi \ifhmode \unskip\unskip \par \fi \if@newlist \if@nobreak \@nbitem \else \addpenalty\@beginparpenalty \addvspace\@topsep \addvspace{-\parskip}\fi \else \addpenalty\@itempenalty \addvspace\itemsep \fi \global\@inlabeltrue \fi \everypar{\global\@minipagefalse\global\@newlistfalse \if@inlabel\global\@inlabelfalse \hskip -\parindent \box\@labels \penalty\z@ \fi \everypar{}}\global\@nobreakfalse \if@noitemarg \@noitemargfalse \if@nmbrlist \refstepcounter{\@listctr}\fi \fi \sbox\@tempboxa{\makelabel{#1}}% \global\setbox\@labels \hbox{\unhbox\@labels \hskip \itemindent \hskip -\labelwidth \hskip -\labelsep \ifdim \wd\@tempboxa >\labelwidth \box\@tempboxa \else \hbox to\labelwidth {\unhbox\@tempboxa}\fi \hskip \labelsep}\ignorespaces} \def\makelabel#1{\@latexerr{Lonely \string\item--perhaps a missing list environment}\@ehc} \def\@nbitem{\@tempskipa\@outerparskip \advance\@tempskipa -\parskip \addvspace{\@tempskipa}} \def\usecounter#1{\@nmbrlisttrue\def\@listctr{#1}\setcounter{#1}\z@} \message{itemize,} \newcount\@enumdepth \@enumdepth = 0 \@definecounter{enumi} \@definecounter{enumii} \@definecounter{enumiii} \@definecounter{enumiv} \def\enumerate{\ifnum \@enumdepth >3 \@toodeep\else \advance\@enumdepth \@ne \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list {\csname label\@enumctr\endcsname}{\usecounter {\@enumctr}\def\makelabel##1{\hss\llap{##1}}}\fi} \let\endenumerate =\endlist \newcount\@itemdepth \@itemdepth = 0 \def\itemize{\ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth \@ne \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \list{\csname\@itemitem\endcsname}{\def\makelabel##1{\hss\llap{##1}}}\fi} \let\enditemize =\endlist \input ltboxes.ltx \message{tabbing,} \expandafter \let \csname a`\endcsname = \` \expandafter \let \csname a'\endcsname = \' \expandafter \let \csname a=\endcsname = \= \def\a#1{\csname a#1\endcsname} \newif\if@rjfield \newcount\@firsttab \newcount\@maxtab \newdimen\@gtempa \@firsttab=\allocationnumber \newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa \newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa \newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa\newdimen\@gtempa \newdimen\@gtempa \@maxtab=\allocationnumber \dimen\@firsttab=0pt \newcount\@nxttabmar \newcount\@curtabmar \newcount\@curtab \newcount\@hightab \newcount\@tabpush \newbox\@curline \newbox\@curfield \newbox\@tabfbox \def\@startline{\global\@curtabmar\@nxttabmar \global\@curtab\@curtabmar\global\setbox\@curline\hbox % missing \global {}\@startfield\strut} % added 17 Jun 86 \def\@stopline{\unskip\@stopfield\if@rjfield \global\@rjfieldfalse \@tempdima\@totalleftmargin \advance\@tempdima\linewidth \hbox to\@tempdima{\@itemfudge\hskip\dimen\@curtabmar \box\@curline\hfil\box\@curfield}\else\@addfield \hbox{\@itemfudge\hskip\dimen\@curtabmar\box\@curline}\fi} \def\@startfield{\global\setbox\@curfield\hbox\bgroup}%{ BRACE MATCH HACK \let\@stopfield=} \def\@contfield{\global\setbox\@curfield\hbox\bgroup\unhbox\@curfield} \def\@addfield{\global\setbox\@curline\hbox{\unhbox \@curline\unhbox\@curfield}} \def\@ifatmargin{\ifdim \wd\@curline =\z@} \def\@tabcr{\@stopline \@ifstar{\penalty \@M \@xtabcr}{\@xtabcr}} \def\@xtabcr{\@ifnextchar[{\@itabcr}{\@startline\ignorespaces}} \def\@itabcr[#1]{\vskip #1\@startline\ignorespaces} \def\kill{\@stopfield\@startline\ignorespaces} \def\+{\tabalign} \def\tabbing{\lineskip \z@skip\let\>\@rtab\let\<\@ltab\let\=\@settab \let\+\@tabplus\let\-\@tabminus\let\`\@tabrj\let\'\@tablab \let\\=\@tabcr \global\@hightab\@firsttab \global\@nxttabmar\@firsttab \dimen\@firsttab\@totalleftmargin \global\@tabpush\z@ \global\@rjfieldfalse \trivlist \item\relax \if@minipage\else\vskip\parskip\fi \setbox\@tabfbox\hbox{\rlap{\indent\hskip\@totalleftmargin \the\everypar}}\def\@itemfudge{\box\@tabfbox}\@startline\ignorespaces} \def\endtabbing{\@stopline\ifnum\@tabpush >\z@ \@badpoptabs \fi\endtrivlist} \def\@rtab{\@stopfield\@addfield\ifnum \@curtab<\@hightab \global\advance\@curtab \@ne \else\@badtab\fi \@tempdima\dimen\@curtab \advance\@tempdima -\dimen\@curtabmar \advance\@tempdima -\wd\@curline \global\setbox\@curline\hbox{\unhbox\@curline\hskip\@tempdima}% \@startfield\ignorespaces} \def\@settab{\@stopfield\@addfield\ifnum \@curtab <\@maxtab \global\advance\@curtab \@ne \else\@latexerr{Tab overflow}\@ehd\fi \ifnum\@curtab >\@hightab \@hightab\@curtab\fi \dimen\@curtab\dimen\@curtabmar \advance\dimen\@curtab \wd\@curline\@startfield\ignorespaces} \def\@ltab{\@ifatmargin\ifnum\@curtabmar >\@firsttab \global\advance\@curtab \m@ne \global\advance\@curtabmar \m@ne \else \@badtab\fi\else \@latexerr{\string\<\space in mid line}\@ehd\fi\ignorespaces} \def\@tabplus {\ifnum \@nxttabmar <\@hightab \global\advance\@nxttabmar \@ne \else \@badtab\fi\ignorespaces} \def\@tabminus{\ifnum\@nxttabmar >\@firsttab \global\advance\@nxttabmar \m@ne \else \@badtab\fi\ignorespaces} \def\@tabrj{\@stopfield\@addfield\global\@rjfieldtrue\@startfield\ignorespaces} \def\@tablab{\@stopfield\global\setbox\@curline\hbox{\box\@curline \hskip -\wd\@curfield \hskip -\tabbingsep \box\@curfield \hskip \tabbingsep}\@startfield\ignorespaces} \def\pushtabs{\@stopfield\@addfield\global\advance\@tabpush \@ne \begingroup \@contfield} \def\poptabs{\@stopfield\@addfield\ifnum\@tabpush >\z@ \endgroup \global\advance\@tabpush \m@ne \else \@badpoptabs\fi\@contfield} \newdimen\tabbingsep \message{array,} \def\extracolsep#1{\tabskip #1\relax} \def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz \let\@classiv\@arrayclassiv \let\\\@arraycr\let\@halignto\@empty\@tabarray} \def\endarray{\crcr\egroup\egroup} \def\endtabular{\crcr\egroup\egroup $\egroup} \expandafter \let \csname endtabular*\endcsname = \endtabular \def\tabular{\let\@halignto\@empty\@tabular} \@namedef{tabular*}#1{\def\@halignto{to#1}\@tabular} \def\@tabular{\leavevmode \hbox \bgroup $\let\@acol\@tabacol \let\@classz\@tabclassz \let\@classiv\@tabclassiv \let\\\@tabularcr\@tabarray} \def\@tabarray{\m@th\@ifnextchar[{\@array}{\@array[c]}} \def\@array[#1]#2{\setbox\@arstrutbox\hbox{\vrule \@height\arraystretch \ht\strutbox \@depth\arraystretch \dp\strutbox \@width\z@}\@mkpream{#2}\edef\@preamble{\ialign \noexpand\@halignto \bgroup \@arstrut \@preamble \tabskip\z@skip \cr}% \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi\fi \bgroup \let\par\@empty \let\@sharp##\let\protect\relax \lineskip\z@skip\baselineskip\z@skip\@preamble} \def\@arraycr{${\ifnum0=`}\fi\@ifstar{\@xarraycr}{\@xarraycr}} \def\@xarraycr{\@ifnextchar[{\@argarraycr}{\ifnum0=`{\fi}${}\cr}} \def\@argarraycr[#1]{\ifnum0=`{\fi}${}\ifdim #1>\z@ \@xargarraycr{#1}\else \@yargarraycr{#1}\fi} \def\@tabularcr{{\ifnum0=`}\fi\@ifstar{\@xtabularcr}{\@xtabularcr}} \def\@xtabularcr{\@ifnextchar[{\@argtabularcr}{\ifnum0=`{\fi}\cr}} \def\@argtabularcr[#1]{\ifnum0=`{\fi}\ifdim #1>\z@ \unskip\@xargarraycr{#1}\else \@yargarraycr{#1}\fi} \def\@xargarraycr#1{\@tempdima #1\advance\@tempdima \dp \@arstrutbox \vrule \@height\z@ \@depth\@tempdima \@width\z@ \cr} \def\@yargarraycr#1{\cr\noalign{\vskip #1}} \def\multicolumn#1#2#3{\multispan{#1}\begingroup \@mkpream{#2}% \def\@sharp{#3}\let\protect\relax \let\@startpbox\@@startpbox\let\@endpbox\@@endpbox \@arstrut \@preamble\hbox{}\endgroup\ignorespaces} \def\@xexnoop #1\@@{} \def\@expast#1{\@xexpast #1*0x\@@} \def\@xexpast#1*#2#3#4\@@{\edef\@tempa{#1}\@tempcnta#2\relax \ifnum\@tempcnta >\z@ \@whilenum\@tempcnta >\z@\do {\edef\@tempa{\@tempa#3}\advance\@tempcnta \m@ne}\let\@tempb\@xexpast \else \let\@tempb\@xexnoop\fi \expandafter\@tempb \@tempa #4\@@} \newif\if@firstamp \def\@addamp{\if@firstamp \@firstampfalse \else \edef\@preamble{\@preamble &}\fi} \def\@arrayacol{\edef\@preamble{\@preamble \hskip \arraycolsep}} \def\@tabacol{\edef\@preamble{\@preamble \hskip \tabcolsep}} \def\@ampacol{\@addamp \@acol} \def\@acolampacol{\@acol\@addamp\@acol} \def\@mkpream#1{\@firstamptrue\@lastchclass6 \let\@preamble\@empty\def\protect{\noexpand\protect\noexpand}\let\@sharp\relax \let\@startpbox\relax\let\@endpbox\relax \@expast{#1}\expandafter\@tfor \expandafter \@nextchar \expandafter:\expandafter=\@tempa\do{\@testpach\@nextchar \ifcase \@chclass \@classz \or \@classi \or \@classii \or \@classiii \or \@classiv \or\@classv \fi\@lastchclass\@chclass}% \ifcase \@lastchclass \@acol \or \or \@preamerr \@ne\or \@preamerr \tw@\or \or \@acol \fi} \def\@arrayclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or \or \or \@addamp \or \@acolampacol \or \@firstampfalse \@acol \fi \edef\@preamble{\@preamble \ifcase \@chnum \hfil$\relax\@sharp$\hfil \or $\relax\@sharp$\hfil \or \hfil$\relax\@sharp$\fi}} \def\@tabclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or \or \or \@addamp \or \@acolampacol \or \@firstampfalse \@acol \fi \edef\@preamble{\@preamble{% \ifcase \@chnum \hfil\ignorespaces\@sharp\unskip\hfil \or \ignorespaces\@sharp\unskip\hfil \or \hfil\hskip\z@skip \ignorespaces\@sharp\unskip\fi}}} \def\@classi{\ifcase \@lastchclass \@acol \@arrayrule \or \@addtopreamble{\hskip \doublerulesep}\@arrayrule\or \or \or \@arrayrule \or \@acol \@arrayrule \or \@arrayrule \fi} \def\@classii{\ifcase \@lastchclass \or \@addtopreamble{\hskip .5\arrayrulewidth}\fi} \def\@classiii{\ifcase \@lastchclass \@acolampacol \or \@addamp\@acol \or \or \or \@addamp \or \@acolampacol \or \@ampacol \fi} \def\@tabclassiv{\@addtopreamble\@nextchar} \def\@arrayclassiv{\@addtopreamble{$\@nextchar$}} \def\@classv{\@addtopreamble{\@startpbox{\@nextchar}\ignorespaces \@sharp\@endpbox}} \def\@addtopreamble#1{\edef\@preamble{\@preamble #1}} \newcount\@chclass \newcount\@lastchclass \newcount\@chnum \newdimen\arraycolsep \newdimen\tabcolsep \newdimen\arrayrulewidth \newdimen\doublerulesep \def\arraystretch{1} % Default value. \newbox\@arstrutbox \def\@arstrut{\relax\ifmmode\copy\@arstrutbox\else\unhcopy\@arstrutbox\fi} \def\@arrayrule{\@addtopreamble{\hskip -.5\arrayrulewidth \vrule \@width \arrayrulewidth\hskip -.5\arrayrulewidth}} \def\@testpach#1{\@chclass \ifnum \@lastchclass=\tw@ 4 \else \ifnum \@lastchclass=3 5 \else \z@ \if #1c\@chnum \z@ \else \if #1l\@chnum \@ne \else \if #1r\@chnum \tw@ \else \@chclass \if #1|\@ne \else \if #1@\tw@ \else \if #1p3 \else \z@ \@preamerr 0\fi \fi \fi \fi \fi \fi \fi \fi} \def\hline{\noalign{\ifnum0=`}\fi\hrule \@height \arrayrulewidth \futurelet \@tempa\@xhline} \def\@xhline{\ifx\@tempa\hline \vskip\doublerulesep \vskip-\arrayrulewidth \fi \ifnum0=`{\fi}} \def\vline{\vrule \@width \arrayrulewidth} \newcount\@cla \newcount\@clb \def\cline#1{\@cline[#1]} \def\@cline[#1-#2]{\noalign{\global\@cla#1\relax \global\advance\@cla\m@ne \ifnum\@cla>\z@\global\let\@gtempa\@clinea\else \global\let\@gtempa\@clineb\fi \global\@clb#2\relax \global\advance\@clb-\@cla}\@gtempa \noalign{\vskip-\arrayrulewidth}} \def\@clinea{\multispan\@cla&\multispan\@clb \unskip\leaders\hrule \@height \arrayrulewidth \hfill \cr} \def\@clineb{\multispan\@clb \unskip\leaders\hrule \@height \arrayrulewidth \hfill \cr} \def\@startpbox#1{\vtop\bgroup \hsize #1\@arrayparboxrestore} \def\@endpbox{\unskip\strut\par\egroup\hfil} \let\@@startpbox=\@startpbox \let\@@endpbox=\@endpbox \message{picture,} \newdimen\@wholewidth \newdimen\@halfwidth \newdimen\unitlength \unitlength =1pt \newbox\@picbox \newdimen\@picht \def\picture(#1,#2){\@ifnextchar({\@picture(#1,#2)}{\@picture(#1,#2)(0,0)}} \def\@picture(#1,#2)(#3,#4){\@picht #2\unitlength \setbox\@picbox\hbox to#1\unitlength\bgroup \hskip -#3\unitlength \lower #4\unitlength \hbox\bgroup\ignorespaces} \def\endpicture{\egroup\hss\egroup\ht\@picbox\@picht \dp\@picbox\z@\mbox{\box\@picbox}} \long\def\put(#1,#2)#3{\@killglue\raise#2\unitlength\hbox to\z@{\kern #1\unitlength #3\hss}\ignorespaces} \long\def\multiput(#1,#2)(#3,#4)#5#6{\@killglue\@multicnt #5\relax \@xdim #1\unitlength \@ydim #2\unitlength \@whilenum \@multicnt >\z@\do {\raise\@ydim\hbox to\z@{\kern \@xdim #6\hss}\advance\@multicnt \m@ne\advance\@xdim #3\unitlength\advance\@ydim #4\unitlength}\ignorespaces} \def\@killglue{\unskip\@whiledim \lastskip >\z@\do{\unskip}} \def\thinlines{\let\@linefnt\tenln \let\@circlefnt\tencirc \@wholewidth\fontdimen8\tenln \@halfwidth .5\@wholewidth} \def\thicklines{\let\@linefnt\tenlnw \let\@circlefnt\tencircw \@wholewidth\fontdimen8\tenlnw \@halfwidth .5\@wholewidth} \def\linethickness#1{\@wholewidth #1\relax \@halfwidth .5\@wholewidth} \def\shortstack{\@ifnextchar[{\@shortstack}{\@shortstack[c]}} \def\@shortstack[#1]{\leavevmode \vbox\bgroup\baselineskip-\p@\lineskip 3\p@\let\mb@l\hss \let\mb@r\hss \expandafter\let\csname mb@#1\endcsname\relax \let\\\@stackcr\@ishortstack} \def\@ishortstack#1{\ialign{\mb@l {##}\unskip\mb@r\cr #1\crcr}\egroup} \def\@stackcr{\@ifstar{\@ixstackcr}{\@ixstackcr}} \def\@ixstackcr{\@ifnextchar[{\@istackcr}{\cr\ignorespaces}} \def\@istackcr[#1]{\cr\noalign{\vskip #1}\ignorespaces} \newif\if@negarg \def\line(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax \@linelen #3\unitlength \ifdim\@linelen<\z@\@badlinearg\else \ifnum\@xarg =\z@ \@vline \else \ifnum\@yarg =\z@ \@hline \else \@sline\fi \fi \fi} \def\@sline{\ifnum\@xarg<\z@ \@negargtrue \@xarg -\@xarg \@yyarg -\@yarg \else \@negargfalse \@yyarg \@yarg \fi \ifnum \@yyarg >\z@ \@tempcnta\@yyarg \else \@tempcnta -\@yyarg \fi \ifnum\@tempcnta>6 \@badlinearg\@tempcnta\z@ \fi \ifnum\@xarg>6 \@badlinearg\@xarg \@ne \fi \setbox\@linechar\hbox{\@linefnt\@getlinechar(\@xarg,\@yyarg)}% \ifnum \@yarg >\z@ \let\@upordown\raise \@clnht\z@ \else\let\@upordown\lower \@clnht \ht\@linechar\fi \@clnwd \wd\@linechar \if@negarg \hskip -\wd\@linechar \def\@tempa{\hskip -2\wd\@linechar}\else \let\@tempa\relax \fi \@whiledim \@clnwd <\@linelen \do {\@upordown\@clnht\copy\@linechar \@tempa \advance\@clnht \ht\@linechar \advance\@clnwd \wd\@linechar}% \advance\@clnht -\ht\@linechar \advance\@clnwd -\wd\@linechar \@tempdima\@linelen\advance\@tempdima -\@clnwd \@tempdimb\@tempdima\advance\@tempdimb -\wd\@linechar \if@negarg \hskip -\@tempdimb \else \hskip \@tempdimb \fi \multiply\@tempdima \@m \@tempcnta \@tempdima \@tempdima \wd\@linechar \divide\@tempcnta \@tempdima \@tempdima \ht\@linechar \multiply\@tempdima \@tempcnta \divide\@tempdima \@m \advance\@clnht \@tempdima \ifdim \@linelen <\wd\@linechar \hskip \wd\@linechar \else\@upordown\@clnht\copy\@linechar\fi} \def\@hline{\ifnum \@xarg <\z@ \hskip -\@linelen \fi \vrule \@height \@halfwidth \@depth \@halfwidth \@width \@linelen \ifnum \@xarg <\z@ \hskip -\@linelen \fi} \def\@getlinechar(#1,#2){\@tempcnta#1\relax\multiply\@tempcnta 8% \advance\@tempcnta -9\ifnum #2>\z@ \advance\@tempcnta #2\relax\else \advance\@tempcnta -#2\relax\advance\@tempcnta 64 \fi \char\@tempcnta} \def\vector(#1,#2)#3{\@xarg #1\relax \@yarg #2\relax \@tempcnta \ifnum\@xarg<\z@ -\@xarg\else\@xarg\fi \ifnum\@tempcnta<5\relax \@linelen #3\unitlength \ifdim\@linelen<\z@\@badlinearg\else \ifnum\@xarg =\z@ \@vvector \else \ifnum\@yarg =\z@ \@hvector \else \@svector\fi \fi \fi \else\@badlinearg\fi} \def\@hvector{\@hline\hbox to\z@{\@linefnt \ifnum \@xarg <\z@ \@getlarrow(1,0)\hss\else \hss\@getrarrow(1,0)\fi}} \def\@vvector{\ifnum \@yarg <\z@ \@downvector \else \@upvector \fi} \def\@svector{\@sline \@tempcnta\@yarg \ifnum\@tempcnta <\z@ \@tempcnta -\@tempcnta\fi \ifnum\@tempcnta <5% \hskip -\wd\@linechar \@upordown\@clnht \hbox{\@linefnt \if@negarg \@getlarrow(\@xarg,\@yyarg)\else \@getrarrow(\@xarg,\@yyarg)\fi}% \else\@badlinearg\fi} \def\@getlarrow(#1,#2){\ifnum #2=\z@ \@tempcnta'33 \else \@tempcnta #1\relax\multiply\@tempcnta \sixt@@n \advance\@tempcnta -9 \@tempcntb #2\relax\multiply\@tempcntb \tw@ \ifnum \@tempcntb >\z@ \advance\@tempcnta \@tempcntb \else\advance\@tempcnta -\@tempcntb\advance\@tempcnta 64 \fi\fi\char\@tempcnta} \def\@getrarrow(#1,#2){\@tempcntb #2\relax \ifnum\@tempcntb <\z@ \@tempcntb -\@tempcntb\relax\fi \ifcase \@tempcntb\relax \@tempcnta'55 \or \ifnum #1<\thr@@ \@tempcnta #1\relax\multiply\@tempcnta 24\advance\@tempcnta -6 \else \ifnum #1=\thr@@ \@tempcnta 49 \else\@tempcnta 58 \fi\fi\or \ifnum #1<\thr@@ \@tempcnta=#1\relax\multiply\@tempcnta 24\advance\@tempcnta -\thr@@ \else \@tempcnta 51 \fi\or \@tempcnta #1\relax\multiply\@tempcnta \sixt@@n \advance\@tempcnta -\tw@ \else \@tempcnta #1\relax\multiply\@tempcnta \sixt@@n \advance\@tempcnta 7 \fi\ifnum #2<\z@ \advance\@tempcnta 64 \fi \char\@tempcnta} \def\@vline{\ifnum \@yarg <\z@ \@downline \else \@upline\fi} \def\@upline{\hbox to \z@{\hskip -\@halfwidth \vrule \@width \@wholewidth \@height \@linelen \@depth \z@\hss}} \def\@downline{\hbox to \z@{\hskip -\@halfwidth \vrule \@width \@wholewidth \@height \z@ \@depth \@linelen \hss}} \def\@upvector{\@upline\setbox\@tempboxa\hbox{\@linefnt\char'66}\raise \@linelen \hbox to\z@{\lower \ht\@tempboxa\box\@tempboxa\hss}} \def\@downvector{\@downline\lower \@linelen \hbox to \z@{\@linefnt\char'77\hss}} \def\dashbox#1(#2,#3){\leavevmode\hbox to\z@{\baselineskip \z@skip \lineskip \z@skip \@dashdim #2\unitlength \@dashcnt \@dashdim \advance\@dashcnt 200 \@dashdim #1\unitlength\divide\@dashcnt \@dashdim \ifodd\@dashcnt\@dashdim \z@ \advance\@dashcnt \@ne \divide\@dashcnt \tw@ \else \divide\@dashdim \tw@ \divide\@dashcnt \tw@ \advance\@dashcnt \m@ne \setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth \@width \@dashdim}\put(0,0){\copy\@dashbox}% \put(0,#3){\copy\@dashbox}% \put(#2,0){\hskip-\@dashdim\copy\@dashbox}% \put(#2,#3){\hskip-\@dashdim\box\@dashbox}% \multiply\@dashdim \thr@@ \fi \setbox\@dashbox \hbox{\vrule \@height \@halfwidth \@depth \@halfwidth \@width #1\unitlength\hskip #1\unitlength}\@tempcnta\z@ \put(0,0){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt \do{\copy\@dashbox\advance\@tempcnta \@ne }}\@tempcnta\z@ \put(0,#3){\hskip\@dashdim \@whilenum \@tempcnta <\@dashcnt \do{\copy\@dashbox\advance\@tempcnta \@ne }}% \@dashdim #3\unitlength \@dashcnt \@dashdim \advance\@dashcnt 200 \@dashdim #1\unitlength\divide\@dashcnt \@dashdim \ifodd\@dashcnt \@dashdim \z@ \advance\@dashcnt \@ne \divide\@dashcnt \tw@ \else \divide\@dashdim \tw@ \divide\@dashcnt \tw@ \advance\@dashcnt \m@ne \setbox\@dashbox\hbox{\hskip -\@halfwidth \vrule \@width \@wholewidth \@height \@dashdim}\put(0,0){\copy\@dashbox}% \put(#2,0){\copy\@dashbox}% \put(0,#3){\lower\@dashdim\copy\@dashbox}% \put(#2,#3){\lower\@dashdim\copy\@dashbox}% \multiply\@dashdim \thr@@ \fi \setbox\@dashbox\hbox{\vrule \@width \@wholewidth \@height #1\unitlength}\@tempcnta\z@ \put(0,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta <\@dashcnt \do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }% \vskip\@dashdim}}\@tempcnta\z@ \put(#2,0){\hskip -\@halfwidth \vbox{\@whilenum \@tempcnta<\@dashcnt \do{\vskip #1\unitlength\copy\@dashbox\advance\@tempcnta \@ne }% \vskip\@dashdim}}}\@makepicbox(#2,#3)} \newif\if@ovt \newif\if@ovb \newif\if@ovl \newif\if@ovr \newdimen\@ovxx \newdimen\@ovyy \newdimen\@ovdx \newdimen\@ovdy \newdimen\@ovro \newdimen\@ovri \def\@getcirc#1{\@tempdima #1\relax \advance\@tempdima 2\p@ \@tempcnta\@tempdima \@tempdima 4\p@ \divide\@tempcnta\@tempdima \ifnum \@tempcnta >10\relax \@tempcnta 10\relax\fi \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne \else \@warning{Oval too small}\fi \multiply\@tempcnta 4\relax \setbox \@tempboxa \hbox{\@circlefnt \char \@tempcnta}\@tempdima \wd \@tempboxa} \def\@put#1#2#3{\raise #2\hbox to\z@{\hskip #1#3\hss}} \def\oval(#1,#2){\@ifnextchar[{\@oval(#1,#2)}{\@oval(#1,#2)[]}} \def\@oval(#1,#2)[#3]{\begingroup\boxmaxdepth \maxdimen \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue \@tfor\@tempa :=#3\do{\csname @ov\@tempa false\endcsname}\@ovxx #1\unitlength \@ovyy #2\unitlength \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi \advance \@tempdimb -2\p@ \@getcirc \@tempdimb \@ovro \ht\@tempboxa \@ovri \dp\@tempboxa \@ovdx\@ovxx \advance\@ovdx -\@tempdima \divide\@ovdx \tw@ \@ovdy\@ovyy \advance\@ovdy -\@tempdima \divide\@ovdy \tw@ \@circlefnt \setbox\@tempboxa \hbox{\if@ovr \@ovvert32\kern -\@tempdima \fi \if@ovl \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx \fi \if@ovt \@ovhorz \kern -\@ovxx \fi \if@ovb \raise \@ovyy \@ovhorz \fi}\advance\@ovdx\@ovro \advance\@ovdy\@ovro \ht\@tempboxa\z@ \dp\@tempboxa\z@ \@put{-\@ovdx}{-\@ovdy}{\box\@tempboxa}% \endgroup} \def\@ovvert#1#2{\vbox to\@ovyy{% \if@ovb \@tempcntb \@tempcnta \advance \@tempcntb #1\relax \kern -\@ovro \hbox{\char \@tempcntb}\nointerlineskip \else \kern \@ovri \kern \@ovdy \fi \leaders\vrule \@width \@wholewidth\vfil \nointerlineskip \if@ovt \@tempcntb \@tempcnta \advance \@tempcntb #2\relax \hbox{\char \@tempcntb}% \else \kern \@ovdy \kern \@ovro \fi}} \def\@ovhorz{\hbox to \@ovxx{\kern \@ovro \if@ovr \else \kern \@ovdx \fi \leaders \hrule \@height \@wholewidth \hfil \if@ovl \else \kern \@ovdx \fi \kern \@ovri}} \def\circle{\@ltxnomath\circle\@ifstar{\@dot}{\@circle}} \def\@circle#1{\begingroup \boxmaxdepth \maxdimen \@tempdimb #1\unitlength \ifdim \@tempdimb >15.5\p@ \@getcirc\@tempdimb \@ovro\ht\@tempboxa \setbox\@tempboxa\hbox{\@circlefnt \advance\@tempcnta\tw@ \char \@tempcnta \advance\@tempcnta\m@ne \char \@tempcnta \kern -2\@tempdima \advance\@tempcnta\tw@ \raise \@tempdima \hbox{\char\@tempcnta}\raise \@tempdima \box\@tempboxa}\ht\@tempboxa\z@ \dp\@tempboxa\z@ \@put{-\@ovro}{-\@ovro}{\box\@tempboxa}% \else \@circ\@tempdimb{96}\fi\endgroup} \def\@dot#1{\@tempdimb #1\unitlength \@circ\@tempdimb{112}} \def\@circ#1#2{\@tempdima #1\relax \advance\@tempdima .5\p@ \@tempcnta\@tempdima \@tempdima \p@ \divide\@tempcnta\@tempdima \ifnum\@tempcnta >15\relax \@tempcnta 15\relax \fi \ifnum \@tempcnta >\z@ \advance\@tempcnta\m@ne\fi \advance\@tempcnta #2\relax \@circlefnt \char\@tempcnta} \thinlines \newcount\@xarg \newcount\@yarg \newcount\@yyarg \newcount\@multicnt \newdimen\@xdim \newdimen\@ydim \newbox\@linechar \newdimen\@linelen \newdimen\@clnwd \newdimen\@clnht \newdimen\@dashdim \newbox\@dashbox \newcount\@dashcnt \message{theorem,} \def\newtheorem#1{\@ifnextchar[{\@othm{#1}}{\@nthm{#1}}} \def\@nthm#1#2{% \@ifnextchar[{\@xnthm{#1}{#2}}{\@ynthm{#1}{#2}}} \def\@xnthm#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname {\@definecounter{#1}\@newctr{#1}[#3]% \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand \csname the#3\endcsname \@thmcountersep \@thmcounter{#1}}% \global\@namedef{#1}{\@thm{#1}{#2}}\global\@namedef{end#1}{\@endtheorem}}} \def\@ynthm#1#2{\expandafter\@ifdefinable\csname #1\endcsname {\@definecounter{#1}% \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}% \global\@namedef{#1}{\@thm{#1}{#2}}\global\@namedef{end#1}{\@endtheorem}}} \def\@othm#1[#2]#3{% \@ifundefined{c@#2}{\@latexerr{No counter `#2' defined}\@eha}% {\expandafter\@ifdefinable\csname #1\endcsname {\global\@namedef{the#1}{\@nameuse{the#2}}% \global\@namedef{#1}{\@thm{#2}{#3}}% \global\@namedef{end#1}{\@endtheorem}}}} \def\@thm#1#2{\refstepcounter {#1}\@ifnextchar[{\@ythm{#1}{#2}}{\@xthm{#1}{#2}}} \def\@xthm#1#2{\@begintheorem{#2}{\csname the#1\endcsname}\ignorespaces} \def\@ythm#1#2[#3]{\@opargbegintheorem{#2}{\csname the#1\endcsname}{#3}\ignorespaces} \def\@thmcounter#1{\noexpand\arabic{#1}} \def\@thmcountersep{.} \def\@begintheorem#1#2{\trivlist \item[\hskip \labelsep{\bfseries #1\ #2}]\itshape} \def\@opargbegintheorem#1#2#3{\trivlist \item[\hskip \labelsep{\bfseries #1\ #2\ (#3)}]\itshape} \def\@endtheorem{\endtrivlist} \message{lengths,} \def\newlength#1{\@ifdefinable#1{\newskip#1}} \def\setlength#1#2{#1#2\relax} \def\addtolength#1#2{\advance#1 #2\relax} %% \relax added 24 Mar 86 \def\@settodim#1#2#3{\setbox\@tempboxa\hbox{#3}#2#1\@tempboxa \setbox\@tempboxa\box\voidb@x} \def\settoheight{\@settodim\ht} \def\settodepth {\@settodim\dp} \def\settowidth {\@settodim\wd} \def\@settopoint#1{\divide#1\p@\multiply#1\p@} \message{title,} \def\title#1{\gdef\@title{#1}} \def\@title{\@latexerr{No \noexpand\title given}\@ehc} \def\author#1{\gdef\@author{#1}} \def\@author{\@@warning{No \noexpand\author given}} \def\date#1{\gdef\@date{#1}} \gdef\@date{\today} \def\thanks#1{\footnotemark\begingroup \def\protect{\noexpand\protect\noexpand}\xdef\@thanks{\@thanks \protect\footnotetext[\the\c@footnote]{#1}}\endgroup} \def\@thanks{} \def\and{%% % \begin{tabular} \end{tabular}\hskip 1em \@plus.17fil\begin{tabular}[t]{c}%% \end{tabular} } \message{sectioning,} \newcount\@secpenalty \@secpenalty = -300 \newif\if@noskipsec \@noskipsectrue \def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi \par \@tempskipa #4\relax \@afterindenttrue \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi \if@nobreak \everypar{}\else \addpenalty{\@secpenalty}\addvspace{\@tempskipa}\fi \@ifstar {\@ssect{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} \def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth \let\@svsec\@empty\else \refstepcounter{#1}% \let\@@protect\protect \def\protect{\noexpand\protect\noexpand}% \edef\@svsec{\@seccntformat{#1}}% \let\protect\@@protect\fi \@tempskipa #5\relax \ifdim \@tempskipa>\z@ \begingroup #6\relax \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}% \endgroup \csname #1mark\endcsname{#7}\addcontentsline {toc}{#1}{\ifnum #2>\c@secnumdepth \else \protect\numberline{\csname the#1\endcsname}\fi #7}\else \def\@svsechd{#6\hskip #3\relax %% \relax added 2 May 90 \@svsec #8\csname #1mark\endcsname {#7}\addcontentsline {toc}{#1}{\ifnum #2>\c@secnumdepth \else \protect\numberline{\csname the#1\endcsname}\fi #7}}\fi \@xsect{#5}} \def\@seccntformat#1{\csname the#1\endcsname\hskip 1em} \def\@xsect#1{\@tempskipa #1\relax \ifdim \@tempskipa>\z@ \par \nobreak \vskip \@tempskipa \@afterheading \else \global\@nobreakfalse \global\@noskipsectrue \everypar{\if@noskipsec \global\@noskipsecfalse \clubpenalty\@M \hskip -\parindent \begingroup \@svsechd \endgroup \unskip \@tempskipa #1\relax \hskip -\@tempskipa \else \clubpenalty \@clubpenalty \everypar{}\fi}\fi\ignorespaces} \def\@ssect#1#2#3#4#5{\@tempskipa #3\relax \ifdim \@tempskipa>\z@ \begingroup #4\@hangfrom{\hskip #1}{\interlinepenalty \@M #5\par}\endgroup \else \def\@svsechd{#4\hskip #1\relax #5}\fi \@xsect{#3}} \newif\if@afterindent \@afterindenttrue \def\@afterheading{\global\@nobreaktrue \everypar{\if@nobreak \global\@nobreakfalse \clubpenalty \@M \if@afterindent \else {\setbox\z@\lastbox}\fi \else \clubpenalty \@clubpenalty \everypar{}\fi}} \def\@hangfrom#1{\setbox\@tempboxa\hbox{#1}% \hangindent \wd\@tempboxa\noindent\box\@tempboxa} \newcount\c@secnumdepth \newcount\c@tocdepth \def\secdef#1#2{\@ifstar{#2}{\@dblarg{#1}}} \def\sectionmark#1{} \def\subsectionmark#1{} \def\subsubsectionmark#1{} \def\paragraphmark#1{} \def\subparagraphmark#1{} \message{contents,} \def\@starttoc#1{\begingroup \makeatletter \@input{\jobname.#1}\if@filesw \expandafter\newwrite\csname tf@#1\endcsname \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax \fi \global\@nobreakfalse \endgroup} \def\addcontentsline#1#2#3{\if@filesw \begingroup \let\label\@gobble \let\index\@gobble \let\glossary\@gobble \def\protect##1{\string\string\string##1\string\space \space}\@temptokena{\thepage}% \edef\@tempa{\write \@auxout{\string\@writefile{#1}{\protect \contentsline{#2}{#3}{\the\@temptokena}}}}\@tempa \if@nobreak \ifvmode\nobreak\fi\fi\endgroup\fi} \long\def\addtocontents#1#2{\if@filesw \begingroup \let\label\@gobble \let\index\@gobble \let\glossary\@gobble \def\protect##1{\string\string\string##1\string\space\space}% \edef\@tempa{\write \@auxout {\string\@writefile{#1}{#2}}}\@tempa \if@nobreak \ifvmode\nobreak\fi\fi\endgroup\fi} \def\contentsline#1{\csname l@#1\endcsname} \def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else \vskip \z@ \@plus.2\p@ {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent #2\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima #3\relax \advance\leftskip \@tempdima \hbox{}\hskip -\leftskip #4\nobreak\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep mu$}\hfill \nobreak \hbox to\@pnumwidth{\hfil\reset@font\rmfamily #5}\par}\fi} \def\numberline#1{\hbox to\@tempdima{#1\hfil}} \message{index,} \def\makeindex{\if@filesw \newwrite\@indexfile \immediate\openout\@indexfile=\jobname.idx \def\index{\@bsphack\begingroup \def\protect####1{\string####1\space}\@sanitize \@wrindex}\typeout {Writing index file \jobname.idx }\fi} \def\@wrindex#1{\let\thepage\relax \edef\@tempa{\write\@indexfile{\string \indexentry{#1}{\thepage}}}\expandafter\endgroup\@tempa \if@nobreak \ifvmode\nobreak\fi\fi\@esphack} \def\index{\@bsphack\begingroup \@sanitize\@index} \def\@index#1{\endgroup\@esphack} \def\makeglossary{\if@filesw \newwrite\@glossaryfile \immediate\openout\@glossaryfile=\jobname.glo \def\glossary{\@bsphack\begingroup \def\protect####1{\string####1\space}\@sanitize \@wrglossary}\typeout {Writing glossary file \jobname.glo }\fi} \def\@wrglossary#1{\let\thepage\relax \edef\@tempa{\write\@glossaryfile{\string \glossaryentry{#1}{\thepage}}}\expandafter\endgroup\@tempa \if@nobreak \ifvmode\nobreak\fi\fi\@esphack} \def\glossary{\@bsphack\begingroup\@sanitize\@index} \message{bibliography,} \def\bibitem{\@ifnextchar[{\@lbibitem}{\@bibitem}} \def\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\if@filesw {\def\protect##1{\string ##1\space}\immediate \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} \def\@bibitem#1{\item\if@filesw \immediate\write\@auxout {\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces} \def\bibcite#1#2{\global\@namedef{b@#1}{#2}} \let\citation\@gobble \def\cite{\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} \def\@citex[#1]#2{% \let\@citea\@empty \@cite{\@for\@citeb:=#2\do {\@citea\def\@citea{,\penalty\@m\ }% \edef\@citeb{\expandafter\@iden\@citeb}% \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi \@ifundefined{b@\@citeb}{{\reset@font\bfseries ?}\@warning {Citation `\@citeb' on page \thepage \space undefined}}% {\hbox{\csname b@\@citeb\endcsname}}}}{#1}} \let\bibdata=\@gobble \let\bibstyle=\@gobble \def\bibliography#1{\if@filesw \immediate\write\@auxout{\string\bibdata{#1}}\fi \@input{\jobname.bbl}} \def\bibliographystyle#1{\if@filesw\immediate\write\@auxout {\string\bibstyle{#1}}\fi} \def\nocite#1{\@bsphack \@for\@citeb:=#1\do{% \edef\@citeb{\expandafter\@iden\@citeb}% \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi}% \@esphack} \def\@cite#1#2{[{#1\if@tempswa , #2\fi}]} \def\@biblabel#1{[#1]} \message{floats,} \newcount\@floatpenalty \def\caption{\refstepcounter\@captype \@dblarg{\@caption\@captype}} \long\def\@caption#1[#2]#3{\par\addcontentsline{\csname ext@#1\endcsname}{#1}{\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}\begingroup \@parboxrestore \normalsize \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par \endgroup} \def\@float#1{\@ifnextchar[{\@xfloat{#1}}{\edef\@tempa{\noexpand\@xfloat {#1}[\csname fps@#1\endcsname]}\@tempa}} \def\@xfloat#1[#2]{% \def \@captype {#1}% \def \@fps {#2}% \def \@tempb {!}% \ifx \@tempb \@fps \@fpsadddefault \else \ifx \@fps \@empty \@fpsadddefault \fi \fi \ifhmode \@bsphack \@floatpenalty -\@Mii \else \@floatpenalty-\@Miii \fi \ifinner \@parmoderr\@floatpenalty\z@ \else \@next\@currbox\@freelist {\@tempcnta \sixt@@n \expandafter \@tfor \expandafter \@tempa \expandafter :\expandafter =\@fps\do {\if \@tempa h% \ifodd \@tempcnta \else \advance \@tempcnta \@ne \fi \fi \if \@tempa t% \@setfpsbit \tw@ \fi \if \@tempa b% \@setfpsbit 4 \fi \if \@tempa p% \@setfpsbit 8 \fi \if \@tempa !% \ifnum \@tempcnta>15 \advance\@tempcnta -\sixt@@n\relax \fi \fi }% \@tempcntb \csname ftype@\@captype \endcsname \multiply \@tempcntb \@xxxii \advance \@tempcnta \@tempcntb \global \count\@currbox \@tempcnta }% \@fltovf \fi \global\setbox\@currbox\vbox\bgroup \hsize\columnwidth \@parboxrestore } \def\end@float{\par\vskip\z@skip\egroup %% \par\vskip\z@ added 15 Dec 87 \ifnum\@floatpenalty <\z@ \@cons\@currlist\@currbox \ifdim \ht\@currbox >\textheight \@warning{Float larger than \string\textheight}% \ht\@currbox\textheight \fi \ifnum\@floatpenalty <-\@Mii \penalty -\@Miv \@tempdima\prevdepth %% saving and restoring \prevdepth added \vbox{}% %% 26 May 87 to prevent extra vertical \prevdepth \@tempdima %% space when used in vertical mode \penalty\@floatpenalty \else \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack \fi\fi} \def\@dblfloat{\if@twocolumn\let\@tempa\@dbflt\else\let\@tempa\@float\fi \@tempa} \def\@dbflt#1{\@ifnextchar[{\@xdblfloat{#1}}{\@xdblfloat{#1}[tp]}} \def\@xdblfloat#1[#2]{\@xfloat{#1}[#2]\hsize\textwidth\linewidth\textwidth} \def\end@dblfloat{\if@twocolumn \par\vskip\z@skip\egroup %% \par\vskip\z@ added 15 Dec 87\egroup \ifnum\@floatpenalty <\z@ \ifdim\ht\@currbox >\textheight \@warning{Float larger than \string\textheight}% \ht\@currbox\textheight \fi \@cons\@dbldeferlist\@currbox\fi \ifnum \@floatpenalty =-\@Mii \@Esphack\fi\else\end@float\fi} \def\@floatplacement{\global\@topnum\c@topnumber % Textpage bit, global: \global\@toproom \topfraction\@colht \global\@botnum \c@bottomnumber \global\@botroom \bottomfraction\@colht \global\@colnum \c@totalnumber % Floatpage bit, local: \@fpmin \floatpagefraction\@colht} \def \@dblfloatplacement {% \global \@dbltopnum \c@dbltopnumber \global \@dbltoproom \dbltopfraction\@colht \@textmin \@colht \advance \@textmin -\@dbltoproom \@fpmin \dblfloatpagefraction\textheight \@fptop \@dblfptop \@fpsep \@dblfpsep \@fpbot \@dblfpbot } \def\marginpar{\ifhmode \@bsphack\@floatpenalty -\@Mii\else \@floatpenalty-\@Miii\fi\ifinner \@parmoderr\@floatpenalty\z@ \else\@next\@currbox\@freelist{}{}\@next\@marbox\@freelist{\global \count\@marbox\m@ne}{\@floatpenalty\z@ \@fltovf\def\@currbox{\@tempboxa }\def\@marbox{\@tempboxa}}\fi \@ifnextchar [{\@xmpar}{\@ympar}} \long\def\@xmpar[#1]#2{\@savemarbox\@marbox{#1}\@savemarbox\@currbox {#2}\@xympar} \long\def\@ympar#1{\@savemarbox\@marbox{#1}\global\setbox\@currbox \copy\@marbox\@xympar} \long\def\@savemarbox#1#2{\global\setbox#1\vtop{\hsize\marginparwidth \@parboxrestore #2}} \def\@xympar{\ifnum\@floatpenalty <\z@\@cons\@currlist\@marbox\fi \setbox\@tempboxa\vbox %% added 3 Jan 88 \bgroup\end@float\global\@ignorefalse\@esphack} \def\reversemarginpar{\global\@mparbottom\z@ \@reversemargintrue} \def\normalmarginpar{\global\@mparbottom\z@ \@reversemarginfalse} \message{footnotes,} \@definecounter{footnote} \def\thefootnote{\arabic{footnote}} \@definecounter{mpfootnote} \def\thempfootnote{\alph{mpfootnote}} \def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}} \newdimen\footnotesep \def\footnote{\@ifnextchar[{\@xfootnote}{\stepcounter{\@mpfn}% \begingroup%\let\protect\noexpand \def\protect{\noexpand\protect\noexpand}% \xdef\@thefnmark{\thempfn}\endgroup \@footnotemark\@footnotetext}} \def\@xfootnote[#1]{\begingroup \csname c@\@mpfn\endcsname #1\relax \def\protect{\noexpand\protect\noexpand}% \xdef\@thefnmark{\thempfn}\endgroup \@footnotemark\@footnotetext} \long\def\@footnotetext#1{\insert\footins{\reset@font\footnotesize \interlinepenalty\interfootnotelinepenalty \splittopskip\footnotesep \splitmaxdepth \dp\strutbox \floatingpenalty \@MM \hsize\columnwidth \@parboxrestore \let\@tempa\protect \def\protect{\noexpand\protect\noexpand}% \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}% \let\protect\@tempa \@makefntext{\rule{\z@}{\footnotesep}\ignorespaces #1\strut}}} \def\footnotemark{\@ifnextchar[{\@xfootnotemark}{\stepcounter{footnote}% \begingroup\def\protect{\noexpand\protect\noexpand}% \xdef\@thefnmark{\thefootnote}\endgroup \@footnotemark}} \def\@xfootnotemark[#1]{\begingroup \c@footnote #1\relax \def\protect{\noexpand\protect\noexpand}% \xdef\@thefnmark{\thefootnote}\endgroup \@footnotemark} \def\@footnotemark{\leavevmode\ifhmode \edef\@x@sf{\the\spacefactor}\fi \@makefnmark \ifhmode\spacefactor\@x@sf\fi\relax} \def\footnotetext{\@ifnextchar [{\@xfootnotenext}% {\begingroup\def\protect{\noexpand\protect\noexpand}% \xdef\@thefnmark{\thempfn}\endgroup \@footnotetext}} \def\@xfootnotenext[#1]{\begingroup \csname c@\@mpfn\endcsname #1\relax \def\protect{\noexpand\protect\noexpand}% \xdef\@thefnmark{\thempfn}\endgroup \@footnotetext} \def\@mpfn{footnote} \def\thempfn{\thefootnote} \message{initial,} \def\documentstyle{\@ifnextchar[{\@documentstyle}{\@documentstyle[]}} \def\@documentstyle[#1]#2{\makeatletter \def\@optionlist{#1}\gdef\@optionfiles{}\input #2.sty\relax \let\@elt\input \@optionfiles \let\@elt\relax \makeatother} \def\@options{\let\@elt\relax \@for\@tempa:=\@optionlist\do {\@ifundefined{ds@\@tempa}{\xdef\@optionfiles{\@optionfiles \@elt \@tempa.sty\relax}}{\csname ds@\@tempa\endcsname}}} \def\pagestyle#1{\@nameuse{ps@#1}} \def\thispagestyle#1{\global\@specialpagetrue\gdef\@specialstyle{#1}} \def\ps@empty{\let\@mkboth\@gobbletwo\let\@oddhead\@empty\let\@oddfoot\@empty \let\@evenhead\@empty\let\@evenfoot\@empty} \def\ps@plain{\let\@mkboth\@gobbletwo \let\@oddhead\@empty\def\@oddfoot{\reset@font\rmfamily\hfil\thepage \hfil}\let\@evenhead\@empty\let\@evenfoot\@oddfoot} \def\@leftmark#1#2{#1} \def\@rightmark#1#2{#2} \def\markboth#1#2{\gdef\@themark{{#1}{#2}}{\let\protect\noexpand \let\label\relax \let\index\relax \let\glossary\relax \mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi} \def\markright#1{{\let\protect\noexpand \let\label\relax \let\index\relax \let\glossary\relax \expandafter\@markright\@themark {#1}\mark{\@themark}}\if@nobreak\ifvmode\nobreak\fi\fi} \def\@markright#1#2#3{\gdef\@themark{{#1}{#3}}} \def\leftmark{\expandafter\@leftmark\botmark{}{}} \def\rightmark{\expandafter\@rightmark\firstmark{}{}} \def\@themark{{}{}} \def\raggedbottom{\def\@textbottom{\vskip \z@ \@plus.0001fil}\let\@texttop\relax} \def\flushbottom{\let\@textbottom\relax \let\@texttop\relax} \def\sloppy{\tolerance 9999 \emergencystretch 3em \hfuzz .5\p@ \vfuzz .5\p@} \def\sloppypar{\par\sloppy} \def\endsloppypar{\par} \def\fussy{\tolerance 200 \hfuzz .1\p@ \vfuzz .1\p@} \overfullrule 0pt \input ltoutput.ltx \message{debugging,} \def\showoverfull{\tracingonline=1} \tracingstats1 % SHOWS HOW MUCH STUFF TeX HAS USED \def\showoutput{\tracingonline1\tracingoutput1 \showboxbreadth99999\showboxdepth99999\errorstopmode} \def\makeatletter{\catcode`\@=11\relax} \def\makeatother{\catcode`\@=12\relax} \newcount\@lowpenalty \newcount\@medpenalty \newcount\@highpenalty \unitlength = 1pt \fboxsep = 3pt \fboxrule = .4pt \@maxdepth = \maxdepth \vsize = 1000pt \@colroom = \vsize \@colht = \vsize \catcode`\^^@=\active \let^^@=\@invalidchar \catcode`\^^A=\active \let^^A=\@invalidchar \catcode`\^^B=\active \let^^B=\@invalidchar \catcode`\^^C=\active \let^^C=\@invalidchar \catcode`\^^D=\active \let^^D=\@invalidchar \catcode`\^^E=\active \let^^E=\@invalidchar \catcode`\^^F=\active \let^^F=\@invalidchar \catcode`\^^G=\active \let^^G=\@invalidchar \catcode`\^^H=\active \let^^H=\@invalidchar \catcode`\^^K=\active \let^^K=\@invalidchar \catcode`\^^N=\active \let^^N=\@invalidchar \catcode`\^^O=\active \let^^O=\@invalidchar \catcode`\^^P=\active \let^^P=\@invalidchar \catcode`\^^Q=\active \let^^Q=\@invalidchar \catcode`\^^R=\active \let^^R=\@invalidchar \catcode`\^^S=\active \let^^S=\@invalidchar \catcode`\^^T=\active \let^^T=\@invalidchar \catcode`\^^U=\active \let^^U=\@invalidchar \catcode`\^^V=\active \let^^V=\@invalidchar \catcode`\^^W=\active \let^^W=\@invalidchar \catcode`\^^X=\active \let^^X=\@invalidchar \catcode`\^^Y=\active \let^^Y=\@invalidchar \catcode`\^^Z=\active \let^^Z=\@invalidchar \catcode`\^^[=\active \let^^[=\@invalidchar \catcode`\^^\=\active \let^^\=\@invalidchar \catcode`\^^]=\active \let^^]=\@invalidchar \catcode`\^^^=\active \let^^^=\@invalidchar \catcode`\^^_=\active \let^^_=\@invalidchar \catcode`\^^?=\active \let^^?=\@invalidchar \iffalse \fi \def\fileversion{v0.2r} \def\filedate{1993/12/19} \makeatletter \newif\if@compatibility \let\@compatibility\relax \let\@declaredoptions\@empty \let\@classoptionslist\relax \let\@unusedoptionlist\@empty \let\CurrentOption\@empty \let\@currname\@empty \global\let\@currext=\@empty \def\@clsextension{cls} \def\@pkgextension{sty} \def\@pushfilename{% \xdef\@currnamestack{% {\@currname}% {\@currext}% {\the\catcode`\@}% \@currnamestack}} \@onlypreamble\@pushfilename \def\@popfilename{\expandafter\@p@pfilename\@currnamestack\@nil} \@onlypreamble\@popfilename \def\@p@pfilename#1#2#3#4\@nil{% \gdef\@currname{#1}% \gdef\@currext{#2}% \catcode`\@#3\relax \gdef\@currnamestack{#4}} \gdef\@currnamestack{} \def\@ptionlist#1{% \@ifundefined{opt@#1}\@empty{\csname opt@#1\endcsname}} \def\@ifpackageloaded{\@ifl@aded\@pkgetension} \def\@ifclassloaded{\@ifl@aded\@clsextension} \def\@ifl@aded#1#2{% \expandafter\ifx\csname ver@#2.#1\endcsname\relax \expandafter\@secondoftwo \else \expandafter\@firstoftwo \fi} \def\@ifpackagelater{\@ifl@ter\@pkgextension} \def\@ifclasslater{\@ifl@ter\@clsextension} \def\@ifl@ter#1#2{% \expandafter\@ifl@t@r \csname ver@#2.#1\endcsname} \def\@ifl@t@r#1#2{% \ifnum\expandafter\@parse@version#1//00\@nil<% \expandafter\@parse@version#2//00\@nil \expandafter\@secondoftwo \else \expandafter\@firstoftwo \fi} \def\@parse@version#1/#2/#3#4#5\@nil{#1#2#3#4 } \def\@ifpackagewith{\@if@ptions\@pkgextension} \def\@ifclasswith{\@if@ptions\@clsextension} \def\@if@ptions#1#2{% \@expandtwoargs\@if@pti@ns{\@ptionlist{#2.#1}}} \def\@if@pti@ns#1#2{% \let\@tempa\@firstoftwo \@for\@tempb:=#2\do{% \expandafter\in@\expandafter{\@tempb}{#1}% \ifin@\else\let\@tempa\@secondoftwo\fi}% \@tempa} \def\ProvidesPackage#1{% \edef\@tempa{#1}% \ifx\@tempa\@currname\else \@@warning{You have requested \@cls@pkg\space`\@currname',^^J% \@spaces but the \@cls@pkg\space provides `#1'}% \fi \@ifnextchar[{\@pr@videpackage}{}}%] \@onlypreamble\ProvidesPackage \def\@pr@videpackage[#1]{% \expandafter\xdef\csname ver@\@currname.\@currext\endcsname{#1}} \let\ProvidesClass\ProvidesPackage \@onlypreamble\ProvidesClass \def\ProvidesFile#1{% \@ifnextchar[{\@providesfile{#1}}{\@providesfile{#1}[]}} \def\@providesfile#1[#2]{% \expandafter\xdef\csname ver@#1\endcsname{#2}} \def\@pass@ptions#1#2#3{% \expandafter\xdef\csname opt@#3.#1\endcsname{% \@ifundefined{opt@#3.#1}\@empty {\csname opt@#3.#1\endcsname,}% \zap@space#2 \@empty}} \def\PassOptionsToPackage{\@pass@ptions\@pkgextension} \def\PassOptionsToClass{\@pass@ptions\@clsextension} \@onlypreamble\PassOptionsToPackage \@onlypreamble\PassOptionsToClass \def\DeclareOption{% \let\@fileswith@pti@ns\@badrequireerror \@ifstar{\@defdefault@ds}\@declareoption} \def\@declareoption#1#2{% \xdef\@declaredoptions{\@declaredoptions,#1}% \@namedef{ds@#1}{#2}} \def\@defdefault@ds#1{\def\default@ds{#1}} \@onlypreamble\DeclareOption \def\OptionNotUsed{% \ifx\@currext\@clsextension \xdef\@unusedoptionlist{% \ifx\@unusedoptionlist\@empty\else\@unusedoptionlist,\fi \CurrentOption}% \fi} \@onlypreamble\OptionNotUsed \def\ProcessOptions{% \let\ds@\@empty \edef\@curroptions{\@ptionlist{\@currname.\@currext}}% \@ifstar\@xprocess@ptions\@process@ptions} \@onlypreamble\@process@ptions \@onlypreamble\@xprocess@ptions \@onlypreamble\@process@pti@ns \def\@process@ptions{% \@for\CurrentOption:=\@declaredoptions\do{% \ifx\CurrentOption\@empty\else \@expandtwoargs\in@\CurrentOption{% \ifx\@currext\@clsextension\else\@classoptionslist,\fi \@curroptions}% \ifin@ \@use@ption \expandafter\let\csname ds@\CurrentOption\endcsname\@empty \fi \fi}% \@process@pti@ns} \def\@xprocess@ptions{% \ifx\@currext\@clsextension\else \@for\CurrentOption:=\@classoptionslist\do{% \ifx\CurrentOption\@empty\else \@expandtwoargs\in@\CurrentOption\@declaredoptions \ifin@ \@use@ption \expandafter\let\csname ds@\CurrentOption\endcsname\@empty \fi \fi}% \fi \@process@pti@ns} \def\@process@pti@ns{% \@for\CurrentOption:=\@curroptions\do{% \@ifundefined{ds@\CurrentOption}% {\@use@ption \default@ds}% \@use@ption}% \@for\CurrentOption:=\@declaredoptions\do{% \expandafter\let\csname ds@\CurrentOption\endcsname\relax}% \let\@fileswith@pti@ns\@@fileswith@pti@ns} \def\@options{\ProcessOptions*} \def\@use@ption{% \csname ds@\CurrentOption\endcsname \@expandtwoargs\@removeelement\CurrentOption \@unusedoptionlist\@unusedoptionlist} \def\ExecuteOptions#1{% \def\@tempa##1\@nil{% \@for\CurrentOption:=#1\do{\csname ds@\CurrentOption\endcsname}% \edef\CurrentOption{##1}}% \expandafter\@tempa\CurrentOption\@nil} \def\documentclass{% \let\documentclass\@twoclasseserror \let\usepackage\RequirePackage \@fileswithoptions\@clsextension} \@onlypreamble\documentclass \def\documentstyle{% \makeatletter\input{latex209.cmp}\makeatother \documentclass} \@onlypreamble\documentstyle \def\RequirePackage{% \@fileswithoptions\@pkgextension} \@onlypreamble\RequirePackage \def\LoadClass{% \ifx\@currext\@pkgextension \@latexerr {\noexpand\LoadClass in package file.}% {You may only use \noexpand\LoadClass in a class file}% \fi \@fileswithoptions\@clsextension} \@onlypreamble\LoadClass \def\usepackage{% \@latexerr {\noexpand \usepackage before \noexpand\documentclass} {\noexpand \usepackage may only appear in the document preamble.}} \@onlypreamble\usepackage \def\NeedsTeXFormat#1{% \def\@tempa{#1}% \ifx\@tempa\fmtname \expandafter\@needsformat \else \@latexerr{This file needs format^^J% \@spaces \@tempa\space but this is \fmtname}\@ehd \expandafter\@@end \fi} \@onlypreamble\NeedsTeXFormat \def\@needsformat{% \@ifnextchar[%] \@needsf@rmat {}} \def\@needsf@rmat[#1]{% \@ifl@t@r\fmtversion{#1}{}% {\@@warning{You have requested version^^J% \@spaces `#1' of \fmtname,^^J% \@spaces but only version `\fmtversion'^^J% \@spaces is available}}} \def\zap@space#1 #2{% #1% \ifx#2\@empty\else\expandafter\zap@space\fi #2} \def\@fileswithoptions#1{% \@ifnextchar[%] {\@fileswith@ptions#1}% {\@fileswith@ptions#1[]}} \@onlypreamble\@fileswithoptions \def\@fileswith@ptions#1[#2]#3{% \@ifnextchar[%] {\@fileswith@pti@ns#1[#2]#3}% {\@fileswith@pti@ns#1[#2]#3[]}} \@onlypreamble\@fileswith@ptions \def\@fileswith@pti@ns#1[#2]#3[#4]{% \ifx#1\@clsextension \@ifundefined{@classoptionslist}% {\xdef\@classoptionslist{\zap@space#2 \@empty}}% {}% \@onefilewithoptions#3[#2][#4]#1% \@compatibility \else \edef\@tempa{\zap@space#3 \@empty}% \@for\@currpkg:=\@tempa\do{% \expandafter\@onefilewithoptions\@currpkg[#2][#4]#1}% \fi} \@onlypreamble\@fileswith@pti@ns \def\@onefilewithoptions#1[#2][#3]#4{% \@pushfilename \xdef\@currname{#1}% \global\let\@currext#4% \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@empty \let\CurrentOption\@empty \@reset@ptions \makeatletter \@ifl@aded\@currext{#1}% {\@if@ptions\@currext{#1}{#2}{} {\@latexerr {Option clash for \@cls@pkg\space #1}% {The package #1 has already been loaded with the options:^^J% [\@ptionlist{#1.\@currext}]^^J% There has now been an attempt to load it with the options^^J% [#2]^^J% Adding the line:^^J% \string\usepackage[\@ptionlist{#1.\@currext},#2]{#1}^^J% to your document may fix this.^^J% Try typing \space \space to proceed.}}}% {\@pass@ptions\@currext{#2}{#1}% \@pr@videpackage[]% \InputIfFileExists {\@currname.\@currext}% {}% {\@missingfileerror\@currname\@currext}}% \@ifl@ter\@currext{#1}{#3}{} {\@warning{You have requested version^^J% \@spaces `#3' of \@cls@pkg\space #1,^^J% \@spaces but only version \csname ver@#1.\@currext\endcsname^^J% \@spaces is available.^^J}}% \csname\@currname.\@currext-h@@k\endcsname \expandafter\let\csname\@currname.\@currext-h@@k\endcsname\@undefined \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi \@popfilename \@reset@ptions} \@onlypreamble\@onefilewithoptions \let\@@fileswith@pti@ns\@fileswith@pti@ns \def\@reset@ptions{% \global\ifx\@currext\@clsextension \let\default@ds\OptionNotUsed \else \let\default@ds\@unknownoptionerror \fi \global\let\ds@\@empty \global\let\@declaredoptions\@empty} \@onlypreamble\@reset@ptions \let\@begindocumenthook\@empty \let\@enddocumenthook\@empty \def\g@addto@macro#1#2{% \expandafter\gdef\expandafter#1\expandafter{#1#2}} \def\AtEndOfPackage{% \expandafter\g@addto@macro\csname\@currname.\@currext-h@@k\endcsname} \let\AtEndOfClass\AtEndOfPackage \def\AtBeginDocument{\g@addto@macro\@begindocumenthook} \def\AtEndDocument{\g@addto@macro\@enddocumenthook} \@onlypreamble\AtBeginDocument \def\@cls@pkg{% \ifx\@currext\@clsextension document class% \else package% \fi} \def\@unknownoptionerror{% \@latexerr {Unknown option `\CurrentOption' for \@cls@pkg\space`\@currname'}% {The option `\CurrentOption' was not declared in \@cls@pkg\space`\@currname'.^^J% Try typing \space \space to proceed.}} \def\@badrequireerror#1[#2]#3[#4]{% \@latexerr {\noexpand\RequirePackage or \noexpand\LoadClass in Options Section}% {\@cls@pkg\space \@currname\space is defective.^^J% It attempts to load #3 in the options section.}} \@onlypreamble\@badrequireerror \def\@twoloadclasserror{% \@latexerr {Two \noexpand\LoadClass commands.}% {You may only use one \noexpand\LoadClass in a class file}} \@onlypreamble\@twoloadclasserror \def\@twoclasseserror#1#{% \@latexerr {Two \noexpand\documentclass or \noexpand\documentstyle commands.}% {The document may only declare one class.}\@gobble} \@onlypreamble\@twoclasseserror \def\@missingfileerror#1#2{% \typeout{File `#1.#2' not found.^^J% New name (default extension: #2) or ?}% \message{Enter file name: }% {\endlinechar\m@ne \global\read\m@ne to\@gtempa}% \ifx\@gtempa\@empty \else \filename@parse\@gtempa \edef\filename@ext{\ifx\filename@ext\relax#2\else\filename@ext\fi}% \edef\@tempa{% \noexpand\InputIfFileExists {\filename@area\filename@base.\filename@ext}% {}% {\noexpand\@missingfileerror {\filename@area\filename@base}{\filename@ext}}}% \@tempa \fi} \def\two@digits#1{\ifnum#1<10 0\fi\number#1} \begingroup% \catcode`\^^M\active% \gdef\filecontents#1{% \openin\@inputcheck#1 % \ifeof\@inputcheck% \typeout{^^JWriting \@currdir#1^^J}% \chardef\verbatim@out15 % \ch@ck7\verbatim@out\write% \else% \typeout{^^JFile `#1' already exists on the system.}% \typeout{^^JNot generating it from this source.^^J}% \def\immediate##1\relax{}% \fi% \immediate\openout\verbatim@out=#1\relax% \immediate\write\verbatim@out{% \@percentchar\@percentchar\space LaTeX2e file `#1'^^J% \@percentchar\@percentchar\space generated by the % `filecontents' environment^^J% \@percentchar\@percentchar\space from source `\jobname' on % \number\year/\two@digits\month/\two@digits\day.^^J% \@percentchar\@percentchar}\relax% \let\do\@makeother\dospecials% \@vwrend% \catcode`\^^M\active% \def^^M##1^^M% {\def\@tempb{##1}% \ifx\@tempb\@tempa\expandafter\end\expandafter{\@currenvir}% \else\immediate\write\verbatim@out{##1}\relax\expandafter^^M\fi}}% \endgroup% \begingroup \catcode`/=0 \catcode`<=\catcode`{ \catcode`>=\catcode`} \catcode`|=\catcode`\% /catcode`/\=12 /catcode`/{=12 /catcode`/}=12 /catcode`/%=12 /gdef/@percentchar<%> /gdef/@vwrend> /gdef/endfilecontents<| /immediate/write/verbatim@out<\endinput>/relax| /immediate/closeout/verbatim@out/relax> /endgroup \@onlypreamble\filecontents \@onlypreamble\endfilecontents \let\@filelist\@gobble \def\listfiles{% \AtEndDocument{% \typeout{^^J^^J***File List***}% \@for\@tempa:=\@filelist\do{% \expandafter\let\expandafter\@tempb\csname ver@\@tempa\endcsname \typeout{\@tempa\ifx\@tempb\relax\else\@spaces\@tempb\fi}} \typeout{***********^^J}}} \def\fileversion{1.0b} \def\filedate{93/12/19} \def\docdate{93/12/13} %% \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 \~} \message{hyphenation} \IfFileExists{lhyphen.cfg} {\typeout{********************************************^^J% *^^J% * Local configuration file lhyphen.cfg used^^J% *^^J% ********************************************}% \@@input lhyphen.cfg } {\@@input lhyphen.ltx } \makeatother \dump %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \endinput %% %% End of file `latex2e.ltx'.