diff --git a/ACM-JRC/.gitignore b/ACM-JRC/.gitignore
new file mode 100644
index 0000000..a39596f
--- /dev/null
+++ b/ACM-JRC/.gitignore
@@ -0,0 +1,34 @@
+acmart.cls
+acmart.pdf
+acmguide.pdf
+samples/sample-*.pdf
+*.log
+*.aux
+*.cfg
+*.glo
+*.idx
+*.toc
+*.ilg
+*.ind
+*.out
+*.lof
+*.lot
+*.bbl
+*.blg
+*.gls
+*.cut
+*.hd
+*.dvi
+*.ps
+*.thm
+*.tgz
+*.zip
+*.rpi
+*~
+*.bcf
+*.run.xml
+samples/ACM-Reference-Format.bst
+samples/*.tex
+samples/*.bbx
+samples/*.cbx
+samples/*.dbx
\ No newline at end of file
diff --git a/ACM-JRC/Bibliography.bib b/ACM-JRC/Bibliography.bib
new file mode 100644
index 0000000..033540f
--- /dev/null
+++ b/ACM-JRC/Bibliography.bib
@@ -0,0 +1,1815 @@
+@article{AG-Analysis-Data-Knowledge,
+ title={Survey of Attack Graph Analysis Methods From the Perspective of Data and Knowledge Processing},
+ author={Jianping Zeng and Shuang Wu and Yanyu Chen and Rui Zeng and Chengrong Wu},
+ journal={Security Communications Networks},
+ year={2019},
+ volume={2019},
+ pages={2031063:1-2031063:16}
+}
+
+@article{AG-Analysis-Explan,
+ title = {Attack Graph Analysis: An Explanatory Guide},
+ journal = "Computers \& Security",
+ volume = {126},
+ pages = {103081},
+ year = {2023},
+ issn = {0167-4048},
+ doi = {https://doi.org/10.1016/j.cose.2022.103081},
+ url = {https://www.sciencedirect.com/science/article/pii/S0167404822004734},
+ author = {Kengo Zenitani}
+}
+
+@incollection{jajodia_topological_2005,
+ address = {Boston, MA},
+ title = {Topological {Analysis} of {Network} {Attack} {Vulnerability}},
+ isbn = {978-0-387-24230-9},
+ url = {https://doi.org/10.1007/0-387-24230-9{\_}9},
+ booktitle = {Managing {Cyber} {Threats}: {Issues}, {Approaches}, and {Challenges}},
+ publisher = {Springer US},
+ author = {Jajodia, Sushil and Noel, Steven and O'Berry, Brian},
+ editor = {Kumar, Vipin and Srivastava, Jaideep and Lazarevic, Aleksandar},
+ year = {2005},
+ doi = {10.1007/0-387-24230-9{\_}9},
+ pages = {247--266}
+}
+
+@inproceedings{cao_assessing_2018,
+ address = {Cham},
+ title = {Assessing {Attack} {Impact} on {Business} {Processes} by {Interconnecting} {Attack} {Graphs} and {Entity} {Dependency} {Graphs}},
+ isbn = {978-3-319-95729-6},
+ booktitle = {Data and {Applications} {Security} and {Privacy} {XXXII}},
+ publisher = {Springer International Publishing},
+ author = {Cao, Chen and Yuan, Lun-Pin and Singhal, Anoop and Liu, Peng and Sun, Xiaoyan and Zhu, Sencun},
+ editor = {Kerschbaum, Florian and Paraboschi, Stefano},
+ year = {2018},
+ pages = {330--348},
+}
+
+@ARTICLE{8470942,
+ author={Husák, Martin and Komárková, Jana and Bou-Harb, Elias and Čeleda, Pavel},
+ journal={IEEE Communications Surveys \& Tutorials},
+ title={{Survey of Attack Projection, Prediction, and Forecasting in Cyber Security}},
+ year={2019},
+ volume={21},
+ number={1},
+ pages={640-660},
+ doi={10.1109/COMST.2018.2871866}
+}
+
+@misc{noauthor_health_1996,
+ title = {Health {Insurance} {Portability} and {Accountability} {Act} of 1996},
+ note = {Pub. L. No. 104-191. 1996 [Online]. Available: https://www.govinfo.gov/content/pkg/PLAW-104publ191/html/PLAW-104publ191.htm},
+}
+
+@misc{PCI,
+ title = {Payment {Card} {Industry} {(PCI)} {Data} {Security} {Standard}},
+ note = {{Available: https://www.pcisecuritystandards.org/documents/PCI{\_}DSS{\_}v3-2-1.pdf}},
+ month = {May},
+ year = {2018},
+ author = {{PCI Security Standards Council}}
+}
+
+@misc{fincen,
+ title={{Financial Crimes Enforcement Network, Title 31 U.S.C. 310}},
+ year={2010},
+ note={{Available: https://www.govinfo.gov/content/pkg/USCODE-2010-title31/html/USCODE-2010-title31-subtitleI-chap3-subchapI-sec310.htm}},
+}
+
+@misc{fdaqsr,
+ title = {Quality System Regulations},
+ year = {1996},
+ note = {Federal Register: Volume 61, Number 195. 1996 [Online]. Available: https://www.fda.gov/science-research/clinical-trials-and-human-subject-protection/quality-system-regulations},
+ author = {{Food and Drug Administration}}
+}
+
+@misc{nerccip,
+ title = {Critical Infrastructure Protection Reliability Standard CIP},
+ year = {2020},
+ note = {85 FR 8161. 2020 [Online]. Available: https://www.federalregister.gov/documents/2020/02/13/2020-02173/critical-infrastructure-protection-reliability-standard-cip-012-1-cyber-security-communications},
+ author = {{Federal Energy Regulatory Commission}}
+}
+
+
+@article{centrality_causal,
+ title = {Node Centrality Measures Are a Poor Substitute for Causal Inference},
+ volume = {9},
+ issn = {6846},
+ doi = {10.1038/s41598-019-43033-9},
+ journal = {Scientific Reports},
+ author = {Dablander, Fabian and Hinne, Max},
+ year = {2019},
+}
+
+@inproceedings{Mieghem2018DirectedGA,
+ title={Directed Graphs and Mysterious Complex Eigenvalues},
+ author={Piet Van Mieghem},
+ year={2018},
+ note={{Delft University of Technology.}}
+}
+
+@article{Guo2017HermitianAM,
+ title={{Hermitian Adjacency Matrix of Digraphs and Mixed Graphs}},
+ author={Krystal Guo and Bojan Mohar},
+ journal={Journal of Graph Theory},
+ year={2017},
+ volume={85}
+}
+
+@article{Brualdi2010SpectraOD,
+ title={{Spectra of Digraphs}},
+ author={Richard A. Brualdi},
+ journal={Linear Algebra and Its Applications},
+ year={2010},
+ volume={432},
+ pages={2181-2213}
+}
+
+@article {PMID:30064421,
+ title = {A Systematic Survey of Centrality Measures for Protein-Protein Interaction Networks},
+ Author = {Ashtiani, Minoo and Salehzadeh-Yazdi, Ali and Razaghi-Moghadam, Zahra and Hennig, Holger and Wolkenhauer, Olaf and Mirzaie, Mehdi and Jafari, Mohieddin},
+ DOI = {10.1186/s12918-018-0598-2},
+ Number = {1},
+ Volume = {12},
+ Month = {July},
+ Year = {2018},
+ Journal = {{BMC Systems Biology}},
+ ISSN = {1752-0509},
+ Pages = {80},
+ URL = {https://europepmc.org/articles/PMC6069823},
+}
+
+@Article{Katz,
+ author={Leo Katz},
+ title={{A New Status Index Derived From Sociometric Analysis}},
+ journal={Psychometrika},
+ year=1953,
+ volume={18},
+ number={1},
+ pages={39-43},
+ month={March},
+ keywords={},
+ doi={10.1007/BF02289026},
+ abstract={No abstract is available for this item.},
+ url={https://ideas.repec.org/a/spr/psycho/v18y1953i1p39-43.html}
+}
+
+@article{ModKatz,
+ title={Katz Centrality of Markovian Temporal Networks: Analysis and Optimization},
+ author={Masaki Ogura and Victor M. Preciado},
+ journal={2017 American Control Conference (ACC)},
+ year={2017},
+ pages={5001-5006}
+}
+
+@book{newman2010networks,
+ title={Networks: An Introduction},
+ author={Newman, M.E.J.},
+ isbn={9780191594175},
+ url={https://books.google.com/books?id=sgSlvgEACAAJ},
+ year={2010},
+ publisher={Oxford University Press}
+}
+
+@article{K_Path_Edge,
+ doi = {10.1016/j.knosys.2012.01.007},
+ url = {https://doi.org/10.1016{\%}2Fj.knosys.2012.01.007},
+ year = 2012,
+ month = {jun},
+ publisher = {Elsevier {BV}},
+ volume = {30},
+ pages = {136--150},
+ author = {Pasquale De Meo and Emilio Ferrara and Giacomo Fiumara and Angela Ricciardello},
+ title = {A Novel Measure of Edge Centrality in Social Networks},
+ journal = {Knowledge-Based Systems}
+}
+
+@article{Adapted_PageRank,
+ title={An Algorithm for Ranking the Nodes of an Urban Network Based on the Concept of PageRank Vector},
+ author={Taras Agryzkov and Jos{\'e} Luis Oliver and Leandro Tortosa and Jos{\'e}-Francisco Vicent},
+ journal={Appl. Math. Comput.},
+ year={2012},
+ volume={219},
+ pages={2186-2193}
+}
+
+@article{PageRank,
+ title = {The Anatomy of a Large-Scale Hypertextual Web Search Engine},
+ journal = {Computer Networks and ISDN Systems},
+ volume = {30},
+ number = {1},
+ pages = {107-117},
+ year = {1998},
+ note = {Proceedings of the Seventh International World Wide Web Conference},
+ issn = {0169-7552},
+ doi = {https://doi.org/10.1016/S0169-7552(98)00110-X},
+ url = {https://www.sciencedirect.com/science/article/pii/S016975529800110X},
+ author = {Sergey Brin and Lawrence Page},
+ keywords = {World Wide Web, Search engines, Information retrieval, PageRank, Google},
+ abstract = {In this paper, we present Google, a prototype of a large-scale search engine which makes heavy use of the structure present in hypertext. Google is designed to crawl and index the Web efficiently and produce much more satisfying search results than existing systems. The prototype with a full text and hyperlink database of at least 24 million pages is available at http://google.stanford.edu/ To engineer a search engine is a challenging task. Search engines index tens to hundreds of millions of Web pages involving a comparable number of distinct terms. They answer tens of millions of queries every day. Despite the importance of large-scale search engines on the Web, very little academic research has been done on them. Furthermore, due to rapid advance in technology and Web proliferation, creating a Web search engine today is very different from three years ago. This paper provides an in-depth description of our large-scale Web search engine — the first such detailed public description we know of to date. Apart from the problems of scaling traditional search techniques to data of this magnitude, there are new technical challenges involved with using the additional information present in hypertext to produce better search results. This paper addresses this question of how to build a practical large-scale system which can exploit the additional information present in hypertext. Also we look at the problem of how to effectively deal with uncontrolled hypertext collections where anyone can publish anything they want.}
+}
+
+@article{PageRank_Survey,
+ author = { Pavel Berkhin },
+ title = {A Survey on PageRank Computing},
+ journal = {Internet Mathematics},
+ volume = {2},
+ number = {1},
+ pages = {73-120},
+ year = {2005},
+ publisher = "Taylor \& Francis",
+ doi = {10.1080/15427951.2005.10129098},
+ URL = {https://doi.org/10.1080/15427951.2005.10129098},
+ eprint = {https://doi.org/10.1080/15427951.2005.10129098}
+}
+
+@inproceedings{dominance,
+ author = {Prosser, Reese T.},
+ title = {Applications of Boolean Matrices to the Analysis of Flow Diagrams},
+ year = {1959},
+ isbn = {9781450378680},
+ publisher = {Association for Computing Machinery},
+ address = {New York, NY, USA},
+ url = {https://doi.org/10.1145/1460299.1460314},
+ doi = {10.1145/1460299.1460314},
+ abstract = {Any serious attempt at automatic programming of large-scale digital computing machines must provide for some sort of analysis of program structure. Questions concerning order of operations, location and disposition of transfers, identification of subroutines, internal consistency, redundancy and equivalence, all involve a knowledge of the structure of the program under study, and must be handled effectively by any automatic programming system.},
+ booktitle = {Papers Presented at the December 1-3, 1959, Eastern Joint IRE-AIEE-ACM Computer Conference},
+ pages = {133–138},
+ numpages = {6},
+ location = {Boston, Massachusetts},
+ series = {IRE-AIEE-ACM '59 (Eastern)}
+}
+
+@article{10.1145/3491257,
+ author = {Li, Ming and Hawrylak, Peter and Hale, John},
+ title = {Strategies for Practical Hybrid Attack Graph Generation and Analysis},
+ year = {2021},
+ publisher = {Association for Computing Machinery},
+ address = {New York, NY, USA},
+ issn = {2692-1626},
+ url = {https://doi.org/10.1145/3491257},
+ doi = {10.1145/3491257},
+ abstract = {As an analytical tool in cyber-security, an attack graph (AG) is capable of discovering multi-stage attack vectors on target computer networks. Cyber-physical systems (CPSs) comprise a special type of network that not only contains computing devices but also integrates components that operate in the continuous domain, such as sensors and actuators. Using AGs on CPSs requires that the system models and exploit patterns capture both token- and real-valued information. In this paper, we describe a hybrid AG model for security analysis of CPSs and computer networks. Specifically, we focus on two issues related to applying the model in practice: efficient hybrid AG generation and techniques for information extraction from them. To address the first issue, we present an accelerated hybrid AG generator that employs parallel programming and high performance computing (HPC). We conduct performance tests on CPU and GPU platforms to characterize the efficiency of our parallel algorithms. To address the second issue, we introduce an analytical regimen based on centrality analysis and apply it to a hybrid AG generated for a target CPS system to discover effective vulnerability remediation solutions.},
+ journal = {Digital Threats},
+ month = {Oct},
+ keywords = {attack graph, breadth-first search, cyber-physical system, high performance computing}
+}
+
+@article{ZENITANI2023103081,
+ title = {Attack Graph Analysis: An Explanatory Guide},
+ journal = "Computers \& Security",
+ volume = {126},
+ pages = {103081},
+ year = {2023},
+ issn = {0167-4048},
+ doi = {https://doi.org/10.1016/j.cose.2022.103081},
+ url = {https://www.sciencedirect.com/science/article/pii/S0167404822004734},
+ author = {Kengo Zenitani},
+ keywords = {Attack graph, Exploit dependency graph, Cycle handling, Network security metrics, Network hardening, Bayesian attack graph},
+ abstract = {Attack graph analysis is a model-based approach for network-security analysis. It analyzes a directed graph called an attack graph. Usually, each node in it corresponds to a malicious event caused by attackers, and the edges correspond to the causal relations between events. We can obtain an attack graph from the network topology, its configuration, and the distribution of vulnerabilities. An attack graph gives us various information relevant to network security. Also, there are several relevant algorithms to find desirable security controls applicable to the network. Over twenty years of research have made much progress in this field. However, it comprises a breadth of definitions and discussions, and it is difficult for people new to this field to comprehend the key ideas. This article aims to briefly introduce this method to prospective researchers by summarizing their progress by selecting and reviewing foundational studies. We elaborate on the essential concepts, such as exploit dependency, AND/OR graph, monotonicity, and cycle handling.}
+}
+
+@article{Zeng2019SurveyOA,
+ title={Survey of Attack Graph Analysis Methods From the Perspective of Data and Knowledge Processing},
+ author={Jianping Zeng and Shuang Wu and Yanyu Chen and Rui Zeng and Chengrong Wu},
+ journal={Secur. Commun. Networks},
+ year={2019},
+ volume={2019},
+ pages={2031063:1-2031063:16}
+}
+
+@phdthesis{ming_diss,
+ author = {Li, Ming and Hawrylak, Peter and Hale, John},
+ title = "A System for Attack Graph Generation and Analysis",
+ school = "The University of Tulsa",
+ year = "2021",
+ type = "{PhD} dissertation",
+ address = "Tulsa, OK",
+}
+
+@phdthesis{noah_ths,
+ author = {Schrick, Noah and Hawrylak, Peter},
+ title = "Compliance Graph Generation Techniques and Parallel Computing Implementations Using Message-Passing Interfaces",
+ school = "The University of Tulsa",
+ year = "2022",
+ type = "{MS} thesis",
+ address = "Tulsa, OK",
+}
+
+@article{MO2019121538,
+ title = {Identifying Node Importance Based on Evidence Theory in Complex Networks},
+ journal = {Physica A: Statistical Mechanics and Its Applications},
+ volume = {529},
+ pages = {121538},
+ year = {2019},
+ issn = {0378-4371},
+ doi = {https://doi.org/10.1016/j.physa.2019.121538},
+ url = {https://www.sciencedirect.com/science/article/pii/S0378437119309021},
+ author = {Hongming Mo and Yong Deng},
+ keywords = {Complex networks, Important nodes, Evidence theory, Multi-evidence centrality, Comprehensive measure},
+}
+
+@article{LI2018512,
+ title = {Identification of Influential Spreaders Based on Classified Neighbors in Real-World Complex Networks},
+ journal = {Applied Mathematics and Computation},
+ volume = {320},
+ pages = {512-523},
+ year = {2018},
+ issn = {0096-3003},
+ doi = {https://doi.org/10.1016/j.amc.2017.10.001},
+ url = {https://www.sciencedirect.com/science/article/pii/S0096300317306884},
+ author = {Chao Li and Li Wang and Shiwen Sun and Chengyi Xia},
+ keywords = {Influential spreaders, Identification algorithms, Classified neighbors, Complex networks},
+}
+
+
+@Article{sym11020284,
+ AUTHOR = {Agryzkov, Taras and Curado, Manuel and Pedroche, Francisco and Tortosa, Leandro and Vicent, José F.},
+ title = {Extending the Adapted PageRank Algorithm Centrality to Multiplex Networks With Data Using the PageRank Two-Layer Approach},
+ JOURNAL = {Symmetry},
+ VOLUME = {11},
+ YEAR = {2019},
+ NUMBER = {2},
+ ARTICLE-NUMBER = {284},
+ URL = {https://www.mdpi.com/2073-8994/11/2/284},
+ ISSN = {2073-8994},
+ ABSTRACT = {Usually, the nodes’ interactions in many complex networks need a more accurate mapping than simple links. For instance, in social networks, it may be possible to consider different relationships between people. This implies the use of different layers where the nodes are preserved and the relationships are diverse, that is, multiplex networks or biplex networks, for two layers. One major issue in complex networks is the centrality, which aims to classify the most relevant elements in a given system. One of these classic measures of centrality is based on the PageRank classification vector used initially in the Google search engine to order web pages. The PageRank model may be understood as a two-layer network where one layer represents the topology of the network and the other layer is related to teleportation between the nodes. This approach may be extended to define a centrality index for multiplex networks based on the PageRank vector concept. On the other hand, the adapted PageRank algorithm (APA) centrality constitutes a model to obtain the importance of the nodes in a spatial network with the presence of data (both real and virtual). Following the idea of the two-layer approach for PageRank centrality, we can consider the APA centrality under the perspective of a two-layer network where, on the one hand, we keep maintaining the layer of the topological connections of the nodes and, on the other hand, we consider a data layer associated with the network. Following a similar reasoning, we are able to extend the APA model to spatial networks with different layers. The aim of this paper is to propose a centrality measure for biplex networks that extends the adapted PageRank algorithm centrality for spatial networks with data to the PageRank two-layer approach. Finally, we show an example where the ability to analyze data referring to a group of people from different aspects and using different sets of independent data are revealed.},
+ DOI = {10.3390/sym11020284}
+}
+
+@article{10.1093/bioinformatics/bty965,
+ author = {Parvandeh, Saeid and McKinney, Brett A},
+ title = "{EpistasisRank and EpistasisKatz: interaction network centrality methods that integrate prior knowledge networks}",
+ journal = {Bioinformatics},
+ volume = {35},
+ number = {13},
+ pages = {2329-2331},
+ year = {2018},
+ month = {11},
+ abstract = "{An important challenge in gene expression analysis is to improve hub gene selection to enrich for biological relevance or improve classification accuracy for a given phenotype. In order to incorporate phenotypic context into co-expression, we recently developed an epistasis-expression network centrality method that blends the importance of gene–gene interactions (epistasis) and main effects of genes. Further blending of prior knowledge from functional interactions has the potential to enrich for relevant genes and stabilize classification.We develop two new expression-epistasis centrality methods that incorporate interaction prior knowledge. The first extends our SNPrank (EpistasisRank) method by incorporating a gene-wise prior knowledge vector. This prior knowledge vector informs the centrality algorithm of the inclination of a gene to be involved in interactions by incorporating functional interaction information from the Integrative Multi-species Prediction database. The second method extends Katz centrality to expression-epistasis networks (EpistasisKatz), extends the Katz bias to be a gene-wise vector of main effects and extends the Katz attenuation constant prefactor to be a prior-knowledge vector for interactions. Using independent microarray studies of major depressive disorder, we find that including prior knowledge in network centrality feature selection stabilizes the training classification and reduces over-fitting.Methods and examples provided at https://github.com/insilico/Rinbix and https://github.com/insilico/PriorKnowledgeEpistasisRank.Supplementary data are available at Bioinformatics online.}",
+ issn = {1367-4803},
+ doi = {10.1093/bioinformatics/bty965},
+ url = {https://doi.org/10.1093/bioinformatics/bty965},
+ eprint = {https://academic.oup.com/bioinformatics/article-pdf/35/13/2329/36613945/bioinformatics\{\_}35\{\_}13\{\_}2329.pdf},
+}
+
+@article{li_combining_2019,
+ title = {Combining {OpenCL} and {MPI} to Support Heterogeneous Computing on a Cluster},
+ issn = {9781450372275},
+ doi = {10.1145/3332186.3333059},
+ abstract = {This paper presents an implementation of a heterogeneous programming model which combines Open Computing Language (OpenCL) and Message Passing Interface (MPI). The model is applied to solving a Markov decision process (MDP) with value iteration method. The performance test is conducted on a high performance computing cluster. At peak performance, the model is able to achieve a 57X speedup over a serial implementation. For an extremely large input MDP, which has 1,000,000 states, the obtained speedup is still over 12X, showing that this heterogeneous programming model can solve MDPs more efficiently than the serial solver does.},
+ journal = {ACM International Conference Proceeding Series},
+ author = {Li, Ming and Hawrylak, Peter and Hale, John},
+ year = {2019},
+ keywords = {Heterogeneous computing, HPC, MDP, MPI, OpenCL, Parallelism},
+ file = {Combining OpenCL and MPI to Support Heterogeneous Computing on a Cluster:/home/noah/Zotero/storage/TXHCQ5S8/Combining OpenCL and MPI to Support Heterogeneous Computing on a Cluster.pdf:application/pdf},
+}
+
+@mastersthesis{zeng_cyber_2017,
+ title = {Cyber {Attack} {Analysis} {Based} on {Markov} {Process} {Model}},
+ author = {Zeng, Keming},
+ school = "The University of Tulsa",
+ year = {2017},
+ address = "Tulsa, OK",
+}
+
+@misc{alaya2022mathematical,
+ title={Mathematical Analysis of a Delayed SEIRDS Epidemics Models: Deterministic and Stochastic Approach},
+ author={Mohamed Ben Alaya and Walid Ben Aribi and Slimane Ben Miled},
+ year={2022},
+ note={arXiv:2208.07690},
+ archivePrefix={arXiv},
+ primaryClass={q-bio.PE}
+}
+
+@article{NetworkX,
+ title = {Exploring Network Structure, Dynamics, and Function Using NetworkX},
+ author = {Hagberg, Aric and Swart, Pieter J. and Schult, Daniel A.},
+ doi = {},
+ note = {{Available: https://www.osti.gov/biblio/960616}},
+ journal = {},
+ number = ,
+ volume = ,
+ place = {United States},
+ year = {2008},
+ month = {Jan}
+}
+
+@Manual{igraph,
+ title = {{Igraph}: Network Analysis and Visualization in R},
+ author = {Gábor Csárdi and Tamás Nepusz and Vincent Traag and
+ Szabolcs Horvát and Fabio Zanini and Daniel Noom and Kirill
+ Müller},
+ year = {2023},
+ note = {R package version 1.5.1},
+ doi = {10.5281/zenodo.7682609},
+ url = {https://CRAN.R-project.org/package=igraph},
+}
+
+@Manual{Graphviz,
+ title = {{Graphviz}: Graph Visualization},
+ author = {The Graphviz Authors},
+ year = {2023},
+ note = {Graphviz release 8.1.0 [Online]. Available:https://www.graphviz.org/},
+ doi = {10.1007/3-540-45848-4{\_}57},
+ url = {https://www.graphviz.org/}
+}
+
+@Manual{diffeqjl,
+ title = {{DifferentialEquations.jl: Efficient Differential Equation Solving in Julia}},
+ author = {{Julia Programming Language}},
+ year = {2023},
+ note = {{DiffEq.jl v7.7.1}},
+ url = {https://docs.sciml.ai/DiffEqDocs/latest/}
+}
+
+@mastersthesis{RAGE,
+ title = {{RAGE}: {The} {Rage} {Attack} {Graph} {Engine}},
+ author = {Cook, Kyle},
+ school = {The {University} of {Tulsa}},
+ year = {2018},
+ file = {Kyle Cook Thesis:/home/noah/Zotero/storage/2SR28HM2/Kyle Cook Thesis.pdf:application/pdf},
+}
+
+@Manual{pracma,
+ title = {Pracma: Practical Numerical Math Functions},
+ author = {Hans W. Borchers},
+ year = {2022},
+ note = {R package version 2.4.2},
+ url = {https://CRAN.R-project.org/package=pracma},
+}
+
+@Manual{reticulate,
+ title = {Reticulate: Interface to 'Python'},
+ author = {Kevin Ushey and JJ Allaire and Yuan Tang},
+ year = {2023},
+ note = {{R package version 1.28. Available: https://CRAN.R-project.org/package=reticulate}}
+}
+
+@thesis{Kalavri2016PerformanceOT,
+ title={Performance Optimization Techniques and Tools for Distributed Graph Processing},
+ author={Vasiliki Kalavri},
+ school={{KTH Royal Institute of Technology, Sweden, and Université Catholique de Louvain, Belgium}},
+ year={2016},
+ type={{PhD}},
+ url={https://api.semanticscholar.org/CorpusID:63506793}
+}
+
+@article{10.14778/2947618.2947623,
+ author = {Kalavri, Vasiliki and Simas, Tiago and Logothetis, Dionysios},
+ title = {The Shortest Path Is Not Always a Straight Line: Leveraging Semi-Metricity in Graph Analysis},
+ year = {2016},
+ issue_date = {May 2016},
+ publisher = {VLDB Endowment},
+ volume = {9},
+ number = {9},
+ issn = {2150-8097},
+ url = {https://doi.org/10.14778/2947618.2947623},
+ doi = {10.14778/2947618.2947623},
+ journal = {Proc. VLDB Endow.},
+ month = {may},
+ pages = {672-683},
+ numpages = {12}
+}
+
+@inproceedings{10.1145/3229710.3229730,
+ author = {Kim, Jong Wook and Choi, Hyoeun and Bae, Seung-Hee},
+ title = {Efficient Parallel All-Pairs Shortest Paths Algorithm for Complex Graph Analysis},
+ year = {2018},
+ isbn = {9781450365239},
+ publisher = {Association for Computing Machinery},
+ address = {New York, NY, USA},
+ url = {https://doi.org/10.1145/3229710.3229730},
+ doi = {10.1145/3229710.3229730},
+ booktitle = {Workshop Proceedings of the 47th International Conference on Parallel Processing},
+ articleno = {5},
+ numpages = {10},
+ keywords = {All-pairs shortest paths, Parallel Algorithms, Shared-memory parallelism},
+ location = {Eugene, OR, USA},
+ series = {ICPP Workshops '18}
+}
+
+@article{Jha2002TwoFA,
+ title={Two Formal Analyses of Attack Graphs},
+ author={Somesh Jha and Oleg Sheyner and Jeannette M. Wing},
+ journal={Proceedings 15th IEEE Computer Security Foundations Workshop. CSFW-15},
+ year={2002},
+ pages={49-63},
+ url={https://api.semanticscholar.org/CorpusID:16108364}
+}
+
+@article{Islam2008AHA36,
+ title={A Heuristic Approach to Minimum-Cost Network Hardening Using Attack Graph},
+ author={Tania Islam and Lingyu Wang},
+ journal={2008 New Technologies, Mobility and Security},
+ year={2008},
+ pages={1-5},
+ url={https://api.semanticscholar.org/CorpusID:6625112}
+}
+
+@article{10.1016/j.comcom.2006.06.01837,
+ author = {Wang, Lingyu and Noel, Steven and Jajodia, Sushil},
+ title = {Minimum-Cost Network Hardening Using Attack Graphs},
+ year = {2006},
+ issue_date = {November, 2006},
+ publisher = {Elsevier Science Publishers B. V.},
+ address = {NLD},
+ volume = {29},
+ number = {18},
+ issn = {0140-3664},
+ url = {https://doi.org/10.1016/j.comcom.2006.06.018},
+ doi = {10.1016/j.comcom.2006.06.018},
+ journal = {Computer Communications},
+ month = {nov},
+ pages = {3812-3824},
+ numpages = {13},
+ keywords = {Intrusion detection, Vulnerability analysis, Intrusion prevention}
+}
+
+@inproceedings{10.1109/IAS.2008.38,
+ author = {Chen, Feng and Wang, Lingyu and Su, Jinshu},
+ title = {An Efficient Approach to Minimum-Cost Network Hardening Using Attack Graphs},
+ year = {2008},
+ isbn = {9780769533247},
+ publisher = {IEEE Computer Society},
+ address = {USA},
+ url = {https://doi.org/10.1109/IAS.2008.38},
+ doi = {10.1109/IAS.2008.38},
+ abstract = {Attack graphs can reveal the threat of sophisticated multi-step attacks by enumerating possible sequences of exploits leading to the compromise of given critical resources. Finding a solution to remove such threats by hands is tedious and error prone, particularly for larger and poorly secured networks. Existing automated approaches for hardening a network has an exponential complexity and is not scalable to large networks. This paper proposes a novel approach of applying the Reduced Ordered Binary Decision Diagram (ROBDD) method to network hardening. Existing mature optimization techniques in ROBDD makes the proposed approach an efficient solution that can potentially be applied to large networks.},
+ booktitle = {Proceedings of the 2008 The Fourth International Conference on Information Assurance and Security},
+ pages = {209-212},
+ numpages = {4},
+ keywords = {Attack Graphs, Minimum-Cost, network securty, vulnerability},
+ series = {IAS '08}
+}
+
+@article{JUNCHUN20113227,
+ title = {A Minimum Cost of Network Hardening Model Based on Attack Graphs},
+ journal = {Procedia Engineering},
+ volume = {15},
+ pages = {3227-3233},
+ year = {2011},
+ note = {CEIS 2011},
+ issn = {1877-7058},
+ doi = {https://doi.org/10.1016/j.proeng.2011.08.606},
+ url = {https://www.sciencedirect.com/science/article/pii/S1877705811021072},
+ author = {MA Jun-chun and WANG Yong-jun and SUN Ji-yin and CHEN Shan},
+ keywords = {network security, attack graphs, bidirectional-based search, genetic algorithms, minimum-cost},
+}
+
+@article{0.1117/12.60424,
+ author = {Liu, Yu and Man, Hong},
+ year = {2005},
+ month = {03},
+ pages = {},
+ title = {Network Vulnerability Assessment Using Bayesian Networks},
+ journal = {Proc SPIE},
+ doi = {10.1117/12.604240}
+}
+
+@inproceedings{10.1145/1456362.1456368,
+ author = {Frigault, Marcel and Wang, Lingyu and Singhal, Anoop and Jajodia, Sushil},
+ year = {2008},
+ month = {10},
+ pages = {23-30},
+ title = {Measuring Network Security Using Dynamic Bayesian Network},
+ doi = {10.1145/1456362.1456368}
+}
+
+@article{10.1145/3105760,
+ author = {Mu\~{n}oz-Gonz\'{a}lez, Luis and Sgandurra, Daniele and Paudice, Andrea and Lupu, Emil C.},
+ title = {Efficient Attack Graph Analysis Through Approximate Inference},
+ year = {2017},
+ issue_date = {August 2017},
+ publisher = {Association for Computing Machinery},
+ address = {New York, NY, USA},
+ volume = {20},
+ number = {3},
+ issn = {2471-2566},
+ url = {https://doi.org/10.1145/3105760},
+ doi = {10.1145/3105760},
+ journal = {ACM Trans. Priv. Secur.},
+ month = {Jul},
+ articleno = {10},
+ numpages = {30},
+ keywords = {Bayesian networks, approximate inference, probabilistic graphical models}
+}
+
+@article{10.1155/2017/3407642,
+ author = {{Hu, Hao and Zhang, Hongqi and Liu, Yuling and Wang, Yongwei and Du, Xiaojiang}},
+ title = {{Quantitative Method for Network Security Situation Based on Attack Prediction}},
+ year = {2017},
+ issue_date = {2017},
+ publisher = {{John Wiley \& Sons, Inc.}},
+ address = {USA},
+ volume = {2017},
+ issn = {1939-0114},
+ url = {https://doi.org/10.1155/2017/3407642},
+ doi = {10.1155/2017/3407642},
+ journal = {Security and Communications Networks},
+ month = {jan},
+ numpages = {19}
+}
+
+@article{Abraham2014CyberSA,
+ title={Cyber Security Analytics: A Stochastic Model for Security Quantification Using Absorbing Markov Chains},
+ author={Subil Abraham and Suku Nair},
+ journal={Journal of Communications},
+ year={2014},
+ url={https://api.semanticscholar.org/CorpusID:8554925}
+}
+
+@misc{abraham2015predictive,
+ title={A Predictive Framework for Cyber Security Analytics Using Attack Graphs},
+ author={Subil Abraham and Suku Nair},
+ year={2015},
+ eprint={1502.01240},
+ archivePrefix={arXiv},
+ primaryClass={cs.CR}
+}
+
+@article{Durkota2019HardeningNA,
+ title={Hardening Networks Against Strategic Attackers Using Attack Graph Games},
+ author={Karel Durkota and V. Lis{\'y} and Branislav Bosansk{\'y} and Christopher Kiekintveld and Michal Pechoucek},
+ journal={Computer Security},
+ year={2019},
+ volume={87},
+ url={https://api.semanticscholar.org/CorpusID:201134692}
+}
+
+@article{10.1145/3418897,
+ author = {Hu, Zhisheng and Zhu, Minghui and Liu, Peng},
+ title = {Adaptive Cyber Defense Against Multi-Stage Attacks Using Learning-Based POMDP},
+ year = {2020},
+ issue_date = {February 2021},
+ publisher = {Association for Computing Machinery},
+ address = {New York, NY, USA},
+ volume = {24},
+ number = {1},
+ issn = {2471-2566},
+ url = {https://doi.org/10.1145/3418897},
+ doi = {10.1145/3418897},
+ journal = {ACM Transactions on Privacy and Security},
+ month = {nov},
+ articleno = {6},
+ numpages = {25},
+ keywords = {adaptive cyber defense, Thompson sampling, Reinforcement learning}
+}
+
+@article{Miehling2018APA,
+ title={A POMDP Approach to the Dynamic Defense of Large-Scale Cyber Networks},
+ author={Erik Miehling and Mohammad Reza Rasouli and Demosthenis Teneketzis},
+ journal={IEEE Transactions on Information Forensics and Security},
+ year={2018},
+ volume={13},
+ pages={2490-2505},
+ url={https://api.semanticscholar.org/CorpusID:13705714}
+}
+
+@article{Nguyen2017AnAT,
+ title={An Approach to Incorporating Uncertainty in Network Security Analysis},
+ author={Hoang Hai Nguyen and Kartik Palani and David M. Nicol},
+ journal={Proceedings of the Hot Topics in Science of Security: Symposium and Bootcamp},
+ year={2017},
+ url={https://api.semanticscholar.org/CorpusID:16666067}
+}
+
+@Inbook{Wang2017,
+ author="Wang, Lingyu
+ and Jajodia, Sushil
+ and Singhal, Anoop
+ and Cheng, Pengsu
+ and Noel, Steven",
+ title="k-Zero Day Safety: Evaluating the Resilience of Networks Against Unknown Attacks",
+ bookTitle="Network Security Metrics",
+ year="2017",
+ publisher="Springer International Publishing",
+ address="Cham",
+ pages="75--93",
+ isbn="978-3-319-66505-4",
+ doi="10.1007/978-3-319-66505-4{\_}4",
+ url="https://doi.org/10.1007/978-3-319-66505-4{\_}4"
+}
+
+@InProceedings{10.1007/978-3-030-64793-3_24,
+ author="Anwar, Ahmed H.
+ and Kamhoua, Charles",
+ editor="Zhu, Quanyan
+ and Baras, John S.
+ and Poovendran, Radha
+ and Chen, Juntao",
+ title="Game Theory on Attack Graph for Cyber Deception",
+ booktitle="Decision and Game Theory for Security",
+ year="2020",
+ publisher="Springer International Publishing",
+ address="Cham",
+ pages="445--456",
+ abstract="Game Theory provides a set of tools and a framework suitable to study security problems. In this paper, a class of games is developed to study cyber deception and the interactions between the network defender who is deceiving an adversary to mitigate the damage of the attack. In order to capture network topology, each game is played over an attack graph that can be generated according to the vulnerabilities associated with each node. The defender's goal is to take deceptive actions to prevent the attacker from taking control over the network resources exploiting the incomplete information of the attacker regarding the deceptive network gained through the attack reconnaissance stage. To this end, we present several games such as normal form static, dynamic, hypergame, and a partially observable stochastic game (POSG) to study the game dynamics at different information structures. For the most general class of games, (i.e., POSG), we provide multiple solution approaches to overcome the intractability of the game model and finally present numerical result samples to show the effectiveness of each solution approach.",
+ isbn="978-3-030-64793-3"
+}
+
+@INBOOK{9124037,
+ author={Xi, Bowei and Kamhoua, Charles A.},
+ booktitle={Modeling and Design of Secure Internet of Things},
+ title={A Hypergame-Based Defense Strategy Toward Cyber Deception in Internet of Battlefield Things (IoBT)},
+ year={2020},
+ volume={},
+ number={},
+ pages={59-77},
+ doi={10.1002/9781119593386.ch3}
+}
+
+@InProceedings{10.1007/978-3-030-64793-3_9,
+ author="Kulkarni, Abhishek N.
+ and Fu, Jie
+ and Luo, Huan
+ and Kamhoua, Charles A.
+ and Leslie, Nandi O.",
+ editor="Zhu, Quanyan
+ and Baras, John S.
+ and Poovendran, Radha
+ and Chen, Juntao",
+ title="Decoy Allocation Games on Graphs with Temporal Logic Objectives",
+ booktitle="Decision and Game Theory for Security",
+ year="2020",
+ publisher="Springer International Publishing",
+ address="Cham",
+ pages="168--187",
+ isbn="978-3-030-64793-3"
+}
+
+@conference{1503283,
+ title = {Security Scheduling for Real-World Networks },
+ booktitle = {International Conference on Autonomous Agents and Multiagent Systems (AAMAS)},
+ year = {2013},
+ author = {Jain, Manish and Vincent Conitzer and Tambe, Milind}
+}
+
+@article{HORAK2019101579,
+ title = {Optimizing Honeypot Strategies Against Dynamic Lateral Movement Using Partially Observable Stochastic Games},
+ journal = {Computers \& Security},
+ volume = {87},
+ pages = {101579},
+ year = {2019},
+ issn = {0167-4048},
+ doi = {https://doi.org/10.1016/j.cose.2019.101579},
+ url = {https://www.sciencedirect.com/science/article/pii/S0167404819300665},
+ author = {Karel Horák and Branislav Bošanský and Petr Tomášek and Christopher Kiekintveld and Charles Kamhoua},
+ keywords = {Dynamic honeypot allocation, Lateral movement, Partially observable stochastic games, Compact representation, Incremental strategy generation}
+}
+
+@article{10.1080/23311916.2018.1502242,
+ author = {Gunantara, Nyoman},
+ year = {2018},
+ month = {07},
+ pages = {},
+ title = {A Review of Multi-Objective Optimization: Methods and Its Applications},
+ volume = {5},
+ journal = {Cogent Engineering},
+ doi = {10.1080/23311916.2018.1502242}
+}
+
+@Inbook{Awange2023,
+ author="Awange, Joseph L.
+ and Pal{\'a}ncz, B{\'e}la
+ and Lewis, Robert H.
+ and V{\"o}lgyesi, Lajos",
+ title="Multiobjective Optimization",
+ bookTitle="Mathematical Geosciences: Hybrid Symbolic-Numeric Methods",
+ year="2023",
+ publisher="Springer International Publishing",
+ address="Cham",
+ pages="319--352",
+ isbn="978-3-030-92495-9",
+ doi="10.1007/978-3-030-92495-9{\_}9",
+ url="https://doi.org/10.1007/978-3-030-92495-9{\_}9"
+}
+
+@article{MIRJALILI2015228,
+ title = {Moth-Flame Optimization Algorithm: A Novel Nature-Inspired Heuristic Paradigm},
+ journal = {Knowledge-Based Systems},
+ volume = {89},
+ pages = {228-249},
+ year = {2015},
+ issn = {0950-7051},
+ doi = {https://doi.org/10.1016/j.knosys.2015.07.006},
+ url = {https://www.sciencedirect.com/science/article/pii/S0950705115002580},
+ author = {Seyedali Mirjalili},
+ keywords = {Optimization, Stochastic optimization, Constrained optimization, Meta-heuristic, Population-based algorithm}
+}
+
+@INPROCEEDINGS{7732428,
+ author={Vikas and Nanda, Satyasai Jagannath},
+ booktitle={2016 International Conference on Advances in Computing, Communications and Informatics (ICACCI)},
+ title={Multi-Objective Moth Flame Optimization},
+ year={2016},
+ volume={},
+ number={},
+ pages={2470-2476},
+ doi={10.1109/ICACCI.2016.7732428}
+}
+
+@INPROCEEDINGS{9563556,
+ author={Bingi, Kishore and Kulkarni, Rakshit Raghavendra and Mantri, Rhea},
+ booktitle={2021 IEEE Madras Section Conference (MASCON)},
+ title={Development of Hybrid Algorithm Using Moth-Flame and Particle Swarm Optimization},
+ year={2021},
+ volume={},
+ number={},
+ pages={1-6},
+ doi={10.1109/MASCON51689.2021.9563556}
+}
+
+@article{Sharifi2021ANO,
+ title={A New Optimization Algorithm to Solve Multi-Objective Problems},
+ author={Mohammad Reza Sharifi and Saeid Akbarifard and Kourosh Qaderi and Mohamad Reza Madadi},
+ journal={Scientific Reports},
+ year={2021},
+ volume={11},
+ url={https://api.semanticscholar.org/CorpusID:238860219}
+}
+
+@book{10.1007/978-3-540-24777-7,
+ author = {Kellerer, Hans and Pferschy, Ulrich and Pisinger, David},
+ year = {2004},
+ month = {Jan.},
+ pages = {},
+ title = {Knapsack Problems},
+ isbn = {978-3-540-40286-2},
+ journal = {Knapsack Problems},
+ doi = {10.1007/978-3-540-24777-7},
+ publisher = {Springer Berlin, Heidelberg},
+}
+
+@INPROCEEDINGS{8204118,
+ author={Gupta, Indresh Kumar and Choubey, Abha and Choubey, Siddhartha},
+ booktitle={2017 8th International Conference on Computing, Communication and Networking Technologies (ICCCNT)},
+ title={Clustered Genetic Algorithm to Solve Multidimensional Knapsack Problem},
+ year={2017},
+ volume={},
+ number={},
+ pages={1-6},
+ doi={10.1109/ICCCNT.2017.8204118}
+}
+
+@ARTICLE{9142411,
+ author={Li, Zuocheng and Tang, Lixin and Liu, Jiyin},
+ journal={IEEE Transactions on Cybernetics},
+ title={A Memetic Algorithm Based on Probability Learning for Solving the Multidimensional Knapsack Problem},
+ year={2022},
+ volume={52},
+ number={4},
+ pages={2284-2299},
+ doi={10.1109/TCYB.2020.3002495}
+}
+
+@INPROCEEDINGS{9308380,
+ author={Gu, Hanyu},
+ booktitle={2020 IEEE Symposium Series on Computational Intelligence (SSCI)},
+ title={Optimal Lagrangian Multipliers for the Multidimensional Knapsack Problem: A Bayesian Optimisation Approach},
+ year={2020},
+ volume={},
+ number={},
+ pages={3149-3155},
+ doi={10.1109/SSCI47803.2020.9308380}
+}
+
+@INPROCEEDINGS{5455187,
+ author={Shan, Bowei},
+ booktitle={2009 First International Conference on Information Science and Engineering},
+ title={The Spread of Malware on the WiFi Network: Epidemiology Model and Behaviour Evaluation},
+ year={2009},
+ volume={},
+ number={},
+ pages={1916-1918},
+ doi={10.1109/ICISE.2009.1285}
+}
+
+@INPROCEEDINGS{8228672,
+ author={Mitchell, Robert},
+ booktitle={2017 IEEE Conference on Communications and Network Security (CNS)},
+ title={Epidemic-Resistant Configurations for Intrusion Detection Systems},
+ year={2017},
+ volume={},
+ number={},
+ pages={487-494},
+ doi={10.1109/CNS.2017.8228672}
+}
+
+@ARTICLE{6414589,
+ author={Kim, Hyoungshick and Anderson, Ross},
+ journal={IEEE Systems Journal},
+ title={An Experimental Evaluation of Robustness of Networks},
+ year={2013},
+ volume={7},
+ number={2},
+ pages={179-188},
+ doi={10.1109/JSYST.2012.2221851}
+}
+
+@INPROCEEDINGS{9450250,
+ author={Wang, Yingxu and Plataniotis, Kostas N. and Wang, Jane Z. and Hou, Ming and Zhou, Menchu and Howard, Newton and Peng, Jun and Huang, Runhe and Patel, Shushma and Zhang, Du},
+ booktitle={2020 IEEE 19th International Conference on Cognitive Informatics \& Cognitive Computing (ICCI*CC)},
+ title={The Cognitive and Mathematical Foundations of Analytic Epidemiology},
+ year={2020},
+ volume={},
+ number={},
+ pages={6-14},
+ doi={10.1109/ICCICC50026.2020.9450250}
+}
+
+@INPROCEEDINGS{9457692,
+ author={Parwez, Md. Aslam and Abulaish, Muhammad and Jahiruddin, Jahiruddin},
+ booktitle={2020 IEEE/WIC/ACM International Joint Conference on Web Intelligence and Intelligent Agent Technology (WI-IAT)},
+ title={A Social Media Time-Series Data Analytics Approach for Digital Epidemiology},
+ year={2020},
+ volume={},
+ number={},
+ pages={852-859},
+ doi={10.1109/WIIAT50758.2020.00131}
+}
+
+@misc{j_hale_compliance_nodate,
+ title = {Compliance {Method} for a {Cyber}-{Physical} {System}},
+ author = {{J. Hale} and Hawrylak, P. and Papa, M.},
+ note = {U.S. Patent Number 9,471,789, Oct. 18, 2016.},
+ number = {9471789},
+ file = {Complaince{\_}Graph{\_}US{\_}Patent{\_}9471789:/home/noah/Zotero/storage/55BZN4U7/Complaince{\_}Graph{\_}US{\_}Patent{\_}9471789.pdf:application/pdf},
+}
+
+@inproceedings{baloyi_guidelines_2019,
+ address = {Skukuza South Africa},
+ title = {Guidelines for {Data} {Privacy} {Compliance}: {A} {Focus} on {Cyberphysical} {Systems} and {Internet} of {Things}},
+ doi = {10.1145/3351108.3351143},
+ booktitle = {{SAICSIT} '19: {Proceedings} of the {South} {African} {Institute} of {Computer} {Scientists} and {Information} {Technologists} 2019},
+ publisher = {Association for Computing Machinery},
+ author = {Baloyi, Ntsako and Kotzé, Paula},
+ year = {2019},
+}
+
+@article{allman_complying_2006,
+ title = {Complying With {Compliance}: {Blowing} It Off Is Not an Option.},
+ volume = {4},
+ number = {7},
+ journal = {ACM Queue},
+ author = {Allman, Eric},
+ year = {2006},
+}
+
+@ARTICLE{9914620,
+ author={Ahn, Sujin and Kwon, Minhae},
+ journal={IEEE Journal of Biomedical and Health Informatics},
+ title={Reproduction Factor Based Latent Epidemic Model Inference: A Data-Driven Approach Using COVID-19 Datasets},
+ year={2023},
+ volume={27},
+ number={3},
+ pages={1259-1270},
+ doi={10.1109/JBHI.2022.3213175}
+}
+
+@INPROCEEDINGS{9929470,
+ author={Roy, Tamal Joyti and Mahmood, Md. Ashiq and Mohanta, Aninda and Roy, Diti},
+ booktitle={2021 IEEE International Conference on Robotics, Automation, Artificial-Intelligence and Internet-of-Things (RAAICON)},
+ title={An Analytical Approach to Predict the COVID-19 Death Rate in Bangladesh Utilizing Multiple Regression and SEIR Model},
+ year={2021},
+ volume={},
+ number={},
+ pages={42-45},
+ doi={10.1109/RAAICON54709.2021.9929470}
+}
+
+@INPROCEEDINGS{9628991,
+ author={Chumachenko, Dmytro and Bazilevych, Kseniia and Meniailov, Ievgen and Yakovlev, Sergiy and Chumachenko, Tetyana},
+ booktitle={2021 IEEE 4th International Conference on Advanced Information and Communication Technologies (AICT)},
+ title={Simulation of COVID-19 Dynamics Using Ridge Regression},
+ year={2021},
+ volume={},
+ number={},
+ pages={163-166},
+ doi={10.1109/AICT52120.2021.9628991}
+}
+
+@INPROCEEDINGS{9630798,
+ author={Zhang, Siqi and Yang, Hui},
+ booktitle={2021 43rd Annual International Conference of the IEEE Engineering in Medicine \& Biology Society (EMBC)},
+ title={Spatial Modeling and Analysis of Human Traffic and Infectious Virus Spread in Community Networks},
+ year={2021},
+ volume={},
+ number={},
+ pages={2286-2289},
+ doi={10.1109/EMBC46164.2021.9630798}
+}
+
+@INPROCEEDINGS{9678822,
+ author={Dakhno, Natalia and Leshchenko, Olga and Kravchenko, Yurii and Dudnik, Andriy and Trush, Olexandr and Khankishiev, Victor},
+ booktitle={2021 IEEE 3rd International Conference on Advanced Trends in Information Theory (ATIT)},
+ title={Dynamic Model of the Spread of Viruses in a Computer Network Using Differential Equations},
+ year={2021},
+ volume={},
+ number={},
+ pages={111-115},
+ doi={10.1109/ATIT54053.2021.9678822}
+}
+
+@INPROCEEDINGS{10227113,
+ author={Tang, Yuyang and Williams, Richard A.},
+ booktitle={2022 IEEE International Symposium on Technology and Society (ISTAS)},
+ title={Investigating Relationship Conflict Within the Social Network of Large IS Projects Using a SIR Model},
+ year={2022},
+ volume={1},
+ number={},
+ pages={1-5},
+ doi={10.1109/ISTAS55053.2022.10227113}
+}
+
+@INPROCEEDINGS{9856356,
+ author={Mathebula, Dephney},
+ booktitle={2022 International Conference on Artificial Intelligence, Big Data, Computing and Data Communication Systems (icABCD)},
+ title={Novel Data-Based Model for Future Epidemiology},
+ year={2022},
+ volume={},
+ number={},
+ pages={1-6},
+ doi={10.1109/icABCD54961.2022.9856356}
+}
+
+@INPROCEEDINGS{9593147,
+ author={Fedorov, Dmitriy and Tabarak, Yrys and Dadlani, Aresh and Kumar, Muthukrishnan Senthil and Kizheppatt, Vipin},
+ booktitle={2021 International Balkan Conference on Communications and Networking (BalkanCom)},
+ title={Dynamics of Multi-Strain Malware Epidemics Over Duty-Cycled Wireless Sensor Networks},
+ year={2021},
+ volume={},
+ number={},
+ pages={1-5},
+ doi={10.1109/BalkanCom53780.2021.9593147}
+}
+
+@Article{Lou2021,
+ author={Lou, Yuan
+ and Salako, Rachidi B.},
+ title={Control Strategies for a Multi-Strain Epidemic Model},
+ journal={Bulletin of Mathematical Biology},
+ year={2021},
+ month={Nov},
+ day={27},
+ volume={84},
+ number={1},
+ pages={10},
+ issn={1522-9602},
+ doi={10.1007/s11538-021-00957-6},
+ url={https://doi.org/10.1007/s11538-021-00957-6}
+}
+
+@article{10.1371/journal.pone.0257512,
+ doi = {10.1371/journal.pone.0257512},
+ author = {Arruda, Edilson F. AND Das, Shyam S. AND Dias, Claudia M. AND Pastore, Dayse H.},
+ journal = {Plos One},
+ publisher = {Public Library of Science},
+ title = {Modelling and Optimal Control of Multi Strain Epidemics, With Application to COVID-19},
+ year = {2021},
+ month = {09},
+ volume = {16},
+ url = {https://doi.org/10.1371/journal.pone.0257512},
+ pages = {1-18},
+ number = {9},
+}
+
+@inproceedings{GCAI-2018:Analysis_of_Attack_Graph,
+ author = {Tom Gonda and Tal Pascal and Rami Puzis and Guy Shani and Bracha Shapira},
+ title = {Analysis of Attack Graph Representations for Ranking Vulnerability Fixes},
+ booktitle = {GCAI-2018. 4th Global Conference on Artificial Intelligence},
+ editor = {Daniel Lee and Alexander Steen and Toby Walsh},
+ series = {EPiC Series in Computing},
+ volume = {55},
+ pages = {215--228},
+ year = {2018},
+ publisher = {EasyChair},
+ bibsource = {EasyChair, https://easychair.org},
+ issn = {2398-7340},
+ url = {https://easychair.org/publications/paper/ZBHj},
+ doi = {10.29007/2c1q}
+}
+
+@article{10.1371/journal.pone.0053095,
+ doi = {10.1371/journal.pone.0053095},
+ author = {Piraveenan, Mahendra AND Prokopenko, Mikhail AND Hossain, Liaquat},
+ journal = {Plos One},
+ publisher = {Public Library of Science},
+ title = {Percolation Centrality: Quantifying Graph-Theoretic Impact of Nodes During Percolation in Networks},
+ year = {2013},
+ month = {01},
+ volume = {8},
+ url = {https://doi.org/10.1371/journal.pone.0053095},
+ pages = {1-14},
+ number = {1},
+}
+
+@inproceedings{10.1145/3288599.3295597,
+ author = {De, Sanghamitra and Barik, Mridul Sankar and Banerjee, Indrajit},
+ title = {A Percolation-Based Recovery Mechanism for Bot Infected P2P Cloud},
+ year = {2019},
+ isbn = {9781450360944},
+ publisher = {Association for Computing Machinery},
+ address = {New York, NY, USA},
+ url = {https://doi-org.utulsa.idm.oclc.org/10.1145/3288599.3295597},
+ doi = {10.1145/3288599.3295597},
+ abstract = {Execution of any recovery procedure in compromised nodes of a Cloud should aim at covering as many nodes as possible in a given time. The authors propose an innovative approach using the concept of percolation centrality to spread the execution of a recovery procedure across adjacent nodes in a P2PCloud. Compromised networks can be large since botnets and malware infections use the advantage of the internet to spread rapidly. Using percolation centrality to choose a node from where to begin, the recovery procedure runs in parallel in different nodes which can be reached from a chosen node and spreads fast.},
+ booktitle = {Proceedings of the 20th International Conference on Distributed Computing and Networking},
+ pages = {474-479},
+ numpages = {6},
+ keywords = {churning, botnet, P2PCloud, P2P network, percolation centrality},
+ location = {Bangalore, India},
+ series = {ICDCN '19}
+}
+
+@INPROCEEDINGS{9680376,
+ author={Chandramouli, Athreya and Jana, Sayantan and Kothapalli, Kishore},
+ booktitle={2021 IEEE 28th International Conference on High Performance Computing, Data, and Analytics (HiPC)},
+ title={Efficient Parallel Algorithms for Computing Percolation Centrality},
+ year={2021},
+ volume={},
+ number={},
+ pages={111-120},
+ doi={10.1109/HiPC53243.2021.00025}
+}
+
+@article{AUDRITO2021102584,
+title = {Aggregate Centrality Measures for IoT-based Coordination},
+journal = {Science of Computer Programming},
+volume = {203},
+pages = {102584},
+year = {2021},
+issn = {0167-6423},
+doi = {https://doi.org/10.1016/j.scico.2020.102584},
+url = {https://www.sciencedirect.com/science/article/pii/S0167642320301921},
+author = {Giorgio Audrito and Danilo Pianini and Ferruccio Damiani and Mirko Viroli}
+}
+
+@article{MO2019121538,
+title = {Identifying Node Importance Based on Evidence Theory in Complex Networks},
+journal = {Physica A: Statistical Mechanics and Its Applications},
+volume = {529},
+pages = {121538},
+year = {2019},
+issn = {0378-4371},
+doi = {https://doi.org/10.1016/j.physa.2019.121538},
+url = {https://www.sciencedirect.com/science/article/pii/S0378437119309021},
+author = {Hongming Mo and Yong Deng},
+keywords = {Complex networks, Important nodes, Evidence theory, Multi-evidence centrality, Comprehensive measure},
+}
+
+@article{LI2018512,
+title = {Identification of Influential Spreaders Based on Classified Neighbors in Real-World Complex Networks},
+journal = {Applied Mathematics and Computation},
+volume = {320},
+pages = {512-523},
+year = {2018},
+issn = {0096-3003},
+doi = {https://doi.org/10.1016/j.amc.2017.10.001},
+url = {https://www.sciencedirect.com/science/article/pii/S0096300317306884},
+author = {Chao Li and Li Wang and Shiwen Sun and Chengyi Xia},
+keywords = {Influential spreaders, Identification algorithms, Classified neighbors, Complex networks},
+}
+
+@article{brandes,
+author = {Ulrik Brandes},
+title = {A Faster Algorithm for Betweenness Centrality* },
+journal = {The Journal of Mathematical Sociology},
+volume = {25},
+number = {2},
+pages = {163-177},
+year = {2001},
+publisher = {Routledge},
+doi = {10.1080/0022250X.2001.9990249},
+
+
+URL = {
+
+ https://doi.org/10.1080/0022250X.2001.9990249
+
+
+
+},
+eprint = {
+
+ https://doi.org/10.1080/0022250X.2001.9990249
+
+
+
+}
+
+}
+
+@misc{stankovic2023fourier,
+ title={Fourier Analysis of Signals on Directed Acyclic Graphs (DAG) Using Graph Zero-Padding},
+ author={Ljubisa Stankovic and Milos Dakovic and Ali Bagheri Bardi and Milos Brajovic and Isidora Stankovic},
+ year={2023},
+ note={arXiv:2311.01073},
+ archivePrefix={arXiv},
+ primaryClass={cs.IT}
+}
+
+@misc{seifert2023causal,
+ title={Causal Fourier Analysis on Directed Acyclic Graphs and Posets},
+ author={Bastian Seifert and Chris Wendler and Markus Püschel},
+ year={2023},
+ note={arXiv:2209.07970},
+ archivePrefix={arXiv},
+ primaryClass={eess.SP}
+}
+
+@BOOK{laug,
+ AUTHOR = {Anderson, E. and Bai, Z. and Bischof, C. and
+ Blackford, S. and Demmel, J. and Dongarra, J. and
+ Du Croz, J. and Greenbaum, A. and Hammarling, S. and
+ McKenney, A. and Sorensen, D.},
+ title = {{LAPACK} Users' Guide},
+ EDITION = {3rd},
+ PUBLISHER = {Society for Industrial and Applied Mathematics},
+ YEAR = {1999},
+ ADDRESS = {Philadelphia, PA},
+ ISBN = {0-89871-447-8 (paperback)} }
+
+@article{MACEDO2016999,
+title = {Gaussian Elimination Is Not Optimal, Revisited},
+journal = {Journal of Logical and Algebraic Methods in Programming},
+volume = {85},
+number = {5, Part 2},
+pages = {999-1010},
+year = {2016},
+issn = {2352-2208},
+doi = {https://doi.org/10.1016/j.jlamp.2016.06.003},
+url = {https://www.sciencedirect.com/science/article/pii/S2352220816300529},
+author = {Hugo Daniel Macedo},
+}
+
+@misc{williams2023new,
+ title={New Bounds for Matrix Multiplication: From Alpha to Omega},
+ author={Virginia Vassilevska Williams and Yinzhan Xu and Zixuan Xu and Renfei Zhou},
+ year={2023},
+ eprint={2307.07970},
+ archivePrefix={arXiv},
+ primaryClass={cs.DS}
+}
+
+@misc{alman2020refined,
+ title={A Refined Laser Method and Faster Matrix Multiplication},
+ author={Josh Alman and Virginia Vassilevska Williams},
+ year={2020},
+ eprint={2010.05846},
+ archivePrefix={arXiv},
+ primaryClass={cs.DS}
+}
+
+@article{bordacent,
+author = {Madotto, Andrea and Liu, Jiming},
+year = {2016},
+month = {Dec.},
+pages = {},
+title = {Super-Spreader Identification Using Meta-Centrality},
+volume = {6},
+journal = {Scientific Reports},
+doi = {10.1038/srep38994}
+}
+
+@article{6023c4f8-ecc1-3dbe-9f88-265b318523d2,
+ ISSN = {00115266},
+ URL = {http://www.jstor.org/stable/20026529},
+ author = {John G. Kemeny},
+ journal = {Daedalus},
+ number = {4},
+ pages = {577--591},
+ publisher = {The MIT Press},
+ title = {Mathematics Without Numbers},
+ urldate = {2024-03-01},
+ volume = {88},
+ year = {1959}
+}
+
+@article{doi:10.1137/0135023,
+author = {Young, H. P. and Levenglick, A.},
+title = {A Consistent Extension of Condorcet’s Election Principle},
+journal = {SIAM Journal on Applied Mathematics},
+volume = {35},
+number = {2},
+pages = {285-300},
+year = {1978},
+doi = {10.1137/0135023},
+
+URL = {
+
+ https://doi.org/10.1137/0135023
+
+
+
+},
+eprint = {
+
+ https://doi.org/10.1137/0135023
+
+
+
+}
+,
+}
+
+@misc{OSHA,
+ author = {{Occupational Safety and Health Administration}},
+ title = {{Standard} 1910 {Subpart} {H} {Hazardous} {Materials}},
+ year = {{Last Amended 2024 via Code of Federal Regulations Title 29}}
+}
+
+
+@onlne{AutoInd,
+ author = {{International Trade Administration, U.S. Department of Commerce}},
+ title = {{Automotive Industry}},
+ year = {August 2021},
+ note = {{[Online]. Available: https://www.trade.gov/selectusa-automotive-industry}},
+ urldate = {2023-11-07}
+}
+
+@onlne{AutoIndFS,
+ author = {{International Trade Administration, U.S. Department of Commerce}},
+ title = {{Foreign Direct Investment (FDI): Automotive}},
+ year = {August 2021},
+ note = {{[Online]. Available: https://www.trade.gov/sites/default/files/2021-09/Automotive{\%}20-{\%}20FINAL.pdf}},
+ urldate = {2023-11-07}
+}
+
+@online{BEAFS,
+ author = {{U.S. Bureau of Economic Analysis}},
+ title = {{Industry Factsheet: Transportation and Warehousing}},
+ year = {2023},
+ note = {{[Online]. Available: https://apps.bea.gov/industry/factsheet/factsheet.html\#48TW}},
+ urldate = {2024-02-25}
+}
+
+@online{BEATables,
+ author = {{U.S. Bureau of Economic Analysis}},
+ title = {{Value Added by Industry}},
+ year = {2023-12-21},
+ urldate = {2024-02-25}
+}
+
+@online{BEATablesOutput,
+ author = {{U.S. Bureau of Economic Analysis}},
+ title = {{Gross Output by Industry}},
+ year = {2023-12-21},
+ urldate = {2024-02-25}
+}
+
+@online{GMInsight,
+ author = {{Singh, A, and Singh, S.}},
+ title = {{Automotive Repair and Maintenance Service Market Size}},
+ year = {Feb. 2024},
+ note = {{[Online]. Available: https://www.gminsights.com/industry-analysis/automotive-repair-maintenance-services-market}},
+ urldate = {2024-02-25}
+}
+
+@online{Corolla,
+ author = {{Toyota Motor Sales, U.S.A., Inc.}},
+ title = {{Downloadable Manuals}},
+ note = {{[Online]. Available: https://www.toyota.com/owners/warranty-owners-manuals/}},
+ urldate = {2024-02-25}
+}
+
+@online{carDOE,
+ author = {{U.S. Department of Energy}},
+ title = {{Alternative Fuels Data Center}},
+ note = {{[Online]. Available: https://afdc.energy.gov/data/categories/driving-patterns}},
+ urldate = {2024-02-25}
+}
+
+@online{carDOT,
+ author = {{National Transportation Statistics Datasets}},
+ title = {{United States Department of Transportation Bureau of Transportation Statistics}},
+ note = {{[Online]. Available: https://www.bts.gov/product/national-transportation-statistics}},
+ urldate = {2024-02-25}
+}
+
+@online{carFWHA,
+ author = {{U.S. Department of Transportation Federal Highway Administration}},
+ title = {{Highway Statistics Series}},
+ note = {{[Online]. Available: https://www.fhwa.dot.gov/policyinformation/statistics.cfm}},
+ urldate = {2024-02-25}
+}
+
+@online{carCR,
+ author = {{Preston, B.}},
+ title = {{Car Brands and Models That Can Save You Money Over Time}},
+ year = {2023-04-02},
+ note = {{[Online]. Available: https://www.consumerreports.org/cars/car-repair-maintenance/car-brands-and-models-that-can-save-you-money-over-time-a9081677414}},
+ urldate = {2024-02-25}
+}
+
+@online{carAAA,
+ author = {{AAA}},
+ title = {{Planning for Auto Maintenance and Repair Costs}},
+ note = {{[Online]. Available: https://www.aaa.com/autorepair/articles/planning-for-auto-maintenance-and-repair-costs (visited on Feb. 25, 2024.)}}
+}
+
+@online{carFarmers,
+ author = {{Farmers Insurance}},
+ title = {{Auto Service and Repair Shop Insurance}},
+ note = {{[Online]. Available: https://www.farmers.com/business/industry/auto-service-repair/ (visited on Feb. 25, 2024.)}}
+}
+
+@online{carext,
+ author = {{AAA}},
+ title = {{Your Driving Costs}},
+ note = {{[Online]. Available: https://newsroom.aaa.com/wp-content/uploads/2020/12/Your-Driving-Costs-2020-Fact-Sheet-FINAL-12-9-20-2.pdf}},
+ year = {2020-12-09},
+ urldate = {2024-02-25}
+}
+
+@online{CMS,
+ author = {{Centers for Medicare \& Medicaid Services}},
+ title = {{NHE Fact Sheet}},
+ year = {2022},
+ note = {{[Online]. Available: https://www.cms.gov/data-research/statistics-trends-and-reports/national-health-expenditure-data/nhe-fact-sheet}},
+ urldate = {2024-02-25}
+}
+
+@online{WB,
+ author = {{The World Bank}},
+ title = {{Current Health Expenditure (\% of GDP)}},
+ year = {2023-04-07},
+ note = {{[Online]. Available: https://data.worldbank.org/indicator/SH.XPD.CHEX.GD.ZS?name\_desc\\=true\&locations=US}},
+ urldate = {2024-02-25}
+}
+
+@online{OECD,
+ author = {{Organisation for Economic Co-operation and Development}},
+ title = {{OECD Health Statistics 2023}},
+ year = {2023},
+ note = {{[Online]. Available: https://www.oecd.org/health/health-data.htm}},
+ urldate = {2024-02-25}
+}
+
+@online{CDC,
+ author = {{Centers for Disease Control and Preventation}},
+ title = {{Health Expenditures}},
+ year = {2019},
+ note = {{[Online]. Available: https://www.cdc.gov/nchs/fastats/health-expenditures.htm}},
+ urldate = {2024-02-25}
+}
+
+@online{NCSES,
+ author = {{National Center for Science and Engineering Statistics}},
+ title = {{R\&D; Most Pharmaceutical R\&D Focused on Biotechnology}},
+ year = {2018},
+ note = {{[Online]. Available: https://ncses.nsf.gov/pubs/nsf21316}},
+ urldate = {2024-02-25}
+}
+
+@online{DefHC,
+ author = {{Definitive Healthcare}},
+ title = {{Healthcare Insights}},
+ year = {2023-08-22},
+ note = {{[Online]. Available: https://www.definitivehc.com/resources/healthcare-insights/urgent-care-clinics-us}},
+ urldate = {2024-02-25}
+}
+
+@online{AHA,
+ author = {{American Hospital Association}},
+ title = {{Fast Facts on U.S. Hospitals, 2024}},
+ year = {2024},
+ note = {{[Online]. Available: https://www.aha.org/statistics/fast-facts-us-hospitals}},
+ urldate = {2024-02-25}
+}
+
+@online{AAMC,
+ author = {{Association of American Medical Colleges}},
+ title = {{Workforce Data}},
+ year = {2019},
+ note = {{[Online]. Available: https://www.aamc.org/data-reports/workforce/data/active-physicians-us-doctor-medicine-us-md-degree-specialty-2019}},
+ urldate = {2024-02-25}
+}
+
+@online{CBO,
+ author = {{Congressional Budget Office}},
+ title = {{Research and Development in the Pharmaceutical Industry}},
+ year = {April 2021},
+ note = {{[Online]. Available: https://www.cbo.gov/publication/57126}},
+ urldate = {2024-02-25}
+}
+
+@online{BEAHC,
+ author = {{Bureau of Economic Analysis}},
+ title = {{New Health Care Statistics for First Year of COVID-19 Pandemic}},
+ year = {2023-02-10},
+ note = {{[Online]. Available: https://www.bea.gov/news/blog/2023-02-10/new-health-care-statistics-first-year-covid-19-pandemic}},
+ urldate = {2024-02-25}
+}
+
+@online{BEAHCM,
+ author = {{Bureau of Economic Analysis}},
+ title = {{Experimental Data Map Health Care Estimates in GDP to Centers for Medicare \& Medicaid Framework}},
+ year = {2023-09-25},
+ note = {{[Online]. Available: https://www.bea.gov/news/blog/2023-09-25/experimental-data-map-health-care-estimates-gdp-centers-medicare-medicaid}},
+ urldate = {2024-02-25}
+}
+
+@article{PhysRevLett.87.198701,
+ title = {Efficient Behavior of Small-World Networks},
+ author = {Latora, Vito and Marchiori, Massimo},
+ journal = {Phys. Rev. Lett.},
+ volume = {87},
+ issue = {19},
+ pages = {198701},
+ numpages = {4},
+ year = {2001},
+ month = {Oct},
+ publisher = {American Physical Society},
+ doi = {10.1103/PhysRevLett.87.198701},
+ url = {https://link.aps.org/doi/10.1103/PhysRevLett.87.198701}
+}
+
+@online{HHS,
+ author = {{U.S. Department of Health and Human Services}},
+ title = {{Compliance Enforcement Data}},
+ year = {2024-01-31},
+ note = {{[Online]. Available: https://www.hhs.gov/hipaa/for-professionals/compliance-enforcement/data/numbers-glance/index.html}},
+ urldate = {2024-02-25}
+}
+
+@online{HHSDol,
+ author = {{U.S. Department of Health and Human Services}},
+ title = {{Enforcement Highlights}},
+ year = {2024-01-31},
+ note = {{[Online]. Available:https://www.hhs.gov/hipaa/for-professionals/compliance-enforcement/data/enforcement-highlights/index.html}},
+ urldate = {2024-02-25}
+}
+
+@ARTICLE{10124989,
+ author={Schrick, Noah L. and Hawrylak, Peter J.},
+ journal={IEEE Open Journal of the Computer Society},
+ title={State Space Explosion Mitigation for Large-Scale Attack and Compliance Graphs Using Synchronous Exploit Firing},
+ year={2023},
+ volume={4},
+ number={},
+ pages={147-157},
+ keywords={Firing;Explosions;Automobiles;Computer security;Flexible printed circuits;Cyber-physical systems;Regulation;Attack graph;compliance and regulation;compliance graph;cybersecurity;high-performance computing;speedup;synchronous firing},
+ doi={10.1109/OJCS.2023.3276370}}
+
+
+@online{HHSPen,
+ author = {{U.S. Department of Health and Human Services}},
+ title = {{Resolution Agreements}},
+ year = {2024-02-06},
+ note = {{[Online]. Available: https://www.hhs.gov/hipaa/for-professionals/compliance-enforcement/agreements/index.html}},
+ urldate = {2024-02-25}
+}
+
+@online{HHSCong,
+ author = {{U.S. Department of Health and Human Services}},
+ title = {{Reports to Congress on Privacy Rule and Security Rule Compliance}},
+ year = {2022},
+ note = {{[Online]. Available: https://www.hhs.gov/hipaa/for-professionals/compliance-enforcement/reports-congress/index.html}},
+ urldate = {2024-02-25}
+}
+
+@online{HHSAud,
+ author = {{U.S. Department of Health and Human Services}},
+ title = {{HIPAA Privacy, Security, and Breach Notification Audit Program}},
+ year = {2020},
+ note = {{[Online]. Available: https://www.hhs.gov/hipaa/for-professionals/compliance-enforcement/audit/index.html}},
+ urldate = {2024-02-25}
+}
+
+@online{HHSCE,
+ author = {{U.S. Department of Health and Human Services}},
+ title = {{Case Examples}},
+ year = {2023-11-01},
+ note = {{[Online]. Available: https://www.hhs.gov/hipaa/for-professionals/compliance-enforcement/examples/index.html}},
+ urldate = {2024-02-25}
+}
+
+@online{Census,
+ author = {{United States Census Bureau}},
+ title = {{Oil \& Natural Gas}},
+ year = {2019},
+ note = {{[Online]. Available: https://www.census.gov/history/pdf/api-082021.pdf}},
+ urldate = {2024-02-25}
+}
+
+@online{EnergyGov,
+ author = {{U.S. Department of Energy}},
+ title = {{Economic Impact of Oil \& Gas}},
+ year = {2020},
+ note = {{[Online]. Available: https://www.energy.gov/articles/economic-impact-oil-and-gas}},
+ urldate = {2024-02-25}
+}
+
+@online{IEA,
+ author = {{International Energy Agency}},
+ title = {{R\&D Technology Innovation}},
+ year = {2020},
+ note = {{[Online]. Available: https://www.iea.org/reports/world-energy-investment-2020/rd-and-technology-innovation}},
+ urldate = {2024-02-25}
+}
+
+@online{EIA,
+ author = {{U.S. Energy Information Administration}},
+ title = {{Financial Review of the Global Oil and Natural Gas Industry: Third-Quarter 2023}},
+ year = {December 2023},
+ note = {{[Online]. Available: https://www.eia.gov/finance/review/pdf/3Q2023{\%}20Financial{\%}20Review.pdf}},
+ urldate = {2024-02-25}
+}
+
+@online{oshonline,
+ author = {{Smart, S.J.}},
+ title = {{Keeping Oil and Gas Workers Safe and Avoiding Costly Penalties}},
+ year = {June 2015},
+ note = {{[Online]. Available: https://ohsonline.com/Articles/2015/06/01/Keeping-Oil-and-Gas-Workers-Safe-and-Avoiding-Costly-Penalties.aspx}},
+ urldate = {2024-02-25}
+}
+
+@online{OSHAHist,
+ author = {{U.S. Department of Labor, Occupational Safety and Health Administration}},
+ title = {{Industry Profile for an OSHA Standard Results}},
+ year = {2023},
+ note = {{[Online]. Available: https://www.osha.gov/ords/imis/industryprofile.html}},
+ urldate = {2024-02-25}
+}
+
+@online{OSHAPen,
+ author = {{U.S. Department of Labor, Occupational Safety and Health Administration}},
+ title = {{Standard Number 1903.15 - Proposed Penalties}},
+ year = {2024-01-15},
+ note = {{[Online]. Available: https://www.osha.gov/laws-regs/regulations/standardnumber/1903/1903.15}},
+ urldate = {2024-02-25}
+}
+
+@article{https://doi.org/10.1112/plms/s1-28.1.486,
+author = {Mathews, G. B.},
+title = {On the Partition of Numbers},
+journal = {Proceedings of the London Mathematical Society},
+volume = {s1-28},
+number = {1},
+pages = {486-490},
+doi = {https://doi.org/10.1112/plms/s1-28.1.486},
+url = {https://londmathsoc.onlinelibrary.wiley.com/doi/abs/10.1112/plms/s1-28.1.486},
+eprint = {https://londmathsoc.onlinelibrary.wiley.com/doi/pdf/10.1112/plms/s1-28.1.486},
+year = {1896}
+}
+
+@book{10.5555/98124,
+author = {Martello, Silvano and Toth, Paolo},
+title = {Knapsack Problems: Algorithms and Computer Implementations},
+year = {1990},
+isbn = {0471924202},
+publisher = {John Wiley \& Sons, Inc.},
+address = {USA}
+}
+
+@incollection{RA,
+ author = {Rausand, M},
+ title = {Introduction},
+ booktitle = {Risk Assessment: Theory, Methods, and Applications},
+ publisher = {John Wiley \& Sons Inc.},
+ year = {2013},
+ pages = {1-28},
+ chapter = {1},
+ isbn = {9780470637647}
+}
+
+
+@article{CAPRARA2000333,
+title = {Approximation Algorithms for Knapsack Problems With Cardinality Constraints},
+journal = {European Journal of Operational Research},
+volume = {123},
+number = {2},
+pages = {333-345},
+year = {2000},
+issn = {0377-2217},
+doi = {https://doi.org/10.1016/S0377-2217(99)00261-1},
+url = {https://www.sciencedirect.com/science/article/pii/S0377221799002611},
+author = {Alberto Caprara and Hans Kellerer and Ulrich Pferschy and David Pisinger}
+}
+
+@article{Jangir2018NonDominatedSM,
+ title={Non-Dominated Sorting Moth Flame Optimizer: A Novel Multi-Objective Optimization Algorithm for Solving Engineering Design Problems},
+ author={Pradeep Jangir},
+ journal={Engineering Technology Open Access Journal},
+ year={2018},
+ url={https://api.semanticscholar.org/CorpusID:212452626}
+}
+
+@manual{Octave,
+ title = {{GNU Octave} Version 8.4.0 Manual: A High-Level Interactive Language for Numerical Computations},
+ author = {John W. Eaton and David Bateman and S{\o}ren Hauberg and Rik Wehbring},
+ year = {2023},
+ note = {{[Online]. Available: https://www.gnu.org/software/octave/doc/v8.4.0/}}
+}
+
+@misc{gplv3,
+ title = {{GNU General Public License}},
+ version = {3},
+ shorthand = {GPL},
+ organization = {Free Software Foundation},
+ note = {{[Online]. Available: http://www.gnu.org/licenses/gpl.html}},
+ pagination = {section},
+ language = {english},
+ date = {2007-06-29}
+}
+
+@article{10.1162/106365600568202,
+ author = {Zitzler, Eckart and Deb, Kalyanmoy and Thiele, Lothar},
+ title = "{Comparison of Multiobjective Evolutionary Algorithms: Empirical Results}",
+ journal = {Evolutionary Computation},
+ volume = {8},
+ number = {2},
+ pages = {173-195},
+ year = {2000},
+ month = {06},
+ abstract = "{In this paper, we provide a systematic comparison of various evolutionary approaches to multiobjective optimization using six carefully chosen test functions. Each test function involves a particular feature that is known to cause difficulty in the evolutionary optimization process, mainly in converging to the Pareto-optimal front (e.g., multimodality and deception). By investigating these different problem features separately, it is possible to predict the kind of problems to which a certain technique is or is not well suited. However, in contrast to what was suspected beforehand, the experimental results indicate a hierarchy of the algorithms under consideration. Furthermore, the emerging effects are evidence that the suggested test functions provide sufficient complexity to compare multiobjective optimizers. Finally, elitism is shown to be an important factor for improving evolutionary multiobjective search.}",
+ issn = {1063-6560},
+ doi = {10.1162/106365600568202},
+ url = {https://doi.org/10.1162/106365600568202},
+ eprint = {https://direct.mit.edu/evco/article-pdf/8/2/173/1493199/106365600568202.pdf},
+}
+
+@article{doi:10.1287/mnsc.27.1.1,
+ author = {Fisher, Marshall L.},
+ title = {The Lagrangian Relaxation Method for Solving Integer Programming Problems},
+ journal = {Management Science},
+ volume = {27},
+ number = {1},
+ pages = {1-18},
+ year = {1981},
+ doi = {10.1287/mnsc.27.1.1},
+ URL = {https://doi.org/10.1287/mnsc.27.1.1},
+ eprint = {https://doi.org/10.1287/mnsc.27.1.1}
+}
+
+@article{3c419982-0884-3763-8914-983157eab6e5,
+ ISSN = {0030364X, 15265463},
+ URL = {http://www.jstor.org/stable/168028},
+ abstract = {The usefulness of Lagrange multipliers for optimization in the presence of constraints is not limited to differentiable functions. They can be applied to problems of maximizing an arbitrary real valued objective function over any set whatever, subject to bounds on the values of any other finite collection of real valued functions defined on the same set. While the use of the Lagrange multipliers does not guarantee that a solution will necessarily be found for all problems, it is 'fail-safe' in the sense that any solution found by their use is a true solution. Since the method is so simple compared to other available methods it is often worth trying first, and succeeds in a surprising fraction of cases. They are particularly well suited to the solution of problems of allocating limited resources among a set of independent activities.},
+ author = {Hugh Everett},
+ journal = {Operations Research},
+ number = {3},
+ pages = {399--417},
+ publisher = {INFORMS},
+ title = {Generalized Lagrange Multiplier Method for Solving Problems of Optimum Allocation of Resources},
+ urldate = {2024-03-13},
+ volume = {11},
+ year = {1963}
+}
+
+@inproceedings{Nocedal2018NumericalO,
+ title={Numerical Optimization},
+ author={Jorge Nocedal and Stephen J. Wright},
+ booktitle={Fundamental Statistical Inference},
+ year={2018},
+ url={https://api.semanticscholar.org/CorpusID:189864167}
+}
+
+@Manual{pracma,
+ title = {Pracma: Practical Numerical Math Functions},
+ author = {Hans W. Borchers},
+ year = {2023},
+ note = {{R package version 2.4.4 [Online]. Available: https://CRAN.R-project.org/package=pracma}}
+ }
+
+@article{c8bc284a-942a-3e27-9ea0-6db64782cbb2,
+ ISSN = {00129682, 14680262},
+ URL = {http://www.jstor.org/stable/1909582},
+ abstract = {Several models for limited dependent variables (variables having a non-negligible probability of exactly equaling zero) are examined. Estimation in and discrimination among the various models are considered, followed by a small sampling experiment into the procedures and an example of their application.},
+ author = {John G. Cragg},
+ journal = {Econometrica},
+ number = {5},
+ pages = {829--844},
+ publisher = {[Wiley, Econometric Society]},
+ title = {Some Statistical Models for Limited Dependent Variables With Application to the Demand for Durable Goods},
+ urldate = {2024-03-27},
+ volume = {39},
+ year = {1971}
+}
+
+@article{fc317238-6f24-34d1-86ea-e81c1292d7e9,
+ ISSN = {00401706},
+ URL = {http://www.jstor.org/stable/1269547},
+ abstract = {Zero-inflated Poisson (ZIP) regression is a model for count data with excess zeros. It assumes that with probability p the only possible observation is 0, and with probability 1 - p, a Poisson(λ) random variable is observed. For example, when manufacturing equipment is properly aligned, defects may be nearly impossible. But when it is misaligned, defects may occur according to a Poisson(λ) distribution. Both the probability p of the perfect, zero defect state and the mean number of defects λ in the imperfect state may depend on covariates. Sometimes p and λ are unrelated; other times p is a simple function of λ such as p=1/(1+λ τ) for an unknown constant τ. In either case, ZIP regression models are easy to fit. The maximum likelihood estimates (MLE's) are approximately normal in large samples, and confidence intervals can be constructed by inverting likelihood ratio tests or using the approximate normality of the MLE's. Simulations suggest that the confidence intervals based on likelihood ratio tests are better, however. Finally, ZIP regression models are not only easy to interpret, but they can also lead to more refined data analyses. For example, in an experiment concerning soldering defects on printed wiring boards, two sets of conditions gave about the same mean number of defects, but the perfect state was more likely under one set of conditions and the mean number of defects in the imperfect state was smaller under the other set of conditions; that is, ZIP regression can show not only which conditions give lower mean number of defects but also why the means are lower.},
+ author = {Diane Lambert},
+ journal = {Technometrics},
+ number = {1},
+ pages = {1--14},
+ publisher = {[Taylor & Francis, Ltd., American Statistical Association, American Society for Quality]},
+ title = {Zero-Inflated Poisson Regression, With an Application to Defects in Manufacturing},
+ urldate = {2024-03-27},
+ volume = {34},
+ year = {1992}
+}
+
+@dataset{data,
+ author = {Schrick, Noah and
+ Hawrylak, Peter},
+ title = {Compliance Graph Network Files and Exploit Models},
+ month = jul,
+ year = 2024,
+ publisher = {Zenodo},
+ doi = {10.5281/zenodo.12741129},
+ url = {https://doi.org/10.5281/zenodo.12741129}
+}
+
diff --git a/ACM-JRC/Schrick-Noah_CG.tex b/ACM-JRC/Schrick-Noah_CG.tex
new file mode 100644
index 0000000..a6e732c
--- /dev/null
+++ b/ACM-JRC/Schrick-Noah_CG.tex
@@ -0,0 +1,340 @@
+\documentclass[acmsmall]{acmart}
+\RequirePackage{setspace}
+\usepackage{graphicx} % Images
+\graphicspath{ {./images/} }
+
+\usepackage{float} % Table captions on top
+\floatstyle{plaintop}
+\restylefloat{table}
+
+\usepackage{ifpdf} % Detect PDF or DVI mode
+\usepackage{babel} % Bibliography
+\usepackage{dsfont} % mathbb
+
+\usepackage[utf8]{inputenc}
+\usepackage{indentfirst}
+\setlength{\parskip}{\baselineskip}
+
+% Table of Contents/Figure Spacing
+\usepackage[titles]{tocloft}
+\cftsetindents{figure}{0em}{3.5em}
+\cftsetindents{table}{0em}{3.5em}
+
+\usepackage{dsfont} % mathbb
+\usepackage{amsmath}
+
+\usepackage{url}
+
+\AtBeginDocument{%
+ \providecommand\BibTeX{{%
+ Bib\TeX}}
+}
+
+\setcopyright{acmlicensed}
+\copyrightyear{2024}
+\acmYear{2024}
+\acmDOI{XXXXXXX.XXXXXXX}
+
+%
+%\acmJournal{JRC}
+%\acmVolume{1}
+%\acmNumber{4}
+%\acmArticle{0}
+%\acmMonth{8}
+
+\begin{document}
+
+\title{Generation of Compliance Graphs Across Industries for Providing an Analysis Testbed}
+
+\author{Noah L. Schrick}
+\email{Noah.L.Schrick@erdc.dren.mil}
+\orcid{0000-0003-0875-8927}
+\affiliation{%
+ \institution{Information Technology Laboratory, U.S. Army Corps of Engineers, Engineer Research and Development Center}
+ \city{Vicksburg}
+ \state{Mississippi}
+ \country{USA}
+}
+
+\author{Peter J. Hawrylak}
+\email{peter-hawrylak@utulsa.edu}
+\orcid{0000-0003-3268-7452}
+\affiliation{%}
+ \institution{Tandy School of Computer Science, College of Engineering and Computer Science, The University of Tulsa}
+ \city{Tulsa}
+ \state{Oklahoma}
+ \country{USA}
+}
+
+\begin{abstract}
+ Compliance graphs provide the ability to analyze an environment in terms of its standing to a regulation, mandate, or standard. These graphs are directed acyclic graphs, and share commonalities with attack graphs. Though generator tools and example graph sets are available for attack graphs, the novelty of compliance graphs presents its own set of challenges with a lack of publicly available data that has been processed and formatted in order to generate example graphs. In order to develop analysis techniques for compliance graphs, thorough examination and testing processes should be conducted, particularly on known, available data sets in the form of compliance graphs or compliance graph input files. This work presents the generation of compliance graphs and releases their affiliated data for use in furthering the analysis process of this research area.
+\end{abstract}
+
+%%
+%% The code below is generated by the tool at http://dl.acm.org/ccs.cfm.
+%%
+\begin{CCSXML}
+
+
+ 10003456.10003462
+ Social and professional topics~Computing / technology policy
+ 500
+
+
+ 10010520.10010575
+ Computer systems organization~Dependable and fault-tolerant systems and networks
+ 300
+
+
+ 10010147.10010341.10010342
+ Computing methodologies~Model development and analysis
+ 500
+
+
+ 10002951
+ Information systems
+ 300
+
+
+ 10011007.10010940
+ Software and its engineering~Software organization and properties
+ 300
+
+
+\end{CCSXML}
+
+\ccsdesc[500]{Social and professional topics~Computing / technology policy}
+\ccsdesc[300]{Computer systems organization~Dependable and fault-tolerant systems and networks}
+\ccsdesc[500]{Computing methodologies~Model development and analysis}
+\ccsdesc[300]{Information systems}
+\ccsdesc[300]{Software and its engineering~Software organization and properties}
+
+\keywords{
+ Compliance Graph, Attack Graph, Automotive Industry, Healthcare Industry, HIPAA, Oil and Gas Industry, OSHA 1910H
+}
+
+\received{31 October 2024}
+\received[revised]{XXXXXX}
+\received[accepted]{XXXXXX}
+
+\maketitle
+
+
+\section{Introduction}
+Attack graphs are a common tool used to address and examine a system or set of systems under a cybersecurity lens \cite{AG-Analysis-Explan}. These graphs are directed acyclic graphs (DAGs) that present the paths from a state of information for an environment to any potential state of vulnerability. Compliance graphs \cite{j_hale_compliance_nodate} aim to shift the focus of attack graphs to focus on the standings of environments to any local, private, or federal regulations. Each node in a compliance graph can be embedded with information regarding maintenance schedules for industrial equipment, insurance policy terms, physical component characteristics, or any other descriptor for an asset as it relates to an environment's standing toward compliance. Each edge in the compliance graph defines the transition that leads to a deviation in a previous node's information. These changes could include a repair or replacement of a component, the addition or removal of an asset, or changes to policies. Work and investigations have already been conducted to present the semantic and generator tool changes required to generate these graphs \cite{noah_ths}. Though the generation of compliance graphs has been the primary focus of the research topic, there is an increasing need of analysis work to address the challenges of maintaining compliance. Governance, Risk, and Compliance (GRC) Officers assist groups or organizations with preventing or mitigating incurred costs as a result of a violation of a mandate. With the wide array of mandates that organizations may need to follow regarding health or personally identifiable information (PII), specific industry standards such as FinCEN \cite{fincen}, FDA QSR \cite{fdaqsr}, NERC-CIP \cite{nerccip}, internal standards, or equipment maintenance schedules to avoid voiding a warranty, it becomes increasingly difficult for GRC Officers to manage and track all mandate statuses. In addition, organizations rapidly and frequently bring changes into environments with new software, new equipment, new products, new contracts, or new processes. Each of these changes propagates additional change, all of which may affect the standing in regard to a compliance or regulation mandate. Rather than manual compliance checks, compliance graphs can be automatically generated, and analysis can be conducted on the resulting graph to aid in decision-making and visualization.
+
+To determine the adaptivity and soundness of compliance graph analysis work, example networks across multiple, disconnected sectors are generated in this work for future analysis use. These sectors maintain their own different set of local, private, and federal regulations that must be adhered to in order to avoid penalties. For the generated examples, each additionally possesses unique characteristics and properties that allow for the examination of the depth and range of any compliance graph analysis techniques, especially under the consideration of edge cases or unexpected behaviors. To fully examine the accuracy and level of analysis output detail, this work strove to generate example cases that were accurately sourced, described fully, scalable, and of high fidelity. This work presents and describes the example networks that can be used and referenced for future compliance graph analysis works. Section \ref{sec:Automotive} describes the Automobile Maintenance application that falls under the automotive industry. Section \ref{sec:Healthcare} describes a small network of healthcare clinics striving to maintain HIPAA \cite{noauthor_health_1996} compliance through the lens of the healthcare industry. Section \ref{sec:OSHA} describes an engineering firm as they attempt to maintain compliance with OSHA Standard 1910 Subpart H (Hazardous Materials) \cite{OSHA} within the oil and gas industry of the energy sector. Each of these example networks has been made publicly available, and their data files can be found at \cite{data}.
+
+For each example network in the subsequent Sections, their properties are described. These properties are defined below. Each compliance graph was generated using a modified version of RAGE \cite{RAGE}.
+\begin{itemize}
+ \item{Nodes: The number of states in the network that contain embedded information.}
+ \item{Edges: The number of edges in the network that caused a change or deviation from a prior state.}
+ \item{Exploits: The number of events, mandates, regulations, or checks that are investigated.}
+ \item{Assets: The number of entities in the network or environment. Examples include devices, vessels, people, policies, etc.}
+ \item{Qualities: The total number of descriptors for all assets. Examples include versions, make or model, material, policy limits, etc.}
+ \item{Average Degree: The average number of new nodes that a node directs to.}
+\end{itemize}
+
+\section{Automotive} \label{sec:Automotive}
+The automotive industry is a substantial sector in the United States, and is one of the largest automotive markets globally \cite{AutoInd}. This industry invests \$7.5 billion in innovative R\&D, supports over 500,000 direct jobs in the US alone, has a Foreign Direct Investment of over \$115 billion, and expands the US exports by over \$56 billion \cite{AutoInd}, \cite{AutoIndFS}, \cite{BEAFS}, \cite{BEATables}, \cite{BEATablesOutput}. This work includes a compliance graph within this sector as a means to showcase its application and utility for analyzing cost-savings and methodologies for following compliance mandates. Specifically, this work examines the Automotive Repair and Maintenance Service subsector of this industry. This subsector is globally applicable, and has a wide range of focal points and scale that include personal passenger vehicle maintenance and commercial vehicle servicing. This market has an estimated CAGR (Compounded Annual Growth Rate) of 10.2\%, and passenger car maintenance holds a market share of 35\% \cite{GMInsight}. Due to the size of this market share, its applicability, its ease-of-understanding in compliance graph format, and its ability to scale to larger, more complex challenges in the automotive industry, this work generates and analyzes an automobile maintenance compliance graph. This Section discusses the generation process, graph properties, unique features, and incurred challenges with this example application.
+
+\subsection{Network Properties, Data, and Violation Specifications}
+The automobile maintenance example is centered around the maintenance of a single, 2006 Toyota Corolla over the span of 6 years. For this example, the compliance requirements follow the provided warranty and maintenance specifications as provided by the vehicle manufacturer. This document is accessible through the manufacturer's website \cite{Corolla}. The maintenance schedule provides the recommended maintenance routine based on either mileage or time since last maintenance, depending on which condition is met sooner. Following the recommended maintenance schedule is imperative to comply with any vendor or purchaser warranty, as well as to ensure proper operating conditions of the vehicle. Compliance graph generator input files were created following the maintenance document, and the properties for the generated automotive maintenance compliance graph are listed below.
+\begin{itemize}
+ \item{Number of Nodes: 66,945}
+ \item{Number of Edges: 468,221}
+ \item{Number of Exploits: 28}
+ \item{Number of Qualities: 93}
+ \item{Number of Assets: 1}
+ \item{Average Degree: 6.994}
+\end{itemize}
+
+Properties and assumptions of the Toyota Corolla are listed below.
+\begin{itemize}
+ \item{The vehicle is brand new, with 0 miles.}
+ \item{It has a gas engine.}
+ \item{It is an automatic.}
+ \item{It includes a daytime running light system.}
+ \item{The owner will perform minimal maintenance every 6 months or 6000 miles:}
+ \begin{itemize}
+ \item{Oil and fuel filter change.}
+ \item{AC filter replacement.}
+ \item{Maintain proper tire pressure.}
+ \end{itemize}
+ \item{The owner will take the vehicle to a mechanic shop every 1 year and 6 months for the following inspections and repairs:}
+ \begin{itemize}
+ \item{Drive Belts}
+ \item{Battery}
+ \item{Spark Plugs}
+ \item{Brake Pedals}
+ \item{Brake Pads and Discs}
+ \item{Tires (Pressure, Alignment, Rotation)}
+ \item{Lights, Horn, Wipers, Windshield Washers}
+ \item{Refrigerant and Coolant}
+ \end{itemize}
+ \item{Additional components modeled in this compliance graph include:}
+ \begin{itemize}
+ \item{Fuel tank lines}
+ \item{Steering wheel, linkage, and gear box}
+ \item{Brake pipes and hoses}
+ \item{Drive shaft boots}
+ \item{Suspension ball joints}
+ \item{Front and rear suspensions}
+ \item{Fuel tank cap, lines, connections, and fuel vapor control valve}
+ \end{itemize}
+\end{itemize}
+
+For this example, there is a single asset used to represent the 2006 Toyota Corolla. All parts, maintenances, timelines, properties, or any other features or components were considered to be a ``quality" of the asset. By reducing the example graph to center around a single asset, state space explosion is able to be mitigated by preventing the deviation and permutation exploration of assets. Various exploit locks and flags were also implemented to prevent diverting, duplicated branches of simultaneous exploit triggers. This was implemented through the use of precondition guarding, and was necessary since exploits could be fired through either time or mileage, but should only be fired once. Additionally, the problem space was able to be reduced through the use of combined events. Rather than having exploits or events contain single quality changes, events could be grouped to update multiple qualities simultaneously. This was implemented through maintenance events, which acted as the single point of action for all inspections, repairs, maintenances, or any other event that would service the vehicle and return it to a state of compliance. To further prevent divergence, all pre-defined events were also described using locks and flags, so the event (e.g. a traffic citation for a broken brake light) would happen a single time at a specific point in the generation.
+
+The data sourcing for the violation specifications and prior-knowledge network consisted of maintenance and repair estimates at large, as well as for individual components or malfunctions. This also included mileages per year, by month, and various other personal automobile transportation statistics. Sourcing was collected from government entities like the Department of Energy \cite{carDOE}, Department of Transportation \cite{carDOT}, and Federal Highway Administration \cite{carFWHA}, aggregated car performance, reliability, and safety reports from Consumer Reports \cite{carCR}, and insurance companies like AAA \cite{carAAA}, Farmers \cite{carFarmers}, and external reports \cite{carExt}. At the time of this release, the prior-knowledge network is undergoing additional formatting and feature work before its release. The prior-knowledge networks are intended to be added to the released dataset, and the initial work is described in this publication. The prior-knowledge network contained additional detail about each exploit in the network. For each exploit, the cost of occurrence was described. These costs were expressed as one-time monetary costs, recurring monetary costs and their rate of charge, and one-time time-commitment costs, recurring time-commitment costs and their rate of charge. For each exploit, possible mitigation schemes were described. Each exploit could have zero or many mitigation options. Each mitigation option described one-time monetary costs, recurring monetary costs and their rate of charge, and one-time time-commitment costs, recurring time-commitment costs and their rate of charge for preventing the exploit. For this example, most exploits had at least one mitigation that was represented as a maintenance or service event.
+
+\subsection{Objectives and Goals of the Network}
+The primary objective of this example is to highlight the usefulness of the analysis methods for small, individual scale problems. Though the analysis methods are intended to work at a large scale, showcasing the utility of the approaches at a daily, understandable, personal level can lead to a greater adoption. In addition, this example network has unique properties not seen in the other example networks. This network is isolated to a single asset to highlight how the analysis methods can function even when centered on only one object of interest. Budgetary constraints are allocated at a monthly rate, rather than through lump sums. Many individuals may be able to allocate a limited amount of their monthly income to repairs and maintenance, but may have a more difficult time paying for unexpected costs and repairs all at once. This example includes a large number of qualities in proportion to the number of assets, and bolsters how effective the analysis techniques are when given more information. This example showcases how repeated, consistent, small-scale investments in repair and maintenance pay off significantly over the lifespan of a vehicle in terms of avoided malfunctions, damages, or fines.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{Healthcare} \label{sec:Healthcare}
+The healthcare industry is another significant sector in the United States, and accounts for 17.3\% of the GDP \cite{CMS, WB, OECD, CDC}. National Health Expenditures (NHE) have grown to over \$4.5 trillion \cite{CMS, WB, OECD, CDC, BEAHC}, Medicare and Medicaid spending have grown to over \$944 billion and over \$805 billion, respectively \cite{CMS, CDC, BEAHCM}, R\&D spending has grown to over \$114 billion spread across biotechnology, nanotechnology, and software \cite{NCSES} (with \$83 billion in the pharmaceutical industry alone \cite{CBO}), and there are over 6,100 \cite{AHA} hospitals, 10,200 urgent care clinics \cite{DefHC}, and 938,000 active physicians \cite{AAMC}. This work includes a compliance graph within this sector as a means to showcase its application and utility for analyzing cost-savings and methodologies for following compliance mandates. This work examines compliance of the Health Insurance Portability and Accountability Act (HIPAA) \cite{noauthor_health_1996}. This is a broadly applicable federal act that mandates proper handling for the containment and dissemination of all healthcare information. HIPAA complaints have now exceeded 350,000, with 2,074 complaints being referred to the U.S. Department of Justice \cite{HHS}. A total dollar amount exceeding \$142 million has been collected as a result of noncompliance \cite{HHSDol}. The Office for Civil Rights of the U.S. Department of Health and Human Services have reported the following as the most common occurrences of noncompliance complaints \cite{HHSDol}:
+\begin{itemize}
+ \item{``Impermissible uses and disclosures of protected health information."}
+ \item{``Lack of safeguards of protected health information."}
+ \item{``Lack of patient access to their protected health information."}
+ \item{``Lack of administrative safeguards of electronic protected health information."}
+ \item{``Use or disclosure of more than the minimum necessary protected health information."}
+\end{itemize}
+
+Due to the applicability of HIPAA to all healthcare related activities and processing, the quantity of noncompliance complaints, and the total monetary collection as a result of noncompliance, this work generates and analyzes a HIPAA compliance graph. This Section discusses the generation process, graph properties, unique features, and incurred challenges with this example application.
+
+\subsection{Network Properties, Data, and Violation Specifications}
+The HIPAA example is centered around a network of urgent care clinics and their compliance to HIPAA over the span of one year. For this example, the compliance requirements follow the provided guidelines as set by HIPAA. Since this is a federal regulation, specific guidelines and mandates are publicly accessible through the U.S. Department of Health and Human Services, as well as with summaries through the Center for Disease Control. HIPAA necessitates a range of requirements be met to ensure compliance, which include document control, training, reporting options, officers, physical and digital access control, and mandatory assessments. Compliance graph generator input files were created following the HIPAA guidelines, and the properties for the generated HIPAA compliance graph are listed below.
+
+\begin{itemize}
+ \item{Number of Nodes: 62,217}
+ \item{Number of Edges: 400,917}
+ \item{Number of Exploits: 27}
+ \item{Number of Qualities: 62}
+ \item{Number of Assets: 5}
+ \item{Average Degree: 6.444}
+\end{itemize}
+
+Properties and assumptions of the urgent care clinics are listed below.
+\begin{itemize}
+ \item{Each clinic has five employees.}
+ \item{The organization has an in-house IT staff (that is \textbf{not} modeled).}
+ \item{Each clinic will submit a HIPAA attestation letter.}
+ \item{HIPAA attestation letters are not sent simultaneously.}
+ \item{Each employee has a different renewal date for their trainings.}
+ \item{Employee trainings and requirements enforced by the organization include the following:}
+ \begin{itemize}
+ \item{HIPAA training.}
+ \item{Mobile and/or portable device regulation agreements.}
+ \item{Hardware inventories.}
+ \item{Security awareness.}
+ \end{itemize}
+ \item{There are three total, distinct HIPAA officers:}
+ \begin{itemize}
+ \item{HIPAA Compliance Officer}
+ \item{HIPAA Privacy Officer}
+ \item{HIPAA Security Officer}
+ \end{itemize}
+ \item{Audits and assessments include:}
+ \begin{itemize}
+ \item{Security risk assessment.}
+ \item{Privacy standing audit.}
+ \item{HIPAA audit.}
+ \item{Security standing audit.}
+ \item{Physical audit.}
+ \item{Device and asset audit.}
+ \end{itemize}
+ \item{Additional components modeled in this compliance graph include:}
+ \begin{itemize}
+ \item{An encrypted database.}
+ \item{Reporting processes.}
+ \item{A ``company" asset that is independent of the employee and database assets.}
+ \item{Certificate expirations.}
+ \end{itemize}
+\end{itemize}
+
+For this example, multiple assets are implemented to capture and model their relationships individually, as well as to other assets. These assets include employee assets, a database asset, and a company asset which is used to model the organization overall. Each asset had its own set of qualities, and their own quality for measuring the progression of time. In order to prevent unnecessary state space exploration on unfeasible states caused by a deviation in time progression, a synchronous firing feature \cite{10124989} in the generator tool was used. Various exploit locks and flags were also implemented to prevent diverting, duplicated branches of simultaneous exploit triggers. This was implemented through the use of precondition guarding, and was necessary since exploits could be fired through multiple conditions, but should only be fired once. Additionally, the problem space was able to be reduced through the use of combined events. Rather than having exploits or events contain single quality changes, events could be grouped to update multiple qualities simultaneously. This was implemented through audit, assessment, or time-based events, which acted as a single point of action for all assessments, audits, services, or any other event that would correct any violation and return the organization to a state of compliance. To further prevent divergence, all pre-defined events were also described using locks and flags, so the event (e.g. an addition to or the removal of the number of employees) would happen a single time at a specific point in the generation.
+
+The data sourcing for the violation specifications and prior-knowledge network consisted of imposed civil monetary penalties for noncompliance, time closures for noncompliance, and implementation or mitigation costs to prevent a compliance violation. At the time of this release, the prior-knowledge network is undergoing additional formatting and feature work before its release. The prior-knowledge networks are intended to be added to the released dataset, and the initial work is described in this publication. The penalty structure as set by the Office for Civil Rights (OCR) consists of four tiers. Tier 1 is defined as a lack of knowledge of the violation, Tier 2 is for having reasonable cause for possessing knowledge of the violation, Tier 3 is for willful neglect, and Tier 4 is for willful neglect and a lack of correction within 30 days. Each tier has an associated minimum and maximum, with annual caps. These violations are stipulated by the Office of Management and Budget (OMB). In addition, the U.S. Department of Health and Human Services publishes a yearly summary of all OCR HIPAA settlements and judgments \cite{HHSPen}. Reports to Congress \cite{HHSCong}, audits \cite{HHSAud}, and case examples \cite{HHSCE} are also published. The prior-knowledge network was constructed around all publicly available sources, and contained additional detail about each exploit in the network. For each exploit, the cost of occurrence was described. These costs were expressed as one-time monetary costs, recurring monetary costs and their rate of charge, and one-time time-commitment costs, recurring time-commitment costs and their rate of charge. For each exploit, possible mitigation schemes were described. Each exploit could have zero or many mitigation options. Each mitigation option described one-time monetary costs, recurring monetary costs and their rate of charge, and one-time time-commitment costs, recurring time-commitment costs and their rate of charge for preventing the exploit. For this example, most exploits had two mitigations. This will be described further in Section \ref{sec:hipaa-obj}.
+
+\subsection{Objectives and Goals of the Network} \label{sec:hipaa-obj}
+The primary objective of this example is to highlight the usefulness of the analysis methods for broadly applicable regulations. Though the input for this specific example was a network of urgent care clinics, the methods, procedure, and output would be largely similar to an input of a pharmacy, hospital, or biotechnology company. In addition, this example network has unique properties not seen in the other example networks. This network includes the addition and removal of employees, and attempts to mimic the behaviors of individuals. Though no claims of human behavior modeling is claimed, this work statically made events that were executed during the generation process as a way to represent human error (such as failing to complete a mandatory training). For the analysis of this work, this example showcases how a company could invest more time, rather than money, to maintain compliance. Most mitigatable exploits include at least two mitigations: one for contracting a correction, and one for utilizing the in-house staff. The contracting option requires minimal time cost, but has a greater monetary cost. The in-house implementation requires minimal monetary cost, but a greater time cost. This allows for the analysis to offer more robust correction schemes that can utilize both the monetary and time budgets to minimize and correct compliance violations.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{Oil and Gas} \label{sec:OSHA}
+The oil and gas industry contributes roughly 8\% of the U.S. GDP, totaling to nearly \$1.7 trillion \cite{Census}. This industry supports over 10 million jobs \cite{Census, EnergyGov}, invests over \$30 billion in R\&D spending \cite{IEA}, and 72\% of companies had positive free cash flow in the last year, with 86\% reporting positive upstream earning \cite{EIA}. This work includes a compliance graph within this sector as a means to showcase its application and utility for analyzing cost-savings and methodologies for following compliance mandates. This subsector is globally applicable, and has a wide range of focal points and scale that include upstream, midstream, and downstream related services and processes. Specifically, this work examines the processing, transportation, and storage of oil and gas related products, byproducts, and intermediates as they relate to Occupational Safety and Health Administration (OSHA) regulations, and in particular, Standard 1910, Subpart H - Hazardous Materials \cite{OSHA}. In past years, the top 10 OSHA standard citations were from Standard 1910 \cite{oshonline}. From 2022 to 2023, specifically for Standard 1910 Subpart H, there were a total of 996 citations, 589 investigations, and a total imposed civil monetary fines of \$4,995,005 across relevant North American Industry Classification System (NAICS) sectors \cite{OSHAHist}. Due to the applicability of OSHA Standard 1910 Subpart H to all Hazardous Material related activities of the oil and gas industry and relevant subsectors, the quantity of noncompliance complaints, and the total monetary collection as a result of noncompliance, this work generates and analyzes an OSHA 1910H compliance graph. This Section discusses the generation process, graph properties, unique features, and incurred challenges with this example application.
+
+\subsection{Network Properties, Data, and Violation Specifications}
+The OSHA 1910H example is centered an oil and gas company that processes, transports, and stores oil and gas related products, byproducts, and intermediates. This example models and analyzes their compliance standings to OSHA Standard 1910 Subpart H - Hazardous Materials over the course of 8 years. Since this is a federal regulation, specific guidelines and mandates are publicly accessible through the Occupational Safety and Health Administration. OSHA Standard 1910 Subpart H necessitates a range of requirements be met to ensure compliance, which include requirements for specific hazardous materials such as compressed gases, acetylene, flammable liquids, chemicals, and waste, among others. Compliance graph generator input files were created following the OSHA guidelines, and the properties for the generated OSHA compliance graph are listed below.
+
+\begin{itemize}
+ \item{Number of Nodes: 48,369}
+ \item{Number of Edges: 408,330}
+ \item{Number of Exploits: 32}
+ \item{Number of Qualities: 109}
+ \item{Number of Assets: 3}
+ \item{Average Degree: 8.442}
+\end{itemize}
+
+Properties and assumptions of the oil and gas company are listed below.
+\begin{itemize}
+ \item{The company has separate divisions for transportation, storage, and processing.}
+ \item{The organization has an in-house Safety staff (that is \textbf{not} modeled).}
+ \item{The company has an in-house fabrication/machining/manufacturing shop.}
+ \item{The company has ownership of the vehicle transportation fleet.}
+ \item{In addition to any imposed fines, failures or malfunctions can and/or will cause additional damages, such as:}
+ \begin{itemize}
+ \item{Leakage or spillage.}
+ \item{Gaseous emissions.}
+ \item{Contamination.}
+ \item{Physical damage to company and/or non-company assets.}
+ \item{Burst pipes.}
+ \item{Schedule delays.}
+ \item{Violations in contracts.}
+ \end{itemize}
+ \item{As part of, and in addition to, upholding OSHA 1910 Subpart H requirements, examples of other compliance standards include:}
+ \begin{itemize}
+ \item{ASTM A 53/A 53M-06a into § 173.5b}
+ \item{CGA Pamphlet G-2.2 into § 173.315}
+ \item{Dwg. 106-6 into § 178.337-8}
+ \item{ASTM A 20/A 20M-93a into §§ 178.337-2; 179.102-4; 179.102-1; 179.102-17}
+ \item{ASTM A 302/A 302M-93 into § 179.100-7; 179.200-7; 179.220-7}
+ \item{Among others.}
+ \end{itemize}
+ \item{Inspections include specific testing, such as:}
+ \begin{itemize}
+ \item{Plastic Film Impact Resistance Testing.}
+ \item{Chlorine Flow Valve Removable Baskets.}
+ \item{Water in Anhydrous Ammonia.}
+ \item{Anhydrous Ammonia Hose pressure and burst pressures.}
+ \end{itemize}
+ \item{Additional components modeled in this compliance graph include:}
+ \begin{itemize}
+ \item{Ventiliation and exhaust systems.}
+ \item{Coatings, castings, and materials.}
+ \item{Transportation staff.}
+ \item{Bleeder valves, backflow check valves, and bin discharge gates.}
+ \end{itemize}
+\end{itemize}
+
+For this example, multiple assets are implemented to capture and model their relationships individually, as well as to other assets. These assets include transportation, ventilation, and vessel assets. Each asset had its own set of qualities, and their own quality for measuring the progression of time. In order to prevent unnecessary state space exploration on unfeasible states caused by a deviation in time progression, a synchronous firing feature \cite{10124989} in the generator tool was used. Various exploit locks and flags were also implemented to prevent diverting, duplicated branches of simultaneous exploit triggers. This was implemented through the use of precondition guarding, and was necessary since exploits could be fired through multiple conditions, but should only be fired once. Additionally, the problem space was able to be reduced through the use of combined events. Rather than having exploits or events contain single quality changes, events could be grouped to update multiple qualities simultaneously. This was implemented through inspection, assessment, or time-based events, which acted as a single point of action for all assessments, inspections, repairs, services, or any other event that would correct any violation and return the organization to a state of compliance. To further prevent divergence, all pre-defined events were also described using locks and flags, so the event (e.g. challenges with design scope, or improperly fabricated parts) would happen a single time at a specific point in the generation.
+
+The data sourcing for the violation specifications and prior-knowledge network consisted of imposed civil monetary penalties for noncompliance, time closures for noncompliance, and implementation or mitigation costs to prevent a compliance violation. At the time of this release, the prior-knowledge network is undergoing additional formatting and feature work before its release. The prior-knowledge networks are intended to be added to the released dataset, and the initial work is described in this publication. The penalty structure as set by the Occupational Safety and Health Administration is defined as per Standard 1903.15 - Inspections, Citations, and Proposed Penalties \cite{OSHAPen}. These penalties are categorized by type of violation, which include willful violations, repeated violations, serious violations, other-than-serious violations, and posting requirement violation. Each of these categories has a defined maximum penalty, with some categories having minimum requirements, and with some categories including units of time (e.g. monetary penalties per day). The prior-knowledge network was constructed around all publicly available sources, and contained additional detail about each exploit in the network. Damages, as relevant, were estimated in terms of costs of repairs, repeated fabrications, or other fines as necessary. No estimations were made regarding environmental damage, damages to animal or wildlife populations, or any other type of damages. For each exploit, the cost of occurrence was described. These costs were expressed as one-time monetary costs, recurring monetary costs and their rate of charge, and one-time time-commitment costs, recurring time-commitment costs and their rate of charge. For each exploit, possible mitigation schemes were described. Each exploit could have zero or many mitigation options. Each mitigation option described one-time monetary costs, recurring monetary costs and their rate of charge, and one-time time-commitment costs, recurring time-commitment costs and their rate of charge for preventing the exploit. For this example, most exploits had two mitigations. This will be described further in Section \ref{sec:osha-obj}.
+
+\subsection{Objectives and Goals of the Network} \label{sec:osha-obj}
+The primary objective of this example is to highlight the usefulness of the analysis methods for preventing or mitigating larger, more catastrophic events or penalties. Many events or exploits would lead to further, repeated or increased damages. This example highlights the effectiveness of how investing in better policies, procedures, materials, and quality of components has substantial cost-saving benefits over time. This example network has unique properties not seen in the other example networks. This network includes cascading or repeated costs. If one (or multiple) components fall into a state of noncompliance, the resulting fines and damage costs increase. For the analysis of this work, this example showcases how a company could invest earlier on in a company project to maintain compliance and avoid cascading costs. This example also includes the ability to invest more time, rather than monetary investments. Most mitigatable exploits include at least two mitigations: one for including longer timeframes for inspections, testing, and quality control, and another for investing in better quality material, machinery, and staff investment. The latter option requires minimal time cost, but has a greater monetary cost. The former requires minimal monetary cost, but a greater time cost. This allows for the analysis to offer more robust correction schemes that can utilize both the monetary and time budgets to minimize and correct compliance violations.
+
+\section{Future Works}
+Due to the novelty of compliance graphs, there are multiple avenues available for future research investigations. This work provided the compliance graph input and output files for the RAGE Attack Graph Engine. Future works could include the output compliance graphs when using these input files for alternative generator tools. The output compliance graphs could undergo a comparison to identify or uncover information that could assist in future analysis works. The compliance graph analysis space would also benefit both from a broader range of compliance graphs, and compliance graphs with finer detail. Though this work implemented a compliance graph for OSHA 1910H, the various standards and guidelines that fit under this regulation (such as various ASTM standards) possess more detail and information than was incorporated in this example. Including full, in-depth input files that describe all details of a regulation would provide researchers the tools to conduct a thorough investigation into compliance graph analysis.
+Future works are likely to include additional input files that describe potential mitigation or solution opportunities for known states of noncompliance. These input files would not be included as part of the generation process, but could be used to further describe the known nodes and edges of a given compliance graph. These files could indicate transitional probabilities or weights of edges, the fines or penalties when states of noncompliance are identified, or the costs of repair or replacement of components.
+
+\section{Conclusion}
+This work presented the generation process of three distinct compliance graphs across three unique industries. The generation of each of these example graphs was described in each respective Section along with the data sourcing techniques. The output files of these graphs have been publicly released, along with their input data files. This work aims to provide a starting foundation for compliance graph analysis through example cases that can be explored and improved upon. The automobile maintenance network provides a compliance graph that describes the state of a personal vehicle over a period of time as it relates to the recommended maintenance schedule provided by the vehicle manufacturer. The healthcare network provides a compliance graph that describes the state of an urgent care clinic as it strives to maintain compliance to HIPAA. The oil and gas network provides a compliance graph that describes the state of an oil and gas company as it transports, stores, and processes hazardous material and works to maintain compliance to OSHA 1910H. Each of these example networks contains unique properties that highlights edge cases and insightful information about each industry and various compliance and noncompliance information.
+
+\addcontentsline{toc}{section}{Bibliography}
+\bibliography{Bibliography}
+\bibliographystyle{ieeetr}
+\end{document}
\ No newline at end of file
diff --git a/ACM-JRC/acm-jdslogo.png b/ACM-JRC/acm-jdslogo.png
new file mode 100644
index 0000000..9772aed
Binary files /dev/null and b/ACM-JRC/acm-jdslogo.png differ
diff --git a/ACM-JRC/acmart-primary/.gitignore b/ACM-JRC/acmart-primary/.gitignore
new file mode 100644
index 0000000..a39596f
--- /dev/null
+++ b/ACM-JRC/acmart-primary/.gitignore
@@ -0,0 +1,34 @@
+acmart.cls
+acmart.pdf
+acmguide.pdf
+samples/sample-*.pdf
+*.log
+*.aux
+*.cfg
+*.glo
+*.idx
+*.toc
+*.ilg
+*.ind
+*.out
+*.lof
+*.lot
+*.bbl
+*.blg
+*.gls
+*.cut
+*.hd
+*.dvi
+*.ps
+*.thm
+*.tgz
+*.zip
+*.rpi
+*~
+*.bcf
+*.run.xml
+samples/ACM-Reference-Format.bst
+samples/*.tex
+samples/*.bbx
+samples/*.cbx
+samples/*.dbx
\ No newline at end of file
diff --git a/ACM-JRC/acmart-primary/ACM-Reference-Format.bst b/ACM-JRC/acmart-primary/ACM-Reference-Format.bst
new file mode 100644
index 0000000..c47cb4c
--- /dev/null
+++ b/ACM-JRC/acmart-primary/ACM-Reference-Format.bst
@@ -0,0 +1,3081 @@
+%%% -*-BibTeX-*-
+%%% ====================================================================
+%%% @BibTeX-style-file{
+%%% author = "Nelson H. F. Beebe, Boris Veytsman and Gerald Murray",
+%%% version = "2.1",
+%%% acmart-version = "1.90",
+%%% date = "Mar 26 2023",
+%%% filename = "ACM-Reference-Format.bst",
+%%% email = "borisv@lk.net, boris@varphi.com",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "ACM Transactions bibliography style; BibTeX",
+%%% license = "public domain",
+%%% supported = "yes",
+%%% abstract = "",
+%%% }
+%%% ====================================================================
+
+%%% Revision history: see source in git
+
+ENTRY
+ { address
+ advisor
+ archiveprefix
+ author
+ booktitle
+ chapter
+ city
+ date
+ edition
+ editor
+ eprint
+ eprinttype
+ eprintclass
+ howpublished
+ institution
+ journal
+ key
+ location
+ month
+ note
+ number
+ organization
+ pages
+ primaryclass
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ % New keys recognized
+ issue % UTAH: used in, e.g., ACM SIGSAM Bulletin and ACM Communications in Computer Algebra
+ articleno
+ eid
+ day % UTAH: needed for newspapers, weeklies, bi-weeklies
+ doi % UTAH
+ url % UTAH
+ bookpages % UTAH
+ numpages
+ lastaccessed % UTAH: used only for @Misc{...}
+ coden % UTAH
+ isbn % UTAH
+ isbn-13 % UTAH
+ issn % UTAH
+ lccn % UTAH
+ distinctURL % whether to print url if doi is present
+ }
+ {}
+ { label.year extra.label sort.year sort.label basic.label.year}
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+INTEGERS { show-isbn-10-and-13 } % initialized below in begin.bib
+
+INTEGERS { nameptr namesleft numnames }
+
+INTEGERS { multiresult }
+
+INTEGERS { len }
+
+INTEGERS { last.extra.num }
+
+STRINGS { s t t.org u }
+
+STRINGS { last.label next.extra }
+
+STRINGS { p1 p2 p3 page.count }
+
+
+FUNCTION { not }
+{
+ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION { and }
+{
+ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION { or }
+{
+ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+
+FUNCTION { dump.stack.1 }
+{
+ duplicate$ "STACK[top] = [" swap$ * "]" * warning$
+}
+
+FUNCTION { dump.stack.2 }
+{
+ duplicate$ "STACK[top ] = [" swap$ * "]" * warning$
+ swap$
+ duplicate$ "STACK[top-1] = [" swap$ * "]" * warning$
+ swap$
+}
+
+FUNCTION { empty.or.unknown }
+{
+ %% Examine the top stack entry, and push 1 if it is empty, or
+ %% consists only of whitespace, or is a string beginning with two
+ %% queries (??), and otherwise, push 0.
+ %%
+ %% This function provides a replacement for empty$, with the
+ %% convenient feature that unknown values marked by two leading
+ %% queries are treated the same as missing values, and thus, do not
+ %% appear in the output .bbl file, and yet, their presence in .bib
+ %% file(s) serves to mark values which are temporarily missing, but
+ %% are expected to be filled in eventually once more data is
+ %% obtained. The TeX User Group and BibNet bibliography archives
+ %% make extensive use of this practice.
+ %%
+ %% An empty string cannot serve the same purpose, because just as in
+ %% statistics data processing, an unknown value is not the same as an
+ %% empty value.
+ %%
+ %% At entry: stack = ... top:[string]
+ %% At exit: stack = ... top:[0 or 1]
+
+ duplicate$ empty$
+ { pop$ #1 }
+ { #1 #2 substring$ "??" = }
+ if$
+}
+
+FUNCTION { empty.or.zero }
+{
+ %% Examine the top entry and push 1 if it is empty, or is zero
+ duplicate$ empty$
+ { pop$ #1 }
+ { "0" = }
+ if$
+}
+
+
+FUNCTION { writeln }
+{
+ %% In BibTeX style files, the sequences
+ %%
+ %% ... "one" "two" output
+ %% ... "one" "two" output.xxx
+ %%
+ %% ship "one" to the output file, possibly following by punctuation,
+ %% leaving the stack with
+ %%
+ %% ... "two"
+ %%
+ %% There is thus a one-string lag in output processing that must be
+ %% carefully handled to avoid duplicating a string in the output
+ %% file. Unless otherwise noted, all output.xxx functions leave
+ %% just one new string on the stack, and that model should be born
+ %% in mind when reading or writing function code.
+ %%
+ %% BibTeX's asynchronous buffering of output from strings from the
+ %% stack is confusing because newline$ bypasses the buffer. It
+ %% would have been so much easier for newline to be a character
+ %% rather than a state of the output-in-progress.
+ %%
+ %% The documentation in btxhak.dvi is WRONG: it says
+ %%
+ %% newline$ Writes onto the bbl file what's accumulated in the
+ %% output buffer. It writes a blank line if and only
+ %% if the output buffer is empty. Since write$ does
+ %% reasonable line breaking, you should use this
+ %% function only when you want a blank line or an
+ %% explicit line break.
+ %%
+ %% write$ Pops the top (string) literal and writes it on the
+ %% output buffer (which will result in stuff being
+ %% written onto the bbl file when the buffer fills
+ %% up).
+ %%
+ %% Examination of the BibTeX source code shows that write$ does
+ %% indeed behave as claimed, but newline$ sends a newline character
+ %% directly to the output file, leaving the stack unchanged. The
+ %% first line "Writes onto ... buffer." is therefore wrong.
+ %%
+ %% The original BibTeX style files almost always use "write$ newline$"
+ %% in that order, so it makes sense to hide that pair in a private
+ %% function like this one, named after a statement in Pascal,
+ %% the programming language embedded in the BibTeX Web program.
+
+ write$ % output top-of-stack string
+ newline$ % immediate write of newline (not via stack)
+}
+
+FUNCTION { init.state.consts }
+{
+ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+}
+
+FUNCTION { output.nonnull }
+{ % Stack in: ... R S T Stack out: ... R T File out: S
+ 's :=
+ output.state mid.sentence =
+ {
+ ", " * write$
+ }
+ {
+ output.state after.block =
+ {
+ add.period$ writeln
+ "\newblock " write$
+ }
+ {
+ output.state before.all =
+ {
+ write$
+ }
+ {
+ add.period$ " " * write$
+ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION { output.nonnull.dot.space }
+{ % Stack in: ... R S T Stack out: ... R T File out: S
+ 's :=
+ output.state mid.sentence = % { ". " * write$ }
+ {
+ ". " * write$
+ }
+ {
+ output.state after.block =
+ {
+ add.period$ writeln "\newblock " write$
+ }
+ {
+ output.state before.all =
+ {
+ write$
+ }
+ {
+ add.period$ " " * write$
+ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION { output.nonnull.remove }
+{ % Stack in: ... R S T Stack out: ... R T File out: S
+ 's :=
+ output.state mid.sentence =
+ {
+ " " * write$
+ }
+ {
+ output.state after.block =
+ {
+ add.period$ writeln "\newblock " write$
+ }
+ {
+ output.state before.all =
+ {
+ write$
+ }
+ {
+ add.period$ " " * write$
+ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION { output.nonnull.removenospace }
+{ % Stack in: ... R S T Stack out: ... R T File out: S
+ 's :=
+ output.state mid.sentence =
+ {
+ "" * write$
+ }
+ {
+ output.state after.block =
+ {
+ add.period$ writeln "\newblock " write$
+ }
+ {
+ output.state before.all =
+ {
+ write$
+ }
+ {
+ add.period$ " " * write$
+ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION { output }
+{ % discard top token if empty, else like output.nonnull
+ duplicate$ empty.or.unknown
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION { output.dot.space }
+{ % discard top token if empty, else like output.nonnull.dot.space
+ duplicate$ empty.or.unknown
+ 'pop$
+ 'output.nonnull.dot.space
+ if$
+}
+
+FUNCTION { output.removenospace }
+{ % discard top token if empty, else like output.nonnull.removenospace
+ duplicate$ empty.or.unknown
+ 'pop$
+ 'output.nonnull.removenospace
+ if$
+}
+
+FUNCTION { output.check }
+{ % like output, but warn if key name on top-of-stack is not set
+ 't :=
+ duplicate$ empty.or.unknown
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION { bibinfo.output.check }
+{ % like output.check, adding bibinfo field
+ 't :=
+ duplicate$ empty.or.unknown
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ { "\bibinfo{" t "}{" * * swap$ * "}" *
+ output.nonnull }
+ if$
+}
+
+FUNCTION { output.check.dot.space }
+{ % like output.dot.space, but warn if key name on top-of-stack is not set
+ 't :=
+ duplicate$ empty.or.unknown
+ { pop$ "empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull.dot.space
+ if$
+}
+
+FUNCTION { fin.block }
+{ % functionally, but not logically, identical to fin.entry
+ add.period$
+ writeln
+}
+
+FUNCTION { fin.entry }
+{
+ add.period$
+ writeln
+}
+
+FUNCTION { new.sentence }
+{ % update sentence state, with neither output nor stack change
+ output.state after.block =
+ 'skip$
+ {
+ output.state before.all =
+ 'skip$
+ { after.sentence 'output.state := }
+ if$
+ }
+ if$
+}
+
+FUNCTION { fin.sentence }
+{
+ add.period$
+ write$
+ new.sentence
+ ""
+}
+
+FUNCTION { new.block }
+{
+ output.state before.all =
+ 'skip$
+ { after.block 'output.state := }
+ if$
+}
+
+FUNCTION { output.coden } % UTAH
+{ % output non-empty CODEN as one-line sentence (stack untouched)
+ coden empty.or.unknown
+ { }
+ { "\showCODEN{" coden * "}" * writeln }
+ if$
+}
+
+%
+% Sometimes articleno starts with the word 'Article' or 'Paper.
+% (this is a bug of acmdl, sigh)
+% We strip them. We assume eid or articleno is already on stack
+%
+
+FUNCTION { strip.articleno.or.eid }
+{
+ 't :=
+ t #1 #7 substring$ "Article" =
+ {t #8 t text.length$ substring$ 't :=}
+ { }
+ if$
+ t #1 #7 substring$ "article" =
+ {t #8 t text.length$ substring$ 't :=}
+ { }
+ if$
+ t #1 #5 substring$ "Paper" =
+ {t #6 t text.length$ substring$ 't :=}
+ { }
+ if$
+ t #1 #5 substring$ "paper" =
+ {t #6 t text.length$ substring$ 't :=}
+ { }
+ if$
+ % Strip any left trailing space or ~
+ t #1 #1 substring$ " " =
+ {t #2 t text.length$ substring$ 't :=}
+ { }
+ if$
+ t #1 #1 substring$ "~" =
+ {t #2 t text.length$ substring$ 't :=}
+ { }
+ if$
+ t
+}
+
+
+FUNCTION { format.articleno }
+{
+ articleno empty.or.unknown not eid empty.or.unknown not and
+ { "Both articleno and eid are defined for " cite$ * warning$ }
+ 'skip$
+ if$
+ articleno empty.or.unknown eid empty.or.unknown and
+ { "" }
+ {
+ numpages empty.or.unknown
+ { "articleno or eid field, but no numpages field, in "
+ cite$ * warning$ }
+ { }
+ if$
+ eid empty.or.unknown
+ { "Article \bibinfo{articleno}{" articleno strip.articleno.or.eid * "}" * }
+ { "Article \bibinfo{articleno}{" eid strip.articleno.or.eid * "}" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION { format.year }
+{ % push year string or "[n.\,d.]" onto output stack
+ %% Because year is a mandatory field, we always force SOMETHING
+ %% to be output
+ "\bibinfo{year}{"
+ year empty.or.unknown
+ { "[n.\,d.]" }
+ { year }
+ if$
+ * "}" *
+}
+
+FUNCTION { format.day.month }
+{ % push "day month " or "month " or "" onto output stack
+ day empty.or.unknown
+ {
+ month empty.or.unknown
+ { "" }
+ { "\bibinfo{date}{" month * "} " *}
+ if$
+ }
+ {
+ month empty.or.unknown
+ { "" }
+ { "\bibinfo{date}{" day * " " * month * "} " *}
+ if$
+ }
+ if$
+}
+
+FUNCTION { format.day.month.year } % UTAH
+{ % if month is empty, push "" else push "(MON.)" or "(DD MON.)"
+ % Needed for frequent periodicals: 2008. ... New York Times C-1, C-2, C-17 (23 Oct.)
+ % acm-*.bst addition: prefix parenthesized date string with
+ % ", Article nnn "
+ articleno empty.or.unknown eid empty.or.unknown and
+ { "" }
+ { output.state after.block =
+ {", " format.articleno * }
+ { format.articleno }
+ if$
+ }
+ if$
+ " (" * format.day.month * format.year * ")" *
+}
+
+FUNCTION { output.day.month.year } % UTAH
+{ % if month is empty value, do nothing; else output stack top and
+ % leave with new top string "(MON.)" or "(DD MON.)"
+ % Needed for frequent periodicals: 2008. ... New York Times C-1, C-2, C-17 (23 Oct.)
+ format.day.month.year
+ output.nonnull.remove
+}
+
+FUNCTION { strip.doi } % UTAH
+{ % Strip any Web address prefix to recover the bare DOI, leaving the
+ % result on the output stack, as recommended by CrossRef DOI
+ % documentation.
+ % For example, reduce "http://doi.acm.org/10.1145/1534530.1534545" to
+ % "10.1145/1534530.1534545". A suitable URL is later typeset and
+ % displayed as the LAST item in the reference list entry. Publisher Web
+ % sites wrap this with a suitable link to a real URL to resolve the DOI,
+ % and the master https://doi.org/ address is preferred, since publisher-
+ % specific URLs can disappear in response to economic events. All
+ % journals are encouraged by the DOI authorities to use that typeset
+ % format and link procedures for uniformity across all publications that
+ % include DOIs in reference lists.
+ % The numeric prefix is guaranteed to start with "10.", so we use
+ % that as a test.
+ % 2017-02-04 Added stripping of https:// (Boris)
+ doi #1 #3 substring$ "10." =
+ { doi }
+ {
+ doi 't := % get modifiable copy of DOI
+
+ % Change https:// to http:// to strip both prefixes (BV)
+
+ t #1 #8 substring$ "https://" =
+ { "http://" t #9 t text.length$ #8 - substring$ * 't := }
+ { }
+ if$
+
+ t #1 #7 substring$ "http://" =
+ {
+ t #8 t text.length$ #7 - substring$ 't :=
+
+ "INTERNAL STYLE-FILE ERROR" 's :=
+
+ % search for next "/" and assign its suffix to s
+
+ { t text.length$ }
+ {
+ t #1 #1 substring$ "/" =
+ {
+ % save rest of string as true DOI (should be 10.xxxx/yyyy)
+ t #2 t text.length$ #1 - substring$ 's :=
+ "" 't := % empty string t terminates the loop
+ }
+ {
+ % discard first character and continue loop: t <= substring(t,2,last)
+ t #2 t text.length$ #1 - substring$ 't :=
+ }
+ if$
+ }
+ while$
+
+ % check for valid DOI (should be 10.xxxx/yyyy)
+ s #1 #3 substring$ "10." =
+ { }
+ { "unrecognized DOI substring " s * " in DOI value [" * doi * "]" * warning$ }
+ if$
+
+ s % push the stripped DOI on the output stack
+
+ }
+ {
+ "unrecognized DOI value [" doi * "]" * warning$
+ doi % push the unrecognized original DOI on the output stack
+ }
+ if$
+ }
+ if$
+}
+
+%
+% Change by BV: added standard prefix to URL
+%
+FUNCTION { output.doi } % UTAH
+{ % output non-empty DOI as one-line sentence (stack untouched)
+ doi empty.or.unknown
+ { }
+ {
+ %% Use \urldef here for the same reason it is used in output.url,
+ %% see output.url for further discussion.
+ "\urldef\tempurl%" writeln
+ "\url{https://doi.org/" strip.doi * "}" * writeln
+ "\showDOI{\tempurl}" writeln
+ }
+ if$
+}
+
+FUNCTION { output.isbn } % UTAH
+{ % output non-empty ISBN-10 and/or ISBN-13 as one-line sentences (stack untouched)
+ show-isbn-10-and-13
+ {
+ %% show both 10- and 13-digit ISBNs
+ isbn empty.or.unknown
+ { }
+ {
+ "\showISBNx{" isbn * "}" * writeln
+ }
+ if$
+ isbn-13 empty.or.unknown
+ { }
+ {
+ "\showISBNxiii{" isbn-13 * "}" * writeln
+ }
+ if$
+ }
+ {
+ %% show 10-digit ISBNs only if 13-digit ISBNs not available
+ isbn-13 empty.or.unknown
+ {
+ isbn empty.or.unknown
+ { }
+ {
+ "\showISBNx{" isbn * "}" * writeln
+ }
+ if$
+ }
+ {
+ "\showISBNxiii{" isbn-13 * "}" * writeln
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION { output.issn } % UTAH
+{ % output non-empty ISSN as one-line sentence (stack untouched)
+ issn empty.or.unknown
+ { }
+ { "\showISSN{" issn * "}" * writeln }
+ if$
+}
+
+FUNCTION { output.issue }
+{ % output non-empty issue number as a one-line sentence (stack untouched)
+ issue empty.or.unknown
+ { }
+ { "Issue " issue * "." * writeln }
+ if$
+}
+
+FUNCTION { output.lccn } % UTAH
+{ % return with stack untouched
+ lccn empty.or.unknown
+ { }
+ { "\showLCCN{" lccn * "}" * writeln }
+ if$
+}
+
+FUNCTION { output.note } % UTAH
+{ % return with stack empty
+ note empty.or.unknown
+ { }
+ { "\shownote{" note * "}" add.period$ * writeln }
+ if$
+}
+
+FUNCTION { output.note.check } % UTAH
+{ % return with stack empty
+ note empty.or.unknown
+ { "empty note in " cite$ * warning$ }
+ { "\shownote{" note * "}" add.period$ * writeln }
+ if$
+}
+
+FUNCTION { output.eprint } %
+{ % return with stack empty
+ eprint empty.or.unknown
+ { }
+ { "\showeprint"
+ archiveprefix empty.or.unknown
+ { eprinttype empty.or.unknown
+ { }
+ { "[" eprinttype "]" * * * }
+ if$
+ }
+ { "[" archiveprefix "l" change.case$ "]" * * * }
+ if$
+ "{" eprint "}" * * *
+ primaryclass empty.or.unknown
+ { eprintclass empty.or.unknown
+ { }
+ { "~[" eprintclass "]" * * * }
+ if$
+ }
+ { "~[" primaryclass "]" * * * }
+ if$
+ writeln
+ }
+ if$
+}
+
+
+%
+% Changes by BV 2011/04/15. Do not output
+% url if doi is defined
+%
+%
+% Changes by BV 2021/11/26. Output url even if doi is defined
+% if distinctURL is not zero.
+%
+FUNCTION { output.url } % UTAH
+{ % return with stack untouched
+ % output URL and associated lastaccessed fields
+ doi empty.or.unknown distinctURL empty.or.zero not or
+ {
+ url empty.or.unknown
+ { }
+ {
+ %% Use \urldef, outside \showURL, so that %nn, #, etc in URLs work
+ %% correctly. Put the actual URL on its own line to reduce the
+ %% likelihood of BibTeX's nasty line wrapping after column 79.
+ %% \url{} can undo this, but if that doesn't work for some reason
+ %% the .bbl file would have to be repaired manually.
+ "\urldef\tempurl%" writeln
+ "\url{" url * "}" * writeln
+
+ "\showURL{%" writeln
+ lastaccessed empty.or.unknown
+ { "" }
+ { "Retrieved " lastaccessed * " from " * }
+ if$
+ "\tempurl}" * writeln
+ }
+ if$
+ }
+ { }
+ if$
+}
+
+FUNCTION { output.year.check }
+{ % warn if year empty, output top string and leave " YEAR" on stack in mid-sentence
+ year empty.or.unknown
+ { "empty year in " cite$ * warning$
+ write$
+ " \bibinfo{year}{[n.\,d.]}"
+ "\natexlab{" extra.label * "}" * *
+ mid.sentence 'output.state :=
+ }
+ { write$
+ " \bibinfo{year}{" year * "}" *
+ "\natexlab{" extra.label * "}" * *
+ mid.sentence 'output.state :=
+ }
+ if$
+}
+
+
+FUNCTION { le }
+{
+ %% test whether first number is less than or equal to second number
+ %% stack in: n1 n2
+ %% stack out: if n1 <= n2 then 1 else 0
+
+ %% "DEBUG: le " cite$ * warning$
+ > { #0 } { #1 } if$
+}
+
+FUNCTION { ge }
+{
+ %% test whether first number is greater than or equal to second number
+ %% stack in: n1 n2
+ %% stack out: if n1 >= n2 then 1 else 0
+
+ %% "DEBUG: ge " cite$ * warning$
+ < { #0 } { #1 } if$
+}
+
+FUNCTION { is.leading.digit }
+{
+ %% test whether first character of string is a digit
+ %% stack in: string
+ %% stack out: if first-char-is-digit then 1 else 0
+
+ #1 #1 substring$ % replace string by string[1:1]
+ duplicate$ % string[1:1] string[1:1]
+ chr.to.int$
+ "0" chr.to.int$ swap$ le % "0" <= string[1:1] --> 0-or-1
+ swap$ % 0-or-1 string[1:1]
+ chr.to.int$
+ "9" chr.to.int$ le % string[1:1} <= "9" --> 0-or-1
+ and
+}
+
+FUNCTION { skip.digits }
+{
+ %% skip over leading digits in string
+ %% stack in: string
+ %% stack out: rest-of-string leading-digits
+
+ %% "DEBUG: enter skip.digits " cite$ * warning$
+
+ %% dump.stack.1
+
+ duplicate$
+ 't :=
+ 't.org :=
+ "" 'u :=
+
+ { t text.length$ }
+ {
+ %% "=================DEBUG: skip.digits t = [" t * "]" * warning$
+ t is.leading.digit
+ { t #2 t text.length$ #1 - substring$ }
+ {
+ t 'u :=
+ ""
+ }
+ if$
+ 't :=
+ }
+ while$
+
+ u % rest of string
+ t.org #1 t.org text.length$ u text.length$ - substring$ % leading digits
+
+ %% "DEBUG: t.org = [" t.org * "]" * warning$
+ %% "DEBUG: u = [" u * "]" * warning$
+
+ %% dump.stack.2
+
+ %% "DEBUG: leave skip.digits " cite$ * warning$
+}
+
+FUNCTION { skip.nondigits }
+{
+ %% skip over leading nondigits in string
+ %% stack in: string
+ %% stack out: rest-of-string
+
+ %% "DEBUG: enter skip.nondigits " cite$ * warning$
+
+ 't :=
+ "" 'u :=
+
+ { t text.length$ }
+ {
+ %% "=================DEBUG: skip.nondigits t = [" t * "]" * warning$
+ t is.leading.digit
+ {
+ t 'u :=
+ ""
+ }
+ { t #2 t text.length$ #1 - substring$ }
+ if$
+ 't :=
+ }
+ while$
+
+ u % rest of string
+
+ %% dump.stack.1
+ %% "DEBUG: leave skip.nondigits " cite$ * warning$
+}
+
+FUNCTION { parse.next.number }
+{
+ %% stack in: string
+ %% stack out: rest-of-string next-numeric-part-of-string
+ %% Example:
+ %% stack in: "123:1--123:59"
+ %% stack out: ":1--123:59" "123"
+
+ 's :=
+ s skip.nondigits 's :=
+ s skip.digits
+}
+
+FUNCTION { reduce.pages.to.page.count }
+{
+ %% Stack in: arbitrary-and-unused
+ %% Stack out: unchanged
+ %%
+ %% For the new-style pagination with article number and numpages or
+ %% pages, we expect to have BibTeX entries containing something like
+ %% articleno = "17",
+ %% pages = "1--23",
+ %% with output "Article 17, 23 pages",
+ %% or
+ %% articleno = "17",
+ %% numpages = "23",
+ %% with output "Article 17, 23 pages",
+ %% or
+ %% articleno = "17",
+ %% pages = "17:1--17:23",
+ %% with output "Article 17, 23 pages",
+ %%
+ %% If articleno is missing or empty, then we should output "1--23",
+ %% "23" (with a warning of a missing articleno), or "17:1--17:23",
+ %% respectively.
+
+ %% "DEBUG: enter reduce.pages.to.page.count " cite$ * warning$
+
+ %% "DEBUG: pages = [" pages * "]" * warning$
+
+ pages
+ parse.next.number 'p1 :=
+ parse.next.number 'p2 :=
+ parse.next.number 'p3 :=
+ parse.next.number 'page.count :=
+
+ duplicate$
+ empty.or.unknown
+ { }
+ {
+ duplicate$ "unexpected trailing garbage [" swap$ *
+ "] after n:p1--n:p2 in pages = [" *
+ pages *
+ "] in " *
+ cite$ *
+ warning$
+ }
+ if$
+
+ pop$
+
+ %% "DEBUG: reduce.pages.to.page.count: "
+ %% " p1 = " p1 * *
+ %% " p2 = " p2 * *
+ %% " p3 = " p3 * *
+ %% " p4 = " page.count * *
+ %% " in " cite$ * * warning$
+
+ p1 p3 = p2 "1" = and numpages empty.or.unknown and
+ { "INFO: reduced pages = [" pages * "] to numpages = [" * page.count * "]" * warning$ }
+ {
+ numpages empty.or.unknown
+ { pages }
+ { numpages }
+ if$
+ 'page.count :=
+ }
+ if$
+
+ p1 "1" = p3 empty.or.unknown and numpages empty.or.unknown and
+ {
+ p2 'page.count :=
+ "INFO: reduced pages = [" pages * "] to numpages = [" * page.count * "]" * warning$
+ }
+ {
+ numpages empty.or.unknown
+ { pages }
+ { numpages }
+ if$
+ 'page.count :=
+ }
+ if$
+
+ %% "DEBUG: leave reduce.pages.to.page.count " cite$ * warning$
+}
+
+FUNCTION { new.block.checkb }
+{ % issue a new.block only if at least one of top two stack strings is not empty
+ empty.or.unknown
+ swap$ empty.or.unknown
+ and
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION { field.or.null }
+{ % convert empty value to null string, else return value
+ duplicate$ empty.or.unknown
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+
+
+FUNCTION { emphasize }
+{ % emphasize a non-empty top string on the stack
+ duplicate$ empty.or.unknown
+ { pop$ "" }
+ { "\emph{" swap$ * "}" * }
+ if$
+}
+
+FUNCTION { comma }
+{ % convert empty string to null string, or brace string and add trailing comma
+ duplicate$ empty.or.unknown
+ { pop$ "" }
+ { "{" swap$ * "}," * }
+ if$
+}
+
+FUNCTION { format.names }
+{
+ % Format bibliographical entries with the first author last name first,
+ % and subsequent authors with initials followed by last name.
+ % All names are formatted in this routine.
+
+ 's :=
+ #1 'nameptr := % nameptr = 1;
+ s num.names$ 'numnames := % numnames = num.name$(s);
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 =
+ %NO: BAD ORDER: {"{" s nameptr "{ff~}{ll}{, jj}{, vv}" format.name$ * "}" * 't := }
+ %NO: BAD ORDER: {"{" s nameptr "{ff~}{ll}{, jj}{, vv}" format.name$ * "}" * 't := }
+ {"\bibinfo{person}{" s nameptr "{ff }{vv }{ll}{, jj}" format.name$ * "}" * 't := }
+ {"\bibinfo{person}{" s nameptr "{ff }{vv }{ll}{, jj}" format.name$ * "}" * 't := }
+ if$
+ nameptr #1 >
+ {
+ namesleft #1 >
+ { ", " * t * }
+ {
+ numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "\bibinfo{person}{others}" =
+ { " {et~al\mbox{.}}" * } % jrh: avoid spacing problems
+ { " {and} " * t * } % from Chicago Manual of Style
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr := % nameptr += 1;
+ namesleft #1 - 'namesleft := % namesleft =- 1;
+ }
+ while$
+}
+
+FUNCTION { my.full.label }
+{
+ 's :=
+ #1 'nameptr := % nameptr = 1;
+ s num.names$ 'numnames := % numnames = num.name$(s);
+ numnames 'namesleft :=
+ { namesleft #0 > }
+
+ { s nameptr "{vv~}{ll}" format.name$ 't := % get the next name
+ nameptr #1 >
+ {
+ namesleft #1 >
+ { ", " * t * }
+ {
+ numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "others" =
+ { " et~al\mbox{.}" * } % jrh: avoid spacing problems
+ { " and " * t * } % from Chicago Manual of Style
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr := % nameptr += 1;
+ namesleft #1 - 'namesleft := % namesleft =- 1;
+ }
+ while$
+
+}
+
+FUNCTION { format.names.fml }
+{
+ % Format names in "familiar" format, with first initial followed by
+ % last name. Like format.names, ALL names are formatted.
+ % jtb: The names are NOT put in small caps
+
+ 's :=
+ #1 'nameptr := % nameptr = 1;
+ s num.names$ 'numnames := % numnames = num.name$(s);
+ numnames 'namesleft :=
+ { namesleft #0 > }
+
+ {
+ "\bibinfo{person}{" s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ * "}" * 't :=
+
+ nameptr #1 >
+ {
+ namesleft #1 >
+ { ", " * t * }
+ {
+ numnames #2 >
+ { "," * }
+ 'skip$
+ if$
+ t "\bibinfo{person}{others}" =
+ { " {et~al\mbox{.}}" * }
+ { " {and} " * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr := % nameptr += 1;
+ namesleft #1 - 'namesleft := % namesleft =- 1;
+ }
+ while$
+}
+
+FUNCTION { format.authors }
+{
+ author empty.or.unknown
+ { "" }
+ {
+ "\bibfield{author}{"
+ author format.names add.period$ * "}" *} % jtb: add period if none before
+ if$
+}
+
+FUNCTION { format.key }
+{
+ empty.or.unknown
+ { key field.or.null }
+ { "" }
+ if$
+}
+
+FUNCTION { format.no.key }
+{
+ empty.or.unknown
+ { "" }
+ { "" }
+ if$
+}
+
+FUNCTION { format.editors.fml }
+{
+ % Format editor names for use in the "in" types: inbook, incollection,
+ % inproceedings: first initial, then last names. When editors are the
+ % LABEL for an entry, then format.editor is used which lists editors
+ % by last name first.
+
+ editor empty.or.unknown
+ { "" }
+ {
+ "\bibfield{editor}{"
+ editor format.names.fml
+ * "}" *
+ editor num.names$ #1 >
+ { " (Eds.)" * }
+ { " (Ed.)" * }
+ if$
+ }
+ if$
+}
+
+FUNCTION { format.editors }
+{ % format editor names for use in labels, last names first.
+ editor empty.or.unknown
+ { "" }
+ {
+ "\bibfield{editor}{"
+ editor format.names
+ * "}" *
+ editor num.names$ #1 >
+ { " (Eds.)." * }
+ { " (Ed.)." * }
+ if$
+ }
+ if$
+}
+
+FUNCTION { format.articletitle }
+{
+ title empty.or.unknown
+ { "" }
+ % Use this to preserve lettercase in titles:
+ { "\showarticletitle{" title * "}" * }
+ % Use this for downcase title style:
+ % { \showarticletitle{" title "t" change.case$ * "}" * }
+ if$
+}
+
+FUNCTION { format.title }
+{
+ title empty.or.unknown
+ { "" }
+ % Use this to preserve lettercase in titles:
+ { "\bibinfo{title}{" title * "}" * }
+ % Use this for downcase title style:
+ % { title "t" change.case$ }
+ if$
+}
+
+FUNCTION { n.dashify }
+{
+ 't :=
+ ""
+ { t empty.or.unknown not }
+ {
+ t #1 #1 substring$ "-" =
+ {
+ t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ {
+ { t #1 #1 substring$ "-" = }
+ {
+ "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ {
+ t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION { format.a.title.with.edition }
+{
+ "\bibinfo{booktitle}{"
+ swap$ emphasize *
+ edition empty.or.unknown
+ 'skip$
+ { " (\bibinfo{edition}{" * edition "l" change.case$ *
+ "} ed.)" * } % jtb: no parens for ed.
+ if$
+ "}" *
+}
+
+FUNCTION { format.btitle }
+{ title format.a.title.with.edition }
+
+FUNCTION { format.emphasize.booktitle }
+{ booktitle format.a.title.with.edition }
+
+
+
+FUNCTION { format.city }
+{
+ % jtb: if the preceding string (the title of the conference) is non-empty,
+ % jtb: append the location, otherwise leave empty (so as to trigger the
+ % jtb: error message in output.check
+
+ duplicate$ empty.or.unknown
+ { }
+ {
+ city empty.or.unknown location empty.or.unknown and
+ {
+ date empty.or.unknown
+ { }
+ { " (" * date * ")" * }
+ if$
+ }
+ {
+ location empty.or.unknown
+ {
+ date empty.or.unknown
+ { " (" * city * ")" * }
+ { " (" * city * ", " * date * ")" * }
+ if$
+ }
+ {
+ date empty.or.unknown
+ { " (" * location * ")" * }
+ { " (" * location * ", " * date * ")" * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION { tie.or.space.connect }
+{
+ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION { either.or.check }
+{
+ empty.or.unknown
+ 'pop$
+ { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION { format.bvolume }
+{
+ % jtb: If there is a series, this is added and the volume trails after it.
+ % jtb: Otherwise, "Vol" is Capitalized.
+
+ volume empty.or.unknown
+ { "" }
+ {
+ series empty.or.unknown
+ { "Vol.~\bibinfo{volume}{" volume "}" * *}
+ { "\bibinfo{series}{" series "}, " * *
+ "Vol.~\bibinfo{volume}{" volume "}" * * *}
+ if$
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION { format.bvolume.noseries }
+{
+ volume empty.or.unknown
+ { "" }
+ { "Vol.~\bibinfo{volume}{" volume "}" * *
+ "volume and number" number either.or.check
+ }
+ if$
+}
+
+FUNCTION { format.series }
+{
+ series empty.or.unknown
+ {""}
+ {" \emph{(\bibinfo{series}{" * series "}" *
+ volume empty.or.unknown
+ {
+ number empty.or.unknown
+ {")}" *}
+ {", \bibinfo{number}{" number "})}" * * *}
+ if$
+ }
+ {", Vol.~\bibinfo{volume}{" volume "})}" * * *
+ "volume and number" number either.or.check
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION { format.number.series }
+{
+ volume empty.or.unknown
+ {
+ number empty.or.unknown
+ {
+ volume empty.or.unknown
+ { "" }
+ {
+ series empty.or.unknown
+ { "" }
+ { " (\bibinfo{series}{" series * "})" * }
+ if$
+ }
+ if$
+ } % { series field.or.null }
+ {
+ output.state mid.sentence =
+ { "Number" } % gnp - changed to mixed case always
+ { "Number" }
+ if$
+ number tie.or.space.connect series empty.or.unknown
+ { "there's a number but no series in " cite$ * warning$ }
+ { " in \bibinfo{series}{" * series * "}" * }
+ if$
+ }
+ if$
+ }
+ {
+ ""
+ }
+ if$
+}
+
+FUNCTION { multi.page.check }
+{
+ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty.or.unknown not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION { format.pages }
+{
+ pages empty.or.unknown
+ { "" }
+ { "\bibinfo{pages}{"
+ pages multi.page.check
+ { pages n.dashify } % gnp - removed () % jtb: removed pp.
+ { pages }
+ if$
+ * "}" *
+ }
+ if$
+}
+
+FUNCTION { format.pages.check.without.articleno }
+{ %% format pages field only if articleno is absent
+ %% Stack out: pages-specification
+ numpages missing$ pages missing$ and
+ { "page numbers missing in both pages and numpages fields in " cite$ * warning$ }
+ { }
+ if$
+
+ articleno empty.or.unknown eid empty.or.unknown and
+ {
+ pages missing$
+ {
+ numpages empty.or.unknown
+ {""}
+ { "\bibinfo{numpages}{" numpages * "}~pages" * }
+ if$
+ }
+ { format.pages }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION { format.pages.check }
+{
+ pages empty.or.unknown
+ { "page numbers missing in " cite$ * warning$ "" }
+ { pages n.dashify }
+ if$
+}
+
+FUNCTION { format.bookpages }
+{
+ bookpages empty.or.unknown
+ { "" }
+ { bookpages "book pages" tie.or.space.connect }
+ if$
+}
+
+FUNCTION { format.named.pages }
+{
+ pages empty.or.unknown
+ { "" }
+ { format.pages "pages" tie.or.space.connect }
+ if$
+}
+
+%
+% Changed by Boris Veytsman, 2011-03-13
+% Now the word "pages" is printed even if
+% there field pages is not empty.
+%
+
+FUNCTION { format.page.count }
+{
+ page.count empty.or.unknown
+ { "" }
+ { "\bibinfo{numpages}{" page.count * "}~pages" * }
+ if$
+}
+
+FUNCTION { format.articleno.numpages }
+{
+ %% There are seven possible outputs, depending on which fields are set.
+ %%
+ %% These four are handled here:
+ %%
+ %% articleno, numpages, pages -> "Article articleno-value, numpages-value pages"
+ %% articleno, numpages -> "Article articleno-value, numpages-value pages"
+ %% articleno, pages -> "Article articleno-value, reduced-pages-value pages"
+ %% articleno -> "Article articleno-value" and warn about missing numpages
+ %%
+ %% The remaining three have already been handled by
+ %% format.pages.check.without.articleno:
+ %%
+ %% numpages, pages -> "pages-value"
+ %% numpages -> "numpages-value"
+ %% pages -> "pages-value"
+ %%
+ %% We no longer issue warninig when missing articleno, but having numpages
+
+ articleno empty.or.unknown eid empty.or.unknown and
+ {
+%% numpages empty.or.unknown
+%% { }
+%% { "numpages field, but no articleno or eid field, in "
+%% cite$ * warning$ }
+%% if$
+ ""
+ }
+ {
+ numpages empty.or.unknown
+ {
+ pages empty.or.unknown
+ {
+ "articleno or eid, but no pages or numpages field in "
+ cite$ * warning$
+ "" 'page.count :=
+ }
+ { reduce.pages.to.page.count }
+ if$
+ }
+ { numpages 'page.count := }
+ if$
+
+ %% The Article number is now handled in format.day.month.year because
+ %% ACM prefers the style "Digital Libraries 12, 3, Article 5 (July 2008)"
+ %% over "Digital Libraries 12, 3 (July 2008), Article 5"
+ %% format.articleno output
+ format.page.count
+ }
+ if$
+}
+
+FUNCTION {calc.format.page.count}
+{
+ numpages empty.or.unknown
+ {
+ pages empty.or.unknown
+ {
+ "" 'page.count :=
+ }
+ { reduce.pages.to.page.count }
+ if$
+ }
+ { numpages 'page.count := }
+ if$
+ format.page.count
+}
+
+
+FUNCTION { journal.canon.abbrev }
+{
+ % Returns a canonical abbreviation for 'journal', or else 'journal'
+ % unchanged.
+ journal "ACM Computing Surveys" = { "Comput. Surveys" } {
+ journal "{ACM} Computing Surveys" = { "Comput. Surveys" } {
+ journal "ACM Transactions on Mathematical Software" = { "ACM Trans. Math. Software" } {
+ journal "{ACM} Transactions on Mathematical Software" = { "ACM Trans. Math. Software" } {
+ journal "ACM SIGNUM Newsletter" = { "ACM SIGNUM Newslett." } {
+ journal "ACM {SIGNUM} Newsletter" = { "ACM SIGNUM Newslett." } {
+ journal "{ACM} SIGNUM Newsletter" = { "ACM SIGNUM Newslett." } {
+ journal "{ACM} {SIGNUM} Newsletter" = { "ACM SIGNUM Newslett." } {
+ journal "American Journal of Sociology" = { "Amer. J. Sociology" } {
+ journal "American Mathematical Monthly" = { "Amer. Math. Monthly" } {
+ journal "American Mathematical Society Translations" = { "Amer. Math. Soc. Transl." } {
+ journal "Applied Mathematics and Computation" = { "Appl. Math. Comput." } {
+ journal "British Journal of Mathematical and Statistical Psychology" = { "Brit. J. Math. Statist. Psych." } {
+ journal "Bulletin of the American Mathematical Society" = { "Bull. Amer. Math. Soc." } {
+ journal "Canadian Mathematical Bulletin" = { "Canad. Math. Bull." } {
+ journal "Communications of the ACM" = { "Commun. ACM" } {
+ journal "Communications of the {ACM}" = { "Commun. ACM" } {
+ journal "Computers and Structures" = { "Comput. \& Structures" } {
+ journal "Contemporary Mathematics" = { "Contemp. Math." } {
+ journal "Crelle's Journal" = { "Crelle's J." } {
+ journal "Giornale di Mathematiche" = { "Giorn. Mat." } {
+ journal "IEEE Transactions on Aerospace and Electronic Systems" = { "IEEE Trans. Aerospace Electron. Systems" } {
+ journal "{IEEE} Transactions on Aerospace and Electronic Systems" = { "IEEE Trans. Aerospace Electron. Systems" } {
+ journal "IEEE Transactions on Automatic Control" = { "IEEE Trans. Automat. Control" } {
+ journal "{IEEE} Transactions on Automatic Control" = { "IEEE Trans. Automat. Control" } {
+ journal "IEEE Transactions on Computers" = { "IEEE Trans. Comput." } {
+ journal "{IEEE} Transactions on Computers" = { "IEEE Trans. Comput." } {
+ journal "IMA Journal of Numerical Analysis" = { "IMA J. Numer. Anal." } {
+ journal "{IMA} Journal of Numerical Analysis" = { "IMA J. Numer. Anal." } {
+ journal "Information Processing Letters" = { "Inform. Process. Lett." } {
+ journal "International Journal for Numerical Methods in Engineering" = { "Internat. J. Numer. Methods Engrg." } {
+ journal "International Journal of Control" = { "Internat. J. Control" } {
+ journal "International Journal of Supercomputing Applications" = { "Internat. J. Supercomputing Applic." } {
+ journal "Journal of Computational Physics" = { "J. Comput. Phys." } {
+ journal "Journal of Computational and Applied Mathematics" = { "J. Comput. Appl. Math." } {
+ journal "Journal of Computer and System Sciences" = { "J. Comput. System Sci." } {
+ journal "Journal of Mathematical Analysis and Applications" = { "J. Math. Anal. Appl." } {
+ journal "Journal of Mathematical Physics" = { "J. Math. Phys." } {
+ journal "Journal of Parallel and Distributed Computing" = { "J. Parallel and Distrib. Comput." } {
+ journal "Journal of Research of the National Bureau of Standards" = { "J. Res. Nat. Bur. Standards" } {
+ journal "Journal of VLSI and Computer Systems" = { "J. VLSI Comput. Syst." } {
+ journal "Journal of {VLSI} and Computer Systems" = { "J. VLSI Comput. Syst." } {
+ journal "Journal of the ACM" = { "J. ACM" } {
+ journal "Journal of the American Statistical Association" = { "J. Amer. Statist. Assoc." } {
+ journal "Journal of the Institute of Mathematics and its Applications" = { "J. Inst. Math. Appl." } {
+ journal "Journal of the Society for Industrial and Applied Mathematics" = { "J. Soc. Indust. Appl. Math." } {
+ journal "Journal of the Society for Industrial and Applied Mathematics, Series B, Numerical Analysis" = { "J. Soc. Indust. Appl. Math. Ser. B Numer. Anal." } {
+ journal "Linear Algebra and its Applications" = { "Linear Algebra Appl." } {
+ journal "Mathematica Scandinavica" = { "Math. Scand." } {
+ journal "Mathematical Tables and Other Aids to Computation" = { "Math. Tables Aids Comput." } {
+ journal "Mathematics of Computation" = { "Math. Comp." } {
+ journal "Mathematische Annalen" = { "Math. Ann." } {
+ journal "Numerische Mathematik" = { "Numer. Math." } {
+ journal "Pacific Journal of Mathematics" = { "Pacific J. Math." } {
+ journal "Parallel Computing" = { "Parallel Comput." } {
+ journal "Philosophical Magazine" = { "Philos. Mag." } {
+ journal "Proceedings of the American Mathematical Society" = { "Proc. Amer. Math. Soc." } {
+ journal "Proceedings of the IEEE" = { "Proc. IEEE" } {
+ journal "Proceedings of the {IEEE}" = { "Proc. IEEE" } {
+ journal "Proceedings of the National Academy of Sciences of the USA" = { "Proc. Nat. Acad. Sci. U. S. A." } {
+ journal "Quarterly Journal of Mathematics, Oxford, Series (2)" = { "Quart. J. Math. Oxford Ser. (2)" } {
+ journal "Quarterly of Applied Mathematics" = { "Quart. Appl. Math." } {
+ journal "Review of the International Statisical Institute" = { "Rev. Inst. Internat. Statist." } {
+ journal "SIAM Journal on Algebraic and Discrete Methods" = { "SIAM J. Algebraic Discrete Methods" } {
+ journal "{SIAM} Journal on Algebraic and Discrete Methods" = { "SIAM J. Algebraic Discrete Methods" } {
+ journal "SIAM Journal on Applied Mathematics" = { "SIAM J. Appl. Math." } {
+ journal "{SIAM} Journal on Applied Mathematics" = { "SIAM J. Appl. Math." } {
+ journal "SIAM Journal on Computing" = { "SIAM J. Comput." } {
+ journal "{SIAM} Journal on Computing" = { "SIAM J. Comput." } {
+ journal "SIAM Journal on Matrix Analysis and Applications" = { "SIAM J. Matrix Anal. Appl." } {
+ journal "{SIAM} Journal on Matrix Analysis and Applications" = { "SIAM J. Matrix Anal. Appl." } {
+ journal "SIAM Journal on Numerical Analysis" = { "SIAM J. Numer. Anal." } {
+ journal "{SIAM} Journal on Numerical Analysis" = { "SIAM J. Numer. Anal." } {
+ journal "SIAM Journal on Scientific and Statistical Computing" = { "SIAM J. Sci. Statist. Comput." } {
+ journal "{SIAM} Journal on Scientific and Statistical Computing" = { "SIAM J. Sci. Statist. Comput." } {
+ journal "SIAM Review" = { "SIAM Rev." } {
+ journal "{SIAM} Review" = { "SIAM Rev." } {
+ journal "Software Practice and Experience" = { "Software Prac. Experience" } {
+ journal "Statistical Science" = { "Statist. Sci." } {
+ journal "The Computer Journal" = { "Comput. J." } {
+ journal "Transactions of the American Mathematical Society" = { "Trans. Amer. Math. Soc." } {
+ journal "USSR Computational Mathematics and Mathematical Physics" = { "U. S. S. R. Comput. Math. and Math. Phys." } {
+ journal "{USSR} Computational Mathematics and Mathematical Physics" = { "U. S. S. R. Comput. Math. and Math. Phys." } {
+ journal "Zeitschrift fur Angewandte Mathematik und Mechanik" = { "Z. Angew. Math. Mech." } {
+ journal "Zeitschrift fur Angewandte Mathematik und Physik" = { "Z. Angew. Math. Phys." } {
+ journal
+ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$
+ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$
+ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$
+ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$
+ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$
+ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$
+ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$
+ } if$ } if$ } if$ } if$ } if$ } if$ } if$ } if$
+}
+
+FUNCTION { format.journal.volume.number.day.month.year }
+{
+ % By Young (and Spencer)
+ % GNP - fixed bugs with missing volume, number, and/or pages
+ %
+ % Format journal, volume, number, pages for article types.
+ %
+ journal empty.or.unknown
+ { "no journal in " cite$ * warning$ "" }
+ { "\bibinfo{journal}{"
+ journal.canon.abbrev emphasize *
+ "}" * }
+ if$
+
+ number empty.or.unknown
+ {
+ volume empty.or.unknown
+ { "no number and no volume in " cite$ * warning$ "" * }
+ { " " * " \bibinfo{volume}{" * volume * "}" * }
+ if$
+ }
+ {
+ volume empty.or.unknown
+ {
+ "unusual to have number, but no volume, for " cite$ * warning$
+ " \bibinfo{number}{" * number * "}" *
+ }
+ { " \bibinfo{volume}{" * volume * "}, \bibinfo{number}{" *
+ number * "}" *}
+ if$
+ }
+ if$
+ after.block 'output.state :=
+
+ % Sometimes proceedings are published in journals
+ % In this case we do not want to put year, day and month here
+
+ type$ "inproceedings" =
+ { }
+ {format.day.month.year * }
+ if$
+}
+
+FUNCTION { format.chapter.pages }
+{
+ chapter empty.or.unknown
+ 'format.pages
+ { type empty.or.unknown
+ { "Chapter" } % gnp - changed to mixed case
+ { type "t" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty.or.unknown
+ {"page numbers missing in " cite$ * warning$} % gnp - added check
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION { format.in.emphasize.booktitle }
+{ % jtb: format for collections or proceedings not appearing in a journal
+ booktitle empty.or.unknown
+ { "" }
+ { "In " format.emphasize.booktitle * }
+ if$
+}
+
+FUNCTION { format.in.booktitle }
+{ % jtb: format for proceedings appearing in a journal
+ booktitle empty.or.unknown
+ { "" }
+ { "In \bibinfo{booktitle}{" booktitle * "}" * }
+ if$
+}
+
+FUNCTION { format.in.ed.booktitle }
+{
+ booktitle empty.or.unknown
+ { "" }
+ { editor empty.or.unknown
+ { "In " format.emphasize.booktitle * }
+ % jtb: swapped editor location
+ { "In " format.emphasize.booktitle * ", " * format.editors.fml * }
+ if$
+ }
+ if$
+}
+
+FUNCTION { format.thesis.type }
+{ % call with default type on stack top
+ type empty.or.unknown
+ 'skip$ % use default type
+ {
+ pop$ % discard default type
+ % NO: it is silly to have to brace protect every degree type!: type "t" change.case$
+ type
+ }
+ if$
+}
+
+FUNCTION { format.tr.number }
+{
+ "\bibinfo{type}{"
+ type empty.or.unknown
+ { "{T}echnical {R}eport" }
+ 'type
+ if$
+ "}" * *
+ number empty.or.unknown
+ { "t" change.case$ }
+ %% LOOKS BAD: { "." * number tie.or.space.connect }
+ %% Prefer "Research report RJ687." to "Research report. RJ687."
+ { number tie.or.space.connect }
+ if$
+}
+
+FUNCTION { format.advisor }
+{
+ advisor empty.or.unknown
+ { "" }
+ { "Advisor(s) " advisor * }
+ if$
+}
+
+FUNCTION { format.article.crossref }
+{ "See"
+ "\citeN{" * crossref * "}" *
+}
+
+FUNCTION { format.crossref.editor }
+{
+ editor #1 "{vv~}{ll}" format.name$
+ editor num.names$ duplicate$
+ #2 >
+ { pop$ " et~al\mbox{.}" * } % jrh: avoid spacing problems
+ { #2 <
+ 'skip$
+ { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al\mbox{.}" * } % jrh: avoid spacing problems
+ { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION { format.book.crossref }
+{
+ volume empty.or.unknown
+ { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+ "In "
+ }
+ { "Volume" volume tie.or.space.connect % gnp - changed to mixed case
+ " of " *
+ }
+ if$
+ editor empty.or.unknown
+ editor field.or.null author field.or.null =
+ or
+ { key empty.or.unknown
+ { series empty.or.unknown
+ { "need editor, key, or series for " cite$ * " to crossref " *
+ crossref * warning$
+ "" *
+ }
+ { series emphasize * }
+ if$
+ }
+ { key * }
+ if$
+ }
+ { format.crossref.editor * }
+ if$
+ " \citeN{" * crossref * "}" *
+}
+
+FUNCTION { format.incoll.inproc.crossref }
+{ "See"
+ " \citeN{" * crossref * "}" *
+}
+
+FUNCTION { format.lab.names }
+{
+ % format.lab.names:
+ %
+ % determines "short" names for the abbreviated author information.
+ % "Long" labels are created in calc.label, using the routine my.full.label
+ % to format author and editor fields.
+ %
+ % There are 4 cases for labels. (n=3 in the example)
+ % a) one author Foo
+ % b) one to n Foo, Bar and Baz
+ % c) use of "and others" Foo, Bar et al.
+ % d) more than n Foo et al.
+
+ 's :=
+ s num.names$ 'numnames :=
+ numnames #2 > % change number to number of others allowed before
+ % forcing "et al".
+ { s #1 "{vv~}{ll}" format.name$ " et~al\mbox{.}" * } % jrh: \mbox{} added
+ {
+ numnames #1 - 'namesleft :=
+ #2 'nameptr :=
+ s #1 "{vv~}{ll}" format.name$
+ { namesleft #0 > }
+ { nameptr numnames =
+ { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+ { " et~al\mbox{.}" * } % jrh: avoid spacing problems
+ { " and " * s nameptr "{vv~}{ll}" format.name$ * }
+ if$
+ }
+ { ", " * s nameptr "{vv~}{ll}" format.name$ * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ }
+ if$
+}
+
+FUNCTION { author.key.label }
+{
+ author empty.or.unknown
+ { key empty.or.unknown
+ { "no key, author in " cite$ * warning$
+ cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION { editor.key.organization.label }
+{ % added - gnp. Provide label formatting by organization if editor is null.
+ editor empty.or.unknown
+ { organization empty.or.unknown
+ { key empty.or.unknown
+ { "no key, editor or organization in " cite$ * warning$
+ cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { organization }
+ if$
+ }
+ { editor format.lab.names }
+ if$
+}
+
+FUNCTION { author.editor.key.label }
+{
+ author empty.or.unknown
+ { editor empty.or.unknown
+ { key empty.or.unknown
+ { "no key, author, or editor in " cite$ * warning$
+ cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { editor format.lab.names }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+FUNCTION { author.editor.key.organization.label }
+{ % added - gnp. Provide label formatting by organization if author is null.
+ author empty.or.unknown
+ { editor empty.or.unknown
+ { organization empty.or.unknown
+ { key empty.or.unknown
+ { "no key, author, editor or organization in " cite$ * warning$
+ cite$ #1 #3 substring$ }
+ 'key
+ if$
+ }
+ { organization }
+ if$
+ }
+ { editor format.lab.names }
+ if$
+ }
+ { author format.lab.names }
+ if$
+}
+
+% Calculate label and leave it on stack
+FUNCTION { calc.basic.label }
+{
+ type$ "book" =
+ type$ "inbook" =
+ or
+ type$ "article" =
+ or
+ 'author.editor.key.label
+ { type$ "proceedings" =
+ type$ "periodical" =
+ or
+ 'editor.key.organization.label
+ { type$ "manual" =
+ 'author.editor.key.organization.label
+ 'author.key.label
+ if$
+ }
+ if$
+ }
+ if$
+ duplicate$
+ year empty.or.unknown
+ { "{[n.\,d.]}" }
+ { year field.or.null purify$ #-1 #4 substring$}
+ if$
+ *
+ 'basic.label.year :=
+}
+
+FUNCTION { calc.label }
+{
+ % Changed - GNP. See also author.editor.organization.sort, editor.organization.sort
+ % Form label for BibTeX entry. The classification of which fields are used
+ % for which type of entry (book, inbook, etc.) are taken from alpha.bst.
+ % The change here from newapa is to also include organization as a
+ % citation label if author or editor is missing.
+
+ calc.basic.label
+
+ author empty.or.unknown % generate the full label citation information.
+ {
+ editor empty.or.unknown
+ {
+ organization empty.or.unknown
+ {
+ key empty.or.unknown
+ {
+ "no author, editor, organization, or key in " cite$ * warning$
+ "??"
+ }
+ { key }
+ if$
+ }
+ { organization }
+ if$
+ }
+ { editor my.full.label }
+ if$
+ }
+ { author my.full.label }
+ if$
+
+ % leave label on the stack, to be popped when required.
+
+ "}{" * swap$ * "}{" *
+ % year field.or.null purify$ #-1 #4 substring$ *
+ %
+ % save the year for sort processing afterwards (adding a, b, c, etc.)
+ %
+ year empty.or.unknown
+ { "{[n.\,d.]}" }
+ { year field.or.null purify$ #-1 #4 substring$}
+ if$
+ 'label.year :=
+}
+
+
+FUNCTION { output.bibitem }
+{
+ newline$
+ "\bibitem[" write$
+ calc.basic.label write$
+ "(" write$
+ sort.year write$
+ ")" write$
+ "]%" writeln
+ " {" write$
+ cite$ write$
+ "}" writeln
+ ""
+ before.all 'output.state :=
+}
+
+
+FUNCTION { output.issue.doi.coden.isxn.lccn.url.eprint }
+{ % enter and return with stack empty
+ %% We switch now from buffered output to output of complete lines, so
+ %% that the Issue .. URL data have their own lines, and are less likely
+ %% to be line-wrapped by BibTeX's short-sighted algorithm, which wraps
+ %% lines longer than 79 characters, backtracking to what it thinks is
+ %% a break point in the string. Any such wrapping MUST be undone to
+ %% prevent percent-newline from appearing in DOIs and URLs. The
+ %% output data are intentionally wrapped in \showxxx{} macros at
+ %% beginning of line, and that supply their own punctuation (if they
+ %% are not defined to suppress output entirely), to make it easier for
+ %% other software to recover them from .bbl files.
+ %%
+ %% It also makes it possible to later change the macro definitions
+ %% to suppress particular output values, or alter their appearance.
+ %%
+ %% Note that it is possible for theses, technical reports, and
+ %% manuals to have ISBNs, and anything that has an ISBN may also
+ %% have an ISSN. When there are no values for these keys, there
+ %% is no output generated for them here.
+
+ "\newblock" writeln
+ after.block 'output.state :=
+
+ output.issue
+ output.isbn
+ output.coden % CODEN is functionally like ISSN, so output them sequentially
+ output.issn
+ output.lccn
+ output.doi % DOI is ALWAYS last according to CrossRef DOI documentation
+ output.eprint
+ output.url % but ACM wants URL last
+}
+
+FUNCTION { output.issue.doi.coden.isxn.lccn.url.eprint.note }
+{ % enter with stack empty, return with empty string on stack
+ output.issue.doi.coden.isxn.lccn.url.eprint
+ note empty.or.unknown
+ { }
+ {
+ "\newblock" writeln
+ output.note
+ }
+ if$
+ ""
+}
+
+FUNCTION { output.issue.doi.coden.isxn.lccn.url.eprint.note.check }
+{ % enter with stack empty, return with empty string on stack
+ output.issue.doi.coden.isxn.lccn.url.eprint
+ note empty.or.unknown
+ { }
+ {
+ "\newblock" writeln
+ output.note.check
+ }
+ if$
+ ""
+}
+
+FUNCTION { article }
+{
+ output.bibitem
+
+ author empty.or.unknown
+ {
+ editor empty.or.unknown
+ { "neither author and editor supplied for " cite$ * warning$ }
+ { format.editors "editor" output.check }
+ if$
+ }
+ { format.authors "author" output.check }
+ if$
+
+ author format.no.key output % added
+ output.year.check % added
+ new.block
+ format.articletitle "title" output.check
+ new.block
+ howpublished empty.or.unknown
+ { }
+ { "\bibinfo{howpublished}{" howpublished "}" * * output }
+ if$
+
+ crossref missing$
+ { format.journal.volume.number.day.month.year output}
+ {
+ "cross reference in @Article{...} is unusual" warning$
+ format.article.crossref output.nonnull
+ }
+ if$
+
+ format.pages.check.without.articleno output
+ format.articleno.numpages output
+ fin.block
+ output.issue.doi.coden.isxn.lccn.url.eprint.note
+ fin.entry
+}
+
+FUNCTION { book }
+{
+ output.bibitem
+ author empty.or.unknown
+ { format.editors "author and editor" output.check }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ output.year.check % added
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { new.sentence % jtb: start a new sentence for series/volume
+ format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" bibinfo.output.check
+ address "address" bibinfo.output.check % jtb: require address
+ fin.sentence
+ pages empty.or.unknown
+ { format.bookpages } % use bookpages when pages empty
+ { format.pages.check "pages" tie.or.space.connect }
+ if$
+ output
+ }
+ { new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ fin.block
+ output.issue.doi.coden.isxn.lccn.url.eprint.note
+ fin.entry
+}
+
+FUNCTION { booklet }
+{
+ output.bibitem
+ format.authors output
+ author format.key output % added
+ output.year.check % added
+ new.block
+ format.title "title" output.check
+ new.block
+ howpublished empty.or.unknown
+ { }
+ { "\bibinfo{howpublished}{" howpublished "}" * * output }
+ if$
+ address output
+ fin.block
+ output.issue.doi.coden.isxn.lccn.url.eprint.note
+ fin.entry
+}
+
+FUNCTION { inbook }
+{
+ output.bibitem
+ author empty.or.unknown
+ { format.editors
+ "author and editor" output.check
+ }
+ { format.authors output.nonnull
+ crossref missing$
+ { "author and editor" editor either.or.check }
+ 'skip$
+ if$
+ }
+ if$
+ output.year.check % added
+ new.block
+ format.btitle "title" output.check
+ crossref missing$
+ { new.sentence % jtb: start a new sentence for series/volume
+ format.bvolume output
+ new.block
+ format.number.series output
+ new.sentence
+ publisher "publisher" bibinfo.output.check
+ address "address" bibinfo.output.check % jtb: require address
+ format.bookpages output
+ format.chapter.pages
+ "chapter and pages" output.check % jtb: moved from before publisher
+ }
+ {
+ format.bookpages output
+ format.chapter.pages "chapter and pages" output.check
+ new.block
+ format.book.crossref output.nonnull
+ }
+ if$
+ fin.block
+ output.issue.doi.coden.isxn.lccn.url.eprint.note
+ fin.entry
+}
+
+FUNCTION { incollection }
+{
+ output.bibitem
+ format.authors "author" output.check
+ author format.key output % added
+ output.year.check % added
+ new.block
+ format.articletitle "title" output.check
+ new.block
+ crossref missing$
+ { format.in.ed.booktitle "booktitle" output.check
+ new.sentence % jtb: start a new sentence for series/volume
+ format.bvolume output
+ format.number.series output
+ new.sentence
+ publisher "publisher" bibinfo.output.check
+ address "address" bibinfo.output.check % jtb: require address
+ format.bookpages output
+ format.chapter.pages output % gnp - was special.output.nonnull
+ % left out comma before page numbers
+ % jtb: moved from before publisher
+ }
+ {
+ format.incoll.inproc.crossref output.nonnull
+ format.chapter.pages output
+ }
+ if$
+ fin.block
+ output.issue.doi.coden.isxn.lccn.url.eprint.note
+ fin.entry
+}
+
+FUNCTION { inproceedings }
+{
+ output.bibitem
+ format.authors "author" output.check
+ author format.key output % added
+ output.year.check % added
+ new.block
+ format.articletitle "title" output.check
+ howpublished empty.or.unknown
+ { }
+ { "\bibinfo{howpublished}{" howpublished "}" * * output.dot.space }
+ if$
+ crossref missing$
+ {
+ journal missing$ % jtb: proceedings appearing in journals
+ { format.in.emphasize.booktitle format.city "booktitle" output.check.dot.space
+ format.series output.removenospace
+ format.editors.fml output % BV 2011/09/27 Moved dot to comma
+ series empty.or.unknown
+ { format.bvolume.noseries output }
+ {}
+ if$
+ new.sentence
+ organization output
+ publisher "publisher" bibinfo.output.check % jtb: require publisher (?)
+ address "address" bibinfo.output.check % jtb: require address
+ format.bookpages output
+ }
+ {
+ format.in.booktitle format.city "booktitle" output.check
+ format.editors.fml output
+ new.sentence
+ format.journal.volume.number.day.month.year output
+ }
+ if$
+ format.articleno output
+ format.pages.check.without.articleno output
+ }
+ {
+ format.incoll.inproc.crossref output.nonnull
+ format.articleno output
+ format.pages.check.without.articleno output
+ }
+ if$
+ format.articleno.numpages output
+ fin.block
+ output.issue.doi.coden.isxn.lccn.url.eprint.note
+ fin.entry
+}
+
+FUNCTION { conference } { inproceedings }
+
+FUNCTION { manual }
+{
+ output.bibitem
+ author empty.or.unknown
+ { editor empty.or.unknown
+ { organization "organization" output.check
+ organization format.key output } % if all else fails, use key
+ { format.editors "author and editor" output.check }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ output.year.check % added
+ new.block
+ format.btitle "title" output.check
+ organization address new.block.checkb
+ % jtb: back to normal style: organization, address
+ organization "organization" output.check
+ address output
+ fin.block
+ output.issue.doi.coden.isxn.lccn.url.eprint.note
+ fin.entry
+}
+
+FUNCTION { mastersthesis }
+{
+ output.bibitem
+ format.authors "author" output.check
+ author format.key output % added
+ output.year.check % added
+ new.block
+ format.title emphasize "title" output.check % NB: ACM style requires emphasized thesis title
+ new.block
+ "\bibinfo{thesistype}{Master's\ thesis}" format.thesis.type output
+ new.sentence
+ school "school" bibinfo.output.check
+ address empty.or.unknown
+ { }
+ { "\bibinfo{address}{" address * "}" * output }
+ if$
+ new.block
+ format.advisor output
+ fin.block
+ output.issue.doi.coden.isxn.lccn.url.eprint.note
+ fin.entry
+}
+
+FUNCTION { misc }
+{
+ output.bibitem
+ format.authors "author" output.check
+ author format.key output % added
+ output.year.check % added
+ title howpublished new.block.checkb
+ format.title output
+ new.block
+ howpublished empty.or.unknown
+ { }
+ { "\bibinfo{howpublished}{" howpublished "}" * * output }
+ if$
+ "" output.nonnull.dot.space
+ calc.format.page.count output
+ fin.block
+ output.issue.doi.coden.isxn.lccn.url.eprint.note
+ fin.entry
+}
+
+FUNCTION { online } { manual }
+
+FUNCTION { game } { manual }
+
+FUNCTION { artifactsoftware } { manual }
+
+FUNCTION { artifactdataset } { manual }
+
+FUNCTION { software } { manual }
+
+FUNCTION { dataset } { manual }
+
+FUNCTION { phdthesis }
+{
+ output.bibitem
+ format.authors "author" output.check
+ author format.key output % added
+ output.year.check % added
+ new.block
+ format.title emphasize "title" output.check % NB: ACM style requires emphasized thesis title
+ new.block
+ "\bibinfo{thesistype}{Ph.\,D. Dissertation}" format.thesis.type output
+ new.sentence
+ school "school" bibinfo.output.check
+ address empty.or.unknown
+ { }
+ { "\bibinfo{address}{" address * "}" * output }
+ if$
+ new.block
+ format.advisor output
+ fin.block
+ output.issue.doi.coden.isxn.lccn.url.eprint.note
+ fin.entry
+}
+
+FUNCTION {format.date}
+{ year empty.or.unknown
+ { month empty.or.unknown
+ {
+ "" % output empty date if year/month both empty
+ day empty.or.unknown
+ { }
+ { "there's a day but no month or year in " cite$ * warning$ }
+ if$
+ }
+ { "there's a month but no year in " cite$ * warning$
+ month
+ day empty.or.unknown
+ { }
+ { " " * day * }
+ if$
+ }
+ if$
+ }
+ { month empty.or.unknown
+ {
+ year % output only year if month empty
+ day empty.or.unknown
+ { }
+ { "there's a day and year but no month in " cite$ * warning$ }
+ if$
+ }
+ {
+ month " " *
+ day empty.or.unknown
+ { }
+ { day * ", " * }
+ if$
+ year *
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {new.block.checka}
+{
+ empty.or.unknown
+ 'skip$
+ 'new.block
+ if$
+}
+
+FUNCTION { periodical }
+{
+ output.bibitem
+ editor empty.or.unknown
+ { organization output }
+ { format.editors output.nonnull }
+ if$
+ new.block
+ output.year.check
+ new.sentence
+ format.articletitle "title" output.check
+ format.journal.volume.number.day.month.year output
+ calc.format.page.count output
+ fin.entry
+}
+
+FUNCTION { proceedings }
+{
+ output.bibitem
+ editor empty.or.unknown
+ { organization output
+ organization format.key output } % gnp - changed from author format.key
+ { format.editors output.nonnull }
+ if$
+ % author format.key output % gnp - removed (should be either
+ % editor or organization
+ output.year.check % added (newapa)
+ new.block
+ format.btitle format.city "title" output.check % jtb: added city
+ new.sentence
+ format.bvolume output
+ format.number.series output
+ new.sentence
+ organization output
+ % jtb: normal order: publisher, address
+ publisher empty.or.unknown
+ { }
+ { "\bibinfo{publisher}{" publisher * "}" * output }
+ if$
+ address empty.or.unknown
+ { }
+ { "\bibinfo{address}{" address * "}" * output }
+ if$
+ fin.block
+ output.issue.doi.coden.isxn.lccn.url.eprint.note
+ fin.entry
+}
+
+FUNCTION { collection } { proceedings }
+
+FUNCTION { techreport }
+{
+ output.bibitem
+ format.authors "author" output.check
+ author format.key output % added
+ output.year.check % added
+ new.block
+ format.btitle "title" output.check
+ new.block
+% format.tr.number output % jtb: moved month ...
+ format.tr.number output new.sentence % Gerry - need dot 2011/09/28
+ institution "institution" bibinfo.output.check
+ address empty.or.unknown
+ { }
+ { "\bibinfo{address}{" address "}" * * output }
+ if$
+ new.sentence
+ format.named.pages output
+ % ACM omits year at end in transactions style
+ % format.day.month.year output.nonnull.dot.space % jtb: ... to here (no parens)
+ fin.block
+ output.issue.doi.coden.isxn.lccn.url.eprint.note
+ fin.entry
+}
+
+FUNCTION { unpublished }
+{
+ output.bibitem
+ format.authors
+ "author" output.check
+ author format.key output % added
+ output.year.check % added
+ new.block
+ format.title "title" output.check
+ fin.sentence
+ output.day.month.year % UTAH
+ calc.format.page.count output
+ fin.block
+ output.issue.doi.coden.isxn.lccn.url.eprint.note.check
+ fin.entry
+}
+
+FUNCTION { default.type } { misc }
+
+%%% ACM journal-style month definitions: full name if 1--5 letters, else
+%%% abbreviation of 3 or 4 characters and a dot
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sept."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+%%% ACM journal names
+
+MACRO {cie} {"ACM Computers in Entertainment"}
+MACRO {csur} {"ACM Computing Surveys"}
+MACRO {dgov} {"Digital Government: Research and Practice"}
+MACRO {dtrap} {"Digital Threats: Research and Practice"}
+MACRO {health} {"ACM Transactions on Computing for Healthcare"}
+MACRO {imwut} {"PACM on Interactive, Mobile, Wearable and Ubiquitous Technologies"}
+MACRO {jacm} {"Journal of the ACM"}
+MACRO {jdiq} {"ACM Journal of Data and Information Quality"}
+MACRO {jea} {"ACM Journal of Experimental Algorithmics"}
+MACRO {jeric} {"ACM Journal of Educational Resources in Computing"}
+MACRO {jetc} {"ACM Journal on Emerging Technologies in Computing Systems"}
+MACRO {jocch} {"ACM Journal on Computing and Cultural Heritage"}
+MACRO {pacmcgit} {"Proceedings of the ACM on Computer Graphics and Interactive Techniques"}
+MACRO {pacmhci} {"PACM on Human-Computer Interaction"}
+MACRO {pacmpl} {"PACM on Programming Languages"}
+MACRO {pomacs} {"PACM on Measurement and Analysis of Computing Systems"}
+MACRO {taas} {"ACM Transactions on Autonomous and Adaptive Systems"}
+MACRO {taccess} {"ACM Transactions on Accessible Computing"}
+MACRO {taco} {"ACM Transactions on Architecture and Code Optimization"}
+MACRO {talg} {"ACM Transactions on Algorithms"}
+MACRO {tallip} {"ACM Transactions on Asian and Low-Resource Language Information Processing"}
+MACRO {tap} {"ACM Transactions on Applied Perception"}
+MACRO {tcps} {"ACM Transactions on Cyber-Physical Systems"}
+MACRO {tds} {"ACM/IMS Transactions on Data Science"}
+MACRO {teac} {"ACM Transactions on Economics and Computation"}
+MACRO {tecs} {"ACM Transactions on Embedded Computing Systems"}
+MACRO {telo} {"ACM Transactions on Evolutionary Learning"}
+MACRO {thri} {"ACM Transactions on Human-Robot Interaction"}
+MACRO {tiis} {"ACM Transactions on Interactive Intelligent Systems"}
+MACRO {tiot} {"ACM Transactions on Internet of Things"}
+MACRO {tissec} {"ACM Transactions on Information and System Security"}
+MACRO {tist} {"ACM Transactions on Intelligent Systems and Technology"}
+MACRO {tkdd} {"ACM Transactions on Knowledge Discovery from Data"}
+MACRO {tmis} {"ACM Transactions on Management Information Systems"}
+MACRO {toce} {"ACM Transactions on Computing Education"}
+MACRO {tochi} {"ACM Transactions on Computer-Human Interaction"}
+MACRO {tocl} {"ACM Transactions on Computational Logic"}
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+MACRO {toct} {"ACM Transactions on Computation Theory"}
+MACRO {todaes} {"ACM Transactions on Design Automation of Electronic Systems"}
+MACRO {tods} {"ACM Transactions on Database Systems"}
+MACRO {tog} {"ACM Transactions on Graphics"}
+MACRO {tois} {"ACM Transactions on Information Systems"}
+MACRO {toit} {"ACM Transactions on Internet Technology"}
+MACRO {tomacs} {"ACM Transactions on Modeling and Computer Simulation"}
+MACRO {tomm} {"ACM Transactions on Multimedia Computing, Communications and Applications"}
+MACRO {tompecs} {"ACM Transactions on Modeling and Performance Evaluation of Computing Systems"}
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+MACRO {topc} {"ACM Transactions on Parallel Computing"}
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+MACRO {tops} {"ACM Transactions on Privacy and Security"}
+MACRO {tos} {"ACM Transactions on Storage"}
+MACRO {tosem} {"ACM Transactions on Software Engineering and Methodology"}
+MACRO {tosn} {"ACM Transactions on Sensor Networks"}
+MACRO {tqc} {"ACM Transactions on Quantum Computing"}
+MACRO {trets} {"ACM Transactions on Reconfigurable Technology and Systems"}
+MACRO {tsas} {"ACM Transactions on Spatial Algorithms and Systems"}
+MACRO {tsc} {"ACM Transactions on Social Computing"}
+MACRO {tslp} {"ACM Transactions on Speech and Language Processing"}
+MACRO {tweb} {"ACM Transactions on the Web"}
+
+%%% Some traditional macros
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+
+
+READ
+
+FUNCTION { sortify }
+{
+ purify$
+ "l" change.case$
+}
+
+FUNCTION { chop.word }
+{
+ 's :=
+ 'len :=
+ s #1 len substring$ =
+ { s len #1 + global.max$ substring$ }
+ 's
+ if$
+}
+
+FUNCTION { sort.format.names }
+{
+ 's :=
+ #1 'nameptr :=
+ ""
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { nameptr #1 >
+ { " " * }
+ 'skip$
+ if$
+ s nameptr "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" format.name$ 't :=
+ nameptr numnames = t "others" = and
+ { " et~al" * }
+ { t sortify * }
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION { sort.format.title }
+{
+ 't :=
+ "A " #2
+ "An " #3
+ "The " #4 t chop.word
+ chop.word
+ chop.word
+ sortify
+ #1 global.max$ substring$
+}
+
+FUNCTION { author.sort }
+{
+ author empty.or.unknown
+ { key empty.or.unknown
+ { "to sort, need author or key in " cite$ * warning$
+ "" }
+ { key sortify }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION { author.editor.sort }
+{
+ author empty.or.unknown
+ {
+ editor empty.or.unknown
+ {
+ key empty.or.unknown
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION { editor.organization.sort }
+{
+ % added - GNP. Stack editor or organization for sorting (from alpha.bst).
+ % Unlike alpha.bst, we need entire names, not abbreviations
+
+ editor empty.or.unknown
+ { organization empty.or.unknown
+ { key empty.or.unknown
+ { "to sort, need editor, organization, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { organization sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+}
+
+FUNCTION { author.editor.organization.sort }
+{
+ % added - GNP. Stack author or organization for sorting (from alpha.bst).
+ % Unlike alpha.bst, we need entire names, not abbreviations
+
+ author empty.or.unknown
+ {
+ editor empty.or.unknown
+ { organization empty.or.unknown
+ { key empty.or.unknown
+ { "to sort, need author, editor, or key in " cite$ * warning$
+ ""
+ }
+ { key sortify }
+ if$
+ }
+ { organization sortify }
+ if$
+ }
+ { editor sort.format.names }
+ if$
+ }
+ { author sort.format.names }
+ if$
+}
+
+FUNCTION { presort }
+{
+ % Presort creates the bibentry's label via a call to calc.label, and then
+ % sorts the entries based on entry type. Chicago.bst adds support for
+ % including organizations as the sort key; the following is stolen from
+ % alpha.bst.
+
+ calc.label
+ basic.label.year
+ swap$
+ " "
+ swap$
+ * *
+ " "
+ *
+ sortify
+ year field.or.null purify$ #-1 #4 substring$ * % add year
+ " "
+ *
+ type$ "book" =
+ type$ "inbook" =
+ or
+ type$ "article" =
+ or
+ 'author.editor.sort
+ { type$ "proceedings" =
+ type$ "periodical" =
+ or
+ 'editor.organization.sort
+ { type$ "manual" =
+ 'author.editor.organization.sort
+ 'author.sort
+ if$
+ }
+ if$
+ }
+ if$
+ #1 entry.max$ substring$ % added for newapa
+ 'sort.label := % added for newapa
+ sort.label % added for newapa
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+
+
+ITERATE { presort }
+
+SORT % by label, year, author/editor, title
+
+% From plainnat.bst
+STRINGS { longest.label }
+
+INTEGERS { longest.label.width number.label }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #0 int.to.chr$ 'last.label :=
+ "" 'next.extra :=
+ #0 'longest.label.width :=
+ #0 'last.extra.num :=
+ #0 'number.label :=
+}
+
+
+
+FUNCTION { initialize.extra.label.stuff }
+{ #0 int.to.chr$ 'last.label :=
+ "" 'next.extra :=
+ #0 'last.extra.num :=
+}
+
+FUNCTION { forward.pass }
+{
+ % Pass through all entries, comparing current entry to last one.
+ % Need to concatenate year to the stack (done by calc.label) to determine
+ % if two entries are the same (see presort)
+
+ last.label
+ calc.basic.label year field.or.null purify$ #-1 #4 substring$ * % add year
+ #1 entry.max$ substring$ = % are they equal?
+ { last.extra.num #1 + 'last.extra.num :=
+ last.extra.num int.to.chr$ 'extra.label :=
+ }
+ { "a" chr.to.int$ 'last.extra.num :=
+ "" 'extra.label :=
+ calc.basic.label year field.or.null purify$ #-1 #4 substring$ * % add year
+ #1 entry.max$ substring$ 'last.label := % assign to last.label
+ }
+ if$
+ number.label #1 + 'number.label :=
+}
+
+FUNCTION { reverse.pass }
+{
+ next.extra "b" =
+ { "a" 'extra.label := }
+ 'skip$
+ if$
+ label.year extra.label * 'sort.year :=
+ extra.label 'next.extra :=
+}
+
+EXECUTE {initialize.extra.label.stuff}
+EXECUTE {initialize.longest.label}
+
+
+ITERATE {forward.pass}
+
+REVERSE {reverse.pass}
+
+FUNCTION { bib.sort.order }
+{
+ sort.label
+ " "
+ *
+ year field.or.null sortify
+ *
+ " "
+ *
+ title field.or.null
+ sort.format.title
+ *
+ #1 entry.max$ substring$
+ 'sort.key$ :=
+}
+
+ITERATE { bib.sort.order }
+
+SORT % by sort.label, year, title --- giving final bib. order.
+
+FUNCTION { begin.bib }
+{
+ %% Set to #0 show 13-digit ISBN in preference to 10-digit ISBN.
+ %% Set to #1 to show both 10-digit and 13-digit ISBNs.
+ #1 'show-isbn-10-and-13 :=
+
+ "%%% -*-BibTeX-*-" writeln
+ "%%% Do NOT edit. File created by BibTeX with style" writeln
+ "%%% ACM-Reference-Format-Journals [18-Jan-2012]." writeln
+ "" writeln
+
+ preamble$ empty.or.unknown
+ 'skip$
+ { preamble$ writeln }
+ if$
+ "\begin{thebibliography}{" number.label int.to.str$ * "}" * writeln
+ "" writeln
+ "%%% ====================================================================" writeln
+ "%%% NOTE TO THE USER: you can override these defaults by providing" writeln
+ "%%% customized versions of any of these macros before the \bibliography" writeln
+ "%%% command. Each of them MUST provide its own final punctuation," writeln
+ "%%% except for \shownote{}, \showDOI{}, and \showURL{}. The latter two" writeln
+ "%%% do not use final punctuation, in order to avoid confusing it with" writeln
+ "%%% the Web address." writeln
+ "%%%" writeln
+ "%%% To suppress output of a particular field, define its macro to expand" writeln
+ "%%% to an empty string, or better, \unskip, like this:" writeln
+ "%%%" writeln
+ "%%% \newcommand{\showDOI}[1]{\unskip} % LaTeX syntax" writeln
+ "%%%" writeln
+ "%%% \def \showDOI #1{\unskip} % plain TeX syntax" writeln
+ "%%%" writeln
+ "%%% ====================================================================" writeln
+ "" writeln
+
+ %% ACM publications do not use CODEN, ISSN, and LCCN data, so their default
+ %% macro wrappers expand to \unskip, discarding their values and unwanted
+ %% space.
+ %%
+ %% For other publications, prior definitions like these may be useful:
+ %%
+ %% Plain TeX:
+ %% \def \showCODEN #1{CODEN #1.}
+ %% \def \showISSN #1{ISSN #1.}
+ %% \def \showLCCN #1{LCCN #1.}
+ %%
+ %% LaTeX:
+ %% \newcommand{\showCODEN}[1]{CODEN #1.}
+ %% \newcommand{\showISSN}[1]#1{ISSN #1.}
+ %% \newcommand{\showLCCN}[1]{LCCN #1.}
+
+ "\ifx \showCODEN \undefined \def \showCODEN #1{\unskip} \fi" writeln
+ "\ifx \showDOI \undefined \def \showDOI #1{#1}\fi" writeln
+ % ACM styles omit ISBNs, but they can be included by suitable definitions of
+ % \showISBNx and \showISBNxiii before the .bbl file is read
+ "\ifx \showISBNx \undefined \def \showISBNx #1{\unskip} \fi" writeln
+ "\ifx \showISBNxiii \undefined \def \showISBNxiii #1{\unskip} \fi" writeln
+ "\ifx \showISSN \undefined \def \showISSN #1{\unskip} \fi" writeln
+ "\ifx \showLCCN \undefined \def \showLCCN #1{\unskip} \fi" writeln
+ "\ifx \shownote \undefined \def \shownote #1{#1} \fi" writeln % NB: final period supplied by add.period$ above
+ "\ifx \showarticletitle \undefined \def \showarticletitle #1{#1} \fi" writeln
+ "\ifx \showURL \undefined \def \showURL {\relax} \fi" writeln
+ "% The following commands are used for tagged output and should be " writeln
+ "% invisible to TeX" writeln
+ "\providecommand\bibfield[2]{#2}" writeln
+ "\providecommand\bibinfo[2]{#2}" writeln
+ "\providecommand\natexlab[1]{#1}" writeln
+ "\providecommand\showeprint[2][]{arXiv:#2}" writeln
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+FUNCTION { end.bib }
+{
+ newline$
+ "\end{thebibliography}"
+ writeln
+}
+
+EXECUTE {end.bib}
diff --git a/ACM-JRC/acmart-primary/Makefile b/ACM-JRC/acmart-primary/Makefile
new file mode 100644
index 0000000..545e505
--- /dev/null
+++ b/ACM-JRC/acmart-primary/Makefile
@@ -0,0 +1,169 @@
+#
+# Makefile for acmart package
+#
+# This file is in public domain
+#
+# $Id: Makefile,v 1.10 2016/04/14 21:55:57 boris Exp $
+#
+
+PACKAGE=acmart
+
+DEV=-dev # To switch dev on
+#DEV=
+
+PDF = $(PACKAGE).pdf acmguide.pdf
+
+BIBLATEXFILES= $(wildcard *.bbx) $(wildcard *.cbx) $(wildcard *.dbx) $(wildcard *.lbx)
+SAMPLEBIBLATEXFILES=$(patsubst %,samples/%,$(BIBLATEXFILES))
+
+ACMCPSAMPLES= \
+ samples/sample-acmcp-Discussion.pdf \
+ samples/sample-acmcp-Invited.pdf \
+ samples/sample-acmcp-Position.pdf \
+ samples/sample-acmcp-Research.pdf \
+ samples/sample-acmcp-Review.pdf \
+
+all: ${PDF} ALLSAMPLES
+
+%.pdf: %.dtx $(PACKAGE).cls
+ pdflatex $<
+ - bibtex $*
+ pdflatex $<
+ - makeindex -s gind.ist -o $*.ind $*.idx
+ - makeindex -s gglo.ist -o $*.gls $*.glo
+ pdflatex $<
+ while ( grep -q '^LaTeX Warning: Label(s) may have changed' $*.log) \
+ do pdflatex $<; done
+
+
+acmguide.pdf: $(PACKAGE).dtx $(PACKAGE).cls
+ pdflatex -jobname acmguide $(PACKAGE).dtx
+ - bibtex acmguide
+ pdflatex -jobname acmguide $(PACKAGE).dtx
+ while ( grep -q '^LaTeX Warning: Label(s) may have changed' acmguide.log) \
+ do pdflatex -jobname acmguide $(PACKAGE).dtx; done
+
+%.cls: %.ins %.dtx
+ pdflatex $<
+
+
+ALLSAMPLES: $(SAMPLEBIBLATEXFILES)
+ cd samples; pdflatex samples.ins; cd ..
+ for texfile in samples/*.tex; do \
+ pdffile=$${texfile%.tex}.pdf; \
+ ${MAKE} $$pdffile; \
+ done
+
+samples/%: %
+ cp $^ samples
+
+
+samples/$(PACKAGE).cls: $(PACKAGE).cls
+samples/ACM-Reference-Format.bst: ACM-Reference-Format.bst
+
+samples/abbrev.bib: ACM-Reference-Format.bst
+ perl -pe 's/MACRO ({[^}]*}) *\n/MACRO \1/' ACM-Reference-Format.bst \
+ | grep MACRO | sed 's/MACRO {/@STRING{/' \
+ | sed 's/} *{/ = /' > samples/abbrev.bib
+
+
+samples/%.bbx: %.bbx
+samples/%.cbx: %.cbx
+samples/%.dbx: %.dbx
+samples/%.lbx: %.lbx
+
+
+
+samples/%.pdf: samples/%.tex samples/$(PACKAGE).cls samples/ACM-Reference-Format.bst
+ cd $(dir $@) && pdflatex${DEV} $(notdir $<)
+ - cd $(dir $@) && bibtex $(notdir $(basename $<))
+ cd $(dir $@) && pdflatex${DEV} $(notdir $<)
+ cd $(dir $@) && pdflatex${DEV} $(notdir $<)
+ while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
+ do cd $(dir $@) && pdflatex${DEV} $(notdir $<); done
+
+samples/sample-sigconf-biblatex.pdf: samples/sample-sigconf-biblatex.tex $(SAMPLEBIBLATEXFILES)
+ cd $(dir $@) && pdflatex${DEV} $(notdir $<)
+ - cd $(dir $@) && biber $(notdir $(basename $<))
+ cd $(dir $@) && pdflatex${DEV} $(notdir $<)
+ cd $(dir $@) && pdflatex${DEV} $(notdir $<)
+ while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
+ do cd $(dir $@) && pdflatex${DEV} $(notdir $<); done
+
+samples/sample-acmsmall-biblatex.pdf: samples/sample-acmsmall-biblatex.tex $(SAMPLEBIBLATEXFILES)
+ cd $(dir $@) && pdflatex${DEV} $(notdir $<)
+ - cd $(dir $@) && biber $(notdir $(basename $<))
+ cd $(dir $@) && pdflatex${DEV} $(notdir $<)
+ cd $(dir $@) && pdflatex${DEV} $(notdir $<)
+ while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
+ do cd $(dir $@) && pdflatex${DEV} $(notdir $<); done
+
+samples/sample-sigconf-xelatex.pdf: samples/sample-xelatex.tex samples/$(PACKAGE).cls samples/ACM-Reference-Format.bst
+ cd $(dir $@) && xelatex${DEV} $(notdir $<)
+ - cd $(dir $@) && bibtex $(notdir $(basename $<))
+ cd $(dir $@) && xelatex${DEV} $(notdir $<)
+ cd $(dir $@) && xelatex${DEV} $(notdir $<)
+ while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
+ do cd $(dir $@) && xelatex${DEV} $(notdir $<); done
+
+samples/sample-sigconf-lualatex.pdf: samples/sample-lualatex.tex samples/$(PACKAGE).cls samples/ACM-Reference-Format.bst
+ cd $(dir $@) && lualatex${DEV} $(notdir $<)
+ - cd $(dir $@) && bibtex $(notdir $(basename $<))
+ cd $(dir $@) && lualatex${DEV} $(notdir $<)
+ cd $(dir $@) && lualatex${DEV} $(notdir $<)
+ while ( grep -q '^LaTeX Warning: Label(s) may have changed' $(basename $<).log) \
+ do cd $(dir $@) && lualatex${DEV} $(notdir $<); done
+
+samples/sample-acmcp.pdf: samples/acm-jdslogo.png
+
+.PRECIOUS: $(PACKAGE).cfg $(PACKAGE).cls
+
+docclean:
+ $(RM) *.log *.aux \
+ *.cfg *.glo *.idx *.toc \
+ *.ilg *.ind *.out *.lof \
+ *.lot *.bbl *.blg *.gls *.cut *.hd \
+ *.dvi *.ps *.thm *.tgz *.zip *.rpi \
+ samples/$(PACKAGE).cls samples/ACM-Reference-Format.bst \
+ samples/*.log samples/*.aux samples/*.out \
+ samples/*.bbl samples/*.blg samples/*.cut \
+ samples/acm-jdslogo.png \
+ samples/*.run.xml samples/*.bcf $(SAMPLEBIBLATEXFILES)
+
+
+clean: docclean
+ $(RM) $(PACKAGE).cls \
+ samples/*.tex
+
+distclean: clean
+ $(RM) *.pdf samples/sample-*.pdf
+
+#
+# Archive for the distribution. Includes typeset documentation
+#
+archive: all clean
+ COPYFILE_DISABLE=1 tar -C .. -czvf ../$(PACKAGE).tgz --exclude '*~' --exclude '*.tgz' --exclude '*.zip' --exclude CVS --exclude '.git*' $(PACKAGE); mv ../$(PACKAGE).tgz .
+
+zip: all clean
+ zip -r $(PACKAGE).zip * -x '*~' -x '*.tgz' -x '*.zip' -x CVS -x 'CVS/*'
+
+# distros
+distros: all docclean
+ zip -r acm-distro.zip \
+ acmart.pdf acmguide.pdf samples *.cls ACM-Reference-Format.* \
+ --exclude samples/sample-acmengage*
+ zip -r acmengage-distro.zip samples/sample-acmengage* \
+ samples/*.bib \
+ acmart.pdf acmguide.pdf *.cls ACM-Reference-Format.*
+
+acmcp.zip: ${ACMCPSAMPLES} acmart.cls
+ zip $@ $+
+
+samples/sample-acmcp.tex: samples/samples.ins samples/samples.dtx
+ cd samples; pdflatex samples.ins; cd ..
+
+
+samples/sample-acmcp-%.tex: samples/sample-acmcp.tex samples/acm-jdslogo.png
+ sed 's/acmArticleType{Review}/acmArticleType{$*}/' $< > $@
+
+.PHONY: all ALLSAMPLES docclean clean distclean archive zip
diff --git a/ACM-JRC/acmart-primary/README b/ACM-JRC/acmart-primary/README
new file mode 100644
index 0000000..7d79e34
--- /dev/null
+++ b/ACM-JRC/acmart-primary/README
@@ -0,0 +1,385 @@
+This package provides a class for typesetting publications of the
+Association for Computing Machinery.
+
+Your TeX distribution probably includes the latest released version of
+this package. If you decide to install it yourself, please see the
+Installation section of the User's Guide.
+
+Please note that the version on Github is a development (or
+experimental) version: please download it for testing new features.
+The production version is the one on CTAN and ACM sites.
+
+
+Changes
+
+Version 2.08. Section titles are in lowercase now.
+ Documentation updates.
+
+Version 2.07. Corrected typo in TELO eISSN.
+
+Version 2.06. Added eISSN for a number of journals.
+ ACM no longer collects or prints authors'
+ postal addresses
+
+Version 2.05 Changed title for TELO.
+
+Version 2.04 Compatibility with the new latex-dev format
+ eSSN is always printed, even if pSSN is present
+ Wording change in copyright statement
+
+Version 2.03 Cleaned generation of samples.
+ New options for printing conference proceedings
+ in ACM journals
+
+Version 2.02 Documentation update.
+ Changes in TOG templates
+ Corrected typo in ACM/IMS journals
+
+Version 2.01 \acmPrice now produces a warning.
+
+Version 2.00 ACM switches to electronic only version.
+ We do not print article tabs anymore.
+ New copyright wording.
+ Deleted \acmPrice.
+
+Version 1.93 Added PACMSE
+
+Version 1.92 Documentation update
+ Emergency change: changed order of hyperref and hyperxmp
+ due to changes in the undelying packages
+
+Version 1.91 Minor changes in ACMCP format
+
+Version 1.90a Changes in the sample keywords and concepts
+
+Version 1.90 Journal ISSN updated
+
+Version 1.89a Added version info to .bst
+
+Version 1.89 Bug fixes
+ Redesign of ACMCP
+ New positioning of badges
+ New journals: PACMMOD, TOPML
+
+Version 1.88 New ISSNs
+ Documentation updates
+ New journal: PACMNET
+
+Version 1.87 CC license is allowed for non-acm documents and ACM Engage
+ documents only
+ New format acmcp for the cover page
+ New journals: JATS, ACMJCSS, TORS
+ Bug fixes
+
+Version 1.86. Empty country in affiliation now produces an error
+ Bug fixes
+ New samples for acmengage
+
+Version 1.85. Bug fixes
+ Added support for Creative Commons licenses (requires
+ doclicense images)
+ New journals
+ New format acmengage for ACM Engage CSEdu course materials
+
+Version 1.84 Support for BibLaTeX rewritten (thanks to
+ Roberto Di Cosmo and Kartik Singhal)
+ Corrected German translation (thanks to Dirk Beyer)
+ New journals
+
+Version 1.83 Support for multilanguage papers
+ ISSN changes for some journals
+
+Version 1.82 Bug fixes.
+ New command \anon for anonymization of short strings.
+ Documentation update.
+
+Version 1.81 Bug fixes
+ New bib field distinctURL to print URL even if doi is present.
+ Reworded samples
+
+Version 1.80 New journals: DLT, FAC
+
+Version 1.79 Fixed pages with index
+ (https://github.com/borisveytsman/acmart/issues/440)
+ Updated information for TAP, TCPS, TEAC
+
+Version 1.78 Documentation update.
+ Magic texcount comments for samples.
+ Title page now is split if there are too many authors
+ Bug fixes.
+
+Version 1.77 Changed the way to typeset multiple affiliations (Christoph Sommer)
+
+Version 1.76 Added many journal abbreviations to the bst.
+ New experimental option: pbalance
+ ORCID linking code
+
+Version 1.75 Omitted \country now produces error.
+ Added \AtBeginMaketitle
+
+Version 1.74 Bug fixes. A regression introduced in the font changes
+ is reverted.
+
+Version 1.73 Bug fixes
+ The elements institution, city and country are now obligatory
+ for affiliations. The absence of them produces a warning
+
+Version 1.72 Bug fixes. Better handling of metadata.
+
+Version 1.71 Bug fixes
+ Formats sigchi and sigchi-a are retired
+ Bibliography formatting changes for @inproceedings entries
+ having both series and volume
+ LuaLaTeX now uses the same OTF fonts as XeLaTeX
+
+Version 1.70 Title change for ACM/IMS Transactions on Data Science
+ Bug fixes for bibliography
+
+Version 1.69 Bug fixes
+ Compatibility with LaTeX 2020-02-02 release
+
+Version 1.68 Bug fixes
+ BST now recognizes words `Paper' or 'Article' in
+ eid or articleno
+
+Version 1.67 Urgent bug fixes:
+ BibTeX style bug fixed (Michael D. Adams)
+ Sigplan special section bugfix
+
+Version 1.66 Bug fixes
+ BibTeX change: location is now a synonym for city (Feras Saad)
+ ACM reference format is now mandatory for papers over one page.
+ CCS concepts and keywords are now mandatory for
+ papers over two pages.
+ Authors' addresses are mandatory for journal articles.
+
+Version 1.65 Bug fixes
+ New journal: DGOV
+ DTRAP and HEALTH are now using acmlarge format
+
+Version 1.64 Produce error if abstract is entered after maketitle
+ (previously abstract was silently dropped)
+ Bug fixes for line numbering
+
+Version 1.63a Moved TQUANT to TQC
+
+Version 1.63 New journals: TQUANT, FACMP
+
+Version 1.62 Documentation update
+ New journal: TELO
+ Bug fixes
+
+Version 1.61 Bug fixes
+ New bibtex types for artifacts
+
+Version 1.60 New option: urlbreakonhyphens (thanks to Peter Kemp)
+ Smaller header size for acmsmall
+
+Version 1.59 Now a journal format can be used for conference proceedings
+ All samples are now generated from the same .dtx file
+ Bug fixes
+
+Version 1.58 Suppressed spurious warnings.
+ New journal: HEALTH.
+ TDSCI is renamed to TDS.
+
+Version 1.57 Change of \baselinestretch now produces an error
+ Booktabs is now always loaded
+ Added option `balance' to balance last page in two-column mode
+ E-mail is no longer split in addresses
+ New samples (Stephen Spencer)
+
+Version 1.56 Bug fixes
+ Added \flushbottom to two column formats (Philip Quinn)
+ The final punctuation for the list of concepts
+ is now a period instead of a semicolon (Philip Quinn)
+ New command \Description to describe images for visually
+ impaired users.
+
+Version 1.55 Bug fixes
+ Font changes for SIGCHI table captions
+
+Version 1.54 New option: 'nonacm' (Gabriel Scherer)
+ Deleted indent for subsubsection (suggested by Ross Moore)
+ Suppressed some obscurious warning in BibTeX processing
+ Suppressed hyperrerf warnings (Paolo G. Giarrusso)
+ New code for sections to help with accessibility patches
+ (Ross Moore)
+ Submission id, if present, is printed in anon mode
+ Bug fixes
+
+Version 1.53 New journals: PACMCGIT, TIOT, TDSCI
+
+Version 1.52 Another rewording of licenses
+
+Version 1.51 Journal footers now use abbreviated journal titles.
+ Corrected the bug with acmPrice.
+ Do not show price when copyright is set to iw3c2w3 and iw3c2w3g.
+ The package now is compatible with polyglossia (Joachim Breitner).
+ Slightly reworded copyright statements.
+
+Version 1.50 Changes in iw3c2w3 and iw3c2w3g
+
+Version 1.49 New jorunal: DTRAP
+
+Version 1.48 Bug fixes
+ Review mode now switches on folios
+ Code prettying (Michael D. Adams)
+ Bibliography changes: @MISC entries no longer have a
+ separate date
+ Sigch-a sample bibliography renamed
+ Bib code cleanup (Zack Weinberg)
+ Acmart and version info are added to pdfcreator tag
+ \citeyear no longer produces parenthetical year
+ Added initial support for Biblatex (Daniel Thomas)
+ Added support for IW3C2 conferences
+
+Version 1.47 New journal: THRI
+
+Version 1.46 Bug fixes for bibliography: label width is now calculated
+ correctly.
+ All PACM now use screen option. This requires etoolbox.
+ Added subtitle to ACM reference format.
+ Now acmart is compatible with fontspec.
+ \thanks is now obsolete. The addresses are automatically
+ added to the journal version; this can be overriden with
+ \authorsaddresses command.
+ Deleted the rule at the end of frontmatter for all formats.
+ Deleted new line before doi in the reference format.
+ Reintegrated theorem code into acmart.dtx (Matthew Fluet)
+
+Version 1.45 Workaround for a Libertine bug. Thanks to LianTze Lim
+ from Overleaf
+
+Version 1.44 Bug fixes.
+ Empty DOI and ISBN suppress printing DOI or ISBN lines
+ Separated theorem code into acmthm.sty, loaded by default.
+ Article number can be set for proceedings.
+ New commands: \acmBooktile, \editor.
+ Reference citation format updated.
+
+Version 1.43 Bug fixes
+
+Version 1.42 Deleted ACM badges
+ Bug fixes
+
+Version 1.41 Rearranged bib files
+ Added new badges
+
+Version 1.40 Bibliography changes
+ Added processing of one-compoment ccsdesc nodes
+ Bug fixes.
+ Made the height a multiple of \baselineskip + \topskip
+ Added cleveref
+ We no longer print street address in SIGs
+
+Version 1.39 Added \authornotemark commmand
+
+Version 1.38 Increase default font size for SIGPLAN
+
+Version 1.37 Reduce list indentation (Matthew Fluet)
+
+Version 1.36 Bug fixes
+ Moved PACMPL to acmlarge format
+ New journal: PACMHCI
+ Added the possibility to adjust number of author
+ boxes per row in conference formats
+
+Version 1.35 Author-year bib style now uses square brackets.
+ Changed defaults for TOG sample
+ Price is suppressed for usgov and rightsretained modes.
+ Bugs fixed
+
+Version 1.34 Deleted DOI from doi numbers
+ Changed bibstrip formatting
+ The command \terms is now obsolete
+ The rulers in review mode now have continuous numbering
+
+Version 1.33 New option `timestamp' (Michael D. Adams)
+ New option `authordraft'
+ Documentation updates
+ Bug fixes
+ We now use Type 1 versions of Libertine fonts even with XeTeX.
+ New hook acmart-preload-hook.tex (wizards only!)
+ Added new options `obeypunctuation' for \affiliation command
+ Added SubmissionID
+ Added right line count ruler for two-column formats
+ Added workaround for Adobe Acrobat bugs in selection
+ Added eid field to the bibliography
+
+Version 1.32 New DOI formatting.
+ Format siggraph is now obsolete, and sigconf
+ is used instead.
+ New proceedings title: POMACS.
+
+Version 1.31 Changed default year and month to the current ones
+ (thanks to Matteo Riondato)
+ Table of contents now works
+ Marginalia now work in all formats
+ New command \additionalaffiliation
+ Documentation changes
+
+Version 1.30 Bibtex style now recognizes https:// in doi.
+ Added \frenchspacing.
+ \department now has an optional hierarchy level.
+ Switched to T1 encoding
+ Updated IMWUT and PACMPL
+
+Version 1.29 Documentation changes. Head height increased from 12pt to 13pt.
+ Removed spurious indent at start of abstract.
+ Improved kerning in CCS description list.
+
+Version 1.28 Bug fixes: natbib=false now behaves correctly.
+
+Version 1.27 Bug fixes
+
+Version 1.26 Bug fixes
+
+Version 1.25 Updated PACMPL journal option.
+
+Version 1.24 Added IMWUT journal option.
+
+Version 1.23 Added PACM PL journal option.
+
+Version 1.22 Bibliography changes for Aptara backend; should be
+ invisible for the users.
+
+Version 1.21 Bibliography changes: added arXiv, some cleanup
+
+Version 1.20 Bug fixes, documentation updates
+
+Version 1.19 Include 'Abstract', 'Acknowledgements', and 'References'
+ in PDF bookmarks.
+
+Version 1.18 Natbib is now the default for all versions. A unified bib
+ file is used for all styles. Better treatment
+ of multiple affiliations.
+
+
+Version 1.17 Formatting changes for margins and lists. Bug fixes.
+
+Version 1.16 Formatting changes for headers and footers.
+
+Version 1.15 New structured affiliation command.
+ New commands for acknowledgements.
+
+Version 1.14 Warn about undefined citation styles; move definitions
+ of acmauthoryear and acmnumeric citation styles before
+ use.
+
+Version 1.13 Formatting changes: headers, folios etc.
+ Bibliography changes.
+
+Version 1.12 Bug fixes and documentation updates.
+ Footnotes rearranged.
+ Option natbib is now mostly superfluous: the class
+ makes a guess based on the format chosen.
+
+Version 1.11 Customization of ACM theorem styles and proof
+ environment (Matthew Fluet).
+
+Version 1.10 Bug fixes
+
+Version 1.09 SIGPLAN: revert caption rules (Matthew Fluet)
+
+Version 1.08 SIGPLAN reformatting (Matthew Fluet); bug fixes
diff --git a/ACM-JRC/acmart-primary/acm-jdslogo.png b/ACM-JRC/acmart-primary/acm-jdslogo.png
new file mode 100644
index 0000000..9772aed
Binary files /dev/null and b/ACM-JRC/acmart-primary/acm-jdslogo.png differ
diff --git a/ACM-JRC/acmart-primary/acmart.bib b/ACM-JRC/acmart-primary/acmart.bib
new file mode 100644
index 0000000..2e422a7
--- /dev/null
+++ b/ACM-JRC/acmart-primary/acmart.bib
@@ -0,0 +1,95 @@
+@Misc{TeXFAQ,
+ title = {{UK} List of {\TeX} Frequently Asked Questions},
+ author = {{UK \TeX{} Users Group}},
+ year = 2019,
+ howpublished = {\url{https://texfaq.org}}
+}
+
+@Manual{Downes04:amsart,
+ title = {The \textsf{amsart}, \textsf{amsproc}, and
+ \textsf{amsbook} document~classes},
+ author = {Michael Downes and Barbara Beeton},
+ organization = {American Mathematical Society},
+ year = 2004,
+ month = aug,
+ note = {\url{http://www.ctan.org/pkg/amslatex}}
+}
+
+@Manual{Fiorio15,
+ title = {{a}lgorithm2e.sty---package for algorithms},
+ author = {Cristophe Fiorio},
+ year = 2015,
+ month = oct,
+ note = {\url{http://www.ctan.org/pkg/algorithm2e}}
+}
+
+@Manual{Brito09,
+ title = {The algorithms bundle},
+ author = {Rog\'erio Brito},
+ year = 2009,
+ month = aug,
+ note = {\url{http://www.ctan.org/pkg/algorithms}}
+}
+
+@Manual{Heinz15,
+ title = {The Listings Package},
+ author = {Carsten Heinz and Brooks Moses and Jobst Hoffmann},
+ year = 2015,
+ month = jun,
+ note = {\url{http://www.ctan.org/pkg/listings}}
+}
+
+@Manual{Fear05,
+ title = {Publication quality tables in {\LaTeX}},
+ author = {Simon Fear},
+ year = 2005,
+ month = apr,
+ note = {\url{http://www.ctan.org/pkg/booktabs}}
+}
+
+@Manual{ACMIdentityStandards,
+ title = {{ACM} Visual Identity Standards},
+ organization = {Association for Computing Machinery},
+ year = 2007,
+ note = {\url{http://identitystandards.acm.org}}
+}
+
+@Manual{Sommerfeldt13:Subcaption,
+ title = {The subcaption package},
+ author = {Axel Sommerfeldt},
+ year = 2013,
+ month = apr,
+ note = {\url{http://www.ctan.org/pkg/subcaption}}
+}
+
+@Manual{Nomencl,
+ title = {A package to create a nomenclature},
+ author = {Boris Veytsman and Bern Schandl and Lee Netherton
+ and C. V. Radhakrishnan},
+ year = 2005,
+ month = sep,
+ note = {\url{http://www.ctan.org/pkg/nomencl}}
+}
+
+@Manual{Talbot16:Glossaries,
+ title = {User Manual for glossaries.sty v4.44},
+ author = {Nicola L. C. Talbot},
+ year = 2019,
+ month = dec,
+ note = {\url{http://www.ctan.org/pkg/glossaries}}
+}
+
+@Manual{Carlisle04:Textcase,
+ title = {The \textsl{textcase} package},
+ author = {David Carlisle},
+ month = oct,
+ year = 2004,
+ note = {\url{http://www.ctan.org/pkg/textcase}}
+}
+
+@Manual{Braams22:Babel,
+ title = {Babel},
+ author = {Johannes L. Braams and Javier Bezos},
+ year = 2022,
+ note = {\url{http://www.ctan.org/pkg/babel}}}
+
diff --git a/ACM-JRC/acmart-primary/acmart.dtx b/ACM-JRC/acmart-primary/acmart.dtx
new file mode 100644
index 0000000..0ff7a90
--- /dev/null
+++ b/ACM-JRC/acmart-primary/acmart.dtx
@@ -0,0 +1,8754 @@
+% \iffalse
+%
+% Copyright 2016-2024, Association for Computing Machinery
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3 of this license or (at your option) any
+% later version.
+% The latest version of the license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Boris Veytsman,
+%
+%
+% This work consists of the file acmart.dtx, the derived file
+% acmart.cls, the files ACM-Reference-Format.bst, and templates
+% sample-acmlarge.tex, sample-acmsmall.tex, sample-acmtog.tex,
+% samplebody-conf.tex, samplebody-journals.tex, sample-manuscript.tex,
+% sample-sigconf-authordraft.tex, sample-sigconf.tex,
+% sample-sigplan.tex
+%
+% \fi
+%
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%
+%
+% \MakeShortVerb{|}
+% \def\guide{acmguide}
+% \iffalse
+% From
+% http://tex.stackexchange.com/questions/117892/can-i-convert-a-string-to-catcode-11 by egreg
+% \fi
+% \begingroup
+% \everyeof{\noexpand}
+% \endlinechar=-1
+% \xdef\currentjob{\scantokens\expandafter{\jobname}}
+% \endgroup
+%
+% \ifx\currentjob\guide\OnlyDescription\fi
+% \GetFileInfo{acmart.dtx}
+% \title{\LaTeX{} Class for the \emph{Association for Computing
+% Machinery}\thanks{\copyright 2016--2024, Association for Computing Machinery}}
+% \author{Boris Veytsman\thanks{%
+% \href{mailto:borisv@lk.net}{\texttt{borisv@lk.net}},
+% \href{mailto:boris@varphi.com}{\texttt{boris@varphi.com}}}}
+% \date{\filedate, \fileversion}
+% \maketitle
+% \begin{abstract}
+% This package provides a class for typesetting publications of
+% the Association for Computing Machinery.
+% \end{abstract}
+% \tableofcontents
+%
+% \clearpage
+%
+%\section{Introduction}
+%\label{sec:intro}
+%
+% The Association for Computing
+% Machinery\footnote{\url{http://www.acm.org/}} is the world's largest
+% educational and scientific computing society, which delivers
+% resources that advance computing as a science and a
+% profession. It was one of the
+% early adopters of \TeX\ for its typesetting.
+%
+% It provided several different classes for a number of journals and
+% conference proceedings. Unfortunately during the years since these
+% classes were written, the code was patched many times, and
+% supporting different versions of the classes became difficult.
+%
+% This package provides the uniform interface for all ACM
+% publications. It is intended to replace all the different classes and
+% packages and provide an up-to-date \LaTeX\ package.
+%
+% This package uses only free \TeX\ packages and fonts included in \TeX
+% Live, Mik\TeX\ and other popular \TeX\ distributions. It is
+% intended to be published in these distributions itself, which
+% minimizes users' efforts in the installation and support of this
+% package.
+%
+% I am grateful to
+% Michael D.~Adams,
+% Leif Andersen,
+% Lawrence Christopher Angrave,
+% Dirk Beyer,
+% Andrew Black,
+% Joachim Breitner,
+% Yegor Bugayenko,
+% Benjamin Byholm,
+% John Collins,
+% Roberto Di Cosmo,
+% Nils Anders Danielsson,
+% Michael Ekstrand,
+% Matthew Fluet,
+% Paolo G.~Giarrusso,
+% Ben Greenman,
+% Enrico Gregorio,
+% Jamie Davis,
+% Ulrike Fischer,
+% Jason Hemann,
+% Peter Kemp,
+% Luis Leiva,
+% Ben Liblit,
+% Rholais Lii,
+% LianTze Lim,
+% Kuldeep S. Meel,
+% Kai Mindermann,
+% Frank Mittelbach,
+% Serguei Mokhov,
+% Ross Moore,
+% John Owens,
+% Joel Nider,
+% Scott Pakin,
+% Tobias Pape,
+% Henning Pohl,
+% Philip Quinn,
+% Mathias Rav,
+% Andreas Reichinger,
+% Matteo Riondato,
+% Craig Rodkin,
+% Bernard Rous,
+% Feras Saad,
+% Kerry A. Seitz, Jr.,
+% David Shamma,
+% Gabriel Scherer,
+% Kartik Singhal,
+% Christoph Sommer,
+% Stephen Spencer,
+% Shin Hwei Tan,
+% Daniel Thomas,
+% Shari Trewin,
+% Zack Weinberg,
+% John Wickerson
+% and many others for their invaluable help.
+%
+% The development version of the package is available at
+% \url{https://github.com/borisveytsman/acmart}.
+%
+%\section{User's guide}
+%\label{sec:ug}
+%
+%
+% This class uses many commands and customizaton options, so it might
+% appear intimidating for a casual user. Do not panic! Many of these
+% commands and options can be safely left with their default values
+% or the values recommended by your conference or journal editors. If
+% you have problems or questions, do not hesitate to ask me directly
+% or the community at \url{https://github.com/borisveytsman/acmart},
+% \url{https://tex.stackexchange.com} or the closest \TeX\ Users
+% Group. The world-wide \TeX\ Users Group is at
+% \url{https://tug.org/}; please consider joining us if you use \TeX\
+% regularly.
+%
+%\subsection{Installation}
+%\label{sec:ug_install}
+%
+% Most probably, you already have this package installed in your
+% favorite \TeX\ distribution; if not, you may want to upgrade. You
+% may need to upgrade it anyway since this package uses a number of
+% relatively recent packages, especially the ones related to fonts.
+%
+% The latest released version of this package can be found on CTAN:
+% \url{https://www.ctan.org/pkg/acmart}. The development version can
+% be found on GitHub: \url{https://github.com/borisveytsman/acmart}.
+% At this address you can file a bug report---or even contribute your
+% own enhancement by making a pull request.
+%
+% Please note that the version on Github is a development (or
+% experimental) version: please download it for testing new features.
+% The production version is the one on CTAN and ACM sites.
+%
+% Most users should not attempt to install this package themselves
+% but should rather rely on their \TeX\ distributions to provide it. If you
+% decide to install the package yourself, follow the standard rules:
+% \begin{enumerate}
+% \item Run |latex acmart.ins|. This will produce the file
+% |acmart.cls|
+% \item Put the files |acmart.cls|, |acm-jdslogo.png|,
+% and |ACM-Reference-Format.bst|
+% in places where \LaTeX{} can find them (see \cite{TeXFAQ} or
+% the documentation for your \TeX{} system).\label{item:install}
+% \item Update the database of file names. Again, see \cite{TeXFAQ}
+% or the documentation for your \TeX{} system for the system-specific
+% details.\label{item:update}
+% \item The file |acmart.pdf| provides the documentation for the
+% package. (This is probably the file you are reading now.)
+% \end{enumerate}
+% As an alternative to items~\ref{item:install} and~\ref{item:update}
+% you can just put the files in the working directory where your
+% |.tex| file is.
+%
+%
+% This class uses a number of other packages. They are included in all
+% major \TeX\ distributions (\TeX Live, Mac\TeX, Mik\TeX) of 2015 and
+% later, so you probably have them installed. Just in case here is
+% the list of these packages:
+% \begin{itemize}
+% \item \textsl{amscls}, \url{http://www.ctan.org/pkg/amscls}
+% \item \textsl{amsfonts}, \url{http://www.ctan.org/pkg/amsfonts}
+% \item \textsl{amsmath}, \url{http://www.ctan.org/pkg/amsmath}
+% \item \textsl{binhex}, \url{http://www.ctan.org/pkg/binhex}
+% \item \textsl{balance}, \url{http://www.ctan.org/pkg/balance}
+% \item \textsl{booktabs}, \url{http://www.ctan.org/pkg/booktabs}
+% \item \textsl{caption}, \url{http://www.ctan.org/pkg/caption}
+% \item \textsl{comment}, \url{http://www.ctan.org/pkg/comment}
+% \item \textsl{cm-super}, \url{http://www.ctan.org/pkg/cm-super}
+% \item \textsl{cmap}, \url{http://www.ctan.org/pkg/cmap}
+% \item \textsl{doclicense}, \url{http://www.ctan.org/pkg/doclicense}
+% \item \textsl{draftwatermark}, \url{http://www.ctan.org/pkg/draftwatermark}
+% \item \textsl{environ}, \url{http://www.ctan.org/pkg/environ}
+% \item \textsl{etoolbox}, \url{http://www.ctan.org/pkg/etoolbox}
+% \item \textsl{fancyhdr}, \url{http://www.ctan.org/pkg/fancyhdr}
+% \item \textsl{float}, \url{http://www.ctan.org/pkg/float}
+% \item \textsl{fontaxes}, \url{http://www.ctan.org/pkg/fontaxes}
+% \item \textsl{geometry}, \url{http://www.ctan.org/pkg/geometry}
+% \item \textsl{graphics}, \url{http://www.ctan.org/pkg/graphics}
+% \item \textsl{hyperref}, \url{http://www.ctan.org/pkg/hyperref}
+% \item \textsl{hyperxmp}, \url{http://www.ctan.org/pkg/hyperxmp}
+% \item \textsl{iftex}, \url{http://www.ctan.org/pkg/iftex}
+% \item \textsl{inconsolata}, \url{http://www.ctan.org/pkg/inconsolata}
+% \item \textsl{libertine}, \url{http://www.ctan.org/pkg/libertine}
+% \item \textsl{manyfoot}, \url{http://www.ctan.org/pkg/manyfoot}
+% \item \textsl{microtype}, \url{http://www.ctan.org/pkg/microtype}
+% \item \textsl{mmap}, \url{http://www.ctan.org/pkg/mmap}
+% \item \textsl{ms}, \url{http://www.ctan.org/pkg/ms}
+% \item \textsl{mweights}, \url{http://www.ctan.org/pkg/mweights}
+% \item \textsl{natbib}, \url{http://www.ctan.org/pkg/natbib}
+% \item \textsl{nccfoots}, \url{http://www.ctan.org/pkg/nccfoots}
+% \item \textsl{newtx}, \url{http://www.ctan.org/pkg/newtx}
+% \item \textsl{oberdiek}, \url{http://www.ctan.org/pkg/oberdiek}
+% \item \textsl{pdftex-def}, \url{http://www.ctan.org/pkg/pdftex-def}
+% \item \textsl{refcount}, \url{http://www.ctan.org/pkg/refcount}
+% \item \textsl{setspace}, \url{http://www.ctan.org/pkg/setspace}
+% \item \textsl{textcase}, \url{http://www.ctan.org/pkg/textcase}
+% \item \textsl{totpages}, \url{http://www.ctan.org/pkg/totpages}
+% \item \textsl{trimspaces}, \url{http://www.ctan.org/pkg/trimspaces}
+% \item \textsl{upquote}, \url{http://www.ctan.org/pkg/upquote}
+% \item \textsl{url}, \url{http://www.ctan.org/pkg/url}
+% \item \textsl{xcolor}, \url{http://www.ctan.org/pkg/xcolor}
+% \item \textsl{xkeyval}, \url{http://www.ctan.org/pkg/xkeyval}
+% \item \textsl{xstring}, \url{http://www.ctan.org/pkg/xstring}
+% \end{itemize}
+%
+%
+%\subsection{Invocation and options}
+%\label{sec:invocation}
+%
+% To use this class, put in the preamble of your document
+% \begin{quote}
+% \cs{documentclass}\oarg{options}|{acmart}|
+% \end{quote}
+% There are several options corresponding to the type of the document and
+% its general appearance. They are described below. Generally
+% speaking, the options have |key=value| forms, for example,
+% \begin{verbatim}
+% \documentclass[format=acmsmall, screen=true, review=false]{acmart}
+% \end{verbatim}
+%
+%
+% The option |format| describes the format of the output. There are
+% several possible values for this option, for example,
+% \begin{verbatim}
+% \documentclass[format=acmtog]{acmart}
+% \end{verbatim}
+% Actually the words |format=| can be omitted, e.g.,
+% \begin{verbatim}
+% \documentclass[acmtog, review=false]{acmart}
+% \end{verbatim}
+% The possible formats are listed in Table~\ref{tab:opts_format}.
+% Note that formats starting with |acm| are intended for journals,
+% transactions, and course materials, while formats starting with
+% |sig| are intended for proceedings published as books.
+%
+% Sometimes conference proceedings are published as a special issue
+% (or issues) of an ACM journal. In this case, you should use the
+% journal format. The templates |sample-acmsmall-conf.tex| and
+% |sample-acmtog-conf.tex| show how to enter conference information.
+% Note that you need to comment out |\acmJournal{...}| line for such
+% papers to get the conference information in the footers and headers.
+%
+% \begin{table}
+% \centering
+% \caption{The possible values for the \texttt{format} option}
+% \label{tab:opts_format}
+% \begin{tabularx}{\textwidth}{>{\ttfamily}lX}
+% \toprule
+% \normalfont Value & Meaning\\
+% \midrule
+% manuscript & A manuscript. This is the default. \\
+% acmsmall & Small single-column format. Used for ACMJCSS, CIE, CSUR,
+% DLT, FAC, GAMES, JACM, JATS, JDIQ, JDS, JEA, JERIC,
+% JETC, JRC, PACMCGIT, PACMHCI, PACMMOD, PACMNET,
+% PACMPL, PACMSE, POMACS, TAAS, TACCESS, TACO,
+% TALG, TALLIP (formerly TALIP), TCPS, TDS,
+% TEAC, TECS, TELO, THRI, TIIS, TIOT, TISSEC, TIST, TKDD, TMIS,
+% TOCE, TOCHI, TOCL,
+% TOCS, TOCT, TODAES, TODS, TOIS, TOIT, TOMACS, TOMM (formerly
+% TOMCCAP), TOMPECS, TOMS, TOPC, TOPLAS, TOPML, TOPS, TORS
+% TOS, TOSEM, TOSN, TQC, TRETS,
+% TSAS, TSC, TSLP, and TWEB, including special issues. \\
+% acmlarge & Large single-column format. Used for DTRAP, HEALTH,
+% IMWUT, JOCCH, and TAP, including special issues. \\
+% acmtog & Large double-column format. Used for
+% TOG, including annual conference Technical Papers.\\
+% sigconf & Proceedings format for most ACM
+% conferences (with the exception of SIGPlAN) and all ICPS
+% volumes.\\
+% sigplan & Proceedings format for SIGPLAN conferences.\\
+% acmengage & ACM EngageCSEdu Course materials.\\
+% acmcp & ACM cover page. \\
+% \bottomrule
+% \end{tabularx}
+% \end{table}
+%
+% Starting in 2020, ACM retired formats |sigchi| and |sigchi-a|.
+% SIGCHI conferences now use |sigconf| format for their publications.
+% If a file uses |sigchi| format, a warning is issued, and the format
+% is automatically switched to |sigconf|. Format |sigchi-a| can be
+% used for non-ACM documents only (see Section~\ref{sec:sigchi-a}).
+% The format |acmcp| is used for ACM cover pages discussed in
+% Section~\ref{sec:ug_acmcp}.
+%
+%
+% There are several Boolean options that can take |true| or |false|
+% values. They are listed in Table~\ref{tab:opts_bool}. The words
+% |=true| can be omitted when setting a Boolean option, so instead of
+% |screen=true| one can write just |screen|, for example,
+% \begin{verbatim}
+% \documentclass[acmsmall, screen, review]{acmart}
+% \end{verbatim}
+% The option |review| is useful when combined with the |manuscript| format
+% option. It provides a version suitable for reviewers and
+% copy editors.
+%
+% Two samples in the |samples| directory, |manuscript| and
+% |acmsmall-submission|, show manuscripts formatted for submission to
+% ACM.
+%
+% The default for the option |screen| depends on the publication. At
+% present it is |false| for all publications \emph{but} PACM, since
+% PACM is now electronic-only. Thus PACM titles~(see
+% Table~\ref{tab:pubs}) set this option to |true|. In the future this
+% option may involve additional features suitable for on-screen
+% versions of articles.
+%
+% The option |natbib| is used when the corresponding
+% \BibTeX\ style is based on |natbib|. In most cases you do not need
+% to set it. See
+% Section~\ref{sec:ug_bibliography}.
+%
+% The option |anonymous| is used
+% for anonymous review processes and causes all author information to be
+% obscured.
+%
+% The option |timestamp| is used to include a time stamp in the
+% footer of each page. When preparing a document, this can help avoid
+% confusing different revisions. The footer also includes the page range of
+% the document. This helps detect missing pages in hard copies.
+%
+% The option |authordraft| is intended for author's drafts that are not
+% intended for distribution. It typesets a copyright block to give the
+% author an idea of its size and the overall size of the paper but
+% overprints it with the phrase ``Unpublished working draft. Not for
+% distribution.'', which is also used as a watermark. This option sets
+% |timestamp| and |review| to |true|, but these can be
+% overriden by setting these options to |false| \emph{after}
+% setting |authordraft| to |true|.
+%
+% The option |balance| determines whether the last page in the two
+% column mode has balanced columns. By default it is |true|; however,
+% it may lead to problems for some documents. When there are many
+% figures near the end of the document, the attempts to balance
+% columns may lead to the loss of the figures. Set this option to |false| if
+% you encounter problems. An alternative is the
+% (experimental) option |pbalance|, which uses the new package
+% |pbalance|. You may want to try |pbalance=true| to see if you get
+% better results.
+%
+% The option |urlbreakonhyphens| determines whether URLs can be split
+% between lines after hyphens. By default it is true. Set it to
+% |false| to disallow these breaks.
+%
+% \begin{table}
+% \centering
+% \caption{Boolean options}
+% \label{tab:opts_bool}
+% \begin{tabularx}{\textwidth}{>{\ttfamily}l>{\ttfamily}lX}
+% \toprule
+% \normalfont Option & \normalfont Default & Meaning\\
+% \midrule
+% review & false & A review version: lines are numbered and
+% hyperlinks are colored\\
+% screen & {\rmfamily see text} & A screen version:
+% hyperlinks are colored\\
+% natbib & true & Whether to use the |natbib| package (see
+% Section~\ref{sec:ug_bibliography})\\
+% anonymous & false & Whether to make author(s) anonymous\\
+% authorversion & false & Whether to generate a special
+% version for the authors' personal use or posting (see
+% Section~\ref{sec:ug_topmatter})\\
+% nonacm & false & Use the class typesetting options for
+% a non-ACM document, which will not include the conference/journal
+% header and footers. Currenly such documents allow only a
+% Creative Commons license.\\
+% timestamp & false & Whether to put a time stamp in the
+% footer of each page\\
+% authordraft & false & Whether author's-draft mode is enabled\\
+% acmthm & true & Whether to define theorem-like environments, see
+% Section~\ref{sec:ug_theorems}\\
+% balance & true & Whether to balance the last page in two column
+% mode\\
+% pbalance & false & Whether to balance the last page in two column
+% mode using pbalance package\\
+% urlbreakonhyphens & true & Whether to break urls on hyphens\\
+% \bottomrule
+% \end{tabularx}
+% \end{table}
+%
+% The option |language| is used to define the languages for the
+% multi-language papers. It is discussed in
+% Section~\ref{sec:ug_i13n}.
+%
+%\subsection{Top matter}
+%\label{sec:ug_topmatter}
+%
+% A number of commands set up \emph{top matter} or (in
+% computer science jargon) \emph{metadata} for an article. They
+% establish the publication name, article title, authors, DOI and
+% other data. Some of these commands, like \cs{title} and \cs{author},
+% should be put by the authors. Others, like \cs{acmVolume} and
+% \cs{acmDOI}---by the editors. Below we describe these commands and
+% mention who should issue them. These macros should be used
+% \emph{before} the \cs{maketitle} command. Note that in previous
+% versions of ACM classes some of these commands should be used before
+% \cs{maketitle}, and some after it. Now they all must be used before
+% \cs{maketitle}.
+%
+%
+% This class internally loads the |amsart| class, so many top-matter
+% commands are inherited from |amsart|~\cite{Downes04:amsart}.
+%
+% \DescribeMacro{\acmJournal}%
+% The macro \cs{acmJournal}\marg{shortName} sets the name of the
+% journal or transaction for journals and transactions. The argument
+% is the short name of the publication \emph{in uppercase}, for
+% example,
+% \begin{verbatim}
+% \acmJournal{TOMS}
+% \end{verbatim}
+% The currently recognized journals are listed in
+% Table~\ref{tab:pubs}. Note that conference proceedings published in
+% \emph{book} form do not set this macro.
+%
+%
+%
+% \DescribeMacro{\acmConference}%
+% The macro
+% \cs{acmConference}\oarg{short name}\marg{name}\marg{date}\marg{venue} is
+% used for conference proceedings published in the book form. The
+% arguments are the following:
+% \begin{description}
+% \item[short name:] the abbreviated name of the conference (optional).
+% \item[name:] the name of the conference.
+% \item[date:] the date(s) of the conference.
+% \item[venue:] the place of the conference.
+% \end{description}
+% Examples:
+% \begin{verbatim}
+% \acmConference[TD'15]{Technical Data Conference}{November
+% 12--16}{Dallas, TX, USA}
+% \acmConference{SA'15 Art Papers}{November 02--06, 2015}{Kobe, Japan}
+% \end{verbatim}
+%
+% \DescribeMacro{\acmBooktitle}%
+% By default we assume that conference proceedings are published
+% in the book named \emph{Proceedings of \textsc{CONFERENCE}}, where
+% \textsc{CONFERENCE} is the name of the conference inferred from the
+% command \cs{acmConference} above. However, sometimes the book title
+% is different. The command \cs{acmBooktitle} can be used to set this
+% title, for example,
+% \begin{verbatim}
+% \acmBooktitle{Companion to the first International Conference on the
+% Art, Science and Engineering of Programming (Programming '17)}
+% \end{verbatim}
+%
+%
+% An ACM paper should have either \cs{acmJournal} or
+% \cs{acmConference} command. If it has both (or more) commands, the
+% last one takes precedence. Note that if you have the command
+% \cs{acmConference} in a journal format like |acmsmall|, the class
+% will use conference format for bibstrip and reference citation
+% formatting. In the samples directory there is a file
+% |sample-acmsmall-conf.tex| with the example of this usage.
+%
+% An ACM Engage material should \emph{not} use \cs{acmJournal} or
+% \cs{acmConference} command. It may use \cs{acmBooktitle} to
+% override the default \emph{ACM EngageCSEdu}. It should use \cs{acmYear}
+% to set the date of the material.
+%
+%
+%
+% \DescribeMacro{\editor}%
+% In most cases, conference proceedings are edited. You can use the
+% command \cs{editor}\marg{editor} to set the editor of the volume.
+% This command can be repeated, for example,
+% \begin{verbatim}
+% \editor{Jennifer B. Sartor}
+% \editor{Theo D'Hondt}
+% \editor{Wolfgang De Meuter}
+% \end{verbatim}
+%
+%
+% \DescribeMacro{\title}%
+% The command |\title|, as in the |amsart| class, has two arguments: one
+% optional, and one mandatory:
+% \begin{flushleft}
+% |\title[|\meta{ShortTitle}|]{|\meta{FullTitle}|}|
+% \end{flushleft}
+% The mandatory argument is the full title of the article. The
+% optional argument, if present, defines the shorter version of the
+% title for running heads. If the optional argument is absent, the
+% full title is used instead.
+%
+% It is expected that this command is inserted by the author of the
+% manuscript.
+%
+% \DescribeMacro{\subtitle}%
+% Besides title, ACM classes allow a subtitle, set with the
+% \cs{subtitle}\marg{subtitle} macro.
+%
+% The commands for specifying authors are highly structured.
+% The reason is they serve double duty: the authors' information is
+% typeset in the manuscript \emph{and} is used by the metadata
+% extraction tools for indexing and cataloguing. Therefore it is very
+% important to follow the guidelines exactly.
+%
+% \DescribeMacro{\author}%
+% \DescribeMacro{\orcid}
+% \DescribeMacro{\affiliation}%
+% \DescribeMacro{\email}%
+% The basic commands are \cs{author}, \cs{orcid} (for the researchers
+% registered with ORCID, \url{http://www.orcid.org/}), \cs{affiliation} and
+% \cs{email}. In the simplest case, you enter them in this order:
+% \begin{verbatim}
+% \author{...}
+% \orcid{...}
+% \affiliation{...}
+% \email{...}
+% \end{verbatim}
+% Do \emph{not} use the \LaTeX\ \cs{and} macro or commas, or \verb|\\|
+% between the authors! Each author deserves his or
+% her own \cs{author} command. An attempt to list several authors or
+% their e-mails in one command leads to a warning or an error. This
+% is not a bug, but the expected behavior.
+%
+% Note that some formats do not typeset e-mails or ORCID identifiers.
+% Do not worry: the metadata tools will get them.
+%
+% ACM strongly encourages that you include ORCIDs for all authors
+% before compiling or submitting for review and/or production
+% processing.
+%
+% If you do not have an ORCID, you may get one for free by
+% registering at \url{http://www.orcid.org/}.
+%
+%
+% Sometimes an author has several affiliations. In this case, the
+% \cs{affiliation} command should be repeated:
+% \begin{verbatim}
+% \author{...}
+% \orcid{...}
+% \affiliation{...}
+% \affiliation{...}
+% \email{...}
+% \end{verbatim}
+% Similarly you can repeat the \cs{email} command.
+%
+% You may have several authors with the same affiliation, different
+% affiliations, or overlapping affiliations (author~$A_1$ is affiliated
+% with institutions $I_1$ and $I_2$, while author $A_2$ is affiliated
+% with $I_2$ only, author $A_3$ is affiliated with
+% $I_1$ and $I_3$, etc.). The recommended solution is to put the
+% \cs{affiliation} commands after each author, possibly repeating them:
+% \begin{verbatim}
+% \author{...}
+% \orcid{...}
+% \affiliation{...}
+% \affiliation{...}
+% \email{...}
+% \author{...}
+% \orcid{...}
+% \affiliation{...}
+% \email{...}
+% \author{...}
+% \orcid{...}
+% \affiliation{...}
+% \affiliation{...}
+% \email{...}
+% \end{verbatim}
+% In some cases, when several authors share the same affiliation, you can
+% try to save space using the format
+% \begin{verbatim}
+% \author{...}
+% \email{...}
+% \author{...}
+% \email{...}
+% \affiliation{...}
+% \end{verbatim}
+% However, this format is not generally recommended.
+%
+% \DescribeMacro{\additionalaffiliation}%
+% In some cases, too many affiliations can take too much space. The
+% command \cs{additionalaffiliation}\marg{affiliation} creates a
+% footnote after an author's name with the words ``Also with
+% \marg{affiliation}''. You should use this command only as a last
+% resort. An example of usage is:
+% \begin{verbatim}
+% \author{G. Tobin}
+% \author{Ben Trovato}
+% \additionalaffiliation{%
+% \institution{The Th{\o}rv{\"a}ld Group}
+% \city{Hekla}
+% \country{Iceland}}
+% \affiliation{%
+% \institution{Institute for Clarity in Documentation}
+% \city{Dublin}
+% \state{Ohio}}
+% \end{verbatim}
+% Here Trovato and Tobin share their affiliation with the Institute
+% for Clarity in Documentation, but only Ben Trovato is affiliated
+% with The Th{\o}rv{\"a}ld Group.
+%
+%
+% \DescribeMacro{\position}%
+% \DescribeMacro{\institution}%
+% \DescribeMacro{\department}%
+% \DescribeMacro{\city}%
+% \DescribeMacro{\state}%
+% \DescribeMacro{\country}%
+% The \cs{affiliation} and \cs{additionalaffiliation} commands are
+% further structured to interact with the metadata extraction tools.
+% Inside these commands you should use the \cs{position},
+% \cs{institution}, \cs{department}, \cs{city},
+% \cs{state}, and \cs{country} macros to indicate the
+% corresponding parts of the affiliation. Note that in some cases
+% (for example, journals) these parts are not printed in the resulting
+% copy, but they \emph{are} necessary since they are used by the XML
+% metadata extraction programs. Do \emph{not} put commas or |\\|
+% between the elements of \cs{affiliation}. They will be provided
+% automatically.
+%
+% The fields \cs{institution}, \cs{city} and \cs{country} are
+% mandatory. If they are not provided, an error or a warning is
+% issued. Currently the absence of \cs{country} produces an error;
+% ACM may change this in the future.
+%
+% Starting 2024, ACM no longer collects or print postal addresses of
+% the authors. Thus the commands \cs{streetaddress} and
+% \cs{postcode}, present in the previous versions of the class, now
+% produce a warining.
+%
+%
+% An example of the author block:
+% \begin{verbatim}
+% \author{A. U. Thor}
+% \orcid{1234-4564-1234-4565}
+% \affiliation{%
+% \institution{University of New South Wales}
+% \department{School of Biomedical Engineering}
+% \city{Sidney}
+% \state{NSW}
+% \country{Australia}}
+% \email{author@nsw.au.edu}
+% \author{A. N. Other}
+% \affiliation{%
+% \institution{University of New South Wales}
+% \city{Sidney}
+% \state{NSW}
+% \country{Australia}}
+% \author{C. O. Respondent}
+% \orcid{1234-4565-4564-1234}
+% \affiliation{%
+% \institution{University of Pennsylvania}
+% \city{Philadelphia}
+% \state{PA}
+% \country{USA}}
+% \affiliation{%
+% \institution{University of New South Wales}
+% \city{Sidney}
+% \state{NSW}
+% \country{Australia}}
+% \end{verbatim}
+%
+% Note that the old ACM conference formats did not allow more than six
+% authors and required some effort from authors to achieve
+% alignment. The new format is much better in this.
+%
+% Sometimes an author works in several departments within the same
+% insitution. There could be two situations: the departments are
+% independent, or one department is within another. In the first
+% case, just repeat the command \cs{department} several times. To
+% handle the second case the command has an optional numerical
+% parameter. The departments with higher numbers are higher in the
+% organizational chart. Compare
+% \begin{verbatim}
+% \affiliation{%
+% \department[0]{Department of Lunar Studies} % 0 is the default
+% \department[1]{John Doe Institute} % higher than 0
+% \institution{University of San Serriffe}
+% \country{San Serriffe}}
+% \end{verbatim}
+% and
+% \begin{verbatim}
+% \affiliation{%
+% \department{Department of Lunar Studies} % Not in the John Doe Institute!
+% \department{John Doe Institute}
+% \institution{University of San Serriffe}
+% \country{San Serriffe}}
+% \end{verbatim}
+%
+%
+%
+% \DescribeMacro{\thanks}%
+% Like |amsart| (and unlike standard \LaTeX{}), we allow
+% |\thanks| only \emph{outside} of the commands |\title| and |\author|.
+% This command is obsolete and should \emph{not} be used in most
+% cases. Do not list your acknowledgments or grant sponsors here.
+% Put this information in the |acks| environment (see
+% Section~\ref{sec:ug_acks}).
+%
+% \DescribeMacro{\authorsaddresses}%
+% In some formats, addresses are printed as a footnote on the first
+% page. By default \LaTeX\ typesets them itself using the information
+% you give it. However, you can override its choice using the
+% commmand \cs{authorsaddresses}\marg{contact addresses}, for example,
+% \begin{verbatim}
+% \authorsaddresses{%
+% Authors' addresses: G.~Zhou, Computer Science Department, College of
+% William and Mary, 104 Jameson Rd, Williamsburg, PA 23185, US;
+% V.~B\'eranger, Inria Paris-Rocquencourt, Rocquencourt, France;
+% A.~Patel, Rajiv Gandhi University, Rono-Hills, Doimukh, Arunachal
+% Pradesh, India; H.~Chan, Tsinghua University, 30 Shuangqing Rd,
+% Haidian Qu, Beijing Shi, China; T.~Yan, Eaton Innovation Center,
+% Prague, Czech Republic; T.~He, C.~Huang, J.~A.~Stankovic University
+% of Virginia, School of Engineering Charlottesville, VA 22903, USA;
+% T. F. Abdelzaher, (Current address) NASA Ames Research Center,
+% Moffett Field, California 94035.}
+% \end{verbatim}
+% You can \emph{suppress} printing authors' addresses by setting them
+% to an empty string: |\authorsaddresses{}|. Please note that
+% authors' addresses are mandatory for journal articles.
+%
+% \DescribeMacro{\titlenote}%
+% \DescribeMacro{\subtitlenote}%
+% \DescribeMacro{\authornote}%
+% While the command \cs{thanks} generates a note without a footnote
+% mark, sometimes the authors might need notes more tightly connected
+% to the title, subtitle or author. The commands \cs{titlenote},
+% \cs{subtitlenote} and \cs{authornote} that follow the corresponding
+% commands (\cs{title}, \cs{subtitle} and \cs{author}) generate such
+% notes. For example,
+% \begin{verbatim}
+% \title{This is a title}
+% \titlenote{This is a titlenote}
+% \author{A. U. Thor}
+% \authornote{This is an authornote}
+% \end{verbatim}
+%
+% Please never use a \cs{footnote} inside an \cs{author} or \cs{title}
+% command since this confuses the metadata extraction software. (Actually
+% these commands now produce errors.)
+%
+% \DescribeMacro{\authornotemark}%
+% Sometimes one may need to have the same footnote connected to
+% several authors. The command \cs{authornotemark}\oarg{number} adds
+% just the footnote mark, for example,
+% \begin{verbatim}
+% \author{A. U. Thor}
+% \authornote{Both authors contributed equally to the paper}
+% ...
+% \author{A. N. Other}
+% \authornotemark[1]
+% \end{verbatim}
+% The correct numbering of these marks is the responsibility of the
+% user.
+%
+% \DescribeMacro{\acmVolume}%
+% \DescribeMacro{\acmNumber}%
+% \DescribeMacro{\acmArticle}%
+% \DescribeMacro{\acmYear}%
+% \DescribeMacro{\acmMonth}%
+% The macros \cs{acmVolume}, \cs{acmNumber}, \cs{acmArticle},
+% \cs{acmYear} and \cs{acmMonth} are inserted by the editor and set
+% the journal volume, issue, article number, year and month
+% corrspondingly. The arguments of all these commands, including
+% \cs{acmMonth}, is numerical. For example,
+% \begin{verbatim}
+% \acmVolume{9}
+% \acmNumber{4}
+% \acmArticle{39}
+% \acmYear{2010}
+% \acmMonth{3}
+% \end{verbatim}
+% Note that \cs{acmArticle} is used not only for journals but also
+% for some conference proceedings.
+%
+% \DescribeMacro{\acmArticleSeq}%
+% The articles in the same issue of a journal have a \emph{sequence
+% number}. By default it is the same as the article number,
+% but the command \cs{acmArticleSeq}\marg{n} can be used to change it:
+% \begin{verbatim}
+% \acmArticle{39} % The sequence number will be 39 by default
+% \acmArticleSeq{5} % We redefine it to 5
+% \end{verbatim}
+%
+% \DescribeMacro{\acmSubmissionID}%
+% If your paper got a Submission~ID from the Conference Management
+% System, put it here:
+% \begin{verbatim}
+% \acmSubmissionID{123-A56-BU3}
+% \end{verbatim}
+%
+%
+%
+% \DescribeMacro{\acmISBN}%
+% Book-like volumes have ISBN numbers attached to them. The macro
+% \cs{acmISBN}\marg{ISBN} sets it. Normally it is set by the
+% typesetter, for example,
+% \begin{verbatim}
+% \acmISBN{978-1-4503-3916-2}
+% \end{verbatim}
+% Setting it to the empty string, as |\acmISBN{}|, suppresses printing the
+% ISBN.
+%
+% \DescribeMacro{\acmDOI}%
+% The macro \cs{acmDOI}\marg{DOI} sets the DOI of the article, for
+% example,
+% \begin{verbatim}
+% \acmDOI{10.1145/9999997.9999999}
+% \end{verbatim}
+% It is normally set by the typesetter. Setting it to the empty
+% string, as |\acmDOI{}|, suppresses the DOI.
+%
+%
+% \DescribeMacro{\acmBadge}%
+% Some conference articles get special distinctions, for example, the
+% artifact evaluation for PPoPP~2016
+% (see~\url{http://ctuning.org/ae/ppopp2016.html}). These articles
+% display special badges supplied by the conference organizers. This
+% class provides command to add these badges:
+% \cs{acmBadge}\oarg{url}\marg{graphics}.
+% The arguments have the following meaning: \oarg{url}, if provided,
+% sets the link to the badge authority in the screen version, while
+% \marg{graphics} sets the graphics file with the badge image. The
+% file must be a cropped square, which is scaled to a standard size in
+% the output. For example, if the badge image is |ae-logo.pdf|, the
+% command is
+% \begin{verbatim}
+% \acmBadgeR[http://ctuning.org/ae/ppopp2016.html]{ae-logo}
+% \end{verbatim}
+% The command can be repeated, if a paper has several badges.
+%
+%
+% \DescribeMacro{\startPage}%
+% The macro \cs{startPage}\marg{page} sets the first page of the
+% article in a journal or book. It is used by the typesetter.
+%
+%
+% \DescribeMacro{\terms}%
+% \DescribeMacro{\keywords}%
+% The command
+% \cs{keywords}\marg{keyword, keyword,\ldots} sets keywords for the
+% article. They must be
+% separated by commas, for example,
+% \begin{verbatim}
+% \keywords{wireless sensor networks, media access control,
+% multi-channel, radio interference, time synchronization}
+% \end{verbatim}
+%
+% \DescribeEnv{CCSXML}%
+% \DescribeMacro{\ccsdesc}%
+% ACM publications are classified according to the ACM Computing
+% Classification Scheme (CCS). CCS codes are used both in the typeset
+% version of the publications \emph{and} in the metadata in various
+% databases. Therefore you need to provide both \TeX\ commands and XML
+% metadata with the paper.
+%
+% The tool at \url{http://dl.acm.org/ccs.cfm} can be used to generate
+% CCS codes. After you select the topics, click on ``Generate CCS
+% codes'' to get results like the following:
+% \begin{verbatim}
+% \begin{CCSXML}
+%
+%
+% 10010520.10010553.10010562
+% Computer systems organization~Embedded systems
+% 500
+%
+%
+% 10010520.10010575.10010755
+% Computer systems organization~Redundancy
+% 300
+%
+%
+% 10010520.10010553.10010554
+% Computer systems organization~Robotics
+% 100
+%
+%
+% 10003033.10003083.10003095
+% Networks~Network reliability
+% 100
+%
+%
+% \end{CCSXML}
+%
+% \ccsdesc[500]{Computer systems organization~Embedded systems}
+% \ccsdesc[300]{Computer systems organization~Redundancy}
+% \ccsdesc{Computer systems organization~Robotics}
+% \ccsdesc[100]{Networks~Network reliability}
+% \end{verbatim}
+%
+% You just need to copy this code and paste it in your paper anywhere
+% before \verb|\maketitle|.
+%
+% CCS Concepts and user-defined keywords are required for all articles
+% over two pages in length, and are optional for one- and two-page
+% articles (or abstracts).
+%
+% \DescribeMacro{\setcopyright}
+% There are several possibilities for the copyright of the papers
+% published by the ACM: the authors may license the paper
+% to the ACM, some or all authors might be employees of the
+% US or Canadian governments, etc. Accordingly the command
+% \verb|\setcopyright{...}| is introduced. Its argument is the
+% copyright status of the paper, for example,
+% \verb|\setcopyright{acmcopyright}|. The possible values for this
+% command are listed in Table~\ref{tab:setcopyright}. This command
+% must be placed in the preamble, before |\begin{document}|.
+% Additional information about ACM copyright rules is discussed in
+% Section~\ref{sec:ug_cc}.
+%
+% \begin{table}
+% \centering
+% \caption{Parameters for the \texttt{\textbackslash setcopyright} command}
+% \label{tab:setcopyright}
+% \begin{tabularx}{\textwidth}{lX}
+% \toprule
+% Parameter & Meaning\\
+% \midrule
+% \texttt{none} & The copyright and permission information is not
+% typeset. (This is the option for some ACM conferences.) \\
+% \texttt{acmlicensed} & The authors retain the copyright but
+% license the publication rights to ACM\@. \\
+% \texttt{rightsretained} & The authors retain the copyright and
+% publication rights to themselves or somebody else. \\
+% \texttt{usgov} & All the authors are employees of the US
+% government. \\
+% \texttt{usgovmixed} & Some authors are employees of the US
+% government. \\
+% \texttt{cagov} & All the authors are employees of the Canadian
+% government. \\
+% \texttt{cagovmixed} & Some authors are employees of the Canadian
+% government. \\
+% \texttt{licensedusgovmixed} & Some authors are employees of the US
+% government, and the publication rights are licensed to ACM\@. \\
+% \texttt{licensedcagov} & All the authors are employees of the Canadian
+% government, and the publication rights are licensed to ACM\@. \\
+% \texttt{licensedcagovmixed} & Some authors are employees of the
+% Canadian
+% government, and the publication rights are licensed to ACM\@. \\
+% \texttt{othergov} & Authors are employees of a
+% government other than the US or Canada. \\
+% \texttt{licensedothergov} & Authors are employees of a
+% government other than the US or Canada, and the publication rights
+% are licensed to ACM\@. \\
+% \texttt{iw3c2w3} & Special statement for conferences organized
+% by IW3C2.\\
+% \texttt{iw3c2w3g} & Special statement for conferences organized
+% by IW3C2, when some authors are approved Google employees.\\
+% \texttt{cc} & Creative Commons license. If this key is set,
+% \textsl{doclicense} images are used to typeset the license. See
+% also \cs{setcctype} command. Note that at present this license
+% can be used only either for \texttt{acmengage} format, or for
+% \texttt{nonacm} publications, or for the authors that meet any
+% of the following requirements: (a)~part of the ACM Open Program;
+% (b)~publishing in a Gold Open Access publication;
+% (c)~paying the Open Access APC;
+% (d)~part of the Google publishing agreement.\\
+% \texttt{acmcopyright} & The authors transfer the copyright to the
+% ACM. This choice is no longer available for the
+% non-commissioned authors and will trigger a warning.\\
+% \bottomrule
+% \end{tabularx}
+% \end{table}
+%
+% \DescribeMacro{\setcctype}%
+% If Creative Commons license is used, the package by default chooses
+% CC-BY 4.0 Attribution 4.0 International license. You can override
+% this choice by the command \cs{setcctype}\oarg{version}\marg{type},
+% where \oarg{version} can be either 3.0 or 4.0 (4.0 by default), and
+% \marg{type} can be one of |zero|, |by|, |by-sa|, |by-nd|,
+% |by-nc|, |by-nc-sa|, |by-nc-nd| (see
+% \url{https://creativecommons.org/licenses/} for the explanation).
+% This command should be used in the preamble only.
+%
+% Material published under Creative Commons license should include
+% the corresponding icon. A modern \TeX\ distribution includes these
+% icons in the package \textsl{doclicense}. In case your distribution
+% does not have them, ACM provides a file \path{ccicons.zip} with
+% these icons. Just unzip it in the same directory where your
+% document is.
+%
+% The ACM submission software should generate the right command for you
+% to paste into your file.
+%
+%
+% \DescribeMacro{\copyrightyear}%
+% Each copyright statement must have the year of copyright. By
+% default it is the same as \cs{acmYear}, but you can override this
+% using the macro \cs{copyrightyear}, e.g.,
+% \begin{verbatim}
+% \acmYear{2016}
+% \copyrightyear{2015}
+% \end{verbatim}
+%
+% There is a special case for a personal copy that the authors may be
+% allowed to generate for their use or a posting on a personal site
+% (check the instructions for the specific journal or conference for
+% the details). The document option |authorversion=true| produces a
+% special form of the copyright statement for this case. Note that
+% you still need the \cs{setcopyright} command and (optionally)
+% \cs{copyrightyear} command to tell \TeX\ about the copyright owner and
+% year. Also, you should be aware that due to the different sizes of
+% the permssion blocks for the printed version and authors' version,
+% the page breaks might be different between them.
+%
+% \DescribeEnv{abstract}%
+% The environment |abstract| must \emph{precede} the \cs{maketitle}
+% command. Again, this is different from the standard \LaTeX.
+% Putting |abstract| after \cs{maketitle} will trigger an error.
+%
+%
+% \DescribeEnv{teaserfigure}%
+% A special kind of figure is used for many two-column conference
+% proceedings. This figure is placed just after the authors but
+% before the main text. The environment |teaserfigure| is used for these
+% figures. This environment must be used \emph{before}
+% \cs{maketitle}, for example,
+% \begin{verbatim}
+% \begin{teaserfigure}
+% \includegraphics[width=\textwidth]{sampleteaser}
+% \caption{This is a teaser}
+% \label{fig:teaser}
+% \end{teaserfigure}
+% \end{verbatim}
+%
+%
+% \DescribeMacro{\settopmatter}%
+% Some information in the top matter is printed for certain journals
+% or proceedings and suppressed for others. You can override these
+% defaults using the command \cs{settopmatter}\marg{settings}. The
+% settings and their meanings are listed in
+% Table~\ref{tab:settopmatter}. For example,
+% \begin{verbatim}
+% \settopmatter{printacmref=false, printccs=true, printfolios=true}
+% \end{verbatim}
+% The parameter |authorsperrow| requires some explanation. In
+% conference proceedings authors' information is typeset in boxes,
+% several boxes per row (see |sample-sigconf.pdf|,
+% |sample-sigplan.pdf|, etc.). The number of boxes per row is
+% determined automatically. If you want to override this,
+% you can do it using this parameter, for example,
+% \begin{verbatim}
+% \settopmatter{authorsperrow=4}
+% \end{verbatim}
+% However, in most cases you should \emph{not} do this and should use the
+% default settings. Setting |authorsperrow| to $0$ will revert it to the
+% default settings.
+%
+% The parameter |printacmref| specifies whether to print the ACM
+% bibliographic entry (default), or not. Note that this entry is
+% required for all articles over one page in length, and is optional
+% for one-page articles (abstracts).
+%
+% \begin{table}
+% \centering
+% \caption{Settings for the \cs{settopmatter} command}
+% \label{tab:settopmatter}
+% \begin{tabularx}{\textwidth}{llX}
+% \toprule
+% Parameter & Values & Meaning\\
+% \midrule
+% |printccs| & true/false & Whether to print CCS categories\\
+% |printacmref| & true/false & Whether to print the ACM bibliographic
+% entry\\
+% |printfolios| & true/false & Whether to print page numbers
+% (folios)\\
+% |authorsperrow| & numeric & Number of authors per row for the title
+% page in
+% conference proceedings formats\\
+% \bottomrule
+% \end{tabularx}
+% \end{table}
+%
+%
+% \DescribeMacro{\received}%
+% The command \cs{received}\oarg{stage}\marg{date} sets the history of
+% the publication. The~\oarg{stage} argument is optional; the default
+% is |Received| for the first date and |revised| for the subsequent
+% ones. For example,
+% \begin{verbatim}
+% \received{20 February 2007}
+% \received[revised]{12 March 2009}
+% \received[accepted]{5 June 2009}
+% \end{verbatim}
+%
+%
+% \DescribeMacro{\maketitle}%
+% The macro \cs{maketitle} must be the last command in the top-matter
+% group. That is it must follow the commands defined in this section.
+%
+%
+% \DescribeMacro{\shortauthors}%
+% \emph{After} the command \cs{maketitle}, the macro \cs{shortauthors}
+% stores the names of the authors for the running head. You can
+% redefine it if the list of author's name is too long, e.g.,
+% \begin{verbatim}
+% \maketitle
+% \renewcommand{\shortauthors}{Zhou et al.}
+% \end{verbatim}
+%
+%
+%\subsection{Top matter of ACM Engage materials}
+%\label{sec:ug_engage}
+%
+% ACM Engage materials resemble conference proceedings, but have some
+% special features. First, as a rule, they are released under a
+% Creative Commons license. By default CC-BY is used. However, if
+% you want to use another variant of CC license, use \cs{setcctype}
+% command, for example, |\setcctype{by-nc}|. Second, abstract is
+% called \emph{synopsis}. Third, there are special top matter items
+% used for the materials, such as \emph{Course,} \emph{Resource Type,}
+% \emph{Programming Language,} \emph{CS Topics}.
+%
+% \DescribeMacro{\setengagemetadata}%
+% These items are set with the command
+% \cs{setengagemetadata}\marg{name}\marg{value}, for example,
+% \begin{verbatim}
+% \setengagemetadata{Course}{CS1}
+% \setengagemetadata{Programming Language}{Python}
+% \setengagemetadata{Knowledge Unit}{Programming Concepts}
+% \setengagemetadata{CS Topics}{Functions, Data Types, Expressions,
+% Mathematical Reasoning}
+% \end{verbatim}
+%
+% Note that the type of Creative Commons license, if such license is
+% used, is automatically added to the metadata.
+%
+%
+%\subsection{ACM cover page}
+%\label{sec:ug_acmcp}
+%
+% ACM cover pages are forms of extended abstracts that are added to
+% journals at the late stage. Authors prepare them as separate
+% \texttt{.tex} files using |acmcp| format. At present only JDS uses
+% them, but in the future this may change.
+%
+% There are several top matter commands specific for this format.
+%
+% \DescribeMacro{\acmArticleType}%
+% There are five article types accepted by JDS: \emph{Research} (the
+% default), \emph{Review}, \emph{Discussion}, \emph{Invited}, and
+% \emph{Position}. The command \cs{acmArticleType}\marg{type} sets the
+% article type, for example
+% \begin{verbatim}
+% \acmArticleType{Review}
+% \end{verbatim}
+%
+% \DescribeMacro{\acmCodeLink}%
+% \DescribeMacro{\acmDataLink}%
+% The commands \cs{acmCodeDataLink}\marg{link} and
+% \cs{acmDataLink}\marg{link} set the links to the data and code
+% accompanying the paper, for example,
+% \begin{verbatim}
+% \acmCodeLink{https://github.com/repository/code}
+% \acmDataLink{https://datadryad.org/stash/dataset/doi:DOI}
+% \end{verbatim}
+% You may repeat these commands if you have several repositories.
+%
+%
+% \cs{acmContributions}%
+% The command \cs{acmContributions}\marg{contributions} sets the
+% contributions of the authors, for example,
+% \begin{verbatim}
+% \acmContributions{AW designed the study, CD performed it, all
+% authors contributed to the writing.}
+% \end{verbatim}
+%
+% ACM cover page should have the following obligatory sections:
+% \begin{itemize}
+% \item Problem statement,
+% \item Methods,
+% \item Results,
+% \item Significance.
+% \end{itemize}
+%
+% Sometimes the addresses extracted from the authors' data are too
+% long to fit on the page. In this case the command
+% \cs{authorsaddresses} can be use to override them, for example,
+% \begin{verbatim}
+% \authorsaddresses{Corresponding author: Ben Trovato,
+% \href{mailto:trovato@corporation.com}{trovato@corporation.com};
+% Institute for Clarity in Documentation, P.O. Box 1212, Dublin,
+% Ohio, USA, 43017-6221}
+% \end{verbatim}
+%
+% The design of the cover page may require additional runs of latex to
+% make the elements of the page align.
+%
+%\subsection{Internationalization}
+%\label{sec:ug_i13n}
+%
+% ACM accepts publications in languages other than English, as well as
+% papers in English with translations of titles, subtitles, keywords
+% and abstracts into other languages. Papers in languages other than
+% English usually have titles, subtitles (if applicable), keywords and
+% abstracts in English. Note that CCS concepts are always typeset in
+% English.
+%
+% To submit these papers you need to set the option |language| in the
+% \cs{documentclass} command. This option can be repeated, for
+% example,
+% \begin{verbatim}
+% \documentclass[sigconf, language=french, language=english]{acmart}
+% \end{verbatim}
+% The last language in the list is the main language of the paper,
+% i.e. the one for the main title, abstract, body, etc. The other
+% languages are \emph{secondary,} and used for translated titles,
+% keywords, abstracts. Thus the paper above is written in English,
+% and has a secondary abstract and a secondary title in French. On
+% the other hand, a paper in French wih secondary titles and abstracts
+% in English and German should use, for example
+% \begin{verbatim}
+% \documentclass[sigconf,
+% language=german,
+% language=english,
+% language=french]{acmart}
+% \end{verbatim}
+%
+%
+% This key can use any language defined in \textsl{babel}
+% package~\cite{Braams22:Babel} (currently the package is tested with
+% English, French, German and Spanish languages; other languages may
+% require a translation of \cs{keywordsname} macro). Actually
+% \textsl{acmart} loads \textsl{babel} internally, so you can use the
+% facilities provided by this package.
+%
+%
+% If this key is set, you have access to several additional top matter
+% commands.
+%
+% \DescribeMacro{\translatedtitle}%
+% \DescribeMacro{\translatedsubtitle}%
+% \DescribeMacro{\translatedkeywords}%
+% The commands \cs{translatedtitle}\marg{language}{title},
+% \cs{translatedsubtitle}\marg{language}{subtitle} and
+% \cs{translatedkeywords}{language}{keywords} are used to set title,
+% subtitle and keywords in the secondary language. For example, a
+% paper in English with French title and abstract may set
+% \begin{verbatim}
+% \title{A note on computational complexity}
+% \translatedtitle{french}{Remarque sur la complexit\'e de calcul}
+% \end{verbatim}
+% while a paper in French should set
+% \begin{verbatim}
+% \title{Remarque sur la complexit\'e de calcul}
+% \translatedtitle{english}{A note on computational complexity}
+% \end{verbatim}
+%
+% \DescribeEnv{translatedabstract}%
+% Similarly, |translatedabstract| environment has a mandatory language
+% argument, for example,
+% \begin{verbatim}
+% \begin{translatedastract}{english}
+% This is the English version of the abstract
+% \end{translatedastract}
+% \end{verbatim}
+%
+% You can repeat these commands if a paper has more than one secondary
+% language.
+%
+% Use the standard commands (\cs{title}, \cs{subtitle},
+% \cs{keywords}, |abstract|) for the main language of the paper.
+%
+%\subsection{Algorithms}
+%\label{sec:ug_algorithms}
+%
+% There are now several good packages for typesetting
+% algorithms~\cite{Fiorio15, Brito09, Heinz15}, and the authors are
+% free to choose their favorite one.
+%
+%
+%
+%\subsection{Figures and tables}
+%\label{sec:ug_floats}
+%
+% The new ACM styles use the standard \LaTeX\ interface for figures and
+% tables. There are some important items to be aware of, however.
+%
+% \begin{enumerate}
+% \item The captions for figures must be entered \emph{after} the
+% figure bodies and for tables \emph{before} the table bodies.
+% \item The ACM uses the standard types for figures and tables and adds
+% several new ones. In total there are the following types:
+% \begin{description}
+% \item[figure, table:] a standard figure or table taking a full text
+% width in one-column formats and one column width in two-column formats.
+% \item[figure*, table*] in two-column formats, a special figure or
+% table taking a full text width.
+% \item[teaserfigure:] a special figure before \cs{maketitle}.
+% \end{description}
+%
+% \item Accordingly, when scaling images, one should use the
+% following sizes:
+% \begin{enumerate}
+% \item For |teaserfigure|, |figure| in one-column mode or |figure*| in
+% two-column mode, use \cs{textwidth}. In one-column mode, you can also
+% use \cs{columnwidth}, which coincides with \cs{textwidth} in this
+% case.
+% \item For |figure| in two-column mode, use \cs{columnwidth}.
+% \end{enumerate}
+%
+% \end{enumerate}
+%
+% It is strongly recommended to use the package |booktabs|~\cite{Fear05}
+% and follow its main principles of typography with respect to tables:
+% \begin{enumerate}
+% \item Never, ever use vertical rules.
+% \item Never use double rules.
+% \end{enumerate}
+% It is also a good idea not to overuse horizontal rules.
+%
+% For table \emph{footnotes} you have several options described in the TeX
+% FAQ~\cite{TeXFAQ}. The simplest one is to use a \cs{minipage}
+% environment:
+% \begin{verbatim}
+% \begin{table}
+% \caption{Simulation Configuration}
+% \label{tab:conf}
+% \begin{minipage}{\columnwidth}
+% \begin{center}
+% \begin{tabular}{ll}
+% \toprule
+% TERRAIN\footnote{This is a table footnote. This is a
+% table footnote. This is a table footnote.} &
+% (200\,m$\times$200\,m) Square\\
+% Node Number & 289\\
+% Node Placement & Uniform\\
+% Application & Many-to-Many/Gossip CBR Streams\\
+% Payload Size & 32 bytes\\
+% Routing Layer & GF\\
+% MAC Layer & CSMA/MMSN\\
+% Radio Layer & RADIO-ACCNOISE\\
+% Radio Bandwidth & 250Kbps\\
+% Radio Range & 20m--45m\\
+% \bottomrule
+% \end{tabular}
+% \end{center}
+% \bigskip
+% \footnotesize\emph{Source:} This is a table
+% sourcenote. This is a table sourcenote. This is a table
+% sourcenote.
+%
+% \emph{Note:} This is a table footnote.
+% \end{minipage}
+% \end{table}
+% \end{verbatim}
+%
+%
+% Tables and figures are by default centered. However, in some cases
+% (for example, when you use several subimages per figure) you may
+% need to override this. A good way to do so is to put the contents
+% into a \cs{minipage} of the width \cs{columnwidth}.
+%
+%
+%\subsection{Descriptions of images}
+%\label{sec:descriptions}
+%
+% \DescribeMacro{\Description}%
+% Some readers of ACM publications might be visually challenged.
+% These readers might use a voice-over software to read aloud the
+% papers. It is important to provide them a description of each
+% image used in the paper.
+%
+% The command \cs{Description}\oarg{short description}\marg{long
+% description} should be placed inside every \texttt{figure},
+% \texttt{teaserfigure} or \texttt{marginfigure} environment to
+% provide a description of the image(s) used in the figure. Unlike
+% \cs{caption}, which is used alongside the image, \cs{Description} is
+% intended to be used instead of the image, for example,
+% \begin{verbatim}
+% \begin{figure}
+% \centering
+% \includegraphics{voltage}
+% \Description{A bell-like histogram centered at $0.5$~V with most
+% measurements between $0.2$~V and $0.8$~V}
+% \caption{Histogram of the measurements of voltage}
+% \label{fig:voltage}
+% \end{figure}
+% \end{verbatim}
+% At present the lack of descriptions generates a warning at
+% compilation.
+%
+%\subsection{Theorems}
+%\label{sec:ug_theorems}
+%
+% The ACM classes define two theorem styles and several pre-defined
+% theorem environments:
+% \begin{description}
+% \item[acmplain:] this is the style used for
+% |theorem|,
+% |conjecture|,
+% |proposition|,
+% |lemma| and
+% |corollary|, and
+% \item[acmdefinition:] this is the style used for
+% |example| and
+% |definition|.
+% \end{description}
+%
+%
+% These environments are defined by default. In the unusual
+% circumstance that a user does not wish to have these environments
+% defined, the option |acmthm=false| in the preamble will suppress
+% them.
+%
+% Sometimes authors want to define new theorem-like constructs that
+% use |theorem| counters. These constructs must be defined either after
+% |\begin{document}|, or delayed using \cs{AtEndPreamble} macro,
+% for example,
+% \begin{verbatim}
+% \AtEndPreamble{%
+% \theoremstyle{acmdefinition}
+% \newtheorem{remark}[theorem]{Remark}}
+% \end{verbatim}
+%
+%
+%\subsection{Online-only and offline-only material}
+%\label{sec:ug_screen}
+%
+% \DescribeEnv{printonly}%
+% \DescribeEnv{screenonly}%
+% Some supplementary material in ACM publications is put online but
+% not in the printed version. The text inside the environment
+% |screenonly| will be typeset only when the option |screen| (see
+% Section~\ref{sec:invocation}) is set to |true|. Conversely, the
+% text inside the environment |printonly| is typeset only when this
+% option is set to |false|. For example,
+% \begin{verbatim}
+% \section{Supplementary materials}
+%
+% \begin{printonly}
+% Supplementary materials are available in the online version of this paper.
+% \end{printonly}
+%
+% \begin{screenonly}
+% (The actual supplementary materials.)
+% \end{screenonly}
+% \end{verbatim}
+%
+% We use the |comment| package for typesetting this code, so
+% |\begin| and |\end| should start on a line of their own with
+% no leading or trailing spaces.
+%
+%\subsection{Note about anonymous mode}
+%\label{sec:ug_anonymous}
+%
+% \DescribeEnv{anonsuppress}%
+% When the option |anonymous| is selected, \TeX\ suppresses author
+% information (including the number of authors) for an anonymous review.
+% However, sometimes the information identifying the authors may be
+% present in the body of the paper. For example,
+% \begin{verbatim}
+% \begin{anonsuppress}
+% This is the continuation of the previous work by the author
+% \cite{prev1, prev2}.
+% \end{anonsuppress}
+% \end{verbatim}
+%
+% As for the |printonly| and |screenonly| environments,
+% |\begin{anonsuppress}| and |\end{anonsuppress}| should start on a
+% line of their own with no leading or trailing spaces.
+%
+% \DescribeMacro{\anon}%
+% To suppress short snippets of information, use the command
+% \cs{anon}\oarg{substitute}\marg{suppressed-text}. By default
+% \oarg{substitute} is the word ANONYMOUS. Examples:
+% \begin{verbatim}
+% This work was performed at \anon{NSA}.
+% This work was performed at \anon[No Such Agency]{NSA}.
+% \end{verbatim}
+%
+%
+%\subsection{Acknowledgments}
+%\label{sec:ug_acks}
+%
+% The traditional ``Acknowledgments'' section is conventionally used
+% to thank persons and granting agencies for their help and support.
+% However, there are several important considerations about this
+% section.
+%
+% First, in anonymous mode this section must be omitted: it gives
+% too much information to reviewers. Second, data about
+% grants is extracted and stored separately by the postprocessing
+% software. ACM classes provide facilities for both these tasks.
+%
+% \DescribeEnv{acks}%
+% The environment |acks| starts an unnumbered section
+% ``Acknowledgments'' unless the anonymous mode is chosen. Put all
+% thanks inside this environment.
+%
+% As for the |printonly| and |screenonly| environments,
+% |\begin{acks}| and |\end{acks}| should start on a
+% line of their own with no leading or trailing spaces.
+%
+% \DescribeMacro{\grantsponsor}%
+% \DescribeMacro{\grantnum}%
+% All financial support \emph{must} be listed using the commands
+% \cs{grantsponsor} and \cs{grantnum}. These commands tell the
+% postprocessing software about the granting organization and
+% grant. The format of these commands is the following:
+% \begin{quote}
+% \cs{grantsponsor}\marg{sponsorID}\marg{name}\marg{url}\\
+% \cs{grantnum}\oarg{url}\marg{sponsorID}\marg{number}.
+% \end{quote}
+% Here \marg{sponsorID} is the unique ID used to match grants to
+% sponsors, \marg{name} is the name of the sponsor, \marg{url} is its
+% URL, and \marg{number} is the grant number. The \marg{sponsorID} of
+% the \cs{grantnum} command must correspond to the \marg{sponsorID} of a
+% \cs{grantsponsor} command. Some awards have their own web pages,
+% which you can include using the optional argument of the \cs{grantnum}
+% command.
+%
+% At present \marg{sponsorID} is chosen by the authors and can be an
+% arbitrary key in the same way the label of a \cs{cite} is arbitrarily
+% chosen. There might be a change to this policy if the ACM decides to
+% create a global database of sponsoring organizations.
+%
+% Example:
+% \begin{verbatim}
+% \begin{acks}
+% The authors would like to thank Dr. Yuhua Li for providing the
+% matlab code of the \textit{BEPS} method.
+%
+% The authors would also like to thank the anonymous referees for
+% their valuable comments and helpful suggestions. This work is
+% supported by the \grantsponsor{GS501100001809}{National Natural
+% Science Foundation of
+% China}{https://doi.org/10.13039/501100001809} under Grant
+% No.:~\grantnum{GS501100001809}{61273304}
+% and~\grantnum[http://www.nnsf.cn/youngscientists]{GS501100001809}{Young
+% Scientists' Support Program}.
+% \end{acks}
+% \end{verbatim}
+%
+%
+%\subsection{Bibliography}
+%\label{sec:ug_bibliography}
+%
+% The ACM lets you use either Bib\TeX\ or Bib\LaTeX\ to process your references:
+% they require slightly different setup of your \LaTeX\ file, as detailed in
+% the following subsections.
+%\subsubsection{Processing using Bib\TeX}
+% This uses the |natbib| package for formatting references and
+% the Bib\TeX\ style file \path{ACM-Reference-Format.bst} for Bib\TeX\
+% processing. You can disable loading of |natbib| using the
+% option |natbib=false| in \cs{documentclass}. However, it is not
+% recommended, as well as the use of Bib\TeX\ styles other than
+% \path{ACM-Reference-Format.bst}, and may delay the processing of the
+% manuscript.
+%
+%
+% \DescribeMacro{\citestyle}%
+% If you use |natbib|, you can select one of two predefined citation
+% styles using the command \cs{citestyle}: the author-year format
+% |acmauthoryear| or the numeric format |acmnumeric|. For example,
+% \begin{verbatim}
+% \citestyle{acmauthoryear}
+% \end{verbatim}
+% Note that numeric citations are the default mode for most formats.
+%
+% \DescribeMacro{\setcitestyle}%
+% You can further customize |natbib| using
+% the \cs{setcitestyle} command, for example,
+% \begin{verbatim}
+% \setcitestyle{numbers,sort&compress}
+% \end{verbatim}
+%
+% One of the more common versions is
+% \begin{verbatim}
+% \setcitestyle{nosort}
+% \end{verbatim}
+% It is useful if you do not like the way |natbib| sorts citation
+% lists.
+%
+% If you use |natbib|, then commands like \cs{citep} and
+% \cs{citeauthor} are automatically supported. The command
+% \cs{shortcite} is the same as \cs{cite} in numerical mode and cites
+% the year in author-date mode.
+%
+% Note that before version~1.48 the command \cs{citeyear} put the year
+% in parentheses. In version~1.48 and later it produces just the
+% year; the command \cs{citeyearpar} can be used to emulate its old
+% behavior.
+%
+% There are several customized \BibTeX\ entry types and fields in the ACM
+% style file \path{ACM-Reference-Format.bst} that you may want to be
+% aware of.
+%
+% The style supports the fields \path{doi} and \path{url}, for example,
+% \begin{verbatim}
+% doi = "10.1145/1188913.1188915",
+% url = "http://ccrma.stanford.edu/~jos/bayes/bayes.pdf",
+% \end{verbatim}
+% Normally the printing of URL is suppressed if DOI is present.
+% However, there is a special field \path{distinctURL}. If it is
+% present and is not zero, URL is printed even if DOI is present.
+%
+%
+% The style supports the arXiv-recommended fields \path{eprint} and
+% (optionally) \path{primaryclass}, for example,
+% \begin{verbatim}
+% eprint = "960935712",
+% primaryclass = "cs",
+% \end{verbatim}
+% See the examples at \url{https://arxiv.org/help/hypertex/bibstyles}.
+%
+% There are several special entry types. Types \path{online} and
+% \path{game} are used for Web pages and games, for example,
+% \begin{verbatim}
+% @online{Thornburg01,
+% author = "Harry Thornburg",
+% year = "2001",
+% title = "Introduction to Bayesian Statistics",
+% url = "http://ccrma.stanford.edu/~jos/bayes/bayes.html",
+% month = mar,
+% lastaccessed = "March 2, 2005",
+% }
+% \end{verbatim}
+% Entry types \path{artifactsoftware}, \path{artifactdataset}
+% (with synonyms \path{software} and \path{dataset}) can be used to
+% cite software artifacts and datasets, for example,
+% \begin{verbatim}
+% @ArtifactSoftware{R,
+% title = {R: A Language and Environment for Statistical Computing},
+% author = {{R Core Team}},
+% organization = {R Foundation for Statistical Computing},
+% address = {Vienna, Austria},
+% year = {2019},
+% url = {https://www.R-project.org/},
+%}
+% @ArtifactDataset{UMassCitations,
+% author = {Sam Anzaroot and Andrew McCallum},
+% title = {{UMass} Citation Field Extraction Dataset},
+% year = 2013,
+% url =
+% {http://www.iesl.cs.umass.edu/data/data-umasscitationfield},
+% lastaccessed = {May 27, 2019}
+% }
+% \end{verbatim}
+%
+%
+% For these entry types you can use the \path{lastaccessed} field to add
+% the access date for the URL.
+%
+%
+%
+% There are two ways to enter video or audio sources in the
+% bibliograpy corresponding to two different possibilies. For
+% standalone sources available online, you can use an \path{online}
+% entry and set its \path{howpublished} field. For example,
+% \begin{verbatim}
+% @online{Obama08,
+% author = "Barack Obama",
+% year = "2008",
+% title = "A more perfect union",
+% howpublished = "Video",
+% day = "5",
+% url = "http://video.google.com/videoplay?docid=6528042696351994555",
+% month = mar,
+% lastaccessed = "March 21, 2008",
+% }
+% \end{verbatim}
+%
+% For sources available as attachments to conference proceedings
+% and similar documents, you can use the usual \path{inproceedings}
+% entry type and set its \path{howpublished} field:
+% \begin{verbatim}
+% @Inproceedings{Novak03,
+% author = "Dave Novak",
+% title = "Solder man",
+% booktitle = "ACM SIGGRAPH 2003 Video Review on Animation theater Program",
+% year = "2003",
+% publisher = "ACM Press",
+% address = "New York, NY",
+% pages = "4",
+% month = "March 21, 2008",
+% doi = "10.9999/woot07-S422",
+% howpublished = "Video",
+% }
+% \end{verbatim}
+%
+% Sometimes you need to cite a complete issue of a journal. The
+% \path{periodical} entry type is intended for this:
+% \begin{verbatim}
+% @periodical{JCohen96,
+% key = "Cohen",
+% editor = "Jacques Cohen",
+% title = "Special issue: Digital Libraries",
+% journal = "Communications of the {ACM}",
+% volume = "39",
+% number = "11",
+% month = nov,
+% year = "1996",
+% }
+% \end{verbatim}
+%
+% If you do not know the year of publication, the style will add
+% ``[n.\,d.]'' (for ``no date'') to the entry.
+%
+% If you do not know the author (this is often the case for online
+% entries), use the |key| field to add a key for sorting and citations,
+% for example,
+% \begin{verbatim}
+% @online{TUGInstmem,
+% key = {TUG},
+% year = 2017,
+% title = "Institutional members of the {\TeX} Users Group",
+% url = "http://wwtug.org/instmem.html",
+% lastaccessed = "May 27, 2017",
+% }
+% \end{verbatim}
+%
+% A note about sorting. The current ACM bibliography styles always
+% sort the entries according to authors names and publication year.
+% There is a controversy about sorting names with ``von'' or ``van''
+% part: should Ludwig van Beethoven be sorted under ``V'' or under
+% ``B''? The American practice is to use ``van'' in sorting, i.e. to
+% file van Beethoven under ``V''. However, some authorities recommend
+% to sort Dutch persons according to their last names (see
+% e.g. \url{https://www.ifla.org/files/assets/cataloguing/pubs/names-of-persons_1996.pdf}).
+% While I do not want to take a part in this dispute, I would like to
+% point to the old ``noopsort'' trick by Oren Patashnik. Add to the
+% \texttt{.bib} file the line
+% \begin{verbatim}
+% @PREAMBLE{"\providecommand{\noopsort}[1]{}"}
+% \end{verbatim}
+% and then encode the author as
+% \begin{verbatim}
+% author = {Ludwig {\noopsort{Beethoven}}van Beethoven},
+% \end{verbatim}
+% This will make the author to be sorted as ``Beethoven'' rather than
+% ``van Beethoven''.
+%
+% The current bst style defines a number of macros for common journal
+% names. In particular, all journals listed in Table~\ref{tab:pubs}
+% are includes, so you can use strings like |journal = taccess| for
+% \emph{ACM Transactions on Accessible Computing}.
+%
+%\subsubsection{Processing using Bib\LaTeX}
+% You will find in this package two sets of style files for Bib\LaTeX,
+% \verb|acmnumeric| and \verb|acmauthoryear|, that mimic the behaviour
+% of the ACM-Reference-Format.bst Bib\TeX\ sytle. They provide you
+% access to all the power of Bib\LaTeX\ and already include
+% support for advanced citation of software artefact from the
+% \verb|biblatex-software| package, also separately available on CTAN.
+% Look at the \verb|biblatex-software| documentation to learn more about
+% what it offers.
+%
+% There are a few key differences in how the \LaTeX\ sources are set up
+% when using Bib\LaTeX\ instead of Bib\TeX, that we summarize briefly
+% here (please refer to the official Bib\LaTeX\ documentation for more details).
+%
+% In the preamble of your document you need to load the Bib\LaTeX\ package
+% and select the approriate bibliography style, as follows
+% \begin{verbatim}
+% \RequirePackage[
+% datamodel=acmdatamodel,
+% style=acmnumeric, % use style=acmauthoryear for publications that require it
+% ]{biblatex}
+% \end{verbatim}
+%
+% Also in the preamble, you need to declare the bibliography sources files
+% using the \verb|\addbibresouce| directe (one \verb|\addbibresource|
+% command per source file), e.g.:
+% \begin{verbatim}
+% \addbibresource{software.bib}
+% \addbibresource{sample-base.bib}
+% \end{verbatim}
+%
+% At the end of the document, where you want the bibliography to appear,
+% you need to place the command \verb|\printbibliography|.
+%
+% Look at the \verb|sample-*-biblatex.tex| files that can be found in the samples
+% directory after running \verb|make| for templates showcasing
+% these Bib\LaTeX\ styles.
+
+%\subsection{Colors}
+%\label{sec:ug_colors}
+%
+% While printed ACM publications are usually black and white, |screen|
+% mode allows the use of colors. The ACM classes pre-define several
+% colors according to~\cite{ACMIdentityStandards}: |ACMBlue|,
+% |ACMYellow|, |ACMOrange|, |ACMRed|, |ACMLightBlue|, |ACMGreen|,
+% |ACMPurple| and |ACMDarkBlue|. You can use them in color
+% assignments.
+%
+% The ACM provides the following recommendation on color use.
+%
+% The most accessible approach would be to ensure that your article is
+% still readable when printed in greyscale. The most notable reasons
+% for this are:
+% \begin{enumerate}
+% \item The most common type of inherited Color Vision Deficiency
+% (CVD) is red-green (in which similar-brightness colors that differ
+% only in their amounts of red or green are often confused), and it
+% affects up to 8\% of males and 0.5\% of females of Northern European
+% descent.
+% \item The most common type of acquired Color Vision Deficiency (CVD)
+% is blue-yellow (including mild cases for many older adults).
+% \item Most printing is in black and white.
+% \item Situational impairments (e.g., bright sunlight shining on a
+% mobile screen) tend to reduce the entire color gamut, reducing color
+% discriminability.
+% \end{enumerate}
+%
+% \textbf{Note:} It is \emph{not} safe to encode information using
+% only variations in color (i.e., only differences in hue and/or
+% saturation) as there is bound to be someone affected!
+%
+% To ensure that you are using the most accessible colors, the ACM
+% recommends that you choose sets of colors to help ensure suitable
+% variations in when printed in greyscale by using either of the following tools:
+% \begin{enumerate}
+% \item ColourBrewer: \url{http://colorbrewer2.org/}
+% \item ACE: The Accessible Colour Evaluator:
+% \url{http://daprlab.com/ace/} for designing WCAG 2.0 compliant
+% palettes.
+% \end{enumerate}
+%
+%
+%
+%\subsubsection{Manual bibliography}
+%\label{sec:ug_manual_bibliography}
+%
+% Some people create bibliographies manually, writing down
+% \cs{bibitem} commands explicitly. This approach is \emph{not}
+% recommended for ACM styles. The reason is, ACM submissions, besides
+% being typeset, are also processed by special programs that extract
+% metadata and references. Bibliographies created automatically with
+% ACM styles contain customized macros for these programs, for
+% example,
+% \begin{verbatim}
+% \bibitem[Ablamowicz and Fauser(2007)]%
+% {Ablamowicz07}
+% \bibfield{author}{\bibinfo{person}{Rafal Ablamowicz} {and}
+% \bibinfo{person}{Bertfried Fauser}.} \bibinfo{year}{2007}\natexlab{}.
+% \newblock \bibinfo{booktitle}{\emph{CLIFFORD: a Maple 11 Package for Clifford
+% Algebra Computations, version 11}}.
+% \newblock
+% \urldef\tempurl%
+% \url{http://math.tntech.edu/rafal/cliff11/index.html}
+% \showURL{%
+% Retrieved February 28, 2008 from \tempurl}
+% \end{verbatim}
+%
+% Manual bibliographies without these macros may slow down the
+% publication process, and thus are not recommended for ACM
+% submissions.
+%
+%\subsection{Other notable packages and typographic remarks}
+%\label{sec:ug_other}
+%
+% Several other packages are recommended for specialized tasks.
+%
+% The package |subcaption|~\cite{Sommerfeldt13:Subcaption} is
+% recommended for complex figures with several subplots or subfigures
+% that require separate subcaptioning. The packages
+% |nomencl|~\cite{Nomencl} and
+% |glossaries|~\cite{Talbot16:Glossaries} can be used for the
+% automatic creation of the lists of symbols and concepts used.
+%
+%
+% By default |acmart| prevents all widows and orphans (i.e., lonely
+% lines at the beginning or end of the page) and hyphenation at
+% the end of the page. This is done by the rather strict settings
+% \begin{verbatim}
+% \widowpenalty=10000
+% \clubpenalty=10000
+% \brokenpenalty=10000
+% \end{verbatim}
+% However, this may lead to frustrating results when the authors must
+% obey a page limit. Setting these penalties to smaller values may
+% help if you absolutely need to.
+%
+% Another problem might be the too strict line breaking rules. Again,
+% a strategically placed \cs{sloppy} command or putting the
+% problematic paragraph inside \texttt{sloppypar} environment might
+% help---but beware, the results might be, well, sloppy.
+%
+% Note that the uppercasing in section titles is done using
+% the |textcase| package~\cite{Carlisle04:Textcase}, so the command
+% \cs{NoCaseChange} inside the title may help to prevent extraneous
+% uppercasing.
+%
+%
+%\subsection{Counting words}
+%\label{sec:ug_counting}
+%
+% Some ACM conferences use word count limits for papers. The
+% calculation of word number for a paper with math, tables and figures
+% is not a trivial task. Currently the authoritative word count is
+% done by translating the PDF to text and using |wc -w| on the
+% output. Authors can use the package |texcount| (used by Overleaf)
+% to get an estimate of the word count. To faciliate this one adds to the
+% beginning of the package metacomments
+% \begin{verbatim}
+% %TC:macro \cite [option:text,text]
+% %TC:macro \citep [option:text,text]
+% %TC:macro \citet [option:text,text]
+% %TC:envir table 0 1
+% %TC:envir table* 0 1
+% %TC:envir tabular [ignore] word
+% %TC:envir displaymath 0 word
+% %TC:envir math 0 word
+% %TC:envir comment 0 0
+% \end{verbatim}
+% and uses |\begin{math}...\end{math}| instead of dollar signs for
+% math. Note that the count is in any case approximate, and the final
+% decision of editors is based on PDF count.
+%
+% The script |texcount| provides a report of word count in the
+% document.
+%
+%
+%\subsection{Creative Commons licenses for ACM publications}
+%\label{sec:ug_cc}
+%
+% At present ACM does not allow the authors to typeset Creative
+% Commons license for most ACM publications. These licenses can be
+% used under an agreement with the ACM publishing office. In this
+% case they are inserted by ACM itself.
+%
+% The exceptions are ACM Engage format, which allows Creative Commons
+% license, and conferences organized and copyrighted by IW3C2. In
+% these cases the authors should use correspondingly
+% |\setcopyright{cc}|, |\setcopyright{iw3c2w3}|, or
+% |\setcopyright{iw3c2w3g}| (the latter should be used by Google
+% employees).
+%
+% Yet another case is the typesetting of non-ACM materials, when the
+% option |nonacm| is used. This case is somewhat opposite, because
+% for this case \emph{only} Creative Common licenses are supported.
+%
+% The command |\setcopyright{cc}| produces an error unless the format is
+% |acmengage| or |nonacm| option is selected. On the other hand, if
+% the option |nonacm| is selected, any argument of |\setcopyright|
+% other than |cc| is treated as |none|.
+%
+%
+%\subsection{Disabled or forbidden commands}
+%\label{sec:ug_disabled}
+%
+% The goal of |acmart| package is to provide a uniform look and feel
+% for ACM publications. Accordingly, a number of commands is
+% forbidden or disabled in |acmart|.
+%
+% You may \emph{not} put several authors or several e-mails into a
+% \cs{author} or \cs{email} command. This may lead to errors or
+% warning.
+%
+% You cannot change \cs{baselinestretch} in your document: this
+% produces an error.
+%
+% You should not abuse the command \cs{vspace}: this command may
+% disturb the typesetting of ACM papers.
+%
+% You should not load |amssymb| package since the package |acmart|
+% defines the corresponding symbols itself.
+%
+%\subsection{Notes for wizards}
+%\label{sec:ug_preload}
+%
+% Sometimes you need to change the behavior of |acmart|. The
+% usual way to do this is to redefine commands in the preamble.
+% However, these definitions are executed \emph{after} |acmart| is
+% loaded and certain decisions are made. This presents a number of
+% problems.
+%
+% For example, one may want to use the |titletoc| package with |acmart|.
+% This package should be loaded before |hyperref|. However, since
+% |acmart| loads |hyperref| itself, the line |\usepackage{titletoc}|
+% in the preamble will lead to grief (see
+% \url{http://tex.stackexchange.com/questions/357265/using-titletoc-with-acm-acmart-style}).
+%
+% Another example is passing options to a package. Suppose you want to
+% use the |dvipsnames| option of the |xcolor| package. Normally you cannot do
+% this because |acmart| loads this package itself without options.
+%
+% The file |acmart-preload-hook.tex| can be used to solve these
+% problems. If this file exists, it will be processed before any other
+% package. You can use this file to load packages or pass options to
+% them. For example, if you put in this file
+% \begin{verbatim}
+% \let\LoadClassOrig\LoadClass
+% \renewcommand\LoadClass[2][]{\LoadClassOrig[#1]{#2}%
+% \usepackage{titletoc}}
+% \end{verbatim}
+% then |titletoc| will be loaded before |hyperref|. If you put in
+% this file
+% \begin{verbatim}
+% \PassOptionsToPackage{dvipsnames}{xcolor}
+% \end{verbatim}
+% you will pass |dvipsnames| to |xcolor|.
+%
+% \textbf{Important note.} This hook makes it too easy to create a
+% manuscript that is not acceptable by the ACM. It is even easier to
+% create a file that cannot be compiled. So please do not use it
+% \emph{unless you know what you are doing.} And if you use it,
+% \emph{do not ask for support.} If you decide to use this hook, you
+% are on your own.
+%
+% \DescribeMacro{\AtBeginMaketitle}%
+% Another hook is \cs{AtBeginMaketitle}. The commands in this hook
+% are executed before \cs{maketitle}.
+%
+%
+%\subsection{Currently supported publications}
+%\label{sec:pubs}
+%
+%\bgroup\centering
+% \begin{longtable}{>{\ttfamily}p{0.2\textwidth}@{}p{0.8\textwidth}}
+% \caption{ACM publications and arguments of the \cs{acmJournal}
+% command}
+% \label{tab:pubs}\\
+% \toprule
+% \normalfont Abbreviation & Publication \\
+% \midrule
+% \endfirsthead
+% \caption[]{ACM publications and arguments of the \cs{acmJournal}
+% command (continued)}\\
+% \toprule
+% \normalfont Abbreviation & Publication \\
+% \midrule
+% \endhead
+% \bottomrule
+% \endfoot
+% ACMJCSS & ACM Journal on Computing and Sustainable Societies \\
+% CIE & ACM Computers in Entertainment \\
+% CSUR & ACM Computing Surveys\\
+% DLT & Distributed Ledger Technologies: Research and Practice\\
+% DGOV & Digital Government: Research and Practice \\
+% DTRAP & Digital Threats: Research and Practice\\
+% FAC & Formal Aspects of Computing \\
+% GAMES & ACM Games: Research and Practice\\
+% HEALTH & ACM Transactions on Computing for Healthcare\\
+% IMWUT & PACM on Interactive, Mobile, Wearable and Ubiquitous
+% Technologies\\
+% JACM & Journal of the ACM \\
+% JATS & ACM Journal on Autonomous Transportation Systems \\
+% JDIQ & ACM Journal of Data and Information Quality \\
+% JDS & ACM/IMS Journal of Data Science \\
+% JEA & ACM Journal of Experimental Algorithmics \\
+% JERIC & ACM Journal of Educational Resources in Computing\\
+% JETC & ACM Journal on Emerging Technologies in Computing Systems \\
+% JOCCH & ACM Journal on Computing and Cultural Heritage \\
+% JRC & ACM Journal on Responsible Computing \\
+% PACMCGIT & Proceedings of the ACM on Computer Graphics and
+% Interactive Techniques\\
+% PACMHCI & PACM on Human-Computer Interaction\\
+% PACMOD & PACM on Management of Data\\
+% PACMNET & PACM on Networking\\
+% PACMPL & PACM on Programming Languages \\
+% PACMSE & PACM on Software Engineering \\
+% POMACS & PACM on Measurement and Analysis of Computing Systems \\
+% TAAS & ACM Transactions on Autonomous and Adaptive Systems\\
+% TACCESS & ACM Transactions on Accessible Computing\\
+% TACO & ACM Transactions on Architecture and Code Optimization \\
+% TALG & ACM Transactions on Algorithms \\
+% TALLIP & ACM Transactions on Asian and Low-Resource Language
+% Information Processing\\
+% TAP & ACM Transactions on Applied Perception \\
+% TCPS & ACM Transactions on Cyber-Physical Systems\\
+% TDS & ACM/IMS Transactions on Data Science\\
+% TEAC & ACM Transactions on Economics and Computation\\
+% TECS & ACM Transactions on Embedded Computing Systems \\
+% TELO & ACM Transactions on Evolutionary Learning and Optimization\\
+% THRI & ACM Transactions on Human-Robot Interaction\\
+% TIIS & ACM Transactions on Interactive Intelligent Systems\\
+% TIOT & ACM Transactions on Internet of Things \\
+% TISSEC & ACM Transactions on Information and System Security\\
+% TIST & ACM Transactions on Intelligent Systems and Technology \\
+% TKDD & ACM Transactions on Knowledge Discovery from Data\\
+% TMIS & ACM Transactions on Management Information Systems\\
+% TOCE & ACM Transactions on Computing Education\\
+% TOCHI & ACM Transactions on Computer-Human Interaction\\
+% TOCL & ACM Transactions on Computational Logic\\
+% TOCS & ACM Transactions on Computer Systems \\
+% TOCT & ACM Transactions on Computation Theory \\
+% TODAES & ACM Transactions on Design Automation of Electronic Systems\\
+% TODS & ACM Transactions on Database Systems\\
+% TOG & ACM Transactions on Graphics\\
+% TOIS & ACM Transactions on Information Systems\\
+% TOIT & ACM Transactions on Internet Technology\\
+% TOMACS & ACM Transactions on Modeling and Computer Simulation \\
+% TOMM & ACM Transactions on Multimedia Computing, Communications
+% and Applications \\
+% TOMPECS & ACM Transactions on Modeling and Performance Evaluation
+% of Computing Systems\\
+% TOMS & ACM Transactions on Mathematical Software\\
+% TOPC & ACM Transactions on Parallel Computing\\
+% TOPLAS & ACM Transactions on Programming Languages and Systems\\
+% TOPML & ransactions on Probabilistic Machine Learning\\
+% TOPS & ACM Transactions on Privacy and Security\\
+% TORS & ACM Transactions on Recommender Systems\\
+% TOS & ACM Transactions on Storage\\
+% TOSEM & ACM Transactions on Software Engineering and Methodology\\
+% TOSN & ACM Transactions on Sensor Networks\\
+% TQC & ACM Transactions on Quantum Computing\\
+% TRETS & ACM Transactions on Reconfigurable Technology and Systems\\
+% TSAS & ACM Transactions on Spatial Algorithms and Systems\\
+% TSC & ACM Transactions on Social Computing\\
+% TSLP & ACM Transactions on Speech and Language Processing \\
+% TWEB & ACM Transactions on the Web\\
+% \end{longtable}
+%\egroup
+%
+% Besides the publications listed in Table~\ref{tab:pubs}, there is a
+% special ``publication'' type FACMP, a forthcoming ACM publication,
+% reserved for new journals which are not assigned an ISSN yet.
+%
+%
+%\subsection{Samples}
+%\label{sec:samples}
+%
+% There are several samples of acmart documents, that can serve as
+% templates for the authors. Among them
+% |sample-sig...| are templates for conference papers, while
+% |sample-acm...| are templates for journal articles and special
+% materials.
+%
+% Here is the list of the samples:
+% \begin{description}
+% \item[sample-manuscript:] A proceedings paper in the manuscript format.
+% \item[sample-acmsmall:] A journal paper in the |acmsmall| format.
+% \item[sample-acmsmall-biblatex:] A journal paper using experimental
+% \textsl{biblatex} bibliography processing.
+% \item[sample-acmlarge:] A journal paper in the |acmlarge| format.
+% \item[sample-acmtog:] A journal paper in the |acmtog| format.
+% \item[sample-sigconf:] A proceedings paper in the standard |sigconf|
+% format.
+% \item[sample-sigconf-biblatex:] A proceedings paper in the |sigconf|
+% format using experimental \textsl{biblatex} bibliography
+% processing.
+% \item[sample-sigconf-authordraft:] A proceedings paper in the
+% |sigconf| format with the |authordraft| option selected.
+% \item[sample-sigconf-i13n:] A proceedings paper in the
+% |sigconf| format with multilanguage titles and abstract.
+% \item[sample-sigconf-xelatex:] A proceedings paper in the
+% |sigconf| format, Xe\LaTeX\ version.
+% \item[sample-sigconf-lualatex:] A proceedings paper in the
+% |sigconf| format, Lua\LaTeX\ version.
+% \item[sample-sigplan:] A proceedings paper in the |sigplan| format.
+% \item[sample-acmsmall-conf:] A proceedings paper in the |acmsmall|
+% format for the publication in a journal using this option.
+% \item[sample-acmtog-conf:] A proceedings paper in the |acmtog|
+% format for the publication in a journal using this option.
+% \item[sample-acmcp:] A sample of ACM Cover Page used by JDS.
+% \item[sample-acmengage:] A sample of ACM Engage publication.
+% \end{description}
+%
+%
+%
+%\subsection{A note about \texttt{sigchi-a} format}
+%\label{sec:sigchi-a}
+%
+% Starting in Spring 2020 ACM retired SIGCHI Extended Abstract format
+% (|sigchi-a|). ACM will not, under any circumstances, accept
+% documents in this format for publication and will not offer
+% technical support to the authors who use this template.
+%
+% You may use this format in the |nonacm| mode only, as in
+% \begin{verbatim}
+% \documentclass[sigchi-a, nonacm]{acmart}
+% \end{verbatim}
+%
+%
+%
+% \DescribeEnv{sidebar}%
+% \DescribeEnv{marginfigure}%
+% \DescribeEnv{margintable}%
+% This format has large margin uses for special figures and
+% tables. This package provides three environments for this with
+% optional captions:
+% \begin{description}
+% \item[sidebar:] textual information in the margin,
+% \item[marginfigure:] a figure in the margin,
+% \item[margintable:] a table in the margin.
+% \end{description}
+%
+% The environments |figure| and |table| produce figures and tables
+% with the width of the text column. The environments |figure*| and
+% |table*| produce ``wide'' figures and tables, which take a large
+% part of the margin.
+%
+% The horizontal sizes of figures are:
+% \begin{enumerate}
+% \item |figure|: \cs{columnwidth},
+% \item |marginfigure|: \cs{marginparwidth},
+% \item |figure*|: \cs{fulltextwidth}.
+% \end{enumerate}
+%
+%
+%
+% \StopEventually{
+% \clearpage
+% \bibliography{acmart}
+% \bibliographystyle{unsrt}}
+%
+% \clearpage
+%
+%
+%\section{Implementation}
+%\label{sec:impl}
+%
+%\subsection{Identification}
+%\label{sec:ident}
+%
+% We start with a declaration of who we are. Most |.dtx| files put
+% driver code in a separate~|.drv| driver file. We roll this code into the
+% main file and use the pseudo-guard || for it.
+% \begin{macrocode}
+%\NeedsTeXFormat{LaTeX2e}
+%<*gobble>
+\ProvidesFile{acmart.dtx}
+%
+%\ProvidesClass{acmart}
+[2024/05/27 v2.08 Typesetting articles for the Association for Computing Machinery]
+% \end{macrocode}
+%
+% \changes{v1.00}{2016/04/14}{First released version}
+% \changes{v1.01}{2016/04/18}{Defined ACM colors}
+% \changes{v1.01}{2016/04/18}{Changed hyperref colors in screen mode
+% (closes \url{https://github.com/borisveytsman/acmart/issues/1})}
+% \changes{v1.01}{2016/04/18}{Set headheight to 1pc for all formats
+% (closes \url{https://github.com/borisveytsman/acmart/issues/5})}
+% \changes{v1.02}{2016/04/21}{Documentation changes
+% (closes \url{https://github.com/borisveytsman/acmart/issues/13})}
+% \changes{v1.02}{2016/04/21}{Added TOPS and TSC
+% (closes \url{https://github.com/borisveytsman/acmart/issues/12})}
+% \changes{v1.03}{2016/04/22}{Added authorversion option
+% (closes \url{https://github.com/borisveytsman/acmart/issues/9})}
+% \changes{v1.03}{2016/04/22}{Added anonsuppress environment}
+% \changes{v1.04}{2016/04/26}{Updated bibliography for siggraph}
+% \changes{v1.05}{2016/04/27}{Patched \cs{setcitestyle} command;
+% closes \url{https://github.com/borisveytsman/acmart/issues/19}}
+% \changes{v1.05}{2016/04/27}{Added processing doi numbers for
+% acmsiggraph and doi numbers for sigproc.bib}
+% \changes{v1.08}{2016/05/13}{SIGPLAN reformatting by Matthew Fluet}
+% \changes{v1.08}{2016/05/13}{Typos corrected (Tobias Pape)}
+% \changes{v1.09}{2016/05/18}{Revert SIGPLAN caption rules}
+% \changes{v1.11}{2016/05/27}{Customization of ACM theorem styles and
+% proof environment by Matthew Fluet}
+% \changes{v1.12}{2016/05/30}{Documentation updates}
+% \changes{v1.14}{2016/06/09}{\cs{citestyle} updates (Matthew Fluet)}
+% \changes{v1.16}{2016/07/07}{Formatting header/footer (Matthew
+% Fluet)}
+% \changes{v1.18}{2016/07/10}{Natbib is now the default for all
+% formats}
+% \changes{v1.19}{2016/07/28}{Include 'Abstract', 'Acknowledgements',
+% and 'References' in PDF bookmarks (Matthew Fluet)}
+% \changes{v1.20}{2016/08/06}{Bug fixes for bst}
+% \changes{v1.22}{2016/09/25}{More bibliography changes for Aptara}
+% \changes{v1.23}{2016/11/04}{Add PACMPL journal option}
+% \changes{v1.26}{2016/12/24}{Corrected \cs{shortcite} bug}
+% \changes{v1.26}{2016/12/24}{Documentation typos fixed (thanks to
+% Stephen Spencer)}
+% \changes{v1.30}{2017/02/04}{Bibtex style now recognizes https:// in
+% doi}
+% \changes{v1.31}{2017/03/04}{Documentation changes}
+% \changes{v1.32}{2017/03/07}{Format siggraph is now obsolete}
+% \changes{v1.32}{2017/03/07}{Added POMACS journal option}
+% \changes{v1.33}{2017/03/12}{BibTeX crossref bug corrected}
+% \changes{v1.33}{2017/03/18}{BibTeX comma before articleno bug
+% corrected}
+% \changes{v1.33}{2017/03/18}{BibTeX numpages bug corrected}
+% \changes{v1.33}{2017/03/28}{Added acmart-preload-hook}
+% \changes{v1.33}{2017/03/33}{Documentation updates}
+% \changes{v1.35}{2017/04/23}{BibTeX bug fixed: et al.}
+% \changes{v1.36}{2017/05/12}{Added the possibility to adjust number of
+% author boxes per row in conference formats}
+% \changes{v1.37}{2017/05/13}{Set \cs{normalparindent}; Reduce list
+% indentation (Matthew Fluet)}%
+% \changes{v1.38}{2017/05/13}{Increase default font size for SIGPLAN}
+% \changes{v1.40}{2017/05/27}{Bibliography changes}
+% \changes{v1.40}{2017/06/15}{Added package cleveref}
+% \changes{v1.40}{2017/06/16}{Added new copyright version:
+% licensedcagov}
+% \changes{v1.41}{2017/06/25}{Added new badges}
+% \changes{v1.42}{2017/07/02}{Deleted ACM badges}
+% \changes{v1.44}{2017/07/30}{Added package refcount}
+% \changes{v1.44}{2017/07/30}{Deleted package cleveref}
+% \changes{v1.44}{2017/07/30}{Put theorem defs in a separate style}
+% \changes{v1.46}{2017/08/17}{Bst file bug fixes: label width is
+% calculated correctly}
+% \changes{v1.46}{2017/08/25}{Added etoolbox}
+% \changes{v1.46}{2017/08/29}{Restore theorem defs to class file}
+% \changes{v1.47}{2017/08/31}{New journal: THRI}
+% \changes{v1.48}{2017/09/09}{Typos fixed (Jamie Davis)}
+% \changes{v1.48}{2017/09/16}{Code prettying (Michael D.~Adams)}
+% \changes{v1.48}{2017/09/23}{Misc entries in the bibliography no
+% longer produce a separate date}
+% \changes{v1.48}{2017/10/01}{Initial support for Biblatex (Daniel Thomas)}
+% \changes{1.48}{2017/10/14}{Bib code cleanup (Zack Weinberg)}
+% \changes{1.48}{2017/12/03}{Documentation update (siggraph)}
+% \changes{1.49}{2018/01/24}{New journal: DTRAP}
+% \changes{1.53}{2018/04/14}{New journals: PACMCGIT, TIOT, TDSCI}
+% \changes{1.53}{2018/04/14}{Rearranged docs}
+% \changes{1.54}{2018/06/17}{Moved footnote stuff before hyperref call
+% (Ross Moore)}
+% \changes{1.56}{2018/11/11}{Documented \cs{Description}}
+% \changes{1.57}{2018/12/16}{Booktabs package is now the default}
+% \changes{1.58}{2019/02/09}{Changes in samples (Enrico Gregorio)}
+% \changes{1.58}{2019/03/29}{New journal: HEALTH. TDS is renamed to
+% TDSCI}
+% \changes{1.60}{2019/04/22}{New option: urlbreakonhyphens}
+% \changes{1.62}{2019/07/31}{New journal: TELO}
+% \changes{1.63}{2019/08/04}{New journal: TQUANT}
+% \changes{1.63}{2019/08/04}{New journal: FACMP}
+% \changes{1.63a}{2019/08/05}{Move: TQUANT to TQC}
+% \changes{1.64}{2019/08/17}{Putting abstract after \cs{maketitle} now
+% causes an error}
+% \changes{1.65}{2019/10/19}{New journal: DGOV}
+% \changes{1.66}{2019/12/18}{ACM reference format is now mandatory for
+% papers over one page; CCS concepts and keywords are now mandatory for
+% papers over two pages}
+% \changes{1.66}{2019/12/18}{Authors' addresses are mandatory for
+% journal articles}
+% \changes{1.71}{2020/05/01}{Retired sigchi and sigchi-a}
+% \changes{1.71}{2020/05/02}{Bibliography change: volume for
+% @inproceedings is now in brackets together with series}
+% \changes{1.71}{2020/05/02}{LuaTeX now uses the OTF versions of
+% fonts}
+% \changes{1.75}{2020/10/29}{Documentation update}
+% \changes{1.78}{2021/05/01}{Documentation update: Word count}
+% \changes{1.84}{2022/04/09}{New journals: JDS, GAMES}
+% \changes{1.85}{2022/05/08}{Added CC licenses}
+% \changes{1.87}{2022/08/02}{New format: |acmcp|}
+% \changes{1.90a}{2023/06/11}{Changes in the sample keywords and concepts}
+% \changes{1.92}{2023/09/30}{Documentation update: use of `anonymous'
+% throughout}
+% \changes{v1.93}{2023/10/22}{Added PACMSE journal option}
+% \changes{v2.01}{2024/01/06}{Documentation update: POMACS uses acmsmall}
+% \changes{v2.03}{2024/02/04}{Added documentation about samples}
+%
+% And the driver code:
+% \begin{macrocode}
+%<*gobble>
+\documentclass{ltxdoc}
+\usepackage{array,booktabs,amsmath,graphicx,fancyvrb,tabularx, longtable}
+\usepackage[tt=false, type1=true]{libertine}
+\usepackage[varqu]{zi4}
+\usepackage[libertine]{newtxmath}
+\usepackage[tableposition=top]{caption}
+\usepackage{hypdoc}
+\PageIndex
+\CodelineIndex
+\RecordChanges
+\EnableCrossrefs
+\begin{document}
+ \DocInput{acmart.dtx}
+\end{document}
+%
+%<*class>
+\def\@classname{acmart}
+% \end{macrocode}
+%
+%
+%
+%\subsection{Preload hook}
+%\label{sec:preload}
+%
+% We preload |acmart-preload-hook|:
+% \begin{macrocode}
+\InputIfFileExists{acmart-preload-hook.tex}{%
+ \ClassWarning{\@classname}{%
+ I am loading acmart-preload-hook.tex. You are fully responsible
+ for any problems from now on.}}{}
+% \end{macrocode}
+%
+% \subsection{Options}
+% \label{sec:options}
+%
+% We need |xkeyval| since some of our options may have values:
+% \begin{macrocode}
+\RequirePackage{xkeyval}
+% \end{macrocode}
+%
+% We use |xstring| to check whether user input is valid
+% \begin{macrocode}
+\RequirePackage{xstring}
+% \end{macrocode}
+%
+% We need |iftex| to check the engine
+% \begin{macrocode}
+\RequirePackage{iftex}
+% \end{macrocode}
+%
+%
+%
+% \begin{macro}{format}
+% \changes{1.85}{2022/05/08}{New format: acmengage}
+% \changes{1.87}{2022/08/13}{New format: acmcp}
+% The possible formats
+% \begin{macrocode}
+\define@choicekey*+{acmart.cls}{format}[\ACM@format\ACM@format@nr]{%
+ manuscript, acmsmall, acmlarge, acmtog, sigconf, siggraph,
+ sigplan, sigchi, sigchi-a, acmengage, acmcp}[manuscript]{}{%
+ \ClassError{\@classname}{The option format must be manuscript,
+ acmsmall, acmlarge, acmtog, sigconf, siggraph,
+ sigplan, sigchi or sigchi-a}}
+\def\@DeclareACMFormat#1{\DeclareOptionX{#1}{\setkeys{acmart.cls}{format=#1}}}
+\@DeclareACMFormat{manuscript}
+\@DeclareACMFormat{acmsmall}
+\@DeclareACMFormat{acmlarge}
+\@DeclareACMFormat{acmtog}
+\@DeclareACMFormat{sigconf}
+\@DeclareACMFormat{siggraph}
+\@DeclareACMFormat{sigplan}
+\@DeclareACMFormat{sigchi}
+\@DeclareACMFormat{sigchi-a}
+\@DeclareACMFormat{acmengage}
+\@DeclareACMFormat{acmcp}
+\ExecuteOptionsX{format}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@screen}
+% Whether we use screen mode
+% \begin{macrocode}
+\define@boolkey+{acmart.cls}[@ACM@]{screen}[true]{%
+ \if@ACM@screen
+ \PackageInfo{\@classname}{Using screen mode}%
+ \else
+ \PackageInfo{\@classname}{Not using screen mode}%
+ \fi}{\PackageError{\@classname}{The option screen can be either true or
+ false}}
+\ExecuteOptionsX{screen=false}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@urlbreakonhyphens}
+% \changes{1.60}{2019/04/22}{introduced macro}
+% \begin{macrocode}
+\define@boolkey+{acmart.cls}[@ACM@]{urlbreakonhyphens}[true]{%
+ \if@ACM@urlbreakonhyphens
+ \PackageInfo{\@classname}{Using breaking urls on hyphens}%
+ \else
+ \PackageInfo{\@classname}{Not breaking urls on hyphens}%
+ \fi}{\PackageError{\@classname}{The option urlbreakonhyphens can be either true or
+ false}}
+\ExecuteOptionsX{urlbreakonhyphens=true}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@acmthm}
+% \changes{v1.44}{2017/07/30}{Added macro}
+% \changes{v1.46}{2017/08/29}{Modified description}
+% Whether we define theorem-like environments.
+% \begin{macrocode}
+\define@boolkey+{acmart.cls}[@ACM@]{acmthm}[true]{%
+ \if@ACM@acmthm
+ \PackageInfo{\@classname}{Requiring acmthm}%
+ \else
+ \PackageInfo{\@classname}{Suppressing acmthm}%
+ \fi}{\PackageError{\@classname}{The option acmthm can be either true or
+ false}}
+\ExecuteOptionsX{acmthm=true}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\if@ACM@review}
+% \changes{v1.48}{2017/09/09}{Review mode now switches on folios}
+% Whether we use review mode
+% \begin{macrocode}
+\define@boolkey+{acmart.cls}[@ACM@]{review}[true]{%
+ \if@ACM@review
+ \PackageInfo{\@classname}{Using review mode}%
+ \AtBeginDocument{\@ACM@printfoliostrue}%
+ \else
+ \PackageInfo{\@classname}{Not using review mode}%
+ \fi}{\PackageError{\@classname}{The option review can be either true or
+ false}}
+\ExecuteOptionsX{review=false}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@authorversion}
+% \changes{v1.03}{2016/04/22}{Added macro}
+% Whether we use author's-version mode
+% \begin{macrocode}
+\define@boolkey+{acmart.cls}[@ACM@]{authorversion}[true]{%
+ \if@ACM@authorversion
+ \PackageInfo{\@classname}{Using authorversion mode}%
+ \else
+ \PackageInfo{\@classname}{Not using authorversion mode}%
+ \fi}{\PackageError{\@classname}{The option authorversion can be either true or
+ false}}
+\ExecuteOptionsX{authorversion=false}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@nonacm}
+% \changes{v1.54}{2018/05/08}{Added macro}
+% Special option for non-ACM publications
+% using the ACM typesetting options.
+% \begin{macrocode}
+\define@boolkey+{acmart.cls}[@ACM@]{nonacm}[true]{%
+ \if@ACM@nonacm
+ \PackageInfo{\@classname}{Using nonacm mode}%
+ \AtBeginDocument{\@ACM@printacmreffalse}%
+ % in 'nonacm' mode we disable the "ACM Reference Format"
+ % printing by default, but this can be re-enabled by the
+ % user using \settopmatter{printacmref=true}
+ \else
+ \PackageInfo{\@classname}{Not using nonacm mode}%
+ \fi}{\PackageError{\@classname}{The option nonacm can be either true or
+ false}}
+\ExecuteOptionsX{nonacm=false}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@balance}
+% \changes{v1.57}{2018/12/16}{Added macro}
+% Whether to balance the last page
+% \begin{macrocode}
+\define@boolkey+{acmart.cls}[@ACM@]{balance}[true]{}{%
+ \PackageError{\@classname}{The option balance can be either true or
+ false}}
+\ExecuteOptionsX{balance}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\if@ACM@pbalance}
+% \changes{v1.76}{2021/03/16}{Added macro}
+% Whether to balance the last page
+% \begin{macrocode}
+\define@boolkey+{acmart.cls}[@ACM@]{pbalance}[true]{}{%
+ \PackageError{\@classname}{The option pbalance can be either true or
+ false}}
+\ExecuteOptionsX{pbalance=false}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\if@ACM@natbib@override}
+% \changes{v1.12}{2016/05/30}{Added macro}
+% \changes{v1.33}{2017/03/28}{Deleted macro}
+% This macro is no longer used.
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@natbib}
+% Whether we use |natbib| mode
+% \begin{macrocode}
+\define@boolkey+{acmart.cls}[@ACM@]{natbib}[true]{%
+ \if@ACM@natbib
+ \PackageInfo{\@classname}{Explicitly selecting natbib mode}%
+ \else
+ \PackageInfo{\@classname}{Explicitly deselecting natbib mode}%
+ \fi}{\PackageError{\@classname}{The option natbib can be either true or
+ false}}
+\ExecuteOptionsX{natbib=true}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\if@ACM@anonymous}
+% Whether we use anonymous mode
+% \begin{macrocode}
+\define@boolkey+{acmart.cls}[@ACM@]{anonymous}[true]{%
+ \if@ACM@anonymous
+ \PackageInfo{\@classname}{Using anonymous mode}%
+ \else
+ \PackageInfo{\@classname}{Not using anonymous mode}%
+ \fi}{\PackageError{\@classname}{The option anonymous can be either true or
+ false}}
+\ExecuteOptionsX{anonymous=false}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\if@ACM@timestamp}
+% \changes{v1.33}{2017/03/10}{Added macro (Michael D.~Adams)}
+% Whether we use timestamp mode
+% \begin{macrocode}
+\define@boolkey+{acmart.cls}[@ACM@]{timestamp}[true]{%
+ \if@ACM@timestamp
+ \PackageInfo{\@classname}{Using timestamp mode}%
+ \else
+ \PackageInfo{\@classname}{Not using timestamp mode}%
+ \fi}{\PackageError{\@classname}{The option timestamp can be either true or
+ false}}
+\ExecuteOptionsX{timestamp=false}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\if@ACM@authordraft}
+% \changes{v1.33}{2017/03/28}{Added macro}
+% \changes{v1.36}{2017/05/13}{Corrected typo, thanks to bargteil}
+% Whether we use author-draft mode
+% \begin{macrocode}
+\define@boolkey+{acmart.cls}[@ACM@]{authordraft}[true]{%
+ \if@ACM@authordraft
+ \PackageInfo{\@classname}{Using authordraft mode}%
+ \@ACM@timestamptrue
+ \@ACM@reviewtrue
+ \else
+ \PackageInfo{\@classname}{Not using authordraft mode}%
+ \fi}{\PackageError{\@classname}{The option authordraft can be either true or
+ false}}
+\ExecuteOptionsX{authordraft=false}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\ACM@fontsize}
+% The font size to pass to the base class
+% \begin{macrocode}
+% \changes{v1.87}{2022/08/27}{Added fontsize 8pt}
+\def\ACM@fontsize{}
+\DeclareOptionX{8pt}{\edef\ACM@fontsize{\CurrentOption}}
+\DeclareOptionX{9pt}{\edef\ACM@fontsize{\CurrentOption}}
+\DeclareOptionX{10pt}{\edef\ACM@fontsize{\CurrentOption}}
+\DeclareOptionX{11pt}{\edef\ACM@fontsize{\CurrentOption}}
+\DeclareOptionX{12pt}{\edef\ACM@fontsize{\CurrentOption}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\ACM@languages}
+% \changes{v1.83}{2022/02/19}{Introduced macro}
+% The languages of the document
+% \begin{macrocode}
+\def\ACM@languages{}
+\DeclareOptionX{language}{%
+ \ifx\ACM@languages\@empty
+ \gdef\ACM@languages{english}\fi
+ \g@addto@macro\ACM@languages{, #1}}
+% \end{macrocode}
+%
+%
+% \end{macro}
+%
+% \changes{v1.01}{2016/04/18}{Explicitly put draft option
+% (closes \url{https://github.com/borisveytsman/acmart/issues/4})}
+%
+% \begin{macrocode}
+\DeclareOptionX{draft}{\PassOptionsToClass{\CurrentOption}{amsart}}
+\DeclareOptionX{*}{\PassOptionsToClass{\CurrentOption}{amsart}}
+\ProcessOptionsX
+\ClassInfo{\@classname}{Using format \ACM@format, number \ACM@format@nr}
+% \end{macrocode}
+%
+%
+%
+%\subsection{Setting switches}
+%\label{sec:switches}
+%
+% \begin{macro}{\if@ACM@manuscript}
+% Whether we use manuscript mode
+% \begin{macrocode}
+\newif\if@ACM@manuscript
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@journal}
+% There are two kinds of publications: journals and books
+% \begin{macrocode}
+\newif\if@ACM@journal
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\if@ACM@journal@bibstrip}
+% \changes{v1.59}{2019/04/20}{Introduced macro}
+% Sometimes ACM wants a journal-like publication to have conference
+% information in the bibstrip and vice versa, so we have an additional
+% switch.
+% \begin{macrocode}
+\newif\if@ACM@journal@bibstrip
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@journal@bibstrip@or@tog}
+% \changes{v2.03}{2024/02/04}{Introduced macro}
+% ACM TOG sometimes uses journal-like bibstrip even for conference
+% proceedings, so we need to set it separately
+% \begin{macrocode}
+\newif\if@ACM@journal@bibstrip@or@tog
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\if@ACM@sigchiamode}
+% The formatting of SIGCHI extended abstracts is quite unusual. We have a
+% special switch for them.
+% \begin{macrocode}
+\newif\if@ACM@sigchiamode
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@engage}
+% \changes{v1.85}{2022/05/05}{Introduced macro}
+% ACM Engage course materials have special formatting
+% \begin{macrocode}
+\newif\if@ACM@engage
+\@ACM@engagefalse
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@acmcp}
+% \changes{v1.87}{2022/08/12}{Introduced macro}
+% ACM cover page formatting
+% \begin{macrocode}
+\newif\if@ACM@acmcp
+\@ACM@acmcpfalse
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%
+% Setting up switches
+% \begin{macrocode}
+\ifnum\ACM@format@nr=5\relax % siggraph
+\ClassWarning{\@classname}{%
+ The format siggraph is now obsolete.\MessageBreak
+ I am switching to sigconf.}
+ \setkeys{acmart.cls}{format=sigconf}
+\fi
+\ifnum\ACM@format@nr=7\relax % sigchi
+\ClassWarning{\@classname}{%
+ The format sigchi is now obsolete.\MessageBreak
+ I am switching to sigconf.}
+ \setkeys{acmart.cls}{format=sigconf}
+\fi
+\ifnum\ACM@format@nr=8\relax % sigchi
+\ClassWarning{\@classname}{%
+ ACM SIGCHI has retired the SIGCHI-A template\MessageBreak
+ effective immediately. ACM is keeping this template\MessageBreak
+ option available to authors who are working on legacy\MessageBreak
+ documents only. ACM will not, under any circumstances,\MessageBreak
+ accept documents in this format for publication and\MessageBreak
+ will not offer technical support to the authors who use\MessageBreak
+ this template.\MessageBreak
+ ACM SIGCHI is directing Conference leaders and\MessageBreak
+ authors to publish their articles using the SIGCONF\MessageBreak
+ template call.}
+\fi
+\ifnum\ACM@format@nr=0\relax
+ \@ACM@manuscripttrue
+\else
+ \@ACM@manuscriptfalse
+\fi
+\@ACM@sigchiamodefalse
+\ifcase\ACM@format@nr
+\relax % manuscript
+ \@ACM@journaltrue
+\or % acmsmall
+ \@ACM@journaltrue
+\or % acmlarge
+ \@ACM@journaltrue
+\or % acmtog
+ \@ACM@journaltrue
+ \@ACM@journal@bibstrip@or@togtrue
+\or % sigconf
+ \@ACM@journalfalse
+\or % siggraph
+ \@ACM@journalfalse
+ \or % sigplan
+ \@ACM@journalfalse
+ \or % sigchi
+ \@ACM@journalfalse
+\or % sigchi-a
+ \@ACM@journalfalse
+ \@ACM@sigchiamodetrue
+\or % acmengage
+ \@ACM@journalfalse
+ \@ACM@engagetrue
+\or % acmcp
+ \@ACM@journaltrue
+ \@ACM@acmcptrue
+ \AtBeginDocument{\@ACM@printacmreffalse}%
+\fi
+\if@ACM@journal
+ \@ACM@journal@bibstriptrue
+ \@ACM@journal@bibstrip@or@togtrue
+\else
+ \@ACM@journal@bibstripfalse
+\fi
+% \end{macrocode}
+%
+%
+%
+%\subsection{Loading the base class and package}
+%\label{sec:loading}
+%
+% \changes{v1.13}{2016/06/06}{Increased font size for ACM Large}
+% \changes{v1.38}{2017/05/13}{Increase default font size for SIGPLAN}
+% \changes{v1.87}{2022/08/27}{Set font sizes for |acmengage| and |acmcp|}
+%
+%
+% At this point we either have \cs{ACM@fontsize} or use defaults
+% \begin{macrocode}
+\ifx\ACM@fontsize\@empty
+ \ifcase\ACM@format@nr
+ \relax % manuscript
+ \def\ACM@fontsize{9pt}%
+ \or % acmsmall
+ \def\ACM@fontsize{10pt}%
+ \or % acmlarge
+ \def\ACM@fontsize{10pt}%
+ \or % acmtog
+ \def\ACM@fontsize{9pt}%
+ \or % sigconf
+ \def\ACM@fontsize{9pt}%
+ \or % siggraph
+ \def\ACM@fontsize{9pt}%
+ \or % sigplan
+ \def\ACM@fontsize{10pt}%
+ \or % sigchi
+ \def\ACM@fontsize{9pt}%
+ \or % sigchi-a
+ \def\ACM@fontsize{10pt}%
+ \or % acmengage
+ \def\ACM@fontsize{10pt}%
+ \or % acmcp
+ \def\ACM@fontsize{9pt}%
+ \fi
+\fi
+\ClassInfo{\@classname}{Using fontsize \ACM@fontsize}
+\LoadClass[\ACM@fontsize, reqno]{amsart}
+\RequirePackage{microtype}
+% \end{macrocode}
+%
+%
+% We need |etoolbox| for delayed code
+% \begin{macrocode}
+\RequirePackage{etoolbox}
+% \end{macrocode}
+%
+% Booktabs is now the default
+% \begin{macrocode}
+\RequirePackage{booktabs}
+% \end{macrocode}
+%
+%
+% We need |totpages| to calculate the number of pages and
+% |refcount| to use that number
+% \begin{macrocode}
+\RequirePackage{refcount}
+\RequirePackage{totpages}
+% \end{macrocode}
+%
+% The \cs{collect@body} macro in |amsmath| is defined using \cs{def}. We load
+% |environ| to access the \cs{long} version of this command
+% \begin{macrocode}
+\RequirePackage{environ}
+% \end{macrocode}
+%
+% We use |setspace| for double spacing
+% \begin{macrocode}
+\if@ACM@manuscript
+\RequirePackage{setspace}
+\onehalfspacing
+\fi
+% \end{macrocode}
+%
+% \changes{v1.40}{2017/06/05}{Added `textcase' package}
+% We need |textcase| for better upcasing
+% \begin{macrocode}
+\RequirePackage{textcase}
+% \end{macrocode}
+%
+%
+% \changes{v1.87}{2022/08/14}{Added `framed' package for acmcp}
+% \changes{v1.89}{2022/12/25}{Added `zref-savepos' package for acmcp}
+% \begin{macrocode}
+\if@ACM@acmcp
+\RequirePackage{framed}
+\RequirePackage{zref-savepos, zref-user}
+\fi
+% \end{macrocode}
+%
+%
+% \begin{macro}{\@ACM@acmcp@delta}
+% \changes{v1.89}{2022/12/25}{Added dimen}
+% We need to store the dimen to store the insert length of amcp box
+% \begin{macrocode}
+\newdimen\@ACM@acmcp@delta
+\@ACM@acmcp@delta=0pt\relax
+% \end{macrocode}
+% \end{macro}
+%
+%\subsection{Citations}
+% \changes{v1.19}{2016/07/28}{Include 'References' in PDF bookmarks
+% (Matthew Fluet)}
+% \changes{v1.14}{2016/06/09}{Patched \cs{citestyle}}
+% \changes{v1.55}{2016/08/012}{Typo corrected (Zack Weinberg)}
+% We patch \cs{setcitestyle} to allow, for example,
+% \cs{setcitestyle}|{sort}| and \cs{setcitestyle}|{nosort}|. We patch
+% \cs{citestyle} to warn about undefined citation styles.
+% \begin{macrocode}
+\if@ACM@natbib
+ \RequirePackage{natbib}
+ \renewcommand{\bibsection}{%
+ \section*{\refname}%
+ \phantomsection\addcontentsline{toc}{section}{\refname}%
+ }
+ \renewcommand{\bibfont}{\bibliofont}
+ \renewcommand\setcitestyle[1]{
+ \@for\@tempa:=#1\do
+ {\def\@tempb{round}\ifx\@tempa\@tempb
+ \renewcommand\NAT@open{(}\renewcommand\NAT@close{)}\fi
+ \def\@tempb{square}\ifx\@tempa\@tempb
+ \renewcommand\NAT@open{[}\renewcommand\NAT@close{]}\fi
+ \def\@tempb{angle}\ifx\@tempa\@tempb
+ \renewcommand\NAT@open{$<$}\renewcommand\NAT@close{$>$}\fi
+ \def\@tempb{curly}\ifx\@tempa\@tempb
+ \renewcommand\NAT@open{\{}\renewcommand\NAT@close{\}}\fi
+ \def\@tempb{semicolon}\ifx\@tempa\@tempb
+ \renewcommand\NAT@sep{;}\fi
+ \def\@tempb{colon}\ifx\@tempa\@tempb
+ \renewcommand\NAT@sep{;}\fi
+ \def\@tempb{comma}\ifx\@tempa\@tempb
+ \renewcommand\NAT@sep{,}\fi
+ \def\@tempb{authoryear}\ifx\@tempa\@tempb
+ \NAT@numbersfalse\fi
+ \def\@tempb{numbers}\ifx\@tempa\@tempb
+ \NAT@numberstrue\NAT@superfalse\fi
+ \def\@tempb{super}\ifx\@tempa\@tempb
+ \NAT@numberstrue\NAT@supertrue\fi
+ \def\@tempb{nobibstyle}\ifx\@tempa\@tempb
+ \let\bibstyle=\@gobble\fi
+ \def\@tempb{bibstyle}\ifx\@tempa\@tempb
+ \let\bibstyle=\@citestyle\fi
+ \def\@tempb{sort}\ifx\@tempa\@tempb
+ \def\NAT@sort{\@ne}\fi
+ \def\@tempb{nosort}\ifx\@tempa\@tempb
+ \def\NAT@sort{\z@}\fi
+ \def\@tempb{compress}\ifx\@tempa\@tempb
+ \def\NAT@cmprs{\@ne}\fi
+ \def\@tempb{nocompress}\ifx\@tempa\@tempb
+ \def\NAT@cmprs{\z@}\fi
+ \def\@tempb{sort&compress}\ifx\@tempa\@tempb
+ \def\NAT@sort{\@ne}\def\NAT@cmprs{\@ne}\fi
+ \def\@tempb{mcite}\ifx\@tempa\@tempb
+ \let\NAT@merge\@ne\fi
+ \def\@tempb{merge}\ifx\@tempa\@tempb
+ \@ifnum{\NAT@merge<\tw@}{\let\NAT@merge\tw@}{}\fi
+ \def\@tempb{elide}\ifx\@tempa\@tempb
+ \@ifnum{\NAT@merge<\thr@@}{\let\NAT@merge\thr@@}{}\fi
+ \def\@tempb{longnamesfirst}\ifx\@tempa\@tempb
+ \NAT@longnamestrue\fi
+ \def\@tempb{nonamebreak}\ifx\@tempa\@tempb
+ \def\NAT@nmfmt#1{\mbox{\NAT@up#1}}\fi
+ \expandafter\NAT@find@eq\@tempa=\relax\@nil
+ \if\@tempc\relax\else
+ \expandafter\NAT@rem@eq\@tempc
+ \def\@tempb{open}\ifx\@tempa\@tempb
+ \xdef\NAT@open{\@tempc}\fi
+ \def\@tempb{close}\ifx\@tempa\@tempb
+ \xdef\NAT@close{\@tempc}\fi
+ \def\@tempb{aysep}\ifx\@tempa\@tempb
+ \xdef\NAT@aysep{\@tempc}\fi
+ \def\@tempb{yysep}\ifx\@tempa\@tempb
+ \xdef\NAT@yrsep{\@tempc}\fi
+ \def\@tempb{notesep}\ifx\@tempa\@tempb
+ \xdef\NAT@cmt{\@tempc}\fi
+ \def\@tempb{citesep}\ifx\@tempa\@tempb
+ \xdef\NAT@sep{\@tempc}\fi
+ \fi
+ }%
+ \NAT@@setcites
+ }
+ \renewcommand\citestyle[1]{%
+ \ifcsname bibstyle@#1\endcsname%
+ \csname bibstyle@#1\endcsname\let\bibstyle\@gobble%
+ \else%
+ \@latex@error{Undefined `#1' citestyle}%
+ \fi
+ }%
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\bibstyle@acmauthoryear}
+% \changes{v1.13}{2016/06/06}{Added macro}
+% \changes{v1.14}{2016/06/09}{Moved def of \cs{bibstyle@acmauthoryear}
+% before use}
+% \changes{v1.35}{2017/04/13}{Square brackets for author-year style}
+% The default author-year format:
+% \begin{macrocode}
+\newcommand{\bibstyle@acmauthoryear}{%
+ \setcitestyle{%
+ authoryear,%
+ open={[},close={]},citesep={;},%
+ aysep={},yysep={,},%
+ notesep={, }}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\bibstyle@acmnumeric}
+% \changes{v1.13}{2016/06/06}{Added macro}
+% \changes{v1.14}{2016/06/09}{Moved def of \cs{bibstyle@numeric}
+% before use}
+% The default numeric format:
+% \begin{macrocode}
+\newcommand{\bibstyle@acmnumeric}{%
+ \setcitestyle{%
+ numbers,sort&compress,%
+ open={[},close={]},citesep={,},%
+ notesep={, }}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \changes{v1.28}{2017/01/07}{Corrected option natbib behavior}
+% The default is numeric:
+% \begin{macrocode}
+\if@ACM@natbib
+\citestyle{acmnumeric}
+\fi
+% \end{macrocode}
+%
+%
+%\subsection{Internationalization}
+%\label{sec:i13n}
+%
+%
+%
+% \changes{v1.83}{2022/02/19}{Use babel for multilanguage papers}
+% \begin{macrocode}
+\if@ACM@journal
+ \renewcommand\keywordsname{Additional Key Words and Phrases}%
+\else
+ \renewcommand\keywordsname{Keywords}%
+\fi
+\if@ACM@engage
+ \renewcommand\abstractname{Synopsis}%
+\fi
+\ifx\ACM@languages\@empty
+\else
+ \RequirePackage[\ACM@languages]{babel}%
+ \addto\captionsenglish{%
+ \if@ACM@journal
+ \renewcommand\keywordsname{Additional Key Words and Phrases}%
+ \else
+ \renewcommand\keywordsname{Keywords}%
+ \fi
+ \renewcommand\acksname{Acknowledgements}%
+ \if@ACM@engage
+ \renewcommand\abstractname{Synopsis}%
+ \fi
+ }%
+ \addto\captionsfrench{%
+ \if@ACM@journal
+ \renewcommand\keywordsname{Mots Clés et Phrases Supplémentaires}%
+ \else
+ \renewcommand\keywordsname{Mots clés}%
+ \fi
+ \renewcommand\acksname{Remerciements}%
+ }%
+ \addto\captionsgerman{%
+ \if@ACM@journal
+ \renewcommand\keywordsname{Zusätzliche Schlagwörter und Phrasen}%
+ \else
+ \renewcommand\keywordsname{Schlagwörter}%
+ \fi
+ \renewcommand\acksname{Danksagungen}%
+ }%
+ \addto\captionsspanish{%
+ \if@ACM@journal
+ \renewcommand\keywordsname{Palabras y Frases Claves Adicionales}%
+ \else
+ \renewcommand\keywordsname{Palabras claves}%
+ \fi
+ \renewcommand\acksname{Expresiones de gratitud}%
+ }%
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\ACM@lang@check}
+% \changes{v1.83}{2022/02/20}{Added macro}
+% Some commands should not be used if the document is monlingual
+% \begin{macrocode}
+\newcommand\ACM@lang@check[1]{%
+ \ifx\ACM@languages\@empty\relax
+ \ClassError{\@classname}{%
+ Command \string#1 \MessageBreak is used in monlingual document}{%
+ You used a command (\string#1) \MessageBreak
+ that does not have a meaning \MessageBreak
+ unless are languages are defined. \MessageBreak
+ Please choose the languages in \string\documentclass
+ \MessageBreak
+ (e.g. \string\documentclass[languages={french, english}]{acmart}),
+ \MessageBreak
+ or delete the command.}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@translatedtitle}
+% \changes{v1.83}{2022/02/20}{Added macro}
+% \begin{macrocode}
+\def\@translatedtitle{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\translatedtitle}
+% \changes{v1.83}{2022/02/20}{Added macro}
+% The title of the paper in a different language
+% \begin{macrocode}
+\newcommand\translatedtitle[2]{\ACM@lang@check{\translatedtitle}%
+\g@addto@macro\@translatedtitle{\par\foreignlanguage{#1}{#2}}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@translatedsubtitle}
+% \changes{v1.83}{2022/02/20}{Added macro}
+% \begin{macrocode}
+\def\@translatedsubtitle{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\translatedsubtitle}
+% \changes{v1.83}{2022/02/20}{Added macro}
+% The subtitle of the paper in a different language
+% \begin{macrocode}
+\newcommand\translatedsubtitle[2]{\ACM@lang@check{\translatedsubtitle}%
+\g@addto@macro\@translatedsubtitle{\par\foreignlanguage{#1}{#2}}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@translatedkeywords}
+% \changes{v1.83}{2022/02/20}{Added macro}
+% \begin{macrocode}
+\def\@translatedkeywords{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\translatedkeywords}
+% \changes{v1.83}{2022/02/20}{Added macro}
+% Add keywords to the paper in the language specified
+% \begin{macrocode}
+\newcommand\translatedkeywords[2]{\ACM@lang@check{\translatedkeywords}%
+\g@addto@macro\@translatedkeywords{\@mktranslatedkeywords{#1}{#2}}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@translatedabstracts}
+% \changes{v1.83}{2022/02/20}{Added macro}
+% The container for translated abstracts.
+% \begin{macrocode}
+\def\@translatedabstracts{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{translatedabstract}
+% \changes{v1.83}{2022/02/20}{Added macro}
+% We save translated abstracts into \cs{@translatedabstracts}
+% \begin{macrocode}
+\newenvironment{translatedabstract}[1]{\Collect@Body
+ \@savetranslatedabstract\@mktranslatedabstract{#1}}{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@savetranslatedabstract}
+% And saving the abstract
+% \begin{macrocode}
+\long\def\@savetranslatedabstract#1{\if@ACM@maketitle@typeset
+ \ClassError{\@classname}{Abstract must be defined before maketitle
+ command. Please move it!}\fi
+ \ACM@lang@check{translatedabstract}%
+ \g@addto@macro\@translatedabstracts{\bgroup#1\egroup}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%\subsection{Sectioning}
+%\label{sec:sectioning}
+%
+%
+%
+% \begin{macro}{\@startsection}
+% \changes{v1.31}{2017/03/04}{Added \cs{tochangmeasure}}
+% Before we call |hyperref|, we redefine \cs{startsection} commands to
+% their \LaTeX\ defaults since the |amsart| ones are too AMS-specific.
+% We need to do this early since we want |hyperref| to have a chance
+% to redefine them again:
+% \begin{macrocode}
+\def\@startsection#1#2#3#4#5#6{%
+ \if@noskipsec \leavevmode \fi
+ \par
+ \@tempskipa #4\relax
+ \@afterindenttrue
+ \ifdim \@tempskipa <\z@
+ \@tempskipa -\@tempskipa \@afterindentfalse
+ \fi
+ \if@nobreak
+ \everypar{}%
+ \else
+ \addpenalty\@secpenalty\addvspace\@tempskipa
+ \fi
+ \@ifstar
+ {\@ssect{#3}{#4}{#5}{#6}}%
+ {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}}
+\def\@sect#1#2#3#4#5#6[#7]#8{%
+ \edef\@toclevel{\ifnum#2=\@m 0\else\number#2\fi}%
+ \ifnum #2>\c@secnumdepth
+ \let\@svsec\@empty
+ \else
+ \refstepcounter{#1}%
+ \protected@edef\@svsec{\@seccntformat{#1}\relax}%
+ \fi
+ \@tempskipa #5\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup
+ #6{%
+ \@hangfrom{\hskip #3\relax\@svsec}%
+ \interlinepenalty \@M #8\@@par}%
+ \endgroup
+ \csname #1mark\endcsname{#7}%
+ \ifnum #2>\c@secnumdepth \else
+ \@tochangmeasure{\csname the#1\endcsname}%
+ \fi
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\csname the#1\endcsname}%
+ \fi
+ #7}%
+ \else
+ \def\@svsechd{%
+ #6{\hskip #3\relax
+ \@svsec #8}%
+ \csname #1mark\endcsname{#7}%
+ \ifnum #2>\c@secnumdepth \else
+ \@tochangmeasure{\csname the#1\endcsname\space}%
+ \fi
+ \addcontentsline{toc}{#1}{%
+ \ifnum #2>\c@secnumdepth \else
+ \protect\numberline{\csname the#1\endcsname}%
+ \fi
+ #7}}%
+ \fi
+ \@xsect{#5}}
+\def\@xsect#1{%
+ \@tempskipa #1\relax
+ \ifdim \@tempskipa>\z@
+ \par \nobreak
+ \vskip \@tempskipa
+ \@afterheading
+ \else
+ \@nobreakfalse
+ \global\@noskipsectrue
+ \everypar{%
+ \if@noskipsec
+ \global\@noskipsecfalse
+ {\setbox\z@\lastbox}%
+ \clubpenalty\@M
+ \begingroup \@svsechd \endgroup
+ \unskip
+ \@tempskipa #1\relax
+ \hskip -\@tempskipa
+ \else
+ \clubpenalty \@clubpenalty
+ \everypar{}%
+ \fi}%
+ \fi
+ \ignorespaces}
+\def\@seccntformat#1{\csname the#1\endcsname\quad}
+\def\@ssect#1#2#3#4#5{%
+ \@tempskipa #3\relax
+ \ifdim \@tempskipa>\z@
+ \begingroup
+ #4{%
+ \@hangfrom{\hskip #1}%
+ \interlinepenalty \@M #5\@@par}%
+ \endgroup
+ \else
+ \def\@svsechd{#4{\hskip #1\relax #5}}%
+ \fi
+ \@xsect{#3}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@startsection}
+% \changes{v1.31}{2017/03/04}{Redefined macro}
+% \changes{v1.43}{2017/07/09}{Added \cs{makeatletter}}
+% The |amsart| package redefines \cs{startsection}. Here we redefine
+% it again to make the table of contents work.
+% \begin{macrocode}
+\def\@starttoc#1#2{\begingroup\makeatletter
+ \setTrue{#1}%
+ \par\removelastskip\vskip\z@skip
+ \@startsection{section}\@M\z@{\linespacing\@plus\linespacing}%
+ {.5\linespacing}{\centering\contentsnamefont}{#2}%
+ \@input{\jobname.#1}%
+ \if@filesw
+ \@xp\newwrite\csname tf@#1\endcsname
+ \immediate\@xp\openout\csname tf@#1\endcsname \jobname.#1\relax
+ \fi
+ \global\@nobreakfalse \endgroup
+ \addvspace{32\p@\@plus14\p@}%
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\l@subsection}
+% \changes{v1.40}{2017/05/27}{Redefined macro}
+% Section spacing is more generous than for |amsart|
+% \begin{macrocode}
+\def\l@section{\@tocline{1}{0pt}{1pc}{2pc}{}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\l@subsection}
+% \changes{v1.31}{2017/03/04}{Redefined macro}
+% The spacing in |amsart| is too large
+% \begin{macrocode}
+\def\l@subsection{\@tocline{2}{0pt}{1pc}{3pc}{}}
+% \end{macrocode}
+%
+% \end{macro}
+% \begin{macro}{\l@subsubsection}
+% \changes{v1.31}{2017/03/04}{Redefined macro}
+% \changes{v1.71}{2020/04/30}{Bug fixed (thanks to Andrew Black)}
+% The spacing in |amsart| is too large
+% \begin{macrocode}
+\def\l@subsubsection{\@tocline{3}{0pt}{1pc}{5pc}{}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% We need to define foonote-related stuff before the call to hyperref
+% (Ross Moore)
+% \begin{macro}{\@makefntext}
+% We do not use indentation for footnotes
+% \begin{macrocode}
+\def\@makefntext{\noindent\@makefnmark}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@footnotetext}
+% In |sigchi-a| mode our footnotes are in the margin!
+% \begin{macrocode}
+\if@ACM@sigchiamode
+\long\def\@footnotetext#1{\marginpar{%
+ \reset@font\small
+ \interlinepenalty\interfootnotelinepenalty
+ \protected@edef\@currentlabel{%
+ \csname p@footnote\endcsname\@thefnmark
+ }%
+ \color@begingroup
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}%
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@mpfootnotetext}
+% \changes{v1.13}{2016/06/06}{Made minipage footnotes centered}
+% We want the footnotes in minipages centered:
+% \begin{macrocode}
+\long\def\@mpfootnotetext#1{%
+ \global\setbox\@mpfootins\vbox{%
+ \unvbox\@mpfootins
+ \reset@font\footnotesize
+ \hsize\columnwidth
+ \@parboxrestore
+ \protected@edef\@currentlabel
+ {\csname p@mpfootnote\endcsname\@thefnmark}%
+ \color@begingroup\centering
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
+ \color@endgroup}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@makefnmark}
+% \changes{v1.17}{2016/067/09}{Redefined}
+% AMS classes use a buggy definition of \cs{makefnmark}. We revert
+% to the standard one.
+% \begin{macrocode}
+\def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%\subsection{Hyperxmp and hyperref}
+%\label{sec:hyper}
+%
+%
+%
+%
+%
+% Adding |hyperref|
+% \changes{v1.28}{2017/01/07}{Got rid of warnings in pdf keywords}
+% \changes{v1.46}{2017/08/25}{Delayed hypersetup since journal options
+% may change screen mode}
+% \changes{v1.55}{2018/10/20}{Now we use purple color for links}
+% \changes{v1.58}{2019/26/01}{Suppressed \cs{addtocounter} in pdf
+% subject}
+% \changes{1.85}{2022/05/08}{Added: acmengage}
+% \changes{v1.76}{2021/02/21}{Moved hyperxmp before hyperref, see
+% \url{https://github.com/borisveytsman/acmart/issues/425}}
+% \changes{1.92}{2023/10/14}{Moved hyperxmp again due to kernel update}
+% \changes{2.04}{2024/03/17}{Explicitly load ifdraft since hyperxmp
+% tries to load it inside a group}
+% \changes{2.04}{2024/03/31}{Deleted loading ifdraft due to the new
+% release of hyperxmp}
+% \begin{macrocode}
+\let\@footnotemark@nolink\@footnotemark
+\let\@footnotetext@nolink\@footnotetext
+\RequirePackage[bookmarksnumbered,unicode]{hyperref}
+\RequirePackage{hyperxmp}
+\pdfstringdefDisableCommands{%
+ \def\addtocounter#1#2{}%
+ \def\unskip{}%
+ \def\textbullet{- }%
+ \def\textrightarrow{ -> }%
+ \def\footnotemark{}%
+}
+\urlstyle{rm}
+\ifcase\ACM@format@nr
+\relax % manuscript
+\or % acmsmall
+\or % acmlarge
+\or % acmtog
+\or % sigconf
+\or % siggraph
+\or % sigplan
+ \urlstyle{sf}
+\or % sigchi
+\or % sigchi-a
+ \urlstyle{sf}
+\or % acmengage
+\or % acmcp
+\fi
+\AtEndPreamble{%
+ \if@ACM@urlbreakonhyphens
+ \def\do@url@hyp{\do\-}%
+ \fi
+ \if@ACM@screen
+ \hypersetup{colorlinks,
+ linkcolor=ACMPurple,
+ citecolor=ACMPurple,
+ urlcolor=ACMDarkBlue,
+ filecolor=ACMDarkBlue}
+ \else
+ \hypersetup{hidelinks}
+ \fi
+ \hypersetup{pdflang={en},
+ pdfdisplaydoctitle}}
+% \end{macrocode}
+%
+%
+% Bibliography mangling.
+% \changes{v1.33}{2017/03/23}{Moved \cs{citename} definition for
+% non-natbib bibliography, so a package may redefine it}
+% \changes{v1.48}{2017/09/23}{\cs{citeyear} no longer behaves like
+% \cs{citeyearpar}}
+% \begin{macrocode}
+\if@ACM@natbib
+ \let\citeN\cite
+ \let\cite\citep
+ \let\citeANP\citeauthor
+ \let\citeNN\citeyearpar
+ \let\citeyearNP\citeyear
+ \let\citeNP\citealt
+ \DeclareRobustCommand\citeA
+ {\begingroup\NAT@swafalse
+ \let\NAT@ctype\@ne\NAT@partrue\NAT@fullfalse\NAT@open\NAT@citetp}%
+ \providecommand\newblock{}%
+\else
+ \AtBeginDocument{%
+ \let\shortcite\cite%
+ \providecommand\citename[1]{#1}}
+\fi
+\newcommand\shortcite[2][]{%
+ \ifNAT@numbers\cite[#1]{#2}\else\citeyearpar[#1]{#2}\fi}
+% \end{macrocode}
+%
+%
+% \begin{macro}{\bibliographystyle}
+% \changes{v1.13}{2016/06/06}{Redefined macro}
+% The |amsart| package redefines \cs{bibliographystyle} since it
+% prefers the AMS bibliography style. We turn it back to the
+% \LaTeX\ definition:
+% \begin{macrocode}
+\def\bibliographystyle#1{%
+ \ifx\@begindocumenthook\@undefined\else
+ \expandafter\AtBeginDocument
+ \fi
+ {\if@filesw
+ \immediate\write\@auxout{\string\bibstyle{#1}}%
+ \fi}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%\subsection{Other packages}
+%\label{sec:packages}
+%
+%
+%
+% Graphics and color.
+% \changes{1.48}{2017/10/22}{Added prologue option to xcolor}
+% \begin{macrocode}
+\RequirePackage{graphicx}
+\RequirePackage[prologue]{xcolor}
+% \end{macrocode}
+%
+% We define ACM colors according to~\cite{ACMIdentityStandards}:
+% \begin{macrocode}
+\definecolor[named]{ACMBlue}{cmyk}{1,0.1,0,0.1}
+\definecolor[named]{ACMYellow}{cmyk}{0,0.16,1,0}
+\definecolor[named]{ACMOrange}{cmyk}{0,0.42,1,0.01}
+\definecolor[named]{ACMRed}{cmyk}{0,0.90,0.86,0}
+\definecolor[named]{ACMLightBlue}{cmyk}{0.49,0.01,0,0}
+\definecolor[named]{ACMGreen}{cmyk}{0.20,0,1,0.19}
+\definecolor[named]{ACMPurple}{cmyk}{0.55,1,0,0.15}
+\definecolor[named]{ACMDarkBlue}{cmyk}{1,0.58,0,0.21}
+% \end{macrocode}
+%
+%
+% Author-draft mode or sigchi-a mode
+% \begin{macrocode}
+\if@ACM@authordraft
+ \RequirePackage{draftwatermark}
+ \SetWatermarkFontSize{0.5in}
+ \SetWatermarkColor[gray]{.9}
+ \SetWatermarkText{\parbox{12em}{\centering
+ Unpublished working draft.\\
+ Not for distribution.}}
+\else
+ \if@ACM@sigchiamode
+ \if@ACM@nonacm\else
+ \RequirePackage{draftwatermark}
+ \SetWatermarkFontSize{0.5in}
+ \SetWatermarkColor[gray]{.9}
+ \SetWatermarkText{\parbox{12em}{\centering
+ Legacy document. \\
+ Not for publication in an ACM venue}}
+ \fi
+ \fi
+\fi
+% \end{macrocode}
+%
+%
+%\subsection{Paper size and paragraphing}
+%\label{sec:paper}
+%
+% \changes{v1.17}{2016/07/07}{Slightly decreased margins for sigs}
+% \changes{v1.29}{2017/01/22}{Increased head to 13pt}
+% \changes{v1.40}{2017/07/15}{Added heightrounded to geometry}
+% \changes{v1.56}{2018/10/16}{Make two-column layouts flush (Philip Quinn)}
+% We use |geometry| for dimensions. Note that the present margins do not
+% depend on the font size option---we might need to change this.
+% See \url{https://github.com/borisveytsman/acmart/issues/5#issuecomment-272881329}.
+% \begin{macrocode}
+\RequirePackage{geometry}
+\ifcase\ACM@format@nr
+\relax % manuscript
+ \geometry{letterpaper,head=13pt,
+ marginparwidth=6pc,heightrounded}%
+\or % acmsmall
+ \geometry{twoside=true,
+ includeheadfoot, head=13pt, foot=2pc,
+ paperwidth=6.75in, paperheight=10in,
+ top=58pt, bottom=44pt, inner=46pt, outer=46pt,
+ marginparwidth=2pc,heightrounded
+ }%
+\or % acmlarge
+ \geometry{twoside=true, head=13pt, foot=2pc,
+ paperwidth=8.5in, paperheight=11in,
+ includeheadfoot,
+ top=78pt, bottom=114pt, inner=81pt, outer=81pt,
+ marginparwidth=4pc,heightrounded
+ }%
+\or % acmtog
+ \geometry{twoside=true, head=13pt, foot=2pc,
+ paperwidth=8.5in, paperheight=11in,
+ includeheadfoot, columnsep=24pt,
+ top=52pt, bottom=75pt, inner=52pt, outer=52pt,
+ marginparwidth=2pc,heightrounded
+ }%
+\or % sigconf
+ \geometry{twoside=true, head=13pt,
+ paperwidth=8.5in, paperheight=11in,
+ includeheadfoot, columnsep=2pc,
+ top=57pt, bottom=73pt, inner=54pt, outer=54pt,
+ marginparwidth=2pc,heightrounded
+ }%
+\or % siggraph
+ \geometry{twoside=true, head=13pt,
+ paperwidth=8.5in, paperheight=11in,
+ includeheadfoot, columnsep=2pc,
+ top=57pt, bottom=73pt, inner=54pt, outer=54pt,
+ marginparwidth=2pc,heightrounded
+ }%
+\or % sigplan
+ \geometry{twoside=true, head=13pt,
+ paperwidth=8.5in, paperheight=11in,
+ includeheadfoot=false, columnsep=2pc,
+ top=1in, bottom=1in, inner=0.75in, outer=0.75in,
+ marginparwidth=2pc,heightrounded
+ }%
+\or % sigchi
+ \geometry{twoside=true, head=13pt,
+ paperwidth=8.5in, paperheight=11in,
+ includeheadfoot, columnsep=2pc,
+ top=66pt, bottom=73pt, inner=54pt, outer=54pt,
+ marginparwidth=2pc,heightrounded
+ }%
+\or % sigchi-a
+ \geometry{twoside=false, head=13pt,
+ paperwidth=11in, paperheight=8.5in,
+ includeheadfoot, marginparsep=72pt,
+ marginparwidth=170pt, columnsep=20pt,
+ top=72pt, bottom=72pt, left=314pt, right=72pt
+ }%
+ \@mparswitchfalse
+ \reversemarginpar
+\or % acmengage
+ \geometry{twoside=true, head=13pt,
+ paperwidth=8.5in, paperheight=11in,
+ includeheadfoot, columnsep=2pc,
+ top=57pt, bottom=73pt, inner=54pt, outer=54pt,
+ marginparwidth=2pc,heightrounded
+ }%
+\or % acmcp
+ \geometry{twoside=true,
+ includeheadfoot, head=13pt, foot=2pc,
+ paperwidth=6.75in, paperheight=10in,
+ top=58pt, bottom=44pt, inner=46pt, outer=46pt,
+ marginparwidth=2pc,heightrounded
+ }%
+\fi
+% \end{macrocode}
+%
+%
+% \begin{macro}{\parindent}
+% \begin{macro}{\parskip}
+% \changes{1.85}{2022/05/08}{Added: acmengage}
+% Paragraphing
+% \begin{macrocode}
+\setlength\parindent{10\p@}
+\setlength\parskip{\z@}
+\ifcase\ACM@format@nr
+\relax % manuscript
+\or % acmsmall
+\or % acmlarge
+\or % acmtog
+ \setlength\parindent{9\p@}%
+\or % sigconf
+\or % siggraph
+\or % sigplan
+\or % sigchi
+\or % sigchi-a
+\or % acmengage
+\or % acmcp
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\normalparindent}
+% \changes{v1.37}{2017/05/13}{Set \cs{normalparindent} (Matthew Fluet)}%
+% The |amsart| package defines the \cs{normalparindent} length and
+% initializes it to 12pt (the value of \cs{parindent} in |amsart|). It
+% is later used to set the \cs{listparindent} length in the |quotation|
+% environment and the \cs{parindent} length in the \cs{@footnotetext}
+% command. We set \cs{normalparindent} to the value of \cs{parindent}
+% as selected by |acmart| for consistent paragraph indents.
+% \begin{macrocode}
+\setlength\normalparindent{\parindent}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Footnotes require some consideration. We have several layers of
+% footnotes: frontmatter footnotes, ``regular'' footnotes and the
+% special insert for the bibstrip. In the old ACM classes, the bibstrip
+% was a \cs{@float}. The problem with floats is that they tend to, well,
+% float---and we want the guarantee they stay.
+%
+% We use |manyfoot| for layered footnotes instead.
+%
+% \begin{macro}{\copyrightpermissionfootnoterule}
+% \changes{v1.12}{2016/05/30}{Added macro}
+% This is the footnote rule that separates the bibstrip from the rest of
+% the paper. It is a full width rule.
+% \begin{macrocode}
+\def\copyrightpermissionfootnoterule{\kern-3\p@
+ \hrule \@width \columnwidth \kern 2.6\p@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\RequirePackage{manyfoot}
+\SelectFootnoteRule[2]{copyrightpermission}
+\DeclareNewFootnote{authorsaddresses}
+\SelectFootnoteRule[2]{copyrightpermission}
+\DeclareNewFootnote{copyrightpermission}
+% \end{macrocode}
+%
+%
+% \begin{macro}{\footnoterule}
+% \changes{v1.12}{2016/05/30}{Made shorter}
+% Tschichold's rules:
+% \begin{macrocode}
+\def\footnoterule{\kern-3\p@
+ \hrule \@width 4pc \kern 2.6\p@}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\endminipage}
+% We do not use footnote rules in minipages
+% \begin{macrocode}
+\def\endminipage{%
+ \par
+ \unskip
+ \ifvoid\@mpfootins\else
+ \vskip\skip\@mpfootins
+ \normalcolor
+ \unvbox\@mpfootins
+ \fi
+ \@minipagefalse
+ \color@endgroup
+ \egroup
+ \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@textbottom}
+% \changes{v1.31}{2017/03/04}{Redefined}
+% Add some stretch according to David Carlisle's advice at
+% \url{http://tex.stackexchange.com/a/62318/5522}
+% \begin{macrocode}
+\def\@textbottom{\vskip \z@ \@plus 1pt}
+\let\@texttop\relax
+% \end{macrocode}
+%
+% \end{macro}
+%
+% In two-column layouts, force both columns to be the same height by inserting
+% extra internal vertical space to fill out the page.
+% \begin{macrocode}
+\ifcase\ACM@format@nr
+\relax % manuscript
+\or % acmsmall
+\or % acmlarge
+\or % acmtog
+ \flushbottom
+\or % sigconf
+ \flushbottom
+\or % siggraph
+ \flushbottom
+\or % sigplan
+ \flushbottom
+\or % sigchi
+ \flushbottom
+\or % sigchi-a
+\or % acmengage
+ \flushbottom
+\or % acmcp
+ \flushbottom
+\fi
+% \end{macrocode}
+%
+%\subsection{Fonts}
+%\label{sec:fonts}
+%
+% \changes{v1.12}{2016/05/30}{Added graceful behavior when libertine
+% fonts are absent}
+% \changes{v1.33}{2017/03/29}{Added cmap and glyphtounicode}
+% \changes{v1.40}{2017/05/27}{Added Ross Moore code for glyphtounicode}
+%
+% Somehow PDFTeX and XeTeX require different incantations to make a PDF
+% compliant with the current Acrobat bugs. Xpdf is much better.
+%
+% The code below is by Ross Moore.
+% \begin{macrocode}
+\ifPDFTeX
+\input{glyphtounicode}
+\pdfglyphtounicode{f_f}{FB00}
+\pdfglyphtounicode{f_f_i}{FB03}
+\pdfglyphtounicode{f_f_l}{FB04}
+\pdfglyphtounicode{f_i}{FB01}
+\pdfglyphtounicode{t_t}{0074 0074}
+\pdfglyphtounicode{f_t}{0066 0074}
+\pdfglyphtounicode{T_h}{0054 0068}
+\pdfgentounicode=1
+\RequirePackage{cmap}
+\fi
+% \end{macrocode}
+%
+%
+% \begin{macro}{\if@ACM@newfonts}
+% \changes{v1.12}{2016/05/30}{Added macro}%
+% Whether we load the new fonts
+% \begin{macrocode}
+\newif\if@ACM@newfonts
+\@ACM@newfontstrue
+\IfFileExists{libertine.sty}{}{\ClassWarning{\@classname}{You do not
+ have the libertine package installed. Please upgrade your
+ TeX}\@ACM@newfontsfalse}
+\IfFileExists{zi4.sty}{}{\ClassWarning{\@classname}{You do not
+ have the inconsolata (zi4.sty) package installed. Please upgrade your
+ TeX}\@ACM@newfontsfalse}
+\IfFileExists{newtxmath.sty}{}{\ClassWarning{\@classname}{You do not
+ have the newtxmath package installed. Please upgrade your
+ TeX}\@ACM@newfontsfalse}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \changes{v1.30}{2017/02/15}{Switched to T1: looks like libertine has
+% problems with \cs{l} in OT1}%
+% \changes{v1.33}{2017/03/12}{Switched to Type~1 fonts for libertine
+% even if OTF-capable engine is used (Kai Mindermann)}
+% \changes{v1.51}{2018/04/05}{XeTeX now uses OTF fonts (Joachim
+% Breitner)}
+% \changes{v1.54}{2018/07/16}{XeTeX now uses T1 encoding}
+% \changes{v1.56}{2018/11/11}{Looks like XeTeX requires explicit
+% monotype font declaration}
+% \changes{v1.74}{2020/10/25}{Changed the order of font loading}%
+% We use Libertine throughout.
+% \begin{macrocode}
+\if@ACM@newfonts
+ \RequirePackage[T1]{fontenc}
+ % Note that the order in which packages are loaded matters,
+ % and the correct order depends on the LaTeX engine used.
+ % See https://github.com/borisveytsman/acmart/issues/402
+ % and https://github.com/borisveytsman/acmart/issues/410
+ \ifxetex
+ \RequirePackage[libertine]{newtxmath}
+ \RequirePackage[tt=false]{libertine}
+ \setmonofont[StylisticSet=3]{inconsolata}
+ \else
+ \ifluatex
+ \RequirePackage[libertine]{newtxmath}
+ \RequirePackage[tt=false]{libertine}
+ \setmonofont[StylisticSet=3]{inconsolata}
+ \else
+ \RequirePackage[tt=false, type1=true]{libertine}
+ \RequirePackage[varqu]{zi4}
+ \RequirePackage[libertine]{newtxmath}
+ \fi
+ \fi
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\liningnums}
+% \changes{v1.46}{2017/08/28}{Workaround for compatibility with fontspec}
+% Libertine defines \cs{liningnums}, which makes |fontspec| unhappy.
+% While we do not use |fontspec|, some users do.
+% \begin{macrocode}
+\let\liningnums\@undefined
+\AtEndPreamble{%
+ \DeclareTextFontCommand{\liningnums}{\libertineLF}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% The SIGCHI extended abstracts are sans serif:
+% \begin{macrocode}
+\if@ACM@sigchiamode
+ \renewcommand{\familydefault}{\sfdefault}
+\fi
+% \end{macrocode}
+%
+%
+%
+%\subsection{Image descriptions}
+%\label{sec:description}
+%
+% \begin{macro}{\if@Description@present}
+% \changes{v1.56}{2018/11/11}{Added macro}
+% A local switch: whether there is a description in the given figure
+% \begin{macrocode}
+\newif\if@Description@present
+\@Description@presenttrue
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\if@undescribed@images}
+% \changes{v1.56}{2018/11/11}{Added macro}
+% A global switch whether some images were \emph{not} described
+% \begin{macrocode}
+\newif\if@undescribed@images
+\@undescribed@imagesfalse
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Description}
+% \changes{v1.56}{2018/11/11}{Added macro}
+% The Description macro right now just sets switches
+% \begin{macrocode}
+\newcommand\Description[2][]{\global\@Description@presenttrue\ignorespaces}
+% \end{macrocode}
+% \end{macro}
+%
+% The global warning
+% \begin{macrocode}
+\AtEndDocument{\if@undescribed@images
+ \ClassWarningNoLine{\@classname}{Some images may lack descriptions}\fi}
+% \end{macrocode}
+%
+% Hooks for figures and tables. We also patch |algorithm| and
+% |algorithm*| in case somebody uses them.
+% \changes{v1.66}{2019/11/23}{Patching algorithm and algorithm*
+% to prevent spurious space warnings}
+% \changes{v1.67}{2020/01/11}{Patching lstlisting and lstlisting*
+% to prevent spurious space warnings}
+% \changes{v1.73}{2020/08/23}{Patching minted and minted*
+% to prevent spurious space warnings}
+% \begin{macrocode}
+\AtBeginEnvironment{figure}{\@Description@presentfalse
+ \let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig}
+\AtBeginEnvironment{figure*}{\@Description@presentfalse
+ \let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig}
+\AtEndEnvironment{figure}{\if@Description@present\else
+ \global\@undescribed@imagestrue
+ \ClassWarning{\@classname}{A possible image without description}\fi}
+\AtEndEnvironment{figure*}{\if@Description@present\else
+ \global\@undescribed@imagestrue
+ \ClassWarning{\@classname}{A possible image without description}\fi}
+\AtBeginEnvironment{table}{\let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig}
+\AtBeginEnvironment{table*}{\let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig}
+\AtBeginEnvironment{algorithm}{\let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig}
+\AtBeginEnvironment{algorithm*}{\let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig}
+\AtBeginEnvironment{lstlisting}{\let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig}
+\AtBeginEnvironment{lstlisting*}{\let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig}
+\AtBeginEnvironment{minted}{\let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig}
+\AtBeginEnvironment{minted*}{\let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig}
+\AtBeginEnvironment{listing}{\let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig}
+\AtBeginEnvironment{listing*}{\let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig}
+
+% \end{macrocode}
+%
+%
+%\subsection{Floats}
+%\label{sec:floats}
+%
+% \changes{v1.55}{2018/10/20}{Table captions for SIGCHI now use the
+% same font size as figure captions (Luis Leiva)}
+% We use the |caption| package
+% \begin{macrocode}
+\RequirePackage{caption, float}
+\captionsetup[table]{position=top}
+\if@ACM@journal
+ \captionsetup{labelfont={sf, small},
+ textfont={sf, small}, margin=\z@}
+ \captionsetup[figure]{name={Fig.}}
+\else
+ \captionsetup{labelfont={bf},
+ textfont={bf}, labelsep=colon, margin=\z@}
+ \ifcase\ACM@format@nr
+ \relax % manuscript
+ \or % acmsmall
+ \or % acmlarge
+ \or % acmtog
+ \or % sigconf
+ \or % siggraph
+ \captionsetup{textfont={it}}
+ \or % sigplan
+ \captionsetup{labelfont={bf},
+ textfont={normalfont}, labelsep=period, margin=\z@}
+ \or % sigchi
+ \captionsetup[figure]{labelfont={bf, small},
+ textfont={bf, small}}
+ \captionsetup[table]{labelfont={bf, small},
+ textfont={bf, small}}
+ \or % sigchi-a
+ \captionsetup[figure]{labelfont={bf, small},
+ textfont={bf, small}}
+ \captionsetup[table]{labelfont={bf, small},
+ textfont={bf, small}}
+ \or % acmengage
+ \or % acmcp
+ \fi
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{sidebar}
+% The |sidebar| environment:
+% \begin{macrocode}
+\newfloat{sidebar}{}{sbar}
+\floatname{sidebar}{Sidebar}
+\renewenvironment{sidebar}{\Collect@Body\@sidebar}{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@sidebar}
+% \changes{v1.58}{2019/01/23}{Deleted spurious \cs{vspace} warning}
+% The processing of the saved text
+% \begin{macrocode}
+\long\def\@sidebar#1{\bgroup\let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig\captionsetup{type=sidebar}%
+ \marginpar{\small#1}\egroup}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{marginfigure}
+% The |marginfigure| environment:
+% \begin{macrocode}
+\newenvironment{marginfigure}{\Collect@Body\@marginfigure}{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@marginfigure}
+% \changes{v1.12}{2016/05/30}{Now centering by default}
+% \changes{v1.56}{2018/11/11}{Added checking for description}
+% \changes{v1.58}{2019/01/23}{Deleted spurious \cs{vspace} warning}
+% The processing of the saved text
+% \begin{macrocode}
+\long\def\@marginfigure#1{\bgroup
+ \let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig
+ \captionsetup{type=figure}%
+ \marginpar{\@Description@presentfalse\centering
+ \small#1\if@Description@present\else
+ \global\@undescribed@imagestrue
+ \ClassWarning{\@classname}{A possible image without description}
+ \fi}%
+ \egroup}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{margintable}
+% The |margintable| environment:
+% \begin{macrocode}
+\newenvironment{margintable}{\Collect@Body\@margintable}{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@margintable}
+% \changes{v1.12}{2016/05/30}{Now centering by default}
+% \changes{v1.58}{2019/01/23}{Deleted spurious \cs{vspace} warning}
+% The processing of the saved text
+% \begin{macrocode}
+\long\def\@margintable#1{\bgroup\let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig\captionsetup{type=table}%
+ \marginpar{\centering\small#1}\egroup}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% SIGCHI extended abstracts provide an interesting possibility to push
+% into the margin. Here we use |figure*| and |table*| for this.
+% \begin{macro}{\fulltextwidth}
+% We define the width of the boxes as
+% \begin{macrocode}
+\newdimen\fulltextwidth
+\fulltextwidth=\dimexpr(\textwidth+\marginparwidth+\marginparsep)
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@dblfloat}
+% \changes{v1.58}{2019/01/23}{Deleted spurious \cs{vspace} warning}
+% We redefine the double-float command. First, we make the size
+% bigger. Second, our default position is going to be |tp| (to give
+% marginalia a chance)
+% \begin{macrocode}
+\if@ACM@sigchiamode
+\def\@dblfloat{\bgroup\let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig\columnwidth=\fulltextwidth
+ \let\@endfloatbox\@endwidefloatbox
+ \def\@fpsadddefault{\def\@fps{tp}}%
+ \@float}
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\end@dblfloat}
+% And the end. Just adding a \cs{bgroup}.
+% \begin{macrocode}
+\if@ACM@sigchiamode
+\def\end@dblfloat{%
+ \end@float\egroup}
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@endwidefloatbox}
+% This is the end of a wide box---we basically move everything
+% to the left
+% \begin{macrocode}
+\def\@endwidefloatbox{%
+ \par\vskip\z@skip
+ \@minipagefalse
+ \outer@nobreak
+ \egroup
+ \color@endbox
+ \global\setbox\@currbox=\vbox{\moveleft
+ \dimexpr(\fulltextwidth-\textwidth)\box\@currbox}%
+ \wd\@currbox=\textwidth
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%\subsection{Lists}
+%\label{sec:lists}
+%
+% \begin{macrocode}
+\ifcase\ACM@format@nr
+\relax % manuscript
+\or % acmsmall
+\or % acmlarge
+\or % acmtog
+\or % sigconf
+\or % siggraph
+\or % sigplan
+\def\labelenumi{\theenumi.}
+\def\labelenumii{\theenumii.}
+\def\labelenumiii{\theenumiii.}
+\def\labelenumiv{\theenumiv.}
+\or % sigchi
+\or % sigchi-a
+\or % acmengage
+\or % acmcp
+\fi
+% \end{macrocode}
+%
+%
+% \changes{v1.37}{2017/05/13}{Reduce list indentation (Matthew Fluet)}%
+% The AMS uses generous margins for lists. Note that |amsart| defines
+% \cs{leftmargin} values for list levels at the beginning of the
+% document, so we must redefine them in the same manner. Also, note that
+% |amsart| redefines the |enumerate| and |itemize| environments with a
+% \cs{makelabel} command that uses \cs{llap}, so the \cs{labelwidth}
+% value is~(effectively) irrelevant; nonetheless, we follow |amsart|
+% and set \cs{labelwidth} to \cs{leftmargin} minus \cs{labelsep}.
+% \begin{macrocode}
+\newdimen\@ACM@labelwidth
+\AtBeginDocument{%
+ \setlength\labelsep{4pt}
+ \setlength{\@ACM@labelwidth}{6.5pt}
+
+ %% First-level list: when beginning after the first line of an
+ %% indented paragraph or ending before an indented paragraph, labels
+ %% should not hang to the left of the preceding/following text.
+ \setlength\leftmargini{\z@}
+ \addtolength\leftmargini{\parindent}
+ \addtolength\leftmargini{2\labelsep}
+ \addtolength\leftmargini{\@ACM@labelwidth}
+
+ %% Second-level and higher lists.
+ \setlength\leftmarginii{\z@}
+ \addtolength\leftmarginii{0.5\labelsep}
+ \addtolength\leftmarginii{\@ACM@labelwidth}
+ \setlength\leftmarginiii{\leftmarginii}
+ \setlength\leftmarginiv{\leftmarginiii}
+ \setlength\leftmarginv{\leftmarginiv}
+ \setlength\leftmarginvi{\leftmarginv}
+ \@listi}
+\newskip\listisep
+\listisep\smallskipamount
+\def\@listI{\leftmargin\leftmargini
+ \labelwidth\leftmargini \advance\labelwidth-\labelsep
+ \listparindent\z@
+ \topsep\listisep}
+\let\@listi\@listI
+\def\@listii{\leftmargin\leftmarginii
+ \labelwidth\leftmarginii \advance\labelwidth-\labelsep
+ \topsep\z@skip}
+\def\@listiii{\leftmargin\leftmarginiii
+ \labelwidth\leftmarginiii \advance\labelwidth-\labelsep}
+\def\@listiv{\leftmargin\leftmarginiv
+ \labelwidth\leftmarginiv \advance\labelwidth-\labelsep}
+\def\@listv{\leftmargin\leftmarginv
+ \labelwidth\leftmarginv \advance\labelwidth-\labelsep}
+\def\@listvi{\leftmargin\leftmarginvi
+ \labelwidth\leftmarginvi \advance\labelwidth-\labelsep}
+% \end{macrocode}
+%
+%
+% \begin{macro}{\descriptionlabel}
+% \changes{v1.37}{2017/05/13}{Reduce list indentation (Matthew Fluet)}%
+% \changes{v1.12}{2016/05/30}{Redefined}
+% We do not use a colon by default like |amsart| does:
+% \begin{macrocode}
+\renewcommand{\descriptionlabel}[1]{\upshape\bfseries #1}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\description}
+% \changes{v1.37}{2017/05/13}{Reduce list indentation (Matthew Fluet)}%
+% \changes{v1.17}{2016/07/07}{Decreased indent}
+% Make the |description| environment indentation consistent with that of
+% the |itemize| and |enumerate| environments.
+% \begin{macrocode}
+\renewenvironment{description}{\list{}{%
+ \labelwidth\@ACM@labelwidth
+ \let\makelabel\descriptionlabel}%
+}{
+ \endlist
+}
+\let\enddescription=\endlist % for efficiency
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%\subsection{Top-matter data}
+%\label{sec:top_matter_data}
+%
+% \begin{macro}{\if@ACM@maketitle@typeset}
+% \changes{v1.64}{2019/08/17}{Introduced macro}
+% The switch to check whether \cs{maketitle} is already typeset. It
+% is initally false, and setting top matter when it is true is wrong.
+% \begin{macrocode}
+\newif\if@ACM@maketitle@typeset
+\@ACM@maketitle@typesetfalse
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \changes{v1.24}{2016/11/16}{Add IMWUT journal option}
+% \changes{v1.25}{2016/12/03}{Updated PACMPL}
+% \changes{v1.30}{2017/02/15}{Updated IMWUT and PACMPL}
+% \changes{v1.36}{2017/05/13}{Added PACMHCI journal options}
+% \changes{v1.46}{2017/08/25}{PACM now set screen to true}
+% \changes{v1.53}{2018/04/14}{Added PACMCGIT, TIOT, TDSCI}
+% \changes{v1.58}{2019/03/29}{Added HEALTH. TDSCI is renamed to TDS}
+% \changes{1.70}{2020/02/22}{Name change for TDS}
+% \changes{1.79}{2021/08/29}{Updated indormation for TAP, TCPS, TEAC}
+% \changes{1.80}{2021/09/24}{Added DLT and FAC}
+% \changes{1.82}{2022/02/05}{Updated abbreviations and codes for
+% several journals}
+% \changes{1.84}{2022/04/09}{New journals: JDS, GAMES}
+% \changes{1.85}{2022/05/08}{New journal: JRC}
+% \changes{1.87}{2022/10/18}{New journals: ACMJCSS, JATS, TORS}
+% \changes{1.88}{2022/10/19}{Added ISSN for GAMES}
+% \changes{1.88}{2022/10/23}{Added ISSN for ACMJCSS}
+% \changes{1.88}{2022/10/24}{Added PACMNET}
+% \changes{1.89}{2023/03/25}{Added PACMMOD}
+% \changes{1.89}{2023/03/25}{Added TOPML}
+% \changes{1.90}{2023/03/30}{Added TOPML eISSN}
+% \changes{2.05}{2024/04/04}{New data for TELO}
+% \changes{2.06}{2024/04/13}{Added eISSN for a number of journals}
+% \changes{2.07}{2024/04/17}{Another change for TELO}
+%
+% We use the |xkeyval| interface to define journal titles and the relevant
+% information
+% \begin{macrocode}
+\define@choicekey*+{ACM}{acmJournal}[\@journalCode\@journalCode@nr]{%
+ ACMJCSS,%
+ CIE,%
+ CSUR,%
+ DGOV,%
+ DLT,%
+ DTRAP,%
+ FAC,%
+ GAMES,%
+ HEALTH,%
+ IMWUT,%
+ JACM,%
+ JATS,%
+ JDIQ,%
+ JDS,%
+ JEA,%
+ JERIC,%
+ JETC,%
+ JOCCH,%
+ JRC,%
+ PACMCGIT,%
+ PACMHCI,%
+ PACMMOD,%
+ PACMNET,%
+ PACMPL,%
+ PACMSE,%
+ POMACS,%
+ TAAS,%
+ TACCESS,%
+ TACO,%
+ TALG,%
+ TALLIP,%
+ TAP,%
+ TCPS,%
+ TDS,%
+ TEAC,%
+ TECS,%
+ TELO,%
+ THRI,%
+ TIIS,%
+ TIOT,%
+ TISSEC,%
+ TIST,%
+ TKDD,%
+ TMIS,%
+ TOCE,%
+ TOCHI,%
+ TOCL,%
+ TOCS,%
+ TOCT,%
+ TODAES,%
+ TODS,%
+ TOG,%
+ TOIS,%
+ TOIT,%
+ TOMACS,%
+ TOMM,%
+ TOMPECS,%
+ TOMS,%
+ TOPC,%
+ TOPLAS,%
+ TOPML,%
+ TOPS,%
+ TORS,%
+ TOS,%
+ TOSEM,%
+ TOSN,%
+ TQC,%
+ TRETS,%
+ TSAS,%
+ TSC,%
+ TSLP,%
+ TWEB,%
+ FACMP%
+}{%
+\ifcase\@journalCode@nr
+\relax % ACMJCSS
+ \def\@journalName{ACM Journal on Computing and Sustainable Societies}%
+ \def\@journalNameShort{ACM J. Comput. Sustain. Soc.}%
+ \def\@permissionCodeOne{2834-5533}%
+ \def\@permissionCodeTwo{2834-5533}%
+\or % CIE
+ \def\@journalName{ACM Computers in Entertainment}%
+ \def\@journalNameShort{ACM Comput. Entertain.}%
+ \def\@permissionCodeOne{1544-3574}%
+\or % CSUR
+ \def\@journalName{ACM Computing Surveys}%
+ \def\@journalNameShort{ACM Comput. Surv.}%
+ \def\@permissionCodeOne{0360-0300}%
+ \def\@permissionCodeTwo{1557-7341}%
+\or % DGOV
+ \def\@journalName{Digital Government: Research and Practice}%
+ \def\@journalNameShort{Digit. Gov. Res. Pract.}%
+ \def\@permissionCodeOne{2639-0175}%
+ \def\@permissionCodeTwo{2639-0175}%
+\or % DLT
+ \def\@journalName{Distributed Ledger Technologies: Research and Practice}%
+ \def\@journalNameShort{Distrib. Ledger Technol.}%
+ \def\@permissionCodeOne{2769-6472}%
+ \def\@permissionCodeTwo{2769-6480}%
+\or % DTRAP
+ \def\@journalName{Digital Threats: Research and Practice}%
+ \def\@journalNameShort{Digit. Threat. Res. Pract.}%
+ \def\@permissionCodeOne{2576-5337}%
+ \def\@permissionCodeTwo{2576-5337}%
+\or % FAC
+ \def\@journalName{Formal Aspects of Computing}%
+ \def\@journalNameShort{Form. Asp. Comput.}%
+ \def\@permissionCodeOne{0934-5043}%
+ \def\@permissionCodeTwo{1433-299X}%
+\or % GAMES
+ \def\@journalName{ACM Games: Research and Practice}%
+ \def\@journalNameShort{ACM Games}%
+ \def\@permissionCodeOne{2832-5516}%
+ \def\@permissionCodeTwo{2832-5516}%
+\or % HEALTH
+ \def\@journalName{ACM Transactions on Computing for Healthcare}%
+ \def\@journalNameShort{ACM Trans. Comput. Healthcare}%
+ \def\@permissionCodeOne{2637-8051}%
+ \def\@permissionCodeTwo{2637-8051}%
+\or % IMWUT
+ \def\@journalName{Proceedings of the ACM on Interactive, Mobile,
+ Wearable and Ubiquitous Technologies}%
+ \def\@journalNameShort{Proc. ACM Interact. Mob. Wearable Ubiquitous Technol.}%
+ \def\@permissionCodeOne{2474-9567}%
+ \def\@permissionCodeTwo{2474-9567}%
+ \@ACM@screentrue
+ \PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
+\or % JACM
+ \def\@journalName{Journal of the ACM}%
+ \def\@journalNameShort{J. ACM}%
+ \def\@permissionCodeOne{0004-5411}%
+ \def\@permissionCodeTwo{1557-735X}%
+\or % JATS
+ \def\@journalName{Journal on Autonomous Transportation Systems}%
+ \def\@journalNameShort{ACM J. Auton. Transport. Syst.}%
+ \def\@permissionCodeOne{2833-0528}%
+ \def\@permissionCodeTwo{2833-0528}%
+\or % JDIQ
+ \def\@journalName{ACM Journal of Data and Information Quality}%
+ \def\@journalNameShort{ACM J. Data Inform. Quality}%
+ \def\@permissionCodeOne{1936-1955}%
+ \def\@permissionCodeTwo{1936-1963}%
+\or % JDS
+ \def\@journalName{ACM/IMS Journal of Data Science}%
+ \def\@journalNameShort{ACM/IMS J. Data Sci.}%
+ \def\@permissionCodeOne{2831-3194}%
+ \def\@permissionCodeTwo{2831-3194}%
+\or % JEA
+ \def\@journalName{ACM Journal of Experimental Algorithmics}%
+ \def\@journalNameShort{ACM J. Exp. Algor.}%
+ \def\@permissionCodeOne{1084-6654}%
+ \def\@permissionCodeTwo{1084-6654}%
+\or % JERIC
+ \def\@journalName{ACM Journal of Educational Resources in Computing}%
+ \def\@journalNameShort{ACM J. Edu. Resources in Comput.}%
+ \def\@permissionCodeOne{1073-0516}%
+\or % JETC
+ \def\@journalName{ACM Journal on Emerging Technologies in Computing Systems}%
+ \def\@journalNameShort{ACM J. Emerg. Technol. Comput. Syst.}%
+ \def\@permissionCodeOne{1550-4832}%
+ \def\@permissionCodeTwo{1550-4840}%
+\or % JOCCH
+ \def\@journalName{ACM Journal on Computing and Cultural Heritage}%
+ \def\@journalNameShort{ACM J. Comput. Cult. Herit.}%
+ \def\@permissionCodeOne{1556-4673}%
+ \def\@permissionCodeTwo{1556-4711}%
+\or % JRC
+ \def\@journalName{ACM Journal on Responsible Computing}%
+ \def\@journalNameShort{ACM J. Responsib. Comput.}%
+ \def\@permissionCodeOne{2832-0565}%
+ \def\@permissionCodeTwo{2832-0565}%
+\or % PACMCGIT
+ \def\@journalName{Proceedings of the ACM on Computer Graphics and Interactive Techniques}%
+ \def\@journalNameShort{Proc. ACM Comput. Graph. Interact. Tech.}%
+ \def\@permissionCodeOne{2577-6193}%
+ \def\@permissionCodeTwo{2577-6193}%
+ \@ACM@screentrue
+ \PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
+\or % PACMHCI
+ \def\@journalName{Proceedings of the ACM on Human-Computer Interaction}%
+ \def\@journalNameShort{Proc. ACM Hum.-Comput. Interact.}%
+ \def\@permissionCodeOne{2573-0142}%
+ \def\@permissionCodeTwo{2573-0142}%
+ \@ACM@screentrue
+ \PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
+\or % PACMMOD
+ \def\@journalName{Proceedings of the ACM on Management of Data}%
+ \def\@journalNameShort{Proc. ACM Manag. Data}%
+ \def\@permissionCodeOne{2836-6573}%
+ \def\@permissionCodeTwo{2836-6573}%
+\or % PACMNET
+ \def\@journalName{Proceedings of the ACM on Networkng}%
+ \def\@journalNameShort{Proc. ACM Netw.}%
+ \def\@permissionCodeOne{2834-5509}%
+ \def\@permissionCodeTwo{2834-5509}%
+\or % PACMPL
+ \def\@journalName{Proceedings of the ACM on Programming Languages}%
+ \def\@journalNameShort{Proc. ACM Program. Lang.}%
+ \def\@permissionCodeOne{2475-1421}%
+ \def\@permissionCodeTwo{2475-1421}%
+ \@ACM@screentrue
+ \PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
+\or % PACMSE
+ \def\@journalName{Proceedings of the ACM on Software Engineering}%
+ \def\@journalNameShort{Proc. ACM Softw. Eng.}%
+ \def\@permissionCodeOne{2994-970X}%
+ \def\@permissionCodeTwo{2994-970X}%
+ \@ACM@screentrue
+ \PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
+\or % POMACS
+ \def\@journalName{Proceedings of the ACM on Measurement and Analysis of Computing Systems}%
+ \def\@journalNameShort{Proc. ACM Meas. Anal. Comput. Syst.}%
+ \def\@permissionCodeOne{2476-1249}%
+ \def\@permissionCodeTwo{2476-1249}%
+ \@ACM@screentrue
+ \PackageInfo{\@classname}{Using screen mode due to \@journalCode}%
+\or % TAAS
+ \def\@journalName{ACM Transactions on Autonomous and Adaptive Systems}%
+ \def\@journalNameShort{ACM Trans. Autonom. Adapt. Syst.}%
+ \def\@permissionCodeOne{1556-4665}%
+ \def\@permissionCodeTwo{1556-4703}%
+\or % TACCESS
+ \def\@journalName{ACM Transactions on Accessible Computing}%
+ \def\@journalNameShort{ACM Trans. Access. Comput.}%
+ \def\@permissionCodeOne{1936-7228}%
+ \def\@permissionCodeTwo{1936-7236}%
+\or % TACO
+ \def\@journalName{ACM Transactions on Architecture and Code Optimization}%
+ \def\@journalNameShort{ACM Trans. Arch. Code Optim.}%
+ \def\@permissionCodeOne{1544-3566}%
+ \def\@permissionCodeTwo{1544-3973}%
+\or % TALG
+ \def\@journalName{ACM Transactions on Algorithms}%
+ \def\@journalNameShort{ACM Trans. Algor.}%
+ \def\@permissionCodeOne{1549-6325}%
+ \def\@permissionCodeTwo{1549-6333}%
+\or % TALLIP
+ \def\@journalName{ACM Transactions on Asian and Low-Resource Language Information Processing}%
+ \def\@journalNameShort{ACM Trans. Asian Low-Resour. Lang. Inf. Process.}%
+ \def\@permissionCodeOne{2375-4699}%
+ \def\@permissionCodeTwo{2375-4702}%
+\or % TAP
+ \def\@journalName{ACM Transactions on Applied Perception}%
+ \def\@journalNameShort{ACM Trans. Appl. Percept.}%
+ \def\@permissionCodeOne{1544-3558}%
+ \def\@permissionCodeTwo{1544-3965}%
+\or % TCPS
+ \def\@journalName{ACM Transactions on Cyber-Physical Systems}%
+ \def\@journalNameShort{ACM Trans. Cyber-Phys. Syst.}%
+ \def\@permissionCodeOne{2378-962X}%
+ \def\@permissionCodeTwo{2378-9638}%
+\or % TDS
+ \def\@journalName{ACM/IMS Transactions on Data Science}%
+ \def\@journalNameShort{ACM/IMS Trans. Data Sci.}%
+ \def\@permissionCodeOne{2577-3224}%
+\or % TEAC
+ \def\@journalName{ACM Transactions on Economics and Computation}%
+ \def\@journalNameShort{ACM Trans. Econ. Comput.}%
+ \def\@permissionCodeOne{2167-8375}%
+ \def\@permissionCodeTwo{2167-8383}%
+\or % TECS
+ \def\@journalName{ACM Transactions on Embedded Computing Systems}%
+ \def\@journalNameShort{ACM Trans. Embedd. Comput. Syst.}%
+ \def\@permissionCodeOne{1539-9087}%
+ \def\@permissionCodeTwo{1558-3465}%
+\or % TELO
+ \def\@journalName{ACM Transactions on Evolutionary Learning and Optimization}%
+ \def\@journalNameShort{ACM Trans. Evol. Learn. Optim.}%
+ \def\@permissionCodeOne{2688-299X}%
+ \def\@permissionCodeTwo{2688-3007}%
+\or % THRI
+ \def\@journalName{ACM Transactions on Human-Robot Interaction}%
+ \def\@journalNameShort{ACM Trans. Hum.-Robot Interact.}%
+ \def\@permissionCodeOne{2573-9522}%
+ \def\@permissionCodeTwo{2573-9522}%
+\or % TIIS
+ \def\@journalName{ACM Transactions on Interactive Intelligent Systems}%
+ \def\@journalNameShort{ACM Trans. Interact. Intell. Syst.}%
+ \def\@permissionCodeOne{2160-6455}%
+ \def\@permissionCodeTwo{2160-6463}%
+\or % TIOT
+ \def\@journalName{ACM Transactions on Internet of Things}%
+ \def\@journalNameShort{ACM Trans. Internet Things}%
+ \def\@permissionCodeOne{2577-6207}%
+ \def\@permissionCodeTwo{2577-6207}%
+\or % TISSEC
+ \def\@journalName{ACM Transactions on Information and System Security}%
+ \def\@journalNameShort{ACM Trans. Info. Syst. Sec.}%
+ \def\@permissionCodeOne{1094-9224}%
+\or % TIST
+ \def\@journalName{ACM Transactions on Intelligent Systems and Technology}%
+ \def\@journalNameShort{ACM Trans. Intell. Syst. Technol.}%
+ \def\@permissionCodeOne{2157-6904}%
+ \def\@permissionCodeTwo{2157-6912}%
+\or % TKDD
+ \def\@journalName{ACM Transactions on Knowledge Discovery from Data}%
+ \def\@journalNameShort{ACM Trans. Knowl. Discov. Data.}%
+ \def\@permissionCodeOne{1556-4681}%
+ \def\@permissionCodeTwo{1556-472X}%
+\or % TMIS
+ \def\@journalName{ACM Transactions on Management Information Systems}%
+ \def\@journalNameShort{ACM Trans. Manag. Inform. Syst.}%
+ \def\@permissionCodeOne{2158-656X}%
+ \def\@permissionCodeTwo{2158-6578}%
+\or % TOCE
+ \def\@journalName{ACM Transactions on Computing Education}%
+ \def\@journalNameShort{ACM Trans. Comput. Educ.}%
+ \def\@permissionCodeOne{1946-6226}%
+ \def\@permissionCodeTwo{1946-6226}%
+\or % TOCHI
+ \def\@journalName{ACM Transactions on Computer-Human Interaction}%
+ \def\@journalNameShort{ACM Trans. Comput.-Hum. Interact.}%
+ \def\@permissionCodeOne{1073-0516}%
+ \def\@permissionCodeTwo{1557-7325}%
+\or % TOCL
+ \def\@journalName{ACM Transactions on Computational Logic}%
+ \def\@journalNameShort{ACM Trans. Comput. Logic}%
+ \def\@permissionCodeOne{1529-3785}%
+ \def\@permissionCodeTwo{1557-945X}%
+\or % TOCS
+ \def\@journalName{ACM Transactions on Computer Systems}%
+ \def\@journalNameShort{ACM Trans. Comput. Syst.}%
+ \def\@permissionCodeOne{0734-2071}%
+ \def\@permissionCodeTwo{1557-7333}%
+\or % TOCT
+ \def\@journalName{ACM Transactions on Computation Theory}%
+ \def\@journalNameShort{ACM Trans. Comput. Theory}%
+ \def\@permissionCodeOne{1942-3454}%
+ \def\@permissionCodeTwo{1942-3462}%
+\or % TODAES
+ \def\@journalName{ACM Transactions on Design Automation of Electronic Systems}%
+ \def\@journalNameShort{ACM Trans. Des. Autom. Electron. Syst.}%
+ \def\@permissionCodeOne{1084-4309}%
+ \def\@permissionCodeTwo{1557-7309}%
+\or % TODS
+ \def\@journalName{ACM Transactions on Database Systems}%
+ \def\@journalNameShort{ACM Trans. Datab. Syst.}%
+ \def\@permissionCodeOne{0362-5915}%
+ \def\@permissionCodeTwo{1557-4644}%
+\or % TOG
+ \def\@journalName{ACM Transactions on Graphics}%
+ \def\@journalNameShort{ACM Trans. Graph.}%
+ \def\@permissionCodeOne{0730-0301}%
+ \def\@permissionCodeTwo{1557-7368}%
+\or % TOIS
+ \def\@journalName{ACM Transactions on Information Systems}%
+ \def\@journalNameShort{ACM Trans. Inf. Syst.}%
+ \def\@permissionCodeOne{1046-8188}%
+ \def\@permissionCodeTwo{1558-2868}%
+\or % TOIT
+ \def\@journalName{ACM Transactions on Internet Technology}%
+ \def\@journalNameShort{ACM Trans. Internet Technol.}%
+ \def\@permissionCodeOne{1533-5399}%
+ \def\@permissionCodeTwo{1557-6051}%
+\or % TOMACS
+ \def\@journalName{ACM Transactions on Modeling and Computer Simulation}%
+ \def\@journalNameShort{ACM Trans. Model. Comput. Simul.}%
+ \def\@permissionCodeOne{1049-3301}%
+ \def\@permissionCodeTwo{1558-1195}%
+\or % TOMM
+ \def\@journalName{ACM Transactions on Multimedia Computing, Communications and Applications}%
+ \def\@journalNameShort{ACM Trans. Multimedia Comput. Commun. Appl.}%
+ \def\@permissionCodeOne{1551-6857}%
+ \def\@permissionCodeTwo{1551-6865}%
+\or % TOMPECS
+ \def\@journalName{ACM Transactions on Modeling and Performance Evaluation of Computing Systems}%
+ \def\@journalNameShort{ACM Trans. Model. Perform. Eval. Comput. Syst.}%
+ \def\@permissionCodeOne{2376-3639}%
+ \def\@permissionCodeTwo{2376-3647}%
+\or % TOMS
+ \def\@journalName{ACM Transactions on Mathematical Software}%
+ \def\@journalNameShort{ACM Trans. Math. Softw.}%
+ \def\@permissionCodeOne{0098-3500}%
+ \def\@permissionCodeTwo{1557-7295}%
+\or % TOPC
+ \def\@journalName{ACM Transactions on Parallel Computing}%
+ \def\@journalNameShort{ACM Trans. Parallel Comput.}%
+ \def\@permissionCodeOne{2329-4949}%
+ \def\@permissionCodeTwo{2329-4957}%
+\or % TOPLAS
+ \def\@journalName{ACM Transactions on Programming Languages and Systems}%
+ \def\@journalNameShort{ACM Trans. Program. Lang. Syst.}%
+ \def\@permissionCodeOne{0164-0925}%
+ \def\@permissionCodeTwo{1558-4593}%
+\or % TOPML
+ \def\@journalName{ACM Transactions on Probabilistic Machine Learning}%
+ \def\@journalNameShort{ACM Trans. Probab. Mach. Learn.}%
+ \def\@permissionCodeOne{2836-8924}%
+ \def\@permissionCodeTwo{2836-8924}%
+\or % TOPS
+ \def\@journalName{ACM Transactions on Privacy and Security}%
+ \def\@journalNameShort{ACM Trans. Priv. Sec.}%
+ \def\@permissionCodeOne{2471-2566}%
+ \def\@permissionCodeTwo{2471-2574}%
+\or % TORS
+ \def\@journalName{ACM Transactions on Recommender Systems}%
+ \def\@journalNameShort{ACM Trans. Recomm. Syst.}%
+ \def\@permissionCodeOne{2770-6699}%
+ \def\@permissionCodeTwo{2770-6699}%
+\or % TOS
+ \def\@journalName{ACM Transactions on Storage}%
+ \def\@journalNameShort{ACM Trans. Storage}%
+ \def\@permissionCodeOne{1553-3077}%
+ \def\@permissionCodeTwo{1553-3093}%
+\or % TOSEM
+ \def\@journalName{ACM Transactions on Software Engineering and Methodology}%
+ \def\@journalNameShort{ACM Trans. Softw. Eng. Methodol.}%
+ \def\@permissionCodeOne{1049-331X}%
+ \def\@permissionCodeTwo{1557-7392}%
+\or % TOSN
+ \def\@journalName{ACM Transactions on Sensor Networks}%
+ \def\@journalNameShort{ACM Trans. Sensor Netw.}%
+ \def\@permissionCodeOne{1550-4859}%
+ \def\@permissionCodeTwo{1550-4867}%
+\or % TQC
+ \def\@journalName{ACM Transactions on Quantum Computing}%
+ \def\@journalNameShort{ACM Trans. Quantum Comput.}%
+ \def\@permissionCodeOne{2643-6817}%
+ \def\@permissionCodeTwo{2643-6817}%
+\or % TRETS
+ \def\@journalName{ACM Transactions on Reconfigurable Technology and Systems}%
+ \def\@journalNameShort{ACM Trans. Reconfig. Technol. Syst.}%
+ \def\@permissionCodeOne{1936-7406}%
+ \def\@permissionCodeTwo{1936-7414}%
+\or % TSAS
+ \def\@journalName{ACM Transactions on Spatial Algorithms and Systems}%
+ \def\@journalNameShort{ACM Trans. Spatial Algorithms Syst.}%
+ \def\@permissionCodeOne{2374-0353}%
+ \def\@permissionCodeTwo{2374-0361}%
+\or % TSC
+ \def\@journalName{ACM Transactions on Social Computing}%
+ \def\@journalNameShort{ACM Trans. Soc. Comput.}%
+ \def\@permissionCodeOne{2469-7818}%
+ \def\@permissionCodeTwo{2469-7826}%
+\or % TSLP
+ \def\@journalName{ACM Transactions on Speech and Language Processing}%
+ \def\@journalNameShort{ACM Trans. Speech Lang. Process.}%
+ \def\@permissionCodeOne{1550-4875}%
+ \def\@permissionCodeTwo{2329-9304}%
+\or % TWEB
+ \def\@journalName{ACM Transactions on the Web}%
+ \def\@journalNameShort{ACM Trans. Web}%
+ \def\@permissionCodeOne{1559-1131}%
+ \def\@permissionCodeTwo{1559-114X}%
+\else % FACMP, a dummy journal
+ \def\@journalName{ACM Just Accepted}%
+ \def\@journalNameShort{ACM Accepted}%
+ \def\@permissionCodeOne{XXXX-XXXX}%
+\fi
+\ClassInfo{\@classname}{Using journal code \@journalCode}%
+}{%
+ \ClassError{\@classname}{Incorrect journal #1}%
+}%
+% \end{macrocode}
+% \begin{macro}{\acmJournal}
+% \changes{v1.59}{2019/04/20}{Setting \cs{@ACM@journal@bibstrip}}
+% And the syntactic sugar around it
+% \begin{macrocode}
+\def\acmJournal#1{\setkeys{ACM}{acmJournal=#1}%
+ \global\@ACM@journal@bibstriptrue
+ \global\@ACM@journal@bibstrip@or@togtrue}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% The defaults:
+% \changes{v2.04}{2024/03/17}{eISSN is printed, rather than pSSN}
+% \begin{macrocode}
+\def\@journalCode@nr{0}
+\def\@journalName{}%
+\def\@journalNameShort{\@journalName}%
+\def\@permissionCodeOne{XXXX-XXXX}%
+\def\@permissionCodeTwo{\@permissionCodeOne}%
+% \end{macrocode}
+%
+%
+% \begin{macro}{\acmConference}
+% \changes{v1.59}{2019/04/20}{Setting \cs{@ACM@journal@bibstrip}}
+% \changes{v2.02}{2024/01/06}{Moved here setting the conference title
+% for bibstrip}
+% \changes{v2.03}{2024/02/04}{Made setting bibstrip overriding journal}
+% This is the conference command
+% \begin{macrocode}
+\newcommand\acmConference[4][]{%
+ \gdef\acmConference@shortname{#1}%
+ \gdef\acmConference@name{#2}%
+ \gdef\acmConference@date{#3}%
+ \gdef\acmConference@venue{#4}%
+ \ifx\acmConference@shortname\@empty
+ \gdef\acmConference@shortname{#2}%
+ \fi
+ \global\@ACM@journal@bibstripfalse
+ \ifx\@acmBooktitle\@empty\relax
+ \acmBooktitle{Proceedings of \acmConference@name
+ \ifx\acmConference@name\acmConference@shortname\else
+ \ (\acmConference@shortname)\fi}%
+ \fi
+}
+\if@ACM@journal\else
+\acmConference[Conference'17]{ACM Conference}{July 2017}{Washington,
+ DC, USA}%
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acmBooktitle}
+% \changes{v1.44}{2017/08/11}{Added macro}
+% \changes{v2.01}{2024/01/06}{Moved default conference title to
+% conference setting}
+% \begin{macro}{\@acmBooktitle}
+% \changes{v1.44}{2017/08/11}{Added macro}
+% The book title of the conference:
+% \begin{macrocode}
+\def\acmBooktitle#1{\gdef\@acmBooktitle{#1}}
+\acmBooktitle{}
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@editorsAbbrev}
+% \changes{v1.44}{2017/08/11}{Added macro}
+% How to abbreviate editors
+% \begin{macrocode}
+\def\@editorsAbbrev{(Ed.)}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@acmEditors}
+% \changes{v1.44}{2017/08/11}{Added macro}
+% The list of editors
+% \begin{macrocode}
+\def\@acmEditors{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\editor}
+% \changes{v1.44}{2017/08/11}{Added macro}
+% Add a new editor to the list
+% \begin{macrocode}
+\def\editor#1{\ifx\@acmEditors\@empty
+ \gdef\@acmEditors{#1}%
+ \else
+ \gdef\@editorsAbbrev{(Eds.)}%
+ \g@addto@macro\@acmEditors{\and#1}%
+\fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\subtitle}
+% The subtitle macro
+% \begin{macrocode}
+\def\subtitle#1{\def\@subtitle{#1}}
+\subtitle{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\num@authorgroups}
+% \changes{v1.15}{2016/06/25}{Renamed}
+% The total number of ``groups''. Each group is several authors with
+% the same affiliations(s)
+% \begin{macrocode}
+\newcount\num@authorgroups
+\num@authorgroups=0\relax
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\num@authors}
+% \changes{v1.46}{2017/08/27}{Introduced macro}
+% The total number of authors
+% \begin{macrocode}
+\newcount\num@authors
+\num@authors=0\relax
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%
+%
+% \begin{macro}{\if@insideauthorgroup}
+% \changes{v1.15}{2016/06/25}{Introduced macro}
+% Whether we are continuing an author group
+% \begin{macrocode}
+\newif\if@insideauthorgroup
+\@insideauthorgroupfalse
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\author}
+% \changes{v1.15}{2016/06/25}{Added code for author groups}
+% \changes{v1.46}{2017/08/27}{Started counting authors}
+% \changes{v1.54}{2018/06/23}{Added submission id in anonymous mode}
+% \changes{v1.57}{2018/12/09}{Added warning if \cs{author} has comma}
+% \changes{v1.72}{2020/05/04}{Added \cs{detokenize} (Kuldeep S. Meel)}
+% \changes{v1.76}{2021/03/15}{Added code for orcid links}
+% Adding an author to the list of authors and addresses.
+%
+% Note that we want to typeset the link to the author's orcid if
+% known. The problem is, we know the orcid only after the author is
+% entered. The trick is based on the idea that |\csname...\endcsname|
+% is \cs{relax} unless defined. Therefore we typeset authors by the
+% special macro |\csname typeset@author\the\num@authors\endcsname|,
+% which is defined by \cs{orcid} command.
+% \begin{macrocode}
+\renewcommand\author[2][]{%
+ \IfSubStr{\detokenize{#2}}{,}{\ClassWarning{\@classname}{Do not put several
+ authors in the same \string\author\space macro!}}{}%
+ \global\advance\num@authors by 1\relax
+ \if@insideauthorgroup\else
+ \global\advance\num@authorgroups by 1\relax
+ \global\@insideauthorgrouptrue
+ \fi
+ \ifx\addresses\@empty
+ \if@ACM@anonymous
+ \gdef\addresses{\@author{Anonymous Author(s)%
+ \ifx\@acmSubmissionID\@empty\else\\Submission Id:
+ \@acmSubmissionID\fi}}%
+ \gdef\authors{Anonymous Author(s)}%
+ \else
+ \expandafter\gdef\expandafter\addresses\expandafter{%
+ \expandafter\@author\expandafter{%
+ \csname typeset@author\the\num@authors\endcsname{#2}}}%
+ \gdef\authors{#2}%
+ \fi
+ \else
+ \if@ACM@anonymous\else
+ \expandafter\g@addto@macro\expandafter\addresses\expandafter{%
+ \expandafter\and\expandafter\@author\expandafter{%
+ \csname typeset@author\the\num@authors\endcsname{#2}}}%
+ \g@addto@macro\authors{\and#2}%
+ \fi
+ \fi
+ \if@ACM@anonymous
+ \ifx\shortauthors\@empty
+ \gdef\shortauthors{Anon.
+ \ifx\@acmSubmissionID\@empty\else Submission Id:
+ \@acmSubmissionID\fi}%
+ \fi
+ \else
+ \def\@tempa{#1}%
+ \ifx\@tempa\@empty
+ \ifx\shortauthors\@empty
+ \gdef\shortauthors{#2}%
+ \else
+ \g@addto@macro\shortauthors{\and#2}%
+ \fi
+ \else
+ \ifx\shortauthors\@empty
+ \gdef\shortauthors{#1}%
+ \else
+ \g@addto@macro\shortauthors{\and#1}%
+ \fi
+ \fi
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\affiliation}
+% \changes{v1.15}{2016/06/25}{Added code for author groups}
+% The macro \cs{affiliation} mimics \cs{address} from |amsart|.
+% Note that it has an optional argument, which we use differently
+% from |amsart|.
+% \begin{macrocode}
+\newcommand{\affiliation}[2][]{%
+ \global\@insideauthorgroupfalse
+ \if@ACM@anonymous\else
+ \g@addto@macro\addresses{\affiliation{#1}{#2}}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@affiliation@obeypunctuation}
+% \changes{v1.33}{2017/03/28}{Added macro}
+% Whether to use the author's punctuation (false by default, which adds
+% American-style address punctuation)
+% \begin{macrocode}
+\define@boolkey+{@ACM@affiliation@}[@ACM@affiliation@]{obeypunctuation}%
+[true]{}{\ClassError{\@classname}{The option obeypunctuation can be either true or false}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\additionalaffiliation}
+% \changes{v1.31}{2017/03/04}{Added macro}
+% Additional affiliations go to footnotes
+% \begin{macrocode}
+\def\additionalaffiliation#1{\authornote{\@additionalaffiliation{#1}}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@additionalaffiliation}
+% \changes{v1.31}{2017/03/04}{Added macro}
+% Process \cs{additionalaffiliation} inside \cs{authornote}
+% \begin{macrocode}
+\def\@additionalaffiliation#1{\bgroup
+ \def\position##1{\ignorespaces}%
+ \def\institution##1{##1\ignorespaces}%
+ \def\department{\@ifnextchar[{\@department}{\@department[]}}%
+ \def\@department[##1]##2{\unskip, ##2\ignorespaces}%
+ \let\city\position
+ \let\state\position
+ \let\country\position
+ Also with #1\unskip.\egroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\email}
+% \changes{v1.57}{2018/12/09}{Added warning if \cs{author} has comma}
+% The macro \cs{email} mimics \cs{email} from |amsart|.
+% Again, it has an optional argument that we do not currently need
+% but keep for possible future use.
+% \begin{macrocode}
+\renewcommand{\email}[2][]{%
+ \IfSubStr{#2}{,}{\ClassWarning{\@classname}{Do not put several
+ addresses in the same \string\email\space macro!}}{}%
+ \if@ACM@anonymous\else
+ \g@addto@macro\addresses{\email{#1}{#2}}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\orcid}
+% \changes{v1.15}{2016/06/25}{Introduced macro}
+% \changes{v1.76}{2021/03/15}{Added code for orcid links}
+% We redefine the command to typeset the current author
+% \begin{macrocode}
+\def\orcid#1{\unskip\ignorespaces%
+ \IfBeginWith{#1}{http}{%
+ \expandafter\gdef\csname
+ typeset@author\the\num@authors\endcsname##1{%
+ \href{#1}{##1}}}{%
+ \expandafter\gdef\csname
+ typeset@author\the\num@authors\endcsname##1{%
+ \href{https://orcid.org/#1}{##1}}}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\authorsaddresses}
+% \changes{v1.46}{2017/08/27}{Introduced macro}
+% Setting up authors' addresses
+% \begin{macrocode}
+\def\authorsaddresses#1{\def\@authorsaddresses{#1}}
+\authorsaddresses{\@mkauthorsaddresses}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@mktranslatedkeywords}
+% \changes{v1.83}{2022/02/20}{Added macro}
+% We have two argument: the language to typeset keywords and the
+% keywords.
+% \begin{macrocode}
+\newcommand\@mktranslatedkeywords[2]{\bgroup
+ \selectlanguage{#1}%
+ {\@specialsection{\keywordsname}%
+ \noindent#2\par}\egroup}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@titlenotes}
+% The title notes
+% \begin{macrocode}
+\def\@titlenotes{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\titlenote}
+% Adding a note to the title
+% \begin{macrocode}
+\def\titlenote#1{%
+ \g@addto@macro\@title{\footnotemark}%
+ \if@ACM@anonymous
+ \g@addto@macro\@titlenotes{%
+ \stepcounter{footnote}\footnotetext{Title note}}%
+ \else
+ \g@addto@macro\@titlenotes{\stepcounter{footnote}\footnotetext{#1}}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@subtitlenotes}
+% The subtitle notes
+% \begin{macrocode}
+\def\@subtitlenotes{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\subtitlenote}
+% Adding a note to the subtitle
+% \begin{macrocode}
+\def\subtitlenote#1{%
+ \g@addto@macro\@subtitle{\footnotemark}%
+ \if@ACM@anonymous
+ \g@addto@macro\@subtitlenotes{%
+ \stepcounter{footnote}\footnotetext{Subtitle note}}%
+ \else
+ \g@addto@macro\@subtitlenotes{%
+ \stepcounter{footnote}\footnotetext{#1}}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@authornotes}
+% The author notes
+% \begin{macrocode}
+\def\@authornotes{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\authornote}
+% Adding a note to the author
+% \begin{macrocode}
+\def\authornote#1{%
+ \if@ACM@anonymous\else
+ \g@addto@macro\addresses{\@authornotemark}%
+ \g@addto@macro\@authornotes{%
+ \stepcounter{footnote}\footnotetext{#1}}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\authornotemark}
+% \changes{v1.39}{2017/05/14}{Added macro}
+% Adding a footnote mark to the authors
+% \begin{macrocode}
+\newcommand\authornotemark[1][\relax]{%
+ \ifx#1\relax\relax\relax
+ \g@addto@macro\addresses{\@authornotemark}%
+ \else
+ \g@addto@macro\addresses{\@@authornotemark{#1}}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acmVolume}
+% \changes{v1.17}{2016/07/10}{The default is now numerical}
+% The current volume
+% \begin{macrocode}
+\def\acmVolume#1{\def\@acmVolume{#1}}
+\acmVolume{1}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acmNumber}
+% \changes{v1.17}{2016/07/10}{The default is now numerical}
+% The current number
+% \begin{macrocode}
+\def\acmNumber#1{\def\@acmNumber{#1}}
+\acmNumber{1}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acmArticle}
+% \changes{v1.17}{2016/07/10}{The default is now numerical}
+% \changes{v1.44}{2017/08/111}{The default is now empty}
+% The current article
+% \begin{macrocode}
+\def\acmArticle#1{\def\@acmArticle{#1}}
+\acmArticle{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acmArticleSeq}
+% \changes{v1.04}{2016/04/26}{Name change by Matthew Fluet}
+% \changes{v1.44}{2017/08/11}{Now acmArticle might be empty}
+% The sequence number
+% \begin{macrocode}
+\def\acmArticleSeq#1{\def\@acmArticleSeq{#1}}
+\acmArticleSeq{\@acmArticle}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acmYear}
+% \changes{v1.17}{2016/07/10}{The default is now numerical}
+% \changes{v1.31}{2017/03/04}{The default now is the current year
+% (Matteo Riondato)}
+% The current year
+% \begin{macrocode}
+\def\acmYear#1{\def\@acmYear{#1}}
+\acmYear{\the\year}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acmMonth}
+% \changes{v1.17}{2016/07/09}{The default must be numerical. Closes \#50.}
+% \changes{v1.31}{2017/03/04}{The default now is the current month
+% (Matteo Riondato)}
+% The current month
+% \begin{macrocode}
+\def\acmMonth#1{\def\@acmMonth{#1}}
+\acmMonth{\the\month}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@acmPubDate}
+% The publication date
+% \begin{macrocode}
+\def\@acmPubDate{\ifcase\@acmMonth\or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or
+ December\fi~\@acmYear}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acmPrice}
+% \changes{v2.00}{2023/10/22}{Deleted macro}
+% \changes{v2.01}{2023/12/29}{Now the macro produces a warning}
+% The price---obsolete
+% \begin{macrocode}
+\def\acmPrice#1{\ClassWarning{\@classname}{The macro \string\acmPrice
+ is obsolete. ACM no longer prints the price in bibstrip.}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\acmSubmissionID}
+% \changes{v1.33}{2017/03/29}{Added macro}
+% The submission ID
+% \begin{macrocode}
+\def\acmSubmissionID#1{\def\@acmSubmissionID{#1}}
+\acmSubmissionID{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\acmISBN}
+% \changes{v1.04}{2016/04/26}{Name change by Matthew Fluet}
+% The book ISBN
+% \begin{macrocode}
+\def\acmISBN#1{\def\@acmISBN{#1}}
+\acmISBN{978-x-xxxx-xxxx-x/YY/MM}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acmDOI}
+% \changes{v1.04}{2016/04/26}{Name change by Matthew Fluet}
+% The paper DOI
+% \begin{macrocode}
+\def\acmDOI#1{\def\@acmDOI{#1}}
+\acmDOI{10.1145/nnnnnnn.nnnnnnn}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@badge}
+% \changes{v1.06}{2016/05/01}{Added macro}
+% \changes{v1.89}{2022/12/27}{Deleted macro}
+% \end{macro}
+%
+% \begin{macro}{\@ACM@badge@width}
+% \changes{v1.06}{2016/05/01}{Added macro}
+% The width of the badge
+% \begin{macrocode}
+\newlength\@ACM@badge@width
+\setlength\@ACM@badge@width{3pc}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@ACM@title@width}
+% \changes{v1.06}{2016/05/01}{Added macro}
+% The width of the title
+% \begin{macrocode}
+\newlength\@ACM@title@width
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@ACM@badge@skip}
+% \changes{v1.06}{2016/05/01}{Added macro}
+% \changes{v1.89}{2022/12/27}{Redefined macro}
+% The spacing between badges
+% \begin{macrocode}
+\newlength\@ACM@badge@skip
+\setlength\@ACM@badge@skip{1pt}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@acmBadgeR}
+% \changes{v1.89}{2022/12/27}{Introduced macro}
+% \begin{macrocode}
+\def\@acmBadgeR{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@acmBadgeL}
+% \changes{v1.89}{2022/12/27}{Introduced macro}
+% \begin{macrocode}
+\def\@acmBadgeL{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\acmBadgeR}
+% \changes{v1.06}{2016/05/01}{Added macro}
+% \changes{v1.89}{2022/12/27}{Redefined macro}
+% Setting the right badge
+% \begin{macrocode}
+\newcommand\acmBadgeR[2][]{%
+ \ifx\@acmBadgeR\@empty
+ \gdef\@acmBadgeR{%
+ \smash{%
+ \raisebox{0.5\height}{%
+ \href{#1}{\includegraphics[width=\@ACM@badge@width]{#2}}}}}%
+ \else
+ \g@addto@macro{\@acmBadgeR}{%
+ \hspace{\@ACM@badge@skip}%
+ \smash{%
+ \raisebox{0.5\height}{%
+ \href{#1}{\includegraphics[width=\@ACM@badge@width]{#2}}}}}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acmBadgeL}
+% \changes{v1.06}{2016/05/01}{Added macro}
+% \changes{v1.89}{2022/12/27}{Redefined macro}
+% Setting the left badge
+% \begin{macrocode}
+\newcommand\acmBadgeL[2][]{%
+ \ifx\@acmBadgeL\@empty
+ \gdef\@acmBadgeL{%
+ \smash{%
+ \raisebox{0.5\height}{%
+ \href{#1}{\includegraphics[width=\@ACM@badge@width]{#2}}}}}%
+ \else
+ \g@addto@macro{\@acmBadgeL}{%
+ \hspace{\@ACM@badge@skip}%
+ \smash{%
+ \raisebox{0.5\height}{%
+ \href{#1}{\includegraphics[width=\@ACM@badge@width]{#2}}}}}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acmBadge}
+% \changes{v1.89}{2023/01/07}{Added macro}
+% Just a syntax sugar for \cs{acmBadgeR}
+% \begin{macrocode}
+\let\acmBadge=\acmBadgeR
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\startPage}
+% The start page of the paper
+% \begin{macrocode}
+\def\startPage#1{\def\@startPage{#1}}
+\startPage{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\terms}
+% \changes{v1.34}{2017/04/09}{The \cs{terms} command now just produces
+% a warning}
+% Terms are obsolete. We use CCS now.
+% \begin{macrocode}
+\def\terms#1{\ClassWarning{\@classname}{The command \string\terms{} is
+ obsolete. I am going to ignore it}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\keywords}
+% Keywords are mostly obsolete. We use CCS now. Still it makes
+% sense to keep them for compatibility.
+% \begin{macrocode}
+\def\keywords#1{\def\@keywords{#1}}
+\let\@keywords\@empty
+% \end{macrocode}
+%
+% \changes{1.66}{2019/12/18}{Added warning for missing keywords}
+% \begin{macrocode}
+\AtEndDocument{\if@ACM@nonacm\else\ifx\@keywords\@empty
+ \ifnum\getrefnumber{TotPages}>2\relax
+ \ClassWarningNoLine{\@classname}{ACM keywords are mandatory
+ for papers over two pages}%
+ \fi\fi\fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{abstract}
+% The |amsart| package puts |abstract| in a box. Since we do not
+% know whether we will use two-column mode, we prefer to save the text
+% \begin{macrocode}
+\renewenvironment{abstract}{\Collect@Body\@saveabstract}{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@saveabstract}
+% And saving the abstract
+% \begin{macrocode}
+\long\def\@saveabstract#1{\if@ACM@maketitle@typeset
+ \ClassError{\@classname}{Abstract must be defined before maketitle
+ command. Please move it!}\fi
+ \long\gdef\@abstract{#1}}
+\@saveabstract{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@lempty}
+% The long version of \cs{@empty} (to compare with \cs{@abstract})
+% \begin{macrocode}
+\long\def\@lempty{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@printccs}
+% \changes{v1.27}{2016/12/29}{Typo corrected}
+% Whether to print CCS
+% \begin{macrocode}
+\define@boolkey+{@ACM@topmatter@}[@ACM@]{printccs}[true]{%
+ \if@ACM@printccs
+ \ClassInfo{\@classname}{Printing CCS}%
+ \else
+ \ClassInfo{\@classname}{Suppressing CCS}%
+ \fi}{\ClassError{\@classname}{The option printccs can be either true or false}}
+% \end{macrocode}
+%
+% \end{macro}
+% \begin{macro}{\if@ACM@printacmref}
+% \changes{v1.17}{2016/07/10}{Renamed from \cs{if@ACM@printbib}}
+% Whether to print the ACM bibstrip
+% \begin{macrocode}
+\define@boolkey+{@ACM@topmatter@}[@ACM@]{printacmref}[true]{%
+ \if@ACM@printacmref
+ \ClassInfo{\@classname}{Printing bibformat}%
+ \else
+ \ClassInfo{\@classname}{Suppressing bibformat}%
+ \fi}{\ClassError{\@classname}{The option printacmref can be either true or false}}
+% \end{macrocode}
+%
+% \changes{1.66}{2019/12/18}{Added warning for longer papers}
+% \begin{macrocode}
+\AtEndDocument{\if@ACM@nonacm\else\if@ACM@printacmref\else
+ \ifnum\getrefnumber{TotPages}>1\relax
+ \ClassWarningNoLine{\@classname}{%
+ ACM reference format is mandatory \MessageBreak
+ for papers over one page. \MessageBreak
+ Please add printacmref=true to the \MessageBreak
+ \string\settopmatter\space command.}%
+ \fi\fi\fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@printfolios}
+% \changes{v1.13}{2016/06/06}{Added macro}
+% Whether to print folios
+% \begin{macrocode}
+\define@boolkey+{@ACM@topmatter@}[@ACM@]{printfolios}[true]{%
+ \if@ACM@printfolios
+ \ClassInfo{\@classname}{Printing folios}%
+ \else
+ \ClassInfo{\@classname}{Suppressing folios}%
+ \fi}{\ClassError{\@classname}{The option printfolios can be either true or false}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@ACM@authorsperrow}
+% \changes{v1.36}{2017/05/13}{Added macro}
+% The number of authors per row. 0 means use the default algorithm.
+% \begin{macrocode}
+\define@cmdkey{@ACM@topmatter@}[@ACM@]{authorsperrow}[0]{%
+ \IfInteger{#1}{\ClassInfo{\@classname}{Setting authorsperrow to
+ #1}}{\ClassWarning{\@classname}{The parameter authorsperrow must be
+ numerical. Ignoring the input #1}\gdef\@ACM@authorsperrow{0}}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\settopmatter}
+% The usual syntactic sugar
+% \begin{macrocode}
+\def\settopmatter#1{\setkeys{@ACM@topmatter@}{#1}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \changes{v1.13}{2016/06/06}{Print bibliographic information by
+% default for the proceedings}
+% Now the settings
+% \begin{macrocode}
+\settopmatter{printccs=true, printacmref=true}
+\if@ACM@manuscript
+ \settopmatter{printfolios=true}
+\else
+ \if@ACM@journal
+ \settopmatter{printfolios=true}
+ \else
+ \settopmatter{printfolios=false}
+ \fi
+\fi
+\settopmatter{authorsperrow=0}
+% \end{macrocode}
+%
+% \begin{macro}{\@received}
+% The container for the paper history
+% \begin{macrocode}
+\def\@received{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\received}
+% The \cs{received} command
+% \begin{macrocode}
+\newcommand\received[2][]{\def\@tempa{#1}%
+ \ifx\@tempa\@empty
+ \ifx\@received\@empty
+ \gdef\@received{Received #2}%
+ \else
+ \g@addto@macro{\@received}{; revised #2}%
+ \fi
+ \else
+ \ifx\@received\@empty
+ \gdef\@received{#1 #2}%
+ \else
+ \g@addto@macro{\@received}{; #1 #2}%
+ \fi
+ \fi}
+\AtEndDocument{%
+ \ifx\@received\@empty\else
+ \par\bigskip\noindent\small\normalfont\@received\par
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acmArticleType}
+% \changes{v1.87}{2022/08/13}{Introduced macro}
+% Article type. We set up the color.
+% \begin{macrocode}
+\define@choicekey+{ACM}{articletype}[\ACM@ArticleType\ACM@ArticleType@nr]{%
+ Research,Review,Discussion,Invited,Position}[Review]{%
+ \ifcase\ACM@ArticleType@nr
+ \relax % Research
+ \colorlet{@ACM@Article@color}{ACMBlue}%
+ \or % Review
+ \colorlet{@ACM@Article@color}{ACMOrange}%
+ \or % Discussion
+ \colorlet{@ACM@Article@color}{ACMGreen}%
+ \or % Invited
+ \colorlet{@ACM@Article@color}{ACMPurple}%
+ \or % Position
+ \colorlet{@ACM@Article@color}{ACMRed}%
+ \fi
+}{%
+ \ClassError{\@classname}{Article Type must be Research, Review,\MessageBreak
+ Discussion, Invited, or Position}}
+\def\acmArticleType#1{\setkeys{ACM}{articletype=#1}}
+\if@ACM@acmcp
+\acmArticleType{Research}%
+\fi
+ % \end{macrocode}
+%
+% \end{macro}
+% \begin{macro}{\@ACM@color@frame}
+% \changes{v1.87}{2022/08/13}{Introduced macro}
+% \changes{v1.89}{2022/12/25}{Added saving the position of the bottom}
+% The colored frame for the acmcp
+% \begin{macrocode}
+\newenvironment{@ACM@color@frame}{%
+ \def\FrameCommand{\hspace*{-6.5pc}%
+ \colorbox{@ACM@Article@color!10!white}}%
+ \MakeFramed {\advance\hsize
+ -6.5pc\relax\FrameRestore}}{\zsaveposy{@ACM@acmcpframe@y}%
+ \endMakeFramed}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acmCodeDataLink}
+% \changes{v1.87}{2022/08/13}{Introduced macro}
+% \changes{v1.87}{2022/08/28}{Added possibility to have several links}
+% The code link
+% \begin{macrocode}
+\def\acmCodeLink#1{%
+ \ifx\@acmCodeDataLink\@empty
+ \gdef\@acmCodeDataLink{\url{#1}}%
+ \else
+ \g@addto@macro{\@acmCodeDataLink}{\\ \url{#1}}%
+ \fi}
+\def\@acmCodeDataLink{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acmContributions}
+% \changes{v1.91}{2023/06/22}{Restored the macro}
+% The authors' contrubution statement
+% \begin{macrocode}
+\def\acmContributions#1{\gdef\@acmContributions{#1}}
+\acmContributions{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\acmDataLink}
+% \changes{v1.87}{2022/08/13}{Introduced macro}
+% \changes{v1.87}{2022/08/28}{Now this is the same as the code link}
+% The code link
+% \begin{macrocode}
+\let\acmDataLink\acmCodeLink
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%
+%\subsection{Concepts system}
+%\label{sec:concepts}
+%
+% We exclude |CCSXML| stuff generated by the ACM system:
+% \begin{macrocode}
+\RequirePackage{comment}
+\excludecomment{CCSXML}
+% \end{macrocode}
+%
+% \begin{macro}{\@concepts}
+% This is the storage macro and counter for concepts
+% \begin{macrocode}
+\let\@concepts\@empty
+\newcounter{@concepts}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\ccsdesc}
+% \changes{v1.40}{2017/05/27}{Now we can parse |Significance~General| nodes}
+% The first argument is the significance, the second is the
+% concept(s)
+% \begin{macrocode}
+\newcommand\ccsdesc[2][100]{%
+ \ccsdesc@parse#1~#2~~\ccsdesc@parse@end}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\ccsdesc@parse}
+% \changes{v1.28}{2017/01/04}{Change from \cs{to} to
+% \cs{textrightarrow} (Matteo Riondato)}
+% \changes{v1.29}{2017/01/22}{Add spacing after bullet and around
+% rightarrow; semicolon separators no longer in bold/italic (John Wickerson)}
+% \changes{v1.40}{2017/05/27}{Now we can parse |Significance~General| nodes}
+% \changes{v1.56}{2018/10/23}{End the concepts list with a period
+% (Philip Quinn)}
+% \changes{v1.69}{2019/02/06}{Use math right arrow in text}
+% The parser of the expression |Significance~General~Specific| (we need
+% |textcomp| for |\textrightarrow|). Note that |Specific| can be empty!
+% \begin{macrocode}
+\def\textrightarrow{$\rightarrow$}
+\def\ccsdesc@parse#1~#2~#3~{%
+ \stepcounter{@concepts}%
+ \expandafter\ifx\csname CCS@General@#2\endcsname\relax
+ \expandafter\gdef\csname CCS@General@#2\endcsname{\textbullet\
+ \textbf{#2}}%
+ \expandafter\gdef\csname CCS@Punctuation@#2\endcsname{; }%
+ \expandafter\gdef\csname CCS@Specific@#2\endcsname{}%
+ \g@addto@macro{\@concepts}{\csname CCS@General@#2\endcsname
+ \csname CCS@Punctuation@#2\endcsname
+ \csname CCS@Specific@#2\endcsname}%
+ \fi
+ \ifx#3\relax\relax\else
+ \expandafter\gdef\csname CCS@Punctuation@#2\endcsname{
+ \textrightarrow\ }%
+ \expandafter\g@addto@macro\expandafter{\csname CCS@Specific@#2\endcsname}{%
+ \addtocounter{@concepts}{-1}%
+ \ifnum#1>499\textbf{#3}\else
+ \ifnum#1>299\textit{#3}\else
+ #3\fi\fi\ifnum\value{@concepts}=0.\else; \fi}%
+ \fi
+\ccsdesc@parse@finish}
+% \end{macrocode}
+%
+% \changes{1.66}{2019/12/18}{Added warning for missing concepts}
+% \begin{macrocode}
+\AtEndDocument{\if@ACM@nonacm\else\ifx\@concepts\@empty\relax
+ \ifnum\getrefnumber{TotPages}>2\relax
+ \ClassWarningNoLine{\@classname}{CCS concepts are mandatory
+ for papers over two pages}%
+ \fi\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ccdesc@parse@finish}
+% \changes{v1.40}{2017/05/27}{Added macro}
+% Gobble everything to |\ccsdesc@parse@end|
+% \begin{macrocode}
+\def\ccsdesc@parse@finish#1\ccsdesc@parse@end{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%\subsection{Copyright system}
+%\label{sec:copyright}
+%
+% This is from |acmcopyright.sty|
+%
+% \begin{macro}{\if@printcopyright}
+% Whether to print a copyright symbol
+% \begin{macrocode}
+\newif\if@printcopyright
+\@printcopyrighttrue
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@printpermission}
+% Whether to print the permission block
+% \begin{macrocode}
+\newif\if@printpermission
+\@printpermissiontrue
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@acmowned}
+% Whether the ACM owns the rights to the paper
+% \begin{macrocode}
+\newif\if@acmowned
+\@acmownedtrue
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \changes{v1.10}{2016/05/22}{Changes of `licensedothergov' wording}
+% \changes{v1.35}{2017/04/22}{If the copyright is set to usgov or
+% rigtsretained, the price is suppressed}
+% \changes{v1.51}{2018/04/05}{Suppress price if the copyright is set
+% to iw3c2w3 or iw3c2w3g}
+% \changes{v1.51}{2018/04/05}{Corrected the bug with price suppression}
+% \changes{v1.85}{2022/05/08}{Added CC licenses}
+% \changes{v2.00}{2023/10/22}{Deleted acmPrice}
+% \changes{v2.00}{2023/10/22}{Deleted acmPrice}
+% Keys:
+% \begin{macrocode}
+\define@choicekey*{ACM@}{acmcopyrightmode}[%
+ \acm@copyrightinput\acm@copyrightmode]{none,%
+ acmcopyright,acmlicensed,rightsretained,%
+ usgov,usgovmixed,cagov,cagovmixed,licensedusgovmixed,%
+ licensedcagov,licensedcagovmixed,othergov,licensedothergov,%
+ iw3c2w3,iw3c2w3g,cc}{%
+ \@printpermissiontrue
+ \@printcopyrighttrue
+ \@acmownedtrue
+ \ifnum\acm@copyrightmode=0\relax % none
+ \@printpermissionfalse
+ \@printcopyrightfalse
+ \@acmownedfalse
+ \fi
+ \ifnum\acm@copyrightmode=2\relax % acmlicensed
+ \@acmownedfalse
+ \fi
+ \ifnum\acm@copyrightmode=3\relax % rightsretained
+ \@acmownedfalse
+ \fi
+ \ifnum\acm@copyrightmode=4\relax % usgov
+ \@printpermissiontrue
+ \@printcopyrightfalse
+ \@acmownedfalse
+ \fi
+ \ifnum\acm@copyrightmode=6\relax % cagov
+ \@acmownedfalse
+ \fi
+ \ifnum\acm@copyrightmode=8\relax % licensedusgovmixed
+ \@acmownedfalse
+ \fi
+ \ifnum\acm@copyrightmode=9\relax % licensedcagov
+ \@acmownedfalse
+ \fi
+ \ifnum\acm@copyrightmode=10\relax % licensedcagovmixed
+ \@acmownedfalse
+ \fi
+ \ifnum\acm@copyrightmode=11\relax % othergov
+ \@acmownedtrue
+ \fi
+ \ifnum\acm@copyrightmode=12\relax % licensedothergov
+ \@acmownedfalse
+ \fi
+ \ifnum\acm@copyrightmode=13\relax % iw3c2w3
+ \@acmownedfalse
+ \fi
+ \ifnum\acm@copyrightmode=14\relax % iw3c2w3g
+ \@acmownedfalse
+ \fi
+ \ifnum\acm@copyrightmode=15\relax % cc
+ \@acmownedfalse
+ \fi}
+% \end{macrocode}
+%
+% \begin{macro}{\setcopyright}
+% This is the syntactic sugar around setting keys.
+% \begin{macrocode}
+\def\setcopyright#1{\setkeys{ACM@}{acmcopyrightmode=#1}}
+\setcopyright{acmlicensed}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\setcctype}
+% \changes{v1.85}{2022/05/08}{Added macro}
+% The type of Creative Commons license used
+% \begin{macrocode}
+\newcommand\setcctype[2][4.0]{%
+ \def\ACM@cc@version{#1}%
+ \def\ACM@cc@type{#2}}
+\setcctype{by}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@copyrightowner}
+% \changes{v1.40}{2017/06/16}{Added new copyright version:
+% licensedcagov}
+% \changes{v1.52}{2018/04/09}{Rewording of licenses}
+% \changes{v1.85}{2022/05/08}{Added CC licenses}
+% \changes{v2.00}{2023/10/22}{Changed wording}
+% \changes{v2.04}{2024/03/28}{Changed wording}
+% Here is the owner of the copyright
+% \begin{macrocode}
+\def\@copyrightowner{%
+ \ifcase\acm@copyrightmode\relax % none
+ \or % acmcopyright
+ ACM\@.
+ \or % acmlicensed
+ Copyright held by the owner/author(s). Publication rights licensed to
+ ACM\@.
+ \or % rightsretained
+ Copyright held by the owner/author(s).
+ \or % usgov
+ \or % usgovmixed
+ Copyright held by the owner/author(s).
+ \or % cagov
+ Copyright Crown in Right of Canada.
+ \or %cagovmixed
+ Copyright held by the owner/author(s).
+ \or %licensedusgovmixed
+ Copyright held by the owner/author(s). Publication rights licensed to
+ ACM\@.
+ \or % licensedcagov
+ Copyright held by the owner/author(s).
+ \or %licensedcagovmixed
+ Copyright held by the owner/author(s). Publication rights licensed to
+ ACM\@.
+ \or % othergov
+ Copyright held by the owner/author(s).
+ \or % licensedothergov
+ Copyright held by the owner/author(s). Publication rights licensed to
+ ACM\@.
+ \or % ic2w3www
+ IW3C2 (International World Wide Web Conference Committee), published
+ under Creative Commons CC-BY~4.0 License.
+ \or % ic2w3wwwgoogle
+ IW3C2 (International World Wide Web Conference Committee), published
+ under Creative Commons CC-BY-NC-ND~4.0 License.
+ \or % cc
+ Copyright held by the owner/author(s).
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@formatdoi}
+% \changes{v1.03}{2016/04/22}{Added macro}
+% \changes{v1.32}{2017/04/07}{New doi format}
+% Print a clickable DOI
+% \begin{macrocode}
+\def\@formatdoi#1{\url{https://doi.org/#1}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@ACM@copyright@check@cc}
+% \changes{v1.87}{2022/07/30}{Added macro}
+% At present cC licenses can be used only for acmengage format or for
+% non-acm stuff. This macro checks whether the CC license is
+% applicable and generates an error if not.
+% \changes{v2.00}{2023/10/22}{Moved to warning}
+% \begin{macrocode}
+\def\@ACM@copyright@check@cc{%
+ \if@ACM@nonacm
+ \ClassInfo{\@classname}{Using CC license with a non-acm
+ material}%
+ \else
+ \if@ACM@engage
+ \ClassInfo{\@classname}{Using CC license with ACM Enage
+ material}%
+ \else
+ \ClassWarning{\@classname}{%
+ Sorry, Creative Commons licenses are\MessageBreak
+ currently not used with ACM publications\MessageBreak
+ typeset by the authors}{Please use nonacm
+ option or ACM Engage class to enable CC licenses}%
+ \fi
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@copyrightpermission}
+% \changes{v1.40}{2017/06/16}{Added new copyright version: licensedcagov}
+% \changes{v1.50}{2018/02/07}{New copyright statements for iw3c2w3[g]}
+% \changes{v1.52}{2018/04/09}{Another rewording of copyright
+% statements for iw3c2w3[g]}
+% \changes{v1.85}{2022/05/08}{Added CC licenses}
+% \changes{v1.87}{2022/07/30}{CC licenses now are allowed only for
+% non-acm or ACM engage publications}
+% \changes{v2.00}{2023/10/24}{Rewrote wording}
+% \changes{v2.00}{2023/10/24}{Rewrote wording}
+% The canned permission block.
+% \begin{macrocode}
+\def\@copyrightpermission{%
+ \ifcase\acm@copyrightmode\relax % none
+ \or % acmcopyright
+ Permission to make digital or hard copies of all or part of this
+ work for personal or classroom use is granted without fee provided
+ that copies are not made or distributed for profit or commercial
+ advantage and that copies bear this notice and the full citation on
+ the first page. Copyrights for components of this work owned by
+ others than ACM must be honored. Abstracting with credit is
+ permitted. To copy otherwise, or republish, to post on servers or
+ to redistribute to lists, requires prior specific permission
+ and\hspace*{.5pt}/or
+ a fee. Request permissions from permissions@acm.org.
+ \or % acmlicensed
+ Permission to make digital or hard copies of all or part of this
+ work for personal or classroom use is granted without fee provided
+ that copies are not made or distributed for profit or commercial
+ advantage and that copies bear this notice and the full citation on
+ the first page. Copyrights for components of this work owned by
+ others than the author(s) must be honored. Abstracting with credit
+ is permitted. To copy otherwise, or republish, to post on servers
+ or to redistribute to lists, requires prior specific permission
+ and\hspace*{.5pt}/or a fee. Request permissions from
+ permissions@acm.org.
+ \or % rightsretained
+ Permission to make digital or hard copies of all or part of this
+ work for personal or classroom use is granted without fee provided
+ that copies are not made or distributed for profit or commercial
+ advantage and that copies bear this notice and the full citation on
+ the first page. Copyrights for third-party components of this work
+ must be honored. For all other uses, contact the
+ owner\hspace*{.5pt}/author(s).
+ \or % usgov
+ This paper is authored by an employee(s) of the United States
+ Government and is in the public domain. Non-exclusive copying or
+ redistribution is allowed, provided that the article citation is
+ given and the authors and agency are clearly identified as its
+ source. All others Request permissions from
+ owner\hspace*{.5pt}/author(s).
+ \or % usgovmixed
+ ACM acknowledges that this contribution was authored or co-authored
+ by an employee, contractor, or affiliate of the United States
+ government. As such, the United States government retains a
+ nonexclusive, royalty-free right to publish or reproduce this
+ article, or to allow others to do so, for government purposes
+ only. Request permissions from owner\hspace*{.5pt}/author(s).
+ \or % cagov
+ This article was authored by employees of the Government of
+ Canada. As such, the Canadian government retains all interest in
+ the copyright to this work and grants to ACM a nonexclusive,
+ royalty-free right to publish or reproduce this article, or to
+ allow others to do so, provided that clear attribution is given
+ both to the authors and the Canadian government agency employing
+ them. Permission to make digital or hard copies for personal or
+ classroom use is granted. Copies must bear this notice and the full
+ citation on the first page. Copyrights for components of this work
+ owned by others than the Canadian Government must be honored. To
+ copy otherwise, distribute, republish, or post, requires prior
+ specific permission and/or a fee. Request permissions from
+ owner\hspace*{.5pt}/author(s).
+ \or % cagovmixed
+ ACM acknowledges that this contribution was co-authored by an
+ affiliate of the national government of Canada. As such, the Crown
+ in Right of Canada retains an equal interest in the
+ copyright. Reprints must include clear attribution to ACM and the
+ author’s government agency affiliation. Permission to make digital
+ or hard copies for personal or classroom use is granted. Copies
+ must bear this notice and the full citation on the first
+ page. Copyrights for components of this work owned by others than
+ ACM must be honored. To copy otherwise, distribute, republish, or
+ post, requires prior specific permission and/or a fee. Request
+ permissions from owner\hspace*{.5pt}/author(s).
+ \or % licensedusgovmixed
+ Publication rights licensed to ACM\@. ACM acknowledges that this
+ contribution was authored or co-authored by an employee, contractor
+ or affiliate of the United States government. As such, the
+ Government retains a nonexclusive, royalty-free right to publish or
+ reproduce this article, or to allow others to do so, for Government
+ purposes only. Request permissions from
+ owner\hspace*{.5pt}/author(s).
+ \or % licensedcagov
+ This article was authored by employees of the Government of
+ Canada. As such, the Canadian government retains all interest in
+ the copyright to this work and grants to ACM a nonexclusive,
+ royalty-free right to publish or reproduce this article, or to
+ allow others to do so, provided that clear attribution is given
+ both to the authors and the Canadian government agency employing
+ them. Permission to make digital or hard copies for personal or
+ classroom use is granted. Copies must bear this notice and the full
+ citation on the first page. Copyrights for components of this work
+ owned by others than the Canadian Government must be honored. To
+ copy otherwise, distribute, republish, or post, requires prior
+ specific permission and/or a fee. Request permissions from
+ owner\hspace*{.5pt}/author(s).
+ \or % licensedcagovmixed
+ Publication rights licensed to ACM. ACM acknowledges that this
+ contribution was authored or co-authored by an employee, contractor
+ or affiliate of the national government of Canada. As such, the
+ Government retains a nonexclusive, royalty-free right to publish or
+ reproduce this article, or to allow others to do so, for Government
+ purposes only. Request permissions from
+ owner\hspace*{.5pt}/author(s).
+ \or % othergov
+ ACM acknowledges that this contribution was authored or co-authored
+ by an employee, contractor or affiliate of a national
+ government. As such, the Government retains a nonexclusive,
+ royalty-free right to publish or reproduce this article, or to
+ allow others to do so, for Government purposes only. Request
+ permissions from owner\hspace*{.5pt}/author(s).
+ \or % licensedothergov
+ Publication rights licensed to ACM\@. ACM acknowledges that this
+ contribution was authored or co-authored by an employee, contractor
+ or affiliate of a national government. As such, the Government
+ retains a nonexclusive, royalty-free right to publish or reproduce
+ this article, or to allow others to do so, for Government purposes
+ only. Request permissions from owner\hspace*{.5pt}/author(s).
+ \or % iw3c2w3
+ This paper is published under the Creative Commons Attribution~4.0
+ International (CC-BY~4.0) license. Authors reserve their rights to
+ disseminate the work on their personal and corporate Web sites with
+ the appropriate attribution.
+ \or % iw3c2w3g
+ This paper is published under the Creative Commons
+ Attribution-NonCommercial-NoDerivs~4.0 International
+ (CC-BY-NC-ND~4.0) license. Authors reserve their rights to
+ disseminate the work on their personal and corporate Web sites with
+ the appropriate attribution.
+ \or % CC
+ \@ACM@copyright@check@cc
+ \IfEq{\ACM@cc@type}{zero}{%
+ \def\ACM@CC@Url{https://creativecommons.org/publicdomain/zero/1.0/legalcode}}{%
+ \edef\ACM@CC@Url{https://creativecommons.org/licenses/\ACM@cc@type/\ACM@cc@version/legalcode}}%
+ \href{\ACM@CC@Url}{\includegraphics[height=5ex]{doclicense-CC-\ACM@cc@type-88x31}}\\
+ \href{\ACM@CC@Url}{%
+ This work is licensed under a Creative Commons
+ \IfEq{\ACM@cc@type}{zero}{CC0 1.0 Universal}{%
+ \IfEq{\ACM@cc@type}{by}{Attribution}{}%
+ \IfEq{\ACM@cc@type}{by-sa}{Attribution-ShareAlike}{}%
+ \IfEq{\ACM@cc@type}{by-nd}{Attribution-NoDerivatives}{}%
+ \IfEq{\ACM@cc@type}{by-nc}{Attribution-NonCommercial}{}%
+ \IfEq{\ACM@cc@type}{by-nc-sa}{Attribution-NonCommercial-ShareAlike}{}%
+ \IfEq{\ACM@cc@type}{by-nc-nd}{Attribution-NonCommercial-NoDerivatives}{}%
+ ~\IfEq{\ACM@cc@version}{4.0}{4.0 International}{3.0 Unported}%
+ }
+ License.}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%%
+%
+% \begin{macro}{\copyrightyear}
+% By default, the copyright year is the same as \cs{acmYear}, but
+% one can override this:
+% \begin{macrocode}
+\def\copyrightyear#1{\def\@copyrightyear{#1}}
+\copyrightyear{\@acmYear}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@teaserfigures}
+% The teaser figures container
+% \begin{macrocode}
+\def\@teaserfigures{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{teaserfigure}
+% The teaser figure
+% \begin{macrocode}
+\newenvironment{teaserfigure}{\Collect@Body\@saveteaser}{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@saveteaser}
+% Saving the teaser
+% \begin{macrocode}
+\long\def\@saveteaser#1{\g@addto@macro\@teaserfigures{\@teaser{#1}}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\thanks}
+% We redefine |amsart| \cs{thanks} so the |anonymous| key works
+% \begin{macrocode}
+\renewcommand{\thanks}[1]{%
+ \@ifnotempty{#1}{%
+ \if@ACM@anonymous
+ \g@addto@macro\thankses{\thanks{A note}}%
+ \else
+ \g@addto@macro\thankses{\thanks{#1}}%
+ \fi}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\anon}
+% \changes{v1.82}{2022/01/11}{Introduced macro}%
+% We provide \cs{anon} command, which obscures parts of the text
+% if the package option |anonymous| is set
+% \begin{macrocode}
+\newcommand{\anon}[2][ANONYMIZED]{%
+ \if@ACM@anonymous%
+ {\color{ACMOrange}#1}%
+ \else%
+ #2%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%\subsection{Maketitle hook}
+%\label{sec:hook}
+%
+% The current \LaTeX\ provides a nice |lthooks| mechanism. However,
+% since it is relatively new, we will use oldfashioned approach---at
+% least for now.
+%
+% \begin{macro}{\@beginmaketitlehook}
+% \changes{v1.75}{2020/11/15}{Introduced macro}
+% The hook
+% \begin{macrocode}
+\ifx\@beginmaketitlehook\@undefined
+ \let\@beginmaketitlehook\@empty
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\AtBeginMaketitle}
+% \changes{v1.75}{2020/11/15}{Introduced macro}
+% Adding to the hook
+% \begin{macrocode}
+\def\AtBeginMaketitle{\g@addto@macro\@beginmaketitlehook}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%\subsection{ACM Engage top matter}
+%\label{sec:acmengagetop}
+%
+% \begin{macro}{\@acmengagemetadata}
+% \changes{v1.85}{2022/05/08}{Introduced macro}
+% The special metadata for ACM engage course materials
+% \begin{macrocode}
+\def\@acmengagemetadata{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\setengagemetadata}
+% \changes{v1.85}{2022/05/08}{Introduced macro}
+% Adding topic to engage metadata
+% \begin{macrocode}
+\def\setengagemetadata#1#2{%
+ \g@addto@macro{\@acmengagemetadata}{%
+ \@setengagemetadata{#1}{#2}}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \subsection{Typesetting top matter}
+% \label{sec:maketitle}
+%
+% \begin{macro}{\mktitle@bx}
+% Some of our formats use a two-column design. Some use a one-column
+% design. In all cases we use a wide title. Thus we typeset the top
+% matter in a special box to be used in the construction
+% \cs{@twocolumn}\oarg{box}.
+% \begin{macrocode}
+\newbox\mktitle@bx
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\maketitle}
+% \changes{v1.03}{2016/04/22}{Added special case of authorversion}
+% \changes{v1.07}{2016/05/03}{Corrected a bug with abstract footnotes}
+% \changes{v1.07}{2016/05/03}{Corrected a bug with permssion and
+% footnotes order}
+% \changes{v1.10}{2016/05/23}{Corrected a bug with doi in manuscript
+% and author vertsion,
+% \url{https://github.com/borisveytsman/acmart/issues/36}}
+% \changes{v1.12}{2016/05/30}{Moved thankses to copyrightpermission box}
+% \changes{v1.33}{2017/03/27}{Fixed the bug with figures on top and
+% bottom of the title page, thanks to David Epstein}
+% \changes{v1.34}{2017/04/09}{Deleted `DOI' from doi numbers}
+% \changes{v1.34}{2017/04/09}{Added date to the bibstrip in conf proceedings}
+% \changes{v1.34}{2017/04/09}{The \cs{terms} command is now obsolete}
+% \changes{v1.34}{2017/04/11}{Rearranged bibstrip}
+% \changes{v1.44}{2017/07/30}{Empty DOI or ISBN are not printed (by
+% Michael Ekstrand)}
+% \changes{v1.46}{2017/08/27}{Added authors' addresses}
+% \changes{v1.46}{2017/08/28}{Thankses go before authors' addresses}
+% \changes{v1.48}{2017/09/23}{Added acmart and version info to
+% pdfcreator tag}
+% \changes{v1.48}{2017/10/14}{Suppressed empty DOI (Serguei Mokhov)}
+% \changes{v1.48}{2017/11/18}{Added language and doctitle attributes
+% to PDF (Andreas Reichinger)}
+% \changes{v1.55}{2018/10/14}{Fixes topnum}
+% \changes{v1.58}{2019/01/23}{Original \cs{vspace} inside
+% \cs{maketitle}}
+% \changes{v1.64}{2019/08/17}{Added a switch setting to show that
+% \cs{maketitle} is typeset}
+% \changes{v1.72}{2020/06/14}{Do not andify authors for pdf metadata
+% (Scott Pakin)}
+% \changes{v1.73}{2020/09/07}{Do not check again the presense of
+% address fields}
+% \changes{v1.75}{2020/11/15}{Added \cs{@beginmaketitlehook}}
+% \changes{v1.76}{2021/04/05}{Put \cs{par} inside group for keywords}
+% \changes{v1.83}{2022/02/20}{I13n}
+% \changes{v1.85}{2022/05/08}{acmengage}
+% \changes{v1.87}{2022/07/30}{CC license are allowed for non-acm
+% publications}
+% \changes{v2.00}{2023/10/24}{Deleted acmPrice}
+% \changes{v2.00}{2023/11/05}{Added ``ACM'' for papers}
+% \changes{v2.03}{2024/12/04}{Special processing for conferences in TOG}
+% The (in)famous \cs{maketitle}. Note that in |sigchi-a| mode, authors
+% are \emph{not} in the title box.
+%
+% Another note: there is a subtle difference between author notes,
+% title notes and thanks. The latter two refer to the paper itself
+% and therefore belong to the copyright/permission block. By the
+% way, this was the default behavior of the old ACM classes.
+% \begin{macrocode}
+\def\maketitle{\@beginmaketitlehook
+ \@ACM@maketitle@typesettrue
+ \if@ACM@anonymous
+ % Anonymize omission of \author-s
+ \ifnum\num@authorgroups=0\author{}\fi
+ \fi
+ \begingroup
+ \let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig
+ \let\@footnotemark\@footnotemark@nolink
+ \let\@footnotetext\@footnotetext@nolink
+ \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+ \hsize=\textwidth
+ \def\@makefnmark{\hbox{\@textsuperscript{\@thefnmark}}}%
+ \@mktitle\if@ACM@sigchiamode\else\@mkauthors\fi\@mkteasers
+ \@printtopmatter
+ \if@ACM@sigchiamode\@mkauthors\fi
+ \setcounter{footnote}{0}%
+ \def\@makefnmark{\hbox{\@textsuperscript{\normalfont\@thefnmark}}}%
+ \@titlenotes
+ \@subtitlenotes
+ \@authornotes
+ \let\@makefnmark\relax
+ \let\@thefnmark\relax
+ \let\@makefntext\noindent
+ \ifx\@empty\thankses\else
+ \footnotetextauthorsaddresses{%
+ \def\par{\let\par\@par}\parindent\z@\@setthanks}%
+ \fi
+ \if@ACM@acmcp\else
+ \ifx\@empty\@authorsaddresses\else
+ \if@ACM@anonymous\else
+ \if@ACM@journal@bibstrip@or@tog
+ \footnotetextauthorsaddresses{%
+ \def\par{\let\par\@par}\parindent\z@\@setauthorsaddresses}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \if@ACM@nonacm
+ \ifnum\acm@copyrightmode=15\relax % cc
+ \footnotetextcopyrightpermission{\@copyrightpermission}%
+ \fi
+ \else
+ \if@ACM@acmcp\else
+ \footnotetextcopyrightpermission{%
+ \if@ACM@authordraft
+ \raisebox{-2ex}[\z@][\z@]{\makebox[0pt][l]{\large\bfseries
+ Unpublished working draft. Not for distribution.}}%
+ \color[gray]{0.9}%
+ \fi
+ \parindent\z@\parskip0.1\baselineskip
+ \if@ACM@authorversion\else
+ \if@printpermission\@copyrightpermission\par\fi
+ \fi
+ \if@ACM@manuscript\else
+ \if@ACM@journal@bibstrip\else % Print the conference information
+ \if@ACM@engage
+ {\itshape \@acmBooktitle, \@acmYear.}\par
+ \else
+ {\itshape \acmConference@shortname, \acmConference@date, \acmConference@venue}\par
+ \fi
+ \fi
+ \fi
+ \if@printcopyright
+ \copyright\ \@copyrightyear\ \@copyrightowner\\
+ \else
+ \@copyrightyear.\
+ \fi
+ \if@ACM@manuscript
+ Manuscript submitted to ACM\\
+ \else
+ \if@ACM@authorversion
+ This is the author's version of the work. It is posted here for
+ your personal use. Not for redistribution. The definitive Version
+ of Record was published in
+ \if@ACM@journal@bibstrip
+ \emph{\@journalName}%
+ \else
+ \emph{\@acmBooktitle}%
+ \fi
+ \ifx\@acmDOI\@empty
+ .
+ \else
+ , \@formatdoi{\@acmDOI}.
+ \fi\\
+ \else
+ \if@ACM@nonacm\else
+ \if@ACM@journal@bibstrip
+ ACM~\@permissionCodeTwo/\@acmYear/\@acmMonth-ART\@acmArticle\\
+ \@formatdoi{\@acmDOI}%
+ \else % Conference
+ \ifx\@acmISBN\@empty\else ACM~ISBN~\@acmISBN\\\fi
+ \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi%
+ \fi
+ \fi
+ \fi
+ \fi}%
+ \fi
+ \fi
+ \endgroup
+ \if@ACM@engage\@typesetengagemetadata\fi
+ \setcounter{footnote}{0}%
+ \@mkabstract
+ \ifx\@translatedabstracts\@empty\else
+ \@translatedabstracts\fi
+ \if@ACM@printccs
+ \ifx\@concepts\@empty\else\bgroup
+ {\@specialsection{CCS Concepts}%
+ \noindent\@concepts\par}\egroup
+ \fi
+ \fi
+ \if@ACM@acmcp\else
+ \ifx\@keywords\@empty\else\bgroup
+ {\@specialsection{\keywordsname}%
+ \noindent\@keywords\par}\egroup
+ \fi
+ \ifx\@translatedkeywords\@empty\else
+ \@translatedkeywords
+ \fi
+ \fi
+ \let\metadata@authors=\authors
+ \nxandlist{, }{, }{, }\metadata@authors
+ \def\@ACM@checkaffil{}%
+ \hypersetup{%
+ pdfauthor={\metadata@authors},
+ pdftitle={\@title},
+ pdfsubject={\@concepts},
+ pdfkeywords={\@keywords},
+ pdfcreator={LaTeX with acmart
+ \csname ver@acmart.cls\endcsname\space
+ and hyperref
+ \csname ver@hyperref.sty\endcsname}}%
+ \andify\authors
+ \andify\shortauthors
+ \global\let\authors=\authors
+ \global\let\shortauthors=\shortauthors
+ \if@ACM@printacmref
+ \@mkbibcitation
+ \fi
+ \global\@topnum\z@ % this prevents floats from falling
+ % at the top of page 1
+ \global\@botnum\z@ % we do not want them to be on the bottom either
+ \@printendtopmatter
+ \@afterindentfalse
+ \@afterheading
+ \if@ACM@acmcp
+ \set@ACM@acmcpbox
+ \AtEndDocument{\end@ACM@color@frame}%
+ \@ACM@color@frame
+ \fi
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\set@ACM@acmcpbox}
+% \changes{v1.87}{2022/08/14}{Added macro}
+% \changes{v1.89}{2022/12/25}{Added logo}
+% \changes{v1.89}{2022/12/25}{Added zref position of the bottom}
+% Setting infobox for acmcp
+% \begin{macrocode}
+\newbox\@ACM@acmcpbox
+\def\set@ACM@acmcpbox{%
+ \bgroup
+ \hsize=5pc
+ \global\setbox\@ACM@acmcpbox=\vbox{%
+ \setlength{\parindent}{\z@}%
+ {\includegraphics[width=\hsize]{acm-jdslogo}\par}%
+ \scriptsize
+ \ifnum\getrefnumber{TotPages}>1\else
+ \zrefused{@ACM@acmcpbox@y}%
+ \zrefused{@ACM@acmcpframe@y}%
+ \@tempdima=\dimexpr\zposy{@ACM@acmcpbox@y}sp -
+ \zposy{@ACM@acmcpframe@y}sp+0.3\FrameSep+
+ \@ACM@acmcp@delta\relax
+ \ifdim\@tempdima>0pt\relax
+ \vspace*{\@tempdima}%
+ \protected@write\@auxout{}%
+ {\string\global\@ACM@acmcp@delta=\the\@tempdima\relax}%
+ \fi
+ \fi
+ \ifx\@acmCodeDataLink\@empty\else\bigskip
+ Code and data links:\\ \@acmCodeDataLink\par\bigskip
+ \fi
+ \ifx\@keywords\@empty\else\bigskip
+ Keywords: \@keywords\par
+ \fi
+ \ifx\@acmContributions\@empty\else\bigskip
+ \@acmContributions\par
+ \fi
+ \ifx\@empty\@authorsaddresses\else\bigskip\@setauthorsaddresses\fi
+ \zsaveposy{@ACM@acmcpbox@y}%
+ }
+\egroup}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@specialsection}
+% \changes{v1.66}{2019/11/23}{Suppress warnings about \cs{vspace}}
+% \changes{v1.67}{2020/01/11}{Paragraph inside group does not print
+% its argument. Added a bugfix}
+% \changes{v1.68}{2020/01/19}{Deleted grouping altogether}
+% \changes{v1.69}{2020/02/02}{Changed dot to colon for sigplan}
+% \changes{v1.78}{2021/05/02}{Again suppressed \cs{vspace} warning}
+% \changes{1.85}{2022/05/08}{Added: acmengage}
+% This macro starts sections for proceedings and uses \cs{small} for journals
+% \begin{macrocode}
+\def\@specialsection#1{%
+ \let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig
+ \ifcase\ACM@format@nr
+ \relax % manuscript
+ \par\medskip\small\noindent#1: %
+ \or % acmsmall
+ \par\medskip\small\noindent#1: %
+ \or % acmlarge
+ \par\medskip\small\noindent#1: %
+ \or % acmtog
+ \par\medskip\small\noindent#1: %
+ \or % sigconf
+ \section*{#1}%
+ \or % siggraph
+ \section*{#1}%
+ \or % sigplan
+ \noindentparagraph*{#1:~}%
+ \or % sigchi
+ \section*{#1}%
+ \or % sigchi-a
+ \section*{#1}%
+ \or % acmengage
+ \section*{#1}%
+ \or % acmcp
+ \section*{#1}%
+ \fi
+ \let\@vspace\@vspace@acm
+ \let\@vspacer\@vspacer@acm
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@printtopmatter}
+% \changes{v1.06}{2016/05/01}{Added processing badges}
+% \changes{v1.46}{2017/08/29}{Deleted rule}
+% \changes{v1.78}{2021/05/16}{Added processing the overflowing title box}
+% \changes{1.85}{2022/05/08}{Added: acmengage}
+% \changes{1.89}{2022/12/27}{Moved badges to top header}
+% The printing of top matter starts a new page and uses the given
+% title box.
+%
+% Note that if there are too many authors, |\mktitle@bx| might
+% overflow the page. Therefore we start with checking this and if
+% this happens, we split the box and print it page by page.
+% \begin{macrocode}
+\def\@printtopmatter{%
+ \ifx\@startPage\@empty
+ \gdef\@startPage{1}%
+ \else
+ \setcounter{page}{\@startPage}%
+ \fi
+ \@tempdima=\ht\mktitle@bx
+ \advance\@tempdima by \dp\mktitle@bx
+ \ifdim\@tempdima>0.9\textheight
+ \loop
+ \setbox\@tempboxa=\vsplit \mktitle@bx to 0.9\textheight
+ \thispagestyle{firstpagestyle}%
+ \noindent\unvbox\@tempboxa
+ \clearpage
+ \@tempdima=\ht\mktitle@bx
+ \advance\@tempdima by \dp\mktitle@bx
+ \ifdim\@tempdima>0.9\textheight\repeat
+ \fi
+ \thispagestyle{firstpagestyle}%
+ \noindent
+ \ifcase\ACM@format@nr
+ \relax % manuscript
+ \box\mktitle@bx\par
+ \or % acmsmall
+ \box\mktitle@bx\par
+ \or % acmlarge
+ \box\mktitle@bx\par
+ \or % acmtog
+ \twocolumn[\box\mktitle@bx]%
+ \or % sigconf
+ \twocolumn[\box\mktitle@bx]%
+ \or % siggraph
+ \twocolumn[\box\mktitle@bx]%
+ \or % sigplan
+ \twocolumn[\box\mktitle@bx]%
+ \or % sigchi
+ \twocolumn[\box\mktitle@bx]%
+ \or % sigchi-a
+ \par\box\mktitle@bx\par\bigskip
+ \or % acmengage
+ \twocolumn[\box\mktitle@bx]%
+ \or % acmcp
+ \box\mktitle@bx\par
+ \fi
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@mktitle}
+% \changes{1.85}{2022/05/08}{Added: acmengage}
+% The title of the article
+% \begin{macrocode}
+\def\@mktitle{%
+ \ifcase\ACM@format@nr
+ \relax % manuscript
+ \@mktitle@i
+ \or % acmsmall
+ \@mktitle@i
+ \or % acmlarge
+ \@mktitle@i
+ \or % acmtog
+ \@mktitle@i
+ \or % sigconf
+ \@mktitle@iii
+ \or % siggraph
+ \@mktitle@iii
+ \or % sigplan
+ \@mktitle@iii
+ \or % sigchi
+ \@mktitle@iii
+ \or % sigchi-a
+ \@mktitle@iv
+ \or % acmengage
+ \@mktitle@iii
+ \or % acmcp
+ \@mktitle@i
+ \fi
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@titlefont}
+% \changes{v1.06}{2016/05/01}{Added macro}
+% \changes{v1.45}{2017/08/15}{Switched \cs{bfeseries}\cs{sffamily} to
+% \cs{sffamily}\cs{bfseries}}
+% \changes{1.85}{2022/05/08}{Added: acmengage}
+% The font to typeset the title
+% \begin{macrocode}
+\def\@titlefont{%
+ \ifcase\ACM@format@nr
+ \relax % manuscript
+ \LARGE\sffamily\bfseries
+ \or % acmsmall
+ \LARGE\sffamily\bfseries
+ \or % acmlarge
+ \LARGE\sffamily\bfseries
+ \or % acmtog
+ \Huge\sffamily
+ \or % sigconf
+ \Huge\sffamily\bfseries
+ \or % siggraph
+ \Huge\sffamily\bfseries
+ \or % sigplan
+ \Huge\bfseries
+ \or % sigchi
+ \Huge\sffamily\bfseries
+ \or % sigchi-a
+ \Huge\bfseries
+ \or % acmengage
+ \Huge\sffamily\bfseries
+ \or % acmcp
+ \LARGE\sffamily\bfseries
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@subtitlefont}
+% \changes{v1.06}{2016/05/01}{Added macro}
+% \changes{v1.33}{2017/03/12}{Added \cs{normalsize}}
+% \changes{1.85}{2022/05/08}{Added: acmengage}
+% The font to typeset the subtitle
+% \begin{macrocode}
+\def\@subtitlefont{\normalsize
+ \ifcase\ACM@format@nr
+ \relax % manuscript
+ \mdseries
+ \or % acmsmall
+ \mdseries
+ \or % acmlarge
+ \mdseries
+ \or % acmtog
+ \LARGE
+ \or % sigconf
+ \LARGE\mdseries
+ \or % siggraph
+ \LARGE\mdseries
+ \or % sigplan
+ \LARGE\mdseries
+ \or % sigchi
+ \LARGE\mdseries
+ \or % sigchi-a
+ \mdseries
+ \or % acmengage
+ \LARGE\mdseries
+ \or % acmcp
+ \mdseries
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@mktitle@i}
+% \changes{v1.06}{2016/05/01}{Made generic}
+% \changes{v1.06}{2016/05/01}{Added processing badges}
+% \changes{v1.83}{2022/02/20}{Added \cs{translatedtitle} and
+% \cs{translatedsubtitle}}
+% \changes{v1.87}{2022/08/14}{Special treatment for acmcp}
+% \changes{v1.88}{2022/10/24}{Moved down title for acmcp}
+% \changes{v1.89}{2022/12/27}{Moved badges to top header}
+% \changes{v1.89}{2023/01/07}{Moved up acmcp title}
+% The version of \cs{mktitle} for most journals
+% \begin{macrocode}
+\def\@mktitle@i{\hsize=\textwidth
+ \if@ACM@acmcp
+ \advance\hsize by -6pc%
+ \fi
+ \@ACM@title@width=\hsize
+ \setbox\mktitle@bx=\vbox{\noindent\@titlefont
+ \parbox[t]{\@ACM@title@width}{\raggedright
+ \@titlefont\noindent
+ \@title\@translatedtitle%
+ \ifx\@subtitle\@empty\else
+ \par\noindent{\@subtitlefont\@subtitle\@translatedsubtitle}%
+ \fi}%
+ \par\bigskip}}%
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@mktitle@ii}
+% \changes{v1.06}{2016/05/01}{Now this macro is obsolete}
+% The version of \cs{mktitle} for TOG. Since v1.06, this is subsumed by
+% the \cs{mktitle@i} macro
+% \end{macro}
+%
+%
+% \begin{macro}{\@mktitle@iii}
+% \changes{v1.06}{2016/05/01}{Made more generic}
+% \changes{v1.06}{2016/05/01}{Added processing badges}
+% \changes{v1.83}{2022/02/20}{Added \cs{translatedtitle} and
+% \cs{translatedsubtitle}}
+% \changes{v1.89}{2022/12/27}{Moved badges to top header}
+% The version of \cs{@mktitle} for SIG proceedings.
+% \begin{macrocode}
+\def\@mktitle@iii{\hsize=\textwidth
+ \setbox\mktitle@bx=\vbox{\@titlefont\centering
+ \@ACM@title@width=\hsize
+ \parbox[t]{\@ACM@title@width}{\centering\@titlefont
+ \@title\@translatedtitle%
+ \ifx\@subtitle\@empty\else
+ \par\noindent{\@subtitlefont\@subtitle\@translatedsubtitle}
+ \fi
+ }%
+ \par\bigskip}}%
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@mktitle@iv}
+% \changes{v1.06}{2016/05/01}{Made more generic}
+% \changes{v1.83}{2022/02/20}{Added \cs{translatedtitle} and
+% \cs{translatedsubtitle}}
+% The version of \cs{@mktitle} for |sigchi-a|
+% \begin{macrocode}
+\def\@mktitle@iv{\hsize=\textwidth
+ \setbox\mktitle@bx=\vbox{\raggedright\leftskip5pc\@titlefont
+ \noindent\leavevmode\leaders\hrule height 2pt\hfill\kern0pt\par
+ \noindent\@title\@translatedtitle%
+ \ifx\@subtitle\@empty\else
+ \par\noindent\@subtitlefont\@subtitle\@translatedsubtitle%
+ \fi
+ \par\bigskip}}%
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@ACM@addtoaddress}
+% \changes{v1.15}{2016/07/03}{Added macro}
+% \changes{v1.33}{2017/03/28}{Added obeypunctuation code}
+% This macro adds an item to the address using the following rules:
+% \begin{enumerate}
+% \item If we start a paragraph, add the item
+% \item Otherwise, add a comma and the item
+% \item However, the comma is deleted if it is at the end of a
+% line. We use the magic \cs{cleaders} trick for this.
+% \end{enumerate}
+% \begin{macrocode}
+\newbox\@ACM@commabox
+\def\@ACM@addtoaddress#1{%
+ \ifvmode\else
+ \if@ACM@affiliation@obeypunctuation\else
+ \setbox\@ACM@commabox=\hbox{, }%
+ \unskip\cleaders\copy\@ACM@commabox\hskip\wd\@ACM@commabox
+ \fi\fi
+ #1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\institution}
+% \changes{v1.15}{2016/07/03}{Added macro}
+% \changes{v1.33}{2017/03/28}{Added obeypunctuation code}
+% \changes{v1.73}{2020/09/07}{Check the presence in affil}
+% \begin{macro}{\position}
+% \changes{v1.15}{2016/07/03}{Added macro}
+% \changes{v1.33}{2017/03/28}{Added obeypunctuation code}
+% \begin{macro}{\department}
+% \changes{v1.15}{2016/07/03}{Added macro}
+% \changes{v1.30}{2017/02/10}{Added optional parameter}
+% \changes{v1.33}{2017/03/28}{Added obeypunctuation code}
+% \begin{macro}{\streetaddress}
+% \changes{v1.15}{2016/07/03}{Added macro}
+% \changes{v1.33}{2017/03/28}{Added obeypunctuation code}
+% \changes{v1.40}{2017/06/15}{We now do not print this even in SIG}
+% \changes{v2.06}{2024/04/13}{We now do not collect postal information
+% anymore}
+% \begin{macro}{\city}
+% \changes{v1.15}{2016/07/03}{Added macro}
+% \changes{v1.33}{2017/03/28}{Added obeypunctuation code}
+% \changes{v1.40}{2017/06/15}{We now do not print this even in SIG}
+% \changes{v1.73}{2020/09/07}{Check the presence in affil}
+% \begin{macro}{\state}
+% \changes{v1.15}{2016/07/03}{Added macro}
+% \changes{v1.33}{2017/03/28}{Added obeypunctuation code}
+% \changes{v1.40}{2017/06/15}{We now do not print this even in SIG}
+% \begin{macro}{\postcode}
+% \changes{v1.15}{2016/07/03}{Added macro}
+% \changes{v1.33}{2017/03/28}{Added obeypunctuation code}
+% \changes{v1.40}{2017/06/15}{We now do not print this even in SIG}
+% \changes{v2.06}{2024/04/13}{We now do not collect postal information
+% anymore}
+% \begin{macro}{\country}
+% \changes{v1.15}{2016/07/03}{Added macro}
+% \changes{v1.33}{2017/03/28}{Added obeypunctuation code}
+% \changes{v1.40}{2017/05/27}{Fixed bugs with extra spaces}
+% \changes{v1.43}{2017/07/11}{Added comma before country for journals}
+% \changes{v1.46}{2017/08/30}{Corrected spacing for institution}
+% \changes{v1.73}{2020/09/07}{Check the presence in affil}
+% \changes{v1.86}{2022/06/26}{Error if country is empty}
+% Theoretically we can define the macros for \cs{affiliation} inside
+% the \cs{@mkauthors}-style commands. However, this would lead to a
+% strange error if an author uses them outside \cs{affiliation}. Of
+% course we can make them produce an error message, but\ldots
+% \begin{macrocode}
+\def\streetaddress#1{\ClassWarning{\@classname}{ACM no longer collects
+ authors' postal addresses. I am ignoring your street
+ address}\unskip\ignorespaces}
+\def\postcode#1{\ClassWarning{\@classname}{ACM no longer collects
+ authors' postal addresses. I am ignoring your postal
+ code}\unskip\ignorespaces}
+\if@ACM@journal
+ \def\position#1{\unskip\ignorespaces}
+ \def\institution#1{\global\@ACM@instpresenttrue
+ \unskip~#1\ignorespaces}
+ \def\city#1{\global\@ACM@citypresenttrue\unskip\ignorespaces}
+ \def\state#1{\unskip\ignorespaces}
+ \newcommand\department[2][0]{\unskip\ignorespaces}
+ \def\country#1{\StrDel{#1}{ }[\@tempa]%
+ \ifx\@tempa\@empty\else
+ \global\@ACM@countrypresenttrue\fi
+ \if@ACM@affiliation@obeypunctuation\else, \fi#1\ignorespaces}
+\else
+ \def\position#1{\if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
+ \def\institution#1{\global\@ACM@instpresenttrue
+ \if@ACM@affiliation@obeypunctuation#1\else#1\par\fi}%
+ \newcommand\department[2][0]{\if@ACM@affiliation@obeypunctuation
+ #2\else#2\par\fi}%
+ \def\city#1{\global\@ACM@citypresenttrue\@ACM@addtoaddress{#1}}%
+ \let\state\@ACM@addtoaddress
+ \def\country#1{\global\@ACM@countrypresenttrue\@ACM@addtoaddress{#1}}%
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@mkauthors}
+% \changes{v1.17}{2016/07/09}{TOG now uses the same authors block as
+% other journals}
+% \changes{1.85}{2022/05/08}{Added: acmengage}
+% Typesetting the authors
+% \begin{macrocode}
+\def\@mkauthors{\begingroup
+ \hsize=\textwidth
+ \ifcase\ACM@format@nr
+ \relax % manuscript
+ \@mkauthors@i
+ \or % acmsmall
+ \@mkauthors@i
+ \or % acmlarge
+ \@mkauthors@i
+ \or % acmtog
+ \@mkauthors@i
+ \or % sigconf
+ \@mkauthors@iii
+ \or % siggraph
+ \@mkauthors@iii
+ \or % sigplan
+ \@mkauthors@iii
+ \or % sigchi
+ \@mkauthors@iii
+ \or % sigchi-a
+ \@mkauthors@iv
+ \or % acmengage
+ \@mkauthors@iii
+ \or % acmcp
+ \@mkauthors@i
+ \fi
+ \endgroup
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@authorfont}
+% Somehow different conferences use different fonts for author
+% names. Why?
+% \begin{macrocode}
+\def\@authorfont{\Large\sffamily}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@affiliationfont}
+% Font for affiliations
+% \begin{macrocode}
+\def\@affiliationfont{\normalsize\normalfont}
+% \end{macrocode}
+% \end{macro}
+%
+% \changes{v1.13}{2016/06/06}{Font adjustments for acmsmall}
+% Adjusting fonts for different formats
+% \begin{macrocode}
+\ifcase\ACM@format@nr
+\relax % manuscript
+\or % acmsmall
+ \def\@authorfont{\large\sffamily}
+ \def\@affiliationfont{\small\normalfont}
+\or % acmlarge
+\or % acmtog
+ \def\@authorfont{\LARGE\sffamily}
+ \def\@affiliationfont{\large}
+\or % sigconf
+ \def\@authorfont{\LARGE}
+ \def\@affiliationfont{\large}
+\or % siggraph
+ \def\@authorfont{\normalsize\normalfont}
+ \def\@affiliationfont{\normalsize\normalfont}
+\or % sigplan
+ \def\@authorfont{\Large\normalfont}
+ \def\@affiliationfont{\normalsize\normalfont}
+\or % sigchi
+ \def\@authorfont{\bfseries}
+ \def\@affiliationfont{\mdseries}
+\or % sigchi-a
+ \def\@authorfont{\bfseries}
+ \def\@affiliationfont{\mdseries}
+\or % acmengage
+ \def\@authorfont{\LARGE}
+ \def\@affiliationfont{\large}
+\or % acmcp
+ \def\@authorfont{\large\sffamily}
+ \def\@affiliationfont{\small\normalfont}
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{\@typeset@author@line}
+% \changes{v1.18}{2016/07/12}{Added macro}
+% At this point we have \cs{@currentauthors} and
+% \cs{@currentaffiliations}. We typeset them in the journal style
+% \begin{macrocode}
+\def\@typeset@author@line{%
+ \andify\@currentauthors\par\noindent
+ \@currentauthors\def\@currentauthors{}%
+ \ifx\@currentaffiliations\@empty\else
+ \andify\@currentaffiliations
+ \unskip, {\@currentaffiliations}\par
+ \fi
+ \def\@currentaffiliations{}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\if@ACM@instpresent}
+% \changes{v1.73}{2020/09/07}{Added macro}
+% Whether the given affiliation has institution
+% \begin{macrocode}
+\newif\if@ACM@instpresent
+\@ACM@instpresenttrue
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\if@ACM@citypresent}
+% \changes{v1.73}{2020/09/07}{Added macro}
+% Whether the given affiliation has city
+% \begin{macrocode}
+\newif\if@ACM@citypresent
+\@ACM@citypresenttrue
+% \end{macrocode}
+%
+% \end{macro}
+% \begin{macro}{\if@ACM@countrypresent}
+% \changes{v1.73}{2020/09/07}{Added macro}
+% Whether the given affiliation has country
+% \begin{macrocode}
+\newif\if@ACM@countrypresent
+\@ACM@countrypresenttrue
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@ACM@resetaffil}
+% \changes{v1.73}{2020/09/07}{Added macro}
+% Reset affiliation flags
+% \begin{macrocode}
+\def\@ACM@resetaffil{%
+ \global\@ACM@instpresentfalse
+ \global\@ACM@citypresentfalse
+ \global\@ACM@countrypresentfalse
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@ACM@checkaffil}
+% \changes{v1.73}{2020/09/07}{Added macro}
+% \changes{v1.75}{2020/11/15}{Changed warning to error for country}
+% Check affiliation flags
+% \begin{macrocode}
+\def\@ACM@checkaffil{%
+ \if@ACM@instpresent\else
+ \ClassWarningNoLine{\@classname}{No institution present for an affiliation}%
+ \fi
+ \if@ACM@citypresent\else
+ \ClassWarningNoLine{\@classname}{No city present for an affiliation}%
+ \fi
+ \if@ACM@countrypresent\else
+ \ClassError{\@classname}{No country present for an affiliation}{ACM
+ requires each author to indicate their country using country macro.}%
+ \fi
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%
+%
+% \begin{macro}{\@mkauthors@i}
+% \changes{v1.18}{2016/07/12}{Now we andify affiliations}
+% \changes{v1.33}{2017/03/28}{Added obeypunctuation code}
+% \changes{v1.40}{2017/06/04}{Switched to MakeTextUppercase}
+% \changes{v1.73}{2020/09/07}{Check the presence of required elements
+% for affiliations}
+% \changes{v1.78}{2021/05/16}{Unboxing \cs{mktitle@bx}}
+% This version is used in most journal formats. Note that \cs{and} between
+% authors with the same affiliation becomes \verb*| and |:
+% \changes{v1.87}{2022/08/14}{Special treatment for acmcp}
+% \begin{macrocode}
+\def\@mkauthors@i{%
+ \def\@currentauthors{}%
+ \def\@currentaffiliations{}%
+ \global\let\and\@typeset@author@line
+ \def\@author##1{%
+ \ifx\@currentauthors\@empty
+ \gdef\@currentauthors{\@authorfont\MakeTextUppercase{##1}}%
+ \else
+ \g@addto@macro{\@currentauthors}{\and\MakeTextUppercase{##1}}%
+ \fi
+ \gdef\and{}}%
+ \def\email##1##2{}%
+ \def\affiliation##1##2{%
+ \def\@tempa{##2}\ifx\@tempa\@empty\else
+ \ifx\@currentaffiliations\@empty
+ \gdef\@currentaffiliations{%
+ \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
+ \setkeys{@ACM@affiliation@}{##1}%
+ \@ACM@resetaffil
+ \@affiliationfont##2\@ACM@checkaffil}%
+ \else
+ \g@addto@macro{\@currentaffiliations}{\and
+ \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
+ \setkeys{@ACM@affiliation@}{##1}\@ACM@resetaffil
+ ##2\@ACM@checkaffil}%
+ \fi
+ \fi
+ \global\let\and\@typeset@author@line}%
+ \if@ACM@acmcp
+ \advance\hsize by -6pc%
+ \fi
+ \global\setbox\mktitle@bx=\vbox{\noindent\unvbox\mktitle@bx\par\medskip
+ \noindent\addresses\@typeset@author@line
+ \par\medskip}%
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@mkauthors@ii}
+% \changes{v1.17}{2016/07/09}{Deleted}
+% The \cs{@mkauthors@ii} command was the version used in |acmtog|.
+% It is no longer necessary.
+%
+% \end{macro}
+%
+% \begin{macro}{\author@bx}
+% The box to put an individual author in
+% \begin{macrocode}
+\newbox\author@bx
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\author@bx@wd}
+% The width of the author box
+% \begin{macrocode}
+\newdimen\author@bx@wd
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\author@bx@sep}
+% The separation between author boxes
+% \begin{macrocode}
+\newskip\author@bx@sep
+\author@bx@sep=1pc\relax
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@typeset@author@bx}
+% \changes{v1.15}{2016/07/04}{Moved to separate macro}
+% \changes{v1.61}{2019/05/26}{Added \cs{normalbaselines}}
+% Typesetting the box with authors. Note that in |sigchi-a| the box
+% is not centered.
+% \begin{macrocode}
+\def\@typeset@author@bx{\bgroup\hsize=\author@bx@wd
+ \def\and{\par}\normalbaselines
+ \global\setbox\author@bx=\vtop{\if@ACM@sigchiamode\else\centering\fi
+ \@authorfont\@currentauthors\par\@affiliationfont
+ \@currentaffiliation}\egroup
+ \box\author@bx\hspace{\author@bx@sep}%
+ \gdef\@currentauthors{}%
+ \gdef\@currentaffiliation{}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@mkauthors@iii}
+% \changes{v1.15}{2016/07/04}{New authors system}
+% \changes{v1.33}{2017/03/28}{Added obeypunctuation code}
+% \changes{v1.36}{2017/05/12}{Added authorsperrow overrride}
+% \changes{v1.73}{2020/09/07}{Check the presence of required elements
+% for affiliations}
+% \changes{v1.78}{2021/05/16}{Unboxing \cs{mktitle@bx}}
+% The |sigconf| version. Here we use a centered design with each
+% author in a separate box.
+% \begin{macrocode}
+\def\@mkauthors@iii{%
+% \end{macrocode}
+% First, we need to determine the design of the author strip. The
+% boxes are separated by \cs{author@bx@sep} plus two
+% \cs{author@bx@sep} margins. This means that each box must be of
+% width $(\cs{textwidth}-\cs{author@bx@sep})/N-\cs{author@bx@sep}$,
+% where $N$ is the number of boxes per row.
+% \begin{macrocode}
+ \author@bx@wd=\textwidth\relax
+ \advance\author@bx@wd by -\author@bx@sep\relax
+ \ifnum\@ACM@authorsperrow>0\relax
+ \divide\author@bx@wd by \@ACM@authorsperrow\relax
+ \else
+ \ifcase\num@authorgroups
+ \relax % 0?
+ \or % 1=one author per row
+ \or % 2=two authors per row
+ \divide\author@bx@wd by \num@authorgroups\relax
+ \or % 3=three authors per row
+ \divide\author@bx@wd by \num@authorgroups\relax
+ \or % 4=two authors per row (!)
+ \divide\author@bx@wd by 2\relax
+ \else % three authors per row
+ \divide\author@bx@wd by 3\relax
+ \fi
+ \fi
+ \advance\author@bx@wd by -\author@bx@sep\relax
+% \end{macrocode}
+% Now, parsing of \cs{addresses}:
+% \begin{macrocode}
+ \gdef\@currentauthors{}%
+ \gdef\@currentaffiliation{}%
+ \def\@author##1{\ifx\@currentauthors\@empty
+ \gdef\@currentauthors{\par##1}%
+ \else
+ \g@addto@macro\@currentauthors{\par##1}%
+ \fi
+ \gdef\and{}}%
+ \def\email##1##2{\ifx\@currentaffiliation\@empty
+ \gdef\@currentaffiliation{\bgroup
+ \mathchardef\UrlBreakPenalty=10000\nolinkurl{##2}\egroup}%
+ \else
+ \g@addto@macro\@currentaffiliation{\par\bgroup
+ \mathchardef\UrlBreakPenalty=10000\nolinkurl{##2}\egroup}%
+ \fi}%
+ \def\affiliation##1##2{\ifx\@currentaffiliation\@empty
+ \gdef\@currentaffiliation{%
+ \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
+ \setkeys{@ACM@affiliation@}{##1}\@ACM@resetaffil
+ ##2\@ACM@checkaffil}%
+ \else
+ \g@addto@macro\@currentaffiliation{\par
+ \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
+ \setkeys{@ACM@affiliation@}{##1}\@ACM@resetaffil
+ ##2\@ACM@checkaffil}%
+ \fi
+ \global\let\and\@typeset@author@bx
+}%
+% \end{macrocode}
+% Actual typesetting is done by the \cs{and} macro:
+% \begin{macrocode}
+ \hsize=\textwidth
+ \global\setbox\mktitle@bx=\vbox{\noindent
+ \unvbox\mktitle@bx\par\medskip\leavevmode
+ \lineskip=1pc\relax\centering\hspace*{-1em}%
+ \addresses\let\and\@typeset@author@bx\and\par\bigskip}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@mkauthors@iv}
+% \changes{v1.33}{2017/03/28}{Added obeypunctuation code}
+% \changes{v1.36}{2017/05/12}{Added authorsperrow overrride}
+% \changes{v1.73}{2020/09/07}{Check the presence of required elements
+% for affiliations}
+% The |sigchi-a| version. We put authors in the main text with
+% no more than 2 authors per line, unless overriden.
+% \begin{macrocode}
+\def\@mkauthors@iv{%
+% \end{macrocode}
+% First, we need to determine the design of the author strip. The
+% boxes are separated by \cs{author@bx@sep} plus two
+% \cs{author@bx@sep} margins. This means that each box must be of
+% width $(\cs{textwidth}-\cs{author@bx@sep})/N-\cs{author@bx@sep}$,
+% where $N$ is the number of boxes per row.
+% \begin{macrocode}
+ \author@bx@wd=\columnwidth\relax
+ \advance\author@bx@wd by -\author@bx@sep\relax
+ \ifnum\@ACM@authorsperrow>0\relax
+ \divide\author@bx@wd by \@ACM@authorsperrow\relax
+ \else
+ \ifcase\num@authorgroups
+ \relax % 0?
+ \or % 1=one author per row
+ \else % 2=two authors per row
+ \divide\author@bx@wd by 2\relax
+ \fi
+ \fi
+ \advance\author@bx@wd by -\author@bx@sep\relax
+% \end{macrocode}
+% Now, parsing of \cs{addresses}:
+% \begin{macrocode}
+ \gdef\@currentauthors{}%
+ \gdef\@currentaffiliation{}%
+ \def\@author##1{\ifx\@currentauthors\@empty
+ \gdef\@currentauthors{\par##1}%
+ \else
+ \g@addto@macro\@currentauthors{\par##1}%
+ \fi
+ \gdef\and{}}%
+ \def\email##1##2{\ifx\@currentaffiliation\@empty
+ \gdef\@currentaffiliation{\nolinkurl{##2}}%
+ \else
+ \g@addto@macro\@currentaffiliation{\par\nolinkurl{##2}}%
+ \fi}%
+ \def\affiliation##1##2{\ifx\@currentaffiliation\@empty
+ \gdef\@currentaffiliation{%
+ \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
+ \setkeys{@ACM@affiliation@}{##1}\@ACM@resetaffil
+ ##2\@ACM@checkaffil}%
+ \else
+ \g@addto@macro\@currentaffiliation{\par
+ \setkeys{@ACM@affiliation@}{obeypunctuation=false}%
+ \setkeys{@ACM@affiliation@}{##1}\@ACM@resetaffil
+ ##2\@ACM@checkaffil}%
+ \fi
+ \global\let\and\@typeset@author@bx}%
+%
+% \end{macrocode}
+% Actual typesetting is done by the \cs{and} macro
+% \begin{macrocode}
+ \bgroup\hsize=\columnwidth
+ \par\raggedright\leftskip=\z@
+ \lineskip=1pc\noindent
+ \addresses\let\and\@typeset@author@bx\and\par\bigskip\egroup}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@mkauthorsaddresses}
+% \changes{v1.46}{2017/08/27}{Introduced macro}
+% \changes{v1.65}{2019/10/13}{Deleted cs{@addpunct}}
+% \changes{v1.77}{2021/04/16}{New separator of institutions}
+% \changes{v2.06}{2024/04/13}{\cs{streetaddress} and \cs{postcode} now
+% produce warnings}
+% Typesetting authors' addresses in the footnote style
+% \begin{macrocode}
+\def\@mkauthorsaddresses{%
+ \ifnum\num@authors>1\relax
+ Authors' \else Author's \fi
+ Contact Information:
+ \bgroup
+ \def\streetaddress##1{\ClassWarning{\@classname}{ACM no longer collects
+ authors' postal addresses. I am ignoring your street
+ address}\unskip\ignorespaces}%
+ \def\postcode##1{\ClassWarning{\@classname}{ACM no longer collects
+ authors' postal addresses. I am ignoring your postal
+ code}\unskip\ignorespaces}%
+ \def\position##1{\unskip\ignorespaces}%
+ \gdef\@ACM@institution@separator{, }%
+ \def\institution##1{\unskip\@ACM@institution@separator ##1\gdef\@ACM@institution@separator{ and }}%
+ \def\city##1{\unskip, ##1}%
+ \def\state##1{\unskip, ##1}%
+ \renewcommand\department[2][0]{\unskip\@addpunct, ##2}%
+ \def\country##1{\unskip, ##1}%
+ \def\and{\unskip; \gdef\@ACM@institution@separator{, }}%
+ \def\@author##1{##1}%
+ \def\email##1##2{\unskip, \nolinkurl{##2}}%
+ \addresses
+ \egroup}
+% \end{macrocode}
+%
+% \changes{1.66}{2019/12/18}{Added warning for missing addresses}
+% \begin{macrocode}
+\AtEndDocument{\if@ACM@nonacm\else\if@ACM@journal
+ \ifx\@authorsaddresses\@empty
+ \ClassWarningNoLine{\@classname}{Authors'
+ addresses are mandatory for ACM journals}%
+ \fi\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@setaddresses}
+% This is an |amsart| macro that we do not need.
+% \begin{macrocode}
+\def\@setaddresses{}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@authornotemark}
+% Adding a footnote mark to authors. This version adds a ``normal''
+% footnote mark.
+% \begin{macrocode}
+\def\@authornotemark{\g@addto@macro\@currentauthors{\footnotemark\relax}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@@authornotemark}
+% \changes{v1.39}{2017/05/14}{Added macro}
+% Adding a footnote mark to authors with a given number
+% \begin{macrocode}
+\def\@@authornotemark#1{\g@addto@macro\@currentauthors{\footnotemark[#1]}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@mkteasers}
+% Typesetting the teasers
+% \changes{v1.56}{2018/11/1}{Added check for description}
+% \changes{v1.78}{2021/05/16}{Unboxing \cs{mktitle@bx}}
+% \begin{macrocode}
+\def\@mkteasers{%
+ \ifx\@teaserfigures\@empty\else
+ \def\@teaser##1{\par\bigskip\bgroup
+ \captionsetup{type=figure}##1\egroup\par}
+ \global\setbox\mktitle@bx=\vbox{\noindent\unvbox\mktitle@bx\par
+ \noindent\@Description@presentfalse
+ \@teaserfigures\par\if@Description@present\else
+ \global\@undescribed@imagestrue
+ \ClassWarning{\@classname}{A possible image without
+ description}\fi
+ \medskip}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@mkabstract}
+% \changes{v1.19}{2016/07/28}{Include 'Abstract' in PDF bookmarks
+% (Matthew Fluet)}
+% \changes{v1.20}{2016/08/03}{Deleted spurious space}
+% \changes{v1.29}{2017/01/22}{Removed spurious indentation (John
+% Wickerson)}
+% \changes{v1.48}{2017/09/16}{Removed spurious indentation if abstract
+% is followed by an empty line}
+% \changes{v1.83}{2022/02/20}{I13n}
+% Typesetting the abstract
+% \begin{macrocode}
+\def\@mkabstract{\bgroup
+ \ifx\@abstract\@lempty\else
+ {\phantomsection\addcontentsline{toc}{section}{\abstractname}%
+ \if@ACM@journal
+ \everypar{\setbox\z@\lastbox\everypar{}}\small
+ \else
+ \section*{\abstractname}%
+ \fi
+ \ignorespaces\@abstract\par}%
+ \fi\egroup}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@mktranslatedabstract}
+% \changes{v1.83}{2022/02/20}{Added macro}
+% Typesetting a translated abstract
+% \begin{macrocode}
+\def\@mktranslatedabstract#1{\selectlanguage{#1}%
+ \if@ACM@journal
+ \everypar{\setbox\z@\lastbox\everypar{}}\small
+ \else
+ \section*{\abstractname}%
+ \fi
+ \ignorespaces}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@mkbibcitation}
+% \changes{v1.17}{2016/07/10}{Changed format for sigs}
+% \changes{v1.17}{2016/07/10}{Added \cs{nobreak}}
+% \changes{v1.31}{2017/03/04}{Disabled linebreak}
+% \changes{v1.34}{2017/04/09}{Deleted DOI from doi numbers}
+% \changes{v1.44}{2017/07/30}{If the paper has just one page, use
+% `page' instead of `pages'}
+% \changes{v1.46}{2017/08/25}{Added subtitle}
+% \changes{v1.54}{2018/06/10}{Bug corrected (Ross Moore)}
+% \changes{v1.55}{2018/07/25}{Bug corrected}
+% \changes{v1.58}{2019/01/23}{Deleted spurious \cs{vspace} warning}
+% Print the |bibcitation| format
+% \begin{macrocode}
+\def\@mkbibcitation{\bgroup
+ \let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig
+ \def\@pages@word{\ifnum\getrefnumber{TotPages}=1\relax page\else pages\fi}%
+ \def\footnotemark{}%
+ \def\\{\unskip{} \ignorespaces}%
+ \def\footnote{\ClassError{\@classname}{Please do not use footnotes
+ inside a \string\title{} or \string\author{} command! Use
+ \string\titlenote{} or \string\authornote{} instead!}}%
+ \def\@article@string{\ifx\@acmArticle\@empty{\ }\else,
+ Article~\@acmArticle\ \fi}%
+ \par\medskip\small\noindent{\bfseries ACM Reference Format:}\par\nobreak
+ \noindent\bgroup
+ \def\\{\unskip{}, \ignorespaces}\authors\egroup. \@acmYear. \@title
+ \ifx\@subtitle\@empty. \else: \@subtitle. \fi
+ \if@ACM@nonacm\else
+ % The 'nonacm' option disables 'printacmref' by default,
+ % and the present \@mkbibcitation definition is never used
+ % in this case. The conditional remains useful if the user
+ % explicitly sets \settopmatter{printacmref=true}.
+ \if@ACM@journal@bibstrip
+ \textit{\@journalNameShort}
+ \@acmVolume, \@acmNumber \@article@string (\@acmPubDate),
+ \ref{TotPages}~\@pages@word.
+ \else
+ In \textit{\@acmBooktitle}%
+ \ifx\@acmEditors\@empty\textit{.}\else
+ \andify\@acmEditors\textit{, }\@acmEditors~\@editorsAbbrev.%
+ \fi\
+ ACM, New York, NY, USA%
+ \@article@string\unskip, \ref{TotPages}~\@pages@word.
+ \fi
+ \fi
+ \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi
+\par\egroup}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@printendtopmatter}
+% \changes{v1.46}{2017/08/28}{Made it \cs{par}\cs{bigskip} uniformly}
+% \changes{v1.58}{2019/01/23}{Deleted spurious \cs{vspace} warning}
+% \changes{v1.69}{2020/02/02}{Deleted grouping}
+% End the top matter
+% \begin{macrocode}
+\def\@printendtopmatter{%
+ \let\@vspace\@vspace@orig
+ \let\@vspacer\@vspacer@orig
+ \par\bigskip
+ \let\@vspace\@vspace@acm
+ \let\@vspacer\@vspacer@acm
+ }
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@setthanks}
+% We redefine \cs{\@setthanks} using \cs{long}
+% \begin{macrocode}
+\def\@setthanks{\long\def\thanks##1{\par##1\@addpunct.}\thankses}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@setauthorsaddresses}
+% \changes{v1.46}{2018/08/25}{Introduced macro}
+% \begin{macrocode}
+\def\@setauthorsaddresses{\@authorsaddresses\unskip\@addpunct.}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@typesetengagemetadata}
+% \changes{v1.85}{2022/05/08}{Introduced macro}
+% Typesetting special metadata for ACM Engage
+% \begin{macrocode}
+\def\@typesetengagemetadata{%
+ \def\@setengagemetadata##1##2{\par\noindent\textbf{##1} ##2\par}%
+ \@acmengagemetadata}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%\subsection{Headers and Footers}
+%\label{sec:head_foot}
+%
+% We use |fancyhdr| for our headers and footers:
+% \begin{macrocode}
+\RequirePackage{fancyhdr}
+% \end{macrocode}
+%
+% \begin{macro}{\ACM@restore@pagestyle}
+% \changes{v1.44}{2017/07/30}{Added macro}
+% The following code by Ross Moore protects against changes by
+% the |totpages| package:
+% \begin{macrocode}
+\let\ACM@ps@plain\ps@plain
+\let\ACM@ps@myheadings\ps@myheadings
+\let\ACM@ps@headings\ps@headings
+\def\ACM@restore@pagestyle{%
+ \let\ps@plain\ACM@ps@plain
+ \let\ps@myheadings\ACM@ps@myheadings
+ \let\ps@headings\ACM@ps@headings}
+\AtBeginDocument{\ACM@restore@pagestyle}
+% \end{macrocode}
+%
+%
+% \end{macro}
+%
+%
+%
+% \begin{macro}{\ACM@linecount@bx}
+% \changes{v1.34}{2017/04/10}{Rulers now are continuous}
+% \changes{v1.40}{2017/05/27}{Work around a bug in xcolor: looks like
+% cmyk colors in boxes do not work}
+% \changes{v1.46}{2017/08/28}{Rearranged the code to get rid of
+% spurious underfull messages (Benjamin Byholm)}
+% \changes{v1.64}{2019/08/24}{Bug fix: made the spacing on the left
+% and the right size equal}
+% This is the box displayed in review mode
+% \begin{macrocode}
+\if@ACM@review
+ \newsavebox{\ACM@linecount@bx}
+ \newlength\ACM@linecount@bxht
+ \newcount\ACM@linecount
+ \ACM@linecount\@ne\relax
+ \def\ACM@mk@linecount{%
+ \savebox{\ACM@linecount@bx}[4em][t]{\parbox[t]{4em}{\normalfont
+ \normalsize
+ \setlength{\ACM@linecount@bxht}{0pt}%
+ \loop{\color{red}\scriptsize\the\ACM@linecount}\\
+ \global\advance\ACM@linecount by \@ne
+ \addtolength{\ACM@linecount@bxht}{\baselineskip}%
+ \ifdim\ACM@linecount@bxht<\textheight\repeat
+ {\color{red}\scriptsize\the\ACM@linecount}\hfill
+ \global\advance\ACM@linecount by \@ne}}}
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\ACM@linecountL}
+% \changes{v1.33}{2017/03/29}{Renamed macro}
+% \changes{v1.34}{2017/04/10}{Rulers now are continuous}
+% How to display the box on the left
+% \begin{macrocode}
+\def\ACM@linecountL{%
+ \if@ACM@review
+ \ACM@mk@linecount
+ \begin{picture}(0,0)%
+ \put(-26,-22){\usebox{\ACM@linecount@bx}}%
+ \end{picture}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\ACM@linecountR}
+% \changes{v1.33}{2017/03/29}{Added macro}
+% \changes{v1.34}{2017/04/10}{Rulers now are continuous}
+% \changes{v1.69}{2020/02/02}{Do not increase numbers in one column format}
+% \changes{1.85}{2022/05/08}{Added: acmengage}
+% How to display the box on the right. In one column formats we do
+% not step the numbers.
+% \begin{macrocode}
+\def\ACM@linecountR{%
+ \if@ACM@review
+ \ifcase\ACM@format@nr
+ \relax % manuscript
+ \relax
+ \or % acmsmall
+ \relax
+ \or % acmlarge
+ \relax
+ \or % acmtog
+ \ACM@mk@linecount
+ \or % sigconf
+ \ACM@mk@linecount
+ \or % siggraph
+ \ACM@mk@linecount
+ \or % sigplan
+ \ACM@mk@linecount
+ \or % sigchi
+ \ACM@mk@linecount
+ \or % sigchi-a
+ \ACM@mk@linecount
+ \or % acmengage
+ \ACM@mk@linecount
+ \or % acmcp
+ \relax
+ \fi
+ \begin{picture}(0,0)%
+ \put(20,-22){\usebox{\ACM@linecount@bx}}%
+ \end{picture}%
+ \fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\ACM@timestamp}
+% \changes{v1.33}{2017/03/10}{Added macro (Michael D.~Adams)}
+% \changes{v1.33}{2017/03/28}{Added current page number}
+% \changes{v1.33}{2017/03/29}{Added submission id}
+% \changes{v1.48}{2017/09/16}{Fromatting change (Michael D.~Adams)}
+% The timestamp system
+% \begin{macrocode}
+\if@ACM@timestamp
+ % Subtracting 30 from \time gives us the effect of rounding down despite
+ % \numexpr rounding to nearest
+ \newcounter{ACM@time@hours}
+ \setcounter{ACM@time@hours}{\numexpr (\time - 30) / 60 \relax}
+ \newcounter{ACM@time@minutes}
+ \setcounter{ACM@time@minutes}{\numexpr \time - \theACM@time@hours * 60 \relax}
+ \newcommand\ACM@timestamp{%
+ \footnotesize%
+ \ifx\@acmSubmissionID\@empty\relax\else
+ Submission ID: \@acmSubmissionID.{ }%
+ \fi
+ \the\year-\two@digits{\the\month}-\two@digits{\the\day}{ }%
+ \two@digits{\theACM@time@hours}:\two@digits{\theACM@time@minutes}{. }%
+ Page \thepage\ of \@startPage--\pageref*{TotPages}.%
+ }
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@shortauthors}
+% \changes{v1.15}{2016/07/04}{Introduced macro}
+% \changes{v1.54}{2016/06/23}{Added submission id in anonymous mode}
+% Even if the author redefined \cs{shortauthors}, we do not print
+% it in the headers when in anonymous mode:
+% \begin{macrocode}
+\def\@shortauthors{%
+ \if@ACM@anonymous
+ Anon.
+ \ifx\@acmSubmissionID\@empty\else Submission Id: \@acmSubmissionID\fi
+ \else\shortauthors\fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@headfootfont}
+% \changes{v1.16}{2016/07/07}{Added macro}
+% \changes{v1.48}{2017/09/16}{Deleted unnecessary switch (Michael D.~Adams)}
+% \changes{v1.60}{2019/04/22}{Moved to footnotesize}
+% The font to typeset header and footer text.
+% \begin{macrocode}
+\def\@headfootfont{\sffamily\footnotesize}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{standardpagestyle}
+% \changes{v1.10}{2016/05/22}{Reversed folios location}
+% \changes{v1.13}{2016/06/06}{Suppressed folios if sig}
+% \changes{v1.13}{2016/06/06}{Added headers for sigs}
+% \changes{v1.13}{2016/06/06}{Expanded headers for sigchi-a}
+% \changes{v1.15}{2016/07/04}{Better handling of anonymous mode}
+% \changes{v1.16}{2016/07/07}{Customize header/footer text font}
+% \changes{v1.17}{2016/07/10}{Added paper title to sigs}
+% \changes{v1.29}{2017/01/22}{Corrected printfolios (Matthew Fluet)}
+% \changes{v1.33}{2017/03/10}{Added timestamp (Michael D.~Adams)}
+% \changes{v1.33}{2017/03/29}{Added right linecount for two-column formats}
+% The page style for all pages but the first one
+% \changes{v1.51}{2018/04/05}{We now use journal abbreviation for
+% footers}
+% \changes{v1.59}{2019/04/20}{Added logic for conference papers using
+% journal format}
+% \changes{v1.59}{2019/04/20}{Moved page styles to \cs{AtBeginDocument}}
+% \changes{v1.76}{2021/02/21}{Fixed bug with no line numbers for
+% nonacm}
+% \changes{v1.86}{2022/06/26}{Special treatment of ACM Engage materials}
+% \changes{v1.87}{2022/08/14}{Special treatment of ACMCP}
+% \changes{v1.91}{2023/06/22}{Redesigned ACMP labels}
+% \changes{v2.03}{2024/02/04}{Special treatment of ACM TOG}
+% The page style for all pages but the first one
+% \begin{macrocode}
+\AtBeginDocument{%
+\fancypagestyle{standardpagestyle}{%
+ \fancyhf{}%
+ \renewcommand{\headrulewidth}{\z@}%
+ \renewcommand{\footrulewidth}{\z@}%
+ \def\@acmArticlePage{%
+ \ifx\@acmArticle\empty%
+ \if@ACM@printfolios\thepage\fi%
+ \else%
+ \@acmArticle\if@ACM@printfolios:\thepage\fi%
+ \fi%
+ }%
+ \if@ACM@journal@bibstrip@or@tog
+ \ifcase\ACM@format@nr
+ \relax % manuscript
+ \fancyhead[LE]{\ACM@linecountL\if@ACM@printfolios\thepage\fi}%
+ \fancyhead[RO]{\if@ACM@printfolios\thepage\fi}%
+ \fancyhead[RE]{\@shortauthors}%
+ \fancyhead[LO]{\ACM@linecountL\shorttitle}%
+ \if@ACM@nonacm\else%
+ \fancyfoot[RO,LE]{\footnotesize Manuscript submitted to ACM}
+ \fi%
+ \or % acmsmall
+ \fancyhead[LE]{\ACM@linecountL\@headfootfont\@acmArticlePage}%
+ \fancyhead[RO]{\@headfootfont\@acmArticlePage}%
+ \fancyhead[RE]{\@headfootfont\@shortauthors}%
+ \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}%
+ \if@ACM@nonacm\else%
+ \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, Vol. \@acmVolume, No.
+ \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}%
+ \fi
+ \or % acmlarge
+ \fancyhead[LE]{\ACM@linecountL\@headfootfont
+ \@acmArticlePage\quad\textbullet\quad\@shortauthors}%
+ \fancyhead[LO]{\ACM@linecountL}%
+ \fancyhead[RO]{\@headfootfont
+ \shorttitle\quad\textbullet\quad\@acmArticlePage}%
+ \if@ACM@nonacm\else%
+ \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, Vol. \@acmVolume, No.
+ \@acmNumber, Article \@acmArticle. Publication date: \@acmPubDate.}%
+ \fi
+ \or % acmtog
+ \fancyhead[LE]{\ACM@linecountL\@headfootfont
+ \@acmArticlePage\quad\textbullet\quad\@shortauthors}%
+ \fancyhead[LO]{\ACM@linecountL}%
+ \fancyhead[RE]{\ACM@linecountR}%
+ \fancyhead[RO]{\@headfootfont
+ \shorttitle\quad\textbullet\quad\@acmArticlePage\ACM@linecountR}%
+ \if@ACM@nonacm\else
+ \if@ACM@journal@bibstrip
+ \fancyfoot[RO,LE]{\footnotesize \@journalNameShort,
+ Vol. \@acmVolume, No.~\@acmNumber, Article \@acmArticle.
+ Publication date: \@acmPubDate.}%
+ \else
+ \fancyfoot[RO,LE]{\footnotesize \acmConference@shortname,
+ \acmConference@date, \acmConference@venue.}%
+ \fi
+ \fi
+ \else % Proceedings
+ \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
+ \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}%
+ \fancyhead[RE]{\@headfootfont\@shortauthors\ACM@linecountR}%
+ \if@ACM@nonacm
+ \fancyhead[LE]{\ACM@linecountL}%
+ \fancyhead[RO]{\ACM@linecountR}%
+ \else%
+ \if@ACM@engage
+ \fancyhead[LE]{\ACM@linecountL\@headfootfont\footnotesize
+ EngageCSEdu. \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi}%
+ \fancyhead[RO]{\@headfootfont
+ EngageCSEdu. \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi
+ \ACM@linecountR}%
+ \else
+ \fancyhead[LE]{\ACM@linecountL\@headfootfont\footnotesize
+ \acmConference@shortname,
+ \acmConference@date, \acmConference@venue}%
+ \fancyhead[RO]{\@headfootfont
+ \acmConference@shortname,
+ \acmConference@date, \acmConference@venue\ACM@linecountR}%
+ \fi
+ \fi
+ \fi
+ \else % Proceedings
+ \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
+ \fancyhead[LO]{\ACM@linecountL\@headfootfont\shorttitle}%
+ \fancyhead[RE]{\@headfootfont\@shortauthors\ACM@linecountR}%
+ \if@ACM@nonacm
+ \fancyhead[LE]{\ACM@linecountL}%
+ \fancyhead[RO]{\ACM@linecountR}%
+ \else%
+ \if@ACM@engage
+ \fancyhead[LE]{\ACM@linecountL\@headfootfont
+ EngageCSEdu. \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi}%
+ \fancyhead[RO]{\@headfootfont
+ EngageCSEdu. \ifx\@acmDOI\@empty\else\@formatdoi{\@acmDOI}\fi
+ \ACM@linecountR}%
+ \else
+ \fancyhead[LE]{\ACM@linecountL\@headfootfont
+ \acmConference@shortname,
+ \acmConference@date, \acmConference@venue}%
+ \fancyhead[RO]{\@headfootfont
+ \acmConference@shortname,
+ \acmConference@date, \acmConference@venue\ACM@linecountR}%
+ \fi
+ \fi
+ \fi
+ \if@ACM@sigchiamode
+ \fancyheadoffset[L]{\dimexpr(\marginparsep+\marginparwidth)}%
+ \fi
+ \if@ACM@timestamp
+ \fancyfoot[LO,RE]{\ACM@timestamp}
+ \fi
+ \if@ACM@acmcp
+ \renewcommand{\footrulewidth}{0.1\p@}%
+ \fancyheadoffset[L]{46pt}%
+ \fancyhead[L]{\makebox[\z@][l]{%
+ \raisebox{-\dimexpr(0.2\textheight*(\ACM@ArticleType@nr-2))}{%
+ \rotatebox{90}{\colorbox{@ACM@Article@color}{\color{white}%
+ \strut\ACM@ArticleType~Article}}}}%
+ \ACM@linecountL}%
+ \fancyhead[R]{\makebox[\z@][r]{\box\@ACM@acmcpbox}}%
+ \fancyfoot[L,C]{}%
+ \fancyfoot[R]{\footnotesize
+ \@journalName, Volume~\@acmVolume, Issue~\@acmNumber,
+ \ifx\@acmArticle\@empty\else Article~\@acmArticle\fi\space
+ (\@acmPubDate)\ifx\@acmDOI\@empty\else\\\@formatdoi{\@acmDOI}\fi}
+ \fi
+}%
+\pagestyle{standardpagestyle}
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@folio@wd}
+% \changes{v2.00}{2023/10/22}{Obsoleted macro}
+% \begin{macro}{\@folio@ht}
+% \changes{v2.00}{2023/10/22}{Obsoleted macro}
+% \begin{macro}{\@folio@voffset}
+% \changes{v2.00}{2023/10/22}{Obsoleted macro}
+% \begin{macro}{\@folio@max}
+% \changes{v2.00}{2023/10/22}{Obsoleted macro}
+% Folio blob width, height, offsets and max number
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@folioblob}
+% \changes{v1.44}{2017/08/11}{Suppress the blob if acmArticleSeq is empty}
+% \changes{v1.45}{2017/08/15}{Switched \cs{bfeseries}\cs{sffamily} to
+% \cs{sffamily}\cs{bfseries}}
+% \changes{v2.00}{2023/10/22}{Obsoleted macro}
+% The macro to typeset the folio blob.
+%
+% \end{macro}
+%
+%
+%
+% \begin{macro}{firstpagestyle}
+% \changes{v1.33}{2017/03/10}{Added timestamp (Michael D.~Adams)}
+% \changes{v1.33}{2017/03/29}{Added right linecount for two-column
+% formats}
+% \changes{v1.51}{2018/04/05}{We now use journal abbreviation for
+% footers}
+% \changes{v1.59}{2019/04/20}{Added logic for conference papers using
+% journal format}
+% \changes{v1.59}{2019/04/20}{Moved page styles to \cs{AtBeginDocument}}
+% \changes{v1.87}{2022/08/14}{Special treatment for acmcp}
+% \changes{v1.89}{2022/12/27}{Moved badges here}
+% \changes{v2.00}{2023/10/22}{Deleted blobs}
+% \changes{v2.03}{2024/02/04}{Special treatment of tog}
+% The page style for the first page only.
+% \begin{macrocode}
+\AtBeginDocument{%
+\fancypagestyle{firstpagestyle}{%
+ \fancyhf{}%
+ \renewcommand{\headrulewidth}{\z@}%
+ \renewcommand{\footrulewidth}{\z@}%
+ \if@ACM@journal@bibstrip@or@tog
+ \ifcase\ACM@format@nr
+ \relax % manuscript
+ \fancyhead[L]{\ACM@linecountL\@acmBadgeL}%
+ \fancyhead[R]{\@acmBadgeR}%
+ \fancyfoot[RO,LE]{\if@ACM@printfolios\small\thepage\fi}%
+ \if@ACM@nonacm\else%
+ \fancyfoot[RE,LO]{\footnotesize Manuscript submitted to ACM}%
+ \fi%
+ \or % acmsmall
+ \if@ACM@nonacm\else%
+ \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, Vol. \@acmVolume, No.
+ \@acmNumber, Article \@acmArticle. Publication date:
+ \@acmPubDate.}%
+ \fi%
+ \fancyhead[LE]{\ACM@linecountL\@acmBadgeL}%
+ \fancyhead[LO]{\ACM@linecountL\@acmBadgeL}%
+ \fancyhead[RO]{\@acmBadgeR}%
+ \fancyhead[RE]{\@acmBadgeR}%
+ \or % acmlarge
+ \if@ACM@nonacm\else%
+ \fancyfoot[RO,LE]{\footnotesize \@journalNameShort, Vol. \@acmVolume, No.
+ \@acmNumber, Article \@acmArticle. Publication date:
+ \@acmPubDate.}%
+ \fi%
+ \fancyhead[RO]{\@acmBadgeR}%
+ \fancyhead[RE]{\@acmBadgeR}%
+ \fancyhead[LE]{\ACM@linecountL\@acmBadgeL}%
+ \fancyhead[LO]{\ACM@linecountL\@acmBadgeL}%
+ \or % acmtog
+ \if@ACM@nonacm\else%
+ \if@ACM@journal@bibstrip
+ \fancyfoot[RO,LE]{\footnotesize \@journalNameShort,
+ Vol. \@acmVolume, No.~\@acmNumber, Article \@acmArticle.
+ Publication date: \@acmPubDate.}%
+ \else
+ \fancyfoot[RO,LE]{\footnotesize \acmConference@shortname,
+ \acmConference@date, \acmConference@venue.}%
+ \fi
+ \fi%
+ \fancyhead[L]{\ACM@linecountL\@acmBadgeL}%
+ \fancyhead[R]{\@acmBadgeR\ACM@linecountR}%
+ \else % Conference proceedings
+ \fancyhead[L]{\ACM@linecountL\@acmBadgeL}%
+ \fancyhead[R]{\@acmBadgeR\ACM@linecountR}%
+ \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
+ \fi
+ \else
+ \fancyhead[L]{\ACM@linecountL\@acmBadgeL}%
+ \fancyhead[R]{\@acmBadgeR\ACM@linecountR}%
+ \fancyfoot[C]{\if@ACM@printfolios\footnotesize\thepage\fi}%
+ \fi
+ \if@ACM@timestamp
+ \ifnum\ACM@format@nr=0\relax % Manuscript
+ \fancyfoot[LO,RE]{\ACM@timestamp\quad
+ \if@ACM@nonacm\else
+ \footnotesize Manuscript submitted to ACM
+ \fi}
+ \else
+ \fancyfoot[LO,RE]{\ACM@timestamp}
+ \fi
+ \fi
+ \if@ACM@acmcp
+ \renewcommand{\footrulewidth}{0.1\p@}%
+ \fancyheadoffset[L]{46pt}%
+ \fancyhead[L]{\makebox[\z@][l]{%
+ \raisebox{-\dimexpr(0.2\textheight*(\ACM@ArticleType@nr-2))}{%
+ \rotatebox{90}{\colorbox{@ACM@Article@color}{\color{white}%
+ \strut\ACM@ArticleType~Article}}}}%
+ \ACM@linecountL\@acmBadgeL}%
+ \fancyhead[R]{\@acmBadgeR\makebox[\z@][r]{\box\@ACM@acmcpbox}}%
+ \fancyfoot[L,C]{}%
+ \fancyfoot[R]{\footnotesize
+ \@journalName, Volume~\@acmVolume, Issue~\@acmNumber,
+ \ifx\@acmArticle\@empty\else Article~\@acmArticle\fi\space
+ (\@acmPubDate)\ifx\@acmDOI\@empty\else\\\@formatdoi{\@acmDOI}\fi}
+ \fi
+}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%\subsection{Sectioning}
+%\label{sec:sectioninng}
+%
+%
+% \begin{macro}{\ACM@NRadjust}
+% \changes{v1.54}{2018/06/17}{Added macro}
+% Ross Moore's macro.
+% \begin{quotation}
+% Initially |\ACM@sect@format@| just passes through its |#1|
+% argument unchanged.
+% When a sectioning macro such as |\section| occurs, the
+% |\ACM@NRadjust| redefines |\ACM@sect@format@| to expand into the
+% styling commands; e.g., |\@secfont|.
+% Then |\Sectionformat| is temporarily redefined to produce
+% |\realSectionformat{\ACM@sect@format{#1}}{#2}|, which ultimately
+% becomes |\Sectionformat{\@secfont{#1}}{#2}|.
+% This is done to allow |\Sectionformat| to be variable, as may be
+% needed in particular circumstances. Its current expansion is saved
+% as |\realSectionformat| which is used with the modified 1st argument,
+% then |\Sectionformat| is reverted to its former expansion.
+%
+% To style the section-number, the line |#1{}| is used at the end of
+% |\ACM@NRadjust|. This imposes style-changing commands for fonts and
+% sizes, but any |\MakeUppercase| acts on just the |{}|. It's a bit hacky,
+% by essentially assuming that only numbers occur here, not letters to
+% be case-changed. (This should be acceptable in a class-file, as it
+% ought to be possible to change the case elsewhere, if that was ever
+% desired.) Also, it can result in |\@adddotafter| being called too
+% soon, so a slight adjustment is made, via |\ACM@adddotafter|, which
+% now tests whether its argument is empty. But the coding has to allow
+% for other packages to have also patched |\@adddotafter|.
+% \end{quotation}
+% \begin{macrocode}
+\def\ACM@NRadjust#1{%
+ \begingroup
+ \expandafter\ifx\csname Sectionformat\endcsname\relax
+ % do nothing when \Sectionformat is unknown
+ \def\next{\endgroup #1}%
+ \else
+ \def\next{\endgroup
+ \let\realSectionformat\Sectionformat
+ \def\ACM@sect@format@{#1}%
+ \let\Sectionformat\ACM@NR@adjustedSectionformat
+ %% next lines added 2018-06-17 to ensure section number is styled
+ \let\real@adddotafter\@adddotafter
+ \let\@adddotafter\ACM@adddotafter
+ #1{}% imposes the styles, but nullifies \MakeUppercase
+ \let\@adddotafter\real@adddotafter
+ }%
+ \fi \next
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ACM@NR@adjustedSectionformat}
+% \changes{v1.54}{2018/06/17}{Added macro}
+% \begin{macrocode}
+\def\ACM@NR@adjustedSectionformat#1#2{%
+ \realSectionformat{\ACM@sect@format{#1}}{#2}%
+ \let\Sectionformat\realSectionformat}
+\DeclareRobustCommand{\ACM@sect@format}{\ACM@sect@format@}
+\def\ACM@sect@format@null#1{#1}
+\let\ACM@sect@format@\ACM@sect@format@null
+\AtBeginDocument{%
+ \expandafter\ifx\csname LTX@adddotafter\endcsname\relax
+ \let\LTX@adddotafter\@adddotafter
+ \fi
+}
+% \end{macrocode}
+%
+% \end{macro}
+% \begin{macro}{\ACM@adddotafter}
+% \changes{v1.54}{2018/06/17}{Added macro}
+% \begin{macrocode}
+\def\ACM@adddotafter#1{\ifx\relax#1\relax\else\LTX@adddotafter{#1}\fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \changes{v1.54}{2018/05/27}{Deleted indent for subsubsection}
+% \changes{v1.54}{2018/06/17}{Added Ross's patch for sectioning}
+% \changes{v1.68}{2020/01/19}{New command for unindent paras}
+% \changes{v1.69}{2020/02/02}{No dots for unindented paragraphs}
+% Sectioning is different for different levels
+% \begin{macrocode}
+\renewcommand\section{\@startsection{section}{1}{\z@}%
+ {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
+ {.25\baselineskip}%
+ {\ACM@NRadjust\@secfont}}
+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
+ {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%
+ {.25\baselineskip}%
+ {\ACM@NRadjust\@subsecfont}}
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+ {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
+ {-3.5\p@}%
+ {\ACM@NRadjust{\@subsubsecfont\@adddotafter}}}
+\renewcommand\paragraph{\@startsection{paragraph}{4}{\parindent}%
+ {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
+ {-3.5\p@}%
+ {\ACM@NRadjust{\@parfont\@adddotafter}}}
+\newcommand\noindentparagraph{\@startsection{paragraph}{4}{\z@}%
+ {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%
+ {-3.5\p@}%
+ {\ACM@NRadjust{\@parfont}}}
+
+\renewcommand\part{\@startsection{part}{9}{\z@}%
+ {-10\p@ \@plus -4\p@ \@minus -2\p@}%
+ {4\p@}%
+ {\ACM@NRadjust\@parfont}}
+% \end{macrocode}
+%
+% \begin{macro}{\section@raggedright}
+% \changes{v1.12}{2016/05/30}{Introduced macro}%
+% Special version of \cs{raggedright} compatible with
+% \cs{MakeUppercase}
+% \begin{macrocode}
+\def\section@raggedright{\@rightskip\@flushglue
+ \rightskip\@rightskip
+ \leftskip\z@skip
+ \parindent\z@}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@secfont}
+% \begin{macro}{\@subsecfont}
+% \begin{macro}{\@subsubsecfont}
+% \begin{macro}{\@parfont}
+% \changes{v1.12}{2016/05/30}{Moved to \cs{section@raggedright}}%
+% \changes{v1.40}{2017/06/04}{Switched to MakeTextUppercase}
+% \changes{v1.45}{2017/08/15}{Switched \cs{bfeseries}\cs{sffamily} to
+% \cs{sffamily}\cs{bfseries}}
+% \changes{v1.67}{2020/01/11}{Deleted redefinitions of sections}
+% \changes{1.85}{2022/05/08}{Added: acmengage}
+% \changes{2.08}{2024/05/27}{Deleted uppercasing}
+% Fonts for sections etc. are different for different formats.
+% \begin{macrocode}
+\def\@secfont{\sffamily\bfseries\section@raggedright}
+\def\@subsecfont{\sffamily\bfseries\section@raggedright}
+\def\@subsubsecfont{\sffamily\itshape}
+\def\@parfont{\itshape}
+\setcounter{secnumdepth}{3}
+\ifcase\ACM@format@nr
+\relax % manuscript
+\or % acmsmall
+\or % acmlarge
+ \def\@secfont{\sffamily\large\section@raggedright}
+ \def\@subsecfont{\sffamily\large\section@raggedright}
+\or % acmtog
+ \def\@secfont{\sffamily\large\section@raggedright}
+ \def\@subsecfont{\sffamily\large\section@raggedright}
+\or % sigconf
+ \def\@secfont{\bfseries\Large\section@raggedright}
+ \def\@subsecfont{\bfseries\Large\section@raggedright}
+\or % siggraph
+ \def\@secfont{\sffamily\bfseries\Large\section@raggedright}
+ \def\@subsecfont{\sffamily\bfseries\Large\section@raggedright}
+\or % sigplan
+ \def\@secfont{\bfseries\Large\section@raggedright}
+ \def\@subsecfont{\bfseries\section@raggedright}
+ \def\@subsubsecfont{\bfseries\section@raggedright}
+ \def\@parfont{\bfseries\itshape}
+ \def\@subparfont{\itshape}
+\or % sigchi
+ \setcounter{secnumdepth}{1}
+ \def\@secfont{\sffamily\bfseries\section@raggedright}
+ \def\@subsecfont{\sffamily\bfseries\section@raggedright}
+\or % sigchi-a
+ \setcounter{secnumdepth}{0}
+ \def\@secfont{\sffamily\bfseries\section@raggedright}
+ \def\@subsecfont{\sffamily\bfseries\section@raggedright}
+\or % acmengage
+ \def\@secfont{\bfseries\Large\section@raggedright}
+ \def\@subsecfont{\bfseries\Large\section@raggedright}
+\or %acmcp
+\fi
+% \end{macrocode}
+%
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@adddotafter}
+% Add punctuation after a sectioning command
+% \begin{macrocode}
+\def\@adddotafter#1{#1\@addpunct{.}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@addspaceafter}
+% Add space after a sectioning command
+% \begin{macrocode}
+\def\@addspaceafter#1{#1\@addpunct{\enspace}}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \changes{v1.87}{2022/08/14}{No numbering sections for ACMCP}
+% \begin{macrocode}
+\if@ACM@acmcp
+ \setcounter{secnumdepth}{-1}%
+\fi
+% \end{macrocode}
+%
+%
+%\subsection{TOC lists}
+%\label{sec:tocs}
+%
+% \begin{macro}{\@dotsep}
+% Related to the \cs{tableofcontents} are all the horizontal fillers. Base
+% \LaTeX\ defines \cs{@dottedtocline}, which we should not disable. Yet, this
+% command expects \cs{@dotsep} to be defined but leaves this to the class
+% implementation. Since |amsart| does not provide this, we copy the standard
+% variant from |article| here.
+% \begin{macrocode}
+\providecommand*\@dotsep{4.5}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%\subsection{Theorems}
+%\label{sec:theorems}
+%
+% \begin{macro}{\@acmplainbodyfont}
+% The font to typeset the body of the |acmplain| theorem style.
+% \begin{macrocode}
+\def\@acmplainbodyfont{\itshape}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@acmplainindent}
+% The amount to indent the |acmplain| theorem style.
+% \begin{macrocode}
+\def\@acmplainindent{\parindent}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@acmplainheadfont}
+% The font to typeset the head of the |acmplain| theorem style.
+% \begin{macrocode}
+\def\@acmplainheadfont{\scshape}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@acmplainnotefont}
+% The font to typeset the note of the |acmplain| theorem style.
+% \begin{macrocode}
+\def\@acmplainnotefont{\@empty}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Customization of the |acmplain| theorem style:
+% \begin{macrocode}
+\ifcase\ACM@format@nr
+\relax % manuscript
+\or % acmsmall
+\or % acmlarge
+\or % acmtog
+\or % sigconf
+\or % siggraph
+\or % sigplan
+ \def\@acmplainbodyfont{\itshape}
+ \def\@acmplainindent{\z@}
+ \def\@acmplainheadfont{\bfseries}
+ \def\@acmplainnotefont{\normalfont}
+\or % sigchi
+\or % sigchi-a
+\or % acmengage
+\or % acmcp
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{acmplain}
+% The |acmplain| theorem style
+% \begin{macrocode}
+\newtheoremstyle{acmplain}%
+ {.5\baselineskip\@plus.2\baselineskip
+ \@minus.2\baselineskip}% space above
+ {.5\baselineskip\@plus.2\baselineskip
+ \@minus.2\baselineskip}% space below
+ {\@acmplainbodyfont}% body font
+ {\@acmplainindent}% indent amount
+ {\@acmplainheadfont}% head font
+ {.}% punctuation after head
+ {.5em}% spacing after head
+ {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmplainnotefont(#3)}}}% head spec
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\@acmdefinitionbodyfont}
+% The font to typeset the body of the |acmdefinition| theorem style.
+% \begin{macrocode}
+\def\@acmdefinitionbodyfont{\normalfont}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@acmdefinitionindent}
+% The amount to indent the |acmdefinition| theorem style.
+% \begin{macrocode}
+\def\@acmdefinitionindent{\parindent}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@acmdefinitionheadfont}
+% The font to typeset the head of the |acmdefinition| theorem style.
+% \begin{macrocode}
+\def\@acmdefinitionheadfont{\itshape}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@acmdefinitionnotefont}
+% The font to typeset the note of the |acmdefinition| theorem style.
+% \begin{macrocode}
+\def\@acmdefinitionnotefont{\@empty}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Customization of the |acmdefinition| theorem style:
+% \begin{macrocode}
+\ifcase\ACM@format@nr
+\relax % manuscript
+\or % acmsmall
+\or % acmlarge
+\or % acmtog
+\or % sigconf
+\or % siggraph
+\or % sigplan
+ \def\@acmdefinitionbodyfont{\normalfont}
+ \def\@acmdefinitionindent{\z@}
+ \def\@acmdefinitionheadfont{\bfseries}
+ \def\@acmdefinitionnotefont{\normalfont}
+\or % sigchi
+\or % sigchi-a
+\or % acmengage
+\or % acmcp
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{acmdefinition}
+% The |acmdefinition| theorem style
+% \begin{macrocode}
+\newtheoremstyle{acmdefinition}%
+ {.5\baselineskip\@plus.2\baselineskip
+ \@minus.2\baselineskip}% space above
+ {.5\baselineskip\@plus.2\baselineskip
+ \@minus.2\baselineskip}% space below
+ {\@acmdefinitionbodyfont}% body font
+ {\@acmdefinitionindent}% indent amount
+ {\@acmdefinitionheadfont}% head font
+ {.}% punctuation after head
+ {.5em}% spacing after head
+ {\thmname{#1}\thmnumber{ #2}\thmnote{ {\@acmdefinitionnotefont(#3)}}}% head spec
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Make |acmplain| the default theorem style.
+% \begin{macrocode}
+\theoremstyle{acmplain}
+% \end{macrocode}
+%
+% Delay defining the theorem environments until after other packages
+% have been loaded. In particular, the |cleveref| package must be
+% loaded before the theorem environments are defined in order to show
+% the correct environment name (see
+% \url{https://github.com/borisveytsman/acmart/issues/138}). The |acmthm|
+% option is used to suppress the definition of any theorem
+% environments. Also, to avoid obscure errors arising from these
+% environment definitions conflicting with environments defined by the
+% user or by user-loaded packages, we only define environments that
+% have not yet been defined.
+% \begin{macrocode}
+\AtEndPreamble{%
+ \if@ACM@acmthm
+ \theoremstyle{acmplain}
+ \@ifundefined{theorem}{%
+ \newtheorem{theorem}{Theorem}[section]
+ }{}
+ \@ifundefined{conjecture}{%
+ \newtheorem{conjecture}[theorem]{Conjecture}
+ }{}
+ \@ifundefined{proposition}{%
+ \newtheorem{proposition}[theorem]{Proposition}
+ }{}
+ \@ifundefined{lemma}{%
+ \newtheorem{lemma}[theorem]{Lemma}
+ }{}
+ \@ifundefined{corollary}{%
+ \newtheorem{corollary}[theorem]{Corollary}
+ }{}
+ \theoremstyle{acmdefinition}
+ \@ifundefined{example}{%
+ \newtheorem{example}[theorem]{Example}
+ }{}
+ \@ifundefined{definition}{%
+ \newtheorem{definition}[theorem]{Definition}
+ }{}
+ \fi
+ \theoremstyle{acmplain}
+}
+% \end{macrocode}
+%
+%
+% \begin{macro}{\@proofnamefont}
+% The font to typeset the proof name.
+% \begin{macrocode}
+\def\@proofnamefont{\scshape}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\@proofindent}
+% Whether or not to indent proofs.
+% \begin{macrocode}
+\def\@proofindent{\indent}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% Customization of the proof environment.
+% \begin{macrocode}
+\ifcase\ACM@format@nr
+\relax % manuscript
+\or % acmsmall
+\or % acmlarge
+\or % acmtog
+\or % sigconf
+\or % siggraph
+\or % sigplan
+ \def\@proofnamefont{\itshape}
+ \def\@proofindent{\noindent}
+\or % sigchi
+\or % sigchi-a
+\or % acmengage
+\or % acmcp
+\fi
+% \end{macrocode}
+%
+% \begin{macro}{proof}
+% We want some customization of the proof environment.
+% \begin{macrocode}
+\renewenvironment{proof}[1][\proofname]{\par
+ \pushQED{\qed}%
+ \normalfont \topsep6\p@\@plus6\p@\relax
+ \trivlist
+ \item[\@proofindent\hskip\labelsep
+ {\@proofnamefont #1\@addpunct{.}}]\ignorespaces
+}{%
+ \popQED\endtrivlist\@endpefalse
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+%
+%\subsection{Balancing columns}
+%\label{sec:balancing}
+%
+% We need balancing only if the user did not disable it, and we use a
+% two column format. Note that |pbalance| uses a different
+% mechanism.
+% \begin{macrocode}
+\AtEndPreamble{%
+ \if@ACM@pbalance
+ \global\@ACM@balancefalse
+ \ifcase\ACM@format@nr
+ \relax % manuscript
+ \or % acmsmall
+ \or % acmlarge
+ \or % acmtog
+ \RequirePackage{pbalance}%
+ \or % sigconf
+ \RequirePackage{pbalance}%
+ \or % siggraph
+ \RequirePackage{pbalance}%
+ \or % sigplan
+ \RequirePackage{pbalance}%
+ \or % sigchi
+ \RequirePackage{pbalance}%
+ \or % sigchi-a
+ \or % acmengage
+ \RequirePackage{pbalance}%
+ \or % acmcp
+ \fi
+ \fi
+ \if@ACM@balance
+ \ifcase\ACM@format@nr
+ \relax % manuscript
+ \global\@ACM@balancefalse
+ \or % acmsmall
+ \global\@ACM@balancefalse
+ \or % acmlarge
+ \global\@ACM@balancefalse
+ \or % acmtog
+ \RequirePackage{balance}%
+ \or % sigconf
+ \RequirePackage{balance}%
+ \or % siggraph
+ \RequirePackage{balance}%
+ \or % sigplan
+ \RequirePackage{balance}%
+ \or % sigchi
+ \RequirePackage{balance}%
+ \or % sigchi-a
+ \global\@ACM@balancefalse
+ \or % acmengage
+ \RequirePackage{balance}%
+ \or % acmcp
+ \global\@ACM@balancefalse
+ \fi
+ \fi
+}
+\AtEndDocument{%
+ \if@ACM@balance
+ \if@twocolumn
+ \balance
+ \fi\fi}
+% \end{macrocode}
+%
+%
+%\subsection{Acknowledgments}
+%\label{sec:acks}
+%
+% \begin{macro}{\acksname}
+% \changes{v1.56}{2018/10/16}{Added macro (Philip Quinn)}
+% \begin{macrocode}
+\newcommand\acksname{Acknowledgments}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\acks}
+% \changes{v1.19}{2016/07/28}{Include 'Acknowledgements' in PDF bookmarks
+% (Matthew Fluet)}
+% \changes{v1.15}{2016/07/05}{Added macro}
+% This is a |comment|-like structure
+% \begin{macrocode}
+\specialcomment{acks}{%
+ \begingroup
+ \section*{\acksname}
+ \phantomsection\addcontentsline{toc}{section}{\acksname}
+}{%
+ \endgroup
+}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\grantsponsor}
+% \changes{v1.15}{2016/07/05}{Added macro}
+% \changes{v1.17}{2016/07/10}{Renamed}
+% We just typeset the name of the sponsor
+% \begin{macrocode}
+\def\grantsponsor#1#2#3{#2}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \begin{macro}{\grantnum}
+% \changes{v1.15}{2016/07/05}{Added macro}
+% \changes{v1.17}{2016/07/10}{Added url}
+% \begin{macrocode}
+\newcommand\grantnum[3][]{#3%
+ \def\@tempa{#1}\ifx\@tempa\@empty\else\space(\url{#1})\fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \subsection{Conditional typesetting}
+% \label{sec:conditional}
+%
+% We use the |comment| package for conditional typesetting:
+% \begin{macrocode}
+\AtEndPreamble{%
+\if@ACM@screen
+ \includecomment{screenonly}
+ \excludecomment{printonly}
+\else
+ \excludecomment{screenonly}
+ \includecomment{printonly}
+\fi
+\if@ACM@anonymous
+ \excludecomment{anonsuppress}
+ \excludecomment{acks}
+\else
+ \includecomment{anonsuppress}
+\fi}
+% \end{macrocode}
+%
+%
+%
+%\subsection{Additional bibliography commands}
+%\label{sec:bibliography}
+%
+% \begin{macro}{\showeprint}
+% \changes{v1.21}{2016/09/04}{Added macro}
+% The command \cs{showeprint} has two arguments: the (optional)
+% prefix and the eprint number. Right now the only prefix we understand is
+% the (lowercase) word `arxiv'.
+% \begin{macrocode}
+\newcommand\showeprint[2][arxiv]{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@empty\def\@tempa{arxiv}\fi
+ \def\@tempb{arxiv}%
+ \ifx\@tempa\@tempb\relax
+ arXiv:\href{https://arxiv.org/abs/#2}{#2}%
+ \else
+ \def\@tempb{arXiv}%
+ \ifx\@tempa\@tempb\relax
+ arXiv:\href{https://arxiv.org/abs/#2}{#2}%
+ \else
+ #1:#2%
+ \fi
+ \fi}
+% \end{macrocode}
+%
+%
+% \end{macro}
+%
+%
+%\subsection{Index}
+%\label{sec:index}
+%
+% \begin{macro}{\theindex}
+% Standard |amsart| uses plain page style in index pages. This
+% clashes with line numbering for |review| option, so we redefine it.
+% \begin{macrocode}
+\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi
+ \columnseprule\z@ \columnsep 35\p@
+ \@indextitlestyle
+ \let\item\@idxitem
+ \parindent\z@ \parskip\z@\@plus.3\p@\relax
+ \raggedright
+ \hyphenpenalty\@M
+ \footnotesize}
+% \end{macrocode}
+%
+% \end{macro}
+%
+%\subsection{End of Class}
+%\label{end}
+%
+% \begin{macro}{\vspace}
+% \changes{v1.57}{2018/12/16}{Added warning}
+% \changes{v1.58}{2019/01/23}{Preserved old versions as
+% \cs{@vspace@orig} and \cs{@vspace@orig}}
+% \changes{1.69}{2020/02/02}{Added the changed command to avoid grouping}
+% We do not disable \cs{vspace}, but add warning to it
+% \begin{macrocode}
+\let\@vspace@orig=\@vspace
+\let\@vspacer@orig=\@vspacer
+\apptocmd{\@vspace}{\ClassWarning{\@classname}{\string\vspace\space should
+ only be used to provide space above/below surrounding
+ objects}}{}{}
+\apptocmd{\@vspacer}{\ClassWarning{\@classname}{\string\vspace\space should
+ only be used to provide space above/below surrounding
+ objects}}{}{}
+\let\@vspace@acm=\@vspace
+\let\@vspacer@acm=\@vspacer
+% \end{macrocode}
+%
+% \end{macro}
+%
+%
+% \begin{macro}{\ACM@origbaselinestretch}
+% \changes{v1.57}{2018/12/16}{Added check whether the user changed
+% \cs{baselinestretch}}
+% We produce an error if the user tries to change \cs{baselinestretch}
+% \begin{macrocode}
+\let\ACM@origbaselinestretch\baselinestretch
+\AtEndDocument{\ifx\baselinestretch\ACM@origbaselinestretch\else
+ \ClassError{\@classname}{An attempt to redefine
+ \string\baselinestretch\space detected. Please do not do this for
+ ACM submissions!}\fi}
+% \end{macrocode}
+%
+% \end{macro}
+%
+% \changes{v1.30}{2017/02/10}{Added \cs{frenchspacing}}
+% \begin{macrocode}
+\normalsize\normalfont\frenchspacing
+%
+% \end{macrocode}
+%
+%\Finale
+%\clearpage
+%
+%\PrintChanges
+%\clearpage
+%\PrintIndex
+%
+\endinput
diff --git a/ACM-JRC/acmart-primary/acmart.ins b/ACM-JRC/acmart-primary/acmart.ins
new file mode 100644
index 0000000..d17dc06
--- /dev/null
+++ b/ACM-JRC/acmart-primary/acmart.ins
@@ -0,0 +1,30 @@
+%
+% Doctrip file for acmart
+% This file is in public domain
+% $Id: acmart.ins,v 1.1 2015/11/23 22:42:55 boris Exp $
+%
+\def\batchfile{acmart.ins}
+\input docstrip
+\keepsilent
+\showprogress
+
+
+\askforoverwritefalse
+
+\generate{%
+ \file{acmart.cls}{\from{acmart.dtx}{class}}
+}
+
+\obeyspaces
+\Msg{*****************************************************}%
+\Msg{* Congratulations! You successfully generated the *}%
+\Msg{* acmart package. *}%
+\Msg{* *}%
+\Msg{* Please move the file acmart.cls to where LaTeX *}%
+\Msg{* files are stored in your system. The manual is *}%
+\Msg{* acmart.pdf. *}%
+\Msg{* *}%
+\Msg{* The package is released under LPPL *}%
+\Msg{* *}%
+\Msg{* Happy TeXing! *}%
+\Msg{*****************************************************}%
\ No newline at end of file
diff --git a/ACM-JRC/acmart-primary/acmauthoryear.bbx b/ACM-JRC/acmart-primary/acmauthoryear.bbx
new file mode 100644
index 0000000..de5e3c6
--- /dev/null
+++ b/ACM-JRC/acmart-primary/acmauthoryear.bbx
@@ -0,0 +1,900 @@
+\ProvidesFile{acmauthoryear.bbx}[2022-02-14 v0.1 biblatex bibliography style]
+
+% Inherit a default style
+\RequireBibliographyStyle{authoryear-comp}
+
+%%% New command definitions from trad-standard.bbx
+
+\newcommand*{\newcommaunit}{\@ifstar\newcommaunitStar\newcommaunitNoStar}
+\newcommand*{\newcommaunitStar}{\setunit*{\addcomma\space}}
+\newcommand*{\newcommaunitNoStar}{\setunit{\addcomma\space}}
+
+%%% Forward compatibility for date+extradate
+
+\ifcsundef{ifbibmacroundef}{
+ \ifcsundef{abx@macro@date+extradate}{ %%% For really really old biblatex that miss \ifbibmacroundef
+ \blx@warning{bibmacro 'date+extradate' is missing.\MessageBreak
+ Please consider updating your version of biblatex.\MessageBreak
+ Using 'date+extrayear' instead}%
+ \providebibmacro*{date+extradate}{\usebibmacro{date+extrayear}}
+ }{}
+ }
+ {
+ \ifbibmacroundef{date+extradate}{
+ \blx@warning{bibmacro 'date+extradate' is missing.\MessageBreak
+ Please consider updating your version of biblatex.\MessageBreak
+ Using 'date+extrayear' instead}%
+ \providebibmacro*{date+extradate}{\usebibmacro{date+extrayear}}
+ }{}
+ }
+
+%%% Localisation strings for ACM
+
+\DefineBibliographyStrings{american}{%
+ mathesis = {Master's thesis},
+ phdthesis = {Ph\adddot{}D\adddotspace Dissertation},
+ editor = {(Ed\adddot)},
+ editors = {(Eds\adddot)},
+ edition = {ed\adddot},
+}
+
+
+
+%%% Formatting for fields
+
+%\DeclareFieldFormat
+% [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
+% {title}{#1}
+\DeclareFieldFormat{pages}{#1}
+
+\DeclareFieldFormat{numpages}{#1 pages}
+
+\DeclareFieldFormat{number}{#1}
+
+\DeclareFieldFormat{articleno}{Article #1}
+
+\DeclareFieldFormat{key}{#1}
+
+\DeclareFieldFormat{urldate}{Retrieved\space{}#1\space{}from}
+\DeclareFieldFormat{lastaccessed}{Retrieved\space{}#1\space{}from}
+
+\DeclareFieldFormat{url}{\url{#1}}
+
+\DeclareFieldFormat{edition}{%
+ \printtext[parens]{\ifinteger{#1}
+ {\mkbibordedition{#1}~\bibstring{edition}}
+ {#1\isdot~\bibstring{edition}}}}
+
+
+% Handle urls field containing 'and' separated list of URLs
+% https://github.com/plk/biblatex/issues/229
+\DeclareListFormat{urls}{%
+ \url{#1}%
+ \ifthenelse{\value{listcount}<\value{liststop}}
+ {\addcomma\space}
+ {}}
+\renewbibmacro*{url}{\iffieldundef{url}{\printlist{urls}}{\printfield{url}}}
+
+%%% Bibmacro definitions
+
+\renewbibmacro*{translator+others}{%
+ \ifboolexpr{
+ test \ifusetranslator
+ and
+ not test {\ifnameundef{translator}}
+ }
+ {\printnames{translator}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{translator+othersstrg}%
+ \clearname{translator}}
+ {\printfield{key}}}
+
+\newbibmacro*{year}{%
+ \iffieldundef{year}%
+ {\printtext{[n.\ d.]}}%
+ {\printfield{year}}%
+}
+
+\renewbibmacro*{date}{\printtext[parens]{\printdate}}
+
+
+\renewbibmacro*{url+urldate}{\iffieldundef{urlyear}
+ {\iffieldundef{lastaccessed}
+ {}
+ {\printfield{lastaccessed}%
+ \setunit*{\addspace}}%
+ }
+ {\usebibmacro{urldate}%
+ \setunit*{\addspace}}%
+ \usebibmacro{url}%
+ }
+
+\renewbibmacro*{journal+issuetitle}{%
+ \usebibmacro{journal}%
+ \setunit*{\addcomma\space}%
+ \iffieldundef{series}
+ {}
+ {\newunit%
+ \printfield{series}%
+ \setunit{\addspace}}%
+ \usebibmacro{volume+number+date+pages+eid}%
+ \newcommaunit%
+% \setunit{\addspace}%
+ \usebibmacro{issue-issue}%
+ \setunit*{\addcolon\space}%
+ \usebibmacro{issue}%
+ \newunit}
+
+
+
+\newbibmacro*{volume+number+date+pages+eid}{%
+ \printfield{volume}%
+ \setunit*{\addcomma\space}%
+ \printfield{number}%
+ \setunit*{\addcomma\space}%
+ \printfield{articleno}
+ \setunit{\addcomma\space}
+ \usebibmacro{date-ifmonth}
+ \setunit{\addcomma\space}%
+ \iffieldundef{pages}%
+ {\printfield{numpages}}%
+ {\printfield{pages}}%
+ \newcommaunit%
+ \printfield{eid}}%
+
+\renewbibmacro*{chapter+pages}{%
+ \printfield{chapter}%
+ \setunit{\bibpagespunct}%
+ \iffieldundef{pages}%
+ {\printfield{numpages}}%
+ {\printfield{pages}}%
+ \newunit}
+
+\renewbibmacro*{editor+others}{%
+ \ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }
+ {\printnames{editor}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{editor+othersstrg}%
+ \clearname{editor}}
+ {\iflistundef{organization}{}{\printlist{organization}}}
+ \usebibmacro{date+extradate}
+ }
+
+
+\newbibmacro*{issue-issue}{%
+ \iffieldundef{issue}%
+ {}%
+ {\printfield{issue}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date-ifmonth}%
+ }%
+ \newunit}
+
+
+
+
+\newbibmacro*{maintitle+booktitle+series+number}{%
+ \iffieldundef{maintitle}
+ {}
+ {\usebibmacro{maintitle}%
+ \newunit\newblock
+ \iffieldundef{volume}
+ {}
+ {\printfield{volume}%
+ \printfield{part}%
+ \setunit{\addcolon\space}}}%
+ \usebibmacro{booktitle}%
+ \setunit*{\addspace}
+ \printfield[parens]{series}%
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \setunit*{\addcomma\space}%
+ \printfield{articleno}
+ \newunit
+ }
+
+\renewbibmacro*{booktitle}{%
+ \ifboolexpr{
+ test {\iffieldundef{booktitle}}
+ and
+ test {\iffieldundef{booksubtitle}}
+ }
+ {}
+ {\printtext[booktitle]{%
+ \printfield[titlecase]{booktitle}%
+ \iffieldundef{booksubtitle}{}{
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{booksubtitle}}%
+ }%
+ }%
+ \printfield{booktitleaddon}}
+
+\renewbibmacro*{volume+number+eid}{%
+ \printfield{volume}%
+ \setunit*{\addcomma\space}%
+ \printfield{number}%
+ \setunit*{\addcomma\space}%
+ \printfield{articleno}
+ \setunit{\addcomma\space}%
+ \printfield{eid}}
+
+
+\renewbibmacro*{publisher+location+date}{%
+ \printlist{publisher}%
+ \setunit*{\addcomma\space}%
+ \printlist{location}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date-ifmonth}%
+ \newunit}
+
+
+\newbibmacro{date-ifmonth}{%
+ \iffieldundef{month}{}{%
+ \usebibmacro{date}
+ }%
+}
+
+
+\renewbibmacro*{institution+location+date}{%
+ \printlist{school}%
+ \setunit*{\addcomma\space}%
+ \printlist{institution}%
+ \setunit*{\addcomma\space}%
+ \printlist{location}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date-ifmonth}%
+ \newunit}
+
+
+\renewbibmacro*{periodical}{%
+ \iffieldundef{title}
+ {}
+ {\printtext[title]{%
+ \printfield[titlecase]{title}%
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{subtitle}}}%
+ \newunit%
+ \usebibmacro{journal}}
+
+\renewbibmacro*{issue+date}{%
+ \iffieldundef{issue}
+ {\usebibmacro{date}}
+ {\printfield{issue}%
+ \setunit*{\addspace}%
+ \usebibmacro{date}}%
+ \newunit}
+
+\renewbibmacro*{title+issuetitle}{%
+ \usebibmacro{periodical}%
+ \setunit*{\addspace}%
+ \iffieldundef{series}
+ {}
+ {\newunit
+ \printfield{series}%
+ \setunit{\addspace}}%
+ \printfield{volume}%
+ \setunit*{\addcomma\space}%
+ \printfield{number}%
+ \setunit*{\addcomma\space}%
+ \printfield{articleno}
+ \setunit{\addcomma\space}%
+ \printfield{eid}%
+ \setunit{\addspace}%
+ \usebibmacro{issue+date}%
+ \setunit{\addcolon\space}%
+ \usebibmacro{issue}%
+ \newunit}
+
+\renewbibmacro*{doi+eprint+url}{%
+ \iftoggle{bbx:url}
+ {\iffieldundef{doi}{
+ \usebibmacro{url+urldate}
+ }{\iffieldundef{distinctURL}
+ {}
+ {\usebibmacro{url+urldate}}
+ }
+ }%
+ \newunit\newblock
+ \iftoggle{bbx:eprint}
+ {\usebibmacro{eprint}}
+ {}%
+ \newunit\newblock
+ \iftoggle{bbx:doi}
+ {\printfield{doi}}
+ {}}
+
+
+%%% Definitions for drivers (alphabetical)
+
+
+
+\DeclareBibliographyDriver{article}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock%
+ \usebibmacro{title}%
+ \newunit%
+ \printlist{language}%
+ \newunit\newblock%
+ \usebibmacro{byauthor}%
+ \newunit\newblock%
+ \usebibmacro{bytranslator+others}%
+ \newunit\newblock%
+ \printfield{version}%
+ \newunit\newblock%
+ \usebibmacro{journal+issuetitle}%
+ \newunit%
+ \usebibmacro{byeditor+others}%
+ \newunit%
+ \printfield{note}%
+ \newunit\newblock%
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock%
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock%
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock%
+ \usebibmacro{related}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{book}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{maintitle+title}%
+ \newunit%
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \usebibmacro{series+number}%
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \newunit\newblock
+ \printfield{volumes}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{inbook}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \iffieldundef{author}%
+ {\usebibmacro{byeditor+others}}%
+ {\usebibmacro{author/translator+others}}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+% \usebibmacro{in:}%
+ \usebibmacro{bybookauthor}%
+ \newunit\newblock
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \iffieldundef{author}{}%if undef then we already printed editor
+ {\usebibmacro{byeditor+others}}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{incollection}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{inproceedings}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{maintitle+booktitle+series+number}%
+ \newunit\newblock
+ \usebibmacro{event+venue+date}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{manual}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{misc}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{howpublished}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{organization+location+date}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{online}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit\newblock
+ \usebibmacro{date-ifmonth}%
+ \newunit\newblock
+ \iftoggle{bbx:eprint}
+ {\usebibmacro{eprint}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{url+urldate}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareFieldFormat[patent]{number}{Patent No.~#1}
+
+\DeclareBibliographyDriver{patent}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{date}%
+ \newunit\newblock
+ \printfield{type}%
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \iflistundef{location}
+ {}
+ {\setunit*{\addspace}%
+ \printtext[parens]{%
+ \printlist[][-\value{listtotal}]{location}}}%
+ \newunit\newblock
+ \usebibmacro{byholder}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{periodical}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{editor}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title+issuetitle}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byeditor}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{issn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{report}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{type}%
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{institution+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isrn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{thesis}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \usebibmacro{institution+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+%
+% Include support for software entries
+%
+\blx@inputonce{software.bbx}{biblatex style for software}{}{}{}{}
+
+%
+% Handle ACM specific ArtifactSoftware entry exactly as the software entry (a soft alias will not work)
+%
+\DeclareStyleSourcemap{
+ \maps[datatype=bibtex]{
+ \map{
+ \step[typesource=artifactsoftware,typetarget=software]
+ \step[typesource=artifactdataset,typetarget=dataset]
+ }
+ }
+}
+
+%%% Compatibility with ACM bibtex formatting
+
+
+%
+% Show given name first in the reference list
+%
+\DeclareNameAlias{sortname}{given-family}
+
+%
+% Produce a bibliography with small font size
+%
+\renewcommand*{\bibfont}{\bibliofont\footnotesize}
+
+%
+% Remove parentheses from date+extradate
+%
+\RequirePackage{xpatch}
+\xpatchbibmacro{date+extradate}{%
+ \printtext[parens]%
+}{%
+ \newblock\setunit*{.\space}%
+ \printtext%
+}{}{}
+
+
+%%% Set option values for ACM style
+
+\ExecuteBibliographyOptions{
+ dashed=false, % Do not use dashes for bibliography items with the same set of authors
+ labeldate=year,
+ abbreviate=true,
+ dateabbrev=true,
+ isbn=true,
+ doi=true,
+ urldate=comp,
+ url=true,
+ maxbibnames=9,
+ maxcitenames=2,
+ backref=false,
+ sorting=nty,
+ halid=true,
+ swhid=true,
+ swlabels=true,
+ vcs=true,
+ license=false,
+ language=american
+ }
diff --git a/ACM-JRC/acmart-primary/acmauthoryear.cbx b/ACM-JRC/acmart-primary/acmauthoryear.cbx
new file mode 100644
index 0000000..5c21110
--- /dev/null
+++ b/ACM-JRC/acmart-primary/acmauthoryear.cbx
@@ -0,0 +1,219 @@
+\ProvidesFile{acmauthoryear.cbx}[2022-02-14 v0.1]
+
+\RequireCitationStyle{authoryear-comp}
+\RequirePackage{xpatch}
+
+%
+% Hyperlink citations like acmart natbib implementation
+%
+% From https://tex.stackexchange.com/a/27615/133551
+
+% Combine label and labelyear links
+\xpatchbibmacro{cite}
+ {\usebibmacro{cite:label}%
+ \setunit{\printdelim{nonameyeardelim}}%
+ \usebibmacro{cite:labeldate+extradate}}
+ {\printtext[bibhyperref]{%
+ \DeclareFieldAlias{bibhyperref}{default}%
+ \usebibmacro{cite:label}%
+ \setunit{\printdelim{nonameyeardelim}}%
+ \usebibmacro{cite:labeldate+extradate}}}
+ {}
+ {\PackageWarning{biblatex-patch}
+ {Failed to patch cite bibmacro}}
+
+% Include labelname in labelyear link
+\xpatchbibmacro{cite}
+ {\printnames{labelname}%
+ \setunit{\printdelim{nameyeardelim}}%
+ \usebibmacro{cite:labeldate+extradate}}
+ {\printtext[bibhyperref]{%
+ \DeclareFieldAlias{bibhyperref}{default}%
+ \printnames{labelname}%
+ \setunit{\printdelim{nameyeardelim}}%
+ \usebibmacro{cite:labeldate+extradate}}}
+ {}
+ {\PackageWarning{biblatex-patch}
+ {Failed to patch cite bibmacro}}
+
+\renewbibmacro*{textcite}{%
+ \iffieldequals{namehash}{\cbx@lasthash}
+ {\iffieldundef{shorthand}
+ {\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
+ \(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
+ {\setunit{\addcomma}%
+ \usebibmacro{cite:extradate}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:labeldate+extradate}%
+ \savefield{labelyear}{\cbx@lastyear}}}
+ {\setunit{\compcitedelim}%
+ \usebibmacro{cite:shorthand}%
+ \global\undef\cbx@lastyear}}
+ {\ifnameundef{labelname}
+ {\iffieldundef{shorthand}
+ {\usebibmacro{cite:label}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nonameyeardelim}\bibopenbracket}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \usebibmacro{cite:labeldate+extradate}}
+ {\usebibmacro{cite:shorthand}}}
+ {\printnames{labelname}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nameyeardelim}\bibopenbracket}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \iffieldundef{shorthand}
+ {\iffieldundef{labelyear}
+ {\usebibmacro{cite:label}}
+ {\usebibmacro{cite:labeldate+extradate}}%
+ \savefield{labelyear}{\cbx@lastyear}}
+ {\usebibmacro{cite:shorthand}%
+ \global\undef\cbx@lastyear}}%
+ \stepcounter{textcitecount}%
+ \savefield{namehash}{\cbx@lasthash}}%
+ \setunit{%
+ \ifbool{cbx:parens}
+ {\bibclosebracket\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}
+
+\xpatchbibmacro{textcite}
+ {\printnames{labelname}}
+ {\printtext[bibhyperref]{\printnames{labelname}}}
+ {}
+ {\PackageWarning{biblatex-patch}
+ {Failed to patch textcite bibmacro}}
+
+\renewbibmacro*{textcite:postnote}{%
+ \usebibmacro{postnote}%
+ \ifthenelse{\value{multicitecount}=\value{multicitetotal}}
+ {\setunit{}%
+ \printtext{%
+ \ifbool{cbx:parens}
+ {\bibclosebracket\global\boolfalse{cbx:parens}}
+ {}}}
+ {\setunit{%
+ \ifbool{cbx:parens}
+ {\bibclosebracket\global\boolfalse{cbx:parens}}
+ {}%
+ \textcitedelim}}}
+
+% NEW
+\newbibmacro*{citeauthor}{%
+ \ifnameundef{labelname}
+ {\iffieldundef{shorthand}
+ {\printtext[bibhyperref]{%
+ \usebibmacro{cite:label}}%
+ \setunit{%
+ \global\booltrue{cbx:parens}%
+ \printdelim{nonameyeardelim}\bibopenbracket}%
+ \ifnumequal{\value{citecount}}{1}
+ {\usebibmacro{prenote}}
+ {}%
+ \printtext[bibhyperref]{\usebibmacro{cite:labeldate+extradate}}}
+ {\printtext[bibhyperref]{\usebibmacro{cite:shorthand}}}}
+ \printtext[bibhyperref]{\printnames{labelname}}}
+
+%
+% Put brackets around citations
+%
+
+\DeclareCiteCommand{\cite}[\mkbibbrackets]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\cite}[\mkbibbrackets]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\parencite}[\mkbibbrackets]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand*{\parencite}[\mkbibbrackets]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}
+ {\setunit{\multicitedelim}}
+
+\DeclareCiteCommand{\footcite}[\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{cite}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote]
+ {\smartcite}{\setunit{\multicitedelim}}
+
+\DeclareCiteCommand{\citeauthor}
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeauthor}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\citeyear}
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {}
+ {\usebibmacro{postnote}}
+
+\DeclareCiteCommand{\citeyearpar}[\mkbibbrackets]
+ {\usebibmacro{cite:init}%
+ \usebibmacro{prenote}}
+ {\usebibmacro{citeindex}%
+ \usebibmacro{citeyear}}
+ {}
+ {\usebibmacro{postnote}}
+
+%
+% Provide aliases for natbib-compatible commands
+%
+\newcommand*{\citep}{\parencite}
+\newcommand*{\citet}{\textcite}
+% add others here
+
+\endinput
diff --git a/ACM-JRC/acmart-primary/acmdatamodel.dbx b/ACM-JRC/acmart-primary/acmdatamodel.dbx
new file mode 100644
index 0000000..6bfb584
--- /dev/null
+++ b/ACM-JRC/acmart-primary/acmdatamodel.dbx
@@ -0,0 +1,33 @@
+% Teach biblatex about numpages field
+\DeclareDatamodelFields[type=field, datatype=literal]{numpages}
+\DeclareDatamodelEntryfields{numpages}
+
+% Teach biblatex about articleno field
+\DeclareDatamodelFields[type=field, datatype=literal]{articleno}
+\DeclareDatamodelEntryfields{articleno}
+
+% Teach biblatex about urls field
+\DeclareDatamodelFields[type=list, datatype=uri]{urls}
+\DeclareDatamodelEntryfields{urls}
+
+% Teach biblatex about school field
+\DeclareDatamodelFields[type=list, datatype=literal]{school}
+\DeclareDatamodelEntryfields[thesis]{school}
+
+\DeclareDatamodelFields[type=field, datatype=literal]{key}
+\DeclareDatamodelEntryfields{key}
+
+% Teach biblatex about lastaccessed field
+\DeclareDatamodelFields[type=field,datatype=literal]{lastaccessed}
+\DeclareDatamodelEntryfields{lastaccessed}
+
+% Teach biblatex about distincturl field
+\DeclareDatamodelFields[type=field, datatype=literal]{distinctURL}
+\DeclareDatamodelEntryfields{distinctURL}
+
+
+%
+% include software data model from biblatex-software
+%
+
+\blx@inputonce{software.dbx}{biblatex data model extension for software}{}{}{}{}
diff --git a/ACM-JRC/acmart-primary/acmnumeric.bbx b/ACM-JRC/acmart-primary/acmnumeric.bbx
new file mode 100644
index 0000000..c13e401
--- /dev/null
+++ b/ACM-JRC/acmart-primary/acmnumeric.bbx
@@ -0,0 +1,885 @@
+\ProvidesFile{acmnumeric.bbx}[2017-09-27 v0.1 biblatex bibliography style]
+
+% Inherit a default style
+\RequireBibliographyStyle{trad-plain}
+
+
+
+%%% Localisation strings for ACM
+
+\DefineBibliographyStrings{american}{%
+ mathesis = {Master's thesis},
+ phdthesis = {Ph\adddot{}D\adddotspace Dissertation},
+ editor = {(Ed\adddot)},
+ editors = {(Eds\adddot)},
+ edition = {ed\adddot},
+}
+
+
+
+%%% Formatting for fields
+
+%\DeclareFieldFormat
+% [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
+% {title}{#1}
+\DeclareFieldFormat{pages}{#1}
+
+\DeclareFieldFormat{numpages}{#1 pages}
+
+\DeclareFieldFormat{number}{#1}
+
+\DeclareFieldFormat{articleno}{Article #1}
+
+\DeclareFieldFormat{key}{#1}
+
+\DeclareFieldFormat{urldate}{Retrieved\space{}#1\space{}from}
+\DeclareFieldFormat{lastaccessed}{Retrieved\space{}#1\space{}from}
+
+\DeclareFieldFormat{url}{\url{#1}}
+
+\DeclareFieldFormat{edition}{%
+ \printtext[parens]{\ifinteger{#1}
+ {\mkbibordedition{#1}~\bibstring{edition}}
+ {#1\isdot~\bibstring{edition}}}}
+
+
+% Handle urls field containing 'and' separated list of URLs
+% https://github.com/plk/biblatex/issues/229
+\DeclareListFormat{urls}{%
+ \url{#1}%
+ \ifthenelse{\value{listcount}<\value{liststop}}
+ {\addcomma\space}
+ {}}
+\renewbibmacro*{url}{\iffieldundef{url}{\printlist{urls}}{\printfield{url}}}
+
+
+
+%%% Bibmacro definitions
+
+\renewbibmacro*{translator+others}{%
+ \ifboolexpr{
+ test \ifusetranslator
+ and
+ not test {\ifnameundef{translator}}
+ }
+ {\printnames{translator}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{translator+othersstrg}%
+ \clearname{translator}}
+ {\printfield{key}}}
+
+\newbibmacro*{year}{%
+ \iffieldundef{year}%
+ {\printtext{[n.\ d.]}}%
+ {\printfield{year}}%
+}
+
+\renewbibmacro*{date}{\printtext[parens]{\printdate}}
+
+
+\renewbibmacro*{url+urldate}{\iffieldundef{urlyear}
+ {\iffieldundef{lastaccessed}
+ {}
+ {\printfield{lastaccessed}%
+ \setunit*{\addspace}}%
+ }
+ {\usebibmacro{urldate}%
+ \setunit*{\addspace}}%
+ \usebibmacro{url}%
+ }
+
+\renewbibmacro*{journal+issuetitle}{%
+ \usebibmacro{journal}%
+ \setunit*{\addcomma\space}%
+ \iffieldundef{series}
+ {}
+ {\newunit%
+ \printfield{series}%
+ \setunit{\addspace}}%
+ \usebibmacro{volume+number+date+pages+eid}%
+ \newcommaunit%
+% \setunit{\addspace}%
+ \usebibmacro{issue-issue}%
+ \setunit*{\addcolon\space}%
+ \usebibmacro{issue}%
+ \newunit}
+
+
+
+\newbibmacro*{volume+number+date+pages+eid}{%
+ \printfield{volume}%
+ \setunit*{\addcomma\space}%
+ \printfield{number}%
+ \setunit*{\addcomma\space}%
+ \printfield{articleno}
+ \setunit{\addcomma\space}
+ \usebibmacro{date-ifmonth}
+ \setunit{\addcomma\space}%
+ \iffieldundef{pages}%
+ {\printfield{numpages}}%
+ {\printfield{pages}}%
+ \newcommaunit%
+ \printfield{eid}}%
+
+\renewbibmacro*{chapter+pages}{%
+ \printfield{chapter}%
+ \setunit{\bibpagespunct}%
+ \iffieldundef{pages}%
+ {\printfield{numpages}}%
+ {\printfield{pages}}%
+ \newunit}
+
+\renewbibmacro*{editor+others}{%
+ \ifboolexpr{
+ test \ifuseeditor
+ and
+ not test {\ifnameundef{editor}}
+ }
+ {\printnames{editor}%
+ \setunit{\addcomma\space}%
+ \usebibmacro{editor+othersstrg}%
+ \clearname{editor}}
+ {\iflistundef{organization}{}{\printlist{organization}}}}
+
+
+\newbibmacro*{issue-issue}{%
+ \iffieldundef{issue}%
+ {}%
+ {\printfield{issue}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date-ifmonth}%
+ }%
+ \newunit}
+
+
+
+
+\newbibmacro*{maintitle+booktitle+series+number}{%
+ \iffieldundef{maintitle}
+ {}
+ {\usebibmacro{maintitle}%
+ \newunit\newblock
+ \iffieldundef{volume}
+ {}
+ {\printfield{volume}%
+ \printfield{part}%
+ \setunit{\addcolon\space}}}%
+ \usebibmacro{booktitle}%
+ \setunit*{\addspace}
+ \printfield[parens]{series}%
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \setunit*{\addcomma\space}%
+ \printfield{articleno}
+ \newunit
+ }
+
+\renewbibmacro*{booktitle}{%
+ \ifboolexpr{
+ test {\iffieldundef{booktitle}}
+ and
+ test {\iffieldundef{booksubtitle}}
+ }
+ {}
+ {\printtext[booktitle]{%
+ \printfield[titlecase]{booktitle}%
+ \iffieldundef{booksubtitle}{}{
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{booksubtitle}}%
+ }%
+ }%
+ \printfield{booktitleaddon}}
+
+\renewbibmacro*{volume+number+eid}{%
+ \printfield{volume}%
+ \setunit*{\addcomma\space}%
+ \printfield{number}%
+ \setunit*{\addcomma\space}%
+ \printfield{articleno}
+ \setunit{\addcomma\space}%
+ \printfield{eid}}
+
+
+\renewbibmacro*{publisher+location+date}{%
+ \printlist{publisher}%
+ \setunit*{\addcomma\space}%
+ \printlist{location}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date-ifmonth}%
+ \newunit}
+
+
+\newbibmacro{date-ifmonth}{%
+ \iffieldundef{month}{}{%
+ \usebibmacro{date}
+ }%
+}
+
+
+\renewbibmacro*{institution+location+date}{%
+ \printlist{school}%
+ \setunit*{\addcomma\space}%
+ \printlist{institution}%
+ \setunit*{\addcomma\space}%
+ \printlist{location}%
+ \setunit*{\addcomma\space}%
+ \usebibmacro{date-ifmonth}%
+ \newunit}
+
+
+\renewbibmacro*{periodical}{%
+ \iffieldundef{title}
+ {}
+ {\printtext[title]{%
+ \printfield[titlecase]{title}%
+ \setunit{\subtitlepunct}%
+ \printfield[titlecase]{subtitle}}}%
+ \newunit%
+ \usebibmacro{journal}}
+
+\renewbibmacro*{issue+date}{%
+ \iffieldundef{issue}
+ {\usebibmacro{date}}
+ {\printfield{issue}%
+ \setunit*{\addspace}%
+ \usebibmacro{date}}%
+ \newunit}
+
+\renewbibmacro*{title+issuetitle}{%
+ \usebibmacro{periodical}%
+ \setunit*{\addspace}%
+ \iffieldundef{series}
+ {}
+ {\newunit
+ \printfield{series}%
+ \setunit{\addspace}}%
+ \printfield{volume}%
+ \setunit*{\addcomma\space}%
+ \printfield{number}%
+ \setunit*{\addcomma\space}%
+ \printfield{articleno}
+ \setunit{\addcomma\space}%
+ \printfield{eid}%
+ \setunit{\addspace}%
+ \usebibmacro{issue+date}%
+ \setunit{\addcolon\space}%
+ \usebibmacro{issue}%
+ \newunit}
+
+\renewbibmacro*{doi+eprint+url}{%
+ \iftoggle{bbx:url}
+ {\iffieldundef{doi}{
+ \usebibmacro{url+urldate}
+ }{\iffieldundef{distinctURL}
+ {}
+ {\usebibmacro{url+urldate}}
+ }
+ }%
+ \newunit\newblock
+ \iftoggle{bbx:eprint}
+ {\usebibmacro{eprint}}
+ {}%
+ \newunit\newblock
+ \iftoggle{bbx:doi}
+ {\printfield{doi}}
+ {}}
+
+
+%%% Definitions for drivers (alphabetical)
+
+
+
+\DeclareBibliographyDriver{article}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock%
+ \usebibmacro{year}%
+ \newunit%
+ \usebibmacro{title}%
+ \newunit%
+ \printlist{language}%
+ \newunit\newblock%
+ \usebibmacro{byauthor}%
+ \newunit\newblock%
+ \usebibmacro{bytranslator+others}%
+ \newunit\newblock%
+ \printfield{version}%
+ \newunit\newblock%
+ \usebibmacro{journal+issuetitle}%
+ \newunit%
+ \usebibmacro{byeditor+others}%
+ \newunit%
+ \printfield{note}%
+ \newunit\newblock%
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock%
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock%
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock%
+ \usebibmacro{related}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{book}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{year}%
+ \newunit%
+ \usebibmacro{maintitle+title}%
+ \newunit%
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \usebibmacro{series+number}%
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \newunit\newblock
+ \printfield{volumes}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{inbook}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \iffieldundef{author}%
+ {\usebibmacro{byeditor+others}}%
+ {\usebibmacro{author/translator+others}}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{year}
+ \newunit\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+% \usebibmacro{in:}%
+ \usebibmacro{bybookauthor}%
+ \newunit\newblock
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \iffieldundef{author}{}%if undef then we already printed editor
+ {\usebibmacro{byeditor+others}}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{incollection}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{year}
+ \newunit\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{maintitle+booktitle}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{inproceedings}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{year}
+ \newunit\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{in:}%
+ \usebibmacro{maintitle+booktitle+series+number}%
+ \newunit\newblock
+ \usebibmacro{event+venue+date}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \iffieldundef{maintitle}
+ {\printfield{volume}%
+ \printfield{part}}
+ {}%
+ \newunit
+ \printfield{volumes}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{manual}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{year}
+ \newunit\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor}%
+ \newunit\newblock
+ \printfield{edition}%
+ \newunit\newblock
+ \usebibmacro{series+number}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit
+ \usebibmacro{publisher+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{misc}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{year}
+ \newunit\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{howpublished}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{organization+location+date}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{online}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author/editor+others/translator+others}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{year}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{byeditor+others}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \printlist{organization}%
+ \newunit\newblock
+ \usebibmacro{date-ifmonth}%
+ \newunit\newblock
+ \iftoggle{bbx:eprint}
+ {\usebibmacro{eprint}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{url+urldate}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareFieldFormat[patent]{number}{Patent No.~#1}
+
+\DeclareBibliographyDriver{patent}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{year}%
+ \newunit
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \usebibmacro{date}%
+ \newunit\newblock
+ \printfield{type}%
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \iflistundef{location}
+ {}
+ {\setunit*{\addspace}%
+ \printtext[parens]{%
+ \printlist[][-\value{listtotal}]{location}}}%
+ \newunit\newblock
+ \usebibmacro{byholder}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{periodical}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{editor}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{year}
+ \newunit
+ \usebibmacro{title+issuetitle}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byeditor}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{issn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{report}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{year}
+ \newunit
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{type}%
+ \setunit*{\addspace}%
+ \printfield{number}%
+ \newunit\newblock
+ \printfield{version}%
+ \newunit
+ \printfield{note}%
+ \newunit\newblock
+ \usebibmacro{institution+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isrn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+
+
+\DeclareBibliographyDriver{thesis}{%
+ \usebibmacro{bibindex}%
+ \usebibmacro{begentry}%
+ \usebibmacro{author}%
+ \setunit{\labelnamepunct}\newblock
+ \usebibmacro{year}
+ \newunit
+ \usebibmacro{title}%
+ \newunit
+ \printlist{language}%
+ \newunit\newblock
+ \usebibmacro{byauthor}%
+ \newunit\newblock
+ \printfield{type}%
+ \newunit
+ \usebibmacro{institution+location+date}%
+ \newunit\newblock
+ \usebibmacro{chapter+pages}%
+ \newunit
+ \printfield{pagetotal}%
+ \newunit\newblock
+ \iftoggle{bbx:isbn}
+ {\printfield{isbn}}
+ {}%
+ \newunit\newblock
+ \usebibmacro{doi+eprint+url}%
+ \newunit\newblock
+ \usebibmacro{addendum+pubstate}%
+ \setunit{\bibpagerefpunct}\newblock
+ \usebibmacro{pageref}%
+ \newunit\newblock
+ \printfield{note}%
+ \newunit\newblock
+ \iftoggle{bbx:related}
+ {\usebibmacro{related:init}%
+ \usebibmacro{related}}
+ {}%
+ \usebibmacro{finentry}}
+
+%
+% Include support for software entries
+%
+\blx@inputonce{software.bbx}{biblatex style for software}{}{}{}{}
+
+%
+% Handle ACM specific ArtifactSoftware entry exactly as the software entry (a soft alias will not work)
+%
+\DeclareStyleSourcemap{
+ \maps[datatype=bibtex]{
+ \map{
+ \step[typesource=artifactsoftware,typetarget=software]
+ \step[typesource=artifactdataset,typetarget=dataset]
+ }
+ }
+}
+
+%
+% Show given name first in the reference list
+%
+\DeclareNameAlias{sortname}{given-family}
+
+%
+% Produce a bibliography with small font size
+%
+\renewcommand*{\bibfont}{\bibliofont\footnotesize}
+
+%%% Set option values for ACM style
+
+\ExecuteBibliographyOptions{
+ labeldate=year,
+ abbreviate=true,
+ dateabbrev=true,
+ isbn=true,
+ doi=true,
+ urldate=comp,
+ url=true,
+ maxbibnames=9,
+ maxcitenames=2,
+ backref=false,
+ sorting=nty,
+ halid=true,
+ swhid=true,
+ swlabels=true,
+ vcs=true,
+ license=false,
+ language=american
+ }
\ No newline at end of file
diff --git a/ACM-JRC/acmart-primary/acmnumeric.cbx b/ACM-JRC/acmart-primary/acmnumeric.cbx
new file mode 100644
index 0000000..99be1a0
--- /dev/null
+++ b/ACM-JRC/acmart-primary/acmnumeric.cbx
@@ -0,0 +1,5 @@
+\ProvidesFile{acmnumeric.cbx}[2017-09-27 v0.1]
+
+\RequireCitationStyle{numeric}
+
+\endinput
diff --git a/ACM-JRC/acmart-primary/samples/abbrev.bib b/ACM-JRC/acmart-primary/samples/abbrev.bib
new file mode 100644
index 0000000..02e544b
--- /dev/null
+++ b/ACM-JRC/acmart-primary/samples/abbrev.bib
@@ -0,0 +1,86 @@
+@STRING{jan = "Jan."}
+@STRING{feb = "Feb."}
+@STRING{mar = "March"}
+@STRING{apr = "April"}
+@STRING{may = "May"}
+@STRING{jun = "June"}
+@STRING{jul = "July"}
+@STRING{aug = "Aug."}
+@STRING{sep = "Sept."}
+@STRING{oct = "Oct."}
+@STRING{nov = "Nov."}
+@STRING{dec = "Dec."}
+@STRING{cie = "ACM Computers in Entertainment"}
+@STRING{csur = "ACM Computing Surveys"}
+@STRING{dgov = "Digital Government: Research and Practice"}
+@STRING{dtrap = "Digital Threats: Research and Practice"}
+@STRING{health = "ACM Transactions on Computing for Healthcare"}
+@STRING{imwut = "PACM on Interactive, Mobile, Wearable and Ubiquitous Technologies"}
+@STRING{jacm = "Journal of the ACM"}
+@STRING{jdiq = "ACM Journal of Data and Information Quality"}
+@STRING{jea = "ACM Journal of Experimental Algorithmics"}
+@STRING{jeric = "ACM Journal of Educational Resources in Computing"}
+@STRING{jetc = "ACM Journal on Emerging Technologies in Computing Systems"}
+@STRING{jocch = "ACM Journal on Computing and Cultural Heritage"}
+@STRING{pacmcgit = "Proceedings of the ACM on Computer Graphics and Interactive Techniques"}
+@STRING{pacmhci = "PACM on Human-Computer Interaction"}
+@STRING{pacmpl = "PACM on Programming Languages"}
+@STRING{pomacs = "PACM on Measurement and Analysis of Computing Systems"}
+@STRING{taas = "ACM Transactions on Autonomous and Adaptive Systems"}
+@STRING{taccess = "ACM Transactions on Accessible Computing"}
+@STRING{taco = "ACM Transactions on Architecture and Code Optimization"}
+@STRING{talg = "ACM Transactions on Algorithms"}
+@STRING{tallip = "ACM Transactions on Asian and Low-Resource Language Information Processing"}
+@STRING{tap = "ACM Transactions on Applied Perception"}
+@STRING{tcps = "ACM Transactions on Cyber-Physical Systems"}
+@STRING{tds = "ACM/IMS Transactions on Data Science"}
+@STRING{teac = "ACM Transactions on Economics and Computation"}
+@STRING{tecs = "ACM Transactions on Embedded Computing Systems"}
+@STRING{telo = "ACM Transactions on Evolutionary Learning"}
+@STRING{thri = "ACM Transactions on Human-Robot Interaction"}
+@STRING{tiis = "ACM Transactions on Interactive Intelligent Systems"}
+@STRING{tiot = "ACM Transactions on Internet of Things"}
+@STRING{tissec = "ACM Transactions on Information and System Security"}
+@STRING{tist = "ACM Transactions on Intelligent Systems and Technology"}
+@STRING{tkdd = "ACM Transactions on Knowledge Discovery from Data"}
+@STRING{tmis = "ACM Transactions on Management Information Systems"}
+@STRING{toce = "ACM Transactions on Computing Education"}
+@STRING{tochi = "ACM Transactions on Computer-Human Interaction"}
+@STRING{tocl = "ACM Transactions on Computational Logic"}
+@STRING{tocs = "ACM Transactions on Computer Systems"}
+@STRING{toct = "ACM Transactions on Computation Theory"}
+@STRING{todaes = "ACM Transactions on Design Automation of Electronic Systems"}
+@STRING{tods = "ACM Transactions on Database Systems"}
+@STRING{tog = "ACM Transactions on Graphics"}
+@STRING{tois = "ACM Transactions on Information Systems"}
+@STRING{toit = "ACM Transactions on Internet Technology"}
+@STRING{tomacs = "ACM Transactions on Modeling and Computer Simulation"}
+@STRING{tomm = "ACM Transactions on Multimedia Computing, Communications and Applications"}
+@STRING{tompecs = "ACM Transactions on Modeling and Performance Evaluation of Computing Systems"}
+@STRING{toms = "ACM Transactions on Mathematical Software"}
+@STRING{topc = "ACM Transactions on Parallel Computing"}
+@STRING{toplas = "ACM Transactions on Programming Languages and Systems"}
+@STRING{tops = "ACM Transactions on Privacy and Security"}
+@STRING{tos = "ACM Transactions on Storage"}
+@STRING{tosem = "ACM Transactions on Software Engineering and Methodology"}
+@STRING{tosn = "ACM Transactions on Sensor Networks"}
+@STRING{tqc = "ACM Transactions on Quantum Computing"}
+@STRING{trets = "ACM Transactions on Reconfigurable Technology and Systems"}
+@STRING{tsas = "ACM Transactions on Spatial Algorithms and Systems"}
+@STRING{tsc = "ACM Transactions on Social Computing"}
+@STRING{tslp = "ACM Transactions on Speech and Language Processing"}
+@STRING{tweb = "ACM Transactions on the Web"}
+@STRING{acmcs = "ACM Computing Surveys"}
+@STRING{acta = "Acta Informatica"}
+@STRING{cacm = "Communications of the ACM"}
+@STRING{ibmjrd = "IBM Journal of Research and Development"}
+@STRING{ibmsj = "IBM Systems Journal"}
+@STRING{ieeese = "IEEE Transactions on Software Engineering"}
+@STRING{ieeetc = "IEEE Transactions on Computers"}
+@STRING{ieeetcad = "IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+@STRING{ipl = "Information Processing Letters"}
+@STRING{jcss = "Journal of Computer and System Sciences"}
+@STRING{scp = "Science of Computer Programming"}
+@STRING{sicomp = "SIAM Journal on Computing"}
+@STRING{toois = "ACM Transactions on Office Information Systems"}
+@STRING{tcs = "Theoretical Computer Science"}
diff --git a/ACM-JRC/acmart-primary/samples/acmengage.dtx b/ACM-JRC/acmart-primary/samples/acmengage.dtx
new file mode 100644
index 0000000..872469f
--- /dev/null
+++ b/ACM-JRC/acmart-primary/samples/acmengage.dtx
@@ -0,0 +1,257 @@
+%
+% ACM Engage course material
+%
+%<*acmengage>
+%%
+%%
+%% Commands for TeXCount
+%<
diff --git a/ACM-JRC/acmart-primary/samples/sample-base.bib b/ACM-JRC/acmart-primary/samples/sample-base.bib
new file mode 100644
index 0000000..6cebd81
--- /dev/null
+++ b/ACM-JRC/acmart-primary/samples/sample-base.bib
@@ -0,0 +1,1651 @@
+
+% Journals
+
+% First the Full Name is given, then the abbreviation used in the AMS Math
+% Reviews, with an indication if it could not be found there.
+% Note the 2nd overwrites the 1st, so swap them if you want the full name.
+
+ %{AMS}
+ @String{AMSTrans = "American Mathematical Society Translations" }
+ @String{AMSTrans = "Amer. Math. Soc. Transl." }
+ @String{BullAMS = "Bulletin of the American Mathematical Society" }
+ @String{BullAMS = "Bull. Amer. Math. Soc." }
+ @String{ProcAMS = "Proceedings of the American Mathematical Society" }
+ @String{ProcAMS = "Proc. Amer. Math. Soc." }
+ @String{TransAMS = "Transactions of the American Mathematical Society" }
+ @String{TransAMS = "Trans. Amer. Math. Soc." }
+
+ %ACM
+ @String{CACM = "Communications of the {ACM}" }
+ @String{CACM = "Commun. {ACM}" }
+ @String{CompServ = "Comput. Surveys" }
+ @String{JACM = "J. ACM" }
+ @String{ACMMathSoft = "{ACM} Transactions on Mathematical Software" }
+ @String{ACMMathSoft = "{ACM} Trans. Math. Software" }
+ @String{SIGNUM = "{ACM} {SIGNUM} Newsletter" }
+ @String{SIGNUM = "{ACM} {SIGNUM} Newslett." }
+
+ @String{AmerSocio = "American Journal of Sociology" }
+ @String{AmerStatAssoc = "Journal of the American Statistical Association" }
+ @String{AmerStatAssoc = "J. Amer. Statist. Assoc." }
+ @String{ApplMathComp = "Applied Mathematics and Computation" }
+ @String{ApplMathComp = "Appl. Math. Comput." }
+ @String{AmerMathMonthly = "American Mathematical Monthly" }
+ @String{AmerMathMonthly = "Amer. Math. Monthly" }
+ @String{BIT = "{BIT}" }
+ @String{BritStatPsych = "British Journal of Mathematical and Statistical
+ Psychology" }
+ @String{BritStatPsych = "Brit. J. Math. Statist. Psych." }
+ @String{CanMathBull = "Canadian Mathematical Bulletin" }
+ @String{CanMathBull = "Canad. Math. Bull." }
+ @String{CompApplMath = "Journal of Computational and Applied Mathematics" }
+ @String{CompApplMath = "J. Comput. Appl. Math." }
+ @String{CompPhys = "Journal of Computational Physics" }
+ @String{CompPhys = "J. Comput. Phys." }
+ @String{CompStruct = "Computers and Structures" }
+ @String{CompStruct = "Comput. \& Structures" }
+ @String{CompJour = "The Computer Journal" }
+ @String{CompJour = "Comput. J." }
+ @String{CompSysSci = "Journal of Computer and System Sciences" }
+ @String{CompSysSci = "J. Comput. System Sci." }
+ @String{Computing = "Computing" }
+ @String{ContempMath = "Contemporary Mathematics" }
+ @String{ContempMath = "Contemp. Math." }
+ @String{Crelle = "Crelle's Journal" }
+ @String{GiornaleMath = "Giornale di Mathematiche" }
+ @String{GiornaleMath = "Giorn. Mat." } % didn't find in AMS MR., ibid.
+
+ %IEEE
+ @String{Computer = "{IEEE} Computer" }
+ @String{IEEETransComp = "{IEEE} Transactions on Computers" }
+ @String{IEEETransComp = "{IEEE} Trans. Comput." }
+ @String{IEEETransAC = "{IEEE} Transactions on Automatic Control" }
+ @String{IEEETransAC = "{IEEE} Trans. Automat. Control" }
+ @String{IEEESpec = "{IEEE} Spectrum" } % didn't find in AMS MR
+ @String{ProcIEEE = "Proceedings of the {IEEE}" }
+ @String{ProcIEEE = "Proc. {IEEE}" } % didn't find in AMS MR
+ @String{IEEETransAeroElec = "{IEEE} Transactions on Aerospace and Electronic
+ Systems" }
+ @String{IEEETransAeroElec = "{IEEE} Trans. Aerospace Electron. Systems" }
+
+ @String{IMANumerAna = "{IMA} Journal of Numerical Analysis" }
+ @String{IMANumerAna = "{IMA} J. Numer. Anal." }
+ @String{InfProcLet = "Information Processing Letters" }
+ @String{InfProcLet = "Inform. Process. Lett." }
+ @String{InstMathApp = "Journal of the Institute of Mathematics and
+ its Applications" }
+ @String{InstMathApp = "J. Inst. Math. Appl." }
+ @String{IntControl = "International Journal of Control" }
+ @String{IntControl = "Internat. J. Control" }
+ @String{IntNumerEng = "International Journal for Numerical Methods in
+ Engineering" }
+ @String{IntNumerEng = "Internat. J. Numer. Methods Engrg." }
+ @String{IntSuper = "International Journal of Supercomputing Applications" }
+ @String{IntSuper = "Internat. J. Supercomputing Applic." } % didn't find
+%% in AMS MR
+ @String{Kibernetika = "Kibernetika" }
+ @String{JResNatBurStand = "Journal of Research of the National Bureau
+ of Standards" }
+ @String{JResNatBurStand = "J. Res. Nat. Bur. Standards" }
+ @String{LinAlgApp = "Linear Algebra and its Applications" }
+ @String{LinAlgApp = "Linear Algebra Appl." }
+ @String{MathAnaAppl = "Journal of Mathematical Analysis and Applications" }
+ @String{MathAnaAppl = "J. Math. Anal. Appl." }
+ @String{MathAnnalen = "Mathematische Annalen" }
+ @String{MathAnnalen = "Math. Ann." }
+ @String{MathPhys = "Journal of Mathematical Physics" }
+ @String{MathPhys = "J. Math. Phys." }
+ @String{MathComp = "Mathematics of Computation" }
+ @String{MathComp = "Math. Comp." }
+ @String{MathScand = "Mathematica Scandinavica" }
+ @String{MathScand = "Math. Scand." }
+ @String{TablesAidsComp = "Mathematical Tables and Other Aids to Computation" }
+ @String{TablesAidsComp = "Math. Tables Aids Comput." }
+ @String{NumerMath = "Numerische Mathematik" }
+ @String{NumerMath = "Numer. Math." }
+ @String{PacificMath = "Pacific Journal of Mathematics" }
+ @String{PacificMath = "Pacific J. Math." }
+ @String{ParDistComp = "Journal of Parallel and Distributed Computing" }
+ @String{ParDistComp = "J. Parallel and Distrib. Comput." } % didn't find
+%% in AMS MR
+ @String{ParComputing = "Parallel Computing" }
+ @String{ParComputing = "Parallel Comput." }
+ @String{PhilMag = "Philosophical Magazine" }
+ @String{PhilMag = "Philos. Mag." }
+ @String{ProcNAS = "Proceedings of the National Academy of Sciences
+ of the USA" }
+ @String{ProcNAS = "Proc. Nat. Acad. Sci. U. S. A." }
+ @String{Psychometrika = "Psychometrika" }
+ @String{QuartMath = "Quarterly Journal of Mathematics, Oxford, Series (2)" }
+ @String{QuartMath = "Quart. J. Math. Oxford Ser. (2)" }
+ @String{QuartApplMath = "Quarterly of Applied Mathematics" }
+ @String{QuartApplMath = "Quart. Appl. Math." }
+ @String{RevueInstStat = "Review of the International Statisical Institute" }
+ @String{RevueInstStat = "Rev. Inst. Internat. Statist." }
+
+ %SIAM
+ @String{JSIAM = "Journal of the Society for Industrial and Applied
+ Mathematics" }
+ @String{JSIAM = "J. Soc. Indust. Appl. Math." }
+ @String{JSIAMB = "Journal of the Society for Industrial and Applied
+ Mathematics, Series B, Numerical Analysis" }
+ @String{JSIAMB = "J. Soc. Indust. Appl. Math. Ser. B Numer. Anal." }
+ @String{SIAMAlgMeth = "{SIAM} Journal on Algebraic and Discrete Methods" }
+ @String{SIAMAlgMeth = "{SIAM} J. Algebraic Discrete Methods" }
+ @String{SIAMAppMath = "{SIAM} Journal on Applied Mathematics" }
+ @String{SIAMAppMath = "{SIAM} J. Appl. Math." }
+ @String{SIAMComp = "{SIAM} Journal on Computing" }
+ @String{SIAMComp = "{SIAM} J. Comput." }
+ @String{SIAMMatrix = "{SIAM} Journal on Matrix Analysis and Applications" }
+ @String{SIAMMatrix = "{SIAM} J. Matrix Anal. Appl." }
+ @String{SIAMNumAnal = "{SIAM} Journal on Numerical Analysis" }
+ @String{SIAMNumAnal = "{SIAM} J. Numer. Anal." }
+ @String{SIAMReview = "{SIAM} Review" }
+ @String{SIAMReview = "{SIAM} Rev." }
+ @String{SIAMSciStat = "{SIAM} Journal on Scientific and Statistical
+ Computing" }
+ @String{SIAMSciStat = "{SIAM} J. Sci. Statist. Comput." }
+
+ @String{SoftPracExp = "Software Practice and Experience" }
+ @String{SoftPracExp = "Software Prac. Experience" } % didn't find in AMS MR
+ @String{StatScience = "Statistical Science" }
+ @String{StatScience = "Statist. Sci." }
+ @String{Techno = "Technometrics" }
+ @String{USSRCompMathPhys = "{USSR} Computational Mathematics and Mathematical
+ Physics" }
+ @String{USSRCompMathPhys = "{U. S. S. R.} Comput. Math. and Math. Phys." }
+ @String{VLSICompSys = "Journal of {VLSI} and Computer Systems" }
+ @String{VLSICompSys = "J. {VLSI} Comput. Syst." }
+ @String{ZAngewMathMech = "Zeitschrift fur Angewandte Mathematik und
+ Mechanik" }
+ @String{ZAngewMathMech = "Z. Angew. Math. Mech." }
+ @String{ZAngewMathPhys = "Zeitschrift fur Angewandte Mathematik und Physik" }
+ @String{ZAngewMathPhys = "Z. Angew. Math. Phys." }
+
+% Publishers % ================================================= |
+
+ @String{Academic = "Academic Press" }
+ @String{ACMPress = "{ACM} Press" }
+ @String{AdamHilger = "Adam Hilger" }
+ @String{AddisonWesley = "Addison-Wesley" }
+ @String{AllynBacon = "Allyn and Bacon" }
+ @String{AMS = "American Mathematical Society" }
+ @String{Birkhauser = "Birkha{\"u}ser" }
+ @String{CambridgePress = "Cambridge University Press" }
+ @String{Chelsea = "Chelsea" }
+ @String{ClaredonPress = "Claredon Press" }
+ @String{DoverPub = "Dover Publications" }
+ @String{Eyolles = "Eyolles" }
+ @String{HoltRinehartWinston = "Holt, Rinehart and Winston" }
+ @String{Interscience = "Interscience" }
+ @String{JohnsHopkinsPress = "The Johns Hopkins University Press" }
+ @String{JohnWileySons = "John Wiley and Sons" }
+ @String{Macmillan = "Macmillan" }
+ @String{MathWorks = "The Math Works Inc." }
+ @String{McGrawHill = "McGraw-Hill" }
+ @String{NatBurStd = "National Bureau of Standards" }
+ @String{NorthHolland = "North-Holland" }
+ @String{OxfordPress = "Oxford University Press" } %address Oxford or London?
+ @String{PergamonPress = "Pergamon Press" }
+ @String{PlenumPress = "Plenum Press" }
+ @String{PrenticeHall = "Prentice-Hall" }
+ @String{SIAMPub = "{SIAM} Publications" }
+ @String{Springer = "Springer-Verlag" }
+ @String{TexasPress = "University of Texas Press" }
+ @String{VanNostrand = "Van Nostrand" }
+ @String{WHFreeman = "W. H. Freeman and Co." }
+
+%Entries
+
+@Article{Abril07,
+ author = "Patricia S. Abril and Robert Plant",
+ title = "The patent holder's dilemma: Buy, sell, or troll?",
+ journal = "Communications of the ACM",
+ volume = "50",
+ number = "1",
+ month = jan,
+ year = "2007",
+ pages = "36--44",
+ doi = "10.1145/1188913.1188915",
+ url = "http://doi.acm.org/10.1145/1219092.1219093",
+ note = "",
+}
+
+@Article{Cohen07,
+ author = "Sarah Cohen and Werner Nutt and Yehoshua Sagic",
+ title = "Deciding equivalances among conjunctive aggregate queries",
+ journal = JACM,
+ articleno = 5,
+ numpages = 50,
+ volume = 54,
+ number = 2,
+ month = apr,
+ year = 2007,
+ doi = "10.1145/1219092.1219093",
+ url = "http://doi.acm.org/10.1145/1219092.1219093",
+ acmid = 1219093,
+}
+
+
+@periodical{JCohen96,
+ key = "Cohen",
+ editor = "Jacques Cohen",
+ title = "Special issue: Digital Libraries",
+ journal = CACM,
+ volume = "39",
+ number = "11",
+ month = nov,
+ year = "1996",
+}
+
+
+@Book{Kosiur01,
+ author = "David Kosiur",
+ title = "Understanding Policy-Based Networking",
+ publisher = "Wiley",
+ year = "2001",
+ address = "New York, NY",
+ edition = "2nd.",
+ editor = "",
+ volume = "",
+ number = "",
+ series = "",
+ month = "",
+ note = "",
+}
+
+
+@Book{Harel79,
+ author = "David Harel",
+ year = "1979",
+ title = "First-Order Dynamic Logic",
+ series = "Lecture Notes in Computer Science",
+ volume = "68",
+ address = "New York, NY",
+ publisher = "Springer-Verlag",
+ doi = "10.1007/3-540-09237-4",
+ url = "http://dx.doi.org/10.1007/3-540-09237-4",
+ editor = "",
+ number = "",
+ month = "",
+ note = "",
+}
+
+
+@Inbook{Editor00,
+ author = "",
+ editor = "Ian Editor",
+ title = "The title of book one",
+ subtitle = "The book subtitle",
+ series = "The name of the series one",
+ year = "2007",
+ volume = "9",
+ address = "Chicago",
+ edition = "1st.",
+ publisher = "University of Chicago Press",
+ doi = "10.1007/3-540-09237-4",
+ url = "http://dx.doi.org/10.1007/3-540-09456-9",
+ chapter = "",
+ pages = "",
+ number = "",
+ type = "",
+ month = "",
+ note = "",
+}
+
+%
+@InBook{Editor00a,
+ author = "",
+ editor = "Ian Editor",
+ title = "The title of book two",
+ subtitle = "The book subtitle",
+ series = "The name of the series two",
+ year = "2008",
+ address = "Chicago",
+ edition = "2nd.",
+ publisher = "University of Chicago Press",
+ doi = "10.1007/3-540-09237-4",
+ url = "http://dx.doi.org/10.1007/3-540-09456-9",
+ volume = "",
+ chapter = "100",
+ pages = "",
+ number = "",
+ type = "",
+ month = "",
+ note = "",
+}
+
+
+% incollection (has an editor, title, and possibly a booktitle)
+@Incollection{Spector90,
+ author = "Asad Z. Spector",
+ title = "Achieving application requirements",
+ booktitle = "Distributed Systems",
+ publisher = "ACM Press",
+ address = "New York, NY",
+ year = "1990",
+ edition = "2nd.",
+ chapter = "",
+ editor = "Sape Mullender",
+ pages = "19--33",
+ doi = "10.1145/90417.90738",
+ url = "http://doi.acm.org/10.1145/90417.90738",
+ volume = "",
+ number = "",
+ series = "",
+ type = "",
+ month = "",
+ note = "",
+}
+
+
+% incollection (has an editor, title, and possibly a booktitle)
+@Incollection{Douglass98,
+ author = "Bruce P. Douglass and David Harel and Mark B. Trakhtenbrot",
+ title = "Statecarts in use: structured analysis and object-orientation",
+ series = "Lecture Notes in Computer Science",
+ booktitle = "Lectures on Embedded Systems",
+ publisher = "Springer-Verlag",
+ address = "London",
+ volume = "1494",
+ year = "1998",
+ chapter = "",
+ editor = "Grzegorz Rozenberg and Frits W. Vaandrager",
+ pages = "368--394",
+ doi = "10.1007/3-540-65193-4_29",
+ url = "http://dx.doi.org/10.1007/3-540-65193-4_29",
+ edition = "",
+ number = "",
+ type = "",
+ month = "",
+ note = "",
+}
+
+
+@Book{Knuth97,
+ author = "Donald E. Knuth",
+ title = "The Art of Computer Programming, Vol. 1: Fundamental Algorithms (3rd. ed.)",
+ publisher = "Addison Wesley Longman Publishing Co., Inc.",
+ year = "1997",
+ address = "",
+ edition = "",
+ editor = "",
+ volume = "",
+ number = "",
+ series = "",
+ month = "",
+ note = "",
+}
+
+
+@Book{Knuth98,
+ author = "Donald E. Knuth",
+ year = "1998",
+ title = "The Art of Computer Programming",
+ series = "Fundamental Algorithms",
+ volume = "1",
+ edition = "3rd",
+ address = "",
+ publisher = "Addison Wesley Longman Publishing Co., Inc.",
+ doi = "",
+ url = "",
+ editor = "",
+ number = "",
+ month = "",
+ note = "(book)",
+}
+
+%Inbook{Knuth97,
+% author = "Donald E. Knuth",
+% title = "The Art of Computer Programming",
+% booktitle = "the booktitle",
+% edition = "3",
+% volume = "1",
+% year = "1997",
+% publisher = "Addison Wesley Longman Publishing Co., Inc.",
+% editor = "",
+% number = "",
+% series = "Fundamental Algorithms",
+% type = "",
+% chapter = "",
+% pages = "",
+% address = "",
+% month = "",
+% note = "(inbook)",
+%}
+
+%INBOOK{DK:73-inbook-full,
+% author = "Donald E. Knuth",
+% title = "Fundamental Algorithms (inbook w series)",
+% volume = 1,
+% series = "The Art of Computer Programming",
+% publisher = "Addison-Wesley",
+% address = "Reading, Massachusetts",
+% edition = "Second",
+% month = "10~" # jan,
+% year = "1973",
+% type = "Section",
+% chapter = "1.2",
+% pages = "10--119",
+% note = "Full INBOOK entry (w series)",
+%}
+
+%INcollection{DK:74-incoll,
+% author = "Donald E. Knuth",
+% title = "Fundamental Algorithms (incoll)",
+% volume = 1,
+% booktitle = "The Art of Computer Programming",
+% publisher = "Addison-Wesley",
+% address = "Reading, Massachusetts",
+% month = "10~" # jan,
+% year = "1974",
+% pages = "10--119",
+% editor = "Bernard Rous",
+% note = "This is a full incoll entry with an editor",
+%}
+
+%INcollection{DK:75-incollws,
+% author = "Donald E. Knuth",
+% title = "Fundamental Algorithms (incoll w series)",
+% volume = 1,
+% booktitle = "The Art of Computer Programming",
+% series = "The Art of Computer Programming",
+% publisher = "Addison-Wesley",
+% address = "Reading, Massachusetts",
+% month = "10~" # jan,
+% year = "1975",
+% pages = "10--119",
+% editor = "Bernard Rous",
+% note = "This is a full incoll entry with an editor and series",
+%}
+
+
+@incollection{GM05,
+Author= "Dan Geiger and Christopher Meek",
+Title= "Structured Variational Inference Procedures and their Realizations (as incol)",
+Year= 2005,
+Booktitle="Proceedings of Tenth International Workshop on Artificial Intelligence and Statistics, {\rm The Barbados}",
+Publisher="The Society for Artificial Intelligence and Statistics",
+Month= jan,
+Editors= "Z. Ghahramani and R. Cowell"
+}
+
+@Inproceedings{Smith10,
+ author = "Stan W. Smith",
+ title = "An experiment in bibliographic mark-up: Parsing metadata for XML export",
+ booktitle = "Proceedings of the 3rd. annual workshop on Librarians and Computers",
+ series = "LAC '10",
+ editor = "Reginald N. Smythe and Alexander Noble",
+ volume = "3",
+ year = "2010",
+ publisher = "Paparazzi Press",
+ address = "Milan Italy",
+ pages = "422--431",
+ doi = "99.9999/woot07-S422",
+ url = "http://dx.doi.org/99.0000/woot07-S422",
+ number = "",
+ month = "",
+ organization = "",
+ note = "",
+}
+
+@Inproceedings{VanGundy07,
+ author = "Matthew Van Gundy and Davide Balzarotti and Giovanni Vigna",
+ year = 2007,
+ title = "Catch me, if you can: Evading network signatures with web-based polymorphic worms",
+ booktitle = "Proceedings of the first USENIX workshop on Offensive Technologies",
+ series = "WOOT '07",
+ publisher = "USENIX Association",
+ address = "Berkley, CA",
+ articleno = {Paper 7},
+ numpages = 9,
+}
+
+@Inproceedings{VanGundy08,
+ author = "Matthew Van Gundy and Davide Balzarotti and Giovanni Vigna",
+ year = 2008,
+ title = "Catch me, if you can: Evading network signatures with web-based polymorphic worms",
+ booktitle = "Proceedings of the first USENIX workshop on Offensive Technologies",
+ series = "WOOT '08",
+ publisher = "USENIX Association",
+ address = "Berkley, CA",
+ articleno = 7,
+ numpages = 2,
+ pages = "99-100",
+}
+
+@Inproceedings{VanGundy09,
+ author = "Matthew Van Gundy and Davide Balzarotti and Giovanni Vigna",
+ year = 2009,
+ title = "Catch me, if you can: Evading network signatures with web-based polymorphic worms",
+ booktitle = "Proceedings of the first USENIX workshop on Offensive Technologies",
+ series = "WOOT '09",
+ publisher = "USENIX Association",
+ address = "Berkley, CA",
+ pages = "90--100",
+}
+
+@Inproceedings{Andler79,
+ author = "Sten Andler",
+ title = "Predicate Path expressions",
+ booktitle = "Proceedings of the 6th. ACM SIGACT-SIGPLAN symposium on Principles of Programming Languages",
+ series = "POPL '79",
+ year = "1979",
+ publisher = "ACM Press",
+ address = "New York, NY",
+ pages = "226--236",
+ doi = "10.1145/567752.567774",
+ url = "http://doi.acm.org/10.1145/567752.567774",
+ editor = "",
+ volume = "",
+ number = "",
+ month = "",
+ organization = "",
+ note = "",
+}
+
+@Techreport{Harel78,
+ author = "David Harel",
+ year = "1978",
+ title = "LOGICS of Programs: AXIOMATICS and DESCRIPTIVE POWER",
+ institution = "Massachusetts Institute of Technology",
+ type = "MIT Research Lab Technical Report",
+ number = "TR-200",
+ address = "Cambridge, MA",
+ month = "",
+ note = "",
+}
+
+@MASTERSTHESIS{anisi03,
+author = {David A. Anisi},
+title = {Optimal Motion Control of a Ground Vehicle},
+school = {Royal Institute of Technology (KTH), Stockholm, Sweden},
+intitution = {FOI-R-0961-SE, Swedish Defence Research Agency (FOI)},
+year = {2003},
+}
+
+
+@Phdthesis{Clarkson85,
+ author = "Kenneth L. Clarkson",
+ year = "1985",
+ title = "Algorithms for Closest-Point Problems (Computational Geometry)",
+ school = "Stanford University",
+ address = "Palo Alto, CA",
+ note = "UMI Order Number: AAT 8506171",
+ type = "",
+ month = "",
+}
+
+
+@online{Thornburg01,
+ author = "Harry Thornburg",
+ year = "2001",
+ title = "Introduction to Bayesian Statistics",
+ url = "http://ccrma.stanford.edu/~jos/bayes/bayes.html",
+ month = mar,
+ lastaccessed = "March 2, 2005",
+}
+
+
+@online{Ablamowicz07,
+ author = "Rafal Ablamowicz and Bertfried Fauser",
+ year = "2007",
+ title = "CLIFFORD: a Maple 11 Package for Clifford Algebra Computations, version 11",
+ url = "http://math.tntech.edu/rafal/cliff11/index.html",
+ lastaccessed = "February 28, 2008",
+}
+
+
+@misc{Poker06,
+ author = "Poker-Edge.Com",
+ year = "2006",
+ month = mar,
+ title = "Stats and Analysis",
+ lastaccessed = "June 7, 2006",
+ url = "http://www.poker-edge.com/stats.php",
+}
+
+@misc{Obama08,
+ author = "Barack Obama",
+ year = "2008",
+ title = "A more perfect union",
+ howpublished = "Video",
+ day = "5",
+ url = "http://video.google.com/videoplay?docid=6528042696351994555",
+ month = mar,
+ lastaccessed = "March 21, 2008",
+ note = "",
+}
+
+@misc{JoeScientist001,
+ author = "Joseph Scientist",
+ year = "2009",
+ title = "The fountain of youth",
+ note = "Patent No. 12345, Filed July 1st., 2008, Issued Aug. 9th., 2009",
+ url = "",
+ howpublished = "",
+ month = aug,
+ lastaccessed = "",
+}
+
+
+@Inproceedings{Novak03,
+ author = "Dave Novak",
+ title = "Solder man",
+ booktitle = "ACM SIGGRAPH 2003 Video Review on Animation theater Program: Part I - Vol. 145 (July 27--27, 2003)",
+ year = "2003",
+ publisher = "ACM Press",
+ address = "New York, NY",
+ pages = "4",
+ month = "March 21, 2008",
+ doi = "99.9999/woot07-S422",
+ url = "http://video.google.com/videoplay?docid=6528042696351994555",
+ note = "",
+ howpublished = "Video",
+ editor = "",
+ volume = "",
+ number = "",
+ series = "",
+ organization = "",
+ distinctURL = 1
+}
+
+
+@article{Lee05,
+ author = "Newton Lee",
+ year = "2005",
+ title = "Interview with Bill Kinder: January 13, 2005",
+ journal = "Comput. Entertain.",
+ eid = "4",
+ volume = "3",
+ number = "1",
+ month = "Jan.-March",
+ doi = "10.1145/1057270.1057278",
+ url = "http://doi.acm.org/10.1145/1057270.1057278",
+ howpublished = "Video",
+ note = "",
+}
+
+@article{rous08,
+ author = "Bernard Rous",
+ year = "2008",
+ title = "The Enabling of Digital Libraries",
+ journal = "Digital Libraries",
+ volume = "12",
+ number = "3",
+ month = jul,
+ articleno = "Article~5",
+ doi = "",
+ url = "",
+ howpublished = "",
+ note = "To appear",
+}
+
+@article{384253,
+ author = {Werneck,, Renato and Setubal,, Jo\~{a}o and da Conceic\~{a}o,, Arlindo},
+ title = {(old) Finding minimum congestion spanning trees},
+ journal = {J. Exp. Algorithmics},
+ volume = {5},
+ year = {2000},
+ issn = {1084-6654},
+ pages = {11},
+ doi = {http://doi.acm.org/10.1145/351827.384253},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+ }
+
+
+@article{Werneck:2000:FMC:351827.384253,
+ author = {Werneck, Renato and Setubal, Jo\~{a}o and da Conceic\~{a}o, Arlindo},
+ title = {(new) Finding minimum congestion spanning trees},
+ journal = {J. Exp. Algorithmics},
+ volume = 5,
+ month = dec,
+ year = 2000,
+ issn = {1084-6654},
+ articleno = 11,
+ url = {http://portal.acm.org/citation.cfm?id=351827.384253},
+ doi = {10.1145/351827.384253},
+ acmid = 384253,
+ publisher = {ACM},
+ address = {New York, NY, USA},
+}
+
+@article{1555162,
+ author = {Conti, Mauro and Di Pietro, Roberto and Mancini, Luigi V. and Mei, Alessandro},
+ title = {(old) Distributed data source verification in wireless sensor networks},
+ journal = {Inf. Fusion},
+ volume = {10},
+ number = {4},
+ year = {2009},
+ issn = {1566-2535},
+ pages = {342--353},
+ doi = {http://dx.doi.org/10.1016/j.inffus.2009.01.002},
+ publisher = {Elsevier Science Publishers B. V.},
+ address = {Amsterdam, The Netherlands, The Netherlands},
+ }
+
+@article{Conti:2009:DDS:1555009.1555162,
+ author = {Conti, Mauro and Di Pietro, Roberto and Mancini, Luigi V. and Mei, Alessandro},
+ title = {(new) Distributed data source verification in wireless sensor networks},
+ journal = {Inf. Fusion},
+ volume = {10},
+ number = {4},
+ month = oct,
+ year = {2009},
+ issn = {1566-2535},
+ pages = {342--353},
+ numpages = {12},
+ url = {http://portal.acm.org/citation.cfm?id=1555009.1555162},
+ doi = {10.1016/j.inffus.2009.01.002},
+ acmid = {1555162},
+ publisher = {Elsevier Science Publishers B. V.},
+ address = {Amsterdam, The Netherlands, The Netherlands},
+ keywords = {Clone detection, Distributed protocol, Securing data fusion, Wireless sensor networks},
+}
+
+@inproceedings{Li:2008:PUC:1358628.1358946,
+ author = {Li, Cheng-Lun and Buyuktur, Ayse G. and Hutchful, David K. and Sant, Natasha B. and Nainwal, Satyendra K.},
+ title = {Portalis: using competitive online interactions to support aid initiatives for the homeless},
+ booktitle = {CHI '08 extended abstracts on Human factors in computing systems},
+ year = {2008},
+ isbn = {978-1-60558-012-X},
+ location = {Florence, Italy},
+ pages = {3873--3878},
+ numpages = {6},
+ url = {http://portal.acm.org/citation.cfm?id=1358628.1358946},
+ doi = {10.1145/1358628.1358946},
+ acmid = {1358946},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+ keywords = {cscw, distributed knowledge acquisition, incentive design, online games, recommender systems, reputation systems, user studies, virtual community},
+}
+
+@book{Hollis:1999:VBD:519964,
+ author = {Hollis, Billy S.},
+ title = {Visual Basic 6: Design, Specification, and Objects with Other},
+ year = {1999},
+ isbn = {0130850845},
+ edition = {1st},
+ publisher = {Prentice Hall PTR},
+ address = {Upper Saddle River, NJ, USA},
+ }
+
+
+@book{Goossens:1999:LWC:553897,
+ author = {Goossens, Michel and Rahtz, S. P. and Moore, Ross and Sutor, Robert S.},
+ title = {The Latex Web Companion: Integrating TEX, HTML, and XML},
+ year = {1999},
+ isbn = {0201433117},
+ edition = {1st},
+ publisher = {Addison-Wesley Longman Publishing Co., Inc.},
+ address = {Boston, MA, USA},
+ }
+
+% need to test genres for errant isbn output
+
+% techreport
+@techreport{897367,
+ author = {Buss, Jonathan F. and Rosenberg, Arnold L. and Knott, Judson D.},
+ title = {Vertex Types in Book-Embeddings},
+ year = {1987},
+ source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Aumass_cs%3Ancstrl.umassa_cs%2F%2FUM-CS-1987-018},
+ publisher = {University of Massachusetts},
+ address = {Amherst, MA, USA},
+ }
+
+@techreport{Buss:1987:VTB:897367,
+ author = {Buss, Jonathan F. and Rosenberg, Arnold L. and Knott, Judson D.},
+ title = {Vertex Types in Book-Embeddings},
+ year = {1987},
+ source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Aumass_cs%3Ancstrl.umassa_cs%2F%2FUM-CS-1987-018},
+ publisher = {University of Massachusetts},
+ address = {Amherst, MA, USA},
+ }
+
+% whole proceedings
+
+@proceedings{Czerwinski:2008:1358628,
+ author = {},
+ note = {General Chair-Czerwinski, Mary and General Chair-Lund, Arnie and Program Chair-Tan, Desney},
+ title = {CHI '08: CHI '08 extended abstracts on Human factors in computing systems},
+ year = {2008},
+ isbn = {978-1-60558-012-X},
+ location = {Florence, Italy},
+ order_no = {608085},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+ }
+
+% phdthesis
+
+@phdthesis{Clarkson:1985:ACP:911891,
+ author = {Clarkson, Kenneth Lee},
+ advisor = {Yao, Andrew C.},
+ title = {Algorithms for Closest-Point Problems (Computational Geometry)},
+ year = {1985},
+ note = {AAT 8506171},
+ school = {Stanford University},
+ address = {Stanford, CA, USA},
+ }
+% school is being picked up -- but not publisher (which is OK)
+% Also -- the title is NOT being output in italics !!! Arrrrgh! - I fixed it. :-)
+
+
+%%% compare with 'old'
+%%% atsign-Phdthesis{Clarkson85,
+%%% author = "Kenneth L. Clarkson",
+%%% year = "1985",
+%%% title = "Algorithms for Closest-Point Problems (Computational Geometry)",
+%%% school = "Stanford University",
+%%% address = "Palo Alto, CA",
+%%% note = "UMI Order Number: AAT 8506171",
+%%% type = "",
+%%% month = "",
+%%%}
+
+% A bibliography
+@Article{1984:1040142,
+ key = {{$\!\!$}},
+ journal = {SIGCOMM Comput. Commun. Rev.},
+ year = {1984},
+ issn = {0146-4833},
+ volume = {13-14},
+ number = {5-1},
+ issue_date = {January/April 1984},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+ }
+
+
+% grinder
+@inproceedings{2004:ITE:1009386.1010128,
+ key = {IEEE},
+ title = {IEEE TCSC Executive Committee},
+ booktitle = {Proceedings of the IEEE International Conference on Web Services},
+ series = {ICWS '04},
+ year = {2004},
+ isbn = {0-7695-2167-3},
+ pages = {21--22},
+ url = {http://dx.doi.org/10.1109/ICWS.2004.64},
+ doi = {http://dx.doi.org/10.1109/ICWS.2004.64},
+ acmid = {1010128},
+ publisher = {IEEE Computer Society},
+ address = {Washington, DC, USA},
+}
+
+% div book
+@book{Mullender:1993:DS:302430,
+ editor = {Mullender, Sape},
+ title = {Distributed systems (2nd Ed.)},
+ year = {1993},
+ isbn = {0-201-62427-3},
+ publisher = {ACM Press/Addison-Wesley Publishing Co.},
+ address = {New York, NY, USA},
+ }
+
+% master thesis (as techreport and thesis)
+
+@techreport{Petrie:1986:NAD:899644,
+ author = {Petrie, Charles J.},
+ title = {New Algorithms for Dependency-Directed Backtracking (Master's thesis)},
+ year = {1986},
+ source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Autexas_cs%3AUTEXAS_CS%2F%2FAI86-33},
+ publisher = {University of Texas at Austin},
+ address = {Austin, TX, USA},
+ }
+
+@MASTERSTHESIS{Petrie:1986:NAD:12345,
+ author = {Petrie, Charles J.},
+ title = {New Algorithms for Dependency-Directed Backtracking (Master's thesis)},
+ year = {1986},
+ source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Autexas_cs%3AUTEXAS_CS%2F%2FAI86-33},
+ school = {University of Texas at Austin},
+ address = {Austin, TX, USA},
+ }
+
+
+
+
+@BOOK{book-minimal,
+ author = "Donald E. Knuth",
+ title = "Seminumerical Algorithms",
+ publisher = "Addison-Wesley",
+ year = "1981",
+}
+
+% incollection (has an editor, title, and possibly a booktitle)
+@INcollection{KA:2001,
+ author = {Kong, Wei-Chang},
+ Title = {The implementation of electronic commerce in SMEs in Singapore (as Incoll)},
+ booktitle = {E-commerce and cultural values},
+ year = {2001},
+ isbn = {1-59140-056-2},
+ pages = {51--74},
+ numpages = {24},
+ url = {http://portal.acm.org/citation.cfm?id=887006.887010},
+ acmid = {887010},
+ publisher = {IGI Publishing},
+ address = {Hershey, PA, USA},
+}
+
+
+% with bibfield 'type' before chapter (note no editor)
+@INBOOK{KAGM:2001,
+ author = {Kong, Wei-Chang},
+ type = {Name of Chapter:},
+ chapter = {The implementation of electronic commerce in SMEs in Singapore (Inbook-w-chap-w-type)},
+ title = {E-commerce and cultural values},
+ year = {2001},
+ isbn = {1-59140-056-2},
+ pages = {51--74},
+ numpages = {24},
+ url = {http://portal.acm.org/citation.cfm?id=887006.887010},
+ acmid = {887010},
+ publisher = {IGI Publishing},
+ address = {Hershey, PA, USA},
+}
+
+%%% Notes! This is because the atsign-INBOOK citation type specifies EITHER
+%%% editor or author, but not both. In my experiments with the harvard/dcu
+%%% bibtex style (and presumably this applies to other styles too), bibtex
+%%% ignores the editor information if author information exists in an
+%%% atsign-INBOOK entry. atsign-INCOLLECTION is far more commonly used in my references,
+%%% and in the absence of an editor I believe most bibtex styles will just
+%%% ommit the editor from the reference - the chapter information will not
+%%% end up in the in-text citation as you suggest it should be but at least
+%%% there is a place to put the editor if necessary.
+
+
+
+% was 'Inbook' -- changed to incollection - (editor is different to author) - need to tell Asad to codify as such.
+@incollection{Kong:2002:IEC:887006.887010,
+ author = {Kong, Wei-Chang},
+ editor = {Theerasak Thanasankit},
+ title = {Chapter 9},
+ booktitle = {E-commerce and cultural values (Incoll-w-text (chap 9) 'title')},
+ year = {2002},
+ address = {Hershey, PA, USA},
+ publisher = {IGI Publishing},
+ url = {http://portal.acm.org/citation.cfm?id=887006.887010},
+ pages = {51--74},
+ numpages = {24},
+ acmid = {887010},
+ isbn = {1-59140-056-2},
+ number = "",
+ type = "",
+ month = "",
+ note = "",
+}
+
+% incol when the chapter is 'text' - due to presence of editor (different to author)
+@incollection{Kong:2003:IEC:887006.887011,
+ author = {Kong, Wei-Chang},
+ title = {The implementation of electronic commerce in SMEs in Singapore (Incoll)},
+ booktitle = {E-commerce and cultural values},
+ editor = {Thanasankit, Theerasak},
+ year = {2003},
+ isbn = {1-59140-056-2},
+ pages = {51--74},
+ numpages = {24},
+ url = {http://portal.acm.org/citation.cfm?id=887006.887010},
+ acmid = {887010},
+ publisher = {IGI Publishing},
+ address = {Hershey, PA, USA},
+}
+
+% ------ test
+%incollection{Kong:2003:IEC:887006.887010,
+% author = {Kong, Wei-Chang},
+% chapter = {The implementation of electronic commerce in SMEs in Singapore (Incoll-text-in-chap)},
+% booktitle = {booktitle E-commerce and cultural values},
+% title = {The title},
+% editor = {Thanasankit, Theerasak},
+% year = {2003},
+% isbn = {1-59140-056-2},
+% pages = {51--74},
+% numpages = {24},
+% url = {http://portal.acm.org/citation.cfm?id=887006.887010},
+% acmid = {887010},
+% publisher = {IGI Publishing},
+% address = {Hershey, PA, USA},
+%}
+
+
+% ---------
+
+
+
+
+
+% Need inbook with num in chapter
+
+% and inbook with number in chapter
+@InBook{Kong:2004:IEC:123456.887010,
+ author = {Kong, Wei-Chang},
+ editor = {Theerasak Thanasankit},
+ title = {E-commerce and cultural values - (InBook-num-in-chap)},
+ chapter = {9},
+ year = {2004},
+ address = {Hershey, PA, USA},
+ publisher = {IGI Publishing},
+ url = {http://portal.acm.org/citation.cfm?id=887006.887010},
+ pages = {51--74},
+ numpages = {24},
+ acmid = {887010},
+ isbn = {1-59140-056-2},
+ number = "",
+ type = "",
+ month = "",
+ note = "",
+}
+
+
+% and inbook with text in chapter
+@Inbook{Kong:2005:IEC:887006.887010,
+ author = {Kong, Wei-Chang},
+ editor = {Theerasak Thanasankit},
+ title = {E-commerce and cultural values (Inbook-text-in-chap)},
+ chapter = {The implementation of electronic commerce in SMEs in Singapore},
+ year = {2005},
+ address = {Hershey, PA, USA},
+ publisher = {IGI Publishing},
+ url = {http://portal.acm.org/citation.cfm?id=887006.887010},
+ type = {Chapter:},
+ pages = {51--74},
+ numpages = {24},
+ acmid = {887010},
+ isbn = {1-59140-056-2},
+ number = "",
+ month = "",
+ note = "",
+}
+
+
+% and inbook with a num and type field
+@Inbook{Kong:2006:IEC:887006.887010,
+ author = {Kong, Wei-Chang},
+ editor = {Theerasak Thanasankit},
+ title = {E-commerce and cultural values (Inbook-num chap)},
+ chapter = {22},
+ year = {2006},
+ address = {Hershey, PA, USA},
+ publisher = {IGI Publishing},
+ url = {http://portal.acm.org/citation.cfm?id=887006.887010},
+ type = {Chapter (in type field)},
+ pages = {51--74},
+ numpages = {24},
+ acmid = {887010},
+ isbn = {1-59140-056-2},
+ number = "",
+ month = "",
+ note = "",
+}
+
+
+% and incol coz we have a BLANK chapter - due to presence of editor
+%atIncollection{Kong:2006:IEC:887006.887011,
+% author = {Kong, Wei-Chang},
+% editor = {Theerasak Thanasankit},
+% title = "The title"
+% booktitle = {E-commerce and cultural values (Incol-coz-blank-chap)},
+% year = {2006},
+% address = {Hershey, PA, USA},
+% publisher = {IGI Publishing},
+% url = {http://portal.acm.org/citation.cfm?id=887006.887010},
+% type = {Type!},
+% chapter = {},
+% pages = {51--74},
+% numpages = {24},
+% acmid = {887010},
+% isbn = {1-59140-056-2},
+% number = "",
+% month = "",
+% note = "",
+%}
+
+@article{SaeediMEJ10,
+ author = {Mehdi Saeedi and Morteza Saheb Zamani and Mehdi Sedighi},
+ title = {A library-based synthesis methodology for reversible logic},
+ journal = {Microelectron. J.},
+ volume = {41},
+ number = {4},
+ month = apr,
+ year = {2010},
+ pages = {185--194},
+}
+
+@ARTICLE{SaeediJETC10,
+ author = {Mehdi Saeedi and Morteza Saheb Zamani and Mehdi Sedighi and Zahra Sasanian},
+ title = {Synthesis of Reversible Circuit Using Cycle-Based Approach},
+ journal = {J. Emerg. Technol. Comput. Syst.},
+ volume = {6},
+ number = {4},
+ month = dec,
+ year = {2010}
+ }
+
+% Asad's new version
+@article{Kirschmer:2010:AEI:1958016.1958018,
+ author = {Kirschmer, Markus and Voight, John},
+ title = {Algorithmic Enumeration of Ideal Classes for Quaternion Orders},
+ journal = {SIAM J. Comput.},
+ issue_date = {January 2010},
+ volume = {39},
+ number = {5},
+ month = jan,
+ year = {2010},
+ issn = {0097-5397},
+ pages = {1714--1747},
+ numpages = {34},
+ url = {http://dx.doi.org/10.1137/080734467},
+ doi = {https://doi.org/10.1137/080734467},
+ acmid = {1958018},
+ publisher = {Society for Industrial and Applied Mathematics},
+ address = {Philadelphia, PA, USA},
+ keywords = {ideal classes, maximal orders, number theory, quaternion algebras},
+}
+
+
+% incol due to presence of booktitle
+@incollection{Hoare:1972:CIN:1243380.1243382,
+ author = {Hoare, C. A. R.},
+ title = {Chapter II: Notes on data structuring},
+ booktitle = {Structured programming (incoll)},
+ editor = {Dahl, O. J. and Dijkstra, E. W. and Hoare, C. A. R.},
+ year = {1972},
+ isbn = {0-12-200550-3},
+ pages = {83--174},
+ numpages = {92},
+ url = {http://portal.acm.org/citation.cfm?id=1243380.1243382},
+ acmid = {1243382},
+ publisher = {Academic Press Ltd.},
+ address = {London, UK, UK},
+}
+
+% incol due to presence of booktitle
+@incollection{Lee:1978:TQA:800025.1198348,
+ author = {Lee, Jan},
+ title = {Transcript of question and answer session},
+ booktitle = {History of programming languages I (incoll)},
+ editor = {Wexelblat, Richard L.},
+ year = {1981},
+ isbn = {0-12-745040-8},
+ pages = {68--71},
+ numpages = {4},
+ url = {http://doi.acm.org/10.1145/800025.1198348},
+ doi = {http://doi.acm.org/10.1145/800025.1198348},
+ acmid = {1198348},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+}
+
+% incol due to booktitle
+@incollection{Dijkstra:1979:GSC:1241515.1241518,
+ author = {Dijkstra, E.},
+ title = {Go to statement considered harmful},
+ booktitle = {Classics in software engineering (incoll)},
+ year = {1979},
+ isbn = {0-917072-14-6},
+ pages = {27--33},
+ numpages = {7},
+ url = {http://portal.acm.org/citation.cfm?id=1241515.1241518},
+ acmid = {1241518},
+ publisher = {Yourdon Press},
+ address = {Upper Saddle River, NJ, USA},
+}
+
+% incol due to booktitle
+@incollection{Wenzel:1992:TVA:146022.146089,
+ author = {Wenzel, Elizabeth M.},
+ title = {Three-dimensional virtual acoustic displays},
+ booktitle = {Multimedia interface design (incoll)},
+ year = {1992},
+ isbn = {0-201-54981-6},
+ pages = {257--288},
+ numpages = {32},
+ url = {http://portal.acm.org/citation.cfm?id=146022.146089},
+ doi = {10.1145/146022.146089},
+ acmid = {146089},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+}
+
+% incol due to booktitle
+@incollection{Mumford:1987:MES:54905.54911,
+ author = {Mumford, E.},
+ title = {Managerial expert systems and organizational change: some critical research issues},
+ booktitle = {Critical issues in information systems research (incoll)},
+ year = {1987},
+ isbn = {0-471-91281-6},
+ pages = {135--155},
+ numpages = {21},
+ url = {http://portal.acm.org/citation.cfm?id=54905.54911},
+ acmid = {54911},
+ publisher = {John Wiley \& Sons, Inc.},
+ address = {New York, NY, USA},
+}
+
+@book{McCracken:1990:SSC:575315,
+ author = {McCracken, Daniel D. and Golden, Donald G.},
+ title = {Simplified Structured COBOL with Microsoft/MicroFocus COBOL},
+ year = {1990},
+ isbn = {0471514071},
+ publisher = {John Wiley \& Sons, Inc.},
+ address = {New York, NY, USA},
+}
+
+% Let's include Boris / BBeeton entries (multi-volume works)
+
+@book {MR781537,
+ AUTHOR = {H{\"o}rmander, Lars},
+ TITLE = {The analysis of linear partial differential operators. {III}},
+ SERIES = {Grundlehren der Mathematischen Wissenschaften [Fundamental
+ Principles of Mathematical Sciences]},
+ VOLUME = {275},
+ NOTE = {Pseudodifferential operators},
+PUBLISHER = {Springer-Verlag},
+ ADDRESS = {Berlin, Germany},
+ YEAR = {1985},
+ PAGES = {viii+525},
+ ISBN = {3-540-13828-5},
+ MRCLASS = {35-02 (35Sxx 47G05 58G15)},
+ MRNUMBER = {781536 (87d:35002a)},
+MRREVIEWER = {Min You Qi},
+}
+
+@book {MR781536,
+ AUTHOR = {H{\"o}rmander, Lars},
+ TITLE = {The analysis of linear partial differential operators. {IV}},
+ SERIES = {Grundlehren der Mathematischen Wissenschaften [Fundamental
+ Principles of Mathematical Sciences]},
+ VOLUME = {275},
+ NOTE = {Fourier integral operators},
+PUBLISHER = {Springer-Verlag},
+ ADDRESS = {Berlin, Germany},
+ YEAR = {1985},
+ PAGES = {vii+352},
+ ISBN = {3-540-13829-3},
+ MRCLASS = {35-02 (35Sxx 47G05 58G15)},
+ MRNUMBER = {781537 (87d:35002b)},
+MRREVIEWER = {Min You Qi},
+}
+
+%%%%%%%%%%%%%%%%%%%%%% Start of Aptara sample bib entries
+
+% acmsmall-sam.bib
+@InProceedings{Adya-01,
+ author = {A. Adya and P. Bahl and J. Padhye and A.Wolman and L. Zhou},
+ title = {A multi-radio unification protocol for {IEEE} 802.11 wireless networks},
+ booktitle = {Proceedings of the IEEE 1st International Conference on Broadnets Networks (BroadNets'04)},
+ publisher = "IEEE",
+ address = "Los Alamitos, CA",
+ year = {2004},
+ pages = "210--217"
+}
+
+@article{Akyildiz-01,
+ author = {I. F. Akyildiz and W. Su and Y. Sankarasubramaniam and E. Cayirci},
+ title = {Wireless Sensor Networks: A Survey},
+ journal = {Comm. ACM},
+ volume = 38,
+ number = "4",
+ year = {2002},
+ pages = "393--422"
+}
+
+@article{Akyildiz-02,
+ author = {I. F. Akyildiz and T. Melodia and K. R. Chowdhury},
+ title = {A Survey on Wireless Multimedia Sensor Networks},
+ journal = {Computer Netw.},
+ volume = 51,
+ number = "4",
+ year = {2007},
+ pages = "921--960"
+}
+
+@InProceedings{Bahl-02,
+ author = {P. Bahl and R. Chancre and J. Dungeon},
+ title = {{SSCH}: Slotted Seeded Channel Hopping for Capacity Improvement in {IEEE} 802.11 Ad-Hoc Wireless Networks},
+ booktitle = {Proceeding of the 10th International Conference on Mobile Computing and Networking (MobiCom'04)},
+ publisher = "ACM",
+ address = "New York, NY",
+ year = {2004},
+ pages = "112--117"
+}
+
+@misc{CROSSBOW,
+ key = {CROSSBOW},
+ title = {{XBOW} Sensor Motes Specifications},
+ note = {http://www.xbow.com},
+ year = 2008
+}
+
+@article{Culler-01,
+ author = {D. Culler and D. Estrin and M. Srivastava},
+ title = {Overview of Sensor Networks},
+ journal = {IEEE Comput.},
+ volume = 37,
+ number = "8 (Special Issue on Sensor Networks)",
+ publisher = "IEEE",
+ address = "Los Alamitos, CA",
+ year = {2004},
+ pages = "41--49"
+}
+
+@misc{Harvard-01,
+ key = {Harvard CodeBlue},
+ title = {{CodeBlue}: Sensor Networks for Medical Care},
+ note = {http://www.eecs.harvard.edu/mdw/ proj/codeblue/},
+ year = 2008
+}
+
+@InProceedings{Natarajan-01,
+ author = {A. Natarajan and M. Motani and B. de Silva and K. Yap and K. C. Chua},
+ title = {Investigating Network Architectures for Body Sensor Networks},
+ booktitle = {Network Architectures},
+ editor = {G. Whitcomb and P. Neece},
+ publisher = "Keleuven Press",
+ address = "Dayton, OH",
+ year = {2007},
+ pages = "322--328",
+ eprint = "960935712",
+ primaryclass = "cs",
+}
+
+@techreport{Tzamaloukas-01,
+ author = {A. Tzamaloukas and J. J. Garcia-Luna-Aceves},
+ title = {Channel-Hopping Multiple Access},
+ number = {I-CA2301},
+ institution = {Department of Computer Science, University of California},
+ address = {Berkeley, CA},
+ year = {2000}
+}
+
+@BOOK{Zhou-06,
+ author = {G. Zhou and J. Lu and C.-Y. Wan and M. D. Yarvis and J. A. Stankovic},
+ title = {Body Sensor Networks},
+ publisher = "MIT Press",
+ address = "Cambridge, MA",
+ year = {2008}
+}
+
+@mastersthesis{ko94,
+author = "Jacob Kornerup",
+title = "Mapping Powerlists onto Hypercubes",
+school = "The University of Texas at Austin",
+note = "(In preparation)",
+year = "1994"}
+%month = "dec",}
+
+@PhdThesis{gerndt:89,
+ author = "Michael Gerndt",
+ title = "Automatic Parallelization for Distributed-Memory
+ Multiprocessing Systems",
+ school = "University of Bonn",
+ year = 1989,
+ address = "Bonn, Germany",
+ month = dec
+}
+
+@article{6:1:1,
+author = "J. E. {Archer, Jr.} and R. Conway and F. B. Schneider",
+title = "User recovery and reversal in interactive systems",
+journal = "ACM Trans. Program. Lang. Syst.",
+volume = "6",
+number = "1",
+month = jan,
+year = 1984,
+pages = "1--19"}
+
+@article{7:1:137,
+author = "D. D. Dunlop and V. R. Basili",
+title = "Generalizing specifications for uniformly implemented loops",
+journal = "ACM Trans. Program. Lang. Syst.",
+volume = "7",
+number = "1",
+month = jan,
+year = 1985,
+pages = "137--158"}
+
+@article{7:2:183,
+author = "J. Heering and P. Klint",
+title = "Towards monolingual programming environments",
+journal = "ACM Trans. Program. Lang. Syst.",
+volume = "7",
+number = "2",
+month = apr,
+year = 1985,
+pages = "183--213"}
+
+@book{knuth:texbook,
+author = "Donald E. Knuth",
+title = "The {\TeX{}book}",
+publisher = "Addison-Wesley",
+address = "Reading, MA.",
+year = 1984}
+
+@article{6:3:380,
+author = "E. Korach and D. Rotem and N. Santoro",
+title = "Distributed algorithms for finding centers and medians in networks",
+journal = "ACM Trans. Program. Lang. Syst.",
+volume = "6",
+number = "3",
+month = jul,
+year = 1984,
+pages = "380--401"}
+
+@book{Lamport:LaTeX,
+author = "Leslie Lamport",
+title = "\it {\LaTeX}: A Document Preparation System",
+publisher = "Addison-Wesley",
+address = "Reading, MA.",
+year = 1986}
+
+@article{7:3:359,
+author = "F. Nielson",
+title = "Program transformations in a denotational setting",
+journal = "ACM Trans. Program. Lang. Syst.",
+volume = "7",
+number = "3",
+month = jul,
+year = 1985,
+pages = "359--379"}
+
+%testing
+@BOOK{test,
+ author = "Donald E. Knuth",
+ title = "Seminumerical Algorithms",
+ volume = 2,
+ series = "The Art of Computer Programming",
+ publisher = "Addison-Wesley",
+ address = "Reading, MA",
+ edition = "2nd",
+ month = "10~" # jan,
+ year = "1981",
+}
+
+@inproceedings{reid:scribe,
+author = "Brian K. Reid",
+title = "A high-level approach to computer document formatting",
+booktitle = "Proceedings of the 7th Annual Symposium on Principles of
+ Programming Languages",
+month = jan,
+year = 1980,
+publisher = "ACM",
+address = "New York",
+pages = "24--31"}
+
+@article{Zhou:2010:MMS:1721695.1721705,
+ author = {Zhou, Gang and Wu, Yafeng and Yan, Ting and He, Tian and Huang, Chengdu and Stankovic, John A. and Abdelzaher, Tarek F.},
+ title = {A multifrequency MAC specially designed for wireless sensor network applications},
+ journal = {ACM Trans. Embed. Comput. Syst.},
+ issue_date = {March 2010},
+ volume = 9,
+ number = 4,
+ month = {April},
+ year = 2010,
+ issn = {1539-9087},
+ pages = {39:1--39:41},
+ articleno = 39,
+ numpages = 41,
+ url = {http://doi.acm.org/10.1145/1721695.1721705},
+ doi = {10.1145/1721695.1721705},
+ acmid = 1721705,
+ publisher = {ACM},
+ address = {New York, NY, USA},
+ keywords = {Wireless sensor networks, media access control, multi-channel, radio interference, time synchronization},
+}
+
+
+@online{TUGInstmem,
+ key = {TUG},
+ year = 2017,
+ title = "Institutional members of the {\TeX} Users Group",
+ url = "http://wwtug.org/instmem.html",
+ lastaccessed = "May 27, 2017",
+}
+
+@online{CTANacmart,
+ author = {Boris Veytsman},
+ title = {acmart---{Class} for typesetting publications of {ACM}},
+ year = 2017,
+ url = {http://www.ctan.org/pkg/acmart},
+ lastaccessed = {May 27, 2017}
+ }
+
+@online{doclicense,
+ author = {Robin Schneider},
+ title = {The \textsl{doclicense} package},
+ year = 2022,
+ url = {http://www.ctan.org/pkg/doclicense},
+ lastaccessed = {May 27, 2022}
+ }
+
+@ARTICLE{bowman:reasoning,
+ author = {Bowman, Mic and Debray, Saumya K. and Peterson, Larry L.},
+ title = {Reasoning About Naming Systems},
+ journal = {ACM Trans. Program. Lang. Syst.},
+ volume = {15},
+ number = {5},
+ pages = {795-825},
+ month = {November},
+ year = {1993},
+ doi = {10.1145/161468.161471},
+}
+
+@ARTICLE{braams:babel,
+ author = {Braams, Johannes},
+ title = {Babel, a Multilingual Style-Option System for Use with LaTeX's Standard Document Styles},
+ journal = {TUGboat},
+ volume = {12},
+ number = {2},
+ pages = {291-301},
+ month = {June},
+ year = {1991},
+}
+
+@INPROCEEDINGS{clark:pct,
+ AUTHOR = "Malcolm Clark",
+ TITLE = "Post Congress Tristesse",
+ BOOKTITLE = "TeX90 Conference Proceedings",
+ PAGES = "84-89",
+ ORGANIZATION = "TeX Users Group",
+ MONTH = "March",
+ YEAR = {1991}
+}
+
+@ARTICLE{herlihy:methodology,
+ author = {Herlihy, Maurice},
+ title = {A Methodology for Implementing Highly Concurrent Data Objects},
+ journal = {ACM Trans. Program. Lang. Syst.},
+ volume = {15},
+ number = {5},
+ pages = {745-770},
+ month = {November},
+ year = {1993},
+ doi = {10.1145/161468.161469},
+}
+
+@BOOK{salas:calculus,
+ AUTHOR = "S.L. Salas and Einar Hille",
+ TITLE = "Calculus: One and Several Variable",
+ PUBLISHER = "John Wiley and Sons",
+ ADDRESS = "New York",
+ YEAR = "1978"
+}
+
+@MANUAL{Fear05,
+ title = {Publication quality tables in {\LaTeX}},
+ author = {Simon Fear},
+ month = {April},
+ year = 2005,
+ note = {\url{http://www.ctan.org/pkg/booktabs}}
+}
+
+@Manual{Amsthm15,
+ title = {Using the amsthm Package},
+ organization = {American Mathematical Society},
+ month = {April},
+ year = 2015,
+ note = {\url{http://www.ctan.org/pkg/amsthm}}
+}
+
+@ArtifactSoftware{R,
+ title = {R: A Language and Environment for Statistical Computing},
+ author = {{R Core Team}},
+ organization = {R Foundation for Statistical Computing},
+ address = {Vienna, Austria},
+ year = {2019},
+ url = {https://www.R-project.org/},
+}
+
+@ArtifactDataset{UMassCitations,
+ author = {Sam Anzaroot and Andrew McCallum},
+ title = {{UMass} Citation Field Extraction Dataset},
+ year = 2013,
+ url =
+ {http://www.iesl.cs.umass.edu/data/data-umasscitationfield},
+ lastaccessed = {May 27, 2019}
+}
+
+@Eprint{Bornmann2019,
+ author = {Bornmann, Lutz and Wray, K. Brad and Haunschild,
+ Robin},
+ title = {Citation concept analysis {(CCA)}---A new form of
+ citation analysis revealing the usefulness of
+ concepts for other researchers illustrated by two
+ exemplary case studies including classic books by
+ {Thomas S.~Kuhn} and {Karl R.~Popper}},
+ keywords = {Computer Science - Digital Libraries},
+ year = 2019,
+ month = "May",
+ eid = {arXiv:1905.12410},
+archivePrefix = {arXiv},
+ eprint = {1905.12410},
+ primaryClass = {cs.DL},
+}
+
+@Eprint{AnzarootPBM14,
+ author = {Sam Anzaroot and
+ Alexandre Passos and
+ David Belanger and
+ Andrew McCallum},
+ title = {Learning Soft Linear Constraints with Application to
+ Citation Field Extraction},
+ year = {2014},
+ archivePrefix = {arXiv},
+ eprint = {1403.1349},
+}
+
+@inproceedings{Hagerup1993,
+title = {Maintaining Discrete Probability Distributions Optimally},
+author = {Hagerup, Torben and Mehlhorn, Kurt and Munro, J. Ian},
+booktitle = {Proceedings of the 20th International Colloquium on Automata, Languages and Programming},
+series = {Lecture Notes in Computer Science},
+volume = {700},
+pages = {253--264},
+year = {1993},
+publisher = {Springer-Verlag},
+address = {Berlin},
+}
diff --git a/ACM-JRC/acmart-primary/samples/sample-franklin.png b/ACM-JRC/acmart-primary/samples/sample-franklin.png
new file mode 100644
index 0000000..c0b2af9
Binary files /dev/null and b/ACM-JRC/acmart-primary/samples/sample-franklin.png differ
diff --git a/ACM-JRC/acmart-primary/samples/samples.dtx b/ACM-JRC/acmart-primary/samples/samples.dtx
new file mode 100644
index 0000000..37e7a0a
--- /dev/null
+++ b/ACM-JRC/acmart-primary/samples/samples.dtx
@@ -0,0 +1,1029 @@
+%<*all>
+%%
+%%
+%% Commands for TeXCount
+%<\documentclass[manuscript,screen,review]{acmart}
+%\documentclass[acmsmall]{acmart}
+%\documentclass[acmsmall,natbib=false]{acmart}
+%\documentclass[acmsmall,screen,review]{acmart}
+%\documentclass[acmlarge]{acmart}
+%\documentclass[acmtog]{acmart}
+%\documentclass[sigconf]{acmart}
+%\documentclass[sigconf,natbib=false]{acmart}
+%\documentclass[sigconf,authordraft]{acmart}
+%\documentclass[sigplan,screen]{acmart}
+%\documentclass[sigchi]{acmart}
+%\documentclass[sigchi-a, nonacm]{acmart}
+%\documentclass[sigconf, language=french,
+%language=german, language=spanish, language=english]{acmart}
+%\documentclass[acmcp]{acmart}
+
+%%
+%% \BibTeX command to typeset BibTeX logo in the docs
+\AtBeginDocument{%
+ \providecommand\BibTeX{{%
+ Bib\TeX}}}
+
+%% Rights management information. This information is sent to you
+%% when you complete the rights form. These commands have SAMPLE
+%% values in them; it is your responsibility as an author to replace
+%% the commands and values with those provided to you when you
+%% complete the rights form.
+%
+\setcopyright{acmlicensed}
+\copyrightyear{2018}
+\acmYear{2018}
+\acmDOI{XXXXXXX.XXXXXXX}
+
+%
+%<*proceedings>
+%% These commands are for a PROCEEDINGS abstract or paper.
+\acmConference[Conference acronym 'XX]{Make sure to enter the correct
+ conference title from your rights confirmation emai}{June 03--05,
+ 2018}{Woodstock, NY}
+%%
+%% Uncomment \acmBooktitle if the title of the proceedings is different
+%% from ``Proceedings of ...''!
+%%
+%%\acmBooktitle{Woodstock '18: ACM Symposium on Neural Gaze Detection,
+%% June 03--05, 2018, Woodstock, NY}
+\acmISBN{978-1-4503-XXXX-X/18/06}
+%
+
+%<*journal>
+%%
+%% These commands are for a JOURNAL article.
+%\acmJournal{JACM}
+%\acmJournal{POMACS}
+%\acmJournal{TOG}
+%%\acmJournal{TOG} % Comment out journal to get conference info in bibstrip.
+%\acmJournal{JDS}
+\acmVolume{37}
+\acmNumber{4}
+\acmArticle{111}
+\acmMonth{8}
+%
+%<*all>
+
+
+%%
+%% Submission ID.
+%% Use this when submitting an article to a sponsored event. You'll
+%% receive a unique submission ID from the organizers
+%% of the event, and this ID should be used as the parameter to this command.
+%%\acmSubmissionID{123-A56-BU3}
+%
+
+%<*!acmcp>
+%%
+%% For managing citations, it is recommended to use bibliography
+%% files in BibTeX format.
+%%
+%% You can then either use BibTeX with the ACM-Reference-Format style,
+%% or BibLaTeX with the acmnumeric or acmauthoryear sytles, that include
+%% support for advanced citation of software artefact from the
+%% biblatex-software package, also separately available on CTAN.
+%%
+%% Look at the sample-*-biblatex.tex files for templates showcasing
+%% the biblatex styles.
+%%
+%!acmcp>
+
+%<*bibtex>
+%%
+%% The majority of ACM publications use numbered citations and
+%% references. The command \citestyle{authoryear} switches to the
+%% "author year" style.
+%%
+%% If you are preparing content for an event
+%% sponsored by ACM SIGGRAPH, you must use the "author year" style of
+%% citations and references.
+%%% Uncommenting
+%%% the next command will enable that style.
+%%%\citestyle{acmauthoryear}
+%\citestyle{acmauthoryear}
+%
+
+%<*acmsmall-biblatex|sigconf-biblatex>
+%%
+%% The majority of ACM publications use numbered citations and
+%% references, obtained by selecting the acmnumeric BibLaTeX style.
+%% The acmauthoryear BibLaTeX style switches to the "author year" style.
+%%
+%% If you are preparing content for an event
+%% sponsored by ACM SIGGRAPH, you must use the acmauthoryear style of
+%% citations and references.
+%%
+%% Bibliography style
+\RequirePackage[
+ datamodel=acmdatamodel,
+% style=acmnumeric,
+% style=acmauthoryear,
+ ]{biblatex}
+
+%% Declare bibliography sources (one \addbibresource command per source)
+\addbibresource{software.bib}
+\addbibresource{sample-base.bib}
+%
+%<*all>
+
+%%
+%% end of the preamble, start of the body of the document source.
+\begin{document}
+
+%%
+%% The "title" command has an optional parameter,
+%% allowing the author to define a "short title" to be used in page headers.
+\title{The Name of the Title Is Hope}
+%\translatedtitle{french}{Le nom du titre est l'espoir}
+%\translatedtitle{german}{Der Name des Titels ist 'Hoffnung'}
+%\translatedtitle{spanish}{El nombre del título es esperanza}
+
+%%
+%% The "author" command and its associated commands are used to define
+%% the authors and their affiliations.
+%% Of note is the shared affiliation of the first two authors, and the
+%% "authornote" and "authornotemark" commands
+%% used to denote shared contribution to the research.
+\author{Ben Trovato}
+%\authornote{Both authors contributed equally to this research.}
+\email{trovato@corporation.com}
+\orcid{1234-5678-9012}
+\author{G.K.M. Tobin}
+%\authornotemark[1]
+\email{webmaster@marysville-ohio.com}
+\affiliation{%
+ \institution{Institute for Clarity in Documentation}
+ \city{Dublin}
+ \state{Ohio}
+ \country{USA}
+}
+
+\author{Lars Th{\o}rv{\"a}ld}
+\affiliation{%
+ \institution{The Th{\o}rv{\"a}ld Group}
+ \city{Hekla}
+ \country{Iceland}}
+\email{larst@affiliation.org}
+
+\author{Valerie B\'eranger}
+\affiliation{%
+ \institution{Inria Paris-Rocquencourt}
+ \city{Rocquencourt}
+ \country{France}
+}
+
+\author{Aparna Patel}
+\affiliation{%
+ \institution{Rajiv Gandhi University}
+ \city{Doimukh}
+ \state{Arunachal Pradesh}
+ \country{India}}
+
+\author{Huifen Chan}
+\affiliation{%
+ \institution{Tsinghua University}
+ \city{Haidian Qu}
+ \state{Beijing Shi}
+ \country{China}}
+
+\author{Charles Palmer}
+\affiliation{%
+ \institution{Palmer Research Laboratories}
+ \city{San Antonio}
+ \state{Texas}
+ \country{USA}}
+\email{cpalmer@prl.com}
+
+\author{John Smith}
+\affiliation{%
+ \institution{The Th{\o}rv{\"a}ld Group}
+ \city{Hekla}
+ \country{Iceland}}
+\email{jsmith@affiliation.org}
+
+\author{Julius P. Kumquat}
+\affiliation{%
+ \institution{The Kumquat Consortium}
+ \city{New York}
+ \country{USA}}
+\email{jpkumquat@consortium.net}
+
+%%
+%% By default, the full list of authors will be used in the page
+%% headers. Often, this list is too long, and will overlap
+%% other information printed in the page headers. This command allows
+%% the author to define a more concise list
+%% of authors' names for this purpose.
+\renewcommand{\shortauthors}{Trovato et al.}
+%
+%<*acmcp>
+%%
+%% Article type: Research, Review, Discussion, Invited or position
+\acmArticleType{Review}
+%%
+%% Links to code and data
+\acmCodeLink{https://github.com/borisveytsman/acmart}
+\acmDataLink{htps://zenodo.org/link}
+%%
+%% Authors' contribution
+\acmContributions{BT and GKMT designed the study; LT, VB, and AP
+ conducted the experiments, BR, HC, CP and JS analyzed the results,
+ JPK developed analytical predictions, all authors participated in
+ writing the manuscript.}
+%%
+%% Sometimes the addresses are too long to fit on the page. In this
+%% case uncomment the lines below and fill them accodingly.
+%%
+%% \authorsaddresses{Corresponding author: Ben Trovato,
+%% \href{mailto:trovato@corporation.com}{trovato@corporation.com};
+%% Institute for Clarity in Documentation, P.O. Box 1212, Dublin,
+%% Ohio, USA, 43017-6221}
+%%
+%
+%<*!acmcp>
+
+%%
+%% The abstract is a short summary of the work to be presented in the
+%% article.
+\begin{abstract}
+ A clear and well-documented \LaTeX\ document is presented as an
+ article formatted for publication by ACM in a conference proceedings
+ or journal publication. Based on the ``acmart'' document class, this
+ article presents and explains many of the common variations, as well
+ as many of the formatting elements an author may use in the
+ preparation of the documentation of their work.
+\end{abstract}
+%!acmcp>
+%<*sigconf-i13n>
+
+\begin{translatedabstract}{french}
+ Un document \LaTeX\ clair et bien documenté est présenté comme un
+ article formaté pour publication par ACM dans les actes d'une
+ conférence ou parution dans une revue. Basé sur la classe de
+ document ``acmart'', ce l'article présente et explique de nombreuses
+ variations courantes, ainsi que autant d'éléments de mise en forme
+ qu'un auteur peut utiliser dans le préparation de la documentation
+ de leur travail.
+\end{translatedabstract}
+
+\begin{translatedabstract}{german}
+ Es wird ein übersichtliches und gut dokumentiertes \LaTeX\-Dokument präsentiert,
+ welches für die Veröffentlichung durch ACM in einem Tagungsband oder
+ als Zeitschriftenpublikation formatiert wurde.
+ Basierend auf der Dokumentenklasse ``acmart'' präsentiert und erklärt dieser Artikel
+ viele der Formatierungselemente sowie auch viele der gängigen Variationen,
+ die ein Autor bei der Beschreibung seiner Arbeit verwenden darf.
+\end{translatedabstract}
+
+\begin{translatedabstract}{spanish}
+ Un documento \LaTeX\ claro y bien documentado se presenta como un
+ artículo formateado para su publicación por ACM en las actas de una
+ conferencia o publicación de una revista. Basado en la clase de
+ documento ``acmart'', este artículo presenta y explica muchas de las
+ variaciones comunes, así como tantos de los elementos de formato que
+ un autor puede usar en el preparación de la documentación de su
+ trabajo.
+ \end{translatedabstract}
+%
+%<*!acmcp>
+
+%%
+%% The code below is generated by the tool at http://dl.acm.org/ccs.cfm.
+%% Please copy and paste the code instead of the example below.
+%%
+\begin{CCSXML}
+
+
+ 00000000.0000000.0000000
+ Do Not Use This Code, Generate the Correct Terms for Your Paper
+ 500
+
+
+ 00000000.00000000.00000000
+ Do Not Use This Code, Generate the Correct Terms for Your Paper
+ 300
+
+
+ 00000000.00000000.00000000
+ Do Not Use This Code, Generate the Correct Terms for Your Paper
+ 100
+
+
+ 00000000.00000000.00000000
+ Do Not Use This Code, Generate the Correct Terms for Your Paper
+ 100
+
+
+\end{CCSXML}
+
+\ccsdesc[500]{Do Not Use This Code~Generate the Correct Terms for Your Paper}
+\ccsdesc[300]{Do Not Use This Code~Generate the Correct Terms for Your Paper}
+\ccsdesc{Do Not Use This Code~Generate the Correct Terms for Your Paper}
+\ccsdesc[100]{Do Not Use This Code~Generate the Correct Terms for Your Paper}
+
+%!acmcp>
+%<*all>
+%%
+%% Keywords. The author(s) should pick words that accurately describe
+%% the work being presented. Separate the keywords with commas.
+\keywords{Do, Not, Us, This, Code, Put, the, Correct, Terms, for,
+ Your, Paper}
+%\translatedkeywords{french}{ensembles de données,
+% réseaux de neurones,
+% détection du regard, marquage de texte}
+% \translatedkeywords{german}{Datensammlungen,
+% neuronale Netze, Blickerkennung, Textklassifizierung}
+% \translatedkeywords{spanish}{conjuntos de datos,
+% redes neuronales, detección de mirada, etiquetado de texto}
+%
+%<*sigconf|authordraft|sigplan|acmsmall-conf|sigconf-i13n>
+%% A "teaser" image appears between the author and affiliation
+%% information and the body of the document, and typically spans the
+%% page.
+\begin{teaserfigure}
+ \includegraphics[width=\textwidth]{sampleteaser}
+ \caption{Seattle Mariners at Spring Training, 2010.}
+ \Description{Enjoying the baseball game from the third-base
+ seats. Ichiro Suzuki preparing to bat.}
+ \label{fig:teaser}
+\end{teaserfigure}
+%
+%<*!acmcp>
+
+\received{20 February 2007}
+\received[revised]{12 March 2009}
+\received[accepted]{5 June 2009}
+
+%%
+%% This command processes the author and affiliation and title
+%% information and builds the first part of the formatted document.
+\maketitle
+
+\section{Introduction}
+ACM's consolidated article template, introduced in 2017, provides a
+consistent \LaTeX\ style for use across ACM publications, and
+incorporates accessibility and metadata-extraction functionality
+necessary for future Digital Library endeavors. Numerous ACM and
+SIG-specific \LaTeX\ templates have been examined, and their unique
+features incorporated into this single new template.
+
+If you are new to publishing with ACM, this document is a valuable
+guide to the process of preparing your work for publication. If you
+have published with ACM before, this document provides insight and
+instruction into more recent changes to the article template.
+
+The ``\verb|acmart|'' document class can be used to prepare articles
+for any ACM publication --- conference or journal, and for any stage
+of publication, from review to final ``camera-ready'' copy, to the
+author's own version, with {\itshape very} few changes to the source.
+
+\section{Template Overview}
+As noted in the introduction, the ``\verb|acmart|'' document class can
+be used to prepare many different kinds of documentation --- a
+double-anonymous initial submission of a full-length technical paper, a
+two-page SIGGRAPH Emerging Technologies abstract, a ``camera-ready''
+journal article, a SIGCHI Extended Abstract, and more --- all by
+selecting the appropriate {\itshape template style} and {\itshape
+ template parameters}.
+
+This document will explain the major features of the document
+class. For further information, the {\itshape \LaTeX\ User's Guide} is
+available from
+\url{https://www.acm.org/publications/proceedings-template}.
+
+\subsection{Template Styles}
+
+The primary parameter given to the ``\verb|acmart|'' document class is
+the {\itshape template style} which corresponds to the kind of publication
+or SIG publishing the work. This parameter is enclosed in square
+brackets and is a part of the {\verb|documentclass|} command:
+\begin{verbatim}
+ \documentclass[STYLE]{acmart}
+\end{verbatim}
+
+Journals use one of three template styles. All but three ACM journals
+use the {\verb|acmsmall|} template style:
+\begin{itemize}
+\item {\texttt{acmsmall}}: The default journal template style.
+\item {\texttt{acmlarge}}: Used by JOCCH and TAP.
+\item {\texttt{acmtog}}: Used by TOG.
+\end{itemize}
+
+The majority of conference proceedings documentation will use the {\verb|acmconf|} template style.
+\begin{itemize}
+\item {\texttt{sigconf}}: The default proceedings template style.
+\item{\texttt{sigchi}}: Used for SIGCHI conference articles.
+\item{\texttt{sigplan}}: Used for SIGPLAN conference articles.
+\end{itemize}
+
+\subsection{Template Parameters}
+
+In addition to specifying the {\itshape template style} to be used in
+formatting your work, there are a number of {\itshape template parameters}
+which modify some part of the applied template style. A complete list
+of these parameters can be found in the {\itshape \LaTeX\ User's Guide.}
+
+Frequently-used parameters, or combinations of parameters, include:
+\begin{itemize}
+\item {\texttt{anonymous,review}}: Suitable for a ``double-anonymous''
+ conference submission. Anonymizes the work and includes line
+ numbers. Use with the \texttt{\acmSubmissionID} command to print the
+ submission's unique ID on each page of the work.
+\item{\texttt{authorversion}}: Produces a version of the work suitable
+ for posting by the author.
+\item{\texttt{screen}}: Produces colored hyperlinks.
+\end{itemize}
+
+This document uses the following string as the first command in the
+source file:
+\begin{verbatim}
+%\documentclass[manuscript,screen,review]{acmart}
+%\documentclass[acmsmall]{acmart}
+%\documentclass[acmsmall,screen,review]{acmart}
+%\documentclass[acmlarge]{acmart}
+%\documentclass[acmtog]{acmart}
+%\documentclass[sigconf]{acmart}
+%\documentclass[sigconf,authordraft]{acmart}
+%\documentclass[sigplan,screen]{acmart}
+%\documentclass[sigchi]{acmart}
+%\documentclass[sigchi-a]{acmart}
+%\documentclass[sigconf, language=french,
+%language=german, language=spanish, language=english]{acmart}
+\end{verbatim}
+
+
+\section{Modifications}
+
+Modifying the template --- including but not limited to: adjusting
+margins, typeface sizes, line spacing, paragraph and list definitions,
+and the use of the \verb|\vspace| command to manually adjust the
+vertical spacing between elements of your work --- is not allowed.
+
+{\bfseries Your document will be returned to you for revision if
+ modifications are discovered.}
+
+\section{Typefaces}
+
+The ``\verb|acmart|'' document class requires the use of the
+``Libertine'' typeface family. Your \TeX\ installation should include
+this set of packages. Please do not substitute other typefaces. The
+``\verb|lmodern|'' and ``\verb|ltimes|'' packages should not be used,
+as they will override the built-in typeface families.
+
+\section{Title Information}
+
+The title of your work should use capital letters appropriately -
+\url{https://capitalizemytitle.com/} has useful rules for
+capitalization. Use the {\verb|title|} command to define the title of
+your work. If your work has a subtitle, define it with the
+{\verb|subtitle|} command. Do not insert line breaks in your title.
+
+If your title is lengthy, you must define a short version to be used
+in the page headers, to prevent overlapping text. The \verb|title|
+command has a ``short title'' parameter:
+\begin{verbatim}
+ \title[short title]{full title}
+\end{verbatim}
+
+\section{Authors and Affiliations}
+
+Each author must be defined separately for accurate metadata
+identification. As an exception, multiple authors may share one
+affiliation. Authors' names should not be abbreviated; use full first
+names wherever possible. Include authors' e-mail addresses whenever
+possible.
+
+Grouping authors' names or e-mail addresses, or providing an ``e-mail
+alias,'' as shown below, is not acceptable:
+\begin{verbatim}
+ \author{Brooke Aster, David Mehldau}
+ \email{dave,judy,steve@university.edu}
+ \email{firstname.lastname@phillips.org}
+\end{verbatim}
+
+The \verb|authornote| and \verb|authornotemark| commands allow a note
+to apply to multiple authors --- for example, if the first two authors
+of an article contributed equally to the work.
+
+If your author list is lengthy, you must define a shortened version of
+the list of authors to be used in the page headers, to prevent
+overlapping text. The following command should be placed just after
+the last \verb|\author{}| definition:
+\begin{verbatim}
+ \renewcommand{\shortauthors}{McCartney, et al.}
+\end{verbatim}
+Omitting this command will force the use of a concatenated list of all
+of the authors' names, which may result in overlapping text in the
+page headers.
+
+The article template's documentation, available at
+\url{https://www.acm.org/publications/proceedings-template}, has a
+complete explanation of these commands and tips for their effective
+use.
+
+Note that authors' addresses are mandatory for journal articles.
+
+\section{Rights Information}
+
+Authors of any work published by ACM will need to complete a rights
+form. Depending on the kind of work, and the rights management choice
+made by the author, this may be copyright transfer, permission,
+license, or an OA (open access) agreement.
+
+Regardless of the rights management choice, the author will receive a
+copy of the completed rights form once it has been submitted. This
+form contains \LaTeX\ commands that must be copied into the source
+document. When the document source is compiled, these commands and
+their parameters add formatted text to several areas of the final
+document:
+\begin{itemize}
+\item the ``ACM Reference Format'' text on the first page.
+\item the ``rights management'' text on the first page.
+\item the conference information in the page header(s).
+\end{itemize}
+
+Rights information is unique to the work; if you are preparing several
+works for an event, make sure to use the correct set of commands with
+each of the works.
+
+The ACM Reference Format text is required for all articles over one
+page in length, and is optional for one-page articles (abstracts).
+
+\section{CCS Concepts and User-Defined Keywords}
+
+Two elements of the ``acmart'' document class provide powerful
+taxonomic tools for you to help readers find your work in an online
+search.
+
+The ACM Computing Classification System ---
+\url{https://www.acm.org/publications/class-2012} --- is a set of
+classifiers and concepts that describe the computing
+discipline. Authors can select entries from this classification
+system, via \url{https://dl.acm.org/ccs/ccs.cfm}, and generate the
+commands to be included in the \LaTeX\ source.
+
+User-defined keywords are a comma-separated list of words and phrases
+of the authors' choosing, providing a more flexible way of describing
+the research being presented.
+
+CCS concepts and user-defined keywords are required for for all
+articles over two pages in length, and are optional for one- and
+two-page articles (or abstracts).
+
+\section{Sectioning Commands}
+
+Your work should use standard \LaTeX\ sectioning commands:
+\verb|section|, \verb|subsection|, \verb|subsubsection|, and
+\verb|paragraph|. They should be numbered; do not remove the numbering
+from the commands.
+
+Simulating a sectioning command by setting the first word or words of
+a paragraph in boldface or italicized text is {\bfseries not allowed.}
+
+\section{Tables}
+
+The ``\verb|acmart|'' document class includes the ``\verb|booktabs|''
+package --- \url{https://ctan.org/pkg/booktabs} --- for preparing
+high-quality tables.
+
+Table captions are placed {\itshape above} the table.
+
+Because tables cannot be split across pages, the best placement for
+them is typically the top of the page nearest their initial cite. To
+ensure this proper ``floating'' placement of tables, use the
+environment \textbf{table} to enclose the table's contents and the
+table caption. The contents of the table itself must go in the
+\textbf{tabular} environment, to be aligned properly in rows and
+columns, with the desired horizontal and vertical rules. Again,
+detailed instructions on \textbf{tabular} material are found in the
+\textit{\LaTeX\ User's Guide}.
+
+Immediately following this sentence is the point at which
+Table~\ref{tab:freq} is included in the input file; compare the
+placement of the table here with the table in the printed output of
+this document.
+
+%\begin{table}
+%\begin{margintable}
+ \caption{Frequency of Special Characters}
+ \label{tab:freq}
+ \begin{tabular}{ccl}
+ \toprule
+ Non-English or Math&Frequency&Comments\\
+ \midrule
+ \O & 1 in 1,000& For Swedish names\\
+ $\pi$ & 1 in 5& Common in math\\
+ \$ & 4 in 5 & Used in business\\
+ $\Psi^2_1$ & 1 in 40,000& Unexplained usage\\
+ \bottomrule
+\end{tabular}
+%\end{table}
+%\end{margintable}
+
+To set a wider table, which takes up the whole width of the page's
+live area, use the environment \textbf{table*} to enclose the table's
+contents and the table caption. As with a single-column table, this
+wide table will ``float'' to a location deemed more
+desirable. Immediately following this sentence is the point at which
+Table~\ref{tab:commands} is included in the input file; again, it is
+instructive to compare the placement of the table here with the table
+in the printed output of this document.
+
+\begin{table*}
+ \caption{Some Typical Commands}
+ \label{tab:commands}
+ \begin{tabular}{ccl}
+ \toprule
+ Command &A Number & Comments\\
+ \midrule
+ \texttt{{\char'134}author} & 100& Author \\
+ \texttt{{\char'134}table}& 300 & For tables\\
+ \texttt{{\char'134}table*}& 400& For wider tables\\
+ \bottomrule
+ \end{tabular}
+\end{table*}
+
+Always use midrule to separate table header rows from data rows, and
+use it only for this purpose. This enables assistive technologies to
+recognise table headers and support their users in navigating tables
+more easily.
+
+
+\section{Math Equations}
+You may want to display math equations in three distinct styles:
+inline, numbered or non-numbered display. Each of the three are
+discussed in the next sections.
+
+\subsection{Inline (In-text) Equations}
+A formula that appears in the running text is called an inline or
+in-text formula. It is produced by the \textbf{math} environment,
+which can be invoked with the usual
+\texttt{{\char'134}begin\,\ldots{\char'134}end} construction or with
+the short form \texttt{\$\,\ldots\$}. You can use any of the symbols
+and structures, from $\alpha$ to $\omega$, available in
+\LaTeX~\cite{Lamport:LaTeX}; this section will simply show a few
+examples of in-text equations in context. Notice how this equation:
+\begin{math}
+ \lim_{n\rightarrow \infty}x=0
+\end{math},
+set here in in-line math style, looks slightly different when
+set in display style. (See next section).
+
+\subsection{Display Equations}
+A numbered display equation---one set off by vertical space from the
+text and centered horizontally---is produced by the \textbf{equation}
+environment. An unnumbered display equation is produced by the
+\textbf{displaymath} environment.
+
+Again, in either environment, you can use any of the symbols and
+structures available in \LaTeX\@; this section will just give a couple
+of examples of display equations in context. First, consider the
+equation, shown as an inline equation above:
+\begin{equation}
+ \lim_{n\rightarrow \infty}x=0
+\end{equation}
+Notice how it is formatted somewhat differently in
+the \textbf{displaymath}
+environment. Now, we'll enter an unnumbered equation:
+\begin{displaymath}
+ \sum_{i=0}^{\infty} x + 1
+\end{displaymath}
+and follow it with another numbered equation:
+\begin{equation}
+ \sum_{i=0}^{\infty}x_i=\int_{0}^{\pi+2} f
+\end{equation}
+just to demonstrate \LaTeX's able handling of numbering.
+
+\section{Figures}
+
+The ``\verb|figure|'' environment should be used for figures. One or
+more images can be placed within a figure. If your figure contains
+third-party material, you must clearly identify it as such, as shown
+in the example below.
+%\begin{figure}[h]
+%\begin{marginfigure}
+ \centering
+ \includegraphics[width=\linewidth]{sample-franklin}
+ \caption{1907 Franklin Model D roadster. Photograph by Harris \&
+ Ewing, Inc. [Public domain], via Wikimedia
+ Commons. (\url{https://goo.gl/VLCRBB}).}
+ \Description{A woman and a girl in white dresses sit in an open car.}
+%\end{figure}
+%\end{marginfigure}
+
+Your figures should contain a caption which describes the figure to
+the reader.
+
+Figure captions are placed {\itshape below} the figure.
+
+Every figure should also have a figure description unless it is purely
+decorative. These descriptions convey what’s in the image to someone
+who cannot see it. They are also used by search engine crawlers for
+indexing images, and when images cannot be loaded.
+
+A figure description must be unformatted plain text less than 2000
+characters long (including spaces). {\bfseries Figure descriptions
+ should not repeat the figure caption – their purpose is to capture
+ important information that is not already provided in the caption or
+ the main text of the paper.} For figures that convey important and
+complex new information, a short text description may not be
+adequate. More complex alternative descriptions can be placed in an
+appendix and referenced in a short figure description. For example,
+provide a data table capturing the information in a bar chart, or a
+structured list representing a graph. For additional information
+regarding how best to write figure descriptions and why doing this is
+so important, please see
+\url{https://www.acm.org/publications/taps/describing-figures/}.
+
+
+\subsection{The ``Teaser Figure''}
+
+A ``teaser figure'' is an image, or set of images in one figure, that
+are placed after all author and affiliation information, and before
+the body of the article, spanning the page. If you wish to have such a
+figure in your article, place the command immediately before the
+\verb|\maketitle| command:
+\begin{verbatim}
+ \begin{teaserfigure}
+ \includegraphics[width=\textwidth]{sampleteaser}
+ \caption{figure caption}
+ \Description{figure description}
+ \end{teaserfigure}
+\end{verbatim}
+
+\section{Citations and Bibliographies}
+
+The use of \BibTeX\ for the preparation and formatting of one's
+references is strongly recommended. Authors' names should be complete
+--- use full first names (``Donald E. Knuth'') not initials
+(``D. E. Knuth'') --- and the salient identifying features of a
+reference should be included: title, year, volume, number, pages,
+article DOI, etc.
+
+%<*!(acmsmall-biblatex|sigconf-biblatex)>
+The bibliography is included in your source document with these two
+commands, placed just before the \verb|\end{document}| command:
+\begin{verbatim}
+ \bibliographystyle{ACM-Reference-Format}
+ \bibliography{bibfile}
+\end{verbatim}
+where ``\verb|bibfile|'' is the name, without the ``\verb|.bib|''
+suffix, of the \BibTeX\ file.
+
+Citations and references are numbered by default. A small number of
+ACM publications have citations and references formatted in the
+``author year'' style; for these exceptions, please include this
+command in the {\bfseries preamble} (before the command
+``\verb|\begin{document}|'') of your \LaTeX\ source:
+\begin{verbatim}
+ \citestyle{acmauthoryear}
+\end{verbatim}
+%!(acmsmall-biblatex|sigconf-biblatex)>
+
+%<*acmsmall-biblatex|sigconf-biblatex>
+Using the BibLaTeX system, the bibliography is included in your source
+document with the following command, placed just before the \verb|\end{document}| command:
+\begin{verbatim}
+ \printbibliography
+\end{verbatim}
+
+The command \verb|\addbibresource{bibfile}| declares the \BibTeX\ file to use
+in the {\bfseries preamble} (before the command
+``\verb|\begin{document}|'') of your \LaTeX\ source
+where ``\verb|bibfile|'' is the name, \emph{with} the ``\verb|.bib|'' suffix.
+Notice that \verb|\addbibresource| takes only one argument: to declare multiple files,
+use multiple instances of the command.
+
+Citations and references are numbered by default. A small number of
+ACM publications have citations and references formatted in the
+``author year'' style; for these exceptions, please pass the option \verb|style=acmauthoryear|
+to the \verb|biblatex| package loaded in the {\bfseries preamble} (before the command
+``\verb|\begin{document}|'') of your \LaTeX\ source.
+
+%
+
+
+
+ Some examples. A paginated journal article \cite{Abril07}, an
+ enumerated journal article \cite{Cohen07}, a reference to an entire
+ issue \cite{JCohen96}, a monograph (whole book) \cite{Kosiur01}, a
+ monograph/whole book in a series (see 2a in spec. document)
+ \cite{Harel79}, a divisible-book such as an anthology or compilation
+ \cite{Editor00} followed by the same example, however we only output
+ the series if the volume number is given \cite{Editor00a} (so
+ Editor00a's series should NOT be present since it has no vol. no.),
+ a chapter in a divisible book \cite{Spector90}, a chapter in a
+ divisible book in a series \cite{Douglass98}, a multi-volume work as
+ book \cite{Knuth97}, a couple of articles in a proceedings (of a
+ conference, symposium, workshop for example) (paginated proceedings
+ article) \cite{Andler79, Hagerup1993}, a proceedings article with
+ all possible elements \cite{Smith10}, an example of an enumerated
+ proceedings article \cite{VanGundy07}, an informally published work
+ \cite{Harel78}, a couple of preprints \cite{Bornmann2019,
+ AnzarootPBM14}, a doctoral dissertation \cite{Clarkson85}, a
+ master's thesis: \cite{anisi03}, an online document / world wide web
+ resource \cite{Thornburg01, Ablamowicz07, Poker06}, a video game
+ (Case 1) \cite{Obama08} and (Case 2) \cite{Novak03} and \cite{Lee05}
+ and (Case 3) a patent \cite{JoeScientist001}, work accepted for
+ publication \cite{rous08}, 'YYYYb'-test for prolific author
+ \cite{SaeediMEJ10} and \cite{SaeediJETC10}. Other cites might
+ contain 'duplicate' DOI and URLs (some SIAM articles)
+ \cite{Kirschmer:2010:AEI:1958016.1958018}. Boris / Barbara Beeton:
+ multi-volume works as books \cite{MR781536} and \cite{MR781537}. A
+ couple of citations with DOIs:
+ \cite{2004:ITE:1009386.1010128,Kirschmer:2010:AEI:1958016.1958018}. Online
+ citations: \cite{TUGInstmem, Thornburg01, CTANacmart}.
+%<*!(acmsmall-biblatex|sigconf-biblatex)>
+ Artifacts: \cite{R} and \cite{UMassCitations}.
+%!(acmsmall-biblatex|sigconf-biblatex)>
+%<*acmsmall-biblatex|sigconf-biblatex>
+ Data Artifacts: \cite{UMassCitations}.
+ Software project: ~\cite{cgal,delebecque:hal-02090402}. Software Version: ~\cite{gf-tag-sound-repo,}. Software Module: ~\cite{cgal:lp-gi-20a}. Code fragment: ~\cite{simplemapper}.
+%
+
+
+\section{Acknowledgments}
+
+Identification of funding sources and other support, and thanks to
+individuals and groups that assisted in the research and the
+preparation of the work should be included in an acknowledgment
+section, which is placed just before the reference section in your
+document.
+
+This section has a special environment:
+\begin{verbatim}
+ \begin{acks}
+ ...
+ \end{acks}
+\end{verbatim}
+so that the information contained therein can be more easily collected
+during the article metadata extraction phase, and to ensure
+consistency in the spelling of the section heading.
+
+Authors should not prepare this section as a numbered or unnumbered {\verb|\section|}; please use the ``{\verb|acks|}'' environment.
+
+\section{Appendices}
+
+If your work needs an appendix, add it before the
+``\verb|\end{document}|'' command at the conclusion of your source
+document.
+
+Start the appendix with the ``\verb|appendix|'' command:
+\begin{verbatim}
+ \appendix
+\end{verbatim}
+and note that in the appendix, sections are lettered, not
+numbered. This document has two appendices, demonstrating the section
+and subsection identification method.
+
+\section{Multi-language papers}
+
+Papers may be written in languages other than English or include
+titles, subtitles, keywords and abstracts in different languages (as a
+rule, a paper in a language other than English should include an
+English title and an English abstract). Use \verb|language=...| for
+every language used in the paper. The last language indicated is the
+main language of the paper. For example, a French paper with
+additional titles and abstracts in English and German may start with
+the following command
+\begin{verbatim}
+\documentclass[sigconf, language=english, language=german,
+ language=french]{acmart}
+\end{verbatim}
+
+The title, subtitle, keywords and abstract will be typeset in the main
+language of the paper. The commands \verb|\translatedXXX|, \verb|XXX|
+begin title, subtitle and keywords, can be used to set these elements
+in the other languages. The environment \verb|translatedabstract| is
+used to set the translation of the abstract. These commands and
+environment have a mandatory first argument: the language of the
+second argument. See \verb|sample-sigconf-i13n.tex| file for examples
+of their usage.
+
+\section{SIGCHI Extended Abstracts}
+
+The ``\verb|sigchi-a|'' template style (available only in \LaTeX\ and
+not in Word) produces a landscape-orientation formatted article, with
+a wide left margin. Three environments are available for use with the
+``\verb|sigchi-a|'' template style, and produce formatted output in
+the margin:
+\begin{description}
+\item[\texttt{sidebar}:] Place formatted text in the margin.
+\item[\texttt{marginfigure}:] Place a figure in the margin.
+\item[\texttt{margintable}:] Place a table in the margin.
+\end{description}
+
+%%
+%% The acknowledgments section is defined using the "acks" environment
+%% (and NOT an unnumbered section). This ensures the proper
+%% identification of the section in the article metadata, and the
+%% consistent spelling of the heading.
+\begin{acks}
+To Robert, for the bagels and explaining CMYK and color spaces.
+\end{acks}
+
+%<*!(acmsmall-biblatex|sigconf-biblatex)>
+%%
+%% The next two lines define the bibliography style to be used, and
+%% the bibliography file.
+\bibliographystyle{ACM-Reference-Format}
+\bibliography{sample-base}
+%!(acmsmall-biblatex|sigconf-biblatex)>
+
+%<*(acmsmall-biblatex|sigconf-biblatex)>
+%%
+%% Print the bibliography
+%%
+\printbibliography
+%(acmsmall-biblatex|sigconf-biblatex)>
+
+%%
+%% If your work has an appendix, this is the place to put it.
+\appendix
+
+\section{Research Methods}
+
+\subsection{Part One}
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi
+malesuada, quam in pulvinar varius, metus nunc fermentum urna, id
+sollicitudin purus odio sit amet enim. Aliquam ullamcorper eu ipsum
+vel mollis. Curabitur quis dictum nisl. Phasellus vel semper risus, et
+lacinia dolor. Integer ultricies commodo sem nec semper.
+
+\subsection{Part Two}
+
+Etiam commodo feugiat nisl pulvinar pellentesque. Etiam auctor sodales
+ligula, non varius nibh pulvinar semper. Suspendisse nec lectus non
+ipsum convallis congue hendrerit vitae sapien. Donec at laoreet
+eros. Vivamus non purus placerat, scelerisque diam eu, cursus
+ante. Etiam aliquam tortor auctor efficitur mattis.
+
+\section{Online Resources}
+
+Nam id fermentum dui. Suspendisse sagittis tortor a nulla mollis, in
+pulvinar ex pretium. Sed interdum orci quis metus euismod, et sagittis
+enim maximus. Vestibulum gravida massa ut felis suscipit
+congue. Quisque mattis elit a risus ultrices commodo venenatis eget
+dui. Etiam sagittis eleifend elementum.
+
+Nam interdum magna at lectus dignissim, ac dignissim lorem
+rhoncus. Maecenas eu arcu ac neque placerat aliquam. Nunc pulvinar
+massa et mattis lacinia.
+
+\end{document}
+%!acmcp>
+%<*acmcp>
+
+\maketitle
+
+
+\section{Problem statement}
+
+In this document we discuss how to write an ACM article.
+
+\section{Methods}
+
+This document provides \LaTeX\ templates for the article. We
+demonstrate different versions of ACM styles and show various options
+and commands. We add extensive documentation for these commands and
+show examples of their use.
+
+\section{Results}
+
+We hope the resulting templates and documentation will help the
+readers to write submissions for ACM journals and proceedings.
+
+\section{Significance}
+
+This document is important for anybody wanting to comply with the
+requirements of ACM publishing.
+
+
+\end{document}
+%
\ No newline at end of file
diff --git a/ACM-JRC/acmart-primary/samples/samples.ins b/ACM-JRC/acmart-primary/samples/samples.ins
new file mode 100644
index 0000000..2636f58
--- /dev/null
+++ b/ACM-JRC/acmart-primary/samples/samples.ins
@@ -0,0 +1,28 @@
+\def\batchfile{samples.ins}
+\input docstrip
+\keepsilent
+\showprogress
+
+
+\askforoverwritefalse
+
+\generate{%
+ \file{sample-manuscript.tex}{\from{samples.dtx}{all,proceedings,bibtex,manuscript}}
+ \file{sample-acmsmall.tex}{\from{samples.dtx}{all,journal,bibtex,acmsmall}}
+ \file{sample-acmsmall-submission.tex}{\from{samples.dtx}{all,journal,bibtex,acmsmall-submission}}
+ \file{sample-acmsmall-biblatex.tex}{\from{samples.dtx}{all,journal,acmsmall-biblatex}}
+ \file{sample-acmlarge.tex}{\from{samples.dtx}{all,journal,bibtex,acmlarge}}
+ \file{sample-acmtog.tex}{\from{samples.dtx}{all,journal,bibtex,acmtog}}
+ \file{sample-sigconf.tex}{\from{samples.dtx}{all,proceedings,bibtex,sigconf}}
+ \file{sample-sigconf-biblatex.tex}{\from{samples.dtx}{all,proceedings,sigconf-biblatex}}
+ \file{sample-sigconf-authordraft.tex}{\from{samples.dtx}{all,proceedings,bibtex,authordraft}}
+ \file{sample-sigconf-i13n.tex}{\from{samples.dtx}{all,proceedings,bibtex,sigconf-i13n}}
+ \file{sample-sigconf-xelatex.tex}{\from{samples.dtx}{all,proceedings,bibtex,sigconf}}
+ \file{sample-sigconf-lualatex.tex}{\from{samples.dtx}{all,proceedings,bibtex,sigconf}}
+ \file{sample-sigplan.tex}{\from{samples.dtx}{all,proceedings,bibtex,sigplan}}
+ \file{sample-acmsmall-conf.tex}{\from{samples.dtx}{all,proceedings,bibtex,acmsmall-conf}}
+ \file{sample-acmtog-conf.tex}{\from{samples.dtx}{all,journal,proceedings,bibtex,acmtog-conf}}
+ \file{sample-acmcp.tex}{\from{samples.dtx}{all,journal,acmcp}}
+ \file{sample-acmengage.tex}{\from{acmengage.dtx}{acmengage}}
+}
+
diff --git a/ACM-JRC/acmart-primary/samples/sampleteaser.pdf b/ACM-JRC/acmart-primary/samples/sampleteaser.pdf
new file mode 100644
index 0000000..374f676
Binary files /dev/null and b/ACM-JRC/acmart-primary/samples/sampleteaser.pdf differ
diff --git a/ACM-JRC/acmart-primary/samples/software.bib b/ACM-JRC/acmart-primary/samples/software.bib
new file mode 100644
index 0000000..f12ffba
--- /dev/null
+++ b/ACM-JRC/acmart-primary/samples/software.bib
@@ -0,0 +1,145 @@
+@softwareversion {delebecque:hal-02090402-condensed,
+ title = {Scilab},
+ author = {Delebecque, Fran{\c c}ois and Gomez, Claude and Goursat, Maurice
+ and Nikoukhah, Ramine and Steer, Serge and Chancelier, Jean-Philippe},
+ url = {https://www.scilab.org/},
+ date = {1994-01},
+ file = {https://hal.inria.fr/hal-02090402/file/scilab-1.1.tar.gz},
+ institution = {Inria},
+ license = {Scilab license},
+ hal_id = {hal-02090402},
+ hal_version = {v1},
+ swhid = {swh:1:dir:1ba0b67b5d0c8f10961d878d91ae9d6e499d746a;
+ origin=https://hal.archives-ouvertes.fr/hal-02090402},
+ version = {1.1},
+ note = {First Scilab version. It was distributed by anonymous ftp.},
+ repository= {https://github.com/scilab/scilab},
+ abstract = {Software for Numerical Computation freely distributed.}
+}
+@software {delebecque:hal-02090402,
+ title = {Scilab},
+ author = {Delebecque, Fran{\c c}ois and Gomez, Claude and Goursat, Maurice
+ and Nikoukhah, Ramine and Steer, Serge and Chancelier, Jean-Philippe},
+ date = {1994},
+ institution = {Inria},
+ license = {Scilab license},
+ hal_id = {hal-02090402},
+ hal_version = {v1},
+ url = {https://www.scilab.org/},
+ abstract = {Software for Numerical Computation freely distributed.},
+ repository= {https://github.com/scilab/scilab},
+}
+
+@softwareversion {delebecque:hal-02090402v1,
+ version = {1.1},
+ date = {1994-01},
+ file = {https://hal.inria.fr/hal-02090402/file/scilab-1.1.tar.gz},
+ swhid = {swh:1:dir:1ba0b67b5d0c8f10961d878d91ae9d6e499d746a;
+ origin=https://hal.archives-ouvertes.fr/hal-02090402},
+ note = {First Scilab version. It was distributed by anonymous ftp.},
+ crossref = {delebecque:hal-02090402}
+}
+ @software {cgal,
+ title = {The Computational Geometry Algorithms Library},
+ author = {{The CGAL Project}},
+ editor = {{CGAL Editorial Board}},
+ date = {1996},
+ url = {https://cgal.org/}
+ }
+
+ @softwareversion{cgal:5-0-2,
+ crossref = {cgal},
+ version = {{5.0.2}},
+ url = {https://docs.cgal.org/5.02},
+ date = {2020},
+ swhid = {swh:1:rel:636541bbf6c77863908eae744610a3d91fa58855;
+ origin=https://github.com/CGAL/cgal/}
+ }
+
+ @softwaremodule{cgal:lp-gi-20a,
+ crossref = {cgal:5-0-2},
+ author = {Menelaos Karavelas},
+ subtitle = {{2D} Voronoi Diagram Adaptor},
+ license = {GPL},
+ introducedin = {cgal:3-1},
+ url = {https://doc.cgal.org/5.0.2/Manual/packages.html#PkgVoronoiDiagram2},
+ }
+ @softwaremodule{cgal:lp-gi-20a-condensed,
+ title = {The Computational Geometry Algorithms Library},
+ subtitle = {{2D} Voronoi Diagram Adaptor},
+ author = {Menelaos Karavelas},
+ editor = {{CGAL Editorial Board}},
+ license = {GPL},
+ version = {{5.0.2}},
+ introducedin = {cgal:3-1},
+ date = {2020},
+ swhid = {swh:1:rel:636541bbf6c77863908eae744610a3d91fa58855;
+ origin=https://github.com/CGAL/cgal/},
+ url = {https://doc.cgal.org/5.0.2/Manual/packages.html#PkgVoronoiDiagram2},
+ }
+@software {parmap,
+ title = {The Parmap library},
+ author = {Di Cosmo, Roberto and Marco Danelutto},
+ date = {2012},
+ institution = {{Inria} and {University of Paris} and {University of Pisa}},
+ license = {LGPL-2.0},
+ url = {https://rdicosmo.github.io/parmap/},
+ repository= {https://github.com/rdicosmo/parmap},
+}
+
+@softwareversion {parmap-1.1.1,
+ crossref = {parmap},
+ date = {2020},
+ version = {1.1.1},
+ swhid = {swh:1:rel:373e2604d96de4ab1d505190b654c5c4045db773;
+ origin=https://github.com/rdicosmo/parmap;
+ visit=swh:1:snp:2a6c348c53eb77d458f24c9cbcecaf92e3c45615},
+}
+
+@codefragment {simplemapper,
+ subtitle = {Core mapping routine},
+ swhid = {swh:1:cnt:43a6b232768017b03da934ba22d9cc3f2726a6c5;
+ origin=https://github.com/rdicosmo/parmap;
+ visit=swh:1:snp:2a6c348c53eb77d458f24c9cbcecaf92e3c45615;
+ anchor=swh:1:rel:373e2604d96de4ab1d505190b654c5c4045db773;
+ path=/src/parmap.ml;
+ lines=192-228},
+ crossref = {parmap-1.1.1}
+}
+@codefragment {simplemapper-condensed,
+ title = {The Parmap library},
+ author = {Di Cosmo, Roberto and Marco Danelutto},
+ date = {2020},
+ institution = {{Inria} and {University of Paris} and {University of Pisa}},
+ license = {LGPL-2.0},
+ url = {https://rdicosmo.github.io/parmap/},
+ repository= {https://github.com/rdicosmo/parmap},
+ version = {1.1.1},
+ subtitle = {Core mapping routine},
+ swhid = {swh:1:cnt:43a6b232768017b03da934ba22d9cc3f2726a6c5;
+ origin=https://github.com/rdicosmo/parmap;
+ visit=swh:1:snp:2a6c348c53eb77d458f24c9cbcecaf92e3c45615;
+ anchor=swh:1:rel:373e2604d96de4ab1d505190b654c5c4045db773;
+ path=/src/parmap.ml;
+ lines=192-228}
+}
+
+@article{ad-wood-2003,
+ author = {Christopher Anderson and Sophia Drossopoulou},
+ title = {{BabyJ}: from Object Based to Class Based Programming via Types},
+ journal = {{WOOD}},
+ volume = {82},
+ number = {7},
+ pages = {53--81},
+ year = {2003}
+}
+
+@softwareversion{gf-tag-sound-repo,
+ title={tag-sound},
+ author={Ben Greenman and Matthias Felleisen},
+ swhid={swh:1:dir:cd0b0abeee707e57cd699e2e2ebd075da8ebf1f7;origin=https://github.com/nuprl/tag-sound;visit=swh:1:snp:7967bc0abee8bf3bfffb9252207a07b73538525a;anchor=swh:1:rev:4cc09ca228947a99c8f4ac45eefb76e96ee96e53},
+ repository={https://github.com/nuprl/tag-sound},
+ version={4cc09ca},
+ date={2020}
+}
+
diff --git a/ACM-JRC/build.sh b/ACM-JRC/build.sh
new file mode 100755
index 0000000..f2c2712
--- /dev/null
+++ b/ACM-JRC/build.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+
+bibtex ./output/Schrick-Noah_CG
+pdflatex -output-directory=./output Schrick-Noah_CG.tex
\ No newline at end of file
diff --git a/ACM-JRC/output/Anon_JRC_CG-Testbed.pdf b/ACM-JRC/output/Anon_JRC_CG-Testbed.pdf
new file mode 100644
index 0000000..3b74ffb
Binary files /dev/null and b/ACM-JRC/output/Anon_JRC_CG-Testbed.pdf differ
diff --git a/ACM-JRC/output/Schrick-Noah_CG.pdf b/ACM-JRC/output/Schrick-Noah_CG.pdf
new file mode 100644
index 0000000..72aa3a3
Binary files /dev/null and b/ACM-JRC/output/Schrick-Noah_CG.pdf differ
diff --git a/Bibliography.bib b/Bibliography.bib
index 9f12276..033540f 100644
--- a/Bibliography.bib
+++ b/Bibliography.bib
@@ -1433,7 +1433,7 @@ eprint = {
author = {{The World Bank}},
title = {{Current Health Expenditure (\% of GDP)}},
year = {2023-04-07},
- note = {{[Online]. Available: https://data.worldbank.org/indicator/SH.XPD.CHEX.GD.ZS?name{\_}desc=true{\&}locations=US}},
+ note = {{[Online]. Available: https://data.worldbank.org/indicator/SH.XPD.CHEX.GD.ZS?name\_desc\\=true\&locations=US}},
urldate = {2024-02-25}
}
@@ -1802,4 +1802,14 @@ author = {Alberto Caprara and Hans Kellerer and Ulrich Pferschy and David Pising
year = {1992}
}
+@dataset{data,
+ author = {Schrick, Noah and
+ Hawrylak, Peter},
+ title = {Compliance Graph Network Files and Exploit Models},
+ month = jul,
+ year = 2024,
+ publisher = {Zenodo},
+ doi = {10.5281/zenodo.12741129},
+ url = {https://doi.org/10.5281/zenodo.12741129}
+}
diff --git a/Schrick-Noah_CG.tex b/Schrick-Noah_CG.tex
index 000447a..51a0466 100644
--- a/Schrick-Noah_CG.tex
+++ b/Schrick-Noah_CG.tex
@@ -23,6 +23,8 @@
\usepackage{dsfont} % mathbb
\usepackage{amsmath}
+\usepackage{url}
+
\begin{document}
\title{
@@ -32,10 +34,11 @@
\author{
\IEEEauthorblockN{Noah L. Schrick}
\IEEEauthorblockA{
- \textit{Tandy School of Computer Science} \\
- \textit{The University of Tulsa}\\
- Tulsa, USA \\
- noah-schrick@utulsa.edu
+ \textit{Information Technology Laboratory} \\
+ \textit{U.S. Army Corps of Engineers} \\
+ \textit{Engineer Research and Development Center} \\
+ Vicksburg, MS, USA \\
+ Noah.L.Schrick@erdc.dren.mil
}
\and
@@ -43,8 +46,9 @@
\IEEEauthorblockN{Peter J. Hawrylak}
\IEEEauthorblockA{
\textit{Tandy School of Computer Science} \\
+ \textit{College of Engineering and Computer Science} \\
\textit{The University of Tulsa}\\
- Tulsa, USA \\
+ Tulsa, OK, USA \\
peter-hawrylak@utulsa.edu
}
@@ -53,7 +57,7 @@
\maketitle
\begin{abstract}
- Compliance graphs provide the ability to analyze an environment in terms of its standing to a regulation, mandate, or standard. These graphs are directed acyclic graphs, and share commonalities with attack graphs. Though generator tools and example graph sets are available for attack graphs, the novelty of compliance graphs presents its own set of challenges with a lack of publicly available example graphs. In order to develop analysis techniques for compliance graphs, example networks are required for an examination and testing process. This work presents the generation of compliance graphs and releases their affiliated data for use in furthering the analysis process of this research area.
+ Compliance graphs provide the ability to analyze an environment in terms of its standing to a regulation, mandate, or standard. These graphs are directed acyclic graphs, and share commonalities with attack graphs. Though generator tools and example graph sets are available for attack graphs, the novelty of compliance graphs presents its own set of challenges with a lack of publicly available data that has been processed and formatted in order to generate example graphs. In order to develop analysis techniques for compliance graphs, thorough examination and testing processes should be conducted, particularly on known, available data sets in the form of compliance graphs or compliance graph input files. This work presents the generation of compliance graphs and releases their affiliated data for use in furthering the analysis process of this research area.
\end{abstract}
\begin{IEEEkeywords}
@@ -61,9 +65,9 @@
\end{IEEEkeywords}
\section{Introduction}
-Attack graphs are a common tool used to address and examine a system or set of systems under a cybersecurity lens. These graphs are directed acyclic graphs (DAGs) that present the paths from a state of information for an environment to any potential state of vulnerability. Compliance graphs were originally presented by the authors of \cite{j_hale_compliance_nodate}, and aim to shift the focus of attack graphs to focus on the standings of environments to any local, private, or federal regulations. The work presented by the authors of \cite{noah_ths} present the semantical and generator tool changes required to generate these graphs. Though the generation of compliance graphs has been the primary focus of the research topic, there is an increasing need of analysis work to address the challenges of maintaining compliance. Governance, Risk, and Compliance (GRC) Officers assist groups or organizations with preventing or mitigating incurred costs as a result of a violation of a mandate. With the wide array of mandates that organizations may need to follow regarding health or personally identifiable information (PII), specific industry standards such as FinCEN \cite{fincen}, FDA QSR \cite{fdaqsr}, NERC-CIP \cite{nerccip}, internal standards, or equipment maintenance schedules to avoid voiding a warranty, it becomes increasingly difficult for GRC Officers to manage and track all mandate statuses. In addition, organizations rapidly and frequently bring changes into environments with new software, new equipment, new products, new contracts, or new processes. Each of these changes propagates additional change, all of which may affect the standing in regard to a compliance or regulation mandate. Rather than manual compliance checks, compliance graphs can be automatically generated, and analysis can be conducted on the resulting graph to aid in decision-making and visualization.
+Attack graphs are a common tool used to address and examine a system or set of systems under a cybersecurity lens \cite{AG-Analysis-Explan}. These graphs are directed acyclic graphs (DAGs) that present the paths from a state of information for an environment to any potential state of vulnerability. Compliance graphs \cite{j_hale_compliance_nodate} aim to shift the focus of attack graphs to focus on the standings of environments to any local, private, or federal regulations. Each node in a compliance graph can be embedded with information regarding maintenance schedules for industrial equipment, insurance policy terms, physical component characteristics, or any other descriptor for an asset as it relates to an environment's standing toward compliance. Each edge in the compliance graph defines the transition that leads to a deviation in a previous node's information. These changes could include a repair or replacement of a component, the addition or removal of an asset, or changes to policies. Work and investigations have already been conducted to present the semantic and generator tool changes required to generate these graphs \cite{noah_ths}. Though the generation of compliance graphs has been the primary focus of the research topic, there is an increasing need of analysis work to address the challenges of maintaining compliance. Governance, Risk, and Compliance (GRC) Officers assist groups or organizations with preventing or mitigating incurred costs as a result of a violation of a mandate. With the wide array of mandates that organizations may need to follow regarding health or personally identifiable information (PII), specific industry standards such as FinCEN \cite{fincen}, FDA QSR \cite{fdaqsr}, NERC-CIP \cite{nerccip}, internal standards, or equipment maintenance schedules to avoid voiding a warranty, it becomes increasingly difficult for GRC Officers to manage and track all mandate statuses. In addition, organizations rapidly and frequently bring changes into environments with new software, new equipment, new products, new contracts, or new processes. Each of these changes propagates additional change, all of which may affect the standing in regard to a compliance or regulation mandate. Rather than manual compliance checks, compliance graphs can be automatically generated, and analysis can be conducted on the resulting graph to aid in decision-making and visualization.
-To determine the adaptivity and soundness of compliance graph analysis work, example networks across multiple, disconnected sectors are generated in this work for future analysis use. These sectors maintain their own different set of local, private, and federal regulations that must be adhered to in order to avoid penalties. For the generated examples, each additionally possesses unique characteristics and properties that allow for the examination of the depth and range of any compliance graph analysis techniques, especially under the consideration of edge cases or unexpected behaviors. To fully examine the accuracy and level of analysis output detail, this work strove to generate example cases that were accurately sourced, described fully, scalable, and of high fidelity. This work presents and describes the example networks that can be used and referenced for future compliance graph analysis works. Section \ref{sec:Automotive} describes the Automobile Maintenance application that falls under the automotive industry. Section \ref{sec:Healthcare} describes a small network of healthcare clinics striving to maintain HIPAA \cite{noauthor_health_1996} compliance through the lens of the healthcare industry. Section \ref{sec:OSHA} describes an engineering firm as they attempt to maintain compliance with OSHA Standard 1910 Subpart H (Hazardous Materials) \cite{OSHA} within the oil and gas industry of the energy sector.
+To determine the adaptivity and soundness of compliance graph analysis work, example networks across multiple, disconnected sectors are generated in this work for future analysis use. These sectors maintain their own different set of local, private, and federal regulations that must be adhered to in order to avoid penalties. For the generated examples, each additionally possesses unique characteristics and properties that allow for the examination of the depth and range of any compliance graph analysis techniques, especially under the consideration of edge cases or unexpected behaviors. To fully examine the accuracy and level of analysis output detail, this work strove to generate example cases that were accurately sourced, described fully, scalable, and of high fidelity. This work presents and describes the example networks that can be used and referenced for future compliance graph analysis works. Section \ref{sec:Automotive} describes the Automobile Maintenance application that falls under the automotive industry. Section \ref{sec:Healthcare} describes a small network of healthcare clinics striving to maintain HIPAA \cite{noauthor_health_1996} compliance through the lens of the healthcare industry. Section \ref{sec:OSHA} describes an engineering firm as they attempt to maintain compliance with OSHA Standard 1910 Subpart H (Hazardous Materials) \cite{OSHA} within the oil and gas industry of the energy sector. Each of these example networks has been made publicly available, and their data files can be found at \cite{data}.
For each example network in the subsequent Sections, their properties are described. These properties are defined below. Each compliance graph was generated using a modified version of RAGE \cite{RAGE}.
\begin{itemize}
diff --git a/output/Schrick-Noah_CG.aux b/output/Schrick-Noah_CG.aux
index f640259..03504d9 100644
--- a/output/Schrick-Noah_CG.aux
+++ b/output/Schrick-Noah_CG.aux
@@ -1,6 +1,7 @@
\relax
\providecommand\babel@aux[2]{}
\@nameuse{bbl@beforestart}
+\citation{AG-Analysis-Explan}
\citation{j_hale_compliance_nodate}
\citation{noah_ths}
\citation{fincen}
@@ -8,9 +9,10 @@
\citation{nerccip}
\citation{noauthor_health_1996}
\citation{OSHA}
-\citation{RAGE}
+\citation{data}
\babel@aux{nil}{}
\@writefile{toc}{\contentsline {section}{\numberline {I}Introduction}{1}{}\protected@file@percent }
+\citation{RAGE}
\citation{AutoInd}
\citation{AutoInd}
\citation{AutoIndFS}
@@ -74,59 +76,61 @@
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IV-A}}Network Properties, Data, and Violation Specifications}{5}{}\protected@file@percent }
\citation{10124989}
\citation{OSHAPen}
-\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IV-B}}Objectives and Goals of the Network}{6}{}\protected@file@percent }
-\newlabel{sec:osha-obj}{{\mbox {IV-B}}{6}{}{}{}}
\bibdata{Bibliography}
-\bibcite{j_hale_compliance_nodate}{1}
-\bibcite{noah_ths}{2}
-\bibcite{fincen}{3}
-\bibcite{fdaqsr}{4}
-\bibcite{nerccip}{5}
-\bibcite{noauthor_health_1996}{6}
-\bibcite{OSHA}{7}
-\bibcite{RAGE}{8}
-\bibcite{AutoInd}{9}
-\bibcite{AutoIndFS}{10}
-\bibcite{BEAFS}{11}
-\bibcite{BEATables}{12}
-\bibcite{BEATablesOutput}{13}
-\bibcite{GMInsight}{14}
+\bibcite{AG-Analysis-Explan}{1}
+\bibcite{j_hale_compliance_nodate}{2}
+\bibcite{noah_ths}{3}
+\bibcite{fincen}{4}
+\bibcite{fdaqsr}{5}
+\bibcite{nerccip}{6}
+\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IV-B}}Objectives and Goals of the Network}{7}{}\protected@file@percent }
+\newlabel{sec:osha-obj}{{\mbox {IV-B}}{7}{}{}{}}
\@writefile{toc}{\contentsline {section}{\numberline {V}Future Works}{7}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {VI}Conclusion}{7}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{Bibliography}{7}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{References}{7}{}\protected@file@percent }
-\bibcite{Corolla}{15}
-\bibcite{carDOE}{16}
-\bibcite{carDOT}{17}
-\bibcite{carFWHA}{18}
-\bibcite{carCR}{19}
-\bibcite{carAAA}{20}
-\bibcite{carFarmers}{21}
-\bibcite{carExt}{22}
-\bibcite{CMS}{23}
-\bibcite{WB}{24}
-\bibcite{OECD}{25}
-\bibcite{CDC}{26}
-\bibcite{BEAHC}{27}
-\bibcite{BEAHCM}{28}
-\bibcite{NCSES}{29}
-\bibcite{CBO}{30}
-\bibcite{AHA}{31}
-\bibcite{DefHC}{32}
-\bibcite{AAMC}{33}
-\bibcite{HHS}{34}
-\bibcite{HHSDol}{35}
-\bibcite{10124989}{36}
-\bibcite{HHSPen}{37}
-\bibcite{HHSCong}{38}
-\bibcite{HHSAud}{39}
-\bibcite{HHSCE}{40}
-\bibcite{Census}{41}
-\bibcite{EnergyGov}{42}
-\bibcite{IEA}{43}
-\bibcite{EIA}{44}
-\bibcite{oshonline}{45}
-\bibcite{OSHAHist}{46}
-\bibcite{OSHAPen}{47}
+\bibcite{noauthor_health_1996}{7}
+\bibcite{OSHA}{8}
+\bibcite{data}{9}
+\bibcite{RAGE}{10}
+\bibcite{AutoInd}{11}
+\bibcite{AutoIndFS}{12}
+\bibcite{BEAFS}{13}
+\bibcite{BEATables}{14}
+\bibcite{BEATablesOutput}{15}
+\bibcite{GMInsight}{16}
+\bibcite{Corolla}{17}
+\bibcite{carDOE}{18}
+\bibcite{carDOT}{19}
+\bibcite{carFWHA}{20}
+\bibcite{carCR}{21}
+\bibcite{carAAA}{22}
+\bibcite{carFarmers}{23}
+\bibcite{carExt}{24}
+\bibcite{CMS}{25}
+\bibcite{WB}{26}
+\bibcite{OECD}{27}
+\bibcite{CDC}{28}
+\bibcite{BEAHC}{29}
+\bibcite{BEAHCM}{30}
+\bibcite{NCSES}{31}
+\bibcite{CBO}{32}
+\bibcite{AHA}{33}
+\bibcite{DefHC}{34}
+\bibcite{AAMC}{35}
+\bibcite{HHS}{36}
+\bibcite{HHSDol}{37}
+\bibcite{10124989}{38}
+\bibcite{HHSPen}{39}
+\bibcite{HHSCong}{40}
+\bibcite{HHSAud}{41}
+\bibcite{HHSCE}{42}
+\bibcite{Census}{43}
+\bibcite{EnergyGov}{44}
+\bibcite{IEA}{45}
+\bibcite{EIA}{46}
+\bibcite{oshonline}{47}
+\bibcite{OSHAHist}{48}
+\bibcite{OSHAPen}{49}
\bibstyle{ieeetr}
\gdef \@abspage@last{8}
diff --git a/output/Schrick-Noah_CG.bbl b/output/Schrick-Noah_CG.bbl
index ade5267..97262ea 100644
--- a/output/Schrick-Noah_CG.bbl
+++ b/output/Schrick-Noah_CG.bbl
@@ -1,5 +1,9 @@
\begin{thebibliography}{10}
+\bibitem{AG-Analysis-Explan}
+K.~Zenitani, ``Attack graph analysis: An explanatory guide,'' {\em Computers \&
+ Security}, vol.~126, p.~103081, 2023.
+
\bibitem{j_hale_compliance_nodate}
{J. Hale}, P.~Hawrylak, and M.~Papa, ``Compliance {Method} for a
{Cyber}-{Physical} {System}.''
@@ -36,6 +40,10 @@ N.~Schrick and P.~Hawrylak, {\em Compliance Graph Generation Techniques and
{H} {Hazardous} {Materials},'' {Last Amended 2024 via Code of Federal
Regulations Title 29}.
+\bibitem{data}
+N.~Schrick and P.~Hawrylak, ``Compliance graph network files and exploit
+ models,'' July 2024.
+
\bibitem{RAGE}
K.~Cook, ``{RAGE}: {The} {Rage} {Attack} {Graph} {Engine},'' Master's thesis,
The {University} of {Tulsa}, 2018.
@@ -123,7 +131,7 @@ K.~Cook, ``{RAGE}: {The} {Rage} {Attack} {Graph} {Engine},'' Master's thesis,
\bibitem{WB}
{The World Bank}, ``{Current Health Expenditure (\% of GDP)},'' 2023-04-07.
\newblock {[Online]. Available:
- https://data.worldbank.org/indicator/SH.XPD.CHEX.GD.ZS?name{\_}desc=true{\&}locations=US}.
+ https://data.worldbank.org/indicator/SH.XPD.CHEX.GD.ZS?name\_desc\\=true\&locations=US}.
\bibitem{OECD}
{Organisation for Economic Co-operation and Development}, ``{OECD Health
diff --git a/output/Schrick-Noah_CG.blg b/output/Schrick-Noah_CG.blg
index eaa1c9e..704df1a 100644
--- a/output/Schrick-Noah_CG.blg
+++ b/output/Schrick-Noah_CG.blg
@@ -83,45 +83,47 @@ Warning--entry type for "OSHAHist" isn't style-file defined
--line 1627 of file Bibliography.bib
Warning--entry type for "OSHAPen" isn't style-file defined
--line 1635 of file Bibliography.bib
-You've used 47 entries,
+Warning--entry type for "data" isn't style-file defined
+--line 1805 of file Bibliography.bib
+You've used 49 entries,
1876 wiz_defined-function locations,
- 716 strings with 12050 characters,
-and the built_in function-call counts, 6339 in all, are:
-= -- 626
-> -- 197
+ 726 strings with 12230 characters,
+and the built_in function-call counts, 6750 in all, are:
+= -- 668
+> -- 209
< -- 0
-+ -- 96
-- -- 49
-* -- 207
-:= -- 908
-add.period$ -- 81
-call.type$ -- 47
-change.case$ -- 47
++ -- 101
+- -- 52
+* -- 226
+:= -- 960
+add.period$ -- 83
+call.type$ -- 49
+change.case$ -- 49
chr.to.int$ -- 0
-cite$ -- 47
-duplicate$ -- 206
-empty$ -- 845
-format.name$ -- 49
-if$ -- 1631
+cite$ -- 49
+duplicate$ -- 231
+empty$ -- 887
+format.name$ -- 52
+if$ -- 1739
int.to.chr$ -- 0
-int.to.str$ -- 47
-missing$ -- 1
-newline$ -- 186
-num.names$ -- 45
-pop$ -- 324
+int.to.str$ -- 49
+missing$ -- 2
+newline$ -- 192
+num.names$ -- 47
+pop$ -- 334
preamble$ -- 1
purify$ -- 0
quote$ -- 0
-skip$ -- 153
+skip$ -- 177
stack$ -- 0
-substring$ -- 28
-swap$ -- 10
+substring$ -- 40
+swap$ -- 23
text.length$ -- 0
text.prefix$ -- 0
top$ -- 0
type$ -- 0
warning$ -- 0
-while$ -- 47
-width$ -- 49
-write$ -- 412
+while$ -- 50
+width$ -- 51
+write$ -- 429
(There was 1 error message)
diff --git a/output/Schrick-Noah_CG.log b/output/Schrick-Noah_CG.log
index 6743a80..ed9b7a4 100644
--- a/output/Schrick-Noah_CG.log
+++ b/output/Schrick-Noah_CG.log
@@ -1,4 +1,4 @@
-This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024/Arch Linux) (preloaded format=pdflatex 2024.4.16) 18 APR 2024 17:06
+This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024/Arch Linux) (preloaded format=pdflatex 2024.10.3) 29 OCT 2024 11:56
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
@@ -285,6 +285,10 @@ LaTeX Info: Redefining \Relbar on input line 971.
LaTeX Info: Redefining \[ on input line 2953.
LaTeX Info: Redefining \] on input line 2954.
)
+(/usr/share/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip17
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
(/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
File: l3backend-pdftex.def 2024-02-20 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count286
@@ -293,20 +297,20 @@ File: l3backend-pdftex.def 2024-02-20 L3 backend support: PDF output (pdfTeX)
(./output/Schrick-Noah_CG.aux)
\openout1 = `Schrick-Noah_CG.aux'.
-LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 26.
-LaTeX Font Info: ... okay on input line 26.
-LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 26.
-LaTeX Font Info: ... okay on input line 26.
-LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 26.
-LaTeX Font Info: ... okay on input line 26.
-LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 26.
-LaTeX Font Info: ... okay on input line 26.
-LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 26.
-LaTeX Font Info: ... okay on input line 26.
-LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 26.
-LaTeX Font Info: ... okay on input line 26.
-LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 26.
-LaTeX Font Info: ... okay on input line 26.
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 28.
+LaTeX Font Info: ... okay on input line 28.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 28.
+LaTeX Font Info: ... okay on input line 28.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 28.
+LaTeX Font Info: ... okay on input line 28.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 28.
+LaTeX Font Info: ... okay on input line 28.
+LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 28.
+LaTeX Font Info: ... okay on input line 28.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 28.
+LaTeX Font Info: ... okay on input line 28.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 28.
+LaTeX Font Info: ... okay on input line 28.
-- Lines per column: 56 (exact).
(/usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
@@ -324,495 +328,460 @@ LaTeX Font Info: ... okay on input line 26.
\everyMPtoPDFconversion=\toks30
) (/usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
-
-(/usr/share/texmf-dist/tex/generic/infwarerr/infwarerr.sty
-Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO)
-)
-(/usr/share/texmf-dist/tex/latex/grfext/grfext.sty
-Package: grfext 2019/12/03 v1.3 Manage graphics extensions (HO)
-
-(/usr/share/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
-Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO)
-))
-(/usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty
-Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO)
-
-(/usr/share/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
-Package: ltxcmds 2023-12-04 v1.26 LaTeX kernel commands for general use (HO)
-)
-(/usr/share/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
-Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO)
-))
-(/usr/share/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
-Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO
-)
-Package pdftexcmds Info: \pdf@primitive is available.
-Package pdftexcmds Info: \pdf@ifprimitive is available.
-Package pdftexcmds Info: \pdfdraftmode found.
-)
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
85.
-Package grfext Info: Graphics extension search list:
-(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE
-G,.JBIG2,.JB2,.eps]
-(grfext) \AppendGraphicsExtensions on input line 504.
(/usr/share/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
e
))
-Underfull \hbox (badness 1515) in paragraph at lines 64--65
-\OT1/ptm/m/n/10 The work presented by the authors of [[]] present the
+Underfull \hbox (badness 1448) in paragraph at lines 70--71
+\OT1/ptm/m/n/10 graph analysis work, example networks across multiple,
+ []
+
+[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}{/usr/share/texmf-dist/fon
+ts/enc/dvips/base/8r.enc}
+
+
+]
+Underfull \hbox (badness 1668) in paragraph at lines 77--78
+[]\OT1/ptm/m/n/10 Assets: The number of entities in the network or
+ []
+
+LaTeX Font Info: Trying to load font information for TS1+ptm on input line 8
+3.
+(/usr/share/texmf-dist/tex/latex/psnfss/ts1ptm.fd
+File: ts1ptm.fd 2001/06/04 font definitions for TS1/ptm.
+)
+Underfull \vbox (badness 10000) has occurred while \output is active []
+
+ [2]
+Underfull \hbox (badness 3417) in paragraph at lines 131--132
+\OT1/ptm/m/n/10 properties, or any other features or components were
[]
-Underfull \hbox (badness 1448) in paragraph at lines 66--67
-\OT1/ptm/m/n/10 graph analysis work, example networks across multiple,
+Underfull \hbox (badness 1603) in paragraph at lines 131--132
+\OT1/ptm/m/n/10 This was implemented through the use of precondition
+ []
+
+
+Underfull \hbox (badness 1515) in paragraph at lines 133--134
+\OT1/ptm/m/n/10 Reports [[]], and insurance companies like AAA [[]],
[]
Underfull \vbox (badness 10000) has occurred while \output is active []
- [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}{/usr/share/texmf-dist/fo
-nts/enc/dvips/base/8r.enc}
-
-
-]
-Underfull \hbox (badness 1668) in paragraph at lines 73--74
-[]\OT1/ptm/m/n/10 Assets: The number of entities in the network or
- []
-
-LaTeX Font Info: Trying to load font information for TS1+ptm on input line 7
-9.
-(/usr/share/texmf-dist/tex/latex/psnfss/ts1ptm.fd
-File: ts1ptm.fd 2001/06/04 font definitions for TS1/ptm.
-)
-Underfull \hbox (badness 3417) in paragraph at lines 127--128
-\OT1/ptm/m/n/10 properties, or any other features or components were
- []
-
-
-Underfull \hbox (badness 1603) in paragraph at lines 127--128
-\OT1/ptm/m/n/10 This was implemented through the use of precondition
- []
-
-[2]
-Underfull \hbox (badness 1515) in paragraph at lines 129--130
-\OT1/ptm/m/n/10 Reports [[]], and insurance companies like AAA [[]],
- []
-
-
-Underfull \hbox (badness 3428) in paragraph at lines 141--142
+ [3]
+Underfull \hbox (badness 3428) in paragraph at lines 145--146
[]\OT1/ptm/m/n/10 ``Lack of patient access to their protected health
[]
-Underfull \hbox (badness 1924) in paragraph at lines 146--147
+Underfull \hbox (badness 1924) in paragraph at lines 150--151
\OT1/ptm/m/n/10 process, graph properties, unique features, and incurred
[]
-[3]
-Underfull \hbox (badness 1540) in paragraph at lines 149--150
+
+Underfull \hbox (badness 1540) in paragraph at lines 153--154
\OT1/ptm/m/n/10 a range of requirements be met to ensure compliance,
[]
-Underfull \hbox (badness 1472) in paragraph at lines 193--194
+Underfull \hbox (badness 1472) in paragraph at lines 197--198
[]\OT1/ptm/m/n/10 A ``company" asset that is independent of the
[]
-Underfull \hbox (badness 5147) in paragraph at lines 200--201
+Underfull \hbox (badness 5147) in paragraph at lines 204--205
\OT1/ptm/m/n/10 and implementation or mitigation costs to prevent a
[]
[4]
-Underfull \hbox (badness 1616) in paragraph at lines 208--209
+Underfull \hbox (badness 1616) in paragraph at lines 212--213
[]\OT1/ptm/m/n/10 The oil and gas industry contributes roughly 8% of
[]
-Underfull \hbox (badness 1910) in paragraph at lines 208--209
+Underfull \hbox (badness 1910) in paragraph at lines 212--213
\OT1/ptm/m/n/10 over \TS1/ptm/m/n/10 $\OT1/ptm/m/n/10 30 billion in R&D spendin
g [[]], and 72% of
[]
-
-Underfull \hbox (badness 10000) in paragraph at lines 226--227
+[5]
+Underfull \hbox (badness 10000) in paragraph at lines 230--231
[]\OT1/ptm/m/n/10 The company has an in-house
[]
-[5]
-Underfull \hbox (badness 3029) in paragraph at lines 252--253
+
+Underfull \hbox (badness 3029) in paragraph at lines 256--257
[]\OT1/ptm/m/n/10 Anhydrous Ammonia Hose pressure and burst
[]
-Underfull \hbox (badness 5147) in paragraph at lines 265--266
+Underfull \hbox (badness 5147) in paragraph at lines 269--270
\OT1/ptm/m/n/10 and implementation or mitigation costs to prevent a
[]
-Underfull \hbox (badness 1577) in paragraph at lines 265--266
+Underfull \hbox (badness 1577) in paragraph at lines 269--270
\OT1/ptm/m/n/10 knowledge network was constructed around all publicly
[]
-[6]
-Underfull \hbox (badness 1939) in paragraph at lines 275--276
+
+Underfull \vbox (badness 10000) has occurred while \output is active []
+
+ [6]
+Underfull \hbox (badness 1939) in paragraph at lines 279--280
[]\OT1/ptm/m/n/10 This work presented the generation process of three
[]
-Underfull \hbox (badness 2409) in paragraph at lines 275--276
+Underfull \hbox (badness 2409) in paragraph at lines 279--280
\OT1/ptm/m/n/10 upon. The automobile maintenance network provides a
[]
(./output/Schrick-Noah_CG.bbl
-Underfull \hbox (badness 3179) in paragraph at lines 9--12
+Underfull \hbox (badness 3179) in paragraph at lines 13--16
\OT1/ptm/m/it/8 and Parallel Computing Implementations Using Message-Passing
[]
-Underfull \hbox (badness 2635) in paragraph at lines 14--17
+Underfull \hbox (badness 2635) in paragraph at lines 18--21
[]\OT1/ptm/m/n/8 ``Financial Crimes Enforcement Network, Title 31 U.S.C. 310,''
[]
-Underfull \hbox (badness 6316) in paragraph at lines 14--17
+Underfull \hbox (badness 6316) in paragraph at lines 18--21
\OT1/ptm/m/n/8 2010. Available: https://www.govinfo.gov/content/pkg/USCODE-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 14--17
+Underfull \hbox (badness 10000) in paragraph at lines 18--21
\OT1/ptm/m/n/8 2010-title31/html/USCODE-2010-title31-subtitleI-chap3-subchapI-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 19--22
+Underfull \hbox (badness 10000) in paragraph at lines 23--26
\OT1/ptm/m/n/8 https://www.fda.gov/science-research/clinical-trials-and-human-s
ubject-
[]
-Underfull \hbox (badness 6542) in paragraph at lines 24--28
+Underfull \hbox (badness 6542) in paragraph at lines 28--32
[]\OT1/ptm/m/n/8 Federal Energy Regulatory Commission, ``Critical infrastructur
e
[]
-Underfull \hbox (badness 10000) in paragraph at lines 24--28
+Underfull \hbox (badness 10000) in paragraph at lines 28--32
\OT1/ptm/m/n/8 02173/critical-infrastructure-protection-reliability-standard-ci
p-012-1-
[]
-
-Underfull \hbox (badness 10000) in paragraph at lines 30--33
+[7]
+Underfull \hbox (badness 10000) in paragraph at lines 34--37
[]\OT1/ptm/m/n/8 ``Health Insurance Portability and Accountability Act of
[]
-Underfull \hbox (badness 10000) in paragraph at lines 30--33
+Underfull \hbox (badness 10000) in paragraph at lines 34--37
\OT1/ptm/m/n/8 1996.'' Pub. L. No. 104-191. 1996 [Online]. Available:
[]
-Underfull \hbox (badness 10000) in paragraph at lines 30--33
+Underfull \hbox (badness 10000) in paragraph at lines 34--37
\OT1/ptm/m/n/8 https://www.govinfo.gov/content/pkg/PLAW-104publ191/html/PLAW-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 44--48
+Underfull \hbox (badness 10000) in paragraph at lines 52--56
\OT1/ptm/m/n/8 ``Automotive Industry,'' August 2021. [Online]. Available:
[]
-Underfull \hbox (badness 6526) in paragraph at lines 50--54
+Underfull \hbox (badness 6526) in paragraph at lines 58--62
\OT1/ptm/m/n/8 ``Foreign Direct Investment (FDI): Automotive,'' August 2021.
[]
-Underfull \hbox (badness 10000) in paragraph at lines 50--54
+Underfull \hbox (badness 10000) in paragraph at lines 58--62
\OT1/ptm/m/n/8 [Online]. Available: https://www.trade.gov/sites/default/files/2
021-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 56--60
+Underfull \hbox (badness 10000) in paragraph at lines 64--68
[]\OT1/ptm/m/n/8 U.S. Bureau of Economic Analysis, ``Industry Factsheet:
[]
-Underfull \hbox (badness 5954) in paragraph at lines 56--60
+Underfull \hbox (badness 5954) in paragraph at lines 64--68
\OT1/ptm/m/n/8 Transportation and Warehousing,'' 2023. [Online]. Available:
[]
-Underfull \hbox (badness 2096) in paragraph at lines 68--72
+Underfull \hbox (badness 2096) in paragraph at lines 76--80
[]\OT1/ptm/m/n/8 Singh, A, and Singh, S., ``Automotive Repair and Maintenance
[]
-Underfull \hbox (badness 10000) in paragraph at lines 68--72
+Underfull \hbox (badness 10000) in paragraph at lines 76--80
\OT1/ptm/m/n/8 Service Market Size,'' Feb. 2024. [Online]. Available:
[]
-Underfull \hbox (badness 10000) in paragraph at lines 68--72
+Underfull \hbox (badness 10000) in paragraph at lines 76--80
\OT1/ptm/m/n/8 https://www.gminsights.com/industry-analysis/automotive-repair-
[]
-[7]
-Underfull \hbox (badness 10000) in paragraph at lines 90--94
+
+Underfull \hbox (badness 10000) in paragraph at lines 98--102
[]\OT1/ptm/m/n/8 U.S. Department of Transportation Federal Highway
[]
-Underfull \hbox (badness 6792) in paragraph at lines 96--100
+Underfull \hbox (badness 6792) in paragraph at lines 104--108
[]\OT1/ptm/m/n/8 Preston, B., ``Car Brands and Models That Can Save You
[]
-Underfull \hbox (badness 10000) in paragraph at lines 96--100
+Underfull \hbox (badness 10000) in paragraph at lines 104--108
\OT1/ptm/m/n/8 Money Over Time,'' 2023-04-02. [Online]. Available:
[]
-Underfull \hbox (badness 10000) in paragraph at lines 96--100
+Underfull \hbox (badness 10000) in paragraph at lines 104--108
\OT1/ptm/m/n/8 https://www.consumerreports.org/cars/car-repair-maintenance/car-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 102--106
+Underfull \hbox (badness 10000) in paragraph at lines 110--114
\OT1/ptm/m/n/8 Available: https://www.aaa.com/autorepair/articles/planning-for-
auto-
[]
-Underfull \hbox (badness 2932) in paragraph at lines 108--112
+Underfull \hbox (badness 2932) in paragraph at lines 116--120
[]\OT1/ptm/m/n/8 Farmers Insurance, ``Auto Service and Repair Shop Insurance.''
[]
-Underfull \hbox (badness 5231) in paragraph at lines 108--112
+Underfull \hbox (badness 5231) in paragraph at lines 116--120
\OT1/ptm/m/n/8 [Online]. Available: https://www.farmers.com/business/industry/a
uto-
[]
-Underfull \hbox (badness 2582) in paragraph at lines 114--117
+Underfull \hbox (badness 2582) in paragraph at lines 122--125
[]\OT1/ptm/m/n/8 AAA, ``Your Driving Costs,'' 2020-12-09. [Online]. Available:
[]
-Underfull \hbox (badness 10000) in paragraph at lines 114--117
+Underfull \hbox (badness 10000) in paragraph at lines 122--125
\OT1/ptm/m/n/8 https://newsroom.aaa.com/wp-content/uploads/2020/12/Your-Driving
-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 124--127
+Underfull \hbox (badness 10000) in paragraph at lines 132--135
[]\OT1/ptm/m/n/8 The World Bank, ``Current Health Expenditure
[]
-Underfull \hbox (badness 10000) in paragraph at lines 124--127
+Underfull \hbox (badness 10000) in paragraph at lines 132--135
\OT1/ptm/m/n/8 (% of GDP),'' 2023-04-07. [Online]. Available:
[]
-Overfull \hbox (68.21298pt too wide) in paragraph at lines 124--127
-\OT1/ptm/m/n/8 https://data.worldbank.org/indicator/SH.XPD.CHEX.GD.ZS?name[]des
-c=true&locations=US.
- []
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 129--132
+Underfull \hbox (badness 10000) in paragraph at lines 137--140
[]\OT1/ptm/m/n/8 Organisation for Economic Co-operation and Development,
[]
-Underfull \hbox (badness 6608) in paragraph at lines 129--132
+Underfull \hbox (badness 6608) in paragraph at lines 137--140
\OT1/ptm/m/n/8 ``OECD Health Statistics 2023,'' 2023. [Online]. Available:
[]
-Underfull \hbox (badness 1968) in paragraph at lines 140--144
+Underfull \hbox (badness 1968) in paragraph at lines 148--152
[]\OT1/ptm/m/n/8 Bureau of Economic Analysis, ``New Health Care Statistics for
[]
-Underfull \hbox (badness 6445) in paragraph at lines 140--144
+Underfull \hbox (badness 6445) in paragraph at lines 148--152
\OT1/ptm/m/n/8 First Year of COVID-19 Pandemic,'' 2023-02-10. [Online].
[]
-Underfull \hbox (badness 10000) in paragraph at lines 146--150
+Underfull \hbox (badness 10000) in paragraph at lines 154--158
\OT1/ptm/m/n/8 09-25/experimental-data-map-health-care-estimates-gdp-centers-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 157--160
+Underfull \hbox (badness 10000) in paragraph at lines 165--168
[]\OT1/ptm/m/n/8 Congressional Budget Office, ``Research and Development in
[]
-Underfull \hbox (badness 2478) in paragraph at lines 157--160
+Underfull \hbox (badness 2478) in paragraph at lines 165--168
\OT1/ptm/m/n/8 the Pharmaceutical Industry,'' April 2021. [Online]. Available:
[]
-Underfull \hbox (badness 10000) in paragraph at lines 168--171
+Underfull \hbox (badness 10000) in paragraph at lines 176--179
\OT1/ptm/m/n/8 Available: https://www.definitivehc.com/resources/healthcare-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 173--176
+Underfull \hbox (badness 10000) in paragraph at lines 181--184
[]\OT1/ptm/m/n/8 Association of American Medical Colleges, ``Workforce
[]
-Underfull \hbox (badness 10000) in paragraph at lines 173--176
+Underfull \hbox (badness 10000) in paragraph at lines 181--184
\OT1/ptm/m/n/8 Data,'' 2019. [Online]. Available: https://www.aamc.org/data-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 173--176
+Underfull \hbox (badness 10000) in paragraph at lines 181--184
\OT1/ptm/m/n/8 reports/workforce/data/active-physicians-us-doctor-medicine-us-m
d-
[]
-Underfull \hbox (badness 3568) in paragraph at lines 178--182
+Underfull \hbox (badness 3568) in paragraph at lines 186--190
[]\OT1/ptm/m/n/8 U.S. Department of Health and Human Services, ``Compliance
[]
-Underfull \hbox (badness 10000) in paragraph at lines 178--182
+Underfull \hbox (badness 10000) in paragraph at lines 186--190
\OT1/ptm/m/n/8 Enforcement Data,'' 2024-01-31. [Online]. Available:
[]
-Underfull \hbox (badness 10000) in paragraph at lines 178--182
+Underfull \hbox (badness 10000) in paragraph at lines 186--190
\OT1/ptm/m/n/8 https://www.hhs.gov/hipaa/for-professionals/compliance-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 184--188
+Underfull \hbox (badness 10000) in paragraph at lines 192--196
[]\OT1/ptm/m/n/8 U.S. Department of Health and Human Services,
[]
-Underfull \hbox (badness 10000) in paragraph at lines 184--188
+Underfull \hbox (badness 10000) in paragraph at lines 192--196
\OT1/ptm/m/n/8 ``Enforcement Highlights,'' 2024-01-31. [Online].
[]
-Underfull \hbox (badness 10000) in paragraph at lines 184--188
+Underfull \hbox (badness 10000) in paragraph at lines 192--196
\OT1/ptm/m/n/8 Available:https://www.hhs.gov/hipaa/for-professionals/compliance
-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 195--199
+Underfull \hbox (badness 10000) in paragraph at lines 203--207
[]\OT1/ptm/m/n/8 U.S. Department of Health and Human Services,
[]
-Underfull \hbox (badness 10000) in paragraph at lines 195--199
+Underfull \hbox (badness 10000) in paragraph at lines 203--207
\OT1/ptm/m/n/8 ``Resolution Agreements,'' 2024-02-06. [Online]. Available:
[]
-Underfull \hbox (badness 10000) in paragraph at lines 195--199
+Underfull \hbox (badness 10000) in paragraph at lines 203--207
\OT1/ptm/m/n/8 https://www.hhs.gov/hipaa/for-professionals/compliance-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 201--205
+Underfull \hbox (badness 10000) in paragraph at lines 209--213
\OT1/ptm/m/n/8 Available: https://www.hhs.gov/hipaa/for-professionals/complianc
e-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 207--211
+Underfull \hbox (badness 10000) in paragraph at lines 215--219
\OT1/ptm/m/n/8 Available: https://www.hhs.gov/hipaa/for-professionals/complianc
e-
[]
-Underfull \hbox (badness 5533) in paragraph at lines 213--217
+Underfull \hbox (badness 5533) in paragraph at lines 221--225
\OT1/ptm/m/n/8 2023-11-01. [Online]. Available: https://www.hhs.gov/hipaa/for-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 229--232
+Underfull \hbox (badness 10000) in paragraph at lines 237--240
[]\OT1/ptm/m/n/8 International Energy Agency, ``R&D Technology Innovation,''
[]
-Underfull \hbox (badness 10000) in paragraph at lines 234--238
+Underfull \hbox (badness 10000) in paragraph at lines 242--246
[]\OT1/ptm/m/n/8 U.S. Energy Information Administration, ``Financial Review
[]
-Underfull \hbox (badness 10000) in paragraph at lines 234--238
+Underfull \hbox (badness 10000) in paragraph at lines 242--246
\OT1/ptm/m/n/8 of the Global Oil and Natural Gas Industry: Third-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 234--238
+Underfull \hbox (badness 10000) in paragraph at lines 242--246
\OT1/ptm/m/n/8 Quarter 2023,'' December 2023. [Online]. Available:
[]
-Overfull \hbox (17.66994pt too wide) in paragraph at lines 234--238
+Overfull \hbox (17.66994pt too wide) in paragraph at lines 242--246
\OT1/ptm/m/n/8 https://www.eia.gov/finance/review/pdf/3Q2023%20Financial%20Revi
ew.pdf.
[]
-Underfull \hbox (badness 10000) in paragraph at lines 240--244
+Underfull \hbox (badness 10000) in paragraph at lines 248--252
[]\OT1/ptm/m/n/8 Smart, S.J., ``Keeping Oil and Gas Workers Safe and
[]
-Underfull \hbox (badness 5504) in paragraph at lines 240--244
+Underfull \hbox (badness 5504) in paragraph at lines 248--252
\OT1/ptm/m/n/8 Avoiding Costly Penalties,'' June 2015. [Online]. Available:
[]
-Underfull \hbox (badness 10000) in paragraph at lines 240--244
+Underfull \hbox (badness 10000) in paragraph at lines 248--252
\OT1/ptm/m/n/8 https://ohsonline.com/Articles/2015/06/01/Keeping-Oil-and-Gas-
[]
-Underfull \hbox (badness 10000) in paragraph at lines 246--250
+Underfull \hbox (badness 10000) in paragraph at lines 254--258
[]\OT1/ptm/m/n/8 U.S. Department of Labor, Occupational Safety
[]
-Underfull \hbox (badness 10000) in paragraph at lines 246--250
+Underfull \hbox (badness 10000) in paragraph at lines 254--258
\OT1/ptm/m/n/8 and Health Administration, ``Industry Profile for an
[]
-Underfull \hbox (badness 10000) in paragraph at lines 246--250
+Underfull \hbox (badness 10000) in paragraph at lines 254--258
\OT1/ptm/m/n/8 OSHA Standard Results,'' 2023. [Online]. Available:
[]
-Underfull \hbox (badness 10000) in paragraph at lines 252--256
+Underfull \hbox (badness 10000) in paragraph at lines 260--264
[]\OT1/ptm/m/n/8 U.S. Department of Labor, Occupational Safety and Health
[]
-Underfull \hbox (badness 10000) in paragraph at lines 252--256
+Underfull \hbox (badness 10000) in paragraph at lines 260--264
\OT1/ptm/m/n/8 2024-01-15. [Online]. Available: https://www.osha.gov/laws-
[]
@@ -835,18 +804,18 @@ L3 programming layer <2024-02-20>
***********
)
Here is how much of TeX's memory you used:
- 4949 strings out of 476076
- 84433 string characters out of 5793775
- 1945187 words of memory out of 5000000
- 26995 multiletter control sequences out of 15000+600000
+ 4532 strings out of 476076
+ 75965 string characters out of 5793775
+ 1949187 words of memory out of 5000000
+ 26602 multiletter control sequences out of 15000+600000
590447 words of font info for 89 fonts, out of 8000000 for 9000
14 hyphenation exceptions out of 8191
- 61i,8n,69p,2241b,265s stack positions out of 10000i,1000n,20000p,200000b,200000s
+ 57i,8n,65p,2468b,272s stack positions out of 10000i,1000n,20000p,200000b,200000s
usr/share/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
-Output written on ./output/Schrick-Noah_CG.pdf (8 pages, 102348 bytes).
+Output written on ./output/Schrick-Noah_CG.pdf (8 pages, 104257 bytes).
PDF statistics:
57 PDF objects out of 1000 (max. 8388607)
36 compressed objects within 1 object stream
diff --git a/output/Schrick-Noah_CG.pdf b/output/Schrick-Noah_CG.pdf
index a88ea6a..03d63cd 100644
Binary files a/output/Schrick-Noah_CG.pdf and b/output/Schrick-Noah_CG.pdf differ
diff --git a/samples.dtx b/samples.dtx
new file mode 100644
index 0000000..37e7a0a
--- /dev/null
+++ b/samples.dtx
@@ -0,0 +1,1029 @@
+%<*all>
+%%
+%%
+%% Commands for TeXCount
+%<\documentclass[manuscript,screen,review]{acmart}
+%\documentclass[acmsmall]{acmart}
+%\documentclass[acmsmall,natbib=false]{acmart}
+%\documentclass[acmsmall,screen,review]{acmart}
+%\documentclass[acmlarge]{acmart}
+%\documentclass[acmtog]{acmart}
+%\documentclass[sigconf]{acmart}
+%\documentclass[sigconf,natbib=false]{acmart}
+%\documentclass[sigconf,authordraft]{acmart}
+%\documentclass[sigplan,screen]{acmart}
+%\documentclass[sigchi]{acmart}
+%\documentclass[sigchi-a, nonacm]{acmart}
+%\documentclass[sigconf, language=french,
+%language=german, language=spanish, language=english]{acmart}
+%\documentclass[acmcp]{acmart}
+
+%%
+%% \BibTeX command to typeset BibTeX logo in the docs
+\AtBeginDocument{%
+ \providecommand\BibTeX{{%
+ Bib\TeX}}}
+
+%% Rights management information. This information is sent to you
+%% when you complete the rights form. These commands have SAMPLE
+%% values in them; it is your responsibility as an author to replace
+%% the commands and values with those provided to you when you
+%% complete the rights form.
+%
+\setcopyright{acmlicensed}
+\copyrightyear{2018}
+\acmYear{2018}
+\acmDOI{XXXXXXX.XXXXXXX}
+
+%
+%<*proceedings>
+%% These commands are for a PROCEEDINGS abstract or paper.
+\acmConference[Conference acronym 'XX]{Make sure to enter the correct
+ conference title from your rights confirmation emai}{June 03--05,
+ 2018}{Woodstock, NY}
+%%
+%% Uncomment \acmBooktitle if the title of the proceedings is different
+%% from ``Proceedings of ...''!
+%%
+%%\acmBooktitle{Woodstock '18: ACM Symposium on Neural Gaze Detection,
+%% June 03--05, 2018, Woodstock, NY}
+\acmISBN{978-1-4503-XXXX-X/18/06}
+%
+
+%<*journal>
+%%
+%% These commands are for a JOURNAL article.
+%\acmJournal{JACM}
+%\acmJournal{POMACS}
+%\acmJournal{TOG}
+%%\acmJournal{TOG} % Comment out journal to get conference info in bibstrip.
+%\acmJournal{JDS}
+\acmVolume{37}
+\acmNumber{4}
+\acmArticle{111}
+\acmMonth{8}
+%
+%<*all>
+
+
+%%
+%% Submission ID.
+%% Use this when submitting an article to a sponsored event. You'll
+%% receive a unique submission ID from the organizers
+%% of the event, and this ID should be used as the parameter to this command.
+%%\acmSubmissionID{123-A56-BU3}
+%
+
+%<*!acmcp>
+%%
+%% For managing citations, it is recommended to use bibliography
+%% files in BibTeX format.
+%%
+%% You can then either use BibTeX with the ACM-Reference-Format style,
+%% or BibLaTeX with the acmnumeric or acmauthoryear sytles, that include
+%% support for advanced citation of software artefact from the
+%% biblatex-software package, also separately available on CTAN.
+%%
+%% Look at the sample-*-biblatex.tex files for templates showcasing
+%% the biblatex styles.
+%%
+%!acmcp>
+
+%<*bibtex>
+%%
+%% The majority of ACM publications use numbered citations and
+%% references. The command \citestyle{authoryear} switches to the
+%% "author year" style.
+%%
+%% If you are preparing content for an event
+%% sponsored by ACM SIGGRAPH, you must use the "author year" style of
+%% citations and references.
+%%% Uncommenting
+%%% the next command will enable that style.
+%%%\citestyle{acmauthoryear}
+%\citestyle{acmauthoryear}
+%
+
+%<*acmsmall-biblatex|sigconf-biblatex>
+%%
+%% The majority of ACM publications use numbered citations and
+%% references, obtained by selecting the acmnumeric BibLaTeX style.
+%% The acmauthoryear BibLaTeX style switches to the "author year" style.
+%%
+%% If you are preparing content for an event
+%% sponsored by ACM SIGGRAPH, you must use the acmauthoryear style of
+%% citations and references.
+%%
+%% Bibliography style
+\RequirePackage[
+ datamodel=acmdatamodel,
+% style=acmnumeric,
+% style=acmauthoryear,
+ ]{biblatex}
+
+%% Declare bibliography sources (one \addbibresource command per source)
+\addbibresource{software.bib}
+\addbibresource{sample-base.bib}
+%
+%<*all>
+
+%%
+%% end of the preamble, start of the body of the document source.
+\begin{document}
+
+%%
+%% The "title" command has an optional parameter,
+%% allowing the author to define a "short title" to be used in page headers.
+\title{The Name of the Title Is Hope}
+%\translatedtitle{french}{Le nom du titre est l'espoir}
+%\translatedtitle{german}{Der Name des Titels ist 'Hoffnung'}
+%\translatedtitle{spanish}{El nombre del título es esperanza}
+
+%%
+%% The "author" command and its associated commands are used to define
+%% the authors and their affiliations.
+%% Of note is the shared affiliation of the first two authors, and the
+%% "authornote" and "authornotemark" commands
+%% used to denote shared contribution to the research.
+\author{Ben Trovato}
+%\authornote{Both authors contributed equally to this research.}
+\email{trovato@corporation.com}
+\orcid{1234-5678-9012}
+\author{G.K.M. Tobin}
+%\authornotemark[1]
+\email{webmaster@marysville-ohio.com}
+\affiliation{%
+ \institution{Institute for Clarity in Documentation}
+ \city{Dublin}
+ \state{Ohio}
+ \country{USA}
+}
+
+\author{Lars Th{\o}rv{\"a}ld}
+\affiliation{%
+ \institution{The Th{\o}rv{\"a}ld Group}
+ \city{Hekla}
+ \country{Iceland}}
+\email{larst@affiliation.org}
+
+\author{Valerie B\'eranger}
+\affiliation{%
+ \institution{Inria Paris-Rocquencourt}
+ \city{Rocquencourt}
+ \country{France}
+}
+
+\author{Aparna Patel}
+\affiliation{%
+ \institution{Rajiv Gandhi University}
+ \city{Doimukh}
+ \state{Arunachal Pradesh}
+ \country{India}}
+
+\author{Huifen Chan}
+\affiliation{%
+ \institution{Tsinghua University}
+ \city{Haidian Qu}
+ \state{Beijing Shi}
+ \country{China}}
+
+\author{Charles Palmer}
+\affiliation{%
+ \institution{Palmer Research Laboratories}
+ \city{San Antonio}
+ \state{Texas}
+ \country{USA}}
+\email{cpalmer@prl.com}
+
+\author{John Smith}
+\affiliation{%
+ \institution{The Th{\o}rv{\"a}ld Group}
+ \city{Hekla}
+ \country{Iceland}}
+\email{jsmith@affiliation.org}
+
+\author{Julius P. Kumquat}
+\affiliation{%
+ \institution{The Kumquat Consortium}
+ \city{New York}
+ \country{USA}}
+\email{jpkumquat@consortium.net}
+
+%%
+%% By default, the full list of authors will be used in the page
+%% headers. Often, this list is too long, and will overlap
+%% other information printed in the page headers. This command allows
+%% the author to define a more concise list
+%% of authors' names for this purpose.
+\renewcommand{\shortauthors}{Trovato et al.}
+%
+%<*acmcp>
+%%
+%% Article type: Research, Review, Discussion, Invited or position
+\acmArticleType{Review}
+%%
+%% Links to code and data
+\acmCodeLink{https://github.com/borisveytsman/acmart}
+\acmDataLink{htps://zenodo.org/link}
+%%
+%% Authors' contribution
+\acmContributions{BT and GKMT designed the study; LT, VB, and AP
+ conducted the experiments, BR, HC, CP and JS analyzed the results,
+ JPK developed analytical predictions, all authors participated in
+ writing the manuscript.}
+%%
+%% Sometimes the addresses are too long to fit on the page. In this
+%% case uncomment the lines below and fill them accodingly.
+%%
+%% \authorsaddresses{Corresponding author: Ben Trovato,
+%% \href{mailto:trovato@corporation.com}{trovato@corporation.com};
+%% Institute for Clarity in Documentation, P.O. Box 1212, Dublin,
+%% Ohio, USA, 43017-6221}
+%%
+%
+%<*!acmcp>
+
+%%
+%% The abstract is a short summary of the work to be presented in the
+%% article.
+\begin{abstract}
+ A clear and well-documented \LaTeX\ document is presented as an
+ article formatted for publication by ACM in a conference proceedings
+ or journal publication. Based on the ``acmart'' document class, this
+ article presents and explains many of the common variations, as well
+ as many of the formatting elements an author may use in the
+ preparation of the documentation of their work.
+\end{abstract}
+%!acmcp>
+%<*sigconf-i13n>
+
+\begin{translatedabstract}{french}
+ Un document \LaTeX\ clair et bien documenté est présenté comme un
+ article formaté pour publication par ACM dans les actes d'une
+ conférence ou parution dans une revue. Basé sur la classe de
+ document ``acmart'', ce l'article présente et explique de nombreuses
+ variations courantes, ainsi que autant d'éléments de mise en forme
+ qu'un auteur peut utiliser dans le préparation de la documentation
+ de leur travail.
+\end{translatedabstract}
+
+\begin{translatedabstract}{german}
+ Es wird ein übersichtliches und gut dokumentiertes \LaTeX\-Dokument präsentiert,
+ welches für die Veröffentlichung durch ACM in einem Tagungsband oder
+ als Zeitschriftenpublikation formatiert wurde.
+ Basierend auf der Dokumentenklasse ``acmart'' präsentiert und erklärt dieser Artikel
+ viele der Formatierungselemente sowie auch viele der gängigen Variationen,
+ die ein Autor bei der Beschreibung seiner Arbeit verwenden darf.
+\end{translatedabstract}
+
+\begin{translatedabstract}{spanish}
+ Un documento \LaTeX\ claro y bien documentado se presenta como un
+ artículo formateado para su publicación por ACM en las actas de una
+ conferencia o publicación de una revista. Basado en la clase de
+ documento ``acmart'', este artículo presenta y explica muchas de las
+ variaciones comunes, así como tantos de los elementos de formato que
+ un autor puede usar en el preparación de la documentación de su
+ trabajo.
+ \end{translatedabstract}
+%
+%<*!acmcp>
+
+%%
+%% The code below is generated by the tool at http://dl.acm.org/ccs.cfm.
+%% Please copy and paste the code instead of the example below.
+%%
+\begin{CCSXML}
+
+
+ 00000000.0000000.0000000
+ Do Not Use This Code, Generate the Correct Terms for Your Paper
+ 500
+
+
+ 00000000.00000000.00000000
+ Do Not Use This Code, Generate the Correct Terms for Your Paper
+ 300
+
+
+ 00000000.00000000.00000000
+ Do Not Use This Code, Generate the Correct Terms for Your Paper
+ 100
+
+
+ 00000000.00000000.00000000
+ Do Not Use This Code, Generate the Correct Terms for Your Paper
+ 100
+
+
+\end{CCSXML}
+
+\ccsdesc[500]{Do Not Use This Code~Generate the Correct Terms for Your Paper}
+\ccsdesc[300]{Do Not Use This Code~Generate the Correct Terms for Your Paper}
+\ccsdesc{Do Not Use This Code~Generate the Correct Terms for Your Paper}
+\ccsdesc[100]{Do Not Use This Code~Generate the Correct Terms for Your Paper}
+
+%!acmcp>
+%<*all>
+%%
+%% Keywords. The author(s) should pick words that accurately describe
+%% the work being presented. Separate the keywords with commas.
+\keywords{Do, Not, Us, This, Code, Put, the, Correct, Terms, for,
+ Your, Paper}
+%\translatedkeywords{french}{ensembles de données,
+% réseaux de neurones,
+% détection du regard, marquage de texte}
+% \translatedkeywords{german}{Datensammlungen,
+% neuronale Netze, Blickerkennung, Textklassifizierung}
+% \translatedkeywords{spanish}{conjuntos de datos,
+% redes neuronales, detección de mirada, etiquetado de texto}
+%
+%<*sigconf|authordraft|sigplan|acmsmall-conf|sigconf-i13n>
+%% A "teaser" image appears between the author and affiliation
+%% information and the body of the document, and typically spans the
+%% page.
+\begin{teaserfigure}
+ \includegraphics[width=\textwidth]{sampleteaser}
+ \caption{Seattle Mariners at Spring Training, 2010.}
+ \Description{Enjoying the baseball game from the third-base
+ seats. Ichiro Suzuki preparing to bat.}
+ \label{fig:teaser}
+\end{teaserfigure}
+%
+%<*!acmcp>
+
+\received{20 February 2007}
+\received[revised]{12 March 2009}
+\received[accepted]{5 June 2009}
+
+%%
+%% This command processes the author and affiliation and title
+%% information and builds the first part of the formatted document.
+\maketitle
+
+\section{Introduction}
+ACM's consolidated article template, introduced in 2017, provides a
+consistent \LaTeX\ style for use across ACM publications, and
+incorporates accessibility and metadata-extraction functionality
+necessary for future Digital Library endeavors. Numerous ACM and
+SIG-specific \LaTeX\ templates have been examined, and their unique
+features incorporated into this single new template.
+
+If you are new to publishing with ACM, this document is a valuable
+guide to the process of preparing your work for publication. If you
+have published with ACM before, this document provides insight and
+instruction into more recent changes to the article template.
+
+The ``\verb|acmart|'' document class can be used to prepare articles
+for any ACM publication --- conference or journal, and for any stage
+of publication, from review to final ``camera-ready'' copy, to the
+author's own version, with {\itshape very} few changes to the source.
+
+\section{Template Overview}
+As noted in the introduction, the ``\verb|acmart|'' document class can
+be used to prepare many different kinds of documentation --- a
+double-anonymous initial submission of a full-length technical paper, a
+two-page SIGGRAPH Emerging Technologies abstract, a ``camera-ready''
+journal article, a SIGCHI Extended Abstract, and more --- all by
+selecting the appropriate {\itshape template style} and {\itshape
+ template parameters}.
+
+This document will explain the major features of the document
+class. For further information, the {\itshape \LaTeX\ User's Guide} is
+available from
+\url{https://www.acm.org/publications/proceedings-template}.
+
+\subsection{Template Styles}
+
+The primary parameter given to the ``\verb|acmart|'' document class is
+the {\itshape template style} which corresponds to the kind of publication
+or SIG publishing the work. This parameter is enclosed in square
+brackets and is a part of the {\verb|documentclass|} command:
+\begin{verbatim}
+ \documentclass[STYLE]{acmart}
+\end{verbatim}
+
+Journals use one of three template styles. All but three ACM journals
+use the {\verb|acmsmall|} template style:
+\begin{itemize}
+\item {\texttt{acmsmall}}: The default journal template style.
+\item {\texttt{acmlarge}}: Used by JOCCH and TAP.
+\item {\texttt{acmtog}}: Used by TOG.
+\end{itemize}
+
+The majority of conference proceedings documentation will use the {\verb|acmconf|} template style.
+\begin{itemize}
+\item {\texttt{sigconf}}: The default proceedings template style.
+\item{\texttt{sigchi}}: Used for SIGCHI conference articles.
+\item{\texttt{sigplan}}: Used for SIGPLAN conference articles.
+\end{itemize}
+
+\subsection{Template Parameters}
+
+In addition to specifying the {\itshape template style} to be used in
+formatting your work, there are a number of {\itshape template parameters}
+which modify some part of the applied template style. A complete list
+of these parameters can be found in the {\itshape \LaTeX\ User's Guide.}
+
+Frequently-used parameters, or combinations of parameters, include:
+\begin{itemize}
+\item {\texttt{anonymous,review}}: Suitable for a ``double-anonymous''
+ conference submission. Anonymizes the work and includes line
+ numbers. Use with the \texttt{\acmSubmissionID} command to print the
+ submission's unique ID on each page of the work.
+\item{\texttt{authorversion}}: Produces a version of the work suitable
+ for posting by the author.
+\item{\texttt{screen}}: Produces colored hyperlinks.
+\end{itemize}
+
+This document uses the following string as the first command in the
+source file:
+\begin{verbatim}
+%\documentclass[manuscript,screen,review]{acmart}
+%\documentclass[acmsmall]{acmart}
+%\documentclass[acmsmall,screen,review]{acmart}
+%\documentclass[acmlarge]{acmart}
+%\documentclass[acmtog]{acmart}
+%\documentclass[sigconf]{acmart}
+%\documentclass[sigconf,authordraft]{acmart}
+%\documentclass[sigplan,screen]{acmart}
+%\documentclass[sigchi]{acmart}
+%\documentclass[sigchi-a]{acmart}
+%\documentclass[sigconf, language=french,
+%language=german, language=spanish, language=english]{acmart}
+\end{verbatim}
+
+
+\section{Modifications}
+
+Modifying the template --- including but not limited to: adjusting
+margins, typeface sizes, line spacing, paragraph and list definitions,
+and the use of the \verb|\vspace| command to manually adjust the
+vertical spacing between elements of your work --- is not allowed.
+
+{\bfseries Your document will be returned to you for revision if
+ modifications are discovered.}
+
+\section{Typefaces}
+
+The ``\verb|acmart|'' document class requires the use of the
+``Libertine'' typeface family. Your \TeX\ installation should include
+this set of packages. Please do not substitute other typefaces. The
+``\verb|lmodern|'' and ``\verb|ltimes|'' packages should not be used,
+as they will override the built-in typeface families.
+
+\section{Title Information}
+
+The title of your work should use capital letters appropriately -
+\url{https://capitalizemytitle.com/} has useful rules for
+capitalization. Use the {\verb|title|} command to define the title of
+your work. If your work has a subtitle, define it with the
+{\verb|subtitle|} command. Do not insert line breaks in your title.
+
+If your title is lengthy, you must define a short version to be used
+in the page headers, to prevent overlapping text. The \verb|title|
+command has a ``short title'' parameter:
+\begin{verbatim}
+ \title[short title]{full title}
+\end{verbatim}
+
+\section{Authors and Affiliations}
+
+Each author must be defined separately for accurate metadata
+identification. As an exception, multiple authors may share one
+affiliation. Authors' names should not be abbreviated; use full first
+names wherever possible. Include authors' e-mail addresses whenever
+possible.
+
+Grouping authors' names or e-mail addresses, or providing an ``e-mail
+alias,'' as shown below, is not acceptable:
+\begin{verbatim}
+ \author{Brooke Aster, David Mehldau}
+ \email{dave,judy,steve@university.edu}
+ \email{firstname.lastname@phillips.org}
+\end{verbatim}
+
+The \verb|authornote| and \verb|authornotemark| commands allow a note
+to apply to multiple authors --- for example, if the first two authors
+of an article contributed equally to the work.
+
+If your author list is lengthy, you must define a shortened version of
+the list of authors to be used in the page headers, to prevent
+overlapping text. The following command should be placed just after
+the last \verb|\author{}| definition:
+\begin{verbatim}
+ \renewcommand{\shortauthors}{McCartney, et al.}
+\end{verbatim}
+Omitting this command will force the use of a concatenated list of all
+of the authors' names, which may result in overlapping text in the
+page headers.
+
+The article template's documentation, available at
+\url{https://www.acm.org/publications/proceedings-template}, has a
+complete explanation of these commands and tips for their effective
+use.
+
+Note that authors' addresses are mandatory for journal articles.
+
+\section{Rights Information}
+
+Authors of any work published by ACM will need to complete a rights
+form. Depending on the kind of work, and the rights management choice
+made by the author, this may be copyright transfer, permission,
+license, or an OA (open access) agreement.
+
+Regardless of the rights management choice, the author will receive a
+copy of the completed rights form once it has been submitted. This
+form contains \LaTeX\ commands that must be copied into the source
+document. When the document source is compiled, these commands and
+their parameters add formatted text to several areas of the final
+document:
+\begin{itemize}
+\item the ``ACM Reference Format'' text on the first page.
+\item the ``rights management'' text on the first page.
+\item the conference information in the page header(s).
+\end{itemize}
+
+Rights information is unique to the work; if you are preparing several
+works for an event, make sure to use the correct set of commands with
+each of the works.
+
+The ACM Reference Format text is required for all articles over one
+page in length, and is optional for one-page articles (abstracts).
+
+\section{CCS Concepts and User-Defined Keywords}
+
+Two elements of the ``acmart'' document class provide powerful
+taxonomic tools for you to help readers find your work in an online
+search.
+
+The ACM Computing Classification System ---
+\url{https://www.acm.org/publications/class-2012} --- is a set of
+classifiers and concepts that describe the computing
+discipline. Authors can select entries from this classification
+system, via \url{https://dl.acm.org/ccs/ccs.cfm}, and generate the
+commands to be included in the \LaTeX\ source.
+
+User-defined keywords are a comma-separated list of words and phrases
+of the authors' choosing, providing a more flexible way of describing
+the research being presented.
+
+CCS concepts and user-defined keywords are required for for all
+articles over two pages in length, and are optional for one- and
+two-page articles (or abstracts).
+
+\section{Sectioning Commands}
+
+Your work should use standard \LaTeX\ sectioning commands:
+\verb|section|, \verb|subsection|, \verb|subsubsection|, and
+\verb|paragraph|. They should be numbered; do not remove the numbering
+from the commands.
+
+Simulating a sectioning command by setting the first word or words of
+a paragraph in boldface or italicized text is {\bfseries not allowed.}
+
+\section{Tables}
+
+The ``\verb|acmart|'' document class includes the ``\verb|booktabs|''
+package --- \url{https://ctan.org/pkg/booktabs} --- for preparing
+high-quality tables.
+
+Table captions are placed {\itshape above} the table.
+
+Because tables cannot be split across pages, the best placement for
+them is typically the top of the page nearest their initial cite. To
+ensure this proper ``floating'' placement of tables, use the
+environment \textbf{table} to enclose the table's contents and the
+table caption. The contents of the table itself must go in the
+\textbf{tabular} environment, to be aligned properly in rows and
+columns, with the desired horizontal and vertical rules. Again,
+detailed instructions on \textbf{tabular} material are found in the
+\textit{\LaTeX\ User's Guide}.
+
+Immediately following this sentence is the point at which
+Table~\ref{tab:freq} is included in the input file; compare the
+placement of the table here with the table in the printed output of
+this document.
+
+%\begin{table}
+%\begin{margintable}
+ \caption{Frequency of Special Characters}
+ \label{tab:freq}
+ \begin{tabular}{ccl}
+ \toprule
+ Non-English or Math&Frequency&Comments\\
+ \midrule
+ \O & 1 in 1,000& For Swedish names\\
+ $\pi$ & 1 in 5& Common in math\\
+ \$ & 4 in 5 & Used in business\\
+ $\Psi^2_1$ & 1 in 40,000& Unexplained usage\\
+ \bottomrule
+\end{tabular}
+%\end{table}
+%\end{margintable}
+
+To set a wider table, which takes up the whole width of the page's
+live area, use the environment \textbf{table*} to enclose the table's
+contents and the table caption. As with a single-column table, this
+wide table will ``float'' to a location deemed more
+desirable. Immediately following this sentence is the point at which
+Table~\ref{tab:commands} is included in the input file; again, it is
+instructive to compare the placement of the table here with the table
+in the printed output of this document.
+
+\begin{table*}
+ \caption{Some Typical Commands}
+ \label{tab:commands}
+ \begin{tabular}{ccl}
+ \toprule
+ Command &A Number & Comments\\
+ \midrule
+ \texttt{{\char'134}author} & 100& Author \\
+ \texttt{{\char'134}table}& 300 & For tables\\
+ \texttt{{\char'134}table*}& 400& For wider tables\\
+ \bottomrule
+ \end{tabular}
+\end{table*}
+
+Always use midrule to separate table header rows from data rows, and
+use it only for this purpose. This enables assistive technologies to
+recognise table headers and support their users in navigating tables
+more easily.
+
+
+\section{Math Equations}
+You may want to display math equations in three distinct styles:
+inline, numbered or non-numbered display. Each of the three are
+discussed in the next sections.
+
+\subsection{Inline (In-text) Equations}
+A formula that appears in the running text is called an inline or
+in-text formula. It is produced by the \textbf{math} environment,
+which can be invoked with the usual
+\texttt{{\char'134}begin\,\ldots{\char'134}end} construction or with
+the short form \texttt{\$\,\ldots\$}. You can use any of the symbols
+and structures, from $\alpha$ to $\omega$, available in
+\LaTeX~\cite{Lamport:LaTeX}; this section will simply show a few
+examples of in-text equations in context. Notice how this equation:
+\begin{math}
+ \lim_{n\rightarrow \infty}x=0
+\end{math},
+set here in in-line math style, looks slightly different when
+set in display style. (See next section).
+
+\subsection{Display Equations}
+A numbered display equation---one set off by vertical space from the
+text and centered horizontally---is produced by the \textbf{equation}
+environment. An unnumbered display equation is produced by the
+\textbf{displaymath} environment.
+
+Again, in either environment, you can use any of the symbols and
+structures available in \LaTeX\@; this section will just give a couple
+of examples of display equations in context. First, consider the
+equation, shown as an inline equation above:
+\begin{equation}
+ \lim_{n\rightarrow \infty}x=0
+\end{equation}
+Notice how it is formatted somewhat differently in
+the \textbf{displaymath}
+environment. Now, we'll enter an unnumbered equation:
+\begin{displaymath}
+ \sum_{i=0}^{\infty} x + 1
+\end{displaymath}
+and follow it with another numbered equation:
+\begin{equation}
+ \sum_{i=0}^{\infty}x_i=\int_{0}^{\pi+2} f
+\end{equation}
+just to demonstrate \LaTeX's able handling of numbering.
+
+\section{Figures}
+
+The ``\verb|figure|'' environment should be used for figures. One or
+more images can be placed within a figure. If your figure contains
+third-party material, you must clearly identify it as such, as shown
+in the example below.
+%\begin{figure}[h]
+%\begin{marginfigure}
+ \centering
+ \includegraphics[width=\linewidth]{sample-franklin}
+ \caption{1907 Franklin Model D roadster. Photograph by Harris \&
+ Ewing, Inc. [Public domain], via Wikimedia
+ Commons. (\url{https://goo.gl/VLCRBB}).}
+ \Description{A woman and a girl in white dresses sit in an open car.}
+%\end{figure}
+%\end{marginfigure}
+
+Your figures should contain a caption which describes the figure to
+the reader.
+
+Figure captions are placed {\itshape below} the figure.
+
+Every figure should also have a figure description unless it is purely
+decorative. These descriptions convey what’s in the image to someone
+who cannot see it. They are also used by search engine crawlers for
+indexing images, and when images cannot be loaded.
+
+A figure description must be unformatted plain text less than 2000
+characters long (including spaces). {\bfseries Figure descriptions
+ should not repeat the figure caption – their purpose is to capture
+ important information that is not already provided in the caption or
+ the main text of the paper.} For figures that convey important and
+complex new information, a short text description may not be
+adequate. More complex alternative descriptions can be placed in an
+appendix and referenced in a short figure description. For example,
+provide a data table capturing the information in a bar chart, or a
+structured list representing a graph. For additional information
+regarding how best to write figure descriptions and why doing this is
+so important, please see
+\url{https://www.acm.org/publications/taps/describing-figures/}.
+
+
+\subsection{The ``Teaser Figure''}
+
+A ``teaser figure'' is an image, or set of images in one figure, that
+are placed after all author and affiliation information, and before
+the body of the article, spanning the page. If you wish to have such a
+figure in your article, place the command immediately before the
+\verb|\maketitle| command:
+\begin{verbatim}
+ \begin{teaserfigure}
+ \includegraphics[width=\textwidth]{sampleteaser}
+ \caption{figure caption}
+ \Description{figure description}
+ \end{teaserfigure}
+\end{verbatim}
+
+\section{Citations and Bibliographies}
+
+The use of \BibTeX\ for the preparation and formatting of one's
+references is strongly recommended. Authors' names should be complete
+--- use full first names (``Donald E. Knuth'') not initials
+(``D. E. Knuth'') --- and the salient identifying features of a
+reference should be included: title, year, volume, number, pages,
+article DOI, etc.
+
+%<*!(acmsmall-biblatex|sigconf-biblatex)>
+The bibliography is included in your source document with these two
+commands, placed just before the \verb|\end{document}| command:
+\begin{verbatim}
+ \bibliographystyle{ACM-Reference-Format}
+ \bibliography{bibfile}
+\end{verbatim}
+where ``\verb|bibfile|'' is the name, without the ``\verb|.bib|''
+suffix, of the \BibTeX\ file.
+
+Citations and references are numbered by default. A small number of
+ACM publications have citations and references formatted in the
+``author year'' style; for these exceptions, please include this
+command in the {\bfseries preamble} (before the command
+``\verb|\begin{document}|'') of your \LaTeX\ source:
+\begin{verbatim}
+ \citestyle{acmauthoryear}
+\end{verbatim}
+%!(acmsmall-biblatex|sigconf-biblatex)>
+
+%<*acmsmall-biblatex|sigconf-biblatex>
+Using the BibLaTeX system, the bibliography is included in your source
+document with the following command, placed just before the \verb|\end{document}| command:
+\begin{verbatim}
+ \printbibliography
+\end{verbatim}
+
+The command \verb|\addbibresource{bibfile}| declares the \BibTeX\ file to use
+in the {\bfseries preamble} (before the command
+``\verb|\begin{document}|'') of your \LaTeX\ source
+where ``\verb|bibfile|'' is the name, \emph{with} the ``\verb|.bib|'' suffix.
+Notice that \verb|\addbibresource| takes only one argument: to declare multiple files,
+use multiple instances of the command.
+
+Citations and references are numbered by default. A small number of
+ACM publications have citations and references formatted in the
+``author year'' style; for these exceptions, please pass the option \verb|style=acmauthoryear|
+to the \verb|biblatex| package loaded in the {\bfseries preamble} (before the command
+``\verb|\begin{document}|'') of your \LaTeX\ source.
+
+%
+
+
+
+ Some examples. A paginated journal article \cite{Abril07}, an
+ enumerated journal article \cite{Cohen07}, a reference to an entire
+ issue \cite{JCohen96}, a monograph (whole book) \cite{Kosiur01}, a
+ monograph/whole book in a series (see 2a in spec. document)
+ \cite{Harel79}, a divisible-book such as an anthology or compilation
+ \cite{Editor00} followed by the same example, however we only output
+ the series if the volume number is given \cite{Editor00a} (so
+ Editor00a's series should NOT be present since it has no vol. no.),
+ a chapter in a divisible book \cite{Spector90}, a chapter in a
+ divisible book in a series \cite{Douglass98}, a multi-volume work as
+ book \cite{Knuth97}, a couple of articles in a proceedings (of a
+ conference, symposium, workshop for example) (paginated proceedings
+ article) \cite{Andler79, Hagerup1993}, a proceedings article with
+ all possible elements \cite{Smith10}, an example of an enumerated
+ proceedings article \cite{VanGundy07}, an informally published work
+ \cite{Harel78}, a couple of preprints \cite{Bornmann2019,
+ AnzarootPBM14}, a doctoral dissertation \cite{Clarkson85}, a
+ master's thesis: \cite{anisi03}, an online document / world wide web
+ resource \cite{Thornburg01, Ablamowicz07, Poker06}, a video game
+ (Case 1) \cite{Obama08} and (Case 2) \cite{Novak03} and \cite{Lee05}
+ and (Case 3) a patent \cite{JoeScientist001}, work accepted for
+ publication \cite{rous08}, 'YYYYb'-test for prolific author
+ \cite{SaeediMEJ10} and \cite{SaeediJETC10}. Other cites might
+ contain 'duplicate' DOI and URLs (some SIAM articles)
+ \cite{Kirschmer:2010:AEI:1958016.1958018}. Boris / Barbara Beeton:
+ multi-volume works as books \cite{MR781536} and \cite{MR781537}. A
+ couple of citations with DOIs:
+ \cite{2004:ITE:1009386.1010128,Kirschmer:2010:AEI:1958016.1958018}. Online
+ citations: \cite{TUGInstmem, Thornburg01, CTANacmart}.
+%<*!(acmsmall-biblatex|sigconf-biblatex)>
+ Artifacts: \cite{R} and \cite{UMassCitations}.
+%!(acmsmall-biblatex|sigconf-biblatex)>
+%<*acmsmall-biblatex|sigconf-biblatex>
+ Data Artifacts: \cite{UMassCitations}.
+ Software project: ~\cite{cgal,delebecque:hal-02090402}. Software Version: ~\cite{gf-tag-sound-repo,}. Software Module: ~\cite{cgal:lp-gi-20a}. Code fragment: ~\cite{simplemapper}.
+%
+
+
+\section{Acknowledgments}
+
+Identification of funding sources and other support, and thanks to
+individuals and groups that assisted in the research and the
+preparation of the work should be included in an acknowledgment
+section, which is placed just before the reference section in your
+document.
+
+This section has a special environment:
+\begin{verbatim}
+ \begin{acks}
+ ...
+ \end{acks}
+\end{verbatim}
+so that the information contained therein can be more easily collected
+during the article metadata extraction phase, and to ensure
+consistency in the spelling of the section heading.
+
+Authors should not prepare this section as a numbered or unnumbered {\verb|\section|}; please use the ``{\verb|acks|}'' environment.
+
+\section{Appendices}
+
+If your work needs an appendix, add it before the
+``\verb|\end{document}|'' command at the conclusion of your source
+document.
+
+Start the appendix with the ``\verb|appendix|'' command:
+\begin{verbatim}
+ \appendix
+\end{verbatim}
+and note that in the appendix, sections are lettered, not
+numbered. This document has two appendices, demonstrating the section
+and subsection identification method.
+
+\section{Multi-language papers}
+
+Papers may be written in languages other than English or include
+titles, subtitles, keywords and abstracts in different languages (as a
+rule, a paper in a language other than English should include an
+English title and an English abstract). Use \verb|language=...| for
+every language used in the paper. The last language indicated is the
+main language of the paper. For example, a French paper with
+additional titles and abstracts in English and German may start with
+the following command
+\begin{verbatim}
+\documentclass[sigconf, language=english, language=german,
+ language=french]{acmart}
+\end{verbatim}
+
+The title, subtitle, keywords and abstract will be typeset in the main
+language of the paper. The commands \verb|\translatedXXX|, \verb|XXX|
+begin title, subtitle and keywords, can be used to set these elements
+in the other languages. The environment \verb|translatedabstract| is
+used to set the translation of the abstract. These commands and
+environment have a mandatory first argument: the language of the
+second argument. See \verb|sample-sigconf-i13n.tex| file for examples
+of their usage.
+
+\section{SIGCHI Extended Abstracts}
+
+The ``\verb|sigchi-a|'' template style (available only in \LaTeX\ and
+not in Word) produces a landscape-orientation formatted article, with
+a wide left margin. Three environments are available for use with the
+``\verb|sigchi-a|'' template style, and produce formatted output in
+the margin:
+\begin{description}
+\item[\texttt{sidebar}:] Place formatted text in the margin.
+\item[\texttt{marginfigure}:] Place a figure in the margin.
+\item[\texttt{margintable}:] Place a table in the margin.
+\end{description}
+
+%%
+%% The acknowledgments section is defined using the "acks" environment
+%% (and NOT an unnumbered section). This ensures the proper
+%% identification of the section in the article metadata, and the
+%% consistent spelling of the heading.
+\begin{acks}
+To Robert, for the bagels and explaining CMYK and color spaces.
+\end{acks}
+
+%<*!(acmsmall-biblatex|sigconf-biblatex)>
+%%
+%% The next two lines define the bibliography style to be used, and
+%% the bibliography file.
+\bibliographystyle{ACM-Reference-Format}
+\bibliography{sample-base}
+%!(acmsmall-biblatex|sigconf-biblatex)>
+
+%<*(acmsmall-biblatex|sigconf-biblatex)>
+%%
+%% Print the bibliography
+%%
+\printbibliography
+%(acmsmall-biblatex|sigconf-biblatex)>
+
+%%
+%% If your work has an appendix, this is the place to put it.
+\appendix
+
+\section{Research Methods}
+
+\subsection{Part One}
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi
+malesuada, quam in pulvinar varius, metus nunc fermentum urna, id
+sollicitudin purus odio sit amet enim. Aliquam ullamcorper eu ipsum
+vel mollis. Curabitur quis dictum nisl. Phasellus vel semper risus, et
+lacinia dolor. Integer ultricies commodo sem nec semper.
+
+\subsection{Part Two}
+
+Etiam commodo feugiat nisl pulvinar pellentesque. Etiam auctor sodales
+ligula, non varius nibh pulvinar semper. Suspendisse nec lectus non
+ipsum convallis congue hendrerit vitae sapien. Donec at laoreet
+eros. Vivamus non purus placerat, scelerisque diam eu, cursus
+ante. Etiam aliquam tortor auctor efficitur mattis.
+
+\section{Online Resources}
+
+Nam id fermentum dui. Suspendisse sagittis tortor a nulla mollis, in
+pulvinar ex pretium. Sed interdum orci quis metus euismod, et sagittis
+enim maximus. Vestibulum gravida massa ut felis suscipit
+congue. Quisque mattis elit a risus ultrices commodo venenatis eget
+dui. Etiam sagittis eleifend elementum.
+
+Nam interdum magna at lectus dignissim, ac dignissim lorem
+rhoncus. Maecenas eu arcu ac neque placerat aliquam. Nunc pulvinar
+massa et mattis lacinia.
+
+\end{document}
+%!acmcp>
+%<*acmcp>
+
+\maketitle
+
+
+\section{Problem statement}
+
+In this document we discuss how to write an ACM article.
+
+\section{Methods}
+
+This document provides \LaTeX\ templates for the article. We
+demonstrate different versions of ACM styles and show various options
+and commands. We add extensive documentation for these commands and
+show examples of their use.
+
+\section{Results}
+
+We hope the resulting templates and documentation will help the
+readers to write submissions for ACM journals and proceedings.
+
+\section{Significance}
+
+This document is important for anybody wanting to comply with the
+requirements of ACM publishing.
+
+
+\end{document}
+%
\ No newline at end of file