diff --git a/ipol/ipol_style_201905.zip b/ipol/ipol_style_201905.zip
new file mode 100644
index 0000000000000000000000000000000000000000..2db5f23723823986bc9dedeed150a987bcd897ba
Binary files /dev/null and b/ipol/ipol_style_201905.zip differ
diff --git a/ipol/ipol_style_201905/README.txt b/ipol/ipol_style_201905/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1d6fd1243695833f349711d80df920c079d258d7
--- /dev/null
+++ b/ipol/ipol_style_201905/README.txt
@@ -0,0 +1,65 @@
+LaTeX Class and Example for IPOL Articles
+=========================================
+
+Rafael Grompone von Gioi <grompone@cmla.ens-cachan.fr>
+Nicolas Limare <nicolas.limare@cmla.ens-cachan.fr>
+José-Luis Lisani Roca <joseluis.lisani@uib.es>
+
+
+Files
+-----
+
+README.txt                This file
+ipol_style_guide.pdf      IPOL LaTeX style guide and example
+ipol_style_guide.tex      IPOL LaTeX source style guide and example
+ipol.cls                  IPOL LaTeX class
+article.bib               BibTeX bibliography for the style guide
+siam.bst                  BibTeX style
+ipol_class_manual.pdf     IPOL LaTeX class manual
+ipol_class_manual.tex     IPOL LaTeX class manual source
+ipol_logo.eps             IPOL logo needed when using ipol.cls with latex
+ipol_logo.pdf             IPOL logo needed when using ipol.cls with pdflatex
+siims_logo.eps            Logo needed for SIIMS companion article with latex
+siims_logo.jpg            Logo needed for SIIMS companion article with pdflatex
+
+
+Getting Started
+---------------
+
+There is no need for installation to use this class, just two files need to be
+copied to the same directory were the LaTeX source files are. These files are
+the class itself, 'ipol.cls', and the logo file, that can be either
+'ipol_logo.eps' if you compile with LaTeX, or 'ipol_logo.pdf' if you compile
+with pdfLaTeX. If not sure, just copy the three of these files. You may also
+need 'siims_logo.eps' or 'siims_logo.jpg' when preparing a SIIMS companion
+article.
+
+The minimal example of use of this class is as follows:
+
+\documentclass{ipol}
+\begin{document}
+\end{document}
+
+It will only generate the IPOL header, including its logo, the words 'title'
+and 'authors' where the title and authors should be placed, and a red
+'PREPRINT' label including the compilation date. This example is useless but
+can be used to test your system. The LaTeX source file 'ipol_style_guide.tex'
+uses the IPOL class and provides an example of how to use it.
+
+IPOL class is based on the standard 'article' class of LaTeX and it is used
+essentially in the same way. There are two main restrictions: the layout must
+not be changed and the title is not generated with the usual '\title',
+'\author', '\date' and '\maketitle' commands; special IPOL commands must be
+used instead.
+
+For more information, IPOL authors should read and use the IPOL Style
+Guide and Example, ipol_style_guide.pdf
+
+For explanations about the class itself, see the IPOL LaTeX Class Manual,
+ipol_class_manual.pdf
+
+
+Thanks
+------
+
+Comments about errors, omission or suggestions are warmly appreciated.
diff --git a/ipol/ipol_style_201905/algorithm2e.sty b/ipol/ipol_style_201905/algorithm2e.sty
new file mode 100644
index 0000000000000000000000000000000000000000..4377fa87fdf98e8c425dc0ffad4d5c8583a661b0
--- /dev/null
+++ b/ipol/ipol_style_201905/algorithm2e.sty
@@ -0,0 +1,2636 @@
+%  algorithm2e.sty --- style file for algorithms
+%                      almost everything can be customized by users. See the document for more explanations
+%% Copyright 1996-2008 Christophe Fiorio
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX 
+% version 1999/12/01 or later.
+%
+% This program consists of the files algorithm2e.sty and algorithm2e.tex and algorithm2e-compatibility.sty
+%  
+%  Report bugs and comments to:
+%  - algorithm2e-announce@lirmm.fr  mailing list for announcement about releases^^J%
+%  - algorithm2e-discussion@lirmm.fr mailing list for discussion about package^^J%
+%  subscribe by emailing sympa@lirmm.fr with 'subscribe <list> <firstname name>'^^J%
+%
+%  $Id: algorithm2e.sty,v 4.1 2009/12/15 08:54:08 cfiorio Exp $
+%
+%  PACKAGES REQUIRED:
+%
+%  - float   (in contrib/supported/float)
+%  - ifthen  (in base)
+%  - xspace  (in packages/tools)
+%  - relsize (in contrib/misc/relsize.sty)
+%
+%%%%%%%%%%%%%%%  Release 4.01
+%
+%   Package options: 
+%   ---------------
+%   - oldcommands                      : to use old command names
+%   - french, english, german, 
+%     portuguese, czech, italiano,
+%     slovak                           : for the name of the algorithm and some keyword code
+%   - onelanguage                      : to simply switch keyword from one language to another without changing
+%                                        keyword commands
+%   - boxed, boxruled, ruled, tworuled, 
+%     algoruled, plain                 : layout of the algorithm
+%   - algo2e                           : environment is algorithm2e instead of algorithms and \listofalgorithmes
+%                                        instead of \listofalgorithms
+%   - slide                            : to use when making slides
+%   - noline,lined,vlined              : how block are designed.
+%   - shortend, longend, noend         : short or long end keyword as endif for e.g.
+%   - linesnumbered                    : auto numbering of the algorithm's lines
+%   - linesnumberedhidden              : to hide autonumbered lines (show number on a line with \ShowLn
+%   - commentsnumbered, inoutnumbered  : to autonumber comments and inout keywords (by defaut not numbered)
+%   - rightnl                          : to have line number on the right instead of on the left as default
+%   - algonl                           : line numbers preceded by algo number
+%   - scright, scleft                  : right or left justified side comments
+%   - fillcomment, nofillcomment       : end mark of comment is flushed to the right so comments fill the line
+%   - dotocloa                         : add an entry in the toc for list of algorithms (require tocbibind package)
+%   - endfloat                         : add algoendfloat environment pushing algorithm so written to the end of document
+%   - resetcount, noresetcount         : start value of line numbers.
+%   - algopart,algochapter,algosection : algo numbering within part, chapter or section
+%   - titlenumbered,titlenotnumbered   : numbering of title set by \Titleofalgo
+%   - figure                           : algorithms are figures, numbered as figures, and put in the list of figures.
+%   - procnumbered                     : procedure or function are numbered as algorithm
+%   - nokwfunc                         : procedure or function name doens't become a command
+%   - norelsize                        : don't use relsize package (useful if it breaks the compatibily)
+%  
+%   defaults are; english,plain,resetcount,titlenotnumbered
+%
+%%%%%%%%%%%%%%
+%
+%   Short summary  
+%   -------------
+%  
+%   algorithm is an environment for writing algorithm in LaTeX2e.
+%   Almost all is customizable. You can add keywords, change style, change the layout, ...
+%   It provide macros that allow you to create differents sorts of key words, therefore a set of predefined key
+%   word is gived.
+%
+%   IT should be used as follows
+%
+%   \begin{algorithm}
+%       ...
+%       ...
+%   \end{algorithm}
+%
+%
+%   IMPORTANT : each line MUST end with \;
+%
+%   Note that if you define macros outside algorithm environment they
+%   are avaible in all the document and particulary you can use then
+%   inside all algorithms without re-define them.
+%  
+%   an example:
+%
+%   \begin{algorithm}
+%     \SetAlgoLined
+%     \KwIn{this text}
+%     \KwOut{how to write algorithm with \LaTeX2e }
+%     
+%     initialization\;
+%     \While{not at end of this document}{
+%       read current section\;
+%       \eIf{understand}{
+%         go to next section\;
+%         current section becomes this one\;
+%         }{
+%         go back to the beginning of current section\;
+%         }
+%       }
+%     \caption{How to write algorithm}
+%   \end{algorithm}
+%
+%
+%%%%%%%%%%%%%%         predefined keywords
+%
+%     \KwIn{input}
+%     \KwOut{output}
+%     \KwData{input}
+%     \KwResult{output}
+%     \KwTo                                       % a simple keyword
+%     \KwFrom                                     % a simple keyword
+%     \KwRet{[value]}
+%     \Return{[value]}
+%     \Begin{block inside}
+%     \eIf{condition}{Then Block}{Else block}     % in blocks
+%     \If{condition}{Then block}                  % in a block
+%     \uIf{condition}{Then block}                 % in a block unended
+%     \lIf{condition}{Else text}                  % on the same line
+%     \Else{inside Else}                          % in a block
+%     \lElse{Else text}                           % on the same line        
+%     \uElse{Else text}                           % in a block unended
+%     \ElseIf{inside Elseif}                      % in a block
+%     \lElseIf{Elseif text}                       % on the same line        
+%     \uElseIf{Elseif text}                       % in a block unended
+%     \Switch{Condition}{Switch block}
+%     \Case{a case}{case block}                   % in a block
+%     \lCase{a case}{case text}                   % on the same line
+%     \Other{otherwise block}                     % in a block
+%     \lOther{otherwise block}                    % on the same line
+%     \For{condition}{text loop}                  % in a block
+%     \lFor{condition}{text}                      % on the same line
+%     \ForEach{condition}{text loop}              % in a block
+%     \lForEach{condition}{text}                  % on the same line
+%     \ForPar{condition}{text loop}               % in a block
+%     \lForPar{condition}{text}                   % on the same line
+%     \While{condition}{text loop}                % in a block
+%     \lWhile{condition}{text loop}               % on the same line
+%     \Repeat{End condition}{text loop}           % in a block
+%     \lRepeat{condition}{text}                   % on the same line
+%
+%%%%%%%%%%%%%%
+%
+%   History: 
+%
+%   - december 14 2009 - revision 4.01
+%                     * ADD : new command \SetKwHangingKw{Name}{text} (hanging indent with keyword): This creates a
+%                             hanging indent much like \texttt{SetKwInput}, except that it removes the trailing `:'
+%                             and does not reset numbering.
+%
+%   - november 17 2009  - revision 4.00 -
+%
+%                      * CHANGE : IMPORTANT : some commands have been renamed to have consistent naming (CamlCase
+%                                 syntax) and old commands are no more available. If you doesn't want to change
+%                                 your mind or use old latex files, you can use oldcommands option to enable old
+%                                 commands back.
+%                                 text. Here are these commands:
+%                                 - \SetNoLine becomes \SetAlgoNoLine
+%                                 - \SetVline  becomes \SetAlgoVlined
+%                                 - \Setvlineskip  becomes \SetVlineSkip
+%                                 - \SetLine   becomes \SetAlgoLined
+%                                 - \dontprintsemicolon becomes \DontPrintSemicolon
+%                                 - \printsemicolon becomes \PrintSemicolon
+%                                 - \incmargin becomes \IncMargin
+%                                 - \decmargin becomes \DecMargin
+%                                 - \setnlskip becomes \SetNlSkip
+%                                 - \Setnlskip becomes \SetNlSkip
+%                                 - \setalcapskip becomes \SetAlCapSkip
+%                                 - \setalcaphskip becomes \SetAlCapHSkip
+%                                 - \nlSty becomes \NlSty
+%                                 - \Setnlsty becomes \SetNlSty
+%                                 - \linesnumbered becomes \LinesNumbered
+%                                 - \linesnotnumbered becomes \LinesNotNumbered
+%                                 - \linesnumberedhidden becomes \LinesNumberedHidden
+%                                 - \showln becomes \ShowLn
+%                                 - \showlnlabel becomes \ShowLnLabel
+%                                 - \nocaptionofalgo becomes \NoCaptionOfAlgo
+%                                 - \restorecaptionofalgo becomes \RestoreCaptionOfAlgo
+%                                 - \restylealgo becomes \RestyleAlgo
+%                                 - gIf macros and so on do no more exist
+%                      * NEW: - Compatibily with other packages improven by changing name of internal
+%                               macros. Algorithm2e can now be used with arabtex for example, if this last is
+%                               loaded after algorithm2e package.
+%                      * ADD: - OPTION endfloat: endfloat packages doesn't allow float environment inside other
+%                               environment. So using it with figure option of algorithm2e makes error. This
+%                               option enables a new environment algoendfloat to be used instead of algorithm
+%                               environment that put algorithm at the end. algoendfloat environment make
+%                               algorithm acting as endfloat figures. This option requires endfloat packages.
+%                      * ADD: - OPTION norelsize: starting from this release (v4.00), algorithm2e package uses
+%                               relsize package in order to get relative size for lines numbers; but it seems
+%                               that some rare classes (such as inform1.cls) are not compatible with relsize; to
+%                               have algorithm2e working, this option makes algorithm2e not to load relsize
+%                               package and go back to previous definition by using \scriptsize font for lines
+%                               numbers.
+%                      * ADD: - OPTION onelanguage: allow, if using standard keywords listed below, to switch
+%                               from one language to another without changing keywords by using appropriate
+%                               language option :
+%                               . KwIn, KwOut, KwData, KwResult
+%                               . KwTo KwFrom
+%                               . KwRet, Return
+%                               . Begin
+%                               . Repeat
+%                               . If, ElseIf, Else
+%                               . Switch, Case, Other
+%                               . For, ForPar, ForEach, ForAll, While
+%                               .
+%                      * ADD: - OPTION rightnl: put lines numbers to the right of the algorithm instead of left.
+%                      * ADD:   new commands \setRightLinesNumbers and \setLeftLinesNumbers which sets the lines
+%                               numbers to the right or to the left of the algorithm.
+%                      * ADD: - new kind of keywords : KwArray used to define arrays:
+%                               \SetKwArray{Kw}{array} defines an array keywords Kw called array and printed in
+%                               DataSty style when call with \Kw. It can be used with one argument which
+%                               denotes the element index: \Kw{n} prints array[n] with array in DataSty and n in
+%                               ArgSty.
+%                      * ADD/FIX: rules of ruled, algoruled, tworuled styles used rules of different sizes! This
+%                                 is now fixed. Moreover size of the rules is now controlled by a length and so
+%                                 can be customized by the user.
+%                                 \algoheightrule is the height of the rules and can be changed via \setlength
+%                                 \algoheightruledefault is the default height of he rules (0.8pt)
+%                                 \algotitleheightrule is the height of the rule that comes just after the
+%                                 caption in ruled and algoruled style; it can be changed via \setlength
+%                                 \algotitleheightruledefault is the default height of this rules (0.8pt)
+%                                 Thanks to Philippe Dumas who reports the bug and make the suggestion.
+%                      * ADD: - \SetAlgoCaptionSeparator which sets the separator between Algorithm 1 and the
+%                               title. By default it's ':' and caption looks like "Algorithm 2: title" but now
+%                               you can change it by using for example \SetAlgoCaptionSeparator{.} which will
+%                               give "Algorithm 3. title"
+%                      * ADD: - \SetAlgoLongEnd and \SetAlgoShortEnd and \SetAlgoNoEnd commands which act as
+%                               corresponding package options
+%                      * ADD: - OPTIONS italiano and slovak as new language (thanks to Roberto Posenato and
+%                               Miroslav Binas) 
+%                      * CHANGE: - Fnt and Sty macro to have consistent use and naming (see below)
+%                      * ADD: - \AlCapSty, \AlCapNameSty, \AlCapFnt, \AlCapNameFnt, \ProcSty, \ProcFnt,
+%                               \ProcNameSty, \ProcNameFnt, \ProcArgSty, ProcArgFnt and corresponding "set macro" 
+%                               \SetAlCapSty, \SetAlCapNameSty, \SetAlCapFnt, \SetAlCapNameFnt, \SetProcSty,
+%                               \SetProcFnt, \SetProcNameSty, \SetProcNameFnt, \SetProcArgSty, \SetProcArgFnt which
+%                               control the way caption is printed. Sty macro use command taking one parameter as
+%                               argument, Fnt macros use directly command. In Fact caption is printed as follow :
+%                               \AlCapSty{\AlCapFnt Algorithm 1:}\AlCapNameSty{\AlCapNameFnt my algorithm}
+%                               By default, \AlCapSty is textbf and \AlCapFnt is nothing. \AlCapNameSty keep text 
+%                               as it is, and \AlCapNameFnt do nothing also.
+%                               You can redefine \AlCapFnt and \AlCapNameFnt by giving macro to \Set commands. For
+%                               example, you can do \SetAlCapFnt{\large} to see Algorithm printed in \large font.
+%                               You can redefine \AlCapSty, \AlCapFnt, \AlCapNameSty and \AlCapNameFnt with the
+%                               corresponding \Set command. For the Sty commands, you have to give in parameter
+%                               name of a macro (whithout \)  which takes one argument. For example,
+%                               \SetAlCapFnt{textbf} defines the default behaviour. If you want to do more
+%                               complicated thing, you should define your own macro and give it to \SetAlCapFnt or
+%                               \SetAlCapNameFnt. Here are two examples:
+%                               - \newcommand{\mycapsty}[1]{\tiny #1}\SetAlCapNameSty{mycapsty}
+%                               - \newcommand{\mycapsty}[1]{\textsl{\small #1}}\SetAlCapNameSty{mycapsty}
+%                               Or you can combine the two, for the last example you can also do:
+%                               \SetAlCapNameSty{textsl}\SetAlCapNameFnt{\small}
+%                               Thanks to Jan Stilhammer who gives me the idea of \AlCapNameFnt.
+%                      * CHANGE \AlTitleFnt to match definition of all other Fnt macros and add a \AlTitleSty 
+%                               macro (see below) . Now you set \AlTitleFnt by calling \SetAlTitleFnt with 
+%                               directly a macro without parameter in argument:
+%                               Example: \SetAlTitleFnt{\small} to set title in small font.
+%                      * ADD: - \AlTitleSty and \SetAlTitleSty commands to set a style for title. These commands
+%                               are defined from a macro taking the text in argument, as \textbf for example. 
+%                               To set the TitleSty you have to give name of the macro (without the '\') 
+%                               to \SetAlTitleSty. For example \SetAlTitleSty{textbf} to set \textbf style.
+%                      * ADD: - new command \SetAlgorithmName{algorithmname}{list of algorithms name} which
+%                               redefines name of the algorithms and the sentence list of algorithms. Second
+%                               argument is the name that \autoref, from hyperref package, will use. Example:
+%                               \SetAlgorithmName{Protocol}{List of protocols} if you prefer protocol than
+%                               algorithm.
+%                      * ADD: - new \SetAlgoRefName{QXY} which change the default ref (number of the algorithm) by
+%                               the name given in parameter (QXY in the example). 
+%                      * ADD: - new command \SetAlgoRefRelativeSize{-2} which sets the output size of refs, defined
+%                               by \SetAlgoRefName, used in list of algorithms.
+%                      * ADD: - two dimensions to control the layout of caption in ruled, algoruled and boxruled
+%                               algorithms:
+%                               - interspacetitleruled (2pt by defaut) which controls the vertical space between
+%                                 rules and title in ruled and algoruled algorithms.
+%                               - interspaceboxruled (2\lineskip by default) which controls the vertical space
+%                                 between rules and title in boxruled algorithms.
+%                               These two dimensions can be changed by using \setlength command.
+%                      * ADD: - With the fix (see below) of procedure and function environments, a new feature has
+%                               been added: the name of the procedure or function set in caption is automatically
+%                               defined as a KwFunction and so can be used as a macro. For example, if inside a
+%                               procedure environment you set \caption{myproc()}, you can use \myproc macro in you
+%                               main text. Beware that the macro is only defined after the \caption!
+%                      * ADD: - OPTION nokwfunc to unable the new feature described above in function and
+%                               procedure environment. Useful if you use name of procedure or function that cannot
+%                               be a command name as a math display for example.
+%                      * ADD: - \SetAlgoNlRelativeSize{number} command which sets the relative size of line
+%                               numbers. By default, line numbers are two size smaller than algorithm text. Use
+%                               this macro to change this behavior. For example, \SetAlgoNlRelativeSize{0} sets it
+%                               to the same size, \SetAlgoNlRelativeSize{-1} to one size smaller and
+%                               \SetAlgoNlRelativeSize{1} to one size bigger
+%                      * ADD: - \SetAlgoProcName{aname} command which sets the name of Procedure printed by
+%                               procedure environment (the environment prints Procedure by default). Second
+%                               argument is the name that \autoref, from hyperref package, will use.
+%                      * ADD: - \SetAlgoFuncName{aname} command which sets the name of Function printed by
+%                               procedure environment (the environment prints Function by default). Second
+%                               argument is the name that \autoref, from hyperref package, will use. 
+%                      * ADD: - \SetAlgoCaptionLayout{style} command which sets style of the caption; style must
+%                               be the name of a macro taking one argument (the text of the caption). Examples
+%                               below show how to use it:
+%                               . \SetAlgoCaptionLayout{centerline} to have centered caption
+%                               . \SetAlgoCaptionLayout{textbf} to have bold caption
+%                               If you want to apply two styles in the same time, such as centered bold, you have
+%                               to define you own macro and then use \SetAlgoCaptionLayout with its name.
+%                      * ADD: - OPTION procnumbered: which makes the procedure and function to be numbered as
+%                               algorithm
+%                      * ADD: - OPTIONS tworuled and boxruled
+%                               these are two new layouts: tworuled acts like ruled but doesn't put a line after
+%                               caption ; boxruled surround algorithm by a box, puts caption above and add a line
+%                               after caption.
+%                      * REMOVE: - SetKwInParam has been deleted since not useful itself because of different
+%                                macros which can do the same in a better and a more consistent way as
+%                                SetKwFunction or SetKw.
+%                      * FIX: - line number is now correctly vertically aligned with math display.
+%                      * FIX: - references with hyperref. No more same identifier or missing name error. BUT now
+%                               you must NOT use naturalnames option of hyperref packages if you do PdfLaTeX
+%                      * FIX: - autoref with hyperref package (thanks to Jörg Sommer who notices the problem).
+%                      * FIX: - titlenumbered was not working! fixed.
+%                      * FIX: - Else(){} acted like uElse. Corrected.
+%                      * FIX: - noend management: when a block was inside another and end of block was following
+%                               each other, a blank line was added: it's now corrected.
+%                      * FIX: - Function and Procedure environment was no more working as defined originally: the
+%                               label was no more name of the procedure, it acts always as if procumbered option
+%                               has been used.
+%                      * FIX: - line numbers had a fixed size which can be bigger than algorithm text accordingly
+%                               to \AlFnt set (see also new command \SetAlgoNlRelativeSize above)
+%                      * FIX: - semicolon in comments when dontprintsemicolon is used.
+%                      * FIX: - listofalgorithms adds a vertical space before first algo of a chapter as for
+%                               listoffigures or listoftables
+%                      * FIX: - listofalgorithms with twocolumns mode and some classes which don't allow onecolumn
+%                               and so don't define \if@restonecol as prescribed in LaTeX (sig-alternate for
+%                               example)
+%                      * FIX: - algorithm2e now works with elsart cls and some more classes.
+%                      * FIX: - blocks defined by SetKwBlock act now as other blocks (if for instance) and don't
+%                               write end in vlined mode, instead they print a small horizontal line as required
+%                               by the option.
+%                      * FIX: - underfull hbox warning at each end of algorithm environment removed.
+%
+%                      * INTERNAL CHANGE: - short end keyword are deduce from long end keyword by keeping the
+%                                           first one. Allows to avoid double definition.
+%                      * INTERNAL CHANGE: - procedure, function and algorithm are now resolved by the same
+%                               environment to avoid code duplication. 
+%
+%   - October  04 2005  - revision 3.9 -
+%                      * ADD: - \setalcaphskip command which sets the horizontal skip before Algorithm: in caption
+%                               when used in ruled algorithm.
+%                      * ADD: - \SetAlgoInsideSkip command which allows to add an extra vertical space before and
+%                               after the core of the algorithm (ie: \SetAlgoInsideSkip{bigskip}) 
+%                      * CHANGE: - caption, when used with figure option, is no more controlled by algorithm2e
+%                                  package and so follows the exact behaviour of figures. The drawback is that you
+%                                  cannot change the typo with AlTitleFnt or CapFnt. The avantage is that if you
+%                                  use caption package, it works.
+%                      * FIX: - problem with numbering line and pdflatex
+%                      * FIX: - error when algorithm2e package was used with beamer and listings together
+%   - February 12 2005  - revision 3.8 -
+%                      * FIX: - extra line with noend option.
+%   - February 10 2005  - revision 3.7 -
+%                      * ADD: - sidecomment: different macros allowing to put text right after code on the same
+%                               line. They are defined in the same time comment macros are defined with a star
+%                               after the macro name. By default comments are right justified but this can be
+%                               change with appropriate option in the macro. Ex:
+%                               . default: \tcc*{side comment}
+%                               . same as previous: \tcc*[r]{side comment}
+%                               . left justify: \tcc*[l]{side comment}
+%                               . here: \tcc*[h]{side comment} don't put the end of line mark before
+%                                       comment (; by default) and don't end the line.
+%                               . flushed: \tcc*[f]{side comment} same as the precedent but right
+%                                 justified
+%                      * ADD: - OPTION scright (default): right justified side comments (side comments
+%                               are flushed to the righr)
+%                      * ADD: - OPTION scleft: left justified side comments (side comments are put right after the
+%                               code line)
+%                      * ADD: - \SetSideCommentLeft acts as scleft option
+%                      * ADD: - \SetSideCommentRight acts as scright option
+%                      * ADD: - block like macro side text: all macro defining a block allows now to put text right
+%                               after key words by putting text into (). Done to be used with sidecomment macros,
+%                               but all text can be used. 
+%                               Ex: \eIf(\tcc*[f]{then comment}){test}{then text}(else side text){else text}
+%                      * ADD: - OPTION fillcomment (default): end mark of comment is flushed to the right so
+%                               comments fill all the width of text.
+%                      * ADD: - OPTION nofillcomment: end mark of comment is put right after the comment.
+%                      * ADD: - \SetNoFillComment acts as nofillcomment option.
+%                      * ADD: - \SetFillComment acts as fillcomment option.
+%                      * ADD: - OPTION dotocloa: which adds an entry in the toc for the list of algorithms. This
+%                               option load package tocbibind if not already done and so list of figures and list
+%                               of tables are also added in the toc. If you want to control which ones of the lists
+%                               will be added in the toc, please load package tocbibind before package algorithm
+%                               and give it the options you want.
+%                      * FIX: - vertical spacing for uif macro with noend option
+%                      * FIX: - all the compatibility problems between caption and other packages
+%                      * FIX: - typographical differences between list of algorithms and other lists  when in
+%                               report or book 
+%
+%   - January 24 2005  - revision 3.6 -
+%                      * FIX: - vertical spacing and space characters at the beginning or end of comments.
+%                               line numbers of comments not in the NlSty.
+%                               Thanks to Arnaud Giersch for his comments and suggestions.
+%                      * FIX: - Set*Sty macro: the styles defined was not protected and was modified by surrounding
+%                               context. For example KwTo in a \For{}{} was in bold AND italic instead of just in
+%                               bold.
+%                      * FIX: - line number misplacement after \Indp
+%
+%   - January 21 2005  - revision 3.5 -
+%                      * ADD: - hidden numbering of the lines. Lines are auto-numbered but numbers are shown only
+%                               on lines you specify:
+%                               * linesnumberedhidden option or \LinesNumberedHidden macro activate this
+%                                 functionnality.
+%                               * \ShowLn and \ShowLnLabel{lab} macros make the number visible on the
+%                               line. \ShowLnLabel{lab} allows to set a label for this line. 
+%                               Thanks to Samson de Jager who makes this suggestion and provides the macros.
+%                      * ADD: - \AlCapFnt and \SetAlCapFnt which allow to have a different font for
+%                               caption. Works like \AlFnt and \SetAlFnt and by default is the same.
+%                      * ADD: - \AlCapSkip skip length. This vertical space is added before caption in plain ou
+%                               boxed mode. It allows to change distance between text and caption.
+%                      * FIX: - caption compatible with IEEEtran class. 
+%                      * FIX: - some vertical spacing error with \uIf macros (Thanks to Arnaud Giersch)
+%                      * FIX: - Procedure and Function: lines are also numbered like algorithms
+%                      * FIX: - CommentSty was not used for Comments
+%
+%   - January 10 2005  - revision 3.4 -
+%                      * FIX: - caption compatible with new release of Beamer class. 
+%
+%   - June 16 2004     - revision 3.3 - 
+%                      * FIX: - Hyperlink references of Hyperref package works now if compiled with pdflatex 
+%                               and [naturalnames] option of hyperref package is used.
+%                      * FIX: - algorithm[H] had problem in an list environment - corrected
+%                      * FIX: - interline was not so regular in nested blocks - corrected
+%                      * ADD  - \SetVlineSkip macro which sets the vertical skip after the little horizontal 
+%                               rule which closes a block in Vlined mode. By default 0.8ex
+%
+%   - June 11 2004     - revision 3.2 - AUTO NUMBERING LINES !!!
+%                      * ADD: auto numbering of the lines (the so asked and so long awaiting feature)
+%                             this feature is managed by 3 options and 3 commands:
+%                             - linesnumbered option: lines of the algo are numbered except for comments and
+%                               input/output (KwInput and KwInOut)
+%                             - commentsnumbered option: makes comments be numbered
+%                             - inoutnumbered option: makes data input/output be numbered
+%                             - \nllabel{lab} labels the line so you can cite with \ref{lab}
+%                             - \LinesNumbered make the following algorithms having auto-numbered lines
+%                             - \linesnotnumbered make the following algorithms having no auto-numbered lines
+%                      * Change: algo2e option renames listofalgorithms in listofalgorithmes
+%                      * FIX: new solution for compatibility with color package, more robust and not tricky.
+%                             Many thanks to David Carlisle for his advices
+%
+%   - June 09 2004     - revision 3.1 -
+%                      * Change: \SetKwSwitch command defines an additionnal macro \uCase and \Case prints end
+%                      * Change: now macros SetKw* do a renewcommand if the keyword is already defined. So you can
+%                                redefine default definition at your own convenience or change your definition
+%                                without introducing a new macro and changing your text.
+%                      * ADD: new macro \SetKwIF which do \SetKwIf and
+%                             \SetKwIfElseIf.The following default definition has been added:
+%                             \SetKwIF{If}{ElseIf}{Else}{if}{then}{else if}{else}{endif}
+%                             and so you get the macros;
+%                             \If \eIf \lIf \uIf \ElseIf \uElseIf \lElseIf \Else \uElse \lElse
+%                      * ADD: new macro \SetAlgoSkip which allow to fix the vertical skip before and after the
+%                             algorithms. Default is smallskip, do \SetAlgoSkip{} if you don't want an extra space
+%                             or \SetAlgoSkip{medskip} or \SetAlgoSkip{bigskip} if you want bigger space.
+%                      * ADD: macro \SetKwIf defines in addition a new macro \uElse  (depending on wat name you
+%                             have given in #2 arg).
+%                      * ADD: macro \SetKwIfElseIf defines in addition a new macro \uElse and \ugElseIf (depending
+%                             on what name you have given in #2 and #3 arg).
+%                      * Change: baseline of algorithm is now top, so two algorithms can be put side by side.
+%                      * FIX: Compatibility with color package solved. The problem was due to a redefinition of
+%                             standard macros by color package. This solves compatibility problem with other
+%                             packages as pstcol or colortbl. (notified by Dirk Fressmann, Antti Tarvainen and Koby
+%                             Crammer)
+%                      * Fix: extra little shift to the right with boxed style algorithm removed (notified by
+%                             P. Tanovski)
+%                      * Fix: algoln option was buggy (notified bye Jiaying Shen)
+%                      * Fix: german and portuges option didn't work due to bad typo (notified by Martin Sievers,
+%                             Thorsten Vitt and Jeronimo Pellegrini)
+%                      
+%   - February 13 2004 - revision 3.0 -
+%                      * Major revision which makes the package independent from float.sty, so now
+%                        - algorithm* works better, in particular can be used in multicols environments
+%                        - (known bug corrected)
+%                          [H] works now for all sort of environment but is handled differently for classic
+%                          environment and star environment (algorithm, figure, procedure and function). For star
+%                          environment, H acts like for classical figure environment, so it doesn't stay here
+%                          absolutely.
+%                        - (known bug corrected)
+%                          you can use now floatflt package with algorithm package and even with figure
+%                          option. Beware that if you want to put an algorithm inside a floatingfigure, it cannot
+%                          be floating, so [H] is required and then figure option should not be used, since
+%                          standard figure[H] are still floating with LaTeX.
+%                      * boxruled: a new style added. Possible now since no style no more defined by the float
+%                        package.
+%                      * nocaptionofalgo: dosen't print Algorithm #: in the caption for algorithm in ruled or
+%                        algoruled style.
+%                        note: this is just documentation of a macro which was already in the package.
+%   - December 14 2003 - revision 2.52 -
+%                      * output message shorter
+%                      * french keyword macro \PourTous was missing for longend option, it has been added.
+%                      * TitleofAlgo prints Function or Procedure in corresponding environments.
+%
+%   - October 27 2003  - revision 2.51 - Revision submitted to CTAN archive
+%                      * correction of a minor which make caption in procedure
+%                        and function to be blanck with pdfscreen package
+%                        (thanks to Joel Gossens for the notification)
+%                      * add two internal definition to avoid some errors when
+%                        used with Hyperref package (Hyperref package need to
+%                        define new counter macro from existing ones, and
+%                        don't do it for algorithm2e package, so we do it)
+%
+%   - October 17 2003  - revision 2.50 - first revision for CTAN archive
+%                      * add \AlFnt and \SetAlFnt{font} macros: \AlFnt is used at the beginning of the caption and
+%                        the body of algorithm in order to define the fonts used for typesetting algorithms. You
+%                        can use it elsewhere you want to typeset text as algorithm. For example you can do
+%                        \SetAlFnt{\small\sf} to have algorithms typeset in small sf font. Default is nothing so
+%                        algorithm is typeset as the text of the document.
+%                      * add \AlTitleFnt{text} and \SetAlTitleFnt{font} macros: The {Algorithm: } in the caption is
+%                        typeset with \AlTitleFnt{Algorithm:}. You can use it to have text typeset as {Algorithm:}
+%                        of captions. Default is textbf.  Default can be redefined by \SetAlTitleFnt{font}, for
+%                        example you can do \SetAlTitleFnt{emph}
+%                      * add CommentSty typo for text comment.  
+%                      * add some compatibility with hyperref package (still an error on multiply defined refs but
+%                        pdf correctly generated)
+%                      * flush text to left in order to have correct indentation even with class as amsart which
+%                        center all figures
+%                      * add german, portugues and czech options for title of algorithms and typo.
+%                      * add portuguese translation of predefined keywords * add czech translation of some
+%                        predefined keywords
+%
+%   - December 23 2002 - revision 2.40
+%                      * add some french keyword missing
+%                      * add function* and procedure* environment like algorithme* environment: print in one column
+%                        even if twocolumn option is specified for the document.
+%                      * add a new macro \SetKwComment to define macro which writes comments in the text. First
+%                        argument is the name of the macro, second is the text put before the comment, third is the
+%                        text put at the end of the comment.Default are \tcc and \tcp
+%                      * add new options to change the way algo are numbered:
+%                        [algopart] algo are numbered within part (counter must exist)
+%                        [algochapter] algo are numbered within chapter
+%                        [algosection] algo are numbered within section
+%
+%   - March 27 2002   - revision 2.39
+%                      * Gilles Geeraerts: added the \SetKwIfElseIf to manage
+%                        if (c)
+%                             i;
+%                        else if (c)
+%                             i;
+%                        ...
+%                        else
+%                             i;
+%                        end
+%                      * Also added \gIf \gElseIf \gElse.
+%
+%   - January 02 2001 - revision 2.38
+%                      * bugs related to the caption in procedure and function
+%                        environment are corrected.
+%                      * bug related to option noend (extra vertical space added
+%                        after block command as If or For) is corrected.
+%                      * czech option language added (thanks to Libor Bus: l.bus@sh.cvut.cz).
+%  
+%   - October 16 2000 - revision 2.37
+%                      * option algo2e added: change the name of environment
+%                        algorithm into algorithm2e. So allow to use the package
+%                        with some journal style which already define an algorithm
+%                        environment.
+%  
+%   - September 13 2000 - revision 2.36
+%                      * option slide added: require package color
+%                      * Hack for slide class in order to have correct
+%                        margins
+%  
+%   - November 25 1999 - revision 2.35
+%                      * revision number match RCS number
+%                      * Thanks to David A. Bader, a new option is added:
+%                        noend: no end keywords are printed.
+%  
+%   - November 19 1999 - revision 2.32
+%                      * minor bug on longend option corrected.
+%  
+%   - August 26 1999 - revision 2.31
+%                      * add an option : figure
+%                        this option makes algorithms be figure and so are numbered
+%                        as figures, have Figure as caption and are put in 
+%                        the \listoffigures
+%  
+%   - January 21 1999 - revision 2.3 beta
+%                    add 2 new environments: procedure and function.
+%                    These environments works like algorithm environment but:
+%                    - the ruled (or algoruled) style is imperative.
+%                    - the caption now writes Procedure name....
+%                    - the syntax of the \caption command is restricted as
+%                      follow: you MUST put a name followed by 2 braces like
+%                      this ``()''. You can put arguments inside the braces and
+%                      text after. If no argument is given, the braces will be
+%                      removed in the title. 
+%                    - label now puts the name (the text before the braces in the
+%                      caption) of the procedure or function as reference (not
+%                      the number like a classic algorithm environment).
+%                    There are also two new styles : ProcNameSty and
+%                    ProcArgSty. These style are by default the same as FuncSty
+%                    and ArgSty but are used in the caption of a procedure or a
+%                    function.
+%                    
+%   - November 28 1996 - revision 2.22
+%                    add a new macro \SetKwInParam{arg1}{arg2}{arg3}:
+%                    it defines a macro \arg1{name}{arg} which prints name in keyword
+%                    style followed byt arg surrounded by arg2 and arg3. The main
+%                    application is to a function working as \SetKwInput to be used
+%                    in the head of the algorithm. For example
+%                    \SetKwInParam{Func}{(}{)} allows
+%                    \Func{functionname}{list of arguments} which prints:
+%                    \KwSty{functioname(}list of arguments\KwSty{)}
+%       
+%
+%   - November 27 1996 - revision 2.21 :
+%                    minor bug in length of InOut boxes fixed.
+%                    add algorithm* environment.
+%
+%   - July 12 1996 - revision 2.2 : \SetArg and \SetKwArg macros removed.
+%                        
+%                    \SetArg has been removed since it never has been
+%                    documented.
+%                    \SetKwArg has been removed since \SetKw can now
+%                    take an argument in order to be consistent with
+%                    \SetKwData and \SetKwFunction macros.
+%
+%   - July 04 1996 - revision 2.1 : still more LaTeX2e! Minor compatibility break
+%
+%                    Macros use now \newcommand instead of \def, use of \setlength, 
+%                    \newsavebox, ... and other LaTeX2e specific stuff.
+%                    The compatibility break:
+%                    - \SetData becomes \SetKwData to be more consistent. So the old 
+%                      \SetKwData becomes \SetKwInput
+%                    - old macros \titleofalgo, \Freetitleofalgo and \freetitleofalgo
+%                      from LaTeX209 version which did print a warning message and call 
+%                      \Titleofalgo in version 2.0 are now removed!
+%
+%   - March 13 1996 - revision 2.0: first official major revision.
+%   
+%
+%%%%%%%%%%%%%%
+%
+%   Known bugs: 
+%   -----------
+%   - no more known bugs... all are corrected!
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% for more complete informations you can see algorithm2e.tex
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%% Identification Part %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+%
+\ProvidesPackage{algorithm2e}[2008/00/00 v3.10 algorithms environments]
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%% Initial Code %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\@makeother\*% some package redefined it as a letter (as color.sty)
+\def\@firstword#1 #2\@nil{#1}% an useful fonction
+%
+% definition of commands which can be redefined in options of the package.
+%
+\newcounter{AlgoLine}%
+\setcounter{AlgoLine}{0}%
+%
+\newcommand{\algocf@algocfref}{\relax}%
+\newcommand{\listalgorithmcfname}{}%
+\newcommand{\algorithmcfname}{}%
+\@ifundefined{algorithmautorefname}{\newcommand{\algorithmautorefname}{algorithm}}{\renewcommand{\algorithmautorefname}{algorithm}}%
+\newcommand{\algorithmcflinename}{}%
+\newcommand{\algocf@typo}{}%
+\newcommand{\@algocf@procname}{}\newcommand{\procedureautorefname}{}%
+\newcommand{\SetAlgoProcName}[2]{\renewcommand{\@algocf@procname}{#1}\renewcommand{\procedureautorefname}{#2}}%
+\newcommand{\@algocf@funcname}{}\newcommand{\functionautorefname}{}%
+\newcommand{\SetAlgoFuncName}[2]{\renewcommand{\@algocf@funcname}{#1}\renewcommand{\functionautorefname}{#2}}%
+\newcommand{\@algocf@titleofalgoname}{\algorithmcfname}%
+\newcommand{\@algocf@algotitleofalgo}{%
+  \renewcommand{\@algocf@titleofalgoname}{\algorithmcfname}}%
+\newcommand{\@algocf@proctitleofalgo}{%
+  \renewcommand{\@algocf@titleofalgoname}{\algocf@procname}}%
+%
+\newcommand{\algocf@style}{plain}%
+\newcommand{\@ResetCounterIfNeeded}{}%
+\newcommand{\@titleprefix}{}%
+%
+\newcommand{\algocf@numbering}[1]{\newcommand{\algocf@within}{#1}}%
+%
+\newcommand{\defaultsmacros@algo}{\algocf@defaults@shortend}%
+%
+\newcommand{\algocf@list}{loa}%
+\newcommand{\algocf@float}{algocf}%
+%
+\newcommand{\algocf@envname}{algorithm}%
+\newcommand{\algocf@listofalgorithms}{listofalgorithms}%
+%
+%
+%% redefine chapter so that it adds a vspace in the loa as the original does for lof and lot
+\let\algocf@original@chapter=\chapter%
+\def\chapter{\expandafter\addtocontents{loa}{\protect\addvspace{10\p@}}\algocf@original@chapter}%
+%
+%% if@restonecol is defined in article and book but some other classes don't define it and we need it, so we do
+\ifx\if@restonecol\relax\else\newif\if@restonecol\fi%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%% Declaration of Options %%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\RequirePackage{ifthen}%
+%
+\newboolean{algocf@nokwfunc}\setboolean{algocf@nokwfunc}{false}%
+\DeclareOption{nokwfunc}{%
+  \setboolean{algocf@nokwfunc}{true}%
+}%
+%
+\newboolean{algocf@oldcommands}\setboolean{algocf@oldcommands}{false}%
+\DeclareOption{oldcommands}{%
+  \setboolean{algocf@oldcommands}{true}%
+}%
+%
+\newboolean{algocf@leftlinenumber}\setboolean{algocf@leftlinenumber}{true}%
+\newcommand{\setLeftLinesNumbers}{\setboolean{algocf@leftlinenumber}{true}}%
+\newcommand{\setRightLinesNumbers}{\setboolean{algocf@leftlinenumber}{false}}%
+\DeclareOption{rightnl}{%
+  \setRightLinesNumbers%
+}%
+%
+\newboolean{algocf@endfloat}\setboolean{algocf@endfloat}{false}%
+\DeclareOption{endfloat}{%
+  \setboolean{algocf@endfloat}{true}%
+  \newcounter{postalgo}\setcounter{postalgo}{0}%
+}%
+%
+\newboolean{algocf@procnumbered}\setboolean{algocf@procnumbered}{false}%
+\DeclareOption{procnumbered}{%
+  \setboolean{algocf@procnumbered}{true}%
+}%
+%
+\DeclareOption{algo2e}{%
+  \renewcommand{\algocf@envname}{algorithm2e}%
+  \renewcommand{\algocf@listofalgorithms}{listofalgorithmes}%
+}%
+%
+\newboolean{algocf@slide}\setboolean{algocf@slide}{false}%
+\DeclareOption{slide}{%
+  \setboolean{algocf@slide}{true}%
+}%
+%
+\DeclareOption{figure}{%
+\renewcommand{\algocf@list}{lof}%
+\renewcommand{\algocf@float}{figure}%
+}%
+%
+\newboolean{algocf@optonelanguage}\setboolean{algocf@optonelanguage}{false}%
+\DeclareOption{onelanguage}{\setboolean{algocf@optonelanguage}{true}}%
+%
+\newcommand{\algocf@languagechoosen}{english}%
+%
+\DeclareOption{english}{%
+\renewcommand{\listalgorithmcfname}{List of Algorithms}%
+\renewcommand{\algorithmcfname}{Algorithm}%
+\renewcommand{\algorithmautorefname}{algorithm}%
+\renewcommand{\algorithmcflinename}{line}%
+\renewcommand{\algocf@typo}{}%
+\renewcommand{\@algocf@procname}{Procedure}%
+\renewcommand{\@algocf@funcname}{Function}%
+\renewcommand{\procedureautorefname}{procedure}%
+\renewcommand{\functionautorefname}{function}%
+\renewcommand{\algocf@languagechoosen}{english}%
+}%
+%
+\DeclareOption{french}{%
+\renewcommand{\listalgorithmcfname}{Liste des Algorithmes}%
+\renewcommand{\algorithmcfname}{Algorithme}%
+\renewcommand{\algorithmautorefname}{algorithme}%
+\renewcommand{\algorithmcflinename}{ligne}%
+\renewcommand{\algocf@typo}{\ }%
+\renewcommand{\@algocf@procname}{Procédure}%
+\renewcommand{\@algocf@funcname}{Fonction}%
+\renewcommand{\procedureautorefname}{procédure}%
+\renewcommand{\functionautorefname}{fonction}%
+\renewcommand{\algocf@languagechoosen}{french}%
+}%
+%
+\DeclareOption{czech}{%
+\renewcommand{\listalgorithmcfname}{Seznam algoritm\v{u}}%
+\renewcommand{\algorithmcfname}{Algoritmus}%
+\renewcommand{\algorithmautorefname}{\algorithmcfname}%
+\renewcommand{\algorithmcflinename}{Radek}%
+\renewcommand{\algocf@typo}{}%
+\renewcommand{\@algocf@procname}{Procedura}%
+\renewcommand{\@algocf@funcname}{Funkce}%
+\renewcommand{\procedureautorefname}{\@algocf@procname}%
+\renewcommand{\functionautorefname}{\@algocf@funcname}%
+\renewcommand{\algocf@languagechoosen}{czech}%
+}%
+%
+\DeclareOption{german}{%
+\renewcommand{\listalgorithmcfname}{Liste der Algorithmen}%
+\renewcommand{\algorithmcfname}{Algorithmus}%
+\renewcommand{\algorithmautorefname}{\algorithmcfname}%
+\renewcommand{\algorithmcflinename}{Zeile}%
+\renewcommand{\algocf@typo}{\ }%
+\renewcommand{\@algocf@procname}{Prozedur}%
+\renewcommand{\@algocf@funcname}{Funktion}%
+\renewcommand{\procedureautorefname}{\@algocf@procname}%
+\renewcommand{\functionautorefname}{\@algocf@funcname}%
+\renewcommand{\algocf@languagechoosen}{german}%
+}%
+%
+\DeclareOption{portuguese}{%
+\renewcommand{\listalgorithmcfname}{Lista de Algoritmos}%
+\renewcommand{\algorithmcfname}{Algoritmo}%
+\renewcommand{\algorithmautorefname}{algoritmo}%
+\renewcommand{\algorithmcflinename}{linha}%
+\renewcommand{\algocf@typo}{}%
+\renewcommand{\@algocf@procname}{Procedimento}%
+\renewcommand{\@algocf@funcname}{Fun\c{c}\~{a}o}%
+\renewcommand{\procedureautorefname}{procedimento}%
+\renewcommand{\functionautorefname}{fun\c{c}\~{a}o}%
+\renewcommand{\algocf@languagechoosen}{portuguese}%
+}%
+%
+\DeclareOption{italiano}{%
+\renewcommand{\listalgorithmcfname}{Elenco degli algoritmi}%
+\renewcommand{\algorithmcfname}{Algoritmo}%
+\renewcommand{\algorithmautorefname}{algoritmo}%
+\renewcommand{\algorithmcflinename}{riga}%
+\renewcommand{\algocf@typo}{}%
+\renewcommand{\@algocf@procname}{Procedura}%
+\renewcommand{\@algocf@funcname}{Funzione}%
+\renewcommand{\procedureautorefname}{procedura}%
+\renewcommand{\functionautorefname}{funzione}%
+\renewcommand{\algocf@languagechoosen}{italiano}%
+}%
+\DeclareOption{slovak}{%
+\renewcommand{\listalgorithmcfname}{Zoznam algoritmov}%
+\renewcommand{\algorithmcfname}{Algoritmus}%
+\renewcommand{\algorithmautorefname}{\algorithmcfname}%
+\renewcommand{\algorithmcflinename}{Radek}%
+\renewcommand{\algocf@typo}{}%
+\renewcommand{\@algocf@procname}{Proced\'{u}ra}%
+\renewcommand{\@algocf@funcname}{Funkcia}%
+\renewcommand{\procedureautorefname}{\@algocf@procname}%
+\renewcommand{\functionautorefname}{\@algocf@funcname}%
+\renewcommand{\algocf@languagechoosen}{slovak}%
+}%
+%
+% OPTIONs plain, boxed, ruled, algoruled & boxruled
+%
+\newcommand{\algocf@style@plain}{\renewcommand{\algocf@style}{plain}}%
+\newcommand{\algocf@style@boxed}{\renewcommand{\algocf@style}{boxed}}%
+\newcommand{\algocf@style@ruled}{\renewcommand{\algocf@style}{ruled}}%
+\newcommand{\algocf@style@algoruled}{\renewcommand{\algocf@style}{algoruled}}%
+\newcommand{\algocf@style@boxruled}{\renewcommand{\algocf@style}{boxruled}}%
+\newcommand{\algocf@style@tworuled}{\renewcommand{\algocf@style}{tworuled}}%
+\newcommand{\RestyleAlgo}[1]{\csname algocf@style@#1\endcsname}%
+\DeclareOption{plain}{\algocf@style@plain}%
+\DeclareOption{boxed}{\algocf@style@boxed}%
+\DeclareOption{ruled}{\algocf@style@ruled}%
+\DeclareOption{algoruled}{\algocf@style@algoruled}%
+\DeclareOption{boxruled}{\algocf@style@boxruled}%
+\DeclareOption{tworuled}{\algocf@style@tworuled}%
+%
+% OPTIONs algopart,algochapter & algosection
+%
+\DeclareOption{algopart}{\algocf@numbering{part}}%       %algo part numbered
+\DeclareOption{algochapter}{\algocf@numbering{chapter}}% %algo chapter numbered
+\DeclareOption{algosection}{\algocf@numbering{section}}% %algo section numbered
+%
+% OPTIONs resetcount & noresetcount
+%
+\DeclareOption{resetcount}{\renewcommand{\@ResetCounterIfNeeded}{\setcounter{AlgoLine}{0}}}%
+\DeclareOption{noresetcount}{\renewcommand{\@ResetCounterIfNeeded}{}}%
+%
+% OPTION linesnumbered
+%
+\newboolean{algocf@linesnumbered}\setboolean{algocf@linesnumbered}{false}%
+\newcommand{\algocf@linesnumbered}{\relax}%
+\DeclareOption{linesnumbered}{%
+  \setboolean{algocf@linesnumbered}{true}%
+  \renewcommand{\algocf@linesnumbered}{\everypar={\nl}}%
+}%
+%
+% OPTION linesnumberedhidden
+%
+\DeclareOption{linesnumberedhidden}{%
+  \setboolean{algocf@linesnumbered}{true}%
+  \renewcommand{\algocf@linesnumbered}{\everypar{\stepcounter{AlgoLine}}}%
+}%
+%
+% OPTION commentsnumbered inoutnumbered
+%
+\newboolean{algocf@commentsnumbered}\setboolean{algocf@commentsnumbered}{false}%
+\DeclareOption{commentsnumbered}{\setboolean{algocf@commentsnumbered}{true}}%
+\newboolean{algocf@inoutnumbered}\setboolean{algocf@inoutnumbered}{false}%
+\DeclareOption{inoutnumbered}{\setboolean{algocf@inoutnumbered}{true}}%
+%
+% OPTIONs titlenumbered & titlenotnumbered
+%
+\DeclareOption{titlenumbered}{%
+  \renewcommand{\@titleprefix}{%
+    \refstepcounter{\algocf@float}%
+    \AlTitleSty{\AlTitleFnt\@algocf@titleofalgoname\ \expandafter\csname the\algocf@float\endcsname\algocf@typo: }%
+  }%
+}%
+%
+\DeclareOption{titlenotnumbered}{\renewcommand{\@titleprefix}{%
+    \AlTitleSty{\AlTitleFnt\@algocf@titleofalgoname\algocf@typo: }}%
+}%
+%
+% OPTIONs algonl
+% line numbered with the counter of the algorithm
+%
+\DeclareOption{algonl}{\renewcommand{\theAlgoLine}{\expandafter\csname the\algocf@float\endcsname.\arabic{AlgoLine}}}%
+%
+% OPTIONs lined, vlined & noline
+%
+\DeclareOption{lined}{\AtBeginDocument{\SetAlgoLined}}%   \SetAlgoLined
+\DeclareOption{vlined}{\AtBeginDocument{\SetAlgoVlined}}% \SetAlgoVlined
+\DeclareOption{noline}{\AtBeginDocument{\SetAlgoNoLine}}%\SetAlgoNoLine (default)
+%
+% OPTIONs longend, shotend & noend
+%
+\DeclareOption{longend}{\AtBeginDocument{\SetAlgoLongEnd}}%  \SetAlgoLongEnd
+\DeclareOption{shortend}{\AtBeginDocument{\SetAlgoShortEnd}}%\SetAlgoShortEnd
+\DeclareOption{noend}{\AtBeginDocument{\SetAlgoNoEnd}}%      \SetAlgoNoEnd
+%
+% OPTION dotoc
+%
+\newboolean{algocf@dotocloa}\setboolean{algocf@dotocloa}{false}%
+\DeclareOption{dotocloa}{%
+  \setboolean{algocf@dotocloa}{true}%
+}
+%
+% OPTION comments
+%
+\newboolean{algocf@optfillcomment}\setboolean{algocf@optfillcomment}{true}%
+\DeclareOption{nofillcomment}{%
+  \setboolean{algocf@optfillcomment}{false}%
+}%
+\DeclareOption{fillcomment}{%
+  \setboolean{algocf@optfillcomment}{true}%
+}%
+%
+% OPTION sidecommments
+%
+\newboolean{algocf@scleft}\setboolean{algocf@scleft}{false}%
+\DeclareOption{scleft}{%
+  \setboolean{algocf@scleft}{true}%
+}%
+\DeclareOption{sright}{% default
+  \setboolean{algocf@scleft}{false}%
+}%
+%
+% OPTION norelsize
+%
+\newboolean{algocf@norelsize}\setboolean{algocf@norelsize}{false}%
+\DeclareOption{norelsize}{%
+  \setboolean{algocf@norelsize}{true}%
+}%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%% Execution of Options %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\ExecuteOptions{english,plain,resetcount,titlenotnumbered,lined,shortend}%
+%
+\ProcessOptions%
+%
+\@algocf@algotitleofalgo% fix name for \TitleOfAlgo to \algorithmcfname by default
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%% Package Loading %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+\RequirePackage{xspace}%
+%
+\ifthenelse{\boolean{algocf@endfloat}}{%
+  \RequirePackage{endfloat}%
+}{\relax}%
+%
+\ifthenelse{\boolean{algocf@norelsize}}{%
+  \newcommand{\relsize}[1]{\scriptsize}%
+}{%
+  \RequirePackage{relsize}%
+}%
+%
+\ifthenelse{\boolean{algocf@slide}}{\RequirePackage{color}}{}%
+%
+
+\AtEndOfPackage{%
+  \ifthenelse{\boolean{algocf@dotocloa}}{%
+    \renewcommand{\listofalgorithmes}{\tocfile{\listalgorithmcfname}{loa}}%
+  }{\relax}%
+}%
+%
+% if loa in toc required, load tocbibind package if not already done.
+\ifthenelse{\boolean{algocf@dotocloa}}{%
+  \ifx\@tocextra\undefined%
+  \RequirePackage{tocbibind}%
+  \fi%
+}%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Main Part %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\newcommand{\algocf@name}{algorithm2e}%
+\newcommand{\algocf@date}{december 14 2009}%
+\newcommand{\algocf@version}{Release 4.01}%
+\newcommand{\algocf@id}{\algocf@version\space -- \algocf@date\space --}%
+\typeout{********************************************************^^JPackage `\algocf@name'\space\algocf@id^^J%
+         - algorithm2e-announce@lirmm.fr  mailing list for announcement about releases^^J%
+         - algorithm2e-discussion@lirmm.fr mailing list for discussion about package^^J%
+         subscribe by emailing sympa@lirmm.fr with 'subscribe <list> <firstname name>'^^J%
+         - Author: Christophe Fiorio (fiorio@lirmm.fr)^^J********************************************************}%
+%%
+%%
+%%
+%%
+%%
+%%
+%%%% hyperref compatibility tricks: Hyperref package defines H counters from
+   % standard counters (i.e \theHpage from \thepage) and check some particular
+   % counters of some packages, unfortunately it doesn't do the same for
+   % algorithm2e package but act as Hcounter was defined. To avoid errors we
+   % defined \theHalgocf ourself
+%%%%
+%
+\@ifundefined{theHalgocf}{\def\theHalgocf{\thealgocf}}{}%
+\@ifundefined{theHAlgoLine}{\def\theHAlgoLine{\theAlgoLine}}{}%
+\@ifundefined{theHalgocfproc}{\def\theHalgocfproc{0}}{}%
+\@ifundefined{theHalgocffunc}{\def\theHalgocffunc{0}}{}%
+\@ifundefined{toclevel@algocf}{\def\toclevel@algocf{0}}{}%
+%
+% autoref from hyperref needs an autorefname, so we give it.
+\def\AlgoLineautorefname{\algorithmcflinename}%
+\def\algocfautorefname{\algorithmautorefname}%
+\def\algocfprocautorefname{\procedureautorefname}%
+\def\algocffuncautorefname{\functionautorefname}%
+%%
+%%
+%%
+\newcommand{\@defaultskiptotal}{0.5em}%
+\newskip\skiptotal\skiptotal=0.5em%
+\newskip\skiplinenumber\skiplinenumber=\hsize\advance\skiplinenumber by-\skiptotal%
+\newskip\skiprule%
+\newskip\skiphlne%
+\newskip\skiptext%
+\newskip\skiplength%
+\newskip\algomargin%
+\newskip\skipalgocfslide\skipalgocfslide=1em%
+\newdimen\algowidth%
+\newdimen\inoutsize%
+\newdimen\inoutline%
+\newdimen\interspacetitleruled\setlength{\interspacetitleruled}{2pt}%
+\newdimen\interspacealgoruled\setlength{\interspacealgoruled}{2pt}%
+\newdimen\interspacetitleboxruled\setlength{\interspacetitleboxruled}{2\lineskip}%
+%
+\newcommand{\@algoskip}{\smallskip}%
+\newcommand{\SetAlgoSkip}[1]{\renewcommand{\@algoskip}{\csname#1\endcsname}}%
+\newcommand{\@algoinsideskip}{\relax}%
+\newcommand{\SetAlgoInsideSkip}[1]{\renewcommand{\@algoinsideskip}{\csname#1\endcsname}}%
+%
+\newsavebox{\algocf@inoutbox}%
+\newsavebox{\algocf@inputbox}%
+%%
+%%
+\newcommand{\arg@e}{}%
+\newcommand{\arg@space}{\ }%
+\newcommand{\BlankLine}{\vskip 1ex}%
+%%
+\newcommand{\vespace}{1ex}%
+\newcommand{\SetInd}[2]{%
+\skiprule=#1%
+\skiptext=#2%
+\skiplength=\skiptext\advance\skiplength by \skiprule\advance\skiplength by 0.4pt}%
+\SetInd{0.5em}{1em}
+\algomargin=\leftskip\advance\algomargin by \parindent%
+\newcommand{\IncMargin}[1]{\advance\algomargin by #1}%
+\newcommand{\DecMargin}[1]{\advance\algomargin by -#1}%
+\newcommand{\SetNlSkip}[1]{%
+  \renewcommand{\@defaultskiptotal}{#1}%
+  \setlength{\skiptotal}{#1}}%
+%%
+\newskip\AlCapSkip\AlCapSkip=0ex%
+\newskip\AlCapHSkip\AlCapSkip=0ex%
+\newcommand{\SetAlCapSkip}[1]{\setlength{\AlCapSkip}{#1}}%
+\newcommand{\SetAlCapHSkip}[1]{\setlength{\AlCapHSkip}{#1}}%
+\SetAlCapHSkip{.5\algomargin}%
+%%
+%%
+\newcommand{\Indentp}[1]{\advance\leftskip by #1}%
+\newcommand{\Indp}{\advance\leftskip by 1em}%
+\newcommand{\Indpp}{\advance\leftskip by 0.5em}%
+\newcommand{\Indm}{\advance\leftskip by -1em}%
+\newcommand{\Indmm}{\advance\leftskip by -0.5em}%
+%%
+%%
+%% Line Numbering
+%%
+%%
+% number line style
+\newcommand{\algocf@nlrelsize}{-2}\newcommand{\SetAlgoNlRelativeSize}[1]{\renewcommand{\algocf@nlrelsize}{#1}}%
+\newcommand{\NlSty}[1]{\textnormal{\textbf{\relsize{\algocf@nlrelsize}#1}}}% default definition
+\newcommand{\SetNlSty}[3]{\renewcommand{\NlSty}[1]{\textnormal{\csname#1\endcsname{\relsize{\algocf@nlrelsize}#2##1#3}}}}%
+%
+% nl definitions
+%
+\newsavebox{\algocf@nlbox}%
+\newcommand{\algocf@printnl}[1]{%
+  \ifthenelse{\boolean{algocf@leftlinenumber}}{%
+    \skiplinenumber=\skiptotal\advance\skiplinenumber by\leftskip%
+    \strut\raisebox{0pt}{\llap{\NlSty{#1}\kern\skiplinenumber}}\ignorespaces%
+  }{%
+    \sbox\algocf@nlbox{\NlSty{#1}}%
+    \skiplinenumber=\hsize\advance\skiplinenumber by-\leftskip\advance\skiplinenumber by-\skiptext%
+    \advance\skiplinenumber by\algomargin\advance\skiplinenumber by.3em\advance\skiplinenumber by-\wd\algocf@nlbox%
+    \strut\raisebox{0pt}{\rlap{\kern\skiplinenumber\NlSty{#1\ignorespaces}}}\ignorespaces%
+  }%
+}%
+\newcommand{\algocf@nl@sethref}[1]{%
+  \renewcommand{\theHAlgoLine}{\thealgocfproc.#1}%
+  \hyper@refstepcounter{AlgoLine}\gdef\@currentlabel{#1}%
+}%
+\newcommand{\nl}{%
+  \@ifundefined{hyper@refstepcounter}{% if not hyperref then do a simple refstepcounter
+    \refstepcounter{AlgoLine}%
+  }{% else if hyperref, do the anchor so 2 lines in two differents algorithms cannot have the same href
+    \stepcounter{AlgoLine}\algocf@nl@sethref{\theAlgoLine}%
+  }% now we can do the line numbering
+  \algocf@printnl{\theAlgoLine}%
+}%
+%
+\newcommand{\nllabel}[1]{\label{#1}}%
+%
+\newcommand{\enl}{%
+  \@ifundefined{hyper@refstepcounte}{% if not hyperref then do a simple refstepcounter
+    \refstepcounter{AlgoLine}%
+  }{% else if hyperref, do the anchor so 2 lines in two differents algorithms cannot have the same href
+    \stepcounter{AlgoLine}\algocf@nl@sethref{\theAlgoLine}%
+  }% now we can do the line numbering
+  \skiplinenumber=\hsize\advance\skiplinenumber by-\leftskip%
+  \strut\raisebox{0pt}{\rlap{\kern\skiplinenumber\strut\NlSty{\theAlgoLine}}}\ignorespaces%
+}
+%% nlset
+\newcommand{\nlset}[1]{%
+  \@ifundefined{hyper@refstepcounter}{\protected@edef\@currentlabel{#1}}{\algocf@nl@sethref{#1}}\algocf@printnl{#1}%
+}%
+%
+%% lnl definitions
+\newcommand{\lnl}[1]{\nl\label{#1}}%
+%
+%% lnlset
+\newcommand{\lnlset}[2]{\nlset{#2}\label{#1}}%
+%
+% set char put at end of each line
+%
+\newcommand{\algocf@endline}{\string;}
+\newcommand{\SetEndCharOfAlgoLine}[1]{\renewcommand{\algocf@endline}{#1}}
+%
+% end of line definition
+%
+\newcommand{\@endalgocfline}{\algocf@endline}% default definition: printsemicolon
+\newcommand{\DontPrintSemicolon}{\renewcommand{\@endalgocfline}{\relax}}%
+\newcommand{\PrintSemicolon}{\renewcommand{\@endalgocfline}{\algocf@endline}}%
+\newcommand{\@endalgoln}{\@endalgocfline\hfill\strut\par}%
+%
+% line numbering
+%
+\newcommand{\LinesNumbered}{\setboolean{algocf@linesnumbered}{true}\renewcommand{\algocf@linesnumbered}{\everypar={\nl}}}%
+\newcommand{\LinesNotNumbered}{%
+  \setboolean{algocf@linesnumbered}{false}%
+  \renewcommand{\algocf@linesnumbered}{\relax}%
+}%
+%
+\newcommand{\LinesNumberedHidden}{%
+  \setboolean{algocf@linesnumbered}{true}\renewcommand{\algocf@linesnumbered}{\everypar{\stepcounter{AlgoLine}}}}%
+\newcommand{\ShowLn}{\nlset{\theAlgoLine}\ignorespaces}% display the line number on this line (without labelling)
+\newcommand{\ShowLnLabel}[1]{\lnlset{#1}{\theAlgoLine}\ignorespaces}% display the line number and label this line
+%
+%%
+%
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Styling text commands
+%
+\newcommand{\AlFnt}{\relax}% default definition
+\newcommand{\SetAlFnt}[1]{\renewcommand{\AlFnt}{#1}}%
+\newcommand{\AlTitleFnt}{\relax}% default definition
+\newcommand{\SetAlTitleFnt}[1]{\renewcommand{\AlTitleFnt}{#1}}%
+%
+\newcommand{\AlCapFnt}{\relax}% default definition
+\newcommand{\SetAlCapFnt}[1]{\renewcommand{\AlCapFnt}{#1}}%
+\newcommand{\AlCapNameFnt}{\relax}% default definition
+\newcommand{\SetAlCapNameFnt}[1]{\renewcommand{\AlCapNameFnt}{#1}}%
+%
+\newcommand{\ProcFnt}{\relax}% default definition
+\newcommand{\SetProcFnt}[1]{\renewcommand{\ProcFnt}{#1}}%
+\newcommand{\ProcNameFnt}{\relax}% default definition
+\newcommand{\SetProcNameFnt}[1]{\renewcommand{\ProcNameFnt}{#1}}%
+\newcommand{\ProcArgFnt}{\relax}% default definition
+\newcommand{\SetProcArgFnt}[1]{\renewcommand{\ProcArgFnt}{#1}}%
+%
+\newcommand{\AlTitleSty}[1]{\textbf{#1}\unskip}% default definition
+\newcommand{\SetAlTitleSty}[1]{\renewcommand{\AlTitleSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
+\newcommand{\AlCapSty}[1]{\textnormal{\textbf{#1}}\unskip}% default definition
+\newcommand{\SetAlCapSty}[1]{\renewcommand{\AlCapSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
+\newcommand{\AlCapNameSty}[1]{\textnormal{#1}\unskip}% default definition
+\newcommand{\SetAlCapNameSty}[1]{\renewcommand{\AlCapNameSty}[1]{\textnormal{\csname #1\endcsname{##1}}\unskip}}%
+%
+\newcommand{\ProcSty}[1]{\AlCapSty{#1}}%
+\newcommand{\SetProcSty}[1]{\renewcommand{\ProcSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
+\newcommand{\ProcNameSty}[1]{\AlCapNameSty{#1}}%
+\newcommand{\SetProcNameSty}[1]{\renewcommand{\ProcNameSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
+\newcommand{\ProcArgSty}[1]{\AlCapNameSty{#1}}%
+\newcommand{\SetProcArgSty}[1]{\renewcommand{\ProcArgSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
+%
+\newcommand{\KwSty}[1]{\textnormal{\textbf{#1}}\unskip}% default definition
+\newcommand{\SetKwSty}[1]{\renewcommand{\KwSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
+\newcommand{\ArgSty}[1]{\textnormal{\emph{#1}}\unskip}%\SetArgSty{emph}
+\newcommand{\SetArgSty}[1]{\renewcommand{\ArgSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
+\newcommand{\FuncSty}[1]{\textnormal{\texttt{#1}}\unskip}%\SetFuncSty{texttt}
+\newcommand{\SetFuncSty}[1]{\renewcommand{\FuncSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
+\newcommand{\DataSty}[1]{\textnormal{\textsf{#1}}\unskip}%%\SetDataSty{textsf}
+\newcommand{\SetDataSty}[1]{\renewcommand{\DataSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
+\newcommand{\CommentSty}[1]{\textnormal{\texttt{#1}}\unskip}%%\SetDataSty{texttt}
+\newcommand{\SetCommentSty}[1]{\renewcommand{\CommentSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%
+\newcommand{\TitleSty}[1]{#1\unskip}%\SetTitleSty{}{}
+\newcommand{\SetTitleSty}[2]{\renewcommand{\TitleSty}[1]{%
+\csname#1\endcsname{\csname#2\endcsname##1}}\unskip}%
+%
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Block basic commands
+%
+\newcommand{\algocf@push}[1]{\advance\skiptotal by #1\moveright #1}%
+\newcommand{\algocf@pop}[1]{\advance\skiptotal by -#1}%
+\newcommand{\algocf@addskiptotal}{\advance\skiptotal by 0.4pt\advance\hsize by -0.4pt}% 0.4 pt=width of \vrule
+\newcommand{\algocf@subskiptotal}{\advance\skiptotal by -0.4pt\advance\hsize by 0.4pt}% 0.4 pt=width of \vrule
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% group of instructions definition
+%
+\skiphlne=.8ex%
+\newcommand{\SetVlineSkip}[1]{\skiphlne=#1}%
+%
+%% block with a vertical line end by a little horizontal line
+\newcommand{\algocf@Vline}[1]{%     no vskip in between boxes but a strut to separate them, 
+  \strut\par\nointerlineskip% then interblock space stay the same whatever is inside it
+  \algocf@push{\skiprule}%        move to the right before the vertical rule
+  \hbox{\vrule%
+    \vtop{\algocf@push{\skiptext}%move the right after the rule
+      \vtop{\algocf@addskiptotal\advance\hsize by -\skiplength #1}\Hlne}}\vskip\skiphlne% inside the block
+  \algocf@pop{\skiprule}%\algocf@subskiptotal% restore indentation
+  \nointerlineskip}% no vskip after
+%
+%% block with a vertical line
+\newcommand{\algocf@Vsline}[1]{%    no vskip in between boxes but a strut to separate them, 
+  \strut\par\nointerlineskip% then interblock space stay the same whatever is inside it
+  \algocf@push{\skiprule}%        move to the right before the vertical rule
+  \hbox{\vrule%               the vertical rule
+    \vtop{\algocf@push{\skiptext}%move the right after the rule
+      \vtop{\algocf@addskiptotal\advance\hsize by -\skiplength #1}}}% inside the block
+  \algocf@pop{\skiprule}}% restore indentation
+%
+\newcommand{\algocf@Hlne}{\hrule height 0.4pt depth 0pt width .5em}%
+%
+%% block without line
+\newcommand{\algocf@Noline}[1]{%    no vskip in between boxes but a strut to separate them, 
+  \strut\par\nointerlineskip% then interblock space stay the same whatever is inside it
+  \algocf@push{\skiprule}%
+  \hbox{%
+    \vtop{\algocf@push{\skiptext}%
+      \vtop{\advance\hsize by -\skiplength #1}}}% inside the block
+  \algocf@pop{\skiprule}%
+  % \nointerlineskip% no vskip after
+}%
+%
+%% default=NoLine
+%
+\newcommand{\algocf@group}[1]{\algocf@Noline{##1}}% group: set of instruction depending from another (ex: then part of the If)
+\newcommand{\algocf@@block}[2]{\algocf@Noline{##1}\KwSty{##2}\par}% block: group with a end keyword.
+\newcommand{\algocf@block}[2]{\algocf@@block{#1}{#2}}% command that will be used and redefined accordingly to noend option
+\newcommand{\algocf@setBlock}{%
+  \ifthenelse{\boolean{algocf@optnoend}}{%     if no end option
+    \renewcommand{\algocf@block}[2]{\algocf@group{##1}}%     block will be a group
+  }{%                                          else
+    \renewcommand{\algocf@block}[2]{\algocf@@block{##1}{##2}}% block stays a block
+  }%
+}%
+%
+\newcommand{\Hlne}{}% little hrizontal line ending a block in vline mode
+%
+\newcommand{\@algocf@endoption}[1]{#1}%
+\newboolean{algocf@optnoend}\setboolean{algocf@optnoend}{false}%
+%
+\newcommand{\SetAlgoLongEnd}{%%%%%%%%%%%%%%%%%%%%%%%%% Long End
+  \setboolean{algocf@optnoend}{false}%
+  \renewcommand{\@algocf@endoption}[1]{##1}%
+  \algocf@setBlock}%
+%
+\newcommand{\SetAlgoShortEnd}{%%%%%%%%%%%%%%%%%%%%%%%% ShortEnd
+  \setboolean{algocf@optnoend}{false}%
+  \renewcommand{\@algocf@endoption}[1]{\@firstword##1 \@nil}%
+  \algocf@setBlock}%
+%
+\newcommand{\SetAlgoNoEnd}{%%%%%%%%%%%%%%%%%%%%%%%%%%% NoEnd
+  \setboolean{algocf@optnoend}{true}%
+  \renewcommand{\@algocf@endoption}[1]{}%
+  \algocf@setBlock}%
+%
+\newcommand{\SetAlgoNoLine}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Noline
+\renewcommand{\algocf@@block}[2]{\algocf@Noline{##1}\KwSty{##2}\strut\par}%
+\renewcommand{\algocf@group}[1]{\algocf@Noline{##1}}%
+\renewcommand{\Hlne}{}}%
+%
+\newcommand{\SetAlgoVlined}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Vline
+\renewcommand{\algocf@@block}[2]{\algocf@Vline{##1}}%
+\renewcommand{\algocf@group}[1]{\algocf@Vsline{##1}\ifthenelse{\boolean{algocf@optnoend}}{\relax}{\strut\ignorespaces}}%
+\renewcommand{\Hlne}{\algocf@Hlne}}%
+%
+\newcommand{\SetAlgoLined}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Line
+\renewcommand{\algocf@@block}[2]{\strut\algocf@Vsline{##1}\KwSty{##2}\strut\par}% no skip after a block so garantie at least a line
+\renewcommand{\algocf@group}[1]{\algocf@Vsline{##1}\ifthenelse{\boolean{algocf@optnoend}}{\relax}{\strut\ignorespaces}}%
+\renewcommand{\Hlne}{}}%
+%
+\newcommand{\SetNothing}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Noline
+\renewcommand{\algocf@@block}[2]{\algocf@Noline{##1}\par}%
+%\long
+\renewcommand{\algocf@group}[1]{\algocf@Noline{##1}}%
+\renewcommand{\Hlne}{}}%
+%
+%%
+%%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ``Input :'''s like command 
+%
+%%%
+% text staying at the right of the longer keyword of KwInOut commands 
+% (text of KwInOut commands are all vertically aligned)
+%
+\newcommand{\algocf@newinout}{\par\parindent=\wd\algocf@inoutbox}% to put right indentation after a \\ in the KwInOut
+\newcommand{\SetKwInOut}[2]{%
+  \sbox\algocf@inoutbox{\KwSty{#2}\algocf@typo:}%
+  \expandafter\ifx\csname InOutSizeDefined\endcsname\relax% if first time used
+    \newcommand\InOutSizeDefined{}\setlength{\inoutsize}{\wd\algocf@inoutbox}%
+  \else% else keep the larger dimension
+    \ifdim\wd\algocf@inoutbox>\inoutsize\setlength{\inoutsize}{\wd\algocf@inoutbox}\fi%
+  \fi% the dimension of the box is now defined.
+  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+  \expandafter\algocf@mkcmd\csname#1\endcsname[1]{%
+    \ifthenelse{\boolean{algocf@inoutnumbered}}{\relax}{\everypar={\relax}}%
+    {\let\\\algocf@newinout\hangindent=\wd\algocf@inoutbox\hangafter=1\parbox[t]{\inoutsize}{\KwSty{#2}\algocf@typo\hfill:}~##1\par}%
+    \algocf@linesnumbered% reset the numbering of the lines
+  }}%
+%
+%% allow to ajust the skip size of InOut
+%%
+\newcommand{\ResetInOut}[1]{%
+  \sbox\algocf@inoutbox{\hbox{\KwSty{#1}\algocf@typo:\ }}%
+  \setlength{\inoutsize}{\wd\algocf@inoutbox}%
+  }%
+%
+% 
+%%%
+% text staying at the right of the keyword.
+%
+\newcommand{\algocf@newinput}{\par\parindent=\wd\algocf@inputbox}% to put right indentation after a \\ in the KwInput
+\newcommand{\SetKwInput}[2]{%
+  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+  \expandafter\algocf@mkcmd\csname#1\endcsname[1]{%
+    \sbox\algocf@inputbox{\hbox{\KwSty{#2}\algocf@typo: }}%
+    \ifthenelse{\boolean{algocf@inoutnumbered}}{\relax}{\everypar={\relax}}%
+    {\let\\\algocf@newinput\hangindent=\wd\algocf@inputbox\hangafter=1\unhbox\algocf@inputbox##1\par}%
+    \algocf@linesnumbered% reset the numbering of the lines
+  }}%
+\newcommand{\SetKwData}[2]{%
+  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+  \expandafter\algocf@mkcmd\csname @#1\endcsname[1]{\DataSty{#2(}\ArgSty{##1}\DataSty{)}}%
+  \expandafter\algocf@mkcmd\csname#1\endcsname{%
+    \@ifnextchar\bgroup{\csname @#1\endcsname}{\DataSty{#2}\xspace}}%
+  }%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% tallent:
+%
+% Add following macros:
+%   \SetKwHangingKw:  [kw] ------------   <= hanging determined by [kw]
+%                          ------------
+% Should act like a combination of \SetKwInput and \SetKw.
+% Based on \SetKwInput:
+%   - remove ':' at end of keyword
+%   - do not reset numbering
+%   - use separate savebox
+\newsavebox{\algocf@hangingbox}
+\newcommand{\algocf@newhanging}{\par\parindent=\wd\algocf@hangingbox}% to put right indentation after a \\ in the KwInput
+\newcommand{\SetKwHangingKw}[2]{%
+  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+  \expandafter\algocf@mkcmd\csname#1\endcsname[1]{%
+    \sbox\algocf@hangingbox{\hbox{\KwSty{#2}\algocf@typo\ }}%
+    {\let\\\algocf@newhanging\hangindent=\wd\algocf@hangingbox\hangafter=1\unhbox\algocf@hangingbox##1\;}%
+  }%
+}%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Comments macros
+%
+%%%%
+% comment in the text, first argument is the name of the macro, second is
+% the text put before the comment, third is the text put at the end of the
+% comment.
+%
+% first side comment justification
+\newcommand{\SetSideCommentLeft}{\setboolean{algocf@scleft}{true}}%
+\newcommand{\SetSideCommentRight}{\setboolean{algocf@scleft}{false}}%
+\newcommand{\SetNoFillComment}{\setboolean{algocf@optfillcomment}{false}}%
+\newcommand{\SetFillComment}{\setboolean{algocf@optfillcomment}{true}}%
+%
+% next comment and side comment
+%
+\newcommand{\algocf@endmarkcomment}{\relax}%
+\newcommand{\algocf@fillcomment}{%
+  \ifthenelse{\boolean{algocf@optfillcomment}}{\hfill}{\relax}}%
+%
+\newcommand{\algocf@startcomment}{%
+  \hangindent=\wd\algocf@inputbox\hangafter=1\usebox\algocf@inputbox}%
+\newcommand{\algocf@endcomment}{\algocf@fillcomment\algocf@endmarkcomment\ignorespaces\par}%
+\newcommand{\algocf@endstartcomment}{\algocf@endcomment\algocf@startcomment\ignorespaces}%
+%
+\newboolean{algocf@sidecomment}%
+\newboolean{algocf@altsidecomment}\setboolean{algocf@altsidecomment}{false}%
+\newcommand{\algocf@scpar}{\ifthenelse{\boolean{algocf@altsidecomment}}{\relax}{\par}}%
+\newcommand{\algocf@sclfill}{\ifthenelse{\boolean{algocf@scleft}}{\algocf@fillcomment}{\relax}}%
+\newcommand{\algocf@scrfill}{\ifthenelse{\boolean{algocf@scleft}}{\relax}{\hfill}}%
+\newcommand{\algocf@startsidecomment}{\usebox\algocf@inputbox}%
+\newcommand{\algocf@endsidecomment}{\algocf@endmarkcomment\algocf@scpar}%
+\newcommand{\algocf@endstartsidecomment}{%
+  \algocf@sclfill\algocf@endsidecomment%
+  \algocf@scrfill\algocf@startsidecomment\ignorespaces}%
+%
+\newcommand{\SetKwComment}[3]{%
+  % newcommand or renewcommand ?
+  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+  %%% comment definition
+  \expandafter\algocf@mkcmd\csname algocf@#1\endcsname[1]{%
+    \sbox\algocf@inputbox{\CommentSty{\hbox{#2}}}%
+    \ifthenelse{\boolean{algocf@commentsnumbered}}{\relax}{\everypar={\relax}}%
+    {\renewcommand{\algocf@endmarkcomment}{#3}%
+      \let\\\algocf@endstartcomment%
+      \algocf@startcomment\CommentSty{%
+        \strut\ignorespaces##1\strut\algocf@fillcomment#3}\par}%
+    \algocf@linesnumbered% reset the numbering of the lines
+  }%
+  %%% side comment definitions
+  % option or not?
+  \expandafter\algocf@mkcmd\csname algocf@#1@star\endcsname{%
+    \@ifnextchar [{\csname algocf@#1@staropt\endcsname}{\csname algocf@#1@sidecomment\endcsname}%
+  }%
+  % manage option
+  \expandafter\def\csname algocf@#1@staropt\endcsname[##1]##2{%
+    \ifthenelse{\boolean{algocf@scleft}}{\setboolean{algocf@sidecomment}{true}}{\setboolean{algocf@sidecomment}{false}}%
+    \ifx##1h\setboolean{algocf@altsidecomment}{true}\SetSideCommentLeft\fi%
+    \ifx##1f\setboolean{algocf@altsidecomment}{true}\SetSideCommentRight\fi%
+    \ifx##1l\setboolean{algocf@altsidecomment}{false}\SetSideCommentLeft\fi%
+    \ifx##1r\setboolean{algocf@altsidecomment}{false}\SetSideCommentRight\fi%
+    \csname algocf@#1@sidecomment\endcsname{##2}% call sidecomment
+    \ifthenelse{\boolean{algocf@sidecomment}}{\setboolean{algocf@scleft}{true}}{\setboolean{algocf@scleft}{false}}%
+    \setboolean{algocf@altsidecomment}{false}%
+  }%
+  % side comment
+  \expandafter\algocf@mkcmd\csname algocf@#1@sidecomment\endcsname[1]{%
+    \sbox\algocf@inputbox{\CommentSty{\hbox{#2}}}%
+    \ifthenelse{\boolean{algocf@commentsnumbered}}{\relax}{\everypar={\relax}}%
+    {%
+      \renewcommand{\algocf@endmarkcomment}{#3}%
+      \let\\\algocf@endstartsidecomment%
+      % here is the comment
+      %\ifthenelse{\boolean{algocf@altsidecomment}}{\relax}{\algocf@endline\ }%
+      \ifthenelse{\boolean{algocf@altsidecomment}}{\relax}{\@endalgocfline\ }%
+      \algocf@scrfill\algocf@startsidecomment\CommentSty{%
+        \strut\ignorespaces##1\strut\algocf@sclfill#3}\algocf@scpar%
+    }%
+    \algocf@linesnumbered% reset the numbering of the lines
+  }
+  \expandafter\algocf@mkcmd\csname#1\endcsname{\@ifstar{\csname algocf@#1@star\endcsname}{\csname algocf@#1\endcsname}}%
+}%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Kw
+%
+\newcommand{\SetKw}[2]{%
+  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+  \expandafter\algocf@mkcmd\csname @#1\endcsname[1]{\KwSty{#2} \ArgSty{##1}}%
+  \expandafter\algocf@mkcmd\csname#1\endcsname{%
+    \@ifnextchar\bgroup{\csname @#1\endcsname}{\KwSty{#2}\xspace}}%
+  }%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% KwFunction
+%
+\newcommand{\SetKwFunction}[2]{%
+%%% use of gdef since newcommand doesn't manage to define the macro when SetKwFunction is used in \algocf@caption@proc
+  \expandafter\gdef\csname @#1\endcsname##1{\FuncSty{#2(}\ArgSty{##1}\FuncSty{)}}%
+  \expandafter\gdef\csname#1\endcsname{%
+    \@ifnextchar\bgroup{\csname @#1\endcsname}{\FuncSty{#2}\xspace}}%
+}%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% KwTab
+%
+\newcommand{\SetKwArray}[2]{%
+%%% use of gdef since newcommand doesn't manage to define the macro when SetKwFunction is used in \algocf@caption@proc
+  \expandafter\gdef\csname @#1\endcsname##1{\DataSty{#2[}\ArgSty{##1}\DataSty{]}}%
+  \expandafter\gdef\csname#1\endcsname{%
+    \@ifnextchar\bgroup{\csname @#1\endcsname}{\DataSty{#2}\xspace}}%
+}%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% KwBlock
+%
+\newcommand{\SetKwBlock}[3]{%
+\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+% side text or not? 
+\expandafter\def\csname#1\endcsname{%Begin
+  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%
+% with side text
+\expandafter\def\csname algocf@#1opt\endcsname(##1)##2{% \Begin(){}
+  \KwSty{#2} ##1\algocf@block{##2}{\@algocf@endoption{#3}}%
+  \@ifnextchar({\csname algocf@#1end\endcsname}{\par}}%
+% without side text at the beginning
+\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[1]{% \Begin{}
+  \KwSty{#2}\algocf@block{##1}{\@algocf@endoption{#3}}\@ifnextchar({\csname algocf@#1end\endcsname}{\par}}%
+% side text at the end
+\expandafter\def\csname algocf@#1end\endcsname(##1){% \Begin{}
+  \ ##1\par}%
+}%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% For Switch
+%
+\newcommand{\SetKwSwitch}[8]{% #1=\Switch #2=\Case #3=\Other #4=swicth #5=case #6=do #7=otherwise #8=endsw
+%%%% Switch
+\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+% side text or not? 
+\expandafter\def\csname#1\endcsname{%Switch
+  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%
+% with side text
+\expandafter\def\csname algocf@#1opt\endcsname(##1)##2##3{% \Switch(){}{}
+  \KwSty{#4} \ArgSty{##2} \KwSty{#5} ##1\algocf@block{##3}{\@algocf@endoption{#8}}}%
+% without side text
+\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[2]{% \Switch{}{}
+  \KwSty{#4} \ArgSty{##1} \KwSty{#5}\algocf@block{##2}{\@algocf@endoption{#8}}}%
+% side text at the end
+\expandafter\def\csname algocf@#1end\endcsname(##1){% \Switch{}{}()
+}%
+%
+%%%% Case
+\@ifundefined{algocf@#2}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+% side text or not?
+\expandafter\def\csname#2\endcsname{%Case
+  \@ifnextchar({\csname algocf@#2opt\endcsname}{\csname algocf@#2\endcsname}}%
+\expandafter\def\csname u#2\endcsname{%uCase
+  \@ifnextchar({\csname algocf@u#2opt\endcsname}{\csname algocf@u#2\endcsname}}%
+\expandafter\def\csname l#2\endcsname{%lCase
+  \@ifnextchar({\csname algocf@l#2opt\endcsname}{\csname algocf@l#2\endcsname}}%
+% with side text
+\expandafter\def\csname algocf@#2opt\endcsname(##1)##2##3{% \Case(){}{}
+  \KwSty{#6} \ArgSty{##2} ##1\algocf@block{##3}{\@algocf@endoption{#8}}}%
+\expandafter\def\csname algocf@u#2opt\endcsname(##1)##2##3{% \uCase(){}{}
+  \KwSty{#6} \ArgSty{##2} ##1\algocf@group{##3}}%
+\expandafter\def\csname algocf@l#2opt\endcsname(##1)##2##3{% \lCase(){}{}
+  \KwSty{#6} \ArgSty{##2} ##3\algocf@endline\ ##1\par}%
+% without side text
+\expandafter\algocf@mkcmd\csname algocf@#2\endcsname[2]{% \Case{}{}
+  \KwSty{#6} \ArgSty{##1}\algocf@block{##2}{\@algocf@endoption{#8}}}%
+\expandafter\algocf@mkcmd\csname algocf@u#2\endcsname[2]{% \uCase{}{}
+  \KwSty{#6} \ArgSty{##1}\algocf@group{##2}}%
+\expandafter\algocf@mkcmd\csname algocf@l#2\endcsname[2]{% \lCase{}{}
+  \KwSty{#6} \ArgSty{##1} ##2}%
+%%%% Other
+\@ifundefined{algocf@#3}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+% side text or not?
+\expandafter\def\csname#3\endcsname{%Other
+  \@ifnextchar({\csname algocf@#3opt\endcsname}{\csname algocf@#3\endcsname}}%
+\expandafter\def\csname l#3\endcsname{%Other
+  \@ifnextchar({\csname algocf@l#3opt\endcsname}{\csname algocf@l#3\endcsname}}%
+% with side text
+\expandafter\def\csname algocf@#3opt\endcsname(##1)##2{% \Other(){}{}
+  \KwSty{#7} ##1\algocf@block{##2}{\@algocf@endoption{#8}}}%
+\expandafter\def\csname algocf@l#3opt\endcsname(##1)##2{% \Other(){}{}
+  \KwSty{#7} ##2\algocf@endline\ ##1\par}%
+% without side text
+\expandafter\algocf@mkcmd\csname algocf@#3\endcsname[1]{% default
+  \KwSty{#7}\algocf@block{##1}{\@algocf@endoption{#8}}}%
+\expandafter\algocf@mkcmd\csname algocf@l#3\endcsname[1]{% ldefault
+  \KwSty{#7} ##1}%
+}%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% If macros
+%
+\newcommand{\SetKwIF}[8]{% #1=\If #2=\ElseIf #3=\Else #4=if #5=then #6=elseif si #7=else #8=endif
+% 
+% common text
+\@ifundefined{#1@ifthen}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+\expandafter\algocf@mkcmd\csname #1@ifthen\endcsname[1]{%
+  \KwSty{#4} \ArgSty{##1} \KwSty{#5}}%
+\expandafter\algocf@mkcmd\csname #1@endif\endcsname[1]{\algocf@block{##1}{\@algocf@endoption{#8}}}%
+\expandafter\algocf@mkcmd\csname #1@noend\endcsname[1]{\algocf@group{##1}}%
+\expandafter\algocf@mkcmd\csname #1@else\endcsname[1]{\algocf@group{##1}\KwSty{#7}}%
+\@ifundefined{#2@elseif}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+\expandafter\algocf@mkcmd\csname #2@elseif\endcsname[1]{%
+  \KwSty{#6} \ArgSty{##1} \KwSty{#5}}%
+\@ifundefined{#3@else}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+\expandafter\algocf@mkcmd\csname #3@else\endcsname{\KwSty{#7}}%
+%%%% If then { } endif
+%
+\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+% side text or not?
+\expandafter\def\csname#1\endcsname{%
+  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%
+% with side text
+\expandafter\def\csname algocf@#1opt\endcsname(##1)##2##3{% \If(){}{}
+  \csname #1@ifthen\endcsname{##2} ##1\csname #1@endif\endcsname{##3}}%
+% without side text
+\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[2]{% \If{}{}
+  \csname #1@ifthen\endcsname{##1}\csname #1@endif\endcsname{##2}}%
+%
+%%%% If then {} else {} endif
+%
+% side text or not?
+\expandafter\def\csname e#1\endcsname{%
+  \@ifnextchar({\csname algocf@e#1thenopt\endcsname}{\csname algocf@e#1then\endcsname}}%
+% with side text after if
+\expandafter\def\csname algocf@e#1thenopt\endcsname(##1)##2##3{% \eIf()
+  \csname #1@ifthen\endcsname{##2} ##1\csname #1@else\endcsname{##3}%
+  \csname algocf@e#1thenelse\endcsname}%
+% without side text after if
+\expandafter\def\csname algocf@e#1then\endcsname##1##2{% \eIf()
+  \csname #1@ifthen\endcsname{##1}\csname #1@else\endcsname{##2}%
+  \csname algocf@e#1thenelse\endcsname}%
+% side text after else or not ?
+\expandafter\def\csname algocf@e#1thenelse\endcsname{%
+  \@ifnextchar({\csname algocf@e#1elseopt\endcsname}{\csname algocf@e#1else\endcsname}}%
+% else with a side text
+\expandafter\def\csname algocf@e#1elseopt\endcsname(##1)##2{% 
+  ##1\csname #1@endif\endcsname{##2}}%
+% else without side text
+\expandafter\algocf@mkcmd\csname algocf@e#1else\endcsname[1]{%
+  \csname #1@endif\endcsname{##1}}%
+%
+%%%% If then 
+%
+% side text or not?
+\expandafter\def\csname l#1\endcsname{% lif
+  \@ifnextchar({\csname algocf@l#1opt\endcsname}{\csname algocf@l#1\endcsname}}%
+\expandafter\def\csname u#1\endcsname{% uif
+  \@ifnextchar({\csname algocf@u#1opt\endcsname}{\csname algocf@u#1\endcsname}}%
+% with side text
+\expandafter\def\csname algocf@l#1opt\endcsname(##1)##2##3{% \lIf(){}{}
+  \csname #1@ifthen\endcsname{##2} ##3\algocf@endline\ ##1\par}%
+\expandafter\def\csname algocf@u#1opt\endcsname(##1)##2##3{% \uIf(){}{}
+  \csname #1@ifthen\endcsname{##2} ##1\csname#1@noend\endcsname{##3}}%
+% without side text
+\expandafter\algocf@mkcmd\csname algocf@l#1\endcsname[2]{% \lIf{}{}
+  \csname #1@ifthen\endcsname{##1} ##2}%
+\expandafter\algocf@mkcmd\csname algocf@u#1\endcsname[2]{% \uIf{}{}
+  \csname #1@ifthen\endcsname{##1}\csname#1@noend\endcsname{##2}}%
+%
+%%%% ElseIf {} endif
+%
+\@ifundefined{algocf@#2}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+% side text or not?
+\expandafter\def\csname#2\endcsname{% ElseIf
+  \@ifnextchar({\csname algocf@#2opt\endcsname}{\csname algocf@#2\endcsname}}%
+% with side text
+\expandafter\def\csname algocf@#2opt\endcsname(##1)##2##3{% \ElseIf(){}{}
+  \csname #2@elseif\endcsname{##2} ##1\csname #1@endif\endcsname{##3}}%
+% without side text
+\expandafter\algocf@mkcmd\csname algocf@#2\endcsname[2]{% \ElseIf{}{}
+  \csname #2@elseif\endcsname{##1}\csname #1@endif\endcsname{##2}}%
+%
+%%%% ElseIf
+%
+% side text or not?
+\expandafter\def\csname l#2\endcsname{% lElseIf
+  \@ifnextchar({\csname algocf@l#2opt\endcsname}{\csname algocf@l#2\endcsname}}%
+\expandafter\def\csname u#2\endcsname{% uElseIf
+  \@ifnextchar({\csname algocf@u#2opt\endcsname}{\csname algocf@u#2\endcsname}}%
+% with side text
+\expandafter\def\csname algocf@l#2opt\endcsname(##1)##2##3{% \lElseIf(){}{}
+  \csname #2@elseif\endcsname{##2} ##3\algocf@endline\ ##1\par}%
+\expandafter\def\csname algocf@u#2opt\endcsname(##1)##2##3{% \uElseIf(){}{}
+  \csname #2@elseif\endcsname{##2} ##1\csname #1@noend\endcsname{##3}}%
+% without side text
+\expandafter\algocf@mkcmd\csname algocf@l#2\endcsname[2]{% \lElseIf{}{}
+  \csname #2@elseif\endcsname{##1} ##2}%
+\expandafter\algocf@mkcmd\csname algocf@u#2\endcsname[2]{% \uElseIf{}{}
+  \csname #2@elseif\endcsname{##1}\csname #1@noend\endcsname{##2}}%
+%
+%%%% Else {} endif
+%
+\@ifundefined{algocf@#3}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+% side text or not?
+\expandafter\def\csname#3\endcsname{% Else
+  \@ifnextchar({\csname algocf@#3opt\endcsname}{\csname algocf@#3\endcsname}}%
+% with side text
+\expandafter\def\csname algocf@#3opt\endcsname(##1)##2{% \Else(){}
+  \csname #3@else\endcsname\ ##1\csname #1@endif\endcsname{##2}}%
+% without side text
+\expandafter\algocf@mkcmd\csname algocf@#3\endcsname[1]{% \Else{}
+  \csname #3@else\endcsname\csname #1@endif\endcsname{##1}}%
+%
+%%%% Else 
+%
+% side text or not?
+\expandafter\def\csname l#3\endcsname{% lElse
+  \@ifnextchar({\csname algocf@l#3opt\endcsname}{\csname algocf@l#3\endcsname}}%
+\expandafter\def\csname u#3\endcsname{% uElse
+  \@ifnextchar({\csname algocf@u#3opt\endcsname}{\csname algocf@u#3\endcsname}}%
+% with side text
+\expandafter\def\csname algocf@l#3opt\endcsname(##1)##2{% \lElse(){}
+  \csname #3@else\endcsname\ ##2\algocf@endline\ ##1\par}%
+\expandafter\def\csname algocf@u#3opt\endcsname(##1)##2{% \uElse(){}
+  \csname #3@else\endcsname\ ##1\csname #1@noend\endcsname{##2}}%
+% without side text
+\expandafter\algocf@mkcmd\csname algocf@l#3\endcsname[1]{% \lElse{}
+  \csname #3@else\endcsname\ ##1}%
+\expandafter\algocf@mkcmd\csname algocf@u#3\endcsname[1]{% \uElse{}
+  \csname #3@else\endcsname\csname #1@noend\endcsname{##1}}%
+}%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% For macros
+%
+\newcommand{\SetKwFor}[4]{%
+\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+% side text or not? 
+\expandafter\def\csname#1\endcsname{%For
+  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%
+\expandafter\def\csname l#1\endcsname{%For
+  \@ifnextchar({\csname algocf@l#1opt\endcsname}{\csname algocf@l#1\endcsname}}%
+% with side text
+\expandafter\def\csname algocf@#1opt\endcsname(##1)##2##3{% \For(){}{}
+  \KwSty{#2} \ArgSty{##2} \KwSty{#3} ##1\algocf@block{##3}{\@algocf@endoption{#4}}}%
+\expandafter\def\csname algocf@l#1opt\endcsname(##1)##2##3{% \lFor(){}{}
+  \KwSty{#2} \ArgSty{##2} \KwSty{#3} ##3\algocf@endline\ ##1\par}%
+% without side text
+\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[2]{% \For{}{}
+  \KwSty{#2} \ArgSty{##1} \KwSty{#3}\algocf@block{##2}{\@algocf@endoption{#4}}}%
+\expandafter\algocf@mkcmd\csname algocf@l#1\endcsname[2]{% \lFor{}{}
+  \KwSty{#2} \ArgSty{##1} \KwSty{#3} ##2}%
+}%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Repeat macros
+%
+\newcommand{\SetKwRepeat}[3]{%
+\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%
+% side text or not?
+\expandafter\def\csname#1\endcsname{% Repeat
+  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%
+\expandafter\def\csname l#1\endcsname{% lRepeat
+  \@ifnextchar({\csname algocf@l#1opt\endcsname}{\csname algocf@l#1\endcsname}}%
+% with side text
+\expandafter\def\csname algocf@#1opt\endcsname(##1)##2##3{% \Repeat(){}{}
+  \KwSty{#2} ##1\algocf@group{##3}\KwSty{#3} \ArgSty{##2}%
+  \@ifnextchar({\csname algocf@#1optopt\endcsname}{\@endalgoln}%
+}%
+\expandafter\def\csname algocf@#1optopt\endcsname(##1){% \Repeat(){}{}()
+  ##1\@endalgoln}%
+\expandafter\def\csname algocf@l#1opt\endcsname(##1)##2##3{% \lRepeat(){}{}
+  \KwSty{#2} ##3 \KwSty{#3} \ArgSty{##2}\algocf@endline\ ##1\par}%
+% without side text
+\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[2]{% \Repeat{}{}
+  \KwSty{#2}\algocf@group{##2}\KwSty{#3} \ArgSty{##1}%
+  \@ifnextchar({\csname algocf@#1optopt\endcsname}{\@endalgoln}%
+}%
+\expandafter\algocf@mkcmd\csname algocf@l#1\endcsname[2]{% \lRepeat{}{}
+  \KwSty{#2} ##2 \KwSty{#3} \ArgSty{##1}}%
+}%
+%
+% 
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%        Environments definitions     %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%%
+%% Caption management
+%%
+% for the following macros:
+% #1 is given by caption and is equal to fnum@algocf
+% #2 is the text given in argument by the user in the \caption macro
+%
+%%%%% text of caption
+\newcommand{\algocf@captionlayout}[1]{#1}%
+\newcommand{\SetAlgoCaptionLayout}[1]{%
+  \renewcommand{\algocf@captionlayout}[1]{\csname #1\endcsname{##1}}}%
+\newcommand{\algocf@capseparator}{:}%
+\newcommand{\SetAlgoCaptionSeparator}[1]{\renewcommand{\algocf@capseparator}{#1}}%
+\newcommand{\algocf@captiontext}[2]{%
+  \algocf@captionlayout{\AlCapSty{\AlCapFnt #1\algocf@typo\algocf@capseparator}\nobreakspace%
+    \AlCapNameSty{\AlCapNameFnt{}#2}}}% text of caption
+%
+%%%%% default caption of algorithm: used if no specific style caption is defined
+\newcommand{\algocf@makecaption}[2]{%
+  \addtolength{\hsize}{\algomargin}%
+  \sbox\@tempboxa{\algocf@captiontext{#1}{#2}}%
+  \ifdim\wd\@tempboxa >\hsize%     % if caption is longer than a line
+    \hskip .5\algomargin%
+    \parbox[t]{\hsize}{\algocf@captiontext{#1}{#2}}% then caption is not centered
+  \else%
+    \global\@minipagefalse%
+    \hbox to\hsize{\hfil\box\@tempboxa\hfil}% else caption is centered
+  \fi%
+  \addtolength{\hsize}{-\algomargin}%
+}%
+%
+\newsavebox\algocf@capbox%
+\newcommand{\algocf@makecaption@plain}[2]{%
+  \global\sbox\algocf@capbox{\algocf@makecaption{#1}{#2}}}%
+\newcommand{\algocf@makecaption@boxed}[2]{%
+  \addtolength{\hsize}{-\algomargin}%
+  \global\sbox\algocf@capbox{\algocf@makecaption{#1}{#2}}%
+  \addtolength{\hsize}{\algomargin}%
+ }%
+%
+\newcommand{\algocf@makecaption@tworuled}[2]{\algocf@makecaption@ruled{#1}{#2}}%
+\newcommand{\algocf@makecaption@algoruled}[2]{\algocf@makecaption@ruled{#1}{#2}}%
+\newcommand{\algocf@makecaption@boxruled}[2]{\algocf@makecaption@ruled{#1}{#2}}%
+\newcommand{\algocf@makecaption@ruled}[2]{%
+  \global\sbox\algocf@capbox{\hskip\AlCapHSkip% .5\algomargin%
+    \parbox[t]{\hsize}{\algocf@captiontext{#1}{#2}}}% then caption is not centered
+}%
+%
+\newlength{\algoheightruledefault}\setlength{\algoheightruledefault}{0.8pt}%
+\newlength{\algoheightrule}\setlength{\algoheightrule}{\algoheightruledefault}%
+\newlength{\algotitleheightruledefault}\setlength{\algotitleheightruledefault}{0.8pt}%
+\newlength{\algotitleheightrule}\setlength{\algotitleheightrule}{\algotitleheightruledefault}%
+\newcommand{\algocf@caption@plain}{\vskip\AlCapSkip\box\algocf@capbox}%
+\newcommand{\algocf@caption@boxed}{\vskip\AlCapSkip\box\algocf@capbox}%
+\newcommand{\algocf@caption@ruled}{\box\algocf@capbox\kern\interspacetitleruled\hrule  height\algotitleheightrule depth0pt\kern\interspacealgoruled}%
+\newcommand{\algocf@caption@tworuled}{\box\algocf@capbox\kern\interspacetitleruled}%
+\newcommand{\algocf@caption@algoruled}{\algocf@caption@ruled}%
+\newcommand{\algocf@caption@boxruled}{%
+  \addtolength{\hsize}{-0.8pt}%
+  \hbox to\hsize{%
+    \vrule%\hskip-0.35pt%
+    \vbox{%
+      \hrule\vskip\interspacetitleboxruled%
+      \hbox to\hsize{\unhbox\algocf@capbox\hfill}\vskip\interspacetitleboxruled%
+    }% 
+    %\hskip-0.35pt%
+    \vrule%
+  }\nointerlineskip%
+  \addtolength{\hsize}{0.8pt}%
+}%
+%
+%
+%%%% set caption for the environment
+\newcommand{\algocf@captionref}{%
+  \renewcommand{\fnum@algocf}[1]{\AlCapSty{\AlCapFnt\algorithmcfname\nobreakspace\algocf@algocfref}}%
+  \addtocounter{algocf}{-1}% \caption do a refstepcounter, so we restore the precedent value
+  \let\old@thealgocf=\thealgocf\renewcommand{\thealgocf}{{\relsize{\algocf@refrelsize}\algocf@algocfref}}%
+  \gdef\@currentlabel{\algocf@algocfref}% let the label use the new ref
+}%
+%
+% Unfortunatly, we also need our own caption to set some specific stuff for special references. But after these
+% settings, we call the original caption.
+%
+\long\def\algocf@caption@algo#1[#2]#3{%
+  \ifthenelse{\equal{\algocf@algocfref}{\relax}}{}{\algocf@captionref}%
+  \@ifundefined{hyper@refstepcounter}{\relax}{% if hyper@refstepcounter undefind, no hyperref, else...
+    \ifthenelse{\equal{\algocf@algocfref}{\relax}}{\renewcommand{\theHalgocf}{\thealgocf}}{% take algocf as Href
+      \renewcommand{\theHalgocf}{\algocf@algocfref}}%else if SetAlgoRefName done, take this name as ref.
+    \hyper@refstepcounter{algocf}%set algocf as category of ref
+  }%
+  \algocf@latexcaption{#1}[#2]{#3}% call original caption
+}%
+%
+% beamer define is own caption overrinding latex caption!
+% as we need it, we have put here the original definition
+% to handle manual ref, unfortunately we have to add one line to handle algocf@algocfref
+\long\def\algocf@latexcaption#1[#2]#3{% original definition of caption
+  \par%
+  \addcontentsline{\csname ext@#1\endcsname}{#1}%
+  {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
+  \begingroup%
+  \@parboxrestore%
+  \if@minipage%
+    \@setminipage%
+  \fi%
+  \normalsize%
+  \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par%
+  \endgroup%
+}%
+%
+% \ifx\beamer@makecaption\undefined%
+% \else% beamer detected
+\ifx\@makecaption\undefined%
+\newcommand{\@makecaption}[2]{\relax}%
+\fi%
+%%
+
+%
+% more and more packages redefine \@caption instead of just \@makecaption which makes algorithm2e
+% caption not works since based on standard \@caption. So we force the definition of \@caption to be
+% the standard one (the one from LaTeX) inside algorithm environment.
+%
+% unfortunately, makecaption is called with \ignorespace #3 so 
+% we can't do the @currentlabel definition inside \algocf@captionproctext
+\long\def\algocf@caption@proc#1[#2]#3{%
+  \ifthenelse{\boolean{algocf@nokwfunc}}{\relax}{%
+    \SetKwFunction{\algocf@captname#3@}{\algocf@captname#3@}%
+  }%
+  % we tell hyperref to use algocfproc as category and to take the appropriate ref.
+  \ifthenelse{\boolean{algocf@func}}{\def\@proc@func{algocffunc}}{\def\@proc@func{algocfproc}}%
+  \@ifundefined{hyper@refstepcounter}{\relax}{% if hyper@refstepcounter undefind, no hyperref, else...
+    \ifthenelse{\boolean{algocf@procnumbered}}{% 
+      \expandafter\def\csname theH\@proc@func\endcsname{\algocf@captname#3@}%if procnumbered, take \thealgocf as ref
+    }{%
+      \expandafter\def\csname theH\@proc@func\endcsname{\algocf@captname#3@}%else take procedure or function name
+    }%
+    \hyper@refstepcounter{\@proc@func}%
+  }%
+  \ifthenelse{\boolean{algocf@procnumbered}}{\relax}{%
+    \addtocounter{algocf}{-1}% \caption do a refstepcounter, so we restore the precedent value
+    \gdef\@currentlabel{\algocf@captname#3@}% let the label be the name of the function, not the counter
+  }%
+  \ifthenelse{\equal{\algocf@captparam#2@}{\arg@e}}{% if no paramater, we remove the ()
+    \algocf@latexcaption{#1}[\algocf@procname\nobreakspace\algocf@captname#2@]{#3}%
+  }{%                                                 else we give the complete name
+    \algocf@latexcaption{#1}[\algocf@procname\nobreakspace#2]{#3}%
+  }%
+}%
+%%
+%%% setcaption
+\newcommand{\algocf@setcaption}{%
+  \ifthenelse{\boolean{algocf@procenvironment}}{% if proc environment, caption text must be changed
+    \let\algocf@oldcaptiontext=\algocf@captiontext%
+    \renewcommand{\algocf@captiontext}[2]{%
+      \algocf@captionproctext{##1}{##2}%
+    }%
+  }{}%
+  \let\algocf@savecaption=\@caption%
+  \ifthenelse{\boolean{algocf@procenvironment}}{\let\@caption=\algocf@caption@proc}{\let\@caption=\algocf@caption@algo}%
+  \let\algocf@oldmakecaption=\@makecaption%
+  \renewcommand{\@makecaption}[2]{%
+    \expandafter\csname algocf@makecaption@\algocf@style\endcsname{##1}{##2}%
+  }%
+}%
+%
+%%%%% reset caption
+%
+% since we have force the LaTeX caption for algorithm environment, we must go back to the caption
+% used in the text.
+\newcommand{\algocf@resetcaption}{%
+  \ifthenelse{\boolean{algocf@procenvironment}}{% if proc environment
+    \let\thealgocf=\old@thealgocf% restore normal counter printing
+    \let\algocf@captiontext=\algocf@oldcaptiontext% restore normal caption text
+  }{}%
+  \let\@caption=\algocf@savecaption% now restore caption outside algo/proc/func environment
+  \let\@makecaption=\algocf@oldmakecaption% and restore makecaption outside outside algo/proc/func environment
+  \algocf@resetfnum%
+}%
+%
+%%%%% nocaptionofalgo and restorecaptionofalgo --
+\newcommand{\NoCaptionOfAlgo}{%
+  \let\@old@algocf@captiontext=\algocf@captiontext%
+  \renewcommand{\algocf@captiontext}[2]{\AlCapNameSty{\AlCapNameFnt{}##2}}%
+}%
+\newcommand{\RestoreCaptionOfAlgo}{%
+  \let\algocf@captiontext=\@old@algocf@captiontext%
+}%
+%
+% ----------------------  algocf environment
+%
+\newcounter{algocfline}%                    % new counter to make lines numbers be internally 
+\setcounter{algocfline}{0}%                 % different in different algorithms
+\newcounter{algocfproc}% counter to count all algo environment (proc, func), just used by hyperref to avoir "same
+\setcounter{algocfproc}{0}% identifier" error caused by algocf being set to '-' for procedure or function or not
+  % changed if no caption is given.
+%
+\expandafter\ifx\csname algocf@within\endcsname\relax% if \algocf@within doesn't exist
+\newcounter{algocf}%                        % just define a new counter
+\renewcommand{\thealgocf}{\@arabic\c@algocf}% and the way it is printed
+\else%                                     else
+\newcounter{algocf}[\algocf@within]%        % counter is numbered within \algocf@within
+\renewcommand\thealgocf{\csname the\algocf@within\endcsname.\@arabic\c@algocf}%
+\fi%
+%
+\def\fps@algocf{htbp}%        % default
+\def\ftype@algocf{10}%        % float type
+\def\ext@algocf{\algocf@list} % loa by default, lof if figure option used
+\newcommand{\fnum@algocf}[1]{\AlCapSty{\AlCapFnt\algorithmcfname\nobreakspace\thealgocf}}%
+\newcommand{\algocf@resetfnum}{\renewcommand{\fnum@algocf}[1]{\AlCapSty{\AlCapFnt\algorithmcfname\nobreakspace\thealgocf}}}%
+\newenvironment{algocf}%      % float environment for algorithms
+               {\@float{algocf}}%
+               {\end@float}%
+\newenvironment{algocf*}%     % float* environment for algorithms
+               {\@dblfloat{algocf}}%
+               {\end@dblfloat}%
+%
+\def\algocf@seclistalgo{}%
+\ifx\l@chapter\undefined\let\algocf@seclistalgo=\section\else\let\algocf@seclistalgo=\chapter\fi%
+\@ifundefined{if@restonecol}{\newif\if@restonecol}\relax%
+\newcommand\listofalgocfs{%
+     \ifx\algocf@seclistalgo\chapter%
+      \if@twocolumn\@restonecoltrue\onecolumn\else\@restonecolfalse\fi%
+    \fi%
+     \algocf@seclistalgo*{\listalgorithmcfname}%
+       \@mkboth{\MakeUppercase\listalgorithmcfname}%
+               {\MakeUppercase\listalgorithmcfname}%
+     \@starttoc{loa}%
+    \ifx\algocf@seclistalgo\chapter%
+      \if@restonecol\twocolumn\fi%
+    \fi%
+}
+%
+\newcommand*\l@algocf{\@dottedtocline{1}{1em}{2.3em}}% line of the list
+%
+% ----------------------  algorithm environment
+%
+%%%%%%%
+%%
+%% Algorithm environment definition
+%%
+%%%%%%%
+%%
+%
+\newsavebox\algocf@algoframe%
+\def\@algocf@pre@plain{\relax}%  action to be done before printing the algo.
+\def\@algocf@post@plain{\relax}% action to be done after printing the algo.
+\def\@algocf@capt@plain{bottom}% where the caption should be localized.
+\def\@algocf@pre@boxed{\noindent\begin{lrbox}{\algocf@algoframe}}
+\def\@algocf@post@boxed{\end{lrbox}\framebox[\hsize]{\box\algocf@algoframe}\par}%
+\def\@algocf@capt@boxed{under}%
+\def\@algocf@pre@ruled{\hrule height\algoheightrule depth0pt\kern\interspacetitleruled}%
+\def\@algocf@post@ruled{\kern\interspacealgoruled\hrule height\algoheightrule\relax}%
+\def\@algocf@capt@ruled{top}%
+\def\@algocf@pre@algoruled{\hrule height\algoheightrule depth0pt\kern\interspacetitleruled}%
+\def\@algocf@post@algoruled{\kern\interspacealgoruled\hrule height\algoheightrule \relax}%
+\def\@algocf@capt@algoruled{top}%
+\def\@algocf@pre@tworuled{\hrule height\algoheightrule depth0pt\kern\interspacetitleruled}%
+\def\@algocf@post@tworuled{\kern\interspacealgoruled\hrule height\algoheightrule\relax}%
+\def\@algocf@capt@tworuled{top}%
+\def\@algocf@pre@boxruled{\noindent\begin{lrbox}{\algocf@algoframe}}%
+\def\@algocf@post@boxruled{\end{lrbox}\framebox[\hsize]{\box\algocf@algoframe}\par}%
+\def\@algocf@capt@boxruled{above}%
+%
+\newcommand{\noalgocaption}{\def\@algocf@capt@ruled{none}}
+%
+%% before algocf or figure environment
+\newcommand{\@algocf@init@caption}{%
+  \ifthenelse{\boolean{algocf@procenvironment}}{% if we are inside a procedure/function environment
+    \@algocf@proctitleofalgo% set Titleofalgo to Procedure: or Function:
+                            % accordingly to the environment
+    \let\old@thealgocf=\thealgocf\ifthenelse{\boolean{algocf@procnumbered}}{\relax}{%
+      \renewcommand{\thealgocf}{-}}%
+  }{% else inside environment algorithm
+    \@algocf@algotitleofalgo% fix name for \Titleofalgo to \algorithmcfname
+  }%
+  \algocf@setcaption%       set caption to our caption style
+}%
+%
+\newcommand{\@algofloatboxreset}{\@setminipage}
+\newcommand{\@algocf@init}{%
+  \refstepcounter{algocfline}%
+  \stepcounter{algocfproc}%to have a different counter for each environment and being abble to make the difference
+    %between href of algoline in different algorithms.
+  \ifthenelse{\boolean{algocf@optnoend}}{%
+      \renewcommand{\algocf@block}[2]{\algocf@group{##1}}%
+    }{%
+      \renewcommand{\algocf@block}[2]{\algocf@@block{##1}{##2}}%
+    }%
+}%
+%% after the end of algocf or figure environment
+\newcommand{\@algocf@term@caption}{%
+  \algocf@resetcaption% restore original caption
+}%
+%
+\newcommand{\@algocf@term}{%
+  \setboolean{algocf@algoH}{false}% no H by default
+  \ifthenelse{\boolean{algocf@optnoend}}{%
+    \renewcommand{\algocf@block}[2]{\algocf@@block{##1}{##2}}%
+  }{%
+    \renewcommand{\algocf@block}[2]{\algocf@group{##1}}%
+  }%
+  \SetAlgoRefName{\relax}%
+}%
+%
+%%%%%%%%%%%%%%%%%
+%% makethealgo: macro which print effectively the algo in its box
+%% 
+\newsavebox\algocf@algobox%
+\newcommand{\algocf@makethealgo}{%
+  \vtop{%
+    % place caption above if needed  bye the style
+    \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{above}}%
+    {\csname algocf@caption@\algocf@style\endcsname}{}%
+    %
+    % precommand according to the style
+    \csname @algocf@pre@\algocf@style\endcsname%
+    % place caption at top if needed  bye the style
+     \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{top}}%
+     {\csname algocf@caption@\algocf@style\endcsname}{}%
+    %
+    \box\algocf@algobox% the algo
+    % place caption at bottom if needed  bye the style
+     \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{bottom}}%
+     {\csname algocf@caption@\algocf@style\endcsname}{}%
+    % postcommand according to the style
+    \csname @algocf@post@\algocf@style\endcsname%
+    % place caption under if needed  bye the style
+     \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{under}}%
+     {\csname algocf@caption@\algocf@style\endcsname}{}%
+  }%
+}%
+%%%%%%%%%%%%%%%%%%%
+%
+%% at the beginning of algocf or figure environment
+\newcommand{\@algocf@start}{%
+  \@algoskip%
+  \begin{lrbox}{\algocf@algobox}%
+  \setlength{\algowidth}{\hsize}%
+  \vbox\bgroup% save all the algo in a box
+  \hbox to\algowidth\bgroup\hbox to \algomargin{\hfill}\vtop\bgroup%
+  \ifthenelse{\boolean{algocf@slide}}{\parskip 0.5ex\color{black}}{}%
+  % initialization
+  \addtolength{\hsize}{-1.5\algomargin}%
+  \let\@mathsemicolon=\;\def\;{\ifmmode\@mathsemicolon\else\@endalgoln\fi}%
+  \raggedright\AlFnt{}%
+  \ifthenelse{\boolean{algocf@slide}}{\IncMargin{\skipalgocfslide}}{}%
+  \@algoinsideskip%
+}%
+%
+%% at the end of algocf or figure environment
+\newcommand{\@algocf@finish}{%
+  \@algoinsideskip%
+  \egroup%end of vtop which contain all the text
+  \hfill\egroup%end of hbox wich contains [margin][vtop]
+  \ifthenelse{\boolean{algocf@slide}}{\DecMargin{\skipalgocfslide}}{}%
+  %
+  \egroup%end of main vbox
+  \end{lrbox}%
+  \algocf@makethealgo% print the algo
+  \@algoskip%
+  % restore dimension and macros
+  \setlength{\hsize}{\algowidth}%
+  \lineskip\normallineskip\setlength{\skiptotal}{\@defaultskiptotal}%
+  \let\;=\@mathsemicolon%  
+}%
+%
+%%%%%%%%%%%%%%%%%%%%
+%% basic definition of the environment algorithm
+%%
+%
+\newboolean{algocf@procenvironment}\setboolean{algocf@procenvironment}{false}%
+\newboolean{algocf@func}\setboolean{algocf@func}{false}%
+\newboolean{algocf@algoH}\setboolean{algocf@algoH}{false}%
+\newboolean{algocf@algostar}\setboolean{algocf@algostar}{false}%
+%
+%%% environment for {algorithm}[H]
+\newenvironment{algocf@Here}{\noindent%
+  \def\@captype{algocf}% if not defined, caption exit with an error
+  \begin{minipage}{\hsize}%
+}{%
+  \end{minipage}%\par%
+}%
+%%% real algorithm environment which manages H and * option
+%    \let\algocf@originalfloatboxreset=\@floatboxreset%
+%    \let\@floatboxreset=\@algofloatboxreset%
+\newenvironment{algocf@algorithm}[1][htbp]{
+   \@algocf@init%
+   \ifthenelse{\equal{\algocf@float}{figure}}{% if option figure set
+     \ifthenelse{\boolean{algocf@algostar}}{% if algorithm* with figure option
+       \begin{figure*}[#1]% call figure*
+     }{% else algorithm environment with figure option
+       \begin{figure}[#1]%  call figure
+     }%
+   }{% else normal algorithm environment
+     \@algocf@init@caption%
+     \ifthenelse{\equal{#1}{H}}{% if [H] algorithm
+       \if@twocolumn\@latex@error{[H] in two columns mode is not allowed for algorithms}\fi% TODO: SCREAM if H in two colums!
+       \setboolean{algocf@algoH}{true}\begin{algocf@Here}% call corresponding environment
+     }{% else floating algorithm environment
+       \ifthenelse{\boolean{algocf@algostar}}{% if algorithm*
+         \begin{algocf*}[#1]% call algocf*
+       }{% else algorithm environment
+         \begin{algocf}[#1]%  call algcf
+       }%
+     }%
+   }% fin test option figure ou pas
+   \@algocf@start% 
+   \@ResetCounterIfNeeded%
+   \algocf@linesnumbered\ignorespaces%
+}{%
+  \@algocf@finish%
+  \ifthenelse{\equal{\algocf@float}{figure}}{%
+     \ifthenelse{\boolean{algocf@algostar}}{% if algorithm* with figure option
+       \end{figure*}% call figure*
+     }{% else algorithm environment with figure option
+       \end{figure}%  call figure
+     }%
+  }{%
+    \@algocf@term@caption%
+    \ifthenelse{\boolean{algocf@algoH}}{% if [H] algorithm
+       \end{algocf@Here}\par% call corresponding environment
+     }{% else floating algorithm environment
+       \ifthenelse{\boolean{algocf@algostar}}{% if algorithm*
+         \end{algocf*}% call algocf*
+       }{% else algorithm environment
+         \end{algocf}%  call algocf
+       }%
+     }%
+  }%
+  \@algocf@term\ignorespacesafterend%
+}%
+%
+%%% user algorithm environment
+\newenvironment{\algocf@envname}[1][htbp]{%
+  \setboolean{algocf@algostar}{false}%
+  \setboolean{algocf@procenvironment}{false}\gdef\algocfautorefname{\algorithmautorefname}%
+  \begin{algocf@algorithm}[#1]\ignorespaces%
+}{%
+  \end{algocf@algorithm}\ignorespacesafterend%
+}%
+%%% user algorithm* environment
+\newenvironment{\algocf@envname*}[1][htbp]{%
+  \setboolean{algocf@algostar}{true}%
+  \setboolean{algocf@procenvironment}{false}\gdef\algocfautorefname{\algorithmautorefname}%
+  \begin{algocf@algorithm}[#1]\ignorespaces%
+}{%
+  \end{algocf@algorithm}\ignorespacesafterend%
+}%
+%
+%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%
+\expandafter\newcommand\csname\algocf@listofalgorithms\endcsname{%
+  \ifthenelse{\equal{\algocf@float}{figure}}{\listoffigures}{\listofalgocfs}%
+}%
+%%%
+%%%
+%
+% ----------------------  procedure and function environments
+%
+%
+% -- new style (used in particular in the caption of function and procedure environments)
+%
+% three macros to extract parts of the caption
+\gdef\algocf@captname#1(#2)#3@{#1}  % keep characters before the first brace
+\gdef\algocf@captparam#1(#2)#3@{#2} % keep character in between the braces
+\gdef\algocf@captother#1(#2)#3@{#3} % keep character after the braces
+%
+%%% Text of caption for Procedure or Function
+\newcommand{\algocf@captionproctext}[2]{%
+  {%
+    \ProcSty{\ProcFnt\algocf@procname\ifthenelse{\boolean{algocf@procnumbered}}{\nobreakspace\thealgocf\algocf@typo\algocf@capseparator}{\relax}}%
+    \nobreakspace\ProcNameSty{\ProcNameFnt\algocf@captname #2@}% Name of the procedure in ProcName Style. 
+    \ifthenelse{\equal{\algocf@captparam #2@}{\arg@e}}{}{% if no argument, write nothing
+      \ProcNameSty{\ProcNameFnt(}\ProcArgSty{\ProcArgFnt\algocf@captparam #2@}\ProcNameSty{\ProcNameFnt)}%else put arguments in ProcArgSty:
+    }% endif
+    \algocf@captother #2@%
+  }%
+}%
+%
+%
+% -- procedure and function environments are defined from algocf@algorithm environment
+%
+\newenvironment{procedure}[1][htbp]{%
+  \setboolean{algocf@algostar}{false}%
+  \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{false}%
+  \newcommand{\algocf@procname}{\@algocf@procname}\gdef\algocfprocautorefname{\procedureautorefname}%
+  \begin{algocf@algorithm}[#1]\ignorespaces%
+}{%
+  \end{algocf@algorithm}\ignorespacesafterend%
+}%
+\newenvironment{function}[1][htbp]{%
+  \setboolean{algocf@algostar}{false}%
+  \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{true}%
+  \newcommand{\algocf@procname}{\@algocf@funcname}\gdef\algocffuncautorefname{\functionautorefname}%
+  \begin{algocf@algorithm}[#1]\ignorespaces%
+}{%
+  \end{algocf@algorithm}\ignorespacesafterend%
+}%
+%
+\newenvironment{procedure*}[1][htbp]{%
+  \setboolean{algocf@algostar}{true}%
+  \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{false}%
+  \newcommand{\algocf@procname}{\@algocf@procname}\gdef\algocfprocautorefname{\procedureautorefname}%
+  \begin{algocf@algorithm}[#1]\ignorespaces%
+}{%
+  \end{algocf@algorithm}\ignorespacesafterend%
+}%
+\newenvironment{function*}[1][htbp]{%
+  \setboolean{algocf@algostar}{true}%
+  \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{true}%
+  \newcommand{\algocf@procname}{\@algocf@funcname}\gdef\algocffuncautorefname{\functionautorefname}%
+  \begin{algocf@algorithm}[#1]\ignorespaces%
+}{%
+  \end{algocf@algorithm}\ignorespacesafterend%
+}%
+%
+%
+%%%%%%%%%%%%%%%%%%%%
+%% definition of algondfloat environment
+%%
+\ifthenelse{\boolean{algocf@endfloat}}{% if endfloat option then
+\newcommand{\algoplace}{% macro which is used to writhe algorithm about there
+   \begin{center}%
+     [\algorithmcfname~\thepostfig\ about here.]%
+   \end{center}%
+}%
+\newcommand{\algoendfloat}{% use as a \begin{algoendfloat} environment to start scanning of line
+%  \immediate\openout\@mainfff\jobname.fff%
+  \efloat@condopen{fff}
+  \efloat@iwrite{fff}{\string\begin{\algocf@envname}}%
+    \if@domarkers%
+       \ifthenelse{\equal{\algocf@list}{lof}}{%
+         \addtocounter{postfig}{1}%
+       }{%
+         \addtocounter{postalgo}{1}%
+       }%
+       \algoplace%
+    \fi%
+    \bgroup%
+    \let\do\ef@makeinnocent\dospecials%
+    \ef@makeinnocent\^^L% and whatever other special cases
+    \endlinechar`\^^M \catcode`\^^M=12 \ef@xalgocfendfloat}%
+}{\relax}%%%% end of endfloat option ifthenelse
+%% some macros useful for endfloat option that cannot be defined inside the ifthenelse
+%scan algoendfloat algorithm and write the text into .fff file
+{\catcode`\^^M=12 \endlinechar=-1 %
+ \gdef\ef@xalgocfendfloat#1^^M{% scan the lines inside algoendfloat environment being read by latex
+   \def\test{#1}% test is the line being currently scan by latex
+   \ifx\test\ef@endalgocftest% if it is \end{algoendfloat}
+     \def\next{% define next as to not continue the scan and write \end{algorithm} into .fff file
+       \egroup\end{algoendfloat}%
+       \efloat@iwrite{fff}{\string\end{\algocf@envname}}%
+       \efloat@iwrite{fff}{\string\efloatseparator}%
+       \efloat@iwrite{fff}{ }%
+     }%
+     \else% else write the current line being scanned by latex and set next to continue the scan
+       \efloat@iwrite{fff}{#1}%
+       \let\next\ef@xalgocfendfloat%
+     \fi% endif
+     \next}% next is continue if it was else condition, else it does not continue the scan and write end to file
+}%
+% test if the scan is finish by looking at the string \end{algoendfloat}
+{\escapechar=-1%
+ \xdef\ef@endalgocftest{\string\\end\string\{algoendfloat\string\}}%
+}%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% 
+\newcommand{\TitleOfAlgo}[1]{\@titleprefix\ 
+  \TitleSty{#1}\par\smallskip}%
+%
+\newcommand{\SetAlgorithmName}[3]{%
+  \renewcommand{\listalgorithmcfname}{#3}%
+  \renewcommand{\algorithmcfname}{#1}%
+  \renewcommand{\algorithmautorefname}{#2}%
+}%
+%
+\newcommand{\algocf@refrelsize}{-2}\newcommand{\SetAlgoRefRelativeSize}[1]{\renewcommand{\algocf@refrelsize}{#1}}%
+\newcommand{\SetAlgoRefName}[1]{%
+  \renewcommand{\algocf@algocfref}{#1}%
+}%
+%
+%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% 
+% -------------------------   Default Definitions
+%
+%%
+%%
+%
+\SetKwComment{tcc}{/* }{ */}%
+\SetKwComment{tcp}{// }{}%
+%
+%\newcommand{\algocf@defaults@common}{
+%
+%
+% french keywords
+%
+%\SetKwInOut{AlgDonnees}{Donn\'ees}\SetKwInOut{AlgRes}{R\'esultat}
+\SetKwInput{Donnees}{Donn\'ees}%
+\SetKwInput{Res}{R\'esultat}%
+\SetKwInput{Entree}{Entr\'ees}%
+\SetKwInput{Sortie}{Sorties}%
+\SetKw{KwA}{\`a}%
+\SetKw{Retour}{retourner}%
+\SetKwBlock{Deb}{d\'ebut}{fin}%
+\SetKwRepeat{Repeter}{r\'ep\'eter}{jusqu'\`a}%
+%
+\SetKwIF{Si}{SinonSi}{Sinon}{si}{alors}{sinon si}{sinon}{fin si}%
+\SetKwSwitch{Suivant}{Cas}{Autre}{suivant}{faire}{cas o\`u}{autres cas}{fin d'alternative}%
+\SetKwFor{Pour}{pour}{faire}{fin pour}%
+\SetKwFor{PourPar}{pour}{faire en parallèle}{fin pour}%
+\SetKwFor{PourCh}{pour chaque}{faire}{fin pour chaque}%
+\SetKwFor{PourTous}{pour tous les}{faire}{fin pour tous}%
+\SetKwFor{Tq}{tant que}{faire}{fin tq}%
+%
+% english keywords
+%
+\SetKwInput{KwIn}{Input}%
+\SetKwInput{KwOut}{Output}%
+\SetKwInput{KwData}{Data}%
+\SetKwInput{KwResult}{Result}%
+\SetKw{KwTo}{to}
+\SetKw{KwRet}{return}%
+\SetKw{Return}{return}%
+\SetKwBlock{Begin}{begin}{end}%
+\SetKwRepeat{Repeat}{repeat}{until}%
+%
+\SetKwIF{If}{ElseIf}{Else}{if}{then}{else if}{else}{end if}%
+\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{end switch}%
+\SetKwFor{For}{for}{do}{end for}%
+\SetKwFor{ForPar}{for}{do in parallel}{end forpar}
+\SetKwFor{ForEach}{foreach}{do}{end foreach}%
+\SetKwFor{ForAll}{forall the}{do}{end forall}%
+\SetKwFor{While}{while}{do}{end while}%
+%
+% --- German keywords
+%
+\SetKwInput{Ein}{Eingabe}%KwIn
+\SetKwInput{Aus}{Ausgabe}%KwOut
+\SetKwInput{Daten}{Daten}%KwData
+\SetKwInput{Ergebnis}{Ergebnis}%KwResult
+\SetKw{Bis}{bis}%KwTo
+\SetKw{KwZurueck}{zur\"uck}%KwRet
+\SetKw{Zurueck}{zur\"uck}%Return
+\SetKwBlock{Beginn}{Beginn}{Ende}%Begin
+\SetKwRepeat{Wiederh}{wiederhole}{bis}%Repeat
+%
+\SetKwIF{Wenn}{SonstWenn}{Sonst}{wenn}{dann}{sonst wenn}{sonst}{Ende wenn}%gIf
+\SetKwSwitch{Unterscheide}{Fall}{Anderes}{unterscheide}{tue}{Fall}{sonst}{Ende Unt.}%Switch
+\SetKwFor{Fuer}{f\"ur}{tue}{Ende f\"ur}%For
+\SetKwFor{FuerPar}{f\"ur}{tue gleichzeitig}{Ende gleichzeitig}%ForPar
+\SetKwFor{FuerJedes}{f\"ur jedes}{tue}{Ende f\"ur}%ForEach
+\SetKwFor{FuerAlle}{f\"ur alle}{tue}{Ende f\"ur}%ForAll
+\SetKwFor{Solange}{solange}{tue}{Ende solange}%While
+%
+% --- Czech keywords
+%
+\SetKwInput{Vst}{Vstup}%
+\SetKwInput{Vyst}{V\'{y}stup}%
+\SetKwInput{Vysl}{V\'{y}sledek}%
+%
+% --- Portuguese keywords
+%
+\SetKwInput{Entrada}{Entrada}%
+\SetKwInput{Saida}{Sa\'{i}da}%
+\SetKwInput{Dados}{Dados}%
+\SetKwInput{Resultado}{Resultado}%
+\SetKw{Ate}{at\'{e}}
+\SetKw{KwRetorna}{retorna}%
+\SetKw{Retorna}{retorna}%
+\SetKwBlock{Inicio}{in\'{i}cio}{fim}%
+\SetKwRepeat{Repita}{repita}{at\'{e}}%
+%
+\SetKwIF{Se}{SenaoSe}{Senao}{se}{ent\~{a}o}{sen\~{a}o se}{sen\~{a}o}{fim se}%
+\SetKwSwitch{Selec}{Caso}{Outro}{selecione}{fa\c{c}a}{caso}{sen\~{a}o}{fim selec}%
+\SetKwFor{Para}{para}{fa\c{c}a}{fim para}%
+\SetKwFor{ParaPar}{para}{fa\c{c}a em paralelo}{fim para}
+\SetKwFor{ParaCada}{para cada}{fa\c{c}a}{fim para cada}%
+\SetKwFor{ParaTodo}{para todo}{fa\c{c}a}{fim para todo}%
+\SetKwFor{Enqto}{enquanto}{fa\c{c}a}{fim enqto}%
+%
+% --- Italian keywords
+%
+\SetKwInput{KwIng}{Ingresso}%
+\SetKwInput{KwUsc}{Uscita}%
+\SetKwInput{KwDati}{Dati}%
+\SetKwInput{KwRisult}{Risultato}%
+\SetKw{KwA}{a}%
+\SetKw{KwRitorna}{ritorna}%
+\SetKw{Ritorna}{ritorna}%
+\SetKwBlock{Inizio}{inizio}{fine}%
+\SetKwRepeat{Ripeti}{ripeti}{finché}%
+%
+\SetKwIF{Sea}{AltSe}{Altrimenti}{se}{allora}{altrimenti se}{allora}{fine se}%
+\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{endsw}%
+\SetKwFor{Per}{per}{fai}{fine per}%
+\SetKwFor{PerPar}{per}{fai in parallelo}{fine per}%
+\SetKwFor{PerCiascun}{per ciascun}{fai}{fine per ciascun}%
+\SetKwFor{PerTutti}{per tutti i}{fai}{fine per tutti}%
+\SetKwFor{Finche}{finché}{fai}{fine finché}%
+%
+% --- End 
+%}
+%
+%\algocf@defaults@common
+%
+% option onelanguage redefinition
+%
+\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{french}}{%
+\SetKwInput{KwIn}{Entr\'ees}%
+\SetKwInput{KwOutSortie}{Sorties}%
+\SetKwInput{KwData}{Donn\'ees}%
+\SetKwInput{KwResult}{R\'esultat}%
+\SetKw{KwTo}{\`a}%
+\SetKw{KwRet}{retourner}%
+\SetKw{Return}{retourner}%
+\SetKwBlock{Begin}{d\'ebut}{fin}%
+\SetKwRepeat{Repeat}{r\'ep\'eter}{jusqu'\`a}%
+%
+\SetKwIF{If}{ElseIf}{Else}{si}{alors}{sinon si}{sinon}{fin si}%
+\SetKwSwitch{Switch}{Case}{Other}{suivant}{faire}{cas o\`u}{autres cas}{fin d'alternative}%
+\SetKwFor{For}{pour}{faire}{fin pour}%
+\SetKwFor{ForPar}{pour}{faire en parallèle}{fin pour}%
+\SetKwFor{ForEach}{pour chaque}{faire}{fin pour chaque}%
+\SetKwFor{ForAll}{pour tous les}{faire}{fin pour tous}%
+\SetKwFor{While}{tant que}{faire}{fin tq}%
+}{}%
+\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{german}}{%
+\SetKwInput{KwIn}{Eingabe}%KwIn
+\SetKwInput{KwOut}{Ausgabe}%KwOut
+\SetKwInput{KwData}{Daten}%KwData
+\SetKwInput{KwResult}{Ergebnis}%KwResult
+\SetKw{KwTo}{bis}%KwTo
+\SetKw{KwRet}{zur\"uck}%KwRet
+\SetKw{Return}{zur\"uck}%Return
+\SetKwBlock{Begin}{Beginn}{Ende}%Begin
+\SetKwRepeat{Repeat}{wiederhole}{bis}%Repeat
+%
+\SetKwIF{If}{ElseIf}{Else}{wenn}{dann}{sonst wenn}{sonst}{Ende wenn}%gIf
+\SetKwSwitch{Switch}{Case}{Other}{unterscheide}{tue}{Fall}{sonst}{Ende Unt.}%Switch
+\SetKwFor{For}{f\"ur}{tue}{Ende f\"ur}%For
+\SetKwFor{ForPar}{f\"ur}{tue gleichzeitig}{Ende gleichzeitig}%ForPar
+\SetKwFor{ForEach}{f\"ur jedes}{tue}{Ende f\"ur}%ForEach
+\SetKwFor{ForAll}{f\"ur alle}{tue}{Ende f\"ur}%ForAll
+\SetKwFor{While}{solange}{tue}{Ende solange}%While
+}{}%
+\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{portugues}}{%
+\SetKwInput{KwIn}{Entrada}%
+\SetKwInput{KwOut}{Sa\'{i}da}%
+\SetKwInput{KwData}{Dados}%
+\SetKwInput{KwResult}{Resultado}%
+\SetKw{KwTo}{at\'{e}}
+\SetKw{KwRet}{retorna}%
+\SetKw{Return}{retorna}%
+\SetKwBlock{Begin}{in\'{i}cio}{fim}%
+\SetKwRepeat{Repeat}{repita}{at\'{e}}%
+%
+\SetKwIF{If}{ElseIf}{Else}{se}{ent\~{a}o}{sen\~{a}o se}{sen\~{a}o}{fim se}%
+\SetKwSwitch{Switch}{Case}{Other}{selecione}{fa\c{c}a}{caso}{sen\~{a}o}{fim selec}%
+\SetKwFor{For}{para}{fa\c{c}a}{fim para}%
+\SetKwFor{ForPar}{para}{fa\c{c}a em paralelo}{fim para}
+\SetKwFor{ForEach}{para cada}{fa\c{c}a}{fim para cada}%
+\SetKwFor{ForAll}{para todo}{fa\c{c}a}{fim para todo}%
+\SetKwFor{While}{enquanto}{fa\c{c}a}{fim enqto}%
+}{}%
+\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{italiano}}{%
+\SetKwInput{KwIn}{Ingresso}%
+\SetKwInput{KwOut}{Uscita}%
+\SetKwInput{KwData}{Dati}%
+\SetKwInput{KwResult}{Risultato}%
+\SetKw{KwTo}{a}%
+\SetKw{KwRet}{ritorna}%
+\SetKw{Return}{ritorna}%
+\SetKwBlock{Begin}{inizio}{fine}%
+\SetKwRepeat{Repeat}{ripeti}{finché}%
+%
+\SetKwIF{If}{ElseIf}{Else}{se}{allora}{altrimenti se}{allora}{fine se}%
+\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{endsw}%
+\SetKwFor{For}{per}{fai}{fine per}%
+\SetKwFor{ForPar}{per}{fai in parallelo}{fine per}%
+\SetKwFor{ForEach}{per ciascun}{fai}{fine per ciascun}%
+\SetKwFor{ForAll}{per tutti i}{fai}{fine per tutti}%
+\SetKwFor{While}{finché}{fai}{fine finché}%
+}{}%
+%
+%%%% old commands compatibility
+%
+\ifthenelse{\boolean{algocf@oldcommands}}{%
+\newcommand{\SetNoLine}{\SetAlgoNoLine}%
+\newcommand{\SetVline}{\SetAlgoVlined}%
+\newcommand{\SetLine}{\SetAlgoLined}%
+%
+\newcommand{\dontprintsemicolon}{\DontPrintSemicolon}%
+\newcommand{\printsemicolon}{\PrintSemicolon}%
+\newcommand{\incmargin}[1]{\IncMargin{#1}}%
+\newcommand{\decmargin}[1]{\DecMargin{-#1}}%
+\newcommand{\setnlskip}[1]{\SetNlSkip{#1}}%
+\newcommand{\Setnlskip}[1]{\SetNlSkip{#1}}%
+\newcommand{\setalcapskip}[1]{\SetAlCapSkip{#1}}%
+\newcommand{\setalcaphskip}[1]{\SetAlCapHSkip{#1}}%
+\newcommand{\nlSty}[1]{\NlSty{#1}}%
+\newcommand{\Setnlsty}[3]{\SetNlSty{#1}{#2}{#3}}%
+\newcommand{\linesnumbered}{\LinesNumbered}%
+\newcommand{\linesnotnumbered}{\LinesNotNumbered}%
+\newcommand{\linesnumberedhidden}{\LinesNumberedHidden}%
+\newcommand{\showln}{\ShowLn}%
+\newcommand{\showlnlabel}[1]{\ShowLnLabel{#1}}%
+\newcommand{\nocaptionofalgo}{\NoCaptionOfAlgo}%
+\newcommand{\restorecaptionofalgo}{\RestoreCaptionOfAlgo}%
+\newcommand{\restylealgo}[1]{\RestyleAlgo{#1}}%
+%
+\newcommand{\Titleofalgo}[1]{\TitleOfAlgo{#1}}%
+\SetKwIF{gSi}{gSinonSi}{gSinon}{si}{alors}{sinon si}{sinon}{fin si}%
+\SetKwIF{gIf}{gElsIf}{gElse}{if}{then}{else if}{else}{end if}%
+\SetKwIF{gIf}{gElseIf}{gElse}{if}{then}{else if}{else}{end if}%
+\SetKwIF{gWenn}{gSonstWenn}{gSonst}{wenn}{dann}{sonst wenn}{sonst}{Ende wenn}%gIf
+\SetKwIF{gSe}{gSenaoSe}{gSenao}{se}{ent\~{a}o}{sen\~{a}o se}{sen\~{a}o}{fim se}%
+\SetKwIF{gSea}{gAltSe}{gAltrimenti}{se}{allora}{altrimenti se}{allora}{fine se}%
+}{%
+  \relax%
+}%
+%
+%
+%
+%%
+%%%
+%%%% END
\ No newline at end of file
diff --git a/ipol/ipol_style_201905/article.bib b/ipol/ipol_style_201905/article.bib
new file mode 100644
index 0000000000000000000000000000000000000000..78fdecd536f3630ac9004e699ff18bbc6e495030
--- /dev/null
+++ b/ipol/ipol_style_201905/article.bib
@@ -0,0 +1,76 @@
+@article{article,
+author = {P.~Meer, J.M.~Jolion, and A.~Rosenfeld},
+journal = {IEEE Transactions on Pattern Analysis and Machine
+                  Intelligence},
+number = {2},
+pages = {216--223},
+title = {A fast parallel algorithm for blind estimation of noise
+                  variance},
+volume = {12},
+year = {1990},
+doi = {10.1109/34.44408},
+url = {http://dx.doi.org/10.1109/34.44408},
+}
+
+@unpublished{preprint,
+author = {A.~Ciomaga, L.~Moisan, P.~Monasse, and J.M.~Morel},
+note = {preprint},
+title = {Image Curvature Microscope},
+year = {2010},
+url = {http://www.ipol.im/pub/pre/H4/},
+}
+
+@inproceedings{conference,
+author = {D.~Zoran and Y.~Weiss},
+booktitle = {Proceedings of the 13th International Conference on
+                  Computer Vision (ICCV)},
+note = {\url{http://dx.doi.org/10.1109/ICCV.2011.6126278}},
+pages = {479–486},
+title = {From learning models of natural image patches to whole image
+                  restoration},
+year = {2011},
+}
+
+@book{book,
+author = {D.P.~Bertsekas},
+note = {ISBN~1886529043},
+publisher = {Academic Press},
+title = {Constrained optimization and Lagrange multiplier methods},
+year = {1982},
+}
+
+@book{turabian,
+author = {K.~Turabian},
+edition = {7th},
+note = {ISBN~075698355X},
+publisher = {The University of Chicago Press},
+title = {A Manual for Writers of Research Papers, Theses, and
+                  Dissertations},
+year = {2007},
+}
+
+@book{merriam-webster,
+edition = {11th},
+editor = {Frederick~C.~Mish},
+note = {ISBN~0877798095},
+title = {Merriam-Webster's Collegiate Dictionary},
+year = {2003},
+}
+
+@book{strunk-white,
+author = {W.~Strunk and E.B.~White},
+edition = {4th},
+note = {ISBN~020530902X},
+publisher = {Longman},
+title = {The Elements of Style},
+year = {1999},
+}
+
+@book{williams,
+author = {J.~Williams},
+edition = {3rd},
+note = {ISBN~0205605354},
+publisher = {Pearson Longman},
+title = {Style --- The Basics of Clarity and Grace},
+year = {2008},
+}
diff --git a/ipol/ipol_style_201905/images/curve.pdf b/ipol/ipol_style_201905/images/curve.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..8154f720e9b207df4c6a0a3e2152b8eba0236408
Binary files /dev/null and b/ipol/ipol_style_201905/images/curve.pdf differ
diff --git a/ipol/ipol_style_201905/images/ferrari.png b/ipol/ipol_style_201905/images/ferrari.png
new file mode 100644
index 0000000000000000000000000000000000000000..84d4cb3140bc9ab4043ac4d745bbf8ecbd8ef11f
Binary files /dev/null and b/ipol/ipol_style_201905/images/ferrari.png differ
diff --git a/ipol/ipol_style_201905/images/finger.png b/ipol/ipol_style_201905/images/finger.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f729c56f83dd33a5ae39384ce7ba5d96a18e1d4
Binary files /dev/null and b/ipol/ipol_style_201905/images/finger.png differ
diff --git a/ipol/ipol_style_201905/images/k19.png b/ipol/ipol_style_201905/images/k19.png
new file mode 100644
index 0000000000000000000000000000000000000000..d972d10112efb30ddda0cc4891f9a05c7c233573
Binary files /dev/null and b/ipol/ipol_style_201905/images/k19.png differ
diff --git a/ipol/ipol_style_201905/images/lena.png b/ipol/ipol_style_201905/images/lena.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c779efb48a42fcf42bc7000a8b83eb58b31669f
Binary files /dev/null and b/ipol/ipol_style_201905/images/lena.png differ
diff --git a/ipol/ipol_style_201905/images/lily.png b/ipol/ipol_style_201905/images/lily.png
new file mode 100644
index 0000000000000000000000000000000000000000..fda008b6222fbc297638ab6f7e60270ace474d8c
Binary files /dev/null and b/ipol/ipol_style_201905/images/lily.png differ
diff --git a/ipol/ipol_style_201905/ipol.cls b/ipol/ipol_style_201905/ipol.cls
new file mode 100644
index 0000000000000000000000000000000000000000..78cbc6cd46f1ee3a574607dd66dc4baf9c0e0431
--- /dev/null
+++ b/ipol/ipol_style_201905/ipol.cls
@@ -0,0 +1,388 @@
+%-------------------------------------------------------------------------------
+% ipol.cls
+% LaTeX class for IPOL articles
+%
+% version 0.5.2 - 2015.11.7 - jose luis lisani 
+%    > change in format of doi links (from http://dx.doi.org to https://doi.org)
+%       following the indications of the Crossref organization
+% version 0.5.1 - 2015.6.16 - rafael grompone von gioi
+%    > small corrections to page layout to avoid "Overfull \vbox" messages
+%      due to a zero height of the header
+% version 0.5 - 2014.7.1 - rafael grompone von gioi
+%    > abstract included as PDF metadata
+%    > vector version of IPOL logo
+% version 0.4.3 - 2014.4.29 - rafael grompone von gioi
+%    > last page reference bug corrected (in some cases, the first page footer
+%      with the article reference would not print the correct last page number.
+% version 0.4.2 - 2014.3.18 - nicolas limare
+%    > use SIAM style for the standard ipol citation
+%    > insert custom PDF metatata: IPOL.Volume and IPOL.DOI
+% version 0.4.1 - 2014.3.8 - rafael grompone von gioi
+%    > new command to specify the volume number
+% version 0.4 - 2013.7.19 - rafael grompone von gioi
+%    > the IPOL LaTeX class version label was moved a little so it is
+%      not cut by the margins of the print area of printers
+%    > copyediting commands were removed
+% version 0.3.2 - 2013.7.4 - rafael grompone von gioi
+%    > verification added that the right version of package 'hyperref' is
+%      available. otherwise, the PDF metadata is not generated
+%    > the IPOL LaTeX class version is added to the PDF 'Creator' metadata
+%    > when the document is a preprint, its DOI and link is set to
+%      https://doi.org/10.5201/ipol so it points to the IPOL journal
+%    > modification so IPOL LaTeX class version is defined only once
+%    > some minor source code arrangements
+% version 0.3.1 - 2013.6.21 - rafael grompone von gioi
+%    > bug corrected: pages in article reference at footer should not be links
+%    > bug corrected: article's reference in footer absent if first page even
+% version 0.3 - 2013.5.1 - rafael grompone von gioi
+%    > "\bf" replaced with the more standard one "\bfseries"
+%    > typo corrected
+%    > bygone 'pagecolor' option of package 'hyperref' removed
+%    > copyediting commands added
+%    > IPOL logo linked to the website
+%    > the PREPRINT label, when needed, is placed below title and authors
+%    > \relax added after \ProcessOptions, see The LaTeX Companion 2ed. p.882
+%    > release date and version added to the class definition
+%    > \vbox command replaced by the more standard one \parbox
+%    > keywords handling added
+%    > PDF metadata generation
+%    > article's date replaced by submission, accepted and publication dates
+%    > submission and accepted dates are printed in the header
+%    > new command \ipolAuthorMark to set the affiliations markers in a way
+%      that can be removed when setting the PDF metadata
+%    > abstract environment renamed to ipolAbstract. This make the naming
+%      more coherent and allows to use the package "environ" (for some reason
+%      it is not able to redefine the abstract environment).
+%    > in ipolAbstract, ipolCode and ipolSupp, the 'quote' environment
+%      was replace by the 'quotation' environment. This indents the
+%      paragraphs except for the initial one.
+%    > SIIMS companion article command added
+%    > labels added to the first and last page numbers
+%    > headers added
+%    > first page footer contains the article citation
+%    > a command added to force the citation text
+%    > IPOL LaTeX class version is printed in the upper left side of first page
+% version 0.2 - 2012.6.4 - rafael grompone von gioi
+%    > the logo image is now called "ipol_logo".
+%    > affiliations command added
+%    > "DRAFT" label became "PREPRINT"
+%    > margins copied from "fullpage" without using it
+%    > "\ipolDraftLink" command became "\ipolPreprintLink"
+%    > modifications to the paper's header
+%    > "\href" command was modified in order that links will include a footnote
+%      with the address, to get the links in printed form too.
+%    > links' color modified.
+%    > compilation date added to the Preprint label
+%    > modifications to the mechainsm that generates the title of the article.
+% version 0.1 - 2012.1.27 - rafael grompone von gioi
+%-------------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\newcommand{\ipolClassVersion}{2015/06/16 v0.5.1 IPOL article class}
+\ProvidesClass{ipol}[\ipolClassVersion]
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+\ProcessOptions\relax
+\LoadClass[a4paper,12pt,twoside]{article}
+
+% Page Layout
+\setlength{\textwidth}{\paperwidth}
+\addtolength{\textwidth}{-3cm} % margins
+\setlength{\oddsidemargin}{1.5cm}
+\addtolength{\oddsidemargin}{-1in} % remove default 1 inch offset
+\setlength{\evensidemargin}{\oddsidemargin}
+\setlength{\topmargin}{0.87cm}
+\addtolength{\topmargin}{-1in} % remove default 1 inch offset
+\setlength{\headheight}{0.4cm}
+\setlength{\headsep}{0.925cm}
+\setlength{\textheight}{\paperheight}
+\addtolength{\textheight}{-\headheight}
+\addtolength{\textheight}{-\headsep}
+\addtolength{\textheight}{-\footskip}
+\addtolength{\textheight}{-2.37cm} % margins
+
+% Headers
+% Definition of standard ipol citation
+\newcommand{\ipolCitation}{%
+  \textsc{\ipolAuthors}, \emph{\ipolTitle},
+  Image Processing On Line, \ipolVolume\ (\ipolPublicationYear),
+  pp.~\pageref*{ipol:class:first:page}--\pageref*{LastPage}.
+  \ipolLink}
+% Command to force citation
+\newcommand{\ipolForceCitation}[1]{\renewcommand{\ipolCitation}{#1}}
+% Definition of ipol page style
+\newcommand{\ps@ipol}{%
+  \renewcommand{\@evenhead}{\hfil\scriptsize\textsc{\ipolAuthors}\hfil}%
+  \renewcommand{\@oddhead}{\hfil\scriptsize\textsc{\ipolTitle}\hfil}%
+  \renewcommand{\@evenfoot}{\hfil\textrm{\thepage}\hfil}%
+  \renewcommand{\@oddfoot}{\@evenfoot}}
+% Definition of ipolFirstPage page style
+\newcommand{\ps@ipolFirstPage}{%
+  \renewcommand{\@oddhead}{}%
+  \renewcommand{\@evenhead}{}%
+  \renewcommand{\@oddfoot}{%
+    \@ifundefined{ipolIsPreprint}{%
+      \begin{minipage}[t]{\linewidth}
+        \sf\scriptsize\ipolCitation
+      \end{minipage}}{}}
+  \renewcommand{\@evenfoot}{%
+    \@ifundefined{ipolIsPreprint}{%
+      \begin{minipage}[t]{\linewidth}
+        \sf\scriptsize\ipolCitation
+      \end{minipage}}{}}}
+\pagestyle{ipol}
+
+% Links package and colors definition
+\RequirePackage{color}
+\definecolor{link}{rgb}{0.240,0.194,0.431}
+\RequirePackage[colorlinks,
+                linkcolor=link,
+                anchorcolor=link,
+                citecolor=link,
+                filecolor=link,
+                menucolor=link,
+                urlcolor=link]{hyperref}
+% if hyperref version is old, no PDF metadata will be generated:
+\@ifpackagelater{hyperref}{2010/01/11}{}{%
+    \newcommand{\ipolNoPDFMetadata}{}%
+    \ClassWarningNoLine{ipol}{hyperref version previous to 2010/01/11,
+                              PDF metadata will not be generated}}
+% The following definitions modify the "\href" command to
+% also include a footnote with the address, so it is also
+% accessible in printed form. The command "\basehref" is
+% created in cases where the footnote wants to be avoided.
+\newcommand*\basehref[2]{}
+\let\basehref\href
+\renewcommand*\href[2]{\basehref{#1}{#2}\footnote{\url{#1}}}
+
+% IPOL environments
+% Abstract
+% if the 'environ' package is available, use it for pdf abstract metadata
+\newcommand{\ipolAbstractText}{}
+\IfFileExists{environ.sty}{%
+  \RequirePackage{environ}
+  \NewEnviron{ipolAbstract}{\small%
+                            \begin{center}%
+                              {\bfseries Abstract\vspace{-.5em}}%
+                            \end{center}%
+                            \begin{quotation}%
+                              \noindent\ignorespaces\BODY%
+                            \end{quotation}%
+                            \@ifundefined{ipolIsPreprint}{
+                              \@ifundefined{ipolNoPDFMetadata}{
+                                \ClassWarningNoLine{ipol}{If an error follows,
+                                  the abstract may have many paragraphs. To
+                                  work correctly, IPOL class requires the
+                                  abstract to be only ONE paragraph}%
+                                \hypersetup{pdfinfo={Subject={\BODY}}}%
+                              }{}%
+                            }{}%
+                           }{}%
+}{%
+  \newenvironment{ipolAbstract}{\small%
+                                \begin{center}%
+                                {\bfseries Abstract\vspace{-.5em}}%
+                                \end{center}%
+                                \begin{quotation}%
+                                \noindent\ignorespaces}{\end{quotation}}
+}
+% Code section
+\newenvironment{ipolCode}{\small%
+                          \begin{center}%
+                          {\bfseries Source Code\vspace{-.5em}}%
+                          \end{center}%
+                          \begin{quotation}%
+                          \noindent\ignorespaces}{\end{quotation}}
+% Supplementary material section
+\newenvironment{ipolSupp}{\small%
+                          \begin{center}%
+                          {\bfseries Supplementary Material\vspace{-.5em}}%
+                          \end{center}%
+                          \begin{quotation}%
+                          \noindent\ignorespaces}{\end{quotation}}
+
+% IPOL command to set Keywords
+\newcommand{\ipolKeywords}[1]{%
+  \begin{quote}%
+  \noindent\ignorespaces\small\textbf{Keywords:} #1%
+  \end{quote}%
+  \@ifundefined{ipolNoPDFMetadata}{\hypersetup{pdfinfo={Keywords={#1}}}}{}
+}
+
+% command to declare SIIMS companion article
+\newenvironment{ipolSIIMS}{%
+  \begin{center}%
+  \begin{minipage}{0.67\linewidth}%
+    \raisebox{-\height}{%
+      \basehref{http://www.siam.org/journals/siims.php}%
+               {\includegraphics[width=0.22\linewidth]{siims_logo}}}%
+    \hspace{0.01\linewidth}%
+    \begin{minipage}[t]{0.77\linewidth}\vspace{0pt}%
+      \scriptsize\sf\noindent\ignorespaces}%
+  {\end{minipage}\end{minipage}\end{center}\bigskip}
+
+% IPOL data
+\newcommand{\ipolTitle}{title}
+\newcommand{\ipolAuthors}{authors}
+\newcommand{\ipolAffiliations}{}
+\newcommand{\ipolSubmissionYear}{YYYY}
+\newcommand{\ipolSubmissionMonth}{MM}
+\newcommand{\ipolSubmissionDay}{DD}
+\newcommand{\ipolAcceptedYear}{YYYY}
+\newcommand{\ipolAcceptedMonth}{MM}
+\newcommand{\ipolAcceptedDay}{DD}
+\newcommand{\ipolPublicationYear}{YYYY}
+\newcommand{\ipolPublicationMonth}{MM}
+\newcommand{\ipolPublicationDay}{DD}
+\newcommand{\ipolID}{XXXXXXXX}
+\newcommand{\ipolVolume}{n}
+\newcommand{\ipolDOI}{\@ifundefined{ipolIsPreprint}%
+                        {10.5201/ipol.\ipolPublicationYear.\ipolID}%
+                        {10.5201/ipol}}
+\newcommand{\ipolLink}{https://doi.org/\ipolDOI}
+
+% IPOL data set commands
+\newcommand{\ipolSetTitle}[1]{\renewcommand{\ipolTitle}{#1}%
+                              \newcommand{\ipolTitleDefined}{}}
+\newcommand{\ipolSetAuthors}[1]{\renewcommand{\ipolAuthors}{#1}%
+                                \newcommand{\ipolAuthorsDefined}{}}
+\newcommand{\ipolSetAffiliations}[1]{\renewcommand{\ipolAffiliations}{#1}%
+                                     \newcommand{\ipolAffiliationsDefined}{}}
+\newcommand{\ipolSetID}[1]{\renewcommand{\ipolID}{#1}%
+                           \newcommand{\ipolVolumeDefined}{}}
+\newcommand{\ipolSetVolume}[1]{\renewcommand{\ipolVolume}{#1}%
+                               \newcommand{\ipolIDDefined}{}}
+\newcommand{\ipolPreprintLink}[1]{\renewcommand{\ipolLink}{#1}%
+                                  \newcommand{\ipolPreprint}{}}
+\newcommand{\ipolAuthorMark}[1]{}
+
+% set submission date commands
+\newcommand{\ipolSetSubmissionYear}[1]{\renewcommand{\ipolSubmissionYear}{#1}%
+                            \newcommand{\ipolSubmissionYearDefined}{}}
+\newcommand{\ipolSetSubmissionMonth}[1]{\renewcommand{\ipolSubmissionMonth}{#1}%
+                            \newcommand{\ipolSubmissionMonthDefined}{}}
+\newcommand{\ipolSetSubmissionDay}[1]{\renewcommand{\ipolSubmissionDay}{#1}%
+                            \newcommand{\ipolSubmissionDayDefined}{}}
+
+% set accepted date commands
+\newcommand{\ipolSetAcceptedYear}[1]{\renewcommand{\ipolAcceptedYear}{#1}%
+                            \newcommand{\ipolAcceptedYearDefined}{}}
+\newcommand{\ipolSetAcceptedMonth}[1]{\renewcommand{\ipolAcceptedMonth}{#1}%
+                            \newcommand{\ipolAcceptedMonthDefined}{}}
+\newcommand{\ipolSetAcceptedDay}[1]{\renewcommand{\ipolAcceptedDay}{#1}%
+                            \newcommand{\ipolAcceptedDayDefined}{}}
+
+% set publication date commands
+\newcommand{\ipolSetPublicationYear}[1]{\renewcommand{\ipolPublicationYear}{#1}%
+                            \newcommand{\ipolPublicationYearDefined}{}}
+\newcommand{\ipolSetPublicationMonth}[1]{\renewcommand{\ipolPublicationMonth}%
+                            {#1}\newcommand{\ipolPublicationMonthDefined}{}}
+\newcommand{\ipolSetPublicationDay}[1]{\renewcommand{\ipolPublicationDay}{#1}%
+                            \newcommand{\ipolPublicationDayDefined}{}}
+
+% Print IPOL Header and Title
+\RequirePackage{graphicx}
+\AtBeginDocument{%
+% Decide between Preprint or Publication mode. This must be done at
+% the beginning of the document, when all IPOL definitions were already done.
+\@ifundefined{ipolTitleDefined}{\newcommand{\ipolIsPreprint}{}}{%
+\@ifundefined{ipolAuthorsDefined}{\newcommand{\ipolIsPreprint}{}}{%
+\@ifundefined{ipolSubmissionYearDefined}{\newcommand{\ipolIsPreprint}{}}{%
+\@ifundefined{ipolSubmissionMonthDefined}{\newcommand{\ipolIsPreprint}{}}{%
+\@ifundefined{ipolSubmissionDayDefined}{\newcommand{\ipolIsPreprint}{}}{%
+\@ifundefined{ipolAcceptedYearDefined}{\newcommand{\ipolIsPreprint}{}}{%
+\@ifundefined{ipolAcceptedMonthDefined}{\newcommand{\ipolIsPreprint}{}}{%
+\@ifundefined{ipolAcceptedDayDefined}{\newcommand{\ipolIsPreprint}{}}{%
+\@ifundefined{ipolPublicationYearDefined}{\newcommand{\ipolIsPreprint}{}}{%
+\@ifundefined{ipolPublicationMonthDefined}{\newcommand{\ipolIsPreprint}{}}{%
+\@ifundefined{ipolPublicationDayDefined}{\newcommand{\ipolIsPreprint}{}}{%
+\@ifundefined{ipolIDDefined}{\newcommand{\ipolIsPreprint}{}}{%
+\@ifundefined{ipolVolumeDefined}{\newcommand{\ipolIsPreprint}{}}{%
+\@ifundefined{ipolPreprint}{}{\newcommand{\ipolIsPreprint}{}}}}}}}}}}}}}}}
+%
+% print IPOL header
+\basehref{https://doi.org/10.5201/ipol}%
+  {\includegraphics[width=.32\linewidth]{ipol_logo}}%
+\hspace{1em}%
+\parbox[b]{0.6\linewidth}{\scriptsize\sf\noindent%
+Published in \basehref{https://doi.org/10.5201/ipol}{Image Processing On Line}
+on %
+\@ifundefined{ipolIsPreprint}%
+  {\ipolPublicationYear--%
+     \two@digits{\ipolPublicationMonth}--%
+     \two@digits{\ipolPublicationDay}}%
+  {YYYY--MM--DD}.\\
+Submitted on %
+\@ifundefined{ipolIsPreprint}%
+  {\ipolSubmissionYear--%
+     \two@digits{\ipolSubmissionMonth}--%
+     \two@digits{\ipolSubmissionDay}, }%
+  {YYYY--MM--DD, }%
+accepted on
+\@ifundefined{ipolIsPreprint}%
+  {\ipolAcceptedYear--%
+     \two@digits{\ipolAcceptedMonth}--%
+     \two@digits{\ipolAcceptedDay}}%
+  {YYYY--MM--DD}.\\
+ISSN 2105--1232 \copyright\ \ipolPublicationYear\ IPOL \& the authors
+\basehref{http://creativecommons.org/licenses/by-nc-sa/3.0/}{CC--BY--NC--SA}\\
+This article is available online with supplementary materials,\\
+software, datasets and online demo at\\
+\url{\ipolLink}}
+
+% Print IPOL class version
+\RequirePackage{color}
+\RequirePackage{rotating}
+\definecolor{ipolVersion}{gray}{0.8}
+\hspace{-16mm}
+\begin{rotate}{90}
+{\color{ipolVersion}\tiny\ipolClassVersion}
+\end{rotate}
+\medskip
+\bigskip
+% print title & authors
+\begin{center}
+\Large\textbf{\ipolTitle}\\
+\bigskip
+\renewcommand{\ipolAuthorMark}[1]{$^{#1}$}
+\large\ipolAuthors\\
+\bigskip
+\@ifundefined{ipolAffiliationsDefined}{}{%
+  \footnotesize\ipolAffiliations\\%
+  \bigskip%
+}
+\@ifundefined{ipolIsPreprint}{}{%
+  \bigskip%
+  {\sf\Large\color{red}PREPRINT \@date}%
+}
+\bigskip
+\end{center}
+% set PDF metadata
+\@ifundefined{ipolIsPreprint}%
+  {\newcommand{\ipolMetadataDate}{D:\ipolPublicationYear%
+                                  \two@digits{\ipolPublicationMonth}%
+                                  \two@digits{\ipolPublicationDay}000000}}%
+  {\newcommand{\ipolMetadataDate}{}}%
+\renewcommand{\ipolAuthorMark}[1]{}
+\@ifundefined{ipolNoPDFMetadata}{%
+  \hypersetup{
+    pdfinfo={
+      Title={\ipolTitle},
+      Author={\ipolAuthors},
+      CreationDate={\ipolMetadataDate},
+      ModDate={ },
+      Creator={\ipolClassVersion},
+      IPOL.Volume={\ipolVolume},
+      IPOL.DOI={\ipolLink},
+    }
+  }
+}{}
+\label{ipol:class:first:page} % save first page number
+\thispagestyle{ipolFirstPage} % first page style
+}% end of \AtBeginDocument
+
+\RequirePackage{lastpage} % used to save a reference to the last page
+                          % to prevent other packages including commands
+                          % with \AtEndDocument after him and thus
+                          % pertubing the last page reference, this package
+                          % should be loaded last.
+
+%-------------------------------------------------------------------------------
diff --git a/ipol/ipol_style_201905/ipol_class_manual.pdf b/ipol/ipol_style_201905/ipol_class_manual.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..2d6e5b7020866b0c8b87a7540555a8471ed4983c
Binary files /dev/null and b/ipol/ipol_style_201905/ipol_class_manual.pdf differ
diff --git a/ipol/ipol_style_201905/ipol_class_manual.tex b/ipol/ipol_style_201905/ipol_class_manual.tex
new file mode 100644
index 0000000000000000000000000000000000000000..538a2d5d14fbdd77cab4db482aaf619b1670818e
--- /dev/null
+++ b/ipol/ipol_style_201905/ipol_class_manual.tex
@@ -0,0 +1,359 @@
+%-------------------------------------------------------------------------------
+% IPOL LaTeX class manual
+% by rafael grompone von gioi
+% ver 0.5 - July 1, 2014
+%-------------------------------------------------------------------------------
+\documentclass{ipol}
+
+\ipolSetTitle{IPOL \LaTeX\ Class Manual, ver.0.5}
+\ipolSetAuthors{Rafael Grompone von Gioi\ipolAuthorMark{1},
+                Rapha\"el Toucour\ipolAuthorMark{2}}
+\ipolSetAffiliations{%
+\ipolAuthorMark{1} CMLA, ENS Cachan, France
+                   (\texttt{grompone@cmla.ens-cachan.fr})\\
+\ipolAuthorMark{2} IIE, UdelaR, Uruguay (\texttt{jirafa@fing.edu.uy})}
+
+%-------------------------------------------------------------------------------
+\begin{document}
+
+%-------------------------------------------------------------------------------
+\begin{ipolAbstract}
+This document describes and illustrates how to use the IPOL \LaTeX\ class,
+created to produce a uniform layout for IPOL articles. The restrictions imposed
+on articles to be published in IPOL are briefly discussed.
+\end{ipolAbstract}
+
+%-------------------------------------------------------------------------------
+\ipolKeywords{IPOL, LaTeX class, documentation}
+
+%-------------------------------------------------------------------------------
+\section{Getting Started}
+
+There is no need for installation to use this class, just two files need to be
+copied to the same directory were the \LaTeX\ source files are. These files are
+the class itself, \verb|ipol.cls|, and the logo file, that can be either
+\verb|ipol_logo.eps| if you compile with \verb|latex|, or \verb|ipol_logo.pdf|
+if you compile with \verb|pdflatex|. If not sure, just copy the three of these
+files. You may also need \verb|siims_logo.eps| or \verb|siims_logo.jpg| when
+preparing a SIIMS companion article.
+
+The minimal example of use of this class is as follows:
+\begin{verbatim}
+\documentclass{ipol}
+\begin{document}
+\end{document}
+\end{verbatim}
+It will only generate the IPOL header, including its logo, the words ``title''
+and ``authors'' where the title and authors should be placed, and a red
+``PREPRINT'' label including the compilation date. This example is useless but
+can be used to test your system. The \LaTeX\ source file
+\verb|ipol_class_manual.tex|, which generates this manual, also uses the IPOL
+class and provides an example of how to use it.
+
+IPOL class is based on the standard ``article'' class of \LaTeX\ and it is used
+essentially in the same way. There are two main restrictions: the layout must
+not be changed and the title is not generated with the usual \verb|\title|,
+\verb|\author|, \verb|\date| and \verb|\maketitle| commands; special IPOL
+commands must be used instead. Let us discuss these topics one by one.
+
+This class was created to provide a uniform layout for IPOL articles, so no
+command should be used that would change the page layout: do not change paper
+size (it must be A4 paper), do not change the page margins, do not change the
+font type, size, or color.
+
+The commands \verb|\ipolSetTitle|, \verb|\ipolSetAuthors| and
+\verb|\ipolSetAffiliations| are provided by the IPOL class to set the
+information needed to generate the title of the article. These commands must be
+used in the preamble of the \LaTeX\ file, that is between the
+\verb|\documentclass{ipol}| and \verb|\begin{document}| commands; this is
+important, otherwise the title will not be generated correctly. As the name of
+the commands imply, \verb|\ipolSetTitle| sets the title of the article,
+\verb|\ipolSetAuthors| sets the authors, and \verb|\ipolSetAffiliations| sets
+the authors' affiliations. This last command is optional. The following is an
+example of how to use it:
+\begin{verbatim}
+\documentclass{ipol}
+\ipolSetTitle{Ceci n'est pas un article}
+\ipolSetAuthors{Rapha\"el Toucour}
+\ipolSetAffiliations{CMLA, ENS Cachan, France}
+\begin{document}
+\end{document}
+\end{verbatim}
+If there are more than one author, and they have different affiliations, they
+may be indicated using the command \verb|\ipolAuthorMark| (authors must be
+separated by commas, never by ``and'' or \&):
+\begin{verbatim}
+\documentclass{ipol}
+\ipolSetTitle{Ceci n'est pas un article}
+\ipolSetAuthors{Rapha\"el Toucour\ipolAuthorMark{1},
+                Rafael Grompone von Gioi\ipolAuthorMark{2}}
+\ipolSetAffiliations{\ipolAuthorMark{1} CMLA, ENS Cachan, France\\
+                     \ipolAuthorMark{2} IIE, UdelaR, Uruguay}
+\begin{document}
+\end{document}
+\end{verbatim}
+For the rest, the class is used as the \LaTeX\ standard ``article'' class:
+packages or definitions can be added in the preamble, and the main text can
+contain sections, subsections, mathematics, figures, tables, etc.
+
+The rest of this document describes some special command for IPOL and briefly
+comments on some conditions that will be imposed for a final article, just
+before publishing at IPOL. (These restrictions are not necessary for
+submissions but will reduce work later.)
+
+%-------------------------------------------------------------------------------
+\section{IPOL Commands for Authors}
+
+%-------------------------------------------------------------------------------
+\subsection{DOI and Links}
+
+Once an article is published in IPOL, it will be assigned a DOI number and a
+universal DOI web address to refer to it. The IPOL class provides a command
+that will later contain the article's DOI number (\verb|\ipolDOI|) and a
+command that will contain the article's web address (\verb|\ipolLink|). These
+are the only reference that should be used for the IPOL article itself and to
+its complementary content on the web.
+
+These commands will have a default value in a preprint version, but once the
+paper is accepted they will be replaced by the correct one. One may want to
+have a valid link while the article is being prepared and peer reviewed. For
+that purpose, the command \verb|\ipolPreprintLink| is used to set the article
+link \verb|\ipolLink| to a temporary value. For example,
+\begin{verbatim}
+\ipolPreprintLink{https://tools.ipol.im/wiki/ref/manuscript_guidelines/}
+\end{verbatim}
+This command should be used in the document's preamble (i.e., after
+\verb|\documentclass{ipol}| and before \verb|\begin{document}|).
+
+The command \verb|\ipolLink| provides the address of the corresponding IPOL
+article as \emph{text}. To produce a \emph{link} in the PDF with this or other
+address, the command \verb|\href{}{}| should be used. The first parameter is
+the link address and the second is the text that will be shown in the resulting
+document. Also, to be able to read the address in a printed version of the
+document, the address will be printed as footnote. For example, the commands
+\begin{verbatim}
+\href{\ipolLink}{the article page}
+\href{https://tools.ipol.im/wiki/ref/manuscript_guidelines/}{guidelines}
+\end{verbatim}
+produce the following links:
+\href{\ipolLink}{the article page} and
+\href{https://tools.ipol.im/wiki/ref/manuscript_guidelines/}{guidelines}.
+
+%-------------------------------------------------------------------------------
+\subsection{Abstract, Code, Supplementary Material and Keywords}
+
+Three environments are defined to generate specific sections of IPOL articles:
+the abstract, the Source Code description paragraph, and the Supplementary
+Material description paragraph. The corresponding environments are
+\verb|ipolAbstract|, \verb|ipolCode| and \verb|ipolSupp|. These environment
+work similarly as the \LaTeX\ ``abstract'' and should be used after the
+\verb|\begin{document}| and before the main text of the article. It is
+important to use the \verb|ipolAbstract| for the abstract and not the
+\LaTeX\ ``abstract''.
+
+There is a particular restriction for the abstract: it must contain only
+\emph{one} paragraph. This restriction is necessary to produce the final
+article as the abstract is included in the PDF metadata, and this would
+generate an error if the abstract contains more than one paragraph.
+
+The command \verb|\ipolKeywords| is used to set the keywords of the article.
+The command is followed by a list of keywords separated by commas, as in
+\verb|\ipolKeywords{Earth, Water, Air, Fire}|. This command is to be used after
+the abstract, the source code paragraph and the supplementary material, but
+before the beginning of the article itself.
+
+The following example illustrates the use of the four commands:
+\begin{verbatim}
+\documentclass{ipol}
+\ipolSetTitle{Ceci n'est pas un article}
+\ipolSetAuthors{Rapha\"el Toucour}
+\begin{document}
+
+\begin{ipolAbstract}
+A short description of the article.
+\end{ipolAbstract}
+
+\begin{ipolCode}
+Description of the source code to be found \href{\ipolLink}{here}.
+\end{ipolCode}
+
+\begin{ipolSupp}
+Some articles could provide additional material, not part of the
+peer reviewed article but related and useful. It should be found at
+\href{\ipolLink}{the web page}.
+\end{ipolSupp}
+
+\ipolKeywords{IPOL, LaTeX class, documentation}
+
+\section{Introduction}
+The article main text starts here.
+
+\end{document}
+\end{verbatim}
+
+%-------------------------------------------------------------------------------
+\subsection{SIIMS Companion Article}
+
+IPOL encourages authors to do joint submissions to IPOL and
+\href{http://www.siam.org/journals/siims.php}{SIIMS (SIAM Journal of Imaging
+  Science)}. Upon acceptance, cross links between both electronic articles will
+be placed, so readers will be able to automatically navigate between the SIIMS
+and IPOL complementary materials. The environment \verb|ipolSIIMS| is used to
+set the link. It should be used after the \verb|\begin{document}| but before
+the abstract. The following source code provides an example:
+\begin{verbatim}
+\documentclass{ipol}
+\begin{document}
+
+\begin{ipolSIIMS}
+This IPOL article is related to a companion publication in the SIAM
+Journal on Imaging Sciences:\\
+R. Toucour, ``Ceci n'est pas un article.''
+\textsl{SIAM Journal on Imaging Sciences}, vol.~X, no.~X,
+pp.~N--M, YYYY. \url{http://dx.doi.org/10.1137/nnnnnnnnn}
+\end{ipolSIIMS}
+
+\end{document}
+\end{verbatim}
+
+%-------------------------------------------------------------------------------
+\section{Manuscripts for IPOL}
+
+Authors must check the
+\href{https://tools.ipol.im/wiki/ref/manuscript_guidelines/}{IPOL manuscript
+  guidelines} where the requirements and suggestions about the contents, style
+and description detail for IPOL articles are described.
+
+The PDF files for IPOL submissions are generated by the authors using any
+method that produces a readable PDF file. Once an article is accepted, however,
+the final version will be generated at IPOL servers in order to provide PDF
+files with controlled sizes and resolutions conditions. For that aim, there are
+some restrictions that must be imposed to the source files. Please check
+\href{https://tools.ipol.im/wiki/ref/manuscript_guidelines/}{here} for a
+complete list of restrictions. The main consideration is that the final
+documents will be generated using pdf\LaTeX. This forces some restrictions, in
+particular the only graphical formats directly accepted are PNG, JPEG and PDF
+itself. Images or figures in other kind of formats should be converted to one
+of these. The files and directories must follow a strict naming as defined
+\href{https://tools.ipol.im/wiki/ref/manuscript_guidelines/}{here}.
+
+Authors must warrant to be the authors of every part of the final article, or
+must include permission of the copyright holder. In particular, if images not
+owned by the authors are used, the authors and permissions to be used must be
+included in the article. For example, by adding a final section as follows:
+\begin{verbatim}
+\section*{Image Credits}
+
+\includegraphics[height=2em]{image1.png}
+\href{http://a.link.here}{Courtesy of Name Surname}
+\\
+\includegraphics[height=2em]{image2.png}
+\copyright\ Pierre Dupont CC-BY
+\\
+\includegraphics[height=2em]{image3.png}
+the authors
+\end{verbatim}
+
+%-------------------------------------------------------------------------------
+\section{IPOL Commands for Final Production}
+
+This section describes some commands used for final article production.
+These commands \textbf{must never be used by authors}.
+
+
+%-------------------------------------------------------------------------------
+\subsection{Article Final Data}
+
+Before an article is ready for publication, some data need to be declared.
+These data are used to create the IPOL header, the article's citation on the
+footer of the first page, and are included in the PDF metadata. Part of the
+data was already added by the authors as the title, authors and
+affiliations. What needs to be added in final production is the submission,
+acceptance and publication dates, the article ID, and the first page number.
+
+This is done by including the following commands in the preamble of the
+\LaTeX\ file, that is between the \verb|\documentclass{ipol}| and
+\verb|\begin{document}| commands. Some random values were including here just
+to provide an example:
+\begin{verbatim}
+\ipolSetSubmissionDay{11}
+\ipolSetSubmissionMonth{11}
+\ipolSetSubmissionYear{2010}
+\ipolSetAcceptedDay{1}
+\ipolSetAcceptedMonth{3}
+\ipolSetAcceptedYear{2011}
+\ipolSetPublicationDay{28}
+\ipolSetPublicationMonth{3}
+\ipolSetPublicationYear{2014}
+\ipolSetID{gjmr-lsd}
+\ipolSetVolume{4}
+\setcounter{page}{124}
+\end{verbatim}
+When no data is missing, the ``PREPRINT'' label disappear. If the ``PREPRINT''
+label is still present, some data may be missing or the
+\verb|\ipolPreprintLink| command was used to set a temporary link for the
+article and needs to be removed.
+
+When the PDF is generated in the final article mode (that is when the
+``PREPRINT'' label disappear) the article's abstract is included in the PDF
+metadata. This could generate a \LaTeX\ error if the abstract is composed of
+more than one paragraph. The error generated would be as follows:
+\begin{verbatim}
+Class ipol Warning: If an error follows, the abstract may have many paragraphs.
+ To work correctly, IPOL class requires the abstract to be only ONE paragraph.
+
+Runaway argument?
+! Paragraph ended before \def was complete.
+<to be read again>
+                   \par
+l.74 \end{ipolAbstract}
+
+?
+\end{verbatim}
+A warning was generated by the IPOL class to help the user to spot the source
+of the problem. The solution is to merge the abstract into \emph{one}
+paragraph.
+
+%-------------------------------------------------------------------------------
+\subsection{Corrections to Citation}
+
+With the previous data, the class will generate a citation reference for the
+article that is put in the footer of the first page. In some cases, the
+automatically generated citation may not be correct or satisfactory. In such
+cases, one can force a manual citation using the command
+\verb|\ipolForceCitation| as in the following example, to be used in the
+preamble of the \LaTeX\ file, that is between the \verb|\documentclass{ipol}|
+and \verb|\begin{document}| commands:
+\begin{verbatim}
+\ipolForceCitation{Rapha\"el Toucour, ``Ceci n'est pas un article,''
+\emph{Image Processing On Line}, vol.~2013, pp.~123--124.
+http://dx.doi.org/10.5201/ipol}
+\end{verbatim}
+The standard citation would be obtained with:
+\begin{verbatim}
+\ipolForceCitation{\ipolAuthors, ``\ipolTitle,''
+\emph{Image Processing On Line}, vol.~\ipolPublicationYear,
+pp.~\pageref*{ipol:class:first:page}--\pageref*{ipol:class:last:page}.
+\ipolLink}
+\end{verbatim}
+The latter may be useful: it is better to modify just what is wrong and leave
+the rest unchanged. For example, unless there is problem there, it is better to
+keep the \verb|\pageref*| than manually including the page numbers.
+
+%-------------------------------------------------------------------------------
+\subsection{IPOL Class Version}
+
+From IPOL class version 0.3 on, one can easily verify the version of this class
+that generated a given PDF: the version is printed in light gray in the
+upper-left side of the first page of the document and also included in the PDF
+metadata (the latter only if the system that generated the PDF included an
+up-to-date version of the package ``hyperref'').
+
+%-------------------------------------------------------------------------------
+\section*{Image Credits}
+
+\includegraphics[height=2em]{ipol_logo} \copyright\ IPOL (there's no need to
+credit this image, here is used as an example.)
+
+\end{document}
+%-------------------------------------------------------------------------------
diff --git a/ipol/ipol_style_201905/ipol_logo.eps b/ipol/ipol_style_201905/ipol_logo.eps
new file mode 100644
index 0000000000000000000000000000000000000000..81c9671d3c3db41bb59bd7874752ddc2d64b6406
--- /dev/null
+++ b/ipol/ipol_style_201905/ipol_logo.eps
@@ -0,0 +1,464 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 -1 360 165
+%%Creator: rafael grompone von gioi
+%%Title: (IPOL logo)
+%%CreationDate: Tue Jun 24 17:00:00 2014
+%%EndComments
+
+0.831373 0.788235 0.913725 setrgbcolor
+58.855 164.379 moveto
+58.855 139.734 lineto
+112.367 103.75 lineto
+114.207 56.973 lineto
+128.922 47.047 lineto
+128.922 117.109 lineto
+closepath
+fill
+
+0.752941 0.694118 0.870588 setrgbcolor
+44.145 152.621 moveto
+44.145 130.934 lineto
+60.938 116.129 lineto
+58.859 142.695 lineto
+closepath
+fill
+
+98.691 68.981 moveto
+99.492 45.215 lineto
+114.207 35.289 lineto
+114.207 56.973 lineto
+closepath
+fill
+
+0.717647 0.654902 0.854902 setrgbcolor
+58.855 142.691 moveto
+58.855 119.406 lineto
+97.172 91.754 lineto
+99.492 66.902 lineto
+114.207 56.973 lineto
+114.207 105.352 lineto
+closepath
+fill
+
+0.611765 0.537255 0.792157 setrgbcolor
+29.43 140.863 moveto
+29.43 119.176 lineto
+46.402 104.727 lineto
+44.145 130.934 lineto
+closepath
+fill
+
+82.328 60.231 moveto
+84.777 33.457 lineto
+99.492 23.527 lineto
+99.492 45.215 lineto
+closepath
+fill
+
+0.564706 0.47451 0.764706 setrgbcolor
+44.145 130.934 moveto
+44.145 109.25 lineto
+63.816 91.641 lineto
+58.859 121.008 lineto
+closepath
+fill
+
+81.258 81.149 moveto
+84.777 55.145 lineto
+99.492 45.215 lineto
+99.492 66.902 lineto
+closepath
+fill
+
+0.552941 0.470588 0.760784 setrgbcolor
+58.855 121.008 moveto
+58.777 97.242 lineto
+83.336 81.836 lineto
+84.777 76.832 lineto
+99.492 66.902 lineto
+99.492 93.594 lineto
+closepath
+fill
+
+0.454902 0.4 0.701961 setrgbcolor
+14.715 129.102 moveto
+14.715 59.043 lineto
+84.777 11.77 lineto
+84.777 33.457 lineto
+35.082 69.106 lineto
+29.43 119.176 lineto
+closepath
+fill
+
+0.368627 0.301961 0.654902 setrgbcolor
+29.43 119.176 moveto
+29.43 70.801 lineto
+84.777 33.457 lineto
+84.777 55.145 lineto
+47.348 83.879 lineto
+44.145 109.25 lineto
+closepath
+fill
+
+0.360784 0.290196 0.65098 setrgbcolor
+44.145 109.25 moveto
+44.145 82.559 lineto
+84.777 55.145 lineto
+84.777 76.828 lineto
+58.855 94.316 lineto
+58.859 99.32 lineto
+closepath
+fill
+
+0.360784 0.290196 0.647059 setrgbcolor
+58.855 99.32 moveto
+58.297 88.719 lineto
+84.777 76.828 lineto
+84.777 81.832 lineto
+closepath
+fill
+
+0.137255 0.121569 0.12549 setrgbcolor
+0 47.285 moveto
+70.062 0.012 lineto
+70.062 70.078 lineto
+0 117.344 lineto
+closepath
+fill
+
+315.402 117.117 moveto
+329.746 117.117 lineto
+329.746 38.149 lineto
+359.941 38.149 lineto
+359.941 23.805 lineto
+315.402 23.805 lineto
+closepath
+fill
+
+284.664 52.492 moveto
+284.664 52.492 284.664 38.149 270.32 38.149 curveto
+255.973 38.149 255.973 52.492 255.973 52.492 curveto
+255.973 88.426 lineto
+255.973 88.426 255.973 102.77 270.32 102.77 curveto
+284.664 102.77 284.664 88.426 284.664 88.426 curveto
+closepath
+
+270.32 117.117 moveto
+241.633 117.117 241.633 88.426 241.633 88.426 curveto
+241.633 52.492 lineto
+241.633 52.492 241.633 23.805 270.32 23.805 curveto
+299.008 23.805 299.008 52.492 299.008 52.492 curveto
+299.008 88.426 lineto
+299.008 88.426 299.008 117.117 270.32 117.117 curveto
+
+203.375 73.945 moveto
+189.031 73.945 lineto
+189.031 102.633 lineto
+203.375 102.633 lineto
+203.375 102.633 217.723 102.633 217.723 88.289 curveto
+217.723 73.945 203.375 73.945 203.375 73.945 curveto
+
+203.375 116.981 moveto
+174.688 116.981 lineto
+174.688 23.805 lineto
+189.031 23.805 lineto
+189.031 59.598 lineto
+203.375 59.598 lineto
+203.375 59.598 232.066 59.598 232.066 88.289 curveto
+232.066 116.981 203.375 116.981 203.375 116.981 curveto
+
+155.562 23.805 moveto
+141.215 23.805 lineto
+141.215 117.117 lineto
+155.562 117.117 lineto
+closepath
+
+fill
+
+352.867 13.184 moveto
+352.867 0 lineto
+359.973 0 lineto
+359.973 2.027 lineto
+354.895 2.027 lineto
+354.895 6.078 lineto
+358.949 6.078 lineto
+358.949 8.109 lineto
+354.895 8.109 lineto
+354.895 11.156 lineto
+359.973 11.156 lineto
+359.973 13.184 lineto
+closepath
+
+347.945 13.184 moveto
+347.945 4.613 lineto
+343.895 13.184 lineto
+341.867 13.184 lineto
+341.867 0 lineto
+343.895 0 lineto
+343.895 8.57 lineto
+347.945 0 lineto
+349.973 0 lineto
+349.973 13.184 lineto
+closepath
+
+338.973 0 moveto
+336.949 0 lineto
+336.949 13.18 lineto
+338.973 13.18 lineto
+closepath
+
+329.301 13.184 moveto
+331.328 13.184 lineto
+331.328 2.027 lineto
+335.594 2.027 lineto
+335.594 0 lineto
+329.301 0 lineto
+closepath
+
+316.273 13.184 moveto
+316.273 4.613 lineto
+312.223 13.184 lineto
+310.195 13.184 lineto
+310.195 0 lineto
+312.223 0 lineto
+312.223 8.57 lineto
+316.273 0 lineto
+318.301 0 lineto
+318.301 13.184 lineto
+closepath
+
+305.66 4.051 moveto
+305.66 4.051 305.66 2.027 303.633 2.027 curveto
+301.605 2.027 301.605 4.051 301.605 4.051 curveto
+301.605 9.129 lineto
+301.605 9.129 301.605
+11.156 303.633 11.156 curveto
+305.66 11.156 305.66 9.129 305.66 9.129 curveto
+closepath
+
+303.633 13.184 moveto
+299.578 13.184 299.578 9.129 299.578 9.129 curveto
+299.578 4.051 lineto
+299.578 4.051 299.578 0 303.633 0 curveto
+307.684 0 307.684 4.051 307.684 4.051 curveto
+307.684 9.129 lineto
+307.684 9.129 307.684 13.184 303.633 13.184 curveto
+
+285.102 0 moveto
+281.047 0 281.047 4.051 281.047 4.051 curveto
+281.047 9.129 lineto
+281.047 9.129 281.047 13.184 285.102 13.184 curveto
+289.156 13.184 289.156 9.129 289.156 9.129 curveto
+287.129 9.129 lineto
+287.129 9.129 287.129 11.156 285.102 11.156 curveto
+283.074 11.156 283.074 9.129 283.074 9.129 curveto
+283.074 4.051 lineto
+283.074 4.051 283.074 2.027 285.102 2.027 curveto
+287.129 2.027 287.129 4.051 287.129 4.051 curveto
+287.129 5.078 lineto
+285.102 5.078 lineto
+285.102 7.102 lineto
+289.156 7.102 lineto
+289.156 0 lineto
+288.133 0 lineto
+287.129 1.832 lineto
+287.129 1.832 286.762 0 285.102 0 curveto
+
+276.516 13.184 moveto
+276.516 4.613 lineto
+272.461 13.184 lineto
+270.434 13.184 lineto
+270.434 0 lineto
+272.461 0 lineto
+272.461 8.57 lineto
+276.516 0 lineto
+278.539 0 lineto
+278.539 13.184 lineto
+closepath
+
+267.539 0 moveto
+265.512 0 lineto
+265.512 13.18 lineto
+267.539 13.18 lineto
+closepath
+
+257.5 9.727 moveto
+257.5 11.156 259.336 11.156 259.336 11.156 curveto
+262.367 11.156 lineto
+262.367 13.184 lineto
+259.336 13.184 lineto
+257.098 13.184 255.281 11.965 255.281 9.727 curveto
+255.281 6.699 261.148 5.27 261.148 3.453 curveto
+261.148 2.027 259.336 2.008 259.336 2.008 curveto
+256.285 2.008 lineto
+256.285 0 lineto
+259.336 0 lineto
+261.574 0 263.391 1.215 263.391 3.453 curveto
+263.391 6.484 257.5 7.914 257.5 9.727 curveto
+
+248.043 9.727 moveto
+248.043 11.156 249.879 11.156 249.879 11.156 curveto
+252.906 11.156 lineto
+252.906 13.184 lineto
+249.879 13.184 lineto
+247.641 13.184 245.824 11.965 245.824 9.727 curveto
+245.824 6.699 251.691 5.27 251.691 3.453 curveto
+251.691 2.027 249.879 2.008 249.879 2.008 curveto
+246.828 2.008 lineto
+246.828 0 lineto
+249.879 0 lineto
+252.117 0 253.93 1.215 253.93 3.453 curveto
+253.93 6.484 248.043 7.914 248.043 9.727 curveto
+
+237.273 13.184 moveto
+237.273 0 lineto
+244.379 0 lineto
+244.379 2.027 lineto
+239.301 2.027 lineto
+239.301 6.078 lineto
+243.352 6.078 lineto
+243.352 8.109 lineto
+239.301 8.109 lineto
+239.301 11.156 lineto
+244.379 11.156 lineto
+244.379 13.184 lineto
+closepath
+
+235.055 9.129 moveto
+233.027 9.129 lineto
+233.027 9.129 233.027 11.156 231 11.156 curveto
+228.973 11.156 228.973 9.129 228.973 9.129 curveto
+228.973 4.051 lineto
+228.973 4.051 228.973 2.027 231 2.027 curveto
+233.027 2.027 233.027 4.051 233.027 4.051 curveto
+235.055 4.051 lineto
+235.055 4.051 235.055 0 231 0 curveto
+226.945 0 226.945 4.051 226.945 4.051 curveto
+226.945 9.129 lineto
+226.945 9.129 226.945 13.184 231 13.184 curveto
+235.055 13.184 235.055 9.129 235.055 9.129 curveto
+
+222.797 4.051 moveto
+222.797 4.051 222.797 2.027 220.77 2.027 curveto
+218.746 2.027 218.746 4.051 218.746 4.051 curveto
+218.746 9.129 lineto
+218.746 9.129 218.746 11.156 220.77 11.156 curveto
+222.797 11.156 222.797 9.129 222.797 9.129 curveto
+closepath
+
+220.77 13.184 moveto
+216.719 13.184 216.719 9.129 216.719 9.129 curveto
+216.719 4.051 lineto
+216.719 4.051 216.719 0 220.77 0 curveto
+224.824 0 224.824 4.051 224.824 4.051 curveto
+224.824 9.129 lineto
+224.824 9.129 224.824 13.184 220.77 13.184 curveto
+
+208.516 11.137 moveto
+210.543 11.137 lineto
+210.543 11.137 212.566 11.137 212.566 9.109 curveto
+212.566 7.371 211.062 7.141 210.656 7.102 curveto
+208.516 7.082 lineto
+closepath
+
+214.594 9.109 moveto
+214.594 13.164 210.543 13.164 210.543 13.164 curveto
+206.488 13.164 lineto
+206.488 0 lineto
+208.516 0 lineto
+208.516 5.055 lineto
+209.461 5.055 lineto
+212.277 0 lineto
+214.594 0 lineto
+211.68 5.25 lineto
+212.879 5.559 214.594 6.484 214.594 9.109 curveto
+
+200.504 7.082 moveto
+198.477 7.082 lineto
+198.477 11.137 lineto
+200.504 11.137 lineto
+200.504 11.137 202.531 11.137 202.531 9.109 curveto
+202.531 7.082 200.504 7.082 200.504 7.082 curveto
+
+200.504 13.164 moveto
+196.453 13.164 lineto
+196.453 0 lineto
+198.477 0 lineto
+198.477 5.055 lineto
+200.504 5.055 lineto
+200.504 5.055 204.559 5.055 204.559 9.109 curveto
+204.559 13.164 200.504 13.164 200.504 13.164 curveto
+
+179.023 13.184 moveto
+179.023 0 lineto
+186.125 0 lineto
+186.125 2.027 lineto
+181.051 2.027 lineto
+181.051 6.078 lineto
+185.102 6.078 lineto
+185.102 8.109 lineto
+181.051 8.109 lineto
+181.051 11.156 lineto
+186.125 11.156 lineto
+186.125 13.184 lineto
+closepath
+
+172.27 0 moveto
+168.215 0 168.215 4.051 168.215 4.051 curveto
+168.215 9.129 lineto
+168.215 9.129 168.215 13.184 172.27 13.184 curveto
+176.32 13.184 176.32 9.129 176.32 9.129 curveto
+174.293 9.129 lineto
+174.293 9.129 174.293 11.156 172.27 11.156 curveto
+170.242 11.156 170.242 9.129 170.242 9.129 curveto
+170.242 4.051 lineto
+170.242 4.051 170.242 2.027 172.27 2.027 curveto
+174.293 2.027 174.293 4.051 174.293 4.051 curveto
+174.293 5.078 lineto
+172.27 5.078 lineto
+172.27 7.102 lineto
+176.32 7.102 lineto
+176.32 0 lineto
+175.297 0 lineto
+174.293 1.832 lineto
+174.293 1.832 173.926 0 172.27 0 curveto
+
+160.766 4.051 moveto
+162.422 11.156 lineto
+164.082 4.051 lineto
+closepath
+
+163.738 13.184 moveto
+161.113 13.184 lineto
+157.598 0 lineto
+159.684 0 lineto
+160.223 2.027 lineto
+164.625 2.027 lineto
+165.164 0 lineto
+167.25 0 lineto
+closepath
+
+154.223 13.184 moveto
+151.191 8.125 lineto
+148.141 13.184 lineto
+146.113 13.184 lineto
+146.113 0 lineto
+148.141 0 lineto
+148.141 9.363 lineto
+151.191 4.035 lineto
+154.223 9.363 lineto
+154.223 0 lineto
+156.246 0 lineto
+156.246 13.184 lineto
+closepath
+
+143.219 0 moveto
+141.191 0 lineto
+141.191 13.18 lineto
+143.219 13.18 lineto
+closepath
+
+fill
+
+showpage
+%%EOF
diff --git a/ipol/ipol_style_201905/ipol_logo.pdf b/ipol/ipol_style_201905/ipol_logo.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..9894f0a705769b2624480c9dc2b3d832b46fb0b8
--- /dev/null
+++ b/ipol/ipol_style_201905/ipol_logo.pdf
@@ -0,0 +1,470 @@
+%PDF-1.3
+%âãÏÓ
+2 0 obj
+<<
+/Length 6730
+>>
+stream
+0.831 0.788 0.914 rg
+/GS1 gs
+1 i 
+58.855 165.379 m
+58.855 140.734 l
+112.367 104.75 l
+114.207 57.973 l
+128.922 48.047 l
+128.922 118.109 l
+f
+0.753 0.694 0.871 rg
+44.145 153.621 m
+44.145 131.934 l
+60.938 117.129 l
+58.859 143.695 l
+f
+98.691 69.981 m
+99.492 46.215 l
+114.207 36.289 l
+114.207 57.973 l
+f
+0.718 0.655 0.855 rg
+58.855 143.691 m
+58.855 120.406 l
+97.172 92.754 l
+99.492 67.902 l
+114.207 57.973 l
+114.207 106.352 l
+f
+0.612 0.537 0.792 rg
+29.43 141.863 m
+29.43 120.176 l
+46.402 105.727 l
+44.145 131.934 l
+f
+82.328 61.231 m
+84.777 34.457 l
+99.492 24.527 l
+99.492 46.215 l
+f
+0.565 0.475 0.765 rg
+44.145 131.934 m
+44.145 110.25 l
+63.816 92.641 l
+58.859 122.008 l
+f
+81.258 82.149 m
+84.777 56.145 l
+99.492 46.215 l
+99.492 67.902 l
+f
+0.553 0.471 0.761 rg
+58.855 122.008 m
+58.777 98.242 l
+83.336 82.836 l
+84.777 77.832 l
+99.492 67.902 l
+99.492 94.594 l
+f
+0.455 0.4 0.702 rg
+14.715 130.102 m
+14.715 60.043 l
+84.777 12.77 l
+84.777 34.457 l
+35.082 70.106 l
+29.43 120.176 l
+f
+0.369 0.302 0.655 rg
+29.43 120.176 m
+29.43 71.801 l
+84.777 34.457 l
+84.777 56.145 l
+47.348 84.879 l
+44.145 110.25 l
+f
+0.361 0.29 0.651 rg
+44.145 110.25 m
+44.145 83.559 l
+84.777 56.145 l
+84.777 77.828 l
+58.855 95.316 l
+58.859 100.32 l
+f
+0.361 0.29 0.647 rg
+58.855 100.32 m
+58.297 89.719 l
+84.777 77.828 l
+84.777 82.832 l
+f
+0.137 0.122 0.125 rg
+0 48.285 m
+70.062 1.012 l
+70.062 71.078 l
+0 118.344 l
+f
+315.402 118.117 m
+329.746 118.117 l
+329.746 39.149 l
+359.941 39.149 l
+359.941 24.805 l
+315.402 24.805 l
+f
+284.664 53.492 m
+284.664 39.149 270.32 39.149 v
+255.973 39.149 255.973 53.492 y
+255.973 89.426 l
+255.973 103.77 270.32 103.77 v
+284.664 103.77 284.664 89.426 y
+h
+270.32 118.117 m
+241.633 118.117 241.633 89.426 y
+241.633 53.492 l
+241.633 24.805 270.32 24.805 v
+299.008 24.805 299.008 53.492 y
+299.008 89.426 l
+299.008 118.117 270.32 118.117 v
+203.375 74.945 m
+189.031 74.945 l
+189.031 103.633 l
+203.375 103.633 l
+217.723 103.633 217.723 89.289 v
+217.723 74.945 203.375 74.945 y
+203.375 117.981 m
+174.688 117.981 l
+174.688 24.805 l
+189.031 24.805 l
+189.031 60.598 l
+203.375 60.598 l
+232.066 60.598 232.066 89.289 v
+232.066 117.981 203.375 117.981 y
+141.215 118.117 14.347 -93.312 re
+f
+352.867 14.184 m
+352.867 1 l
+359.973 1 l
+359.973 3.027 l
+354.895 3.027 l
+354.895 7.078 l
+358.949 7.078 l
+358.949 9.109 l
+354.895 9.109 l
+354.895 12.156 l
+359.973 12.156 l
+359.973 14.184 l
+h
+347.945 14.184 m
+347.945 5.613 l
+343.895 14.184 l
+341.867 14.184 l
+341.867 1 l
+343.895 1 l
+343.895 9.57 l
+347.945 1 l
+349.973 1 l
+349.973 14.184 l
+h
+336.949 14.18 2.024 -13.18 re
+329.301 14.184 m
+331.328 14.184 l
+331.328 3.027 l
+335.594 3.027 l
+335.594 1 l
+329.301 1 l
+h
+316.273 14.184 m
+316.273 5.613 l
+312.223 14.184 l
+310.195 14.184 l
+310.195 1 l
+312.223 1 l
+312.223 9.57 l
+316.273 1 l
+318.301 1 l
+318.301 14.184 l
+h
+305.66 5.051 m
+305.66 3.027 303.633 3.027 v
+301.605 3.027 301.605 5.051 y
+301.605 10.129 l
+301.605 12.156 303.633 12.156 v
+305.66 12.156 305.66 10.129 y
+h
+303.633 14.184 m
+299.578 14.184 299.578 10.129 y
+299.578 5.051 l
+299.578 1 303.633 1 v
+307.684 1 307.684 5.051 y
+307.684 10.129 l
+307.684 14.184 303.633 14.184 v
+285.102 1 m
+281.047 1 281.047 5.051 y
+281.047 10.129 l
+281.047 14.184 285.102 14.184 v
+289.156 14.184 289.156 10.129 y
+287.129 10.129 l
+287.129 12.156 285.102 12.156 v
+283.074 12.156 283.074 10.129 y
+283.074 5.051 l
+283.074 3.027 285.102 3.027 v
+287.129 3.027 287.129 5.051 y
+287.129 6.078 l
+285.102 6.078 l
+285.102 8.102 l
+289.156 8.102 l
+289.156 1 l
+288.133 1 l
+287.129 2.832 l
+286.762 1 285.102 1 v
+276.516 14.184 m
+276.516 5.613 l
+272.461 14.184 l
+270.434 14.184 l
+270.434 1 l
+272.461 1 l
+272.461 9.57 l
+276.516 1 l
+278.539 1 l
+278.539 14.184 l
+h
+265.512 14.18 2.027 -13.18 re
+257.5 10.727 m
+257.5 12.156 259.336 12.156 y
+262.367 12.156 l
+262.367 14.184 l
+259.336 14.184 l
+257.098 14.184 255.281 12.965 255.281 10.727 c
+255.281 7.699 261.148 6.27 261.148 4.453 c
+261.148 3.027 259.336 3.008 y
+256.285 3.008 l
+256.285 1 l
+259.336 1 l
+261.574 1 263.391 2.215 263.391 4.453 c
+263.391 7.484 257.5 8.914 257.5 10.727 c
+248.043 10.727 m
+248.043 12.156 249.879 12.156 y
+252.906 12.156 l
+252.906 14.184 l
+249.879 14.184 l
+247.641 14.184 245.824 12.965 245.824 10.727 c
+245.824 7.699 251.691 6.27 251.691 4.453 c
+251.691 3.027 249.879 3.008 y
+246.828 3.008 l
+246.828 1 l
+249.879 1 l
+252.117 1 253.93 2.215 253.93 4.453 c
+253.93 7.484 248.043 8.914 248.043 10.727 c
+237.273 14.184 m
+237.273 1 l
+244.379 1 l
+244.379 3.027 l
+239.301 3.027 l
+239.301 7.078 l
+243.352 7.078 l
+243.352 9.109 l
+239.301 9.109 l
+239.301 12.156 l
+244.379 12.156 l
+244.379 14.184 l
+h
+235.055 10.129 m
+233.027 10.129 l
+233.027 12.156 231 12.156 v
+228.973 12.156 228.973 10.129 y
+228.973 5.051 l
+228.973 3.027 231 3.027 v
+233.027 3.027 233.027 5.051 y
+235.055 5.051 l
+235.055 1 231 1 v
+226.945 1 226.945 5.051 y
+226.945 10.129 l
+226.945 14.184 231 14.184 v
+235.055 14.184 235.055 10.129 y
+222.797 5.051 m
+222.797 3.027 220.77 3.027 v
+218.746 3.027 218.746 5.051 y
+218.746 10.129 l
+218.746 12.156 220.77 12.156 v
+222.797 12.156 222.797 10.129 y
+h
+220.77 14.184 m
+216.719 14.184 216.719 10.129 y
+216.719 5.051 l
+216.719 1 220.77 1 v
+224.824 1 224.824 5.051 y
+224.824 10.129 l
+224.824 14.184 220.77 14.184 v
+208.516 12.137 m
+210.543 12.137 l
+212.566 12.137 212.566 10.109 v
+212.566 8.371 211.062 8.141 210.656 8.102 c
+208.516 8.082 l
+h
+214.594 10.109 m
+214.594 14.164 210.543 14.164 y
+206.488 14.164 l
+206.488 1 l
+208.516 1 l
+208.516 6.055 l
+209.461 6.055 l
+212.277 1 l
+214.594 1 l
+211.68 6.25 l
+212.879 6.559 214.594 7.484 214.594 10.109 c
+200.504 8.082 m
+198.477 8.082 l
+198.477 12.137 l
+200.504 12.137 l
+202.531 12.137 202.531 10.109 v
+202.531 8.082 200.504 8.082 y
+200.504 14.164 m
+196.453 14.164 l
+196.453 1 l
+198.477 1 l
+198.477 6.055 l
+200.504 6.055 l
+204.559 6.055 204.559 10.109 v
+204.559 14.164 200.504 14.164 y
+179.023 14.184 m
+179.023 1 l
+186.125 1 l
+186.125 3.027 l
+181.051 3.027 l
+181.051 7.078 l
+185.102 7.078 l
+185.102 9.109 l
+181.051 9.109 l
+181.051 12.156 l
+186.125 12.156 l
+186.125 14.184 l
+h
+172.27 1 m
+168.215 1 168.215 5.051 y
+168.215 10.129 l
+168.215 14.184 172.27 14.184 v
+176.32 14.184 176.32 10.129 y
+174.293 10.129 l
+174.293 12.156 172.27 12.156 v
+170.242 12.156 170.242 10.129 y
+170.242 5.051 l
+170.242 3.027 172.27 3.027 v
+174.293 3.027 174.293 5.051 y
+174.293 6.078 l
+172.27 6.078 l
+172.27 8.102 l
+176.32 8.102 l
+176.32 1 l
+175.297 1 l
+174.293 2.832 l
+173.926 1 172.27 1 v
+160.766 5.051 m
+162.422 12.156 l
+164.082 5.051 l
+h
+163.738 14.184 m
+161.113 14.184 l
+157.598 1 l
+159.684 1 l
+160.223 3.027 l
+164.625 3.027 l
+165.164 1 l
+167.25 1 l
+h
+154.223 14.184 m
+151.191 9.125 l
+148.141 14.184 l
+146.113 14.184 l
+146.113 1 l
+148.141 1 l
+148.141 10.363 l
+151.191 5.035 l
+154.223 10.363 l
+154.223 1 l
+156.246 1 l
+156.246 14.184 l
+h
+141.191 14.18 2.028 -13.18 re
+f
+endstream
+endobj
+3 0 obj
+<<
+/ProcSet [/PDF ]
+/ExtGState <<
+/GS1 4 0 R
+>>
+>>
+endobj
+4 0 obj
+<<
+/Type /ExtGState
+/SA false
+/SM 0.02
+/OP false
+/op false
+/OPM 1
+/BG2 /Default
+/UCR2 /Default
+/HT /Default
+/TR2 /Default
+>>
+endobj
+1 0 obj
+<<
+/Type /Page
+/Parent 5 0 R
+/Resources 3 0 R
+/Contents 2 0 R
+>>
+endobj
+6 0 obj
+<<
+/S /D
+>>
+endobj
+7 0 obj
+<<
+/Nums [0 6 0 R ]
+>>
+endobj
+5 0 obj
+<<
+/Type /Pages
+/Kids [1 0 R]
+/Count 1
+/MediaBox [0 0 360 166]
+>>
+endobj
+8 0 obj
+<<
+/CreationDate (D:20140624163002+02'00')
+/ModDate (D:20140624163002+02'00')
+/Producer (Apple pstopdf)
+>>
+endobj
+9 0 obj
+<<
+/Type /Catalog
+/Pages 5 0 R
+/PageLabels 7 0 R
+>>
+endobj
+xref
+0 10
+0000000000 65535 f 
+0000007004 00000 n 
+0000000016 00000 n 
+0000006798 00000 n 
+0000006864 00000 n 
+0000007149 00000 n 
+0000007084 00000 n 
+0000007111 00000 n 
+0000007230 00000 n 
+0000007352 00000 n 
+trailer
+<<
+/Size 10
+/Root 9 0 R
+/Info 8 0 R
+/ID [<0a51bade63fdcf3789f544d5d9ac4464><0a51bade63fdcf3789f544d5d9ac4464>]
+>>
+startxref
+7419
+%%EOF
diff --git a/ipol/ipol_style_201905/ipol_style_guide.pdf b/ipol/ipol_style_201905/ipol_style_guide.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..17cfe71bc21c213436ce29e2cc5ac269c5ce0e21
Binary files /dev/null and b/ipol/ipol_style_201905/ipol_style_guide.pdf differ
diff --git a/ipol/ipol_style_201905/ipol_style_guide.tex b/ipol/ipol_style_201905/ipol_style_guide.tex
new file mode 100644
index 0000000000000000000000000000000000000000..963242e2bf1e840c838382f1a8f69532fd6e9c3a
--- /dev/null
+++ b/ipol/ipol_style_201905/ipol_style_guide.tex
@@ -0,0 +1,606 @@
+%------------------------------------------------------------------------------
+% IPOL LaTeX style guide and Example
+% by rafael grompone von gioi, nicolas limare, jose-luis lisani and others
+%------------------------------------------------------------------------------
+
+% IPOL class is based on the standard LaTeX article class is used
+% essentially in the same way. The layout must not be changed. Special
+% IPOL commands are used to set the title, authors and abstract.
+
+\documentclass{ipol}
+
+% Do not use math notations and greek letters in the title.
+\ipolSetTitle{IPOL Style Guide and Example}
+
+% Author names must be separated with commas (,), not "and" or "&".
+\ipolSetAuthors{First Author \ipolAuthorMark{1},
+                Second Author\ipolAuthorMark{2}}
+
+% Affiliations must contain the department, institution and country.
+% Use a professional email address (no gmail, yahoo, etc).
+% Do not add postal address.
+\ipolSetAffiliations{%
+\ipolAuthorMark{1} Department, Institution, Country
+                   (\texttt{user@server.net})\\
+\ipolAuthorMark{2} Department, Institution, Country
+                   (\texttt{username@mailserver.edu})}
+
+%------------------------------------------------------------------------------
+
+% The link hereafter points to IPOL documentation for convenience
+% in this document but must be replaced in your manuscript.
+% The preprint link will not be known before the first preprint page
+% is created. For early preprint versions, just don't use this command
+% and the link will be set to the IPOL journal DOI address.
+\ipolPreprintLink{http://www.ipol.im/}
+
+%------------------------------------------------------------------------------
+
+% Add packages and definitions here.
+% Keep the package list as small as possible and include the package
+% sources (packagename.sty) with your article source.
+% These packages are loaded by the IPOL class or considered standard,
+% and need not be provided with their source if they are used:
+%   color, hyperref, graphicx, rotating
+%   amsmath, amssymb, amsthm
+% For algorithms, please use the algorithm2e package instead of
+% algorithmx for simplicity and a uniform style.
+
+\usepackage[vlined,ruled]{algorithm2e}
+% define input and output keywords
+\SetKwInOut{Input}{input}
+\SetKwInOut{Output}{output}
+% define comment style
+\SetKwComment{Comment}{}{}
+\newcommand{\mycmtsty}[1]{\em \small #1}
+\SetCommentSty{mycmtsty}
+
+% Use \newtheorem{} for remarks and definitions.
+\usepackage{amsthm}
+\newtheorem{definition}{Definition}
+\newtheorem*{remark}{Remark}
+
+%------------------------------------------------------------------------------
+
+\usepackage{fancyvrb}
+\VerbatimFootnotes % allows verbatim text in footnotes
+
+\begin{document}
+
+% IPOL encourages authors to do joint submissions to IPOL and
+% SIIMS (SIAM Journal of Imaging Science). Upon acceptance, cross
+% references are placed between both articles. The environment
+% ipolSIIMS is used to set the standard header, before the
+% abstract. Uncoment these lines if you prepare an IPOL+SIIMS article:
+
+%\begin{ipolSIIMS}
+%This IPOL article is related to a companion publication in the SIAM
+%Journal on Imaging Sciences:\\
+%Author Names, ``Article Title.''
+%\textsl{SIAM Journal on Imaging Sciences}, vol.~X, no.~X,
+%pp.~N--M, YYYY. \url{https://doi.org//10.1137/XXXXXXXXX}
+%\end{ipolSIIMS}
+
+%------------------------------------------------------------------------------
+% The abstract of an IPOL article must be informative and summarize all
+% important parts of the article. 
+
+\begin{ipolAbstract}
+The abstract should contain about 100 to 150 words, and should be
+identical to the abstract text submitted electronically. An abstract
+must be able to stand alone, independent of the paper.  Written in
+plain text, it cannot contain citations to the paper’s references or
+equations or footnotes and should not, if possible, include special
+characters like math notations or greek letters, or hyperlinks. The
+abstract must be a single paragraph; multiple parts can be split with
+a single line break.
+\end{ipolAbstract}
+
+%------------------------------------------------------------------------------
+% Use the source code info to briefly explain what can be found as
+% software code in the IPOL article.
+% Do not use the phrasing "...the IPOL web part of this article."
+
+\begin{ipolCode}
+The source code section briefly explains what the source code
+published with the article contains, all in a single paragraph. For
+example: The reviewed source code and documentation for this algorithm
+are available from \href{\ipolLink}{the web page of this
+  article}. Compilation and usage instruction are included in the
+\verb|README.txt| file of the archive.
+\end{ipolCode}
+
+
+%------------------------------------------------------------------------------
+% Use the supplementary files info to add explanations about other
+% files published with the article.
+
+\begin{ipolSupp}
+The supplementary files section provides explanations about other
+files published with the article, all in a single paragraph. Mention
+clearly if they are reviewed or not. For example: A reference dataset,
+to be used for further comparisons, is provided with the article and
+peer-reviewed. A Matlab interface (not reviewed) is also available for
+convenience.
+\end{ipolSupp}
+
+%------------------------------------------------------------------------------
+% All papers need key words. Key words are lowercase except for proper
+% names and acronyms, and separated with commas. Only use plain text.
+
+\ipolKeywords{first, second, third, fourth}
+
+%------------------------------------------------------------------------------
+% Article content starts here.
+
+\section{Introduction}
+
+The submission process is detailed in the IPOL
+\href{https://tools.ipol.im/wiki/ref/author\_manual/}{Author Manual}. 
+Prepare IPOL articles with the \LaTeX\ class available from
+\url{\ipolLink}. Just copy \verb|ipol.cls| and the logo
+files (\verb|ipol_logo.pdf| and \verb|ipol_logo.eps|, plus
+\verb|siims_logo.eps| or \verb|siims_logo.jpg| for IPOL+SIIMS
+articles) in the directory containing your manuscript source. Then use
+this class like the standard ``article'' class of \LaTeX, with special
+commands explained hereafter. You can start by editing the source of
+this style guide. Submit your manuscript for review as a PDF file
+following this style guide. For review, only the PDF file is needed.
+
+After review and during the editing process, you must provide the
+complete source as a single archive file (\verb|zip| or
+\verb|tar/gzip|), including the \LaTeX\ source (\verb|.tex|), BibTeX
+references (\verb|.bib|), \LaTeX\ class (\verb|.cls|) and style
+(\verb|.sty|) and all the graphics files (\verb|.png|, \verb|.jpg|,
+and \verb|.pdf|). Remove unused files (including backup and temporary
+versions and dotfiles). Please rename your \LaTeX\ source to
+\verb|article.tex|. Use plain ASCII text, and \TeX\ commands for
+accents (\verb|J\'er\^ome|). This source will be used to produce the
+final published PDF version, and must compile with pdf\LaTeX.
+
+\subsection{Title and Authors}
+
+Commands \verb|\ipolSetTitle|, \verb|\ipolSetAuthors| and
+\verb|\ipolSetAffiliations|, from the IPOL class, set information
+needed to generate the article header and metadata. Use these commands
+in the preamble of the \LaTeX\ file, between
+\verb|\documentclass{ipol}| and \verb|\begin{document}|.
+
+Do not use special characters (math symbols, superscripts, greek
+letters \ldots) in the title if possible. Use headline-style
+capitalization for the article title: capitalize the first letter of
+the first and last words of the title and subtitle and all other
+words, except for articles, coordinating, the words ``to'' and ``as'',
+prepositions (unless they are emphasized or used as adverbs,
+adjectives, or conjunctions).
+
+Multiple authors and affiliations are indicated using the command
+\verb|\ipolAuthorMark|. Separate authors by commas, never by ``and''
+or ``\&''. Use institutional email addresses with the
+affiliations. Postal addresses are not necessary.
+
+\subsection{Abstract, Code, Supplementary Material and Keywords}
+
+Three environments generate specific sections at the beginning of IPOL
+articles: abstract (\verb|ipolAbstract|), Source Code info
+(\verb|ipolCode|), and Supplementary Material info
+(\verb|ipolSupp|). These environment work like the classic
+\LaTeX\ \verb|abstract| environment and should be used after the
+\verb|\begin{document}| and before the main text of the article.
+It is important to use \verb|ipolAbstract| for the abstract and
+not the \LaTeX\ ``abstract''. The abstract must be a single paragraph.
+
+The command \verb|\ipolKeywords| sets the keywords of the article.
+This command is to be used after the abstract, source code and
+supplementary material sections but before the beginning of the
+article itself.
+
+\subsection{Links and DOI}
+
+To produce a \emph{link} in the PDF to the article web page, use the
+\LaTeX\ variable \verb|\ipolLink|, with the commands \verb|\url{}| or
+\verb|\href{}{}|. During the submission and review, you can configure
+the link with \verb|\ipolPreprintLink|. If you do not set the preprint
+link, the IPOL journal address will be used instead. After publication,
+\verb|\ipolLink| will be set to the permanent DOI address attributed
+to the article.
+
+Always use \verb|\ipolLink| for any online reference to the preprint
+or article, including references to the source code, supplementary
+materials and demo. Do not append a filename to this link address.
+
+\subsection{Paper content}
+
+Typically, The manuscript of an IPOL article submitted for peer-review should
+include an introduction, a detailed explanation of the algorithm (it could
+include some theoretical background, pseudo-code and/or block diagram, a
+complexity analysis, and an explanation of the parameter values), commented
+examples of the results and references to related publications. This content
+can be adapted when the article is not about an algorithm (like dataset
+articles).
+
+
+%------------------------------------------------------------------------------
+\section{Writing Style}
+
+The Turabian manual~\cite{turabian} is the recommended reference for
+IPOL writing style.
+
+\subsection{Language}
+
+Use correct American English for your articles (color, neighbor,
+\ldots{}). When in doubt, refer to the dictionaries and spell-checkers
+(but they won't include technical terms like ``denoising'').
+
+Do not use sentences like ``Try the demo! Try the code!''; this
+is an academic article, not a commercial.
+
+You can use Merriam-Webster Collegiate
+Dictionary~\cite{merriam-webster} for spelling and general writing
+guidelines from Strunk and White~\cite{strunk-white} and
+Williams~\cite{williams}.
+
+\subsection{Typography}
+
+Be careful with the subtle details of \TeX\ spacing and
+punctuation. For correct spacing and line breaking, do not insert
+spaces before typographic signs (\verb|:;,.|). \emph{Do} insert
+non-breaking spaces (\verb|~|) before references and citations
+(\verb|\ref{}|, \verb|\eqref{}|, and \verb|\cite{}|). Add \verb|\ |
+after dots not ending a sentence and \verb|\@| before dots ending a
+sentence after a capital letter (\verb|the PSNR\@.|). Add spaces
+outside of a parenthesis but not inside.
+
+Sentences start with a capital letter and end with a dot, even in a
+footnote. Use long dashes (\verb|--|) between names
+(\verb|Chan--Vese|), use \verb|\ldots{}| (instead of \verb|...|).
+You can check some (but not all) of these typography rules with the
+program \texttt{lacheck}.
+
+Capitalize brand names (``Intel Xeon'') but do not insert the
+(R) or TM symbols. Write file names in monospace font
+(\verb:\verb|program.c|:). Write foreign words in italic, but not
+common terms found in a dictionary (like ``de facto'' or
+``vis-\`a-vis''). Do not italicize latin abbreviations (``i.e.'', ``et
+al.'', \ldots{}). Avoid unnecessary abbreviations (``Fig.'',
+``Eqn.'')~\cite[sec.~26.3.2]{turabian}.
+
+Use headline-style capitalization for the article title and
+(sub)section titles, to distinguish them clearly from surrounding
+text~\cite[p.~314]{turabian}. Capitalize the first letter of the first
+and last words of the title and subtitle and all other words, except
+as follows:
+\begin{itemize}
+\item
+  Do not capitalize articles (``a'', ``an'', ``the''), coordinating
+  conjunctions (``and'', ``but'', ``or'', ``nor'', ``for'', ``so'',
+  ``yet''), or the words ``to'' and ``as'' unless such a word is the
+  first or last word in the title or subtitle.
+\item
+  Do not capitalize prepositions (``of'', ``in'', ``at'', ``above'',
+  ``under'', and so forth) unless they are emphasized (``through'' in
+  ``A River Runs Through It'') or used as adverbs (``up'' in ``Look
+  Up''), adjectives (``on'' in ``The On Button''), or conjunctions
+  (``before'' in ``Look Before You Leap'').
+\item
+  Do not capitalize the second part (or subsequent parts) of an
+  hyphenated compound unless it is a proper noun or adjective.
+\item
+  Do not capitalize parts of proper nouns that are normally in lowercase
+  (``van'' in ``Ludwig van Beethoven'').
+\end{itemize}
+
+When math or greek symbols are used in (sub)section titles or in the
+article title (avoid if possible), provide a full-text alternative
+with the \verb|\texorpdftext{}{}| command. For example,
+\verb|\texorpdftext{$\alpha$}{alpha}| or
+\verb|\texorpdftext{$TV-L^1$}{TV-L1}|.
+
+%------------------------------------------------------------------------------
+\section{Layout}
+
+Do not modify the layout set by the \LaTeX class: paper size (A4
+paper), margins, font type, size, or color.
+
+Do not insert manual page breaks (\verb|\\|, \verb|\newline|) or
+vertical space (\verb|\vspace{1cm}|). The document layout should still
+be correct with a different page size or font size. Do not use
+\verb|\include{}| commands to split your article into different files,
+because they insert a page break; use \verb|\input{}| instead.
+Do no add newlines at the end of paragraphs.
+
+Do not use absolute dimensions (\verb|cm|, \verb|mm|) to resize an
+image. Instead, express their width and height relatively to the
+dimensions of a text line: \verb|width=0.45\linewidth|\footnote{The
+  \verb|linewidth| variable is more robust than \verb|textwidth| or
+  \verb|columnwidth|.}, \verb|height=5em|. Try to use same sizes in
+the whole article, for example \verb|0.45\linewidth| for images by
+pairs and \verb|0.3\linewidth| for groups of three.
+
+Do not embed rich media such as video, 3D, or animated images, into
+the article. These files can be published as reviewed supplementary
+materials.
+
+Use \verb|\appendix| before a \verb|\section{}| for appendices.
+
+Avoid inline tables and images when they are large, use floating
+environments, with \verb|!htbp| positioning options
+(\verb|\begin{table}[!htbp]|, \verb|\begin{figure}[!htbp]|). Every
+floating figure and table must have a caption and must also be
+referenced in the text, independently of their legend, and redundancy
+of both texts is allowed.
+
+Tables and figures must always fit inside the document margins. Very
+large tables can be reduced using a \verb|\small| font size, or
+displayed vertically using the \texttt{rotate} \LaTeX\ package.
+
+Figures, tables, algorithms, sections, etc.\ are cited without
+abbreviations and capitalized: "results are displayed in Figure
+3(a)", "as discussed in Section 1 \ldots", "the method is described in
+Algorithm 2", "RMSE values are shown in Table 4". 
+
+\subsection{Tables}
+
+Avoid internal grids (horizontal and vertical lines) in
+tables, as seen on Table~\ref{tbl:example}. Generally lines should be
+only used to separate different parts of a table, to direct the
+reader's eye in one direction, or to organize an unusually complex
+table\footnote{See the 
+  \href{http://mirrors.ctan.org/macros/latex/contrib/booktabs/booktabs.pdf}{\LaTeX\ booktabs
+    documentation} for guidelines on what constitutes a ``good''
+  table.}.
+
+\begin{table}[!htbp]
+\begin{center}
+\begin{tabular}{l r r r}
+\hline
+image & $\sigma=1$ & $\sigma=2$ & $\sigma=5$ \\
+\hline
+bag & 0.74 & 0.62 & 0.47 \\
+building1 & 0.34 & 0.24 & 0.55 \\
+computer & 0.35 & 0.36 & 0.55 \\
+dice & 0.12 & 0.12 & 0.17 \\
+flowers2 & 0.15 & 0.13 & 0.15 \\
+hose & 0.87 & 0.62 & 0.49 \\
+\hline
+$E^{(2)}_\sigma$ & 0.58 & 0.52 & 0.51 \\
+\hline
+\end{tabular}
+\caption{This is a example of light table, with only a few horizontal lines.}
+\label{tbl:example}
+\end{center}
+\end{table}
+
+\subsection{Lists}
+
+Do not manually insert bold or underlined text to emulate lists or
+subtitles. Use the natural \LaTeX\ structures for this purpose:
+\verb|itemize|, \verb|description|, \verb|paragraph|.
+
+\begin{description}
+\item[first] This is the first item in a \verb|description|
+  environment.
+\item[second] This is the second item, with a long sentence to show
+  how lines wrap. You can even use paragraphs in a description
+  environment, or math equations.
+\item[third] This is the third item.
+\end{description}
+
+\subsection{Remarks and Definitions}
+
+Use \verb|\newtheorem{}| for remarks and definitions.
+
+\begin{remark}
+  This is a remark.
+\end{remark}
+
+\begin{definition}
+  This is a definition.
+\end{definition}
+
+%------------------------------------------------------------------------------
+\subsection{Algorithms}
+
+Use the \verb|algorithm2e| environment for
+algorithms. An example is provided hereafter as
+Algorithm~\ref{alg:example}, with definitions (input, ourput,
+comments) available from the \LaTeX source of this document.
+
+\begin{algorithm}[!htbp]
+\caption{Intensity transformation (abridged)}
+\DontPrintSemicolon
+\Input{$T$, $\alpha$, original image}
+\Output{corrected image}
+\ForEach{pixel position $(i, j)$}{
+  $N_4(i,j)=\{(i, j), (i+1, j), (i-1,j), (i, j+1), (i, j-1)\}$
+  \Comment*{Compute the neighborhood.}
+}
+$\Omega_d=\{(i, j)\in R: \ \ u(k,l) \leq T, (k,l) \in N_4(i,j)\}$
+\Comment*{Compute the discrete dark region.}
+\label{alg:example}
+\end{algorithm}
+
+\subsubsection{Math}
+
+Tall math formula (with sums, fractions, etc.) must be out of the text
+flow (with double dollars
+\verb|$$...$$|). Do not insert empty lines between text and math
+if they are in the same paragraph; empty lines may result in misplaced page
+breaks and wrong indentation.
+
+\section{Images}
+
+Final PDF files for IPOL articles are prepared with pdf\LaTeX, so you
+must use PNG or JPEG files for bitmap images and PDF files for vector
+graphics.
+
+JPEG is for natural images obtained from digital photography, when
+visually identical data is sufficient. PNG is for artificial images
+and when exact pixel values are important.  Use the highest resolution
+available for these images; final PDF files will be filtered and
+downsampled provide a version at screen resolution, together with the
+full-resolution data. If your images are already in JPEG or PNG, do
+not change their file format.
+
+If your bitmap images are not in JPEG or PNG format, convert them into
+these file formats with the ImageMagick \verb|convert| tool for
+example.
+
+Remove unnecessary white margins from image files\footnote{You can use
+  \verb|convert in.png -trim out.png| for PNG and JPEG files and
+  \verb|pdfcrop in.pdf out.pdf|.}. You can also optimize the size of
+PNG and JPEG images without quality loss with the \verb|minipng.sh| and
+\verb|minijpeg.sh| scripts available from the
+\href{\ipolLink}{Manuscript Guidelines}.
+
+Please store all the images used by your article in a subfolder. Do
+not include images not included in the article to be published.
+
+\subsection{Vector Graphics}
+
+Vector graphics are more precise, have virtually unlimited resolution
+and weight less in the PDF file; use them for figures and curves, like
+the example in Figure~\ref{fig:example}.
+
+\begin{figure}[!htbp]
+\begin{center}
+\includegraphics[width=.5\linewidth]{./images/curve.pdf}
+\caption{This is an example of vector graphics. This figure is precise
+  and well rendered at any zoom level on screens and printed with high
+  resolution.}
+\label{fig:example}
+\end{center}
+\end{figure}
+
+You can produce vector PDF output with \verb|gnuplot| with proper options
+(\verb|set terminal pdf|) and vector SVG figures the \emph{Inkscape}
+program for example, and then convert them to PDF, or direct PDF output with
+the PGF/TikZ \LaTeX\ packages\footnote{TikZ/PGF - Graphic systems for
+  TeX, \url{http://pgf.sourceforge.net/}}. You can also convert EPS
+vector images files to PDF files with the \verb|epstopdf| tool.
+Simply converting a PNG file to PDF \emph{does not} create a vector
+graphic file.
+
+\subsection{Copyright}
+
+Authors must warrant to be the authors of every part of the final
+article including the images, or must include permission of the
+copyright holder. If you use images you do not own, you must include
+their authors and permissions to be used in the article in a special
+section at the end of the article. We want other researchers to be
+able to reuse these images for comparisons in other articles; try to
+use only images under a permissive license like ``CC-BY'' or ``CC0''.
+
+%------------------------------------------------------------------------------
+\section{References}
+
+We recommend the use of BibTeX with the SIAM bibliographic
+style\footnote{The \verb|siam.bst| style file is available from
+  \url{http://www.siam.org/journals/auth-info.php}.} for the automatic
+formatting of the references. Reference presentation rules are
+complex, see \emph{The Chicago Manual of Style} for
+details\footnote{Extracts are available online at
+  \url{http://www.chicagomanualofstyle.org/tools_citationguide.html}
+  and \url{http://www.lib.sfu.ca/help/writing/chicago-turabian}.}.
+
+References must include, at least: author(s), title,
+journal/series/editor, volume, pages, year, and DOI/ISBN\@. Do
+not use shortened journal titles.
+
+Journal articles references must mention the DOI if it exists, presented
+as ``\url{https://doi.org/AA.BBBB/CCCCCCC}'' at the end of the
+reference block\footnote{See the Crossref DOI Display Guidelines at
+  \url{http://www.crossref.org/02publishers/doi\_display\_guidelines.html}.}.
+In BibTeX files, add the DOI in a \verb|note| field: \verb|note = {\url{https://doi.org/10.5201/ipol.2013.90}}|.
+
+DOIs provides reliable and permanent links to the officially published
+version of articles, and they are used by reference management tools
+and indexing services to automatically collect reference citations
+from a document. You can find DOIs for most of the published articles
+using \href{http://www.crossref.org/guestquery/}{the Crossref Guest
+  Query tool}.
+
+Book references must mention the ISBN, presented as
+``ISBN~XXXXXXXXXX'' at the end of the reference block. You can find
+ISBNs for every published book in \href{http://isbndb.com/}{ISBNdb} or 
+\href{http://www.worldcat.org/advancedsearch}{the WorldCat catalog}.
+
+Grammatically, reference numbers may be treated like footnotes or
+like nouns:
+"\emph{Facchinei and Lucidi~[19] proved rate of convergence
+  results; For recent convergence results, see~[19]; In~[19] results
+  on the rate of convergence; as shown by Faccinei et Lucidi~[19]}".
+
+Do not insert reference in the abstract. Instead, replace citations
+with the reference itself, in brackets and formatted as follows:
+\begin{description}
+\item[Journal articles:]
+  [P. T. Smith, K. Wang and J. W. Jones, SIAM Journal of Numerical
+  Analysis, 26 (1989), pp. 600–623]
+\item[Books:]
+  [R. Doe and E. Prince, Principles of Physics, K. Lev, ed.,
+  Birkhäuser, Basel, 1997]
+\end{description}
+If you refer by name to the authors of a cited work, you don’t need
+to repeat the names within the reference: "\emph{In this paper we give
+  an analysis of the algorithm by Smith, Prince, and Doe [SIAM Journal
+    on Optimization, 9 (1999), pp. 755–778] for the solution of
+  nonlinear large-scale problems.}"
+
+Group references together: \verb|\cite{foo,bar}| instead of
+\verb|\cite{foo}, \cite{bar}|.
+
+Examples are included in bibliography, at the end of this document, for
+journal articles~\cite{article}, preprints~\cite{preprint}, conference
+papers~\cite{conference} and books~\cite{book}.
+
+References to materials not formally published under editorial
+control, such as websites, personal home pages, Wikipedia, etc.\ must
+be provided in footnotes, not included in the References section. For example:
+
+\begin{description}
+\item[Wikipedia:]
+  the photoelectric effect\footnote{Wikipedia,
+    http://en.wikipedia.org/w/index.php?title=Photoelectric\_effect\&oldid=592445603 (3 February 2014)}
+  is explained by \ldots
+\item[Other web sites:]
+  our implementation uses the GSL library\footnote{
+GSL - GNU Scientific Library, \url{https://www.gnu.org/software/gsl/}
+(10 March 2013)} to compute \ldots
+\end{description}
+
+%------------------------------------------------------------------------------
+\section*{Acknowledgment}
+
+Include an acknowledgment of grant and funding organizations at the
+end of the article. For example: This work was partially funded by the
+ONR grant 1234ABCD, ERC grand 5678XYZ, and Treilles Foundation.
+
+%------------------------------------------------------------------------------
+\section*{Image Credits}
+
+You must mention the origin of \emph{every} image included in the article,
+with their authors and license. Use a small font size for this
+section, and set the heigh of the thumbnails to \verb|2em|. For example:\\
+{\small
+\includegraphics[height=2em]{images/finger.png}
+  Glenn J. Mason (Flickr),
+  CC-BY-SA\footnote{\url{http://www.flickr.com/photos/glennji/3558118429/}}\\     
+\includegraphics[height=2em]{images/lily.png}
+  Lulu of the Lotus-Eaters (Wikipedia),
+  CC-BY-SA\footnote{\url{http://en.wikipedia.org/wiki/File:Sego\_lily\_cm-150.jpg}}\\
+\includegraphics[height=2em]{images/ferrari.png}
+  Courtesy Philip Greenspun\footnote{\url{http://philip.greenspun.com}}\\
+\includegraphics[height=2em]{images/k19.png}
+  Kodak Image Suite\footnote{\url{http://r0k.us/graphics/kodak/}} \\
+\includegraphics[height=2em]{images/lena.png}
+  Standard test image
+}
+
+%------------------------------------------------------------------------------
+
+\bibliographystyle{siam}
+\bibliography{article}
+
+\end{document}
+%------------------------------------------------------------------------------
diff --git a/ipol/ipol_style_201905/siam.bst b/ipol/ipol_style_201905/siam.bst
new file mode 100644
index 0000000000000000000000000000000000000000..31d7aa994d9e8576c464e022ce69a82eb3fb1ae7
--- /dev/null
+++ b/ipol/ipol_style_201905/siam.bst
@@ -0,0 +1,1040 @@
+
+% ====================== SIAM.BST ================================ % 
+% SIAM bibliography style (24-Jan-88 version)
+%    numeric labels, alphabetic order, Mathematical Reviews abbreviations,
+%    names in \sc, titles in italics, book titles mixed upper-lower and
+%article
+%    titles lowercase, commas separate all fields except before "notes".
+%
+%   History
+%    1/30/86    (HWT)    Original version, by Howard Trickey.
+%    6/15/87    (HWT)    Fix format.editors---Martin Costabel.
+%    1/24/88    (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik;
+%            THIS `siam' VERSION DOES NOT WORK WITH BIBTEX 0.98i.
+
+ENTRY
+  { address
+    author
+    booktitle
+    chapter
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+    month
+    note
+    number
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+    volume
+    year
+  }
+  {}
+  { label }
+
+INTEGERS { output.state before.all mid.sentence after.block }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+    { ", " * write$ }
+    { output.state after.block =
+    { add.period$ write$
+      newline$
+      "\newblock " write$
+    }
+    'write$
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+  "\bibitem{" write$
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+  before.all 'output.state :=
+}
+
+FUNCTION {fin.entry}
+{ add.period$
+  write$
+  newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "{\em " swap$ * "}" * }
+  if$
+}
+
+FUNCTION {scapify}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "{\sc " swap$ * "}" * }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+%    { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
+    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+      nameptr #1 >
+    { namesleft #1 >
+        { ", " * t * }
+        { numnames #2 >
+        { "," * }
+        'skip$
+          if$
+          t "others" =
+        { " et~al." * }
+        { " and " * t * }
+          if$
+        }
+      if$
+    }
+    't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+STRINGS { last.authors }
+
+FUNCTION {init.last.authors}
+{ "" 'last.authors :=
+}
+
+FUNCTION {format.authors}
+{ author empty$
+    { "" 'last.authors :=
+      ""
+    }
+    { author last.authors =
+        { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" }
+        { author format.names scapify }
+      if$
+      author 'last.authors :=
+    }
+  if$
+}
+
+FUNCTION {format.organization}
+{ organization empty$
+    { "" 'last.authors :=
+      ""
+    }
+    { organization last.authors =
+        { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" }
+        { organization scapify }
+      if$
+      organization 'last.authors :=
+    }
+  if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+    { "" 'last.authors :=
+      ""
+    }
+    { editor last.authors =
+        { "\leavevmode\vrule height 2pt depth -1.6pt width 23pt" }
+    { editor format.names scapify }
+      if$
+      editor num.names$ #1 >
+        { ", eds." * }
+    { ", ed." * }
+      if$
+      editor 'last.authors :=
+    }
+  if$
+}
+
+FUNCTION {format.ineditors}
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+    { ", eds." * }
+    { ", ed." * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+    { "" }
+    { title "t" change.case$ emphasize }
+  if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+    { t #1 #2 substring$ "--" = not
+        { "--" *
+          t #2 global.max$ substring$ 't :=
+        }
+        {   { t #1 #1 substring$ "-" = }
+        { "-" *
+          t #2 global.max$ substring$ 't :=
+        }
+          while$
+        }
+      if$
+    }
+    { t #1 #1 substring$ *
+      t #2 global.max$ substring$ 't :=
+    }
+      if$
+    }
+  while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+    { month empty$
+    { "" }
+    { "there's a month but no year in " cite$ * warning$
+      month
+    }
+      if$
+    }
+    { month empty$
+    'year
+    { month " " * year * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.btitle}
+{ title emphasize
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { "vol.~" volume *
+      series empty$
+    'skip$
+    { " of " * series * }
+      if$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+    { series field.or.null }
+    { "no.~" number *
+      series empty$
+        { "there's a number but no series in " cite$ * warning$ }
+        { " in " * series * }
+      if$
+    }
+      if$
+    }
+    { "" }
+  if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+    { "" }
+    { edition "l" change.case$ "~ed." * }
+  if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+    { #1 'multiresult := }
+    { t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+    { "pp.~" pages n.dashify * }
+    { "p.~" pages * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.vol.year}
+{ volume field.or.null
+  year empty$
+    { "empty year in " cite$ * warning$ }
+    { " (" year * ")" * * }
+  if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    'format.pages
+    { type empty$
+    { "ch.~" chapter * }
+    { type "l" change.case$ chapter tie.or.space.connect }
+      if$
+      pages empty$
+    'skip$
+    { ", " * format.pages * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { editor empty$
+    { "in " booktitle * }
+    { "in " booktitle * ", " * format.ineditors * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+  month empty$ year empty$ note empty$
+  and and and and and
+  key empty$ not and
+    { "all relevant fields are empty in " cite$ * warning$ }
+    'skip$
+  if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+    'skip$
+    { pop$
+      type "l" change.case$
+    }
+  if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+    { "Tech. Report" }
+    'type
+  if$
+  number empty$
+    { "l" change.case$ }
+    { number tie.or.space.connect }
+  if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+    { journal empty$
+    { "need key or journal for " cite$ * " to crossref " * crossref *
+      warning$
+      ""
+    }
+    { "in " journal * }
+      if$
+    }
+    { "in " key * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+  editor num.names$ duplicate$
+  #2 >
+    { pop$ " et~al." * }
+    { #2 <
+    'skip$
+    { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+        { " et~al." * }
+        { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+      if$
+    }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      "in "
+    }
+    { "vol.~" volume *
+      " of " *
+    }
+  if$
+  editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+    { series empty$
+        { "need editor, key, or series for " cite$ * " to crossref " *
+          crossref * warning$
+          "" *
+        }
+        { series * }
+      if$
+    }
+    { key * }
+      if$
+    }
+    { format.crossref.editor * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+    { booktitle empty$
+        { "need editor, key, or booktitle for " cite$ * " to crossref " *
+          crossref * warning$
+          ""
+        }
+        { "in " booktitle * }
+      if$
+    }
+    { "in " key * }
+      if$
+    }
+    { "in " format.crossref.editor * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+  format.title "title" output.check
+  crossref missing$
+    { journal "journal" output.check
+      format.vol.year output
+    }
+    { format.article.crossref output.nonnull }
+  if$
+  format.pages output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check }
+    { format.authors output.nonnull
+      crossref missing$
+    { "author and editor" editor either.or.check }
+    'skip$
+      if$
+    }
+  if$
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+      format.number.series output
+      publisher "publisher" output.check
+      address output
+    }
+    { format.book.crossref output.nonnull }
+  if$
+  format.edition output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  format.title "title" output.check
+  howpublished new.block.checka
+  howpublished output
+  address output
+  format.date output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check }
+    { format.authors output.nonnull
+      crossref missing$
+    { "author and editor" editor either.or.check }
+    'skip$
+      if$
+    }
+  if$
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+      format.number.series output
+      publisher "publisher" output.check
+      address output
+    }
+    { format.book.crossref output.nonnull }
+  if$
+  format.edition output
+  format.date "year" output.check
+  format.chapter.pages "chapter and pages" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  format.title "title" output.check
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+      publisher "publisher" output.check
+      address output
+      format.edition output
+      format.date "year" output.check
+    }
+    { format.incoll.inproc.crossref output.nonnull }
+  if$
+  format.chapter.pages output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  format.title "title" output.check
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+      address empty$
+    { organization output
+      publisher output
+      format.date "year" output.check
+    }
+    { address output.nonnull
+      format.date "year" output.check
+      organization output
+      publisher output
+    }
+      if$
+    }
+    { format.incoll.inproc.crossref output.nonnull }
+  if$
+  format.pages output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+  author empty$
+    { format.organization output }
+    { format.authors output.nonnull }
+  if$
+  format.btitle "title" output.check
+  author empty$
+    'skip$
+    { organization output }
+  if$
+  address output
+  format.edition output
+  format.date output
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  format.title "title" output.check
+  "master's thesis" format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+  format.authors output
+  format.title output
+  howpublished new.block.checka
+  howpublished output
+  format.date output
+  new.block
+  note output
+  fin.entry
+  empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  format.btitle "title" output.check
+  "PhD thesis" format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+  editor empty$
+    { format.organization output }
+    { format.editors output.nonnull }
+  if$
+  format.btitle "title" output.check
+  format.bvolume output
+  format.number.series output
+  address empty$
+    { editor empty$
+    'skip$
+    { organization output }
+      if$
+      publisher output
+      format.date "year" output.check
+    }
+    { address output.nonnull
+      format.date "year" output.check
+      editor empty$
+    'skip$
+    { organization output }
+      if$
+      publisher output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  format.title "title" output.check
+  format.tr.number output.nonnull
+  institution "institution" output.check
+  address output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  format.title "title" output.check
+  new.block
+  note "note" output.check
+  format.date output
+  fin.entry
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"Jan."}
+
+MACRO {feb} {"Feb."}
+
+MACRO {mar} {"Mar."}
+
+MACRO {apr} {"Apr."}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"Aug."}
+
+MACRO {sep} {"Sept."}
+
+MACRO {oct} {"Oct."}
+
+MACRO {nov} {"Nov."}
+
+MACRO {dec} {"Dec."}
+
+MACRO {acmcs} {"ACM Comput. Surveys"}
+
+MACRO {acta} {"Acta Inf."}
+
+MACRO {cacm} {"Comm. ACM"}
+
+MACRO {ibmjrd} {"IBM J. Res. Dev."}
+
+MACRO {ibmsj} {"IBM Syst.~J."}
+
+MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
+
+MACRO {ieeetc} {"IEEE Trans. Comput."}
+
+MACRO {ieeetcad}
+ {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
+
+MACRO {ipl} {"Inf. Process. Lett."}
+
+MACRO {jacm} {"J.~Assoc. Comput. Mach."}
+
+MACRO {jcss} {"J.~Comput. System Sci."}
+
+MACRO {scp} {"Sci. Comput. Programming"}
+
+MACRO {sicomp} {"SIAM J. Comput."}
+
+MACRO {tocs} {"ACM Trans. Comput. Syst."}
+
+MACRO {tods} {"ACM Trans. Database Syst."}
+
+MACRO {tog} {"ACM Trans. Gr."}
+
+MACRO {toms} {"ACM Trans. Math. Softw."}
+
+MACRO {toois} {"ACM Trans. Office Inf. Syst."}
+
+MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
+
+MACRO {tcs} {"Theoretical Comput. Sci."}
+
+READ
+
+FUNCTION {sortify}
+{ purify$
+  "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+  'len :=
+  s #1 len substring$ =
+    { s len #1 + global.max$ substring$ }
+    's
+  if$
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+  #1 'nameptr :=
+  ""
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { nameptr #1 >
+    { "   " * }
+    'skip$
+      if$
+      s nameptr "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}" format.name$ 't :=
+      nameptr numnames = t "others" = and
+    { "et al" * }
+    { t sortify * }
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+  "A " #2
+    "An " #3
+      "The " #4 t chop.word
+    chop.word
+  chop.word
+  sortify
+  #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+    { key empty$
+    { "to sort, need author or key in " cite$ * warning$
+      ""
+    }
+    { key sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+    { editor empty$
+    { key empty$
+        { "to sort, need author, editor, or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { editor sort.format.names }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+    { organization empty$
+    { key empty$
+        { "to sort, need author, organization, or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { "The " #4 organization chop.word sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+    { organization empty$
+    { key empty$
+        { "to sort, need editor, organization, or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { "The " #4 organization chop.word sortify }
+      if$
+    }
+    { editor sort.format.names }
+  if$
+}
+
+FUNCTION {presort}
+{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.sort
+    { type$ "proceedings" =
+    'editor.organization.sort
+    { type$ "manual" =
+        'author.organization.sort
+        'author.sort
+      if$
+    }
+      if$
+    }
+  if$
+  "    "
+  *
+  year field.or.null sortify
+  *
+  "    "
+  *
+  title field.or.null
+  sort.format.title
+  *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+  #1 'number.label :=
+  #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+  number.label #1 + 'number.label :=
+  label width$ longest.label.width >
+    { label 'longest.label :=
+      label width$ 'longest.label.width :=
+    }
+    'skip$
+  if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+FUNCTION {begin.bib}
+{ preamble$ empty$
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+EXECUTE {init.last.authors}
+
+ITERATE {call.type$}
+
+FUNCTION {end.bib}
+{ newline$
+  "\end{thebibliography}" write$ newline$
+}
+
+EXECUTE {end.bib}
+ 
diff --git a/ipol/ipol_style_201905/siims_logo.eps b/ipol/ipol_style_201905/siims_logo.eps
new file mode 100644
index 0000000000000000000000000000000000000000..972db3413d87452bd7aedda0b6cf6dd2207e72c7
--- /dev/null
+++ b/ipol/ipol_style_201905/siims_logo.eps
@@ -0,0 +1,1309 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: jpeg2ps V1.9 by Thomas Merz
+%%Title: siims_logo.jpg
+%%CreationDate: Mon Jan 21 14:17:33 2013
+%%BoundingBox: 20 20 575 412
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%EndComments
+%%BeginProlog
+%%EndProlog
+%%Page: 1 1
+/languagelevel where {pop languagelevel 2 lt}{true} ifelse {
+  (JPEG file 'siims_logo.jpg' needs PostScript Level 2!\n) dup print flush
+  /Helvetica findfont 20 scalefont setfont 100 100 moveto show showpage stop
+} if
+save
+/RawData currentfile /ASCII85Decode filter def
+/Data RawData << >> /DCTDecode filter def
+20 20 translate
+555.00 391.33 scale
+/DeviceRGB setcolorspace
+{ << /ImageType 1
+     /Width 373
+     /Height 263
+     /ImageMatrix [ 373 0 0 -263 0 263 ]
+     /DataSource Data
+     /BitsPerComponent 8
+     /Decode [0 1 0 1 0 1]
+  >> image
+  Data closefile
+  RawData flushfile
+  showpage
+  restore
+} exec
+s4IA0!"_al8O`[\!<E3P!A"3Ns4[N@!!**$!<E3%!<E3&!<E3&!W`<&!<N<(!WiE
+)!WrK+!s8W,!s8Z/"9\i0"U,&5"U,,9#6tJ>#RC\A#RC\A#liWZ6NI2g!<N<("9S
+`/#6b56#7(S@#RC\A#RC\A#RC\A#RC\A#RC\A#RC\A#RC\A#RC\A#RC\A#RC\A#R
+C\A#RLII!"fJ;#6ArL!>,;5&HMtG!WU(<*WQ0A!WiH)!<<*"z!!!-*!sSu:!XK,6
+!<9t;*WZ6B!s&E'!<E3$z!!!-*!WrW3!<<B3$NJf[$j-M1!Y>GF!!!&Nr[[]QG2H
+PfgDjAK_fs%D0(<Fq!?3EsaE4Ua<V/DKT!+&:F3EFFbJ@2TQEuj/r/A2`kNPrC!<
+a?<6>OkH605kT0l%mMYD_jR=u*+\T&B#hEoDu#jCY2(-'5m.Q66XQ[om0S>"UZe=
+ZB,Yn5F]gZM4/np=d'59fH1SB\o$cWG9#;WOJW?OLu'Ta3%9D3KtGr'N72/i4SY:
+J0:+tfg'%$i<r4&$"lph&30#97U2ih_&;a5GB`iM1%K*';bs1/H/5%IU2u,t_A@0
+M_2X+rnC8:":Z6#>>4_9%#I(YTr2<i&]I3B`gliMh0Xo0j[JF`.M-VS/%1>U7SiB
+L]a/.rlFdsJIDHP,Y#Fq)0m=98g:6l*`<WeWkX5W]EW/9l6C.e<_Y?Hl,#ftF_jn
+)'GlM?kBq_>giYtspS'N3JU23ur^%DbG\qo9"jdRI_dXXT7]I"dp$5Pi>G.DSJlB
+gL<b*&IAoi'':O0H'KcE54D'f1hD'XPj>ljbK+l@UcK(f,Y%'@Z5&Xqr`KeepG5b
+P'B=m?[HY:io?*DM[0oQAnV4l9[^)HQW$pVWLCs9\s^78pR\#]lU%;jCr<SEY32<
+G,\l^"gN)I.rHsSpT<[*.K,iQk3QAM*>"X&Gq3gg9""&2QSIPcc:DH%%0!QCLo$p
+E#po,O>7H=-TrN%/Fr/K.Y-Qao$ATtgG'EO-N++AJ[0,Ub1Jt'N%p++,T#:6P5)4
+XmO.3]ie"AK0Y3,Hh(b]MW3,e74'2eIM?q^"*bdJ:+QFBcIci<[5#IT'@3UBr)j&
+QV"s`TK>'cFBiiYZW:/C>.Dsa4g=?F!K([NMG&mPGM0j0h&0G'5QHs"[/UXqrq`#
+g2/4jeJ0>f@&a#k<>8WJb"YIH0B!:1\6t)&2,/@BfK7o./^ggrD11:dAo-RYZBF"
+;PK=oZnV*VpWaH!TFk+U64PSI/0Wu;C)tF_)Y#FkG41#cm+[*rjANsa5cTRT1U4o
+?PB]H=Gk9j>$Z-(h(<@>24<Tr!p<Wc6X=UbLn8[lr6+<cW_\LrnN/%Nj`bYS:W$+
+Anfp46?<!Z`?%rrA=L'iW?sS+_[;Ko*>Lf)cqtW5!r0]*1cC#FXEWD.>\8>]\%Jl
+a[qNq<!$:S.rq3)O4.^[=t60!"XMfHbKUfP1\r2.eJ[&VQuMhqo5e>Gc$X3[!0s"
+.S?8_Bu;5)E1Ki,MM@e`VZjO=*DJo)6Nrn^VE5hg8bMF@.l$R$gD+,E;L+t%@GLF
+4K(sI$?K:(t*\E&b'K=]@RU1CXZ\<U@XB0IB:68#OOpu_WfEPPaf+tC_,H\gpeF2
+u9D&llCF3"d_gTe]`b;f@d$QLeH99BSFe)\3]7e[[e(:niOk?e/Z^8QfM[-X5e'h
+j0u$[hZS2Ai2Bq.R@9;:>_RSj\bi`+5DhMpLRYfsn^JC:V[CQ0#:^C%[Xti;*11J
+WEeb>.rq,cC:-jf'po6IlQ2c2bhlT8@%G,0"R6[+R%M,>rFXSadljsqfAe6*2/_`
+^:%M*cdBakf6.Hf9Hd=bnFiM/?F=kr8obpurr=R_\3a1o(ZX96k`8<q[*7u)@RCV
+N3Yd:_r\`)Ygg)kDIWta;N3GUC6fV@/K"0,7)+:_m*l`8-B?%=O!prK:=f^Im]&\
+SYL3\V5PYGiXbtb*^fO60W1n2Ak7SK2D!&h.*(74g>"%:L;?p^;b+e1g]<k?=34o
+;RN94\M>#r9P<fqP^_8/I<Nq9HnIpM2s%fRrTEgi<8XqPtP+\j?HV3nq^Zc!YXB<
+u7",ZZl',WR%mCm4U7SA&:F>j91QpMa<N[-'^#U:n;3LUBH,T_@#`GAl"oX<Iju=
+,TS2CBSPIF!$MMhSk+K3:,^18@V8A2Y`$;KPF3Dj>9FK<fq2hMB)FDj`_g>CpLZ3
++oB5EX`c;\73;O!W2l+=CrJ]*qD]1+CVS;3U-]mt*e#OEo1CMJsgE6]n*30XX753
+ouTEF^Hrl%Tn";=`&'<hgMgd,A+Zl(u?)nQ`L8(QK;5I8J=3./NH\]]%`Ddu+PSN
+tpd9"c9ncYMkNX2S;g>tU>rREg]+Pr*$b.)q5]qJ_\U%2NJL(]+q&a;1/rrNkeRM
+-Vl<D2Pd9Y;\\)ZkO=(mtmF&Tp<]Hh/<@l\&\>fjh&3CkqebJlT@hQq44,R3F?"V
+doB^kq_n]%6P\h&O7rJ\!\b4<Fkj75hpJu!WSS`Rr,qaPci1e+?g&!5Z!ZW$Z#ME
+igo%>ia*GtbSu6j=K=G^pd83<XLiiVZKmIARU#l%6^tGHBV-+8p&"2(/BHVdnq31
+LWcj:,,ShFq]TaUBs$p?7kC[/NGpod"mrdi`G]Z/N?$PtupN5bT)$U/-SkJsaq01
+!7oXE9u$[uHO$H!0H\K5ULE-0I.io@_[hk/<HEY!ed"_-a6,44u`4G-3:\DiAkAF
+uiQW?KV-RNV8\r\Gbo*pR5dDB)8paptoVf)sf+HrHd"'MCOf.dIth\%CO+([NKb3
+<cqL6^[%]$=`P0HfYY[1n7uGiZ6G5*<,DR7'Bg]*osSpe?FepN\F=J0)sYpjZQZ[
+q`g>!n@c@<n\:8nk;cUN'>/O6B4@W\]m#%E$kHh>]9uD"#eZuOm4O&"4?0`SsFY=
+XRMiITZj5$'E#?9f6SiMj+VNrQq]!i^:+"HUqQfpQXV&EU1kr?_3`GLe%c`2"JO1
+OJRm9hJh!T2<LY@T]\aK4+)inr@rCE3;M9l;Mt%S45<Vc*sroeW]I24sr]^?c?iq
+DZbUgaMsC[N1b#0&$W@%WBegD9t;Wd/!-%o+0JuNm4jkIC\DsIWW0Y(\CkOHWDY3
+SuZEcSBko^hY)C7lCWrXD]QOGoCoJ<(]"BX=)d(Z!R'ggrrC;iGF`'``#AtWnbHO
+"l'@qnSl7`94!iTTm$oQoY/I6%-pHDl:IY1FkFG<.W3a5UIc=@(7is)$*'f6d6re
+H6/VN\?h"M[mio8E/N:be7g.j[(pE[)Ob?.X*UM,Kd/F$"dmele=Om"dV=b7aJAL
+u-_X]Amh8`X9o+m1_Mf3NpN3UKiaH(H5<o!WILMU,9)<(DgP?V."qoW](2lrX"I\
+d'fY-B\87(nQX.qnKMGk5pV?;u:tpb,dJ1r1Jn_18/;gYt(82hEH?""0$[2\Y\Ag
+2Ok7)r(i_@W8["'.26:/)2#r>[@jscZC)VqC<5?Q72Y:UW:NuTGa4LT,L'"0lZBr
+kF;heMP$/_>%L?mA1dtSBXNC@rAsuDfqf!uI&!]5Ua*#NNanW(5Lu-_%;`*HdfOg
+!o<[/1c@5om<o.NYd4YDMZJ[,.KpI3'ZoeC#.Sn!:2hgG'j!1qge<M4Ze2[*a08P
+;N_A8Rfj*q5/af6m0(0q((2SD1lY+kW;gaD/5)c?.GCECQuVmeN6'gcq9IMs0'!h
+%
+i)D;(BcaTD!l5B-m<eZX->.AT9qIo$W*AF"Un*Eqsi/M_m_pf&^0R'AG:DSmu(r^
+@^(T5E`i!e!4^X]6X?.cTTjV`s:7ND=T*1l"d!`IAGhJG@'poT!(0#D+=o]HXi\s
+iqn2UDVpuOIgsf8`dLKB4a?>hcKI!0gmGdPV=lltTBbr:*])%VHoPts2l?/HIRrk
+,fdFaf<W*ddD&Q7a<4n,$V*r&7HW9k2IJH[`\%N:c[&Y4[)q9U@)5`r/@pb]XHRT
+?s\V]O@83L<h@4H"d7]5r"rhS^?^]&Z3H[(05U<\V=FpFYhl^6$\^'b@&Z*o]S0.
+%
+@SpA0qqhp+:/S^*#6'V)LJ3PB<Mc0TO2dWkWJ"KJe/4;hK"=<Xa!KL\`>%?UDAFX
+I:>1(P")pXsudf.jM^gg?Y>mtY-hbT:0cL11XYSlW5k\UR'C2a0;!k9iEi'X'mr&
+'_^N:MpuQr_L72?/@"UI3\2@:>5:Y:7^,[YTqP<J_"UBmPB3kaE1,\lhU9Np,pJW
+cb;E1rrA]%Fk8\B@/Al0QK\UOTC8tRG!)']H7nF:GG-;!Z3Ic1V+YcFm@bF@C"ua
+n?&ji"g?2dNq,.a:+6dk@krbC57H]edPOdIp(n4!qeH4.ri9trpUMM#@d2'b7YC/
+o(5LoYk_KESkR&`DI<<ea-P1jqfpC$1L"k^4ph`K[;=R>K:]?oE`Q#(.eU8@5KCU
+iEmNDnRop?ua`:;c5sUN"i/F85s(pu6r#$\I`u'm&h')N;Ne2?d2gk?!nm(@%ldh
+R?S-FgG#]^G#Rk%k1$CXZWP#-Np7)/R+@1h=LT1b2PHOd13#L#8lhX[sM;sorON:
+*G&s\`_EVm[S+j'._DgPkXA0nCc9K1!m3PBEdTG0%DH_,ht9^Ak1G_^c??VA^HhL
+S(Hm*j*H(2R0&87QO,SMQd32n'(H^:S2m225IaRDSFk#.#<ln&EXG%'Jg7R#Xk@R
+Z#Timr0msgIi55&?W+4?Y)3V`oAR:O&77<KPQ48fL1bnPKkQcd^5dtc@U6,.g<b$
+nOPh)1_PEVV"-FOR17mN+:.lj94i4S_\[3-d,?H?I*%)4[;p3h;fT3Rj/dl+Y-/T
+%
+YX++dq,MCI:bBDob!tCku4BIO<tIL\pP8qFr(Cn%N3B#57'#**;3?debQY]P=IR4
+1HMRmlhN!eI9=GIXZmP>3qMsTcG..M4Gqp3:OJ<JUmlhctDfrAS?QVqRRWTQ\19=
+*JMS;<s8&(IZNc3^/n=8dg#Gpgi6W!G)rIi?II4ja=.R][6MVY5.+[O\:W/e57aV
+2a<paoDZR5S_kWjar=W28XNhEB?<R$KRGJ2+^(R_2rT\sd9.1fgX(jIPali!tSH2
+bfn@!UAZ!QFPRd8KR#dA^r2mK;N(.\k2](o22!<+q]_(%A6-g:g1dVOAJkDd]/J&
+@skHT2)$Ce]H#GUYA@D5P=qCioahV8)%TPJrWg]P-+Kd8N@%8eqKX.ieOp`LYs>T
+Z$IX()OJ(Ep?=:(Gi]ICV@h?0tnn)9hBN,mqS:FRP[N?%Or"V6f&%dZU%6;FP0^F
+MJegT4^.#=8X%$VI1,gJp8(EZDstDM!<3%GoH.5Y?PL:pFG2Bq(/$\\.YY:$qsP4
+/`->QElJ^f]SII4Q(sQkcVHZou-ol,KT4j(\A4O"X!o$<aT+1WR^SUKY337!4$:R
+:cUe<!am8ONuUA@knDURRS3-H<,32-9Y*W6%"]u(jhp]/kfIJ;ZJ-uZ;QaBL.?K4
+/,SHqp,q=sKKF"Z0@TAT5N%?r8\U#`XIn%PM!#AYl)cOL3I5?!%o@g*j5;^e1!lQ
+#pXEP&qtjqG"CP9`[hY-n,bY!1<jCE6+*5H>P5`'l!-)mFtV=IkE):Wt*tUQAZ@J
+?h=%O[k`J"baG/1^9$^Ba!O>u(lYdlFF$M"gf5CLT$"*"],hb/BWJ-fD'o5Yl^J=
+-?oO!Y2kR@Ig5WIIlQT\Ec;@C_]PWo#N5]8C1eU)7EE7imo_$V"`^6[5^/nM7=op
+m]i]ZVH*K)i=rr>?d2kb9`8VK5*!;ZAYb)D/99SbmALYg58+8DZo##04jf4^+Vg`
+#i\-aKRjS31[)Z5Hs`A1'Z2P%R<C'^G@oLfn(&\<+GaG'9l!dqp/<P3nqpe>%QbN
+\U/+lu_To>#f?/X<uIE7:eE>/7(6QUqK6s='=o+1\@n_oLNNes24mn&-)_5"9JW*
+!X&]/!WrE&!!30'"98T0#8%RS'-\,6()J2M&/?$-1I3cT1c?^J6iYj?#QXr+!<iO
+mFX\OD!]1X-om.:ELnRGm.&q,4&t=:\</n.\FO<&nTmDBmYJ`r"&%X%ud&e`M-h7
+uel@Pj(pSIS-/k1c'WCZu0PiB7@Be!rXC9@4W8UH"=K'*F)d\gUIrOXO0^qRn7,H
+eW,Y#hEgVi0.o,J>u>g7.N)UX0kpM8^7W<h"#_]9teFp1rp)"J91g-t3_['OQcJ+
+@R'2'RD!9ku)qo.8lDZTAVqK5#-f5Z'(r1q&*pr\8^;fNEV`B2up=O`qmAbC%OJ[
+JE1*=_-Jpm<n(>O1k#0"Sc5F0oFno;JkVsh'BG%K]MYD!DdoOFk'K3?]L(7m3b2E
+2TQk83<:c!t)Uug^VO[d&9uj6l5mFo@mnlA>6r"*#.'LjZ>?"U9G[AXVXXPiMqg\
+<`W/F?E[+PF;*VlL;'@o#r+!]Um?:%.1J*+E_:M:ZbNnYbNM!79<BVL>[0V-FMBK
+dWe.'(Kd&4[NH?q#IjUZa%^J.7c&gs0AsN7Z>GENnCc.IAfG,W-lF?b;QUnruT:A
+N3b^&k9Sme4k2H99,`gWjI8SD)0`OM8G-uS0RM",G\9hmA[?S/1RJ9K&dL*.^Y2=
+;Hb2^SFj;toc6mk&\lk$;-jRlP[gKE*"MWc3Zp?,5mZ]FK1amM^:Kp1[6"#ZGu5a
+MMU;k7QSPEG$QeURd?I(r?577ICTlNUBcBZcT$'CHR7qFl't?ui*,JZIm",b2;iY
+n#YBk8C(<B<W<?[IO1FK,O[d(.j,jc+a.9muS/*uSPkr@,aF?7ja%9L67&;Gcta)
+1G9e2!9Y1AM)F'&_gmBnbr!M8XJ@nDWt*AaGk"*h4Nqrgdf[r]a:@>]:h!8Ej(>]
+soo\UuZ2!V7987!)[=U0rE:$R0khbH`9!jQ-ma38ED&fWT^.:,*aZAl)+urji(45
+E1C^G'0Mp%MWdQ$_Dl5],'l[,j!/93?X%PV6B/jl:SEF0JYU"UR5NQWgMfhTBqfI
+5GP0aUfS'W\Q'hs46='oXX2QNf#]`8lW6dIO>sRJm)WXROH8,FUW0Pm^pJ<88/"S
+/7<HkcEFr<u"\q>^S_Hgjj48k&+pm[luiU9u'SLa^?WlIu?p$AQ;qoDX.per1>O<
+fjAe`o(p]8a<k!XKDX0b=gtoH/:PE\(DLER2J3%C-@bgOVbJ$=r<Ga,ptbm8l`5&
+esTkmCh'X$lLj,N6@nA9nNBFDe1Nl0%)<;auM4"h,8=Fl_HgeeT7&3.!'81,3$3]
+flOWs^n35A!AnN;p'f/T+_eI6SX=FB8<3VX;kXaNMK^EsIE7,XLXC,bLl,dgXBS9
+TD#Ij*P=04l&2PZ\&IMmL)C.(;6R?ab$9['M8:X7aHr7K%13'i$1Mt@n2F2%YqGu
+)VXp_C[OgHh)7>Q@:g?1lD>UI_,7,mS5!#M))p,9(]>4Lf[^NelY(2^*lBNT`Xeu
+^HLHHJhX9ObJIp"R3EaR.X2'oHEoiOe8QA#5:T9n@D%C$Nr,]sRZ(dB=X3Rr-I@N
+qjQ\gbVpIXk:+H)nO-%0=UaIfCK#QUP^dZ;;TM@[-H%1EM=XGD4#ukg3U_B&?DUu
+P\>TMX.h2ep6%88"&(*k\8EZDXL\ajW7hLP$,]6e^p,4B4171AW%c6ZG4kBcqjlJ
+aDR.IVMcS*M\Q3-Ua,`@,1"=p(c9s*C>?0[+D-lA"cLK!gYjGkZCKuW$g[H#&fl`
+"$'[JYFD/./$Y.;d)q30fl$IPl\NbN%7fsOi>dtQL5:=b2i\Yebu+Q9ks[Z?8K1p
+5$,iV=L`7:UT)9l&Dt]Z\BD9/X33p;`?j)eA<j:][I7PP#-WMX.(F&]CXI.rKK/Q
+hQYkNo9.1`-BLq(;Uq3>_"7;f.&A-;fu*Kj0h].`kW9J6np!a03SUaKL,$S.CRW'
+>A0<m:fM.0]mMKSX.frRA3t-j'1KdFIbN^of/cihHV(-)<9O]k+@'XsXs9K*-qiY
+Y`5APH@?^b+[T$Qu8n<A=+2Pf>.YZK[,n,;BGZ<Mbm8IjA?AaL]TlA*#\maNYCXa
+6pEnlD.e#AM1."c@O![BPR-7R1Mr;$#dKT;Gj2#EnYmrq)Of'C,O'n)>[5r:lHjL
+A8f9iTl-K!QJ7O`F=/iXmB6.1j)H&\6SZE2laJeZRk:LoK661j&MQ$>N#q+M0I_1
+QM$06ZnttVMgn)e&bn0aD1AV?V*`:HQM-_]\'DIba`k^bB#Cb8Sr";;.`.?*%)KG
+.C;g=rW/GH&:5V&B[S5"r0Z3.A9\kkLk1_t4UGjZ$Eh7q4!+#YOP=W7^#:tp1=QR
+BD\iV"B$j,E78Ir<h6t\kR,1o$4L\sJZteEVPM>OC^"4.4qUCf?[c_grD:':pAP(
+9r8gR09h=:5MEc$Dr.uki`l^YKL!!fc575pNt(8NB/RL.Cri1$i59DXUQA9=hd9s
+j5?KDtr9>O9]-GK"7P]*_5jZTO,bQQ=a_<ttR>Y_m7)S)mj&=;[c`GkI$p+P=0IY
+1J_>\)o/C5.Kd@__E+=EIYe^DC:!(b^>f/fVHO"^p'g+rUF=K\CR`t#@T:Q%#N,:
+m2otK:pr81oEdGAQAn:,=2.^9Ds?Xap;<9A9KQM304%oAE8Q6/*Zf4cm>2?`B1aD
+r9Nrk`2_4]NXq^1q_cUk=1,7NO3+/apq?j<s`GO2IQ`DjSN%=G:Rh7@jh(hYE3oO
+<,H.tM:`:Rj0fdH@j!$](R`l?tlGd!&79R@l);^1d&asL-5>"61"eVjG--c/!'c/
+ek?gF'n[/G[RNmN7klZXRL8(R*Npb8]';U&+*OCt\)4D]SNtZJ2B"rrD+UokmYBA
+,cNNa,KK_eXsrXDMH`#0&!AI+`OnCZEZ-E@")!ao.PC?'8g$Ml`ADNG$Cr4C4*p)
+>9(/>%7]cV3)1mEOai-+fC$gqW:9ZK.h33&)%Me7,S;49J?&t=n6Yo)?,,F<Dl;.
+_]-248^N1o!I+JJ/'O=S7]N^dV:<E&QJU^MM/FkIGRn^=KQIg9+)Xd9Ea"dI?/S=
+RC'h5*G[<Z?]A'!FlAl"&uOKCOHr0#3D%.@YTfD;"/2Ac4Fqo8X9a0K88Hoj0k?#
+3^I'\581]Ls*uU'\:$rS<D"($(As-6?*>B!QR@j$i@ik1'tn%3*8)ro*J`C_"5-;
+#^LuW6*`d@JeIHA$V5Jj8_qM?[guBehWk&,Q@a;h^E9N1rCD0X?;2`S]TpK::V^Y
+o$])bCj3o%:tf-r5Let*)0(/gfoGUFQOhXV>I\Ifb_,^L@C5Q3``OPkRbdHaK*U*
+)I_^l+BH;A^9#Q+$`UO@p@hK![eAM`cYO*"%<.FC0lF.iVG"Q5s"`Imdo6XPVptF
+;(4,,,T=RU\o?ro:0VQ-q;#(3cB=H0FN8EfC<'dA,1VI:U@8EG;kWMLb0VO;Bk?#
+`Ha164[qFSpEi!P+E_'4m2HZ6@5LrRU9e*QoV8XG?3WV-7dR9.TUTD3&anD9?o-'
+MH_=RUg5Y+fLSOgZ<lom:B7?9%3<YPm:]6$Y+'jmCrAN+2$Kg,ajt?/aRniWn/g\
+],,.nj'^eA\q!;UG+kGH0=Qk&2N(C,9IUEe]sAcXCb;V77>ILt'Sn(r7:58X/!&W
+T^f^_j&ftA7-%6trN,^'iV2Jq?qDJfs8ns8_\JEP?MG8nb8<q%nA3sUu/'+I`N"g
+TL1r4B677uUJ&,]`1-eqmcA>!T?"594W7HgQ1dlZ*WMm@temj,c.I&qogYQ"S^li
+#Kaf`(r&/TXM],Y%Wdb1T9[ij:I4BM5'2HBd$p$M#GFV@Og`h4AXP+qHi#p7s!<2
+%
+cMrj+?VBlu<903a@K=XN7rM;rA&ROF7_%nJQ=@(U6OmP+NEm5i\#u;.W242p:KEZ
+&>ctd.B,jH!=rIfi[\>j15'tP*>YAZIG:[.N`iY9Z8*8j5jVm&iQ#0MilR/*qbsh
+A&cc"d,[ANCP^Q[2P*Sq#0:l/N^)OS3usRU_c@oK*Ee']HY/brGa?7cpRVPLCO='
+]e@;s)Z2Xet>3.2\A(N58])p#qp&>"fBhV#W_mA5>X=uA@r\^U\XrXb:9ui(BYY;
+Jf$!0]CO,NSiZIb*t_uhU]k?6OjH@lX3kP8N\a0&6;`[u4f\[84MYOK2/'Z`'lc9
+L>1/J]kN3U6o;FPo.@]ZD3;>.2!-VeJA*Ue4%QVBQR1bAfpE3tD<99Fr>0+qceKO
+Phn\aQt]#NLojpr+,4uYSsl&_V?3KE8+t0NU@l415h.i1+_,1Y8IgKOWTMh/$AfP
+CelbT@1b5D.WT?t+"t[(7;@8&,eH\=R#&/8[jQ`JaF&Tjhh3a\(]OL$Y::+`!&].
+5fBh6Hc1/@%f(&2(L;LSAjdF&f5E2Mbceb!MQ(M'*4k\gr/<_j&Z/U^eMf8/4h2^
+&2CqjT/jPR,.*_1N$k)KA<h$?(bdC>'nqfmD,Ock,q=8?#Tpj.0#+JO`Z!^qti+:
+,CIai:g\&ZZTrFls:\mCNbHN.1R1<EKG8b.A@Bm8iAaYu*?T>Pn38+r^'r"]W\C<
+'L)c;`=i7?\gOR<q*]Q-1"tWJ*S*K2fi=$+-trQSV;lEjU+_[&b9eRB%#:*1r]XY
+0hD6)F]=&,H?dl@-IBK=@q+!`K1=ITpUu%KMd(!;O'Z/^h<V5M&]qGX':03celN;
+p/aIr*Vf'7I2S"Y0D09j7KT.HB%S31iNZ!5$U%V#mRLi)6dgAZ!-ns-2?('g+qQ8
+K\b:O<BepFu7D'-tdQ"PA'g:(@No5D]e4'tA9=S:LnA`)/naaCKRiqFt+]W;V=GD
+_%)(\5Gj-LW-Z,:F,*-YskD'9-YcIik0Z2/FqHK*KX3h`o5$[at!?16%E)45Wh,c
+;Nnf?Yp<CZ/#cEj.(ccWT5%CAa/d&/o&lU+mA0"`A0!)Y4cQalc$lLq!`[0T,Ip=
+\@_3SHE2i"ZGN3m"Bi"l7k"n#q0\l)qKDs2%=>!]m"Xf*;\,c988o0D80XR#R;)4
+r;bRuiK[VK,Hf[n!U,*D$>1Ztc.+XF2]V*gL2Ts0)1]tD!mKKg*9C=>9!Q6qJ`l3
+*B8##^[&$I_Fl?>oJ2rq]DHG#'fG^b+QGB7QT(C&X)SVK2W[VO+a"l:&Zg8(G1>h
+^4M)ZnKN?ElSP.HQRE.>IbOduFp[hqEhLM!9l%)T":+l>',arD%'qg:fi<4Hj.:S
+[X@>)gab;kt*Jf5#l>:.m#P!jI9oZNO\k@#TBZSJurKQ$AWG?R4Z(G!j&')7#BL0
+H5Ch&mW9jLJdSO4K&%r:3C[hR.hTkTpn@ZPl-WJ*2W28cN.Aic7fL>D37&MDEfAd
+#aXkBSGAe\[nf(HiN.=c]V%>H9R;p2BOnt4qj0[OEU2I8YjA**+Tl$au`MJbB)c^
+mDjL0N.UM+m`6.[SH3(f?<E(LVr5rNI>$Rt_S6>U5M-E3JR0\^G(FKIMPT5&%j72
+:)<32GNM6llrD]RO$Ei1o`K6B/WkVVA"A,taeZX+#XM4&R%qBuZFY6ppV_UR,/*Z
+4IY1Mi#O_.XDpmE*[<K:"2YZ>@FC\Y88?j>^`TU=dSuGYh[]/rBs!8/21!P/6JlL
+8*FKq$!_&FP\-f7N\R,hb1rkp_).Zr+.GYa_5bnO$FIqh@Nm#!$B$HX;rDAUphdq
+bLfHMT5#antP`;\5"j1pUBt(pPDJSAuOlW8qkq"b_Uc,/Cn.n\4*W\Y6>q-Wj#i>
+fhI<IV-,5;nk6`[C@ND*m:C=qj4[5:$`PHVR&V>WJA0u6(_X[A<9#Y!Qt5i]#16R
+^1Q-&UD!Z5e2dBfhk1!+:hKQoMdIiD%A2<E3$uS9W;Cj7J)?^TC);p/HP.UbiR5e
+!tVo=og\]I83,:?W*jreb8&cl9b1W62*9TRQjDm'hBAhFTT7S*S2BMl78o'iP43s
+!-4>/*@+cD&0h!D5U:>\`iJ`<NqKYc1>J/e`Vs80Y6g/+@Y8ju#X3t'TMd7*7KB#
+]'Nn:4%b0J6'rLu,a2qS1g^R2>rA;nNJ0DT_,Bb4B&I-K""!p?76B<4`+)t=OZg\
+e9fp:)uqG,MVga#rj=q>f.OS*`a"#L-.h,/gjN?$R`F@YQ5Q.Lm\$0iC_9u1[l<,
+'gj>(3WO_%qbj\Fb%4qOE=%!lR(^rQHIk^aX]FMa.c!9<m*a:u61+A\>Cs55d7[X
+eu;^H4^Q-p=!QW8V6:sdX+C:<*'o/,>RYL.QFB_3.r^p#!u&i>=`2lAcDb.)5")Q
+Pk?l9E"*`Z2F-">Bj+C096nhMW]3Q%)"GEq`N\97"4Z+nreM=UrlX/4gB=Dm'""C
+g'GjuZ[Uh&OY-liGIK7%/![8M';;r`t6IU'$ip*!UTSeX*'4e,bo&J"<;kL?Rau#
+h>W6[;6,2,!BV>E5'++B)!38fdGO^)J['sIoX\,uN="n=74<Y=2o*%8\,]]855A-
+O&Tijb3bRrY'U:!tfi2$^P#)7aR_f*!B+5?*[to-kE+2XHLp/`GucCT>a0WYu,He
+.pRKRW#^;Joq\N>bc\qUuN`R)@+`7H+$YPb'q9+3dEk6ccEZ^8-ioQY)\^K0W@1Z
+3:=#(:sI;*j#othggSkL)^#G2";=0Q9;s)d"ADN!"@`#5^YM2q7Q7a,-ZdibnB`2
+E_#mOtdN#TL/>e5jMOdq$B&)DCZmea0JA;-&!'Lno!<WE+!WrT/#R1A3!!!!"!!3
+6*"VD@j0a9oW,#JRZ11>/6JYB=`(*c/._9q`t2,\JRnKfu#ZN&VY#QY#.!C$UuFX
+a<gPYJs]W*t])>^&u%0Cl:T\[_9/K&;>kT+@0Mh.q'jB_-NuUt!km(4^E>O(_NKS
+/$6V)-odY<RC0H?eQso!iV>;i$hV\G#^*['F`Y]_B4I6R,YgHJJL,\DA,,d`>b97
+0ISf=DNYY]J;6]cJhY\_49]T2]=P[YhX0$f:F(E$<4,SqM+L#?b[Eoq/]W#&a!>g
+7Z*jJ:5Y$TbWgWK5"q?j+8D3Z8o*9*2!n2h[YY@h2G2;'5FYfUYkO)2(*,[O*K+A
+47#J'Egnl7F0D_'X"\u[N-c/Al;TOh)Q3)p%h.f#3le6K!Kh,H`\Eh=9j6-?6h$'
+bu`PVhPu;q_V&6QsTjMe,Erhl<Vg,:WoZM3e/A2jis6\oWU[FM't9EQM3$;)(-\Y
+L8EP:?kui.W2"9j!lRc?H$+1^MG=^iblXO6%hHCPi+7_b,:n_nomqui"CSr"\kM)
+Rmdka<@obLW5)0e0a6UW:QR#?r&.r9`jGXn#h[.<b%0o>!7oN-3%&i2Y)g/YqWnQ
+mW#R5J"fe98_0$%!>u/V0GNDdaUm1@Q_M2o90rti6<4-NoneDnV7e38#,;Kt\j[0
+\Ph%J)Zq+c28@8Y21'jY2)S2F%`,_VF8S0/K"8i*']c$7V%*Yt'abdBVV#Sd)!B9
+jRf-<V#GoGq5fcJ\F/KcJAm#6dhCR-`b(X!<l;p/#R_@Wq#T[Kg673]9[f_IQ/.B
+\V[=.-&))TjnT2e0WCZ,I4LoS2Ff1E2dr>"E:/mEe2*2Y&mD[MYc8meC_p7_51,I
+U"N1d<3Zk3[tbDUQ+iO!P'C!)`HE/f;WtUsNXob0RAW"oVO&q2,7@Vt"Wj$Te>fP
+pOkERCD:F>`$Q5]c!P3i54h_i??F5gE<uYGSAJMVaGuI9T)a8!TZR=V#1Dk(#ar+
+[hC#M?\'TZ'g1nBMV!+A0t9dkFP65dKP4K`[$`7DC<b(c-ODuu&h_g0T,-B/17-S
+P&R#e)$i55QcJJ?*C8)(OqCL"&fGj`%]D<`Npk?5o[X$P),UUDPE/!8Tc;2`..qF
+^)=h<8&?7d5!kj<:sQ:#s51F;eeVhY,.PKa/!aLRDDgP:?l"ZH`1Dh_,Ce*-j_M)
+29"=K!,JkI\((ea[cLH;4mp-'_Q(('@Cl2f_rXlF2m=@g`9.eobOfJuWN)6sd&CX
+!h*cEiEgffRe:&&fPm)>c+.AqoUcWa!oaYW&<O'JW:TA[_qQ#8Aa9$_D+-+FPWEl
+(;RDj;:Sf5;S\sB>6DQ^+fAab'Ka(4r1I\uV7gT@)*$b"l<_9-/'G>Q@b0$3lM.]
+@mgX%aFf\6%@k:3T\-[&N'5G#6-:n.aH*_9-:"0Q5,.MK1i(='C(ZjhD*sDQear-
+5!imWi8?L*p?i;B6@9O'WoqfKa%NSb7lM^KgStq)mY37'ZRCI6I_HV<Q4Eh]-sH,
+B4V66gVT\.?'cqg#7Vo`WiBk1m&"9aJ%R!AT=K3+G7$e@SG'0tX3'nme_+;t\Pe'
+M/'NT!18KK3anSK"G-RELL!Ib:;ROg+<Ii\;TVHVSoMaIL$cWoNLk_Y"X?"G#T>c
+RsE/EqKjYb!`$DO;;K>dC\cJmWRgo1BZeO8!5&SY""cqT+G7U>+TCt/eD<=sJKiA
+r_:e(o8O)_.//`&fJb6pq6Da"q&dObFH,q\lc=UNpkJKd[R/RWRV7<8\O+_N!P$/
+gNKg;Ts9$UlE>I!#7ms!D*hWOB'_cb]1Z2W>/-(C8s))if*m;&*tdg(U]_(q*L+)
+C4^O/;e]MIcNFt]BV/&.0]>sbVk)[Fj]:.`MHp^0$>XB'^gP<se$u_Z4N`">6Woa
+FiV+'qVOPKH>H)`k"/Knah`mc5<bY+O=EXIK='99GDHt$[l1u9p@FE"slCCKkjY=
+b16CNVf9fUs6/b;<a]n?Q#[SB;re"pF5NROCIH#u+teOqou"nB5"-n4F&r@AgUL1
+hU(j34O%?OO\kEKsB'jEAEJNeBd1jZqJ?e_O/e>b[Hq#c=Pn,U"gp)0"[ncTXtj6
+ef.GE@fQ!d=[K[?6%Mre$=-i\O!%Y_O?&#_Pgs,%J`o/kZ?UW;t*en5cF9,U8Y5S
+Y0[2]'W:s2#_&DjFF6Or8LJ^Hd<2fU!`o%r`s:$^e,.Bq1I^`Z*:dBheT@p9ai3)
+?\gF\f:@*:V0W8\qA@"sT"KP<p^7p)d_obufM6L!m2iK7e?G"s]kXpPaonhOs(\7
+ucVRfBf=\umVm!XBBF?,4>H-8A^&H;_>Q+kH0pK'oCL$_hRIPp*`N@Us[g=cj]=A
+Rkd7kD'\]Dhl+paV\Sb"DAGA:gOW9_"YqT;qj*S)2lI4H;BfQ*FBl3$DSkRlM+A=
+BAiiqW#uGA_=u._JS=3p234+\4aOiWT7_i7,D!e`oO)7BN<HeGu1,,R)5?9V7rsR
+8Cm-,<Ed[%R8.):4"+gdF+bi\[SFr'"]6-<:=eZ2be#C)_8/ssGh!YV4/bGs1ZH.
+m8--%VIse.na$iJ;Od1'!CT'/,+\bke>>>AaIS.2JU8B7opWDfJI<,.,b3?("D7_
+R;:-u6nTW*%<\FNY7VqF^-MWae%UqXe4pM[=i;=rpG<P"r,40*4+ReHIdLI^qCaj
+`NI?VsHFaPS(5Y+LX.D3^(Ja#ii"TfSU,o\m"R!8/9t_&Q?P:[3EUBYMqp\^@kdW
+tm"5U*I)dk5PEMIeJ0c$<&U8*KJcYbld4!o-_ET!9O4\C">9A@3KiZ*2p#[c!Q!G
+"]8Udr?3Eri3'=,Zt;H.S^2]_AP#Z",?1g[)\kpM$'HF1%dR0\j"H697s$#'>_Ph
+@lkL'@fUc&^ka0JuA*!NO)8Q>?bW?0)QF%4&Te@:(\\ujuHnM?Z'irX@.](JH31M
+IR4gBb)DaafTE:]6AWiEKsZc[GheBSs=Ejci*c"+#-?oWEu]K*PrNY%@%h1[.BTA
+LemeHk&m<@u*eGq,sP@j.Dn6r&Y]YtgGE47]AG-ZF$t\3;TM*-Y?15<?*_GCd"K_
+,Bk%4!go0i<a,;ek762EPd&4K>%Ul(s%fKPUCgMY?&g->N.lg'ie7,:7REI'ls)B
+AJZ3:ZD8ek"J?JbCJh'H#QFcm(g7te%d:7;+J6J6+RC+N?61-o<H0nAbBQgI0iQR
+.>b5+C_;uLhbtV3c&dl=4=&\LO>;#e%h;[c_.u=^VG>l*U@]';o9om6G;8hZ8VJp
+h&<n_S"T$$@hV:kN=`mG"38XJMA&gB$Z2$:;pHZX<fbc3^F$mZgG*$\78C"0&^,[
+jm@,adp4(5S\tbs%R/ggrhUEOS\Be5I(k4'NbhX6"+$JF/6#blDnt.^D%0G7'e1-
+sbq65%a5WC+6%eQ'_oe0s*JV^ZC/EI%)Npoa7Q4[qtDhc8e2Pq^0_c7j1rVoqjG,
+h([D<i:Hj]^?5r"-]&N02q;8Re?jH65>G5EWMjA&--u*e9^P,G_klW.Q`^hn2Z!F
+Rb.^uX,!+e&#9CRBF@T(uJEd0Fk@OLL?(?ZK+^F62W7dRVjnb&!WM+.VC>^ak?lO
+8h1.aIrN2oC1i)u*ObP*LSNi6pfZgq0-S?7LZB'cXa<<NMWS>t<I`54lOhs*G+U8
+iTO[Jp4CVtO'&T1pKbMR0*AfP,hWcB<r`8Q;6<3/P?_"r6[Y1p5:!g:][m5sZd78
+C1/fVmBI<^.)W$$DXH`o_^fLb5"Oi;W7!p<oP?g.51t-X$&;G8Zgbt<a[D)rJ^V'
+=i6B>[iaMgKHqSJ;TCG!ZIQ(ImM$9MDOm<Y"V!QSgodIQ!&:,Emek6$9fr@T7M4B
+*gA1aK'aoNe5G.j)'m>d?.bdVU<IBm6<sX3nZe7NP,;9p&gUpZmoD>NU_S4C*U7'
+7L3P$+oiE<8.X-Z($f41_RAf*`);fdgK8f^2jT8?l)iI*`&b-4Y4F,?fRrKjs;G6
+_XV81UOM[4uAFq$aM03$X^:V#HC45)\-FGDd5"$L'a9F_TGSd1=2pd_uSNY[@Vli
+gHDPJn<L<E8\F.<45jt)nltlFXgQd-]E@%FHOGeeHNfJ[8L&FnZliZ<,`!8&VnLE
+QKca,.Y]=Xk]"X4pl'suXg#tY9SYW.1tnB+7_pc<"WZrLdG8piEH.WLmf*:Z=0a`
+6igoD7HWQ=.P&!j*O3FQ%bGj:coT`b-;&*T=_[F.ZNVd!G-%BN?ht0n?XPIu@)30
+e<o&\C\Dg0ZjEhS^g^u<+86Y[0+lu6uHZhd^Y*@GlHY'"%Z7EVK7Ga$A>;!8e)A.
+TH'+]TS2_[=d]rrA.?_m0(lOG?i.WW?>l/X>dcpR##cfmHn\N>mT#6,)@rD\uc*1
+ej,rB<bL)"E_k+a`W$W86L[fU9mqUl?'GjIWm9hd.OX@DK"OGPGP*c27_E,T]qd5
+ii6oLK_T&2%F<Ak<&H4RG#mh6Kh]F@2h^)eB>=3,rDWof!QN1bNVG`qpVNT#F,oN
+h/E@Kh/faAJf/RZIiHF97V#LELTDe3Ub4\<KgKjg?m5b!S]QsVSAT[SfP*/]-V2p
+_5?t0qWjCYs4G16C)eX<=bd97J7ZNaof8f5Ga!8o?m/NlDCgQbP:@UNtr$a1ucJ4
+MaTB=!)@/FF!t^Yl\`M:9n`XlWMLiQ0(6<#=c\/H_0._R)k_?1Z2Gl_E>IrVjs>d
+7\P-a8Msnfji+Y'l'N<Ge?5UTBa+l(O5H0k,bsWC.R2CZnH-XPI9pUhh5gW9'5n!
+_t<6K$B!j`q:"#>PU5r3"-l]2esf5mV`_ZG.\42P38%.LPrB$qhA%+#+KB4,Mj=t
+RrI#Dcd7-5QZ]tr>#3tQKKXpC1a(r_iCd)-i$f@b_V>gNMTDe3Ub4\<V)@'d&Fo1
+cTTBl:Q\n#94`E]1V`F!CC)L!7gUZsX;<G9TOqC[Z#f21]Bmf$su9bETQW]K"HaD
+c<.-e)&D5=C/SqGB(%@IC8,^N$>8n$,j"Z-M0!3EIi#UoEEbkcLC+%5YnSM8ugu-
+h+5IE4iY"CATWpST8r(I@X^-2W4KcMSA&`'Sda%B=4VXA;a"F=0h_1XbakJ);.Xr
+,]8gU?`=`6I\q]3[a`GrFHa<$`rSYYX/_QY^L\%5@]\a(5cG^a9aQ]Cf8[so8)gA
+E"ko\4KP9+<iM^Xo=QlO.W2=?7OK*%%OSmSgF=EA;7RmgQm*:WoB1b:t^.Q:OD5n
+g"*M#WA%m[s2.@Yp7g\t'U2Mr-kY,&!IE?SVj;GQ!^"`1Qr%<E5SD`7!(0pQM=B@
+,b5A//%onkS!E\B:D1&?V9Xd`=B+I^mX^>'<o,Ni#<;FsU=q:T$0\_M>5Sa/YK/S
+2SfqqSoMl!811K3]T(ejYp@+]OU`78nOL>B?Y^Pdf"TmNM%&"mo@s]H%1[0'#!!h
+&E]PtHK%KMN_6m*FEJEU1PGVK43?Rf7t.P5pg:#82&EV;FD>kqHN!<b2-r>4H$2;
+#]OCG9O.qJ!'q)s3TN",_BL"&jLif:3\H'XmY9%,XWS,,DQ##pjm%\>8:U4ckkq]
+DYCOjR%/7WXD<=b-k!gF;Y=,_kal,r:olKmN"-FDt=R?>XQ/TtBuJ1"Y_;*S#tE:
+0_N+knIQ^N?NW9R+FP/U&YL@,NL'*3JgIns(^-Vpb1BYD=r0.G6uL2;kI2?l;u;%
+<*.jnf&?+TjJkRWlhc^%geLU)LZj)Lel%58qPXX.a]2c,^Li1g2='$qjp:b1V/EH
+E!TM7ZD-8*rlWql.kj.4fM![;b)+@f"[cI;C$_RX5gk"Y+n3e"Bf0:qT.51_T^P:
+kY[+iMc`\L7(DmO[?coL"ql+'7a]-N+];]NTE18A*49[j="#Q&%c'DiHKqpd[=#O
+Z.;e"4]TRZ>D90ehdCQD=</"=:kG?"*f*#2ZgKuXM+lXF[Uh,M23,6_$#+qED.[[
+>mDE2dO*m^cA$)!i_uC3a&UEqd*'fr?MkaYp<DPnD)"+i:`e(agmbSQUiZE2\N60
+<p[p3EJrc#XW,cr=m\@(M-TF,Hqc*HW0'8MZlNrbGkH;[Y@-`@pAs5!2oOSFEtqM
+IG`RQqa\.$JDf$0V-oFr*S4-'AL%E(P_YUdPp]4$\6uZ5/#iAGSt;Id/;;N#0hXY
+VW<QXk]!nTsVi@j8?nRhPdap`k+Q2;L#kVs7rRB\`Tc>q4NK,Iga2Q)If1knf'kJ
+MM_fM)`k\>)L0P!:neS'5Oj3/</f\r9T3TG-PlY`:.FTM#n,DY<n<MgXEQORh.U:
+'Uqgs>LDqgsa"mEPUU`2^P6UF\AA>pDhlX.KNi+f"TO4/-TQk=Y\HT[%Y[cVM@d1
+Z$DDZJ#Iu\I+DNh&L&\aZif%Q#6O$8)dTMfHHoD(rn,X)k,^Xe?ms%aqZp;B5SHd
+;RBk#eOO7oXOMWs[hb:t<Ai=:jVu);_I^i_6$QcVVd12I_Db2S<I^7kW>o1&:FaD
+"V3W-)rkEc\[8OBmCo_I6:))+m].38sD*Gk&=4_Qpq*MZ8>h*rq)&OltRRI5&WqM
+E4ALfLjY@d2LM>@/O=7Q^q?M\>XZt-(]5aZpm=.Z0G"pR1uFG*A"$UEYUN0(Wral
+0kNB*X^LDq.6>V0/!S1hCdRW[QotETV;Qh.*7>]uj*`SnU<>AM7?>1Wnj`BB/o"M
+<'<bWl^3>3So;s^7;MjG?)=n;*7:-Ahq&k`u'NkF-Um27R0XW,usX*<'@]4<HIHO
+IZ:&G_PYi=Za-@!&jYTCP\Jpp$V4;[I#?ZRk45LZG#fLt:G<fU]/p;UO/b?1o3\E
+(jYHHk:qhm/NVj:MobYk:riVR"]3K^t$faF-f,7iK'9mCfW"GZ.W*o-:igh2AVJW
+bJcfB/Lq*(X%6YJ=#qQFOol(ih+^Q;=tSl(4EfIjbE`T+ANgECZ?q0;b$Hb4X$Cd
+e1KQ!6f%QqIqnFA-^F:ACI)*_5-)[!B$i2/(J,Om1ms?I4^;`h!o)!T$f=H+`I9o
+U<[YoUk3%n6tqsX=,9UPARO(Q`)+;c13us/"@=`eAl)MY>3Kr[h?#3R_SJR\B#ZA
+Ai34mF\fkt$K'<q`8SGRW,*_RWuL6k<4#&D6Dj97X&M`em6a0b#Z2r+p>pap7fJh
+*)=G78r6adMq-U%\Wi*Fk^IfIqWpKFEX8Q[^>T`4AL1\NRiPAU]7,d7tN3oQt,VJ
+j%IYtS!dGnGQkCq9UH\UCRHV'Dq4F^AtnbT3?rpSna>!@,Wjt,fDAOLG(3BI0?JQ
+EW=Ch:rL\esSbhl0r/:S'GjrB]lapb+gCnaoM/X`5Ssp7&dH\fTqcW*7F@RCDfo=
+juf?N&dLAr)Au^R%JuI$E:A`DX@Z2jLq&2Q;j(=<FO_t[.Atl?-#555PPuC2k-Qe
+,>5EB'sc(a?IDs37D,WMHKo_M6^djR8(LbbXA7Y$`X9K8KiKAM\pDA1T[6G+Vl.=
+1[arV4*b>I<I6NOGfGqJPUtFl357pl%%>#_RE"sWQ4hITKp>pb-I+.qC\D3s()fs
+1#@2\/cW>\c"fr&saGSqAq>Tn@EVbY(=.c]$?5WRY+04$c[j`KB`RT&1e]0@T3HD
+['@Xp`3eWqMCmkG$Vsd^fYA$YZn^g_JGH`qULf"`t3n-GoHmDlZ*Q6EW-#<F+kJp
+t^YS2,I9"jbGg$$Zgm+Se617V0bQ\H_\FM<&IILO@[]R.P&.F6mN"H]q`g"(uSIi
+?7)JHeBUkLXo1ge0]u*B&?ClB=&qXtF%PFFMQS[7T+bi)#Ot:D!&uT;rr<k8\kNT
+tZ3.TZY@fdtG&*"kkO"jGN!1/".Pe#MJ&M;\3UXIrdU"f@Gs\gN)5>ZuM?`iZS\j
+mO:R?`@:Y>MkVWhiC]CMLN#/rlKQ+X,GT\BeO6K,e0enmE"a73/ie[XF'EQL\OJ=
+0U7*/.%3T2mhAii;;a?\3<Y>0W9c^!4AR:2Idd3!t#%_#^BT,:&^?Jlb[[nO,ad;
+[7'ed[a;!Eh[P'3@)V+<D<V:"It/-(q47RI+(ZuS4X9QoDDQa9&8QJ_M[<Bkj585
+$foj'=]eulX*(kR@-:%C!pM=knG`K,0$a)WXVk:U'+1Qcg_Gj=>Hk6<$>-UI.ug[
+YSHFJCX<KP4'\*V1$+10d.GLkYg^8Bt&W8g$ZGre%jZ7gT?FNFY"GS>oT0%u#WT,
+/9AMaijU;l.i;X/_*NDKs4q.0>#k@=3^e%*f\Gm;Es4R<bA,77HOm??Kgfgb<B.]
+%
+&G.&;j_FQ^&e/4NP#kIR[b7r5bG_YT5T:UNta>%2G@UY+i5"*#IlVX8;qV%K>XTB
+"\o7"(,>$J([jNVf_g.t"-C*3[F,;I:o$>pLidDL4M$YBd,?9k3ag@-jYEPs%EKn
+=K@eRgBSIWN4N,;$-.-WLkis7-@*":Bq^d1D&HTA=A]afeuTYZ\8M:'_IEIm&.9[
+a(Mt@:<!qtT,?BBikri:F6"S.5$h5gD?i>T1lfj%_NkJ^\D9^aS37QcNZ0-5gFL0
+X4-_(R3+[FtU3)YI9]:s.8QBrt-'>BPGAdipXJ\'=aj'p&$R[Ehql<o08`B0?Y_S
+uk?j\A1&[5S"+2W8<;6"\CJ=QdIgo2IM<"^+CV/q4t!,2]nOgcW,;L[\S7rEQYU3
+1:NCt_@!SOpOlNQOd3'L:n_(?4kUlCO::_,8Sd3F:bRBe_gWKh5(Alr,_tiTfVNH
+Z75o&K&"&:lAC$26MmV\pO\<?rqm3UVZ%Z9)/=\FD[[K;31B3J*<H7e;6tIFG\GD
+]fKYg*Ca;5?fkD2MR6,8q3@)g/JnhTaS?d<;<doT<1j]iSGrR(acsVo,tUsrZ?3V
+<6Q_1>W[@3QV,FcjHHHrIIclCm@c:*B%Dn9+fZ=KR/Gab:3?1d$I'78$Jjt=R:2h
+Rkb/nd7<G^SlC5rU6<0p`mr*`RZjET10M&N:Sod@Xt&/oR-jR"Vq<gRT*o'@D3EL
+1L09-0o*=4^Kl)`Z!#0ZJj-![ss;UaX<\PuQ=J;:Xbq2B8BT=f0#9@B*/*d)OXj8
+Pl.OWF]^tK?@dE]ZqufG%!Sl(r92b`>?CkC1D`A3#6n'WloA3/M<)>R=]U@'irR(
+!:H7OHnZ5nGWR&WVj,9JS<0Bs"[iaJ:'BOl=30T$O=OS;H1MFZEg+]I.]S]P4"G:
+>VVEYfCQgoF@EZ<`GfH!h6^mp"9-B?Sq_!`62bBBtU']+@Id,90-;Tlf5(&W9Qcu
+,%:sYK.3HnN%m^c4-m$2F:5ZA(6Z>4jBWE\1>6;!*%<HeL&BN5S*r_^h5Zc3rN.[
+bE"+U<6\2IHb>VCXMGCoQDHj[70HbMlnV^!-X-e77^;H#rsUc(e[$m.mPZ[niAE'
+KSsQ&=79qOC^jX*3*^X_2cZRZ&>oc\jT$OC!*Gs2%5a`[MnBe`S"EC75Zl2o]9i1
+Hdo2r9V"B4>*cP^VQIb$F4rsV%m'pBkg&JJ:`Y7(Id<i,o3kg)E#$&@9JWasg,;e
+5"t6%%b*]PpW^]HRc!2X4_ODOD)Tc0\NMX_Ii]Sc+PE6M8>GF@1RT\bmWb6R//l`
+i!KEbVN+_fb1<,.ICPjFYS9,_i-e$)n4]1rEb*&f>sS:ss8a^`Jg[_8idQAE%"D2
+$0.m2kFY)Fp@Rrr=<F<0F6C;U'fnVSZn8.^flE<<_"YI[0DjZA/%NJ5qc5F_H*ca
+ZSNb,k;++_DNo`/-!Nf3=u5l!s/W.!<iW3"T\T'!!!$"!WrQ;"U5S_0bY`s;%OEs
+@<!&=JW]F,'dH&=Z-agR2,\I(s4RGY!<N9&568[cH@=u99cN!,CV`dI8mGFlc:*`
+`M_#PiAHJYWQKj1Y-95c,9T5ph`p'Ji;3^XIFi'4O&;ZS!;t]EN"Dh)Z2bob+](^
+smK?#IIYUhuOT^IK8G7&#SiAQ+rPP7"Bm^8AI;uSA6/:*k2*RrKMauEY^e"<PJ-I
+ceACC!\"KO+u>FRB`XY)Dq+/DD:4#SH9f/]s&<W>-j]@qBF(jDnsR;**pK8N,cS<
+QIO]2PQpc\s;t;eSVUk^Qh5R,elbX#p5Eb(>]$c_3nje&g)5n1pP1(V)igl<i2#N
+;1_-#U-ZY<SOIB!5FmufV&N]$V>MaslY`F[aj*>/@^o[oe73FTN&M'g5$(Y(m^Te
+H-V3!/_B1$_<:&:-'dBJVEdl,\J:Y:R<[bMsfHrk%gl3fiffrCTRcO4)L%R#?S^d
+$,.XGrZW/Fj&"O#U8%`h$R+c"ih]9r!4P?CRtFc(HS(L$\c8p5`U(tW5f8K.>"<&
+&9A9\:[Na\n["AM+SG2jN"mC_eN14!q=,VABJC2A2itL>`MkADO[k1iILEP\Qc?<
+6C$!gnKtkagP*ZAPUutWb2GaIahkCq,Yr*+k]:>e4EPDm]qG0NGe#Nn$6>!aR*"r
+m%eo#G-PV7iVQnIne8$/FW4UH:T"UqNPo'L1"Y6'*mfU,$9OGnmG+5Ml!-Q1:^X-
+=H[IAO%VC7Z#[KB].X)La$,uVsFi`5jhH,sHat?X4W^T];?r5H0_*S`QBgdZ%n?d
++V-peNgR#pD'H77](Fd7=Y'?\0:F.[KLL_VWe.-_/*9C<Ka;O@h?L]L--iF8g\/=
+1JBg<cLl1%:-6:"3UrFd7;=qPI8^=Jn\0=%dCrM_;LFbf-PI^?Z?,'5daL<+iYpf
+l[CcV:3T:*V^c8!]I?BK`\,KbGA,206R>q1U8_#h$2Q@.MJVUXZIn;_NfYV1tb5>
+40$D\cKbjudA`_qTp"GY,J\&S]2;=h7j!oY8`6TTFmOB=QL_:M(N,mSG:D%n:eLF
+#+R(MKa2m?n"fHLk:c\Lh9IH(W0'1O_FO`IS&3CMs:eQefamEe$i<Pim^(G=@BL(
+BC/>?+_;th#%^_X&<)@Pu$+gPT1G>GMlU]h4K;U-*nFb/p00O:u$50@!7aJbnMUY
+.f((rE5A1U/\h$GDX@8t;:**1GhCG=Ds!\P2<Q_++AcT]+D3!$0Q*CXh2"jYa6iW
+MCbM*8@DC3CR^]8`<ZBU7KR[8:"e"%gqDZ:Qd'`6rOg\h,=JK)$No.ZAsm/#>)Nb
+ir9!Y%.,[rX*"0tN,EI&."B.Je5_Xg8L!FlR,]-T-n-#,C'AC54ks$Fm-CTi#YXO
+9KD;N;=S;8sK@GWrHW<dZpk-1Y-6j4[B*F2eaN,XZY-V<V:Gtn:&Ut.NVDk*u!it
+USn<,E.W1G541Jh)X`$_lr5;a^k0t2-hG!''1.GFLhPnV&)l-l!c(#B+XC]]?CmF
+7m<7t@T.f17N_2&218g,B#55[&t=H++&?l.r:1U6=d_<A*R)@I#W?%6;e>)LO_8g
+RC_IJ*%"%_T^:=eOKk)<_nol7!WKKJ1[gb62[lgQ@F1)"+].-\PP]s!*R/?g2Zfc
+!%S_]H^bEDlp+[U!?<e/B$P/0lJ4<"*:@^L82T:Yr05JK\/YGJ^[eGiW0mc`Vg%[
+DJ?soL9fsQr=qu30f>>F2nMI=BYG6g_;Co%ARO[O;iT'V0<bLj=+Tpj)e-s^CT(,
+sWM6Sbh>5KrRV^87R$iVR)3a=PojeZ@--5'a2%MoKuL@ei&<UP2-C2FLaPoqVPM8
+_6Hc0\8MD3S#&,t,p6:iEqi<?K$*lCi/ZVaf+*%@-9YgjfDo_M(je<CV.3omI*gB
+tC5pWL:F:o[u+)rU(-0<_T?<AR(8+C;V9E*[,$6&!]j]l((amchT(%VKo&(mMjm;
+P0-P-34d<n_lKmQ(jT67%kL%-(bSuN=GAg3R!MGbgoAR*5sQ>I,B["IaYc"I6.E.
+X',D/1Il=M$Z$[ADkocp\=kd<S=Nc[mI4O]kJ6BnmI4W@bO5[kNXDQBZ+GS_g07l
+tp)^$HX.j!3^WT=,NJc;\Uc4$eHVpd6nXSWR/e'm-s?b^.9('YdlAL88hE7Y.M2H
+@7[bm\YPib2Ig=r1Pr6lO_O:R4oNm6L0P\(OYWLMi\7<ZNp.O\j*IAX7%o<;Lu!+
+V8F<8lkDd/gMfI3PcN1GYoqGW7;G_X;"_-;1N"r.pLt"!'I4=@6?$_1td5d4>1n$
+hT3+m#Y/ePW+"1.VLlcPlT4,p0"mR$ViVBTQBXLe=[Q$?>0EelaB5fD%IN7E9)Vt
+f',l*iIs285P3i5o)aeIR7nohn`DOGZL"18Wl+N?%HJc:Y6``7CE%6n"p+b0BY=4
+7'>coAil@bX0)hcfHb'Rs(pe`M08ehR;Od-d1WIZ1h$^BP*';XGZnKZP3]IKn(<-
+-kY`5mjQ2I/8ujVnpT>GF8.Z$WusMbDME3io'O!E[c/1!5femrB&R)lY)82bg5[P
+"-<o;_cScZE7Yj>uNcN*2+n?asTQb:s.lo)01)2]4B\s^/n[K]D4q6lDrRS20u1L
+>hr"/r$Y;)Mc5a\e.Fo9fga^8.VIF5eOD[&38@e^DPkW77!s?_1DbXLeiMmt$e\+
+Zal"h[P]j<XTrk5kE=@!4RH?58cuJ/6`j"m9$snpRpr1`#U71toql3=rRT%qu8ue
+I@gn"SF`oqR6+B;5qgPuij&BD_HQS:=EQ>W7Ra_NB-EZUne5BV^:Vf&p^KODO:VP
+TCVf2sB[<(oI$;._:%muR@I-Di4:],Ve*?/EGm\MgabAk(Mb<isrW)Ohm`fbZX[S
+NEsO:;_c1h8S!W53P>j.I\+`8[cfR?kjL5ZfjWZS:;,LN`DBKT2^"+=QNm^R%HJk
+/?:+dZ1CY$QRp`qdX\]Fob8^fOl9[_VAbbm<I::f-&FCG4`4An2*Fn8No#Y_#F[r
+_7kRbe//&MZ.Y2QDBNcf059oO4S6\lRM;50_&ToY9]QmUpfc^T^<bVP8a`#bHA.g
+p5qQ.f,Rmu3bhF%5UoeTQ2mPcF\J^cdW;t*r+iI9,;bYbtK/L*l0c&LgWa%1*BTT
+R2n?r\S.7tkZ<]9F_2'U/[a8]I#PmCe+9(CTf0M4r'qOAhRJE"S.Qn>LftT0`F?r
+r@;C\1+]=V"uXM<[4QJi2kU5Gm%Wo2"mito3$M8X(mr1FdoDKl?&%)ZG%:.CTkQQ
+7-NK2GmahpHLS;CnPFP5O2)Q64YKuH'G5HAY[;4GXlUPM8Fcboeg!EU3=#Qa-eX2
+E6j)YDb/LU6)d+PD"dC`^a7Pqt/Bg\gIK':O/=.="0!`IZ10$H/<L#93543Af@Pm
+^2C2iQ?q7;GZLAq7:_6XP*]1[EF`Z;i%QO`9i8!M.KeJo&&CV"h9Z>$K=-V,,_^L
++04a+lat:BZA2O4?+R4f(<Mn;dp7mT];jVsb?[ZW8(VYi)1(:-a4B>ip?amo>:mF
+Kjp(gaj2kWb9j`4d!`hGRA.XhHY=UM]SgpDO)<.<D037HatXPeW"I*XRQ>W[Jlro
+rRP/RCc+R]"[a^j+^u=;cj(Wn6h,ke1l=eQj`ssVrS>4VmSn;"o0CkJ/>Qe6QH*V
+AMcGVrl?[uqB*#a5l`=uo`E+9[WF*!s\=FSuG:O`PgH?LDHRqMmFZlqiAGH=C!@e
+]4Rf4";$uM)-9knu<_\U"K9jotpnbK,R9=19hg0;F[Z&K_VHnS>\^o#bFR\TbWr;
+rtneMk:JY:C<B9W.$YocI5-H3Kc^rr>Rb/2c"LVrk=6B24g`3HCgKW@/)n[n7OQ.
+l:Y=`tl+.=CkQ'G.D'A:p$Y)iY?#-YWGL0TZkq_$Z\FH&Bs^p0X.nlW.$G*-T'f.
+rrCBNK#3ef7.+(W)JL+rD@`gk=>q5#0A4P%cumM0T]&bhnK`SsN_(F>E4@&M3E;2
+SfW7j`I9!F%AX+-ZT>=o2BJrX8]IP>uSl<=`h7B)uVgH-2.A`Q"=&@a>;k'80^^*
+eqVDiW<9:.9!rF^7K(&Y-o/KmW=ZD-'<*Z#POm8MIhBM2U*b)hMniF3WLFZ.e/;e
+:3JG+b<VQ!G>AN.^5?Q\=_)_kLOJY/B!EH\Kr>X?MqDat]o4[nbd[9fR2Nne?@M0
+.Dkh?uL^=Prm+WWG-Z1co><3NJLBQYdrAnK#=et6#a]1%c,mm98(boEn_<+T*D>"
+p-KO4<ZQf]*oTpW9gt11Gtm6gS:-K'E2+B0b,gtIE2I[\ej9!j<IbF@/N5pC_PC.
+h%LNDn>@jtWb"E>PIbQ4[i"RdZ<>#%+NXeqp,1OmQ95V7W`-33$8Ih<.Q*#++"-a
+CZKLO3VOnMcD3#a55nLg&:0d]8/WE-Ul1j3]6O7CV8hS;rL-`?hYe'c`n.He4Nnu
+&JZ;`qY4n%+PEQ92%JGtj8e&uQLEWt!kcka<a>Q,"_#,/^GFNRmErDPqFs0r9n*I
+FR;b7!hp<m&>I$8GalN23_7?aM2:#NbalecRhsQ3,1RTWXi<3GqKn2bps#)6K`C&
+i3A_uTc9EVW2_n`>lommEcLf"q&l[tSDh3ho]F$6gsDhsY(6"p91jpO6>Ui9R-Q4
+tRYqc8S[WlE=iOD7D#b`J.fn^[9.smKW[?+9$Spini2G#J/@+\*/O=?*.kkISdE!
+7K"<j9bra1gK_Q<Sb[>[;V3([neIk]C#e7`^#YjCC#V%&mI8q;Kb=e?\&$Cr`UXK
+oi,C>h5Q+Fg,gQ8UY_edE&7ltNg9r(</4<k.]b,tXRU[>W\=_-19C'!n($S80]nQ
+eMk^P/8sLB;c5eXB$^*HaJ4AAQPJ'?aCXNr6"nF>Q4\2ZL0XtCQ>[0<DR<I<XCsQ
+=A`-sE1U(\-()RlAg:hgd$i<ELY8UK7D4g=r2Ah19kXu7c=D(?_Jh-+\PVC4#i/>
+8O]0H%E3k1JX8E`(?ns`TMfm_F=;;c&OG>KpOHZufn>=Tr=L1ZDWl[G]d@DH;(0J
+PeN6puZc+i\]"dO"=/B*H/n*+1eYe3!H&$feKL,SIpb>dQf*3A$Dkq"e0<&"X%et
+4JZZiI+B\HG^X%gtEjo(ES%$'$shBCMS;'_3^^#ZA1s;EQ$-eO?YE-mi_u$BhNb1
+:aQ#D^hta>"Mi1,l$=^V&>@C3HZ"27T-XZWAWt4H]M_iIZrU)W2:X"k79u2L.S6h
+KL#qt<c7t<MgBl<P[r5:I26dc<6b7fSFQ*B;,TWHb:Qc:dNRAHcu2qZ/2E#W9(r'
+#.S?$n-ue[^7#d@A]t>-\!0rbgCR-2pG^]N_b"#)2:RI9UC\HFnG9;";bqt^;W:_
+Yo<_D'>-Zt8ScE)o[7gc8J86oj36]KUE)mRQmblXl1,0s.r64peq(i."(Ys;H-VG
+>=eVG>5-?bM#1DkbLDQnj1!I:h[cM?.E[=[pq9&IKB/7d8L8_O>&1cr@7c34/H_7
+PPcmQQ$LLmq^`H;B:04p0!pBVsmh_G<>#p:YrSEZKFp+hnkc/>Jd8#&*1%?J*t&T
+Q6"UYA&Iq#W&Q6SQN.PMP[A9#0iJie(O0u:0gPo"?,8k9-b!_8=$S;oDR3&,W%IU
+?KQRIGMON/M@C29<f@oMn&W3+HC^QbY-#WE,*ep)oH=sbYYaV_RiQAmLW;E>NK"9
+:>1D2`d^O+`e7l7oC4$osdSKl==,u'2W=%RMbKHa0B#Z[t#C29uA)(LgUOl]Kho\
+!WWC_a;N2r[bEd]i-OL!)$XnOd`9$Sg,DdqZ@GQfEE6<a_eOgsQF]mdKdFd7Wg._
+BP-lG?FMgh):oa+_BE5Ve&]@,>1f99g\P5M_)=VRrDCU9$*j7]IJji7WGqD#Poob
+Gltk`@rZ::\!?AZH7sE)d8@q/->?VKQ:L1`J?49#n_8)qbGqA#;<(qGfC6$b@n1;
+El?\cuV5nSo$-p:6Kk+A;<``QgW1[*$.RlAE;nO=IV&7$Hd^%XVUDDg'\_TF9"`%
+OUAM?6J3_$C0/49_)AB0U1TYR-MLi4Oel52JeYLKGtettI*HRHnl!BLU/V2PW37i
+2T-U*`tWMIS]Z)oC96CIQ=cUm4_*Wi<3tYBu.a>OG@Y\>"V<./PQMaqlO/.N(\(?
+)XV0P`N@A6B'&iG-V^X;$+q<Y_;6EO<gdcZ?\C?A%#*N7s33n:(@PJb0g8eYRT/.
+>T(]YL.rG[qojnG9"Lfjql?GlUg0G^kG_db+KDn0JqOOA\4/($L+=A]PFQN\XGar
+OW`Q2l!iL!=EC<rE+U?g_!gtHOAOD=eUC\s3aATEQD:EG17ZRkZED:dH1544]MpM
+tB)O*+Fnl'1B>@<<@!f9uIaLrB;3DT6'a9hh/4`q'+-!b>pDR?Gl+PWP(3E0iped
+7U";UqHb,mW6if29k)q*hHFg/h8n3%:D/IS'Z-h+6p+<KT>(I?q1j>URT5]#?/1P
+'mliU/n+i(Euf5N/CqA8WVCmdLU*&nsr_\7]EGBb0sln,n7^<aamB]eKr`j8qj`(
+E6ej8feoG#[$.f$0fI0<&WC!e:=(VgQi`;7.2jGe(PhF4a"$+A"(Y,m:t[Tn_\7k
+sF2+rD84DJR-P[lW[-(PjT5^i5l_dIS-1;=`9knc;fKGO(I?&7m1obMnS>f8K:2[
+FV;d:l3R[icoXIZXAd6Ps(Pu,mg:^rY0kYn$H9GRoKACi%C+ZZ;i[d+^-57b$<'N
+%
+<b;OQhE:,aWJh,bO1M*)!p-oP7q;qlG*i__X/O4d2ZW</hVmYe.[OCND#Mf+2]J-
+$1k,BP0dBWt9O$^Bl1eCK5>9rU=I_0AfZAQ(fb[rSL<>_Ji"O)fTrS@'`VFT1><U
+h,jb<G[1#M8e/I5l7ZV>&nop,+91&C4g(dF\NY:(+BR$#5]hRPHnWi?;P;Y9-'O\
+aBn@.[F>;#kAH6*W8oN[>(AqU[S<\$@Wah*IS/ggk9gu'$?9/'4uCh)rIX?@4(>6
+*F)Mt/c:"Uu>eg<W!+6?<!<WB+"9J`1#RM"K"p4i+!!36*&Hrdj0a8:85r):O6=F
+kb#8JJGTb'"X@WI(*Zkac0P*;-H_UBef6W8&JK7otoUp@>SdMFSq6r[Z,ATcr;2)
+ds(nV,uls4RGY!<E0)56?43bV>.djd/F2kAV02d#C\9J89ZDZ#OuDqj5^#Z0Xa@5
+4`mUmh>]o2Z"/u6Lu9%0>3.M<9HL;Ma=W"i.IE_BAFR\jR"dJ@Z,d5Q</:\#2KeH
+8j:5UfmA23[`I>k[nZR6Z@T%*=Z,.(ZNG%qXE83ee];I.ih@E/:R]Y*dVmdAV1,2
+F-W&;En43+%nFXD+Q2^hV2@K"A<dr+^#%?:7G0R6\_Wo];1[/WbHP5B/Ek@oIDQ'
+:I^aR37[E#:6kBSCF3jSN!gKWu&\dgbY\oQc6>0'.F3Hmpddatn6r@"s%[CsJbqN
+E^=_q$?6Dqu4S^F<b>UnIF+OE[j_Qef6WlM(8%el4ejA9q(V\aq=*3r'u_'9fY%I
+\gUkFS#Bi)eE:b?#Jp7`P_n#$b:,I6:OK;;<Uh!gA?uCqLS'eR-^`qA^?kg29N>q
+jFNTP#I66()hM(nWEhr6>>E36\X*[Kg-_F3S=@^E:.n.LE.I(_&+eQB>_qCo>iNR
+"AF$[Yqg62d:/EfaFs%JTI2I0)eD506U=7XqI8h/4KpO8-C4j,@ZrRESoS]BtTIp
+%
+:CN`p)+C6s#CNMt.me`fl]";!7F`1i!'q@*NaVFp(mF.Lel`B`LQ-Q445*?N&X+G
+Ct[afG+ZFkMn(4"\A4c7Vt#+a8&BunnlP:/Tn$R)jHgB%\$ceI0[OBWkHL\CTY?G
+W[b/fAtsRb,ZbdrnF+0,o*E(=d'cI*p.->Nt4"[nh-il)GVTOD,YI<hBo5Egppkk
+d]l,1i@I&XnOa*c"?P&24"$1*-GF-J0/`YG?./`gLPXBLJ>g0(R%@#Qa5l)hQk:P
+`#q@\]kT+)faD`m$Z*J@S"iIH6;TGKrK^-pR/Wk/5=u=n(1s@4rrD^f-W^"bomX8
+85W71dht/-7DGP_`Dsdq"Ds!G&2-.InP0?_<!O*TkooA5@kk1<)FmWB1<QEUAXG4
+1i&8[AD4GZAH1]qNoGdAsI)_W]oPV1c'F&9T)=;>H9ZBjA5W9%fYCi1%bXG_pBaK
+OnPfBAUHLb#;"9/7;B]%LciOIP.=GT4\M,@Q%-Vb?uBF#@h2?9HT%FPg,glBl_+q
+]5[3emu4,jR;qG6>Xoa7qC5&@MWT.3j+0tMmBlZh2l>0b.c6.PH+<j1@0JY[<i[+
+P<gU2nQIQ@8F2A+/bE=%eRW[,K?\P:3o8uJ<N`WN=4q>+]#E#JpS%kc)m+8k/ZuH
+^r",Co"c^*\LgrnIl<3*PR5u8SK:%Q@aNi[[Q*%*1a_NCC=HRMK0!ZN9U2F6h/<4
+9$DfR/Y+BXWZZBJQ4LU0;@4j*bRF"l-)&3_TrOjE=ZRN'ppXGgJ!M_,^$Opq]e+Q
+:&UR6)oUBX8BA>gC<#m#!fYZm0FR?R4TPk<$7->Q&?(]1/Vf>jGK(AKs^'c.ajRK
+\pfT1r&3*>1)'t\(HA#C](iZ.`Z`+A\^aMOq-EC#+8M)B[a4V5J_H$$Hq`Xf4YY_
+026m!>>Ij\InZ;sB#ei4/[@?eTpO+lb3I@nq,b:;*NYe@"XLL]ZtFK&OhO-df<YK
+U;cV;\R\?<4B5(k2]K(:P_Q#a%%VMYZAE@CocYHZI3XQa??I>2-UQ*\5h7Z'Qd8\
+'J-'.N!9[_NLqa"#4Js&aJD4T'PZ-k\iG$lcgo#R%WQ=Fn!c$NXNBN<XAQ#q+de[
+8D!dmk;Rk;3>*0^:Z6AW1[Oau2FM#1p16]acH_4QQ(f"ALLoGEu'b(SFRg9\%X_W
+B$Q!)dRM8Yf_h_p(+0X8DEgI"XR.i*BdYIFM:@LUl[OLV4aoSFL"oj#(B8s*@%XI
+fsaE\;n:NAEiml\p9hQ^*F4Fr5UFi;<Q+\(>K\u5HAZGTC2)r4!3RdpNUC:-0@X/
+^?9q[.o74Vl"s(IU\sd%B]^t6jC_W-&X/L3DJsicgc*c6'da(Q44\KX\RW^]Pf52
+"sYh)aq6MCoIQ#(P[bNEMgNQSRjbEga_^".gBmRBk%m^et<ZI>kq/FRaTlk?5gMK
+$833J\=q6?GMV#3F:a\Jd#mJ;=!:$[bktL&V-Bh8Ym1jccOLke:n2DI-Y<q'bh#Z
+Fd'0hl15\Q=KTh-;Gd?7h74QiKDf(jYj>obJ&BX^0b`D'mb"<.sMjFkL-ed-Ct:k
+.-<NW?:.-)3F.l4D=(6Y:[44IrrDUuEW6$]AlebFikY%n2luNBgfX#h8DgCcpDM=
+:2$Xsp`B.`(OqtL`>]4*0%KieGjmg%m?OJ-/B*_]pk`h]kP8C<u#8H1AHCobfUQ\
+$q^g520j.#==B+k`bPtd^frpg?Pr2QaRLP=7?rZ276YO]#VdC0^hiTeWZ$l1kr%"
+(fl`;9q#g+V,VE;onT:C]14EBE!2b<l&=>0(%qH8=T"Xn>5-f?+j8LCBCZiVo66(
+Z7_\/Mt;4rXJ5(EQpDU.dZ'03H7U)=.g)S.9@I<b$7VqjSGBH#\M+bVh(6>7TdQE
+#'Q;Xq\RBk&TXE>)\9lT3+296B4PUmK+64W*XD%]Lp6a">6B7[HaDNIT,>&q*PI+
+S=X,`NiDnE1m9(Y,'[ml(rqS='`Al++=4D1a2,\,sA#RdF0.\,+ifc=;I'PW-?Up
+ZuHZ8_PeW4\s2[aA6GZ#=-6Nj/?H.$;DGmA`!N8*'cW[mA/Q\Fr:QI8EV#U7G,1p
+>#rm@:k`f=<rF*0U\c['VgK'j`RBTG^lPNi&b45ge3sgtriBnr&)gP.QFQ#rkkA?
+uE,_Br\^<H/$2Qq6'EB/@bIoQnA5NTk55qm<,=/4dT3/-pd-ilRfM=-j#'-`iGCE
+G=_2n>+puU/uJLWZalAB;>UU7#..to*CTTC"Y4XsYL<,>jm:7JVQ2A)hF]\e'&VQ
+K:<<5F=h.$-W5kl^G;M'Sa'FV6XbkIa_6NYn]"73bWOVQ]#*4USX(fg2!Q0#%&#s
+crDeW`k?E6:E('>u@57Ma_!u1Ct2pK#!q>#JZ#5Kp?E#0#C1mh&R@Pu!P=N(ao=]
+H.hbKkH\@WmdX/l@*E"t`Yb0TIF;g5]j^khatYfU^)8L,Z_&;\R'_$i^3^9"HQG)
+;B^2P8P't`qMnA['[42LP?kAQTK?\=b6)9,>0WkKiaig`9SgaNV)5.&?I2RT$gik
+0(7(j8QeD^*H`)iB]P2JNU;laI0q<mVI-i54Fb<IB87C.nEsR6'bnL4rAI6'+R\c
+c_6(</Scn('QJjen*D9=879qn_N[\_ZA(p)d)Jt_GSMX15Y8?a.'g<4]B<8tFTpm
+mFad4LuPC5*3XNdcbpr=182dh#1)mEAd;?$VsJXiE/kq.71k[sCs*.NclTj_<5$o
+WC9WWoc*]_CR4jtuqG?e$Lsfl8Y\9307u%'P8VPZ)$DC`c(_L'[7l,/qBbZM?lH%
+QMLuM=B@KlGJC)pH'H1"Ed0rZ+a.E1:llIBYIR;3h/Y?<nZQ0VMNJ4C&(J=0-7eo
+:<O0c\=U8MChJ=j`I_0#'"0@`FUU!9]SBb+&j;4]._L+4=%[Hj8QA?5iU]bc14E0
+X/rU:a>5,RZj2l9o$Lp"^KQ*4rLsX4gfMd21P32TG[J\WYS?chB<-UnEa/JLmb3>
+h?@B-H.LbZrth%)6R>tsd^(oZIW2]OsDl$WdDO?-.Koij/t=]aQaqnuSQ'#H'^lC
+Dt:AW3.5p@Ut%"\$@P^F7`.S-_PIcEJB_B0JlHG;6@p;mhGe?GU%eoMnV]iQNd;W
+s?PCCWM(1NO6%%aEa)[GJC$RXM.LjIiG>HILP8l7_XV[=1u8$aX$E_V9QGM#A#:<
+HRp?8D1#HN4)h,@2&&tE@<U/HTe%QkG+F#B)1#,k:i3:lh:ZHufbPZ2mPW3Q8M>a
+B/:k:lMZo85l@#-)juN6q[-QBC9.L35iN:Csjd"-T3dXhcBta9@!;oknMJJYDb<1
+Q/aQ<8aNE89idc8)bd_J'nB=:kN(6%-k&DG$5@,!296o$OBp+(Y3iSMcIMRdEFlj
+EKrP0]A)*UL0PGIkp+_=^E6+C2T0(?W?_(JU!uBsQid%6VKDB_H,C%>2<^N/uN7e
+S5(Jj9;aU9jlH&ZJ*@?/'.0u7.*q#l.=Uh.s=r7Y@MH#jf3^_]>56[]q4mBq=@1g
+0"&+]T]5k1rmoP:j@jN`U=s_lDm`'t$P1)pa4ctj2J7&,l+`VoDlEa*'6[NR2Fjf
+ELd?sVpdsQ@7$"_tBAC]9]kk(/FRG3Yb'Tc^>-BG/NQ0O7*uB9tU+r3j,RsEJc)C
+!:FkbP!X13OYkZN[pEslpQ<ui^T^@tZ'/FVY[@D9\nZU^dFkQs@;F0c(g(XPDQh:
+l;pO&o(\U@u5WS]eeA<\2YS4NAeXRs$mD=rc,d?/OpA*5%sM\*R)E[%&X(76P`dW
+hu2i;q^]^gs%mp\12;>)l.X!M*N!TWFRS+#IHU<#oaU[mMWj:`E>H.g;cPDgQ9Nt
+hnD+_flV1E5sEC>^SFfVf#DF(koT,)QmD2W7QW,OpCN]2WS58$"e6H,DDM<b!.Lh
+:WTuO)!LF(hWILY[,jpJD8X-gD7cW,O-n/k?1=T8`[.$L*msE>V#K9g7D!1ESrrA
+ioZZ.;u/elJ!kij0LNPWScjF%u.R`Xk1A/Q<oT)P$F^e$`jR4]Su'q$?4NbYH"RA
+>=k(*_p\Tl;+-lDTR9KW*4XnE!sq:(C3&;%'p9r3=`EWa%=gJCR`Q]sP/2bcia_k
+04o>48;-hIU,21Lp/ec0]fdQA.(@`U-WVrP+VS>:<k0%-,J`FBptDgAKg$0`l3Uj
+(/acT9PY$pWNcje[km8`R.rpi=-apAa)IZ)j0VS!nJFW)P*/_[6XDQ-^e2[0Tn_N
+.I+XEWZtqQR3`l8R"_V`ZcPoWo]4@gmrDPfnRJ\E`Z&ec=e?Y^H3=0#KNSu\PFZ.
+GeYDMc^4dj*s2B+.XXkd1XT[t9+benI$aOKXcC2:0bLh2:RLUTpWZ2&=3jda6aV)
+KoG7d]8K`EA/+2t3;cKpOK7j6Gn/!8RnT8#k(l)U,%iKq7AA"i;;[!3(&^Wj-PbG
+Af,D\+'aU(0'#CqT*(ei8MrYod'U&H<a=QY"3nqjE$^;ortMiGiQ1B'/?"C:&WJs
+76(8CDt-pE'ThLN_k$DU-j[G1<5^`uq+n=r(iuPPfi&lUO[7dC$^euHi+-T<C,Y-
+_2!mKk.;Bc\qs::4,\CdD*+?jbo&_diLjo-Vi4*,%YC9Z8/?<q)LKjXcC#klKpOU
+'oMRo@HnI?WmiYjA[Sj5EcnVk"ag@kr4!5]uWC5]fPM*CYB/b)C#@/Eo5%A@W>.:
+MICj_I5`*q&i"W'-,=iKVg;`AjDOj-h#0NNtsmO&aXlc#<&g^N=E1.24`<jDUrA\
+%
+:u*.fd@E7+KaIHJ_H;WNeEV&iM4aqAZ,L89:?bfl0<\WPn$#!8A$p)9mA<2^e1G5
+EOdLWc5ST\:d5uYT!K9F,&qXoj>!#eQs8Q;`^5QL$kb;VNb6-ObY@nKPW2"FW[bY
+\<o;2;rQD"pnLg@L*HB>nBN$Q9iXSb5'\`LPo9=@O(D0NERJg?"[L@M>uS&KgCE\
+![<'%BP,*^3_(dPg&X(I5VhpZ-]%u,e3N`+U1D\ph>76M)YmPf8Hir#$DCpOl5$f
+5'VP_7MEB>0Y4ZqChCUFC/aS6sMItB9np-Z+V:!4lC9l-92G:QO5ZB)b5HkE95mC
+U>tA*Y4_F:tpMj.U2<hcc/)0K)5OrrCJgWZ-??hl%XY;4*c72L-mcNh&bGqVcCDo
+"sSqqC<@!=P;@]mJd1Ypsj3$a&RsknpQLP-@[5VE&YPq1#<a$#2_^/2:GM`r/g#p
+nM;CBRt`DFC)l*[[?cNur;;HkijiRqCgq=PBV%\f$>j'eA"N/[<u'\9nn4ZT/-G#
+mjZ4<H<^BSA`*>7ZT-tNJ4A-3`58al:cU7M-R.Se[Z\g($L:dHc%0baPmEC#0L$5
+b_J,4F1Ge<@s[\<)\rL4c!WZ4V2-D8@-fiH,,`#.Zr3lgR:E=WL@*11S9`>bB6;`
+o,05J1r?6c<kM2)Wo/$&/?4'G7cO4sj(17ttFC\sEufg8<eGWJHZ0;f^\>fgsiTA
+b`4'l!k1H6SfeEkcMt#f72UdrQ;kiX+lJ<fOQbhe@h+i]9a0>NpYmD">p,Yq+;bo
+LMts\pHrlX$A\0kqA(<lR$?_-^C![t1iAP@l)4bQR)An6_sXgKarV&sVM?HN&k*Z
+-2o-L6!"TIO$\XT>h*Cu?9poub?Oro?f-C1:/f2DJDGho-X/S8<2+)Z;'Cg+<i1i
+*]JT0F-3/pog9pmkM81tHq\&uluihGE0&h(FK=Pl57W-9h]@i:<8..X@99=l9=+7
+Q:(:Pe#-AM$luL(?V@8E1k'UtX["6&ciI\VG=W(YS[eKCjl/Q9T55LOZukQA[gl*
+1@iEFLj(BR!UmiRaQP04t)cP?P0Nm4c[ku7T:rd:0uQ#lHe3m4I,<`1qMWbn+0fg
+rr@q]EJO9N2t[I-']]2n>+Vmlr:uELWscr*5=ralQt8j-iA=7[Y&D:UA,'=mWoD(
+gl$dOqB0JksOLt8?8uA3lBS:?%'BupP3;BMaI+P\(!0&M1(+G)L:GUp75t>.8<m'
+gRP12o\>ZOD+VDM:Ir7^pqO^WJd)fo!<PJolpp<*<JA_%lT;7A,()$EnQj7+=$@/
+UHLa70L_\Zm]+B33^.l#Kn>g1WPKYR69h_RY:0_h!i5[4a9t1q^QS54uhkB*;KT5
+i<KSg-'UcBF4Elj5@3/$S_4C5-sD`cK6UDg=uRG'b,=,!NE3[HCpc;&W=3LjsNSL
+JFX2pn577GIT[:fnkI[A_R3Vr7n&3mZTarQn4tj9CKhIEE"8J>j0/D''E(NlnpX5
+]qj&96nBFBlV>AO86D472re2^4@8?dML>k(N0KVbK(SnaJNS_]770Xo0C>9V].GY
+uj8`]E)8>#\%e.qj!WW]X5XKACoSc8]CBqJ5dU4;W=YI/@CO,;4lj8BRjL2f7uAo
+,t9a!\/`REBdL3MeZmgB!KIa'j^cHB9tDWgI>>n&f4DnO&-]-lIkAe&=-TdT!d%C
+$%?,mF?2,Z()/n"o48.[\(nlP"oXP97,jmaLFg[>RXkdV)l+,-is3cbN*'C*7sK3
+HP+q(9e8WcYe.j2EUFKRo5^iqYt09?Y(PGK\(56ZZYu63hLQa3j>s1X>1tS@5P\j
+qlE"5o)n.I0^[VT]#fl*1k5H!;ao&2t47]B?g2K9q)^k6C'-,?C>JoRT"]f,W=rh
+':_72#uJZ34g7haBuIO*Jb726[MZ1^4F5,F#8UL^4&L>Up1rr=orgigr.Lt#Z+P`
+;%*WiLqj,L&s#:hPX'C$@Jt`o$?.'u`.s1@hL2iVAZFoB4[G5de52'(:EaHpXXND
+Qhk/H$e*k_c'RW,sN#.bbo;OL&V.aBeJplgKfNVLi>g>2.PT&Qt;#dP>ChUg[^0D
+nPm.eL5oc24Wb9Rj>gFA"0J"NH#7MI'\D8fRmnS*lL6:/,HQRm]Ou6Zc+$\R$7Tp
+Tg$\[4_&h7]pE&HU[E\Pu=EbD,@l;f%G[$-Vd+!(<1DUaKAWH`@*1&`8q4A99GIE
+Ms\-2OcN<R(NDqp7H>P[P+aD^9Ec^:l;rFtTk-]-09L\Q_ddA2lrdoRTVT4;F$T5
+D=*'*l,"LCQQ4NF+JOXHKK7YrD8[2)$\HL1b5E%J?*:?o@@7Mr-m%8]:B6,2A@P>
+fkuE3n_EUpZ`EgTrY?4Re)oq;Td***l6-3SbB-c4<hA6\bO!tePF*lH?+(<as1\O
+%
+'C:QE6\!W@,C`WbcH$Urr=`!OeBq7iqsq0e>KH6*'NlK1sXm:BteZ'P07f+(EiF_
+k@Y?ej)0kM.cYBgMCK.$$qh,*Vdh0T.,^Q<NKL[uB_Va2M;ri^f\S&]OAB4eF%YC
+1E]3+52H9=Y<up9[>m2Gl:J4&L2FuKONlnO?iXB!q?PTWbc`aKpH!c]%)@?*<ALf
+Hp+g&RiQ.b;;'2p_*mAF#7_WeJ<[P:dB<AHd.Nh[AY8`%Ho21^j[/qtU&@M7XEN,
+<ZU=&?LSN6^45a5!\6r'TQV'We"1A#X5m.OHd.8DZ,4Xr]tYdI?$-eaWJL^RmL',
+g"8LDHiA0*tn+/IQ]tm.r/Xh`2,,JRa>4YD_[W]<B_^`<_8(ud[k;5AKf5BDRHXq
+XoAAMR'8g4"_Oa(eC7+N,de0=mW$HCA@F;C8$#]%\?\U$SD@+P_u<MQ=Q59NNZ*e
+1:=bKqfp5c);Xjt#ro)([rG6.:?6eH%r,qn/S>rHQm!FVeXhuV/8QS=BcUUn7Zf?
+BiCOu'_kP7`hmJZNQ(gL<Kl]Jr/VnKho=KF)tXc9^m_*=PPW1$4?H09C.mX)8QIH
+7GegiubV?RY]V0cpOIP2hdPC8s")CE&`^`2Z0B219hX8DtDl7K&&*lZ58sH=dan;
+1VdX7:m&ePjeVP2F?M(r2!jt+8D2.;t\3<:2O@\?7F&\/nHTr$]jd[;6@"'T+e4c
+qF2\[j`\AiP-TS]2CBKTqVhGS<=4gD<&!lUO'kHO+Ym<3C$kp#kqm:qZ!%Zac$KG
+Z*Nes"VcJcgBQ\s9=[9Oh>5%<j3Eaud(VKjR.ji)8V-@t`5S^:EBG#$@LHqt`<PJ
+]L]$/!70!Woa:?,;De?7nPXgQPbdG:t9GNr@j`2qnObUq@q7DERCrn>rJ.nG"Bn#
+5%I8om/hbX\p\IW*-\T+mS/FDJ<f*N40Q2dJXW"S@5Rh*h7d7cql?maM>e<FqC;%
+qILugXq@+[b57?DX2H+Z[(h4.d=A_ojcmbeYnRc4/*IAhfK*dk*K2X(Z3nf$2>71
+Ds[fiNRo]3o1!qARdU1U\&nt-IYZR1><:Iim?$Uf?D4ZaTN^()Gq[9B#dJ;j?u9f
+g;.I-7@DM@>SuO,,gsoC6r#d#T>'gqU/@*[S<PQ2Qejp>IXFXgtKfs9j"NhRWXd5
+Ze$AL9t0YPE5?qJ^jY&&"#:H)6+E3V"]SVHXq%m7mB=^*gR4ZcGb+8hV*5DaC&S5
+-#C\?NWQn:U1KH]Qg]o3G)j!"[O+^ZeihIM6'h/$XDm6)MOM>fg)OeeoP,_6"q7T
+3A25n[Y]0X+n'!3MR%P38'FV7.I%IG.h[HYcJ#Y15oP2HJ.,28D-3$,?^m51X0De
+q!>D.cU1Y[iVC2g7PYfarGtHrjaUOpJ&YprKn!@eJ&YprKj_DK"6gFV^6.',m_gA
+eRYcuLASZ[W1!FNMelNcXkmM/ONJu%$XeVY8T:3^!pdRm0N+WZ>VD==C<_=]uR_=
+[iNP/BIl<<POa"b\O)-IDbe.!**7iO3=38QK6DV(jR_g!Eh2!0N4:.JC!YBFV+Od
+ib\quofMiO&'VXK-;pR[0A<c[1^\!eRb;0oqesJ8rGFOOqW<O-SNDqghlrTrP+Wg
+LmRO48dr3Z&ED)2:s`f9g%'mZH#%=BOiYL*grI8\!j52nS'@^"SC/D"%;)fQXBr@
+RcTmaYs44A5L?HW?7Gea+6XEO6%d?d-$Q1a:pIF77jBTAXE88q<89XSoU_1F2dDM
+:ElST*nNH=,!fQbFMH&Un\f"^AiD0G:^sKUgm]nU"WWUsGX!POVH%NnPHlEcuXe-
+6(IO?E^G[W;E,iuA7QG-fKgTop$(gZ%:qeWA$]"'g2qPc+77b:CPXF$4TBBs[/c#
+9o16DS0^Pjb%f:T5?<i&g:%e'g!>:JSpI"EEeZ1fsa_^Y+'#M.%+<Wc+8=E7q+?M
+pZU.&VlZ>:JJ%LqlEEn4Ek.4KOW:i%]uGDV"BaWP=Ghg>Ih=j'o1_7Cg?8jf>WMB
+`nsrk*$]CU<Zf6SCBr3C5.[oQ<>>XZaR=E/fqQGF;rm5Qk$/i2Ha*E<M'3=N781o
+`IjrD5(^R>j;N55BH]1.lF&DO_83cFA0D82[[6-kf%OV"`k;R%$I/LOd[ltD8Xin
+3![6L_-\1F6(F^OGC>YT(LE,Y%/>QYcOnKhfXqK^#m1"\n_KZhMT2I+oF[`iQB?^
+0njrrA*Srr<[l^PI,lYDB2$N7-2"Mb<6(`Y4fV])C,iqtb_Rl"]3a)3="O4rNuoe
+O8HXL9^h9,]C!aS+'dj*&7r842d2%Tok6gR^9s-o[l7Dhh^X"49#:\.Y$)9WCo<\
+oY7KQ^LoNj!_cf=096H^K'!D04!pOg64NmZ<#?,U5g%A,a&qTj]d.3IP+3M^k76R
+F#ki#(<K6P:-T'.0q)#KW5nd#l/;1F+i"^\G59/Z?\4.[g7BOJ43SdNPa-\p*Rr[
+>s.RlA4ar7Pa932ng3(>,F'8Y,CS'eJZ(RX<?^:G'mf/IORZ2%/7M"C9'^Z%t^a#
+N)la!a=0;J7d7QcftgB&Mcjm'spE.ntLSR[)1kRh%*r*s-BR.MMB&,kUX'5s.e?K
+4!(PV@hT!AEq?f&T5>kUHKD6@ha"\mqm2:VqN-MV8mhA(3V?fnm]MU>`</'.M69N
+7KE1VVbg7*CM9/c[Al60.(H!6/pBihAEuEnUiu*U@*7koc+BLP]\D)?5.0P7Dcn0
+i;ICJo*/9342O]8UBc-)T`\\.(@lh1kY0_Tl\h:m9k]j!6PR#AO:55U6m@B"*54G
+R%\4?CJMmO;@7<3)h5D*HnK_^TjMhRnD@PHB\iZ+AckL%MB&FC"83%RYnT@[nWRF
+Jckjp97>[6pGPdX<[\H-+\*<kXcg<G6:-3n400Y^pb#rh!9g_\Wu5/)0p,<<Kb^U
+C*mCbk\L51T;>g3Ve,hn@b-T^C(Qo\6&RXDsUe6.\%D<8kr?q$&-_BQFf*43c:Yb
+f2_g9Wf208loo/85)UAXBD+r#(dk\%D1dVS<oEO>fr20C)c;@Aa4(ss3KVJ6ocJ4
+pn4MoT(krQ[ePTC7I93io62_-45FJL#=K#I@*!4NH/qr+FDPh31g/ej">F*6$LI4
+M"Zt>[bg[g>ghS+hF['mct<W<'!eQ4C:5*d`3JYp"PCQp85c8+SGo_>Q'FoMHdpf
+mMu/,edgUYs;=*ic3icLg8gj65;AO3uj$hMnY@k.Z/YU(t&AJPV0^':c/'MYH#YE
+:mN7MC9@%2Zgu>pWO;,95175nnXb95P&-P-7secC?3lRPXCX5F5K*'^ZSlg,:,=H
+!K%O3+,IJ#4gG*0'VK0/gE,\F)k$-IS^CqU/TL9FOiOCONo..Qf):k&0Pue/@4/N
+f?k2OL7q)fg5B%AofME&9,HsE6U?Q6NOlrXaC#W<@4^t.X&E1d1W9PU=6oAu&l!c
+6,U#W.8_dg!LWSpCK.!UTP*f3&b-"P^-\MkRRd:&Y/>N]?`LZ^j$ZMI'BF"M=M]&
+G8R#U/QM0pq6VDhZWTaSDV*iP;NZ)oAKf(k*bMC2'M_OmILhkXV)[0s2&)?]4F0F
+H<P@*Zic*k_t2.bfDXm*Jj*oaS\5A-H78=J_sIm/GP5A;*bq?B2QCS-cO?PCtWl\
+HX0\0J":>(=/T:Bm),k'!*E^iIr6Cde_7`4UOs)C]oegaasl=tJ[]JJYE0kG__i8
+(;U,4A$3kl59KZ%SW/:',,Ki%R+7JL0daa7_rkXBi!3"uX!6$>!<ZKRg_pV-Be*d
+"Ena8Q3jbr+T^p73^nPn*reM9Q)LGulRUAj6V^[c\Xen7tW/*$dJiK)b-^jJnT\M
+6W<QKe/oDC4>N[G49,`TU;90-QpR:)mTe*-BKS9s;'%UrDh<\d@&bU8rlH+1*K_g
+On%&"VZ0hFhWni.Q6'?mVs!\PtJhMU9)jn86fe'":qMu=Qr)&#+)mX]AP$PW&^A*
+;uB[7pfF?Ci7$+0&Xh(j"KZBejhYCNL@C$S@>6YG<_#Yhp9j'3ZZgTI"Sa]f*b]1
+)(i*NANX,0-`Zi>A=8NVG=n>$`[X0cWh*MTh\Lk<0>sr;2W[Gb6U7mD2?e/M$bfm
+W;4J;=tIjE3]>fbf8*Qf"WS;unk?1a-H"]4o2-u3+,`S"nZSSkV-#:lmR:EkWVq%
+P\&.FH5k*lVEFp`T+AF\*m,Am.adNV,!EUR`6@/cu$kbH8`2iONI^oR(86ArSXpc
+j:Y0MKGJsWb5O6+c<8e56aMU7M52uL/0[L82-V]`FJ!u"n^%RB'%(S]&)G-2K)-X
+B0(@<hJVMto9b\hl:0aj@i,YJq=XYK=T#9RmeC.m/a(r"ga7tdWiLhg^`:u]RV?$
+Nhhrd7O<9IJA&ksBnnT^HqLj&t4%$lMZf4u09[fE09f.u2R&5gKcC6>fFq2Zi$0&
+$hfQDT7o@Cqi.B7!mDMfcnGZ`qiQ,@`L,D\DoK+F`UVQFp5RN/JXc#ERO>BPkOnQ
+mX13dU)-;bY3[e4l?_(:NskNq-QLU/0c+hpF*Pi`R;iTs"BOE,@N?iifM.)'s*dM
+^53l%&-3[POH_4r$>9M*)2C'K+N/o79:e"eM<)e,20uU"c6aE1K8?&.U#G*B%4OD
+,3t)g%N/ge.hBY(fsqjMCosb7OEP\mrJ+hs,I'pO>Vd"U2EnS\FX::_W=+$ARQ/A
+H4k*TS$WakN_kY+`kTuYE9+@_.o!jTOet&<G2EA\MJ\s#%]J>IKp79k]:6'&V'N"
+>&'2a9\kf;["CE6JErr>!"r?FJV54tJZF\2l3Oueo$WR6=-MhgQ%q(\n>?BTU?,J
+n/0%U!,T(e^]AD6S/ClCWlWL:#?)7n5[>bh2!@k)lbG=s2h.q^.K`hA+qq0D\Hln
+J^l[QP*\24iB"C)T6*F$5cJ`>^;AnN]g90!72I<6c@LIN11`VP8mVX+ZrJV2Hc`h
+*9+oHlr.F7GtQG38`Ha[LV`L.*'Y7/M<c^<<-TE?]">1"W"HCbC7c<]i>>T'KkD5
+-&&dJt&:X(ndkf7V2YSc#_;03Wh.?oFPce5b05Ip1>f[r[^g(!#d^pc[6tD_=S*$
+;O\7]AqI`g7=RdRQkq%fY>aUi^p?j\'AXM;$6A91.eX>Esk<[Un3Zl=:bmm^m/ie
+<r.LopFrbH7JkG0GT-^r*G"'9.Y%fH!oH,6cBH,1jihHU(;I/8s[$KQ=FZO2;:##
+(u!Fd;p<F511*s(`;]q/;ke'4+!Z_Hl"Kc0uM_lZ;\Qi\G'YCSF,0dGt,L6(8*_f
+^mQ1dBTVKgL<Ghs\JDTcem;9r2qX+W)LEDJS]%n:d@D2W9q4-L+FH,tTubcUBZBF
+Emc@u#7F-).(iLAB>JG=2[q0'XkidikpBO;<AYLET/gC!TrYp0a1;%6rNek'#"=%
+=1%bFtBiFW;o!/e?X;+95b/C-BS<cC*"aNuQ9ls1g\<bf"AgGNX4fgI*(;*>[hRe
+[6GkWSLmU"1%N>h5%7J<'>+95I(J-V<:j,187$EeI6R-U_/KX?3+<#HMk]-i5RU/
+l<FnQX'<TWZh980!Y&>Q\tc5Ij2Gu/[nlkqh;K1fT'k5[!7Jo3it:2=b`ro_A:n,
+g>K-=AYSK,4cs1Mg"BuKe$kLf^jpq[`T4-JXnEsdi)aQIHE,9SpTEpJD-=J$j>L.
+CdXr&.Y(L(&GPI*0bEWHn#0!V(eiVM2J[j)^`*,I*\f$ON7YpL,G=S=h:3;V^R1O
+h0LTp-92G5jIXMqYWnlBCSrK2@G:@;1[^Z;L8<fY^4l]l'C&@.:^QsTH'iH#:1%;
+p`8e_OB+X)bE;+OM45h,q,beZpCM<]_E_@-k4[rK,.e+`an"&fI,+7+;*#(X+\Ia
+ic=g2VQq:24>!)RFC:67l:OUFE_!@3p4"NkL/0:kS^:e%%(etl(SVg2L"eQQ:;m!
+\P;\aAUK'X+#V5`@Bu-^_u8t+B]!8PAN"4Le%,#ANLGSk+SQoR/IK[jFg#qM\cm:
+1SX*j2m"?q:%G"#D`lg9l7DR^Q9ki6tL/-L)_.NPkjn;ti<LWd[-b%jYRb8^m%d%
+%
+&_7I2-H:&.rlNHGr3H)2c_l&qKC9HA5h.GKo6sBDp<=Y?s\7cP:iG,\7hYSY@p=_
+@VTf9Gk,&#Ld\^n(Oei%DIUu'\U2HKUAO)X1(qSWl;A8=HYelH2CES)Us\ue0VT$
+u&o3\PEVBUmJD?V0`m.,2[fQ?bP:):31PSdS2p[?5O"B(f#KqG@aT/sC,*-FJlCR
+aC?%^&'AN]ATkLRY5]D]q_l[T&!22lI6Mg3*?$X+?b.'?V.BMLPOTAM7'qu/_#0b
+f]]W#S#b7DCZY0!*jG(&dAoBq6/Plo#*"#Q%aF"g-V5/i38HL4pXL$@`9imfnTh!
+&2^`'qWqQ-a8FKJqg2sF*=59nZcM(MrY&!r!W**RJ*Ah$A)j@7-jeFDo\63/840V
+b'Vmp(4b;8cc[r%H0?>E8AZb&Q='VJrVl5>K&hoQ)Y>\Y$jfj'TdCp([N<nBN,_5
+tec8\+1$V=?G"CH*C->o]7s'kD:KmT%04:*\]2PhX;65Hd]_?lqqs,hLPPQYujBU
+1\[Gp,4%!iSCHGO3;N`SPD%^h#>ZR9@<)f/?N&Hd;RFnMnIGH-N!/BbEk&V;opsH
+2q2*1GSXEYV[)qd7.ru$FdD5o&9h96eRihGg+>I)Q;b)nd'#9#]rRSZB%j>k$X$V
+fX(%QBBQj`E]9>ku=*9gGRBk1UKfk!a\fbL$dQ^Bhd4ricfmC@\NB<+5QopRj1k#
+*qPJ+C$^]24P,nL(W!rrB(!WiE*!<<*"!!!$"&Krkp;.4HqOeE>k_9qc2s4RGY!<
+E0$59]$hEr2524+Si;f<9Qcic!pJ.!M9]9S?N@NG83AogR"VK/XQ;%h?GS`Ddt\1
+$ChUoVAqoFts([pO=sN>B)[rOZSV9`Di;?;gOGnl<@j\`?W;1UVkl&Ff"1(q8Y:1
+?9Cgq^>]fWOGW6j)RXQ7\f[M&KY7)2.d*.SCTlt7`0`_tDm4a&0`%-`/j'SrPSXh
+!*EJ*_JDkISWuHK"b3n-7W0pW("'*N&[\8&%,pMF<)rgS$qko$J^@7>X(>O)Cpm.
+#d<W]jooFf.a700u<R>?j$)S/jC\8;F0JpG3)Q6O<4*8=Xql>ZeYJb\Qr;eS2="'
+D4G'3kjnJ'XNUWBc"[(AE=lm>TLVmV[b7H0N8?+ag_&?lq+_p!flMbQ?/n&>X]J#
+-o_2?4d,:N>Zctn.L9:IG]'sk@bDZ_,-U(.s<lQ3G93L_Q7!!n[u*"A6,T,,=2Ts
+S_"JAU#T%rk7aJMfm8u5[a.f&oTeIW`Y>V.iMBjh'5:DS)btulW32IE9u;BT%.@`
+o[9We:_OrjmGk"XRZ@PHJ<2_sE-ql!nW^T9(@GnjU]Ce/A2C$4k\;Gj.ZgDS-D,S
+5#^>M0uR,u*$6n',QQ<eVW34VUILWjR`;1=*1!*?'jQuHqI%l*HH[(bL^qq4UHZ(
+fA'4jOSFNV<JFb'8KVU!\[#.O>l8i\>Q*h86,B7q@+(QJXC*kqY(/I-f4LD)L6fC
+ibrifEKc=9IGKoH'mc\cOb=I*&ceU%k</<Uo4%1KBAS8k9:UUSfkHiZ4+&Mc,7%)
+K'ZNoK;91iqACBg9thFae5-g#@bsa:o,,;CEq6o&.u*A0[C(GroePTJ!/Xqt"NjO
+cHG.cepg6G/rr?SH]Z%bY&F>Zio,43tHoI9<Q"TuNGWb>jc3RToS+g<OY(e?+3fW
+-U/qY">H1`QcKg--LO*E</rK+oO9*%jZamB?XLMR?eE&)a5E`i)[@BmlcJ]t`HE^
+8ZK66Z:5jaWM-mb[F/O0#>s0(Z'fWioOt5dFhZk<BpC<mG5Kh.Z65j`M@&"nAXNW
+TBIY*>,>LK8,`$l4AS??Sef,@q+9U4lD\M%Y63MLase\VZ_e%M!^5$"Ki>SF$&Xh
+)gHosUmcmjaGif1)*q"Q;[B)b8lTJ"U*.nLIE44K/58>c/IhE4]9BMF/.lpf_he2
+_1@Qg:$)$c.9X!.hO(+ppfdLT;XXf5]cOB`3=o%F#/G&3PbGaqPG)Q?/Q7,D]Auh
+j1ojR]^mtKEG4T>D<T91ZHaKt.gAPRn+_T@1\^r'JrW?"iQALZ5jS8oAG:mW+43,
+fElY*%5C3:UrA*GeK3X,$iA9*qKcL`PE,/c::`>i?W-6/A6adFd_KQ$BiToPD:2P
+a*&Pi>-U[WmH$G.8YcDn`jKr4sm;K0'27e4edfpE6k)/)L*5+)";@8=2Z5LETE1j
+>nIs,JK`r%Q\\/h=L#S$@dd6)EDK8Ae!R#@-.]k:2CFp_NAPn#RI8.(lt`O3c.=E
+8*AQ(eg8ahbh4KO"K3<0hjb^Uk*tP6`&Q$o2e.`65&*fPXQ\7Tie17uc>dLY6Zuc
+j`DYGT`]ENZD;Yf=Hjq3D;.c-$)Wdb;(OJk9LND<pd2(Lk>@oZ,<#b/[;^qVZddG
+2/P4@`r]MVsQU_p!!;"VGu6WH#2tkr$Fo;QR8MWL%I)al7IikY'!D1=KFbXQ_4s+
+A\h/QNi*EBKSWu2E)]\=6r#MMU\Z7*O$0;bWB273&iZp\D(*3k+D!%)EB:m"771:
+r=SRbqNkf(/Uh/S@6r,AWF/4t>iuUHM!J;aPgJe,M@r.=.fI;Z(P+*CH-\9cTT`"
+[$Ync5-UNA4$&IgNqVj;<frf4KS<f=k;-KKpBHfekd!AN)'Ig9pE'QR=Fd4BPKF-
+YQBUZaE:S8i=Xq.NTF-&>+`Ce5a`3`b2SP)hMQ>sf2<gM2CL,7%ug)fX\Wnq='N`
+Yb9lRF<W95&"?I7nlq38%7ZDY4/jXpd^t[a`H"G1G[O[k9"Y:tgn424\bIc$7JBR
+1BI-b9[]m*K!r=0fLi/N1NDV('^rFY)).6.#pkIO'1P%*k!cg07Ao+9>d9FMK.o4
+f"F8B*b=aF<@UuCP?uT'/.lLBgs^c8@E#+iA^F2m9qnuDGeN`?a2ZM'gVr"/72XM
+sjDOZB650S4iD#qFe0,$@YTb2pS(%Gj;>P82AiJ6*;(=$j9M*:EQc=O76t.2QjWo
+Bq6l#_%U^t$8'*/62BaFSZ8Gg6_]CPqR\W'D#A&OWu)i_HX@eu1NZI<F^,rA@M/c
+PgZ.r(")LBp@NmF_Zsg0Y':=N$V$;=(CW:_`5L$pG8@,,M<_UE(`83R[E>H#+[OQ
+IpU3;#SSBd+C^T.<&b(LTpFZi*o[9ScBI)<1sY<FUZ'E0MtZXeQ!?GZKh?BA"Opp
+o#.on\D*L,b_Kim"gI6i(u-\k%XVr=Sc0o8V1p(JeDmu%ol6a>AQQ+DOWQFDgHD,
+J6LaIslgfi1@tei.4sjMkY*@2@R_nde`&MT^=KH>b.2o1c%Y@LdEJ@`c?5O""g(p
+*spBI8Lkbo7feRFglN7;2SCoR>7CBL6C'lb4(K^,RV1#5SI0acHp$K-Pl`,de958
+7qC#S_6u<GEFLY2q89^p_V>lkXer%AKa#[&r>/nZWjj7g4X<7_WlBLkhn.PJIJmd
+qCZZ?b!$lK`ZPCX['##Q/X]hcOaJ@<JA*pFs.g72]1FL1`QZ24Tq9M)<mnZN!ePa
+qM/oo?)N'_6XPZ/3Am*e6Cc?*ndL*IQD>3oEu\;l6@Lc\J):?MFu&)?A6<'I;<T!
+V4HK]*l(CC[J6@([:Uk6`5JY7;D0QYH2b]MIYoO>lD<>klGG?+p@pKrW9"Y!jJO\
+DT>00Pb<ITPB_T[nLMKhEn9O$`[i30CF[eC>Ai>HW3Y]]Ma8jt.?,c+75Z!HX(6U
+l&07hi(*qaKN:eH!;*ML%(.1W!K2g^%bsU<-LfL4asgVPQ.M#2p@t+b)MbOfpkVT
+5[bJ+<T+m'9LH%nJ8ko*PL[a&L>R)INWfP&BJMrd/O)$"cD"8ie.J#9JneK71g^9
+^d"c"F5sMqKK+oGSks(f&4MJMP*JpffC^&/ldTZK7^WIBTip5?2Eppa\R0$umV+3
+rhn!R]WlMIj=]COM3N1?*%B;YU;X2QD<I*,)&e=MU/uV>?,@V[>Qf1'5q;s(,-3/
+k9^sl4e-MX2eV@WB>&u]$s$.C#I0=!s\C;Y3en0`qPJu6Oj""p2-"/DfHa*X=S]q
+r@OaXM<+J\F[p^sLVYK>S;iQcLdEQ"0_+55TsIYFV:;+qAhXHA7ZF-4QfIj`7f0E
+I?QOZ?1a@B:.sGe,`^t)0T@83r;;Z[H(nIR"nU"0PXMP6M^<o#o6-)L2WK/@+q*j
+7V^,n!P_J^HA,@3MiGuWmJsBA1ja(%*H<\`/&o?60G/7)6#\n=#g07c802>ReF\R
+^f8)#FL.n?L6s#T]/=R,ZD"T6Fa]cO9+5GhB;]s'8XK`iT%narSIBoN(VbVIM=M\
+F=4&W*M6%[YL.g-P)n7]s:Z'[L@,R#j*rRenY_crS0gV#p$$n/bb>.q27]P7BG**
+/WVQ<ZL"G"mRhgirafVf*qU]p/8NC*?[+.r8>,1m`r5:.64nbdbdFbsCs\j?Xi6^
+[9d47RH/7!'#rTrP!8;m)aDB81S]54T"U4+S0Z/5g&$h\jgCi06/bgVA2T1#ONqm
+G9;m.3^(c.VGaS.\Q%0o?dVh'!\IPgAO9+h4Uc./98@p_8A#4AY6/i'<.MUt_]KX
+co"gR*YP48G;/T73:=85#qSW7[Ag76T2$3mU[7CArL^-9H!24NL\&o?<ptdBXFk>
+J,_0RO)BYP\0p)sSBo(9sN8e>sGgo+<!f@n]IcIE-)SS"_M,5jZ0gT`3eGP'Oo]2
+&kq973r<TqDS6NNQcPc4>8C0sA+,MSQ@Ob]Xu,(ZQ>=aT.#W=!(4GQU<pTXF)5oX
+/[M!0&ki;E'aqfomh`>kpL@\%,15.1=9KC\B)C,/:uK[(DPiioZr+MmO$VgjB%$1
+OU(O6ET/S?VH%NtSmTJO^g:UE"@O.E8Odke-C4nul&H<`3'PcX(4]HaiSKOrUWrf
+=7M+*QF[+RR$1(=b!*t6H$^8IC*q/B%Z)7kQ1Zc]]m5ZGE7'ku0%+0:PIAegj$[?
+b-<[Y0i3O_'urB6.(96!*1Yu7V2K>+IXhLAW!`3eu.;qL@+dg?De_rHW18)u[[QM
+*J^.N(!1i&1Ep9o#Df\J0C8;f6=D%SY5TLa%@+LQJXHbL,5P%k25"0HZe_30o]b0
+aha\`)QF7;Mj7Y<p?0_9!9@'r/V8Cr?&f_;9n@?:O)$/0FV<Hnt4E(.g[>e:-c#)
+J^pejTG_Xk@:Y<acBp3dXNi,pkRRtgKMGq4o`,AOOt/M\*hV[JjkC]DO$i&.RGmW
+=oL%jD[-%PFUDi,]DDM@n)K..g,"%kpB%MlRH2c%SAu!)f)=ggu^3=SFY*)"'%g7
+'/9CO8n83e!sDYGk(S*R4A2`36)VYg0Fi9.d+qU+slV$7E`?)FG3l5p#k71KX/jc
+<6o#<iGmd&B=Co"&oeeFsTMe!@.aOQj#mH0)"UiQMTFEFJhX.F>nuG#T+-HD@:T#
+f!'k95s"IrrBAW'UL:MIH>_7dKhu5j2gIK;3@,7'<MZ'%mqi2dnK]LNj898-LQW:
+8fU[rc$2^aiSSZ<-#(kcH(Qgko/JB8K&F)QpG%Oe\8J3(3JL1(%=r.OFNJ=d&eJ!
+-hOXbk/FFF^Gl91R*m_d4EqiD4[Te/0fT8iY]Ss2Kl1;4/jm.`+c=cq05K%?&mWG
++*T511)ee:2DqI8q)Q@Q]5o8&e1HjZL55VE':\QPm,.iIe_BATVhAh>%lRZ)ta>A
+i:qF<9h#^$PF7'8LsE>,uW,GZ*hBe`(4W'JLV,Z#eaE%'oRj@O-A9[-#'gNBu'D$
+V7246]n)CYmp9BfCfOAFV$^&?cml,HtD\Y"t6mH8j0ZqnCZ=<q]RTW8&UeC#Z)*+
+RDsDd%'<2HaL(c9-\a#(fJ0s.r8W@PP*.5!QEl#TYq0%QmNpCoF,Q[LbP3U>joct
+A??fa>IQE]@Vu\fN5@m=Db9hp]]<4pc+VdAr\^t%):RJ-a`l&eA;ZrG)4s7/nU=1
+Um$'UdKdDkD]8A2k\(]ZOR\6X>3k=Btc!T>7;5YuF+?C'eU`3EubH#+7R:F`+%3A
+M4fMIH3WWe%(<-N;YjoZ@/^^nRt2!8EhBlYb4b4$1_fYsAOU#Z4m.ZK:)Y:V%(9k
+Z#`U-$.P%nm24>Q8FZ<`Dui!:q/b[<I:Zi@\jL5'm`r$D3IUM_<P:4LsgY20RsM"
+?0;\m$B4Td>&DP6X#gCh?p:UKblb8C>Q4\B4g(lV1?+VX0dh4hh1Nguk)!Q,c3!S
+tVjV_:EeCp+CubNq,mVt5.CBuTP$,5skZW_?\LZrl;q&k*(_WM1UU/VMYD<9^a.8
+%
+>BUDD;=A-.:?HhpRlgR;d^oJcn=UZt*\YW=^#nsVs_*d"[IR5+:a&DJfj6Y*5f1V
++O)Q_EU+m^tU@IYsL3HNW`WGeJN8rTLMf"1K`K^.i@2gl8>Rd_VpKmdm_)NFi<$L
+a4>I**`meQVoEfMd,3pO<9FS]r>S9DqY@!Lp=<-pi3^4N>HG.S?&Jk#%sA;`snHP
+Jmm*MtDZBL1%'sns$DKqjT[a&IY&Wh@\mS4WM[hY115TYg6qu*>^hkNBP4'HAW:#
+oSOLsm/k/C/5N-=6\:R>E"+8YD/r/OQd:o+=q>YV!Zid2`FFplk"mm@jXB\I7t9<
+bJU<@'X-1mISdlP6LGGKbmnbhHG:WN](E5A%6g+:F!;HCIi/6f+Do>XZ(Z/cCFW,
+7q#AS/KS<tQ0+!93GGg9R;;\!D+LnTaAg2gRmCbs^2rkGE;,u$A!"F.oP(:kM2FO
+XK[FjLs_I0!UbOYJZ+5Yp:r.3HWL4b$>QaNh:&a&Xd`dS:/G>B+TC%a5q!Zr#q)%
+CUH]IseWSp!YCHcQ\N%kJCD*:qZ/`Zr*A(]g7"Rg1+b<le4@H*,W[emC8M`)h1sH
+18Bdh$.&m]OTgO;5<usArl7S0!1-W-V^g@nA?=qeg%qPId\a%7?)^XKGpLhQ[S&4
+/H%l+d7E%",q-4(i=%k)5i"!L4_&+J=;t*#m9@Sm1Q!Ipho!s7*788t-qh&%Ee/$
+=i8$=_>3u]V0i*.g8G1TjqGn#u[%BYOhg]m=S8EsBKDYFjG6\/_83C#Z]!Ab49a:
+#!]jT=WsDf/IFrlH')EFgR*2;lO11TnNJmrNj]MKFQ4L1'NV7N$"tGnO;n`@Y4ag
+2jH?8r7S\8hpO(Yg&uoit7^@**Wed:.>W4(^mfLEiH7c8DYNrZ:W@ciV&Q6k:jL"
+ep5X^g:=<W^"Nb"!OPO;q,qt7=LqlP16/D4g9fe8b-J1q!2lQ,i97,GERMq$C[dL
+R3r\ms'Y3_QpHA]rrO5rcb??[o)j!ZOp%D_ul0a,/QrDKL$Q'U]Y0rqO6qjfE9X3
+lUe[K.WaGN95lsjY]QO&^Q8s9'=E0nGlm&q1<$%B^+AG%i-7=4YRj>iJU:GL.Fo0
+)%F.ce+XPuMI]d*O:97qRpWFrsR8:ngj9ZEBqN\>]8YL,0%edk8b?]MDQM.8+P2Z
+8ku;i:ri9PO<=D\f.(LESENmKK="CYAcBEiC-qZ<)L9So*K86R[*^neQ;i(rS9Q#
+3l6_>G[*86_\9L^,_qSYfrtY%;F=9r<`m+N.AoaC?0h)*<QS'oA#m@BJ)DnE[tfU
+`h#@A$+Wp^:ZFd$nEm3qn",(OY9g";$EQDabBhe*&p`X<mTkVe:UX\8BHQ>H6$o`
+b\/)!d]joqn(f.c'#.I(>GKH]9.%GNXqIo&^;O7FAO*Tu$nbtR8s5/%CNW(M=O_K
+,^b.E0J,dDa>+ZkfkYUHjIQ[,I)'LYk?(:7PSM[enYYVfEal46Qc3Im7V,d:bWo*
+#[uDO6_9ACS"_S@tgg][44@#@@,sj+L;d<H&8k43-l3\*kOn=WEt6u!j8!&:$\1m
+DeQeQaApCG8s1#/b"$sAL#1R07\;W=&nD-F,RsqG7eO^U"g@/AJ+ic'MVqKT;7]%
+Cat8@_ihI=NS/KJ:TgFB<iI*:F)rU_rM?L'iOdc]7Z:!*X_$H]4e"onR<XTmMG&4
+;j(q/13IqS7*9&#-!qSmI^0^u:MWXf^7Kbi==_s1jlDoAh_F6=j2R>XCf^R;_pcR
+If2@jp*g#R[e]+Q*Ws!75!3nrm"6FUQ9c(A<k&<J&l/-pm'-"XrSan6tGT@tG,lM
+g?.QC>BH<nITcR(ol."Bd1VIl3_["J;H+V6KA5qqBec8n/&S16\Ne6W"V#4?GldC
+J'&b.j`_=3o??j-"2qk@"%5DCNK5b>^<b@^!Yb4Vk.%'8M76!H=.%Q#L"$1W[2j^
+_XmeD&lj?2,Q"(@QYQL\D.NGeI;Qd$*KP2F'Vpj_&)/LR_>o[d/r2)*]pcgl5^Fk
+1690tr'@_8-FY7Q2"\GT11C!gs>Z_JueMG=)sKpO3\mC;;A1AcC9`XA-<HntS8\Y
+]*s$:d?);:Zp0<mK?:kFWq\cCJlp\2u.G][^O54er=Ji.b\_3,7frD@St:\%&fKM
+O5-;KPWt7'k,g4EGih5pcl!<7q`WG3!jNAnm<pJf\,d'U]&&NCOD8-!L8.*D^2,D
+giR0o1[8.L16h^W&@iL*_(+))MBC>C6j+G+bD2=^+4R6iG+0>O!lg&-<eN8f+H69
+lB:1$d<s*u?5(GR&VArG*L+Ep&C1'-_CrK^V.<N(7:"2"e^_4iK#h%<IZ'Sutd&o
+HfMXj)^VS3spA]uo22]G2.n3Aj5ZT1Hr7m<q,"unk1_mD1<>^9q\N_&9TVK+3J1L
+3-eJYrN"ar]tZLF#Sb_9=7Yb@]6OOoY(ul=Y/\"'i?gp'iAA0:7/8a8Z-<OK6<Lj
+&'n8nHmlYC-!iTK1C5Zi#e@Vpa-5uA)(-b.":F`5]X6R8\UU^oe(sC/../BF@2sN
+*?u3GPs]!M'12K=b&Ki/Z&t#?'RHc<mPh7k.sX-02o%m=.u7J?<CJ]=!a4(2-U`<
+N5-TsqN^^m8WAA_l#;o8sA[k'8mj/QicO@AS@%BT7GHN"IJqK;uNZ(1N50fq+/1;
+RLTA`(2(Om!'rrA9sIGRlh_8XAr"g8UuS0NA34:o2Wd5/W.L"ItGd&"P[O)g@L1o
+%
+$"S)jnY#>3*_frAQj4.LS_RllHN&4n_]\\hn&)^G^+W`$K9X"%9=Et>ZSE?Nb@e>
+ITUaCAbeP/0i%@(8CCi]cNKonO1f\?HipK>iTKiNF*o9(D>FB!=",nVF$5@Va`(>
+FQV/:X_s[N%Cj:Fb)Y98P@IH:+[luEbM:E9*M$`@0!K$&r<&WpEltT@>.uZ3o'['
+H%+(q5u>O>b*Q>V=JJAJ+b)@$fnT8tUb6,$Nn)LKR@Vnam3*+R31HkMhb,!r^u]\
+Uq\%nt9`&E7i^]d-=n)tHhgEju$#%nCC8$o[=?1)lB3X:;c9C>UQ,5O"4=<9O8e,
+Z_H&GEY+*+=!9KFo,mK%T@\l0.Lf)?4%AP*`d""pFpCLT<<UAKTC!%K&L"jB)e,j
+H2CFHgkb(OfLh*Ha3uiS0jF'osJ`SQTh&.X[7B.@^GX\#YFS4=("Q!6ci;=:*0:3
+`s[(B8EjO4>YoH16\9@RE]@!GnVKYaA,,(`%C'hP4i<I*idmgkcHss%j3Ho![=Z-
+:q7;RAE>Aq4&:a%9>Qq)<jTF#6c$gP@\AO;cpY#bnP]q$%M0OA8:4:\+V_fc+Y6c
+gUlAB@Hk?Z\]a(@CnVWV'5QL8E#W6C)1oj"[oap(6*tuU+44p4&iSS7shL901Zp#
+=!8R@6m5BG$7Pk^cOI=t77EjFiFb^VR'-&niiegWF_d0N7*Nt;j&l[?]*,$IG]%.
+q3A!faLk;m&01,p(%gbS=mhJuPfL1H^""e@pco9A;,a?(ep`_#P[k4oXH][f+)P,
+i+h[@:(cb?`b<rX"2Ll&9]V9dFa&_(8m4b,$?#^Laan)L3^n+cA'Y7"+G?XW#'Hl
+mVNpsM*^W#4F2:SSL0AG,;W]NUR#6u'[q^O_sN(JJ^s%DKA1"nhB@5//2j[U'PIM
+&A7/uh,DV*B5=j^8Rpn'TKE8`/=j#aB^[RRZaK]-o/[R@f0U<0>(DR0]/u@+]Y^P
+#=0u/m\:ur@,i#4l3*b@ai(Z^+JS0_ru+*+rK.<Est9%_KaE(_$pEO&QZ^+=2kM2
+Is35;AKVIZYLH@c@]Tp6OMjp1NT?No"FKg&MN`!<<0$!rr<$&4UnSZCIkY$W]aCD
+bs*LQaX((W1f7UJuc46U.\XN;YE7gSe*-,<.)CE/,lFoR[db`_nhgGdkkIql\Ye5
+r)cB21XH>FjZeF/V!]=,dj469["6^pXA2FKaQ$c(OT;J_;4^CqYnk;M9onuS$YX=
+t<"csPE1a&L@3%X*gpEDdbfW#/NVpj3)qP)G%)LS[8\"jPAb$Gcej5DXl((=iY?u
+Se-]s=[%@2m7Rh-,>0NF5EA0Bqq?SjnK\K(&c0QJ:)MjQnpMaqH)]X;'F7P&d";L
+-<9QO_6T0=lhTp[B?*Ea:'X5WOg_9h#XE!-c5:0Kh<I%MHiOWS4.0rQIaVNm&9F;
+2O^3RBh^eM!>>lbRa,1hI/,h/nG$6DhfUE378UZ<+Gk/UnRIR42Fc^2PVMDR7gh#
+(T1N3Tg*'@;e]E!qVeU9fd$fJ4WLE=K!D-M4e5?$^PrQ-ZFrhXjjMAt2DIZ=6<;F
+;^,raGE/hF`GWkodm%Q4^<rtsL*dL+sZ:)oH\VNgmnVBQDQXC6tol8PGS3Khm-W%
+rirEiq_ZHm&cMh>8k96)eC[Qst&J=nOWNG\qX0t\9M@gTbXkF;,c652WJG'@ls*u
+I4!XPU]0B6J<Q;qaM^PL:lk-dWS_>%L-0%*Gi7#+D[DA*oMf4uODsaV"[$)B<?#1
+L8jXH-#PUc+7?8+j^5q[7Ek/1.:A`rL;8[CdCL+KhWuB#Pse_P2-.N7?SN]:fS5a
+?1&<3R=GPB_uM+r!<<0&!<WH,!<E3$z!<<]T0gSZFEIj7Gn?KgWi=PPZg&MBZ!s&
+Ee&A2V^d(>r2h?1C.+qiW_e'Brp,<pN2'L9dR^+Q$^nM[/IQ`[92h6=F!.fE3B\`
+nrb;REU3c<BsuiD2TXj/d#>g'V-)e]S0Fd9C1>Rfku,&1D[NZ[iLpM5)j(bY2'to
+dW4<jrdl1jlm?XG5\CJ<QjjfYhW.%^Mt!qik%Scbf@<Snt0e:$F@ZIiY0a<8'F-?
+TBm,&S&Md8_#OJWgWUg?YIF@p,O+t$Jp^$D#srMEN'thAbY'@@9NDSf+N&qX4'tu
+OJLW'1$eKh(7n[77[!+1D?>D<M7tJX%[`803mC31:ZBTX__+Wa>8b\BW\nb9oinF
+$k[hR;@#/-BY9'[ssYF#Un^e)uUAhc[VX;UX4n'&On+B=bua!uN:5dgJcdEsKmDR
+,tCH^BND_+Wo7eS22W`W5s36eNYhJ!2nEb7ZTs%L2CY'6'#F:M67*JlaH+YI-,pY
+E/:n3+T:<T7+p)=+0o1.0q6[o.5_lD]Ue.O%+bM$"*s.f)`G3NN>cR?lG@E_4PqZ
+9"];3ammiT!cE-gIAn?Y%:jI>Rs_IBd;Jq6R(`T(%-PII][DeW/c+7>EKjCXXPsS
+R1&C>?_b`R9l3ZnUdLC>uB./i44gDq*2>dBs>[N:5lSAcq?BN-[TBp$1*6QF3k9&
+d*-1`$4\>TI.g`%DMi@Det`FZdseA'i>!0Y7g*rc3p*Nj_N+D-VQ;hD3c"S5ghQ?
+68+/%?b#&5ZlC'2b$#+D_k%XJk?<F"5p/V=f]KLoaeZfB]A&R9OSEie$)8hUEG5d
+MU&JESaX]2ar0[YpXX'Lj.,NAs,">mc,I*nJ+haM,e<ClRa,'4,!V6@kc=)NP\'!
+a%Tgg>OU$<HGQ6'Ec)SfO<O)]ni[1'WmF0;Tjm6fWkhab9g.NO/Uh(FU2c1EndNi
+62kU#53Hk,`$6-PU!6E-G5nODtepdKa%>ERaL?*kQnH+PVB^s;V6VlL\L]!f.%>X
+AP*>eMjK[tBm?mTEoHk5og_<P>$kl_r,9RFd0Abh^2A)*$N&qU@frJg's_7W3!6i
+lV`-%q1opNMmUX'EQn//ZZW*53OHC(;LKqo$Lj2iLP>>F:1)1/t]`V;t,<Z<.^*X
+X5bP3O"mI*1caTc+gcR;Dr"@4A-'X<FuDKR,(\<ln\J]huZanP7Kl4O;VC.ZU;nR
+a13%pL"15AY^j]Zeb=_e4>=;;\?&N1WqP+p]l%@f$eOZA&i8U-`o+T"nWmIe.U#7
+G<onTiYk+5TjDZ5GOY+2U7(gRq?gP:L]RT8S2N3#?jrMVI(G2M&;;&Bc(:oi:1I*
+[d"78^>g7Z0:N!hgcN;tWn#6N"k..,VANiI*?c2OHV`"@qtK@1;\A#KZnU-?_fK8
+(hB9M=Ed8.)"A,I<p1a/!gaC!ZK[;OUT&a3V]Lcr5G'Ir>q&D4b.+O9%puEPA/S-
+LuZf"U8CHkLki?EYZ>$J0o[hSC2"&[=-OgAc%b(V1.IYZ^C`M`#B1&;RP9IrZQjT
+>/[[^EG?^K3H].3f.\uBaIc[Ar'Wu3PboqMcdUF%V;K^6m'@UG.G$9<aj7o4Xd>)
+>d;!Go8AGA.O4juC&ZTm&AL2A9b<c+kop9aphl]%JG\YSiNnEO*\Qhrl1gbV/79<
+umqp[2jW'n1*iL2H/j[c&F.LOA%[k(RFeQ(LnO6&iBd<9;J>rfYjG\L:EI*2PLqB
+,SG/VW(q!Cg]?SfPT$[8gAr91K$aVXk@d3Q:Ge/C:EujFp4.K"'0\kn"(mZ5W%)g
+s5IV)Y\rN$>A$.]j*rf?@;PJ!$NJgK^S@7Ti%DWZ#SJkOnFsgJ\f"OZ/o:e0s4u`
+AZDZ[Z0a+ag,XL"oC3SEi8q0'as$9f1/bjq-A0\MINfoW-3Utd&/L[qS6rA?;"<`
+;`31IEi3(-"6DOm%kc41MAhMp3o`"nG!NMj5rB!F:e'])X1:YI2LoGN_P@b`RS43
+*amUL2NEGkY5Hp^7JNo^e;+RB[6EVc+Lr4r:Kpjld'rr>2,X[,;K0ReH/56h;Ab0
+FZLUSN>s_s,S]5fs95-Ac=T:P,8\fLRTP)QtBEN@uk12jiD-VmS_i`%CO)h+Kpbe
+e;<AHVdeh4aXK3/H`-@mR;nnUS3cm3N1bFQWXrUWn-RZ=Hs%V$HQL'iXm<H*9I,1
+\#,4<i;&#c5NEM6r5K=lCGM;)3_GB/Q6D"+DPE:d`D%].1Bgj.-#R;;>*V`#=iGU
+Lg7_KR*[pF-]IGpbqs=e1T.hl1Mqlu@68`g\fRSja/2DXSkPU+s`G]'FG,g36ak+
+ksKqdO<*8u?R`'HdF?E5.QZpcB?lqk_r?aL)iA7"a)!,pG,U8@_jYK&_](qFklVd
+>H)"&jP(EIi/XkHEKria,_$Gf"jj:dl`aj*?Tt289%72\6g0-jig4424>)\icKZY
+lP2eM]<&m2;23'WNrSB\H=/cKk/#:<UL2#=?<60=/oZQ-n.Y>>BSq67_6'4>NZLh
+i`;JiIU<qH9gmhqCZd(@)oA'#GF.t/<GA/s7=3!=UA^aB5mr_mA(Q!d;,O;&UhHo
+2B6(/+/9EI^ohqc$%eRn2o.<7@^W2paQjbPugs&6`:`.Dsfnd#N%]'NP8Ck0],,Z
+pQqtPbsK<n@NU1=gMbL<XuMlf#Djssuh.cX^F*(S(V*N'Z7,2s@'StF,H"B?r3q$
+1q#eTg<m$a4aeK.67d!,Cr:fVg=AF74B95H)S1gNh,hZjN)/F5?.<boDUi+T3(g\
+\6j@E7?G0C't*Vdc\qZEpQsZT$AP/;S78OdTeL@jf`>c(`)K[Q0Lcne8K3slPH@V
+g?UO.O0(b4*A*[*:@n&\f%(]VLbTZ591[#]"0p*?$Y$H*Njl2_\b^D*)ur#D&"Yr
+Mb\12*c;*-h\17hKrPs^37EVl*p)XVdP1*=]E^XU/""'_BP:DKT?$a>hS4`@5GQb
+.kQXX8nqF<hF!q)Uh=`"!Y-W%HuWIf,8JLsC4rl8.JDU,tgM0X5k_'9&A`t<A"7b
+B.NPWTspP8N$'FD5[Q0f^qHLb29[?80U\ClFSMqtIH8B)HWSU6\WD&uoFrdUEgp\
+?-!qb1s@+N$[JE0V3p@U^l)D.4HZUi`=L&=bHIE3b2*P(isS5Sft_gJ/m$5*GOLY
+.^`Bf>B-6GPmbY!6$J*O!7gf.^8Kg723U!'gW6-rYU,&.<c[b0!s$dES>O9,XuW]
+1h+F[9SP4A0!3gJHeZ$HD[h8>3[Dapjl--i=!6ab+H=G/sq92IlY.rX@8dssfHEW
+fL]UG,sSGrS$((SU``njmLL.F9MN@4'\8-U"ErP*W8#hGOB8h28D=W':+[CEr45m
+!CXa-"-dB9mJ+rajsC!WN.QWN,F^4hbF)3ubpe1G(2#,(!VQUC^Li4+i_=H:1DYO
+1t/5T`T*NV@%h2/VZELbR?OWcb56#)MMmAfrrHf`#oe;kP6T]*51n.pTt!u?P,"i
+4ec,;=;!d<iVEq!HL;U['Aek'pkUlF;)74ooJQ)7@-\SYmGhdU`V@lrIkYb>0=@1
+!Mrg6ECE?sPB@KQs>/QWia6jfsRp1;RpfHiH,(WBu:+o'a(h;QmjR3'MYh+,Q+t_
+OjO5uXI<EgJY][skS&aQq"^bE\%$(6V$0=0-BU]_?.7:Id$jU[2BCAX*kYZpMK<Q
+j3kN3ia!'bFtgM"hl7/?hSN?#Mm#/64L]kn+<>FoM8+/-?u/V>XQB9(;$+!29&Vm
+kBqV3RHYs_fe^"`5rXGr_s$s"oNi/JD$Q2b@bVKrr?VGcHjR[nGoWn^3qf8?C+sU
+P=YQ[("qG*6G7'Jn7BY$Mjbakn;pEV$\?9@IH<tqNs:(dHI:.Gf'W&7C2<mP.cXi
+;!ZTa`=>F)k00]1(gqsh-hXg7>"CnObNpNF;i8>u#(`'",kJ*\rKoA1IaZtWle'1
+,i=DPHcbd#.2%f?/gOuP?,ZD^*s]]pj%-P#"R(FgD=QPa%R`%EQdXSg(_c7q!fHl
+1;W@G#WT-YRZ&!$IqFE1$:Up;->t64IY84WThU&uDK3?Oi:OeJk91qp1H<>Gsaae
+B=ieIsp?#@+6k=QhZnaguC!WR0)^OO4l!&/,Aa*bIiq!<"MceWUTofYA%%o;!hd(
+cbO*Q'rWG:"2UoGd-p/oSf6,GKH1=+g@JXX]rnQH_-!!PbrF%LReUFc\60puS61n
+mrr<)g.=6inZ2;cPFnBDDrr@r-EFHc"?Ff;O^cso998)f<_Wig3YL5:oH]$.n@WE
+s.G$h`ER:61h\@U!FPNG)FFM]C'4%B44=0ih_Vld4?/.g^QY\=RXBJ=qZ;uqYm=%
+(]s;grUD]+$C1MUA9KQ["4RT_IO?jE]5d)X-DUIFLO<N2-]#<mNPIcsg#@3*S\lZ
+(R]3ofL\&/i2g=PpXHk^MhO$dZf6qGFpQYlJIFeKYmN$Z08[Ji3U7W6sZiQMU\rS
+F5j)2e;3+MVcn&kc='P(.;nSALZs`NdgUR/$X3iTRf%8[7!7fciZLq-fa'ART7c<
+(-<C_@aQ@!;eaRb:=S61o*so4gWSJ$_D=lGu0Lp87V4d=5T5',nd)8-Eas#JBC]6
+c%8?Ai]LI\QA=!o09Gk@p4MDPL5fi[%g^ut/?C0NBW`O4rsWKWqeR@:_4hHfMhj"
+e@W2-`H=\S^34[%u:-eTI:!8=L^Q*[]I=2+=)*j6+($(5pM!d^kQ_@POU.Q.(aRp
+=uFE/$c8L@T]5*j8MAVArT%-bol=d^7+Mi8Q>Rhr8K?1cMmn?rTtE?L3Ie+O(_Of
+2tt#ago:ac&'G>@(I:`1dA^4R_kSba+j=U77<Yhq$NW&$If.7O*GV/Cr5qM,J1u6
+HmNPifg\['1P[cg#n[Q#/2g##c.;I)D?b[#RV:2=#bde"tGPh2r_J8W@!"<oc,>X
+Uqf;J<`bgm4cg1rZfO&@IOYMS7FQPrdY2e(`4gtI$FC)ouX/6Q4J.sS"+Vb$FfY-
+A_=U1V7\KonQ[BCZN4.@$uleIS$f^o:`%.P_C17b#+WQfmT_UuVB4%nS[T\O3t^r
+:/>CFI4E=Rp:(>UbEY)o.<T>%a_ge#b\7G',tT6MRDU/.F@dfC5T#R"s<CO;<!3R
+W09*?:$8..9sVA1!8$Zo;H9*DVd(NsLa#mf-(IrJ;n2(J'hi7OOU"-DLo.a;&-/o
++Up6d$HX(E=?%_`&^)'"jaL/MtLKL?1Oh$Q;ragd>"KY;=Nfe<(IZhio\06951N6
+XHM.MK^i;<EL7kGPPQ.":D<YCaI4hks?3R,e/N5mEPQ`Ii0#JZ$ihu$^\Sn416rr
+?K=GF7lLb?0Qg.j@ZR&6id%7^Iq_ZP&^;K]:J"^n*N&ajI6(C:i&kORE0Fan^Sq>
+,4U[2=2'c!V`[uZ$CgRPeE=e\*nb-<Y#Go$":Zhj3,Wped9(rVEX_5A`+bTdXE:>
+;_(DMYL0o+4lbg_YPAB5D-Gc4T+=,JpT;OtL=T2TlL?>T?t30WANEoQo@@Dp3PG@
+n<<4uMeI+Gp]"G4a#T8g#rWJSJ;YF-IkD[ST#-2/1h0%%g!mc,Y2s(-SGF$Pe^ua
+C3*oHeFLtS'5#K8mn$X*9i/OsYN2Vi_qXjZCQg4V4OI:C]KAQ1b-@0U(r3k_FoA]
+ZPW)@%ss=e%,+W8&`"73<g5Sp:'h%Ad(\]7[(h8j5sAT7b@j*"bR#=U"Gg43AFRW
+r=4.".Ib,c)paYc]?Nd't8qMMQHfM.7<G#6@oF9kn#oaq24;S9>V4%p>`];8=Aiq
+"4X(NDNT_TqtKKN-lQ+`%=\4?&gC>Jls"g^p3tWt/OmB?<:,V@pR"hYX0toD+n8Y
+)YIA3B3[Qh0n(Td+>X#0a;VTbCbVu,CT=A\P>0A;sVN15K#g?.[]R319==qo;3b@
+f1[1F21G%7?_g*tbs#lq:[.1(6A/NSJV8>tUiid0QDpPuRpHnssg2P]f7ni`IXL+
+-PuDf>2sO53SmE#OP'lh<(T#r!_/'j1"g2fJ\Y^eq#>c]]E:1)MWkQqn8nY;"(I)
+oQWXrr?MCXjZkRcZsW4Ms(*?-#*``GZOgb!`E/UdHm%S"AUJAES4iEFb@]+:YQ>H
+51c1O2WV[CRIntPAE;2*H8WIOY16dLW,`&%l^:6%Vic)s=@#h+OfF+NV9Pef*Y&%
+sZLMr7!7Dj*k#h*7.*'I?l59M`ch/cWLE]d#]L5&;D_dpEnTE]`QXP@50l@.sqXO
+IX5_P[9q,!QtfbJYEaTr>?;*<%pLXb/kKi+SPSd<\WhtTP^Y7sdVYl-/4<Oub>FZ
+KI%&B:R$h$WnN)KUDpVaN(V#2Z9"$'EeRSM.0>`*_JYj0,7np"$,Mf(I75]75u"X
+=MLnohNo4Q'GA7e55'A+]ifn>rigO_nc%7nM,\4MH>tKWlTYK`MG,3-GQ.Vp/JN#
+Ua!e*72bXT0TfV#nc&OgIo=P8St(15)&fc01@"+hg^sb0_q9AZj96R9_<Gm+S%O1
+>.4p8rJT0$rdbqJ<f,fm=oQ0I=!Dfn[BM_`KmJd.t>1_V;=?YW-.]6,*\]uh:7m]
+.;--$M%(I4Ui(ZO_'6h2t3%+%*n^O_A8d8!KY9nWm(WnT>,.cg^&*njibS<'$Ikg
+q'#b;j)0%Gmp/!`5=)>P.pq,o[7F</+(WK'pGh[aMN?J^1)W?\SGEq"m:sblEs1+
+NdeAVFmLCNSq>/27NPbM#\e0``2Xmp[5qa2B#cY=/HfEQ,Kn"#L'VE@0pVp\C=Oa
+Pi/Q"U&o->H7V6_]LQ(ZU-1FMh;o_./mJJki[+5S1rm10/c)q1%54Iu,^4-2L>FX
+$731#AgWMa#AV+Y%UJcn?ST?^7AlbM-<4e.0$qV.=o-e/C;%')JA+Yl:b]dY-MXJ
+Jt4QX`F^@;u?gLjrqo+>fOb7(U66^[IPnYPh-E@U6c="q?I"[0qAniG(SL5+Y`g]
+I!\PWRY#&E."oXMuC5`B2sAn-YQ#.29U->:^Rf2mb$Q@5]S#1(=@_2M>e_b1snOb
+6;QbR@%&qE;op/(<0`gR7VU]a/H/>_gOS]+>[nL1'^J$h3En7PHQ4W%p>+qAYQX^
+bPqP[[2?--$W?p=(YadsXQoS5oc</U^fe#tHBa.qXp2Td5tjZU"O*B.:'BNHIB!A
+geCc8tqf.S<$cE$fN2W9KmkErZ*?B9U^Bb[D=!>f-2O8=f7PSc&1u*-"-T[Q;6QQ
+4kQHP=P/ptGAY'b6OD];%ubdjR1DEV^Qe1aLoHAk3\3&R;/[O'*Pf6B.m-:G_qp_
+d`_K[dmq*[$5m?&N4jN"^=9!L,-P/J[OW6Vp86;g1#%it,+ZQBtl5+:n6eFm)F'O
+_T&ijg61V>t`tZ67tK5%_=k\/89$;_!k^3(p2]MQ)W;a@)Sf"4-`D@Jjc>ld0kj4
+[tl'1%B.PV&9oN8;eVOU#^Gb:!&-6g_+h!QR0lkM$6k;mAe@/#^\L,FP;3Uoh/Nh
+T1H7(HXWfT$cl/0)SeuG&6=hqkj+tCH#l65[&6>ekeBP[c^DA^rdGcBkX"VL,*P`
+LPK1kG[b\Y"\@52)#1sARe;OjC."bSU.e6Yh_14RFi!H1N"=sF5X@t5<+Lc2!D1C
+h#OU7-[X\k>A!B*,)KqlHT%@-SA-N?'B4,XArd@pM0n<lIbljr5M*0acijk*_8GK
+1h_P^W;nRQl_@VR-^d-`up".*LoU2+;$>bE.h.sj>r`^&P1911mN[r24"m0bJZd"
+1=5*58O3^/ZSf/\&1p7"M8Lb9*6&Dl_j9EOGYF;7>Br1&6F%I47-r!JX=5,F(0gu
+bb#un!^!QnJ7tme?YH4QcMt1o,A3t8cDG[S2e3UN%)OkVJf@.0L$)\efM3S>;"C/
+`3AhC@h!2&aN:gtOb:2^?K@Ydp:B!i>*LhKAs[CClD'*g6A6A?(;kmO(+:R4!\`I
+/<&Taek(`PFB?3_BD7(%2d.1G#Vh9gQU,FU5#TQ;Z!YNEiHm.7:<95n%Ynj-d,3M
+G>nXIUI/1nVhoC5g""cr8XkVNSLhrOk^!W:]J?5-4p7Y!WiB("p4l,z!!!$"&Krk
+p;/p#qOeK&L&AccQnc.;C#QXu-!C%-i^$srBDjCBocoC4_"_biJK)Bna=pKrh!"`
+0<HB9j9Ot^F36hkOW&R`9sgbUaA\/apX0Sqi>".FbZAm%CsBSINr="IELPd^lgE=
+N\]PA+)(V%q5j#i[2aH3MF,ee7F2,m)IJE_chK`Q+pAO-6]Z\WNt'7teT50e"9A)
+XWU5"D-HcNDdmM/UBc(^RfBY<4:i:WIWWgNj3ig?Bkpb1N5qu#:S(]R8UPFV+M^o
+d7eWsC^0P41U\m^m0=q9#qgj-c)fb5n6(lEA^VD?"F;CLRAkBZP,<+%c%@O9KaVW
+2KomsQF"^8X8R=\Z2AUQ;!(%DoqEt`5^Wh&J@dKg!U%%[@.@U"kknaR%5M4Lr%88
+6K9:05Z!+EF0\]i-B&;.>((D>jj5qFml+W&p='5nGleD=<`6mF"'R;JVD0RsIq31
+L.;QFLFubS!TSa%#$N@LJdLI>k:.*+7A)PgnVtB37!h%+_NUB1Y7)mt<$&]U5/"H
+B6:eS3"cJ7;T0*_u[so$CSGj8R,5n\C#">'Gtg,<+[B?LB,OU<[cZOKu>1`P>Sl1
+.)>lk0oQs0QHHJ2">D6\"'W7'*@.^R;anVj]o`@df6EDF;cud*WYH/JPt!/P'1[3
+8gT3CI#91A.N%U@u`R)9t!0c?'T4Y)ajrOg)NdRZ,*PV%]E5Si@G&kNZLi"#4dk;
+>smK6Gm%&%^p6[3]1!!a&]Q87$s+X#=PK419`R3NG#&d0bO%?W)aJ7+I`DH'8nWr
+k""G94VuI*;VI("?3A!,F9%Zn/_G]WhZ3?Wr32Ab\.?X@0EtCEK`rbM])fq:ktFP
+8IZU.'tkSYKdDIRa=e9pVL\C"U#r@]]oJB4dfZ0*oesX9JD*Y9#Dq]OmXC298-(,
+'^1kt>YI]!$`R]s8tcTrTktmkc(P]k)8dn$iY/;Q5lm6D+Ru84K'bf<-qq7k!PIP
+:")$_[jeKioTT`+BIK]>".N.JH[iOQTC;(ON.-<Jn,h1DX8fbfh"-X$m<>S"/&DW
+o[]Ls)HaidhTC_XqS%0oI40W\q[<(A?JPQ6uae2S#L<A6GgYi/EF#qd5q>nU=S7"
+idq"9JZGIgjSd(R/h4R7bA]"rIZ!>i3bA(<5joGE"Oj27bsg-60bq63YRVWm#55Z
+4$/kV+3M%m.q7@>_))%dL]%G((FpsND3V3<tnV]=PD.A5RX[2Vl-*F,%\h'4JSp-
+H+'IT@-)B6iQtmm.f7@e*eH&@*..g?l+2i_%kEI&%RYKDZ*8a_:5CfbC@JIMi/L,
+qgW<)7!WgkTd5p,Hiuh1ZFS)!\fOKGc7o<[^-)Lt0`5NU^$DNpMifR@+V8m;aTB$
+;_SIlQ9gX9@JALUNRa$OBqWXG%6m(2#&g4ZPYbD#_De&U(A/NfARrF1f8rBK\p+`
+Cu-;m+aDf<ij-g$YK2Ngi6F7O=MXDa';3\I3=RrrB<oYuf">IeAudK]CK[9o^6_W
+l!==DhMm2N%=.Nn"8`OiWg-c/sk.a<PXB]rN88))t''^Y;hKW;=&l^+FHV6Ot!sl
+_=:I`."J@)_0'")o7E"DB9>g^p5?pLR""mS,*VC^6aIi_3MRIc]:4dIl_XbM#r.6
+Ic//d2I(Jl%5'WDpEMt+"i#B1hXj"=.+anhRbhSV[%&=8eh'(h&77=H3B)F]6L/O
+]#@dP,-1ml:D@m2[Z*h%4(n%['h6R9]1+/lWM?8s$T,1X%RLGpX:S%]Yer&[@b&-
+Fo6qhtQW='e+2$-RQ5h>[I`6\#\C^ClU`$632eFt+R?]5;5)V?tf-NEY!2a,$o=#
+H+,S8uN*K>TSUC$mR[\A?SQiV380[?1F;)*>ZpTjidaj%_=L2@M)dtiR\IX`+W2I
+%
+hPpX&g88o7j#KD3))%^_"dlOEjhf:RXbs\7B1J@#,<*+8hV>%Mh$)bQ:8]e<&9tc
+SJ*^,<a^$;L+,hlWGHQ40fhQYdUEl:K:iHY0E?sF%lfqZ"'MUS$iEt15nCh?X$ud
+pMbf9_</ut_?m/s;8rt+U`h:A*@U\hoKHB))!'D<CRGDE\(V,I.rrC\Z^Z5u,^G)
+b6dOh-+:i-Snil"iDKkTI0lo1>H9FQ@>nB=^S>O,T;j=?3OIYhMCSY-*V-0l23MK
+^g0>929>EA\`[l^!gs`+#^U-0j8HKE3V+84'Gs'H*,?XMV#J@q6sW5D[Yq('#Uc\
+g&\G/<3W^\<uk#cS7:H;Agg.R1<,kqUOF)9+d=P>"'-nc,j<4`oCjI3aQ'GCU1iY
+^<_5AISdsBn!FqjcZ*3$"`CRVCJ]#;U!aIS@Of5\:s@P5Pc%2OXW53NI:(*>?nDE
+1Y=D^[U:RBMi"3C*m/I&&.)UR`EY'kh/6^iTQ/`Wc:6tfCdg'gN<P+p=:!;X!/&b
+SD_VVbXrr=91KfA=iBQaf(:YoT;&\;Q+.LrC<hgZI]_9^JpGfL#[<amP'>OE.iLI
+rX77(lt?nnKu_1.&CgHfe?<>d6B#]V]2A8.'*39m<Uead5K(.N7VSqM&,Jrr<OVf
+I]7Vr7>dT'oRG^F"hB'E@PJlY_6-5r$H=!pCT%7hm3H_Q6"lAE5Kjh!7_b<K57>7
+NXmajLbrLHPQ\?CI,us%,BL]A/("1R'e"#>5Hg-G,e6`8+4&^SB<jBS=0rERpnH8
+Z?b;(Gn,V3<Vt>UF'q]sO_(eB?X"M)RO,20H3k\l,@Gc5;*`FC=+_%2?fpnm!3kt
+0B\V)ahOgo39b)V9D$q%S*KFQm_Xun^)lPKcpb?+OMKN#=mQd-^?]4(=-7^Z[V5@
+2e#LTe>[.Q8(Z^=N\+mh&oRoL];olYF_7>W2>!mIJ1:#sF[#nWhWXFbP+OI4RNk%
+,j_F`5\P'UF\O;)#KpJWIBKbopldD/umZ/K$hcK(+hejHcE\,i*sJ\lD*7V((UkJ
+2sU`-(G;7S4iJG+pe!>f\D(:64U-t'C5I5%Ruh$k`N[+<qNN"oHEKWe1;4QL*0P5
+@@3l59O"k6!@YM%'hjO#,goLMu]YtI2G%C6c\`3h%8\J'_;WTaLL[!;=6dH1;DVc
+:WcVB8.`E$FDg_#76UXamm-iE_!f%7g,9';5iHVBoom)=L/?rtN8qX6@N/*>W]UU
+&u,Eak])X3(5].H6,mho$f!K'($Xle5ZH`K$2JI)ih8^)2t"<W<&T17ZI1<GK2H!
+0]S[n^Hp&BnjIO!.H)XC]1JFUoUfSm)kL:c8!Rggb.Z(nt0E%E"K=IP$j%$d(mS%
+L/Sid42sI?"]n@M],M79>futH''n=5hVjqjo<-nled.gPCV3%YHiic=oDZ]F89^*
+QkO3Z!-"Z4>kMC<QD^'Rib:F(kNoO7`H]N-"=#<,aSXr5@ea.52UA2A59dNNd^>J
+XZ+2a\rhe6"Mg!R"a@\Fh3_8/9IXc*T6ombO/bU(fOr'hZ7oZ*3=H)OGNF>eW8E.
+F3VrNM@34sXZZf;8j(GtNLi'WmOuq2OOO;W?J)W,<%(qu_bqVu^>VrO'7m"+c@!q
+F;u\mi,TD,8?KJ+'?>LiMgF^@`kNDplB6)>+tAK6`@saJ=Va+`7:Bc"a^U,YR9I\
+Nq2cK*"&VhX0MSTN.Ff'(k'VK[-mqo-0qftJ#k922%s%#5C,^I)XSW8'c2P3YZ*D
+O)OZosEKCIq6#a#JBk6L:/UeDZ2r+E5O_'805O?1MooDaIppu@2#[*MSnOn;2B3W
+IT-bhB>6CT!&hDMfTKtGWGT=ntpq/l/Yq[@^u!l/P.*TGgWNs;:1;VXV$"u)fG77
+%
+>Sjbu!OXPr51;3'oS2]I^L9JP+,7hZaMpCsMrqQeag)QST9D*1:=VDh(^#(oS\]j
+/B1W&VE"5_c.@rZJ^"r*Y9X8VKoThSe1li,>H.n+s!(+rI@_Q@2/7_21ITWbQAi2
+&i@.Ko3f(a?grQZPRkN2_o8.)YXfFmSI==Yg(7#mkGDN^bC>GLr.4I-=qnI3hhcG
+XsM;c*k2jNL').R'cA2r_[JOtE?8_&l'FVfa.ruK/l4;?/PP1MTSLKPPS3)Qf@#(
+7q%[fFO45`l.HG.]Ie_nRSOD3/A*.,/8cJd=je*(82tKr0KhbB[nKT5%WfB+$PmN
+Q*H+r>]qgW$r^6e^(.T34HF3J!M#:8i_S1#ZdX64:4BCRAc"-]4$67RdGJsB*fZ@
+dpKbfsXKllWg*`4V_Sq11Y_[%$G5cN0Qp^<d`\0D5HIqB,(ka9mB)>sR"C_"!\C>
+bgG#I/(ihdF+*+54Y?U'kalOMO*G'3J/&")<*QYnQ9YuK1(>g;#m@gTp<,giH0*&
+(]f7ej(L]sbFl:#niK;lA(OZT=]4_@(elkpQ<sJ#$GPnr6Gk^BBYeW0?m2H9"-E>
+4J,@C/Ua9fSjcm#m47N/Tnd7&l,L?sg+_WgQ!8%UW"]HAPJ?lJ<XpaEBYM;+Q](P
+jkM!"$.:S^K_=Jb)?MPPc'm**_m&)]f=>/Bh.Q*dm:PWPEjD]aOSj)i3n;c*fZn!
+h"?`1i?Lkq":=W\).3d_@KY,NtZ&$VB(P!)k"dO7lke%bBG0Q7mmb3ETX3ET](KX
+IXEpMC",RM`S+cDqrK2G;CLX>,-`P-/$aek4RBB?n3_tFb^bZ^@9+&&f4,E3B\J8
+@_mf:<RcN/Qq&eAEeoh[_*-foE]!9<rp,#ZKX-4XN#ki+nPE>Wb:5e_bYALXdL`H
+XWj+d[oeH$;oRo&_\pr?6U5+g'1^._kU4W%8YT)Q9B.tU.*9%Y;]S%fG<UUs2a]E
+T_^np>k5O?p>UWp?<i_hVWGNO+r\pp9EKG23$_^Sfs`&J;JCQ'Lp6%S6O5bXqhJ$
+7]TnT_K+j8j?-"E9:Xm4mUP'&jQp&HFc6%@<Hp`+XOnUC9#;0cQRJX:Z;=,.L1s;
+`Mq<_2t4P9"l_9Na=I1.iBX$Cj*k+$8BBFJ$9Y#a`Tr]Gb6Y+[1bklecG:kCh;d?
+3ng.IM,VJo_2)4`56G"W)!uqN:0;h!>#LM+/X9C1bUF.R(2SsI`MR%H,Mimr5'Y:
+[H!J&E+Nsh+QFVp2Es<bD+=B/RbCRVKYq&gR-NOfuRS/r@D"*iR)!NQ04lrUCJgq
+/H/OAV6#kWbt>cBkQkcW8\P5P`I3#FRp9J@$Y+%Vn5p4G_s/OChHI%l/qR9:uKPV
+>@_!\.]F8mo+`dcasJEAJ:d'kRVY!b61J&4d'D`<8^>65BT8()qdi=NUW"r\R*gO
+HqgV&iNPD%]bJ$Qo0]&aGqROJsKi.L9NKl>Cc"lI:AtS5KG'IM3OkGb:/_iKokS;
+$"?cCQEIuY$ZJsSK/^_ZXdlHr9LOmQW15#s^_o?J/N\\7&FSSgO#T]u<@h#f-PE=
+Y8-LS6Be>7m^I`0l3E![Hien`cjUfN`QXIUn2_a56;TBN^SDB?[V2RetpYc]D`*#
+Dc/Vo<")-kK*BS=l;#S>0Z'f&Ea=A,CM?6^kTV_[?g>;lVl6DHJJC^3s;GQ\2/6,
+K>7'+K!pqI't`,p6550B#,tKXn$*jYURi`(eBU$.?i!R?T4VO@V3#2)IpY%2c35&
+_&T@=G0qh@5,k\f+DI!M_`e[7DWpmjp6^/0L90G$OdX-*,`)r<?7+D$A@CO&oi@]
+C+q?G%Fe$g-]&3]`&5j"R=/NR9I26h`'dE`9*>\8`o4FcEXKpF;7MFW#HhIm0X@R
+%
+\D_3W"m2:3P::'Z^r#L[I*Pc(c\/ja?4j7?LHGEQOT?>>&T4:T3g;E8g`=itO'`H
+/(6Y#'Ml%mCApVr2q1c\&2*</gZL+Ai,M@ob'JL!@/nL[h;6.]]ibbun$sa_:mO;
+(L+2fCJ9HI'S,/)B;$AQoC$ntF#e16q5rr@fD&Jl-M=PR!;73Z!@E9Su?ErZj^7Y
+W5;@a:\hi0]CuQ,WlA_$?963/=,)*Mg5SC&h<i.Z)<t\X$BPP:`O[Uo(_j,S\IV@
+OkB1@mB"[/5n5hB1Vc@*7Ljf:*IS,@30:O#k(Zj>//!bPQ/Q$,nL(X!!33'!WiH)
+!<E0#!!!$3!$O'_;.4HqOeK%rdGaTbs4RGY!<E0$57fRe%KI(/.$-49N9C.@\g(=
+?2lpFARgk16Gsc!'\:Rk,Hm@p`UXQ;ZN9Au<UAWnD:qLBM`'W.k7PcicCT=g;W_I
+]&-.<B2>"QcTPeNa)T,YPXD:ARSX/s%@3sWbTOP'2DY?>F2A7FT;dNP0cdNI-<*h
+4Kc?q@rsL.*f$jk^+FJ1UA4V$;W58KO3mCE'L:7n3Br&-0Q.=d4LM8ZRK'.iM]4f
+,tH7)X6jOKE.i@q;[F?YqL.oE,30!dsNIW4A6J_f?Wr)n56"ZHbr=C+PKW[$lKXV
+M]PQtqE,-m2Zn*c:lC?eR-Xou>QbEBR86R>;G4i1\F<Ho4?NGWR`hA<?d:CO`Q:K
+u(Z2=s::KNpeg4s`\!!!&>_;DMO/k\S7NkGWD-_$j.H^<B-9;-]4!hEafAd!CmB.
+Z:"^rp,r_XOkT+Qg4J4-0oM.o)3(]b1I,(/>1!/$=7CUT:L;Z(/W%2rF3l%:6c>h
+:9.BYrn&:l+TB:Omc:rL*CdG[99knbB;H/p7eB]%+Uk=\l+!k_bV+r*f\KlE@ZVE
+K=$cS6SVK<)9#j&OC6iWQ1Mg3-N`@iCU@h!T3>]3`_E>S+Vr*Ii<ufB#&@Rl\=>5
+2//<7CV417^*7IrgIQ\VK8c[TA.K5oj!"u\P@pt55ol,6F$deK??pDg&Jm:]S:(u
+Z"+`1,\32?:n*^pO(GXe:[/^E[?8C0'+IBk"$%AU,hr>RV8nqApG]b.BZatA++E(
+Rt5PSiVmuY0B0Z&&N+."gup-M)T#TB#*_L-MRG&s0^+niT0;,PU0%2D'e1K-e$3.
+sag_lPE7#D0j=:(iq&$gJFMrM6\-04JY,goIS5cLZIdK__LLkmbsL+GC)nCm:Q+'
+1L*k09#!E[t(TiQVZW[:`OW::-LA-,b_<uc6+f_&F15nKf%+Z_CehVEpjemTSoiA
+]TDP:F55UX9[N*1E#*QZhGc>u4Js7*_.TZ4I9]U%g1a%5nXLC6BZ^>C/W"LYO#QA
+6W'Ck.k60Oj%aXs@RUggqrrBPW.oFj19I>jUNTsth`JsD/`#g3YJQun/@N-F'CYu
+d&"Rq\l%j2SrKY:m[p&bo5onibg0#O%IOc-]$6,#D:Bp9mrYrPU)Kb*-&qtGXAM8
+)=,i,ETM'@&6R+SZFa+o*&4She0O?h)uhfp`(td=qP'P@bM*D6;_=MOq]B"'HV$p
+irQlc:HcY6V=%32jY)t$Sh^(!6!@!#tc6\),g0tmiQE!"M<L*3NPVXrq9CJ37-gh
+>`[8*U@onO"kKE-(>e`E&%3Du>3c;G6V`\kn6^r_^9HagP\<&2J8!?)i?/FphU_\
+1;2CZl;ji>R(dk09G8`Z)P>#U,`g,gM3n?2p#X&Td@T;ka4Lum/3ZG)Mcji0Lquh
+Zo6Q,8B%T?K@F99d0!u-R>`SSur$8Oq4(hDm\9m;b_:t@-d$uk2IQ>a2TGR1OR"c
+:^'$+ku$pN;tj-kadZ-2g\S\,+"H8d9-Ipsu](OU9iB=I2iu\$(j;ja+kS6e67qi
+7D6.Nl^9f(enQOA;6>j:7rA].$<7Hj;u/tM&T8TE*!tiHUW6P0SpHk2^Z'\#"an0
+5WQ*:E-j#;&P3E#0_;<5N=_-6C_!^B*/l5)f>nf[VSscg&8>Y+N4@_4&L%k#iU:9
+.Y:7+r<,#]u/R0N;k3MZ8l\lU>_%HCr\Sl8HEi72M6D;&Q>/Z#gFjPEY'HJ"-N(@
+'gqo&R9;+aV*4_'+0C47dO-q:X(-"a.U,F-BMFmn0e$T;[Cj2OT3TlfV6jNpF2:n
+r]J\4#9J1T(l#X9c*A)Vb_3DX5K#NL%TfIW>./1@H@c!-[Y;4,u?]k7al\S\Nt:&
+oMRS3Na9i)SL&N+Uk9BL:p[oLcN=>6`72$]je4u@\@nSZ=t`8?#7O[&uajI%'l53
+GlTNW^H!]\#'fcMjJLimq8qA3MXfHs`=Qat(;me.94YPsLa[+Ja(.fsE)oS*M<>g
+,n;nD-pmS]8X3of-31`L_,(,El+q0mbnHNooaj>hj<.OIih#U9`iGFU/pV6"odXi
+4^iA'kegN*t\JeabKJ8RZlQOaL/3oNlT=fZY3]L%&+Sqf80GgsVbdLjsGcb(9U(1
+sk..jW]9d%F5`5C"g"(Mg1dj$\Xg3rolT2FSIRT?]`oV'jsQ1/.m_-&)hc45%iuB
+4:f?lQ%rm6_*FHEH]:&A>X*$WA@PZS==T4Jr(L8((EFuN&BE<0,l5JpPe`]N\EQ_
++=NV0O9"1ulRPu?U?bpnC7oP7>43+"66rYu1nt'&DD9I.9?2F&PD-jE97U3I3ri[
+hUuao!F$pbG$JRu5H%:1-Y/h"f?6-RE]GZgHcf@c7@>$eEOF^'SP%57l7#5&[ZLN
+nj)0eeCrr@_jJUhD@:f4rcEmgaf9`YJp0(@<u0fok8913\F=POqk4@R(d]kuab]K
+DjkBtp`o0K/:j0pc;Mnfm1hNZ^%@jk@/nf,X"p?ppqQ@cFW;:J8O=2\eN7!&s(HA
+&;.)Zm>Oo>C-s7a,DAl'CF@j@oohle"YV'4l_7u"kZL.!H_&?:P0c[c;tpl00^<@
+UJZ8)]D96#k>#So<'>IqCG(4*aeF7TE#D&?@LG:^hD#/TctKQcdR"B(qnaA)*DX@
+p)JotGo\^5hT;Oon6W'/nf2;8%6YVCU3m+cLGh9Srd*s)K?kCkKe\t6VJL`DfbX-
+-fD,K*u\dl0Y*fLAi8edc8=phVBScaS3h.10N"Yh(86RV%?_$gmtMb=LZ*-pL@'i
+W$R6a>O-0sf4l*U56>Mu1]!<$nA,]&I?GQ?@Y'`F)#!NAA8up9O-:+35^'1im>.I
+"!kl,@[L""]acH8V.Mab?T52\ZEBA$a/g%)a#.)35nXGP(B;V)*WR;G9l08;KJ/F
+kcG'R#>U1rG&<:!-n5u!.r^ZSbs[s6dUJu/]?nYH,u6K?k!_is"F#Jn0G9I"2(ja
++rX;8J=EI++!lMZ<o:^\+AscBS#m-P!O\?&"i/\?MC(CEnhH,<gP;lh3;`9GDpr0
+ho$NMP/5rO#5b_D!^Kb>uelNJ[;XP.V^.0R<B-,lrp/o"8<XL>aqDMbs.]N9ap0-
+&bQgqK&J5^3UT)B2[#^u1l!hQ]'Ff1;+RLE\&m@?0VDTH[5oaY*p\5?Kn"'^Jf15
+(`Y:Hd*HtRMS&@CT;bl)GE5I3[`VpS3iHC5^/"!`%lCJZZ+9;\K*S[!.YDn;lhq5
+#FInO*Mp\)KH-)-!PD2hls0"1$V_70/K&+l2b];5)l*_?=d)3JKf37D^#kb3+s-n
+Rh^b!1/gG4Xa<h-mN6:,d;df-N64Y8]*21)j?<,&8HM(MI,tC<J\^JZ0N]H#q/In
+geeq:,(c:Ap_e"O%#mW`a0+Frdpd.t'/9O;CL;hBY-LeN`:0TqRO_cp7,P9BBn4Y
+!%L`"Fc&2?`B>iWU&'b$[g:F!bCEfW<OVq^banXM(:M<>Ah\oZU89pP2r^qXT3bW
++6j"F\q7#01&$Dpp4qs3%lEDkl]uhjJ56#]\tss,1'/[?S%?8BPbcu(G"aiKHq0D
++<#gs(4Bb_W37'Z$)WZ^kRceZ'ekO\$-\^0isNN*PKtlb.KB]*^@I(^-ru^H)T6-
+<@D2n_Yp`g:?bCJfB\N!Bmpm^`O$>Wo+r;W?@0i/Occ0n/LjZkrVP:qD$_(Co#/"
+BGk*]cqHX$rL)8p5L's%om*"(DQErBP-JWV's,)CI"!h]gf";i?$P3XRGY[Bel#2
+:5EpnRo#0Eh5mYlN?=<Npj__RX*h3H<t=62b=A/OiEnc)&2ZiaF[FGlI5AF;+o.P
+SaEH`!M>sbW#l)"bKQ\S$OAD]"2F,^4eSsf/1A/%1kmS1I[1?$s5F#AZUIVP+W,-
+VM@u`1,.'\U;Z3:(eRWMOO"5#,[a5fa9\>'mL\0,M7->+\imr-Rth$!eqH0g+_8r
+uN>te"F]AE[Xai3]j?R0/#Fg\d:'7"J>S8&[/LoV[MS-,N@W?AEYe=KcXO.6T&`D
+]#Yjr,I%gu1t:6:Q3!RK,I\TS<-EZ#"<E+aE!Co>7$8":[[d#9YK[tr<R:A%`)Z"
+TOjJV\<eRZ\[?Ud.u0H^Sb@+P8;FLa+qjO?d2a74JHTXe*/EK!HlQc,1WdJ_9^9@
+@5JYQTV7Iq>%lsnlMD<r.P^Ii",pb\D^8i`M8HdkKLkp5+tpVV$ZH-U57GA.5hW_
+k3D0eNS/$ooZV[u"bp;6f`f[<##N9pJ!1.H_>r_j/oss#)nosN6UKkAD<'Y,oTjp
+o]UT?BmG#VdJdJ8+/jpZ>98<`4J/[qC!+;$/FCE/.6e!<Tl,N3sX=0g=gCA1V5]5
+n6AMHh)dP7kVq8B8B:R=`K0pj6;/*IK\'a$`"_S;UP>$Q"Yo(R\=Bd.sLk,bD>l$
+(IDK5JrC1bX)RS#&^12Wh;O'^KaS]I""8AWL$H30IYP/)hNdE$7L%)6B7RZ_ne'n
+HB^EJC"GKE\L<K2pfZW2-?o]q8r<*)N5%k!Rdnm=Dr"[&[N29-c:MZbUKja*9PHt
+UNP[;\IQcH_.+8?I?2=_P$<FLmi'gJ=tV'gBTC]dPgdLmMFijSEV'EW!,6:lPCUi
+Z1rc5)Z4U][bNP$m09s5\P3@T#Fog6nc5.,Kl34Rb$"b,Q#Z5HY\PAY//j^\7TWD
+d-k9QOMBP:Jm23piW45MYi)g,eP31FUWa2p;/)6.8%?ka,H$<*4I)X??pE9I9.:V
+<dY05:$2m%"2efhau_]^OE"e/JQD3S:B>3]Y4IW\10VM!pb+e2Z#5!*).r#NHBV!
+Cr\g$m;WV6#Xq[:-U_qF:di<)YqCIVOK*]jq,?0Y$Q7?K,$>]`bW)o^BYj+BGCSu
+GSlOJ"RCtr'M[AVq9)5[P5oUR0bU20Z=2bg!FVar(o8#,FgQ*IaF]0Jf;q)k!uac
+fGS;qJJ`^O/<rb;E&Y[E$I.<+S9*THA0?X$L;%fhAN*6cgL;'1h74pPb1nS+Nb)T
+n.@q*&OH-<i9'\[olD?1X&KH!C5mepWDACP/\+XX(s_G]?S+:X%T_T7Y42@'kSn.
+1%ZU:qkb2(4!ig'@]I@E(&W]"H'?KeEW:mbQSf6-Zpr4$*_SK6$O'rlrB.ER5&:R
+K`m#:eSsnR`A5)6CY4[d@=UEEnE_ePnQrp%P`)N=3e!O6u$/>(a=ZZ^uu2%Be+FP
+cPZ:XSEptYCojnYD07g)Vu)>YM0r*bS&h&FaX/F5VG9/g0.N;F&]uTY=?I=*62JD
+C#0`O!+kZ=(GSImrN*q4u``EcoPFe'.rYS92faC>kVZ-Y@j&WsQ=tt2m^DpXpiBR
+['#93pL=944%KN%Z`F>93dXa@>&hB'#?CLN`a@B$Zb@Iq,u3\mDVR:bX-&mcN=h+
+RF:33.o[!?Q[08]E'M>XM[F2V,#jPu]0]9][fVW.-enLK4(SA;sWi&RYEm$?f^_F
+/"a.(D:$h7K0W6M71kDhIeB[r'fSI9Msc2*WrSe"H9c/pne`RT#IUI`]-/CfIk$Y
+'_@'RHm5:;5!>;:7o6/hhI9r6c"%0f9<N<X_B;pET=hE4&p"QElL:%jK"tEscqJ9
+3+FK[Wi%@ni!do7PRNLHf0GK?$nmhG@dg8DnC@M.0e(rS%")Cu&cL?Zfm+@:l7m%
+u*FCg('FcTu,_W%(H\J)&"D/fQ9dKu33[FNdL-iFF(E0B!H7t,<n;'EkinKn?K8/
+Ri[6Lo^K;*[ChOt:'OiFM0X9P@*I94s[3S.3-kIgRC@S,:#M22on;$bX>b+?/eWQ
+Uk(*WiK:8.+5doRiH%c66X`phFI[f,0K1YPX=m(2)6fdk0-X.e@()mWEG!A0SYQh
+d80lS.0@>-:2Gb2`"E"L85U^nA6U!,3O*!5X96V+Vi2>4'cY!jNL^^u,cRnRQn^i
+@`oKF<YLZgD*]*Z7+gR?q]fAVWEYn3-/K!gmr8b.H#CdTS,++T0&D4R$4l^+D)Ai
+SWM!5Z+(fj-;A&>_`VI)eibRKY+c+?(u*=4Fr]-Ek2.,mXg;5Y.u4>A[9<5?+8Qs
+Jm+iF+0"gu_`mYrJ&l`ktIH`T:X1O'CSY(j;@qKo]lIX=l!8;SX]-E2s9crY.Bt+
+RF=]&f4DMZk7#uDN*Pu(81K`nDqA-;&RZ?ESb@@@#2Z*RF7&Wo*>ee;/D:)Hd+IN
+"UM*`3,%9g#m4(iVo->20Kro6+F>N,[c&56L/L[Da,RWdh+b.HAI>b3qS:2^9b`Y
+<IH0rj3oXm>]Aj*o`OfE25P%>Xb!u@a=E[ahR^Lm?[D;EkoOP-3,+DhDi6f1;gF]
+/1Db/qq$J79)AZK8D;dLN=O4B3WdG@dh%KdOOL'T7O<pba2Vaue6Lo/!C$))J7oH
+(5&CO9W;CTV:="J\;Y/WSV7DLuGHrSd.-6@`K@6(`bt&W2FEO1ZJJ36*(H$hKBJV
+QhCK$6k=1TU/ip@3^q."GH[SVTZtR':NrlMd-StM:tW0)+'Q"I((2RCVu%PpPujo
++ru?=?J%"<U/A8no9Pl_/Pcr;k3Gl?H]Qp9r#i`E?g;<a"0+YD$r!,k'H_L+ps@F
+18-)`SaSF9f(oF`F3:'_qe>g1s_.4\g!!4lHFg;!A3[C7"j#PH6"!E5)G,p9*-<^
+H6CIeGFJYs[\(LRF1%2fbMO1RsBoQPoi#tRBcYV?8=Eb4,q.KUA.qi!9X3^AT+la
+qY+h]VcnoDgEHi1Y)[nn,0/]S57$O*?I/4CS>#%4:T.]3CAL:(qGR:`E!)E$bU[?
+akmPVG]k8o`lJS!`a>+Y_*%1HtW$1Lcigb',?;(50p>e8IC\Z(D\l-R8aH6(dASj
+&Ye%@.e/,d6`@RO's%L=KpReWdQt+/4^gV7A9tf.!ju1m_cD<pK'Yd[mD5]m->8>
+*AKs5:@9/"H'8D%&l0t@AS7,h30c?1Nd*u>lY^AN3k"r\jb&bJqEF"5Yo@nTj1"h
+O_I8@L['TATj&^u"X4Pn'<+pm6"QH_o@dfmoaqWpE`2MpTd$%1)q=Sf"3K5c.L%e
+l=&gOh6%O1k=nH^UTR*d6-kc#\iDE#cG/K6Z^.Qi@%;?nen)9@+[gJSPOMP]N^ZS
+3",0[ULF;!491Botf=<Wt76(_1?@L95]`B*0T)Df+<,$Q%B>p5P$<Ik`FKA*&-[2
+8E!j,D0M'3^:FjZ0srsh$i')!81FU_TPkRN"Sb7<j'U(BC-'8q;dEF*o&CJk<:,d
+$5,of'j'/Bo?,giP;+[F"1-8Gd<V^%j]06[pnUZdG8'Hu4J/ZL*H78:U3>631%0_
+3L#,:D^U2mC:oL-C?W@$p:R2)Q5#So]lPemE89Oh>4$TNkZZZ3SGADQajHsB&-]D
+9>%1gB.7^DMQs7mWk6=:n\Z<u+;L7Y(9)[^]U8;Q=G=.AeQ!J]gW8Q$,IS7F?;5@
+6L9E,^MRrpQ7.%AeLf#@[oQ3esKqVfMmr8M_Qk^DlJEd"'"[m#6u<SXHLs@JdB_R
+nWn,!+[5sLS8"_?=EX4'E#?1A;tZdp.N11+CF(QlhBXSVXr#nk0+1BZOdp22^m#9
+X3>o(q/dCPS)kbH[lb!5<dtuu1J6m6^Qqo</Y.EJ'N:=2j#\E_g^sB'%*04Eb#9p
+>L^b%Z-JnUGA.%sEe,NWU")H]f6ED=b&I"!)k1mY8Ho\I1t%SGIBN$L;-2I\'Lgp
+XkNo99"8*Po]Vq8^sH1Gu2*H[g8S3>k'%/J"<EM9R.C]1rXM`]o_.+JCL[hn1d._
+VmG+n=&RaX,027fH8B]5ra!;Ln7]XncPPSl^bPCL'oKQTbM^/g6I'fW2VJ$+rt5n
+HH!+eX7bc^i`+g\!(?uOo6\;\;XYq<PBg"fM;o-I^P3qL]eH$#;7!go_2&>u"K7D
+k0%-,.%On:*'tOnoehe$AJK\aOGPK7.E's;4k2Bd@"_<YlHc5d'GWFQpaqTqT\Sc
+1"R[#nRRq5+Gn)lWQUISpn]jWAj+YJi$-@-4M\^stTYJY(H]L.UZ`)h?k0dLM]%H
+Si4-SsGB]gdl3nH'gKShKu0hade*(q9Q`nfo3;Ys&rP%7WrAItJWY6qo5[O,Sb)a
+#ITS99M)C><+PlI[\-K[#b9NIPShY0K*hd#K]Xg`r04aXUnEDSpp/>7VDg#8p?J"
+M*'bCCon(<=m%FeiD>!ngt.-qLKa-^WhN-JI,Ym,!SXlM(Mng[`.EOH_3A_+(>c9
+68N;(A!5N81bCh-$GC%5iDePd!`4+LFk9A33>D![B+t_G5<N(8_[@WTi.])'CY-<
+:h5^$rGm,&Ya*g@VQ$-SH];/$8h6];\/)JEjDmW4+?$k!28hjK_0[A-5r\373Zm]
+lNr"bktXJMfM:hCG<(l#i:&$k^/@$+5a/*cN?'UJ\et"A(jJij8O,Jg#4HM3djmn
+oPit"CKE2HjHpGJ.]\*7Sah*I6R01clum%@1YZ9ns#U7[-J2/=SZ,S;jS.VpPN')
+d+@S8d=TZaN\a:93g8NWW2+hgD8<1#ji4N`Ua\E%36#O;7G#g/O:YPpO6\/>#Us>
+s_PJC)#Mq+:B)YgNGf5[h+Qb&AC<a5OVtYba')Qgs<SmN[<Nb'S\;L18mEXm^rr>
+$EQU`SDEU-<8rf+C<p=keG_1u-(&Lu]J5&mEe"0j<FN7\^$LH*7UPB?-\MIiR*m0
+MM0)+N(Vq8(Vp_h5!uc^__g]+I.:d,p'7"i]mm,P@C7lRfN`!O\`GQ\U\RP<tc/=
+gt=X#hT0/B67h/c3g..kb2kU0d-sh`(_Ag[.Suapk`ZM&uaKE<;M<B>B(9jMOp?m
+BC[:A/*@+1$PI,Y!WmLr"X_2E3maRT9Z1%Rjg>Fa="?(?Z3(`>LD4Z%_;Nkg+XEj
+KM^4/D2?*?/(AXhd;8A89DP$U9()@>V/_a]T^R='B5OL-R&;re5RUu#WYD'[k.Xn
+O=<k&1S9*"8cPu`;[1[=2l[Q(:OVkYI@E+ameC-(piB^tTM#brT/JiQ+^`#?IjC6
+'YBWP5/!O^aOc[kpR*MCP;KJDL<A8B\%e3:O^0d0%\``!NfKrq2+O-V&NO"s5$ol
+8OT9qoDc\hZ*`dcYJ]Q;IMZCJ8Okd&GZls5PFT%7er,+`:&ZgV;J`d$[]_Hf.4(b
+]pl%3\I?`Tq21mpBop\&H8h9<PNRu/J7o?C1_'[rSAa@<1lXR.-N)MR3a>/`U`^'
+o"-:*@;H>'*6AT/U(r;]uVgZF_9eg,QfGZT,DiMM:@<`('H_BGQ":W:JV+8].!8]
+_d8u7UEjCl?4>km^@*$Wb]+n@?!W;%so@M\cK;<F)SWo?&6;cbS6%DqTcBF[+J6N
+O!uTF>3H#/Lc)[NC3!*qCOEVHUh0iS\33J%-X*!62Vsen95hiR25GE@?@0l-LQt]
+JfC=O<PsFV&%M21i"Q/c;K+(K:*40d,DrK9MA@OrZ,PZ+)[%?(o)sZIuo>_[P80-
+""uA3LoIdB!A&\.CB=_9;ENQll'iX.8lSq]\P9Iar/UdW31a:YLk1bC!:Hbd)$jq
+mi,Rd!UE&>+p?RQS7^d07hBjG8/Ik6@5c8gY.U#+Pp:C%;.u9b=omk!S%Q^A!hl*
+&R\]B%HpR:n7-B(8*6!8[.9V%%Fc4Id#-&jX=,=!&Bn2P=PVdeW/W(e3Q@HJi90P
+u(mE-F&%L-s*<mj@qD2mm3rgQpBnVLo+fHPatE%H#8,!3A]CQonut&EVQqj1!->E
+n8:)HEpJ,JK+-;Kf<L5Q9ob0i<1]\=GD[d?sm)BQNSGnBI1$!@7@4_g2-@d`%%SU
+!MmN0$srK]3k9'f.R)X'>Tga/`FSQ6ST('ulN4D@SXa.Ado]RYVtK(Y!3]UZL3Qg
+l_=N4tPHIHrd..\/%KoBd)dZ0/0KM[udE![p7,"*G)Q;TtFLD3s=h@;iHm"V8W5)
+(@XL^:1d;Xc%i"%?XN!hNM'F9\XVKC3T)L'HOf0Bi71K*4r+b\i&N`Zu+B-\Dfn9
+QdGMEr$bb*Zk4qor`W#NWaA6:(@7HQtrX0u3<7jQ\h<*8NEC4CJGUTL>:8S6$I[W
+J\R?kR"-kZ!ba90P[TA*mEVMLYu=2P?8>1)9[muUIt725IJ""6YO:S_deHYEhZn.
+lEl\(FY(%FY_Mg(*cd=Y^YgpUUJ07!Q%dY<b\J9K.o8>7W%C<HIaK5SX^ESn4r,`
+=S)f5L!m:fSk+PP4rilOKNG,j1').2^a-"=`J7'3p&`ZEf<n!O?/1E^]!'_>@[Fd
+l=WfkB.$![+6@W/CQ+ld4#X:2?AdNd33M&K%3!n?eVR%<%nYhR3^!pE:W,Bb:s]j
+p"EWNQt,_Lj4E80b+A13>^SIMms8A/(R4@DWtipO`naL>"MmZ\^/[9I[F@\"kunc
+8?ia!#&C;bH+0"&Or1k3l^Ap*:2Y'SE7%6%Ya?T+[`Vb/`QhJ)357-R732i,oW_*
+qSLh10KC+Bi6n*?IWCa7I6QDCJ4-a\H^M*s3[qd)aZu@m\th#+MbIZf\V,KSaEc0
+fY3,Rs[LEDCN%u9Ek_2Ed&E)RmYV!LE.,M@bP6f@X(^0$3ZEI9+/Xf:k<I*.K=pl
+1rFJWZd$kPba2cYR2ZuM+D#GP.;osOo9%=SCTKi/Hn>P@ON,"huR.>J6o,*56XTf
+L.n^pt:W660D'rQ_JD!#fM0#s$<K'@/S6KWS:Ng_24p3NoO2e1C&?E,@;h.S<pA^
+eMA6W+<9DP\G0]q5U?B$353W2oRj+"TbHOUFrq&d8jr$Uk1H(%J^!m2FB7>!(,93
+Tb*3.CBaq!lg+[>#)1V=p;gp=;Q1qXM.`o63PcW5[,:_rO.>LH@Ep[1gI7d?^K>T
+"7Yq])O?d@9al.:,)Z:*V&@*5u1-S8c%81dc3<o5Z;b(*QdW,pn;b_o!*>tf=L_K
+V&cWKj`[2[cVP.8r^/Pb=]VCa-`/f<H\a*_9o;TA/Db\1*hLDkETO:NuQV2a;W\%
+G&<+WN^C[RB2+S.h)[>R()BnZl=#a;hCj6Eef**4,.Fm(k+K(Y`r6S&>'@HmXX=0
+P+$moe?G6ChM3#GuI/h:uDZOo3;\hU$^hC+i_!)CY_%h`84EgZO;+s?qp/U(fEtg
+p`[I5_:^lRAMfrnc5T6liZ:s9!LqFU<".gNMM[+C&jW/OR+IW9:%bRqW\Fn?$j\5
+:D'$0LWI\>M;oV^pCI<I8_D,7nC%=5,6)r^W%n@2J3#EbIp2bbd#\%_[4mNGTlr<
+lY0n*q,j*YEi!)^4.).H+1D6jcRp_tF^rGcbtrikgPWm\Pon3VX-90#Yu/ar)O_k
+jg^l^Y!%+Hkb9C:c4LBLF1<!b-:G6V@m0IdqfiQ=0.?UZW]\FBi4HdOaMMqSS<+_
+1*:&KQM*V`Gdg/p"!<%6h<JtVM&4IR`3IN*7[<Rh=m!#UK0E2RGH@k]mX>jOE`X6
+UB<$]M2rc?$*i&03?8$#ef_^pro0;M$bVcOe`.jGdV\$>(P29%Gbs--Yq_@10!T7
+(GV1$+AeBY`d::H1-N[,JhcS,j/N#WEK6_.L>n/U,itt!a2!Sj)N6>@Q^@L'VmHZ
+\'%$aU?_OjL[!T_g7R>R`PnW2td"%=Oe>;e@+`NNBW*JQWDX91^:G!C8[2+\Q#O>
+4eYn\^:O-bNt"P710)i'BrS59A(G\/h!6]&JrtL#J@%$p3#g5g!'Tji+YE"t*p32
+0#>'b8Pl#IUm,](XBA/FtK9J+7fVmi:/lOZ&VaSG<\"sdB]F+S3!D[;tP'UpBlWF
+bZ3da"iGFD#m*65#c+n6CV2>F*bU3@D5$NEist$CL;*3Td\!/%BtcXi-EpoOSnqL
+V7dH)KE,m4XB)BCCnDloiill'<1H"0NnUk7hgB)HQ0YI\]F\HjaTdo4?_Pubo`<C
+%
+^;IcH/6ePBg'Ic=ReAo(pf]c8TS1LZb15JO4bNAj.rr=54RqFT:hRA2lOp;kNb=E
+XI+bJN\eeiB./D%laRI>(_.Mj8>_H@1L8&f@RoLQq_`%NWpR@mha(Id,DT]I;2Y=
+%
+b1OS]80k-8=:V88g5!]"dLeiY)>Fn(BdNp&RH@C/i+L(]q$M"S!26e3h-8598LJI
+_c=hJB`A]jggeZat4>M:8h!<QHl$*'Y9&XSVifMAYQISiFn=en6/O&IVkYR*A8(/
+Nhse(BN'h"<nt,l\luZCDb=pi7+"p<NeITLIr5T+.V[)1i;L6>1c_]266>5k;sqH
+EB,-s\Q)=31MIui,W)/%I^,:MU2P,CRf0(ICi<G;Co80G`o9\:]@O,$JTqe<aat&
+'/26H=URnmE#:Q]-)%^*80)dVr6CU:,XD(AbrrDI65S(5CM$cTUq:6.:6o/*-3S=
+[(R)f^<3E\*d%B.5.)@"#Bk#L%m_nUHJTa5>!lbM^h&dKNa#Fr)rcBnu^[GUS-Gr
+MM%S72IuG`:3%M4r('pjpk@iQJ>PmVTg,TLQiq_kmta-cS<5KEY(ZX"R-DFb[U6-
+[R4cDt>W.hQqWl%_Lm*_ric+/eEopLkn^Wc8]<.XLpFbJ7aH8WQ//G\/MXFKt,"Q
+YIn'%;@2Xs_:#qUEfjnj]&.]lBnT=drr=aqa%d#O==$s*^76+YBKJ\HQo"]Q.\,l
+"J3G%]07u(tZ8Bmd,bXAj@*=(t3Oo.L"9/?U&\fa[pR?A?6_<d&E$ikOWK'HX(M=
+:\ML,*6e2*FanWGT\3I#\0>-Ff4T7XpMS`MS`3?L7rRKl=;F!cQ%GfH*kaBu"sN,
+=JlV?!*'o5_5`E-oR/a^:)u!\NFXIdo_'>o6S'"8irTDXUU$_(uFY@X,hH:K<a*"
+^\Xcf?Q@0)L.W]37/df?*F[pW(f/DXVfk[LMES&l\lJN(MA@-RLh.klO;J'AFe3<
+CqD_k@M2-[Y>6KAd"#Xhj=^_['OJ#J5UE8[_[=#jYgg\H=$g_l^75a7pEY0k[]cJ
+Cp18)Bmn@V<6N0YcTPUeA/?/a1d/&K3*+^LGiQ0!2/70:Xpmg#jJVT?`c\/f(Et0
+V`bPqRMS*+MU`(F@QS`?5e&W\mUDm@H#X@[l^+*kBn5pA<.ja0Jdm0%osQPKkA"N
+?26N?cHJ6]s=mk7LEuI2Ess'"jk.'FMp;)teb-.*;I.d1p.Fd.b.M]?Sb0(/Klg+
+PWjhN!.Y+hAqDh=[OQ?QIsH)JGD-n\))#k,?29k]#IsS3msWo6?3rOO"#_+$D(kY
+.Hj0H_OSb!!-.B.<4^]3aR#a@L,?mrU^HK8XtJ^.goDCh`=VA\6r7$Uemj:E'[=-
+<`rY,5)#BZBn=LPUK\Qf(`P]A--]`Kt+_/iGiW(Mn&4]"UM0LHrmu4-d;&r"d3)h
+,_U+MEiYnC:ldWi;'McC2)d_F;Mj<P;'j!*,Zq_M&J*o@jqfSdeq!sM;iE*A&BbO
+pG@H\ROU`"=b2e)M=!f9=O>G1^`234=^_Fnj!oTT(hc2_iCTnV*=;7siFBa?,635
+%
+N\YFQXrU=rL_O)U\q/%u`.V_299@]/k.sW>#B[($!j];3BUDO2\s2[K%*r($o?!H
+d;%=gO:+pX9#L8Zgj#'1m,!%'-nc"!Y45c`L*l?KJLt.`EkZ8WN-.^S$pPIW^`(r
+%
+<I(#AV7hBnWr[GrqQV#T';^""&EHOO'e#p!F<3E+\3"%Ag55EH._<[f`~>
+%%EOF
diff --git a/ipol/ipol_style_201905/siims_logo.jpg b/ipol/ipol_style_201905/siims_logo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e10f01aaba22c6164083e6601a5612de3ca669e1
Binary files /dev/null and b/ipol/ipol_style_201905/siims_logo.jpg differ
diff --git a/ipol/ipol_style_201905/utils/minijpeg.sh b/ipol/ipol_style_201905/utils/minijpeg.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7230b4871cd9183145fc092addb66b7501645dbf
--- /dev/null
+++ b/ipol/ipol_style_201905/utils/minijpeg.sh
@@ -0,0 +1,53 @@
+#! /bin/sh
+#
+# JPEG file optimizer
+#
+# Reduce the file of a JPEG file without modifying any pixel value by:
+# - remove metadata (EXIF etc.) with jpegtran
+# - optimize Huffman coding with jpegtran
+#
+# TODO: check for tools beforehand
+#       usage help
+#       less redundancy
+
+set -e
+
+do_remove_markers() {
+  IN=$1
+  TMP=$(tempfile)
+  jpegtran -copy none $IN > $TMP
+  touch -r $IN $TMP
+  mv $TMP $IN
+}
+
+do_optimize_compression() {
+  IN=$1
+  TMP=$(tempfile)
+  jpegtran -optimize $IN > $TMP
+  touch -r $IN $TMP
+  mv $TMP $IN
+  jpegtran -optimize -progressive $IN > $TMP
+  touch -r $IN $TMP
+  if [ $(get_size $TMP) -lt $(get_size $IN) ]; then
+      mv $TMP $IN
+  fi;
+}
+
+get_size() {
+  du -b $1 | cut -f1
+}
+
+# do stuff
+
+for OLD in "$@"; do
+    NEW=$(tempfile)
+    cp $OLD $NEW
+    do_remove_markers $NEW
+    do_optimize_compression $NEW
+    touch -r $OLD $NEW
+    if [ $(get_size $NEW) -lt $(get_size $OLD) ]; then
+	mv $NEW $OLD
+    else
+	rm $NEW
+    fi;
+done
diff --git a/ipol/ipol_style_201905/utils/minipng.sh b/ipol/ipol_style_201905/utils/minipng.sh
new file mode 100755
index 0000000000000000000000000000000000000000..cfc45087a0255231fcab2373db07c11f430f66f0
--- /dev/null
+++ b/ipol/ipol_style_201905/utils/minipng.sh
@@ -0,0 +1,61 @@
+#! /bin/sh
+#
+# PNG file optimizer
+#
+# Reduce the file of a PNG file without modifying any pixel value:
+# - remove metadata (comment etc.) with pngcrush
+# - optimize filters with optipng
+# - optimize compression with advdef
+#
+# TODO: check for tools beforehand
+#       usage help
+#       less redundancy
+#       use pngzop instead of advdef
+
+set -e
+
+do_remove_chunks() {
+  IN=$1
+  TMP=kk1.png
+  pngcrush -q -f 0 -l 0 -m 1 \
+      -rem iTXt -rem tEXt -rem zTXt \
+      -rem bKGD -rem hIST -rem pHYs \
+      -rem sPLT -rem sTER -rem tIME -rem tRNS \
+      $IN $TMP
+  touch -r $IN $TMP
+  mv $TMP $IN
+}
+
+do_optimize_filters() {
+  IN=$1
+  TMP=kk2.png
+  cp $IN $TMP
+  optipng -quiet -o1 -f0-5 $TMP
+  touch -r $IN $TMP
+  mv $TMP $IN
+}
+
+do_optimize_deflate() {
+  IN=$1
+  TMP=kk3.png
+  cp $IN $TMP
+  advdef -z -3 $TMP
+  touch -r $IN $TMP
+  mv $TMP $IN
+}
+
+get_size() {
+  du -b $1 | cut -f1
+}
+
+# do stuff
+
+for OLD in "$@"; do
+    NEW=kk.png
+    cp $OLD $NEW
+    do_remove_chunks $NEW
+    do_optimize_filters $NEW
+    do_optimize_deflate $NEW > /dev/null
+    touch -r $OLD $NEW
+    mv $NEW $OLD
+done