Commit b10e86296e0a88402ce76e9d63ad8c2770733b57

Authored by Paulo Meireles
1 parent ba89b78f

adding file to compile

Showing 2 changed files with 2520 additions and 0 deletions   Show diff stats
icse2018/acmart.cls 0 → 100644
... ... @@ -0,0 +1,2422 @@
  1 +%%
  2 +%% This is file `acmart.cls',
  3 +%% generated with the docstrip utility.
  4 +%%
  5 +%% The original source files were:
  6 +%%
  7 +%% acmart.dtx (with options: `class')
  8 +%%
  9 +%% IMPORTANT NOTICE:
  10 +%%
  11 +%% For the copyright see the source file.
  12 +%%
  13 +%% Any modified versions of this file must be renamed
  14 +%% with new filenames distinct from acmart.cls.
  15 +%%
  16 +%% For distribution of the original source see the terms
  17 +%% for copying and modification in the file acmart.dtx.
  18 +%%
  19 +%% This generated file may be distributed as long as the
  20 +%% original source files, as listed above, are part of the
  21 +%% same distribution. (The sources need not necessarily be
  22 +%% in the same archive or directory.)
  23 +%% \CharacterTable
  24 +%% {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
  25 +%% 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
  26 +%% Digits \0\1\2\3\4\5\6\7\8\9
  27 +%% Exclamation \! Double quote \" Hash (number) \#
  28 +%% Dollar \$ Percent \% Ampersand \&
  29 +%% Acute accent \' Left paren \( Right paren \)
  30 +%% Asterisk \* Plus \+ Comma \,
  31 +%% Minus \- Point \. Solidus \/
  32 +%% Colon \: Semicolon \; Less than \<
  33 +%% Equals \= Greater than \> Question mark \?
  34 +%% Commercial at \@ Left bracket \[ Backslash \\
  35 +%% Right bracket \] Circumflex \^ Underscore \_
  36 +%% Grave accent \` Left brace \{ Vertical bar \|
  37 +%% Right brace \} Tilde \~}
  38 +\NeedsTeXFormat{LaTeX2e}
  39 +\ProvidesClass{acmart}
  40 +[2017/05/14 v1.39 Typesetting articles for Association of
  41 +Computing Machinery]
  42 +\def\@classname{acmart}
  43 +\InputIfFileExists{acmart-preload-hook.tex}{%
  44 + \ClassWarning{\@classname}{%
  45 + I am loading acmart-preload-hook.tex. You are fully responsible
  46 + for any problems from now on.}}{}
  47 +\RequirePackage{xkeyval}
  48 +\RequirePackage{xstring}
  49 +\define@choicekey*+{acmart.cls}{format}[\ACM@format\ACM@format@nr]{%
  50 + manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph,
  51 + sigplan, sigchi, sigchi-a}[manuscript]{}{%
  52 + \ClassError{\@classname}{The option format must be manuscript,
  53 + acmsmall, acmlarge, acmtog, sigconf, siggraph,
  54 + sigplan, sigchi or sigchi-a}}
  55 +\def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{acmart.cls}{format=#1}}}
  56 +\@DeclareACMFormat{manuscript}
  57 +\@DeclareACMFormat{acmsmall}
  58 +\@DeclareACMFormat{acmlarge}
  59 +\@DeclareACMFormat{acmtog}
  60 +\@DeclareACMFormat{sigconf}
  61 +\@DeclareACMFormat{siggraph}
  62 +\@DeclareACMFormat{sigplan}
  63 +\@DeclareACMFormat{sigchi}
  64 +\@DeclareACMFormat{sigchi-a}
  65 +\ExecuteOptionsX{format}
  66 +\define@boolkey+{acmart.cls}[@ACM@]{screen}[true]{%
  67 + \if@ACM@screen
  68 + \PackageInfo{\@classname}{Using screen mode}%
  69 + \else
  70 + \PackageInfo{\@classname}{Not using screen mode}%
  71 + \fi}{\PackageError{\@classname}{Option screen can be either true or
  72 + false}}
  73 +\ExecuteOptionsX{screen=false}
  74 +\define@boolkey+{acmart.cls}[@ACM@]{review}[true]{%
  75 + \if@ACM@review
  76 + \PackageInfo{\@classname}{Using review mode}%
  77 + \else
  78 + \PackageInfo{\@classname}{Not using review mode}%
  79 + \fi}{\PackageError{\@classname}{Option review can be either true or
  80 + false}}
  81 +\ExecuteOptionsX{review=false}
  82 +\define@boolkey+{acmart.cls}[@ACM@]{authorversion}[true]{%
  83 + \if@ACM@authorversion
  84 + \PackageInfo{\@classname}{Using authorversion mode}%
  85 + \else
  86 + \PackageInfo{\@classname}{Not using authorversion mode}%
  87 + \fi}{\PackageError{\@classname}{Option authorversion can be either true or
  88 + false}}
  89 +\ExecuteOptionsX{authorversion=false}
  90 +\define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{%
  91 + \if@ACM@natbib
  92 + \PackageInfo{\@classname}{Explicitly selecting natbib mode}%
  93 + \else
  94 + \PackageInfo{\@classname}{Explicitly deselecting natbib mode}%
  95 + \fi}{\PackageError{\@classname}{Option natbib can be either true or
  96 + false}}
  97 +\ExecuteOptionsX{natbib=true}
  98 +\define@boolkey+{acmart.cls}[@ACM@]{anonymous}[true]{%
  99 + \if@ACM@anonymous
  100 + \PackageInfo{\@classname}{Using anonymous mode}%
  101 + \else
  102 + \PackageInfo{\@classname}{Not using anonymous mode}%
  103 + \fi}{\PackageError{\@classname}{Option anonymous can be either true or
  104 + false}}
  105 +\ExecuteOptionsX{anonymous=false}
  106 +\define@boolkey+{acmart.cls}[@ACM@]{timestamp}[true]{%
  107 + \if@ACM@timestamp
  108 + \PackageInfo{\@classname}{Using timestamp mode}%
  109 + \else
  110 + \PackageInfo{\@classname}{Not using timestamp mode}%
  111 + \fi}{\PackageError{\@classname}{Option timestamp can be either true or
  112 + false}}
  113 +\ExecuteOptionsX{timestamp=false}
  114 +\define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{%
  115 + \if@ACM@authordraft
  116 + \PackageInfo{\@classname}{Using authordraft mode}%
  117 + \@ACM@timestamptrue
  118 + \@ACM@reviewtrue
  119 + \else
  120 + \PackageInfo{\@classname}{Not using authordraft mode}%
  121 + \fi}{\PackageError{\@classname}{Option authordraft can be either true or
  122 + false}}
  123 +\ExecuteOptionsX{authordraft=false}
  124 +\def\ACM@fontsize{}
  125 +\DeclareOptionX{9pt}{\edef\ACM@fontsize{\CurrentOption}}
  126 +\DeclareOptionX{10pt}{\edef\ACM@fontsize{\CurrentOption}}
  127 +\DeclareOptionX{11pt}{\edef\ACM@fontsize{\CurrentOption}}
  128 +\DeclareOptionX{12pt}{\edef\ACM@fontsize{\CurrentOption}}
  129 +\DeclareOptionX{draft}{\PassOptionsToClass{\CurrentOption}{amsart}}
  130 +\DeclareOptionX{*}{\PassOptionsToClass{\CurrentOption}{amsart}}
  131 +\ProcessOptionsX
  132 +\ClassInfo{\@classname}{Using format \ACM@format, number \ACM@format@nr}
  133 +\newif\if@ACM@manuscript
  134 +\newif\if@ACM@journal
  135 +\newif\if@ACM@sigchiamode
  136 +\ifnum\ACM@format@nr=5\relax % siggraph
  137 + \ClassWarning{\@classname}{The format `siggraph' is now obsolete.
  138 + I am switching to sigconf.}
  139 + \setkeys{acmart.cls}{format=sigconf}
  140 +\fi
  141 +\ifnum\ACM@format@nr=0\relax
  142 + \@ACM@manuscripttrue
  143 +\else
  144 + \@ACM@manuscriptfalse
  145 +\fi
  146 +\@ACM@sigchiamodefalse
  147 +\ifcase\ACM@format@nr
  148 +\relax % manuscript
  149 + \@ACM@journaltrue
  150 +\or % acmsmall
  151 + \@ACM@journaltrue
  152 +\or % acmlarge
  153 + \@ACM@journaltrue
  154 +\or % acmtog
  155 + \@ACM@journaltrue
  156 +\or % sigconf
  157 + \@ACM@journalfalse
  158 +\or % siggraph
  159 + \@ACM@journalfalse
  160 + \or % sigplan
  161 + \@ACM@journalfalse
  162 + \or % sigchi
  163 + \@ACM@journalfalse
  164 +\or % sigchi-a
  165 + \@ACM@journalfalse
  166 + \@ACM@sigchiamodetrue
  167 +\fi
  168 +\ifx\ACM@fontsize\@empty
  169 + \ifcase\ACM@format@nr
  170 + \relax % manuscript
  171 + \def\ACM@fontsize{9pt}%
  172 + \or % acmsmall
  173 + \def\ACM@fontsize{10pt}%
  174 + \or % acmlarge
  175 + \def\ACM@fontsize{10pt}%
  176 + \or % acmtog
  177 + \def\ACM@fontsize{9pt}%
  178 + \or % sigconf
  179 + \def\ACM@fontsize{9pt}%
  180 + \or % siggraph
  181 + \def\ACM@fontsize{9pt}%
  182 + \or % sigplan
  183 + \def\ACM@fontsize{10pt}%
  184 + \or % sigchi
  185 + \def\ACM@fontsize{10pt}%
  186 + \or % sigchi-a
  187 + \def\ACM@fontsize{10pt}%
  188 + \fi
  189 +\fi
  190 +\ClassInfo{\@classname}{Using fontsize \ACM@fontsize}
  191 +\LoadClass[\ACM@fontsize, reqno]{amsart}
  192 +\RequirePackage{microtype}
  193 +\RequirePackage{totpages}
  194 +\RequirePackage{environ}
  195 +\if@ACM@manuscript
  196 +\RequirePackage{setspace}
  197 +\onehalfspacing
  198 +\fi
  199 +\if@ACM@natbib
  200 + \RequirePackage{natbib}
  201 + \renewcommand{\bibsection}{%
  202 + \section*{\refname}%
  203 + \phantomsection\addcontentsline{toc}{section}{\refname}%
  204 + }
  205 + \renewcommand{\bibfont}{\bibliofont}
  206 + \renewcommand\setcitestyle[1]{
  207 + \@for\@tempa:=#1\do
  208 + {\def\@tempb{round}\ifx\@tempa\@tempb
  209 + \renewcommand\NAT@open{(}\renewcommand\NAT@close{)}\fi
  210 + \def\@tempb{square}\ifx\@tempa\@tempb
  211 + \renewcommand\NAT@open{[}\renewcommand\NAT@close{]}\fi
  212 + \def\@tempb{angle}\ifx\@tempa\@tempb
  213 + \renewcommand\NAT@open{$<$}\renewcommand\NAT@close{$>$}\fi
  214 + \def\@tempb{curly}\ifx\@tempa\@tempb
  215 + \renewcommand\NAT@open{\{}\renewcommand\NAT@close{\}}\fi
  216 + \def\@tempb{semicolon}\ifx\@tempa\@tempb
  217 + \renewcommand\NAT@sep{;}\fi
  218 + \def\@tempb{colon}\ifx\@tempa\@tempb
  219 + \renewcommand\NAT@sep{;}\fi
  220 + \def\@tempb{comma}\ifx\@tempa\@tempb
  221 + \renewcommand\NAT@sep{,}\fi
  222 + \def\@tempb{authoryear}\ifx\@tempa\@tempb
  223 + \NAT@numbersfalse\fi
  224 + \def\@tempb{numbers}\ifx\@tempa\@tempb
  225 + \NAT@numberstrue\NAT@superfalse\fi
  226 + \def\@tempb{super}\ifx\@tempa\@tempb
  227 + \NAT@numberstrue\NAT@supertrue\fi
  228 + \def\@tempb{nobibstyle}\ifx\@tempa\@tempb
  229 + \let\bibstyle=\@gobble\fi
  230 + \def\@tempb{bibstyle}\ifx\@tempa\@tempb
  231 + \let\bibstyle=\@citestyle\fi
  232 + \def\@tempb{sort}\ifx\@tempa\@tempb
  233 + \def\NAT@sort{\@ne}\fi
  234 + \def\@tempb{nosort}\ifx\@tempa\@tempb
  235 + \def\NAT@sort{\z@}\fi
  236 + \def\@tempb{compress}\ifx\@tempa\@tempb
  237 + \def\NAT@cmprs{\@ne}\fi
  238 + \def\@tempb{nocompress}\ifx\@tempa\@tempb
  239 + \def\NAT@cmprs{\@z}\fi
  240 + \def\@tempb{sort&compress}\ifx\@tempa\@tempb
  241 + \def\NAT@sort{\@ne}\def\NAT@cmprs{\@ne}\fi
  242 + \def\@tempb{mcite}\ifx\@tempa\@tempb
  243 + \let\NAT@merge\@ne\fi
  244 + \def\@tempb{merge}\ifx\@tempa\@tempb
  245 + \@ifnum{\NAT@merge<\tw@}{\let\NAT@merge\tw@}{}\fi
  246 + \def\@tempb{elide}\ifx\@tempa\@tempb
  247 + \@ifnum{\NAT@merge<\thr@@}{\let\NAT@merge\thr@@}{}\fi
  248 + \def\@tempb{longnamesfirst}\ifx\@tempa\@tempb
  249 + \NAT@longnamestrue\fi
  250 + \def\@tempb{nonamebreak}\ifx\@tempa\@tempb
  251 + \def\NAT@nmfmt#1{\mbox{\NAT@up#1}}\fi
  252 + \expandafter\NAT@find@eq\@tempa=\relax\@nil
  253 + \if\@tempc\relax\else
  254 + \expandafter\NAT@rem@eq\@tempc
  255 + \def\@tempb{open}\ifx\@tempa\@tempb
  256 + \xdef\NAT@open{\@tempc}\fi
  257 + \def\@tempb{close}\ifx\@tempa\@tempb
  258 + \xdef\NAT@close{\@tempc}\fi
  259 + \def\@tempb{aysep}\ifx\@tempa\@tempb
  260 + \xdef\NAT@aysep{\@tempc}\fi
  261 + \def\@tempb{yysep}\ifx\@tempa\@tempb
  262 + \xdef\NAT@yrsep{\@tempc}\fi
  263 + \def\@tempb{notesep}\ifx\@tempa\@tempb
  264 + \xdef\NAT@cmt{\@tempc}\fi
  265 + \def\@tempb{citesep}\ifx\@tempa\@tempb
  266 + \xdef\NAT@sep{\@tempc}\fi
  267 + \fi
  268 + }%
  269 + \NAT@@setcites
  270 + }
  271 + \renewcommand\citestyle[1]{%
  272 + \ifcsname bibstyle@#1\endcsname%
  273 + \csname bibstyle@#1\endcsname\let\bibstyle\@gobble%
  274 + \else%
  275 + \@latex@error{Undefined `#1' citestyle}%
  276 + \fi
  277 + }%
  278 +\fi
  279 +\newcommand{\bibstyle@acmauthoryear}{%
  280 + \setcitestyle{%
  281 + authoryear,%
  282 + open={[},close={]},citesep={;},%
  283 + aysep={},yysep={,},%
  284 + notesep={, }}}
  285 +\newcommand{\bibstyle@acmnumeric}{%
  286 + \setcitestyle{%
  287 + numbers,sort&compress,%
  288 + open={[},close={]},citesep={,},%
  289 + notesep={, }}}
  290 +\if@ACM@natbib
  291 +\citestyle{acmnumeric}
  292 +\fi
  293 +\def\@startsection#1#2#3#4#5#6{%
  294 + \if@noskipsec \leavevmode \fi
  295 + \par
  296 + \@tempskipa #4\relax
  297 + \@afterindenttrue
  298 + \ifdim \@tempskipa <\z@
  299 + \@tempskipa -\@tempskipa \@afterindentfalse
  300 + \fi
  301 + \if@nobreak
  302 + \everypar{}%
  303 + \else
  304 + \addpenalty\@secpenalty\addvspace\@tempskipa
  305 + \fi
  306 + \@ifstar
  307 + {\@ssect{#3}{#4}{#5}{#6}}%
  308 + {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
  309 +\def\@sect#1#2#3#4#5#6[#7]#8{%
  310 + \edef\@toclevel{\ifnum#2=\@m 0\else\number#2\fi}%
  311 + \ifnum #2>\c@secnumdepth
  312 + \let\@svsec\@empty
  313 + \else
  314 + \refstepcounter{#1}%
  315 + \protected@edef\@svsec{\@seccntformat{#1}\relax}%
  316 + \fi
  317 + \@tempskipa #5\relax
  318 + \ifdim \@tempskipa>\z@
  319 + \begingroup
  320 + #6{%
  321 + \@hangfrom{\hskip #3\relax\@svsec}%
  322 + \interlinepenalty \@M #8\@@par}%
  323 + \endgroup
  324 + \csname #1mark\endcsname{#7}%
  325 + \ifnum #2>\c@secnumdepth \else
  326 + \@tochangmeasure{\csname the#1\endcsname}%
  327 + \fi
  328 + \addcontentsline{toc}{#1}{%
  329 + \ifnum #2>\c@secnumdepth \else
  330 + \protect\numberline{\csname the#1\endcsname}%
  331 + \fi
  332 + #7}%
  333 + \else
  334 + \def\@svsechd{%
  335 + #6{\hskip #3\relax
  336 + \@svsec #8}%
  337 + \csname #1mark\endcsname{#7}%
  338 + \ifnum #2>\c@secnumdepth \else
  339 + \@tochangmeasure{\csname the#1\endcsname\space}%
  340 + \fi
  341 + \addcontentsline{toc}{#1}{%
  342 + \ifnum #2>\c@secnumdepth \else
  343 + \protect\numberline{\csname the#1\endcsname}%
  344 + \fi
  345 + #7}}%
  346 + \fi
  347 + \@xsect{#5}}
  348 +\def\@xsect#1{%
  349 + \@tempskipa #1\relax
  350 + \ifdim \@tempskipa>\z@
  351 + \par \nobreak
  352 + \vskip \@tempskipa
  353 + \@afterheading
  354 + \else
  355 + \@nobreakfalse
  356 + \global\@noskipsectrue
  357 + \everypar{%
  358 + \if@noskipsec
  359 + \global\@noskipsecfalse
  360 + {\setbox\z@\lastbox}%
  361 + \clubpenalty\@M
  362 + \begingroup \@svsechd \endgroup
  363 + \unskip
  364 + \@tempskipa #1\relax
  365 + \hskip -\@tempskipa
  366 + \else
  367 + \clubpenalty \@clubpenalty
  368 + \everypar{}%
  369 + \fi}%
  370 + \fi
  371 + \ignorespaces}
  372 +\def\@seccntformat#1{\csname the#1\endcsname\quad}
  373 +\def\@ssect#1#2#3#4#5{%
  374 + \@tempskipa #3\relax
  375 + \ifdim \@tempskipa>\z@
  376 + \begingroup
  377 + #4{%
  378 + \@hangfrom{\hskip #1}%
  379 + \interlinepenalty \@M #5\@@par}%
  380 + \endgroup
  381 + \else
  382 + \def\@svsechd{#4{\hskip #1\relax #5}}%
  383 + \fi
  384 + \@xsect{#3}}
  385 +\def\@starttoc#1#2{\begingroup
  386 + \setTrue{#1}%
  387 + \par\removelastskip\vskip\z@skip
  388 + \@startsection{section}\@M\z@{\linespacing\@plus\linespacing}%
  389 + {.5\linespacing}{\centering\contentsnamefont}{#2}%
  390 + \@input{\jobname.#1}%
  391 + \if@filesw
  392 + \@xp\newwrite\csname tf@#1\endcsname
  393 + \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax
  394 + \fi
  395 + \global\@nobreakfalse \endgroup
  396 + \addvspace{32\p@\@plus14\p@}%
  397 +}
  398 +\def\l@subsection{\@tocline{2}{0pt}{1pc}{3pc}{}}
  399 +\def\l@subsubsection{\@tocline{2}{0pt}{1pc}{5pc}{}}
  400 +\let\@footnotemark@nolink\@footnotemark
  401 +\let\@footnotetext@nolink\@footnotetext
  402 +\RequirePackage[bookmarksnumbered,unicode]{hyperref}
  403 +\pdfstringdefDisableCommands{%
  404 + \def\unskip{}%
  405 + \def\textbullet{- }%
  406 + \def\textrightarrow{ -> }%
  407 + \def\footnotemark{}%
  408 +}
  409 +\urlstyle{rm}
  410 +\ifcase\ACM@format@nr
  411 +\relax % manuscript
  412 +\or % acmsmall
  413 +\or % acmlarge
  414 +\or % acmtog
  415 +\or % sigconf
  416 +\or % siggraph
  417 +\or % sigplan
  418 + \urlstyle{sf}
  419 +\or % sigchi
  420 +\or % sigchi-a
  421 + \urlstyle{sf}
  422 +\fi
  423 +\if@ACM@screen
  424 + \hypersetup{colorlinks,
  425 + linkcolor=ACMRed,
  426 + citecolor=ACMPurple,
  427 + urlcolor=ACMDarkBlue,
  428 + filecolor=ACMDarkBlue}
  429 +\else
  430 + \hypersetup{hidelinks}
  431 +\fi
  432 +\if@ACM@natbib
  433 + \let\citeN\cite
  434 + \let\cite\citep
  435 + \let\citeANP\citeauthor
  436 + \let\citeNN\citeyearpar
  437 + \let\citeyearNP\citeyear
  438 + \let\citeyear\citeyearpar
  439 + \let\citeNP\citealt
  440 + \DeclareRobustCommand\citeA
  441 + {\begingroup\NAT@swafalse
  442 + \let\NAT@ctype\@ne\NAT@partrue\NAT@fullfalse\NAT@open\NAT@citetp}%
  443 + \providecommand\newblock{}%
  444 +\else
  445 + \AtBeginDocument{%
  446 + \let\shortcite\cite%
  447 + \providecommand\citename[1]{#1}}
  448 +\fi
  449 +\newcommand\shortcite[2][]{%
  450 + \ifNAT@numbers\cite[#1]{#2}\else\citeyear[#1]{#2}\fi}
  451 +\def\bibliographystyle#1{%
  452 + \ifx\@begindocumenthook\@undefined\else
  453 + \expandafter\AtBeginDocument
  454 + \fi
  455 + {\if@filesw
  456 + \immediate\write\@auxout{\string\bibstyle{#1}}%
  457 + \fi}}
  458 +\RequirePackage{graphicx, xcolor}
  459 +\definecolor[named]{ACMBlue}{cmyk}{1,0.1,0,0.1}
  460 +\definecolor[named]{ACMYellow}{cmyk}{0,0.16,1,0}
  461 +\definecolor[named]{ACMOrange}{cmyk}{0,0.42,1,0.01}
  462 +\definecolor[named]{ACMRed}{cmyk}{0,0.90,0.86,0}
  463 +\definecolor[named]{ACMLightBlue}{cmyk}{0.49,0.01,0,0}
  464 +\definecolor[named]{ACMGreen}{cmyk}{0.20,0,1,0.19}
  465 +\definecolor[named]{ACMPurple}{cmyk}{0.55,1,0,0.15}
  466 +\definecolor[named]{ACMDarkBlue}{cmyk}{1,0.58,0,0.21}
  467 +\if@ACM@authordraft
  468 + \RequirePackage{draftwatermark}
  469 + \SetWatermarkFontSize{0.5in}
  470 + \SetWatermarkColor[gray]{.9}
  471 + \SetWatermarkText{\parbox{12em}{\centering
  472 + Unpublished working draft\\
  473 + Not for distribution}}
  474 +\fi
  475 +\RequirePackage{geometry}
  476 +\ifcase\ACM@format@nr
  477 +\relax % manuscript
  478 + \geometry{letterpaper,head=13pt,
  479 + marginparwidth=6pc}%
  480 +\or % acmsmall
  481 + \geometry{twoside=true,
  482 + includeheadfoot, head=13pt, foot=2pc,
  483 + paperwidth=6.75in, paperheight=10in,
  484 + top=58pt, bottom=44pt, inner=46pt, outer=46pt,
  485 + marginparwidth=2pc
  486 + }%
  487 +\or % acmlarge
  488 + \geometry{twoside=true, head=13pt, foot=2pc,
  489 + paperwidth=8.5in, paperheight=11in,
  490 + includeheadfoot,
  491 + top=78pt, bottom=114pt, inner=81pt, outer=81pt,
  492 + marginparwidth=4pc
  493 + }%
  494 +\or % acmtog
  495 + \geometry{twoside=true, head=13pt, foot=2pc,
  496 + paperwidth=8.5in, paperheight=11in,
  497 + includeheadfoot, columnsep=24pt,
  498 + top=52pt, bottom=75pt, inner=52pt, outer=52pt,
  499 + marginparwidth=2pc
  500 + }%
  501 +\or % sigconf
  502 + \geometry{twoside=true, head=13pt,
  503 + paperwidth=8.5in, paperheight=11in,
  504 + includeheadfoot, columnsep=2pc,
  505 + top=57pt, bottom=73pt, inner=54pt, outer=54pt,
  506 + marginparwidth=2pc
  507 + }%
  508 +\or % siggraph
  509 + \geometry{twoside=true, head=13pt,
  510 + paperwidth=8.5in, paperheight=11in,
  511 + includeheadfoot, columnsep=2pc,
  512 + top=57pt, bottom=73pt, inner=54pt, outer=54pt,
  513 + marginparwidth=2pc
  514 + }%
  515 +\or % sigplan
  516 + \geometry{twoside=true, head=13pt,
  517 + paperwidth=8.5in, paperheight=11in,
  518 + includeheadfoot=false, columnsep=2pc,
  519 + top=1in, bottom=1in, inner=0.75in, outer=0.75in,
  520 + marginparwidth=2pc
  521 + }%
  522 +\or % sigchi
  523 + \geometry{twoside=true, head=13pt,
  524 + paperwidth=8.5in, paperheight=11in,
  525 + includeheadfoot, columnsep=2pc,
  526 + top=66pt, bottom=73pt, inner=54pt, outer=54pt,
  527 + marginparwidth=2pc
  528 + }%
  529 +\or % sigchi-a
  530 + \geometry{twoside=false, head=13pt,
  531 + paperwidth=11in, paperheight=8.5in,
  532 + includeheadfoot, marginparsep=72pt,
  533 + marginparwidth=170pt, columnsep=20pt,
  534 + top=72pt, bottom=72pt, left=314pt, right=72pt
  535 + }%
  536 + \@mparswitchfalse
  537 + \reversemarginpar
  538 +\fi
  539 +\setlength\parindent{10\p@}
  540 +\setlength\parskip{\z@}
  541 +\ifcase\ACM@format@nr
  542 +\relax % manuscript
  543 +\or % acmsmall
  544 +\or % acmlarge
  545 +\or % acmtog
  546 + \setlength\parindent{9\p@}%
  547 +\or % sigconf
  548 +\or % siggraph
  549 +\or % sigplan
  550 +\or % sigchi
  551 +\or % sigchi-a
  552 +\fi
  553 +\setlength\normalparindent{\parindent}
  554 +\def\copyrightpermissionfootnoterule{\kern-3\p@
  555 + \hrule \@width \columnwidth \kern 2.6\p@}
  556 +\RequirePackage{manyfoot}
  557 +\SelectFootnoteRule[2]{copyrightpermission}
  558 +\DeclareNewFootnote{copyrightpermission}
  559 +\def\footnoterule{\kern-3\p@
  560 + \hrule \@width 4pc \kern 2.6\p@}
  561 +\def\endminipage{%
  562 + \par
  563 + \unskip
  564 + \ifvoid\@mpfootins\else
  565 + \vskip\skip\@mpfootins
  566 + \normalcolor
  567 + \unvbox\@mpfootins
  568 + \fi
  569 + \@minipagefalse %% added 24 May 89
  570 + \color@endgroup
  571 + \egroup
  572 + \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
  573 +\def\@makefntext{\noindent\@makefnmark}
  574 +\if@ACM@sigchiamode
  575 +\long\def\@footnotetext#1{\marginpar{%
  576 + \reset@font\small
  577 + \interlinepenalty\interfootnotelinepenalty
  578 + \protected@edef\@currentlabel{%
  579 + \csname p@footnote\endcsname\@thefnmark
  580 + }%
  581 + \color@begingroup
  582 + \@makefntext{%
  583 + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
  584 + \color@endgroup}}%
  585 +\fi
  586 +\long\def\@mpfootnotetext#1{%
  587 + \global\setbox\@mpfootins\vbox{%
  588 + \unvbox\@mpfootins
  589 + \reset@font\footnotesize
  590 + \hsize\columnwidth
  591 + \@parboxrestore
  592 + \protected@edef\@currentlabel
  593 + {\csname p@mpfootnote\endcsname\@thefnmark}%
  594 + \color@begingroup\centering
  595 + \@makefntext{%
  596 + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
  597 + \color@endgroup}}
  598 +\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
  599 +\def\@textbottom{\vskip \z@ \@plus 1pt}
  600 +\let\@texttop\relax
  601 +\RequirePackage{iftex}
  602 +\ifPDFTeX
  603 +\input{glyphtounicode}
  604 +\pdfgentounicode=1
  605 +\fi
  606 +\RequirePackage{cmap}
  607 +\newif\if@ACM@newfonts
  608 +\@ACM@newfontstrue
  609 +\IfFileExists{libertine.sty}{}{\ClassWarning{\@classname}{You do not
  610 + have libertine package installed. Please upgrade your
  611 + TeX}\@ACM@newfontsfalse}
  612 +\IfFileExists{zi4.sty}{}{\ClassWarning{\@classname}{You do not
  613 + have zi4 package installed. Please upgrade your TeX}\@ACM@newfontsfalse}
  614 +\IfFileExists{newtxmath.sty}{}{\ClassWarning{\@classname}{You do not
  615 + have newtxmath package installed. Please upgrade your
  616 + TeX}\@ACM@newfontsfalse}
  617 +\if@ACM@newfonts
  618 +\RequirePackage[tt=false, type1=true]{libertine}
  619 +\RequirePackage[varqu]{zi4}
  620 +\RequirePackage[libertine]{newtxmath}
  621 +\RequirePackage[T1]{fontenc}
  622 +\fi
  623 +\if@ACM@sigchiamode
  624 + \renewcommand{\familydefault}{\sfdefault}
  625 +\fi
  626 +\RequirePackage{caption, float}
  627 +\captionsetup[table]{position=top}
  628 +\if@ACM@journal
  629 + \captionsetup{labelfont={sf, small},
  630 + textfont={sf, small}, margin=\z@}
  631 + \captionsetup[figure]{name={Fig.}}
  632 +\else
  633 + \captionsetup{labelfont={bf},
  634 + textfont={bf}, labelsep=colon, margin=\z@}
  635 + \ifcase\ACM@format@nr
  636 + \relax % manuscript
  637 + \or % acmsmall
  638 + \or % acmlarge
  639 + \or % acmtog
  640 + \or % sigconf
  641 + \or % siggraph
  642 + \captionsetup{textfont={it}}
  643 + \or % sigplan
  644 + \captionsetup{labelfont={bf},
  645 + textfont={normalfont}, labelsep=period, margin=\z@}
  646 + \or % sigchi
  647 + \captionsetup[figure]{labelfont={bf, small},
  648 + textfont={bf, small}}
  649 + \or % sigchi-a
  650 + \captionsetup[figure]{labelfont={bf, small},
  651 + textfont={bf, small}}
  652 + \fi
  653 +\fi
  654 +\newfloat{sidebar}{}{sbar}
  655 +\floatname{sidebar}{Sidebar}
  656 +\renewenvironment{sidebar}{\Collect@Body\@sidebar}{}
  657 +\long\def\@sidebar#1{\bgroup\captionsetup{type=sidebar}%
  658 + \marginpar{\small#1}\egroup}
  659 +\newenvironment{marginfigure}{\Collect@Body\@marginfigure}{}
  660 +\long\def\@marginfigure#1{\bgroup\captionsetup{type=figure}%
  661 + \marginpar{\centering\small#1}\egroup}
  662 +\newenvironment{margintable}{\Collect@Body\@margintable}{}
  663 +\long\def\@margintable#1{\bgroup\captionsetup{type=table}%
  664 + \marginpar{\centering\small#1}\egroup}
  665 +\newdimen\fulltextwidth
  666 +\fulltextwidth=\dimexpr(\textwidth+\marginparwidth+\marginparsep)
  667 +\if@ACM@sigchiamode
  668 +\def\@dblfloat{\bgroup\columnwidth=\fulltextwidth
  669 + \let\@endfloatbox\@endwidefloatbox
  670 + \def\@fpsadddefault{\def\@fps{tp}}%
  671 + \@float}
  672 +\fi
  673 +\if@ACM@sigchiamode
  674 +\def\end@dblfloat{%
  675 + \end@float\egroup}
  676 +\fi
  677 +\def\@endwidefloatbox{%
  678 + \par\vskip\z@skip
  679 + \@minipagefalse
  680 + \outer@nobreak
  681 + \egroup
  682 + \color@endbox
  683 + \global\setbox\@currbox=\vbox{\moveleft
  684 + \dimexpr(\fulltextwidth-\textwidth)\box\@currbox}%
  685 + \wd\@currbox=\textwidth
  686 +}
  687 +\ifcase\ACM@format@nr
  688 +\relax % manuscript
  689 +\or % acmsmall
  690 +\or % acmlarge
  691 +\or % acmtog
  692 +\or % sigconf
  693 +\or % siggraph
  694 +\or % sigplan
  695 +\def\labelenumi{\theenumi.}
  696 +\def\labelenumii{\theenumii.}
  697 +\def\labelenumiii{\theenumiii.}
  698 +\def\labelenumiv{\theenumiv.}
  699 +\or % sigchi
  700 +\or % sigchi-a
  701 +\fi
  702 +\newdimen\@ACM@labelwidth
  703 +\AtBeginDocument{%
  704 + \setlength\labelsep{4pt}
  705 + \setlength{\@ACM@labelwidth}{6.5pt}
  706 +
  707 + %% First-level list: when beginning after the first line of an
  708 + %% indented paragraph or ending before an indented paragraph, labels
  709 + %% should not hang to the left of the preceding/following text.
  710 + \setlength\leftmargini{\z@}
  711 + \addtolength\leftmargini{\parindent}
  712 + \addtolength\leftmargini{2\labelsep}
  713 + \addtolength\leftmargini{\@ACM@labelwidth}
  714 +
  715 + %% Second-level and higher lists.
  716 + \setlength\leftmarginii{\z@}
  717 + \addtolength\leftmarginii{0.5\labelsep}
  718 + \addtolength\leftmarginii{\@ACM@labelwidth}
  719 + \setlength\leftmarginiii{\leftmarginii}
  720 + \setlength\leftmarginiv{\leftmarginiii}
  721 + \setlength\leftmarginv{\leftmarginiv}
  722 + \setlength\leftmarginvi{\leftmarginv}
  723 + \@listi}
  724 +\newskip\listisep
  725 +\listisep\smallskipamount
  726 +\def\@listI{\leftmargin\leftmargini
  727 + \labelwidth\leftmargini \advance\labelwidth-\labelsep
  728 + \listparindent\z@
  729 + \topsep\listisep}
  730 +\let\@listi\@listI
  731 +\def\@listii{\leftmargin\leftmarginii
  732 + \labelwidth\leftmarginii \advance\labelwidth-\labelsep
  733 + \topsep\z@skip}
  734 +\def\@listiii{\leftmargin\leftmarginiii
  735 + \labelwidth\leftmarginiii \advance\labelwidth-\labelsep}
  736 +\def\@listiv{\leftmargin\leftmarginiv
  737 + \labelwidth\leftmarginiv \advance\labelwidth-\labelsep}
  738 +\def\@listv{\leftmargin\leftmarginv
  739 + \labelwidth\leftmarginv \advance\labelwidth-\labelsep}
  740 +\def\@listvi{\leftmargin\leftmarginvi
  741 + \labelwidth\leftmarginvi \advance\labelwidth-\labelsep}
  742 +\renewcommand{\descriptionlabel}[1]{\upshape\bfseries #1}
  743 +\renewenvironment{description}{\list{}{%
  744 + \labelwidth\@ACM@labelwidth
  745 + \let\makelabel\descriptionlabel}%
  746 +}{
  747 + \endlist
  748 +}
  749 +\let\enddescription=\endlist % for efficiency
  750 +\define@choicekey*+{ACM}{acmJournal}[\@journalCode\@journalCode@nr]{%
  751 + CIE,%
  752 + CSUR,%
  753 + IMWUT,%
  754 + JACM,%
  755 + JDIQ,%
  756 + JEA,%
  757 + JERIC,%
  758 + JETC,%
  759 + JOCCH,%
  760 + PACMHCI,%
  761 + PACMPL,%
  762 + POMACS,%
  763 + TAAS,%
  764 + TACCESS,%
  765 + TACO,%
  766 + TALG,%
  767 + TALLIP,%
  768 + TAP,%
  769 + TCPS,%
  770 + TEAC,%
  771 + TECS,%
  772 + TIIS,%
  773 + TISSEC,%
  774 + TIST,%
  775 + TKDD,%
  776 + TMIS,%
  777 + TOCE,%
  778 + TOCHI,%
  779 + TOCL,%
  780 + TOCS,%
  781 + TOCT,%
  782 + TODAES,%
  783 + TODS,%
  784 + TOG,%
  785 + TOIS,%
  786 + TOIT,%
  787 + TOMACS,%
  788 + TOMM,%
  789 + TOMPECS,%
  790 + TOMS,%
  791 + TOPC,%
  792 + TOPS,%
  793 + TOPLAS,%
  794 + TOS,%
  795 + TOSEM,%
  796 + TOSN,%
  797 + TRETS,%
  798 + TSAS,%
  799 + TSC,%
  800 + TSLP,%
  801 + TWEB%
  802 +}{%
  803 +\ifcase\@journalCode@nr
  804 +\relax % CIE
  805 + \def\@journalName{ACM Computers in Entertainment}%
  806 + \def\@journalNameShort{ACM Comput. Entertain.}%
  807 + \def\@permissionCodeOne{1544-3574}%
  808 +\or % CSUR
  809 + \def\@journalName{ACM Computing Surveys}%
  810 + \def\@journalNameShort{ACM Comput. Surv.}%
  811 + \def\@permissionCodeOne{0360-0300}%
  812 +\or % IMWUT
  813 + \def\@journalName{Proceedings of the ACM on Interactive, Mobile,
  814 + Wearable and Ubiquitous Technologies}%
  815 + \def\@journalNameShort{Proc. ACM Interact. Mob. Wearable Ubiquitous Technol.}%
  816 + \def\@permissionCodeOne{2474-9567}%
  817 +\or % JACM
  818 + \def\@journalName{Journal of the ACM}%
  819 + \def\@journalNameShort{J. ACM}%
  820 + \def\@permissionCodeOne{0004-5411}%
  821 +\or % JDIQ
  822 + \def\@journalName{ACM Journal of Data and Information Quality}%
  823 + \def\@journalNameShort{ACM J. Data Inform. Quality}%
  824 + \def\@permissionCodeOne{1936-1955}%
  825 +\or % JEA
  826 + \def\@journalName{ACM Journal of Experimental Algorithmics}%
  827 + \def\@journalNameShort{ACM J. Exp. Algor.}%
  828 + \def\@permissionCodeOne{1084-6654}%
  829 +\or % JERIC
  830 + \def\@journalName{ACM Journal of Educational Resources in Computing}%
  831 + \def\@journalNameShort{ACM J. Edu. Resources in Comput.}%
  832 + \def\@permissionCodeOne{1073-0516}%
  833 +\or % JETC
  834 + \def\@journalName{ACM Journal on Emerging Technologies in Computing Systems}%
  835 + \def\@journalNameShort{ACM J. Emerg. Technol. Comput. Syst.}%
  836 + \def\@permissionCodeOne{1550-4832}%
  837 +\or % JOCCH
  838 + \def\@journalName{ACM Journal on Computing and Cultural Heritage}%
  839 + \def\@journalName{ACM J. Comput. Cult. Herit.}%
  840 +\or % PACMHCI
  841 + \def\@journalName{Proceedings of the ACM on Human-Computer Interaction}%
  842 + \def\@journalName{Proc. ACM Hum.-Comput. Interact.}%
  843 + \def\@permissionCodeOne{2573-0142}%
  844 +\or % PACMPL
  845 + \def\@journalName{Proceedings of the ACM on Programming Languages}%
  846 + \def\@journalName{Proc. ACM Program. Lang.}%
  847 + \def\@permissionCodeOne{2475-1421}%
  848 +\or % POMACS
  849 + \def\@journalName{Proceedings of the ACM on Measurement and Analysis of Computing Systems}%
  850 + \def\@journalName{Proc. ACM Meas. Anal. Comput. Syst.}%
  851 + \def\@permissionCodeOne{2476-1249}%
  852 +\or % TAAS
  853 + \def\@journalName{ACM Transactions on Autonomous and Adaptive Systems}%
  854 + \def\@journalNameShort{ACM Trans. Autonom. Adapt. Syst.}%
  855 + \def\@permissionCodeOne{1556-4665}%
  856 +\or % TACCESS
  857 + \def\@journalName{ACM Transactions on Accessible Computing}%
  858 + \def\@journalNameShort{ACM Trans. Access. Comput.}%
  859 + \def\@permissionCodeOne{1936-7228}%
  860 +\or % TACO
  861 + \def\@journalName{ACM Transactions on Architecture and Code Optimization}%
  862 +\or % TALG
  863 + \def\@journalName{ACM Transactions on Algorithms}%
  864 + \def\@journalNameShort{ACM Trans. Algor.}%
  865 + \def\@permissionCodeOne{1549-6325}%
  866 +\or % TALLIP
  867 + \def\@journalName{ACM Transactions on Asian and Low-Resource Language Information Processing}%
  868 + \def\@journalNameShort{ACM Trans. Asian Low-Resour. Lang. Inf. Process.}%
  869 + \def\@permissionCodeOne{2375-4699}%
  870 +\or % TAP
  871 + \def\@journalName{ACM Transactions on Applied Perception}%
  872 +\or % TCPS
  873 + \def\@journalName{ACM Transactions on Cyber-Physical Systems}%
  874 +\or % TEAC
  875 + \def\@journalName{ACM Transactions on Economics and Computation}%
  876 +\or % TECS
  877 + \def\@journalName{ACM Transactions on Embedded Computing Systems}%
  878 + \def\@journalNameShort{ACM Trans. Embedd. Comput. Syst.}%
  879 + \def\@permissionCodeOne{1539-9087}%
  880 +\or % TIIS
  881 + \def\@journalName{ACM Transactions on Interactive Intelligent Systems}%
  882 + \def\@journalNameShort{ACM Trans. Interact. Intell. Syst.}%
  883 + \def\@permissionCodeOne{2160-6455}%
  884 +\or % TISSEC
  885 + \def\@journalName{ACM Transactions on Information and System Security}%
  886 + \def\@journalNameShort{ACM Trans. Info. Syst. Sec.}%
  887 + \def\@permissionCodeOne{1094-9224}%
  888 +\or % TIST
  889 + \def\@journalName{ACM Transactions on Intelligent Systems and Technology}%
  890 + \def\@journalNameShort{ACM Trans. Intell. Syst. Technol.}%
  891 + \def\@permissionCodeOne{2157-6904}%
  892 +\or % TKDD
  893 + \def\@journalName{ACM Transactions on Knowledge Discovery from Data}%
  894 + \def\@journalNameShort{ACM Trans. Knowl. Discov. Data.}%
  895 + \def\@permissionCodeOne{1556-4681}%
  896 +\or % TMIS
  897 + \def\@journalName{ACM Transactions on Management Information Systems}%
  898 + \def\@journalNameShort{ACM Trans. Manag. Inform. Syst.}%
  899 + \def\@permissionCodeOne{2158-656X}%
  900 +\or % TOCE
  901 + \def\@journalName{ACM Transactions on Computing Education}%
  902 + \def\@journalNameShort{ACM Trans. Comput. Educ.}%
  903 + \def\@permissionCodeOne{1946-6226}%
  904 +\or % TOCHI
  905 + \def\@journalName{ACM Transactions on Computer-Human Interaction}%
  906 + \def\@journalNameShort{ACM Trans. Comput.-Hum. Interact.}%
  907 + \def\@permissionCodeOne{1073-0516}%
  908 +\or % TOCL
  909 + \def\@journalName{ACM Transactions on Computational Logic}%
  910 + \def\@journalNameShort{ACM Trans. Comput. Logic}%
  911 + \def\@permissionCodeOne{1529-3785}%
  912 +\or % TOCS
  913 + \def\@journalName{ACM Transactions on Computer Systems}%
  914 + \def\@journalNameShort{ACM Trans. Comput. Syst.}%
  915 + \def\@permissionCodeOne{0734-2071}%
  916 +\or % TOCT
  917 + \def\@journalName{ACM Transactions on Computation Theory}%
  918 + \def\@journalNameShort{ACM Trans. Comput. Theory}%
  919 + \def\@permissionCodeOne{1942-3454}%
  920 +\or % TODAES
  921 + \def\@journalName{ACM Transactions on Design Automation of Electronic Systems}%
  922 + \def\@journalNameShort{ACM Trans. Des. Autom. Electron. Syst.}%
  923 + \def\@permissionCodeOne{1084-4309}%
  924 +\or % TODS
  925 + \def\@journalName{ACM Transactions on Database Systems}%
  926 + \def\@journalNameShort{ACM Trans. Datab. Syst.}%
  927 + \def\@permissionCodeOne{0362-5915}%
  928 +\or % TOG
  929 + \def\@journalName{ACM Transactions on Graphics}%
  930 + \def\@journalNameShort{ACM Trans. Graph.}%
  931 + \def\@permissionCodeOne{0730-0301}
  932 +\or % TOIS
  933 + \def\@journalName{ACM Transactions on Information Systems}%
  934 + \def\@journalName{ACM Transactions on Information Systems}%
  935 + \def\@permissionCodeOne{1046-8188}%
  936 +\or % TOIT
  937 + \def\@journalName{ACM Transactions on Internet Technology}%
  938 + \def\@journalNameShort{ACM Trans. Internet Technol.}%
  939 + \def\@permissionCodeOne{1533-5399}%
  940 +\or % TOMACS
  941 + \def\@journalName{ACM Transactions on Modeling and Computer Simulation}%
  942 + \def\@journalName{ACM Transactions on Modeling and Computer Simulation}%
  943 + \def\@journalNameShort{ACM Trans. Model. Comput. Simul.}%
  944 +\or % TOMM
  945 + \def\@journalName{ACM Transactions on Multimedia Computing, Communications and Applications}%
  946 + \def\@journalNameShort{ACM Trans. Multimedia Comput. Commun. Appl.}%
  947 + \def\@permissionCodeOne{1551-6857}%
  948 + \def\@permissionCodeTwo{0100}%
  949 +\or % TOMPECS
  950 + \def\@journalName{ACM Transactions on Modeling and Performance Evaluation of Computing Systems}%
  951 + \def\@journalNameShort{ACM Trans. Model. Perform. Eval. Comput. Syst.}%
  952 + \def\@permissionCodeOne{2376-3639}%
  953 +\or % TOMS
  954 + \def\@journalName{ACM Transactions on Mathematical Software}%
  955 + \def\@journalNameShort{ACM Trans. Math. Softw.}%
  956 + \def\@permissionCodeOne{0098-3500}%
  957 +\or % TOPC
  958 + \def\@journalName{ACM Transactions on Parallel Computing}%
  959 + \def\@journalNameShort{ACM Trans. Parallel Comput.}%
  960 + \def\@permissionCodeOne{1539-9087}%
  961 +\or % TOPS
  962 + \def\@journalName{ACM Transactions on Privacy and Security}%
  963 + \def\@journalNameShort{ACM Trans. Priv. Sec.}%
  964 + \def\@permissionCodeOne{2471-2566}%
  965 +\or % TOPLAS
  966 + \def\@journalName{ACM Transactions on Programming Languages and Systems}%
  967 + \def\@journalNameShort{ACM Trans. Program. Lang. Syst.}%
  968 + \def\@permissionCodeOne{0164-0925}%
  969 +\or % TOS
  970 + \def\@journalName{ACM Transactions on Storage}%
  971 + \def\@journalNameShort{ACM Trans. Storage}%
  972 + \def\@permissionCodeOne{1553-3077}%
  973 +\or % TOSEM
  974 + \def\@journalName{ACM Transactions on Software Engineering and Methodology}%
  975 + \def\@journalNameShort{ACM Trans. Softw. Eng. Methodol.}%
  976 + \def\@permissionCodeOne{1049-331X}%
  977 +\or % TOSN
  978 + \def\@journalName{ACM Transactions on Sensor Networks}%
  979 + \def\@journalNameShort{ACM Trans. Sensor Netw.}%
  980 + \def\@permissionCodeOne{1550-4859}%
  981 +\or % TRETS
  982 + \def\@journalName{ACM Transactions on Reconfigurable Technology and Systems}%
  983 + \def\@journalNameShort{ACM Trans. Reconfig. Technol. Syst.}%
  984 + \def\@permissionCodeOne{1936-7406}%
  985 +\or % TSAS
  986 + \def\@journalName{ACM Transactions on Spatial Algorithms and Systems}%
  987 + \def\@journalNameShort{ACM Trans. Spatial Algorithms Syst.}%
  988 + \def\@permissionCodeOne{2374-0353}%
  989 +\or % TSC
  990 + \def\@journalName{ACM Transactions on Social Computing}%
  991 + \def\@journalNameShort{ACM Trans. Soc. Comput.}%
  992 + \def\@permissionCodeOne{2469-7818}%
  993 +\or % TSLP
  994 + \def\@journalName{ACM Transactions on Speech and Language Processing}%
  995 + \def\@journalNameShort{ACM Trans. Speech Lang. Process.}%
  996 + \def\@permissionCodeOne{1550-4875}%
  997 +\or % TWEB
  998 + \def\@journalName{ACM Transactions on the Web}%
  999 + \def\@journalNameShort{ACM Trans. Web}%
  1000 + \def\@permissionCodeOne{1559-1131}%
  1001 +\fi
  1002 +\ClassInfo{\@classname}{Using journal code \@journalCode}%
  1003 +}{%
  1004 + \ClassError{\@classname}{Incorrect journal #1}%
  1005 +}%
  1006 +\def\acmJournal#1{\setkeys{ACM}{acmJournal=#1}}
  1007 +\def\@journalCode@nr{0}
  1008 +\def\@journalName{}%
  1009 +\def\@journalNameShort{\@journalName}%
  1010 +\def\@permissionCodeOne{XXXX-XXXX}%
  1011 +\def\@permissionCodeTwo{}%
  1012 +\newcommand\acmConference[4][]{%
  1013 + \gdef\acmConference@shortname{#1}%
  1014 + \gdef\acmConference@name{#2}%
  1015 + \gdef\acmConference@date{#3}%
  1016 + \gdef\acmConference@venue{#4}%
  1017 + \ifx\acmConference@shortname\@empty
  1018 + \gdef\acmConference@shortname{#2}%
  1019 + \fi}
  1020 +\acmConference[Conference'17]{ACM Conference}{July 2017}{Washington,
  1021 + DC, USA}
  1022 +\def\subtitle#1{\def\@subtitle{#1}}
  1023 +\subtitle{}
  1024 +\newcount\num@authorgroups
  1025 +\num@authorgroups=0\relax
  1026 +\newif\if@insideauthorgroup
  1027 +\@insideauthorgroupfalse
  1028 +\renewcommand\author[2][]{%
  1029 + \if@insideauthorgroup\else
  1030 + \global\advance\num@authorgroups by 1\relax
  1031 + \global\@insideauthorgrouptrue
  1032 + \fi
  1033 + \ifx\addresses\@empty
  1034 + \if@ACM@anonymous
  1035 + \gdef\addresses{\@author{Anonymous Author(s)}}%
  1036 + \gdef\authors{Anonymous Author(s)}%
  1037 + \else
  1038 + \gdef\addresses{\@author{#2}}%
  1039 + \gdef\authors{#2}%
  1040 + \fi
  1041 + \else
  1042 + \if@ACM@anonymous\else
  1043 + \g@addto@macro\addresses{\and\@author{#2}}%
  1044 + \g@addto@macro\authors{\and#2}%
  1045 + \fi
  1046 + \fi
  1047 + \if@ACM@anonymous
  1048 + \ifx\shortauthors\@empty
  1049 + \gdef\shortauthors{Anon.}%
  1050 + \fi
  1051 + \else
  1052 + \def\@tempa{#1}%
  1053 + \ifx\@tempa\@empty
  1054 + \ifx\shortauthors\@empty
  1055 + \gdef\shortauthors{#2}%
  1056 + \else
  1057 + \g@addto@macro\shortauthors{\and#2}%
  1058 + \fi
  1059 + \else
  1060 + \ifx\shortauthors\@empty
  1061 + \gdef\shortauthors{#1}%
  1062 + \else
  1063 + \g@addto@macro\shortauthors{\and#1}%
  1064 + \fi
  1065 + \fi
  1066 + \fi}
  1067 +\newcommand{\affiliation}[2][]{%
  1068 + \global\@insideauthorgroupfalse
  1069 + \if@ACM@anonymous\else
  1070 + \g@addto@macro\addresses{\affiliation{#1}{#2}}%
  1071 + \fi}
  1072 +\define@boolkey+{@ACM@affiliation@}[@ACM@affiliation@]{obeypunctuation}%
  1073 +[true]{}{\ClassError{\@classname}{obeypunctuation must be true or false}}
  1074 +\def\additionalaffiliation#1{\authornote{\@additionalaffiliation{#1}}}
  1075 +\def\@additionalaffiliation#1{\bgroup
  1076 + \def\position##1{\ignorespaces}%
  1077 + \def\institution##1{##1\ignorespaces}%
  1078 + \def\department{\@ifnextchar[{\@department}{\@department[]}}%
  1079 + \def\@department[##1]##2{\unskip, ##2\ignorespaces}%
  1080 + \let\streetaddress\position
  1081 + \let\city\position
  1082 + \let\state\position
  1083 + \let\postcode\position
  1084 + \let\country\position
  1085 + Also with #1\unskip.\egroup}
  1086 +\renewcommand{\email}[2][]{%
  1087 + \if@ACM@anonymous\else
  1088 + \g@addto@macro\addresses{\email{#1}{#2}}%
  1089 + \fi}
  1090 +\let\orcid\@gobble
  1091 +\def\@titlenotes{}
  1092 +\def\titlenote#1{%
  1093 + \g@addto@macro\@title{\footnotemark}%
  1094 + \if@ACM@anonymous
  1095 + \g@addto@macro\@titlenotes{%
  1096 + \stepcounter{footnote}\footnotetext{Title note}}%
  1097 + \else
  1098 + \g@addto@macro\@titlenotes{\stepcounter{footnote}\footnotetext{#1}}%
  1099 + \fi}
  1100 +\def\@subtitlenotes{}
  1101 +\def\subtitlenote#1{%
  1102 + \g@addto@macro\@subtitle{\footnotemark}%
  1103 + \if@ACM@anonymous
  1104 + \g@addto@macro\@subtitlenotes{%
  1105 + \stepcounter{footnote}\footnotetext{Subtitle note}}%
  1106 + \else
  1107 + \g@addto@macro\@subtitlenotes{%
  1108 + \stepcounter{footnote}\footnotetext{#1}}%
  1109 + \fi}
  1110 +\def\@authornotes{}
  1111 +\def\authornote#1{%
  1112 + \if@ACM@anonymous\else
  1113 + \g@addto@macro\addresses{\@authornotemark}%
  1114 + \g@addto@macro\@authornotes{%
  1115 + \stepcounter{footnote}\footnotetext{#1}}%
  1116 + \fi}
  1117 +\newcommand\authornotemark[1][\relax]{%
  1118 + \ifx#1\relax\relax\relax
  1119 + \g@addto@macro\addresses{\@authornotemark}%
  1120 + \else
  1121 + \g@addto@macro\addresses{\@@authornotemark{#1}}%
  1122 + \fi}
  1123 +\def\acmVolume#1{\def\@acmVolume{#1}}
  1124 +\acmVolume{1}
  1125 +\def\acmNumber#1{\def\@acmNumber{#1}}
  1126 +\acmNumber{1}
  1127 +\def\acmArticle#1{\def\@acmArticle{#1}}
  1128 +\acmArticle{1}
  1129 +\def\acmArticleSeq#1{\def\@acmArticleSeq{#1}}
  1130 +\acmArticleSeq{\@acmArticle}
  1131 +\def\acmYear#1{\def\@acmYear{#1}}
  1132 +\acmYear{\the\year}
  1133 +\def\acmMonth#1{\def\@acmMonth{#1}}
  1134 +\acmMonth{\the\month}
  1135 +\def\@acmPubDate{\ifcase\@acmMonth\or
  1136 + January\or February\or March\or April\or May\or June\or
  1137 + July\or August\or September\or October\or November\or
  1138 + December\fi~\@acmYear}
  1139 +\def\acmPrice#1{\def\@acmPrice{#1}}
  1140 +\acmPrice{15.00}
  1141 +\def\acmSubmissionID#1{\def\@acmSubmissionID{#1}}
  1142 +\acmSubmissionID{}
  1143 +\def\acmISBN#1{\def\@acmISBN{#1}}
  1144 +\acmISBN{978-x-xxxx-xxxx-x/YY/MM}
  1145 +\def\acmDOI#1{\def\@acmDOI{#1}}
  1146 +\acmDOI{10.1145/nnnnnnn.nnnnnnn}
  1147 +\newif\if@ACM@badge
  1148 +\@ACM@badgefalse
  1149 +\newlength\@ACM@badge@width
  1150 +\setlength\@ACM@badge@width{5pc}
  1151 +\newlength\@ACM@title@width
  1152 +\newlength\@ACM@badge@skip
  1153 +\setlength\@ACM@badge@skip{1pc}
  1154 +\newcommand\acmBadgeR[2][]{\@ACM@badgetrue
  1155 + \def\@acmBadgeR@url{#1}%
  1156 + \def\@acmBadgeR@image{#2}}
  1157 +\def\@acmBadgeR@url{}
  1158 +\def\@acmBadgeR@image{}
  1159 +\newcommand\acmBadgeL[2][]{\@ACM@badgetrue
  1160 + \def\@acmBadgeL@url{#1}%
  1161 + \def\@acmBadgeL@image{#2}}
  1162 +\def\@acmBadgeL@url{}
  1163 +\def\@acmBadgeL@image{}
  1164 +\def\startPage#1{\def\@startPage{#1}}
  1165 +\startPage{}
  1166 +\def\terms#1{\ClassWarning{\@classname}{The command \string\terms{} is
  1167 + obsolete. I am going to ignore it}}
  1168 +\def\keywords#1{\def\@keywords{#1}}
  1169 +\keywords{}
  1170 +\renewenvironment{abstract}{\Collect@Body\@saveabstract}{}
  1171 +\long\def\@saveabstract#1{\long\gdef\@abstract{#1}}
  1172 +\@saveabstract{}
  1173 +\long\def\@lempty{}
  1174 +\define@boolkey+{@ACM@topmatter@}[@ACM@]{printccs}[true]{%
  1175 + \if@ACM@printccs
  1176 + \ClassInfo{\@classname}{Printing CCS}%
  1177 + \else
  1178 + \ClassInfo{\@classname}{Suppressing CCS}%
  1179 + \fi}{\ClassError{\@classname}{printccs must be true or false}}
  1180 +\define@boolkey+{@ACM@topmatter@}[@ACM@]{printacmref}[true]{%
  1181 + \if@ACM@printacmref
  1182 + \ClassInfo{\@classname}{Printing bibformat}%
  1183 + \else
  1184 + \ClassInfo{\@classname}{Suppressing bibformat}%
  1185 + \fi}{\ClassError{\@classname}{printacmref must be true or false}}
  1186 +\define@boolkey+{@ACM@topmatter@}[@ACM@]{printfolios}[true]{%
  1187 + \if@ACM@printfolios
  1188 + \ClassInfo{\@classname}{Printing folios}%
  1189 + \else
  1190 + \ClassInfo{\@classname}{Suppressing folios}%
  1191 + \fi}{\ClassError{\@classname}{printfolios must be true or false}}
  1192 +\define@cmdkey{@ACM@topmatter@}[@ACM@]{authorsperrow}[0]{%
  1193 + \IfInteger{#1}{\ClassInfo{\@classname}{Setting authorsperrow to
  1194 + #1}}{\ClassWarning{\@classname}{Parameter authorsperrow must be
  1195 + numerical. Ignoring the input #1}\gdef\@ACM@authorsperrow{0}}}
  1196 +\def\settopmatter#1{\setkeys{@ACM@topmatter@}{#1}}
  1197 +\settopmatter{printccs=true, printacmref=true}
  1198 +\if@ACM@manuscript
  1199 + \settopmatter{printfolios=true}
  1200 +\else
  1201 + \if@ACM@journal
  1202 + \settopmatter{printfolios=true}
  1203 + \else
  1204 + \settopmatter{printfolios=false}
  1205 + \fi
  1206 +\fi
  1207 +\settopmatter{authorsperrow=0}
  1208 +\def\@received{}
  1209 +\newcommand\received[2][]{\def\@tempa{#1}%
  1210 + \ifx\@tempa\@empty
  1211 + \ifx\@received\@empty
  1212 + \gdef\@received{Received #2}%
  1213 + \else
  1214 + \g@addto@macro{\@received}{; revised #2}%
  1215 + \fi
  1216 + \else
  1217 + \ifx\@received\@empty
  1218 + \gdef\@received{#1 #2}%
  1219 + \else
  1220 + \g@addto@macro{\@received}{; #1 #2}%
  1221 + \fi
  1222 + \fi}
  1223 +\AtEndDocument{%
  1224 + \ifx\@received\@empty\else
  1225 + \par\bigskip\noindent\small\normalfont\@received\par
  1226 + \fi}
  1227 +\RequirePackage{comment}
  1228 +\excludecomment{CCSXML}
  1229 +\let\@concepts\@empty
  1230 +\newcommand\ccsdesc[2][100]{%
  1231 + \ccsdesc@parse#1~#2~}
  1232 +\RequirePackage{textcomp}
  1233 +\def\ccsdesc@parse#1~#2~#3~{%
  1234 + \expandafter\ifx\csname CCS@#2\endcsname\relax
  1235 + \expandafter\gdef\csname CCS@#2\endcsname{\textbullet\ \textbf{#2} \textrightarrow\ }%
  1236 + \g@addto@macro{\@concepts}{\csname CCS@#2\endcsname}\fi
  1237 + \expandafter\g@addto@macro\expandafter{\csname CCS@#2\endcsname}{%
  1238 + \ifnum#1>499\textbf{#3}; \else
  1239 + \ifnum#1>299\textit{#3}; \else
  1240 + #3; \fi\fi}}
  1241 +\newif\if@printcopyright
  1242 +\@printcopyrighttrue
  1243 +\newif\if@printpermission
  1244 +\@printpermissiontrue
  1245 +\newif\if@acmowned
  1246 +\@acmownedtrue
  1247 +\define@choicekey*{ACM@}{acmcopyrightmode}[%
  1248 + \acm@copyrightinput\acm@copyrightmode]{none,acmcopyright,acmlicensed,%
  1249 + rightsretained,usgov,usgovmixed,cagov,cagovmixed,%
  1250 + licensedusgovmixed,licensedcagovmixed,othergov,licensedothergov}{%
  1251 + \@printpermissiontrue
  1252 + \@printcopyrighttrue
  1253 + \@acmownedtrue
  1254 + \ifnum\acm@copyrightmode=0\relax % none
  1255 + \@printpermissionfalse
  1256 + \@printcopyrightfalse
  1257 + \@acmownedfalse
  1258 + \fi
  1259 + \ifnum\acm@copyrightmode=2\relax % acmlicensed
  1260 + \@acmownedfalse
  1261 + \fi
  1262 + \ifnum\acm@copyrightmode=3\relax % rightsretained
  1263 + \@acmownedfalse
  1264 + \acmPrice{}%
  1265 + \fi
  1266 + \ifnum\acm@copyrightmode=4\relax % usgov
  1267 + \@printpermissiontrue
  1268 + \@printcopyrightfalse
  1269 + \@acmownedfalse
  1270 + \acmPrice{}%
  1271 + \fi
  1272 + \ifnum\acm@copyrightmode=6\relax % cagov
  1273 + \@acmownedfalse
  1274 + \fi
  1275 + \ifnum\acm@copyrightmode=8\relax % licensedusgovmixed
  1276 + \@acmownedfalse
  1277 + \fi
  1278 + \ifnum\acm@copyrightmode=9\relax % licensedcagovmixed
  1279 + \@acmownedfalse
  1280 + \fi
  1281 + \ifnum\acm@copyrightmode=10\relax % othergov
  1282 + \@acmownedtrue
  1283 + \fi
  1284 + \ifnum\acm@copyrightmode=11\relax % licensedothergov
  1285 + \@acmownedfalse
  1286 + \fi}
  1287 +\def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}}
  1288 +\setcopyright{acmcopyright}
  1289 +\def\@copyrightowner{%
  1290 + \ifcase\acm@copyrightmode\relax % none
  1291 + \or % acmcopyright
  1292 + Association for Computing Machinery.
  1293 + \or % acmlicensed
  1294 + Copyright held by the owner/author(s). Publication rights licensed to
  1295 + Association for Computing Machinery.
  1296 + \or % rightsretained
  1297 + Copyright held by the owner/author(s).
  1298 + \or % usgov
  1299 + \or % usgovmixed
  1300 + Association for Computing Machinery.
  1301 + \or % cagov
  1302 + Crown in Right of Canada.
  1303 + \or %cagovmixed
  1304 + Association for Computing Machinery.
  1305 + \or %licensedusgovmixed
  1306 + Copyright held by the owner/author(s). Publication rights licensed to
  1307 + Association for Computing Machinery.
  1308 + \or %licensedcagovmixed
  1309 + Copyright held by the owner/author(s). Publication rights licensed to
  1310 + Association for Computing Machinery.
  1311 + \or % othergov
  1312 + Association for Computing Machinery.
  1313 + \or % licensedothergov
  1314 + Copyright held by the owner/author(s). Publication rights licensed to
  1315 + Association for Computing Machinery.
  1316 + \fi}
  1317 +\def\@formatdoi#1{\url{https://doi.org/#1}}
  1318 +\def\@copyrightpermission{%
  1319 + \ifcase\acm@copyrightmode\relax % none
  1320 + \or % acmcopyright
  1321 + Permission to make digital or hard copies of all or part of this
  1322 + work for personal or classroom use is granted without fee provided
  1323 + that copies are not made or distributed for profit or commercial
  1324 + advantage and that copies bear this notice and the full citation on
  1325 + the first page. Copyrights for components of this work owned by
  1326 + others than ACM must be honored. Abstracting with credit is
  1327 + permitted. To copy otherwise, or republish, to post on servers or to
  1328 + redistribute to lists, requires prior specific permission
  1329 + and\hspace*{.5pt}/or a fee. Request permissions from
  1330 + permissions@acm.org.
  1331 + \or % acmlicensed
  1332 + Permission to make digital or hard copies of all or part of this
  1333 + work for personal or classroom use is granted without fee provided
  1334 + that copies are not made or distributed for profit or commercial
  1335 + advantage and that copies bear this notice and the full citation on
  1336 + the first page. Copyrights for components of this work owned by
  1337 + others than the author(s) must be honored. Abstracting with credit
  1338 + is permitted. To copy otherwise, or republish, to post on servers
  1339 + or to redistribute to lists, requires prior specific permission
  1340 + and\hspace*{.5pt}/or a fee. Request permissions from
  1341 + permissions@acm.org.
  1342 + \or % rightsretained
  1343 + Permission to make digital or hard copies of part or all of this work
  1344 + for personal or classroom use is granted without fee provided that
  1345 + copies are not made or distributed for profit or commercial advantage
  1346 + and that copies bear this notice and the full citation on the first
  1347 + page. Copyrights for third-party components of this work must be
  1348 + honored. For all other uses, contact the
  1349 + owner\hspace*{.5pt}/author(s).
  1350 + \or % usgov
  1351 + This paper is authored by an employee(s) of the United States
  1352 + Government and is in the public domain. Non-exclusive copying or
  1353 + redistribution is allowed, provided that the article citation is
  1354 + given and the authors and agency are clearly identified as its
  1355 + source.
  1356 + \or % usgovmixed
  1357 + ACM acknowledges that this contribution was authored or co-authored
  1358 + by an employee, or contractor of the national government. As such,
  1359 + the Government retains a nonexclusive, royalty-free right to
  1360 + publish or reproduce this article, or to allow others to do so, for
  1361 + Government purposes only. Permission to make digital or hard copies
  1362 + for personal or classroom use is granted. Copies must bear this
  1363 + notice and the full citation on the first page. Copyrights for
  1364 + components of this work owned by others than ACM must be
  1365 + honored. To copy otherwise, distribute, republish, or post,
  1366 + requires prior specific permission and\hspace*{.5pt}/or a
  1367 + fee. Request permissions from permissions@acm.org.
  1368 + \or % cagov
  1369 + This article was authored by employees of the Government of Canada.
  1370 + As such, the Canadian government retains all interest in the
  1371 + copyright to this work and grants to ACM a nonexclusive,
  1372 + royalty-free right to publish or reproduce this article, or to allow
  1373 + others to do so, provided that clear attribution is given both to
  1374 + the authors and the Canadian government agency employing them.
  1375 + Permission to make digital or hard copies for personal or classroom
  1376 + use is granted. Copies must bear this notice and the full citation
  1377 + on the first page. Copyrights for components of this work owned by
  1378 + others than the Canadain Government must be honored. To copy
  1379 + otherwise, distribute, republish, or post, requires prior specific
  1380 + permission and\hspace*{.5pt}/or a fee. Request permissions from
  1381 + permissions@acm.org.
  1382 + \or % cagovmixed
  1383 + ACM acknowledges that this contribution was co-authored by an
  1384 + affiliate of the national government of Canada. As such, the Crown
  1385 + in Right of Canada retains an equal interest in the copyright.
  1386 + Reprints must include clear attribution to ACM and the author's
  1387 + government agency affiliation. Permission to make digital or hard
  1388 + copies for personal or classroom use is granted. Copies must bear
  1389 + this notice and the full citation on the first page. Copyrights for
  1390 + components of this work owned by others than ACM must be honored.
  1391 + To copy otherwise, distribute, republish, or post, requires prior
  1392 + specific permission and\hspace*{.5pt}/or a fee. Request permissions
  1393 + from permissions@acm.org.
  1394 + \or % licensedusgovmixed
  1395 + Publication rights licensed to ACM\@. ACM acknowledges that this
  1396 + contribution was authored or co-authored by an employee, contractor
  1397 + or affiliate of the United States government. As such, the
  1398 + Government retains a nonexclusive, royalty-free right to publish or
  1399 + reproduce this article, or to allow others to do so, for Government
  1400 + purposes only.
  1401 + \or % licensedcagovmixed
  1402 + Publication rights licensed to ACM\@. ACM acknowledges that this
  1403 + contribution was authored or co-authored by an employee, contractor
  1404 + or affiliate of the national government of Canada. As such, the
  1405 + Government retains a nonexclusive, royalty-free right to publish or
  1406 + reproduce this article, or to allow others to do so, for Government
  1407 + purposes only.
  1408 + \or % othergov
  1409 + ACM acknowledges that this contribution was authored or co-authored
  1410 + by an employee, contractor or affiliate of a national government. As
  1411 + such, the Government retains a nonexclusive, royalty-free right to
  1412 + publish or reproduce this article, or to allow others to do so, for
  1413 + Government purposes only.
  1414 + \or % licensedothergov
  1415 + Publication rights licensed to ACM\@. ACM acknowledges that this
  1416 + contribution was authored or co-authored by an employee, contractor
  1417 + or affiliate of a national government. As such, the Government
  1418 + retains a nonexclusive, royalty-free right to publish or reproduce
  1419 + this article, or to allow others to do so, for Government purposes
  1420 + only.
  1421 + \fi}
  1422 +\def\copyrightyear#1{\def\@copyrightyear{#1}}
  1423 +\copyrightyear{\@acmYear}
  1424 +\def\@teaserfigures{}
  1425 +\newenvironment{teaserfigure}{\Collect@Body\@saveteaser}{}
  1426 +\long\def\@saveteaser#1{\g@addto@macro\@teaserfigures{\@teaser{#1}}}
  1427 +\renewcommand{\thanks}[1]{%
  1428 + \@ifnotempty{#1}{%
  1429 + \if@ACM@anonymous
  1430 + \g@addto@macro\thankses{\thanks{A note}}%
  1431 + \else
  1432 + \g@addto@macro\thankses{\thanks{#1}}%
  1433 + \fi}}
  1434 +\newbox\mktitle@bx
  1435 +\def\maketitle{%
  1436 + \if@ACM@anonymous
  1437 + % Anonymize omission of \author-s
  1438 + \ifnum\num@authorgroups=0\author{}\fi
  1439 + \fi
  1440 + \begingroup
  1441 + \let\@footnotemark\@footnotemark@nolink
  1442 + \let\@footnotetext\@footnotetext@nolink
  1443 + \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
  1444 + \global\@topnum\z@ % this prevents floats from falling
  1445 + % at the top of page 1
  1446 + \global\@botnum\z@ % we do not want them to be on bottom either
  1447 + \hsize=\textwidth
  1448 + \def\@makefnmark{\hbox{\@textsuperscript{\@thefnmark}}}%
  1449 + \@mktitle\if@ACM@sigchiamode\else\@mkauthors\fi\@mkteasers
  1450 + \@printtopmatter
  1451 + \if@ACM@sigchiamode\@mkauthors\fi
  1452 + \setcounter{footnote}{0}%
  1453 + \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}%
  1454 + \@titlenotes
  1455 + \@subtitlenotes
  1456 + \@authornotes
  1457 + \let\@makefnmark\relax \let\@thefnmark\relax
  1458 + \let\@makefntext\noindent
  1459 + \ifx\@empty\thankses\else
  1460 + \footnotetextcopyrightpermission{%
  1461 + \def\par{\let\par\@par}\parindent\z@\@setthanks}%
  1462 + \fi
  1463 + \footnotetextcopyrightpermission{%
  1464 + \if@ACM@authordraft
  1465 + \raisebox{-2ex}[\z@][\z@]{\makebox[0pt][l]{\large\bfseries
  1466 + Unpublished
  1467 + working draft. Not for distribution}}%
  1468 + \color[gray]{0.9}%
  1469 + \fi
  1470 + \parindent\z@\parskip0.1\baselineskip
  1471 + \if@ACM@authorversion\else
  1472 + \if@printpermission\@copyrightpermission\par\fi
  1473 + \fi
  1474 + \if@ACM@manuscript\else
  1475 + \if@ACM@journal\else % Print the conference information
  1476 + {\itshape \acmConference@shortname, \acmConference@date, \acmConference@venue}\par
  1477 + \fi
  1478 + \fi
  1479 + \if@printcopyright
  1480 + \copyright\ \@copyrightyear\ \@copyrightowner\\
  1481 + \else
  1482 + \@copyrightyear.\
  1483 + \fi
  1484 + \if@ACM@manuscript
  1485 + Manuscript submitted to ACM\\
  1486 + \else
  1487 + \if@ACM@authorversion
  1488 + This is the author's version of the work. It is posted here for
  1489 + your personal use. Not for redistribution. The definitive Version
  1490 + of Record was published in
  1491 + \if@ACM@journal
  1492 + \emph{\@journalName}%
  1493 + \else
  1494 + \emph{Proceedings of \acmConference@name, \acmConference@date}%
  1495 + \fi
  1496 + \ifx\@acmDOI\@empty
  1497 + .
  1498 + \else
  1499 + , \@formatdoi{\@acmDOI}.
  1500 + \fi\\
  1501 + \else
  1502 + \if@ACM@journal
  1503 + \@permissionCodeOne/\@acmYear/\@acmMonth-ART\@acmArticle
  1504 + \ifx\@acmPrice\@empty\else\ \$\@acmPrice\fi\\
  1505 + \@formatdoi{\@acmDOI}%
  1506 + \else % Conference
  1507 + ACM~ISBN~\@acmISBN
  1508 + \ifx\@acmPrice\@empty.\else\dots\$\@acmPrice\fi\\
  1509 + \@formatdoi{\@acmDOI}%
  1510 + \fi
  1511 + \fi
  1512 + \fi}
  1513 + \endgroup
  1514 + \setcounter{footnote}{0}%
  1515 + \@mkabstract
  1516 + \if@ACM@printccs
  1517 + \ifx\@concepts\@empty\else\bgroup
  1518 + {\@specialsection{CCS Concepts}%
  1519 + \@concepts\par}\egroup
  1520 + \fi
  1521 + \fi
  1522 + \ifx\@keywords\@empty\else\bgroup
  1523 + {\if@ACM@journal
  1524 + \@specialsection{Additional Key Words and Phrases}%
  1525 + \else
  1526 + \@specialsection{Keywords}%
  1527 + \fi
  1528 + \@keywords}\par\egroup
  1529 + \fi
  1530 + \andify\authors
  1531 + \andify\shortauthors
  1532 + \global\let\authors=\authors
  1533 + \global\let\shortauthors=\shortauthors
  1534 + \if@ACM@printacmref
  1535 + \@mkbibcitation
  1536 + \fi
  1537 + \hypersetup{pdfauthor={\authors},
  1538 + pdftitle={\@title}, pdfkeywords={\@concepts}}%
  1539 + \@printendtopmatter
  1540 + \@afterindentfalse
  1541 + \@afterheading
  1542 +}
  1543 +\def\@specialsection#1{%
  1544 + \ifcase\ACM@format@nr
  1545 + \relax % manuscript
  1546 + \par\medskip\small\noindent#1: %
  1547 + \or % acmsmall
  1548 + \par\medskip\small\noindent#1: %
  1549 + \or % acmlarge
  1550 + \par\medskip\small\noindent#1: %
  1551 + \or % acmtog
  1552 + \par\medskip\small\noindent#1: %
  1553 + \or % sigconf
  1554 + \section*{#1}%
  1555 + \or % siggraph
  1556 + \section*{#1}%
  1557 + \or % sigplan
  1558 + \paragraph*{#1}%
  1559 + \or % sigchi
  1560 + \section*{#1}%
  1561 + \or % sigchi-a
  1562 + \section*{#1}%
  1563 + \fi}
  1564 +\def\@printtopmatter{%
  1565 + \ifx\@startPage\@empty
  1566 + \gdef\@startPage{1}%
  1567 + \else
  1568 + \setcounter{page}{\@startPage}%
  1569 + \fi
  1570 + \thispagestyle{firstpagestyle}%
  1571 + \noindent
  1572 + \ifcase\ACM@format@nr
  1573 + \relax % manuscript
  1574 + \box\mktitle@bx\par
  1575 + \noindent\hrulefill\par
  1576 + \or % acmsmall
  1577 + \box\mktitle@bx\par
  1578 + \noindent\hrulefill\par
  1579 + \or % acmlarge
  1580 + \box\mktitle@bx\par
  1581 + \noindent\hrulefill\par
  1582 + \or % acmtog
  1583 + \twocolumn[\box\mktitle@bx]%
  1584 + \or % sigconf
  1585 + \twocolumn[\box\mktitle@bx]%
  1586 + \or % siggraph
  1587 + \twocolumn[\box\mktitle@bx]%
  1588 + \or % sigplan
  1589 + \twocolumn[\box\mktitle@bx]%
  1590 + \or % sigchi
  1591 + \twocolumn[\box\mktitle@bx]%
  1592 + \or % sigchi-a
  1593 + \par\box\mktitle@bx\par\bigskip
  1594 + \if@ACM@badge
  1595 + \marginpar{\noindent
  1596 + \ifx\@acmBadgeL@image\@empty\else
  1597 + \href{\@acmBadgeL@url}{%
  1598 + \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}%
  1599 + \hskip\@ACM@badge@skip
  1600 + \fi
  1601 + \ifx\@acmBadgeR@image\@empty\else
  1602 + \href{\@acmBadgeR@url}{%
  1603 + \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}%
  1604 + \fi}%
  1605 + \fi
  1606 + \fi
  1607 +}
  1608 +\def\@mktitle{%
  1609 + \ifcase\ACM@format@nr
  1610 + \relax % manuscript
  1611 + \@mktitle@i
  1612 + \or % acmsmall
  1613 + \@mktitle@i
  1614 + \or % acmlarge
  1615 + \@mktitle@i
  1616 + \or % acmtog
  1617 + \@mktitle@i
  1618 + \or % sigconf
  1619 + \@mktitle@iii
  1620 + \or % siggraph
  1621 + \@mktitle@iii
  1622 + \or % sigplan
  1623 + \@mktitle@iii
  1624 + \or % sigchi
  1625 + \@mktitle@iii
  1626 + \or % sigchi-a
  1627 + \@mktitle@iv
  1628 + \fi
  1629 +}
  1630 +\def\@titlefont{%
  1631 + \ifcase\ACM@format@nr
  1632 + \relax % manuscript
  1633 + \LARGE\bfseries\sffamily
  1634 + \or % acmsmall
  1635 + \LARGE\bfseries\sffamily
  1636 + \or % acmlarge
  1637 + \LARGE\bfseries\sffamily
  1638 + \or % acmtog
  1639 + \Huge\sffamily
  1640 + \or % sigconf
  1641 + \Huge\sffamily\bfseries
  1642 + \or % siggraph
  1643 + \Huge\sffamily\bfseries
  1644 + \or % sigplan
  1645 + \Huge\bfseries
  1646 + \or % sigchi
  1647 + \Huge\sffamily\bfseries
  1648 + \or % sigchi-a
  1649 + \Huge\bfseries
  1650 + \fi}
  1651 +\def\@subtitlefont{\normalsize
  1652 + \ifcase\ACM@format@nr
  1653 + \relax % manuscript
  1654 + \mdseries
  1655 + \or % acmsmall
  1656 + \mdseries
  1657 + \or % acmlarge
  1658 + \mdseries
  1659 + \or % acmtog
  1660 + \LARGE
  1661 + \or % sigconf
  1662 + \LARGE\mdseries
  1663 + \or % siggraph
  1664 + \LARGE\mdseries
  1665 + \or % sigplan
  1666 + \LARGE\mdseries
  1667 + \or % sigchi
  1668 + \LARGE\mdseries
  1669 + \or % sigchi-a
  1670 + \mdseries
  1671 + \fi}
  1672 +\def\@mktitle@i{\hsize=\textwidth
  1673 + \@ACM@title@width=\hsize
  1674 + \ifx\@acmBadgeL@image\@empty\else
  1675 + \advance\@ACM@title@width by -\@ACM@badge@width
  1676 + \advance\@ACM@title@width by -\@ACM@badge@skip
  1677 + \fi
  1678 + \ifx\@acmBadgeR@image\@empty\else
  1679 + \advance\@ACM@title@width by -\@ACM@badge@width
  1680 + \advance\@ACM@title@width by -\@ACM@badge@skip
  1681 + \fi
  1682 + \setbox\mktitle@bx=\vbox{\noindent\@titlefont
  1683 + \ifx\@acmBadgeL@image\@empty\else
  1684 + \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{%
  1685 + \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}%
  1686 + \hskip\@ACM@badge@skip
  1687 + \fi
  1688 + \parbox[t]{\@ACM@title@width}{\raggedright
  1689 + \@titlefont\noindent
  1690 + \@title
  1691 + \ifx\@subtitle\@empty\else
  1692 + \par\noindent{\@subtitlefont\@subtitle}
  1693 + \fi}%
  1694 + \ifx\@acmBadgeR@image\@empty\else
  1695 + \hskip\@ACM@badge@skip
  1696 + \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{%
  1697 + \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}%
  1698 + \fi
  1699 + \par\bigskip}}%
  1700 +\def\@mktitle@iii{\hsize=\textwidth
  1701 + \setbox\mktitle@bx=\vbox{\@titlefont\centering
  1702 + \@ACM@title@width=\hsize
  1703 + \if@ACM@badge
  1704 + \advance\@ACM@title@width by -2\@ACM@badge@width
  1705 + \advance\@ACM@title@width by -2\@ACM@badge@skip
  1706 + \parbox[b]{\@ACM@badge@width}{\strut
  1707 + \ifx\@acmBadgeL@image\@empty\else
  1708 + \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeL@url}{%
  1709 + \includegraphics[width=\@ACM@badge@width]{\@acmBadgeL@image}}}%
  1710 + \fi}%
  1711 + \hskip\@ACM@badge@skip
  1712 + \fi
  1713 + \parbox[t]{\@ACM@title@width}{\centering\@titlefont
  1714 + \@title
  1715 + \ifx\@subtitle\@empty\else
  1716 + \par\noindent{\@subtitlefont\@subtitle}
  1717 + \fi
  1718 + }%
  1719 + \if@ACM@badge
  1720 + \hskip\@ACM@badge@skip
  1721 + \parbox[b]{\@ACM@badge@width}{\strut
  1722 + \ifx\@acmBadgeR@image\@empty\else
  1723 + \raisebox{-.5\baselineskip}[\z@][\z@]{\href{\@acmBadgeR@url}{%
  1724 + \includegraphics[width=\@ACM@badge@width]{\@acmBadgeR@image}}}%
  1725 + \fi}%
  1726 + \fi
  1727 + \par\bigskip}}%
  1728 +\def\@mktitle@iv{\hsize=\textwidth
  1729 + \setbox\mktitle@bx=\vbox{\raggedright\leftskip5pc\@titlefont
  1730 + \noindent\leavevmode\leaders\hrule height 2pt\hfill\kern0pt\par
  1731 + \noindent\@title
  1732 + \ifx\@subtitle\@empty\else
  1733 + \par\noindent\@subtitlefont\@subtitle
  1734 + \fi
  1735 + \par\bigskip}}%
  1736 +\newbox\@ACM@commabox
  1737 +\def\@ACM@addtoaddress#1{%
  1738 + \ifvmode\else
  1739 + \if@ACM@affiliation@obeypunctuation\else
  1740 + \setbox\@ACM@commabox=\hbox{, }%
  1741 + \unskip\cleaders\copy\@ACM@commabox\hskip\wd\@ACM@commabox
  1742 + \fi\fi
  1743 + #1}
  1744 +\if@ACM@journal
  1745 + \let\position\@gobble
  1746 + \def\institution#1{#1\ignorespaces}%
  1747 + \newcommand\department[2][0]{}%
  1748 + \let\streetaddress\@gobble
  1749 + \let\city\@gobble
  1750 + \let\state\@gobble
  1751 + \let\postcode\@gobble
  1752 + \let\country\@gobble
  1753 +\else
  1754 + \def\position#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
  1755 + \def\institution#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
  1756 + \newcommand\department[2][0]{\if@ACM@affiliation@obeypunctuation
  1757 + #2\else#2\par\fi}%
  1758 + \def\streetaddress#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
  1759 + \let\city\@ACM@addtoaddress
  1760 + \let\state\@ACM@addtoaddress
  1761 + \def\postcode#1{\if@ACM@affiliation@obeypunctuation#1\else\unskip\space#1\fi}%
  1762 + \let\country\@ACM@addtoaddress
  1763 +\fi
  1764 +\def\@mkauthors{\begingroup
  1765 + \hsize=\textwidth
  1766 + \ifcase\ACM@format@nr
  1767 + \relax % manuscript
  1768 + \@mkauthors@i
  1769 + \or % acmsmall
  1770 + \@mkauthors@i
  1771 + \or % acmlarge
  1772 + \@mkauthors@i
  1773 + \or % acmtog
  1774 + \@mkauthors@i
  1775 + \or % sigconf
  1776 + \@mkauthors@iii
  1777 + \or % siggraph
  1778 + \@mkauthors@iii
  1779 + \or % sigplan
  1780 + \@mkauthors@iii
  1781 + \or % sigchi
  1782 + \@mkauthors@iii
  1783 + \or % sigchi-a
  1784 + \@mkauthors@iv
  1785 + \fi
  1786 + \endgroup
  1787 +}
  1788 +\def\@authorfont{\Large\sffamily}
  1789 +\def\@affiliationfont{\normalsize\normalfont}
  1790 +\ifcase\ACM@format@nr
  1791 +\relax % manuscript
  1792 +\or % acmsmall
  1793 + \def\@authorfont{\large\sffamily}
  1794 + \def\@affiliationfont{\small\normalfont}
  1795 +\or % acmlarge
  1796 +\or % acmtog
  1797 + \def\@authorfont{\LARGE\sffamily}
  1798 + \def\@affiliationfont{\large}
  1799 +\or % sigconf
  1800 + \def\@authorfont{\LARGE}
  1801 + \def\@affiliationfont{\large}
  1802 +\or % siggraph
  1803 + \def\@authorfont{\normalsize\normalfont}
  1804 + \def\@affiliationfont{\normalsize\normalfont}
  1805 +\or % sigplan
  1806 + \def\@authorfont{\Large\normalfont}
  1807 + \def\@affiliationfont{\normalsize\normalfont}
  1808 +\or % sigchi
  1809 + \def\@authorfont{\bfseries}
  1810 + \def\@affiliationfont{\mdseries}
  1811 +\or % sigchi-a
  1812 + \def\@authorfont{\bfseries}
  1813 + \def\@affiliationfont{\mdseries}
  1814 +\fi
  1815 +\def\@typeset@author@line{%
  1816 + \andify\@currentauthors\par\noindent
  1817 + \@currentauthors\def\@currentauthors{}%
  1818 + \ifx\@currentaffiliations\@empty\else
  1819 + \andify\@currentaffiliations
  1820 + \unskip, {\@currentaffiliations}\par
  1821 + \fi
  1822 + \def\@currentaffiliations{}}
  1823 +\def\@mkauthors@i{%
  1824 + \def\@currentauthors{}%
  1825 + \def\@currentaffiliations{}%
  1826 + \global\let\and\@typeset@author@line
  1827 + \def\@author##1{%
  1828 + \ifx\@currentauthors\@empty
  1829 + \gdef\@currentauthors{\@authorfont\MakeUppercase{##1}}%
  1830 + \else
  1831 + \g@addto@macro{\@currentauthors}{\and\MakeUppercase{##1}}%
  1832 + \fi
  1833 + \gdef\and{}}%
  1834 + \def\email##1##2{}%
  1835 + \def\affiliation##1##2{%
  1836 + \def\@tempa{##2}\ifx\@tempa\@empty\else
  1837 + \ifx\@currentaffiliations\@empty
  1838 + \gdef\@currentaffiliations{%
  1839 + \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
  1840 + \setkeys{@ACM@affiliation@}{##1}%
  1841 + \@affiliationfont##2}%
  1842 + \else
  1843 + \g@addto@macro{\@currentaffiliations}{\and
  1844 + \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
  1845 + \setkeys{@ACM@affiliation@}{##1}##2}%
  1846 + \fi
  1847 + \fi
  1848 + \global\let\and\@typeset@author@line}%
  1849 + \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par\medskip
  1850 + \noindent\addresses\@typeset@author@line
  1851 + \par\medskip}%
  1852 +}
  1853 +\newbox\author@bx
  1854 +\newdimen\author@bx@wd
  1855 +\newskip\author@bx@sep
  1856 +\author@bx@sep=1pc\relax
  1857 +\def\@typeset@author@bx{\bgroup\hsize=\author@bx@wd\def\and{\par}%
  1858 + \global\setbox\author@bx=\vtop{\if@ACM@sigchiamode\else\centering\fi
  1859 + \@authorfont\@currentauthors\par\@affiliationfont
  1860 + \@currentaffiliation}\egroup
  1861 + \box\author@bx\hspace{\author@bx@sep}%
  1862 + \gdef\@currentauthors{}%
  1863 + \gdef\@currentaffiliation{}}
  1864 +\def\@mkauthors@iii{%
  1865 + \author@bx@wd=\textwidth\relax
  1866 + \advance\author@bx@wd by -\author@bx@sep\relax
  1867 + \ifnum\@ACM@authorsperrow>0\relax
  1868 + \divide\author@bx@wd by \@ACM@authorsperrow\relax
  1869 + \else
  1870 + \ifcase\num@authorgroups
  1871 + \relax % 0?
  1872 + \or % 1=one author per row
  1873 + \or % 2=two authors per row
  1874 + \divide\author@bx@wd by \num@authorgroups\relax
  1875 + \or % 3=three authors per row
  1876 + \divide\author@bx@wd by \num@authorgroups\relax
  1877 + \or % 4=two authors per row (!)
  1878 + \divide\author@bx@wd by 2\relax
  1879 + \else % three authors per row
  1880 + \divide\author@bx@wd by 3\relax
  1881 + \fi
  1882 + \fi
  1883 + \advance\author@bx@wd by -\author@bx@sep\relax
  1884 + \gdef\@currentauthors{}%
  1885 + \gdef\@currentaffiliation{}%
  1886 + \def\@author##1{\ifx\@currentauthors\@empty
  1887 + \gdef\@currentauthors{\par##1}%
  1888 + \else
  1889 + \g@addto@macro\@currentauthors{\par##1}%
  1890 + \fi
  1891 + \gdef\and{}}%
  1892 + \def\email##1##2{\ifx\@currentaffiliation\@empty
  1893 + \gdef\@currentaffiliation{\nolinkurl{##2}}%
  1894 + \else
  1895 + \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}%
  1896 + \fi}%
  1897 + \def\affiliation##1##2{\ifx\@currentaffiliation\@empty
  1898 + \gdef\@currentaffiliation{%
  1899 + \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
  1900 + \setkeys{@ACM@affiliation@}{##1}##2}%
  1901 + \else
  1902 + \g@addto@macro\@currentaffiliation{\par
  1903 + \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
  1904 + \setkeys{@ACM@affiliation@}{##1}##2}%
  1905 + \fi
  1906 + \global\let\and\@typeset@author@bx
  1907 +}%
  1908 + \hsize=\textwidth
  1909 + \global\setbox\mktitle@bx=\vbox{\noindent
  1910 + \box\mktitle@bx\par\medskip\leavevmode
  1911 + \lineskip=1pc\relax\centering\hspace*{-1em}%
  1912 + \addresses\let\and\@typeset@author@bx\and\par\bigskip}}
  1913 +\def\@mkauthors@iv{%
  1914 + \author@bx@wd=\columnwidth\relax
  1915 + \advance\author@bx@wd by -\author@bx@sep\relax
  1916 + \ifnum\@ACM@authorsperrow>0\relax
  1917 + \divide\author@bx@wd by \@ACM@authorsperrow\relax
  1918 + \else
  1919 + \ifcase\num@authorgroups
  1920 + \relax % 0?
  1921 + \or % 1=one author per row
  1922 + \else % 2=two authors per row
  1923 + \divide\author@bx@wd by 2\relax
  1924 + \fi
  1925 + \fi
  1926 + \advance\author@bx@wd by -\author@bx@sep\relax
  1927 + \gdef\@currentauthors{}%
  1928 + \gdef\@currentaffiliation{}%
  1929 + \def\@author##1{\ifx\@currentauthors\@empty
  1930 + \gdef\@currentauthors{\par##1}%
  1931 + \else
  1932 + \g@addto@macro\@currentauthors{\par##1}%
  1933 + \fi
  1934 + \gdef\and{}}%
  1935 + \def\email##1##2{\ifx\@currentaffiliation\@empty
  1936 + \gdef\@currentaffiliation{\nolinkurl{##2}}%
  1937 + \else
  1938 + \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}%
  1939 + \fi}%
  1940 + \def\affiliation##1##2{\ifx\@currentaffiliation\@empty
  1941 + \gdef\@currentaffiliation{%
  1942 + \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
  1943 + \setkeys{@ACM@affiliation@}{##1}##2}%
  1944 + \else
  1945 + \g@addto@macro\@currentaffiliation{\par
  1946 + \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
  1947 + \setkeys{@ACM@affiliation@}{##1}##2}%
  1948 + \fi
  1949 + \global\let\and\@typeset@author@bx}%
  1950 + \bgroup\hsize=\columnwidth
  1951 + \par\raggedright\leftskip=\z@
  1952 + \lineskip=1pc\noindent
  1953 + \addresses\let\and\@typeset@author@bx\and\par\bigskip\egroup}
  1954 +\def\@authornotemark{\g@addto@macro\@currentauthors{\footnotemark\relax}}
  1955 +\def\@@authornotemark#1{\g@addto@macro\@currentauthors{\footnotemark[#1]}}
  1956 +\def\@mkteasers{%
  1957 + \ifx\@teaserfigures\@empty\else
  1958 + \def\@teaser##1{\par\bigskip\bgroup
  1959 + \captionsetup{type=figure}##1\egroup\par}
  1960 + \global\setbox\mktitle@bx=\vbox{\noindent\box\mktitle@bx\par
  1961 + \noindent\@teaserfigures\par\medskip}%
  1962 + \fi}
  1963 +\def\@setaddresses{}
  1964 +\def\@mkabstract{\bgroup
  1965 + \ifx\@abstract\@lempty\else
  1966 + {\phantomsection\addcontentsline{toc}{section}{Abstract}%
  1967 + \if@ACM@journal
  1968 + \small\noindent
  1969 + \else
  1970 + \section*{Abstract}%
  1971 + \fi
  1972 + \ignorespaces\@abstract\par}%
  1973 + \fi\egroup}
  1974 +\def\@mkbibcitation{\bgroup
  1975 + \def\footnotemark{}%
  1976 + \def\\{\unskip{} \ignorespaces}%
  1977 + \def\footnote{\ClassError{\@classname}{Please do note use footnotes
  1978 + inside \string\title{} or \string\author{} command! Use
  1979 + \string\titlenote{} or \string\authornote{} instead!}}%
  1980 + \par\medskip\small\noindent{\bfseries ACM Reference format:}\par\nobreak
  1981 + \noindent\authors. \@acmYear. \@title.
  1982 + \if@ACM@journal
  1983 + \textit{\@journalNameShort}
  1984 + \@acmVolume, \@acmNumber, Article~\@acmArticle\ (\@acmPubDate),
  1985 + \ref{TotPages}~pages.
  1986 + \else
  1987 + In \textit{Proceedings of \acmConference@name, \acmConference@venue,
  1988 + \acmConference@date
  1989 + \ifx\acmConference@name\acmConference@shortname\else
  1990 + \ (\acmConference@shortname)\fi
  1991 + ,} \ref{TotPages}~pages.
  1992 + \fi\par
  1993 + \noindent\@formatdoi{\@acmDOI}
  1994 +\par\egroup}
  1995 +\def\@printendtopmatter{\par\medskip
  1996 + \ifcase\ACM@format@nr
  1997 + \relax % manuscript
  1998 + \noindent\hrulefill\par\medskip
  1999 + \or % acmsmall
  2000 + \noindent\hrulefill\par\medskip
  2001 + \or % acmlarge
  2002 + \noindent\hrulefill\par\medskip
  2003 + \or % acmtog
  2004 + \par\bigskip
  2005 + \or % sigconf
  2006 + \par\bigskip
  2007 + \or % siggraph
  2008 + \par\bigskip
  2009 + \or % sigplan
  2010 + \par\bigskip
  2011 + \or % sigchi
  2012 + \par\bigskip
  2013 + \or % sigchi-a
  2014 + \fi
  2015 +}
  2016 +\def\@setthanks{\long\def\thanks##1{\par##1\@addpunct.}\thankses}
  2017 +\RequirePackage{fancyhdr}
  2018 +\if@ACM@review
  2019 + \newsavebox{\ACM@linecount@bx}
  2020 + \newlength\ACM@linecount@bxht
  2021 + \newcount\ACM@linecount
  2022 + \ACM@linecount\@ne\relax
  2023 + \def\ACM@mk@linecount{%
  2024 + \savebox{\ACM@linecount@bx}[4em][t]{\parbox[t]{4em}{%
  2025 + \setlength{\ACM@linecount@bxht}{-\baselineskip}%
  2026 + \loop{\color{ACMRed}\scriptsize\the\ACM@linecount}\\
  2027 + \global\advance\ACM@linecount by \@ne
  2028 + \addtolength{\ACM@linecount@bxht}{\baselineskip}%
  2029 + \ifdim\ACM@linecount@bxht<\textheight\repeat}}}
  2030 +\fi
  2031 +\def\ACM@linecountL{%
  2032 + \if@ACM@review
  2033 + \ACM@mk@linecount
  2034 + \begin{picture}(0,0)%
  2035 + \put(-26,-22){\usebox{\ACM@linecount@bx}}%
  2036 + \end{picture}%
  2037 + \fi}
  2038 +\def\ACM@linecountR{%
  2039 + \if@ACM@review
  2040 + \ACM@mk@linecount
  2041 + \begin{picture}(0,0)%
  2042 + \put(20,-22){\usebox{\ACM@linecount@bx}}%
  2043 + \end{picture}%
  2044 + \fi}
  2045 +\if@ACM@timestamp
  2046 + % Subtracting 30 from \time gives us the effect of rounding-down despite
  2047 + % \numexpr rounding to nearest
  2048 + \newcounter{ACM@time@hours}
  2049 + \setcounter{ACM@time@hours}{\numexpr (\time - 30) / 60 \relax}
  2050 + \newcounter{ACM@time@minutes}
  2051 + \setcounter{ACM@time@minutes}{\numexpr \time - \theACM@time@hours * 60 \relax}
  2052 + \newcommand\ACM@timestamp{%
  2053 + \footnotesize%
  2054 + \the\year-\two@digits{\the\month}-\two@digits{\the\day}{ }%
  2055 + \two@digits{\theACM@time@hours}:\two@digits{\theACM@time@minutes}{ }%
  2056 + page~\thepage\ (pp. \@startPage-\pageref*{TotPages})%
  2057 + \ifx\@acmSubmissionID\@empty\relax\else
  2058 + ~Submission~ID: \@acmSubmissionID
  2059 + \fi
  2060 + }
  2061 +\fi
  2062 +\def\@shortauthors{\if@ACM@anonymous Anon.\else\shortauthors\fi}
  2063 +\def\@headfootfont{%
  2064 + \ifcase\ACM@format@nr
  2065 + \relax % manuscript
  2066 + \sffamily
  2067 + \or % acmsmall
  2068 + \sffamily
  2069 + \or % acmlarge
  2070 + \sffamily
  2071 + \or % acmtog
  2072 + \sffamily
  2073 + \or % sigconf
  2074 + \sffamily
  2075 + \or % siggraph
  2076 + \sffamily
  2077 + \or % sigplan
  2078 + \sffamily
  2079 + \or % sigchi
  2080 + \sffamily
  2081 + \or % sigchi-a
  2082 + \sffamily
  2083 + \fi}
  2084 +\fancypagestyle{standardpagestyle}{%
  2085 + \fancyhf{}%
  2086 + \renewcommand{\headrulewidth}{\z@}%
  2087 + \renewcommand{\footrulewidth}{\z@}%
  2088 + \ifcase\ACM@format@nr
  2089 + \relax % manuscript
  2090 + \fancyhead[LE]{\ACM@linecountL\if@ACM@printfolios\thepage\fi}%
  2091 + \fancyhead[RO]{\if@ACM@printfolios\thepage\fi}%
  2092 + \fancyhead[RE]{\@shortauthors}%
  2093 + \fancyhead[LO]{\ACM@linecountL\shorttitle}%
  2094 + \fancyfoot[RO,LE]{\footnotesize Manuscript submitted to ACM}%
  2095 + \or % acmsmall
  2096 + \fancyhead[LE]{\ACM@linecountL\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}%
  2097 + \fancyhead[RO]{\@headfootfont\@acmArticle\if@ACM@printfolios:\thepage\fi}%
  2098 + \fancyhead[RE]{\@headfootfont\@shortauthors}%
  2099 + \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}%
  2100 + \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
  2101 + \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}%
  2102 + \or % acmlarge
  2103 + \fancyhead[LE]{\ACM@linecountL\@headfootfont
  2104 + \@acmArticle\if@ACM@printfolios:\thepage\fi\quad\textbullet\quad\@shortauthors}%
  2105 + \fancyhead[LO]{\ACM@linecountL}%
  2106 + \fancyhead[RO]{\@headfootfont
  2107 + \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi}%
  2108 + \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
  2109 + \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}%
  2110 + \or % acmtog
  2111 + \fancyhead[LE]{\ACM@linecountL\@headfootfont
  2112 + \@acmArticle\if@ACM@printfolios:\thepage\fi\quad\textbullet\quad\@shortauthors}%
  2113 + \fancyhead[LO]{\ACM@linecountL}%
  2114 + \fancyhead[RE]{\ACM@linecountR}%
  2115 + \fancyhead[RO]{\@headfootfont
  2116 + \shorttitle\quad\textbullet\quad\@acmArticle\if@ACM@printfolios:\thepage\fi\ACM@linecountR}%
  2117 + \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
  2118 + \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}%
  2119 + \else % Proceedings
  2120 + \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
  2121 + \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}%
  2122 + \fancyhead[RE]{\@headfootfont\@shortauthors\ACM@linecountR}%
  2123 + \fancyhead[LE]{\ACM@linecountL\@headfootfont\acmConference@shortname,
  2124 + \acmConference@date, \acmConference@venue}%
  2125 + \fancyhead[RO]{\@headfootfont\acmConference@shortname,
  2126 + \acmConference@date, \acmConference@venue\ACM@linecountR}%
  2127 + \fi
  2128 + \if@ACM@sigchiamode
  2129 + \fancyheadoffset[L]{\dimexpr(\marginparsep+\marginparwidth)}%
  2130 + \fi
  2131 + \if@ACM@timestamp
  2132 + \fancyfoot[LO,RE]{\ACM@timestamp}
  2133 + \fi
  2134 +}
  2135 +\pagestyle{standardpagestyle}
  2136 +\newdimen\@folio@wd
  2137 +\@folio@wd=\z@
  2138 +\newdimen\@folio@ht
  2139 +\@folio@ht=\z@
  2140 +\newdimen\@folio@voffset
  2141 +\@folio@voffset=\z@
  2142 +\def\@folio@max{1}
  2143 +\ifcase\ACM@format@nr
  2144 +\relax % manuscript
  2145 +\or % acmsmall
  2146 + \@folio@wd=45.75pt\relax
  2147 + \@folio@ht=1.25in\relax
  2148 + \@folio@voffset=.2in\relax
  2149 + \def\@folio@max{8}
  2150 +\or % acmlarge
  2151 + \@folio@wd=43.25pt\relax
  2152 + \@folio@ht=79pt\relax
  2153 + \@folio@voffset=.55in\relax
  2154 + \def\@folio@max{10}
  2155 +\fi
  2156 +\def\@folioblob{\@tempcnta=\@acmArticleSeq\relax
  2157 + \loop
  2158 + \ifnum\@tempcnta>\@folio@max\relax
  2159 + \advance\@tempcnta by - \@folio@max
  2160 + \repeat
  2161 + \advance\@tempcnta by -1\relax
  2162 + \@tempdima=\@folio@ht\relax
  2163 + \multiply\@tempdima by \the\@tempcnta\relax
  2164 + \advance\@tempdima by -\@folio@voffset\relax
  2165 + \begin{picture}(0,0)
  2166 + \makebox[\z@]{\raisebox{-\@tempdima}{%
  2167 + \rlap{%
  2168 + \raisebox{-0.45\@folio@ht}[\z@][\z@]{%
  2169 + \rule{\@folio@wd}{\@folio@ht}}}%
  2170 + \parbox{\@folio@wd}{%
  2171 + \centering
  2172 + \textcolor{white}{\LARGE\bfseries\sffamily\@acmArticle}}}}
  2173 + \end{picture}}
  2174 +
  2175 +\fancypagestyle{firstpagestyle}{%
  2176 + \fancyhf{}%
  2177 + \renewcommand{\headrulewidth}{\z@}%
  2178 + \renewcommand{\footrulewidth}{\z@}%
  2179 + \ifcase\ACM@format@nr
  2180 + \relax % manuscript
  2181 + \fancyhead[L]{\ACM@linecountL}%
  2182 + \fancyfoot[RO,LE]{\if@ACM@printfolios\small\thepage\fi}%
  2183 + \fancyfoot[RE,LO]{\footnotesize Manuscript submitted to ACM}%
  2184 + \or % acmsmall
  2185 + \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
  2186 + \@acmNumber, Article \@acmArticle. Publication date:
  2187 + \@acmPubDate.}%
  2188 + \fancyhead[LE]{\ACM@linecountL\@folioblob}%
  2189 + \fancyhead[LO]{\ACM@linecountL}%
  2190 + \fancyhead[RO]{\@folioblob}%
  2191 + \fancyheadoffset[RO,LE]{0.6\@folio@wd}%
  2192 + \or % acmlarge
  2193 + \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
  2194 + \@acmNumber, Article \@acmArticle. Publication date:
  2195 + \@acmPubDate.}%
  2196 + \fancyhead[RO]{\@folioblob}%
  2197 + \fancyhead[LE]{\ACM@linecountL\@folioblob}%
  2198 + \fancyhead[LO]{\ACM@linecountL}%
  2199 + \fancyheadoffset[RO,LE]{1.4\@folio@wd}%
  2200 + \or % acmtog
  2201 + \fancyfoot[RO,LE]{\footnotesize \@journalName, Vol. \@acmVolume, No.
  2202 + \@acmNumber, Article \@acmArticle. Publication date:
  2203 + \@acmPubDate.}%
  2204 + \fancyhead[L]{\ACM@linecountL}%
  2205 + \fancyhead[R]{\ACM@linecountR}%
  2206 + \else % Conference proceedings
  2207 + \fancyhead[L]{\ACM@linecountL}%
  2208 + \fancyhead[R]{\ACM@linecountR}%
  2209 + \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
  2210 + \fi
  2211 + \if@ACM@timestamp
  2212 + \ifnum\ACM@format@nr=0\relax % Manuscript
  2213 + \fancyfoot[LO,RE]{\ACM@timestamp\quad
  2214 + \footnotesize Manuscript submitted to ACM}
  2215 + \else
  2216 + \fancyfoot[LO,RE]{\ACM@timestamp}
  2217 + \fi
  2218 + \fi
  2219 +}
  2220 +\renewcommand\section{\@startsection{section}{1}{\z@}%
  2221 + {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
  2222 + {.25\baselineskip}%
  2223 + {\@secfont}}
  2224 +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
  2225 + {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
  2226 + {.25\baselineskip}%
  2227 + {\@subsecfont}}
  2228 +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{10pt}%
  2229 + {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
  2230 + {-3.5\p@}%
  2231 + {\@subsubsecfont\@adddotafter}}
  2232 +\renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}%
  2233 + {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
  2234 + {-3.5\p@}%
  2235 + {\@parfont\@adddotafter}}
  2236 +\renewcommand\part{\@startsection{part}{9}{\z@}%
  2237 + {-10\p@ \@plus -4\p@ \@minus -2\p@}%
  2238 + {4\p@}%
  2239 + {\@parfont}}
  2240 +\def\section@raggedright{\@rightskip\@flushglue
  2241 + \rightskip\@rightskip
  2242 + \leftskip\z@skip
  2243 + \parindent\z@}
  2244 +\def\@secfont{\sffamily\bfseries\section@raggedright\MakeUppercase}
  2245 +\def\@subsecfont{\sffamily\bfseries\section@raggedright}
  2246 +\def\@subsubsecfont{\sffamily\itshape}
  2247 +\def\@parfont{\itshape}
  2248 +\setcounter{secnumdepth}{3}
  2249 +\ifcase\ACM@format@nr
  2250 +\relax % manuscript
  2251 +\or % acmsmall
  2252 +\or % acmlarge
  2253 + \def\@secfont{\sffamily\large\section@raggedright\MakeUppercase}
  2254 + \def\@subsecfont{\sffamily\large\section@raggedright}
  2255 +\or % acmtog
  2256 + \def\@secfont{\sffamily\large\section@raggedright\MakeUppercase}
  2257 + \def\@subsecfont{\sffamily\large\section@raggedright}
  2258 +\or % sigconf
  2259 + \def\@secfont{\bfseries\Large\section@raggedright\MakeUppercase}
  2260 + \def\@subsecfont{\bfseries\Large\section@raggedright}
  2261 +\or % siggraph
  2262 + \def\@secfont{\bfseries\sffamily\Large\section@raggedright\MakeUppercase}
  2263 + \def\@subsecfont{\bfseries\sffamily\Large\section@raggedright}
  2264 +\or % sigplan
  2265 + \def\@secfont{\bfseries\Large\section@raggedright}
  2266 + \def\@subsecfont{\bfseries\section@raggedright}
  2267 + \renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
  2268 + {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
  2269 + {.25\baselineskip}%
  2270 + {\@subsubsecfont}}
  2271 + \def\@subsubsecfont{\bfseries\section@raggedright}
  2272 + \renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
  2273 + {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
  2274 + {-3.5\p@}%
  2275 + {\@parfont\@addspaceafter}}
  2276 + \def\@parfont{\bfseries\itshape}
  2277 + \renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}%
  2278 + {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
  2279 + {-3.5\p@}%
  2280 + {\@subparfont\@addspaceafter}}
  2281 + \def\@subparfont{\itshape}
  2282 +\or % sigchi
  2283 + \setcounter{secnumdepth}{1}
  2284 + \def\@secfont{\bfseries\sffamily\section@raggedright\MakeUppercase}
  2285 + \def\@subsecfont{\bfseries\sffamily\section@raggedright}
  2286 +\or % sigchi-a
  2287 + \setcounter{secnumdepth}{0}
  2288 + \def\@secfont{\bfseries\sffamily\section@raggedright\MakeUppercase}
  2289 + \def\@subsecfont{\bfseries\sffamily\section@raggedright}
  2290 +\fi
  2291 +\def\@adddotafter#1{#1\@addpunct{.}}
  2292 +\def\@addspaceafter#1{#1\@addpunct{\enspace}}
  2293 +\providecommand*\@dotsep{4.5}
  2294 +\def\@acmplainbodyfont{\itshape}
  2295 +\def\@acmplainindent{\parindent}
  2296 +\def\@acmplainheadfont{\scshape}
  2297 +\def\@acmplainnotefont{\@empty}
  2298 +\ifcase\ACM@format@nr
  2299 +\relax % manuscript
  2300 +\or % acmsmall
  2301 +\or % acmlarge
  2302 +\or % acmtog
  2303 +\or % sigconf
  2304 +\or % siggraph
  2305 +\or % sigplan
  2306 + \def\@acmplainbodyfont{\itshape}
  2307 + \def\@acmplainindent{\z@}
  2308 + \def\@acmplainheadfont{\bfseries}
  2309 + \def\@acmplainnotefont{\normalfont}
  2310 +\or % sigchi
  2311 +\or % sigchi-a
  2312 +\fi
  2313 +\newtheoremstyle{acmplain}%
  2314 + {.5\baselineskip\@plus.2\baselineskip
  2315 + \@minus.2\baselineskip}% space above
  2316 + {.5\baselineskip\@plus.2\baselineskip
  2317 + \@minus.2\baselineskip}% space below
  2318 + {\@acmplainbodyfont}% body font
  2319 + {\@acmplainindent}% indent amount
  2320 + {\@acmplainheadfont}% head font
  2321 + {.}% punctuation after head
  2322 + {.5em}% spacing after head
  2323 + {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmplainnotefont(#3)}}}% head spec
  2324 +\def\@acmdefinitionbodyfont{\normalfont}
  2325 +\def\@acmdefinitionindent{\parindent}
  2326 +\def\@acmdefinitionheadfont{\itshape}
  2327 +\def\@acmdefinitionnotefont{\@empty}
  2328 +\ifcase\ACM@format@nr
  2329 +\relax % manuscript
  2330 +\or % acmsmall
  2331 +\or % acmlarge
  2332 +\or % acmtog
  2333 +\or % sigconf
  2334 +\or % siggraph
  2335 +\or % sigplan
  2336 + \def\@acmdefinitionbodyfont{\normalfont}
  2337 + \def\@acmdefinitionindent{\z@}
  2338 + \def\@acmdefinitionheadfont{\bfseries}
  2339 + \def\@acmdefinitionnotefont{\normalfont}
  2340 +\or % sigchi
  2341 +\or % sigchi-a
  2342 +\fi
  2343 +\newtheoremstyle{acmdefinition}%
  2344 + {.5\baselineskip\@plus.2\baselineskip
  2345 + \@minus.2\baselineskip}% space above
  2346 + {.5\baselineskip\@plus.2\baselineskip
  2347 + \@minus.2\baselineskip}% space below
  2348 + {\@acmdefinitionbodyfont}% body font
  2349 + {\@acmdefinitionindent}% indent amount
  2350 + {\@acmdefinitionheadfont}% head font
  2351 + {.}% punctuation after head
  2352 + {.5em}% spacing after head
  2353 + {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmdefinitionnotefont(#3)}}}% head spec
  2354 +\theoremstyle{acmplain}
  2355 +\newtheorem{theorem}{Theorem}[section]
  2356 +\newtheorem{conjecture}[theorem]{Conjecture}
  2357 +\newtheorem{proposition}[theorem]{Proposition}
  2358 +\newtheorem{lemma}[theorem]{Lemma}
  2359 +\newtheorem{corollary}[theorem]{Corollary}
  2360 +\theoremstyle{acmdefinition}
  2361 +\newtheorem{example}[theorem]{Example}
  2362 +\newtheorem{definition}[theorem]{Definition}
  2363 +\theoremstyle{acmplain}
  2364 +\def\@proofnamefont{\scshape}
  2365 +\def\@proofindent{\indent}
  2366 +\ifcase\ACM@format@nr
  2367 +\relax % manuscript
  2368 +\or % acmsmall
  2369 +\or % acmlarge
  2370 +\or % acmtog
  2371 +\or % sigconf
  2372 +\or % siggraph
  2373 +\or % sigplan
  2374 + \def\@proofnamefont{\itshape}
  2375 + \def\@proofindent{\noindent}
  2376 +\or % sigchi
  2377 +\or % sigchi-a
  2378 +\fi
  2379 +\renewenvironment{proof}[1][\proofname]{\par
  2380 + \pushQED{\qed}%
  2381 + \normalfont \topsep6\p@\@plus6\p@\relax
  2382 + \trivlist
  2383 + \item[\@proofindent\hskip\labelsep
  2384 + {\@proofnamefont #1\@addpunct{.}}]\ignorespaces
  2385 +}{%
  2386 + \popQED\endtrivlist\@endpefalse
  2387 +}
  2388 +\specialcomment{acks}{%
  2389 + \begingroup
  2390 + \section*{Acknowledgments}
  2391 + \phantomsection\addcontentsline{toc}{section}{Acknowledgments}
  2392 +}{%
  2393 + \endgroup
  2394 +}
  2395 +\def\grantsponsor#1#2#3{#2}
  2396 +\newcommand\grantnum[3][]{#3%
  2397 + \def\@tempa{#1}\ifx\@tempa\@empty\else\space(\url{#1})\fi}
  2398 +\if@ACM@screen
  2399 + \includecomment{screenonly}
  2400 + \excludecomment{printonly}
  2401 +\else
  2402 + \excludecomment{screenonly}
  2403 + \includecomment{printonly}
  2404 +\fi
  2405 +\if@ACM@anonymous
  2406 + \excludecomment{anonsuppress}
  2407 + \excludecomment{acks}
  2408 +\else
  2409 + \includecomment{anonsuppress}
  2410 +\fi
  2411 +\newcommand\showeprint[2][arxiv]{%
  2412 + \def\@tempa{#1}%
  2413 + \ifx\@tempa\@empty\def\@tempa{arxiv}\fi
  2414 + \def\@tempb{arxiv}%
  2415 + \ifx\@tempa\@tempb
  2416 + arXiv:\href{http://arxiv.org/abs/#2}{#2}\else arXiv:#2%
  2417 + \fi}
  2418 +\normalsize\normalfont\frenchspacing
  2419 +\endinput
  2420 +%%
  2421 +%% End of file `acmart.cls'.
  2422 +
... ...
icse2018/iftex.sty 0 → 100644
... ... @@ -0,0 +1,98 @@
  1 +%%
  2 +%% This is file `iftex.sty',
  3 +
  4 +%%
  5 +%% __________________________________
  6 +%% Copyright © 2010–2013 Persian TeX Group
  7 +%%
  8 +%% License information appended.
  9 +%%
  10 +%%
  11 +\csname iftexloaded\endcsname
  12 +\let\iftexloaded\endinput
  13 +\expandafter\ifx\csname ProvidesPackage\endcsname\relax\else
  14 + \ProvidesPackage{iftex}
  15 + [2013/04/04 v0.2 Provides if(tex) conditional for PDFTeX, XeTeX, and LuaTeX]
  16 +\fi
  17 +\def\RequirePDFTeX{%
  18 + \ifPDFTeX\else
  19 + \begingroup
  20 + \errorcontextlines=-1\relax
  21 + \newlinechar=10\relax
  22 + \errmessage{^^J
  23 + ********************************************^^J
  24 + * PDFTeX is required to compile this document.^^J
  25 + * Sorry!^^J
  26 + ********************************************}%
  27 + \endgroup
  28 + \fi}
  29 +\def\RequireXeTeX{%
  30 + \ifXeTeX\else
  31 + \begingroup
  32 + \errorcontextlines=-1\relax
  33 + \newlinechar=10\relax
  34 + \errmessage{^^J
  35 + ********************************************^^J
  36 + * XeTeX is required to compile this document.^^J
  37 + * Sorry!^^J
  38 + ********************************************}%
  39 + \endgroup
  40 + \fi}
  41 +\def\RequireLuaTeX{%
  42 + \ifLuaTeX\else
  43 + \begingroup
  44 + \errorcontextlines=-1\relax
  45 + \newlinechar=10\relax
  46 + \errmessage{^^J
  47 + ********************************************^^J
  48 + * LuaTeX is required to compile this document.^^J
  49 + * Sorry!^^J
  50 + ********************************************}%
  51 + \endgroup
  52 + \fi}
  53 +\expandafter\ifx\csname ifPDFTeX\endcsname\relax\else
  54 + \expandafter\endinput
  55 +\fi
  56 +\expandafter\ifx\csname ifXeTeX\endcsname\relax\else
  57 + \expandafter\endinput
  58 +\fi
  59 +\expandafter\ifx\csname ifLuaTeX\endcsname\relax\else
  60 + \expandafter\endinput
  61 +\fi
  62 +\newif\ifPDFTeX
  63 +\begingroup\expandafter\expandafter\expandafter\endgroup
  64 +\expandafter\ifx\csname pdfmatch\endcsname\relax
  65 + \PDFTeXfalse
  66 +\else
  67 + \PDFTeXtrue
  68 +\fi
  69 +\newif\ifXeTeX
  70 +\begingroup\expandafter\expandafter\expandafter\endgroup
  71 +\expandafter\ifx\csname XeTeXinterchartoks\endcsname\relax
  72 + \XeTeXfalse
  73 +\else
  74 + \XeTeXtrue
  75 +\fi
  76 +\newif\ifLuaTeX
  77 +\begingroup\expandafter\expandafter\expandafter\endgroup
  78 +\expandafter\ifx\csname directlua\endcsname\relax
  79 + \LuaTeXfalse
  80 +\else
  81 + \LuaTeXtrue
  82 +\fi
  83 +%%
  84 +%% Copyright © 2010–2013 by Persian TeX Group <persian-tex@tug.org>
  85 +%%
  86 +%% Distributable under the LaTeX Project Public License,
  87 +%% version 1.3c or higher (your choice). The latest version of
  88 +%% this license is at: http://www.latex-project.org/lppl.txt
  89 +%%
  90 +%% This work is "maintained" (as per LPPL maintenance status)
  91 +%% by Persian TeX Group.
  92 +%%
  93 +%%
  94 +%%
  95 +%%
  96 +%%
  97 +%% End of file `iftex.sty'.
  98 +
... ...