From 29768744ac7416e5165df988c2cf71be14b2810f Mon Sep 17 00:00:00 2001
From: Brandon Goodell <b-g-goodell@users.noreply.github.com>
Date: Thu, 31 Aug 2017 16:44:47 -0600
Subject: [PATCH] Create mrl.cls

---
 .../mrl.cls                                   | 1831 +++++++++++++++++
 1 file changed, 1831 insertions(+)
 create mode 100644 publications/research-bulletins/in-prog/MRL-9999 - Threshold Multisignatures/mrl.cls

diff --git a/publications/research-bulletins/in-prog/MRL-9999 - Threshold Multisignatures/mrl.cls b/publications/research-bulletins/in-prog/MRL-9999 - Threshold Multisignatures/mrl.cls
new file mode 100644
index 0000000..a8c3965
--- /dev/null
+++ b/publications/research-bulletins/in-prog/MRL-9999 - Threshold Multisignatures/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{<thanksref>}{<email-ref>}
+
+\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{<corrauthor@id>}
+
+\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'.