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