diff options
author | Anas Nashif <anas.nashif@intel.com> | 2012-11-08 06:36:54 -0800 |
---|---|---|
committer | Anas Nashif <anas.nashif@intel.com> | 2012-11-08 06:36:54 -0800 |
commit | cccf3a7c7888ce7bd7a8f8d48a34c5474ad9feeb (patch) | |
tree | 7f31b77ace4359e85dc3d3f66c853858c0bca7a4 /doc | |
download | doxygen-cccf3a7c7888ce7bd7a8f8d48a34c5474ad9feeb.tar.gz doxygen-cccf3a7c7888ce7bd7a8f8d48a34c5474ad9feeb.tar.bz2 doxygen-cccf3a7c7888ce7bd7a8f8d48a34c5474ad9feeb.zip |
Imported Upstream version 1.8.2upstream/1.8.2
Diffstat (limited to 'doc')
64 files changed, 26146 insertions, 0 deletions
diff --git a/doc/Doxyfile b/doc/Doxyfile new file mode 100644 index 0000000..1b0a311 --- /dev/null +++ b/doc/Doxyfile @@ -0,0 +1,53 @@ +# +# +# +# Copyright (C) 1997-1999 by Dimitri van Heesch. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation under the terms of the GNU General Public License is hereby +# granted. No representations are made about the suitability of this software +# for any purpose. It is provided "as is" without express or implied warranty. +# See the GNU General Public License for more details. +# +# Documents produced by Doxygen are derivative works derived from the +# input used in their production; they are not affected by this license. + +PROJECT_NAME = +OUTPUT_DIRECTORY = .. +HTML_HEADER = +HTML_FOOTER = +QUIET = NO +WARNINGS = YES +DISABLE_INDEX = YES +GENERATE_TREEVIEW = YES +EXTRACT_ALL = NO +EXTRACT_PRIVATE = NO +GENERATE_MAN = NO +GENERATE_LATEX = YES +GENERATE_HTML = YES +GENERATE_HTMLHELP = NO +GENERATE_RTF = NO +GENERATE_XML = NO +HTML_COLORSTYLE_SAT = 0 +ENABLED_SECTIONS = logo_on +ENABLE_PREPROCESSING = NO +CASE_SENSE_NAMES = NO +IMAGE_PATH = . +INPUT = index.doc install.doc starting.doc docblocks.doc markdown.doc \ + lists.doc grouping.doc formulas.doc diagrams.doc preprocessing.doc \ + autolink.doc output.doc searching.doc customize.doc custcmd.doc \ + external.doc faq.doc trouble.doc features.doc \ + doxygen_usage.doc doxywizard_usage.doc \ + config.doc commands.doc htmlcmds.doc xmlcmds.doc language.doc \ + perlmod.doc perlmod_tree.doc arch.doc +FILE_PATTERNS = *.cpp *.h *.doc +EXAMPLE_PATH = ../examples +RECURSIVE = NO +TAGFILES = +ALLEXTERNALS = NO +PERL_PATH = /usr/bin/perl +SEARCHENGINE = NO +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +STRIP_CODE_COMMENTS = NO +HTML_STYLESHEET = doxygen_manual.css diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 0000000..92594c7 --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,56 @@ +# +# This file was generated from Makefile.in on Sat Aug 11 14:29:47 CEST 2012 +# + +DOXYGEN = /Users/dimitri/doxygen +TMAKEPATH = /Users/dimitri/doxygen/tmake/lib/macosx-c++ +ENV = env TMAKEPATH=$(TMAKEPATH) +TMAKE = /Users/dimitri/doxygen/tmake/bin/tmake +MAKE = /opt/local/bin/gmake +PERL = /opt/local/bin/perl +RM = rm -f +CP = cp +VERSION = 1.8.1.2 +INSTALL = /usr/local +INSTTOOL = /opt/local/bin/ginstall +DOXYDOCS = .. +DOCDIR = $(INSTALL)/share/doc/packages/doxygen +QTDIR = /usr +HAVE_DOT = /usr/local/bin/dot +MKSPECS = -spec macx-g++ +# +# +# +# Copyright (C) 1997-2012 by Dimitri van Heesch. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation under the terms of the GNU General Public License is hereby +# granted. No representations are made about the suitability of this software +# for any purpose. It is provided "as is" without express or implied warranty. +# See the GNU General Public License for more details. +# +# Documents produced by Doxygen are derivative works derived from the +# input used in their production; they are not affected by this license. + +all: language FORCE + DOXYGEN_DOCDIR=$(DOXYDOCS); \ + export DOXYGEN_DOCDIR; \ + VERSION=$(VERSION) ; \ + export VERSION; \ + $(DOXYGEN)/bin/doxygen + @rm -f ../latex/refman.tex + @cp doxygen_logo*.gif ../html + @cp Makefile.latex ../latex/Makefile + @sed -e "s/\$$VERSION/$(VERSION)/g" doxygen_manual.tex >../latex/doxygen_manual.tex + @sed -e "s/\$$VERSION/$(VERSION)/g" doxygen.sty >../latex/doxygen.sty + @epstopdf doxygen_logo.eps --outfile=../latex/doxygen_logo.pdf + +clean: + rm -rf ../html ../latex *.bak + +language: language.doc + +language.doc: $(wildcard ../src/translator*.h) maintainers.txt language.tpl translator.py + python translator.py + +FORCE: diff --git a/doc/Makefile.in b/doc/Makefile.in new file mode 100644 index 0000000..aaa9b0e --- /dev/null +++ b/doc/Makefile.in @@ -0,0 +1,36 @@ +# +# +# +# Copyright (C) 1997-2012 by Dimitri van Heesch. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation under the terms of the GNU General Public License is hereby +# granted. No representations are made about the suitability of this software +# for any purpose. It is provided "as is" without express or implied warranty. +# See the GNU General Public License for more details. +# +# Documents produced by Doxygen are derivative works derived from the +# input used in their production; they are not affected by this license. + +all: language FORCE + DOXYGEN_DOCDIR=$(DOXYDOCS); \ + export DOXYGEN_DOCDIR; \ + VERSION=$(VERSION) ; \ + export VERSION; \ + $(DOXYGEN)/bin/doxygen + @rm -f ../latex/refman.tex + @cp doxygen_logo*.gif ../html + @cp Makefile.latex ../latex/Makefile + @sed -e "s/\$$VERSION/$(VERSION)/g" doxygen_manual.tex >../latex/doxygen_manual.tex + @sed -e "s/\$$VERSION/$(VERSION)/g" doxygen.sty >../latex/doxygen.sty + @epstopdf doxygen_logo.eps --outfile=../latex/doxygen_logo.pdf + +clean: + rm -rf ../html ../latex *.bak + +language: language.doc + +language.doc: $(wildcard ../src/translator*.h) maintainers.txt language.tpl translator.py + python translator.py + +FORCE: diff --git a/doc/Makefile.latex b/doc/Makefile.latex new file mode 100644 index 0000000..a13b90f --- /dev/null +++ b/doc/Makefile.latex @@ -0,0 +1,25 @@ +# +# +# +# Copyright (C) 1997-2012 by Dimitri van Heesch. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation under the terms of the GNU General Public License is hereby +# granted. No representations are made about the suitability of this software +# for any purpose. It is provided "as is" without express or implied warranty. +# See the GNU General Public License for more details. +# +# Documents produced by Doxygen are derivative works derived from the +# input used in their production; they are not affected by this license. + +all: doxygen_manual.pdf + +doxygen_manual.pdf: doxygen_manual.tex doxygen.sty + echo "Running latex..." + pdflatex doxygen_manual.tex + echo "Running makeindex..." + makeindex doxygen_manual.idx + echo "Rerunning latex...." + pdflatex doxygen_manual.tex +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log doxygen_manual.pdf diff --git a/doc/Makefile.win_make.in b/doc/Makefile.win_make.in new file mode 100644 index 0000000..9a0fd3b --- /dev/null +++ b/doc/Makefile.win_make.in @@ -0,0 +1,36 @@ +#
+#
+#
+# Copyright (C) 1997-2012 by Dimitri van Heesch.
+#
+# Permission to use, copy, modify, and distribute this software and its
+# documentation under the terms of the GNU General Public License is hereby
+# granted. No representations are made about the suitability of this software
+# for any purpose. It is provided "as is" without express or implied warranty.
+# See the GNU General Public License for more details.
+#
+# Documents produced by Doxygen are derivative works derived from the
+# input used in their production; they are not affected by this license.
+
+all: language FORCE
+ @xcopy /s /q /i ..\examples ..\html\examples
+ set DOXYGEN_DOCDIR=. & \
+ set VERSION=$(VERSION) & \
+ $(DOXYGEN)\bin\doxygen
+ @del ..\latex\refman.tex
+ @copy doxygen_logo*.gif ..\html
+ @copy Makefile.latex ..\latex\Makefile
+ @sed -e "s/\$$VERSION/$(VERSION)/g" doxygen_manual.tex >..\latex\doxygen_manual.tex
+ @sed -e "s/\$$VERSION/$(VERSION)/g" doxygen.sty >..\latex\doxygen.sty
+ @epstopdf doxygen_logo.eps --outfile=..\latex\doxygen_logo.pdf
+
+clean:
+ del /s /q ..\html ..\latex
+ del translator_report.txt *.bak
+
+language: language.doc
+
+language.doc: maintainers.txt language.tpl translator.py
+ set DOXYGEN_DOCDIR=. & set VERSION=$(VERSION) & python translator.py
+
+FORCE:
diff --git a/doc/Makefile.win_nmake.in b/doc/Makefile.win_nmake.in new file mode 100644 index 0000000..af8711c --- /dev/null +++ b/doc/Makefile.win_nmake.in @@ -0,0 +1,38 @@ +# +# +# +# Copyright (C) 1997-2012 by Dimitri van Heesch. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation under the terms of the GNU General Public License is hereby +# granted. No representations are made about the suitability of this software +# for any purpose. It is provided "as is" without express or implied warranty. +# See the GNU General Public License for more details. +# +# Documents produced by Doxygen are derivative works derived from the +# input used in their production; they are not affected by this license. + +all: language FORCE + @xcopy /s /q /i ..\examples ..\html\examples + set DOXYGEN_DOCDIR=. + set VERSION=$(VERSION) + $(DOXYGEN)\bin\doxygen + @del ..\latex\refman.tex + @copy doxygen_logo*.gif ..\html + @copy Makefile.latex ..\latex\Makefile + @sed -e "s/\$$VERSION/$(VERSION)/g" doxygen_manual.tex >..\latex\doxygen_manual.tex + @sed -e "s/\$$VERSION/$(VERSION)/g" doxygen.sty >..\latex\doxygen.sty + @epstopdf doxygen_logo.eps --outfile=..\latex\doxygen_logo.pdf + +clean: + del /s /q ..\html ..\latex + del translator_report.txt *.bak + +language: language.doc + +language.doc: maintainers.txt language.tpl translator.py + set DOXYGEN_DOCDIR=. + set VERSION=$(VERSION) + python translator.py + +FORCE: diff --git a/doc/arch.doc b/doc/arch.doc new file mode 100644 index 0000000..f89b12a --- /dev/null +++ b/doc/arch.doc @@ -0,0 +1,242 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page arch Doxygen's Internals + +<h3>Doxygen's internals</h3> + +<B>Note that this section is still under construction!</B> + +The following picture shows how source files are processed by doxygen. + +\image html archoverview.gif "Data flow overview" +\image latex archoverview.eps "Data flow overview" width=14cm + +The following sections explain the steps above in more detail. + +<h3>Config parser</h3> + +The configuration file that controls the settings of a project is parsed +and the settings are stored in the singleton class \c Config +in <code>src/config.h</code>. The parser itself is written using \c flex +and can be found in <code>src/config.l</code>. This parser is also used +directly by \c doxywizard, so it is put in a separate library. + +Each configuration option has one of 5 possible types: \c String, +\c List, \c Enum, \c Int, or \c Bool. The values of these options are +available through the global functions \c Config_getXXX(), where \c XXX is the +type of the option. The argument of these function is a string naming +the option as it appears in the configuration file. For instance: +\c Config_getBool("GENERATE_TESTLIST") returns a reference to a boolean +value that is \c TRUE if the test list was enabled in the config file. + +The function \c readConfiguration() in \c src/doxygen.cpp +reads the command line options and then calls the configuration parser. + +<h3>C Preprocessor</h3> + +The input files mentioned in the config file are (by default) fed to the +C Preprocessor (after being piped through a user defined filter if available). + +The way the preprocessor works differs somewhat from a standard C Preprocessor. +By default it does not do macro expansion, although it can be configured to +expand all macros. Typical usage is to only expand a user specified set +of macros. This is to allow macro names to appear in the type of +function parameters for instance. + +Another difference is that the preprocessor parses, but not actually includes +code when it encounters a \#include (with the exception of \#include +found inside { ... } blocks). The reasons behind this deviation from +the standard is to prevent feeding multiple definitions of the +same functions/classes to doxygen's parser. If all source files would +include a common header file for instance, the class and type +definitions (and their documentation) would be present in each +translation unit. + +The preprocessor is written using \c flex and can be found in +\c src/pre.l. For condition blocks (\#if) evaluation of constant expressions +is needed. For this a \c yacc based parser is used, which can be found +in \c src/constexp.y and \c src/constexp.l. + +The preprocessor is invoked for each file using the \c preprocessFile() +function declared in \c src/pre.h, and will append the preprocessed result +to a character buffer. The format of the character buffer is + +\verbatim +0x06 file name 1 +0x06 preprocessed contents of file 1 +... +0x06 file name n +0x06 preprocessed contents of file n +\endverbatim + +<h3>Language parser</h3> + +The preprocessed input buffer is fed to the language parser, which is +implemented as a big state machine using \c flex. It can be found +in the file \c src/scanner.l. There is one parser for all +languages (C/C++/Java/IDL). The state variables \c insideIDL +and \c insideJava are uses at some places for language specific choices. + +The task of the parser is to convert the input buffer into a tree of entries +(basically an abstract syntax tree). An entry is defined in \c src/entry.h +and is a blob of loosely structured information. The most important field +is \c section which specifies the kind of information contained in the entry. + +Possible improvements for future versions: + - Use one scanner/parser per language instead of one big scanner. + - Move the first pass parsing of documentation blocks to a separate module. + - Parse defines (these are currently gathered by the preprocessor, and + ignored by the language parser). + +<h3>Data organizer</h3> + +This step consists of many smaller steps, that build +dictionaries of the extracted classes, files, namespaces, +variables, functions, packages, pages, and groups. Besides building +dictionaries, during this step relations (such as inheritance relations), +between the extracted entities are computed. + +Each step has a function defined in \c src/doxygen.cpp, which operates +on the tree of entries, built during language parsing. Look at the +"Gathering information" part of \c parseInput() for details. + +The result of this step is a number of dictionaries, which can be +found in the Doxygen "namespace" defined in \c src/doxygen.h. Most +elements of these dictionaries are derived from the class \c Definition; +The class \c MemberDef, for instance, holds all information for a member. +An instance of such a class can be part of a file ( class \c FileDef ), +a class ( class \c ClassDef ), a namespace ( class \c NamespaceDef ), +a group ( class \c GroupDef ), or a Java package ( class \c PackageDef ). + +<h3>Tag file parser</h3> + +If tag files are specified in the configuration file, these are parsed +by a SAX based XML parser, which can be found in \c src/tagreader.cpp. +The result of parsing a tag file is the insertion of \c Entry objects in the +entry tree. The field \c Entry::tagInfo is used to mark the entry as +external, and holds information about the tag file. + +<h3>Documentation parser</h3> + +Special comment blocks are stored as strings in the entities that they +document. There is a string for the brief description and a string +for the detailed description. The documentation parser reads these +strings and executes the commands it finds in it (this is the second pass +in parsing the documentation). It writes the result directly to the output +generators. + +The parser is written in C++ and can be found in src/docparser.cpp. The +tokens that are eaten by the parser come from src/doctokenizer.l. +Code fragments found in the comment blocks are passed on to the source parser. + +The main entry point for the documentation parser is \c validatingParseDoc() +declared in \c src/docparser.h. For simple texts with special +commands \c validatingParseText() is used. + +<h3>Source parser</h3> + +If source browsing is enabled or if code fragments are encountered in the +documentation, the source parser is invoked. + +The code parser tries to cross-reference to source code it parses with +documented entities. It also does syntax highlighting of the sources. The +output is directly written to the output generators. + +The main entry point for the code parser is \c parseCode() +declared in \c src/code.h. + +<h3>Output generators</h3> + +After data is gathered and cross-referenced, doxygen generates +output in various formats. For this it uses the methods provided by +the abstract class \c OutputGenerator. In order to generate output +for multiple formats at once, the methods of \c OutputList are called +instead. This class maintains a list of concrete output generators, +where each method called is delegated to all generators in the list. + +To allow small deviations in what is written to the output for each +concrete output generator, it is possible to temporarily disable certain +generators. The OutputList class contains various \c disable() and \c enable() +methods for this. The methods \c OutputList::pushGeneratorState() and +\c OutputList::popGeneratorState() are used to temporarily save the +set of enabled/disabled output generators on a stack. + +The XML is generated directly from the gathered data structures. In the +future XML will be used as an intermediate language (IL). The output +generators will then use this IL as a starting point to generate the +specific output formats. The advantage of having an IL is that various +independently developed tools written in various languages, +could extract information from the XML output. Possible tools could be: +- an interactive source browser +- a class diagram generator +- computing code metrics. + +<h3>Debugging</h3> + +Since doxygen uses a lot of \c flex code it is important to understand +how \c flex works (for this one should read the man page) +and to understand what it is doing when \c flex is parsing some input. +Fortunately, when flex is used with the -d option it outputs what rules +matched. This makes it quite easy to follow what is going on for a +particular input fragment. + +To make it easier to toggle debug information for a given flex file I +wrote the following perl script, which automatically adds or removes -d +from the correct line in the Makefile: + +\verbatim +#!/usr/bin/perl + +$file = shift @ARGV; +print "Toggle debugging mode for $file\n"; + +# add or remove the -d flex flag in the makefile +unless (rename "Makefile.libdoxygen","Makefile.libdoxygen.old") { + print STDERR "Error: cannot rename Makefile.libdoxygen!\n"; + exit 1; +} +if (open(F,"<Makefile.libdoxygen.old")) { + unless (open(G,">Makefile.libdoxygen")) { + print STDERR "Error: opening file Makefile.libdoxygen for writing\n"; + exit 1; + } + print "Processing Makefile.libdoxygen...\n"; + while (<F>) { + if ( s/\(LEX\) (-i )?-P([a-zA-Z]+)YY -t $file/(LEX) -d \1-P\2YY -t $file/g ) { + print "Enabling debug info for $file\n"; + } + elsif ( s/\(LEX\) -d (-i )?-P([a-zA-Z]+)YY -t $file/(LEX) \1-P\2YY -t $file/g ) { + print "Disabling debug info for $file\n"; + } + print G "$_"; + } + close F; + unlink "Makefile.libdoxygen.old"; +} +else { + print STDERR "Warning file Makefile.libdoxygen.old does not exist!\n"; +} + +# touch the file +$now = time; +utime $now, $now, $file + +\endverbatim + +*/ + + diff --git a/doc/archoverview.eps b/doc/archoverview.eps new file mode 100644 index 0000000..b41d36c --- /dev/null +++ b/doc/archoverview.eps @@ -0,0 +1,380 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: archoverview.eps +%%Creator: fig2dev Version 3.2 Patchlevel 1 +%%CreationDate: Sat Sep 8 19:41:40 2001 +%%For: root@blizzard (root) +%%Orientation: Portrait +%%BoundingBox: 0 0 733 511 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +-31.0 537.0 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def + /DrawEllipse { + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def + /savematrix mtrx currentmatrix def + x y tr xrad yrad sc 0 0 1 startangle endangle arc + closepath + savematrix setmatrix + } def + +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def +%%EndProlog + +$F2psBegin +10 setmiterlimit +n -1000 9949 m -1000 -1000 l 13719 -1000 l 13719 9949 l cp clip + 0.06000 0.06000 sc +7.500 slw +% Ellipse +n 4425 1725 900 900 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 5100 4200 900 900 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 10500 4275 900 900 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 2402 4198 900 900 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 7863 8104 837 837 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 5113 6622 887 887 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 9375 6450 837 837 0 360 DrawEllipse gs col0 s gr + +% Ellipse +n 7800 4200 900 900 0 360 DrawEllipse gs col0 s gr + +% Polyline +gs clippath +1380 4170 m 1500 4200 l 1380 4230 l 1515 4230 l 1515 4170 l cp +clip +n 600 4200 m 1500 4200 l gs col0 s gr gr + +% arrowhead +n 1380 4170 m 1500 4200 l 1380 4230 l 1380 4200 l 1380 4170 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +4080 4170 m 4200 4200 l 4080 4230 l 4215 4230 l 4215 4170 l cp +clip +n 3300 4200 m 4200 4200 l gs col0 s gr gr + +% arrowhead +n 4080 4170 m 4200 4200 l 4080 4230 l 4080 4200 l 4080 4170 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +9480 4170 m 9600 4200 l 9480 4230 l 9615 4230 l 9615 4170 l cp +clip +n 8700 4200 m 9600 4200 l gs col0 s gr gr + +% arrowhead +n 9480 4170 m 9600 4200 l 9480 4230 l 9480 4200 l 9480 4170 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +11881 3482 m 12000 3450 l 11910 3535 l 12028 3469 l 11999 3416 l cp +clip +n 11325 3825 m 12000 3450 l gs col0 s gr gr + +% arrowhead +n 11881 3482 m 12000 3450 l 11910 3535 l 11895 3508 l 11881 3482 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +11876 4050 m 12000 4050 l 11891 4108 l 12022 4075 l 12007 4017 l cp +clip +n 11400 4200 m 12000 4050 l gs col0 s gr gr + +% arrowhead +n 11876 4050 m 12000 4050 l 11891 4108 l 11884 4079 l 11876 4050 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +11900 5028 m 12000 5100 l 11877 5083 l 12003 5133 l 12025 5078 l cp +clip +n 11250 4800 m 12000 5100 l gs col0 s gr gr + +% arrowhead +n 11900 5028 m 12000 5100 l 11877 5083 l 11889 5055 l 11900 5028 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +11891 4517 m 12000 4575 l 11876 4575 l 12007 4608 l 12022 4550 l cp +clip +n 11400 4425 m 12000 4575 l gs col0 s gr gr + +% arrowhead +n 11891 4517 m 12000 4575 l 11876 4575 l 11884 4546 l 11891 4517 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +11880 2820 m 12000 2850 l 11880 2880 l 12015 2880 l 12015 2820 l cp +clip +n 7800 3300 m 7800 2850 l 12000 2850 l gs col0 s gr gr + +% arrowhead +n 11880 2820 m 12000 2850 l 11880 2880 l 11880 2850 l 11880 2820 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +10470 5295 m 10500 5175 l 10530 5295 l 10530 5160 l 10470 5160 l cp +clip +n 8700 8100 m 10500 8100 l 10500 5175 l gs col0 s gr gr + +% arrowhead +n 10470 5295 m 10500 5175 l 10530 5295 l 10500 5295 l 10470 5295 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +4455 705 m 4425 825 l 4395 705 l 4395 840 l 4455 840 l cp +clip +n 4425 450 m 4425 825 l gs col0 s gr gr + +% arrowhead +n 4455 705 m 4425 825 l 4395 705 l 4425 705 l 4455 705 l cp gs 0.00 setgray ef gr col0 s +% Polyline + [60] 0 sd +gs clippath +3405 1695 m 3525 1725 l 3405 1755 l 3540 1755 l 3540 1695 l cp +clip +n 3525 1725 m 2400 1725 l 2400 3300 l gs col0 s gr gr + [] 0 sd +% arrowhead +n 3405 1695 m 3525 1725 l 3405 1755 l 3405 1725 l 3405 1695 l cp gs 0.00 setgray ef gr col0 s +% Polyline + [60] 0 sd +gs clippath +5445 1680 m 5325 1650 l 5445 1620 l 5310 1620 l 5310 1680 l cp +clip +n 5325 1650 m 7575 1650 l 7575 3300 l gs col0 s gr gr + [] 0 sd +% arrowhead +n 5445 1680 m 5325 1650 l 5445 1620 l 5445 1650 l 5445 1680 l cp gs 0.00 setgray ef gr col0 s +% Polyline + [60] 0 sd +gs clippath +4845 2670 m 4875 2550 l 4905 2670 l 4905 2535 l 4845 2535 l cp +clip +n 4875 2550 m 4875 3300 l gs col0 s gr gr + [] 0 sd +% arrowhead +n 4845 2670 m 4875 2550 l 4905 2670 l 4875 2670 l 4845 2670 l cp gs 0.00 setgray ef gr col0 s +% Polyline + [60] 0 sd +n 7575 1650 m 10500 1650 l 10500 3375 l gs col0 s gr [] 0 sd +% Polyline +gs clippath +6930 8070 m 7050 8100 l 6930 8130 l 7065 8130 l 7065 8070 l cp +clip +n 2400 5100 m 2400 8100 l 7050 8100 l gs col0 s gr gr + +% arrowhead +n 6930 8070 m 7050 8100 l 6930 8130 l 6930 8100 l 6930 8070 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +6780 4170 m 6900 4200 l 6780 4230 l 6915 4230 l 6915 4170 l cp +clip +n 6000 4200 m 6900 4200 l gs col0 s gr gr + +% arrowhead +n 6780 4170 m 6900 4200 l 6780 4230 l 6780 4200 l 6780 4170 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +7090 4932 m 7200 4875 l 7130 4977 l 7231 4887 l 7191 4843 l cp +clip +n 5850 6075 m 7200 4875 l gs col0 s gr gr + +% arrowhead +n 7090 4932 m 7200 4875 l 7130 4977 l 7110 4955 l 7090 4932 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +7830 7155 m 7800 7275 l 7770 7155 l 7770 7290 l 7830 7290 l cp +clip +n 7800 7275 m 7800 5100 l gs col0 s gr gr + +% arrowhead +n 7830 7155 m 7800 7275 l 7770 7155 l 7800 7155 l 7830 7155 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +8886 5583 m 8925 5700 l 8835 5615 l 8908 5729 l 8958 5697 l cp +clip +n 8400 4875 m 8925 5700 l gs col0 s gr gr + +% arrowhead +n 8886 5583 m 8925 5700 l 8835 5615 l 8861 5599 l 8886 5583 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +8575 7427 m 8475 7500 l 8529 7389 l 8442 7492 l 8488 7531 l cp +clip +n 8850 7050 m 8475 7500 l gs col0 s gr gr + +% arrowhead +n 8575 7427 m 8475 7500 l 8529 7389 l 8552 7408 l 8575 7427 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +10106 5255 m 10200 5175 l 10155 5290 l 10233 5180 l 10184 5145 l cp +clip +n 9825 5700 m 10200 5175 l gs col0 s gr gr + +% arrowhead +n 10106 5255 m 10200 5175 l 10155 5290 l 10130 5273 l 10106 5255 l cp gs 0.00 setgray ef gr col0 s +/Helvetica ff 180.00 scf sf +3900 1725 m +gs 1 -1 sc (Config parser) col0 sh gr +/Helvetica ff 180.00 scf sf +4425 4275 m +gs 1 -1 sc (Language parser) col0 sh gr +/Helvetica ff 180.00 scf sf +1725 4275 m +gs 1 -1 sc (C Preprocessor) col0 sh gr +/Helvetica ff 180.00 scf sf +12150 3525 m +gs 1 -1 sc (HTML) col0 sh gr +/Helvetica ff 180.00 scf sf +12150 4125 m +gs 1 -1 sc (LaTeX) col0 sh gr +/Helvetica ff 180.00 scf sf +12150 4650 m +gs 1 -1 sc (RTF) col0 sh gr +/Helvetica ff 180.00 scf sf +12150 2925 m +gs 1 -1 sc (XML) col0 sh gr +/Helvetica ff 180.00 scf sf +3450 4500 m +gs 1 -1 sc (input) col0 sh gr +/Helvetica ff 180.00 scf sf +3450 4725 m +gs 1 -1 sc (string) col0 sh gr +/Helvetica ff 180.00 scf sf +6150 4500 m +gs 1 -1 sc (entry) col0 sh gr +/Helvetica ff 180.00 scf sf +6150 4725 m +gs 1 -1 sc (tree) col0 sh gr +/Helvetica ff 180.00 scf sf +525 3975 m +gs 1 -1 sc (input files) col0 sh gr +/Helvetica ff 180.00 scf sf +12150 5175 m +gs 1 -1 sc (Man) col0 sh gr +/Helvetica ff 180.00 scf sf +4650 750 m +gs 1 -1 sc (config file) col0 sh gr +/Helvetica ff 180.00 scf sf +7950 5475 m +gs 1 -1 sc (drives) col0 sh gr +/Helvetica ff 180.00 scf sf +8850 4050 m +gs 1 -1 sc (drives) col0 sh gr +/Helvetica ff 180.00 scf sf +2475 3150 m +gs 1 -1 sc (get settings) col0 sh gr +/Helvetica ff 180.00 scf sf +6675 5550 m +gs 1 -1 sc (entry) col0 sh gr +/Helvetica ff 180.00 scf sf +6675 5775 m +gs 1 -1 sc (tree) col0 sh gr +/Helvetica ff 180.00 scf sf +9525 5325 m +gs 1 -1 sc (drives) col0 sh gr +/Helvetica ff 180.00 scf sf +8700 7500 m +gs 1 -1 sc (drives) col0 sh gr +/Helvetica ff 180.00 scf sf +4575 6675 m +gs 1 -1 sc (tag file parser) col0 sh gr +/Helvetica ff 180.00 scf sf +8925 6525 m +gs 1 -1 sc (Doc Parser) col0 sh gr +/Helvetica ff 180.00 scf sf +7275 8175 m +gs 1 -1 sc (Source Parser) col0 sh gr +/Helvetica ff 180.00 scf sf +7200 4275 m +gs 1 -1 sc (Data organiser) col0 sh gr +/Helvetica ff 180.00 scf sf +9750 4275 m +gs 1 -1 sc (Output generators) col0 sh gr +/Helvetica ff 180.00 scf sf +8775 8325 m +gs 1 -1 sc (drives) col0 sh gr +$F2psEnd +rs diff --git a/doc/archoverview.gif b/doc/archoverview.gif Binary files differnew file mode 100644 index 0000000..f404076 --- /dev/null +++ b/doc/archoverview.gif diff --git a/doc/autolink.doc b/doc/autolink.doc new file mode 100644 index 0000000..7dcb328 --- /dev/null +++ b/doc/autolink.doc @@ -0,0 +1,134 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page autolink Automatic link generation + + \tableofcontents + + Most documentation systems have special `see also' sections where links + to other pieces of documentation can be inserted. + Although doxygen also has a command to start such a section (See section + \ref cmdsa "\\sa"), it does allow you to put these kind of links anywhere in the + documentation. + For \f$\mbox{\LaTeX}\f$ documentation a reference to the page number + is written instead of a link. Furthermore, the index at the end of the + document can be used to quickly find the documentation of a member, class, + namespace or file. + For man pages no reference information is generated. + + The next sections show how to generate links to the various documented + entities in a source file. + + \section linkurl Links to web pages and mail addresses + + Doxygen will automatically replace any URLs and mail addresses found in the + documentation by links (in HTML). To manually specify link text, use the + HTML '<tt>a</tt>' tag: + \verbatim <a href="linkURL">link text</a> \endverbatim + which will be automatically translated to other output formats by Doxygen. + + \section linkclass Links to classes + + All words in the documentation that correspond to a documented class and + contain at least one non-lower case character will automatically be + replaced by a link to the page containing the + documentation of the class. If you want to prevent that a word + that corresponds to a documented class is replaced by a link you + should put a \% in front of the word. + To link to an all lower case symbol, use \ref cmdref "\\ref". + + \section linkfile Links to files + + All words that contain a dot (<tt>.</tt>) that is not the last character + in the word are considered to be file names. + If the word is indeed the name of a documented input file, a link will + automatically be created to the documentation of that file. + + \section linkfunc Links to functions + + Links to functions are created if one of the following patterns is + encountered: + <ol> + <li><tt>\<functionName\>"("\<argument-list\>")"</tt> + <li><tt>\<functionName\>"()"</tt> + <li><tt>"::"\<functionName\></tt> + <li><tt>(\<className\>"::")<sup>n</sup>\<functionName\>"("\<argument-list\>")"</tt> + <li><tt>(\<className\>"::")<sup>n</sup>\<functionName\>"("\<argument-list\>")"\<modifiers\></tt> + <li><tt>(\<className\>"::")<sup>n</sup>\<functionName\>"()"</tt> + <li><tt>(\<className\>"::")<sup>n</sup>\<functionName\></tt> + </ol> + where n\>0. + + \par Note 1: + Function arguments should be specified with correct types, i.e. + 'fun(const std::string&,bool)' or '()' to match any prototype. + \par Note 2: + Member function modifiers (like 'const' and 'volatile') + are required to identify the target, i.e. 'func(int) const' and 'fun(int)' + target different member functions. + \par Note 3: + For JavaDoc compatibility a \# may be used instead of a :: in + the patterns above. + \par Note 4: + In the documentation of a class containing a member foo, + a reference to a global variable is made using "::foo", whereas \#foo + will link to the member. + + For non overloaded members the argument list may be omitted. + + If a function is overloaded and no matching argument list is specified + (i.e. pattern 2 or 6 is used), a link will be created to the + documentation of one of the overloaded members. + + For member functions the class scope (as used in patterns 4 to 7) may + be omitted, if: + <ol> + <li>The pattern points to a documented member that belongs to the same class + as the documentation block that contains the pattern. + <li>The class that corresponds to the documentation blocks that contains + the pattern has a base class that contains a documented member + that matches the pattern. + </ol> + + \section linkother Links to other members + + All of these entities can be linked to in the same way as described in the + previous section. For sake of clarity it is advised to only use + patterns 3 and 7 in this case. + + \par Example: + \verbinclude autolink.cpp + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/autolink/html/index.html">here</a> + for the corresponding HTML documentation that is generated by Doxygen. + \endhtmlonly + + \section resolving typedefs + + Typedefs that involve classes, structs and unions, like +\verbatim +typedef struct StructName TypeName +\endverbatim + create an alias for StructName, so links will be generated to StructName, + when either StructName itself or TypeName is encountered. + + \par Example: + \verbinclude restypedef.cpp + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/restypedef/html/restypedef_8cpp.html">here</a> + for the corresponding HTML documentation that is generated by Doxygen. + \endhtmlonly +*/ diff --git a/doc/commands.doc b/doc/commands.doc new file mode 100644 index 0000000..66eabd9 --- /dev/null +++ b/doc/commands.doc @@ -0,0 +1,2875 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page commands Special Commands + +\section cmd_intro Introduction + +All commands in the documentation start with a backslash (<b>\\</b>) or an +at-sign (<b>\@</b>). If you prefer you can replace all commands starting with a +backslash below by their counterparts that start with an at-sign. + +Some commands have one or more arguments. +Each argument has a certain range: +<ul> +<li>If \<sharp\> braces are used the argument is a single word. +<li>If (round) braces are used the argument extends until the end of the line + on which the command was found. +<li>If {curly} braces are used the argument extends until the next paragraph. + Paragraphs are delimited by a blank line or by a section indicator. +</ul> +If in addition to the above argument specifiers [square] brackets are used the argument is optional. + +Here is an alphabetically sorted list of all commands with references to their +documentation: +\secreflist +\refitem cmda \\a +\refitem cmdaddindex \\addindex +\refitem cmdaddtogroup \\addtogroup +\refitem cmdanchor \\anchor +\refitem cmdarg \\arg +\refitem cmdattention \\attention +\refitem cmdauthor \\author +\refitem cmdauthors \\authors +\refitem cmdb \\b +\refitem cmdbrief \\brief +\refitem cmdbug \\bug +\refitem cmdc \\c +\refitem cmdcallgraph \\callgraph +\refitem cmdcallergraph \\callergraph +\refitem cmdcategory \\category +\refitem cmdcite \\cite +\refitem cmdclass \\class +\refitem cmdcode \\code +\refitem cmdcond \\cond +\refitem cmdcopybrief \\copybrief +\refitem cmdcopydetails \\copydetails +\refitem cmdcopydoc \\copydoc +\refitem cmdcopyright \\copyright +\refitem cmddate \\date +\refitem cmddef \\def +\refitem cmddefgroup \\defgroup +\refitem cmddeprecated \\deprecated +\refitem cmddetails \\details +\refitem cmddir \\dir +\refitem cmddontinclude \\dontinclude +\refitem cmddot \\dot +\refitem cmddotfile \\dotfile +\refitem cmde \\e +\refitem cmdelse \\else +\refitem cmdelseif \\elseif +\refitem cmdem \\em +\refitem cmdendcode \\endcode +\refitem cmdendcond \\endcond +\refitem cmdenddot \\enddot +\refitem cmdendhtmlonly \\endhtmlonly +\refitem cmdendif \\endif +\refitem cmdendinternal \\endinternal +\refitem cmdendlatexonly \\endlatexonly +\refitem cmdendlink \\endlink +\refitem cmdendmanonly \\endmanonly +\refitem cmdendmsc \\endmsc +\refitem cmdendrtfonly \\endrtfonly +\refitem cmdendverbatim \\endverbatim +\refitem cmdendxmlonly \\endxmlonly +\refitem cmdenum \\enum +\refitem cmdexample \\example +\refitem cmdexception \\exception +\refitem cmdextends \\extends +\refitem cmdfdollar \\f\$ +\refitem cmdfbropen \\f[ +\refitem cmdfbrclose \\f] +\refitem cmdfcurlyopen \\f{ +\refitem cmdfcurlyclose \\f} +\refitem cmdfile \\file +\refitem cmdfn \\fn +\refitem cmdheaderfile \\headerfile +\refitem cmdhideinitializer \\hideinitializer +\refitem cmdhtmlinclude \\htmlinclude +\refitem cmdhtmlonly \\htmlonly +\refitem cmdif \\if +\refitem cmdifnot \\ifnot +\refitem cmdimage \\image +\refitem cmdimplements \\implements +\refitem cmdinclude \\include +\refitem cmdincludelineno \\includelineno +\refitem cmdingroup \\ingroup +\refitem cmdinternal \\internal +\refitem cmdinvariant \\invariant +\refitem cmdinterface \\interface +\refitem cmdlatexonly \\latexonly +\refitem cmdli \\li +\refitem cmdline \\line +\refitem cmdlink \\link +\refitem cmdmainpage \\mainpage +\refitem cmdmanonly \\manonly +\refitem cmdmemberof \\memberof +\refitem cmdmsc \\msc +\refitem cmdmscfile \\mscfile +\refitem cmdn \\n +\refitem cmdname \\name +\refitem cmdnamespace \\namespace +\refitem cmdnosubgrouping \\nosubgrouping +\refitem cmdnote \\note +\refitem cmdoverload \\overload +\refitem cmdp \\p +\refitem cmdpackage \\package +\refitem cmdpage \\page +\refitem cmdpar \\par +\refitem cmdparagraph \\paragraph +\refitem cmdparam \\param +\refitem cmdpost \\post +\refitem cmdpre \\pre +\refitem cmdprivate \\private +\refitem cmdprivate \\privatesection +\refitem cmdproperty \\property +\refitem cmdprotected \\protected +\refitem cmdprotected \\protectedsection +\refitem cmdprotocol \\protocol +\refitem cmdpublic \\public +\refitem cmdpublic \\publicsection +\refitem cmdref \\ref +\refitem cmdrelated \\related +\refitem cmdrelates \\relates +\refitem cmdrelatedalso \\relatedalso +\refitem cmdrelatesalso \\relatesalso +\refitem cmdremark \\remark +\refitem cmdremarks \\remarks +\refitem cmdresult \\result +\refitem cmdreturn \\return +\refitem cmdreturns \\returns +\refitem cmdretval \\retval +\refitem cmdrtfonly \\rtfonly +\refitem cmdsa \\sa +\refitem cmdsection \\section +\refitem cmdsee \\see +\refitem cmdshort \\short +\refitem cmdshowinitializer \\showinitializer +\refitem cmdsince \\since +\refitem cmdskip \\skip +\refitem cmdskipline \\skipline +\refitem cmdsnippet \\snippet +\refitem cmdstruct \\struct +\refitem cmdsubpage \\subpage +\refitem cmdsubsection \\subsection +\refitem cmdsubsubsection \\subsubsection +\refitem cmdtableofcontents \\tableofcontents +\refitem cmdtest \\test +\refitem cmdthrow \\throw +\refitem cmdthrows \\throws +\refitem cmdtodo \\todo +\refitem cmdtparam \\tparam +\refitem cmdtypedef \\typedef +\refitem cmdunion \\union +\refitem cmduntil \\until +\refitem cmdvar \\var +\refitem cmdverbatim \\verbatim +\refitem cmdverbinclude \\verbinclude +\refitem cmdversion \\version +\refitem cmdwarning \\warning +\refitem cmdweakgroup \\weakgroup +\refitem cmdxmlonly \\xmlonly +\refitem cmdxrefitem \\xrefitem +\refitem cmddollar \\\$ +\refitem cmdat \\\@ +\refitem cmdbackslash \\\\ +\refitem cmdamp \\\& +\refitem cmdtilde \\~ +\refitem cmdlt \\\< +\refitem cmdgt \\\> +\refitem cmdhash \\\# +\refitem cmdperc \\\% +\refitem cmdquot \\\" +\refitem cmdchardot \\\. +\refitem cmddcolon \:: +\endsecreflist + +The following subsections provide a list of all commands that are recognized by +doxygen. Unrecognized commands are treated as normal text. + + +\htmlonly <center> \endhtmlonly +<h2> +\htmlonly --- \endhtmlonly +Structural indicators +\htmlonly --- \endhtmlonly +</h2> +\htmlonly </center> \endhtmlonly + +\section cmdaddtogroup \\addtogroup <name> [(title)] + \addindex \\addtogroup + Defines a group just like \ref cmddefgroup "\\defgroup", but in contrast to + that command using the same \<name\> more than once will not result in a warning, + but rather one group with a merged documentation and the first title found in + any of the commands. + + The title is optional, so this command can also be used to add a number of + entities to an existing group using \@{ and \@} like this: + +\verbatim + /*! \addtogroup mygrp + * Additional documentation for group 'mygrp' + * @{ + */ + + /*! + * A function + */ + void func1() + { + } + + /*! Another function */ + void func2() + { + } + + /*! @} */ +\endverbatim + + \sa page \ref grouping "Grouping", sections \ref cmddefgroup "\\defgroup", \ref cmdingroup "\\ingroup", and + \ref cmdweakgroup "\\weakgroup". + +<hr> +\section cmdcallgraph \\callgraph + + \addindex \\callgraph + When this command is put in a comment block of a function or method + and \ref cfg_have_dot "HAVE_DOT" is set to YES, then doxygen will + generate a call graph for that function (provided the implementation of the + function or method calls other documented functions). The call graph will be + generated regardless of the value of \ref cfg_call_graph "CALL_GRAPH". + \note The completeness (and correctness) of the call graph depends on the + doxygen code parser which is not perfect. + + \sa section \ref cmdcallergraph "\\callergraph". + +<hr> +\section cmdcallergraph \\callergraph + + \addindex \\callergraph + When this command is put in a comment block of a function or method + and \ref cfg_have_dot "HAVE_DOT" is set to YES, then doxygen will + generate a caller graph for that function (provided the implementation of the + function or method calls other documented functions). The caller graph will be + generated regardless of the value of \ref cfg_caller_graph "CALLER_GRAPH". + \note The completeness (and correctness) of the caller graph depends on the + doxygen code parser which is not perfect. + + \sa section \ref cmdcallgraph "\\callgraph". + +<hr> +\section cmdcategory \\category <name> [<header-file>] [<header-name>] + + \addindex \\category + For Objective-C only: Indicates that a comment block contains documentation + for a class category with name \<name\>. The arguments are + equal to the \\class command. + + \sa section \ref cmdclass "\\class". + +<hr> +\section cmdclass \\class <name> [<header-file>] [<header-name>] + + \addindex \\class + Indicates that a comment block contains documentation for a + class with name \<name\>. Optionally a header file and a header name + can be specified. If the header-file is specified, a link to a verbatim copy + of the header will be included in the HTML documentation. + The \<header-name\> argument can be used to overwrite the + name of the link that is used in the class documentation to something other + than \<header-file\>. This can be useful if the include name is not located + on the default include path (like \<X11/X.h\>). With the \<header-name\> + argument you can also specify how the include statement should look like, + by adding either quotes or sharp brackets around the name. + Sharp brackets are used if just the name is given. Note that the + last two arguments can also be specified using + the \ref cmdheaderfile "\\headerfile" command. + + \par Example: + \verbinclude class.h + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/class/html/index.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + +<hr> +\section cmddef \\def <name> + + \addindex \\def + Indicates that a comment block contains documentation for a + \c \#define macro. + + \par Example: + \verbinclude define.h + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/define/html/define_8h.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + +<hr> +\section cmddefgroup \\defgroup <name> (group title) + + \addindex \\defgroup + Indicates that a comment block contains documentation for a + \ref modules "group" of classes, files or namespaces. This can be used to + categorize classes, files or namespaces, and document those + categories. You can also use groups as members of other groups, + thus building a hierarchy of groups. + + The \<name\> argument should be a single-word identifier. + + \sa page \ref grouping "Grouping", sections \ref cmdingroup "\\ingroup", \ref cmdaddtogroup "\\addtogroup", and + \ref cmdweakgroup "\\weakgroup". + +<hr> +\section cmddir \\dir [<path fragment>] + + \addindex \\dir + Indicates that a comment block contains documentation for a directory. + The "path fragment" argument should include the directory name and + enough of the path to be unique with respect to the other directories + in the project. + The \ref cfg_strip_from_path "STRIP_FROM_PATH" option determines what is + stripped from the full path before it appears in the output. + +<hr> +\section cmdenum \\enum <name> + + \addindex \\enum + Indicates that a comment block contains documentation for an + enumeration, with name \<name\>. If the enum is a member of a class and + the documentation block is located outside the class definition, + the scope of the class should be specified as well. + If a comment block is located directly in front of an enum declaration, + the \\enum comment may be omitted. + + \par Note: + The type of an anonymous enum cannot be documented, but the values + of an anonymous enum can. + + \par Example: + \verbinclude enum.h + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/enum/html/class_test.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + +<hr> +\section cmdexample \\example <file-name> + + \addindex \\example + Indicates that a comment block contains documentation for a source code + example. The name of the source file is \<file-name\>. The text of + this file will be included in the documentation, just after the + documentation contained in the comment block. All examples are placed + in a list. The source code is scanned for documented members and classes. + If any are found, the names are cross-referenced with the documentation. + Source files or directories can be specified using the + \ref cfg_example_path "EXAMPLE_PATH" + tag of doxygen's configuration file. + + If \<file-name\> itself is not unique for the set of example files specified + by the + \ref cfg_example_path "EXAMPLE_PATH" tag, you can include part of the absolute path + to disambiguate it. + + If more than one source file is needed for the example, + the \\include command can be used. + + \par Example: + \verbinclude example.cpp + Where the example file \c example_test.cpp looks as follows: + \verbinclude example_test.cpp + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/example/html/examples.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + + \sa section \ref cmdinclude "\\include". + +<hr> +\section cmdendinternal \\endinternal + + \addindex \\endinternal + This command ends a documentation fragment that was started with a + \ref cmdinternal "\\internal" command. The text between \c \\internal and + \c \\endinternal will only be visible + if \ref cfg_internal_docs "INTERNAL_DOCS" is set to YES. + +<hr> +\section cmdextends \\extends <name> + + \addindex \\extends + This command can be used to manually indicate an inheritance relation, + when the programming language does not support this concept natively + (e.g. C). + + The file \c manual.c in the example directory shows how to use this command. + + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + + \sa section \ref cmdimplements "\\implements" and section + \ref cmdmemberof "\\memberof" + +<hr> +\section cmdfile \\file [<name>] + + \addindex \\file + Indicates that a comment block contains documentation for a source or + header file with name \<name\>. The file name may include (part of) the + path if the file-name alone is not unique. If the file name is omitted + (i.e. the line after \\file is left blank) then the documentation block that + contains the \\file command will belong to the file it is located in. + + \par Important: + The documentation of global functions, variables, typedefs, and enums will + only be included in the output if the file they are in is documented as well. + + \par Example: + \verbinclude file.h + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/file/html/file_8h.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + + \note In the above example \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" + has been set to YES in the configuration file. + +<hr> +\section cmdfn \\fn (function declaration) + + \addindex \\fn + Indicates that a comment block contains documentation for a function + (either global or as a member of a class). This command is \em only + needed if a comment block is \e not placed in front (or behind) + the function declaration or definition. + + If your comment block \e is in front of the function + declaration or definition this command can (and to avoid redundancy + should) be omitted. + + A full function declaration including arguments should be specified after the + \\fn command on a \e single line, since the argument ends at the end + of the line! + + This command is equivalent to \\var, \\typedef, and \\property. + + \warning Do not use this command + if it is not absolutely needed, since it will lead to duplication of + information and thus to errors. + + \par Example: + \verbinclude func.h + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/func/html/class_test.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + + + \sa sections \ref cmdvar "\\var", \ref cmdproperty "\\property", and + \ref cmdtypedef "\\typedef". + +<hr> +\section cmdheaderfile \\headerfile <header-file> [<header-name>] + + \addindex \\headerfile + Intended to be used for class, struct, or union documentation, where + the documentation is in front of the definition. The arguments of + this command are the same as the second and third argument of + \ref cmdclass "\\class". + The \<header-file\> name refers to the file that should be included by the + application to obtain the definition of the class, struct, or union. + The \<header-name\> argument can be used to overwrite the + name of the link that is used in the class documentation to something other + than \<header-file\>. This can be useful if the include name is not located + on the default include path (like \<X11/X.h\>). + + With the \<header-name\> + argument you can also specify how the include statement should look like, + by adding either double quotes or sharp brackets around the name. + By default sharp brackets are used if just the name is given. + + If a pair of double quotes is given for either the \<header-file\> or + \<header-name\> argument, the current file (in which the command was found) + will be used but with quotes. So for a comment block with a \\headerfile + command inside a file test.h, the following three commands are equivalent: + \verbatim + \headerfile test.h "test.h" + \headerfile test.h "" + \headerfile "" \endverbatim + To get sharp brackets you do not need to specify anything, + but if you want to be explicit you could use any of the following: + \verbatim + \headerfile test.h <test.h> + \headerfile test.h <> + \headerfile <> \endverbatim + + To globally reverse the default include representation to + local includes you can set + \ref cfg_force_local_includes "FORCE_LOCAL_INCLUDES" to \c YES. + + To disable the include information altogether set + \ref cfg_show_include_files "SHOW_INCLUDE_FILES" to \c NO. + +<hr> +\section cmdhideinitializer \\hideinitializer + + \addindex \\hideinitializer + By default the value of a define and the initializer of a variable + are displayed unless they are longer than 30 lines. By putting + this command in a comment block of a define or variable, the + initializer is always hidden. The maximum number of initialization lines + can be changed by means of the configuration parameter + \ref cfg_max_initializer_lines "MAX_INITIALIZER_LINES", the default + value is 30. + + \sa section \ref cmdshowinitializer "\\showinitializer". + +<hr> +\section cmdimplements \\implements <name> + + \addindex \\implements + This command can be used to manually indicate an inheritance relation, + when the programming language does not support this concept natively + (e.g. C). + + The file \c manual.c in the example directory shows how to use this command. + + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + + \sa section \ref cmdextends "\\extends" and section + \ref cmdmemberof "\\memberof" + +<hr> +\section cmdingroup \\ingroup (<groupname> [<groupname> <groupname>]) + + \addindex \\ingroup + If the \\ingroup command is placed in a comment block of a + class, file or namespace, then it will be added to the group or + groups identified by \<groupname\>. + + \sa page \ref grouping "Grouping", sections \ref cmddefgroup "\\defgroup", + \ref cmdaddtogroup "\\addtogroup", and \ref cmdweakgroup "\\weakgroup" + +<hr> +\section cmdinterface \\interface <name> [<header-file>] [<header-name>] + + \addindex \\interface + Indicates that a comment block contains documentation for an + interface with name \<name\>. The arguments are equal to the arguments of the \\class + command. + + \sa section \ref cmdclass "\\class". + +<hr> +\section cmdinternal \\internal + + \addindex \\internal + This command starts a documentation fragment that is meant for internal + use only. The fragment naturally ends at the end of the comment block. + You can also force the internal section to end earlier by using the + \ref cmdendinternal "\\endinternal" command. + + If the \\internal command is put inside a section + (see for example \ref cmdsection "\\section") all subsections after the + command are considered to be internal as well. Only a new section at the + same level will end the fragment that is considered internal. + + You can use \ref cfg_internal_docs "INTERNAL_DOCS" in the config file + to show (\c YES) or hide (\c NO) the internal documentation. + + \sa section \ref cmdendinternal "\\endinternal". + + +<hr> +\section cmdmainpage \\mainpage [(title)] + + \addindex \\mainpage + + If the \\mainpage command is placed in a comment block the + block is used to customize the index page (in HTML) or + the first chapter (in \f$\mbox{\LaTeX}\f$). + + The title argument is optional and replaces the default title that + doxygen normally generates. If you do not want any title you can + specify \c notitle as the argument of \\mainpage. + + Here is an example: +\verbatim +/*! \mainpage My Personal Index Page + * + * \section intro_sec Introduction + * + * This is the introduction. + * + * \section install_sec Installation + * + * \subsection step1 Step 1: Opening the box + * + * etc... + */ +\endverbatim + + You can refer to the main page using \\ref index. + + \sa section \ref cmdsection "\\section", + section \ref cmdsubsection "\\subsection", and + section \ref cmdpage "\\page". + +<hr> +\section cmdmemberof \\memberof <name> + + \addindex \\memberof + This command makes a function a member of a class in a similar way + as \ref cmdrelates "\\relates" does, only with this command the function + is represented as a real member of the class. + This can be useful when the programming language does not support + the concept of member functions natively (e.g. C). + + It is also possible to use this command together with + \ref cmdpublic "\\public", \ref cmdprotected "\\protected" or + \ref cmdprivate "\\private". + + The file \c manual.c in the example directory shows how to use this command. + + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/manual/html/index.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + + \sa sections \ref cmdextends "\\extends", \ref cmdimplements "\\implements", + \ref cmdpublic "\\public", \ref cmdprotected "\\protected" and + \ref cmdprivate "\\private". + +<hr> +\section cmdname \\name [(header)] + + \addindex \\name + + This command turns a comment block into a header + definition of a member group. The + comment block should be followed by a + <code>//\@{ ... //\@}</code> block containing the + members of the group. + + See section \ref memgroup for an example. + +<hr> +\section cmdnamespace \\namespace <name> + + \addindex \\namespace + Indicates that a comment block contains documentation for a + namespace with name \<name\>. + +<hr> +\section cmdnosubgrouping \\nosubgrouping + + \addindex \\nosubgrouping + This command can be put in the documentation + of a class. It can be used in combination with member grouping + to avoid that doxygen puts a member group as a subgroup of a + Public/Protected/Private/... section. + + \sa sections \ref cmdpublicsection "\\publicsection", + \ref cmdprotectedsection "\\protectedsection" and + \ref cmdprivatesection "\\privatesection". +<hr> +\section cmdoverload \\overload [(function declaration)] + + \addindex \\overload + This command can be used to generate the following + standard text for an overloaded member function: + + > This is an overloaded member function, provided for convenience. + > It differs from the above function only in what argument(s) it accepts. + + If the documentation for the overloaded member function is not located + in front of the function declaration or definition, the optional + argument should be used to specify the correct function. + + Any other documentation that is inside the documentation block will + by appended after the generated message. + + \par Note 1: + You are responsible that there is indeed an + earlier documented member that is overloaded by this one. + To prevent that document reorders the documentation you should set + \ref cfg_sort_member_docs "SORT_MEMBER_DOCS" to NO in this case. + \par Note 2: + The \\overload command does not work inside a one-line comment. + \par Example: + \verbinclude examples/overload.cpp + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/overload/html/class_test.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + +<hr> +\section cmdpackage \\package <name> + + \addindex \\package + Indicates that a comment block contains documentation for a + Java package with name \<name\>. + +<hr> +\section cmdpage \\page <name> (title) + + \addindex \\page + Indicates that a comment block contains a piece of documentation that is + not directly related to one specific class, file or member. + The HTML generator creates a page containing the documentation. The + \f$\mbox{\LaTeX}\f$ generator + starts a new section in the chapter 'Page documentation'. + + \par Example: + \verbinclude page.doc + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/page/html/pages.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + + \par Note: + The \<name\> argument consists of a combination of letters and number + digits. If you wish to use upper case letters (e.g. \c MYPAGE1), or + mixed case letters (e.g. \c MyPage1) in the \<name\> argument, you + should set \c CASE_SENSE_NAMES to \c YES. However, this is advisable + only if your file system is case sensitive. Otherwise (and for better + portability) you should use all lower case letters (e.g. \c mypage1) + for \<name\> in all references to the page. + + \sa section \ref cmdsection "\\section", section + \ref cmdsubsection "\\subsection", and section + \ref cmdref "\\ref". + +<hr> +\section cmdprivate \\private + + \addindex \\private + Indicates that the member documented in the comment block is private, + i.e., should only be accessed by other members in the same class. + + Note that Doxygen automatically detects the protection level of members + in object-oriented languages. This command is intended for use only when + the language does not support the concept of protection level natively + (e.g. C, PHP 4). + + For starting a section of private members, in a way similar to the + "private:" class marker in C++, use \\privatesection. + + \sa sections \ref cmdmemberof "\\memberof", \ref cmdpublic "\\public", + \ref cmdprotected "\\protected" and \ref cmdprivatesection "\\privatesection". + +<hr> +\section cmdprivatesection \\privatesection + + \addindex \\privatesection + Starting a section of private members, in a way similar to the + "private:" class marker in C++. + Indicates that the member documented in the comment block is private, + i.e., should only be accessed by other members in the same class. + + \sa sections \ref cmdmemberof "\\memberof", \ref cmdpublic "\\public", + \ref cmdprotected "\\protected" and \ref cmdprivate "\\private". + +<hr> +\section cmdproperty \\property (qualified property name) + + \addindex \\property + Indicates that a comment block contains documentation for a + property (either global or as a member of a class). + This command is equivalent to \\var, \\typedef, and \\fn. + + \sa sections \ref cmdfn "\\fn", \ref cmdtypedef "\\typedef", and + \ref cmdvar "\\var". + +<hr> +\section cmdprotected \\protected + + \addindex \\protected + Indicates that the member documented in the comment block is protected, + i.e., should only be accessed by other members in the same or derived + classes. + + Note that Doxygen automatically detects the protection level of members + in object-oriented languages. This command is intended for use only when + the language does not support the concept of protection level natively + (e.g. C, PHP 4). + + For starting a section of protected members, in a way similar to the + "protected:" class marker in C++, use \\protectedsection. + + \sa sections \ref cmdmemberof "\\memberof", \ref cmdpublic "\\public", + \ref cmdprivate "\\private" and \ref cmdprotectedsection "\\protectedsection". + +<hr> +\section cmdprotectedsection \\protectedsection + + \addindex \\protectedsection + Starting a section of protected members, in a way similar to the + "protected:" class marker in C++. + Indicates that the member documented in the comment block is protected, + i.e., should only be accessed by other members in the same or derived + classes. + + \sa sections \ref cmdmemberof "\\memberof", \ref cmdpublic "\\public", + \ref cmdprivate "\\private" and \ref cmdprotected "\\protected". + +<hr> +\section cmdprotocol \\protocol <name> [<header-file>] [<header-name>] + + \addindex \\protocol + Indicates that a comment block contains documentation for a + protocol in Objective-C with name \<name\>. The arguments are equal + to the \\class command. + + \sa section \ref cmdclass "\\class". + +<hr> +\section cmdpublic \\public + + \addindex \\public + Indicates that the member documented in the comment block is public, + i.e., can be accessed by any other class or function. + + Note that Doxygen automatically detects the protection level of members + in object-oriented languages. This command is intended for use only when + the language does not support the concept of protection level natively + (e.g. C, PHP 4). + + For starting a section of public members, in a way similar to the + "public:" class marker in C++, use \\publicsection. + + \sa sections \ref cmdmemberof "\\memberof", \ref cmdprotected "\\protected", + \ref cmdprivate "\\private" and \ref cmdpublicsection "\\publicsection". + +<hr> +\section cmdpublicsection \\publicsection + + \addindex \\publicsection + Starting a section of public members, in a way similar to the + "public:" class marker in C++. + Indicates that the member documented in the comment block is public, + i.e., can be accessed by any other class or function. + + \sa sections \ref cmdmemberof "\\memberof", \ref cmdprotected "\\protected", + \ref cmdprivate "\\private" and \ref cmdpublic "\\public". + +<hr> +\section cmdrelates \\relates <name> + + \addindex \\relates + This command can be used in the documentation of a non-member function + \<name\>. It puts the function inside the 'related function' section + of the class documentation. This command is useful for documenting + non-friend functions that are nevertheless strongly coupled to a certain + class. It prevents the need of having to document a file, but + only works for functions. + + \par Example: + \verbinclude relates.cpp + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/relates/html/class_string.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + +<hr> +\section cmdrelated \\related <name> + + \addindex related + Equivalent to \ref cmdrelates "\\relates" + +<hr> +\section cmdrelatesalso \\relatesalso <name> + + \addindex \\relatesalso + This command can be used in the documentation of a non-member function + \<name\>. It puts the function both inside the 'related function' section + of the class documentation as well as leaving it at its normal file documentation + location. This command is useful for documenting + non-friend functions that are nevertheless strongly coupled to a certain + class. It only works for functions. + +<hr> +\section cmdrelatedalso \\relatedalso <name> + + \addindex relatedalso + Equivalent to \ref cmdrelatesalso "\\relatesalso" + +<hr> +\section cmdshowinitializer \\showinitializer + + \addindex \\showinitializer + By default the value of a define and the initializer of a variable + are only displayed if they are less than 30 lines long. By putting + this command in a comment block of a define or variable, the + initializer is shown unconditionally. + The maximum number of initialization lines + can be changed by means of the configuration parameter + \ref cfg_max_initializer_lines "MAX_INITIALIZER_LINES", the default value is + 30. + + \sa section \ref cmdhideinitializer "\\hideinitializer". + +<hr> +\section cmdstruct \\struct <name> [<header-file>] [<header-name>] + + \addindex \\struct + Indicates that a comment block contains documentation for a + struct with name \<name\>. The arguments are equal to the arguments of the \\class + command. + + \sa section \ref cmdclass "\\class". + +<hr> +\section cmdtypedef \\typedef (typedef declaration) + + \addindex \\typedef + Indicates that a comment block contains documentation for a + typedef (either global or as a member of a class). + This command is equivalent to \\var, \\property, and \\fn. + + \sa section \ref cmdfn "\\fn", \ref cmdproperty "\\property", and + \ref cmdvar "\\var". + +<hr> +\section cmdunion \\union <name> [<header-file>] [<header-name>] + + \addindex \\union + Indicates that a comment block contains documentation for a + union with name \<name\>. The arguments are equal to the arguments of the \\class + command. + + \sa section \ref cmdclass "\\class". + +<hr> +\section cmdvar \\var (variable declaration) + + \addindex \\var + Indicates that a comment block contains documentation for a variable or + enum value (either global or as a member of a class). + This command is equivalent to \\typedef, \\property, and \\fn. + + \sa section \ref cmdfn "\\fn", \ref cmdproperty "\\property", and \ref cmdtypedef "\\typedef". + +<hr> +\section cmdweakgroup \\weakgroup <name> [(title)] + \addindex \\addtogroup + Can be used exactly like \ref cmdaddtogroup "\\addtogroup", but has + a lower priority when it comes to resolving conflicting grouping + definitions. + + \sa page \ref grouping "Grouping" and section \ref cmdaddtogroup "\\addtogroup". + +<hr> + +\htmlonly <center> \endhtmlonly +<h2> +\htmlonly --- \endhtmlonly +Section indicators +\htmlonly --- \endhtmlonly +</h2> +\htmlonly </center>\endhtmlonly + +<hr> +\section cmdattention \\attention { attention text } + + \addindex \\attention + Starts a paragraph where a message that needs attention may be entered. + The paragraph will be indented. + The text of the paragraph has no special internal structure. All visual + enhancement commands may be used inside the paragraph. + Multiple adjacent \\attention commands will be joined into a single paragraph. + The \\attention command ends when a blank line or some other + sectioning command is encountered. + +<hr> +\section cmdauthor \\author { list of authors } + + \addindex \\author + Starts a paragraph where one or more author names may be entered. + The paragraph will be indented. + The text of the paragraph has no special internal structure. All visual + enhancement commands may be used inside the paragraph. + Multiple adjacent \\author commands will be joined into a single paragraph. + Each author description will start a new line. Alternatively, one \\author command + may mention several authors. The \\author command ends when a blank line or some other + sectioning command is encountered. + + \par Example: + \verbinclude author.cpp + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/author/html/class_some_nice_class.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + +<hr> +\section cmdauthors \\authors { list of authors } + + \addindex \\authors + Equivalent to \ref cmdauthor "\\author". + +<hr> +\section cmdbrief \\brief { brief description } + + \addindex \\brief + Starts a paragraph that serves as a brief description. For classes and files + the brief description will be used in lists and at the start of the + documentation page. For class and file members, the brief description + will be placed at the declaration of the member and prepended to the + detailed description. A brief description may span several lines (although + it is advised to keep it brief!). A brief description ends when a + blank line or another sectioning command is encountered. If multiple + \\brief commands are present they will be joined. See section + \ref cmdauthor "\\author" for an example. + + Synonymous to \\short. + +<hr> +\section cmdbug \\bug { bug description } + + \addindex \\bug + Starts a paragraph where one or more bugs may be reported. + The paragraph will be indented. + The text of the paragraph has no special internal structure. All visual + enhancement commands may be used inside the paragraph. + Multiple adjacent \\bug commands will be joined into a single paragraph. + Each bug description will start on a new line. + Alternatively, one \\bug command may mention + several bugs. The \\bug command ends when a blank line or some other + sectioning command is encountered. See section \ref cmdauthor "\\author" + for an example. + +<hr> +\section cmdcond \\cond [<section-label>] + + \addindex \\cond + Starts a conditional section that ends with a corresponding + \ref cmdendcond "\\endcond" command, which is typically found in + another comment block. The main purpose of this pair of + commands is to (conditionally) exclude part of a file from processing + (in older version of doxygen this could only be achieved using C preprocessor commands). + + The section between \\cond and \\endcond commands can be included by + adding its section label to the \ref cfg_enabled_sections "ENABLED_SECTIONS" + configuration option. If the section label is omitted, the section will + be excluded from processing unconditionally. + + For conditional sections within a comment block one should + use a \ref cmdif "\\if" ... \ref cmdendif "\\endif" block. + + Conditional sections can be nested. In this case a nested section will only + be shown if it and its containing section are included. + + Here is an example showing the commands in action: + +\verbatim +/** An interface */ +class Intf +{ + public: + /** A method */ + virtual void func() = 0; + + /// @cond TEST + + /** A method used for testing */ + virtual void test() = 0; + + /// @endcond +}; + +/// @cond DEV +/* + * The implementation of the interface + */ +class Implementation : public Intf +{ + public: + void func(); + + /// @cond TEST + void test(); + /// @endcond + + /// @cond + /** This method is obsolete and does + * not show up in the documentation. + */ + void obsolete(); + /// @endcond +}; + +/// @endcond +\endverbatim + +The output will be different depending on whether or not \c ENABLED_SECTIONS +contains \c TEST, or \c DEV + + \sa section \ref cmdendcond "\\endcond". + +<hr> +\section cmdcopyright \\copyright { copyright description } + + \addindex \\copyright + Starts a paragraph where the copyright of an entity can be described. + This paragraph will be indented. + The text of the paragraph has no special internal structure. + See section \ref cmdauthor "\\author" for an example. + +<hr> +\section cmddate \\date { date description } + + \addindex \\date + Starts a paragraph where one or more dates may be entered. + The paragraph will be indented. + The text of the paragraph has no special internal structure. All visual + enhancement commands may be used inside the paragraph. + Multiple adjacent \\date commands will be joined into a single paragraph. + Each date description will start on a new line. + Alternatively, one \\date command may mention + several dates. The \\date command ends when a blank line or some other + sectioning command is encountered. See section \ref cmdauthor "\\author" + for an example. + +<hr> +\section cmddeprecated \\deprecated { description } + + \addindex \\deprecated + Starts a paragraph indicating that this documentation block belongs to + a deprecated entity. Can be used to describe alternatives, + expected life span, etc. + +<hr> +\section cmddetails \\details { detailed description } + + \addindex \\details + Just like \ref cmdbrief "\\brief" starts a brief description, \\details + starts the detailed description. You can also start a new paragraph (blank line) + then the \\details command is not needed. + +<hr> +\section cmdelse \\else + + \addindex \\else + Starts a conditional section if the previous conditional section + was not enabled. The previous section should have been started with + a \c \\if, \c \\ifnot, or \c \\elseif command. + + \sa \ref cmdif "\\if", \ref cmdifnot "\\ifnot", \ref cmdelseif "\\elseif", + \ref cmdendif "\\endif." + +<hr> +\section cmdelseif \\elseif <section-label> + + \addindex \\elseif + Starts a conditional documentation section if the previous section + was not enabled. A conditional section is + disabled by default. To enable it you must put the + section-label after the \ref cfg_enabled_sections "ENABLED_SECTIONS" + tag in the configuration + file. Conditional blocks can be nested. A nested section is + only enabled if all enclosing sections are enabled as well. + + \sa sections \ref cmdendif "\\endif", \ref cmdifnot "\\ifnot", + \ref cmdelse "\\else", and \ref cmdelseif "\\elseif". + +<hr> +\section cmdendcond \\endcond + + \addindex \\endcond + Ends a conditional section that was started by \ref cmdcond "\\cond". + + \sa section \ref cmdcond "\\cond". + +<hr> +\section cmdendif \\endif + + \addindex \\endif + Ends a conditional section that was started by \c \\if or \c \\ifnot + For each \c \\if or \c \\ifnot one and only one matching \c \\endif must follow. + + \sa sections \ref cmdif "\\if" and \ref cmdifnot "\\ifnot". + +<hr> +\section cmdexception \\exception <exception-object> { exception description } + + \addindex \\exception + Starts an exception description for an exception object with name + \<exception-object\>. Followed by a description of the exception. + The existence of the exception object is not checked. + The text of the paragraph has no special internal structure. All visual + enhancement commands may be used inside the paragraph. + Multiple adjacent \\exception commands will be joined into a single paragraph. + Each exception description will start on a new line. + The \\exception description ends when a blank line or some other + sectioning command is encountered. See section \ref cmdfn "\\fn" for an + example. + +<hr> +\section cmdif \\if <section-label> + + \addindex \\if + Starts a conditional documentation section. The section ends + with a matching \c \\endif command. A conditional section is + disabled by default. To enable it you must put the + section-label after the \ref cfg_enabled_sections "ENABLED_SECTIONS" + tag in the configuration + file. Conditional blocks can be nested. A nested section is + only enabled if all enclosing sections are enabled as well. + + \par Example: +\verbatim + /*! Unconditionally shown documentation. + * \if Cond1 + * Only included if Cond1 is set. + * \endif + * \if Cond2 + * Only included if Cond2 is set. + * \if Cond3 + * Only included if Cond2 and Cond3 are set. + * \endif + * More text. + * \endif + * Unconditional text. + */ +\endverbatim + + You can also use conditional commands inside aliases. To + document a class in two languages you could for instance use: + +\par Example 2: +\verbatim +/*! \english + * This is English. + * \endenglish + * \dutch + * Dit is Nederlands. + * \enddutch + */ +class Example +{ +}; +\endverbatim + + Where the following aliases are defined in the configuration file: + +\verbatim +ALIASES = "english=\if english" \ + "endenglish=\endif" \ + "dutch=\if dutch" \ + "enddutch=\endif" +\endverbatim + + and \c ENABLED_SECTIONS can be used to enable either \c english or \c dutch. + + \sa sections \ref cmdendif "\\endif", \ref cmdifnot "\\ifnot", + \ref cmdelse "\\else", and \ref cmdelseif "\\elseif". + +<hr> +\section cmdifnot \\ifnot <section-label> + + \addindex \\ifnot + Starts a conditional documentation section. The section ends + with a matching \c \\endif command. This conditional section is + enabled by default. To disable it you must put the + section-label after the \ref cfg_enabled_sections "ENABLED_SECTIONS" + tag in the configuration + file. + + \sa sections \ref cmdendif "\\endif", \ref cmdif "\\if", + \ref cmdelse "\\else", and \ref cmdelseif "\\elseif". + +<hr> +\section cmdinvariant \\invariant { description of invariant } + + \addindex \\invariant + Starts a paragraph where the invariant of an entity can be described. + The paragraph will be indented. + The text of the paragraph has no special internal structure. All visual + enhancement commands may be used inside the paragraph. + Multiple adjacent \\invariant commands will be joined into a single paragraph. + Each invariant description will start on a new line. + Alternatively, one \\invariant command may mention + several invariants. The \\invariant command ends when a blank line or some other + sectioning command is encountered. + +<hr> +\section cmdnote \\note { text } + + \addindex \\note + Starts a paragraph where a note can be entered. The paragraph will be + indented. The text of the paragraph has no special internal structure. + All visual enhancement commands may be used inside the paragraph. + Multiple adjacent \\note commands will be joined into a single paragraph. + Each note description will start on a new line. + Alternatively, one \\note command may mention + several notes. The \\note command ends when a blank line or some other + sectioning command is encountered. See section \ref cmdpar "\\par" + for an example. + +<hr> +\section cmdpar \\par [(paragraph title)] { paragraph } + + \addindex \\par + If a paragraph title is given this command starts a paragraph with a + user defined heading. The heading extends until the end of the + line. The paragraph following the command will be indented. + + If no paragraph title is given this command will start a new paragraph. + This will also work inside other paragraph commands + (like \\param or \\warning) without ending that command. + + The text of the paragraph has no special internal structure. All visual + enhancement commands may be used inside the paragraph. + The \\par command ends when a blank line or some other + sectioning command is encountered. + + \par Example: + \verbinclude par.cpp + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/par/html/class_test.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + +<hr> +\section cmdparam \\param [(dir)] <parameter-name> { parameter description } + + \addindex \\param + Starts a parameter description for a function parameter with name + \<parameter-name\>, followed by a description of the parameter. + The existence of the parameter is checked and a warning is given if + the documentation of this (or any other) parameter is missing or not + present in the function declaration or definition. + + The \\param command has an optional attribute, (dir), specifying the direction + of the parameter. Possible values are "[in]", "[in,out]", and "[out]", + note the [square] brackets in this description. + When a parameter is both input and output, [in,out] is used as attribute. + Here is an example for the function memcpy: + \code +/*! + * Copies bytes from a source memory area to a destination memory area, + * where both areas may not overlap. + * @param[out] dest The memory area to copy to. + * @param[in] src The memory area to copy from. + * @param[in] n The number of bytes to copy + */ +void memcpy(void *dest, const void *src, size_t n); + \endcode + + The parameter description is a paragraph with no special internal structure. + All visual enhancement commands may be used inside the paragraph. + + Multiple adjacent \\param commands will be joined into a single paragraph. + Each parameter description will start on a new line. + The \\param description ends when a blank line or some other + sectioning command is encountered. See section \ref cmdfn "\\fn" for an + example. + + Note that you can also document multiple parameters with a single + \\param command using a comma separated list. Here is an example: + +\code +/** Sets the position. + * @param x,y,z Coordinates of the position in 3D space. + */ +void setPosition(double x,double y,double z,double t) +{ +} +\endcode + + Note that for PHP one can also specify the type (or types if you + separate them with a pipe symbol) which are allowed for a parameter + (as this is not part of the definition). + The syntax is the same as for phpDocumentor, i.e. +\verbatim +@param datatype1|datatype2 $paramname description +\endverbatim + +<hr> +\section cmdtparam \\tparam <template-parameter-name> { description } + + \addindex \\tparam + Starts a template parameter for a class or function template parameter + with name \<template-parameter-name\>, followed by a description of the + template parameter. + + Otherwise similar to \ref cmdparam "\\param". + +<hr> +\section cmdpost \\post { description of the postcondition } + + \addindex \\post + Starts a paragraph where the postcondition of an entity can be described. + The paragraph will be indented. + The text of the paragraph has no special internal structure. All visual + enhancement commands may be used inside the paragraph. + Multiple adjacent \\post commands will be joined into a single paragraph. + Each postcondition will start on a new line. + Alternatively, one \\post command may mention + several postconditions. The \\post command ends when a blank line or some other + sectioning command is encountered. + +<hr> +\section cmdpre \\pre { description of the precondition } + + \addindex \\pre + Starts a paragraph where the precondition of an entity can be described. + The paragraph will be indented. + The text of the paragraph has no special internal structure. All visual + enhancement commands may be used inside the paragraph. + Multiple adjacent \\pre commands will be joined into a single paragraph. + Each precondition will start on a new line. + Alternatively, one \\pre command may mention + several preconditions. The \\pre command ends when a blank line or some other + sectioning command is encountered. + +<hr> +\section cmdremark \\remark { remark text } + + \addindex \\remark + Starts a paragraph where one or more remarks may be entered. + The paragraph will be indented. + The text of the paragraph has no special internal structure. All visual + enhancement commands may be used inside the paragraph. + Multiple adjacent \\remark commands will be joined into a single paragraph. + Each remark will start on a new line. + Alternatively, one \\remark command may mention + several remarks. The \\remark command ends when a blank line or some other + sectioning command is encountered. + +<hr> +\section cmdremarks \\remarks { remark text } + + \addindex \\remarks + Equivalent to \ref cmdremark "\\remark". + +<hr> +\section cmdresult \\result { description of the result value } + + \addindex \\result + Equivalent to \ref cmdreturn "\\return". + +<hr> +\section cmdreturn \\return { description of the return value } + + \addindex \\return + Starts a return value description for a function. + The text of the paragraph has no special internal structure. All visual + enhancement commands may be used inside the paragraph. + Multiple adjacent \\return commands will be joined into a single paragraph. + The \\return description ends when a blank line or some other + sectioning command is encountered. See section \ref cmdfn "\\fn" for an + example. + +<hr> +\section cmdreturns \\returns { description of the return value } + + \addindex \\returns + Equivalent to \ref cmdreturn "\\return". + +<hr> +\section cmdretval \\retval <return value> { description } + + \addindex \\retval + Starts a description for a function's return value with name + \<return value\>, followed by a description of the return value. + The text of the paragraph that forms the description has no special + internal structure. All visual enhancement commands may be used inside the + paragraph. + Multiple adjacent \\retval commands will be joined into a single paragraph. + Each return value description will start on a new line. + The \\retval description ends when a blank line or some other + sectioning command is encountered. + +<hr> +\section cmdsa \\sa { references } + + \addindex \\sa + Starts a paragraph where one or more cross-references to classes, + functions, methods, variables, files or URL may be specified. + Two names joined by either <code>::</code> or <code>\#</code> + are understood as referring to a class and one of its members. + One of several overloaded methods or constructors + may be selected by including a parenthesized list of argument types after + the method name. + + Synonymous to \\see. + + \sa section \ref autolink "autolink" for information on how to create links + to objects. + +<hr> +\section cmdsee \\see { references } + + \addindex \\see + Equivalent to \ref cmdsa "\\sa". Introduced for compatibility with Javadoc. + +<hr> +\section cmdshort \\short { short description } + + \addindex \\short + Equivalent to \ref cmdbrief "\\brief". + +<hr> +\section cmdsince \\since { text } + + \addindex \\since + This tag can be used to specify since when (version or time) an + entity is available. The paragraph that follows \\since does not have any + special internal structure. All visual enhancement commands may be + used inside the paragraph. The \\since description ends when a blank + line or some other sectioning command is encountered. + +<hr> +\section cmdtest \\test { paragraph describing a test case } + + \addindex \\test + Starts a paragraph where a test case can be described. + The description will also add the test case to a separate test list. + The two instances of the description will be cross-referenced. + Each test case in the test list will be preceded by a header that + indicates the origin of the test case. + +<hr> +\section cmdthrow \\throw <exception-object> { exception description } + + \addindex \\throw + Synonymous to \\exception (see section \ref cmdexception "\\exception"). + + \par Note: + the tag \\throws is a synonym for this tag. + + \sa section \ref cmdexception "\\exception" + +<hr> +\section cmdthrows \\throws <exception-object> { exception description } + + \addindex \\throws + Equivalent to \ref cmdthrow "\\throw". + +<hr> +\section cmdtodo \\todo { paragraph describing what is to be done } + + \addindex \\todo + Starts a paragraph where a TODO item is described. + The description will also add an item to a separate TODO list. + The two instances of the description will be cross-referenced. + Each item in the TODO list will be preceded by a header that + indicates the origin of the item. + +<hr> +\section cmdversion \\version { version number } + + \addindex \\version + Starts a paragraph where one or more version strings may be entered. + The paragraph will be indented. + The text of the paragraph has no special internal structure. All visual + enhancement commands may be used inside the paragraph. + Multiple adjacent \\version commands will be joined into a single paragraph. + Each version description will start on a new line. + Alternatively, one \\version command may mention + several version strings. + The \\version command ends when a blank line or some other + sectioning command is encountered. + See section \ref cmdauthor "\\author" for an example. + +<hr> +\section cmdwarning \\warning { warning message } + + \addindex \\warning + Starts a paragraph where one or more warning messages may be entered. + The paragraph will be indented. + The text of the paragraph has no special internal structure. All visual + enhancement commands may be used inside the paragraph. + Multiple adjacent \\warning commands will be joined into a single paragraph. + Each warning description will start on a new line. + Alternatively, one \\warning command may mention + several warnings. The \\warning command ends when a blank line or some other + sectioning command is encountered. See section \ref cmdauthor "\\author" + for an example. + +<hr> +\section cmdxrefitem \\xrefitem <key> "(heading)" "(list title)" { text } + + \addindex \\xrefitem + This command is a generalization of commands such as \ref cmdtodo "\\todo" + and \ref cmdbug "\\bug". + It can be used to create user-defined text sections which are automatically + cross-referenced between the place of occurrence and a related page, + which will be generated. On the related page all sections of + the same type will be collected. + + The first argument \<key\> is an + identifier uniquely representing the type of the section. The second argument + is a quoted string representing the heading of the section under which + text passed as the fourth argument is put. The third argument (list title) + is used as the title for the related page containing all items with the + same key. The keys "todo", "test", "bug" and "deprecated" are predefined. + + To get an idea on how to use the \\xrefitem command and what its effect + is, consider the todo list, which (for English output) can be seen an + alias for the command + \verbatim \xrefitem todo "Todo" "Todo List" \endverbatim + + Since it is very tedious and error-prone to repeat the first three + parameters of the command for each section, the command is meant to + be used in combination with the \ref cfg_aliases "ALIASES" option in the + configuration file. + To define a new command \\reminder, for instance, one should add the following + line to the configuration file: + \verbatim ALIASES += "reminder=\xrefitem reminders \"Reminder\" \"Reminders\"" \endverbatim + Note the use of escaped quotes for the second and third argument of the + \\xrefitem command. + +<hr> + +\htmlonly <center> \endhtmlonly +<h2> +\htmlonly --- \endhtmlonly +Commands to create links +\htmlonly --- \endhtmlonly +</h2> +\htmlonly </center>\endhtmlonly + +<hr> +\section cmdaddindex \\addindex (text) + + \addindex \\addindex + This command adds (text) to the \f$\mbox{\LaTeX}\f$ index. + +<hr> +\section cmdanchor \\anchor <word> + + \addindex \\anchor + This command places an invisible, named anchor into the documentation + to which you can refer with the \\ref command. + + \note Anchors can currently only be put into a comment block + that is marked as a page (using \ref cmdpage "\\page") or mainpage + (\ref cmdmainpage "\\mainpage"). + + \sa section \ref cmdref "\\ref". + +<hr> +\section cmdcite \\cite <label> + + \addindex \\cite + Adds a bibliographic reference in the text and in the list of bibliographic + references. The \<label\> must be a valid BibTeX label that can be found + in one of the .bib files listed in \ref cfg_cite_bib_files "CITE_BIB_FILES". + For the LaTeX output the formatting of the reference in the text can be + configured with \ref cfg_latex_bib_style "LATEX_BIB_STYLE". For other + output formats a fixed representation is used. Note that using this + command requires the \c bibtex tool to be present in the search path. + +<hr> +\section cmdendlink \\endlink + + \addindex \\endlink + This command ends a link that is started with the \\link command. + + \sa section \ref cmdlink "\\link". + +<hr> +\section cmdlink \\link <link-object> + + \addindex \\link + The links that are automatically generated by doxygen always have the + name of the object they point to as link-text. + + The \\link command can be used to create a link to an object (a file, + class, or member) with a user specified link-text. + The link command should end with an \\endlink command. All text between + the \\link and \\endlink commands serves as text for a link to + the \<link-object\> specified as the first argument of \\link. + + See section \ref autolink "autolink" for more information on automatically + generated links and valid link-objects. + +<hr> +\section cmdref \\ref <name> ["(text)"] + + \addindex \\ref + Creates a reference to a named section, subsection, page or anchor. + For HTML documentation the reference command will generate a link to + the section. For a section or subsection the title of the section will be + used as the text of the link. For an anchor the optional text between quotes + will be used or \<name\> if no text is specified. + For \f$\mbox{\LaTeX}\f$ documentation the reference command will + generate a section number for sections or the text followed by a + page number if \<name\> refers to an anchor. + + \sa + Section \ref cmdpage "\\page" for an example of the \\ref command. + +<hr> +\section cmdsubpage \\subpage <name> ["(text)"] + + \addindex \\subpage + This command can be used to create a hierarchy of pages. The + same structure can be made using the \ref cmddefgroup "\\defgroup" and + \ref cmdingroup "\\ingroup" commands, but for pages the \\subpage command + is often more convenient. The main page (see \ref cmdmainpage "\\mainpage") + is typically the root of hierarchy. + + This command behaves similar as \ref cmdref "\\ref" in the sense that + it creates a reference to a page labeled \<name\> with the optional + link text as specified in the second argument. + + It differs from the \\ref command in that it only works for pages, + and creates a parent-child relation between pages, where the + child page (or sub page) is identified by label \<name\>. + + See the \ref cmdsection "\\section" + and \ref cmdsubsection "\\subsection" commands if you want to add structure + without creating multiple pages. + + \note Each page can be the sub page of only one other page and + no cyclic relations are allowed, i.e. the page hierarchy must have a tree + structure. + + Here is an example: +\verbatim +/*! \mainpage A simple manual + +Some general info. + +This manual is divided in the following sections: +- \subpage intro +- \subpage advanced "Advanced usage" +*/ + +//----------------------------------------------------------- + +/*! \page intro Introduction +This page introduces the user to the topic. +Now you can proceed to the \ref advanced "advanced section". +*/ + +//----------------------------------------------------------- + +/*! \page advanced Advanced Usage +This page is for advanced users. +Make sure you have first read \ref intro "the introduction". +*/ +\endverbatim + +<hr> +\section cmdtableofcontents \\tableofcontents + + \addindex \\tableofcontents + Creates a table of contents at the top of a page, listing all + sections and subsections in the page. + + \warning This command only works inside related page documentation and + \e not in other documentation blocks and only has effect in the + HTML output! + +<hr> +\section cmdsection \\section <section-name> (section title) + + \addindex \\section + Creates a section with name \<section-name\>. The title of the + section should be specified as the second argument of the \\section + command. + + \warning This command only works inside related page documentation and + \e not in other documentation blocks! + + \sa + Section \ref cmdpage "\\page" for an example of the + \ref cmdsection "\\section" command. + +<hr> +\section cmdsubsection \\subsection <subsection-name> (subsection title) + + \addindex \\subsection + Creates a subsection with name \<subsection-name\>. The title of the + subsection should be specified as the second argument of the \\subsection + command. + + \warning This command only works inside a section of a related page + documentation block and + \e not in other documentation blocks! + + \sa + Section \ref cmdpage "\\page" for an example of the + \ref cmdsubsection "\\subsection" command. + +<hr> +\section cmdsubsubsection \\subsubsection <subsubsection-name> (subsubsection title) + + \addindex \\subsubsection + Creates a subsubsection with name \<subsubsection-name\>. The title of the + subsubsection should be specified as the second argument of the + \\subsubsection command. + + \warning This command only works inside a subsection of a + related page documentation block and + \e not in other documentation blocks! + + \sa + Section \ref cmdpage "\\page" for an example of the + \ref cmdsection "\\section" command and + \ref cmdsubsection "\\subsection" command. + +<hr> +\section cmdparagraph \\paragraph <paragraph-name> (paragraph title) + + \addindex \\paragraph + Creates a named paragraph with name \<paragraph-name\>. The title of the + paragraph should be specified as the second argument of the + \\paragraph command. + + \warning This command only works inside a subsubsection of a + related page documentation block and + \e not in other documentation blocks! + +<hr> + +\htmlonly <center> \endhtmlonly +<h2> +\htmlonly --- \endhtmlonly +Commands for displaying examples +\htmlonly --- \endhtmlonly +</h2> +\htmlonly </center>\endhtmlonly + +<hr> +\section cmddontinclude \\dontinclude <file-name> + + \addindex \\dontinclude + This command can be used to parse a source file without actually + verbatim including it in the documentation (as the \\include command does). + This is useful if you want to divide the source file into smaller pieces and + add documentation between the pieces. + Source files or directories can be specified using the + \ref cfg_example_path "EXAMPLE_PATH" + tag of doxygen's configuration file. + + The class and member declarations and definitions inside the code fragment + are 'remembered' during the parsing of the comment block that contained + the \\dontinclude command. + + For line by line descriptions of source files, one or more lines + of the example can be displayed using the \\line, \\skip, \\skipline, and + \\until commands. An internal pointer is used for these commands. The + \\dontinclude command sets the pointer to the first line of the example. + + \par Example: + \verbinclude include.cpp + Where the example file \c example_test.cpp looks as follows: + \verbinclude example_test.cpp + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/include/html/example.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + + Alternatively, the \ref cmdsnippet "\\snippet" command can be used to + include only a fragment of a source file. For this to work the + fragment has to be marked. + + \sa sections \ref cmdline "\\line", \ref cmdskip "\\skip", + \ref cmdskipline "\\skipline", \ref cmduntil "\\until", and + \ref cmdinclude "\\include". + +<hr> +\section cmdinclude \\include <file-name> + + \addindex \\include + This command can be used to include a source file as a block of code. + The command takes the name of an include file as an argument. + Source files or directories can be specified using the + \ref cfg_example_path "EXAMPLE_PATH" + tag of doxygen's configuration file. + + If \<file-name\> itself is not unique for the set of example files specified + by the \ref cfg_example_path "EXAMPLE_PATH" tag, you can include part + of the absolute path to disambiguate it. + + Using the \\include command is equivalent to inserting the file into + the documentation block and surrounding it + with \ref cmdcode "\\code" and \ref cmdendcode "\\endcode" commands. + + The main purpose of the \\include command is to avoid code + duplication in case of example blocks that consist of multiple + source and header files. + + For a line by line description of a source files use the + \ref cmddontinclude "\\dontinclude" command in combination with + the \ref cmdline "\\line", \ref cmdskip "\\skip", + \ref cmdskipline "\\skipline", + and \\until commands. + + Alternatively, the \ref cmdsnippet "\\snippet" command can be used to + include only a fragment of a source file. For this to work the + fragment has to be marked. + + \note Doxygen's special commands do not work inside blocks of code. + It is allowed to nest C-style comments inside a code block though. + + \sa sections \ref cmdexample "\\example", \ref cmddontinclude "\\dontinclude", and + \ref cmdverbatim "\\verbatim". + +<hr> +\section cmdincludelineno \\includelineno <file-name> + + \addindex \\includelineno + This command works the same way as \\include, but will add line + numbers to the included file. + + \sa section \ref cmdinclude "\\include". + +<hr> +\section cmdline \\line ( pattern ) + + \addindex \\line + This command searches line by line through the example that was last + included using \\include or \\dontinclude until it finds a non-blank + line. If that line contains the specified pattern, it is written + to the output. + + The internal pointer that is used to keep track of the current line in + the example, is set to the start of the line following the non-blank + line that was found (or to the end of the example if no such line could + be found). + + See section \ref cmddontinclude "\\dontinclude" for an example. + +<hr> +\section cmdskip \\skip ( pattern ) + + \addindex \\skip + This command searches line by line through the example that was last + included using \\include or \\dontinclude until it finds a line that contains + the specified pattern. + + The internal pointer that is used to keep track of the current line in + the example, is set to the start of the line that contains the specified + pattern (or to the end of the example if the pattern could not be found). + + See section \ref cmddontinclude "\\dontinclude" for an example. + +<hr> +\section cmdskipline \\skipline ( pattern ) + + \addindex \\skipline + This command searches line by line through the example that was last + included using \\include or \\dontinclude until it finds a line that contains + the specified pattern. It then writes the line to the output. + + The internal pointer that is used to keep track of the current line in + the example, is set to the start of the line following the line that is + written (or to the end of the example if the pattern could not be found). + + \par Note: + The command: + \verbatim\skipline pattern\endverbatim + is equivalent to: +\verbatim +\skip pattern +\line pattern\endverbatim + + See section \ref cmddontinclude "\\dontinclude" for an example. + +<hr> +\section cmdsnippet \\snippet <file-name> ( block_id ) + + \addindex \\snippet + Where the \ref cmdinclude "\\include" command can be used to include + a complete file as source code, this command can be used to quote only + a fragment of a source file. + + For example, the putting the following command in the documentation, + references a snippet in file \c example.cpp residing in a subdirectory + which should be pointed to by \ref cfg_example_path "EXAMPLE_PATH". + +\verbatim + \snippet snippets/example.cpp Adding a resource +\endverbatim + + The text following the file name is the unique identifier for the snippet. + This is used to delimit the quoted code in the relevant snippet file as + shown in the following example that corresponds to the above \\snippet + command: + +\code + QImage image(64, 64, QImage::Format_RGB32); + image.fill(qRgb(255, 160, 128)); + +//! [Adding a resource] + document->addResource(QTextDocument::ImageResource, + QUrl("mydata://image.png"), QVariant(image)); +//! [Adding a resource] + ... +\endcode + + Note that the lines containing the block markers will not be included, + so the output will be: + +\code + document->addResource(QTextDocument::ImageResource, + QUrl("mydata://image.png"), QVariant(image)); +\endcode + + Note also that the [block_id] markers should appear exactly twice in the + source file. + + see section \ref cmddontinclude "\\dontinclude" for an alternative way + to include fragments of a source file that does not require markers. + +<hr> +\section cmduntil \\until ( pattern ) + + \addindex \\until + This command writes all lines of the example that was last + included using \\include or \\dontinclude to the output, until it finds + a line containing the specified pattern. The line containing the pattern + will be written as well. + + The internal pointer that is used to keep track of the current line in + the example, is set to the start of the line following last written + line (or to the end of the example if the pattern could not be found). + + See section \ref cmddontinclude "\\dontinclude" for an example. + +<hr> +\section cmdverbinclude \\verbinclude <file-name> + + \addindex \\verbinclude + This command includes the file \<file-name\> verbatim in the documentation. + The command is equivalent to pasting the file in the documentation and + placing \\verbatim and \\endverbatim commands around it. + + Files or directories that doxygen should look for can be specified using the + \ref cfg_example_path "EXAMPLE_PATH" tag of doxygen's configuration file. + +<hr> +\section cmdhtmlinclude \\htmlinclude <file-name> + + \addindex \\htmlinclude + This command includes the file \<file-name\> as is in the HTML documentation. + The command is equivalent to pasting the file in the documentation and + placing \\htmlonly and \\endhtmlonly commands around it. + + Files or directories that doxygen should look for can be specified using the + \ref cfg_example_path "EXAMPLE_PATH" tag of doxygen's configuration file. + +<hr> + +\htmlonly <center> \endhtmlonly +<h2> +\htmlonly --- \endhtmlonly +Commands for visual enhancements +\htmlonly --- \endhtmlonly +</h2> +\htmlonly </center>\endhtmlonly + +\section cmda \\a <word> + + \addindex \\a + Displays the argument \<word\> in italics. + Use this command to emphasize words. + Use this command to refer to member arguments in the running text. + + \par Example: + \verbatim + ... the \a x and \a y coordinates are used to ... + \endverbatim + This will result in the following text:<br><br> + ... the \a x and \a y coordinates are used to ... + + Equivalent to \ref cmda "\\e" and \ref cmdem "\\em". + To emphasize multiple words use \<em\>multiple words\</em\>. + +<hr> +\section cmdarg \\arg { item-description } + + \addindex \\arg + This command has one argument that continues until the first + blank line or until another \\arg is encountered. + The command can be used to generate a simple, not nested list of + arguments. + Each argument should start with a \\arg command. + + \par Example: + Typing: + \verbatim + \arg \c AlignLeft left alignment. + \arg \c AlignCenter center alignment. + \arg \c AlignRight right alignment + + No other types of alignment are supported. + \endverbatim + will result in the following text:<br><br> + <ul> + <li> \c AlignLeft left alignment. + <li> \c AlignCenter center alignment. + <li> \c AlignRight right alignment + </ul><br> + No other types of alignment are supported. + + \par Note: + For nested lists, HTML commands should be used. + + Equivalent to \ref cmdli "\\li" + + +<hr> +\section cmdb \\b <word> + + \addindex \\b + Displays the argument \<word\> using a bold font. + Equivalent to \<b\>word\</b\>. + To put multiple words in bold use \<b\>multiple words\</b\>. + +<hr> +\section cmdc \\c <word> + + \addindex \\c + Displays the argument \<word\> using a typewriter font. + Use this to refer to a word of code. + Equivalent to \<tt\>word\</tt\>. + + \par Example: + Typing: + \verbatim + ... This function returns \c void and not \c int ... + \endverbatim + will result in the following text:<br><br> + ... This function returns \c void and not \c int ... + + Equivalent to \ref cmdp "\\p" + To have multiple words in typewriter font use \<tt\>multiple words\</tt\>. + +<hr> +\section cmdcode \\code [ '{'<word>'}'] + + \addindex \\code + Starts a block of code. A code block is treated differently + from ordinary text. It is interpreted as source code. The names of + classes and members and other documented entities are automatically + replaced by links to the documentation. + + By default the language that is assumed for syntax highlighting is based + on the location where the \\code block was found. If this part of + a Python file for instance, the syntax highlight will be done according + to the Python syntax. + + If it unclear from the context which language is meant (for instance the + comment is in a .txt or .markdown file) then you can also explicitly + indicate the language, by putting the file extension typically + that doxygen associated with the language in curly brackets after the + code block. Here is an example: + +\verbatim + \code{.py} + class Python: + pass + \endcode + + \code{.cpp} + class Cpp {}; + \endcode +\endverbatim + + \sa section \ref cmdendcode "\\endcode" and section \ref cmdverbatim "\\verbatim". + +<hr> +\section cmdcopydoc \\copydoc <link-object> + + \addindex \\copydoc + Copies a documentation block from the object specified by \<link-object\> + and pastes it at the location of the command. This command can be useful + to avoid cases where a documentation block would otherwise have to be + duplicated or it can be used to extend the documentation of an inherited + member. + + The link object can point to a member (of a class, file or group), + a class, a namespace, a group, a page, or a file (checked in that order). + Note that if the object pointed to is a member (function, variable, + typedef, etc), the compound (class, file, or group) containing it + should also be documented for the copying to work. + + To copy the documentation for a member of a + class one can, for instance, put the following in the documentation: + +\verbatim + /*! @copydoc MyClass::myfunction() + * More documentation. + */ +\endverbatim + + if the member is overloaded, you should specify the argument types + explicitly (without spaces!), like in the following: + +\verbatim + //! @copydoc MyClass::myfunction(type1,type2) +\endverbatim + + Qualified names are only needed if the context in which the documentation + block is found requires them. + + The \\copydoc command can be used recursively, but cycles in the \\copydoc + relation will be broken and flagged as an error. + + Note that <code>\\copydoc foo()</code> is roughly equivalent to doing: +\verbatim + \brief \copybrief foo() + \details \copydetails foo() +\endverbatim + See \ref cmdcopybrief "\\copybrief" and + \ref cmdcopydetails "\\copydetails" for copying only the brief or + detailed part of the comment block. + +<hr> +\section cmdcopybrief \\copybrief <link-object> + +Works in a similar way as \ref cmdcopydoc "\\copydoc" but will +only copy the brief description, not the detailed documentation. + +<hr> +\section cmdcopydetails \\copydetails <link-object> + +Works in a similar way as \ref cmdcopydoc "\\copydoc" but will +only copy the detailed documentation, not the brief description. + +<hr> +\section cmddot \\dot + + \addindex \\dot + Starts a text fragment which should contain a valid description of a + dot graph. The text fragment ends with \ref cmdenddot "\\enddot". + Doxygen will pass the text on to dot and include the resulting + image (and image map) into the output. + The nodes of a graph can be made clickable by using the URL attribute. + By using the command \\ref inside the URL value you can conveniently + link to an item inside doxygen. Here is an example: +\code +/*! class B */ +class B {}; + +/*! class C */ +class C {}; + +/*! \mainpage + * + * Class relations expressed via an inline dot graph: + * \dot + * digraph example { + * node [shape=record, fontname=Helvetica, fontsize=10]; + * b [ label="class B" URL="\ref B"]; + * c [ label="class C" URL="\ref C"]; + * b -> c [ arrowhead="open", style="dashed" ]; + * } + * \enddot + * Note that the classes in the above graph are clickable + * (in the HTML output). + */ +\endcode + +<hr> +\section cmdmsc \\msc + + \addindex \\msc + Starts a text fragment which should contain a valid description of a + message sequence chart. See http://www.mcternan.me.uk/mscgen/ for examples. + The text fragment ends with \ref cmdendmsc "\\endmsc". + \note The text fragment should only include the part of the message + sequence chart that is + within the <code>msc {...}</code> block. + \note You need to install the <code>mscgen</code> tool, if you want to use this + command. + +Here is an example of the use of the \\msc command. +\code +/** Sender class. Can be used to send a command to the server. + * The receiver will acknowledge the command by calling Ack(). + * \msc + * Sender,Receiver; + * Sender->Receiver [label="Command()", URL="\ref Receiver::Command()"]; + * Sender<-Receiver [label="Ack()", URL="\ref Ack()", ID="1"]; + * \endmsc + */ +class Sender +{ + public: + /** Acknowledgement from server */ + void Ack(bool ok); +}; + +/** Receiver class. Can be used to receive and execute commands. + * After execution of a command, the receiver will send an acknowledgement + * \msc + * Receiver,Sender; + * Receiver<-Sender [label="Command()", URL="\ref Command()"]; + * Receiver->Sender [label="Ack()", URL="\ref Sender::Ack()", ID="1"]; + * \endmsc + */ +class Receiver +{ + public: + /** Executable a command on the server */ + void Command(int commandId); +}; + +\endcode + + \sa section \ref cmdmscfile "\\mscfile". + +<hr> +\section cmddotfile \\dotfile <file> ["caption"] + + \addindex \\dotfile + Inserts an image generated by dot from \<file\> into the documentation. + + The first argument specifies the file name of the image. + doxygen will look for files in the paths (or files) that you specified + after the \ref cfg_dotfile_dirs "DOTFILE_DIRS" tag. + If the dot file is found it will be used as an input file to the dot tool. + The resulting image will be put into the correct output directory. + If the dot file name contains spaces you'll have to put quotes ("...") around it. + + The second argument is optional and can be used to specify the caption + that is displayed below the image. This argument has to be specified + between quotes even if it does not contain any spaces. The quotes are + stripped before the caption is displayed. + +<hr> +\section cmdmscfile \\mscfile <file> ["caption"] + + \addindex \\mscfile + Inserts an image generated by mscgen from \<file\> into the documentation. + See http://www.mcternan.me.uk/mscgen/ for examples. + + The first argument specifies the file name of the image. + doxygen will look for files in the paths (or files) that you specified + after the \ref cfg_mscfile_dirs "MSCFILE_DIRS" tag. + If the msc file is found it will be used as an input file to the mscgen tool. + The resulting image will be put into the correct output directory. + If the msc file name contains spaces you'll have to put quotes ("...") around it. + + The second argument is optional and can be used to specify the caption + that is displayed below the image. This argument has to be specified + between quotes even if it does not contain any spaces. The quotes are + stripped before the caption is displayed. + + \sa section \ref cmdmsc "\\msc". + +<hr> +\section cmde \\e <word> + + \addindex \\e + Displays the argument \<word\> in italics. + Use this command to emphasize words. + + \par Example: + Typing: + \verbatim + ... this is a \e really good example ... + \endverbatim + will result in the following text:<br><br> + ... this is a \e really good example ... + + Equivalent to \ref cmda "\\a" and \ref cmdem "\\em". + To emphasize multiple words use \<em\>multiple words\</em\>. + +<hr> +\section cmdem \\em <word> + + \addindex \\em + Displays the argument \<word\> in italics. + Use this command to emphasize words. + + \par Example: + Typing: + \verbatim + ... this is a \em really good example ... + \endverbatim + will result in the following text:<br><br> + ... this is a \em really good example ... + + Equivalent to \ref cmda "\\a" and \ref cmde "\\e". + To emphasize multiple words use \<em\>multiple words\</em\>. + +<hr> +\section cmdendcode \\endcode + + \addindex \\endcode + Ends a block of code. + \sa section \ref cmdcode "\\code" + +<hr> +\section cmdenddot \\enddot + + \addindex \\enddot + Ends a blocks that was started with \ref cmddot "\\dot". + +<hr> +\section cmdendmsc \\endmsc + + \addindex \\endmsc + Ends a blocks that was started with \ref cmdmsc "\\msc". + +<hr> +\section cmdendhtmlonly \\endhtmlonly + + \addindex \\endhtmlonly + Ends a block of text that was started with a \\htmlonly command. + + \sa section \ref cmdhtmlonly "\\htmlonly". + +<hr> +\section cmdendlatexonly \\endlatexonly + + \addindex \\endlatexonly + Ends a block of text that was started with a \\latexonly command. + + \sa section \ref cmdlatexonly "\\latexonly". + +<hr> +\section cmdendmanonly \\endmanonly + + \addindex \\endmanonly + Ends a block of text that was started with a \\manonly command. + + \sa section \ref cmdmanonly "\\manonly". + +<hr> +\section cmdendrtfonly \\endrtfonly + + \addindex \\endrtfonly + Ends a block of text that was started with a \\rtfonly command. + + \sa section \ref cmdrtfonly "\\rtfonly". + + +<hr> +\section cmdendverbatim \\endverbatim + + \addindex \\endverbatim + Ends a block of text that was started with a \\verbatim command. + + \sa section \ref cmdverbatim "\\verbatim". + +<hr> +\section cmdendxmlonly \\endxmlonly + + \addindex \\endxmlonly + Ends a block of text that was started with a \\xmlonly command. + + \sa section \ref cmdxmlonly "\\xmlonly". + +<hr> +\section cmdfdollar \\f$ + + \addindex \\f\$ + + Marks the start and end of an in-text formula. + \sa section \ref formulas "formulas" for an example. + +<hr> +\section cmdfbropen \\f[ + + \addindex \\f[ + + Marks the start of a long formula that is displayed + centered on a separate line. + \sa section \ref cmdfbrclose "\\f]" and section \ref formulas "formulas". + +<hr> +\section cmdfbrclose \\f] + + \addindex \\f] + + Marks the end of a long formula that is displayed + centered on a separate line. + \sa section \ref cmdfbropen "\\f[" and section \ref formulas "formulas". + +<hr> +\section cmdfcurlyopen \\f{environment}{ + + Marks the start of a formula that is in a specific environment. + \note The second { is optional and is only to help editors (such as Vim) to + do proper syntax highlighting by making the number of opening and closing braces + the same. + \sa section \ref cmdfcurlyclose "\\f}" and section \ref formulas "formulas". + +<hr> +\section cmdfcurlyclose \\f} + + Marks the end of a formula that is in a specific environment. + \sa section \ref cmdfcurlyopen "\\f{" and section \ref formulas "formulas". + +<hr> +\section cmdhtmlonly \\htmlonly + + \addindex \\htmlonly + Starts a block of text that will be verbatim included in the + generated HTML documentation only. The block ends with a + \ref cmdhtmlonly "\\endhtmlonly" command. + + This command can be used to include HTML code that is too complex + for doxygen (i.e. applets, java-scripts, and HTML tags that + require attributes). You can use the \\latexonly and \\endlatexonly + pair to provide a proper \f$\mbox{\LaTeX}\f$ alternative. + + \note environment variables (like \$(HOME) ) are resolved inside a + HTML-only block. + + \sa section \ref cmdmanonly "\\manonly", section + \ref cmdlatexonly "\\latexonly", and section + \ref cmdrtfonly "\\rtfonly". + +<hr> +\section cmdimage \\image <format> <file> ["caption"] [<sizeindication>=<size>] + + \addindex \\image + Inserts an image into the documentation. This command is format + specific, so if you want to insert an image for more than one + format you'll have to repeat this command for each format. + + The first argument specifies the output format. Currently, the + following values are supported: \c html, \c latex and \c rtf. + + The second argument specifies the file name of the image. + doxygen will look for files in the paths (or files) that you specified + after the \ref cfg_image_path "IMAGE_PATH" tag. + If the image is found it will be copied to the correct output directory. + If the image name contains spaces you'll have to put quotes ("...") around it. + You can also specify an absolute URL instead of a file name, but then + doxygen does not copy the image nor check its existence. + + The third argument is optional and can be used to specify the caption + that is displayed below the image. This argument has to be specified + on a single line and between quotes even if it does not contain any + spaces. The quotes are stripped before the caption is displayed. + + The fourth argument is also optional and can be used to specify the + width or height of the image. This is only useful + for \f$\mbox{\LaTeX}\f$ output + (i.e. format=<code>latex</code>). The \c sizeindication can be + either \c width or \c height. The size should be a valid + size specifier in \f$\mbox{\LaTeX}\f$ (for example <code>10cm</code> or + <code>6in</code> or a symbolic width like <code>\\textwidth</code>). + + Here is example of a comment block: + +\verbatim + /*! Here is a snapshot of my new application: + * \image html application.jpg + * \image latex application.eps "My application" width=10cm + */ +\endverbatim + + And this is an example of how the relevant part of the configuration file + may look: + +\verbatim + IMAGE_PATH = my_image_dir +\endverbatim + + \warning The image format for HTML is limited to what your + browser supports. For \f$\mbox{\LaTeX}\f$, the image format + must be Encapsulated PostScript (eps). + <br><br> + Doxygen does not check if the image is in the correct format. + So \e you have to make sure this is the case! + +<hr> +\section cmdlatexonly \\latexonly + + \addindex \\latexonly + Starts a block of text that will be verbatim included in the + generated \f$\mbox{\LaTeX}\f$ documentation only. The block ends with a + \ref cmdendlatexonly "\\endlatexonly" command. + + This command can be used to include \f$\mbox{\LaTeX}\f$ code that is too + complex for doxygen (i.e. images, formulas, special characters). You can + use the \\htmlonly and \\endhtmlonly pair to provide a proper HTML + alternative. + + \b Note: + environment variables (like \$(HOME) ) are resolved inside a + \f$\mbox{\LaTeX}\f$-only block. + + \sa section \ref cmdrtfonly "\\rtfonly", + section \ref cmdxmlonly "\\xmlonly", + section \ref cmdmanonly "\\manonly", and + section \ref cmdhtmlonly "\\htmlonly". + +<hr> +\section cmdmanonly \\manonly + + \addindex \\manonly + Starts a block of text that will be verbatim included in the + generated MAN documentation only. The block ends with a + \ref cmdendmanonly "\\endmanonly" command. + + This command can be used to include groff code directly into + MAN pages. You can use the \\htmlonly and \\latexonly and + \\endhtmlonly and \\endlatexonly pairs to provide proper + HTML and \f$\mbox{\LaTeX}\f$ alternatives. + + \sa section \ref cmdhtmlonly "\\htmlonly", + section \ref cmdxmlonly "\\xmlonly", + section \ref cmdrtfonly "\\rtfonly", and + section \ref cmdlatexonly "\\latexonly". + +<hr> +\section cmdli \\li { item-description } + + \addindex \\li + This command has one argument that continues until the first + blank line or until another \\li is encountered. + The command can be used to generate a simple, not nested list of + arguments. + Each argument should start with a \\li command. + + \par Example: + Typing: + \verbatim + \li \c AlignLeft left alignment. + \li \c AlignCenter center alignment. + \li \c AlignRight right alignment + + No other types of alignment are supported. + \endverbatim + will result in the following text:<br><br> + <ul> + <li> \c AlignLeft left alignment. + <li> \c AlignCenter center alignment. + <li> \c AlignRight right alignment + </ul><br> + No other types of alignment are supported. + + \par Note: + For nested lists, HTML commands should be used. + + Equivalent to \ref cmdarg "\\arg" + +<hr> +\section cmdn \\n + + \addindex \\n + Forces a new line. Equivalent to \<br\> and inspired by + the printf function. + +<hr> +\section cmdp \\p <word> + + \addindex \\p + Displays the parameter \<word\> using a typewriter font. + You can use this command to refer to member function parameters in + the running text. + + \par Example: + \verbatim + ... the \p x and \p y coordinates are used to ... + \endverbatim + This will result in the following text:<br><br> + ... the \p x and \p y coordinates are used to ... + + Equivalent to \ref cmdc "\\c" + To have multiple words in typewriter font use \<tt\>multiple words\</tt\>. + +<hr> +\section cmdrtfonly \\rtfonly + + \addindex \\rtfonly + Starts a block of text that will be verbatim included in the + generated RTF documentation only. The block ends with a + \ref cmdendrtfonly "\\endrtfonly" command. + + This command can be used to include RTF code that is too complex + for doxygen. + + \b Note: + environment variables (like \$(HOME) ) are resolved inside a + RTF-only block. + + \sa section \ref cmdmanonly "\\manonly", section + \ref cmdxmlonly "\\xmlonly", section + \ref cmdlatexonly "\\latexonly", and section + \ref cmdhtmlonly "\\htmlonly". + +<hr> +\section cmdverbatim \\verbatim + + \addindex \\verbatim + Starts a block of text that will be verbatim included in + the documentation. The block should end with a + \ref cmdendverbatim "\\endverbatim" block. + All commands are disabled in a verbatim block. + + \warning Make sure you include a \\endverbatim command for each + \\verbatim command or the parser will get confused! + + \sa section \ref cmdcode "\\code", and + section \ref cmdverbinclude "\\verbinclude". + +<hr> +\section cmdxmlonly \\xmlonly + + \addindex \\xmlonly + Starts a block of text that will be verbatim included in the + generated XML output only. The block ends with a + endxmlonly command. + + This command can be used to include custom XML tags. + + \sa section \ref cmdmanonly "\\manonly", section + \ref cmdrtfonly "\\rtfonly", section + \ref cmdlatexonly "\\latexonly", and section + \ref cmdhtmlonly "\\htmlonly". + +<hr> +\section cmdbackslash \\\\ + + \addindex \\\\ + This command writes a backslash character (\\) to the + output. The backslash has to be escaped in some + cases because doxygen uses it to detect commands. + +<hr> +\section cmdat \\\@ + + \addindex \\\@ + This command writes an at-sign (\@) to the output. + The at-sign has to be escaped in some cases + because doxygen uses it to detect JavaDoc commands. + +<hr> +\section cmdtilde \\~[LanguageId] + \addindex \\~ + This command enables/disables a language specific filter. This can be + used to put documentation for different language into one comment block + and use the \c OUTPUT_LANGUAGE tag to filter out only a specific language. + Use \\~language_id to enable output for a specific language only and + \\~ to enable output for all languages (this is also the default mode). + + Example: +\verbatim +/*! \~english This is english \~dutch Dit is Nederlands \~german Dieses ist + deutsch. \~ output for all languages. + */ +\endverbatim + + +<hr> +\section cmdamp \\\& + + \addindex \\\& + This command writes the \& character to output. + This character has to be escaped because it has a special meaning in HTML. + +<hr> +\section cmddollar \\\$ + + \addindex \\\$ + This command writes the \$ character to the output. + This character has to be escaped in some cases, because it is used to expand + environment variables. + +<hr> +\section cmdhash \\\# + + \addindex \\\# + This command writes the \# character to the output. This + character has to be escaped in some cases, because it is used to refer + to documented entities. + +<hr> +\section cmdlt \\\< + + \addindex \\\< + This command writes the \< character to the output. + This character has to be escaped because it has a special meaning in HTML. + +<hr> +\section cmdgt \\\> + + \addindex \\\> + This command writes the \> character to the output. This + character has to be escaped because it has a special meaning in HTML. + +<hr> +\section cmdperc \\\% + + \addindex \\\% + This command writes the \% character to the output. This + character has to be escaped in some cases, because it is used to + prevent auto-linking to word that is also a documented class or struct. + +<hr> +\section cmdquot \\" + + \addindex \\\" + This command writes the \" character to the output. This + character has to be escaped in some cases, because it is used in pairs + to indicate an unformatted text fragment. + +<hr> +\section cmdchardot \\. + + \addindex \\\. + This command writes a dot to the output. This can be useful to + prevent ending a brief description when JAVADOC_AUTOBRIEF is enabled + or to prevent starting a numbered list when the dot follows a number at + the start of a line. + +<hr> +\section cmddcolon \\:: + + \addindex \\\:: + This command write a double colon (\::) to the output. This + character sequence has to be escaped in some cases, because it is used + to ref to documented entities. + +<hr> +\htmlonly <center> \endhtmlonly +<h2> +\htmlonly --- \endhtmlonly +Commands included for Qt compatibility +\htmlonly --- \endhtmlonly +</h2> +\htmlonly </center>\endhtmlonly + +The following commands are supported to remain compatible to the Qt class +browser generator. Do \e not use these commands in your own documentation. +<ul> +<li>\\annotatedclasslist +<li>\\classhierarchy +<li>\\define +<li>\\functionindex +<li>\\header +<li>\\headerfilelist +<li>\\inherit +<li>\\l +<li>\\postheader +</ul> +<hr> + +*/ + diff --git a/doc/config.doc b/doc/config.doc new file mode 100644 index 0000000..8dfb199 --- /dev/null +++ b/doc/config.doc @@ -0,0 +1,2710 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page config Configuration + +\tableofcontents +\section config_format Format + +A configuration file is a free-form ASCII text file with a structure +that is similar to that of a Makefile, with the default name \c Doxyfile. It is +parsed by \c doxygen. The file may contain tabs and newlines for +formatting purposes. The statements in the file are case-sensitive. +Comments may be placed anywhere within the file (except within quotes). +Comments begin with the \# character and end at the end of the line. + +The file essentially consists of a list of assignment statements. +Each statement consists of a \c TAG_NAME written in capitals, +followed by the <code>=</code> character and one or more values. If the same tag +is assigned more than once, the last assignment overwrites any earlier +assignment. For options that take a list as their argument, +the <code>+=</code> operator can be used instead of <code>=</code> to append +new values to the list. Values are sequences of non-blanks. If the value should +contain one or more blanks it must be surrounded by quotes ("..."). +Multiple lines can be concatenated by inserting a backslash (\\) +as the last character of a line. Environment variables can be expanded +using the pattern <code>\$(ENV_VARIABLE_NAME)</code>. + +You can also include part of a configuration file from another configuration +file using a <code>\@INCLUDE</code> tag as follows: +\verbatim +@INCLUDE = config_file_name +\endverbatim +The include file is searched in the current working directory. You can +also specify a list of directories that should be searched before looking +in the current working directory. Do this by putting a <code>\@INCLUDE_PATH</code> tag +with these paths before the <code>\@INCLUDE</code> tag, e.g.: +\verbatim +@INCLUDE_PATH = my_config_dir +\endverbatim + +The configuration options can be divided into several categories. +Below is an alphabetical index of the tags that are recognized +followed by the descriptions of the tags grouped by category. + +\secreflist +\refitem cfg_abbreviate_brief ABBREVIATE_BRIEF +\refitem cfg_aliases ALIASES +\refitem cfg_allexternals ALLEXTERNALS +\refitem cfg_alphabetical_index ALPHABETICAL_INDEX +\refitem cfg_always_detailed_sec ALWAYS_DETAILED_SEC +\refitem cfg_autolink_support AUTOLINK_SUPPORT +\refitem cfg_binary_toc BINARY_TOC +\refitem cfg_brief_member_desc BRIEF_MEMBER_DESC +\refitem cfg_builtin_stl_support BUILTIN_STL_SUPPORT +\refitem cfg_call_graph CALL_GRAPH +\refitem cfg_caller_graph CALLER_GRAPH +\refitem cfg_case_sense_names CASE_SENSE_NAMES +\refitem cfg_chm_file CHM_FILE +\refitem cfg_chm_index_encoding CHM_INDEX_ENCODING +\refitem cfg_cite_bib_files CITE_BIB_FILES +\refitem cfg_class_diagrams CLASS_DIAGRAMS +\refitem cfg_class_graph CLASS_GRAPH +\refitem cfg_collaboration_graph COLLABORATION_GRAPH +\refitem cfg_cols_in_alpha_index COLS_IN_ALPHA_INDEX +\refitem cfg_compact_latex COMPACT_LATEX +\refitem cfg_compact_rtf COMPACT_RTF +\refitem cfg_cpp_cli_support CPP_CLI_SUPPORT +\refitem cfg_create_subdirs CREATE_SUBDIRS +\refitem cfg_directory_graph DIRECTORY_GRAPH +\refitem cfg_disable_index DISABLE_INDEX +\refitem cfg_distribute_group_doc DISTRIBUTE_GROUP_DOC +\refitem cfg_docset_bundle_id DOCSET_BUNDLE_ID +\refitem cfg_docset_feedname DOCSET_FEEDNAME +\refitem cfg_docset_publisher_id DOCSET_PUBLISHER_ID +\refitem cfg_docset_publisher_name DOCSET_PUBLISHER_NAME +\refitem cfg_dot_cleanup DOT_CLEANUP +\refitem cfg_dot_fontname DOT_FONTNAME +\refitem cfg_dot_fontpath DOT_FONTPATH +\refitem cfg_dot_fontsize DOT_FONTSIZE +\refitem cfg_dot_graph_max_nodes DOT_GRAPH_MAX_NODES +\refitem cfg_dot_image_format DOT_IMAGE_FORMAT +\refitem cfg_dot_multi_targets DOT_MULTI_TARGETS +\refitem cfg_dot_num_threads DOT_NUM_THREADS +\refitem cfg_dot_path DOT_PATH +\refitem cfg_dot_transparent DOT_TRANSPARENT +\refitem cfg_dotfile_dirs DOTFILE_DIRS +\refitem cfg_doxyfile_encoding DOXYFILE_ENCODING +\refitem cfg_eclipse_doc_id ECLIPSE_DOC_ID +\refitem cfg_enable_preprocessing ENABLE_PREPROCESSING +\refitem cfg_enabled_sections ENABLED_SECTIONS +\refitem cfg_enum_values_per_line ENUM_VALUES_PER_LINE +\refitem cfg_example_path EXAMPLE_PATH +\refitem cfg_example_patterns EXAMPLE_PATTERNS +\refitem cfg_example_recursive EXAMPLE_RECURSIVE +\refitem cfg_exclude EXCLUDE +\refitem cfg_exclude_patterns EXCLUDE_PATTERNS +\refitem cfg_exclude_symbols EXCLUDE_SYMBOLS +\refitem cfg_exclude_symlinks EXCLUDE_SYMLINKS +\refitem cfg_expand_as_defined EXPAND_AS_DEFINED +\refitem cfg_expand_only_predef EXPAND_ONLY_PREDEF +\refitem cfg_ext_links_in_window EXT_LINKS_IN_WINDOW +\refitem cfg_extension_mapping EXTENSION_MAPPING +\refitem cfg_external_groups EXTERNAL_GROUPS +\refitem cfg_extra_packages EXTRA_PACKAGES +\refitem cfg_extract_all EXTRACT_ALL +\refitem cfg_extract_anon_nspaces EXTRACT_ANON_NSPACES +\refitem cfg_extract_local_classes EXTRACT_LOCAL_CLASSES +\refitem cfg_extract_local_methods EXTRACT_LOCAL_METHODS +\refitem cfg_extract_private EXTRACT_PRIVATE +\refitem cfg_extract_static EXTRACT_STATIC +\refitem cfg_file_patterns FILE_PATTERNS +\refitem cfg_file_version_filter FILE_VERSION_FILTER +\refitem cfg_filter_patterns FILTER_PATTERNS +\refitem cfg_filter_source_files FILTER_SOURCE_FILES +\refitem cfg_filter_source_patterns FILTER_SOURCE_PATTERNS +\refitem cfg_force_local_includes FORCE_LOCAL_INCLUDES +\refitem cfg_formula_fontsize FORMULA_FONTSIZE +\refitem cfg_formula_transparent FORMULA_TRANSPARENT +\refitem cfg_full_path_names FULL_PATH_NAMES +\refitem cfg_generate_autogen_def GENERATE_AUTOGEN_DEF +\refitem cfg_generate_buglist GENERATE_BUGLIST +\refitem cfg_generate_chi GENERATE_CHI +\refitem cfg_generate_deprecatedlist GENERATE_DEPRECIATEDLIST +\refitem cfg_generate_docset GENERATE_DOCSET +\refitem cfg_generate_eclipsehelp GENERATE_ECLIPSEHELP +\refitem cfg_generate_html GENERATE_HTML +\refitem cfg_generate_htmlhelp GENERATE_HTMLHELP +\refitem cfg_generate_latex GENERATE_LATEX +\refitem cfg_generate_legend GENERATE_LEGEND +\refitem cfg_generate_man GENERATE_MAN +\refitem cfg_generate_perlmod GENERATE_PERLMOD +\refitem cfg_generate_qhp GENERATE_QHP +\refitem cfg_generate_rtf GENERATE_RTF +\refitem cfg_generate_tagfile GENERATE_TAGFILE +\refitem cfg_generate_testlist GENERATE_TESTLIST +\refitem cfg_generate_todolist GENERATE_TODOLIST +\refitem cfg_generate_treeview GENERATE_TREEVIEW +\refitem cfg_generate_xml GENERATE_XML +\refitem cfg_graphical_hierarchy GRAPHICAL_HIERARCHY +\refitem cfg_group_graphs GROUP_GRAPHS +\refitem cfg_have_dot HAVE_DOT +\refitem cfg_hhc_location HHC_LOCATION +\refitem cfg_hide_friend_compounds HIDE_FRIEND_COMPOUNDS +\refitem cfg_hide_in_body_docs HIDE_IN_BODY_DOCS +\refitem cfg_hide_scope_names HIDE_SCOPE_NAMES +\refitem cfg_hide_undoc_classes HIDE_UNDOC_CLASSES +\refitem cfg_hide_undoc_members HIDE_UNDOC_MEMBERS +\refitem cfg_hide_undoc_relations HIDE_UNDOC_RELATIONS +\refitem cfg_html_align_members HTML_ALIGN_MEMBERS +\refitem cfg_html_colorstyle_gamma HTML_COLORSTYLE_GAMMA +\refitem cfg_html_colorstyle_hue HTML_COLORSTYLE_HUE +\refitem cfg_html_colorstyle_sat HTML_COLORSTYLE_SAT +\refitem cfg_html_dynamic_sections HTML_DYNAMIC_SECTIONS +\refitem cfg_html_extra_files HTML_EXTRA_FILES +\refitem cfg_html_extra_stylesheet HTML_EXTRA_STYLESHEET +\refitem cfg_html_file_extension HTML_FILE_EXTENSION +\refitem cfg_html_footer HTML_FOOTER +\refitem cfg_html_header HTML_HEADER +\refitem cfg_html_index_num_entries HTML_INDEX_NUM_ENTRIES +\refitem cfg_html_output HTML_OUTPUT +\refitem cfg_html_stylesheet HTML_STYLESHEET +\refitem cfg_html_timestamp HTML_TIMESTAMP +\refitem cfg_idl_property_support IDL_PROPERTY_SUPPORT +\refitem cfg_ignore_prefix IGNORE_PREFIX +\refitem cfg_image_path IMAGE_PATH +\refitem cfg_include_file_patterns INCLUDE_FILE_PATTERNS +\refitem cfg_include_graph INCLUDE_GRAPH +\refitem cfg_include_path INCLUDE_PATH +\refitem cfg_included_by_graph INCLUDED_BY_GRAPH +\refitem cfg_inherit_docs INHERIT_DOCS +\refitem cfg_inline_grouped_classes INLINE_GROUPED_CLASSES +\refitem cfg_inline_info INLINE_INFO +\refitem cfg_inline_inherited_memb INLINE_INHERITED_MEMB +\refitem cfg_inline_sources INLINE_SOURCES +\refitem cfg_input INPUT +\refitem cfg_input_encoding INPUT_ENCODING +\refitem cfg_input_filter INPUT_FILTER +\refitem cfg_interactive_svg INTERACTIVE_SVG +\refitem cfg_internal_docs INTERNAL_DOCS +\refitem cfg_javadoc_autobrief JAVADOC_AUTOBRIEF +\refitem cfg_latex_batchmode LATEX_BATCHMODE +\refitem cfg_latex_bib_style LATEX_BIB_STYLE +\refitem cfg_latex_cmd_name LATEX_CMD_NAME +\refitem cfg_latex_footer LATEX_FOOTER +\refitem cfg_latex_header LATEX_HEADER +\refitem cfg_latex_hide_indices LATEX_HIDE_INDICES +\refitem cfg_latex_output LATEX_OUTPUT +\refitem cfg_latex_source_code LATEX_SOURCE_CODE +\refitem cfg_layout_file LAYOUT_FILE +\refitem cfg_lookup_cache_size LOOKUP_CACHE_SIZE +\refitem cfg_macro_expansion MACRO_EXPANSION +\refitem cfg_makeindex_cmd_name MAKEINDEX_CMD_NAME +\refitem cfg_man_extension MAN_EXTENSION +\refitem cfg_man_links MAN_LINKS +\refitem cfg_man_output MAN_OUTPUT +\refitem cfg_markdown_support MARKDOWN_SUPPORT +\refitem cfg_mathjax_extensions MATHJAX_EXTENSIONS +\refitem cfg_mathjax_relpath MATHJAX_RELPATH +\refitem cfg_max_dot_graph_depth MAX_DOT_GRAPH_DEPTH +\refitem cfg_max_initializer_lines MAX_INITIALIZER_LINES +\refitem cfg_mscfile_dirs MSCFILE_DIRS +\refitem cfg_mscgen_path MSCGEN_PATH +\refitem cfg_multiline_cpp_is_brief MULTILINE_CPP_IS_BRIEF +\refitem cfg_optimize_for_fortran OPTIMIZE_FOR_FORTRAN +\refitem cfg_optimize_output_for_c OPTIMIZE_OUTPUT_FOR_C +\refitem cfg_optimize_output_java OPTIMIZE_OUTPUT_JAVA +\refitem cfg_optimize_output_vhdl OPTIMIZE_OUTPUT_VHDL +\refitem cfg_output_directory OUTPUT_DIRECTORY +\refitem cfg_output_language OUTPUT_LANGUAGE +\refitem cfg_paper_type PAPER_TYPE +\refitem cfg_pdf_hyperlinks PDF_HYPERLINKS +\refitem cfg_perl_path PERL_PATH +\refitem cfg_perlmod_latex PERLMOD_LATEX +\refitem cfg_perlmod_makevar_prefix PERLMOD_MAKEVAR_PREFIX +\refitem cfg_perlmod_pretty PERLMOD_PRETTY +\refitem cfg_predefined PREDEFINED +\refitem cfg_project_brief PROJECT_BRIEF +\refitem cfg_project_logo PROJECT_LOGO +\refitem cfg_project_name PROJECT_NAME +\refitem cfg_project_number PROJECT_NUMBER +\refitem cfg_qch_file QCH_FILE +\refitem cfg_qhg_location QHG_LOCATION +\refitem cfg_qhp_cust_filter_attrs QHP_CUST_FILTER_ATTRS +\refitem cfg_qhp_cust_filter_name QHP_CUST_FILTER_NAME +\refitem cfg_qhp_namespace QHP_NAMESPACE +\refitem cfg_qhp_sect_filter_attrs QHP_SECT_FILTER_ATTRS +\refitem cfg_qhp_virtual_folder QHP_VIRTUAL_FOLDER +\refitem cfg_qt_autobrief QT_AUTOBRIEF +\refitem cfg_quiet QUIET +\refitem cfg_recursive RECURSIVE +\refitem cfg_referenced_by_relation REFERENCED_BY_RELATION +\refitem cfg_references_link_source REFERENCES_LINK_SOURCE +\refitem cfg_references_relation REFERENCES_RELATION +\refitem cfg_repeat_brief REPEAT_BRIEF +\refitem cfg_rtf_extensions_file RTF_EXTENSIONS_FILE +\refitem cfg_rtf_hyperlinks RTF_HYPERLINKS +\refitem cfg_rtf_output RTF_OUTPUT +\refitem cfg_rtf_stylesheet_file RTF_STYLESHEET_FILE +\refitem cfg_search_includes SEARCH_INCLUDES +\refitem cfg_searchengine SEARCHENGINE +\refitem cfg_separate_member_pages SEPARATE_MEMBER_PAGES +\refitem cfg_server_based_search SERVER_BASED_SEARCH +\refitem cfg_short_names SHORT_NAMES +\refitem cfg_show_files SHOW_FILES +\refitem cfg_show_include_files SHOW_INCLUDE_FILES +\refitem cfg_show_namespaces SHOW_NAMESPACES +\refitem cfg_show_used_files SHOW_USED_FILES +\refitem cfg_sip_support SIP_SUPPORT +\refitem cfg_skip_function_macros SKIP_FUNCTION_MACROS +\refitem cfg_sort_brief_docs SORT_BRIEF_DOCS +\refitem cfg_sort_by_scope_name SORT_BY_SCOPE_NAME +\refitem cfg_sort_group_names SORT_GROUP_NAMES +\refitem cfg_sort_member_docs SORT_MEMBER_DOCS +\refitem cfg_sort_members_constructors_first SORT_MEMBERS_CTORS_1ST +\refitem cfg_source_browser SOURCE_BROWSER +\refitem cfg_strip_code_comments STRIP_CODE_COMMENTS +\refitem cfg_strip_from_inc_path STRIP_FROM_INC_PATH +\refitem cfg_strip_from_path STRIP_FROM_PATH +\refitem cfg_subgrouping SUBGROUPING +\refitem cfg_symbol_cache_size SYMBOL_CACHE_SIZE +\refitem cfg_tab_size TAB_SIZE +\refitem cfg_tagfiles TAGFILES +\refitem cfg_template_relations TEMPLATE_RELATIONS +\refitem cfg_toc_expand TOC_EXPAND +\refitem cfg_treeview_width TREEVIEW_WIDTH +\refitem cfg_typedef_hides_struct TYPEDEF_HIDES_STRUCT +\refitem cfg_uml_limit_num_fields UML_LIMIT_NUM_FIELDS +\refitem cfg_uml_look UML_LOOK +\refitem cfg_use_htags USE_HTAGS +\refitem cfg_use_mathjax USE_MATHJAX +\refitem cfg_use_pdflatex USE_PDFLATEX +\refitem cfg_verbatim_headers VERBATIM_HEADERS +\refitem cfg_warn_format WARN_FORMAT +\refitem cfg_warn_if_doc_error WARN_IF_DOC_ERROR +\refitem cfg_warn_if_undocumented WARN_IF_UNDOCUMENTED +\refitem cfg_warn_logfile WARN_LOGFILE +\refitem cfg_warn_no_paramdoc WARN_NO_PARAMDOC +\refitem cfg_warnings WARNINGS +\refitem cfg_xml_dtd XML_DTD +\refitem cfg_xml_output XML_OUTPUT +\refitem cfg_xml_programlisting XML_PROGRAMLISTING +\refitem cfg_xml_schema XML_SCHEMA +\endsecreflist + +\section config_project Project related options +\anchor cfg_doxyfile_encoding +<dl> + +<dt>\c DOXYFILE_ENCODING <dd> + \addindex DOXYFILE_ENCODING + This tag specifies the encoding used for all characters in the config file that + follow. The default is UTF-8 which is also the encoding used for all text before + the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into + libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of + possible encodings. + +\anchor cfg_project_name +<dt>\c PROJECT_NAME <dd> + \addindex PROJECT_NAME + The \c PROJECT_NAME tag is a single word (or a sequence of words + surrounded by double-quotes) that should identify the project for which the + documentation is generated. This name is used in the title of most + generated pages and in a few other places. + +\anchor cfg_project_number +<dt>\c PROJECT_NUMBER <dd> + \addindex PROJECT_NUMBER + The \c PROJECT_NUMBER tag can be used to enter a project or revision number. + This could be handy for archiving the generated documentation or + if some version control system is used. + +\anchor cfg_project_brief +<dt>\c PROJECT_BRIEF <dd> + Using the \c PROJECT_BRIEF tag one can provide an optional one line description + for a project that appears at the top of each page and should give viewer + a quick idea about the purpose of the project. Keep the description short. + +\anchor cfg_project_logo +<dt>\c PROJECT_LOGO <dd> + With the \c PROJECT_LOGO tag one can specify an logo or icon that is + included in the documentation. The maximum height of the logo should not + exceed 55 pixels and the maximum width should not exceed 200 pixels. + Doxygen will copy the logo to the output directory. + +\anchor cfg_output_directory +<dt>\c OUTPUT_DIRECTORY <dd> + \addindex OUTPUT_DIRECTORY + The \c OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) + path into which the generated documentation will be written. + If a relative path is entered, it will be relative to the location + where doxygen was started. If left blank the current directory will be used. + +\anchor cfg_create_subdirs +<dt>\c CREATE_SUBDIRS <dd> + \addindex CREATE_SUBDIRS + If the \c CREATE_SUBDIRS tag is set to \c YES, then doxygen will create + 4096 sub-directories (in 2 levels) under the output directory of each output + format and will distribute the generated files over these directories. + Enabling this option can be useful when feeding doxygen a huge amount of source + files, where putting all generated files in the same directory would otherwise + causes performance problems for the file system. + +\anchor cfg_output_language +<dt>\c OUTPUT_LANGUAGE <dd> + \addindex OUTPUT_LANGUAGE + The \c OUTPUT_LANGUAGE tag is used to specify the language in which all + documentation generated by doxygen is written. Doxygen will use this + information to generate all constant output in the proper language. + The default language is English, other supported languages are: + Afrikaans, Arabic, Brazilian, Catalan, Chinese, Croatian, Czech, Danish, Dutch, + Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean, + Lithuanian, Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, + Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, and Ukrainian. + +\anchor cfg_brief_member_desc +<dt>\c BRIEF_MEMBER_DESC <dd> + \addindex BRIEF_MEMBER_DESC + If the \c BRIEF_MEMBER_DESC tag is set to \c YES (the default) doxygen will + include brief member descriptions after the members that are listed in + the file and class documentation (similar to JavaDoc). + Set to NO to disable this. + +\anchor cfg_repeat_brief +<dt>\c REPEAT_BRIEF <dd> + \addindex REPEAT_BRIEF + If the \c REPEAT_BRIEF tag is set to \c YES (the default) doxygen will + prepend the brief description of a member or function before the detailed + description + + \par Note: + If both \c HIDE_UNDOC_MEMBERS and \c BRIEF_MEMBER_DESC are set to \c NO, the + brief descriptions will be completely suppressed. + +\anchor cfg_abbreviate_brief +<dt>\c ABBREVIATE_BRIEF <dd> + \addindex ABBREVIATE_BRIEF + This tag implements a quasi-intelligent brief description abbreviator + that is used to form the text in various listings. Each string + in this list, if found as the leading text of the brief description, will be + stripped from the text and the result after processing the whole list, is used + as the annotated text. Otherwise, the brief description is used as-is. If left + blank, the following values are used ("\$name" is automatically replaced with the + name of the entity): "The $name class" "The $name widget" "The $name file" + "is" "provides" "specifies" "contains" "represents" "a" "an" "the". + +\anchor cfg_always_detailed_sec +<dt>\c ALWAYS_DETAILED_SEC <dd> + \addindex ALWAYS_DETAILED_SEC + If the \c ALWAYS_DETAILED_SEC and \c REPEAT_BRIEF tags are both set to \c YES then + doxygen will generate a detailed section even if there is only a brief + description. + +\anchor cfg_inline_inherited_memb +<dt>\c INLINE_INHERITED_MEMB <dd> +\addindex INLINE_INHERITED_MEMB + If the \c INLINE_INHERITED_MEMB tag is set to \c YES, doxygen will show all inherited + members of a class in the documentation of that class as if those members were + ordinary class members. Constructors, destructors and assignment operators of + the base classes will not be shown. + +\anchor cfg_full_path_names +<dt>\c FULL_PATH_NAMES <dd> + \addindex FULL_PATH_NAMES + If the \c FULL_PATH_NAMES tag is set to \c YES doxygen will prepend the full + path before files name in the file list and in the header files. If set + to NO the shortest path that makes the file name unique will be used + +\anchor cfg_strip_from_path +<dt>\c STRIP_FROM_PATH <dd> + \addindex STRIP_FROM_PATH + If the \c FULL_PATH_NAMES tag is set to \c YES then the \c STRIP_FROM_PATH tag + can be used to strip a user-defined part of the path. Stripping is + only done if one of the specified strings matches the left-hand part of the + path. The tag can be used to show relative paths in the file list. + If left blank the directory from which doxygen is run is used as the + path to strip. + +\anchor cfg_strip_from_inc_path +<dt>\c STRIP_FROM_INC_PATH <dd> + \addindex STRIP_FROM_INC_PATH + The \c STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of + the path mentioned in the documentation of a class, which tells + the reader which header file to include in order to use a class. + If left blank only the name of the header file containing the class + definition is used. Otherwise one should specify the include paths that + are normally passed to the compiler using the -I flag. + +\anchor cfg_short_names +<dt>\c SHORT_NAMES <dd> + \addindex SHORT_NAMES + If the \c SHORT_NAMES tag is set to \c YES, doxygen will generate much shorter + (but less readable) file names. This can be useful is your file systems + doesn't support long names like on DOS, Mac, or CD-ROM. + +\anchor cfg_javadoc_autobrief +<dt>\c JAVADOC_AUTOBRIEF <dd> + \addindex JAVADOC_AUTOBRIEF + If the \c JAVADOC_AUTOBRIEF is set to \c YES then doxygen + will interpret the first line (until the first dot) of a JavaDoc-style + comment as the brief description. If set to NO (the default), the + Javadoc-style will behave just like regular Qt-style comments + (thus requiring an explicit \@brief command for a brief description.) + +\anchor cfg_qt_autobrief +<dt>\c QT_AUTOBRIEF <dd> + \addindex QT_AUTOBRIEF + If the \c QT_AUTOBRIEF is set to \c YES then doxygen + will interpret the first line (until the first dot) of a Qt-style + comment as the brief description. If set to NO (the default), the + Qt-style will behave just like regular Qt-style comments (thus + requiring an explicit \\brief command for a brief description.) + +\anchor cfg_markdown_support +<dt>\c MARKDOWN_SUPPORT <dd> + \addindex MARKDOWN_SUPPORT + If \c MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all + comments according to the Markdown format, which allows for more readable + documentation. See http://daringfireball.net/projects/markdown/ for details. + The output of markdown processing is further processed by doxygen, so you + can mix doxygen, HTML, and XML commands with Markdown formatting. + Disable only in case of backward compatibilities issues. + +\anchor cfg_autolink_support +<dt>'c AUTOLINK_SUPPORT <dd> + \addindex AUTOLINK_SUPPORT + When enabled doxygen tries to link words that correspond to documented classes, + or namespaces to their corresponding documentation. Such a link can be + prevented in individual cases by by putting a % sign in front of the word or + globally by setting AUTOLINK_SUPPORT to NO. + +\anchor cfg_builtin_stl_support +<dt>\c BUILTIN_STL_SUPPORT <dd> + \addindex BUILTIN_STL_SUPPORT + If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to + include (a tag file for) the STL sources as input, then you should + set this tag to \c YES in order to let doxygen match functions declarations and + definitions whose arguments contain STL classes (e.g. func(std::string); versus + func(std::string) {}). This also make the inheritance and collaboration + diagrams that involve STL classes more complete and accurate. + +\anchor cfg_cpp_cli_support +<dt>\c CPP_CLI_SUPPORT <dd> + \addindex CPP_CLI_SUPPORT + If you use Microsoft's C++/CLI language, you should set this option to YES to + enable parsing support. + +\anchor cfg_sip_support +<dt>\c SIP_SUPPORT <dd> + \addindex OPTIMIZE_OUTPUT_SIP + Set the SIP_SUPPORT tag to YES if your project consists + of <a href="http://www.riverbankcomputing.co.uk/sip/">sip</a> sources only. + Doxygen will parse them like normal C++ but will assume all classes use public + instead of private inheritance when no explicit protection keyword is present. + +\anchor cfg_idl_property_support +<dt>\c IDL_PROPERTY_SUPPORT <dd> + \addindex IDL_PROPERTY_SUPPORT + For Microsoft's IDL there are propget and propput attributes to indicate getter + and setter methods for a property. Setting this option to \c YES (the default) + will make doxygen to replace the get and set methods by a property in the + documentation. This will only work if the methods are indeed getting or + setting a simple type. If this is not the case, or you want to show the + methods anyway, you should set this option to \c NO. + +\anchor cfg_distribute_group_doc +<dt>\c DISTRIBUTE_GROUP_DOC <dd> + \addindex DISTRIBUTE_GROUP_DOC + If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC + tag is set to YES, then doxygen will reuse the documentation of the first + member in the group (if any) for the other members of the group. By default + all members of a group must be documented explicitly. + +\anchor cfg_multiline_cpp_is_brief +<dt>\c MULTILINE_CPP_IS_BRIEF <dd> + \addindex MULTILINE_CPP_IS_BRIEF + The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen + treat a multi-line C++ special comment block (i.e. a block of //! or /// + comments) as a brief description. This used to be the default behavior. + The new default is to treat a multi-line C++ comment block as a detailed + description. Set this tag to YES if you prefer the old behavior instead. + Note that setting this tag to YES also means that rational rose comments + are not recognized any more. + +<!-- +\anchor cfg_details_at_top +<dt>\c DETAILS_AT_TOP <dd> + \addindex DETAILS_AT_TOP + If the DETAILS_AT_TOP tag is set to YES then Doxygen + will output the detailed description near the top, like JavaDoc. + If set to NO, the detailed description appears after the member + documentation. +--> + +\anchor cfg_inherit_docs +<dt>\c INHERIT_DOCS <dd> + \addindex INHERIT_DOCS + If the \c INHERIT_DOCS tag is set to \c YES (the default) then an undocumented + member inherits the documentation from any documented member that it + re-implements. + +\anchor cfg_separate_member_pages +<dt>\c SEPARATE_MEMBER_PAGES <dd> + \addindex SEPARATE_MEMBER_PAGES + If the \c SEPARATE_MEMBER_PAGES tag is set to \c YES, then doxygen will produce + a new page for each member. If set to \c NO, the documentation of a member will + be part of the file/class/namespace that contains it. + +\anchor cfg_tab_size +<dt>\c TAB_SIZE <dd> + \addindex TAB_SIZE + the \c TAB_SIZE tag can be used to set the number of spaces in a tab. + Doxygen uses this value to replace tabs by spaces in code fragments. + +\anchor cfg_aliases +<dt>\c ALIASES <dd> + \addindex ALIASES + This tag can be used to specify a number of aliases that acts + as commands in the documentation. An alias has the form +\verbatim + name=value +\endverbatim + For example adding +\verbatim + "sideeffect=\par Side Effects:\n" +\endverbatim + will allow you to + put the command \\sideeffect (or \@sideeffect) in the documentation, which + will result in a user-defined paragraph with heading "Side Effects:". + You can put \\n's in the value part of an alias to insert newlines. + +\anchor cfg_optimize_output_for_c +<dt>\c OPTIMIZE_OUTPUT_FOR_C <dd> + \addindex OPTIMIZE_OUTPUT_FOR_C + Set the \c OPTIMIZE_OUTPUT_FOR_C tag to \c YES if your project consists + of C sources only. Doxygen will then generate output that is more tailored + for C. For instance, some of the names that are used will be different. + The list of all members will be omitted, etc. + +\anchor cfg_optimize_output_java +<dt>\c OPTIMIZE_OUTPUT_JAVA <dd> + \addindex OPTIMIZE_OUTPUT_JAVA + Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or + Python sources only. Doxygen will then generate output that is more tailored + for that language. For instance, namespaces will be presented as packages, + qualified scopes will look different, etc. + +\anchor cfg_optimize_for_fortran +<dt>\c OPTIMIZE_FOR_FORTRAN <dd> + \addindex OPTIMIZE_FOR_FORTRAN + Set the \c OPTIMIZE_FOR_FORTRAN tag to \c YES if your project consists of Fortran + sources. Doxygen will then generate output that is tailored for Fortran. + +\anchor cfg_optimize_output_vhdl +<dt>\c OPTIMIZE_OUTPUT_VHDL <dd> + \addindex OPTIMIZE_OUTPUT_VHDL + Set the \c OPTIMIZE_OUTPUT_VHDL tag to \c YES if your project consists of VHDL + sources. Doxygen will then generate output that is tailored for VHDL. + +\anchor cfg_extension_mapping +<dt>\c EXTENSION_MAPPING <dd> + \addindex EXTENSION_MAPPING + Doxygen selects the parser to use depending on the extension of the files it parses. + With this tag you can assign which parser to use for a given extension. + Doxygen has a built-in mapping, but you can override or extend it using this tag. + The format is ext=language, where ext is a file extension, and language is one of + the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, + Objective-C, Python, Fortran, VHDL. For instance to make doxygen treat + .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), + use: inc=Fortran f=C + +\anchor cfg_subgrouping +<dt>\c SUBGROUPING <dd> + \addindex SUBGROUPING + Set the \c SUBGROUPING tag to \c YES (the default) to allow class member groups of + the same type (for instance a group of public functions) to be put as a + subgroup of that type (e.g. under the Public Functions section). Set it to + \c NO to prevent subgrouping. Alternatively, this can be done per class using + the \ref cmdnosubgrouping "\\nosubgrouping" command. + +\anchor cfg_inline_grouped_classes +<dt>\c INLINE_GROUPED_CLASSES <dd> + \addindex INLINE_GROUPED_CLASSES +When the \c INLINE_GROUPED_CLASSES tag is set to \c YES, classes, structs and +unions are shown inside the group in which they are included +(e.g. using @@ingroup) instead of on a separate page (for HTML and Man pages) +or section (for LaTeX and RTF). Note that this feature does not work in +combination with \ref cfg_separate_member_pages "SEPARATE_MEMBER_PAGES". + +\anchor cfg_typedef_hides_struct +<dt>\c TYPEDEF_HIDES_STRUCT <dd> + \addindex TYPEDEF_HIDES_STRUCT + When \c TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum + is documented as struct, union, or enum with the name of the typedef. So + <code>typedef struct TypeS {} TypeT</code>, will appear in the documentation as a struct + with name \c TypeT. When disabled the typedef will appear as a member of a file, + namespace, or class. And the struct will be named \c TypeS. This can typically + be useful for C code in case the coding convention dictates that all compound + types are typedef'ed and only the typedef is referenced, never the tag name. + +\anchor cfg_symbol_cache_size +<dt>\c SYMBOL_CACHE_SIZE <dd> + \addindex SYMBOL_CACHE_SIZE + The \c SYMBOL_CACHE_SIZE determines the size of the internal cache use to + determine which symbols to keep in memory and which to flush to disk. + When the cache is full, less often used symbols will be written to disk. + For small to medium size projects (<1000 input files) the default value is + probably good enough. For larger projects a too small cache size can cause + doxygen to be busy swapping symbols to and from disk most of the time + causing a significant performance penalty. + If the system has enough physical memory increasing the cache will improve the + performance by keeping more symbols in memory. Note that the value works on + a logarithmic scale so increasing the size by one will roughly double the + memory usage. The cache size is given by this formula: + \f$2^{(16+\mbox{SYMBOL\_CACHE\_SIZE})}\f$. The valid range is 0..9, the default is 0, + corresponding to a cache size of \f$2^{16} = 65536\f$ symbols. + +\anchor cfg_lookup_cache_size +<dt>\c LOOKUP_CACHE_SIZE <dd> + \addindex LOOKUP_CACHE_SIZE + Similar to the \c SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be + set using \c LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given + their name and scope. Since this can be an expensive process and often the + same symbol appear multiple times in the code, doxygen keeps a cache of + pre-resolved symbols. If the cache is too small doxygen will become slower. + If the cache is too large, memory is wasted. The cache size is given by this + formula: \f$2^{(16+\mbox{LOOKUP\_CACHE\_SIZE})}\f$. The valid range is 0..9, the default is 0, + corresponding to a cache size of \f$2^{16} = 65536\f$ symbols. + +</dl> + +\section config_build Build related options +\anchor cfg_extract_all +<dl> + +<dt>\c EXTRACT_ALL <dd> + \addindex EXTRACT_ALL + If the \c EXTRACT_ALL tag is set to \c YES doxygen will assume all + entities in documentation are documented, even if no documentation was + available. Private class members and static file members will be hidden + unless the \c EXTRACT_PRIVATE and \c EXTRACT_STATIC tags are set to \c YES + + \par Note: + This will also disable the warnings about undocumented members + that are normally produced when \c WARNINGS is set to \c YES + +\anchor cfg_extract_private +<dt>\c EXTRACT_PRIVATE <dd> + \addindex EXTRACT_PRIVATE + If the \c EXTRACT_PRIVATE tag is set to \c YES all private members of a + class will be included in the documentation. + +\anchor cfg_extract_static +<dt>\c EXTRACT_STATIC <dd> + \addindex EXTRACT_STATIC + If the \c EXTRACT_STATIC tag is set to \c YES all static members of a file + will be included in the documentation. + +\anchor cfg_extract_local_classes +<dt>\c EXTRACT_LOCAL_CLASSES <dd> + \addindex EXTRACT_LOCAL_CLASSES + If the \c EXTRACT_LOCAL_CLASSES tag is set to \c YES classes (and structs) + defined locally in source files will be included in the documentation. + If set to NO only classes defined in header files are included. Does not + have any effect for Java sources. + +\anchor cfg_extract_anon_nspaces +<dt>\c EXTRACT_ANON_NSPACES <dd> + \addindex EXTRACT_ANON_NSPACES + If this flag is set to YES, the members of anonymous namespaces will be extracted + and appear in the documentation as a namespace called 'anonymous_namespace{file}', + where file will be replaced with the base name of the file that contains the anonymous + namespace. By default anonymous namespace are hidden. + +\anchor cfg_extract_local_methods +<dt>\c EXTRACT_LOCAL_METHODS <dd> + \addindex EXTRACT_LOCAL_METHODS + This flag is only useful for Objective-C code. When set to \c YES local + methods, which are defined in the implementation section but not in + the interface are included in the documentation. + If set to \c NO (the default) only methods in the interface are included. + +\anchor cfg_hide_undoc_members +<dt>\c HIDE_UNDOC_MEMBERS <dd> + \addindex HIDE_UNDOC_MEMBERS + If the \c HIDE_UNDOC_MEMBERS tag is set to \c YES, doxygen will hide all + undocumented members inside documented classes or files. + If set to \c NO (the default) these members will be included in the + various overviews, but no documentation section is generated. + This option has no effect if \c EXTRACT_ALL is enabled. + +\anchor cfg_hide_undoc_classes +<dt>\c HIDE_UNDOC_CLASSES <dd> + \addindex HIDE_UNDOC_CLASSES + If the \c HIDE_UNDOC_CLASSESS tag is set to \c YES, doxygen will hide all + undocumented classes. + If set to \c NO (the default) these classes will be included in the + various overviews. + This option has no effect if \c EXTRACT_ALL is enabled. + +\anchor cfg_hide_friend_compounds +<dt>\c HIDE_FRIEND_COMPOUNDS <dd> + \addindex HIDE_FRIEND_COMPOUNDS + If the \c HIDE_FRIEND_COMPOUNDS tag is set to \c YES, Doxygen will hide all + friend (class|struct|union) declarations. + If set to \c NO (the default) these declarations will be included in the + documentation. + +\anchor cfg_hide_in_body_docs +<dt>\c HIDE_IN_BODY_DOCS <dd> + \addindex HIDE_IN_BODY_DOCS +If the \c HIDE_IN_BODY_DOCS tag is set to \c YES, Doxygen will hide any +documentation blocks found inside the body of a function. +If set to \c NO (the default) these blocks will be appended to the +function's detailed documentation block. + +\anchor cfg_internal_docs +<dt>\c INTERNAL_DOCS <dd> + \addindex INTERNAL_DOCS + The \c INTERNAL_DOCS tag determines if documentation + that is typed after a \ref cmdinternal "\\internal" command is included. If the tag is set + to \c NO (the default) then the documentation will be excluded. + Set it to \c YES to include the internal documentation. + +\anchor cfg_case_sense_names +<dt>\c CASE_SENSE_NAMES <dd> + \addindex CASE_SENSE_NAMES + If the \c CASE_SENSE_NAMES tag is set to \c NO then doxygen + will only generate file names in lower-case letters. If set to + \c YES upper-case letters are also allowed. This is useful if you have + classes or files whose names only differ in case and if your file system + supports case sensitive file names. Windows users are advised to set this + option to NO. + +\anchor cfg_hide_scope_names +<dt>\c HIDE_SCOPE_NAMES <dd> + \addindex HIDE_SCOPE_NAMES + If the \c HIDE_SCOPE_NAMES tag is set to \c NO (the default) then doxygen + will show members with their full class and namespace scopes in the + documentation. If set to \c YES the scope will be hidden. + +\anchor cfg_show_include_files +<dt>\c SHOW_INCLUDE_FILES <dd> + \addindex SHOW_INCLUDE_FILES + If the SHOW_INCLUDE_FILES tag is set to \c YES (the default) then doxygen + will put a list of the files that are included by a file in the documentation + of that file. + +\anchor cfg_force_local_includes +<dt>\c FORCE_LOCAL_INCLUDES <dd> + \addindex FORCE_LOCAL_INCLUDES + If the \c FORCE_LOCAL_INCLUDES tag is set to \c YES then Doxygen + will list include files with double quotes in the documentation + rather than with sharp brackets. + +\anchor cfg_inline_info +<dt>\c INLINE_INFO <dd> + \addindex INLINE_INFO + If the \c INLINE_INFO tag is set to \c YES (the default) then a tag [inline] + is inserted in the documentation for inline members. + +\anchor cfg_sort_member_docs +<dt>\c SORT_MEMBER_DOCS <dd> + \addindex SORT_MEMBER_DOCS + If the \c SORT_MEMBER_DOCS tag is set to \c YES (the default) then doxygen + will sort the (detailed) documentation of file and class members + alphabetically by member name. If set to \c NO the members will appear in + declaration order. + +\anchor cfg_sort_brief_docs +<dt>\c SORT_BRIEF_DOCS <dd> + \addindex SORT_BRIEF_DOCS + If the \c SORT_BRIEF_DOCS tag is set to \c YES then doxygen will sort the + brief descriptions of file, namespace and class members alphabetically + by member name. If set to \c NO (the default) the members will appear in + declaration order. + + +\anchor cfg_sort_group_names +<dt>\c SORT_GROUP_NAMES <dd> + \addindex SORT_GROUP_NAMES + If the \c SORT_GROUP_NAMES tag is set to \c YES then doxygen will sort the + hierarchy of group names into alphabetical order. If set to \c NO (the default) + the group names will appear in their defined order. + +\anchor cfg_sort_by_scope_name +<dt>\c SORT_BY_SCOPE_NAME <dd> + \addindex SORT_BY_SCOPE_NAME + If the \c SORT_BY_SCOPE_NAME tag is set to \c YES, the class list will be + sorted by fully-qualified names, including namespaces. If set to + NO (the default), the class list will be sorted only by class name, + not including the namespace part. + @note This option is not very useful if \c HIDE_SCOPE_NAMES is set to \c YES. + @note This option applies only to the class list, not to the + alphabetical list. + +\anchor cfg_sort_members_constructors_first +<dt>\c SORT_MEMBERS_CTORS_1ST <dd> + \addindex SORT_MEMBERS_CTORS_1ST + If the \c SORT_MEMBERS_CTORS_1ST tag is set to \c YES then doxygen + will sort the (brief and detailed) documentation of class members so that + constructors and destructors are listed first. If set to NO (the default) + the constructors will appear in the respective orders defined by + \c SORT_MEMBER_DOCS and \c SORT_BRIEF_DOCS. + @note If \c SORT_BRIEF_DOCS is set to \c NO this option is ignored for + sorting brief member documentation. + @note If \c SORT_MEMBER_DOCS is set to \c NO this option is ignored for + sorting detailed member documentation. + +\anchor cfg_generate_deprecatedlist +<dt>\c GENERATE_DEPRECATEDLIST <dd> + \addindex GENERATE_DEPRECATEDLIST + The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or + disable (NO) the deprecated list. This list is created by + putting \ref cmddeprecated "\\deprecated" + commands in the documentation. + +\anchor cfg_strict_proto_matching +<dt>\c STRICT_PROTO_MATCHING <dd> + \addindex STRICT_PROTO_MATCHING + If the \c STRICT_PROTO_MATCHING option is enabled and doxygen fails to + do proper type resolution of all parameters of a function it will reject a + match between the prototype and the implementation of a member function even + if there is only one candidate or it is obvious which candidate to choose + by doing a simple string match. By disabling \c STRICT_PROTO_MATCHING doxygen + will still accept a match between prototype and implementation in such cases. + +\anchor cfg_generate_todolist +<dt>\c GENERATE_TODOLIST <dd> + \addindex GENERATE_TODOLIST + The GENERATE_TODOLIST tag can be used to enable (YES) or + disable (NO) the todo list. This list is created by + putting \ref cmdtodo "\\todo" + commands in the documentation. + +\anchor cfg_generate_testlist +<dt>\c GENERATE_TESTLIST <dd> + \addindex GENERATE_TESTLIST + The GENERATE_TESTLIST tag can be used to enable (YES) or + disable (NO) the test list. This list is created by + putting \ref cmdtest "\\test" commands in the documentation. + +\anchor cfg_generate_buglist +<dt>\c GENERATE_BUGLIST <dd> + \addindex GENERATE_BUGLIST + The GENERATE_BUGLIST tag can be used to enable (YES) or + disable (NO) the bug list. This list is created by + putting \ref cmdbug "\\bug" commands in the documentation. + +\anchor cfg_enabled_sections +<dt>\c ENABLED_SECTIONS <dd> + \addindex ENABLED_SECTIONS + The \c ENABLED_SECTIONS tag can be used to enable conditional + documentation sections, marked by \ref cmdif "\\if" \<section-label\> ... + \ref cmdendif "\\endif" and \ref cmdcond "\\cond" \<section-label\> ... + \ref cmdendcond "\\endcond" blocks. + +\anchor cfg_max_initializer_lines +<dt>\c MAX_INITIALIZER_LINES <dd> + \addindex MAX_INITIALIZER_LINES + The \c MAX_INITIALIZER_LINES tag determines the maximum number of lines + that the initial value of a variable or define can be. If the initializer + consists of more lines than specified here it will be hidden. Use a value + of 0 to hide initializers completely. The appearance of the value of + individual variables and defines can be controlled using \ref cmdshowinitializer "\\showinitializer" + or \ref cmdhideinitializer "\\hideinitializer" command in the documentation. + +\anchor cfg_show_used_files +<dt>\c SHOW_USED_FILES <dd> + \addindex SHOW_USED_FILES + Set the \c SHOW_USED_FILES tag to \c NO to disable the list of files generated + at the bottom of the documentation of classes and structs. If set to \c YES the + list will mention the files that were used to generate the documentation. + +\anchor cfg_show_files +<dt>\c SHOW_FILES <dd> + \addindex SHOW_FILES + Set the \c SHOW_FILES tag to \c NO to disable the generation of the Files page. + This will remove the Files entry from the Quick Index and from the + Folder Tree View (if specified). The default is \c YES. + +\anchor cfg_show_namespaces +<dt>\c SHOW_NAMESPACES <dd> + \addindex SHOW_NAMESPACES + Set the \c SHOW_NAMESPACES tag to \c NO to disable the generation of the + Namespaces page. This will remove the Namespaces entry from the Quick Index + and from the Folder Tree View (if specified). The default is \c YES. + +\anchor cfg_file_version_filter +<dt>\c FILE_VERSION_FILTER <dd> + \addindex FILE_VERSION_FILTER + The \c FILE_VERSION_FILTER tag can be used to specify a program or script that + doxygen should invoke to get the current version for each file (typically from the + version control system). Doxygen will invoke the program by executing (via + popen()) the command <code>command input-file</code>, where \c command is + the value of the \c FILE_VERSION_FILTER tag, and \c input-file is the name + of an input file provided by doxygen. + Whatever the program writes to standard output is used as the file version. + +Example of using a shell script as a filter for Unix: +\verbatim + FILE_VERSION_FILTER = "/bin/sh versionfilter.sh" +\endverbatim + +Example shell script for CVS: +\verbatim +#!/bin/sh +cvs status $1 | sed -n 's/^[ \]*Working revision:[ \t]*\([0-9][0-9\.]*\).*/\1/p' +\endverbatim + +Example shell script for Subversion: +\verbatim +#!/bin/sh +svn stat -v $1 | sed -n 's/^[ A-Z?\*|!]\{1,15\}/r/;s/ \{1,15\}/\/r/;s/ .*//p' +\endverbatim + +Example filter for ClearCase: +\verbatim +FILE_VERSION_INFO = "cleartool desc -fmt \%Vn" +\endverbatim + +\anchor cfg_layout_file +<dt>\c LAYOUT_FILE <dd> + The \c LAYOUT_FILE tag can be used to specify a layout file which will be parsed by + doxygen. The layout file controls the global structure of the generated output files + in an output format independent way. To create the layout file that represents + doxygen's defaults, run doxygen with the -l option. You can optionally specify a + file name after the option, if omitted DoxygenLayout.xml will be used as the name + of the layout file. Note that if you run doxygen from a directory containing + a file called DoxygenLayout.xml, doxygen will parse it automatically even if + the \c LAYOUT_FILE tag is left empty. + +\anchor cfg_cite_bib_files +<dt>\c CITE_BIB_FILES <dd> + \addindex CITE_BIB_FILES + The \c CITE_BIB_FILES tag can be used to specify one or more bib files + containing the reference definitions. This must be a list of .bib files. The + .bib extension is automatically appended if omitted. This requires the + bibtex tool to be installed. See also http://en.wikipedia.org/wiki/BibTeX + for more info. For LaTeX the style of the bibliography can be controlled + using \ref cfg_latex_bib_style "LATEX_BIB_STYLE". See + also \ref cmdcite "\\cite" for info how to create references. + +</dl> + +\section messages_input Options related to warning and progress messages +\anchor cfg_quiet +<dl> + +<dt>\c QUIET <dd> + \addindex QUIET + The \c QUIET tag can be used to turn on/off the messages that are generated + to standard output by doxygen. Possible values are \c YES and \c NO, + where \c YES implies that the messages are off. + If left blank \c NO is used. + +\anchor cfg_warnings +<dt>\c WARNINGS <dd> + \addindex WARNINGS + The \c WARNINGS tag can be used to turn on/off the warning messages that are + generated to standard error by doxygen. Possible values are \c YES and \c NO, + where \c YES implies that the warnings are on. If left blank \c NO is used. + + \b Tip: Turn warnings on while writing the documentation. + +\anchor cfg_warn_if_undocumented +<dt>\c WARN_IF_UNDOCUMENTED <dd> + \addindex WARN_IF_UNDOCUMENTED + If \c WARN_IF_UNDOCUMENTED is set to \c YES, then doxygen will generate warnings + for undocumented members. If \c EXTRACT_ALL is set to \c YES then this flag will + automatically be disabled. + +\anchor cfg_warn_if_doc_error +<dt>\c WARN_IF_DOC_ERROR <dd> + \addindex WARN_IF_DOC_ERROR + If \c WARN_IF_DOC_ERROR is set to \c YES, doxygen will generate warnings for + potential errors in the documentation, such as not documenting some + parameters in a documented function, or documenting parameters that + don't exist or using markup commands wrongly. + +\anchor cfg_warn_no_paramdoc +<dt>\c WARN_NO_PARAMDOC <dd> + \addindex WARN_NO_PARAMDOC + This \c WARN_NO_PARAMDOC option can be enabled to get warnings for + functions that are documented, but have no documentation for their parameters + or return value. If set to \c NO (the default) doxygen will only warn about + wrong or incomplete parameter documentation, but not about the absence of + documentation. + +\anchor cfg_warn_format +<dt>\c WARN_FORMAT <dd> + \addindex WARN_FORMAT + The \c WARN_FORMAT tag determines the format of the warning messages that + doxygen can produce. The string should contain the <code>\$file</code>, + <code>\$line</code>, and <code>\$text</code> + tags, which will be replaced by the file and line number from which the + warning originated and the warning text. + +\anchor cfg_warn_logfile +<dt>\c WARN_LOGFILE <dd> + \addindex WARN_LOGFILE + The \c WARN_LOGFILE tag can be used to specify a file to which warning + and error messages should be written. If left blank the output is written + to stderr. + +</dl> + +\section config_input Input related options +\anchor cfg_input +<dl> + +<dt>\c INPUT <dd> + \addindex INPUT + The \c INPUT tag is used to specify the files and/or directories that contain + documented source files. You may enter file names like + \c myfile.cpp or directories like \c /usr/src/myproject. + Separate the files or directories with spaces.<br> + + \b Note: + If this tag is empty the current directory is searched. + +\anchor cfg_input_encoding +<dt>\c INPUT_ENCODING <dd> + \addindex INPUT_ENCODING + This tag can be used to specify the character encoding of the source files that + doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default + input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding. + See <a href="http://www.gnu.org/software/libiconv">the libiconv documentation</a> for + the list of possible encodings. + +\anchor cfg_file_patterns +<dt>\c FILE_PATTERNS <dd> + \addindex FILE_PATTERNS + If the value of the \c INPUT tag contains directories, you can use the + \c FILE_PATTERNS tag to specify one or more wildcard patterns + (like \c *.cpp and \c *.h ) to filter out the source-files + in the directories. If left blank the following patterns are tested: + <code> + *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh + *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.markdown *.md + *.mm *.dox *.py *.f90 *.f *.vhd *.vhdl + </code> + +\anchor cfg_recursive +<dt>\c RECURSIVE <dd> + \addindex RECURSIVE + The \c RECURSIVE tag can be used to specify whether or not subdirectories + should be searched for input files as well. Possible values are \c YES + and \c NO. If left blank \c NO is used. + +\anchor cfg_exclude +<dt>\c EXCLUDE <dd> + \addindex EXCLUDE + The \c EXCLUDE tag can be used to specify files and/or directories that should be + excluded from the \c INPUT source files. This way you can easily exclude a + subdirectory from a directory tree whose root is specified with the \c INPUT tag. + Note that relative paths are relative to the directory from which doxygen is run. + +\anchor cfg_exclude_symlinks +<dt>\c EXCLUDE_SYMLINKS <dd> + \addindex EXCLUDE_SYMLINKS + The \c EXCLUDE_SYMLINKS tag can be used to select whether or not files or directories + that are symbolic links (a Unix file system feature) are excluded from the input. + +\anchor cfg_exclude_patterns +<dt>\c EXCLUDE_PATTERNS <dd> + \addindex EXCLUDE_PATTERNS + If the value of the \c INPUT tag contains directories, you can use the + \c EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude + certain files from those directories. + +\anchor cfg_exclude_symbols +<dt>\c EXCLUDE_SYMBOLS <dd> +The \c EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +(namespaces, classes, functions, etc.) that should be excluded from the +output. The symbol name can be a fully qualified name, a word, or if the +wildcard * is used, a substring. Examples: ANamespace, AClass, +AClass::ANamespace, ANamespace::*Test + + Note that the wildcards are matched against the file with absolute path, + so to exclude all test directories use the pattern + `*``/test/``*` + +\anchor cfg_example_path +<dt>\c EXAMPLE_PATH <dd> + \addindex EXAMPLE_PATH + The \c EXAMPLE_PATH tag can be used to specify one or more files or + directories that contain example code fragments that are included (see + the \\include command in section \ref cmdinclude "\\include"). + +\anchor cfg_example_recursive +<dt>\c EXAMPLE_RECURSIVE <dd> + \addindex EXAMPLE_RECURSIVE + If the \c EXAMPLE_RECURSIVE tag is set to \c YES then subdirectories will be + searched for input files to be used with the \\include or \\dontinclude + commands irrespective of the value of the \c RECURSIVE tag. + Possible values are \c YES and \c NO. If left blank \c NO is used. + +\anchor cfg_example_patterns +<dt>\c EXAMPLE_PATTERNS <dd> + \addindex EXAMPLE_PATTERNS + If the value of the \c EXAMPLE_PATH tag contains directories, you can use the + \c EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like `*.cpp` + and `*.h`) to filter out the source-files in the directories. If left + blank all files are included. + +\anchor cfg_image_path +<dt>\c IMAGE_PATH <dd> + \addindex IMAGE_PATH + The \c IMAGE_PATH tag can be used to specify one or more files or + directories that contain images that are to be included in the + documentation (see the \ref cmdimage "\\image" command). + +\anchor cfg_input_filter +<dt>\c INPUT_FILTER <dd> + \addindex INPUT_FILTER + The \c INPUT_FILTER tag can be used to specify a program that doxygen should + invoke to filter for each input file. Doxygen will invoke the filter program + by executing (via popen()) the command: +\verbatim <filter> <input-file> +\endverbatim + + where \<filter\> + is the value of the \c INPUT_FILTER tag, and \<input-file\> is the name of an + input file. Doxygen will then use the output that the filter program writes + to standard output. + +\anchor cfg_filter_patterns +<dt>\c FILTER_PATTERNS <dd> + \addindex FILTER_PATTERNS + The \c FILTER_PATTERNS tag can be used to specify filters on a per file pattern + basis. Doxygen will compare the file name with each pattern and apply the + filter if there is a match. The filters are a list of the form: + pattern=filter (like `*.cpp=my_cpp_filter`). See \c INPUT_FILTER for further + info on how filters are used. If \c FILTER_PATTERNS is empty or if + none of the patterns match the file name, \c INPUT_FILTER is applied. + +\anchor cfg_filter_source_files +<dt>\c FILTER_SOURCE_FILES <dd> + \addindex FILTER_SOURCE_FILES + If the \c FILTER_SOURCE_FILES tag is set to \c YES, the input filter (if set using + \ref cfg_input_filter "INPUT_FILTER" ) will also be used to filter the input + files that are used for producing the source files to browse + (i.e. when SOURCE_BROWSER is set to YES). + +\anchor cfg_filter_source_patterns +<dt>\c FILTER_SOURCE_PATTERNS <dd> + \addindex FILTER_SOURCE_PATTERNS + The \c FILTER_SOURCE_PATTERNS tag can be used to specify source filters per + file pattern. A pattern will override the setting for \c FILTER_PATTERN (if any) + and it is also possible to disable source filtering for a specific pattern + using `*.ext=` (so without naming a filter). This option only has effect when + \c FILTER_SOURCE_FILES is enabled. + +</dl> + +\section sourcebrowser_index Source browsing related options +\anchor cfg_source_browser +<dl> + +<dt>\c SOURCE_BROWSER <dd> + \addindex SOURCE_BROWSER + If the \c SOURCE_BROWSER tag is set to \c YES then a list of source files will + be generated. Documented entities will be cross-referenced with these sources. + Note: To get rid of all source code in the generated output, make sure also + \c VERBATIM_HEADERS is set to NO. + +\anchor cfg_inline_sources +<dt>\c INLINE_SOURCES <dd> + \addindex INLINE_SOURCES + Setting the \c INLINE_SOURCES tag to \c YES will include the body + of functions, classes and enums directly into the documentation. + +\anchor cfg_strip_code_comments +<dt>\c STRIP_CODE_COMMENTS <dd> + \addindex STRIP_CODE_COMMENTS + Setting the \c STRIP_CODE_COMMENTS tag to \c YES (the default) will instruct + doxygen to hide any special comment blocks from generated source code + fragments. Normal C and C++ comments will always remain visible. + +\anchor cfg_referenced_by_relation +<dt>\c REFERENCED_BY_RELATION <dd> + \addindex REFERENCED_BY_RELATION + If the \c REFERENCED_BY_RELATION tag is set to \c YES + then for each documented function all documented + functions referencing it will be listed. + +\anchor cfg_references_relation +<dt>\c REFERENCES_RELATION <dd> + \addindex REFERENCES_RELATION + If the \c REFERENCES_RELATION tag is set to \c YES + then for each documented function all documented entities + called/used by that function will be listed. + +\anchor cfg_references_link_source +<dt>\c REFERENCES_LINK_SOURCE <dd> + \addindex REFERENCES_LINK_SOURCE + If the \c REFERENCES_LINK_SOURCE tag is set to \c YES (the default) + and SOURCE_BROWSER tag is set to \c YES, then the hyperlinks from + functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will + link to the source code. Otherwise they will link to the documentation. + +\anchor cfg_verbatim_headers +<dt>\c VERBATIM_HEADERS <dd> + \addindex VERBATIM_HEADERS + If the \c VERBATIM_HEADERS tag is set the \c YES (the default) then doxygen + will generate a verbatim copy of the header file for each class for + which an include is specified. Set to NO to disable this. + \sa Section \ref cmdclass "\\class". + +\anchor cfg_use_htags +<dt>\c USE_HTAGS <dd> + \addindex USE_HTAGS + If the \c USE_HTAGS tag is set to \c YES then the references to source code + will point to the HTML generated by the htags(1) tool instead of doxygen + built-in source browser. The htags tool is part of GNU's global source + tagging system (see http://www.gnu.org/software/global/global.html). + To use it do the following: + + -# Install the latest version of global (i.e. 4.8.6 or better) + -# Enable SOURCE_BROWSER and USE_HTAGS in the config file + -# Make sure the INPUT points to the root of the source tree + -# Run doxygen as normal + + Doxygen will invoke htags (and that will in turn invoke gtags), so these tools + must be available from the command line (i.e. in the search path). + + The result: instead of the source browser generated by doxygen, the links to + source code will now point to the output of htags. + +</dl> + +\section alphabetical_index Alphabetical index options +\anchor cfg_alphabetical_index +<dl> + +<dt>\c ALPHABETICAL_INDEX <dd> + \addindex ALPHABETICAL_INDEX + If the \c ALPHABETICAL_INDEX tag is set to \c YES, an alphabetical index + of all compounds will be generated. Enable this if the project contains + a lot of classes, structs, unions or interfaces. + +<dt>\c COLS_IN_ALPHA_INDEX <dd> + \anchor cfg_cols_in_alpha_index + \addindex COLS_IN_ALPHA_INDEX + If the alphabetical index is enabled + (see \c ALPHABETICAL_INDEX) then the \c COLS_IN_ALPHA_INDEX tag can be + used to specify the number of columns in which this list will be split (can be a number in the range [1..20]) + +\anchor cfg_ignore_prefix +<dt>\c IGNORE_PREFIX <dd> + \addindex IGNORE_PREFIX + In case all classes in a project start with a common prefix, all classes will + be put under the same header in the alphabetical index. + The \c IGNORE_PREFIX tag can be used to specify a prefix + (or a list of prefixes) that should be ignored while generating the index + headers. + +</dl> +\section html_output HTML related options +\anchor cfg_generate_html +<dl> + +<dt>\c GENERATE_HTML <dd> + \addindex GENERATE_HTML + If the \c GENERATE_HTML tag is set to \c YES (the default) doxygen will + generate HTML output + +\anchor cfg_html_output +<dt>\c HTML_OUTPUT <dd> + \addindex HTML_OUTPUT + The \c HTML_OUTPUT tag is used to specify where the HTML docs will be put. + If a relative path is entered the value of \c OUTPUT_DIRECTORY will be + put in front of it. If left blank 'html' will be used as the default path. + +\anchor cfg_html_file_extension +<dt>\c HTML_FILE_EXTENSION <dd> + \addindex HTML_FILE_EXTENSION + The \c HTML_FILE_EXTENSION tag can be used to specify the file extension for + each generated HTML page (for example: .htm, .php, .asp). If it is left blank + doxygen will generate files with .html extension. + +\anchor cfg_html_header +<dt>\c HTML_HEADER <dd> + \addindex HTML_HEADER + The \c HTML_HEADER tag can be used to specify a user-defined HTML + header file for each generated HTML page. + If the tag is left blank doxygen will generate a + standard header. + + To get valid HTML the header file that + includes any scripts and style sheets that doxygen + needs, it is highly recommended to start with a default header using +\verbatim +doxygen -w html new_header.html new_footer.html new_stylesheet.css YourConfigFile +\endverbatim + and then modify the file \c new_header.html. + + The following markers have a special meaning inside the header and footer: + <dl> + <dt><code>\$title</code><dd>will be replaced with the title of the page. + <dt><code>\$datetime</code><dd>will be replaced with current the date and time. + <dt><code>\$date</code><dd>will be replaced with the current date. + <dt><code>\$year</code><dd>will be replaces with the current year. + <dt><code>\$doxygenversion</code><dd>will be replaced with the version of doxygen + <dt><code>\$projectname</code><dd>will be replaced with the name of + the project (see \ref cfg_project_name "PROJECT_NAME") + <dt><code>\$projectnumber</code><dd>will be replaced with the project number + (see \ref cfg_project_number "PROJECT_NUMBER") + <dt><code>\$projectbrief</code><dd>will be replaced with the project brief + description (see \ref cfg_project_brief "PROJECT_BRIEF") + <dt><code>\$projectlogo</code><dd>will be replaced with the project logo + (see \ref cfg_project_logo "PROJECT_LOGO") + <dt><code>\$treeview</code><dd>will be replaced with links to + the javascript and style sheets needed for the navigation tree + (or an empty string when \ref cfg_generate_treeview "GENERATE_TREEVIEW" + is disabled). + <dt><code>\$search</code><dd>will be replaced with a links to + the javascript and style sheets needed for the search engine + (or an empty string when \ref cfg_searchengine "SEARCHENGINE" + is disabled). + <dt><code>\$mathjax</code><dd>will be replaced with a links to + the javascript and style sheets needed for the MathJax feature + (or an empty string when \ref cfg_use_mathjax "USE_MATHJAX" is disabled). + <dt><code>\$relpath\$</code><dd> + If \c CREATE_SUBDIRS is enabled, the command <code>\$relpath\$</code> can be + used to produce a relative path to the root of the HTML output directory, + e.g. use \$relpath\$doxygen.css, to refer to the standard style sheet. + </dl> + + To cope with differences in the layout of the header and footer that depend on + configuration settings, the header can also contain special blocks that + will be copied to the output or skipped depending on the configuration. + Such blocks have the following form: +\verbatim + <!--BEGIN BLOCKNAME--> + Some context copied when condition BLOCKNAME holds + <!--END BLOCKNAME--> + <!--BEGIN !BLOCKNAME--> + Some context copied when condition BLOCKNAME does not hold + <!--END !BLOCKNAME--> +\endverbatim + The following block names are supported: + <dl> + <dt><code>DISABLE_INDEX</code><dd>Content within this block is copied to the output + when the \ref cfg_disable_index "DISABLE_INDEX" option is enabled (so when the index is disabled). + <dt><code>GENERATE_TREEVIEW</code><dd>Content within this block is copied to the output + when the \ref cfg_generate_treeview "GENERATE_TREEVIEW" option is enabled. + <dt><code>SEARCHENGINE</code><dd>Content within this block is copied to the output + when the \ref cfg_searchengine "SEARCHENGINE" option is enabled. + <dt><code>PROJECT_NAME</code><dd>Content within the block is copied to the output + when the \ref cfg_project_name "PROJECT_NAME" option is not empty. + <dt><code>PROJECT_NUMBER</code><dd>Content within the block is copied to the output + when the \ref cfg_project_number "PROJECT_NUMBER" option is not empty. + <dt><code>PROJECT_BRIEF</code><dd>Content within the block is copied to the output + when the \ref cfg_project_brief "PROJECT_BRIEF" option is not empty. + <dt><code>PROJECT_LOGO</code><dd>Content within the block is copied to the output + when the \ref cfg_project_logo "PROJECT_LOGO" option is not empty. + <dt><code>TITLEAREA</code><dd>Content within this block is copied to the output + when a title is visible at the top of each page. This is the case + if either \ref cfg_project_name "PROJECT_NAME", + \ref cfg_project_brief "PROJECT_BRIEF", \ref cfg_project_logo "PROJECT_LOGO" + is filled in or if both \ref cfg_disable_index "DISABLE_INDEX" and + \ref cfg_searchengine "SEARCHENGINE" are enabled. + </dl> + + See also section \ref doxygen_usage for information on how to generate + the default header that doxygen normally uses. + + @note The header is subject to change so you typically + have to regenerate the default header when upgrading to a newer version of + doxygen. + +\anchor cfg_html_footer +<dt>\c HTML_FOOTER <dd> + \addindex HTML_FOOTER + The \c HTML_FOOTER tag can be used to specify a user-defined HTML footer for + each generated HTML page. + If the tag is left blank doxygen will generate a standard footer. + + See \ref cfg_html_header "HTML_HEADER" for more information on + how to generate a default footer and what special commands can be + used inside the footer. + + See also section \ref doxygen_usage for information on how to generate + the default footer that doxygen normally uses. + +\anchor cfg_html_stylesheet +<dt>\c HTML_STYLESHEET <dd> + \addindex HTML_STYLESHEET + + The HTML_STYLESHEET tag can be used to specify a user-defined cascading + style sheet that is used by each HTML page. It can be used to + fine-tune the look of the HTML output. If left blank doxygen + will generate a default style sheet. + + See also section \ref doxygen_usage for information on how to generate + the style sheet that doxygen normally uses. + + \note It is recommended to use + \c HTML_EXTRA_STYLESHEET instead of this one, as it is more robust and + this tag will in the future become obsolete. + +\anchor cfg_html_extra_stylesheet +<dt>\c HTML_EXTRA_STYLESHEET <dd> + \addindex HTML_EXTRA_STYLESHEET + The HTML_EXTRA_STYLESHEET tag can be used to specify an additional + user-defined cascading style sheet that is included after the standard + style sheets created by doxygen. Using this option one can overrule + certain style aspects. This is preferred over using \c HTML_STYLESHEET + since it does not replace the standard style sheet and is therefor more + robust against future updates. Doxygen will copy the style sheet file to + the output directory. + + Here is an example stylesheet that gives the contents area a fixed width: +\verbatim +body { + background-color: #CCC; + color: black; + margin: 0; +} + +div.contents { + margin-bottom: 10px; + padding: 12px; + margin-left: auto; + margin-right: auto; + width: 960px; + background-color: white; + border-radius: 8px; +} + +#titlearea { + background-color: white; +} + +hr.footer { + display: none; +} + +.footer { + background-color: #AAA; +} +\endverbatim + +\anchor cfg_html_extra_files +<dt>\c HTML_EXTRA_FILES <dd> + \addindex HTML_EXTRA_FILES + The \c HTML_EXTRA_FILES tag can be used to specify one or more extra images or + other source files which should be copied to the HTML output directory. Note + that these files will be copied to the base HTML output directory. Use the + $relpath$ marker in the \c HTML_HEADER and/or \c HTML_FOOTER files to load these + files. In the \c HTML_STYLESHEET file, use the file name only. Also note that + the files will be copied as-is; there are no commands or markers available. + +\anchor cfg_html_colorstyle_hue +<dt>\c HTML_COLORSTYLE_HUE <dd> + \addindex HTML_COLOR_STYLE_HUE + The \c HTML_COLORSTYLE_HUE tag controls the color of the HTML output. + Doxygen will adjust the colors in the stylesheet and background images + according to this color. Hue is specified as an angle on a colorwheel, + see http://en.wikipedia.org/wiki/Hue for more information. + For instance the value 0 represents red, 60 is yellow, 120 is green, + 180 is cyan, 240 is blue, 300 purple, and 360 is red again. + The allowed range is 0 to 359. + +\anchor cfg_html_colorstyle_sat +<dt>\c HTML_COLORSTYLE_SAT <dd> + \addindex HTML_COLORSTYLE_SAT + The \c HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of + the colors in the HTML output. For a value of 0 the output will use + grayscales only. A value of 255 will produce the most vivid colors. + +\anchor cfg_html_colorstyle_gamma +<dt>\c HTML_COLORSTYLE_GAMMA <dd> + The \c HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to + the luminance component of the colors in the HTML output. Values below + 100 gradually make the output lighter, whereas values above 100 make + the output darker. The value divided by 100 is the actual gamma applied, + so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, + and 100 does not change the gamma. + +\anchor cfg_html_timestamp +<dt>\c HTML_TIMESTAMP <dd> + \addindex HTML_TIMESTAMP + If the \c HTML_TIMESTAMP tag is set to \c YES then the footer of + each generated HTML page will contain the date and time when the page + was generated. Setting this to NO can help when comparing the output of + multiple runs. + +\anchor cfg_html_align_members +<dt>\c HTML_ALIGN_MEMBERS <dd> + \addindex HTML_ALIGN_MEMBERS + If the \c HTML_ALIGN_MEMBERS tag is set to \c YES, the members of classes, + files or namespaces will be aligned in HTML using tables. If set to + \c NO a bullet list will be used. + + <b>Note:</b> + Setting this tag to \c NO will become obsolete in the future, since I only + intent to support and test the aligned representation. + +\anchor cfg_html_dynamic_sections +<dt>\c HTML_DYNAMIC_SECTIONS <dd> + \addindex HTML_DYNAMIC_SECTIONS + If the \c HTML_DYNAMIC_SECTIONS tag is set to \c YES then the generated HTML + documentation will contain sections that can be hidden and shown after the + page has loaded. + +\anchor cfg_html_index_num_entries +<dt>\c HTML_NUM_INDEX_ENTRIES <dd> + \addindex HTML_NUM_INDEX_ENTRIES + With HTML_INDEX_NUM_ENTRIES one can control the preferred number of + entries shown in the various tree structured indices initially; the user + can expand and collapse entries dynamically later on. Doxygen will expand + the tree to such a level that at most the specified number of entries are + visible (unless a fully collapsed tree already exceeds this amount). + So setting the number of entries 1 will produce a full collapsed tree by + default. 0 is a special value representing an infinite number of entries + and will result in a full expanded tree by default. + +\anchor cfg_generate_docset +<dt>\c GENERATE_DOCSET <dd> + \addindex GENERATE_DOCSET + If the \c GENERATE_DOCSET tag is set to \c YES, additional index files + will be generated that can be used as input for + <a href="http://developer.apple.com/tools/xcode/">Apple's Xcode 3 + integrated development environment</a>, introduced with OSX 10.5 (Leopard). + To create a documentation set, doxygen will generate a Makefile in the + HTML output directory. Running \c make will produce the docset in that + directory and running <code>make install</code> will install the docset in + <code>~/Library/Developer/Shared/Documentation/DocSets</code> + so that Xcode will find it at startup. See + <a href="http://developer.apple.com/tools/creatingdocsetswithdoxygen.html"> + this article</a> for more information. + +\anchor cfg_docset_feedname +<dt>\c DOCSET_FEEDNAME <dd> + \addindex DOCSET_FEEDNAME + When \c GENERATE_DOCSET tag is set to \c YES, this tag determines the name of the + feed. A documentation feed provides an umbrella under which multiple + documentation sets from a single provider (such as a company or product suite) + can be grouped. + +\anchor cfg_docset_bundle_id +<dt>\c DOCSET_BUNDLE_ID <dd> + When \c GENERATE_DOCSET tag is set to \c YES, this tag specifies a string that + should uniquely identify the documentation set bundle. This should be a + reverse domain-name style string, e.g. <code>com.mycompany.MyDocSet</code>. + Doxygen will append <code>.docset</code> to the name. + +\anchor cfg_docset_publisher_id +<dt>\c DOCSET_PUBLISHER_ID <dd> +When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify +the documentation publisher. This should be a reverse domain-name style +string, e.g. com.mycompany.MyDocSet.documentation. + +\anchor cfg_docset_publisher_name +<dt>\c DOCSET_PUBLISHER_NAME <dd> +The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. + +\anchor cfg_generate_htmlhelp +<dt>\c GENERATE_HTMLHELP <dd> + \addindex GENERATE_HTMLHELP + If the \c GENERATE_HTMLHELP tag is set to \c YES then + doxygen generates three additional HTML index files: + \c index.hhp, \c index.hhc, and \c index.hhk. The \c index.hhp is a + project file that can be read by + <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/vsconHH1Start.asp"> + Microsoft's HTML Help Workshop</a> + on Windows. + + The HTML Help Workshop contains a compiler that can convert all HTML output + generated by doxygen into a single compiled HTML file (.chm). Compiled + HTML files are now used as the Windows 98 help format, and will replace + the old Windows help format (.hlp) on all Windows platforms in the future. + Compressed HTML files also contain an index, a table of contents, + and you can search for words in the documentation. + The HTML workshop also contains a viewer for compressed HTML files. + +\anchor cfg_chm_file +<dt>\c CHM_FILE <dd> + \addindex CHM_FILE + If the \c GENERATE_HTMLHELP tag is set to \c YES, the \c CHM_FILE tag can + be used to specify the file name of the resulting .chm file. You + can add a path in front of the file if the result should not be + written to the html output directory. + +\anchor cfg_hhc_location +<dt>\c HHC_LOCATION <dd> + \addindex HHC_LOCATION + If the \c GENERATE_HTMLHELP tag is set to \c YES, the \c HHC_LOCATION tag can + be used to specify the location (absolute path including file name) of + the HTML help compiler (hhc.exe). If non-empty doxygen will try to run + the HTML help compiler on the generated index.hhp. + +\anchor cfg_generate_chi +<dt>\c GENERATE_CHI <dd> + \addindex GENERATE_CHI + If the \c GENERATE_HTMLHELP tag is set to \c YES, the \c GENERATE_CHI flag + controls if a separate .chi index file is generated (<code>YES</code>) or that + it should be included in the master .chm file (<code>NO</code>). + +\anchor cfg_chm_index_encoding +<dt>\c CHM_INDEX_ENCODING <dd> + \addindex CHM_INDEX_ENCODING + If the \c GENERATE_HTMLHELP tag is set to \c YES, the \c CHM_INDEX_ENCODING + is used to encode HtmlHelp index (hhk), content (hhc) and project file + content. + +\anchor cfg_binary_toc +<dt>\c BINARY_TOC <dd> + \addindex BINARY_TOC + If the \c GENERATE_HTMLHELP tag is set to \c YES, the \c BINARY_TOC flag + controls whether a binary table of contents is generated (<code>YES</code>) or a + normal table of contents (<code>NO</code>) in the .chm file. + +\anchor cfg_toc_expand +<dt>\c TOC_EXPAND <dd> + \addindex TOC_EXPAND + The \c TOC_EXPAND flag can be set to YES to add extra items for + group members to the table of contents of the HTML help documentation + and to the tree view. + +\anchor cfg_generate_qhp +<dt>\c GENERATE_QHP <dd> + \addindex GENERATE_QHP + If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE + and QHP_VIRTUAL_FOLDER are set, an additional index file will + be generated that can be used as input for Qt's qhelpgenerator + to generate a Qt Compressed Help (.qch) of the generated HTML + documentation. + +\anchor cfg_qch_file +<dt>\c QCH_FILE <dd> + \addindex QCH_FILE + If the QHG_LOCATION tag is specified, the QCH_FILE tag can + be used to specify the file name of the resulting .qch file. + The path specified is relative to the HTML output folder. + +\anchor cfg_qhp_namespace +<dt>\c QHP_NAMESPACE <dd> + \addindex QHP_NAMESPACE + The QHP_NAMESPACE tag specifies the namespace to use when generating + Qt Help Project output. For more information please see + <a href="http://doc.trolltech.com/qthelpproject.html#namespace">Qt Help Project / Namespace</a>. + +\anchor cfg_qhp_virtual_folder +<dt>\c QHP_VIRTUAL_FOLDER <dd> + \addindex QHP_VIRTUAL_FOLDER + The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when + generating Qt Help Project output. For more information please see + <a href="http://doc.trolltech.com/qthelpproject.html#virtual-folders">Qt Help Project / Virtual Folders</a>. + +\anchor cfg_qhp_cust_filter_name +<dt>\c QHP_CUST_FILTER_NAME <dd> + \addindex QHP_CUST_FILTER_NAME + If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. For more information please see + <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>. + +\anchor cfg_qhp_cust_filter_attrs +<dt>\c QHP_CUST_FILTER_ATTRS <dd> + \addindex QHP_CUST_FILTER_ATTRS + The QHP_CUST_FILTER_ATTRIBUTES tag specifies the list of the attributes of the custom filter to add. + For more information please see + <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>. + +\anchor cfg_qhp_sect_filter_attrs +<dt>\c QHP_SECT_FILTER_ATTRS <dd> + \addindex QHP_SECT_FILTER_ATTRS + The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's filter section matches. + <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>. + +\anchor cfg_qhg_location +<dt>\c QHG_LOCATION <dd> + \addindex QHG_LOCATION + If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can + be used to specify the location of Qt's qhelpgenerator. + If non-empty doxygen will try to run qhelpgenerator on the generated + .qhp file. + +\anchor cfg_generate_eclipsehelp +<dt>\c GENERATE_ECLIPSEHELP <dd> + \addindex GENERATE_ECLIPSEHELP + If the \c GENERATE_ECLIPSEHELP tag is set to \c YES, additional index files + will be generated, which together with the HTML files, form an Eclipse help + plugin. + + To install this plugin and make it available under the help contents + menu in Eclipse, the contents of the directory containing the HTML and XML + files needs to be copied into the plugins directory of eclipse. The name of + the directory within the plugins directory should be the same as + the \ref cfg_eclipse_doc_id "ECLIPSE_DOC_ID" value. + + After copying Eclipse needs to be restarted before the help appears. + +\anchor cfg_eclipse_doc_id +<dt>\c ECLIPSE_DOC_ID <dd> + \addindex ECLIPSE_DOC_ID + A unique identifier for the eclipse help plugin. When installing the plugin + the directory name containing the HTML and XML files should also have + this name. Each documentation set should have its own identifier. + +\anchor cfg_searchengine +<dt>\c SEARCHENGINE <dd> + \addindex SEARCHENGINE + + When the \c SEARCHENGINE tag is enabled doxygen will generate a search box + for the HTML output. The underlying search engine uses javascript + and DHTML and should work on any modern browser. Note that when using + HTML help (\ref cfg_generate_htmlhelp "GENERATE_HTMLHELP"), + Qt help (\ref cfg_generate_qhp "GENERATE_QHP"), or docsets + (\ref cfg_generate_docset "GENERATE_DOCSET") there is already a search + function so this one should typically be disabled. For large projects + the javascript based search engine can be slow, then enabling + \ref cfg_server_based_search "SERVER_BASED_SEARCH" may provide a + better solution. + + It is possible to search using the keyboard; + to jump to the search box use access key + S (what the access key is + depends on the OS and browser, but it is typically CTRL, ALT/option, or both). + Inside the search box use the cursor down key to jump into the search + results window, the results can be navigated using the cursor keys. + Press Enter to select an item or escape to cancel the search. The + filter options can be selected when the cursor is inside the search box + by pressing Shift+cursor down. Also here use the cursor keys to + select a filter and enter or escape to activate or cancel the filter option. + +\anchor cfg_server_based_search +<dt>\c SERVER_BASED_SEARCH <dd> + \addindex SERVER_BASED_SEARCH + +When the SERVER_BASED_SEARCH tag is enabled the search engine will be +implemented using a PHP enabled web server instead of at the web client +using Javascript. Doxygen will generate the search PHP script and index +file to put on the web server. The advantage of the server +based approach is that it scales better to large projects and also allows +full text search. The disadvantages are that it is more difficult to setup +and does not have live searching capabilities. + +\anchor cfg_disable_index +<dt>\c DISABLE_INDEX <dd> + \addindex DISABLE_INDEX + If you want full control over the layout of the generated HTML pages it + might be necessary to disable the index and replace it with your own. + The \c DISABLE_INDEX tag can be used to turn on/off the condensed index at + top of each page. A value of NO (the default) enables the index and the + value \c YES disables it. Since the tabs have the same information as the + navigation tree you can set this option to \c NO if you already set + \ref cfg_generate_treeview "GENERATE_TREEVIEW" to \c YES. + +\anchor cfg_enum_values_per_line +<dt>\c ENUM_VALUES_PER_LINE <dd> + \addindex ENUM_VALUES_PER_LINE + This tag can be used to set the number of enum values (range [0,1..20]) + that doxygen will group on one line in the generated HTML documentation. + Note that a value of 0 will completely suppress the enum values from + appearing in the overview section. + +\anchor cfg_generate_treeview +<dt>\c GENERATE_TREEVIEW <dd> + \addindex GENERATE_TREEVIEW + The GENERATE_TREEVIEW tag is used to specify whether a tree-like index + structure should be generated to display hierarchical information. + If the tag value is set to YES, a side panel will be generated + containing a tree-like index structure (just like the one that + is generated for HTML Help). For this to work a browser that supports + JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). + Windows users are probably better off using the HTML help feature. + + Via custom stylesheets (see \ref cfg_html_stylesheet "HTML_STYLESHEET") + one can further \ref doxygen_finetune "fine-tune" the look of the index. + As an example, the default style sheet generated by doxygen has an + example that shows how to put an image at the root of the tree instead of + the \ref cfg_project_name "project name". + +\anchor cfg_treeview_width +<dt>\c TREEVIEW_WIDTH <dd> + \addindex TREEVIEW_WIDTH + If the treeview is enabled (see \c GENERATE_TREEVIEW) then this tag can be + used to set the initial width (in pixels) of the frame in which the tree + is shown. + +\anchor cfg_ext_links_in_window +<dt>\c EXT_LINKS_IN_WINDOW <dd> + \addindex EXT_LINKS_IN_WINDOW + When the \c EXT_LINKS_IN_WINDOW option is set to \c YES doxygen will open + links to external symbols imported via tag files in a separate window. + +\anchor cfg_formula_fontsize +<dt>\c FORMULA_FONTSIZE <dd> + \addindex FORMULA_FONTSIZE + Use this tag to change the font size of Latex formulas included + as images in the HTML documentation. The default is 10. + when you change the font size after a successful doxygen run you need + to manually remove any `form_*.png` images from the HTML + output directory to force them to be regenerated. + +\anchor cfg_formula_transparent +<dt>\c FORMULA_TRANSPARENT <dd> + \addindex FORMULA_TRANSPARENT + Use the \c FORMULA_TRANPARENT tag to determine whether or not the images + generated for formulas are transparent PNGs. Transparent PNGs are + not supported properly for IE 6.0, but are supported on all modern browsers. + Note that when changing this option you need to delete any `form_*.png` files + in the HTML output before the changes have effect. + +\anchor cfg_use_mathjax +<dt>\c USE_MATHJAX <dd> + \addindex USE_MATHJAX + Enable the \c USE_MATHJAX option to render LaTeX formulas using MathJax + (see http://www.mathjax.org) which uses client side Javascript for the + rendering instead of using prerendered bitmaps. Use this if you do not + have LaTeX installed or if you want to formulas look prettier in the HTML + output. When enabled you may also need to install MathJax separately and + configure the path to it using the \ref cfg_mathjax_relpath "MATHJAX_RELPATH" + option. + +\anchor cfg_mathjax_relpath +<dt>\c MATHJAX_RELPATH <dd> + \addindex MATHJAX_RELPATH + When MathJax is enabled you need to specify the location relative to the + HTML output directory using the \c MATHJAX_RELPATH option. The destination + directory should contain the MathJax.js script. For instance, if the mathjax + directory is located at the same level as the HTML output directory, then + \c MATHJAX_RELPATH should be <code>../mathjax</code>. The default value points to + the MathJax Content Delivery Network so you can quickly see the result without + installing MathJax. However, it is strongly recommended to install a local + copy of MathJax from http://www.mathjax.org before deployment. + +\anchor cfg_mathjax_extensions +<dt>\c MATHJAX_EXTENSIONS <dd> + \addindex MATHJAX_EXTENSIONS + The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension + names that should be enabled during MathJax rendering. For example +\verbatim +MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +\endverbatim + +</dl> +\section latex_output LaTeX related options +\anchor cfg_generate_latex +<dl> + +<dt>\c GENERATE_LATEX <dd> + \addindex GENERATE_LATEX + If the \c GENERATE_LATEX tag is set to \c YES (the default) doxygen will + generate \f$\mbox{\LaTeX}\f$ output. + +\anchor cfg_latex_output +<dt>\c LATEX_OUTPUT <dd> + \addindex LATEX_OUTPUT + The \c LATEX_OUTPUT tag is used to specify where the \f$\mbox{\LaTeX}\f$ + docs will be put. + If a relative path is entered the value of \c OUTPUT_DIRECTORY will be + put in front of it. If left blank 'latex' will be used as the default path. + +\anchor cfg_latex_cmd_name +<dt>\c LATEX_CMD_NAME <dd> + \addindex LATEX_CMD_NAME + The \c LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be invoked. + If left blank 'latex' will be used as the default command name. + Note that when enabling USE_PDFLATEX this option is only used for + generating bitmaps for formulas in the HTML output, but not in the + Makefile that is written to the output directory. + +\anchor cfg_makeindex_cmd_name +<dt>\c MAKEINDEX_CMD_NAME <dd> + \addindex MAKEINDEX_CMD_NAME + The MAKEINDEX_CMD_NAME tag can be used to specify the command name to + generate index for LaTeX. If left blank 'makeindex' will be used as the + default command name. + +\anchor cfg_compact_latex +<dt>\c COMPACT_LATEX <dd> + \addindex COMPACT_LATEX + If the \c COMPACT_LATEX tag is set to \c YES doxygen generates more compact + \f$\mbox{\LaTeX}\f$ documents. This may be useful for small projects and may help to + save some trees in general. + +\anchor cfg_paper_type +<dt>\c PAPER_TYPE <dd> + \addindex PAPER_TYPE + The \c PAPER_TYPE tag can be used to set the paper type that is used + by the printer. Possible values are: + <ul> + <li><code>a4</code> (210 x 297 mm). + <li><code>letter</code> (8.5 x 11 inches). + <li><code>legal</code> (8.5 x 14 inches). + <li><code>executive</code> (7.25 x 10.5 inches) + </ul> + If left blank a4 will be used. + +\anchor cfg_extra_packages +<dt>\c EXTRA_PACKAGES <dd> + \addindex EXTRA_PACKAGES + The \c EXTRA_PACKAGES tag can be used to specify one or more \f$\mbox{\LaTeX}\f$ + package names that should be included in the \f$\mbox{\LaTeX}\f$ output. + To get the times font for instance you can specify +\verbatim +EXTRA_PACKAGES = times +\endverbatim + If left blank no extra packages will be included. + +\anchor cfg_latex_header +<dt>\c LATEX_HEADER <dd> + \addindex LATEX_HEADER + The \c LATEX_HEADER tag can be used to specify a personal \f$\mbox{\LaTeX}\f$ + header for the generated \f$\mbox{\LaTeX}\f$ document. + The header should contain everything until the first chapter. + + If it is left blank doxygen will generate a + standard header. See section \ref doxygen_usage for information on how to + let doxygen write the default header to a separate file. + + \par Note: + Only use a user-defined header if you know what you are doing! + + The following commands have a special meaning inside the header: + <code>\$title</code>, <code>\$datetime</code>, <code>\$date</code>, + <code>\$doxygenversion</code>, <code>\$projectname</code>, + <code>\$projectnumber</code>. + Doxygen will replace them by respectively + the title of the page, the current date and time, only the current date, + the version number of doxygen, the project name (see \c PROJECT_NAME), or the + project number (see \c PROJECT_NUMBER). + +\anchor cfg_latex_footer +<dt>\c LATEX_FOOTER <dd> + \addindex LATEX_FOOTER + The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for + the generated latex document. The footer should contain everything after + the last chapter. If it is left blank doxygen will generate a + standard footer. Notice: only use this tag if you know what you are doing! + +\anchor cfg_pdf_hyperlinks +<dt>\c PDF_HYPERLINKS <dd> + \addindex PDF_HYPERLINKS + + If the \c PDF_HYPERLINKS tag is set to \c YES, the \f$\mbox{\LaTeX}\f$ that + is generated is prepared for conversion to PDF (using ps2pdf or pdflatex). + The PDF file will + contain links (just like the HTML output) instead of page references. + This makes the output suitable for online browsing using a PDF viewer. + +\anchor cfg_use_pdflatex +<dt>\c USE_PDFLATEX <dd> + \addindex LATEX_PDFLATEX + + If the \c LATEX_PDFLATEX tag is set to \c YES, doxygen will use + pdflatex to generate the PDF file directly from the \f$\mbox{\LaTeX}\f$ + files. + +\anchor cfg_latex_batchmode +<dt>\c LATEX_BATCHMODE <dd> + \addindex LATEX_BATCHMODE + + If the \c LATEX_BATCHMODE tag is set to \c YES, doxygen will add the \\batchmode. + command to the generated \f$\mbox{\LaTeX}\f$ files. This will + instruct \f$\mbox{\LaTeX}\f$ to keep running if errors occur, instead of + asking the user for help. This option is also used when generating formulas + in HTML. + +\anchor cfg_latex_bib_style +<dt>\c LATEX_BIB_STYLE <dd> + \addindex LATEX_BIB_STYLE + + The \c LATEX_BIB_STYLE tag can be used to specify the style to use for the + bibliography, e.g. \c plainnat, or \c ieeetr. The default style is + \c plain. See http://en.wikipedia.org/wiki/BibTeX and \ref cmdcite "\\cite" + for more info. + +\anchor cfg_latex_hide_indices +<dt>\c LATEX_HIDE_INDICES <dd> + \addindex LATEX_HIDE_INDICES + + If \c LATEX_HIDE_INDICES is set to \c YES then doxygen will not + include the index chapters (such as File Index, Compound Index, etc.) + in the output. + +\anchor cfg_latex_source_code + <dt>\c LATEX_SOURCE_CODE <dd> + If \c LATEX_SOURCE_CODE is set to \c YES then doxygen will include + source code with syntax highlighting in the LaTeX output. + Note that which sources are shown also depends on other settings + such as \ref cfg_source_browser "SOURCE_BROWSER". + +</dl> +\section rtf_output RTF related options +\anchor cfg_generate_rtf +<dl> + +<dt>\c GENERATE_RTF <dd> + \addindex GENERATE_RTF + If the \c GENERATE_RTF tag is set to \c YES doxygen will generate RTF output. + The RTF output is optimized for Word 97 and may not look too pretty with + other readers/editors. + +\anchor cfg_rtf_output +<dt>\c RTF_OUTPUT <dd> + \addindex RTF_OUTPUT + The \c RTF_OUTPUT tag is used to specify where the RTF docs will be put. + If a relative path is entered the value of \c OUTPUT_DIRECTORY will be + put in front of it. If left blank \c rtf will be used as the default path. + +\anchor cfg_compact_rtf +<dt>\c COMPACT_RTF <dd> + \addindex COMPACT_RTF + If the \c COMPACT_RTF tag is set to \c YES doxygen generates more compact + RTF documents. This may be useful for small projects and may help to + save some trees in general. + +\anchor cfg_rtf_hyperlinks +<dt>\c RTF_HYPERLINKS <dd> + \addindex RTF_HYPERLINKS + If the \c RTF_HYPERLINKS tag is set to \c YES, the RTF that is generated + will contain hyperlink fields. The RTF file will + contain links (just like the HTML output) instead of page references. + This makes the output suitable for online browsing using Word or some other + Word compatible reader that support those fields. + + \par note: + WordPad (write) and others do not support links. + +\anchor cfg_rtf_stylesheet_file +<dt>\c RTF_STYLESHEET_FILE <dd> + \addindex RTF_STYLESHEET_FILE + Load stylesheet definitions from file. Syntax is similar to doxygen's + config file, i.e. a series of assignments. You only have to provide + replacements, missing definitions are set to their default value. + + See also section \ref doxygen_usage for information on how to generate + the default style sheet that doxygen normally uses. + +\anchor cfg_rtf_extensions_file +<dt>\c RTF_EXTENSIONS_FILE <dd> + Set optional variables used in the generation of an RTF document. + Syntax is similar to doxygen's config file. + A template extensions file can be generated using + <code>doxygen -e rtf extensionFile</code>. + +</dl> + +\section man_output Man page related options +\anchor cfg_generate_man +<dl> + +<dt>\c GENERATE_MAN <dd> + \addindex GENERATE_MAN + If the \c GENERATE_MAN tag is set to \c YES (the default) doxygen will + generate man pages for classes and files. + +\anchor cfg_man_output +<dt>\c MAN_OUTPUT <dd> + \addindex MAN_OUTPUT + The \c MAN_OUTPUT tag is used to specify where the man pages will be put. + If a relative path is entered the value of \c OUTPUT_DIRECTORY will be + put in front of it. If left blank 'man' will be used as the default path. + A directory man3 will be created inside the directory specified by + \c MAN_OUTPUT. + +\anchor cfg_man_extension +<dt>\c MAN_EXTENSION <dd> + \addindex MAX_EXTENSION + The \c MAN_EXTENSION tag determines the extension that is added to + the generated man pages (default is the subroutine's section .3) + +\anchor cfg_man_links +<dt>\c MAN_LINKS <dd> + \addindex MAN_LINKS + If the \c MAN_LINKS tag is set to \c YES and doxygen generates man output, + then it will generate one additional man file for each entity documented in + the real man page(s). These additional files only source the real man page, + but without them the man command would be unable to find the correct page. + The default is \c NO. + +</dl> + +\section xml_output XML related options +\anchor cfg_generate_xml +<dl> + +<dt>\c GENERATE_XML <dd> + \addindex GENERATE_XML + If the \c GENERATE_XML tag is set to \c YES Doxygen will + generate an XML file that captures the structure of + the code including all documentation. + +\anchor cfg_xml_output +<dt>\c XML_OUTPUT <dd> + \addindex XML_OUTPUT + The \c XML_OUTPUT tag is used to specify where the XML pages will be put. + If a relative path is entered the value of \c OUTPUT_DIRECTORY will be + put in front of it. If left blank \c xml will be used as the default path. + +\anchor cfg_xml_schema +<dt>\c XML_SCHEMA <dd> + \addindex XML_SCHEMA + The \c XML_SCHEMA tag can be used to specify an XML schema, + which can be used by a validating XML parser to check the + syntax of the XML files. + +\anchor cfg_xml_dtd +<dt>\c XML_DTD <dd> + \addindex XML_DTD + The \c XML_DTD tag can be used to specify an XML DTD, + which can be used by a validating XML parser to check the + syntax of the XML files. + +\anchor cfg_xml_programlisting +<dt>\c XML_PROGRAMLISTING <dd> + \addindex XML_PROGRAMLISTING + If the \c XML_PROGRAMLISTING tag is set to \c YES Doxygen will + dump the program listings (including syntax highlighting + and cross-referencing information) to the XML output. Note that + enabling this will significantly increase the size of the XML output. + +</dl> + +\section autogen_output AUTOGEN_DEF related options +\anchor cfg_generate_autogen_def +<dl> + +<dt>\c GENERATE_AUTOGEN_DEF <dd> + \addindex GENERATE_AUTOGEN_DEF + If the \c GENERATE_AUTOGEN_DEF tag is set to \c YES Doxygen will + generate an AutoGen Definitions (see http://autogen.sf.net) file + that captures the structure of the code including all + documentation. Note that this feature is still experimental + and incomplete at the moment. + +</dl> + +\section perlmod_output PERLMOD related options +\anchor cfg_generate_perlmod +<dl> + +<dt>\c GENERATE_PERLMOD <dd> + \addindex GENERATE_PERLMOD + If the \c GENERATE_PERLMOD tag is set to \c YES Doxygen will + generate a Perl module file that captures the structure of + the code including all documentation. Note that this + feature is still experimental and incomplete at the + moment. + +\anchor cfg_perlmod_latex +<dt>\c PERLMOD_LATEX <dd> + \addindex PERLMOD_LATEX + If the \c PERLMOD_LATEX tag is set to \c YES Doxygen will generate + the necessary Makefile rules, Perl scripts and LaTeX code to be able + to generate PDF and DVI output from the Perl module output. + +\anchor cfg_perlmod_pretty +<dt>\c PERLMOD_PRETTY <dd> + \addindex PERLMOD_PRETTY + If the \c PERLMOD_PRETTY tag is set to \c YES the Perl module output will be + nicely formatted so it can be parsed by a human reader. This is useful + if you want to understand what is going on. On the other hand, if this + tag is set to \c NO the size of the Perl module output will be much smaller + and Perl will parse it just the same. + +\anchor cfg_perlmod_makevar_prefix +<dt>\c PERLMOD_MAKEVAR_PREFIX <dd> + \addindex PERLMOD_MAKEVAR_PREFIX + The names of the make variables in the generated doxyrules.make file + are prefixed with the string contained in \c PERLMOD_MAKEVAR_PREFIX. + This is useful so different doxyrules.make files included by the same + Makefile don't overwrite each other's variables. + +</dl> + +\section config_prepro Preprocessor related options +\anchor cfg_enable_preprocessing +<dl> + +<dt>\c ENABLE_PREPROCESSING <dd> + \addindex ENABLE_PREPROCESSING + If the \c ENABLE_PREPROCESSING tag is set to \c YES (the default) doxygen will + evaluate all C-preprocessor directives found in the sources and include + files. + +\anchor cfg_macro_expansion +<dt>\c MACRO_EXPANSION <dd> + \addindex MACRO_EXPANSION + If the \c MACRO_EXPANSION tag is set to \c YES doxygen will expand all macro + names in the source code. If set to \c NO (the default) only conditional + compilation will be performed. Macro expansion can be done in a controlled + way by setting \c EXPAND_ONLY_PREDEF to \c YES. + +\anchor cfg_expand_only_predef +<dt>\c EXPAND_ONLY_PREDEF <dd> + \addindex EXPAND_ONLY_PREDEF + If the \c EXPAND_ONLY_PREDEF and \c MACRO_EXPANSION tags are both set to YES + then the macro expansion is limited to the macros specified with the + \c PREDEFINED and \c EXPAND_AS_DEFINED tags. + +\anchor cfg_search_includes +<dt>\c SEARCH_INCLUDES <dd> + \addindex SEARCH_INCLUDES + If the \c SEARCH_INCLUDES tag is set to \c YES (the default) the includes files + in the \c INCLUDE_PATH (see below) will be searched if a \#include is found. + +\anchor cfg_include_path +<dt>\c INCLUDE_PATH <dd> + \addindex INCLUDE_PATH + The \c INCLUDE_PATH tag can be used to specify one or more directories that + contain include files that are not input files but should be processed by + the preprocessor. + +\anchor cfg_include_file_patterns +<dt>\c INCLUDE_FILE_PATTERNS <dd> + \addindex INCLUDE_FILE_PATTERNS + You can use the \c INCLUDE_FILE_PATTERNS tag to specify one or more wildcard + patterns (like `*.h` and `*.hpp`) to filter out the header-files in the + directories. If left blank, the patterns specified with \c FILE_PATTERNS will + be used. + +\anchor cfg_predefined +<dt>\c PREDEFINED <dd> + \addindex PREDEFINED + The \c PREDEFINED tag can be used to specify one or more macro names that + are defined before the preprocessor is started (similar to the -D option of + gcc). The argument of the tag is a list of macros of the form: + <code>name</code> or <code>name=definition</code> (no spaces). + If the definition and the "=" are omitted, "=1" is assumed. To prevent + a macro definition from being undefined via \#undef or recursively expanded + use the := operator instead of the = operator. + +\anchor cfg_expand_as_defined +<dt>\c EXPAND_AS_DEFINED <dd> + \addindex EXPAND_AS_DEFINED + If the \c MACRO_EXPANSION and \c EXPAND_ONLY_PREDEF tags are set to \c YES then + this tag can be used to specify a list of macro names that should be expanded. + The macro definition that is found in the sources will be used. + Use the \c PREDEFINED tag if you want to use a different macro definition. + +\anchor cfg_skip_function_macros +<dt>\c SKIP_FUNCTION_MACROS <dd> + \addindex SKIP_FUNCTION_MACROS + If the \c SKIP_FUNCTION_MACROS tag is set to \c YES (the default) then + doxygen's preprocessor will remove all function-like macros that are alone + on a line, have an all uppercase name, and do not end with a semicolon. + Such function macros are typically + used for boiler-plate code, and will confuse the parser if not removed. + +</dl> +\section config_extref External reference options +\anchor cfg_tagfiles +<dl> + +<dt>\c TAGFILES <dd> + \addindex TAGFILES + The \c TAGFILES tag can be used to specify one or more tag files. + + See \ref external for more information about the use of tag files. + + \note + Each tag file must have a unique name + (where the name does \e not include the path). + If a tag file is not located in the directory in which doxygen + is run, you must also specify the path to the tagfile here. + +\anchor cfg_generate_tagfile +<dt>\c GENERATE_TAGFILE <dd> + \addindex GENERATE_TAGFILE + When a file name is specified after \c GENERATE_TAGFILE, doxygen will create + a tag file that is based on the input files it reads. + See section \ref external for more information about the usage of + tag files. + +\anchor cfg_allexternals +<dt>\c ALLEXTERNALS <dd> + \addindex ALLEXTERNALS + If the \c ALLEXTERNALS tag is set to \c YES all external class will be listed + in the class index. If set to \c NO only the inherited external classes + will be listed. + +\anchor cfg_external_groups +<dt>\c EXTERNAL_GROUPS <dd> + \addindex EXTERNAL_GROUPS + If the \c EXTERNAL_GROUPS tag is set to \c YES all external groups will be listed + in the modules index. If set to \c NO, only the current project's groups will + be listed. + +\anchor cfg_perl_path +<dt>\c PERL_PATH <dd> + \addindex PERL_PATH + The \c PERL_PATH should be the absolute path and name of the perl script + interpreter (i.e. the result of '<tt>which perl</tt>'). + +</dl> +\section config_dot Dot options +\anchor cfg_class_diagrams +<dl> + +<dt>\c CLASS_DIAGRAMS <dd> + \addindex CLASS_DIAGRAMS + If the \c CLASS_DIAGRAMS tag is set to \c YES (the default) doxygen will + generate a class diagram (in HTML and \f$\mbox{\LaTeX}\f$) for classes with base or +super classes. Setting the tag to NO turns the diagrams off. Note that +this option also works with HAVE_DOT disabled, but it is recommended to +install and use dot, since it yields more powerful graphs. + +\anchor cfg_mscgen_path +<dt>\c MSCGEN_PATH <dd> + \addindex MSCGEN_PATH + You can define message sequence charts within doxygen comments using the \ref cmdmsc "\\msc" + command. Doxygen will then run the <a href="http://www.mcternan.me.uk/mscgen/">mscgen tool</a>) to + produce the chart and insert it in the documentation. The <code>MSCGEN_PATH</code> tag allows you to + specify the directory where the mscgen tool resides. If left empty the tool is assumed to + be found in the default search path. + +\anchor cfg_have_dot +<dt>\c HAVE_DOT <dd> + \addindex HAVE_DOT + If you set the \c HAVE_DOT tag to \c YES then doxygen will assume the dot tool is + available from the path. This tool is part of + <a href="http://www.research.att.com/sw/tools/graphviz/">Graphviz</a>, a graph + visualization toolkit from AT\&T and Lucent Bell Labs. The other options in + this section have no effect if this option is set to \c NO (the default) + +\anchor cfg_dot_num_threads +<dt>\c DOT_NUM_THREADS <dd> + \addindex DOT_NUM_THREADS + The \c DOT_NUM_THREADS specifies the number of dot invocations doxygen is + allowed to run in parallel. When set to 0 (the default) doxygen will + base this on the number of processors available in the system. You can set it + explicitly to a value larger than 0 to get control over the balance + between CPU load and processing speed. + +\anchor cfg_dot_fontname +<dt>\c DOT_FONTNAME <dd> + \addindex DOT_FONTNAME + By default doxygen will use the Helvetica font for all dot files that + doxygen generates. + When you want a differently looking font you can specify the font name + using \c DOT_FONTNAME. You need to make sure dot is able to find the font, + which can be done by putting it in a standard location or by setting the + \c DOTFONTPATH environment variable or by setting \c DOT_FONTPATH to the + directory containing the font. + +\anchor cfg_dot_fontsize +<dt>\c DOT_FONTSIZE <dd> +The \c DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +The default size is 10pt. + +\anchor cfg_dot_fontpath +<dt>\c DOT_FONTPATH <dd> + \addindex DOT_FONTPATH + By default doxygen will tell dot to use the output directory to look for the + \c FreeSans.ttf font (which doxygen will put there itself). If you specify a + different font using \c DOT_FONTNAME you can set the path where dot + can find it using this tag. + +\anchor cfg_class_graph +<dt>\c CLASS_GRAPH <dd> + \addindex CLASS_GRAPH + If the \c CLASS_GRAPH and \c HAVE_DOT tags are set to \c YES then doxygen + will generate a graph for each documented class showing the direct and + indirect inheritance relations. Setting this tag to \c YES will force + the \c CLASS_DIAGRAMS tag to NO. + +\anchor cfg_collaboration_graph +<dt>\c COLLABORATION_GRAPH <dd> + \addindex COLLABORATION_GRAPH + If the \c COLLABORATION_GRAPH and \c HAVE_DOT tags are set to \c YES then doxygen + will generate a graph for each documented class showing the direct and + indirect implementation dependencies (inheritance, containment, and + class references variables) of the class with other documented classes. + +\anchor cfg_group_graphs +<dt>\c GROUP_GRAPHS <dd> + \addindex GROUP_GRAPHS + If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen + will generate a graph for groups, showing the direct groups dependencies. + +\anchor cfg_uml_look +<dt>\c UML_LOOK <dd> + \addindex UML_LOOK + If the UML_LOOK tag is set to YES doxygen will generate inheritance and + collaboration diagrams in a style similar to the OMG's Unified Modeling + Language. + +\anchor cfg_uml_limit_num_fields +<dt>\c UML_LIMIT_NUM_FIELDS <dd> + \addindex UML_LIMIT_NUM_FIELDS + If the \c UML_LOOK tag is enabled, the fields and methods are shown inside + the class node. If there are many fields or methods and many nodes the + graph may become too big to be useful. The \c UML_LIMIT_NUM_FIELDS + threshold limits the number of items for each type to make the size more + managable. Set this to 0 for no limit. Note that the threshold may be + exceeded by 50% before the limit is enforced. So when you set the threshold + to 10, up to 15 fields may appear, but if the number exceeds 15, the + total amount of fields shown is limited to 10. + +\anchor cfg_template_relations +<dt>\c TEMPLATE_RELATIONS <dd> + \addindex TEMPLATE_RELATIONS + If the \c TEMPLATE_RELATIONS and \c HAVE_DOT tags are set to \c YES then + doxygen will show the relations between templates and their instances. + +\anchor cfg_hide_undoc_relations +<dt>\c HIDE_UNDOC_RELATIONS <dd> + \addindex HIDE_UNDOC_RELATIONS + If set to YES, the inheritance and collaboration graphs will hide + inheritance and usage relations if the target is undocumented + or is not a class. + +\anchor cfg_include_graph +<dt>\c INCLUDE_GRAPH <dd> + \addindex INCLUDE_GRAPH + If the \c ENABLE_PREPROCESSING, \c SEARCH_INCLUDES, \c INCLUDE_GRAPH, and \c HAVE_DOT + tags are set to \c YES then doxygen will generate a graph for each documented file + showing the direct and indirect include dependencies of the file with other + documented files. + +\anchor cfg_included_by_graph +<dt>\c INCLUDED_BY_GRAPH <dd> + \addindex INCLUDED_BY_GRAPH + If the \c ENABLE_PREPROCESSING, \c SEARCH_INCLUDES, \c INCLUDED_BY_GRAPH, and + \c HAVE_DOT tags are set to \c YES then doxygen will generate a graph for each + documented header file showing the documented files that directly or indirectly + include this file. + +\anchor cfg_call_graph +<dt>\c CALL_GRAPH <dd> + \addindex CALL_GRAPH + If the \c CALL_GRAPH and \c HAVE_DOT tags are set to \c YES then doxygen will + generate a call dependency graph for every global function or class method. + Note that enabling this option will significantly increase the time of a run. + So in most cases it will be better to enable call graphs for selected + functions only using the \\callgraph command. + +\anchor cfg_caller_graph +<dt>\c CALLER_GRAPH <dd> + \addindex CALLER_GRAPH + If the \c CALLER_GRAPH and \c HAVE_DOT tags are set to \c YES then doxygen will + generate a caller dependency graph for every global function or class method. + Note that enabling this option will significantly increase the time of a run. + So in most cases it will be better to enable caller graphs for selected + functions only using the \\callergraph command. + +\anchor cfg_graphical_hierarchy +<dt>\c GRAPHICAL_HIERARCHY <dd> + \addindex GRAPHICAL_HIERARCHY + If the \c GRAPHICAL_HIERARCHY and \c HAVE_DOT tags are set to \c YES then + doxygen will graphical hierarchy of all classes instead of a textual one. + +\anchor cfg_directory_graph +<dt>\c DIRECTORY_GRAPH <dd> + \addindex DIRECTORY_GRAPH + If the \c DIRECTORY_GRAPH, and \c HAVE_DOT options are set + to \c YES then doxygen will show the dependencies a directory has on other directories + in a graphical way. The dependency relations are determined by the \#include + relations between the files in the directories. + +\anchor cfg_dot_graph_max_nodes +<dt>\c DOT_GRAPH_MAX_NODES <dd> + \addindex DOT_GRAPH_MAX_NODES + The \c DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of + nodes that will be shown in the graph. If the number of nodes in a graph + becomes larger than this value, doxygen will truncate the graph, which is + visualized by representing a node as a red box. Note that doxygen if the number + of direct children of the root node in a graph is already larger than + \c DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note + that the size of a graph can be further restricted by \c MAX_DOT_GRAPH_DEPTH. + +\anchor cfg_max_dot_graph_depth +<dt>\c MAX_DOT_GRAPH_DEPTH <dd> + \addindex MAX_DOT_GRAPH_DEPTH + The \c MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the + graphs generated by dot. A depth value of 3 means that only nodes reachable + from the root by following a path via at most 3 edges will be shown. Nodes + that lay further from the root node will be omitted. Note that setting this + option to 1 or 2 may greatly reduce the computation time needed for large + code bases. Also note that the size of a graph can be further restricted by + \c DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction (the default). + +\anchor cfg_dot_image_format +<dt>\c DOT_IMAGE_FORMAT <dd> + \addindex DOT_IMAGE_FORMAT + The \c DOT_IMAGE_FORMAT tag can be used to set the image format of the images + generated by dot. Possible values are svg, png, jpg, or gif. + If left blank png will be used. + \note If you choose \c svg you need to set + HTML_FILE_EXTENSION to xhtml in order to make the SVG files + visible in IE 9+ (other browsers do not have this requirement). + +\anchor cfg_interactive_svg +<dt>\c INTERACTIVE_SVG <dd> + If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to + enable generation of interactive SVG images that allow zooming and panning. + Note that this requires a modern browser other than Internet Explorer. + Tested and working are Firefox, Chrome, Safari, and Opera. + \note For IE 9+ you need to set \c HTML_FILE_EXTENSION to xhtml in order + to make the SVG files visible. Older versions of IE do not have SVG support. + +\anchor cfg_dot_path +<dt>\c DOT_PATH <dd> + \addindex DOT_PATH + This tag can be used to specify the path where the dot tool can be found. + If left blank, it is assumed the dot tool can be found on the path. + +\anchor cfg_dotfile_dirs +<dt>\c DOTFILE_DIRS <dd> + \addindex DOTFILE_DIRS + This tag can be used to specify one or more directories that + contain dot files that are included in the documentation (see the + \ref cmddotfile "\\dotfile" command). + +\anchor cfg_mscfile_dirs +<dt>\c MSCFILE_DIRS <dd> + \addindex MSCFILE_DIRS + This tag can be used to specify one or more directories that + contain msc files that are included in the documentation (see the + \ref cmdmscfile "\\mscfile" command). + +\anchor cfg_dot_transparent +<dt>\c DOT_TRANSPARENT <dd> + \addindex DOT_TRANSPARENT + Set the \c DOT_TRANSPARENT tag to \c YES to generate images with a transparent + background. This is disabled by default, because dot on Windows does not + seem to support this out of the box. Warning: Depending on the platform used, + enabling this option may lead to badly anti-aliased labels on the edges of + a graph (i.e. they become hard to read). + +\anchor cfg_dot_multi_targets +<dt>\c DOT_MULTI_TARGETS <dd> + \addindex DOT_MULTI_TARGET + Set the \c DOT_MULTI_TARGETS tag to \c YES allow dot to generate multiple output + files in one run (i.e. multiple -o and -T options on the command line). This + makes dot run faster, but since only newer versions of dot (>1.8.10) + support this, this feature is disabled by default. + +\anchor cfg_generate_legend +<dt>\c GENERATE_LEGEND <dd> + \addindex GENERATE_LEGEND + If the \c GENERATE_LEGEND tag is set to \c YES (the default) doxygen will + generate a legend page explaining the meaning of the various boxes and + arrows in the dot generated graphs. + +\anchor cfg_dot_cleanup +<dt>\c DOT_CLEANUP <dd> + \addindex DOT_CLEANUP +If the \c DOT_CLEANUP tag is set to \c YES (the default) doxygen will +remove the intermediate dot files that are used to generate the various graphs. + + +</dl> +<h2>Examples</h2> + +Suppose you have a simple project consisting of two files: a source file +\c example.cc and a header file \c example.h. +Then a minimal configuration file is as simple as: +\verbatim +INPUT = example.cc example.h +\endverbatim + +Assuming the example makes use of Qt classes and perl is located +in <code>/usr/bin</code>, a more realistic configuration file would be: +\verbatim +PROJECT_NAME = Example +INPUT = example.cc example.h +WARNINGS = YES +TAGFILES = qt.tag +PERL_PATH = /usr/local/bin/perl +SEARCHENGINE = NO +\endverbatim + +To generate the documentation for the +<a href="http://www.stack.nl/~dimitri/qdbttabular/index.html">QdbtTabular</a> package +I have used the following configuration file: +\verbatim +PROJECT_NAME = QdbtTabular +OUTPUT_DIRECTORY = html +WARNINGS = YES +INPUT = examples/examples.doc src +FILE_PATTERNS = *.cc *.h +INCLUDE_PATH = examples +TAGFILES = qt.tag +PERL_PATH = /usr/bin/perl +SEARCHENGINE = YES +\endverbatim + +To regenerate the Qt-1.44 documentation from the sources, you could use the +following config file: +\verbatim +PROJECT_NAME = Qt +OUTPUT_DIRECTORY = qt_docs +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = YES +EXPAND_ONLY_PREDEF = YES +SEARCH_INCLUDES = YES +FULL_PATH_NAMES = YES +STRIP_FROM_PATH = $(QTDIR)/ +PREDEFINED = USE_TEMPLATECLASS Q_EXPORT= \ + QArrayT:=QArray \ + QListT:=QList \ + QDictT:=QDict \ + QQueueT:=QQueue \ + QVectorT:=QVector \ + QPtrDictT:=QPtrDict \ + QIntDictT:=QIntDict \ + QStackT:=QStack \ + QDictIteratorT:=QDictIterator \ + QListIteratorT:=QListIterator \ + QCacheT:=QCache \ + QCacheIteratorT:=QCacheIterator \ + QIntCacheT:=QIntCache \ + QIntCacheIteratorT:=QIntCacheIterator \ + QIntDictIteratorT:=QIntDictIterator \ + QPtrDictIteratorT:=QPtrDictIterator +INPUT = $(QTDIR)/doc \ + $(QTDIR)/src/widgets \ + $(QTDIR)/src/kernel \ + $(QTDIR)/src/dialogs \ + $(QTDIR)/src/tools +FILE_PATTERNS = *.cpp *.h q*.doc +INCLUDE_PATH = $(QTDIR)/include +RECURSIVE = YES +\endverbatim + +For the Qt-2.1 sources I recommend to use the following settings: +\verbatim +PROJECT_NAME = Qt +PROJECT_NUMBER = 2.1 +HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_CLASSES = YES +SOURCE_BROWSER = YES +INPUT = $(QTDIR)/src +FILE_PATTERNS = *.cpp *.h q*.doc +RECURSIVE = YES +EXCLUDE_PATTERNS = *codec.cpp moc_* */compat/* */3rdparty/* +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 3 +IGNORE_PREFIX = Q +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = YES +INCLUDE_PATH = $(QTDIR)/include +PREDEFINED = Q_PROPERTY(x)= \ + Q_OVERRIDE(x)= \ + Q_EXPORT= \ + Q_ENUMS(x)= \ + "QT_STATIC_CONST=static const " \ + _WS_X11_ \ + INCLUDE_MENUITEM_DEF +EXPAND_ONLY_PREDEF = YES +EXPAND_AS_DEFINED = Q_OBJECT_FAKE Q_OBJECT ACTIVATE_SIGNAL_WITH_PARAM \ + Q_VARIANT_AS +\endverbatim + +Here doxygen's preprocessor is used to substitute some +macro names that are normally substituted by the C preprocessor, +but without doing full macro expansion. + +*/ + diff --git a/doc/custcmd.doc b/doc/custcmd.doc new file mode 100644 index 0000000..06ef0d1 --- /dev/null +++ b/doc/custcmd.doc @@ -0,0 +1,125 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page custcmd Custom Commands + +\tableofcontents + +Doxygen provides a large number of \ref commands "special commands", +\ref xmlcmds "XML commands", and \ref htmlcmds "HTML commands". +that can be used to enhance or structure the documentation inside a comment block. +If you for some reason have a need to define new commands you can do +so by means of an \e alias definition. + +The definition of an alias should be specified in the configuration file using +the \ref cfg_aliases "ALIASES" configuration tag. + +\section custcmd_simple Simple aliases +The simplest form of an alias is a simple substitution of the form +\verbatim + name=value +\endverbatim + For example defining the following alias: +\verbatim + ALIASES += sideeffect="\par Side Effects:\n" +\endverbatim + will allow you to + put the command \\sideeffect (or \@sideeffect) in the documentation, which + will result in a user-defined paragraph with heading <b>Side Effects:</b>. + +Note that you can put \\n's in the value part of an alias to insert newlines. + +Also note that you can redefine existing special commands if you wish. + +Some commands, such as \ref cmdxrefitem "\\xrefitem" are designed to be used in +combination with aliases. + +\section custcmd_complex Aliases with arguments +Aliases can also have one or more arguments. In the alias definition you then need +to specify the number of arguments between curly braces. In the value part of the +definition you can place \\x markers, where 'x' represents the argument number starting +with 1. + +Here is an example of an alias definition with a single argument: +\verbatim +ALIASES += l{1}="\ref \1" +\endverbatim + +Inside a comment block you can use it as follows +\verbatim +/** See \l{SomeClass} for more information. */ +\endverbatim +which would be the same as writing +\verbatim +/** See \ref SomeClass for more information. */ +\endverbatim + +Note that you can overload an alias by a version with multiple arguments, for instance: +\verbatim +ALIASES += l{1}="\ref \1" +ALIASES += l{2}="\ref \1 \"\2\"" +\endverbatim +Note that the quotes inside the alias definition have to be escaped with a backslash. + +With these alias definitions, we can write +\verbatim +/** See \l{SomeClass,Some Text} for more information. */ +\endverbatim +inside the comment block and it will expand to +\verbatim +/** See \ref SomeClass "Some Text" for more information. */ +\endverbatim +where the command with a single argument would still work as shown before. + +Aliases can also be expressed in terms of other aliases, e.g. a new command +\\reminder can be expressed as a \\xrefitem via an intermediate \\xreflist command +as follows: +\verbatim +ALIASES += xreflist{3}="\xrefitem \1 \"\2\" \"\3\" " \ +ALIASES += reminder="\xreflist{reminders,Reminder,Reminders}" \ +\endverbatim + +Note that if for aliases with more than one argument a comma is used as a separator, +if you want to put a comma inside the command, you will need to escape it with a backslash, +i.e. +\verbatim +\l{SomeClass,Some text\, with an escaped comma} +\endverbatim +given the alias definition of \\l in the example above. + +\section custcmd_nesting Nesting custom command + +You can use commands as arguments of aliases, including commands +defined using aliases. + +As an example consider the following alias definitions + +\verbatim +ALIASES += Bold{1}="<b>\1</b>" +ALIASES += Emph{1}="<em>\1</em>" +\endverbatim + +Inside a comment block you can now use: +\verbatim +/** This is a \Bold{bold \Emph{and} Emphasized} text fragment. */ +\endverbatim +which will expand to +\verbatim +/** This is a <b>bold <em>and</em> Emphasized</b> text fragment. */ +\endverbatim + + +*/ diff --git a/doc/customize.doc b/doc/customize.doc new file mode 100644 index 0000000..610f8f4 --- /dev/null +++ b/doc/customize.doc @@ -0,0 +1,377 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page customize Customizing the output + +\tableofcontents + +Doxygen provides various levels of customization. +The section \ref minor_tweaks "Minor Tweaks" discusses what to +do if you want to do minor tweaking to the look and feel of the output. +The section \ref layout "Layout" show how to reorder and hide certain +information on a page. +The section \ref xmlgenerator "XML output" show how to generate +whatever output you want based on the XML output produced by doxygen. + +\section minor_tweaks Minor Tweaks + +The next subsections describe some aspects that can be tweaked with +little effort. + +\subsection minor_tweaks_colors Overall Color + +To change the overall color of the HTML output doxygen provides three options +- \ref cfg_html_colorstyle_hue "HTML_COLORSTYLE_HUE" +- \ref cfg_html_colorstyle_sat "HTML_COLORSTYLE_SAT" +- \ref cfg_html_colorstyle_gamma "HTML_COLORSTYLE_GAMMA" + +to change the hue, saturation, and gamma correction of the colors respectively. + +For your convenience the GUI frontend \ref doxywizard_usage "Doxywizard" +has a control that allows you to see the effect of changing the values of these options +on the output in real time. + +\subsection minor_tweaks_treeview Navigation + +By default doxygen shows navigation tabs on top of every HTML page, +corresponding with the following settings: + +- \ref cfg_disable_index "DISABLE_INDEX" = \c NO +- \ref cfg_generate_treeview "GENERATE_TREEVIEW" = \c NO + +you can switch to an interactive navigation tree as sidebar using + +- \ref cfg_disable_index "DISABLE_INDEX" = \c YES +- \ref cfg_generate_treeview "GENERATE_TREEVIEW" = \c YES + +or even have both forms of navigation: + +- \ref cfg_disable_index "DISABLE_INDEX" = \c NO +- \ref cfg_generate_treeview "GENERATE_TREEVIEW" = \c YES + +if you already use an external index (i.e. have one of the following +options enabled +\ref cfg_generate_htmlhelp "GENERATE_HTMLHELP", +\ref cfg_generate_eclipsehelp "GENERATE_ECLIPSEHELP", +\ref cfg_generate_qhp "GENERATE_QHP", or +\ref cfg_generate_docset "GENERATE_DOCSET") +then you can also disable all indices, like so: + +- \ref cfg_disable_index "DISABLE_INDEX" = \c YES +- \ref cfg_generate_treeview "GENERATE_TREEVIEW" = \c NO + +\subsection minor_tweaks_dynsection Dynamic Content + +To make the HTML output more interactive, doxygen provides a number of options +that are disabled by default: +- enabling \ref cfg_html_dynamic_sections "HTML_DYNAMIC_SECTIONS" will make + doxygen hide certain content (like graphs) in the HTML by default, + and let the reader expand these sections on request. +- enabling \ref cfg_have_dot "HAVE_DOT" along + with \ref cfg_interactive_svg "INTERACTIVE_SVG" while setting + \ref cfg_dot_image_format "DOT_IMAGE_FORMAT" to \c svg, will make doxygen + produce SVG images that will allow the user to zoom and pan (this only + happens when the size of the images exceeds a certain size). + +\subsection minor_tweaks_header_css Header, Footer, and Stylesheet changes + +To tweak things like fonts or colors, margins, or other look \& feel +aspects of the HTML output in detail, you can create a different +<a href="http://www.w3schools.com/css/default.asp">cascading style sheet</a>. +You can also let doxygen use a custom header and footer for each HTML +page it generates, for instance to make the output conform to the style +used on the rest of your web site. + +To do this first run doxygen as follows: +\verbatim +doxygen -w html header.html footer.html customdoxygen.css +\endverbatim + +This will create 3 files: +- header.html is a HTML fragment which doxygen normally uses to start + a HTML page. Note that the fragment ends with a body tag and that is + contains a couple of commands of the form \$word. These will be replaced + by doxygen on the fly. +- footer.html is a HTML fragment which doxygen normally uses to end + a HTML page. Also here special commands can be used. This file contain the + link to www.doxygen.org and the body and html end tags. +- customdoxygen.css is the default cascading style sheet + used by doxygen. + +You should edit these files and then reference them from the config file. +- \ref cfg_html_header "HTML_HEADER" = \c header.html +- \ref cfg_html_footer "HTML_FOOTER" = \c footer.html +- \ref cfg_html_stylesheet "HTML_STYLESHEET" = \c customdoxygen.css + +See the documentation of the \ref cfg_html_header "HTML_HEADER" tag +for more information about the possible meta commands you can use inside +your custom header. + +\note You should not put the style sheet in the HTML output directory. Treat +it as a source file. Doxygen will copy it for you. + +\note If you use images or other external content in a custom header you +need to make sure these end up in the HTML output directory yourself, +for instance by writing a script that runs doxygen can then copies the +images to the output. + +\warning The structure of headers and footers may change after upgrading to +a newer version of doxygen, so if you are using a custom header or footer, +it might not produce valid output anymore after upgrading. + +\section layout Changing the layout of pages + +In some cases you may want to change the way the output is structured. +A different style sheet or custom headers and footers do not help in such +case. + +The solution doxygen provides is a layout file, which you can +modify and doxygen will use to control what information is presented, +in which order, and to some extent also how information is presented. +The layout file is an XML file. + +The default layout can be generated +by doxygen using the following command: +\verbatim +doxygen -l +\endverbatim +optionally the name of the layout file can be specified, if omitted +\c DoxygenLayout.xml will be used. + +The next step is to mention the layout file in the config file +\verbatim +LAYOUT_FILE = DoxygenLayout.xml +\endverbatim +To change the layout all you need to do is edit the layout file. + +The toplevel structure of the file looks as follows: +\verbatim +<doxygenlayout version="1.0"> + <navindex> + ... + </navindex> + <class> + ... + </class> + <namespace> + ... + </namespace> + <file> + ... + </file> + <group> + ... + </group> + <directory> + ... + </directory> +</doxygenlayout> +\endverbatim + +The root element of the XML file is \c doxygenlayout, it has an attribute named +\c version, which will be used in the future to cope with changes that are +not backward compatible. + +The first section, identified by the \c navindex element, represents the +layout of the navigation tabs displayed at the top of each HTML page. At the +same time it also controls the items in the navigation tree in case +\ref cfg_generate_treeview "GENERATE_TREEVIEW" is enabled. +Each tab is represented by a \c tab element in the XML file. + +You can hide tabs by setting the \c visible attribute to \c no. +You can also override the default title of a tab by specifying it as +the value of the \c title attribute. If the title field is the empty string +(the default) then doxygen will fill in an appropriate language specific title. + +You can reorder the tabs by moving the tab elements in the XML file +within the \c navindex element and even change the tree structure. +Do not change the value of the \c type attribute however. +Only a fixed set of types are supported, each representing a link to a +specific index. + +You can also add custom tabs using a type with name "user". Here is an +example that shows how to add a tab with title "Google" pointing to +www.google.com: + +\verbatim + <navindex> + ... + <tab type="user" url="http://www.google.com" title="Google"/> + ... + </navindex> +\endverbatim + +The url field can also be a relative URL. If the URL starts with \@ref +the link will point to a documented entities, such as a class, a function, +a group, or a related page. Suppose we have defined a page using \@page with +label mypage, then a tab with label "My Page" to this page would look +as follows: + +\verbatim + <navindex> + ... + <tab type="user" url="@ref mypage" title="My Page"/> + ... + </navindex> +\endverbatim + +You can also group tabs together in a custom group using a tab with +type "usergroup". The following example puts the above tabs in a user +defined group with title "My Group": + +\verbatim + <navindex> + ... + <tab type="usergroup" title="My Group"> + <tab type="user" url="http://www.google.com" title="Google"/> + <tab type="user" url="@ref mypage" title="My Page"/> + </tab> + ... + </navindex> +\endverbatim + +Groups can be nested to form a hierarchy. + +The elements after \c navindex represent the layout of the different +pages generated by doxygen: +- The \c class element represents the layout of all pages generated for + documented classes, structs, unions, and interfaces. +- The \c namespace element represents the layout of all pages generated for + documented namespaces (and also Java packages). +- The \c file element represents the layout of all pages generated for + documented files. +- The \c group element represents the layout of all pages generated for + documented groups (or modules). +- The \c directory element represents the layout of all pages generated for + documented directories. + +Each XML element within one of the above page elements represents a certain +piece of information. Some pieces can appear in each type of page, +others are specific for a certain type of page. +Doxygen will list the pieces in the order in which they appear +in the XML file. + +The following generic elements are possible for each page: +<dl> +<dt>\c briefdescription + <dd>Represents the brief description on a page. +<dt>\c detaileddescription + <dd>Represents the detailed description on a page. +<dt>\c authorsection + <dd>Represents the author section of a page (only used for man pages). +<dt>\c memberdecl + <dd>Represents the quick overview of members on a page (member declarations). + This elements has child elements per type of member list. + The possible child elements are not listed in detail in the document, + but the name of the element should be a good indication of the type + of members that the element represents. +<dt>\c memberdef + <dd>Represents the detailed member list on a page (member definition). + Like the \c memberdecl element, also this element has a number of + possible child elements. +</dl> + +The class page has the following specific elements: +<dl> +<dt>\c includes + <dd>Represents the include file needed to obtain the definition for + this class. +<dt>\c inheritancegraph + <dd>Represents the inheritance relations for a class. + Note that the CLASS_DIAGRAM option determines + if the inheritance relation is a list of base and derived classes or + a graph. +<dt>\c collaborationgraph + <dd>Represents the collaboration graph for a class. +<dt>\c allmemberslink + <dd>Represents the link to the list of all members for a class. +<dt>\c usedfiles + <dd>Represents the list of files from which documentation for the class was + extracted. +</dl> + +The file page has the following specific elements: +<dl> +<dt>\c includes + <dd>Represents the list of \#include statements contained in this file. +<dt>\c includegraph + <dd>Represents the include dependency graph for the file. +<dt>\c includedbygraph + <dd>Represents the included by dependency graph for the file. +<dt>\c sourcelink + <dd>Represents the link to the source code of this file. +</dl> + +The group page has a specific \c groupgraph element which represents the +graph showing the dependencies between groups. + +Similarly, the directory page has a specific \c directorygraph element +which represents the graph showing the dependencies between the directories +based on the \#include relations of the files inside the directories. + +Some elements have a \c visible attribute which can be +used to hide the fragment from the generated output, by setting the attribute's +value to "no". You can also use the value of a configuration option to +determine the visibility, by using +its name prefixed with a dollar sign, e.g. +\verbatim + ... + <includes visible="$SHOW_INCLUDE_FILES"/> + ... +\endverbatim +This was mainly added for backward compatibility. +Note that the \c visible attribute is just a hint for doxygen. +If no relevant information is available for a certain piece it is +omitted even if it is set to \c yes (i.e. no empty sections are generated). + +Some elements have a \c title attribute. This attribute can be used +to customize the title doxygen will use as a header for the piece. + +@warning at the moment you should not remove elements from the layout file +as a way to hide information. Doing so can cause broken links in the +generated output! + + +\section xmlgenerator Using the XML output + +If the above two methods still do not provide enough flexibility, you +can also use the XML output produced by doxygen as a basis to +generate the output you like. To do this set GENERATE_XML to YES. + +The XML output consists of an index file named \c index.xml which +lists all items extracted by doxygen with references to the other XML files +for details. The structure of the index is described by a schema file +\c index.xsd. All other XML files are described by the schema file +named \c compound.xsd. If you prefer one big XML file +you can combine the index and the other files using the +XSLT file \c combine.xslt. + +You can use any XML parser to parse the file or use the one that can be found +in the \c addon/doxmlparser directory of doxygen source distribution. +Look at \c addon/doxmlparser/include/doxmlintf.h for the interface of the +parser and in \c addon/doxmlparser/example for examples. + +The advantage of using the doxmlparser is that it +will only read the index file into memory and then only those XML +files that you implicitly load via navigating through the index. As a +result this works even for very large projects where reading all XML +files as one big DOM tree would not fit into memory. + +See <a href="https://github.com/michaeljones/breathe">the Breathe project</a> for +a example that uses doxygen XML output from Python to bridge it with the +<a href="http://sphinx.pocoo.org/">Sphinx</a> document generator. + + */ diff --git a/doc/dbusxml.doc b/doc/dbusxml.doc new file mode 100644 index 0000000..e487126 --- /dev/null +++ b/doc/dbusxml.doc @@ -0,0 +1,149 @@ +/*! \page dbusxml DBus XML output format + +\addindex dbusxml + +<p>Doxygen can generate documentation for DBus XML files. This way +DBus interfaces can be annotated with doxygen style comments, and +without writing custom XML parsers. Doxygen extracts its text from +all XML comments starting with '*' or '!'. An additional '<' can be +used to assign the documentation string to the previous entity instead +of the one following the comment. + +Note that before the parsing of DBus XML file works one has to +assign the .xml extension to the DBus XML parser using the +following configuration option: + +\verbatim +EXTENSION_MAPPING = xml=dbusxml +\endverbatim + +\section dbusxml_supported Supported XML elements and attributes + +<p>The following DBus XML elemets can be annotated: + +<ul> +<li><b>interface</b> + +<li><b>method</b> or <b>signal</b> + +<li><b>arg</b> + +<li><b>property</b> + +</ul> + +Additional elements are supported. These are available once +the xmlns "http://psiamp.org/dtd/doxygen_dbusxml.dtd" is +available. + +<ul> +<li><b>namespace</b>: This can be used to group other more of the +additional elemets. This element requires a <b>name</b> attribute. + +<li><b>enum</b> is used to define enums. <b>value</b> element is + then used to define the individual values in the enum. This element + requires the <b>name</b> and <b>type</b> attributes. A + optional <b>named-type</b> attribute is allowed, referrencing typed + previously defined by one of the additional elements. A enum name + can be used anywhere a type is required using the <b>named-type</b> + attribute. + +<li><b>flagset</b> is used to define sets of flags. Required and + optional attributes are identical to the ones used by <b>enum</b>. + While <b>enum</b>s assume the values to be consecutive, while + a <b>flagset</b> is values suitable for flags. A flagset name + can be used anywhere a type is required using the <b>named-type</b> + attribute. + +<li><b>struct</b> is used to define structures. A <b>name</b> + attribute is required. + +<li><b>member</b> is used to define members of <b>structs</b>. It + is valid inside <b>struct</b> elements. This + element requires <b>name</b> and <b>type</b> attributes. In + addition to (or even instead of) the <b>type</b> attribute a + <b>named-type</b> attribute may be used to reference types defined + by <b>enum</b>, <b>flagset</b> or <b>struct</b>. + +\section dbusxml_example Example + +<pre> +<?xml version="1.0" ?> +<!-- Comment --> +<!--*< File comment --> +<node name="/SomeNode" xmlns:dx="http://psiamp.org/dtd/doxygen_dbusxml.dtd"> + <!--* test struct outside a namespace and interface --> + <dx:struct name="StructOutsideNamespace"> + <!--* member 1 --> + <dx:member name="member1" type="s"/> + <!--* complex member 1 --> + <dx:member name="complexMember1" type="(ssu)"/> + </dx:struct> + + <!--* Test flag set --> + <dx:flagset name="flagset"> + <!--* Flag 1 of flagset. --> + <dx:value name="FLAG1"/> + </dx:flagset> + + <!--* namespace comment --> + <dx:namespace name="SomeNamespace"> + <!--* struct inside a namespace --> + <dx:struct name="StructInNamespace"> + <!--* member 2 --> + <dx:member name="member2" type="s"/> + </dx:struct> + </dx:namespace> + <!--* Documentation on the interface --> + <interface name="nl.stack.doxygen.test.interface"> + <!--* Test Enum documentation --> + <dx:enum name="TestEnum"> + <!--* key 1 with value 13 --> + <dx:value name="KEY1" value="13"/> + <!--* key 2 without a value --> + <dx:value name="KEY2"/> + </dx:enum> + + <!--* struct inside a interface --> + <dx:struct name="StructInInterface"> + <!--* member 3 --> + <dx:member name="member3" type="s"/> + <!--* Struct in a struct --> + <dx:struct name="StructInAStruct"> + <!--* member4 --> + <dx:member name="member4" type="s"/> + </dx:struct> + <!--* struct member --> + <dx:member name="structMembor" type="(s)" named-type="StructInAStruct"/> + </dx:struct> + <!--* Document method + + Some extended documentation for the method. + + @param[in] input blah. + @param[out] output blub + --> + <method name="method"> + <arg direction="in" name="input" type="(s(s))" named-type="::nl::stack::doxygen::test::interface::StructInInterface"/> + <arg direction="out" type="v" name="output"/> + </method> + + <signal name="signal"> + <!--*< Documentation for signal. + + @param parameter some parameter. + --> + <arg name="parameter" type="s"/> + </signal> + + <!--* property documentation --> + <property name="property" type="s" access="readwrite"/> + + <!--* property documentation read-only --> + <property name="propertyRead" type="s" access="read"/> + <!--* property documentation write-only --> + <property name="propertyWrite" type="s" access="write"/> + </interface> +</node> +</pre> +*/ diff --git a/doc/diagrams.doc b/doc/diagrams.doc new file mode 100644 index 0000000..56f82b8 --- /dev/null +++ b/doc/diagrams.doc @@ -0,0 +1,148 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page diagrams Graphs and diagrams + + Doxygen has built-in support to generate inheritance diagrams for C++ + classes. + + Doxygen can use the "dot" tool from graphviz to generate + more advanced diagrams and graphs. Graphviz is an open-source, + cross-platform graph drawing toolkit and can be found + at http://www.graphviz.org/ + + If you have the "dot" tool in the path, you can set + \ref cfg_have_dot "HAVE_DOT" to \c YES in the configuration file to + let doxygen use it. + + Doxygen uses the "dot" tool to generate the following graphs: + <ul> + <li>A graphical representation of the class hierarchy will be drawn, along + with the textual one. Currently this feature is supported for HTML only.\n + <b>Warning:</b> When you have a very large class hierarchy where many + classes derive from a common base class, the resulting image may become + too big to handle for some browsers. + <li>An inheritance graph will be generated for each documented class showing the + direct and indirect inheritance relations. This disables the + generation of the built-in class inheritance diagrams. + <li>An include dependency graph is generated for each documented file that + includes at least one other file. This feature is currently supported + for HTML and RTF only. + <li>An inverse include dependency graph is also generated showing for + a (header) file, which other files include it. + <li>A graph is drawn for each documented class and struct that shows: + <ul> + <li> the inheritance relations with base classes. + <li> the usage relations with other structs and classes (e.g. + class \c A has a member variable \c m_a of type class \c B, then + \c A has an arrow to \c B with \c m_a as label). + </ul> + <li>if \ref cfg_call_graph "CALL_GRAPH" is set to YES, a + graphical call graph is drawn for each function showing the + functions that the function directly or indirectly calls. + <li>if \ref cfg_caller_graph "CALLER_GRAPH" is set to YES, a + graphical caller graph is drawn for each function showing the + functions that the function is directly or indirectly called by. + </ul> + + Using a \ref customize "layout file" you can determine which of the + graphs are actually shown. + + The options \ref cfg_dot_graph_max_nodes "DOT_GRAPH_MAX_NODES" and + \ref cfg_max_dot_graph_depth "MAX_DOT_GRAPH_DEPTH" can be used to + limit the size of the various graphs. + + The elements in the class diagrams in HTML and RTF + have the following meaning: + <ul> + <li> A \b yellow box indicates a class. A box can have a + little marker in the lower right corner to indicate that the class + contains base classes that are hidden. + For the class diagrams the maximum tree width is currently 8 elements. + If a tree is wider some nodes will be hidden. + If the box is filled with a + dashed pattern the inheritance relation is virtual. + <li> A \b white box indicates that the documentation of the class + is currently shown. + <li> A \b gray box indicates an undocumented class. + <li> A <b>solid dark blue</b> arrow indicates public inheritance. + <li> A <b>dashed dark green</b> arrow indicates protected inheritance. + <li> A <b>dotted dark green</b> arrow indicates private inheritance. + </ul> + + The elements in the class diagram in \f$\mbox{\LaTeX}\f$ have the + following meaning: + <ul> + <li> A \b white box indicates a class. + A \b marker in the lower right corner of the box indicates that the + class has base classes that are hidden. + If the box has a \b dashed border this indicates virtual inheritance. + <li> A \b solid arrow indicates public inheritance. + <li> A \b dashed arrow indicates protected inheritance. + <li> A \b dotted arrow indicates private inheritance. + </ul> + + The elements in the graphs generated by the dot tool have the following + meaning: + <ul> + <li> A \b white box indicates a class or struct or file. + <li> A box with a \b red border indicates a node that has + \e more arrows than are shown! + In other words: the graph is \e truncated with respect to this node. + The reason why a graph is sometimes truncated is to prevent images + from becoming too large. + For the graphs generated with dot doxygen tries + to limit the width of the resulting image to 1024 pixels. + <li> A \b black box indicates that the class' documentation is currently shown. + <li> A <b>dark blue</b> arrow indicates an include relation (for the + include dependency graph) or public inheritance (for the other graphs). + <li> A <b>dark green</b> arrow indicates protected inheritance. + <li> A <b>dark red</b> arrow indicates private inheritance. + <li> A <b>purple dashed</b> arrow indicated a "usage" relation, the + edge of the arrow is labeled with the variable(s) responsible for the + relation. + Class \c A uses class \c B, if class \c A has a member variable \c m + of type C, where B is a subtype of C (e.g. `C` could be `B`, `B*`, `T\<B\>*`). + </ul> + + +Here are a couple of header files that together show the various diagrams +that doxygen can generate: + +<code>diagrams_a.h</code> +\verbinclude diagrams_a.h +<code>diagrams_b.h</code> +\verbinclude diagrams_b.h +<code>diagrams_c.h</code> +\verbinclude diagrams_c.h +<code>diagrams_d.h</code> +\verbinclude diagrams_d.h +<code>diagrams_e.h</code> +\verbinclude diagrams_e.h + + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/diagrams/html/index.html">here</a> + for the corresponding HTML documentation that is generated by doxygen<br/> + (<code>EXTRACT_ALL</code> = <code>YES</code> is used here).<p> + \endhtmlonly + +\htmlonly +Go to the <a href="preprocessing.html">next</a> section or return to the + <a href="index.html">index</a>. +\endhtmlonly + +*/ + diff --git a/doc/docblocks.doc b/doc/docblocks.doc new file mode 100644 index 0000000..d6bb675 --- /dev/null +++ b/doc/docblocks.doc @@ -0,0 +1,605 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page docblocks Documenting the code +\tableofcontents + +This chapter covers two topics: +1. How to put comments in your code such that doxygen incorporates them in + the documentation it generates. + This is further detailed in the \ref specialblock "next section". +2. Ways to structure the contents of a comment block such that the output + looks good, as explained in section \ref docstructure. + +\section specialblock Special comment blocks + +A special comment block is a C or C++ style comment block with some +additional markings, so doxygen knows it is a piece of structured text that +needs to end up in the generated documentation. The \ref cppblock "next" section +presents the various styles supported by doxygen. + +For Python, VHDL, Fortran, and Tcl code there are different commenting +conventions, which can be found in sections \ref pythonblocks, \ref vhdlblocks, +\ref fortranblocks, and \ref tclblocks respectively. + +\subsection cppblock Comment blocks for C-like languages (C/C++/C#/Objective-C/PHP/Java) + +For each entity in the code there are two (or in some cases three) types of descriptions, +which together form the documentation for that entity; a *brief* description and *detailed* +description, both are optional. For methods and functions there is also a third +type of description, the so called *in body* description, which consists of +the concatenation of all comment blocks found within the body of the method or function. + +Having more than one brief or detailed description is allowed (but not recommended, +as the order in which the descriptions will appear is not specified). + +As the name suggest, a brief description is +a short one-liner, whereas the detailed description provides longer, +more detailed documentation. An "in body" description can also act as a detailed +description or can describe a collection of implementation details. +For the HTML output brief descriptions are also +used to provide tooltips at places where an item is referenced. + +There are several ways to mark a comment block as a detailed description: +<ol> +<li> You can use the JavaDoc style, which consist of a C-style comment +block starting with two *'s, like this: + +\verbatim +/** + * ... text ... + */ +\endverbatim + +<li> or you can use the Qt style and add an exclamation mark (!) +after the opening of a C-style comment block, as shown in this example: + +\verbatim +/*! + * ... text ... + */ +\endverbatim + +In both cases the intermediate *'s are optional, so + +\verbatim +/*! + ... text ... +*/ +\endverbatim + +is also valid. + +<li> A third alternative is to use a block of <i>at least two</i> C++ comment +lines, where each line starts with an additional slash or an +exclamation mark. Here are examples of the two cases: + +\verbatim +/// +/// ... text ... +/// +\endverbatim + +or + +\verbatim +//! +//!... text ... +//! +\endverbatim + +Note that a blank line ends a documentation block in this case. + +<li> + +Some people like to make their comment blocks more visible in the +documentation. For this purpose you can use the following: + +\verbatim +/********************************************//** + * ... text + ***********************************************/ +\endverbatim +(note the 2 slashes to end the normal comment block and start a special comment block). + +or + +\verbatim +///////////////////////////////////////////////// +/// ... text ... +///////////////////////////////////////////////// +\endverbatim + +</ol> + +For the brief description there are also several possibilities: +<ol> +<li>One could use the \ref cmdbrief "\\brief" command with one of the +above comment blocks. This command ends at the end of a paragraph, +so the detailed description follows after an empty line. + +Here is an example: + +\verbatim +/*! \brief Brief description. + * Brief description continued. + * + * Detailed description starts here. + */ +\endverbatim + +<li>If \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" is set to \c YES + in the configuration file, + then using JavaDoc style comment + blocks will automatically start a brief description which ends at the + first dot followed by a space or new line. Here is an example: + +\verbatim +/** Brief description which ends at this dot. Details follow + * here. + */ +\endverbatim +The option has the same effect for multi-line special C++ comments: +\verbatim +/// Brief description which ends at this dot. Details follow +/// here. +\endverbatim + +<li>A third option is to use a special C++ style comment which does not + span more than one line. Here are two examples: +\verbatim +/// Brief description. +/** Detailed description. */ +\endverbatim + +or + +\verbatim +//! Brief description. + +//! Detailed description +//! starts here. +\endverbatim + +Note the blank line in the last example, which is required to separate the +brief description from the block containing the detailed description. The +\ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" should also be set to \c NO +for this case. + +</ol> + +As you can see doxygen is quite flexible. If you have multiple +detailed descriptions, like in the following example: + +\verbatim +//! Brief description, which is +//! really a detailed description since it spans multiple lines. +/*! Another detailed description! + */ +\endverbatim + +They will be joined. Note that this is also the case if the descriptions +are at different places in the code! In this case the order will depend +on the order in which doxygen parses the code. + + +Unlike most other documentation systems, doxygen also allows you to put +the documentation of members (including global functions) in front of +the \e definition. This way the documentation can be placed in the source +file instead of the header file. This keeps the header file compact, and allows the +implementer of the members more direct access to the documentation. +As a compromise the brief description could be placed before the +declaration and the detailed description before the member definition. + +\subsubsection memberdoc Putting documentation after members + +If you want to document the members of a file, struct, union, class, or enum, +it is sometimes desired to place the documentation block after the member +instead of before. For this purpose you have to put an additional \< marker +in the comment block. Note that this also works for the parameters +of a function. + +Here are some examples: +\verbatim +int var; /*!< Detailed description after the member */ +\endverbatim +This block can be used to put a Qt style detailed +documentation block \e after a member. Other ways to do the +same are: +\verbatim +int var; /**< Detailed description after the member */ +\endverbatim +or +\verbatim +int var; //!< Detailed description after the member + //!< +\endverbatim +or +\verbatim +int var; ///< Detailed description after the member + ///< +\endverbatim + +Most often one only wants to put a brief description after a member. +This is done as follows: +\verbatim +int var; //!< Brief description after the member +\endverbatim +or +\verbatim +int var; ///< Brief description after the member +\endverbatim + +For functions one can use the \ref cmdparam "\@param" command to document the parameters +and then use <code>[in]</code>, <code>[out]</code>, <code>[in,out]</code> +to document the direction. For inline documentation this is also possible +by starting with the direction attribute, e.g. +\verbatim +void foo(int v /**< [in] docs for input parameter v. */); +\endverbatim + +Note that these blocks have the same structure and meaning as the +special comment blocks in the previous section +only the \< indicates that the member is +located in front of the block instead of after the block. + +Here is an example of the use of these comment blocks: +\include afterdoc.h + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/afterdoc/html/class_test.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + +\warning These blocks can only be used to document \e members and \e parameters. + They cannot be used to document files, classes, unions, structs, + groups, namespaces and enums themselves. Furthermore, the structural + commands mentioned in the next section + (like <code>\\class</code>) are not allowed + inside these comment blocks. + +\subsubsection docexamples Examples + +Here is an example of a documented piece of C++ code using the Qt style: +\include qtstyle.cpp + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/qtstyle/html/class_test.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + +The brief descriptions are included in the member overview of a +class, namespace or file and are printed using a small italic font +(this description can be hidden by setting +\ref cfg_brief_member_desc "BRIEF_MEMBER_DESC" to \c NO in +the config file). By default the brief descriptions become the first +sentence of the detailed descriptions +(but this can be changed by setting the \ref cfg_repeat_brief "REPEAT_BRIEF" +tag to \c NO). Both the brief and the detailed descriptions are optional +for the Qt style. + +By default a JavaDoc style documentation block behaves the same way as a +Qt style documentation block. This is not according the JavaDoc specification +however, where the first sentence of the documentation block is automatically +treated as a brief description. To enable this behavior you should set +\ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" to YES in the configuration +file. If you enable this option and want to put a dot in the middle of a +sentence without ending it, you should put a backslash and a space after it. +Here is an example: +\verbatim + /** Brief description (e.g.\ using only a few words). Details follow. */ +\endverbatim + +Here is the same piece of code as shown above, this time documented using the +JavaDoc style and \ref cfg_javadoc_autobrief "JAVADOC_AUTOBRIEF" set to YES: +\include jdstyle.cpp + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/jdstyle/html/class_test.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + +Similarly, if one wishes the first sentence of a Qt style documentation +block to automatically be treated as a brief description, one may set +\ref cfg_qt_autobrief "QT_AUTOBRIEF" to YES in the configuration file. + +\subsubsection structuralcommands Documentation at other places + +In the examples in the previous section the comment blocks were always located *in +front* of the declaration or definition of a file, class or namespace or *in +front* or *after* one of its members. +Although this is often comfortable, there may sometimes be reasons to put the +documentation somewhere else. For documenting a file this is even +required since there is no such thing as "in front of a file". + +Doxygen allows you to put your documentation blocks practically +anywhere (the exception is inside the body of a function or inside a +normal C style comment block). + +The price you pay for not putting the +documentation block directly before (or after) an item is the need to put a +structural command inside the documentation block, which leads to some +duplication of information. So in practice you should \e avoid the use of +structural commands \e unless other requirements force you to do so. + +Structural commands (like \ref cmd_intro "all other commands") start with a backslash +(<tt>\\</tt>), or an at-sign (<tt>\@</tt>) if you prefer JavaDoc style, +followed by a command name and one or more parameters. +For instance, if you want to document the class \c Test in the example +above, you could have also put the following documentation block somewhere +in the input that is read by doxygen: +\verbatim +/*! \class Test + \brief A test class. + + A more detailed class description. +*/ +\endverbatim + +Here the special command \c \\class is used to indicate that the +comment block contains documentation for the class \c Test. +Other structural commands are: +<ul> +<li>\c \\struct to document a C-struct. +<li>\c \\union to document a union. +<li>\c \\enum to document an enumeration type. +<li>\c \\fn to document a function. +<li>\c \\var to document a variable or typedef or enum value. +<li>\c \\def to document a \#define. +<li>\c \\typedef to document a type definition. +<li>\c \\file to document a file. +<li>\c \\namespace to document a namespace. +<li>\c \\package to document a Java package. +<li>\c \\interface to document an IDL interface. +</ul> +See section \ref commands for detailed information about these and many other +commands. + +To document a member of a C++ class, you must also document the class +itself. The same holds for namespaces. To document a global C function, +typedef, enum or preprocessor definition you must first document the file +that contains it (usually this will be a header file, because that file +contains the information that is exported to other source files). + +Let's repeat that, because it is often overlooked: +to document global objects (functions, typedefs, enum, macros, etc), you +<em>must</em> document the file in which they are defined. In other words, +there <em>must</em> at least be a \verbatim /*! \file */ \endverbatim +or a \verbatim /** @file */ \endverbatim line in this file. + +Here is an example of a C header named \c structcmd.h that is documented +using structural commands: +\include structcmd.h + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/structcmd/html/structcmd_8h.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + + Because each comment block in the example above contains a structural command, all + the comment blocks could be moved to another location or input file + (the source file for instance), without affecting the generated + documentation. The disadvantage of this approach is that prototypes are + duplicated, so all changes have to be made twice! Because of this you + should first consider if this is really needed, and avoid structural + commands if possible. I often receive examples that contain \\fn command + in comment blocks which are place in front of a function. This is clearly + a case where the \\fn command is redundant and will only lead to problems. + +\subsection pythonblocks Comment blocks in Python + +For Python there is a standard way of documenting the code using +so called documentation strings. Such strings are stored in \c __doc__ +and can be retrieved at runtime. Doxygen will extract such comments +and assume they have to be represented in a preformatted way. + +\include docstring.py + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/docstring/html/index.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + +Note that in this case none of doxygen's \ref cmd_intro "special commands" +are supported. + +There is also another way to document Python code using comments that +start with "##". These type of comment blocks are more in line with the +way documentation blocks work for the other languages supported by doxygen +and this also allows the use of special commands. + +Here is the same example again but now using doxygen style comments: + +\include pyexample.py + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/pyexample/html/index.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + +Since python looks more like Java than like C or C++, you should set +\ref cfg_optimize_output_java "OPTIMIZE_OUTPUT_JAVA" to \c YES in the +config file. + + +\htmlonly +Go to the <a href="lists.html">next</a> section or return to the + <a href="index.html">index</a>. +\endhtmlonly + +\subsection vhdlblocks Comment blocks in VHDL + +For VHDL a comment normally start with "--". Doxygen will extract comments +starting with "--!". There are only two types of comment blocks in VHDL; +a one line --! comment representing a brief description, and a multi-line +--! comment (where the --! prefix is repeated for each line) representing +a detailed description. + +Comments are always located in front of the item that is being documented +with one exception: for ports the comment can also be after the item +and is then treated as a brief description for the port. + +Here is an example VHDL file with doxygen comments: + +\include mux.vhdl + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/mux/html/index.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + +To get proper looking output you need to set +\ref cfg_optimize_output_vhdl "OPTIMIZE_OUTPUT_VHDL" to \c YES in the +config file. This will also affect a number of other settings. When they +were not already set correctly doxygen will produce a warning telling which +settings where overruled. + +\subsection fortranblocks Comment blocks in Fortran + +When using doxygen for Fortran code you should +set \ref cfg_optimize_for_fortran "OPTIMIZE_FOR_FORTRAN" to \c YES. + +For Fortran "!>" or "!<" starts a comment and "!!" or "!>" can be used to +continuate a one line comment into a multi-line comment. + +Here is an example of a documented Fortran subroutine: +\verbatim + !> Build the restriction matrix for the aggregation + !! method. + !! @param aggr information about the aggregates + !! @todo Handle special case + subroutine IntRestBuild(A,aggr,Restrict,A_ghost) + implicit none + Type(SpMtx), intent(in) :: A !< our fine level matrix + Type(Aggrs), intent(in) :: aggr + Type(SpMtx), intent(out) :: Restrict !< Our restriction matrix +\endverbatim + +As a alternative you can also use comments in fixed format code: + +\verbatim +C> Function comment +C> another line of comment + function A(i) +C> input parameter + integer i + end function A +\endverbatim + +\subsection tclblocks Comment blocks in Tcl + +Doxygen documentation can be included in normal Tcl comments. + +To start a new documentation block start a line with \c ## (two hashes). +All following comment lines and continuation lines will be added to this +block. The block ends with a line not starting with a \c # (hash sign). + +A brief documentation can be added with \c ;#< (semicolon, hash and +lower then sign). The brief documentation also ends at a line not starting +with a \c # (hash sign). + +Inside doxygen comment blocks all normal doxygen markings are supported. +The only exceptions are described in the following two paragraphs. + +If a doxygen comment block ends with a line containing only +\c #\\code or \c #\@code all code until a line only containing \c #\\endcode +or \c #\@endcode is added to the generated documentation as code block. + +If a doxygen comment block ends with a line containing only +\c #\\verbatim or \c #\@verbatim all code until a line only containing +\c #\\endverbatim or \c #\@endverbatim is added verbatim to the generated +documentation. + +To detect namespaces, classes, functions and variables the following +Tcl commands are recognized. Documentation blocks can be put on the lines +before the command. + +<ul> +<li><tt>namespace eval ..</tt> Namespace +<li><tt>proc ..</tt> Function +<li><tt>variable ..</tt> Variable +<li><tt>common ..</tt> Common variable +<li><tt>itcl::class ..</tt> Class +<li><tt>itcl::body ..</tt> Class method body definition +<li><tt>oo::class create ..</tt> Class +<li><tt>oo::define ..</tt> OO Class definition +<li><tt>method ..</tt> Class method definitions +<li><tt>constructor ..</tt> Class constructor +<li><tt>destructor ..</tt> Class destructor +<li><tt>public ..</tt> Set protection level +<li><tt>protected ..</tt> Set protection level +<li><tt>private ..</tt> Set protection level +</ul> + +<!-- +To use your own keywords you an map these keyword to the recognized commands +using the \ref cfg_tcl_subs "TCL_SUBST" entry in the config file. +The entry contain a list of word-keyword mappings. To use the itcl::* +commands without the leading namespace use p.e.: + +\verbatim TCL_SUBST = class itcl:class body itcl:body \endverbatim +--> + +Following is a example using doxygen style comments: + +\include tclexample.tcl + \htmlonly + Click <a href="$(DOXYGEN_DOCDIR)/examples/tclexample/html/index.html">here</a> + for the corresponding HTML documentation that is generated by doxygen. + \endhtmlonly + +\htmlonly +Go to the <a href="lists.html">next</a> section or return to the + <a href="index.html">index</a>. +\endhtmlonly + +\section docstructure Anatomy of a comment block + +The previous section focused on how to make the comments in your code known +to doxygen, it explained the difference between a brief and a detailed description, and +the use of structural commands. + +In this section we look at the contents of the comment block itself. + +Doxygen supports various styles of formatting your comments. + +The simplest form is to use plain text. This will appear as-is in the output +and is ideal for a short description. + +For longer descriptions you often will find the +need for some more structure, like a block of verbatim text, a list, or a +simple table. For this doxygen supports the +<a href="http://daringfireball.net/projects/markdown/syntax">Markdown</a> +syntax, including parts of the +<a href="http://michelf.com/projects/php-markdown/extra/">Markdown Extra</a> +extension. + +Markdown is designed to be very easy to read and write. +It's formatting is inspired by plain text mail. +Markdown works great for simple, generic formatting, like an introduction +page for your project. Doxygen also supports reading of markdown files +directly. See \ref markdown "here" for more details regards Markdown support. + +For programming language specific formatting doxygen has two +forms of additional markup on top of Markdown formatting. + +1. <a href="http://en.wikipedia.org/wiki/Javadoc">Javadoc</a> like markup. + See \ref cmd_intro "here" for a complete overview of all commands supported by doxygen. +2. <a href="http://en.wikipedia.org/wiki/C_Sharp_(programming_language)#XML_documentation_system">XML</a> markup + as specified in the C# standard. See \ref xmlcmds "here" for the XML commands supported by doxygen. + +If this is still not enough doxygen also supports a \ref htmlcmds "subset" of +the <a href="http://en.wikipedia.org/wiki/HTML">HTML</a> markup language. + +\htmlonly +Go to the <a href="markdown.html">next</a> section or return to the + <a href="index.html">index</a>. +\endhtmlonly + +*/ diff --git a/doc/doxygen.1 b/doc/doxygen.1 new file mode 100644 index 0000000..45090f4 --- /dev/null +++ b/doc/doxygen.1 @@ -0,0 +1,46 @@ +.TH DOXYGEN "1" "DATE" "doxygen VERSION" "User Commands" +.SH NAME +doxygen \- documentation system for various programming languages +.SH DESCRIPTION +Doxygen is a documentation system for C++, C, Java, Objective-C, IDL +(Corba and Microsoft flavors) and to some extent PHP, C#, and D. +.PP +You can use doxygen in a number of ways: +.TP +1) Use doxygen to generate a template configuration file: +.IP +doxygen [-s] \fB\-g\fR [configName] +.IP +If - is used for configName doxygen will write to standard output. +.TP +2) Use doxygen to update an old configuration file: +.IP +doxygen [-s] \fB\-u\fR [configName] +.TP +3) Use doxygen to generate documentation using an existing configuration file: +.IP +doxygen [configName] +.IP +If - is used for configName doxygen will read from standard input. +.TP +4) Use doxygen to generate a template style sheet file for RTF, HTML or Latex. +.TP +RTF: +doxygen \fB\-w\fR rtf styleSheetFile +.TP +HTML: +doxygen \fB\-w\fR html headerFile footerFile styleSheetFile [configFile] +.TP +LaTeX: doxygen \fB\-w\fR latex headerFile footerFile styleSheetFile [configFile] +.TP +5) Use doxygen to generate an rtf extensions file +.TP +RTF: +doxygen \fB\-e\fR rtf extensionsFile +.PP +If \fB\-s\fR is specified the comments in the config file will be omitted. +If configName is omitted `Doxyfile' will be used as a default. +.SH AUTHOR +Doxygen version VERSION, Copyright Dimitri van Heesch 1997-2012 +.SH SEE ALSO +doxywizard(1). diff --git a/doc/doxygen.sty b/doc/doxygen.sty new file mode 100644 index 0000000..45bec34 --- /dev/null +++ b/doc/doxygen.sty @@ -0,0 +1,484 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{doxygen} + +% Packages used by this style file +\RequirePackage{alltt} +\RequirePackage{array} +\RequirePackage{calc} +\RequirePackage{color} +\RequirePackage{fancyhdr} +\RequirePackage{longtable} +\RequirePackage{verbatim} +\RequirePackage{ifthen} +\RequirePackage{xtab} +\RequirePackage{multirow} +\RequirePackage[table]{xcolor} + +% Use helvetica font instead of times roman +\RequirePackage{helvet} +\RequirePackage{sectsty} +\RequirePackage{tocloft} +\providecommand{\rmdefault}{phv} +\providecommand{\bfdefault}{bc} + + +% Setup fancy headings +\pagestyle{fancyplain} +\newcommand{\clearemptydoublepage}{% + \newpage{\pagestyle{empty}\cleardoublepage}% +} +\renewcommand{\chaptermark}[1]{% + \markboth{#1}{}% +} +\renewcommand{\sectionmark}[1]{% + \markright{\thesection\ #1}% +} +\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}} +\fancyhead[CE]{\fancyplain{}{}} +\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}} +\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}} +\fancyhead[CO]{\fancyplain{}{}} +\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}} +\fancyfoot[LE]{\fancyplain{}{}} +\fancyfoot[CE]{\fancyplain{}{}} +\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }} +\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }} +\fancyfoot[CO]{\fancyplain{}{}} +\fancyfoot[RO]{\fancyplain{}{}} +%---------- Internal commands used in this style file ---------------- + +\newcommand\tabfill[1]{% + \dimen@\linewidth% + \advance\dimen@\@totalleftmargin% + \advance\dimen@-\dimen\@curtab% + \parbox[t]\dimen@{\raggedright #1\ifhmode\strut\fi}% +} + +\newcommand{\ensurespace}[1]{% + \begingroup + \setlength{\dimen@}{#1}% + \vskip\z@\@plus\dimen@ + \penalty -100\vskip\z@\@plus -\dimen@ + \vskip\dimen@ + \penalty 9999% + \vskip -\dimen@ + \vskip\z@skip % hide the previous |\vskip| from |\addvspace| + \endgroup +} + +% Generic environment used by all paragraph-based environments defined +% below. Note that the command \title{...} needs to be defined inside +% those environments! +\newenvironment{DoxyDesc}[1]{% + \ensurespace{4\baselineskip}% + \begin{list}{}% + {% + \settowidth{\labelwidth}{40pt}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\parsep}{0pt}% + \setlength{\itemsep}{-4pt}% + \renewcommand{\makelabel}{\entrylabel}% + }% + \item[#1]% +}{% + \end{list}% +} + +%---------- Commands used by doxygen LaTeX output generator ---------- + +% Used by <pre> ... </pre> +\newenvironment{DoxyPre}{% + \small% + \begin{alltt}% +}{% + \end{alltt}% + \normalsize% +} + +% Used by @code ... @endcode +\newenvironment{DoxyCode}{% + + +\begin{scriptsize}\begin{alltt}% +}{% +\end{alltt}\end{scriptsize}% +} + +% Used by @example, @include, @includelineno and @dontinclude +\newenvironment{DoxyCodeInclude}{% + \DoxyCode% +}{% + \endDoxyCode% +} + +% Used by @verbatim ... @endverbatim +\newenvironment{DoxyVerb}{% + \footnotesize% + \verbatim% +}{% + \endverbatim% + \normalsize% +} + +% Used by @verbinclude +\newenvironment{DoxyVerbInclude}{% + \DoxyVerb% +}{% + \endDoxyVerb% +} + +% Used by numbered lists (using '-#' or <ol> ... </ol>) +\newenvironment{DoxyEnumerate}{% + \enumerate% +}{% + \endenumerate% +} + +% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>) +\newenvironment{DoxyItemize}{% + \itemize% +}{% + \enditemize% +} + +% Used by description lists (using <dl> ... </dl>) +\newenvironment{DoxyDescription}{% + \description% +}{% + \enddescription% +} + +% Used by @image, @dotfile, and @dot ... @enddot +% (only if caption is specified) +\newenvironment{DoxyImage}{% + \begin{figure}[H]% + \begin{center}% +}{% + \end{center}% + \end{figure}% +} + +% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc +% (only if no caption is specified) +\newenvironment{DoxyImageNoCaption}{% +}{% +} + +% Used by @attention +\newenvironment{DoxyAttention}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @author and @authors +\newenvironment{DoxyAuthor}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @date +\newenvironment{DoxyDate}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @invariant +\newenvironment{DoxyInvariant}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @note +\newenvironment{DoxyNote}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @post +\newenvironment{DoxyPostcond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @pre +\newenvironment{DoxyPrecond}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @copyright +\newenvironment{DoxyCopyright}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @remark +\newenvironment{DoxyRemark}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @return +\newenvironment{DoxyReturn}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @since +\newenvironment{DoxySince}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @see +\newenvironment{DoxySeeAlso}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @version +\newenvironment{DoxyVersion}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @warning +\newenvironment{DoxyWarning}[1]{% + \begin{DoxyDesc}{#1}% +}{% + \end{DoxyDesc}% +} + +% Used by @internal +\newenvironment{DoxyInternal}[1]{% + \paragraph*{#1}% +}{% +} + +% Used by @par and @paragraph +\newenvironment{DoxyParagraph}[1]{% + \begin{list}{}% + {% + \settowidth{\labelwidth}{40pt}% + \setlength{\leftmargin}{\labelwidth}% + \setlength{\parsep}{0pt}% + \setlength{\itemsep}{-4pt}% + \renewcommand{\makelabel}{\entrylabel}% + }% + \item[#1]% +}{% + \end{list}% +} + +% Used by parameter lists +\newenvironment{DoxyParams}[2][]{% + \begin{DoxyDesc}{#2}% + \item[] \hspace{\fill} \vspace{-40pt}% + \settowidth{\labelwidth}{40pt}% + \setlength{\LTleft}{0pt}% + \setlength{\tabcolsep}{0.01\textwidth}% + \ifthenelse{\equal{#1}{}}% + {\begin{longtable}{|>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|% + p{0.815\textwidth}|}}% + {\ifthenelse{\equal{#1}{1}}% + {\begin{longtable}{|>{\centering}p{0.10\textwidth}|% + >{\raggedleft\hspace{0pt}}p{0.15\textwidth}|% + p{0.685\textwidth}|}}% + {\begin{longtable}{|>{\centering}p{0.10\textwidth}|% + >{\centering\hspace{0pt}}p{0.15\textwidth}|% + >{\raggedleft\hspace{0pt}}p{0.15\textwidth}|% + p{0.515\textwidth}|}}% + }\hline% +}{% + \end{longtable}% + \end{DoxyDesc}% +} + +% Used for fields of simple structs +\newenvironment{DoxyFields}[1]{% + \begin{DoxyDesc}{#1}% + \item[] \hspace{\fill} \vspace{-40pt}% + \settowidth{\labelwidth}{40pt}% + \setlength{\LTleft}{0pt}% + \setlength{\tabcolsep}{0.01\textwidth}% + \begin{longtable}{|>{\raggedleft\hspace{0pt}}p{0.15\textwidth}|% + p{0.15\textwidth}|% + p{0.635\textwidth}|}% + \hline% +}{% + \end{longtable}% + \end{DoxyDesc}% +} + +% is used for parameters within a detailed function description +\newenvironment{DoxyParamCaption}{% + \renewcommand{\item}[2][]{##1 {\em ##2}}% + }{% +} + +% Used by return value lists +\newenvironment{DoxyRetVals}[1]{% + \begin{DoxyDesc}{#1}% + \begin{description}% + \item[] \hspace{\fill} \vspace{-25pt}% + \setlength{\tabcolsep}{0.01\textwidth}% + \begin{longtable}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|% + p{0.77\textwidth}|}% + \hline% +}{% + \end{longtable}% + \end{description}% + \end{DoxyDesc}% +} + +% Used by exception lists +\newenvironment{DoxyExceptions}[1]{% + \begin{DoxyDesc}{#1}% + \begin{description}% + \item[] \hspace{\fill} \vspace{-25pt}% + \definecolor{tableShade}{HTML}{F8F8F8}% + \rowcolors{1}{white}{tableShade}% + \arrayrulecolor{gray}% + \setlength{\tabcolsep}{0.01\textwidth}% + \begin{longtable}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|% + p{0.77\textwidth}|}% + \hline% +}{% + \end{longtable}% + \end{description}% + \end{DoxyDesc}% +} + +% Used by template parameter lists +\newenvironment{DoxyTemplParams}[1]{% + \begin{DoxyDesc}{#1}% + \begin{description}% + \item[] \hspace{\fill} \vspace{-25pt}% + \definecolor{tableShade}{HTML}{F8F8F8}% + \rowcolors{1}{white}{tableShade}% + \arrayrulecolor{gray}% + \setlength{\tabcolsep}{0.01\textwidth}% + \begin{longtable}{|>{\raggedleft\hspace{0pt}}p{0.25\textwidth}|% + p{0.77\textwidth}|}% + \hline% +}{% + \end{longtable}% + \end{description}% + \end{DoxyDesc}% +} + +\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})} +\newenvironment{DoxyCompactList} +{\begin{list}{}{ + \setlength{\leftmargin}{0.5cm} + \setlength{\itemsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \renewcommand{\makelabel}{\hfill}}} +{\end{list}} +\newenvironment{DoxyCompactItemize} +{ + \begin{itemize} + \setlength{\itemsep}{-3pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0pt} + \setlength{\partopsep}{0pt} +} +{\end{itemize}} +\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp} +\newlength{\tmplength} +\newenvironment{TabularC}[1] +{ +\setlength{\tmplength} + {\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)} + \par\begin{xtabular*}{\linewidth} + {*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|} +} +{\end{xtabular*}\par} +\newcommand{\entrylabel}[1]{ + {\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{% + \usefont{OT1}{phv}{bc}{n}\color{darkgray}#1}\vspace{1.5\baselineskip}}}} +\newenvironment{Desc} +{\begin{list}{} + { + \settowidth{\labelwidth}{40pt} + \setlength{\leftmargin}{\labelwidth} + \setlength{\parsep}{0pt} + \setlength{\itemsep}{-4pt} + \renewcommand{\makelabel}{\entrylabel} + } +} +{\end{list}} +\newsavebox{\xrefbox} +\newlength{\xreflength} +\newcommand{\xreflabel}[1]{% + \sbox{\xrefbox}{#1}% + \setlength{\xreflength}{\wd\xrefbox}% + \ifthenelse{\xreflength>\labelwidth}{% + \begin{minipage}{\textwidth}% + \setlength{\parindent}{0pt}% + \hangindent=15pt\bfseries #1\vspace{1.2\itemsep}% + \end{minipage}% + }{% + \parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}% + }}% +\newenvironment{DoxyRefList}{% + \begin{list}{}{% + \setlength{\labelwidth}{10pt}% + \setlength{\leftmargin}{\labelwidth}% + \addtolength{\leftmargin}{\labelsep}% + \renewcommand{\makelabel}{\xreflabel}% + }% + }% +{\end{list}} +\newenvironment{DoxyRefDesc}[1] +{\begin{list}{}{% + \renewcommand\makelabel[1]{\textbf{##1}} + \settowidth\labelwidth{\makelabel{#1}} + \setlength\leftmargin{\labelwidth+\labelsep}}} +{\end{list}} +\newenvironment{Indent} + {\begin{list}{}{\setlength{\leftmargin}{0.5cm}} + \item[]\ignorespaces} + {\unskip\end{list}} +\setlength{\parindent}{0cm} +\setlength{\parskip}{0.2cm} +\addtocounter{secnumdepth}{2} +\usepackage[T1]{fontenc} +\makeatletter +\renewcommand{\paragraph}{\@startsection{paragraph}{4}{0ex}% + {-1.0ex}% + {1.0ex}% + {\usefont{OT1}{phv}{bc}{n}\color{darkgray}}} +\renewcommand{\subparagraph}{\@startsection{subparagraph}{5}{0ex}% + {-1.0ex}% + {1.0ex}% + {\usefont{OT1}{phv}{bc}{n}\color{darkgray}}} +\makeatother +\allsectionsfont{\usefont{OT1}{phv}{bc}{n}\selectfont\color{darkgray}} +\stepcounter{secnumdepth} +\stepcounter{tocdepth} +\definecolor{comment}{rgb}{0.5,0.0,0.0} +\definecolor{keyword}{rgb}{0.0,0.5,0.0} +\definecolor{keywordtype}{rgb}{0.38,0.25,0.125} +\definecolor{keywordflow}{rgb}{0.88,0.5,0.0} +\definecolor{preprocessor}{rgb}{0.5,0.38,0.125} +\definecolor{stringliteral}{rgb}{0.0,0.125,0.25} +\definecolor{charliteral}{rgb}{0.0,0.5,0.5} +\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0} +\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43} +\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0} +\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0} diff --git a/doc/doxygen_logo.eps b/doc/doxygen_logo.eps new file mode 100644 index 0000000..6539c3a --- /dev/null +++ b/doc/doxygen_logo.eps @@ -0,0 +1,6322 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 0 0 634 197 +%%HiResBoundingBox: 0.000000 0.000000 634.000000 197.000000 +%......................................... +%%Creator: GNU Ghostscript 705 (epswrite) +%%CreationDate: 2002/09/28 21:44:36 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%EndComments +%%BeginProlog +% This copyright applies to everything between here and the %%EndProlog: +% Copyright (C) 2002 artofcode LLC, Benicia, CA. All rights reserved. +%%BeginResource: procset GS_epswrite_2_0_1001 +/GS_epswrite_2_0_1001 80 dict dup begin +/PageSize 2 array def/setpagesize{ PageSize aload pop 3 index eq exch +4 index eq and{ pop pop pop}{ PageSize dup 1 +5 -1 roll put 0 4 -1 roll put dup null eq {false} {dup where} ifelse{ exch get exec} +{ pop/setpagedevice where +{ pop 1 dict dup /PageSize PageSize put setpagedevice} +{ /setpage where{ pop PageSize aload pop pageparams 3 {exch pop} repeat +setpage}if}ifelse}ifelse}ifelse} bind def +/!{bind def}bind def/#{load def}!/N/counttomark # +/rG{3{3 -1 roll 255 div}repeat setrgbcolor}!/G{255 div setgray}!/K{0 G}! +/r6{dup 3 -1 roll rG}!/r5{dup 3 1 roll rG}!/r3{dup rG}! +/w/setlinewidth #/J/setlinecap # +/j/setlinejoin #/M/setmiterlimit #/d/setdash #/i/setflat # +/m/moveto #/l/lineto #/c/rcurveto # +/p{N 2 idiv{N -2 roll rlineto}repeat}! +/P{N 0 gt{N -2 roll moveto p}if}! +/h{p closepath}!/H{P closepath}! +/lx{0 rlineto}!/ly{0 exch rlineto}!/v{0 0 6 2 roll c}!/y{2 copy c}! +/re{4 -2 roll m exch dup lx exch ly neg lx h}! +/^{3 index neg 3 index neg}! +/f{P fill}!/f*{P eofill}!/s{H stroke}!/S{P stroke}! +/q/gsave #/Q/grestore #/rf{re fill}! +/Y{P clip newpath}!/Y*{P eoclip newpath}!/rY{re Y}! +/|={pop exch 4 1 roll 3 array astore cvx exch 1 index def exec}! +/|{exch string readstring |=}! +/+{dup type/nametype eq{2 index 7 add -3 bitshift 2 index mul}if}! +/@/currentfile #/${+ @ |}! +/B{{2 copy string{readstring pop}aload pop 4 array astore cvx +3 1 roll}repeat pop pop true}! +/Ix{[1 0 0 1 11 -2 roll exch neg exch neg]exch}! +/,{true exch Ix imagemask}!/If{false exch Ix imagemask}!/I{exch Ix image}! +/Ic{exch Ix false 3 colorimage}! +/F{/Columns counttomark 3 add -2 roll/Rows exch/K -1/BlackIs1 true>> +/CCITTFaxDecode filter}!/FX{<</EndOfBlock false F}! +/X{/ASCII85Decode filter}!/@X{@ X}!/&2{2 index 2 index}! +/@F{@ &2<<F}!/@C{@X &2 FX}! +/$X{+ @X |}!/&4{4 index 4 index}!/$F{+ @ &4<<F |}!/$C{+ @X &4 FX |}! +/IC{3 1 roll 10 dict begin 1{/ImageType/Interpolate/Decode/DataSource +/ImageMatrix/BitsPerComponent/Height/Width}{exch def}forall +currentdict end image}! +/~{@ read {pop} if}! +end readonly def +%%EndResource +/pagesave null def +%%EndProlog +%%Page: 1 1 +%%BeginPageSetup +GS_epswrite_2_0_1001 begin +/pagesave save store 100 dict begin +0.1 0.1 scale +%%EndPageSetup +gsave mark +K +0 0 0 0 rf +Q q +0 0 250000 0 0 250000 ^ Y +q[6340 0 0 1970 0 0]concat +634 197 8[634 0 0 -197 0 197]@X false 3 +colorimage +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r;OA,rk/1.]_qcA +r;N/?b*;hr`rH)=s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +r;OA/s8W#r]_qcAr;OA,rk/1.]_qcAr;OA,rk/1.]_qcAr;OA,rk/1.Rf*/Rr;N/_gkY.I\c;^0 +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r;OA,rk/1.]_qcAr;OA,rk/1.]_qcAr;OA,rk/1.]_qcA +r;OA,rk/1.]_qbtr;OA,rgNcaRf*/tr;N/_rgNcaRf*/8r;M6EgkY+:X8MV0s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W#r]_qcAr;OA,rk/1.]_qcAr;OA,rk/1.]_qcAr;OA,rk/1.]_qcAr;OA,rk/1.Rf*/t +r;OA,rgNcaRf*/Rr;N/_rdaq=Qi-i5r;N/_rk/1$Qi-3gs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r;OA,rk/1.]_qcA +r;OA,rk/1.]_qcAr;N/_rk/1.]_qcAr;OA,rk/1.Rf*/tr;OA,rgNca]_qbtr;N/_rgNcaJGfD8 +r;M6ErgNcaRf*/tr;OA,rgNcWEW?(=s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W#rRf*/tr;N/_rk/1.]_qcAr;N/_rk/1.]_qcA +r;OA,rgNca]_qbtr;OA,rk/1.Rf*/tr;N/_rk/1.Rf*/8r;N/_rdaqGJGfD8r;N/_rk/1.Rf*/R +r;M6Hs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!r;OA,rk/1.]_qcAr;N/_rk/1.]_qcAr;N/_rk/1.]_qcAr;OA,rgNca]_qbt +r;OA,rgNcaRf*/Rr;N/_rgNcaJGfD8r;M6ErdaqG]_qcAr;N/_rgNcaJGfDZs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W#rRf*/t +r;N/_rk/1.]_qcAr;OA,rgNca]_qcAr;N/_rk/1.Rf*/tr;OA,rgNcaRf*/tr;N/_rk/1.Rf*/8 +r;N/_rdaqGJGfCsr;N/_rk/1.]_qbZr;M6Hs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r;OA,rk/1.Rf*/tr;OA,rk/1.Rf*/t +r;OA,rgNca]_qcAr;N/_rk/1.Rf*/tr;N/_rgNcaRf*/Rr;N/_rdaqGJGfD8r;M6ErgNcaRf*/t +r;N/_rdaqGJGfDZs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W#r]_qbtr;OA,rk/1.Rf*/tr;OA,rk/1.]_qcAr;OA,rk/1.Rf*/t +r;N/_rgNca]_qbtr;OA,rgNcaRf*/8r;M6ErgNcaJGfCsr;N/_rgNcaRf*/8r;M6Hs8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +r;N/_rk/1.Rf*/tr;OA,rgNca]_qbtr;OA,rgNca]_qbtr;OA,rgNca]_qbtr;N/_rgNcaRf*/R +r;N/_rdaqGRf*/8r;N/_rdaqG]_qcAr;N/_rdaqGJGfDZs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W#rRf*/tr;OA,rk/1.Rf*/t +r;OA,rk/1.Rf*/tr;OA,rk/1.Rf*/tr;N/_rgNcaRf*/tr;N/_rgNcaRf*/8r;M6ErgNcaJGfCs +r;N/_rgNcaRf*/8r;M6Erk/:2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq>^Kpr;N/_rk/1.Rf*/tr;N/_rk/1.Rf*/tr;OA,rgNcaRf*/t +r;N/_rk/1.Rf*/tr;N/_rgNcaRf*/Rr;N/_rdaqGJGfD8r;M6ErgNcaRf*/tr;N/_rdaqGJH,ZL +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+Yrk/1.]_qcAr;OA,rgNca]_qcAr;N/_rk/1.Rf*/tr;OA,rgNca]_qbtr;OA,rgNcaRf*/R +r;N/_rgNcaRf*/8r;M6ErdaqGRf*/8r;N/_rgNcaRf*/8r;M6Erk/:2s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_JAp&G'lr;N/_rgNca]_qcA +r;N/_rk/1.Rf*/tr;N/_rk/1.Rf*/tr;N/_rk/1.Rf*/Rr;OA,rgNcaRf*/Rr;M6ErdaqGJGfD8 +r;M6ErdaqG]_qbtr;N/_rdaqGJGfDZs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7d9oZ$h.Rf*/tr;N/_rk/1.Rf*/tr;N/_rk/1.Rf*/t +r;N/_rk/1.]_qbtr;OA,rgNcaRf*/Rr;N/_rgNcaRf*/8r;M6ErgNcaJGfCsr;N/_rgNcaJGfCs +r;N/_rk/:2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+Em-ilnkPXtlr;OA,rgNca]_qbtr;OA,rgNca]_qbtr;OA,rgNca]_qbtr;OA,rgNca]_qbt +r;N/_rgNcaRf*/Rr;M6ErdaqGJGfD8r;M6ErdaqGRf*/Rr;M6ErdaqGJGfDZs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726kj7d9oZ$h.Rf*/t +r;N/_rk/1.Rf*/tr;N/_rgNca]_qbtr;OA,rgNca]_qcAr;N/_rgNcaRf*/Rr;N/_rgNcaRf*/8 +r;M6ErgNcaJGfCsr;N/_rdaqGRf*/8r;M6Erk/:2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-ilnkPXtlr;OA,rgNca]_qbtr;OA,rgNca]_qbt +r;N/_rk/1.Rf*/tr;N/_rgNca]_qbtr;N/_rgNcaRf*/Rr;M6ErdaqGJGfD8r;M6ErdaqGRf*/R +r;M6ErdaqGJGfDZs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<726kj7d9oZ$h.Rf*/Rr;N/_rgNca]_qbtr;N/_rgNca]_qbtr;OA,rgNca]_qcA +r;N/_rgNca]_qbtr;N/_rgNcaRf*/8r;N/_rdaqGJGfCsr;N/_rdaqGJGfCsr;M6Erk/:2s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-j0)n,2gt +r;OA,rgNca]_qbtr;N/_rk/1.Rf*/tr;N/_rgNca]_qbtr;OA,rgNca]_qbtr;N/_rgNcaRf*/R +r;N/_rdaqGRf*/8r;M6ErdaqGJGfCsr;N/_rdaqGJGfDZs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCVi8j)!oZ$h.Rf*/tr;N/_rk/1.Rf*/R +r;N/_rgNca]_qbtr;N/_rk/1.Rf*/tr;N/_rk/1.Rf*/tr;N/_rk/1.Rf*/8r;M6ErgNcaJGfCs +r;N/_rdaqGJGfCsr;M6Erk/:2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_&&kOeKDr;N/_rgNcaRf*/Rr;N/_rgNcaRf*/Rr;N/_rgNcaRf*/t +r;N/_rk/1.Rf*/Rr;N/_rgNcaRf*/Rr;N/_rgNcaRf*/8r;M6ErdaqGJGfCsr;M6ErdaqGJGfDZ +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_G +kj7d9oZ$h.Rf*/Rr;N/_rgNcaRf*/Rr;N/_rgNcaRf*/Rr;N/_rgNcaRf*/Rr;OA,rgNca]_qbt +r;OA,rgNca]_qbZr;N/_rgNcaJGfCsr;M6ErdaqGJGfCsr;M6Erk/:2s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n,2gtr;N/_rgNcaRf*/R +r;N/_rgNcaRf*/Rr;N/_rgNcaRf*/Rr;OA,rgNca]_qbtr;OA,rgNcaRf*/tr;N/_rdaqGRf*/8 +r;N/_rdaqGJGfCsr;M6Erdaq=EW#gKs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s6/h<kj7d9oZ$h.Rf*/Rr;N/_rgNcaRf*/8r;N/_rgNcaJGfD8 +r;N/_rgNcaRf*/Rr;OA,rgNcaRf*/tr;N/_rgNcaRf*/Rr;N/_rgNcaJGfCsr;M6EoPsg.JGfCs +r;M6Erk/:2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+IoC_>6n,2Ojr;N/_rdaqGRf*/8r;N/_rgNcaJGfD8r;M6ErgNcaJGfD8r;N/_rgNcaRf*/R +r;OA,rgNcaRf*/tr;N/_rdaqGJGfCsr;M6ErdaqGJGfCsr;M6Erdaq=EW#gKs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6/h<kj7d9oZ$h.JGfD8 +r;M6ErgNcaJGfCsr;N/_rdaqGRf*/8r;N/_rdaqGRf*/Rr;N/_rgNcaRf*/Rr;N/_rgNcaRf*/8 +r;N/_rdaqGJGfD8r;M6EoPsg.JGfCsr;M6Erk/:2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA*q=n+Z23r;M6ErgNcaJGfD8r;M6ErgNcaJGfCs +r;M6ErgNcaJGfD8r;N/_rgNcaRf*/Rr;N/_rgNca]_qbtr;N/_rgNcaJGfCsr;M6ErdaqGJGfCs +r;M6ErdaqGJGfDZs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<726kj7d9oZ$h.JGfCsr;N/_rdaqGJGfCsr;M6ErgNcaJGfCsr;N/_rdaqGRf*/R +r;N/_rgNcaRf*/Rr;N/_rgNcaRf*/8r;M6ErdaqGJGfCsr;M6ErdaqGJGfCsr;M6Erk/:2s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA*Y-kPXtl +r;N/_rdaqGJGfD8r;M6ErgNcaJGfCsr;M6ErgNcaJGfD8r;M6ErgNcaRf*/Rr;N/_rgNcaRf*/R +r;N/_rdaqGJGfCsr;N/_rdaqGJGfCsr;M6ErdaqGJGfDZs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7d9oZ$h.Rf*/8r;N/_rdaqGJGfCs +r;M6ErdaqGRf*/8r;M6ErdaqGRf*/Rr;N/_rgNcaRf*/Rr;N/_rgNcaRf*/8r;M6ErdaqGJGfCs +r;M6ErdaqGJGfCsr;M6Erk/:2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_>6n,2Ojr;M6ErgNcaJGfCsr;N/_rdaqGRf*/8r;M6ErgNcaRf*/8 +r;N/_rdaqGRf*/Rr;N/_rgNcaRf*/Rr;N/_rdaqGJGfCsr;M6Erdaq=EW#HKr;M6ErdaqGJGfDZ +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6/h< +kj7d9oZ$h.JGfCsr;M6ErgNcaJGfCsr;M6ErdaqGRf*/8r;M6ErgNcaRf*/Rr;M6ErgNcaRf*/R +r;N/_rgNcaRf*/8r;M6ErdaqGJGf%Zr:G",oPsg.JGfCsr;M6Erk/:2s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA*Y-kPXtlr;N/_rdaqGJGfCs +r;M6ErgNcaJGfD8r;M6ErgNcaJGfD8r;M6ErgNcaRf*/Rr;M6ErgNcaRf*/Rr;M6ErdaqGJGf%Z +r;M6EoPsg$EW#fdr;M6Erdaq=EW#gKs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<726kj7d9oZ$h.JGfCsr;M6ErdaqGJGfCsr;N/_rdaqGJGfD8 +r;M6ErgNcaJGfD8r;M6ErgNcaRf*/Rr;M6ErgNcaJGfCsr;M6Erdaq=EW#HKr:G",oPsg.JGfCs +r;M6Erk/:2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+QpA*q=n,2Ojr;M6ErdaqGJGfCsr;M6ErdaqGJGfCsr;N/_rdaqGJGfD8r;N/_rgNcaRf*/R +r;M6ErgNcaRf*/Rr;M6Erdaq=EW#HKr:G",oPsg$EW#HKr;M6Erdaq=EW#gKs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6/h<kj7d9m)8i$JGfCs +r;M6ErdaqGJGfCsr;N/_rdaqGJGfCsr;N/_rdaqGJGfD8r;M6ErgNcaJGfD8r;M6ErdaqGJGf%Z +r;M6EoPsg$EW#HKr:G",rdaq=EW#HKr;M6Erk/:2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n,2Ojr;M6ErdaqGJGfCsr;M6ErdaqGJGfCs +r;N/_rdaqGRf*/8r;N/_rdaqGRf*/8r;N/_rdaqGRf*/Rr;M6Erdaq=EW#HKr8qbloPsg$EW#HK +r;M6EoPsg$EW#gKs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<726kj7d9m)8i$JGfCsr;M6ErdaqGJGfCsr;M6ErdaqGJGfD8r;M6ErgNcaJGfD8 +r;M6ErgNcaJGfCsr;M6ErdaqGJGf%Zr:G",oPsfkCAd^Dr:G",rdaq=EW#HKr:G",rk/:2s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA*q=n,2Oj +r;M6ErdaqGJGfCsr;M6ErdaqGRf*/8r;N/_rdaqGRf*/8r;N/_rdaqGJGfCsr;N/_rdaqGRf*/8 +r;M6EoPsg$EW#HKr8qblk%ahdEW#HKr;M6EoPsfqG5V?Ps8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7d9m)8i$JGfCsr;M6ErdaqGJGfCs +r;M6ErdaqGRf*/8r;N/_rdaqGJGfCsr;N/_rdaqGJGfCsr;M6ErdaqGJGf%Zr:G",k%ahVCAd4/ +r:G",oPsg$EW#HKr8qblrk/:2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_>6n,2Ojr;M6ErdaqGJGfCsr;M6ErdaqGRf*/Rr;M6ErgNcaJGfCs +r;M6ErdaqGJGfCsr;N/_rdaqGRf*/8r;M6EoPsg$EW"s6r8qblk%ahdEW#HKr:G",oPsg$EW#gK +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6/h< +kj7d9m)8i$JGfCsr;M6ErdaqGJGfD8r;M6ErdaqGRf*/8r;M6ErgNcaJGfCsr;M6ErdaqGJGfCs +r;M6ErdaqGJGebWr:G",k%ahVCAd4/r8qbloPsg$EW#HKr8qblrk/:2s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n,2Ojr;M6ErdaqGJGfCs +r;M6ErdaqGJGfD8r;M6ErgNcaJGfCsr;M6ErdaqGJGfCsr;M6ErdaqGJGfD8r;M6EoPsfkCAd4/ +r8qblk%ahdEW#HKr:G",oPsfqG5V?Ps8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<726kj7d9m)8i$JGfCsr;M6ErdaqGJGfD8r;M6ErgNcaJGfCs +r;M6ErdaqGJGfCsr;M6ErdaqGJGfCsr;M6ErdaqGJGf%Zr8qblk%ahVCAd4/r8qbloPsg$EW#HK +r9SV)rk/:2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+IoC_>6n,2Ojr;M6ErdaqGJGfCsr;M6ErdaqGRf*/8r;M6ErdaqGJGfCsr;M6ErdaqGJGfCs +r;M6ErdaqGJGfCsr;M6EoPsfkCAd4/r8qblk%ahVCAd^Dr9SV)lur=!EW#IKs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726kj7d9m)8i$JGfCs +r;M6ErdaqGJGfD8r;M6ErdaqGJGfD8r;M6ErdaqGJGfCsr;M6ErdaqGJGfCsr;N/_rdaqGJGf%Z +r8qblk%ahLB)Le+r8qbloPsg$EW#HKr9SV)rk/:2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_&&kPX\br;M6ErdaqGJGfCsr;M6ErdaqGRf*/8 +r;N/_rdaqGJGfCsr;M6ErdaqGJGfCsr;M6ErdaqGJGfCsr;M6Elur<hCAd4/r8qblk%ahVCAd^D +r9SV)oPsg$EW#IKs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<[_Gkj7d9m)8i$JGfCsr;M6ErdaqGJGfD8r;M6ErgNcaJGfCsr;M6ErdaqGJGfCs +r;M6ErdaqGJGfCsr;M6ErdaqGJGf%Zr8qblk%ahVCAd4/r8qbloPsfqG5UuPr9SV)rk/:2s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_&&kPX\b +r;M6ErdaqGJGfCsr;M6ErdaqGJGfD8r;M6ErdaqGJGfCsr;M6ErdaqGJGfCsr;M6ErdaqGJGfCs +r;M6Ek%ahVCAd4/r7ko^k%ahVCAdFAr9SV)oPsg$EW#IKs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7d9m)8i$JGfCsr;M6ErdaqGJGfCs +r;M6ErdaqGRf*/8r;N/_rdaqGJGfCsr;M6ErdaqGJGfCsr;M6ErdaqGJGebWr8qblk%ahVCAd4/ +r8qbloPsfqG5UuPr8qblrk/:2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_&&kPX\br;M6ErdaqGJGfCsr;M6ErdaqGRf*/8r;M6ErdaqGJGfCs +r;M6ErdaqGJGfCsr;M6ErdaqGJGfCsr;M6Ek%ah\G5UK;r8qblk%ah\G5U]Mr9SV)oPsfkCAe(D +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726 +kj7d9m)8i$JGfCsr;M6ErdaqGJGfCsr;M6ErdaqGRf*/8r;N/_rdaqGRf*/8r;M6ErdaqGJGfCs +r;M6ErdaqGJGePEr8qblgh-KHCAdFAr8qbllur<nG5U]Mr8qbloZ$q2s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA*Y-kPX\br;M6ErdaqGJGfCs +r;M6ErdaqGJGfCsr;M6ErdaqGRf*/8r;M6ErdaqGRf*/8r;M6ErgNcaJGfCsr;M6Ek%ah\G5UK; +r8qblk%ah\G5UK;r9SV)oPsfkCAd^js8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<726kj7d9m)8i$JGfCsr;M6ErdaqGJGfCsr;M6ErdaqGRf*/8 +r;M6ErgNcaJGfD8r;M6ErdaqGJGfCsr;M6ErdaqGJGePEr8qblgh-KHCAdFAr9SV)k%ah\G5UK; +r7ko^oZ$q2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+IoC_&&kPX\br;M6ErdaqGJGfCsr;M6ErdaqGJGfCsr;M6ErgNcaJGfCsr;N/_rdaqGJGfD8 +r;M6ErgNcaJGfCsr;M6Ek%ahVCAd4/r8qblk%ahVCAd4/r8qblk%ahLB)M:fs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCVi8j)!m)8i$JGfCs +r;M6ErdaqGJGfCsr;M6ErgNcaJGfCsr;N/_rdaqGJGfD8r;M6ErgNcaJGfCsr;M6Erdaq=EW"s6 +r7ko^gh-KHCAd4/r8qblk%ahVCAd4/r7ko^oZ$q2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_&&kPX\br;M6ErdaqGJGfCsr;M6ErdaqGJGfCs +r;M6ErgNcaJGfCsr;N/_rdaqGJGfCsr;N/_rdaqGJGfCsr;M6Egh-K>B)LFrr8qblk%ahVCAck! +r8qblk%ahLB)M:fs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8VHWp%7tRi8j)!m)8i$JGfCsr;M6ErdaqGJGfCsr;M6ErdaqGJGfCsr;N/_rdaqGJGfCs +r;N/_rdaqGJGfCsr;M6ErdaqGJGe27r7ko^gh-K>B)LFrr8qblgh-K>B)Le+r7ko^oZ$q2s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_&&kPX\b +r:G",rdaqGJGfCsr;M6ErdaqGJGfCsr;M6ErdaqGJGfCsr;N/_rdaqGJGfCsr;M6ErdaqGJGfCs +r:G",k%ahD@JnV`r7ko^gh-K>B)LFrr7ko^k%ahLB)M:fs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726kj7d8jMCcnJGf%Zr;M6ErdaqGJGfCs +r;M6ErdaqGJGfCsr;N/_rdaqGJGfCsr;M6ErdaqGJGfCsr;M6Erdaq=EW"<pr7#0Qe7&:)@Jnnm +r7ko^e7&:1B)LFrr7ko^oZ$q2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_&&kPO>Vr:G",rdaqGJGfCsr;M6ErdaqGJGfCsr;M6ErdaqGJGfCs +r;M6ErdaqGJGfCsr;M6ErdaqGJGfCsr:G",e7&:)@Jn>Tr7#0Qe7&:)@JnV`r7#0Qgh-K6@Joc; +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726 +kj7d9m)8hoEW#HKr:G",oPsg.JGfCsr;M6ErdaqGJGfCsr;M6ErdaqGJGfCsr;M6ErdaqGJGfCs +r;M6Erdaq=EW"<pr6/IEb[(.j?2VoPr7#0Qb[(.r@JnV`r7ko^oZ$q2s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n,)1^r:G",oPsg$EW#HK +r:G",oPsg.JGf%Zr;M6ErdaqGJGfCsr;M6ErdaqGJGfCsr:G",rdaq=EW#HKr9SV)e7&:!?2VoP +r6/IEb[(.j?2VoPr6/IEe7&:)@JoGZs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gi8j)!m)8haCAd4/r:G",oPsg$EW#HKr:G",oPsg$EW#HK +r:G",oPsg.JGfCsr;M6EoPsg$EW#HKr:G",oPsfkCAc:]r5;b9b[(.b=o?3@r6/IE`**#^?2VoP +r7#0QoZ$q2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+IoC_>6n,)1^r8qblk%ahdEW#0Hr:G",oPsg$EW#HKr:G",oPsg$EW#HKr:G",oPsg$EW#HK +r:G",oPsfqG5UuPr8qbl`**#V=o>p3r5;b9]N"gI=o?3@r5;b9`**#^?2X?7s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCVi8j(ujMCcVCAd4/ +r8qblk%ah\G5U]Mr9SV)lur<nG5U]Mr9SV)lur=!EW#HKr9SV)oPsfqG5UuPr8qbllur<^B)K;@ +r5;b9`**#V=o>p3r5;b9]N"gA<;a[;r6/IEm)8r(s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-j0)n,)1^r8qblk%ahVCAd4/r8qblk%ahVCAd4/ +r8qbllur<hCAdFAr9SV)lur<nG5U]Mr9SV)k%ah\G5UK;r7ko^]N"gI=o>p3r4H#,]N"gI=o>p3 +r4H#,]N"gQ?2X#Vs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA+(Hp#tc2i8j(tgopY2B)LFrr8qblk%ahVCAd4/r8qblk%ahVCAd4/r8qblk%ahVCAdFA +r8qblk%ahVCAd4/r8qblk%ahD@Jmc;r5;b9]N"gA<;a+"r4H#,]N"gA<;aC.r5;b9m)8r(s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W#r]`8$3s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8;l/r:J#,oU#LARJcDpr9KdKl^@\:RJc]D +r:J#,oZ$h$`r,JKs8W,soZ$q2s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gm.9o.jQGI^kPEu; +r7ko^gh-K>B)LFrr7ko^gh-K>B)LFrr7ko^k%ahVCAd4/r8qblk%ahVCAd4/r8qblk%ahLB)Le+ +r7#0Q]N"gA<;aC.r4H#,Zr$\5<;a+"r3T;uZr$\5<;c'Ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W#rRf)fEr8qblk%ahVCAd4/ +r8qblk%ahVCAd4/r9SV)lur<mRJc]Dr:J#,oZ$q2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r;OA/s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8;l/r;OA/s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,soZ$gaL]#Y1r7#0Qe7&:)@Jnnmr7ko^e7&:)@Jnnmr7#0Qgh-K>B)LFrr8qblgh-K6@Jn>T +r5;b9]N"gA<;a[;r4HkDc%GrDM#,o1qrGTfm-!U!n)39ig"bH\gopY2B)LFrr7ko^gh-K6@Jnnm +r7#0Qgh-K>B)LFrr7ko^gh-K>B)LFrr8qblgh-K>B)LFrr7ko^gh-K.?2V'+r3T;u]N"g9;#ICg +r4H#,Zr$\%9`1tcr3T;um)8r(s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!r;OA,lur<hCAd4/r8qblk%ahVCAd4/r8qblk%ahVCAd4/r8qblk%ahVCAd4/ +r8qblk%ahLB)LFrr7#0Q`**#N<;a[;qV8:PoZ$q2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!r:H?Rk%ahD@JmK/r4H#,e;4%p`rH)=s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8;kbr:G",lur=!QiI*cs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,srk/1.Rf)et +r9SV)lur<nG5V!Ps8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,soZ$gQ?2Wi"r9SV)rgNles8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r;OA,rk/1.]_qcAr;OA/s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8;N/r9VAugopS0YPdFS +r9KdKlur<nG5UK;r9SV)lur<hCAd4/r8qblk%ah\G5V!!r;N/bs8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gm.9o:oC_JAp$D;C +m.9oBpA+(Hp%7tRs8W,kpA+@Sq=j7=r9VB"m)8e^_>;rjqV8:Pj.ZD2U&=5Er9KdKlur<nG5UK; +r9SV)lur<nG5V!!r;OA/s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r9KdKe7&9n=o?KLr6/IEb[(.j?2W2\ +r7#0Qe7&:)@JnV`r7ko^e7&:)@Jnnmr7ko^gh-K>B)LFrr8qblgh-K>B)LFrr6/IE]N"g9;#ICg +r2`TiUe(Eb9`1\Wr3T;u]PQfTX8:&;r7#0Qe7&:)@JnV`r7#0Qe7&:1B)L.er7ko^e7&:1B)LFr +r7ko^gh-K>B)LFrr7ko^gh-K>B)LFrr6/IEZr$\-;#I[sr3T;uXA&Q!;#I[sr2`TiXA&Q!;#K@I +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8;l/r8qblk%ahVCAck! +r8qblgh-K>B)LFrr8qblk%ahLB)Le+r7ko^gh-KHCAck!r7ko^k%ahLB)LFrr7ko^gh-K>B)LFr +r7ko^b[(.Z<;`gkr2`Ti`*)rlYQ+Y&s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r:G",k%ahVCAd4/ +r8qbl`**#>9`1tcr4H#/s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,slur<nG5U]M +r:G",k%ahSU&Y/ms8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r;N/_lur<hCAd4/r8qblk%ahVCAd4/r8qblgh-Tds8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s89f<r7#0Qgh-K>B)LFrr7ko^k%ahdEW#gKs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +r;OA,rk/1$EW#0Hr9SV)lur<nG5U]Mr9SV)lur<nG5UuPr:G",lur=!EW#HKr:H?RrgNca]_qcA +r;OA/s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq=OCVqrGTigopRnM>Y"cr2`TiZr$\==o@&er9SV)lur<hCAdFAr9SV)k%ahVCAdFA +r8qblk%ahVCAd4/r8qbllur<nG5UuPr:G",oPsg.]_qcAs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +r9VB"m)8hg`;AW3r9KdKl^@\2U&=5Er9KdKlur<nG5U^Fkj7crjQGd\\bag[qSe<h]PRMQ;#ICg +r3T;uXA&Pn9`27or5;b9e7&:;CAd4/r9SV)k%ahVCAd4/r8qblk%ahVCAd4/r8qblk%ahVCAd4/ +r8qbloU#LT]`8$3s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8;6%r6/IE`**#V=o?3@r5;b9]N"gI=o?KLr5;b9b[(.j?2VoPr7#0Qe7&:)@JnV` +r7ko^e7&:1B)LFrr7ko^e7&:1B)LFrr7#0Qgh-K6@JnV`r5;b9Zr$\%9`1\Wr1lm]Ue(ER6N!WM +r1lm]Zr$\E?2W2\r6/IEe7&:)@JnV`r7#0Qe7&:1B)L.er7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV` +r7#0Qe7&9n=o>?pr3T;uZr$\%9`1tcr2`TiUe(EZ8Go8Sr2`ThjMClrs8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W#r]_po,r7ko^gh-K>B)L.er7ko^gh-K>B)LFrr7ko^gh-K>B)LFr +r7ko^gh-K>B)LFrr7ko^gh-K>B)LFrr7ko^gh-K>B)LFrr7#0Qe7&:)@Jnnmr7#0Qe7&9n=o>?p +r1lm]XA&Q)<;PCRs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r9SV)k%ahVCAd4/r8qblk%ahVCAd4/r3T;uXA&Pn9`2h3 +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W#`G5UK;r9SV)k%ahVCAdFAr9SV)k%ah[RK*<e +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W#r]_qDg +r8qblk%ahVCAd4/r7ko^k%ahLB)Le+r7ko^k%ahVCAck!r:J#/s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!qrGTk`**#nB)LFr +r7ko^gh-K>B)LFrr7ko^k%ahVCAdFAr;N/bs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,sm)8h^U&=5Er9SV)oPsg$EW#HKr9SV)lur<nG5U]M +r8qblk%ah\G5U]Mr9SV)lur<hCAdFAr9SV)lur<nG5U]Mr9SV)lur<nG5U]Mr:G",lur<nG5U]M +r:G",oU#LJQi-iOr;OA,rk/1.]_qcAr;OA/s8W#r]`8$3s8W,srk/:2s8;l/s8W,srk/1.]_qcA +r;OA,rgNles8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n+thCqSe<hZr$\%9`1tc +r3T;u`**#nB)Le+r9SV)k%ahVCAd4/r8qblk%ahVCAd4/r8qblk%ahVCAd4/r8qblk%ahVCAd4/ +r9SV)lur<nG5U]Mr9SV)lur<nG5V!!r;OA/s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+\s8V`bq=OCVm.9o:oC_JAp$D;C +m.9oBpA+@Sq=j7=r9VB!jMC`S_>N>er8XLKgkYg_L]#Y1r7#0Qgh-KHCAd4/r9SV)lur<hCAdFA +r9SV)lur<hCAd4/r9SV)e;4"/Er<:@r2`TiXA&Q!;#ICgr3T;uXA&Pn9`2h3r7#0Qk%ahVCAd4/ +r8qblk%ahVCAd4/r8qblgh-K>B)LFrr7ko^gh-K>B)Le+r7ko^k%ahLB)Le+r7ko^lur=!`rH)= +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8:oNr5;b9]N"gI=o>p3 +r4H#,]N"gA<;a[;r4H#,`**#V=o?KLr6/IEb[(.r@JnV`r7#0Qe7&:)@JnV`r7#0Qe7&:1B)L.e +r7#0Qe7&:)@JnV`r7#0Qe7&:!?2VoPr4H#,Ue(EZ8Go8Sr1lm]S3m.D6N!oYr6/IEb[(.j?2VoP +r6/IEb[(.r@JnV`r6/IEe7&:)@Jn>Tr7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV`r5;b9XA&Pn9`1tc +r2`TiXA&Pn9`1\Wr1lm]S3m.L8GqMAs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W#hQi,WN +r7ko^e7&:)@JnV`r7#0Qe7&:)@JnV`r7#0Qe7&:1B)LFrr7ko^gh-K>B)LFrr7ko^e7&:)@Jnnm +r7#0Qgh-K>B)L.er7#0Qe7&:)@JnV`r7#0Qb[(.r@JnV`r6/IEe7&9n=o>?pr1$+OUe(Eb9`2P> +r:J#/s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8;l/ +r9SV)gh-K>B)LFrr7ko^k%ahLB)Le+r7ko^k%ah<?2Uctr1lm]Zr$\\U&Y/ms8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8;5,r8qblk%ahVCAd4/r8qblk%ah\G5UK;r8qblgh-KMRK*<es8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r;OA,oU#LBG5UK;r8qblk%ahVCAd4/r7ko^gh-K>B)LFr +r7ko^gh-K>B)L.er7ko^gh-K6@K6B-s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W#0D#DL_r7ko^e7&:1B)LFrr7#0Qgh-K>B)LFr +r7ko^k%ahLB)Le+r8qbllur=+]`8$3s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +qV8:Pe;4%P@JoJ8r9SV)lur<nG5U]Mr9SV)lur<nG5UK;r8qblk%ahVCAd4/r8qblk%ahVCAd4/ +r9SV)k%ahVCAd4/r8qblk%ahVCAd4/r8qblk%ahVCAd4/r8qblk%ahVCAd4/r9SV)k%ah\G5U]M +r9SV)lur<nG5U]Mr9SV)k%ahVCAdFAr9SV)lur<hCAdFAr9SV)lur<hCAd^js8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq=OCVm.9o6m-j2l\ba:%r3T;uUe(Eb9`1tcr4H#,e7&:;CAdFAr9SV)k%ahVCAd4/ +r8qblk%ahVCAd4/r8qblgh-KHCAck!r7ko^gh-K>B)LFrr8qblk%ahVCAdFAr9SV)lur<hCAd4/ +r8qblk%ahLL]$L^r:H?Us8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq=OCVm.9o:oC_JAp#tc2l.NWCgsP?/X89elqSe<h]SQHlEr<:@r2`TiUe(Er<;bln +r8qblk%ahVCAd4/r8qblk%ahVCAd4/r8qblgkYgoG5UK;r8qblk%ahVCAd4/r8qblk%ahVCAb_D +r2`TiXA&Pn9`1tcr2`TiXA&Pn9`27or7ko^k%ahVCAd4/r7ko^gh-K>B)LFrr7ko^e7&:1B)LFr +r7ko^gh-K6@Jnnmr7ko^e7&:1B)LFrr7ko^gh-K>B)LFrr7ko^k%ah\`;fl;s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8:Z-r4H#,]N"gA<;aC.r4H#,]N"gA<;a[;r4H#,]N"gA<;a[; +r5;b9`**#^?2VWDr6/IEb[(.r@JnV`r7#0Qe7&:)@JnV`r7#0Qe7&:)@Jn>Tr6/IEb[(.j?2VoP +r5;b9b[(.b=o?3@r2`TiS3m.D6N!WMr1$+OUe(F%=o?3@r6/IEb[(.j?2VoPr6/IEb[(.j?2VoP +r5;b9b[(.j?2VoPr6/IEb[(.j?2VoPr6/IEb[(.b=o>?pr2`TiXA&Pn9`1DIr2`TiS3m.D6N!?? +r1$+NjMClrs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W#_RJbQCr7#0Qb[(.r@Jn>Tr6/IEe7&:!?2VoP +r6/IEe7&:!?2W2\r7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV` +r6/IEb[(.j?2VoPr6/IEb[(.j?2VoPr6/IEe7&9f<;`gkr1$+OUe(EZ8GohkqV8:Ss8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8;l/r7m)*gh-K6@Jnnmr7ko^gh-K>B)LFr +r7ko^gh-KHCAck!r7ko^]N"g)8Go8Sr3T<#s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r9KdKgh-K>B)LFr +r8qblgh-KHCAd4/r8qbllur<hCAdFAr7m)*e7&:8U&Y/ms8W-!s8W-!s8W-!s8W-!s8W-!s8;MU +r8qblk%ahVCAd4/r8qblk%ahVCAd4/r7ko^gh-K6@Jnnmr7#0Qe7&:)@Jn>Tr7#0Qe7&:)@JnV` +r7#0QoZ$q2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCV +o_/+QpA+@Sq>/mMr4H#,e7&:1B)L.er7#0Qe7&:)@Jnnmr7ko^gh-K>B)LFrr7ko^gh-K>B)LFr +r7ko^k%ah\G5V?.s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8(NSqSe<h`**#nB)Le+r9SV)k%ahVCAdFA +r8qblk%ahVCAd4/r8qblk%ahVCAd4/r8qblk%ahVCAd4/r8qblk%ahVCAck!r7ko^k%ahLB)LFr +r8qblgh-KHCAck!r8qblgh-KHCAck!r8qblgh-K>B)Le+r8qblk%ahVCAdFAr8qblk%ahVCAd4/ +r8qblk%ahVCAd4/r8qblk%ah\G5UK;r9SV)rk/:2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp$D;Cm.9o.jQHB`VYd`@ +r1lm]XA&Pf8GoP_r4H#,gh-KHCAd4/r8qblk%ahVCAd4/r8qblk%ahVCAd4/r8qblk%ahLB)LFr +r7ko^gh-K>B)LFrr7ko^gh-K>B)LFrr8qbllur<hCAd4/r8qblk%ahLB)Le+r8qblgh-KHCAd4/ +r9SV,s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gm.9o6m-j0)n)39i +i8j(t`JOMo9`1\Wr1$+OUe(EZ8Go8Sr2`TiUe(EZ8Go8Sr4H#,gh-K>B)LFrr8qblgh-KHCAck! +r8qblgh-KHCAd4/r8qblk%ahLL]$:Lr7m)*k%ahLB)Le+r8qbl]N"g19`1\Wr2`TiXA&Pn9`1\W +r6/IEgh-KHCAck!r7ko^gh-K>B)LFrr7#0Qgh-K6@Jnnmr7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV` +r7ko^gh-K>B)L.er7#0Qgh-K6@JnV`r7ko^gh-KV`rH)=s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8:Z- +r4H#,]N"gA<;aC.r4H#,]N"gA<;aC.r4H#,]N"gA<;aC.r4H#,]N"gA<;a[;r5;b9`**#V=o?KL +r6/IEb[(.j?2W2\r6/IEb[(.j?2VoPr6/IEb[(.b=o?3@r5;b9`**#V=o?3@r4H#,`**#N<;a+" +r1$+OS3m.D6N!WMr5;b9`**#V=o?3@r5;b9`**#V=o?3@r5;b9`**#V=o?3@r5;b9`**#^?2VWD +r6/IEb[(.b=o?KLr4H#,Ue(EZ8Go8Sr1$+OS3m.L8GnuEr1$+OS3m.D6N#l;s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W#_RJbQCr6/IEb[(.j?2VoPr6/IEb[(.j?2VWDr6/IE`**#^?2VWDr6/IEb[(.j?2VoP +r7#0Qe7&:!?2W2\r7#0Qe7&:!?2W2\r7#0Qe7&:!?2VoPr6/IEb[(.j?2VoPr5;b9b[(.j?2VoP +r6/IE`**#^?2VWDr5;b9`**#F;#HhMr1$+OPX55C8GoP_qV8:Ss8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8;N/r7#0Qb[(.r@JnV`r7#0Qe7&:)@JnV`r7ko^gh-K>B)LFrr7ko^gh-K>B)L.e +r2`TiS3m.L8Gp,:s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Ym)8hO@JnV`r7#0Qgh-K6@Jnnmr7ko^gh-K>B)Le+ +r7ko^k%ahVCAd4/r7ko^e7&78_>jQ8s8W-!s8W-!s8W-!s8W,sgh-K>B)LFrr7m)*gh-K>B)L.e +r7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV`r6/IEe7&:!?2VoPr6/IEb[(.j?2W2\s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gm.9o6m-j0)n*'-,kj7d9]PRMa=o?cX +r7#0Qe7&:)@JnV`r7#0Qe7&:1B)LFrr7ko^gh-K6@Jnnmr7ko^gh-K>B)LFrr7ko^gh-KHCAd4/ +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8Vi[kPE]4r3T;u`**#nB)Le+r8qblk%ahVCAd4/r8qblk%ahVCAd4/r7ko^k%ahLB)Le+ +r8qblgh-K>B)LFrr7ko^gh-K>B)LFrr7ko^gh-K>B)LFrr7ko^gh-K>B)LFrr7ko^gh-K>B)LFr +r7ko^gh-K6@Jnnmr7ko^gh-K>B)LFrr8qblgh-KHCAd4/r7ko^k%ahLB)Le+r8qblk%ahVCAd4/ +r8qblk%ahVCB+>6s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+(Hp$D;Ckj7crjQHBYM>X/?r1lm]Ue(ER6N!WMr4H#,e7&:;CAck! +r8qblgh-K>B)Le+r7ko^k%ahLB)LFrr7ko^gh-K>B)LFrr8qblgh-KHCAck!r7ko^gh-K>B)LFr +r7ko^gh-KHCAd4/r7m)*k%ahVCAck!r7ko^gh-K>B)Le+r7ko^gh-KHCAck!r9KdNs8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mm.9o6m-ilnkLnYIg"bH;gtp`>hXA+;r1lm]S3m.D6N!?? +r1$+OUe(EZ8GnuEr1$+OS3m.d<;bN`r7ko^gh-K>B)LFrr7ko^gh-K>B)LFrr7ko^gh-K>B)LFr +r8qblk%ahVCAck!r7m)*k%ahLB)K;@r1lm]Ue(Eb9`1DIr3T;ue7&:;CAd4/r7ko^gh-K6@JnV` +r7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV`r7#0Qb[(.j?2W2\r7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV` +r7#0Qe7&:!?2W2\r7#0Qj.ZMQs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8:oNr5;b9]N"gA<;aC.r4H#,]N"g9;#I[s +r3T;uZr$\-;#I[sr3T;u]N"gA<;aC.r5;b9]N"gA<;a[;r5;b9`**#V=o?3@r6/IE`**#^?2VoP +r5;b9`**#V=o?3@r5;b9`**#V=o>p3r4H#,]N"gA<;a+"r4H#,]N"g9;#HhMr00MFS3m.d<;aC. +r4H#,`**#N<;a[;r4H#,]N"gA<;aC.r4H#,]N"gA<;aC.r4H#,`**#V=o?3@r5;b9`**#F;#I+[ +r1$+OUe(ER6N!??r1$+OPX4o!2Z/e*r1$+MgopbXs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W#h`r+)6r6/IEb[(.j?2VWD +r5;b9`**#V=o?3@r5;b9`**#V=o>p3r5;b9]N"gI=o?3@r5;b9b[(.b=o?3@r6/IE`**#^?2VoP +r6/IEb[(.j?2VoPr6/IEb[(.b=o?3@r5;b9`**#V=o?3@r5;b9`**#V=o?3@r5;b9`**#V=o?3@ +r5;b9`**#>9`1DIr00MFPX55;6N!WMqrGTns8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8;6%r7#0Q`**#^?2VoP +r6/IEb[(.j?2VoPr7#0Qe7&:)@JnV`r7m)*e7&:1B)L.er7ko^gh-K&=o=dVr1$+OUe(CD_>jQ8 +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+Em-j]8kPWSWr7#0Qb[(.r@JnV`r7#0Qe7&:)@Jnnmr7ko^gh-K>B)L.er7ko^e7&:1B)LFr +r7#0Q`*)rlYQ+Y&s8W-!s8W-!s8:Z-r7#0Qgh-K6@JnV`r7#0Qe7&:)@JnV`r6/IEe7&:!?2VoP +r6/IEb[(.j?2VWDr6/IEb[(.j?2VoPr6/IE]N"q2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\kj7d%m-ilnkMYFai8j(ZjQG[Lao&56r6/IEb[(.r@Jn>Tr7#0Qe7&:)@Jnnm +r7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV`r7#0Qgh-K6@Jnnmr7ko^oZ$q2s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8Vi[kPE/Sr2`Ti]N"gaB)Le+ +r7ko^gh-K>B)LFrr7ko^gh-K6@Jnnmr7#0Qgh-K6@Jnnmr7ko^e7&:1B)L.er7ko^e7&:1B)LFr +r7ko^e7&:1B)L.er7ko^e7&:)@JnV`r7#0Qe7&:1B)L.er7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV` +r7#0Qgh-K>B)LFrr7ko^gkYg_B)Le+r7m)*k%ahLB)LG>r7ko^gh-KHCAckBr9SV,s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp$D;C +kj7d#gt_h?M#=&>r1$+OS3m.D6N!??r2`Tie7&:1B)LFrr7ko^k%ahLB)LFrr7ko^gh-K>B)LFr +r7ko^gh-KHCAck!r7ko^gh-K>B)LFrr7ko^gh-K>B)LFrr7#0Qgh-K>B)LFrr7ko^gh-KHCAck! +r7ko^gh-K>B)LFrr7ko^gh-K>B)LFrr7ko^gh-K>B)LFrr:J#/s8W-!s8W-!s8W-!s8W-!s8W-! +m.9o:oC_&&kMYFag"bH;gtpK/f$`(!daZk:]T2o[6N!??r1$+OS3m.D6N!??r1$+OS3m.D6N!?? +r2`Tib[(.r@JnV`r7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV`r7#0Qgh-K6@Jnnmr7ko^k%ahLB)LFr +r8qblZr$[r8Go8Sr1$+O]N"gaB)LFrr7ko^e7&:1B)L.er7#0Qe7&:)@JnV`r6/IEe7&:!?2W2\ +r6/IEb[(.j?2VoPr6/IEb[(.j?2VoPr7#0Qe7&:)@Jn>Tr6/IEb[(.j?2VoPr6/IEb[(.j?2VoP +r7#0Ts8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8;N/r4HkD]N"gA<;aC.r4H#,]N"g9;#I[sr4H#,Zr$\-;#I[sr3T;uZr$\-;#I[s +r4H#,Zr$\5<;aC.r4H#,]N"gA<;aC.r5;b9]N"gA<;a[;r4H#,`**#N<;a[;r4H#,]N"gA<;aC. +r4H#,Zr$\-;#I[sr3T;uZr$\-;#I[sr3T;uXA&P^6N!??r4H#,]N"gA<;a+"r4H#,Zr$\5<;a+" +r3T;uZr$\-;#It*r4H#,]N"gA<;aC.r4H#,]N"gA<;a[;r3T;uS3m.D6N!WMr1$+OS3m.D6M$*n +o8>NuM`1L'6Mf39s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8:ATr5;b9`**#V=o?3@r5;b9`**#N<;a[;r4H#,]N"gA<;aC. +r4H#,]N"gA<;a[;r4H#,`**#N<;a[;r4H#,`**#V=o?3@r5;b9`**#V=o?3@r5;b9`**#V=o?3@ +r5;b9`**#N<;aC.r4H#,]N"gA<;aC.r4H#,`**#N<;aC.r4H#,]N"gA<;aC.r4H#,Zr$[j6M$*n +o8>O)PX55;6Mn-1s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8;6%r7#0Q`**#V=o?3@r5;b9`**#V=o?3@r6/IEb[(.j?2VoP +r69llb[(.r@JnV`r69lle7&:)@JnV`r7#0QXA&P^6N!??r2`Tls8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n*'-,r69ll`**#^?2VoP +r6/IEb[(.j?2W2\r7#0Qe7&:)@JnV`r7#0Qgh-K6@Jnnmr7$Q#e7&:)@JnV`r6/IE]PRH"YQ+Y& +s8W,sm)8hO@JnV`r7#0Qe7&:!?2VoPr6/IEb[(.j?2VoPr6/IEb[(.b=o?3@r5;b9`**#V=o?3@ +r5;b9`**#V=o?3@r69los8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkLnYI +g"bH;gtpK/f%Jj8m&ka6]N"gQ?2VoPr6/IEb[(.j?2VoPr6/IEe7&:)@JnV`r7#0Qe7&:!?2W2\ +r7#0Qe7&:)@JnV`r7$Q#e7&:)@K6B-s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq>/'er1lm]Zr$\M@Jnnmr7ko^gh-K>B)LFrr7ko^gh-K6@JnV` +r7#0Qe7&:)@JnV`r7#0Qb[(.j?2W2\r6/IEe7&:)@JnV`r7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV` +r7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV`r6/IEe7&:)@Jn>Tr7#0Qe7&:)@JnV`r7#0Qgh-K>B)LFr +r7ko^gkYg_B)LFrr7ko^k%ahLB)LFrr7ko^gh-KV`rH)=s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq<[_Gkj7ckgtqM4Nr5D6r00MFPX55362Zs5 +r1$+O]N"gY@JnV`r7#0Qgh-K>B)L.er7$Q#gh-K6@Jnnmr7#0Qe7&:1B)LFrr7#0Qgh-K>B)LFr +r7ko^gh-K6@Jnnmr7#0Qe7&:)@JnV`r7ko^gh-K>L]#q>r7m)*gh-K>B)L.er7ko^e7&:)@JnV` +r7#0Qe7&:)@JnV`r7#0Qe7&:)@JoJ8s8W-!s8W-!s8W-!s8W,coC_JAp#+ooi8j(SgtpK/f#u:^ +bKS5Sbg")F`T41Lr00MFPX55362Zs5r00MFS3m.D6N!'6r00MFPX55K9`3+?r6/IEb[(.j?2VoP +r7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV`r7#0Qe7&:1B)L.er7ko^gh-K>B)K#4r1$+OS3m.l=o@&e +r7ko^gh-K6@Jnnmr7#0Qe7&:!?2VoPr6/IEb[(.j?2VoPr6/IEb[(.j?2VoPr6/IE`**#^?2VWD +r6/IEb[(.j?2VoPr5;b9b[(.j?2VoPr6/IEb[(.b=o?KLr5;b9b[(.b=o?d*s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r69llZr$\-;#I[s +r3T;uZr$\-;#I[sr3T;uZr$\-;#I[sr2`TiZr$\%9`27or3T;uZr$\%9`27or3T;uZr$\-;#I[s +r3T;uZr$\-;#I[sr3T;uZr$\-;#It*r4H#,]N"gA<;aC.r3T;uZr$\-;#ICgr3T;uXA&Pn9`1tc +r2`TiXA&Pn9`1tcr3T;uS3m.\;#I[sr3T;uZr$\-;#ICgr3T;uZr$\-;#I[sr3T;uZr$\-;#It* +r3T;u]N"gA<;aC.r4H#,]N"g9;#HhMr1$+OS3m.D6N!'6r1$+FM`10b2Y2hbr/<f8gopbXs8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8:oN +r4H#,]N"gI=o?3@r4H#,]N"gA<;aC.r4H#,]N"gA<;a+"r4H#,Zr$\-;#I[sr4H#,Zr$\-;#I[s +r3T;u]N"g9;#It*r4H#,]N"gA<;aC.r5;b9]N"gA<;a[;r5;b9`**#V=o>p3r4H#,]N"gA<;aC. +r4H#,]N"gA<;aC.r4H#,Zr$\5<;a+"r3T;uZr$\-;#It*r4H#,XA&PV61^!mqh.$.PX55362\u[ +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8;6% +r5;b9`**#V=o?3@r5;b9`**#N<;a[;r4H#,`**#V=o?3@r5;b9`**#V=o?KLr5;b9`**#^?2VWD +r5;b9b[(.j?2VWDr1$+OPX55362\BOs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA*q=n*'-,i8j)!e;4%@=o?3@r5;b9`**#^?2VWDr6/IEb[(.j?2VoP +r7#0Qe7&:)@JnW2r7#0Qe7&:)@JnV`r7#0Qb[(.r@Jn>Tr5;b9XCh=QVYBH?r7$Q#e7&:"KD`r! +r6/IEb[(.b=o?KLr5;b9`**#V=o?3@r5;b9]N"gI=o?3@r4H#,]N"gI=o>p3r4H#,]N"g9;#gRq +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n)39ig"bH4eCN'tf#u:^bKS5_`4c)E8GpD/ +r5;b9b[(.j?2VoPr6/IEb[(.j?2VoPr6/IEb[(.j?2VoPr6/IEb[(.j?2VoPr6/IEb[(.j?2W2\ +r9KdNs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=rI] +r1lm]SP8t"=o?cXr7#0Qgh-K6@JnW2r7ko^e7&:)@JnV`r7#0Qe7&:)@JnV`r6/IEb[(.j?2VoP +r6/IEb[(.j?2VoPr6/IEb[(.j?2VoPr6/IEe7&:!?2W2\r6/IEe7&:!?2VoPr6/IEb[(.j?2VoP +r6/IEb[(.j?2VoPr6/IEb[(.j?2W2\r6/IEe7&:)@JnV`r7#0Qe7&:)@Jnnmr7ko^gkYgW@JnV` +r7#0Qe7&:)@Jnnmr;OA/s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8VHWp#tc2kj7crjQGaMX7;cdo8>O)PX55362Zs5o8>O)XA&Q1=o?cXr6/IEe7&:)@JnB& +r7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV`r7#0Qe7&:)@JnW2r7#0Qgh-K6M#>b2r7#0Qe7&:)@JnV` +r7#0Qe7&:)@JnV`r7#0Qe7&:1B)L.er7#0Qe7&:)@JnV`r7#0Qe7&:)@JnV`r6/IEe7&:)@JnV` +r6/IEb[(.r@K6B-s8W-!s8V`bq<[_Gkj7ckgtp`>hU9p)`5T^6`PoI%]u7n/]=bi0Uj2g%62Zs5 +o8>O)PX4o!2Z/e*r00MFPX4o!2Y2hbr1$+O`**#V=o?3@r5;b9b[(.b=o?3@r6/IE`**#^?2VoP +r6/IEc%GrD@JnV`r7#0Qe7&:)@JnV`r7#0QXA&P^6N#&5r7#0Qe7&:)@JnV`r7#0Qb[(.j?2VoP +r6/IEb[(.b=o?KLr5;b9`**#V=o?3@r5;b9`**#V=o?3@r5;b9`**#V=o?3@r5;b9`**#V=o?3@ +r5;b9`**#V=o?3@r5;b9`**#V=o?3@r5;b9`**#nL]@DSs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r:J#,]PRMI9`1tcr2`TiXA&Pn9`1tcr2`TiXA&Pn9`1tc +r1lm]XA&Pn9`1\Wr2`TiXA&Pf8GoP_r2`TiXA&Pn9`1tcr2`TiXA&Pn9`1tcr2`TiXA&Pn9`1tc +r3T;uXA&Q!;#ICgr3T;uZr$\%9`27or2`TiXA&Pn9`1\Wr2`TiUe(EZ8Go8Sr2`TiUe(Eb9`1tc +r2`TiXA&Pn9`1tcr2`TiXA&Pn9`1tcr2`TiXA&Pn9`1tcr3T;uZr$\-;#I[sr4HkD]N"gA<;aC. +r2`TiPX55362Zs5r00MFPX55361^!mo8>NuM`1Kt62]5gs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r69llZr$\-;#I[sr4H#,]N"g9;#It* +r3T;uZr$\-;#I[sr3T;uZr$\-;#ICgr3T;uXA&Pn9`1tcr3T;uXA&Pn9`27or3T;uZr$\-;#I[s +r4H#,Zr$\5<;aC.r4H#,]N"gA<;aC.r4H#,]N"gA<;aC.r3T;uZr$\-;#I[sr3T;uZr$\-;#I[s +r3T;uZr$\-;#I[sr3T;uZr$\-;#It*r3T;uPX4o!2Z&.go8>O)PX55CD?'Y9s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,rjMCc,<;aC.r4H#,]N"gA<;aC. +r4H#,]N"gA<;aC.r4H#,]PRMa=o?3@r5;b9`**#V=o?3@r5;b9`**#ND#D4Sr5;b9`**#F;#H88 +o8>O)PX53-_>jQ8s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_G +i8j(ZjQGdXfDN9\r4H#,]N"gI=o?3@r5;b9`**#V=o?3@r6/IEb[(.j?2VoPr6/IEe7&:!?2Vs" +r7#0Qb[(.kKD`r!r6/IEb[(.Z<;_\<r1$+9gt_hWM#>J&r6/IEb[(.j?2VWDr5;b9`**#V=o?3@ +r5;b9`**#N<;a[;r4H#,]N"gA<;aC.r4H#,]N"gA<;aC.r3T;ue;4/)s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<726i8j(SgtpK/f%A3i`5T^=bg")F`T41Lr2`Tib[(.b=o?3@r6/IE`**#V=o?3@ +r6/IE`**#V=o?KLr5;b9`**#^?2VWDr6/IEb[(.kKD`r!r6/IEc%H&rs8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq<726n%=\YPX55C8GpD/r6/IEb[(.r@Jn>T +r6/IEe7&:!?2W2\r69lle7&:"KD`r!r7#0Qb[(.j?2VoPr5;b9`**#V=o?3@r5;b9`**#V=o?3@ +r6/IE`**#^?2VWDr6/IE`**#V=o?KLr5;b9b[(.b=o?KLr5;b9`**#V=o?3@r5;b9`**#V=o?3@ +r6/IE`**#^?2VoPr6/IEc%GrD@JnV`r7#0Qc%GrD@Jn>Tr7#0Qb[(.r@JnB&r7#0Qe7&CWs8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp$D;Ckj7crjQG4OhW1he +r00MFPX55;6M$*no8>O)PX55S;#JOCr6/IEb[(.j?2VoPr6/IEb[(.j?2VoPr6/IEc%Gr<?2Vs" +r6/IEb[(.kKD`r!r6/IEe7&:)@JnV`r7#0Qe7&:)@JnB&r6/IEb[(.j?2VoPr7#0Qe7&:)@JnW2 +r7#0Qe7&:"KD`r!r6/IEb[(.j?2VoPr6/IEb[(.j?2VWDr5;b9b[(.b=o?KLr5;b9c%Grd`rH)= +m.9o6m-iW_hV$]@bKS5L`PoI%]t:qj]=bha['[3I[+M1!o8>NuM`10b2Y2hbo8>NuM`10b2Z/Ls +o8>O(KKB%$6N"c)r4H#,`**#N<;aC.r5;b9]PRMa=o?3@r4HkD`**#^?2VWDr5;b9b[(.kKD`r! +r7#0Qc%GrD@Jm3#r5;b9b[(.j?2VoPr6/IE`**#^?2VWDr5;b9`**#V=o?3@r5;b9`**#V=o?3@ +r5;b9`**#N<;a[;r4H#,]N"gA<;aC.r4H#,]N"gA<;a[;r4H#,`**#N<;a[;r4H#,]N"gI=o>p3 +r4H#,]N"gA<;aC.r4H#,oZ$q2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,rjMCbq9`1tcr1lm]Ue(Eb9`1tcr1lm]XA&Pf8Go8Sr1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8GnuE +r1lm]Ue(EZ8GnuEr1lm]S3m.D6N!??r1lm]S3m.L8Go8Sr1lm]XA&Pf8GoP_r2`TiXA&Pf8GoP_ +r1lm]XA&Pf8Go8Sr1lm]S3m.D6N!WMr1$+OS3m.L8Go8Sr1lm]Ue(Eb9`1\Wr1lm]Ue(EZ8Go8S +r1lm]Ue(EZ8GoP_r2`TiXA&Pn9`1tcr2aN.Zr$\-;#I[sr3T;uZr$[r8Gn]<r/<f:N'7*'61^!m +qh.$-KKB!`3r=Rkqh.$,e?JuQs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,s]PRMI9`27or3T;uZr$\-;#I[sr3T;uXA&Pn9`27or2`TiXA&Pn9`1tc +r2`TiUe(Eb9`1\Wr2`TiXA&Pf8GoP_r2`TiUe(Eb9`1tcr2`TiXA&Pn9`1tcr2`TiZr$\-;#I[s +r3T;u]N"g9;#I[sr3T;uZr$\-;#I[sr3T;uZr$\-;#I[sr3T;uXA&Pn9`1tcr2`TiXA&Q!;#I[s +r3T;uZr$\-;#It*r1$+NKKB!`3r=Rkr/<f:S3m/?`;fl;s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r69llZr$\-;#I[sr3T;uZr$\-;#I[sr3T;uZr$\-;#It* +r4H#,]N"gA<;aCFr4H#,`**#ND#CqFr5;b9]PRMa=o?3@r4H#,Ue(*82Y2hbr1$+Rs8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!kj7d%m-iW_hW`SBr4HkDZr$\5<;aC. +r4H#,]N"gA<;aC.r4H#,]N"gA<;a[;r5;b9`**#^?2DNsr6/IEb[(.j?2VWDr6/IE`**#^?2V?7 +r00MFPX4NVX4c:bk1nbg`JON2=o?3@r5;b9`**#V=o?3@r4H#,`**#N<;aC.r4H#,]N"gA<;aC. +r3T;u]N"g9;#I[sr3T;uZr$\-;#ICgs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!kj7d%m-iW_hU9p) +bKS5L`Pod7`Pfa7`k8n\S3m.d<;a[;r5;b9`**#V=o?3@r5;b9`**#V=o?3@r5;b9`**#^?2VWD +r6/IE`**#V=o?KLr5;b9`**#V=o@'1s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<[_Gq;gN)Sm;2P4oCO1r4H#,`**#V=o>pKr5;b9`**#V=o?KLr5;b9b[(.j?2VoP +r6/IEb[(.j?2VWDr5;b9`**#V=o?3@r5;b9`**#N<;a[;r5;b9`**#V=o?3@r5;b9`**#V=o?3@ +r4H#,`**#N<;a[;r4H#,`**#N<;a[;r5;b9]N"gI=o>p3r5;b9]N"gI=o?3@r5;b9`**#^?2VoP +r6/IEc%Gr<?2VoPr6/IEb[(.j?2VoPr5;b9b[(.j?2WK5s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7crjQGI^kLe#%r1-OZPX4o!2Z/Lso8>NuM`1L'6N"Jq +r5;b9b[(.b=o?3@r6/IE`**#^?2VWDr6/IE`**#V=o?3@r5;b9`**#V=o?3@r6/IE`**#^?2VoP +r6/IEc%Gr<?2Vs"r6/IEb[(.j?2VoPr6/IEb[(.kKD`r!r69llb[(.j?2VoPr6/IEb[(.b=o?3@ +r6/IE]PRMa=o>p3r5;b9`**#V=o?3@r5;b9`**#V=o?3@r5;b4m-!U!n)39ig"bH4eCMgec+CX% +['[3I['Zm8XfJP*X/rGIO_"'A2Y2hbqh.$-KKB!`3qJ7fqh.$%M`1Hc3r=Rkr1$+OZr$\5<;a+" +r3T;u]N"g9;#It*r4H#,]N"gA<;a[;r4H#,`**#V=o>p3r4H#,`**#V=o?3@r5;b9`**#V=o>p3 +r5;b9]N"gI=o?3@r5;b9]N"gI=o>p3r4H#,]N"gA<;aC.r4H#,]N"gA<;aC.r4H#,]N"gA<;a+" +r4H#,Zr$\5<;aC.r4H#,Zr$\5<;a+"r4H#,]N"gA<;aC.r3T;u]N"gA<;aC.r4H#,Zr$\5<;b!n +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VrNYPb1er1-OZUe(EZ8Go8S +r1$+OUe(EZ8GnuEr1lm]Ue(ER6N!WMr1$+OS3m.D6N!??r1$+OS3m.D6N!??r1$+OS3m.D6N!?? +r1$+OS3m.D6N!??r1$+OS3m.D6N!??r1lm]S3m.L8Go8Sr1lm]S3m.L8GnuEr1$+OS3m.D6N!?? +r1$+OS3m.D6N!??r1$+OS3m.D6N!WMr1$+OS3m.L8GnuEr1$+OS3m.D6N!WMr1lm]Ue(EZ8GoP_ +r2`TiXA&Pn9`1tcr2`TiXChC39`1tcr1lm]N'6cj2Y2hbo8>NuM`1Hc3r=Rkqh.#sF=Qm?2Z2'\ +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+Wn;#ICg +r2`TiXA&Pn9`1u(r2`TiXA&PfD>^J/r1lm]Ue(Eb9`1\Wr1lm]Ue(EZ8Go8Sr1lm]S3m.L8GnuE +r1lm]Ue(ER6N!WMr1lm]Ue(EZ8Go8Sr1lm]XA&Pf8GoP_r2`TiXA&Pn9`1u(r3T;uZr$\%9`1tc +r3T;uXA&Pn9`1tcr2`TiXA&Pn9`1tcr2`TiXA&Pn9`1tcr2`TiXA&Pn9`27or3T;uZr$\-;#HhM +qh.$-KKB!`3qJ7fr/<f9jMClrs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA+ILkPVtlr2`TiZr$\-;#I[sr3T;uZr$\-;#I[sr3T;uZr$\-;#It*r3T;u]N"g9;#I[s +r4H#,]N"g9;#It*r4H#,]N"gA<;a+"r/<f1M`1Hc3r?:)s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_>6n)iE\g"bH\`JON";#I[sr3T;uZr$\5<;a+"r4H#,Zr$\5<;aC. +r4H#,]N"gAD#D4Sr4HkD`**#V=o>pKr5;b7`JON2=o>pKr4HkDS3m.44m]>!g"bH4eCN'tf)!@B +r4H#,]N"gA<;aC.r4H#,]N"gA<;aC.r4H#,]N"g9;#I[sr3T;uZr$\-;#I[sr3T;uXA&Pn9`27o +r2`TiZr$VSYQ+Y&s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n)39idaZjreCMgec,@T?`5T^6`Ppo@I/Kd2 +r5;b9]N"gI=o>p3r5;b9`**#N<;a[;r5;b9`**#V=o?3@r5;b9`**#ND#D4SqSe<h`**#V=o-*o +r5;b<s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7d#gt_Fk>k<k3 +r/<f:Zr$\5<;aC.r4H#,]N"gI=o>pKr5;b9]PRMa=o?3@r5;b9`**#V=o?3@r5;b9`**#V=o?3@ +r5;b9]N"gA<;aC.r4H#,]N"gA<;aCFr4H#,]N"gA<;aC.r4H#,]N"gA<;aC.r4H#,]N"gA<;aC. +r4H#,Zr$\5<;a+"r3T;u]N"g9;#It*r4H#,]N"gI=o?3@r5;b9`**#V=o?3@r5;b9`**#V=o?3@ +r5;b9]PRMa=o?3@r5;b9oZ$q2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +m.9o6m-ilnkLnYIf>PB#PX4o!2Y2hbo8>NuM`1Hc3rG4.r5;b9`**#V=o?3@r5;b9`**#V=o>pK +r5;b9]PRMa=o>pKr5;b9]PRMa=o>pKr4H#,]PRMa=o>pKr5;b7`JON2=o?KLr5;b9b[(.b=o?KL +r5;b9c%Gr4=o?KLr6/IEb[(.j?2VoPr5;b9`**#ND#D4Sr4HkD`**#V=o>pKr5;b9]N"gA<;aC. +r4H#,]N"gA<;aCFr4H#,`**#N<;a[;q:sBUjQFt@f#u:^]=bhh]Y1AIXfJP*Unsl_V50o`Us+s3 +r/<f9HoV"V3r=Rkqh.$-KKB!`3r=Rkqg:BiF=R3Q62\)dr3T;uXA&Q!;#ICgr3T;uZr$\-;#I[s +r4H#,Zr$\-;#I[sr3T;u]N"gA<;a+"r4H#,]N"gA<;a+"r4H#,]N"g9;#It*r4H#,]N"g9;#It* +r3T;uZr$\5<;aC.r3T;u]N"g9;#I[sr3T;uZr$\-;#I[sr3T;uZr$\-;#I[sr3T;uZr$\-;#I[s +r3T;uZr$\-;#I[sr3T;uZr$\-;#I[sr3T;uZr$\-;#I[sr3T;uZr$\m`rH)=s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8(6Lr1$+OPX55;6N!'6r00MFPX55;6N!??r00MFS3m.<62[6> +r00MFS3m.<62[6>r00MFS3m.<62[6>r00MFPX55362Zs5r00MFPX55;6N!'6r00MFPX55362Zs5 +r00MFS3m.<62[6>r00MFS3m.<62[6>r00MFS3m.<62Zs5r00MFPX55362Zs5r00MFPX55362Zs5 +r00MFS3m.<62[6>r1$+OPX55;6N!??r1$+OS3m.D6N!WMr1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go8S +r1lm]Ue(ER6M$*nqg:C#KKA^_2Z&.gqh.#sF=R0@3r=:aqh.$,bbkF?s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s88rlr1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go8S +r1lm]Ue(EZ8GnuEr1lm]S3m.L8GnuEr1lm]S3m.D6N!WMr1$+OS3m.L8GnuEr1lm]S3m.D6N!?? +r1$+OS3m.L8Go8Sr1lm]Ue(EZ8GoP_r2`TiXA&Pn9`1u(r2`TiXChC39`1tcr2`TiXA&Pf8GoP_ +r1lm]XA&Pf8Go8Sr1lm]XA&Pf8GoP_r2`TiXA&Pn9`1tcr2`TiXA&PV60r\Cqg:BiF=Qm?2Z&.g +qrGTns8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726kj7d6gsQ%q8Go8S +r2`TiUe(Eb9`1tcr2`TiXA&Q!;#I[sr2`TiZr$\-;#I[sr3T;uZr$\-;#I[sr3T;uZr$\-;#I[s +r3T;uZr$[r8Ge'$qh.$-KKB"k_>jQ8s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726 +i8j(Sgtq8<X8K%mr2`TiXA&Pn9`27or2`TiZr$\%9`27or3T;uZr$\-;#I[sr3T;u]N"gA<;aC. +r4HkD`**#ND#CqFr5;b9]N"g!6MlEsnXa"6eCMgec-+>UbKS5nbfTdi;#I[sr3T;uZr$\-;#I[s +r3T;uZr$\-;#I[sr3T;uZr$\%9`27or2`TiXA&Pn9`1tcr2`TiXA&Pn9`1tcr2`Tls8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<[_Gi8j(SgtpK/f#u:^`5T^6`Pod7`Q#R%r0:.WZr$\5<;aC.r4H#,]N"gA<;aC. +r4H#,]N"gA<;aC.r4H#,`**#ND#D4Sr5;b9`**#ND#D4Sr5;b9]N"gRKE(uOs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7d%m-iW_hXR1Bqh.$-KKB%49`27or3T;uZr$\-;#@V? +r3T;uZr$\5<;aC.r4H#,]PRMa=o>pKr5;b9`**#ND#D4Sr4HkD]N"gA<;aC.r4H#,]N"g9;#It* +r3T;uZr$\-;#I[sr3T;uZr$\-;#ICgr3T;uZr$\%9`27or2`TiZr$\-;#I[sr2`TiZr$\-;#I[s +r3T;uZr$\-;#It*r4H#,]PRMa=o>pKr5;b9`**#V=o?3@r4H#,]PRMa=o>p3r5;b9]N"gA<<*!u +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-ilnkLnYIg"bH:]XIEi2Y2hb +o8>NuM`1Hc3qJ7fr00MF]N"gA<;aC.r4H#,]N"gA<;aCFr4H#,]N"gAD#CqFr4H#,]N"g9;#It* +r4H#,Zr$\5<;aC.r4H#,]PRMa=o?3@r4HkD`**#V=o>pKr5;b9]PRMa=o>p3r5;b9]PRMa=o>pK +r5;b9]PRMa=o>pKr5;b9]PRMa=o>pKr4H#,]N"gA<;aC.r4HkDZr$\5<;aC.r4H#,]N"gA<;aC. +r4H#,]N"gA<9`)HdaZjkbg!c4]sP/RX/rFnSt)UQUnji_Unsm2O_"?:3;\@iluX`SHoUJ7.dV7, +o8>NnF=Qm?2Z%k]r/<f:XA&Pn9`1tcr2`TiXA&Pn9`1tcr3T;uXA&Q!;#ICgr3T;uZr$\%9`1tc +r2`TiZr$\%B)J`(r3T;uZr$\-;#I[sr3T;uZr$\-;#I[sr3T;uZr$\-;#ICgr3T;uXA&Q!;#ICg +r3T;uXA&Q!;#I[sr3T;uXA&Q!;#ICgr2`TiXA&Pn9`1tcr2`TiXA&Pn9`1tcr3T;uXA&Pn9`1tc +r3T;uXA&Pn9`1tcr2`TiXA&Pn9`1tcqTPi:s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +r9VB"Pu7ID62Zs5r00MFPX55362Zs5r00MFPX55+4oCO1r00MFN'7*'62Z[)r00M=M`1Kl4oC7% +r/<f:N'7)t4oCO1o8>O)N'7)t4oCO1r/<f:PX55362Zs5r00MFPX55362Zs5r00MFPX55362Zs5 +r00MFPX55362Zs5r00MFPX55+4oCO1r/<f:PX55362Zs5r00MFS3m.<62Zs5r1$+OPX55362Zs5 +r1$+OPX55;6N!??r1-OZSP8sP9`1GTr1-OZUe(ES9`1\Wr1lm]Ue(EZ8Go8Sr1$+NHoV"N3;\@i +qh.$-KKAIA.f4l[luX`SHoV"N3;Ujrs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!qm:DAS3m.D6N!??r1lm]SP8sW8Go#Pr1lm]SP8sO6N!??r1$+OS3m.D6N!?? +r00MFS3m.<62[6>r00MFS3m.D6N!'6r1$+OS3m.<62[6>r1$+OS3m.D6N!??r1$+OS3m.L8Go8S +r1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8GoP_ +r1lm]XA&Pf8GoP_r2`TiUe(Eb9`1\Wr1lmTM`0pD.f4TQluX`SHoU_U2Y?_=s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mkj7crjQGI^kLnYIqSe<hUe(EZ8Go8Sr1lm]Ue(Eb9`1\W +r2`TiXA&Pn9`1tcr2`TiXA&Pn9`1tcr2`TiXA&Pn9`1tcr2aN.XA&Pn9`27or2`TiN'7&c3;\(_ +r00MIs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQG4OhW`SBr3T;uUe(Eb9`1\W +r2`TiXA&Pf8GoP_r2`TiXA&Pn9`1tcr3T;uZr$\-;#I[sqm:DAZr$\5<;a+"r4H#,]PRMQ;#ICg +qg:BpM`/Mm`QQKMbKS5Sbg">Tc,@T?r4Ij`XA&Q!;#ICgr2`TiXA&Q!;#I[sr2`TiZr$\%9`27o +r2`TiXA&Pn9`1tcr1lm]XA&Pf8Go8Sr2`TiUe(EZ8GhJas8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkLnYI +fZ_O^bg")F`Pfa7`5T^JXIo*B2Z0pYr3T;uZr$\-;#I[sr3T;uZr$Y,Er<RLr3T;u]PRMQ;#ItB +r4H#,]PRMYD#CqFr4H#,]PRMQ;#It*r:J#/s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6T@M +m.9o6m-ilnkLnYIkbX@;HoUJ7.f>f'r3T;uXA&PnB)K#4r2`TiXA&Q!;#I[sr3T;tZuZ)O;#It* +r3T;u]N"g9;#ItBr3T;uZr$\5<;a+"r3T;uZr$\-;#I[sr3T;uXA&Q!;#ICgr3T;uXA&PnB)J`( +r2`TiXA&Pf8GoP_r1lm]XA&Pf8GoP_r1lm]XA&Pn9`1\Wr2`TiUe(Eb9`1tcr3T;uZr$\-;#It* +r4H#,]N"gA<;X%Cr4H#,Zr$\5<;a+"r3T;uZr$\-;#I[sr4HkGs8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_>6n)39ig"bH4eCMXP](:h<o8>NuM`1Hc3p^r<qg:BpM`1L79`2P& +r4H#,Zr$\-;#I[sr3T;uZr$\5<;a+"r3T;uZr$\-;#I[sr3T;uZr$\-;#I[sr3T;uXChC;;#I[s +r3T;u]N"gA<;aCFr4HkD]N"gAD#CqFr4H#+ZuZ)W<;aC.r4HkD]N"gA<;a+"r3T;u]N"g9;#I[s +r3T;uZr$\-;#I[sr3T;uZr$\-;#I[sr3T;uZr$\-;#I[sr3T;tZuZ)O;#I[sr3T;tZuYBRX2Mur +]=bha['Zm8Xe_ehUnsl_V50o`Us+s3o8>NnF=QX!.dV7,qh.#sF=R083:(`:luX`DF=R3Q62[fX +r2`TiXA&Pf8GoP_r1lm]Ue(Eb9`1\Wr2`TiXA&Pf8Go8Sr2`TiUe(EZ8Go8Sr1lm]XA&Pf8Go8S +r1lm]XA&Pf8Go8Sr2`TiXA&Pn9`1tcr2`TiXA&Pf8GoP_r1lm]XA&Pf8GoP_r1lm]Ue(Eb9`1\W +r2`TiUe(Eb9`1\Wr2`TiUe(EZ8GoP_r1lm]Ue(Eb9`1\Wr2`TiXA&Pf8GoP_r1lm]Ue(EZ8GnuE +r1lm]S3m.TB)ho2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W"f9`0i4r/<f:N'7)t4oC7% +r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%o8>NuM`1Hc3qJ7fo8>NuM`10b2Y2hbqh.$%M`1Hc3qJ7f +o8>NuM`1Kl4oC7%r/<f:N'7)t4oCO1r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4oC7% +r/<f:PX55+4oCO1r00MFPX55362Zs5r00MFPX55362Zs5r00MFPX55362Zs5r00MFS3m.<62Zs5 +r1$+OPX55<9`1GTr0:.WSP8sP9`1GTr1-OZSP8sG60r\CluX`DF=QX!.f4TQluX`DF=QX!.dV7, +luX`RbbkF?s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,q`JOMW62Zs5 +r1$+OPX55;6N!'6r1-OZPX55<9`1DIr00MFSP8sG62Zs5r00MFPX55362Zs5r00MFN'7*'62Z[) +r/<f:PX55+4oCO1r00MFPX55362Zs5r1$+OPX55;6N!??r1$+OS3m.E9`1GTr1lm]SP8sWD>^2# +r1lm]Ue(EZ8Go8Sr1-OZUe(ES9`1DIr1lm]S3m.L8Go8Sr1lm]Ue(EZ8GnuEr1lm]Ue(EZ8Go8S +r1lm]Ue(EZ8GnuEqh.#sF=QX!.dV7,qg:C$N'74@s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+Em-ilnkN:RTg"bH4eCN=.hYX[#r1$+OS3m.L8Go8Sr1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go8S +r1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go8Sr1lm]XA&Pf8Go8Sqg:BiF=QX!.f6Sns8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+QpA*Y-kMYFag"bH^[>t0\8Go8Sr1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go8S +r1lm]Ue(EZ8GoP_r1n3-XA&Pn9`1tcr2aN.Zr$\%B)K#4r2`ThHoU_U2V>[NfZ_O^bg")F`QQKM +`5T^=bg#@gYl(Rrr2aN.XA&Pn9`1tcr2`TiXA&Pn9`1\Wr2`TiUe(Eb9`1\Wr1lm]Ue(EZ8Go8S +r1lm]Ue(EZ8Go8Sr1lm]XChM4s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2g"bH4eCN'tf#5PH`5T^6`Pod7`TE.\ +r1lm]XA&Pn9`1tcr2aN.XA&PnB)J`(r3T;uXChC;;#ID,r3T;uZr$\-;#I[sr3T;tZuZ)O;#I[s +r3T;u]PRWJs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o6m-ilnkLnYIdaZk"`4bMZ.f4TQ +r/<f:XA&Pf8GoP_r2`TiUe(Eb9`1tcr1lm]XChC39`1tcr2`TiZr$Y,Er<:@r3T;uXA&Q!;#I[s +r2`TiZr$\%9`1tcr2`TiXA&Pn9`1tcr1lm]XA&Pf8Go8Sr1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go8S +r1lm]Ue(EZ8Go8Sr1$+OUe(EZ8Go8Sr1lm]Ue(EZ8GoP_r2`TiZr$\%B)K#4r3T;uXA&Q!;#I[s +r3T;uZr$\%9`27or3T;uXChC[M#[MTs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#+oo +g"bH;gtpK/f#5PHk)EF.F=R0@3p^r<luX`SHoUJ7.f?)5r2`TiZr$\-;#ICgr3T;uXA&Q!;#ID, +r3T;uZr$\%B)K#4r2aN.XA&PnB)J`(r1n3-Ue(Eb9`1tcr2`TiXA&Pn9`1tcr2aN.Zr$\-;#I[s +r3T;uZr$\%9`27or2aN.XA&Q!;#I[sr3T;uXChC;;#ICgr2aN.Zr$\-;#I[sr3T;uXChC39`1u( +r2`TiXChC39`1u(r1lm]Ui$%29`1tcr2`TiXChC39`1tcqm:C^`PoI%]sP/RUnsl_V50o`Unji_ +Unsm2O_!g#.dV7,qg:BiF=QX!.eAQVluX`KM`1Hc3p^r<o8>O)XA&Pf8GoP_r1lm]Ue(EZ8Go8S +r1lm]Ue(EZ8Go8Sr1lm]Ue(ES9`1GTr1-OZSP8sW8Go#Pr1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go8S +r1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go8Sr1$+OUe(ER6N!WMr1$+OUe(ER6N!WMr1lm]Ue(ER6N!WM +r1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8GnuEr1lm]S3m.D6N!??r1$+OS3m.D6N!??r1$+Om)8r(s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s800Dqh.$.N'7)t4oC7%r/<f9KKB$i4o9mnqh.$-KKB!`3r=Rk +qh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rkqh.$%M`1Hc3qJ7fo8>NuM`1Kl4oCO1 +r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r00MFN'7*'62Z[)r00MFN'7)t4oCO1 +r00MFN'7*'62Z[)r00MFN'7*'62Zs5r00MFPX55362[!Fr1$+OPX55362Zs5r1$+OPX55;6N!'6 +r00MFPu7IL6N!'6r/<f*F=QX!.dV7,qg:BiF=QX!.dV7,luX`DF=QX!.f.Ads8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VoMdJT4pr00MFPX55362Zs5r00MFPX55;6N!'6 +r00MFPX55362Zs5r00MFPX55362Zs5r00MFN'7)t4oC7%r/<f1M`10b2Z/Lsr/<f:N'7*'62Z[) +r00MFPX55362Zs5r00MFPX55362Zs5r00MFSP8sP9`1DIr1$+OSP8sP9`1GTr1-OZSP8sP9`1DI +r1$+OS3m.<62[6>r1$+OS3m.<62[6>r1$+OS3m.D6N!??r1$+OSP8sO6N!WMr1-OZS3m.44m[8? +luX`DF=QX!.dV7,qm:DDs8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2i8j(SgtpK/f$`(! +fZ_Okbffp[D>]njr1$+OS3m.D6N!??r1$+OS3m.D6N!BJr1$+OSP8sO6N!BJr1-OZSP8sP9`1GT +r1-OZSP8sP9`1GTr1-OZUe(EB4m[8?r+n1UF=R+AdJs7Hs8W-!s8W-!s8W-!s8W-!s8VHWp#tc2 +k1nbFgtqnGXSeSTr1$+OS3m.D6N!??r1$+OS3m.D6N!WMr1$+OUe(ER6N!WMr1-OZUe(EZ8Go8S +r1lm]XA&Pn9`1\Wr2`TiUe(B13;\(_fVEc8bg">Tc-+>UbKS5L`Pp$Ec,@T?bKS6/XChC+8GoP_ +r1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go8Sr1lm]S3m.L8GnuEr1$+OUe(ER6N!WMr1$+OUe(EZ8GnuE +r9VB%s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\kj7crjQG4OhU9p)`5T^=bg")F`Pfa7aK268HoV&"8GoP_r1lm]Ue(EZ8GoQ$ +r2`TiXA&Pn9`1tcr2`TiXA&PnB)J`Br2aN.XA&PnB)J`(r2`TiUi$%*8Gqhms8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_&&kLnYIg"bH4eCN9rbN=dbluX`DF=R3a8Go8Sr1lm]Ue(EZ8Go8S +r1n3-Ue(EZ8Go8Sr2`TiXA&PnB)J`(r2`TiXA&PnB)J`(r1lm]XA&Pf8GoP_r1lm]Ue(EZ8Go8S +r1lm]Ue(EZ8Go#Pr1lm]SP8sO6N!BJr1$+OS3m.D6N!??r1$+OS3m.D6N!??r1$+OS3m.D6N!?? +r1$+OS3m.D6N!WMr1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8GoP_r1lm]XA&Pf8GoP_ +r:J#/s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp$D;Ci8j(SgtpK/f$`(!`5T^HPC`(B.dV7, +luX`DF=QX!.dV7,r/<f:XA&Pf8Go8Sr2`TiUe(EbB)JGqr2`TiXA&Pf8GoQ$r2`TiXA&Pf8Go8S +r1lm]Ue(EZ8Go8Sr1lm]Ue(EZD>^2#r2`TiUe(Eb9`1\Wr2aN.Ue(EbB)JGqr2aN.Ue(Eb9`1tc +r2aN.XA&PnB)JGqr2`TiUe(Eb9`1]'r2`TiUi$%29`1tcr1lm]XA&Pf8Go8Sr2`TiUe(EZ8Go8S +r1lm]Ue(EZ8Go8Sr2`TiUe(Eb9`1u(`k8mi['ZX*Unji_Unsl_V50o`Us+s3luX`DF=QX!.dV7, +luX`DF=QX!.dV7,luX`DF=R0@3rGdEr1lm]Ue(EZ8Go8Sr1$+OUe(ER6N!??r1-OZS3m.E9`1GT +r1$+OS3m.D6N!'6r1$+OSP8sP9`1GTr1lm]SP8sW8GnuEr1lm]S3m.D6N!??r1$+OS3m.D6N!?? +r1$+OS3m.D6N!??r1$+OPX55;6N!??r1$+OS3m.D6N!??r1$+OS3m.D6N!??r1$+OS3m.D6N!?? +r1$+OS3m.D6N!??r00MFS3m.D6N!'6r1$+OS3m.<62JO$s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +qUDbHKKB!`3r=Rkqh.$-KKB!X3;\@iqh.$-HoV"V3r=Rkqh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rk +qh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rkqh.$%M`1Hc3qJ7fo8>O)N'7)t4oC7%r/<f:N'6cj2Y2hb +o8>NuM`1Kl4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4oC7% +r/<f:PX55+4oCO1r00MFPX55362[!Fr00MFPX55362Zs5r00MFPX55362Zs5r00MFN'7)t4m[8? +lte*:F=QX!.dV7,lte*:F=QWn.-taulte*H`2s"=s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!r1-OZN'7*'62Z[)r/<f:N'7*'62Zs5r00MFPX55362Zs5r00MFN'7*'62Z[) +r00MFN'7)t4oC7%r/<f:N'7&k3r=Rkqh.$-KKA^_2Z&.go8>O)N'6cj2Z/Lsr/<f:N'7)t4oC7% +r/<f:N'7*'62Z[)r00MFN'7*'62Z[)r00MFPu7I<4oCO1r00MFPX55362[6>r00MFPX55362Zs5 +r00MFPX55362Zs5r00MFPX55362[!Fr00MFSP8sO6N!??r1$+NHoV%F3UCi;luX`DF=QX!.f%lI +s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o.jQG[\gsX^'daZjreCMgec.L7`f>PB#PX55362Zs5 +r00MFPX55362Zs5r00MFPX55362Zs5r00MFPX55362Zs5r00MFPX55362Zs5r00MFPX55362Zs5 +r00MFF#iT'.-tauqg:C's8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQG4OhWE&(r1lm]PX55;6N!'6 +r00MFPX55362Zs5r1$+OPX55;6N!'6r00MFS3m.<62[6>r1$+OSP8sP9`1GTr1-OZSP8sP9`'K( +lte*4NE4]UbL4nkbKS5L`Pp$Ec.L7``5T^=bg">Tc02gEr1-OZSP8sP9`1\Wr1-OZUe(ER6N!?? +r1$+OS3m.D6N!??r1$+OUe(ER6N!??r1$+OS3m.D6N!??r1$+OS3m.TB)ho2s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n(HLQ +daZjkbg")F`Pfa7`5T^6`Ppu!<rA1Jr1lm]Ue(Eb9`1]'r1lm]Ue(EZD>^2#r1lm]Ui$%*8Go9# +r1lm]XA&Pf8Go8Sr1lm]Ue(EZ8Go8Sr2aN1s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n)39i +i8j(LeCN'tf#u:^f:7<VCaeXl.f>5gr1lm]SP8sW8Go#Pr1-OZSP8sO6N!BJr1lm]SP8sW8Go#P +r1lm]Ue(EZ8GoP_r1lm]Ue(EZ8Go8Sr1-OZUe(EZ8Go#Pr1-OZSP8sP9`1GTr1-OZPu7IL6N!*G +r1$+OS3m.<62[6>r00MFPX55362[9Ir00MFS3m.<62[6>r00MFS3m.<62[6>r1$+OS3m.D6N!?? +r1-OZSP8sP9`1GTr1-OZSP8sP9`1GTqTPi2m-"<=`qSi_r:J#$pA+ags8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\kj7crjQG4OhU9p)bKS5L`Pop"V<i"HluX`DCaeXl.dLUjlte*JF#j/g6N!?? +r1-OZUe(EZ8Go#Pr1lm]SP8sW8Go#Pr1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go#Pr1-OZUe(ES9`1GT +r1$+OSP8sP9`1GTr1-OZSP8sP9`1GTr00MFPX55+4oCO1r0:.WSP8sW8Go8Sr1lm]Ue(EZ8Go8S +r1lm]Ue(EZ8Go8Sr1lm]Ue(EZ8Go#Pr1lm]Ue(ES9`1GTr1-OZUe(ES9`1\Wr1-OZUe(EZ8Go8S +r1-OZUe(EZD7$[WUnsl_V50o`Unji_Unsm.Kk'Ic.-u%*lte*:CaeXd.-taulte*:F=QWn.-tau +qg:C$Ue(ER6N!WMr1$+OS3m.D6N!??r00MFS3m.<62Zs5r00MFPX55362Zs5r00MFPX55362Zs5 +r00MFS3m.E9`1,@r1$+OS3m.D6N!'6r1$+OPX55;6N!'6r00MFPX55362Zs5r00MFPX55362Zs5 +r00MFPX55362Zs5r00MFS3m.<62[6>r00MFS3m.<62Zs5r1$+OPX55362Zs5r00MFPX55362Zs5 +r00MFS3m.<62Zs5r1$+OUi$/3s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VtU<Vq/'qg:C#HoV"N3;\(_ +qg:C#HoV"N3;\(_qg:C#HoV"N3;\(_qg:C#HoV"N3;\(_qg:C#HoV"V3r=:aqg:C#HoV"N3;\@i +qg:C#KKB!`3r=Rkqh.$-KKB!`3r=Rko8>NuM`10b2Y2hbo8>O(KKB$i4o9mno8>NuM`1Kl4o9mn +r/<f9KKB$i4oC7%qh.$.N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4oC7% +r00MFN'7*'62Z[)r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%qh.#rA0gMX.-taulte*:CaeXd.-tau +lte*:CaeXd./Ll`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,s]SQH<3rFq" +qh.$.N'7)t4oC7%r/<f:N'7&k3rFq"r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%qh.$-KKB!`3r=Rk +qh.$-KKB!`3r=:aqh.$-KKB!`3r=Rkqh.$-KKB!`3r=:aqg:C#KKB!`3rFq"qh.$.N'7)t4oC7% +qi+VRN'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7*'62Z[)r00MFN'7*'62Z[)r/<f:N'7)t4oC7% +r00MFPX55362Zs5r00MFPX55362Z[)lte*:CaeXd.-taulte*IKKB/5s8W-!s8W-!s8W-!s8W-! +s8W,kpA*q=n)39ig"bH;gtpK/f%A3ibKS5Sbg">Tc0r<*r/<f:N'7)t4oC7%r/<f:N'7)t4oC7% +r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4o:4=r/<f:PX55362Z[)lte*9A0gJO,lFHT +s8W-!s8W-!s8W-!o_/+Em-ilnkN:RTg"bH^Ui$$o62Zs5r/<f:PX55362Zs5r00MFPX55362Zs5 +r/<f:PX55362Z[)r00MFPX55+4oCRBr00MFPu7IE;>c\Vqh.$.AMN@k7+0T9daZjreCMgec-+>U +bKS5L`Pp$Ec-+>U`5T^I`4c)ED>]Var1-OZPX55362Zs5r00MFPX55362Zs5r00MFPX55362Zs5 +r00MFPX55362Zs5r00MFPX55;6N!'6r00MIs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(SgtpK/f#u:^bKS5L`Poj0]#V4` +qg:C$Ue(EZ8Go8Sr1lm]Ue(ES9`1GTr1$+OSP8sP9`1\Wr1-OZUe(ES9`1GTr1-OZSP8sP9`1GT +r0:.WSP8n0YlFb's8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(SgtpK/f#u:^bKS5O[B](?.dUt" +r,XmrS3m.E9`1GTr1-OZSP8sP9`1GTr1-OZSP8sP9`1GTr1-OZSP8sP9`1GTr1lm]SP8sW8Go#P +r1-OZSP8sP9`1/Qr0:.WSP8sG62Zs5r00MFN'7*'62Zs5r/<f:PX55+4oCO1r/<f:Pu7I<4oCO1 +r00MFPX55362[!Fr/<f:PX55+4oCO1r00MFN'7*'62[!Fr00MFPu7ID62Zs5r00MFPX55362[!F +r1$+OPX52RErZ1>s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-ilnkLnYI +daZjkbg")F`OidrkB98ZA0gMX.-kChlXV:,A0gJO,l<6Ur1$+OS3m.=;>ctYr1-OZSP8sP9`1GT +r1-OZSP8sP9`1GTr1-OZSP8sP9`1GTr1-OZPu7IL6N!*Gr00MFSP8sG62Zs5r00MFPu7IM9_kNC +f:7<DKOX:i.dLUjlXV:-CaeXd.-taulte*IHoV"V3rG4.r1-OZSP8sW8Go#Pr1-OZSP8sP9`1GT +r1-OZSP8sP9`1GTr1-OZS3m.E9`1,@r1-OZPu7IM9`1GTr0:.WS3m.E9`1DIr1$+OUi!06Xe_eh +S=Z7HV50o`Ur\7"lte*9A0gJO,jStdlXV:-CaeXd.-taulte*:Caf1.3;f:5r1$+OPX55;6N!'6 +r00MFPX55362Z[)r00MFPX55+4oCO1r/<f:PX55+4oCO1r/<f:PX55362Zs5r00MFPX554;>cYE +r00MFPX55362Z[)r00MFN'7*'62Z[)r/<f:N'7)t4oC7%r/<f:PX55+4oCO1r00MFPX55362Z[) +r00MFPX55362Zs5r00MFPX55362Zs5r00MFPX55362Zs5r00MFN'7*'62Z[)r00MFPX55+4oCO1 +r:J#/s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s800Dr,XmrF#j,F3;dhXqg:C$F#j,F3;dhXr,XmqHoV%F3W*qY +qg:C$F#j/>3W"1`r,XmqHoV"N3;\(_qg:C#HoV"N3;\(_qg:C#HoV"N3;\(_qg:C#HoV"N3;\@i +qg:C#HoV%F3W*qYr,XmrF#j,F3;\@iqh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rk +qh.$-KKB!`3r=Rkqh.$-KKB$i4oC7%qh.$-KKB$i4o9mnr/<f:N'7)t4o9mnr/<f9KKB$i4o9mn +qh.$-KKB!`3r=Rkqh.$-KKB!X39t*#lXV:,A0gMX.-kChlXV:,A0gJO,jStdlXV:;`2s"=s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VoUiVS9hqh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rk +r/<f9KKB$i4o9mnr/<f9KKB$i4o9mnqh.$-KKB!`3r=Rkqg:C#HoV"N3;\(_qg:C#HoV"N3;\(_ +qg:C$Cbu!#1$`?qlXV:&<$1F:,j/D^lXV:,Jn4)AO8Pejqi+VQKKB!`3r=Rkqh.$-KKB!`3r=n: +qh.$.N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4oC7% +r/<f:N'7&c3:(H0lte*:CaeXd.-taur3_Rbs8W-!s8W-!s8W-!s8W-!s7H$\m.9o6m-j)lgtCK> +daZjreCMgec-k+mbKS5ZeCOGlMu8Msr/<f9KKB!`3r=Rkqh.$-KKB!X3;\@iqg:C#KKB!`3r=Rk +qh.$-KKB!`3r=Rkr/<f:N'7)t4o:4=r/<f:N'7)[3TjWslXV:,A0grn_#OH7s8W,kpA+(Hp#tc2 +i8j(Sgtqt:Nr4i!r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4o:4= +r/<f:N'7)t4oC7%r/<f9KKAF0,j]=qkeaRWgtp`>hU9p)daZjkbg">Tc-+>U`5T^=bg">Tc-+>U +m^/#PN'7)t4o:4=r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r00MFN'7)t4oC7%r00MFN'7*'62Zs5 +r00MFPX55362S$0s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!m.9o6m-ilnkLnYIfZ_O^bg")F`Pfa7`5T^HPC`Ua3rGL7r1-OZSP8sP9`1GT +r1-OZSP8sP9`1GTr1-OZPu7IM9`1GTr1-OZSP8sP9`1GTr0:.WPX554;>ctYs8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\kj7crjQG4OhU9p)bKS5Sbg">Tc.S&#lte*9A0h)34oCjEr1-OZSP8sP9`1/Q +r00MFSP8sG62Zs5r00MFPu7ID62[!Fr00MFPu7IE;>ctYr0:.WSP8sH;>cqNr0:.WPX55362Zs5 +r0:.WN'7)t4o:4=r/<f:N'7)t4oC7%r/<f9KKB$i4o9mnr/<f9KKB$i4oC7%r/<f9KKB$i4o:4= +r/<f:N'7)t4o:4=r/<f:N'7)t4oC7%r/<f:PX55+4oCRBr/<f:N'7*'62Z[)r00MEjMClrs8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n)39ig"bH-bg")F`Pfa7]=bi$O_!W[.dLUj +k?KM">Uni7+6QlYr+n1eN'7)t4oC7%r00MFPX55362[!Fr00MFPu7ID62[!Fr0:.WPX52+<W&(I +r00MENE,n84oCO1r/<f:PX52+<W%e=r/<f:Pu6Y5LWH9^X/rG(XKAP)Xe_ehX/rG5PDdn1;sRs> +lXV:,A0gJO,jStdlte*9A0h(o3W+h!r0:.WSP8sP9`1DIr0:.WPX554;>cYEr0:.WPX554;>cYE +r00MFPX55362Zs5r00MFPX554;>cYEr00MFPu7IM9`1,@gS9t.V50o`Unji_Unsm.Kk'FZ,jStd +lXV:(>Uo&M,jStdlXV:,A0gJO,jStdr,XmrPX55362Zs5r00MFN'7)t4oC7%qh.$.N'7)t4o9mn +r/<f:N'7)t4oC7%r/<f:N'7)t4o9mnr/<f:N'7)t4oC7%r/<f:N'7)t4o9mnqh.$-KKB!`3r=Rk +qh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rkr/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r/<f9KKB$i4oC7% +qh.$.N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7$eYlFb's8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +p[%)@F#j/71]2;Sr+n1eCbu!*1]2&Fr+n1eCbu!13W*qYr,XmrF#j/>3W*qYr,XmrF#j/>3W*qY +r,XmrF#j/>3W*qYr,XmrF#j,F3;dhXr,XmqHoV%F3W*qYr+n1TA0gJO,j/D^lXV:(>Uo&M,j/D^ +lXV:,A0gJO,lD^Dqh.$-HoV"N3;\(_qg:C#HoV"N3;\@iqg:C#KKB!`3r=Rkqg:C#KKB!`3r=:a +qh.$-HoV"V3r=Rkqg:C#KKB!X3;\@iqh.$-KKB!`3r=Rkqg:C#KKB!`3r=:aqh.$-HoV"V3r=:a +r,XmaA0g>C.dLUjlXV:,A0gJO,jStdk?KM&A0gJO,k&C+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!r1n3,HoV"N3;\(_qg:C#HoV"N3;\(_qh.$-KKB!X3;\@iqh.$-KKB!`3r=Rk +qh.$-HoV"V3r=:aqh.$-HoV"N3;\(_qg:C#HoV%F3W"1`r+n1eAMN:G+6?HDj]!>`<$14$+6QlY +lte*%S:9).^!bE]fZ_O^bg"eabNQ:2qODj.KKB!`3r=Rkqh.$-KKB!`3r=Rkqh.$.N'7&k3rFq" +qh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rkqh.$.N'7&k3rFq"qh.$.N'7)t4o9mnqh.#rA0gJO,jStd +lXV:,A0gMX.0'>Is8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(SgtpK/f$`(!daZk#bfe2Rc-+>U +fZ_P:SP8p.3;\@iqg:C#HoV"N3;\(_qg:C#HoV"N3;\(_qg:C#HoV"N3;\(_qh.$-KKB!`3r=Rk +qh.$-KKB!`3r=Rkqh.$.AMN@Q.d(%dlte*Em-"$7q<[_Gkj7crjQG4OhWVh\qh.$-KKB!`3r=Rk +r/<f9KKB$i4o9mnr/<f9KKB$i4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4o:4=r/<f9KKB!`3rEeM +k?KM!Xde80kMYFag"bH;gtpK/f%A3ibKS5Sbg")F`QQKM`5T^=bg"bX^&*dhqh.$-KKB!`3r=Rk +qh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rkr/<f9KKB$i4oC7%qh.$.N'7&k3rFq"r/<f9KKB/5s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#+oo +g"bH4eCMRW`Pfa7`5T^6`Pom*Z0ZQ^r00MFPX55362[!Fr00MFPu7ID62Zs5qi+VRPX554;>cYE +r0:.WPu7IE;>c\Vr0:.WPX554;>cYEr00MDbbkF?s8W-!s8W-!s8W-!s8W-!o_/+IoC_&&kLnYI +daZjkbg">Tc,@T?a0i2=CaeXd./[m;r00MFPX554;>cA9r0:.WPX55+4oCO1r0:.WN'7*'62Z[) +r00MFPX55362[!Fr00MFPX554;>cYEr/<f9NE,n84oC7%r/<f9KKB$i4o:4=qODj%U2o@cLY-`S +r+.VG>UoVU0)TNAr,XmqHoV"N3;\@iqg:C#KKAsW=Smb4qg:C#KKB!X3;\@iqh.$-KKB!`3r=Rk +qh.$-NE,n84o9mnr/<f9KKB$i4oC7%qh.$-NE,n84oCRBs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<[_Gi8j(Sgtp5uc-+>U`5T^-]Y1hWWp=1@j]!>`<$14$+6?HDk?KLu<$2!j3rFq" +r/<f:N'7&t<W%e=r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r/<f:N'7)t4oC7%r/<f9KKB$i4oC7% +r/<f:Pu6bAO0l:$['[3@XKAP)XfJP*X/rG(XKAP)XfJP*X/rG5PDe444Qfs!lXV:,A0g>C.dLUj +lXV:,A0gMX./SZYr/<f:PX55+4oCO1r/<f:N'7)t4oC7%r/<f:N'7&t<W%e=r/<f9NE,n84oC7% +r/<f:PX55362Z[)r00MFPX554;9,)aX/rFnSt)UQUr\7"k?KM">Uni7+6?HDlXV9o<%[HQ.,&/h +k?KM">UoYf1]31pr/<f:N'7)t4o9mnqh.$-KKB!`3r=Rkqg:C#KKB!X3;\@iqg:C#KKB!`3r=Rk +qh.$-KKB!`3r=Rkqh.$-KKB!`3r=:aqg:C#HoV"N3;\(_qg:C#HoV"N3;\(_qg:C#HoV"N3;\@i +qg:C#KKB!X3;\@iqh.$-KKB!`3r=Rkqg:C#KKB!`3r=Rkqg:C#KKB!`3r=Rkqg:C#KKB!`3r=Rk +qh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rkr3_Rbs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VqcH2M5.r+n1eAMO+!1]2&F +r+n1eAMO+!1]2&Fr+n1eCbu!*1]2&Fr+n1eCbu!*1]2;Sr+n1eF#j/71]2;Sr,XmrF#j/71]2;S +r+n1eF#j/71]1f=lXV:(>Uni7+6?HDj]!>b>Uni7+6?HDj]!>`<$14$+513_k)EEo[&hlt^$MnL +qh.$-HoV"N3;\(_qg:C#HoV"N3;\(_qg:C#HoV"N3;dhXqg:C#HoV"N3;\(_qg:C#HoV"N3;\(_ +qg:C#HoV%F3W"1`r,XmqHoV"N3;\(_r,XmqHoV%F3W*qYr,XmqHoV%F3TjWsk?KM">UnoA.d(%d +j]!>b>UnoA.cjVOk?KM5`2s"=s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,qe?Jjl3W"1` +r,XmrF#j/>3W"1`r,XmqHoV"N3;\(_qg:C#HoV"N3;\(_qg:C#HoV"N3;\(_qg:C#HoV"N3;\(_ +qg:C#HoV"N3;\(_r+n1TA0g89+6?HDj]!>b>UnoA.cjVOkB98GXImqjf%Jj8daZjreCN'tf$`(! +daZk#bfe2Rc03$KqODj.KKB!X3;\@iqh.$-KKB!X3;\@iqh.$-HoV"V3r=Rkqg:C#KKB!X3;\@i +qg:C#KKB!`3r=:aqh.$-HoV"V3r=Rkqg:C#KKB!X3;dhXk?KM&A0gJO,jStdlXV:;S9b/7s8W-! +s8W-!s8W-!s8W-!o_/+QpA*Y-kMYFag"bH;gtpK/f$`(!bKS5ZeCMgec.BnIqh.$-HoV"N3;\(_ +qg:C#HoV"N3;\(_r,XmqHoV%F3W"1`qg:C#HoV"N3;\(_qg:C#HoV"N3;\@iqg:C#KKB!`3rF%Z +j]!>`<$14$+6f#<kj7d%m-ilnkLnYIl.+D_NE,k'3;\(_qh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rk +qh.$-KKB!`3r=Rkqh.$.N'7&k3r=Rkqh.$-KKB!`3r=Rkr+n1P>Unlq<p8o=kj7d%m-ilnkN:RT +daZjreCMgec.L7``5T^=bg")F`Pfa7bKS6,V2P4u3;\@iqg:C#KKB!`3r=Rkqh.$-KKB!`3r=Rk +qh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rkr4Ijcs8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQFt@f$`(!bKS5Sbg")F`Pfa7 +ert[^HoV%_4oCO1qi+VRN'7)t4oC7%qi+VRN'7)t4o9mnr/<f:N'7&t<W%e=r00MFN'7&t<W%e= +r/<f:N'7*(;?-[rs8W-!s8W-!s8W-!s8W-!s8V`bq;C>si8j(LeCMgec,@T?`5T^6`Pp&`AER2I +lXV:<HoV%g62Z[)r0:.WN'7)t4oC7%qi+VRN'7&k3rFq"qi+VQKKB!i<VqG1r/<f:N'7)t4oC7% +r/<f:N'7)t4o9mnqh.$-KKB!`3r,"_kbX?\[B[?V]t:qj['[3P]Y1hWWlU*Hl"!'@<$13r*W'(o +qeSRqHoV"N3;\(_qg:C#HoV"N3;\(_qKuEBKKB!X3;\@iqKuEBKKB!X3;\@iqg:C#KKB!`3r=Rk +qKuEBKKB!`3r=Rkqh.$-KKAtJXT/>#s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o.jQG4OhTO-f +bKS5L`PoI%]sP/RaG"-c<$14$+6?HDj]!>`<$14$+8f\)qh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rk +qi+VQKKB!`3r=Rkqh.$-KKB!`3r=Rkqg:C#KKB!X3;\@iqh.$-NE,,CS&W+P]=bhh]Y1qi]sP/R +X/rG1['Zm8XfJP*X/rG(XKAP)XfJP*Unsm.Kk'4D+6?HDj]!>`<$14$+6?HDk?KLu<$2$S1])hd +qh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rkqh.$.N'7&k3rFq"qh.$.N'7)t4o:4=r/<f:N'7&t<W%e= +r/<f:Pu4?RUnji_UnslrHtqhL.cjVOfi0Qb<$0dm/a$@gk?KLu<$1:..cjVOr+n1eN'7&k3r=Rk +qh.$-KKB!`3r=:aqg:C#HoV"N3;[emqg:C#HoV"N3;\(_qg:C#HoV"N3;\(_qKuEBHoV"N3;\(_ +r,XmqHoV"N3;dhXqg:C$F#j,F3;dSKr+.VKA0h%P-fn;Lqc,$AAMO+!1]2;Sqg:C#HoV%F3W"1` +qg:C$F#j,F3;\(_r,XmqHoV"N3;\(_r,XmqHoUtM=SmJ*qg:C#KKB!X3;\@iqg:C#HoV"N3;\(_ +qg:C#KKB$r;?-[rs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s7ta7r+n1eAMO*o1&G3.qckcN>V>qc1&PT;r+.V\AMO*o1&PT; +r+.V\Cbu!#1&PiDr+.V\Cbu!*1]2&Fr+n1eCbu!*1]2&Fr+n1eCbu!*1](E0j]!>`<$14$+6?HD +j]!>`<$14$+6?HDj]!>T<%[32+6QlYb`QGf`4aUKf$`(!bKS5Sbg"eabN,gRqh.$.F#j/>3W*qY +r,XmrF#j/>3W*qYqg:C$F#j/>3W*qYr,XmrF#j/>3W*qYr,XmrF#j/>3W*qYr+n1eF#j/71]2&F +r+n1eCbu!13W*\Lr,XmrF#j/>3W*qYr+.VE<$14$+6?HDj]!>`<$1:..cjVOj]!>b>Uni7+8<=C +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq>$7tr+n1eCbu!*1]2;Sr,XmrF#j/>3W*qY +r,XmrF#j/>3W"1`qg:C#FAD^\3;\(_qg:C$F#j,F3;\(_r,XmqHoV"N3;dhXr+n1TA0g89+6?HD +j]!>`<$1:..cjVOlXV:'Xde80kMYFai8j(ZjQG[\gtCK>g"bH4eCN'tf$`(!daZjkbg"eabLa\G +q36%"F#j,F3;\(_qg:C#HoV"N3;\(_qg:C$F#j,F3;\(_r,XmqHoV"N3;dhXqg:C#HoV%F3W"1` +qg:C$F#j,F3;\(_qg:C$F#iPs,iquIk?KM">UnoA.dLUjp[%)Cs8W-!s8W-!s8W-!s8W-!s7H$\ +kj7d%m-j)lgtCK>daZjreCMgec-+>UdaZjkbg#@aYkrf-qg:C$F#j/>3W*qYr,XmrF#j/>3W*qY +r,XmrF#j/>3W*qYr,XmrF#j,F3;[emqg:C#FAD^\3;dhXqg:C#HoV%81$)+Mj\6cW<$1>:Yi+U* +i8j(SgtqmtH2DtKr,XmqHoV%F3W"1`qg:C#HoV"N3;\(_qh.$-HoV"V3r=Rkqh.$-KKB!`3r45+ +qh.$-HoV"N3;\(_qh.$.F#iDg.d(tCp[%)0oC_JAp#tc2i8j(`gt^T<hU9p)bKS5Sbg">Tc-+>U +`5T^=bg")F`Rqi3qh.$-HoV"N3;\(_qfGU1HoV%F3W"1`r,XmqHoV"N3;\(_qg:C#HoV"N3;\(_ +qg:C#HoV"N3;\(_qKuEBKKAsW=TAF$s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_&&kLnYIdaZjkbg")F`Pfa7`5T^8]XmHG./SZYqh.$.N'7&k3rFq" +qh.$-KKB!`3r=Rkqh.$-KKAm\@f(g>qh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rkr3_Rbs8W-!s8W-! +s8W-!s8W-!s6T@Mkj7crjQFt@f$`(!bKS5L`Pod7`Q,Bkk?KM">Uo&M,l<6Uqh.$-NE,k/3rFq" +qh.$-KKB$i4o9mnqh.$-KKB!`3r=Rkqh.$-KKB!`3r=Rkqh.$-KKB!`3r45+qh.$-KKAsW=Sn(X +k,k,m]Xl+q]">Vg]=bhh]Y1qi]t:qj['[3P]Y1hWWlU*Hk?KLi9-E:b)#I;\r+.V\F#j,F3;[em +qg:C#HoV%F3W"1`qg:C#FAD^\3;\(_qg:C#HoV"N3;S#)qg:C#HoV"N3;\(_qg:C#HoV"V3r=Rk +qh.$1s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_&&kLnYIdaZjkbg")F`Oidr]=bheXfC&R/`]A< +fh3IL9c_n[+QZQEj\6cnF#j,F3;\(_qg:C"Hs$8n3;\(_qKuEBHoV"N3;\(_qKuEBHoUtM=SmJ* +qKuECF#j,F3;S#)r,XmpHs$<BD:m(UbKS5Sbg")F`Oidr]=bhh]Y1\Z[&^:1X/rG(XKAP)XfJP* +X/rG(XKAP)Xf.\Rgh]+7<$14$+6?HDj]!>`<$14$+6?HDj]!?"AMO(83r45+qg:C#KKAsW=SmJ* +qg:C"Hs$8n3;\@iqKuEBKKB!X3;\@iqh.$-KKB!`3r=Rkr/<f:N'7)t4o9mnq36#tV50o`Ur[Xa +j]!>T<%[32+6?HDj]!>T<%[32+5'UFj]!>`<$2$L1&H>Xqg:C#HoV"N3;[emr,XmrF#j/>3W*qY +r,XmrF#j/>3W!VYr+n1dCdIu81]2;Sr,XmrF#j/>3W*qYr,XmrF#j/>3W*qYr+n1eF#j/71](E0 +qc,$)7Mt2U)!".'j@1!>9-Dn\+QQ!/j@1!J<$2!;-i@d:r,XmrF#j/71]2;Sr+n1eCbu!13W*qY +r+n1eF#j/>3W*qYr,XmrF#j/>3W!nnr,XmrF#j/>3W"1`qg:C$F#j,F3;dhXqg:BqpA+ags8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,qS9b$D1&FruqckcN>V>nY0)Jm+qc,$@<@@ZD-i7.$qckcN>V>qc1&G3.r+.V\AMO'e0)T98 +r+.V\AMO*o1&PT;r+.V\AMO*o1&Fruj\6cW<$0dd+QZ<<fh3I@9-Dn\+PBC1fh3IL<$0dd+QZQE +g4Wqe`4ajZhV$]@g"bH;gtpK/f$`(!daZk#bfe2Rc17TLr,XmrF#j/>3W*\Lr,XmrCbu!*1]2;S +r+n1eF#j/71]2&Fr+n1eCbu!*1]2&Fr+.V\Cbu!#1&PT;r+n1eAMO*o1&PT;r+.V\AMO*o1&PiD +r+.V\Cbu!#1$)@Vj]!>`<$14$+5'UFj]!>`<$0dd+QZQEj]!>r\YfE,s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\prgJNCbu!#1&PiDr+.V\AMO+!1]1f=r+n1eAMO+!1]2&Fr+n1eCbu!*1]2&F +r,XmrCbu!13W*qYr+n1eF#j/>3W*\Lr+n1d>V>,;+6?3;j\6cW9c`=p+6?HDj]!>fJn4-!\a8q\ +m.9oEm-!U!n*'-,kj7crjQG4OhV$]@g"bH4eCN'tf$`(!daZjkbg"eabPA9)qg:C#CdIu?3W*qY +r,XmrF#j/>3W*qYr,XmrF#j/>3W*qYr,XmrF#j/>3W*qYr,XmrF#j/>3W*qYr,XmrF#j/>3W*qY +r+.VE<$14$+6?HDj]!>`<$1t,H2mpEs8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(Sgtp`>hU9p) +daZjreCMgec.L7`bKS6%U2p0Q3W*qYr,XmrCbu!13W*\Lr,XmrCbu!13W*\Lr+n1eCbu!*1]2&F +r+n1eCbu!*1]2&Fr+n1eF#j/71]2;Sr+n1N<$10j)!".'k?KM$e^rL0hY4RXr,XmrF#j/>3W*qY +r,XmrF#j/>3W*qYqg:C$F#j/>3W"1`r,XmqHoV%F3W!nnqg:C#HoV"N3;\(_qg:C#HoV%F3TX3^ +k?KM4gsQ0%s8W-!o_/+QpA*q=n*'-,g"bH;gtpK/f#u:^bKS5L`Pp$Ec-+>UbKS5L`Pq\DH2M_D +r,XmrF#j/>3W*qYr,XmrCbu!13W*qYr,XmrF#j/>3W*qYqg:C$F#j/>3W"1`qfGU1HoV%F3W"1` +r,Xmp`2s"=s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726 +i8j(SgtpK/f%A3i`5T^6`Pod7`RgW/r+n1dHoV"V3r=:aqh.$-HoV"N3;S#)qh.$-HoUtM=Smb4 +qh.$-HoV"N3;\(_qKuEBHoV"N3;S#)qg:C#HoUclq>^Kps8W-!s8W-!s8W-!o_/+Em-ilnkLnYI +daZjkbg")F`Q#R%`5T^:Mga\d+6?3;r+.V[HoV"N3;\(_qg:C"Hs$9!3r=RkqKuEBKKB!`3r=Rk +qh.$-HoV"V3r=:aqKuEBHoUtM=Smb4qKuEBHoV"N3;\@iq5on)bg">Tc,@T?]=bhq`PoI%]uI^r +['[3P]Y1qi]sP/R]=bhh]Y1hWWmbuefh3IK7MsfG)>dD]r+n1eF#j/>3W*qYr,XmrF#j/>3W*qY +r,XmqCdIu?3W!VYr,XmrF#j/>3W"1`r,XmrF#j,F3;[emr,XmpHs$8n3;g1Es8W-!s8W-!s8W-! +s8W-!s8VHWp#tc2i8j(LeCMgec,@T?]=bhh]Y1\Z[)m].j@1!>6Q+rS)!".'j@1!I7Mu#&-i@d: +r,XmqCdIu?3W*qYr,XmrF#j/>3W*qYqeSRrF#j/>3W*qYr,XmrF#j/>3W*qYr+n1eF#j,F3;URp +g"bH;gtpK/f#u:^bKS5L`PoI%]t:qj['[3I['[?FWiN5'X/rG(XKAP)Xe_eh\Vbdr<$0dd+QQ!/ +fh3I@9-E=q+5':0j]!>`<$2$S1])PZqg:C#HoV"N3;dhXqg:C#FAD^\3;\(_qg:C$F#j,F3;\(_ +qg:C"Hs$8n3;\(_qKuEBKKB!X3;\@iqg:C#KKB!`3ldYJUnsm.FC*Wn+PBC1fh3I@9-E=q+5':0 +j]!>T9-E=q+5':0qckcNHoV%F3W*qYr,XmrF#j/>3W*qYr,XmrF#j/>3W*\Lr+n1eCbu!*1]2&F +r+n1eCbu!*1]2&Fr+n1eCbu!*1]2&Fr+n1eCbu!*1[BX'[uH*_D,f1U);.@pfg?Y16Q+QE);.@p +j@1!>6Q+QE)<=7(j@1!I7Mu#&-i@O1r+n1eCbu!*1]2&Fr+n1eCbu!*1]2&Fr+n1eCbu!*1]2&F +r+n1eF#j/71]2;Sr+n1eCbu!*1]2;Sr+n1eF#j/>3VhIXs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8Vi[kPSmGqc,$@>V>nR-i6mk +qc,$@<@@ZK0)JWrqc,$@<@@ZK0)Jm+qc,$@>V>nY0)Jm+qckcN>V>nR-i7.$qckcOAMO*o1&G3. +j]!>_7Mt5]*TT[,fh3IL9c`:a)!+I4j\6cK9-E:b)!".'fi0QUXInG3kMYFakj7ckgtpuMkLnYI +g"bH;gtpK/f$`(!bKS5ZeCN9b[ek_=r+n1eAMO*o1&PiDr+.V\AMO*o1&PT;r+.V\AMO'e0)Jm+ +qckcN>V>nY0)Jm+qckcOAMO'e0)T98r+.V[>V>nY0)T98qckcOAMO*o1&PT;qckc89c`:a(thP) +fh3I@9-E=j*SF(.j\6cV7MsfO+RZUss8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+TF<W$D_ +qckcN>V>qc1&G3.qckcOAMO'e0)T98r+.V\AMO*o1&PT;r+.V\Cbu!#1&PT;r+.V\Cbu!#1&PT; +r+.V\AMN:@*TT[,j@1!I7MsfO+QQ!/fg?Y19-EJ`II-Ruo_/+QpA+@Sq=OCVo_/+IoC_>6n*'-, +i8j(ZjQG[\gtCK>daZjreCN'tf%A3ibKS5Sbg"eQ[ebARr+n1eCbu!#1&PiDr+n1eAMO+!1]2&F +r+n1eCbu!*1]1f=r+n1eAMO+!1]2&Fr+n1eCbu!*1]2&Fr+n1eCbu!#1$)@Vj\6cK9-E=j*SF(. +j]!?%s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n)39ik1nb?eCN'tf$`(!bKS5ZeCMgec-+>U +q36%"Cbu!*1]2&Fr+n1eCbu!#1&PT;r+.V\AMO*o1&PT;r+.V\AMO*o1&PT;r+.V\Cbu!#1&PiD +r+n1eCbu!*1]1f=j@1!>9-DnT);9aQfZ_P9HoV%?1]2&Fr+n1eF#j/>3W*qYr+n1eF#j/71]2;S +r,XmrF#j/>3W*\Lr,XmrF#j/>3W*\Lr,XmrF#j/>3W!VYqc,#s9-F)LXT/>#s8W-!s8W-!s7H$\ +o_/+Em-iW_hV$]@daZk#bfe2Rc,@T?bKS5L`Pod7`QQKMfY"ZjCbu!*1]2&Fr+n1eCbu!*1]2&F +r+n1eCbu!*1]2&Fr,XmrCbu!*1]2;Sr,XmrCbu!13W*qYr,XmrF#j/>3W*qYs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o.jQG4OhU9p)bKS5L`Pod7`Pfa7 +`k8n<CcqW31])PZqg:C#FADaT3W"1`qfGU1HoV%F3W"1`r,XmrF#j/>3W*qYr,XmqCdIu81](uS +r+n1eCbu!*1]!Ves8W-!s8W-!s8W-!s8W-!s8V`bq<726g"bH4eCMgec-+>U`5T^-]Y1qi^"QsS +fg?Y<7Mu&>1]2;Sr,XmrF#j/>3W"1`r,XmqHoV%F3W"1`qfGU1FAD^\3;\(_qfGU1HoV"N3;\(_ +qg:C#HoV"N3;\(_on[GHbfSPnhU9p)bKS5Sbg">Tc,@T?]=bhh]Y1qi]t:qj]=bhh]Y1\Z[(Eua +]=bhh]Y2CEIG$t*j@1!A4r!'I)#IPjr+n1eF#j/71](uSr+n1eCbu!*1]2&Fr+n1eCbu!*1](uS +r+n1eF#j,662YdaqeSRrF#j/>3W*\Lr,XmqFADl9s8W-!s8W-!s8W-!s7H$\m.9o.jQG4OhTO-f +`5T^-]Y1qi]sP/R\?2da9-E"R']__#gccG-4qud9']__#qckcOCbu!*1]2&Fr+n1eCbu!*1]2&F +r+n1eCbu!*1]2&Fr+n1eCbu!*1]2&Fr+n1eCbts)62YdaprgJ:m-ilnkLnYIg"bH4eCMgec,@T? +`5T^-]Y1\Z[&^:1X/rG(XKAP)XfJP*\XJc'@nPfO)!".'j@1!I7MsfO+QZ<<j@1!I7Mu#&-i@d: +r,XmrF#j/>3W*qYqg:C$F#j/>3W*qYr,XmrF#j/>3W*qYr,XmrF#j/>3W"1`r,XmqHoV"N3;dhX +qg:C#FAD^\3;\(_qg:C#KK>p*Ur[CPj@1!I7Mt2U(th7ofg?Y<7MsfG)<=7(j@1!I7Mu#&-iA$G +r+n1eF#j/71]2&Fr,XmrCbu!*1]2&Fr+n1eF#j/71]2&Fr+n1eCbu!#1&PT;r+n1eAMO*o1&PiD +r+.V\Cbu!*1](uSb`QG+St)=BS=H1@[rc*?7Mt2U(th7oj@1!I7MsoE']__#fg?Y<7MsoE']__# +j@1!`<@@]U1&PiDr+.V\AMO*o1&PT;r+.V\AMO*o1&PT;r+.V\Cbu!#1&PT;r+.V\Cbu!#1&PiD +r+.V\Cbu!*1]2&Fr+n1c`2s"=s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!q5onY<@@ZD-i6mkqc,$@<@@ZD-i6mkqc,$@<@@ZD-i6mk +qc,$@<@@ZD-i6mkqc,$@<@@ZD-i6mkqc,$@<@@ZD-i6mkqc,$)7Mt2U(th7ofg?Y44r!'I(th7o +fg?Y44r!'I(th7ofg?Y2@lDu`bNS<]kj7d%m-j0)n*'-,kj7d%m-ilnkLnYIg"bH;gtpK/f$`(! +bKS5Sbg#sJFo5f*r+.V[>V>nY0)Jm+r+.V[<@@ZD-i6mkqc,$@<@@ZD-i6mkqckcN<@@ZD-i6mk +qc,$@<@@ZD-i6mkqckcN<@@ZK0)Jm+qckcN>V>nR-eUj)fg?Y<7MsfG)<=7(gccG57MsfG);.@p +gccGH\YfE,s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=rI]r+.V[<@@]U1&G3.qckcN>V>nY0)Jm+ +qckcN>V>nR-i7.$qc,$@>V>nY0)Jm+qckcOAMO'e0)Jm+r+.V\AMO'^-fd`6j@1!I7MsfG)<=7( +fg?Y44r!'I)!IfWo_/+\s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA+ILkNM:$i8j(ZjQG[\gtCK> +daZjreCN'tf$`(!bKS5_`4c"p=Su_br+.V\AMO*o1&PT;r+.V[>V>nY0)T98qckcOAMO*o1&G3. +r+.V[>V>qc1&PT;r+.V\AMO'e0)T98r+.V[<@?Qc']__#gccG57MsfG)>]kKs8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\p[%),m-ilnkLnYIg"bH4eCN'tf#u:^bKS5ZeCN6i^&*1:r+n1eCbu!#1&PT; +r+.V\AMO*o1&PT;r+.V\AMO*o1&PT;r+.V\AMO*o1&PT;r+.V[>V>qc1&PT;r+.V\AMO'^-epm" +j@1!I7Mu#E:AeZXr+.V\Cbu!#1&PiDr+.V\AMO*o1&PT;r+n1eAMO*o1&PT;r+n1eAMO+!1]1f= +r+n1eCbu!*1](uSr+n1d<@?He)>]kKs8W-!s8W-!s8W-!s8W-!s8V`bq<726kj7ckgtpK/f#u:^ +bKS5Sbg">Tc-+>UfZ_OW`Pp$Ec1lp#r+.V\AMO*o1&PT;r+.VYANfs&1&PT;r+n1eAMO*o1&PiD +r+.V\AMO*o1&PT;r+.V\Cbu!#1&PiDr+n1eCbtk0_#OH7s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA*q=n)39ig"bH4eCMgec-+>U`5T^6`PoooSblD7r,XmrF#j/71]2;S +r,XmrCbu!*1]2&Fr+n1dCdIu81](uSr+.V[CdIu11&PiDr+.V\Cbu!#1&PiDr+.VYjPg.=s8W-! +s8W-!s8W-!s7H$\kj7crjQG4OhU9p)bKS5L`PoI%]u7n/aK25k6Q+ZC'`1lXr+n1eCbu!*1]2&F +r+n1eCbu!*1](uSr+n1dCdIu?3W*qYr,XmrF#j/>3W*qYr,XmqCdIu?3W!VYr,XmpHs$0nal)7C +i8j(Sgtp`>hU9p)bKS5Sbg")F`Pfa7]=bhs]XkJW[(Eua]=bhh]Y1\Z['[3I['[3^HtV4u'\Phk +gccG57Mu#-0)T98r+.V\Cbu!*1]2&Fr+.V\Cbu!#1&PiDr+.V\Cbu!*1]2&Fr+n1eCbu!*1]2&F +r+n1eCbu!*1]2&Fq5on]s8W-!s8W-!s8W,coC_>6n(HLQdaZjkbg")F`Oidr]=bha['[o-EnNet +gccG-4r!'I(u.:hj@1!J9ca.J1]2&Fr+n1eCbu!*1]2&Fr+.V\Cbu!*1]1f=r+.V\AMO+!1]1f= +qeSRrCbu!*1]2&Fr+.VZ`2rV)q<726kj7crjQG4OhU9p)bKS5Sbg!c4]t:qj['[3P]Y1AIXfJP* +X/rG6Km;9M/_iN(fg?Y44qu[;);.@pfg?Y44r!'I)#IPjr+n1eCbu!*1]2&Fr+n1eCbts)62YOT +r,XmrCbu!*1](uSr+n1dCdIu81]2&Fr+n1eCbts)62YOTqeSRrF#j/>3W*qYr,XmrF#j,>:?ROT +Unsm.D,f1U);ICigccG*6Q+ZC'\kkdfg?Y44qud9'\Phkqc,$AAMO+!1]2&Fr+n1eCbu!#1&PiD +r+n1eAMO+!1]1f=r+.V\Cbu!#1&PT;r+.V\AMO*o1&PT;r+.V\AMO*o1&PT;qeSR=R>m`.S=H1@ +S=Z7HV50WQS@W9-gccG57MsoE'\kkdgccG-4qud9'\kkdgccG-4qud9'\kkdqc,$AAMO*o1&PT; +r+.V\AMO+!1\kTFr+.V\AMO*o1&PT;r+.V\AMO*o1&PT;r+.V\AMO*o1&PT;r+.V[>V>qc1&7Z( +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA+Vt1&Fruqc,$@<@@ZD-i6mkqc,$@>V>nR-i7.$qc,$@>V>nR-i6mkqckcN<@@ZD-i7.$ +qc,$@<@@ZK0)JWrqc,$@<@?Qc'\kkdgccG*6Q+QE);.@pfg?Y16Q+QE);.@pgccG-4qu^\2WifM +kj7d%m-j<4p$D;Cp[%)0oC_JAp#tc2kj7d%m-ilnkLnYIg"bH;gtpK/f$`(!bKS5qP^WF/-i6mk +qc,$@<@@ZD-i7.$qckcN>V>nY0)T98qckcN>V>nY0)Jm+qckcN>V>nY0)JWrqckcN>V>nR-i6mk +qckcN<@@ZD-i7.$qc,$)7MsoE'\kkdj@1!A4qud9'\kkdj@1!A4r!'I)#::us8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!m.9oHS9b!:0)Jm+qc,$@>V>nY0)Jm+qc,$@>V>nY0)Jm+qckcOAMO'e0)Jm+ +qckcN>V>nR-i7.$qc,$@>V>nR-i6mkj@1!I7MsoE'\kkdgccG-4qud9'\kkdk_<pRs8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n*'-,i8j(Sgtp`>hV$]@daZjreCN9rbKJ,S +f>PB#Cbtrn0)Jm+qckcN>V>nY0)T98qckcN>V>qc1&G3.r+.V\AMO*o1&G3.r+.V[>V>qc1&Fru +r+.V[>V>nY0)JWrgccG-4qu[;);ICifg?Y?>UodRs8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_G +kj7d#gt^T<hU9p)daZjreCN9rbKJ,SbKS5`]XI`S1]1f=qckcOAMO'e0)T98qckcOAMO*o1&PT; +r+.VYANfs&1&5BDr+.V\AMO*o1&PT;r+.V[>V>qc1&PT;qckc77MsoE'`1lXr+.V\AMO*o1&PT; +qckcOAMO*o1&PT;r+.V\AMO*o1&PT;r+.V\AMO*o1&G3.r+.V\AMO*o1&PT;r+.V\AMO'^-epm" +k\Nrms8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n)iE\g"bH4eCMgec-+>U`5T^=bg")F`QQKM +`5T^ZZ`*b;62YOTqeSRqCdIr762PIaqeSRqCdIr762PIaqeSRqCdIr762PIar+n1dCdIu11&PT; +r+.V\AMO*o1&PT;qKuEFs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6T@M +kj7ckgtpK/f%A3i`5T^6`Pod7`Pfa7g1*&<>V>qj1]1f=r+.V\AMO*o1&GcQr+.V\Cbu!#1&GcQ +r+.V\Cbts)62YOTq.2_dCdIu81](uSqeSRqCdI`MD#aP8s8W-!s8W-!s8W-!s8W,coC_>6n(HLQ +daZjkbg")F`Pfa7`k8mp]Y2C>EnihmgccGL<@@]U1&PT;q.2_eAMO*o1&5BDr+n1eAMO+!1]2&F +r+.V\Cbu!*1]1f=r+n1eCbu!*1]2&Fr+n1eCbu!*1\\GWo_/+IoC_>6n)39ig"bH;gtpK/f$`(! +bKS5L`Pod7`Oidr]=bhh]Y1\Z[(Eua['[3P]Y1qi]st2Ee6YPr6Q+QE);.@pj@1!aAMO'u62YOT +qeSRqCdIr762PIaqeSRqCdIr762YOTr+.V\AMO*o1&PiDr+n1eCbu!*1]2&Fr+n1eAMO+(3WK-Z +s8W-!s8V`bq<[_Gi8j(Sgtp5uc,@T?]=bhh]Y1\Z['[3Ia]U^\4qud9'\kkdgccG-4qud9'`1lX +r+n1eCbu!#1&PT;r+n1bANfs-1]1f=q.2_eCbts)62PIar+n1dCdIu11&PT;q.2_eCbtpXH2mpE +o_/+QpA+(Hp#+ooi8j(LeCN'tf#5PH`5T^-]Y1\Z[&^:1['[39V52.A9&)TEgccG-4qud9'\kkd +fg?Y44qud9']i%0r+.V\AMO+!1]1f=r+n1eAMO+!1]1f=r+.V\AMO*o1&PiDr+n1eAMO+!1]1f= +r+n1eAMO+!1]1f=r+n1eAMO*o1&PT;r+n1eCbts)62Gt2\XJbYV50o`UpkGTgccG-4qu[;);.@p +gccG*6Q+ZC'\kkdfg?Y44r!*Q*W0J'r+.V\AMO*o1&PT;r+.V\AMO*o1&PT;r+.V\AMO'u62Y:K +qeSRrCbts)62YOTq.2_eCbu!#1&GcQr+.V\Cbt:0Cn.)eUnslWSt)=BS=H1@S=Z7LN/$"Y+PB+" +fg?Y16Q+QE);.@pfg?Y16Q+QE);.@pfg?Y44qu[;)>n&#r+n1dCdIr762>(TqeSRrCbts)62Y:K +q.2_eCbu!#1&GcQr+n1bANfs&1&5BDr+.VYANfs&1&GcQr+.VYP]d$+s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8'[8qc,$@<@@ZD-i6mk +qc,$@<@@ZK0)JWrqckcN>V>nY0)Jm+qckcN>V>nY0)Jm+qckcN>V>nY0)Jm+qckcN>V>2E.bR0, +fg?Y16Q+!7,2#=$fh3I@6Q+QM+PB+"fh3I@6Q+!7,2#pIk01s2m-j<4p%7tRo_/+QpA+ags8W-! +o_/+QpA+@Sq=j7=kj7crjQGI^kLnYIg"bH4eCN'tf#u:^pk*&Q>V>qc1&G3.r+.V[>V>nY0)Jm+ +qckcN>V>nY0)T98qckcN>V>nY0)Jm+qckcN>V>nY0)Jm+qckcOAMO'e0)Jm+qckcN<@@ZD-epm" +gccG*6Q+ZC'\kkdfg?Y44qu[;);.@pgccG9Z`*p(s8W-!s8W-!s8W-!s8W-!s8W,kpA+OFiVRFW +qckcN>V>qc1&G3.qckcOAMO'e0)T98qckcOAMO'e0)Jm+r+.V[>V>nY0)T98qckcN>V>qc1&G3. +r+.V[<@?Qc'\Phkfg?Y44qu[;);.@pfg?Y1>s%]Pq>^Kps8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\o_/+Em-j0)n*'-,k1nbFgtp`>hU9p)bKS5ZeCMgec02L4qckcOAMO'e0)T98 +r+.V[>V>qc1&PT;r+.V\AMO*o1&PT;q.2_eAMO+!1]2&Fr+.V\AMO*o1&PT;r+n1eAMN:G+5'"! +fh3I@6Q+QE);.@pprgJQs8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n*'-,k1nbFgtp`>hTO-f +daZjkbg"eabKJ,SkbX@<AMO*o1&PT;r+.V\AMO*o1&PT;r+.VYANfs&1&5BDq.2_eAMO!l4o&YP +q.2_bANfj#4oAkGr+.V\AMO*o1&G3.j@1!aAMO*o1&PT;r+.VYANfs&1&PT;r+.V\AMO*o1&PT; +r+.V\AMO*o1&PT;r+.VYANfs&1&PT;r+.V\AMO*o1&G3.fg?Y=<$1c+q>^Kps8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\kj7d%m-iW_hU9p)fZ_O^bg"eabJ_B=bKS5L`Pp$Ec-+>Upk*&QCdIr762PIa +qeSRqFADaT3W!nnr,XmqFAD^L62YdaqeSRrF#j,662PIaqeSRqCdIr762PIaqeSRoANfs&1&9nh +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkLnYIdaZjkbg">Tc,@T? +`5T^:XJP#Q*W0J'r+n1dCdIr762PIaqeSRqCdIr762YdaqeSRqCdIr762PIaqeSRqCdIr762PIa +qeSRqCdIr762PIaq:sBts8W-!s8W-!s8W-!s8V`bq<726i8j(Sgtp5uc-+>U`5T^6`Pod7`Q#R% +e6YPr6Q+QE)>n&#qeSRrCbts)62PIaqeSRrCbts)62PIar+n1bANfs-1]1f=q.2_eAMO!l4oB+P +q.2_eAMO+!1\kTFqi+VUs8W-!s7H$\o_/+Em-j0)n)39ig"bH4eCN'tf#u:^`5T^6`Poj0]">Vg +`k8mi['[HX]sP/R]=bhh]Y1kEPhA\Pfg?Y16Q+QE)>dD]qeSRqCdIr762PIaqeSRqCdIr762PIa +qeSRqCdIr762PIaqeSRrAMO'u62Y:Kq.2_eCbtlu4oB+PqeSRnbJ=/Xs8W-!m.9o.jQG4OhU9p) +bKS5L`PoI%]sP/R['[3MPDe3['\Phkfg?Y16Q+QE);ICij@1!aCbu!#1&PT;qeSRrAMO!l4oB+P +qeSRqCdIu81](uSr+n1dCdIu81](uSqeSRrCbts)62Pb!o_/+\s8W-!s8W-!m.9o6m-ilnkLnYI +bKS5Sbg!c4]t:qj]=bha['[B$I+_INfg?Y16Q+QE);.@pfg?Y16Q+QE);.@pqckcOCbu!*1]2&F +r+n1dCdIu81](uSq.2_dCdIu81](uSr+n1bANfs-1\kTFr+n1dCdIr762PIar+n1dCdIl.4oB+P +qeSRrAMO*o1&GcQfo10OV50o`Unji_UnslqCg#FY)9G;kfg?Y16Q+QE);.@pfg?Y16Q+QE);.@p +qc,$ACbts)62PIaqeSRqCdIr762YOTqeSRqCdIr762PIar+n1dCdIr762PIar+n1bANfs-1](uS +qeSRrCbts)62Pb!Unsl_V50WQS=H1@W1'!ASt)=BS=H1@\n+[j6Q+!7,2#=$fg?Y16Q+QE);.@p +fh3I@6Q+QE);.@pfg?YS<@@Z[62YOTqeSRqCdIr762>(TqeSRrCbts)62PIaqeSRoANfs-1](uS +qeSRqCdIr762YOTqeSRrAMO*o1&?9"s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,lLhurg-i7.$qckcN>V>nY0)Jm+qckcN>V>nY0)Jm+ +qckcN>V>nY0)Jm+qckcN>V>nY0)Jm+qckcN>V>nY0)Jm+fh3I073]iB,0<7tfh3I073]iB,0<7t +a[IDq73]iB,0<7ta[IE.UQap.n+?>Lo_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2 +kj7crjQG[\gtCK>daZjreCN9rbPQ*AqckcN>V>nY0)Jm+qckcN>V>qc1&G3.qckcN>V>nY0)T98 +qckcN>V>qc1&G3.r+.V[>V>nY0)Jm+qckcOAMO'e0)Jm+qc,#s6Q+QE)9G;kfg?Y!73^DP);.@p +a[IE,6Q+!7,3H"ss8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mke+.s>V>nY0)Jm+qckcOAMO'e0)T98 +r+.V[>V>qc1&PT;r+.V\AMO*o1&PT;r+.V[>V>qc1&PT;qckcOAMO'^-eUj)fg?Y!73^DP);.@p +fg?Y!73^DP)<e`;s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +kj7d%m-ilnkLnYIg"bH;gtpK/f$`(!fZ_O^bg#g:D#@j!r+.V\AMO*o1&PT;q.2_eAMO!l4o&YP +qeSRoANfp,62PIaqeSRoANfp,62PIaqeSRqCdIr762PIaqckbo9.JUf+NI,)fh3I.9.K4S?N:'* +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-ilnkLnYIg"bH4eCN'tf#u:^daZjkbg">Tc2!TH +r+.V\AMO*o1&5BDr+.V[CdIl.4o&YPqeSRqCdIr762PIaqeSRqCdIr762PIaqeSRqCdIr762>(T +r+n1dCdIl.4o9%]qeSRqCdIr762PIaqeSRqCdIr762PIaqeSRqCdIr762PIaqfGU1CdIr762PIa +qeSRqCdIr762>(Tq.2_N9c_n[+SaI.s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2 +g"bH;gtp5uc-+>UbKS5L`Pp$Ec-+>U`5T^=bg#:PS,7;&r,XmqFAD^T:A]-.qfGU1FAD^T:A]-. +qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.r,XmqFAD^L62YdaqfGU/P]d$+s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<726g"bH4eCN'tf#u:^`5T^6`Pod7`Q3.-qckcNCdIr762PIa +r,XmqCdIr?:Af/nqfGU2F#j,>:Af/nqfGU2F#j,>:Af/nqfGU2F#j,>:Af/nqfGU1NE-#Ys8W-! +s8W-!s8W-!s8W-!o_/+Em-ilnkL.l2bKS5L`Pod7`Oidr]=bheXfC&I+N[%rj]!?!CdIr762PIa +r,XmqCdIu?3W!VYqeSRqCdIr762PIaqeSRqCdIr762PIaqeSRqCdIr762PIaqeSRqCdImPdJs7H +s8W-!s8W-!s7H$\m.9o6m-ilnkLnYIdaZjreCMRW`Pfa7`5T^-]Y1qi]t:qj]=bha['[HX]sP/R +]=bhuD,eVG,0<7ta%Io(73_VF62Ydar,XmrF#j/>3W*qYr,XmqCdIu?3W*qYqeSRqCdIr762PIa +r+n1dCdIr762PIaqeSRqCdIr762[Nqs8W,kpA+(Hp#+oog"bH-bg")F`Oidr['[3I['[3I['tEt +fg?Y16Q+QE);.@pfg?Y16Q,c$-i@d:qeSRrCbu!#1&GcQqeSRqCdIr762YOTqeSRqCdIr762PIa +qeSRqCdIu?3W!VYqeSRp`2s"=s8W-!s8W-!s8V`bq<726i8j(LeCN'tf#5PH`5T^-]Y1AIXiPTj +a%Io86Q+!7,0<7tfh3I073^DX+N[%rj]!?"Cbts)62PIaqeSRqCdIr762PIar,XmqCdIu?3W!VY +qeSRqCdIr762PIaqeSRqCdIr762PIaqeSRqCdIr762PIar+n1dCdIu81\kTFpk*%sUn+<XUnji_ +Unsl_V50o`Ur[Xaa[IDq73]iB,0<7ta[IDq73]iB,0<7ta[IDq73^hf*W'Y=qeSRqCdIr762PIa +qeSRqCdIr762PIaqeSRqCdIr762PIar+n1bANfp,62PIar+.VYANfp,62>(TqeSR]MfGf!Xe_eh +UnslWSt)=BS=H1@S=Z7@St)^3I*"f$fg?Y!73]iB,0<7ta[IDq73]iB,0<7ta[IE,6Q+!7,2#=$ +qeSRqCdIr762PIaqeSRqCdIr762PIaq.2_dCdIr762PIaqeSRqCdIr762PIaqeSRqCdIr762PIa +qeSRrF#j:#s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8VoUiVQk4k?KM6<@?s7.f33nk?KM6<@?s7.d(%dk?KM">UnoA.cjVOl"!'B>UnoA.d(%d +k?KM$A3f<_.d:J/k?KLi<%Z3\,0*>+a[IDo9.ItT.`k+'a%Io&9.J%P,0*>+a%Io(73]fi<9W]; +o_/+QpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n*'-,i8j(`gt^T<hU9p) +daZk#XIoAp0)9'Al"!'V>V>h`4o8J:qckcN>V>h`4o8J:q.2_d>V>h`4o8J:r+.V[>V>h`4o8J: +r+.V\AMO'e0)Jm+r+.V[>V>2E.`k+'a[IDq73]iB,2#U3a[IDq73]iB,0<7tfg?Y@Z`*p(s8W-! +s8W-!s8W-!s8W-!o_/+Em-jb7FnoT3q.2_bANfj#4o&YPr+.VYANfj#4o&YPq.2_bANfj#4o&YP +q.2_bANfj#4o&YPq.2_bANfs&1&5BDj]!>D73]iB,2#U3a[IDq73]iB,0<7tg20[ds8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7d%m-j)lgtCK> +daZjreCMgec-k+mf>PB"CdIl.4o&YPq.2_dCdIl.4o9%]qeSRqCdIr762PIaqeSRqCdIr762PIa +qeSRqCdIr762PIaqeSRqCdIr76.nmRa%Io&9.ItT.`k+'a]U_*s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s6T@Mkj7d#gt^T<hV$]@daZjreCMgec-+>UdaZk"`4bi"D#8$7qeSRqCdIr762PIa +qeSRqCdIr762PIaqeSRqCdIr762PIaqeSRqCdIr762PIaqeSRqCdIr762PIaqeSRqCdIr762PIa +qeSRrF#j,>:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.r,XmqFAD^L62PIaqeSRqCdI/^+3?qq +kbX@?s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkLnYIdaZjreCMgec-+>U +`5T^=bg")F`RrDX`5T^jK4=_":A]-.qfGU1FAD[[=Sm28qKuEAHs$5m=SdDIqKuEAHs$5m=Sm28 +qKuEBFAD^T:A]-.qfGU1FAD^T:A\ino_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +m.9o.jQG4OhU9p)bKS5L`Pod7`Pfa7a0i2*<%[u`62PIar,XmqCdIr?:Af/nqfGU1CdIr?:A]-. +qfGU1FAD^T:A]-.qfGU1FAD^T:AT??qfGU0Hs$8f:AN\ms8W-!s8W-!s8W-!s8W,kpA+(Hp#+oo +g"bH4eCMgec,@T?`k8n$`PoI%]uQP#a%Io&9.KgD0)K`cqfGU1FAD^T:A]-.qfGU2F#j,>:Af/n +r,XmrF#j/>3W!nnr,XmrF#j/>3W*qYqeSRrF#j/>3Ven^s8W-!s8W-!s8W-!s8W-!s8W-!s6T@M +kj7crjQG4OhU9p)daZjd`Pod7`Oidr]=bhh]Y1\Z[(Eua['[3P]Y1\Z[(2Wia[IE,9-D>F,2#U3 +k?KM6CdIr?:A]-.qfGU1CdIr?:Af/nqfGU1CdIr?:Af/nr,XmrF#j,662PIaqeSRqCdIr762Yda +qeSRpHs$FKs6T@Mkj7ckgtpK/f#u:^`5T^-]Y1qi]sP/R\?2dQ=Za_o,0<7tfg?Y!73]iB,0<7t +q.2_dCdIr762PIaqfGU2F#j/>3W*qYqeSRqFADaT3W!nnr,XmrF#j,>:Af/nqfGU2F#j#J@fQK. +s8W-!s8W-!s7H$\m.9o6m-ilnkLnYIdaZjd`Pod7`ODY9a]U^G9.ItT.`Y13a%Io&9.J%P,0*>+ +a%IoXANfp4:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:Af/nqfGU2F#j,>:Af/n +r,XmqCdIu?3W!VYqeSRqCdIr762PIaqfGTsV2r7$]rS6:Unsl_V50o`Unji_UnslrFCN?\,0<7t +a[IDq73]iB,0<7ta[IDq73]iB,0<7tj]!?"F#j,662YdaqeSRrF#j,662PIaqeSRqCdIr762PIa +qeSRqCdIr762PIaqeSRqCdIr762PIaqeSRqCdIr76-,jm\?2d,V50o`Un"$HW1'!ASt)=BS=H1@ +W1'!n73]iB,0<7ta[IDq73]iB,0<7ta[IDq73]iB,0<7ta[IDq73_V60)9'AqeSRqCdIr762PIa +qeSRqCdIr762YdaqeSRqFAD^L62PIaqfGU2F#j,662PIaqeSRqCdIr762PIao_/+\s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!pUR0a>UnoA.d(%d +k?KM">UnoA.d(%dk?KM6>V>2E.d:J/k?KM$A3f<_.d(%dl"!'B>UnuK5j)B%k?KM$A3f<_.`Y13 +\OIsg73]cF.`Y13\OIsg73]93-cne$a%Inm7OQ;H,0*>+fY"ZbpA+ags8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n*'-,g"bH;gtpK/f$`(!l[i[1>UoP\4m?KB +k?KM$A3fBi5l4e=l"!'DA3g#s0'Qn3qckc<A3fs%4m?KBq.2_bANfoq0'Qn3q.2_bANfoq0)9'A +j]!>D73]iB,0<7ta[IDo9.J%P,0<7ta[IDq73]cF.d!k&s8W-!s8W-!s8W-!s8W-!s8V`bq<$Jf +q.2_bANfj#4o&YPq.2_bANfj#4o9%]qeSRoANfp,62PIaqeSRqCdIr762>(TqeSRoANfj#4o&YP +q.2_d>V=,e,0<7ta[IDq73]iB,0<7ta[IDq73_THXT/>#s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+ILkNM:$i8j(Sgtp`>hV$]@daZjkbg">Tc/kIN +q.2_dCdIr762PIaq.2_bANfj#4o&YPqeSRoANfp,62PIaqeSRqFAD^L62PIaqeSRqCdIr762PIa +qeSR]>Umia,0*>+a%Io&9.J%P,58XFs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq<726 +k1nbFgtpK/f$`(!daZjkbg">Tc-+>Uf>PB!Hs$8^62PIaqeSRqCdIr762PIaqeSRqCdIr762Pb! +qeSRqFADaT3W!nnqfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-. +qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:?c:Sa%Io7KPphis8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mkj7ckgtp`>hUp&qbKS5Sbg")F`QQKM`5T^=bg")F`TX.Z +qfGU1FAD[[=Sm28qfGU0Hs$5m=Sm28qKuEBFAD^T:AT??qfGU0Hs$8f:AT??qKuEAHs$5m=SdDI +qfGU0Hs$3@MuWhWs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n)39idaZjreCMgec,@T? +`5T^6`PooOEr0)oqfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU0Hs$8f:AT?? +qfGU0Hs$5m=Sm28on[Gas8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQFt@f#u:^bKS5L`PoI%]t:qj +`5T^;HtUJm.`Y13qeSRpHs$8f:AT??qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qeSRqFAD^T:A]-. +qeSRqFAD^T:A]-.qfGU/gsQ0%s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2i8j(SgtpK/f$`(! +`5T^-]Y28&`O*"Z]=bha['[HX]sP/R]=bhh]Y2?q9$'LGa%Io(73]cF.f4$JqfGU1FADaT3W!nn +qeSRqFAD^L62Pb!r,XmqFAD^T:A]-.r,XmqFADaT3W*qYqeSRqFAD^T:Af/nq;gMum-ilnkLnYI +bKS5L`PoI%]sP/R['[3I['[?,MoeC3a[IDq73]iB,0<7ta[IE,9-F+J62YdaqfGU1FADaT3W!nn +qeSRqFAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qS]K8s8W-!s8W-!s8W,kpA+(Hp#+oo +g"bH4eCMgec,@T?[sVr29.ItT.`Y13a%Io&9.ItT.`Y13a%Io8>s%t*3Vn,*qfGU0Hs$8n3;S#) +qfGU1HoV"F:AT??qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU2F#j,>:Af/n +qfGU/P]bTr]u7n/['[3I['ZX*Unji_Unsl_V50o`Upb)Ba[IDq73]iB,0<7ta[IDq73]iB,0<7t +a[IDq73^hm+8^.TqeSRqCdIr?:A]-.r,XmqFADaT3W!nnr,XmqFAD^L62YdaqeSRqCdIr762PIa +qeSRrF#j,662Pb!pk*%f]Y1\Z[&^:1Unsl_V50WQS=H1@S=Z7@St)=BS@Vupa[IDq73]iB,0<7t +a[IDq73]iB,0<7ta[IDq73]iB,0<7tj]!?!CdIr762PIaqeSRrF#j,662Pb!qeSRqFAD^L62Pb! +qfGU1FAD^L62Pb!qfGU1FAD^T:A]-.qeSRqCdImXiW&rXs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+!$?KYQCfj-]&>UnoA.d(%dfi0QfA3f<_.bS)h +fj-]&>UnoA.d(%dfj-](A3fBi5hTF)k?KM$A3egR46^9@a%Inm7OQ;H,.U/j\OIsW7OQ;H,.U/j +a%Inm7OP`9-b2\o\OIsfD,g0$q>^Kps8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\kj7d%m-ilnkMYFag"bH4eCN9ZXQa7\k?KM6>V>8O5l4e=l"!'DA3fBi5l4e= +l"!'TANf9g5j;fEqckc<A3g#s0'Qn3q.2_RA3g#s0'Qn3q.2_RA3f<_.`Y13a%Io&9.J%P,.U/j +a[IDo9.ItT.`Y13a[IE;Z`*p(s8W-!s8W-!s8W-!s7H$\kj7d%Z`*\24o&YPq.2_bANfj#4o9%] +q.2_bANfp,62>(TqeSRoANfp,62>(TqeSRoANfp,62>(Tq.2_bANfj#4kWINa[IDo9.J%P,0*>+ +a%Io&9.J%P,04V#s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_>6n)39ik1nb?eCN'tf$`(!fZ_Oj`4c%a62>(TqeSRoANfp,62PIa +qeSRqCdIr762PIaqeSRqCdIr762PIaqfGU1CdIr?:A\inqeSRqFADXC4m?KBa%Io&9.J%P,0*>+ +a%Io6Ht*-Us8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-j0)n)iE\g"bH4eCN'tf#u:^ +daZjkbg"eabLj2'qfGU1FAD^T:A\inqfGU1CdIr762Pb!qeSRqFAD^T:A\inqfGU1CdIr?:A]-. +qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU0Hs$8f:A]-. +qfGU1FAD^T:A]-.qeSR=9.Itl9)nqks8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA+(Hp#b&bg"bH4eCMgec-+>UbKS5Sbg">Tc,@T?bKS5_`4bqu@etISqfGU0Hs$8f:AT?? +qfGU0Hs$8f:AT??qKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEAHs$5m=Sm28qfGU5s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<726kj7ckgtpK/f%A3ibKS5L`Pod7`Q#R%a]U_&FAD^T:A]-. +qfGU1FAD^T:A]-.qfGU1FAD^T:AT??qfGU0Hs$8f:A]-.qfGU0Hs$8f:AT??qfGU0Hs$6pYlFb' +s8W-!s8W-!s8W-!s8W,coC_>6n(HLQdaZjkbg")F`Pfa7`5T^-]Y2=t]!cEX[o5?.9.Kg\:AT?? +qKuEBFAD[[=SdDIqfGU0Hs$8f:A]-.qfGU1FAD^T:A]-.qfGU1FAD[[=Sm28qfGU1FADU`@fQK. +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n)39ig"bH4eCMgec,@T?]=bhs]XkJW[(Eua +['[3P]Y1\Z['[3I\V5:<9JFL[.`Y13a[IE<A3g$6:A]-.qfGU1FAD^T:Af/nqfGU1CdIr?:A\in +qfGU1CdIr?:A\inqfGU1FAD^T:A]-.qeSRqFAD\NXQ]$>i8j(LeCMgec,@T?]=bha['[3I['[3I +[rc)i7OQ;H,.U/ja[IDq73]iB,3N2\qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-. +qeSRqFAD^T:A]-.qfGU0Hs$FKs8W-!s8W-!s8V`bq<[_Gi8j(ZjQG4OhTO-faK25LAP]d63k.j; +[o5>t9JEqS3k&$Ka%Ink;`a/R5l,k1qKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEBFAD[[=SdDI +qKuEAHs$5m=SdDIqKuEAHs$8f:AT??qfGU1FAD^T:A]-.qfGU+Lhu:fYh@ggbKS5L`PoI%]rS6: +Unsl_V50o`Unji_UnslrFCMdM-b2\oa[IDa7OP`9-cne$\OIsg73]93-cne$fi0R#FAD^T:A]-. +qfGU1CdIr?:A]-.qeSRqFAD^T:A\inqfGU1FAD^L62Pb!qfGU1FAD^T:A]-.qfGU1FAD(bICm/* +['[3@XKA:pUnji_S=Z7@St)aJQ(4G9S=Z7MFCi!P-b2\o\OIsW7OP`9-b2\o\OIsg73]93-b2\o +a[IDa7OQkg/c0?MqeSRqCdIr762Pb!qeSRqFAD^L62Pb!qfGU1FAD^L62Pb!qfGU1FAD^T:A\in +qfGU1CdIr?:A]-.q:sBts8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7ta7fk!\,>s$_F45!n$fj-\m>s%4S.bS)hfi0Qd>UnE445!Rbfj-\m>s%4S.bS)h +fj-](A3egR45!n$fj-\m>s#Sd-b2\o\OIsW7OP`9-b2\o\OIsW7OP`9-b2\o\OIsW7OP`9-ePf- +o_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_G +kj7crjQG4OhV$]@daZk3L2?*b5j;fEl"!'DA3f<_.d:J/l"!'DA3f<_.d:J/l"!'DA3fBi5j;fE +l"!'DA3fBi5j;fEl"!'DA3fBi5j;fEfi0QD9.IJA-cne$\OIse9.IJA-b2\o\OIsW7OP`9-ePf- +s8W-!s8W-!s8W-!s8W,kpA*q=n)oUKq.2_RA3fBi5j3#Xl"!'CCeX)(5j3#Xk\NrVCeX)(5j3#X +k\NrVCeX&/9^$:dl"!'VCdI;r5l5@`l"!&h9JFRW,.L<#\OIse9.IJA-b2\oa%Io7XIoOms8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +m.9o6m-iW_hV$]@g"bH4eCMgec-+>Ul'-VnCdIl.4o9%]qeSRoANfp,62>(TqeSRqCdI9$9`&Wl +qeSR^CeX_B62PIak\NriCdIr?:A\ink\NriCdH*7._&/+a%Inl9JEtM0ZdHZs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mkj7d%m-iW_hV$]@daZjreCMgec-+>UbKS5Sbg#@JO8F#o +qfGU1FAD^T:A]-.qfGU1FAD^T:A\inqfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qKuEBFAD[[=SdDI +qKuEAHs$8f:AT??qfGU0Hs$5m=Sm28qKuEAHs$5m=Sm28qKuEBFAD[[=Sm28qKuEBFAB;D3ltMd +q;gN7s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o6m-iW_hU9p) +daZjkbg">Tc,@T?`5T^6`Pp$Ec,@T?kbX@;FAD[[=SdDIqKuEBFAD[[=SdDIqKuEAHs$5m=SdDI +qKuEAHs$5m=SdDIpk*&PHs$5m=SdDIqKuEAHs$5m=SKA's8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+Em-ilnkLnYIdaZjkbg")F`Pfa7`5T^:Mgabn.f4<_qKuEBFAD[[=Sm28qKuEAHs$5m=SdDI +qKuEBFAD[[=Sm28qKuEAHs$8n3;[emqKuEAHs$8f:ABHNs8W-!s8W-!s8W-!s8W-!s8V`bq<[_G +i8j(SgtpK/f#5PH`5T^-]Y1qi]u7n/]=bht>YV\+3ltMdpk*&PHs$5m=SdDIqKuEAHs$5m=SdDI +qfGU0Hs$5m=SdDIqKuEBFAD[[=Sm28qKuEAHs$5m=SdDIr3_Rbs8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!m.9o.jQG4OhU9p)daZjd`Pod7`Oidr]=bha['[HX]sP/R]=bha['[oMS[h3; +a%Inl9JFL[.`Y13qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-. +qfGU1FAD^T:A]-.q5on>jQG4OhU9p)`5T^-]Y1qi]sP/R['[3@XKB'>7EItB\4eTe7OP]>0Y'Y# +\4eURCdIr?:A]-.qfGU1FAD^T:AT??qKuEAHs$8f:A]-.qKuEBFAD^T:A]-.qfGU1FAD^T:AM#V +s8W-!s8W-!s6T@Mm.9o.jQGI^kL.l2bKS5?NJ4i?3k.j;\4eTs9.IGF0Xse1a%Inl9JFRk48X+p +qKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEAHs$5m=SdDI +qKuEAHs$5m=SdDIqKuEAHs$3HPi1Wck1nbFgtp5uc,@T?['[3@XKA:pUnji_Unsl_V50o`UpkGT +\OIsW7OP`9-b2\o\OIsW7OP`9-b2\o\OIsW7OQkg/c0WbqfGU1FAD^T:A]-.qfGU1FAD^T:A]-. +qfGU1FAD^T:A]-.qfGU1CdIr?:A\inqfGU1FAD^T:A]-.fW:^``PoI%]sP/RX/rG!V50WQS=H1@ +S=Z7@St)=BS>V$f\OIsW7OP`9-b2\o\OIsb2E86:-b2\o\OIsW7OP`9-b2\o\OItDCdIr?:A]-. +qfGU1CdIr?:A\inqfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qeSRqFADV\aoDD@ +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,_Z`)A[7+kj- +e6YPm?:<IP46^9@bZ%]t>s$_F45!n$fj-\m>s$_F45!n$fj-\m>s$_F45!n$fj-\m>s$_F43'uD +\OIsW7OP`9-b2\o\OIsD6n>f;-`09^\OIsD6n>f;-`09^\m7bgm-juSs8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+ILkMYFai8j(SgtpK/f%@'r +l"!'4AOkuq5h'+.l"!'DA3fBi5j;fEk\NrWA3fBi5j;fEl"!'DA3fBi5j;fEl"!'DA3fBi5j;fE +l"!'DA3egR41Is<\OIsV9JEtM0Y'Y#\4eTe7OP]>0Xse1\4eU/XIo.Yq>^Kps8W-!s8V`bq<[_G +k1nbUFB7UA9^-(Qk\NrWA3g$.60VoFk\NrVCeX)(5j3#Xk\NrVCeX&/9^$:dl"!'CCeX&/9^$:d +k\NrWA3egR41Is<\4eTd9JF"H-b)i(\4eTd9JEqS3qr"(s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8Vi[kNM:$kj7d#gt^T<hU9p) +daZk#bfeYGXQXIoqeSRqCdIr760N,Yq.2_dFAD^L60N,YqeSR^CeX_J:A\ink\NriFAD%99`&p, +qeSR^CeX_J:A]-.e6YPQ9JEtM0ZdHZ\4eTd9JH7b_#OH7s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8VHWp#tc2k1nbFgtp`>hU9p)daZjkbg"Scf%A3ibKS5qP^WFN:A]-.qfGU1FAD^T:A]-. +qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qKuEAHs$8f:AT??qfGU0Hs$8f:AT??qKuEBFAD[[=SdDI +qfGU0Hs$5m=Sm28qKuEBFAD[[=SdDIqKuEAHs$8f:<-U6\4eU?Z`*p(s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726k1nbFgtpK/f%A3i`5T^=bg">Tc-+>U +`5T^=bg"eQ[ebARqKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEAHs$5m=SdDI +qKuE?K4=\)=SdDIqKuE1HsZjQs8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2g"bH4eCMgec-+>U +`5T^6`Pod7`Q)I\qfGU0Hs$8f:AT??qKuEAHs$5m=Sm28qKuEAHs$5m=SdDIqKuEAHs$5m=SdDI +qKuEAHs$5m=SdDIqKuE?bJ=/Xs8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkL.l2daZjd`Pod7`Q#R% +`5T^-]Y2@nZ+!Xm[o5?;?:=R@@etISqKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEBFAD[[=SdDI +qKuEAHs$5m=Sm28qKuEAHs$4*iW&rXs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_G +i8j(SgtpK/f#u:^`5T^-]Y1qi]t:qj['[3P]Y1\Z[(Eua]=bht>YV_%0ZQg9\4eTs9.Kg\:AT?? +qfGU0Hs$5m=Sm28qKuEAHs$8f:AT??qKuEAHs$5m=SdDIqKuEAHs$8f:AT??qKuEBFADY.Mr<[Z +g"bH-bg")F`Oidr['[3I['[3I[(2Wi\4eTd9JEtM0Xse1\OIsV9JFL[.f4<_qKuEBFAD[[=SdDI +qKuEBFAD[[=Sm28qKuEAHs$8f:AT??qKuEAHs$8f:AT??qfGU/gsQ0%s7H$\m.9o.jQGI^kLnYI +daZjg[BZZA<4GUU\4eTd9JEtM0Xse1\4eTd9JEtM0\U"pqKuEAHs$5m=SdDIqKuEAHs$/r@etIS +pk*&PHs$/r@etISpk*&PHs$5m=SdDIqKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEAHs$3/Fnsh? +o_/+Em-ilnkL.l2bKS5L`PoI%]rS6:Unsl_V50o`Unji_UnsldFChsU0Xse1\4eTd9JF"H-b)i( +\OIsW7OP]>0Y'Y#e6YQ?FAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-.qfGU1FAD^T:A]-. +qfGU1FAD^T:A]-.qfGU1FACH+]u7n/]=bha['Zm8Xe_ehUnslWSt)=BS=H1@S=Z7LN/"2t/#G]b +`&9TP6n>f;-`09^VF2rQ2E7R%/%J+sVF2rF7OP`9-g>/,k\NriCdI9$9`&p,k\NriFAD%99`&p, +k\NriFAD%A<p4?nqfGTsFB7UA9^$:dqfGTsFB7UA9`&p,q:sBts8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s43Bbe6YPm?:<:L7+>O2e6YPm?:<:L7+kj- +e6YPr>s$_F44IS)fj-\`<*7gZ44IS)bZ%]t<%ZU+7*JV4fj-\M7OP'$/#G]bVF2r36n>-&/%J+s +VF2r36n>f;-`09^VF2r36n?KDAG#Tks8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o:oC_>6n(HLQg"bH:bfeIU;qY_Pl"!'4AOkEb8(hHD +fk!\,AOkEb8(qfVfk!\;CeWMn8(qfVk\NrGAOks#9\EuIk\NrGAOkuq5hT^=fj-\L9JEtM0Xse1 +\4eTd9JEtM0Xse1\4eTd9JEtM0\EJ!s8W,kpA+@Sq=OCVo_/+IoC_4`_WYf0k\NrVCeX&/9\O>[ +k\NrHD,BG49^-(Qk\NrVCeX&/9^$:dk\NrVCeX&/9^$:dk\NrHD,BG49\O>[\4eTd9JEtM0Xse1 +W(f.Z9JEqS3k.j;aa@b$s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n(HLQg"bH4eCN'tf#u:^bKS5rHsZ#Q9^$:d +k\NrVCeX&/9^$:dk\NriFAD^T:?ZLfqfGTsFB7UA9`&p,k\NriFAD%A<r6u6k]BkhFB7(+8%2DX +[o5>t9JEqS3k&$KgS9u4s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n)iE\ +g"bH4eCN'tf$`(!bKS5Sbg">Tc.L7`kDO?VHs$5m=SdDIqKuEAHs$5m=SdDIqKuEBFAD[[=Sm28 +qKuEAHs$8f:AT??qKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEAHs$5m=SdDI +qKuE/FB86c=R(9?fk![_;``!XIK0?Is8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_>6n(HLQdaZjreCMgec-+>U`5T^JbfdrD`QQKM`5T^WS;6rg=SdDI +qKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuE?K4=\)=SdDIpk*&PHs$5m=SdDIqKuE?K4=\)=SdDI +prgJQs8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQG4OhU9p)fZ_OW`Pod7`Pfa7a-hq->YY'B=SdDI +qKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuE?K4=\)=SdDIpk*&PHs$/r@etISpk*&PHs$/r@fQK. +s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2g"bH;gtp5uc,@T?`5T^-]Y1qi]t:qj\?2d?;`_Bd3ne(% +pk*&NK4=V.@ebRbqKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEAHs$/r@etIS +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n)39idaZjkbg")F`Oidr +]=bha['[HX]sP/R]=bha['[3I['t-d\4eTd9JEtM0XjtAk\NrhHs$5m=SdDIqKuEAHs$5m=SdDI +qKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEAHs$5m=SdDIq36$TgtpK/f#u:^`5T^-]Y1qi]sP/R +['[3=N/"i90W7]'\4eTd9JEtM0Xse1a]U_%Hs$5m=SdDIqKuEAHs$5m=SdDIqKuEAHs$5m=Sm28 +qKuEBFAD[[=Sm28qKuEAHs$&tD"RGso_/+Em-ilnkMYFadaZjkbg!VVKr7m7\4eTT9f9FS0W7]' +\4eTd9JEtM0XjtAk]Bl%Hs$5m=SdDIqKuEAHs$5m=SRMXqKuE?K4=V.@d8>Ipk*&NK4=\)=SRMX +pk*&NK4=\)=SRMXqKuE?K4=\)=SRMXqKuEAHs$&tD#2)Os8W-!s8V`bq<726i8j(LeCMgec,@T? +['[3I['ZX*Unji_Unsl_V50o`UoA3<W(f.Z9JED>27Z1(W(f.Z9JEtM0W7]'\4eTd9JFRk48O>, +qKuEAHs$5m=SdDIqKuEAHs$5m=SdDIqKuEBFAD%A<r.2Gk]Bl%Hs#TS<p4X+k]BkhFB7UI<p59S +daZjkbg")F`O*"ZX/rG!V50WQS=H1@S=Z7@St)=BS=,S)W(f.H6n>-&/#G]bVF2r36n>-&/#G]b +VF2r36n>f;-`09^VF2rf>s%q*:?ZLfk\NrVCeX_J:?ZLfk\NrVCeX&7<p4?nk]BkhFB7UI<p4X+ +k]BkhFB7UI<p4X+k]BkhFB84mdJs7Hs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+0E`:"`9ugL5a';?g?:;h=:!$O"a]U^T?:;n<43(T#a]U^L<*7XV7*/Rn +e6YPb=Zb;B43:Vefj-\[>YW73.],TaVF2r36n>-&/#G]bVF2r36n>-&/#G]bVF2r36n>-&/#G]b +daZkJs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq=OCVkj7crjQG4OhU9p)ert[<AOkEb8(hHDfk!\,AOkHk:tfb_g20[?D,Ar':tfb_ +k\NrGAOkHk:tfb_g20[?D,BG49\O>[g20[MCeVlZ9"7PK\4eTT9f9CY3iGb1[o5>s;`^jO27HLF +Vc5n5XInkNp%7tRo_/+QpA+(Hp#tc2kbX?oD,Ar':tfb_g20[?D,Ar':tfb_g20[?D,Ar':tfb_ +g20[>AOkHk:tfb_g20[?D,Ar';!;^hg20[>AOj7(0W.l7W(f.J9f9CY3iGb1W(f.J9f:S9[f?C- +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\kj7d%m-iW_hV$]@daZjreCMgec.f"Wk]BkhFB7UI<p4X+k]BkhFB7UI<p4?n +k]BkhFB7UA9^$S!k]BkhFB7UI<p4X+k]BkhFB7UI<p4X+k\Nqj<'Rij3k&$KVc5mi;`_@'=o\O% +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o6m-iW_hWEVKdaZjreCN'tf#u:^ +bKS5Sbg"eQ[d&6HqKuE/FB86c=Qjj-qKuE/FB89\:AT??qKuEAHs$5m=SdDIqKuEAHs$5m=SdDI +qKuE1HsZYs=SdDIl?lq7Hs$5m=R(9?qKuE1HsZ)c?M]%Ol?lq'HsZYs=R1QLpk*&2E`BMH3k'3? +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +kj7crjQG4OhTO-ffZ_O^bg">Tc,@T?bKS5L`Pp$Ec,RE-pk*&NK4=\)=SRMXpk*&NK4=\)=SRMX +pk*&NK4=V.@ebRbpk*&NK4=\)=SRMXpk*&NK4=V.@ebRbpk*&PHs#TeD#aP8s8W-!s8W-!s8W-! +s8W,coC_>6n(HLQdaZjreCMRW`Pfa7`5T^6`Po<.@d%o7pk*&NK4=V.@ebRbpk*&NK4=V.@ebRb +pk*&NK4=V.@ebRbpk*&NK4=V.@ebRbpk*&NK4=V.@ebRbqS]K8s8W-!s8W-!s8W-!s8W-!s8W-! +kj7d%m-iW_hU9p)bKS5N]Xl&#`Oidr`5T^-]Y2@nZ+!Xm[o5?AD,C"[@ebRbpk*&PHs$/r@ebRb +pk*&NK4=V.@etISpk*&NK4=\)=SRMXpk*&NK4=V.@ebRbpk*&KLi!+ks8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o.jQG4OhU9p)`5T^6`Poj0]">Vg['[3P]Y1\Z[(Eua +['[3LHtp/b0XjtA[o5>t9JG.28,@U8qKuEAHs$5m=SdDIqKuEAHs$5m=SRMXqKuE?K4=V.@ebRb +pk*&NK4=V.@ebRbpk*&PHs$&tCt[V#daZjd`PoI%]sP/R['[3I['[3I['t-dW(f.Z9JED>27Q=6 +W(f.J9f:U88,.^GqKuEAHs$5m=SdDIl?lq7Hs$5m=SdDIpk*&PHs$5m=SdDIqKuEAHs$5m=SdDI +q5'#9oC_>6n)39ig"bH4eCM[JZ*nIOW(f.J9f9FS0W%5gW(f.Z9JED>27Q=6a(%a<Hs#Z]?M]%O +l?lq'HsZYs=R(9?l?lq'HsZ)c?KuoEl?lq7Hs#]dAEnPKl[i[4HsZT#@d8>Il?lq5K4=+n?MK.^ +l[i[5Jn4Y/@eljYo_/+\s8W-!s8W-!o_/+Em-ilnkLnYIdaZj[]Y1qi]rS6:Unsl_V50o`Unji_ +UnsldFChsU0W7]'W(f.J9f9FS0W7]'W(f.Z9JED>25j5,a';@&FB7UI<pG'=k]BkhFB86c=Qjj- +k]BkhFB7UI<pG'=qKuE/FB7[S?KuoEk]BkjHsZ#Y<pG'=k]BkVRZQ4XhU9p)`5T^-]Y1\Z[%sOo +UnslWSt)aJQ(4G9S=Z7@St)`R25WblVF2r36n>-&/#G]bVF2r36n>-&/#G]bVF2r36n>-&/&tmh +k\NrVCeX&7<p4?nk\NrVFB7UA9^$S!k\NrVFB7UA9^$S!k\NrVFB7UI<p4X+k]BkhFB7UA9^$S! +q:sBts8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V?6f?%/W +a]U^I=Za`.43(T#a]U^G>YW7D:!$O"a';?\=ZaZ/:!$O"a]U^I=Za`.43:Vea]U^G>YW=C43:Ve +\4eTR6n>-&/#G]bVF2r36n>-&/#G]bVF2r36n>-&/#G]bVF2rGAP_slq>^Kps8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2 +k1nbFgtp\r[b54^g20[?D,Ar':tfb_g20[?D,Ar':tfb_g20[?D,Ar':t'G`g20[?D,Ar':tfb_ +drJC@D,Ar':t'G`aDFnc;`^gU5IXQPVc5mi;`^gU5GqIF[o5>c<'Rij3nUg@m.9oBpA+(Hp$D;C +m.9o6m-iVdGhR"2g20[?D,Ar':tfb_g20[?D,Ar':tfb_g20[AE`Cb0:tfb_g20[?D,Ar':tfb_ +g20[?D,Ar':qBq$W(f.J9f9FS0W7]'W(f.J9f8kD25j5,q;gN7s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq<726 +k1nbFgtpK/f$`(!bKS5`]XHU9<7l=uk]BkXF^4-P<p4X+fQCH_FB71;<9SF)k]BkhFB7UI<p4X+ +k]BkhFB7UI<p4X+k]BkWHt);]<ju!gVc5mY<'Rij3i>qAVc5n\s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<726kj7ckgtp`>hU9p)daZjreCN9rbKJ,SbKS5`XIng1AEnPK +qKuE1HsZYs=R(9?l?lq'HsZ)c?KuoEl?lq'HsZ)c?KuoEl?lq'HsZ)c?KuoEl?lq'HsZ)c?KuoE +l[i[5Jn42!AGCddl?lq(Jn4Y/@dAVVl[i[4HsZ#Y<k;R*\m7c#jPg.=s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#+oog"bH;gtp5uc-+>U +bKS5L`Pp$Ec,@T?bKS5L`Ppr/L\QL2k_<pKK4=V.@dAVVon[GMJn4Y/@dAVVpk*&NK4=V.@ebRb +pk*&NK4=V.@ebRbpk*&PHs#]dAGCddl?lq5bJ=/Xs8W-!s8W-!s8V`bq<726i8j(SgtpK/f#u:^ +bKS5L`Pod7`Q4jGa(%a:K4=V.@eGOnpk*&NK4=M0D"rWlpk*&NK4=M0D"rWlpk*&NK4=V.@ebRb +pk*&NK4=V.@ebRbpk*&KLi!+ks8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#+oog"bH4eCMRW`Oidr +]=bhq`PoI%]u7n/\?2d?;`_Bd3ll/;qKuE?K4=V.@ebRbpk*&PHs$/r@ebRbqKuE?K4=V.@ebRb +pk*&NK4=V.@ebRbpk*&NK4=V.@eGOns8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8VHWp#tc2g"bH4eCMgec,@T?]=bha['[HX]sP/R]=bha['[HX]r-6sW(f.I<'R<U27HLF +a(%a:K4=V.@ebRbpk*&NK4=V.@ebRbpk*&NK4=.uAG(appk*&AJn4Y/@dAVVpk*&AJn4Y/@dAVV +l[iZqeCMgec,@T?]=bha['[3I['[3IX/rG%AQ5U&25j5,W(f.J9f8kD27Q=6k]BkjHsZ)c?MK.^ +l?lq'HsZT#@d8>Il[i[DHs#Z]?M]%OqKuEAHs$5m=SdDIqKuEAHs#UFYi+U*i8j(SgtpK/f!pp% +Vc5mZ9f8kD25j5,W(f.J9f8kD25j5,[o5?AD,C(V=R(9?qKuE1HsZ)c?MK.^l?lq(Jn4.o?MK.^ +l[i[5Jn42!AF"hXl[i[5Jn42!AEnPKl[i[5Jn42!AF"hXl[i[5Jn42!AG(appsdFcs8W-!s8W-! +s8W-!s8VHWp#tc2i8j(LeCMgec,@T?['[3I['ZX*Unji_Unsl_V50o`UoAHIW(f.J9f8kD25j5, +W(f.J9f8kD25j5,W(f.Z9JFRk46h3"pk*&@HsZ)c?KuoEl?lq'HsZYs=R(9?k]BkhFB7UI<pG'= +k]BkhFB7UI<pG'=k]BkhFB7UI<p6B@g"bH4eCMRW`Oidr['[3@XKA:pUn"$HS=Z7@St)=BS=H1@ +VHZKd6n>-&/#G]bVF2r36n>-&/#G]bVF2r36n>-&/#G]bVF2rE9JG[H9\O>[k\NrVFB7+4;!;^h +k]BkhCeWW)<9SF)gi?BXFB71;<8;Lngi?BJD,B#.<8;Lng20[MFB7YVfDkmNs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!fY"Z(>t)e=:!$O"\m7bH=ZaZ69"J:s +a]U^I=ZaZ69$(3ta]U^I=ZaZ/:!$O"a';?\=ZaZ/:!$O"a]U^:>t(VY/#G]bVF2r36n>-&/#G]b +VF2r36n>-&/#G]bVF2r36n>-&/'*p-o_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkLnYIdaZjiHtV,D8(2KW +a(%`qD,A;j<8)1caDFo1D,A;j<7>kdaDFo1D,A]%;qc(bdrJC@D,A]%;quCmfQCHSE`C+s<2W\[ +VHZKu;`^gU5GqIFVHZKu;`^gU5GhXRVHZL1XJP:Tp$D;Cm.9oBpA*q=n)39ifQCHSE`CM.;quCm +drJCBE`Ch7<7>kdgi?BCE`:G-;qQ4tdrJC>F^3RA>hF1(g20[=F^3^B<7>kdgi?B*>t(\d25aD< +Vc5mZ9f8kD25aD<W(f.XCg$f<s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-j0)n)iE\daZjreCN9rbKJ,S +fS".pF^3OG@b>g.fQCHOF^3RA>j-91fQCHOF^4-P<nMP"k]BkXF^4-P<nMP"l?lpjF^3OG@d8>I +f6h&=>t(Yj5GqIFVc5mY<'R9[5PaC!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA*q=n)39ik1nbFgtpK/f#u:^daZjkbg">Tc-+>Ujd_+kHsZ)c?KuoEl?lq'HsZ)c?KuoE +qKuE1HsZ)c?KuoEqKuE1HsZ)c?KuoEl?lq'HsZT#@dAVVpk*&AJn42!AF"hXl?lq(Jn42!AF"hX +l[i[5Jn42!AF"hXa(%`=>=IbgYlFb's8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-j)lgtCK>daZjkbg">Tc-+>U`5T^=bg")F`QQKM +fX.aDL2?X;@d&P_k_<p;L2?(.D"WU#k_<p;L2?(.D!6Uil[i[5Jn42!AF"hXl[i[5Jn42!AF"hX +l[i[5Jn42!AD)ods8W-!s8W-!s8W-!o_/+Em-j)lgsX^'fZ_O^bg")F`Pfa7`5T^)Htq;V>jHuP +on[GWLhuj=@d&P_pk*&KLhuj=@eGOnpk*&KLhua?D"rWlon[GWLhua?D"WU#on[GWLhua?D"kK; +s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQG4OhTO-f`5T^6`Pod7`Oidr`5T^-]Y2=t\u91> +[o5?/D,g1aD"rWlon[GZK4=V.@eGOnpk*&NK4=V.@eGOnpk*&KLhuj=@eGOnpk*&KLhua?D"WU# +on[G[P]d$+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkLnYI +bKS5L`PoI%]t:qj['[3P]Y1\Z[(Eua['[3LFCM.I5GqIFVc5mY<'SE59'_(>l[i[5Jn42!AF"hX +l[i[5Jn42!AF"hXpk*&AJn42!AF"hXl[i[5Jn42!AF"hXl[i[4HsZK%CsphabKS5L`PoI%]sP/R +['[3I['[?FWi&f\W(f.J9f8hJ5H%:6W(f.I<'TYq?L*2Rl[i[5Jn42!AF"hXl[i[5Jn4Y/@dAVV +pk*&AJn42!AF"hXl[i[4HsZ)c?L*2Rk01s#gtpK/f#P2'WGQ"@9f8kD25j5,W(f.J9f8kD25j5, +W(f.i@nQ$6?KuoEl?lq'HsZ)c?L*2Rl[i[4HsZ,jAF"hXl[i[5Jn4.o?L*2Rl[i[5Jn4)"D!Q[` +k_<p>Jn42!AF"hXl[i[5Jn42!AF"hXq5'#Ls8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkL.l2 +bKS5L`PoI%]rS6:Unsl_V50o`Unji_UnsldFChCF25j5,W(f.J9f8kD25j5,W(f.J9f8kD25j5, +a(%a,HsZ)c?KuoEl?lq'HsZ)c?KcK3k]BkhFB7[S?KcK3k]BkhFB7UI<nMP"k]BkXF^3RA>hF1( +fQCHO[&hs9hU9p)bKS5L`Po3k[&^:1UnslWSt)=BS=H1@S=Z7@St)0N8Z"m+VF2r36n>-&/#G]b +VF2r36n>-&/#G]bVF2r36n>-&/%8G<g20[MFB71;<8)1ck\NrJE`Cb0:u$(jgi?BLE`Ch7<8)1c +gi?BLE`Ch7<8;Lngi?BLE`Ch7<8)1cq:sBts8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA*:.ON1j'\m7b9>t)k<41\]d\m7bH=Za3#7Clbna]U^:>t)eD9$(3t +\n+[X@nOjG43(i'a(%`^@nOdO9"._[VF2r36n>-&/#G]bVF2r36n=[$4JkLsVF2r36n=[$4JkLs +R85rt]XIk?s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7ckgtp`>hU[mAaDFntD,eu);oifTg20[-D,eSn<7>kd +g20[*DI1e4;q#bcdrJC9E`:V5>hF1(aE1b@F^3RA>hF1(`GT"[<'R6a7Aj*LVHZKd>=GGh5GhXR +VHZKe<'R9[5KKq&p[%)0oC_>6n*'-,kj7d&e^rGr>hF1(fQCHOF^3RA>hF1(fQCHOF^3RA>hF1( +fQCHOF^3RA>hF1(fQCHOF^3RA>hF1(fQCHOF^3C9;l<SZVc5mY<'R9[5GqIFVc5mY<'R9[5KK%A +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7ckgtp`>hU9p)bKS5Sbg"_-OP"\\fQCHOF^43Z?J'C* +fQCHOF^3RA>j-91fQCHOF^4-P<nMP"fQCHaHsYHJ>h=@4k]BkWHt(`N>fU>HVc5mY<'R9[5GqIF +Vc5nE]WhG9s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o6m-j)lgtCK> +g"bH4eCN'tf#u:^fZ_O^bg">Tc0:I@l?lq(Jn4.o?L*2Rl[i[5Jn42!AF"hXl?lq(Jn42!AF"hX +l[i[5Jn42!AF"hXk_<p=HsZ#kD!6Uik_<p;L2?(.D!6Uik_<p>Jn42!AF"hXl[iZk@V)E@7EC[G +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<[_Gi8j(SgtpK/f%A3ibKS5L`Pp$Ec,@T?`5T^=bg")F`T<VFk_<p;L2?(.D!-^r +k_<p:MfIp<ET`7"k_<p;L2?%2ETi-non[GJL2?1-AE\bal[i[2L2?1-AF"hXon[GLHsZ'ffDkmN +s8W,kpA+(Hp#+oog"bH4eCMgec-+>U`5T^6`Pom*Z+=LBk_<pHLhuC/AE\bak_<p:MfIs8D!-^r +k_<p:MfIs8D!6UikDO?DL2?%2ETi-nk_<p;L2?(.D!-^rkDO?[s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA*q=n)39ig"bH:bfdrD`Oidr`k8mp]Y1qi]u7n/]=bhcCg!W>7E8n1on[GWLhua?D"WU# +k_<pHLhua?D"WU#on[GWLhua?D!6Uion[GJL2?O=D!-^ron[GWLhu74EV5-(s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6/h<i8j(SgtpK/f#5PH]=bhh]Y1\Z[(Eua +['[3P]Y1\Z[&.%rVc5mY<'R9[5GqIFdrJCNL2?1-AE\baon[GMJn42!AE\bal[i[2L2?(.D!Q[` +l[i[2L2?1-AE\bal[i[5Jn42!AF"hXk_<osbg")F`Oidr['[3I['[3I[&^:1W1'!L<'R9[5GqIF +Vc5mY<'R9[5It,hl[i[4HsZ,jAE\bal[i[5Jn4)"D!Q[`k_<p>Jn42!AF"hXl[i[5Jn42!AF"hX +l[i[5Jn3NXbL4nk\XJb[>=GJb2476&W(f.I<'R<U25j5,W(f.Y;``BJ;sJa:l[i[5Jn4Y/@dAVV +l[i[5Jn42!AF"hXl[i[2L2?1-AE\bak_<p;L2?(.D!6Uik_<p;L2?(.D!6Uil[i[2L2?1-AE\ba +kDO?UgsQ0%s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(Sgtp5uc,@T?['[3@XKA:pUnji_ +Unsl_V50o`UoAHIR85rD9f8>74K(t3W(f.J9f8kD25j5,W(f.J9f9Ln:[3=6l?lq%FB7UI<pG'= +k]BkWHt)Ag?IsR6k]BkWHt);]<nMP"fQCH_FB7%:>hF1(fQCHOF^3RA>iio@i8j(LeCMgec,@T? +['[3I['ZX*Un"$HS=Z7LR['D7S=H1@Qs!"K:HYLB/#G]bR85rB6n>-&.ssB?VF2r36n>-&/#G]b +VF2rG>t*Oh<7l=uk]Bk\E`C\6>hj@!gi?BLE`Ch7<8;LnfQCHSE`C\6>gm^lgi?BLE`Ch7<7l=u +gi?BHF^41]fDkmNs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +aFnTF>t)>17Clbn\m7b9AP^EN41\]d\n+[Z=Za3+:WHs;\n+[K>t)eD9"JS0a(%`QAP^?V9"JS0 +a(%`><'R<U2476&R85r5:HY%@4IJu-VF2r&:HY%@4IJu-VF2r&:HYOS5N(Vcs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+QpA*q=n)39ig"bH*XJNmR?H?t_`GT#$DI1D+?H$egaE1b-DI1D+?H@4paE1b0FC)q(?H@4p +`GT#'FC*%1?H@4paE1b0FC*%*<2W\[VHZKe<'R6a7Aj*LVHZKe<'QaQ8Z,NPVHZL1XJP.In*'-, +m.9o6m-j0)n(>:]aE1b0FC*%1?J'C*aE1b?Ht(3FB@q?3f6h&KFC*RH@b>g.f6h&LHtUQKB@hN? +aa@aQHt(0=?IsR6`GT"[<'R9[5GqIFVc5mY<'R6a7Aj*LVHZLAXIoOms8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA*q=n*'-,g"bH4eCN'tf#u:^fW:^tF^3OG@b>g.f6h&[F^3OG@b>g.fQCHOF^3OG@b>g. +f6h&ZHt(`N>h=@4f6h&[F^3OG@b6!:f6h&HDI05?5GqIFVc5mY<'QdH4P6a-s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7d#gt^T<hU9p)daZjreCN'tf#u:^ +bKS5N]Xm9aES,q^k_<p>Jn3MeDX)UUfS"/.Jn4)"CtF&Dk_<p*Ht)DnACuQQl?lq%L2>Ih@d&P_ +fS"/.Jn3MeDWlgkfS"/+L2?(.CtODYk_<p;L2=qQ?D^pq[sVrjs8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n)iE\ +daZjreCMgec-+>UbKS5Sbg")F`QQKM`5T^9[B\nQETi-nkDO?CMfIs8D!-^rkDO?DL2?%2ET`7" +k_<p:MfIs8D!6Uik_<p;L2?(.D!6Uik_<p>Jn4)"D!6Uies_^#s8W-!s7H$\kj7crjQFt@f$`(! +bKS5L`Pod7`Pfa7VhBHHE`;1VD!6UikDO?CMfIp<ETi-nkDO?DL2?%2ET`7"kDO?CMfIp<ET`7" +kDO?CMfIp<ET`7"kDO?CMfJQpPlLd`s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQFt@f$`(! +`5T^-]Y28&`Oidr`5T^-]Y28&`M\*&Vc5ml>t*q7ETi-nk_<p:MfJEGD!-^rkDO?CMfIs8D!-^r +k_<p:MfIp<ET`7"on[GJL2?%2ET`7"kDO?QLhu_Wq>^Kps8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_&&kLnYIdaZjd`Poj0]">Vg]=bha['[HX]sP/R\XJb[>=FrU4Jl=O +Vc5mY<'Su^@d&P_k_<p;L2?(.D!6Uik_<p;L2?(.D!6Uik_<p;L2?(.D!6Uik_<p;L2?(.D!6Ui +k_<p;L2?+=IF?WrbKS5C]Y1\Z['[3I['[3I['ZcrOI00BVc5mJ=\5Mj5GqIFVc5mlAP_NED!6Ui +k_<p;L2?(.D!6Uik_<p;L2?(.D!6Uik_<p*Ht);oD!6Uik_<p;L2?(.D!-^r`k8m^D-s2?5FG;0 +Vc5mY<'R9[5FG;0Vc5mY<'Rs*:[3=6k_<p>Jn4)"D!Q[`k_<p>Jn4P1D!6Uik_<p;L2?(.D!6Ui +k_<p;L2?(.D!6Uik_<p;L2?(.D!6Uik_<p;L2?(.D!6Uik_<pJ\YfE,s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!m.9o6m-ilnkL.l2bKS5L`PoI%]sP/RUnsl_V50o`Unji_UnslbHuPKL4K(t3 +R85rD9f8>74IJu-W(f.;:HY%@4IJu-\m7bVHt(]T@dAVVf6h&ZHt(`N>j?]CfQCHOF^3RA>hF1( +fQCHOF^3RA>hF1(fQCHOF^3RA>hF1(fQCHN`4ajZhV$]@bKS5L`Po3k['[3IUnslWSt)=BS=H1@ +S=Z7@St)0N8Z"m+MGZ^;6n=-l6Dd.$R85rB6n=[$4JkLsHoaBX:HY%@4M"fefQCH_FB7%:>hF1( +fQCHOF^3RA>hF1(fQCHOF^3RA>hF1(fQCHOF^3RA>fCSefQCHOF^3"0?J'C*q:sBts8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC]S?C:[\>\m7b9>t)>17Clbn +\n+[KAP^?V9"JS0\n+[KAP^?V9"JS0aDFnfAP]mK:V(+5a(%`QAP]mK:T%/VR85r5:HYLB/"'0q +R85r5:HY%@4IJu-R85r5:HY%@4IJu-Qs!#QpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7d%m-j)lgt0KX +`GT#'FC*%1?H@4paE1b0FC*%1?H@4paE1b0FC*%1?H@4paE1b1HtUNB?H@4paE1b1HtUNB?HIS- +[VT*6=\4u`8XNXPR85r4=\4u`8XW@:Qs!"J=\4u`8]\!0kj7d%m-j0)n*'-,kj7cj[&h>j?H@4p +fQCH@HtUNB?IsR6aE1b?Ht(3FB@hN?aa@aCHtV&Y@`WXtf6h&LHtV&Y@`a"1f6h&LHtTm(=f54` +VHZKd>=GDn7Aj*LVHZKd>=GGh5M*ies8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o.jQG[\gsX^' +daZjkbg"eIXOhi/f6h&ZHt(`N>h=@4fQCHNHt(]T@b6!:fQCHNHt(]T@b6!:f6h&[F^3OG@b6!: +f6h&ZHt(]T@`WXtR85rC<'QaQ8Z,NPQs!#$R>q7Hs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2g"bH;gtpK/f$`(!bKS5Sbg"eabKJ,SfX.a4KPp".CtODY +k_<p+KPp".CtODYfS"/.Jn3MeDV0V[fS"/-HsYHYDV0V[fS".oHt);oCtF&DfS".pKPp".CtF&D +fS"/+L2>LqDV'8FVHZKfAQ8EjkPtS^s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o.jQG4OhU9p)daZjd`Pod7`Pfa7 +bKS5L`Pod7`Pfa7l'-VLN-O!.DWcptfo11=MfIp<ET`7"kDO?CMfIF/Git!)fo11>L2>P%Gj'lu +k_<p;L2?(.D!6Uik_<p;L2>Ih@d2Fpm.9o6m-ilnkLnYIdaZjkbg">Tc,@T?`5T^8]Xk[c:YLJ2 +k_<p;L2?(.D!6UikDO?CMfIp<ET`7"kDO?CMfJ!GIHQN.kDO?CMfIp<ET`7"l'-V\P^V_QETr^9 +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n)39ig"bH-bg")F`Oidr`5T^-]Y28&`Oidr +]=bhdNJ3a&8Z#]\k_<p:MfIp<ETi-nkDO?DL2?(.D!-^rk_<p:MfIs8D!6Uik_<p:MfIp<ET`7" +kDO?CMfIp<ET`7"prgJQs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6T@M +kj7ckgtpK/f#5PH]=bhh]Y1\Z[(Eua['[3P]Y14rI$e&.VHZKV=\5Mj5GhXRfo11=MfIs8CtODY +k_<p+KPp".CtODYk_<p+KPoFqDWcptfS"/*MfIC&DWcptfS"/+L2>LqDWlgkes_]Dbg")F`Oidr +['[3I['[3I['[3IW/QJ/<'QaQ8Z,NPQs!"J=\5Mj5IPB2kDO?5N-OQ@D!-^rfo11>L2>LqDWlgk +fS".pKPp".CtODYk_<p+KPoFqDV0V[fS".oHt'$c<1-NER85rC<'QdH4IJu-R85rC<'R9[5KIqQ +k_<p;L2?(.D!6Uik_<p;L2?(.D!6Uik_<p;L2?(.D!-^rkDO?CMfIp<ET`7"kDO?CMfIp<ET`7" +kDO?4KPot2ES,q^fS"/,P^WAgiUlj>s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2 +i8j(Sgtp5uc,@T?['[3@XKA:pUnji_Unsl_V50o`UmH1=R85r5:HY%@4IJu-R85r5:HY%@4IJu- +Vc5mK:HZ4":[3=6fS".oHt(]T@d8>If6h&[F^3OG@d8>If6h&[F^3OG@d8>If6h&[F^3OG@d8>I +fQCHNHt(`N>iio@i8j(Sgtp5uc,@T?]=bhXXKAP)XdkuQS=Z7@St)=BS=H1@Q=Ep_:HYLB.uI1j +VF2ql;*q-J/"'0qR85r5:HYLB/#G]bR85rS;``NX@b6!:f6h&mHsYEP@b6!:f6h&ZHt(`N>h=@4 +fQCH@HtV)S>hF1(aE1b@F^3RA>f_"nfQCH?FC+4^fDkmNs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq=OCV[VT*XAP]mK:V(+5\n+[KAP]mK:V(+5\n+[KAP]mK:V(+5 +[VT*XAP]mK:V(+5\n+[KAP]mK:UY(B\n+[*:HY%@4IJu-R85r5:HY%@4IJu-R85r5:HY%@4IJu- +R85r5:HYP&E:il"s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#+ooi8j(LeCM]_?FP#c[VT*UFCM_$@^gGg +[rc)gFCM_$@^gGg[rc)tH[WAF@`WXt[rc)tH[WtW?FP;saE1atHtp*+=dW>`Qs!"J=\4u`8XNXP +Qs!"J=\4u`8XNXPQs!#%Un-`9n*'-,kj7d%m-ilnkLcl.aE1b1HtUNB?HIS-aa@aBFC*(:B?>O6 +aE1b1HtV)S>fhA+aa@aCHtUQKB?>O6aE1b1HtUNB?IsR6\n+[)=\5Mj5F>SFVc5mJ=\4u`8XNXP +Qs!#CbfTnbs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8Vi[kNM:$g"bH;gtpK/f%A3i`5T^IHt(]T@`a"1 +f6h&ZHt(]T@b6!:f6h&ZHt(]T@b6!:f6h&ZHt(]T@b6!:aa@aRF^3%9B@hN?aa@aBFC(hK7@74L +Vc5mJ=\4u`8][*Ks8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +p[%),m-ilnkN:RTg"bH4eCN9rbL4nkbKS5Sbg">Tc.K+ifS".pKPoFqDV0V[fS".pKPoFqDV'8F +fS".oHt(`]DV0V[fS".oHt(`]DV0V[fS".pKPoFqDV0V[fo11.KPoFqDV0V[fS".@AQ5O27G#Jk +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2g"bH4eCN'tf#u:^fZ_OW`Pp$Ec,@T?bKS5L`PpK:XOr2D +fo11/N-O!.DV9tnfo11.KPoJ%Gh@[efo11.KPoJ%Gh@[ekDO?4KPoJ%Gh@[efo11.KPoFqDV0V[ +k_<ooR>pFsn*'-,i8j(SgtpK/f#u:^`5T^6`Pod7`OM+i[VT+1L2?%2ES6:qkDO?5N-ONDES,q^ +fo11=MfIF/GhJ%#fo11/N-O$7GhJ%#fo11/N-O$7Gh@[efo11>V2tZVs8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\kj7crjQFt@f$`(!`5T^-]Y28&`Oidr`k8mp]Y28&`ODY9Qs!"X>=HY]BBY(d +fo11=MfIF/Git!)fo11>L2>P%Gh@[efo11=MfIC&DV9tnk_<p,N-ONDETi-nkDO?CMfIjKL]@DS +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_&&kLnYIdaZjkbg!c4]t:qj +]=bha['[HX]sP/RW+Ar*>=Fo^8Z#]\Qs!"iFCNp^Git!)fo11/N-OQ@CtXblkDO?4KPoJ%Gj'lu +fo11=MfIC&DV9tnkDO?5N-ONDES6:qfo11/N-O!^XNSi4`5T^&['[3I['[3I['[3I['ZcjL6u+8 +Qs!"J=\5Mj5F>SFQs!#%FC+-gES6:qfo11/N-O!.DV9tnfo11/N-O!.DV9tnfS".pKPoFqDV0V[ +fS"/+L2>LqDV0V[Qs!"K:HY"I8XW@:Qs!"Y<'QaQ8\/J/fS".rKOX,&ES,q^kDO?4KPp".D!-^r +fS"/+L2>P%Git!)fo11=MfIp<ES6:qkDO?5N-ONDES6:qkDO?5N-O$7GhJ%#k_<p,N-P*-VZ6\r +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-ilnkL.l2bKS5L`PoI%]sP/R +Unsl_V50o`Unji_UnslRFDI:?4IB8CR85r5:HY%@4IJu-R85r5:HY%@4IJu-\n+[iKPoFqDV0V[ +fS".oHt(`]DV'8Ff6h&ZHt(]T@dAVVf6h&ZHt(]T@b6!:fS".oHt(]T@b6!:f6h&[bfer*kLnYI +daZjd`PoI%]sP/RUnsl_V50WQS=H1@S=Z7LR['7C8XW@:MGZ^;6n=-l6Dd.$R85r&;*q-J/"'0q +R85r5:HY%@4M"fefQCHNHt(`N>h=@4f6h&ZHt(]T@b6!:f6h&[KPoCh@b>g.aa@aQHt(`N>fhA+ +fQCH@HtV&Y@`WXtq:sBts8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+Em-hMs:V(+5\n+[KAP]mK:V(+5\n+[KAP]aN=h80?[VT*XAP]aN=gi-L[VT*TCg"2_=gi-L +[VT*TCg"2_=d`&JR85r5:HXM36CCV3R85r5:HXM36C:nIMGZ^-=\4KJ6C:nIVgNI`s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!m.9o6m-ilnkLnYI[sVr"FCM_$@`WXt[rc)gFCM_$@`WXt[rc)gFCM_$@^gGg +aa@a1FCM_,C:A:o[sVr"FCM_,C<1L'WGQ"0=\5#W4IB8CQs!"J=\4KJ6C:nIMGZ]t;*p.;6Fa.t +kj7d%m-ilnkNM:$i8j(UUQ`07C<1L'aa@aCHtUQKB?>O6`-ZpSHtUQKB?>O6`-ZpSHtUQKB?>O6 +aa@aQHt(3FB?>O6aa@aCHtTBh<2W\[Qs!"J=\4u`8XNXPVc5mJ=\4u`8`n7=s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!m.9o6m-ilnkLnYIdaZjkbg")F`RfKHf6h&ZHt(3FB@hN?aa@aQHt(]T@b??O +f6h&[KPoCh@`3VAfS".\H[XP"DV0V[`-ZpbKPoFqDTR9=Qs!"J=\4u`8Z#]\Qs!"jPDfJ@s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mkj7crjQG4OhV$]@ +daZjreCMgec-+>UbKS5Sbg"_-OP#5(fS".pKPoFqDV0V[fS".\H[XP"DV0V[aFnTdKPn_TIFs3j +fS".pKPnkaEnH%_fS".qN-O!.DV9tnfo11/N-MdI=dW>`Q=EqepA+ags8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+Em-ilnkLnYIdaZk#bfe2Rc-+>U`5T^6`Pp$Ec,@T?`5T^HPC_DGGhJ%#fo11/N-O!.DV9tn +fo11/N-O!.DV9tnfS".qN-O!.DV9tnfo11>L2>P%GhJ%#k_<p,N-O!.DTR9=daZk+jQG4OhU9p) +fZ_OW`Pp$Ec,@T?`k8m^D-tqKDV9tnkDO?5N-ONDES6:ql'-VLN-O$7GhJ%#fo11.KPot2ES6:q +fo11/N-O$7GhJ%#fo11/N-O$7Gk^Rfs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n)39i +g"bH-bg")F`Pfa7]=bhq`PoI%]t:qj`5T^&['Z]77@74L[rc*4N-ONDES6:qfo11.KPoJ%Gh@[e +fo11/N-O!.DV9tnfo11/N-O$7Gh@[efo11/N-O$7Git!)kDO?[s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mkj7ckgtpK/f#5PH]=bhh]Y1\Z[(Eua['[3=P`V888XNXP +Qs!"X>=Fo^8_A]6fo11=MfIF/Git!)fo11/N-ONDES6:qfo11/N-O$7GhJ%#kDO?5N-O$7GhJ%# +kDO?5N-ONDES6:qfY"Z2`PoI%]t:qj['[3I['[3I[&^:1W/QIu=\4u`8XNXPQs!"J=\4u`8[ieN +fo11/N-O!.DV9tnfo11.KPoFqDV9tnfS".qN-O$7Gh@[efo11/N-O!.DV0V[fS".pKPm/[8XNXP +Qs!"J=\5#W4IB8CaE1bAN-O!.DV9tnfS"/*MfIF/GhJ%#kDO?4KPoJ%Git!)fS".qN-ONDES6:q +fo11/N-O$7GhJ%#fo11/N-O$7GhJ%#fS".qN-OHSL\^#is8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(Sgtp5uc,@T?]=bhXXKA:pUnji_Unsl_V50o`UmQOP +MGZ^.:HXM36CCV3Qs!"K:HY%@4IJu-R85r5:HYRe<7cM,f6h&[KPoCh@b??Of6h&ZHt(`]DV'8F +f6h&ZHt(`]DV0V[fS".pKPoCh@b??O`-ZpbKPoCh@bAoJi8j(SgtpK/f#5PH]=bha['Zm8XdkuQ +S=Z7@St)=BS=H1@Q=Ep_:HY%@4IJu-MGZ^.:HY%@4IJu-MGZ^.:HY%@4Gm!&R85rB>=I.k@b6!: +f6h&[KPoFb>f:u;f6h&LHtV&Y@`a"1aa@aRKPn_TIFijUaa@aQHt($@IFijUaa@aCHtVTsh#IES +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s5;u$W+Ar>AP]79<4ZX: +W+Ar:Cg"2_=gi-L[VT*TCg"2_=gi-L[VT*TCg"2_=gi-L\n+[HFCM[p=gi-L[VT*6=\4KJ6CCV3 +Qs!"<;*pXQ8W$A3Qs!"K:HXM36C:nIR85r5:HYP.I.[..s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq<726 +i8j(SgtoSqGd_Ek[rc)fCg"5h@^gGg[rc)gFCM_$@^gGg[rc)gFCM_$@^g`"[rc)gFCM_$@^g`" +[rc)gHtoWt?]%]IQs!"<;*p.;6AeW,Lg!Q2;*p(B:7,0ULg!QpUn-H)kNM:$k1nbUm-ilnkK'Hi +aa@aBFC*(:B=E8'aa@a1HtpcNB?>O6aa@aBKQ>1^B?5aHf6h&KKQ>.eEl<<Qaa@a>H[X"`B?>O6 +W+Aqq=\4u`8Z#]\Qs!"J=\4u`8XNXPQs!#4`4c3Ns8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726 +i8j(SgtpK/f#u:^f>PAEHtUQKB@hN?`-ZpaHt($@IFijU`-ZpSHtUQKB>f.Ff6h&KKQ>^uDV0V[ +aa@aRKPnkaEn>\JaFnTTKQ<G_8Z#]\Qs!"H@o\n!8]R6Ys8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n*'-,g"bH;gtpK/f$`(!bKS5`bfe2Rc-k+m +`k8n(KQ>^uDTIKOaFnTPH[WtgEnH%_aFnTdKPn_TIFs3jaFnTdKPnkaEl`oSfS".`KQ>b)GfYPY +fo10sMga62DT$mMW+Aqo@o\n!8\'P"s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7d#gt^?-f#u:^ +bKS5Sbg")F`RrDX`5T^6`Pp$Ec,cu_fo11/N-O$7GfYekfo10sMga9;GfYekfo10sMga9;GhJ%# +fo11/N-O$7GhJ%#fo11/N-O$7GhJ%#fo11/N-NF>S`\__g"bH4eCMgec,@T?`5T^6`PoBVPdYC2 +fo11=MfIF/GhJ%#kDO?5N-O$7GhJ%#fo11.KPoJ%GhJ%#fo11/N-O$7Gh@[efo11/N-O$7GhJ%# +kbX@?s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQFt@f$`(!`5T^-]Y28&`Oidr +`5T^-]Y2=t]">VgVgNHN=\6&<=kSaYfo11/N-O$7GhJ%#fo11/N-O$7GhJ%#fo11.KPoJ%Gh@[e +fo11/N-O$7GhJ%#fS".nPC_DGGj)K4s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+IoC_&&kLnYIdaZjd`Pod7`Oidr['[3P]Y1\Z[&J.YQs!"H@o\n!8XNXPW+Ar]N-Np;J_?!, +fo11,PC_DGGhJ%#fo11/N-ONDES6:qkDO?5N-O$7GhJ%#kDO?5N-O$7GhJ%#fo11/N-NOic-+>U +]=bha['[3I['[3I['[3I['Z`aI$e&.Qs!"J=\4u`8XNXPQs!"iHtq>nGhJ%#fo10sMga62DTI`a +fS".`Mg`["EnQCraFnTeN-NF%IFs3jaGYK"N-NF%IFs3jQ=EpP;*pXQ8XW@:WGQ"`KQ>b)GhJ%# +fo11/N-O$7GhJ%#fS".qN-O$7GhJ%#fo11/N-O$7GhJ%#fo11/N-OTOIFaU5fo11?P^V5DGhJ%# +fo11/N-Np;Jbm<ds8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +m.9o6m-ilnkLnYIbKS5L`Po3k['[3IUnsl_V50o`Unji_UnslRFDHb26AeW,MGZ]t;*p.;6AeW, +MGZ]t;*p.;6AeW,W+ArLKQ>^uDT$mMf6h&GH[XP"DV'8F`-ZpbKPnkaEn>\J`-ZpaHt(]T@`3VA +fS".`KQ>^uDTIKOfS".pbff5:n(HLQdaZjkbg!c4]sP/RUnsl_V50WQS>_mAS=Z7@St)*V<JjX? +R85r&;*p[H4IJu-MGZ^.:HY%@4Gm!&R85r5:HY%@4K)gjfS".oHt($@IFijU`-ZpaHt(]T@`3VA +f6h&GH[XLn@`a"1fS".\H[XP"DTR9=aFnTUHtUQKB?>O6q:sBts8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+=jQEsf=fH7F[VT*FAQ6-\@]3j;[VT*GD-s8Z?`@mL +[VT*GFChFg?aacRWGQ"NCg"5h@^^)U[rc)fCg!`S?^OtfQs!"<;*pXQ8W$A3Qs!"<;*pXQ8W$A3 +Qs!"<;*p.;6C:nIQu-=4s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n)iE\\V5::Cg"5h@]=H\ +[rc)YD-sbo@]=H\[rc)YFChq'@]+Tm[rc)WHuQQ:@^g`"[sVr"FCM_,C:A:oWGQ!u>#'lW:7,0U +Qs!":>#(Gf8VgPFQs!":>#(Gf8[kLgi8j(ZjQGI^kMYFai8j(BUn,VTB=E8'[rc*$HtUQKB?>O6 +[sVr/H[WtgEli]AaFnTPH[WtgEl`oSaa@aBKQ>.eEl`oSaFnTUHtTEq?^OtfQs!"J=\4u`8XNXP +Q=Ep^=\4u`8]\!0s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_&&kN:RTdaZjreCMXP]#f>4 +aFnTTKQ>.eEli]AaFnTTKQ>1^B?5aHaFnTdKPnkaEl`oSaFnTTKQ>.eEl`oSfS".`KQ>.eEl`oS +Qs!"H@o\h)<L?o\Q=Eq9XJPsss8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+Em-ilnkLnYIdaZjreCMgec-+>UbKS5Sbg"1rNQ?cn`-ZpRKQ>.eEl`oS +aFnTUHtUNREli]AaFnTTKQ>.eEl`oSaFnTTMg`["Ela/eaGYJfKQ>.lIFs3jaGYJfKQ>1^B:)gn +Qs!"H@o^UGScA`is8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n(HLQg"bH4eCMgec-+>U`5T^=bg")F`QQKM +`5T^6`PpDlJ]NataGYJfMg`[)IG'R(aGYJfMga9;GfYekfo10sMg`[)IG'R(aGYK"N-NF%IG'R( +aGYJfMga9;GfYek[sVrCbfeGaf#u:^bKS5L`Pod7`Pfa7Qu-<RKQ>b)GhJ%#fo11/N-O$7GhJ%# +fo11/N-O$7GhJ%#fo11/N-O$7GfYekfo10sMga9;GfYekfo10sMgbE^iW&rXs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+(Hp#+oog"bH4eCMRW`Pfa7]=bhs]Xk_f]u7n/]=bhh]Y18.OI00B +Q=EqJN-Np;J_?!,fo11/N-O$7GhJ%#aGYK!KPoJ%GfYekaGYK"N-NEsEnQCraGYK!KPnkhIG'R( +fo11/N-PC&s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gi8j(Sgtp5uc,@T? +]=bhh]Y1qi]sP/RW0EC2=\4u`8XNXPQs!"H@o^WuB@`8tfo11,PC_;KJ_$$9ert[9PC_DGGh/(0 +fo11,PC_DGGh/(0l'-VLN-O$7GhJ%#fo11/N-O$7Gh/=FdaZjd`PoI%]sP/R['[3I['[3I['[3I +R?Nhl;*p.;6AeW,Lg!Q@=\4KJ6FV&Gert[+Mga9;GfYPYaFnTeN-NEsEl`oSfS".`Mg`["Ela/e +fS".`Mg`[)IE7(^fo10sMg_O8</=^QQs!"iHtp`UEnQCraGYK"N-NF%IG'R(fo11/N-Np;J_?!, +ert[9PC_DGGh/(0ert[<N-Np;J_$$9ert[9PC_;KJ_$$9ert[<N-O$7Gh]!Wo_/+\s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(Sgtp5uc,@T? +]=bhXXKAP)Xe_ehUnsl_V50o`UmH1=MGZ]t;*p.;6AeW,MGZ]t;*p.;6AeW,MGZ]t;*q-a7EC.& +`-ZpRKQ>.eEl`oSaa@aBKQ>.eEli]A`-ZpRKQ>.eEl`oSaa@aBKQ>1^B?5aHaFnTTKQ>.eEotTf +i8j(SgtpK/f#5PH]=bhh]Y1AIXdkuQS=Z7@St)=BS=H1@Q=Ep_:HXM36CCV3MGZ]t;*p[H4Gm!& +MGZ^.:HXM36AeW,R85rDAQ6a(EnH%_aFnTcHt(0MEnH%_aFnTTKQ>.eEl`oSaFnTTKQ>.eEl`oS +aFnTTKQ>1^B?5aH`-ZpSHtVTsh#IESs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<726[rc)YD-s8Z?`A-YWGQ"OFCM4kAZ9NR[rc)YD-s8aA[ZDXWGQ"NCg!`ZA[ZDX +WGQ"OFCM4d?ak,d[VT*(;*pXQ8W$A3Qs!"<;*pXQ8W$A3MGZ]t;*p.;6C:nILg!Q2;*pXQ8a,O0 +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gi8j(SgtoMfC8l;dWGQ"OFCM_$@]=H\[rc)gFCM4kA[cbj +[rc)YFChFnA[cbjWH;^LHuQQ:@]+Tm[sVr"HtoWt?\hl\Qs!":>#'lW:5E(KLg!Q@=\4EQ:5E(K +Lg!QpXJOk9kMYFakj7crjQGI^kLcl.[sVr"FCN@>B=E8'[sVr4HtU!DGfb>G\V5:LKQ>.eEl`oS +aFnTTKQ>.eEl`oSaa@aBKQ=PLC<2'KWH;^;@o\n!8W%"[Qs!"H@o\n!8W%"[Qs!"iNJ7E4s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<726kj7ckgtpK/f%A3i`k8n)HtUNREl<<Qaa@aBKQ>1^B?5aH +aFnTTKQ>.eEl`oSaFnTTKQ>.eEl`oSaGYJfMg`[)IE7=paFnTEKm8tf8X<jdQs!"H@o\h)<S,1& +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726 +i8j(`gt^?-f$`(!daZk#bfe2Rc,c]OaFnTPH[WtgEl`oS`-ZpSHtUQKB>f.FaFnTPH[WtgEli]A +aFnTdKPnkhIE7(^fS".`Mg`["EnQCraGYJfMg`[)IG'R(aGYJUFCLPG<L?o\Qs!#CbfTnbs8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\m.9o6m-iW_hU9p)bKS5`bfe2Rc,@T?bKS5L`Pod7`QQKMaJ>BJMg`[)IE7=p +aGYJfKQ>.lIE7=paFnTTMg`[)IE7(^fo10sKQ>.lIE7(^aGYJfMga62DTI`aaFnTeN-NEsEjqj; +daZjkbg">Tc,@T?`5T^)UnFYt<8!4TfS".pKPoFqDV9tnfo10sKQ>b)GfYPYfo10sKQ>b)GfYek +aFnTdKPnkhIE7(^aFnTTKQ>.lIFaU5s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +m.9o.jQG4OhU9p)`5T^6`Pod7`Oidr]=bhq`PoI%]u7n/\?2cg@p#+$8]ZR*aGYJtPC^f5IFaU5 +aGYK"N-NF%IFaU5aGYJfMga62DTI`aaGYJfKQ>.lIE7=paFnTTMg`["Ela/eke+/"s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-ilnkL.l2daZjd`PoI%]sP/R]=bheXf@b*@Ye2_ +Qs!":>#(Gf8Z63"aHM;1N-NpBOOfVHert[9PC_;KJ_$$9es_]OPC_;KJ_$$9ert[9PC_DGGh/(0 +ert[9PC_DGGhJ%#ert[;[&hHpc-+>U]=bha['[3I[&^:1['[3I['Zd#Q&&U=Qs!":>#'rP6C:nI +Lg!Q_FCN=LIG'R(aFnTeN-NF%IE7(^aFnTTKQ>.lIE7(^fo10sMg`[)IE7(^fo10sMg`[)IE7=p +WGQ"@AQ6a(Ela/efo10sMga9;GfYekfo10sMga0?J]NataGYJtPC^f5IG'R(ert[<N-Np;J_$$9 +ert[9PC_;KJ_$$9ert[9PC_;KJ_$9OpsdFcs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-ilnkLnYIbKS5L`Po3k['[3IUnsl_V50WQS><!W +UnslSI!(<D6AeW,MGZ]t;*p.;6AeW,MGZ]t;*p.;6AeW,Q=Eq9KQ>.eEl`oSaFnTPH[WtgEl`oS +aa@aBKQ>.eEli]AaFnTPH[WtgEl`oSaFnTTKQ>.eEl`oSaFnTdbff5:n(HLQdaZjkbg!c4]sP/R +X/rG!V50WQS>_mAS=Z7@St([J=GU-UMGZ]t;*p.;6AeW,MGZ^-=\4KJ6AeW,R85r&;*p[H4K)gj +aFnTTKQ>^uDTIKOaFnTTKQ>.eEl`oSaFnTdKPnkaEl`oSaFnTTKQ>1^B?5aHaFnTTKQ>.eEl`oS +k1nbls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o:oC]YJGc>Oe +WH;^ND-s8aAZ9NRWGQ"AFChFg?`A-YWGQ"AFChFnAZ9c_WGQ"OFCM4kA[ZDXWH;^[Cg!`ZAXHUl +MGZ]r>#'rP6ASf?MGZ]r>#'lW:7,0UMGZ]r>#'rP6ASf?Lg!R+bfg%ds8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+IoC_>6n(>k-WH;^\FCM4kA[cbjWH;^NFChq'@]+Tm[rc)WHuQ',AZ9c_WH;^NFChFnA[cbj +VgNHmHtoX&A[d&%WH;^->#(Gf8VgPFQs!":>#(Gf8VgPFLg!Q@=\4EQ::RF+i8j(ZjQGI^kMYFa +i8j(A[B[2_@`a"1[sVr"HtpTHICFT=aa@a3Km:^eB=W_@aFnTEKm:[lEk-mKaFnTEKm:.^GfYPY +\V5:;Htp-<C7&-qMITbU=\4K\=GU-UQ=EpN>#(An<L@W4s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+IoC_>6n(HLQdaZjreCM^:S]HJ)aFnTTKQ=VWGfYPYaFnTTKQ>.eEl`oSaGYJWML<L'IE7=p +aGYJfMg`[)IE7(^aGYJfMg`[)ICFT=Q=Ep\@o\h)<L.,pQ=EqWgt_r0s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA*q=n(HLQg"bH4eCMgec-+>U +a0i1nKQ=PLC<2'K[sVr"Htp`UEk-mK[sVr3KQ=VWGfYPYaa@aBKQ>.eEl`oSaFnTTKQ>.lIE7(^ +aGYJfKQ>.lIE7(^aGYJfKQ>.lIE7(^W+Aqq=\4u`8X<jds8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2 +k1nbFgtpK/f#u:^bKS5L`Pod7`RrDX`5T^6`Poj0]#]eXaFnTTMg`["Ela/eaFnTTMg`[)IE7=p +aFnTTMg`["El`oSaGYJfMg`["Ela/eaFnTTKQ>.eEl`oSaFnTCHtpjKc-+>U`5T^6`Pod7`Kt[^ +[rc*#KQ>.eEla/eaFnTTKQ>.eEnH%_aFnTTMg`["Ela/eaFnTTMg`[)IE7=paFnTTMg`[)IE7(^ +aGYKAeB.ajs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2g"bH4eCMgec,@T? +]=bhq`PoI%]u7n/]=bhs]Xk_f]pNYGQs!"[FCj-aGfYekert[+Mga0?J]NataGYJfKQ>.lIE7=p +aGYJfMg`["Ela/eaFnTTMg`[)IE7(^aGYJfMg`["EqK)$s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8VHWp#+oog"bH4eCMRW`Pfa7]=bhh]Y1\Z[$Z5`Lg!Q>@o\Cr=GU-UQ=Eq*Km;14J]O%. +ert[+PD%MUOOfVHes_]OPC_;KJ_$$9es_]OPC_;KJ_$$9aHM;.PC_;KJ]O%.ert[+PD%VJGhC6` +daZjd`PoI%]sP/R['[3I['[3I['[3IUnslC>#'lW:5E(KLg!Q2;*p(B:8r);aGYJfMg`[)IE7=p +aFnTTMg`[)IE7(^aFnTTKQ>.lIE7(^aGYJfMg`[)IE7=paGYJfMg`["Ela/eaGYJfMg`[1KZK(" +ert[+Mga0?J]Natfo10sMga0?J_$$9aGYJtPC^f=K[u?<ert[9PC_;KJ_$$9ert[9RZQ*aJ_$$9 +kd.5fs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<726i8j(Sgtp5uc,@T?]=bhXXKAP)Xe_ehUnsl_V50o`UmQOPG#Cqg>#'6=8r?J4 +G#Cqi;*oG(8r?J4MGZ]t;*pRY<QKi6\V5:LKQ>.eEl`oS\V5:LKQ>.eEk-mKaFnTEKm:[lEk-mK +`-ZpCKm:[lEl<<QaFnTTKQ=VWGhC6`i8j(SgtpK/f#u:^]=bhh]Y1,;Unji_S=Z7@St)=BS=H1@ +Q=EpN>#'rP6ASf?Lg!Q2;*p(B:5Vn8MGZ]t;*p.;6AeW,MGZ^>D-tA;El`oSaFnTTKQ>.eEl`oS +aFnTTKQ>.eEl`oSaFnTTKQ>.eEl`oSaFnTTKQ>.eEl`oSaFnTTKQ?51h#IESs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726\<DiMD-s8aAZ9NRWH;^NFChFg?`A-Y +WGQ"AFChFg?`@mLWGQ"AFChFnAZ9NRWH;^NFChFnAZ9c_WH;^;@o\=g:5E(KMGZ]r>#'lW:5Vn8 +Lg!Q2;*p(B:5E(KLg!Q0>#'lW:<9N5s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7bmCkj7cV`Po<.@]=H\ +WH;^NFChFnA[cbjVgNH_FCh@tE49puVgNHmFCM.qE4:40VgNH]HuQQ:@]+Tm[sVr"HtoX&AXHUl +Lg!Q2@p#+$8VgPFMITbG@p#+$8W%"[Lg!QpXJOk9kMYFai8j(ZjQGI^kL[Yc[sVr"Htp-<C:AS* +[sVr3KQ=VWGfYPY\V5:LKQ=VWGfYPY\V5:=Km:.^GfYPY\V5:=Km:.^Ge&NQ\V59o@o\h)<JXgR +Q=Ep\@o\h)<L.,pQ=EpP@p&QfiW&rXs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6/h<kj7d#gt^?-f$`(! +a-hptKm:.^Ge&NQ\V5:LMg`-nI(>,^\VbdUMg`'oKuf1#\VbdUMg`-nI)q4oaGYJUNJ5H3ICG2i +aGYJGFCg>>=I*GsMITbS@o\Cr=TAF$s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq=OCVi8j(ZjQFt@f$`(!fZ_OY]XkY-Ge&NQ[sVr$Km:(SC:AS* +[sVr"Htp-<C:AS*aFnTCHtp3GGe&NQ`-ZpCKm:[lEl`oSaFnTTMg`[)IE7=paGYJfMga0?J]Nat +fo10sMg`["EgC38Q=Ep^=\5N=E<#t<s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n(HLQdaZjkbg">Tc-+>U +`5T^=bg")F`QQKM`5T^9R>nb2Ge&NQ\V5:LMg`-iGe&NQaFnTEKm:[sIE7(^\V5:LKQ>.eEl`oS +aGYJfKQ=VWGfYekaFnTTMg`[)ICFT=\"o\8`Pod7`Pfa7\?2cu=\6\fEl`oSaFnTTKQ>.eEla/e +aFnTTMg`["El`oSaFnTTMg`[)IE7(^aGYJfKQ>.lIE7=paFnTTMg`[1K`D)Ps8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkL.l2bKS5L`Pod7`Oidr`k8mp]Y28&`Oidr +]=bhUP`V2@<L.,paHM:uMg`[)IFaU5aGYJfMg`[)IE7=paGYJfMg`[)IE7=paGYJWKm:[lEk-mK +\V5:LMg`-iGe&]ZaGYJtRZRRLs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mkj7crjQG4OhU9p) +`5T^6`PoI%]sP/RR!a%B@o\Cr=GU-UQ=EpN>#(uCE7U5(aHM:uPD%MUON3cKert[*R>o7TNRjP[ +a-hq<RZPRXNRjP[a-hq<RZQ*hON<W=es_]OPC^f=K[u?<aJ>B[gtp5uc,@T?]=bha['[3I['[3I +X/rG1['[?FWet:gQs!":>#'lW:7,0ULg!QQD-tABIE7V*aGYJfMg`[)IE7(^aGYJfMg`[)IE7=p +aGYJfMg`[)IE7=p\VbdUMg`[)IE7=paGYJfMg`[1KZK@1ert[+PD%#@KZK@1aHM;.PC^cBNRj;E +a-hq<PC^f=K[u?<aHM;.PC^f=K[u?<a-hq<PC_;ROOfVHes_]qeB.ajs8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-ilnkLnYI +bKS5L`Po3k['[3IUnsl_V50o`Unji_UnslSI!'^=</OO>Lg!Q2;*p(B:5Vn8Lg!Q0>#'6=8r-YG +Qu-<CML<L'IE7(^\VbdFKm:[sICY&V\V5:LKQ=VWGe&NQ[sVr$Km:.^Gdi'8\V5:=Km:.^Gf4rW +\V5:\bff5:n)39idaZjkbg!c4]sP/RX/rG!V50WQS=H1@S=Z7@St([J=GU-ULg!Q0>#'lW:5Vn8 +Lg!Q2;*p(B:5E(KLg!Q0>#'rP6C;V!aFnTTMg`[)IE7(^aGYJfKQ>.eEl`oSaFnTEKm:[lEk-mK +aFnTTKQ=VWGfYPY\V5:LKQ=VWGfYPYk1nbls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!m.9o:oC]SgTW)d8Qu-<3FCghV@]=3OWH;^ND-s8Z?`@mLWH;^ND-s8Z?`A-Y +WH;^NFChFg?`A-YWH;^NFChFnAX6h+MGZ]r>#'lW:5E(KMGZ]r>#'lW:5E(KLg!Q0>#'lW:5E(K +Lg!QPN/%B4s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n&V;qWH;^NFChq/C8ZGuWH;^LHuQ',AZ'op +VgNH]HuQ!2E2S)&WH;^LHuQQ:@]+TmVgNHmHtoR,E4:40QZR#!>#'rb=GU-UMITbE>#'lW:5E(K +MITbE>#'rb=LbK5q;gMmjQGI^kMYFai8j(RbfdPNGdi'8\V5:=Km:.^Gdi'8\V5:=Km:.^Ge&NQ +\V5:=Km:.^Ge&NQ\V5:=Km:.^Ge&NQaFnTEKm:.^Ga;i>Q=EpP@p#%,<Jk9gMITbG@p"Uu=GgTj +`k8n_s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_&&kLnYIdaZjkbg!\UI)pt]\V5:=Km:[lEk.'T +\VbdUMg`-nI(>,^aGYJUNJ5H3ICG2i[uH*_Mg`+!Mo^g)[uH*_Mg`'oKrK0*MITbG@p"Uu=GgTj +VgNI`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,_m-j0)n)iE\daZjreCMRW`Q3sc\V5:;Htp-<C:T%C[sVr$Km:(SC:AS*\V5:;Htp3GGfYPY +[sVr3KQ=VWGfYPYaGYJWKm:[lEla/eaGYJfMga9;GfYekaGYJfMg`[)IE7=paGYJfKQ;lP:6oBi +Lg!Q`PDfJ@s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mi8j(Sgtp`>hU9p)bKS5Sbg")F`Pfa7`5T^6`Pp$Ec,[5s +\V5:=Km:.^Ge&NQ\VbdUMg`-iGe&NQ\V5:=Km:[sICY&V\V5:LMg`-iGfYPYaGYJWKm:.^GfYPY +aFnTTKQ<uDI)O"C`5T^6`Pna.I&Usi\V5:LKQ=VWGfYPYaFnTTKQ>.lIE7(^aGYJfMg`[)IE7=p +aFnTTMg`-nI)q4o[uH*_Mg`-iGfYekk01sIs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8VHWp#tc2i8j(Sgtp5uc,@T?`5T^-]Y1qi]u7n/]=bhq`PoI%]sP/RQ=Ep\@o^U'ElXT- +aHM:uPD%#8IE7V*aGYJfMg`[)ICG2iaGYJWKm:.cI(>,^\VbdFML<L'ICY&V\VbdUMg`'oKt3(g +aJ>C,s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_&&kLnYIdaZjkbg")F`OidrUnslSD.8B4=GgTj +MITbG@p"Uu=JpOca-hq=S:8MHNQ7HHa-hq-R>o7TNQ7HHes_]@R>o:OKZBL?es_]APD%MUON<W= +a-hq<PC^cBNRjP[aHM;.RZQ17[aN[VdaZjd`PoI%]sP/R['[3I['[3I['[3I['[3,FDH\9:5E(K +Lg!Q0>#'lW:6oBiaHM:uMg`[1KZK("aGYJfPD%#8IE7=paGYJfMg`[)ICG2iaGYJfMg`[1KXZqp +aGYJUNJ5H;KZK@1aHM:uPD%#@KZBL?aHM;.RZPUSKZBL?es_]@R>oddON<W=es_]@R>od]J]O%. +ert[*R>oddON<W=aHM;@]WhG9s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gi8j(LeCMgec,@T?]=bhXXKA:pUnji_ +Unsl_V50o`UmQOPG#Cqg>#'6=8r-YGH!=7(>#'6=8r-YGLg!Q2;*pXe@`XIU\VbdFML;slI(>,^ +\V5:=Km:.^Ge&NQ\V5:=Km:.^Ge&NQ[sVr$Km:(SC8Z`4[sVqgKRC=aGhC6`i8j(SgtpK/f#u:^ +]=bhh]Y1AIXdkuQS=Z7@St)=BS=H1@LM^[[>#'lW:5E(KLg!Q0>#'lW:5E(KG#Cqg>#'lW:5Vn8 +Lg!Q@D.:SEICY5_\V5:=ML;sgGfYek\V5:=Km:.^GfYPY\V5:=Km:.^GfYek\V5:=Km:.^Ge&NQ +\V5:=Km;b8h#IESs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726 +a0i1>D.9J]?^P\>Qu-<3FCghV@]=H\Qu-<"D.9JdAXI=DWH;^ND-s8aAZ9c_WH;^NFChFnAZ9c_ +WH;^NFCghB8VgPFLg!Q0>#'lW:5E(KLg!Q0>#'lW:5E(KLg!Q0>#'lW:6oBikj7d<s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s6/h<kj7cJPDc>dE2dqjVgNH_FCh@tE2S)&VgNH]HuQ!2E2dqjVgNH]HuQ!2E2S)& +VgNHmHtoR,E2SA:[sVqgKRBb@AVsu"Lg!Q2@p"Oj:5WO`MITbG@p"Uu=GgTjLg!Q`XfC=?kNM:$ +i8j(ZjQGI^kLnYI\<Di]Km:(SC:T%C[sVr$Km:(SC:T%C\V5:=Km:.^Ge&]Z\V5:=Km:.^Ge&NQ +\V5:=ML;sgGe&]Z\V5:-FCg>>=I*GsMITbE>#(An<Jk9gQ=EpN>#(uKI/j6Hs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<726kj7d#gt^T<hT!4>\V5:=Km:.cI(=rU[uH*PML;sgGe&]Z\VbdDNJ4j$Kt!%q +\<DilMg`'oKt*>)aGYJUNJ4j$Kuf1#[uH*/D.8B4=GgTjQ=EpP@p$49T`>&ls8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726kj7ckgtp`>hUp&q +a-hptKm:(SC:T%C\V5:;Htp3GGdi'8\V5:;Htp3GGe&NQ[sVr$Km:.^Ge&NQ\V5:LMg`-iGfYek +\VbdUMg`[)IE7=paGYJfPD%#8IE7=paGYJfMg`[)IE7=p[sVqH>#'lW:5E(KfY"Zms8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA+ILkMYFag"bH4eCN9rbKJ,S`5T^JbfdrD`QQKM`5T^6`PoBVPduKm\V5:=Km:.^Ge&NQ +\V5:LMg`-nI(>,^\V5:LMg`-iGe&NQ\V5:=Km:.^Ge&NQaFnTEML;slI(=rU[sVr"UnGZF`Oidr +Lg!Q_Htp-<C:T%C\V5:=Km:[sICG2i\V5:=ML;slI)q4o\V5:;NJ5H3ICG2iaGYJUNJ5H;KZK(" +[uH*^R>q7Hs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_&&kLnYI +daZjd`Pod7`Pfa7`5T^-]Y28&`Oidr`k8n$`Pn1&MMbnGWH;^mPD%#@KZK@1a-hq.PD$uENQ@$+ +\<DilMg`'oKt!%qaGYJUNJ5H3ICG2i\VbdDNJ4j$Kt!%q[uH*_Mg`'oKug'\p[%)Cs8W-!s8W-! +s8W,kpA+(Hp#tc2g"bH;gtpK/f#u:^['[3-I!(<V=GgTjMITbG@p"Uu=GgTj\V5:LPD$uENQ7HH +a-hq-R>o7TNRjP[a-hq-R>o7TNQ7HHes_]@R>o7TNQ7HHa-hq<RZPRXNRjP[a-hq-R>o7TNQ7HH +g"bH;gtpK/f#5PH]=bha['[3I['[3I['[3I['[3I[$QGsLg!Q0>#'lW:5E(KLg!Q0>#*.sIE7V* +aGYJfPD%#@KZK("aHM:dNJ5H;KXZqpaHM:uPD%#@KXZqpaGYJfPD%#@KZK@1aGYJUNJ5H;KZK@1 +aHM:uPD$uENQ@<:a-hq-R>o:OKZBL?a-hq-R>o:OKZBL?a-hq-R>o7TNRj;Ea-hq<RZR@+iW&rX +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!m.9o6m-ilnkLnYIdaZjd`PoI%]sP/RUnsl_V50o`Unji_UnslSI!'U18r?J4 +G#CqU;G)gD6?Z7!Lg!Ps;G)aK:3KN-Qu-<CML;slI(>,^aGYJWML;sgGdiZd\V5:=Km:.^Ge&NQ +\V5:;Htp3GGc,q.\V5:=Km9MCE4L[I[sVr6bg#),kMYFadaZjkbg!c4]sP/RX/rG!V50WQS=H1@ +S=Z7@St(RQB8B_dLg!Q!>?$D^:5E(KH!=7(>#'lW:5E(KLg!Q0>#'lW:7,m-aGYJUNJ5H3ICY5_ +aGYJWML;slI(=rU\V5:=Km:.^GfYPY\V5:=Km:.^Ge&NQ\V5:HH[WGYGe&NQk1nbls8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o:oC^b[bF!-UQu-<"D.9JdAXI=D +Qu-<3FCge\CT2DeQu-<3FCghV@]=H\WH;^NFChFnAZ'opVgNH_FCh@tE2dqjMITbE>#'lW:5E(K +Q=EpN>#'lW:5E(KLg!Q0>#'lW:5E(KLg!Q0>#*)M])Vg1s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC^elhPkU. +WH;^LHuQ',AZ'opVgNH]HuQ!2E2S)&VgNH]HuQ!2E4:40VgNH]HuQ!:I&D@2[sVqgKRB\FE4L[I +QZR##@p"Uu=GgTjLg!Q2@p"Oj:5E(KLg!Q!>?$Ji=LbK5i8j(ZjQGann)39ii8j(LeCM^:SYq-g +\V5:;HtoR4I(+K<VhBH.Km9MCE4L[I\V5:=Km:.^Ge&NQ\VbdFKm:.^Ge&NQVhBH.Km:.^Gc-4B +MITbG@p"Uu=GgTjLg!Q2@p"Oj:5WO`Lg!R;m-juSs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_&&kLnYI +daZjhUn,&RI(>,^\VbdFML;sgGdiZd\VbdDNJ4p#I(,)h[uH*NNJ4j$Kt!%q\<Di]ML;ptMn+^m +\<Di[NJ4osG`$!5MITbG@p"Uu=GgTjfZ_P=s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkLnYIdaZjhXJNI]Ge&NQ\V5:=Km:.^Ge&NQ +\V5:=Km:.^Ge&NQ\V5:=Km:.^Ge&]Z\V5:LKQ=V\I)q4o\VbdUMg`[)IE7V*[uH*_PD%#@KZK@1 +aGYJfPD%#8ICPK!aGYJVPDdM?I@#%kMITbE>#'rb=Q\Dos8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-iW_hU9p) +daZjkbg">Tc,@T?bKS5L`Pp$Ec,@T?a0i1_Km:.^GdiZd\VbdDNJ4p#I(>,^\VbdFML;slI(>,^ +[uH*_Mg`'oKuf1#\VbdFML;slI(=rU\VbdUMg`-nI&DXF`5T]oN/!^:@_%2;\V5:=Km:.^Ge&]Z +\VbdFML<L'ICG2iaGYJUNJ5H;KXZqpaHM:dNJ5H;KXZqpaHM:dNJ5H;K\+/Us8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mkj7ckgtpK/f#u:^`5T^-]Y2=t]">Vg +]=bhq`PoI%]t:qj['[3-D.8B4=NH\Za-hq-R>o7TNQ7HH\<DilPD$H0Mo_*8\<DilMg`+!Mmn\" +[uH*NNJ5H;KXZqp[uH*_PD$E)Kt*>)\<DilMg`+!Mq>n\o_/+\s8V`bq<[_Gkj7ckgtp`>hTO-f +UnslSI!(6K:5WO`Lg!Q2@p"Oj:5WO`QZR#RML<I4NQ7HHa-hq-R>o7TNQ7HHa-hq-R>o7TNQ7HH +a-hq-R>o7TNQ7HHa-hq-R>o7TNQ@<:a-hq-R>o:OKZBL?es_]Q]XHbZkLnYIbKS5L`PoI%]sP/R +['[3@XKAk:['[3IX/rG%R[&\4:3U5VLg!Q2@p"Oj:5E(KVhBH=PD$E)KufI2[uH*_PD$E)KufI2 +aHM:uPD$E)KufI2aHM:uPD$E)KufI2[uH*_PD%#@KZBL?aHM:ePDdJLNQ@<:a-hq-R>o7TNQ7HH +a-hq-R>o7TNQ7HHa-hq.PD$uENQ@<:a-hq-R>ok+XT/>#s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726 +i8j(Sgtp5uc,@T?]=bhXXKAP)XdkuQUnsl_V50o`UkX8DG#CqU;G)4=</OO>G#CqU;G)gD6?Z7! +G#Cqi;*pXe@_%2;\VbdFKm:.cI(=rU\V5:=Km:.cI(>,^VhBH.Km9MKI(=rUVhBGqHuQ!:I&D@2 +\V5:+HuQ!:I+ZZdi8j(SgtpK/f#u:^]=bhh]Y1AIXe_ehS=Z7@St)44PGG%NLM^[L>?$D^:3g&C +Lg!Q!>?$D^:5WO`H!=7(>#'9P@#.u]MITbUD.:#=Mo^g)[uH*_Mg`'oKt3(gaGYJWKm:.^Ge&NQ +\V5:=Km:.^Ge&NQ\V5:=Km:.^Ge&NQVgNHoKm;b8h#IESs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gk1naYFDI7\@[M"AQu-<"D.8lL@[D1PWGQ"/FDI7\@]=H\ +QZR#BFCge\CSuQ!VgNH_FCh@tE2S)&WH;^LHuPHi@Ye2_Lg!Q0>#'lW:5E(KLg!Q0>#'lW:5E(K +Lg!Q!>?$D^:3g&CVhBHts8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726a0i1=FDI4bCR9-YR!a%CFDI4bCSuQ! +QZR#@HuQ!2E2S)&VgNH]KRB\FE2S)&VgNH]KRB\FE2SA:VgNH]KRB,.CPZ.hLg!Q!>?$Ji=F"+M +Lg!PtA71:)=F"+MLg!Q_UnHr<n*'-,i8j(bm-ilnkLnYIa0i1_Km9MCE2SA:VhBH,HtoR4I&D@2 +\V5:+KRB\NI&DXFVhBGqKRB\NI&DXFVhBGqKRC=aGe&]ZVhBH.Km8nn<JXgRLg!Q0>#'rb=F"+M +Lg!PtA713s::RF+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(SgtpK/f!pp%\VbdFKm:(dKt2n^ +W/QJAKm:(dKt!%q[uH*NNJ4j$Kt!%q\<Di[NJ4j$Kt!%q[uH*OPDcu/I(5AuVgNH@@p"Uu=GgTj +MITbDD.inKs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA+@Sq<726i8j(Sgtp)ZZ)EV9\V5:+KRC=aGe&NQ\V5:=Km9MKI(=rU\V5:=Km:(dKt2n^ +\VbdFML<L'ICG2i[uH*PML<L/KXZqpaHM:dNJ5H3ICG2iaHM:dNJ4m+Mmn\"[uH*OPDdM?ICG2i +aGYJWML:e.@Z"YtMITbTFDLpVs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(SgtpK/f#u:^bKS5Sbg")F`QQKM +`5T^6`Pod7`Mf#_\Vbd4KRC=fI(,)hVhBH.ML;mmKt3(g\VbdDNJ4j$Kt!%q[uH*NNJ4p#I(,)h +\VbdFKm:(dKt2n^\Vbd4HuQQjTSQcHVhBH.Km:.cI(>,^\VbdDNJ4osGdiZd[uH*NNJ4j$Kt!%q +[uH*NNJ4j$Kt!%q[uH*NNJ4j$Kt!%q[uH+As8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA*q=n)39ig"bH-bg")F`Pfa7`5T^-]Y28&`Oidr`k8n$`PoI%]r7Bb +MITbTFDJpbNQ7HHa-hq-R>o7TNQ7HHa-hpsPDdJLNOY11\<Di\PDdMGKXd5([uH*OPDcr7Mmn\" +\<Di\PDco0Kt*>)\<Di[NJ5E@NQ8H3`k8mi['[?FWi2AOR!a%6@p"Oj:3g&CH!=6n>?#lP</=^Q +QZR#RML<I4NQ7HHaHM:tR>o7TNQ7HHa-hq-R>o7TNQ7HHa-hq-R>o7TNQ7HHa-hq-R>o7TNQ7HH +a-hq-R>o7TNQ7HHa-hq-R>o:`S`&Slkj7ckgtpK/f#u:^]=bha['[3I['[3I['[3I['[3I[%sOo +MITb6>?$Ji=GU-UH!=7*@p#^PA]U'g\<DilPD$H0Mo_*8\<DilPD$H0Mo_*8aHM:uPD$H0Mo_*8 +aHM:tR>o:OKZBL?\<DilPD$H0Mo_*8a-hq.PD$H0Mo_*8a-hq-R>o7TNQ7HHaHM:tR>o:OKZK@1 +a-hq-R>o:`Sb_@*s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-ilnkLnYIbKS5L`Po3k['[3I +Unsl_V50o`Unji_UnslSI!'U18p4*)G#CqU;G)+18pOW?G#CqU;G)+18p4*)MITbtNJ4osGdiZd +\V5:;NJ49`I(=rUVhBH.Km9MKI(>,^\V5:+HuQWMGc,q.VgNHoKm9MCE2SA:VgNI9bfer*kMYFa +daZjkbg!c4]sP/RX/rG!V50NCPGG%NS=Z7@St(RQB6d]\Lg!Q!>?#lP</=^QH!=6n>?$D^:3g&C +Lg!Q!>?$D^:7$'<[uH*OPDcr7Mn"t/[uH*NNJ4j$Kt3(g[uH*PKm:.^Ge&NQ\V5:=Km:.^Ge&NQ +\V5:+KRC=aGc,q.k1nbls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+IoC_>6n#22"Qu-<"D.8lL@[D1PQu-<"D.8iRCRAsJQZR#1D.8iRCSuQ!VgNH_FCgheFf0V+ +WH;^LHuQ',AZ'opQu-;g>#'?I</=^QH!=6n>?$D^:3g&CH!=6n>?#lP</=^QH!=6k;G)gV=P;Kd +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!m.9o6m-gm;OI(')WH;^<FDIe%E0kZ^VgNHMFDI7kFf0V+R!a%DI!)?7E2S)& +VgNH]KRB\FE2S)&VhBGqHuQ!:I&D@2QZR##@p!qc@#.u]H!=7*@p""\<-_\IH!=6n>?#lP<4K'1 +kj7crjQGann)39ii8j(`gt^)sc)65BVgNH]HuQ!2E2S)&VgNH]KRB\FE2S)&VgNH]KRB\FE2S)& +\V5:+HuQWMGc-4BVhBGqKRB\NI&DXFQZR#!>#'9P@#.u]H!=7*@p""\</=^QG@Y*KD.<PFs8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!m.9o6m-j)lgtCK>a0i1MKRC=aGc6RUVhBH.ML;sgGc6RU[uH*NNJ4j$Kt!%q +\<Di[NJ4j$Kt!%q\<Di[NJ4m+Mmn\"[uH*NNJ3^@CPlV(MITb4A71:)=K%15s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQGI^kLe#% +[uH*PKm9MKI(>,^W/QJ?NJ49`I(,)h\V5:;NJ4<iL:<.r[uH*PML;mmKt*>)[uH*OPDdMGKXZqp +aHM:dNJ4j$KufI2[uH*_PD$E)KufI2[uH*_PD$E)Kuf1#\<Di[NJ4m+Mo^g)\Vbcl@p"Uu=GU-U +VhBHts8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_>6n(HLQdaZjreCMgec-+>U`5T^6`PpKRbJ_B=bKS5PXJMhJI(>,^ +VhBH.ML;@]L:N1hW/QJ?NJ4p#I(,)h[uH*NNJ4j$KufI2[uH*PML;mmKt3(g[uH*PKm:(dKt2n^ +LM^[ZD.gD5Ge&NQVhBH,NJ4osGdiZd\VbdFML;slI(,)h[uH*PML;mmKt!%q[uH*OPDco0Kt!%q +[uH*NNJ6#t[f?C-s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +m.9o.jQG4OhU9p)bKS5L`PoI%]u7n/]=bhh]Y1qi]u7n/]=bhq`Pn0sJVmr>[uH*^R>n_?MoV6F +\XJbmPDdJLNObLBa-hpsPDdJLNOY11\XJbmPDcr7Mn"t/[uH*OPDcr7Mn"t/\<Di]ML;ptMmn\" +[uH*OPDdM?ICG2iQZR#1D.7cp<-_\IH!=6n>?$Ji=I<r7R!a%eML;ptMn"t/\<Di\PDcr7Mn"t/ +aHM:fRZtj\NQ7HHa-hq-R>nbGPfK2Oa-hq-R>o7TNQ7HHa-hq-R>o7TNQ7HHa-hq-R>o7TNQ7HH +k1nbapA*Y-kLnYIdaZjd`PoI%]sP/R['[3I['[3I['[3I['[3I['YU1E-YYeH!=7(>#'9P@#.u] +LM^\ER>n_?Mn"t/aHM:ePDdMGKXd5(aHM:fRZtj\NObLBa-hq-R>o7TNQ7HHa-hq-R>o7TNQ7HH +a-hq-R>n_?MoV6Fa-hptRZtmWKXd5(aHM:ePDdMGKXd5(\<Di\PDcr7MqG\Ns8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gi8j(LeCN'tf#5PH]=bhXXKAP)Xe_ehUnsl_V50WQS;23* +G#CqU;G)+18p4*)G#CqU;G)+18p4*)G#CqU;G*<n@]+m,\V5:+KRB\NI&DXF\V5:+KRB\NI&DXF +\V5:+KRB\NI&D@2VgNH]KRB\FE2S)&VgNH]HuQ!:I+ZZdi8j(SgtpK/f#u:^]=bhh]Y1,;Unji_ +S=Z7@St)=BS=H1@LM^[I;G)4=<-_\IH!=6n>?#lP<-_\IH!=6n>?$D^:3g&CH!=77FDJFEI(5Au +\VbdEPDco0Kuf1#[uH*PKm9MKI(=rUVhBGqKRB\NI&DXFVgNH]KRB\FE2SA:VgNH]HuS6'h#IES +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7cJXf@b*@Y\f5 +Qu-;fD.f5Q@[M"AQu-<"D.8lL@[D1PQZR#0FDI4bCSuQ!QZR#BFCgheFdI2cVgNHMFDI4bCPlV( +Lg!Q!>?$D^:3KN-H!=6n>?#lP</=^QG#CqX>?#cD8pOW?G#Cr2R[*pQs8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq:XQ[ +QZR#0FDI4bCR9-YQZR#1I!(ctCSuQ!QZR#1I!(ctCSuQ!R!a%DI!)?7E0u#qVgNHNI!)?7E2SA: +VgNH]HuPEoCPZ.hH!=6n>?#lP<-_\IH!=6n>?$Ji=F"+MH!=7XXfCUOn*'-,kj7d4m-!<fkMYFa +daZjHN/"6XE0u#qVgNHNI!)?7E0u#qVhBGqHuQ!2E2S)&VgNH]HuQ!2E2S)&VhBGqHuQ!:I(+K< +VhBGqKRB\FE/J.-G@Y*;>#'9P@#.u]G@Y*;>#'9P@#.u]`5T^qs8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n*'-, +g"bH;gtoT1Pc0Oq\Vbd4KRC=fI&DXFW/QJ?NJ4j$KrBrb[uH*NNJ4j$Kt!%q[uH*NNJ4j$Kt!%q +W/QJ@PDco0Kt!%qLM^[]@p!qc@#AGrMITc,`PqlWs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA*q=n)39ifZ_OKPDc>lI&N!Y\Vbd5N/"g$Kr9TO +[uH*>KRC7gKrBrb\VbdDNJ4j$Kt!%q[uH*OPDcr7Mmn\"\<Di\PDcr7Mn"t/\<Di\PDcr7Mn"t/ +\<Di\PDcr7Mn"t/\<Di\PDcr7Mn"t/[uH*OPDco0Kr9TOMITbG@p""\<4AZrs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +kj7d#gt^T<hU9p)bKS5Sbg">Tc,@T?`5T^6`Pod7`Pfa7\<DiKKRB_WL:N1hW/QJ?NJ4j$Kt!%q +[uH*NNJ4j$Kt*>)[uH*NNJ4j$Kt!%q[uH*NNJ4j$Kt!%q[uH*>KRB\FE2S)&W/QJAKm9PTL:N"_ +W/QJ/KRB\NI&N!YVhBH,NJ4<iL:<.r[uH*NNJ4j$Kt!%q[uH*NNJ4<iL:<.rs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(LeCMgec,@T? +`5T^6`PoI%]u7n/`5T^-]Y1qi]t:qj]=bhDFDHYKB=O.`a-hptRZtj\NObLBa-hpsPDcu?PfK2O +\XJbmPDcu?Pdlp8\<Di\PDcr7Mn"t/\<Di\PDcr7Mn"t/\<Di\PDcr7Mn"t/\<Di\PDcr7Mn"t/ +\Vbd5N/"lsGc6RU\VbdEPDcr7Mn"t/\<Di\PDcr7Mn"t/\<Di\PDcr7Mn"t/a-hpsPDcu?Pe!6I +a-hptRZt@OPfK2O\XJbnRZt@OPe!6Ia-hptRZtj\NQ7HHa-hqLbfTnbs6T@Mkj7ckgtpK/f#u:^ +`5T^&['[3I['[3I['[3@XKAk:['[3IQ\9pI@p""\<-_\IH!=6n>?$Ji=LX9DaHM:ePDdMGKXd5( +\<DilPD$H0MoV6F\<DikR>o7TNQ7HH\XJc'R>nbGPfT&A\XJc'R>nbGPfK2Oa-hptRZtj\NQ7HH +\<DikR>nbGPfT&A\XJbmPDdMGKZKs[p[%)Cs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +m.9o6m-ilnkLnYIbKS5L`PoI%]sP/RUnsl_V50o`Unji_UnslAI!^$78p4*)BMV3C;G)+18p4*) +G#CqU;G)+18p4*)MITbdKRB\NI&DXF\V5:+KRB\FE2SA:VhBGqKRB\FE2SA:VgNH]KRB\FE2S)& +VhBGqHuQ!:I&DXFVgNI,bg#A<n(HLQdaZjkbg!c4]sP/RX/rFnSt)=BS=H1@R?Ni)St("8@!PsU +G#CqX>?#cD8pOW?G#CqX>?#lP<-_\IH!=6n>?#lP<1%N3[uH*NNJ4m+Mmn\"\<DiLN/"g$Kt!%q +VhBH,NJ49`I(=rUVhBH.Km9MKI&DXFVgNH]KRB\NI&DXFk1nbls8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n&32aQu-;fD.f5Q@Z"YtQZR"uD.f2WCRAsJ +QZR#0FDI4bCR9-YQZR#0FDI4bCR9-YQZR#0FDI4bCR9-YQZR#1D.7Zd8pOW?H!=6n>?#cD8pOW? +G#CqX>?#lP<-D/3H!=6n>?#cD8p=fRkj7d<s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9nZUnF)l@[D1PQZR#0FDI4bCR9-Y +QZR#1I!(g(Ff0V+R!a%DI!)?7E0u#qR!a%SHuPI#Ff0V+R!a%DI!(g(Ff0V+LNIK\>?#lP<-_\I +H!=6n>?#lP<-_\IH!=6n>?#lP<4K'1kj7d%m-j0)n*'-,kj7ckgtp`>hRB;RR!a%SHuPI#Ff0V+ +R!a%SHuPEoCRBKlR!a%DI!)?7E0u#qR!a%SHuQ!:I&D@2VhBGqKRB\NI&DXFVhBGQD.eZ.:3U5V +H!=6n>?#fW@#.u]G@Y*,>?$r2C]FG7s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o.jQG[\grmpdW/QJAML;@]L8^&c +W/QJAML;@]L:<.rW/QJ?NJ4j$KrC5t[uH*?N/"j+Ml;Sh[uH*?N/"g$KrBrb\<Di;KRo"j=Ee:` +MITb4A71:)=TAF$s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq;C>si8j(SgtoN9TXTo7W/QJAML;@]L:N"_W/QJAML;@]L:N1hW/QJ/KRC7gKrBrb +[uH*OPDcr7Mn"t/\<Di\PDcr7Mn"t/\<Di\PDcr7Mn"t/\<Di\PDcr7Mn"t/\<Di\PDcr7Mmn\" +\<Di[NJ4m+Mn+^m[uH*NNJ3aIFa71jH!=6n>?'4m^&S-4s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2g"bH4eCN9rbKJ,S +`5T^=bg")F`QQKM`5T^=bg!Z"WjdtA[uH*?N/"g$KrBrb[uH*?N/"j+Mmn\"\<Di\PDco0Kt*>) +\<Di\PDco0Kt!%q[uH*NNJ4j$Kt!%q[uH*NNJ4j$KrBrb[uH*?N/"g$Kt!%qW/QJ?NJ4j$KrBrb +[uH*OPDcAuL:<.rW/QJ?NJ4<iL8^&c\V5:LXJPsss8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkLnYIdaZjkbg")F`Pfa7]=bhs]Xk_f]t:qj +`5T^-]Y1qi]st2ELM^[jFDJFUPe!6I\XJc'R>nbGPe!6I\XJbnRZt@OPdlp8\<Di\PDcr7Mn"t/ +\<Di\PDcr7Mn"t/\<Di\PDcr7Mn"t/\<Di\PDcr7Mn"t/\<Di\PDcr7Mn"t/[uH*OPDcr7Ml;Sh +\<Di\PDcAuL:EG*\<Di\PDcr7Mn"t/\<Di\PDcr7Mn"t/a-hptRZt@OPfK2O\XJbnRZtj\NQ7HH +\XJc'R>nbGPfK2O\XJbnRZuFB^&S-4s8W,coC_>6n)39idaZjkbg")F`O*"Z['[3I['[3I['[3I +['[3@XKA:pUj60DH!=6lA713s:3g&CH!=7GKRC:nMn,:@\<Di]RZt@OPe!6I\XJc'R>nbGPfK2O +\XJbnRZtj\NObLBa-hptRZtj\NObLBa-hptRZt=GMoV6F\XJc'R>n_?Mo_*8\<Di\PDcr7Mo_*8 +f>PB&s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gi8j(Sgtp5uc,@T? +]=bhXXKAP)XdkuQUnsl_V50o`Uka&2BMV35:J#_-8n_!lG#CqG:J#_-8p4*)G#CqU;G)gV=Lj<: +VhBGqKRB\NI&DXFVhBGqKRB\FE2S)&R!a%SHuPF*JZ!m7VhBGqKRB\NI&DXFVhBGqKRB\NI*9aY +i8j(SgtpK/f#5PH]=bha['Zm8Xe_ehS=Z7@St)=BS>_mAG@Y*);G(Uu8U4N>BMV3C;G)+18p4*) +G#CqU;G)4=<-D/3G#CqfD.ff+L8^&cW/QJ?NJ4<iL:<.rW/QJ0N/"g$Kr9TOW/QJ/KRB\NI&DXF +VhBGqHuQ!:I&DXFVgNH]KRDq;h#IESs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq=OCVkj7crjQDnXFbagHLM^[ZD.f5Q@Y\f5Qu-;fFE!RgCR9-YQZR#0FDI4bCR9-Y +QZR#0FDI4bCR9-YQZR#0FDI4bCR9-YH!=6n>?#cD8p4*)H!=6k;G)4=<-D/3BMV3F>?#938Tn!( +BMV3C;G*mPOT5@\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA*k+gmEJ3LM^[jFDHYRE0kZ^QZR#0FDI4bCR9-YQZR#1I!(g(Ff0V+ +R!a%DI!)?7E0u#qR!a%DI!)?7E0u#qVgNHNI!(ctCO',`H!=6n>?#lP<-_\IH!=6n>?#lP<-_\I +H!=7XXfD-^kNM:$kj7d%m-j0)n)iE\g"bH(]XjJXFdI2cQZR#1I!(ctCRBKlQZR#0FDI4bCR9-Y +QZR#0FDI4bCRBKlR!a%DI!)?7E0u#qVhBGqKRB\NI$f;(H!=6lA70[e</P0fH!=6lA70[e<-Mk\ +G@Y+$]Xn.Cs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA*q=n)39ig"bGnUnFZFL8^&cVhBGqKRB_WL8^&c[uH*?N/"g$KrBrb +[uH*?N/"g$KrBrb[uH*?N/"g$KrBrb\<DiLN/"g$KpQmsG@Y*=@p!qc@#.u]Q]-h%s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQG4OhT2dp +VhBGqKRB_WL8T]PW/QJ0N/"9iL8^&cVhBGrN/"m#I&N!YW/QJ?NJ4<iL8^&c\<DiLN/"j+Ml;l% +\<Di\PDcr7Mn"t/\<Di\PDcr7Mn"t/\<Di\PDcr7Mn"t/[uH*OPDcAuL:<.r[uH*?N/"g$KrBrb +\V59`D.e,u<-_\IG@Y+Um-"EKs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+=jQGI^kLnYIdaZk#bfe2Rc,@T?`5T^6`Pod7`QQKM +`k8m]P`Vi&L8^&c[uH*?P`WA6KrC5t[uH*?P`WD=Mmn\"W0ECQNJ4m+Mmn\"\<Di[NJ4j$Kt!%q +W/QJ?NJ4<iL8^&c[uH*OPDco0Kt!%qW/QJ0N/"g$KrBrbW/QJ?NJ4<iL8^&c[uH*?N/"g$KrBrb +VhBGrN/"6`I.[..s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\kj7crjQFt@f#u:^bKS5L`Pod7`Pfa7]=bhq`PoI%]uI^r]=bhh]Y1hWWcr;q +VgNHoRZt@OPe!6I\XJbnRZt@OPe!6I\<Di]RZt=GMn"t/\<Di\PDcB(OLUL4\<Di\PDcr7Mn"t/ +\<Di\PDcr7Mmn\"[uH*?N/"g$Kt*>)W/QJ@PDcAuL:EG*W/QJ@PDcr7Ml;l%\<Di\PDcr7Mn"t/ +\<Di\PDcr7Mn"t/\<Di\PDcr7Mn,:@\<Di]RZt@OPe!6I\XJbnRZt@OPe!6Ia-hptRZt@OPi]j# +s8W-!s8W-!s7H$\kj7crjQG4OhTO-f`5T^-]Y1\Z['[3I['[3I['[3I['[3I['[2qD.e,u<-_\I +H!=6n>?#fW@$btN\<Di\PDcr7Mn,:@\<Di]RZt=GMn,:@a-hptRZt@OPfK2O\XJbnRZt@OPfK2O +\<Di]RZt=GMoV6F\XJc'R>n_?MoV6F\<Di]RZt=GMn,:@aJ>C!pA+ags8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!kj7bnD.eTNH`3Bu +a0i2#eCO9cq>^Kps8W-!s8W-!s8W-!m.9o6m-ilnkL.l2daZjd`PoI%]sP/RUnsl_V50o`Unji_ +UnslBFDuD$8n_!lBMV35:J#4q8Tn!(BMV35:J#4q8SCmkMITbdKRB\NI&DXFVhBGqKRB\NI$f;( +VgNHNI!)?7E2S)&R!a%SKRB\NI$f;(VhBGqKRB\NI&DXFVhBH@bg#),kLnYIdaZjkbg!c4]sP/R +X/rFnSt)=BS=H1@S=Z7@St("8?t`>-BMV35:J#h9<+o'!BMV3F>?#938SCmkG#CqF>Zu;K8r@+\ +W/QJ0N/"6`I&N!YW/QJ/KRC7gKr9TOW/QJ/KRC7gKr9TOVhBGqKRB\NI&DXFVhBGqKRB\NI&DXF +k1nbls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2 +\XJbMD.89;B:*OFLM^[ZD.f2WCPQb>QZR"uD.f2WCPQb>QZR"uFE!RgCPR"NQu-;fFE!Ua@Y]&E +QZR"uFE!+I=D1K%H!=6]:J#4q8SCmkBMV35:J#h9<+o'!BMV3F>?#938SCmkH!=8$gtr)2s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6T@M +\?2cdD.eW@B8:>:QZR"uFE!"WE//OSQZR#1I!(g(FdRQ!R!a%DI!(g(Ff0n?R!a%CFDI7kFdRQ! +R!a%DI!(g(FdRQ!QZR"g>?#lP<-_\IH!=6k;G)4=<-_\IH!=6]:J#h9<4K'1m.9o:oC_kEkNqg5 +kj7crjQG4OhU9p)VhBGaFDI4bCR9-YQZR#0FDI4bCR9-YQZR"uD.f2WCR9-YQZR#1I!(ctCRBKl +R!a%DI!)??I$]M;VhBGqKRAPlB8U2$G@Y*,>?#fW@!PsUG@Y*;>#'?I<-N1po_/+\s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_G +kj7d#gt^)sc)?SUW/QJ/KRB_WL8^&cW/QJ0N/"9iL8^>uW/QJ0P`Vi&L8^&cW/QJ0N/"9iL:EG* +W/QJ0N/"9iL:<.rW/QIg@p""\<-Mk\H!=6lA74'6bQ%VBs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkMYFa`k8m\KRB\NI&DXFW/QJ/KRB_WL8T]P +VhBGrN/"6`I&N!YVhBGrN/"6`I&N!YW/QJ?NJ4<iL8^>u[uH*?P`WD=Ml;l%W0ECBP`Vi.OLUL4 +W0ECBN/"9qOLL4'W0ECBN/"9iL8^&cW/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&cMITb6>?#lP</5R7 +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<[_Gi8j(SgtpK/f#u:^bKS5Sbg")F`QQKM`5T^6`Pp$Ec*sLA\<DiLN/"9qOJn+m +W/QJ?NJ4<iL8^&cW/QJ0N/"g$KrBrbW/QJ0N/"9iL8^&cW/QJ?NJ4<iL:<.rW/QJ@PDcr7Ml;l% +\<DiLP`WA6KrBrb\<DiLN/"9iL8^&cW/QJ?NJ4<iL8^&cW/QJ0N/"9iL8T]PaJ>C,s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#+oo +k1nb?eCMgec,@T?`5T^6`PoI%]uI^r]=bhh]Y28&`Oidr]=bhQV5/l`B;^E1\XJbnRZt@OPe!6I +\XJbmPDcB.Q+3$9W0ECBP`Vi.OLUL4W0ECRPDcB(OJn+mW0ECQNJ4<qOJn+mW0ECBN/"9iL:<.r +W/QJ0N/"9iL:<.rW0ECRPDcB(OLUL4W0ECRPDcB(OLUL4W1'!]PDcB.Q+3$9\<DiLP`WD=Ml;l% +\<DiLP`WD=Mn"t/\XJbnRZt@OPe!6I\XJbnRZt=GMn,:@f>PB&s8W-!s8W-!s8W,kpA+(Hp#+oo +daZjreCMRW`Oidr['[3I['[3I['[3IX/rG1['[3I[$Q`/H!=6lA70[e<-Mk\H!=7*@p#[oOL^gE +\XJbnRZt=GMn,:@\XJbnRZt@OPe!6I\XJbnRZt=GMoV6F\XJbnRZtj\NObLBa-hptRZt@OPe!6I +\XJbmPDcu?Pdlp8a-hqOe^sj$s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,]gt[*a@!PsUBMV3F>?#6?>'<e9H!=6n>?$u;Ff:ao +['[4(m-jT?q<[_Gi8j(Sgtp5uc,@T?]=bhXXKAP)Xe_ehUnsl_V50o`Uka&2BMV35:J#4q8SCmk +BMV35:J#4q8SCmkG#CqG:J$FR=Jph"VhBGbI!)?7E0u#qVgNHNI!)?7E0u#qVhBGbI!)?7E0u#q +VhBGqKRB\NI$f;(VhBGqKRB\NI*9aYi8j(SgtpK/f#5PH]=bha['Zm8XdkuQS=Z7@St)=BS=H1@ +G@Y)p:J#_-8n_!lBMV35:J#4q8SCmkBMV3F>?#938Tn!(BMV3TD.ff+L8T]PVhBGqKRB_WL8T]P +W/QJ/KRB\NI&DXFW/QJ/KRB\NI&DXFR!a%SKRB\NI&DXFVhBGbI!+,thZ*WUs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o6m-hm3`J8PSLM^[ZD.eW@B8:>: +QZR"uFE!"WE0tKOLM^[ZD.eWGE//:CQu-;fD.eW@B8:>:LM^[kD.89;B8:>:LM^[L>?#938SCmk +H!=6]:J#h9<+o'!BMV3F>?#938SCmkB3\VR:J#4q8V_D,o_/+\s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+=jQDkOCPQb>Qu-;fD.eW@B8:>: +QZR#0FDHYRE0u#qR!a%DI!(g(FdRQ!R!a%DI!(g(FdRQ!R!a%DI!(ctCRBKlR!a%DI!(3dE->,O +H!=6n>?#cD8nVC4H!=6]:J#2(>'X=OBMV4,[']2kp$D;Cm.9oBpA*q=n)39ig"bH4eCM+)TSIAs +LNIL%FDHYKB:!^ULM^[jFDHYKB8:SJLNIL%FDHYRE0kZ^R!a%DI!(g(FdRQ!R!a%CKRp%SI&DXF +R!a%#A70Ul@!PsUH!=6lA70[e<-Mk\G@Y*,>?$rBJcGcMs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkLnYI\XJb]N/"6`I&DXF +W/QJ/KRB_WL8^&cW/QJ?NJ4<iL8^&cW/QJ?NJ4<iL:EG*W/QJ0N/"9iL:N1hW/QJ0N/!^IFa%A( +MITb4A71:)=GM!;s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA*q=n*'-,i8j(>`Pnd7L8T]PQ\9pfKRB\NI&N!YVhBGqKRB\NI&DXFVhBGaKRp%SI&N!Y +VhBGrN/"9iL8^&cW/QJ0N/"9iL8^>uW0ECBP`WD=Ml;l%\<DiLP`WD=Ml;l%[uH*?P`Vi&L8^&c +W/QJ0N/"6`I&DXFVhBGqKRB_WL8^&cW/QJ0N/![PJU(I!H!=6lA71a_MZ<_Vs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n(HLQ +g"bH4eCMgec-+>U`5T^6`Pod7`QQKM`5T^8]Xk&+OJnD*W/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&c +W/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&cW0ECBP`WD=Ml;l%W0ECRPDcB(OLUL4W0ECRPDcB(OJn+m +W/QJ@PDcAuL8^&cW/QJ0N/"9iL8^&cVhBGrN/%)nkPtS^s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkLnYIdaZjkbg")F`Pfa7 +`5T^-]Y28&`Oidr]=bhq`PoI%]uI^rW1&uqD/6)/L:Nb;\XJb]P`WGEPc0h.\<DiLP`Vi.OLUL4 +W/QJ0N/"9iL8^&cW0ECQNJ4<iL8^&cW0ECQNJ4<iL:<.rW/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&c +\<DiLN/"9qOLUL4W0ECBP`Vi.OLUL4W0ECRPDcB(OLUL4W0ECBN/"9iL:EG*W0ECRPDcB(OLUL4 +\XJbmPDcu?Pe!6I\<Dj8e^sj$s8W-!s8W-!s8W-!s7H$\m.9o6m-iW_hTO-fbKS5C]Y1qi]sP/R +X/rG1['[3I['[3I['[39V5/B@<-_\IH!=6n>?#lP<-_\IW/QJ@PDcu?Pe!6I\XJbnRZt@OPe!6I +\XJbnRZtj\NObLB\XJbnRZt@OPdlp8\XJbmPDcu?Pe!6I\<DikR>nbGPdlp8\XJc(XJPsss8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8U$V`FiFZBMV35:J#4q8SCmkBMV3F>?#938S;:3B3\V`;G)^dE5oQ%m.9o6m-ilnkLnYI +daZjd`PoI%]sP/RUnsl_V50o`Unji_UnslBFDtnh8QA2FBMV3I3]q(O8SCmkBMV35:J#4q8SCmk +G@Y*JKRp%SI$f;(VhBGqKRB/7Ff0n?R!a%CKRp%KE0u#qR!a%SKRB/7Ff0n?Q\9pfKRB\NI$]M; +VhBH@bg#),kLnYIdaZjd`PoI%]sP/RX/rFnSt)=BS=H1@S=Z7@St("8?t`>-BMV35:J#4q8SCmk +BMV35:J#4q8SCmkBMV35:J#4q8W%"[VhBGaKRp%SI&DXFVhBGqKRB\NI&DXFW/QJ/KRB\NI&DXF +Q\9pfKRB,>JZ"0KQ\9pfKRB,>JZ"0Kk1nbls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+@Sq<726i8j'gI!(3]B8:>:LM^[ZD.eW@B8:>:LM^[ZD.eWGE0tKO +LM^[ZD.eW@B8U2$LM^[ZD.eW@B8:>:LNIL%FDHYKB8:>:BMV34>Ztf:8SCmkB3\VR:J#4q8SCmk +BMV35:J#4q8SCmkBMV35:J$t<PQ1[_s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8VHWor+=ELNIKjD.eW@B8:>:LM^[jFDHYRE//OSQZR"uFE!RgCPR"N +QZR"uFE!RgCPR"NQZR#0FDHYRE0u#qQZR#1I!(ctCRBKlLM^[I;G(S,>%g]'B3\V`;G(Uu8S;:3 +BMV35:J#4q8[Pk3o_/+QpA+@Sq<[_Gm.9o6m-ilnkLnYI`5T]^FDHYKB8:>:LM^[ZFE!RgCPQb> +LNIL&D.89BE//OSQZR#1I!(ctCRBKlR!a%DI!(d/JX;%@VhBGaN/FNdI$f;(H!=6lA70Ul@!PsU +G@Y*,>?#fW@!?-hG@Y*[R[*pQs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+@Sq<726i8j(A[BZ'WMPl,TQ]-g"KRB_WL8^&cW/QJ0N/"9iL8^&c +W/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&cQZR"eA70[e<-Mk\G@Y*kXfDF$s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mkj7d#gt^?-eu4gp +VhBGaKRoJCJZ"0KQ\9pVKRoJCJZ"0KQ]-fgKRp%SI$]M;Q\9pVKRoJCJZ"0KQ]-g"KRB_WL8^&c +W/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&cW/QJ0N/"6`I$]eLW/QItKRp(\L8^&c +W/QJ0N/"9qOJn+mW0EC2I!'XD@!PsUH!=7XXfDF$s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQG4OhU9p)fZ_O^bg")F`RrDX +`5T^6`Pp$Ec,@T?\"o[qP`Vi&L8^&cW/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&c +W/QJ@PDcAuL:<.rW0ECBN/"9iL8^&cW/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&cW/QJ0N/"9iL8T]P +W/QJ/KRB_WL:Nb;s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mkj7ckgtp`>hU9p)bKS5L`Pod7`Oidr`5T^-]Y28&`Oidr +]=bhh]Y1qi]qhL#G@Y*[N/"9qOJnD*W0ECBP`Vi.OJn+mW/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&c +W/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&cW/QJ0N/"9iL8^>uW/QJ0P`Vi.OJnD*\<DiLN/"9qOLUL4 +W0ECBP`WGEPc0h.\<DiLP`WD=Ml<)0\<DiLP`WD=Ml<)0\XJbnRZsb8OL^gE\XJbnRZuakkPtS^ +s8W-!s8W-!s8W-!s8W-!s8VHWp#+ooi8j(LeCMgec,@T?]=bha['[3I['[3IX/rG1['[3I[(*6< +LNIKZA70[e<-_\IG@Y*,>?$B"E4D*i\<Di]RZt@OPe!6I\XJbmPDcu?Pdlp8\XJbnRZt=GMn,:@ +\XJbnRZt@OPe!6I\XJbnRZt@OPdlp8\XJbnRZusih#IESs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\o_/+IoC_JAp%7tRo_/+\s8V`bq4+%HBMV35:J#4q8SCmk +BMV35:J#4q8SCmkBMV35:J#4q8V_D,W/QJ0P`XhakNqg5i8j(Sgtp5uc,@T?]=bhXXKAP)Xe_eh +Unsl_V50o`Uj$p&BMV3"76tT_8Q\YWBMV3"76tT_8SCmkBMV35:J$@G:7$WbVgNHMKRoJCJXCh- +VhBGaKRp%KE0l6/VhBGaKRp%SI$]M;VhBGaKRp%SI&DXFQ]-g"KRB_WL<Ifci8j(SgtpK/f#5PH +]=bha['ZX*Unji_S=Z7@St)aJQ(4G9G@Y)p:J#4q8SCmkBMV35:J#4q8SCmkBMV35:J#4q8SCmk +BMV3DA72<gI$f;(Q\9pVKRoJCJX;%@VhBGaKRp%SI$]M;VhBGaKRp%SI$]M;Q\9pVKRp%SI$]M; +VhBGaN/HcQh#IESs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+Em-j0)n$f*cLM^[ZD.e`9=GLa+LM^[ZD.eW@B8:>:LM^[ZD.eW@B8:>:LM^[JD/5#==GLa+ +LM^[ZD.eW@B8:>:LM^[ZD.e''?t`>-BMV35:J#4q8SCmkBMV35:J#4q8SCmkBMV35:J"Y^88(dj +BMV3uR[*pQs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +fZ_NoD.eW@B8:>:LM^[ZD.eW@B8:>:LM^[ZFE!RgCPR"NLNIL&I!(3dE0kZ^L4"?7FDHVYH^Ahi +L4"?7FDHVYH\Z]^LNIL%FDHYKB4kIQBMV35:J#4q8S;:3BMV35:J#4q8SCmkBMV40XfD$eq=OCV +o_/+QpA+@Sq<726i8j(SgtpK/esV_cQu-;fD.eW@B8:>:LM^[ZD.eW@B8:>:LM^[jFDHYRE//OS +R!a%2I!_6.FdIc4R!a%CKRoJCJZ"0KQ\9pVKRnnqB6d]\G@Y**A70Ul@!?-hG@Y)o>ZuDW<-Mk\ +Q]-h%s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +kj7crjQF_1c'OBHVhBGaKRoJCJZ+N^Q]-g"KRB,FMPuJgW/QJ0P`Vi&L8^&cW0ECBN/"9iL8^&c +W/QJ0N/"9iL8^&cW/QJ/KR@uS@!?-hG@Y**A70Ul@/p9,s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!kj7d%m-ilnkLnYIW1'!<KRoJCJX;%@Q\9pVKRoJCJZ"0K +Q\9pVKRoJCJX;%@Q\9pVKRoJCJZ"0KQ\9pVKRp%SI$]M;Q]-g#N/![XMO8d6G@Y*[N/"9iL8^>u +W/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&cW/QJ/KRB,>JZ+N^Q\9pgN/"9iL8^&cW/QJ0N/"9iL8^>u +LNIKZA70%T>'X=Og"bHas8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+@Sq<726i8j(LeCN'tf#u:^bKS5L`Pp$Ec,@T?`5T^6`Poj0\u:jT +W/QJ0N/"9iL8^&cVhBGaN/FNdI&N!YW/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&cW/QJ0P`Vi&L8^&c +W0ECBP`Vi&L8^>uW/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&cQ]-g#N/![PJZ+N^Q\9qRm-juSs8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA+@Sq;C>sg"bH4eCMgec-+>U`5T^6`Pod7`Oidr]=bhs]Xk_f]u7n/]=bhs]Xjo8Uk`f" +Q]-g3PDcAuL8^>uW/QJ0N/"9qOJn+mW/QJ0N/"9iL6mjVW/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&c +W/QJ0N/"9iL8^>uW/QJ0N/"9iL8^&cW/QJ0P`Vi.OJnD*W0ECBP`Vi4Q+3$9W0ECBP`Vi4Q+<?J +W1'!]PDcB.Q+<?JW1'!^RZt@OPc1%9\XJbnRZt:WT`>&ls8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+IoC_&&kLnYIbKS5L`PoI%]sP/R['[3I['[3I['[3I['[3@XK@nSPBgA3G@Y)o>ZuDW<-_\I +G@Y*[P`WGEPdlp8\XJbmPDcu?Pe!6I\XJbnRZt=GMn,:@\XJbnRZt@OPdlp8\<Di]RZt=GMn"t/ +\XJbmPDdJhZ2ak(s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +m.9o:oC_>6n*'-,kj7d%m-j<4p#+ooL4">J76spB5ug?><CK2U9Lr8Z86APVBMV3%9Lrhm8SCmk +QZR#AN/![PJZ"0K]=bi@m-ilnkL.l2daZjd`Po3k['[3IUnsl_V50o`Unji_UnslBFDt5K6"j%c +<CK2e:J"Y^8:3H\BMV3"76spB6"j%cH!=7GHuPF*JXCh-VhBGbI!(d/JZ"0KQ\9pWI!(d/JXCh- +Q\9pfKRB,>JX;%@VhBGaKRp(\L8^&cQ]-gFbg#),kLnYIdaZjd`PoI%]sP/RX/rFnSt)44PFS57 +S=Z7@St'Fu>#e!W<CK2R76spB5ug?>BMV35:J#4q8SCmkBMV35:J#4q8W%"[Q\9pWI!(g(FdRQ! +VgNHMKRp%SI$]eLVhBGaKRoJCJX;%@Q\9pWI!)??I$]M;Q\9pVKRoJCJZ"0Kg"bHas8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7c]bfto[B8:>: +GAV,Q@p"M'B8:>:LM^[ZD.eW@B8:>:G@Y*=@p!qlCNj;sGAV,Q@p!qlCPQb>LM^[ZD.eWGE//:C +LM^[;:J#4q8SCmkBMV35:J"Y^88(dj=A28!:J"Y^88(djBMV3%9Lr8Z88(djL4"@3m-juSs8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,Pgtmg.E//:CLM^[ZD.eW@B6S3. +LM^[ZD.eW@B8:>:LNIKjFE!"WE//OSLNIL%FDHYRE/&aeLNIKjFE!RgCPR"NLNIKjFE!RgCPI4` +LM^[;:J#4q8SCmkBMV35:J#4q8SCmkBMV3%9Lrhm8[Pk3o_/+\s8V`bq=OCVo_/+Em-ilnkN:RT +daZjT['YU*B8:SJLM^[ZD.eW@B8:>:LM^[ZD.eW@B8:SJLNIL%FDHVYH^AhiL4"?8I!(d/JX;%@ +VhBGaKRoJCJZ+N^Q\9p6D/4?+@!PsUB3\Vc>?#fW@!PsUB3\VaA70[e</5R7daZkJs8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_&&kLe#%W/QItKRoJCJX;%@ +Q\9pVKRoJCJX;%@W/QItN/FQmL8^&cW/QJ0P`Vi&L8^&cW0ECBN/"9iL8^&cW0ECBN/"9iL5()& +G@Y*,>?#fW@!PsUUnsmes8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA*q=n)39ik1nb%Xf@_@JXCh-Q\9pWI!(d/JX;%@Q\9pVKRoJCJXCh-Q\9pWI!(d/JX;%@ +R!a%CKRoJCJX;%@Q]-g"KRB,>JZ+N^Q\9p6A70%T>*k2*W/QItN/FQmL6mjVQ]-g#N/![XMO09Z +W/QItN/Es\MPuJgQ]-g"KRB,FMPuJgQ]-g#N/"9iL8^>uW0ECBN/"9iL3IKMH!=6\>Zu>^@/p9, +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+Em-ilnkLnYIdaZjkbg")F`QQKM`5T^6`Pp$Ec,@T?`5T]oR['h1L6mjVVhBGaN/EsTJZ+N^ +Q\9pgN/![XMPl,TQ]-fgKRp(\L6mjVW/QItN/FQmL8^&cW/QJ0N/"9iL8^&cW/QJ0N/"9iL8^&c +Q]-g#N/![PJX;=QVhBGaN/FNdI$]M;Q]-fgKRp(dOT5@\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-j0)n(HLQ +daZjreCMgec,@T?`5T^-]Y28&`Oidr]=bhs]Xk_f]t:qj]=bhQV5/lgE0l6/W0ECBN/"9iL8^&c +W/QItN/Es\MPuJgQ\9pfKRB,FMO0!IQ]-g#N/![XMPuJgQ]-g#N/![XMPuJgQ]-g#N/"9iL8^&c +W0ECBN/"9qOLUL4W0ECRPDcB(OJnD*\<DiLP`Vi4Q+<?JW0ECBP`Vi4Q+<?JW1'!^RZsb>Q+<?J +W1'!^RZsb>Q,LY\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gi8j(SgtpK/f#5PH +]=bhh]Y1\Z['[3I['[3@XKAk:['[3IX/rFIA70%T>'X=OB3\VaA70[e<2bb1W1'!^RZsb>Q+<?J +\XJb]P`WGEPe!6IW0ECSRZt=GMn,:@W0ECSRZt@OPc1%9\XJb]R[(FPPe!6IfZ_P=s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_&&kMYFai8j(SgtpuMkMYFa +['[2Q>Zt,r5ug?><CK2R76spB5ug?><CK2R76spB5ug?>BMV3SI!_35JX;%@Q\9pVKRp(dOPo3_ +i8j(Sgtp5uc,@T?]=bha['ZX*Unji_Unsl_V50o`Uka&2BMV3%9Lr/P6"j%c<CK2U9Lrhm8QA2F +BMV3"76u3'<0r8hR!a%CKRoM<FdIc4R!a%CKRoJCJX;%@Q\9pVKRoJCJX;%@VhBGaN/EsTJZ+N^ +Q\9pgN/![PJ^W'!i8j(LeCN'tf#5PH]=bha['ZX*Unji_S=Z7@St)=BS=H1@B3\V?76spB5ug?> +BMV3"76spB5ug?><CK2R76spB6"j%c<CK2tA71dPFdRQ!R!a%CKRoM<FdRQ!Q\9pVKRoJCJX;%@ +Q\9pWI!(d/JXCh-Q\9pWI!(d/JZ"0KQ\9pVKRr:@h#IESs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n)39iQ]-fGA7110B6RloGAV,>A70Ul@!?I' +G@Y**D/4?+@!?I'MITb4A70Ul@!?I'G@Y**A70Ul@!?I'LM^[JA70Ul@#&T3B3\VB9Lrhm8Q\YW +BMV3%9Lrhm8Q\YWBMV3%9Lr8Z86APVBMV3%9Lr8Z89\TP]=biWs8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8Ud-hM-E)LM^[ZD.e'0CPQb>GAV,ND.eW@B6S3.LM^[ZFE!"PB8:SJ +LNIKjFE!"WE//OSLNIL%FDHYRE//OSLNIKjFE!"PB8:>:LNIKjFDuG7?t`>-BMV35:J"Y^88(dj +=A27f9Lr8Z86APV=A28m[']l5s8W-!s8W-!s8V`bq=OCVi8j(ZjQG4OhUp&qQ\9pFD.eW@B8:>: +LM^[ZD.eW@B8:>:LM^[ZFE!"WE//OSLNIKjFDut^H^K2'R!a%DI!(g(FdIc4Q\9pVKRoJCJX;%@ +LM^[:>ZuDW<-Mk\B3\VaA70%T>'FLbB3\VQ>ZuDW<1/r6o_/+\s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+@Sq<726`5T]^KRoJCJXCh-Q\9pWI!(d/JX;%@Q\9pfKRB,>JX;%@ +W/QItN/FQmL6mjVW/QItN/FQmL8^&cR?Ni5N/"9iL7+6hW/QITA70Ul@!?-hG@Y**A75''q>^Kp +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(Sgtp&`\sJ)$ +Q\9pVKRoJCJX;%@Q\9pVKRoJCJX;%@L4"?8I!(0kH^K2'L4"?8I!(d/JXCh-Q\9pVKRp%SI$]eL +Q]-g#N.uOnCN`TJL4"?d`PndEQ'[/TQ]-fgKRp(\L6mjVW/QItN/FQmL6mjVW/QItN/FQmL6mjV +W/QItKRoJKMO09ZW/QJ!PEVr(L8^>uW/QItN/Dgi?t`>-B3\VpI!bnns8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6/h<kj7ckgtpK/f$`(! +fZ_OW`Pp$Ec,@T?`5T^6`Pod7`OidrQ\9pgN/![PJX;%@W/QItKRp(\L6mjVW/QItKRp(\L6mRE +VhBGaKRoJKMPl,TQ]-fgKRoJKMO09ZQ]-fgN/FQmL6mjVW/QItKRoJKMO0!IQ\9pfKRB,FMO0!I +Q]-fgN/FNdI$]eLl.+Dcs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQG4OhU9p)bKS5Sbg")F`Pfa7 +`5T^-]Y28&`Oidr]=bhq`PoI%]uI^r\?2cTD/5JkJZ+fpW0ECBN/![XMPuJgQ]-g"KRB,>JX;%@ +Q\9pfKRB,>JX;%@Q\9pgN/![XMPuJgQ]-g#N/"9iL6mjVW/QItN/FQmL8^>uW/QJ0P`Vi.OJnV5 +\XJb]R['h?Q+<?JW1'!MP`Vi.OJnV5\<DiLR[(FPPc0h.\XJb]R[(FPPc1%9f>PB&s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n(HLQdaZjd`Pod7`Oidr['[3I['[3I['[3I +['[3@XKAk:["sBgH!=6\>Zu>^@!PsUB3\VqD.ff3OJnD*\XJb]R['h9OL^gEW0ECBR[(FPPe!6I +W1'!MP`WGEPc1%9\XJb]P`WGEPe!6IW0ECBR[(FPPigcVs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,coC_JAp#+ooi8j(SgtpK/f$`(!bKS4iMi:Y)5ug?><CK2R76spB5ug?> +<CK2R76spB5ug?><CK2e:J$=`E0u#qR!a%DI!(d/JXCh-LkLH"`PpcrkLnYIdaZjd`PoI%]sP/R +Unsl_V50o`Unji_UnslBFDt5K6"j%c<CK2e:J"Y^88(dj<CK2e:J"PT6!-fOH!=78I!(d/JX;%@ +R!a%CKRoM<FdIc4R!a%DI!(d/JX;%@Q\9pVKRoJCJZ+N^Q\9pVN/Es\MPuJgQ]-gFbg#),kLnYI +daZjd`PoI%]rS6:X/rFnSt)=BS=H1@S=Z7@St't%8l\;G<CK2R76spB5ug?><CK2R76spB5ug?> +<CK2R76spB6$Z[6L4"?8I!(0kH^K2'R!a%CKRoM<FdRQ!R!a%CKRoM<FdIc4R!a%DI!(d/JX;%@ +R!a%CKRoJCJX;%@g"bHas8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\kj7d%m-hs,\p&",G@Y**A70Ul@#AGrGAV,Q@p!qc@!?-hG@Y**A70Ul@!?-h +G@Y*,>?#fW@!?-hG@Y**A70Ul@!?I'G@Y**A70Ul@!PsU=A28!:J"Y^88(dj=A27f9Lrhm8Q\YW +BMV3"76t$L86&)E=A27c76spB6&0Q$bKS62s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s2;mq +LNIKjD.e''@#&T3GAV,>A7110B6S3.LM^[ZD.e'7FGF^GLNIKjD.eWGE//OSLNIKjFDut^H\Z]^ +LNIKjFE!"WE//:CGB@q^D.eW@B8:SJG@Y)`9Lr8Z86APV=A27f9Lrhm8Q\YW=A28!:J"Y^8@5b2 +s8W-!s8W-!s8W-!o_/+IoC_>6n)39ig"bH4eCM.3Wcqu]LM^[JD/4oDB6S3.LM^[ZD.e'0CPQb> +LNIKjFE!"WE//OSR!a%3FDut^H\d?.R!a%4KS5_?FdRQ!Q\9pVKRoJKMO8d6G@Y)o>ZuDW<+fH> +H!=6\>Zu>^@!?-hB3\VaA70%T>+D1Sp[%)Cs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCV +i8j(1UnF'-JX;%@L4"?7KRoJCJX;%@Q\9pWI!(d7MO0!IQ]-g#N/![XMPuJgQ]-g#N/"9qOI(o` +W/QItN/FQmL7+6hQ]-g#N/!+0E-Gi#G@Y)o>Zu>^@&TNZs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7d%m-ilnkKD)oQ]-fgKRoJCJX;%@Q\9pVKRoJCJX;%@ +Q\9pWI!(0kH^K2'L4"?8I!(0kH^BD:Q\9pGKS5_?FdIc4Q\9pVKRp%SI"uf_BMV34>[#(b`RrDX +`k8m]N/![XMO0!IQ]-fgKRp(\L6mjVQ]-g#N/![XMPuJgQ]-fgN/FQmL6mjVW/QJ0N/![XMPuJg +W0EC3PEVr(L6mjVQ\9p&>Ztf:8SCmkR?Nj7s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n)39ig"bH4eCMgec-+>U`5T^=bg")F`Pfa7 +f>PA@`Pnd?OI(WOQ\9pVKRoJCJX;%@Q]-g"KRB,FMO09ZQ\9pVKRoJKMPl,TQ\9pVN/EsTJX;%@ +Q\9pVKRp%SI$]eLQ]-g#N/![XMO0!IQ\9pVKRoJCJX;%@Q\9pVKRp%SI$]M;Q\9pgP`YqFs8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(Sgtp`>hTO-fbKS5L`Pod7`Oidr]=bhq`PoI%]t:qj +]=bhh]Y1\ZZtN6,BMV3TFE!S*MO09ZVhBGaN/EsTJX;%@Q]-fgKRoJCJX;%@Q\9pfKRB,FMO09Z +W/QItN/FQmL6mjVW/QItN/FQmL8^>uW0EC3PEVr0OJnD*W0ECBP`Vi4Q)Kq/W1'!MP`Vi4Q+<?J +W1'!MR['h?Q)L.:W1'!^RZsb>Q)L.:W1'!MR['h9OQP?Rs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s6T@Mkj7crjQG4OhTO-f`5T^-]Y1\Z['[3IX/rG1['[3I['[3I['[39V5.a/>%_)D +BMV34>ZuDW<+fH>W/QJ0P`Vi.OJnD*W0ECBP`WGEPc0h.W1'!MP`WGEPc1%9W0ECBR['h9OJnV5 +\XJb]R['h9OL^gEW0ECBR[)glkPtS^s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_JAp#tc2 +i8j(SgtpK/f$`(!bKS53XK>uCAQ;/b<CK2R76spB5ug?><CK2R76spB5ug?><CK2R76u-.@$l=a +L4"?&I!_6.FbY9jR!a%DI!(d/JXM^ci8j(Sgtp5uc,@T?]=bha['ZX*Unji_Unsl_V50o`Uj$p& +=A27c76tT_8QA2FBMV3"76tT_8QA2FBMV35:J#2(>*jnnR!a%DI!(d/JVJQ!Q\9pWI!(6uKU7@C +R!a%CKRoJCJX;%@Q\9pVKRoJCJX;%@Q]-fgKRoJKMTa5gi8j(Sgtp5uc,@T?]=bha['ZX*Un"$H +S=Z7@St)=BS=,S)B3\V?76spB5ug?><CK2R76spB5ug?><CK2R76spB5ug?><CK2s;G)^dE0u#q +LNIL&I!(0kH\Z]^L4"?8I!(0kH^K2'R!a%2I!^TqH\QopR!a%4KS5_?FdIc4R!a%CN/HcQh#IES +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2 +k1naHI!^'J@!?-hG@Y**A70Ul?tW_JG@Y*,>?#fW@!?-hG@Y*,>?#fW@!?-hG@Y**A70Ul@!?-h +G@Y**A70Ul@!?-hG@Y**A70Ul?t`>-=A27f9Lr8Z86APV=A27c76spB6!-fO<CK2R76spB6!-fO +<CK2R76spB6$IEm]=biWs8W-!s8W-!s8W-!s8W-!s5;u$W1&uqA7110B6S3.GAV,>A7110B6S3. +G@Y**D/4?4CPQb>GAV,ND.e'0CPR"NLM^[ZFE!"WE//OSLNIKjFE!"WE//OSLNIKjFE!"WE-HDG +LNIKZD/4?+?t`>-=A27f9Lrhm8Q\YW=A27f9Lr8Z86APV=A28m[']l5s8W-!s8W-!s8W-!s7H$\ +kj7crjQGI^kL.l2bKS4cI!^WcB6RloLM^[ZD.e'0CPQb>LM^[JD/4oKE//:CLNIKjD.eWGE/&ae +LNIKiI!_6.FbY9jL4"?(KS5\FJX;%@Q\9pGKS5_?Fbb'XB3\VaA70%T>'FLbB3\VQ>ZtcF>%_)D +H!=6\>ZtcF>*k2*`5T^qs8W-!s8W-!s8W-!s8W-!s7H$\m.9ni]XjGgMMQq=R!a%4KS5\FJVJQ! +Q\9pEI!_35JX;%@Q\9pVKRoJCJX;=QQ]-fgN/FQmL6mjVQ]-g#N/![XMOBZlW/QItN/FQmL6mjV +G@Y)o>Zu>^?tW_JG@Y+RpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,_m-j0)n)iE\daZjHP`V5jMO0!IQ\9pVKRoJCJX;=QQ\9pVKRoJKMO0!ILkLGKI!(6uKSFl$ +R!a%2I!_6.FdIc4Q\9pGKS5_?FdIc4L4">]:J"Mb<Of02bKS5Sbg")F`ON%MQ\9pgN/![PJZ+N^ +Q]-fgN/FQmL6mjVW/QJ!PEVr(L6mjVW/QItN/FQmL6mjVW/QJ!PEV>lMPuJgQ]-fgN/Es\MMH:m +BMV3!<)mU-8\;XKs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\o_/+=jQG4OhU9p)bKS5Sbg"eabJ_B=`5T^=bg")F`Pfa7\?2ctKRoJCJX;=Q +Q\9pVKRoJCJX;=QQ\9pVKRp(\L6mREQ\9pVKRoJCJXCh-Q\9pVKRoM<FdIc4Q\9pVKRoJCJV\u4 +R!a%CKRoJCJXCh-LkLGKI!(d/JX;%@Q\9pVKRoJCJ_82is8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA*q=n)iE\g"bH4eCMgec,@T?`5T^6`Pod7`Oidr`k8mp]Y28&`OidrS=Z6Q9Lrhm8Q\YW +LNIL5KRB,FMO0!IW/QItN/FNdI$]M;R!a%CKRoJCJX;=QQ]-g#N/"9iL7+6hW/QJ!PEVr(L7+6h +W/QJ!PEVr0OJnD*W1'!MR['h?Q)L.:W1'!MR['h?Q+<?JW1'!MR['h9OL^gEW1'!^RZsb>Q)L.: +W1'!MR['h9OL^gEW1'!MR[*$jh#IESs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#+oo +g"bH-bg">Tc+CX%]=bha['[3I['[3I['[3@XKAk:['[3IL4">]:J#2(>%_)DB3\VQ>Zuo)E2]"_ +W0ECBP`Vi.OJnV5W1'!MP`Vi4Q)Kq/W0ECBP`Vi.OJnD*\XJb]P`Vi4Q)Kq/W1'!MP`Vi.OJnD* +W0ECleCO["s8W-!s8W-!s8W-!s8W-!s8W,coC_JAp$D;Ci8j(ZjQG4OhU9p)bKS53XK?5RDHKS' +<CK2R76spB5ug?><CK2R76sC+4B4g9<CK2R76tT_8V_.qR!a%2I!_6.FbY9jL4"?&I!^TqH\Qop +L4"?&I!`fN`S'&'daZjd`PoI%]sP/RUnsl_V50o`Unji_UnslBFDt5K6!-fO<CK2R76spB5ug?> +<CK2e:J"PT6!-fOB3\W,KRoJCJVJQ!R!a%2I!_35JVJQ!R!a%2I!_6.Fbk^(R!a%4KS5\FJX;%@ +Q\9pVN/EsTJX;=QQ]-gFbg#),kLnYIdaZjd`PoI%]sP/RX/rFnSt)=BS=H1@S=Z7LR[%Mj>#e!W +<CK2R76spB5ug?>HoaAi76spB5ug?><CK2R76spB6"aG+L4"?'FE!"WE//OSL4"?'FE!"WE/&ae +LNIKiI!^WjE/&aeR!a%2I!_6.FbY9jQ\9pVKRoJCJX;=Qg"bHas8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkI@XoG@Y**A70%T>'X=O +B3\VaA70[e<+BHMG@Y)o>Zu>^?t3_YG@Y**A70Ul@!?-hG@Y**A70Ul@!?-hG@Y**A70Ul@!?-h +G@Y**A70%T>$+Hh<CK2R76spB5ug?><CK2R76t$L86&)E<CK2R76spB6!-fO779RE76spB6"j%c +R?NiXbg#MGp#tc2['[2qFDuG7@!?I'G@Y**D/4?+@!?I'G@Y**A70UuCNjW2LM^[JD/4oDB6SH> +LNIKjFDuGGFGFsWGB@q^FE!"WE/&aeLNIKZFEE:[E-HDGLNIKjD.e'7FGFsWG@Y)`9Lr8Z86APV +=A28!:J"Y^88(dj=A28!:J"Y^8@uOJs8W-!s8W-!s8W-!s8W,kpA+@Sq<726k1nbFgtpK/f!qi^ +LM^[JD/4oDB6S3.LM^[JD/4oDB6S3.LM^[JD/4oKE-HDGLM^[ZFE!"WE/&aeLNIKiI!_6.FdRQ! +LkLGKI!(d/JX;%@Q\9pVKRnr4KSODWB3\Vc>?#6?>'X=OB3\VaA70%T>'X=OB3\VQ>ZtcF>'FLb +LkLGkXfB=Y`S'&'daZjd`Pnd7L5:M9L4"?8I!(0kH^BD:L4"?7KRoJCJX;%@LkLGKI!(6uKU7@C +Q]-fgN/FQmL6mjVQ]-g#P`V5jMO09ZW/QItN/Es\MO09ZW/QIcI!^'J?tW_JG@Y)o>["MA[/^1+ +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2i8j(Sgtnj'Uo96, +Q]-fgN/EsTJX;=QQ\9pVKRoJKMO0!IQ\9pVKRoJCJV\u4R!a%2I!^TqH^BD:LkLGJKRoJCJX;%@ +LkLG9I!]L2>%g]'Q\9q<eCMgec-+>UbKS5Sbg!)TQ'[/TQ]-fgKRoJKMPuJgQ]-fgN/FQmL6mjV +W0EC3PEV>lMPuc$R?Ni5N/!aaPF%5cW/QItN/Es\MO09ZQ\9pVKRn>aCM6L8=A27b<)r)9h#IES +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2 +i8j(SgtpK/f#u:^`5T^=bg")F`Pfa7bKS5L`Pod7`Ku7/Q\9pWI!(d/JX;=QQ\9pVKRoJCJX;%@ +Q\9pVKRoJCJV\u4L4"?8I!(0kH\QopL4"?8I!(6uKU@.0LkLGKI!(0kH\QopL4"?&I!_6.FbY9j +L4"?&I!_35JV\u4Q\9qis8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o6m-iW_hV$]@ +daZjkbg")F`Pfa7]=bhh]Y1qi]t:qj`k8mp]Y0&IHWWs4=A27f9Lsq\E0lN@Q\9pgN/![XMO0!I +Q\9pVKRoJCJX;%@Q]-g#N/![XMPuJgR?Ni5N/!aaPGjFpR?Ni5P`V;sPGj_-W0EC3PEVr0OJnV5 +W0ECBR['h?Q)L.:W1'!MR['h9OJnV5W1'!MR['h?Q)Kq/W1'!MP`Vi4Q)L.:W1'!MR['h?Q)Kq/ +W1'"0jQHRCs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-ilnkL.l2bKS5L`PoI%]sP/R +['[3I['[3I['[3I['[3I['ZX*Uh<q9B3\VR:J#2(>%g]'B3\W=P`Vi.OJnD*W0ECBP`Vi4Q)L.: +W1'!MP`Vi4Q)Kq/W0ECBR['h9OJnD*W0ECBR['h9OJnD*W0ECBP`Vi.OJnD*`k8nTpA+ags8W-! +o_/+IoC_JAp#tc2i8j(ZjQG4OhU9p)['[3!Mi;:R>"(hJ=A27c76spB5ug?><CK2R76spB5ug?> +<CK2R76spB6$Z[6L4"?&I!^TqH\QopLNIKiI!_6.FbY9jR!a%2I!_6.FbY9jUnsm?gtp5uc,@T? +]=bha['ZX*Unji_Unsl_V50o`Uj$p&=A27f9Lr8Z86APV=A28!:J"PT5ug?><CK2e:J#2(>*s\[ +L4"?&I!_6.FbY9jL4"?8I!(0kH\d?.R!a%2I!^TqH^BD:LkLGJKRoJCJX;%@Q\9pVKRoJCJ]l9^ +i8j(LeCN'tf#5PH]=bha['ZX*Un"$HS=Z7@St)=BS=H1@B3\V04Zl_55t4""<CK2C4Zl_55ug?> +<CK2R76spB5ug?><CK2s;G)[kH^K2'LNIKiI!^WjE//OSL4"?'FE!"WE/&aeLNIKjFDut^H\Qop +Q\9pEI!_35JX;%@Q]-fgN/HcQh#IESs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7ckgtm6sFE_8'B3\VaA70%T>'FLbB3\VQ>Zu>^?tW_J +G@Y**A70Ul@!?-hB3\VaA70%T>'X=O@q9.pA70Ul@!?-hGAV,>A70UuCNjW2G@Y**A70%T>$+Hh +=A27c76t$L86&)E<CK2R76spB5t+11<CK2B6q(*E5ug?>779RE76s@179E5SGAV,MI!^WjE-Gi# +GAV,>A70UuCNj;sLM^[JD/4?4CNjW2G@Y*:D.e'0CNjW2GAV,>D/4oDB6SH>LNIKjFE!"WE-HDG +LNIKjFDut^H\QopLNIKiI!^WjE-HDGLNIKjFDuG7?s$)n=A27f9Lrhm8Q\YW<)ck2:J"Y^85rPg +BMV4,[']l5s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkMYFadaZjkbftliH\Z]^LNIKjD.e'7FGF^G +GAV,NFDuG@CPR"NGB@q^FE!"WE//OSLNIKiI!^TqH^K2'LkLG;KS5_?Fbk^(N/NX]KRo)?N0f3K +Q\9pVKRo)?N/)LoG@Y)kA7]CY>%_)DB3\VQ>ZtcF>%_)DB3\VQ>ZtcF>%_)D@q9/+D.eTNH^BD: +L4"?(KS5_?Fbk^(L4"?(KS5_?Fbk^(Q\9pGKS5\FJV\u4Q\9pVKRoJCJX;=QQ]-g#N/![XMO09Z +Q]-fgN/Es\MPuJgQ]-fiPEV>dJTkX4G@Y)o>ZtcF>).3=s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQG4OhRK\fQ\9pVN/FNdI$]eLQ]-fgKRoJKMO0!I +Q]-fgKRoJKMO0!IQ\9pGKS5\FJVJQ!Q\9pGKS5\FJX;%@Q\9pGKS5_?Fa%A(=A280D/7>=c-+>U +bKS5Sbg">Tc-+>U`5T]^KRoJCJX;=QQ\9pVN/Es\MO09ZQ]-fgN/Es\MO09ZQ]-fgN/Es\MO09Z +Q]-fgN/Es\MO09ZQ]-fgKRoJCJX;%@L4">\>Zt6'86APVB3\X?s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA*Y-kLnYIdaZk#bfe2Rc,@T? +bKS5L`Pod7`Pfa7`5T]kV5/inH^BD:LkLGJKRoJCJX;%@Q]-fgKRoJKMO0!IQ\9pEI!_35JVJQ! +L4"?8I!(0kH\QopR!a%2I!^TqH\QopL4"?&I!^TqH\QopL4"?&I!^TqH\QopL4"?&I!`lG])Vg1 +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(SgtpK/f#u:^`5T^6`PoI%]t:qj +`5T^-]Y1qi]t:qjB3\VB9Lr8Z88(djL4"?7KRoJKMO09ZQ]-g#N/![XMO09ZQ]-fgN/EsTJX;=Q +W/QItN/FQuOI(o`W0EC3PEVr0OI;;rW0ECBP`V;sPGj_-W1'!MP`Vi4Q)Kq/W1'!MP`Vi4Q)Kq/ +W1'!MR['h?Q)L.:W0ECBR['h?Q)L.:W1'!MR['h?Q)L.:W1'!MR['h?Q)L.:o_/+\s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gi8j(Sgtp5uc,@T?]=bhh]Y1\Z['[3IX/rG1['[3I[&^:1 +['[2pI!]L2>%_)DBMV34>ZtcF>).3=R?Ni&PEVr0OJnD*W1'!MR['h9OJnV5W0ECBR['h9OJnV5 +W0ECBR['h9OJnD*W1'!MP`Vi4Q'mi"W0EC1N/F$ePIR`pi8j(foC_JAp#tc2i8j(LeCM7E]pt[a +H[C0C>[CE!5t+11<CK2U9Lr/P6!-fO<CK2U9Lr/P6!-fO<CK2R76t$L89nE=LNIKiI!^TqH\Qop +L4"?'FDut^H\QopLNIKiI!^WjE/&aeLNIKiI!^[&KZhTadaZjd`PoI%]rS6:X/rG!V50o`Unji_ +UnslBFDt>U86&)E<CK2U9Lr/P6!-fO=A27f9Lr8Z86APVB3\W,KRnr4KU7@CL4"?7KRnl*H\d?. +R!a%2I!^TqH^K2'LkLGJKRoJCJX;%@Q]-fgN/ERPN0f3KQ]-g?`PpcrkLnYIdaZjd`PoI%]sP/R +Unsl_V50WQS=H1@S=Z7@St'Ii8Obj*7Qik676sC+4B4g9<CK2C4Zl1s4B4g9<CK2R76spB6"j%c +L4"?&I!^TqH^AhiL4"?&I!^WjE//OSLNIKjFE!"WE/&aeLNIKiI!_6.Fbk^(Q\9pVKRoJCJX;=Q +g"bHas8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+IoC_>6n)39i\?2cD>Zu>^?t3_YG@Y)o>Zu>^?t3_YG@Y)o>Zu>^?t3_YG@Y)kA7]sq?t3_Y +G@Y)kA7]sq@!?-h@q9.pA7/nXATqZmC2@d3A7/nXATqZmG@Y**A70%T>$+Hh=A27S6q(*E5t+11 +<CK2R76spB5ug?><CK2R76t$L87u12G@Y*:FDuGGFGFsWGAV,>FEE:TB6S3.GAV,>D/4?+@!?I' +LM^[JD/4?4CNjW2LM^[JD/4oKE-H/7GB@q^FDuGGFGFsWGB@q^FDuGGFGFsWH[C0rFDut^H\Z]^ +L4"?&I!^WjE-lq[GAV+t9Lrhm8Q8Yh=A28!:J"Mb<EMpcB3\VB9Lr,^<Q;\_s8W-!s8W-!s8W-! +s8W-!s8V`bq<[_Gkj7ckgtp`>hU9p)['[2aD/4oKE-HDGLNIKjFDuGGFGF^GGB@q^FE!"WE//OS +H[C0qI!^TqH\Z]^L4"?&I!^TqH^K2'LkLG;KS5_?FdIc4Q\9pVN/EsTJX;%@Q\9pVN/EsTJV\u4 +LNIKZD/4?+?tW_JG@Y)o>Zu>^@!?I'LNIKiI!_35JV\u4Q\9pEI!_35JV\u4L4"?&I!_6.FbY9j +LkLG9I!^[&KU@.0LkLGJKRo)?N/3.?Q]-fgN/Es\MO09ZQ]-fgN/Es\MO09ZQ]-fgN/Es\MO09Z +LNIKJ>ZtcF>%_)DB3\WgeCO["s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+Em-ilnkN:RT`k8mLN/Es\MO09ZQ\9pVN/EsTJX;=QQ\9pVN/EsTJX;%@LkLGJKRnr4KSY;7 +R!a%4KS5_?Fbk^(Q\9pGKS5\FJX;%@GAV+t9Lrhm8\;XKdaZjreCN'tf#u:^bKS5Sbg">Tc+'mU +LkLGJKRoJCJX;%@Q]-fgN/Es\MO09ZQ]-fgN/Es\MO09ZQ]-fgN/Es\MO09ZQ]-fgN/EsTJX;=Q +LkLGJKRnr4KSOYg=A27c76t$L89]/ts8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mkj7crjQG4OhU9p)bKS5Sbg")F`Pfa7bKS5L`Pp$Ec,RE- +Q]-fXKS5\FJX;%@Q]-fgN/EsTJW,MGQ]-fgKRnr4KU7@CLkLG9I!^[&KSFl$L4"?(KS5)-H\d?. +R!a%2I!^TqH\Z]^LNIKjFE!"WE/&aeLNIKiI!^TqH^K2's8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,coC_>6n(HLQg"bH-bg">Tc,@T?`k8mp]Y1qi]t:qj]=bhQV5.*[5ug?> +=A28!:J$n3MO0!IQ]-fgKRoJKMO09ZQ]-fgN/EsTJX;=QQ]-fgN/Es\MOBZlQ]-g#P`V5jMPuc$ +Q]-g#P`V;sPF7VuW0EC3PEVr0OIVo4W0EC6St)aDOJnV5W0ECBR['h?Q)Kq/W1'!MR['h?Q)L.: +W1'!MR['h?Q)Kq/W1'!MR['h?Q)L.:W1'!MP`V];V#UJps8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,coC_&&kLnYIdaZjkbg")F`Oidr['[3I['[3I['[3IX/rG1['[3I[%sOoB3\VB9Lrf$>#\I$ +B3\VQ>[!JQMPuc$R?Ni5R['h9OJnV5W0ECBR[';)PGj_-R?Ni5R[';)PGjq8R?Ni5R['D7S>_[6 +R?Ni5P`V;sPGj_-Q]-fgN/FR&Q(4G9LkLG*FED86DHKS'=A27f9Lr8Z86&)E=A27c76spB5t+11 +<CK2R76s@179)cB<CK2U9Lrf$>'FLbL4"?&I!^[&KU@.0L4"?'FE!"WE/&aeLNIKjFDut^H\Z]^ +LNIKiI!^WjE/&aeQ\9pjXKBq#f#5PH]=bha['ZX*Unji_Unsl_V50o`Uj$p&=A27f9Lr8Z86&)E +=A27c76spB5ug?>=A27c76tQk>*jnnL4"?7KRnr4KSFl$Q\9pEI!^[&KU7@CL4"?(KS5\FJW,MG +Q\9pKMi=!]MO0!IQ\9pKMi=!UJ]l9^i8j(Sgtp5uc,@T?]=bha['ZX*Un"$HS=Z7@St)44PFS57 +<)cje4Zl1s4@VIr7Qik'4Zl1s4B4g97Qik676sC+4B4g9<CK2e:J$:gH\QopLNIKiI!^TqH\Z]^ +L4"?&I!^TqH\QopLNIKiI!^TqH\QopLkLG9I!_35JX;%@Q]-fgKRr(BkPtS^s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o.jQG4OhKsTt +G@Y**A7/nXATqZmB3\VaA70%T>'FLb@q9.r>?#*CAS57OG@Y)o>ZtcF>'FLbB3\VaA7/nXATqZm +@q9.pA7/nXATqZmG@Y**A7/nXATr!,B3\VaA70%T>%_)DB3\VR:J"Mb<G50"<)ck">[D&J>'FLb +GAV,>FED_KFG>0iLNIKZFEE:[E//:CGAV,>D/4?4CNjW2GAV,NFDuG@CNjlBLM^[JD/4?4CNjW2 +GAV,>D/4?4CNjW2LNIKZFED_KFGFsWH[C0rFDuGGFG>0iL4"?&I!^TqH\QopL4"?&I!^'SCM6L8 +<)ck2:J"Mb<G50"<)ck2:J"Mb<G50"<)cl0]Y4@Fs8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n*'-, +g"bH4eCN9rbEn0FGAV,NFDuGGFGFsWGB@q^FDuGGFGFsWGB@q]I!^TqH\QopL4"?(KS5)-H\d?. +R!a%4KS5/7KU@.0LkLG?Mi=!UJW,MGQ\9pKMi<IFKT(hJQ\9pVKRnr4KU7@CLkLGJKRnr4KSY;7 +Q\9pEI!^TqH\d?.R!a%4KS5)-H^BD:LkLG;KS5\FJV\u4L4"?&I!^TqH\QopL4"?(KS5/7KSY;7 +LkLGJKRnr4KU7@CQ]-fgN/Es\MO09ZQ]-fgN/Es\MO09ZQ]-fgKRmWDAS57OB3\VQ>["(pQ2gma +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n*'-,g"bH-bfuQ>PF%5c +Q\9pVN/Es\MO0!IQ]-fgN/EsTJX;%@Q]-fgKRoJKMO0!IQ\9pGKS5\FJV\u4Q\9pGKS5\FJVJQ! +LkLG9I!]O&8Q\YWS=Z8(gtp`>hU9p)daZk#bfe2Rc-+>UbKS5L`PndEQ&(*HLkLG;KS5\FJX;=Q +Q\9pVN/Es\MO09ZQ]-fgN/Es\MO0!IQ]-fgKRoJKMMQq=Q]-fgKRnr4KU7@CLkLG9I!^'SCKO8$ +<CK2R77!H8SH&Whs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V<Ln)39ig"bH4eCN9rbJ_B=fZ_OW`Pod7`Pfa7`5T^6`PnXLUmHacQ]-fgN/Es\MO09Z +Q]-fgN/Es\MO09ZQ]-fgKRnl*H^BD:L4"?7KRnl*H\QopL4"?&I!^TqH\QopL4">pH[UZkE-lq[ +GB@q^FDuGGFGFsWLNILFXfDF$s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6T@M +kj7crjQFt@f$`(!bKS5L`PoI%]t:qj`5T^-]Y2=t\ql#m<CK2B6q(*E6"=G:L4"?(KS5\FJX;%@ +Q]-fgN/Es\MO09ZQ]-fgN/Es\MO09ZQ]-fgN/FQuOI;;rR?Ni&PEVDuPF%5cW0EC3PEVr0OI;;r +Q]-fiPEVN.S>_[6W0EC6St)aDOIVo4W1'!>PEVr6Q'mi"W1'!>PEVr6Q'mi"W1'!MR[';)PGjq8 +W1'!>PEVr6Q)L.:W0ECRXfDF$s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mkj7crjQG4OhTO-f +`5T^-]Y1\Z['[3IX/rG1['[3I['[3I['[3@XK@G>N+c!Y<)ck2:J"Y^87u12LNIL%N/Es\MOBZl +R?Ni&PEVDuPF7VuR?Ni&PEVDuPF7VuW0EC3PEVr6Q'mi"W0EC6St)aJQ)Kq/R?Ni&PEVDuPF%5c +R?Ni$N/Es\MM?M*G@Y)o>Zt6'86APV=A27f9Lr8Z86APV=A27f9Lr8Z86&)EB3\VQ>Zu>gCPR"N +L4"?&I!^[&KSFl$L4"?&I!^TqH\QopL4"?'FDut^H\Z]^L4"?'FDut^H\Z]^L4"?&I!^[&KT(hJ +bKS5L`PoI%]sP/RX/rG!V50o`Unji_Unsl2FECVY86&)E=A27f9Lr8Z86APV=A27c76t$L86APV +B3\W,KRnr4KSFl$Q\9pVKRnr4KU7@CQ\9pGKS5\FJV\u4N/NX]KRoJKMO09ZQ]-fgN/EsTJW,MG +LkLH"`PpcrkLnYIdaZjd`PoI%]sP/RX/rFnSt)=BS=H1@S=Z7LR[%Mj>"1Y;7Qik'4Zl1s4@VIr +7Qik'4Zl1s4@VIr7Qik'4Zl1s4B,9[LNIKZFEE:[E-HDGLNIKjFDut^H\Z]^LNIKjFDut^H\Qop +L4"?(KS5_?FbY9jLkLG;KS5/7KU7XTg"bHas8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2i8j(.['X=RATqZm@q9.pA7/nXAS57O +B3\VQ>ZtcF>%_)DB3\VQ>ZtcF>%_)DB3\VQ>ZtcF>%;)SG@Y)o>Zu>^?tW_JG@Y)kA7]CY>%;)S +G@Y)o>Zu>gCM-mUGAV,.>Zu>^?tsLqG@Y)rCi4H-@!?I'GAV,>D/4?;FGFsWGB@q^FDuSRI>3,r +GB@qNFED_KFGF^GGB@qND/4oKE-HDGGB@q^FDuG@CNjW2GAV,>D/4?4CPR"NGAV,>FED_DCPR"N +GB@qNFED_KFGFsWL4"?&I!^'ZFG>0iL4"?&I!^WjE/&aeGAV+p<)mU-8Q]5(BMV3!<)mU-8Q]5( +BMV3!<)mU-8\;XKs8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o.jQGI^kLnYIdaZj[]Y0)BE-HDG +LNIKZFEE:[E-HDGLNIKZFEE7bH\Z]^H[C0qI!^TqH\QopR!a%4KS5/7KSY;7R!a%4KS5/7KU7@C +LkLGJKRo)?N0f3KLkLGJKRnr4KSY;7LkLGJKRnr4KSY;7LkLG;KS5)-H\d?.L4"?(KS5)-H\d?. +Q\9pGKS5)-H\d?.L4"?&I!^TqH\QopL4"?&I!^TqH^BD:LkLGJKRnr4KSY;7Q\9pVN/Es\MO09Z +Q]-fgN/Es\MO09ZQ]-fgN/Es\MK`oQB3\VQ>ZtcF>'kUEs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gi8j(ZjQFt@eu4gpQ]-fgKRoJCJX;=QQ]-fgN/Es\MO09Z +Q\9pKMi=!UJW,MGQ\9pGKS5\FJV\u4Q\9pGKS5\FJV\u4LkLG9I!^TqHY6Se=A284H[Xi5kMYFa +g"bH;gtpK/f$`(!bKS5Sbg">Tc-+>U`5T]^N/EFEKSY;7Q\9pKMi=!]MO09ZQ]-fgN/Es\MO09Z +Q]-fgN/EFEKU7@CN/NX]KRoJKMMQq=LkLG;KS5/7KSFl$L4">\>Zt6'84>p8<CK3l`PqlWs8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-iW_hV$]@ +daZjkbg")F`Pfa7fZ_OW`Pp$Ec,@T?`k8mLN/EFEKU7XTQ]-f\Mi=!]MO09ZQ]-fgN/ERPN/3.? +LkLG9I!^TqH\QopL4"?&I!^TqH\Z]^H[C0qI!^WjE/&aeGB@q^FDuGGFGFsWGB@q^FDuGGFT;C@ +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#+oog"bH4eCMRW`Pfa7 +`5T^-]Y1qi]u7n/]=bgeA7\4n4B4g9<CK2tD/4r\KSFl$Q\9pGKS5\FJX;%@Q]-fgN/Es\MPuJg +Q]-fgN/Es\MPuJgR?Ni$N/FQmL7+6hW0EC3PEVr0OI;;rR?Ni&PEVr0OI;;rW0EC3PEVN.S>_[6 +R?Ni5P`V;sPGjq8S=Z7LR['h?Q'mi"W1'!MR[';)PGjq8W1'!>PEVr6Q'mi"W1'!>PEVr6Q(4G9 +`5T^qs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#+oog"bH4eCMgec,@T?]=bha['[3I['[3I +X/rG1['[3I['[3IX/rF<Ci3o^8Q]5(BMV3!<)mR9>)7ibR?Ni$N/Es\MOBZlW0EC3PEVDuPGj_- +R?Ni&PEVDuPF7VuR?Ni5R[';)PGjq8R?Ni&PEVDuPGj_-Q]-fiPEV>lMOBZlQ]-fgN/Es\MO09Z +LkLG9I!^'SCMI['@q9.pA70.gDKfr5GB@q]I!^TqH\QopL4"?&I!^TqH\QopL4"?&I!^TqH\Qop +L4"?'FDut^H\Z]^GB@q^FDuGGFG>0iGB@q]I!^TqH\d?.L4"?7KRpM;[)Br&]=bha['ZX*Unji_ +Unsl_V50o`Uj$p&=A27f9Lr8Z86APV8k_r]9Lr8Z86APV=A27c76tQk>)7ibL4"?7KRnr4KU7@C +Q]-f\Mi<IFKU7@CLkLGJKRoJCJW,MGQ]-fgN/Es\MN!IPN/NXNKS5/7KZ(jKi8j(SgtpK/f#5PH +]=bha['ZX*Un"$HS=Z7@St)=BS=H1@<)cje4Zl1s4B4g97Qik'4Zl1s4@VIr7Qik'4Zl1s4@VIr +7QikI:J#bPFGFsWGB@q^FDuGGFE_hKLNIKZFEE7bH\QopH[C0qI!^TqH\QopLkLG9I!_35JV\u4 +LkLGJKRqh3hZ*WUs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+Em-j0)n)39iN/NX=A7/nXAS57OB3\VQ>ZtWJAS57OB3\VQ>ZtcF>%;)S +B3\VQ>ZtcF>%;)SG@Y)kA7]CY>%_)D@q9.\A7]CY>%_)DB3\VQ>ZtcF>%;)SB3\VMA7]7]ATqZm +@q9.pA7/nXATqZmC2@d3A70UuCNjW2GAV,>FED_KFF/@_LNIK^H[UZkE-HDGLNIKZFED_KFE_hK +GB@qND/4?4CNjlBGAV,>D/4?4CNjlBGAV,>D/4?;FE_hKGAV,>FED_DCNjW2LNIKZFED_KFGFsW +L4"?&I!^TqH\QopL4">pH[U*TCM6L8<)cjs<)mU-8Q8Yh<)ck2:J"Yn?>*,+<)cl0]Y4@Fs8W-! +s8W-!s8W-!s8W-!s8W-!s8VHWp%Rh9i8j(Sgtp`>hU9p)Unsl2D/4?;FE_hKLNIKZD/4?;FG>0i +LNIK^H[UWrH\Z]^L4"?&I!^TqH\QopL4"?&I!^[&KSY;7LkLG;KS5\FJV\u4LkLG;KS5/7KSY;7 +LkLG;KS5/7KSY;7LkLG;KS5\FJVJQ!LkLG;KS5\FJVJQ!LkLG;KS5)-H\d?.L4"?(KS5)-H\Qop +L4"?&I!^TqH\QopL4"?&I!^TqH\d?.R!a%4KS5/7KT(hJLkLGJN/ERPN0f3KQ]-fgN/EsTJX;=Q +LNIKJ>ZtcF>%_)D@q907m-juSs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +kj7d%m-j0)n']_:UnslRN/Es\MN!IPQ\9pVN/Es\MO0!IQ]-fgKRo)?N0fK\Q\9pGKS5\NMMQq= +Q\9pGKS5\FJV\u4LkLGJKRnl*H\QopGAV+t9Lrf$>1q]fkj7d%m-ilnkN:RTg"bH4eCMgec.L7` +bKS5Sbg">Tc*XjbQ\9pGKS5/7KU7XTQ]-fgN/Es\MO09ZQ]-fgN/Es\MO0!IN/NX]N/EFEKT(hJ +Q\9pGKS5/7KU@.0LkLG9I!^TqHZsRRB3\VB9Lr/P5u^f`kj7d<s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(SgtpK/f#u:^bKS5Sbg")F`Pfa7 +`5T^6`Pod7`MB?+Q\9pKMi=!]MO09ZN/NX]N/ERPN/W[RQ\9pGKS5)-H\QopL4"?&I!^TqHZsRR +L4">pH[UZkE/&aeGB@q^FDuGGFE_hKGB@qNFEE:[E-HDGS=Z8Ns8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!kj7d%m-iW_hU9p)bKS5L`Poj0]#;S,`5T^6`Po3kZrKO\ +7Qik'4Zl_56&'c6L4"?(KS5/7KU7@CN/NX]KRoJKMO09ZQ]-fgN/Es\MOBZlQ]-fiPEV>lMOBZl +R?Ni5R[';)PGjq8R?Ni&PEVr0OI;;rR?Ni&PEVDuPGjq8R?Ni5R[';)PFS57W1'!>PEVr6Q'mi" +R?Ni5R[';)PGj_-R?Ni&PEVDuPGjq8R?Ni5R[';)PGjq8R?Ni&PEVr0OQc'"s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!m.9o:oC_&&kL.l2bKS5L`PoI%]sP/R['[3I['[3I['[3I['[3@XKB"7WgoZN +B3\V><)lms<G50"<)ckAD/5JsMPuc$Q]-fiPEVDuPF7VuR?Ni&PEVDuPF7VuR?Ni&PEVDuPF7Vu +R?Ni&PEVr0OI;;rR?Ni$N/F$ePF%5cQ]-fgN/Es\MO09ZN/NXRMi=!]MN!IPQ\9pGKS5\FJV\u4 +LkLGJKRnr4KSY;7L4"?(KS5)-H\QopL4"?&I!^TqH\QopL4"?&I!^TqH\QopL4"?&I!^TqHZsRR +GB@q]I!^TqH\QopL4"?&I!^[&KT(hJS=Z7h`PoI%]sP/RUnsl_V50o`Unji_Unsl2FECVY86APV +8k_r]9Lr8Z86APV=A27S6q(3O86APVB3\W,KRnr4KU7@CLkLG;KS5/7KSY;7Q\9pGKS5/7KSY;7 +N/NX]N/Es\MN!IPQ]-fgN/Es\MMQq=LkLH"`PpcrkLnYIdaZjd`PoI%]sP/RUnsl_V50WQS=H1@ +S=Z7@St'Ii8Obj*7Qik'4Zl1s4@VIr7Qik'4Zl1s4@VIr7Qik'4Zl_55u^f`LNIKZFED_DCNjlB +GB@q^FDuGGFE_hKGB@qRH[UZkE/&aeL4"?&I!^TqH\d?.L4"?(KS5/7KSY;7g"bHas8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +kj7crjQF_1c!t9qB3\VQ>ZtcF>%_)DB3\VQ>ZtcF>%_)DB3\VQ>ZtWJAS57OB3\VQ>ZtcF>%_)D +B3\VMA7]sq?tW_JB3\VMA7]sq?tW_J@q9.pA70%T>'FLbB3\VTCi3`nATr!,G@Y)rCi4H6CMI[' +GAV,>D/4?;FE_hKLNIKZFED_KFGFsWGB@qNFED_KFE_hKLNIKZD/4?;FE_S;GB@qND/4?4CNjW2 +GB@qND/4?4CNjlBGAV,NFDuGGFE_S;GAV,>FED_DCNjlBGB@qNFEE7bHZsRRL4"?&I!^TqH\Qop +GAV+p<)mU-8S;:3<)ck1>Ztf:8Q]5(=A27f>[D)>8\;XKs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,coC_>6n)39ig"bH4eCN9rbD:h)GB@qND/4?;FE_hKLNIKZFED_KFG>0iGB@q]I!^3eI>;o` +L4"?&I!^TqH\QopL4"?(KS5)-H\d?.LkLG;KS5/7KSY;7L4"?(KS5)-H^BD:L4"?(KS5)-H\d?. +LkLG;KS5)-H\d?.L4"?&I!^TqH\QopL4"?&I!^[&KSFl$L4"?(KS5/7KSFl$L4"?&I!^[&KSFl$ +LkLG;KS5)-H\d?.LkLGJKRoJKMMQq=Q]-f\Mi<UQN0fK\N/NXLI!]L2>%_)DB3\VQ>[#S*f)PdM +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n)39ig"bGoXf@_HMO09Z +Q]-fgN/Es\MO09ZQ]-fgN/ERPN0fK\Q\9pKMi<UQN0f3KN/NX]N/ERPN0f3KN/NX]KRnr4KSFl$ +LkLG:FDt>U85rPg]=biLpA*q=n*'-,kj7crjQG4OhV$]@daZjreCMgec-+>UbKS5Sbfur[Ukj\W +LkLG;KS5\NMN!IPQ]-fgN/Es\MO09ZN/NX]N/ERPN0f3KN/NXNKS5/7KSY;7LkLG;KS5)-H\d?. +L4"?&I!^'ZFBD4-=A27c76tEoAcMf1s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,coC_>6n(HLQdaZjreCMgec,@T?`5T^=bg")F`Pfa7`5T^-]Y0,SKT(hJ +Q]-f\Mi=!]MN!IPQ]-fXKS5/7KSY;7LkLG9I!^TqH[C*fL4"?&I!^TqHZsRRH[C0bFEE:[E-HDG +GB@q^FDuG@CNjlBGB@q^FE$I1n,NFfs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8VHWp#tc2g"bH;gtp5uc,@T?`5T^6`Pp$Ec-+>US=Z6?4Zl1s4@VIrBMV3HH[UZkE/&ae +LkLG;KS5/7KU7@CN/NX]N/Es\MO09ZR?Ni5P`V];UoUT!\?2d<['[3I[(Eua]=bhh]Y1\Z['[3I +X/rG!V51&SOJnV5R?Ni)St)44PFS57R?Ni5R[';)PF7VuR?Ni5R[';)PF7VuR?Ni&PEVDuPGj_- +R?Ni&PEVDuPF7VuR?Ni&PEVDuPF7VuR?Ni5R[*pQs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6T@M +i8j(SgtpK/f#u:^`5T^-]Y1\Z['[3I['[3@XKAk:['[3IX/rG1['YXBKNLo==A27b<)mU-8Q]5( +LkLGJN/F$ePF7VuR?Ni$N/F$ePF%5cR?Ni$N/F$ePF7VuR?Ni&PEVDuPF7VuQ]-fiPEVDuPF%5c +Q]-fgN/ERPN0fK\N/NXRMi=!]MMQq=Q]-fXKS5;BN/3.?LkLG;KS5)-H\d?.L4"?&I!^[&KSY;7 +L4"?&I!^TqH\QopL4"?&I!^TqH\QopL4"?&I!^3eI>;o`H[C0rFDut^HZsRRL4"?&I!^TqH\d?. +LkLGJKRo)?N3ot!]=bha['Zm8Xe_ehUnsl_V50o`Uj$p&=A27X9MJV_86&)E=A27f9Lr8Z86APV +=A27f9Lrf$>)7ibLkLG9I!^[&KSY;7Q\9pGKS5\FJW,MGQ\9pKMi=!UJW,MGQ]-fgN/Es\MN!IP +Q\9pKMi<IFKZ(jKi8j(Sgtp5uc,@T?]=bha['ZX*Un"$HS=Z7@St)aJQ(4G9<)cje4Zl1s4@VIr +7Qik'4Zl1s4@VIr7Qik'4Zl_55t4""7QikI:J#bPFE_hKGB@qND/4?;FE_S;GB@qNFED_KFGFsW +GB@qRH[UZkE/&aeL4"?&I!^TqH\QopLkLG;KS8%6hZ*WUs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq;C>si8j'sV5.a/>%_)D +B3\VB>[D&J>$,$9B3\VB>[D&J>%_)D@q9.`>ZtcF>%_)DB3\VQ>ZtcF>%_)DB3\VQ>ZtWJAS57O +@q9.`>ZtcF>%_)DB3\VMA7]7]AS57OG@Y)kA7]t%CL^mdGAV,>A70.gDKfr5GAV,>FED_KFGFsW +GB@qRH[UWrHZsRRLNIKZFED_KFGFsWGB@qNFED_DCNjW2C2@d3D/4?4CNjlBGB@qND/4?;FE_hK +GAV,>FED_KFE_S;GAV,>FED_KFGFsWGB@q]I!^TqH\QopL4"?&I!^'SCK+85B3\V><)m$o85rPg +<)ck2:J"Mb<EMpc<)cl0]Y4@Fs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQG[\gtCK> +daZjd`PmUSE-H/7GAV,>FEE:[E-HDGL4"?&I!^TqH\Z]^H[C0qI!^3eI>3,rH[C0qI!^TqH\d?. +L4"?(KS5)-H\d?.L4"?&I!^[&KSY;7LkLG;KS5/7KSY;7Q\9pGKS5)-H\d?.L4"?(KS5)-H\Qop +L4"?&I!^3eI>3,rL4"?&I!^TqH\QopL4"?(KS5/7KSFl$L4"?&I!^TqH\QopL4"?&I!^[&KSY;7 +LkLG?Mi=!UJV\u4Q]-fXKS5;BN-Af?=Bo0F>ZtcF>11pOs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(Sgtp&`\sJA5Q]-fgN/Es\MO09ZN/NX]N/ERPN0fK\ +N/NXNKS5\NMMQq=Q]-fXKS5/7KT(hJQ\9pGKS5/7KSY;7LkLG;KS5)-HY6Se<)ckaN/IZ8s8W-! +s8W,kpA*q=n*'-,i8j(SgtpK/f$`(!bKS5Sbg">Tc-+>U`5T]^N/EFEKU7@CLkLG?Mi=!]MOBZl +N/NX]N/EFEKU7XTLkLG?Mi=!]MO0!ILkLGJKRnr4KSFl$LkLG9I!^TqH\QopL4">lD/36I86&)E +779S!I!bnns8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +kj7crjQG4OhU9p)bKS5Sbg")F`Pfa7bKS5L`Pod7`Pfa7S=Z7,KS5;BN1#lnQ]-fgN/EFEKU7XT +LkLG;KS5)-H\QopL4"?(KS5/7KSFl$H[C0qI!^TqHZsRRGB@qNFED_KFE_S;GB@qND/4?;FIA>V +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-ilnkLnYI +daZjreCN'tf#u:^daZjreCKA%HU^.\7Qik'4Zm4bATr6<L4"?&I!^TqH\d?.LkLG;KS5\NMOBZl +X/rG8]Y28&`QQKM`5T^6`Pod7`Oidr`5T^-]Y1\Z[(Eua['[3P]Y1\Z[(Eua['[3@XK@nSPF7Vu +W0EC3PEVr6Q'mi"R?Ni&PEVDuPF7VuQ]-fgN/Es\MO09ZQ]-fgN/Es\MO09ZQ]-fgN/Es\MOBZl +R?Ni&PEVDuPF7Vu`5T^qs8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_JAp#+oodaZjkbg")F`Oidr +]=bha['[3I[&^:1['[3I['Zm8XgGIBX/rFIFECVY86APV<)ck"9Lrf$>*k2*Q]-fgN/F$ePF7Vu +R?Ni&PEVDuPF7VuR?Ni&PEV>lMOBZlQ]-fgN/F$ePF7VuQ]-f\Mi=!]MN!IPN/NXRMi=!]MN!IP +N/NX]N/ERPN0fK\N/NX]KRnr4KSY;7LkLG;KS5)-H\QopL4"?(KS5)-H[C*fL4">pH[UWrH\Qop +L4"?&I!^TqH\QopL4"?&I!^'ZFE_hKH[C0qI!^3eI>3,rL4"?&I!^[&KSY;7N/NXjV51`9]sP/R +Unsl_V50o`Unji_Unsl2FECVY86APV=A27X9MJV_84lQM=A27X9MJV_86APVB3\VrKS5)-H\d?. +Q\9pEI!^[&KT(hJN/NXRMi=!UJW,MGN/NX]N/Es\MN!IPQ]-f\Mi<UQN/3.?LkLH"`PpcrkLnYI +daZjd`PoI%]sP/RX/rFnSt)=BS=H1@S=Z7@St&nV84Ga)7Qijk1c.Zb4@VIr7Qik'4Zl1s4@VIr +2)I-Z4Zl1s4B,9[GB@qND/4?;FE_S;GAV,>FED_DCNjW2GAV,>FED_DCNjlBGAV,>FED_KFE_hK +L4"?&I!^TqH\d?.g"bHas8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-j0)n(HLQLkLF\<)mR9>#\I$B3\VQ>Zt*+<G,Q? +B3\VQ>ZtcF>$,$9=Bo0F>Zt*+<G,Q?=Bo0F>ZtcF>%_)DB3\VQ>ZtWJATqZm@q9.`>ZtWJATqZm +@q9.pA70.gDI[3gG@Y)kA7]t%CL^mdGAV,1Ci4H6CNjW2GB@qNFED_KFG>0iGB@qNFEE7bHZsRR +GB@qNFED_KFE_hKGAV,>FED_DCNjW2C2@d3D/4?;FE_hKLNIKZFEE:[E-HDGGAV,>FED_DCPR"N +GB@q]I!^TqH[C*fL4"?&I!^3eI>3,rGAV+p<)m$o88(dj=Bo079Lr,^<E)pt<)ck"9Lr,^<P,oW +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(Sgtp`>hU9p)['[2aD/4?4CNjlB +GB@q]I!^'ZFF/@_H[C0qI!^3eI>;o`H[C0bFEE7bHZsRRL4"?&I!^TqH\QopL4"?&I!^[&KSFl$ +L4"?&I!^[&KSFl$LkLG;KS5)-H\d?.L4"?&I!^3eI<TdTL4">pH[U*[FF/@_GB@q]I!^3eI=$<h +L4">pH[UWrH\QopLkLG.H[U^'KR8&oLkLG;KS5/7KSFl$LkLG;KS5/7KSY;7N/NXRMi<IFKU7XT +GAV+t>[D&J>&%kkdaZkJs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +kj7d%m-j)lgrmpdR?NhnMi<UQN/W[RN/NX]N/ERPN0fK\N/NX]N/ERPN0fK\N/NXNKS5\NMMQq= +Q\9pKMi<IFKSY;7LkLG;KS5)-H\d?.GAV+t9Lro7DY3Yus8W-!s8W-!s8W-!o_/+Em-j0)n)iE\ +g"bH4eCN'tf%A3ibKS5Sbg">Tc+CX%LkLG;KS5\NMN!IPQ]-f\Mi=!]MN!IPN/NXNKS5\FJV\u4 +LkLG;KS5/7KSFl$L4"?(KS5)-H\QopL4">lFEE7bHZsRRC2@cV6q'O477KF&S=Z8Ns8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq;C>sk1nb?eCN9rbKJ,S +`5T^6`Pod7`Pfa7f>PA@`Po3k[$Q`/N/NXRMi<UQN/W[RQ]-f\Mi<IFKSY;7LkLG;KS5/7KSFl$ +LkLG;KS5)-H[C*fLNIKZFEE:[E-HDGGB@qNFED_KFE_S;GB@r[gtr)2s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2i8j(Sgtp`>hU9p)daZjreCN=.hV$]@ +<)cje4Zl1s4B4g9GAV,MI!^TqH\QopLkLG;KS5/7KW(?)]=bi1gtp`>hV$]@daZjreCMgec-+>U +`5T^6`Pod7`Oidr]=bhh]Y1qi]t:qj['[3I['[HX]sP/R['[2pI!^[&KUJ$fR?Ni&PEVr6Q'mi" +R?Ni&PEVDuPF%5cR?Ni$N/ERPN/W[RQ]-fiPEV>lMO09ZQ]-fgN/Es\MOBZlR?Ni&PEVDuPP"SE +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o.jQG4OhU9p)bKS5L`PoI%]sP/R['[3I['[3I['[3I +X/rG1['[3I[&^:1C2@c[9MJV_84lQM=A27qA7^^XN0fK\Q]-fgN/Es\MOBZlR?Ni$N/F$ePF%5c +Q]-fgN/F$ePF%5cN/NX]N/Es\MO09ZN/NXRMi=!UJW,MGLkLGJN/ERPN/W[RQ\9pKMi<IFKSY;7 +LkLG9I!^TqH[C*fL4"?&I!^3eI>3,rH[C0qI!^3eI>3,rL4">pH[UWrH[C*fL4">pH[UWrH\Qop +L4"?&I!^[&KSY;7LkLG;KS5/7KSY;7LkLGJN/ERPN0fK\['[3I['ZX*Unji_Unsl_V50o`Uj$p& +<)ck"9Lr8Z86APV8k_r]9Lr8Z86APV8k_r]9LrZ(AVc"mLkLG;KS5/7KSY;7Q\9pKMi=!UJW,MG +N/NX]KRo)?N0fK\N/NX]N/ERPN/3.?Q\9pGKS5)-HcsXXi8j(SgtpK/f#5PH]=bha['ZX*Un"$H +S=Z7@St)=BS=H1@<)cje4Zl1s4@VIr2)I-Z4Zl1s4>erP7Qik'4Zl1s4@VIr7Qik99LsALFE_hK +GAV,>FED_KFE_S;GAV,>FED_DCNjlBGB@qND/4?;FE_hKGB@qNFEDkVI=$<hL4"?&I!aQ%hZ*WU +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq=OCVkj7crjQFt@eou4XB3\VQ>ZtcF>$,$9B3\VQ>ZtWJAS57O=Bo0F>ZtcF>#\I$ +B3\V><)mR9>#\I$B3\VMA7]CY>%;)S@q9.`>ZtWJARf7^B3\VQ>ZtWJARf7^G@Y)kA7]7]ATqZm +@q9.\A7]7]ARf7^GAV,>FED_DCNjlBGB@qNFEDkVI>3,rH[C0bFED_KFGFsWGB@qNFED_KFE_S; +GB@qNFED_KFE_S;GAV,>FED_KFE_hKGB@qND/4?;FE_hKGB@qNFEE7bHZsRRH[C0bFEE7bH[C*f +L4">pH[U*TCK+85<)cjs<)m$o85rPg<)ck2:J"Mb<E)pt=A28t]Y4@Fs8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+QpA*q=n)39ig"bH4eCN'tetf.<C2@d3D/4?;FE_hKGB@q^FDuGGFF/@_ +GB@qRH[U6fI>;o`H[C0qI!^3eI>3,rH[C0sKS4]!I>3,rL4"?&I!^TqH\QopL4"?&I!^[&KSFl$ +L4"?&I!^3eI=$<hGB@q^FDuGGFE_hKGB@qNFED_KFE_hKL4">lFEDkVI>3,rH[C0fH[UWrH[C*f +L4">pH[UWrH\QopL4"?(KS5/7KSY;7LkLG;KS5/7KU7XTLkLG*D/36Y?>!MHLkLHFm-juSs8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA*Y-kMYFadaZj9PEUfUKU7XT +Q]-fXKS5\NMN!IPQ\9pKMi=!]MMQq=N/NX]N/EFEKT(hJLkLG?Mi<IFKSY;7LkLG;KS5)-H\Qop +LkLG*D/36I86APVg"bHas8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQG4OhV$]@daZjkbg">Tc-+>U +`5T^=bg!Z"Wec=]N/NXNKS5;BN0fK\LkLG?Mi=!UJW,MGLkLG;KS5/7KSY;7L4"?(KS5)-H\Qop +L4"?&I!^'ZFF/@_GB@q^FDuGGFD"i^7Qik'4ZkSY1t'n)s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkLnYIdaZk#bfdrD`RrDX`5T^6`Pp$Ec,@T? +`5T]`PEV>lMO09ZN/NX]N/ERPN/W[RLkLG;KS5/7KR8&oLkLG.H[UWrH\d?.LkLG9I!^3eI>3,r +H[C0bFED_KFGFsWGB@qNFEEk.MZ<_Vs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_>6n)39ig"bH;gtp`>hVdJXi8j(5]Y.<65t+11<CK2U9LsMWI=$<h +H[C0qI!^[&KW(?)bKS5pm-j<4p#tc2kj7crjQGI^kLnYIdaZjreCN'tf#5PH`5T^6`PoI%]uI^r +['[3P]Y1qi]t:qj['[3P]Y1\Z[&^:1B3\VTCi52iN1#lnR?Ni&PEVDuPF7VuR?Ni&PEUr`N0fK\ +Q]-fgN/ERPN0fK\N/NX_PEV>lMN!IPR?Ni&PEVDuPF7VuR?NiH]Y4@Fs8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<[_Gi8j(SgtpK/f#5PH]=bhh]Y1\Z['[3I['[3I['[3I['[3IX/rG1['Zm8X`nl/ +<CK2B6q'^A9it([GAV,SMi<UQN/W[RQ]-fgN/Es\MN!IPQ]-f\Mi='fPDkEYQ]-f\Mi<UQN0fK\ +N/NXRMi<UQN/W[RN/NX]N/EFEKT(hJLkLG;KS5;BN/3.?LkLG;KS5)-H\QopH[C0bFEDkVI=$<h +L4">pH[UWrH[C*fL4"?&I!^3eI>3,rH[C0qI!^3eI>3,rLkLG.H[U^'KSFl$L4"?(KS5/7KT(hJ +Q]-fXKS5;BN/W[RN/NXNKS6D-XgGIBUnsl_V50o`Unji_Unsl2FECVY86APV8k_r]9Lr,^<EMpc +8k_r]9Lr8Z86APVB3\VrKS5/7KSY;7LkLG;KS5/7KT(hJN/NX]KRo)?N/W[RQ]-f\Mi=!]MN!IP +N/NXRMi<IFKSY;7H[C1Z`PpcrkLnYIdaZjd`PoI%]sP/RX/rFnSt)aJQ(4G9S=Z7LR[$iO<CT,6 +7Qik'4Zl1s4@VIr7Qik'4Zl1s4>erP7Qik'4Zl1s4BP9JGB@qNFED_KFE_hKGAV,>D/4?;FE_hK +GB@qNFED_KFE_hKGB@qNFED_KFE_hKGB@qRH[UWrH[C*fg"bHas8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#+oo +i8j(Ebft?RFD"i^@q9.`>ZtWJARf7^B3\VMA7]CY>%_)D<)ck1>Zt*+<G,Q?<)ck1>ZtcF>$,$9 +B3\VMA7]CY>%;)S@q9.pA7/nXARf7^B3\VMA7]7]ARf7^@q9.\A7]CY>%;)SG@Y)kA7]t%CMI[' +GAV,>FED_KFG>0iL4">pH[U*[FG>0iH[C0fH[U*[FGFsWGB@qNFED_KFE_hKGB@qNFED_KFE_hK +LNIKZFED_KFE_hKGAV,NFDuGGFE_hKGB@qNFED_KFE_hKGB@qNFEDkVI<TdTGAV+t9Lr,^<G50" +<)cjs<)m$o85rPg=A27f9Lr,^<P,oWs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +m.9o6m-ilnkLnYIg"bH4eCLFlUj$ZkC2@d3D/4?;FE_hKGB@qNFED_KFG>0iGB@qRH[U*[FE_hK +H[C0fH[UWrH[C*fL4">pH[U6fI>EQ0H[C0qI!^3eI>3,rL4">pH[U6fI<TODGB@qND/4?;FE_hK +H[C0bFEE:[E-HDGL4">lFEDkVI<TdTLNIK^H[UWrH[C*fL4">pH[U6fI>3,rH[C0fH[U6fI>3,r +L4"?&I!^[&KSY;7N/NXNKS4PdCK+85B3\W9V54.ks8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2i8j(LeCLFlUl:4jQ]-fXKS5;BN/W[RN/NXNKS5;BN/W[R +N/NXRMi<IFKU7XTN/NX]N/ERPN0fK\LkLG;KS5)-H\QopL4"?&I!^3eI99`\<CK3SXKDO&s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(SgtpK/f$`(!fZ_O^bg">Tc-+>U`5T]`PEV>lMO09Z +N/NX]N/ERPN/3.?LkLG;KS5/7KSY;7L4">pH[UWrH[C*fH[C0qI!^3eI<TdTL4">lFED_KFE_hK +GB@qND/2R.75ZnY7Qik&6q..Us8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<726i8j(SgtpK/f#u:^bKS5Sbg")F`Pfa7`5T^6`Pod7`ON%MN/NXRMi<UQN0fK\ +N/NXRMi<IFKSY;7LkLG9I!^[&KSY;7LkLG;KS5/7KSY;7LkLG;KS5)-H\QopL4">pH[UWrH[C*f +daZkJs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6T@M +m.9o6m-ilnkNM:$i8j(bm-j<4ophVD7Qik676sC+4C_o5L4"?&I!^TqH^U(]bKS6'pA+ags7H$\ +o_/+IoC_JAp#tc2kj7crjQG4OhV$]@daZjkbg">Tc,@T?`5T^-]Y1qi]t:qj]=bhh]Y1qi]sP/R +]=bhh]Y0_sP>kL]B3\VeH[V<GPF7VuR?Ni&PEVDuPF7VuQ]-fiPEUr`N/W[RN/NX_PEUr`N1#ln +R?Ni&PEUr`N1#lnR?Ni&PEVDuPF7Vus8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n(HLQ +daZjkbg")F`Oidr]=bha['[3I[&^:1['[3I['Zm8XgGIBX/rG5Xf@21KM"p4<CK2B6q(3O89]/t +LkLG;KS5;BN/W[RN/NX]N/ERPN/W[RN/NXRMi<UQN/W[RN/NXRMi<UQN/3.?LkLG;KS5;BN/W[R +N/NXNKS5/7KSY;7LkLG;KS5)-H[C*fH[C0bFED_KFE_hKL4">lFEDkVI>3,rH[C0fH[UWrH[C*f +L4">pH[UWrH[C*fLkLG;KS5/7KSY;7LkLG;KS5/7KSY;7N/NXNKS5;BN/W[RQ]-f\Mi<UQN1#ln +['[3I['Zm8Xe_ehUnsl_V50o`Uj$p&8k_r]9LqcL9it([8k_r]9Lr8Z84lQM=A27f9LrZ(AXA@5 +LkLG?Mi<IFKU7XTLkLG?Mi=!]MN!IPN/NX]N/ERPN1#lnN/NXRMi=!UJW,MGL4"?(KS4]!IDj+D +i8j(SgtpK/f#5PH]=bha['ZX*Unji_S=Z7@St)=BS=H1@=Bo0$6q'O477KF&7Qik'4Zl1s4@VIr +7Qik'4Zl1s4@VIr7Qik99LsALFF/@_GB@qRH[U6fI<TdTGB@qNFED_KFE_hKGB@qNFED_KFE_hK +L4">pH[UWrH\QopL4"?(KS8%6hZ*WUs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA*Y-kMYFabKS4cI!]@6ARf7^ +B3\VMA7]7]ARf7^B3\VQ>ZtcF>$,$9B3\VB>[D&J>$,$9B3\VQ>ZtWJAS57O@q9.`>ZtcF>%;)S +B3\VQ>ZtcF>%_)DB3\VQ>ZtcF>%_)DB3\VQ>ZtcF>%;)S@q9.cCi4H6CNjW2GB@qRH[UWrHZsRR +L4">lFED_KFE_hKGB@qNFED_DCNjlBGAV,>FED_KFE_S;GB@qNFED_KFE_hKGAV,>FED_KFE_hK +GB@q^FDuGGFE_hKGB@qND/4?4CNjlBGB@qNFED_DCK+85=A27b<)m$o86APV=A27b<)m$o85rPg +=A28m[']l5s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=j7=kj7crjQG4OhV$]@ +daZjT['Y%!FD>W0GAV,>FED_DCNjlBGAV,>FED_KFF/@_GB@qNFED_KFE_hKH[C0bFEDkVI=$<h +H[C0fH[U6fI=$<hH[C0fH[U6fI<TdTGB@qNFED_KFE_S;GB@qNFED_DCNjlBGB@qNFED_KFE_hK +GB@qRH[U*[FE_hKGB@qRH[U6fI=$<hH[C0fH[U6fI>3,rL4">pH[U6fI>EQ0LkLG;KS5/7KO\P( +<)ckPI!af4kPtS^s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +kj7crjQG4OhRK\fLkLG?Mi<IFKT(hJQ]-fXKS5\NMMQq=N/NXRMi<IFKU7XTN/NXNKS5;BN/W[R +LkLG?Mi<IFKSY;7H[C0fH[U6fI=$<hB3\V04Zmq1FT;C@s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+Em-j0)n)iE\g"bH4eCN'tf#u:^bKS5Sbg">Tc+CX%R?NhnMi=!]MN!IPN/NXNKS5;BN.u_, +LkLG9I!^[&KR8&oGB@qNFEDkVI=$<hL4">pH[U*[FE_hKGB@qNFED86DKfr5B3\V04ZkSY1c7*H +@q90Ns8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n)39i +g"bH4eCMgec,@T?`5T^=bg")F`Pfa7`5T^6`Pn7/PDkEYN/NXRMi<UQN/W[RN/NXLI!^[&KSY;7 +H[C0sKS5/7KT(hJLkLG;KS5/7KSY;7LkLG;KS4]!I=$<hL4"?(KS9C*s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq=OCVkj7d%m-j<4p%7tR +o_/*NSt&5;77BU5779RgD/4KFI>EQ0]=biWs8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2 +i8j(Sgtp`>hV$]@bKS5Sbg")F`Pfa7]=bhs]XkJW[(Eua['[3P]Y1\Z[(Eua['[2aFECJ]<E)pt +H[C1/PEUr`N1#lnR?NhnMi='fPDkEYN/NXRMi<UQN/W[RN/NX_PEUr`N1#lnR?Ni&PEVDuPDkEY +R?Ni&PEXGEf)PdMs8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o6m-iW_hU9p)daZjd`PoI%]t:qj +['[3I['[3I[&^:1['[3@XKAk:[&^:1X/rFkPESsF<D#qZ779R:9MK_QFGPU'N/NXRMi<UQN/3.? +N/NXRMi=!]MN!IPN/NXRMi<UQN/W[RLkLG?Mi<IFKSY;7LkLG;KS5/7KSY;7LkLG;KS5/7KR8&o +L4">pH[U6fI<TdTGB@qNFED_KFF/@_H[C0fH[UWrH\QopH[C0fH[U6fI>3,rH[C0qI!^[&KSY;7 +LkLG;KS5;BN/3.?N/NXNKS5;BN/W[RN/NXRMi<UQN/3.?S=Z7h`PoI%]sP/RUnsl_V50o`Unji_ +Unsl2FEC,K9it([8k_rO9MJV_84lQM8k_r]9LqcL9it([@q9/,KS5;BN/3.?LkLG;KS5;BN/3.? +N/NXRMi<UQN/W[RQ]-f\Mi=!]MN!IPLkLG;KS5)-H[C*fH[C1Z`PpcrkLnYIdaZjd`PoI%]sP/R +X/rFnSt)=BS=H1@S=Z7@St'Fu>"(hJ=A27T4Zl>19gqH=<CK2C4Zl_55t4""7Qik'4Zl/$79!5d +GB@qRH[UZkE-lq[GB@qRH[U6fI=$<hH[C0bFED_KFE_hKGB@qNFEE7bHZsRRH[C0fH[U^'KR8&o +g"bHas8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mkj7d%m-ilnkL.l2Q]-f3A7]7]ATqZm@q9.\A7]7]ARf7^ +@q9.`>ZtcF>%_)DB3\VB>[CoNAS57O@q9.`>ZtWJAS57O@q9.`>Zt67?>!MH=Bo07>[D&J>#\I$ +=Bo03<)m%*?<CH=B3\VQ>ZtWJATqZmC2@d&Ci4H6CNjlBGB@qNFED_KFE_hKGB@qND/4?4CNjlB +GAV,>FED_DCL^mdGAV,>FED_DCNjlBGB@qNFED_KFE_hKGB@qNFED_KFE_hKGB@qND/4?4CNjW2 +GB@qND/4KFI<TdTC2@ci9Lr,^<EMpc=A27b<)m$o84lQM=A27X9MJ,Q9tS'Os8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2i8j(`gt^T<hU9p)`5T]OKS3iGATr!, +GAV,>D/4?4CNjlBGAV,>FED_DCNjlBGB@qNFED_KFE_hKGB@qNFED_KFGFsWGB@qND/4?;FE_S; +GB@qNFED_KFE_S;GB@qND/4?;FE_S;GB@qND/4?4CNjlBGB@qNFED_DCNjlBGB@qRH[U*[FG>0i +GB@qNFEE7bH\QopLkLG.H[U^'KR8&oLkLG.H[U^'KQhN[B3\VMA7`]u`W,u<s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkN:RT]=bh9Mi<IFKT(hJ +LkLG?Mi<IFKT(hJLkLG?Mi<IFKSY;7N/NXNKS5;BN/W[RLkLG?Mi<UQN/3.?LkLG.H[U6fI<TOD +GB@q:A7\4n4B,9[o_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7d%m-iW_hV$]@ +daZk#bfe2Rc-+>UbKS5Sbg!N%[#Bp%N/NXRMi<UQN/3.?LkLG;KS4]!I=$<hH[C0fH[U*[FE_hK +H[C0bFEDkVI<TdTGB@qND/4?4CNjW2C2@d&Ci4!(DJ*3X2)I-I1c1PXMZ<_Vs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQG4OhU9p)bKS5Sbg")F`Pfa7 +`5T^=bg")F`Pfa7X/rFZKS5/7KSY;7N/NXNKS5;BN/3.?LkLG;KS5/7KSY;7LkLG;KS5;BN/W[R +N/NXRMi<IFKSY;7LkLG.H[UWrHd^Eps8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA+@Sq=OCVs8W-!s8W-!s8W-!UnskZ9MJ,Q9m_58 +UnsmZpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2i8j(SgtpK/f$`(! +bKS5L`Pod7`Oidr]=bhh]Y1qi]sP/R['[3P]Y1\Z[&BFY<)ck2:J"Yn?AO8fN/NX_PEVDuPF7Vu +N/NX_PEUr`N0fK\N/NXRMi='fPDkEYR?Ni&PEVDuPF7VuR?Ni&PEUr`N1#lnX/rH's8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gi8j(SgtpK/f#u:^`5T^-]Y1qi]sP/R['[3I['[3I[(*6< +X/rG1['[3I['[3IUnsl2FECVY84>p8=A28#Ci5&^KSY;7LkLG;KS5/7KSY;7LkLG;KS5/7KSY;7 +LkLG;KS5/7KSY;7LkLG;KS5/7KSY;7L4"?&I!^TqH[C*fL4">pH[U6fI<TdTGB@qNFED_DCNjW2 +GB@qNFEE7bH[C*fL4">pH[UWrH[C*fL4">pH[U^'KSY;7LkLG;KS5;BN/3.?N/NXRMi<UQN/W[R +LkLG;KS5;BN/3.?Q]-g&XKB[ic,@T?]=bha['ZX*Unji_Unsl_V50o`Uj$Zk779R:9MIrD79E5S +8k_r]9LqcL9it([8k_rO9MK/)>)7ibLkLG;KS5/7KSY;7LkLG;KS5/7KSY;7LkLG;KS5;BN/W[R +LkLG;KS5/7KR8&oH[C0fH[U*[FMu/;i8j(SgtpK/f#5PH]=bha['ZX*Unji_S=Z7@St)44PGG%N +<)cjd6q'O477BU5<CK2R76s@177BU5779R:9MJMU5t4""779RH>[E/4H[C*fH[C0fH[U6fI=$<h +GB@q]I!^TqH\QopLkLG.H[UWrH[C*fH[C0fH[UWrH[C*fH[C0qI!aQ%hZ*WUs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<726i8j(Sgtp`>hQ*`[GAV,*A7]sq?tsLqG@Y)rCi3lj>%;)S=Bo0BA7]CY>%;)S +B3\VQ>Zt67?>!MHB3\VQ>Zt67?>!MH=Bo0F>Zt*+<E)pt<)cjs<)mR9>#\I$<)cjs<)m%*?=RMW +@q9.\A7]7]ARf7^C2@d&Ci4H=FE_S;GAV,>FED_DCNjW2C2@d3D/3m&DKfr5=Bo03<)n-ZCNjlB +GAV,>FEDkVI<TdTL4">lFED_KFE_hKC2@d3D/3m&DJF!*C2@d&Ci4H6CNjlBGB@qNFED86DHKS' +=A27f9LqcL9hJ)R8k_rO9MJ,Q9hJ)R779SO[']l5s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+Em-j0)n)39ii8j(SgtpK/f$`(!Unsl2D/3m&DJF!*C2@d3D/4?4CNjlB +GB@qNFED_KFE_S;GB@qND/4?;FE_S;H[C0bFED_DCO:DVGB@qNFED_KFE_S;GB@qND/4?;FE_hK +GB@qND/3m&DKg2EC2@d3D/4?4CNjlBGB@qNFED_KFE_hKGB@qNFEDkVI=$<hH[C0fH[U6fI>EQ0 +H[C0qI!^3eI<TdT@q9.cCi6Ve[/^1+s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA*q=n)39ii8j(>`PmdoN/3.?LkLG;KS5/7KSY;7LkLG;KS5;BN/3.? +LkLG;KS5/7KT(hJLkLG?Mi<IFKSY;7LkLG;KS4]!I=$<hGB@qNFED_DCJ%8p779S_`PqlWs8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726k1nbFgtpK/f$`(!bKS5Sbg">Tc-+>U +`5T]cSt(atN/W[RN/NXNKS5)-H\d?.H[C0qI!^TqHZsRRH[C0bFED_KFE_hKGB@qNFED_KFE_hK +GAV,1Ci4H6CL^md@q9.\A7\_><EMpcs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2g"bH4eCN9rbKJ,SbKS5L`Pod7`Pfa7`5T^6`PmRZH[C*f +LkLG;KS5/7KSY;7N/NXNKS5/7KSY;7N/NXNKS5/7KSY;7LkLG?Mi<UQN/W[RN/NXRMi<IFKR8&o +N/NYps8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s2;mqGAV-Kgtr)2s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_&&kMYFag"bH4eCN'tf#5PH`5T^-]Y2=t]!SiO +]=bha['[HX]sP/R]=bha['XRaDH'S8<)ck-A7^^XN1#lnN/NX_PEVDuPF7VuN/NX_PEUr`N1#ln +N/NX_PEVDuPDkEYN/NXRMi='fPDkEYN/NXRMi<UQN;rqXs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA+(Hp#+oog"bH4eCMgec,@T?`5T^-]Y1qi]sP/R['[3@XKAk:[&^:1['[3@XKAk:[&^:1 +S=Z6`>ZsQa77BU5@q9.tH[U6fI>EQ0H[C0sKS5/7KSY;7LkLG;KS4]!I>EQ0LkLG;KS5/7KSY;7 +LkLG.H[U^'KR8&oH[C0fH[U6fI=$<hGB@qRH[U*[FE_hKGAV,>D/4?;FF/@_H[C0qI!^3eI>3,r +H[C0qI!^3eI>EQ0LkLG;KS5/7KSY;7N/NXRMi<UQN/W[RN/NXNKS5;BN/W[RN/NX_PEWr(`S'&' +bKS5L`PoI%]rS6:X/rG!V50o`Unji_Unsl2FEBr>77BU5779RE76s@177BU5779R:9MJV_84lQM +@q9/,KS5)-H\d?.LkLG;KS5/7KR8&oLkLG;KS5/7KSY;7LkLG;KS5/7KSY;7H[C0fH[U6fI<TdT +GB@rF`PpcrkLnYIdaZjkbg!c4]sP/RX/rFnSt)=BS=H1@S=Z7@St'Fu>"(hJ<CK2B6q'R.4@MY, +779R56q(*E5t+11779R:9MIrD7;#k/H[C0fH[UWrH[C*fH[C0fH[UWrH[C*fLkLG.H[UWrH[C*f +L4">pH[U6fI=$<hH[C0qI!^3eI=$<hdaZkJs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA+(Hp#tc2 +i8j(Sgtoug`JB2#@q9.\A7]7]ARf7^C2@d#>ZtWJARf7^=Bo0F>Zt67?<CH==Bo07>[CB/<ENL4 +=Bo03<)lms<E)pt<)cjs<)lms<E)pt<)cjs<)lms<E)ptB3\VB>[D&J>%;)SGAV,*A7]sq?tsLq +C2@d&Ci3`nASQ%!GAV,1Ci4!(DJF!*C2@ce<)l@T79!5dGAV,1Ci4!(DKg2EGB@qNFED_DCNjW2 +GAV,1Ci4!(DI[3gC2@d#>ZtlYDJF!*C2@d3D/4?4CNjW2@q9.C9MJ,Q9hJ)R8k_rZ76sO>9iXVJ +<CK2R76sO>9sh:7s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+Em-ilnkMYFag"bH;gtpK/f#5PHN/NX0Ci4!(DJF!*GAV,1Ci4H6CNjW2GB@qNFED_DCNjW2 +GAV,>FED_KFE_hKGB@qNFED_DCNjW2GB@qND/4?;FD>W0GB@qND/4?;FD>W0GB@qND/3m&DKg2E +C2@d3FED_DCNjlBGAV,>FED_KFF/@_GB@qRH[U6fI=$<hLkLG.H[U6fI=$<hC2@d3FEFms[/^1+ +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +m.9o.jQFt@esV_cLkLG.H[U^'KSY;7LkLG;KS5/7KSY;7H[C0sKS4]!I>EQ0H[C0sKS5/7KSY;7 +LkLG;KS5/7KR8&oLkLG*FED_KFD>W0<)cjt76uljN;rqXs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC_>6n(HLQg"bH4eCN'tf%A3ibKS5Sbg">Tc,@T?Q]-fXKS5/7KR8&o +H[C0fH[U6fI=$<hH[C0fH[U*[FE_hKH[C0bFEE7bH[C*fGB@qNFED86DKg2EC2@d&Ci3`nATqZm +N/NYYm-juSs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +m.9o6m-j)lgtCK>bKS5Sbg")F`Pfa7bKS5L`Pod7`O*"Z=Bo0eI!^[&KSY;7LkLG;KS5;BN/3.? +LkLG;KS5/7KSY;7LkLG;KS5;BN/W[RN/NXRMi<UQN/W[RLkLG;KS7:_`W,u<s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\o_/+Em-ilnkLnYIdaZjkbg">Tc,@T?]=bhh]Y1qi]sP/R]=bha['[3I[(Eua +Q]-f(9Lr,^<E)ptGB@qcMi='fPDkEYN/NX_PEUr`N/W[RN/NXRMi<UQN/W[RN/NXRMi<UQN/W[R +N/NXRMi<UQN/W[RN/NYQjQHRCs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkLnYI +daZjkbg")F`Oidr]=bhh]Y1\Z['[3I['[3@XKAk:[&^:1['[3@XKAP)XfJP*N/NWo<)l@T79!5d +H[C0fH[U^'KSY;7LkLG;KS4]!I=$<hLkLG.H[U^'KR8&oLkLG.H[U6fI>EQ0H[C0fH[U6fI=$<h +GB@qRH[U*[FE_hKGB@qND/4?;FD>W0GB@qRH[U6fI=$<hH[C0sKS4]!I>EQ0LkLG;KS5/7KT(hJ +LkLG;KS5;BN0fK\N/NXRMi<UQN/W[RN/NXNKS6.tUtOP[i8j(LeCN'tf#5PH]=bha['ZX*Unji_ +Unsl_V50o`Uj$Zk4$5Yq4Zkeg4[qRs779RE76spB5t4""779R56q(`n>'kUELkLG.H[U6fI=$<h +H[C0sKS4]!I>EQ0LkLG.H[U6fI=$<hH[C0fH[U6fI=$<hH[C0bFED_KFM#3!i8j(SgtpK/f#5PH +]=bha['Zm8XdkuQS=Z7@St)=BS=H1@=Bo0$6q'^A9gqH=<CK2B6q'O477BU5779R64Zl/$79)cB +779RH>[Dc(I=$<hH[C0fH[UWrH[C*fH[C0sKS4]!I=$<hH[C0fH[U6fI=$<hH[C0bFEDkVI=$<h +H[C0fH[XT&hZ*WUs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\o_/+Em-j0)n)39ig"bH;gto*5X`nl/ +@q9.\A7]CY>%;)S@q9.Q>[D&J>$,$9<)cjs<)lms<E)pt<)cjs<)lms<EMpc<)ck"9Lr,^<EMpc +<)ck"9Lr,^<E)pt=A27b<)lms<G,Q?@q9.\A7]7]ARf7^@q9.\A7]7]ARf7^@q9.cCi4!(DKfr5 +C2@d#>ZsQa77BU5779RH9Lro7DJF!*C2@d&Ci4H6CMI['C2@d&Ci4!(DJF!*B3\VMA7]CY>%;)S +@q9.`>ZtWJASQ%!C2@d&Ci3`nAP,Wj8k_rO9MJMU5tXgF779R64Zl/$76<Up7QilG]Y4@Fs8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCVp[%),m-ilnkMYFa +g"bH;gtpK/f!MfkL4">_Ci4!(DJF!*C2@d&Ci4H=FD>W0GB@qNFED_KFE_hKGB@qNFED_KFE_hK +GB@qNFED86DKg2EC2@d3FED86DKg2EGB@qNFED86DKg2EGB@qACi4H=FE_hKC2@d3FED_KFE_hK +GB@qND/4?;FE_hKGB@qRH[U6fI=$<hGB@qpPEX26c2[hDs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n)39idaZjKXK@G>N/3.? +H[C0fH[U^'KR8&oLkLG.H[U^'KR8&oH[C0fH[U6fI<TdTH[C0fH[U6fI=$<hH[C0fH[U6fI=$<h +GB@q:A7\1t7:Tk>s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +kj7d%m-iW_hV$]@daZjkbg">Tc,@T?bKS5Sbg!2iXc/0sH[C0sKS4]!I>EQ0H[C0fH[U6fI<TdT +GB@qNFED_KFE_hKGB@qNFED_KFE_hKC2@d3D/3m&DKfr5UnsmNm-juSs8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726g"bH;gtp5uc-+>U +`5T^6`Pod7`Pfa7`5T]BH[TXFDL6_YLkLG.H[U^'KSY;7LkLG;KS5/7KSY;7N/NXAH[U^'KSY;7 +N/NXRMi<UQN/W[RN/NXRMi<IFKT(hJs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6/h< +kj7crjQG4OhU9p)bKS5L`Poj0]">Vg]=bhh]Y1\Z[(Eua]=bha['Zm8X]Sh7=A27f9Lr8j?Asf$ +N/NXRMi<UQN/W[RN/NXNKS5;BN/W[RLkLG?Mi<UQN/W[RN/NXRMi<UQN/W[RN/NXRMi<UQN4Za9 +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCVm.9o.jQG4OhU9p)bKS5Sbg")F`Oidr +]=bhh]Y1\Z['[3IX/rG5XfAG'XgGIBX/rG1['[?FWiN5'LkLF\<)lOa9k.^FH[C0sKS4]!I>EQ0 +LkLG;KS4]!I>EQ0H[C0sKS4]!I>EQ0H[C0fH[U*[FF/@_GB@qRH[U*[FE_hKGB@qNFED_KFD>W0 +C2@d&Ci4H6CNjlBGB@qRH[U6fI=$<hH[C0fH[U^'KSY;7LkLG;KS5;BN/W[RN/NX_PEUr`N/W[R +N/NXNKS5bWPJkGZm.9o6m-ilnkLnYIbKS5L`PoI%]rS6:Unsl_V50o`Unji_Unsl2D/2!c1c7*H +4$5Yq4Zkeg4Zbbh4$5Yp6q(*E5t+11=Bo0ZH[U6fI=$<hLkLG.H[U6fI=$<hLkLG.H[U6fI=$<h +H[C0fH[U6fI<TdTH[C0fH[U6fI<TdTC2@e+`PpcrkLnYIdaZjd`PoI%]sP/RX/rFnSt)=BS>_mA +S=Z7@St'Fu>"(hJ<CK2G9MIrD77BU5<CK2G9MJ,Q9gqH=779R56q(*E5u^f`H[C0fH[U6fI=$<h +H[C0fH[U6fI=$<hH[C0fH[U6fI=$<hH[C0fH[U6fI>3,rGB@qRH[U6fI=$<hdaZkJs8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o6m-ilnkMYFag"bH4eCL.]S9K's@q9.\A7]CY>#\I$ +=Bo03<)lms<E)pt<)ck"9Lr8Z86APV=A27b<)lms<EMpc<)cjs<)lms<EMpc<)cjs<)lms<E)pt +<)cjs<)m%*?>!MHB3\VB>[CoNARf7^@q9.`>ZtWJARf7^@q9.\A7\_><CK;E7Qik'4Zkeg4[hb- +@q9.\A7]7]ASQ%!C2@ctA7]7]ARf7^@q9.\A7]CY>%;)S@q9.Q>[D&J>$,$9@q9.\A7]7]ATr!, +B3\V?76s@177KF&779R64Zl1s4@MY,4$5Yq4Zm4bA^])Zs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7d%m-ilnkN:RTg"bH;gtpK/f!qi^ +H[C0UCi4H6CMI['GAV,>FED_KFD>W0GB@qACi4H=FD>W0C2@d3D/3m&DJF!*GB@qACi4H=FE_S; +GB@qNFEDkVI<TdTGB@qNFED86DKfr5C2@d&Ci4H=FD>W0GB@qACi4!(DKg2EGB@qNFED_KFE_hK +LkLG^XKCFAkPtS^s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o6m-iW_hV$]@daZj[]Y0i,S;`AbH[C0sKS5/7KR8&o +H[C0fH[U6fI<TdTGB@qNFED_KFE_hKH[C0fH[U6fI=$<hH[C0bFED86DG!Ss8k_t-eCO["s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2k1nbFgtpK/f$`(! +daZk#bfe2Rc-+>UbKS5$St(UiKR8&oH[C0bFEDkVI=$<hGB@qNFED_KFD>W0GB@qNFED_KFE_hK +GB@qACi4!(DMWt!]=biWs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-ilnkLnYIbKS5Sbg")F`RrDX`5T^6`Po3kZrC") +LkLG;KS5/7KSY;7H[C0sKS4]!I>EQ0LkLG;KS4]!I>EQ0LkLG;KS5;BN/W[RN/NXRMi<UQN/W[R +LkLGn]Y4@Fs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#+oog"bH4eCN'tf#5PH +`5T^-]Y1qi]sP/R]=bha['[3I[(Eua['[2aD/3*M<E)pt<)ckAFEEJ"N/3.?LkLG;KS5/7KSY;7 +H[C0sKS4]!I>EQ0LkLG?Mi<UQN/W[RN/NXRMi<UQN/W[RN/NXbSt,i\s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gi8j(ZjQG4OhU9p)bKS5L`Pod7`Oidr]=bhh]Y1\Z['[3I +['[3@XKAk:[&^:1X/rG(XKB"7WiN5'N/NX)A7\_><GH>fH[C0fH[U^'KSY;7LkLG.H[U^'KR8&o +LkLG.H[U6fI=$<hGB@qNFED_KFE_hKGB@qNFED86DKg2EC2@d3FED86DJF!*C2@d3D/4?;FE_hK +H[C0fH[U^'KT(hJH[C1"Mi<IFKT(hJN/NXRMi<UQN/W[RN/NX_PEUr`N2s%^m.9oMs8VHWp#tc2 +i8j(LeCN'tf"8T.]=bha['ZX*Unji_Unsl_V50o`UgmqH2)I-I1c.'H1c7*H4$5Yq4Zkeg4Zbbh +4$5Yq4Zl\C<I9(@H[C0fH[U6fI=$<hH[C0fH[U6fI=$<hH[C0fH[U6fI<TdTGB@qNFED_KFE_hK +GB@qNFED86DS*Qpkj7ckgtpK/f#5PH]=bha['Zm8Xe_ehS=Z7@St)=BS=H1@<)cjd6q'O477KF& +779R:9MIrD77BU5<CK2B6q'^A9gqH=779RH>[E/4H[C*fH[C0fH[U^'KR8&oLkLG.H[U6fI=$<h +H[C0fH[U6fI=$<hH[C0fH[U6fI=$<hH[C0bFEGs\f)PdMs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq=OCVkj7d%m-ilnkMYFag"bH-bfuZLS8)kX=Bo0F>Zt*+<E)pt<)cjs<)m$o85rPg +8k_rY<)lOa9iP(l8k_rO9MJJc<EMpc8k_rY<)lOa9it([=A27b<)lms<E)pt<)cjs<)lms<ENL4 +B3\V><)m%*?<CH=@q9.`>Zt67?:@7N7Qijk1c.'H1cmf_<)ckAD/36Y?>!MHB3\VQ>ZtcF>%;)S +@q9.`>ZtWJAS57O@q9.Q>[D&J>#\I$=Bo03<)lms<G,Q?@q9.\A7\_><CK;E7Qik&6q'R.4?GYg +<)ckEH[VrrXm#-?s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+@Sq=j7=kj7d%m-ilnkMYFag"bH;gtpK/f!MfkN/NX0Ci4H=FD>W0 +GB@qACi4H=FE_S;C2@d&Ci4H=FD>W0C2@d3D/3m&DKg2EC2@d3FED_KFF/@_GB@qRH[U*[FE_hK +GB@qNFED_KFD>W0GB@qACi4!(DJF!*GB@qNFED_KFF/@_R?NiXbg$1fs8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<726i8j(ZjQG4OhV$]@g"bH-bg!N%[$d,ALkLG;KS4]!I=$<hGB@qNFED_KFD>W0 +C2@d&Ci4!(DKg2EGB@qNFED_KFE_hK<)cje4ZoO:V#UJps8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n)iE\g"bH4eCN'tf#u:^bKS5Sbg"Scf#u:^ +N/NXAH[U6fI<TdTH[C0bFED_KFE_hKC2@d3FED_KFD>W0GB@qNFEDkVI@Qn!g"bHas8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<726i8j(Sgtp]-bKJ,S`5T^6`Pp$Ec,@T?L4">XA7^+7I=$<hH[C0fH[U6fI=$<h +H[C0sKS4]!I>EQ0LkLG?Mi<"0I>j)CH[C1"Mi<UQN/W[RN/NXRMi<UQN;rqXs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n(HLQdaZjkbg")F`Oidr]=bhh]Y1\Z['[3I +]=bha['[HX]nh>p<)ck"9Lr,^<F]QNN/NXAH[Uj2N-fo"N/NXAH[U6fI=$<hH[C0sKS4]!I=$<h +N/NXAH[U^'KSY;7N/NXRMi<UQN/W[Rs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+QpA+(Hp#tc2g"bH;gtpK/f$`(!bKS5L`PoI%]t:qj]=bhh]Y1\Z['[3I['[3@XKAk:['[3I +X/rG(XKAP)XfJP*S=Z6pFED#'AUAcPH[C0fH[U6fI>EQ0H[C0sKS4]!I=$<hH[C0fH[U6fI=$<h +GB@qACi4THI;3S9GB@qACi4!(DI[3gC2@ctA7]LlDJF!*C2@d&Ci4H=FF/@_H[C0fH[U^'KR8&o +LkLG?Mi<UQN/W[RN/NX_PEUr`N1?K0i8j)$s8W-!s8W-!m.9o6m-ilnkLnYIbKS5L`PoI%]rS6: +Unsl_V50o`Unji_Unsl%Ci2*e1c7*H2)I-B/1i_91bL=22)I-O4?YPY1cmf_8k_s'FED86DKg2E +C2@d3FED_KFF/@_GB@qNFED_KFD>W0GB@qACi4H=FD>W0GB@qACi4!(DJF!*C2@e"]Y37akLnYI +daZjd`PoI%]sP/RX/rFnSt)=BS=H1@S=Z7@St'Fu>"(hJ8k_rJ6q'^A9gqH=8k_rJ6q'O477BU5 +8k_rJ6q(*E6"=G:H[C0fH[U6fI=$<hH[C0fH[U^'KR8&oH[C0bFEDkVI<TdTH[C0bFEDkVI=$<h +H[C0bFED_KFF/@_daZkJs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq<[_G +kj7crjQGI^kMYFag"bH:bfcNJS8)kX<)cjs<)m$o84lQM8k_rO9MJV_84lQM8k_rO9MJV_85rPg +8k_rO9MJJc<EMpc<)cji9MJJc<E)pt<)cjs<)m%*?;sm(=Bo03<)lms<E)pt<)cjs<)lms<CK;E +2)I-O4?ZYC<JGmJUnsm*`Pp9Tf!qi^=Bo07>[CN;?<CH==Bo0F>Zt67?<CH==Bo0F>Zt67?>!MH +=Bo03<)lms<E)pt<)cjs<)m%*?>!MH<)cjZ4?Z;19k.^FR?NiQ`PqKCq>^Kps8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA+(Hp%7tRkj7d%m-ilnkMYFag"bH;gtp`>hSdCPS=Z6tH[TXFDKg2EGB@qACi4H=FD>W0 +C2@d3FED_DCNjlBGB@qNFED_KFE_hKGB@qRH[U6fI<TdTH[C0bFED_KFE_hKC2@d&Ci4!(DJF!* +GB@qACi4H=FF/@_X/rG]jQHRCs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA*q=n)39i +i8j(Sgtp`>hV$]@daZjreCMRW`MB?+N/NXAH[U*[FE_hKC2@d&Ci3`nARf7^C2@d&Ci4H=FE_hK +GB@q/>[Bl_4C_o5s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\m.9o6m-iW_hV$]@daZk$gtpK/f$`(!daZk$gtoug`Hur[H[C0fH[U6fI<TdT +H[C0bFED_KFD>W0C2@d3FEE=lKXA+nm.9oMs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-iW_hV$]@ +bKS5Sbg")F`Pfa7`5T^&['WG!9m:]$H[C0fH[U6fI=$<hH[C0fH[U6fI=$<hH[C0sKS4]!I>EQ0 +LkLG;KS5/7KSY;7H[C1"Mi<UQN/3.?['[4?s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s6T@Mkj7crjQG4OhTO-f`5T^6`PoI%]sP/R]=bhh]Y1\Z[(Eua['[31St&DH9iP(l +8k_rY<)na-KT(hJN/NXNKS5;BN-fo"H[C0fH[U6fI=$<hH[C1"Mi<"0I>j)CLkLG.H[Uj2N-fo" +N/NXRMi@#op&G'ls8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_JAp#+oo +g"bH;gtpK/f$`(!bKS5L`PoI%]t:qj]=bha['[3I['[3I['[3@XKAk:[&^:1['[3@XKAP)XfJP* +X/rF^Mi<"0I=$<hN/NXAH[U6fI=$<hH[C0fH[U6fI=$<hH[C0bFED_KFE_hKH[C0UCi4H=FD>W0 +@q9.\A7]7]ASQ%!@q9.cCi4H=FD>W0GB@qRH[U6fI=$<hLkLG.H[Uj2N-fo"N/NXRMi<UQN1?K0 +`5T^qs8W-!s8W-!s8W-!s8V`bq<726i8j(LeCMgec,@T?['[3I['ZX*Unji_Unsl_V50o`Uj$Zk +2)I-I1c.'H1c7*H2)I-B/1iJ*/N#@A2)I-I1c.fu9knK^C2@d&Ci4!(DKg2EC2@d&Ci4!(DJF!* +C2@d&Ci4!(DJF!*C2@d&Ci4!(DJF!*C2@d&Ci4!(DS*Qpkj7ckgtpK/f#5PH]=bha['Zm8XdkuQ +S=Z7@St)=BS=H1@B3\V/6q'^A9iXVJ779RE76s@177BU5779R:9MIu>4@MY,779RH>[Dc(I>EQ0 +H[C0sKS5/7KSY;7LkLG.H[U6fI=$<hH[C0fH[U*[FF/@_GB@qNFED_KFE_hKGB@qNFEGs\f)PdM +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq=OCVkj7d%m-ilnkMYFa +g"bH;gto*5XbM4M<)cjs<)lOa9hJ)R8k_r]9LqcL9hJ)R8k_rO9MJ,Q9iP(l8k_rY<)lms<E)pt +=A27b<)lms<E)pt<)cjs<)m$o85rPg=A27b<)lms<E)pt@q9/,KS6k;Wm]DJi8j(ZjQG4OhVdJX +g"bGk['We3<E)pt<)cjs<)lms<E)pt<)cjs<)m$o85rPg<)cjs<)lms<E)pt<)ck"9Lr8j??^7% +H[C1"Mi<UQN2s%^g"bHNoC`.`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq=j7= +kj7d%m-j0)n)39ii8j(Sgtp`>hU9p)['[3!Mi;k%FE_hKC2@d3FED86DKg2EGB@qNFED_KFD>W0 +GB@qNFED_KFF/@_H[C0fH[U6fI<TdTGB@qACi4!(DJF!*C2@d&Ci4THI@Qn!bKS62s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\o_/+Em-j0)n*'-,i8j(ZjQG4OhV$]@ +g"bH;gtpK/f"8T.R?NhYFED86DI[3g=Bo07>[CN;?>=:o@q9.cCi3`nAO\gF=Bo2!oC`.`s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726 +kj7crjQG4OhWEVKg"bH;gtq2KgtCK>i8j(.['YXBKR8&oGB@qRH[U*[FD>W0C2@d&Ci52iN6BGi +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq<726g"bH;gtp5uc-+>U`5T^6`Pp$Ec%^Um +=Bo0VFED_KFE_hKGB@qNFED_KFE_hKGB@qRH[U6fI=$<hH[C0sKS5/7KT(hJN/NXRMi<UQN/W[R +H[C1"Mi@]9s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#+oo +g"bH4eCMRW`Pfa7]=bhh]Y1\Z['[3I['[3P]Y1\Z[%sOo8k_rY<)lOa9iP(lH[C0sKS5/7KSY;7 +LkLG;KS5/7KSY;7H[C0fH[U6fI=$<hH[C0sKS4]!I>EQ0LkLG?Mi<IFKT(hJdaZkJs8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o:oC_>6n)39ig"bH;gtpK/f$`(! +bKS5L`Pod7`Oidr]=bhh]Y1\Z['[3I['[3I['Zm8XgGIBX/rG(XKAP)XfJP*X/rG!V50'.N/W[R +N/NXRMi<"0I=$<hH[C0fH[U6fI<TdTC2@d3FED_KFD>W0GB@qACi4!(DI[3g@q9.\A7]7]ASQ%! +C2@d3FED_KFE_hKH[C0fH[U6fI>EQ0H[C0sKS5;BN1#ln`5T^qs8W-!s8W-!s8W-!s8W-!s8W-! +m.9o6m-iW_hU9p)bKS5L`PoI%]rS6:X/rG!V51/nXe_ehUnsl6H[S=N77KF&2)I-Z4ZkSY1c7*H +2)I-I1c.'H1bL=2779RZCi4!(DJF!*C2@d&Ci3`nASQ%!@q9.\A7]7]ASQ%!@q9.\A7]7]ARf7^ +@q9.\A7]7]ASQ%!C2@e"]Y37akLnYIdaZjkbg!c4]sP/RX/rFnSt)UQUn"$HUnslWSt'P3DFHr^ +779R56q'O477BU5779R:9MJ,Q9gqH=8k_rO9MIrD79Ef$H[C0sKS5/7KR8&oLkLG.H[U^'KT(hJ +H[C0sKS4]!I=$<hGB@qNFED86DJF!*C2@d3FED_KFE_hKdaZkJs8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA+(Hp#tc2kj7d%m-ilnkMYFag"bHBjQFJ#`LNNi +GAV+p<)lOa9hJ)R8k_rO9MJ,Q9hJ)R8k_rO9MJ,Q9iP(l<)cjs<)lms<E)pt<)cjs<)lms<E)pt +8k_rY<)n-aFIA>V]=bi1gtq8]n*'-,kj7d%m-j0)n*'-,kj7crjQGI^kI\C?=Bo07>[CB/<E)pt +<)ck-A7]LlDKg2EH[C1"Mi=0tS><!W['[3[]Xl;1c.Un/i8j(bm-j<4p$D;Co_/+QpA+@Sq>^Kp +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq=OCVkj7d%m-j0)n*'-, +i8j(ZjQGI^kLnYIdaZjT['Z6bPC%Y)GB@qACi4H=FD>W0H[C0bFEDkVI<TdTH[C0fH[U6fI=$<h +H[C0bFED86DKg2EC2@d7H[V<GPJkGZm.9oMs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq>^Kpo_/+Em-j0)n*'-,i8j(ZjQGI^kLnYIi8j(ZjQGI^kL.l2 +['[2rKS3H4?<CH=@q9.\A7]7]ASQ%!779S'Mi@]9s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2kj7crjQGann)39i +kj7d%m-j<4p#tc2R?Nh]H[U6fI<TdTGB@qRH[V]dV!.16s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\m.9o.jQG[\gsX^'bKS5Sbg")F`Pfa7['[249MK8<DJF!*GB@qNFED_KFE_hK +GB@qACi4THI;3S9H[C0fH[U6fI>j)CLkLG;KS5;BN/3.?N/NXNKS5/7KWD2Vs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-ilnkLnYIbKS5L`PoI%]t:qj +['[3[]Xk_f]sP/R]=bhQV5-^W9it([8k_r]9LrZ(AVc"mLkLG;KS4]!I>j)CH[C0fH[U6fI=$<h +H[C0fH[U6fI=$<hH[C0fH[U6fI>j)CH[C0fH[WN=^&S-4s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o6m-ilnkMYFag"bH;gtpK/f$`(!bKS5Sbg")F`Pfa7 +]=bhh]Y1qi]sP/R]=bha['[3I['[3I['[3I['[3I['[3I['[3I['Zm8XdkuQLkLG.H[U6fI=$<h +H[C0UCi4H=FD>W0C2@d3FED86DJF!*@q9.\A7]7]ARf7^@q9.\A7]LlDJF!*C2@d7H[U6fI=$<h +H[C0fH[Uj2N3ot!g"bHVpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(SgtpK/f#u:^ +]=bhh]Y1AIXgGIB['[3I['[3I['[3IUnslGMi;jsCJ%8p7Qik'4Zkeg4Z,&Q2)I-I1c.Wh7;?XV +C2@d&Ci4!(DJF!*@q9.cCi3`nASQ%!@q9.\A7]LlDI[3g@q9.\A7]7]ARf7^@q9.\A7]LlDS*Qp +kj7ckgtp`>hTO-f`5T^-]Y1\Z[&^:1UnslfXKAP)XfJP*X/rG!V50'.N-BAc=Bo0)9MJ,Q9gqH= +<CK2B6q'^A9gqH=8k_r]>[Dc(I>EQ0LkLG;KS5/7KR8&oLkLG.H[U^'KR8&oH[C0fH[U6fI;3S9 +GB@qNFED_KFD>W0GB@qACi7\Nf)PdMs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+@Sq<726kj7d%m-j0)n)39ii8j(ZjQG4OhTO-fUnsl6H[TC7AP,Wj +8k_rO9MJ,Q9iP(l8k_rY<)lms<E)pt<)cjs<)m%*?>=:oLkLGOSt*F*^#7u7kj7d%m-j<4p%7tR +o_/+QpA+@Sq=OCVm.9o:oC_kEkNM:$kj7ckgto*5Xh26Z`5T^=bg"hrhVdJXi8j(bm-j0)n*'-, +kj7d%m-j0)n*'-,m.9o:oC_bLq=OCVo_/+QpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCVp[%)0oC_>6n*'-,kj7d%m-ilnkMYFa +i8j(Sgtoug`MB?+S=Z7,KS4]!I<TdTGB@qNFEDkVI<TdTGB@qACi4THI>j)CS=Z7X['\92f(A\3 +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\o_/+IoC_JAp#tc2kj7d%m-j0)n*'-,i8j(foC_>6n*KZ=g"bG[V5/<WFD>W0 +@q9.cCi7G?c2[hDs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA+ILkNqg5kj7d)oC_JAp%7tRo_/+QpA*Y-kBhQ( +H[C1"Mi>Tn`Urm"s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA*q=n)39i +g"bH4eCMgec-+>U`5T^6`PmXdKN(oNGB@qNFEDkVI=$<hGB@qRH[U6fI=$<hH[C0bFED86DL6_Y +H[C0fH[U6fI=$<hLkLG;KS5/7KT(hJLkLHJoC`.`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<726i8j(SgtpK/f#5PH`k8mp]Y1qi]sP/R]=bha['[3I[%*_X +8k_rO9MJ,Q9hJ)R=Bo0gKS5;BN-fo"N/NXAH[U6fI=$<hH[C0fH[TXFDKg2EH[C0fH[U6fI=$<h +H[C0fH[U^'KR8&oX/rH's8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq=OCVm.9o:oC_&&kMYFag"bH;gtpK/f$`(!bKS5Sbg">Tc,@T?`5T^6`PoI%]t:qj +]=bhh]Y1qi]t:qj]=bhh]Y1qi]u7n/]=bhq`PoI%]sP/RS=Z7,KS4]!I=$<hC2@d&Ci4!(DJF!* +C2@ctA7]7]ARf7^=Bo0BA7]7]ARf7^C2@d&Ci4!(DJF!*LkLGOSt*a<`TZ[Ws8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n)39ig"bH4eCMRW`Pfa7]=bha['[HX]t:qj +]=bhh]Y1qi]t:qj`5T^-]Y1,;Ul:4j@q9.>6q'R.4@VIr8k_s'FED_KFD>W0C2@d3FED86DJF!* +C2@d&Ci4THI=$<hN/NXbSt)UQUpRM9]=bi#bg"Scf&5WPkj7d%m-j0)n)39ig"bH4eCN'tf#5PH +]=bha['[3I['[3I['[3I['[3I[(Eua['[3I['[HX]sP/RS=Z70Mi;CeDH'S87Qik&6q(*E6!.Au +H[C0sKS5/7KSY;7N/NXAH[U^'KR8&oH[C1"Mi<UQN1?K0UnslfXKB+I]t:qjbKS5agtq8]n*KZ= +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+\s8V`bq<726kj7d%m-j0)n)39ii8j(ZjQGI^kMYFag"bH-bg!N%[%*_XQ]-fXKS5/7KT(hJ +N/NXbSt*0p[)Br&daZk+jQGann*'-,kj7d)oC_JAp%7tRo_/+QpA+ags8W-!o_/+\s8V`bq=OCV +o_/+QpA+@Sq=OCVkj7d%m-j0)n*'-,kj7d%m-j<4p#tc2o_/+Em-jT?q=OCVm.9oBpA+@Sq=OCV +o_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\o_/+IoC_JAp#tc2kj7d%m-j0)n*'-,kj7d%m-j0)n*'-, +g"bH4eCMRW`Oidr`5T^-]Y2M4c.Un/kj7d)oC`.`s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +o_/+QpA+(Hp$D;Cm.9o:oC_JAp$D;Co_/+QpA+ags8W-!s8W,PgtoEF[/^1+s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+@Sq=OCVs8W-!s8W-!s8W-!s8W,Pgtp`>hXpO;s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7ckgtpK/f$`(!bKS5L`Pod7`Q#R% +8k_roCi4!(DKg2EH[C0UCi4THI=$<hGB@qNFED86DJF!*C2@d7H[TXFDL6_YH[C1"Mi<"0I>j)C +H[C1"Mi=0tSH&Whs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,+['WG!:"e=Y +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,coC_&&kLnYIdaZjd`Pod7`Oidr['[3I['[3I[(Eua]=bhDN/C5$9gqH=8k_rO9MJJc<JZ<] +H[C1"Mi<"0I>j)CH[C0fH[U6fI=$<hH[C0UCi4THI;3S9H[C0fH[U6fI=$<hH[C0fH[VEUSH&Wh +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCV +m.9o6m-ilnkMYFag"bH;gtp`>hU9p)daZjkbg">Tc-+>UbKS5Sbg")F`QQKM`5T^6`Pod7`Pfa7 +`5T^6`Pp$Ec,@T?daZjkbg"Scf#u:^]=bhXXKA"aS9oU2GB@qACi4!(DI[3g@q9.\A7]7]ARf7^ +@q9.pFEEJ"N2s%^bKS5toC_bLq>^Kps8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq<[_Gkj7crjQG4OhV$]@bKS5Sbg")F`Pfa7`5T^6`Pod7`QQKMbKS5Sbg")F`QQKM +bKS5ZeCN'tf$`(!X/rF^Mi;CeDN'L4S=Z7OXKB+I]u7n/daZk+jQGann+?>Ls8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8VHWp$D;Cm.9o6m-ilnkLnYIdaZjd`Pod7`Oidr]=bhh]Y1qi]t:qj +`5T^-]Y28&`Oidr`5T^6`Pp$Ec-k+mdaZk$gtoug`MB?+LkLG.H[VEUS?&`n['[3Y`Pp$Ec.Un/ +i8j(bm-j<4p%7tRs8W-!s8W-!s8W-!o_/+\s8W-!s7H$\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq=OCV +m.9o:oC_>6n*'-,kj7d%m-ilnkNM:$i8j(ZjQGI^kMYFai8j(ZjQGann*'-,kj7d%m-j0)n*'-, +m.9o:oC_bLq=OCVo_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq=OCV +o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVs8W,kpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+IoC`.`s6T@Mm.9o:oC_JAp$D;Cm.9o:oC_JAp$D;Cm.9o:oC_JAp%7tR +o_/+QpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+Em-ilnkLnYIdaZjkbg">Tc-+>U`5T]SMi:8%9m:]$C2@d3FED_KFE_hK +C2@d&Ci4THI;3S9H[C0UCi4!(DJF!*H[C0UCi4THI=$<hH[C0fH[U6fI=$<hi8j)$s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8UNsejVtq779R:9MNsbf)PdMs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7crjQFt@f#u:^ +]=bhh]Y1qi]t:qj['[3P]Y1\Z[!-V6779R:9MJ,Q9hJ)R8k_s<Mi<"0I>j)CH[C0fH[U6fI=$<h +H[C0fH[U6fI<TdTH[C0fH[TXFDL6_YC2@d7H[U6fI=$<hR?Nj7s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCVm.9o:oC_>6n)39i +i8j(Sgtp`>hV$]@g"bH4eCN'tf#u:^daZjkbg">Tc-k+mbKS5ZeCN'tf$`(!daZjreCN'tf$`(! +g"bH;gtpuMkMYFai8j(bm-iW_hTO-f`5T^-]Y28&`OidrdaZk+jQGn$p&G'ls8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_JAp$D;C +i8j(Sgtp`>hU9p)bKS5Sbg">Tc-k+mdaZjkbg">Tc-+>UdaZjreCN'tf%Jj8i8j(ZjQGann*KZ= +o_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,coC_JAp#tc2i8j(Sgtp`>hU9p)daZjd`Pod7`Pfa7`5T^=bg")F`Pfa7bKS5Sbg">Tc-+>U +daZk$gtpuMkMYFai8j(foC_JAp$D;Co_/+QpA+@Sq=OCVo_/+QpA+@Sq>^Kps8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCVm.9oBpA*q=n*KZ= +kj7d%m-j0)n*'-,kj7d)oC_>6n*KZ=kj7d)oC_>6n+?>Lo_/+QpA+@Sq=OCVs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+ags8W-!s8W,kpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2 +g"bH;gtpK/f#u:^`5T^6`PoI%]h1sm@q9.cCi4!(DKg2EC2@d&Ci4!(DKg2EC2@d7H[TXFDJF!* +C2@d&Ci4!(DJF!*C2@d7H[U6fI=$<hH[C1"Mi@]9s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s5;u$779R+4?Z.s4@MY,8k_t-eCO["s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n(HLQdaZjkbg")F`Oidr['[3I['[HX]sP/R +['[2><)l@T77p6J779R:9MJ,Q9m_58H[C1"Mi<"0I=$<hH[C0fH[U6fI=$<hH[C0fH[TXFDL6_Y +C2@d7H[U*[FE_hKC2@d7H[Uj2N;rqXs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCVm.9o:oC_JAp#+ooi8j(ZjQG4OhV$]@ +g"bH;gtp`>hV$]@g"bH;gtp`>hV$]@g"bH;gtp`>hV$]@i8j(ZjQGI^kMYFai8j(bm-j0)n*KZ= +m.9o:oC_bLq=OCVs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o:oC_>6n*'-,g"bH;gtpK/f%Jj8 +g"bH;gtpK/f%Jj8g"bH;gtp`>hV$]@i8j(ZjQGI^kNqg5m.9oBpA+@Sq=OCVs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o:oC_JAp#+oo +i8j(SgtpK/f$`(!daZjkbg"Scf$`(!daZjreCN'tf$`(!daZjreCN=.hV$]@i8j(bm-j<4p$D;C +m.9oBpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCV +m.9oBpA+@Sq=OCVo_/+QpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQG4OhU9p)bKS5Sbg")F`QQKM +N/NWe9MK8<DJF!*C2@d&Ci4!(DJF!*C2@d&Ci4!(DJF!*C2@d&Ci4!(DKg2EC2@d&Ci4!(DJF!* +C2@d7H[TXFDUR%cs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA+@Sq>^Kpkj7b;<)l"B4Zbbh +4$5Yf4?Z;19o+IUs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s6T@Mkj7crjQFt@f#u:^`5T^-]Y1qi]sP/R]=bha['Z6bP=7l.779R56q'^A9gqH= +=Bo0kMi<"0I=$<hH[C0fH[U6fI=$<hH[C0fH[TXFDL6_YH[C0UCi4THI;3S9C2@d7H[TXFDKg2E +N/NYps8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+@Sq<[_Gm.9o:oC_>6n*'-,i8j(ZjQGI^kLnYIi8j(Sgtp`>hV$]@ +g"bHBjQG4OhVdJXi8j(ZjQGI^kMYFakj7d%m-j<4p$D;Cm.9o:oC_bLq>^Kps8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+(Hp$D;Cm.9o6m-ilnkMYFag"bH;gtp`>hV$]@g"bHBjQG4OhVdJX +i8j(ZjQGI^kMYFakj7d)oC_JAp$D;Co_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp$D;Ckj7d%m-ilnkMYFag"bH4eCN'tf$`(! +daZjreCN'tf$`(!daZk$gtp`>hV$]@i8j(ZjQGann*KZ=m.9o:oC_bLq=OCVs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+ags7H$\o_/+QpA+@Sq=OCVm.9oBpA+ags7H$\o_/+\s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA*q=n)39idaZk#bfe2Rc,@T?bKS5N]Xg^/9knK^C2@d&Ci4!(DJF!* +C2@d&Ci4!(DJF!*C2@d&Ci4!(DJF!*H[C0UCi4!(DJF!*C2@d&Ci4!(DJF!*H[C2@s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!m.9o:oC_>6n*KZ=m.9o6m-eFpAMl;$2)I-O4?Ybg4[hb-@q9.tH[WiO`W,u< +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n(HLQ +g"bH-bg")F`O*"Z]=bha['[HX]sP/R@q9.>6q'O479)cB779R56q(TrAUAcPH[C0fH[U6fI=$<h +H[C0fH[U6fI;3S9H[C0UCi4!(DL6_YC2@d7H[TXFDL6_YC2@d&Ci6&FV#UJps8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +o_/+IoC_JAp#tc2i8j(bm-ilnkMYFai8j(SgtpuMkLnYIi8j(Sgtp`>hV$]@i8j(ZjQGI^kMYFa +i8j(bm-j0)n*'-,kj7d)oC_JAp$D;Co_/+QpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCV +m.9o:oC_>6n*'-,i8j(ZjQG4OhV$]@g"bHBjQG4OhV$]@i8j(ZjQG4OhVdJXi8j(ZjQGann*'-, +m.9o:oC_bLq=OCVo_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8VHWp$D;Cm.9o6m-j0)n)39ii8j(Sgtp`>hU9p)daZk$gtpK/f%Jj8daZk$gtp`>hU9p) +g"bH;gtpuMkMYFam.9o6m-j<4p$D;Co_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+ags7H$\ +o_/+\s8V`bq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+ags8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726 +i8j(SgtpK/f#u:^bKS5Sbg")F`Jf_68k_rhA7]LlDJF!*C2@d&Ci4!(DJF!*C2@d&Ci4!(DJF!* +C2@d&Ci4!(DJF!*C2@d&Ci4!(DJF!*C2@d&Ci721`W,u<s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n*'-, +i8j(ZjQGI^kBhQ(/hAS31c.'H1cmf_4$5Z.>[Dc(I=$<hH[C2@s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6T@Mkj7ckgtpK/f#u:^]=bhh]Y1\Z[(Eua +['[31St&5;77KF&779R56q'O477BU5C2@d7H[U6fI=$<hH[C0fH[TXFDL6_YC2@d&Ci4!(DJF!* +C2@d&Ci4!(DJF!*H[C0UCi4!(DJF!*['[4?s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq=OCVm.9o6m-j0)n)39i +i8j(ZjQG4OhVdJXg"bH;gtp`>hVdJXg"bHBjQG4OhVdJXi8j(ZjQGann)39ikj7d%m-j0)n*KZ= +m.9oBpA+@Sq=OCVs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCVm.9o:oC_JAp#tc2kj7crjQGI^kLnYI +g"bH;gtpuMkLnYIi8j(ZjQG4OhVdJXi8j(ZjQGI^kMYFakj7d%m-j0)n*KZ=m.9o:oC_JAp$D;C +o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+(Hp$D;Cm.9o6m-j0)n*'-, +i8j(ZjQG4OhV$]@g"bH4eCN'tf$`(!g"bH4eCN=.hU9p)daZk$gtp`>hVdJXi8j(ZjQGI^kNqg5 +m.9o:oC_bLq=OCVs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCV +o_/+QpA+@Sq=OCVo_/+QpA+@Sq>^Kpo_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-ilnkL.l2daZjkbg")F`Pfa7 +`5T\p<)mF=ARf7^@q9.\A7]LlDJF!*C2@d&Ci4!(DJF!*C2@d&Ci4!(DJF!*C2@d&Ci4!(DJF!* +C2@d&Ci4!(DJF!*o_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2i8j(Sgtp`>hV$]@R?Ngl1c-g9/N#@A +/hAS31c.fu9m:]$GB@qRH[U6fI@Qn!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,coC_>6n(HLQdaZjkbg")F`Oidr['[3I['[3IZrgR>4$5Yf4?Z,$77BU5 +779R:9MKk\I=$<hH[C0fH[U6fI=$<hC2@d&Ci4!(DJF!*C2@d&Ci4!(DJF!*C2@d&Ci4!(DL6_Y +C2@d&Ci7\Nf)PdMs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq=OCVm.9o:oC_JAp#tc2kj7crjQGI^kMYFai8j(SgtpuMkLnYI +g"bH;gtpuMkLnYIi8j(ZjQGI^kMYFai8j(bm-j0)n*'-,m.9o:oC_JAp$D;Cm.9oBpA+(Hp%7tR +o_/+\s8V`bq>^Kpo_/+\s8V`bq=OCVs8W,kpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+IoC_bLq<[_G +o_/+IoC_bLq<[_Gm.9o:oC_>6n*'-,i8j(bm-ilnkMYFai8j(SgtpuMkLnYIg"bH;gtp`>hVdJX +g"bHBjQG4OhVdJXi8j(ZjQGann)39ikj7d%m-j0)n*KZ=m.9o6m-j<4p$D;Cm.9o6m-j<4p#tc2 +kj7d%m-j0)n*'-,kj7d%m-j<4p#tc2kj7d%m-j0)n)39ii8j(ZjQG4OhV$]@g"bH;gtpK/f$`(! +daZjreCN'tf%Jj8g"bH;gtpK/f%Jj8daZk$gtpuMkMYFakj7d)oC_JAp$D;Co_/+QpA+ags8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCV +o_/+QpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA*q=n)39ig"bH4eCMgec-+>UbKS5L`Pn7/P<1li@q9.\A7]7]ARf7^ +@q9.\A7]LlDI[3gC2@d&Ci4!(DJF!*@q9.\A7]7]ASQ%!C2@d&Ci4!(DJF!*@q9/OXKDO&s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s6T@Mkj7ckgtp`>hU9p)daZjDV5-184Z,&Q/hAS,/1i_91cmf_C2@d&Ci4!(DKg2E +H[C0fH[WiO`W,u<s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<726 +i8j(SgtpK/f#5PH]=bhh]Y1qi]sP/RLkLFC4?Ybg4Zbbh4$5Yf4?Z,$7:Tk>H[C0fH[U6fI=$<h +H[C0UCi4THI;3S9C2@d&Ci3`nARf7^@q9.\A7]7]ARf7^C2@d&Ci4!(DJF!*i8j)$s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\s8W,kpA+ags7H$\s8W,kpA+@Sq>^Kpo_/+QpA+(Hp#tc2 +kj7d%m-j0)n)39ii8j(ZjQGI^kLnYIg"bH;gtpK/f$`(!bKS5ZeCN'tf$`(!bKS5ZeCN'tf$`(! +daZjreCN'tf$`(!daZjreCN=.hV$]@g"bH;gtpuMkLnYIg"bH;gtp`>hV$]@g"bH;gtp`>hU9p) +g"bH4eCN'tf$`(!daZjreCN'tf$`(!daZjreCMgec-k+mbKS5Sbg">Tc-+>UbKS5Sbg">Tc,@T? +`5T^6`Pod7`Pfa7]=bhh]Y1qi]t:qj]=bhh]Y1qi]t:qj]=bhh]Y1qi]t:qj['[3P]Y1qi]t:qj +]=bhh]Y1qi]t:qj]=bhh]Y1qi]sP/R]=bha['[3I[(Eua['[3I['[3I[(Eua['[3@XKAk:[&^:1 +['[3@XKAk:[&^:1X/rG(XKA:pUoUT!Unsl_V50WQS><!WS=Z7@St)=BS><!WS=Z7@St)=BS=H1@ +S=Z7@St)=BS=H1@Unsl_V50o`UoUT!X/rG(XKAk:['[3I['[3P]Y1qi^!"XEs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!kj7cF['Z?pS=H1@S=Z7@St)=BS=,S)S=Z7@St)44PFS57S=Z7=PEVN.S=H1@ +S=Z70Mi=0tS=H1@N/NXbSt)44PF7VuS=Z7=PEVDuPF7VuR?Ni&PEVDuPF7VuN/NX_PEVDuPF7Vu +R?Ni&PEUr`N/W[RN/NX_PEUr`N/W[RR?NhnMi<UQN1#lnN/NXRMi<UQN/W[RN/NXRMi<UQN/W[R +N/NXRMi<UQN/W[RLkLG;KS5/7KSY;7LkLG?Mi<IFKSY;7N/NXNKS5;BN/3.?LkLG;KS5/7KSY;7 +H[C1"Mi<IFKSY;7H[C0sKS4]!I>3,rH[C0fH[U^'KR8&oH[C0qI!^3eI=$<hH[C0fH[U6fI=$<h +H[C0fH[U6fI=$<hH[C0bFEDkVI<TdTGB@qNFED_KFE_hKGB@qNFED_KFE_hKGB@qNFED86DKg2E +C2@d3FED86DKg2EC2@d3FED86DKg2EC2@d&Ci4!(DJF!*C2@d&Ci4!(DJF!*C2@d&Ci4!(DJF!* +C2@ctA7]LlDI[3gC2@ctA7]LlDI[3gC2@ctA7]LlDJ*3X@q9.\A7]7]AS57O@q9.\A7]7]ARf7^ +@q9.\A7\kJ?>!MH=Bo0F>Zt67?=RMW=Bo0F>Zt67?>!MH=Bo07>[CB/<ENL4<)ck">[CB/<ENL4 +<)ck">[CB/<ENL4<)cjs<)lms<E)pt<)cjs<)lms<E)pt<)cjs<)lOa9it([8k_r]9LqcL9it([ +8k_rO9MJV_84lQM=A27X9MIrD77p6J779R:9MJ,Q9gqH==A27X9MIrD77p6J779R56q'O477BU5 +779R56q'O477BU5779R56q'O477KF&4$5Yp6q'1"4[qRs4$5Yq4Zkeg4[qRs4$5Yq4Zkeg4Z,&Q +4$5Y`1c.9V4Z,&Q4$5Y`1c.9V4Z,&Q4$5Y`1c.'H1c7*H2)I-I1c.'H1c7*H2)I-I1c.'H1c7*H +/hAS31c-g9/M8S+/hAS,/1i_91bL=22)I-I1c.'H1bL=22)I-B/1iJ*/M8S+/hASe>[%1-s6T@M +kj7crjQG4OhU9p)bKS5L`Pod7`Pfa7<)cjs<)mF=ARf7^=Bo0BA7]7]AQW2D@q9.Q>[CoNAQW2D +@q9.\A7]7]AQW2D@q9.cCi3`nARf7^@q9.\A7]7]AaK$]s8W-!s8W-!s8W-!s8W-!s8W-!s+YoJ +'b1Zk)]BG$%2B?^)B0S0%Lj-_%2B?^'b1Zf%Lj-_%2B?^'b1Zf%Lj-_%2B?^$k!IP$OdFO$l'6] +$k!IY%Lj-_%2B?^'b1Zf%Lj-_%H-=1s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-iW_hV$]@ +daZjkbg!N%ZpdAO2)I-I1c.'H1bL=24$5Z9A7]7]ASQ%!C2@d3FEDkVI<TdTH[C1ogtr)2s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!m.9o6m-iW_hV$]@bKS5L`Pod7`Oidr +['[3!Mi9_[4Z,&Q4$5Yf4?Ybg4[hb-779RZCi4THI=$<hH[C0UCi4THI;3S9C2@d&Ci4!(DJF!* +@q9.\A7]7]AQW2D=Bo07>[CoNARf7^C2@d7H[Xi5k7nI9"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-">25WH[C1abg$1fs8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V<Ln$KI/C2@c+)]Ah\"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"B\o8o_/+Em-ilnkLnYIdaZjkbg">Tc,@T? +`5T]cSt%Yp1h1'-@q9.Q>[CoNARf7^@q9.\A7\kJ?=RMW=Bo07>[CoNAQW2D@q9.\A7]7]ARf7^ +@q9.\A7]7]AQW2DS=Z8Ns8W-!s8W-!s8W-!s8W-!s7H$\i8j&(!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]O,:*<hs8W-!s8W-!s8W-!s8W-!s8W,coC_>6n(HLQg"bH4eCMgec+CX%<)cjZ4?YPY1c7*H +2)I-O4?ZeO?>=:o@q9.cCi4!(DJF!*C2@d3FEDkVI>j)CdaZkJs8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,coC_>6n)39ig"bH4eCN'tf#5PH]=bha['Y1,I5Ni<2)I-I1c.9V4Z,&Q +4$5Yf4?ZeO?@.$IC2@d7H[TXFDL6_YC2@d7H[TXFDJF!*C2@ctA7]7]ARf7^=Bo0BA7\kJ?<CH= +@q9.\A7]LlDOd;gS=Z5R!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]`1c0Q+IF?Wrs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/*m]Y/&rDBpGP"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J_<]Y3\'p#tc2i8j(Sgtp]-bKJ,SbKS5L`Pod7`E6AO8k_rhA7\kJ?>=:o +@q9.\A7]7]ARf7^@q9.Q>[CoNARf7^@q9.\A7]7]ASQ%!@q9.Q>[CoNAQW2D@q9.Q>[H+=hZ*WU +s8W-!s8V`bq=OCVm.9o:oC[<LF9DXJ"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/Unsmes8W-!s8W-! +s8W-!s8V`bq<726i8j(SgtpK/f#u:^`5T]1Ci2<s4Zbbh2)I-I1c.'H1fRFSC2@d&Ci4!(DJF!* +C2@d7H[U6fI=$<hGB@qRH[TXFDN'L4daZkJs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2 +i8j(ZjQFt@f#u:^`5T^6`Pn@=S4ZIL/hAS,/1iJ*/M8S+2)I-I1c.9V4[hb-C2@d&Ci4H=FD>W0 +H[C0UCi4!(DJF!*C2@ctA7]7]AQW2D@q9.\A7]7]ARf7^=Bo0BA7]7]ASQ%!C2@dp['VG:/Hc+X +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/ +"9J]/!X&W-"9\c/"9J]/!X&W-"9\c/(BO^B!X&W-"9\c/(BO^B!X&W-"9\c/(BO^B!X';@"9\c/ +(BO^B!X';@"9\c/(BO^B!X';@"9\c/(BO^U!X&W-";_+B(BO^U!X&W-";_+B(BO^U!X&W-";_+B +(BO^U!X';@";_+B(BO^U!X';@";_+B(BO^U!X';@";_+B(BO^U!X';@";_+B(BO^U!X';@";_+B +(BO^U!X';@";_+B(BO^U!X';@";_+B(BO^U!X';@";_+B(BO^e!X';@"=F6R(BO^e!X';@"=F6R +(BO^U!X'kP";_+B-NXDe!X'kP";_+B-NXDe!X'kP";_+B-NXDe!X'kP"=F6R-NXDu!X'kP"=F6R +-NXDu!X'kP"=F6R-NXDu!X'kP"=F6R-NXDu!X'kP"=F6R-NXDu!X'kP"=F6R-NXDu!X'kP"=F6R +-NXDu!X'kP"=F6R-NXDu!X)U,"K"R;ke+/"s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W+r>=DWq"?HSe +3W]FF!X(Oc"?HSe3W]FF!X)$q"?HSe3W]FF!X(Oc"@rRs3W]FF!X)$q"?HSe3W]FT!X)$q"?HSe +8-/ob!X(Oc"@rRs8-/oT!X)$q"@rRs8-/ob!X)$q"@rRs8-/ob!X)$q"@rRs8-/ob!X)$q"@rRs +8-/ob!X)$q"@rRs8-/ob!X)$q"@rRs8-/or!X)$q"BY^.8-/ob!X)U,"@rRs=98Ur!X)U,"@rRs +=98V-!X)$q"BY^.=98V-!X)U,"BY^.=98V-!X)U,"BY^.=98V-!X)U,"BY^.=98V-!X)U,"BY^. +=98V-!X)U,"BY^.=98V=!X)U,"BY^.=98V-!X*0<"BY^.=98V=!X)U,"D@i>=98V=!X)U,"D@i> +=98V=!X)U,"D@i>BEA<M!X*0<"D@i>BEA<M!X*0<"D@i>BEA<M!X*0<"D@i>BEA<M!X*0<"D@i> +BEA<M!X*0<"D@i>BEA<M!X*0<"F1%OBEA<M!X*cM"D@i>BEA<M!X*cM"D@i>Gle+^!X*cM"D@i> +Gle+o!X*0<"F1%OGle+^!X*cM"F1%OGle+o!X*cM"F1%OGle+o!X*cM"F1%OGle+o!X*cM"F1%O +Gle+o!X*cM"F1%OGle+o!X*cM"F1%OGle,)!X*cM"Gd*^Gle,)!X*cM"Gd*^Gle,)!X*cM"Gd*^ +L]R^8!X+;\"F1%OL]R^8!X+;\"Gd*^L]R^8!X+;\"Gd*^L]R^8!X+;\"Gd*^L]R^8!X+;\"Gd*^ +L]R^8!X+;\"Gd*^L]R^8!X+;\"Gd*^L]R^8!X+;\"Gd*^L]R^D!X+_h"Gd*^PQCuP!X+;\"I&rj +PQCuD!X+_h"I&rjPQCuP!X+_h"I&rjPQCuP!X+_h"I&rjPQCuP!X+_h"J>f!PQCu\!X+_h"J>f! +PQCu\!X+_h"J>f!PQCu\!X,.t"J>f!PQCu\!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X-G"3:-80 +p[%)$jQG4OhU9p)bKS5Sbg")F`Pfa7UnskK4?ZeO?<CH==Bo0ICi4!(DI[3gC2@ctA7]7]ARf7^ +=Bo0BA7]7]ARf7^@q9.cCi4!(DI[3g@q9.Q>[CN;?Asf$s8W-!s8W-!s7H$\m.9o6m-j0)n(HLQ +"9J]/!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X-7T)#sX9s8W-!s8W-!s6T@Mkj7crjQFt@f$`(! +bKS5SbftK]I76Om779R+4?Ybg4Z,&Q<)ck4Ci3`nASQ%!C2@d&Ci4!(DJF!*C2@d&Ci4THI;3S9 +H[C0NA7[hb4_['[4,oC`.`s8W-!s8W-!s8W-!s6T@Mm.9o.jQGI^kL.l2daZjd`PmdoN(Qc< +/hAS",:"lm/M8S+/hAS,/1iJ*/N#@A4$5Z.>[D/]DJF!*C2@d&Ci4!(DJF!*C2@d&Ci3`nARf7^ +@q9.\A7\kJ?=RMW=Bo0ICi4!(DJF!*C2@d&Ci4THIB0HO"9J]/!X&W-"9\c/"9J]/!X,h2"J>f! +ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f! +ZN:99!X,.t"LA.4ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:99!X,.t"LA.4ZN:99!X,.t"LA.4 +ZN:9&!X,h2"J>f!ZN:99!X,.t"LA.4TE58&!X,.t"LA.4TE57h!X,h2"J>f!TE58&!X,.t"J>f! +ZN:9&!X,.t"J>f!ZN:9&!X,.t"J>f!ZN:9&!X,.t"J>f!ZN:9&!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X+_h"J>f!PQCu\!X+_h"J>f!PQCu\!X+_h"J>f! +PQCu\!X,.t"J>f!PQCu\!X,.t"I&rjTE57h!X+_h"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"O(=ds8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7ta7`&9TJ!X,h2"J>f!ZN:9&!X,.t"LA.4 +TE57h!X,h2"J>f!ZN:9&!X,h2"J>f!TE58&!X,.t"LA.4TE58&!X,.t"J>f!ZN:9&!X,h2"J>f! +ZN:9&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,.t"LA.4ZN:99!X,h2"LA.4TE58&!X,h2"LA.4ZN:99!X,.t"LA.4ZN:99!X,.t"LA.4 +ZN:9&!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"M>*PZN:9B$P'fW%^Q3> +]F,4^$P'KE"M>*P]F,4U!X-.D%^Q3>ZN:99!X,h2"LA.4]F,4U!X,h2"LA.4ZN:99!X-.D%^Q3> +ZN:99!X,h2"LA.4]F,4U!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:9B$P'fW%^Q3>ZN:9B$P'KE"M>*PZN:99!X,h2"LA.4kbX@(m-j0)n)39ig"bH4eCMgec-+>U +`5T^6`Pkqa?:mmc@q9.\A7]7]ARf7^C2@ci>[CoNARf7^=Bo07>[CN;?=RMW=Bo0BA7]7]ASQ%! +@q9.Q>[CoNARf7^=Bo1\eCO9cq=OCVm.9o6m-ilnkMYFag"bG.FE@We"?HSeZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:9pHsZjQs8W-!o_/+IoC_&&kLnYIdaZjkbg">Tc'acZ4$5Yf4?Z,$77BU5 +4$5Yu9MK8<DJF!*C2@d&Ci4!(DJF!*C2@d&Ci4!(DL6_YC2@d&Ci4H=FD>W0C2@cL4?YPY1cmf_ +@q9/=PEWr(`S'&'m.9o6m-ilnkLnYI]=bh9Mi;.VAM,Mc,U4Q[,:"NZ,VCW"/hAS,/1iJ*/M8S+ +/hAS31c/02<GH>fC2@d&Ci4!(DJF!*C2@d&Ci4!(DJF!*@q9.Q>[CoNAQW2D=Bo07>[D/]DJF!* +C2@d&Ci4THI;3S9N/NWe9MGWk"9\c/"9J]/!X&W-"BY^.TE58&!X,h2"J>f!ZN:99!X,.t"LA.4 +TE58&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,.t"LA.4 +TE58&!X,.t"LA.4TE58&!X,.t"J>f!ZN:9&!X,.t"J>f!ZN:9&!X,.t"LA.4TE57h!X,h2"J>f! +TE57h!X,h2"J>f!TE57h!X,.t"LA.4TE57h!X,h2"J>f!TE58&!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +PQCu\!X,.t"I&rjTE57h!X,.t"I&rjTE57h!X+_h"J>f!TE57\!X,.t"I&rjTE57\!X,.t"I&rj +TE57\!X,.t"I&rjTE57\!X+_h"J>f!PQCu\!X+_h"I&rjPQCuP!X+_h"I&rjTE57\!X,eG)X5f( +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq:L@<ZN:9&!X,.t"LA.4TE57h!X,h2"J>f!ZN:9&!X,.t"LA.4 +TE57h!X,h2"J>f!ZN:9&!X,h2"J>f!TE58&!X,.t"LA.4TE57h!X,h2"J>f!ZN:9&!X,h2"J>f! +TE58&!X,.t"LA.4TE58&!X,.t"J>f!ZN:9&!X,.t"LA.4TE57h!X,h2"J>f!ZN:9&!X,h2"J>f! +TE58&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:99!X,h2"J>f!ZN:99!X,.t"LA.4ZN:99!X,.t"LA.4 +TE58&!X,h2"J>f!ZN:99!X,.t"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"M>*PZN:99!X,h2"LA.4ZN:99!X-.D%^Q3> +]F,4U!X-.D%^Q3>]F,4^$P'KE"M>*PZN:9B$P'KE"M>*PZN:9B$P'KE"M>*PZN:9B$P'KE"M>*P +]F,4U!X-.D%_N/Z]F,4U!X-.D%_N/Z]F,4^$P'fW%^Q3>]F,4^$P'fW%_N/Z]F,4^$P'KE"M>*P +]F,4^$P'fW%_N/Z]F,4^$P'fW%^Q3>]F,4^$P'KE"M>*P]F,4^$P'KE"M>*P]F,4^$P'KE"M>*P +ZN:99!X,h2"M>*P]F,4^$P'fW%_N/Z]F,4^$P'KE"M>*P]F,4^$P'KE"M>*PZN:9B$P'KE"M>*P +ZN:9B$P'KE"M>*P]F,4f,:)L>n*'-,i8j(SgtpK/f%A3ibKS5L`Pod7`MB?+4$5Z.>[CoNAQW2D +@q9.\A7]7]ARf7^@q9.Q>[CN;?<CH==Bo07>[CoNAQW2D=Bo0BA7]LlDI[3g@q9.\A7^RMK^A=' +o_/+IoC_&&kMYFag"bH;gtp]-b6.kL"9J_!!X,h2"LA.4ZN:9B$P'KE"LA.4]F,4U!X-.D%^Q3> +ZN:9B$P'KE"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ji#%.pA*q=n)39ig"bH;gtp5uc-+>UUnskK4?YPY1cmf_779R+4?Z;19m_58C2@d7H[TXFDJF!* +C2@d&Ci3`nARf7^C2@d&Ci4!(DL6_YC2@d&Ci4!(DI[3g8k_r:1c.'H1aF:k/hAS",:#?54Zbbh +779Qs/1hbZ)B'P5)B0S5)]BtH,U=T[,U4Q[,:"NZ,VCW"/hAS",:#-'1fRFS@q9.\A7]7]ARf7^ +@q9.cCi3`nASQ%!@q9.\A7]7]AQW2D=Bo0BA7]7]ARf7^C2@d&Ci4!(DJF!*C2@d&Ci5c7S-/lr +"9J]/!X&W-"9\c/"9J_!!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"LA.4TE58&!X,.t"LA.4 +TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"LA.4 +TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE57h!X,h2"J>f!TE58&!X,.t"LA.4TE57h!X,.t"LA.4 +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,.t"LA.4 +TE57h!X,h2"J>f!TE58&!X,.t"J>f!ZN:9&!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57\!X,.t"J>f!TE57h!X+_h"J>f!PQCu\!X+_h"J>f!PQCu\!X,.t"I&rjTE57h!X+_h"J>f! +PQCu\!X,.t"I&rjTE57h!X+_h"J>f!TE57h!X+_h"J>f!TE57\!X,.t"J>f!PQCu\!X+_h"J>f! +PQCu\!X+_h"I&rjTE57\!X,.t"J>f!PQCu\!X+_h"I&rjTE57h!X.28GlRgDs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8U]h]tYC$TE57h!X,h2"J>f!TE58&!X,.t"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,.t"LA.4 +TE58&!X,.t"LA.4TE57h!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f! +ZN:99!X,.t"LA.4ZN:9&!X,h2"LA.4TE58&!X,h2"J>f!ZN:99!X,h2"J>f!ZN:99!X,.t"LA.4 +TE58&!X,h2"J>f!ZN:99!X,.t"LA.4ZN:9&!X,h2"J>f!ZN:99!X,h2"LA.4TE58&!X,h2"LA.4 +ZN:99!X,.t"LA.4TE58&!X,.t"LA.4ZN:9&!X,h2"LA.4TE58&!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:9B$P'KE"M>*PZN:9B$P'KE"LA.4 +ZN:99!X,h2"M>*PZN:99!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4^$P'fW%_N/Z]F,4^$P'fW%_N/Z +ZN:9B$P'fW%^Q3>]F,4U!X-.D%^Q3>]F,4^$P'KE"M>*PZN:9B$P'KE"M>*PZN:9B$P'KE"M>*P +ZN:9B$P'fW%^Q3>]F,4U!X-.D%^Q3>]F,4^$P'KE"M>*P]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3> +]F,4U!X-.D%^Q3>]F,4^$P'KE"M>*PZN:9B$P'KE"M>*PZN:9B$P'KE"M>*P]F,4U!X-.D%^Q3> +]F,4^$P'fW%^Q3>]F,4U!X-.D%^Q3>]F,4^$P'KE"M>*P]F,4U!X-.D%_N/Z]F,4U!X-.D%^Q3> +]F,4U!X,h2"M>*PZN:9B$P'KE"M>*P]F,4U!X-.D%_N/Z]F,4U!X-.D%^Q3>]F,4U!X,h2"Qc// +kj7d%m-ilnkLnYIdaZjkbg">Tc,@T?bKS4@A7\A,9k.^F@q9.\A7]7]AQW2D=Bo07>[CN;?<CH= +=Bo07>[CN;?<CH==Bo07>[CN;?<CH==Bo0BA7]7]ARf7^`5T^^oC_JAp#+oog"bH;gtpK/f#u:^ +H[C/D!X'kP"LA.4ZN:9B$P'KE"M>*PZN:9B$P'KE"LA.4ZN:9B$P'KE"LA.4]F,4U!X-.D%^Q3> +]F,4U!X-.D%^Q3>]F,4U!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,_S.,!D4kj7ckgtp`>hTO-f +bKS5L`Pl=tAM,Mc/hAS31c.9V4[hb-GB@qRH[U6fI<TdTC2@d&Ci4!(DI[3g@q9.Q>[D/]DJF!* +C2@d&Ci4!(DJF!*C2@d&Ci3`nAQW2D779R%1c-I&,VCW")B0S5)]BV6)B'P5)B0S?,:"0H)B'P5 +,U4QQ)]BV6)C-OQ,U4Q[,:#-'1eLG9=Bo07>[CN;?<CH==Bo0BA7]7]ARf7^=Bo0BA7]7]ARf7^ +=Bo0BA7\kJ?=RMW@q9.\A7]LlDI[3gC2@d&Ci4THI=$<h8k_q^!X&W-"9\c/"9J]/!X'kP"LA.4 +TE58&!X,h2"LA.4TE58&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:99!X,.t"LA.4 +TE57h!X,h2"J>f!ZN:9&!X,h2"J>f!TE58&!X,.t"J>f!ZN:9&!X,.t"LA.4TE58&!X,.t"LA.4 +TE57h!X,h2"J>f!TE58&!X,.t"J>f!TE57h!X,h2"J>f!ZN:9&!X,.t"LA.4TE58&!X,.t"LA.4 +TE58&!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"LA.4TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X+_h"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"I&rjTE57h!X,.t"I&rjTE57h!X,.t"I&rjTE57h!X+_h"J>f! +PQCu\!X+_h"J>f!TE57\!X,.t"I&rjTE57\!X,.t"J>f!PQCu\!X,.t"I&rjTE57\!X,.t"I&rj +PQCuP!X,.t"I&rjTE57\!X,.t"I&rjTE58#-7J]NiW&rXs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+=jQFQg9sXm( +TE58&!X,.t"J>f!ZN:9&!X,h2"J>f!TE58&!X,.t"J>f!ZN:9&!X,.t"LA.4TE58&!X,.t"LA.4 +TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"LA.4 +ZN:9&!X,h2"J>f!ZN:99!X,.t"LA.4TE58&!X,h2"J>f!ZN:99!X,h2"LA.4ZN:9&!X,h2"J>f! +ZN:99!X,.t"LA.4ZN:99!X,h2"LA.4TE58&!X,h2"LA.4ZN:99!X,.t"LA.4ZN:99!X,h2"LA.4 +ZN:9&!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"J>f!ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:9B$P'KE"LA.4]F,4U!X,h2"LA.4 +]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>ZN:99!X,h2"LA.4]F,4^$P'KE"M>*PZN:9B$P'KE"M>*P +ZN:9B$P'KE"LA.4]F,4U!X-.D%^Q3>ZN:99!X,h2"LA.4ZN:99!X-.D%^Q3>]F,4U!X-.D%_N/Z +ZN:9B$P'KE"M>*PZN:9B$P'KE"M>*PZN:9B$P'KE"M>*P]F,4U!X-.D%^Q3>ZN:9B$P'KE"M>*P +ZN:9B$P'KE"M>*PZN:9B$P'KE"M>*PZN:9B$P'KE"M>*PZN:9B$P'fW%_N/ZZN:9B$P'KE"M>*P +]F,4U!X-.D%^Q3>]F,4^$P'fW%^Q3>]F,4U!X-.D%_N/Z]F,4^$P'KE"LA.4]F,4U!X-.D%_N/Z +ZN:9B$P'fW%^Q3>]F,4U!X-.D%_N/Z]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4^$P'fW%^Q3> +]F,4U!X-.D%^Q3>]F,4U!X,h2"M>*P]F,4U!X-.D%_N/Z^DIgGjQGann)39ig"bH4eCMgec-+>U +bKS5L`PnXLUcU\%=Bo0BA7]7]ARf7^@q9.\A7\kJ?=RMW=Bo07>[CN;?<CH=<)ck">[CN;?<CH= +=Bo0BA7\kJ?=RMW@q9.tH[Y8Pp$D;Ci8j(ZjQFt@f#u:^bKS5Sbfpq*"9\c/PQD!#$P'KE"LA.4 +]F,4U!X,h2"LA.4ZN:9B$P'KE"LA.4]F,4U!X,h2"M>*PZN:99!X-.D%^Q3>ZN:99!X,h2"M>*P +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:9.AQ7@<hV$]@daZjkbg")F`Pfa7UnskE1c-g9/M8S+ +4$5Z9A7]t,FD>W0C2@d3FED86DJF!*@q9.\A7]7]AQW2D@q9.cCi4!(DJF!*C2@d&Ci4!(DHL.M +@q9.\A7]7]AQW2D8k_r:1c-g9/L2Pd)B0S5)]BV6)B'P5)B0S5)]BV6)C-OQ)B0S?,:"lm/P8]2 +<)ck">[CN;?<CH==Bo07>[CN;?<CH==Bo07>[CN;?<CH==Bo07>[CN;?<CH==Bo07>[CoNARf7^ +@q9.cCi4!(DJF!*C2@dHMi7c?"9\c/"9J]/!X&W-"9\c/L]R^c!X,h2"J>f!ZN:9&!X,h2"LA.4 +TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"J>f!ZN:9&!X,h2"LA.4TE57h!X,h2"J>f! +TE58&!X,.t"LA.4TE58&!X,.t"J>f!ZN:9&!X,h2"J>f!TE57h!X,h2"J>f!ZN:9&!X,h2"J>f! +TE58&!X,.t"LA.4TE57h!X,.t"J>f!ZN:9&!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,h2"J>f! +TE58&!X,.t"J>f!TE58&!X,.t"J>f!ZN:9&!X,.t"LA.4TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"I&rjTE57h!X+_h"J>f!TE57h!X+_h"J>f!TE57\!X,.t"I&rj +TE57h!X,.t"I&rjTE57h!X,.t"I&rjTE57h!X,.t"I&rjTE57h!X+_h"J>f!TE57\!X,.t"I&rj +TE57\!X,.t"J>f!PQCu\!X+_h"J>f!PQCu\!X+_h"J>f!PQCu\!X,.t"I&rjTE57\!X,.t"I&rj +TE57\!X+_h"J>f!TE58NUQb`Xs8W-!s8W-!s8W-!s7H$\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7cZUn+gn"J>f!ZN:9&!X,.t"LA.4 +TE57h!X,h2"J>f!TE58&!X,.t"LA.4TE57h!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f! +ZN:9&!X,h2"J>f!ZN:9&!X,h2"LA.4TE58&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:99!X,.t"LA.4 +TE58&!X,h2"J>f!ZN:99!X,.t"LA.4TE58&!X,.t"LA.4ZN:99!X,h2"J>f!ZN:99!X,.t"LA.4 +TE58&!X,h2"J>f!ZN:9&!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,.t"LA.4 +ZN:9&!X,h2"LA.4ZN:99!X,h2"LA.4TE58&!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4]F,4U!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"M>*PZN:99!X-.D%^Q3> +ZN:9B$P'KE"M>*PZN:9B$P'KE"LA.4]F,4U!X,h2"LA.4]F,4U!X,h2"M>*PZN:9B$P'KE"LA.4 +]F,4U!X-.D%_N/Z]F,4^$P'fW%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3> +]F,4U!X-.D%^Q3>]F,4U!X,h2"M>*P]F,4U!X-.D%^Q3>]F,4U!X-.D%_N/ZZN:9B$P'fW%^Q3> +]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4^$P'KE"M>*PZN:9B$P'KE"M>*P]F,4^$P'KE"M>*P +ZN:9B$P'fW%_N/ZZN:99!X-.D%_N/Z]F,4^$P'KE"M>*PZN:9B$P'KE"M>*PZN:9B$P'fW%^Q3> +]F,4U!X-.D%^Q3>]F,4U!X-.D%_N/Z]F,4U!X-.D%^Q3>]F,4^$P'fW%^Q3>]F,4U!X-.D%_N/Z +]F,4U!X-.D%^Q3>]F,4U!X.\EETlcXi8j(`gt^T<hU9p)bKS5Sbg")F`Pfa7@q9.C9MJVo?<CH= +=Bo07>[CoNAQW2D=Bo07>[CoNAQW2D=Bo07>[CN;?<CH==Bo07>[CN;?<CH=@q9.Q>[CoNA[JhO +m.9o6m-iW_hU9p)daZjkbg")F`JB2#"9J]B!X,h2"LA.4]F,4U!X,h2"M>*PZN:9B$P'KE"M>*P +ZN:9B$P'KE"LA.4]F,4U!X,h2"M>*PZN:99!X-.D%^Q3>ZN:99!X,h2"M>*PZN:99!X-.D%^Q3> +ZN:99!X,h2"J>f!\"o\FeCMgec,@T?`5T^6`PoI%]o7l./hAS31c/02<GH>fC2@d&Ci4!(DJF!* +@q9.\A7]7]ARf7^@q9.\A7]7]ARf7^@q9.\A7]7]ARf7^=Bo0BA7\kJ?=RMW@q9.\A7]7]AQW2D +=Bo0)9MIT24YA9;)B0S5)]BtH,U=T[,U4Qe/1iqG4\ACB<)cji9MJ,Q9iP(l8k_rO9MJ,Q9iP(l +8k_rO9MJ,Q9hJ)R=Bo07>[CN;?<CH==Bo07>[CN;?<CH==Bo0BA7]7]ASQ%!C2@d7H[U6fI76Om +"9J]/!X&W-"9\c/"9J]B!X,h2"J>f!ZN:99!X,.t"LA.4TE58&!X,.t"LA.4ZN:9&!X,h2"J>f! +ZN:99!X,.t"LA.4TE58&!X,.t"LA.4TE57h!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f! +ZN:9&!X,h2"J>f!TE58&!X,.t"LA.4TE57h!X,.t"LA.4TE57h!X,h2"J>f!ZN:9&!X,.t"LA.4 +TE57h!X,.t"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f!TE57h!X,.t"J>f!TE58&!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!ZN:9&!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X+_h"J>f!TE57\!X,.t"I&rjTE57h!X+_h"J>f! +PQCu\!X,.t"I&rjTE57h!X+_h"J>f!PQCu\!X+_h"J>f!PQCu\!X,.t"I&rjTE57\!X,.t"I&rj +TE57h!X+_h"J>f!PQCu\!X+_h"I&rjTE57\!X+_h"J>f!PQCuP!X+_h"J>f!PQCu\!X+_h"J>f! +cV74!m-juSs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!o_/+QpA*q=n)39ifZ_OL7OOi1"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f! +TE58&!X,.t"LA.4TE57h!X,h2"J>f!ZN:9&!X,h2"J>f!TE58&!X,.t"LA.4TE58&!X,.t"LA.4 +TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,h2"J>f!ZN:9&!X,h2"LA.4TE58&!X,.t"LA.4 +TE58&!X,h2"J>f!ZN:99!X,.t"LA.4TE58&!X,h2"J>f!ZN:99!X,h2"LA.4TE58&!X,h2"LA.4 +ZN:99!X,.t"LA.4ZN:9&!X,h2"J>f!ZN:99!X,.t"LA.4ZN:99!X,h2"LA.4ZN:99!X,.t"LA.4 +ZN:99!X,h2"LA.4TE58&!X,h2"LA.4TE58&!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:9B$P'KE"M>*PZN:99!X,h2"LA.4ZN:9B$P'KE"LA.4ZN:9B$P'KE"LA.4 +]F,4U!X,h2"LA.4]F,4^$P'KE"LA.4]F,4U!X,h2"M>*PZN:9B$P'KE"LA.4]F,4U!X,h2"LA.4 +ZN:9B$P'KE"M>*PZN:9B$P'KE"M>*PZN:9B$P'KE"M>*PZN:9B$P'KE"M>*PZN:9B$P'KE"M>*P +]F,4U!X-.D%^Q3>]F,4U!X-.D%_N/ZZN:9B$P'KE"M>*PZN:9B$P'KE"M>*P]F,4U!X-.D%_N/Z +ZN:9B$P'KE"M>*P]F,4U!X-.D%_N/ZZN:9B$P'KE"M>*PZN:9B$P'fW%_N/ZZN:9B$P'fW%_N/Z +ZN:9B$P'KE"M>*PZN:9B$P'fW%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4^$P'fW%^Q3> +]F,4U!X-.D%_N/ZZN:9B$P'KE"M>*PZN:9B$P'fW%^Q3>]F,4U!X,h2"M>*PZN:9B$P'KE"MYcj +k1nbUm-ilnkLnYIdaZk#bfe2Rc,@T?`5T]rXK=*+/Qc7a=Bo07>[CN;?<CH=@q9.\A7]7]AQW2D +=Bo07>[D/]DHL.M=Bo0BA7]LlDI[3g=Bo0BA7]7]ARf7^C2@eOm-j0)n)39ig"bH;gtp5uc,@T? +`5T\6)]Ah\"Gd*^ZN:99!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X,h2"LA.4ZN:9B$P'KE"LA.4 +]F,4U!X,h2"LA.4ZN:99!X,h2"M>*PZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X+;\"N89u +`5T^6`Pod7`Oidr]=bhh]Y.EP?:@7N=Bo0BA7]7]ARf7^@q9.\A7\kJ?=RMW=Bo07>[CoNARf7^ +@q9.\A7]7]ARf7^@q9.Q>[CN;?<CH=@q9.Q>[CoNAQW2D=Bo07>[CN;?<CH==Bo03<)lms<D#qZ +8k_rY<)lms<E)pt<)cji9MJ,Q9hJ)R8k_rO9MJ,Q9hJ)R8k_rJ6q'O477BU58k_rO9MJ,Q9hJ)R +8k_rY<)lms<E)pt8k_rO9MJVo?<CH==Bo0BA7]7]ASQ%!H[C/D!X&W-"9\c/"9J]/!X&W-"F1%O +ZN:9&!X,h2"J>f!ZN:99!X,.t"LA.4ZN:9&!X,h2"J>f!ZN:99!X,.t"LA.4TE58&!X,.t"LA.4 +TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"J>f!ZN:9&!X,.t"LA.4TE57h!X,h2"J>f! +ZN:9&!X,h2"J>f!ZN:9&!X,.t"LA.4TE57h!X,.t"LA.4TE57h!X,.t"LA.4TE58&!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"LA.4TE58&!X,.t"J>f!TE57h!X,h2"J>f!TE57h!X,h2"J>f! +TE57h!X,.t"J>f!TE57h!X,h2"J>f!TE57h!X,.t"J>f!TE57h!X,.t"LA.4TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"I&rjTE57h!X,.t"J>f!PQCu\!X,.t"J>f! +TE57\!X,.t"J>f!TE57\!X,.t"J>f!TE57h!X,.t"I&rjTE57h!X,.t"J>f!PQCu\!X+_h"J>f! +PQCu\!X,.t"I&rjTE57h!X,.t"J>f!PQCu\!X,.t"I&rjTE57\!X,.t"I&rjTE57\!X,.t"I&rj +TE57\!X,.t"I&rjTE57\!X,.t"I&rjTE57\!X,.t"I&rjTE57\!X,.t"J>f!ke+/"s8W-!s8W-! +s8W,kpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +m.9o6m-j0)n)39iaGYJQ!X,.t"J>f!TE58&!X,.t"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f! +TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"LA.4ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f! +ZN:99!X,.t"LA.4TE58&!X,h2"LA.4TE58&!X,h2"J>f!ZN:99!X,h2"J>f!ZN:99!X,.t"LA.4 +ZN:99!X,h2"J>f!ZN:99!X,.t"LA.4TE58&!X,h2"LA.4TE58&!X,.t"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"J>f!ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"M>*PZN:99!X-.D%^Q3> +ZN:99!X,h2"LA.4]F,4U!X,h2"LA.4]F,4U!X-.D%^Q3>]F,4U!X,h2"M>*PZN:9B$P'KE"LA.4 +]F,4U!X-.D%^Q3>]F,4U!X,h2"M>*PZN:9B$P'KE"M>*P]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3> +]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X,h2"M>*PZN:9B$P'fW%^Q3> +]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3> +]F,4^$P'KE"M>*PZN:9B$P'fW%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%_N/Z +ZN:9B$P'fW%_N/ZZN:9B$P'KE"M>*PZN:9B$P'KE"M>*PZN:9B$P'KE"M>*PZN:9B$P'fW%^Q3> +]F,4^$P'KE"M>*PZN:9B$P'KE"M>*P]F,4U!X-.D%_N/ZZN:9^KPp#?n)39ii8j(SgtpK/f#u:^ +`5T^6`Pp$Ec!t9q4$5Z.>[CN;?<CH==Bo07>[CN;?=RMW@q9.\A7]7]ARf7^C2@ctA7]LlDI[3g +@q9.\A7]7]AQW2D=Bo07>[FeE[-[DWm.9o6m-iW_hV$]@daZjreCM"6ZigF5(BO`G!X,h2"M>*P +ZN:99!X-.D%^Q3>ZN:99!X,h2"M>*PZN:9B$P'KE"LA.4]F,4U!X,h2"M>*PZN:9B$P'KE"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:8W3]t@"`Pfa7]=bhh]Y1qi]t:qj +X/rF<Ci3`nAQW2D@q9.Q>[CN;?<CH==Bo07>[CN;?<CH==Bo0BA7\kJ?=RMW=Bo0BA7\kJ?<CH= +=Bo07>[CN;?=RMW@q9.\A7]7]AQW2D=Bo07>[CB/<E)pt<)cjs<)lms<D#qZ8k_rO9MJ,Q9hJ)R +8k_rO9MIrD77BU5779R56q'O477BU5779R:9MIrD77BU58k_rO9MJ,Q9hJ)R8k_rO9MJ,Q9itY, +=Bo07>[CN;?=RMW@q9.tH[Uj2N!'1b"9J]/!X&W-"9\c/(BO`G!X,.t"LA.4ZN:9&!X,h2"J>f! +ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f! +ZN:9&!X,h2"J>f!ZN:9&!X,.t"LA.4TE58&!X,.t"LA.4TE57h!X,.t"LA.4TE58&!X,.t"LA.4 +TE57h!X,.t"LA.4TE57h!X,h2"J>f!TE57h!X,.t"J>f!TE58&!X,.t"LA.4TE57h!X,h2"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,h2"J>f!TE57h!X,h2"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!PQCu\!X,.t"J>f!TE57\!X,.t"J>f! +TE57\!X,.t"I&rjTE57h!X+_h"J>f!PQCu\!X,.t"I&rjTE57h!X+_h"J>f!PQCu\!X+_h"I&rj +TE57\!X,.t"I&rjTE57h!X+_h"J>f!PQCu\!X+_h"I&rjTE57\!X+_h"J>f!PQCu\!X+_h"I&rj +TE57\!X+_h"I&rjTE57\!X+_h"I&rjPQCu\!X+_h"O(=ds8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq=OCVkj7d%m-ilnkLdGU +`%3U8!X,h2"J>f!TE58&!X,.t"LA.4TE57h!X,h2"J>f!TE58&!X,.t"LA.4TE57h!X,h2"J>f! +ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:99!X,.t"LA.4TE58&!X,h2"J>f!ZN:9&!X,h2"LA.4 +TE58&!X,.t"LA.4TE58&!X,h2"J>f!ZN:99!X,.t"LA.4ZN:9&!X,h2"J>f!ZN:99!X,.t"LA.4 +ZN:9&!X,h2"LA.4TE58&!X,h2"LA.4ZN:99!X,h2"LA.4TE58&!X,h2"J>f!ZN:99!X,.t"LA.4 +ZN:99!X,h2"LA.4TE58&!X,h2"LA.4TE58&!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"M>*PZN:99!X,h2"M>*P +ZN:9B$P'KE"LA.4ZN:99!X,h2"M>*PZN:99!X-.D%^Q3>]F,4U!X,h2"M>*PZN:9B$P'KE"LA.4 +]F,4U!X-.D%^Q3>]F,4U!X,h2"M>*PZN:9B$P'KE"M>*PZN:9B$P'KE"LA.4]F,4U!X-.D%^Q3> +]F,4U!X-.D%^Q3>]F,4U!X-.D%_N/ZZN:9B$P'KE"M>*PZN:9B$P'fW%^Q3>]F,4U!X-.D%_N/Z +ZN:9B$P'fW%^Q3>]F,4U!X-.D%^Q3>]F,4^$P'KE"M>*PZN:9B$P'fW%^Q3>]F,4^$P'KE"M>*P +ZN:9B$P'fW%^Q3>]F,4U!X-.D%_N/Z]F,4U!X-.D%_N/ZZN:9B$P'KE"M>*PZN:9B$P'fW%^Q3> +]F,4^$P'KE"M>*P]F,4^$P'KE"M>*PZN:9B$P'fW%^Q3>ZN:9B$P'fW%^Q3>]F,4U!X-.D%^Q3> +]F,4^$P'KE"M>*PZN:9B$P'fW%d)R%kj7d%m-iW_hU9p)bKS5Sbg">Tc,@T?['[1m/1jIf9iP(l +<)cji9MJJc<ENL4=Bo07>[CN;?<CH=@q9.\A7]LlDJF!*@q9.cCi4!(DI[3g@q9.Q>[CN;?>=:o +m.9oBpA+@Sq<[_Gkj7ckgtp`>hV$]@`5T[u!X*cM"LA.4ZN:99!X-.D%^Q3>ZN:9B$P'KE"M>*P +ZN:99!X-.D%^Q3>]F,4U!X,h2"M>*PZN:99!X,h2"LA.4]F,4U!X,h2"M>*PZN:99!X-.D%^Q3> +ZN:99!X,h2"LA.4ZN:99!X,h2"J>f!Q]-g?`PoI%]u7n/]=bhh]Y1qi]qhL#@q9.Q>[CN;?<CH= +=Bo07>[CN;?;sm(<)ck">[CN;?<CH==Bo07>[CoNAQW2D@q9.\A7\kJ?=RMW=Bo0BA7]7]ARf7^ +@q9.\A7\kJ?<CH==Bo07>[CN;?;sm(<)cji9MJ,Q9hJ)R779R56q'1"4[hb-779R56q'O477BU5 +779R56q'O477BU5779R56q'O476<Up779R:9MJ,Q9hJ)R8k_rO9MJ,Q9itY,@q9.\A7]7]AXo?^ +bKS5<['V(s(^'mC"9J]/!X*cM"J>f!ZN:99!X,.t"LA.4TE58&!X,h2"J>f!ZN:99!X,.t"LA.4 +TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"J>f!ZN:9&!X,h2"J>f!TE58&!X,.t"LA.4 +TE58&!X,.t"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,.t"J>f!TE57h!X,h2"J>f!ZN:9&!X,h2"J>f! +TE57h!X,h2"J>f!ZN:9&!X,h2"J>f!TE57h!X,.t"J>f!TE57h!X,.t"LA.4TE57h!X,.t"LA.4 +TE58&!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!ZN:9&!X,.t"J>f!TE57h!X,h2"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57\!X,.t"J>f!TE57h!X,.t"J>f!TE57\!X,.t"J>f!TE57h!X+_h"J>f!TE57h!X+_h"J>f! +TE57\!X,.t"J>f!PQCu\!X,.t"I&rjTE57h!X+_h"J>f!TE57h!X+_h"J>f!PQCu\!X+_h"I&rj +TE57\!X,.t"I&rjPQCu\!X+_h"J>f!PQCu\!X+_h"I&rjTE57\!X+_h"J>f!PQCu\!X+_h"I&rj +PQCu\!X+_h"J>f!PQCuP!X,eG)Ud-ds8W,kpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8VHWp$D;Ckj7d%m-iW_hT0eFZN:9&!X,h2"J>f! +TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"LA.4 +TE58&!X,.t"LA.4TE58&!X,h2"J>f!ZN:9&!X,h2"LA.4TE58&!X,.t"LA.4ZN:9&!X,h2"J>f! +ZN:9&!X,h2"J>f!ZN:99!X,.t"LA.4ZN:9&!X,h2"LA.4ZN:9&!X,h2"LA.4ZN:9&!X,h2"LA.4 +TE58&!X,.t"LA.4TE58&!X,h2"LA.4TE58&!X,h2"LA.4ZN:99!X,.t"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:9&!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +]F,4U!X,h2"LA.4]F,4U!X,h2"M>*PZN:99!X,h2"M>*PZN:99!X-.D%^Q3>ZN:9B$P'KE"M>*P +ZN:99!X-.D%^Q3>ZN:99!X,h2"M>*PZN:99!X,h2"LA.4]F,4U!X-.D%^Q3>ZN:9B$P'KE"M>*P +ZN:9B$P'KE"LA.4]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3> +]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>ZN:9B$P'KE"M>*P +ZN:9B$P'KE"M>*P]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3>]F,4U!X-.D%^Q3> +]F,4U!X-.D%_N/Z]F,4U!X-.D%_N/ZZN:9B$P'KE"M>*P]F,4^$P'fW%^Q3>]F,4U!X-.D%^Q3> +]F,4U!X-.D%^Q3>]F,4^$P'KE"M>*PZN:9B$P'fW%^Q3>]F,4^$P'KE"M>*PZN:9B$P'KE"M>*P +fQCHnm-!<fkN:RTg"bH4eCMgec-+>U`5T^6`PlS.DD!Il<)cji9MJJc<E)pt=Bo0)9MJVo?<CH= +=Bo0BA7\kJ?=RMWC2@ctA7]7]ASQ%!C2@ctA7\kJ?<CH==Bo1.V53bWq>^Kpo_/+IoC_>6n*'-, +i8j(SgtpuMk;iYIZN:99!X,h2"M>*PZN:99!X-.D%^Q3>ZN:9B$P'KE"M>*PZN:99!X,h2"M>*P +ZN:99!X-.D%^Q3>ZN:9B$P'KE"LA.4]F,4U!X,h2"M>*PZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,#/'ZRes]=bhh]Y1qi]t:qj]=bhh]Y0_sP?;'r<)cjs<)lms<D#qZ8k_rY<)lms<E)pt +=Bo07>[CN;?<CH==Bo0BA7\kJ?=RMW=Bo07>[CN;?=RMW@q9.cCi3`nAQW2D=Bo07>[CN;?<CH= +=Bo07>[CB/<D#qZ<)cji9MIrD77BU5779R56q'O477BU5779R56q'O477BU5779R56q'O477BU5 +779R56q'^A9gqH=8k_rO9MJ,Q9hJ)R<)ck">[CN;?=RMWH[C1abg"Scf$`(!g"bG2H[Q"u";_+B +ZN:99!X,.t"LA.4ZN:9&!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:99!X,.t"LA.4TE58&!X,.t"LA.4 +TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE58&!X,.t"J>f!ZN:9&!X,.t"LA.4 +TE58&!X,.t"LA.4TE58&!X,.t"J>f!TE58&!X,.t"J>f!TE58&!X,.t"LA.4TE57h!X,.t"J>f! +TE57h!X,h2"J>f!ZN:9&!X,h2"J>f!TE57h!X,.t"LA.4TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE58&!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f! +TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X,.t"J>f!TE57h!X+_h"J>f! +TE57h!X+_h"J>f!TE57\!X,.t"J>f!TE57\!X,.t"I&rjTE57h!X+_h"J>f!TE57\!X,.t"I&rj +TE57h!X+_h"J>f!TE57\!X,.t"I&rjTE57h!X+_h"J>f!PQCu\!X+_h"J>f!PQCu\!X+_h"J>f! +PQCu\!X+_h"I&rjTE57\!X+_h"J>f!PQCuP!X,.t"I&rjTE57\!X,.t"I&rjPQCuP!X,.t"I&rj +TE57h!X-GgIK0?Is8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+@Sq<726kj7crjQG1&XKiZ]TE57h!X,h2"J>f!TE57h!X,h2"J>f! +TE58&!X,.t"LA.4TE58&!X,.t"LA.4TE57h!X,h2"J>f!ZN:9&!X,h2"J>f!ZN:9&!X,h2"LA.4 +TE58&!X,.t"LA.4ZN:9&!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:9&!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4ZN:99!X,h2"LA.4 +ZN:99!X,h2"LA.4ZN:99!X-.D%^Q3>ZN:99!X,h2"LA.4ZN:9B$P'KE"LA.4ZN:9B$P'KE"LA.4 +]F,4U!X-.D%_N/Z]F,4^$P'fW%_N/Z]F,4^$P'fW%_N/Z]F,4^$P'fW%_iht]F,4^$P'fW%_N/Z +]F,4^$P'fW%_iht]F,4a(`9mn%_iht]F,4a(`:")(q^4d^DIg#$P'og(r$n)^DIg&(`:")(r$n) +^DIg&(`:")(r$n)^DIg&(`:")(r$n)^DIg+,:(#@(r$n)`$6PB(`:")(r$n)^DIg+,:(2P,fCoQ +^DIg+,:(2P,fCoQ^DIg+,:(2P,fCoQ`$6PG/25!e,fD5f`$6PG,:(2Y0Z51]`%3U\,:(2Y0Z5Lr +`%3U\/25!n0Z5Lr`%3U\/25!n0Z5Lr`%3U\2E8W535d@%`&9Tn/25"#35d@%`&9Tn/25"#35d@% +`&9Tn2E8W535d^7`&9Tn2E8W535d^7`&9Tn2E8W536XKL`&9U!4?pbB36XKL`&9Tn2E8W536XKL +`&9Tn2E8oC5Kl5SbWJ,64?q%P5Kl5SbWJ,64?q%P5Kl5SbWJ,66q#6]5KlM`bWJ,66q#6]5KlM` +bWJ,66q#6]5KlM`bX=kF9i&u$7*eS'cV73]9i')0:X;a2cV73]9i($(fBDSii8j(SgtpK/f%A3i +bKS5L`Pod7`O*"Z/hASC6q'^A9hJ)R<)ck">[CB/<ENL4<)ck">[CN;?<CH==Bo0BA7\kJ?=RMW +=Bo0BA7\kJ?=RMW@q9.Q>[CoNAaK$]s8W-!s8W-!s7H$\m.9o6m-j0)n*'-,kj7cVH[Wq>:!?R= +bZ%]g<*7@D=Nj`HbZ%]g<*7@D=Nj`HbZ%]g<*7XV7*K+ObZ%]g<*7@RA^"+Ue6YPe<*7@RA^"+U +b[P/-@V*bmA^"Upb[P/-@V+5(8'GFRb[P/-@V*b_=Nk5cb[P/-<*6_;7Ee_5[o5>sUnG?4]u7n/ +]=bhh]Y1qi]t:qj]=bh(H[Sjm<ENL4<)cjs<)m%*?:mmc<)cjs<)lms<ENL4=Bo07>[CN;?<CH= +=Bo07>[CN;?<CH=@q9.\A7]7]ASQ%!C2@ctA7]7]AQW2D=Bo07>[CN;?<CH==Bo07>[CB/<D#qZ +8k_rJ6q'O476<Up779R+4?Z,$77BU5779R+4?Z,$76<Up779R56q'1"4[hb-779R:9MJ,Q9hJ)R +8k_rY<)lms<ENL4@q9.\A7`-T[+X6ki8j(Sgtp`>hV$]@]=bhdHtpTHIE6M:`-ZpRFC)n4IDgJ\ +aa@a>H[WhZIDgJ\`-ZpNH[WhZIDgJ\`-ZpNH[WhZIDgJ\`-ZpNH[WhZIDgJ\`-ZpNH[WhZIDgJ\ +`-ZpNH[WhZIDgJ\`-ZpNH[WhZIDgJ\`-ZpNH[WhZIDgJ\`-ZpNH[WhZIDgJ\`-ZpNH[WhZIDgJ\ +`-ZpNH[WhZIDgJ\`-ZpNH[WhZIDgJ\`-ZpNH[WhZIDgJ\aFnTPH[WtgEl<<Q\V5:HH[WGYGf4rW +\V5:HH[WtgEl<<QaGYJbH[WGYGfYek`-ZpRMg`NjIE7=p`-ZpRMg`'oKuf1#\VbdUMg`[)IE7=p +\VbdUMg`-nI)q4o\VbdUMg`'oKuf1#[uH*_Mg`[)ICG2iaGYJUNJ5H3ICY5_aHM:dNJ5H;KXZqp +aHM:dNJ5H;KXZqp[uH*NNJ4j$Kt!%q\<Di\PDcr7Mn"t/aHM:dNJ4m+Mn"t/aHM:dNJ4m+Mn"t/ +\<Di\PDcr7Mn"t/[uH*OPDco0Kt*>)[uH*OPDcu?Pdlp8\<Di\PDcu?Pdlp8\<Di\PDcr7Mn,:@ +\XJbnRZt@OPe!6I\XJbnRZt@OPe!6I\XJbnRZtmhS[YDfaK25ZXJO">V:`/VfY"ZF]XHG1^#d2L +k01s3e^s'9fD*k;l.+DMe^s'9fBLi;l.+DMe^s'9fBLi;l.+DJgt_/EfD44Ll.+DXpA+ags8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+QpA+@Sq<[_Gm.9o6m-j)\al^ghf>PATbff.mak4h\fZ_P$bfSM]bLk%^fZ_OkbfeY_bLk%^ +fZ_Okbff8$f@\<jdaZk4e^rHtbL4nkl.+D6eCNm7f@&1"l.+D=gtq;GfB1lDl.+D=gtq;Gf@es9 +k1nbFgtq;Gf@es9k1nbSgt_&IgtCK>i8j(`gt_&IgudDIg"bHHgt^iKkMYFai8j(ZjQG[\h!"+n +k1nbMjQGI^kN:RTi8j(bm-ilnkNM:$i8j(bm-j0)n*'-,kj7d%m-j0)n*'-,kj7d%m-j0)n*'-, +m.9o6m-j<4p#tc2m.9o6m-j<4p#tc2o_/+Em-jT?q<726o_/+Em-jT?q<726o_/+Em-j<4p#tc2 +m.9oEm-!a,p$D;Ckj7d1pA*q=n*'-,o_/+Tm-"$7q<726o_/+Tm-"$7q=j7=o_/+Tm-"$7q=j7= +o_/+Tm-"$7q=OCVo_/+Tm-"$7q=OCVp[%)8pA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=j7= +o_/+QpA+@Sq=j7=o_/+QpA+ILkOeKDp[%)8pA+@Sq=OCVo_/+QpA+ILkOeKDo_/+QpA+@Sq=OCV +o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+\s8W-!s7H$\o_/+QpA+@Sq=OCVo_/+QpA+ags7H$\ +o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCV +o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+\s8V`bq=OCVo_/+\s8V`bq=OCVo_/+QpA+ags7H$\ +o_/+\s8V`bq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCV +o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+\s8V`bq=OCVo_/+QpA+ags7H$\s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq=OCVkj7d%m-ilnkLnYIdaZjkbg">Tc,@T?`5T]>FEB,d/P8]2 +8k_rO9MJJc<ENL4<)ck">[CN;?<CH==Bo07>[CN;?<CH==Bo07>[CN;?<CH==Bo07>[CN;?<CH= +S=Z8CpA+ags8W-!s8W-!s8W-!s7H$\m.9o:oC_JAp$D;Ckj7d1pA+@Sq=OCVm.9oBpA+(Hp%7tR +m.9oBpA+(Hp%7tRkj7d1pA+@Sq=OCVp[%)0oC_JAp%7tRp[%)0oC_bLq=OCVo_/+QpA+@Sq=OCV +o_/+QpA+ILkNM:$kj7crjQG4OhV$]@daZjkbg")F`Pfa7`k8mp]Y1qi]t:qj]=bhh]Y1qi]t:qj +H[C059MJJc<E)pt<)cjs<)lms<E)pt<)ck">[CN;?<CH==Bo07>[CN;?<CH==Bo07>[CN;?<CH= +C2@d&Ci3`nAQW2D=Bo07>[CN;?<CH=<)cji9MJJc<E)pt8k_rY<)lOa9hJ)R8k_rO9MIrD77p6J +8k_rO9MJ,Q9hJ)R779R56q'O477p6J8k_rO9MJ,Q9hJ)R8k_rO9MJVo?:mmc=Bo07>[CN;?Asf$ +kj7d%m-ilnkNM:$kj7crjQGann)39ii8j(ZjQGI^kMYFai8j(ZjQGI^kN:RTi8j(SgtpuMkLnYI +i8j(SgtpuMkLnYIi8j(ZjQGI^kLnYIi8j(ZjQG4OhVdJXg"bHBjQGI^kLnYIi8j(SgtpuMkLnYI +i8j(SgtpuMkLnYIi8j(ZjQGI^kMYFai8j(SgtpuMkLnYIi8j(SgtpuMkLnYIi8j(Sgtp`>hV$]@ +g"bH;gtp`>hV$]@g"bH;gtp`>hV$]@g"bH;gtp`>hV$]@g"bH;gtp`>hV$]@g"bH;gtp`>hVdJX +g"bH;gtp`>hV$]@g"bH;gtp`>hV$]@g"bH;gtp`>hV$]@daZk$gtpK/f%Jj8daZjreCN'tf$`(! +daZjreCN'tf$`(!daZjreCN'tf$`(!daZjreCN'tf$`(!daZjreCN'tf$`(!daZjreCN'tf%Jj8 +daZk$gtpK/f%Jj8daZjreCN'tf$`(!daZjreCN'tf$`(!daZjreCN'tf#u:^daZjreCN'tf#u:^ +daZjkbg"Scf#u:^daZjkbg"Scf#u:^bKS5ZeCMgec-k+mbKS5Sbg">Tc-+>UdaZjkbg">Tc-+>U +bKS5ZeCMgec-k+mbKS5ZeCN'tf&5WPi8j(bm-j0)n*KZ=m.9oMs8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq=OCV +kj7d)oC_>6n*'-,kj7d%m-j0)n*'-,kj7d%m-j0)n*'-,kj7d%m-j0)n*'-,kj7d%m-j0)n*'-, +m.9oEm-!U!n*'-,kj7d1pA*q=n*KZ=kj7d)oC_JAp#tc2m.9oBpA*q=n*KZ=m.9o:oC_JAp$D;C +m.9oBpA+@Sq=OCVm.9o:oC_bLq=OCVm.9oBpA+@Sq=OCVo_/+IoC_JAp%Rh9m.9oBpA+(Hp%7tR +o_/+QpA+@Sq=OCVp[%)8pA+(Hp%Rh9o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCV +s8W,kpA+@Sq=OCVo_/+QpA+@Sq>^Kpo_/+QpA+@Sq>^Kpo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCV +o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+\s8V`bq>^Kpo_/+\s8V`bq>^Kp +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\ +s8W-!s8V`bq>^Kps8W,kpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+QpA*q=n)39ig"bH4eCMgec-+>U`5T^6`PoI%]eqW'779R:9MJ,Q9hJ)R8k_rO9MJVo?:mmc +=Bo0)9MJJc<E)pt<)ck">[C#r9hJ)R8k_rO9MJ,Q9iP(l<)ck">[Hdgp&G'ls8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+ags8W-!o_/+QpA+ags7H$\o_/+QpA+@Sq=OCVo_/+QpA+ags7H$\ +o_/+\s8V`bq>^Kps8W,kpA+ags8W-!o_/+\s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA+(Hp#tc2 +i8j(SgtpK/f$`(!bKS5L`Pod7`Pfa7]=bhq`PoI%]t:qj`5T^-]Y1\Z[!-V6=Bo03<)m%*?;sm( +<)cji9MJJc<E)pt<)ck">[C#r9iP(l<)cjs<)lms<E)pt=Bo07>[CN;?=RMW@q9.\A7\kJ?<CH= +=Bo07>[CN;?<CH=<)cjs<)m%*?;sm(<)cji9MJ,Q9hJ)R8k_rO9MJJc<D#qZ8k_rO9MJ,Q9hJ)R +8k_rO9MJ,Q9iP(l8k_r]>[CB/<E)pt<)ck">[CN;?<CH=C2@eGjQGn$p$D;Cm.9o:oC_JAp$D;C +m.9o:oC_JAp$D;Cm.9o:oC_JAp#tc2kj7d%m-j0)n*'-,kj7d%m-j0)n*'-,kj7d%m-j0)n*'-, +kj7d%m-j0)n*'-,kj7d%m-j0)n*'-,kj7d%m-j0)n*'-,kj7d%m-j0)n*'-,kj7d%m-j0)n*'-, +kj7d%m-j0)n*'-,kj7crjQGann)39ikj7crjQGI^kMYFakj7crjQGI^kMYFakj7crjQGI^kMYFa +i8j(bm-j0)n)39ikj7crjQGI^kNM:$i8j(bm-ilnkNM:$kj7crjQGI^kNM:$i8j(ZjQGann)39i +kj7crjQGI^kMYFai8j(ZjQGI^kMYFai8j(SgtpuMkMYFag"bHBjQGI^kMYFag"bHBjQGI^kLnYI +i8j(ZjQG4OhVdJXi8j(SgtpuMkLnYIi8j(SgtpuMkMYFai8j(Sgtp`>hVdJXg"bH;gtp`>hV$]@ +i8j(SgtpuMkLnYIg"bH;gtp`>hV$]@g"bH;gtp`>hV$]@g"bH;gtp`>hV$]@daZk$gtp`>hV$]@ +g"bH;gtp`>hV$]@g"bH;gtp`>hV$]@g"bH;gtpK/f%Jj8g"bH;gtp`>hU9p)g"bH;gtp`>hV$]@ +i8j(ZjQGI^kNM:$m.9oBpA+@Sq=OCVs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq=OCVo_/+QpA+@Sq=OCV +o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq<[_Go_/+QpA+@Sq=OCV +o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVs8W,kpA+@Sq>^Kpo_/+\s8W-!s7H$\s8W-!s8W-!s8W-! +o_/+\s8V`bq=OCVo_/+QpA+ags7H$\s8W-!s8V`bq=OCVs8W,kpA+@Sq=OCVs8W,kpA+ags8W-! +o_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7crjQG4OhU9p) +fZ_O^bg")F`Pfa7H[C/n/1jIf9hJ)R8k_rO9MJ,Q9hJ)R<)cji9MJVo?<CH=8k_rO9MJ,Q9hJ)R +8k_rO9MJ,Q9hJ)R8k_rO9MJ,Q9oP!hs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+IoC_>6n)39ig"bH4eCN'tf#u:^ +`5T^6`PoI%]t:qj]=bhh]Y1qi]t:qj]=bha['Y1,I99`\<)cjs<)lms<E)pt<)ck">[C#r9iP(l +8k_rY<)lOa9itY,8k_r]>[CN;?<CH==Bo0BA7\kJ?<CH=@q9.Q>[CN;?<CH=<)cji9MJJc<ENL4 +<)ck">[CB/<E)pt<)cjs<)lms<E)pt<)cjs<)lms<E)pt<)cji9MJJc<D#qZ=Bo03<)m%*?<CH= +=Bo03<)m%*?<CH==Bo0BA7a3=f'N#$m.9oBpA+@Sq=OCVs8W-!s8W-!s7H$\o_/+QpA+@Sq=OCV +o_/+QpA+ags7H$\o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCV +o_/+QpA+(Hp%7tRo_/+IoC_bLq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVm.9o:oC_bLq<[_G +m.9o:oC_JAp$D;Cm.9o:oC_JAp$D;Cm.9o:oC_JAp$D;Cm.9o:oC_JAp#tc2m.9o:oC_>6n*KZ= +m.9o6m-j<4p$D;Ckj7d)oC_>6n*KZ=kj7d)oC_JAp#tc2m.9o6m-j<4p$D;Ckj7d%m-j<4p#tc2 +kj7d%m-j0)n*'-,kj7d%m-j0)n*'-,i8j(bm-j0)n*'-,kj7d%m-j0)n*'-,kj7d%m-ilnkNM:$ +kj7d%m-j0)n*'-,kj7crjQGann*'-,kj7crjQGann*'-,kj7d%m-ilnkNM:$kj7d%m-j0)n*'-, +i8j(bm-ilnkMYFai8j(ZjQGI^kLnYIi8j(ZjQGI^kMYFai8j(SgtpuMkMYFai8j(SgtpuMkMYFa +i8j(ZjQGI^kMYFai8j(ZjQGI^kMYFai8j(ZjQGI^kMYFai8j(ZjQGann*'-,kj7d%m-j<4p$D;C +o_/+QpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+ags8W-!o_/+\s8V`bq>^Kp +o_/+\s8W-!s7H$\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+QpA*Y-kN:RTdaZjreCMgec-+>U`5T^-]Y-0Z1eLG9 +<)cji9MJ,Q9hJ)R8k_rO9MIrD77p6J779R:9MJ,Q9gqH=8k_r@4?Ybg4Zbbh4$5Yf4?Ybg4Zbbh +779T.m-juSs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-j0)n(HLQdaZjreCMgec,@T?`5T^6`Pod7`Oidr +]=bhh]Y1qi]t:qj['[2eH[SL[9itY,<)ck">[CB/<ENL4<)cjs<)lOa9hJ)R8k_rY<)lOa9hJ)R +=Bo07>[CN;?<CH==Bo07>[CN;?<CH==Bo03<)lms<E)pt<)cjs<)lOa9iP(l<)cjs<)m%*?<CH= +<)ck">[CB/<E)pt=Bo07>[CN;?;sm(<)cjs<)m%*?<CH==Bo07>[CN;?<CH==Bo07>[CoNA\5Ug +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8V`bq>^Kps8W-!s8W-!s8W-!o_/+\s8V`bq>^Kpo_/+\s8V`bq>^Kpo_/+\s8V`bq=OCV +o_/+QpA+@Sq<[_Go_/+QpA+@Sq=OCVo_/+QpA+(Hp%7tRo_/+QpA+@Sq=OCVo_/+QpA+@Sq<[_G +o_/+QpA+(Hp%7tRo_/+IoC_bLq=OCVm.9oBpA+@Sq=OCVo_/+IoC_bLq<[_Gm.9o:oC_JAp$D;C +m.9o:oC_JAp$D;Cm.9o:oC_JAp#tc2m.9o:oC_JAp$D;Cm.9o:oC_JAp$D;Cm.9o:oC_JAp$D;C +m.9o:oC_JAp$D;Cm.9o:oC_JAp$D;Cm.9o:oC_>6n*'-,kj7d%m-j0)n*KZ=kj7d%m-j0)n*'-, +kj7d%m-j0)n*'-,kj7d%m-j0)n*'-,kj7d%m-j0)n*'-,kj7d%m-j0)n)39ikj7d%m-ilnkNM:$ +kj7d%m-j0)n*'-,kj7crjQGann*'-,kj7d)oC_JAp$D;Co_/+QpA+@Sq=OCVs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+\s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8VHWp#tc2i8j(SgtpK/f#u:^bKS5L`Pod7`Hur[/hASH9MJ,Q9hJ)R8k_rJ6q'O476<Up +8k_rJ6q'O477BU5779R+4?Ybg4Zbbh4$5Yf4?Ybg4Zbbh4$5Yf4?\%<IJ!7/s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s7H$\kj7crjQGI^kL.l2daZjkbg")F`Pfa7]=bhh]Y28&`Oidr]=bhh]Y1qi]sP/R +H[C0C>[CN;?;sm(<)cjs<)lms<D#qZ<)cji9MJ,Q9hJ)R8k_r]>[CB/<ENL4=Bo07>[CN;?<CH= +=Bo03<)lOa9iP(l8k_rO9MJ,Q9iP(l<)cjs<)lms<ENL4<)ck">[CB/<ENL4<)ck">[CB/<ENL4 +=Bo07>[CB/<ENL4=Bo07>[CN;?=RMW=Bo07>[CN;?=RMW]=biLpA+ags8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+ags8W-!o_/+\s8W-!s8W-!o_/+\s8V`bq=OCVo_/+QpA+@Sq=OCV +o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+ags7H$\ +o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+IoC_bLq=OCVm.9o:oC_JAp$D;Cm.9o:oC_JAp$D;C +m.9o:oC_JAp$D;Cm.9o:oC_JAp$D;Cm.9o:oC_JAp$D;Cm.9o:oC_JAp$D;Cm.9o:oC_JAp$D;C +m.9o:oC_JAp$D;Co_/+QpA+@Sq=OCVs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\m.9o6m-ilnkL.l2 +daZjkbg">Tc,@T?]=bg71c.9V4\ACB8k_rJ6q'^A9gqH=779R56q'O476<Up8k_rJ6q'^A9fkI# +4$5Yf4?Ybg4Zbbh4$5Yf4?Ybg4Zbbhg"bHas8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_G +i8j(Sgtp`>hU9p)bKS5Sbg")F`Pfa7`5T^-]Y1qi]t:qj]=bhh]Y1qi]o7l.<)ck">[CB/<ENL4 +<)cjs<)lOa9iP(l8k_rO9MJJc<D#qZ<)cjs<)lms<ENL4=Bo07>[CN;?<CH==Bo03<)lms<E)pt +8k_rY<)lOa9iP(l<)ck">[CB/<E)pt=Bo0)9MJJc<E)pt<)ck">[CN;?<CH==Bo07>[CN;?<CH= +@q9.Q>[CN;?<CH=C2@e@gtr)2s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+ags8W-!s8W,kpA+@Sq>^Kpo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCV +o_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVo_/+QpA+@Sq=OCVs8W,kpA+ags8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq>^Kp +o_/+\s8V`bq>^Kps8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#+oog"bH4eCMgec-+>U`5T^6`Pm1NI3^$_ +8k_r@4?Ybg4Zbbh4$5Yf4?Ybg4Zbbh779R56q'O477BU5779R56q'O477BU5779R56q'^A9gqH= +779RZCi8n=q>^Kps8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+(Hp#tc2g"bH;gtpK/f#u:^ +`5T^6`Pod7`Oidr`5T^-]Y1qi]t:qj]=bhh]Y0i,S60$&<)ck">[CB/<E)pt<)cjs<)m%*?<CH= +<)ck">[CB/<E)pt<)cjs<)lms<ENL4=Bo07>[CB/<E)pt8k_rY<)lms<E)pt=Bo07>[CB/<E)pt +<)cji9MJ,Q9iP(l<)ck">[CN;?<CH==Bo07>[CoNARf7^=Bo0BA7\kJ?=RMW=Bo0kMi@#op&G'l +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+ags8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s6T@Mkj7d#gt^?-f$`(!bKS5L`Pod7`Pfa78k_r@4?Ybg4Zbbh4$5Yf4?Z,$76<Up +4$5Yf4?Ybg4Zbbh779R56q'^A9fkI#779R56q'O477BU5779R56q'O47G6JQs8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+Em-j0)n)39ig"bH;gtpK/f#u:^bKS5L`Pod7`Oidr +`5T^-]Y1qi]t:qj]=bhQV5.jBDH'S8=Bo03<)lms<ENL4=Bo07>[CN;?<CH==Bo03<)lms<D#qZ +=Bo07>[CN;?<CH=<)ck">[CB/<E)pt<)cjs<)lms<ENL4=Bo03<)m%*?;sm(8k_rO9MJJc<ENL4 +=Bo07>[CoNARf7^@q9.\A7]7]ARf7^@q9.tH[X>lf)PdMs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W,kpA+ags8W-!s8W,kpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,coC_>6n)39i +g"bH4eCMgec-+>UbKS5C]Y,pK/NZ'X4$5YY/1i_91c7*H4$5Yf4?Z,$77p6J8k_rJ6q'^A9gqH= +4$5Yu9MIrD77p6J8k_rO9MJ,Q9hJ)RC2@e[pA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!m.9o6m-ilnkMYFag"bH4eCN'tf#u:^bKS5L`Pod7`Pfa7]=bhq`PoI%]t:qj +['[2rKS3H4?<CH=@q9.Q>[CN;?<CH==Bo07>[CN;?<CH==Bo07>[CN;?<CH==Bo07>[CN;?<CH= +<)cjs<)lms<E)pt<)ck">[CB/<ENL4=Bo03<)m%*?<CH==Bo07>[CN;?<CH=@q9.\A7]LlDJF!* +C2@d&Ci6kt^%D$oo_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq>^Kp +s8W,kpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\kj7crjQG4OhU9p)daZjreCMgec(q23 +/hAS31c.'H1bL=22)I-B/1iqG4Zbbh779R56q'1"4[hb-779R+4?Z;19gqH=779R:9MJ,Q9gqH= +8k_rO9MN^Sc2[hDs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s6T@M +m.9o.jQGI^kLnYIg"bH4eCN'tf#u:^bKS5Sbg")F`Pfa7`5T^6`PoI%]t:qjUnsl6H[TC7ARf7^ +=Bo07>[CN;?<CH==Bo07>[CN;?<CH==Bo07>[CN;?<CH==Bo07>[CB/<E)pt=Bo03<)lms<ENL4 +8k_r]>[CB/<E)pt<)ck">[CN;?<CH=@q9.\A7]LlDI[3gC2@d7H[W9.[/^1+s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+\s8V`bq>^Kp +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8VHWp#tc2i8j(ZjQG4OhU9p)daZj(KS23>1bL=2/hAS31c-g9/N#@A +2)I-O4?Z,$77p6J8k_rO9MJ,Q9hJ)R8k_rO9MJ,Q9hJ)R8k_rO9MJ,Q9knK^o_/+\s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gm.9o.jQGI^kLnYI +g"bH;gtpK/f$`(!bKS5Sbg">Tc,@T?bKS5L`Pod7`OidrS=Z6tH[TC7AQW2D=Bo07>[CN;?<CH= +@q9.Q>[CN;?<CH=8k_r]>[C#r9iP(l<)ck">[C#r9itY,<)cjs<)m%*?:mmc<)ck">[CB/<ENL4 +=Bo07>[CoNARf7^@q9/0Mi>j'c1L`*o_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+QpA*q=n)39ii8j(ZjQGI^kG4rMC2@ci>[BKS4YA9;2)I-B/1iqG4Zbbh4$5Yp6q'^A9gqH= +8k_rO9MJ,Q9iP(l<)cjs<)lms<D#qZ8k_sk]Y4@Fs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gkj7d)oC_&&kMYFag"bH;gtp`>hU9p) +daZjreCN'tf#u:^daZjkbg">Tc-+>U['[3!Mi;CeDHL.M=Bo07>[CN;?<CH==Bo0)9MJVo?;sm( +=Bo07>[C#r9iP(l<)cjs<)lms<E)pt<)ck">[C#r9iP(l8k_rO9MJVo?<CH=@q9/HV53>An+?>L +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+\s8W-!s7H$\s8W,kpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\o_/+Em-j0)n*'-, +kj7crjQGI^kMYFai8j(>`Po3k[%*_XN/NXAH[TC7AP,Wj4$5Yu9MJ,Q9iP(l<)cjs<)lms<E)pt +8k_rY<)m%*?N:'*s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8V`bq<[_Gm.9o6m-j0)n)39ii8j(ZjQG4OhV$]@g"bH;gtpK/f$`(! +g"bH4eCN=.hU9p)daZj[]Y0i,S9K's=Bo0)9MJ,Q9itY,=Bo0)9MJVo?:mmc8k_rO9MJ,Q9hJ)R +8k_rO9MJ,Q9hJ)R8k_rO9MJ,Q9itY,S=Z8!eCO9cq=OCVs8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+\s8W-!s8W-! +o_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\o_/+IoC_JAp$D;Cm.9o:oC_>6n*KZ= +kj7d)oC_>6n*KZ=m.9o:oC_&&kKD)o]=bhXXK@G>N-fo"=Bo03<)lms<E)pt['[4?s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W,kpA+@Sq<[_Gm.9o:oC_>6n*'-,i8j(ZjQGI^kLnYIi8j(ZjQG4OhVdJXg"bH;gtpuMkLnYI +g"bHBjQG4OhSdCPUnslGMi<"0I99`\<)cjs<)lOa9hJ)R8k_rO9MJ,Q9hJ)R8k_r]>[EAIN3ot! +i8j)$s8V`bq>^Kps8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+ags8W-!o_/+\s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+@Sq=OCVm.9o:oC_JAp$D;Cm.9oBpA+@Sq=OCV +o_/+\s8V`bq=OCVo_/+\s8V`bq>^Kpm.9o.jQH1/q>^Kps8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8V`bq<[_G +o_/+IoC_JAp$D;Ckj7d%m-j0)n)39ikj7crjQGann*'-,i8j(bm-j0)n*'-,kj7d)oC_JAp$D;C +m.9o:oC_&&kL.l2daZjd`Pp$Ec-k+mg"bHBjQGn$p&G'lo_/+QpA+ags8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +o_/+\s8W-!s8W-!s8W,kpA+ags8W-!o_/+\s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\o_/+IoC_bLq<[_G +m.9o:oC_JAp$D;Cm.9o:oC_JAp$D;Cm.9o:oC_JAp$D;Co_/+QpA+ags7H$\s8W,kpA+ags7H$\ +s8W,kpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!o_/+\s8V`bq>^Kp +s8W,kpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W,kpA+ags7H$\o_/+QpA+(Hp%7tR +o_/+QpA+ags8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-! +s8W-!s8W-!s8W-!s8W-!s8W-!s7H$\s8W-!s8W-!s8W-!s8W,kpA+ags8W-!o_/+\s8N~> +Q +cleartomark end end pagesave restore showpage +%%PageTrailer +%%Trailer +%%Pages: 1 diff --git a/doc/doxygen_logo.gif b/doc/doxygen_logo.gif Binary files differnew file mode 100644 index 0000000..6b45597 --- /dev/null +++ b/doc/doxygen_logo.gif diff --git a/doc/doxygen_logo_low.gif b/doc/doxygen_logo_low.gif Binary files differnew file mode 100644 index 0000000..02e3c9a --- /dev/null +++ b/doc/doxygen_logo_low.gif diff --git a/doc/doxygen_manual.css b/doc/doxygen_manual.css new file mode 100644 index 0000000..644e4d7 --- /dev/null +++ b/doc/doxygen_manual.css @@ -0,0 +1,1106 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl { + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 13px; + line-height: 1.3; +} + +/* @group Heading Levels */ + +h1 { + font-size: 150%; +} + +.title { + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2 { + font-size: 120%; +} + +h3 { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #F1F1F1; + border: 1px solid #BDBDBD; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #646494; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #7474A4; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #B8B8B8; + color: #ffffff; + border: 1px double #A8A8A8; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px; + margin: 4px; + background-color: #FCFCFC; + border: 1px solid #D5D5D5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; +} + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: #CCCCCC; + color: black; + margin: 0; +} + +div.contents { + margin-bottom: 10px; + padding: 12px; + margin-left: auto; + margin-right: auto; + width: 800px; + background-color: white; + -moz-border-radius-bottomleft: 8px; + -moz-border-radius-bottomright: 8px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 5px; + /* webkit specific markup */ + -webkit-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.15); +} + +td.indexkey { + background-color: #F1F1F1; + font-weight: bold; + border: 1px solid #D5D5D5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #F1F1F1; + border: 1px solid #D5D5D5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #F2F2F2; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; + background-color: #8080A0; + color: white; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +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 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F9F9F9; + border-left: 2px solid #B8B8B8; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.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: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #BDBDBD; +} + +th.dirtab { + background: #F1F1F1; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #7A7A7A; +} + +hr.footer { + display: none; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #FAFAFA; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #D5D5D5; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #747474; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #747474; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #F1F1F1; + border: 1px solid #BDBDBD; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + white-space: nowrap; + font-weight: bold; + margin-left: 6px; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #C0C0C0; + border-left: 1px solid #C0C0C0; + border-right: 1px solid #C0C0C0; + padding: 6px 0px 6px 0px; + color: #3D3D3D; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 8px; + border-top-left-radius: 8px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 8px; + -moz-border-radius-topleft: 8px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 8px; + -webkit-border-top-left-radius: 8px; + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #EAEAEA; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #C0C0C0; + border-left: 1px solid #C0C0C0; + border-right: 1px solid #C0C0C0; + padding: 2px 5px; + background-color: #FCFCFC; + border-top-width: 0; + /* opera specific markup */ + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 8px; + -moz-border-radius-bottomright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F9F9F9 95%, #F2F2F2); + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F9F9F9), to(#F2F2F2)); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + border-spacing: 6px 2px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + + + + +/* @end */ + +/* @group Directory (tree) */ + +/* for the tree view */ + +.ftvtree { + font-family: sans-serif; + margin: 0px; +} + +/* these are for tree view when used as main index */ + +.directory { + font-size: 9pt; + font-weight: bold; + margin: 5px; +} + +.directory h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +/* +The following two styles can be used to replace the root node title +with an image of your choice. Simply uncomment the next two styles, +specify the name of your image and be sure to set 'height' to the +proper pixel height of your image. +*/ + +/* +.directory h3.swap { + height: 61px; + background-repeat: no-repeat; + background-image: url("yourimage.gif"); +} +.directory h3.swap span { + display: none; +} +*/ + +.directory > h3 { + margin-top: 0; +} + +.directory p { + margin: 0px; + white-space: nowrap; +} + +.directory div { + display: none; + margin: 0px; +} + +.directory img { + vertical-align: -30%; +} + +/* these are for tree view when not used as main index */ + +.directory-alt { + font-size: 100%; + font-weight: bold; +} + +.directory-alt h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +.directory-alt > h3 { + margin-top: 0; +} + +.directory-alt p { + margin: 0px; + white-space: nowrap; +} + +.directory-alt div { + display: none; + margin: 0px; +} + +.directory-alt img { + vertical-align: -30%; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; +} + +address { + font-style: normal; + color: #464646; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #4A4A4A; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #5B5B5B; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; +} + +table.fieldtable { + width: 100%; + margin-bottom: 10px; + border: 1px solid #C0C0C0; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #C0C0C0; + border-bottom: 1px solid #C0C0C0; + vertical-align: top; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #C0C0C0; + width: 100%; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #EAEAEA; + font-size: 90%; + color: #3D3D3D; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #C0C0C0; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + height:30px; + line-height:30px; + color:#ABABAB; + border:solid 1px #D3D3D3; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#595959; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#929292; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#595959; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + margin-left: 5px; + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #FAFAFA; + border-bottom: 1px solid #D5D5D5; + margin-left: auto; + margin-right: auto; + width: 800px; + padding-left: 12px; + padding-right: 12px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 5px; + /* webkit specific markup */ + -webkit-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.15); +} + +div.headertitle +{ + padding: 5px 5px 5px 7px; +} + +dl +{ + padding: 0 0 0 10px; +} + +dl.section +{ + padding: 0 0 0 6px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 1em; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #848484; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #AFAFAF; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#545454; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F6F6F6; + border: 1px solid #DDDDDD; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + border-bottom: 0 none; + color: #606060; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } + pre.fragment + { + overflow: visible; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + } +} + diff --git a/doc/doxygen_manual.tex b/doc/doxygen_manual.tex new file mode 100644 index 0000000..1c9ad2a --- /dev/null +++ b/doc/doxygen_manual.tex @@ -0,0 +1,111 @@ +% +% +% +% Copyright (C) 1997-2011 by Dimitri van Heesch. +% +% Permission to use, copy, modify, and distribute this software and its +% documentation under the terms of the GNU General Public License is hereby +% granted. No representations are made about the suitability of this software +% for any purpose. It is provided "as is" without express or implied warranty. +% See the GNU General Public License for more details. +% +% Documents produced by Doxygen are derivative works derived from the +% input used in their production; they are not affected by this license. + +\documentclass{book} +\usepackage[a4paper,left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry} +\usepackage{makeidx} +\usepackage{natbib} +\usepackage{graphicx} +\usepackage{multicol} +\usepackage{float} +\usepackage{geometry} +\usepackage{listings} +\usepackage{color} +\usepackage{ifthen} +\usepackage[table]{xcolor} +\usepackage{textcomp} +\usepackage{alltt} +\usepackage{ifpdf} +\ifpdf +\usepackage[pdftex, + pagebackref=true, + colorlinks=true, + linkcolor=blue, + unicode + ]{hyperref} +\else +\usepackage[ps2pdf, + pagebackref=true, + colorlinks=true, + linkcolor=blue, + unicode + ]{hyperref} +\usepackage{pspicture} +\fi +\usepackage[utf8]{inputenc} +\usepackage{mathptmx} +\usepackage[scaled=.90]{helvet} +\usepackage{courier} +\usepackage{sectsty} +\usepackage[titles]{tocloft} +\usepackage{amssymb} +\usepackage{doxygen} +\lstset{language=C++,inputencoding=utf8,basicstyle=\footnotesize,breaklines=true,breakatwhitespace=true,tabsize=8,numbers=left } +\makeindex +\setcounter{tocdepth}{3} +\renewcommand{\footrulewidth}{0.4pt} +\renewcommand{\familydefault}{\sfdefault} +\renewcommand{\cftsecindent}{0 em} +\renewcommand{\cftsecnumwidth}{3.2 em} +\renewcommand{\cftsubsecindent}{3.2 em} +\newcommand{\thisyear}{\the\year} +\hfuzz=15pt +\setlength{\emergencystretch}{15pt} +\hbadness=750 +\tolerance=750 +\begin{document} +\begin{titlepage} +\includegraphics[width=\textwidth]{doxygen_logo} +\begin{center} +Manual for version $VERSION\\[2ex] +Written by Dimitri van Heesch\\[2ex] +\copyright 1997-\thisyear +\end{center} +\end{titlepage} +\clearemptydoublepage +\tableofcontents +\clearemptydoublepage +\pagenumbering{arabic} +\include{index} +\part{User Manual} +\chapter{Installation}\label{install}\hypertarget{install}{}\input{install} +\chapter{Getting Started}\label{starting}\hypertarget{starting}{}\input{starting} +\chapter{Documenting the code}\label{docblocks}\hypertarget{docblocks}{}\input{docblocks} +\chapter{Markdown}\label{markdown}\hypertarget{markdown}{}\input{markdown} +\chapter{Grouping}\label{grouping}\hypertarget{grouping}{}\input{grouping} +\chapter{Including Formulas}\label{formulas}\hypertarget{formulas}{}\input{formulas} +\chapter{Graphs and diagrams}\label{diagrams}\hypertarget{diagrams}{}\input{diagrams} +\chapter{Preprocessing}\label{preprocessing}\hypertarget{preprocessing}{}\input{preprocessing} +\chapter{Automatic link generation}\label{autolink}\hypertarget{autolink}{}\input{autolink} +\chapter{Output Formats}\label{output}\hypertarget{output}{}\input{output} +\chapter{Searching}\label{searching}\hypertarget{searching}{}\input{searching} +\chapter{Customizing the Output}\label{customize}\hypertarget{customize}{}\input{customize} +\chapter{Custom Commands}\label{custcmd}\hypertarget{custcmd}{}\input{custcmd} +\chapter{Link to external documentation}\label{external}\hypertarget{external}{}\input{external} +\chapter{Frequently Asked Questions}\label{faq}\hypertarget{faq}{}\input{faq} +\chapter{Troubleshooting}\label{trouble}\hypertarget{trouble}{}\input{trouble} +\part{Reference Manual} +\chapter{Features}\label{features}\hypertarget{features}{}\input{features} +\chapter{Doxygen usage}\label{doxygen_usage}\hypertarget{doxygen_usage}{}\input{doxygen_usage} +\chapter{Doxywizard usage}\label{doxywizard_usage}\hypertarget{doxywizard_usage}{}\input{doxywizard_usage} +\chapter{Configuration}\label{config}\hypertarget{config}{}\input{config} +\chapter{Special Commands}\label{commands}\hypertarget{commands}{}\input{commands} +\chapter{HTML commands}\label{htmlcmds}\hypertarget{htmlcmds}{}\input{htmlcmds} +\chapter{XML commands}\label{xmlcmds}\hypertarget{xmlcmds}{}\input{xmlcmds} +\part{Developers Manual} +\chapter{Doxygen's internals}\label{arch}\hypertarget{arch}{}\input{arch} +\chapter{Perl Module Output format}\label{perlmod}\hypertarget{perlmod}{}\input{perlmod} +\chapter{Internationalization}\label{langhowto}\hypertarget{langhowto}{}\input{langhowto} +\printindex +\end{document} diff --git a/doc/doxygen_usage.doc b/doc/doxygen_usage.doc new file mode 100644 index 0000000..40e5163 --- /dev/null +++ b/doc/doxygen_usage.doc @@ -0,0 +1,106 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page doxygen_usage Doxygen usage + +Doxygen is a command line based utility. Calling \c doxygen with the +\c --help option at the command line will give you a brief description of the +usage of the program. + +All options consist of a leading character <tt>-</tt>, +followed by one character and one or more arguments depending on the option. + +To generate a manual for your project you typically +need to follow these steps: +<ol> +<li> You document your source code with + special documentation blocks (see section \ref specialblock). +<li> You generate a configuration file (see section \ref config) by + calling doxygen with the \c -g option: +\verbatim +doxygen -g <config_file> +\endverbatim +<li> You edit the configuration file so it matches your project. + In the configuration file you can specify the input files and + a lot of optional information. +<li> You let doxygen generate the documentation, based on the settings in the + configuration file: +\verbatim +doxygen <config_file> +\endverbatim +</ol> + +If you have a configuration file generated with an older version of +doxygen, you can upgrade it to the current version by running doxygen +with the -u option. +\verbatim +doxygen -u <config_file> +\endverbatim +All configuration settings in the original configuration file will be copied +to the new configuration file. Any new options will have their default value. +Note that comments that you may have added in the original configuration file +will be lost. + +\section doxygen_finetune Fine-tuning the output +If you want to fine-tune the way the output looks, doxygen allows you +generate default style sheet, header, and footer files that you can edit +afterwards: +<ul> +<li>For HTML output, you can generate the default header file + (see \ref cfg_html_header "HTML_HEADER"), the default footer + (see \ref cfg_html_footer "HTML_FOOTER"), and the default style + sheet (see \ref cfg_html_stylesheet "HTML_STYLESHEET"), using the + following command: +\verbatim +doxygen -w html header.html footer.html stylesheet.css <config_file> +\endverbatim + The config_file is optional. When omitted doxygen will search for + a file named Doxyfile and process that. When this is also not found it + will used the default settings. + +<li>For LaTeX output, you can generate the first part of \c refman.tex + (see \ref cfg_latex_header "LATEX_HEADER") and the style sheet included + by that header (normally <code>doxygen.sty</code>), using: +\verbatim +doxygen -w latex header.tex doxygen.sty +\endverbatim +If you need non-default options (for instance to use pdflatex) you need +to make a config file with those options set correctly and then specify +that config file as the third argument. +<li>For RTF output, you can generate the default style sheet file (see + \ref cfg_rtf_stylesheet_file "RTF_STYLESHEET_FILE") using: +\verbatim +doxygen -w rtf rtfstyle.cfg +\endverbatim +</ul> +\warning When using a custom header you are responsible + for the proper inclusion of any scripts and style sheets that doxygen + needs, which is dependent on the configuration options and may changes + when upgrading to a new doxygen release. + +\note +<ul> +<li> If you do not want documentation for each item inside the configuration + file then you can use the optional \c -s option. This can use be + used in combination with the \c -u option, to add or strip the + documentation from an existing configuration file. + Please use the \c -s option if you send me a configuration file + as part of a bug report! +<li> To make doxygen read/write to standard input/output instead of from/to + a file, use \c - for the file name. +</ul> + +*/ diff --git a/doc/doxywizard.1 b/doc/doxywizard.1 new file mode 100644 index 0000000..e3f23c0 --- /dev/null +++ b/doc/doxywizard.1 @@ -0,0 +1,13 @@ +.TH DOXYWIZARD "1" "DATE" "doxywizard VERSION" "User Commands" +.SH NAME +doxywizard \- a tool to configure and run doxygen on your source files +.SH SYNOPSIS +.B doxywizard +.SH DESCRIPTION +Doxywizard is an interactive frontend to the doxygen tool to configure +and run doxygen on your source files. +.PP +You can optionally pass the name of a configuration file as the first argument +to load it at startup. +.SH SEE ALSO +doxygen(1) diff --git a/doc/doxywizard.gif b/doc/doxywizard.gif Binary files differnew file mode 100644 index 0000000..80bb636 --- /dev/null +++ b/doc/doxywizard.gif diff --git a/doc/doxywizard_expert.png b/doc/doxywizard_expert.png Binary files differnew file mode 100644 index 0000000..93fd4ee --- /dev/null +++ b/doc/doxywizard_expert.png diff --git a/doc/doxywizard_main.png b/doc/doxywizard_main.png Binary files differnew file mode 100644 index 0000000..e57c144 --- /dev/null +++ b/doc/doxywizard_main.png diff --git a/doc/doxywizard_menu.png b/doc/doxywizard_menu.png Binary files differnew file mode 100644 index 0000000..37adc46 --- /dev/null +++ b/doc/doxywizard_menu.png diff --git a/doc/doxywizard_page1.png b/doc/doxywizard_page1.png Binary files differnew file mode 100644 index 0000000..ee3181d --- /dev/null +++ b/doc/doxywizard_page1.png diff --git a/doc/doxywizard_page2.png b/doc/doxywizard_page2.png Binary files differnew file mode 100644 index 0000000..dc9b5a8 --- /dev/null +++ b/doc/doxywizard_page2.png diff --git a/doc/doxywizard_page3.png b/doc/doxywizard_page3.png Binary files differnew file mode 100644 index 0000000..f75e63f --- /dev/null +++ b/doc/doxywizard_page3.png diff --git a/doc/doxywizard_page4.png b/doc/doxywizard_page4.png Binary files differnew file mode 100644 index 0000000..e4f4361 --- /dev/null +++ b/doc/doxywizard_page4.png diff --git a/doc/doxywizard_usage.doc b/doc/doxywizard_usage.doc new file mode 100644 index 0000000..435661b --- /dev/null +++ b/doc/doxywizard_usage.doc @@ -0,0 +1,138 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page doxywizard_usage Doxywizard usage + +Doxywizard is a GUI front-end for configuring and running doxygen. + +When you start doxywizard it will display the main window +(the actual look depends on the OS used). + +\image html doxywizard_main.png "Main window" + +The windows shows the steps to take to configure and run doxygen. +The first step is to choose one of the ways to configure doxygen. +<dl> +<dt>Wizard<dd>Click this button to quickly configure the most important + settings and leave the rest of the options to their defaults. +<dt>Expert<dd>Click this button to gain access to the + \ref config "full range of configuration options". +<dt>Load<dd>Click this button to load an existing configuration file + from disk. +</dl> +Note that you can select multiple buttons in a row, for instance to first +configure doxygen using the Wizard and then fine tune the settings via +the Expert. + +After doxygen is configured you need to save the configuration as a file +to disk. This second step allows doxygen to use the configuration +and has the additional advantage that the configuration can be reused +to run doxygen with the same settings at a later point in time. + +Since some configuration options may use relative paths, the next step is +to select a directory from which to run doxygen. This is typically the root +of the source tree and will most of the time already be filled in correctly. + +Once the configuration file is saved and the working directory is set, you +can run doxygen based on the selected settings. Do this by pressing the +"Start" button. Once doxygen runs you can cancel it by clicking the same +button again. The output produced by doxygen is captured and shown in a log +window. Once doxygen finishes, the log can be saved as a text file. + +<h3>The Wizard Dialog</h3> + +If you select the Wizard button in step 1, then a dialog with +a number of tabs will appear. + +\image html doxywizard_page1.png "Wizard dialog: Project settings" + +The fields in the project tab speak for themselves. Once doxygen has finished +the Destination directory is where to look for the results. Doxygen will +put each output format in a separate sub-directory. + +\image html doxywizard_page2.png "Wizard dialog: Mode of operating" + +The mode tab allows you to select how doxygen will look at your sources. +The default is to only look for things that have been documented. + +You can also select how doxygen should present the results. +The latter does not affect the way doxygen parses your source code. + +\image html doxywizard_page3.png "Wizard dialog: Output to produce" + +You can select one or more of the output formats that doxygen should +produce. For HTML and LaTeX there are additional options. + +\image html doxywizard_page4.png "Wizard dialog: Diagrams to generate" + +Doxygen can produce a number of diagrams. Using the diagrams tab you +can select which ones to generate. For most diagrams the +dot tool of the <a href="http://www.graphviz.org">GraphViz</a> package +is needed (if you use the binary packages for MacOSX this +tool is already included). + +<h3>Expert dialog</h3> + +The Expert dialog has a number of tab fields, one +for each section in the configuration file. Each tab-field +contains a number of lines, one for each configuration option in +that section. + +The kind of input widget depends on the type of the configuration option. +<ul> +<li>For each boolean option (those options that are answered with YES or + NO in the configuration file) there is a check-box. +<li>For items taking one of a fixed set of values (like + \ref cfg_output_language "OUTPUT_LANGUAGE") a combo box is used. +<li>For items taking an integer value from a range, a spinbox is used. +<li>For free form string-type options there is a one line edit field +<li>For options taking a lists of strings, a one line edit field is + available, with a `+' button to add this string to the list and + a `-' button to remove the selected string from the list. There + is also a `*' button that, when pressed, + replaces the selected item in the list with the string entered in the + edit field. +<li>For file and folder entries, there are special buttons + that start a file selection dialog. +</ul> + +\image html doxywizard_expert.png "Some options from the Expert dialog" + +The get additional information about the meaning of an option, click +on the "Help" button at the bottom right of the dialog and then on the +item. A tooltip with additional information will appear. + +<h3>Menu options</h3> + +The GUI front-end has a menu with a couple of useful items + +\image html doxywizard_menu.png "File menu" + +<dl> +<dt>Open...<dd>This is the same as the "Load" button in the main window + and allows to open a configuration file from disk. +<dt>Save as..<dd>This is the same as the "Save" button in the main window + and can be used to save the current configuration settings to disk. +<dt>Recent configurations<dd>Allow to quickly load a recently saved + configuration. +<dt>Set as default...<dd>Stores the current configuration settings as the + default to use next time the GUI is started. You will be asked to + confirm the action. +<dt>Reset...<dd>Restores the factory defaults as the default settings to use. + You will be asked to confirm the action. +</dl> + +*/ diff --git a/doc/external.doc b/doc/external.doc new file mode 100644 index 0000000..013b7c2 --- /dev/null +++ b/doc/external.doc @@ -0,0 +1,120 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page external Linking to external documentation + +If your project depends on external libraries or tools, there are several +reasons to not include all sources for these with every run of doxygen: + +<dl> +<dt>Disk space:<dd> Some documentation may be available outside of the output + directory of doxygen already, for instance somewhere on the web. + You may want to link to these pages instead of generating the documentation + in your local output directory. +<dt>Compilation speed:<dd> External projects typically have a different update + frequency from your own project. It does not make much sense to let doxygen + parse the sources for these external project over and over again, even if + nothing has changed. +<dt>Memory:<dd> For very large source trees, letting doxygen parse all sources + may simply take too much of your system's memory. By dividing the sources + into several "packages", the sources of one package can be parsed by + doxygen, while all other packages that this package depends on, are + linked in externally. This saves a lot of memory. +<dt>Availability:<dd> For some projects that are documented with doxygen, + the sources may just not be available. +<dt>Copyright issues:<dd>If the external + package and its documentation are copyright someone else, it may be + better - or even necessary - to reference it rather than include a + copy of it with your project's documentation. When the author forbids + redistribution, this is necessary. If the author requires compliance + with some license condition as a precondition of redistribution, and + you do not want to be bound by those conditions, referring to their + copy of their documentation is preferable to including a copy. + +</dl> + +If any of the above apply, you can use doxygen's tag file mechanism. +A tag file is basically a compact representation of the entities found in the +external sources. Doxygen can both generate and read tag files. + +To generate a tag file for your project, simply put the name of the +tag file after the \ref cfg_generate_tagfile "GENERATE_TAGFILE" option in +the configuration file. + +To combine the output of one or more external projects with your own project +you should specify the name of the tag files after +the \ref cfg_tagfiles "TAGFILES" option in the configuration file. + +A tag file typically only contains a relative location of the documentation from the +point where doxygen was run. So when you include a tag file in other project +you have to specify where the external documentation is located in relation this project. +You can do this in the configuration file by assigning the (relative) location to the +tag files specified after the \ref cfg_tagfiles "TAGFILES" configuration +option. If you use a relative path it should be relative with respect to +the directory where the HTML output of your project is generated; so a relative path +from the HTML output directory of a project to the HTML output of the other project that +is linked to. + +\par Example: +Suppose you have a project \c proj that uses two external +projects called \c ext1 and \c ext2. +The directory structure looks as follows: + +\par +\verbatim +<root> + +- proj + | +- html HTML output directory for proj + | +- src sources for proj + | |- proj.cpp + +- ext1 + | +- html HTML output directory for ext1 + | |- ext1.tag tag file for ext1 + +- ext2 + | +- html HTML output directory for ext2 + | |- ext2.tag tag file for ext2 + |- proj.cfg doxygen configuration file for proj + |- ext1.cfg doxygen configuration file for ext1 + |- ext2.cfg doxygen configuration file for ext2 +\endverbatim + +\par +Then the relevant parts of the configuration files look as follows: +\par +proj.cfg: +\verbatim +OUTPUT_DIRECTORY = proj +INPUT = proj/src +TAGFILES = ext1/ext1.tag=../../ext1/html \ + ext2/ext2.tag=../../ext2/html +\endverbatim +ext1.cfg: +\verbatim +OUTPUT_DIRECTORY = ext1 +GENERATE_TAGFILE = ext1/ext1.tag +\endverbatim +ext2.cfg: +\verbatim +OUTPUT_DIRECTORY = ext2 +GENERATE_TAGFILE = ext2/ext2.tag +\endverbatim + +\htmlonly +Go to the <a href="faq.html">next</a> section or return to the + <a href="index.html">index</a>. +\endhtmlonly + +*/ diff --git a/doc/faq.doc b/doc/faq.doc new file mode 100644 index 0000000..0475aa7 --- /dev/null +++ b/doc/faq.doc @@ -0,0 +1,299 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page faq Frequently Asked Questions + +<ol> +<li><b>How to get information on the index page in HTML?</b> +<p> +You should use the \\mainpage command inside a comment block like this: +\verbatim +/*! \mainpage My Personal Index Page + * + * \section intro_sec Introduction + * + * This is the introduction. + * + * \section install_sec Installation + * + * \subsection step1 Step 1: Opening the box + * + * etc... + */ +\endverbatim + +<li><b>Help, some/all of the members of my class / file / namespace + are not documented?</b> + + Check the following: + <ol> + <li>Is your class / file / namespace documented? If not, it will not + be extracted from the sources unless \c EXTRACT_ALL is set to \c YES + in the config file. + <li>Are the members private? If so, you must set \c EXTRACT_PRIVATE to \c YES + to make them appear in the documentation. + <li>Is there a function macro in your class that does not end with a + semicolon (e.g. MY_MACRO())? If so then you have to instruct + doxygen's preprocessor to remove it. + + This typically boils down to the following settings in the config file: + + \verbatim +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = YES +EXPAND_ONLY_PREDEF = YES +PREDEFINED = MY_MACRO()= + \endverbatim + + Please read the \ref preprocessing "preprocessing" section of the + manual for more information. + </ol> + +<li><b>When I set EXTRACT_ALL to NO none of my functions are shown in the + documentation.</b> + +In order for global functions, variables, enums, typedefs, and defines +to be documented you should document the file in which these commands are +located using a comment block containing a \\file (or \@file) +command. + +Alternatively, you can put all members in a group (or module) +using the \\ingroup command and then document the group using a comment +block containing the \\defgroup command. + +For member functions or functions that are part of a namespace you should +document either the class or namespace. + +<li><b>How can I make doxygen ignore some code fragment?</b> + +The new and easiest way is to add one comment block +with a \ref cmdcond "\\cond" command at the start and one comment block +with a \ref cmdendcond "\\endcond" command at the end of the piece of +code that should be ignored. This should be within the same file of course. + +But you can also use Doxygen's preprocessor for this: +If you put +\verbatim +#ifndef DOXYGEN_SHOULD_SKIP_THIS + + /* code that must be skipped by Doxygen */ + +#endif /* DOXYGEN_SHOULD_SKIP_THIS */ +\endverbatim +around the blocks that should be hidden and put: +\verbatim + PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS +\endverbatim +in the config file then all blocks should be skipped by Doxygen as long +as <code>PREPROCESSING = YES</code>. + +<li><b>How can I change what is after the <code>\#include</code> in the class documentation?</b> + +In most cases you can use STRIP_FROM_INC_PATH to strip a user defined +part of a path. + +You can also document your class as follows + +\verbatim +/*! \class MyClassName include.h path/include.h + * + * Docs for MyClassName + */ +\endverbatim + +To make doxygen put <br><br> +<code> +\#include \<path/include.h\> +</code> + +in the documentation of the class MyClassName regardless of the name of the actual +header file in which the definition of MyClassName is contained. + +If you want doxygen to show that the include file should be included using +quotes instead of angle brackets you should type: +\verbatim +/*! \class MyClassName myhdr.h "path/myhdr.h" + * + * Docs for MyClassName + */ +\endverbatim + +<li><b>How can I use tag files in combination with compressed HTML?</b> + +If you want to refer from one compressed HTML file +\c a.chm to another compressed HTML file +called \c b.chm, the +link in \c a.chm must have the following format: +\verbatim +<a href="b.chm::/file.html"> +\endverbatim +Unfortunately this only works if both compressed HTML files are in the same +directory. + +As a result you must rename the generated \c index.chm files for all projects +into something unique and put all <code>.chm</code> files in one directory. + +Suppose you have a project \e a referring to a project \e b using tag file +\c b.tag, then you could rename the \c index.chm for project \e a into +\c a.chm and the \c index.chm for project \e b into \c b.chm. In the +configuration file for project \e a you write: +\verbatim +TAGFILES = b.tag=b.chm:: +\endverbatim +or you can use \c installdox to set the links as follows: +\verbatim +installdox -lb.tag@b.chm:: +\endverbatim + +<li><b>I don't like the quick index that is put above each HTML page, what do I do?</b> + +You can disable the index by setting DISABLE_INDEX to YES. Then you can +put in your own header file by writing your own header and feed that to +HTML_HEADER. + +<li><b>The overall HTML output looks different, while I only wanted to + use my own html header file</b> + +You probably forgot to include the stylesheet <code>doxygen.css</code> that +doxygen generates. You can include this by putting +\verbatim +<LINK HREF="doxygen.css" REL="stylesheet" TYPE="text/css"> +\endverbatim +in the HEAD section of the HTML page. + +<li><b>Why does doxygen use Qt?</b> + +The most important reason is to have a platform abstraction for most +Unices and Windows by means of the QFile, QFileInfo, QDir, QDate, +QTime and QIODevice classes. +Another reason is for the nice and bug free utility classes, like QList, +QDict, QString, QArray, QTextStream, QRegExp, QXML etc. + +The GUI front-end doxywizard uses Qt for... well... the GUI! + +<li><b>How can I exclude all test directories from my directory tree?</b> + +Simply put an exclude pattern like this in the configuration file: + +\verbatim +EXCLUDE_PATTERNS = */test/* +\endverbatim + +<li><b>Doxygen automatically generates a link to the + class MyClass somewhere in the running text. + How do I prevent that at a certain place?</b> + +Put a \% in front of the class name. Like this: \%MyClass. Doxygen will then +remove the % and keep the word unlinked. + +<li><b>My favorite programming language is X. Can I still use doxygen?</b> + +No, not as such; doxygen needs to understand the structure of what it reads. +If you don't mind spending some time on it, there are several options: +- If the grammar of X is close to C or C++, then it is probably not too hard to + tweak src/scanner.l a bit so the language is supported. This is done + for all other languages directly supported by doxygen + (i.e. Java, IDL, C#, PHP). +- If the grammar of X is somewhat different than you can write an input + filter that translates X into something similar enough to C/C++ for + doxygen to understand (this approach is taken for VB, Object Pascal, and + Javascript, see http://www.stack.nl/~dimitri/doxygen/download.html#helpers). +- If the grammar is completely different one could write a parser for X and + write a backend that produces a similar syntax tree as is done by + src/scanner.l (and also by src/tagreader.cpp while reading tag files). + +<li><b>Help! I get the cryptic message + "input buffer overflow, can't enlarge buffer because scanner uses REJECT"</b> + +This error happens when doxygen's lexical scanner has a rule that matches +more than 256K of input characters in one go. I've seen this happening +on a very large generated file (\>256K lines), where the built-in preprocessor +converted it into an empty file (with \>256K of newlines). Another case +where this might happen is if you have lines in your code with more than +256K characters. + +If you have run into such a case and want me to fix it, you +should send me a code fragment that triggers the message. To work around +the problem, put some line-breaks into your file, split it up into smaller +parts, or exclude it from the input using EXCLUDE. + +<li><b>When running make in the latex dir I get "TeX capacity exceeded". Now what?</b> + +You can edit the texmf.cfg file to increase the default values of the +various buffers and then run "texconfig init". + +<li><b>Why are dependencies via STL classes not shown in the dot graphs?</b> + +Doxygen is unaware of the STL classes, unless the option BUILTIN_STL_SUPPORT is +turned on. + +<li><b>I have problems getting the search engine to work with PHP5 and/or windows</b> + +Please read <a href="searchengine.html">this</a> for hints on where to look. + +<li><b>Can I configure doxygen from the command line?</b> + +Not via command line options, but doxygen can read from <code>stdin</code>, +so you can pipe things through it. Here's an example how to override an option +in a configuration file from the command line (assuming a UNIX environment): + +\verbatim +( cat Doxyfile ; echo "PROJECT_NUMBER=1.0" ) | doxygen - +\endverbatim + +For Windows the following would do the same: + +\verbatim +( type Doxyfile & echo PROJECT_NUMBER=1.0 ) | doxygen.exe - +\endverbatim + +If multiple options with the same name are specified then doxygen will use +the last one. To append to an existing option you can use the += operator. + +<li><b>How did doxygen get its name?</b> + +Doxygen got its name from playing with the words +documentation and generator. + +\verbatim +documentation -> docs -> dox +generator -> gen +\endverbatim + +At the time I was looking into lex and yacc, where a lot of things start with +"yy", so the "y" slipped in and made things pronounceable +(the proper pronouncement is Docs-ee-gen, so with a long "e"). + +<li><b>What was the reason to develop doxygen?</b> + +I once wrote a GUI widget based on the Qt library (it is still available at +http://qdbttabular.sourceforge.net/ and maintained by Sven Meyer). +Qt had nicely generated documentation (using an internal tool which +they didn't want to release) and I wrote similar docs by hand. +This was a nightmare to maintain, so I wanted a similar tool. I looked at +Doc++ but that just wasn't good enough (it didn't support signals and +slots and did not have the Qt look and feel I had grown to like), +so I started to write my own tool... + +</ol> + +\htmlonly +Go to the <a href="trouble.html">next</a> section or return to the + <a href="index.html">index</a>. +\endhtmlonly + +*/ + diff --git a/doc/features.doc b/doc/features.doc new file mode 100644 index 0000000..46a6219 --- /dev/null +++ b/doc/features.doc @@ -0,0 +1,116 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page features Features + +\addindex features +<UL> +<li>Requires very little overhead from the writer of the documentation. + Plain text will do, Markdown is support, and for more fancy or + structured output HTML tags and/or some of doxygen's special commands + can be used. +<li>Cross platform: works on Windows and many Unix flavors (including Linux and + MacOSX). +<li>Indexes, organizes and generates browsable and cross-referenced + output even from undocumented code. +<li>Generates structured XML output for parsed sources, which can be + used by external tools. +<li>Supports C/C++, Java, (Corba and Microsoft) Java, Python, VHDL, PHP + IDL, C#, Fortran, TCL, Objective-C 2.0, and to some extent D sources. +<li>Supports documentation of files, namespaces, packages, classes, + structs, unions, templates, variables, functions, typedefs, enums and + defines. +<li>JavaDoc (1.1), qdoc3 (partially), and ECMA-334 (C# spec.) compatible. +<li>Comes with a GUI frontend (Doxywizard) to ease editing the options and + run doxygen. The GUI is available on Windows, Linux, and MacOSX. +<li>Automatically generates class and collaboration diagrams in HTML (as clickable + image maps) and \f$\mbox{\LaTeX}\f$ (as Encapsulated PostScript images). +<li>Uses the `dot` tool of the Graphviz tool kit to generate + include dependency graphs, collaboration diagrams, call graphs, directory structure + graphs, and graphical class hierarchy graphs. +<li>Allows grouping of entities in modules and creating a hierarchy of modules. +<li>Flexible comment placement: Allows you to put documentation in the + header file (before the + declaration of an entity), source file (before the definition of an entity) + or in a separate file. +<li>Generates a list of all members of a class (including any inherited + members) along with their protection level. +<li>Outputs documentation in on-line format (XHTML and UNIX man page) and + off-line format (\f$\mbox{\LaTeX}\f$ and RTF) simultaneously + (any of these can be disabled if desired). All formats are optimized for + ease of reading. <br> + Furthermore, compressed HTML can be generated from HTML output using + Microsoft's HTML Help Workshop (Windows only) and PDF can be generated + from the \f$\mbox{\LaTeX}\f$ output. +<li>Support for various third party help formats including HTML Help, + docsets, Qt-Help, and eclipse help. +<li>Includes a full C preprocessor to allow proper parsing of conditional + code fragments and to allow expansion of all or part of macros definitions. +<li>Automatically detects public, protected and private sections, as well as + the Qt specific signal and slots sections. Extraction of private class + members is optional. +<li>Automatically generates references to documented classes, files, namespaces + and members. Documentation of global functions, global variables, + typedefs, defines and enumerations is also supported. +<li>References to base/super classes and inherited/overridden members are + generated automatically. +<li>Includes a fast, rank based search engine to search for strings or words + in the class and member documentation (PHP based). +<li>Includes an Javascript based live search feature to search for symbols + as you type (for small to medium sized projects). +<li>You can type normal HTML tags in your documentation. Doxygen will convert + them to their equivalent \f$\mbox{\LaTeX}\f$, RTF, and man-page + counterparts automatically. +<li>Allows references to documentation generated for other (doxygen documented) + projects (or another part of the same project) in a location independent way. +<li>Allows inclusion of source code examples that are automatically + cross-referenced with the documentation. +<li>Inclusion of undocumented classes is also supported, allowing to quickly + learn the structure and interfaces of a (large) piece of code without + looking into the implementation details. +<li>Allows automatic cross-referencing of (documented) entities with their + definition in the source code. +<li>All source code fragments are syntax highlighted for ease of reading. +<li>Allows inclusion of function/member/class definitions in the documentation. +<li>All options are read from an easy to edit and (optionally) annotated + configuration file. +<li>Documentation and search engine can be transferred to another + location or machine without regenerating the documentation. +<li>Supports many different character encodings and uses UTF-8 internally and + for the generated output. +<li>Doxygen can generate a layout which you can use and edit to change the + layout of each page. +<li>There more than a 100 configurable options to fine-tune the output. +<li>Can cope with large projects easily. +</UL> + +Although doxygen can now be used in any project written in a language that is +supported by doxygen, initially it was specifically designed to be used for projects +that make use of Qt Software's +<A HREF="http://www.trolltech.com/products/qt.html">Qt toolkit</A>. I have tried to +make doxygen `Qt-compatible'. That is: Doxygen can read the documentation contained in +the Qt source code and create a class browser that looks quite similar to the +one that is generated by Qt Software. Doxygen understands the C++ extensions +used by Qt such as signals and slots and many of the markup commands used in the Qt sources. + +Doxygen can also automatically generate links to existing documentation +that was generated with Doxygen or with Qt's non-public class browser +generator. For a Qt based project this means that whenever you refer to +members or classes belonging to the Qt toolkit, a link will be generated to +the Qt documentation. This is done independent of where this documentation +is located! + +*/ diff --git a/doc/formulas.doc b/doc/formulas.doc new file mode 100644 index 0000000..bc23a11 --- /dev/null +++ b/doc/formulas.doc @@ -0,0 +1,112 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page formulas Including formulas + +Doxygen allows you to put \f$\mbox{\LaTeX}\f$ formulas in the +output (this works only for the HTML and \f$\mbox{\LaTeX}\f$ output, +not for the RTF nor for the man page output). To be able to include +formulas (as images) in the HTML documentation, you will also need to +have the following tools installed +<ul> +<li>\c latex: the \f$\mbox{\LaTeX}\f$ compiler, needed to parse the formulas. + To test I have used the teTeX 1.0 distribution. +<li>\c dvips: a tool to convert DVI files to PostScript files + I have used version 5.92b from Radical Eye software for testing. +<li>\c gs: the GhostScript interpreter for converting PostScript files + to bitmaps. I have used Aladdin GhostScript 8.0 for testing. +</ul> +For the HTML output there is also an alternative solution using +<a href="http://www.mathjax.org">MathJax</a> which does not +require the above tools. If you enable \ref cfg_use_mathjax "USE_MATHJAX" in +the config then the latex formulas will be copied to the HTML "as is" and a +client side javascript will parse them and turn them into (interactive) images. + +There are three ways to include formulas in the documentation. +<ol> +<li>Using in-text formulas that appear in the running text. + These formulas should be put between a pair of \\f\$ + commands, so +\verbatim + The distance between \f$(x_1,y_1)\f$ and \f$(x_2,y_2)\f$ is + \f$\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}\f$. +\endverbatim results in: + + The distance between \f$(x_1,y_1)\f$ and \f$(x_2,y_2)\f$ is + \f$\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}\f$. +<br> +<li>Unnumbered displayed formulas that are centered on a separate line. + These formulas should be put between \\f[ and \\f] commands. + An example: +\verbatim + \f[ + |I_2|=\left| \int_{0}^T \psi(t) + \left\{ + u(a,t)- + \int_{\gamma(t)}^a + \frac{d\theta}{k(\theta,t)} + \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi + \right\} dt + \right| + \f] +\endverbatim + results in: + \f[ + |I_2|=\left| \int_{0}^T \psi(t) + \left\{ + u(a,t)- + \int_{\gamma(t)}^a + \frac{d\theta}{k(\theta,t)} + \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi + \right\} dt + \right| + \f] +<li>Formulas or other latex elements that are not in a math + environment can be specified using \\f{environment}, where + \c environment is the name of the \f$\mbox{\LaTeX}\f$ environment, + the corresponding end command is \\f}. Here is an example for an + equation array +\verbatim + \f{eqnarray*}{ + g &=& \frac{Gm_2}{r^2} \\ + &=& \frac{(6.673 \times 10^{-11}\,\mbox{m}^3\,\mbox{kg}^{-1}\, + \mbox{s}^{-2})(5.9736 \times 10^{24}\,\mbox{kg})}{(6371.01\,\mbox{km})^2} \\ + &=& 9.82066032\,\mbox{m/s}^2 + \f} +\endverbatim + which results in: + \f{eqnarray*} + g &=& \frac{Gm_2}{r^2} \\ + &=& \frac{(6.673 \times 10^{-11}\,\mbox{m}^3\,\mbox{kg}^{-1}\, + \mbox{s}^{-2})(5.9736 \times 10^{24}\,\mbox{kg})}{(6371.01\,\mbox{km})^2} \\ + &=& 9.82066032\,\mbox{m/s}^2 + \f} +</ol> +For the first two commands one should make sure formulas contain +valid commands in \f$\mbox{\LaTeX}\f$'s math-mode. For the third command +the section should contain valid command for the specific environment. + +\warning Currently, doxygen is not very fault tolerant in recovering +from typos in formulas. It may be necessary to remove the +file <code>formula.repository</code> that is written to the html directory to +get rid of an incorrect formula. + +\htmlonly +Go to the <a href="diagrams.html">next</a> section or return to the + <a href="index.html">index</a>. +\endhtmlonly + +*/ diff --git a/doc/grouping.doc b/doc/grouping.doc new file mode 100644 index 0000000..56f19f7 --- /dev/null +++ b/doc/grouping.doc @@ -0,0 +1,228 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page grouping Grouping + +Doxygen has three mechanisms to group things together. +One mechanism works at a global level, creating a new page +for each group. These groups are called \ref modules "'modules'" in the documentation. +The second mechanism works within a member list of some compound entity, +and is referred to as a \ref memgroup "'member groups'". +For \ref cmdpage "pages" there is a third grouping mechanism referred to +as \ref subpaging "subpaging". + +\section modules Modules + +Modules are a way to group things together on a separate page. You +can document a group as a whole, as well as all individual members. +Members of a group can be files, namespaces, classes, functions, +variables, enums, typedefs, and defines, but also other groups. + +To define a group, you should put the \ref cmddefgroup "\\defgroup" +command in a special comment block. The first argument of the command +is a label that should uniquely identify the group. +The second argument is the name or title of the group as it should appear +in the documentation. + +You can make an entity a member of a specific group by putting +a \ref cmdingroup "\\ingroup" command inside its documentation block. + +To avoid putting \ref cmdingroup "\\ingroup" commands in the documentation +for each member you can also group members together by the +open marker <code>\@{</code> before the group and the +closing marker <code>\@}</code> after the group. The markers can +be put in the documentation of the group definition or in a separate +documentation block. + +Groups themselves can also be nested using these grouping markers. + +You will get an error message when you use the same group label more than once. +If you don't want doxygen to enforce unique labels, then you can +use \ref cmdaddtogroup "\\addtogroup" instead of +\ref cmddefgroup "\\defgroup". +It can be used exactly like \ref cmddefgroup "\\defgroup", +but when the group has been defined already, then it silently merges the +existing documentation with the new one. +The title of the group is optional for this command, so you can use +\verbatim +/** \addtogroup <label> + * @{ + */ +... + +/** @}*/ +\endverbatim +to add additional members to a group that is defined in more detail elsewhere. + +Note that compound entities (like classes, files and namespaces) can +be put into multiple groups, but members (like variable, functions, typedefs +and enums) can only be a member of one group +(this restriction is in place to avoid ambiguous linking targets in case +a member is not documented in the context of its class, namespace +or file, but only visible as part of a group). + +Doxygen will put members into the group whose definition has +the highest "priority": e.g. An explicit \ref cmdingroup "\\ingroup" overrides +an implicit grouping definition via <code>\@{</code> <code>\@}</code>. +Conflicting grouping definitions with the same priority trigger a warning, +unless one definition was for a member without any explicit documentation. + +The following example puts VarInA into group A and silently resolves +the conflict for IntegerVariable by putting it into group IntVariables, +because the second instance of IntegerVariable +is undocumented: + +\verbatim + +/** + * \ingroup A + */ +extern int VarInA; + +/** + * \defgroup IntVariables Global integer variables + * @{ + */ + +/** an integer variable */ +extern int IntegerVariable; + +/**@}*/ + +.... + +/** + * \defgroup Variables Global variables + */ +/**@{*/ + +/** a variable in group A */ +int VarInA; + +int IntegerVariable; + +/**@}*/ +\endverbatim + +The \ref cmdref "\\ref" command can be used to refer to a group. +The first argument of the \\ref command should be group's label. +To use a custom link name, you can put the name of the links in +double quotes after the label, as shown by the following example +\verbatim +This is the \ref group_label "link" to this group. +\endverbatim + +The priorities of grouping definitions are (from highest to lowest): +\ref cmdingroup "\\ingroup", \ref cmddefgroup "\\defgroup", +\ref cmdaddtogroup "\\addtogroup", \ref cmdweakgroup "\\weakgroup". +The last command is exactly like \ref cmdaddtogroup "\\addtogroup" +with a lower priority. It was added to allow "lazy" grouping +definitions: you can use commands with a higher priority in your .h +files to define the hierarchy and \ref cmdweakgroup "\\weakgroup" +in .c files without having to duplicate the hierarchy exactly. + +\par Example: +\verbinclude group.cpp + +\htmlonly +Click <a href="$(DOXYGEN_DOCDIR)/examples/group/html/modules.html">here</a> +for the corresponding HTML documentation that is generated by Doxygen. +\endhtmlonly + +\section memgroup Member Groups + +If a compound (e.g. a class or file) has many members, it is often +desired to group them together. Doxygen already automatically groups +things together on type and protection level, but maybe you feel that +this is not enough or that that default grouping is wrong. +For instance, because you feel that members of different (syntactic) +types belong to the same (semantic) group. + +A member group is defined by +a +\verbatim +///@{ + ... +///@} +\endverbatim +block or a +\verbatim +/**@{*/ + ... +/**@}*/ +\endverbatim +block if you prefer C style +comments. Note that the members of the group should be +physically inside the member group's body. + +Before the opening marker of a block a separate comment block may be +placed. This block should contain the \ref cmdname "@@name" +(or \ref cmdname "\\name") command and is used to specify the header +of the group. Optionally, the comment block may also contain more +detailed information about the group. + +Nesting of member groups is not allowed. + +If all members of a member group inside a class have the same type +and protection level (for instance all are static public members), +then the whole member group is displayed as a subgroup of +the type/protection level group (the group is displayed as a +subsection of the "Static Public Members" section for instance). +If two or more members have different types, then the group is put +at the same level as the automatically generated groups. +If you want to force all member-groups of a class to be at the top level, +you should put a \ref cmdnosubgrouping "\\nosubgrouping" command inside the +documentation of the class. + +\par Example: +\verbinclude memgrp.cpp + +\htmlonly +Click <a href="$(DOXYGEN_DOCDIR)/examples/memgrp/html/class_test.html">here</a> +for the corresponding HTML documentation that is generated by Doxygen. +\endhtmlonly + +Here Group1 is displayed as a subsection of the "Public Members". And +Group2 is a separate section because it contains members with +different protection levels (i.e. public and protected). + +\htmlonly +Go to the <a href="formulas.html">next</a> section or return to the + <a href="index.html">index</a>. +\endhtmlonly + +\section subpaging Subpaging + +Information can be grouped into pages using the \ref cmdpage "\\page" and +\ref cmdsubpage "\\mainpage" commands. Normally, this results in a +flat list of pages, where the "main" page is the first in the list. + +Instead of adding structure using the approach described in section +\ref modules "modules" it is often more natural and convenient to add +additional structure to the pages using the \ref cmdsubpage "\\subpage" +command. + +For a page A the \\subpage command adds a link to another page B and at +the same time makes page B a subpage of A. This has the effect of making +two groups GA and GB, where GB is part of GA, page A is put in group GA, +and page B is put in group GB. + +\htmlonly +Go to the <a href="formulas.html">next</a> section or return to the + <a href="index.html">index</a>. +\endhtmlonly + +*/ diff --git a/doc/htmlcmds.doc b/doc/htmlcmds.doc new file mode 100644 index 0000000..d4af0f9 --- /dev/null +++ b/doc/htmlcmds.doc @@ -0,0 +1,219 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page htmlcmds HTML Commands + +Here is a list of all HTML commands that may be used inside the +documentation. Note that although these HTML tags are translated to the +proper commands for output formats other than HTML, all attributes +of a HTML tag are passed on to the HTML output only +(the HREF and NAME attributes for the A tag are the only exception). + +<ul> +<li><tt>\<A HREF="..."\></tt> Starts a hyperlink + (if supported by the output format). +<li><tt>\<A NAME="..."\></tt> Starts an named anchor + (if supported by the output format). +<li><tt>\</A\></tt> Ends a link or anchor +<li><tt>\<B\></tt> Starts a piece of text displayed in a bold font. +<li><tt>\</B\></tt> Ends a <tt>\<B\></tt> section. +<li><tt>\<BLOCKQUOTE\></tt> Starts a quotation block. +<li><tt>\</BLOCKQUOTE\></tt> Ends the quotation block. +<li><tt>\<BODY\></tt> Does not generate any output. +<li><tt>\</BODY\></tt> Does not generate any output. +<li><tt>\<BR\></tt> Forces a line break. +<li><tt>\<CENTER\></tt> starts a section of centered text. +<li><tt>\</CENTER\></tt> ends a section of centered text. +<li><tt>\<CAPTION\></tt> Starts a caption. Use within a table only. +<li><tt>\</CAPTION\></tt> Ends a caption. Use within a table only. +<li><tt>\<CODE\></tt> Starts a piece of text displayed in a typewriter font. + Note that for C# code, this command is equivalent to + \ref cmdcode "\\code". +<li><tt>\</CODE\></tt> Ends a <tt>\<CODE\></tt> section. + Note that for C# code, this command is equivalent to + \ref cmdendcode "\\endcode". +<li><tt>\<DD\></tt> Starts an item description. +<li><tt>\<DFN\></tt> Starts a piece of text displayed in a typewriter font. +<li><tt>\</DFN\></tt> Ends a <tt>\<DFN\></tt> section. +<li><tt>\<DIV></tt> Starts a section with a specific style (HTML only) +<li><tt>\</DIV></tt> Ends a section with a specific style (HTML only) +<li><tt>\<DL\></tt> Starts a description list. +<li><tt>\</DL\></tt> Ends a description list. +<li><tt>\<DT\></tt> Starts an item title. +<li><tt>\</DT\></tt> Ends an item title. +<li><tt>\<EM\></tt> Starts a piece of text displayed in an italic font. +<li><tt>\</EM\></tt> Ends a <tt>\<EM\></tt> section. +<li><tt>\<FORM\></tt> Does not generate any output. +<li><tt>\</FORM\></tt> Does not generate any output. +<li><tt>\<HR\></tt> Writes a horizontal ruler. +<li><tt>\<H1\></tt> Starts an unnumbered section. +<li><tt>\</H1\></tt> Ends an unnumbered section. +<li><tt>\<H2\></tt> Starts an unnumbered subsection. +<li><tt>\</H2\></tt> Ends an unnumbered subsection. +<li><tt>\<H3\></tt> Starts an unnumbered subsubsection. +<li><tt>\</H3\></tt> Ends an unnumbered subsubsection. +<li><tt>\<I\></tt> Starts a piece of text displayed in an italic font. +<li><tt>\<INPUT\></tt> Does not generate any output. +<li><tt>\</I\></tt> Ends a <tt>\<I\></tt> section. +<li><tt>\<IMG\></tt> This command is written with attributes to the HTML output only. +<li><tt>\<LI\></tt> Starts a new list item. +<li><tt>\</LI\></tt> Ends a list item. +<li><tt>\<META\></tt> Does not generate any output. +<li><tt>\<MULTICOL\></tt> ignored by doxygen. +<li><tt>\</MUTLICOL\></tt> ignored by doxygen. +<li><tt>\<OL\></tt> Starts a numbered item list. +<li><tt>\</OL\></tt> Ends a numbered item list. +<li><tt>\<P\></tt> Starts a new paragraph. +<li><tt>\</P\></tt> Ends a paragraph. +<li><tt>\<PRE\></tt> Starts a preformatted fragment. +<li><tt>\</PRE\></tt> Ends a preformatted fragment. +<li><tt>\<SMALL\></tt> Starts a section of text displayed in a smaller font. +<li><tt>\</SMALL\></tt> Ends a <tt>\<SMALL\></tt> section. +<li><tt>\<SPAN></tt> Starts an inline text fragment with a specific style (HTML only) +<li><tt>\</SPAN></tt> Ends an inline text fragment with a specific style (HTML only) +<li><tt>\<STRONG\></tt> Starts a section of bold text. +<li><tt>\</STRONG\></tt> Ends a section of bold text. +<li><tt>\<SUB\></tt> Starts a piece of text displayed in subscript. +<li><tt>\</SUB\></tt> Ends a <tt>\<SUB\></tt> section. +<li><tt>\<SUP\></tt> Starts a piece of text displayed in superscript. +<li><tt>\</SUP\></tt> Ends a <tt>\</SUP\></tt> section. +<li><tt>\<TABLE\></tt> starts a table. +<li><tt>\</TABLE\></tt> ends a table. +<li><tt>\<TD\></tt> Starts a new table data element. +<li><tt>\</TD\></tt> Ends a table data element. +<li><tt>\<TH\></tt> Starts a new table header. +<li><tt>\</TH\></tt> Ends a table header. +<li><tt>\<TR\></tt> Starts a new table row. +<li><tt>\</TR\></tt> Ends a table row. +<li><tt>\<TT\></tt> Starts a piece of text displayed in a typewriter font. +<li><tt>\</TT\></tt> Ends a <tt>\<TT\></tt> section. +<li><tt>\<KBD\></tt> Starts a piece of text displayed in a typewriter font. +<li><tt>\</KBD\></tt> Ends a <tt>\<KBD\></tt> section. +<li><tt>\<UL\></tt> Starts an unnumbered item list. +<li><tt>\</UL\></tt> Ends an unnumbered item list. +<li><tt>\<VAR\></tt> Starts a piece of text displayed in an italic font. +<li><tt>\</VAR\></tt> Ends a <tt>\<VAR\></tt> section. +</ul> + +The special HTML character entities that are recognized by Doxygen: + +<ul> +<li><tt>\©</tt> the copyright symbol +<li><tt>\&tm;</tt> the trade mark symbol +<li><tt>\®</tt> the registered trade mark symbol +<li><tt>\<</tt> less-than symbol +<li><tt>\></tt> greater-than symbol +<li><tt>\&</tt> ampersand +<li><tt>\'</tt> single quotation mark (straight) +<li><tt>\"</tt> double quotation mark (straight) +<li><tt>\‘</tt> left single quotation mark +<li><tt>\’</tt> right single quotation mark +<li><tt>\“</tt> left double quotation mark +<li><tt>\”</tt> right double quotation mark +<li><tt>\–</tt> n-dash (for numeric ranges, e.g. 2–8) +<li><tt>\—</tt> m-dash (for parenthetical punctuation — like this) +<li><tt>\&?uml;</tt> where ? is one of {A,E,I,O,U,Y,a,e,i,o,u,y}, + writes a character with a diaeresis accent (like ä). +<li><tt>\&?acute;</tt> where ? is one of {A,E,I,O,U,Y,a,e,i,o,u,y}, + writes a character with a acute accent (like á). +<li><tt>\&?grave;</tt> where ? is one of {A,E,I,O,U,a,e,i,o,u,y}, + writes a character with a grave accent (like à). +<li><tt>\&?circ;</tt> where ? is one of {A,E,I,O,U,a,e,i,o,u,y}, + writes a character with a circumflex accent (like â). +<li><tt>\&?tilde;</tt> where ? is one of {A,N,O,a,n,o}, + writes a character with a tilde accent (like ã). +<li><tt>\ß</tt> write a sharp s (i.e. ß) to the output. +<li><tt>\&?cedil;</tt> where ? is one of {c,C}, + writes a c-cedille (like ç). +<li><tt>\&?ring;</tt> where ? is one of {a,A}, + writes an <tt>a</tt> with a ring (like å). +<li><tt>\ </tt> a non breakable space. +<li><tt>\Γ</tt> Greek letter Gamma Γ. +<li><tt>\Δ</tt> Greek letter Delta Δ. +<li><tt>\Θ</tt> Greek letter Theta Θ. +<li><tt>\Λ</tt> Greek letter Lambda Λ. +<li><tt>\Ξ</tt> Greek letter Xi Ξ. +<li><tt>\Π</tt> Greek letter Pi Π. +<li><tt>\Σ</tt> Greek letter Sigma Σ. +<li><tt>\Υ</tt> Greek letter Upsilon Υ. +<li><tt>\Φ</tt> Greek letter Phi Φ. +<li><tt>\Ψ</tt> Greek letter Psi Ψ. +<li><tt>\Ω</tt> Greek letter Omega Ω. +<li><tt>\α</tt> Greek letter alpha α. +<li><tt>\β</tt> Greek letter beta β. +<li><tt>\γ</tt> Greek letter gamma γ. +<li><tt>\δ</tt> Greek letter delta δ. +<li><tt>\ε</tt> Greek letter epsilon ε. +<li><tt>\ζ</tt> Greek letter zeta ζ. +<li><tt>\η</tt> Greek letter eta η. +<li><tt>\θ</tt> Greek letter theta θ. +<li><tt>\ι</tt> Greek letter iota ι. +<li><tt>\κ</tt> Greek letter kappa κ. +<li><tt>\λ</tt> Greek letter lambda λ. +<li><tt>\μ</tt> Greek letter mu μ. +<li><tt>\ν</tt> Greek letter nu ν. +<li><tt>\ξ</tt> Greek letter xi ξ. +<li><tt>\π</tt> Greek letter pi π. +<li><tt>\ρ</tt> Greek letter rho ρ. +<li><tt>\σ</tt> Greek letter sigma σ. +<li><tt>\τ</tt> Greek letter tau τ. +<li><tt>\υ</tt> Greek letter upsilon υ. +<li><tt>\φ</tt> Greek letter phi φ. +<li><tt>\χ</tt> Greek letter chi χ. +<li><tt>\ψ</tt> Greek letter psi ψ. +<li><tt>\ω</tt> Greek letter omega ω. +<li><tt>\ς</tt> Greek final sigma ς. +<li><tt>\§</tt> section sign §. +<li><tt>\°</tt> degree °. +<li><tt>\′</tt> prime ′. +<li><tt>\″</tt> double prime ″. +<li><tt>\∞</tt> infinity ∞. +<li><tt>\∅</tt> empty set ∅. +<li><tt>\±</tt> plus or minus ±. +<li><tt>\×</tt> multiplication sign ×. +<li><tt>\−</tt> minus sign −. +<li><tt>\⋅</tt> centered dot ⋅. +<li><tt>\∂</tt> partial derivative ∂. +<li><tt>\∇</tt> nabla symbol ∇. +<li><tt>\√</tt> square root √. +<li><tt>\⊥</tt> perpendicular symbol ⊥. +<li><tt>\∑</tt> sum ∑. +<li><tt>\∫</tt> integral ∫. +<li><tt>\∏</tt> product ∏. +<li><tt>\∼</tt> similar to ∼. +<li><tt>\≈</tt> approximately equal to ≈. +<li><tt>\≠</tt> not equal to ≠. +<li><tt>\≡</tt> equivalent to ≡. +<li><tt>\∝</tt> proportional to ∝. +<li><tt>\≤</tt> less than or equal to ≤. +<li><tt>\≥</tt> greater than or equal to ≥. +<li><tt>\←</tt> left arrow ←. +<li><tt>\→</tt> right arrow →. +<li><tt>\∈</tt> in the set ∈. +<li><tt>\∉</tt> not in the set ∉. +<li><tt>\⌈</tt> left ceiling sign ⌈. +<li><tt>\⌉</tt> right ceiling sign ⌉. +<li><tt>\⌊</tt> left floor sign ⌊. +<li><tt>\⌋</tt> right floor sign ⌋. +</ul> + +Finally, to put invisible comments inside comment blocks, HTML style +comments can be used: +\verbatim +/*! <!-- This is a comment with a comment block --> Visible text */ +\endverbatim + +*/ diff --git a/doc/index.doc b/doc/index.doc new file mode 100644 index 0000000..5207b37 --- /dev/null +++ b/doc/index.doc @@ -0,0 +1,209 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \mainpage Doxygen Manual +\if logo_on +<center> +\htmlonly +<img src="doxygen_logo.gif" width="634" height="197" alt="doxygen"/><br/> +Version: $(VERSION) +\endhtmlonly +</center> +\endif + +<h2>Introduction</h2> +Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL +(Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D. + +It can help you in three ways: +<ol> +<li> It can generate an on-line documentation browser (in HTML) and/or an + off-line reference manual (in \f$\mbox{\LaTeX}\f$) from a set + of documented source files. + There is also support for generating output in RTF (MS-Word), + PostScript, hyperlinked PDF, compressed HTML, and Unix man pages. + The documentation is extracted directly from the sources, which + makes it much easier to keep the documentation consistent with the + source code. +<li> You can \ref extract_all "configure" doxygen to extract the code structure + from undocumented source files. This is very useful to quickly + find your way in large source distributions. + You can also visualize the relations between the various elements + by means of include dependency graphs, inheritance diagrams, + and collaboration diagrams, which are all generated automatically. +<li> You can also use doxygen for creating normal documentation (as I did + for this manual). +</ol> + +Doxygen is developed under <a href="http://www.linux.org">Linux</a> +and Mac OS X, but is set-up to be highly portable. As a result, it +runs on most other Unix flavors as well. Furthermore, executables for +Windows are available. + +\n This manual is divided into three parts, each of which is divided into several +sections. + +The first part forms a user manual: +<ul> +<li>Section \ref install discusses how to + <a href="http://www.doxygen.org/download.html">download</a>, compile and install + doxygen for your platform. +<li>Section \ref starting tells you how to generate your first piece of + documentation quickly. +<li>Section \ref docblocks demonstrates the various ways that code can + be documented. +<li>Section \ref markdown show the Markdown formatting supported by doxygen. +<li>Section \ref lists shows how to create lists. +<li>Section \ref grouping shows how to group things together. +<li>Section \ref formulas shows how to insert formulas in the documentation. +<li>Section \ref diagrams describes the diagrams and graphs that doxygen can generate. +<li>Section \ref preprocessing explains how doxygen deals with macro definitions. +<li>Section \ref autolink shows how to put links to files, classes, + and members in the documentation. +<li>Section \ref output shows how to generate the various output formats + supported by doxygen. +<li>Section \ref searching shows various ways to search in the HTML documentation. +<li>Section \ref customize explains how you can customize the output generated + by doxygen. +<li>Section \ref custcmd show how to define and use custom commands in your comments. +<li>Section \ref external explains how to let doxygen create links to externally generated documentation. +<li>Section \ref faq gives answers to frequently asked questions. +<li>Section \ref trouble tells you what to do when you have problems. +</ul> + +The second part forms a reference manual: + +<ul> +<li>Section \ref features presents an overview of what doxygen can do. +<li>Section \ref doxygen_usage shows how to use the \c doxygen program. +<li>Section \ref doxywizard_usage shows how to use the \c doxywizard program. +<li>Section \ref config shows how to fine-tune doxygen, so it + generates the documentation you want. +<li>Section \ref commands shows an overview of the special commands that can be + used within the documentation. +<li>Section \ref htmlcmds shows an overview of the HTML commands that + can be used within the documentation. +<li>Section \ref xmlcmds shows an overview of the C# style XML commands that + can be used within the documentation. +</ul> + +The third part provides information for developers: + +<ul> +<li>Section \ref arch gives a global overview of how doxygen is internally + structured. +<li>Section \ref perlmod shows how to use the PerlMod output. +<li>Section \ref langhowto explains how to add support for new + output languages. +</ul> + +\n<h2>Doxygen license</h2> +\addindex license +\addindex GPL + +Copyright © 1997-2012 by +<a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>.<p> + +Permission to use, copy, modify, and distribute this software and its +documentation under the terms of the GNU General Public License is hereby +granted. No representations are made about the suitability of this software +for any purpose. It is provided "as is" without express or implied warranty. +See the +<a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html"> +GNU General Public License</a> +for more details. +<p> +Documents produced by doxygen are derivative works derived from the +input used in their production; they are not affected by this license. + +<h2>User examples</h2> + +Doxygen supports a number of \ref output "output formats" where HTML is the +most popular one. I've gathered +\htmlonly +<a href="http://www.doxygen.org/results.html">some nice examples</a> +\endhtmlonly +\latexonly +some nice examples (see {\tt http://www.doxygen.org/results.html}) +\endlatexonly +of real-life projects using doxygen. + +These are part of a larger +\htmlonly +<a href="http://www.doxygen.org/projects.html">list of projects</a> +that use doxygen. +\endhtmlonly +\latexonly +list of projects that use doxygen (see {\tt http://www.doxygen.org/projects.html}). +\endlatexonly +If you know other projects, let <a href="mailto:dimitri@stack.nl?subject=New%20project%20using%20Doxygen">me</a> +know and I'll add them. + +<h2>Commercial Support</h2> + +I'm currently investigating the possibilities of providing +commercial support for doxygen. The forms of support I'm thinking of +are: +<ul> +<li>implementing features, +<li>fixing bugs, +<li>providing priority help in answering questions. +</ul> +To get a better understanding of the feasibility, +please let <a href="mailto:dimitri@stack.nl?subject=Doxygen%20Commercial%20Support">me</a> know if you +have a need for this type (or another type) +of doxygen related commercial support. + +<h2>Future work</h2> +Although doxygen is successfully used by large number of companies and +open source projects already, there is always room for improvement. +<p> +You can submit enhancement requests in +<a href="https://bugzilla.gnome.org/buglist.cgi?product=doxygen&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_severity=enhancement">the bug tracker</a>. +Make sure the severity of the bug report is set to "enhancement". + +<h2>Acknowledgements</h2> +\addindex acknowledgements +Thanks go to: +<ul> +<li>\addindex Doc++ + Malte Zöckler and Roland Wunderling, authors of DOC++. + The first version of doxygen borrowed some code of an old version of DOC++. + Although I have rewritten practically all code since then, DOC++ has still + given me a good start in writing doxygen. +<li>All people at Qt Software, for creating a beautiful GUI Toolkit + (which is very useful as a Windows/Unix platform abstraction layer :-) +<li>My brother Frank + for rendering the logos. +<li>Harm van der Heijden for adding HTML help support. +<li>Wouter Slegers of + <a href="http://www.yourcreativesolutions.nl">Your Creative Solutions</a> + for registering the www.doxygen.org domain. +<li>Parker Waechter for adding the RTF output generator. +<li>Joerg Baumann, for adding conditional documentation blocks, + PDF links, and the configuration generator. +<li>Tim Mensch for adding the todo command. +<li>Christian Hammond for redesigning the web-site. +<li>Ken Wong for providing the HTML tree view code. +<li>Talin for adding support for C# style comments with XML markup. +<li>Petr Prikryl for coordinating the internationalization support. + All language maintainers for providing translations into many languages. +<li>The band <a href="http://www.porcupinetree.com">Porcupine Tree</a> for + providing hours of great music to listen to while coding. +<li>many, many others for suggestions, patches and bug reports. +</ul> +*/ + diff --git a/doc/index.hhp.txt b/doc/index.hhp.txt new file mode 100644 index 0000000..b676d83 --- /dev/null +++ b/doc/index.hhp.txt @@ -0,0 +1,108 @@ +examples/afterdoc/html/tab_a.png +examples/afterdoc/html/tab_b.png +examples/afterdoc/html/tab_h.png +examples/afterdoc/html/tab_s.png +examples/author/html/tab_a.png +examples/author/html/tab_b.png +examples/author/html/tab_h.png +examples/author/html/tab_s.png +examples/autolink/html/tab_a.png +examples/autolink/html/tab_b.png +examples/autolink/html/tab_h.png +examples/autolink/html/tab_s.png +examples/class/html/tab_a.png +examples/class/html/tab_b.png +examples/class/html/tab_h.png +examples/class/html/tab_s.png +examples/define/html/tab_a.png +examples/define/html/tab_b.png +examples/define/html/tab_h.png +examples/define/html/tab_s.png +examples/diagrams/html/tab_a.png +examples/diagrams/html/tab_b.png +examples/diagrams/html/tab_h.png +examples/diagrams/html/tab_s.png +examples/docstring/html/tab_a.png +examples/docstring/html/tab_b.png +examples/docstring/html/tab_h.png +examples/docstring/html/tab_s.png +examples/enum/html/tab_a.png +examples/enum/html/tab_b.png +examples/enum/html/tab_h.png +examples/enum/html/tab_s.png +examples/example/html/tab_a.png +examples/example/html/tab_b.png +examples/example/html/tab_h.png +examples/example/html/tab_s.png +examples/file/html/tab_a.png +examples/file/html/tab_b.png +examples/file/html/tab_h.png +examples/file/html/tab_s.png +examples/func/html/tab_a.png +examples/func/html/tab_b.png +examples/func/html/tab_h.png +examples/func/html/tab_s.png +examples/group/html/tab_a.png +examples/group/html/tab_b.png +examples/group/html/tab_h.png +examples/group/html/tab_s.png +examples/include/html/tab_a.png +examples/include/html/tab_b.png +examples/include/html/tab_h.png +examples/include/html/tab_s.png +examples/jdstyle/html/tab_a.png +examples/jdstyle/html/tab_b.png +examples/jdstyle/html/tab_h.png +examples/jdstyle/html/tab_s.png +examples/manual/html/tab_a.png +examples/manual/html/tab_b.png +examples/manual/html/tab_h.png +examples/manual/html/tab_s.png +examples/memgrp/html/tab_a.png +examples/memgrp/html/tab_b.png +examples/memgrp/html/tab_h.png +examples/memgrp/html/tab_s.png +examples/mux/html/tab_a.png +examples/mux/html/tab_b.png +examples/mux/html/tab_h.png +examples/mux/html/tab_s.png +examples/overload/html/tab_a.png +examples/overload/html/tab_b.png +examples/overload/html/tab_h.png +examples/overload/html/tab_s.png +examples/page/html/tab_a.png +examples/page/html/tab_b.png +examples/page/html/tab_h.png +examples/page/html/tab_s.png +examples/par/html/tab_a.png +examples/par/html/tab_b.png +examples/par/html/tab_h.png +examples/par/html/tab_s.png +examples/pyexample/html/tab_a.png +examples/pyexample/html/tab_b.png +examples/pyexample/html/tab_h.png +examples/pyexample/html/tab_s.png +examples/qtstyle/html/tab_a.png +examples/qtstyle/html/tab_b.png +examples/qtstyle/html/tab_h.png +examples/qtstyle/html/tab_s.png +examples/relates/html/tab_a.png +examples/relates/html/tab_b.png +examples/relates/html/tab_h.png +examples/relates/html/tab_s.png +examples/restypedef/html/tab_a.png +examples/restypedef/html/tab_b.png +examples/restypedef/html/tab_h.png +examples/restypedef/html/tab_s.png +examples/structcmd/html/tab_a.png +examples/structcmd/html/tab_b.png +examples/structcmd/html/tab_h.png +examples/structcmd/html/tab_s.png +examples/tag/html/tab_a.png +examples/tag/html/tab_b.png +examples/tag/html/tab_h.png +examples/tag/html/tab_s.png +examples/template/html/tab_a.png +examples/template/html/tab_b.png +examples/template/html/tab_h.png +examples/template/html/tab_s.png diff --git a/doc/infoflow.eps b/doc/infoflow.eps new file mode 100644 index 0000000..f11b1fc --- /dev/null +++ b/doc/infoflow.eps @@ -0,0 +1,624 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Title: infoflow.fig +%%Creator: fig2dev Version 3.2 Patchlevel 5d +%%CreationDate: Thu Dec 29 10:46:41 2011 +%%For: dimitri@macbookpro (Dimitri van Heesch) +%%BoundingBox: 0 0 661 582 +%Magnification: 1.0000 +%%EndComments +%%BeginProlog +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def +/col32 {0.878 0.878 0.878 srgb} bind def +/col33 {0.000 0.000 0.000 srgb} bind def + +end + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/reencdict 12 dict def /ReEncode { reencdict begin +/newcodesandnames exch def /newfontname exch def /basefontname exch def +/basefontdict basefontname findfont def /newfont basefontdict maxlength dict def +basefontdict { exch dup /FID ne { dup /Encoding eq +{ exch dup length array copy newfont 3 1 roll put } +{ exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall +newfont /FontName newfontname put newcodesandnames aload pop +128 1 255 { newfont /Encoding get exch /.notdef put } for +newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat +newfontname newfont definefont pop end } def +/isovec [ +8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde +8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis +8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron +8#220 /dotlessi 8#230 /oe 8#231 /OE +8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling +8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis +8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot +8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus +8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph +8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine +8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf +8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute +8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring +8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute +8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute +8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve +8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply +8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex +8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave +8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring +8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute +8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute +8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve +8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide +8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex +8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def +/Times-Roman /Times-Roman-iso isovec ReEncode +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +/pageheader { +save +newpath 0 582 moveto 0 0 lineto 661 0 lineto 661 582 lineto closepath clip newpath +-53.3 599.2 translate +1 -1 scale +$F2psBegin +10 setmiterlimit +0 slj 0 slc + 0.06000 0.06000 sc +} bind def +/pagefooter { +$F2psEnd +restore +} bind def +%%EndProlog +pageheader +% +% Fig objects follow +% +% +% here starts figure with depth 50 +/Times-Roman-iso ff 200.00 scf sf +8100 7200 m +gs 1 -1 sc (import) col0 sh gr +% Polyline +0 slj +0 slc +7.500 slw +n 975 3600 m 975 3300 l 2175 3300 l 2175 4800 l + 2100 4800 l gs col0 s gr +% Polyline +n 1050 3300 m 1050 3225 l 2250 3225 l 2250 4725 l + 2175 4725 l gs col0 s gr +% Polyline +n 1125 3225 m 1125 3150 l 2325 3150 l 2325 4650 l + 2250 4650 l gs col0 s gr +% Polyline +n 900 5700 m 1200 5400 l 2100 5400 l 2100 6900 l 900 6900 l 900 5700 l + 1200 5700 l + 1200 5400 l gs col0 s gr +% Polyline +n 975 5625 m 975 5325 l 2175 5325 l 2175 6825 l + 2100 6825 l gs col0 s gr +% Polyline +n 1050 5325 m 1050 5250 l 2250 5250 l 2250 6750 l + 2175 6750 l gs col0 s gr +% Polyline +n 1125 5250 m 1125 5175 l 2325 5175 l 2325 6675 l + 2250 6675 l gs col0 s gr +/Times-Roman-iso ff 200.00 scf sf +1275 6075 m +gs 1 -1 sc (- headers) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +1275 6675 m +gs 1 -1 sc (- images) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +1275 6375 m +gs 1 -1 sc (- footers) col0 sh gr +% Polyline +n 6675 8775 m 6975 8475 l 7875 8475 l 7875 9975 l 6675 9975 l 6675 8775 l + 6975 8775 l + 6975 8475 l gs col0 s gr +% Polyline +n 6750 8700 m 6750 8400 l 7950 8400 l 7950 9900 l + 7875 9900 l gs col0 s gr +% Polyline +n 6825 8400 m 6825 8325 l 8025 8325 l 8025 9825 l + 7950 9825 l gs col0 s gr +% Polyline +n 6900 8325 m 6900 8250 l 8100 8250 l 8100 9750 l + 8025 9750 l gs col0 s gr +% Polyline +n 6600 4950 m 6900 4650 l 7800 4650 l 7800 6150 l 6600 6150 l 6600 4950 l + 6900 4950 l + 6900 4650 l gs col0 s gr +% Polyline +n 6675 4875 m 6675 4575 l 7875 4575 l 7875 6075 l + 7800 6075 l gs col0 s gr +% Polyline +n 6750 4575 m 6750 4500 l 7950 4500 l 7950 6000 l + 7875 6000 l gs col0 s gr +% Polyline +n 6825 4500 m 6825 4425 l 8025 4425 l 8025 5925 l + 7950 5925 l gs col0 s gr +% Polyline +n 6600 2925 m 6900 2625 l 7800 2625 l 7800 4125 l 6600 4125 l 6600 2925 l + 6900 2925 l + 6900 2625 l gs col0 s gr +% Polyline +n 6675 2850 m 6675 2550 l 7875 2550 l 7875 4050 l + 7800 4050 l gs col0 s gr +% Polyline +n 6750 2550 m 6750 2475 l 7950 2475 l 7950 3975 l + 7875 3975 l gs col0 s gr +% Polyline +n 6825 2475 m 6825 2400 l 8025 2400 l 8025 3900 l + 7950 3900 l gs col0 s gr +% Polyline +n 6600 900 m 6900 600 l 7800 600 l 7800 2100 l 6600 2100 l 6600 900 l + 6900 900 l + 6900 600 l gs col0 s gr +% Polyline +n 6675 825 m 6675 525 l 7875 525 l 7875 2025 l + 7800 2025 l gs col0 s gr +% Polyline +n 6750 525 m 6750 450 l 7950 450 l 7950 1950 l + 7875 1950 l gs col0 s gr +% Polyline +n 6825 450 m 6825 375 l 8025 375 l 8025 1875 l + 7950 1875 l gs col0 s gr +% Polyline +n 4350 1950 m 4650 1650 l 5550 1650 l 5550 3150 l 4350 3150 l 4350 1950 l + 4650 1950 l + 4650 1650 l gs col0 s gr +/Times-Roman-iso ff 200.00 scf sf +4575 2250 m +gs 1 -1 sc (Config file) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +4575 2550 m +gs 1 -1 sc (Doxyfile) col0 sh gr +% Polyline +n 2850 1950 m 3150 1650 l 4050 1650 l 4050 3150 l 2850 3150 l 2850 1950 l + 3150 1950 l + 3150 1650 l gs col0 s gr +/Times-Roman-iso ff 200.00 scf sf +3000 2475 m +gs 1 -1 sc (Layout file) col0 sh gr +% Polyline +gs clippath +3164 4155 m 3315 4155 l 3315 4095 l 3164 4095 l 3164 4095 l 3284 4125 l 3164 4155 l cp +eoclip +n 2100 4125 m + 3300 4125 l gs col0 s gr gr + +% arrowhead +n 3164 4155 m 3284 4125 l 3164 4095 l 3164 4155 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +3164 4380 m 3315 4380 l 3315 4320 l 3164 4320 l 3164 4320 l 3284 4350 l 3164 4380 l cp +eoclip +n 2100 6225 m 2700 6225 l 2700 4350 l + 3300 4350 l gs col0 s gr gr + +% arrowhead +n 3164 4380 m 3284 4350 l 3164 4320 l 3164 4380 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 3675 5925 m 3975 5625 l 4875 5625 l 4875 7125 l 3675 7125 l 3675 5925 l + 3975 5925 l + 3975 5625 l gs col0 s gr +% Polyline +gs clippath +4155 4786 m 4155 4635 l 4095 4635 l 4095 4786 l 4095 4786 l 4125 4666 l 4155 4786 l cp +eoclip +n 4125 5625 m + 4125 4650 l gs col0 s gr gr + +% arrowhead +n 4155 4786 m 4125 4666 l 4095 4786 l 4155 4786 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +4320 5489 m 4320 5640 l 4380 5640 l 4380 5489 l 4380 5489 l 4350 5609 l 4320 5489 l cp +eoclip +n 4350 5625 m + 4350 4650 l gs col0 s gr gr + +% arrowhead +n 4320 5489 m 4350 5609 l 4380 5489 l 4320 5489 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +6464 1455 m 6615 1455 l 6615 1395 l 6464 1395 l 6464 1395 l 6584 1425 l 6464 1455 l cp +eoclip +n 5100 3900 m 6000 3900 l 6000 1425 l + 6600 1425 l gs col0 s gr gr + +% arrowhead +n 6464 1455 m 6584 1425 l 6464 1395 l 6464 1455 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +6464 3480 m 6615 3480 l 6615 3420 l 6464 3420 l 6464 3420 l 6584 3450 l 6464 3480 l cp +eoclip +n 5100 4050 m 6300 4050 l 6300 3450 l + 6600 3450 l gs col0 s gr gr + +% arrowhead +n 6464 3480 m 6584 3450 l 6464 3420 l 6464 3480 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +6464 5580 m 6615 5580 l 6615 5520 l 6464 5520 l 6464 5520 l 6584 5550 l 6464 5580 l cp +eoclip +n 5100 4200 m 6300 4200 l 6300 5550 l + 6600 5550 l gs col0 s gr gr + +% arrowhead +n 6464 5580 m 6584 5550 l 6464 5520 l 6464 5580 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +6539 7380 m 6690 7380 l 6690 7320 l 6539 7320 l 6539 7320 l 6659 7350 l 6539 7380 l cp +eoclip +n 5100 4350 m 6000 4350 l 6000 7350 l + 6675 7350 l gs col0 s gr gr + +% arrowhead +n 6539 7380 m 6659 7350 l 6539 7320 l 6539 7380 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +6539 9180 m 6690 9180 l 6690 9120 l 6539 9120 l 6539 9120 l 6659 9150 l 6539 9180 l cp +eoclip +n 5100 4500 m 5700 4500 l 5700 9150 l + 6675 9150 l gs col0 s gr gr + +% arrowhead +n 6539 9180 m 6659 9150 l 6539 9120 l 6539 9180 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 6675 6675 m 6975 6375 l 7875 6375 l 7875 7875 l 6675 7875 l 6675 6675 l + 6975 6675 l + 6975 6375 l gs col0 s gr +% Polyline +n 3300 3750 m 5100 3750 l 5100 4650 l 3300 4650 l + cp gs col32 1.00 shd ef gr gs col0 s gr +% Polyline +n 8775 450 m 10800 450 l 10800 1575 l 8775 1575 l + cp gs col32 1.00 shd ef gr gs col0 s gr +% Polyline +n 9075 900 m 10650 900 l 10650 1425 l 9075 1425 l + cp gs col0 s gr +% Polyline +gs clippath +8639 1380 m 8790 1380 l 8790 1320 l 8639 1320 l 8639 1320 l 8759 1350 l 8639 1380 l cp +eoclip +n 7800 1350 m + 8775 1350 l gs col0 s gr gr + +% arrowhead +n 8639 1380 m 8759 1350 l 8639 1320 l 8639 1380 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +11339 1380 m 11490 1380 l 11490 1320 l 11339 1320 l 11339 1320 l 11459 1350 l 11339 1380 l cp +eoclip +n 10800 1350 m + 11475 1350 l gs col0 s gr gr + +% arrowhead +n 11339 1380 m 11459 1350 l 11339 1320 l 11339 1380 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +8864 3180 m 9015 3180 l 9015 3120 l 8864 3120 l 8864 3120 l 8984 3150 l 8864 3180 l cp +eoclip +n 7800 3150 m + 9000 3150 l gs col0 s gr gr + +% arrowhead +n 8864 3180 m 8984 3150 l 8864 3120 l 8864 3180 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +8864 3555 m 9015 3555 l 9015 3495 l 8864 3495 l 8864 3495 l 8984 3525 l 8864 3555 l cp +eoclip +n 7800 3525 m + 9000 3525 l gs col0 s gr gr + +% arrowhead +n 8864 3555 m 8984 3525 l 8864 3495 l 8864 3555 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 9000 2925 m 10800 2925 l 10800 3675 l 9000 3675 l + cp gs col32 1.00 shd ef gr gs col0 s gr +% Polyline +gs clippath +11339 3180 m 11490 3180 l 11490 3120 l 11339 3120 l 11339 3120 l 11459 3150 l 11339 3180 l cp +eoclip +n 10800 3150 m + 11475 3150 l gs col0 s gr gr + +% arrowhead +n 11339 3180 m 11459 3150 l 11339 3120 l 11339 3180 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +11339 3555 m 11490 3555 l 11490 3495 l 11339 3495 l 11339 3495 l 11459 3525 l 11339 3555 l cp +eoclip +n 10800 3525 m + 11475 3525 l gs col0 s gr gr + +% arrowhead +n 11339 3555 m 11459 3525 l 11339 3495 l 11339 3555 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +8864 7305 m 9015 7305 l 9015 7245 l 8864 7245 l 8864 7245 l 8984 7275 l 8864 7305 l cp +eoclip +n 7875 7275 m + 9000 7275 l gs col0 s gr gr + +% arrowhead +n 8864 7305 m 8984 7275 l 8864 7245 l 8864 7305 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +8864 9180 m 9015 9180 l 9015 9120 l 8864 9120 l 8864 9120 l 8984 9150 l 8864 9180 l cp +eoclip +n 7875 9150 m + 9000 9150 l gs col0 s gr gr + +% arrowhead +n 8864 9180 m 8984 9150 l 8864 9120 l 8864 9180 l cp gs 0.00 setgray ef gr col0 s +% Polyline + [60] 0 sd +n 8700 6450 m 11850 6450 l 11850 9975 l 8700 9975 l + cp gs col0 s gr [] 0 sd +% Polyline +gs clippath +4845 1514 m 4845 1665 l 4905 1665 l 4905 1514 l 4905 1514 l 4875 1634 l 4845 1514 l cp +4905 1186 m 4905 1035 l 4845 1035 l 4845 1186 l 4845 1186 l 4875 1066 l 4905 1186 l cp +eoclip +n 4875 1050 m + 4875 1650 l gs col0 s gr gr + +% arrowhead +n 4905 1186 m 4875 1066 l 4845 1186 l 4905 1186 l cp gs 0.00 setgray ef gr col0 s +% arrowhead +n 4845 1514 m 4875 1634 l 4905 1514 l 4845 1514 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 4125 300 m 5925 300 l 5925 1050 l 4125 1050 l + cp gs col32 1.00 shd ef gr gs col0 s gr +% Polyline +gs clippath +4905 3286 m 4905 3135 l 4845 3135 l 4845 3286 l 4845 3286 l 4875 3166 l 4905 3286 l cp +eoclip +n 4875 3150 m + 4875 3750 l gs col0 s gr gr + +% arrowhead +n 4905 3286 m 4875 3166 l 4845 3286 l 4905 3286 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +4620 3614 m 4620 3765 l 4680 3765 l 4680 3614 l 4680 3614 l 4650 3734 l 4620 3614 l cp +eoclip +n 4650 3150 m + 4650 3750 l gs col0 s gr gr + +% arrowhead +n 4620 3614 m 4650 3734 l 4680 3614 l 4620 3614 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +3720 3614 m 3720 3765 l 3780 3765 l 3780 3614 l 3780 3614 l 3750 3734 l 3720 3614 l cp +eoclip +n 3750 3150 m + 3750 3750 l gs col0 s gr gr + +% arrowhead +n 3720 3614 m 3750 3734 l 3780 3614 l 3720 3614 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +3555 3286 m 3555 3135 l 3495 3135 l 3495 3286 l 3495 3286 l 3525 3166 l 3555 3286 l cp +eoclip +n 3525 3150 m + 3525 3750 l gs col0 s gr gr + +% arrowhead +n 3555 3286 m 3525 3166 l 3495 3286 l 3555 3286 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 9000 8775 m 11175 8775 l 11175 9525 l 9000 9525 l + cp gs col32 1.00 shd ef gr gs col0 s gr +% Polyline +gs clippath +11639 7305 m 11790 7305 l 11790 7245 l 11639 7245 l 11639 7245 l 11759 7275 l 11639 7305 l cp +eoclip +n 11250 7275 m + 11775 7275 l gs col0 s gr gr + +% arrowhead +n 11639 7305 m 11759 7275 l 11639 7245 l 11639 7305 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n 9000 6900 m 11250 6900 l 11250 7650 l 9000 7650 l + cp gs col32 1.00 shd ef gr gs col0 s gr +% Polyline +gs clippath +11564 9180 m 11715 9180 l 11715 9120 l 11564 9120 l 11564 9120 l 11684 9150 l 11564 9180 l cp +eoclip +n 11175 9150 m + 11700 9150 l gs col0 s gr gr + +% arrowhead +n 11564 9180 m 11684 9150 l 11564 9120 l 11564 9180 l cp gs 0.00 setgray ef gr col0 s +/Times-Roman-iso ff 200.00 scf sf +2850 3975 m +gs 1 -1 sc (read) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +2850 4650 m +gs 1 -1 sc (read) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +4425 5175 m +gs 1 -1 sc (generate) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +3675 5175 m +gs 1 -1 sc (read) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +3900 4275 m +gs 1 -1 sc (Doxygen) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +8175 3000 m +gs 1 -1 sc (make ps) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +9675 3375 m +gs 1 -1 sc (latex) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +11025 825 m +gs 1 -1 sc (custom) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +11025 1050 m +gs 1 -1 sc (output) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +11025 3000 m +gs 1 -1 sc (postscript) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +11025 3825 m +gs 1 -1 sc (PDF) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +6975 9075 m +gs 1 -1 sc (HTML) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +6975 9300 m +gs 1 -1 sc (pages) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +8775 6675 m +gs 1 -1 sc (Windows only) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +8250 1200 m +gs 1 -1 sc (read) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +1200 4200 m +gs 1 -1 sc (Sources) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +1275 5775 m +gs 1 -1 sc (Custom) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +3675 1350 m +gs 1 -1 sc (generate/edit) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +4425 750 m +gs 1 -1 sc (Doxywizard) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +4050 3525 m +gs 1 -1 sc (read) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +5025 3375 m +gs 1 -1 sc (generate) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +5025 3600 m +gs 1 -1 sc (update) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +2625 3375 m +gs 1 -1 sc (generate) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +6825 1350 m +gs 1 -1 sc (XML files) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +6750 3300 m +gs 1 -1 sc (Latex files) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +6750 3750 m +gs 1 -1 sc (Makefile) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +7125 3525 m +gs 1 -1 sc (+) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +6750 5625 m +gs 1 -1 sc (Man pages) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +6900 7350 m +gs 1 -1 sc (refman.rtf) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +9075 9225 m +gs 1 -1 sc (HTML Help Workshop) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +8100 3750 m +gs 1 -1 sc (make pdf) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +9225 1275 m +gs 1 -1 sc (doxmlparser lib) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +9150 750 m +gs 1 -1 sc (Your application) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +3900 6450 m +gs 1 -1 sc (Tag file\(s\)) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +11325 7125 m +gs 1 -1 sc (doc) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +9750 7350 m +gs 1 -1 sc (MS-Word) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +11325 9000 m +gs 1 -1 sc (chm) col0 sh gr +/Times-Roman-iso ff 200.00 scf sf +8250 9075 m +gs 1 -1 sc (read) col0 sh gr +% Polyline +n 900 3675 m 1200 3375 l 2100 3375 l 2100 4875 l 900 4875 l 900 3675 l + 1200 3675 l + 1200 3375 l gs col0 s gr +% here ends figure; +pagefooter +showpage +%%Trailer +%EOF diff --git a/doc/infoflow.fig b/doc/infoflow.fig new file mode 100644 index 0000000..9db91af --- /dev/null +++ b/doc/infoflow.fig @@ -0,0 +1,229 @@ +#FIG 3.2 Produced by xfig version 3.2.5b +Landscape +Center +Inches +Letter +100.00 +Single +-2 +1200 2 +0 32 #e0e0e0 +0 33 #000000 +6 900 3150 2325 4875 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8 + 900 3675 1200 3375 2100 3375 2100 4875 900 4875 900 3675 + 1200 3675 1200 3375 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 975 3600 975 3300 2175 3300 2175 4800 2100 4800 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 1050 3300 1050 3225 2250 3225 2250 4725 2175 4725 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 1125 3225 1125 3150 2325 3150 2325 4650 2250 4650 +-6 +6 900 5175 2325 6900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8 + 900 5700 1200 5400 2100 5400 2100 6900 900 6900 900 5700 + 1200 5700 1200 5400 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 975 5625 975 5325 2175 5325 2175 6825 2100 6825 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 1050 5325 1050 5250 2250 5250 2250 6750 2175 6750 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 1125 5250 1125 5175 2325 5175 2325 6675 2250 6675 +-6 +6 1275 5925 2025 6750 +4 0 0 50 0 0 12 0.0000 4 150 795 1275 6075 - headers\001 +4 0 0 50 0 0 12 0.0000 4 195 720 1275 6675 - images\001 +4 0 0 50 0 0 12 0.0000 4 150 705 1275 6375 - footers\001 +-6 +6 6675 8250 8100 9975 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8 + 6675 8775 6975 8475 7875 8475 7875 9975 6675 9975 6675 8775 + 6975 8775 6975 8475 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6750 8700 6750 8400 7950 8400 7950 9900 7875 9900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6825 8400 6825 8325 8025 8325 8025 9825 7950 9825 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6900 8325 6900 8250 8100 8250 8100 9750 8025 9750 +-6 +6 6600 4425 8025 6150 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8 + 6600 4950 6900 4650 7800 4650 7800 6150 6600 6150 6600 4950 + 6900 4950 6900 4650 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6675 4875 6675 4575 7875 4575 7875 6075 7800 6075 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6750 4575 6750 4500 7950 4500 7950 6000 7875 6000 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6825 4500 6825 4425 8025 4425 8025 5925 7950 5925 +-6 +6 6600 2400 8025 4125 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8 + 6600 2925 6900 2625 7800 2625 7800 4125 6600 4125 6600 2925 + 6900 2925 6900 2625 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6675 2850 6675 2550 7875 2550 7875 4050 7800 4050 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6750 2550 6750 2475 7950 2475 7950 3975 7875 3975 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6825 2475 6825 2400 8025 2400 8025 3900 7950 3900 +-6 +6 6600 375 8025 2100 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8 + 6600 900 6900 600 7800 600 7800 2100 6600 2100 6600 900 + 6900 900 6900 600 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6675 825 6675 525 7875 525 7875 2025 7800 2025 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6750 525 6750 450 7950 450 7950 1950 7875 1950 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6825 450 6825 375 8025 375 8025 1875 7950 1875 +-6 +6 4350 1650 5550 3150 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8 + 4350 1950 4650 1650 5550 1650 5550 3150 4350 3150 4350 1950 + 4650 1950 4650 1650 +4 0 0 50 0 0 12 0.0000 4 195 870 4575 2250 Config file\001 +4 0 0 50 0 0 12 0.0000 4 195 720 4575 2550 Doxyfile\001 +-6 +6 2850 1650 4050 3150 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8 + 2850 1950 3150 1650 4050 1650 4050 3150 2850 3150 2850 1950 + 3150 1950 3150 1650 +4 0 0 50 -1 0 12 0.0000 4 195 915 3000 2475 Layout file\001 +-6 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 2100 4125 3300 4125 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4 + 1 1 1.00 60.00 120.00 + 2100 6225 2700 6225 2700 4350 3300 4350 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8 + 3675 5925 3975 5625 4875 5625 4875 7125 3675 7125 3675 5925 + 3975 5925 3975 5625 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 4125 5625 4125 4650 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 2 + 1 1 1.00 60.00 120.00 + 4350 5625 4350 4650 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4 + 1 1 1.00 60.00 120.00 + 5100 3900 6000 3900 6000 1425 6600 1425 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4 + 1 1 1.00 60.00 120.00 + 5100 4050 6300 4050 6300 3450 6600 3450 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4 + 1 1 1.00 60.00 120.00 + 5100 4200 6300 4200 6300 5550 6600 5550 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4 + 1 1 1.00 60.00 120.00 + 5100 4350 6000 4350 6000 7350 6675 7350 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 4 + 1 1 1.00 60.00 120.00 + 5100 4500 5700 4500 5700 9150 6675 9150 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 8 + 6675 6675 6975 6375 7875 6375 7875 7875 6675 7875 6675 6675 + 6975 6675 6975 6375 +2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5 + 3300 3750 5100 3750 5100 4650 3300 4650 3300 3750 +2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5 + 8775 450 10800 450 10800 1575 8775 1575 8775 450 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 9075 900 10650 900 10650 1425 9075 1425 9075 900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 7800 1350 8775 1350 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 10800 1350 11475 1350 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 7800 3150 9000 3150 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 7800 3525 9000 3525 +2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5 + 9000 2925 10800 2925 10800 3675 9000 3675 9000 2925 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 10800 3150 11475 3150 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 10800 3525 11475 3525 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 7875 7275 9000 7275 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 7875 9150 9000 9150 +2 2 1 1 0 7 50 0 -1 4.000 0 0 -1 0 0 5 + 8700 6450 11850 6450 11850 9975 8700 9975 8700 6450 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 1 2 + 1 1 1.00 60.00 120.00 + 1 1 1.00 60.00 120.00 + 4875 1050 4875 1650 +2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5 + 4125 300 5925 300 5925 1050 4125 1050 4125 300 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 2 + 1 1 1.00 60.00 120.00 + 4875 3150 4875 3750 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 4650 3150 4650 3750 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 3750 3150 3750 3750 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 1 2 + 1 1 1.00 60.00 120.00 + 3525 3150 3525 3750 +2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5 + 9000 8775 11175 8775 11175 9525 9000 9525 9000 8775 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 11250 7275 11775 7275 +2 2 0 1 0 32 50 0 20 0.000 0 0 -1 0 0 5 + 9000 6900 11250 6900 11250 7650 9000 7650 9000 6900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 + 1 1 1.00 60.00 120.00 + 11175 9150 11700 9150 +4 0 0 50 0 0 12 0.0000 4 150 390 2850 3975 read\001 +4 0 0 50 0 0 12 0.0000 4 150 390 2850 4650 read\001 +4 0 0 50 0 0 12 0.0000 4 165 765 4425 5175 generate\001 +4 0 0 50 0 0 12 0.0000 4 150 390 3675 5175 read\001 +4 0 0 50 0 0 12 0.0000 4 195 780 3900 4275 Doxygen\001 +4 0 0 50 0 0 12 0.0000 4 195 720 8175 3000 make ps\001 +4 0 0 50 0 0 12 0.0000 4 150 420 9675 3375 latex\001 +4 0 0 50 0 0 12 0.0000 4 120 630 11025 825 custom\001 +4 0 0 50 0 0 12 0.0000 4 165 540 11025 1050 output\001 +4 0 0 50 0 0 12 0.0000 4 195 840 11025 3000 postscript\001 +4 0 0 50 0 0 12 0.0000 4 150 390 11025 3825 PDF\001 +4 0 0 50 0 0 12 0.0000 4 150 615 6975 9075 HTML\001 +4 0 0 50 0 0 12 0.0000 4 150 510 6975 9300 pages\001 +4 0 0 50 0 0 12 0.0000 4 195 1215 8775 6675 Windows only\001 +4 0 0 50 0 0 12 0.0000 4 150 390 8250 1200 read\001 +4 0 0 50 0 0 12 0.0000 4 150 705 1200 4200 Sources\001 +4 0 0 50 0 0 12 0.0000 4 150 675 1275 5775 Custom\001 +4 0 0 50 0 0 12 0.0000 4 195 1140 3675 1350 generate/edit\001 +4 0 0 50 0 0 12 0.0000 4 195 1050 4425 750 Doxywizard\001 +4 0 0 50 0 0 12 0.0000 4 150 390 4050 3525 read\001 +4 0 0 50 0 0 12 0.0000 4 165 765 5025 3375 generate\001 +4 0 0 50 -1 0 12 0.0000 4 195 585 5025 3600 update\001 +4 0 0 50 0 0 12 0.0000 4 165 765 2625 3375 generate\001 +4 0 0 50 0 0 12 0.0000 4 150 870 6825 1350 XML files\001 +4 0 0 50 0 0 12 0.0000 4 150 900 6750 3300 Latex files\001 +4 0 0 50 0 0 12 0.0000 4 150 765 6750 3750 Makefile\001 +4 0 0 50 0 0 12 0.0000 4 105 120 7125 3525 +\001 +4 0 0 50 0 0 12 0.0000 4 195 960 6750 5625 Man pages\001 +4 0 0 50 0 0 12 0.0000 4 150 870 6900 7350 refman.rtf\001 +4 0 0 50 0 0 12 0.0000 4 195 1995 9075 9225 HTML Help Workshop\001 +4 0 0 50 0 0 12 0.0000 4 195 795 8100 3750 make pdf\001 +4 0 0 50 0 0 12 0.0000 4 195 1320 9225 1275 doxmlparser lib\001 +4 0 0 50 0 0 12 0.0000 4 195 1395 9150 750 Your application\001 +4 0 0 50 0 0 12 0.0000 4 195 885 3900 6450 Tag file(s)\001 +4 0 0 50 0 0 12 0.0000 4 150 315 11325 7125 doc\001 +4 0 0 50 0 0 12 0.0000 4 150 855 9750 7350 MS-Word\001 +4 0 0 50 0 0 12 0.0000 4 150 375 11325 9000 chm\001 +4 0 0 50 0 0 12 0.0000 4 150 390 8250 9075 read\001 +4 0 0 50 0 0 12 0.0000 4 195 555 8100 7200 import\001 diff --git a/doc/infoflow.png b/doc/infoflow.png Binary files differnew file mode 100644 index 0000000..d975be1 --- /dev/null +++ b/doc/infoflow.png diff --git a/doc/install.doc b/doc/install.doc new file mode 100644 index 0000000..d8a75a2 --- /dev/null +++ b/doc/install.doc @@ -0,0 +1,643 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page install Installation + +\addindex installation +\tableofcontents + +First go to the +<a href="http://www.doxygen.org/download.html">download</a> page +to get the latest distribution, if you did not downloaded doxygen already. + +\section install_src_unix Compiling from source on UNIX + +If you downloaded the source distribution, you need at least the +following to build the executable: +<ul> +<li>The <a href="ftp://prep.ai.mit.edu/pub/gnu/">GNU</a> tools + flex, bison and GNU make, and strip + \addindex flex + \addindex bison + \addindex make + \addindex strip +<li>In order to generate a Makefile for your platform, you need + <a href="http://www.perl.com/">perl</a> + \addindex perl +<li>The configure script assume the availability of standard UNIX tools such + as sed, date, find, uname, mv, cp, cat, echo, tr, cd, and rm. +</ul> + +To take full advantage of doxygen's features the following additional +tools should be installed. + +<ul> +<li>Qt Software's GUI toolkit + <a href="http://qt.nokia.com/">Qt</A> + \addindex Qt + version 4.3 or higher. + This is needed to build the GUI front-end doxywizard. +<li>A \f$\mbox{\LaTeX}\f$ distribution: for instance + <a href="http://www.tug.org/interest.html#free">teTeX 1.0</a> + This is needed for generating LaTeX, Postscript, and PDF output. +<li><a href="http://www.graphviz.org/"> + the Graph visualization toolkit version 1.8.10 or higher</a> + Needed for the include dependency graphs, + the graphical inheritance graphs, and the collaboration graphs. + If you compile graphviz yourself, make sure you do include + freetype support (which requires the freetype library and header files), + otherwise the graphs will not render proper text labels. +<li>For formulas or if you do not wish to use pdflatex, the ghostscript interpreter + is needed. You can find it at + <a href="http://www.ghostscript.com/">www.ghostscript.com</a>. +<li>In order to generate doxygen's own documentation, Python is needed, you + can find it at <a href="http://www.python.org">www.python.org</a>. +</ul> + +Compilation is now done by performing the following steps: + +<ol> +<li>Unpack the archive, unless you already have done that: + + gunzip doxygen-$VERSION.src.tar.gz # uncompress the archive + tar xf doxygen-$VERSION.src.tar # unpack it + +<li>Run the configure script: + + sh ./configure + + The script tries to determine the platform you use, the make tool + (which \e must be GNU make) and the perl + interpreter. It will report what it finds. + + To override the auto detected platform and compiler you can run + configure as follows: + + configure --platform platform-type + + See the <code>PLATFORMS</code> file for a list of possible platform + options. + + If you have Qt-4.3 or higher installed and want to build the GUI + front-end, you should run the configure script with + the <code>--with-doxywizard</code> option: + + configure --with-doxywizard + + For an overview of other configuration options use + + configure --help + +<li>Compile the program by running make: + + make + + The program should compile without problems and the binaries + (<code>doxygen</code> and optionally <code>doxywizard</code>) + should be available in the bin directory of the distribution. + +<li>Optional: Generate the user manual. + + make docs + + To let doxygen generate the HTML documentation. + + The HTML directory of the distribution will now contain the html + documentation (just point a HTML browser to the file + <code>index.html</code> in the + html directory). You will need the <code>python</code> interpreter + for this. + +<li>Optional: Generate a PDF version of the manual + (you will need <code>pdflatex</code>, <code>makeindex</code>, and + <code>egrep</code> for this). + + make pdf + + The PDF manual <code>doxygen_manual.pdf</code> will be located + in the latex directory of the distribution. Just + view and print it via the acrobat reader. + +</ol> + +\section install_bin_unix Installing the binaries on UNIX + +After the compilation of the source code do a <code>make install</code> +to install doxygen. If you downloaded the binary distribution for UNIX, +type: + + ./configure + make install + +Binaries are installed into the directory <code>\<prefix\>/bin</code>. +Use <code>make install_docs</code> to install the +documentation and examples into <code>\<docdir\>/doxygen</code>. + +<code>\<prefix\></code> defaults to <code>/usr/local</code> but can be changed with +the <code>--prefix</code> option of the configure script. +The default <code>\<docdir\></code> directory is +<code>\<prefix\>/share/doc/packages</code> and can be changed with +the <code>--docdir</code> option of the configure script. + +Alternatively, you can also copy the binaries from the <code>bin</code> +directory manually to some <code>bin</code> directory in your search path. +This is sufficient to use doxygen. + +\note You need the GNU install tool for this to work (it is part of +the coreutils package). Other install tools may put the binaries in +the wrong directory! + +If you have a RPM or DEP package, then please follow the +standard installation procedure that is required for these packages. + +\section unix_problems Known compilation problems for UNIX + +<b>Qt problems</b> + +The Qt include files and libraries are not a subdirectory of the +directory pointed to by QTDIR on some systems +(for instance on Red Hat 6.0 includes are in /usr/include/qt and +libs are in /usr/lib). + +The solution: go to the root of the doxygen distribution and do: + + mkdir qt + cd qt + ln -s your-qt-include-dir-here include + ln -s your-qt-lib-dir-here lib + ln -s your-qt-bin-dir-here bin + export QTDIR=$PWD + +If you have a csh-like shell you should use <code>setenv QTDIR \$PWD</code> +instead of the <code>export</code> command above. + +Now install doxygen as described above. + +<b>Bison problems</b> + +Versions 1.31 to 1.34 of bison contain a "bug" that results in a +compiler errors like this: + +ce_parse.cpp:348: member `class CPPValue yyalloc::yyvs' with +constructor not allowed in union + +This problem has been solved in version 1.35 (versions before 1.31 +will also work). + +<b>Latex problems</b> + +The file <code>a4wide.sty</code> is not available for all distributions. If +your distribution does not have it please select another paper type +in the config file (see the \ref cfg_paper_type "PAPER_TYPE" tag in the +config file). + +<b>HP-UX \& Digital UNIX problems</b> + +If you are compiling for HP-UX with aCC and you get this error: + + /opt/aCC/lbin/ld: Unsatisfied symbols: + alloca (code) + +then you should (according to Anke Selig) edit <code>ce_parse.cpp</code> +and replace + + extern "C" { + void *alloca (unsigned int); + }; + +with + + #include <alloca.h> + +If that does not help, try removing <code>ce_parse.cpp</code> and let +bison rebuild it (this worked for me). + +If you are compiling for Digital UNIX, the same problem can be solved +(according to Barnard Schmallhof) by replacing the following in +ce_parse.cpp: + +\verbatim + #else /* not GNU C. */ + #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) \ + || defined (__sparc) || defined (__sgi) + #include <alloca.h> +\endverbatim + + with + +\verbatim + #else /* not GNU C. */ + #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) \ + || defined (__sparc) || defined (__sgi) || defined (__osf__) + #include <alloca.h> +\endverbatim + + Alternatively, one could fix the problem at the bison side. + Here is patch for bison.simple (provided by Andre Johansen): + +\verbatim +--- bison.simple~ Tue Nov 18 11:45:53 1997 ++++ bison.simple Mon Jan 26 15:10:26 1998 +@@ -27,7 +27,7 @@ + #ifdef __GNUC__ + #define alloca __builtin_alloca + #else /* not GNU C. */ +-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) \ + || defined (__sparc) || defined (__sgi) ++#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) \ + || defined (__sparc) || defined (__sgi) || defined (__alpha) + #include <alloca.h> + #else /* not sparc */ + #if defined (MSDOS) && !defined (__TURBOC__) +\endverbatim + + The generated scanner.cpp that comes with doxygen is build with this + patch applied. + +<b>Sun compiler problems</b> + +It appears that doxygen doesn't work properly if it is compiled +with Sun's C++ WorkShop 6 Compiler. I cannot verify this myself as I do +not have access to a Solaris machine with this compiler. With GNU compiler +it does work and installing Sun patch 111679-13 has also been reported +as a way to fix the problem. + +when configuring with `--static` I got: + +\verbatim +Undefined first referenced + symbol in file +dlclose /usr/lib/libc.a(nss_deffinder.o) +dlsym /usr/lib/libc.a(nss_deffinder.o) +dlopen /usr/lib/libc.a(nss_deffinder.o) +\endverbatim + +Manually adding `-Bdynamic` after the target rule in +`Makefile.doxygen` will fix this: + + $(TARGET): $(OBJECTS) $(OBJMOC) + $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(LIBS) -Bdynamic + +<b>GCC compiler problems</b> + +Older versions of the GNU compiler have problems with constant strings +containing characters with character codes larger than 127. Therefore +the compiler will fail to compile some of the translator_xx.h files. +A workaround, if you are planning to use the English translation only, +is to configure doxygen with the <code>--english-only</code> option. + +On some platforms (such as OpenBSD) using some versions of gcc with +-O2 can lead to eating all memory during the compilation of files +such as config.cpp. As a workaround use --debug as a configure option +or omit the -O2 for the particular files in the Makefile. + +Gcc versions before 2.95 may produce broken binaries due to bugs in +these compilers. + +<b>Dot problems</b> + +Due to a change in the way image maps are generated, older versions +of doxygen (\<=1.2.17) will not work correctly with newer versions of +graphviz (\>=1.8.8). The effect of this incompatibility is that +generated graphs in HTML are not properly clickable. For doxygen 1.3 +it is recommended to use at least graphviz 1.8.10 or higher. +For doxygen 1.4.7 or higher it is recommended to +use GraphViz 2.8 or higher to avoid font issues. + +<b>Red Hat 9.0 problems</b> + +If you get the following error after running make +\verbatim +tmake error: qtools.pro:70: Syntax error +\endverbatim +then first type +\verbatim +export LANG= +\endverbatim +before running make. + +\section install_src_windows Compiling from source on Windows + +From version 1.7.0 onwards, build files are provided for Visual Studio 2008. +Also the free (as in beer) "Express" version of Developer Studio can be used to +compile doxygen. Alternatively, you can compile doxygen +\ref install_src_unix "the UNIX way" using +<a href="http://en.wikipedia.org/wiki/Cygwin">Cygwin</a> +or <a href="http://www.mingw.org/">MinGW</a>. + +The next step is to install unxutils (see http://sourceforge.net/projects/unxutils). +This packages contains the tools \c flex and \c bison which are needed during the +compilation process if you use a CVS snapshot of doxygen (the official source releases +come with pre-generated sources). +Download the zip extract it to e.g. <code>c:\\tools\\unxutils</code>. + +Now you need to add/adjust the following environment variables +(via Control Panel/System/Advanced/Environment Variables): +- add <code>c:\\tools\\unxutils\\usr\\local\\wbin;</code> to the start of <code>PATH</code> +- set <code>BISON_SIMPLE</code> to <code>c:\\tools\\unxutils\\usr\\local\\share\\bison.simple</code> + +Download doxygen's source tarball and put it somewhere (e.g. use <code>c:\\tools</code>) + +Now start a new command shell and type +\verbatim +cd c:\tools +gunzip doxygen-x.y.z.src.tar.gz +tar xvf doxygen-x.y.z.src.tar +\endverbatim +to unpack the sources. + +Now your environment is setup to build \c doxygen. + +Inside the \c doxygen-x.y.z directory you will find a \c winbuild directory +containing a \c Doxygen.sln file. Open this file in Visual Studio. +You can now build the Release or Debug flavor of Doxygen by right-clicking +the project in the solutions explorer, and selecting Build. + +Note that compiling Doxywizard currently requires Qt version 4 +(see http://qt.nokia.com/products/platform/qt-for-windows). + +Also read the next section for additional tools you may need to install to run +doxygen with certain features enabled. + +<!-- + +Currently, I have only compiled doxygen for Windows using Microsoft's +Visual C++ (). For other compilers you may need to edit the +perl script in <code>wintools/make.pl</code> a bit. +Let me know what you had to change if you got Doxygen working with another +compiler. If you have Visual Studio you can also use the .dsw file found in +the <code>wintools</code> directory. Note that this file is not maintained +by me, so it might be outdated a little. + +If you have Visual C++ 6.0, and the source distribution, you can easily +build doxygen using the project files in the \c wintools directory. If +you want to build the CVS sources, or want to build from the command line, +or with another compiler, you have to follow the steps below. + +Thomas Baust reported that if you have Visual Studio.NET (2003) then +you should be aware that there is a problem with the _popen() and _pclose() +implementation, which currently leaks handles, so if you build doxygen with +it and use the INPUT_FILTER, you will run to risk of crashing Windows! +The problem is reported to and confirmed by Microsoft so maybe it will +fixed in the next service pack. + +Since Windows comes without all the nice tools that UNIX users are +used to, you'll need to install a number of these tools before you can compile +doxygen for Windows from the command-line. + +Here is what is required: +<ul> +<li>An unzip/untar tool like WinZip to unpack the tar source distribution. + This can be found at http://www.winzip.com/ + + The good, tested, and free alternative is the <code>tar</code> utility + supplied with <a href="http://sourceware.cygnus.com/cygwin/">cygwin + tools</a>. Anyway, the cygwin's flex, bison, and sed are also + recommended below. + +<li>Microsoft Visual C++ (I only tested with version 6.0). + Use the <code>vcvars32.bat</code> batch file to set the environment + variables (if you did not select to do this automatically during + installation). + + Borland C++ or MINGW (see http://www.mingw.org/) are also supported. + +<li>Perl 5.0 or higher for Windows. This can be downloaded from: + http://www.ActiveState.com/Products/ActivePerl/ + +<li>The GNU tools flex, bison, and sed. + To get these working on Windows you should install the + <a href="http://sources.redhat.com/cygwin/">cygwin tools</a> + + Alternatively, you can also choose to + download only a <a href="http://www.doxygen.org/dl/cygwin_tools.zip">small subset</a> + of the cygwin tools that I put together just to compile doxygen. + + As a third alternative one could use the GNUWin32 tools that can be + found at http://gnuwin32.sourceforge.net/ + + Make sure the <code>BISON_SIMPLE</code> environment variable points to the + location where the files <code>bison.simple</code> and + is located. For instance if these file is in + <code>c:\\tools\\cygwin\\usr\\share</code> then BISON_SIMPLE should + be set to <code>c:/tools/cygwin/usr/share/bison.simple</code> + + Also make sure the tools are available from a dos box, by adding + the directory they are in to the search path. + + For those of you who are very new to cygwin (if you are going to + install it from scratch), you should notice that there is an + archive file <code>bootstrap.zip</code> which also contains the + <code>tar</code> utility (<code>tar.exe</code>), <code>gzip</code> + utilities, and the <code>cygwin1.dll</code> core. This also means + that you have the <code>tar</code> in hands from the start. It + can be used to unpack the tar source distribution instead of + using WinZip -- as mentioned at the beginning of this list of + steps. + +<li>From Doxygen-1.2.2-20001015 onwards, the distribution includes the part + of Qt that is needed for to compile doxygen. + The Windows specific part were also created. + As a result doxygen (without the wizard) can be compiled on systems + without X11 or (the commerical version of) Qt. + +<li>If you used WinZip to extract the tar archive it will (apparently) not + create empty folders, so you have to add the folders + <code>objects</code> and <code>bin</code> manually in the root of the + distribution before compiling. + +</ul> + + +Compilation is now done by performing the following steps: + +<ol> +<li>Open a dos box. + Make sure all tools (i.e. <code>nmake</code>, <code>latex</code>, + <code>gswin32</code>, <code>dvips</code>, <code>sed</code>, + <code>flex</code>, <code>bison</code>, <code>cl</code>, + <code>rm</code>, and <code>perl</code>), are accessible from + the command-line (add them to the PATH environment variable if + needed). + + Notice: The use of LaTeX is optional and only needed for compilation + of the documentation into PostScript or PDF. + It is \e not needed for compiling the doxygen's binaries. + +<li>Go to the doxygen root dir and type: + +\verbatim + make.bat msvc +\endverbatim + + This should build the executable + <code>doxygen.exe</code> using Microsoft's Visual C++ compiler + (The compiler should not produce any serious warnings or errors). + + You can use also the <code>bcc</code> argument to build + executables using the Borland C++ compiler, or + <code>mingw</code> argument to compile using GNU gcc. + +<li>To build the examples, go to the <code>examples</code> subdirectory + and type: + +\verbatim + nmake +\endverbatim + +<li>To generate the doxygen documentation, go to the <code>doc</code> + subdirectory and type: + +\verbatim + nmake +\endverbatim + + The generated HTML docs are located in the <code>..\\html</code> + subdirectory. + + The sources for LaTeX documentation are located in the <code>..\\latex</code> + subdirectory. From those sources, the DVI, PostScript, and PDF + documentation can be generated. +</ol> + +--> + +\section install_bin_windows Installing the binaries on Windows + +Doxygen comes as a self-installing archive, so installation is extremely simple. +Just follow the dialogs. + +After installation it is recommended to also download and install GraphViz +(version 2.20 or better is highly recommended). Doxygen can use the \c dot tool +of the GraphViz package to render nicer diagrams, see the +\ref cfg_have_dot "HAVE_DOT" option in the configuration file. + +If you want to produce compressed HTML files (see \ref +cfg_generate_htmlhelp "GENERATE_HTMLHELP") in the config file, then +you need the Microsoft HTML help workshop. +You can download it from +<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/vsconHH1Start.asp">Microsoft</a>. + +If you want to produce Qt Compressed Help files (see \ref +cfg_qhg_location "QHG_LOCATION") in the config file, then +you need qhelpgenerator which is part of Qt. +You can download Qt from <a href="http://trolltech.com/downloads/">Qt Software Downloads</a>. + +In order to generate PDF output or use scientific formulas you will also need to +install <a href="http://en.wikipedia.org/wiki/LaTeX">LaTeX</a> and +<a href="http://en.wikipedia.org/wiki/Ghostscript">Ghostscript</a>. + +For LaTeX a number of distributions exists. Popular ones that should work with +doxygen are <a href="http://www.miktex.org">MikTex</a> +and <a href="http://www.xemtex.org">XemTex</a>. + +Ghostscript can be <a href="http://sourceforge.net/projects/ghostscript/">downloaded</a> +from Sourceforge. + +After installing LaTeX and Ghostscript you'll need to make sure the tools +latex.exe, pdflatex.exe, and gswin32c.exe are present in the search path of a +command box. Follow <a href="http://www.computerhope.com/issues/ch000549.htm">these</a> +instructions if you are unsure and run the commands from a command box to verify it works. + +<!-- +There is no fancy installation procedure at the moment (if anyone can +add it in a location independent way please let me know). + +To install doxygen, just copy the binaries from the <code>bin</code> directory +to a location somewhere in the path. Alternatively, you can include +the <code>bin</code> directory of the distribution to the path. + +There are a couple of tools you may want to install to use all of doxygen's +features: + +<ul> +<li>To generate LaTeX documentation or formulas in HTML you need the tools: + <code>latex</code>, <code>dvips</code> and <code>gswin32</code>. + To get these working under Windows + install the fpTeX distribution. You can find more info at: + http://www.fptex.org/ and download it from CTAN or one of its mirrors. + In the Netherlands for example this would be: + ftp://ftp.easynet.nl/mirror/CTAN/systems/win32/fptex/ + + Make sure the tools are available from a dos box, by adding the + directory they are in to the search path. + + For your information, the LaTeX is freely available set of so + called macros and styles on the top of the famous TeX program + (by famous Donald Knuth) and the accompanied utilities (all + available for free). It is used for high quality + typesetting. The result -- in the form of so called + <code>DVI</code> (DeVice Independent) file -- can be printed or + displayed on various devices preserving exactly the same look up + to the capability of the device. The <code>dvips</code> allows you + to convert the <code>dvi</code> to the high quality PostScript + (i.e. PostScript that can be processed by utilities like + <code>psnup</code>, <code>psbook</code>, <code>psselect</code>, + and others). The derived version of TeX (the pdfTeX) can be used + to produce PDF output instead of DVI, or the PDF can be produced + from PostScript using the utility <code>ps2pdf</code>. + + If you want to use MikTeX then you need to select at least the + medium size installation. For really old versions of MikTex or minimal + installations, you may need to download the fancyhdr package separately. + You can find it in the + <a href="ftp://ftp.tex.ac.uk/tex-archive/macros/latex/contrib/supported/fancyhdr/"> + contrib/supported</a> directory of the tex archives. + +<li>If you want to generate compressed HTML help + (see \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP") in the + config file, then you need the Microsoft HTML help workshop. + You can download it from + <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/vsconHH1Start.asp">Microsoft</a>. + +<li>If you want to produce Qt Compressed Help files (see \ref + cfg_qhelgenerator_loc "QHG_LOCATION") in the config file, + then you need qhelpgenerator which is part of Qt. + You can download Qt from + <a href="http://trolltech.com/downloads/">Qt Software Downloads</a>. + +<li><a href="http://www.graphviz.org/"> + the Graph visualization toolkit version 1.8.10</a><br> + Needed for the include dependency graphs, the graphical inheritance graphs, + and the collaboration graphs. +</ul> + +--> + +\section build_tools Tools used to develop doxygen + +Doxygen was developed and tested under Linux & MacOSX using the following +open-source tools: +<ul> +<li>GCC version 3.3.6 (Linux) and 4.0.1 (MacOSX) +<li>GNU flex version 2.5.33 (Linux) and 2.5.4 (MacOSX) +<li>GNU bison version 1.75 +<li>GNU make version 3.80 +<li>Perl version 5.8.1 +<li>VIM version 6.2 +<li>Firefox 1.5 +<li>Trolltech's tmake version 1.3 (included in the distribution) +<li>teTeX version 2.0.2 +<li>CVS 1.12.12 +</ul> + +\htmlonly +Go to the <a href="starting.html">next</a> section or return to the + <a href="index.html">index</a>. +\endhtmlonly + +*/ + diff --git a/doc/install_prefix b/doc/install_prefix new file mode 100644 index 0000000..681eca9 --- /dev/null +++ b/doc/install_prefix @@ -0,0 +1,2 @@ +VERSION = $(VERSION) + diff --git a/doc/language.doc b/doc/language.doc new file mode 100644 index 0000000..83a0bfa --- /dev/null +++ b/doc/language.doc @@ -0,0 +1,747 @@ +/****************************************************************************** + * Do not edit this file. It was generated by the translator.py script. + * + * Copyright (C) 1997-2011 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + * $Id$ + */ +/*! \page langhowto Internationalization + +<h3>Support for multiple languages</h3> + +Doxygen has built-in support for multiple languages. This means that the +text fragments, generated by doxygen, can be produced in languages other +than English (the default). The output language is chosen through the +configuration file (with default name and known as Doxyfile). + +Currently (version 1.8.1.2), 39 languages +are supported (sorted alphabetically): +Afrikaans, Arabic, Armenian, Brazilian Portuguese, Catalan, Chinese, +Chinese Traditional, Croatian, Czech, Danish, Dutch, English, +Esperanto, Finnish, French, German, Greek, Hungarian, Indonesian, +Italian, Japanese (+En), Korean (+En), Lithuanian, Macedonian, +Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, +SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian, +and Vietnamese.. + +The table of information related to the supported languages follows. +It is sorted by language alphabetically. The <b>Status</b> column +was generated from sources and shows approximately the last version +when the translator was updated. + +\htmlonly +<table align="center" cellspacing="0" cellpadding="0" border="0"> +<tr bgcolor="#000000"> +<td> + <table cellspacing="1" cellpadding="2" border="0"> + <tr bgcolor="#4040c0"> + <td ><b><font size="+1" color="#ffffff"> Language </font></b></td> + <td ><b><font size="+1" color="#ffffff"> Maintainer </font></b></td> + <td ><b><font size="+1" color="#ffffff"> Contact address </font> + <font size="-2" color="#ffffff">(replace the at and dot)</font></b></td> + <td ><b><font size="+1" color="#ffffff"> Status </font></b></td> + </tr> + <!-- table content begin --> + + <tr bgcolor="#ffffff"> + <td>Afrikaans</td> + <td>Johan Prinsloo</td> + <td>johan at zippysnoek dot com</td> + <td>1.6.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Arabic</td> + <td>Moaz Reyad<br/><span style="color: red; background-color: yellow">-- searching for the maintainer --</span></td> + <td><span style="color: brown">[resigned]</span><br/><span style="color: brown">[Please, try to help to find someone.]</span></td> + <td>1.4.6</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Armenian</td> + <td>Armen Tangamyan</td> + <td>armen dot tangamyan at anu dot edu dot au</td> + <td>1.8.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Brazilian Portuguese</td> + <td>Fabio "FJTC" Jun Takada Chino</td> + <td>jun-chino at uol dot com dot br</td> + <td>1.8.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Catalan</td> + <td>Maximiliano Pin<br/>Albert Mora</td> + <td>max dot pin at bitroit dot com<br/><span style="color: brown">[unreachable]</span></td> + <td>1.8.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Chinese</td> + <td>Lian Yang<br/>Li Daobing<br/>Wei Liu</td> + <td>lian dot yang dot cn at gmail dot com<br/>lidaobing at gmail dot com<br/>liuwei at asiainfo dot com</td> + <td>1.8.2</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Chinese Traditional</td> + <td>Daniel YC Lin<br/>Gary Lee</td> + <td>dlin dot tw at gmail dot com<br/>garywlee at gmail dot com</td> + <td>1.8.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Croatian</td> + <td>Boris Bralo</td> + <td>boris dot bralo at gmail dot com</td> + <td>1.8.2</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Czech</td> + <td>Petr Přikryl</td> + <td>prikryl at atlas dot cz</td> + <td>up-to-date</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Danish</td> + <td>Poul-Erik Hansen<br/>Erik Søe Sørensen</td> + <td>pouhan at gnotometrics dot dk<br/>eriksoe+doxygen at daimi dot au dot dk</td> + <td>1.8.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Dutch</td> + <td>Dimitri van Heesch</td> + <td>dimitri at stack dot nl</td> + <td>up-to-date</td> + </tr> + <tr bgcolor="#ffffff"> + <td>English</td> + <td>Dimitri van Heesch</td> + <td>dimitri at stack dot nl</td> + <td>up-to-date</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Esperanto</td> + <td>Ander Martínez</td> + <td>ander dot basaundi at gmail dot com</td> + <td>up-to-date</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Finnish</td> + <td>Antti Laine</td> + <td>antti dot a dot laine at tut dot fi</td> + <td>1.6.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>French</td> + <td>David Martinet<br/>Xavier Outhier</td> + <td>contact at e-concept-applications dot fr<br/>xouthier at yahoo dot fr</td> + <td>1.8.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>German</td> + <td>Peter Grotrian<br/>Jens Seidel</td> + <td>Peter dot Grotrian at pdv-FS dot de<br/>jensseidel at users dot sf dot net</td> + <td>1.8.2</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Greek</td> + <td>Paul Gessos</td> + <td>gessos dot paul at yahoo dot gr</td> + <td>up-to-date</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Hungarian</td> + <td>Ákos Kiss<br/>Földvári György</td> + <td>akiss at users dot sourceforge dot net<br/><span style="color: brown">[unreachable]</span></td> + <td>1.4.6</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Indonesian</td> + <td>Hendy Irawan</td> + <td>ceefour at gauldong dot net</td> + <td>1.8.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Italian</td> + <td>Alessandro Falappa<br/>Ahmed Aldo Faisal</td> + <td>alessandro at falappa dot net<br/>aaf23 at cam dot ac dot uk</td> + <td>1.8.2</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Japanese</td> + <td>Hiroki Iseri<br/>Ryunosuke Satoh<br/>Kenji Nagamatsu<br/>Iwasa Kazmi</td> + <td>goyoki at gmail dot com<br/>sun594 at hotmail dot com<br/>naga at joyful dot club dot ne dot jp<br/><span style="color: brown">[unreachable]</span></td> + <td>1.6.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>JapaneseEn</td> + <td>see the Japanese language</td> + <td> </td> + <td>English based</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Korean</td> + <td>Kim Taedong<br/>SooYoung Jung<br/>Richard Kim</td> + <td>fly1004 at gmail dot com<br/>jung5000 at gmail dot com<br/><span style="color: brown">[unreachable]</span></td> + <td>1.8.02</td> + </tr> + <tr bgcolor="#ffffff"> + <td>KoreanEn</td> + <td>see the Korean language</td> + <td> </td> + <td>English based</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Lithuanian</td> + <td>Tomas Simonaitis<br/>Mindaugas Radzius<br/>Aidas Berukstis<br/><span style="color: red; background-color: yellow">-- searching for the maintainer --</span></td> + <td><span style="color: brown">[unreachable]</span><br/><span style="color: brown">[unreachable]</span><br/><span style="color: brown">[unreachable]</span><br/><span style="color: brown">[Please, try to help to find someone.]</span></td> + <td>1.4.6</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Macedonian</td> + <td>Slave Jovanovski</td> + <td>slavejovanovski at yahoo dot com</td> + <td>1.6.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Norwegian</td> + <td>Lars Erik Jordet</td> + <td>lejordet at gmail dot com</td> + <td>1.4.6</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Persian</td> + <td>Ali Nadalizadeh</td> + <td>nadalizadeh at gmail dot com</td> + <td>1.7.5</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Polish</td> + <td>Piotr Kaminski<br/>Grzegorz Kowal<br/>Krzysztof Kral</td> + <td><span style="color: brown">[unreachable]</span><br/><span style="color: brown">[unreachable]</span><br/>krzysztof dot kral at gmail dot com</td> + <td>1.8.2</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Portuguese</td> + <td>Rui Godinho Lopes<br/>Fabio "FJTC" Jun Takada Chino</td> + <td><span style="color: brown">[resigned]</span><br/>jun-chino at uol dot com dot br</td> + <td>1.8.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Romanian</td> + <td>Ionut Dumitrascu<br/>Alexandru Iosup</td> + <td>reddumy at yahoo dot com<br/>aiosup at yahoo dot com</td> + <td>1.6.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Russian</td> + <td>Alexandr Chelpanov</td> + <td>cav at cryptopro dot ru</td> + <td>1.7.5</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Serbian</td> + <td>Dejan Milosavljevic</td> + <td><span style="color: brown">[unreachable]</span></td> + <td>1.6.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>SerbianCyrilic</td> + <td>Nedeljko Stefanovic</td> + <td>stenedjo at yahoo dot com</td> + <td>1.6.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Slovak</td> + <td>Kali+Laco Švec<br/>Petr Přikryl</td> + <td><span style="color: brown">[the Slovak language advisors]</span><br/>prikryl at atlas dot cz</td> + <td>up-to-date</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Slovene</td> + <td>Matjaž Ostroveršnik</td> + <td>matjaz dot ostroversnik at ostri dot org</td> + <td>1.4.6</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Spanish</td> + <td>Bartomeu<br/>Francisco Oltra Thennet<br/>David Vaquero</td> + <td>bartomeu at loteria3cornella dot com<br/><span style="color: brown">[unreachable]</span><br/>david at grupoikusnet dot com</td> + <td>up-to-date</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Swedish</td> + <td>Mikael Hallin</td> + <td>mikaelhallin at yahoo dot se</td> + <td>1.6.0</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Turkish</td> + <td>Emin Ilker Cetinbas</td> + <td>niw3 at yahoo dot com</td> + <td>1.7.5</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Ukrainian</td> + <td>Olexij Tkatchenko<br/><span style="color: red; background-color: yellow">-- searching for the maintainer --</span></td> + <td><span style="color: brown">[resigned]</span><br/><span style="color: brown">[Please, try to help to find someone.]</span></td> + <td>1.4.1</td> + </tr> + <tr bgcolor="#ffffff"> + <td>Vietnamese</td> + <td>Dang Minh Tuan</td> + <td>tuanvietkey at gmail dot com</td> + <td>1.6.0</td> + </tr> + <!-- table content end --> + </table> +</td> +</tr> +</table> +\endhtmlonly + + +\latexonly +\footnotesize +\begin{longtable}{|l|l|l|l|} + \hline + {\bf Language} & {\bf Maintainer} & {\bf Contact address} & {\bf Status} \\ + \hline + + \hline + Afrikaans & Johan Prinsloo & {\tt\tiny johan at zippysnoek dot com} & 1.6.0 \\ + \hline + Arabic & Moaz Reyad & {\tt\tiny [resigned] moazreyad at yahoo dot com} & 1.4.6 \\ + ~ & -- searching for the maintainer -- & {\tt\tiny [Please, try to help to find someone.]} & ~ \\ + \hline + Armenian & Armen Tangamyan & {\tt\tiny armen dot tangamyan at anu dot edu dot au} & 1.8.0 \\ + \hline + Brazilian Portuguese & Fabio "FJTC" Jun Takada Chino & {\tt\tiny jun-chino at uol dot com dot br} & 1.8.0 \\ + \hline + Catalan & Maximiliano Pin & {\tt\tiny max dot pin at bitroit dot com} & 1.8.0 \\ + ~ & Albert Mora & {\tt\tiny [unreachable] amora at iua dot upf dot es} & ~ \\ + \hline + Chinese & Lian Yang & {\tt\tiny lian dot yang dot cn at gmail dot com} & 1.8.2 \\ + ~ & Li Daobing & {\tt\tiny lidaobing at gmail dot com} & ~ \\ + ~ & Wei Liu & {\tt\tiny liuwei at asiainfo dot com} & ~ \\ + \hline + Chinese Traditional & Daniel YC Lin & {\tt\tiny dlin dot tw at gmail dot com} & 1.8.0 \\ + ~ & Gary Lee & {\tt\tiny garywlee at gmail dot com} & ~ \\ + \hline + Croatian & Boris Bralo & {\tt\tiny boris dot bralo at gmail dot com} & 1.8.2 \\ + \hline + Czech & Petr Přikryl & {\tt\tiny prikryl at atlas dot cz} & up-to-date \\ + \hline + Danish & Poul-Erik Hansen & {\tt\tiny pouhan at gnotometrics dot dk} & 1.8.0 \\ + ~ & Erik Søe Sørensen & {\tt\tiny eriksoe+doxygen at daimi dot au dot dk} & ~ \\ + \hline + Dutch & Dimitri van Heesch & {\tt\tiny dimitri at stack dot nl} & up-to-date \\ + \hline + English & Dimitri van Heesch & {\tt\tiny dimitri at stack dot nl} & up-to-date \\ + \hline + Esperanto & Ander Martínez & {\tt\tiny ander dot basaundi at gmail dot com} & up-to-date \\ + \hline + Finnish & Antti Laine & {\tt\tiny antti dot a dot laine at tut dot fi} & 1.6.0 \\ + \hline + French & David Martinet & {\tt\tiny contact at e-concept-applications dot fr} & 1.8.0 \\ + ~ & Xavier Outhier & {\tt\tiny xouthier at yahoo dot fr} & ~ \\ + \hline + German & Peter Grotrian & {\tt\tiny Peter dot Grotrian at pdv-FS dot de} & 1.8.2 \\ + ~ & Jens Seidel & {\tt\tiny jensseidel at users dot sf dot net} & ~ \\ + \hline + Greek & Paul Gessos & {\tt\tiny gessos dot paul at yahoo dot gr} & up-to-date \\ + \hline + Hungarian & Ákos Kiss & {\tt\tiny akiss at users dot sourceforge dot net} & 1.4.6 \\ + ~ & Földvári György & {\tt\tiny [unreachable] foldvari lost at cyberspace} & ~ \\ + \hline + Indonesian & Hendy Irawan & {\tt\tiny ceefour at gauldong dot net} & 1.8.0 \\ + \hline + Italian & Alessandro Falappa & {\tt\tiny alessandro at falappa dot net} & 1.8.2 \\ + ~ & Ahmed Aldo Faisal & {\tt\tiny aaf23 at cam dot ac dot uk} & ~ \\ + \hline + Japanese & Hiroki Iseri & {\tt\tiny goyoki at gmail dot com} & 1.6.0 \\ + ~ & Ryunosuke Satoh & {\tt\tiny sun594 at hotmail dot com} & ~ \\ + ~ & Kenji Nagamatsu & {\tt\tiny naga at joyful dot club dot ne dot jp} & ~ \\ + ~ & Iwasa Kazmi & {\tt\tiny [unreachable] iwasa at cosmo-system dot jp} & ~ \\ + \hline + JapaneseEn & see the Japanese language & {\tt\tiny ~} & English based \\ + \hline + Korean & Kim Taedong & {\tt\tiny fly1004 at gmail dot com} & 1.8.02 \\ + ~ & SooYoung Jung & {\tt\tiny jung5000 at gmail dot com} & ~ \\ + ~ & Richard Kim & {\tt\tiny [unreachable] ryk at dspwiz dot com} & ~ \\ + \hline + KoreanEn & see the Korean language & {\tt\tiny ~} & English based \\ + \hline + Lithuanian & Tomas Simonaitis & {\tt\tiny [unreachable] haden at homelan dot lt} & 1.4.6 \\ + ~ & Mindaugas Radzius & {\tt\tiny [unreachable] mindaugasradzius at takas dot lt} & ~ \\ + ~ & Aidas Berukstis & {\tt\tiny [unreachable] aidasber at takas dot lt} & ~ \\ + ~ & -- searching for the maintainer -- & {\tt\tiny [Please, try to help to find someone.]} & ~ \\ + \hline + Macedonian & Slave Jovanovski & {\tt\tiny slavejovanovski at yahoo dot com} & 1.6.0 \\ + \hline + Norwegian & Lars Erik Jordet & {\tt\tiny lejordet at gmail dot com} & 1.4.6 \\ + \hline + Persian & Ali Nadalizadeh & {\tt\tiny nadalizadeh at gmail dot com} & 1.7.5 \\ + \hline + Polish & Piotr Kaminski & {\tt\tiny [unreachable] Piotr dot Kaminski at ctm dot gdynia dot pl} & 1.8.2 \\ + ~ & Grzegorz Kowal & {\tt\tiny [unreachable] g\_kowal at poczta dot onet dot pl} & ~ \\ + ~ & Krzysztof Kral & {\tt\tiny krzysztof dot kral at gmail dot com} & ~ \\ + \hline + Portuguese & Rui Godinho Lopes & {\tt\tiny [resigned] rgl at ruilopes dot com} & 1.8.0 \\ + ~ & Fabio "FJTC" Jun Takada Chino & {\tt\tiny jun-chino at uol dot com dot br} & ~ \\ + \hline + Romanian & Ionut Dumitrascu & {\tt\tiny reddumy at yahoo dot com} & 1.6.0 \\ + ~ & Alexandru Iosup & {\tt\tiny aiosup at yahoo dot com} & ~ \\ + \hline + Russian & Alexandr Chelpanov & {\tt\tiny cav at cryptopro dot ru} & 1.7.5 \\ + \hline + Serbian & Dejan Milosavljevic & {\tt\tiny [unreachable] dmilos at email dot com} & 1.6.0 \\ + \hline + SerbianCyrilic & Nedeljko Stefanovic & {\tt\tiny stenedjo at yahoo dot com} & 1.6.0 \\ + \hline + Slovak & Kali+Laco Švec & {\tt\tiny [the Slovak language advisors]} & up-to-date \\ + ~ & Petr Přikryl & {\tt\tiny prikryl at atlas dot cz} & ~ \\ + \hline + Slovene & Matjaž Ostroveršnik & {\tt\tiny matjaz dot ostroversnik at ostri dot org} & 1.4.6 \\ + \hline + Spanish & Bartomeu & {\tt\tiny bartomeu at loteria3cornella dot com} & up-to-date \\ + ~ & Francisco Oltra Thennet & {\tt\tiny [unreachable] foltra at puc dot cl} & ~ \\ + ~ & David Vaquero & {\tt\tiny david at grupoikusnet dot com} & ~ \\ + \hline + Swedish & Mikael Hallin & {\tt\tiny mikaelhallin at yahoo dot se} & 1.6.0 \\ + \hline + Turkish & Emin Ilker Cetinbas & {\tt\tiny niw3 at yahoo dot com} & 1.7.5 \\ + \hline + Ukrainian & Olexij Tkatchenko & {\tt\tiny [resigned] olexij at tkatchenko dot com} & 1.4.1 \\ + ~ & -- searching for the maintainer -- & {\tt\tiny [Please, try to help to find someone.]} & ~ \\ + \hline + Vietnamese & Dang Minh Tuan & {\tt\tiny tuanvietkey at gmail dot com} & 1.6.0 \\ + \hline +\end{longtable} +\normalsize +\endlatexonly + + +Most people on the list have indicated that they were also busy +doing other things, so if you want to help to speed things up please +let them (or me) know. + +If you want to add support for a language that is not yet listed +please read the next section. + + +<h3>Adding a new language to doxygen</h3> + +This short HOWTO explains how to add support for the new language to Doxygen: + +Just follow these steps: +<ol> +<li>Tell me for which language you want to add support. If no one else + is already working on support for that language, you will be + assigned as the maintainer for the language. +<li>Create a copy of translator_en.h and name it + translator_\<your_2_letter_country_code\>.h + I'll use xx in the rest of this document. +<li>Add definition of the symbol for your language in the configure +at two places in the script: + <ol> + <li>After the <code>f_langs=</code> is statement, in lower case. + <li>In the string that following <code>\@allowed=</code> in upper case. + </ol> +The rerun the configure script such that is generates src/lang_cfg.h. +This file should now contain a \#define for your language code. +<li>Edit language.cpp: + Add a +\verbatim +#ifdef LANG_xx +#include<translator_xx.h> +#endif +\endverbatim + Remember to use the same symbol LANG_xx that you added to \c lang_cfg.h. + I.e., the \c xx should be capital letters that identify your language. + On the other hand, the \c xx inside your \c translator_xx.h should use + lower case. + <p>Now, in <code>setTranslator()</code> add +\verbatim +#ifdef LANG_xx + else if (L_EQUAL("your_language_name")) + { + theTranslator = new TranslatorYourLanguage; + } +#endif +\endverbatim + after the <code>if { ... }</code>. I.e., it must be placed after the code + for creating the English translator at the beginning, and before the + <code>else { ... }</code> part that creates the translator for the + default language (English again). +<li>Edit libdoxygen.pro.in and add \c translator_xx.h to + the \c HEADERS line. +<li>Edit <code>translator_xx.h</code>: + <ul> + <li>Rename <code>TRANSLATOR_EN_H</code> to <code>TRANSLATOR_XX_H</code> + twice (i.e. in the \c \#ifndef and \c \#define preprocessor commands at + the beginning of the file). + <li>Rename TranslatorEnglish to TranslatorYourLanguage + <li>In the member <code>idLanguage()</code> change "english" into the + name of your language (use lower case characters only). Depending + on the language you may also wish to change the member functions + latexLanguageSupportCommand(), idLanguageCharset() and others + (you will recognize them when you start the work). + <li>Edit all the strings that are returned by the member functions that + start with tr. + Try to match punctuation and capitals! + To enter special characters (with accents) you can: + <ul> + <li> Enter them directly if your keyboard supports that and you are + using a Latin-1 font. Doxygen will translate the + characters to proper \f$\mbox{\LaTeX}\f$ and leave the + HTML and man output for what it is (which is fine, if + idLanguageCharset() is set correctly). + <li> Use html codes like \ä for an a with an umlaut (i.e. ä). + See the HTML specification for the codes. + </ul> + </ul> +<li>Run configure and make again from the root of the distribution, + in order to regenerated the Makefiles. +<li>Now you can use <code>OUTPUT_LANGUAGE = your_language_name</code> + in the config file to generate output in your language. +<li>Send <code>translator_xx.h</code> to me so I can add it to doxygen. + Send also your name and e-mail address to be included in the + \c maintainers.txt list. +</ol> + + +<h3>Maintaining a language</h3> + +New versions of doxygen may use new translated sentences. In such +situation, the \c Translator class requires implementation of new +methods -- its interface changes. Of course, the English +sentences need to be translated to the other languages. At least, +new methods have to be implemented by the language-related +translator class; otherwise, doxygen wouldn't even compile. Waiting +until all language maintainers have translated the new sentences and +sent the results would not be very practical. The following text +describes the usage of translator adapters to solve the problem. + +<b>The role of Translator Adapters.</b> +Whenever the \c Translator class interface changes in the new +release, the new class \c TranslatorAdapter_x_y_z is added to the \c +translator_adapter.h file (here x, y, and z are numbers that +correspond to the current official version of doxygen). All +translators that previously derived from the \c Translator class now +derive from this adapter class. + +The \c TranslatorAdapter_x_y_z class implements the new, required +methods. If the new method replaces some similar but obsolete +method(s) (e.g. if the number of arguments changed and/or the +functionality of the older method was changed or enriched), the \c +TranslatorAdapter_x_y_z class may use the obsolete method to get the +result which is as close as possible to the older result in the +target language. If it is not possible, the result (the default +translation) is obtained using the English translator, which is (by +definition) always up-to-date. + +<b>For example,</b> when the new \c trFile() method with +parameters (to determine the capitalization of the first letter and +the singular/plural form) was introduced to replace the older method +\c trFiles() without arguments, the following code appeared in one +of the translator adapter classes: + +\verbatim + /*! This is the default implementation of the obsolete method + * used in the documentation of a group before the list of + * links to documented files. This is possibly localized. + */ + virtual QCString trFiles() + { return "Files"; } + + /*! This is the localized implementation of newer equivalent + * using the obsolete method trFiles(). + */ + virtual QCString trFile(bool first_capital, bool singular) + { + if (first_capital && !singular) + return trFiles(); // possibly localized, obsolete method + else + return english.trFile(first_capital, singular); + } +\endverbatim + +The \c trFiles() is not present in the \c TranslatorEnglish class, +because it was removed as obsolete. However, it was used until now +and its call was replaced by + +\verbatim + trFile(true, false) +\endverbatim + +in the doxygen source files. Probably, many language translators +implemented the obsolete method, so it perfectly makes sense to use +the same language dependent result in those cases. The \c +TranslatorEnglish does not implement the old method. It derives +from the abstract \c Translator class. On the other hand, the old +translator for a different language does not implement the new \c +trFile() method. Because of that it is derived from another base +class -- \c TranslatorAdapter_x_y_z. The \c TranslatorAdapter_x_y_z +class have to implement the new, required \c trFile() method. +However, the translator adapter would not be compiled if the \c +trFiles() method was not implemented. This is the reason for +implementing the old method in the translator adapter class (using +the same code, that was removed from the TranslatorEnglish). + +The simplest way would be to pass the arguments to the English +translator and to return its result. Instead, the adapter uses the +old \c trFiles() in one special case -- when the new +<code>trFile(true, false)</code> is called. This is the +mostly used case at the time of introducing the new method -- see +above. While this may look too complicated, the technique allows +the developers of the core sources to change the Translator +interface, while the users may not even notice the change. Of +course, when the new \c trFile() is used with different arguments, +the English result is returned and it will be noticed by non English +users. Here the maintainer of the language translator should +implement at least that one particular method. + +<b>What says the base class of a language translator?</b> +If the language translator class inherits from any adapter class the +maintenance is needed. In such case, the language translator is not +considered up-to-date. On the other hand, if the language +translator derives directly from the abstract class \c Translator, the +language translator is up-to-date. + +The translator adapter classes are chained so that the older +translator adapter class uses the one-step-newer translator adapter +as the base class. The newer adapter does less \e adapting work +than the older one. The oldest adapter class derives (indirectly) +from all of the adapter classes. The name of the adapter class is +chosen so that its suffix is derived from the previous official +version of doxygen that did not need the adapter. This way, one can +say approximately, when the language translator class was last +updated -- see details below. + +The newest translator adapter derives from the abstract \c +TranslatorAdapterBase class that derives directly from the abstract +\c Translator class. It adds only the private English-translator +member for easy implementation of the default translation inside the +adapter classes, and it also enforces implementation of one method +for noticing the user that the language translation is not up-to-date +(because of that some sentences in the generated files may appear in +English). + +Once the oldest adapter class is not used by any of the language +translators, it can be removed from the doxygen project. The +maintainers should try to reach the state with the minimal number of +translator adapter classes. + +<b>To simplify the maintenance of the language translator classes</b> +for the supported languages, the \c translator.py Python +script was developed (located in \c doxygen/doc directory). +It extracts the important information about obsolete and +new methods from the source files for each of the languages. +The information is stored in the <em>translator report</em> ASCII file +(translator_report.txt). + +\htmlonly If you compiled this documentation +from sources and if you have also doxygen sources available the +link <a href="../doc/translator_report.txt" +><code>doxygen/doc/translator_report.txt</code></a> should be valid.\endhtmlonly + +Looking at the base class of the language translator, the script +guesses also the status of the translator -- see the last column of +the table with languages above. The \c translator.py is called +automatically when the doxygen documentation is generated. You can +also run the script manually whenever you feel that it can help you. +Of course, you are not forced to use the results of the script. You +can find the same information by looking at the adapter class and +its base classes. + +<b>How should I update my language translator?</b> Firstly, you +should be the language maintainer, or you should let him/her know +about the changes. The following text was written for the language +maintainers as the primary audience. + +There are several approaches to be taken when updating your +language. If you are not extremely busy, you should always chose +the most radical one. When the update takes much more time than you +expected, you can always decide use some suitable translator adapter to +finish the changes later and still make your translator working. + +<b>The most radical way of updating the language translator</b> is +to make your translator class derive directly +from the abstract class \c Translator and provide translations for the +methods that are required to be implemented -- the compiler will +tell you if you forgot to implement some of them. If you are in +doubt, have a look at the \c TranslatorEnglish class to recognize the +purpose of the implemented method. Looking at the previously used +adapter class may help you sometimes, but it can also be misleading +because the adapter classes do implement also the obsolete methods +(see the previous \c trFiles() example). + +In other words, the up-to-date language translators do not need the +\c TranslatorAdapter_x_y_z classes at all, and you do not need to +implement anything else than the methods required by the Translator +class (i.e. the pure virtual methods of the \c Translator -- they +end with <code>=0;</code>). + +If everything compiles fine, try to run \c translator.py, and have a +look at the translator report (ASCII file) at the \c doxygen/doc +directory. Even if your translator is marked as up-to-date, there +still may be some remarks related to your source code. Namely, the +obsolete methods--that are not used at all--may be listed in the +section for your language. Simply, remove their code (and run the \c +translator.py again). Also, you will be informed when you forgot to +change the base class of your translator class to some newer adapter +class or directly to the Translator class. + +<b>If you do not have time to finish all the updates</b> you should +still start with <em>the most radical approach</em> as described +above. You can always change the base class to the translator +adapter class that implements all of the not-yet-implemented methods. + +<b>If you prefer to update your translator gradually</b>, have a look +at \c TranslatorEnglish (the \c translator_en.h file). Inside, you +will find the comments like <code>new since 1.2.4</code> that separate +always a number of methods that were implemented in the stated +version. Do implement the group of methods that are placed below the +comment that uses the same version numbers as your translator adapter +class. (For example, your translator class have to use the \c +TranslatorAdapter_1_2_4, if it does not implement the methods below +the comment <code>new since 1.2.4</code>. When you implement them, +your class should use newer translator adapter. + +Run the \c translator.py script occasionally and give it your \c xx +identification (from \c translator_xx.h) to create the translator +report shorter (also produced faster) -- it will contain only the +information related to your translator. Once you reach the state when +the base class should be changed to some newer adapter, you will see +the note in the translator report. + +Warning: Don't forget to compile Doxygen to discover, whether it is +compilable. The \c translator.py does not check if everything is +correct with respect to the compiler. Because of that, it may lie +sometimes about the necessary base class. + +<b>The most obsolete language translators</b> would lead to +implementation of too complicated adapters. Because of that, doxygen +developers may decide to derive such translators from the \c +TranslatorEnglish class, which is by definition always up-to-date. + +When doing so, all the missing methods will be replaced by the +English translation. This means that not-implemented methods will +always return the English result. Such translators are marked using +word \c obsolete. You should read it <b>really obsolete</b>. No +guess about the last update can be done. + +Often, it is possible to construct better result from the obsolete +methods. Because of that, the translator adapter classes should be +used if possible. On the other hand, implementation of adapters for +really obsolete translators brings too much maintenance and +run-time overhead. + +*/ + diff --git a/doc/language.tpl b/doc/language.tpl new file mode 100644 index 0000000..cba8b8a --- /dev/null +++ b/doc/language.tpl @@ -0,0 +1,357 @@ + +ATTENTION! This is the template for generating language.doc. If you want to +change the language.doc, make the changes here and inside maintainers.txt. + +/****************************************************************************** + * %(editnote)s + * + * Copyright (C) 1997-2011 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + * $Id$ + */ +/*! \page langhowto Internationalization + +<h3>Support for multiple languages</h3> + +Doxygen has built-in support for multiple languages. This means that the +text fragments, generated by doxygen, can be produced in languages other +than English (the default). The output language is chosen through the +configuration file (with default name and known as Doxyfile). + +Currently (version %(doxVersion)s), %(numLangStr)s languages +are supported (sorted alphabetically): +%(supportedLangReadableStr)s. + +The table of information related to the supported languages follows. +It is sorted by language alphabetically. The <b>Status</b> column +was generated from sources and shows approximately the last version +when the translator was updated. + +%(informationTable)s + +Most people on the list have indicated that they were also busy +doing other things, so if you want to help to speed things up please +let them (or me) know. + +If you want to add support for a language that is not yet listed +please read the next section. + + +<h3>Adding a new language to doxygen</h3> + +This short HOWTO explains how to add support for the new language to Doxygen: + +Just follow these steps: +<ol> +<li>Tell me for which language you want to add support. If no one else + is already working on support for that language, you will be + assigned as the maintainer for the language. +<li>Create a copy of translator_en.h and name it + translator_\<your_2_letter_country_code\>.h + I'll use xx in the rest of this document. +<li>Add definition of the symbol for your language in the configure +at two places in the script: + <ol> + <li>After the <code>f_langs=</code> is statement, in lower case. + <li>In the string that following <code>\@allowed=</code> in upper case. + </ol> +The rerun the configure script such that is generates src/lang_cfg.h. +This file should now contain a \#define for your language code. +<li>Edit language.cpp: + Add a +\verbatim +#ifdef LANG_xx +#include<translator_xx.h> +#endif +\endverbatim + Remember to use the same symbol LANG_xx that you added to \c lang_cfg.h. + I.e., the \c xx should be capital letters that identify your language. + On the other hand, the \c xx inside your \c translator_xx.h should use + lower case. + <p>Now, in <code>setTranslator()</code> add +\verbatim +#ifdef LANG_xx + else if (L_EQUAL("your_language_name")) + { + theTranslator = new TranslatorYourLanguage; + } +#endif +\endverbatim + after the <code>if { ... }</code>. I.e., it must be placed after the code + for creating the English translator at the beginning, and before the + <code>else { ... }</code> part that creates the translator for the + default language (English again). +<li>Edit libdoxygen.pro.in and add \c translator_xx.h to + the \c HEADERS line. +<li>Edit <code>translator_xx.h</code>: + <ul> + <li>Rename <code>TRANSLATOR_EN_H</code> to <code>TRANSLATOR_XX_H</code> + twice (i.e. in the \c \#ifndef and \c \#define preprocessor commands at + the beginning of the file). + <li>Rename TranslatorEnglish to TranslatorYourLanguage + <li>In the member <code>idLanguage()</code> change "english" into the + name of your language (use lower case characters only). Depending + on the language you may also wish to change the member functions + latexLanguageSupportCommand(), idLanguageCharset() and others + (you will recognize them when you start the work). + <li>Edit all the strings that are returned by the member functions that + start with tr. + Try to match punctuation and capitals! + To enter special characters (with accents) you can: + <ul> + <li> Enter them directly if your keyboard supports that and you are + using a Latin-1 font. Doxygen will translate the + characters to proper \f$\mbox{\LaTeX}\f$ and leave the + HTML and man output for what it is (which is fine, if + idLanguageCharset() is set correctly). + <li> Use html codes like \ä for an a with an umlaut (i.e. ä). + See the HTML specification for the codes. + </ul> + </ul> +<li>Run configure and make again from the root of the distribution, + in order to regenerated the Makefiles. +<li>Now you can use <code>OUTPUT_LANGUAGE = your_language_name</code> + in the config file to generate output in your language. +<li>Send <code>translator_xx.h</code> to me so I can add it to doxygen. + Send also your name and e-mail address to be included in the + \c maintainers.txt list. +</ol> + + +<h3>Maintaining a language</h3> + +New versions of doxygen may use new translated sentences. In such +situation, the \c Translator class requires implementation of new +methods -- its interface changes. Of course, the English +sentences need to be translated to the other languages. At least, +new methods have to be implemented by the language-related +translator class; otherwise, doxygen wouldn't even compile. Waiting +until all language maintainers have translated the new sentences and +sent the results would not be very practical. The following text +describes the usage of translator adapters to solve the problem. + +<b>The role of Translator Adapters.</b> +Whenever the \c Translator class interface changes in the new +release, the new class \c TranslatorAdapter_x_y_z is added to the \c +translator_adapter.h file (here x, y, and z are numbers that +correspond to the current official version of doxygen). All +translators that previously derived from the \c Translator class now +derive from this adapter class. + +The \c TranslatorAdapter_x_y_z class implements the new, required +methods. If the new method replaces some similar but obsolete +method(s) (e.g. if the number of arguments changed and/or the +functionality of the older method was changed or enriched), the \c +TranslatorAdapter_x_y_z class may use the obsolete method to get the +result which is as close as possible to the older result in the +target language. If it is not possible, the result (the default +translation) is obtained using the English translator, which is (by +definition) always up-to-date. + +<b>For example,</b> when the new \c trFile() method with +parameters (to determine the capitalization of the first letter and +the singular/plural form) was introduced to replace the older method +\c trFiles() without arguments, the following code appeared in one +of the translator adapter classes: + +\verbatim + /*! This is the default implementation of the obsolete method + * used in the documentation of a group before the list of + * links to documented files. This is possibly localized. + */ + virtual QCString trFiles() + { return "Files"; } + + /*! This is the localized implementation of newer equivalent + * using the obsolete method trFiles(). + */ + virtual QCString trFile(bool first_capital, bool singular) + { + if (first_capital && !singular) + return trFiles(); // possibly localized, obsolete method + else + return english.trFile(first_capital, singular); + } +\endverbatim + +The \c trFiles() is not present in the \c TranslatorEnglish class, +because it was removed as obsolete. However, it was used until now +and its call was replaced by + +\verbatim + trFile(true, false) +\endverbatim + +in the doxygen source files. Probably, many language translators +implemented the obsolete method, so it perfectly makes sense to use +the same language dependent result in those cases. The \c +TranslatorEnglish does not implement the old method. It derives +from the abstract \c Translator class. On the other hand, the old +translator for a different language does not implement the new \c +trFile() method. Because of that it is derived from another base +class -- \c TranslatorAdapter_x_y_z. The \c TranslatorAdapter_x_y_z +class have to implement the new, required \c trFile() method. +However, the translator adapter would not be compiled if the \c +trFiles() method was not implemented. This is the reason for +implementing the old method in the translator adapter class (using +the same code, that was removed from the TranslatorEnglish). + +The simplest way would be to pass the arguments to the English +translator and to return its result. Instead, the adapter uses the +old \c trFiles() in one special case -- when the new +<code>trFile(true, false)</code> is called. This is the +mostly used case at the time of introducing the new method -- see +above. While this may look too complicated, the technique allows +the developers of the core sources to change the Translator +interface, while the users may not even notice the change. Of +course, when the new \c trFile() is used with different arguments, +the English result is returned and it will be noticed by non English +users. Here the maintainer of the language translator should +implement at least that one particular method. + +<b>What says the base class of a language translator?</b> +If the language translator class inherits from any adapter class the +maintenance is needed. In such case, the language translator is not +considered up-to-date. On the other hand, if the language +translator derives directly from the abstract class \c Translator, the +language translator is up-to-date. + +The translator adapter classes are chained so that the older +translator adapter class uses the one-step-newer translator adapter +as the base class. The newer adapter does less \e adapting work +than the older one. The oldest adapter class derives (indirectly) +from all of the adapter classes. The name of the adapter class is +chosen so that its suffix is derived from the previous official +version of doxygen that did not need the adapter. This way, one can +say approximately, when the language translator class was last +updated -- see details below. + +The newest translator adapter derives from the abstract \c +TranslatorAdapterBase class that derives directly from the abstract +\c Translator class. It adds only the private English-translator +member for easy implementation of the default translation inside the +adapter classes, and it also enforces implementation of one method +for noticing the user that the language translation is not up-to-date +(because of that some sentences in the generated files may appear in +English). + +Once the oldest adapter class is not used by any of the language +translators, it can be removed from the doxygen project. The +maintainers should try to reach the state with the minimal number of +translator adapter classes. + +<b>To simplify the maintenance of the language translator classes</b> +for the supported languages, the \c translator.py Python +script was developed (located in \c doxygen/doc directory). +It extracts the important information about obsolete and +new methods from the source files for each of the languages. +The information is stored in the <em>translator report</em> ASCII file +(%(translatorReportFileName)s). + +\htmlonly If you compiled this documentation +from sources and if you have also doxygen sources available the +link %(translatorReportLink)s should be valid.\endhtmlonly + +Looking at the base class of the language translator, the script +guesses also the status of the translator -- see the last column of +the table with languages above. The \c translator.py is called +automatically when the doxygen documentation is generated. You can +also run the script manually whenever you feel that it can help you. +Of course, you are not forced to use the results of the script. You +can find the same information by looking at the adapter class and +its base classes. + +<b>How should I update my language translator?</b> Firstly, you +should be the language maintainer, or you should let him/her know +about the changes. The following text was written for the language +maintainers as the primary audience. + +There are several approaches to be taken when updating your +language. If you are not extremely busy, you should always chose +the most radical one. When the update takes much more time than you +expected, you can always decide use some suitable translator adapter to +finish the changes later and still make your translator working. + +<b>The most radical way of updating the language translator</b> is +to make your translator class derive directly +from the abstract class \c Translator and provide translations for the +methods that are required to be implemented -- the compiler will +tell you if you forgot to implement some of them. If you are in +doubt, have a look at the \c TranslatorEnglish class to recognize the +purpose of the implemented method. Looking at the previously used +adapter class may help you sometimes, but it can also be misleading +because the adapter classes do implement also the obsolete methods +(see the previous \c trFiles() example). + +In other words, the up-to-date language translators do not need the +\c TranslatorAdapter_x_y_z classes at all, and you do not need to +implement anything else than the methods required by the Translator +class (i.e. the pure virtual methods of the \c Translator -- they +end with <code>=0;</code>). + +If everything compiles fine, try to run \c translator.py, and have a +look at the translator report (ASCII file) at the \c doxygen/doc +directory. Even if your translator is marked as up-to-date, there +still may be some remarks related to your source code. Namely, the +obsolete methods--that are not used at all--may be listed in the +section for your language. Simply, remove their code (and run the \c +translator.py again). Also, you will be informed when you forgot to +change the base class of your translator class to some newer adapter +class or directly to the Translator class. + +<b>If you do not have time to finish all the updates</b> you should +still start with <em>the most radical approach</em> as described +above. You can always change the base class to the translator +adapter class that implements all of the not-yet-implemented methods. + +<b>If you prefer to update your translator gradually</b>, have a look +at \c TranslatorEnglish (the \c translator_en.h file). Inside, you +will find the comments like <code>new since 1.2.4</code> that separate +always a number of methods that were implemented in the stated +version. Do implement the group of methods that are placed below the +comment that uses the same version numbers as your translator adapter +class. (For example, your translator class have to use the \c +TranslatorAdapter_1_2_4, if it does not implement the methods below +the comment <code>new since 1.2.4</code>. When you implement them, +your class should use newer translator adapter. + +Run the \c translator.py script occasionally and give it your \c xx +identification (from \c translator_xx.h) to create the translator +report shorter (also produced faster) -- it will contain only the +information related to your translator. Once you reach the state when +the base class should be changed to some newer adapter, you will see +the note in the translator report. + +Warning: Don't forget to compile Doxygen to discover, whether it is +compilable. The \c translator.py does not check if everything is +correct with respect to the compiler. Because of that, it may lie +sometimes about the necessary base class. + +<b>The most obsolete language translators</b> would lead to +implementation of too complicated adapters. Because of that, doxygen +developers may decide to derive such translators from the \c +TranslatorEnglish class, which is by definition always up-to-date. + +When doing so, all the missing methods will be replaced by the +English translation. This means that not-implemented methods will +always return the English result. Such translators are marked using +word \c obsolete. You should read it <b>really obsolete</b>. No +guess about the last update can be done. + +Often, it is possible to construct better result from the obsolete +methods. Because of that, the translator adapter classes should be +used if possible. On the other hand, implementation of adapters for +really obsolete translators brings too much maintenance and +run-time overhead. + +*/ + diff --git a/doc/lists.doc b/doc/lists.doc new file mode 100644 index 0000000..b79b2cd --- /dev/null +++ b/doc/lists.doc @@ -0,0 +1,125 @@ +/*! \page lists Lists + +Doxygen provides a number of ways to create lists of items. + +<b>Using dashes</b> + +By putting a number of column-aligned minus (-) signs at the start of a +line, a bullet list will automatically be generated. Instead of the minus +sign also plus (+) or asterisk (\*) can be used. + +Numbered lists can also be generated by using a minus followed by a hash +or by using a number followed by a dot. + +Nesting of lists is allowed and is based on indentation of the items.<p> +Here is an example: + +\verbatim + /*! + * A list of events: + * - mouse events + * -# mouse move event + * -# mouse click event\n + * More info about the click event. + * -# mouse double click event + * - keyboard events + * 1. key down event + * 2. key up event + * + * More text here. + */ +\endverbatim + The result will be: + + A list of events: + - mouse events + -# mouse move event + -# mouse click event\n + More info about the click event. + -# mouse double click event + - keyboard events + 1. key down event + 2. key up event + + More text here. + +If you use tabs for indentation within lists, please make sure +that \ref cfg_tab_size "TAB_SIZE" in the configuration file is set to +the correct tab size. + +You can end a list by starting a new paragraph or +by putting a dot (.) on an empty line at the same indentation level as the +list you would like to end. + +Here is an example that speaks for itself: + +\verbatim +/** + * Text before the list + * - list item 1 + * - sub item 1 + * - sub sub item 1 + * - sub sub item 2 + * . + * The dot above ends the sub sub item list. + * + * More text for the first sub item + * . + * The dot above ends the first sub item. + * + * More text for the first list item + * - sub item 2 + * - sub item 3 + * - list item 2 + * . + * More text in the same paragraph. + * + * More text in a new paragraph. + */ +\endverbatim + +<b>Using HTML commands</b> + +If you like you can also use HTML commands inside the documentation +blocks. + +Here is the above example with HTML commands: +\verbatim + /*! + * A list of events: + * <ul> + * <li> mouse events + * <ol> + * <li>mouse move event + * <li>mouse click event<br> + * More info about the click event. + * <li>mouse double click event + * </ol> + * <li> keyboard events + * <ol> + * <li>key down event + * <li>key up event + * </ol> + * </ul> + * More text here. + */ +\endverbatim + +\note In this case the indentation is not important. + +<b>Using \\arg or \\li</b> + +For compatibility with the Qt Software's internal documentation tool qdoc and +with KDoc, doxygen has two commands that can be used to create simple +unnested lists. + +See \ref cmdarg "\\arg" and \ref cmdli "\\li" for more info. + +\htmlonly +Go to the <a href="grouping.html">next</a> section or return to the + <a href="index.html">index</a>. +\endhtmlonly + +*/ + + diff --git a/doc/mailto.txt b/doc/mailto.txt new file mode 100644 index 0000000..0da948d --- /dev/null +++ b/doc/mailto.txt @@ -0,0 +1,5 @@ +up-to-date +prikryl@atlas.cz; dimitri@stack.nl; dimitri@stack.nl; ander.basaundi@gmail.com; gessos.paul@yahoo.gr; prikryl@atlas.cz; bartomeu@loteria3cornella.com; david@grupoikusnet.com + +translator based +krzysztof.kral@gmail.com; fly1004@gmail.com; jung5000@gmail.com; alessandro@falappa.net; aaf23@cam.ac.uk; Peter.Grotrian@pdv-FS.de; jensseidel@users.sf.net; boris.bralo@gmail.com; lian.yang.cn@gmail.com; lidaobing@gmail.com; liuwei@asiainfo.com; jun-chino@uol.com.br; ceefour@gauldong.net; contact@e-concept-applications.fr; xouthier@yahoo.fr; pouhan@gnotometrics.dk; eriksoe+doxygen@daimi.au.dk; dlin.tw@gmail.com; garywlee@gmail.com; max.pin@bitroit.com; jun-chino@uol.com.br; armen.tangamyan@anu.edu.au; niw3@yahoo.com; cav@cryptopro.ru; nadalizadeh@gmail.com; tuanvietkey@gmail.com; mikaelhallin@yahoo.se; stenedjo@yahoo.com; reddumy@yahoo.com; aiosup@yahoo.com; slavejovanovski@yahoo.com; goyoki@gmail.com; sun594@hotmail.com; naga@joyful.club.ne.jp; antti.a.laine@tut.fi; johan@zippysnoek.com; matjaz.ostroversnik@ostri.org; lejordet@gmail.com; akiss@users.sourceforge.net
\ No newline at end of file diff --git a/doc/maintainers.txt b/doc/maintainers.txt new file mode 100644 index 0000000..83c1120 --- /dev/null +++ b/doc/maintainers.txt @@ -0,0 +1,161 @@ +% $Id: maintainers.txt 774 2011-08-21 08:11:15Z dimitri $ +% +% The text is in UTF-8. Comments start with % sign at the beginning. +% There is one record for each language. The records are separated +% by the empty line and they do not contain empty lines. +% First line of the record identifies the translator class for the language. +% The following one or more lines contain information about +% the maintainer(s) for the language (one line, one maintainer) +% in the form: <readable name><colon><e-mail> +% If the readable name name starts with '--' it will be displayed in HTML +% output as a highlighted text notice related to the langluage (usually +% '-- searching for the maintainer --'). +% If the <e-mail> is prefixed [some_text] it is not displayed in the table +% of maintainers in the Doxygen documentation, nor it is used when building +% the mailto.txt by translator.py. The mark is displayed in the documentation +% instead. + +TranslatorAfrikaans +Johan Prinsloo: johan at zippysnoek dot com + +TranslatorArabic +Moaz Reyad: [resigned] moazreyad at yahoo dot com +-- searching for the maintainer --: [Please, try to help to find someone.] + +TranslatorArmenian +Armen Tangamyan: armen dot tangamyan at anu dot edu dot au + +TranslatorBrazilian +Fabio "FJTC" Jun Takada Chino: jun-chino at uol dot com dot br + +TranslatorCatalan +Maximiliano Pin: max dot pin at bitroit dot com +Albert Mora: [unreachable] amora at iua dot upf dot es + +TranslatorChinese +Lian Yang: lian dot yang dot cn at gmail dot com +Li Daobing: lidaobing at gmail dot com +Wei Liu: liuwei at asiainfo dot com + +TranslatorChinesetraditional +Daniel YC Lin: dlin dot tw at gmail dot com +Gary Lee: garywlee at gmail dot com + +TranslatorCroatian +Boris Bralo: boris dot bralo at gmail dot com + +TranslatorCzech +Petr Přikryl: prikryl at atlas dot cz + +TranslatorDanish +Poul-Erik Hansen: pouhan at gnotometrics dot dk +Erik Søe Sørensen: eriksoe+doxygen at daimi dot au dot dk + +TranslatorDutch +Dimitri van Heesch: dimitri at stack dot nl + +TranslatorEnglish +Dimitri van Heesch: dimitri at stack dot nl + +TranslatorEsperanto +Ander Martínez: ander dot basaundi at gmail dot com + +TranslatorFinnish +Antti Laine: antti dot a dot laine at tut dot fi + +TranslatorFrench +David Martinet: contact at e-concept-applications dot fr +Xavier Outhier: xouthier at yahoo dot fr + +TranslatorGerman +Peter Grotrian: Peter dot Grotrian at pdv-FS dot de +Jens Seidel: jensseidel at users dot sf dot net + +TranslatorGreek +Paul Gessos: gessos dot paul at yahoo dot gr + +TranslatorHungarian +Ákos Kiss: akiss at users dot sourceforge dot net +Földvári György: [unreachable] foldvari lost at cyberspace + +TranslatorIndonesian +Hendy Irawan: ceefour at gauldong dot net + +TranslatorItalian +Alessandro Falappa: alessandro at falappa dot net +Ahmed Aldo Faisal: aaf23 at cam dot ac dot uk + +TranslatorJapanese +Hiroki Iseri: goyoki at gmail dot com +Ryunosuke Satoh: sun594 at hotmail dot com +Kenji Nagamatsu: naga at joyful dot club dot ne dot jp +Iwasa Kazmi: [unreachable] iwasa at cosmo-system dot jp + +TranslatorKorean +Kim Taedong: fly1004 at gmail dot com +SooYoung Jung: jung5000 at gmail dot com +Richard Kim: [unreachable] ryk at dspwiz dot com + +TranslatorLithuanian +Tomas Simonaitis: [unreachable] haden at homelan dot lt +Mindaugas Radzius: [unreachable] mindaugasradzius at takas dot lt +Aidas Berukstis: [unreachable] aidasber at takas dot lt +-- searching for the maintainer --: [Please, try to help to find someone.] + +TranslatorNorwegian +Lars Erik Jordet: lejordet at gmail dot com + +TranslatorMacedonian +Slave Jovanovski: slavejovanovski at yahoo dot com + +TranslatorPersian +Ali Nadalizadeh: nadalizadeh at gmail dot com + +TranslatorPolish +Piotr Kaminski: [unreachable] Piotr dot Kaminski at ctm dot gdynia dot pl +Grzegorz Kowal: [unreachable] g_kowal at poczta dot onet dot pl +Krzysztof Kral: krzysztof dot kral at gmail dot com + +TranslatorPortuguese +Rui Godinho Lopes: [resigned] rgl at ruilopes dot com +Fabio "FJTC" Jun Takada Chino: jun-chino at uol dot com dot br + +TranslatorRomanian +Ionut Dumitrascu: reddumy at yahoo dot com +Alexandru Iosup: aiosup at yahoo dot com + +TranslatorRussian +Alexandr Chelpanov: cav at cryptopro dot ru + +TranslatorSerbian +Dejan Milosavljevic: [unreachable] dmilos at email dot com + +TranslatorSerbianCyrilic +Nedeljko Stefanovic: stenedjo at yahoo dot com + +TranslatorSlovak +% Stanislav Kudláč: [resigned] skudlac at pobox dot sk +Kali+Laco Švec: [the Slovak language advisors] +Petr Přikryl: prikryl at atlas dot cz + +TranslatorSlovene +Matjaž Ostroveršnik: matjaz dot ostroversnik at ostri dot org + +TranslatorSpanish +Bartomeu: bartomeu at loteria3cornella dot com +Francisco Oltra Thennet: [unreachable] foltra at puc dot cl +David Vaquero: david at grupoikusnet dot com + +TranslatorSwedish +Mikael Hallin: mikaelhallin at yahoo dot se + +TranslatorTurkish +Emin Ilker Cetinbas: niw3 at yahoo dot com + +TranslatorUkrainian +Olexij Tkatchenko: [resigned] olexij at tkatchenko dot com +-- searching for the maintainer --: [Please, try to help to find someone.] + +TranslatorVietnamese +Dang Minh Tuan: tuanvietkey at gmail dot com + diff --git a/doc/markdown.doc b/doc/markdown.doc new file mode 100644 index 0000000..d0243dd --- /dev/null +++ b/doc/markdown.doc @@ -0,0 +1,644 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page markdown Markdown support + +[TOC] + +[Markdown] support +was introduced in doxygen version 1.8.0. It is a plain text formatting +syntax written by John Gruber, with the following underlying design goal: + +> The design goal for Markdown's formatting syntax is to +> make it as readable as possible. The idea is that a Markdown-formatted +> document should be publishable as-is, as plain text, without +> looking like it's been marked up with tags or formatting instructions. +> While Markdown's syntax has been influenced by several existing +> text-to-HTML filters, the single biggest source of inspiration +> for Markdown's syntax is the format of plain text email. + +In the \ref markdown_std "next section" the standard Markdown features +are briefly discussed. The reader is referred to the [Markdown site][markdown] +for more details. + +Some enhancements were made, for instance [PHP Markdown Extra][mdextra], and +[GitHub flavored Markdown][github]. The section \ref markdown_extra discusses +the extensions that doxygen supports. + +Finally section \ref markdown_dox discusses some specifics for doxygen's +implementation of the Markdown standard. + +[markdown]: http://daringfireball.net/projects/markdown +[mdextra]: http://michelf.com/projects/php-markdown/extra/ +[github]: http://github.github.com/github-flavored-markdown/ + +\section markdown_std Standard Markdown + +\subsection md_para Paragraphs + +Even before doxygen had Markdown support it supported the same way +of paragraph handling as Markdown: to make a paragraph you just separate +consecutive lines of text by one or more blank lines. + +An example: + + Here is text for one paragraph. + + We continue with more text in another paragraph. + +\subsection md_headers Headers + +Just like Markdown, doxygen supports two types of headers + +Level 1 or 2 headers can be made as the follows + + This is an level 1 header + ========================= + + This is an level 2 header + ------------------------- + +A header is followed by a line containing only ='s or -'s. +Note that the exact amount of ='s or -'s is not important as long as +there are at least two. + +Alternatively, you can use #'s at the start of a line to make a header. +The number of #'s at the start of the line determines the level (up to 6 levels are supported). +You can end a header by any number of #'s. + +Here is an example: + + # This is a level 1 header + + ### This is level 3 header ####### + +\subsection md_blockquotes Block quotes + +Block quotes can be created by starting each line with one or more >'s, +similar to what is used in text-only emails. + + > This is a block quote + > spanning multiple lines + +Lists and code blocks (see below) can appear inside a quote block. +Quote blocks can also be nested. + +Note that doxygen requires that you put a space after the (last) > character +to avoid false positives, i.e. when writing + + 0 if OK\n + >1 if NOK + +the second line will not be seen as a block quote. + +\subsection md_lists Lists + +Simple bullet lists can be made by starting a line with -, +, or *. + + - Item 1 + + More text for this item. + + - Item 2 + + nested list item. + + another nested item. + - Item 3 + +List items can span multiple paragraphs (if each paragraph starts with +the proper indentation) and lists can be nested. +You can also make a numbered list like so + + 1. First item. + 2. Second item. + +Make sure to also read \ref mddox_lists for doxygen specifics. + +\subsection md_codeblock Code Blocks + +Preformatted verbatim blocks can be created by indenting +each line in a block of text by at least 4 extra spaces + + This a normal paragraph + + This is a code block + + We continue with a normal paragraph again. + +Doxygen will remove the mandatory indentation from the code block. +Note that you cannot start a code block in the middle of a paragraph +(i.e. the line preceding the code block must be empty). + +See section \ref mddox_code_blocks for more info how doxygen handles +indentation as this is slightly different than standard Markdown. + +\subsection md_rulers Horizontal Rulers + +A horizontal ruler will be produced for lines containing at least three or more +hyphens, asterisks, or underscores. The line may also include any amount of whitespace. + +Examples: + + - - - + ______ + +Note that using asterisks in comment blocks does not work. See +\ref mddox_stars for details. + +\subsection md_emphasis Emphasis + +To emphasize a text fragment you start and end the fragment with an underscore or star. +Using two stars or underscores will produce strong emphasis. + +Examples: + + *single asterisks* + + _single underscores_ + + **double asterisks** + + __double underscores__ + +See section \ref mddox_emph_spans for more info how doxygen handles +emphasis spans slightly different than standard Markdown. + +\subsection md_codespan code spans + +To indicate a span of code, you should wrap it in backticks (`). Unlike code blocks, +code spans appear inline in a paragraph. An example: + + Use the `printf()` function. + +To show a literal backtick inside a code span use double backticks, i.e. + + To assign the output of command `ls` to `var` use ``var=`ls```. + +See section \ref mddox_code_spans for more info how doxygen handles +code spans slightly different than standard Markdown. + +\subsection md_links Links + +Doxygen supports both styles of make links defined by Markdown: *inline* and *reference*. + +For both styles the link definition starts with the link text delimited by [square +brackets]. + +\subsubsection md_inlinelinks Inline Links + +For an inline link the link text is followed by a URL and an optional link title which +together are enclosed in a set of regular parenthesis. +The link title itself is surrounded by quotes. + +Examples: + + [The link text](http://example.net/) + [The link text](http://example.net/ "Link title") + [The link text](/relative/path/to/index.html "Link title") + [The link text](somefile.html) + +In addition doxygen provides a similar way to link a documented entity: + + [The link text](@ref MyClass) + +\subsubsection md_reflinks Reference Links + +Instead of putting the URL inline, you can also define the link separately +and then refer to it from within the text. + +The link definition looks as follows: + + [link name]: http://www.example.com "Optional title" + +Instead of double quotes also single quotes or parenthesis can +be used for the title part. + +Once defined, the link looks as follows + + [link text][link name] + +If the link text and name are the same, also + + [link name][] + +or even + + [link name] + +can be used to refer to the link. +Note that the link name matching is not case sensitive +as is shown in the following example: + + I get 10 times more traffic from [Google] than from + [Yahoo] or [MSN]. + + [google]: http://google.com/ "Google" + [yahoo]: http://search.yahoo.com/ "Yahoo Search" + [msn]: http://search.msn.com/ "MSN Search" + +Link definitions will not be visible in the output. + +Like for inline links doxygen also supports \@ref inside a link definition: + + [myclass]: @ref MyClass "My class" + +\subsection md_images Images + +Markdown syntax for images is similar to that for links. +The only difference is an additional ! before the link text. + +Examples: + + ![Caption text](/path/to/img.jpg) + ![Caption text](/path/to/img.jpg "Image title") + ![Caption text][img def] + ![img def] + + [img def]: /path/to/img.jpg "Optional Title" + +Also here you can use \@ref to link to an image: + + ![Caption text](@ref image.png) + ![img def] + + [img def]: @ref image.png "Caption text" + +The caption text is optional. + +\subsection md_autolink Automatic Linking + +To create a link to an URL or e-mail address Markdown supports the following +syntax: + + <http://www.example.com> + <address@example.com> + +Note that doxygen will also produce the links without the angle brackets. + +\section markdown_extra Markdown Extensions + +\subsection md_toc Table of Contents + +Doxygen supports a special link marker `[TOC]` which can be placed in a page +to produce a table of contents at the start of the page, listing all sections. + +Note that using `[TOC]` is the same as using a +\ref cmdtableofcontents "\\tableofcontents" command. + +\subsection md_tables Tables + +Of the features defined by "Markdown Extra" is support for +<a href="http://michelf.com/projects/php-markdown/extra/#table">simple tables</a>: + +A table consists of a header line, a separator line, and at least one +row line. Table columns are separated by the pipe (|) character. + +Here is an example: + + First Header | Second Header + ------------- | ------------- + Content Cell | Content Cell + Content Cell | Content Cell + +which will produce the following table: + +First Header | Second Header +------------- | ------------- +Content Cell | Content Cell +Content Cell | Content Cell + +Column alignment can be controlled via one or two colons +at the header separator line: + + | Right | Center | Left | + | ----: | :----: | :---- | + | 10 | 10 | 10 | + | 1000 | 1000 | 1000 | + +which will look as follows: + +| Right | Center | Left | +| ----: | :----: | :---- | +| 10 | 10 | 10 | +| 1000 | 1000 | 1000 | + +\subsection md_fenced Fenced Code Blocks + +Another feature defined by "Markdown Extra" is support for +<a href="http://michelf.com/projects/php-markdown/extra/#fenced-code-blocks"> +fenced code blocks</a>: + +A fenced code block does not require indentation, and is +defined by a pair of "fence lines". Such a line consists of 3 or +more tilde (~) characters on a line. The end of the block should have the +same number of tildes. Here is an example: + + + This is a paragraph introducing: + + ~~~~~~~~~~~~~~~~~~~~~ + a one-line code block + ~~~~~~~~~~~~~~~~~~~~~ + +By default the output is the same as for a normal code block. + +For languages supported by doxygen you can also make the code block +appear with syntax highlighting. To do so you need to +indicate the typical file extension that corresponds to the +programming language after the opening fence. For highlighting according +to the Python language for instance, you would need to write the following: + + ~~~~~~~~~~~~~{.py} + # A class + class Dummy: + pass + ~~~~~~~~~~~~~ + +which will produce: +~~~~~~~~~~~~~{.py} +# A class +class Dummy: + pass +~~~~~~~~~~~~~ + +and for C you would write: + + ~~~~~~~~~~~~~~~{.c} + int func(int a,int b) { return a*b; } + ~~~~~~~~~~~~~~~ + +which will produce: + +~~~~~~~~~~~~~~~{.c} +int func(int a,int b) { return a*b; } +~~~~~~~~~~~~~~~ + +The curly braces and dot are optional by the way. + +\subsection md_header_id Header Id Attributes + +Standard Markdown has no support for labeling headers, which +is a problem if you want to link to a section. + +PHP Markdown Extra allows you to label a header by adding +the following to the header + + Header 1 {#labelid} + ======== + + ## Header 2 ## {#labelid2} + +To link to a section in the same comment block you can use + + [Link text](#labelid) + +to link to a section in general, doxygen allows you to use \@ref + + [Link text](@ref labelid) + +Note this only works for the headers of level 1 to 4. + +\section markdown_dox Doxygen specifics + +Even though doxygen tries to following the Markdown standard as closely as +possible, there are couple of deviation and doxygen specifics additions. + +\subsection md_page_header Including Markdown files as pages + +Doxygen can process files with Markdown formatting. +For this to work the extension for such a file should +be `.md` or `.markdown` (see +\ref cfg_extension_mapping "EXTENSION_MAPPING" if your Markdown files have +a different extension, and use `md` as the name of the parser). +Each file is converted to a page (see the \ref cmdpage "page" command for +details). + +By default the name and title of the page are derived from the file name. +If the file starts with a level 1 header however, it is used as the title +of the page. If you specify a label for the +header (as shown \ref md_header_id "here") doxygen will use that as the +page name. + +If the label is called `index` or `mainpage` doxygen will put the +documentation on the front page (`index.html`). + +Here is an example of a file `README.md` that will appear as the main page +when processed by doxygen: + + My Main Page {#mainpage} + ============ + + Documentation that will appear on the main page + +\subsection md_html_blocks Treatment of HTML blocks + +Markdown is quite strict in the way it processes block-level HTML: + +> block-level HTML elements — e.g. +> `<div>`, `<table>`, `<pre>`, `<p>`, etc. — +> must be separated from surrounding content by blank lines, +> and the start and end tags of the block should not be indented +> with tabs or spaces. + +Doxygen does not have this requirement, and will also process +Markdown formatting inside such HTML blocks. The only exception is +`<pre>` blocks, which are passed untouched (handy for ASCII art). + +Doxygen will not process Markdown formatting inside verbatim or code blocks, +and in other sections that need to be processed without changes +(for instance formulas or inline dot graphs). + +\subsection mddox_code_blocks Code Block Indentation + +Markdown allows both a single tab or 4 spaces to start a code block. +Since doxygen already replaces tabs by spaces before doing Markdown +processing, the effect will only be same if TAB_SIZE in the config file +has been set to 4. When it is set to a higher value spaces will be +present in the code block. A lower value will prevent a single tab to be +interpreted as the start of a code block. + +With Markdown any block that is indented by 4 spaces (and 8 spaces +inside lists) is treated as a code block. This indentation amount +is absolute, i.e. counting from the start of the line. + +Since doxygen comments can appear at any indentation level +that is required by the programming language, it +uses a relative indentation instead. The amount of +indentation is counted relative to the preceding paragraph. +In case there is no preceding paragraph (i.e. you want to start with a +code block), the minimal amount of indentation of the whole comment block +is used as a reference. + +In most cases this difference does not result in different output. +Only if you play with the indentation of paragraphs the difference +is noticeable: + + text + + text + + text + + code + +In this case Markdown will put the word code in a code block, +whereas Doxygen will treat it as normal text, since although the absolute +indentation is 4, the indentation with respect to the previous paragraph +is only 1. + +Note that list markers are not counted when determining the +relative indent: + + 1. Item1 + + More text for item1 + + 2. Item2 + + Code block for item2 + +For Item1 the indentation is 4 (when treating the list marker as whitespace), +so the next paragraph "More text..." starts at the same indentation level +and is therefore not seen as a code block. + +\subsection mddox_emph_spans Emphasis limits + +Unlike standard Markdown, doxygen will not touch internal underscores or +stars, so the following will appear as-is: + + a_nice_identifier + +Futhermore, a `*` or `_` only starts an emphasis if +- it is followed by an alphanumberical character, and +- it is preceded by a space, newline, or one the following characters `<{([,:;` + +An emphasis ends if +- it is not followed by an alphanumerical character, and +- it is not preceded by a space, newline, or one the following characters `({[<=+-\@` + +Lastly, the span of the emphasis is limited to a single paragraph. + + +\subsection mddox_code_spans Code Spans Limits + +Note that unlike standard Markdown, doxygen leaves the following untouched. + + A `cool' word in a `nice' sentence. + +In other words; a single quote cancels the special treatment of a code span +wrapped in a pair of backtick characters. This extra restriction was +added for backward compatibility reasons. + +\subsection mddox_lists Lists Extensions + +With Markdown two lists separated by an empty line are joined together into +a single list which can be rather unexpected and many people consider it to +be a bug. Doxygen, however, will make two separate lists as you would expect. + +Example: + + - Item1 of list 1 + - Item2 of list 1 + + 1. Item1 of list 2 + 2. Item2 of list 2 + +With Markdown the actual numbers you use to mark the list have no +effect on the HTML output Markdown produces. I.e. it treats the +following as a list with 3 numbered items: + + 1. Item1 + 1. Item2 + 1. Item3 + +Doxygen however requires that the numbers used as marks are in +strictly ascending order; an item with a equal or lower number than +the preceding item, will start a new list. For example: + + 1. Item1 of list 1 + 3. Item2 of list 1 + 2. Item1 of list 2 + 4. Item2 of list 2 + +will produce: + +1. Item1 of list 1 +3. Item2 of list 1 +2. Item1 of list 2 +4. Item2 of list 2 + +Historically doxygen has an additional way to create numbered +lists by using `-#` markers: + + -# item1 + -# item2 + +\subsection mddox_stars Use of asterisks + +Special care has to be taken when using *'s in a comment block +to start a list or make a ruler. + +Doxygen will strip off any leading *'s from the comment before doing +Markdown processing. So although the following works fine + +@verbatim + /** A list: + * * item1 + * * item2 + */ +@endverbatim + +When you remove the leading *'s doxygen will strip the other stars +as well, making the list disappear! + +Rulers created with *'s will not be visible at all. They only work +in Markdown files. + +\subsection mddox_limits Limits on markup scope + +To avoid that a stray * or _ matches something many paragraphs later, +and shows everything in between with emphasis, doxygen limits the scope +of a * and _ to a single paragraph. + +For a code span, between the starting and ending backtick only two +new lines are allowed. + +Also for links there are limits; the link text, and link title each can +contain only one new line, the URL may not contain any newlines. + +\section markdown_debug Debugging of problems + +When doxygen parses the source code it first extracts the comments blocks, +then passes these through the Markdown preprocessor. The output of the +Markdown preprocessing consists of text with \ref cmd_intro "special commands" +and \ref htmlcmds "HTML commands". +A second pass takes the output of the Markdown preprocessor and +converts it into the various output formats. + +During Markdown preprocessing no errors are produced. Anything that +does not fit the Markdown syntax is simply passed on as-is. In the subsequent +parsing phase this could lead to errors, which may not always be obvious +as they are based on the intermediate format. + +To see the result after Markdown processing you can run doxygen with the +`-d Markdown` option. It will then print each comment block before and +after Markdown processing. + +\htmlonly +Go to the <a href="lists.html">next</a> section or return to the + <a href="index.html">index</a>. +\endhtmlonly + +*/ diff --git a/doc/output.doc b/doc/output.doc new file mode 100644 index 0000000..d34e057 --- /dev/null +++ b/doc/output.doc @@ -0,0 +1,64 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page output Output Formats + +\addindex output formats + +The following output formats are \e directly supported by doxygen: +<dl> +<dt><b>HTML</b> +<dd>Generated if \c GENERATE_HTML is set to \c YES in the configuration file. +<dt>\f$\mbox{\LaTeX}\f$ +<dd>Generated if \c GENERATE_LATEX is set to \c YES in the configuration file. +<dt><b>Man pages</b> +<dd>Generated if \c GENERATE_MAN is set to \c YES in the configuration file. +<dt><b>RTF</b> +<dd>Generated if \c GENERATE_RTF is set to \c YES in the configuration file.<p> + Note that the RTF output probably only looks nice with Microsoft's + Word. If you have success with other programs, please let me know. +<dt><b>XML</b> +<dd>Generated if \c GENERATE_XML is set to \c YES in the configuration file.<p> +</dl> + +The following output formats are \e indirectly supported by doxygen: +<dl> +<dt><b>Compiled HTML Help</b> (a.k.a. Windows 98 help) +<dd>Generated by Microsoft's HTML Help workshop from the HTML output if + \c GENERATE_HTMLHELP is set to \c YES. +<dt><b>Qt Compressed Help (.qch)</b> +<dd>Generated by Qt's qhelpgenerator tool from the HTML output if + \c GENERATE_QHP is set to \c YES. +<dt><b>Eclipse Help</b> +<dd>Generated from HTML with a special index file that is generated when + \c GENERATE_ECLIPSEHELP is set to \c YES. +<dt><b>XCode DocSets</b> +<dd>Compiled from HTML with a special index file that is generated when + \c GENERATE_DOCSET is set to \c YES. +<dt><b>PostScript</b> +<dd>Generated from the \f$\mbox{\LaTeX}\f$ output by + running <code>make ps</code> in the output directory. + For the best results \c PDF_HYPERLINKS should be set to \c NO. +<dt><b>PDF</b>\htmlonly \endhtmlonly +<dd>Generated from the \f$\mbox{\LaTeX}\f$ output by + running <code>make pdf</code> in the output directory. + To improve the PDF output, you typically would want to enable the use + of \c pdflatex by setting \ref cfg_use_pdflatex "USE_PDFLATEX" to \c YES in the + configuration file. In order to get hyperlinks in the PDF file you also need to enable + \ref cfg_pdf_hyperlinks "PDF_HYPERLINKS". +</dl> + +*/ diff --git a/doc/perlmod.doc b/doc/perlmod.doc new file mode 100644 index 0000000..b375e15 --- /dev/null +++ b/doc/perlmod.doc @@ -0,0 +1,193 @@ +/*! \page perlmod Perl Module Output + +\addindex perlmod + +<p>Since version 1.2.18, Doxygen can generate a new output format we +have called the "Perl Module output format". It has been +designed as an intermediate format that can be used to generate new +and customized output without having to modify the Doxygen source. +Therefore, its purpose is similar to the XML output format that can be +also generated by Doxygen. The XML output format is more standard, +but the Perl Module output format is possibly simpler and easier to +use. + +<p>The Perl Module output format is still experimental at the moment +and could be changed in incompatible ways in future versions, although +this should not be very probable. It is also lacking some features of +other Doxygen backends. However, it can be already used to generate +useful output, as shown by the Perl Module-based LaTeX generator. + +<p>Please report any bugs or problems you find in the Perl Module +backend or the Perl Module-based LaTeX generator to the +doxygen-develop mailing list. Suggestions are welcome as well. + +\section using_perlmod_fmt Usage + +<p>When the <b>GENERATE_PERLMOD</b> tag is enabled in the Doxyfile, +running Doxygen generates a number of files in the <b>perlmod/</b> +subdirectory of your output directory. These files are the following: + +<ul> + +<li><b>DoxyDocs.pm</b>. This is the Perl module that actually +contains the documentation, in the Perl Module format described +\ref doxydocs_format "below". + +<li><b>DoxyModel.pm</b>. This Perl module describes the structure of +<b>DoxyDocs.pm</b>, independently of the actual documentation. See +\ref doxymodel_format "below" for details. + +<li><b>doxyrules.make</b>. This file contains the make rules to build +and clean the files that are generated from the Doxyfile. Also +contains the paths to those files and other relevant information. This +file is intended to be included by your own Makefile. + +<li><b>Makefile</b>. This is a simple Makefile including +<b>doxyrules.make</b>. + +</ul> + +<p>To make use of the documentation stored in DoxyDocs.pm you can use +one of the default Perl Module-based generators provided by Doxygen +(at the moment this includes the Perl Module-based LaTeX generator, +see \ref perlmod_latex "below") or write your own customized +generator. This should not be too hard if you have some knowledge of +Perl and it's the main purpose of including the Perl Module backend in +Doxygen. See \ref doxydocs_format "below" for details on how +to do this. + +\section perlmod_latex Using the LaTeX generator. + +<p>The Perl Module-based LaTeX generator is pretty experimental and +incomplete at the moment, but you could find it useful nevertheless. +It can generate documentation for functions, typedefs and variables +within files and classes and can be customized quite a lot by +redefining TeX macros. However, there is still no documentation on +how to do this. + +<p>Setting the <b>PERLMOD_LATEX</b> tag to <b>YES</b> in the Doxyfile +enables the creation of some additional files in the <b>perlmod/</b> +subdirectory of your output directory. These files contain the Perl +scripts and LaTeX code necessary to generate PDF and DVI output from +the Perl Module output, using PDFLaTeX and LaTeX respectively. Rules +to automate the use of these files are also added to +<b>doxyrules.make</b> and the <b>Makefile</b>. + +<p>The additional generated files are the following: + +<ul> + +<li><b>doxylatex.pl</b>. This Perl script uses DoxyDocs.pm and +DoxyModel.pm to generate <b>doxydocs.tex</b>, a TeX file containing +the documentation in a format that can be accessed by LaTeX code. This +file is not directly LaTeXable. + +<li><b>doxyformat.tex</b>. This file contains the LaTeX code that +transforms the documentation from doxydocs.tex into LaTeX text +suitable to be LaTeX'ed and presented to the user. + +<li><b>doxylatex-template.pl</b>. This Perl script uses DoxyModel.pm +to generate <b>doxytemplate.tex</b>, a TeX file defining default +values for some macros. doxytemplate.tex is included by +doxyformat.tex to avoid the need of explicitly defining some macros. + +<li><b>doxylatex.tex</b>. This is a very simple LaTeX document that +loads some packages and includes doxyformat.tex and doxydocs.tex. This +document is LaTeX'ed to produce the PDF and DVI documentation by the +rules added to <b>doxyrules.make</b>. + +</ul> + +\subsection pm_pdf_gen Creation of PDF and DVI output + +<p>To try this you need to have installed LaTeX, PDFLaTeX and the +packages used by <b>doxylatex.tex</b>. + +<ol> + +<li>Update your Doxyfile to the latest version using: + +<pre>doxygen -u Doxyfile</pre> + +<li>Set both <b>GENERATE_PERLMOD</b> and <b>PERLMOD_LATEX</b> tags to +YES in your Doxyfile. + +<li>Run Doxygen on your Doxyfile: + +<pre>doxygen Doxyfile</pre> + +<li>A <b>perlmod/</b> subdirectory should have appeared in your output +directory. Enter the <b>perlmod/</b> subdirectory and run: + +<pre>make pdf</pre> + +<p>This should generate a <b>doxylatex.pdf</b> with the documentation +in PDF format. + +<li>Run: + +<pre>make dvi</pre> + +<p>This should generate a <b>doxylatex.dvi</b> with the documentation +in DVI format. + +</ol> + +\section doxydocs_format Documentation format. + +<p>The Perl Module documentation generated by Doxygen is stored in +<b>DoxyDocs.pm</b>. This is a very simple Perl module that contains +only two statements: an assignment to the variable <b>$doxydocs</b> and +the customary <b>1;</b> statement which usually ends Perl modules. +The documentation is stored in the variable <b>$doxydocs</b>, which +can then be accessed by a Perl script using <b>DoxyDocs.pm</b>. + +<p><b>$doxydocs</b> contains a tree-like structure composed of three +types of nodes: strings, hashes and lists. + +<ul> + +<li><b>Strings</b>. These are normal Perl strings. They can be of +any length can contain any character. Their semantics depends on +their location within the tree. This type of node has no children. + +<li><b>Hashes</b>. These are references to anonymous Perl hashes. A +hash can have multiple fields, each with a different key. The value +of a hash field can be a string, a hash or a list, and its semantics +depends on the key of the hash field and the location of the hash +within the tree. The values of the hash fields are the children of +the node. + +<li><b>Lists</b>. These are references to anonymous Perl lists. A +list has an undefined number of elements, which are the children of +the node. Each element has the same type (string, hash or list) and +the same semantics, depending on the location of the list within the +tree. + +</ul> + +<p>As you can see, the documentation contained in <b>$doxydocs</b> +does not present any special impediment to be processed by a simple +Perl script. +<!-- +To be able to generate meaningful output using the +documentation contained in <b>$doxydocs</b> you'll probably need to +know the semantics of the nodes of the documentation tree, which we +present in \ref perlmod_tree "this page". +--> + +\section doxymodel_format Data structure + +<p>You might be interested in processing the documentation contained +in <b>DoxyDocs.pm</b> without needing to take into account the +semantics of each node of the documentation tree. For this purpose, +Doxygen generates a <b>DoxyModel.pm</b> file which contains a data +structure describing the type and children of each node in the +documentation tree. + +<p>The rest of this section is to be written yet, but in the meantime +you can look at the Perl scripts generated by Doxygen (such as +<b>doxylatex.pl</b> or <b>doxytemplate-latex.pl</b>) to get an idea on +how to use <b>DoxyModel.pm</b>. + +*/ diff --git a/doc/perlmod_tree.doc b/doc/perlmod_tree.doc new file mode 100644 index 0000000..be71315 --- /dev/null +++ b/doc/perlmod_tree.doc @@ -0,0 +1,377 @@ +/*! \page perlmod_tree Perl Module Tree Nodes + +<h2>Nodes in the documentation tree of the Perl Module output +format.</h2> + +This is a description of the structure of the documentation tree in +<b>DoxyDocs.pm</b>. Each item in the list below describes a node in +the tree, and the format of the description is as follows: + +<ul> +<li>[ key => ] <b>Name</b> <i>(type)</i>. Explanation of the content. +</ul> + +Where + +<ul> + +<li>The "key =>" part only appears if the parent node is a hash. +"key" is the key for this node. + +<li><b>"Name"</b> is a unique name for the node, defined in +DoxyModel.pm. + +<li><i>"(type)"</i> is the type of the node: "string" for string +nodes, "hash" for hash nodes, "list" for list nodes, and "doc" for +documentation subtrees. The structure of documentation subtrees is +not described anywhere yet, but you can look for example at +<b>doxylatex.pl</b> to see how to process it. + +</ul> + +The meaning of each node in the documentation tree is as follows: +<ul> +<li> <b>Root</b> <i>(hash)</i>. Root node. +<ul> +<li>classes => <b>Classes</b> <i>(list)</i>. Documented classes. +<ul> +<li> <b>Class</b> <i>(hash)</i>. A documented class. +<ul> +<li>protected_members => <b>ClassProtectedMembers</b> <i>(hash)</i>. Information about the protected members in the class. +<ul> +<li>members => <b>ClassProtectedMemberList</b> <i>(list)</i>. protected member list. +<ul> +<li> <b>ClassProtectedMember</b> <i>(hash)</i>. A protected member. +<ul> +<li>protection => <b>ClassProtectedMemberProtection</b> <i>(string)</i>. Protection of the protected member. +<li>detailed => <b>ClassProtectedMemberDetailed</b> <i>(hash)</i>. Detailed information about the protected member. +<ul> +<li>doc => <b>ClassProtectedMemberDetailedDoc</b> <i>(doc)</i>. Detailed documentation for the protected member. +<li>see => <b>ClassProtectedMemberSee</b> <i>(doc)</i>. "See also" documentation for the protected member. +</ul> +<li>kind => <b>ClassProtectedMemberKind</b> <i>(string)</i>. Kind of protected member (usually "variable"). +<li>name => <b>ClassProtectedMemberName</b> <i>(string)</i>. Name of the protected member. +<li>type => <b>ClassProtectedMemberType</b> <i>(string)</i>. Data type of the protected member. +</ul> +</ul> +</ul> +<li>detailed => <b>ClassDetailed</b> <i>(hash)</i>. Detailed information about the class. +<ul> +<li>doc => <b>ClassDetailedDoc</b> <i>(doc)</i>. Detailed documentation block for the class. +</ul> +<li>protected_typedefs => <b>ClassProtectedTypedefs</b> <i>(hash)</i>. Information about the protected typedefs in the class. +<ul> +<li>members => <b>ClassProtectedTypedefList</b> <i>(list)</i>. protected typedef list. +<ul> +<li> <b>ClassProtectedTypedef</b> <i>(hash)</i>. A protected typedef. +<ul> +<li>protection => <b>ClassProtectedTypedefProtection</b> <i>(string)</i>. Protection of the protected typedef. +<li>detailed => <b>ClassProtectedTypedefDetailed</b> <i>(hash)</i>. Detailed information about the protected typedef. +<ul> +<li>doc => <b>ClassProtectedTypedefDetailedDoc</b> <i>(doc)</i>. Detailed documentation for the protected typedef. +<li>see => <b>ClassProtectedTypedefSee</b> <i>(doc)</i>. "See also" documentation for the protected typedef. +</ul> +<li>kind => <b>ClassProtectedTypedefKind</b> <i>(string)</i>. Kind of protected typedef (usually "typedef"). +<li>name => <b>ClassProtectedTypedefName</b> <i>(string)</i>. Name of the protected typedef. +<li>type => <b>ClassProtectedTypedefType</b> <i>(string)</i>. Data type of the protected typedef. +</ul> +</ul> +</ul> +<li>name => <b>ClassName</b> <i>(string)</i>. Name of the class. +<li>private_members => <b>ClassPrivateMembers</b> <i>(hash)</i>. Information about the private members in the class. +<ul> +<li>members => <b>ClassPrivateMemberList</b> <i>(list)</i>. private member list. +<ul> +<li> <b>ClassPrivateMember</b> <i>(hash)</i>. A private member. +<ul> +<li>protection => <b>ClassPrivateMemberProtection</b> <i>(string)</i>. Protection of the private member. +<li>detailed => <b>ClassPrivateMemberDetailed</b> <i>(hash)</i>. Detailed information about the private member. +<ul> +<li>doc => <b>ClassPrivateMemberDetailedDoc</b> <i>(doc)</i>. Detailed documentation for the private member. +<li>see => <b>ClassPrivateMemberSee</b> <i>(doc)</i>. "See also" documentation for the private member. +</ul> +<li>kind => <b>ClassPrivateMemberKind</b> <i>(string)</i>. Kind of private member (usually "variable"). +<li>name => <b>ClassPrivateMemberName</b> <i>(string)</i>. Name of the private member. +<li>type => <b>ClassPrivateMemberType</b> <i>(string)</i>. Data type of the private member. +</ul> +</ul> +</ul> +<li>private_typedefs => <b>ClassPrivateTypedefs</b> <i>(hash)</i>. Information about the private typedefs in the class. +<ul> +<li>members => <b>ClassPrivateTypedefList</b> <i>(list)</i>. private typedef list. +<ul> +<li> <b>ClassPrivateTypedef</b> <i>(hash)</i>. A private typedef. +<ul> +<li>protection => <b>ClassPrivateTypedefProtection</b> <i>(string)</i>. Protection of the private typedef. +<li>detailed => <b>ClassPrivateTypedefDetailed</b> <i>(hash)</i>. Detailed information about the private typedef. +<ul> +<li>doc => <b>ClassPrivateTypedefDetailedDoc</b> <i>(doc)</i>. Detailed documentation for the private typedef. +<li>see => <b>ClassPrivateTypedefSee</b> <i>(doc)</i>. "See also" documentation for the private typedef. +</ul> +<li>kind => <b>ClassPrivateTypedefKind</b> <i>(string)</i>. Kind of private typedef (usually "typedef"). +<li>name => <b>ClassPrivateTypedefName</b> <i>(string)</i>. Name of the private typedef. +<li>type => <b>ClassPrivateTypedefType</b> <i>(string)</i>. Data type of the private typedef. +</ul> +</ul> +</ul> +<li>protected_methods => <b>ClassProtectedMethods</b> <i>(hash)</i>. Information about the protected methods in the class. +<ul> +<li>members => <b>ClassProtectedMethodList</b> <i>(list)</i>. protected method list. +<ul> +<li> <b>ClassProtectedMethod</b> <i>(hash)</i>. A protected method. +<ul> +<li>parameters => <b>ClassProtectedMethodParams</b> <i>(list)</i>. List of the parameters of the protected method. +<ul> +<li> <b>ClassProtectedMethodParam</b> <i>(hash)</i>. A parameter of the protected method. +<ul> +<li>declaration_name => <b>ClassProtectedMethodParamName</b> <i>(string)</i>. The name of the parameter. +<li>type => <b>ClassProtectedMethodParamType</b> <i>(string)</i>. The data type of the parameter. +</ul> +</ul> +<li>protection => <b>ClassProtectedMethodProtection</b> <i>(string)</i>. Protection of the protected method. +<li>virtualness => <b>ClassProtectedMethodVirtualness</b> <i>(string)</i>. Virtualness of the protected method. +<li>detailed => <b>ClassProtectedMethodDetailed</b> <i>(hash)</i>. Detailed information about the protected method. +<ul> +<li>params => <b>ClassProtectedMethodPDBlocks</b> <i>(list)</i>. List of parameter documentation blocks for the protected method. +<ul> +<li> <b>ClassProtectedMethodPDBlock</b> <i>(hash)</i>. A parameter documentation block for the protected method. +<ul> +<li>parameters => <b>ClassProtectedMethodPDParams</b> <i>(list)</i>. Parameter list for this parameter documentation block. +<ul> +<li> <b>ClassProtectedMethodPDParam</b> <i>(hash)</i>. A parameter documented by this documentation block. +<ul> +<li>name => <b>ClassProtectedMethodPDParamName</b> <i>(string)</i>. Name of the parameter. +</ul> +</ul> +<li>doc => <b>ClassProtectedMethodPDDoc</b> <i>(doc)</i>. Documentation for this parameter documentation block. +</ul> +</ul> +<li>doc => <b>ClassProtectedMethodDetailedDoc</b> <i>(doc)</i>. Detailed documentation for the protected method. +<li>see => <b>ClassProtectedMethodSee</b> <i>(doc)</i>. "See also" documentation for the protected method. +<li>return => <b>ClassProtectedMethodReturn</b> <i>(doc)</i>. Documentation about the return value of the protected method. +</ul> +<li>kind => <b>ClassProtectedMethodKind</b> <i>(string)</i>. Kind of protected method (usually "function"). +<li>name => <b>ClassProtectedMethodName</b> <i>(string)</i>. Name of the protected method. +<li>type => <b>ClassProtectedMethodType</b> <i>(string)</i>. Data type returned by the protected method. +<li>static => <b>ClassProtectedMethodStatic</b> <i>(string)</i>. Whether the protected method is static. +</ul> +</ul> +</ul> +<li>public_typedefs => <b>ClassPublicTypedefs</b> <i>(hash)</i>. Information about the public typedefs in the class. +<ul> +<li>members => <b>ClassPublicTypedefList</b> <i>(list)</i>. public typedef list. +<ul> +<li> <b>ClassPublicTypedef</b> <i>(hash)</i>. A public typedef. +<ul> +<li>protection => <b>ClassPublicTypedefProtection</b> <i>(string)</i>. Protection of the public typedef. +<li>detailed => <b>ClassPublicTypedefDetailed</b> <i>(hash)</i>. Detailed information about the public typedef. +<ul> +<li>doc => <b>ClassPublicTypedefDetailedDoc</b> <i>(doc)</i>. Detailed documentation for the public typedef. +<li>see => <b>ClassPublicTypedefSee</b> <i>(doc)</i>. "See also" documentation for the public typedef. +</ul> +<li>kind => <b>ClassPublicTypedefKind</b> <i>(string)</i>. Kind of public typedef (usually "typedef"). +<li>name => <b>ClassPublicTypedefName</b> <i>(string)</i>. Name of the public typedef. +<li>type => <b>ClassPublicTypedefType</b> <i>(string)</i>. Data type of the public typedef. +</ul> +</ul> +</ul> +<li>public_members => <b>ClassPublicMembers</b> <i>(hash)</i>. Information about the public members in the class. +<ul> +<li>members => <b>ClassPublicMemberList</b> <i>(list)</i>. public member list. +<ul> +<li> <b>ClassPublicMember</b> <i>(hash)</i>. A public member. +<ul> +<li>protection => <b>ClassPublicMemberProtection</b> <i>(string)</i>. Protection of the public member. +<li>detailed => <b>ClassPublicMemberDetailed</b> <i>(hash)</i>. Detailed information about the public member. +<ul> +<li>doc => <b>ClassPublicMemberDetailedDoc</b> <i>(doc)</i>. Detailed documentation for the public member. +<li>see => <b>ClassPublicMemberSee</b> <i>(doc)</i>. "See also" documentation for the public member. +</ul> +<li>kind => <b>ClassPublicMemberKind</b> <i>(string)</i>. Kind of public member (usually "variable"). +<li>name => <b>ClassPublicMemberName</b> <i>(string)</i>. Name of the public member. +<li>type => <b>ClassPublicMemberType</b> <i>(string)</i>. Data type of the public member. +</ul> +</ul> +</ul> +<li>private_methods => <b>ClassPrivateMethods</b> <i>(hash)</i>. Information about the private methods in the class. +<ul> +<li>members => <b>ClassPrivateMethodList</b> <i>(list)</i>. private method list. +<ul> +<li> <b>ClassPrivateMethod</b> <i>(hash)</i>. A private method. +<ul> +<li>parameters => <b>ClassPrivateMethodParams</b> <i>(list)</i>. List of the parameters of the private method. +<ul> +<li> <b>ClassPrivateMethodParam</b> <i>(hash)</i>. A parameter of the private method. +<ul> +<li>declaration_name => <b>ClassPrivateMethodParamName</b> <i>(string)</i>. The name of the parameter. +<li>type => <b>ClassPrivateMethodParamType</b> <i>(string)</i>. The data type of the parameter. +</ul> +</ul> +<li>protection => <b>ClassPrivateMethodProtection</b> <i>(string)</i>. Protection of the private method. +<li>virtualness => <b>ClassPrivateMethodVirtualness</b> <i>(string)</i>. Virtualness of the private method. +<li>detailed => <b>ClassPrivateMethodDetailed</b> <i>(hash)</i>. Detailed information about the private method. +<ul> +<li>params => <b>ClassPrivateMethodPDBlocks</b> <i>(list)</i>. List of parameter documentation blocks for the private method. +<ul> +<li> <b>ClassPrivateMethodPDBlock</b> <i>(hash)</i>. A parameter documentation block for the private method. +<ul> +<li>parameters => <b>ClassPrivateMethodPDParams</b> <i>(list)</i>. Parameter list for this parameter documentation block. +<ul> +<li> <b>ClassPrivateMethodPDParam</b> <i>(hash)</i>. A parameter documented by this documentation block. +<ul> +<li>name => <b>ClassPrivateMethodPDParamName</b> <i>(string)</i>. Name of the parameter. +</ul> +</ul> +<li>doc => <b>ClassPrivateMethodPDDoc</b> <i>(doc)</i>. Documentation for this parameter documentation block. +</ul> +</ul> +<li>doc => <b>ClassPrivateMethodDetailedDoc</b> <i>(doc)</i>. Detailed documentation for the private method. +<li>see => <b>ClassPrivateMethodSee</b> <i>(doc)</i>. "See also" documentation for the private method. +<li>return => <b>ClassPrivateMethodReturn</b> <i>(doc)</i>. Documentation about the return value of the private method. +</ul> +<li>kind => <b>ClassPrivateMethodKind</b> <i>(string)</i>. Kind of private method (usually "function"). +<li>name => <b>ClassPrivateMethodName</b> <i>(string)</i>. Name of the private method. +<li>type => <b>ClassPrivateMethodType</b> <i>(string)</i>. Data type returned by the private method. +<li>static => <b>ClassPrivateMethodStatic</b> <i>(string)</i>. Whether the private method is static. +</ul> +</ul> +</ul> +<li>public_methods => <b>ClassPublicMethods</b> <i>(hash)</i>. Information about the public methods in the class. +<ul> +<li>members => <b>ClassPublicMethodList</b> <i>(list)</i>. public method list. +<ul> +<li> <b>ClassPublicMethod</b> <i>(hash)</i>. A public method. +<ul> +<li>parameters => <b>ClassPublicMethodParams</b> <i>(list)</i>. List of the parameters of the public method. +<ul> +<li> <b>ClassPublicMethodParam</b> <i>(hash)</i>. A parameter of the public method. +<ul> +<li>declaration_name => <b>ClassPublicMethodParamName</b> <i>(string)</i>. The name of the parameter. +<li>type => <b>ClassPublicMethodParamType</b> <i>(string)</i>. The data type of the parameter. +</ul> +</ul> +<li>protection => <b>ClassPublicMethodProtection</b> <i>(string)</i>. Protection of the public method. +<li>virtualness => <b>ClassPublicMethodVirtualness</b> <i>(string)</i>. Virtualness of the public method. +<li>detailed => <b>ClassPublicMethodDetailed</b> <i>(hash)</i>. Detailed information about the public method. +<ul> +<li>params => <b>ClassPublicMethodPDBlocks</b> <i>(list)</i>. List of parameter documentation blocks for the public method. +<ul> +<li> <b>ClassPublicMethodPDBlock</b> <i>(hash)</i>. A parameter documentation block for the public method. +<ul> +<li>parameters => <b>ClassPublicMethodPDParams</b> <i>(list)</i>. Parameter list for this parameter documentation block. +<ul> +<li> <b>ClassPublicMethodPDParam</b> <i>(hash)</i>. A parameter documented by this documentation block. +<ul> +<li>name => <b>ClassPublicMethodPDParamName</b> <i>(string)</i>. Name of the parameter. +</ul> +</ul> +<li>doc => <b>ClassPublicMethodPDDoc</b> <i>(doc)</i>. Documentation for this parameter documentation block. +</ul> +</ul> +<li>doc => <b>ClassPublicMethodDetailedDoc</b> <i>(doc)</i>. Detailed documentation for the public method. +<li>see => <b>ClassPublicMethodSee</b> <i>(doc)</i>. "See also" documentation for the public method. +<li>return => <b>ClassPublicMethodReturn</b> <i>(doc)</i>. Documentation about the return value of the public method. +</ul> +<li>kind => <b>ClassPublicMethodKind</b> <i>(string)</i>. Kind of public method (usually "function"). +<li>name => <b>ClassPublicMethodName</b> <i>(string)</i>. Name of the public method. +<li>type => <b>ClassPublicMethodType</b> <i>(string)</i>. Data type returned by the public method. +<li>static => <b>ClassPublicMethodStatic</b> <i>(string)</i>. Whether the public method is static. +</ul> +</ul> +</ul> +</ul> +</ul> +<li>files => <b>Files</b> <i>(list)</i>. Documented files. +<ul> +<li> <b>File</b> <i>(hash)</i>. A documented file. +<ul> +<li>detailed => <b>FileDetailed</b> <i>(hash)</i>. Detailed information about the file. +<ul> +<li>doc => <b>FileDetailedDoc</b> <i>(doc)</i>. Detailed documentation block for the file. +</ul> +<li>functions => <b>FileFunctions</b> <i>(hash)</i>. Information about the functions in the file. +<ul> +<li>members => <b>FileFunctionList</b> <i>(list)</i>. function list. +<ul> +<li> <b>FileFunction</b> <i>(hash)</i>. A function. +<ul> +<li>parameters => <b>FileFunctionParams</b> <i>(list)</i>. List of the parameters of the function. +<ul> +<li> <b>FileFunctionParam</b> <i>(hash)</i>. A parameter of the function. +<ul> +<li>declaration_name => <b>FileFunctionParamName</b> <i>(string)</i>. The name of the parameter. +<li>type => <b>FileFunctionParamType</b> <i>(string)</i>. The data type of the parameter. +</ul> +</ul> +<li>protection => <b>FileFunctionProtection</b> <i>(string)</i>. Protection of the function. +<li>virtualness => <b>FileFunctionVirtualness</b> <i>(string)</i>. Virtualness of the function. +<li>detailed => <b>FileFunctionDetailed</b> <i>(hash)</i>. Detailed information about the function. +<ul> +<li>params => <b>FileFunctionPDBlocks</b> <i>(list)</i>. List of parameter documentation blocks for the function. +<ul> +<li> <b>FileFunctionPDBlock</b> <i>(hash)</i>. A parameter documentation block for the function. +<ul> +<li>parameters => <b>FileFunctionPDParams</b> <i>(list)</i>. Parameter list for this parameter documentation block. +<ul> +<li> <b>FileFunctionPDParam</b> <i>(hash)</i>. A parameter documented by this documentation block. +<ul> +<li>name => <b>FileFunctionPDParamName</b> <i>(string)</i>. Name of the parameter. +</ul> +</ul> +<li>doc => <b>FileFunctionPDDoc</b> <i>(doc)</i>. Documentation for this parameter documentation block. +</ul> +</ul> +<li>doc => <b>FileFunctionDetailedDoc</b> <i>(doc)</i>. Detailed documentation for the function. +<li>see => <b>FileFunctionSee</b> <i>(doc)</i>. "See also" documentation for the function. +<li>return => <b>FileFunctionReturn</b> <i>(doc)</i>. Documentation about the return value of the function. +</ul> +<li>kind => <b>FileFunctionKind</b> <i>(string)</i>. Kind of function (usually "function"). +<li>name => <b>FileFunctionName</b> <i>(string)</i>. Name of the function. +<li>type => <b>FileFunctionType</b> <i>(string)</i>. Data type returned by the function. +<li>static => <b>FileFunctionStatic</b> <i>(string)</i>. Whether the function is static. +</ul> +</ul> +</ul> +<li>name => <b>FileName</b> <i>(string)</i>. Name of the file. +<li>variables => <b>FileVariables</b> <i>(hash)</i>. Information about the variables in the file. +<ul> +<li>members => <b>FileVariableList</b> <i>(list)</i>. variable list. +<ul> +<li> <b>FileVariable</b> <i>(hash)</i>. A variable. +<ul> +<li>protection => <b>FileVariableProtection</b> <i>(string)</i>. Protection of the variable. +<li>detailed => <b>FileVariableDetailed</b> <i>(hash)</i>. Detailed information about the variable. +<ul> +<li>doc => <b>FileVariableDetailedDoc</b> <i>(doc)</i>. Detailed documentation for the variable. +<li>see => <b>FileVariableSee</b> <i>(doc)</i>. "See also" documentation for the variable. +</ul> +<li>kind => <b>FileVariableKind</b> <i>(string)</i>. Kind of variable (usually "variable"). +<li>name => <b>FileVariableName</b> <i>(string)</i>. Name of the variable. +<li>type => <b>FileVariableType</b> <i>(string)</i>. Data type of the variable. +</ul> +</ul> +</ul> +<li>typedefs => <b>FileTypedefs</b> <i>(hash)</i>. Information about the typedefs in the file. +<ul> +<li>members => <b>FileTypedefList</b> <i>(list)</i>. typedef list. +<ul> +<li> <b>FileTypedef</b> <i>(hash)</i>. A typedef. +<ul> +<li>protection => <b>FileTypedefProtection</b> <i>(string)</i>. Protection of the typedef. +<li>detailed => <b>FileTypedefDetailed</b> <i>(hash)</i>. Detailed information about the typedef. +<ul> +<li>doc => <b>FileTypedefDetailedDoc</b> <i>(doc)</i>. Detailed documentation for the typedef. +<li>see => <b>FileTypedefSee</b> <i>(doc)</i>. "See also" documentation for the typedef. +</ul> +<li>kind => <b>FileTypedefKind</b> <i>(string)</i>. Kind of typedef (usually "typedef"). +<li>name => <b>FileTypedefName</b> <i>(string)</i>. Name of the typedef. +<li>type => <b>FileTypedefType</b> <i>(string)</i>. Data type of the typedef. +</ul> +</ul> +</ul> +</ul> +</ul> +</ul> +</ul> + +*/ diff --git a/doc/preprocessing.doc b/doc/preprocessing.doc new file mode 100644 index 0000000..db5418f --- /dev/null +++ b/doc/preprocessing.doc @@ -0,0 +1,263 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page preprocessing Preprocessing + +Source files that are used as input to doxygen can be parsed by doxygen's +built-in C-preprocessor. + +By default doxygen does only partial preprocessing. That is, it +evaluates conditional compilation statements (like \#if) and +evaluates macro definitions, but it does not perform macro expansion. + +So if you have the following code fragment +\verbatim +#define VERSION 200 +#define CONST_STRING const char * + +#if VERSION >= 200 + static CONST_STRING version = "2.xx"; +#else + static CONST_STRING version = "1.xx"; +#endif +\endverbatim + +Then by default doxygen will feed the following to its parser: + +\verbatim +#define VERSION +#define CONST_STRING + + static CONST_STRING version = "2.xx"; +\endverbatim + +You can disable all preprocessing by setting +\ref cfg_enable_preprocessing "ENABLE_PREPROCESSING" to \c +NO in the configuration file. In the case above doxygen will then read +both statements, i.e.: + +\verbatim + static CONST_STRING version = "2.xx"; + static CONST_STRING version = "1.xx"; +\endverbatim + +In case you want to expand the \c CONST_STRING macro, you should set the +\ref cfg_macro_expansion "MACRO_EXPANSION" tag in the config file +to \c YES. Then the result after preprocessing becomes: + +\verbatim +#define VERSION +#define CONST_STRING + + static const char * version = "1.xx"; +\endverbatim + +Note that doxygen will now expand \e all macro definitions +(recursively if needed). This is often too much. Therefore, doxygen also +allows you to expand only those defines that you explicitly +specify. For this you have to set the +\ref cfg_expand_only_predef "EXPAND_ONLY_PREDEF" tag to \c YES +and specify the macro definitions after +the \ref cfg_predefined "PREDEFINED" or +\ref cfg_expand_as_defined "EXPAND_AS_DEFINED" tag. + +A typically example where some help from the preprocessor is needed is +when dealing with Microsoft's __declspec language extension. The same goes +for GNU's __attribute__ extension. Here is an example function. + +\verbatim +extern "C" void __declspec(dllexport) ErrorMsg( String aMessage,...); +\endverbatim + +When nothing is done, doxygen will be confused and see __declspec as +some sort of function. To help doxygen one typically uses the following +preprocessor settings: + +\verbatim +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = YES +EXPAND_ONLY_PREDEF = YES +PREDEFINED = __declspec(x)= +\endverbatim + +This will make sure the __declspec(dllexport) is removed before doxygen +parses the source code. + +For a more complex example, suppose you have the following obfuscated +code fragment of an abstract base class called \c IUnknown: + +\verbatim +/*! A reference to an IID */ +#ifdef __cplusplus +#define REFIID const IID & +#else +#define REFIID const IID * +#endif + + +/*! The IUnknown interface */ +DECLARE_INTERFACE(IUnknown) +{ + STDMETHOD(HRESULT,QueryInterface) (THIS_ REFIID iid, void **ppv) PURE; + STDMETHOD(ULONG,AddRef) (THIS) PURE; + STDMETHOD(ULONG,Release) (THIS) PURE; +}; +\endverbatim + +without macro expansion doxygen will get confused, but we may not want to +expand the REFIID macro, because it is documented and the user that reads +the documentation should use it when implementing the interface. + +By setting the following in the config file: + +\verbatim +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = YES +EXPAND_ONLY_PREDEF = YES +PREDEFINED = "DECLARE_INTERFACE(name)=class name" \ + "STDMETHOD(result,name)=virtual result name" \ + "PURE= = 0" \ + THIS_= \ + THIS= \ + __cplusplus +\endverbatim + +we can make sure that the proper result is fed to doxygen's parser: +\verbatim +/*! A reference to an IID */ +#define REFIID + +/*! The IUnknown interface */ +class IUnknown +{ + virtual HRESULT QueryInterface ( REFIID iid, void **ppv) = 0; + virtual ULONG AddRef () = 0; + virtual ULONG Release () = 0; +}; +\endverbatim + +Note that the \ref cfg_predefined "PREDEFINED" tag accepts function +like macro definitions +(like \c DECLARE_INTERFACE ), normal macro +substitutions (like \c PURE and \c THIS) and plain +defines (like \c __cplusplus). + +Note also that preprocessor definitions that are normally defined +automatically by the preprocessor (like \c __cplusplus), have to be defined +by hand with doxygen's parser (this is done because these defines +are often platform/compiler specific). + +In some cases you may want to substitute a macro name or function by +something else without exposing the result to further macro substitution. +You can do this but using the <code>:=</code> operator instead of +<code>=</code> + +As an example suppose we have the following piece of code: +\verbatim +#define QList QListT +class QListT +{ +}; +\endverbatim + +Then the only way to get doxygen interpret this as a class definition +for class QList is to define: +\verbatim +PREDEFINED = QListT:=QList +\endverbatim + +Here is an example provided by Valter Minute and Reyes Ponce that helps +doxygen to wade through the boilerplate code in Microsoft's ATL \& MFC +libraries: + +\verbatim +PREDEFINED = "DECLARE_INTERFACE(name)=class name" \ + "STDMETHOD(result,name)=virtual result name" \ + "PURE= = 0" \ + THIS_= \ + THIS= \ + DECLARE_REGISTRY_RESOURCEID=// \ + DECLARE_PROTECT_FINAL_CONSTRUCT=// \ + "DECLARE_AGGREGATABLE(Class)= " \ + "DECLARE_REGISTRY_RESOURCEID(Id)= " \ + DECLARE_MESSAGE_MAP= \ + BEGIN_MESSAGE_MAP=/* \ + END_MESSAGE_MAP=*/// \ + BEGIN_COM_MAP=/* \ + END_COM_MAP=*/// \ + BEGIN_PROP_MAP=/* \ + END_PROP_MAP=*/// \ + BEGIN_MSG_MAP=/* \ + END_MSG_MAP=*/// \ + BEGIN_PROPERTY_MAP=/* \ + END_PROPERTY_MAP=*/// \ + BEGIN_OBJECT_MAP=/* \ + END_OBJECT_MAP()=*/// \ + DECLARE_VIEW_STATUS=// \ + "STDMETHOD(a)=HRESULT a" \ + "ATL_NO_VTABLE= " \ + "__declspec(a)= " \ + BEGIN_CONNECTION_POINT_MAP=/* \ + END_CONNECTION_POINT_MAP=*/// \ + "DECLARE_DYNAMIC(class)= " \ + "IMPLEMENT_DYNAMIC(class1, class2)= " \ + "DECLARE_DYNCREATE(class)= " \ + "IMPLEMENT_DYNCREATE(class1, class2)= " \ + "IMPLEMENT_SERIAL(class1, class2, class3)= " \ + "DECLARE_MESSAGE_MAP()= " \ + TRY=try \ + "CATCH_ALL(e)= catch(...)" \ + END_CATCH_ALL= \ + "THROW_LAST()= throw"\ + "RUNTIME_CLASS(class)=class" \ + "MAKEINTRESOURCE(nId)=nId" \ + "IMPLEMENT_REGISTER(v, w, x, y, z)= " \ + "ASSERT(x)=assert(x)" \ + "ASSERT_VALID(x)=assert(x)" \ + "TRACE0(x)=printf(x)" \ + "OS_ERR(A,B)={ #A, B }" \ + __cplusplus \ + "DECLARE_OLECREATE(class)= " \ + "BEGIN_DISPATCH_MAP(class1, class2)= " \ + "BEGIN_INTERFACE_MAP(class1, class2)= " \ + "INTERFACE_PART(class, id, name)= " \ + "END_INTERFACE_MAP()=" \ + "DISP_FUNCTION(class, name, function, result, id)=" \ + "END_DISPATCH_MAP()=" \ + "IMPLEMENT_OLECREATE2(class, name, id1, id2, id3, id4,\ + id5, id6, id7, id8, id9, id10, id11)=" +\endverbatim + +As you can see doxygen's preprocessor is quite powerful, but if you want +even more flexibility you can always write an input filter and specify it +after the \ref cfg_input_filter "INPUT_FILTER" tag. + +If you are unsure what the effect of doxygen's preprocessing will be +you can run doxygen as follows: +\verbatim + doxygen -d Preprocessor +\endverbatim +This will instruct doxygen to dump the input sources to standard output after +preprocessing has been done (Hint: set <code>QUIET = YES</code> and +<code>WARNINGS = NO</code> in the configuration file to disable any other +output). + +\htmlonly +Go to the <a href="external.html">next</a> section or return to the + <a href="index.html">index</a>. +\endhtmlonly + +*/ diff --git a/doc/searching.doc b/doc/searching.doc new file mode 100644 index 0000000..b3e4fd9 --- /dev/null +++ b/doc/searching.doc @@ -0,0 +1,158 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page searching Searching + +Doxygen indexes your source code in various ways to make it easier +to navigate and find what you are looking for. +There are also situations however where you want to +search for something by keyword rather than browse for it. + +HTML browsers by default have no search capabilities that work across multiple +pages, so either doxygen or external tools need to help to facilitate +this feature. + +Doxygen has 6 different ways to add searching to the HTML output, each of which +has its own advantages and disadvantages: + +<h2>1. Client side searching</h2> + The easiest way to enable searching is to enable the built-in client + side search engine. This engine is implemented using Javascript and DHTML + only and runs entirely on the clients browser. So no additional tooling is + required to make it work. + + To enable it set + \ref cfg_searchengine "SEARCHENGINE" to \c YES in the config file + and make sure \ref cfg_server_based_search "SERVER_BASED_SEARCH" is set + to \c NO. + + An additional advantage of this method is that it provides live + searching, i.e. the search results are presented and adapted as you type. + + This method also has its drawbacks: it is limited to searching for symbols + only. It does not provide full text search capabilities, and it does not + scale well to very large projects (then searching becomes very slow). + +<h2>2. Server side searching</h2> + If you plan to put the HTML documentation on a web server, and that + web server has the capability to process PHP code, then you can also use + doxygen's built-in server side search engine. + + To enable this set both + \ref cfg_searchengine "SEARCHENGINE" and + \ref cfg_server_based_search "SERVER_BASED_SEARCH" to \c YES in the config + file. + + Advantages over the client side search engine are that it provides full + text search and it scales well to large projects. + + Disadvantages are that it does not work locally (i.e. using a file:// URL) + and that it does not provide live search capabilities. + +<h2>3. Windows Compiled HTML Help</h2> + If you are running doxygen on Windows, then you can make a + compiled HTML Help file (.chm) out of the HTML files produced by doxygen. + This is a single file containing all HTML files and it also includes a + search index. There are viewers for this format on many platforms, + and Windows even supports it natively. + + To enable this set \ref cfg_generate_htmlhelp "GENERATE_HTMLHELP" to \c YES + in the config file. To let doxygen compile the HTML Help file for you, + you also need to specify the path to the HTML compiler (hhc.exe) using the + \ref cfg_hhc_location "HHC_LOCATION" config option and the name of the + resulting CHM file using \ref cfg_chm_file "CHM_FILE". + + An advantage of this method is that the result is a single file that can + easily be distributed. It also provides full text search. + + Disadvantages are that compiling the CHM file only works on Windows + and requires Microsoft's HTML compiler, which is not very actively supported + by Microsoft. Although the tool works fine for most people, it can + sometimes crash for no apparent reason (how typical). + +<h2>4. Mac OS X Doc Sets</h2> + If you are running doxygen on Mac OS X 10.5 or higher, + then you can make a "doc set" out of the HTML files produced by doxygen. + A doc set consists of a single directory with a special structure + containing the HTML files along with a precompiled search index. + A doc set can be embedded in Xcode (the integrated development environment + provided by Apple). + + To enable the creation of doc sets set \ref cfg_generate_docset "GENERATE_DOCSET" + to \c YES in the config file. There are a couple of other doc set related + options you may want to set. After doxygen has finished you will find + a Makefile in the HTML output directory. Running "make install" on this + Makefile will compile and install the doc set. + See <a href="http://developer.apple.com/tools/creatingdocsetswithdoxygen.html">this + article</a> for more info. + + Advantage of this method is that it nicely integrates with the Xcode + development environment, allowing for instance to click on an identifier + in the editor and jump to the corresponding section in the doxygen + documentation. + + Disadvantage is that it only works in combination with Xcode on MacOSX. + +<h2>5. Qt Compressed Help</h2> + If you develop for or want to install the Qt application framework, + you will get an application + called <a href="http://doc.trolltech.com/4.6/assistant-manual.html">Qt assistant</a>. + This is a help viewer for Qt Compressed Help files (.qch). + + To enable this feature set \ref cfg_generate_qhp "GENERATE_QHP" to \c YES. + You also need to fill in the other Qt help related options, such as + \ref cfg_qhp_namespace "QHP_NAMESPACE", + \ref cfg_qhg_location "QHG_LOCATION", + \ref cfg_qhp_virtual_folder "QHP_VIRTUAL_FOLDER". + See <a href="http://doc.trolltech.com/qq/qq28-qthelp.html#htmlfilesandhelpprojects">this article</a> + for more info. + + Feature wise the Qt compressed help feature is comparable with the CHM + output, with the additional advantage that compiling the QCH file is + not limited to Windows. + + Disadvantage is that it requires setting up a Qt 4.5 (or better) for + each user, or distributing the Qt help assistant along with + the documentation, which is complicated by the fact that it is not + available as a separate package at this moment. + +<h2>6. Eclipse Help Plugin</h2> + If you use eclipse, you can embed the documentation generated by + doxygen as a help plugin. It will then appear as a topic in the help + browser that can be started from "Help contents" in the Help menu. + Eclipse will generate a search index for the documentation when you + first search for an keyword. + + To enable the help plugin set + \ref cfg_generate_eclipsehelp "GENERATE_ECLIPSEHELP" to \c YES, + and define a unique identifier for your project via + \ref cfg_eclipse_doc_id "ECLIPSE_DOC_ID", i.e.: +\verbatim + GENERATE_ECLIPSEHELP = YES + ECLIPSE_DOC_ID = com.yourcompany.yourproject +\endverbatim + then create the \c com.yourcompany.yourproject directory (so with + the same name as the value of \c ECLIPSE_DOC_ID) in the + \c plugin directory of eclipse and after doxygen completes copy + to contents of the help output directory to + the \c com.yourcompany.yourproject directory. + Then restart eclipse to make let it find the new plugin. + + The eclipse help plugin provides similar functionality as the + Qt compressed help or CHM output, but it does require that Eclipse is + installed and running. + +*/ diff --git a/doc/starting.doc b/doc/starting.doc new file mode 100644 index 0000000..4e5481e --- /dev/null +++ b/doc/starting.doc @@ -0,0 +1,328 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page starting Getting started +\tableofcontents + +The executable \c doxygen is the main program that parses the sources and +generates the documentation. See section \ref doxygen_usage for more +detailed usage information. + +Optionally, the executable \c doxywizard can be used, which is a +\ref doxywizard_usage "graphical front-end" for editing the configuration file +that is used by doxygen and for running doxygen in a graphical environment. +For Mac OS X doxywizard will be started by clicking on the Doxygen application +icon. + +The following figure shows the relation between the tools and the flow +of information between them (it looks complex but that's only because it +tries to be complete): + +\image html infoflow.png "Doxygen information flow" +\image latex infoflow.eps "Doxygen information flow" width=14cm + +\section step0 Step 0: Check if doxygen supports your programming language + +First, assure that your programming language has a reasonable chance of being +recognized by Doxygen. These languages are supported by default: C, C++, C#, +Objective-C, IDL, Java, VHDL, PHP, Python, Tcl, Fortran, and D. It +is possible to configure certain file type extensions to use certain parsers: +see the \ref cfg_extension_mapping "Configuration/ExtensionMappings" for details. +Also, completely different languages can be supported by using preprocessor +programs: see the <a href="http://www.doxygen.org/helpers.html">Helpers page</a> +for details. + +\section step1 Step 1: Creating a configuration file + +Doxygen uses a configuration file to determine all of its settings. +Each project should get its own configuration file. A project can consist +of a single source file, but can also be an entire source tree that is +recursively scanned. + +To simplify the creation of a configuration file, doxygen can create a +template configuration file for you. To do this call \c doxygen +from the command line with the \c -g option: +\verbatim +doxygen -g <config-file> +\endverbatim + +where \<config-file\> is the name of the configuration file. If you omit +the file name, a file named \c Doxyfile will be created. If a file with the +name \<config-file\> already exists, doxygen will rename it to +\<config-file\>.bak before generating the configuration template. +If you use <code>-</code> (i.e. the minus sign) as the file name then +doxygen will try to read the configuration file from standard +input (<code>stdin</code>), which can be useful for scripting. + +The configuration file has a format that is similar to that of a (simple) +Makefile. It consists of a number of assignments (tags) of the form: + +<tt>TAGNAME = VALUE</tt> or <br> +<tt>TAGNAME = VALUE1 VALUE2 ... </tt><br> + +You can probably leave the values of most tags in a generated template +configuration file to their default value. See section \ref config for +more details about the configuration file. + +If you do not wish to edit the config file with a text editor, you should +have a look at \ref doxywizard_usage "doxywizard", which is a GUI +front-end that can create, read and write doxygen configuration files, +and allows setting configuration options by entering them via dialogs. + +For a small project consisting of a few C and/or C++ source +and header files, you can leave +\ref cfg_input "INPUT" tag empty and doxygen will search for sources in +the current directory. + +If you have a larger project consisting of a source directory or tree +you should assign the root directory or +directories to the \ref cfg_input "INPUT" tag, and add one or more file +patterns to the \ref cfg_file_patterns "FILE_PATTERNS" tag +(for instance `*.cpp *.h`). Only files that match one of the +patterns will be parsed (if the patterns are omitted a list of +typical patterns is used for the types of files doxygen supports). +For recursive parsing of a source tree you must set +the \ref cfg_recursive "RECURSIVE" tag to \c YES. To further fine-tune the +list of files that is parsed the \ref cfg_exclude "EXCLUDE" and +\ref cfg_exclude_patterns "EXCLUDE_PATTERNS" tags can be used. +To omit all \c test directories from a source tree for instance, one could use: + +\verbatim EXCLUDE_PATTERNS = */test/* +\endverbatim + +Doxygen looks at the file's extension to determine how to parse a file, +using the following table: + +Extension | Language +---------:|--------- +.idl |IDL +.ddl |IDL +.odl |IDL +.java |Java +.cs |C# +.d |D +.php |PHP +.php4 |PHP +.php5 |PHP +.inc |PHP +.phtml |PHP +.m |Objective-C +.M |Objective-C +.mm |Objective-C +.py |Python +.f |Fortran +.for |Fortran +.f90 |Fortran +.vhd |VHDL +.vhdl |VHDL +.tcl |TCL +.ucf |VHDL +.qsf |VHDL +.md |Markdown +.markdown |Markdown + +Any other extension is parsed as if it is a C/C++ file. + +\anchor extract_all +If you start using doxygen for an existing project (thus without any +documentation that doxygen is aware of), you can still get an idea of +what the structure is and how the documented result would look like. +To do so, you must set +the \ref cfg_extract_all "EXTRACT_ALL" tag in the configuration file +to \c YES. Then, doxygen will pretend everything in your sources is documented. +Please note that as a consequence warnings about undocumented members +will not be generated as long as \ref cfg_extract_all "EXTRACT_ALL" is +set to \c YES. + +To analyze an existing piece of software it is useful to cross-reference +a (documented) entity with its definition in the source files. Doxygen will +generate such cross-references if you set +the \ref cfg_source_browser "SOURCE_BROWSER" tag to \c YES. +It can also include the sources directly into the documentation by setting +\ref cfg_inline_sources "INLINE_SOURCES" to \c YES (this can be handy for +code reviews for instance). + +\section step2 Step 2: Running doxygen + +To generate the documentation you can now enter: +\verbatim +doxygen <config-file> +\endverbatim + +Depending on your settings doxygen will create \c html, \c rtf, +\c latex, \c xml and/or \c man directories inside the output directory. +As the names suggest these directories contain the +generated documentation in HTML, RTF, \f$\mbox{\LaTeX}\f$, XML and +Unix-Man page format. + +The default output directory is the directory in which \c doxygen +is started. The root directory to which the output is written can be changed +using the \ref cfg_output_directory "OUTPUT_DIRECTORY". The format specific +directory within the output directory can be selected using the +\ref cfg_html_output "HTML_OUTPUT", \ref cfg_rtf_output "RTF_OUTPUT", +\ref cfg_latex_output "LATEX_OUTPUT", \ref cfg_xml_output "XML_OUTPUT", +and \ref cfg_man_output "MAN_OUTPUT" +tags of the configuration file. If the output directory does not exist, +\c doxygen will try to create it for you (but it will \e not try to create +a whole path recursively, like <code>mkdir -p</code> does). + +\subsection html_out HTML output +\addindex browser +The generated HTML documentation can be viewed by pointing a HTML browser +to the \c index.html file in the \c html directory. For the best results +a browser that supports cascading style sheets (CSS) should be used +(I'm using Mozilla Firefox, Google Chrome, Safari, and sometimes +IE8, IE9, and Opera to test the generated output). + +Some of the features the HTML section (such as +\ref cfg_generate_treeview "GENERATE_TREEVIEW" or the search engine) +require a browser that supports Dynamic HTML and Javascript enabled. + +\subsection latex_out LaTeX output +\addindex LaTeX +The generated \f$\mbox{\LaTeX}\f$ documentation must first be compiled by +a \f$\mbox{\LaTeX}\f$ compiler (I use a recent teTeX distribution for Linux +and MacOSX and MikTex for Windows). +To simplify the process of compiling the generated +documentation, \c doxygen writes a \c Makefile into the \c latex directory +(on the Windows platform also a \c make.bat batch file is generated). + +The contents and targets in the \c Makefile depend on the setting of +\ref cfg_use_pdflatex "USE_PDFLATEX". If it is disabled (set to \c NO), then +typing \c make in the \c latex directory a \c dvi file called \c refman.dvi +will be generated. This file can then be viewed using \c xdvi or +converted into a PostScript file \c refman.ps by +typing `make ps` (this requires `dvips`). + +To put 2 pages on one physical page use `make ps_2on1` instead. +The resulting PostScript file can be send to a PostScript +printer. If you do not have a PostScript printer, you can try to use +ghostscript to convert PostScript into something your printer understands. + +Conversion to PDF is also possible if you have installed the ghostscript +interpreter; just type `make pdf` (or `make pdf_2on1`). + +To get the best results for PDF output you should set +the \ref cfg_pdf_hyperlinks "PDF_HYPERLINKS" +and \ref cfg_use_pdflatex "USE_PDFLATEX" tags to \c YES. +In this case the \c Makefile will only contain a target to build +\c refman.pdf directly. + +\subsection rtf_out RTF output +\addindex RTF +Doxygen combines the RTF output to a single file called refman.rtf. This +file is optimized for importing into the Microsoft Word. Certain information +is encoded using so called fields. To show the actual value you need to +select all (Edit - select all) and then toggle fields (right click and select +the option from the drop down menu). + +\subsection xml_out XML output +\addindex XML +The XML output consists of a structured "dump" of the information gathered +by doxygen. Each compound (class/namespace/file/...) has its own XML file +and there is also an index file called `index.xml`. + +A file called `combine.xslt` +XSLT script is also generated and can be used to combine all XML files +into a single file. + +Doxygen also generates two XML schema files `index.xsd` +(for the index file) and `compound.xsd` (for the compound files). +This schema file describes the possible elements, their attributes and +how they are structured, i.e. it the describes the grammar of the XML +files and can be used for validation or to steer XSLT scripts. + +In the `addon/doxmlparser` directory you can find a parser library for reading +the XML output produced by doxygen in an incremental way +(see `addon/doxmlparser/include/doxmlintf.h` for the interface of the library) + +\subsection man_out Man page output +The generated man pages can be viewed using the \c man program. You do need +to make sure the man directory is in the man path (see the \c MANPATH +environment variable). Note that there are some limitations to the +capabilities of the man page format, so some information +(like class diagrams, cross references and formulas) will be lost. + +\section step3 Step 3: Documenting the sources + +Although documenting the sources is presented as step 3, in a new project +this should of course be step 1. Here I assume +you already have some code and you want doxygen to generate a nice document +describing the API and maybe the internals and some related design +documentation as well. + +If the \ref cfg_extract_all "EXTRACT_ALL" option is set to \c NO in the +configuration file (the default), then doxygen will only generate +documentation for \e documented entities. So +how do you document these? For members, classes and namespaces there are +basically two options: +1. Place a \e special documentation block in front of the declaration or + definition of the member, class or namespace. For file, class and namespace + members it is also allowed to place the documentation directly after the + member. + + See section \ref specialblock to learn more about special + documentation blocks. +2. Place a special documentation block somewhere else (another file or + another location) \e and put a <em>structural command</em> in the + documentation block. A structural command links a documentation block + to a certain entity that can be documented (e.g. a member, class, + namespace or file). + + See section \ref structuralcommands to learn more + about structural commands. + +The advantage of the first option is that you do not have to repeat the +name of the entity. + +Files can only be documented using the second option, since there is +no way to put a documentation block before a file. Of course, file members +(functions, variables, typedefs, defines) do not need an explicit +structural command; just putting a special documentation block in front or +behind them will work fine. + +The text inside a special documentation block is parsed +before it is written to the HTML and/or \f$\mbox{\LaTeX}\f$ output files. + +\addindex parsing +During parsing the following steps take place: +- Markdown formatting is replaced by corresponding HTML or special + commands. +- The special commands inside the documentation are executed. See + section \ref commands for an overview of all commands. +- If a line starts with some whitespace followed by one or more asterisks + (`*`) and then optionally more whitespace, + then all whitespace and asterisks are removed. +- All resulting blank lines are treated as a paragraph separators. + This saves you from placing new-paragraph commands yourself + in order to make the generated documentation readable. +- Links are created for words corresponding to documented classes + (unless the word is preceded by a \%; then the word will not be linked and + the \% sign is removed). +- Links to members are created when certain patterns are found in the + text. See section \ref autolink + for more information on how the automatic link generation works. +- HTML tags that are in the documentation are interpreted and converted + to \f$\mbox{\LaTeX}\f$ equivalents for the \f$\mbox{\LaTeX}\f$ output. + See section \ref htmlcmds for an overview of all supported HTML tags. + +\htmlonly +Go to the <a href="docblocks.html">next</a> section or return to the + <a href="index.html">index</a>. +\endhtmlonly + +*/ + diff --git a/doc/translator.py b/doc/translator.py new file mode 100644 index 0000000..ea61abf --- /dev/null +++ b/doc/translator.py @@ -0,0 +1,2012 @@ +"""Script to generate reports on translator classes from Doxygen sources. + + The main purpose of the script is to extract the information from sources + related to internationalization (the translator classes). It uses the + information to generate documentation (language.doc, + translator_report.txt) from templates (language.tpl, maintainers.txt). + + Simply run the script without parameters to get the reports and + documentation for all supported languages. If you want to generate the + translator report only for some languages, pass their codes as arguments + to the script. In that case, the language.doc will not be generated. + Example: + + python translator.py en nl cz + + Originally, the script was written in Perl and was known as translator.pl. + The last Perl version was dated 2002/05/21 (plus some later corrections) + + $Id: translator.py 742 2010-09-20 18:19:55Z dimitri $ + + Petr Prikryl (prikrylp@skil.cz) + + History: + -------- + 2002/05/21 - This was the last Perl version. + 2003/05/16 - List of language marks can be passed as arguments. + 2004/01/24 - Total reimplementation started: classes TrManager, and Transl. + 2004/02/05 - First version that produces translator report. No language.doc yet. + 2004/02/10 - First fully functional version that generates both the translator + report and the documentation. It is a bit slower than the + Perl version, but is much less tricky and much more flexible. + It also solves some problems that were not solved by the Perl + version. The translator report content should be more useful + for developers. + 2004/02/11 - Some tuning-up to provide more useful information. + 2004/04/16 - Added new tokens to the tokenizer (to remove some warnings). + 2004/05/25 - Added from __future__ import generators not to force Python 2.3. + 2004/06/03 - Removed dependency on textwrap module. + 2004/07/07 - Fixed the bug in the fill() function. + 2004/07/21 - Better e-mail mangling for HTML part of language.doc. + - Plural not used for reporting a single missing method. + - Removal of not used translator adapters is suggested only + when the report is not restricted to selected languages + explicitly via script arguments. + 2004/07/26 - Better reporting of not-needed adapters. + 2004/10/04 - Reporting of not called translator methods added. + 2004/10/05 - Modified to check only doxygen/src sources for the previous report. + 2005/02/28 - Slight modification to generate "mailto.txt" auxiliary file. + 2005/08/15 - Doxygen's root directory determined primarily from DOXYGEN + environment variable. When not found, then relatively to the script. + 2007/03/20 - The "translate me!" searched in comments and reported if found. + 2008/06/09 - Warning when the MAX_DOT_GRAPH_HEIGHT is still part of trLegendDocs(). + 2009/05/09 - Changed HTML output to fit it with XHTML DTD + 2009/09/02 - Added percentage info to the report (implemented / to be implemented). + 2010/02/09 - Added checking/suggestion 'Reimplementation using UTF-8 suggested. + 2010/03/03 - Added [unreachable] prefix used in maintainers.txt. + 2010/05/28 - BOM skipped; minor code cleaning. + 2010/05/31 - e-mail mangled already in maintainers.txt + 2010/08/20 - maintainers.txt to UTF-8, related processin of unicode strings + - [any mark] introduced instead of [unreachable] only + - marks hihglighted in HTML + 2010/08/30 - Highlighting in what will be the table in langhowto.html modified. + 2010/09/27 - The underscore in \latexonly part of the generated language.doc + was prefixed by backslash (was LaTeX related error). + """ + +from __future__ import generators +import codecs +import os +import re +import sys + + +def fill(s): + """Returns string formated to the wrapped paragraph multiline string. + + Replaces whitespaces by one space and then uses he textwrap.fill().""" + + # Replace all whitespace by spaces, remove whitespaces that are not + # necessary, strip the left and right whitespaces, and break the string + # to list of words. + rexWS = re.compile(r'\s+') + lst = rexWS.sub(' ', s).strip().split() + + # If the list is not empty, put the words together and form the lines + # of maximum 70 characters. Build the list of lines. + lines = [] + if lst: + line = lst.pop(0) # no separation space in front of the first word + for word in lst: + if len(line) + len(word) < 70: + line += ' ' + word + else: + lines.append(line) # another full line formed + line = word # next line started + lines.append(line) # the last line + return '\n'.join(lines) + + +# The following function dedent() is the verbatim copy from the textwrap.py +# module. The textwrap.py was introduced in Python 2.3. To make this script +# working also in older Python versions, I have decided to copy it. +# Notice that the textwrap.py is copyrighted: +# +# Copyright (C) 1999-2001 Gregory P. Ward. +# Copyright (C) 2002, 2003 Python Software Foundation. +# Written by Greg Ward <gward@python.net> +# +# The explicit permission to use the code here was sent by Guido van Rossum +# (4th June, 2004). +# +def dedent(text): + """dedent(text : string) -> string + + Remove any whitespace than can be uniformly removed from the left + of every line in `text`. + + This can be used e.g. to make triple-quoted strings line up with + the left edge of screen/whatever, while still presenting it in the + source code in indented form. + + For example: + + def test(): + # end first line with \ to avoid the empty line! + s = '''\ + hello + world + ''' + print repr(s) # prints ' hello\n world\n ' + print repr(dedent(s)) # prints 'hello\n world\n' + """ + lines = text.expandtabs().split('\n') + margin = None + for line in lines: + content = line.lstrip() + if not content: + continue + indent = len(line) - len(content) + if margin is None: + margin = indent + else: + margin = min(margin, indent) + + if margin is not None and margin > 0: + for i in range(len(lines)): + lines[i] = lines[i][margin:] + + return '\n'.join(lines) + + +class Transl: + """One instance is build for each translator. + + The abbreviation of the source file--part after 'translator_'--is used as + the identification of the object. The empty string is used for the + abstract Translator class from translator.h. The other information is + extracted from inside the source file.""" + + def __init__(self, fname, manager): + """Bind to the manager and initialize.""" + + # Store the filename and the reference to the manager object. + self.fname = fname + self.manager = manager + + # The instance is responsible for loading the source file, so it checks + # for its existence and quits if something goes wrong. + if not os.path.isfile(fname): + sys.stderr.write("\a\nFile '%s' not found!\n" % fname) + sys.exit(1) + + # Initialize the other collected information. + self.classId = None + self.baseClassId = None + self.readableStatus = None # 'up-to-date', '1.2.3', '1.3', etc. + self.status = None # '', '1.2.03', '1.3.00', etc. + self.lang = None # like 'Brasilian' + self.langReadable = None # like 'Brasilian Portuguese' + self.note = None # like 'should be cleaned up' + self.prototypeDic = {} # uniPrototype -> prototype + self.translateMeText = 'translate me!' + self.translateMeFlag = False # comments with "translate me!" found + self.txtMAX_DOT_GRAPH_HEIGHT_flag = False # found in string in trLegendDocs() + self.obsoleteMethods = None # list of prototypes to be removed + self.missingMethods = None # list of prototypes to be implemented + self.implementedMethods = None # list of implemented required methods + self.adaptMinClass = None # The newest adapter class that can be used + self.isDecodedTranslator = None # Flag related to internal usage of UTF-8 + + def __tokenGenerator(self): + """Generator that reads the file and yields tokens as 4-tuples. + + The tokens have the form (tokenId, tokenString, lineNo). The + last returned token has the form ('eof', None, None). When trying + to access next token afer that, the exception would be raised.""" + + # Set the dictionary for recognizing tokenId for keywords, separators + # and the similar categories. The key is the string to be recognized, + # the value says its token identification. + tokenDic = { 'class': 'class', + 'const': 'const', + 'public': 'public', + 'protected': 'protected', + 'private': 'private', + 'static': 'static', + 'virtual': 'virtual', + ':': 'colon', + ';': 'semic', + ',': 'comma', + '[': 'lsqbra', + ']': 'rsqbra', + '(': 'lpar', + ')': 'rpar', + '{': 'lcurly', + '}': 'rcurly', + '=': 'assign', + '*': 'star', + '&': 'amp', + '+': 'plus', + '-': 'minus', + '!': 'excl', + '?': 'qmark', + '<': 'lt', + '>': 'gt', + "'": 'quot', + '"': 'dquot', + '.': 'dot', + '%': 'perc', + '~': 'tilde', + '^': 'caret', + } + + # Regular expression for recognizing identifiers. + rexId = re.compile(r'^[a-zA-Z]\w*$') + + # Open the file for reading and extracting tokens until the eof. + # Initialize the finite automaton. + f = open(self.fname) + lineNo = 0 + line = '' # init -- see the pos initialization below + linelen = 0 # init + pos = 100 # init -- pos after the end of line + status = 0 + + tokenId = None # init + tokenStr = '' # init -- the characters will be appended. + tokenLineNo = 0 + + while status != 777: + + # Get the next character. Read next line first, if necessary. + if pos < linelen: + c = line[pos] + else: + lineNo += 1 + line = f.readline() + if line.startswith('\xef\xbb\xbf'): + line = line[3:] # skip the BOM + linelen = len(line) + pos = 0 + if line == '': # eof + status = 777 + else: + c = line[pos] + + # Consume the character based on the status + + if status == 0: # basic status + + # This is the initial status. If tokenId is set, yield the + # token here and only here (except when eof is found). + # Initialize the token variables after the yield. + if tokenId: + # If it is an unknown item, it can still be recognized + # here. Keywords and separators are the example. + if tokenId == 'unknown': + if tokenDic.has_key(tokenStr): + tokenId = tokenDic[tokenStr] + elif tokenStr.isdigit(): + tokenId = 'num' + elif rexId.match(tokenStr): + tokenId = 'id' + else: + msg = '\aWarning: unknown token "' + tokenStr + '"' + msg += '\tfound on line %d' % tokenLineNo + msg += ' in "' + self.fname + '".\n' + sys.stderr.write(msg) + + yield (tokenId, tokenStr, tokenLineNo) + + # If it is a comment that contains the self.translateMeText + # string, set the flag -- the situation will be reported. + if tokenId == 'comment' and tokenStr.find(self.translateMeText) >= 0: + self.translateMeFlag = True + + tokenId = None + tokenStr = '' + tokenLineNo = 0 + + # Now process the character. When we just skip it (spaces), + # stay in this status. All characters that will be part of + # some token cause moving to the specific status. And only + # when moving to the status == 0 (or the final state 777), + # the token is yielded. With respect to that the automaton + # behaves as Moore's one (output bound to status). When + # collecting tokens, the automaton is the Mealy's one + # (actions bound to transitions). + if c.isspace(): + pass # just skip whitespace characters + elif c == '/': # Possibly comment starts here, but + tokenId = 'unknown' # it could be only a slash in code. + tokenStr = c + tokenLineNo = lineNo + status = 1 + elif c == '#': + tokenId = 'preproc' # preprocessor directive + tokenStr = c + tokenLineNo = lineNo + status = 5 + elif c == '"': # string starts here + tokenId = 'string' + tokenStr = c + tokenLineNo = lineNo + status = 6 + elif c == "'": # char literal starts here + tokenId = 'charlit' + tokenStr = c + tokenLineNo = lineNo + status = 8 + elif tokenDic.has_key(c): # known one-char token + tokenId = tokenDic[c] + tokenStr = c + tokenLineNo = lineNo + # stay in this state to yield token immediately + else: + tokenId = 'unknown' # totally unknown + tokenStr = c + tokenLineNo = lineNo + status = 333 + + pos += 1 # move position in any case + + elif status == 1: # possibly a comment + if c == '/': # ... definitely the C++ comment + tokenId = 'comment' + tokenStr += c + pos += 1 + status = 2 + elif c == '*': # ... definitely the C comment + tokenId = 'comment' + tokenStr += c + pos += 1 + status = 3 + else: + status = 0 # unrecognized, don't move pos + + elif status == 2: # inside the C++ comment + if c == '\n': # the end of C++ comment + status = 0 # yield the token + else: + tokenStr += c # collect the C++ comment + pos += 1 + + elif status == 3: # inside the C comment + if c == '*': # possibly the end of the C comment + tokenStr += c + status = 4 + else: + tokenStr += c # collect the C comment + pos += 1 + + elif status == 4: # possibly the end of the C comment + if c == '/': # definitely the end of the C comment + tokenStr += c + status = 0 # yield the token + elif c == '*': # more stars inside the comment + tokenStr += c + else: + tokenStr += c # this cannot be the end of comment + status = 3 + pos += 1 + + elif status == 5: # inside the preprocessor directive + if c == '\n': # the end of the preproc. command + status = 0 # yield the token + else: + tokenStr += c # collect the preproc + pos += 1 + + elif status == 6: # inside the string + if c == '\\': # escaped char inside the string + tokenStr += c + status = 7 + elif c == '"': # end of the string + tokenStr += c + status = 0 + else: + tokenStr += c # collect the chars of the string + pos += 1 + + elif status == 7: # escaped char inside the string + tokenStr += c # collect the char of the string + status = 6 + pos += 1 + + elif status == 8: # inside the char literal + tokenStr += c # collect the char of the literal + status = 9 + pos += 1 + + elif status == 9: # end of char literal expected + if c == "'": # ... and found + tokenStr += c + status = 0 + pos += 1 + else: + tokenId = 'error' # end of literal was expected + tokenStr += c + status = 0 + + elif status == 333: # start of the unknown token + if c.isspace(): + pos += 1 + status = 0 # tokenId may be determined later + elif tokenDic.has_key(c): # separator, don't move pos + status = 0 + else: + tokenStr += c # collect + pos += 1 + + # We should have finished in the final status. If some token + # have been extracted, yield it first. + assert(status == 777) + if tokenId: + yield (tokenId, tokenStr, tokenLineNo) + tokenId = None + tokenStr = '' + tokenLineNo = 0 + + # The file content is processed. Close the file. Then always yield + # the eof token. + f.close() + yield ('eof', None, None) + + + def __collectClassInfo(self, tokenIterator): + """Collect the information about the class and base class. + + The tokens including the opening left curly brace of the class are + consumed.""" + + status = 0 # initial state + + while status != 777: # final state + + # Always assume that the previous tokens were processed. Get + # the next one. + tokenId, tokenStr, tokenLineNo = tokenIterator.next() + + # Process the token and never return back. + if status == 0: # waiting for the 'class' keyword. + if tokenId == 'class': + status = 1 + + elif status == 1: # expecting the class identification + if tokenId == 'id': + self.classId = tokenStr + status = 2 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 2: # expecting the curly brace or base class info + if tokenId == 'lcurly': + status = 777 # correctly finished + elif tokenId == 'colon': + status = 3 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 3: # expecting the 'public' in front of base class id + if tokenId == 'public': + status = 4 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 4: # expecting the base class id + if tokenId == 'id': + self.baseClassId = tokenStr + status = 5 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 5: # expecting the curly brace and quitting + if tokenId == 'lcurly': + status = 777 # correctly finished + elif tokenId == 'comment': + pass + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + # Extract the status of the TranslatorXxxx class. The readable form + # will be used in reports the status form is a string that can be + # compared lexically (unified length, padding with zeros, etc.). + if self.baseClassId: + lst = self.baseClassId.split('_') + if lst[0] == 'Translator': + self.readableStatus = 'up-to-date' + self.status = '' + elif lst[0] == 'TranslatorAdapter': + self.status = lst[1] + '.' + lst[2] + self.readableStatus = self.status + if len(lst) > 3: # add the last part of the number + self.status += '.' + ('%02d' % int(lst[3])) + self.readableStatus += '.' + lst[3] + else: + self.status += '.00' + elif lst[0] == 'TranslatorEnglish': + # Obsolete or Based on English. + if self.classId[-2:] == 'En': + self.readableStatus = 'English based' + self.status = 'En' + else: + self.readableStatus = 'obsolete' + self.status = '0.0.00' + + # Check whether status was set, or set 'strange'. + if self.status == None: + self.status = 'strange' + if not self.readableStatus: + self.readableStatus = 'strange' + + # Extract the name of the language and the readable form. + self.lang = self.classId[10:] # without 'Translator' + if self.lang == 'Brazilian': + self.langReadable = 'Brazilian Portuguese' + elif self.lang == 'Chinesetraditional': + self.langReadable = 'Chinese Traditional' + else: + self.langReadable = self.lang + + + def __unexpectedToken(self, status, tokenId, tokenLineNo): + """Reports unexpected token and quits with exit code 1.""" + + import inspect + calledFrom = inspect.stack()[1][3] + msg = "\a\nUnexpected token '%s' on the line %d in '%s'.\n" + msg = msg % (tokenId, tokenLineNo, self.fname) + msg += 'status = %d in %s()\n' % (status, calledFrom) + sys.stderr.write(msg) + sys.exit(1) + + + def collectPureVirtualPrototypes(self): + """Returns dictionary 'unified prototype' -> 'full prototype'. + + The method is expected to be called only for the translator.h. It + extracts only the pure virtual method and build the dictionary where + key is the unified prototype without argument identifiers.""" + + # Prepare empty dictionary that will be returned. + resultDic = {} + + # Start the token generator which parses the class source file. + tokenIterator = self.__tokenGenerator() + + # Collect the class and the base class identifiers. + self.__collectClassInfo(tokenIterator) + assert(self.classId == 'Translator') + + # Let's collect readable form of the public virtual pure method + # prototypes in the readable form -- as defined in translator.h. + # Let's collect also unified form of the same prototype that omits + # everything that can be omitted, namely 'virtual' and argument + # identifiers. + prototype = '' # readable prototype (with everything) + uniPrototype = '' # unified prototype (without arg. identifiers) + + # Collect the pure virtual method prototypes. Stop on the closing + # curly brace followed by the semicolon (end of class). + status = 0 + curlyCnt = 0 # counter for the level of curly braces + + # Loop until the final state 777 is reached. The errors are processed + # immediately. In this implementation, it always quits the application. + while status != 777: + + # Get the next token. + tokenId, tokenStr, tokenLineNo = tokenIterator.next() + + if status == 0: # waiting for 'public:' + if tokenId == 'public': + status = 1 + + elif status == 1: # colon after the 'public' + if tokenId == 'colon': + status = 2 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 2: # waiting for 'virtual' + if tokenId == 'virtual': + prototype = tokenStr # but not to unified prototype + status = 3 + elif tokenId == 'comment': + pass + elif tokenId == 'rcurly': + status = 11 # expected end of class + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 3: # return type of the method expected + if tokenId == 'id': + prototype += ' ' + tokenStr + uniPrototype = tokenStr # start collecting the unified prototype + status = 4 + elif tokenId == 'tilde': + status = 4 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 4: # method identifier expected + if tokenId == 'id': + prototype += ' ' + tokenStr + uniPrototype += ' ' + tokenStr + status = 5 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 5: # left bracket of the argument list expected + if tokenId == 'lpar': + prototype += tokenStr + uniPrototype += tokenStr + status = 6 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 6: # collecting arguments of the method + if tokenId == 'rpar': + prototype += tokenStr + uniPrototype += tokenStr + status = 7 + elif tokenId == 'const': + prototype += tokenStr + uniPrototype += tokenStr + status = 12 + elif tokenId == 'id': # type identifier + prototype += tokenStr + uniPrototype += tokenStr + status = 13 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 7: # assignment expected or left curly brace + if tokenId == 'assign': + status = 8 + elif tokenId == 'lcurly': + curlyCnt = 1 # method body entered + status = 10 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 8: # zero expected + if tokenId == 'num' and tokenStr == '0': + status = 9 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 9: # after semicolon, produce the dic item + if tokenId == 'semic': + assert(not resultDic.has_key(uniPrototype)) + resultDic[uniPrototype] = prototype + status = 2 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 10: # consuming the body of the method + if tokenId == 'rcurly': + curlyCnt -= 1 + if curlyCnt == 0: + status = 2 # body consumed + elif tokenId == 'lcurly': + curlyCnt += 1 + + elif status == 11: # probably the end of class + if tokenId == 'semic': + status = 777 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 12: # type id for argument expected + if tokenId == 'id': + prototype += ' ' + tokenStr + uniPrototype += ' ' + tokenStr + status = 13 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 13: # namespace qualification or * or & expected + if tokenId == 'colon': # was namespace id + prototype += tokenStr + uniPrototype += tokenStr + status = 14 + elif tokenId == 'star' or tokenId == 'amp': # pointer or reference + prototype += ' ' + tokenStr + uniPrototype += ' ' + tokenStr + status = 16 + elif tokenId == 'id': # argument identifier + prototype += ' ' + tokenStr + # don't put this into unified prototype + status = 17 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 14: # second colon for namespace:: expected + if tokenId == 'colon': + prototype += tokenStr + uniPrototype += tokenStr + status = 15 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 15: # type after namespace:: expected + if tokenId == 'id': + prototype += tokenStr + uniPrototype += tokenStr + status = 13 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 16: # argument identifier expected + if tokenId == 'id': + prototype += ' ' + tokenStr + # don't put this into unified prototype + status = 17 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 17: # comma or ')' after argument identifier expected + if tokenId == 'comma': + prototype += ', ' + uniPrototype += ', ' + status = 6 + elif tokenId == 'rpar': + prototype += tokenStr + uniPrototype += tokenStr + status = 7 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + # Eat the rest of the source to cause closing the file. + while tokenId != 'eof': + tokenId, tokenStr, tokenLineNo = tokenIterator.next() + + # Return the resulting dictionary with 'uniPrototype -> prototype'. + return resultDic + + + def __collectPublicMethodPrototypes(self, tokenIterator): + """Collects prototypes of public methods and fills self.prototypeDic. + + The dictionary is filled by items: uniPrototype -> prototype. + The method is expected to be called only for TranslatorXxxx classes, + i.e. for the classes that implement translation to some language. + It assumes that the openning curly brace of the class was already + consumed. The source is consumed until the end of the class. + The caller should consume the source until the eof to cause closing + the source file.""" + + assert(self.classId != 'Translator') + assert(self.baseClassId != None) + + # The following finite automaton slightly differs from the one + # inside self.collectPureVirtualPrototypes(). It produces the + # dictionary item just after consuming the body of the method + # (transition from from state 10 to state 2). It also does not allow + # definitions of public pure virtual methods, except for + # TranslatorAdapterBase (states 8 and 9). Argument identifier inside + # method argument lists can be omitted or commented. + # + # Let's collect readable form of all public method prototypes in + # the readable form -- as defined in the source file. + # Let's collect also unified form of the same prototype that omits + # everything that can be omitted, namely 'virtual' and argument + # identifiers. + prototype = '' # readable prototype (with everything) + uniPrototype = '' # unified prototype (without arg. identifiers) + warning = '' # warning message -- if something special detected + methodId = None # processed method id + + # Collect the method prototypes. Stop on the closing + # curly brace followed by the semicolon (end of class). + status = 0 + curlyCnt = 0 # counter for the level of curly braces + + # Loop until the final state 777 is reached. The errors are processed + # immediately. In this implementation, it always quits the application. + while status != 777: + + # Get the next token. + tokenId, tokenStr, tokenLineNo = tokenIterator.next() + + if status == 0: # waiting for 'public:' + if tokenId == 'public': + status = 1 + elif tokenId == 'eof': # non-public things until the eof + status = 777 + + elif status == 1: # colon after the 'public' + if tokenId == 'colon': + status = 2 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 2: # waiting for 'virtual' (can be omitted) + if tokenId == 'virtual': + prototype = tokenStr # but not to unified prototype + status = 3 + elif tokenId == 'id': # 'virtual' was omitted + prototype = tokenStr + uniPrototype = tokenStr # start collecting the unified prototype + status = 4 + elif tokenId == 'comment': + pass + elif tokenId == 'protected' or tokenId == 'private': + status = 0 + elif tokenId == 'rcurly': + status = 11 # expected end of class + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 3: # return type of the method expected + if tokenId == 'id': + prototype += ' ' + tokenStr + uniPrototype = tokenStr # start collecting the unified prototype + status = 4 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 4: # method identifier expected + if tokenId == 'id': + prototype += ' ' + tokenStr + uniPrototype += ' ' + tokenStr + methodId = tokenStr # for reporting + status = 5 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 5: # left bracket of the argument list expected + if tokenId == 'lpar': + prototype += tokenStr + uniPrototype += tokenStr + status = 6 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 6: # collecting arguments of the method + if tokenId == 'rpar': + prototype += tokenStr + uniPrototype += tokenStr + status = 7 + elif tokenId == 'const': + prototype += tokenStr + uniPrototype += tokenStr + status = 12 + elif tokenId == 'id': # type identifier + prototype += tokenStr + uniPrototype += tokenStr + status = 13 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 7: # left curly brace expected + if tokenId == 'lcurly': + curlyCnt = 1 # method body entered + status = 10 + elif tokenId == 'comment': + pass + elif tokenId == 'assign': # allowed only for TranslatorAdapterBase + assert(self.classId == 'TranslatorAdapterBase') + status = 8 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 8: # zero expected (TranslatorAdapterBase) + assert(self.classId == 'TranslatorAdapterBase') + if tokenId == 'num' and tokenStr == '0': + status = 9 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 9: # after semicolon (TranslatorAdapterBase) + assert(self.classId == 'TranslatorAdapterBase') + if tokenId == 'semic': + status = 2 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 10: # consuming the body of the method, then dic item + if tokenId == 'rcurly': + curlyCnt -= 1 + if curlyCnt == 0: + # Insert new dictionary item. + assert(not self.prototypeDic.has_key(uniPrototype)) + self.prototypeDic[uniPrototype] = prototype + status = 2 # body consumed + methodId = None # outside of any method + elif tokenId == 'lcurly': + curlyCnt += 1 + + # Warn in special case. + elif methodId == 'trLegendDocs' and tokenId == 'string' \ + and tokenStr.find('MAX_DOT_GRAPH_HEIGHT') >= 0: + self.txtMAX_DOT_GRAPH_HEIGHT_flag = True + + + elif status == 11: # probably the end of class + if tokenId == 'semic': + status = 777 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 12: # type id for argument expected + if tokenId == 'id': + prototype += ' ' + tokenStr + uniPrototype += ' ' + tokenStr + status = 13 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 13: # :: or * or & or id or ) expected + if tokenId == 'colon': # was namespace id + prototype += tokenStr + uniPrototype += tokenStr + status = 14 + elif tokenId == 'star' or tokenId == 'amp': # pointer or reference + prototype += ' ' + tokenStr + uniPrototype += ' ' + tokenStr + status = 16 + elif tokenId == 'id': # argument identifier + prototype += ' ' + tokenStr + # don't put this into unified prototype + status = 17 + elif tokenId == 'comment': # probably commented-out identifier + prototype += tokenStr + elif tokenId == 'rpar': + prototype += tokenStr + uniPrototype += tokenStr + status = 7 + elif tokenId == 'comma': + prototype += ', ' + uniPrototype += ', ' + status = 6 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 14: # second colon for namespace:: expected + if tokenId == 'colon': + prototype += tokenStr + uniPrototype += tokenStr + status = 15 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 15: # type after namespace:: expected + if tokenId == 'id': + prototype += tokenStr + uniPrototype += tokenStr + status = 13 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 16: # argument identifier or ) expected + if tokenId == 'id': + prototype += ' ' + tokenStr + # don't put this into unified prototype + status = 17 + elif tokenId == 'rpar': + prototype += tokenStr + uniPrototype += tokenStr + status = 7 + elif tokenId == 'comment': + prototype += tokenStr + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + elif status == 17: # comma or ')' after argument identifier expected + if tokenId == 'comma': + prototype += ', ' + uniPrototype += ', ' + status = 6 + elif tokenId == 'rpar': + prototype += tokenStr + uniPrototype += tokenStr + status = 7 + else: + self.__unexpectedToken(status, tokenId, tokenLineNo) + + + + def collectAdapterPrototypes(self): + """Returns the dictionary of prototypes implemented by adapters. + + It is created to process the translator_adapter.h. The returned + dictionary has the form: unifiedPrototype -> (version, classId) + thus by looking for the prototype, we get the information what is + the newest (least adapting) adapter that is sufficient for + implementing the method.""" + + # Start the token generator which parses the class source file. + assert(os.path.split(self.fname)[1] == 'translator_adapter.h') + tokenIterator = self.__tokenGenerator() + + # Get the references to the involved dictionaries. + reqDic = self.manager.requiredMethodsDic + + # Create the empty dictionary that will be returned. + adaptDic = {} + + + # Loop through the source of the adapter file until no other adapter + # class is found. + while True: + try: + # Collect the class and the base class identifiers. + self.__collectClassInfo(tokenIterator) + + # Extract the comparable version of the adapter class. + # Note: The self.status as set by self.__collectClassInfo() + # contains similar version, but is related to the base class, + # not to the class itself. + lst = self.classId.split('_') + version = '' + if lst[0] == 'TranslatorAdapter': # TranslatorAdapterBase otherwise + version = lst[1] + '.' + lst[2] + if len(lst) > 3: # add the last part of the number + version += '.' + ('%02d' % int(lst[3])) + else: + version += '.00' + + # Collect the prototypes of implemented public methods. + self.__collectPublicMethodPrototypes(tokenIterator) + + # For the required methods, update the dictionary of methods + # implemented by the adapter. + for protoUni in self.prototypeDic: + if reqDic.has_key(protoUni): + # This required method will be marked as implemented + # by this adapter class. This implementation assumes + # that newer adapters do not reimplement any required + # methods already implemented by older adapters. + assert(not adaptDic.has_key(protoUni)) + adaptDic[protoUni] = (version, self.classId) + + # Clear the dictionary object and the information related + # to the class as the next adapter class is to be processed. + self.prototypeDic.clear() + self.classId = None + self.baseClassId = None + + except StopIteration: + break + + # Return the result dictionary. + return adaptDic + + + def processing(self): + """Processing of the source file -- only for TranslatorXxxx classes.""" + + # Start the token generator which parses the class source file. + tokenIterator = self.__tokenGenerator() + + # Collect the class and the base class identifiers. + self.__collectClassInfo(tokenIterator) + assert(self.classId != 'Translator') + assert(self.classId[:17] != 'TranslatorAdapter') + + # Collect the prototypes of implemented public methods. + self.__collectPublicMethodPrototypes(tokenIterator) + + # Eat the rest of the source to cause closing the file. + while True: + try: + t = tokenIterator.next() + except StopIteration: + break + + # Shorthands for the used dictionaries. + reqDic = self.manager.requiredMethodsDic + adaptDic = self.manager.adaptMethodsDic + myDic = self.prototypeDic + + # Build the list of obsolete methods. + self.obsoleteMethods = [] + for p in myDic: + if not reqDic.has_key(p): + self.obsoleteMethods.append(p) + + # Build the list of missing methods and the list of implemented + # required methods. + self.missingMethods = [] + self.implementedMethods = [] + for p in reqDic: + if myDic.has_key(p): + self.implementedMethods.append(p) + else: + self.missingMethods.append(p) + + # Set the least important note first if the translator is decoded. + # If yes, then it means that the implementation should be switched + # to UTF-8 later (suggestion). + self.isDecodedTranslator = self.classId in self.manager.decodedTranslators + if self.isDecodedTranslator: + self.note = 'Reimplementation using UTF-8 suggested.' + + # Check whether adapter must be used or suggest the newest one. + # Change the status and set the note accordingly. + if self.baseClassId != 'Translator': + if not self.missingMethods: + self.note = 'Change the base class to Translator.' + self.status = '' + self.readableStatus = 'up-to-date' + elif self.baseClassId != 'TranslatorEnglish': + # The translator uses some of the adapters. + # Look at the missing methods and check what adapter + # implements them. Remember the one with the lowest version. + adaptMinVersion = '9.9.99' + adaptMinClass = 'TranslatorAdapter_9_9_99' + for uniProto in self.missingMethods: + if adaptDic.has_key(uniProto): + version, cls = adaptDic[uniProto] + if version < adaptMinVersion: + adaptMinVersion = version + adaptMinClass = cls + + # Test against the current status -- preserve the self.status. + # Possibly, the translator implements enough methods to + # use some newer adapter. + status = self.status + + # If the version of the used adapter is smaller than + # the required, set the note and update the status as if + # the newer adapter was used. + if adaptMinVersion > status: + self.note = 'Change the base class to %s.' % adaptMinClass + self.status = adaptMinVersion + self.adaptMinClass = adaptMinClass + self.readableStatus = adaptMinVersion # simplified + + # If everything seems OK, some explicit warning flags still could + # be set. + if not self.note and self.status == '' and \ + (self.translateMeFlag or self.txtMAX_DOT_GRAPH_HEIGHT_flag): + self.note = '' + if self.translateMeFlag: + self.note += 'The "%s" found in a comment.' % self.translateMeText + if self.note != '': + self.note += '\n\t\t' + if self.txtMAX_DOT_GRAPH_HEIGHT_flag: + self.note += 'The MAX_DOT_GRAPH_HEIGHT found in trLegendDocs()' + + # If everything seems OK, but there are obsolete methods, set + # the note to clean-up source. This note will be used only when + # the previous code did not set another note (priority). + if not self.note and self.status == '' and self.obsoleteMethods: + self.note = 'Remove the obsolete methods (never used).' + + + def report(self, fout): + """Returns the report part for the source as a multiline string. + + No output for up-to-date translators without problem.""" + + # If there is nothing to report, return immediately. + if self.status == '' and not self.note: + return + + # Report the number of not implemented methods. + fout.write('\n\n\n') + fout.write(self.classId + ' (' + self.baseClassId + ')') + percentImplemented = 100 # init + allNum = len(self.manager.requiredMethodsDic) + if self.missingMethods: + num = len(self.missingMethods) + percentImplemented = 100 * (allNum - num) / allNum + fout.write(' %d' % num) + fout.write(' method') + if num > 1: + fout.write('s') + fout.write(' to implement (%d %%)' % (100 * num / allNum)) + fout.write('\n' + '-' * len(self.classId)) + + # Write the info about the implemented required methods. + fout.write('\n\n Implements %d' % len(self.implementedMethods)) + fout.write(' of the required methods (%d %%).' % percentImplemented) + + # Report the missing method, but only when it is not English-based + # translator. + if self.missingMethods and self.status != 'En': + fout.write('\n\n Missing methods (should be implemented):\n') + reqDic = self.manager.requiredMethodsDic + for p in self.missingMethods: + fout.write('\n ' + reqDic[p]) + + # Always report obsolete methods. + if self.obsoleteMethods: + fout.write('\n\n Obsolete methods (should be removed, never used):\n') + myDic = self.prototypeDic + for p in self.obsoleteMethods: + fout.write('\n ' + myDic[p]) + + # For English-based translator, report the implemented methods. + if self.status == 'En' and self.implementedMethods: + fout.write('\n\n This English-based translator implements ') + fout.write('the following methods:\n') + reqDic = self.manager.requiredMethodsDic + for p in self.implementedMethods: + fout.write('\n ' + reqDic[p]) + + + def getmtime(self): + """Returns the last modification time of the source file.""" + assert(os.path.isfile(self.fname)) + return os.path.getmtime(self.fname) + + +class TrManager: + """Collects basic info and builds subordinate Transl objects.""" + + def __init__(self): + """Determines paths, creates and initializes structures. + + The arguments of the script may explicitly say what languages should + be processed. Write the two letter identifications that are used + for composing the source filenames, so... + + python translator.py cz + + this will process only translator_cz.h source. + """ + + # Determine the path to the script and its name. + self.script = os.path.abspath(sys.argv[0]) + self.script_path, self.script_name = os.path.split(self.script) + self.script_path = os.path.abspath(self.script_path) + + # Determine the absolute path to the Doxygen's root subdirectory. + # If DOXYGEN environment variable is not found, the directory is + # determined from the path of the script. + doxy_default = os.path.join(self.script_path, '..') + self.doxy_path = os.path.abspath(os.getenv('DOXYGEN', doxy_default)) + + # Get the explicit arguments of the script. + self.script_argLst = sys.argv[1:] + + # Build the path names based on the Doxygen's root knowledge. + self.doc_path = os.path.join(self.doxy_path, 'doc') + self.src_path = os.path.join(self.doxy_path, 'src') + + # Create the empty dictionary for Transl object identitied by the + # class identifier of the translator. + self.__translDic = {} + + # Create the None dictionary of required methods. The key is the + # unified prototype, the value is the full prototype. Set inside + # the self.__build(). + self.requiredMethodsDic = None + + # Create the empty dictionary that says what method is implemented + # by what adapter. + self.adaptMethodsDic = {} + + # The last modification time will capture the modification of this + # script, of the translator.h, of the translator_adapter.h (see the + # self.__build() for the last two) of all the translator_xx.h files + # and of the template for generating the documentation. So, this + # time can be compared with modification time of the generated + # documentation to decide, whether the doc should be re-generated. + self.lastModificationTime = os.path.getmtime(self.script) + + # Set the names of the translator report text file, of the template + # for generating "Internationalization" document, for the generated + # file itself, and for the maintainers list. + self.translatorReportFileName = 'translator_report.txt' + self.maintainersFileName = 'maintainers.txt' + self.languageTplFileName = 'language.tpl' + self.languageDocFileName = 'language.doc' + + # The information about the maintainers will be stored + # in the dictionary with the following name. + self.__maintainersDic = None + + # Define the other used structures and variables for information. + self.langLst = None # including English based + self.supportedLangReadableStr = None # coupled En-based as a note + self.numLang = None # excluding coupled En-based + self.doxVersion = None # Doxygen version + + # Capture the knowledge about translators that are not implemented + # to use UTF-8 internally. + self.decodedTranslators = self.getDecodedTranslators() + + # Build objects where each one is responsible for one translator. + self.__build() + + + def getDecodedTranslators(self): + """Parses language.cpp to find what translators do not use UTF-8 yet""" + decodedTranslators = [] + + # Regular expression to detect the lines like + # theTranslator=new TranslatorDecoder(new TranslatorSwedish); + rex = re.compile(r'^\s*theTranslator\s*=\s*new\s+.*$') + + # Regular expression to get the (optional) TranslatorDecoder and TranslatorXXX + rex2 = re.compile(r'\bTranslator\w+') + + # Parse the lines in the specific source code. + f = open(os.path.join(self.src_path, 'language.cpp'), 'rU') + for line in f: + if rex.match(line): + lst = rex2.findall(line) + if lst[0] == 'TranslatorDecoder': + decodedTranslators.append(lst[1]) + f.close() + + # Display warning when all translator implementations were converted + # to UTF-8. + if len(decodedTranslators) == 0: + print 'This script should be updated. All translators do use UTF-8' + print 'internally. The TranslatorDecoder adapter should be removed' + print 'from the code and its usage should not be checked any more.' + + return decodedTranslators + + + def __build(self): + """Find the translator files and build the objects for translators.""" + + # The translator.h must exist (the Transl object will check it), + # create the object for it and let it build the dictionary of + # required methods. + tr = Transl(os.path.join(self.src_path, 'translator.h'), self) + self.requiredMethodsDic = tr.collectPureVirtualPrototypes() + tim = tr.getmtime() + if tim > self.lastModificationTime: + self.lastModificationTime = tim + + # The translator_adapter.h must exist (the Transl object will check it), + # create the object for it and store the reference in the dictionary. + tr = Transl(os.path.join(self.src_path, 'translator_adapter.h'), self) + self.adaptMethodsDic = tr.collectAdapterPrototypes() + tim = tr.getmtime() + if tim > self.lastModificationTime: + self.lastModificationTime = tim + + # Create the list of the filenames with language translator sources. + # If the explicit arguments of the script were typed, process only + # those files. + if self.script_argLst: + lst = ['translator_' + x + '.h' for x in self.script_argLst] + for fname in lst: + if not os.path.isfile(os.path.join(self.src_path, fname)): + sys.stderr.write("\a\nFile '%s' not found!\n" % fname) + sys.exit(1) + else: + lst = os.listdir(self.src_path) + lst = filter(lambda x: x[:11] == 'translator_' + and x[-2:] == '.h' + and x != 'translator_adapter.h', lst) + + # Build the object for the translator_xx.h files, and process the + # content of the file. Then insert the object to the dictionary + # accessed via classId. + for fname in lst: + fullname = os.path.join(self.src_path, fname) + tr = Transl(fullname, self) + tr.processing() + assert(tr.classId != 'Translator') + self.__translDic[tr.classId] = tr + + # Extract the global information of the processed info. + self.__extractProcessedInfo() + + + def __extractProcessedInfo(self): + """Build lists and strings of the processed info.""" + + # Build the auxiliary list with strings compound of the status, + # readable form of the language, and classId. + statLst = [] + for obj in self.__translDic.values(): + assert(obj.classId != 'Translator') + s = obj.status + '|' + obj.langReadable + '|' + obj.classId + statLst.append(s) + + # Sort the list and extract the object identifiers (classId's) for + # the up-to-date translators and English-based translators. + statLst.sort() + self.upToDateIdLst = [x.split('|')[2] for x in statLst if x[0] == '|'] + self.EnBasedIdLst = [x.split('|')[2] for x in statLst if x[:2] == 'En'] + + # Reverse the list and extract the TranslatorAdapter based translators. + statLst.reverse() + self.adaptIdLst = [x.split('|')[2] for x in statLst if x[0].isdigit()] + + # Build the list of tuples that contain (langReadable, obj). + # Sort it by readable name. + self.langLst = [] + for obj in self.__translDic.values(): + self.langLst.append((obj.langReadable, obj)) + self.langLst.sort(lambda a, b: cmp(a[0], b[0])) + + # Create the list with readable language names. If the language has + # also the English-based version, modify the item by appending + # the note. Number of the supported languages is equal to the length + # of the list. + langReadableLst = [] + for name, obj in self.langLst: + if obj.status == 'En': continue + + # Append the 'En' to the classId to possibly obtain the classId + # of the English-based object. If the object exists, modify the + # name for the readable list of supported languages. + classIdEn = obj.classId + 'En' + if self.__translDic.has_key(classIdEn): + name += ' (+En)' + + # Append the result name of the language, possibly with note. + langReadableLst.append(name) + + # Create the multiline string of readable language names, + # with punctuation, wrapped to paragraph. + if len(langReadableLst) == 1: + s = langReadableLst[0] + elif len(langReadableLst) == 2: + s = ' and '.join(langReadableLst) + else: + s = ', '.join(langReadableLst[:-1]) + ', and ' + s += langReadableLst[-1] + + self.supportedLangReadableStr = fill(s + '.') + + # Find the number of the supported languages. The English based + # languages are not counted if the non-English based also exists. + self.numLang = len(self.langLst) + for name, obj in self.langLst: + if obj.status == 'En': + classId = obj.classId[:-2] + if self.__translDic.has_key(classId): + self.numLang -= 1 # the couple will be counted as one + + # Extract the version of Doxygen. + f = open(os.path.join(self.doxy_path, 'VERSION')) + self.doxVersion = f.readline().strip() + f.close() + + # Update the last modification time. + for tr in self.__translDic.values(): + tim = tr.getmtime() + if tim > self.lastModificationTime: + self.lastModificationTime = tim + + + def __getNoTrSourceFilesLst(self): + """Returns the list of sources to be checked. + + All .cpp files and also .h files that do not declare or define + the translator methods are included in the list. The file names + are searched in doxygen/src directory. + """ + files = [] + for item in os.listdir(self.src_path): + # Split the bare name to get the extension. + name, ext = os.path.splitext(item) + ext = ext.lower() + + # Include only .cpp and .h files (case independent) and exclude + # the files where the checked identifiers are defined. + if ext == '.cpp' or (ext == '.h' and name.find('translator') == -1): + fname = os.path.join(self.src_path, item) + assert os.path.isfile(fname) # assumes no directory with the ext + files.append(fname) # full name + return files + + + def __removeUsedInFiles(self, fname, dic): + """Removes items for method identifiers that are found in fname. + + The method reads the content of the file as one string and searches + for all identifiers from dic. The identifiers that were found in + the file are removed from the dictionary. + + Note: If more files is to be checked, the files where most items are + probably used should be checked first and the resulting reduced + dictionary should be used for checking the next files (speed up). + """ + lst_in = dic.keys() # identifiers to be searched for + + # Read content of the file as one string. + assert os.path.isfile(fname) + f = open(fname) + cont = f.read() + f.close() + + # Remove the items for identifiers that were found in the file. + while lst_in: + item = lst_in.pop(0) + if cont.find(item) != -1: + del dic[item] + + + def __checkForNotUsedTrMethods(self): + """Returns the dictionary of not used translator methods. + + The method can be called only after self.requiredMethodsDic has been + built. The stripped prototypes are the values, the method identifiers + are the keys. + """ + # Build the dictionary of the required method prototypes with + # method identifiers used as keys. + trdic = {} + for prototype in self.requiredMethodsDic.keys(): + ri = prototype.split('(')[0] + identifier = ri.split()[1].strip() + trdic[identifier] = prototype + + # Build the list of source files where translator method identifiers + # can be used. + files = self.__getNoTrSourceFilesLst() + + # Loop through the files and reduce the dictionary of id -> proto. + for fname in files: + self.__removeUsedInFiles(fname, trdic) + + # Return the dictionary of not used translator methods. + return trdic + + + def __emails(self, classId): + """Returns the list of maintainer emails. + + The method returns the list of e-mail adresses for the translator + class, but only the addresses that were not marked as [xxx].""" + lst = [] + for m in self.__maintainersDic[classId]: + if not m[1].startswith('['): + email = m[1] + email = email.replace(' at ', '@') # Unmangle the mangled e-mail + email = email.replace(' dot ', '.') + lst.append(email) + return lst + + + def generateTranslatorReport(self): + """Generates the translator report.""" + + output = os.path.join(self.doc_path, self.translatorReportFileName) + + # Open the textual report file for the output. + f = open(output, 'w') + + # Output the information about the version. + f.write('(' + self.doxVersion + ')\n\n') + + # Output the information about the number of the supported languages + # and the list of the languages, or only the note about the explicitly + # given languages to process. + if self.script_argLst: + f.write('The report was generated for the following, explicitly') + f.write(' identified languages:\n\n') + f.write(self.supportedLangReadableStr + '\n\n') + else: + f.write('Doxygen supports the following ') + f.write(str(self.numLang)) + f.write(' languages (sorted alphabetically):\n\n') + f.write(self.supportedLangReadableStr + '\n\n') + + # Write the summary about the status of language translators (how + # many translators) are up-to-date, etc. + s = 'Of them, %d translators are up-to-date, ' % len(self.upToDateIdLst) + s += '%d translators are based on some adapter class, ' % len(self.adaptIdLst) + s += 'and %d are English based.' % len(self.EnBasedIdLst) + f.write(fill(s) + '\n\n') + + # The e-mail addresses of the maintainers will be collected to + # the auxiliary file in the order of translator classes listed + # in the translator report. + fmail = open('mailto.txt', 'w') + + # Write the list of up-to-date translator classes. + if self.upToDateIdLst: + s = '''The following translator classes are up-to-date (sorted + alphabetically). This means that they derive from the + Translator class and they implement all %d of the required + methods. Anyway, there still may be some details listed even + for them:''' + s = s % len(self.requiredMethodsDic) + f.write('-' * 70 + '\n') + f.write(fill(s) + '\n\n') + + mailtoLst = [] + for x in self.upToDateIdLst: + obj = self.__translDic[x] + f.write(' ' + obj.classId) + if obj.note: + f.write(' -- ' + obj.note) + f.write('\n') + mailtoLst.extend(self.__emails(obj.classId)) + + fmail.write('up-to-date\n') + fmail.write('; '.join(mailtoLst)) + + # Write the list of the adapter based classes. The very obsolete + # translators that derive from TranslatorEnglish are included. + if self.adaptIdLst: + s = '''The following translator classes need some maintenance + (the most obsolete at the end). The other info shows the + estimation of Doxygen version when the class was last + updated and number of methods that must be implemented to + become up-to-date:''' + f.write('\n' + '-' * 70 + '\n') + f.write(fill(s) + '\n\n') + + # Find also whether some adapter classes may be removed. + adaptMinVersion = '9.9.99' + + mailtoLst = [] + numRequired = len(self.requiredMethodsDic) + for x in self.adaptIdLst: + obj = self.__translDic[x] + f.write(' %-30s' % obj.classId) + f.write(' %-6s' % obj.readableStatus) + numimpl = len(obj.missingMethods) + pluralS = '' + if numimpl > 1: pluralS = 's' + percent = 100 * numimpl / numRequired + f.write('\t%2d method%s to implement (%d %%)' % ( + numimpl, pluralS, percent)) + if obj.note: + f.write('\n\tNote: ' + obj.note + '\n') + f.write('\n') + mailtoLst.extend(self.__emails(obj.classId)) # to maintainer + + # Check the level of required adapter classes. + if obj.status != '0.0.00' and obj.status < adaptMinVersion: + adaptMinVersion = obj.status + + fmail.write('\n\ntranslator based\n') + fmail.write('; '.join(mailtoLst)) + + # Set the note if some old translator adapters are not needed + # any more. Do it only when the script is called without arguments, + # i.e. all languages were checked against the needed translator + # adapters. + if not self.script_argLst: + to_remove = {} + for version, adaptClassId in self.adaptMethodsDic.values(): + if version < adaptMinVersion: + to_remove[adaptClassId] = True + + if to_remove: + lst = to_remove.keys() + lst.sort() + plural = len(lst) > 1 + note = 'Note: The adapter class' + if plural: note += 'es' + note += ' ' + ', '.join(lst) + if not plural: + note += ' is' + else: + note += ' are' + note += ' not used and can be removed.' + f.write('\n' + fill(note) + '\n') + + # Write the list of the English-based classes. + if self.EnBasedIdLst: + s = '''The following translator classes derive directly from the + TranslatorEnglish. The class identifier has the suffix 'En' + that says that this is intentional. Usually, there is also + a non-English based version of the translator for + the language:''' + f.write('\n' + '-' * 70 + '\n') + f.write(fill(s) + '\n\n') + + for x in self.EnBasedIdLst: + obj = self.__translDic[x] + f.write(' ' + obj.classId) + f.write('\timplements %d methods' % len(obj.implementedMethods)) + if obj.note: + f.write(' -- ' + obj.note) + f.write('\n') + + # Check for not used translator methods and generate warning if found. + # The check is rather time consuming, so it is not done when report + # is restricted to explicitly given language identifiers. + if not self.script_argLst: + dic = self.__checkForNotUsedTrMethods() + if dic: + s = '''WARNING: The following translator methods are declared + in the Translator class but their identifiers do not appear + in source files. The situation should be checked. The .cpp + files and .h files excluding the '*translator*' files + in doxygen/src directory were simply searched for occurence + of the method identifiers:''' + f.write('\n' + '=' * 70 + '\n') + f.write(fill(s) + '\n\n') + + keys = dic.keys() + keys.sort() + for key in keys: + f.write(' ' + dic[key] + '\n') + f.write('\n') + + # Write the details for the translators. + f.write('\n' + '=' * 70) + f.write('\nDetails for translators (classes sorted alphabetically):\n') + + cls = self.__translDic.keys() + cls.sort() + + for c in cls: + obj = self.__translDic[c] + assert(obj.classId != 'Translator') + obj.report(f) + + # Close the report file and the auxiliary file with e-mails. + f.close() + fmail.close() + + + def __loadMaintainers(self): + """Load and process the file with the maintainers. + + Fills the dictionary classId -> [(name, e-mail), ...].""" + + fname = os.path.join(self.doc_path, self.maintainersFileName) + + # Include the maintainers file to the group of files checked with + # respect to the modification time. + tim = os.path.getmtime(fname) + if tim > self.lastModificationTime: + self.lastModificationTime = tim + + # Process the content of the maintainers file. + f = codecs.open(fname, 'r', 'utf-8') + inside = False # inside the record for the language + lineReady = True + classId = None + maintainersLst = None + self.__maintainersDic = {} + while lineReady: + line = f.readline() # next line + lineReady = line != '' # when eof, then line == '' + + line = line.strip() # eof should also behave as separator + if line != u'' and line[0] == u'%': # skip the comment line + continue + + if not inside: # if outside of the record + if line != u'': # should be language identifier + classId = line + maintainersLst = [] + inside = True + # Otherwise skip empty line that do not act as separator. + + else: # if inside the record + if line == u'': # separator found + inside = False + else: + # If it is the first maintainer, create the empty list. + if not self.__maintainersDic.has_key(classId): + self.__maintainersDic[classId] = [] + + # Split the information about the maintainer and append + # the tuple. The address may be prefixed '[unreachable]' + # or whatever '[xxx]'. This will be processed later. + lst = line.split(u':', 1) + assert(len(lst) == 2) + t = (lst[0].strip(), lst[1].strip()) + self.__maintainersDic[classId].append(t) + f.close() + + + def generateLanguageDoc(self): + """Checks the modtime of files and generates language.doc.""" + self.__loadMaintainers() + + # Check the last modification time of the template file. It is the + # last file from the group that decide whether the documentation + # should or should not be generated. + fTplName = os.path.join(self.doc_path, self.languageTplFileName) + tim = os.path.getmtime(fTplName) + if tim > self.lastModificationTime: + self.lastModificationTime = tim + + # If the generated documentation exists and is newer than any of + # the source files from the group, do not generate it and quit + # quietly. + fDocName = os.path.join(self.doc_path, self.languageDocFileName) + if os.path.isfile(fDocName): + if os.path.getmtime(fDocName) > self.lastModificationTime: + return + + # The document or does not exist or is older than some of the + # sources. It must be generated again. + # + # Read the template of the documentation, and remove the first + # attention lines. + f = codecs.open(fTplName, 'r', 'utf-8') + doctpl = f.read() + f.close() + + pos = doctpl.find(u'/***') + assert pos != -1 + doctpl = doctpl[pos:] + + # Fill the tplDic by symbols that will be inserted into the + # document template. + tplDic = {} + + s = u'Do not edit this file. It was generated by the %s script.' % self.script_name + tplDic['editnote'] = s + + tplDic['doxVersion'] = self.doxVersion + tplDic['supportedLangReadableStr'] = self.supportedLangReadableStr + tplDic['translatorReportFileName'] = self.translatorReportFileName + + ahref = u'<a href="../doc/' + self.translatorReportFileName + ahref += u'"\n><code>doxygen/doc/' + self.translatorReportFileName + ahref += u'</code></a>' + tplDic['translatorReportLink'] = ahref + tplDic['numLangStr'] = str(self.numLang) + + # Define templates for HTML table parts of the documentation. + htmlTableTpl = u'''\ + \\htmlonly + <table align="center" cellspacing="0" cellpadding="0" border="0"> + <tr bgcolor="#000000"> + <td> + <table cellspacing="1" cellpadding="2" border="0"> + <tr bgcolor="#4040c0"> + <td ><b><font size="+1" color="#ffffff"> Language </font></b></td> + <td ><b><font size="+1" color="#ffffff"> Maintainer </font></b></td> + <td ><b><font size="+1" color="#ffffff"> Contact address </font> + <font size="-2" color="#ffffff">(replace the at and dot)</font></b></td> + <td ><b><font size="+1" color="#ffffff"> Status </font></b></td> + </tr> + <!-- table content begin --> + %s + <!-- table content end --> + </table> + </td> + </tr> + </table> + \\endhtmlonly + ''' + htmlTableTpl = dedent(htmlTableTpl) + htmlTrTpl = u'\n <tr bgcolor="#ffffff">%s\n </tr>' + htmlTdTpl = u'\n <td>%s</td>' + + # Loop through transl objects in the order of sorted readable names + # and add generate the content of the HTML table. + trlst = [] + for name, obj in self.langLst: + # Fill the table data elements for one row. The first element + # contains the readable name of the language. + lst = [ htmlTdTpl % obj.langReadable ] + + # The next two elements contain the list of maintainers + # and the list of their mangled e-mails. For English-based + # translators that are coupled with the non-English based, + # insert the 'see' note. + mm = None # init -- maintainer + ee = None # init -- e-mail address + if obj.status == 'En': + # Check whether there is the coupled non-English. + classId = obj.classId[:-2] + if classId in self.__translDic: + lang = self.__translDic[classId].langReadable + mm = u'see the %s language' % lang + ee = u' ' + + if not mm and obj.classId in self.__maintainersDic: + # Build a string of names separated by the HTML break element. + # Special notes used instead of names are highlighted. + lm = [] + for maintainer in self.__maintainersDic[obj.classId]: + name = maintainer[0] + if name.startswith(u'--'): + name = u'<span style="color: red; background-color: yellow">'\ + + name + u'</span>' + lm.append(name) + mm = u'<br/>'.join(lm) + + # The marked adresses (they start with the mark '[unreachable]', + # '[resigned]', whatever '[xxx]') will not be displayed at all. + # Only the mark will be used instead. + rexMark = re.compile(ur'(?P<mark>\[.*?\])') + le = [] + for maintainer in self.__maintainersDic[obj.classId]: + address = maintainer[1] + m = rexMark.search(address) + if m is not None: + address = u'<span style="color: brown">'\ + + m.group(u'mark') + u'</span>' + le.append(address) + ee = u'<br/>'.join(le) + + # Append the maintainer and e-mail elements. + lst.append(htmlTdTpl % mm) + lst.append(htmlTdTpl % ee) + + # The last element contains the readable form of the status. + lst.append(htmlTdTpl % obj.readableStatus) + + # Join the table data to one table row. + trlst.append(htmlTrTpl % (''.join(lst))) + + # Join the table rows and insert into the template. + htmlTable = htmlTableTpl % (''.join(trlst)) + + # Define templates for LaTeX table parts of the documentation. + latexTableTpl = ur''' + \latexonly + \footnotesize + \begin{longtable}{|l|l|l|l|} + \hline + {\bf Language} & {\bf Maintainer} & {\bf Contact address} & {\bf Status} \\ + \hline + %s + \hline + \end{longtable} + \normalsize + \endlatexonly + ''' + latexTableTpl = dedent(latexTableTpl) + latexLineTpl = u'\n' + r' %s & %s & {\tt\tiny %s} & %s \\' + + # Loop through transl objects in the order of sorted readable names + # and add generate the content of the LaTeX table. + trlst = [] + for name, obj in self.langLst: + # For LaTeX, more maintainers for the same language are + # placed on separate rows in the table. The line separator + # in the table is placed explicitly above the first + # maintainer. Prepare the arguments for the LaTeX row template. + maintainers = [] + if self.__maintainersDic.has_key(obj.classId): + maintainers = self.__maintainersDic[obj.classId] + + lang = obj.langReadable + maintainer = None # init + email = None # init + if obj.status == 'En': + # Check whether there is the coupled non-English. + classId = obj.classId[:-2] + if classId in self.__translDic: + langNE = self.__translDic[classId].langReadable + maintainer = u'see the %s language' % langNE + email = u'~' + + if not maintainer and (obj.classId in self.__maintainersDic): + lm = [ m[0] for m in self.__maintainersDic[obj.classId] ] + maintainer = maintainers[0][0] + email = maintainers[0][1] + + status = obj.readableStatus + + # Use the template to produce the line of the table and insert + # the hline plus the constructed line into the table content. + # The underscore character must be escaped. + trlst.append(u'\n \\hline') + s = latexLineTpl % (lang, maintainer, email, status) + s = s.replace(u'_', u'\\_') + trlst.append(s) + + # List the other maintainers for the language. Do not set + # lang and status for them. + lang = u'~' + status = u'~' + for m in maintainers[1:]: + maintainer = m[0] + email = m[1] + s = latexLineTpl % (lang, maintainer, email, status) + s = s.replace(u'_', u'\\_') + trlst.append(s) + + # Join the table lines and insert into the template. + latexTable = latexTableTpl % (u''.join(trlst)) + + # Put the HTML and LaTeX parts together and define the dic item. + tplDic['informationTable'] = htmlTable + u'\n' + latexTable + + # Insert the symbols into the document template and write it down. + f = codecs.open(fDocName, 'w', 'utf-8') + f.write(doctpl % tplDic) + f.close() + +if __name__ == '__main__': + + # Create the manager, build the transl objects, and parse the related + # sources. + trMan = TrManager() + + # Generate the language.doc. + trMan.generateLanguageDoc() + + # Generate the translator report. + trMan.generateTranslatorReport() diff --git a/doc/translator_report.txt b/doc/translator_report.txt new file mode 100644 index 0000000..83f020a --- /dev/null +++ b/doc/translator_report.txt @@ -0,0 +1,1243 @@ +(1.8.1.2) + +Doxygen supports the following 39 languages (sorted alphabetically): + +Afrikaans, Arabic, Armenian, Brazilian Portuguese, Catalan, Chinese, +Chinese Traditional, Croatian, Czech, Danish, Dutch, English, +Esperanto, Finnish, French, German, Greek, Hungarian, Indonesian, +Italian, Japanese (+En), Korean (+En), Lithuanian, Macedonian, +Norwegian, Persian, Polish, Portuguese, Romanian, Russian, Serbian, +SerbianCyrilic, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian, +and Vietnamese. + +Of them, 7 translators are up-to-date, 32 translators are based on +some adapter class, and 2 are English based. + +---------------------------------------------------------------------- +The following translator classes are up-to-date (sorted +alphabetically). This means that they derive from the Translator class +and they implement all 242 of the required methods. Anyway, there +still may be some details listed even for them: + + TranslatorCzech + TranslatorDutch + TranslatorEnglish + TranslatorEsperanto + TranslatorGreek + TranslatorSlovak + TranslatorSpanish + +---------------------------------------------------------------------- +The following translator classes need some maintenance (the most +obsolete at the end). The other info shows the estimation of Doxygen +version when the class was last updated and number of methods that +must be implemented to become up-to-date: + + TranslatorPolish 1.8.2 7 methods to implement (2 %) + TranslatorKorean 1.8.02 7 methods to implement (2 %) + Note: Change the base class to TranslatorAdapter_1_8_2. + + TranslatorItalian 1.8.2 7 methods to implement (2 %) + TranslatorGerman 1.8.2 7 methods to implement (2 %) + TranslatorCroatian 1.8.2 7 methods to implement (2 %) + TranslatorChinese 1.8.2 7 methods to implement (2 %) + TranslatorPortuguese 1.8.0 14 methods to implement (5 %) + TranslatorIndonesian 1.8.0 14 methods to implement (5 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorFrench 1.8.0 14 methods to implement (5 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorDanish 1.8.0 14 methods to implement (5 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorChinesetraditional 1.8.0 14 methods to implement (5 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorCatalan 1.8.0 14 methods to implement (5 %) + TranslatorBrazilian 1.8.0 14 methods to implement (5 %) + TranslatorArmenian 1.8.0 14 methods to implement (5 %) + TranslatorTurkish 1.7.5 17 methods to implement (7 %) + TranslatorRussian 1.7.5 17 methods to implement (7 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorPersian 1.7.5 17 methods to implement (7 %) + TranslatorVietnamese 1.6.0 26 methods to implement (10 %) + TranslatorSwedish 1.6.0 26 methods to implement (10 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorSerbian 1.6.0 26 methods to implement (10 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorSerbianCyrilic 1.6.0 26 methods to implement (10 %) + TranslatorRomanian 1.6.0 26 methods to implement (10 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorMacedonian 1.6.0 26 methods to implement (10 %) + TranslatorJapanese 1.6.0 26 methods to implement (10 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorFinnish 1.6.0 26 methods to implement (10 %) + TranslatorAfrikaans 1.6.0 26 methods to implement (10 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorSlovene 1.4.6 50 methods to implement (20 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorNorwegian 1.4.6 49 methods to implement (20 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorLithuanian 1.4.6 50 methods to implement (20 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorHungarian 1.4.6 50 methods to implement (20 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorArabic 1.4.6 49 methods to implement (20 %) + Note: Reimplementation using UTF-8 suggested. + + TranslatorUkrainian 1.4.1 50 methods to implement (20 %) + Note: Reimplementation using UTF-8 suggested. + + +---------------------------------------------------------------------- +The following translator classes derive directly from the +TranslatorEnglish. The class identifier has the suffix 'En' that says +that this is intentional. Usually, there is also a non-English based +version of the translator for the language: + + TranslatorJapaneseEn implements 5 methods -- Reimplementation using UTF-8 suggested. + TranslatorKoreanEn implements 5 methods -- Reimplementation using UTF-8 suggested. + +====================================================================== +WARNING: The following translator methods are declared in the +Translator class but their identifiers do not appear in source files. +The situation should be checked. The .cpp files and .h files excluding +the '*translator*' files in doxygen/src directory were simply searched +for occurence of the method identifiers: + + QCString idLanguageCharset() + QCString trAlphabeticalList() + QCString trDCOPMethods() + QCString trDirDependency(const char *) + QCString trFuncProtos() + QCString trFunctionPrototypeDocumentation() + QCString trSearchForIndex() + + +====================================================================== +Details for translators (classes sorted alphabetically): + + + +TranslatorAfrikaans (TranslatorAdapter_1_6_0) 26 methods to implement (10 %) +------------------- + + Implements 216 of the required methods (89 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trNoMatches() + virtual QCString trLoading() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trDirDepGraph(const char * name) + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorArabic (TranslatorAdapter_1_4_6) 49 methods to implement (20 %) +---------------- + + Implements 193 of the required methods (79 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trNoMatches() + virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single) + virtual QCString trLoading() + virtual QCString trSubprograms() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trModulesListDescription(bool extractAll) + virtual QCString trModulesList() + virtual QCString trTypeConstraints() + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trMemberFunctionDocumentationFortran() + virtual QCString trCompoundListDescriptionFortran() + virtual QCString trDesignOverview() + virtual QCString trTypeDocumentation() + virtual QCString trAndMore(const QCString & number) + virtual QCString trModuleReference(const char * namespaceName) + virtual QCString trModulesMemberDescription(bool extractAll) + virtual QCString trModulesMembers() + virtual QCString trDirDepGraph(const char * name) + virtual QCString trModulesIndex() + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trCompoundListFortran() + virtual QCString trDataTypes() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trCompoundIndexFortran() + virtual QCString trSubprogram(bool first_capital, bool singular) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trCallerGraph() + virtual QCString trExtendsClass() + virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate) + virtual QCString trType(bool first_capital, bool singular) + virtual QCString trModule(bool first_capital, bool singular) + virtual QCString trCompoundMembersFortran() + virtual QCString trSubprogramDocumentation() + virtual QCString trInstanceMethods() + + Obsolete methods (should be removed, never used): + + virtual QCString trHeaderFilesDescription() + virtual QCString trField(bool/*first_capital*/, bool singular) + virtual QCString trPackageDocumentation() + virtual QCString trSources() + virtual QCString trReimplementedForInternalReasons() + virtual QCString trInterfaces() + virtual QCString trHeaderFiles() + virtual QCString trBugsAndLimitations() + virtual QCString trNoDescriptionAvailable() + + +TranslatorArmenian (TranslatorAdapter_1_8_0) 14 methods to implement (5 %) +------------------ + + Implements 228 of the required methods (94 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trTemplateParameters() + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorBrazilian (TranslatorAdapter_1_8_0) 14 methods to implement (5 %) +------------------- + + Implements 228 of the required methods (94 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trTemplateParameters() + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorCatalan (TranslatorAdapter_1_8_0) 14 methods to implement (5 %) +----------------- + + Implements 228 of the required methods (94 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trTemplateParameters() + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorChinese (TranslatorAdapter_1_8_2) 7 methods to implement (2 %) +----------------- + + Implements 235 of the required methods (97 %). + + Missing methods (should be implemented): + + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trMethodDocumentation() + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorChinesetraditional (TranslatorAdapter_1_8_0) 14 methods to implement (5 %) +---------------------------- + + Implements 228 of the required methods (94 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trTemplateParameters() + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorCroatian (TranslatorAdapter_1_8_2) 7 methods to implement (2 %) +------------------ + + Implements 235 of the required methods (97 %). + + Missing methods (should be implemented): + + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trMethodDocumentation() + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorDanish (TranslatorAdapter_1_8_0) 14 methods to implement (5 %) +---------------- + + Implements 228 of the required methods (94 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trTemplateParameters() + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorFinnish (TranslatorAdapter_1_6_0) 26 methods to implement (10 %) +----------------- + + Implements 216 of the required methods (89 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trNoMatches() + virtual QCString trLoading() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trDirDepGraph(const char * name) + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorFrench (TranslatorAdapter_1_8_0) 14 methods to implement (5 %) +---------------- + + Implements 228 of the required methods (94 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trTemplateParameters() + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorGerman (TranslatorAdapter_1_8_2) 7 methods to implement (2 %) +---------------- + + Implements 235 of the required methods (97 %). + + Missing methods (should be implemented): + + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trMethodDocumentation() + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorHungarian (TranslatorAdapter_1_4_6) 50 methods to implement (20 %) +------------------- + + Implements 192 of the required methods (79 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trNoMatches() + virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single) + virtual QCString trLoading() + virtual QCString trSubprograms() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trModulesListDescription(bool extractAll) + virtual QCString trModulesList() + virtual QCString trTypeConstraints() + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trMemberFunctionDocumentationFortran() + virtual QCString trCompoundListDescriptionFortran() + virtual QCString trDesignOverview() + virtual QCString trTypeDocumentation() + virtual QCString trAndMore(const QCString & number) + virtual QCString trModuleReference(const char * namespaceName) + virtual QCString trModulesMemberDescription(bool extractAll) + virtual QCString trModulesMembers() + virtual QCString trDirDepGraph(const char * name) + virtual QCString trModulesIndex() + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trCompoundListFortran() + virtual QCString trDataTypes() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trCompoundIndexFortran() + virtual QCString trSubprogram(bool first_capital, bool singular) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trCallerGraph() + virtual QCString trExtendsClass() + virtual QCString trEnumerationValueDocumentation() + virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate) + virtual QCString trType(bool first_capital, bool singular) + virtual QCString trModule(bool first_capital, bool singular) + virtual QCString trCompoundMembersFortran() + virtual QCString trSubprogramDocumentation() + virtual QCString trInstanceMethods() + + +TranslatorIndonesian (TranslatorAdapter_1_8_0) 14 methods to implement (5 %) +-------------------- + + Implements 228 of the required methods (94 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trTemplateParameters() + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorItalian (TranslatorAdapter_1_8_2) 7 methods to implement (2 %) +----------------- + + Implements 235 of the required methods (97 %). + + Missing methods (should be implemented): + + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trMethodDocumentation() + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorJapanese (TranslatorAdapter_1_6_0) 26 methods to implement (10 %) +------------------ + + Implements 216 of the required methods (89 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trNoMatches() + virtual QCString trLoading() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trDirDepGraph(const char * name) + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + Obsolete methods (should be removed, never used): + + virtual QCString trHeaderFilesDescription() + virtual QCString trField(bool/*first_capital*/, bool/*singular*/) + virtual QCString trPackageDocumentation() + virtual QCString trSources() + virtual QCString trReimplementedForInternalReasons() + virtual QCString trInterfaces() + virtual QCString trHeaderFiles() + virtual QCString trBugsAndLimitations() + virtual QCString trNoDescriptionAvailable() + + +TranslatorJapaneseEn (TranslatorEnglish) 237 methods to implement (97 %) +-------------------- + + Implements 5 of the required methods (2 %). + + This English-based translator implements the following methods: + + virtual QCString trRTFansicp() + virtual QCString idLanguage() + virtual QCString trRTFCharSet() + virtual QCString idLanguageCharset() + virtual QCString latexLanguageSupportCommand() + + +TranslatorKorean (TranslatorAdapter_1_7_5) 7 methods to implement (2 %) +---------------- + + Implements 235 of the required methods (97 %). + + Missing methods (should be implemented): + + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trMethodDocumentation() + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorKoreanEn (TranslatorEnglish) 237 methods to implement (97 %) +------------------ + + Implements 5 of the required methods (2 %). + + This English-based translator implements the following methods: + + virtual QCString trRTFansicp() + virtual QCString idLanguage() + virtual QCString trRTFCharSet() + virtual QCString idLanguageCharset() + virtual QCString latexLanguageSupportCommand() + + +TranslatorLithuanian (TranslatorAdapter_1_4_6) 50 methods to implement (20 %) +-------------------- + + Implements 192 of the required methods (79 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trNoMatches() + virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single) + virtual QCString trLoading() + virtual QCString trSubprograms() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trModulesListDescription(bool extractAll) + virtual QCString trModulesList() + virtual QCString trTypeConstraints() + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trMemberFunctionDocumentationFortran() + virtual QCString trCompoundListDescriptionFortran() + virtual QCString trDesignOverview() + virtual QCString trTypeDocumentation() + virtual QCString trAndMore(const QCString & number) + virtual QCString trModuleReference(const char * namespaceName) + virtual QCString trModulesMemberDescription(bool extractAll) + virtual QCString trModulesMembers() + virtual QCString trDirDepGraph(const char * name) + virtual QCString trModulesIndex() + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trCompoundListFortran() + virtual QCString trDataTypes() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trCompoundIndexFortran() + virtual QCString trSubprogram(bool first_capital, bool singular) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trCallerGraph() + virtual QCString trExtendsClass() + virtual QCString trEnumerationValueDocumentation() + virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate) + virtual QCString trType(bool first_capital, bool singular) + virtual QCString trModule(bool first_capital, bool singular) + virtual QCString trCompoundMembersFortran() + virtual QCString trSubprogramDocumentation() + virtual QCString trInstanceMethods() + + +TranslatorMacedonian (TranslatorAdapter_1_6_0) 26 methods to implement (10 %) +-------------------- + + Implements 216 of the required methods (89 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trNoMatches() + virtual QCString trLoading() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trDirDepGraph(const char * name) + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorNorwegian (TranslatorAdapter_1_4_6) 49 methods to implement (20 %) +------------------- + + Implements 193 of the required methods (79 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trNoMatches() + virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single) + virtual QCString trLoading() + virtual QCString trSubprograms() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trModulesListDescription(bool extractAll) + virtual QCString trModulesList() + virtual QCString trTypeConstraints() + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trMemberFunctionDocumentationFortran() + virtual QCString trCompoundListDescriptionFortran() + virtual QCString trDesignOverview() + virtual QCString trTypeDocumentation() + virtual QCString trAndMore(const QCString & number) + virtual QCString trModuleReference(const char * namespaceName) + virtual QCString trModulesMemberDescription(bool extractAll) + virtual QCString trModulesMembers() + virtual QCString trDirDepGraph(const char * name) + virtual QCString trModulesIndex() + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trCompoundListFortran() + virtual QCString trDataTypes() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trCompoundIndexFortran() + virtual QCString trSubprogram(bool first_capital, bool singular) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trCallerGraph() + virtual QCString trExtendsClass() + virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate) + virtual QCString trType(bool first_capital, bool singular) + virtual QCString trModule(bool first_capital, bool singular) + virtual QCString trCompoundMembersFortran() + virtual QCString trSubprogramDocumentation() + virtual QCString trInstanceMethods() + + Obsolete methods (should be removed, never used): + + virtual QCString trHeaderFilesDescription() + virtual QCString trField(bool first_capital, bool singular) + virtual QCString trPackageDocumentation() + virtual QCString trSources() + virtual QCString trReimplementedForInternalReasons() + virtual QCString trInterfaces() + virtual QCString trHeaderFiles() + virtual QCString trBugsAndLimitations() + virtual QCString trNoDescriptionAvailable() + + +TranslatorPersian (TranslatorAdapter_1_7_5) 17 methods to implement (7 %) +----------------- + + Implements 225 of the required methods (92 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trTemplateParameters() + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trDirDepGraph(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trCopyright() + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorPolish (TranslatorAdapter_1_8_2) 7 methods to implement (2 %) +---------------- + + Implements 235 of the required methods (97 %). + + Missing methods (should be implemented): + + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trMethodDocumentation() + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + Obsolete methods (should be removed, never used): + + QCString trHeaderFilesDescription() + virtual QCString trField(bool first_capital, bool singular) + virtual QCString trPackageDocumentation() + QCString trSources() + QCString trReimplementedForInternalReasons() + virtual QCString trInterfaces() + QCString trHeaderFiles() + QCString trBugsAndLimitations() + QCString trNoDescriptionAvailable() + + +TranslatorPortuguese (TranslatorAdapter_1_8_0) 14 methods to implement (5 %) +-------------------- + + Implements 228 of the required methods (94 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trTemplateParameters() + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trAdditionalInheritedMembers() + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorRomanian (TranslatorAdapter_1_6_0) 26 methods to implement (10 %) +------------------ + + Implements 216 of the required methods (89 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trNoMatches() + virtual QCString trLoading() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trDirDepGraph(const char * name) + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorRussian (TranslatorAdapter_1_7_5) 17 methods to implement (7 %) +----------------- + + Implements 225 of the required methods (92 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trTemplateParameters() + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trDirDepGraph(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trCopyright() + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorSerbian (TranslatorAdapter_1_6_0) 26 methods to implement (10 %) +----------------- + + Implements 216 of the required methods (89 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trNoMatches() + virtual QCString trLoading() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trDirDepGraph(const char * name) + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorSerbianCyrilic (TranslatorAdapter_1_6_0) 26 methods to implement (10 %) +------------------------ + + Implements 216 of the required methods (89 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trNoMatches() + virtual QCString trLoading() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trDirDepGraph(const char * name) + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorSlovene (TranslatorAdapter_1_4_6) 50 methods to implement (20 %) +----------------- + + Implements 192 of the required methods (79 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trNoMatches() + virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single) + virtual QCString trLoading() + virtual QCString trSubprograms() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trModulesListDescription(bool extractAll) + virtual QCString trModulesList() + virtual QCString trTypeConstraints() + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trMemberFunctionDocumentationFortran() + virtual QCString trCompoundListDescriptionFortran() + virtual QCString trDesignOverview() + virtual QCString trTypeDocumentation() + virtual QCString trAndMore(const QCString & number) + virtual QCString trModuleReference(const char * namespaceName) + virtual QCString trModulesMemberDescription(bool extractAll) + virtual QCString trModulesMembers() + virtual QCString trDirDepGraph(const char * name) + virtual QCString trModulesIndex() + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trCompoundListFortran() + virtual QCString trDataTypes() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trCompoundIndexFortran() + virtual QCString trSubprogram(bool first_capital, bool singular) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trCallerGraph() + virtual QCString trExtendsClass() + virtual QCString trEnumerationValueDocumentation() + virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate) + virtual QCString trType(bool first_capital, bool singular) + virtual QCString trModule(bool first_capital, bool singular) + virtual QCString trCompoundMembersFortran() + virtual QCString trSubprogramDocumentation() + virtual QCString trInstanceMethods() + + +TranslatorSwedish (TranslatorAdapter_1_6_0) 26 methods to implement (10 %) +----------------- + + Implements 216 of the required methods (89 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trNoMatches() + virtual QCString trLoading() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trDirDepGraph(const char * name) + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorTurkish (TranslatorAdapter_1_7_5) 17 methods to implement (7 %) +----------------- + + Implements 225 of the required methods (92 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trTemplateParameters() + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trDirDepGraph(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trCopyright() + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods() + + +TranslatorUkrainian (TranslatorAdapter_1_4_1) 50 methods to implement (20 %) +------------------- + + Implements 192 of the required methods (79 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trCompoundMembersDescriptionFortran(bool extractAll) + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trOverloadText() + virtual QCString trNoMatches() + virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single) + virtual QCString trLoading() + virtual QCString trSubprograms() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trModulesListDescription(bool extractAll) + virtual QCString trModulesList() + virtual QCString trTypeConstraints() + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trMemberFunctionDocumentationFortran() + virtual QCString trCompoundListDescriptionFortran() + virtual QCString trDesignOverview() + virtual QCString trTypeDocumentation() + virtual QCString trAndMore(const QCString & number) + virtual QCString trModuleReference(const char * namespaceName) + virtual QCString trModulesMemberDescription(bool extractAll) + virtual QCString trModulesMembers() + virtual QCString trDirDepGraph(const char * name) + virtual QCString trModulesIndex() + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trCompoundListFortran() + virtual QCString trDataTypes() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trCompoundIndexFortran() + virtual QCString trSubprogram(bool first_capital, bool singular) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trCallerGraph() + virtual QCString trExtendsClass() + virtual QCString trCompoundReferenceFortran(const char * clName, ClassDef::CompoundType compType, bool isTemplate) + virtual QCString trType(bool first_capital, bool singular) + virtual QCString trModule(bool first_capital, bool singular) + virtual QCString trCompoundMembersFortran() + virtual QCString trSubprogramDocumentation() + virtual QCString trInstanceMethods() + + Obsolete methods (should be removed, never used): + + virtual QCString trHeaderFilesDescription() + virtual QCString trField(bool first_capital, bool singular) + virtual QCString trPackageDocumentation() + virtual QCString trSources() + virtual QCString trReimplementedForInternalReasons() + virtual QCString trInterfaces() + virtual QCString trHeaderFiles() + virtual QCString trBugsAndLimitations() + virtual QCString trNoDescriptionAvailable() + + +TranslatorVietnamese (TranslatorAdapter_1_6_0) 26 methods to implement (10 %) +-------------------- + + Implements 216 of the required methods (89 %). + + Missing methods (should be implemented): + + virtual QCString trDetailLevel() + virtual QCString trSearching() + virtual QCString trTemplateParameters() + virtual QCString trNoMatches() + virtual QCString trLoading() + virtual QCString trDateTime(int year, int month, int day, int dayOfWeek, int hour, int minutes, int seconds, bool includeTime) + virtual QCString trFileIn(const char * name) + virtual QCString trClassMethods() + virtual QCString trProvidedByCategory() + virtual QCString trGlobalNamespace() + virtual QCString trDesignOverview() + virtual QCString trAndMore(const QCString & number) + virtual QCString trDirDepGraph(const char * name) + virtual QCString trDirRelation(const char * name) + virtual QCString trMethodDocumentation() + virtual QCString trEnumReference(const char * name) + virtual QCString trInheritedFrom(const char * members, const char * what) + virtual QCString trCiteReferences() + virtual QCString trAdditionalInheritedMembers() + virtual QCString trDirDependency(const char * name) + virtual QCString trCopyright() + virtual QCString trIncludesFileIn(const char * name) + virtual QCString trEnumGeneratedFromFiles(bool single) + virtual QCString trPanelSynchronisationTooltip(bool enable) + virtual QCString trExtendsClass() + virtual QCString trInstanceMethods()
\ No newline at end of file diff --git a/doc/trouble.doc b/doc/trouble.doc new file mode 100644 index 0000000..c795b0f --- /dev/null +++ b/doc/trouble.doc @@ -0,0 +1,142 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page trouble Troubleshooting + +<h2>Known problems:</h2> +<ul> +<li>If you have problems building doxygen from sources, please + read \ref unix_problems "this section" first. +<li>Doxygen is <em>not</em> a real compiler, it is only a lexical scanner. + This means that it can and will not detect errors in your source code. +<li>Since it is impossible to test all possible code fragments, it is + very well possible, that some valid piece of C/C++ code is not handled + properly. If you find such a piece, please send it to me, so I can + improve doxygen's parsing capabilities. Try to make the piece of code + you send as small as possible, to help me narrow down the search. +<li>Doxygen does not work properly if there are multiple classes, structs + or unions with the same name in your code. It should not crash however, + rather it should ignore all of the classes with the same name except one. +<li>Some commands do not work inside the arguments of other commands. + Inside a HTML link (i.e. \<a href="..."\>...\<a\>) for instance + other commands (including other HTML commands) do not work! + The sectioning commands are an important exception. +<li>Redundant braces can confuse doxygen in some cases. + For example: +\verbatim + void f (int); +\endverbatim + is properly parsed as a function declaration, but +\verbatim + const int (a); +\endverbatim + is also seen as a function declaration with name + <code>int</code>, because only the syntax is analyzed, + not the semantics. If the redundant braces can be detected, as in +\verbatim + int *(a[20]); +\endverbatim + then doxygen will remove the braces and correctly parse the result. +<li>Not all names in code fragments that are included in the documentation + are replaced by links (for instance when using \c SOURCE_BROWSER = \c YES) + and links to overloaded members may point to the wrong member. + This also holds for the "Referenced by" list that is generated for + each function. + + For a part this is because the code parser isn't smart enough at the + moment. I'll try to improve this in the future. But even with these + improvements not everything can be properly linked to the corresponding + documentation, because of possible ambiguities or lack of + information about the context in which the code fragment is found. +<li>It is not possible to insert a non-member function f in a class A + using the \\relates or \\relatesalso command, if class A already + has a member with name f and the same argument list. +<li>There is only very limited support for member specialization at the + moment. It only works if there is a specialized template class as + well. +<li>Not all special commands are properly translated to RTF. +<li>Version 1.8.6 of dot (and maybe earlier versions too) do not + generate proper map files, causing the graphs that doxygen generates + not to be properly clickable. +<li>PHP only: Doxygen requires that all PHP statements (i.e. code) is + wrapped in a functions/methods, otherwise you may run into parse problems. +</ul> + + +<h2>How to help</h2> +The development of Doxygen highly depends on your input! + +If you are trying Doxygen let me know what you think of it (do you +miss certain features?). Even if you decide not to use it, please let me +know why. + +\anchor bug_reports +<h2>How to report a bug</h2> + +Bugs are tracked in GNOME's <a href="http://bugzilla.gnome.org">bugzilla</a> database. +Before submitting a +<a href="http://bugzilla.gnome.org/enter_bug.cgi?product=doxygen">new bug</a>, +first <a href="http://bugzilla.gnome.org/query.cgi?format=advanced&product=doxygen">search</a> +through the database if the same bug has already been submitted by others (the doxygen +product will be preselected). +If you believe you have found a new bug, +please <a href="http://bugzilla.gnome.org/enter_bug.cgi?product=doxygen">report it</a>. + +If you are unsure whether or not something is a bug, please ask help +on the <a href="http://sourceforge.net/mail/?group_id=5971">users mailing list</a> +first (subscription is required). + +If you send only a (vague) description of a bug, you are usually not very +helpful and it will cost me much more time to figure out what you mean. +In the worst-case your bug report may even be completely ignored by me, so +always try to include the following information in your bug report: +- The version of doxygen you are using (for instance 1.5.3, use + <code>doxygen --version</code> if you are not sure). +- The name and version number of your operating system (for instance + SuSE Linux 6.4) +- It is usually a good idea to send along the configuration file as well, + but please use doxygen with the <code>-s</code> flag while generating it + to keep it small (use <code>doxygen -s -u [configName]</code> to strip + the comments from an existing config file). +- The easiest (and often the only) way for me to fix bugs is if you can + attach a small example demonstrating the problem you have to the bug report, so I can + reproduce it on my machine. Please make sure the example is valid + source code (could potentially compile) and that the problem is really + captured by the example (I often get examples that do not trigger the + actual bug!). If you intend to send more than one file please zip or tar + the files together into a single file for easier processing. + Note that when reporting a new bug you'll get a chance to attach a file to it + only \e after submitting the initial bug description. + +You can (and are encouraged to) add a patch for a bug. If you do so +please use PATCH as a keyword in the bug entry form. + +If you have ideas how to fix existing bugs and limitations please discuss them on +the <a href="http://sourceforge.net/mail/?group_id=5971">developers mailing list</a> +(subscription required). Patches can also be sent directly to dimitri@stack.nl if +you prefer not to send them via the bug tracker or mailing list. + +For patches please use +"diff -uN" or include the files you modified. If you send more than +one file please tar or zip everything, so I only have to save and download +one file. + +\htmlonly +Return to the <a href="index.html">index</a>. +\endhtmlonly + +*/ + diff --git a/doc/xmlcmds.doc b/doc/xmlcmds.doc new file mode 100644 index 0000000..2d6cbab --- /dev/null +++ b/doc/xmlcmds.doc @@ -0,0 +1,103 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 1997-2012 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +/*! \page xmlcmds XML Commands + +Doxygen supports most of the XML commands that are typically used in C# +code comments. The XML tags are defined in Appendix E of the +<a href="http://www.ecma-international.org/publications/standards/Ecma-334.htm">ECMA-334</a> +standard, which defines the C# language. Unfortunately, the specification is +not very precise and a number of the examples given are of poor quality. + +Here is the list of tags supported by doxygen: + +<ul> +<li><tt>\<c\></tt> Identifies inline text that should be rendered as a + piece of code. Similar to using <tt>\<tt\></tt>text<tt>\</tt\></tt>. +<li><tt>\<code\></tt> Set one or more lines of source code or program output. + Note that this command behaves like <tt>\\code ... \\endcode</tt> + for C# code, but it behaves like the HTML equivalent + <tt>\<code\>...\</code\></tt> for other languages. +<li><tt>\<description\></tt> Part of a <tt>\<list\></tt> command, describes an item. +<li><tt>\<example\></tt> Marks a block of text as an example, ignored by doxygen. +<li><tt>\<exception cref="member"\></tt> Identifies the exception a + method can throw. +<li><tt>\<include\></tt> Can be used to import a piece of XML from an external + file. Ignored by doxygen at the moment. +<li><tt>\<inheritdoc\></tt> Can be used to insert the documentation of a + member of a base class into the documentation of a + member of a derived class that reimplements it. +<li><tt>\<item\></tt> List item. Can only be used inside a <tt>\<list\></tt> context. +<li><tt>\<list type="type"\></tt> Starts a list, supported types are <tt>bullet</tt> + or <tt>number</tt> and <tt>table</tt>. + A list consists of a number of <tt>\<item\></tt> tags. + A list of type table, is a two column table which can have + a header. +<li><tt>\<listheader\></tt> Starts the header of a list of type "table". +<li><tt>\<para\></tt> Identifies a paragraph of text. +<li><tt>\<param name="paramName"\></tt> Marks a piece of text as the documentation + for parameter "paramName". Similar to + using \ref cmdparam "\\param". +<li><tt>\<paramref name="paramName"\></tt> Refers to a parameter with name + "paramName". Similar to using \ref cmda "\\a". +<li><tt>\<permission\></tt> Identifies the security accessibility of a member. + Ignored by doxygen. +<li><tt>\<remarks\></tt> Identifies the detailed description. +<li><tt>\<returns\></tt> Marks a piece of text as the return value of a + function or method. Similar to using \ref cmdreturn "\\return". +<li><tt>\<see cref="member"\></tt> Refers to a member. Similar to \ref cmdref "\\ref". +<li><tt>\<seealso cref="member"\></tt> Starts a "See also" section referring + to "member". Similar to using \ref cmdsa "\\sa" member. +<li><tt>\<summary\></tt> Identifies the brief description. + Similar to using \ref cmdbrief "\\brief". +<li><tt>\<term\></tt> Part of a <tt>\<list\></tt> command. +<li><tt>\<typeparam name="paramName"\></tt> Marks a piece of text as the documentation + for type parameter "paramName". Similar to + using \ref cmdparam "\\param". +<li><tt>\<typeparamref name="paramName"\></tt> Refers to a parameter with name + "paramName". Similar to using \ref cmda "\\a". +<li><tt>\<value\></tt> Identifies a property. Ignored by doxygen. +</ul> + +Here is an example of a typical piece of code using some of the above commands: + +\code +/// <summary> +/// A search engine. +/// </summary> +class Engine +{ + /// <summary> + /// The Search method takes a series of parameters to specify the search criterion + /// and returns a dataset containing the result set. + /// </summary> + /// <param name="connectionString">the connection string to connect to the + /// database holding the content to search</param> + /// <param name="maxRows">The maximum number of rows to + /// return in the result set</param> + /// <param name="searchString">The text that we are searching for</param> + /// <returns>A DataSet instance containing the matching rows. It contains a maximum + /// number of rows specified by the maxRows parameter</returns> + public DataSet Search(string connectionString, int maxRows, int searchString) + { + DataSet ds = new DataSet(); + return ds; + } +} +\endcode + +*/ + |