# HG changeset patch # User Chengsong # Date 1578608464 0 # Node ID 2e2dca212fff3c4f8129cad379066a0c0025f01d # Parent d486c12deeab131f53d487e05e5894c404585692 add diff -r d486c12deeab -r 2e2dca212fff etnms/.DS_Store Binary file etnms/.DS_Store has changed diff -r d486c12deeab -r 2e2dca212fff etnms/algorithm.aux --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/algorithm.aux Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,3 @@ +\relax +\providecommand \oddpage@label [2]{} +\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces ders2forSEQ($r_1$,$r_2$,$s$)}}{1}} diff -r d486c12deeab -r 2e2dca212fff etnms/algorithm.log --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/algorithm.log Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,127 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) (preloaded format=pdflatex 2019.2.7) 27 NOV 2019 23:15 +entering extended mode + restricted \write18 enabled. + file:line:error style messages enabled. + %&-line parsing enabled. +**algorithm.tex +(./algorithm.tex +LaTeX2e <2018-04-01> patch level 2 +Babel <3.18> and hyphenation patterns for 84 language(s) loaded. +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/article.cls +Document Class: article 2014/09/29 v1.4h Standard LaTeX document class +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty +Package: algorithm2e 2017/07/18 v5.2 algorithms environments +\c@AlgoLine=\count88 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC) +) +\algocf@hangindent=\skip43 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty +Package: ifoddpage 2016/04/23 v1.1 Conditionals for odd/even page detection +\c@checkoddpage=\count89 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/tools/xspace.sty +Package: xspace 2014/10/28 v1.13 Space after command names (DPC,MH) +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/relsize/relsize.sty +Package: relsize 2013/03/29 ver 4.1 +) +\skiptotal=\skip44 +\skiplinenumber=\skip45 +\skiprule=\skip46 +\skiphlne=\skip47 +\skiptext=\skip48 +\skiplength=\skip49 +\algomargin=\skip50 +\skipalgocfslide=\skip51 +\algowidth=\dimen103 +\inoutsize=\dimen104 +\inoutindent=\dimen105 +\interspacetitleruled=\dimen106 +\interspacealgoruled=\dimen107 +\interspacetitleboxruled=\dimen108 +\algocf@ruledwidth=\skip52 +\algocf@inoutbox=\box26 +\algocf@inputbox=\box27 +\AlCapSkip=\skip53 +\AlCapHSkip=\skip54 +\algoskipindent=\skip55 +\algocf@nlbox=\box28 +\algocf@hangingbox=\box29 +\algocf@untilbox=\box30 +\algocf@skipuntil=\skip56 +\algocf@capbox=\box31 +\algocf@lcaptionbox=\skip57 +\algoheightruledefault=\skip58 +\algoheightrule=\skip59 +\algotitleheightruledefault=\skip60 +\algotitleheightrule=\skip61 +\c@algocfline=\count90 +\c@algocfproc=\count91 +\c@algocf=\count92 +\algocf@algoframe=\box32 +\algocf@algobox=\box33 +) +(./algorithm.aux) +\openout1 = `algorithm.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 4. +LaTeX Font Info: ... okay on input line 4. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 4. +LaTeX Font Info: ... okay on input line 4. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 4. +LaTeX Font Info: ... okay on input line 4. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 4. +LaTeX Font Info: ... okay on input line 4. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 4. +LaTeX Font Info: ... okay on input line 4. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 4. +LaTeX Font Info: ... okay on input line 4. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 8. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 8. + [1 + +{/usr/local/texlive/2018/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./algo +rithm.aux) ) +Here is how much of TeX's memory you used: + 1209 strings out of 492649 + 18317 string characters out of 6129623 + 86876 words of memory out of 5000000 + 5156 multiletter control sequences out of 15000+600000 + 4992 words of font info for 18 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 24i,12n,26p,289b,383s stack positions out of 5000i,500n,10000p,200000b,80000s + + +Output written on algorithm.pdf (1 page, 78776 bytes). +PDF statistics: + 40 PDF objects out of 1000 (max. 8388607) + 28 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff -r d486c12deeab -r 2e2dca212fff etnms/algorithm.pdf Binary file etnms/algorithm.pdf has changed diff -r d486c12deeab -r 2e2dca212fff etnms/algorithm.synctex.gz Binary file etnms/algorithm.synctex.gz has changed diff -r d486c12deeab -r 2e2dca212fff etnms/algorithm.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/algorithm.tex Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,22 @@ +\documentclass{article} +\usepackage[ruled,vlined]{algorithm2e} + +\begin{document} +\begin{algorithm}[H] +\SetAlgoLined +\KwResult{rexp } + Compute list $l_1: [r_1\backslash c_1 \cdots c_n, r_1\backslash c_1 \cdots c_{n-1}, ..., r_1 \backslash c_1, r_1]$\; + Compute list $l_2: [r_2, r_2\backslash c_n, r_2\backslash c_{n-1} c_{n}, ..., r_2 \backslash c_1\cdots c_n]$\; + Compute list $l_3$: + $l_3 \gets []$ \; + \For{$i\gets1$ \KwTo $n$}{ + $\mathit{if} \; \mathit{nullable}(r_1 \backslash c_1 \cdots c_{n-i+1}) \; \mathit{then} \; \mathit{add} \; i \; \mathit{to} \; l_3$ + } + $result \gets r_1 \backslash c_1 \cdots c_n \cdot r_2$\\ + \For{$i\gets0$ \KwTo $l_3.length -1$}{ + $result \gets \mathit{ALT}(result, l2[l3[i]])$ + } + \Return result + \caption{ders2forSEQ($r_1$,$r_2$,$s$)} +\end{algorithm} +\end{document} \ No newline at end of file diff -r d486c12deeab -r 2e2dca212fff etnms/bad-scala.data --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/bad-scala.data Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,34 @@ +%% LaTeX2e file `bad-scala.data' +%% generated by the `filecontents' environment +%% from source `ninems' on 2019/08/18. +%% +1 0.048028 +2 0.126308 +3 0.169670 +4 0.264180 +5 0.384297 +6 0.612785 +7 0.817211 +8 1.089386 +9 1.363222 +10 1.644981 +11 1.987046 +12 2.416012 +13 2.920956 +14 3.398956 +15 3.739649 +16 4.329977 +17 4.932896 +18 5.633909 +19 6.436107 +20 6.927233 +21 7.441163 +22 8.242139 +23 8.901034 +24 9.680487 +25 10.496226 +26 11.385733 +27 12.247613 +28 13.990491 +29 14.245804 +30 15.206283 diff -r d486c12deeab -r 2e2dca212fff etnms/bad_scala.data --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/bad_scala.data Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,34 @@ +%% LaTeX2e file `bad_scala.data' +%% generated by the `filecontents' environment +%% from source `ninems' on 2019/08/18. +%% +1000 6.688E-6 +2000 6.28E-6 +3000 8.888E-6 +4000 1.4384E-5 +5000 1.875E-5 +6000 -2.1175E-5 +7000 -1.9611E-5 +8000 -1.8512E-5 +9000 2.6921E-5 +10000 3.2706E-5 +11000 3.2041E-5 +12000 3.8868E-5 +13000 3.9683E-5 +14000 4.0458E-5 +15000 4.5261E-5 +16000 6.0411E-5 +17000 5.2199E-5 +18000 5.443E-5 +19000 5.3428E-5 +20000 5.9657E-5 +21000 6.0396E-5 +22000 6.1441E-5 +23000 6.9136E-5 +24000 7.4773E-5 +25000 8.8255E-5 +26000 7.412E-5 +27000 9.415E-5 +28000 8.3007E-5 +29000 9.6488E-5 +30000 9.8127E-5 diff -r d486c12deeab -r 2e2dca212fff etnms/cc-by.pdf Binary file etnms/cc-by.pdf has changed diff -r d486c12deeab -r 2e2dca212fff etnms/data.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/data.sty Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,123 @@ +% The data files, written on the first run. + + +\begin{filecontents}{re-python2.data} +1 0.033 +5 0.036 +10 0.034 +15 0.036 +18 0.059 +19 0.084 +20 0.141 +21 0.248 +22 0.485 +23 0.878 +24 1.71 +25 3.40 +26 7.08 +27 14.12 +28 26.69 +\end{filecontents} + + +% JavaScript, example (a*)*b +\begin{filecontents}{re-js.data} +5 0.061 +10 0.061 +15 0.061 +20 0.070 +23 0.131 +25 0.308 +26 0.564 +28 1.994 +30 7.648 +31 15.881 +32 32.190 +\end{filecontents} + +% Java 8, example (a*)*b +\begin{filecontents}{re-java.data} +5 0.00298 +10 0.00418 +15 0.00996 +16 0.01710 +17 0.03492 +18 0.03303 +19 0.05084 +20 0.10177 +21 0.19960 +22 0.41159 +23 0.82234 +24 1.70251 +25 3.36112 +26 6.63998 +27 13.35120 +28 29.81185 +\end{filecontents} + +% Java, example (a*)b +\begin{filecontents}{good-java.data} +1 1.5633E-5 +2 1.299E-5 +3 1.1451E-5 +4 1.5846E-5 +5 1.9934E-5 +6 2.174E-5 +7 2.7669E-5 +8 2.8657E-5 +9 2.8161E-5 +10 2.8729E-5 +11 3.5367E-5 +12 3.701E-5 +13 3.84E-5 +14 4.1329E-5 +15 4.8116E-5 +16 5.3597E-5 +17 4.6792E-5 +18 5.8618E-5 +19 6.2078E-5 +20 6.4702E-5 +21 6.1464E-5 +22 6.4693E-5 +23 6.1667E-5 +24 7.1466E-5 +25 7.8089E-5 +26 7.4661E-5 +27 7.5628E-5 +28 8.9169E-5 +29 9.4161E-5 +30 9.8494E-5 +\end{filecontents} + +\begin{filecontents}{bad-scala.data} +1 0.048028 +2 0.126308 +3 0.169670 +4 0.264180 +5 0.384297 +6 0.612785 +7 0.817211 +8 1.089386 +9 1.363222 +10 1.644981 +11 1.987046 +12 2.416012 +13 2.920956 +14 3.398956 +15 3.739649 +16 4.329977 +17 4.932896 +18 5.633909 +19 6.436107 +20 6.927233 +21 7.441163 +22 8.242139 +23 8.901034 +24 9.680487 +25 10.496226 +26 11.385733 +27 12.247613 +28 13.990491 +29 14.245804 +30 15.206283 +\end{filecontents} \ No newline at end of file diff -r d486c12deeab -r 2e2dca212fff etnms/etnms.aux --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/etnms.aux Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,61 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\providecommand\HyField@AuxAddToCoFields[2]{} +\citation{AusafDyckhoffUrban2016} +\babel@aux{UKenglish}{} +\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}} +\citation{Davis18} +\citation{17Bir} +\citation{AusafDyckhoffUrban2016} +\citation{OkuiSuzuki2010} +\citation{Vansummeren2006} +\citation{Sulzmann2014} +\citation{AusafDyckhoffUrban2016} +\citation{CrashCourse2014} +\citation{Kuklewicz} +\citation{Sulzmann2014} +\citation{Brzozowski1964} +\@writefile{toc}{\contentsline {section}{\numberline {2}The Algorithm by Brzozowski based on Derivatives of Regular Expressions}{6}{section.2}} +\citation{Sulzmann2014} +\newlabel{graph:*}{{1}{7}{The Algorithm by Brzozowski based on Derivatives of Regular Expressions}{equation.2.1}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3}Values and the Algorithm by Sulzmann and Lu}{7}{section.3}} +\newlabel{graph:2}{{2}{8}{Values and the Algorithm by Sulzmann and Lu}{equation.3.2}{}} +\citation{nielson11bcre} +\citation{AusafDyckhoffUrban2016} +\citation{Antimirov95} +\@writefile{toc}{\contentsline {section}{\numberline {4}Simplification of Regular Expressions}{12}{section.4}} +\citation{Sulzmann2014} +\citation{Sulzmann2014} +\@writefile{toc}{\contentsline {section}{\numberline {5}Current Work}{16}{section.5}} +\bibstyle{plain} +\bibdata{root} +\bibcite{Antimirov95}{1} +\bibcite{AusafDyckhoffUrban2016}{2} +\bibcite{Brzozowski1964}{3} +\bibcite{Davis18}{4} +\bibcite{CrashCourse2014}{5} +\bibcite{Kuklewicz}{6} +\bibcite{nielson11bcre}{7} +\bibcite{OkuiSuzuki2010}{8} +\@writefile{toc}{\contentsline {section}{\numberline {6}Conclusion}{19}{section.6}} +\bibcite{17Bir}{9} +\bibcite{Sulzmann2014}{10} +\bibcite{Vansummeren2006}{11} +\newlabel{LastPage}{{}{20}{}{page.20}{}} +\xdef\lastpage@lastpage{20} +\xdef\lastpage@lastpageHy{20} diff -r d486c12deeab -r 2e2dca212fff etnms/etnms.bbl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/etnms.bbl Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,71 @@ +\begin{thebibliography}{10} + +\bibitem{Antimirov95} +V.~Antimirov. +\newblock {P}artial {D}erivatives of {R}egular {E}xpressions and {F}inite + {A}utomata {C}onstructions. +\newblock {\em Theoretical Computer Science}, 155:291--319, 1995. + +\bibitem{AusafDyckhoffUrban2016} +F.~Ausaf, R.~Dyckhoff, and C.~Urban. +\newblock {POSIX} {L}exing with {D}erivatives of {R}egular {E}xpressions + ({P}roof {P}earl). +\newblock In {\em Proc.~of the 7th International Conference on Interactive + Theorem Proving (ITP)}, volume 9807 of {\em LNCS}, pages 69--86, 2016. + +\bibitem{Brzozowski1964} +J.~A. Brzozowski. +\newblock {D}erivatives of {R}egular {E}xpressions. +\newblock {\em Journal of the {ACM}}, 11(4):481--494, 1964. + +\bibitem{Davis18} +J.~C. Davis, C.~.A. Coghlan, F.~Servant, and D.~Lee. +\newblock {T}he {I}mpact of {R}egular {E}xpression {D}enial of {S}ervice + ({ReDoS}) in {P}ractice: {A}n {E}mpirical {S}tudy at the {E}cosystem {S}cale. +\newblock In {\em Proc.~of the 26th ACM Joint Meeting on European Software + Engineering Conference and Symposium on the Foundations of Software + Engineering (ESEC/FSE)}, pages 246--256, 2018. + +\bibitem{CrashCourse2014} +N.~B.~B. Grathwohl, F.~Henglein, and U.~T. Rasmussen. +\newblock {A} {C}rash-{C}ourse in {R}egular {E}xpression {P}arsing and + {R}egular {E}xpressions as {T}ypes. +\newblock Technical report, University of Copenhagen, 2014. + +\bibitem{Kuklewicz} +C.~Kuklewicz. +\newblock {R}egex {P}osix. +\newblock \url{https://wiki.haskell.org/Regex_Posix}. + +\bibitem{nielson11bcre} +Fritz~Henglein Lasse~Nielsen. +\newblock Bit-coded regular expression parsing. +\newblock {\em LATA}, 2011. + +\bibitem{OkuiSuzuki2010} +S.~Okui and T.~Suzuki. +\newblock {D}isambiguation in {R}egular {E}xpression {M}atching via {P}osition + {A}utomata with {A}ugmented {T}ransitions. +\newblock In {\em Proc.~of the 15th International Conference on Implementation + and Application of Automata (CIAA)}, volume 6482 of {\em LNCS}, pages + 231--240, 2010. + +\bibitem{17Bir} +Asiri Rathnayake and Hayo Thielecke. +\newblock Static analysis for regular expression exponential runtime via + substructural logics. +\newblock {\em arXiv:1405.7058}, 2017. + +\bibitem{Sulzmann2014} +M.~Sulzmann and K.~Lu. +\newblock {POSIX} {R}egular {E}xpression {P}arsing with {D}erivatives. +\newblock In {\em Proc.~of the 12th International Conference on Functional and + Logic Programming (FLOPS)}, volume 8475 of {\em LNCS}, pages 203--220, 2014. + +\bibitem{Vansummeren2006} +S.~Vansummeren. +\newblock {T}ype {I}nference for {U}nique {P}attern {M}atching. +\newblock {\em ACM Transactions on Programming Languages and Systems}, + 28(3):389--428, 2006. + +\end{thebibliography} diff -r d486c12deeab -r 2e2dca212fff etnms/etnms.blg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/etnms.blg Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,46 @@ +This is BibTeX, Version 0.99d (TeX Live 2018) +Capacity: max_strings=100000, hash_size=100000, hash_prime=85009 +The top-level auxiliary file: etnms.aux +The style file: plain.bst +Database file #1: root.bib +You've used 11 entries, + 2118 wiz_defined-function locations, + 572 strings with 5978 characters, +and the built_in function-call counts, 3732 in all, are: += -- 376 +> -- 133 +< -- 7 ++ -- 53 +- -- 42 +* -- 235 +:= -- 590 +add.period$ -- 33 +call.type$ -- 11 +change.case$ -- 55 +chr.to.int$ -- 0 +cite$ -- 11 +duplicate$ -- 161 +empty$ -- 316 +format.name$ -- 42 +if$ -- 806 +int.to.chr$ -- 0 +int.to.str$ -- 11 +missing$ -- 9 +newline$ -- 58 +num.names$ -- 22 +pop$ -- 60 +preamble$ -- 1 +purify$ -- 43 +quote$ -- 0 +skip$ -- 127 +stack$ -- 0 +substring$ -- 250 +swap$ -- 54 +text.length$ -- 7 +text.prefix$ -- 0 +top$ -- 0 +type$ -- 44 +warning$ -- 0 +while$ -- 40 +width$ -- 13 +write$ -- 122 diff -r d486c12deeab -r 2e2dca212fff etnms/etnms.log --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/etnms.log Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,1424 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) (preloaded format=pdflatex 2019.2.7) 9 JAN 2020 22:19 +entering extended mode + restricted \write18 enabled. + file:line:error style messages enabled. + %&-line parsing enabled. +**etnms.tex +(./etnms.tex +LaTeX2e <2018-04-01> patch level 2 +Babel <3.18> and hyphenation patterns for 84 language(s) loaded. +(./lipics.cls +Document Class: lipics 2010/09/27 v1.1 LIPIcs articles +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/article.cls +Document Class: article 2014/09/29 v1.4h Standard LaTeX document class +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/fleqn.clo +File: fleqn.clo 2016/12/29 v1.2a Standard LaTeX option (flush left equations) +\mathindent=\dimen102 +Applying: [2015/01/01] Make \[ robust on input line 50. +LaTeX Info: Redefining \[ on input line 51. +Already applied: [0000/00/00] Make \[ robust on input line 62. +Applying: [2015/01/01] Make \] robust on input line 74. +LaTeX Info: Redefining \] on input line 75. +Already applied: [0000/00/00] Make \] robust on input line 83. +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen103 +) +\tocfile=\write3 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2018/04/06 v1.3b Input encoding file +\inpenc@prehook=\toks14 +\inpenc@posthook=\toks15 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/lmodern.sty +Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38. +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2017/04/05 v2.0i Standard LaTeX package + +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2017/04/05 v2.0i Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 48. +)) +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2017/04/05 v2.0i Standard LaTeX package +Package textcomp Info: Sub-encoding information: +(textcomp) 5 = only ISO-Adobe without \textcurrency +(textcomp) 4 = 5 + \texteuro +(textcomp) 3 = 4 + \textohm +(textcomp) 2 = 3 + \textestimated + \textcurrency +(textcomp) 1 = TS1 - \textcircled - \t +(textcomp) 0 = TS1 (full) +(textcomp) Font families with sub-encoding setting implement +(textcomp) only a restricted character set as indicated. +(textcomp) Family '?' is the default used for unknown fonts. +(textcomp) See the documentation for details. +Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 79. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1enc.def +File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file +Now handling font encoding TS1 ... +... processing UTF-8 mapping file for font encoding TS1 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1enc.dfu +File: ts1enc.dfu 2018/04/05 v1.2c UTF-8 support for inputenc + defining Unicode char U+00A2 (decimal 162) + defining Unicode char U+00A3 (decimal 163) + defining Unicode char U+00A4 (decimal 164) + defining Unicode char U+00A5 (decimal 165) + defining Unicode char U+00A6 (decimal 166) + defining Unicode char U+00A7 (decimal 167) + defining Unicode char U+00A8 (decimal 168) + defining Unicode char U+00A9 (decimal 169) + defining Unicode char U+00AA (decimal 170) + defining Unicode char U+00AC (decimal 172) + defining Unicode char U+00AE (decimal 174) + defining Unicode char U+00AF (decimal 175) + defining Unicode char U+00B0 (decimal 176) + defining Unicode char U+00B1 (decimal 177) + defining Unicode char U+00B2 (decimal 178) + defining Unicode char U+00B3 (decimal 179) + defining Unicode char U+00B4 (decimal 180) + defining Unicode char U+00B5 (decimal 181) + defining Unicode char U+00B6 (decimal 182) + defining Unicode char U+00B7 (decimal 183) + defining Unicode char U+00B9 (decimal 185) + defining Unicode char U+00BA (decimal 186) + defining Unicode char U+00BC (decimal 188) + defining Unicode char U+00BD (decimal 189) + defining Unicode char U+00BE (decimal 190) + defining Unicode char U+00D7 (decimal 215) + defining Unicode char U+00F7 (decimal 247) + defining Unicode char U+0192 (decimal 402) + defining Unicode char U+02C7 (decimal 711) + defining Unicode char U+02D8 (decimal 728) + defining Unicode char U+02DD (decimal 733) + defining Unicode char U+0E3F (decimal 3647) + defining Unicode char U+2016 (decimal 8214) + defining Unicode char U+2020 (decimal 8224) + defining Unicode char U+2021 (decimal 8225) + defining Unicode char U+2022 (decimal 8226) + defining Unicode char U+2030 (decimal 8240) + defining Unicode char U+2031 (decimal 8241) + defining Unicode char U+203B (decimal 8251) + defining Unicode char U+203D (decimal 8253) + defining Unicode char U+2044 (decimal 8260) + defining Unicode char U+204E (decimal 8270) + defining Unicode char U+2052 (decimal 8274) + defining Unicode char U+20A1 (decimal 8353) + defining Unicode char U+20A4 (decimal 8356) + defining Unicode char U+20A6 (decimal 8358) + defining Unicode char U+20A9 (decimal 8361) + defining Unicode char U+20AB (decimal 8363) + defining Unicode char U+20AC (decimal 8364) + defining Unicode char U+20B1 (decimal 8369) + defining Unicode char U+2103 (decimal 8451) + defining Unicode char U+2116 (decimal 8470) + defining Unicode char U+2117 (decimal 8471) + defining Unicode char U+211E (decimal 8478) + defining Unicode char U+2120 (decimal 8480) + defining Unicode char U+2122 (decimal 8482) + defining Unicode char U+2126 (decimal 8486) + defining Unicode char U+2127 (decimal 8487) + defining Unicode char U+212E (decimal 8494) + defining Unicode char U+2190 (decimal 8592) + defining Unicode char U+2191 (decimal 8593) + defining Unicode char U+2192 (decimal 8594) + defining Unicode char U+2193 (decimal 8595) + defining Unicode char U+2329 (decimal 9001) + defining Unicode char U+232A (decimal 9002) + defining Unicode char U+2422 (decimal 9250) + defining Unicode char U+25E6 (decimal 9702) + defining Unicode char U+25EF (decimal 9711) + defining Unicode char U+266A (decimal 9834) + defining Unicode char U+FEFF (decimal 65279) +)) +LaTeX Info: Redefining \oldstylenums on input line 334. +Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 349. +Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 350. +Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 351. +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 352. +Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 353. +Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 354. +Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 355. +Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 356. +Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 357. +Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 358. +Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 359. +Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 360. +Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 361. +Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 362. +Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 363. +Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 364. +Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 365. +Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 366. +Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 367. +Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 368. +Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 369. +Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 370. +Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 371. +Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 372. + +Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 373. +Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 374. +Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 375. +Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 376. +Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 377. +Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 378. +Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 379. +Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 380. +Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 381. +Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 382. +Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 383. +Package textcomp Info: Setting lmtt sub-encoding to TS1/0 on input line 384. +Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 385. +Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 386. +Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 387. +Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 388. +Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 389. +Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 390. +Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 391. +Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 392. +Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 393. +Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 394. +Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 395. +Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 396. +Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 397. +Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 398. +Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 399. +Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 400. +Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 401. +Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 402. +Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 403. +Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 404. +Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 405. +Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 406. +Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 407. +Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 408. +Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 409. +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/eucal.sty +Package: eucal 2009/06/22 v3.00 Euler Script fonts +LaTeX Font Info: Overwriting math alphabet `\EuScript' in version `bold' +(Font) U/eus/m/n --> U/eus/b/n on input line 33. +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols + +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\@emptytoks=\toks16 +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) +(/usr/local/texlive/2018/texmf-dist/tex/latex/soul/soul.sty +Package: soul 2003/11/17 v2.4 letterspacing/underlining (mf) +\SOUL@word=\toks17 +\SOUL@lasttoken=\toks18 +\SOUL@cmds=\toks19 +\SOUL@buffer=\toks20 +\SOUL@token=\toks21 +\SOUL@spaceskip=\skip43 +\SOUL@ttwidth=\dimen104 +\SOUL@uldp=\dimen105 +\SOUL@ulht=\dimen106 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/color.sty +Package: color 2016/07/10 v1.1e Standard LaTeX Color (DPC) + +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package color Info: Driver file: pdftex.def on input line 147. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2018/02/14 3.18 The Babel package + +(/usr/local/texlive/2018/texmf-dist/tex/generic/babel/switch.def +File: switch.def 2018/02/14 3.18 Babel switching mechanism +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/babel-english/UKenglish.ldf +Language: UKenglish 2017/06/06 v3.3r English support from the babel system + +(/usr/local/texlive/2018/texmf-dist/tex/generic/babel-english/english.ldf +Language: english 2017/06/06 v3.3r English support from the babel system + +(/usr/local/texlive/2018/texmf-dist/tex/generic/babel/babel.def +File: babel.def 2018/02/14 3.18 Babel common definitions +\babel@savecnt=\count88 +\U@D=\dimen107 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/babel/txtbabel.def) +\bbl@dirlevel=\count89 +) +\l@canadian = a dialect from \language\l@american +\l@australian = a dialect from \language\l@british +\l@newzealand = a dialect from \language\l@british +))) +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2017/09/02 v2.17a AMS math features +\@mathmargin=\skip44 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 AMS text + +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks22 +\ex@=\dimen108 +)) +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen109 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2016/03/08 v2.02 operator names +) +\inf@bad=\count90 +LaTeX Info: Redefining \frac on input line 213. +\uproot@=\count91 +\leftroot@=\count92 +LaTeX Info: Redefining \overline on input line 375. +\classnum@=\count93 +\DOTSCASE@=\count94 +LaTeX Info: Redefining \ldots on input line 472. +LaTeX Info: Redefining \dots on input line 475. +LaTeX Info: Redefining \cdots on input line 596. +\Mathstrutbox@=\box26 +\strutbox@=\box27 +\big@size=\dimen110 +LaTeX Font Info: Redeclaring font encoding OML on input line 712. +LaTeX Font Info: Redeclaring font encoding OMS on input line 713. +\macc@depth=\count95 +\c@MaxMatrixCols=\count96 +\dotsspace@=\muskip10 +\c@parentequation=\count97 +\dspbrk@lvl=\count98 +\tag@help=\toks23 +\row@=\count99 +\column@=\count100 +\maxfields@=\count101 +\andhelp@=\toks24 +\eqnshift@=\dimen111 +\alignsep@=\dimen112 +\tagshift@=\dimen113 +\tagwidth@=\dimen114 +\totwidth@=\dimen115 +\lineht@=\dimen116 +\@envbody=\toks25 +\multlinegap=\skip45 +\multlinetaggap=\skip46 +\mathdisplay@stack=\toks26 +LaTeX Info: Redefining \[ on input line 2817. +LaTeX Info: Redefining \] on input line 2818. +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/amscls/amsthm.sty +Package: amsthm 2017/10/31 v2.20.4 +\thm@style=\toks27 +\thm@bodyfont=\toks28 +\thm@headfont=\toks29 +\thm@notefont=\toks30 +\thm@headpunct=\toks31 +\thm@preskip=\skip47 +\thm@postskip=\skip48 +\thm@headsep=\skip49 +\dth@everypar=\toks32 +) +\c@theorem=\count102 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks33 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. +) +\Gin@req@height=\dimen117 +\Gin@req@width=\dimen118 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/tools/array.sty +Package: array 2018/04/07 v2.4g Tabular extension package (FMi) +\col@sep=\dimen119 +\ar@mcellbox=\box28 +\extrarowheight=\dimen120 +\NC@list=\toks34 +\extratabsurround=\skip50 +\backup@length=\skip51 +\ar@cellbox=\box29 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/multirow/multirow.sty +Package: multirow 2016/11/25 v2.2 Span multiple rows of a table +\multirow@colwidth=\skip52 +\multirow@cntb=\count103 +\multirow@dima=\skip53 +\bigstrutjot=\dimen121 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/tools/tabularx.sty +Package: tabularx 2016/02/03 v2.11b `tabularx' package (DPC) +\TX@col@width=\dimen122 +\TX@old@table=\dimen123 +\TX@old@col=\dimen124 +\TX@target=\dimen125 +\TX@delta=\dimen126 +\TX@cols=\count104 +\TX@ftn=\toks35 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/threeparttable/threeparttable.sty +Package: threeparttable 2003/06/13 v 3.0 +\@tempboxb=\box30 +) (/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count105 +\lst@gtempboxa=\box31 +\lst@token=\toks36 +\lst@length=\count106 +\lst@currlwidth=\dimen127 +\lst@column=\count107 +\lst@pos=\count108 +\lst@lostspace=\dimen128 +\lst@width=\dimen129 +\lst@newlines=\count109 +\lst@lineno=\count110 +\lst@maxwidth=\dimen130 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2015/06/04 1.6 (Carsten Heinz) +\c@lstnumber=\count111 +\lst@skipnumbers=\count112 +\lst@framebox=\box32 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2015/06/04 1.6 listings configuration +)) +Package: listings 2015/06/04 1.6 (Carsten Heinz) + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lastpage/lastpage.sty +Package: lastpage 2015/03/29 v1.2m Refers to last page's name (HMM; JPG) +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/doi/doi.sty +Package: doi 2007/07/24 handle doi numbers + +(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2018/02/06 v6.86b Hypertext links for LaTeX + +(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO) + + +(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO) +Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO) +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO) +Package: ifpdf 2017/03/15 v3.2 Provides the ifpdf switch +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) +Package: pdftexcmds 2018/01/30 v0.27 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO +) +Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO) +Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO) +Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO) +Package: xcolor-patch 2016/05/16 xcolor patch +Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO) +Package atveryend Info: \enddocument detected (standard20110627). +Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO) +Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO) +Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/auxhook.sty +Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) +) +\@linkdim=\dimen131 +\Hy@linkcounter=\count113 +\Hy@pagecounter=\count114 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2018/02/06 v6.86b Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) +\Hy@SavedSpaceFactor=\count115 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Hyper figures OFF on input line 4509. +Package hyperref Info: Link nesting OFF on input line 4514. +Package hyperref Info: Hyper index ON on input line 4517. +Package hyperref Info: Plain pages OFF on input line 4524. +Package hyperref Info: Backreferencing OFF on input line 4529. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4762. +\c@Hy@tempcnt=\count116 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip11 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5115. +\XeTeXLinkMargin=\dimen132 +\Fld@menulength=\count117 +\Field@Width=\dimen133 +\Fld@charsize=\dimen134 +Package hyperref Info: Hyper figures OFF on input line 6369. +Package hyperref Info: Link nesting OFF on input line 6374. +Package hyperref Info: Hyper index ON on input line 6377. +Package hyperref Info: backreferencing OFF on input line 6384. +Package hyperref Info: Link coloring OFF on input line 6389. +Package hyperref Info: Link coloring with OCG OFF on input line 6394. +Package hyperref Info: PDF/A mode OFF on input line 6399. +LaTeX Info: Redefining \ref on input line 6439. +LaTeX Info: Redefining \pageref on input line 6443. +\Hy@abspage=\count118 +\c@Item=\count119 +\c@Hfootnote=\count120 +) +Package hyperref Info: Driver (autodetected): hpdftex. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2018/02/06 v6.86b Hyperref driver for pdfTeX +\Fld@listcount=\count121 +\c@bookmark@seq@number=\count122 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +82. +) +\Hy@SectionHShift=\skip54 +)) +(/usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2016/02/21 v3.3-144 Customizing captions (AR) + +(/usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2016/05/22 v1.7-166 caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 67. +\captionmargin=\dimen135 +\captionmargin@=\dimen136 +\captionwidth=\dimen137 +\caption@tempdima=\dimen138 +\caption@indent=\dimen139 +\caption@parindent=\dimen140 +\caption@hangindent=\dimen141 +) +\c@ContinuedFloat=\count123 +Package caption Info: hyperref package is loaded. +Package caption Info: listings package is loaded. +Package caption Info: threeparttable package is loaded. +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/rotating.sty +Package: rotating 2016/08/11 v2.16d rotated objects in LaTeX + +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC) +) +\c@r@tfl@t=\count124 +\rotFPtop=\skip55 +\rotFPbot=\skip56 +\rot@float@box=\box33 +\rot@mess@toks=\toks37 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/subfig/subfig.sty +Package: subfig 2005/06/28 ver: 1.3 subfig package +\c@KVtest=\count125 +\sf@farskip=\skip57 +\sf@captopadj=\dimen142 +\sf@capskip=\skip58 +\sf@nearskip=\skip59 +\c@subfigure=\count126 +\c@subfigure@save=\count127 +\c@lofdepth=\count128 +\c@subtable=\count129 +\c@subtable@save=\count130 +\c@lotdepth=\count131 +\sf@top=\skip60 +\sf@bottom=\skip61 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/preprint/authblk.sty +Package: authblk 2001/02/27 1.3 (PWD) +\affilsep=\skip62 +\@affilsep=\skip63 +\c@Maxaffil=\count132 +\c@authors=\count133 +\c@affil=\count134 +)) +(./graphic.sty +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.te +x +\pgfutil@everybye=\toks38 +\pgfutil@tempdima=\dimen143 +\pgfutil@tempdimb=\dimen144 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-li +sts.tex)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +\pgfutil@abb=\box34 +(/usr/local/texlive/2018/texmf-dist/tex/latex/ms/everyshi.sty +Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) +)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +Package: pgfrcs 2015/08/07 v3.0.1a (rcs-revision 1.31) +)) +Package: pgf 2015/08/07 v3.0.1a (rcs-revision 1.15) +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2014/07/09 v3.0.1a (rcs-revision 1.48) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks39 +\pgfkeys@temptoks=\toks40 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.c +ode.tex +\pgfkeys@tmptoks=\toks41 +)) +\pgf@x=\dimen145 +\pgf@y=\dimen146 +\pgf@xa=\dimen147 +\pgf@ya=\dimen148 +\pgf@xb=\dimen149 +\pgf@yb=\dimen150 +\pgf@xc=\dimen151 +\pgf@yc=\dimen152 +\w@pgf@writea=\write4 +\r@pgf@reada=\read1 +\c@pgf@counta=\count135 +\c@pgf@countb=\count136 +\c@pgf@countc=\count137 +\c@pgf@countd=\count138 +\t@pgf@toka=\toks42 +\t@pgf@tokb=\toks43 +\t@pgf@tokc=\toks44 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2008/05/14 (rcs-revision 1.7) +) +Driver file for pgf: pgfsys-pdftex.def + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.d +ef +File: pgfsys-pdftex.def 2014/10/11 (rcs-revision 1.35) + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-p +df.def +File: pgfsys-common-pdf.def 2013/10/10 (rcs-revision 1.13) +))) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath. +code.tex +File: pgfsyssoftpath.code.tex 2013/09/09 (rcs-revision 1.9) +\pgfsyssoftpath@smallbuffer@items=\count139 +\pgfsyssoftpath@bigbuffer@items=\count140 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol. +code.tex +File: pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4) +)) (/usr/local/texlive/2018/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +LaTeX Info: Redefining \color on input line 709. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2010/04/11 v3.0.1a (rcs-revision 1.7) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@dimen=\dimen153 +\pgfmath@count=\count141 +\pgfmath@box=\box35 +\pgfmath@toks=\toks45 +\pgfmath@stack@operand=\toks46 +\pgfmath@stack@operation=\toks47 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code. +tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic +.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigo +nometric.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.rando +m.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.compa +rison.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base. +code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round +.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc. +code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integ +erarithmetics.code.tex))) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count142 +)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.co +de.tex +File: pgfcorepoints.code.tex 2013/10/07 (rcs-revision 1.27) +\pgf@picminx=\dimen154 +\pgf@picmaxx=\dimen155 +\pgf@picminy=\dimen156 +\pgf@picmaxy=\dimen157 +\pgf@pathminx=\dimen158 +\pgf@pathmaxx=\dimen159 +\pgf@pathminy=\dimen160 +\pgf@pathmaxy=\dimen161 +\pgf@xx=\dimen162 +\pgf@xy=\dimen163 +\pgf@yx=\dimen164 +\pgf@yy=\dimen165 +\pgf@zx=\dimen166 +\pgf@zy=\dimen167 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconst +ruct.code.tex +File: pgfcorepathconstruct.code.tex 2013/10/07 (rcs-revision 1.29) +\pgf@path@lastx=\dimen168 +\pgf@path@lasty=\dimen169 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage +.code.tex +File: pgfcorepathusage.code.tex 2014/11/02 (rcs-revision 1.24) +\pgf@shorten@end@additional=\dimen170 +\pgf@shorten@start@additional=\dimen171 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.co +de.tex +File: pgfcorescopes.code.tex 2015/05/08 (rcs-revision 1.46) +\pgfpic=\box36 +\pgf@hbox=\box37 +\pgf@layerbox@main=\box38 +\pgf@picture@serial@count=\count143 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicst +ate.code.tex +File: pgfcoregraphicstate.code.tex 2014/11/02 (rcs-revision 1.12) +\pgflinewidth=\dimen172 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransform +ations.code.tex +File: pgfcoretransformations.code.tex 2015/08/07 (rcs-revision 1.20) +\pgf@pt@x=\dimen173 +\pgf@pt@y=\dimen174 +\pgf@pt@temp=\dimen175 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.cod +e.tex +File: pgfcorequick.code.tex 2008/10/09 (rcs-revision 1.3) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.c +ode.tex +File: pgfcoreobjects.code.tex 2006/10/11 (rcs-revision 1.2) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathproce +ssing.code.tex +File: pgfcorepathprocessing.code.tex 2013/09/09 (rcs-revision 1.9) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.co +de.tex +File: pgfcorearrows.code.tex 2015/05/14 (rcs-revision 1.43) +\pgfarrowsep=\dimen176 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.cod +e.tex +File: pgfcoreshade.code.tex 2013/07/15 (rcs-revision 1.15) +\pgf@max=\dimen177 +\pgf@sys@shading@range@num=\count144 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.cod +e.tex +File: pgfcoreimage.code.tex 2013/07/15 (rcs-revision 1.18) + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal. +code.tex +File: pgfcoreexternal.code.tex 2014/07/09 (rcs-revision 1.21) +\pgfexternal@startupbox=\box39 +)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.co +de.tex +File: pgfcorelayers.code.tex 2013/07/18 (rcs-revision 1.7) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretranspare +ncy.code.tex +File: pgfcoretransparency.code.tex 2013/09/30 (rcs-revision 1.5) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns. +code.tex +File: pgfcorepatterns.code.tex 2013/11/07 (rcs-revision 1.5) +))) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.cod +e.tex +File: pgfmoduleshapes.code.tex 2014/03/21 (rcs-revision 1.35) +\pgfnodeparttextbox=\box40 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code. +tex +File: pgfmoduleplot.code.tex 2015/08/03 (rcs-revision 1.13) +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-0-65.sty +Package: pgfcomp-version-0-65 2007/07/03 v3.0.1a (rcs-revision 1.7) +\pgf@nodesepstart=\dimen178 +\pgf@nodesepend=\dimen179 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-1-18.sty +Package: pgfcomp-version-1-18 2007/07/23 v3.0.1a (rcs-revision 1.1) +)) +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex) +) (/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/math/pgfmath.sty +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2013/12/13 v3.0.1a (rcs-revision 1.25) + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex) +\pgffor@iter=\dimen180 +\pgffor@skip=\dimen181 +\pgffor@stack=\toks48 +\pgffor@toks=\toks49 +)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.cod +e.tex +Package: tikz 2015/08/07 v3.0.1a (rcs-revision 1.151) + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothan +dlers.code.tex +File: pgflibraryplothandlers.code.tex 2013/08/31 v3.0.1a (rcs-revision 1.20) +\pgf@plot@mark@count=\count145 +\pgfplotmarksize=\dimen182 +) +\tikz@lastx=\dimen183 +\tikz@lasty=\dimen184 +\tikz@lastxsaved=\dimen185 +\tikz@lastysaved=\dimen186 +\tikzleveldistance=\dimen187 +\tikzsiblingdistance=\dimen188 +\tikz@figbox=\box41 +\tikz@figbox@bg=\box42 +\tikz@tempbox=\box43 +\tikz@tempbox@bg=\box44 +\tikztreelevel=\count146 +\tikznumberofchildren=\count147 +\tikznumberofcurrentchild=\count148 +\tikz@fig@count=\count149 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.cod +e.tex +File: pgfmodulematrix.code.tex 2013/09/17 (rcs-revision 1.8) +\pgfmatrixcurrentrow=\count150 +\pgfmatrixcurrentcolumn=\count151 +\pgf@matrix@numberofcolumns=\count152 +) +\tikz@expandcount=\count153 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2008/06/17 v3.0.1a (rcs-revision 1.2) +))) +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgfplots/pgfplots.sty +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex) +Package: pgfplots 2018/03/28 v1.16 Data Visualization (1.16) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex +\t@pgfplots@toka=\toks50 +\t@pgfplots@tokb=\toks51 +\t@pgfplots@tokc=\toks52 +\pgfplots@tmpa=\dimen189 +\c@pgfplots@coordindex=\count154 +\c@pgfplots@scanlineindex=\count155 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/sys/pgfplotssysgeneric +.code.tex)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/libs/pgfplotslibrary.c +ode.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplot +soldpgfsupp_loader.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryfpu.cod +e.tex) +Package pgfplots: loading complementary arithmetics for your pgf version... + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplot +soldpgfsupp_pgflibraryfpu.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplot +soldpgfsupp_pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count156 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplot +soldpgfsupp_leq.code.tex)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.code +.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplots +liststructure.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplots +liststructureext.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplots +array.code.tex +\c@pgfplotsarray@tmp=\count157 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplots +matrix.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstable +shared.code.tex +\c@pgfplotstable@counta=\count158 +\t@pgfplotstable@a=\toks53 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplots +deque.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.co +de.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.da +ta.code.tex)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.verb +.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/libs/pgflibrarypgfplot +s.surfshading.code.tex +\c@pgfplotslibrarysurf@no=\count159 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/sys/pgflibrarypgfplots +.surfshading.pgfsys-pdftex.def))) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotscolormap. +code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotscolor.cod +e.tex)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.c +ode.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.c +ode.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandle +r.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplotimage. +code.tex))) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.scaling.code. +tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessin +g.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.errorbars.cod +e.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.markers.code. +tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsticks.code.tex +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.paths.code.te +x) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarydecorations.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmoduledecoration +s.code.tex +\pgfdecoratedcompleteddistance=\dimen190 +\pgfdecoratedremainingdistance=\dimen191 +\pgfdecoratedinputsegmentcompleteddistance=\dimen192 +\pgfdecoratedinputsegmentremainingdistance=\dimen193 +\pgf@decorate@distancetomove=\dimen194 +\pgf@decorate@repeatstate=\count160 +\pgfdecorationsegmentamplitude=\dimen195 +\pgfdecorationsegmentlength=\dimen196 +) +\tikz@lib@dec@box=\box45 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarydecorations.pathmorphing.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/decorations/pgfli +brarydecorations.pathmorphing.code.tex)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarydecorations.pathreplacing.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/decorations/pgfli +brarydecorations.pathreplacing.code.tex)) +\pgfplots@numplots=\count161 +\pgfplots@xmin@reg=\dimen197 +\pgfplots@xmax@reg=\dimen198 +\pgfplots@ymin@reg=\dimen199 +\pgfplots@ymax@reg=\dimen256 +\pgfplots@zmin@reg=\dimen257 +\pgfplots@zmax@reg=\dimen258 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryplotmarks.code.tex +File: tikzlibraryplotmarks.code.tex 2008/01/09 v3.0.1a (rcs-revision 1.1) + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmar +ks.code.tex +File: pgflibraryplotmarks.code.tex 2015/08/03 v3.0.1a (rcs-revision 1.14) +)))) (./data.sty + +LaTeX Warning: File `re-python2.data' already exists on the system. + Not generating it from this source. + + +LaTeX Warning: File `re-js.data' already exists on the system. + Not generating it from this source. + + +LaTeX Warning: File `re-java.data' already exists on the system. + Not generating it from this source. + + +LaTeX Warning: File `good-java.data' already exists on the system. + Not generating it from this source. + + +LaTeX Warning: File `bad-scala.data' already exists on the system. + Not generating it from this source. + +) (/usr/local/texlive/2018/texmf-dist/tex/latex/tikz-cd/tikz-cd.sty +Package: tikz-cd 2014/10/30 v0.9e Commutative diagrams with tikz + +(/usr/local/texlive/2018/texmf-dist/tex/generic/tikz-cd/tikzlibrarycd.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarymatrix.code.tex +File: tikzlibrarymatrix.code.tex 2013/07/12 v3.0.1a (rcs-revision 1.4) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryquotes.code.tex +File: tikzlibraryquotes.code.tex 2014/03/21 v3.0.1a (rcs-revision 1.4) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows. +meta.code.tex +File: pgflibraryarrows.meta.code.tex 2015/05/13 v3.0.1a (rcs-revision 1.13) +\pgfarrowinset=\dimen259 +\pgfarrowlength=\dimen260 +\pgfarrowwidth=\dimen261 +\pgfarrowlinewidth=\dimen262 +))) +(/usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +Package: algpseudocode + +(/usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +Package: algorithmicx 2005/04/27 v1.2 Algorithmicx + +Document Style algorithmicx 1.2 - a greatly improved `algorithmic' style +\c@ALG@line=\count162 +\c@ALG@rem=\count163 +\c@ALG@nested=\count164 +\ALG@tlm=\skip64 +\ALG@thistlm=\skip65 +\c@ALG@Lnr=\count165 +\c@ALG@blocknr=\count166 +\c@ALG@storecount=\count167 +\c@ALG@tmpcounter=\count168 +\ALG@tmplength=\skip66 +) +Document Style - pseudocode environments for use with the `algorithmicx' style +) (/usr/local/texlive/2018/texmf-dist/tex/latex/enumitem/enumitem.sty +Package: enumitem 2011/09/28 v3.5.2 Customized lists +\labelindent=\skip67 +\enit@outerparindent=\dimen263 +\enit@toks=\toks54 +\enit@inbox=\box46 +\enitdp@description=\count169 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/ncctools/nccmath.sty +Package: nccmath 2005/02/21 v1.2 Additional Math Commands (NCC) +\NCC@fracrulewidth=\dimen264 +) +Package hyperref Info: Option `colorlinks' set `true' on input line 12. + +(./etnms.aux) +\openout1 = `etnms.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 76. +LaTeX Font Info: ... okay on input line 76. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 76. +LaTeX Font Info: ... okay on input line 76. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 76. +LaTeX Font Info: ... okay on input line 76. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 76. +LaTeX Font Info: ... okay on input line 76. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 76. +LaTeX Font Info: ... okay on input line 76. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 76. +LaTeX Font Info: ... okay on input line 76. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 76. +LaTeX Font Info: Try loading font information for TS1+cmr on input line 76. + (/usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1cmr.fd +File: ts1cmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: ... okay on input line 76. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 76. +LaTeX Font Info: ... okay on input line 76. +LaTeX Font Info: Try loading font information for T1+lmr on input line 76. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmr.fd +File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +(/usr/local/texlive/2018/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count170 +\scratchdimen=\dimen265 +\scratchbox=\box47 +\nofMPsegments=\count171 +\nofMParguments=\count172 +\everyMPshowfont=\toks55 +\MPscratchCnt=\count173 +\MPscratchDim=\dimen266 +\MPnumerator=\count174 +\makeMPintoPDFobject=\count175 +\everyMPtoPDFconversion=\toks56 +) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +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 456. + +(/usr/local/texlive/2018/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 +)) +\c@lstlisting=\count176 +Package lastpage Info: Please have a look at the pageslts package at +(lastpage) https://www.ctan.org/pkg/pageslts +(lastpage) ! on input line 76. +\AtBeginShipoutBox=\box48 +Package hyperref Info: Link coloring ON on input line 76. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section + +(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO) +) +\c@section@level=\count177 +) +LaTeX Info: Redefining \ref on input line 76. +LaTeX Info: Redefining \pageref on input line 76. +LaTeX Info: Redefining \nameref on input line 76. + +(./etnms.out) (./etnms.out) +\@outlinefile=\write5 +\openout5 = `etnms.out'. + +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: subfig package v1.3 is loaded. +Package caption Info: rotating package is loaded. +Package caption Info: End \AtBeginDocument code. + ABD: EveryShipout initializing macros + +Package pgfplots Warning: running in backwards compatibility mode (unsuitable t +ick labels; missing features). Consider writing \pgfplotsset{compat=1.16} into +your preamble. + on input line 76. + +LaTeX Font Info: Try loading font information for T1+lmss on input line 78. +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmss.fd +File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OT1+lmr on input line 78. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/ot1lmr.fd +File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OML+lmm on input line 78. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/omllmm.fd +File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OMS+lmsy on input line 78. + + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/omslmsy.fd +File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OMX+lmex on input line 78. + + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/omxlmex.fd +File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <10> on input line 78. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <7> on input line 78. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <5> on input line 78. +LaTeX Font Info: Try loading font information for U+msa on input line 78. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Try loading font information for U+msb on input line 78. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) +LaTeX Font Info: Try loading font information for T1+lmtt on input line 78. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmtt.fd +File: t1lmtt.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Font shape `T1/lmtt/bx/n' in size <9.5> not available +(Font) Font shape `T1/lmtt/b/n' tried instead on input line 78. +\openout3 = `etnms.vtc'. + +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <9> on input line 112. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <6> on input line 112. + +Underfull \hbox (badness 10000) in paragraph at lines 136--138 + + [] + + +File: cc-by.pdf Graphic file (type pdf) + +Package pdftex.def Info: cc-by.pdf used on input line 156. +(pdftex.def) Requested size: 39.74274pt x 14.0pt. +LaTeX Font Info: Try loading font information for TS1+lmr on input line 156. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/ts1lmr.fd +File: ts1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) + +File: lipics-logo-bw.pdf Graphic file (type pdf) + +Package pdftex.def Info: lipics-logo-bw.pdf used on input line 156. +(pdftex.def) Requested size: 64.00354pt x 14.0pt. + [1 + +{/usr/local/texlive/2018/texmf-var/fonts/map/pdftex/updmap/pdftex.map} <./cc-by +.pdf> <./lipics-logo-bw.pdf>] + +LaTeX Warning: Command \textbar invalid in math mode on input line 202. + + +Overfull \hbox (44.9729pt too wide) in paragraph at lines 219--223 +\T1/lmr/m/n/10 By us-ing a prop-erty of re-trieve we have the $[]$ of the above + equal-ity is $\OML/lmm/m/it/10 decode\OT1/lmr/m/n/10 (\OML/lmm/m/it/10 retriev +e\OT1/lmr/m/n/10 (\OML/lmm/m/it/10 r[]\OMS/lmsy/m/n/10 n\OT1/lmr/m/n/10 (\OML/l +mm/m/it/10 s\OT1/lmr/m/n/10 @[\OML/lmm/m/it/10 c\OT1/lmr/m/n/10 ]))\OML/lmm/m/i +t/10 v\OT1/lmr/m/n/10 )\OML/lmm/m/it/10 r$\T1/lmr/m/n/10 , + [] + + +Overfull \hbox (84.166pt too wide) in paragraph at lines 240--255 +\T1/lmr/m/n/10 equal-it-ies, $[] \OML/lmm/m/it/10 a v$ \T1/lmr/m/n/10 is not al +-ways defined. for ex-ample, $[] []\OT1/lmr/m/n/10 (\OML/lmm/m/it/10 Z; []\OT1/ +lmr/m/n/10 (\OML/lmm/m/it/10 S\OT1/lmr/m/n/10 )\OML/lmm/m/it/10 ; []\OT1/lmr/m/ +n/10 (\OML/lmm/m/it/10 S\OT1/lmr/m/n/10 )) []([])$ + [] + +[2] +Underfull \hbox (badness 10000) in paragraph at lines 265--271 + + [] + + +Overfull \hbox (67.75871pt too wide) in paragraph at lines 275--290 +[]\T1/lmr/m/n/10 we used re-trieve for the key in-duc-tion: $\OML/lmm/m/it/10 d +ecode\OT1/lmr/m/n/10 (\OML/lmm/m/it/10 retrieve\OT1/lmr/m/n/10 (\OML/lmm/m/it/1 +0 r\OMS/lmsy/m/n/10 n\OT1/lmr/m/n/10 (\OML/lmm/m/it/10 s\OT1/lmr/m/n/10 @[\OML/ +lmm/m/it/10 c\OT1/lmr/m/n/10 ]))\OML/lmm/m/it/10 v\OT1/lmr/m/n/10 )\OML/lmm/m/i +t/10 r$ $decode\OT1/lmr/m/n/10 (\OML/lmm/m/it/10 retrieve\OT1/lmr/m/n/10 (\OML/ +lmm/m/it/10 r\OMS/lmsy/m/n/10 n\OML/lmm/m/it/10 s\OT1/lmr/m/n/10 )(\OML/lmm/m/i +t/10 inj\OT1/lmr/m/n/10 (\OML/lmm/m/it/10 r\OMS/lmsy/m/n/10 n\OML/lmm/m/it/10 s +\OT1/lmr/m/n/10 )\OML/lmm/m/it/10 cv\OT1/lmr/m/n/10 ))\OML/lmm/m/it/10 r$ + [] + +[3] +Underfull \hbox (badness 10000) in paragraph at lines 400--403 + + [] + +PGFPlots: reading {re-js.data} +PGFPlots: reading {re-python2.data} +PGFPlots: reading {re-java.data} + +Overfull \hbox (2.08597pt too wide) in paragraph at lines 427--493 + [] + [] + + +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [4] +LaTeX Font Info: Calculating math sizes for size <8.5> on input line 516. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <8.5> on input line 516. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <5.94997> on input line 516. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <4.25> on input line 516. + +[5] [6] [7] [8] + +Package amsfonts Warning: Obsolete command \bold; \mathbf should be used instea +d on input line 884. + +[9] [10] [11] [12] [13] [14] [15] [16] [17] +PGFPlots: reading {bad-scala.data} +PGFPlots: reading {good-java.data} + [18] (./etnms.bbl +LaTeX Font Info: Calculating math sizes for size <9.5> on input line 38. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <9.5> on input line 38. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <6.64996> on input line 38. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <4.75> on input line 38. + [19]) + +AED: lastpage setting LastPage +[20] +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 1701. +Package atveryend Info: Empty hook `AfterLastShipout' on input line 1701. + (./etnms.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 1701. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 1701. + +Package rerunfilecheck Info: File `etnms.out' has not changed. +(rerunfilecheck) Checksum: 43E8D84961F15C811B4165A2AF60EF5A;395. +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 1701. + ) +Here is how much of TeX's memory you used: + 32731 strings out of 492649 + 760798 string characters out of 6129623 + 948443 words of memory out of 5000000 + 35948 multiletter control sequences out of 15000+600000 + 218552 words of font info for 126 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 69i,24n,107p,719b,2460s stack positions out of 5000i,500n,10000p,200000b,80000s +{/usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-ec.enc}{/usr/local/ +texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-rm.enc}{/usr/local/texlive/2018/t +exmf-dist/fonts/enc/dvips/lm/lm-mathit.enc}{/usr/local/texlive/2018/texmf-dist/ +fonts/enc/dvips/lm/lm-mathex.enc}{/usr/local/texlive/2018/texmf-dist/fonts/enc/ +dvips/lm/lm-ts1.enc}{/usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-m +athsy.enc} +< +/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmtk10.pfb> +Output written on etnms.pdf (20 pages, 555273 bytes). +PDF statistics: + 317 PDF objects out of 1000 (max. 8388607) + 258 compressed objects within 3 object streams + 42 named destinations out of 1000 (max. 500000) + 77 words of extra memory for PDF output out of 10000 (max. 10000000) + diff -r d486c12deeab -r 2e2dca212fff etnms/etnms.out --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/etnms.out Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,6 @@ +\BOOKMARK [1][-]{section.1}{Introduction}{}% 1 +\BOOKMARK [1][-]{section.2}{The Algorithm by Brzozowski based on Derivatives of Regular Expressions}{}% 2 +\BOOKMARK [1][-]{section.3}{Values and the Algorithm by Sulzmann and Lu}{}% 3 +\BOOKMARK [1][-]{section.4}{Simplification of Regular Expressions}{}% 4 +\BOOKMARK [1][-]{section.5}{Current Work}{}% 5 +\BOOKMARK [1][-]{section.6}{Conclusion}{}% 6 diff -r d486c12deeab -r 2e2dca212fff etnms/etnms.pdf Binary file etnms/etnms.pdf has changed diff -r d486c12deeab -r 2e2dca212fff etnms/etnms.synctex.gz Binary file etnms/etnms.synctex.gz has changed diff -r d486c12deeab -r 2e2dca212fff etnms/etnms.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/etnms.tex Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,1702 @@ +\documentclass[a4paper,UKenglish]{lipics} +\usepackage{graphic} +\usepackage{data} +\usepackage{tikz-cd} +%\usepackage{algorithm} +\usepackage{amsmath} +\usepackage[noend]{algpseudocode} +\usepackage{enumitem} +\usepackage{nccmath} + +\definecolor{darkblue}{rgb}{0,0,0.6} +\hypersetup{colorlinks=true,allcolors=darkblue} +\newcommand{\comment}[1]% +{{\color{red}$\Rightarrow$}\marginpar{\raggedright\small{\bf\color{red}#1}}} + +% \documentclass{article} +%\usepackage[utf8]{inputenc} +%\usepackage[english]{babel} +%\usepackage{listings} +% \usepackage{amsthm} +%\usepackage{hyperref} +% \usepackage[margin=0.5in]{geometry} +%\usepackage{pmboxdraw} + +\title{POSIX Regular Expression Matching and Lexing} +\author{Chengsong Tan} +\affil{King's College London\\ +London, UK\\ +\texttt{chengsong.tan@kcl.ac.uk}} +\authorrunning{Chengsong Tan} +\Copyright{Chengsong Tan} + +\newcommand{\dn}{\stackrel{\mbox{\scriptsize def}}{=}}% +\newcommand{\ZERO}{\mbox{\bf 0}} +\newcommand{\ONE}{\mbox{\bf 1}} +\def\bders{\textit{bders}} +\def\lexer{\mathit{lexer}} +\def\blexer{\textit{blexer}} +\def\blexers{\mathit{blexer\_simp}} +\def\mkeps{\mathit{mkeps}} +\def\bmkeps{\textit{bmkeps}} +\def\inj{\mathit{inj}} +\def\Empty{\mathit{Empty}} +\def\Left{\mathit{Left}} +\def\Right{\mathit{Right}} +\def\Stars{\mathit{Stars}} +\def\Char{\mathit{Char}} +\def\Seq{\mathit{Seq}} +\def\Der{\mathit{Der}} +\def\nullable{\mathit{nullable}} +\def\Z{\mathit{Z}} +\def\S{\mathit{S}} +\def\flex{\textit{flex}} +\def\rup{r^\uparrow} +\def\retrieve{\textit{retrieve}} +\def\AALTS{\textit{AALTS}} +\def\AONE{\textit{AONE}} +%\theoremstyle{theorem} +%\newtheorem{theorem}{Theorem} +%\theoremstyle{lemma} +%\newtheorem{lemma}{Lemma} +%\newcommand{\lemmaautorefname}{Lemma} +%\theoremstyle{definition} +%\newtheorem{definition}{Definition} +\algnewcommand\algorithmicswitch{\textbf{switch}} +\algnewcommand\algorithmiccase{\textbf{case}} +\algnewcommand\algorithmicassert{\texttt{assert}} +\algnewcommand\Assert[1]{\State \algorithmicassert(#1)}% +% New "environments" +\algdef{SE}[SWITCH]{Switch}{EndSwitch}[1]{\algorithmicswitch\ #1\ \algorithmicdo}{\algorithmicend\ \algorithmicswitch}% +\algdef{SE}[CASE]{Case}{EndCase}[1]{\algorithmiccase\ #1}{\algorithmicend\ \algorithmiccase}% +\algtext*{EndSwitch}% +\algtext*{EndCase}% + + +\begin{document} + +\maketitle + +\begin{abstract} + Brzozowski introduced in 1964 a beautifully simple algorithm for + regular expression matching based on the notion of derivatives of + regular expressions. In 2014, Sulzmann and Lu extended this + algorithm to not just give a YES/NO answer for whether or not a + regular expression matches a string, but in case it does also + answers with \emph{how} it matches the string. This is important for + applications such as lexing (tokenising a string). The problem is to + make the algorithm by Sulzmann and Lu fast on all inputs without + breaking its correctness. We have already developed some + simplification rules for this, but have not yet proved that they + preserve the correctness of the algorithm. We also have not yet + looked at extended regular expressions, such as bounded repetitions, + negation and back-references. +\end{abstract} + +\section{Introduction} + + + +\noindent\rule[0.5ex]{\linewidth}{1pt} +Between the 2 bars are the new materials.\\ +In the past 6 months I was trying to prove that the bit-coded algorithm is correct. +\begin{center} +$\blexers \;r \; s = \blexer \; r \; s$ +\end{center} +\noindent +To prove this, we need to prove these two functions produce the same output +whether or not $r \in L(r)$. +Given the definition of $\blexer$ and $\blexers$: +\begin{center} +\begin{tabular}{lcl} + $\textit{blexer}\;r\,s$ & $\dn$ & + $\textit{let}\;a = (r^\uparrow)\backslash s\;\textit{in}$\\ + & & $\;\;\textit{if}\; \textit{bnullable}(a)$\\ + & & $\;\;\textit{then}\;\textit{decode}\,(\textit{bmkeps}\,a)\,r$\\ + & & $\;\;\textit{else}\;\textit{None}$ +\end{tabular} +\end{center} + + \begin{center} +\begin{tabular}{lcl} + $\textit{blexer\_simp}\;r\,s$ & $\dn$ & + $\textit{let}\;a = (r^\uparrow)\backslash_{simp}\, s\;\textit{in}$\\ + & & $\;\;\textit{if}\; \textit{bnullable}(a)$\\ + & & $\;\;\textit{then}\;\textit{decode}\,(\textit{bmkeps}\,a)\,r$\\ + & & $\;\;\textit{else}\;\textit{None}$ +\end{tabular} +\end{center} +\noindent +it boils down to proving the following two propositions(depending on which +branch in the if-else clause is taken): + +\begin{itemize} + +\item{} +When s is a string in the language L(r), \\ +$\textit{bmkeps} (r^\uparrow)\backslash_{simp}\, s = \textit{bmkeps} (r^\uparrow)\backslash s$, \\ +\item{} +when s is not a string of the language L(ar) +ders\_simp(ar, s) is not nullable +\end{itemize} +The second one is relatively straightforward using isabelle to prove. +The first part requires more effort. +It builds on the result that the bit-coded algorithm without simplification +produces the correct result: +\begin{center} +$\blexer \;r^\uparrow s = \lexer \; r\; s$ +\end{center} +\noindent +the definition of lexer and its correctness is +omitted(see \cite{AusafDyckhoffUrban2016}). +if we can prove that the bit-coded algorithm with simplification produces +the same result as the original bit-coded algorithm, +then we are done. +The correctness proof of +\begin{center} +$\blexer \; r^\uparrow s = \lexer \;r \;s$ +\end{center} +\noindent +might provide us insight into proving +\begin{center} +$\blexer \; r^\uparrow \;s = \blexers \; r^\uparrow \;s$ +\end{center} +\noindent +(that is also +why we say the new proof builds on the older one). +The proof defined the function $\flex$ as another way of +expressing the $\lexer$ function: +\begin{center} +$\lexer \;r\; s = \flex \;\textit{id} \; r\;s \;(\mkeps \; r\backslash s)$ +\end{center}. +\noindent +(proof for the above equality will be explained later) +The definition of $flex$ is as follows: +\begin{center} +\begin{tabular}{lcl} +$\textit{flex} \;r\; f\; (c\!::\!s) $ & $\dn$ & $\textit{flex} \; (r\backslash c) \;(\lambda v. f (inj \; r \; c \; v)) \;s$ \\ +$\textit{flex} \;r\; f\; [\,] $ & $\dn$ & $f$ +\end{tabular} +\end{center} +\noindent +here $\flex$ essentially does lexing by +stacking up injection functions while doing derivatives, +explicitly showing the order of characters being +injected back in each step. +With $\flex$ we can write $\lexer$ this way: +\begin{center} +$\lexer \;r\; s = \flex \;id \; r\;s \;(\mkeps r\backslash s)$ +\end{center} +\noindent +$\flex$ focuses on + the injections instead +of the derivatives , +compared +to the original definition of $\lexer$, +which puts equal amount of emphasis on +injection and derivative with respect to each character: +\begin{center} +\begin{tabular}{lcl} +$\textit{lexer} \; r\; (c\!::\!s) $ & $\dn$ & $\textit{case} \; \lexer \; (r\backslash c) \;s \; \textit{of}$ \\ + & & $\textit{None} \; \Longrightarrow \; \textit{None}$\\ + & & $\textbar \; v \; \Longrightarrow \; \inj \; r\;c\;v$\\ +$\textit{lexer} \; r\; [\,] $ & $\dn$ & $\textit{if} \; \nullable (r) \; \textit{then} \; \mkeps (r) \; \textit{else} \;None$ +\end{tabular} +\end{center} +\noindent +Using this feature of $\flex$ we can rewrite the lexing +$w.r.t \; s @ [c]$ in term of lexing +$w.r.t \; s$: +\begin{center} +$\flex \; r \; id \; (s@[c]) \; v = \flex \; r \; id \; s \; (inj \; (r\backslash s) \; c\; v)$. +\end{center} +\noindent +this allows us to use +the inductive hypothesis to get +\begin{center} +$ \flex \; r\; id\; (s@[c])\; v = \textit{decode} \;( \textit{retrieve}\; (\rup \backslash s) \; (\inj \; (r\backslash s) \;c\;v)\;) r$ +\end{center} +\noindent +By using a property of retrieve we have the $\textit{RHS}$ of the above equality is +$decode (retrieve (r^\uparrow \backslash(s @ [c])) v) r$, and this gives the +main lemma result: +\begin{center} +$ \flex \;r\; id \; (s@[c]) \; v =\textit{decode}(\textit{retrieve} (\rup \backslash (s@[c])) \;v) r$ +\end{center} +\noindent +To use this lemma result for our +correctness proof, simply replace the $v$ in the +$\textit{RHS}$ of the above equality with +$\mkeps\;(r\backslash (s@[c]))$, and apply the lemma that + +\begin{center} +$\textit{decode} \; \bmkeps \; \rup \; r = \textit{decode} \; (\textit{retrieve} \; \rup \; \mkeps(r)) \;r$ +\end{center} +\noindent +We get the correctness of our bit-coded algorithm: +\begin{center} +$\flex \;r\; id \; s \; (\mkeps \; r\backslash s) = \textit{decode} \; \bmkeps \; \rup\backslash s \; r$ +\end{center} +\noindent +The bridge between the above chain of equalities +is the use of $\retrieve$, +if we want to use a similar technique for the +simplified version of algorithm, +we face the problem that in the above +equalities, +$\retrieve \; a \; v$ is not always defined. +for example, +$\retrieve \; \AALTS(Z, \AONE(S), \AONE(S)) \; \Left(\Empty)$ +is defined, but not $\retrieve \; \AONE(\Z\S) \; \Left(\Empty)$, +though we can extract the same POSIX +bits from the two annotated regular expressions. +That means, if we +want to prove that +\begin{center} +$\textit{decode} \; \bmkeps \; \rup\backslash s \; r = \textit{decode} \; \bmkeps \; \rup\backslash_{simp} s \; r$ +\end{center} +\noindent +holds by using $\retrieve$, +we probably need to prove an equality like below: +\begin{center} +%$\retrieve \; \rup\backslash_{simp} s \; \mkeps(r\backslash_{simp} s)=\textit{retrieve} \; \rup\backslash s \; \mkeps(r\backslash s)$ +$\retrieve \; \rup\backslash_{simp} s \; \mkeps(r\backslash s)=\textit{retrieve} \; \rup\backslash s \; \mkeps(r\backslash s)$ +\end{center} +\noindent +we would need to rectify the value $\mkeps(r\backslash s)$ into something simpler +to make the retrieve function defined.\\ +%HERE CONSTRUCTION SITE +The vsimp function, defined as follows +tries to simplify the value in lockstep with +regular expression:\\ + + +The problem here is that + +we used retrieve for the key induction: +$decode (retrieve (r\backslash (s @ [c])) v) r $ +$decode (retrieve (r\backslash s) (inj (r\backslash s) c v)) r$ +Here, decode recovers a value that corresponds to a match(possibly partial) +from bits, and the bits are extracted by retrieve, +and the key value $v$ that guides retrieve is +$mkeps r\backslash s$, $inj r c (mkeps r\backslash s)$, $inj (inj (v))$, ...... +if we can +the problem is that +need vsiimp to make a value that is suitable for decoding +$Some(flex rid(s@[c])v) = Some(flex rids(inj (r\backslash s)cv))$ +another way that christian came up with that might circumvent the +prblem of finding suitable value is by not stating the visimp +function but include all possible value in a set that a regex is able to produce, +and proving that both r and sr are able to produce the bits that correspond the POSIX value + +produced by feeding the same initial regular expression $r$ and string $s$ to the + two functions $ders$ and $ders\_simp$. +The reason why +Namely, if $bmkeps( r_1) = bmkeps(r_2)$, then we + + +If we define the equivalence relation $\sim_{m\epsilon}$ between two regular expressions +$r_1$ and $r_2$as follows: +$r_1 \sim_{m\epsilon} r_2 \iff bmkeps(r_1)= bmkeps(r_2)$ +(in other words, they $r1$ and $r2$ produce the same output under the function $bmkeps$.) +Then the first goal +might be restated as +$(r^\uparrow)\backslash_{simp}\, s \sim_{m\epsilon} (r^\uparrow)\backslash s$. +I tried to establish an equivalence relation between the regular experssions +like dddr dddsr,..... +but right now i am only able to establish dsr and dr, using structural induction on r. +Those involve multiple derivative operations are harder to prove. +Two attempts have been made: +(1)induction on the number of der operations(or in other words, the length of the string s), +the inductive hypothesis was initially specified as +"For an arbitrary regular expression r, +For all string s in the language of r whose length do not exceed +the number n, ders s r me derssimp s r" +and the proof goal may be stated as +"For an arbitrary regular expression r, +For all string s in the language of r whose length do not exceed +the number n+1, ders s r me derssimp s r" +the problem here is that although we can easily break down +a string s of length n+1 into s1@list(c), it is not that easy +to use the i.h. as a stepping stone to prove anything because s1 may well be not +in the language L(r). This inhibits us from obtaining the fact that +ders s1 r me derssimps s1 r. +Further exploration is needed to amend this hypothesis so it includes the +situation when s1 is not nullable. +For example, what information(bits? +values?) can be extracted +from the regular expression ders(s1,r) so that we can compute or predict the possible +result of bmkeps after another derivative operation. What function f can used to +carry out the task? The possible way of exploration can be +more directly perceived throught the graph below: +find a function +f +such that +f(bders s1 r) += re1 +f(bderss s1 r) += re2 +bmkeps(bders s r) = g(re1,c) +bmkeps(bderssimp s r) = g(re2,c) +and g(re1,c) = g(re2,c) +The inductive hypothesis would be +"For all strings s1 of length <= n, +f(bders s1 r) += re1 +f(bderss s1 r) += re2" +proving this would be a lemma for the main proof: +the main proof would be +" +bmkeps(bders s r) = g(re1,c) +bmkeps(bderssimp s r) = g(re2,c) +for s = s1@c +" +and f need to be a recursive property for the lemma to be proved: +it needs to store not only the "after one char nullable info", +but also the "after two char nullable info", +and so on so that it is able to predict what f will compute after a derivative operation, +in other words, it needs to be "infinitely recursive"\\ +To prove the lemma, in other words, to get +"For all strings s1 of length <= n+1, +f(bders s1 r) += re3 +f(bderss s1 r) += re4"\\ +from\\ +"For all strings s1 of length <= n, +f(bders s1 r) += re1 +f(bderss s1 r) += re2"\\ +it might be best to construct an auxiliary function h such that\\ +h(re1, c) = re3\\ +h(re2, c) = re4\\ +and re3 = f(bder c (bders s1 r))\\ +re4 = f(simp(bder c (bderss s1 r))) +The key point here is that we are not satisfied with what bders s r will produce under +bmkeps, but also how it will perform after a derivative operation and then bmkeps, and two +derivative operations and so on. In essence, we are preserving the regular expression +itself under the function f, in a less compact way than the regluar expression: we are +not just recording but also interpreting what the regular expression matches. +In other words, we need to prove the properties of bderss s r beyond the bmkeps result, +i.e., not just the nullable ones, but also those containing remaining characters.\\ +(2)we observed the fact that +erase sdddddr= erase sdsdsdsr +that is to say, despite the bits are being moved around on the regular expression +(difference in bits), the structure of the (unannotated)regular expression +after one simplification is exactly the same after the +same sequence of derivative operations +regardless of whether we did simplification +along the way. +However, without erase the above equality does not hold: +for the regular expression +$(a+b)(a+a*)$, +if we do derivative with respect to string $aa$, +we get +%TODO +sdddddr does not equal sdsdsdsr sometimes.\\ +For example, + +This equicalence class method might still have the potential of proving this, +but not yet +i parallelly tried another method of using retrieve\\ + + + +\noindent\rule[0.5ex]{\linewidth}{1pt} + +This PhD-project is about regular expression matching and +lexing. Given the maturity of this topic, the reader might wonder: +Surely, regular expressions must have already been studied to death? +What could possibly be \emph{not} known in this area? And surely all +implemented algorithms for regular expression matching are blindingly +fast? + +Unfortunately these preconceptions are not supported by evidence: Take +for example the regular expression $(a^*)^*\,b$ and ask whether +strings of the form $aa..a$ match this regular +expression. Obviously this is not the case---the expected $b$ in the last +position is missing. One would expect that modern regular expression +matching engines can find this out very quickly. Alas, if one tries +this example in JavaScript, Python or Java 8 with strings like 28 +$a$'s, one discovers that this decision takes around 30 seconds and +takes considerably longer when adding a few more $a$'s, as the graphs +below show: + +\begin{center} +\begin{tabular}{@{}c@{\hspace{0mm}}c@{\hspace{0mm}}c@{}} +\begin{tikzpicture} +\begin{axis}[ + xlabel={$n$}, + x label style={at={(1.05,-0.05)}}, + ylabel={time in secs}, + enlargelimits=false, + xtick={0,5,...,30}, + xmax=33, + ymax=35, + ytick={0,5,...,30}, + scaled ticks=false, + axis lines=left, + width=5cm, + height=4cm, + legend entries={JavaScript}, + legend pos=north west, + legend cell align=left] +\addplot[red,mark=*, mark options={fill=white}] table {re-js.data}; +\end{axis} +\end{tikzpicture} + & +\begin{tikzpicture} +\begin{axis}[ + xlabel={$n$}, + x label style={at={(1.05,-0.05)}}, + %ylabel={time in secs}, + enlargelimits=false, + xtick={0,5,...,30}, + xmax=33, + ymax=35, + ytick={0,5,...,30}, + scaled ticks=false, + axis lines=left, + width=5cm, + height=4cm, + legend entries={Python}, + legend pos=north west, + legend cell align=left] +\addplot[blue,mark=*, mark options={fill=white}] table {re-python2.data}; +\end{axis} +\end{tikzpicture} + & +\begin{tikzpicture} +\begin{axis}[ + xlabel={$n$}, + x label style={at={(1.05,-0.05)}}, + %ylabel={time in secs}, + enlargelimits=false, + xtick={0,5,...,30}, + xmax=33, + ymax=35, + ytick={0,5,...,30}, + scaled ticks=false, + axis lines=left, + width=5cm, + height=4cm, + legend entries={Java 8}, + legend pos=north west, + legend cell align=left] +\addplot[cyan,mark=*, mark options={fill=white}] table {re-java.data}; +\end{axis} +\end{tikzpicture}\\ +\multicolumn{3}{c}{Graphs: Runtime for matching $(a^*)^*\,b$ with strings + of the form $\underbrace{aa..a}_{n}$.} +\end{tabular} +\end{center} + +\noindent These are clearly abysmal and possibly surprising results. One +would expect these systems to do much better than that---after all, +given a DFA and a string, deciding whether a string is matched by this +DFA should be linear in terms of the size of the regular expression and +the string? + +Admittedly, the regular expression $(a^*)^*\,b$ is carefully chosen to +exhibit this super-linear behaviour. But unfortunately, such regular +expressions are not just a few outliers. They are actually +frequent enough to have a separate name created for +them---\emph{evil regular expressions}. In empiric work, Davis et al +report that they have found thousands of such evil regular expressions +in the JavaScript and Python ecosystems \cite{Davis18}. Static analysis +approach that is both sound and complete exists\cite{17Bir}, but the running +time on certain examples in the RegExLib and Snort regular expressions +libraries is unacceptable. Therefore the problem of efficiency still remains. + +This superlinear blowup in matching algorithms sometimes causes +considerable grief in real life: for example on 20 July 2016 one evil +regular expression brought the webpage +\href{http://stackexchange.com}{Stack Exchange} to its +knees.\footnote{\url{https://stackstatus.net/post/147710624694/outage-postmortem-july-20-2016}} +In this instance, a regular expression intended to just trim white +spaces from the beginning and the end of a line actually consumed +massive amounts of CPU-resources---causing web servers to grind to a +halt. This happened when a post with 20,000 white spaces was submitted, +but importantly the white spaces were neither at the beginning nor at +the end. As a result, the regular expression matching engine needed to +backtrack over many choices. In this example, the time needed to process +the string was $O(n^2)$ with respect to the string length. This +quadratic overhead was enough for the homepage of Stack Exchange to +respond so slowly that the load balancer assumed there must be some +attack and therefore stopped the servers from responding to any +requests. This made the whole site become unavailable. Another very +recent example is a global outage of all Cloudflare servers on 2 July +2019. A poorly written regular expression exhibited exponential +behaviour and exhausted CPUs that serve HTTP traffic. Although the +outage had several causes, at the heart was a regular expression that +was used to monitor network +traffic.\footnote{\url{https://blog.cloudflare.com/details-of-the-cloudflare-outage-on-july-2-2019/}} + +The underlying problem is that many ``real life'' regular expression +matching engines do not use DFAs for matching. This is because they +support regular expressions that are not covered by the classical +automata theory, and in this more general setting there are quite a few +research questions still unanswered and fast algorithms still need to be +developed (for example how to treat efficiently bounded repetitions, negation and +back-references). +%question: dfa can have exponential states. isn't this the actual reason why they do not use dfas? +%how do they avoid dfas exponential states if they use them for fast matching? + +There is also another under-researched problem to do with regular +expressions and lexing, i.e.~the process of breaking up strings into +sequences of tokens according to some regular expressions. In this +setting one is not just interested in whether or not a regular +expression matches a string, but also in \emph{how}. Consider for +example a regular expression $r_{key}$ for recognising keywords such as +\textit{if}, \textit{then} and so on; and a regular expression $r_{id}$ +for recognising identifiers (say, a single character followed by +characters or numbers). One can then form the compound regular +expression $(r_{key} + r_{id})^*$ and use it to tokenise strings. But +then how should the string \textit{iffoo} be tokenised? It could be +tokenised as a keyword followed by an identifier, or the entire string +as a single identifier. Similarly, how should the string \textit{if} be +tokenised? Both regular expressions, $r_{key}$ and $r_{id}$, would +``fire''---so is it an identifier or a keyword? While in applications +there is a well-known strategy to decide these questions, called POSIX +matching, only relatively recently precise definitions of what POSIX +matching actually means have been formalised +\cite{AusafDyckhoffUrban2016,OkuiSuzuki2010,Vansummeren2006}. Such a +definition has also been given by Sulzmann and Lu \cite{Sulzmann2014}, +but the corresponding correctness proof turned out to be faulty +\cite{AusafDyckhoffUrban2016}. Roughly, POSIX matching means matching +the longest initial substring. In the case of a tie, the initial +sub-match is chosen according to some priorities attached to the regular +expressions (e.g.~keywords have a higher priority than identifiers). +This sounds rather simple, but according to Grathwohl et al \cite[Page +36]{CrashCourse2014} this is not the case. They wrote: + +\begin{quote} +\it{}``The POSIX strategy is more complicated than the greedy because of +the dependence on information about the length of matched strings in the +various subexpressions.'' +\end{quote} + +\noindent +This is also supported by evidence collected by Kuklewicz +\cite{Kuklewicz} who noticed that a number of POSIX regular expression +matchers calculate incorrect results. + +Our focus in this project is on an algorithm introduced by Sulzmann and +Lu in 2014 for regular expression matching according to the POSIX +strategy \cite{Sulzmann2014}. Their algorithm is based on an older +algorithm by Brzozowski from 1964 where he introduced the notion of +derivatives of regular expressions~\cite{Brzozowski1964}. We shall +briefly explain this algorithm next. + +\section{The Algorithm by Brzozowski based on Derivatives of Regular +Expressions} + +Suppose (basic) regular expressions are given by the following grammar: +\[ r ::= \ZERO \mid \ONE + \mid c + \mid r_1 \cdot r_2 + \mid r_1 + r_2 + \mid r^* +\] + +\noindent +The intended meaning of the constructors is as follows: $\ZERO$ +cannot match any string, $\ONE$ can match the empty string, the +character regular expression $c$ can match the character $c$, and so +on. + +The ingenious contribution by Brzozowski is the notion of +\emph{derivatives} of regular expressions. The idea behind this +notion is as follows: suppose a regular expression $r$ can match a +string of the form $c\!::\! s$ (that is a list of characters starting +with $c$), what does the regular expression look like that can match +just $s$? Brzozowski gave a neat answer to this question. He started +with the definition of $nullable$: +\begin{center} + \begin{tabular}{lcl} + $\nullable(\ZERO)$ & $\dn$ & $\mathit{false}$ \\ + $\nullable(\ONE)$ & $\dn$ & $\mathit{true}$ \\ + $\nullable(c)$ & $\dn$ & $\mathit{false}$ \\ + $\nullable(r_1 + r_2)$ & $\dn$ & $\nullable(r_1) \vee \nullable(r_2)$ \\ + $\nullable(r_1\cdot r_2)$ & $\dn$ & $\nullable(r_1) \wedge \nullable(r_2)$ \\ + $\nullable(r^*)$ & $\dn$ & $\mathit{true}$ \\ + \end{tabular} + \end{center} +This function simply tests whether the empty string is in $L(r)$. +He then defined +the following operation on regular expressions, written +$r\backslash c$ (the derivative of $r$ w.r.t.~the character $c$): + +\begin{center} +\begin{tabular}{lcl} + $\ZERO \backslash c$ & $\dn$ & $\ZERO$\\ + $\ONE \backslash c$ & $\dn$ & $\ZERO$\\ + $d \backslash c$ & $\dn$ & + $\mathit{if} \;c = d\;\mathit{then}\;\ONE\;\mathit{else}\;\ZERO$\\ +$(r_1 + r_2)\backslash c$ & $\dn$ & $r_1 \backslash c \,+\, r_2 \backslash c$\\ +$(r_1 \cdot r_2)\backslash c$ & $\dn$ & $\mathit{if} \, nullable(r_1)$\\ + & & $\mathit{then}\;(r_1\backslash c) \cdot r_2 \,+\, r_2\backslash c$\\ + & & $\mathit{else}\;(r_1\backslash c) \cdot r_2$\\ + $(r^*)\backslash c$ & $\dn$ & $(r\backslash c) \cdot r^*$\\ +\end{tabular} +\end{center} + +%Assuming the classic notion of a +%\emph{language} of a regular expression, written $L(\_)$, t + +\noindent +The main property of the derivative operation is that + +\begin{center} +$c\!::\!s \in L(r)$ holds +if and only if $s \in L(r\backslash c)$. +\end{center} + +\noindent +For us the main advantage is that derivatives can be +straightforwardly implemented in any functional programming language, +and are easily definable and reasoned about in theorem provers---the +definitions just consist of inductive datatypes and simple recursive +functions. Moreover, the notion of derivatives can be easily +generalised to cover extended regular expression constructors such as +the not-regular expression, written $\neg\,r$, or bounded repetitions +(for example $r^{\{n\}}$ and $r^{\{n..m\}}$), which cannot be so +straightforwardly realised within the classic automata approach. +For the moment however, we focus only on the usual basic regular expressions. + + +Now if we want to find out whether a string $s$ matches with a regular +expression $r$, we can build the derivatives of $r$ w.r.t.\ (in succession) +all the characters of the string $s$. Finally, test whether the +resulting regular expression can match the empty string. If yes, then +$r$ matches $s$, and no in the negative case. To implement this idea +we can generalise the derivative operation to strings like this: + +\begin{center} +\begin{tabular}{lcl} +$r \backslash (c\!::\!s) $ & $\dn$ & $(r \backslash c) \backslash s$ \\ +$r \backslash [\,] $ & $\dn$ & $r$ +\end{tabular} +\end{center} + +\noindent +and then define as regular-expression matching algorithm: +\[ +match\;s\;r \;\dn\; nullable(r\backslash s) +\] + +\noindent +This algorithm looks graphically as follows: +\begin{equation}\label{graph:*} +\begin{tikzcd} +r_0 \arrow[r, "\backslash c_0"] & r_1 \arrow[r, "\backslash c_1"] & r_2 \arrow[r, dashed] & r_n \arrow[r,"\textit{nullable}?"] & \;\textrm{YES}/\textrm{NO} +\end{tikzcd} +\end{equation} + +\noindent +where we start with a regular expression $r_0$, build successive +derivatives until we exhaust the string and then use \textit{nullable} +to test whether the result can match the empty string. It can be +relatively easily shown that this matcher is correct (that is given +an $s = c_0...c_{n-1}$ and an $r_0$, it generates YES if and only if $s \in L(r_0)$). + + +\section{Values and the Algorithm by Sulzmann and Lu} + +One limitation of Brzozowski's algorithm is that it only produces a +YES/NO answer for whether a string is being matched by a regular +expression. Sulzmann and Lu~\cite{Sulzmann2014} extended this algorithm +to allow generation of an actual matching, called a \emph{value} or +sometimes also \emph{lexical value}. These values and regular +expressions correspond to each other as illustrated in the following +table: + + +\begin{center} + \begin{tabular}{c@{\hspace{20mm}}c} + \begin{tabular}{@{}rrl@{}} + \multicolumn{3}{@{}l}{\textbf{Regular Expressions}}\medskip\\ + $r$ & $::=$ & $\ZERO$\\ + & $\mid$ & $\ONE$ \\ + & $\mid$ & $c$ \\ + & $\mid$ & $r_1 \cdot r_2$\\ + & $\mid$ & $r_1 + r_2$ \\ + \\ + & $\mid$ & $r^*$ \\ + \end{tabular} + & + \begin{tabular}{@{\hspace{0mm}}rrl@{}} + \multicolumn{3}{@{}l}{\textbf{Values}}\medskip\\ + $v$ & $::=$ & \\ + & & $\Empty$ \\ + & $\mid$ & $\Char(c)$ \\ + & $\mid$ & $\Seq\,v_1\, v_2$\\ + & $\mid$ & $\Left(v)$ \\ + & $\mid$ & $\Right(v)$ \\ + & $\mid$ & $\Stars\,[v_1,\ldots\,v_n]$ \\ + \end{tabular} + \end{tabular} +\end{center} + +\noindent +No value corresponds to $\ZERO$; $\Empty$ corresponds to $\ONE$; +$\Char$ to the character regular expression; $\Seq$ to the sequence +regular expression and so on. The idea of values is to encode a kind of +lexical value for how the sub-parts of a regular expression match the +sub-parts of a string. To see this, suppose a \emph{flatten} operation, +written $|v|$ for values. We can use this function to extract the +underlying string of a value $v$. For example, $|\mathit{Seq} \, +(\textit{Char x}) \, (\textit{Char y})|$ is the string $xy$. Using +flatten, we can describe how values encode lexical values: $\Seq\,v_1\, +v_2$ encodes a tree with two children nodes that tells how the string +$|v_1| @ |v_2|$ matches the regex $r_1 \cdot r_2$ whereby $r_1$ matches +the substring $|v_1|$ and, respectively, $r_2$ matches the substring +$|v_2|$. Exactly how these two are matched is contained in the children +nodes $v_1$ and $v_2$ of parent $\textit{Seq}$. + +To give a concrete example of how values work, consider the string $xy$ +and the regular expression $(x + (y + xy))^*$. We can view this regular +expression as a tree and if the string $xy$ is matched by two Star +``iterations'', then the $x$ is matched by the left-most alternative in +this tree and the $y$ by the right-left alternative. This suggests to +record this matching as + +\begin{center} +$\Stars\,[\Left\,(\Char\,x), \Right(\Left(\Char\,y))]$ +\end{center} + +\noindent +where $\Stars \; [\ldots]$ records all the +iterations; and $\Left$, respectively $\Right$, which +alternative is used. The value for +matching $xy$ in a single ``iteration'', i.e.~the POSIX value, +would look as follows + +\begin{center} +$\Stars\,[\Seq\,(\Char\,x)\,(\Char\,y)]$ +\end{center} + +\noindent +where $\Stars$ has only a single-element list for the single iteration +and $\Seq$ indicates that $xy$ is matched by a sequence regular +expression. + +The contribution of Sulzmann and Lu is an extension of Brzozowski's +algorithm by a second phase (the first phase being building successive +derivatives---see \eqref{graph:*}). In this second phase, a POSIX value +is generated in case the regular expression matches the string. +Pictorially, the Sulzmann and Lu algorithm is as follows: + +\begin{ceqn} +\begin{equation}\label{graph:2} +\begin{tikzcd} +r_0 \arrow[r, "\backslash c_0"] \arrow[d] & r_1 \arrow[r, "\backslash c_1"] \arrow[d] & r_2 \arrow[r, dashed] \arrow[d] & r_n \arrow[d, "mkeps" description] \\ +v_0 & v_1 \arrow[l,"inj_{r_0} c_0"] & v_2 \arrow[l, "inj_{r_1} c_1"] & v_n \arrow[l, dashed] +\end{tikzcd} +\end{equation} +\end{ceqn} + +\noindent +For convenience, we shall employ the following notations: the regular +expression we start with is $r_0$, and the given string $s$ is composed +of characters $c_0 c_1 \ldots c_{n-1}$. In the first phase from the +left to right, we build the derivatives $r_1$, $r_2$, \ldots according +to the characters $c_0$, $c_1$ until we exhaust the string and obtain +the derivative $r_n$. We test whether this derivative is +$\textit{nullable}$ or not. If not, we know the string does not match +$r$ and no value needs to be generated. If yes, we start building the +values incrementally by \emph{injecting} back the characters into the +earlier values $v_n, \ldots, v_0$. This is the second phase of the +algorithm from the right to left. For the first value $v_n$, we call the +function $\textit{mkeps}$, which builds the lexical value +for how the empty string has been matched by the (nullable) regular +expression $r_n$. This function is defined as + + \begin{center} + \begin{tabular}{lcl} + $\mkeps(\ONE)$ & $\dn$ & $\Empty$ \\ + $\mkeps(r_{1}+r_{2})$ & $\dn$ + & \textit{if} $\nullable(r_{1})$\\ + & & \textit{then} $\Left(\mkeps(r_{1}))$\\ + & & \textit{else} $\Right(\mkeps(r_{2}))$\\ + $\mkeps(r_1\cdot r_2)$ & $\dn$ & $\Seq\,(\mkeps\,r_1)\,(\mkeps\,r_2)$\\ + $mkeps(r^*)$ & $\dn$ & $\Stars\,[]$ + \end{tabular} + \end{center} + + +\noindent There are no cases for $\ZERO$ and $c$, since +these regular expression cannot match the empty string. Note +also that in case of alternatives we give preference to the +regular expression on the left-hand side. This will become +important later on about what value is calculated. + +After the $\mkeps$-call, we inject back the characters one by one in order to build +the lexical value $v_i$ for how the regex $r_i$ matches the string $s_i$ +($s_i = c_i \ldots c_{n-1}$ ) from the previous lexical value $v_{i+1}$. +After injecting back $n$ characters, we get the lexical value for how $r_0$ +matches $s$. For this Sulzmann and Lu defined a function that reverses +the ``chopping off'' of characters during the derivative phase. The +corresponding function is called \emph{injection}, written +$\textit{inj}$; it takes three arguments: the first one is a regular +expression ${r_{i-1}}$, before the character is chopped off, the second +is a character ${c_{i-1}}$, the character we want to inject and the +third argument is the value ${v_i}$, into which one wants to inject the +character (it corresponds to the regular expression after the character +has been chopped off). The result of this function is a new value. The +definition of $\textit{inj}$ is as follows: + +\begin{center} +\begin{tabular}{l@{\hspace{1mm}}c@{\hspace{1mm}}l} + $\textit{inj}\,(c)\,c\,Empty$ & $\dn$ & $Char\,c$\\ + $\textit{inj}\,(r_1 + r_2)\,c\,\Left(v)$ & $\dn$ & $\Left(\textit{inj}\,r_1\,c\,v)$\\ + $\textit{inj}\,(r_1 + r_2)\,c\,Right(v)$ & $\dn$ & $Right(\textit{inj}\,r_2\,c\,v)$\\ + $\textit{inj}\,(r_1 \cdot r_2)\,c\,Seq(v_1,v_2)$ & $\dn$ & $Seq(\textit{inj}\,r_1\,c\,v_1,v_2)$\\ + $\textit{inj}\,(r_1 \cdot r_2)\,c\,\Left(Seq(v_1,v_2))$ & $\dn$ & $Seq(\textit{inj}\,r_1\,c\,v_1,v_2)$\\ + $\textit{inj}\,(r_1 \cdot r_2)\,c\,Right(v)$ & $\dn$ & $Seq(\textit{mkeps}(r_1),\textit{inj}\,r_2\,c\,v)$\\ + $\textit{inj}\,(r^*)\,c\,Seq(v,Stars\,vs)$ & $\dn$ & $Stars((\textit{inj}\,r\,c\,v)\,::\,vs)$\\ +\end{tabular} +\end{center} + +\noindent This definition is by recursion on the ``shape'' of regular +expressions and values. To understands this definition better consider +the situation when we build the derivative on regular expression $r_{i-1}$. +For this we chop off a character from $r_{i-1}$ to form $r_i$. This leaves a +``hole'' in $r_i$ and its corresponding value $v_i$. +To calculate $v_{i-1}$, we need to +locate where that hole is and fill it. +We can find this location by +comparing $r_{i-1}$ and $v_i$. For instance, if $r_{i-1}$ is of shape +$r_a \cdot r_b$, and $v_i$ is of shape $\Left(Seq(v_1,v_2))$, we know immediately that +% +\[ (r_a \cdot r_b)\backslash c = (r_a\backslash c) \cdot r_b \,+\, r_b\backslash c,\] + +\noindent +otherwise if $r_a$ is not nullable, +\[ (r_a \cdot r_b)\backslash c = (r_a\backslash c) \cdot r_b,\] + +\noindent +the value $v_i$ should be $\Seq(\ldots)$, contradicting the fact that +$v_i$ is actually of shape $\Left(\ldots)$. Furthermore, since $v_i$ is of shape +$\Left(\ldots)$ instead of $\Right(\ldots)$, we know that the left +branch of \[ (r_a \cdot r_b)\backslash c = +\bold{\underline{ (r_a\backslash c) \cdot r_b} }\,+\, r_b\backslash c,\](underlined) + is taken instead of the right one. This means $c$ is chopped off +from $r_a$ rather than $r_b$. +We have therefore found out +that the hole will be on $r_a$. So we recursively call $\inj\, +r_a\,c\,v_a$ to fill that hole in $v_a$. After injection, the value +$v_i$ for $r_i = r_a \cdot r_b$ should be $\Seq\,(\inj\,r_a\,c\,v_a)\,v_b$. +Other clauses can be understood in a similar way. + +%\comment{Other word: insight?} +The following example gives an insight of $\textit{inj}$'s effect and +how Sulzmann and Lu's algorithm works as a whole. Suppose we have a +regular expression $((((a+b)+ab)+c)+abc)^*$, and want to match it +against the string $abc$ (when $abc$ is written as a regular expression, +the standard way of expressing it is $a \cdot (b \cdot c)$. But we +usually omit the parentheses and dots here for better readability. This +algorithm returns a POSIX value, which means it will produce the longest +matching. Consequently, it matches the string $abc$ in one star +iteration, using the longest alternative $abc$ in the sub-expression (we shall use $r$ to denote this +sub-expression for conciseness): + +\[((((a+b)+ab)+c)+\underbrace{abc}_r)\] + +\noindent +Before $\textit{inj}$ is called, our lexer first builds derivative using +string $abc$ (we simplified some regular expressions like $\ZERO \cdot +b$ to $\ZERO$ for conciseness; we also omit parentheses if they are +clear from the context): + +%Similarly, we allow +%$\textit{ALT}$ to take a list of regular expressions as an argument +%instead of just 2 operands to reduce the nested depth of +%$\textit{ALT}$ + +\begin{center} +\begin{tabular}{lcl} +$r^*$ & $\xrightarrow{\backslash a}$ & $r_1 = (\ONE+\ZERO+\ONE \cdot b + \ZERO + \ONE \cdot b \cdot c) \cdot r^*$\\ + & $\xrightarrow{\backslash b}$ & $r_2 = (\ZERO+\ZERO+\ONE \cdot \ONE + \ZERO + \ONE \cdot \ONE \cdot c) \cdot r^* +(\ZERO+\ONE+\ZERO + \ZERO + \ZERO) \cdot r^*$\\ + & $\xrightarrow{\backslash c}$ & $r_3 = ((\ZERO+\ZERO+\ZERO + \ZERO + \ONE \cdot \ONE \cdot \ONE) \cdot r^* + (\ZERO+\ZERO+\ZERO + \ONE + \ZERO) \cdot r^*) + $\\ + & & $\phantom{r_3 = (} ((\ZERO+\ONE+\ZERO + \ZERO + \ZERO) \cdot r^* + (\ZERO+\ZERO+\ZERO + \ONE + \ZERO) \cdot r^* )$ +\end{tabular} +\end{center} + +\noindent +In case $r_3$ is nullable, we can call $\textit{mkeps}$ +to construct a lexical value for how $r_3$ matched the string $abc$. +This function gives the following value $v_3$: + + +\begin{center} +$\Left(\Left(\Seq(\Right(\Seq(\Empty, \Seq(\Empty,\Empty))), \Stars [])))$ +\end{center} +The outer $\Left(\Left(\ldots))$ tells us the leftmost nullable part of $r_3$(underlined): + +\begin{center} + \begin{tabular}{l@{\hspace{2mm}}l} + & $\big(\underline{(\ZERO+\ZERO+\ZERO+ \ZERO+ \ONE \cdot \ONE \cdot \ONE) \cdot r^*} + \;+\; (\ZERO+\ZERO+\ZERO + \ONE + \ZERO) \cdot r^*\big)$ \smallskip\\ + $+$ & $\big((\ZERO+\ONE+\ZERO + \ZERO + \ZERO) \cdot r^* + \;+\; (\ZERO+\ZERO+\ZERO + \ONE + \ZERO) \cdot r^* \big)$ + \end{tabular} + \end{center} + +\noindent + Note that the leftmost location of term $(\ZERO+\ZERO+\ZERO + \ZERO + \ONE \cdot \ONE \cdot + \ONE) \cdot r^*$ (which corresponds to the initial sub-match $abc$) allows + $\textit{mkeps}$ to pick it up because $\textit{mkeps}$ is defined to always choose the + left one when it is nullable. In the case of this example, $abc$ is + preferred over $a$ or $ab$. This $\Left(\Left(\ldots))$ location is + generated by two applications of the splitting clause + +\begin{center} + $(r_1 \cdot r_2)\backslash c \;\;(when \; r_1 \; nullable) \, = (r_1\backslash c) \cdot r_2 \,+\, r_2\backslash c.$ +\end{center} + +\noindent +By this clause, we put $r_1 \backslash c \cdot r_2 $ at the +$\textit{front}$ and $r_2 \backslash c$ at the $\textit{back}$. This +allows $\textit{mkeps}$ to always pick up among two matches the one with a longer +initial sub-match. Removing the outside $\Left(\Left(...))$, the inside +sub-value + +\begin{center} + $\Seq(\Right(\Seq(\Empty, \Seq(\Empty, \Empty))), \Stars [])$ +\end{center} + +\noindent +tells us how the empty string $[]$ is matched with $(\ZERO+\ZERO+\ZERO + \ZERO + \ONE \cdot +\ONE \cdot \ONE) \cdot r^*$. We match $[]$ by a sequence of two nullable regular +expressions. The first one is an alternative, we take the rightmost +alternative---whose language contains the empty string. The second +nullable regular expression is a Kleene star. $\Stars$ tells us how it +generates the nullable regular expression: by 0 iterations to form +$\ONE$. Now $\textit{inj}$ injects characters back and incrementally +builds a lexical value based on $v_3$. Using the value $v_3$, the character +c, and the regular expression $r_2$, we can recover how $r_2$ matched +the string $[c]$ : $\textit{inj} \; r_2 \; c \; v_3$ gives us + \begin{center} + $v_2 = \Left(\Seq(\Right(\Seq(\Empty, \Seq(\Empty, c))), \Stars [])),$ + \end{center} +which tells us how $r_2$ matched $[c]$. After this we inject back the character $b$, and get +\begin{center} +$v_1 = \Seq(\Right(\Seq(\Empty, \Seq(b, c))), \Stars [])$ +\end{center} + for how + \begin{center} + $r_1= (\ONE+\ZERO+\ONE \cdot b + \ZERO + \ONE \cdot b \cdot c) \cdot r*$ + \end{center} + matched the string $bc$ before it split into two substrings. + Finally, after injecting character $a$ back to $v_1$, + we get the lexical value tree + \begin{center} + $v_0= \Stars [\Right(\Seq(a, \Seq(b, c)))]$ + \end{center} + for how $r$ matched $abc$. This completes the algorithm. + +%We omit the details of injection function, which is provided by Sulzmann and Lu's paper \cite{Sulzmann2014}. +Readers might have noticed that the lexical value information is actually +already available when doing derivatives. For example, immediately after +the operation $\backslash a$ we know that if we want to match a string +that starts with $a$, we can either take the initial match to be + + \begin{center} +\begin{enumerate} + \item[1)] just $a$ or + \item[2)] string $ab$ or + \item[3)] string $abc$. +\end{enumerate} +\end{center} + +\noindent +In order to differentiate between these choices, we just need to +remember their positions---$a$ is on the left, $ab$ is in the middle , +and $abc$ is on the right. Which of these alternatives is chosen +later does not affect their relative position because the algorithm does +not change this order. If this parsing information can be determined and +does not change because of later derivatives, there is no point in +traversing this information twice. This leads to an optimisation---if we +store the information for lexical values inside the regular expression, +update it when we do derivative on them, and collect the information +when finished with derivatives and call $\textit{mkeps}$ for deciding which +branch is POSIX, we can generate the lexical value in one pass, instead of +doing the rest $n$ injections. This leads to Sulzmann and Lu's novel +idea of using bitcodes in derivatives. + +In the next section, we shall focus on the bitcoded algorithm and the +process of simplification of regular expressions. This is needed in +order to obtain \emph{fast} versions of the Brzozowski's, and Sulzmann +and Lu's algorithms. This is where the PhD-project aims to advance the +state-of-the-art. + + +\section{Simplification of Regular Expressions} + +Using bitcodes to guide parsing is not a novel idea. It was applied to +context free grammars and then adapted by Henglein and Nielson for +efficient regular expression lexing using DFAs~\cite{nielson11bcre}. +Sulzmann and Lu took this idea of bitcodes a step further by integrating +bitcodes into derivatives. The reason why we want to use bitcodes in +this project is that we want to introduce more aggressive simplification +rules in order to keep the size of derivatives small throughout. This is +because the main drawback of building successive derivatives according +to Brzozowski's definition is that they can grow very quickly in size. +This is mainly due to the fact that the derivative operation generates +often ``useless'' $\ZERO$s and $\ONE$s in derivatives. As a result, if +implemented naively both algorithms by Brzozowski and by Sulzmann and Lu +are excruciatingly slow. For example when starting with the regular +expression $(a + aa)^*$ and building 12 successive derivatives +w.r.t.~the character $a$, one obtains a derivative regular expression +with more than 8000 nodes (when viewed as a tree). Operations like +$\textit{der}$ and $\nullable$ need to traverse such trees and +consequently the bigger the size of the derivative the slower the +algorithm. + +Fortunately, one can simplify regular expressions after each derivative +step. Various simplifications of regular expressions are possible, such +as the simplification of $\ZERO + r$, $r + \ZERO$, $\ONE\cdot r$, $r +\cdot \ONE$, and $r + r$ to just $r$. These simplifications do not +affect the answer for whether a regular expression matches a string or +not, but fortunately also do not affect the POSIX strategy of how +regular expressions match strings---although the latter is much harder +to establish. Some initial results in this regard have been +obtained in \cite{AusafDyckhoffUrban2016}. + +Unfortunately, the simplification rules outlined above are not +sufficient to prevent a size explosion in all cases. We +believe a tighter bound can be achieved that prevents an explosion in +\emph{all} cases. Such a tighter bound is suggested by work of Antimirov who +proved that (partial) derivatives can be bound by the number of +characters contained in the initial regular expression +\cite{Antimirov95}. He defined the \emph{partial derivatives} of regular +expressions as follows: + +\begin{center} +\begin{tabular}{lcl} + $\textit{pder} \; c \; \ZERO$ & $\dn$ & $\emptyset$\\ + $\textit{pder} \; c \; \ONE$ & $\dn$ & $\emptyset$ \\ + $\textit{pder} \; c \; d$ & $\dn$ & $\textit{if} \; c \,=\, d \; \{ \ONE \} \; \textit{else} \; \emptyset$ \\ + $\textit{pder} \; c \; r_1+r_2$ & $\dn$ & $pder \; c \; r_1 \cup pder \; c \; r_2$ \\ + $\textit{pder} \; c \; r_1 \cdot r_2$ & $\dn$ & $\textit{if} \; nullable \; r_1 $\\ + & & $\textit{then} \; \{ r \cdot r_2 \mid r \in pder \; c \; r_1 \} \cup pder \; c \; r_2 \;$\\ + & & $\textit{else} \; \{ r \cdot r_2 \mid r \in pder \; c \; r_1 \} $ \\ + $\textit{pder} \; c \; r^*$ & $\dn$ & $ \{ r' \cdot r^* \mid r' \in pder \; c \; r \} $ \\ + \end{tabular} + \end{center} + +\noindent +A partial derivative of a regular expression $r$ is essentially a set of +regular expressions that are either $r$'s children expressions or a +concatenation of them. Antimirov has proved a tight bound of the sum of +the size of \emph{all} partial derivatives no matter what the string +looks like. Roughly speaking the size sum will be at most cubic in the +size of the regular expression. + +If we want the size of derivatives in Sulzmann and Lu's algorithm to +stay below this bound, we would need more aggressive simplifications. +Essentially we need to delete useless $\ZERO$s and $\ONE$s, as well as +deleting duplicates whenever possible. For example, the parentheses in +$(a+b) \cdot c + bc$ can be opened up to get $a\cdot c + b \cdot c + b +\cdot c$, and then simplified to just $a \cdot c + b \cdot c$. Another +example is simplifying $(a^*+a) + (a^*+ \ONE) + (a +\ONE)$ to just +$a^*+a+\ONE$. Adding these more aggressive simplification rules helps us +to achieve the same size bound as that of the partial derivatives. + +In order to implement the idea of ``spilling out alternatives'' and to +make them compatible with the $\text{inj}$-mechanism, we use +\emph{bitcodes}. Bits and bitcodes (lists of bits) are just: + +%This allows us to prove a tight +%bound on the size of regular expression during the running time of the +%algorithm if we can establish the connection between our simplification +%rules and partial derivatives. + + %We believe, and have generated test +%data, that a similar bound can be obtained for the derivatives in +%Sulzmann and Lu's algorithm. Let us give some details about this next. + + +\begin{center} + $b ::= S \mid Z \qquad +bs ::= [] \mid b:bs +$ +\end{center} + +\noindent +The $S$ and $Z$ are arbitrary names for the bits in order to avoid +confusion with the regular expressions $\ZERO$ and $\ONE$. Bitcodes (or +bit-lists) can be used to encode values (or incomplete values) in a +compact form. This can be straightforwardly seen in the following +coding function from values to bitcodes: + +\begin{center} +\begin{tabular}{lcl} + $\textit{code}(\Empty)$ & $\dn$ & $[]$\\ + $\textit{code}(\Char\,c)$ & $\dn$ & $[]$\\ + $\textit{code}(\Left\,v)$ & $\dn$ & $\Z :: code(v)$\\ + $\textit{code}(\Right\,v)$ & $\dn$ & $\S :: code(v)$\\ + $\textit{code}(\Seq\,v_1\,v_2)$ & $\dn$ & $code(v_1) \,@\, code(v_2)$\\ + $\textit{code}(\Stars\,[])$ & $\dn$ & $[\Z]$\\ + $\textit{code}(\Stars\,(v\!::\!vs))$ & $\dn$ & $\S :: code(v) \;@\; + code(\Stars\,vs)$ +\end{tabular} +\end{center} + +\noindent +Here $\textit{code}$ encodes a value into a bitcodes by converting +$\Left$ into $\Z$, $\Right$ into $\S$, the start point of a non-empty +star iteration into $\S$, and the border where a local star terminates +into $\Z$. This coding is lossy, as it throws away the information about +characters, and also does not encode the ``boundary'' between two +sequence values. Moreover, with only the bitcode we cannot even tell +whether the $\S$s and $\Z$s are for $\Left/\Right$ or $\Stars$. The +reason for choosing this compact way of storing information is that the +relatively small size of bits can be easily manipulated and ``moved +around'' in a regular expression. In order to recover values, we will +need the corresponding regular expression as an extra information. This +means the decoding function is defined as: + + +%\begin{definition}[Bitdecoding of Values]\mbox{} +\begin{center} +\begin{tabular}{@{}l@{\hspace{1mm}}c@{\hspace{1mm}}l@{}} + $\textit{decode}'\,bs\,(\ONE)$ & $\dn$ & $(\Empty, bs)$\\ + $\textit{decode}'\,bs\,(c)$ & $\dn$ & $(\Char\,c, bs)$\\ + $\textit{decode}'\,(\Z\!::\!bs)\;(r_1 + r_2)$ & $\dn$ & + $\textit{let}\,(v, bs_1) = \textit{decode}'\,bs\,r_1\;\textit{in}\; + (\Left\,v, bs_1)$\\ + $\textit{decode}'\,(\S\!::\!bs)\;(r_1 + r_2)$ & $\dn$ & + $\textit{let}\,(v, bs_1) = \textit{decode}'\,bs\,r_2\;\textit{in}\; + (\Right\,v, bs_1)$\\ + $\textit{decode}'\,bs\;(r_1\cdot r_2)$ & $\dn$ & + $\textit{let}\,(v_1, bs_1) = \textit{decode}'\,bs\,r_1\;\textit{in}$\\ + & & $\textit{let}\,(v_2, bs_2) = \textit{decode}'\,bs_1\,r_2$\\ + & & \hspace{35mm}$\textit{in}\;(\Seq\,v_1\,v_2, bs_2)$\\ + $\textit{decode}'\,(\Z\!::\!bs)\,(r^*)$ & $\dn$ & $(\Stars\,[], bs)$\\ + $\textit{decode}'\,(\S\!::\!bs)\,(r^*)$ & $\dn$ & + $\textit{let}\,(v, bs_1) = \textit{decode}'\,bs\,r\;\textit{in}$\\ + & & $\textit{let}\,(\Stars\,vs, bs_2) = \textit{decode}'\,bs_1\,r^*$\\ + & & \hspace{35mm}$\textit{in}\;(\Stars\,v\!::\!vs, bs_2)$\bigskip\\ + + $\textit{decode}\,bs\,r$ & $\dn$ & + $\textit{let}\,(v, bs') = \textit{decode}'\,bs\,r\;\textit{in}$\\ + & & $\textit{if}\;bs' = []\;\textit{then}\;\textit{Some}\,v\; + \textit{else}\;\textit{None}$ +\end{tabular} +\end{center} +%\end{definition} + +Sulzmann and Lu's integrated the bitcodes into regular expressions to +create annotated regular expressions \cite{Sulzmann2014}. +\emph{Annotated regular expressions} are defined by the following +grammar:%\comment{ALTS should have an $as$ in the definitions, not just $a_1$ and $a_2$} + +\begin{center} +\begin{tabular}{lcl} + $\textit{a}$ & $::=$ & $\textit{ZERO}$\\ + & $\mid$ & $\textit{ONE}\;\;bs$\\ + & $\mid$ & $\textit{CHAR}\;\;bs\,c$\\ + & $\mid$ & $\textit{ALTS}\;\;bs\,as$\\ + & $\mid$ & $\textit{SEQ}\;\;bs\,a_1\,a_2$\\ + & $\mid$ & $\textit{STAR}\;\;bs\,a$ +\end{tabular} +\end{center} +%(in \textit{ALTS}) + +\noindent +where $bs$ stands for bitcodes, $a$ for $\bold{a}$nnotated regular +expressions and $as$ for a list of annotated regular expressions. +The alternative constructor($\textit{ALTS}$) has been generalized to +accept a list of annotated regular expressions rather than just 2. +We will show that these bitcodes encode information about +the (POSIX) value that should be generated by the Sulzmann and Lu +algorithm. + + +To do lexing using annotated regular expressions, we shall first +transform the usual (un-annotated) regular expressions into annotated +regular expressions. This operation is called \emph{internalisation} and +defined as follows: + +%\begin{definition} +\begin{center} +\begin{tabular}{lcl} + $(\ZERO)^\uparrow$ & $\dn$ & $\textit{ZERO}$\\ + $(\ONE)^\uparrow$ & $\dn$ & $\textit{ONE}\,[]$\\ + $(c)^\uparrow$ & $\dn$ & $\textit{CHAR}\,[]\,c$\\ + $(r_1 + r_2)^\uparrow$ & $\dn$ & + $\textit{ALTS}\;[]\,List((\textit{fuse}\,[\Z]\,r_1^\uparrow),\, + (\textit{fuse}\,[\S]\,r_2^\uparrow))$\\ + $(r_1\cdot r_2)^\uparrow$ & $\dn$ & + $\textit{SEQ}\;[]\,r_1^\uparrow\,r_2^\uparrow$\\ + $(r^*)^\uparrow$ & $\dn$ & + $\textit{STAR}\;[]\,r^\uparrow$\\ +\end{tabular} +\end{center} +%\end{definition} + +\noindent +We use up arrows here to indicate that the basic un-annotated regular +expressions are ``lifted up'' into something slightly more complex. In the +fourth clause, $\textit{fuse}$ is an auxiliary function that helps to +attach bits to the front of an annotated regular expression. Its +definition is as follows: + +\begin{center} +\begin{tabular}{lcl} + $\textit{fuse}\;bs\,(\textit{ZERO})$ & $\dn$ & $\textit{ZERO}$\\ + $\textit{fuse}\;bs\,(\textit{ONE}\,bs')$ & $\dn$ & + $\textit{ONE}\,(bs\,@\,bs')$\\ + $\textit{fuse}\;bs\,(\textit{CHAR}\,bs'\,c)$ & $\dn$ & + $\textit{CHAR}\,(bs\,@\,bs')\,c$\\ + $\textit{fuse}\;bs\,(\textit{ALTS}\,bs'\,as)$ & $\dn$ & + $\textit{ALTS}\,(bs\,@\,bs')\,as$\\ + $\textit{fuse}\;bs\,(\textit{SEQ}\,bs'\,a_1\,a_2)$ & $\dn$ & + $\textit{SEQ}\,(bs\,@\,bs')\,a_1\,a_2$\\ + $\textit{fuse}\;bs\,(\textit{STAR}\,bs'\,a)$ & $\dn$ & + $\textit{STAR}\,(bs\,@\,bs')\,a$ +\end{tabular} +\end{center} + +\noindent +After internalising the regular expression, we perform successive +derivative operations on the annotated regular expressions. This +derivative operation is the same as what we had previously for the +basic regular expressions, except that we beed to take care of +the bitcodes: + + %\begin{definition}{bder} +\begin{center} + \begin{tabular}{@{}lcl@{}} + $(\textit{ZERO})\,\backslash c$ & $\dn$ & $\textit{ZERO}$\\ + $(\textit{ONE}\;bs)\,\backslash c$ & $\dn$ & $\textit{ZERO}$\\ + $(\textit{CHAR}\;bs\,d)\,\backslash c$ & $\dn$ & + $\textit{if}\;c=d\; \;\textit{then}\; + \textit{ONE}\;bs\;\textit{else}\;\textit{ZERO}$\\ + $(\textit{ALTS}\;bs\,as)\,\backslash c$ & $\dn$ & + $\textit{ALTS}\;bs\,(as.map(\backslash c))$\\ + $(\textit{SEQ}\;bs\,a_1\,a_2)\,\backslash c$ & $\dn$ & + $\textit{if}\;\textit{bnullable}\,a_1$\\ + & &$\textit{then}\;\textit{ALTS}\,bs\,List((\textit{SEQ}\,[]\,(a_1\,\backslash c)\,a_2),$\\ + & &$\phantom{\textit{then}\;\textit{ALTS}\,bs\,}(\textit{fuse}\,(\textit{bmkeps}\,a_1)\,(a_2\,\backslash c)))$\\ + & &$\textit{else}\;\textit{SEQ}\,bs\,(a_1\,\backslash c)\,a_2$\\ + $(\textit{STAR}\,bs\,a)\,\backslash c$ & $\dn$ & + $\textit{SEQ}\;bs\,(\textit{fuse}\, [\Z] (r\,\backslash c))\, + (\textit{STAR}\,[]\,r)$ +\end{tabular} +\end{center} +%\end{definition} + +\noindent +For instance, when we unfold $\textit{STAR} \; bs \; a$ into a sequence, +we need to attach an additional bit $Z$ to the front of $r \backslash c$ +to indicate that there is one more star iteration. Also the $SEQ$ clause +is more subtle---when $a_1$ is $\textit{bnullable}$ (here +\textit{bnullable} is exactly the same as $\textit{nullable}$, except +that it is for annotated regular expressions, therefore we omit the +definition). Assume that $bmkeps$ correctly extracts the bitcode for how +$a_1$ matches the string prior to character $c$ (more on this later), +then the right branch of $ALTS$, which is $fuse \; bmkeps \; a_1 (a_2 +\backslash c)$ will collapse the regular expression $a_1$(as it has +already been fully matched) and store the parsing information at the +head of the regular expression $a_2 \backslash c$ by fusing to it. The +bitsequence $bs$, which was initially attached to the head of $SEQ$, has +now been elevated to the top-level of $ALTS$, as this information will be +needed whichever way the $SEQ$ is matched---no matter whether $c$ belongs +to $a_1$ or $ a_2$. After building these derivatives and maintaining all +the lexing information, we complete the lexing by collecting the +bitcodes using a generalised version of the $\textit{mkeps}$ function +for annotated regular expressions, called $\textit{bmkeps}$: + + +%\begin{definition}[\textit{bmkeps}]\mbox{} +\begin{center} +\begin{tabular}{lcl} + $\textit{bmkeps}\,(\textit{ONE}\;bs)$ & $\dn$ & $bs$\\ + $\textit{bmkeps}\,(\textit{ALTS}\;bs\,a::as)$ & $\dn$ & + $\textit{if}\;\textit{bnullable}\,a$\\ + & &$\textit{then}\;bs\,@\,\textit{bmkeps}\,a$\\ + & &$\textit{else}\;bs\,@\,\textit{bmkeps}\,(\textit{ALTS}\;bs\,as)$\\ + $\textit{bmkeps}\,(\textit{SEQ}\;bs\,a_1\,a_2)$ & $\dn$ & + $bs \,@\,\textit{bmkeps}\,a_1\,@\, \textit{bmkeps}\,a_2$\\ + $\textit{bmkeps}\,(\textit{STAR}\;bs\,a)$ & $\dn$ & + $bs \,@\, [\S]$ +\end{tabular} +\end{center} +%\end{definition} + +\noindent +This function completes the value information by travelling along the +path of the regular expression that corresponds to a POSIX value and +collecting all the bitcodes, and using $S$ to indicate the end of star +iterations. If we take the bitcodes produced by $\textit{bmkeps}$ and +decode them, we get the value we expect. The corresponding lexing +algorithm looks as follows: + +\begin{center} +\begin{tabular}{lcl} + $\textit{blexer}\;r\,s$ & $\dn$ & + $\textit{let}\;a = (r^\uparrow)\backslash s\;\textit{in}$\\ + & & $\;\;\textit{if}\; \textit{bnullable}(a)$\\ + & & $\;\;\textit{then}\;\textit{decode}\,(\textit{bmkeps}\,a)\,r$\\ + & & $\;\;\textit{else}\;\textit{None}$ +\end{tabular} +\end{center} + +\noindent +In this definition $\_\backslash s$ is the generalisation of the derivative +operation from characters to strings (just like the derivatives for un-annotated +regular expressions). + +The main point of the bitcodes and annotated regular expressions is that +we can apply rather aggressive (in terms of size) simplification rules +in order to keep derivatives small. We have developed such +``aggressive'' simplification rules and generated test data that show +that the expected bound can be achieved. Obviously we could only +partially cover the search space as there are infinitely many regular +expressions and strings. + +One modification we introduced is to allow a list of annotated regular +expressions in the \textit{ALTS} constructor. This allows us to not just +delete unnecessary $\ZERO$s and $\ONE$s from regular expressions, but +also unnecessary ``copies'' of regular expressions (very similar to +simplifying $r + r$ to just $r$, but in a more general setting). Another +modification is that we use simplification rules inspired by Antimirov's +work on partial derivatives. They maintain the idea that only the first +``copy'' of a regular expression in an alternative contributes to the +calculation of a POSIX value. All subsequent copies can be pruned away from +the regular expression. A recursive definition of our simplification function +that looks somewhat similar to our Scala code is given below: +%\comment{Use $\ZERO$, $\ONE$ and so on. +%Is it $ALTS$ or $ALTS$?}\\ + +\begin{center} + \begin{tabular}{@{}lcl@{}} + + $\textit{simp} \; (\textit{SEQ}\;bs\,a_1\,a_2)$ & $\dn$ & $ (\textit{simp} \; a_1, \textit{simp} \; a_2) \; \textit{match} $ \\ + &&$\quad\textit{case} \; (\ZERO, \_) \Rightarrow \ZERO$ \\ + &&$\quad\textit{case} \; (\_, \ZERO) \Rightarrow \ZERO$ \\ + &&$\quad\textit{case} \; (\ONE, a_2') \Rightarrow \textit{fuse} \; bs \; a_2'$ \\ + &&$\quad\textit{case} \; (a_1', \ONE) \Rightarrow \textit{fuse} \; bs \; a_1'$ \\ + &&$\quad\textit{case} \; (a_1', a_2') \Rightarrow \textit{SEQ} \; bs \; a_1' \; a_2'$ \\ + + $\textit{simp} \; (\textit{ALTS}\;bs\,as)$ & $\dn$ & $\textit{distinct}( \textit{flatten} ( \textit{map simp as})) \; \textit{match} $ \\ + &&$\quad\textit{case} \; [] \Rightarrow \ZERO$ \\ + &&$\quad\textit{case} \; a :: [] \Rightarrow \textit{fuse bs a}$ \\ + &&$\quad\textit{case} \; as' \Rightarrow \textit{ALTS}\;bs\;as'$\\ + + $\textit{simp} \; a$ & $\dn$ & $\textit{a} \qquad \textit{otherwise}$ +\end{tabular} +\end{center} + +\noindent +The simplification does a pattern matching on the regular expression. +When it detected that the regular expression is an alternative or +sequence, it will try to simplify its children regular expressions +recursively and then see if one of the children turn into $\ZERO$ or +$\ONE$, which might trigger further simplification at the current level. +The most involved part is the $\textit{ALTS}$ clause, where we use two +auxiliary functions $\textit{flatten}$ and $\textit{distinct}$ to open up nested +$\textit{ALTS}$ and reduce as many duplicates as possible. Function +$\textit{distinct}$ keeps the first occurring copy only and remove all later ones +when detected duplicates. Function $\textit{flatten}$ opens up nested \textit{ALTS}. +Its recursive definition is given below: + + \begin{center} + \begin{tabular}{@{}lcl@{}} + $\textit{flatten} \; (\textit{ALTS}\;bs\,as) :: as'$ & $\dn$ & $(\textit{map} \; + (\textit{fuse}\;bs)\; \textit{as}) \; @ \; \textit{flatten} \; as' $ \\ + $\textit{flatten} \; \textit{ZERO} :: as'$ & $\dn$ & $ \textit{flatten} \; as' $ \\ + $\textit{flatten} \; a :: as'$ & $\dn$ & $a :: \textit{flatten} \; as'$ \quad(otherwise) +\end{tabular} +\end{center} + +\noindent +Here $\textit{flatten}$ behaves like the traditional functional programming flatten +function, except that it also removes $\ZERO$s. Or in terms of regular expressions, it +removes parentheses, for example changing $a+(b+c)$ into $a+b+c$. + +Suppose we apply simplification after each derivative step, and view +these two operations as an atomic one: $a \backslash_{simp}\,c \dn +\textit{simp}(a \backslash c)$. Then we can use the previous natural +extension from derivative w.r.t.~character to derivative +w.r.t.~string:%\comment{simp in the [] case?} + +\begin{center} +\begin{tabular}{lcl} +$r \backslash_{simp} (c\!::\!s) $ & $\dn$ & $(r \backslash_{simp}\, c) \backslash_{simp}\, s$ \\ +$r \backslash_{simp} [\,] $ & $\dn$ & $r$ +\end{tabular} +\end{center} + +\noindent +we obtain an optimised version of the algorithm: + + \begin{center} +\begin{tabular}{lcl} + $\textit{blexer\_simp}\;r\,s$ & $\dn$ & + $\textit{let}\;a = (r^\uparrow)\backslash_{simp}\, s\;\textit{in}$\\ + & & $\;\;\textit{if}\; \textit{bnullable}(a)$\\ + & & $\;\;\textit{then}\;\textit{decode}\,(\textit{bmkeps}\,a)\,r$\\ + & & $\;\;\textit{else}\;\textit{None}$ +\end{tabular} +\end{center} + +\noindent +This algorithm keeps the regular expression size small, for example, +with this simplification our previous $(a + aa)^*$ example's 8000 nodes +will be reduced to just 6 and stays constant, no matter how long the +input string is. + + + +\section{Current Work} + +We are currently engaged in two tasks related to this algorithm. The +first task is proving that our simplification rules actually do not +affect the POSIX value that should be generated by the algorithm +according to the specification of a POSIX value and furthermore obtain a +much tighter bound on the sizes of derivatives. The result is that our +algorithm should be correct and faster on all inputs. The original +blow-up, as observed in JavaScript, Python and Java, would be excluded +from happening in our algorithm. For this proof we use the theorem prover +Isabelle. Once completed, this result will advance the state-of-the-art: +Sulzmann and Lu wrote in their paper~\cite{Sulzmann2014} about the +bitcoded ``incremental parsing method'' (that is the lexing algorithm +outlined in this section): + +\begin{quote}\it + ``Correctness Claim: We further claim that the incremental parsing + method in Figure~5 in combination with the simplification steps in + Figure 6 yields POSIX parse tree [our lexical values]. We have tested this claim + extensively by using the method in Figure~3 as a reference but yet + have to work out all proof details.'' +\end{quote} + +\noindent +We like to settle this correctness claim. It is relatively +straightforward to establish that after one simplification step, the part of a +nullable derivative that corresponds to a POSIX value remains intact and can +still be collected, in other words, we can show that +%\comment{Double-check....I +%think this is not the case} +%\comment{If i remember correctly, you have proved this lemma. +%I feel this is indeed not true because you might place arbitrary +%bits on the regex r, however if this is the case, did i remember wrongly that +%you proved something like simplification does not affect $\textit{bmkeps}$ results? +%Anyway, i have amended this a little bit so it does not allow arbitrary bits attached +%to a regex. Maybe it works now.} + +\begin{center} + $\textit{bmkeps} \; a = \textit{bmkeps} \; \textit{bsimp} \; a\;($\textit{provided}$ \; a\; is \; \textit{bnullable} )$ +\end{center} + +\noindent +as this basically comes down to proving actions like removing the +additional $r$ in $r+r$ does not delete important POSIX information in +a regular expression. The hard part of this proof is to establish that + +\begin{center} + $ \textit{blexer}\_{simp}(r, \; s) = \textit{blexer}(r, \; s)$ +\end{center} +%comment{This is not true either...look at the definion blexer/blexer-simp} + +\noindent That is, if we do derivative on regular expression $r$ and then +simplify it, and repeat this process until we exhaust the string, we get a +regular expression $r''$($\textit{LHS}$) that provides the POSIX matching +information, which is exactly the same as the result $r'$($\textit{RHS}$ of the +normal derivative algorithm that only does derivative repeatedly and has no +simplification at all. This might seem at first glance very unintuitive, as +the $r'$ could be exponentially larger than $r''$, but can be explained in the +following way: we are pruning away the possible matches that are not POSIX. +Since there could be exponentially many +non-POSIX matchings and only 1 POSIX matching, it +is understandable that our $r''$ can be a lot smaller. we can still provide +the same POSIX value if there is one. This is not as straightforward as the +previous proposition, as the two regular expressions $r'$ and $r''$ might have +become very different. The crucial point is to find the +$\textit{POSIX}$ information of a regular expression and how it is modified, +augmented and propagated +during simplification in parallel with the regular expression that +has not been simplified in the subsequent derivative operations. To aid this, +we use the helper function retrieve described by Sulzmann and Lu: +\begin{center} +\begin{tabular}{@{}l@{\hspace{2mm}}c@{\hspace{2mm}}l@{}} + $\textit{retrieve}\,(\textit{ONE}\,bs)\,\Empty$ & $\dn$ & $bs$\\ + $\textit{retrieve}\,(\textit{CHAR}\,bs\,c)\,(\Char\,d)$ & $\dn$ & $bs$\\ + $\textit{retrieve}\,(\textit{ALTS}\,bs\,a::as)\,(\Left\,v)$ & $\dn$ & + $bs \,@\, \textit{retrieve}\,a\,v$\\ + $\textit{retrieve}\,(\textit{ALTS}\,bs\,a::as)\,(\Right\,v)$ & $\dn$ & + $bs \,@\, \textit{retrieve}\,(\textit{ALTS}\,bs\,as)\,v$\\ + $\textit{retrieve}\,(\textit{SEQ}\,bs\,a_1\,a_2)\,(\Seq\,v_1\,v_2)$ & $\dn$ & + $bs \,@\,\textit{retrieve}\,a_1\,v_1\,@\, \textit{retrieve}\,a_2\,v_2$\\ + $\textit{retrieve}\,(\textit{STAR}\,bs\,a)\,(\Stars\,[])$ & $\dn$ & + $bs \,@\, [\S]$\\ + $\textit{retrieve}\,(\textit{STAR}\,bs\,a)\,(\Stars\,(v\!::\!vs))$ & $\dn$ &\\ + \multicolumn{3}{l}{ + \hspace{3cm}$bs \,@\, [\Z] \,@\, \textit{retrieve}\,a\,v\,@\, + \textit{retrieve}\,(\textit{STAR}\,[]\,a)\,(\Stars\,vs)$}\\ +\end{tabular} +\end{center} +%\comment{Did not read further}\\ +This function assembles the bitcode +%that corresponds to a lexical value for how +%the current derivative matches the suffix of the string(the characters that +%have not yet appeared, but will appear as the successive derivatives go on. +%How do we get this "future" information? By the value $v$, which is +%computed by a pass of the algorithm that uses +%$inj$ as described in the previous section). +using information from both the derivative regular expression and the +value. Sulzmann and Lu poroposed this function, but did not prove +anything about it. Ausaf and Urban used it to connect the bitcoded +algorithm to the older algorithm by the following equation: + + \begin{center} $inj \;a\; c \; v = \textit{decode} \; (\textit{retrieve}\; + (r^\uparrow)\backslash_{simp} \,c)\,v)$ + \end{center} + +\noindent +whereby $r^\uparrow$ stands for the internalised version of $r$. Ausaf +and Urban also used this fact to prove the correctness of bitcoded +algorithm without simplification. Our purpose of using this, however, +is to establish + +\begin{center} +$ \textit{retrieve} \; +a \; v \;=\; \textit{retrieve} \; (\textit{simp}\,a) \; v'.$ +\end{center} +The idea is that using $v'$, a simplified version of $v$ that had gone +through the same simplification step as $\textit{simp}(a)$, we are able +to extract the bitcode that gives the same parsing information as the +unsimplified one. However, we noticed that constructing such a $v'$ +from $v$ is not so straightforward. The point of this is that we might +be able to finally bridge the gap by proving + +\begin{center} +$\textit{retrieve} \; (r^\uparrow \backslash s) \; v = \;\textit{retrieve} \; +(\textit{simp}(r^\uparrow) \backslash s) \; v'$ +\end{center} + +\noindent +and subsequently + +\begin{center} +$\textit{retrieve} \; (r^\uparrow \backslash s) \; v\; = \; \textit{retrieve} \; +(r^\uparrow \backslash_{simp} \, s) \; v'$. +\end{center} + +\noindent +The $\textit{LHS}$ of the above equation is the bitcode we want. This +would prove that our simplified version of regular expression still +contains all the bitcodes needed. The task here is to find a way to +compute the correct $v'$. + +The second task is to speed up the more aggressive simplification. Currently +it is slower than the original naive simplification by Ausaf and Urban (the +naive version as implemented by Ausaf and Urban of course can ``explode'' in +some cases). It is therefore not surprising that the speed is also much slower +than regular expression engines in popular programming languages such as Java +and Python on most inputs that are linear. For example, just by rewriting the +example regular expression in the beginning of this report $(a^*)^*\,b$ into +$a^*\,b$ would eliminate the ambiguity in the matching and make the time +for matching linear with respect to the input string size. This allows the +DFA approach to become blindingly fast, and dwarf the speed of our current +implementation. For example, here is a comparison of Java regex engine +and our implementation on this example. + +\begin{center} +\begin{tabular}{@{}c@{\hspace{0mm}}c@{\hspace{0mm}}c@{}} +\begin{tikzpicture} +\begin{axis}[ + xlabel={$n*1000$}, + x label style={at={(1.05,-0.05)}}, + ylabel={time in secs}, + enlargelimits=false, + xtick={0,5,...,30}, + xmax=33, + ymax=9, + scaled ticks=true, + axis lines=left, + width=5cm, + height=4cm, + legend entries={Bitcoded Algorithm}, + legend pos=north west, + legend cell align=left] +\addplot[red,mark=*, mark options={fill=white}] table {bad-scala.data}; +\end{axis} +\end{tikzpicture} + & +\begin{tikzpicture} +\begin{axis}[ + xlabel={$n*1000$}, + x label style={at={(1.05,-0.05)}}, + %ylabel={time in secs}, + enlargelimits=false, + xtick={0,5,...,30}, + xmax=33, + ymax=9, + scaled ticks=false, + axis lines=left, + width=5cm, + height=4cm, + legend entries={Java}, + legend pos=north west, + legend cell align=left] +\addplot[cyan,mark=*, mark options={fill=white}] table {good-java.data}; +\end{axis} +\end{tikzpicture}\\ +\multicolumn{3}{c}{Graphs: Runtime for matching $a^*\,b$ with strings + of the form $\underbrace{aa..a}_{n}$.} +\end{tabular} +\end{center} + + +Java regex engine can match string of thousands of characters in a few milliseconds, +whereas our current algorithm gets excruciatingly slow on input of this size. +The running time in theory is linear, however it does not appear to be the +case in an actual implementation. So it needs to be explored how to +make our algorithm faster on all inputs. It could be the recursive calls that are +needed to manipulate bits that are causing the slow down. A possible solution +is to write recursive functions into tail-recusive form. +Another possibility would be to explore +again the connection to DFAs to speed up the algorithm on +subcalls that are small enough. This is very much work in progress. + +\section{Conclusion} + +In this PhD-project we are interested in fast algorithms for regular +expression matching. While this seems to be a ``settled'' area, in +fact interesting research questions are popping up as soon as one steps +outside the classic automata theory (for example in terms of what kind +of regular expressions are supported). The reason why it is +interesting for us to look at the derivative approach introduced by +Brzozowski for regular expression matching, and then much further +developed by Sulzmann and Lu, is that derivatives can elegantly deal +with some of the regular expressions that are of interest in ``real +life''. This includes the not-regular expression, written $\neg\,r$ +(that is all strings that are not recognised by $r$), but also bounded +regular expressions such as $r^{\{n\}}$ and $r^{\{n..m\}}$). There is +also hope that the derivatives can provide another angle for how to +deal more efficiently with back-references, which are one of the +reasons why regular expression engines in JavaScript, Python and Java +choose to not implement the classic automata approach of transforming +regular expressions into NFAs and then DFAs---because we simply do not +know how such back-references can be represented by DFAs. +We also plan to implement the bitcoded algorithm +in some imperative language like C to see if the inefficiency of the +Scala implementation +is language specific. To make this research more comprehensive we also plan +to contrast our (faster) version of bitcoded algorithm with the +Symbolic Regex Matcher, the RE2, the Rust Regex Engine, and the static +analysis approach by implementing them in the same language and then compare +their performance. + +\bibliographystyle{plain} +\bibliography{root} + + +\end{document} diff -r d486c12deeab -r 2e2dca212fff etnms/etnms.vtc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/etnms.vtc Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,1 @@ +\contitem\title{POSIX Regular Expression Matching and Lexing}\author{Chengsong Tan}\page{1} diff -r d486c12deeab -r 2e2dca212fff etnms/good-ava.data --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/good-ava.data Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,20 @@ +%% LaTeX2e file `good-ava.data' +%% generated by the `filecontents' environment +%% from source `ninems' on 2019/08/18. +%% +5 1.9934E-5 +10 2.8729E-5 +15 4.8116E-5 +16 5.3597E-5 +17 4.6792E-5 +18 5.8618E-5 +19 6.2078E-5 +20 6.4702E-5 +21 6.1464E-5 +22 6.4693E-5 +23 6.1667E-5 +24 7.1466E-5 +25 7.8089E-5 +26 7.4661E-5 +27 7.5628E-5 +28 8.9169E-5 diff -r d486c12deeab -r 2e2dca212fff etnms/good-java.data --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/good-java.data Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,20 @@ +%% LaTeX2e file `good-java.data' +%% generated by the `filecontents' environment +%% from source `ninems' on 2019/08/18. +%% +5 1.9934E-5 +10 2.8729E-5 +15 4.8116E-5 +16 5.3597E-5 +17 4.6792E-5 +18 5.8618E-5 +19 6.2078E-5 +20 6.4702E-5 +21 6.1464E-5 +22 6.4693E-5 +23 6.1667E-5 +24 7.1466E-5 +25 7.8089E-5 +26 7.4661E-5 +27 7.5628E-5 +28 8.9169E-5 diff -r d486c12deeab -r 2e2dca212fff etnms/good_java.data --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/good_java.data Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,34 @@ +%% LaTeX2e file `good_java.data' +%% generated by the `filecontents' environment +%% from source `ninems' on 2019/08/18. +%% +1000 6.688E-6 +2000 6.28E-6 +3000 8.888E-6 +4000 1.4384E-5 +5000 1.875E-5 +6000 -2.1175E-5 +7000 -1.9611E-5 +8000 -1.8512E-5 +9000 2.6921E-5 +10000 3.2706E-5 +11000 3.2041E-5 +12000 3.8868E-5 +13000 3.9683E-5 +14000 4.0458E-5 +15000 4.5261E-5 +16000 6.0411E-5 +17000 5.2199E-5 +18000 5.443E-5 +19000 5.3428E-5 +20000 5.9657E-5 +21000 6.0396E-5 +22000 6.1441E-5 +23000 6.9136E-5 +24000 7.4773E-5 +25000 8.8255E-5 +26000 7.412E-5 +27000 9.415E-5 +28000 8.3007E-5 +29000 9.6488E-5 +30000 9.8127E-5 diff -r d486c12deeab -r 2e2dca212fff etnms/graphic.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/graphic.sty Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,12 @@ +\usepackage{tikz} +%\usepackage{pgf} +%\usetikzlibrary{positioning} +%\usetikzlibrary{calc} +%\usetikzlibrary{automata} +%\usetikzlibrary{arrows} +%\usetikzlibrary{backgrounds} +%\usetikzlibrary{fit} +%\usepackage{tikz-qtree} +\usepackage{pgfplots} + +%\pgfplotsset{compat=1.15} diff -r d486c12deeab -r 2e2dca212fff etnms/lipics-logo-bw.pdf Binary file etnms/lipics-logo-bw.pdf has changed diff -r d486c12deeab -r 2e2dca212fff etnms/lipics.cls --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/lipics.cls Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,646 @@ +%% +%% This is file `lipics.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% lipics.dtx (with options: `class') +%% +%% ----------------------------------------------------------------- +%% Author: le-tex publishing services +%% +%% This file is part of the lipics package for preparing +%% LIPICS articles. +%% +%% Copyright (C) 2010 Schloss Dagstuhl +%% ----------------------------------------------------------------- +\NeedsTeXFormat{LaTeX2e}[2005/12/01] +\ProvidesClass{lipics} + [2010/09/27 v1.1 LIPIcs articles] +\emergencystretch1em +\advance\hoffset-1in +\advance\voffset-1in +\advance\hoffset2.95mm +\newif\if@nobotseplist \@nobotseplistfalse +\def\@endparenv{% + \addpenalty\@endparpenalty\if@nobotseplist\else\addvspace\@topsepadd\fi\@endpetrue} +\def\@doendpe{% + \@endpetrue + \def\par{\@restorepar + \everypar{}% + \par + \if@nobotseplist + \addvspace\topsep + \addvspace\partopsep + \global\@nobotseplistfalse + \fi + \@endpefalse}% + \everypar{{\setbox\z@\lastbox}% + \everypar{}% + \if@nobotseplist\global\@nobotseplistfalse\fi + \@endpefalse}} +\def\enumerate{% + \ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \expandafter + \list + \csname label\@enumctr\endcsname + {\advance\partopsep\topsep + \topsep\z@\@plus\p@ + \ifnum\@listdepth=\@ne + \labelsep0.72em + \else + \ifnum\@listdepth=\tw@ + \labelsep0.3em + \else + \labelsep0.5em + \fi + \fi + \usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}% + \fi} +\def\endenumerate{\ifnum\@listdepth=\@ne\global\@nobotseplisttrue\fi\endlist} +\def\itemize{% + \ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list + \csname\@itemitem\endcsname + {\advance\partopsep\topsep + \topsep\z@\@plus\p@ + \ifnum\@listdepth=\@ne + \labelsep0.83em + \else + \ifnum\@listdepth=\tw@ + \labelsep0.75em + \else + \labelsep0.5em + \fi + \fi + \def\makelabel##1{\hss\llap{##1}}}% + \fi} +\def\enditemize{\ifnum\@listdepth=\@ne\global\@nobotseplisttrue\fi\endlist} +\def\@sect#1#2#3#4#5#6[#7]#8{% + \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 + \ifnum #2=1 + \colorbox[rgb]{0.99,0.78,0.07}{\kern0.15em\@svsec\kern0.15em}\quad + \else + \@svsec\quad + \fi}% + \interlinepenalty \@M #8\@@par}% + \endgroup + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}% + \else + \def\@svsechd{% + #6{\hskip #3\relax + \@svsec #8}% + \csname #1mark\endcsname{#7}% + \addcontentsline{toc}{#1}{% + \ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}% + \fi + #7}}% + \fi + \@xsect{#5}} +\def\@seccntformat#1{\csname the#1\endcsname} +\def\@biblabel#1{\textcolor{darkgray}{\sffamily\bfseries#1}} +\def\copyrightline{% + \ifx\@serieslogo\@empty + \else + \setbox\@tempboxa\hbox{\includegraphics[height=42\p@]{\@serieslogo}}% + \rlap{\hspace\textwidth\hspace{-\wd\@tempboxa}\hspace{\z@}% + \vtop to\z@{\vskip-0mm\unhbox\@tempboxa\vss}}% + \fi + \scriptsize + \vtop{\hsize\textwidth + \nobreakspace\\ + \@Copyright + \ifx\@Event\@empty\else\@Event.\\\fi + \ifx\@Editors\@empty\else + \@Eds: \@Editors + ; pp. \thepage--\pageref{LastPage}% + \\ + \fi + \setbox\@tempboxa\hbox{\includegraphics[height=14\p@,trim=0 15 0 0]{lipics-logo-bw}}% + \hspace*{\wd\@tempboxa}\enskip + \href{http://www.dagstuhl.de/lipics/}% + {Leibniz International Proceedings in Informatics}\\ + \smash{\unhbox\@tempboxa}\enskip + \href{http://www.dagstuhl.de}% + {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik, Dagstuhl Publishing, Germany}}} +\def\ps@plain{\let\@mkboth\@gobbletwo + \let\@oddhead\@empty + \let\@evenhead\@empty + \let\@evenfoot\copyrightline + \let\@oddfoot\copyrightline} +\def\lipics@opterrshort{Option "\CurrentOption" not supported} +\def\lipics@opterrlong{The option "\CurrentOption" from article.cls is not supported by lipics.cls.} +\DeclareOption{a5paper}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{b5paper}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{legalpaper}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{executivepaper}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{landscape}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{10pt}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{11pt}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{12pt}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{oneside}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{twoside}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{titlepage}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{notitlepage}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{onecolumn}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{twocolumn}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{fleqn}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{openbib}{\@latexerr{\lipics@opterrshort}{\lipics@opterrlong}} +\DeclareOption{a4paper}{\PassOptionsToClass{\CurrentOption}{article} + \advance\hoffset-2.95mm + \advance\voffset8.8mm} +\DeclareOption{numberwithinsect}{\let\numberwithinsect\relax} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions +\LoadClass[twoside,notitlepage,fleqn]{article} +\renewcommand\normalsize{% + \@setfontsize\normalsize\@xpt{13}% + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\normalsize +\renewcommand\small{% + \@setfontsize\small\@ixpt{11.5}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\renewcommand\footnotesize{% + \@setfontsize\footnotesize{8.5}{9.5}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip +} +\renewcommand\large{\@setfontsize\large{10.5}{13}} +\renewcommand\Large{\@setfontsize\Large{12}{14}} +\setlength\parindent{1.5em} +\setlength\headheight{3mm} +\setlength\headsep {10mm} +\setlength\footskip{3mm} +\setlength\textwidth{140mm} +\setlength\textheight{222mm} +\setlength\oddsidemargin{32mm} +\setlength\evensidemargin{38mm} +\setlength\marginparwidth{25mm} +\setlength\topmargin{13mm} +\setlength{\skip\footins}{2\baselineskip \@plus 4\p@ \@minus 2\p@} +\def\@listi{\leftmargin\leftmargini + \parsep\z@ \@plus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep \parsep} +\let\@listI\@listi +\@listi +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep\z@ \@plus\p@ + \itemsep \parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep 2\p@ \@plus\p@\@minus\p@ + \parsep \z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep \z@ \@plus\p@} +\def\ps@headings{% + \def\@evenhead{\large\sffamily\bfseries + \llap{\hbox to0.5\oddsidemargin{\thepage\hss}}\leftmark\hfil}% + \def\@oddhead{\large\sffamily\bfseries\rightmark\hfil + \rlap{\hbox to0.5\oddsidemargin{\hss\thepage}}}% + \def\@oddfoot{\hfil + \rlap{% + \vtop{% + \vskip10mm + \colorbox[rgb]{0.99,0.78,0.07} + {\@tempdima\evensidemargin + \advance\@tempdima1in + \advance\@tempdima\hoffset + \hb@xt@\@tempdima{% + \textcolor{darkgray}{\normalsize\sffamily + \bfseries\quad + \expandafter\textsolittle + \expandafter{\@EventShortName}}% + \strut\hss}}}}} + \let\@evenfoot\@empty + \let\@mkboth\markboth + \let\sectionmark\@gobble + \let\subsectionmark\@gobble} +\pagestyle{headings} +\renewcommand\maketitle{\par + \begingroup + \renewcommand\thefootnote{\@fnsymbol\c@footnote}% + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \thispagestyle{plain}\@thanks + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax +} +\newwrite\tocfile +\def\@maketitle{% + \newpage + \null\vskip-\baselineskip + \vskip-\headsep + \@titlerunning + \@authorrunning + \let \footnote \thanks + \parindent\z@ \raggedright + {\LARGE\sffamily\bfseries\mathversion{bold}\@title \par}% + \vskip 1.5em% + \ifnum\c@authors=0 % + \@latexerr{No \noexpand\author given}% + {Provide at least one author. See the LIPIcs class documentation.}% + \else + \@author + \fi + \bgroup + \let\footnote\@gobble + \immediate\openout\tocfile=\jobname.vtc + \protected@write\tocfile{}{% + \string\contitem + \string\title{\@title}% + \string\author{\AB@authfortoc}% + \string\page{\thepage}}% + \closeout\tocfile + \egroup + \par} +\setcounter{secnumdepth}{4} +\renewcommand\section{\@startsection {section}{1}{\z@}% + {-3.5ex \@plus -1ex \@minus -.2ex}% + {2.3ex \@plus.2ex}% + {\sffamily\Large\bfseries\raggedright}} +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\sffamily\Large\bfseries\raggedright}} +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-3.25ex\@plus -1ex \@minus -.2ex}% + {1.5ex \@plus .2ex}% + {\sffamily\Large\bfseries\raggedright}} +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% + {-3.25ex \@plus-1ex \@minus-.2ex}% + {1.5ex \@plus .2ex}% + {\sffamily\large\bfseries\raggedright}} +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}% + {3.25ex \@plus1ex \@minus .2ex}% + {-1em}% + {\sffamily\normalsize\bfseries}} +\setlength\leftmargini \parindent +\setlength\leftmarginii {1.2em} +\setlength\leftmarginiii{1.2em} +\setlength\leftmarginiv {1.2em} +\setlength\leftmarginv {1.2em} +\setlength\leftmarginvi {1.2em} +\renewcommand\labelenumi{% + \textcolor{darkgray}{\sffamily\bfseries\mathversion{bold}\theenumi.}} +\renewcommand\labelenumii{% + \textcolor{darkgray}{\sffamily\bfseries\mathversion{bold}\theenumii.}} +\renewcommand\labelenumiii{% + \textcolor{darkgray}{\sffamily\bfseries\mathversion{bold}\theenumiii.}} +\renewcommand\labelenumiv{% + \textcolor{darkgray}{\sffamily\bfseries\mathversion{bold}\theenumiv.}} +\renewcommand\labelitemi{% + \textcolor[rgb]{0.6,0.6,0.61}{\ifnum\@listdepth=\@ne + \rule{0.67em}{0.33em}% + \else + \rule{0.45em}{0.225em}% + \fi}} +\renewcommand\labelitemii{% + \textcolor[rgb]{0.6,0.6,0.61}{\rule{0.45em}{0.225em}}} +\renewcommand\labelitemiii{% + \textcolor[rgb]{0.6,0.6,0.61}{\sffamily\bfseries\textasteriskcentered}} +\renewcommand\labelitemiv{% + \textcolor[rgb]{0.6,0.6,0.61}{\sffamily\bfseries\textperiodcentered}} +\renewenvironment{description} + {\list{}{\advance\partopsep\topsep\topsep\z@\@plus\p@ + \labelwidth\z@ \itemindent-\leftmargin + \let\makelabel\descriptionlabel}} + {\ifnum\@listdepth=\@ne\global\@nobotseplisttrue\fi\endlist} +\renewcommand*\descriptionlabel[1]{% + \hspace\labelsep\textcolor{darkgray}{\sffamily\bfseries\mathversion{bold}#1}} +\renewenvironment{abstract}{% + \vskip\bigskipamount + \noindent + \rlap{\color[rgb]{0.51,0.50,0.52}\vrule\@width\textwidth\@height1\p@}% + \hspace*{7mm}\fboxsep1.5mm\colorbox[rgb]{1,1,1}{\raisebox{-0.4ex}{% + \large\selectfont\sffamily\bfseries\abstractname}}% + \vskip3\p@ + \fontsize{9.5}{12.5}\selectfont + \noindent\ignorespaces} + {\ifx\@subjclass\@empty\else + \vskip\baselineskip\noindent + \subjclassHeading\@subjclass + \fi + \ifx\@keywords\@empty\else + \vskip\baselineskip\noindent + \keywordsHeading\@keywords + \fi + \ifx\@DOI\@empty\else + \vskip\baselineskip\noindent + \doiHeading\doi{\@DOI}% + \fi} +\renewenvironment{thebibliography}[1] + {\if@noskipsec \leavevmode \fi + \par + \@tempskipa-3.5ex \@plus -1ex \@minus -.2ex\relax + \@afterindenttrue + \@tempskipa -\@tempskipa \@afterindentfalse + \if@nobreak + \everypar{}% + \else + \addpenalty\@secpenalty\addvspace\@tempskipa + \fi + \noindent + \rlap{\color[rgb]{0.51,0.50,0.52}\vrule\@width\textwidth\@height1\p@}% + \hspace*{7mm}\fboxsep1.5mm\colorbox[rgb]{1,1,1}{\raisebox{-0.4ex}{% + \normalsize\sffamily\bfseries\refname}}% + \@xsect{1ex \@plus.2ex}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\leftmargin8.5mm + \labelsep\leftmargin + \settowidth\labelwidth{\@biblabel{#1}}% + \advance\labelsep-\labelwidth + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \fontsize{9.5}{12.5}\selectfont + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +\renewcommand\footnoterule{% + \kern-8\p@ + {\color[rgb]{0.60,0.60,0.61}\hrule\@width40mm\@height1\p@}% + \kern6.6\p@} +\renewcommand\@makefntext[1]{% + \parindent\z@\hangindent1em + \leavevmode + \hb@xt@1em{\@makefnmark\hss}#1} +\usepackage[utf8]{inputenc} +\IfFileExists{lmodern.sty}{\RequirePackage{lmodern}}{} +\RequirePackage[T1]{fontenc} +\RequirePackage{textcomp} +\RequirePackage[mathscr]{eucal} +\RequirePackage{amssymb} +\RequirePackage{soul} +\sodef\textsolittle{}{.12em}{.5em\@plus.08em\@minus.06em}% + {.4em\@plus.275em\@minus.183em} +\RequirePackage{color} +\definecolor{darkgray}{rgb}{0.31,0.31,0.33} +\RequirePackage{babel} +\RequirePackage[tbtags,fleqn]{amsmath} +\RequirePackage{amsthm} +\thm@headfont{% + \textcolor{darkgray}{$\blacktriangleright$}\nobreakspace\sffamily\bfseries} +\def\th@remark{% + \thm@headfont{% + \textcolor{darkgray}{$\blacktriangleright$}\nobreakspace\sffamily}% + \normalfont % body font + \thm@preskip\topsep \divide\thm@preskip\tw@ + \thm@postskip\thm@preskip +} +\def\@endtheorem{\endtrivlist}%\@endpefalse +\renewcommand\qedsymbol{\textcolor{darkgray}{\ensuremath{\blacktriangleleft}}} +\renewenvironment{proof}[1][\proofname]{\par + \pushQED{\qed}% + \normalfont \topsep6\p@\@plus6\p@\relax + \trivlist + \item[\hskip\labelsep + \color{darkgray}\sffamily\bfseries + #1\@addpunct{.}]\ignorespaces +}{% + \popQED\endtrivlist%\@endpefalse +} +\theoremstyle{plain} +\newtheorem{theorem}{Theorem} +\newtheorem{lemma}[theorem]{Lemma} +\newtheorem{corollary}[theorem]{Corollary} +\theoremstyle{definition} +\newtheorem{definition}[theorem]{Definition} +\newtheorem{example}[theorem]{Example} +\theoremstyle{remark} +\newtheorem*{remark}{Remark} +\ifx\numberwithinsect\relax + \@addtoreset{theorem}{section} + \edef\thetheorem{\expandafter\noexpand\thesection\@thmcountersep\@thmcounter{theorem}} +\fi +\RequirePackage{graphicx} +\RequirePackage{array} +\let\@classzold\@classz +\def\@classz{% + \expandafter\ifx\d@llarbegin\begingroup + \toks \count@ = + \expandafter{\expandafter\small\the\toks\count@}% + \fi + \@classzold} +\RequirePackage{multirow} +\RequirePackage{tabularx} +\RequirePackage[online]{threeparttable} +\def\TPTtagStyle#1{#1)} +\def\tablenotes{\small\TPT@defaults + \@ifnextchar[\TPT@setuptnotes\TPTdoTablenotes} % ] +\RequirePackage{listings} +\lstset{basicstyle=\small\ttfamily,% + backgroundcolor=\color[rgb]{0.85,0.85,0.86},% + frame=single,framerule=0pt,xleftmargin=\fboxsep,xrightmargin=\fboxsep} +\RequirePackage{lastpage} +\IfFileExists{doi.sty} + {\RequirePackage{doi}% + \renewcommand*{\doitext}{}} + {\RequirePackage{hyperref}% + \def\doi##1{##1}} +\hypersetup{pdfborder={0 0 0}} +\RequirePackage[labelsep=space,singlelinecheck=false,% + font={up,small},labelfont={sf,bf},% + listof=false]{caption}%"listof" instead of "list" for backward compatibility +\@ifpackagelater{hyperref}{2009/12/09} + {\captionsetup{compatibility=false}}%cf. http://groups.google.de/group/comp.text.tex/browse_thread/thread/db9310eb540fbbd8/42e30f3b7b3aa17a?lnk=raot + {} +\DeclareCaptionLabelFormat{boxed}{% + \kern0.05em{\color[rgb]{0.99,0.78,0.07}\rule{0.73em}{0.73em}}% + \hspace*{0.67em}\bothIfFirst{#1}{~}#2} +\captionsetup{labelformat=boxed} +\captionsetup[table]{position=top} +\RequirePackage[figuresright]{rotating} +\RequirePackage{subfig} +\def\titlerunning#1{\gdef\@titlerunning{{\let\footnote\@gobble\markboth{#1}{#1}}}} +\def\authorrunning#1{% + \gdef\@authorrunning{\expandafter\def\expandafter\@tempa\expandafter{#1}% + \ifx\@tempa\@empty\else\markright{#1}\fi}} +\titlerunning{\@title} +\authorrunning{\AB@authrunning} +\newcommand*\volumeinfo[6]{% + {\gdef\@Editors{#1}% + \gdef\@Eds{Editor}\ifnum #2>1 \gdef\@Eds{Editors}\fi + \gdef\@Event{#3}% + \setcounter{page}{#6}}} +\volumeinfo{}{1}{}{}{}{1} +\RequirePackage{authblk} +\renewcommand*\Authand{{ and }} +\renewcommand*\Authfont{\Large\bfseries\mathversion{bold}} +\renewcommand*\AB@authnote[1]{\textsuperscript{#1}} +\renewcommand*\AB@affilnote[1]{\protect\item[#1]} +\renewcommand*\Affilfont{\fontsize{9.5}{12}\selectfont} +\setlength\affilsep{\baselineskip} +\newcommand\AB@authrunning{} +\newcommand\AB@authfortoc{} +\renewcommand\author[2][]% + {\ifnewaffil\addtocounter{affil}{1}% + \edef\AB@thenote{\arabic{affil}}\fi + \if\relax#1\relax\def\AB@note{\AB@thenote}\else\def\AB@note{#1}% + \setcounter{Maxaffil}{0}\fi + \ifnum\value{authors}>1\relax + \@namedef{@sep\number\c@authors}{\Authsep}\fi + \addtocounter{authors}{1}% + \begingroup + \let\protect\@unexpandable@protect \let\and\AB@pand + \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}% + \@temptokena=\expandafter{\AB@authors}% + {\def\\{\protect\\[\@affilsep]\protect\Affilfont + \protect\AB@resetsep}% + \xdef\AB@author{\AB@blk@and#2}% + \ifnewaffil\gdef\AB@las{}\gdef\AB@lasx{\protect\Authand}\gdef\AB@as{}% + \xdef\AB@authors{\the\@temptokena\AB@blk@and}% + \else + \xdef\AB@authors{\the\@temptokena\AB@as\AB@au@str}% + \global\let\AB@las\AB@lasx\gdef\AB@lasx{\protect\Authands}% + \gdef\AB@as{\Authsep}% + \fi + \gdef\AB@au@str{#2}}% + \@temptokena=\expandafter{\AB@authlist}% + \let\\=\authorcr + \xdef\AB@authlist{\the\@temptokena + \protect\@nameuse{@sep\number\c@authors}% + \protect\Authfont#2\AB@authnote{\AB@note}}% + %new + \@temptokena=\expandafter{\AB@authrunning}% + \let\\=\authorcr + \xdef\AB@authrunning{\the\@temptokena + \protect\@nameuse{@sep\number\c@authors}#2}% + % + %new + \@temptokena=\expandafter{\AB@authfortoc}% + \let\\=\authorcr + \xdef\AB@authfortoc{\the\@temptokena + \expandafter\noexpand\csname @sep\number\c@authors\endcsname#2}% + % + \endgroup + \ifnum\value{authors}>2\relax + \@namedef{@sep\number\c@authors}{\Authands}\fi + \newaffilfalse +} +\renewcommand\affil[2][]% + {\newaffiltrue\let\AB@blk@and\AB@pand + \if\relax#1\relax\def\AB@note{\AB@thenote}\else\def\AB@note{#1}% + \setcounter{Maxaffil}{0}\fi + \begingroup + \let\protect\@unexpandable@protect + \def\thanks{\protect\thanks}\def\footnote{\protect\footnote}% + \@temptokena=\expandafter{\AB@authors}% + {\def\\{\protect\\\protect\Affilfont}\xdef\AB@temp{#2}}% + \xdef\AB@authors{\the\@temptokena\AB@las\AB@au@str + \protect\\[\affilsep]\protect\Affilfont\AB@temp}% + \gdef\AB@las{}\gdef\AB@au@str{}% + {\xdef\AB@temp{#2}}% + \@temptokena=\expandafter{\AB@affillist}% + \xdef\AB@affillist{\the\@temptokena \AB@affilsep + \AB@affilnote{\AB@note}\protect\Affilfont\AB@temp}% + \endgroup + \let\AB@affilsep\AB@affilsepx} +\renewcommand\@author{\ifx\AB@affillist\AB@empty\AB@authrunning\else + \ifnum\value{affil}>\value{Maxaffil}\def\rlap##1{##1}% + \AB@authlist\\[\affilsep] + \labelwidth1.5em\labelsep\z@\leftmargini\labelwidth + \edef\@enumctr{enumi}% + \list\theenumi{\usecounter\@enumctr\def\makelabel##1{\rlap{##1}\hss}}% + \AB@affillist + \endlist + \else \AB@authors\fi\fi} +\newcommand*\Copyright[1]{% + \def\@Copyright{% + \setbox\@tempboxa\hbox{\includegraphics[height=14\p@,clip]{cc-by}}% + \hspace*{\wd\@tempboxa}\enskip\ifx#1\@empty \else \textcopyright\ #1;\\\fi + \href{http://creativecommons.org/licenses/by/3.0/}% + {\smash{\unhbox\@tempboxa}}\enskip + licensed under Creative Commons License CC-BY\\ + }} +\Copyright{\@empty} +\def\keywords#1{\def\@keywords{#1}} +\let\@keywords\@empty +\def\keywordsHeading{% + \textcolor{darkgray}{\fontsize{9.5}{12.5}\sffamily\bfseries + Keywords and phrases\enskip}} +\def\subjclass#1{\gdef\@subjclass{#1}} +\let\@subjclass\@empty +\def\subjclassHeading{% + \textcolor{darkgray}{\fontsize{9.5}{12.5}\sffamily\bfseries + 1998 ACM Subject Classification\enskip}} +\def\doiHeading{% + \textcolor{darkgray}{\fontsize{9.5}{12.5}\sffamily\bfseries + Digital Object Identifier\enskip}} +\def\serieslogo#1{\gdef\@serieslogo{#1}} +\serieslogo{} +\def\EventShortName#1{\gdef\@EventShortName{#1}} +\EventShortName{} +\def\DOI#1{\gdef\@DOI{#1}} +\DOI{} +\endinput +%% +%% End of file `lipics.cls'. diff -r d486c12deeab -r 2e2dca212fff etnms/ninems.aux --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/ninems.aux Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,60 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\providecommand\HyField@AuxAddToCoFields[2]{} +\citation{Davis18} +\citation{17Bir} +\babel@aux{UKenglish}{} +\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}} +\citation{AusafDyckhoffUrban2016} +\citation{OkuiSuzuki2010} +\citation{Vansummeren2006} +\citation{Sulzmann2014} +\citation{AusafDyckhoffUrban2016} +\citation{CrashCourse2014} +\citation{Kuklewicz} +\citation{Sulzmann2014} +\citation{Brzozowski1964} +\@writefile{toc}{\contentsline {section}{\numberline {2}The Algorithm by Brzozowski based on Derivatives of Regular Expressions}{3}{section.2}} +\citation{Sulzmann2014} +\newlabel{graph:*}{{1}{4}{The Algorithm by Brzozowski based on Derivatives of Regular Expressions}{equation.2.1}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3}Values and the Algorithm by Sulzmann and Lu}{4}{section.3}} +\newlabel{graph:2}{{2}{5}{Values and the Algorithm by Sulzmann and Lu}{equation.3.2}{}} +\citation{nielson11bcre} +\citation{AusafDyckhoffUrban2016} +\citation{Antimirov95} +\@writefile{toc}{\contentsline {section}{\numberline {4}Simplification of Regular Expressions}{8}{section.4}} +\citation{Sulzmann2014} +\citation{Sulzmann2014} +\@writefile{toc}{\contentsline {section}{\numberline {5}Current Work}{13}{section.5}} +\@writefile{toc}{\contentsline {section}{\numberline {6}Conclusion}{15}{section.6}} +\bibstyle{plain} +\bibdata{root} +\bibcite{Antimirov95}{1} +\bibcite{AusafDyckhoffUrban2016}{2} +\bibcite{Brzozowski1964}{3} +\bibcite{Davis18}{4} +\bibcite{CrashCourse2014}{5} +\bibcite{Kuklewicz}{6} +\bibcite{nielson11bcre}{7} +\bibcite{OkuiSuzuki2010}{8} +\bibcite{17Bir}{9} +\bibcite{Sulzmann2014}{10} +\bibcite{Vansummeren2006}{11} +\newlabel{LastPage}{{}{16}{}{page.16}{}} +\xdef\lastpage@lastpage{16} +\xdef\lastpage@lastpageHy{16} diff -r d486c12deeab -r 2e2dca212fff etnms/ninems.bbl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/ninems.bbl Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,71 @@ +\begin{thebibliography}{10} + +\bibitem{Antimirov95} +V.~Antimirov. +\newblock {P}artial {D}erivatives of {R}egular {E}xpressions and {F}inite + {A}utomata {C}onstructions. +\newblock {\em Theoretical Computer Science}, 155:291--319, 1995. + +\bibitem{AusafDyckhoffUrban2016} +F.~Ausaf, R.~Dyckhoff, and C.~Urban. +\newblock {POSIX} {L}exing with {D}erivatives of {R}egular {E}xpressions + ({P}roof {P}earl). +\newblock In {\em Proc.~of the 7th International Conference on Interactive + Theorem Proving (ITP)}, volume 9807 of {\em LNCS}, pages 69--86, 2016. + +\bibitem{Brzozowski1964} +J.~A. Brzozowski. +\newblock {D}erivatives of {R}egular {E}xpressions. +\newblock {\em Journal of the {ACM}}, 11(4):481--494, 1964. + +\bibitem{Davis18} +J.~C. Davis, C.~.A. Coghlan, F.~Servant, and D.~Lee. +\newblock {T}he {I}mpact of {R}egular {E}xpression {D}enial of {S}ervice + ({ReDoS}) in {P}ractice: {A}n {E}mpirical {S}tudy at the {E}cosystem {S}cale. +\newblock In {\em Proc.~of the 26th ACM Joint Meeting on European Software + Engineering Conference and Symposium on the Foundations of Software + Engineering (ESEC/FSE)}, pages 246--256, 2018. + +\bibitem{CrashCourse2014} +N.~B.~B. Grathwohl, F.~Henglein, and U.~T. Rasmussen. +\newblock {A} {C}rash-{C}ourse in {R}egular {E}xpression {P}arsing and + {R}egular {E}xpressions as {T}ypes. +\newblock Technical report, University of Copenhagen, 2014. + +\bibitem{Kuklewicz} +C.~Kuklewicz. +\newblock {R}egex {P}osix. +\newblock \url{https://wiki.haskell.org/Regex_Posix}. + +\bibitem{nielson11bcre} +Fritz~Henglein Lasse~Nielsen. +\newblock Bit-coded regular expression parsing. +\newblock {\em LATA}, 2011. + +\bibitem{OkuiSuzuki2010} +S.~Okui and T.~Suzuki. +\newblock {D}isambiguation in {R}egular {E}xpression {M}atching via {P}osition + {A}utomata with {A}ugmented {T}ransitions. +\newblock In {\em Proc.~of the 15th International Conference on Implementation + and Application of Automata (CIAA)}, volume 6482 of {\em LNCS}, pages + 231--240, 2010. + +\bibitem{17Bir} +Asiri Rathnayake and Hayo Thielecke. +\newblock Static analysis for regular expression exponential runtime via + substructural logics. +\newblock {\em arXiv:1405.7058}, 2017. + +\bibitem{Sulzmann2014} +M.~Sulzmann and K.~Lu. +\newblock {POSIX} {R}egular {E}xpression {P}arsing with {D}erivatives. +\newblock In {\em Proc.~of the 12th International Conference on Functional and + Logic Programming (FLOPS)}, volume 8475 of {\em LNCS}, pages 203--220, 2014. + +\bibitem{Vansummeren2006} +S.~Vansummeren. +\newblock {T}ype {I}nference for {U}nique {P}attern {M}atching. +\newblock {\em ACM Transactions on Programming Languages and Systems}, + 28(3):389--428, 2006. + +\end{thebibliography} diff -r d486c12deeab -r 2e2dca212fff etnms/ninems.blg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/ninems.blg Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,46 @@ +This is BibTeX, Version 0.99d (TeX Live 2018) +Capacity: max_strings=100000, hash_size=100000, hash_prime=85009 +The top-level auxiliary file: ninems.aux +The style file: plain.bst +Database file #1: root.bib +You've used 11 entries, + 2118 wiz_defined-function locations, + 572 strings with 5980 characters, +and the built_in function-call counts, 3732 in all, are: += -- 376 +> -- 133 +< -- 7 ++ -- 53 +- -- 42 +* -- 235 +:= -- 590 +add.period$ -- 33 +call.type$ -- 11 +change.case$ -- 55 +chr.to.int$ -- 0 +cite$ -- 11 +duplicate$ -- 161 +empty$ -- 316 +format.name$ -- 42 +if$ -- 806 +int.to.chr$ -- 0 +int.to.str$ -- 11 +missing$ -- 9 +newline$ -- 58 +num.names$ -- 22 +pop$ -- 60 +preamble$ -- 1 +purify$ -- 43 +quote$ -- 0 +skip$ -- 127 +stack$ -- 0 +substring$ -- 250 +swap$ -- 54 +text.length$ -- 7 +text.prefix$ -- 0 +top$ -- 0 +type$ -- 44 +warning$ -- 0 +while$ -- 40 +width$ -- 13 +write$ -- 122 diff -r d486c12deeab -r 2e2dca212fff etnms/ninems.fdb_latexmk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/ninems.fdb_latexmk Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,318 @@ +# Fdb version 3 +["bibtex ninems"] 1566151404 "ninems.aux" "ninems.bbl" "ninems" 1566151406 + "/usr/local/texlive/2018/texmf-dist/bibtex/bst/base/plain.bst" 1480098433 20613 bd3fbfa9f64872b81ac57a0dd2ed855f "" + "ninems.aux" 1566151406 2372 5639e8b5a4918a41061db4465c3b6804 "" + "root.bib" 1566151213 12416 07039ef4792ac682b28fb56d3645e351 "" + (generated) + "ninems.blg" + "ninems.bbl" +["pdflatex"] 1566151404 "ninems.tex" "ninems.pdf" "ninems" 1566151406 + "/usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-ec.enc" 1480098668 2375 baa924870cfb487815765f9094cf3728 "" + "/usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-mathex.enc" 1480098668 3486 c7eadf5dcc57b3b2d11736679f6636ba "" + "/usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-mathit.enc" 1480098668 2405 5dcf2c1b967ee25cc46c58cd52244aed "" + "/usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-mathsy.enc" 1480098668 2840 216e6e45ad352e2456e1149f28885bee "" + "/usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-rm.enc" 1480098668 2327 9d6df24f9c4f7368395224341a95523a "" + "/usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-ts1.enc" 1480098668 3031 6c4d3515bf7115d8518af1c9ab97ca44 "" + "/usr/local/texlive/2018/texmf-dist/fonts/map/fontname/texfonts.map" 1511824771 3332 103109f5612ad95229751940c61aada0 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm" 1480098696 3584 adb004a0c8e7c46ee66cad73671f37b4 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/jknappen/ec/ectt1000.tfm" 1480098696 1536 06717a2b50de47d4087ac0e6cd759455 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm" 1480098698 916 f87d7c45f9c908e672703b83b72241a3 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm" 1480098698 924 9904cf1d39e9767e7a3622f2a125a565 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm" 1480098698 928 2dc8d444221b7a635bb58038579b861a "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm" 1480098698 908 2921f8a10601f252058503cc6570e581 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm" 1480098698 940 75ac932a52f80982a9f8ea75d03a34cf "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm" 1480098698 940 228d6584342e91276bf566bcf9716b83 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmbx10.tfm" 1480098712 12076 b54175e02101bea1addf6b2d0197ed12 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmbx12.tfm" 1480098712 12088 d750ac78274fa7c9f73ba09914c04f8a "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmbx9.tfm" 1480098712 12080 8da3d5e88196e4de175949ad7749b42f "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr10.tfm" 1480098712 12056 7e13df7fe4cbce21b072ba7c4f4deb6e "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr12.tfm" 1480098712 12092 7b1546e2d096cfd5dcbd4049b0b1ec2e "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr17.tfm" 1480098712 12156 ca1ae6a3c8564e89597f1f993fba1608 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr5.tfm" 1480098712 12020 46464c854bf317de2a7a0bbe4a1160ca "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr6.tfm" 1480098712 12048 c1068d0f4772be9b0ec447692e1d6d82 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr7.tfm" 1480098712 12064 09aa3eeac96bf141d673bb1b0385ce55 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr9.tfm" 1480098712 12084 b7f5e4c003de6f57f07c7e9fee73a37c "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmri10.tfm" 1480098712 17148 9556e1b5f936b77a796f68d2d559ba99 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmri7.tfm" 1480098712 17168 78a37e395d0470967cfda94332b0716a "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmri9.tfm" 1480098712 17148 ca1ae65757b004f470b8cd636199f6fc "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmss10.tfm" 1480098712 11176 53ebf7a171df1f9447b387b178768bb5 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmss12.tfm" 1480098712 11232 955a7245396175d9219648eadc654ac9 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmss17.tfm" 1480098712 11252 57c8b53a3aeebba8c17658d4221d47ec "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmssbx10.tfm" 1480098712 11168 06d87f5698fd1b642d96449b7c8d90b0 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmtk10.tfm" 1480098712 1368 5bfeb1cf8f9f0acdb7436bfaa8e0da4e "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmtt10.tfm" 1480098712 1372 2ef2c2b492b3c4cd7879fe083abbb061 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmtt9.tfm" 1480098712 1372 a2ff2d4391a2d6bba15b518acb79e80f "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmex10.tfm" 1480098712 992 ce925c9346c7613270a79afbee98c070 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi10.tfm" 1480098712 1528 6d36b2385e0ca062a654de6ac59cb34f "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi5.tfm" 1480098712 1508 198f5b7b99b5769126de3a533f6fc334 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi6.tfm" 1480098712 1512 94a3fd88c6f27dbd9ecb46987e297a4e "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi7.tfm" 1480098712 1528 d5b028dd23da623848ef0645c96a1ed7 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi9.tfm" 1480098712 1524 cdf05765c2a8bdb569ea0aa208fb0947 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy10.tfm" 1480098712 1308 02cc510f9dd6012e5815d0c0ffbf6869 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy5.tfm" 1480098712 1296 54ed1a711e2303d5282575278e3620b0 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy6.tfm" 1480098712 1300 b0605d44c16c22d99dc001808e4f24ea "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy7.tfm" 1480098712 1304 32f22a15acc296b2a4e15698403dcb88 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy9.tfm" 1480098712 1300 ca37bc0213808d24f74bf4d32f81f80d "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmbx10.tfm" 1480098712 11880 35fcf136a2198418dfc53c83e9e2a07f "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmbx5.tfm" 1480098712 11828 9b1880528bdbe7e6035fd1b46bff1bbb "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmbx6.tfm" 1480098712 11852 eda7061aa4cc8552ba736dae866e4460 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmbx7.tfm" 1480098712 11864 44cdb751af976143ebc0bed7eb1df9f4 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmbx9.tfm" 1480098712 11872 6fc83bd89656207db7e11b4f7ac7546e "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr10.tfm" 1480098712 11868 4f81e9b6033c032bdaf9884f4d7ef412 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr5.tfm" 1480098712 11804 aefb10c002e6492c25236524a447f969 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr6.tfm" 1480098712 11836 e3b6ce3e601aec94f64a536e7f4224d5 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr7.tfm" 1480098712 11852 5a9022f105fd1ee2797df861e79ae9a0 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr9.tfm" 1480098712 11884 c93929a6974dce79eabb778f219d7e18 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmri10.tfm" 1480098712 16968 1b588d0f410bd67a83eaecf8c64b2a43 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmri7.tfm" 1480098712 16984 f7462c768466838a2a9e916b6dee71c6 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmri9.tfm" 1480098712 16968 4675b6ed6aaa9b6b1446f80f565cd449 "" + "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ts1-lmr7.tfm" 1480098712 1576 0561ecf33ab9fc2aa99d0cdf494795fd "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmbx10.pfb" 1480098742 121021 1bf809ce4a594679006bd72263eba59b "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmbx12.pfb" 1480098742 116908 1fca96723793882c2e0160350c192fc8 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmbx7.pfb" 1480098742 119461 4a38ff487952cdeffc81de782e40a4a0 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmbx9.pfb" 1480098742 126646 439622e6fd57f388c9979d39c4fce535 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmex10.pfb" 1480098742 23055 2e5b42921de910eaa97b85df04ca4891 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmmi10.pfb" 1480098742 30388 702fae6a5f0e6e9c48a1d872b442ffcf "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmmi5.pfb" 1480098742 31443 ba2241b179aa231f73e052863720cb42 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmmi6.pfb" 1480098742 31113 04b711c9a4c7f8cb4ed784c6fc4cc1c5 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmmi7.pfb" 1480098742 30789 be3ebdf20b6442cc4aaf81a81e17daf4 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmmi9.pfb" 1480098742 30698 e53a423459271d6c5cdd91f7559396af "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmr10.pfb" 1480098742 119235 f35b44530a1d90eb90fe15d9cba67ea0 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmr5.pfb" 1480098742 120387 212cad1e763d510fc9c3ce2466274a57 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmr6.pfb" 1480098742 123394 d390152bb30feeb496aaaa93299ee9ba "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmr7.pfb" 1480098742 121145 68312a933e2c689ed40ec0aba373e279 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmr9.pfb" 1480098742 121065 50bbfa703ce7e11638752ef5a6d120c7 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmri10.pfb" 1480098742 112593 fda2373ba4420af33949610de4c28fe8 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmri7.pfb" 1480098742 111437 74f3e490d3223b7d4352605020ac7fc2 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmri9.pfb" 1480098742 109598 cb570392cb143ca78182169795feed7a "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmssbx10.pfb" 1480098742 119663 e82fa1a58f98ccd89bdbd77311ac9cf1 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmsy10.pfb" 1480098742 27863 09ce3735688ffde955e72da27c95b61a "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmsy6.pfb" 1480098742 28109 6d61305ed3d0eb794ebe36f15cf44aa0 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmsy7.pfb" 1480098742 27941 d1f5d03f61a46c3fcc3a2ba904ddda52 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmsy9.pfb" 1480098742 27835 16c2fa83351d4ef8cf5aebfab8a44bc1 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmtk10.pfb" 1480098742 117319 7f8361f845845ce6d5b36cbd9f9cf377 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmtt10.pfb" 1480098742 113227 1010e11451afc2822c95dae77c390042 "" + "/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmtt9.pfb" 1480098742 108480 ee1de99df36ee0a16b36023b9c9d8a58 "" + "/usr/local/texlive/2018/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1480098806 71627 94eb9990bed73c364d7f53f960cc8c5b "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/babel-english/UKenglish.ldf" 1496785618 2772 43f923fdb8719709f1f3e1f4f671e083 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/babel-english/english.ldf" 1496785618 7008 9ff5fdcc865b01beca2b0fe4a46231d4 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/babel/babel.def" 1518644053 67244 2dce3d67c354c8d92f638d0f8682fb73 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/babel/babel.sty" 1518644053 15861 065fe343082d0cd2428cf984d6b2ef66 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/babel/switch.def" 1518644053 12523 d80bc74bf5e02fe4304443a6de8d01be "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/babel/txtbabel.def" 1518644053 7434 1b3955075683beb1c883a0fcf92ed2d5 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/ifxetex/ifxetex.sty" 1480098815 1458 43ab4710dc82f3edeabecd0d099626b2 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/gettitlestring.sty" 1480098815 8237 3b62ef1f7e2c23a328c814b3893bc11f "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty" 1522444781 185313 3e16abd014cb2c328020e45d63ed7f45 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty" 1480098815 70864 bcd5b216757bd619ae692a151d90085d "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex" 1480098816 1006 b103be0bfc8c1682ff1fa9760697a329 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex" 1480098816 43226 167a99346bfe2676e3efcdde2d81fe45 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex" 1480098816 19302 4f089dc590e71f7331e6d5b5ea85273b "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex" 1480098816 6068 edae1e768a7d8d8f0f00e953d2b0153e "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex" 1480098816 7041 a891ad72049e17c4e366c40ca37b0ccb "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex" 1480098816 4625 40c07e9f6f2f7c674704b3f2055560ce "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex" 1480098816 2631 7eefa6cdbefd8d4e2bad7262cf1094cd "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex" 1480098816 43477 81143b33d9ebafdeead07ede13372427 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex" 1480098816 17436 8d99d4113be311daf23deff86991ee7d "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex" 1480098816 20772 c57e34db4aa7b1da013169d04b743eac "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex" 1480098816 9641 711f0edc22c180a5caf168b6e8970057 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex" 1480098816 34516 658a71478d21df554bce9d9cd436203a "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex" 1480098816 3052 e5672c657232fd63b0a9853b0746297c "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex" 1480098816 16669 4ec6e40088fc6de6334b443fe2dc59f0 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex" 1480098816 21541 4cd19f8ff7dd74d5aa7d803a6397af84 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex" 1480098816 19998 d77fef95c7369827753d17fd11be19c4 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex" 1480098816 8943 2e2495b057f8f0035b5568394d489963 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.code.tex" 1480098816 5484 4bb4a5cbbd05d6f17a261b59dbd014f1 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.pathmorphing.code.tex" 1480098816 319 d246cee5ce1aaf2afe558acd4731d5ba "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.pathreplacing.code.tex" 1480098816 1255 7940bad47e253420d587a4a875c7c06c "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex" 1480098816 4272 244fffa48bd048dbb745959f515cb1a8 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryplotmarks.code.tex" 1480098816 443 6742ac279d940e87725265f9145ed090 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryquotes.code.tex" 1480098816 4029 2ecf87728f141134f0b1e7bd0c2b1225 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex" 1480098816 11599 d694704a88e2f9007c996d3a6a4d629c "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex" 1480098816 176652 1c2926908e2b356d454795c35385d580 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.pathmorphing.code.tex" 1480098816 8854 7be3c3b9eb0de90885a881085ce8e118 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.pathreplacing.code.tex" 1480098816 7089 02ec01183269fb6991e0be82d034128a "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.meta.code.tex" 1480098816 58967 21f38abaa0fb7112dd851bc45ee45849 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryfpu.code.tex" 1480098816 71137 c32d35e60bbb16d313e5b57ffc7e7f4a "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex" 1480098816 32969 dbcfd5a7de6a0f7255c333ef60287d59 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex" 1480098816 14289 3e102605531a114ad76afca2a43e66b7 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex" 1480098816 454 9e9e7c99f4da4f41698be21eaef4938e "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex" 1480098816 13416 940ea6971d7a65dc440d3479939c66ae "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex" 1480098816 94097 62ac62cda46eb715560dc27f9ed6e8b1 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex" 1480098816 9375 5adc70f722abd29fc250d59e0694b548 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex" 1480098816 22069 7c21c42b15718ce922f36235be360490 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex" 1480098816 8210 a7be5b52ef3d2c087b7dc3d52898b67e "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex" 1480098816 3534 c7f28fbac13616513e513efe93b8569b "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex" 1480098816 3167 7c9394e79aac27db96a92f9b2792b858 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex" 1480098816 9289 261407875b9dbb0194691c3eb893610f "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex" 1480098816 7078 946ddf4a7e57219b6afdbad98eb6731b "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex" 1480098816 2688 139c6abc86761a6190c2f4bef5d752be "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex" 1480098816 92284 dcf023dbaa84e6c50e11c2f79fe8cfa6 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex" 1480098816 35430 046e15fbb65e74d8f0e7945f99741fdb "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex" 1480098816 7099 f44d505bae6c7c2b933cdd63441db4b9 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmoduledecorations.code.tex" 1480098816 71902 658cc1e13f73daec4225b8fc1c27600b "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex" 1480098816 20934 2328bd2e04520e1ab077ac4ee13b8935 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex" 1480098816 16203 83cbe1220e389eeee283a6168f9a567b "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex" 1480098816 42906 d54376d96df1a2ae2d33fb722236d8e9 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg" 1480098816 978 15af626ebd3d4d790aac19170dac04f2 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def" 1480098816 5437 d91f93ed61ecdc57e119849b2d784a0b "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-luatex.def" 1480098816 14274 79db5dec277817e8688d603ca0741ba3 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def" 1480098816 13507 809d848d9262638e1b1705a68a73c566 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex" 1480098816 35113 2ccc50c1c9573e4bac9230d030f9c67c "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex" 1480098816 1983 b5994ebbcee17f1ba3d29bb1bd696fcf "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex" 1480098816 7881 d459d6057e13d10ce7a227ae44b7295e "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex" 1480098816 22211 d696ef78c12269178882d218b2cf191d "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex" 1480098816 36194 e194ef4e0b396b531a3891feb4b1cc22 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex" 1480098816 33377 af391d6ad1bfcbe2278e191f48e43ba8 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex" 1480098816 2536 a3b0529d815a2759ba157b56610a6377 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex" 1480098816 6833 114eda2cf1d348e0e7e477a1a4dc1941 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex" 1480098816 16501 ab0135765e27b6b8dae047831fe84818 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def" 1480098816 5544 294baac9629ba59f675b1f2027ad7136 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/libs/pgflibrarypgfplots.surfshading.code.tex" 1480098816 22701 5fab7b8ebb90b053dc067d1bd37e43c2 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/libs/pgfplotslibrary.code.tex" 1480098816 3047 aa82404aec57311271f4991c44bd71dc "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsarray.code.tex" 1496704190 23537 54be8160344d894595f6d145b1311658 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsdeque.code.tex" 1480098816 4288 b8d6247899b21e3bb66bb11b24d30f2c "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsliststructure.code.tex" 1480098816 13828 11d1b09335a4a8baa693dd1e6cac3edf "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsliststructureext.code.tex" 1496704190 24373 6544c1554e5da33118301011eb03058d "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsmatrix.code.tex" 1480098816 18861 7dc35832c8ccea3aa73cdcd75ec0a60b "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstableshared.code.tex" 1523216742 79639 86777dd9ea988e5800e7d2826d481305 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_leq.code.tex" 1523216742 8612 256bf4c587f43f85e98dba5e0df193c1 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_loader.code.tex" 1523216742 11930 011a1d7d82c7446501c720a1fa4637a3 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryfpu.code.tex" 1523216742 75601 be8948c5f05d2bc3bcde4f8f4608236c "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmathfloat.code.tex" 1523216742 95260 d30937ac6920637492716defd53343e4 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex" 1523216742 481695 ebf89fad86a29ee0f5494f7b8902726d "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.errorbars.code.tex" 1480098816 22428 72578a4c9324bc5dfafe23fe64f64024 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.markers.code.tex" 1496704190 12462 43d76eeeb8efa51f11a058cb813ba410 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.paths.code.tex" 1480098816 2419 026baafbf72a109e199ede6fbbfd9caa "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex" 1523216742 516 984b5334f6dc5efb409e12ecc5d0fd99 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.scaling.code.tex" 1523216742 123680 d33fda4929d7200c3e6f0ec83c006aef "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessing.code.tex" 1523216742 364778 01f6e73e3b25a88c502f2fe8fbaf8fa6 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex" 1480098816 19944 7957349fbe31c4e8dea9de4cd41cb086 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandler.code.tex" 1496704190 133871 7247b31742a2240343a6739cb76d6821 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplotimage.code.tex" 1480098816 24402 288fc3f6c7980728b8a519dfd1737d22 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.code.tex" 1496704190 117673 ba2a69982abb70115c5431acf313d1e6 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.code.tex" 1480098816 26190 c428334c805ae1d15110eb8670292947 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsticks.code.tex" 1523216742 91093 a67c3943f1672f56f56272bb501f7093 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfshading.pgfsys-pdftex.def" 1480098816 5907 9dc460712c23e5b3338820499d47608c "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/sys/pgfplotssysgeneric.code.tex" 1480098816 3095 c82d281b748902a65be2ccca97360b11 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.code.tex" 1480098816 23050 a369aa910ef860a3621fe0459faa335c "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.data.code.tex" 1480098816 26859 7a4ee9d206fb0a0daa0d3108445afb57 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotscolor.code.tex" 1480098816 23958 1b96260863091af1669c3a38b1c4c9af "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotscolormap.code.tex" 1496704190 88956 018b2512ef27998e97af72e8b1dcdbd5 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.code.tex" 1496704190 69300 d69422610b847918ed9c5f4455896b9f "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.verb.code.tex" 1480098816 3286 c17079ba50483e1ac1721268ea016041 "" + "/usr/local/texlive/2018/texmf-dist/tex/generic/tikz-cd/tikzlibrarycd.code.tex" 1480098819 22926 7a5ee454116bdf5b06ac86f5083f800b "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty" 1480098820 26750 ce139c05a983e19ddca355b43e29c395 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty" 1480098820 3457 d9077efe6b74c5a094199256af8d7d9a "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/amscls/amsthm.sty" 1513722769 12604 3dec726c041422879dc3268237f09026 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1480098820 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/amssymb.sty" 1480098820 13829 94730e64147574077f8ecfea9bb69af4 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/eucal.sty" 1480098820 1354 3b57e8e5596e08010088a7c0c36760f9 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsa.fd" 1480098820 961 6518c6525a34feb5e8250ffa91731cff "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsb.fd" 1480098820 961 d02606146ba5601b5645f987c92e6193 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1523134290 2211 ca7ce284ab93c8eecdc6029dc5ccbd73 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsgen.sty" 1523134290 4161 7f6eb9092061a11f87d08ed13515b48d "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsmath.sty" 1523134290 84354 7292177bb735c466b78634ee4efd537e "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsopn.sty" 1523134290 4116 32e6abd27229755a83a8b7f18e583890 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amstext.sty" 1523134290 2432 8ff93b1137020e8f21930562a874ae66 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/base/article.cls" 1523050425 19823 fcbc01552b07b608574cbf8e1977e0c0 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/base/fleqn.clo" 1523050425 4754 1d92271cd4b393d657812b84260b22c6 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/base/fontenc.sty" 1523050425 4573 ae83473dfe6aea3508ab88d22c4457b2 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/base/ifthen.sty" 1523050425 5161 c004ea5a189d4bdcf42e86754ad75a58 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/base/inputenc.sty" 1523050425 5052 f2525dfd6e503dc383e90b568c6c9f02 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/base/size10.clo" 1523050425 8294 b0f177401f895563eb19304d2389582d "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/base/t1enc.def" 1523050425 10008 3208fbcdd7b3f5dd0dda02e6507bf38c "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/base/textcomp.sty" 1523050425 16156 c88fab7ab9716ccedc3dc1fa0f1f22da "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1cmr.fd" 1523050425 2433 cdefd2509a12ba58001f2024f63aae9a "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1enc.def" 1523050425 7769 97b639552068544f7c98d557abb19f41 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1enc.dfu" 1523050425 4973 a0ebe45f171b33c2df4e84416140511f "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption.sty" 1480098823 66233 8b81cfab95a1f8fc2f0f6c89415b087a "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption3.sty" 1480098823 64866 1ea74c5f2d1685881497f021b8f186b2 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/doi/doi.sty" 1480098826 3066 6c742a1757444e887247ceb934fc9960 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/enumitem/enumitem.sty" 1480098827 42666 6fa770e3485520a6a5f2ea7d259c8f8d "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1480098830 1213 620bba36b25224fa9b7e1ccb4ecb76fd "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1480098830 1224 978390e9c2234eab29404bc21b268d1e "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-def/pdftex.def" 1515537368 17334 520b9b85ad8a2a48eda3f643e27a5179 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/color.sty" 1523134385 7028 112f909feb676788e7ea1c5b0b76320f "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphics.sty" 1523134385 15272 5a97061616e0c8b2aa79c6615ff769f4 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphicx.sty" 1523134385 9063 d0a305975932762117cd1f06a582f896 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/keyval.sty" 1523134385 2591 6404d0c7d28505fb38ce0d86c2e28ae7 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/rotating.sty" 1523134385 6966 6f46d3aa8066c4205b8f244817b24ed7 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/trig.sty" 1523134385 3977 cb9221976ed8a183afad65b59aa8629a "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hpdftex.def" 1518041854 51699 9069fc983fff0db91d59a15af144ad62 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hyperref.sty" 1518041854 234088 2c849389d62d41c593d9f5176c4116ab "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/nameref.sty" 1480098831 12949 81e4e808884a8f0e276b69410e234656 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/pd1enc.def" 1518041854 14098 4e70bf396c7c265bd8b0e5cab3fd3d4d "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/lastpage/lastpage.sty" 1480098832 9922 eb7d00b99f0f5207f71a5cdcbafceac1 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1480098833 678 4792914a8f45be57bb98413425e4c7af "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/hyperref.cfg" 1480098833 235 6031e5765137be07eed51a510b2b8fb7 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.cfg" 1480098833 1827 d72ad54409ca5c1068a1939c63441bd2 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.sty" 1480098833 80336 ff90c926c3d7bfdaa3d80ca57123b0bb "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/listings/lstmisc.sty" 1480098833 77028 c3eb00afb55a32bc13ca8da7f5234377 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/lm/lmodern.sty" 1480098833 1606 c17281c7cff2bbd7ff0173e1433487ec "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/lm/omllmm.fd" 1480098833 888 44447a3a3af84a22454ef89500942d93 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/lm/omslmsy.fd" 1480098833 805 af340a8260c447aa315cfc740ff0152f "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/lm/omxlmex.fd" 1480098833 566 a94661f7b66063f191960bb7935b6ba2 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/lm/ot1lmr.fd" 1480098833 1880 bae7b659316f7344a86218ad38b01d91 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmr.fd" 1480098833 1865 afbfccbe7fda9c2dc5078ad7c486bbed "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmss.fd" 1480098833 1639 ba1c66ef577aa5cadc2c0fdc691a26ee "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmtt.fd" 1480098833 2681 354015af3b61e7be30009f084986375a "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/lm/ts1lmr.fd" 1480098833 1912 6435298ac30b512714b02d4c8c9e923c "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/ms/everyshi.sty" 1480098835 3878 6aa7c08ff2621006e0603349e40a30a8 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/multirow/multirow.sty" 1480201744 5015 cd8d25106b58dfc16af57528a07d0bc9 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/ncctools/nccmath.sty" 1480098835 14420 c8e5688c430ef8b5badb072b1fb6e43e "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/auxhook.sty" 1480098836 3834 4363110eb0ef1eb2b71c8fcbcdb6c357 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty" 1480098836 12095 5337833c991d80788a43d3ce26bd1c46 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/grfext.sty" 1480098836 7075 2fe3d848bba95f139de11ded085e74aa "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/kvoptions.sty" 1480098836 22417 1d9df1eb66848aa31b18a593099cf45c "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty" 1480098836 9581 023642318cef9f4677efe364de1e2a27 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty" 1480098837 1197 8a80cdde14696a9198f1793a55dcf332 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty" 1480098837 410 5bf12ea7330e5f12c445332a4fe9a263 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty" 1480098837 21115 facf03b7dbe5ea2f5f1dce1ac84b5d05 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty" 1480098837 1091 d9163d29def82ee90370c8a63667742c "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty" 1480098837 339 592cf35cba3d400082b8a9a5d0199d70 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/math/pgfmath.sty" 1480098837 306 0796eafca5e159e6ec2167a6d22d81b1 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty" 1480098837 443 0b2e781830192df35c0fd357cf13e26e "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgffor.sty" 1480098837 348 8927fde343487e003b01a4c2ca34073b "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty" 1480098837 274 4cad6e665cc93ac2ac979039a94fa1e1 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty" 1480098837 325 2bcd023400636339210573e2b3ee298b "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/pgfplots/pgfplots.sty" 1496704190 4904 ee78b44e85d6fccf08cd99370557481e "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/preprint/authblk.sty" 1480098837 7016 985a983ce041cc8959cd31133cba0244 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/soul/soul.sty" 1480098839 23636 c37eef0334dd2011d112d2040c11328f "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/subfig/subfig.sty" 1480098839 21369 9ef165ca6df8815c92e693146a376c92 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/threeparttable/threeparttable.sty" 1480098840 13506 a4e71a27db1a69b6fabada5beebf0844 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/tikz-cd/tikz-cd.sty" 1480098841 880 13851da4be5462fa46c6b08cd5c811d2 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/tools/array.sty" 1523134385 13312 20cb94dd6e4c9ea3a77ebbd18724e5c4 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/tools/tabularx.sty" 1523050425 7145 01b7b53bf69f5c0f63803657eb51217f "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/url/url.sty" 1480098842 12796 8edb7d69a20b857904dd0ea757c14ec9 "" + "/usr/local/texlive/2018/texmf-dist/tex/latex/xcolor/xcolor.sty" 1480098843 55589 34128738f682d033422ca125f82e5d62 "" + "/usr/local/texlive/2018/texmf-dist/web2c/texmf.cnf" 1522066949 33362 cf75436e19743e94a92a6b1b9183c434 "" + "/usr/local/texlive/2018/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1523934492 2717033 f61a5287d9c22a39a74f1979fe3f905c "" + "/usr/local/texlive/2018/texmf-var/web2c/pdftex/pdflatex.fmt" 1549538101 4220279 ac6c634ffc568095be665c04549bc5b7 "" + "/usr/local/texlive/2018/texmf.cnf" 1523934483 577 0b39adfd7c93507ff20c9c14c2f1a33f "" + "bad-scala.data" 1566148636 509 83204f30f9d9c8b688a60deb95dbc411 "" + "cc-by.pdf" 1374140506 59879 b534039833ae0720e95faf00c3f48850 "" + "data.sty" 1566149213 1606 78af387606991981db665cacc0fdf491 "" + "good-java.data" 1566148929 329 d4868cce8f3f0cd7ae013a03eb9789a6 "" + "graphic.sty" 1561484622 268 61333772018f6844876dbf8ab577e80d "" + "lipics-logo-bw.pdf" 1301409269 13746 f468fb282d86ba458872de888bef15fe "" + "lipics.cls" 1374140506 24080 810be2aab616dd3ccbae33bc490ecfd9 "" + "ninems.aux" 1566151406 2372 5639e8b5a4918a41061db4465c3b6804 "" + "ninems.bbl" 1566151404 2653 cb69e84447c5f5be52b35ee2801cda50 "bibtex ninems" + "ninems.out" 1566151406 395 43e8d84961f15c811b4165a2af60ef5a "" + "ninems.tex" 1566151302 62780 3443b6cf685e6b330f8a4fff4bcaa891 "" + "re-java.data" 1561931326 313 acbd86dc60997b655183097df0c58b62 "" + "re-js.data" 1561931326 230 6fe525179c2c009e6193e4ce1b3a7607 "" + "re-python2.data" 1561931326 253 32c6a11f98a7a3cf4abff1f989dfc614 "" + (generated) + "/Users/cstan/Desktop/code_scala/cst_tests/ninems/ninems.log" + "ninems.log" + "good-java.data" + "ninems.aux" + "ninems.vtc" + "/Users/cstan/Desktop/code_scala/cst_tests/ninems/ninems.pdf" + "good-ava.data" + "bad_scala.data" + "ninems.out" + "bad-scala.data" + "good_java.data" + "ninems.pdf" diff -r d486c12deeab -r 2e2dca212fff etnms/ninems.fls --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/ninems.fls Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,508 @@ +PWD /Users/cstan/Desktop/code_scala/cst_tests/ninems +INPUT /usr/local/texlive/2018/texmf.cnf +INPUT /usr/local/texlive/2018/texmf-dist/web2c/texmf.cnf +INPUT /usr/local/texlive/2018/texmf-var/web2c/pdftex/pdflatex.fmt +INPUT ninems.tex +OUTPUT ninems.log +INPUT lipics.cls +INPUT lipics.cls +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/article.cls +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/fleqn.clo +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/fleqn.clo +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/lmodern.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/lmodern.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/lmodern.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/t1enc.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/t1enc.def +INPUT /usr/local/texlive/2018/texmf-dist/fonts/map/fontname/texfonts.map +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1enc.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1enc.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1enc.dfu +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1enc.dfu +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/eucal.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/eucal.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/soul/soul.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/soul/soul.sty +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/jknappen/ec/ectt1000.tfm +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics/color.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics/color.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/babel/babel.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/babel/switch.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/babel-english/UKenglish.ldf +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/babel-english/UKenglish.ldf +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/babel-english/UKenglish.ldf +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/babel-english/english.ldf +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/babel/babel.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/babel/txtbabel.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amscls/amsthm.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amscls/amsthm.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics/keyval.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/multirow/multirow.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/multirow/multirow.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/tools/tabularx.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/tools/tabularx.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/threeparttable/threeparttable.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/threeparttable/threeparttable.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lastpage/lastpage.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lastpage/lastpage.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/doi/doi.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/doi/doi.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/doi/doi.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/ifxetex/ifxetex.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/ifxetex/ifxetex.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/auxhook.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/auxhook.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/kvoptions.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/kvoptions.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/hyperref.cfg +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/hyperref.cfg +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/url/url.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption3.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption3.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics/rotating.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics/rotating.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/subfig/subfig.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/subfig/subfig.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/preprint/authblk.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/preprint/authblk.sty +INPUT graphic.sty +INPUT graphic.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/ms/everyshi.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/ms/everyshi.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgfplots/pgfplots.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/pgfplots/pgfplots.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-luatex.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/sys/pgfplotssysgeneric.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/libs/pgfplotslibrary.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_loader.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryfpu.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryfpu.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryfpu.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgflibraryfpu.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_pgfmathfloat.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplotsoldpgfsupp_leq.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsliststructure.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsliststructureext.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsarray.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsmatrix.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstableshared.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsdeque.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.data.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.verb.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/libs/pgflibrarypgfplots.surfshading.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfshading.pgfsys-pdftex.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/sys/pgflibrarypgfplots.surfshading.pgfsys-pdftex.def +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotscolormap.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotscolor.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandler.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplotimage.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.scaling.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessing.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.errorbars.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.markers.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsticks.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.paths.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmoduledecorations.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.pathmorphing.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.pathmorphing.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.pathmorphing.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.pathmorphing.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.pathreplacing.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarydecorations.pathreplacing.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.pathreplacing.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/decorations/pgflibrarydecorations.pathreplacing.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryplotmarks.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryplotmarks.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmarks.code.tex +INPUT data.sty +INPUT data.sty +INPUT re-python2.data +INPUT re-js.data +INPUT re-java.data +INPUT good-java.data +INPUT bad-scala.data +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/tikz-cd/tikz-cd.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/tikz-cd/tikz-cd.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/tikz-cd/tikzlibrarycd.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/tikz-cd/tikzlibrarycd.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryquotes.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryquotes.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.meta.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.meta.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.meta.code.tex +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/enumitem/enumitem.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/enumitem/enumitem.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/ncctools/nccmath.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/ncctools/nccmath.sty +INPUT ninems.aux +INPUT ninems.aux +OUTPUT ninems.aux +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1cmr.fd +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1cmr.fd +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmr.fd +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmr.fd +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/local/texlive/2018/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/grfext.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/grfext.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +INPUT /usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +INPUT ninems.out +INPUT ninems.out +INPUT ninems.out +INPUT ninems.out +OUTPUT ninems.pdf +INPUT ./ninems.out +INPUT ./ninems.out +OUTPUT ninems.out +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr17.tfm +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmss.fd +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmss.fd +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmss17.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmssbx10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/ot1lmr.fd +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/ot1lmr.fd +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/omllmm.fd +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/omllmm.fd +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/omslmsy.fd +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/omslmsy.fd +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/omxlmex.fd +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/omxlmex.fd +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmex10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsa.fd +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsb.fd +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsb.fd +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr12.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmbx12.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmbx10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmtt.fd +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmtt.fd +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmtk10.tfm +OUTPUT ninems.vtc +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmss10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmssbx10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmri10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmss10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmss12.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmssbx10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmri10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr9.tfm +INPUT re-js.data +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr9.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr6.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi9.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi6.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy9.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy6.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm +INPUT re-python2.data +INPUT re-java.data +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr7.tfm +INPUT cc-by.pdf +INPUT ./cc-by.pdf +INPUT ./cc-by.pdf +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/ts1lmr.fd +INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/lm/ts1lmr.fd +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ts1-lmr7.tfm +INPUT lipics-logo-bw.pdf +INPUT ./lipics-logo-bw.pdf +INPUT ./lipics-logo-bw.pdf +INPUT /usr/local/texlive/2018/texmf-var/fonts/map/pdftex/updmap/pdftex.map +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr9.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr9.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr6.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi9.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi6.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy9.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy6.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr6.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmtt9.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmbx10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmri9.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmri7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmri7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmbx9.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmri10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmri7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmssbx10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmri7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmri7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmri9.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmr6.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmri7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmbx10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmbx7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmbx5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmbx9.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmbx6.tfm +INPUT bad-scala.data +INPUT good-java.data +INPUT ninems.bbl +INPUT ninems.bbl +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmss10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmssbx10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/ec-lmtt10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmr5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmmi5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/lmsy5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmbx10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmbx7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmbx5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmri10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmri7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/lm/rm-lmri7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msam5.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm10.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm +INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm +INPUT ninems.aux +INPUT ./ninems.out +INPUT ./ninems.out +INPUT /usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-ec.enc +INPUT /usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-rm.enc +INPUT /usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-mathit.enc +INPUT /usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-mathsy.enc +INPUT /usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-ts1.enc +INPUT /usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-mathex.enc +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmbx10.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmbx12.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmbx7.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmbx9.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmex10.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmmi10.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmmi5.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmmi6.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmmi7.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmmi9.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmr10.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmr5.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmr6.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmr7.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmr9.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmri10.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmri7.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmri9.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmssbx10.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmsy10.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmsy6.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmsy7.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmsy9.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmtk10.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmtt10.pfb +INPUT /usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmtt9.pfb diff -r d486c12deeab -r 2e2dca212fff etnms/ninems.log --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/ninems.log Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,1458 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) (preloaded format=pdflatex 2019.2.7) 21 DEC 2019 19:15 +entering extended mode + restricted \write18 enabled. + file:line:error style messages enabled. + %&-line parsing enabled. +**ninems.tex +(./ninems.tex +LaTeX2e <2018-04-01> patch level 2 +Babel <3.18> and hyphenation patterns for 84 language(s) loaded. +(./lipics.cls +Document Class: lipics 2010/09/27 v1.1 LIPIcs articles +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/article.cls +Document Class: article 2014/09/29 v1.4h Standard LaTeX document class +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/fleqn.clo +File: fleqn.clo 2016/12/29 v1.2a Standard LaTeX option (flush left equations) +\mathindent=\dimen102 +Applying: [2015/01/01] Make \[ robust on input line 50. +LaTeX Info: Redefining \[ on input line 51. +Already applied: [0000/00/00] Make \[ robust on input line 62. +Applying: [2015/01/01] Make \] robust on input line 74. +LaTeX Info: Redefining \] on input line 75. +Already applied: [0000/00/00] Make \] robust on input line 83. +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option) +) +\c@part=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen103 +) +\tocfile=\write3 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2018/04/06 v1.3b Input encoding file +\inpenc@prehook=\toks14 +\inpenc@posthook=\toks15 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/lmodern.sty +Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38. +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2017/04/05 v2.0i Standard LaTeX package + +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2017/04/05 v2.0i Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 48. +)) +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2017/04/05 v2.0i Standard LaTeX package +Package textcomp Info: Sub-encoding information: +(textcomp) 5 = only ISO-Adobe without \textcurrency +(textcomp) 4 = 5 + \texteuro +(textcomp) 3 = 4 + \textohm +(textcomp) 2 = 3 + \textestimated + \textcurrency +(textcomp) 1 = TS1 - \textcircled - \t +(textcomp) 0 = TS1 (full) +(textcomp) Font families with sub-encoding setting implement +(textcomp) only a restricted character set as indicated. +(textcomp) Family '?' is the default used for unknown fonts. +(textcomp) See the documentation for details. +Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 79. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1enc.def +File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file +Now handling font encoding TS1 ... +... processing UTF-8 mapping file for font encoding TS1 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1enc.dfu +File: ts1enc.dfu 2018/04/05 v1.2c UTF-8 support for inputenc + defining Unicode char U+00A2 (decimal 162) + defining Unicode char U+00A3 (decimal 163) + defining Unicode char U+00A4 (decimal 164) + defining Unicode char U+00A5 (decimal 165) + defining Unicode char U+00A6 (decimal 166) + defining Unicode char U+00A7 (decimal 167) + defining Unicode char U+00A8 (decimal 168) + defining Unicode char U+00A9 (decimal 169) + defining Unicode char U+00AA (decimal 170) + defining Unicode char U+00AC (decimal 172) + defining Unicode char U+00AE (decimal 174) + defining Unicode char U+00AF (decimal 175) + defining Unicode char U+00B0 (decimal 176) + defining Unicode char U+00B1 (decimal 177) + defining Unicode char U+00B2 (decimal 178) + defining Unicode char U+00B3 (decimal 179) + defining Unicode char U+00B4 (decimal 180) + defining Unicode char U+00B5 (decimal 181) + defining Unicode char U+00B6 (decimal 182) + defining Unicode char U+00B7 (decimal 183) + defining Unicode char U+00B9 (decimal 185) + defining Unicode char U+00BA (decimal 186) + defining Unicode char U+00BC (decimal 188) + defining Unicode char U+00BD (decimal 189) + defining Unicode char U+00BE (decimal 190) + defining Unicode char U+00D7 (decimal 215) + defining Unicode char U+00F7 (decimal 247) + defining Unicode char U+0192 (decimal 402) + defining Unicode char U+02C7 (decimal 711) + defining Unicode char U+02D8 (decimal 728) + defining Unicode char U+02DD (decimal 733) + defining Unicode char U+0E3F (decimal 3647) + defining Unicode char U+2016 (decimal 8214) + defining Unicode char U+2020 (decimal 8224) + defining Unicode char U+2021 (decimal 8225) + defining Unicode char U+2022 (decimal 8226) + defining Unicode char U+2030 (decimal 8240) + defining Unicode char U+2031 (decimal 8241) + defining Unicode char U+203B (decimal 8251) + defining Unicode char U+203D (decimal 8253) + defining Unicode char U+2044 (decimal 8260) + defining Unicode char U+204E (decimal 8270) + defining Unicode char U+2052 (decimal 8274) + defining Unicode char U+20A1 (decimal 8353) + defining Unicode char U+20A4 (decimal 8356) + defining Unicode char U+20A6 (decimal 8358) + defining Unicode char U+20A9 (decimal 8361) + defining Unicode char U+20AB (decimal 8363) + defining Unicode char U+20AC (decimal 8364) + defining Unicode char U+20B1 (decimal 8369) + defining Unicode char U+2103 (decimal 8451) + defining Unicode char U+2116 (decimal 8470) + defining Unicode char U+2117 (decimal 8471) + defining Unicode char U+211E (decimal 8478) + defining Unicode char U+2120 (decimal 8480) + defining Unicode char U+2122 (decimal 8482) + defining Unicode char U+2126 (decimal 8486) + defining Unicode char U+2127 (decimal 8487) + defining Unicode char U+212E (decimal 8494) + defining Unicode char U+2190 (decimal 8592) + defining Unicode char U+2191 (decimal 8593) + defining Unicode char U+2192 (decimal 8594) + defining Unicode char U+2193 (decimal 8595) + defining Unicode char U+2329 (decimal 9001) + defining Unicode char U+232A (decimal 9002) + defining Unicode char U+2422 (decimal 9250) + defining Unicode char U+25E6 (decimal 9702) + defining Unicode char U+25EF (decimal 9711) + defining Unicode char U+266A (decimal 9834) + defining Unicode char U+FEFF (decimal 65279) +)) +LaTeX Info: Redefining \oldstylenums on input line 334. +Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 349. +Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 350. +Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 351. +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 352. +Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 353. +Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 354. +Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 355. +Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 356. +Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 357. +Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 358. +Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 359. +Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 360. +Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 361. +Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 362. +Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 363. +Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 364. +Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 365. +Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 366. +Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 367. +Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 368. +Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 369. +Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 370. +Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 371. +Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 372. + +Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 373. +Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 374. +Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 375. +Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 376. +Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 377. +Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 378. +Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 379. +Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 380. +Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 381. +Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 382. +Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 383. +Package textcomp Info: Setting lmtt sub-encoding to TS1/0 on input line 384. +Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 385. +Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 386. +Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 387. +Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 388. +Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 389. +Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 390. +Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 391. +Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 392. +Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 393. +Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 394. +Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 395. +Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 396. +Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 397. +Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 398. +Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 399. +Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 400. +Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 401. +Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 402. +Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 403. +Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 404. +Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 405. +Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 406. +Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 407. +Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 408. +Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 409. +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/eucal.sty +Package: eucal 2009/06/22 v3.00 Euler Script fonts +LaTeX Font Info: Overwriting math alphabet `\EuScript' in version `bold' +(Font) U/eus/m/n --> U/eus/b/n on input line 33. +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols + +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\@emptytoks=\toks16 +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) +(/usr/local/texlive/2018/texmf-dist/tex/latex/soul/soul.sty +Package: soul 2003/11/17 v2.4 letterspacing/underlining (mf) +\SOUL@word=\toks17 +\SOUL@lasttoken=\toks18 +\SOUL@cmds=\toks19 +\SOUL@buffer=\toks20 +\SOUL@token=\toks21 +\SOUL@spaceskip=\skip43 +\SOUL@ttwidth=\dimen104 +\SOUL@uldp=\dimen105 +\SOUL@ulht=\dimen106 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/color.sty +Package: color 2016/07/10 v1.1e Standard LaTeX Color (DPC) + +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package color Info: Driver file: pdftex.def on input line 147. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex +)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2018/02/14 3.18 The Babel package + +(/usr/local/texlive/2018/texmf-dist/tex/generic/babel/switch.def +File: switch.def 2018/02/14 3.18 Babel switching mechanism +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/babel-english/UKenglish.ldf +Language: UKenglish 2017/06/06 v3.3r English support from the babel system + +(/usr/local/texlive/2018/texmf-dist/tex/generic/babel-english/english.ldf +Language: english 2017/06/06 v3.3r English support from the babel system + +(/usr/local/texlive/2018/texmf-dist/tex/generic/babel/babel.def +File: babel.def 2018/02/14 3.18 Babel common definitions +\babel@savecnt=\count88 +\U@D=\dimen107 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/babel/txtbabel.def) +\bbl@dirlevel=\count89 +) +\l@canadian = a dialect from \language\l@american +\l@australian = a dialect from \language\l@british +\l@newzealand = a dialect from \language\l@british +))) +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2017/09/02 v2.17a AMS math features +\@mathmargin=\skip44 + +For additional information on amsmath, use the `?' option. +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 AMS text + +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks22 +\ex@=\dimen108 +)) +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen109 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2016/03/08 v2.02 operator names +) +\inf@bad=\count90 +LaTeX Info: Redefining \frac on input line 213. +\uproot@=\count91 +\leftroot@=\count92 +LaTeX Info: Redefining \overline on input line 375. +\classnum@=\count93 +\DOTSCASE@=\count94 +LaTeX Info: Redefining \ldots on input line 472. +LaTeX Info: Redefining \dots on input line 475. +LaTeX Info: Redefining \cdots on input line 596. +\Mathstrutbox@=\box26 +\strutbox@=\box27 +\big@size=\dimen110 +LaTeX Font Info: Redeclaring font encoding OML on input line 712. +LaTeX Font Info: Redeclaring font encoding OMS on input line 713. +\macc@depth=\count95 +\c@MaxMatrixCols=\count96 +\dotsspace@=\muskip10 +\c@parentequation=\count97 +\dspbrk@lvl=\count98 +\tag@help=\toks23 +\row@=\count99 +\column@=\count100 +\maxfields@=\count101 +\andhelp@=\toks24 +\eqnshift@=\dimen111 +\alignsep@=\dimen112 +\tagshift@=\dimen113 +\tagwidth@=\dimen114 +\totwidth@=\dimen115 +\lineht@=\dimen116 +\@envbody=\toks25 +\multlinegap=\skip45 +\multlinetaggap=\skip46 +\mathdisplay@stack=\toks26 +LaTeX Info: Redefining \[ on input line 2817. +LaTeX Info: Redefining \] on input line 2818. +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/amscls/amsthm.sty +Package: amsthm 2017/10/31 v2.20.4 +\thm@style=\toks27 +\thm@bodyfont=\toks28 +\thm@headfont=\toks29 +\thm@notefont=\toks30 +\thm@headpunct=\toks31 +\thm@preskip=\skip47 +\thm@postskip=\skip48 +\thm@headsep=\skip49 +\dth@everypar=\toks32 +) +\c@theorem=\count102 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks33 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 99. +) +\Gin@req@height=\dimen117 +\Gin@req@width=\dimen118 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/tools/array.sty +Package: array 2018/04/07 v2.4g Tabular extension package (FMi) +\col@sep=\dimen119 +\ar@mcellbox=\box28 +\extrarowheight=\dimen120 +\NC@list=\toks34 +\extratabsurround=\skip50 +\backup@length=\skip51 +\ar@cellbox=\box29 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/multirow/multirow.sty +Package: multirow 2016/11/25 v2.2 Span multiple rows of a table +\multirow@colwidth=\skip52 +\multirow@cntb=\count103 +\multirow@dima=\skip53 +\bigstrutjot=\dimen121 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/tools/tabularx.sty +Package: tabularx 2016/02/03 v2.11b `tabularx' package (DPC) +\TX@col@width=\dimen122 +\TX@old@table=\dimen123 +\TX@old@col=\dimen124 +\TX@target=\dimen125 +\TX@delta=\dimen126 +\TX@cols=\count104 +\TX@ftn=\toks35 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/threeparttable/threeparttable.sty +Package: threeparttable 2003/06/13 v 3.0 +\@tempboxb=\box30 +) (/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count105 +\lst@gtempboxa=\box31 +\lst@token=\toks36 +\lst@length=\count106 +\lst@currlwidth=\dimen127 +\lst@column=\count107 +\lst@pos=\count108 +\lst@lostspace=\dimen128 +\lst@width=\dimen129 +\lst@newlines=\count109 +\lst@lineno=\count110 +\lst@maxwidth=\dimen130 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2015/06/04 1.6 (Carsten Heinz) +\c@lstnumber=\count111 +\lst@skipnumbers=\count112 +\lst@framebox=\box32 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2015/06/04 1.6 listings configuration +)) +Package: listings 2015/06/04 1.6 (Carsten Heinz) + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lastpage/lastpage.sty +Package: lastpage 2015/03/29 v1.2m Refers to last page's name (HMM; JPG) +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/doi/doi.sty +Package: doi 2007/07/24 handle doi numbers + +(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2018/02/06 v6.86b Hypertext links for LaTeX + +(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO) + + +(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO) +Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO) +Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO) +Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO) +Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO) +Package: ifpdf 2017/03/15 v3.2 Provides the ifpdf switch +Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO) +Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO) +Package: pdftexcmds 2018/01/30 v0.27 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO +) +Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO) +Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO) +Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO) +Package: xcolor-patch 2016/05/16 xcolor patch +Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO) +Package atveryend Info: \enddocument detected (standard20110627). +Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO) +Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO) +Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/auxhook.sty +Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO) +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO) +) +\@linkdim=\dimen131 +\Hy@linkcounter=\count113 +\Hy@pagecounter=\count114 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2018/02/06 v6.86b Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) +\Hy@SavedSpaceFactor=\count115 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Hyper figures OFF on input line 4509. +Package hyperref Info: Link nesting OFF on input line 4514. +Package hyperref Info: Hyper index ON on input line 4517. +Package hyperref Info: Plain pages OFF on input line 4524. +Package hyperref Info: Backreferencing OFF on input line 4529. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4762. +\c@Hy@tempcnt=\count116 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip11 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5115. +\XeTeXLinkMargin=\dimen132 +\Fld@menulength=\count117 +\Field@Width=\dimen133 +\Fld@charsize=\dimen134 +Package hyperref Info: Hyper figures OFF on input line 6369. +Package hyperref Info: Link nesting OFF on input line 6374. +Package hyperref Info: Hyper index ON on input line 6377. +Package hyperref Info: backreferencing OFF on input line 6384. +Package hyperref Info: Link coloring OFF on input line 6389. +Package hyperref Info: Link coloring with OCG OFF on input line 6394. +Package hyperref Info: PDF/A mode OFF on input line 6399. +LaTeX Info: Redefining \ref on input line 6439. +LaTeX Info: Redefining \pageref on input line 6443. +\Hy@abspage=\count118 +\c@Item=\count119 +\c@Hfootnote=\count120 +) +Package hyperref Info: Driver (autodetected): hpdftex. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2018/02/06 v6.86b Hyperref driver for pdfTeX +\Fld@listcount=\count121 +\c@bookmark@seq@number=\count122 + +(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +82. +) +\Hy@SectionHShift=\skip54 +)) +(/usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2016/02/21 v3.3-144 Customizing captions (AR) + +(/usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2016/05/22 v1.7-166 caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 67. +\captionmargin=\dimen135 +\captionmargin@=\dimen136 +\captionwidth=\dimen137 +\caption@tempdima=\dimen138 +\caption@indent=\dimen139 +\caption@parindent=\dimen140 +\caption@hangindent=\dimen141 +) +\c@ContinuedFloat=\count123 +Package caption Info: hyperref package is loaded. +Package caption Info: listings package is loaded. +Package caption Info: threeparttable package is loaded. +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/rotating.sty +Package: rotating 2016/08/11 v2.16d rotated objects in LaTeX + +(/usr/local/texlive/2018/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC) +) +\c@r@tfl@t=\count124 +\rotFPtop=\skip55 +\rotFPbot=\skip56 +\rot@float@box=\box33 +\rot@mess@toks=\toks37 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/subfig/subfig.sty +Package: subfig 2005/06/28 ver: 1.3 subfig package +\c@KVtest=\count125 +\sf@farskip=\skip57 +\sf@captopadj=\dimen142 +\sf@capskip=\skip58 +\sf@nearskip=\skip59 +\c@subfigure=\count126 +\c@subfigure@save=\count127 +\c@lofdepth=\count128 +\c@subtable=\count129 +\c@subtable@save=\count130 +\c@lotdepth=\count131 +\sf@top=\skip60 +\sf@bottom=\skip61 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/preprint/authblk.sty +Package: authblk 2001/02/27 1.3 (PWD) +\affilsep=\skip62 +\@affilsep=\skip63 +\c@Maxaffil=\count132 +\c@authors=\count133 +\c@affil=\count134 +)) +(./graphic.sty +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.te +x +\pgfutil@everybye=\toks38 +\pgfutil@tempdima=\dimen143 +\pgfutil@tempdimb=\dimen144 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-li +sts.tex)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +\pgfutil@abb=\box34 +(/usr/local/texlive/2018/texmf-dist/tex/latex/ms/everyshi.sty +Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) +)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +Package: pgfrcs 2015/08/07 v3.0.1a (rcs-revision 1.31) +)) +Package: pgf 2015/08/07 v3.0.1a (rcs-revision 1.15) +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2014/07/09 v3.0.1a (rcs-revision 1.48) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks39 +\pgfkeys@temptoks=\toks40 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.c +ode.tex +\pgfkeys@tmptoks=\toks41 +)) +\pgf@x=\dimen145 +\pgf@y=\dimen146 +\pgf@xa=\dimen147 +\pgf@ya=\dimen148 +\pgf@xb=\dimen149 +\pgf@yb=\dimen150 +\pgf@xc=\dimen151 +\pgf@yc=\dimen152 +\w@pgf@writea=\write4 +\r@pgf@reada=\read1 +\c@pgf@counta=\count135 +\c@pgf@countb=\count136 +\c@pgf@countc=\count137 +\c@pgf@countd=\count138 +\t@pgf@toka=\toks42 +\t@pgf@tokb=\toks43 +\t@pgf@tokc=\toks44 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2008/05/14 (rcs-revision 1.7) +) +Driver file for pgf: pgfsys-pdftex.def + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.d +ef +File: pgfsys-pdftex.def 2014/10/11 (rcs-revision 1.35) + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-p +df.def +File: pgfsys-common-pdf.def 2013/10/10 (rcs-revision 1.13) +))) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath. +code.tex +File: pgfsyssoftpath.code.tex 2013/09/09 (rcs-revision 1.9) +\pgfsyssoftpath@smallbuffer@items=\count139 +\pgfsyssoftpath@bigbuffer@items=\count140 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol. +code.tex +File: pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4) +)) (/usr/local/texlive/2018/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +LaTeX Info: Redefining \color on input line 709. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2010/04/11 v3.0.1a (rcs-revision 1.7) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@dimen=\dimen153 +\pgfmath@count=\count141 +\pgfmath@box=\box35 +\pgfmath@toks=\toks45 +\pgfmath@stack@operand=\toks46 +\pgfmath@stack@operation=\toks47 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code. +tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic +.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigo +nometric.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.rando +m.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.compa +rison.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base. +code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round +.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc. +code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integ +erarithmetics.code.tex))) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count142 +)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.co +de.tex +File: pgfcorepoints.code.tex 2013/10/07 (rcs-revision 1.27) +\pgf@picminx=\dimen154 +\pgf@picmaxx=\dimen155 +\pgf@picminy=\dimen156 +\pgf@picmaxy=\dimen157 +\pgf@pathminx=\dimen158 +\pgf@pathmaxx=\dimen159 +\pgf@pathminy=\dimen160 +\pgf@pathmaxy=\dimen161 +\pgf@xx=\dimen162 +\pgf@xy=\dimen163 +\pgf@yx=\dimen164 +\pgf@yy=\dimen165 +\pgf@zx=\dimen166 +\pgf@zy=\dimen167 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconst +ruct.code.tex +File: pgfcorepathconstruct.code.tex 2013/10/07 (rcs-revision 1.29) +\pgf@path@lastx=\dimen168 +\pgf@path@lasty=\dimen169 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage +.code.tex +File: pgfcorepathusage.code.tex 2014/11/02 (rcs-revision 1.24) +\pgf@shorten@end@additional=\dimen170 +\pgf@shorten@start@additional=\dimen171 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.co +de.tex +File: pgfcorescopes.code.tex 2015/05/08 (rcs-revision 1.46) +\pgfpic=\box36 +\pgf@hbox=\box37 +\pgf@layerbox@main=\box38 +\pgf@picture@serial@count=\count143 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicst +ate.code.tex +File: pgfcoregraphicstate.code.tex 2014/11/02 (rcs-revision 1.12) +\pgflinewidth=\dimen172 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransform +ations.code.tex +File: pgfcoretransformations.code.tex 2015/08/07 (rcs-revision 1.20) +\pgf@pt@x=\dimen173 +\pgf@pt@y=\dimen174 +\pgf@pt@temp=\dimen175 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.cod +e.tex +File: pgfcorequick.code.tex 2008/10/09 (rcs-revision 1.3) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.c +ode.tex +File: pgfcoreobjects.code.tex 2006/10/11 (rcs-revision 1.2) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathproce +ssing.code.tex +File: pgfcorepathprocessing.code.tex 2013/09/09 (rcs-revision 1.9) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.co +de.tex +File: pgfcorearrows.code.tex 2015/05/14 (rcs-revision 1.43) +\pgfarrowsep=\dimen176 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.cod +e.tex +File: pgfcoreshade.code.tex 2013/07/15 (rcs-revision 1.15) +\pgf@max=\dimen177 +\pgf@sys@shading@range@num=\count144 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.cod +e.tex +File: pgfcoreimage.code.tex 2013/07/15 (rcs-revision 1.18) + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal. +code.tex +File: pgfcoreexternal.code.tex 2014/07/09 (rcs-revision 1.21) +\pgfexternal@startupbox=\box39 +)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.co +de.tex +File: pgfcorelayers.code.tex 2013/07/18 (rcs-revision 1.7) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretranspare +ncy.code.tex +File: pgfcoretransparency.code.tex 2013/09/30 (rcs-revision 1.5) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns. +code.tex +File: pgfcorepatterns.code.tex 2013/11/07 (rcs-revision 1.5) +))) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.cod +e.tex +File: pgfmoduleshapes.code.tex 2014/03/21 (rcs-revision 1.35) +\pgfnodeparttextbox=\box40 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code. +tex +File: pgfmoduleplot.code.tex 2015/08/03 (rcs-revision 1.13) +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-0-65.sty +Package: pgfcomp-version-0-65 2007/07/03 v3.0.1a (rcs-revision 1.7) +\pgf@nodesepstart=\dimen178 +\pgf@nodesepend=\dimen179 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version +-1-18.sty +Package: pgfcomp-version-1-18 2007/07/23 v3.0.1a (rcs-revision 1.1) +)) +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex) +) (/usr/local/texlive/2018/texmf-dist/tex/latex/pgf/math/pgfmath.sty +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2013/12/13 v3.0.1a (rcs-revision 1.25) + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex) +\pgffor@iter=\dimen180 +\pgffor@skip=\dimen181 +\pgffor@stack=\toks48 +\pgffor@toks=\toks49 +)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.cod +e.tex +Package: tikz 2015/08/07 v3.0.1a (rcs-revision 1.151) + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothan +dlers.code.tex +File: pgflibraryplothandlers.code.tex 2013/08/31 v3.0.1a (rcs-revision 1.20) +\pgf@plot@mark@count=\count145 +\pgfplotmarksize=\dimen182 +) +\tikz@lastx=\dimen183 +\tikz@lasty=\dimen184 +\tikz@lastxsaved=\dimen185 +\tikz@lastysaved=\dimen186 +\tikzleveldistance=\dimen187 +\tikzsiblingdistance=\dimen188 +\tikz@figbox=\box41 +\tikz@figbox@bg=\box42 +\tikz@tempbox=\box43 +\tikz@tempbox@bg=\box44 +\tikztreelevel=\count146 +\tikznumberofchildren=\count147 +\tikznumberofcurrentchild=\count148 +\tikz@fig@count=\count149 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.cod +e.tex +File: pgfmodulematrix.code.tex 2013/09/17 (rcs-revision 1.8) +\pgfmatrixcurrentrow=\count150 +\pgfmatrixcurrentcolumn=\count151 +\pgf@matrix@numberofcolumns=\count152 +) +\tikz@expandcount=\count153 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2008/06/17 v3.0.1a (rcs-revision 1.2) +))) +(/usr/local/texlive/2018/texmf-dist/tex/latex/pgfplots/pgfplots.sty +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.revision.tex) +Package: pgfplots 2018/03/28 v1.16 Data Visualization (1.16) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotscore.code.tex +\t@pgfplots@toka=\toks50 +\t@pgfplots@tokb=\toks51 +\t@pgfplots@tokc=\toks52 +\pgfplots@tmpa=\dimen189 +\c@pgfplots@coordindex=\count154 +\c@pgfplots@scanlineindex=\count155 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/sys/pgfplotssysgeneric +.code.tex)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/libs/pgfplotslibrary.c +ode.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplot +soldpgfsupp_loader.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryfpu.cod +e.tex) +Package pgfplots: loading complementary arithmetics for your pgf version... + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplot +soldpgfsupp_pgflibraryfpu.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplot +soldpgfsupp_pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count156 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/oldpgfcompatib/pgfplot +soldpgfsupp_leq.code.tex)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.code +.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplots +liststructure.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplots +liststructureext.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplots +array.code.tex +\c@pgfplotsarray@tmp=\count157 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplots +matrix.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/numtable/pgfplotstable +shared.code.tex +\c@pgfplotstable@counta=\count158 +\t@pgfplotstable@a=\toks53 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/liststructure/pgfplots +deque.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.co +de.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsbinary.da +ta.code.tex)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotsutil.verb +.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/libs/pgflibrarypgfplot +s.surfshading.code.tex +\c@pgfplotslibrarysurf@no=\count159 + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/sys/pgflibrarypgfplots +.surfshading.pgfsys-pdftex.def))) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotscolormap. +code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/util/pgfplotscolor.cod +e.tex)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsstackedplots.c +ode.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsplothandlers.c +ode.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplothandle +r.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsmeshplotimage. +code.tex))) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.scaling.code. +tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotscoordprocessin +g.code.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.errorbars.cod +e.tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.markers.code. +tex) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplotsticks.code.tex +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgfplots/pgfplots.paths.code.te +x) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarydecorations.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/modules/pgfmoduledecoration +s.code.tex +\pgfdecoratedcompleteddistance=\dimen190 +\pgfdecoratedremainingdistance=\dimen191 +\pgfdecoratedinputsegmentcompleteddistance=\dimen192 +\pgfdecoratedinputsegmentremainingdistance=\dimen193 +\pgf@decorate@distancetomove=\dimen194 +\pgf@decorate@repeatstate=\count160 +\pgfdecorationsegmentamplitude=\dimen195 +\pgfdecorationsegmentlength=\dimen196 +) +\tikz@lib@dec@box=\box45 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarydecorations.pathmorphing.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/decorations/pgfli +brarydecorations.pathmorphing.code.tex)) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarydecorations.pathreplacing.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/decorations/pgfli +brarydecorations.pathreplacing.code.tex)) +\pgfplots@numplots=\count161 +\pgfplots@xmin@reg=\dimen197 +\pgfplots@xmax@reg=\dimen198 +\pgfplots@ymin@reg=\dimen199 +\pgfplots@ymax@reg=\dimen256 +\pgfplots@zmin@reg=\dimen257 +\pgfplots@zmax@reg=\dimen258 +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryplotmarks.code.tex +File: tikzlibraryplotmarks.code.tex 2008/01/09 v3.0.1a (rcs-revision 1.1) + +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryplotmar +ks.code.tex +File: pgflibraryplotmarks.code.tex 2015/08/03 v3.0.1a (rcs-revision 1.14) +)))) (./data.sty + +LaTeX Warning: File `re-python2.data' already exists on the system. + Not generating it from this source. + + +LaTeX Warning: File `re-js.data' already exists on the system. + Not generating it from this source. + + +LaTeX Warning: File `re-java.data' already exists on the system. + Not generating it from this source. + + +LaTeX Warning: File `good-java.data' already exists on the system. + Not generating it from this source. + + +LaTeX Warning: File `bad-scala.data' already exists on the system. + Not generating it from this source. + +) (/usr/local/texlive/2018/texmf-dist/tex/latex/tikz-cd/tikz-cd.sty +Package: tikz-cd 2014/10/30 v0.9e Commutative diagrams with tikz + +(/usr/local/texlive/2018/texmf-dist/tex/generic/tikz-cd/tikzlibrarycd.code.tex +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibrarymatrix.code.tex +File: tikzlibrarymatrix.code.tex 2013/07/12 v3.0.1a (rcs-revision 1.4) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie +s/tikzlibraryquotes.code.tex +File: tikzlibraryquotes.code.tex 2014/03/21 v3.0.1a (rcs-revision 1.4) +) +(/usr/local/texlive/2018/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows. +meta.code.tex +File: pgflibraryarrows.meta.code.tex 2015/05/13 v3.0.1a (rcs-revision 1.13) +\pgfarrowinset=\dimen259 +\pgfarrowlength=\dimen260 +\pgfarrowwidth=\dimen261 +\pgfarrowlinewidth=\dimen262 +))) +(/usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty +Package: algpseudocode + +(/usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty +Package: algorithmicx 2005/04/27 v1.2 Algorithmicx + +Document Style algorithmicx 1.2 - a greatly improved `algorithmic' style +\c@ALG@line=\count162 +\c@ALG@rem=\count163 +\c@ALG@nested=\count164 +\ALG@tlm=\skip64 +\ALG@thistlm=\skip65 +\c@ALG@Lnr=\count165 +\c@ALG@blocknr=\count166 +\c@ALG@storecount=\count167 +\c@ALG@tmpcounter=\count168 +\ALG@tmplength=\skip66 +) +Document Style - pseudocode environments for use with the `algorithmicx' style +) (/usr/local/texlive/2018/texmf-dist/tex/latex/enumitem/enumitem.sty +Package: enumitem 2011/09/28 v3.5.2 Customized lists +\labelindent=\skip67 +\enit@outerparindent=\dimen263 +\enit@toks=\toks54 +\enit@inbox=\box46 +\enitdp@description=\count169 +) +(/usr/local/texlive/2018/texmf-dist/tex/latex/ncctools/nccmath.sty +Package: nccmath 2005/02/21 v1.2 Additional Math Commands (NCC) +\NCC@fracrulewidth=\dimen264 +) +Package hyperref Info: Option `colorlinks' set `true' on input line 12. + +(./ninems.aux) +\openout1 = `ninems.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 68. +LaTeX Font Info: ... okay on input line 68. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 68. +LaTeX Font Info: ... okay on input line 68. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 68. +LaTeX Font Info: ... okay on input line 68. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 68. +LaTeX Font Info: ... okay on input line 68. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 68. +LaTeX Font Info: ... okay on input line 68. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 68. +LaTeX Font Info: ... okay on input line 68. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 68. +LaTeX Font Info: Try loading font information for TS1+cmr on input line 68. + (/usr/local/texlive/2018/texmf-dist/tex/latex/base/ts1cmr.fd +File: ts1cmr.fd 2014/09/29 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: ... okay on input line 68. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 68. +LaTeX Font Info: ... okay on input line 68. +LaTeX Font Info: Try loading font information for T1+lmr on input line 68. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmr.fd +File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +(/usr/local/texlive/2018/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count170 +\scratchdimen=\dimen265 +\scratchbox=\box47 +\nofMPsegments=\count171 +\nofMParguments=\count172 +\everyMPshowfont=\toks55 +\MPscratchCnt=\count173 +\MPscratchDim=\dimen266 +\MPnumerator=\count174 +\makeMPintoPDFobject=\count175 +\everyMPtoPDFconversion=\toks56 +) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf + +(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO) +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +38. +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 456. + +(/usr/local/texlive/2018/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 +)) +\c@lstlisting=\count176 +Package lastpage Info: Please have a look at the pageslts package at +(lastpage) https://www.ctan.org/pkg/pageslts +(lastpage) ! on input line 68. +\AtBeginShipoutBox=\box48 +Package hyperref Info: Link coloring ON on input line 68. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section + +(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO) +) +\c@section@level=\count177 +) +LaTeX Info: Redefining \ref on input line 68. +LaTeX Info: Redefining \pageref on input line 68. +LaTeX Info: Redefining \nameref on input line 68. + +(./ninems.out) (./ninems.out) +\@outlinefile=\write5 +\openout5 = `ninems.out'. + +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: subfig package v1.3 is loaded. +Package caption Info: rotating package is loaded. +Package caption Info: End \AtBeginDocument code. + ABD: EveryShipout initializing macros + +Package pgfplots Warning: running in backwards compatibility mode (unsuitable t +ick labels; missing features). Consider writing \pgfplotsset{compat=1.16} into +your preamble. + on input line 68. + +LaTeX Font Info: Try loading font information for T1+lmss on input line 70. +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmss.fd +File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OT1+lmr on input line 70. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/ot1lmr.fd +File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OML+lmm on input line 70. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/omllmm.fd +File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OMS+lmsy on input line 70. + + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/omslmsy.fd +File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OMX+lmex on input line 70. + + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/omxlmex.fd +File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <10> on input line 70. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <7> on input line 70. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <5> on input line 70. +LaTeX Font Info: Try loading font information for U+msa on input line 70. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Try loading font information for U+msb on input line 70. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) +LaTeX Font Info: Try loading font information for T1+lmtt on input line 70. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/t1lmtt.fd +File: t1lmtt.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Font shape `T1/lmtt/bx/n' in size <9.5> not available +(Font) Font shape `T1/lmtt/b/n' tried instead on input line 70. +\openout3 = `ninems.vtc'. + +PGFPlots: reading {re-js.data} +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <9> on input line 129. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <6> on input line 129. +PGFPlots: reading {re-python2.data} +PGFPlots: reading {re-java.data} + +Overfull \hbox (2.08597pt too wide) in paragraph at lines 110--176 + [] + [] + + +LaTeX Warning: Citation `Davis18' on page 1 undefined on input line 190. + + +LaTeX Warning: Citation `17Bir' on page 1 undefined on input line 191. + + +File: cc-by.pdf Graphic file (type pdf) + +Package pdftex.def Info: cc-by.pdf used on input line 194. +(pdftex.def) Requested size: 39.74274pt x 14.0pt. +LaTeX Font Info: Try loading font information for TS1+lmr on input line 194. + +(/usr/local/texlive/2018/texmf-dist/tex/latex/lm/ts1lmr.fd +File: ts1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) + +File: lipics-logo-bw.pdf Graphic file (type pdf) + +Package pdftex.def Info: lipics-logo-bw.pdf used on input line 194. +(pdftex.def) Requested size: 64.00354pt x 14.0pt. + [1 + +{/usr/local/texlive/2018/texmf-var/fonts/map/pdftex/updmap/pdftex.map} <./cc-by +.pdf> <./lipics-logo-bw.pdf>] +LaTeX Font Info: Calculating math sizes for size <8.5> on input line 199. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <8.5> on input line 199. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <5.94997> on input line 199. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <4.25> on input line 199. + + +LaTeX Warning: Citation `AusafDyckhoffUrban2016' on page 2 undefined on input l +ine 247. + + +LaTeX Warning: Citation `OkuiSuzuki2010' on page 2 undefined on input line 247. + + + +LaTeX Warning: Citation `Vansummeren2006' on page 2 undefined on input line 247 +. + + +LaTeX Warning: Citation `Sulzmann2014' on page 2 undefined on input line 248. + + +LaTeX Warning: Citation `AusafDyckhoffUrban2016' on page 2 undefined on input l +ine 250. + + +LaTeX Warning: Citation `CrashCourse2014' on page 2 undefined on input line 255 +. + +[2] + +LaTeX Warning: Citation `Kuklewicz' on page 3 undefined on input line 265. + + +LaTeX Warning: Citation `Sulzmann2014' on page 3 undefined on input line 270. + + +LaTeX Warning: Citation `Brzozowski1964' on page 3 undefined on input line 272. + + +[3] + +LaTeX Warning: Citation `Sulzmann2014' on page 4 undefined on input line 392. + +[4] + +LaTeX Warning: Reference `graph:*' on page 5 undefined on input line 470. + +[5] + +Package amsfonts Warning: Obsolete command \bold; \mathbf should be used instea +d on input line 567. + +[6] [7] + +LaTeX Warning: Citation `nielson11bcre' on page 8 undefined on input line 723. + + +LaTeX Warning: Citation `AusafDyckhoffUrban2016' on page 8 undefined on input l +ine 749. + + +LaTeX Warning: Citation `Antimirov95' on page 8 undefined on input line 757. + +[8] [9] + +LaTeX Warning: Citation `Sulzmann2014' on page 10 undefined on input line 876. + +[10] [11] [12] + +LaTeX Warning: Citation `Sulzmann2014' on page 13 undefined on input line 1150. + + +[13] [14] +PGFPlots: reading {bad-scala.data} +PGFPlots: reading {good-java.data} + [15] (./ninems.bbl +LaTeX Font Info: Calculating math sizes for size <9.5> on input line 38. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <9.5> on input line 38. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <6.64996> on input line 38. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <4.75> on input line 38. +) + +Package lastpage Warning: Rerun to get the references right on input line 1384. + + + +AED: lastpage setting LastPage +[16] +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 1384. +Package atveryend Info: Empty hook `AfterLastShipout' on input line 1384. + (./ninems.aux) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 1384. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 1384. + + + +Package rerunfilecheck Warning: File `ninems.out' has changed. +(rerunfilecheck) Rerun to get outlines right +(rerunfilecheck) or use package `bookmark'. + +Package rerunfilecheck Info: Checksums for `ninems.out': +(rerunfilecheck) Before: D41D8CD98F00B204E9800998ECF8427E;0 +(rerunfilecheck) After: 43E8D84961F15C811B4165A2AF60EF5A;395. + +LaTeX Warning: There were undefined references. + + +LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. + +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 1384. + ) +Here is how much of TeX's memory you used: + 32707 strings out of 492649 + 760593 string characters out of 6129623 + 946443 words of memory out of 5000000 + 35928 multiletter control sequences out of 15000+600000 + 205890 words of font info for 123 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 69i,24n,107p,720b,2459s stack positions out of 5000i,500n,10000p,200000b,80000s +{/usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-ec.enc}{/usr/local/ +texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-rm.enc}{/usr/local/texlive/2018/t +exmf-dist/fonts/enc/dvips/lm/lm-mathit.enc}{/usr/local/texlive/2018/texmf-dist/ +fonts/enc/dvips/lm/lm-mathsy.enc}{/usr/local/texlive/2018/texmf-dist/fonts/enc/ +dvips/lm/lm-ts1.enc}{/usr/local/texlive/2018/texmf-dist/fonts/enc/dvips/lm/lm-m +athex.enc} +< +/usr/local/texlive/2018/texmf-dist/fonts/type1/public/lm/lmtk10.pfb> +Output written on ninems.pdf (16 pages, 540584 bytes). +PDF statistics: + 262 PDF objects out of 1000 (max. 8388607) + 207 compressed objects within 3 object streams + 38 named destinations out of 1000 (max. 500000) + 29 words of extra memory for PDF output out of 10000 (max. 10000000) + diff -r d486c12deeab -r 2e2dca212fff etnms/ninems.out --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/ninems.out Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,6 @@ +\BOOKMARK [1][-]{section.1}{Introduction}{}% 1 +\BOOKMARK [1][-]{section.2}{The Algorithm by Brzozowski based on Derivatives of Regular Expressions}{}% 2 +\BOOKMARK [1][-]{section.3}{Values and the Algorithm by Sulzmann and Lu}{}% 3 +\BOOKMARK [1][-]{section.4}{Simplification of Regular Expressions}{}% 4 +\BOOKMARK [1][-]{section.5}{Current Work}{}% 5 +\BOOKMARK [1][-]{section.6}{Conclusion}{}% 6 diff -r d486c12deeab -r 2e2dca212fff etnms/ninems.pdf Binary file etnms/ninems.pdf has changed diff -r d486c12deeab -r 2e2dca212fff etnms/ninems.synctex.gz Binary file etnms/ninems.synctex.gz has changed diff -r d486c12deeab -r 2e2dca212fff etnms/ninems.vtc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/ninems.vtc Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,1 @@ +\contitem\title{POSIX Regular Expression Matching and Lexing}\author{Chengsong Tan}\page{1} diff -r d486c12deeab -r 2e2dca212fff etnms/re-java.data --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/re-java.data Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,20 @@ +%% LaTeX2e file `re-java.data' +%% generated by the `filecontents' environment +%% from source `ninems' on 2019/06/30. +%% +5 0.00298 +10 0.00418 +15 0.00996 +16 0.01710 +17 0.03492 +18 0.03303 +19 0.05084 +20 0.10177 +21 0.19960 +22 0.41159 +23 0.82234 +24 1.70251 +25 3.36112 +26 6.63998 +27 13.35120 +28 29.81185 diff -r d486c12deeab -r 2e2dca212fff etnms/re-js.data --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/re-js.data Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,15 @@ +%% LaTeX2e file `re-js.data' +%% generated by the `filecontents' environment +%% from source `ninems' on 2019/06/30. +%% +5 0.061 +10 0.061 +15 0.061 +20 0.070 +23 0.131 +25 0.308 +26 0.564 +28 1.994 +30 7.648 +31 15.881 +32 32.190 diff -r d486c12deeab -r 2e2dca212fff etnms/re-python2.data --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/re-python2.data Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,19 @@ +%% LaTeX2e file `re-python2.data' +%% generated by the `filecontents' environment +%% from source `ninems' on 2019/06/30. +%% +1 0.033 +5 0.036 +10 0.034 +15 0.036 +18 0.059 +19 0.084 +20 0.141 +21 0.248 +22 0.485 +23 0.878 +24 1.71 +25 3.40 +26 7.08 +27 14.12 +28 26.69 diff -r d486c12deeab -r 2e2dca212fff etnms/root.bib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/etnms/root.bib Thu Jan 09 22:21:04 2020 +0000 @@ -0,0 +1,334 @@ +%% This BibTeX bibliography file was created using BibDesk. +%% https://bibdesk.sourceforge.io/ + +%% Created for CS TAN at 2019-08-18 19:00:13 +0100 + + +%% Saved with string encoding Unicode (UTF-8) + + + +@article{17Bir, + Author = {Asiri Rathnayake and Hayo Thielecke}, + Date-Added = {2019-08-18 17:57:30 +0000}, + Date-Modified = {2019-08-18 18:00:13 +0000}, + Journal = {arXiv:1405.7058}, + Title = {Static Analysis for Regular Expression Exponential Runtime via Substructural Logics}, + Year = {2017}} + +@article{nielson11bcre, + Author = {Lasse Nielsen, Fritz Henglein}, + Date-Added = {2019-07-03 21:09:39 +0000}, + Date-Modified = {2019-07-03 21:17:33 +0000}, + Journal = {LATA}, + Title = {Bit-coded Regular Expression Parsing}, + Year = {2011}, + Bdsk-File-1 = {YnBsaXN0MDDUAQIDBAUGJCVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJXTlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAFgAdccmVsYXRpdmVQYXRoWWFsaWFzRGF0YV8QGC4uLy4uLy4uL2ZyaXR6LXBhcGVyLnBkZtIXCxgZV05TLmRhdGFPEQFGAAAAAAFGAAIAAAxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAAAAAAAAQkQAAf////8PZnJpdHotcGFwZXIucGRmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAADAAEAAAogY3UAAAAAAAAAAAAAAAAAB0Rlc2t0b3AAAAIAJS86VXNlcnM6Y3N0YW46RGVza3RvcDpmcml0ei1wYXBlci5wZGYAAA4AIAAPAGYAcgBpAHQAegAtAHAAYQBwAGUAcgAuAHAAZABmAA8AGgAMAE0AYQBjAGkAbgB0AG8AcwBoACAASABEABIAI1VzZXJzL2NzdGFuL0Rlc2t0b3AvZnJpdHotcGFwZXIucGRmAAATAAEvAAAVAAIADP//AACABtIbHB0eWiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMdHyBWTlNEYXRhWE5TT2JqZWN00hscIiNcTlNEaWN0aW9uYXJ5oiIgXxAPTlNLZXllZEFyY2hpdmVy0SYnVHJvb3SAAQAIABEAGgAjAC0AMgA3AEAARgBNAFUAYABnAGoAbABuAHEAcwB1AHcAhACOAKkArgC2AgACAgIHAhICGwIpAi0CNAI9AkICTwJSAmQCZwJsAAAAAAAAAgEAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAm4=}} + +@misc{SE16, + Author = {StackStatus}, + Date-Added = {2019-06-26 11:28:41 +0000}, + Date-Modified = {2019-06-26 16:07:31 +0000}, + Keywords = {ReDos Attack}, + Month = {July}, + Rating = {5}, + Read = {1}, + Title = {Stack Overflow Outage Postmortem}, + Url = {https://stackstatus.net/post/147710624694/outage-postmortem-july-20-2016}, + Year = {2016}, + Bdsk-Url-1 = {https://stackstatus.net/post/147710624694/outage-postmortem-july-20-2016}} + +@article{HosoyaVouillonPierce2005, + Author = {H.~Hosoya and J.~Vouillon and B.~C.~Pierce}, + Journal = {ACM Transactions on Programming Languages and Systems (TOPLAS)}, + Number = 1, + Pages = {46--90}, + Title = {{R}egular {E}xpression {T}ypes for {XML}}, + Volume = 27, + Year = {2005}} + +@misc{POSIX, + Note = {\url{http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap09.html}}, + Title = {{T}he {O}pen {G}roup {B}ase {S}pecification {I}ssue 6 {IEEE} {S}td 1003.1 2004 {E}dition}, + Year = {2004}} + +@inproceedings{AusafDyckhoffUrban2016, + Author = {F.~Ausaf and R.~Dyckhoff and C.~Urban}, + Booktitle = {Proc.~of the 7th International Conference on Interactive Theorem Proving (ITP)}, + Pages = {69--86}, + Series = {LNCS}, + Title = {{POSIX} {L}exing with {D}erivatives of {R}egular {E}xpressions ({P}roof {P}earl)}, + Volume = {9807}, + Year = {2016}} + +@article{aduAFP16, + Author = {F.~Ausaf and R.~Dyckhoff and C.~Urban}, + Issn = {2150-914x}, + Journal = {Archive of Formal Proofs}, + Note = {\url{http://www.isa-afp.org/entries/Posix-Lexing.shtml}, Formal proof development}, + Title = {{POSIX} {L}exing with {D}erivatives of {R}egular {E}xpressions}, + Year = 2016} + +@techreport{CrashCourse2014, + Annote = {draft report}, + Author = {N.~B.~B.~Grathwohl and F.~Henglein and U.~T.~Rasmussen}, + Institution = {University of Copenhagen}, + Title = {{A} {C}rash-{C}ourse in {R}egular {E}xpression {P}arsing and {R}egular {E}xpressions as {T}ypes}, + Year = {2014}} + +@inproceedings{Sulzmann2014, + Author = {M.~Sulzmann and K.~Lu}, + Booktitle = {Proc.~of the 12th International Conference on Functional and Logic Programming (FLOPS)}, + Pages = {203--220}, + Series = {LNCS}, + Title = {{POSIX} {R}egular {E}xpression {P}arsing with {D}erivatives}, + Volume = {8475}, + Year = {2014}} + +@inproceedings{Sulzmann2014b, + Author = {M.~Sulzmann and P.~van Steenhoven}, + Booktitle = {Proc.~of the 23rd International Conference on Compiler Construction (CC)}, + Pages = {174--191}, + Series = {LNCS}, + Title = {{A} {F}lexible and {E}fficient {ML} {L}exer {T}ool {B}ased on {E}xtended {R}egular {E}xpression {S}ubmatching}, + Volume = {8409}, + Year = {2014}} + +@book{Pierce2015, + Author = {B.~C.~Pierce and C.~Casinghino and M.~Gaboardi and M.~Greenberg and C.~Hri\c{t}cu and V.~Sj\"{o}berg and B.~Yorgey}, + Note = {\url{http://www.cis.upenn.edu/~bcpierce/sf}}, + Publisher = {Electronic textbook}, + Title = {{S}oftware {F}oundations}, + Year = {2015}} + +@misc{Kuklewicz, + Author = {C.~Kuklewicz}, + Howpublished = {\url{https://wiki.haskell.org/Regex_Posix}}, + Title = {{R}egex {P}osix}} + +@article{Vansummeren2006, + Author = {S.~Vansummeren}, + Journal = {ACM Transactions on Programming Languages and Systems}, + Number = {3}, + Pages = {389--428}, + Title = {{T}ype {I}nference for {U}nique {P}attern {M}atching}, + Volume = {28}, + Year = {2006}} + +@inproceedings{Asperti12, + Author = {A.~Asperti}, + Booktitle = {Proc.~of the 3rd International Conference on Interactive Theorem Proving (ITP)}, + Pages = {283--298}, + Series = {LNCS}, + Title = {{A} {C}ompact {P}roof of {D}ecidability for {R}egular {E}xpression {E}quivalence}, + Volume = {7406}, + Year = {2012}} + +@inproceedings{Frisch2004, + Author = {A.~Frisch and L.~Cardelli}, + Booktitle = {Proc.~of the 31st International Conference on Automata, Languages and Programming (ICALP)}, + Pages = {618--629}, + Series = {LNCS}, + Title = {{G}reedy {R}egular {E}xpression {M}atching}, + Volume = {3142}, + Year = {2004}} + +@article{Antimirov95, + Author = {V.~Antimirov}, + Journal = {Theoretical Computer Science}, + Pages = {291--319}, + Title = {{P}artial {D}erivatives of {R}egular {E}xpressions and {F}inite {A}utomata {C}onstructions}, + Volume = {155}, + Year = {1995}} + +@inproceedings{Nipkow98, + Author = {T.~Nipkow}, + Booktitle = {Proc.~of the 11th International Conference on Theorem Proving in Higher Order Logics (TPHOLs)}, + Pages = {1--15}, + Series = {LNCS}, + Title = {{V}erified {L}exical {A}nalysis}, + Volume = 1479, + Year = 1998} + +@article{Brzozowski1964, + Author = {J.~A.~Brzozowski}, + Journal = {Journal of the {ACM}}, + Number = {4}, + Pages = {481--494}, + Title = {{D}erivatives of {R}egular {E}xpressions}, + Volume = {11}, + Year = {1964}} + +@article{Leroy2009, + Author = {X.~Leroy}, + Journal = {Communications of the ACM}, + Number = 7, + Pages = {107--115}, + Title = {{F}ormal {V}erification of a {R}ealistic {C}ompiler}, + Volume = 52, + Year = 2009} + +@inproceedings{Paulson2015, + Author = {L.~C.~Paulson}, + Booktitle = {Proc.~of the 25th International Conference on Automated Deduction (CADE)}, + Pages = {231--245}, + Series = {LNAI}, + Title = {{A} {F}ormalisation of {F}inite {A}utomata {U}sing {H}ereditarily {F}inite {S}ets}, + Volume = {9195}, + Year = {2015}} + +@article{Wu2014, + Author = {C.~Wu and X.~Zhang and C.~Urban}, + Journal = {Journal of Automatic Reasoning}, + Number = {4}, + Pages = {451--480}, + Title = {{A} {F}ormalisation of the {M}yhill-{N}erode {T}heorem based on {R}egular {E}xpressions}, + Volume = {52}, + Year = {2014}} + +@inproceedings{Regehr2011, + Author = {X.~Yang and Y.~Chen and E.~Eide and J.~Regehr}, + Booktitle = {Proc.~of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)}, + Pages = {283--294}, + Title = {{F}inding and {U}nderstanding {B}ugs in {C} {C}ompilers}, + Year = {2011}} + +@article{Norrish2014, + Author = {A.~Barthwal and M.~Norrish}, + Journal = {Journal of Computer and System Sciences}, + Number = {2}, + Pages = {346--362}, + Title = {{A} {M}echanisation of {S}ome {C}ontext-{F}ree {L}anguage {T}heory in {HOL4}}, + Volume = {80}, + Year = {2014}} + +@article{Thompson1968, + Author = {K.~Thompson}, + Issue_Date = {June 1968}, + Journal = {Communications of the ACM}, + Number = {6}, + Pages = {419--422}, + Title = {{P}rogramming {T}echniques: {R}egular {E}xpression {S}earch {A}lgorithm}, + Volume = {11}, + Year = {1968}} + +@article{Owens2009, + Author = {S.~Owens and J.~H.~Reppy and A.~Turon}, + Journal = {Journal of Functinal Programming}, + Number = {2}, + Pages = {173--190}, + Title = {{R}egular-{E}xpression {D}erivatives {R}e-{E}xamined}, + Volume = {19}, + Year = {2009}} + +@inproceedings{Sulzmann2015, + Author = {M.~Sulzmann and P.~Thiemann}, + Booktitle = {Proc.~of the 9th International Conference on Language and Automata Theory and Applications (LATA)}, + Pages = {275--286}, + Series = {LNCS}, + Title = {{D}erivatives for {R}egular {S}huffle {E}xpressions}, + Volume = {8977}, + Year = {2015}} + +@inproceedings{Chen2012, + Author = {H.~Chen and S.~Yu}, + Booktitle = {Proc.~in the International Workshop on Theoretical Computer Science (WTCS)}, + Pages = {343--356}, + Series = {LNCS}, + Title = {{D}erivatives of {R}egular {E}xpressions and an {A}pplication}, + Volume = {7160}, + Year = {2012}} + +@article{Krauss2011, + Author = {A.~Krauss and T.~Nipkow}, + Journal = {Journal of Automated Reasoning}, + Pages = {95--106}, + Title = {{P}roof {P}earl: {R}egular {E}xpression {E}quivalence and {R}elation {A}lgebra}, + Volume = 49, + Year = 2012} + +@inproceedings{Traytel2015, + Author = {D.~Traytel}, + Booktitle = {Proc.~of the 24th Annual Conference on Computer Science Logic (CSL)}, + Pages = {487--503}, + Series = {LIPIcs}, + Title = {{A} {C}oalgebraic {D}ecision {P}rocedure for {WS1S}}, + Volume = {41}, + Year = {2015}} + +@inproceedings{Traytel2013, + Author = {D.~Traytel and T.~Nipkow}, + Booktitle = {Proc.~of the 18th ACM SIGPLAN International Conference on Functional Programming (ICFP)}, + Pages = {3-12}, + Title = {{A} {V}erified {D}ecision {P}rocedure for {MSO} on {W}ords {B}ased on {D}erivatives of {R}egular {E}xpressions}, + Year = 2013} + +@inproceedings{Coquand2012, + Author = {T.~Coquand and V.~Siles}, + Booktitle = {Proc.~of the 1st International Conference on Certified Programs and Proofs (CPP)}, + Pages = {119--134}, + Series = {LNCS}, + Title = {{A} {D}ecision {P}rocedure for {R}egular {E}xpression {E}quivalence in {T}ype {T}heory}, + Volume = {7086}, + Year = {2011}} + +@inproceedings{Almeidaetal10, + Author = {J.~B.~Almeida and N.~Moriera and D.~Pereira and S.~M.~de Sousa}, + Booktitle = {Proc.~of the 15th International Conference on Implementation and Application of Automata (CIAA)}, + Pages = {59-68}, + Series = {LNCS}, + Title = {{P}artial {D}erivative {A}utomata {F}ormalized in {C}oq}, + Volume = {6482}, + Year = {2010}} + +@article{Owens2008, + Author = {S.~Owens and K.~Slind}, + Journal = {Higher-Order and Symbolic Computation}, + Number = {4}, + Pages = {377--409}, + Title = {{A}dapting {F}unctional {P}rograms to {H}igher {O}rder {L}ogic}, + Volume = {21}, + Year = {2008}} + +@article{Owens2, + Author = {S.~Owens and K.~Slind}, + Bibsource = {dblp computer science bibliography, http://dblp.org}, + Biburl = {http://dblp.uni-trier.de/rec/bib/journals/lisp/OwensS08}, + Doi = {10.1007/s10990-008-9038-0}, + Journal = {Higher-Order and Symbolic Computation}, + Number = {4}, + Pages = {377--409}, + Timestamp = {Wed, 16 Dec 2009 13:51:02 +0100}, + Title = {Adapting functional programs to higher order logic}, + Url = {http://dx.doi.org/10.1007/s10990-008-9038-0}, + Volume = {21}, + Year = {2008}, + Bdsk-Url-1 = {http://dx.doi.org/10.1007/s10990-008-9038-0}} + +@misc{PCRE, + Title = {{PCRE - Perl Compatible Regular Expressions}}, + Url = {http://www.pcre.org}, + Bdsk-Url-1 = {http://www.pcre.org}} + +@inproceedings{OkuiSuzuki2010, + Author = {S.~Okui and T.~Suzuki}, + Booktitle = {Proc.~of the 15th International Conference on Implementation and Application of Automata (CIAA)}, + Pages = {231--240}, + Series = {LNCS}, + Title = {{D}isambiguation in {R}egular {E}xpression {M}atching via {P}osition {A}utomata with {A}ugmented {T}ransitions}, + Volume = {6482}, + Year = {2010}} + +@techreport{OkuiSuzukiTech, + Author = {S.~Okui and T.~Suzuki}, + Institution = {University of Aizu}, + Title = {{D}isambiguation in {R}egular {E}xpression {M}atching via {P}osition {A}utomata with {A}ugmented {T}ransitions}, + Year = {2013}} + +@inproceedings{Davis18, + Author = {J.~C.~Davis and C.~.A.~Coghlan and F.~Servant and D.~Lee}, + Booktitle = {Proc.~of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE)}, + Numpages = {11}, + Pages = {246--256}, + Title = {{T}he {I}mpact of {R}egular {E}xpression {D}enial of {S}ervice ({ReDoS}) in {P}ractice: {A}n {E}mpirical {S}tudy at the {E}cosystem {S}cale}, + Year = {2018}}