diff --git a/publications/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/biblio.bib b/publications/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/biblio.bib deleted file mode 100644 index e69de29..0000000 diff --git a/publications/MRL-0003 - Monero is Not That Mysterious/biblio.bib b/publications/MRL-0003 - Monero is Not That Mysterious/biblio.bib deleted file mode 100644 index e69de29..0000000 diff --git a/publications/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/moneroLogo.png b/publications/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/moneroLogo.png deleted file mode 100644 index 7f647a2..0000000 Binary files a/publications/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/moneroLogo.png and /dev/null differ diff --git a/publications/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0.pdf b/publications/research-bulletins/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0.pdf similarity index 100% rename from publications/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0.pdf rename to publications/research-bulletins/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0.pdf diff --git a/publications/research-bulletins/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/biblio.bib b/publications/research-bulletins/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/biblio.bib new file mode 100644 index 0000000..d3f5a12 --- /dev/null +++ b/publications/research-bulletins/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/biblio.bib @@ -0,0 +1 @@ + diff --git a/publications/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/burns.png b/publications/research-bulletins/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/burns.png old mode 100755 new mode 100644 similarity index 100% rename from publications/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/burns.png rename to publications/research-bulletins/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/burns.png diff --git a/publications/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/main.tex b/publications/research-bulletins/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/main.tex similarity index 100% rename from publications/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/main.tex rename to publications/research-bulletins/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/main.tex diff --git a/publications/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/moneroLogo.png b/publications/research-bulletins/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/moneroLogo.png similarity index 100% rename from publications/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/moneroLogo.png rename to publications/research-bulletins/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/moneroLogo.png diff --git a/publications/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/mrl.cls b/publications/research-bulletins/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/mrl.cls similarity index 100% rename from publications/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/mrl.cls rename to publications/research-bulletins/MRL-0001 - A Note on Chain Reactions in Traceability in CryptoNote 2.0/mrl.cls diff --git a/publications/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol.pdf b/publications/research-bulletins/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol.pdf similarity index 100% rename from publications/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol.pdf rename to publications/research-bulletins/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol.pdf diff --git a/publications/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/biblio.bib b/publications/research-bulletins/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/biblio.bib similarity index 99% rename from publications/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/biblio.bib rename to publications/research-bulletins/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/biblio.bib index 96a6eb8..75a8f88 100755 --- a/publications/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/biblio.bib +++ b/publications/research-bulletins/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/biblio.bib @@ -26,4 +26,4 @@ author = "Werner Albert", note = "\url{https://forum.cryptonote.org/viewtopic.php?f=7&t=270}", year = "2014 (accessed Sept 15, 2014)" - } \ No newline at end of file + } diff --git a/publications/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/main.tex b/publications/research-bulletins/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/main.tex similarity index 100% rename from publications/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/main.tex rename to publications/research-bulletins/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/main.tex diff --git a/publications/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/moneroLogo.png b/publications/research-bulletins/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/moneroLogo.png similarity index 100% rename from publications/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/moneroLogo.png rename to publications/research-bulletins/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/moneroLogo.png diff --git a/publications/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/mrl.cls b/publications/research-bulletins/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/mrl.cls similarity index 100% rename from publications/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/mrl.cls rename to publications/research-bulletins/MRL-0002 - Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol/mrl.cls diff --git a/publications/MRL-0003 - Monero is Not That Mysterious.pdf b/publications/research-bulletins/MRL-0003 - Monero is Not That Mysterious/MRL-0003 - Monero is Not That Mysterious.pdf similarity index 100% rename from publications/MRL-0003 - Monero is Not That Mysterious.pdf rename to publications/research-bulletins/MRL-0003 - Monero is Not That Mysterious/MRL-0003 - Monero is Not That Mysterious.pdf diff --git a/publications/research-bulletins/MRL-0003 - Monero is Not That Mysterious/biblio.bib b/publications/research-bulletins/MRL-0003 - Monero is Not That Mysterious/biblio.bib new file mode 100644 index 0000000..d3f5a12 --- /dev/null +++ b/publications/research-bulletins/MRL-0003 - Monero is Not That Mysterious/biblio.bib @@ -0,0 +1 @@ + diff --git a/publications/MRL-0003 - Monero is Not That Mysterious/main.tex b/publications/research-bulletins/MRL-0003 - Monero is Not That Mysterious/main.tex similarity index 99% rename from publications/MRL-0003 - Monero is Not That Mysterious/main.tex rename to publications/research-bulletins/MRL-0003 - Monero is Not That Mysterious/main.tex index 12c4720..d067e3d 100644 --- a/publications/MRL-0003 - Monero is Not That Mysterious/main.tex +++ b/publications/research-bulletins/MRL-0003 - Monero is Not That Mysterious/main.tex @@ -658,4 +658,4 @@ ring signature." Public Key Cryptography\textendash{}PKC curves. Vol. 106. Dordrecht: Springer, 2009. \bibitem[SN]{SN} http://lab.monero.cc/pubs/multiple\_equations\_attack.pdf\end{thebibliography} -\end{document} \ No newline at end of file +\end{document} diff --git a/publications/MRL-0003 - Monero is Not That Mysterious/mrl.cls b/publications/research-bulletins/MRL-0003 - Monero is Not That Mysterious/mrl.cls similarity index 100% rename from publications/MRL-0003 - Monero is Not That Mysterious/mrl.cls rename to publications/research-bulletins/MRL-0003 - Monero is Not That Mysterious/mrl.cls diff --git a/publications/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol.pdf b/publications/research-bulletins/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol.pdf similarity index 100% rename from publications/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol.pdf rename to publications/research-bulletins/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol.pdf diff --git a/publications/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/biblio.bib b/publications/research-bulletins/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/biblio.bib similarity index 99% rename from publications/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/biblio.bib rename to publications/research-bulletins/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/biblio.bib index 283e959..cac7ca7 100644 --- a/publications/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/biblio.bib +++ b/publications/research-bulletins/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/biblio.bib @@ -155,4 +155,4 @@ via Traceable Ring Signatures}, pages={397--411}, year={2013}, organization={IEEE} -} \ No newline at end of file +} diff --git a/publications/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/main.tex b/publications/research-bulletins/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/main.tex similarity index 99% rename from publications/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/main.tex rename to publications/research-bulletins/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/main.tex index bc9b48c..32a5636 100644 --- a/publications/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/main.tex +++ b/publications/research-bulletins/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/main.tex @@ -1019,4 +1019,4 @@ We identified several routes an attacker could use to execute a blockchain analy \bibliographystyle{plain} \bibliography{biblio.bib} -\end{document} \ No newline at end of file +\end{document} diff --git a/publications/MRL-0003 - Monero is Not That Mysterious/moneroLogo.png b/publications/research-bulletins/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/moneroLogo.png similarity index 100% rename from publications/MRL-0003 - Monero is Not That Mysterious/moneroLogo.png rename to publications/research-bulletins/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/moneroLogo.png diff --git a/publications/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/mrl.cls b/publications/research-bulletins/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/mrl.cls similarity index 100% rename from publications/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/mrl.cls rename to publications/research-bulletins/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/mrl.cls diff --git a/publications/MRL-0005 - Ring Signature Confidential Transactions.pdf b/publications/research-bulletins/MRL-0005 - Ring Signature Confidential Transactions for Monero/MRL-0005 - Ring Signature Confidential Transactions.pdf similarity index 100% rename from publications/MRL-0005 - Ring Signature Confidential Transactions.pdf rename to publications/research-bulletins/MRL-0005 - Ring Signature Confidential Transactions for Monero/MRL-0005 - Ring Signature Confidential Transactions.pdf diff --git a/publications/MRL-0005 - Ring Signature Confidential Transactions for Monero/MRL-0005.tex b/publications/research-bulletins/MRL-0005 - Ring Signature Confidential Transactions for Monero/MRL-0005.tex similarity index 100% rename from publications/MRL-0005 - Ring Signature Confidential Transactions for Monero/MRL-0005.tex rename to publications/research-bulletins/MRL-0005 - Ring Signature Confidential Transactions for Monero/MRL-0005.tex diff --git a/publications/MRL-0005 - Ring Signature Confidential Transactions for Monero/biblio.bib b/publications/research-bulletins/MRL-0005 - Ring Signature Confidential Transactions for Monero/biblio.bib similarity index 100% rename from publications/MRL-0005 - Ring Signature Confidential Transactions for Monero/biblio.bib rename to publications/research-bulletins/MRL-0005 - Ring Signature Confidential Transactions for Monero/biblio.bib diff --git a/publications/MRL-0005 - Ring Signature Confidential Transactions for Monero/main.tex b/publications/research-bulletins/MRL-0005 - Ring Signature Confidential Transactions for Monero/main.tex similarity index 100% rename from publications/MRL-0005 - Ring Signature Confidential Transactions for Monero/main.tex rename to publications/research-bulletins/MRL-0005 - Ring Signature Confidential Transactions for Monero/main.tex diff --git a/publications/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/moneroLogo.png b/publications/research-bulletins/MRL-0005 - Ring Signature Confidential Transactions for Monero/moneroLogo.png similarity index 100% rename from publications/MRL-0004 - Improving Obfuscation in the CryptoNote Protocol/moneroLogo.png rename to publications/research-bulletins/MRL-0005 - Ring Signature Confidential Transactions for Monero/moneroLogo.png diff --git a/publications/MRL-0005 - Ring Signature Confidential Transactions for Monero/mrl.cls b/publications/research-bulletins/MRL-0005 - Ring Signature Confidential Transactions for Monero/mrl.cls similarity index 100% rename from publications/MRL-0005 - Ring Signature Confidential Transactions for Monero/mrl.cls rename to publications/research-bulletins/MRL-0005 - Ring Signature Confidential Transactions for Monero/mrl.cls diff --git a/publications/research-bulletins/Readme.md b/publications/research-bulletins/Readme.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/publications/research-bulletins/Readme.md @@ -0,0 +1 @@ + diff --git a/publications/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/biblio.bib b/publications/research-bulletins/in-prog/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/biblio.bib similarity index 99% rename from publications/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/biblio.bib rename to publications/research-bulletins/in-prog/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/biblio.bib index 53b110e..d84e7f4 100644 --- a/publications/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/biblio.bib +++ b/publications/research-bulletins/in-prog/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/biblio.bib @@ -69,4 +69,4 @@ author={Serfozo, Richard}, year={2009}, publisher={Springer Science \& Business Media} -} \ No newline at end of file +} diff --git a/publications/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/main.tex b/publications/research-bulletins/in-prog/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/main.tex similarity index 99% rename from publications/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/main.tex rename to publications/research-bulletins/in-prog/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/main.tex index 1fc8598..664abf6 100644 --- a/publications/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/main.tex +++ b/publications/research-bulletins/in-prog/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/main.tex @@ -1000,4 +1000,4 @@ for i in range( len( timestamps ) ): \bibliographystyle{plain} \bibliography{biblio.bib} -\end{document} \ No newline at end of file +\end{document} diff --git a/publications/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/mrl.cls b/publications/research-bulletins/in-prog/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/mrl.cls similarity index 100% rename from publications/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/mrl.cls rename to publications/research-bulletins/in-prog/MRL-0006 - Difficulty Adjustment Algorithms in Cryptocurrency Protocols/mrl.cls diff --git a/publications/research-roadmaps/MRL-R001 Priorities for Monero Research Lab/MRL_R001__Roadmap.pdf b/publications/research-roadmaps/MRL-R001 Priorities for Monero Research Lab/MRL_R001__Roadmap.pdf new file mode 100644 index 0000000..c484f7a Binary files /dev/null and b/publications/research-roadmaps/MRL-R001 Priorities for Monero Research Lab/MRL_R001__Roadmap.pdf differ diff --git a/publications/research-roadmaps/MRL-R001 Priorities for Monero Research Lab/biblio.bib b/publications/research-roadmaps/MRL-R001 Priorities for Monero Research Lab/biblio.bib new file mode 100644 index 0000000..27ebf47 --- /dev/null +++ b/publications/research-roadmaps/MRL-R001 Priorities for Monero Research Lab/biblio.bib @@ -0,0 +1,208 @@ +@article{nakamoto2008bitcoin, + title={Bitcoin: A peer-to-peer electronic cash system}, + author={Nakamoto, Satoshi} +} + +@techreport{grenander1981abstract, + title={Abstract inference}, + author={Grenander, Ulf and Ulf, Grenander}, + year={1981} +} + +@article{massey1996estimating, + title={Estimating the parameters of a nonhomogeneous Poisson process with linear rate}, + author={Massey, William A and Parker, Geraldine A and Whitt, Ward}, + journal={Telecommunication Systems}, + volume={5}, + number={2}, + pages={361--388}, + year={1996}, + publisher={Springer} +} + +@inproceedings{decker2013information, + title={Information propagation in the bitcoin network}, + author={Decker, Christian and Wattenhofer, Roger}, + booktitle={Peer-to-Peer Computing (P2P), 2013 IEEE Thirteenth International Conference on}, + pages={1--10}, + year={2013}, + organization={IEEE} +} + +@article{sompolinsky2013accelerating, + title={Accelerating Bitcoin's Transaction Processing. Fast Money Grows on Trees, Not Chains.}, + author={Sompolinsky, Yonatan and Zohar, Aviv}, + journal={IACR Cryptology ePrint Archive}, + volume={2013}, + pages={881}, + year={2013} +} + +@article{macheta2014counterfeiting, + title={Counterfeiting via Merkle Tree Exploits within Virtual Currencies Employing the CryptoNote Protocol}, + author={Macheta, Jan and Noether, Sarang and Noether, Surae and Smooth, Javier}, + year={2014} +} + +@incollection{eyal2014majority, + title={Majority is not enough: Bitcoin mining is vulnerable}, + author={Eyal, Ittay and Sirer, Emin G{\"u}n}, + booktitle={Financial Cryptography and Data Security}, + pages={436--454}, + year={2014}, + publisher={Springer} +} + + +@article{kraft2015difficulty, + title={Difficulty Control for Blockchain-Based Consensus Systems}, + author={Kraft, Daniel}, + year={2015} +} + +@book{serfozo2009basics, + title={Basics of applied stochastic processes}, + author={Serfozo, Richard}, + year={2009}, + publisher={Springer Science \& Business Media} +} + +@article{miller2017empirical, + title={An Empirical Analysis of Linkability in the Monero Blockchain}, + author={Miller, Andrew and M{\"o}ser, Malte and Lee, Kevin and Narayanan, Arvind}, + journal={arXiv preprint arXiv:1704.04299}, + year={2017} +} + +@inproceedings{au2006constant, + title={Constant-size ID-based linkable and revocable-iff-linked ring signature}, + author={Au, Man Ho and Liu, Joseph K and Susilo, Willy and Yuen, Tsz Hon}, + booktitle={International Conference on Cryptology in India}, + pages={364--378}, + year={2006}, + organization={Springer} +} + +@inproceedings{au2006event, + title={Event-oriented k-times revocable-iff-linked group signatures}, + author={Au, Man Ho and Susilo, Willy and Yiu, Siu-Ming}, + booktitle={Australasian Conference on Information Security and Privacy}, + pages={223--234}, + year={2006}, + organization={Springer} +} + +@inproceedings{chandran2007ring, + title={Ring signatures of sub-linear size without random oracles}, + author={Chandran, Nishanth and Groth, Jens and Sahai, Amit}, + booktitle={International Colloquium on Automata, Languages, and Programming}, + pages={423--434}, + year={2007}, + organization={Springer} +} + +@article{kumar2017traceability, + title={A Traceability Analysis of Monero's Blockchain}, + author={Kumar, Amrit and Fischer, Cl{\'e}ment and Tople, Shruti and Saxena, Prateek}, + year={2017} +} + +@misc{knaccc2017, + author = {knaccc}, + title = {Potential Privacy Leaks in Monero and Churning}, + year = {2017}, + publisher = {GitHub}, + journal = {GitHub repository}, + howpublished = {\url{https://github.com/monero-project/monero/issues/1673#issuecomment-278509986}} +} + +@misc{kenshi2017, + author = {kenshi84}, + title = {Monero Subaddresses}, + year = {2017}, + publisher = {GitHub}, + journal = {GitHub repository}, + howpublished = {\url{https://github.com/monero-project/monero/pull/2056}} +} + +@misc{mcElrathBraid, + author = {Bob McElrath}, + title = {Braiding the Blockchain}, + year = {2017}, + howpublished = {\url{https://scalingbitcoin.org/hongkong2015/presentations/DAY2/2_breaking_the_chain_1_mcelrath.pdf}} +} + +@article{noether2016ring, + title={Ring Confidential Transactions}, + author={Noether, Shen and Mackenzie, Adam and others}, + journal={Ledger}, + volume={1}, + pages={1--18}, + year={2016} +} + +@article{T-1955, +doi = {10.2307/166755}, +title = {Applications of Game Theory in Fighter versus Bomber Combat}, +author = {T. E. Caywood and C. J. Thomas}, +journal = {Journal of the Operations Research Society of America}, +issnp = {0096-3984}, +issne = {2326-3229}, +year = {1955}, +month = {11}, +volume = {3}, +issue = {4}, +page = {402--411}, +url = {http://gen.lib.rus.ec/scimag/index.php?s=10.2307/166755}, +} + +@book{strogatz2014nonlinear, + title={Nonlinear dynamics and chaos: with applications to physics, biology, chemistry, and engineering}, + author={Strogatz, Steven H}, + year={2014}, + publisher={Westview press} +} + +@article{doob1942topics, + title={Topics in the theory of Markoff chains}, + author={Doob, Joseph L}, + journal={Transactions of the American Mathematical Society}, + volume={52}, + number={1}, + pages={37--64}, + year={1942}, + publisher={JSTOR} +} + +@article{doob1945markoff, + title={Markoff chains--denumerable case}, + author={Doob, Joseph L}, + journal={Transactions of the American Mathematical Society}, + volume={58}, + number={3}, + pages={455--473}, + year={1945}, + publisher={JSTOR} +} + +@article{gillespie1977exact, + title={Exact stochastic simulation of coupled chemical reactions}, + author={Gillespie, Daniel T}, + journal={The journal of physical chemistry}, + volume={81}, + number={25}, + pages={2340--2361}, + year={1977}, + publisher={ACS Publications} +} + +@article{gillespie1976general, + title={A general method for numerically simulating the stochastic time evolution of coupled chemical reactions}, + author={Gillespie, Daniel T}, + journal={Journal of computational physics}, + volume={22}, + number={4}, + pages={403--434}, + year={1976}, + publisher={Elsevier} +} diff --git a/publications/MRL-0005 - Ring Signature Confidential Transactions for Monero/moneroLogo.png b/publications/research-roadmaps/MRL-R001 Priorities for Monero Research Lab/moneroLogo.png similarity index 100% rename from publications/MRL-0005 - Ring Signature Confidential Transactions for Monero/moneroLogo.png rename to publications/research-roadmaps/MRL-R001 Priorities for Monero Research Lab/moneroLogo.png diff --git a/publications/research-roadmaps/MRL-R001 Priorities for Monero Research Lab/mrl-R001.tex b/publications/research-roadmaps/MRL-R001 Priorities for Monero Research Lab/mrl-R001.tex new file mode 100644 index 0000000..b9af363 --- /dev/null +++ b/publications/research-roadmaps/MRL-R001 Priorities for Monero Research Lab/mrl-R001.tex @@ -0,0 +1,219 @@ +\documentclass[12pt,english]{mrl} +\usepackage{graphicx} +\usepackage{listings} +\usepackage{cite} +\usepackage{amsthm} + +\usepackage[toc,page]{appendix} + +\renewcommand{\familydefault}{\rmdefault} +\usepackage[T1]{fontenc} +\usepackage[latin9]{inputenc} +\usepackage{color} +\usepackage{babel} +\usepackage{verbatim} +\usepackage{float} +\usepackage{url} +\usepackage{amsthm} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage[unicode=true,pdfusetitle, bookmarks=true,bookmarksnumbered=false,bookmarksopen=false, breaklinks=false,pdfborder={0 0 1},backref=false,colorlinks=true]{hyperref} +\usepackage{breakurl} +\usepackage{todonotes} + + +\usepackage{amsmath} +\usepackage{amsfonts} +\usepackage{amssymb,enumerate} +\usepackage{amsthm} +\usepackage{cite} +\usepackage{comment} +\usepackage[all]{xy} +%\usepackage[notref,notcite]{showkeys} +\usepackage{hyperref} +\usepackage{todonotes} + +% THEOREM ENVIRONMENTS +\newtheorem*{example}{Example} +\theoremstyle{definition} +\newtheorem{lem}{Lemma}[section] +\newtheorem{cor}[lem]{Corollary} +\newtheorem{prop}[lem]{Proposition} +\newtheorem{thm}[lem]{Theorem} +\newtheorem{soln}[]{Solution} +\newtheorem{conj}[lem]{Conjecture} +\newtheorem{Defn}[lem]{Definition} +\newtheorem{Ex}[lem]{Example} +\newtheorem{Question}[lem]{Question} +\newtheorem{Property}[lem]{Property} +\newtheorem{Properties}[lem]{Properties} +\newtheorem{Discussion}[lem]{Remark} +\newtheorem{Construction}[lem]{Construction} +\newtheorem{Notation}[lem]{Notation} +\newtheorem{Fact}[lem]{Fact} +\newtheorem{Notationdefinition}[lem]{Definition/Notation} +\newtheorem{Remarkdefinition}[lem]{Remark/Definition} +\newtheorem{rem}[lem]{Remark} +\newtheorem{Subprops}{}[lem] +\newtheorem{Para}[lem]{} +\newtheorem{Exer}[lem]{Exercise} +\newtheorem{Exerc}{Exercise} + +\newenvironment{defn}{\begin{Defn}\rm}{\end{Defn}} +\newenvironment{ex}{\begin{Ex}\rm}{\end{Ex}} +\newenvironment{question}{\begin{Question}\rm}{\end{Question}} +\newenvironment{property}{\begin{Property}\rm}{\end{Property}} +\newenvironment{properties}{\begin{Properties}\rm}{\end{Properties}} +\newenvironment{notation}{\begin{Notation}\rm}{\end{Notation}} +\newenvironment{fact}{\begin{Fact}\rm}{\end{Fact}} +\newenvironment{notationdefinition}{\begin{Notationdefinition}\rm}{\end{Notationdefinition}} +\newenvironment{remarkdefinition}{\begin{Remarkdefinition}\rm}{\end{Remarkdefinition}} +\newenvironment{subprops}{\begin{Subprops}\rm}{\end{Subprops}} +\newenvironment{para}{\begin{Para}\rm}{\end{Para}} +\newenvironment{disc}{\begin{Discussion}\rm}{\end{Discussion}} +\newenvironment{construction}{\begin{Construction}\rm}{\end{Construction}} +\newenvironment{exer}{\begin{Exer}\rm}{\end{Exer}} +\newenvironment{exerc}{\begin{Exerc}\rm}{\end{Exerc}} + +\newtheorem{intthm}{Theorem} +\renewcommand{\theintthm}{\Alph{intthm}} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\floatstyle{ruled} +\newfloat{algorithm}{tbp}{loa} +\providecommand{\algorithmname}{Algorithm} +\floatname{algorithm}{\protect\algorithmname} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands. +\numberwithin{equation}{section} +\numberwithin{figure}{section} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{algpseudocode} + +\usepackage{subcaption} + +\numberwithin{equation}{section} + + +\makeatletter + + +\makeatletter + +\newcommand{\h}{\mathcal{H}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands. +\floatstyle{ruled} +\newfloat{algorithm}{tbp}{loa} +\providecommand{\algorithmname}{Algorithm} +\floatname{algorithm}{\protect\algorithmname} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands. +\numberwithin{equation}{section} +\numberwithin{figure}{section} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands. +\usepackage{algpseudocode} + +\makeatother + +\begin{document} +\begin{frontmatter} + +\begin{fmbox} +\hfill\setlength{\fboxrule}{0px}\setlength{\fboxsep}{5px}\fbox{\includegraphics[width=2in]{moneroLogo.png}} +\dochead{Research Road-map \hfill MRL-R001} +\title{Priorities for Monero Research Lab} +\date{\today} +\author[ + addressref={mrl}, + email={bggoode@g.clemson.edu} +]{\fnm{Brandon} \snm{Goodell}} + + +\address[id=mrl]{ + \orgname{Monero Research Lab} +} +\end{fmbox} + +\begin{abstractbox} +\begin{abstract} +We outline the various ideas currently under investigation by the Monero Research Lab, provide context for each task, and present some informative sources regarding each task. \end{abstract} +\end{abstractbox} +\end{frontmatter} + +We present a partial MRL ``to-do'' list of research items. We rank the list according to approximate urgency and time-line, beginning with the short-term/high-priority projects and ending with the long-term/lower-priority projects. This is a partial list because each item comes equipped with many sub-items, and other items not included on this list will undoubtedly find their way onto future Research Road-maps. + +We wish to emphasize that this list is incomplete, and we invite the members of the Monero community to make suggestions for changes to this list. Future Research Road-maps will include comments on the progress for each of these items. + + +\vspace{0.1in} + +\begin{enumerate}[1.] + + \item \textbf{Zero-knowledge Lit Review}: We are listing this item first because it is rather exciting news: Jeffrey Quesnelle, a computer science graduate student at the University of Michigan at Dearborn is pursuing his thesis and has decided this includes some work with Monero Research Lab. Jeffrey has offered to prototype implementations of new cryptographic schemes, crunch numbers, evaluate performances, and try his hand at some cryptographic proofs. Together, we are publishing a literature review of zero knowledge schemes and their application in cryptocurrencies, for submission for peer review (journal to be determined) by the end of August 2017, although I am optimistic that we will complete this sooner rather than later. We will make available a pre-print on ArXiV after a few revisions. + + + \item \textbf{Correcting RingCT Proofs}: In \cite{noether2016ring}, there are certain flaws in the proofs that should be corrected. This could take a few weeks, more or less, but is likely quite short-term. As far as we are aware, the claims made are still valid but at least one proof is inadequate. + + \item \textbf{Recent criticisms}: Recently, critics have claimed the Monero blockchain is traceable, as in \cite{miller2017empirical} and \cite{kumar2017traceability}. Some of the concerns and claims made in these papers appear in the list below already, but we will not comment directly on these criticisms until our review is complete. We will take as much time as necessary for this, but it is urgent. + + \item \textbf{Threshold multisignatures}: Shen Noether once proposed an algorithm for $k$-of-$N$ multisignatures in Monero. These signatures are currently under development and testing; checking and developing rigorous proofs for this method is necessary. After revisions are made to Shen's original paper, we will publish an MRL Research Bulletin detailing the method. + + + + + + + \item \textbf{Churning, Mandatory Minimum Mix-ins}: Detailed by \texttt{knaccc} in \cite{knaccc2017}, an attack is described where a merchant, Bob, and his customer, Alice, use an exchange, Eve, to convert cryptocurrency to fiat and back again. If Bob immediately converts all cryptocurrency to fiat after each transaction to limit his exposure to the volatility of cryptocurrency-to-fiat exchange rates, then Bob unintentionally provides information Eve needs to determine the identity of Alice. Urgency on this problem is not high because an interim solution exists, churning, but the urgency is not low either because that interim solution is expensive to users and causes blockchain bloat. However, we have not quantified the threat of this attack; it is not clear how serious this attack is. Determining more suitable solutions is not immediately obvious, and so this problem could require quite a bit of thought. + + \item \textbf{Signature Size and RingCT}: Blockchain bloat can be mitigated with efficient signatures. RingCT already uses more efficient signatures than signatures in the CryptoNote reference code (as described in \cite{noether2016ring}). Some schemes, such as \cite{chandran2007ring}, \cite{au2006constant}, \cite{au2006event}, exhibit sub-linear sizes of ring signature and have been investigated by MRL in the past. Trusted set-ups must be avoided at all costs, so there will be some significant development required in this area before implementation becomes plausible. This problem is annoying in its urgency, since the Monero blockchain is already quite large and will not slow in its space requirements until this problem (and other related problems) are solved. + + + \item \textbf{The Distributional Problem}: Most of the time, the true signer of a ring signature in Monero is the owner of the newest transaction in that signature. How should the distribution for mix-ins depend on transaction age? This corresponds to certain interesting approximation problems in statistics, but also certain game-theoretic questions reminiscent of \cite{T-1955}, for example. As a matter of user privacy, the urgency of this problem is rather low, due to the one-time addresses in Monero, but this problem may have some interesting low-hanging fruit. + + + + + \item \textbf{Testing Blockchain Dynamics with Population-driven Modeling}: It may be obvious, but making different choices for different dynamical computations in a cryptocurrency leads to different dynamical systems. Testing choices of computation (for example, difficulty) for their ``goodness'' with respect to some desired task seems to be a wise decision. Using deterministic (as in \cite{strogatz2014nonlinear}) and stochastic (as in \cite{doob1942topics}, \cite{doob1945markoff}, \cite{gillespie1977exact}, \cite{gillespie1976general}) population models of both users and mining nodes inspired by ecology, we can develop stochastic models of block arrival rates and blockchain creation. We can parameterize these models with a miniature test-net, we can optionally couple these models with other models (such as economic models), and we can use the results to gain dynamical insight towards constructing better-behaved control systems for cryptocurrencies. Low urgency, but very low resistance to obtain results. + + + + + \item \textbf{Hardness of blockchain analysis}: We wish to establish lower bounds on complexity, cost, and hardness in finding approximate solutions to a general ring ownership problem. To this end, we construct a formal model of blockchain forensics for a ring-signature-like system using directed trees with unknown edges. This problem may be a novel puzzle. This is not particularly urgent, and will require a lot of thought. + + \item \textbf{Blockchain Design}: Various proposals for different protocols and data structures to represent a ledger of transaction have been proposed, as in \cite{sompolinsky2013accelerating} (which is known to incentivize bad behavior) and \cite{mcElrathBraid}. This is also not particularly urgent and will require a lot of thought. + + + \item \textbf{Traceability, extending RingCT}: We wish to investigate the plausibility of modifying RingCT (or using RingCT-like approaches) to obscure block height of transactions. Any such scheme is approaching zero-knowledge and is likely to be monstrously large and implausible. This is medium urgency, because such a scheme would dramatically improve user privacy. However, the tractability of this problem is not yet clear. + + \item \textbf{Future-proofing Monero}: For each cryptographic component underlying the function of Monero, in case a breakthrough in technology renders that component obsolete, we ought to have one or more components waiting in the wings for an upgrade. + + \item \textbf{Post-Quantum Future-proofing Monero}: Pie in the sky. We wish to answer three questions about this. First, given all post-quantum recommendations by international communities of cryptographers, exactly how big and slow is a \textit{transparent}, Bitcoin-like cryptocurrency going to be? Second, where are the bottlenecks? Third, how badly does increased anonymity cause bulkiness to scale in the post-quantum world? We are fairly confident that we can demonstrate the requirements for a truly post-quantum currency will be infeasible to satisfy for many years. + + + + + +\end{enumerate} + + +Certainly, this (partial!) list is quite long, even with the help of Mr.\ Quesnelle; expansion of the Monero Research Lab may very well become a point of concern in the future, however we can cross that bridge when we come to it. + +We request members of the community contribute their opinions on this list and ideas they would like to see added. Areas of research, possible vulnerabilities to the Monero system, new cryptographic schemes, new models, and new insights are always welcome. Please do not hesitate to contact us. + +The Monero Research Lab wishes to state emphatically that our concern is to report our findings on Monero, which is an open source project, as honestly and transparently as possible. Our goal is not to persuade, re-assure, or enrich speculators or investors; our goal is to assist the Monero community and the Monero Core Team in the design of a robust and strong cryptocurrency with an emphasis on user privacy. Consequently, all findings will be responsibly disclosed to the Monero community. Responsible disclosure may involve maintaining secrecy regarding security flaws for a period of time before disclosure to the public, which provides the development team time to correct known issues and protect our users. This also provides time to discreetly contact the developers of other cryptocurrencies so they, also, may protect their users. + + + + +\emph{Special Thanks}: We would like to issue a special thanks to the members of the Monero community who used the GetMonero.org Forum Funding System to support the Monero Research Lab. Readers may also regard this as a statement of conflict of interest, since our funding is denominated in Monero and provided directly by members of the Monero community by the Forum Funding System. + +\medskip{} + +\bibliographystyle{plain} +\bibliography{biblio.bib} + +\end{document} diff --git a/publications/research-roadmaps/MRL-R001 Priorities for Monero Research Lab/mrl.cls b/publications/research-roadmaps/MRL-R001 Priorities for Monero Research Lab/mrl.cls new file mode 100644 index 0000000..a8c3965 --- /dev/null +++ b/publications/research-roadmaps/MRL-R001 Priorities for Monero Research Lab/mrl.cls @@ -0,0 +1,1831 @@ +%% +%% LaTeX 2e class file for the processing of LaTeX2e files +%% for the BioMed Central +%% +%% Macros written by Vytas Statulevicius, VTeX, Lithuania +%% for the BioMed Central +%% Please submit bugs or your comments to vytas@vtex.lt +%% +%% The original distribution is located at: +%% http://support.e-publications.org/bmc +%% +%% This class file loads standart "article.cls" with appropriate +%% settings and then redefines layout according to BMC style +%% A lot of efforts are done for the possibility of extraction of +%% information from the LaTeX file +%% +%% You are free to use this style class as you see fit, provided +%% that you do not make changes to the file. +%% If you DO make changes, you are required to rename this file. +%% +%% It may be distributed under the terms of the LaTeX Project Public +%% License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +%% +%% Bug fixes and changes: +%% at end of file + +\def\bmcart@name{mrl.cls} +\def\bmcart@version{2012/06/27} + +\NeedsTeXFormat{LaTeX2e} + +\ProvidesClass{mrl} + [\bmcart@version Monero Research Lab] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% General options: + +% Print id line at bottom of the page: +\DeclareOption{noinfoline}{\AtBeginDocument{\let\info@line\@empty}} +\DeclareOption{infoline} {\AtBeginDocument{\let\info@line\infoline@text}} + +% Put lines numbers in margins +\newif\ifnumberlines@ \numberlines@false +\DeclareOption{linenumbers}{\numberlines@true} +\DeclareOption{nolinenumbers}{\numberlines@false} + +% Spacing +\DeclareOption{doublespacing}{\AtBeginDocument{\renewcommand{\baselinestretch}{1.4}\large\normalsize}} +\DeclareOption{singlespacing}{\AtBeginDocument{\renewcommand{\baselinestretch}{1.0}\large\normalsize}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Loading standart "article" class + +\PassOptionsToClass{twoside}{article} +\PassOptionsToPackage{fleqn}{amsmath} +\PassOptionsToPackage{sort&compress,numbers}{natbib} +\PassOptionsToPackage{colorlinks,citecolor=blue,urlcolor=blue,linkcolor=blue,pagecolor=blue}{hyperref} + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} +\ProcessOptions* + +\LoadClass{article} + +%%% start of "vsfleqn2.sty" +\newdimen\mathindent +\AtEndOfClass{\mathindent\leftmargini} +% +\def\mathtrivlist{\parsep\parskip\topsep\abovedisplayskip + \ifnum\@listdepth>0 \advance\mathindent by-\leftmargin\fi% + \@trivlist \labelwidth\z@ \leftmargin\z@ + \itemindent\z@ \def\makelabel##1{##1}} + +\def\endmathtrivlist{\endtrivlist} +% \[ \] +\renewcommand\[{\relax + \ifmmode\@badmath + \else + \begin{mathtrivlist}% + \@beginparpenalty\predisplaypenalty + \@endparpenalty\postdisplaypenalty + \item[]\leavevmode + \hb@xt@\linewidth\bgroup $\m@th\displaystyle %$ + \hskip\mathindent\bgroup + \fi} +\renewcommand\]{\relax + \ifmmode + \egroup $\hfil% $ + \egroup + \end{mathtrivlist}% + \else \@badmath + \fi} +% EQUATION +\renewenvironment{equation}% + {\@beginparpenalty\predisplaypenalty + \@endparpenalty\postdisplaypenalty + \refstepcounter{equation}% + \mathtrivlist \item[]\leavevmode + \hb@xt@\linewidth\bgroup $\m@th% $ + \displaystyle + \hskip\mathindent}% + {$\hfil % $ + \displaywidth\linewidth\hbox{\@eqnnum}% + \egroup + \endmathtrivlist} +% EQNARRAY +\renewenvironment{eqnarray}{% + \stepcounter{equation}% + \def\@currentlabel{\p@equation\theequation}% + \global\@eqnswtrue\m@th + \global\@eqcnt\z@ + \tabskip\mathindent + \let\\=\@eqncr +% \setlength\abovedisplayskip{\topsep}% +% \ifvmode +% \addtolength\abovedisplayskip{\partopsep}% +% \fi +% \addtolength\abovedisplayskip{\parskip}% +% \setlength\belowdisplayskip{\abovedisplayskip}% + \setlength\belowdisplayshortskip{\abovedisplayskip}% + \setlength\abovedisplayshortskip{\abovedisplayskip}% + $$\everycr{}\halign to\linewidth% $$ + \bgroup + \hskip\@centering + $\displaystyle\tabskip\z@skip{##}$\@eqnsel&% + \global\@eqcnt\@ne \hskip \tw@\arraycolsep \hfil${##}$\hfil&% + \global\@eqcnt\tw@ \hskip \tw@\arraycolsep + $\displaystyle{##}$\hfil \tabskip\@centering&% + \global\@eqcnt\thr@@ + \hb@xt@\z@\bgroup\hss##\egroup\tabskip\z@skip\cr}% + {\@@eqncr + \egroup + \global\advance\c@equation\m@ne$$% $$ + \@ignoretrue + } +%%% end of "vsfleqn2.sty" + +\RequirePackage{keyval} +\RequirePackage{xcolor} +\definecolor{bmcblue}{rgb}{0,0.2,0.4} + +\RequirePackage{lastpage} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Modifications and "add-on" for article.cls starts: + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Initiate some info: +\def\journal@name{Monero Research Lab} +%\let\journal@name\@empty +\def\journal@url{http://monero.cc/} +\def\journal@id{-mrl} +\def\paper@url{} +\def\info@line{} +%\def\copyrightowner@text{Monero Research Lab} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Page dimensions + +%% dimensions: text + + \setlength\parindent {8\p@} + \def\true@parindent {8\p@} + \if@twocolumn + \setlength\textheight {651\p@}% 648bp + \setlength\textwidth {484\p@}% 170mm + \else + \setlength\textheight {653\p@}% 650.9bp + \setlength\textwidth {361\p@}% 127mm + \fi + + + \setlength\columnsep {5mm} + \@settopoint\columnsep + \@tempdima=\textwidth + \advance\@tempdima by-\columnsep + \divide\@tempdima by2 + \setlength\columnwidth {\@tempdima} + \@settopoint\columnwidth + \setlength\columnseprule{0\p@} + + \mathindent20\p@ + +%% dimensions: heads + + \setlength\headheight{12\p@} + \setlength\headsep {44\p@} + \setlength\topskip {14\p@} + \setlength\footskip {2\p@} + \setlength\maxdepth {.5\topskip} + +%% dimensions: side margins + + \setlength\topmargin {27\p@} % 12mm + \if@twocolumn + \setlength\oddsidemargin {57\p@}% 20mm gutter margin + \setlength\evensidemargin {57\p@}% 20mm outer margin + \else + \setlength\oddsidemargin {118\p@}% 41.5mm gutter margin + \setlength\evensidemargin {118\p@}% 41.5mm outer margin + \fi + + \advance\oddsidemargin by-1in + \advance\evensidemargin by-1in + \advance\topmargin by-1in + + \def\set@fp@margins{% + \setlength\oddsidemargin {179\p@}% 63mm first page gutter margin + \setlength\evensidemargin {57\p@}% 20mm outer first page margin + \advance\oddsidemargin by-1in + \advance\evensidemargin by-1in + } + \if@twocolumn\else + \let\set@fp@margin@hook\set@fp@margins + \fi + +%% dimensions: skips + + \if@twocolumn + \setlength\smallskipamount{6\p@ \@plus 1\p@ \@minus 1\p@} + \setlength\medskipamount {12\p@ \@plus 3\p@ \@minus 3\p@} + \setlength\bigskipamount {18\p@ \@plus 6\p@ \@minus 3\p@} + \else + \setlength\smallskipamount{7\p@ \@plus 1\p@ \@minus 1\p@} + \setlength\medskipamount {14\p@ \@plus 3\p@ \@minus 3\p@} + \setlength\bigskipamount {22\p@ \@plus 6\p@ \@minus 3\p@} + \fi + +%% dimensions: page-breaking penalties + + \clubpenalty=10000 + \widowpenalty=10000 + \if@twocolumn + \displaywidowpenalty=50 + \fi + \predisplaypenalty=10000 % Breaking before a math display. + \pretolerance=100 % Badness tolerance for the first pass (before hyphenation) + \tolerance=800 % Badness tolerance after hyphenation + \hbadness=800 % Badness above which bad hboxes will be shown + \emergencystretch=3\p@ + \hfuzz=1\p@ % do not be to critical about boxes + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fontsizes + + \if@twocolumn + \renewcommand\normalsize{% + \@setfontsize\normalsize\@xpt{12\p@ \@plus.25\p@ \@minus.4\p@}% + \abovedisplayskip 12\p@ \@plus2\p@ \@minus2\p@ + \abovedisplayshortskip 7\p@ \@plus2\p@ + \belowdisplayshortskip 7\p@ \@plus2\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} + \else + \renewcommand\normalsize{% + \@setfontsize\normalsize\@xpt{14.2\p@ \@plus.3\p@ \@minus.5\p@}% + \abovedisplayskip 14.15\p@ \@plus2\p@ \@minus2\p@ + \abovedisplayshortskip 7\p@ \@plus2\p@ + \belowdisplayshortskip 7\p@ \@plus2\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} + \fi + + \renewcommand\small{% + \@setfontsize\small\@ixpt{11\p@ plus .2\p@ minus .2\p@}% + \abovedisplayskip 7.5\p@ \@plus4\p@ \@minus1\p@ + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip \abovedisplayskip + \belowdisplayshortskip \abovedisplayskip} + + \renewcommand\footnotesize{% + \@setfontsize\footnotesize\@viiipt{9\p@ plus .1pt minus .1pt}%% + \abovedisplayskip 6\p@ \@plus4\p@ \@minus1\p@ + \belowdisplayskip \abovedisplayskip + \abovedisplayshortskip \abovedisplayskip + \belowdisplayshortskip \abovedisplayskip} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% setattribute, getattribute, do@option@list + +\def\setattribute{\@ifnextchar[\@setattribute{\@setattribute[]}} +\def\@setattribute[#1]#2#3#4{\expandafter\gdef\csname #2@#3\endcsname{#4}} +\def\getattribute#1#2{\csname #1@#2\endcsname} +\def\sep@key@value#1=#2/?/#3{\setattribute{#3}{#1}{#2}} +\def\do@option@list#1#2{% + \@for\curr@option:={#2}\do{% + \expandafter\sep@key@value\curr@option/?/{#1}\relax + }% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% newpseudoenvironment +% same as \newenvironment, but new environment do not have additional groups \bgroup \egroup +% (i.e. all definitions are not local + +\let\org@begin\begin +\let\org@end\end +\def\begin#1{% + \@ifundefined{pseudo@#1}% + {\org@begin{#1}}{\csname pseudo@#1\endcsname[0]\relax}% + } +\def\end#1{% + \@ifundefined{pseudo@#1}% + {\org@end{#1}}{\csname pseudo@#1\endcsname[1]\relax}% + } +\def\newpseudoenvironment#1#2#3{% + \expandafter\gdef\csname pseudo@#1\endcsname[##1]{% + \relax\ifcase##1\relax\def\@@next@@{#2}\or\def\@@next@@{#3}\else\let\@@next@@\relax\fi\@@next@@}% + } + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% startlocaldefs, endlocaldefs + +\def\startlocaldefs{\makeatletter} +\def\endlocaldefs{\makeatother} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% thanksref, thanksmark, thankslabel, thankstext +% to be safe with hyperref we will use original LaTeX definitions: +% + +\def\saferef#1{\expandafter\safe@setref\csname r@#1\endcsname\@firstoftwo{#1}} +\let\safe@setref\@setref + +\def\safelabel#1{% + \@ifundefined{thanksnewlabel@#1}% + {\@bsphack\protected@write\@auxout{}{\string\thanksnewlabel{#1}{{\@currentlabel}{\thepage}}}\@esphack} + {}% + \@namedef{thanksnewlabel@#1}{}} + +\let\thanksnewlabel\newlabel + +% we want to use various counters: +\def\usethankscounter#1{% + \@ifundefined{current@thankscounter}{\gdef\previous@thankscounter{#1}}{\xdef\previous@thankscounter{\current@thankscounter}}% + \def\current@thankscounter{#1}} + +\def\restorethankscounter{\xdef\current@thankscounter{\previous@thankscounter}} + +\newcounter{thanks} +%\def\thethanks{\@fnsymbol\c@thanks} +\def\thethanks{\@arabic\c@thanks} +\usethankscounter{thanks} + +\def\thanksmark@fmt#1{\hbox{$^{#1}$}} +\def\thanksref@sep{,} + +% hooks for the hyperref: +\def\thankref@hyperlink#1{\saferef{#1thanks}} +\def\thanks@hypertarget#1{} + +% Isvedame zymes +\def\thanksref{\@ifnextchar[{\@tempswatrue\@thanksref}{\@tempswafalse\@thanksref[]}} + +\def\@thanksref[#1]#2{% + \if@tempswa% [] + \thanksmark@fmt{#1}% + \else% + \let\@tempa\@empty% + \thanksmark@fmt{\@for\@tempb:=#2\do{% + \@tempa\let\@tempa\thanksref@sep% + \edef\@tempb{\expandafter\@firstofone\@tempb\@empty}% + \thankref@hyperlink{\@tempb}}}% + \fi} + +% Suformuojame ir isvedame zyme +\def\thanksmark{\@ifnextchar[{\@tempswatrue\@thanksmark}{\@tempswafalse\@thanksmark[]}} + +\def\@thanksmark[#1]#2{% + \@thankslabel[#1]{#2}% + \safelabel{#2thanks}% + \thanksmark@fmt{\expandafter\saferef{#2thanks}\thanks@hypertarget{#2}}} + +% Suformuojame tik zyme +\def\thankslabel{\@ifnextchar[{\@tempswatrue\@thankslabel}{\@tempswafalse\@thankslabel[]}} + +\def\@thankslabel[#1]#2{% + \if@tempswa% [] + \protected@edef\@currentlabel{#1}% + \else% + \refstepcounter{\current@thankscounter}% + \fi% + \safelabel{#2thanks}}% + +% Suformuojame zyme ir idedame teksta i \@thanks: +\def\thankstext{\@ifnextchar[{\@tempswatrue\@thankstext}{\@tempswafalse\@thankstext[]}} + +\def\@thankstext[#1]#2#3{% + \@thankslabel[#1]{#2}% + \protected@xdef\@thanks{\@thanks\protect\thanks@thefnmark{#2thanks}% + \protect\@footnotetext{\thanks@hypertarget{#2}#3}}}% + +\def\thanks@thefnmark#1{\begingroup\unrestored@protected@xdef\@thefnmark{\saferef{#1}}\endgroup}% + + + +% ST makrosas savo numeracijos sistemos sukurimui +\def\setvaluelist#1#2{\@tempcnta=0\relax + \@for\@curr@val:=#2\do{% + \advance\@tempcnta by1\relax + \expandafter\protected@xdef\csname #1@item@\the\@tempcnta\endcsname{\@curr@val}% + }% + \expandafter\protected@xdef\csname #1@item@0\endcsname{\the\@tempcnta}% +} +\xdef\getitemvalue#1#2{\noexpand\csname #1@item@#2\endcsname} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ead, \printead + +\def\email@text{} +\def\url@text{http://} +\def\ead@sep{;~} + +% naudojame keyval paketa +\define@key{ead}{email}[true]{\def\ead@type{email}} +\define@key{ead}{url}[true]{\def\ead@type{url}} +\define@key{ead}{label}{\def\ead@label{#1}} + +\DeclareRobustCommand\ead[2][label= ,email]{{% + \def\ead@type{email}% default + \setkeys{ead}{#1}% + \def\texttildelow{\noexpand\texttildelow}% + \protected@edef\@currentlabel{#2}% + \safelabel{\ead@label @\ead@type}}} + +\newif\ifnot@ead@star + +\DeclareRobustCommand{\printead}{\@ifstar{\not@ead@starfalse\@printead}{\not@ead@startrue\@printead}} + +\def\@printead{\@ifnextchar[{\@tempswatrue\@@printead}{\@tempswafalse\@@printead[]}} + +\def\@@printead[#1]#2{% + \if@tempswa% [] + {\ead@size #1}% + \else% + \def\ead@type{email}% + \def\ead@prefix{mailto:}% + \let\ead@text\email@text% + \let\@ead@sep\relax% + \@for\ead@ref:=#2\do{% + \@ead@sep\let\@ead@sep\ead@sep% + \@ifundefined{r@\ead@ref @url}{}{\let\ead@text\url@text\def\ead@type{url}\def\ead@prefix{http://}}% + \ifnot@ead@star\ead@text\fi{\ead@size\def\null{}\ims@href{\ead@prefix\saferef{\ead@ref @\ead@type}}{\saferef{\ead@ref @\ead@type}}}% + \let\ead@text\relax}% + \fi% +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% normaltext, nohyphen, no@harm + +% normalus tekstas (justify) +\def\normaltext{\let\\=\@normalcr% + \leftskip\z@ \@rightskip\z@ \rightskip\@rightskip% + \parfillskip\@flushglue} + +% skiemenavimo isjungimas +\def\nohyphen{\pretolerance=\@M \tolerance=\@M \hyphenpenalty=\@M \exhyphenpenalty=\@M} + +\def\no@harm{\let\thanks=\@gobble\let\thanksref=\@gobble\let~\space\def\ead[##1]##2{}\let\\=\@empty \def\protect{\noexpand\protect\noexpand}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% url@fmt + + +\def\journalurl#1{\def\journal@url{#1}} +\def\paperurl#1{\def\paper@url{#1}} + +\def\doi#1{% + \gdef\@doi{#1}% + \gdef\doi@text{\url@fmt{DOI: }{\ttfamily}{#1}{\doi@base\@doi}}% +} + +\def\@doi{} + +\def\doi@base{http://dx.doi.org/} + +% {url}{text} +\def\ims@href#1#2{#2} + +% {prefix}{font}{text}{url} + +\def\url@fmt#1#2#3#4{% + \edef\@tempa{#3}% + \ifx\@tempa\@empty% + \else% + #1{#2\ims@href{#4}{#3}}% + \fi} + +%%%%%%%%%%%%%%%%%%% doiurl + +\@ifundefined{doi@base}{\def\doi@base{http://dx.doi.org/}}{} + +\DeclareRobustCommand\doiurl[1]{{% + \def\\{}% + \check@doiurl@prefix#1http://\end% + \check@doiurl@break#1\\\end\relax% + \if@doiurlbreak% + \@ifundefined{doi@url}{% + \href{\doi@base\@tempx\@tempy}{\csname doi@size\endcsname\@tempx}% + \break% + \href{\doi@base\@tempx\@tempy}{\csname doi@size\endcsname\@tempy}}% + {% + \expandafter\href{\@tempx\@tempy}{\csname doi@size\endcsname\@tempx}% + \break% + \href{\@tempx\@tempy}{\csname doi@size\endcsname\@tempy}}% + \else% + \@ifundefined{doi@url}% + {\href{\doi@base#1}{\csname doi@size\endcsname #1}}% + {\href{#1}{\csname doi@size\endcsname #1}}% + \fi}} + + +\def\check@doiurl@prefix#1http://#2\end{\ifx.#2.\else\def\doi@url{fullurl}\fi} + +\newif\if@doiurlbreak \@doiurlbreakfalse + +\def\check@doiurl@break#1\\#2\end{% + \ifx.#2.\@doiurlbreakfalse% + \else% + \@doiurlbreaktrue% + \def\@tempx{#1}% + \def\@tempy{#2}% + \fi} + +%%%%%%%%%%%%%%%%%%% arxivurl + +%% \arxivurl{http://arxiv.org/abs/math.PR/0603300} +%% \arxivurl{math.PR/0603300} +%% \arxivurl{http://\\arxiv.org/abs/math.PR/0603300} +%% \arxivurl{math.PR/\\0603300} + +\@ifundefined{arxiv@base}{\def\arxiv@base{http://arxiv.org/abs/}}{} + +\DeclareRobustCommand\arxivurl[1]{{% + \def\\{}% + \check@arxivurl@prefix#1http://\end% + \check@arxivurl@break#1\\\end\relax% + \if@arxivurlbreak% + \@ifundefined{arxiv@url}{% + \href{\arxiv@base\@tempx\@tempy}{\csname arxivurl@size\endcsname\@tempx}% + \break% + \href{\arxiv@base\@tempx\@tempy}{\csname arxivurl@size\endcsname\@tempy}}% + {% + \expandafter\href{\@tempx\@tempy}{\csname arxivurl@size\endcsname\@tempx}% + \break% + \href{\@tempx\@tempy}{\csname arxivurl@size\endcsname\@tempy}}% + \else% + \@ifundefined{arxiv@url}% + {\href{\arxiv@base#1}{\csname arxivurl@size\endcsname #1}}% + {\href{#1}{\csname arxivurl@size\endcsname #1}}% + \fi}} + + +\def\check@arxivurl@prefix#1http://#2\end{\ifx.#2.\else\def\arxiv@url{fullurl}\fi} + +\newif\if@arxivurlbreak \@arxivurlbreakfalse + +\def\check@arxivurl@break#1\\#2\end{% + \ifx.#2.\@arxivurlbreakfalse% + \else% + \@arxivurlbreaktrue% + \def\@tempx{#1}% + \def\@tempy{#2}% + \fi} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% RUNNING HEADS + +\def\runtitle#1{\gdef\@runtitle{#1}} +\def\runauthor#1{\gdef\@runauthor{#1}\global\let\copauthor\@runauthor} +\def\@runauthor{} +\def\@lastpage{0} + +\def\thepage@fmt#1{Page #1 of \@lastpage} +\def\thepage@fmt#1{Page #1 of \pageref{LastPage}} + +\def\headline@hook{} +\let\ps@copyright@hook\relax + +% normal RH +\def\ps@bmcheadings{% + \def\etal{\textit{et al.}}% + \let\@mkboth\@gobbletwo% + \def\@evenfoot{\csname footline@hook\endcsname\hfill}% + \let\@oddfoot\@evenfoot + \def\@oddhead{\headline@hook\hskip-\rhindent@width\hbox to\z@{\parbox[t]{\textarea@width}{\runninghead@size\runninghead@text}\hss}\hfill}% + \let\@evenhead\@oddhead% +}% + + +% First page RH +\def\ps@copyright{\csname set@fp@margin@hook\endcsname% + \def\etal{\textit{et al.}}% + \let\@mkboth\@gobbletwo% + \def\@evenhead{\ps@copyright@hook\headline@hook\hskip-\leftarea@width\parbox[t]{\textarea@width}{\copyright@size\copyright@text}\hfill}% + \let\@oddhead\@evenhead% + \def\@oddfoot{\csname footline@hook\endcsname\hfill\hfill}% + \let\@evenfoot\@oddfoot} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LIST ENVIRONMENTS + +\parsep\z@ +\topsep\z@ +\partopsep\z@ +\itemsep\z@ +\labelsep.5em + +\def\@listI{\leftmargin\leftmargini + \parsep\z@ + \topsep\z@ + \itemsep\z@} + +\def\list@parindent{8\p@} + + +\def\labelenumi{\theenumi\hskip6\p@} + +% quotation +\let\quotation@size\normalsize +\def\quotation@itemindent{\list@parindent} +\def\quotation@parindent{\list@parindent} +\def\quotation@leftmargin{\list@parindent} +\let\quotation@rightmargin\z@ +\let\quotation@topsep\smallskipamount + +\def\quotation{% + \list{}{\quotation@size% + \listparindent\quotation@parindent% + \itemindent \quotation@itemindent% + \rightmargin\quotation@rightmargin \leftmargin\quotation@leftmargin% + \partopsep\z@ \topsep\quotation@topsep \parsep\z@% + }% + \item[\Q@strut]\relax} + +\def\endquotation{\endlist} + +\def\Q@strut{\leavevmode\hbox{\vrule height9pt depth1pt width0pt}} + +% quote +\let\quote@size\normalsize +\def\quote@indent{\z@} +\def\quote@leftmargin{2pc} +\def\quote@rightmargin{\z@} +\let\quote@topsep\smallskipamount + +\def\quote{% + \list{}{\quote@size% + \listparindent\quote@indent% + \itemindent \listparindent% + \rightmargin\quote@rightmargin \leftmargin\quote@leftmargin% + \partopsep\z@ \topsep\quote@topsep \parsep\z@% + }% + \item\relax} + +\def\endquote{\endlist} + +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \topsep\z@ + \parsep\z@ + \itemsep \parsep} + +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \topsep\z@ + \parsep z@ + \partopsep\z@ + \itemsep\topsep} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TABLE, FIGURE + +% settings for table caption +\setattribute{floatcaption} {size}{\footnotesize\bfseries\mathversion{bold}\raggedright} +\setattribute{floatcaptionname}{size}{\bfseries} + +\setlength\abovecaptionskip{0\p@} +\setlength\belowcaptionskip{4\p@} + +\long\def\@makecaption#1#2{ + \vskip\abovecaptionskip + \parbox[t]{\hsize}{\floatcaption@size{\floatcaptionname@size #1}\hskip.5em #2\par}% + \vskip\belowcaptionskip} + + +\def\@floatboxreset{% + \reset@font + \footnotesize + \sffamily + \@setminipage + \centering +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FIGURE - in box + +\newbox\bmcfloat@box +\newif\if@figurestar + +\setattribute{figure}{sep}{6.25\p@} + +\def\figure{\@figurestarfalse\@ifnextchar[{\@figure}{\@figure[t]}} + +\def\@figure[#1]{\def\figure@pars{#1}% + \def\@captype{figure}% + \def\csentence##1{{\mathversion{bold}\bfseries ##1}}% +% \csname @figure@hook\endcsname% +% \let\@makecaption\@makefigurecaption% +% \let\@floatboxreset\figure@boxreset% + \setbox\bmcfloat@box=\vbox\bgroup\figure@settings} + +\def\endfigure{% + \par% + \egroup% + \edef\reserved@a{\noexpand\@xfloat{figure}[\figure@pars]} + \reserved@a\makefigure@float\end@float +} + + +\DeclareRobustCommand\fig@textbf[1]{{\floatcaptionname@size #1}}% + +\def\figure@settings{% + \let\textbf\fig@textbf% + \setattribute{floatcaption}{size}{\footnotesize\sffamily\raggedright} + \if@figurestar\hsize=\textwidth\fi% + \@tempdima\hsize% + \advance\@tempdima by-\figure@sep% + \advance\@tempdima by-\figure@sep% + \hsize\@tempdima% + \parindent\z@% + \centering% + \setlength\abovecaptionskip{6\p@}% + \setlength\belowcaptionskip{0\p@}% +} + +\def\makefigure@float{ + \setlength{\fboxsep}{\figure@sep}% + \setlength{\fboxrule}{0.25\p@}% + \fcolorbox{bmcblue}{white}{\box\bmcfloat@box}} + +\@namedef{figure*}{\@figurestartrue\@ifnextchar[{\@figure}{\@figure[t]}} + +\@namedef{endfigure*}{% + \egroup% + \edef\reserved@a{\noexpand\@xdblfloat{figure}[\figure@pars]} + \reserved@a\makefigure@float\end@dblfloat +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FOOTNOTE + +\def\footnoterule{\kern-3\p@ \hrule \@width \footnoterule@width \kern 2.6\p@} % the \hrule is .4pt high + +\let\orig@footnoterule\footnoterule + +\renewcommand\@makefntext[1]{\noindent\parindent8\p@\@makefnmark #1} + +\def\@makefnmark{\csname makefnmark@hook\endcsname\@textsuperscript{\normalfont[\@thefnmark]}}% + +% hook for hyperref +\def\@makefntext@fmt#1{\@makefnmark} + +\def\freefootnotetext[#1]{% + \begingroup\unrestored@protected@xdef\@thefnmark{#1}\endgroup\@footnotetext} + +\def\footnote@size{\fontsize{7}{8}\raggedright} + +\long\def\@footnotetext#1{\insert\footins{% + \reset@font\footnote@size + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}}% + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% MAIN SETTINGS - COMMON FOR 1 and 2 col's layouts + + +\setattribute{frontmatter} {style} {\raggedright} +\setattribute{address} {style} {\raggedright} +\setattribute{affiliation} {style} {\raggedright} +\setattribute{abstract} {style} {\raggedright} +\setattribute{keyword} {style} {\normaltext\raggedright} +\setattribute{backmatter} {style} {\raggedright} + +% FRONT MATTER SKIPS +\setattribute{dochead} {skip} {-\topskip} +\setattribute{title} {skip} {10\p@} +\setattribute{subtitle} {skip} {5\p@} +\setattribute{date} {skip} {10\p@} +\setattribute{authors} {skip} {2\p@} +\setattribute{note} {skip} {8\p@} +\setattribute{copyright} {skip} {23\p@} +\setattribute{address} {skip} {4\p@ plus 2\p@} +\setattribute{history} {skip} {\Smallskipamount} +\setattribute{abstract} {skip} {0\p@} +\setattribute{keyword} {skip} {5\p@} +\setattribute{abbr} {skip} {\medskipamount} +\setattribute{frontmatter} {skip} {\bigskip} + +\setattribute{copyrightlogo}{cmd}{} + +% FRONT MATTER FONTS +\setattribute{dochead} {size} {\sffamily\fontsize{13pt}{13pt}\bfseries\selectfont\color{white}} +\setattribute{title} {size} {\sffamily\fontsize{24pt}{26pt}\selectfont\raggedright} +\setattribute{subtitle} {size} {\sffamily\fontsize{20pt}{22pt}\selectfont\raggedright} +\setattribute{author} {size} {\sffamily\fontsize{11pt}{14pt}\selectfont\raggedright} +\setattribute{date} {size} {\sffamily\fontsize{11pt}{14pt}\selectfont\raggedright} +\setattribute{address} {size} {} +\setattribute{note} {size} {\sffamily\fontsize{10pt}{13pt}\selectfont\raggedright} +\setattribute{thanksbox} {size} {\sffamily\fontsize{7pt}{9pt}\selectfont\raggedright} +\setattribute{history} {size} {\mdseries} +\setattribute{abstract} {size} {\sffamily\fontsize{10}{12}\selectfont} +\setattribute{abstractname}{size} {\bfseries} +\setattribute{keyword} {size} {\sffamily\fontsize{10}{12}\selectfont} +\setattribute{keywordname} {size} {\bfseries} + +\setattribute{runninghead} {size} {\sffamily\fontsize{8}{10}\selectfont} +\setattribute{footline} {size} {\sffamily\fontsize{7}{8}\selectfont} +\setattribute{copyright} {size} {\sffamily\fontsize{8}{10}\selectfont} +\setattribute{backmatter} {size} {\sffamily\fontsize{7}{9}\selectfont\raggedright} +\setattribute{ead} {size} {} + +% COPYRIGHT TEXT, etc. +\setattribute{address} {text} {Author details} +\setattribute{corref} {text} {Correspondence: } +\setattribute{authorinfo} {text} {} +\setattribute{presentaddress} {text} {\textit{Present address: }} +\setattribute{copyright} {text} {\copyright\,\textit{\journal@name}} +\setattribute{runninghead} {text} {\copyright\,\textit{\journal@name} \hfill \thepage@fmt{\thepage}} +\setattribute{footline} {text} {} +\setattribute{pdfsubject} {text} {\journal@name} + +% URL +\setattribute{article} {url} {} + +% SEPARATIONS + +\setattribute{author} {sep} {, } +\setattribute{authorand} {sep} {~and } +\setattribute{address} {sep} {. } + +% KEYWORDS +\setattribute{keyword} {AMS} {AMS Subject Classification} +\setattribute{keyword} {MSC} {Mathematics Subject Classification} +\setattribute{keyword} {MSC2010} {Mathematics Subject Classification (2010)} +\setattribute{keyword} {MSCnoyear}{Mathematics Subject Classification} +\setattribute{keyword} {KWD} {Keywords} +\setattribute{keyword} {JEL} {JEL Classification} +\setattribute{keyword} {PACS} {PACS Codes} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FRONT MATTER FORMATTING PARAMETERS + + +% FRONT MATTER SKIPS +\if@twocolumn +\setattribute{abstractbox} {skip} {24\p@} +\else +\setattribute{abstractbox} {skip} {-1\p@} +\fi + +\setattribute{frontmatter} {cmd} {% + \frontmatter@skip% + \global\@afterindentfalse% + \@afterheading} + +% FRONT MATTER DIMENSIONS +\setattribute{textarea} {width} {484\p@} %170mm 1 puslapio maksimalus plotis +\if@twocolumn +\setattribute{leftarea} {width} {\z@} +\setattribute{rhindent} {width} {\z@} +\else +\setattribute{leftarea} {width} {122\p@} %38mm+5mm=43mm +\setattribute{rhindent} {width} {61\p@} %21.5mm = 41.5-20 rh issikisimas normaliuose puslapiuose +\fi +\setattribute{leftcol} {width} {108\p@} %38mm 1 puslapio isnasu dezutes plotis +\setattribute{colsep} {width} {14\p@} %5mm +\if@twocolumn +\setattribute{footnoterule}{width} {\columnwidth}% +\else +\setattribute{footnoterule}{width} {\textwidth}% +\fi + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FRONTMATTER + +% COUNTERS, ETC +\newcounter{author} +\newcounter{address} +\newdimen\sv@mathsurround +\let\hy@frontmatter\relax +\let\hy@endfrontmatter\relax + +\def\frontmatter{% + \global\c@author\z@ + \global\c@address\z@ +% + \thispagestyle{copyright}% +% + \csname frontmatter@hook \endcsname% + \sv@mathsurround\mathsurround% + \m@th + \set@frontmatter@cmd + \set@frontmatter@keys + \parindent\z@ + \frontmatter@style + \hy@frontmatter + \ignorespaces} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ENDFRONTMATTER + +\def\endfrontmatter{% + \global\@topnum\z@ +% + \@thanks% +% + \write@pdfinfo{\hy@fauthor}{\csname fauthor@\firstauthor@id\endcsname} + \write@pdfinfo{\hy@author}{\the\authors@list} + \write@pdfinfo{\hy@subject}{\pdfsubject@text} + \write@pdfinfo{\hy@keywords}{\the\keywords@list} +% + \hy@endfrontmatter +% + \immediate\write\@mainaux{\string\global\string\@namedef{num@address}{\the\c@address}}% + \immediate\write\@mainaux{\string\global\string\@namedef{num@author}{\the\c@author}}% + \set@authorcorref@notset% +% + \global\mathsurround\sv@mathsurround + \global\let\@thanks\@empty +% + \set@runauthor +% + \csname frontmatter@hook\endcsname% + \aftergroup\frontmatter@cmd + \aftergroup\insert@thanksbox + } + \if@twocolumn + \def\insert@thanksbox{\insert\footins{\unvbox\thanks@box}} + \else + \let\insert@thanksbox\relax + \fi + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \set@frontmatter@cmd + +\def\set@frontmatter@cmd{% + \let\maketitle\relax + \let\fmbox\bmc@fmbox + \let\endfmbox\bmc@endfmbox + \let\dochead\bmc@dochead + \let\title\bmc@title + \let\subtitle\bmc@subtitle + \let\author\bmc@author + \let\address\bmc@address + \let\date\bmc@date + \let\artnotes\bmc@artnotes + \let\endartnotes\bmc@endartnotes + \let\abstractbox\bmc@abstractbox + \let\endabstractbox\bmc@endabstractbox + \let\abstract\bmc@abstract + \let\endabstract\bmc@endabstract + \let\keyword\bmc@keyword + \let\endkeyword\bmc@endkeyword + \let\thanksbox\bmc@thanksbox + \let\endthanksbox\bmc@endthanksbox +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FMBOX + +\newif\if@fmbox \@fmboxfalse +\newbox\fm@box + +\def\bmc@fmbox{% + \setbox\fm@box=\vbox\bgroup + \@fmboxtrue + \hsize=\textarea@width + } + +\def\bmc@endfmbox{% + \par + \auto@set@thanksbox% + \csname endfmbox@hook\endcsname% +\egroup% +\if@twocolumn + \emergencystretch=1pc \twocolumn[\box\fm@box\medskip] +\else + \hbox to\textwidth{\hss\box\fm@box} + \vskip\abstract@skip + \vbox to\z@{\llap{\box\thanks@box\hskip\colsep@width}\vss} +\fi} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DOCHEAD + +\let\dochead@hook\relax + +\def\bmc@dochead{\@ifnextchar[{\dochead@fmt}{\dochead@fmt[]}} + +\def\dochead@fmt[#1]#2{% +\bgroup% + \@tempdima=\hsize% + \advance\@tempdima by-8\p@% + \setlength{\fboxsep}{4\p@}% + \setlength{\fboxrule}{\z@}% + \fcolorbox{bmcblue}{bmcblue}{\hbox to\@tempdima{\dochead@size\MakeUppercase{#2}}}%\hfill\fontshape{n}\selectfont\smash{\dochead@hook}}} +\egroup} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TITLE + +\let\PREHOOK@title@fmt\@gobble + +\def\bmc@title{\@ifnextchar[{\title@fmt}{\title@fmt[]}} + +\def\title@fmt[#1]#2{% + \vskip\title@skip% + \setkeys{title}{#1}% + \bgroup% + \no@harm% + \let\protect\relax% + \xdef\@runtitle{#2}% + \egroup% + \bgroup% + \no@harm% + \let\protect\relax% + \xdef\@argi{#2}% + \egroup% + \write@pdfinfo{\hy@title}{\@argi}% + \bgroup + \PREHOOK@title@fmt{#2}% + \title@size\csname pretitle@text\endcsname #2\par% + \egroup} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SUBTITLE + +\def\bmc@subtitle{\@ifnextchar[{\subtitle@fmt}{\subtitle@fmt[]}} + +\def\subtitle@fmt[#1]#2{% + \vskip\subtitle@skip + \setkeys{title}{#1}% + \bgroup% + \subtitle@size #2\par% + \egroup} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DATE + +\def\bmc@date{\@ifnextchar[{\date@fmt}{\date@fmt[]}} + +\def\date@fmt[#1]#2{% + \vskip\date@skip + \setkeys{title}{#1}% + \bgroup% + \date@size #2\par% + \egroup} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% set@frontmatter@keys + +\def\set@frontmatter@keys{% + \@tempcnta=0\relax% + \@ifundefined{num@address}{}{\@tempcnta=\num@address\relax}% + \ifnum\@tempcnta=1\relax% +% \define@key{author}{addressref}{}% +% \define@key{author}{presentaddressref}{}% + \define@key{author}{corref}{}% + \global\let\address@thanksref\@gobble + \global\let\printaddresses\relax + \fi% + \@tempcnta=0\relax% + \@ifundefined{num@author}{}{\@tempcnta=\num@author\relax}% + \ifnum\@tempcnta=1\relax% + \global\@namedef{num@address}{1} +% \define@key{author}{addressref}{}% +% \define@key{author}{presentaddressref}{\expandafter\gdef\csname presentaddressref@##1\endcsname{}}% +% \gdef\printauthor##1{\unskip}% + \global\let\address@thanksref\@gobble + \global\let\printaddresses\relax + \global\let\corref@thanksmark\@gobble + \global\let\corref@thanksref\@gobble + \fi% +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \thanksmark etc + +\def\thanksmark@fmt#1{{\textsuperscript{#1}}} + +\def\thethanks{\getitemvalue{bmcsymbol}{\@arabic\c@thanks}} + +\setvaluelist{bmcsymbol}{*,\textdagger,\^{}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% AUTHOR - keys + +% \author[id=au1,addressref={aff1,aff2},presentaddressref=aff3,corref={aff1,aff2},thanksref={t1}]{\inits{}\fnm{} \snm{} \suffix{}\ead{}} +% \author@au1 =\inits \snm \suffix +% \fauthor@au1=\fnm \snm \suffix +% \corref@au1 =\corref@text +% +% automatiniam formatavimui: +% \def\addressref@aff1{} +% \emaillist@au1 ={e1,e2} +% \authorslist@aff1 ={au1,au2} +% \authorslist@present@aff1 ={au1,au2} +% \correflist@au1 ={aff1,aff2} +% \authors@id@list ={au1,au2,au3...} +% +% tikriname ar nebuvo panaudotas id: + + \def\check@xx@id#1#2{\@ifundefined{#1@#2}{}{\@latex@error{Command <#1>: id=#2 was allready used!}{}}} + + \newif\ifauthor@corref + \newif\ifauthor@email + + \define@key{author}{id}{% + \def\author@id{#1}% + \check@xx@id{author}{#1}% + \@ifundefined{authors@id@list}{\xdef\authors@id@list{#1}}{\xdef\authors@id@list{\authors@id@list,#1}}} + + \define@key{author}{email}{% + \author@emailtrue% + \ead[label=\author@id]{#1}} + + \define@key{author}{thanksref}{% + % \current@thanksref@list={aff1,aff2} + % \def\thanksref@aff1{} + \edef\current@thanksref@list{#1}% + \@for\thanksref@id:=#1\do{\expandafter\gdef\csname thanksref@\thanksref@id\endcsname{}}} + +% alias for thanksref + \define@key{author}{noteref}{% + % \current@thanksref@list={aff1,aff2} + % \def\thanksref@aff1{} + \edef\current@thanksref@list{#1}% + \@for\thanksref@id:=#1\do{\expandafter\gdef\csname thanksref@\thanksref@id\endcsname{}}} + + \define@key{author}{addressref}{% + % \current@address@list={aff1,aff2} + % \def\addressref@aff1{} + \edef\current@address@list{#1}% + \@for\addressref@id:=#1\do{\expandafter\gdef\csname addressref@\addressref@id\endcsname{}}} + + \define@key{author}{presentaddressref}{% + % \current@address@list={aff1,aff2}% + % \def\presentaddressref@aff1{}% + \@ifundefined{addressref@#1}{\edef\current@paddress@list{#1}}{}% + \@for\addressref@id:=#1\do{\expandafter\gdef\csname presentaddressref@\addressref@id\endcsname{}}% + \@for\addressref@id:=#1\do{\expandafter\gdef\csname addressref@\addressref@id\endcsname{}}} + + \define@key{author}{corref}[]{% +% \corref@list={aff1,aff2}% + \global\let\set@authorcorref@notset\relax% + \global\author@correftrue% + \ifx.#1.\else\xdef\corref@list{#1}\fi% +} + + \def\add@to@addressref@list#1{\@ifundefined{addressref@list}{\edef\addressref@list{#1}}{\edef\addressref@list{\addressref@list, #1}}} + \def\add@to@thanksref@list#1{\@ifundefined{thanksref@list}{\edef\thanksref@list{#1}}{\edef\thanksref@list{\thanksref@list, #1}}} + + \def\set@authorcorref@notset{\immediate\write\@mainaux{\string\global\string\authorcorref@notsettrue}} + + \def\set@author@lists{% + \let\thanksref@list\relax% + \let\addressref@list\relax% + \@ifundefined{current@address@list}{}{\add@to@addressref@list{\current@address@list}}% + \@ifundefined{current@paddress@list}{}{\add@to@addressref@list{\current@paddress@list}}% + \@ifundefined{current@thanksref@list}{}{\add@to@thanksref@list{\current@thanksref@list}}% +} + + \def\print@author@lists{% + \@ifundefined{addressref@list}{}{\address@thanksref{\addressref@list}}% + \ifauthor@corref\def\thanksref@sep{}\corref@thanksref{\corr@author@id}\fi% + \@ifundefined{thanksref@list}{}{\def\thanksref@sep{}\thanksref{\thanksref@list}}% +} + +\let\address@thanksref\thanksref +\let\corref@thanksref\thanksref + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% AUTHOR +% if corref is not set, we will use first author with an email as a corresponding author +% \corr@author@id -> {au1} +% \corref@list -> {aff1,aff2} + +\newif\ifauthorcorref@notset \authorcorref@notsetfalse + + +\def\bmc@author{\@ifnextchar[{\author@fmt}{\author@fmt[]}} + +\def\author@fmt[#1]#2{% + \stepcounter{author}{% + \csname author@cmd\endcsname% + \author@correffalse% + \xdef\author@id{au\the\c@author}% + \setkeys{author}{#1}% + \@ifundefined{num@author}{\@tempcnta=10\relax}{\@tempcnta=\num@author\relax}% + \def\a@sep{, }% + \ifnum\@tempcnta>1\relax% + \ifnum\c@author=\@tempcnta% + \let\a@sep\authorand@sep% + \else% + \let\a@sep\author@sep% + \fi% + \fi% +% + \ifauthorcorref@notset% + \ifauthor@email% email is set + \author@correftrue% + \global\authorcorref@notsetfalse% + \fi% + \fi% + \ifauthor@corref% + \xdef\corr@author@id{\author@id}% + \@ifundefined{corref@list}% + {\@ifundefined{current@address@list}{}{\xdef\corref@list{\current@address@list}}}% + {}% + \fi% +% + \ifnum\c@author=1 \author@fmt@init \let\a@sep\relax \xdef\first@author@id{\author@id}\fi% + \bgroup% F. Author + \def\inits##1{##1}\def\fnm##1{}\def\snm##1{##1}\def\particle##1{##1}\def\suffix##1{##1}% + \no@harm% + \xdef\author@arg{#2}% + \egroup% + \expandafter\protected@xdef\csname author@\author@id\endcsname{\author@arg}% + \bgroup% First Author + \def\inits##1{}\def\fnm##1{##1}\def\particle##1{##1}\def\snm##1{##1}\def\suffix##1{##1}% + \no@harm% + \xdef\author@arg{#2}% + \ifnum\c@author=1\addto@authors@list{#2}\xdef\firstauthor@id{\author@id}\else\addto@authors@list{, #2}\fi% + \egroup% + \expandafter\protected@xdef\csname fauthor@\author@id\endcsname{\author@arg}% + \bgroup% Author + \def\inits##1{}\def\fnm##1{\ignorespaces}\def\particle##1{}\def\snm##1{##1}\def\suffix##1{}% + \no@harm% + \expandafter\xdef\csname runauthor@\the\c@author @snm\endcsname{#2}% + \egroup% + \bgroup% + \author@size% + \def\inits##1{}\def\fnm##1{##1}\def\snm##1{##1}\def\particle##1{##1}\def\suffix##1{##1}% + \set@author@lists% + \a@sep\authorname@fmt{#2}\print@author@lists% + \egroup}% + \ignorespaces} + +\def\author@fmt@init{% + \vskip\authors@skip% + \author@size% + \leavevmode} + +\def\authorname@fmt#1{#1} + +\def\set@runauthor{% + \ifnum\c@author=1\relax + \gdef\@runauthor{\@nameuse{runauthor@1@snm}}% + \else + \ifnum\c@author=2\relax + \gdef\@runauthor{\@nameuse{runauthor@1@snm} and \@nameuse{runauthor@2@snm}}% + \else + \@ifundefined{runauthor@1@snm}{}{\gdef\@runauthor{\@nameuse{runauthor@1@snm} \etal}}% + \fi + \fi} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ADDRESS + +% \address[id=aff1]{} + + \define@key{address}{id}{% + \def\address@id{#1}% + \check@xx@id{address}{#1}% +} + + +\def\bmc@address{\@ifnextchar[{\address@fmt}{\address@fmt[]}} + + +\def\address@fmt[#1]#2{% + \stepcounter{address}% + \xdef\address@id{aff\the\c@address}% + \setkeys{address}{#1}% + \@ifundefined{address@id@list}{\xdef\address@id@list{\address@id}}{\xdef\address@id@list{\address@id@list,\address@id}}% + \expandafter\newtoks\csname address@\address@id\endcsname% + \global\csname address@\address@id\endcsname={#2}% +} + + +\def\address@definitions{ + \def\\{\break}% + \def\orgdiv##1{##1}\def\orgname##1{##1}% + \def\street##1{##1}\def\postcode##1{##1}% + \def\postbox##1{##1}\def\city##1{##1}\def\state##1{##1}\def\cny##1{##1}% + \let\interref\surl% +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% printaddress{aff1} + +\newcounter{addressref} +\def\theaddressref{\arabic{addressref}} + +\newif\if@address@mark \@address@marktrue + +\define@key{printaddress}{nomark}[true]{ + \let\thanksmark\@gobble% + \let\thanksref\@gobble}% + +\define@key{printaddress}{addrprefix}{\def\addr@prefix{#1}}% +\let\addr@prefix\relax + +\DeclareRobustCommand{\printaddress}{\@ifnextchar[{\printaddress@fmt}{\printaddress@fmt[]}} + +\def\printaddress@fmt[#1]#2{% +\bgroup% + \setkeys{printaddress}{#1}% + \address@size% + \parindent\z@% + \address@definitions% + \set@address@mark% + \usethankscounter{addressref}\thanksmark{#2}\restorethankscounter% + \addr@prefix% + \@ifundefined{presentaddressref@#2}{}{\presentaddress@text}% + \expandafter\the\@nameuse{address@#2}\unskip\address@sep% +\egroup} + + +\def\thanksbox@printaddress@fmt[#1]#2{% +\bgroup% + \setkeys{printaddress}{#1}% + \address@size% + \parindent\z@% + \address@definitions% + \set@address@mark% + \thanksref{#2}% + \addr@prefix% + \expandafter\the\@nameuse{address@#2}\par% +\egroup} + + +\def\set@address@mark{% + \ifnum\c@author=1\relax \@address@markfalse\fi% + \ifnum\c@address=1\relax \@address@markfalse \fi% + \if@address@mark\else\let\thanksmark\@gobble\let\thanksref\@gobble\fi% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% printaddresses{} + +\def\printaddresses{ + \heading*{\address@text} + \bgroup + \backmatter@style\backmatter@size + \@ifundefined{address@id@list}{}{\@for\address@id:=\address@id@list\do{\printaddress{\address@id}}}% + \csname contributing@text\endcsname% + \par + \egroup + \global\let\printaddresses\relax} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ARTNOTES + +\newif\if@firstnote \@firstnotetrue + +\newenvironment{bmc@artnotes}{% + \def\note{\@ifnextchar[{\@bmcartnote}{\note@nopars}}% + \def\contributionnote##1{\gdef\contributing@text{##1}}% + \note@size% +}{} + + +\def\note@nopars#1{\if@firstnote\vskip\note@skip\@firstnotefalse\fi #1\par} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \artnote + +\def\bmcartnote{\@ifnextchar[{\@bmcartnote}{\@bmcartnote[]}} + +\define@key{bmcartnote}{id}{% + \def\bmcartnote@id{#1}% + \@ifundefined{bmcartnote@id@list}{\xdef\bmcartnote@id@list{#1}}{\xdef\bmcartnote@id@list{\bmcartnote@id@list,#1}}} + +\define@key{bmcartnote}{symbol}{\def\bmcartnote@symbol{#1}} + + +\def\@bmcartnote[#1]#2{{% + \setkeys{bmcartnote}{#1}% + \expandafter\protected@xdef\csname bmcartnote@\bmcartnote@id\endcsname{#2}% + \@ifundefined{bmcartnote@symbol}{}{\expandafter\protected@xdef\csname bmcartnote@symbol@\bmcartnote@id\endcsname{\bmcartnote@symbol}} +}} + + +\def\printartnote#1{% +\bgroup + \@ifundefined{bmcartnote@symbol@#1}% + {\leavevmode\thanksmark{#1}}% + {\edef\@tempa{\csname bmcartnote@symbol@#1\endcsname}\leavevmode\thanksmark[\@tempa]{#1}}% + \@nameuse{bmcartnote@#1}% +\egroup} + +\def\printartnotes{% + \@ifundefined{bmcartnote@id@list}{}{\@for\bmcnote@id:=\bmcartnote@id@list\do{\printartnote{\bmcnote@id}}}% + \global\let\printartnotes\relax% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% THANKSBOX + +\newbox\thanks@box + +\def\bmc@thanksbox{\@ifnextchar[{\@thanksbox}{\@thanksbox[]}} + +\def\@thanksbox[#1]{% + \global\let\auto@set@thanksbox\relax% + \global\setbox\thanks@box=\vtop\bgroup + \if@twocolumn% + \hsize=\columnwidth% + \else% + \hsize=\leftcol@width% + \hrule width\leftcol@width height0.15\p@% + \vskip2\p@% + \fi% + \thanksbox@size% + \let\printaddress@fmt\thanksbox@printaddress@fmt% + \setkeys{thanksbox}{#1}% + \parindent\z@% + \if@twocolumn\rule\z@\footnotesep\fi% + \ignorespaces% +} + +\def\bmc@endthanksbox{\par\egroup} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \auto@set@thanksbox + +\def\auto@set@thanksbox{% + \@thanksbox[]{% + \@ifundefined{corr@author@id}{}{\printcorrtext{\corr@author@id}}% + \@ifundefined{corref@list}{}{\@for\address@id:=\corref@list\do{\printaddress{\address@id}}\par}% + \authorinfo@text + \printartnotes% + \par + \egroup}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \printcorremail + +% \printcorremail{}{} + +\def\printcorremail#1#2{% + \@ifundefined{num@author}{\@tempcnta=0}{\@tempcnta=\num@author} + \ifnum\@tempcnta=1\relax\else\thanksmark{#1}\fi% + \corref@text\printead*{#2}\par +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \printcorrtext + +%\printcorrtext{} + +\def\printcorrtext#1{% + \corref@thanksmark{#1}% + \corref@text% + \@ifundefined{r@#1@email}{}{\printead*{#1}}% + \par +} + +\let\corref@thanksmark\thanksmark + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ABSTRACTBOX + +\setattribute{absboxsep} {width} {10.25\p@} + +\newbox\abstract@box + +\def\bmc@abstractbox{\@ifnextchar[{\@abstractbox}{\@abstractbox[]}} + +\def\@abstractbox[#1]{% + \@tempdima=\hsize% + \advance\@tempdima by-\absboxsep@width% + \advance\@tempdima by-\absboxsep@width% + \setkeys{abstractbox}{#1}% + \setbox\abstract@box=\vbox\bgroup% + \hsize=\@tempdima% + \ignorespaces% +} + +\def\bmc@endabstractbox{% + \par% + \egroup% + \vglue\abstractbox@skip + \setlength{\fboxsep}{10\p@}% + \setlength{\fboxrule}{0.5\p@}% + \fcolorbox{bmcblue}{white}{\box\abstract@box} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ABSTRACT + +\def\abstractname@skip{\par\vskip3\p@} + +\newif\if@first@abstract \@first@abstracttrue + +\define@key{abstract}{title}{\def\abstractname{#1}} + +\gdef\bmc@abstract{\@ifnextchar[{\abstract@fmt}{\abstract@fmt[]}} + +\def\abstract@fmt[#1]{% + \if@first@abstract\csname firstabstract@cmd\endcsname\else \vskip\abstract@skip\fi% + \global\@first@abstractfalse% + \def\parttitle##1{% + \vskip3\p@ + \noindent{\bfseries ##1:}} + \setkeys{abstract}{#1}% + \abstract@style% + \abstract@size% + \parindent\true@parindent% + \phantomsection\addcontentsline{toc}{section}{\abstractname}% + \noindent{\abstractname@size\abstractname}\abstractname@skip\ignorespaces\noindent} + + +\def\bmc@endabstract{\par} + +\let\phantomsection\relax + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% KEYWORD +% raktas=class +\setattribute[default]{keyword}{class}{KWD} +\setattribute[default]{keyword}{language}{english} + +% \keyword@class-> KWD +% \keyword@KWD -> AMS 2000... + +%\setattribute{keyword}{language}{french} + +\gdef\bmc@keyword{\@ifnextchar[{\bmc@@keyword}{\bmc@@keyword[class=KWD]}} + +\gdef\bmc@@keyword[#1]{% +% + \do@option@list{keyword}{#1}% + \long\def\@tempa{MSC}% + \ifx\keyword@class\@tempa% + \def\keyword@skip{\z@}% + \fi% +% + \def\sep{\unskip; }% + \vskip\keyword@skip +% + \def\keyword@name{\csname keyword@\keyword@class\endcsname}% + \let\kwd@sep\relax +% + \keyword@style% + \keyword@size% + \parindent\true@parindent% + \def\\{\hfill\break}% + \noindent{\keywordname@size\keyword@name:}\enspace} + +\def\bmc@endkeyword{\par} + +% \kwd[; ]{foo} + \newif\if@firstkeywordinlist \@firstkeywordinlisttrue + + \DeclareRobustCommand*\kwd{\@ifnextchar[\@kwd{\@kwd[\kwd@sep]}}% + + \def\@kwd[#1]#2{% + \ifx.#2.\else\expandafter\gdef\csname @\keyword@class\endcsname{}\fi% + \unskip#1{#2}\if@firstkeywordinlist\addto@keywords@list{#2}\@firstkeywordinlistfalse\else\addto@keywords@list{, #2}\fi\let\kwd@sep\sep}% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BACKMATTER + +\newenvironment{backmatter} + {\medskip\backmatter@style\backmatter@size\let\section\heading} + {} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% interaction with hyperref + +\def\test@hyperref{\@ifundefined{Hy@SetCatcodes}{}{\bmcart@hyperref@settings}} + +\AtBeginDocument{\test@hyperref} + +\def\bmcart@hyperref@settings{% +% from hyperref maketitle + \def\hy@frontmatter{% + \let\H@@origfootnotemark\@footnotemark + \let\H@@origfootnotetext\@footnotetext + \let\@footnotemark\H@@footnotemark + \let\@footnotetext\H@@footnotetext} + \def\hy@endfrontmatter{ + \ifx\@footnotemark\H@@footnotemark + \let\@footnotemark\H@@origfootnotemark + \fi + \ifx\@footnotetext\H@@footnotetext + \let\@footnotetext\H@@origfootnotetext + \fi} +% hooks for the \thanksref, \thankstext: + \def\thankref@hyperlink##1{% + \edef\@tempx{##1thanks}% + \hbox{\hyperlink{##1}{\saferef{\@tempx}}}} + \def\thanks@hypertarget##1{\smash{\raise\baselineskip\hbox{\protect\hypertarget{##1}{}}}} +% redefine pagenumbering +% \let\pagenumbering\ims@pagenumbering +% activate href + \let\ims@href\href% + \let\safe@phantomsection\phantomsection +% put document info + \def\write@pdfinfo##1##2{\protected@write\@auxout{\no@harm}{\string\gdef\string##1{##2}}} + \@ifundefined{hy@title}{}{\pdfstringdef\@pdftitle{\hy@title}} + \@ifundefined{hy@author}{}{\pdfstringdef\@pdfauthor{\hy@author}} + \@ifundefined{hy@subject}{}{\pdfstringdef\@pdfsubject{\hy@subject}} + \@ifundefined{hy@keywords}{}{\pdfstringdef\@pdfkeywords{\hy@keywords}} +% MathSciNet: + \def\MR##1{\href{http://www.ams.org/mathscinet-getitem?mr=##1}{MR##1}} +} + +\def\write@pdfinfo#1#2{} + +\newtoks\authors@list +\def\addto@authors@list#1{% + \begingroup% + \no@harm% + \xdef\@act{\global\noexpand\authors@list{\the\authors@list#1}}\@act% + \endgroup} + +\newtoks\keywords@list +\def\addto@keywords@list#1{% + \begingroup% + \no@harm% + \xdef\@act{\global\noexpand\keywords@list{\the\keywords@list#1}}\@act% + \endgroup} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% section, subsection etc. +% we do not like article appearance: + +\renewcommand\section{\@startsection {section}{1}{\z@}% + {-\medskipamount}% + {0.001\p@}% + {\sffamily\large\bfseries\raggedright\nohyphen}} + +\renewcommand\subsection{\@startsection {subsection}{2}{\z@}% + {-\medskipamount}% + {0.001\p@}% + {\sffamily\raggedright\nohyphen}} + +\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% + {-\medskipamount}% + {0.001\p@}% + {\itshape\raggedright}} + +\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% + {\medskipamount}% + {-10pt}% + {\itshape}} + +\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}% + {0.1pt}% + {-1em}% + {\itshape}} + + +% Format for the counter: + \def\section@numbersep{} + \def\subsection@numbersep{} + \def\subsubsection@numbersep{} + \def\paragraph@numbersep{} + \def\subparagraph@numbersep{} + +% Format for the counter: +\def\@seccntformat#1{{\csname #1@prefix\endcsname\csname the#1\endcsname\csname#1@numbersep\endcsname\enspace}} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% HEADING + +\newcommand\heading{\@startsection{section}{1}{\z@}% + {\smallskipamount}% + {0.001\p@}% + {\backmatter@size\bfseries}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% APPENDIX + + + \renewcommand\appendix{\par + \let\section@cnt@size\appendix@size% + \let\old@section\section% + \def\section{\@ifnextchar*{\@appsectionstar}{\@appsectionnostar}}% + \def\section@prefix{\appendixname\ }% + \def\section@numbersep{:}% + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \gdef\thesection{\@Alph\c@section} +} + + \def\@appsectionstar*#1{% + \old@section*{#1}% + \setcounter{section}{1}% + \addcontentsline{toc}{section}{#1} +} + + \def\@appsectionnostar#1{% + \ifx.#1.% + \def\section@numbersep{}\old@section[\appendixname\ \thesection]{}% + \else% + \def\section@numbersep{:}\old@section{#1}% + \fi} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% thebibliography + + \let\saved@thebibliography\thebibliography + \def\thebibliography{% + \printaddresses% + \backmatter@style\backmatter@size + \let\section\heading\saved@thebibliography} + \def\@biblabel#1{#1.} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fix if natbib is loaded: + +\def\bmcfix@natbib{% + \def\bibfont{\backmatter@style\backmatter@size} + \def\bibsection{% + \printaddresses% + \heading*{\refname}} + \def\bibnumfmt##1{##1.} + \setlength\bibsep{0pt}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fix if amsmath is loaded: + +\def\bmcfix@amsmath{% + \allowdisplaybreaks +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fix if amsthm is loaded: + +\def\bmcfix@amsthm{% + \thm@notefont{\upshape} + \newtheoremstyle{plain} {\medskipamount}{\medskipamount}{\itshape}{\z@}{\bfseries}{}{1em}{} + \newtheoremstyle{definition}{\medskipamount}{\medskipamount}{\normalfont}{\z@}{\bfseries}{}{1em}{} + \newtheoremstyle{remark} {\medskipamount}{\medskipamount}{\normalfont}{\z@}{\itshape}{}{1em}{} +% + \renewenvironment{proof}[1][\proofname]{\par + \pushQED{\qed}% + \normalfont \topsep\medskipamount% + \trivlist + \labelsep.5em% + \item[\hskip\labelsep + \itshape ##1\@addpunct{}]\ignorespaces + }{\popQED\endtrivlist\@endpefalse} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% check for the loaded classes: + +\AtBeginDocument{% + \@ifpackageloaded{natbib}{\bmcfix@natbib}{}% + \@ifpackageloaded{amsthm}{\bmcfix@amsthm}{}% +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% number lines + +\ifnumberlines@ + + \long\def\l@addto@macro#1#2{% + \toks@\expandafter{#1#2}% + \edef#1{\the\toks@}} + + \setattribute{numberlines}{size}{\scriptsize\ttfamily} + \setattribute{numberlines}{skip}{0\p@} + + \def\numberlines@hook{% + \l@addto@macro\@evenhead\put@numberlines@box% + \l@addto@macro\@oddhead\put@numberlines@box} + + \g@addto@macro\ps@bmcheadings\numberlines@hook + \g@addto@macro\ps@copyright\numberlines@hook + + \newbox\numberlines@box + \newskip\numberlines@box@skip + + \def\set@numberlines@box{% + \setlength\numberlines@box@skip\headsep + \addtolength\numberlines@box@skip{5\p@} + % + \setbox\numberlines@box\vtop to\textheight{% + \parindent\z@ + \vskip\z@ + \@tempcnta=0 + \@tempdima=\z@ + \loop + \advance\@tempcnta by1 + \advance\@tempdima by\baselineskip + \hbox to\textwidth{% + \llap{\numberlines@size\the\@tempcnta\kern\numberlines@skip} + \hfill + \rlap{\numberlines@size\kern\numberlines@skip\the\@tempcnta}} + \ifdim\@tempdima<\textheight\repeat + \vss + }% + % + \ht\numberlines@box\z@ + \dp\numberlines@box\z@ + } + + \def\put@numberlines@box{\lower\numberlines@box@skip\hbox to\z@{\hss\copy\numberlines@box}} + + \AtBeginDocument{\set@numberlines@box} + +\fi + +%**************** INICIALIZATION + +\@twosidetrue +\pagenumbering{arabic} +\frenchspacing +%\init@settings +\pagestyle{bmcheadings} + +\endinput +%% +%% End of file `bmcart.cls'. diff --git a/publications/research-roadmaps/Readme.md b/publications/research-roadmaps/Readme.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/publications/research-roadmaps/Readme.md @@ -0,0 +1 @@ +