% acmtrans.sty:
% ACMTRANS DOCUMENT STYLE -- released 10 February 1986
%    for LaTeX version 2.09
% Copyright (C) 1985 by Leslie Lamport

\typeout{Document Style `acmtrans'.  Released 10 February 1986.}

\@twosidetrue
\@mparswitchtrue
\overfullrule = 0pt
\def\ds@draft{\overfullrule 5pt}

\@options

\lineskip 1pt
\normallineskip 1pt
\def\baselinestretch{1}

\def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt
\abovedisplayskip 6pt plus2pt minus1pt%
\belowdisplayskip \abovedisplayskip
\abovedisplayshortskip  6pt plus0pt minus 3pt
\belowdisplayshortskip  6pt plus0pt minus3pt}

\def\small{\@setsize\small{11pt}\ixpt\@ixpt
\abovedisplayskip 5pt plus 2pt minus 1pt%
\belowdisplayskip \abovedisplayskip
\abovedisplayshortskip 5pt plus0pt minus2pt%
\belowdisplayshortskip 5pt plus0pt minus 2pt
\def\@listi{\topsep 5pt plus 2pt minus 1pt\parsep 0pt plus 1pt 
\itemsep \parsep}}

\def\footnotesize{\@setsize\footnotesize{10pt}\viiipt\@viiipt
\abovedisplayskip 4pt plus 1pt minus 0pt%
\belowdisplayskip \abovedisplayskip
\abovedisplayshortskip 4pt plus 0pt minus 1pt%
\belowdisplayshortskip 4pt plus 0pt minus 1pt%
\def\@listi{\topsep 4pt plus 1pt minus 0pt\parsep 0pt plus 1pt 
\itemsep \parsep}}

\def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
\def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
\def\large{\@setsize\large{14pt}\xiipt\@xiipt}
\def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
\def\LARGE{\@setsize\LARGE{20pt}\xviipt\@xviipt}
\def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
\def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}

\normalsize

\oddsidemargin  .75in
\evensidemargin .75in
\marginparwidth .5in
\marginparsep .125in
\topmargin .25in
\headheight 12pt
\headsep 16pt
% \topskip = 10pt
\footheight 10pt
\footskip 15pt
\textheight 562pt
\textwidth 30pc
\columnsep 10pt
\columnseprule 0pt
\footnotesep 7pt
\skip\footins 15pt plus 4pt minus 3pt
\floatsep 12pt plus 2pt minus 2pt
\textfloatsep \floatsep
\intextsep 1pc plus 1pc
\@maxsep 1pc
\dblfloatsep 12pt plus 2pt minus 2pt
\dbltextfloatsep 20pt plus 2pt minus 4pt
\@dblmaxsep 20pt
\@fptop 0pt plus 1fil
\@fpsep 1pc plus 2fil
\@fpbot 0pt plus 1fil
\@dblfptop 0pt plus 1fil
\@dblfpsep 8pt plus 2fil
\@dblfpbot 0pt plus 1fil
\marginparpush 6pt
\parskip 0pt plus .1pt
\parindent 10pt
\topsep 6pt plus 2pt minus 2pt
\partopsep 0pt
\itemsep 0pt plus 1pt
\@lowpenalty   51
\@medpenalty  151
\@highpenalty 301
\@beginparpenalty -\@lowpenalty
\@endparpenalty   -\@lowpenalty
\@itempenalty     -\@lowpenalty
\def\part{\@ucheadtrue
  \@startsection{part}{9}{\z@}{-10pt plus -4pt minus 
    -2pt}{4pt}{\normalsize\sf}}
\def\section{\@ucheadtrue
  \@startsection{section}{1}{\z@}{-10pt plus -4pt minus 
    -2pt}{4pt}{\normalsize\sf}}
\def\subsection{\@ucheadfalse
  \@startsection{subsection}{2}{\z@}{-8pt plus -2pt minus 
   -1pt}{4pt}{\normalsize\sf}}
\def\subsubsection{\@ucheadfalse
  \@startsection{subsubsection}{3}{\parindent}{6pt plus 
1pt}{-5pt}{\normalsize\it}}
\def\paragraph{\@ucheadfalse
  \@startsection{paragraph}{3}{\parindent}{6pt plus 
1pt}{-5pt}{\normalsize\it}}
\def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth
     \def\@svsec{}\else 
     \refstepcounter{#1}\edef\@svsec{\ifnum 
   #2=1\relax \@appsec\fi
\csname the#1\endcsname
     \ifnum #2=1\relax .\fi
     \hskip .5em }\fi
     \@tempskipa #5\relax
      \ifdim \@tempskipa>\z@ 
        \begingroup #6\relax
          \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M 
            \if@uchead\uppercase{#8}\else#8\fi
          \ifnum #2=3\unskip .\fi %% PUTS `.' AFTER SUBSUBSECTION HEAD
       \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\@svsec \if@uchead\uppercase{#8}\else#8\fi
                   \ifnum #2=3\unskip .\fi % PUTS `.' AFTER SUBSUBSECTION HEAD
                   \csname #1mark\endcsname
                      {#7}\addcontentsline
                           {toc}{#1}{\ifnum #2>\c@secnumdepth \else
                             \protect\numberline{\csname the#1\endcsname}\fi
                       #7}}\fi
     \@xsect{#5}}

\def\@ssect#1#2#3#4#5{\@tempskipa #3\relax
   \ifdim \@tempskipa>\z@
     \begingroup #4\@hangfrom{\hskip #1}{\interlinepenalty \@M 
       \if@uchead\uppercase{#5}\else#5\fi\par}\endgroup
   \else \def\@svsechd{#4\hskip #1\relax \if@uchead\uppercase{#5}\else#5\fi
             \unskip .}\fi %% PUTS `.' AFTER SUBSUBSECTION HEAD

    \@xsect{#3}}

\newif\if@uchead\@ucheadfalse
\setcounter{secnumdepth}{3}
\def\@appsec{}
\def\appendix{\par
 \setcounter{section}{0}
 \setcounter{subsection}{0}
 \def\@appsec{APPENDIX }  % puts the `APPENDIX' in appendix sections.
 \def\thesection{\Alph{section}}
 \def\thesubsection {\thesection\arabic{subsection}}}
\labelsep 5pt
\settowidth{\leftmargini}{(9)} % margins set for enumerate
\addtolength\leftmargini\labelsep
\settowidth{\leftmarginii}{(b)} % margins set for enumerate
\addtolength\leftmarginii\labelsep
\leftmarginiii \leftmarginii
\leftmarginiv \leftmarginii  
\leftmarginv \leftmarginii   
\leftmarginvi \leftmarginii     

\leftmargin\leftmargini
\labelwidth\leftmargini\advance\labelwidth-\labelsep
\parsep 0pt plus 1pt 

\def\@listi{\leftmargin\leftmargini}

\def\@listii{\leftmargin\leftmarginii
   \labelwidth\leftmarginii\advance\labelwidth-\labelsep
   \topsep 0pt plus 1pt 
   \parsep 0pt plus .5pt 
   \itemsep \parsep}

\def\@listiii{\leftmargin\leftmarginiii
    \labelwidth\leftmarginiii\advance\labelwidth-\labelsep
   \topsep 0pt plus 1pt 
   \parsep 0pt plus .5pt 
    \itemsep \parsep}

\def\@listiv{\leftmargin\leftmarginiv
     \labelwidth\leftmarginiv\advance\labelwidth-\labelsep}

\def\@listv{\leftmargin\leftmarginv
     \labelwidth\leftmarginv\advance\labelwidth-\labelsep}

\def\@listvi{\leftmargin\leftmarginvi
     \labelwidth\leftmarginvi\advance\labelwidth-\labelsep}

\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{##1\hss}}\fi}

\def\longenum{\ifnum \@enumdepth >3 \@toodeep\else
      \advance\@enumdepth \@ne 
      \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list
      {\csname label\@enumctr\endcsname}{\usecounter
        {\@enumctr}\labelwidth\z@
      \leftmargin\z@ \itemindent\parindent}\fi}
\let\endlongenum\endlist

\def\labelenumi{(\arabic{enumi})}    
\def\theenumi{\arabic{enumi}}     
 
\def\labelenumii{(\alph{enumii})}
\def\theenumii{\alph{enumii}}
\def\p@enumii{\theenumi}

\def\labelenumiii{\roman{enumiii}.}
\def\theenumiii{\roman{enumiii}}
\def\p@enumiii{\theenumi(\theenumii)}

\def\labelenumiv{\Alph{enumiv}.}
\def\theenumiv{\Alph{enumiv}}     
\def\p@enumiv{\p@enumiii\theenumiii}

\def\itemize{\list{--}{\settowidth
     {\leftmargin}{--}\labelwidth\leftmargin
       \addtolength{\leftmargin}{\labelsep}}}
\let\enditemize\endlist

\def\longitem{\list{--}{\labelwidth\z@
   \leftmargin\z@ \itemindent\parindent \advance\itemindent\labelsep}}

\let\endlongitem\endlist
\def\verse{\let\\=\@centercr  
  \list{}{\leftmargin 2pc 
          \itemindent -1.5em\listparindent \itemindent 
          \rightmargin\leftmargin\advance\leftmargin 1.5em}\item[]}
\let\endverse\endlist
\def\quotation{\list{}{\leftmargin 2pc \listparindent .5em
    \itemindent\listparindent
    \rightmargin\leftmargin \parsep 0pt plus 1pt}\item[]}
\let\endquotation=\endlist
\def\quote{\list{}{\leftmargin 2pc \rightmargin\leftmargin}\item[]}
\let\endquote=\endlist
\def\description{\list{}{\labelwidth\z@
   \leftmargin\z@ \itemindent\parindent \advance\itemindent\labelsep
 \def\makelabel##1{\it ##1.}}}
\let\enddescription\endlist
\def\describe#1{\list{}{\settowidth{\labelwidth}{#1}\leftmargin
     \labelwidth\addtolength\leftmargin\labelsep\def\makelabel##1{##1\hfil}}}
\let\enddescribe\endlist
\def\program{\ifx\@currsize\normalsize\small \else \rm \fi\tabbing}
\let\endprogram\endtabbing
\def\@begintheorem#1#2{\it \trivlist \item[\hskip 10pt\hskip 
   \labelsep{\sc #1\hskip 5pt\relax#2.}]}

\def\@opargbegintheorem#1#2#3{\it \trivlist
   \item[\hskip 10pt \hskip \labelsep{\sc #1\savebox\@tempboxa{#3}\ifdim 
  \wd\@tempboxa>\z@ \hskip 5pt\relax \box\@tempboxa\fi.}]}
\def\proof{\@ifnextchar[{\@xproof}{\@proof}}
\def\endproof{\qed\endtrivlist}
\def\@proof{\trivlist \item[\hskip 10pt\hskip 
   \labelsep{\sc Proof.}]\ignorespaces}
\def\@xproof[#1]{\trivlist \item[\hskip 10pt\hskip 
   \labelsep{\sc Proof #1.}]\ignorespaces}
\def\qed{\unskip\kern 10pt{\unitlength1pt\linethickness{.4pt}\framebox(6,6){}}}
\def\newdef#1#2{\expandafter\@ifdefinable\csname #1\endcsname
{\@definecounter{#1}%
\expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}\global
 \@namedef{#1}{\@defthm{#1}{#2}}\global
 \@namedef{end#1}{\@endtheorem}}}
\def\@defthm#1#2{\refstepcounter
    {#1}\@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}}
\def\@xdefthm#1#2{\@begindef{#2}{\csname the#1\endcsname}\ignorespaces}
\def\@ydefthm#1#2[#3]{\trivlist \item[\hskip 10pt\hskip 
   \labelsep{\it #2\savebox\@tempboxa{#3}\ifdim 
  \wd\@tempboxa>\z@ \ \box\@tempboxa\fi.}]\ignorespaces}
\def\@begindef#1#2{\trivlist \item[\hskip 10pt\hskip 
   \labelsep{\it #1\ \rm #2.}]}
\def\theequation{\arabic{equation}}
\def\titlepage{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
     \else \newpage \fi \thispagestyle{empty}\c@page\z@}
\def\endtitlepage{\if@restonecol\twocolumn \else \newpage \fi}
\arraycolsep 5pt
\tabcolsep 6pt
\arrayrulewidth .4pt
\doublerulesep 2pt
\tabbingsep \labelsep
\skip\@mpfootins = \skip\footins

\newcounter{part}
\newcounter {section}
\newcounter {subsection}[section]
\newcounter {subsubsection}[subsection]
\newcounter {paragraph}[subsubsection]
\def\thepart{\Roman{part}}
\def\thesection       {\arabic{section}}
\def\thesubsection    {\thesection.\arabic{subsection}}
\def\thesubsubsection {{\rm \thesubsection .\arabic{subsubsection}}}
\def\theparagraph     {{\rm \thesubsection .\arabic{subsubsection}.\arabic
                              {paragraph}}}
\def\@pnumwidth{1.55em}
\def\@tocrmarg {2.55em}
\def\@dotsep{4.5}
\setcounter{tocdepth}{3}
\def\l@part#1#2{\addpenalty{\@secpenalty}
   \addvspace{2.25em plus 1pt}
   \begingroup
   \@tempdima 3em
     \parindent \z@ \rightskip \@pnumwidth
     \parfillskip -\@pnumwidth   
     {\large \bf
     \leavevmode
     #1\hfil \hbox to\@pnumwidth{\hss #2}}\par
     \nobreak
   \endgroup}

\def\l@section#1#2{\addpenalty{\@secpenalty}
   \addvspace{1.0em plus 1pt}
   \@tempdima 1.5em
   \begingroup
     \parindent \z@ \rightskip \@pnumwidth 
     \parfillskip -\@pnumwidth   
     \bf
     \leavevmode  
     #1\hfil \hbox to\@pnumwidth{\hss #2}\par
   \endgroup}
      
\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
\def\listoffigures{\section*{List of Figures\@mkboth
   {LIST OF FIGURES}{LIST OF FIGURES}}\@starttoc{lof}}
\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
\def\listoftables{\section*{List of Tables\@mkboth
   {LIST OF TABLES}{LIST OF TABLES}}\@starttoc{lot}}
\let\l@table\l@figure
\def\thebibliography#1{\par \footnotesize 
\@ucheadfalse
\@startsection{subsection}{2}{\z@}{16pt plus 2pt minus 
   1pt}{2pt}{\sf}*{REFERENCES}
\list{\arabic{enumi}.}{\settowidth\labelwidth{99.}\leftmargin\labelwidth
    \advance\leftmargin\labelsep \topsep \z@ \parsep 0pt plus .1pt
    \itemsep \parsep
    \usecounter{enumi}}
    \def\newblock{\hskip .11em plus .33em minus -.07em}
    \sloppy
    \widowpenalty=4500
    \clubpenalty=4500
    \sfcode`\.=1000\relax}
\let\endthebibliography=\endlist
\newif\if@restonecol
\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
\columnseprule \z@
\columnsep 35pt\twocolumn[\section*{Index}]
    \@mkboth{INDEX}{INDEX}\thispagestyle{plain}\parindent\z@
    \parskip\z@ plus .3pt\relax\let\item\@idxitem}
\def\@idxitem{\par\hangindent 40pt}
\def\subitem{\par\hangindent 40pt \hspace*{20pt}}
\def\subsubitem{\par\hangindent 40pt \hspace*{30pt}}
\def\endtheindex{\if@restonecol\onecolumn\else\clearpage\fi}
\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax}
\def\footnoterule{\kern-3\p@
  \hrule width 4pc \kern 2.6\p@} % the \hrule is .4pt high X 4 picas wide
\long\def\@makefntext#1{\parindent 1em\noindent 
            $^{\@thefnmark}$#1}
\setcounter{topnumber}{2}
\def\topfraction{.89}
\setcounter{bottomnumber}{1}
\def\bottomfraction{.5}
\setcounter{totalnumber}{3}
\def\textfraction{.11}
\def\floatpagefraction{.6}
\setcounter{dbltopnumber}{2}
\def\dbltopfraction{.7}
\def\dblfloatpagefraction{.5}
\long\def\@makecaption#1#2{\vskip 1pc % 1 pica between figure and caption
   \setbox\@tempboxa\hbox{#1.\hskip 1em\relax #2}
   \ifdim \wd\@tempboxa >\hsize   % IF longer than one line:
       \unhbox\@tempboxa\par      %   THEN set as ordinary paragraph.
     \else                        %   ELSE  center.
       \hbox to\hsize{\hfil\box\@tempboxa\hfil}  
   \fi}
\def\nocaption{\refstepcounter\@captype \par
    \vskip 1pc % 1 pica between figure and caption
    \hbox to\hsize{\hfil \footnotesize Figure \thefigure
                   \hfil}}
\newcounter{figure}
\def\thefigure{\@arabic\c@figure}
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{Fig.\ \thefigure}
\def\figure{\let\normalsize\footnotesize \normalsize \@float{figure}}
\let\endfigure\end@float
\@namedef{figure*}{\@dblfloat{figure}}
\@namedef{endfigure*}{\end@dblfloat}
\newcounter{table}
\def\thetable{\@Roman\c@table}
\def\fps@table{tbp}
\def\ftype@table{2}
\def\ext@table{lot}
\def\fnum@table{Table \thetable}
\def\table{\let\normalsize\footnotesize \normalsize\@float{table}}
\let\endtable\end@float
\@namedef{table*}{\@dblfloat{table}}
\@namedef{endtable*}{\end@dblfloat}
\def\acmtable#1{\@narrowfig #1\relax
  \let\caption\@atcap \let\nocaption\@atnocap
  \def\@tmpnf{}\@ifnextchar[{\@xntab}{\@ntab}}
\def\endacmtable{\hbox to \textwidth{\hfil
\vbox{\hsize \@narrowfig
\box\@nfcapbox
{\baselineskip 4pt \hbox{\vrule height .4pt width \hsize}}
\vskip 4pt
\box\@nfigbox
{\baselineskip 4pt \hbox{\vrule height .4pt width \hsize}}}\hfil}
\end@float}
\def\@xntab[#1]{\def\@tmpnf{[#1]}\@ntab}
\def\@ntab{\expandafter\table\@tmpnf
   \setbox\@nfigbox\vbox\bgroup
   \hsize \@narrowfig \@parboxrestore}
\def\@atmakecap #1#2{\setbox\@tempboxa\hbox{#1.\hskip 1em\relax #2}
   \ifdim \wd\@tempboxa >\hsize   % IF longer than one line:
       \sloppy #1.\hskip 1em\relax #2 \par %   THEN set as ordinary paragraph.
     \else                                 %   ELSE  flush.
       \hbox to\hsize{\hfil\box\@tempboxa\hfil}
   \fi}
\def\@atcap{\par\egroup\refstepcounter\@captype 
     \@dblarg{\@atcapx\@captype}}
\long\def\@atcapx#1[#2]#3{\setbox\@nfcapbox\vbox {\hsize \wd\@nfigbox
    \@parboxrestore
    \@atmakecap{\csname fnum@#1\endcsname}{\ignorespaces #3}\par}}
\def\@atnocap{\egroup \refstepcounter\@captype 
  \setbox\@nfcapbox\vbox {\hsize \wd\@nfigbox
    \hbox to\hsize{\hfil \footnotesize Table \thetable\hfil}}}
\def\narrowfig#1{\@narrowfig #1\relax
  \let\caption\@nfcap \let\nocaption\@nfnocap
  \def\@tmpnf{}\@ifnextchar[{\@xnfig}{\@nfig}}
\def\endnarrowfig{\hbox to \textwidth{\if@nfeven
         \box\@nfcapbox\hfil\box\@nfigbox
  \else  \box\@nfigbox\hfil\box\@nfcapbox\fi}\end@float}
\def\@xnfig[#1]{\def\@tmpnf{[#1]}\@nfig}
\def\@nfig{\expandafter\figure\@tmpnf
   \setbox\@nfigbox\vbox\bgroup
   \hsize \@narrowfig \@parboxrestore}
\def\@nfmakecap #1#2{\setbox\@tempboxa\hbox{#1.\hskip 1em\relax #2}
   \ifdim \wd\@tempboxa >\hsize   % IF longer than one line:
       \sloppy #1.\hskip 1em\relax #2 \par %   THEN set as ordinary paragraph.
     \else                                 %   ELSE  flush.
       \hbox to\hsize{\if@nfeven\else\hfil\fi\box\@tempboxa\if@nfeven\hfil\fi}
   \fi}
\def\@nfcap{\par\egroup\refstepcounter\@captype 
     \@dblarg{\@nfcapx\@captype}}
\long\def\@nfcapx#1[#2]#3{\@seteven
  \setbox\@nfcapbox\vbox to \ht\@nfigbox
    {\hsize \textwidth \advance\hsize -2pc \advance\hsize -\wd\@nfigbox
    \@parboxrestore
    \vfil     
    \@nfmakecap{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
    \vfil}}
\def\@nfnocap{\egroup \refstepcounter\@captype \@seteven
  \setbox\@nfcapbox\vbox to \ht\@nfigbox
    {\hsize \textwidth \advance\hsize -2pc \advance\hsize -\wd\@nfigbox
    \@parboxrestore
    \vfil     
    \hbox to\hsize{\if@nfeven\else\hfil\fi 
                      \footnotesize Figure \thefigure
                    \if@nfeven\hfil\fi}
    \vfil}}
\def\@seteven{\@nfeventrue   
\@ifundefined{r@@nf\thefigure}{}{\edef\@tmpnf{\csname 
    r@@nf\thefigure\endcsname
    }\edef\@tmpnf{\expandafter\@cdr\@tmpnf\@nil}\ifodd\@tmpnf\relax
   \@nfevenfalse\fi}%
\label{@nf\thefigure}%
\edef\@tmpnfx{\if@nfeven e\else o\fi}
\edef\@tmpnf{\write\@unused {\noexpand\ifodd \noexpand\c@page 
          \noexpand\if \@tmpnfx e\noexpand\@nfmsg{\thefigure} \noexpand\fi
      \noexpand\else 
       \noexpand\if \@tmpnfx o\noexpand\@nfmsg{\thefigure}\noexpand\fi 
    \noexpand\fi }}\@tmpnf}
\def\@nfmsg#1{Bad narrowfig: Figure #1 on page \thepage}
\newdimen\@narrowfig
\newbox\@nfigbox
\newbox\@nfcapbox
\newif\if@nfeven
\def\and{\\ and\\}
\def\maketitle{\newpage \thispagestyle{titlepage}\par
 \begingroup \lineskip = \z@\null \vskip -30pt\relax 
   \parindent\z@ \LARGE \flushleft \hyphenpenalty\@M
   \sf \@title \par
   \vskip 12pt\relax \normalsize \sf
     \begingroup \addtolength{\baselineskip}{2pt}
       \@author\par 
      \endgroup
   {\baselineskip 17pt\relax
   \hbox{\vrule height .5pt width 30pc}}
   \vskip 12pt \footnotesize \box\@abstract \vskip 4pt\relax
   {\def\and{\unskip\/{\rm ; }}
    Categories and Subject Descriptors: \@categories}\par\vskip 4pt\relax
   \box\@terms \vskip 4pt\relax
   \box\@keywords \par \label{@firstpg}
   {\baselineskip 14pt\relax  
   \hbox{\vrule height .5pt width 30pc}}
   \vskip 22pt\relax
 \endgroup
\let\maketitle\relax
 \gdef\@author{}\gdef\@title{}\gdef\@categories{}}
\newbox\@abstract
\newbox\@terms
\newbox\@keywords
\def\abstract{\global\setbox\@abstract=\vbox\bgroup \everypar{}
   \footnotesize \hsize 30pc \parindent 10pt \noindent 
   \rule{0pt}{10pt}\ignorespaces}
\def\endabstract{\egroup}
\def\terms#1{\setbox\@terms=\vbox{\everypar{}
  \footnotesize \hsize 30pc \parindent 0pt \noindent 
   General terms: \ignorespaces #1}}
\def\keywords#1{\setbox\@keywords=\vbox{\everypar{}
  \footnotesize \hsize 30pc \parindent 0pt \noindent 
   Additional Key Words and Phrases: \ignorespaces #1}}
\def\category#1#2#3{\@ifnextchar
     [{\@category{#1}{#2}{#3}}{\@xcategory{#1}{#2}{#3}}}
\def\@category#1#2#3[#4]{\edef\@tempa{\ifx \@categories\@empty 
    \else  ; \fi}{\def\protect{\noexpand\protect
   \noexpand}%
\def\and{\noexpand\and}%
\xdef\@categories{\@categories\@tempa #1 [{\bf #2}]: 
     #3---{\it #4}}}}
\def\@xcategory#1#2#3{\edef\@tempa{\ifx \@categories\@empty \else  ; \fi}%
{\def\protect{\noexpand\protect\noexpand}%
\def\and{\noexpand
 \and}\xdef\@categories{\@categories\@tempa #1 [{\bf #2}]: #3}}}
\def\@categories{}
\def\bottomstuff{\global\@topnum\z@ % Inhibit top figures on this page
\global\@botroom \textheight        % Guarantee room for bottomstuff as figure
\begin{figure}
\parindent\z@
\hbox{}
\vskip -\textfloatsep
\vskip 11pt
\hrule height .4pt width 30pc
\vskip 2pt\rule{0pt}{10pt}\ignorespaces}
\def\endbottomstuff{\end{figure}\gdef\permission{}}
\long\def\permission{\par Permission to copyright without fee all or part of
this material is granted provided that the copies are not made or distributed
for direct commercial advantage, the ACM copyright notice and the title of
the publication and its date appear, and notice is given that copying is
by permission of the Association for Computing Machinery.  To copy otherwise,
or to republish, requires a fee and/or specific permission.\par}
\def\acks{\par \footnotesize 
\@ucheadfalse
\@startsection{subsection}{2}{\z@}{-16pt plus -2pt minus 
   -1pt}{2pt}{\sf}*{ACKNOWLEDGMENTS}}
\def\endacks{\par}
\def\received{\par\footnotesize\addvspace{18pt plus 0pt minus 4pt}%
\parindent\z@}
\def\endreceived{\label{@lastpg}\par}
\mark{{}{}}
\def\ps@myheadings{\let\@mkboth\@gobbletwo
\def\@oddhead{\hbox{}\hfill \small\sf \rightmark\hskip 19pt{\Large$\cdot$}%
\hskip 17pt\thepage}%
\def\@oddfoot{\hbox{}\hfill \tiny\@runningfoot}%
\def\@evenhead{\small\sf\thepage \hskip 17pt{\Large$\cdot$}\hskip
   19pt\rightmark\hfill \hbox{}}%
\def\@evenfoot{\tiny\@runningfoot
    \hfill\hbox{}}%
\def\sectionmark##1{}\def\subsectionmark##1{}}
\def\@runningfoot{}
\def\runningfoot#1{\def\@runningfoot{#1}}
\def\@firstfoot{}
\def\firstfoot#1{\def\@firstfoot{#1}}
\def\pages{\pageref{@firstpg}--\pageref{@lastpg}}
\def\ps@titlepage{\let\@mkboth\@gobbletwo
\def\@oddhead{}%
\def\@oddfoot{\hbox{}\hfill \tiny\@firstfoot}%
\def\@evenhead{}%
\def\@evenfoot{\tiny\@firstfoot\hfill\hbox{}}}%
\def\today{\ifcase\month\or
  January\or February\or March\or April\or May\or June\or
  July\or August\or September\or October\or November\or December\fi
  \space\number\day, \number\year}
\ps@myheadings
\pagenumbering{arabic}
\onecolumn
