From d9c3185346da244cec58319036523820f5b9f0c0 Mon Sep 17 00:00:00 2001 From: g0dil <g0dil@wiback.org> Date: Tue, 12 Dec 2006 09:53:14 +0000 Subject: [PATCH] documentation setup --- Doxyfile | 216 +++++++++++++++++++++ Mainpage.dox | 9 + Packets/Doxyfile | 275 +-------------------------- Packets/SConscript | 5 +- Packets/satcom.css | 310 ------------------------------- SConstruct | 1 + Scheduler/Doxyfile | 4 + Scheduler/SConscript | 6 +- Scheduler/Scheduler.hh | 5 + Socket/Doxyfile | 275 +-------------------------- Socket/FileHandle.hh | 1 + Socket/SConscript | 4 +- Socket/SocketHandle.hh | 1 + Utils/Doxyfile | 4 + Utils/SConscript | 6 +- doclib/Doxyfile.global | 230 +++++++++++++++++++++++ doclib/doxy-footer.html | 1 + doclib/doxy-header-overview.html | 23 +++ doclib/doxy-header.html | 23 +++ doclib/logo-head.png | Bin 0 -> 2667 bytes doclib/logo.xcf | Bin 0 -> 357997 bytes doclib/senf.css | 126 +++++++++++++ satscons/Doxygen.py | 2 +- satscons/SatSCons.py | 18 +- 24 files changed, 681 insertions(+), 864 deletions(-) create mode 100644 Doxyfile create mode 100644 Mainpage.dox delete mode 100644 Packets/satcom.css create mode 100644 Scheduler/Doxyfile create mode 100644 Utils/Doxyfile create mode 100644 doclib/Doxyfile.global create mode 100644 doclib/doxy-footer.html create mode 100644 doclib/doxy-header-overview.html create mode 100644 doclib/doxy-header.html create mode 100644 doclib/logo-head.png create mode 100644 doclib/logo.xcf create mode 100644 doclib/senf.css diff --git a/Doxyfile b/Doxyfile new file mode 100644 index 000000000..c627803c3 --- /dev/null +++ b/Doxyfile @@ -0,0 +1,216 @@ +PROJECT_NAME = "SENF Framework Overview" +PROJECT_NUMBER = "Version 0.0.1" + +OUTPUT_DIRECTORY = doc +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = NO +ABBREVIATE_BRIEF = +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = YES +INHERIT_DOCS = YES +DISTRIBUTE_GROUP_DOC = NO +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +SUBGROUPING = YES +BUILTIN_STL_SUPPORT = YES + +EXTRACT_ALL = NO +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = NO +EXTRACT_LOCAL_CLASSES = NO +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = NO +INLINE_INFO = NO +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = YES +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = NO +SHOW_DIRECTORIES = NO +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = NO +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = . +FILE_PATTERNS = *.dox +RECURSIVE = NO +EXCLUDE = doc +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = NO +VERBATIM_HEADERS = NO +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = NO +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = doclib/doxy-header-overview.html +HTML_FOOTER = doclib/doxy-footer.html +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = NO +MACRO_EXPANSION = YES +EXPAND_ONLY_PREDEF = YES +SEARCH_INCLUDES = YES +INCLUDE_PATH = libs +INCLUDE_FILE_PATTERNS = +PREDEFINED = DOXYGEN +EXPAND_AS_DEFINED = DefineCommand +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = NO +HIDE_UNDOC_RELATIONS = NO +HAVE_DOT = NO +CLASS_GRAPH = NO +COLLABORATION_GRAPH = NO +GROUP_GRAPHS = NO +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = NO +INCLUDED_BY_GRAPH = NO +CALL_GRAPH = NO +GRAPHICAL_HIERARCHY = NO +DIRECTORY_GRAPH = NO +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 800 +MAX_DOT_GRAPH_HEIGHT = 1200 +MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = YES +GENERATE_LEGEND = NO +DOT_CLEANUP = NO +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO diff --git a/Mainpage.dox b/Mainpage.dox new file mode 100644 index 000000000..d37ba40d6 --- /dev/null +++ b/Mainpage.dox @@ -0,0 +1,9 @@ +/** \mainpage SENF: The Simple and Extensible Network Framework + + +*/ + + +// Local Variables: +// mode: c++ +// End: diff --git a/Packets/Doxyfile b/Packets/Doxyfile index 5701f22f0..b190777c7 100644 --- a/Packets/Doxyfile +++ b/Packets/Doxyfile @@ -1,273 +1,4 @@ -# Doxyfile 1.4.2 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = "SatCom PacketFramework: Packet library" +PROJECT_NAME = "libPackets: The Packets library" PROJECT_NUMBER = "Version 0.0.1" -OUTPUT_DIRECTORY = doc -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -USE_WINDOWS_ENCODING = NO -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = NO -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = NO -STRIP_FROM_PATH = /share/izo/home/stefan/group/FhG/Seminar/example/ -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = NO -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = YES -INHERIT_DOCS = YES -DISTRIBUTE_GROUP_DOC = NO -SEPARATE_MEMBER_PAGES = NO -TAB_SIZE = 8 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = NO -OPTIMIZE_OUTPUT_JAVA = NO -SUBGROUPING = YES -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = YES -EXTRACT_STATIC = YES -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = YES -CASE_SENSE_NAMES = YES -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = NO -SORT_BY_SCOPE_NAME = YES -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = YES -SHOW_DIRECTORIES = YES -FILE_VERSION_FILTER = -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = NO -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = NO -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = . -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.d \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.idl \ - *.odl \ - *.cs \ - *.php \ - *.php3 \ - *.inc \ - *.m \ - *.mm \ - *.dox \ - *.C \ - *.CC \ - *.C++ \ - *.II \ - *.I++ \ - *.H \ - *.HH \ - *.H++ \ - *.CS \ - *.PHP \ - *.PHP3 \ - *.M \ - *.MM \ - *.cci \ - *.ct \ - *.cti \ - *.ih -RECURSIVE = NO -EXCLUDE = doc -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = *.test.cc -EXAMPLE_PATH = -EXAMPLE_PATTERNS = * -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = YES -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = YES -REFERENCES_RELATION = YES -VERBATIM_HEADERS = YES -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = YES -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = satcom.css -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = NO -TOC_EXPAND = NO -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = NO -TREEVIEW_WIDTH = 250 -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = NO -USE_PDFLATEX = NO -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = rtf -COMPACT_RTF = NO -RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -XML_PROGRAMLISTING = YES -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = YES -EXPAND_ONLY_PREDEF = YES -SEARCH_INCLUDES = YES -INCLUDE_PATH = libs -INCLUDE_FILE_PATTERNS = -PREDEFINED = DOXYGEN -EXPAND_AS_DEFINED = DefineCommand -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -HIDE_UNDOC_RELATIONS = NO -HAVE_DOT = YES -CLASS_GRAPH = YES -COLLABORATION_GRAPH = YES -GROUP_GRAPHS = YES -UML_LOOK = NO -TEMPLATE_RELATIONS = NO -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = YES -CALL_GRAPH = NO -GRAPHICAL_HIERARCHY = NO -DIRECTORY_GRAPH = NO -DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = -MAX_DOT_GRAPH_WIDTH = 800 -MAX_DOT_GRAPH_HEIGHT = 1200 -MAX_DOT_GRAPH_DEPTH = 1000 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = YES -GENERATE_LEGEND = YES -DOT_CLEANUP = NO -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = NO + +@INCLUDE = ../doclib/Doxyfile.global \ No newline at end of file diff --git a/Packets/SConscript b/Packets/SConscript index 555482bab..38ee2ba32 100644 --- a/Packets/SConscript +++ b/Packets/SConscript @@ -1,3 +1,5 @@ +# -*- python -*- + Import('env') import SatSCons @@ -6,5 +8,6 @@ import SatSCons sources = SatSCons.GlobSources() SatSCons.StandardTargets(env) SatSCons.Lib(env, 'Packets', sources, ) -SatSCons.Doxygen(env,sources, image = [ "structure.dia" ]) +SatSCons.Doxygen(env,sources,SatSCons.DoxyGlob(), + image = [ "structure.dia" ]) diff --git a/Packets/satcom.css b/Packets/satcom.css deleted file mode 100644 index 5b3d1dbee..000000000 --- a/Packets/satcom.css +++ /dev/null @@ -1,310 +0,0 @@ -BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { - font-family: Geneva, Arial, Helvetica, sans-serif; -} -BODY,TD { - font-size: 90%; -} -H1 { - text-align: center; - font-size: 160%; -} -H2 { - font-size: 120%; -} -H3 { - font-size: 100%; -} -CAPTION { font-weight: bold } -DIV.qindex { - width: 100%; - background-color: #eeeeff; - border: 1px solid #b0b0b0; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 140%; -} -DIV.nav { - width: 100%; - background-color: #eeeeff; - border: 1px solid #b0b0b0; - text-align: center; - margin: 2px; - padding: 2px; - line-height: 140%; -} -DIV.navtab { - background-color: #eeeeff; - border: 1px solid #b0b0b0; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} -TD.navtab { - font-size: 70%; -} -A.qindex { - text-decoration: none; - font-weight: bold; - color: #1A419D; -} -A.qindex:visited { - text-decoration: none; - font-weight: bold; - color: #1A419D -} -A.qindex:hover { - text-decoration: none; - background-color: #ddddff; -} -A.qindexHL { - text-decoration: none; - font-weight: bold; - background-color: #6666cc; - color: #ffffff; - border: 1px double #9295C2; -} -A.qindexHL:hover { - text-decoration: none; - background-color: #6666cc; - color: #ffffff; -} -A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } -A.el { text-decoration: none; font-weight: bold } -A.elRef { font-weight: bold } -A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} -A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} -A.codeRef:link { font-weight: normal; color: #0000FF} -A.codeRef:visited { font-weight: normal; color: #0000FF} -A:hover { text-decoration: none; background-color: #f2f2ff } -DL.el { margin-left: -1cm } -.fragment { - font-family: Fixed, monospace; - font-size: 95%; -} -PRE.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; - margin-top: 4px; - margin-bottom: 4px; - margin-left: 2px; - margin-right: 8px; - padding-left: 6px; - padding-right: 6px; - padding-top: 4px; - padding-bottom: 4px; -} -DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } -TD.md { background-color: #F4F4FB; font-weight: bold; } -TD.mdPrefix { - background-color: #F4F4FB; - color: #606060; - font-size: 80%; -} -TD.mdname1 { background-color: #F4F4FB; font-weight: bold; color: #602020; } -TD.mdname { background-color: #F4F4FB; font-weight: bold; color: #602020; width: 600px; } -DIV.groupHeader { - margin-left: 16px; - margin-top: 12px; - margin-bottom: 6px; - font-weight: bold; -} -DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } -BODY { - background: white; - color: black; - margin-right: 20px; - margin-left: 20px; -} -TD.indexkey { - background-color: #eeeeff; - font-weight: bold; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TD.indexvalue { - background-color: #eeeeff; - font-style: italic; - padding-right : 10px; - padding-top : 2px; - padding-left : 10px; - padding-bottom : 2px; - margin-left : 0px; - margin-right : 0px; - margin-top : 2px; - margin-bottom : 2px; - border: 1px solid #CCCCCC; -} -TR.memlist { - background-color: #f0f0f0; -} -P.formulaDsp { text-align: center; } -IMG.formulaDsp { } -IMG.formulaInl { vertical-align: middle; } -SPAN.keyword { color: #008000 } -SPAN.keywordtype { color: #604020 } -SPAN.keywordflow { color: #e08000 } -SPAN.comment { color: #800000 } -SPAN.preprocessor { color: #806020 } -SPAN.stringliteral { color: #002080 } -SPAN.charliteral { color: #008080 } -.mdTable { - border: 1px solid #868686; - background-color: #F4F4FB; - width: 100%; -} -.mdRow { - padding: 8px 10px; -} -.mdescLeft { - padding: 0px 8px 4px 8px; - font-size: 80%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.mdescRight { - padding: 0px 8px 4px 8px; - font-size: 80%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.memItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 80%; -} -.memTemplParams { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - color: #606060; - background-color: #FAFAFA; - font-size: 80%; -} -.search { color: #003399; - font-weight: bold; -} -FORM.search { - margin-bottom: 0px; - margin-top: 0px; -} -INPUT.search { font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #eeeeff; -} -TD.tiny { font-size: 75%; -} -a { - color: #252E78; -} -a:visited { - color: #3D2185; -} -.dirtab { padding: 4px; - border-collapse: collapse; - border: 1px solid #b0b0b0; -} -TH.dirtab { background: #eeeeff; - font-weight: bold; -} -HR { height: 1px; - border: none; - border-top: 1px solid black; -} diff --git a/SConstruct b/SConstruct index 77b5b023d..04ad6ba3b 100644 --- a/SConstruct +++ b/SConstruct @@ -20,3 +20,4 @@ SConscript(glob.glob("*/SConscript")) SatSCons.StandardTargets(env) SatSCons.GlobalTargets(env) +SatSCons.Doxygen(env, SatSCons.DoxyGlob()) \ No newline at end of file diff --git a/Scheduler/Doxyfile b/Scheduler/Doxyfile new file mode 100644 index 000000000..6fa55a363 --- /dev/null +++ b/Scheduler/Doxyfile @@ -0,0 +1,4 @@ +PROJECT_NAME = "libScheduler: The Scheduler library" +PROJECT_NUMBER = "Version 0.0.1" + +@INCLUDE = ../doclib/Doxyfile.global diff --git a/Scheduler/SConscript b/Scheduler/SConscript index 2909ad34a..3ea2bc104 100644 --- a/Scheduler/SConscript +++ b/Scheduler/SConscript @@ -1,10 +1,14 @@ +# -*- python -*- + Import('env') import SatSCons ########################################################################### +sources = SatSCons.GlobSources() SatSCons.StandardTargets(env) SatSCons.Lib(env, library = 'Scheduler', - sources = SatSCons.GlobSources(), + sources = sources, LIBS = [ 'Socket', 'Utils' ]) +SatSCons.Doxygen(env, sources, SatSCons.DoxyGlob()) diff --git a/Scheduler/Scheduler.hh b/Scheduler/Scheduler.hh index 6788f61aa..785dce93f 100644 --- a/Scheduler/Scheduler.hh +++ b/Scheduler/Scheduler.hh @@ -22,6 +22,11 @@ // TODO: Fix EventId parameter (probably to int) to allow |-ing without casting ... + +/** \mainpage The SENF Scheduler library + + */ + #ifndef HH_Scheduler_ #define HH_Scheduler_ 1 diff --git a/Socket/Doxyfile b/Socket/Doxyfile index 3a08b6331..76c0c3c73 100644 --- a/Socket/Doxyfile +++ b/Socket/Doxyfile @@ -1,273 +1,4 @@ -# Doxyfile 1.4.2 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = "" +PROJECT_NAME = "libSocket: The Socket library" PROJECT_NUMBER = "Version 0.0.1" -OUTPUT_DIRECTORY = doc -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -USE_WINDOWS_ENCODING = NO -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = NO -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = NO -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = NO -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = YES -INHERIT_DOCS = YES -DISTRIBUTE_GROUP_DOC = NO -SEPARATE_MEMBER_PAGES = NO -TAB_SIZE = 8 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = NO -OPTIMIZE_OUTPUT_JAVA = NO -SUBGROUPING = YES -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = YES -EXTRACT_STATIC = YES -EXTRACT_LOCAL_CLASSES = YES -EXTRACT_LOCAL_METHODS = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = YES -CASE_SENSE_NAMES = YES -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = NO -SORT_BY_SCOPE_NAME = YES -GENERATE_TODOLIST = YES -GENERATE_TESTLIST = YES -GENERATE_BUGLIST = YES -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = YES -SHOW_DIRECTORIES = YES -FILE_VERSION_FILTER = -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = NO -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = NO -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = . -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.d \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.idl \ - *.odl \ - *.cs \ - *.php \ - *.php3 \ - *.inc \ - *.m \ - *.mm \ - *.dox \ - *.C \ - *.CC \ - *.C++ \ - *.II \ - *.I++ \ - *.H \ - *.HH \ - *.H++ \ - *.CS \ - *.PHP \ - *.PHP3 \ - *.M \ - *.MM \ - *.cci \ - *.ct \ - *.cti \ - *.ih -RECURSIVE = NO -EXCLUDE = doc -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = *.test.cc -EXAMPLE_PATH = -EXAMPLE_PATTERNS = * -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = YES -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = YES -REFERENCES_RELATION = YES -VERBATIM_HEADERS = YES -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = YES -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = YES -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = satcom.css -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = NO -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = NO -TOC_EXPAND = NO -DISABLE_INDEX = NO -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = NO -TREEVIEW_WIDTH = 250 -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = NO -USE_PDFLATEX = NO -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = NO -RTF_OUTPUT = rtf -COMPACT_RTF = NO -RTF_HYPERLINKS = NO -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -XML_PROGRAMLISTING = YES -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = YES -EXPAND_ONLY_PREDEF = YES -SEARCH_INCLUDES = YES -INCLUDE_PATH = libs -INCLUDE_FILE_PATTERNS = -PREDEFINED = DOXYGEN -EXPAND_AS_DEFINED = DefineCommand -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -HIDE_UNDOC_RELATIONS = NO -HAVE_DOT = YES -CLASS_GRAPH = YES -COLLABORATION_GRAPH = YES -GROUP_GRAPHS = YES -UML_LOOK = NO -TEMPLATE_RELATIONS = NO -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = YES -CALL_GRAPH = NO -GRAPHICAL_HIERARCHY = NO -DIRECTORY_GRAPH = NO -DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = -MAX_DOT_GRAPH_WIDTH = 800 -MAX_DOT_GRAPH_HEIGHT = 1200 -MAX_DOT_GRAPH_DEPTH = 1000 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = YES -GENERATE_LEGEND = YES -DOT_CLEANUP = NO -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = NO + +@INCLUDE = ../doclib/Doxyfile.global \ No newline at end of file diff --git a/Socket/FileHandle.hh b/Socket/FileHandle.hh index febfa011c..3bbbb9b60 100644 --- a/Socket/FileHandle.hh +++ b/Socket/FileHandle.hh @@ -20,6 +20,7 @@ // Free Software Foundation, Inc., // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + /** \mainpage The SENF Socket Library \section arch Overall Architecture diff --git a/Socket/SConscript b/Socket/SConscript index d0ba53c57..72af96427 100644 --- a/Socket/SConscript +++ b/Socket/SConscript @@ -1,3 +1,5 @@ +# -*- python -*- + Import('env') import SatSCons @@ -12,5 +14,5 @@ SatSCons.Lib(env, sources = sources, LIBS = [ 'Utils' ]) -SatSCons.Doxygen(env,sources, +SatSCons.Doxygen(env,sources,SatSCons.DoxyGlob(), image=[ 'SocketLibrary-classes.dia' ]) diff --git a/Socket/SocketHandle.hh b/Socket/SocketHandle.hh index f56e7d486..e3ad05aee 100644 --- a/Socket/SocketHandle.hh +++ b/Socket/SocketHandle.hh @@ -23,6 +23,7 @@ // TODO: Create a SocketHandleBase class and move some non-Policy // dependent code there + #ifndef HH_SocketHandle_ #define HH_SocketHandle_ 1 diff --git a/Utils/Doxyfile b/Utils/Doxyfile new file mode 100644 index 000000000..df1a435cd --- /dev/null +++ b/Utils/Doxyfile @@ -0,0 +1,4 @@ +PROJECT_NAME = "libUtils: The Utils library" +PROJECT_NUMBER = "Version 0.0.1" + +@INCLUDE = ../doclib/Doxyfile.global diff --git a/Utils/SConscript b/Utils/SConscript index 81cb37c6b..373bffc47 100644 --- a/Utils/SConscript +++ b/Utils/SConscript @@ -1,7 +1,11 @@ +# -*- python -*- + Import('env') import SatSCons ########################################################################### +sources = SatSCons.GlobSources() SatSCons.StandardTargets(env) -SatSCons.Lib(env, 'Utils', SatSCons.GlobSources()) +SatSCons.Lib(env, 'Utils', sources) +SatSCons.Doxygen(env, sources, SatSCons.DoxyGlob()) diff --git a/doclib/Doxyfile.global b/doclib/Doxyfile.global new file mode 100644 index 000000000..345c0aea1 --- /dev/null +++ b/doclib/Doxyfile.global @@ -0,0 +1,230 @@ +# Doxyfile 1.4.2 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +OUTPUT_DIRECTORY = doc +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +USE_WINDOWS_ENCODING = NO +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = NO +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = YES +INHERIT_DOCS = YES +DISTRIBUTE_GROUP_DOC = NO +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +SUBGROUPING = YES +BUILTIN_STL_SUPPORT = YES +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = YES +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_BY_SCOPE_NAME = YES +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = YES +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = YES +WARNINGS = YES +WARN_IF_UNDOCUMENTED = NO +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = . +FILE_PATTERNS = *.c *.cc *.cci *.ct *.cti *.h *.hh *.ih *.mmc *.dox +RECURSIVE = NO +EXCLUDE = doc +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = *.test.cc +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = ../doclib/doxy-header.html +HTML_FOOTER = ../doclib/doxy-footer.html +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NO +TREEVIEW_WIDTH = 250 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = NO +USE_PDFLATEX = NO +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = YES +EXPAND_ONLY_PREDEF = YES +SEARCH_INCLUDES = YES +INCLUDE_PATH = libs +INCLUDE_FILE_PATTERNS = +PREDEFINED = DOXYGEN +EXPAND_AS_DEFINED = DefineCommand +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +HIDE_UNDOC_RELATIONS = NO +HAVE_DOT = YES +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +GRAPHICAL_HIERARCHY = NO +DIRECTORY_GRAPH = NO +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +MAX_DOT_GRAPH_WIDTH = 800 +MAX_DOT_GRAPH_HEIGHT = 1200 +MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = YES +GENERATE_LEGEND = YES +DOT_CLEANUP = NO +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO diff --git a/doclib/doxy-footer.html b/doclib/doxy-footer.html new file mode 100644 index 000000000..a1f0ee43f --- /dev/null +++ b/doclib/doxy-footer.html @@ -0,0 +1 @@ +</div></body></html> diff --git a/doclib/doxy-header-overview.html b/doclib/doxy-header-overview.html new file mode 100644 index 000000000..a6ef13802 --- /dev/null +++ b/doclib/doxy-header-overview.html @@ -0,0 +1,23 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<title>$title</title> +<link href="doxygen.css" rel="stylesheet" type="text/css"> +<link href="../../doclib/senf.css" rel="stylesheet" type="text/css"> +</head> +<body> + +<div id="head"> + <h1>SENF Extensible Network Framework</h1> + <h2>$projectname</h2> + <ul> + <li><b>Libraries</b></li> + <li><a href="../../doc/html/index.html"><i>Overview</i></a></li> + <li><a href="../../Packets/doc/html/index.html">Packets</a></li> + <li><a href="../../Scheduler/doc/html/index.html">Scheduler</a></li> + <li><a href="../../Socket/doc/html/index.html">Socket</a></li> + <li><a href="../../Utils/doc/html/index.html">Utils</a></li> + </ul> +</div> + +<div id="content"> diff --git a/doclib/doxy-header.html b/doclib/doxy-header.html new file mode 100644 index 000000000..36c32ede4 --- /dev/null +++ b/doclib/doxy-header.html @@ -0,0 +1,23 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<title>$title</title> +<link href="doxygen.css" rel="stylesheet" type="text/css"> +<link href="../../../doclib/senf.css" rel="stylesheet" type="text/css"> +</head> +<body> + +<div id="head"> + <h1>SENF Extensible Network Framework</h1> + <h2>$projectname</h2> + <ul> + <li><b>Libraries</b></li> + <li><a href="../../../doc/html/index.html"><i>Overview</i></a></li> + <li><a href="../../../Packets/doc/html/index.html">Packets</a></li> + <li><a href="../../../Scheduler/doc/html/index.html">Scheduler</a></li> + <li><a href="../../../Socket/doc/html/index.html">Socket</a></li> + <li><a href="../../../Utils/doc/html/index.html">Utils</a></li> + </ul> +</div> + +<div id="content"> diff --git a/doclib/logo-head.png b/doclib/logo-head.png new file mode 100644 index 0000000000000000000000000000000000000000..74f8ef5acf07b484b4f8d63caf211a1de071d43f GIT binary patch literal 2667 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 Z{SWhw*XxR~6aD}I002ovPDHLkV1k)19+?0D literal 0 HcmV?d00001 diff --git a/doclib/logo.xcf b/doclib/logo.xcf new file mode 100644 index 0000000000000000000000000000000000000000..faf3e5be7c28f432bef29b86fb90f0dcefccff64 GIT binary patch literal 357997 zcmeFa2b5J+nkansJ~vbqMb3y=fPtKofQll5iikOoLjeUv0Trk!QdKe2-Q%=9uV<#` z&3f;5t=F?={=cWY?cCGa-3G)qgCqr%C<sb0VZcz_`oC}IeZs9<@Fs89+Qq%+?EUR8 z?eL}R(vp>{i)t1vDOyreTI_jV0-6tv{nsA;5(0lZKx+$a0)AOc;ZFiTb%d68)Av0O z8~oP^8UknstuwTt&{{8r83r#}wQ^-~StWe;aA23o<;4psix(GFmsBn*x_4P|(bQY- zn2B$@KtmAN3qX*2;NKR4XvbzOS-D_o@!+N9C5r(9f+KnTDk^JBi;GIiDvQf2iWgOu ztSYPMU(j#K(nYIESCtp_WB&{;U%GHX(Xb)I*nbfphKpDIVd%n$q4IrE{0AIbQ?Yu% zqLQ+uMZ@J>@US-Op?Eg9s;s0EkYBW{7_qKdwPZ;}aiu~KM~5HrC-zX}hxm^c0k=<h zUiaBv^17W~a{78NIk$nmOs?QEg_rQX6*Lq{@}4O(Zo&5{Xeg&9XnEo@cE~qA7l_aB z4+DVx@xMZ7@^fqBGin&Z8UYQ*rlHAxQne61>ctK4FBf!WaZTmm(gn4}<?x6Jx^F*x zR@4V^?E`#SvZ@Te-B@0-pj3VxTv4*Fxae9bO5TS(<h)v4Qd3-tY+eT1f>NqwOkYq{ zxeA}iukda`X~}{L@x63G+0rUdyP`geaH53^DvAd$E-B}#R#aM94iBSrZPci-plu+^ zQNu@$7=a&#j~ILHn9)jwP+^u=RaBNNsVyomS-PwezL%Di6%SVWVvw?MRn6d)s}>g* zEv_wFu(D(kVgiqt`bfHvRpP${vK;@Dat4+sdh$o|Sz-`=uOl7Hp_M@EJ;M9)-j|;H zm#*GtTgaBrYrJm;d)`iuef#2CZ%^90|8L;C@16hXS@r@yf4RG)2TkzDJO6Gj_Ggca z{@3ws!`aYN)4ZMScDG}Iw)`Kj9c&=CyeI~E^M1evQ15)V9j(0{Ps`_I%SQsxL$5yj z%wUeu-y-zE-{6Z;fI6xX+tyG=3uhEp7fnZv>5HoNucymRO-)}z!!;76%aZZ%I{7_B z#K02}PW}pH0*voI4%*GoX4-x7o(57D!}d5G+H7d0&^ADO6xw6Z9*6c6v~AE1LOTns z(ev6ALhA`_5VVQVrbC+ztrXe@XpcgB4BF$+o`SXw+CgY%p*6xmPzbFjv_a4&LYoe4 zHndV`8=yT3?J;PNLwgF^HfRT-orTs2%eD|&PiTXnO@uZb+H7d0&^ADO6xw6Z9*6c6 zv~AE1LOTns(ev6DLhA`_5VVQVrbC+ztrXe@XpcgB4BF$+o`SXw+CgY%p*6x`RtT*p zv_a4&LYoe4HndV`8=yT3?J;PNLwgF^HfRT-orTs2r(Pknp3nwCn+R<>wAs)~p>2Tn zD743*Jr3<DXxpG2gmxBMBb<_j(0W1}1Z^U;>Ck3FD}}ZJ+N01OgZ4PIr=V?vb`aWG zXpOM_6+-I?Z4k7H(56G14XqT~2565$dkos+(4K;}4cb9yXQ4I15nBkYC$vG(CPJGI zZ8o%0Xd9qC3hgmyk3)M3+BRqhp`C@+=y_cWq4k6|2--ww)1l3VRtjwcv`3*m2JLZZ zPeI!T?I5(X&>B6jTOqWb&;~)92yHsF+0aU%ZGiSDw8x-54(%yu+n^nUb{1MAtb;;m zJ#j76C69YOe^5t$=5_eNATRR+uMPfb(WfMiNU34Df6e<r8b^&%<3pdw57?vYut(IN zfq;AV9&A({d4v=C2qW|nAny?*^bsU9_fJ6CBS@$imiyPdM}W{rkWeu`^ocye9s#zG zAfcf@Kxi{P*eFHl07mElAa4K?IsggH{S#0&00|Yta{rn)00<p`go^Q@Ph<dl1lSHh zLPLLm&}MqDQJm0sy$h4JG<9oY#5MtmO-O7L5}W%cpsopt6~l7>n%4xxHX*TMeCQKt zVvhjhCL}iWXOO@@rq>o6GzsnuuYmS$@d|!$ecU>Len0R=LXSFswAUGy^H1=vznqVI z1jdCl3WkVhFzyjH4ps+@gU@2z02mh%5R4PgVB7#U4wMbX!Dlh93C4wJg>m8;jBCPi z9hxp|LF#@YKjHXxuqC<Xc;Ixv>44J#rvpw0oDMi0a5~_0;J<_pcpgSRNIkk9xI5h2 z!ajOlJ^VXge4YgV4&$G}ix=s39FDL5HC^a!v$!1*De+$q@mb*sAA0nISildVJr3<j zXn*3JWuMEzpE?74?d!hwyubQ?J@1eI+w;!+$Rk~Pc%<I|j|~0?XupE?9JF1~-huXs zM}`n+?V<Jd$OCIU@}2+VkzY4><dy3^^5tZY_FLi6+yCg%`@it$Lj$2rfOb2yS<v9! zL+hb^7ux^h(X#hE`ggS+eWBQ+XMg4SY2x`~+k5_!J3W8>Bc5Mh0qxJA{VlYAg!UU~ z&qLb-?YQSZ(#!MzcbVt^VXfz%SnT<kA9{&i4PIi#54=R_P%lwY4edM7{vO(opgjTY zC20Ggz2_y?{@6=w*yttx;u<gU*f(C{x8L^?&wkrW9Qs=?@kPo@T$m4SHMDwY@a_V@ zzwk?FTcGWPcGOE`zVwoGjhD>(sh4d3T`$@7axZzsYA-neJikNkg0=t}ydTm4?XRKz z1GHa3dk)$zXzxJ##7ho+-%Ac}^pYdr_L8Gv{Mh%r<hWtbCPAACZ9X)3KCT|x_o4j| z+ApDPfwmLcQD`4~$!k4m?VuGw8wPC>w3*Q6Lt7249@_Vz{SewOp>2V-6WUQ|AA8C1 z9<+AQil7aHHVN8HX!D`1hE@;l`_O&}?U&HDK-&rJD725g<OB~|J7`7FhC!PIZ6>t& z&{jjMhxUDFKZN#6Xj`D|gmx6#$6j)x2dy2nB51>)O@cNP+I(oMq18kCKC~Y~`z5q3 z&~`#Q3hiUia}QcOXhqP5L7N0^Cbap`Rzs_Y_I+Fn^|a#l>37^QW5%6#&b;fcyYIf| zo_p`R@BaHAc;LZ@9(wrUS+i!(nKO6pym|BIFIc#6(W1qRi;I^mS-NalNy+l%D^`@2 zu3TAGcKam)xGgsT3p55xEevjJDFC3r1aNCJ0A@=bC=6@>w*~?1-Meq!{{3&g_4eBb z4jw#o=<wkqM~)tS=bdB6kH7owi4!MJzW3hy@1Ht#`t+GIXU~4{LFqIbz#DJ8`DTj% zOtS#&*<%AZ&@2X1O#r)hBLI!_F%xHr@`oRO^wGy3fAYz>b4bE1CV*YLcJDcG@F;tK z?%b!Je)ietpMUYi`7gix>Z`B6{^py;#tRoRnWl8p{x3fL6owjOckbM^>+QoIe8l^z zuHBp7I{)d}DMrs7(DSXcpMP;a-1E~jQ;eQFcI@1L=mVTy&M&6#2GgIr+35QEjvf0? z1FDf-KfT%Ly8ZRn_nqQYDX8CYqPjNiJ2%<ryL~%$jo<(<pi9%<b2rJ(Q>Wd!ZTt4U z?`w9Q*X)AMotxhL<R+u{wr$(rd>@!EK_hjFxlNs#_Iz@q(fzg8w!Qft$||yZrl~{I z?vHOY2E6*(Yj2!n!Uf!!@B(~p-?Z!FNydm*Uwv)Q$&ciSC?>XR+WFBWW5_G7zPjfG zs0hO<z)T^cwoN-eyg`ha4E%rPl~;G4;A$78R!pnfG`;@e4aT6CUw&oxyGmDMBvIJ3 zE%U+k#;})OetFmN57aP&ZAyhfCas!YyYRtv*I%!ud+DW@cOE}$jx)HYrBl%K%7wGn z83SK@>7|{=a36pf`I?GhdtTGajb|qsLtl9Dr5*3EErcPfn5mRlt)X<&OO0nH8e?C0 z;l&;AoYrGMM)immM5^h<Z%$7TgKq#K{^^AmUOx&ufxwv~9b~SMVzTLluTM`fM*rzg zFKj=`w?0O3^k}i55>0>l`qX%1`161I)Al2J=Ty6p)@)Nme$(?`of>b9-}?OX+YTE$ zZzRWss6fQDY3o<-Uwf?vuyyP6uN}s{+u8?%eAlujP4&s?U%ofafbrbct*;#t`#<0Q zg`x@mhh=yEy>SR&JZIu_&uxA6pm~5OF2)J){K>HffGy8G_v*nDCICZaBZc_IiLnyE zgo)QZyJgEO2iO^A9%1o<xNza~6Jrbj&px~5<pc5%G$a|;eJRP$-yLHBc;?w>Uw+#< zMGY=SO5(G3M;id1dFI)d-ZGCgl%=7`VKIDqe6#`J>8GE0=`B3S1Lt_G7{2-R*eC<Q zQ%^tr;{Id$CSY(;D8eUlA&Nuu+_6yxfTx~%`i1@P7y#Zg^;w?Eay{Uwd+wc)BN+rH zg+D&^)C>EL+5ixO;$m<M`s$OTBLn~x!yo_n)Svc7UuF~+g&4%q@$u0S27o{O;g5gX z%Wp%R3D#{W$VFTYA0HWR0QmhM{_y;p;yRTR7teomc(?)J_rL$c);HvROaqAGqF4<d z9v)@@c=GqZ-wL;*5C;547vv&dem*=j%mDD@lfQp%k8vfmu2+^WN-lnIaHs*`i6@_Y zZjX7Ri|3*MaQ5I(1HkW|cw);7Z-fEhtu(BQuo^x%^7aq|!0&$d#FJZgTX)LrTs-~u z?jZ(%e*pl`{%Q9c+3v-Hi>S<}PaWF7Yp?=9Mv#9YzkB70XP<jPTyyzF87|u9O<OIG z_uf0OZ{N<HgE<5;j11=x$P;gEft~nyI8WdtgcBHU3UDWZo6<J8-@&yJuA=N7{3dxb z^ZE|5<Lf~T1{sPlc8>V%Z~p}e0bznZ!jgbh4I9g|u(=vQ1xx@*wtw~djzI_l90v@< zOA<sFhJl#E3t()2eV_&5m2426)1)cNwr?MZ5XfMO0~xWMlM#gj5~7$Rcr$$fKp=xm z2xKG~MMje`WGop+t|j9S8Am-{De>keZ|-2_4QL+1kt`5yyS+a^AOo}GKqkD$Z#sB2 z(>TB-`_|jM+v@3cmuRj!dpBtBMl7D)+zQoptX`i%dl#3VT7BE)>dOMaG*@Tb$=7cb zfIVnPM_^!@t26ipfa~3uk(uriV|LofP3|x`T;HnA5yNb~<BsR?M!aK>>=Lz+>g)9v zr%#?dd|0jt^jzRt-M;(iG2<ShE;7o<)u!{8=TDzJtQHjjz%7T}iq+{8ZCFX$yXpLU zhxMww?RHq|+jbtcE&<sAe0ln$v8-={O%JZL;_y(H0K=jPS^wux8dmacTedv+>LG(^ z!Ak%)%H?$s4ZZUxrR9vO09R7D5=Q|ru2P0UeIfJ33B#Da7542{;7V)&Fs{Ug^`~v@ z&rcZU^)%S{#g#bf77+#D^LGt%d+O8A;FVV0CzWlXE^~$*`4!WH&)zkx@2PktecQT_ zDn$rh=D1g(@w4NGEq)6eUT`JGJF&Wpg#lPr{inxFV;)XFxY7#WmU3+=MNqn|Oq;Ji zJ*KQ?P$W1$UxX`d5WpF35~G0_G;PkkW0>nx{_sb*(wa9~b&m;a5_j2r@{Vcm<CPSy z#0mp6j+A8*c`5(osA0cPhAV)$5*wGfEC9}b`SDT1ik}R32)NR!T_%en2wxgpi49Z! zCcKiqc~}F;B1Zw>qr;{z0FHmS662K?cn}anSP}46|KVZtkbdHcC!bRe!yth0rUn2$ zJY?APH^P+^ue4z=X;6+zlRh}4ZSor?!9{G#Zu>^73`8M@fFgWw(DVwxP3~E^(Ha<J zkt0*Zvj+@|{sy>2J-bWXKMlJeC`Ut+&KxjZ0&tmpW~X_9RbmLPN3kP(dgg7zqQCw( zzy0kqJKr(^81`Mz)xdUy({D?Q9`)cizxnOcJA%&YSUDnqQ*Rj-{dK?o^>3cq!M)v< zT_6^;+E?|CaB9C{(NFx<uYdj2>%v{m&s@dD7&*Sb->~Q>{OVV~{^NG(Zx0>XLJZb= ze1D%|(NFm0uYUE%?RZVFPJLrF2r-C_8RYohUc;gv|I1(g>JQu0JtN8x3Ci*0Uc;gv z|BGMz^7q^9i;6N3gJR(8@#LGPOW^0f_{HyEd&34`D074uPP}2d1b+VWUp)CL#0(S( zQk8;YQ0wvCHw=q@+|Pdg^Cw=_*FB4i!Cj4u;oUukML+guKl}L;uUO`srOd(A0Ae`4 z$FS(fKK`?x{qALMt(i0!7N+2$lH;-6hDAT-r;k7WyO)KzX99>)X1<(`?J_L-F+ct3 z<Nxv!yFZ2^FEL_xXP05okN(L|fBG*k@e61q7sFyWy3?@eNB`s}KmF~C%wi2PLFr;Z z3`chu7X7Fn|KumXdGh5QK@0-%D?<!NcfW2}^rL=Ee*CSU{N@E=H6spzYj;qaPab~# z1!dBMCjIk2|M<thdGbX-!Nfs@(5$T)wE6I%o!kCo`UGD15kUCKZ+`ovZO9v@gn<&c z3SNKhwdbF=d;&We1OUOz`X_>BeaIw#jy(6(R@)`;BLwkdkmci`kFcbE0owxXY_Pc^ zP&gwwP~j@rLbj0S(2S+RA<#Gi0FZwsKPEpRKP8WopOK%xWrI-e1_@%zb3u>5|0j^J zu~0}T2!E9RijYTu{K&?E{DS<F{EGbg1SbROP%aPfc>LG!2(*6Hc?7bD&|4e<S7`(f z@-zYg0I~>p5T9ic=oq{ez!rH3_wqc1oB-G!ftCZXJOVruVh$!f*w~7k2TXZbwQBY1 zHRa_M6_u6CArr!K2S6&t%-M4mR;{hBuBoYAw{HFV4I4IY+EiCpU*FKM`Op6B&;R^e z-}?5qzw;M=@yH{8`Iq0Vt*nCa0RXe+SFCN=%=<!D><eAL`{<+J``%yukN@%g@Bj5* z|IOe0?GJwNcYpUk|L6C<yRK@v=?=hTj)%+Za4rPE=K2nw3jzEU2LR&*fWLoq?Q+u{ z0Bhl)xfOtIt^mHbuF7-=fJfuOH5-xKTmd{<Wx4}E6CYeH`IQq1->ov;0g%k`z-q<t zNG1k&@ZCz&9RSX)2Ucl`<pAI>D@}I*cp2|6Geq7zfWNFT-2t!`V0=peJW^r01HjLD z-%3mAn#16ca?>3!b?UTxSJt)!z+aS`?tojSPQABOsy)+#`e;>FQuvECraJ)E!aXZ$ zY6S)YfLJ&7T95#~v&M7>z*>OuEdlWD)uuZD*23M(apmTW!M9hN?f_T|cP(EV3*cMU za%LoaYnAB^0GIh)C4BEdE`lc7JO~5$R+;Gz0H6EJlB%@=0|8)@wfUGE3SjW(Wu`j- zoc1%9RpkKS5xyh+)nEPjO4A(xYvInNm2m(z^X-peAOZZ@O4A(xYvInN6&8T?$OAz_ z1c1$@raJ)E!i*)bFEb3PQH-d|*#N+J8^9e)aA%JIAoetK2Zvp`VTI`q0A0SLm>mtd z0%%xnx&uI$r!VGbivS=F5k^832KCELcL3<}^u_XULNNwUA#+=1hfrOK=?;LDmfIJt zUL#JoTmZm$2>>z#U@hFXXjKS6#Ev45!A;9dcK`smZJ}|#0uvYs@c=e0HQfQA%eO8t z59j~@b4%if<Hn_?I{<X~)&(m$fHmxdZw|nQC8j$7ba~o*c|}kF?B&Sr0%}{{u*7r+ zfGSR#U#bC=OI>DLQpASv?e)c`I{<Wf>O7X1$(V?8v=;;0QOpft{bJJ{0I4Ro%oUlP zc+0U=k*%g6fOU&acL1z~Tjnm$3cy^Ba7C$IWV!=Dm#558xurmZt%?!rxptxH4ggi0 zGN&XSKzKFPEHvE#pvyPUhO3^;ZZ%agdNoxqFx>&5%Qw&F`LR4b)&vl7DQswf@iu_T zvs8kux@;;<3N40)wewAP0O;~f59_P7p-FgK4d^nvmR8L(-2tG>H%*&u0#J)VX_9q1 zu3a?ObO)d=-}G=GM>wd8rY={`z1#E#pf2Ay_2D@-24!)oSXsVc_Fbko07KHRjJa|0 zv{}k(F>;qh;;#@cqBU>U!!u`E-T)TV9<%o*aVzD<0bFZ&n)FPbCe6$f$dU&8W(Jw@ z)t#m{0Fn#<iM^xEZEYgn5%@g^PH4O^!$oVFh@_G`$PCjPzyZj>`kR>jC68G9s>KW+ zhT06<8DK-$mkWfjGr$V&AJ8~p7N8ESD;$~+?*GS652zz|d6|*d_rLzaXdiyU;G2=x z|HISI^n0f9pKcxvKlSwWNceUk(=XGw^_hQypMm;n<UhdIOjExmlF4j^2j5)(^o2~* zpr%a5D}cfO@Jyy@NRxbwpBk@!I@2`NefYO$!Z)M-={X?{IvIp8q^Z#RX4F4!W#W1f zg-OT%<JPSgK$wj$Zv7ER`x`p`mVeyZe{189rcdx%d&JL-zoq{zjT6&8{C?aZzs}q0 zkyUgxSwqT61+64ibS<f-HMEwlqwD<*{>H?nL|uM8ZTOnsCgMB#o04^T(2<mpRb(|~ z07)gSB5SDvNEyInT^jm*p|1xxx9&<{Zht-RnqXbYN)8k!r>ZA0u*Atz0Q4Ly=1@B| zf(?`814-$6((uuTcJGSHU~h>;3VMI|K~CK{@be82u4CsOGD9<sGec8|y;Jp{HDC#a zI3{Ix$q-E@Wx`0-f6{<qDA|AY8V)|HKL`I2CWjj5_?mLfa4l@475gXa$r*C?V|n?J zXI7Y%azLV<p84>sb=AQ8mOX$7k@}nbx<oxWP0pOPZzueUrUigJLJg!0DZidV%tV*# zC<$|!X|__PI7kPrC#T5i(?*R?#30FBNeii`r%s+W3xkY7l~sgkvpvYKBlYBca_Xd2 zPn2~Sr|C>RMq+}uBwPHZc=#y#-r4u{wL)F3qz-6pCyIT5;YsoySxT0X60-c9Em^J# zav0}2=LW5#5N(oWMp@-+4kLBs1kAUD&-Y<i%3Lu}WF{l&CQ?UF96O1nSx8@2S?htw zltXnGV^!|h7K|jvkGy+=mxHxvPP&O6KlJXRW=5L&BBen#kz?dIS#(5>&8ll${5Tdx zlG${O96N9vOV|Xl%?{RrA@9J%3lGTZx25sgTD6w2GeC}|8_ChV?;Jy?w<w)!!C<nH z!eHiuZu#I{8!>LkJ=l>|d)6xBcpIv5<c*`k{oT^RWCJ-&j*xlp#Lvy9)~n7`=Y1O> zT6knG)*Bj3Qwtq8Zh^R5e0nrlpV@GT9NK>v3KnC>3*WuoWzF&AAPmQP$CeK#>&SX2 zd^>oE)k|K?_{{nP<iMVTyx1@XfZDV4mM`%K1m1@6qF}S-<1_2tCU5ULAS*sw0sxm9 zsok~?L;ps}Xru%qDc}Iee)1N1n9O>^s<#a4Uo3!3?S8U<+gnh!Drtz(-~a@^)i4zH z0RRkG0f5=O>@^n}Bmh!F_P(-jKZ{sh9E42GUIf9c%8NzfO@MI!#Y1?$8dE`_0QjQG zpl`hRCRPw%B!K7EVlD`)LB2=`WOqG%de0kRp<gT(RhSKY&m{oZ2>_synqj~ysavQI zkO^@Y#!zDch+|A`i~*g7R0=5Owg5bA>vVPiukT<%)Gz=R78U*!yA<5Q;B{3_Zjit* zhzDSJs>+Re^kxAVC#u@qr`rJTQ}yi3C#1{SgLeT50DL{VA|5bkDFE&)k|p&Lz=K#( zp9==w>i@om<xy>%=|j%6tnoUBmNgod<mkt_bVr*eU4Om-ZbVE?b2BXA0wsalmW953 zqm6~Qpkav_w6cHmh9$csm1^spDm$KET+xD)mQ}Kz9{%WvZF>ZbM6*8_iH89G3Sz+L z*1xn>XsvBj(nDtshpi3MsOL9YZByb^i7XG!!Tlh3CBYkki4(1-2TvW!)imMeG#G~m zU>-2M!t(@8cFrp_DCvO{2jg$(K{Hg^lUPC)+)Zt%n{pBM<lAQtwA`M23+`zxw<pQ| z6K}nJ5e6lNaq8zPVhmAvg_QC_dy>Fi==en#l$pAHWZygcFUq3a3nQg@)&eUQEXuuy z_9??IW@L;-3D>2Ivncm%!i&<y8I<&m{cm2BNeK4j9`eS1!!$BZKkXEhVN2T>1$%PO z-Z#t}Z3_nP+K9gl5^t4Bv&@`Y+mmG1p51$5uH$;o<oi9ws1R{EnrxuE4)2!PSV40D zM`yJsF{w0*LD!5uxs&YNzw4q5LJ9^U-LY@y#ha7lb+UuZA#)F0lsTGN|2lbn&yGtl zC%41+i#8{>uftkeX^FMmn#`=*Mz-zT-a=areV|h5$!lcWC76>h*Fr(?wo9-kDby2R zk}>%Td6hg!9@=q{mf#CDQ2YDp#hPJ^ivZxF?Krab`D!d+zE~R!1^GN?bYHX;N2)Sw zUnDQS@X{q2lP{1L$-VXT_ZN*u6_%J@iZO|W*p?;MLSqu@O9QrG06=zIuoCJ^FUgpE zZtJBPlg~M05^{Q-G1>AcrELI(gS4h8`C-t$GOZsT)0OrZnv$}2Zl<Jh@wSbMXj9TQ z#iXa4$AjgyNSb0`1_#WeW=zRI@1S8QjR3Tn!H|qFzA%g&Ye+`)H~AhiBUxN6Y~Eow zJ;sb|W`yLA6c!kf!rBVYlEsK@!5C>mDl-ekC){DSv?EMN5$i)4ejx{G?}5o?8PNqB zw^)V<TNIK!Uc6Wubb<6X9Sz}*7SnVGQ*g1KuthP+Ba53e%J_XvF9OP9)|t9RWYNV~ zg8nA5@Zv^-4GAMvWU*y7<N};kjcqoth|U)om0UntI9Q8@%*U}87nOWtzHN-Pzz_s0 za^7Cc4s5~TT^retiJCU3a=K{kkG2CrH|CPS)Hx4^s3cfY7aNt#Y?y<?55*f|S<T2d zHZZ4e7AsWxomK9KcFB<SWY*rSR-EZL7pWt1I7TJur3~M(UjGPeON=<aq(RShJg?=$ zx34pQgSI8(Su_tKk`O`C_}eP4RL2Tj$eb7sfIhh662`w=%kx89Xv4~IBCUD(flIKy zm;>ehOS1o7sJSG|2{R$?BbS20^VKYLaw%N6=LMsVFktrteMtdLKtW{I-a{@CL_K|0 zn_m|d(yTJfuZseJDa)5)L9(3ZYyg_EAnyzVXi+#)7(W&U(UG+1Rc*!cz#$=i+&U^0 zrvR9{svQi>4!}4K)vkVt(Zn_X?%_xXt9Th7{x4`3Civb&ukoMYp9x;$)~N~j=bNqg zb-edY2EW6<P0zc3|8Mf)#UD*X{x)u%o<^?Yw+Y^b8&e>OObY(LZJWG;hP?V@9VCcu z1ha5GxSnev{#FgQfGW6QS3s)NnnLIS2HhqwRw8?3)-<$kNN4TRt|28RfvZ?(l1zC+ zI|cx;i0aT0h9?+~;kTKJhHS4p#|#A<v9c??^CQ5*-d)*%FL6#9z=%}!Xh=rBxlmQ# z&^_i|roJJ1SmRo#?T&s$>I)nE&4mq#&}^CNdQxA|kltJX(;)>Wk`&(LZ_W?BAvJz| zenUaTn@ml;U!T`dxH&I0C;>xSZ%zlEU#P8PBig`-goQw+u0BzpZfF~L0hdV#bf+8I z0Vs1oW?dZtS3$a=ec%PAD+iyF^*#gAVROm=a$)_ZI?8%?w4M`|@|<okpF%u{Jxw)q zGWupVY$D8KVLk>$gs#bY^BG#}95Hh^f0k<KvN@^H3O=KoG8;A$F<f_rv{YubB2fJ_ zvuOi9rVOWKLstP8y%P2_T9;W5T{)@<fp-P7o5lYnt^8@GZaqGhG|0}Gb%DoSfHQtQ zH#2o-d<t=RW_;RDNqwevo!uRAPBk>vL&076MY7?WdMvGtdIM>2BJwZiKv0PWoe`j) zcY)`b>YAt_T{im-;udZpoCF!shDIz3jUEPBA%PrRE=U~sRRb?*4Ua?>`LY2*kI{hf zHTvJ8FiL@XX7sH+NPViI!)ESiiXPm4b0Ze!>A+P`K<zeT+IQUS>4r9&zvfZbI1p)A z{dU<x5XUs^8(-^mn`k=I4XrkFUnKX=g~`F)As_ZLcNm4v8+RCqJA*rntaHm9M%H<T zN0d8^++pMnBVoNc%g9+q&NAY*m9vb%#6&a3Sw>tT{<B#|b?`sWC9CTb4Xet^R<0~9 zU9o(5Ny)OMOP4GuUc7kG!i5Xw&!0DU?wr}PXFdGTLk~Xi!2S2#ckexS-+kB2JMWxv z#~ssezwNeLr%j!D%bL}zn*lIO0k~HKm@WaVi2zV+U@&LSYysf@`|m>lcX135z^#Bm zIRID{!~g&+TC{M%g8B32&5Z;wW5yi<KzR_rGUP!7fCnFZ05P}+Fqk>>P6Ti}U@)!1 z1h4{`7zyCvhaW-!$U^}Dc?bY15CHIylMn*{g`feT5C8)%gvw|DAVtLkAw>WXA;n4r zz=U995U&Qd6xnzU0Q6`D>d~?+dL*UDgiw_;07DIshoA-spehbPK$C?UgrvAO0Dvt8 zMnb$Am{MFD2|%tTEd;KJ0V%>#s%`-Qp$3)|tAhaaY7Qu(y_lsCYO(`RdSvegdM(z( z0Fas-)T4kDXTo?44xsm(2M4wX*MbEhEXLZb5CW>G_XD{a@4mY>2;nuk9;GrXRnj{O z3R22pT?oP}5fCg@FeC|rSjQn$W2ph-!|T?93M*4klmLL#f*-LOQl<dFHohq#BdwiX zpb!@2dIdmYfMFWQ7hCnFf)KH!QI>o`t&fAS-`JXi5DZz~2R>u)-!d9(6a;{<Itft< zL2SqYfT;^Yl1dI6;sCtG)zMIekRb7RL<c)iAY)xxowJSCV%!Mh!I>T!zt2#lfEoxX zG8t@)9=~6zk<@}12|yr$is>O^QLV=8!xjHGS;M6c?v*;o_M?FK4DN5j;mABB9#z;D z|6z41De38x9i#`tp$;i__&ersYePrg&w?-w4|GN8-jO)T3(nVN8GR^9Zu(j^XHH$V z(MS2{NU0&)A;bkag3PTORJkMZBIitp&=w!d)lJL$P*7k&hR>~sd3j_|j^)BW$nPMC zv=las)!YVt)x)&Gp{AgZNAj9oLhI$&I4Pf0W7P@~oQ9aD57hchLBb+F5zpp&%0@~a z+Z)rnF+4`ageWFXDF>SS!LbMiD<(A<10{F)N<5mCyA3!nJ8w@b{-|pW@TY-5P)<gA z<&5^~JEH~yW98P-K-D<D<=MO;<)<UL3d1l=t2tv2J7utxUmzK08vMX0lb`R$@UtOd z4APX*wI}pdkzKcqJ-s2RsM0&3&5aL(+}JE8LcNY=#Rnl)Y=()l@!?FE51YedOfH;_ z;KF7Co@@9yudGY%oJmiK7?NEfJ~fAIrfiaI3+$YtANPM4z+?4V2~0vr#V4G2xrc1_ z#RT@o!B@qH)~Y~BLU%J2Knvd7XU;1MoasBwv|O3_4{O|+zRg*#!UF>CgPbi_?Lv`O zmot5x>FZ2iXZoT`FbB(3U%!}RR+(PR2N7qvlGWOFR(E;u>>9=wb7DBtSKbwz=_`D2 z&h!=Lj_@@&(^ohqo$1Rhq-cB3nZC-8?@V77(*qZtGksmu*F}AG?B1Ea&h&MruQPp} z>HA=G)RvUHsIM7F<PKRE^>tBSGm_(?zS+ZjF6t{1qFmJ1TsHsBqrNQZc}jiT%*~T; zy6MJAlWw^Fy6YxRm@xj@YsZZpJ7)CgQ6oo=7(RU1(4j*H4<0mV;D7=B`}e!%nyatA z>Z&WR?AxbL@7_g4S6tDn*DX_S<^XOm0gM?ldeo?qBjNz`)c~e)05{$^NdOo>{@QWl z#wq~Ah7BEp7z{)V`XL4k0R>>{Ef#=@6DLFh015^o1r`9LU>XB3dGbw&!S&Z)hXBGX z7@}CvFTjFn0AR|Ln-Ku=5CG)HL&<_$C4i6+OcpR9Xck<JGT<!WspkP9M6!VKFvJ3u zIc^I<^H6C46N2WUp#?nk9EH#v4?}9iC}5f6S_sYXFw6p;dM<=u^Dst@Y!>MBeUu^s z$fk#378v>eOb9}eBX|faNvn}qNqzgO?0Zv@WA#w-km)hg0_H=og%IK)Uy87j0&0XS zNvH4IiYzvRFb@MP5ZU*b|8EE(#6!NBNHsDx6P>=#YA7Oj7_%D*7T6^ah9YO<p;n`- zbPfYs2~v@59-2#$3sGz)S6{8N@1-Ien?W`nN*3t!eG@=f57kmMHe_UhSwkV}P=Y)R zZ)e7SY87Dw0odD_QX`WEMkS1_Los>SEDOw1nz*$rwzEhU*xs}#9*U(HRwH&I$n^a< zJ+##*%mS+tCTcS<co<fr0Ru!OjI1VVo`->BStsusD<NhnMzMhB?wiRtaXb`i6kvf! z{#O86$^uqVWmXd@0P$*MvVd1qF#yf+5Y;He0-3m<RS$7HGcE=u3wSva);}l~$a*L! z2~$fkRtq5YS{6_!0Ez_?fUz5i4Oy{3Ri%Y^h$Ue`9)?+<%i5xOXr78uEMUpwqWD4a z5Dz6wjpXG@+>P`?7^;hbLOhJyjVu<}2_Reu)>_Waf?=#K4r?E<biv}GT8dd&0EKnB zcEPR;%!LKRF$E>WLs`+qco?Nd$O66{^5R6SABk6^EG!s-iRD2asxw8g0IzrQOtQ5= zW#NQ)h{cf%fZB~Bv|yx6E5I6rST)MR0#@B<7J%S}8eU1UEP&ELmRld8hf0mqN(!<7 z^jOwsA`e^00;b2j#MDScVtN=}Nfrz6R27FJmW0LeP^l4HNzp7&S+2;#kQz150+A*g z<e^$g*|lKYI5WpI#6z~DtIb5Q0JlTQ0-21@leywolFb6Wp|fm$yBdt?q1ugX7O1^I zZs@waBS#jXxoj*1QE42jMiDHKwkBhNQIC*~1?os)T43lgaV`LTOga}py!k3^H)Z)K zN04oOX5*nWUzI1xxd6bA<6Ho;g5S9Svbj+r?O*2t=x5ybf_8^+=Q$UEye@_8U+{}N z7XYu_SC?)yTrBg|P@@PhNQCJn0jMjhI2A+oFP^GdZ8zrvh~lAh0k9yMa{-_i#JK>R z3qZS3oC_evpXgiw7{qs308uP(Spf1!{FH-FyBI^+C|ZqVB7|C7^18;;2!!3Cob^1P z#$^G75+Rh6)ktTtT~T4fh2<o<EC80%q#`y(I*W8P+p$YKuS+IExGaE($f2>8T^4|j zn6MbS83Kpx&}9LHqOZ;cpaOR?G0X^ip&P|z0Z10OEP$BUC1&R-HHvctITyefmjxhy zWI202jmrYyc1|!0fE5E=PI}VINDtDTb|YO$7uuP2A{}W5+TL$R+tN0EYroKMl_>D@ z&*$~J{PLbXFT1P<_9opZ>rFaQ)|<BTRd2r_kxzONfJ^`~g}$UK?Lq*u>`UAFZK#4w zdQs7rV<G#J5EeB5OQ=3zXdq~fhD6#%gXWVfY(#=cn~0G7k6Ceppt48z?%kp=*E~6& zFZ**!!#uRnIhW6?C$h59#OPyDZlN$jg2TL&82JUHHz_hn4)fE*h!%X>$DF}tsg|rp zi57gUYCxKyLLx;9NS`2Dwn_xWe5ydzc?elw)<X)zR8R^ED%I$t0+v)@@V9wl&X^S~ zu`DLWLZGeQmlYUN^0*!(a$Ilu>e0y2R^&?37n$&-93<5xyoe-4q}3T-?I9~}EN;iC zz=>8WJ;UHca|j-5WmJ|(6eV5Vy7FBitPN*$O^z{HJljzrXyHj!$`hchM|V@XZ6?yf z<GcVzl)nU##6^Lc5k!&{l55D-AL+W8BEEZM<3FN#yf9QTWN4y^C+&#ZD}{Zu5Ihso zI}}_fQcHp=j1wM4d!7x9p)g7e6t+;(|0JSn2oTG&Vw6RrN?ISW>#9P+F!w$!4BCdY zKFBMovXL2$?eW&k4XcV^L^)YtKi9gg(LG`mqKO(PL*-DvO_^Be4kQDP8U<jwgiS4Y zPH9kmNSn8m+qikb@Uu-KOxln^5h(Yz)ixUCx7vuJGv?zGRc|rU3E@1L;mjo4ym)M! z4~TL*UGFC}(a@)8Hj}nw$lIz?&Q!*LjG`F*Mq6EJs40$=5?3k{>$lsg+9p=sWy>jM z8A$EeYo)fe0Br)xoeX<Z*L7*U`$nz#Al{_iTe84XI^t}^uZUj19PvHvRCy+M>6@4b zG%Uz)(tc;V5yN?HCAe>7F;cveg-{=Hz#6V8HzWpEM0p6vwT!5f_PdSJQW=ggDYrB& zi2Lj9Me&1ChNMZ4SRfjAoPBS5R+wti-Xi2j0rJ2)rEhwTMJ*E>dD3Bf$p0#rS@dq! zy_<<W=|D#BV}-fRqJMdi_jn?1?;z`P1LJdKJ{be}1N*WlUTCG8`0tTb3kbjt0)($C zhVJm~jdUbqUuR_xC;$Th$j>A|9PRSnqOSxmc2rKM00j&{yac*-A<SqY<90EZjjFy; z5k*kI;Nme1BzY%!S!Hd6DPRE9nXk4iyemi+l1?v(5+>n(RZ1u~z2-=GwG%6DM$en3 zK^6wb(I7W_CIx3CN^8{_iI&|Rym6zmz!{0oNR)Q0GZLBCOIil#u5d;ocS!K_%{JO; z8)qb1*I;KPg0<z0#3=Vrq?5-PiOfuKMk2TGBW+w~BswFJ2lBX?$?aTcB=XpxizI>x z=OT%QM@xD$<73AzlE~w*E|O^aLtG>=OKjXl676W9_V;3zjPw_{NFsNo8N0F0X0XGb z&Pa4dqV&63E)+W$M?1JkB82h+fiw}vGNQQ7NOVTxzk-p7DW{3NWICBjC-V}m;MzzD zeowLQ1&~8ZNG3neXOB|Jd`LWPOD~Z8JbO?h$(NlF4tApX98OBY%}=U%3Sb^zyyyK} z(}dN(kY)<<sWpT>lA}1(R+K<$t45^&f?X6+V_`}~K><9mVdqm!h&4y)C#e)CGLL3j z71#p{eD*LnHcbhbXZ8#!O4T#Y*#aM*VcM?5Ee+gGQZ((%u?6rfQ`jmzJi#Ap2*`l~ zKS2pI4{dsUN&`=EHp-qN1TC2Yc#1JXiG{?L&`j$>1f5{$Av^hm>_redV$w)kw=N96 zNW+T^WW_<EAx~Q7)N@cgglo^7@ACv_{!~tz?`PVyrV5BgKhGy3Z&`yu;P^ZWP}=8N zj~p4P0_jBB=LVC>2!xaJGi}>&P+WR)NM0i86G*TQ(tv~TjSWuHk??s6x8#O|mQEym zOxKQr=KGm;ZE-3|4_6@+R2oJRkri%p9?_ueT{I%Z#}r8p(<BVX5kJ$u9S3XTBWbwc z^S2tXiBO~8UJl0WQj^aNCzhIN6UqUn6FO~^D<oIbB<Ni_k?GJL)4VkIO#MhD@On;I z!n?#+59V*pv2q0<=wt#@>-k$b7S~dO?TCp)reg<4_hB7Og1O*Q$wUIuVH5yPv5A@w z@52*l<Y4`>R4j>}Unr%)xk3|-ojM{45=VOqq<|)fC=iI_0D&IbgpmtCqKS&+C8Q?0 zGXT#%cLv~&?#=*E1a}6ovLLxz@N0lO1H>f?H(+-L@Jk~a56%uS?$)i?ou989X<<1# zz}W$LaNE~6S$!MD3%#=goE^X{y?-Y=0R2H-NI%xPl50F{-N@BmcXE}Np^!m;l}Dg3 z`AYGZ!soso|Leo&J|6#@fX}_XBt&TOZ#PoprQkFE?MANf((oDob|byKJotOL_?r)( zdwK=%7XNl5mwBz=Gyd&HdU%EK8UJ=8-M!ZE8UI2-u-67Yck?nn_y?diQhy+D9zhkN zC;z4FduLDniza_p(#cDJO~wDk?;X7)`;PzO_YPi)eaC<CdwVYp|8^1ob|vk+JocUc z+m*ES^4a&cUI81|2L8qVZM;mv&u5QX^N;wnwMSt6<NSplc)(as{KTKN@_g|OKk;V; zV5{+d_=!Ku_mb>W7a~7(C3#*-Jj-(eMFu;8inZxh=zqKwirenLcO(7D06LHiB7?~g zGL#G>!^sFTl8hpw$rv)0j3d{Q@npjBiPv3s{q;B8Flo|_H{CRO^369-x#gCrQ>Wc} z>uvq|_a8t85CZ}g5cZB9GiL1AapSJNcKrAW6DCfK2GGw2Km#Zoi~w+>iNQ4h0BPVD z&<Gk1YYeXAB$xoMF#*s>CLE0eFa>yUH2@&}I0iJ9i^n7nkO{y<<RUN;09>6L0CMfS zoQXjIR~Z1BljHj+g#du75CGKYGZLBu@PPzy11Dkf%~P%-SCOkJ8&54Yh*qT2Qjr)7 zCf|JJl?DPP0ID?cU0aVVMZ6Mz)Zr?6HR4ZWmEdHY8upDC9<2grwF;<Z&=-DA;z|nC zlWS-*3SbPED%dA9JR9>r)cV5~VIMu5^S-%7{IRJ$z1eUItjk?=pGnbA>fO5!{ES9l z9L_mU`kR7_-a^jH;k`+3YK_)%BSXy9e=02YqN32;a&%a1ADdDKr742nWPzz^jzT+U zZai1OVA`AHJeZ9AOexG2!NIu*>`N~1URS`+$iU2!W4Vg!Ymj!Y;NajgiQDfljGxd8 zehcUd%J^jpS~45Y3N5O0qeg2{U2Y5wvziPF%IOO=^m6#6A~tJF82vR$sV5Ajy$B#| z4sD*zjpKUqp|r(JradW48O5V)i{Zl9%X-4^JjIMOxf?u*>18-$HvZrVZk~Q$qf~l8 z9XCfc$Q`|Bg=Nw>x`!Ufd81WdvXu-BpLVnd#}hddrM6L<)P+&q;g_uRxUkm6aI`z^ z;RA6f`Y1U>aWgX#exbw{lQqXosp1z#bn8xGGKpetoTS~%F>&lLnV1>gEjY;Jg<Sdp z9(LtpvT?%ZUuGDX%e0%XD6;t=_jH?mnJ$4r;pJv36z&g=L%ZN0KY|Zhnan|SaApXU z`ul<+$?iDT@zXNXSq<TGjZ+87gvP<0<&Yo?<mnJ(0qyK}p#ehTmEgjlPMt}_h~PRh zNbiI*<VtsDU?<Ya?@Yyj=BOqEeCUk?gk>HinDlQP(6J)}p9{r!WuzT_hJBDfQPld- zS0k<$R9M0n`gQ1tkY(>EN%3=ut%?pDa(0|is+ns#P}VsYk!IS9&Jv68f|iQhcy;@5 z=UB<K_YH)jrGms|u4+%)Cvrm9*>Hvt7`$O{L)O`F(wKKPoZ*QG8DZv$Y+JC-hI2NY zG63Z*IGfGxY`EOqBhH4C?jvWzNk>P#ufo}IWT>;@oDC<OLC%IV&9b0b?rb=S<heMU zj%K<zoCxT;IGhLt>p+_H$Ys0JyEq(%UtJt7$B4I!!^MOxtRxc`hvVrhLC>X&!|}8v z9%^=RI57NN9L^3X1~2^b3?~C!9FFH1gcDa>9FFHM{ojwnVJ>HV;kRzPefsn}?wE1s zoik_Nb@$!(+<WhR_uc=%0}np<(8CYUnmv2YoVoMn&7Z$u;lf3W78e&US+aELvXYYJ z%U7%@EnT^?Y}KmOw*>&)V*;3E16UjZ;MV2=%tZ_qAO-@!G6REY2;g>;1ct%=f&_*^ zHUQH!fEj`ZEdnq#2;i=}@6iArdU#ed7(ilb0E1=$6r&U*4<NM_0Njc^n106$MgjwH z?|t_(9xx1M&zWoTKmaH~F=B441>nw^cf|mhhf-LGQZN8OT4*)^4?Osg#vlp+=9NYP zV5$ftGzY*;?`5h8JYXbP0GKWV4@?Y}AQMZh{9vuizyrM)fCRl5G!Ga6Grc#Y%W^eY z0L<02Y?(;!#q3<J2rXQWMs}{LNpd}BTaIi!o9VqKfcV9rHw0XcBDt352ZsPyx(rMV zF9ygE71_06MSv~I0uZ&Dj6Cmn0M=rFJ<V7QDnk|&Aq*gXF~}_mGn6AT&Er)Oc)*sU zP(@5JW&ngDz+zyj>S0xsi^0}qmL#1WfVHt(stCF)Q(dh*Z&Qv^lcX*OPKNQ#0<bhG zbhNN^dyyusb(!r5a$}DKAdeQFdujp*$Po@Vy(_}u7C0Fq6aK@BAXPD>Ns!VhDh7lc z10@G?Uyjox%n7vtL@7e#rp7c$6fLlt1(hw|%%)~)l1@Ahr`u=Wlei{XWfP_t!aIW0 zBx_G%>A0%y!UUk@m`xF6K5z4Kj8=qE5`YqexuD|}L2A;-Fo5U<9is>%O#s)LiSMu) za**SQ5e$MMh8*N*oNmJffYDkJCRk+;@p5E4!f*{>jLt$g<roHFF6dzvfUznQ-P%_z zG1zh(76hQ=Xs$;KfOStAI+Q_(7DMd5D%ayZ_Y4sLPz*+DxxFoBk>d~(076hzNIA$6 zcJ{#`06B|+t;fMp09qi1K`{W77@Ap5gAjns?thIdvr4m<%OOe*ay<<k6s`x`qaidW zh#4~mn)P5hjjG=JBxhL+7%*@kBP1xy9A(iz3xHf?0cCCR7=%w4c0`#=0?XPEK#-HW zOqCW#Or$JWVcdX7PQICwEU>UGSevJ1LB<?tZf~(l<D%;Wj|4Useciyjw^`a2<b#gM z9hZl7SgnoHG}I{5LHc&&CeJvjuM1aQjn!H4wQYx+VI<V1NdR#rPA9ZRi%ni%`@AX6 z8&DRs#lZ;F#(bpxV%p*>SDF{+@U1h-eqk;ZY0R&bMj&%&<OaZb0}OwJ^9HC|T~ie! zZ{E^^GW`+G8=yC3^MK^OwKyA2yA!NitFAkD-T>vLHShjmN3-(=sC#p?71@j?Id1^J zBsp(@yf5cqMLKT)27Z{Q*?9vZ+zGi@pu#ERya5o2%wmg2Iy!?6vh2ou^IMzq2Hfhr z0nQsxwn_)qEdwYJ0g{otaB_k321G^X!6RZt!OUo;%MB3u5iU2t<pwNv-heFDhjwvF zC#%a12;^*qBR5eYVHu0G5}sUc0OV}R=vDJqW;>=VlSIOy{czMLD)-Li2Jk#mE3}`J z=_7J=#EuXQ?YC5pE;ryJ<Iy4?I3~28vlyH=z<C31yWQmmOr7?hJ~sfX1-@LpW=(l{ zMMWj4BvoWBsirlgmae1g=?1#d-{jXN>(dQ+o5^ajhLn>E8rdsRm#EKcNNxUd)oKoo zRB&*#n$*x*!oc|(=_cMWx%qrqE<N)b{LQ3{tZGD{IC~UOj$?iU*?e|o85S={f-0-3 z)~>B476!a?K?7Nda3xVDSh|j^_Z8{+4X3drA`YzPQ-bk{l!gIQ;3+b}?we{j&8sbf zpiu<j?#YHz%j5fNk@-wysd~SGEYC85Jpgg14X3dFf)#++C<V0wr%2SL>fdV+H6tPZ z#Em#5t4snTwB~VD;p|7O-Zu(UEFstu<I0)<wETLq^o*QF6thHWBo_uJh1Q?8^F3fD zrbI!F(}R+AN9yeykFbu|g7h~cdPjJzjLHm&9wnuNd`Q3wJZ$7bh#DPRL{)3eh3juX zx@a9)Op1?l%2-iISdpcmq;evXhw7|akXV)AD_gQ8vFV8EBZ*X{pv(|Yx``|#i;nRs zB&^(ERY;Ngp(n(FWYdx8`Xxh6_<n)wk8{+AJ<Z?v&L%TA!cZ_22FRW7bBHV-shLCO zlLc=_S1d)#gAesLkd6DYR6E&YQ6?s-Z*J6y2+iq%ITnc}bIH5|;rgBknM&DEu~Cr? z`>~)RTv-#|BTO!Hg7<F_6=JNaMwFN-;g)KpmkZ2fG?`829L-vv22#=+H&yKN*X>x( zOHp(!OSrf#irJj#T~UQBp^ZTwFQ$f&b-S~qfkmu7n`yh(LE616A<>>|Rge`Bm}VPg zn*ByxITkO5vX_)pZ_YSc^I9z{#<J^A_!eLc5AGeBc=Et@oL-kwWm#Q8=F#fcYQpIv zd|ihf_gZwwJ&yl&Y1PLIFT{P$J{%7x?S16_-B?u^CBA6>>w6HW?Y%DtygM;#CVa5+ z759>GyT=y9#ma#5;N_Tlwq}JOb%@;kTGsMVC58YSB^S0~Nu5>u5v~T4XOL23dGn$b z&sFA74Q9w8$VXD~e0=^^<nCodAmz_jKp06TOUN1;xfTV4s47{mjmU<VLUp!L>miDf zoDcQhg>qf1Yw=Ro>e`jEx>Qyy3hC;S!ibHA#qiQDGnK9`y(!tO3>=!UtVNxwC5tGX zR-DA6UfgByCSFgTZKgKPtXVdADS?!&3YHwll(q>*hWU^^na$K{b<?r<Abf^W65$$0 zGo)tmfz!YW1ZDk0Hb#oI9b|%0VHoK=4(-s!Z2~dKUKhp+1WhKe!fm7U+gsr*Nq(y9 z`<t^QEpuF&8`8hvEJ=Tpvm^~`2hB5QN$OiNda$@<?<`6EV<pa#)E0Dkg|j5lQR6I0 zXGuCs(pi$ul7tA3vm`Nc>0**DCaFWgaki(6NxGP%VS&1sr0pNa#E{A=Gp<M>JHo{z zgTI;SVv-^|2Td`Iw!4@l#zaF7bCEQnVjnW5>0***hL?*;x|rnZH7+Ju=3<iK2XEqk zKR2|+S}{q?a7}E^Ye>}lb#xP?jcuUoAse-p)IjdXTDaF#g8#Jq^EIniuUb{Ma%E}h z=EUYS^iDu;x)D-fL%lyMUxU5Nus3w(pdsB3I+OK~JPM#8eT#wqw4z*f=6#cZhTYdh zgRJ=q(I{I9aPzYwLCVhylp8kF&8--D94;aZ@il|I^Ad-KwhiI=Ij)~oRw!IqH%&h$ z$wspg&}?XDKnt^plz)R5vR;suY4FFy?Q4cxLwgHU)Qp+ctdoQkHQ$9b*eAtA2Z@D3 z8s=<`Fk3?hm`j5(1$Le@p}roFMlhP8L4EP-+ln616J^Tl{rWZyX#<Ek5vjaTQC^>_ zFKEbPJrGEkqI}4x&Z|!<G!TNOrm>=~u09{~d|MeH>`7={cQG6iNdtPEsO!q!@u^MF znaa9ET^D!>nWq+BknL2J*;JRT>r|ftq{1WVrc_-Acqa#HY%*1w=%#dCJL{!n>V>L} zn|yfNrao;A6|_P?Ft4sveV*|SN7Cxd+Kpsma#Ma?x;~%1L@FgE@Y08u-RqJJQD2Y` z+72Pc<fd-yIUm6Bpc@kKybC-}FsdQ36}Ww&di@3rN~Sh-VsG?_#_IL>Dgm!L)TLk& z`3jN=*C*KXwsmO$CZCg<%)0exJS8^fZ7K}B!ZcbOln;E!XM-Sp6EL_?Q@f6=^I=qS zV|RF-U?kGo#+q9GA^|VDZc4IQd{B@~O)aVQ*@)D}PMcEjf<uBA7(?`7n$*S)#tTe- z!~yuc?WQ!Ff<daT!8CMymE4ft*lJTAyh2!@g>b`{g9?Ca1?o)(^X>V|1VHSzF$qKb zb&a(w5ueuh0$vyK;zBJ3I3>Kq`qYMw@FoGXG}f}%C%(c#_^RE;6uk1+Wu!ssGc1zp z(;Esmrr9e@3*;6E4oa@i2lf>3LA<~LU*fO?yzIIm3DB^lK@Y;`o!RpY53TW6J|Kaw zI&4V65X$NxC?pX2486p<^!hd%(g+OF!6-{k<P-U|$#r?_^ETwIPptb|=AmN=1%;sq zG`X%Dyux%=36u{^z?;tNlj|BW7;HktVTsz*y7uc+>&Pm~sxqh`fxk<yYrQ_bPL?-N zfsfA!PuAuGu6gUu*UAtghs{}l<CC@B)_qwk60l9Ye1>tVwi75oBc_A$87QMzj!)F2 zYun+<5p@uVA1BObBq!m0t96N5d2YHR**N*^>w`Oz;k<E2GTtQJk?f9ScO=8X?~Y_v z`690h?nri4vf;%bYn+v=3_$LIaaOXkl9_GmtYl{;|EIH(+5gNj{bwtdFE3fPZ0V9E z#fuj$TDV~T{CRWd&Y3-H*251y_`n1A-*@l5_uPHg%$ax2xMTYC+i$z|)@f63nKI?( z$v542<D?s|zy7+36IQHPUQ)7b>Cz>|0AL{pFb4oUi~#Nj0QVq(I}yO`0ALydxETRV z0sz-tH?dR$Sj+*;n+FI0fQJykeE{HY1TX^u+y(%qB7n&V;06FNv9#2n001mlU{D|d z+=T${Kmd#a1aK1q01Ch>F99G01`8MkVHRi#7yxk8YYK8>fu;a3C_@Ak4|8O}EsBC0 zz@e`x03k-PKnqc^KnaltCL&m%gorGN7b1^UXbJ=iP>84nOo#{|AVfw13Xz2*6bn!d z1qD(I9*hwpqu{0+c}&A%0SeL7f(Sj<LX@!?ivpnqiUkpREQP4TH5x#y5Sbb(J?27$ zc#mX(UWwU-$W|hw0Q9(AglY^eF!Wea5FtcPfsEfo>9MsEV}!_pPzD9C7X*aJ_7W5# zQ$u?tPMLy{At?j362)dDg{W3yKn;-s6<NZNnU+CdCC00v2u(=}Vpn3E8uGACa}>mE zry#`2%6JMQ)iAJ-U_1xVECp&iwRXcQ0U(Nkpc+Okq^c^3fCyV!GH9Lx7%u@_6a{M) zfQzF*kB?Z%`an<%iERaj4Az<eE`kCW&jZEZ;VaSJj{^%KN{y;53|cOPYAga1q3TEY zQVbs{aIUM(Ah;5$gBUOpKn<*mg<Q*u1htl7yvBg6`JUPj)mm(3G1o+6VD2Va&y*Vc z87IX9h*_+DE#g!Ys*IPT;C@uYF_2u`W^hr_5OpZ1EfoL+Q6Q_{U?~Fz8-vSH?Wr?o zLNpBlK-7q(9FR4;BDom39PxgJ(YOE)$g15D2$+gsY$&yYf)E07Pli)L97`cZz#C>Q zBLIWIk^qPfts-S_h+{4ChG}f-wP6Iv>OD$|N)zK)2;-51VFdPB*RzQIfFG=EJaSMo zfUMrj=MU&%6bB)!iUH~H^lwK@A7&sM&gBQ;KS()29p0C1cJpc`Mu#UqpeEP$fjK$T zKa2<q)b-r^jkzO5C#(yM8Z*T+*@ki_D-VmqJanCqm&*IZV2(G$MH$s^Ma>*k`v>k< zW5W|4!HG?U2?`9xLXcO<8vLce?YFbcEA6QV9}q(kWz8&3@6niP<#to+Ggd(WH?TzD zH{nW;A;yZ)K&~YwYp7%t&U%CkI6y4ePx7>5BOweOfiEdN9y2Kl=s_5XOp@qwCgGe% zo0-!ZXd;VrzMExA;B7+8D0vG3;#EiZCdT$*rAr`EMP*=|#+0l)&Ser{tT0T(I0$`% zK!S*p74M-yq9%j|lc<4UxEcpRZnoEvl_!)An7bvPuilyJs5xR~8YYf)Alu#wZRI&r z9sDhPi?Z(L=&*67y1v^QR~pmh<V<yR`#DqHnd+C~Y|xgnGu3sPx3wP!Z>qMp!8DYe zsm?F_&Q!<Sqchb>nKRY3$q@{JI8z<{O3qXdIN_YB4!^1IOm!DkXNd(as*YA3ON~&` z1MLY79w|}5K$YAfFZj)0Ztd(47gYxqLUM<Ts^{WtP_e|2+s{SST~wXLNnBK&#{*qd zorURKR2^e*E~>5)4$VMYAo0~j)m2#2Mb%kmu#2jr&-K4jR2`GxUz{-h+HvE?ju}0A z)X0$|h7TJybjXmwg9Z&8Fra_Ge%D-c^;K70*|%?>KD~PvU2#RPUYB3qv*%@(_2|*P zd$(>~NmtT^bbfxqcz`e#AdDI{as-Dkc<`Ws0|)d+2v=Wy)s-AVQ5ZtkE~LxLohJec z0AUP=Fnsv1p+ko#2!Mis04Q(>0tM2YbVC%L2LP8w#J3=mUlIXqu!vx6kSO$#D41;M z+NBF*@^cyl7n-BNU?b8{?>*B6lKBw^iURn6q5wYREQ+pOSUG~h20;YK5+soW5v&|R zaREgcCIWQfO0Eki2#bhsb!GJkhA3M~f~cs-i3FtzD2E=T2dYAS>q(gBz(ipvWOgcS zjfU}9RB_Qnh@uKh9W6OnD?$;WmK3imxp)d>T}d+(fHsRo9axgQECg9#E~sWHP>LWc zV_HIixvTKP78K&eP|%}?ENqFPAbw8~6sWS07HN^D09+TUwkJqIU}Kdsu#~`X!9~j; zL;>5Fi{!>E99XP6DP9J_on0$|a$vFQq~<AL8@r$YS;)ON@mdtv*Y$QHSZLQ*#ZaKm zCdop*DF^GT;wcC(MBE9`6Rc$rwWEe9Fb~IIg_xqiINHoDT^=ivg;*gbeSpSZB#&q7 zTmlN@(Wp*mULh7ifjph{W*DgivO<ijvD!`L;T*A}TNL!-HEsb4BDNA!jZGzxHEsb4 z<k4&#N+Bg+EaX*sI`1u;8uR;!%|cnF*9-+QN>Eh9tMme8f=UUDyFrW+$U4I)3bH7H zVj-_H40!XE8V8ghf`wL@U|=&el|bxeAr|sVNml51Q7p6y9h*^tC>HY49$g?7u^Zzx zH)0*}1JNqg<P^w4Nq!<`VIl5?cU!eZq1`we3z-Zt8h|q36y(N2b+>~fJ+jPDQxIH7 zAr_(|nN_G=BnyLuk}YK+7D~2^h4xNj*6Ze~h2}C)6)C#h)~NSY3t3*!gUjG5QRHXH zFycft7qZw%qzvtRr^wwrs|=wUBZ`GNF9R0TQk6;ZyScdxOeMlRizo!}UZyW4!DXOj z$ZM{1KmhI4h|@sjui7QkIm-~n%R<da87k`_MutX7PEK2yaiFrjG`i}%xzj)^QTBS{ zW;cTV&KE$sIA1{5u3$eI9uZ@qNw*I73prmv7WbI*1sGd?j{X>JN%!dCd;u->W;kB} z`X;3}!}$VYycy=@jr-Z1FM!1=oG*YyYnW@ecW>tlFn+eFrG~8Y1zhQT0s42RV%;e* zb|kJt=L_J!EfL|9Q@?(uT+4=uBK<ke7l0gy@@T1FPh+0p7>APc1wdwj^949x0A{)v zu{e>ZVtDRyNR@HE0Ot#c%gu0k0ik>^70;9jV=gbi<po4|GlEwa@Mg%{A0`b7LlzuD zE-xVPv#ZvD6mSSdu+aGeoG-xT1=u0oKza;DI9y(U5tes(0ou9#pFJ-C>jY>g(vfzc z?P)vOmbRg-{X)N$U*P8_@{;LfDwX^u(YaHnj@XB=K0fP1p-%$(B+@D9LpqaAv?Eba z{MM8~N#y$i3h5j_55h<$DT5(rp=~q_oFxf88oPAv+=*mGH<8531wNHVS0cj!VIMwO z7-31apZprK|0AcPtrCnoh?AepV5I{mKMHkDK22gdLvT)$)d-9xDXY7Xj3OWqWVVex zNq*g}E8-U9xd{#>_eByaIpT?s;!CE!<{jh7kWBd!YeSlw8YyYiMI<IMrc9ABi4?E& zpn`!~940LZ==T|~O9@g#EdC%!KlP>Tnw_2mbmip*aiY;0PFYXNYEo?F(i9<&5^0+H zLe|h|y|BsBU`dKxrcsc9X?v7=5U|--vP<im&8|;Ux{@baT3n;JSih8=dCiSPgD)O? zKS-oWPmQufBZ@p9c=2JNltwKk30f|2#KTXYv%5>_MML+~<Z=@izPR{47G@t!e~L9N zf$}DEli+l6(fD~Z{h?U{6V`cC?+|;ECcT0PMKMxNK++#sRW>+76v0|fr_!<%K<k&@ zo+L+2Js?+*UZ0sf<wafgJ}oyFB;t&!HZZ5aT_&2Ze%>e2jE7PkTy;`|;^y%4ND;Xr zhPTm^(7g8|>eI}9z@#1d>*v$FGcs8~72t$9Osq9V@<?w|bUIfi^NC2_X`Pm!)hj4V zTU*}E!;-s5UdzKROw#E*RSLi=TC6&~ICh`x%V!Fy8b3SqiLSNZ&p#U~32audG@tY( zeNIL4Tu&wUHPlgLAI(38)q~l2VXl6@7)buRR?(p);rQ7|KDm<gJ<-f`=8npzdpBQI z#)%vzwTswd=DUt0?nu7jq=?{uSkhuTRuO5+I=AWUx-U`mBoD%<eFCSW1?1}Yg5-&% zENeieZkgoKg2OsJj%DTKI3X!`*RJ_gMS4cnY1E9QfLwFLrm>f~wMFj-NaMQ&x==N! zYN7qgB=QgpWK^<TNRfLKqilM;;*_M{ffy=Hf#8iAwcDDLRsKjPY3_5<R`QnR?(l}` z;_mR)5y$O0cZbJ|mVNg#FQV=a&yQ!c+}#~MpeXWqN9MRYym{jd-@Npqa(8%kD7ibl zv^L!xK6Lf-3j+7s9Iw>w4llfNQD%d?!^=(B`Qcd@!ujC?&SkC_&JXYW@WO6(et74H z$6zpbOUdH{ed^8+51|Ejhj({)D^h2=Z`~dKzr7zG^J&s>scH?G9BKGe0H3<Rr#$g2 z<z<qIlz7a($lghhKtcrXkDuj;gh$nL{LG(sAqme{&wVcepK;bMgn#C6sFzgF`Dgx| zcq#Rqf9B6Gz;iu<f0OeONYRmV;Aj54Gok7^|ID9vBEEXgKlA4uNkTpENHC{|Kkopa zCHxK~lTIbntM>e>eA}K7NHCG(+Oco)T{}Y6yF$vp$#-puZ@lB*<hwS6=NBO^g_M7j z?^=^gUYZX@@f1?^K=vpkMC2#&4)VKv--=N69%UrI^Y;)7CFp5InmB(8#CQ3=fXMtO z{ytxPm+$jQCO^*xk*6QYUU`JD3>7_3T0N0{(uA@;QbvVTKH<{I1ME`-a|JLbM~;$D zuuqC<VUlDD@`Ip^hZ=_jA#kelTp$ULKQn1AqzOW;eu#<Bp4t6;f(Zbe83+&iQTEL4 zM@gnt0SAe!=ZF_VSI%O$c)2iIL!1N`vRk}zak|Cp7Oy*bVOMo0Zz1G8xs#V~jD>I- zU*gG&SLeFK7B54*>x@5yT<2k<WFl)mnc!hdknyS|$+aG~6dA`_nvC^i%OhhvZ24p~ zYXxMKCtE8r(!*9rMyS@B4EM0LA;VN_ONM&b+L0luwI_o;**cIx4t2$G<ov%G*HLNy zja#N&d%wNk!SCpI@;lQmeplL!cBeh)Wwa-~oc5wukRsZf^r3wluWXk~SK5d4_1kHX zeisTLeFc&LNLoaC(>|HL?XY8l%}qOFN8g&8h>nnP+Afg=N9;#?XZo~lt|KSLZ<~n4 zk1&#HQKolW-YpJ0K}MT|fm<{Uz(43^P8r2zKhTG>jdu5$BoHlfMMCt6$Eop()~(wh zD4St6V*&Nn5>%YvGrd}yoe~`>Xh#sIMC+tARgnG*mlw89u&HcxOdTVI$*jnbo_-;R zfgD82H6~oC5(0vr!^DGJmdrXs<7KT{6()=+A~@123Gb6_v_hCDWO}rs(1BACg+sEH z#4xM_q<e}1m*PltpvF3E>|RjNDiI4D7HUCKy|saZ!={^GU;{TPOR|wtfF@%}*OUR( zCg?)f{DNdGRGQC6n!MuVkS@M>7iLqYOFq7gLX~z-DUgywoCwl69SM+jYV4esm!D(+ zCEFzpv=hyf!?a2vK+?%qZzP7CC&@fSA*DpfVbP8$)!&3fI;Pcggd;U31CJvBL1ZGW z2WUW~gKs^Ts+Z{iuA4jtNXs3!(3I7kvx>A&TTeNV40{>^kx2m_K~y077Rc1|ak-Lq zekvdO+I&euPkX%IHWeC8+NMKeGi_6Op}_@#p?(_zGPS2AZ7ArXJ#D5<l0USt7DLnd zsJn?mzjZ1wkhIP-z$0(H*6v(1&uw=u@(YnW7mdpcJG$iN6g-;UxhSvH?p$=|qP!X5 zoxq)orfKQy#emK0?8Tt@>g+}7nQ``FXJ;>lY+`3G{s*uZ(Qli%@+xu_xtd%<`qBPm z02xRIk-=mL8A^tc;ba6ENk);;WDFU5a@@7ojvqf^!o=&YyZ-tcZkTlAjW^vi`R1Fa zTqyz2ek3aZGVU}7Fp&e8ga9Vr-1kbT3kM7+V88)T3xgvgM~xaidd!%yW5*!|fB<3u z2=MWJ`FP4G!0|MKf)jfDcs~Am9Dn0Yll%0A%6XWdkB{fTdvboo0XDu5A5R$vn`6KS zArAKLL%{V+1N6s9fQ<XdW?=8=@iza+$oHf9SJWGRZ~>g;ntalqMk>JR2=*1};hg&H z`tu=|p5)#YY&hPd$d$P<@0?^FXwMZ_6v59}fIB{lcT{Qbdm~1gy2F%r;&r{)Xp9f= z(b+WTgCOU6^|}In)k8!VB<k5H|4i%6#9rut$H6V3`*TkB<(IRmc@!dw?C3>H#x;V< zT+V&*=HP5pe`-+Ola198mFAU&jQ)z#+!KBt#)`&Beq~=L-+-oE24m^vI_%N{f<+8S z#bH9L%U&JlrG{KaLeZn<Y5f`&MvoqBXf&zWR6_==T1MuD(cR&H$}B@&xsv%cklEcF zn7c$}7_21(HjeDptviW`pEV~)JCMhNWZ{KM2AV?5bcLUhh>rioOR#Zx*RI|4Y?`?2 zYty{e=cb?+hIQ$RUP%){NteC%>Z2<&6f&H(D-+j(8P$~Q$X2dQXEw+TN1B=?2bqhn zaY$zzWD|u^J9DQnPi8!sc%;fED4RBAI>GOx*@05cZGQgP2T0?fPMtc_P+Zp}CU|0E zaLaJ=8GAs~K7V0g$4(Gf5wSt8-|;+VcM=id3I!z<r%d*m@vxxSgQwPo{vA4Ee~FFR zKa#7Fk>_ZJX8Lu2Yqk-b)4;>bB-doxcc50RQg`P%!DH%TO^MjH8MnkuDU3<x>h>fy z5FW&Xhs<@XG71IULmIDwz&^EbkOBJ$NgAQ^pq7{jWUg#SMbJK8p|}7uZCM@wkL*d= zMQKuF-?nB~RMTiBB7J-n0nau&qzstJ0C97})lP)+bO<$SVvO_aU}N+uB1LwjU(Sh< zetl|YFp6)Y7DX#uo~+<{G^J)3ANALqkY2{G1{iwGKAW>_jH|t~Y@B6dTJ_Gdah47G zeBw-gXW7`dYv~VjmW^_+Im^abHio6;EE~(pHw_CkSDj^phDh{%pF13!W#cRxBkJU0 zHW4u|9dwZ)tGElCi`mF%p^Mq5_-354xR?!#gW7)Rs4%RH*@ROB>`;J=ZSY8s4l}x# zO+=Q3i`hiQo?Ohv#cZgH*|3=Af3uhkW~9~UZ=G_>)Tz^^-Fn+?x8FYfjyq<|xO3*r zyY9aGo_p@S@4ox*f8fCfAA0!VS+i!(nKO6pym|8%ELga3(W1r0#Y>hfUAk;pNy+l% zQ>NT<3j(;+1aOxL;2{Js+XApy1Aw$P1Hg2|;Le$MF#z`>1`j;=5TXD8<{$?1IR+dB z!~pZ+0Kinl;I`YRBMltD-S^y!G*|%UA^?Q2Skb@|>ogN20LBCfAR7~SW}XHR!$p$` z1`SJ>^2|Joi;M{%hAd22fMQ@Yu+%z}2_Q$!MaF~x7i}i++&mM2=3?_qSX^wRCkB`R zVhE^G6cbc_<K&wyCP-b($^;Okk)LP-h-HG%W}yi(!4VP^qnQ9=(5fUfL1;4ylILhL zE(TPIX+kU$gf=e-C3yz8$QEQY6PO@bk|xU%6-k~J7XwUS%fZ%WE6X!iCK!UmG)a~w zD$_iXi<$;&J?TwFE$O+@nXVduUQZz=FhLr*iaJv@t0tICm^~+)>Ke<0NNpCmvRRps zjRx>Muw+}At{K0cOij=<@O)9hMLXR$yC$&B{h^0r@_ln+0`AR_F|3>?HWQ+jgGmG1 zmL8Nzf$>bx$4f|?frhBO)6jAVoDQZSM~sjd<e&)=f*cM2ID|+|2r(f@!*C5CMiT-X zqd4It4Z|z|NP|eeH8;l45vk=cbeMz?)`aLKEttSg>AUY4ssUgwt71aLz7`TB(l8_d z03pO{vnfbU!{8wjf~5&|_PWsK(5?bB4Aua+AhT<8h=xHS0Jt84+HCI4HVuQK0fYr< zu1Mp)HgHhTc~bBF&d4g3`@4{(&_|PuI|d9K7>PxUEQLO5G6uu}h>~Rl8T|zSomag> zt|_Tcq7)&9i2nTtgncEvoZ>ABA-KO<RP^hgy`JLlLn;{{<C=c`0EujTkS<bI(qUc~ zm?*B10HTUQ_L)1Zy{;4$S2GCNsW=ix1+I&$5rQlW396JVOd;dQwI^aU>MDT1(;QG1 zX4Wt-Z8@5a3fQ1pS{tLzIw6YOYh%c@XG1hhzPXv&7*wajktC?%m@BWk>S|uz6Yu=B z%6n9G4HyA^pt|NFNniy+P#)7<c@L6cg?f}OO}eqSD6eTQ*1-#uRC$fO{fhD!Gc`AE zMIr}KkI48><;C%aA~8OcY;2V$@fCg6T+vJkjQW_|&?n<Q)2E~^aA_I#WWv`#eU|!| z@Df1geX7rfiFSpH#63QLP_phTR9~w|B^q_AVtnV!6Jh)WXZJ4)T+A#x#o7H~lh^hD zIlEu(e6lt(aJO`JKX=4QGetNPo!u||nX@8{gcw!Qwwmx~G6xR7io{z=(j^<TH@Q>S z+5OJ$cXq$!dT@5XG`gMLFYR4t_j7yC+5M)`DSnm1+5M9yIlG@HUzwHL&hB^de#lwS zOmOjjBXPsU`^E8*gS8ixxZ&dc(sdh(^2VCHkOQO=H@N#%#FN-hTbZF8D~TxNyTB!_ zF2`At9wNfTG7ZVu{o*Iaf)P@^9L(6H%mxz~I4<6QpS0SwL*K>wnJz^v>3~m`B?gAV z_0H~hc7N~(7@ghk?0y&T=kaz7I=gs38ULR--jBKdWCbZDD@hq$MOKqFw47GZN?PTw z^{bOLU24BvzG6jb>B^O5q>MlZ3LOY^@I{ACwPZP2K^XwDiYfs7eX6E?Eh)hsdJ2Rf zr$|<(YYJ;WtziWN#ymEhWOYGJqSmh=%Q!4P8=@;=;cUt3_BCXw?1S@Bz*s`^0pkSp zX;X7fRVc6tCFL9x@0NxM$r1^SGUPQdAIMJtu!8DD&4<-y$wLSr@0wiOy82^PSAew< z&`~2OXHHb50OsdBeV<iPNY+sy9lFK`*7-1d-r7_(Swt3-VvQ#k1IH6#`p`33Rk)Tc zJZF?O!1P=m94KWx^eYn3HGl1Cvxq{}aRhMn0dAr)1-PCu+!vasC~6Iw_s*{(Ysq}F zfGqsX#6(Mzg7P6I*gaX9SM|Ou$1uAi-%RK}bWcF{WYw8a0SMwA1kd}YD@hfZOXhKW zf;>c7Q&1d42m2>0Qk7&5nR_-0Avpn(>$3p~7~of)kySBRQX<PSmTGlE{lzJKm?BZ0 zt~jBpU}PPQRu-H?BZVW9Ks1>}W+Pf;-Z^^+pM<g{$?5P{CtwJvAP<vSCr!jOW|CQy ztz(~IhJ#M<5+7AyV=9L|5spc~M6~=Jqbi3>#T>PC8DF0`6J5ziCD$C2q3>w)a4O2! zzz6v-6<tFfAP=6=2;y9#2uZFA3flz*=IK#K*T^8Zs2d7m$QKiZVPu8RF!Vu6?;7Ps zM!gXyjL$|59DN`xvFgxj6_gh)KVIl0u|yH$bQ((>=dU97lKaU0r_eDWsbdvZe4Nx* zJ|CyfUzsR7xJnjg86J(`gnYB0z)T$Im-?WEN3kHwz|^SeGH0X=Q$6rNnJRu!g;bn1 zCQBu6^ptev5#c-$HCz$uLKY&G6m~XFrO%Mvzfu=I895`-lS*{`<vwoScOJ!>DOGyL zdCT0el0~>T@mbBG`_V8|_=?gBDHS;s)j%VRr23#eheXAk#U|xz;$!6&L}44JKrCJ6 zgJkxJ#0)hrFNaXtpyx%D&9MiT>tr=i6BE+hx%1@KM;Vj(ys*4(-_NW3MD{)^Ma;y= zD?Qj>b^r_f6w+}M%RQGeq$wkqEPGSc=80sMfRMPeT(ip>eJi<*+<r`=t@vfpEcZz= zpE9&5C>CAv=2GnvWMzR|KiEP*eb#Gl&RmYT9!-|)=4FkluF+sw6wf%rDew#@f72+d zG?=FRSmxw>i>GjM^3gksh2z5DTGq)CcR3su;}miWnR<{HL|P&X%`OiZ3g;wcvy+>5 z^Kwd2(aG7))}-7*Y|bI_a`@gwy!cCa@C?p{7*8I;lZwoy?0BP0Y`csSJW=70b$X6H zWyI43Zwo)JDklw1&&top{dlDC=_#D9eE6;f%>Ss;>6@EgqmScZg-_ba3prKon<YEB zFX0X>*{A8J^Y-xnMS?2M5VaM&oYhz|e7q!p3jS@IX9QJ5sgF?(%Xc@vF=_-P2k4wP z=L%1{!N33lO8fY+#Sx$&K;$5~j$FT65@2vJ3kOU9ukuVv`9GOp)q{ot>2+^YfHFi3 zcFx8uazz2E5UYEWi<j+{CJQ79lmYN&nMRAVi_m;>c9AYm5880fE>f1Tvx}qw=IkP8 z7g=_OZ8JK%NZxwbZ;43r-`PdZF47mX2&2r|Mb0j=E2RTwNx&?1b`khAoL%JNMJ`_C z;zc4#!b41U7>5U?T)YTFQy67(@uEQ3$Hj|8EY8J?T)Ze0G~uyG7cX-0A~V*&en2%g zT;<|LJX-T#AYO#IbhI{6<5&A@X%(%6G`VuJ26F0FLF(K}NJCh0a(PL~vSmw`EGb^R zc+tXz3+B(CH+RmQ*|TbEYqAX^%TM93rAvy77cW}0aKVE4^I+WU*|jxEH5siSFd1aK ziOJquu^cCZL4nC&OhO=tV<3@6jUg*eDFoF_b73aHE~&-@iGpmhk`KZY!I(sKf-wTJ z{Vd$x=eRLOnDf-onpDgXh{Y{GYcc_thfJs;YzXB4F?QS3AZ8y1F`HYR2Xo*6Nj@YJ z3i+Jj<lBs{PFE+PKcqYgcIp0P`3D>)lgHJ`>eSi<>u-~dG(c!%*(WFyMfbdFzd8;5 zA@k5+6Qq=to|bH4_(+9W+bYl*68@NSk>wxS$N-1d=C4gwC4f?&3Bbf0F*#>pvKEpG zMQ7w=urpcu8KN!lSesm%2c03ukf{*w42f+(<3|P>Ok1m3S0x#Bz5t8VNp5_qZ~&23 zwW>;0CV&r+zsL|Udy=J}YXqwDtJ2UDXUCqJ2}l=MHA~JTsyKaRyGlsPi|t2>zrubC z7gV-o{d@x+B;GNJea3NQq*u1COjRVxbvI5lpY{umAWU14tRR)GSVv#rXLck@zU25V ztmsgY1ZdHnNb#2px$^RgHWjIINU&QCiH0C>8x|yXEp7xF%Ard|0d(WgAOVoE8M1qT zCFdn><(<ltYaoRV0NFjrlCL;YYv`J`<tgZclkq+f(GrX$#or)KYw{pNFrW2-C>NW_ z>_Zk`ShR38S>1U}5}-u)Ad6C~+pI~e_mHY*%mVo;i^!^0km^^kIw>H8dn8tMW^W;v ztrW$@X@$f(U<r&bORs9ZIt`;Cxz2h|iyMK8GQX_bswBL`!H^WkNQ4Y9#!tw3PLy?A zl@ep^*O^5t{gvsmR;$uw2>|Ug)FGE|sT>VC(}|T`%aUwf9IIbu7M1#?sg>>FWrB?~ zUp6j+gxf@E{>oHYK6?%6Z)_~2!vR{EMJxOj$<od%lcfoUF~pES+xaWV>`kmlm$qJ+ zhL?Pte0gC}$#Ngwb}LQ78^|*gs8WDff+=gM6&*@b;uWN#0S_qX6r|D8lH~Hd6?vt3 zD-tlyhv_(pWRbrt0q;7mNG?wRJbaF5Ku+3He3M?@dPN%E@Dcn?X30{zGyyNWEl;W! zkixdeU*f~_R7tz#sglGppMk>Xq!`~Mmlc#GmP2E2e3*nT$}BF%mx-mRWgSaW@WO}L zA;AigtbF!74+iBeOQ`3KnD9#AWnxKkX_sY5c;T}Fn9b(1=jo+wmZg>^#Ph_$|DU}# zfzso+&O^Jl?*8}xpZRB>!K?rV%K#YcE3pvVK@b~BkOUWyge2OOD2h~`<T#I{#T+Yn z&Wjn_i5=TH<~g>HUykFLC-#ez*m>eRdX{2Q3$<9X7Du#YTe78?ltd8(X8M2Mt?KIK z|Nj{PByCG}%{lj<?y7rl-MV#ayLG!;fSEj}-Zt=dg){-?2)V=RRsdg~^WRo~yZ<(+ z)A{|;eP`KO0ao%sb#Cx&3dtb9pB(i91oA=uTn|#EPF*;Qa8-7n&{^uiB4h&SEOs`c z7(Jos<OBYLz30?}@&SQ@BML_22<Rd@^+5PwcrJWUAqx>&2v;&W@_zq;CQ>C*7w*H` z@hOstgP%C7?hhX*JQyNNoMrb#cb%aqD}ImAng0EK4=7|nV7G>eS7vSvlU<Y8Wd=<I zZVi)NnYcBKTf;25LUC&t5wAsPS?<;_ZVltsFmU=fKaBIkSRaV<!_bD^`C$_8h4aH? zJSol(<NPrH5dARvJB+2L?z;1i)3@J#+pVWgojh^;*s)uV-hAZ9O*h_f{q@&fd(Gj) zS06ff;K2T?_U+xfXZNmMJ9li~wr%T{&70>pZQQtFZf^a$b!$Nn2DgF1$rE633o*Ef z7+iNP7+ie_4EA3I27AC@=MFH~3I_9Fuwld8`t_hE0l>fr00u{I27?=KAO_bE10w(! z7y-aQ3jhXMfHO-AKsC6U80@DSEFl2sFC_rgU|&uE)L>IAz?rN7q{55_E+GJFuzo$x z=SYC03A$-uIRS7`cSRbYHndGZ0?+~Bn-Ku#chrPS*gzKzv<aY3DBpwtbby%HP^S@I zQUIcF(}3;;ZAQ3c6PP1bYs6N7qe(BglmPd}0wfyDb;Gn5EF}OPQ^rk5y(lNZjnoY< zApp*Z+nO*ZKspXAA%LN8(;yi!X+R5*jsxAgp+09#n~=tlq!)D=h&s9<9der{Bn@_q zBbOYAK;K=1$w0RJNN5g<^PRwIFtMThNVq#Y5^7&?&IWT$s7KPI3A+r%M4z)ktHER_ z&)X1<gjoUN<Nl-qSq&ylm<XUpQW}bP+PMJqNejdSsjWb6F404IVnd{X?KG5c(P0Wp zR$v($iUqLo3QJa?b27`>P)wh+K-`IJ6Y9w@(O{R!jOeWb;!z-Ofm|m@G?;5bXu!m2 zBnn7v*iI!$CrC7yYeLXl6EvN$tpYg>CX->>gqA+5fXrl^8^?09aomKOUMrxz1+o?B zu0d+Tn7&N`@hD(d1G#Z5uR$D!CtV;>KwAssOn_`Kqro^(#ttIJgpC5)E0FYJyC9-Y zK=ir+v;xgcn2y8k7078&FQ_u~Sp^yeSQD}p$eDoYg@!(DfNTYhgWh&RYJuE(C|*$I z=(7qm>$znsKqg@6bpvX8W5Q_*S`)Ghx?CsP*+!pLAo^ge0J|XUQh}5{Z2)wE)P&;& zr8OaHf$T7}EIlkBRzS7|auw*Hw++ytfbK1DKb`sFk;Hou*m?I0w3N{dj0qVHbZbKD z1ZE`9G57<+Aln4S2JA3E<B(NByeNhNrxIitB)wn>9oTM=WAM?81X%{L6=ao=)IoP4 zs{?lCqof19DQII5n?YwCG=ux--7`=kJM-~8gPay)JD{FqcLwMQRt0#g#@!#YHPB|1 zbVOrE89T^sO)R}BA1?^G6OosvKTUSn$)HUKx*2E?Ni|>@d@f;NEHPDLhYoZb;)N($ z0hXTK{&^B0>B^vo4!f#g3Hr}<r;qz`Mg_6_q(HnBCsqKv{WDqmv@2!?qj)&hqc}An z-prDr|HFhnv12qrtig;S?<Mt_>Lb=OE<RSDu6`SNtiQwrG_?^PuQ$=Hw>))hK*omS zvh$+jjW4&dQ(vTQu`N8O{8)Ktek>sHA{}Th6&=qMYVt27<VoA5x{s$aLrsNS(Jl2? zx>CoZD5$9iKk0k`$+Wk$6C#;1^rWp<uFeNwHGrAd`2aec5Y7kSd;l3|CXKqOH#EBi zpHFv?))9t9gZ8F&u_2mq+T5|p2FThV)=k=rLJPP24py&yX~mHhz-(a1jg&0EwL2Ko zR@#I#W2WBJbOQ-@te(45M_RlCP29n>Y}0-u(m-zU?R)@Q16aOhy*SPXpdEP`8_w=t zv<>Du0rue90@E!h9Vo<oz}m32!QAdA?gX@l(+$w+1aUrqWD9Kf4e6<n9Y)eUFvbw) z1Bkcq$=;8A2<gtPix(!hg?Byx+Ce%WK-(r3^SSc@*nKn|FgqWBUXD2*fQthl4Y)V} zvwhLABzF5m+aD8*lHa}PSP(jWN+TiC?MrfqY<>UPV3Z~OK*<4CP5?XaU-B4!qdkCf zaRAoy@8STQ55OM7+YMlsSP~Zpprh)rg>`WNaVSjU&v!n6<U}Lu3GDFXWzO+2588mZ z<QP3Y26sMyj4RW{0p!lmcVP%h0|{IlKzfYr;s9J6!1sL|06h=zg*CIYt5>aBxpHQD zdTMfVVq$#7im|cL(UFni;h~|y!GVGP{=U9uvzPU<9^PPeUgK3>5oK2T^4c}CtBH1I zW_pTf$BDL$l=ZPD>*YPH!DCVm($BA5qiL_a*e{mWqF62Rl@|NC(z-WZ?7Hs7j^!2A zwYKZtXl;4<^LSjMYjxYo?Q6DcnUz0F&uY9eHM25X|Ai$=ZfoCs$*d|WpDydCMBZ4* zp9S$!b?#a+86~eX7^SGNxvyNR&M;^;!1}43I1D<q%Fmi-Q@Seq5(V?h7vm>mmaenz zO19)|e_)l*=!ZhCMB8bdS>^NbLov&=bli<it+Qo+vSJ^}$yXbLK$o7}J_vlKVjsw{ z)E#3;W(aBT8J|oZ2Ld%l5sU<S6uG>z*{07W^-czZ{P?wG*{u4B^jV~Ai%rq!H-4$n zk5xaFJPVcWo4RzZx2}EDwi&Ck`H!2rw{_3uitp{Qw)%-``Y2Ym_;dhXvUnQ1KTYIa zi*FzM_0ZpLGi)>I?uraHJ9B(0^Ay!`V^cEmWUYqPK4u;x>stJ!?S|Dpo_mb!a;(;j zZl>)%Qp-QacDbfw+wNmT-@WlJ!**Exlc10Fhq3As#?z(s*jDH-F8}h!*tGdRPS0)_ z>oLy(W)+aNo~}KQ)jyiJUgPHgyL9{|R~`&254P=vH>1H%)-y4Dm!-k{c>ViCp9=5> zRJi?(tB_3a!x``O6{^tK;77qA|1f8E1i7RUvc?N>^v+UaNc#}hW`!SaWS<7@+Ksy} zBJI@k`;FN3M|PafKA1qdtza{DX#4T=#2{}5SZ!ntxxEV6B`|66!?`C~m#ag^IBdES z+xZ7+Gvw-^C&7+Yc-vUWdOnamNR@r4HmO58i+1fyy*)jkk1eVDXt0bSP!)b343=t! z%c{Z$da@C<>0E5a1G}AAdO+{(p{GzXodK<Y0r3iK`J-TPsVd|Rp=}NIf%M7bbVyDt z=`yOI>GM@+8&H;M1=jriUK`BU_H1;{ma~KMh~3SZDgCM5%oBZGs&MJ$So&~wJS}$i zg=MSo;aogoY>6H7TGuM{_tCoGN$>YGi+n@24eZPJ274$Nj|e$a?A&5@c4(rHdt-Mc zEWaZDf12?VS^4hRp@h6C+J>ZUx!b*W9pu`56<^E^4ofbTv#U+x=76ul?cVc!Fl&D4 z;?Ste?cSI5h1pez^;o#wyWN9f@2@9|#QT_8yXAYO+r7KpyO|)D@LOjrC)?lL?%nO) z-R?cV^}RA5lH0x0fq~n-yWM-Q+r7Kpd!O6AV`JFupfJB+r)U9Qc4zPKXI@rhg*$s+ zF0LcHq^CoFclN$i{7z;c)ZQW8+54rAPuov@Oq_^2d+&bqzw}X!b;P=}cX#%l_#fJi zXyEy4Kj6qjX_<H>clPei-rd=|JA0=nS9kVKXZOn<JKN)wrNR;2?)@#;y;JmjR4VeK zD9BI-()U#$3!=;!V<mx9fmG$Iw$v0i6crw^5-af{=yJ$9nRsNe%Y@ClVVA+gl!(G0 zhp**`${O1+F@l5;Pba7H8SD~gWv+Q-OQclMQI{g;ZMak(rMBaSNJWV`zJy!gQKd|* z^ED4mhUK1BNyr(z2t<(TggDvsv_7Qo5b5M~=qx$V>78;09F39Si=^Fr9#t#di;lBw z{ZeT|;d7?F9-Z>4B&S_s#f_)L%4}r_h0RH&wrwo=Laj>jbrVAJs8(G{4q-FfDM_h< zo2_-HLc&a5r#PJR8a)AE>9Q)JJX67}QcPoUzEH0jS+nBUS~4EhYk7&XoO9Wo%o(S+ zXVOEKH+2W9>H@E~^M>`r%^!*gj~3{M3&@(<D;#IrdYOi^l4<6R409`4hIu1lo)yhh zI}{Z1x)kqxu4PSw5NR|3Ej?}1UTMQQ5b0w)?Jebl)<!3oDyJQeIQwFur$J&b#oQNB zPh&aBePJTmZF{!MuHyX8nwz>&{&MmwVV*TwioX;W5CR$3A=~4q;Y<-yED*|awU8pR zVcqQonfCQ%2Bn*_NSi{~{c*S2(!fj@-RonENimixg$sJprMu2dg}J!U>@`(3kJ6+~ zpPDll3xs5!Lr86l$CDIwC@$QLn9RU#Mzrf6HzUSN3)`J&iQ;C&cs1u{MEx9M`$S@= zBR3<Ot&~~4r1M?7zTAw6LB;J6vkOYIw{?3&w@1uwA+r`@HlS{gm^gXd9x=ey&Fv9W zZ^m1{M<mZ_4_oi`vULeG*;>y+#IY}4<E8(aY}R8u{pGk`?PY%jQdW7{Ux}2JUiMcZ zWyUkVKK8^jo{yC2_%}exv=<;{D*g?TGUbIxnT&r6NSX8sNSTO#i%6O9ibxrce@jRi z_v~+zt?<f7vA>bvggoYDF9><eV;Gn0|0Wy7JrSn=Ir5uq#3PStZ|1+ybR!=9Z?a+h zr~F}0>h$b?N*_YH`LA^TkeB|a^g++p>4UC?GEJ4XjB6p+hc3Sl(Mb2V4Fy&7!ypI) zx+uwVQQwE5U+{~nB+6w~@C(Q{_jtllmJ$lWh|1C?B}B5Epr|77b0oavBR^%zN?|5n z6{8Z)luQ}KP!)?AbXhECka@9^$z#P@CXb0~!bKH0?rfp5Ad|cRhe#@u#|l9vFDeMS zB|=hBLD&LRSW3`jSWX!5u$rW^u$It9p{U0hLC_N?`$5D7-ITyz;i$=67kw0}uc=%f zs3biKxVg~+#mP`njO_cRI8FKG_)7W}-m8n?el1R8emzd>(J4g*r!jB}s!#t9RKNc3 zt3mx=sv-SfsEBcM$#5`bt|Eoi@G$Z#Qt70!^!0sFhWfrB3;I5gC4G;^*Y{FZ^}Uca zea~b=-$xRj^kLo*P2AQ+AFiun0M`{Ui0hIV#&uDQ;F{Xb8E<OX&UmYEAv@!>!#M_) z%z)?@-N@@kUX0Xl$;hk2S;`d*`&C&Jb=km7*2|lskN1lKK8Sf@n2+#LHpa?Q<H)+u zIHJk>L_Y_P&^T-~8bff00urXz1c?~&0TDA|qcUc*R8i4r*`lOOvL&$*hSd!fL-JZ# zvhqeFh>KBO$}!?nm4wb$IY~_+Bxy8UlDRTu4<_1-PNE_ZYzduWvLS{Am0D64LgyNF zw(Efn%1mxM?`W_n_3Ex${rNytz^ac*?&K}{7X}Jxc4yUvUMFTXYirH=rOvZ#vqDAv z1r;wi+gqOZMIkb2ZD}df%Hr9CcqMA{GF+22Y`&JfDVLy$nxV`Qr50!xytWu40_%;C z(UsdmFD;V6jReoC105q-K3i@iH0zN_x6AHS3sFy?Ita*OgG{PLXN@qh%WlhD)E64Q z5A4o5@Z3`0sEO63PBjaB%OtA%COI#lpV<o-R9>T6n~GTDjcU+QyI_$*351yzB&s}K zTBmA5L{Pk_OYx$rk_jSmp<h|?+t7F=Y{Ov{vZHkKqT<bs6;_rb3A@jt<o7q!DG+z2 z7wBnqWHPCegc92sTEN?UUcyQ@BN{6ea{06$GK*H)+t6;t(hBTm(mY;_1iE9Iy-*Y; z!BUHO>p&&9?`ix@UdOU9OfrKoa$`7#Xg7wp4O(stcVoC4!|iP4#&EX|j~DW^CvofW zrdx-b{fS$LyLI?mvJTh&l(7|T1smrRY?4p0X+FbNvQ>OFn`LX*TE330XLD==+sHPt zdA6BtVO!ZYww>)@J1^|oy?cy^`8b>4lWdAlvl$Lz24W6kwhS@b6^)L;PXpq7$!s;( zB@;34Qu6CNcJACYO0>L9YOV`rYxpt+U)(to)4l<r;aTEcB(}O@>v&gPkw=Qh(pojK zm6wusVf*m#2-D6i-bKTylGq&2HBYo{7^f7MkhNR8Mnef<zC<f*dz*4?5UJCRsBB{z zOIS)Zi(3YVaG(;4c?AubxbH}zolV$HE7qI0eB)&mvM@g|Fvt>b;!<swRR`Y~ZNf)8 z(z3`rjeOLpmeNMlKR`Z7t3q2++7mmiB-+@|v?DW1w6rG3Bo{aIX_{2JrOi0$JZ&yj zE1ET6)6Y|VM{{`Jan{31Uf8S(+Q*f}_02xML?Kjv8cgzr#}gm!a#gn`7p-d=$8hS; z?PdW+!F<ia+TLD#pC;>>wf(lca>>V<Zs4uoIok!O#)kdknjXB9JnNIqn|@xY7<u8< zw%k*Xb!zh2aT>1m%jCScx<N;;+FzbJm-DquIkTMKyu0a`0pEDFJH7Dj@-D8dH*mt5 zsoT<ASyx|qURIiLqM165YjaGk!mI(>5h-=qF4xEl)3q8{rY8&CY?@f2^d%1tvg3XJ zoWkl|#OD;oUKS^-wbTi0TRy8DGeq+E6hX$Vn4WszWLnQLd_0<{5?Wf@b|W=CIjT_1 zfIgG3UYAa83*!}owj4LMf{tUd;%D_M^b8iQXgjm%tRowPQ;<#qmgB_R&I;Puuu;+V z9K#$Ak<zWF**f?09N0)y!ikPuUt7aUD+CrD=L1<5tm|Qor58h;rwb`H8%j=U@&_K4 zJQ^yRqniAIiQ#}~g=CA^PEJ;*4`aF&Pu%%{J^1J(&7H(#&)v*;#^W=SRA<&Ymp+LR zeQ-bPla@RcqAxm+VN%=k`XaYhz03vnCDwm#t?JgQ$+9!QP;+b5jy<qjt7ca;`Hj9? ztGcynev9SSs>8JEb!%0<!gFiY)SKh{s$D(FZmpX4l{>#`;=y-*Rp(c2cjP(0YTmEz z{Hh{8dEi6NuiEbJb$(UnSG}ZPmEr){9=4b5V^^{LpF42y;GsiTUw!!SHP>8w?RD2* zf5Qzo-gwhZM~>Wl^U<TX+;Z&L@#7~>oIH8z)UCJP#%^P`v(x+zb|>4-_IzRQzI|6+ zwSWHs%Rw{9a)=qQ<Lm@G$xg9b*=<}icmdG_d-m+L3@%TCl)*>t*tv^1Bn*rMaTT%> zwAaCi@QKq1E69qFRKY0Wx=tn7I&jnhN<c&e+x23$4woT<)dIimBinaSWJ4-KMvGR2 zP8p~nj2=IB+qUh7MNW^GkbxaDwcw{da_ctB;0k51dZ5UV&$ZVgYYd0Un$o6VN7&8m zD7%GZ;IM{|ZP~i@%4NuK$i$|wU1W~dpxFU-kR4)Iv%~Bfb}hS(UC(Y{H?o_I1YAq- z@e`XjZ@EGVEC+TAKlYL1^Gh<wD<Q9iBR5+ud}h=9@+@+FB3}zmdhCeMxwIB|tOb5F z+PLYBFkm-wt;UZZ-LP@vrc2ep4hzPh(<<;I=WpI%7_>(jU8)Y;wq%!BA=4+@ErGXL z0_os;>*waKPyn8o5*Tz1RkFqNB@B^kL;UuQ>(;HmlH#-S^Xp%`VQoy`ZEwvnCbid} zdIC>-LN3OOx5ap+)EpB-+K=MOCqZ8M5G1yZ>j<%wnx++YfG53>UwdJ8&6>4q*JWeG zx)t88JFYwNg==St+-{rmrSmvGEiFAOJ3qX5&Fb0q=r-QgciQ#FlM%$km)J0wY{@){ zjH8mXg2(kne3}WENrR2@<#IiTnD*j&DkhEdLklZcty)b{bvC#y4UFTtkUXAgY_6MY z;n2#Jt0*KdUoy|c^JVpAr6%I@2WMtLY)ZDlPPXK1Tcu+2cm=@@T$t9x%axq!%ZeS> zIdlH9RI#bdJRaxyRngQmOCk`n)wPY3>dH!Ns=IL26p^M8N~TmB&1c)l%4=<d?_JzC zIh8#Pp+b#iw5!R=o77Z?OQt*7Y>B3AtgyBx>3SmW#6(8XDR9;jO?i1qO(ps6h4G1r z$<zr+AxWLuvF&LDr7AA$9v`1z9VIR$sU=+8wPKv<fKVGtWDCq{#z@Nbj2+idAIN4S zp{RaTn&~a35sjFpCHM{<4v<FKS#{cGFb$Zh(~vFfh=W%7L|U4a(Ug{I)3gHLwz%Cy zoMsENZIG8SSF<Eu)ReTefK)HiMl>>N19>RODBsw&AQF#iWt0(Z)nTG(fL^NitOm1n zTHInnOHG89)k8PwNb7Npl3-1%0~7sa?2v1_CxzQ~YKtb#7t$^m)h3$Hg@oErQd5d; zAFi#zC}44u4I&j8J)7E_w#gcTmMab)HK&<WLbhFuP-La19+3$GH7<p0Fk4onv`rQ^ zAZj!p%V|om66Nc_=F*^~PI<EOYx~bUmQJ-zJwRNKTU?I@rWK;~i1sAr=27=7b8AmV z6hdEI*Vk{KdC%4~RSnlcjNEiZ?Py5@(?pvfR%~b`S@XEvBzDAZHwnkUW$kF0^$fV( z<PzJ_<@LzoJ+<3S(stDCCiBniq<bQ>Bct5~(_1PAzlhsS($h|61!FD8uG~}2x!q)b z17Q}U-Sp*llXjt-#@puiXl#euO<LWg8#T7o?Iz7Q<aU$v<SCzbyGiq;5Qj^EJXLm6 zM*b$_A91@$cQ%<G(Ar&;JDX(YoZ0Or-EMOE(^Ypi$&%wacC9;`bZ3*fGf{hFMvh%~ zHkt10(xZQK9Aoz`6b<CgCeydL<oCVqY*N1}Cf)M7vq^o<$Tz#Q$!@2z?rbu1{QPFm zCMnvL-^I`HyTv{HUU{E98{S`hAiQ6m75A|_ZH_>WI@@=@kJN>G@3`Ymgt&r8fQYif zv!(mPv+_Q6Z*=+&b_Y-B<h|;?{<G>naqq(Ir_(H=Q}+h<mCpwE$$J;>x&8Lj6gNwB zLNoR6?Yqyvm)%3bq+I6+6esVN_k{PB?hEe~_e2zKYocX^CX;uod;0HH_guW&gyQmq zP@GYBhxZik4e#N1b41y4&=FH{r?^WZukRjpH#?c;2nZsPQ@FcuPk1*wL%SxMD>R+F z%Rke+Tb_xIpD>v`W-7o`-Bmo}-(5KK`dubAn21fjI4$mwclvkro)LGkV_XM%nmlnk z<*7T%cd;|2yBLBn(_8^@<!O0`e`n8K{Lbj;EjF9Sj0LjQ9fNl+P&98oQ`{zQSEqwJ zYIpKGE|?v07D3!9Zj(Uhzk?m&I4k3~a2<atz?t&Y?ZN5F9sD#ySfkA+!T3pme2M(# z>FCCr+OvhuR=0(>7f<us7bsxbpipEcN7cj$LXo%nw>56RU;=q90*OFHh?DY^y0rxP z<!$VG3T&j<N`5ofLJD9=VEDJzZexfXH2EAsw3IJ&5%Q!u)pIKy<)ry3y##%Ds&wlD zMWA+~h-2coJmH_Low|_5XYv~;Jd#5Sp-YiKDS!(*Od)`@OCSucG5ApdIn;6gMEN8g zDs^HAU`SxpPB4A!WH30wafye}rHEV9vEX>&#KJ+upr>qjQjmZs@)rMC`S=C1XX``~ zN5st%NClL|5754bYk9an<l;97T^iv8z_Fo;7Kh^?jA|tyk-S+QE#H!cFLE6^$x(B{ z5gJF`931s;S)j=Glodr-5}Jt7<Prbo!qE#RzCDY^H5$KOfSbHY9VyTOu3lnO5FXbD zbR4?m*9w$LSn4Jp%<MwkVv+PBE>heeZ}e{pk3_robfQ^i;(7_R5KXs05#K2yX^cZ- zT=NsCg1W&+sT90MM>@3p=li*qjj;GN0<uY9g*URD-LZtmlE4bcq7dkq;?aSc;U;vM z@>+SF0=H=Uj&{VfSOMYWwd%Uy`UQ$x?~W)?3vpNiF@U9-uv8wGOtFd_^$@xq;%W&z zg_0?ZokG%5Jg)Kh0RgQ@@Ke|L*G5~mE`>-81rX)o;F^oqQc!sollBB0Dim?i5}1k< zjX+LX1lpoGR84sNDgot4a8$sfQ#Kys(Hfd#k74ix@B~DZhk~mkbMW1XD0IPuC=V*= zX2G73r>InI!&5*;v0nmJ9-=5P+TV2IiM<9-9Z&};0y)K_GaRnfC?KQ3llv8nE1KKT zj>=<HzFTNid6lG=(UERhmIhBiM1!Y*XSQHGS2W=XR7Ge!xldiSxPRUHET&O7-zId) zLSxFklG+*pU}?!*SDK??h$G?2Jrb3sP{D3^#LwcXy>>O>)){&Q;?@~%o#ECQ@mj>K zGu%4Etux~FgIi~~b%yh2IDdxoXLNCTIDdxoXOM@)`7_8tk~%(|KO^g>AP3Ulv_FH+ zPQ<<Z9(FfBgX54p*&XaOyB%j1x3W`TK6&EA@#DvCx#j55n~xm1>Bbvxxc>U<uD$k} z!-uavbnxJT{rj)lx9?sCVw_2U7)LD$@fS{=T!#3NCBF9_rinR-sbn06pyWU5LVUyZ z*Ij2y2Jr!1GH3;kHsF!TNsZTMoM6XaO2oeD#v2UrHHWW;+(dlUK23`gqnyy}l%f5f zOVL7XqP^#Cs<0^+2Me*b4DDB!p@q~bsnHeJiYC(kdHmS&q`FWXx<JeAg|cHf5jpxb zYNWQ>8b#lI_Zb{?K~Geu(Xp+oA^r0<QZ#VfMrUxCr3p=$h(C;#M1)^EdUKXA*FI<1 z85t9r5^?;bTZSF`Dj8I4QMzfegjbz8a~F=#bS-hlmFNc%kh+$59_q+9$QC;(?-Dt> zv_R6%a&!!IIQG)2p&Ig7P($|@q}6Wa-6>-#lG2pMV=4d4=p{8hqfxS-J8?3H78Iyk zXIbnB4v}vBE9z)4ciq!slfCl}2?-4qm4!E~WHdrl-|Rwl2Ttn}B2z6KkHzX>H+`K1 z>?rDvJ5Cc34((7YBC@q29a2f`26p{l(@3DZR4gE9WI{vIWeYMi-|C<_eY*mU(B<Gv zPS*%0Y)LuaBH{Ao+>X<}3`J)tI0?J<+oU>e#H8}u8A#-<0+kW5VA(=&l8};MU?Y;- zh(Kxrk_zvXfmAr0i)+uWd)YLP9tkx8yUhmy4h3~Ja0ZyEhADwv!w$bnLYX3NRkx~B z5)FxyK(q<rXA8io-!<PcmC(KTs$1Eu0q}9~2z(L<$C(far!Qy@s=+I^(gy#OI^}C@ zoF!`PcJAyjPTCH=M$(|hr%r|^mF6uHSyJ94JG=UOMs^HjC)G*+ggg%4UyO{SO)UtH z5Fz-tt>C1ZeJ2Vh)Nu(ZaOMb^2^FWET4uu+r-ujGfr}bfod|$SY=y=(G8ndbiT52Z z9QT1qTt%!2oIPp*3?^~K+1yppzT@(Ecud|Rfr`UVD2)WjGBv0Rn9`0Fj`=_o38LkR zBS7ej9Xzk~wQt`om0J|haLlRs5gHC8wW3UgsA#sYa7%Dh-YgR=Q>tZV1YF#=_h{v) z0+xt*5f+Y9<01_f+ZXLU8XOI8RzSm<=M6ZsjEm%2vJ~y+^3DDc2_%sq*%G-{$-=(9 zdymwQsGB7C;80WZArw477;6o058GQl65OP~#9)v>rX<6JFdE30$j51>7MSw!f)rf{ z<wtvNWH`Jm-l#N^h>=V&IP8RmG*azG{|0%z)Ld`|spUvZVSAc4DC82k$u(u*tP$im z>%6{vLwLPHK91frHRW6Od{6K7{&f<0IJX36n}?H6&_=tj>%UIvOdMDulZs6k?`GH5 zt_!clp(9AKU{7*!;JAnF?!VSY4$+A?$1r8Pqg~eoIH@dMqYmSgQ4`|0^D4^5sVlM% zv%`&Rg2M`#M4QcIy9N*YS4*Vh&`c9iX*g@#6<l37T)bN89GoPAoz01M9%6@@R|ki1 zzy~56NG4fqXLRt;&><fgL?hx19NF#+4pt6@2h{-_&uIdjKJKRUXvYD5p#PwMKp}$& zYz9td_m3h~A{Fa(jgE)jc7*$D2g3bIr-~#s+J2R|YG8kGl>{=5_`sWxagw-i>?*Yn z2XAp2P8PQp_BE~w_Nl!R<Tw)CNon3Tw>-@+G2QaiEl)FxKes$}%Tu>Jb<0yMd))HW zEl=I@)GbdtT(8c1>b$3k+s}DVo%fXdy5w(l-c#p2b>34r_OcG!Xs`30S`R6CSDp9t z2iSW`2mDWZzq@zO?%lg~?%1(?+qSJ+HgBHav}xmp4Rh<)ty{Zh&Ft#ct5&U?nVFuN znw*>%A78OzY;<&FWO#UJXmD^~pufMbueo>69?<VJ^jkL1&l~#n>(;JaGdmm8PZRwF z(G!F2^xL;>g#bjqal;%0F!ZZetz0=X9n+5+dSal<XZ@`2$?`!hf~f<sKpkQhwho5H z6p7HS4tt@4U00xku{IqLeX2v$A=aU-gVEvAI@o9Ep+o3kOQM7Imfq?hu7K8IR*9gG z+n`;C83pJ@?5+Sq4+T*9i4jm6So$_2Xj4E!4<ktFVMMk9-4rmA8W9ehvJKExfnALt zwn9yxYk(`W085`UVq=6>0kEKKFUTt(L%&o5qzdfP3p(g8%Ysr1xGZ|D!0r}A^f?3S zD8J1D+lGOCSpzT@Y<fV(f|gTY7y6C{?4rQLf-XtleHcm<xIBI5FqRpHv;{6hpXmYF z2FNS0D}8<#?P!3k1;*`{j9{5z+?KED^A?<r!)^4*2w;1#o(IwfOf1+ca9MiWgLDJt z$G|sC-_`(BJ_cZ0|BU?B0NV_pZ4$Ul`Xw9i4bf*BP<J0aiRxK&Df#2_<B8bJ#Cjrb zqsI)QJFp$WtO0kU*MqR`{%QG^9?Jl&KTV%CpmqZ=!-rl3=v72&f0s?Kn@>+bdi<~h z(3R0+5p$X4=M9KPzu0{A_^oGP-Tyku?_7vr1Tgei1H}{Q<<MtG06qGW`r_ulQu<i@ zSbf@j^!VAO{Sx_UC1qD~+3Lp=cubEOJi89dEX1-aIZYo|KW@G(J=T%5kkkW6u6!$i z(SAmKvH9xpM~@$uN3UByUO>f5z<3F>Jbi3@#(HA)wbNq>LrZ|J^5^Jv?}=A{@d_wj z2Va^VOK=iDUIbI~>GAuL^ceb#_AEW7Us}b-<{Pi$lO>E<1*c1Svi+1^7jNj}=D!qu zj@*c!QC~cK#Orvo5wJS}GXr#?kHyb4-*WUB>C@tK>Pz+^-OAs|bl?fw#<sF8c#Zlz z+r&1q4Q%ey#{6^k+m(UQUY5a&M*k^;#DKaopw}8~&(a$K*m|~(tz~Qe!tBJ11z84q zAHYV~FdKS(uv3DR!%MW4Yv-VMLdFJ&!@?j&pXEegvurh6#a6NzHvO^{!S2V1!+GLB z<8QkbZ6yqcujeaaISk{QFc$}jL8=8FH-lyHC+&5}8!{V;2IDI5Tr*nwY!%oPn`9IC ze$fgx#zu`6*&rzZ?`F`{?WJFuI<ms!jRT1d;S)2u2`^2K*C=c?f?r<IJS%uii&r;j zrSZ8-RT>{#)~3S-ofCi@8MKDPKxF3NbOjTSK%I_|bow-o5VHog^j-I`>HN{f5rRb= z<`Il!=mO3OfLXAM7e%jNwI?aRfTI?O7vY%(=-5MI2FC=xgd51xqXEbhrq^JdZlwGc z$}XU?<(me?DkAk{<+ecDm6oiaQ&(7~{44UJSU1XL(PtIV=0+lV=LAScfP4emJyhC- z+byu`Cf*p3-Gu8Uz)}|2mEJi4$QRu<1}AIqoCU}BZ%6Q@HqqGz%<jPkE|WgngWf!S zW)f-J#4ja(T)uMxBtvNIMKbfRZhq$kFkX1)1hC`pWjGOXn|S90pyi8m0yrl?>O~+w zM0OMFoB&;22+j$R**}@pn~Ma<>;TdQsB;2X=U);|q8H)0Jy>Tbg<b(WCqO2i#-5`N zBu<dT39+OX#YF;iQ()Ikc;W?eP5>7Ppd$&K6Cn13cG-k$FS;Io-o#1%o28FWqV!p6 zCKRblBtzbf=OO|0HaJ#aybH$o7dzpy`b)fUE)pPflAb+Ek5BUBK$6Ql$+z?_5}+dx zBJtt4NB|p)VvpfnB!G(qu&4PHK0#3gZzK|c9tnt=y{wn@@CK{%8n5ySFY}Tpih>Ab zAbq6*$pmXIhvO?h#^F7z!RsvMBT5{6WGDg!J_d)QEW+tt7UA$^%OZJR6MfBQZ*Nae zqq8)U+LZQsjAhGXx^C?<UDQ}qyXB->1lIC8(0b}4oNhWurD7QzUL%==);G`U2{@#u zrP~C0>bsPle91Fq<=e!{qvUydrh}Ae70^v2B`+AX<@KcG0-;?>QA$SreMS#d$98)$ zcIPW8>2Z&xG-|D?9gFOW#X3!G*kUcORfBaYy%Ltu>~hiz$uC2CA-`vys>!xMw@xVJ zd5gGQPgF|C3kLC0t<ZtER6B6FKpZdK6kJ9F{rNV_T6o$TT(W_7yl$0F@s@A5E5++< zVKXXN%VV*87O!11*7giuXD@5-(Vcjt7tt}&5?<bFx{s1f@>qY%>*ezCzGt8A>YNPn zs(Dpj3ezg*wFJ{z;!<i{8q+8;HJm(VcA&i+%<f9>#<RQHUyo~)?FoNdn7+DT6yL4z zw25fuyCkA*p*F<qY?GfQ-%3QYrdXDvDAHtjS%|4=T!P~pKs;|P-AqAw^<)=FmyKw8 zEsZM1bgl7-+<NP+#Bz%}tZkNGwD{63?%d+eO#MnPI^E)~%TCEH?&58&TijudkzX`* z+XvZ2#?qLVvt%>7*2}?ki@U$MHJkC@EW5%oj-Ja}v$@5ccHO-BC7@f}xy4=9Z{$38 zm+%}r&)pKPdAGQ8i@WroX6YpxFXtB-OJiQnlFcpdVs+Znn6?#G_CPAH_cp}5Ybtx@ z_EsXg#ogbg=Z=nMeYAQn8_fJK<9@&kbb7b{WvnU(yin)&FY}-9`n^aB!>Vt&OTz8* z7&dgJ%vCRI#%Y~bMA7tkOkuC!hl|sex)L!(uh)Ks!_YWwsVf=N_IOKQ^|D5so4-=h zsG;Ghn9Jo|^|E?QvDB3x^Q(Jr<y9}M#r!UP6`*d^9yKqBW$Aw9Y|UETQWj=xl5&@} zFr1=ywJ<|LR_AODw(G{VON?gD)-E-|UGBI>^XT6;jIkjeh!t#@D=~p<DW>qt#WYeP zffwow@l|Y)&mxXw4dQs#;XH6Xe5lM@j~FcBt;51t;=00p{FZotUmS_zH{?b92E2@4 z#jC)SyoPJe8~Ba5NB^4MTFmXUSO=_TL*7a@?9H%IZ;Gw(@cJ8XoK1RTY}y-PGu|*; z<qfjc-T+(U^|5tcFI(^Runk_FZStyY-m9=JUWsk<3T(R<vYnpKc6*ZT@dVrFG4_P` z5IDJ-{(Wmx>Mcc4l_gd5!$5^)eO<t{3@b@G4{J#}3+qXGPn;SAj5p#`6>x6Tv5UZU zMV3{;=YfjTi+&VvKgkH=<j^n1SH6$Mr)H=8N_-{!T3iJ8>v3A-BcP1<mlO`!K~PYA z`aV?s`rcQA`oC1enph|X8zxNjDD+RFjT9mtDX}7b{l6pw{l6#+`hO^k8r7F&eXnFy z{}-}`^oHQFq3<Kf8akng+q&q-Z&eH+r7ZCJD}-5&;I|+~kwW9e5clKpViGAdUJP+2 zW^mm;TtpsTGS%Q5BS0Nv#X7kD6uN#n87tPY!llNF9+35UYxG#*+8e5N?d|&a-_!n0 zV>%1{f?rf6RaO;Ql{Hb94bdZdc~c}gQs>CJ&^fFrlbk$_pQNW0vWN8sVNk%dQNr+^ zDPy5G2*NChs*0K^gd-<ULg}nW5=Do&N@JT!*n)W@=z_}{VHaG6NvxeOLeY^LCZ)-W zf^wp|FEp|dPL)k@$}hAr;I$yeOT}U}aBIVh6cmt^NmUT2tfyEbk&lLv6@-OiV$8|| zMaEb`tPfG~fny6GW%EkVh7(m(m?Yr>NTnQOQI5bjK_THWePG(mau)F-z-R|I@jbN} zrsfjnzYIPrg*p6U23r=%CTz__ktS$bUJz$ij0Dtciw+75v#~{11)-;XgDeUvUOQ0r zdBKnK=q@V2n`M_RL0Hs?W(iY@85RPO8{(=uop7R1(0ay{Y8Dzr-^UupUdwn5Q-;`F zuVGA4ETCnJxeoMIS)oqxRd(3|FAS`{q=a9Mb6LD>DXRwW1&^X$v(#j$*DO^$$S|NW z71k`2FI2=hEnjL_tS~GKs9-Es?7GGE@Ve{a$x!Bcc)&x~!`&PnFEHF3jyW6iPdxLw zIb2Vlv<&%vn!{<O9yR-TAMY0fnCyqdFdyNge2lN)<9vco@+m&eXV^-<im&Fg3u~H$ zEc*F?05TsI9ms5kYh*Snnj&T^fJtmc!j@^aF=nr563^uXAk1hrPV$K9a>a8L&sIe} zy;#Dul`lG~1yt-vvMg=&MXvhM${w^{4zXL+`ApR4p*>DoA5-)8lA{?sN@@_(+L)qK z74a!HEgG_|+)e?R-ag5;LT$qc-HOpvoyGevQ(Mw?UN*RbCTTO&tw1Y3aN><rS{&Iy zR&+MOfn)Z1`LakPQ$4A<<VzxHjL>4m!g#e>!wOlmp`wf-2`#d%8OOe<y&x+L2^_7U z*|@DFq3xFBg&S-vs#MdhsVT>pq0m(Vmw1C}sv{HIGs3b_yDQA9jfyb&QMn@Y_Aaki zi-1R}<9(~CMk;`*hFB(-4b%KWTSv>=2xsaSmCD##<g!Im#$61qr({!31*gqG#2BuZ zD3%SHJ)<d<G?EI;l8wG<69|tOVmp}SN#z+~<q|op-#QL#S(b(+dvu#)q`>%v99s^_ zVC9SY3L=vwYf9U=gdf6e`29qWqzc))*bEEUImXOvF(d%f+fY+TnvNl<Yr4{@s^n{R z8j*MpZN392E1SAVsW~1-iN;xxN<yg^Hn8HR?XZ=DQdLJ9ualc1Kv^kXR7Z+QGy+g1 zXa{2%l2EG3YvhW^r$sgRCknYlS@qjec-8nJOsT{yszS$x7YRbDhGT-Z{KVcQ;SB(o z6SFCBCWu^;D*L&6Q6^_YO2W$ISxE0osGhx(B{&{v)-41DT_!KN`L2D^;bU&Tvx^Ed zH<$&GoA2VamYeVFd_r9ZXKHS~v-65sgvlN^-?{lN-MqN{o!j4~8w>IlxcyzaU2^-o zc>YYcQD#r*_IGZ7=a=5({!aTe*Q{l0`8vKHU#i={H}Xw<o^R$`#8$qIZx=hnPO(ew zR(me)on4b+@(oO53Se?z3XLg&$@j2XzJ|vfc^k(R58p8CiYLHNXnu01+O@E1_3GJf zh*Yr9h;oPA$#yaAbj=qmbX7!xCw4|FS9KzaxF!ZsZkIcZvy~_Ei8-nVu@jpKOKy|f z7k13dthCNvDpzO~@(sjJB#3-_G(BS-y~I((nh~0#L6oQn`HoGwB3G`^<w}&Rwq}<K z7E7Sr3@?d7<rcOznw&}z1zgcqI;sY-lk<|AEp}M*l_J(1iDuY|jS_W`o1=-zb~F)J zRiIQtlk?H$2{s{OZbEysNjSsJqTwZoaIbd55-5|fBqWPgjHhTq>w_vFG&8Bu)JEfP zH>?PU#5V;JD>)}&o6*>c6isN=idB}CSZ7$-y*#lZ9Fkpt6%|J~a*n|{YWDjnj^QIU zj#?khjnWwaAqkuT2srCShLKz=VHQlgb5k5s7%>vF#7M3)4qt;|iXtu+L#|y|H#|H- zo>*H{7D;M0ut0c)4F<Wg1%we=7_rJ=Ft}<{3?nXKNE9Sj%h_nn5ILx`C@B*O6a+?N zabhq;TxY_Nx){Qs#Y>tmpcBJEq7b=iVfDbkAbHc<Q6wZK6zE^Cf6{yzvyeKUVM7VW zYa6}PB1jy)(1ugy_!GU!N4Tcmkf!+(RS@G6BFZT>P1{wOlrG_a7b_%kC34v`JYiV` z2}KjRK|rf(pRpmA&>)e^ICpWXx0&XX@P^vtqkm~1uZ%@E)Wlm+;ca<_Qh_r*nF<#y zd55JITMk)Dg-VgHSH?0?g(b?AkXWr)9H)a9lWWQ(O3GDq<fI+DL`hr?rP6uE<(uXZ z73JXDr`j{Fba{r#=FzEyO3EUBN>j1Xs8$zsl_^ZcnR0~AL`;r~#ZVwq!_f%NIZT!* zOF=@)62nooM&4>$n1b+1XGOzRR#izBF;qGW8qw)g5OGs+`r;6sa}b5nlB+le%TV}x zZMy2U>Cqt0E&L2C%J9*YIM9$uhC&%8BN`~PvY)W>b%sxtr&Im7U?1pyU({cQKNrZ9 z>_Z;a>!St?-eF(!_8}#)@S8C0IMv`9#!)(9yQy7Z(son3p0nN5?xyz4`oK-?Zfds+ z0-B`l^zEkhWCo{If}7gqZntYEKY-h{V}I;+?QYlZcI|H0PFs4nYbSTXTeNE@r@Y!b zw9nrw_rRaNOYG!3_;$8U>?!Y6`v6E4yZBClRK6|Ry(ieyyEjCl)Tn|Ix9(QEhxY_J ziSPuzMI(0=cNg~*cdK0zw1mdDMq75Wox!fY-N7!U6XA&7%C<y1cB-ADyZoIJc<{#K zJ2q-Zac6l~VW*E22_&&4+Ps}@4|nwM40b3a5fb0bw)xw~cKEo5Qycfu{5H9*xV^Tc zuwCgSv6;<_t>L!8?E&uP7I@U>*_L4I_%`3(ZHhK;ky{E|d$xsJ)fTwE=i#&79Bdic z>TglFlbfQA^K9PVT-oApEpPER!=b&2Z;Uq0tNCzq-<EK*LW0;BZP+9?1@ohu1Ki4u z<oxzGmFCNvi}OD2#fF8s4I4JfjfG7E^T8&yQEuRKYD2Jbe3QRXZ3yT54aJT1O+{S8 zsl48w3pWgJ3^piSN9)#8LVZKDaYJo`Kd09F>(u(<TysMK*Kql+RqKNFE9QdrY8_h( zH;i2CuPd)F&y|1(pYR&Bwy<t!eYj5HQ_g%=tqImnt_zSJt)7*${+i<2-gSkwKECoS zSF71@&Dh#-jhtnx{MEs1WldpiWsN_}R;yLP>cZ^cns8RF7At++P0a?Y*(x@pRtBqz zt9xgQz)>^)%5c?+)!{1mN2k?Hu(GnMw7RlNt&FCo<#aGpSUJ3^u#(NlDStYgnO^D7 z@JTflOc!VRR~Bd3w3-a2!s*Ewe_BlVxGqoEXUfxTDjJ_qNGME=Py17H+@A<1t5e14 z>J*z~EBx_bqBuD+6-+8z7baFsBHDS(UlEL#CWa=1iD-08js+{i@s)V@g&6h6!WE_Q z{)uor8W~li!B}C%^f+4~NBq%ntg@naJj6>o{E=X^FgCS<jVWA*qt&tciUMAA;SYx+ z#nH*JXmm&p1-Pjpt1!w3ecY8sCP&p^FjN?>jZ{VpBYeOg42O!tlOt*%7%U9chbtrD zFz@#V!okwe#IWiQ1`31qq1v!N#QK8%aG*3eF{E%+7^n|6hU6e?27O_FX<%Z|^-|YM zT`zUL)Xk-CE_HM1o105@D9X02469G9BIg+vbZi5gW9#ug9lc0`>j^6uyrT<C53De- zY+zUkuu&YY53?b>wJWCNo0z7=vAd>ZSScAwz67N$lPD3`qRZqcGo`d;@}x{W<Bu{I z=-a5~3y((JY@v8JP@A}Ls6t!@arq!slfDc|bcnoxu=yhM!t#VJG6klx;w@!bR-Vxh z&*+Ei0@+|Rpe410MpC@yOsfZv_a%x=D`^zFFtB+umfMCfD{5LI9>9xBv{fYSEDq%9 zNYc&%dEAm|6&D8P=QpLrSu$Ik)r^(XRFI>%`Awux#OlmZ?MR=9Sb$n=?W|gikfwHc z>MBQL1T<}DO3DjJ6~jmJ5}K@ZrW~sbuFca*#|97>q$M*HBw1%EsbsK_0fs#a)g@1X zXH2I}8Aby}aU>TXz<z{nK%5UqO!Y}=Bvx9LR4hYcghKR^R+qu2A`nAFYj#+CUZ}<X z4Rb~)1bIQhc-R$&ZiOOcQ3*Mr`sdgj0*g?DC9oo8iy%!Ikrw;s*7NlwQXZdboh^V` zQ0u9mxFg^w76)-uT1VZv;{%79HzJv|@Ptk3G1yjk!<#<&1y|?VPFy1gsm91na^Mqz z8W+(>P>SJeWHxFfrKEhLzO{xi;*t{NtPokoKxUAFI3wOkON{4@V{PCO9L+gy(Eg}z z4WSZW#5AFD2Gt5-`NrQf)0hY~%3&fDL{|+@BWuH=uOCY6MyYTFT_qd|&lZk{qM<H4 zV5sqk9|E1Uka$2^<Kf9>-DDi9;(gKVYD7SxV8l9gLBvDTF~g|2nytnur7ju4HmEkj zt=dW^j*HFJs}Rc+GenHk1R|l5l8GTT5`9L>Vj)H<!;R!K#Tu+=)k<Q9_$CyJfT_69 zJQ`lpv=YHfz(K524hMnUr~$F!&1mI}L6TZ3BRwLzGUWlOcZScXX@o<86N!$;1V#}X zmLTEj-sWQO4EF6R#z6>E1_uu->(W@S1Q&!ZflC$xaV#+g-d7DCDTav4F&I=1;*zEm zI3R=yWgxIj3rqQU01Wwf%oF)a=ObRJEguhd_eMRFQX@#s0D)zw2tvfP2!w!7+fMou z2y{X|LZ&kLBmfHNQOHHO6WCKOBF8kf$;Hc)Cjy;oXwzKcEqZ+9Da{w5Q3<8ViyDYD z^jG-EMoiT(qOxMfc!FAg1d#F+@+>Jr%lb?n-eb5T81r?Wp|g1cAI+s4#6^K4qNkuK zLxm^U8)7UN_2V2wie+-5`Y2_oVfa!(gs?1K6cHh~YBU(}bq*2X(PRinIlNxb>1q&X zwxB>Lm`+Dr)kpy6g-J&sSDY^E#o+*{h_upN5MvK6vL4lj)o?iE#~Fz5iZd8qnOGPK z27M49qzY{Cm;wm!Vy&SNsfeUPDh`fys;Kdy;$RS`D)2zWSY6bj>R>n+4){Pu_!W>% zGONnLB2s;%A^<B+<<-b70hd^>ni-WQJhudNOF*{-G;2(^1hflLy9%Ri0C!73v!--Q zK(_>ROF*{-%=q%`+M(Tl=)8c~+B+|x@f<oYpms7jFJSDha$Z2^1$16O=LNK0I}T5u z^8)^jc>(D#SRbdr3yg0t_2fUeDT<;%U*?qf-o3$M@b|tISaf<pyztE@_*Z$2SMkoh zvMA+Cd~31rohe<%rAv$k`f+BJL1Q%$3&!!`8>@;oG<<&s@(V4$`SPgI*up@6e;?D; zOjUN7XuN_?7HVzCSpOMrS*5k3(eV+TC|nwcnmbiRJ0Gk1ERJm;d_^%(WD;>B+S*xN z*+w)t?eZ86WN{)=Q@(AMKr-f+l^WmCi(7_D)0{eyQcV)lLVsUhGi!V#cfS6<qH~w5 zhEjn{gAhi(piT@^^Q;C%#>BNKQj1~>f@?n!#h4o*ElMM<Wt57$G>)}LQZormd@h1d z6R#^ad~8{!&sm&EYR%+}N>QZmt2PuW$taJcQ5Y+HwIJIHvbsqHW-_ZiQ>C;V5|_!y zNJ}R$riWSeS!oj#vIweBT8?ccd>#%bB*tRWQc_VVpK2?*7U4q*yi8Tor~G9`sT}#1 zKFi;Vi0_K`;ziA=fN33!t~3JmR+2!(HAqW<ozd6AlKL5P88@oQO=)c|H3aEUNW4rs zN1NqLxt+8|av!u&Ps7M<Dkd==8O15Iv5+`ui$%7@;<FvPSSg9EQJ5$jI?I;wsIjQ3 zL}vsdI$z=I^ckL(&hS(+YSi<DsTP!^;tb0y8B~zTp~4Ie%2K{ex#ekmiT77)Zc+<K zG)6#QM)exro1kSkL`wHAAB~Cc2_e0mB#@R>itnR*d_V>G5;~BvSf+?j;(gW`KE&VP zFNzx89!(`=DFSeckep$K@7`#229nX2W8xxITni##0&l8L7}+9Fw7_v;CSAovbKw>V zOU(Yf?iLAly2!5L+#-QyLbpi3U~eaHT85=FuUjM}D>Ju9aEpX^@!%E-@qYJm{S9^# zn%(f)jjElp5#all`WxDJtDU}!HWz_gB$!=RyQ{}765Jvo<A!pcgk(QX9x3vN*gdX- zAHaDMG72GYf%7E%0D2PW$RWVMkFVLY+V|C!kIjjZ%7=XTSS{pR>Z$}6yUBfXS3Rum zskmIaGUYCPMWvbC_A9BmP;U0h@M|C~dquPjPs9}YE5b9momV`j=<%{w29MJ06$2h| z>G9}_O6$dy$?f$bDVDk{k=LCN0!`oa44?Er5yD07W&iiGJ}-dl*Zik^x;OuQo!<X_ zWoN1NJBuURGse*UDr;xPlCpN@EbdCjQD<@8?JTvzA6$#0nf31)2EA2m*qdP^-ZUHY zCfT?*&L+JvHsy`78E=@a@&?(g*U#2?eQcfA%jUcW+vwHUyjNkHy)xVC71?$#WIH{d z?e-+w;|aFUW9*6Ilim+1Z)y{T=ZSi80OjM++g>`8#s41oCyM&NFUvY#%8JhC_y{85 zML3Dl2)+2Ni$45TML&KkVi3P2F^t~=J{vmB1A!O!a3#j^<f{;qxaMLSzmY(w=@6ba z9zdvNA0BY-Mc`!*XWn|mEeQNpx%B2(nfv%H@({lvFXGqdW&BEB#V_Y|{6^esfS}h~ zhY5BK8}L@MA#Y_zQ%`#%Y^68ER(k_on|X^@V%xj|+u;Rl7Zj5;F+bqcl=cRvCOvSx z8Ec}B$MMzK^h=vjNs3GYK3ST%lf^J|$BPAg&DN4eMVuX%^+!Al_@pS#NaJf+s3q6D z!0_gLn-diTPj16d#n;6EpQTH#MOa9#Sy)Q0EAdqr(98IVr61r;{`yJ=J^HGQ&vr)~ z50};<XvyaoFzBj)lWlW_)7$t;`C)t|{9=5?d@Rv5MOFVVsX877uE~Px!T&mfzVI~# z{Fka<|L1B@|Bn=&+$O|`;d$vM4x~B8oF)c0iT`~V)O`IPTPOWrVvwVBv;>~v?-N!0 zqFnsqdt~^ni6(w47}v%SJ~fEn5aZey_c5-mz*shpYlabR3=b5HAadReW@`~YLIc?b z3}c%xh%s-Tl`x>qvjSK64KS3=WB4lKmt!c~%&OidY>qZCXAxv2&LW&ekR7-&qT3ju zmu#gV{wRpAKME4`vSw5)(Kn;%t03n49|7K1&Wk~kMyNp#-sqsy0*z<Ve54RVzZ%pi zMfOC6Vvs=#>OmvwDR6v*+F%AKBcSi2#3{rrKnmV{fRqqr29-dkL?L}jT9cV1ygVQb zbxIf`;r#|-L6ZgL5M*GT!3e9OR?zohi73MALJi;LMhcivQi!jk2$W&(3l(1VagPL@ zU#Q?q*0`a&0zR{in(4d(?s$cv@<p9X_rfocw7@N(4hnaaSHvB@vZgVM`YtNtyWEsX zw?PS?>Ba}UgOa|LC5}(FP-Y34tR(ea33r8}uPPd^gin$ekX{B&sUV6aonFRuRHU!J zBcqIh8NNefuKj}0*A=9Tg2Jb6Dt-mZ2yj)!6(otTg0QTws_^B|CvixfQHW2x*EJ%; zOBrgahPnt`)$vgoKk(x#d@P+_*?_btKzJryf;Zmz(7+sC*Z)Jm2mgDO#0P8WKl2Af z6K}@ncq2#?j3qwp)F(?Spf`jdHm!jBeyLO${|6+)_tJ-O-@q@Z`7q}2e*9MC5Ppkz zh485G<qG@?ydq^xFuajx7_op;;HI3-JDYbl@5XsI&g+5v@9Q{E>l@h&`wIQFfhOK# z5%o5G+?M($2Sjh!Ec8|ThXw*%mHMXoc~96|Xjc1%`+Z!Mn$vx(5%v^%E6ve9g{xw3 z6L?_PDE5?lS76T=HcCD9-o9o~FEq+M6F4dh>!n7uXQ)@!inyBY3Gu($813QJLakKq zY4rA}YOz+SPc#bEQms}WYVb<2TCNR(7q9!3Qngwes~0QfYNOUy=jBqRQk|;#_+PJ% z)QaVDrCIH%@lvT=txQ(^Qn_5O3|9-KO1ZDnsIp?IR4Y$bWU*4Jmq#jLv07@Ddn)B( ztu$5Ug-Wqe8pUd(T5KY{P^cGYN|i!SaYc!TwL-HvQ1ZiiVF=X4uu+&QR-us5A`9x_ z0CH8(2v^X8Cg=&L3KhJxdZf?@2BAjo_XZPK82NrPm=246e=rtS@v`jx5bw;wB7@-@ zcB=!a2K=cYq<3uxWi<xehMM*ZLBE>yBZ*J)P5Y9*8t8{|T=n~9IfHdcU2eczq1LEj z+)c<8O5hU_11i9GF00D5tZP}<XMeEzERD#efiU-;HhQAOA1L$(eLmjZh7Ww=MQ;*M zhgAB*I0c{8)G1M=Kj<$a5ue8B!H!WUvI_4n_k~EqS1N(1K*}qnzCtt5DTIYxT}Abk znqe<?vY^A4H}M2WrCGqe-@tb-L8B^BxfwJ|y%@E05<bvbVP!m?RqZYG1Ud<y=EMV# z<=$dXh<ogfaSvx@Z>0xAA?_((m1{l4Mi}4u<*3wC=qV!s8)9sMuzf-FMZHm|hx*<} z093V6suyb5tzv^FOJSp`@30ZZ-mkY_tc6wVcX1sR>y>)BR)}x0Bd^zShm9^af1=o1 zD^)Qt<60G~wMw-}JG>IMleHdPV|R;<WK^j3R?C%wzTt&hwOT3SI>f_XLA9q+Di?6A z3jLLGxrnQv(5O_)C0vDtD6E8)Uff_uTVUZ(xm?0-7LUU<%hgf|S1PQOdvJv*A{;GM zC=;JMs1-pFMnS1jY81=3<Uyg-U#y@Y8H^Td`0ob;#RfzQgGR9zd+bu+7e`R9Qo#Hb zg&OL|{h>kw|CQfU=z}@}?8?W&8s?lyD7K8xI`l$){b4_TxvGZ4Xbp)ES~T!<!W7!L zpvGWcC47xxh}tL^$M;Xyz>1h$iB|>+If3^N`uIG=5S}0E^;f8}+z6Xk4`ZCgcVVY7 z|3pGza*{&y<29E`I3spO?2Oor#AaZ2Bk|weNK8wLsEY4qn<qxi1E3T!8cHtAW1b2D z#`L(Ti6a$)aFu=@)ux6R*m;~v9DK|)IKf0J!;DQ&qN;>LD5Z!hWm}wKLC8`NswoVf zP%Q%H7M*6v2~P=*;+1A;@qEE@X@uvCs9Yk3L`;a37{Gf;DL(3hSx~1K96!Mcg@|!1 z6%J{W6hl=IQK@Jc`7xs+PECoixi8?EWr>4fKSVZ4LllRIc#-FlN|eOnBw|cdjOSBI zNP&HTPoVjf1n2Pf$M-~mQ`5|S3HMlzB>5$Qvsc`cAR*LS6pBYUpVkQl6j?$7q2tI} z-(d-WJbM=)e$L*NMZh_Z5h$++x{x#E72-QOm9W<c5&;%8gh!o=9LtUPy2NErjIYaF z;JN@)DkA`s>2$iTa;&;^YK_CUk1HH>bK+LkR}u4Z9-wdP95({z1C&$ejB$Nk#Wik{ zYqE|C9+<A<Nqji?an-<80arC#DHdQoTg4OnK2x}=;VNJPD;T;88N*c_R|Oo8(ElQy ze})g9msnXg@V|_c1^QoM1^jRFDhu!y<|eN(h5vncu1DZ4&P{|0BWAT12{<F7cV^?U zdwSxij^6?1`e597Oh0vf(Dgyr2lbRhQ?Z)|X_|8L;NSmwkk+HVelDXw`LFcz83Ufu z=>wj`eG{Rj^uL!4;y*pdG3a4s8vie2ULEwfz8^~dGkrho+5Zt%l0Y2x^hFavsukSY zU&<Qw%x?+TW1jgf;`Lc$UJ)rPyaKN2w+}JQA+G7Sk4<<1uIaZA;fX%3Cq0GVsrXmo zdfF41_35`CG0!-($1lV0%J?_pc+1!-M8{Hu>}mu<Q$X}A0;1P=O}17;FM^|c*m?~O z1WDJ~1_Vh{p!7zs$~GZbdLF^jn-NJ%VWL|QG`$rOwc8Lly&X}tI}kj*6S1_r5;a@3 zJ9RsC|NXIU8c@F9p$8H3?a}fpya@~;EA&GV*+_Zn?;Ft9>0t=!*Y-gOijcp`i<tLB zX}|aV&rpx^_-;m16!6;+C49B4g0SC}2=8s+H$cGeDg^fS<HKxtJYf(?qliAjcY^Q@ zuTdT0JBt@KP;~D`R>MaM%lImH$agWt_hB0td2AmO-X7+AJ6Y&$XC-fo4(@H>8HJ{| zRzH|P&!EurC!}TyA*Z31hE}UydH{hQKG4sW_y;gxI(h#l^-DHU5?iqC-iVjvuf^w_ zR^oG4<M`;;klcU(HIC1$3+dyx#J6B6v=N)?wfL;pN_?Da9N$74#0UE7VlN(QdBS@V z`~Q8|+V8@4eJi%)o3K(?hp(rt)F!kF-{qj7@I83R*%SOp#=L#nQpidu{F^!>J)J~P zB#}i>CwoFV>8Sg?QQcANZpU++o8jWwh&Emar^qUNVQUiK6GMOkUP8AK?l7?%?yH@` z=i5Yq&tt(h2M^6GTqM)@^4bW#Oji?6uy?|{vlHH$t!Ug$Xxw#Z+?8nD75My04}U^D z%+UXLG3jk%1qAe0@i0;^T5|*s96cddIVm!_pjN5k8*qcHjE~6;F+5y>FA|36Rip5% z4dDZf0*W7J48IdlE55cjf$lPlPa|?~5M#0M&^AzY6JL2$UJrf)ua5CK^r|qG0v6D# zSrN<S)vSyK@fud~6h3ZQ#gca&y4oBbF{j4ClNuhzb37P0h^NJdw19Y;0}lp{<H5j5 z49?SNyp?(_Olx3T_tJWo*0{8;r8TX@!+>}QP(`jn-}fy<W=HKM^pkyiJkIv&wM#X+ z!enCP!0Eu*fU^N-1AjX<fCpwhd=lVE{NRt#&xhy-e@_DL1JK_Az$UuD-**9H07C9P zdCk#lCk`IFVdBKOx1D>>xpzHq4ym3Gz!KYQ0mAs2&<pW3{&~gBbt!XQ&RkbA*EL)d zuO9*sp8!B*&|eck*9y=F$xh;b{p}CE^WAfgpL^fqa}S?=|GD=di9}{QW+`oAs#Ef* zHO1MtJ@PK(9emG2XCIz8^vJ^x+O)aH9{Q1U6Pvef*rfkrOr1LS-giCp_{6&(df&N+ zA4B>(9(vc~554Q{6YoDqcW2-G_#>2JZ;^NQ;fKyX7T-U7_FZp(@7cGXo0xilO1l5- zW9Q}`eCR#r9(eqrN8UB@@Z;}6;scL7{K$JI%)hz!y#4;O6Z5eY%UrAh;Sas{vBw{J z+xsWp^U&Mh@i^`ue&}82<{o?Z*#}6x`CVyM?tkQcbMJiQ!E+N2zW-fk-}%r3Bngso z^&<6|Kehjh@s+g%>8btS^VE?C0FUJI)PWvPUHyJfU3-J4ZulDIJrNveCBUxsUX^z} z_oo+L|N4J_Zx7nA+=|wtnRsjQ3qEdnD|#9h8n&3XIP~$B-&*|31D>#0q80s<EYgC< zKGI^Xi?4n5GvCAi#qW%R7A*e!h2Vu~8f-;t@iq8qEnA%>URd-F1N-&=16El2d0a*R z+K@f%l|0#s{!5PFX%ra!W5Ox`>w@}vtM&O5UA3aq_D&bA(H|#a{;7|Qi-%5LztbX= zJk?tKi<+*kuBNUn*l%m`*2Ta4`P&C!<T|ZH|2{{B{!AOT@}hs=Qmuv0d|=XO;?H03 zUx?nOi+Jtn|J-UVZbvr+A*nI0FLYV>b?9>8;y*{4S87F1#`u%pYqdTh68x|wyoG(g z{0a()p2=b^Jng-Y>hx#^Re2ZWuJ`@d^OU|w%1$JI?P*Varq%k+Xhsesc?-c<A9TCe z^Q)BcP#cN2Cu+5RBS#{<3-$liYW*TLL7j4*$kL#S%!~eQ3r!YRmXv?tE3MYI2T)8j z*HMb5SZsWw1w+b^ME^T57hfPde0|erp~A_wVz?LG)kd>e`Z5}A;iXUhDgH%2Wt9!P zOX>v?{u^Z`B`I%l{FAMqwfIX4_^^DcfJT5)W?sux-A6w;{p)}H>f$S({<nKktt>XQ z@uNB9C)m?%-RuDIU5_z0+D&!)b_qkYYQ4UA{;xju!Cq_MA(9NzFOr-O0;kwo{L^Vu znWr)O@)oC#RPYwd-yxJg019ti`12P&{^Fm|{l~JXRWEvg8e=1x8hKRh#i>t_pxE1) z6yjL*Ui<x4>r)q7t)H=o(9|Zvdv_ME;zeta`1-luYPDW28e@N&+BG25C-bPU|3s^G zzJ5F9oXw!_poDj3Q5RqMD5~>a^^I2RKX`>#TCI;*bVxh<8N%O~;=@iBfF7Md`o-g( z_luN2r}YOVyzt_mkrI9*RYHva+W*~Z{V&Xk2MGON0Uc`n2;OUzDxu_E7+q|&ehx*w z&RzmGG@~2n)j$2cb24op-YQXJ7hBOimRyewrg4hiBKrzuez<F9bco9T;tTSH=+EeC zjjdRY#f4vKwJtWHh3FbW`j=gh3h0NgwOYT8_Iizft=0M#=3>I70aLd$wJX&0!<2Xz zY$W<|TrJ$y73;z$TCG>f9-~=8dcF(N6Ih=lQwB{R>;MMl3$Opx3;$vquc$fC9{%+C z?|tc?d&8J07Qem2t9$6e(EWcz3I>1n!onv$rzeE3D6i&4e@x|k>GMBAxnx0$)&E3- z-iW-5FvDNL>IUghzyu|~AIZ8>HdWi(k3hq()qm`>-~09_u~fyl^EC{T*(C0L@99?S zLo>hk+Bcp-{zCo7G|OGY@+1-#*Sv(zap6zbdmfS6gheDU?*d3a^Ab?c|2xkEA`J}R zkv)gL&}w}HYoF4WkhS>bFW~pWS4!S*zkrL^VSnuz-qWzh^RIkvaWCZ*F!^0ejNS!> zAMm^#FSlCB;KaO_bIBlOtyf>Ddefdq84z*d<zHQkT3`H7tMx4X|0%M7xFfS9`Mgfn z<k4+V?s-E0^H0$5u=vvf5~6Rm!dCQBN~serzT_Dinx2t@nmz4#SN$a}7XK>^kI_XU zdpSc!2^U|E$*M$l5!h%s=yH#~{69%d)bd{ss=;U=CADc62V!dKVHXII1}QzeFD}v` zb@3yu)<=oS{cqb<$<W8i=XJ7{8?zrJ>OoF?n8g1y7Nj&uzV?r~xAT0f^;0Q*MCsp6 z(qjfX)fnW|cZkDdo>%(|T%7;<A7X6y_GrprQK!FZ)2#$Zg{i=B9|YCw-x)z0e-lQw z_`MrY2Rj5ONibS!WZ%1pB$|(-=WrYSdld89zz0A3+QqN_{0#J>=|m<88X~&DTO9bH z_XK;wdqRD!l>lDD@_O7Wxc43E0^Uvk{X4I|@G$B4weovE^4Ax?{-2IO$ZYR{jEUWU z=z}zA{3;|~T=gZGonCpE-g2ILOH14RcVPFZcI&m);vfA5Z0o{&+$|Qq@wwL_-Gw`I z-Q*RZCnm4eb>T~EJpMDly!f!^J&OO|crW*c|ESgatTFfm8z!7F=^LRPJuaMo!t?&$ zR*Po5S8w?7JLfzv?iUv{HUv*hx=A!NYMlRo=Y6Zy`d64qwb3uW<Pn~=VX0f`JnSB$ z(2o-mnfT(%9?aL8DsWna0X9Debog?!77kfcleDOi@()SMTfXx@{#}n3o9<t0yu1k# z!A0<XH$?sJj|s2&$yV!6m^R|SN-$eFqazaPsCq<N_~wf=%3gRdw%gY%D#l{6!Pwx4 z#`MzJKc@Dj#nPg-%2$Ep#fBGKS&WR4wer3{`1Zv=|BY+ObQ1G?0)9vQ{Rp5+7x>!; zpuHjfBtXyw_I+OQ=(+!G;)vY|{!Q*ssYLqgwnNq8=v;O4r2d~uiEY%)*Ldol<AA#X z4*}kr!%@eOckD3$)=J0zGvJQ^7d>@+46q+?7VrVUuK+#*_=cxWV4rbf4sZ+LQNX_h z{0G3t0LVWX09FF727vzL6M$a?{5JsjpM1?zr}_X}04V<ya87~Gsiy$X0G<Ur2Y4Rv zBH$&!E1tTQ0UCfwz&zj};5gtc;8DO+fM)>D0-ggr4|oyq65th2-Npb7z$9QEa1d}D za2D_=;3>c}fM)^E0iFlE2zUwbil=U8fCgX^Fb_BgI1V@qcogsy;2FTPfad_u16~BY z1bD?$rx~CDm;}rN4g!t?&H^3<JOy|L@GRgt!1I6?0WSew@zfm*&;U#V<^cx*#{p*n zj{=?oJOg+Z@EqWIz>9#F0IzuJP6lWICIRz+gMj0Jvw%kdPXV3*JPUXZ@I2r}z)OHv zJarcXGys!;dB8!yall!?qkyLX&j6kUJO_9l@FL(Pz$>0Q!vGDyBw!wJ5O5rD7Vs$G zDZn#;X93Rvo(H@LcnR=|r|xEe24E5}4>$-o4mb;V6z~+_8NjoE=K#+GUIe@Zcm=l4 z01dz-U><Og`oa?>?~nKY$0y{6zJ;rg@Bc+yeGOL!_ItScH&~0c9L7IneeC}htfTg% zxBqLf4f_9Yo~V7uLl8kr-?`i$aBaAQ0gQp}pw#KW*?_YFX9La#oDDb|_y=SIS01pC zc!6m9SUPm}fggVRdmef3yWpiVyy*Yml{<)nFU+61caynD#1)>p_mro8_&&hHfcF8O z&f%#0k#|4x?nmDJaN*wnlYn0U{2Ji503QOp0QdsnYk-#l3!ZuaM|}@80TY1rfSrKD zfMb9&fOh~M2RsS*3Bb<+ei`tafZqjt6!2NVR{`GyocGj&5>N+>0%ieQ0S5p_0H*;D z0^SYyQNRZQKMnXLz^?;-2k>FQrvP6Dd>!yzPa&8@oht(d0W*M2fW3h00jB`>0Uidt z5AZbLCjq|z_%*<90X_tH0q_OD*8ndA7CiN~5YPln0M-L`0uBR?0nPy40eBqnB;Y3i zKMVL}z;6P67w}QQX8~UYd=qfqQ*W1mI$#tq3)l)c05}3T4R{dnZorQMJ_z_}z%K!Q z9q>DV4+B00_%h(@fbV+h9Uh<z7zE4!HUahmt_Pd~+y{6V@IJuPfS&~X0^rvGzXkXZ z;03@J0AB;V3|R2gLm{9Em;kH?>;xPJ90QyIyaVt!;7Pzw0Dczm%Yfem{4U_5fX@QH z3iu}Ayr+Ih0_uQKz${=Z-~iwV;56Vtz`FrI3iu%4rvbkN_;tYV06q-(6yVE%uLHgd zd-nikz#w1-unDjia6RA@^#$$lA*YW6rvqmL&IX(fI2&*_;B4R@hz-1n?NIaNxrfi0 zK;xUwKK8>C4?Obj_tTQf?u8KG;DrF%kkB6jkCJOTY^QVvz~<AOvZry_B_x?Y^)ODn z2{S&2R}ZiD)IZt>KtS+6x)pHNAjUZA5u7qViY4A-I0=6YIFH>7I1T{rV|M^>GXB_E zz&XG}fOi5O1-uu4K;y^$3E(NfKLz|Vz`p=I1Na%h&jE0<{n)dBUjh7I0GxzB_8j21 z0sjT?dw}Nw{~zFg06q?Q5%4*{9|67scnR=lfNuc41$YJUD&Td%qNg5b00k%jDu4!{ z4=@B6155%|0@eWL0P}!tfL(z9zg;_oNg#^jIQ}jW3{EdFMsO1yAae%8i3IjWFc=I5 z1A$;LxM?5|42~HL27`e>Ag~>QKp+qZ?9E^>7zhM|fj}@A2uxA&{628rZ6<?B!e@JX z7Y_cv|GTl{pF|2<*v1Zav4=D=*vA15af~c-IKe5-aE=RH;tB;6Q9>CNR8d164K&fh zHEwW=JG9ZkJs!|S507|49|H_A626=PA7(HM6Mh7-fDponVGZlBkU$bCY+)Na*u@^w z$Y37_IK(ls$l(O1IKw$EaEU7vP(%r3R8U0?bu`dK3)i^8E$+}p2lseD7d<@U34IJO z#E70Y;KK}NVZx6f77#)hF|1)7783d_<c$a;;4&bW#k(bK6;Mm!&9aqp0#1l6TQOu4 zP$BUmmE$O7OTSzc&w8J=B{sxxd_juM@k-eit5^1v6p88LPl}*RJ}I<Yd^eJ~H!Dwu zZm{23hbP(V5!XCVS5tmiVpW*xT}K-eremlPfv$*o#k{$`WmL?`7u_B@-#Cpx&;0l- z!*P53$yc9tmV2r=abJa=oIM@Mh9{DUH>;>OLpNAAYn^@GIGVoS{zvb(r~mD{^9{fK Gar+5$NLL8} literal 0 HcmV?d00001 diff --git a/doclib/senf.css b/doclib/senf.css new file mode 100644 index 000000000..d3010425f --- /dev/null +++ b/doclib/senf.css @@ -0,0 +1,126 @@ +body { + padding: 0; + margin: 0; + font-family: Verdana, Arial, Helvetica, sans-serif; +} + +#head { + height: 63px; + border-top: 4px solid #DECD40; + border-bottom: 1px solid #AF9D00; + background: url(logo-head.png) top left no-repeat; + background-color: #EDE497; +} + +#head h1 { + margin: 0 0 0 100px; + padding: 6px 0 0 0; + height: 34px; + background-color: #DECD40; + border-bottom: 1px solid #AF9D00; + font-size: 22px; + font-weight: bold; + color: white; + white-space: nowrap; + text-align: left; +} + +#head h2 { + margin: 0 0 0 100px; + padding: 4px 0 0 0; + height: 18px; + background-color: #EDE497; + font-size: 13px; + font-weight: normal; + color: #726921; + white-space: nowrap; +} + +#head ul { + position: absolute; + top: 5px; + right: 25px; + width: 100px; + background-color: #FDF7C3; + border: 1px solid #AF9D00; + list-style-type: none; + padding: 0; + margin: 0; +} + +#head li { + display: inline; +} + +#head ul li a, #head ul li b { + padding: 2px 5px; + text-align: center; + display: block; +} + +#head ul li b { + border-bottom: 1px solid #AF9D00; + background-color: #EDE497; + color: #726921; +} + +#head ul li a, #head ul li a:active, #head ul li a:visited { + color: #726921; + text-decoration: none; +} + +#head ul li a:hover { + background-color: #EDE497; + text-decoration: none; +} + +div.tabs { + margin: 0 -10px; +} + +div.tabs ul { + margin: 0; + padding: 0; + height: 22px; + background-color: #FDF7C3; + border-bottom: 1px solid #AF9D00; + list-style-type: none; +} + +div.tabs ul li { + display: inline; +} + +div.tabs ul li a { + float: left; + height: 18px; + padding: 4px 10px 0 10px; + border-right: 1px solid #AF9D00; + font-size: 13px; + font-weight: normal; + color: #726921; + text-decoration: none; +} + +div.tabs a:visited, div.tabs a:active { + color: #726921; +} + +div.tabs ul li a:hover, div.tabs ul li#current a { + color: #726921; + text-decoration: none; + background-color: #EDE497; +} + +div.nav { + width: auto; + background-color: white; + border: none; + border-bottom: 1px solid #AF9D00; + padding: 5px 0; + margin: 0; +} + +#content { + padding: 0 10px 10px 10px; +} \ No newline at end of file diff --git a/satscons/Doxygen.py b/satscons/Doxygen.py index 27131e389..9c7858639 100644 --- a/satscons/Doxygen.py +++ b/satscons/Doxygen.py @@ -17,7 +17,7 @@ def Doxygen(env, target, source, image=[]): [ env.Command(os.path.splitext(img)[0]+".png", img, [ 'TERM=dumb make -f %s $TARGET' % mak ]) for img in image ] + - [ env.Command(stamp, source, + [ env.Command(stamp, source + [ os.path.join(path,"Doxyfile") ], [ 'cd $TARGET.dir && $DOXYGENCOM', "touch $TARGET" ], source_scanner = SCons.Defaults.ObjSourceScan) ]) diff --git a/satscons/SatSCons.py b/satscons/SatSCons.py index 83c468e23..169b0f393 100644 --- a/satscons/SatSCons.py +++ b/satscons/SatSCons.py @@ -147,11 +147,19 @@ def Objects(env, sources, testSources = None, LIBS = []): return objects -def Doxygen(env, sources, testSources = None, target='doc', image = []): - if type(sources) == type(()): - testSources = sources[1] - sources = sources[0] - +def DoxyGlob(exclude=[]): + sources = [ f + for ext in ("cci", "ct", "cti", "h", "hh", "ih", "mmc", "dox") + for f in glob.glob("*."+ext) + if f not in exclude ] + return sources + +def Doxygen(env, cc_sources = [], doc_sources = None, target='doc', image = []): + if type(cc_sources) == type(()): + cc_sources = cc_sources[0] + sources = cc_sources + if doc_sources is not None: + sources += doc_sources doc = env.Doxygen( target = target, source = sources, -- GitLab