* doc/tutorial/doxyfile_tuto.local: new doxyfile. Generate only the
tutorial.
* doc/tutorial/figures/extend-1.ppm,
* doc/tutorial/figures/extend-2.ppm,
* doc/tutorial/figures/extend-3.ppm,
* doc/tutorial/figures/extend-4.ppm,
* doc/tutorial/figures/extend-5.ppm,
* doc/tutorial/outputs/extend.txt: new reference files for the new
example.
* doc/tutorial/samples/Makefile.am,
* doc/tutorial/samples/extend.cc: new example for the tutorial,
related to the image extension.
* doc/tutorial/samples/ima2d-rot.cc: use extended_to().
* doc/tutorial/tools/todoxygen.sh: support keyword subsubsection.
* doc/tutorial/tutorial.tex: add more details about image extension.
---
milena/ChangeLog | 25 +++
milena/doc/tutorial/doxyfile_tuto.local | 342 ++++++++++++++++++++++++++++++
milena/doc/tutorial/figures/extend-1.ppm | Bin 0 -> 12406 bytes
milena/doc/tutorial/figures/extend-2.ppm | Bin 0 -> 16546 bytes
milena/doc/tutorial/figures/extend-3.ppm | Bin 0 -> 16546 bytes
milena/doc/tutorial/figures/extend-4.ppm | 7 +
milena/doc/tutorial/figures/extend-5.ppm | Bin 0 -> 12406 bytes
milena/doc/tutorial/samples/Makefile.am | 2 +
milena/doc/tutorial/samples/extend.cc | 94 ++++++++
milena/doc/tutorial/samples/ima2d-rot.cc | 2 +-
milena/doc/tutorial/tools/todoxygen.sh | 2 +-
milena/doc/tutorial/tutorial.tex | 80 +++++++-
12 files changed, 545 insertions(+), 9 deletions(-)
create mode 100644 milena/doc/tutorial/doxyfile_tuto.local
create mode 100644 milena/doc/tutorial/figures/extend-1.ppm
create mode 100644 milena/doc/tutorial/figures/extend-2.ppm
create mode 100644 milena/doc/tutorial/figures/extend-3.ppm
create mode 100644 milena/doc/tutorial/figures/extend-4.ppm
create mode 100644 milena/doc/tutorial/figures/extend-5.ppm
create mode 100644 milena/doc/tutorial/outputs/extend.txt
create mode 100644 milena/doc/tutorial/samples/extend.cc
diff --git a/milena/ChangeLog b/milena/ChangeLog
index b2951e8..81868ae 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,28 @@
+2009-02-24 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Update tutorial.
+
+ * doc/tutorial/doxyfile_tuto.local: new doxyfile. Generate only the
+ tutorial.
+
+ * doc/tutorial/figures/extend-1.ppm,
+ * doc/tutorial/figures/extend-2.ppm,
+ * doc/tutorial/figures/extend-3.ppm,
+ * doc/tutorial/figures/extend-4.ppm,
+ * doc/tutorial/figures/extend-5.ppm,
+ * doc/tutorial/outputs/extend.txt: new reference files for the new
+ example.
+
+ * doc/tutorial/samples/Makefile.am,
+ * doc/tutorial/samples/extend.cc: new example for the tutorial,
+ related to the image extension.
+
+ * doc/tutorial/samples/ima2d-rot.cc: use extended_to().
+
+ * doc/tutorial/tools/todoxygen.sh: support keyword subsubsection.
+
+ * doc/tutorial/tutorial.tex: add more details about image extension.
+
2009-02-23 Fabien Freling <fabien.freling(a)lrde.epita.fr>
Add DICOM support.
diff --git a/milena/doc/tutorial/doxyfile_tuto.local
b/milena/doc/tutorial/doxyfile_tuto.local
new file mode 100644
index 0000000..a026b2e
--- /dev/null
+++ b/milena/doc/tutorial/doxyfile_tuto.local
@@ -0,0 +1,342 @@
+# Doxyfile 1.5.6
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+DOXYFILE_ENCODING = UTF-8
+PROJECT_NAME = "Milena (Olena)"
+PROJECT_NUMBER = "User documentation 1.0 $Id: ChangeLog 2542 2008-10-10
13:35:03Z ballas $"
+OUTPUT_DIRECTORY = ./user/
+CREATE_SUBDIRS = YES
+OUTPUT_LANGUAGE = English
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ABBREVIATE_BRIEF =
+ALWAYS_DETAILED_SEC = YES
+INLINE_INHERITED_MEMB = YES
+FULL_PATH_NAMES = YES
+STRIP_FROM_PATH = ../../../milena \
+ ../../milena
+STRIP_FROM_INC_PATH =
+SHORT_NAMES = NO
+JAVADOC_AUTOBRIEF = NO
+QT_AUTOBRIEF = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP = NO
+INHERIT_DOCS = YES
+SEPARATE_MEMBER_PAGES = NO
+TAB_SIZE = 8
+ALIASES =
+OPTIMIZE_OUTPUT_FOR_C = NO
+OPTIMIZE_OUTPUT_JAVA = NO
+OPTIMIZE_FOR_FORTRAN = NO
+OPTIMIZE_OUTPUT_VHDL = NO
+BUILTIN_STL_SUPPORT = YES
+CPP_CLI_SUPPORT = NO
+SIP_SUPPORT = NO
+IDL_PROPERTY_SUPPORT = YES
+DISTRIBUTE_GROUP_DOC = NO
+SUBGROUPING = YES
+TYPEDEF_HIDES_STRUCT = NO
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL = NO
+EXTRACT_PRIVATE = NO
+EXTRACT_STATIC = NO
+EXTRACT_LOCAL_CLASSES = NO
+EXTRACT_LOCAL_METHODS = NO
+EXTRACT_ANON_NSPACES = NO
+HIDE_UNDOC_MEMBERS = YES
+HIDE_UNDOC_CLASSES = YES
+HIDE_FRIEND_COMPOUNDS = YES
+HIDE_IN_BODY_DOCS = YES
+INTERNAL_DOCS = NO
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = YES
+SHOW_INCLUDE_FILES = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+SORT_BRIEF_DOCS = YES
+SORT_GROUP_NAMES = YES
+SORT_BY_SCOPE_NAME = NO
+GENERATE_TODOLIST = NO
+GENERATE_TESTLIST = YES
+GENERATE_BUGLIST = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+SHOW_USED_FILES = YES
+SHOW_DIRECTORIES = YES
+SHOW_FILES = YES
+SHOW_NAMESPACES = YES
+FILE_VERSION_FILTER =
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = YES
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_IF_DOC_ERROR = YES
+WARN_NO_PARAMDOC = NO
+WARN_FORMAT = "$file:$line: $text"
+WARN_LOGFILE =
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = .
+INPUT_ENCODING = UTF-8
+FILE_PATTERNS = *.cc \
+ *.hh \
+ *.hxx \
+ *.hcc
+RECURSIVE = YES
+EXCLUDE = user
+EXCLUDE_SYMLINKS = YES
+EXCLUDE_PATTERNS = *spe.hh
+EXCLUDE_SYMBOLS = *::internal*
+EXAMPLE_PATH =
/lrde/stockholm/lazzara/svn/olena/git/oln/milena/doc/tutorial/samples \
+
/lrde/stockholm/lazzara/svn/olena/git/oln/milena/doc/tutorial/outputs \
+
/lrde/stockholm/lazzara/svn/olena/git/oln/milena/doc/tutorial/examples \
+ /lrde/stockholm/lazzara/svn/olena/git/oln/milena/doc/examples \
+
/lrde/stockholm/lazzara/svn/olena/git/build/milena/doc/tutorial/samples \
+
/lrde/stockholm/lazzara/svn/olena/git/build/milena/doc/tutorial/outputs
+EXAMPLE_PATTERNS =
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH =
/lrde/stockholm/lazzara/svn/olena/git/oln/milena/doc/tutorial/figures \
+
/lrde/stockholm/lazzara/svn/olena/git/build/milena/doc/tutorial/figures \
+ /lrde/stockholm/lazzara/svn/olena/git/oln/milena/img
+INPUT_FILTER =
+FILTER_PATTERNS =
+FILTER_SOURCE_FILES = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = YES
+INLINE_SOURCES = NO
+STRIP_CODE_COMMENTS = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION = YES
+REFERENCES_LINK_SOURCE = YES
+USE_HTAGS = NO
+VERBATIM_HEADERS = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX =
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT = html
+HTML_FILE_EXTENSION = .html
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+GENERATE_HTMLHELP = NO
+GENERATE_DOCSET = NO
+DOCSET_FEEDNAME = "Doxygen generated docs"
+DOCSET_BUNDLE_ID = org.doxygen.Project
+HTML_DYNAMIC_SECTIONS = YES
+CHM_FILE =
+HHC_LOCATION =
+GENERATE_CHI = NO
+CHM_INDEX_ENCODING =
+BINARY_TOC = NO
+TOC_EXPAND = NO
+DISABLE_INDEX = NO
+ENUM_VALUES_PER_LINE = 4
+GENERATE_TREEVIEW = FRAME
+TREEVIEW_WIDTH = 250
+FORMULA_FONTSIZE = 10
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+LATEX_CMD_NAME = latex
+MAKEINDEX_CMD_NAME = makeindex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = YES
+USE_PDFLATEX = YES
+LATEX_BATCHMODE = YES
+LATEX_HIDE_INDICES = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+MAN_LINKS = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = NO
+XML_OUTPUT = xml
+XML_SCHEMA =
+XML_DTD =
+XML_PROGRAMLISTING = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD = NO
+PERLMOD_LATEX = NO
+PERLMOD_PRETTY = YES
+PERLMOD_MAKEVAR_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = YES
+SEARCH_INCLUDES = YES
+INCLUDE_PATH =
+INCLUDE_FILE_PATTERNS =
+PREDEFINED = "mlc_unqualif(T)=typename
mln::metal::unqualif<T>::ret" \
+ "mln_piter(T)=typename T::piter" \
+ "mln_fwd_piter(T)=typename T::fwd_piter" \
+ "mln_bkd_piter(T)=typename T::bkd_piter" \
+ "mln_qiter(T)=typename T::qiter" \
+ "mln_fwd_qiter(T)=typename T::fwd_qiter" \
+ "mln_bkd_qiter(T)=typename T::bkd_qiter" \
+ "mln_niter(T)=typename T::niter" \
+ "mln_fwd_niter(T)=typename T::fwd_niter" \
+ "mln_bkd_niter(T)=typename T::bkd_niter" \
+ "mln_viter(T)=typename T::viter" \
+ "mln_fwd_viter(T)=typename T::fwd_viter" \
+ "mln_bkd_viter(T)=typename T::bkd_viter" \
+ "mln_result(T)=typename T::result" \
+ "mln_enc(T)=typename T::enc" \
+ "mln_value(T)=typename T::value" \
+ "mln_qlf_value(T)=typename T::qlf_value" \
+ "mln_pset(T)=typename T::pset" \
+ "mln_sum(T)=typename mln::value::props<T>::sum"
\
+ "mln_vset(T)=typename T::vset" \
+ "mln_rvalue(T)=typename T::rvalue" \
+ "mln_lvalue(T)=typename T::lvalue" \
+ "mln_mesh(T)=typename T::mesh" \
+ "mln_coord(T)=typename T::coord" \
+ "mln_site(T)=typename T::site" \
+ "mln_psite(T)=typename T::psite" \
+ "mln_dpsite(T)=typename T::dpsite" \
+ "mln_accu_with(A, T)=typename A::template with< T
>::ret" \
+ "mln_trait_op_plus(L, R)=typename mln::trait::op::plus<
L , R >::ret" \
+ "mln_trait_op_minus(L, R)=typename
mln::trait::op::minus< L , R >::ret" \
+ "mln_trait_op_times(L, R)=typename
mln::trait::op::times< L , R >::ret" \
+ "mln_trait_op_div(L, R)=typename mln::trait::op::div< L
, R >::ret" \
+ "mln_trait_op_mod(L, R)=typename mln::trait::op::mod< L
, R >::ret" \
+ "mln_trait_op_uminus(T)=typename mln::trait::op::uminus<
T >::ret" \
+ "mln_ch_value(I, V)=typename mln::trait::ch_value< I, V
>::ret" \
+ "mlc_unqualif_(T)=mln::metal::unqualif<T>::ret"
\
+ "mln_piter_(T)=T::piter" \
+ "mln_fwd_piter_(T)=T::fwd_piter" \
+ "mln_bkd_piter_(T)=T::bkd_piter" \
+ "mln_qiter_(T)=T::qiter" \
+ "mln_fwd_qiter_(T)=T::fwd_qiter" \
+ "mln_bkd_qiter_(T)=T::bkd_qiter" \
+ "mln_niter_(T)=T::niter" \
+ "mln_fwd_niter_(T)=T::fwd_niter" \
+ "mln_bkd_niter_(T)=T::bkd_niter" \
+ "mln_viter_(T)=T::viter" \
+ "mln_fwd_viter_(T)=T::fwd_viter" \
+ "mln_bkd_viter_(T)=T::bkd_viter" \
+ "mln_result_(T)=T::result" \
+ "mln_enc_(T)=T::enc" \
+ "mln_value_(T)=T::value" \
+ "mln_qlf_value_(T)=T::qlf_value" \
+ "mln_pset_(T)=T::pset" \
+ "mln_sum_(T)=mln::value::props<T>::sum" \
+ "mln_vset_(T)=T::vset" \
+ "mln_rvalue_(T)=T::rvalue" \
+ "mln_lvalue_(T)=T::lvalue" \
+ "mln_mesh_(T)=T::mesh" \
+ "mln_coord_(T)=T::coord" \
+ "mln_site_(T)=T::site" \
+ "mln_psite_(T)=T::psite" \
+ "mln_dpsite_(T)=T::dpsite" \
+ "mln_accu_with_(A, T)=A::template with< T
>::ret" \
+ "mln_trait_op_plus_(L, R)=mln::trait::op::plus< L , R
>::ret" \
+ "mln_trait_op_minus_(L, R)=mln::trait::op::minus< L , R
>::ret" \
+ "mln_trait_op_times_(L, R)=mln::trait::op::times< L , R
>::ret" \
+ "mln_trait_op_div_(L, R)=mln::trait::op::div< L , R
>::ret" \
+ "mln_trait_op_mod_(L, R)=mln::trait::op::mod< L , R
>::ret" \
+ "mln_trait_op_uminus_(T)=mln::trait::op::uminus< T
>::ret" \
+ "mln_ch_value_(I, V)=typename mln::trait::ch_value< I, V
>::ret" \
+ "mln_ch_value(I, V)_=mln::trait::ch_value< I, V
>::ret" \
+ "mln_morpher_lvalue(I)=typename
internal::morpher_lvalue_<I>::ret" \
+ "mln_concrete(I)=typename mln::trait::concrete< I
>::ret" \
+ "mln_concrete_ch_value(I, V)=typename
mln::trait::ch_value< typename mln::trait::concrete< I >::ret, V >::ret"
\
+ "mlc_const(T)=typename mln::metal::const_< T
>::ret" \
+ "mlc_const_return(T)=typename mln::metal::const_return_<
T >::ret" \
+ "mln_element(T)=typename T::element" \
+ "mln_element_(T)=T::element" \
+ "mln_delta(T)=typename T::delta" \
+ "mln_delta_(T)=T::delta" \
+ "mln_dpoint(T)=typename T::dpoint" \
+ "mln_dpoint_(T)=T::dpoint" \
+ "mln_point(T)=typename T::point" \
+ "mln_point_(T)=T::point" \
+ "mln_gradient_component(I)=typename
mln::trait::ch_value< I, mln::value::props< typename I::value >::sum
>::ret" \
+ "mln_gradient(I)=mln::value::stack_image< I::point::dim,
mln::trait::ch_value< I, mln::value::props< typename I::value >::sum >::ret
>"
+EXPAND_AS_DEFINED =
+SKIP_FUNCTION_MACROS = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE =
+ALLEXTERNALS = NO
+EXTERNAL_GROUPS = YES
+PERL_PATH = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = YES
+MSCGEN_PATH =
+HIDE_UNDOC_RELATIONS = YES
+HAVE_DOT = YES
+DOT_FONTNAME = FreeSans
+DOT_FONTPATH =
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+GROUP_GRAPHS = YES
+UML_LOOK = NO
+TEMPLATE_RELATIONS = YES
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+CALL_GRAPH = NO
+CALLER_GRAPH = NO
+GRAPHICAL_HIERARCHY = YES
+DIRECTORY_GRAPH = YES
+DOT_IMAGE_FORMAT = png
+DOT_PATH =
+DOTFILE_DIRS =
+DOT_GRAPH_MAX_NODES = 50
+MAX_DOT_GRAPH_DEPTH = 1000
+DOT_TRANSPARENT = NO
+DOT_MULTI_TARGETS = NO
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = NO
diff --git a/milena/doc/tutorial/figures/extend-1.ppm
b/milena/doc/tutorial/figures/extend-1.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..ccc5f9e76fb35adf4fbedd54004c2b400ee122cf
GIT binary patch
literal 12406
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
b0Fy;?aF~6jwp_(puZHEK@HM=Dn_mAPd6Er%
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/figures/extend-2.ppm
b/milena/doc/tutorial/figures/extend-2.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..6e44be099697121a6daa526889b2662ab230816e
GIT binary patch
literal 16546
zcmeHuS5RBYw)TCVy6McdG2n#51kZTzc<gb+l0YH~kx|ZBLMQ^t0)YeqW3ovmJAsV}
z2HPY9Cg*IEK?JA47<*>UIk)c1|7(t4RJGe@Ts61u(^Tz;uGQaOy}n-Ey;d)61)cfq
zh>JHz%#kyqIBXZD+65yJal{Olldj*pxbUN*q!&({ko+cb70KBgSB_K=#c<`yZEtx7
z`G&c>gm4rbhMdKBVTjo-C{7GVB#}mP#8EE(45q}UR3cZqeC;2C@;vt0+0!m(Pk;8q
zk3W9)FaPrY{(SzNfj?*9&l&i?oPnRxqej`Bau}}Khfs&c-bZ7hqmQs?qin_mmpRR0
zOmG<E92OKa!L!L3qg>Vqi!sDv4lx-}%(6wcWDqXLiC5wyS7P}qaXcudi9l&1Q(CFa
zCuB+&mDWX}LNT8%d7UC0p%E)C2Hiu3H28+z_X&o+JI<nwvnUg6`ZSw1`P&1q{5RGt
z+L&z~nDk*fb(l_r>RB}@tR~5tIda`BT8kH0jeIDkA%xIMq_mSL9VCj4U=M`?#eBNt
zxhZ0VNh@~?sPzbF^bM)^4uZZr!K95d>60w#6pQ}b!vxIdB#%ALVUDpFqfF{3gEm41
zShZ+Stf$0mB+E8ar0X`0@gnG0^`V4jEUAM??x0XRX^cK56N>qC$qTb^jD{;e=U3wq
z(BKnN?*m{rPNR-77?TX@B!f0hqf9aYz8j;{$5~9<GeV<`(5NF+GSr57P4v1&xo(MC
zOOmW73fDmFrc$MiA-HxDxsy!pq|gRge~_JEj2doZch4j6zIRZaS0L1?F$!snMw_Bh
z$LaJ525XWA@ZB(#Ho{<yvN$6&+L(<UXhl6!NLP$eR&&&<Sz=8PSrf$2vHm_$+C*cv
zgyK5M6r1A;+yM4K-};#3rAatK!Iqx+ja`FRP(6?xnLI(EPf(~6G}<JMF$vn~eH7{d
znL13Nk5K5Nbk-P!4jpkuB3e+(mgAyU<0Y$cVryIk6!Sj|x7ThM>H@H>cuK*g0OBqf
z6!S63izLbGblLMb&Wf1y+{Am4EP)~)c?Wa`h7DnH!vy>onJ`8Mtg(S;eYZAYAo=oW
ze)iO@;)$DuP(7n$+6aj<fFpN=kRD+Oone5TXw~wTV>oki&a9OAOvYR`3ZZ&f`;d&i
z9+cgeXuB>#d+jB!Q>8zpM$U4ulN9XBB;o5Tk@meG+Kpa;?U=Csu<$`VVU&O$B@v;R
zC(@Wcjea0LVI(7U{94Y`&3q`PA5XPW>k1{b1>hQe!@EOCP|T8owWwgtOIdSb#=L|+
zD*^0ihLbzh(VemfPT%u8?6z|hn;KRP+;@l&_9|KM6Np`%XK<5WNLNsJPbhW(PaGiv
zta>bvb%_<-D&3I9JXM_i^mYN%@`o5)dl0@On9zhF-1iQ95)9C@BxNou*b6cnLH2^2
zv!LKY^-%X9sE!D_6CD5fd1$Y_WGh87LJTW7=`}>e{*)}-N|V|5erVUAf*zv7I)m|D
zA=rU%{4kCH#q<axyG62IMa*EVVLT^w_BLQ;4iy*O@xwLRG6e7NS}$yS5MX7l%Gj$4
z&XSb1B;zbAxT`S&=vef<NZLLW+r`TQ4~O>JORREw<wd{ZAAN>MxYriJRyttc)uKZF
z!7jWf3_pk?4B<iS_@cfDai3H^qEby~CNES0*lo@94i@E?yJ7AiLvOo>wFUxwx2oV<
z<(y?HXGO+am2o#!fOCfIjEej=#N>t_*GJoPfwnvRF(v2xO3!!?5^*ohHs491m|D-^
zM}8rl!Pwp~oQ>Te0l;oh6ge!Fjw%$R%9xpygxTT@sGjGePqyZU>SfB@v*=Q{pcV`s
zidmKkt#aP7gtIE+uPgXtEWk<2J&H+2a(a}iVcqYrgX(`}77Y_|S5J6dcf;KE2(Cr~
z;!9f)zBLH{IE>VWr*$#7eSAQUVQsBl?`&A>Xk2N#zt+>V-qQpfYb7dTQ!icD$@>Uo
zz9Y<V)B}nk{HL2>Ka%Z;VA}TD9t3m07Zmg9l9y)jFo}@!y<hnS|GVyi_fUX5vn2rg
zI1t+&MtVYG4DduF62N+1d2oBNp>n0UcD=i4qo;YjuLWwuvW&N>m#k~${Y0wR8BY6;
zvrr7%5zgD|PIq#*9hFRHceaZk6!YnlmuAT@nV9A3Q+f_v1;bRigM5d<wg+IJgi{6>
zoMC}zNC1dRi+4(`&G%MYYpv}KE1i#4y8ymhl=3%pksCT$ABie*M&SSB9Mn$UJ|ufT
zin-T=Ws7kRhzdL)pMk#hG07`)<PZUy{;g;68NX_TEtkeXk!_gp_CQ=Onb}KWcG1{_
zEH)IgTz_+^{?>BiouvoW*0$f4C=@d%=01-Vuj|E~I0D(hEnglF#c*tnbAVAC;OxCf
z(*^RdRtLp=y5y%6@d$;Gd&0Bg0@`*>Xg~!(-+km8{v?dhgQND4*aJ*%I{^@L7ph9<
zt`{xdEnjJ@T5YafZL5dsSu`o1>p3e*_CqSCv$$xnwGN75IKpYWF0q~9G)H8YOgm~Y
zKrx>#d6O<1r{nWapsru^uSEvbBLTi^^bBdmV0*CCUOcUn#GZ;#K=scSWG|HGFWo9y
ztSnxtwfV6Uidn9|wXPQ|mu9cF-dX8vSnqF!VrUL9>aI&%XO9vzXF{i+vBW_!ACuTp
z<!X0KojZCMANndO;%y$l&RTc>2cDREM8L0&=BIp0i+?Co+pttNW6(cMN|?*Zn9EC_
z&Atr9%+=hUYq&dKbL&~v^{4l4jo&PXV%B?_S6gbH4?Nx+Zo%z#r#resF;A1@rY(l4
zMBQYf7TRksx#J#i2Z5<Zpa<|_uPnmt+$j6r5A8Yxx&ei`?-}&h#)MT3XPg3vQ!^Un
zq*^nn)jdr%FJz@I<X(a5nX9Upy;(YYqkOtBce1o#zNQ3<v9{LC<X%~*DrrbcA~+yu
zj&LaEX-eF5vSB*e=EvV*SBb#fhWXur`Hv8BuaYCSt^(p?tvkBj16_{}`?XeUyGP6k
z02$PnR5lu;oYrV(P4Tm4^Rtu`s8!FdX3bp99?!^}Ex)>4Q)F!ctks!oS!0(?bH%wD
zB!#>OZhN45rcz?3Ec&Tr-IV2bP8gf-st^GUNX(=y6HAVGlLzo!EdpH&_iYHq{k<jW
zbynn>29Q4t2xMdO=xLR%BSQaxZK&lMp;q<9TE<gTmu}`*8*i+&++JwB3B|NZB=uzO
z)a{b6zqr{h0?d6#C}t{2KbfSRu;?btzvH`VWY8UC&?C=)XH@J@mm{|G0qpAG==*RV
z+a>+KJJa4(DCQ#oD|3(+IWCEA=V%_%)fE_t83xGcZi#erW%+9lZ>=_0t+d=-Xu1ov
z{JJ;p*|nVHP$t;{W_xT0CKNM~7(1S*8#C)BOloMay`;`7q{ai>D;<e|=f>CKqt3
z)FJ%qV7@occ>mm-@=KL!iVN`Fm_Xb{mbXxpSw7MF)9lEjfLwGsKV!MBboo)$Qsa%K
zhm}Bf%cU79Xd-1djNt&I+hV~1AA4&*w8t&+6N&mU+hfv0d;hs)J4^bEPs(=ntT^v?
z7v^8%?hnQH(rANpeh-z~MdI~P`Q1!F{-8KcHlWmeS60M1{sXb%Sy>)bPs?R<R;aL?
zse5MBKF?6UssQZPA*E*868kJG{%L0XbXxr6WkAG-YW|qyZMJ-lPsu#)S$5XfcG}dy
z(NJVJiPB3GbP{=;R7E#M(LsuYVuUWik*;i|ueO*TH+Q{o8MMo;oDI(o6j!hfQzp}9
zp)mmt$Q-((RC77;Pi^cn;%74Ar&9kAyPaHx?NrP<j<Q|)?!Ynk-~itZQ0dKKtWJ`s
zn<8q$%hNA$pzOGZgQ9=nq=Y6uPRXCIDxL;aTDnNgxO0Tua7C{^G48k*@$*YiJw1Be
zvs}|mR{Tt+jh%5SEdh%8bjjPCnE42L&Uc=r=lrV?fps21(05yd2yIwaFM-=b<eR?_
zmV6lk#c+=J-XSR(4S91_#dFnVBRT0%%z`>valj+?M`D*DRba~}cLUfBnRHWWaWh%Q
z>Gar{^thRHz-bKC{4vSfyy#gGBj==F`8jkgGNj%UV0lL{zK_Ii3SsMx1#+Cd1R!>;
zJn?*fX7`nX$(!ZV71t)S)1V`66=kM=<-vCLY*HqQj`(u-0y2}al-R)p{b0O)BuPJJ
zF-%_hL+rNmqMwPFxhMV0-Tv`Yf){|@D23BTi!r%|@V_DucY6uH0Ms|0CK(rR7WC#7
z&)h1TNlmtzO;C34AKa>j1>io1*9dgcU!i#iP*BWdM%-9>+-RzCC`tb$&i4FH1h>~v
zhYGxBOU7X6_Mq_1M8%r|jeYNjb^|K74IMlX8a_s)J|f~P0|2KzdAA4WP$2&cBK=Ts
zrYC8{49Im~7iMo2W^CUn+`fN(r@8W%Cx9D4<d;4SCj`yOy&#C!85KR92DlM)#v0mn
zx(<!DN27vTYcH`?glfHl@50cJF(EI^vh4yue7x_0Y4!=~4I|9UBW{F}(>$2=8a}ky
z2mNS{Uczrl3fI7)SlvoxE)>&6;=H($_@*>#yQb_-Wx<FNkU8*OP)uh8_kj0(u6#hR
zdYTIG)If4VcY?7^AKNGg_`-hNyB>je5CPZE`!x9kzA%g57RA{2erVUY`F1b_vpVsL
zR{WU7)gA|&+tSl)h7&6M^Ggo};^op*Ycn7ZnIbY)rHVIsY44kE->389jst24EGHP#
z87}`OutOd-VbM%k0QUDM8lS`&TD67;F#zuN_TTXcyamG)p7yFo`M*dKzbyv%uHvkB
zElaqRZhTB<s=vVqzopu1_|PWrhT$FDjpqp?DTzz970;@!K{5Rp+#*}JU6Q+aEyMUj
z=oK$Ot&-t*iRJ{q>c{9)$4sSYClUedI`z7y7)_l_^+@+Sxk`;^a3vg5_=A`2689oe
zyi*FuOH2K^U202Rj5@-VDnBRYeM5m-PTqZq;_TioS1#VTI(4(4p9EOFlQ{YujkkTf
ze6b*}o2z;p3D}#oJ(su#JZjnE!8pxCl4jHd*jY`{s*YIAOi}!LbrRGPdx>pjmYhdt
z9rw6>(Pz^n-6;dGd&Ji0E^wGGLHuu+=J1q=?*Ubm@Lh;PU)<B|l<CUChdv=s=>WgX
zvPAPl&g<ghS50+`y0}S3guNvn+H^-Z$rs*j68Tt?El<{r!~@pSWN!S62J@>%)2jwE
zRKq`)yf4$OL@~-wp=#g(op{kh9^f9zJc`pGl`0=)h98@;4~268#Hn?q=4GnoRbJ-H
zyv!H58CFm|WRk!tIOQwa=Po_$+heqFoZO(c4JK&%<5b;xb%$E{ND(!a7YoIFx@4zF
zx2j;4oc6lo9^CGaD-HzA9?=oSIPAxCf>jcP%2Pps|9%mwe@!ZXVT%1JFa334#>>pa
zH8tS8njx{TeCrvp7a`h<95h?l&IqWUzF19<LG?tZYL1HTOHjRe_{TD_0_CcVQQ+!X
z7b0q6CRh-FT4mT@E*V_WhU3Al5@jkZn6?jK)mnt)xla2kIpKAB(#sU%iUg2pj}z#!
z14#K{B+n84L~WFR2gqrAV%1$b<zrP$vqG_P$FS4%hkW<$ntDw^yLQsI#-Dc|t4ufx
z_zr=v3!ZQRdoz%%a`nUhm)lJeAd9wgg&T^fO|ANc$*>uxeZ~Y}n*0f*-SFryP+W(L
z4@4?690&DXuTkBlSGGneMv_%KEykUuKXgZUcTH!F=9Zlgse%R6`3vKJ1bjmhaRh~P
zL>VqINPA$a^Wh6+*-)#jEZ&Apz7Z3%Y0z%OYUa6sHDGo{6CIJNFFYa~FIG?_nZAHn
z(_@I~(ndGS6>Al`cP++uoq%%yI{L>X?~3$mDsJ&9pIdI2R;)yN3~>Gzp~-~3-n#SD
zx=4LBnNzO?#GMs7XH68jF1NW)yBVjqs+G_Y$<Cg%{a(iJeWm+hnSRXDP=J5C4XO@J
zbX&A+tIqK5vHAT#Aym)DB$i_ymM;+rN8k^_nHx!}t*d}DB<7-k^%WuV1T*H6T<4|F
zBqu|)vG=%155d{H-738BL;j)j1QHapqEY`;UH-cE)@I4oXX5D8bAY<&n1Vf?7&C0v
z3>a0tahh&DU`}=hi{1{GZ;#!5J6Z!B#a^O12#-DT8@q;3#(Ii&D<9wm!M7y#*Axv(
zqjgux&r8iX06XUH3sFbh1rBakVIl1v{_{kl{U{&WlSI-2oiQtj9AohNS&=j+z>Q!^
z%^kC-hD|D46zDOkyJG>-d}p}y?P%rpM9tgrd(ctrC6W6O8W(uN*Qkeh_C|{8O%Wh-
zBRczue-M~RX-b499&J>@0hJ}Lqnp$P5xL(z=`_0Xyw7+Dz%T1U%?m^7hAL%NEKfTh
zOaaxIrw!uKWYtijdeEfqHmaV)0@l*b*v*}ZJ3Hf*??$fMbAh&b&M>Ld1=BHPV=!sm
z9Q~#Q;5*upaG@(VLr`eKr7MxzOa|Z#Vej>bJmevE@i3h5P5l<xiUL$)7VykvTI8Zw
z*+F61sM*SuP<tj46vN4?!6fZalDfyNeG&&?_kOZ+XSn$7VByZ-HK+!A33JaSw!@|D
zbN;PiBx|hn%{74U=wIR}2eD~_{4{=1BJN6BDBw(HIU#ua5R!v%@j<xiD5Ag>5CJ!n
zOdH0y1*IzCJ0Glr2NQHx9ZpaTUDozl^!<st?nM1#Bfy^b<2T-qmcJh^`FXI|o(r^1
zvsJTq!>^q7ZO0PV;$&Ob0C^_oD;!~8ND@9-a$c6sFUjJUK=m+fRS`#6#D2KwAVPZB
zJ?6kADCR|K@<xhfL?~uCBMB~O-cfHTrZ+C8FHzfVGCVQGcA9j}27o=kjFtV|m$%)L
zI-Lo)AwqT9OSTKOi&2~#gvdgyf^j5R^mUkh?}v7&wlbGvVV@)uoV~QiyjY-ICH;G!
zDr8t|D6P+SH<U!LfbvYnUU!|VUphQ2^^AY)asP=#fTwC>l-If9&4-zPn<)Bqr0}mp
z1yFlFU9y#DSWS-0_oe7zv``06*>`~a!9q&2gvOOf)0oFX)n9q>4g-FvZ}!KHlIUYJ
z_B20YUM!uH%b_-eJHWNy`CYygmV63rIu$$&`a<IdOHfSazim(ZYhT8%g9Sf#0d_r9
z^T#A_@(e3#VI4hM@NGcQUtoH7z%Tx3%&Ym41tyF<&RZ1eg5n<rob8S1@L@b<l**dr
z3+E$5b0RTx#4=U9=%}ah$AI|bUP<S|fnR7;6Nm+<;O*wie;dmCwLiB%4v_OeHGfR<
zrck{RAN?rWNZ5lUJE1s70d)ooKJ}XVMq;S`3SKQbf#n|Yg=%}~kL$-#p0aog0^vf0
za8U-BrC){`8xm6@UEKA@P$@8czXssnHXh*#kM!$c-rvWHUf+*5{{R>ZI{L>X+r_#~
zqxf1_MDXV@+Cd-60l?nZ`x~=4S1Xj)lyH80fRG8=clAEuPic&K7H3h&Uy2Ye%K_|u
z?yvuK@^M-iPvq>Djl}h;0hm51c_~}`w~3O!jpPmLIoW41AG7>Z<U1w0=dpsTf$Z=-
zNZLVfyd&TjG>xY=gOhtTB185gE0GYzIRJ=UP3Z7B3T27ITH>>pB6uqbfaUM|?*B6O
zc=16M<=@Yg_~UzZfUndx%5=YWrTzC*$<G~@n!un6c;Kh7_<#xg*K@b@sgJTUBKNs1
zD7o99x{As}%KavcaR_Z&t3+qth?9WIgZPjKXFtOBNlE%iuMsRR>wCaCv!aw(<5g>^
zu^UAx&+q1JH3Kq@E<;qOR?(`IH_D~=gra^OV7ER93@<?hSNM~1yea>jDf+WBWzmT(
zxjBk2Jm#Y~TcAvg^Hm7%>tOmJG=2|~vLC}g4#*)5XR-YK2=PAHeH3PbNY3~ku%4F{
zk*kInt3|h-lek%#_3B{-)V2<tqE#(xQOO$>@_WLFr>TI5R^=I3jtafzL%IS3{F}gD
zXTZOm&t|Kd3-UB4d}n2>H^qPo8|5IHaTrb9?@QY6LpvNCaSG(SqbOS;!gS2NJ1A_3
zNKQKixMeR(g)17xs!6k!VO%e}{NjF*y(J&o?fRI<y69F-bVHQlfkZT=2aHvC5mVuV
z&p{G0QDmqFdkN;>&RMXMrh<I4TkwpCwp9qo>llXvm|q6bT>MCTy;xs{3V&ePYxvNn
z?7G0Q-9Rt+3}SJ%?>TRH0KP6;mI!T&bJY;Fnxb1PG;dY|>eaW&v<6A!Lsis6O-#Q*
zIvP!bj#cJ`&Go?Mco7rM0?u=Ly#K$RiTCGqT`x`bC64nbuk!&n4%#6M?J$OQ*bl$Q
zgLDur{1Fgwh<`a}{2I}Y3G59CF@BBeCjeIOQUr5FE?m({Rufg$Y~#j_bbCuav{TRc
zB%St-Ka0NNjqQx$O{W09t<Cem=A!Uf-W1spz-eZ$({RE&D_qcDRgq8Tj_|0j3IXhF
z3zB&RV+(v(Cl8`Cih97$Uc-mB!12NjH=q8H;47{k6$s263$SLE1oWjy_Odc!)u^yu
z)@>96?uljo;TdiLimy=E|GHSsroOHQM8M1Eg9<SW3oKlG2=L7S)HZv`_I1sSPLPIV
z*kS?62}RilIQ{s?$*~wsG>nULfZ5Eze}2wh!-w`VpRpojuL?QVNUl}PTa5thpp9GE
zFCJBH^*r1eYJ1ajKNksD&l5&!+&AvpFWoPnLKpfF6F@r}I{L>XJ2&)82@=^iK{zKQ
z?SL<JAK<G4@hMI+Az6No8Rh`P?YhWvI1AOb$fd3D8LJT-tC(w52v;S5+S+<q+GbtZ
ztB(5ZfyeJg+bYO_9i4U-efgx9EfKwjp_)$n8BYRkj?mFRCV6)wZbTEwIgBPaqipP0
zM*z`NewHb}D3V{`hVF7>?>?LT9So{%i9=cD(N_ikASe}B<$${ST0zQsW#02gRa-re
z-VC)if$kBtnDG3I0oh1=!fC(QlRkwQI&`d0m%Obo^hb-C2fT^SNX{35l5YSvAl?_j
zysyL62(jdN$d#|$8W1R`{$)1V_N?-mRv~9i%C|}dP>eOlymmcnv*G%y_WC#dEzfQN
qZjMcXA+}nL`6AYGF(e0tujT>j9#GAHO8%UIKWE_28TenBf&UM{f^60R
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/figures/extend-3.ppm
b/milena/doc/tutorial/figures/extend-3.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..c2ad4ad4d1ce49e5fbb45dceb25d6c92f92bb99c
GIT binary patch
literal 16546
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
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/figures/extend-4.ppm
b/milena/doc/tutorial/figures/extend-4.ppm
new file mode 100644
index 0000000..5425043
--- /dev/null
+++ b/milena/doc/tutorial/figures/extend-4.ppm
@@ -0,0 +1,7 @@
+P6
+# Generated by Milena 1.0
http://olena.lrde.epita.fr
+# EPITA Research and Development Laboratory (LRDE)
+64 64
+255
+âyá
tßlÞnâpéwêtÍde¡>W¬HY°KV²KV±KUºSXÄZZË_\Íb`ÍebÌc_ÍdaÐfbÓeaÐeaÏecÐgcÎgeÌggÌd`ËfcÎc_ÐgaÏeaÍfcÌcaÊcbÊbaÊabÈaa¿[a±QYÁZZØzoÝqÜ~jÝnÞmÞhÞgÝjÝnç¢zùÑ鎩NZžY]Œ\]»^bÁ\]Â^_Â]^Ã`bÃ_^¿Z^ÇniâmâlâkàiånêréjÌ_Z¢;PCR³IS²HQ²HPºQVÄY\Ê^ZÍ_[Íb_Ïc_Ïc]Ðd`Ód_Ñd_ÑdaÐcaÐcaÏdaÎa^Íd`Îb\ÐeaÏc_Îc_Íb`Ë`^Ë`_Ë`_Ê`_Â[`¶RZ²NYÑnkßsàoá
mâ
láiàhÞiÛkÛmõÃúÑÄtg³RY»Z]Ÿ[]¿[]Á\]Ä]]Æ_^Éb`¡DR_AámãkâlánæqçoåkÌb_¡<N¯BNŽIR±GP²FNŒPTÄXYÊ\YÎ`]Ïb]Ðb_Ïb`Ñc^Òc`Òc`Òb^ÒcaÑb`ÐbaÏcaÎc`Îa]ÑgdÏebÎcaÍb^Ía_Ì^]Í`_Í_^Ã]aŒU\°LXÃ`dÛ~sâvãqäpâ
mâlÞjÛ~lÙ}kåuúÑSY¹V[¿Z\¿]^À_aÆbbÏfb?P[B]?âmå
lã
oårçrâoæ
jÎ_W¡8J®BN³HR±HPŽHP»NRÅXXÉ\ZÍ^[Í`]Ï_^ÎaaÑa^Ña_Ó_]ÑaaÒdcÐ\ZÎZWÎ]\Ì][Ë^\Î``ÏcbÏcbÌ_]Ì_^Ì^\Í]\Í_^Å\`ŸV]ŽMXÁ\fÙzuâwâtáoâjálßmÝnÚ~lØzióŒûÖ ÒpŽRWŸ[\À\\À]_Écb<O\B\<d?ã
nänæséqçlãlæ
iÎ^U¡8JBO²GP°FO²EP»OTÄVXÇZZË][Í_]Î][Î__Ò_^Ï``ÐacÑ_^Ò``Ð[ZÊYYÊZXÊZYÇZYË^_ÌacÍceÌ__Î_^Ì]]Í\]Í]]É[_ÀU\·MYÂXbÖspÞtà
tß
oàlànànßmÜ~nØyißjùÒ÷О_bºSWÀ\]Æbb<OZBaEd@b>äpåpèpæfçhånçjÌ]V6JBO³FP±FO²FNŒNTÆWWÇZYË[YË\]Î\\Ð]`Ð]^Ð__Ñ_aÑ]^Ñ__Ð]^ÌacÈikÈqqÅmlÆ]^È\^Ë]`Ì]`Í`cÎ]`Í]]Î]\ÈY]¿S\¹NZÂU_ÔolÚyqÝtßoßnàkálß}jÚxiÙueÖraðŽúÚ§á€~°NV»X]=NZ>^BeD`?]<æoéqåeÞn[ågæoèkÐ^V6H¬>M³FQ±FN·GNÀOTÊVWËYXÎ\YÎ\\Ñ^^Ó^_Ò\^Ð^^Ò^^ÍbhÈu}Ã{ÈÍÒŠÐ¥ÓªÏÆssÄW\É_dÍ^cÍ\_Ì[]ÈW\¿R[·MYÀT]Öni×tmÚyqÞqÞ}mß}jà{gÝveØre×pbÖqbÝjøÎûØ¥Éwh;MX>]?cCaB]=_;épêm×eVÑ]VçjémêkÑ^V1G¥<MAN°CLŽFOŸMTÇTUÉXYÍYXÍ[ZÑ[\Ð]^ÏcfÈntÀbm¿kuÁpvÆz}ÈÌÏÒ¥Ö¬Ù² Þ¹šÑŸ_hÄX`ÇX^ÈW\ÂSYŒNWŽIUÃS[ÙoiÚtkÚvoÛyrÞ{lÜueÜscÛscÙpcØnaÙo`×oaë¡}ý۬݀W>Z?dBaA^A]?`;ísäzc®?IÊYTèiêmêjÑ\S.E 9KªAO¬CO°EQžJRÂPUÄSVÈXZÌZ[ÏYYÐd]ŒS\œ[b»]f¿ioœiqÂnsÃx|Ê
Òէ׬۳¡Ý¶€ÝŒ¬Ø³Šœos¶MWŸPX¿QYžMY²GTÁQ[ÝqjßxlÙsmÖplÚtkÛsgÜpbÝsdÚqcÙpdÚreÚsfÜzkó¹~9LV>bAdB^@^@`?X9ëoÌZT1FÊZVêjëqégÎ[T-D¢;MªCS¬CQ®DP¶KTÀQXÂRVÈUXËWYÒ\[ÆZY»NVœU\Á^dÁchÄjmÃlqÅsvÉ~Ïקگ܎£Þ¹©Ü¹§Ú»°àĹʪJWŽKV²GU¯FVŸP]ßumä~oÞvlË]`Ë]_ÝujßqdßseÜpcÜqeÝsfßviázj0IW=`?d>^>`C_Dd
F?Uàr`š;J5HÊ[WéiëoèiÍYS/F€;M¬APER¯DR¶KTÀQUÄTXÉWYÊXYËWX»LSœS\ŸX_ŸZaŸ^dÄhlÆknÆprÌxxÓکܯ Ø«ÙŽ¬à·åË¿æÌŸëÔÅÉ¡<MªCS§AT»O[Þsjä}láynÁTY3JÓffßshàreÝpeÞqgßqfäxk€FSW;`?dA]>c@\Dm+R<XÏ}u¿LM8J6GÉZWç
jëpè
hÌXS0H£=O¬AQDQ¯EQ·JRÀQVÅTWÉWYÉYY»LSºOYŸU\¹T\»X`ÃbfÉlmËppÍssÍwvÔ×Ó Þº±åÈœâŹâÄžãÈŒåÍÁëØʱqw7K<PºMXßtlå}názpÄZ`n=±IVÝqjàrgÝoeßqhâshÎc`^A_?gA^?cA]@f$MCeÄwxË|u8J£:J 7JÇXUçjétè
lËZW/F£<M«BQ¬CO°EP·JQÁRVÄTWÊZ[ÀRXŒPX»PXœT[ŒX_ÂafÆhlËnoÍqpÉmoÌssÎ~Ò໯âÀ³á¿ŽÞŒ²áÄžâÄžâÈœäÌÀæÑĶ-D¶ITÞtkä}pâ|rÆY\h>~$BÍ]_ásgÝmcàqiãtiz#CY<iCd@b@`@bFw3YŸqxÉ~zÕ~ :K¢<L9KÆYXålèrç
nË[Y0J¡:L«AODQ®DP·JRÀQW¿QWÒnbŽEPºNVœOVŸT[Á[aÈglÌooÊmoËmpÁcjÃrw؀ീ޵§Û³šÞ¹¯âÞãĹâƺâǺáÈŒäÎÁé×ÇXhBNÝqgä}oâ{rÇZ^n?_73FÔjdÚtjáti§FRY=d?gA`AaAbAd
J·kwÄvwÑ~Õ<M:K5GÃVVælèrç
oË\Z.H8K©>M©AOETµJTœMT¿V\Özi³FTŒMVŸNVÁU]ÈaeËilÊijÉijº[fÅx}ݚܧ۪۫à¹ß»¯àŸ³ÞÀ·ßžßùáÈœáÊÀåÑÅל³9LÛphã|mã|qÆ[^l@X8MfÞœ°åÊŸæÅ·_F]BgCdDbBcB]@¢XnÈxyÏÔ~Ô{;L¥=L€:IÄTTæjêrè
mÊYV+E6J¬@N¯BM°CN¶HQœOUÑ{oÐj_°ESŒMUŸOWÅ\bÅ]bÂ_dÉcdœX_ÏÜØ١ڀݱ¥Ü±ŠÝŽªÜµ¬àŒ³á¿ŽàÀµÞÞàÈŸßÈÀåÓɵpvØnfånâ}nÀWY\<rÙ·«æÌ¿êÑÂðÚÉxIf]AeA`>]?dC:\Ë{|Í}Õ}Ô}Ó{©@M¬BN¬>KÇUSåkêsênÌ]Y/E¢:K¯BN³DNŽDN»KQŸMSàyÈ\W¯DQ·IUÁTYÄW^Ä[dÈbfŸYaÓ~y×ÖÛÜ¥Û§Ú©Ø£Û«¡ÞŽ©ß¹¯ßŒ±Þœ°Ù²©ÝÀ·ÞĺÞÅŒÜÅ¿Ûwå}eÞwd¶^eÀÛ»°åÊŒãÆžâƺïØÈ~Mf_Ca?_=d?_CÂq{Í~~Ö~Ô|Ó|Ó{COBM®ALÎXRækërìqÏ`X/D£;L¯CN±CM²BKžHNµFPç{ÈYW³FTŽER»MVÄV^ÅX_À[dÒvsÓ|xÍ{{ØÚØÚ¢×ڡ܊ۚܯ¥Ü±š×©Ø²šÛŒ³Üº²Ú»Ž×¹²Ý±Šâ}iÝß»ªÞÀ³âǹàöâÄ·æÌÀîØÆi3V_C_>^=fBKeÐ|}ÔÕ~Ô{Ò|ÒzBO¬AM°AKËXSèkîsîsÑ`X.C¥:I®AL¯@L¯ALµEM±@NôŽ
Õh]ºLS·HTŸMVÅV^ÃXbÑstÒtrËpqÔ~}ÕØØ×ÛÛÙÚ€Ú© ٧خ§Ø³«Ù®ŠÖ©£ÕŠÏ¥¡×Žªßµ€ßŒ¬ãÃŽá¶ßÀ³âĹߺ®åÈœä˺WA`A\>c@1YÍv|ÐÖÕÓ~Ò|Ñ{ªANª@M¬@KÈXTèjítìsÐaY0G¥<K¯AN¯AL°@K³DM²EPõŽßzeÏ]X¶EQ»MWŸR]ÐkmÏqqÇhkÔzwÑyzÑ{|Õ
ÚÚÚÛØ××ـة¢×¥×€¡ÓÑٮܶšáÀ²àŸ°ÞŸ²ßÀŽá÷໮ÔÚ©³Y@_?]<fJ¯]pÐ|}Ô×ÕÓ~Ó}Ô{š@M§>Jª>LÌZWèkëuìqÑcZ0G¥<LAM®@K¯AK±BK±KTô¯{ågØi]ºJSºLWÏjlÊgjÃbiÓrqÎpqÍvwÓz{××
Ö×ØÔ
ÕØØÖÔÏסݮບߌ«Ýž¬Ý»¯àÁ¶àÞäÈŒÔÎØzC]\?\?aA>bÏ{|ÑÔÓ~ÒÒ}Ò|Ò|ªAN©@N³CMÑ[WékìtípÒe\.C¢;L¬?M?K¯@K¯?I³QW÷ºémáz`ÈVVÉ_cÇciÁ_hÑmnËjmÈiqÎruÓx|¿k}µd~¯fŸvžn~ÏÍÏŒvÆÏÜ¥àŽ€áº§ÚŽ¥Û¹®ÞŸ±á¶âùãǻ޶©»oo±\fÒ§T<^AbCeJ»huÐ||ÕÔ~Ò}Ò}Ñ{Ð|Ð
{¬CPªCP·ENÖ^VêkítîqÕf[-D¡9J¬@M°AM±?K²?H°FOøÀð¢sÙkXÈ[YÀW_ºXdÏikÈeiÆcjÉgmÏouŸez¶`y¢Mo
>p²tQ~Dy?nh$Q_$SŠl|Ø á¶Šß¹©Þº«Úž«ÞŸ±àÀ³ãĶ߻®ÆšQW£GWÖSb\>\>a?~5YÍy|ÒÔÔÒÐÏ|Î
|Ðy°FR®BMžDNÖ^UélìsíqÔfZ/E£:J¬@K¯AL°@L°>I¥6Gò¹ó©xÒf`ÍhgµP]ÍeiÅbjÆ`hÇdlÎinŒ\rº]wHu}4dm$YN}=t}Atg/bRHŠjtÓÝ°Ý·©ÜŽ€Ü¶šÚž«ÝŒ±Þ»Æ¡FT£GVÀjmÝKZ]>a>`?_H¯`pÍ~}ÕÕÓÑÏÐ}Î}Î}²IU°EQ¶CKÓ]VékësípÖh[.E¢9J«>L®ALAL±AJª=IØwöŽÜoÅ__É`hÄ^fÂ[gÄ^hÃbnÀ]mŠNjw0ak(X_Hy7js,\~Dyh.ck8hµnsÖ Ú¬×« Ö«ØÜŽ¥Ü¹«º
Sj¡b|Ö{åyè¢O\]=d@`>c>r+SÊwzÓÖÕÓÑÏÎÍÌ}ŽKU°FR±AKÎWRémìuîrØh],E 7Iª>L®?K¯?KŽCL¶FLŽRVôœè{Ã[]Å_iÀZgÀ^sÃ]s¿[m8_x5ee#Us2c[Go)Wj
Qm.dwI{`أݎ¥ÔªÔšÒ£Ô¢Û°¥Û7UOn¢d~Òä?N\:e>eA^<cCNfÃtxØÕÕÔÒÐÏÌÌ}ŽJU±FQ¬?KÆSQçmìvïsØi],D5Hª?M?L®@LµDNœLR°CLàîªÈ^`¹TcÀ[lÃ]lžXr=er'Y|6g`Ou2fh#Q`Df"Pu2eSœÙ©Ó¥Ñ¢Ò¢Ò£â°šë³©ìŽ§Â[b8YUsÅ},FZ=g>jBa=a;l$M°epÄ}|ÖÔÔÔÒÑÐÎ~Ì|°IV¯FRª>JÁRTæoìwîvÙk`-E8L¬@O°BP°@M¶FPÀNUºHOÞàr»PYŒVcÅYfÄZh
0Qo&RZCl(Zl*[h']|@qZBe#Iª[sŽ~ةج ÌÒ¡Øè¬¡í¹¬î¹ñœ¯ÚyusB5ZÂ~iA`=i@l"E^;`=B^ºpsÊ|ÒÔÓÔÔÑÑÐ~Î{±HR¯EP©?LÀRTænìxîu×la1J¡8K¯CR±ER±BO»LTÄUXÃOSÌnh×~n¿QXÆ[džRd|)OeFi&ReK_Gf Rz:pt:jXA»gnÙÃÑ¥¡Ó¢Ñßè첊î»ñÀ²ôÆ·ë'BdEžwl#IfAk Ej
C_<_B®dnÆ}xÎÉ}É}Ì}Î~ÑÐÐÐ|Ï{±FRCOš=J¿PSæqëxíuÖlb1L¡<PCR³FR³DQŒLTÄQVÄRUÆUVÌg]Í]eŒ_v.Rh'YZFj%Ug!NcMdNl+^c'UZgÕÛ¥ÅÔŠ Ôà
çêí³Šîº«ñÀ°ôÇžñµŠ¬>NW?®i|u'KgDk$FdAb>t-RÀstÏÑÎÍÊ}Á}Á|Ä~É{Ì|Ðy°DOANª>KŸPUäsìzíwØk_0J :O®DS±ES³DQŒKQÈSUÎ^^·ZXšNY¿f~£AXl.`k2e[Co*X\Be!Oh%Z`!QE[Ì
Ø×€ÒŠ»ejÊhpÜéëíªí²£ï¹šóÁ°ï² §>PX<Vo:Yk%Jm&Ha@_APgÀtuÓ~ÑÐ}ÑÐÉ}Ã}À~Ÿ||¿z{Äzx¯DR¯FQ«>KœMRæ
qíyïzÙna1L¡;O¯DS±CP²BM¹HPÅTYÙrk€S\Bb§IWw._l-cu<n\Ja"OdJ_Fj+[s.OÊ|ÞšÕÑËceËchÂYb¢8MÂ[eæìí® ìšÌwtMZ¡8Jb=EcKcm%Hh
Db@fG²frÈ}xÕ|Ñ|Ð{Î}Ï|Ë{É}ÈÃŒ}Žrz«BOª@N£9HžHOæ
nîvîxÚoa/F¡7I°BN±?J®<I¿ai×|nÞ{nœcf{,Nl/a{@vDz]Ok,\V@p4daDU=¶inÝ๫É)Aw<o>~1N.JÒZaßpsìñž§²`g,JuAu?c;
<\¢Xln%Ic>b?r*O¿rtÐzÒzÐyÑyÏzÏzÌyÉ|ÇÁ~»{~µv|ªBOŠ>M4F±DLænîyî{Úm_1Fš;K³BL²CM¢7G¯cjÜœ`by*Mj+^i([h*aR
XC\Gh%P\>XA9YÌܯ¢Ö©¯IU}?9T9^ß·¹²J\ÇMWÛdjíÛ2SFiWjg7^;8Z©bts+La=_?JaÆyvÒ{ÐzÏxÏxÏxÏyËxÅ{À}|žvz°qx·|}®EQš?M2F¯ALænï{ð|Ýqb¢6H±ALœJR:ILfÂy°vyk.^r8ng*]l0fy@x]h*YY=`A\=]AŸrwÛ€Ò¥Ç[bÖfmÊ`kÄWhÈrØØu{ÑW`Ø_gí§¡ÛÃfxœm9N|>aA}4X¯l|t+L_=fB¯dnÉzÐzÍxÌyÍ}ÌzÌxÆ}v¿xwžux¿zÔ⬫BO9K,B§;Häpï {ò¡ßta£4E°@J¿IOÄak·dz|:eb
Ph*b
Uk0df(_{HSm5a[?]?U@IWÕÓš¶HRÕ`ißx}á~Þ{~Ü{ÞÜ~×clÙZeéèž°Û|Ñak¹JV,Bf=v,S¹wn#E`<o%GŒorÎ|Î
zÌyËzÊxÈyÆ}wŸyv·suÑæ³
èŽè³
:M2H&@¢8Hãoî{ñ |Þta¡3D®?NÀXl¶gVt9il+`OK~VEb$WzCwxHwJdaDWAi*OÄsuÛ²=PÅKTØ`gâwzçèçæà~~ÜkqÚZcæëÀ¶ßÛioÑYc3IlAp"IÄe<_;>VÃvtÐ|Í
{Ê|ÉzÇxÃ}y¿yw·stÒìºì¹
éŽéž/H,E#A5Gâpì{ï|ßsb4FªAQŸLWOy
Ex}9kl2iTi+\\DZDa"Jb>šYjw3PO; MZØ¢cm#BËPXÙ^cápræêéçáyvÝkmØ[`ãíÄ»Þ
ÜotÔ[d+Ek@lCÉ
d@e>«X_Ì{ÏyÌ{ÊyÆzÄ~xÁ|x¹tuÆxì¶ížìºëÀëÄ/K-KvB3Gâoê{îwßqa.E°Rlžb@jRo5is>z`r9h`IT=~.K~,Q»ow>Q_@ÂpsÄW<'BÇLTÙ]aákoå|{èéçÞom×`dÔV[ßv|ðÈ¿ÝÛlsÏY`qCr"Cg?Áyr-LfAÀnkÑyÑwÌ
yÉzÄyÂ|wœxv¹ssãª~ïží¹îÅîÊ¡ìÄ2K-Ht<-Bâoì|ðyás_1I®Lg²Vw7hF{p3ns?wao7i\HY?:V¥O\x.JV<¥[eÇq1K]<1FÄJRØ[_àfjãstä{yæ~ä{ÖbeØ^cØ]bÝmqòƹÜ|ÙjpžLY[?u%Df;µlx
?Wy/LËxnÐzÍ
wËvÈyÅyÂ}w»tsÌxïºïžïÄîÈìÈìÉ¥2I,D!>£;Lâqë}ð|àuf 9R©>N°Lj5gFwo;ql1jUa\Ek#DWD~=a[>x9UÚ `hX7d> :LÈKOÙX[àcgãqrãvvä~{ãzÙfjÐTX¿HQÑTZè ÛxxÕfk
.KZCx%Bk;¢]oI^LYÏrÎzËxÉyÆyÄ~vÂ{u¹rsá¢|ðºðÀîÇíÊ¡ìËŠìÊŠ/E,D
&A·R^ãwêyð}áxf3HŠ<M»Vop)]r3in4er6pTco3`K\YG|9^°m}¬\e±{}YBf"FeB§EUÌOUØX[Þ`eálmârtä{{ä}àywÝilá{yâå ÚtxÁYc\E_F0Ip>JbSeŒgdÐtÍzËxÇyÆyÃ~x¿zuŒuqë°~ðœ
ñÈîÈïË íÌ¥í˪)B&@#?µUbãxëyð|áye2DªBZŽXty1gv;ic'Ym/bv=r|F}\}3Uy/Q¶tÁ¥Xbh&Fd<p!?d<¢FXÊLSÙY[Þ`cáhjáijârrávuÝutÞzyꬡ鯊äÖnu8SZDf
F
/Gr<6T®cnÎsdÏvË
zÈxÅzÃ}wÂ}wŸxqÂzqï·~ñÅñÉïÉîË¡íΫîÍ®x?#@#?³Saâ{ë}ð}âye5N¬Kd°Rmj([i+[d(]zDz{Awr9p
WDnÃÑ£«W`y>Vl@b:t#Ai<>RŸBLÙZZÝ]\áfgàjhËSVÎWYÔ]^ÑZ[Ú`a×imÎahÇcm_D]Cn#E1Gv!>r(LŸorÒyfÎxËxÇxÄyÃxÂ|vœvrÅ}pñœòÌñËïËîÍšíЮîÏm@z ?(D¶Xdãxì|ï|Üyv¬OjšD`§Nop/^ZJn2i[w@zKw?s³eÙºnn¢dj^B_;f<p @mA4Kš9HÏRSÕWYÜ`báomÝbbÖPWßR]âjzæ~ãx×nr9Q]A]>p
A3Iz(DkFÌ~yÓ~nÍxÊyÉyÃxÁyÂ~wºurËrôÉñÍ ñÍ¡ïÎ¥ïЪïÏšðÌ£g>p:)CŽQ[â
uì}ï Þ|s,H¯Vr8^z@i_#Uj.fiWwC{akÎÇq`#KdE`AdBm!Bn B~/I+C»DKÊPTÖ[^ÜfiÞijÚ^aØZ]ÚXbÝ_mÛnw¿]c]A^Af@t"A3I+Em!HÑ|ÐsËxÉ{ÊyÄ
{ÁyŒ|xµrpËvöÑ£òТòÑ©ñÑšïËîÉïÉb=d=8L»T[àpì|ï~àyi-H¥Mm{3_m.X`&W]VihWSR}Ço/N[EgBaAc@g@o?n?x$@.@»DLÒW\ØcgÛimÝnràvxäãÚwx-HVBbDi@v$D6J
-Dq
EÒËsÊ{Æ}Ç|Ã}œ|ž|xoqÈ{öÖšóÑ€óÐ¥ñÏ€ñÍ¡ñËòÉ_?\?4IŸVZáqë{î|ázf.G>[f$Sp3]e'WYRXo9qhh¥^D_\!K]Fo"Dd@bA`>k?l@p"Av=";¹DLÎY`×inÞvxåæãÌjncCY
Kg$Gf?{,I:N0Fu$GÒÅvÆ{Ã~ÁÀ|¹~{ŽyxšmpÑöקóÎôÑ€óÎ òÆíºÓt_@X={&B²LTárê{í{Ûte€YmVsa#Ql(Tf$QTKhw?t}I}^{šed1\YF{)Fc@_@b?b?l!Bm
A(A0H©CT»S_Æai×ouÞ~~ßÛÈ{zn7YZ#Md!GaA|.J?T6L,LÐ|®^`Žefµor¹xwŒ|ž|{¯vw£fnä¶öÐôÌõÊðŸÊly.Ed=8ShAq>5GÞzlé{ë~ßI]}>_SEq-Wf%Sm+ZxEwWYV[Spb)Sy'Fg"F_Ca@a@hBkAz%B¹LWÍ[`Î_dÓhkÙnpØrrØtsàçŽèŒ§»wA^U?{-J=T3K3QË}užjjŽbd¬Zb€T^£W`€^f€ci\hîŸõÆôÉòÂÉpr#Bs"A5J§uUg/G}#>Útiêzì~Þyj°`ui+NP>}Aoh,_Cp`%XL|PtBybmMrGlm
Dh"DaC_CbEfCw'Eq"CŽKUËX]Í^c×hjÙklØlnÜ|wâæ¯é¶îŸ€îì xl$E5N,F8UË|uÂ|vŸvt¹ps±ekŠWaJY¬YZDQí¹öÊôÇÇjx'B/G:L9K¡qXe{"?Úvkë|ìyãu·uYC\De$Nn,Ui)Wj/[k5ee+^p:qXy€S}Xyl/Vf#IeF^Gg#Hk#G7Lr!C¶LWÇW]ÕcgÚijÚkjÛqoàzâä¡ç¬ì·ñŠóÊŽ³m
A})D>XÇzrÃy¿|wœyxžtv°lrŠdmŒgYÁg[ôÉ÷Îé²
2I;M>O§IT?Pu5V°°y#AÛxlí~í|änTkQ>_H]G[Iw;gYGe)Ys8kt;q}Le¢ww?hNjb@kA]Ai#Gh?®DO~$A±HUÕ_aÙceÛjhÜkjÝroàuá}ã
æ€ê²ïœ¡òDZôÑœTgl<CWÅyoÄtÁ|tœyvºww³ru®joÆp\ÜnöÐöÌÉ}e7M BRMW BQ£HZXA®¶m=Úxiì{ï|åiOdUC_GXCb$Tp6aaIb$Rf)[{EzzE{ekq5cYteAq%D_AeBo?µFM)BžKUØ]]ÜecÜhdÜkgÞsoßzrà
zâä æ®íŒ£ñƲóΜ۵©]6LXÅ|qÅrÂ|sŒxu·sr°oqŽgfã |ôÂøÒò¿®OP¢?O±NV€DQ¢DRK_O8Š}·m<Úwfí{î¡{æg?Z^HY?UBxBpf*Ta!KYCZIk1d|J~dqpzLnjAn!Be@cB1FÌVW0FŸNTÚaaÝfcÜfbÜhdÝpkÞwoàxáãå«ë¹£ïŲðÌ»ôÓ¿t6QªTXÆuÂ~tÀ{s»wrŽrpjlÇ|n÷Ï÷ÌøÑßhš@JªCNµOU@Q¢L[G]K
+6 uºs%BÙteë|è}ápBeWCZ@`!Le'Rg(Q`!KXC]Mh,Zl8mpOzNq}Bd=_~7Vh@n>²DMÐZ\0GÇTXÚbaÞjfÝfbÜd_ÜkeÝsmß~và|âäšè¶¢íÁ°ðÈžòÏ¿€qyµ_\Ãu¿|s»yqºxrŽsrjkÕt÷Ì÷ÍõÄÌfW°FL°HN©EO¡DSH[>VN
9dx¹z/I×qcìzì{ãoCbXA[Fe%N]Ka"KZI[H_"Qk3dtDycU
x?iaEh
Bn$Db>)AÃPTÊZ\3LÒ^^ÝhfÞjfÞhdÛfbÜibÝpjÞzsßzáâ æ²êŸ®ïƶð˜Ԛ¿haŸ}tŸ}vœ|u»zu³tsµolÒ}dî²zøÏëªvÀQQ«CMŠAL;M¢HXCYD\M
8Vož
<QÔl_ëyìzãk PeYD` IWDa"Nb&P_ J[Fc&Sj2cl5dj9el4egcA_<]:e;¢:HÉVW®DP€BQÙdaÝjgàniàjdÝgaÜhbÝojÞwoß~tß|á
ä¬èºšîŶðËœñÌ»ºe_HR§\_³om¶xt¶zvÇ~pÍu_ÙkúÒßb¯DL¢>M4H FVBVFZ7NL6Lg£IZÏg]éxí{æjFc^GW@_
K_!M_"Mc"JXB[Kj5jcv<mz?hf$J];Z:Z8(@ŸMOÅRR(DÇYZÛdaÞjgàlfàleßhaÜf^ÜkbÞrjÞ{oßxàã€æ¶€ìÂŽïÊ»óÏ¿Žps;L6H4G7KGVÀtgÓfç©}öĺTM,C7IASBVDXG]q#A~/GUiÇ©¢\fÌg^èxì¡zÝkEbYD]F\E[Hb#Me$NVBZD^JuDtkO{Z=X:U9i:€<HÇRQ.B¢@MØc\ÜgbÞidßkgàmhàkbÝg`Üi`ÜmdÝwkßsà|ãå¯éŸ®íǹñÌŸÒIU LU<Ns'DV;¬d^é¬róœÖc$@,D;QFX9PMa>Un!?BV¡kyÄš€¢mpÊf^éyí£zÔ|iCaXC[D]FYEb%Pc(S_"Md&Re'Th,\Mzu>fW>V;X8.B®BH*@5FÑZWÙc]ÝhaÞjdßjeàmfàngßkdÜkdÜjaÝrgÞ{nßzáãŠæ·šëĶïÊŒìIJCQ¡PWIT<O|.H·g`ó¿Ð^*A{&A3KHZ3LAXQg9Qr(Fr,IVlŸ¡šuwÈd\ézï€}Üoq*PWC_I^H`$Oj.Zf(Y|Cpe*V_'Tn3eYr8bT>W;c7z#<.DºIOÍXWÓ]Y×b\Ûf_ÞhaßkeànfàsjßohÝmeÝlbÜodÝxlÞwáâ ä° è¿±íÈœðÍŒ¢\cJTQZN\¢Q[¹\\Ârb7K1F3KM^4J1KViNdt*Fm#Cc
Bz<[Ê«ŠŸÇe^ëzð€Ìzme"KYD_Ic#Oa&Rm2_] R
Qc)Yl5_r7br;lr:fS<d7->¹GJÇQOÏYVÓ\WÕ_XØ`ZÜe]Ýg`ßiaßkeàpiàrkßrjßqgÝriÞxkÞ~qà}áâšå·©ëÄ·ìÊ»ž~~DQT^¥]eµZZ¶QUªHS¯MU;NCX4J1HM` ]o;Sj!@j=]=n.RØ·«Ò«Çg`êxî¢~ÇunbGZCe%Oo*Tj*Xv>ij(Yv:iw?nt=hg%Qg(Uy@no,R'<³@DÇNMÍVRÑ[UÒ\V×_XÙ`XÝd\Ýd\ßhbàjeáphàpiàsiáwkßvjßznàsá}à
á£ä³£èŸ±ìǺ֊CULWª[`Ä`ZÂXUÍ`XžOR>R
;V;RDX¬gsG\f>i!@9K
\ No newline at end of file
diff --git a/milena/doc/tutorial/figures/extend-5.ppm
b/milena/doc/tutorial/figures/extend-5.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..d384c49a159ce39916c48838244da08cac42f724
GIT binary patch
literal 12406
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
literal 0
HcmV?d00001
diff --git a/milena/doc/tutorial/outputs/extend.txt
b/milena/doc/tutorial/outputs/extend.txt
new file mode 100644
index 0000000..e69de29
diff --git a/milena/doc/tutorial/samples/Makefile.am
b/milena/doc/tutorial/samples/Makefile.am
index f4c4877..899f8a8 100644
--- a/milena/doc/tutorial/samples/Makefile.am
+++ b/milena/doc/tutorial/samples/Makefile.am
@@ -9,6 +9,7 @@ noinst_PROGRAMS = \
domain-display \
dpoint-1 \
estim-sites \
+ extend \
extension-ignore \
fill \
fill-call-1 \
@@ -55,6 +56,7 @@ box2d_bbox_SOURCES = box2d-bbox.cc
domain_display_SOURCES = domain-display.cc
dpoint_1_SOURCES = dpoint-1.cc
estim_sites_SOURCES = estim-sites.cc
+extend_SOURCES = extend.cc
extension_ignore_SOURCES = extension-ignore.cc
fill_SOURCES = fill.cc
fill_call_1_SOURCES = fill-call-1.cc
diff --git a/milena/doc/tutorial/samples/extend.cc
b/milena/doc/tutorial/samples/extend.cc
new file mode 100644
index 0000000..2f9ae0d
--- /dev/null
+++ b/milena/doc/tutorial/samples/extend.cc
@@ -0,0 +1,94 @@
+#include <mln/essential/2d.hh>
+#include <mln/fun/p2b/big_chess.hh>
+#include <tests/data.hh>
+#include <doc/tutorial/tools/sample_utils.hh>
+
+namespace mln
+{
+
+ struct saturate_rgb8 : public Function_v2v<saturate_rgb8>
+ {
+
+ typedef value::rgb8 result;
+
+ value::rgb8 operator()(const value::rgb8& v) const
+ {
+ value::rgb8 v2 = v;
+ v2.red() > 50 ? v2.red() -= 50 : v2.red() = 0;
+ v2.green() > 50 ? v2.green() -= 50 : v2.green() = 0;
+ v2.blue() > 50 ? v2.blue() -= 50 : v2.blue() = 0;
+ return v2;
+ }
+
+ };
+
+} // end of namespace mln
+
+// \{
+namespace mln
+{
+
+ struct my_ext : public Function_p2v<my_ext>
+ {
+
+ typedef value::rgb8 result;
+
+ value::rgb8 operator()(const point2d& p) const
+ {
+ if ((p.row() + p.col()) % 20)
+ return literal::black;
+ return literal::white;
+ }
+
+ };
+
+} // end of namespace mln
+// \}
+
+int main()
+{
+ using namespace mln;
+ using value::rgb8;
+
+ border::thickness = 5;
+
+ // \{
+ image2d<rgb8> lena;
+ io::ppm::load(lena, MLN_IMG_DIR "/small.ppm");
+ box2d bbox_enlarged = lena.domain();
+ bbox_enlarged.enlarge(border::thickness);
+ mln_VAR(ima_roi, lena | fun::p2b::big_chess<box2d>(lena.domain(), 10));
+ // \}
+
+ image2d<rgb8> tmp;
+ initialize(tmp, lena);
+ data::fill(tmp, literal::black);
+ data::paste(ima_roi, tmp);
+ doc::ppmsave(tmp, "extend");
+
+ // \{
+ mln_VAR(ext_with_val, extended_to(extend(ima_roi, literal::blue), bbox_enlarged));
+ // \}
+ doc::ppmsave(ext_with_val, "extend");
+
+ // \{
+ mln_VAR(ext_with_fun, extended_to(extend(ima_roi, my_ext()), bbox_enlarged));
+ // \}
+ doc::ppmsave(ext_with_fun, "extend");
+
+
+ // \{
+ mln_VAR(ext_with_ima, extend(ima_roi, lena));
+ // \}
+ doc::ppmsave(ext_with_ima, "extend");
+
+ image2d<bool> mask;
+ initialize(mask, lena);
+ data::fill(mask, true);
+ data::fill((mask | ima_roi.domain()).rw(), false);
+ mln_VAR(ima_ext, level::transform(lena | (pw::value(mask) != false),
saturate_rgb8()));
+ data::paste(ima_ext, lena);
+ data::paste(ima_roi, lena);
+ doc::ppmsave(lena, "extend");
+
+}
diff --git a/milena/doc/tutorial/samples/ima2d-rot.cc
b/milena/doc/tutorial/samples/ima2d-rot.cc
index 6463a5c..05e12ad 100644
--- a/milena/doc/tutorial/samples/ima2d-rot.cc
+++ b/milena/doc/tutorial/samples/ima2d-rot.cc
@@ -41,7 +41,7 @@ int main()
}
draw::box(ima2, ima2.bbox(), literal::red);
- doc::ppmsave(ima2 | extended_domain, IMA2_PPM);
+ doc::ppmsave(extended_to(ima2, extended_domain), IMA2_PPM);
// \}
}
diff --git a/milena/doc/tutorial/tools/todoxygen.sh
b/milena/doc/tutorial/tools/todoxygen.sh
index 0d2aae5..fa5d188 100755
--- a/milena/doc/tutorial/tools/todoxygen.sh
+++ b/milena/doc/tutorial/tools/todoxygen.sh
@@ -30,7 +30,7 @@ sed -i -e 's/≡/\&equiv/g' $out
#Doxygen wants us to preserve '\n' after commands.
#\ref and \see do not need that extra new line.
-for keyword in include section page subpage subsection image; do
+for keyword in include section page subpage subsection subsubsection image; do
sed -i -e "s/\\\\endhtmlonly\\\\$keyword/\\\\endhtmlonly\n\n\\\\$keyword/g"
$out
sed -i -e "s/\\\\$keyword \(.*\)\\\\htmlonly/\\\\$keyword
\1\n\n\\\\htmlonly\n/g" $out
done
diff --git a/milena/doc/tutorial/tutorial.tex b/milena/doc/tutorial/tutorial.tex
index 267d0e2..7a4de1b 100644
--- a/milena/doc/tutorial/tutorial.tex
+++ b/milena/doc/tutorial/tutorial.tex
@@ -73,6 +73,13 @@
\backslash htmlonly %
}
+\newcommand{\doxysubsubsection}[2]{%
+\label{#1}
+\backslash endhtmlonly%
+\backslash subsubsection #1 #2%
+\backslash htmlonly %
+}
+
% #1 - part number (Optional)
% #2 - file name
\newcommand{\doxycode}[2][1]{
@@ -150,6 +157,7 @@ $$
\renewcommand{\doxychapter}[2]{\chapter{#2}\label{#1}}
\renewcommand{\doxysection}[2]{\section{#2}\label{#1}}
\renewcommand{\doxysubsection}[2]{\subsection{#2}\label{#1}}
+\renewcommand{\doxysubsubsection}[2]{\subsubsection{#2}\label{#1}}
\renewcommand{\doxycode}[2][1]{\lstinputlisting[frame=single]{samples/#2-#1.cc}}
\renewcommand{\doxyrawcode}[1]{\lstinputlisting[frame=single]{samples/#1.cc.raw}}
\renewcommand{\doxyoutput}[1]{\lstinputlisting[frame=single]{outputs/#1.txt}}
@@ -564,7 +572,8 @@ restricted to the region of interest \var{roi}'. Actually this is
not directly
Note the use of \code{rw()} which is mandatory due to C++ limitations. In C++,
the image created by \code{lena | roi} is \code{const}, e.g. read-only, though
-\code{data::fill} expect a \code{non-const} image, e.g. read-write.
+\code{data::fill} expect a \code{non-const} image, e.g. read-write. \code{rw()}
+is a workaround to make it read-write.
\begin{center}
\begin{tabular}{c c c}
@@ -1214,6 +1223,8 @@ image domain. In the library, both the concept of border and of
extension can be
These concepts are useful in many algorithms and can avoid costly tests while
working with sites located on image edges.
+\doxysubsection{imabordersection}{Image border}
+
A border is a finite extension provided to a basic image type, such as
\type{image2d}. By default, every image is created with a border. The default width is
defined through the global variable \var{border::thickness} defined in
@@ -1234,8 +1245,6 @@ ignored while saving or printing an image.
Some operations can be performed on the border. The functions are located in
\hpath{mln/border}.\\
-FIXME: More details about border manipulation! border:get(), \ldots
-
%
\bigskip
%
@@ -1254,7 +1263,9 @@ resize & Set image border to a specific size.\\
\end{tabular} \\
-On morphed images, decribed in section \doxyref{imamorphed}, the border concept
+\doxysubsection{imextgeneral}{Generality on image extension}
+
+On morphed images, described in section \doxyref{imamorphed}, the border concept
does not exist and is generalized to the extension concept.
A simple example of a morphed image is a sub-image. A sub image does not have
border nor extension by default.
@@ -1264,8 +1275,6 @@ Another point is that an image can be used as extension. For
instance, in the
case of a sub-image, you may be interested in extending the sub-image with the
image itself.
-[FIXME: schema - voir cahier]
-
The extension supports the following operations. These functions are located in
\hpath{mln/extension}.\\
@@ -1275,9 +1284,65 @@ The extension supports the following operations. These functions
are located in
\begin{tabular}{l|p{10cm}}
Routine & Description \\
\hline
+adjust & Adjust the extension given a structural element.\\
+adjust\_duplicate & Adjust the size of the extension given a structural element and
duplicate the image inner boundary.\\
+adjust\_fill & Adjust the size of the extension given a structural element and fill
it with a value.\\
+duplicate & Duplicate the values of the image inner boundary in the extension.\\
fill & Fill the extension with a given value.\\
\end{tabular} \\
+
+In order to extend an image, a routine \code{extend} is available in
+\hpath{mln/core/routine/extend.hh}. The routine \code{extended\_to} may
+also help during debug. It allows to extend the image domain to a larger
+one. The values associated to the new sites comes from the extension.
+
+\doxysubsection{extexample}{Different extensions}
+
+Let's say we have want to extract a sub domain from an image. In the following
+example, \var{ima\_roi} holds several small rectangles from the original image.
+\doxycode[2]{extend}
+
+\begin{center}
+ \begin{tabular}{c c c}
+ \doxyimg{small-enlarged} & ~\huge{\rightarrow}~ & \doxyfigure[1]{extend}{3cm}
\\
+ \var{lena} & & \var{ima\_roi} (black color means the sites are not included
in the domain) \\
+ \end{tabular}
+\end{center}
+
+
+Then, we may extend this sub image with one of the three following extension type.
+
+\doxysubsubsection{extval}{Extension with a value}
+
+Let's extend with the value \code{literal::blue}.
+\doxycode[3]{extend}
+\doxyfigure[2]{extend}{3cm}
+
+Note the use of the \code{extended\_to()} routine. We used a larger bbox to
+extend the image domain. That is the reason why the image is surrounded by the
+extension value, blue.
+
+\doxysubsubsection{extfun}{Extension with a function}
+
+Let's use the following function:
+\doxycode[1]{extend}
+\doxycode[4]{extend}
+\doxyfigure[3]{extend}{3cm}
+
+\doxysubsubsection{extima}{Extension with an image}
+
+Let's extend with the original image, \var{lena}.
+\doxycode[5]{extend}
+
+\begin{center}
+ \begin{tabular}{c c}
+ \doxyfigure[4]{extend}{3cm} & \doxyfigure[5]{extend}{3cm} \\
+ \var{ext\_with\_ima}, the extended image. & The actual data in the domain (light)
with its extension (dark) \\
+ \end{tabular}
+\end{center}
+
+
%----------------
\subsection*{IMPORTANT NOTE}
Many times, you may want to check if a site is part of the image before applying
@@ -1559,7 +1624,8 @@ cuboid3d & Cuboid & - \\
These predefined windows can be passed directly to a function. The headers are
located in \header{mln/core/alias/window*.hh}.
-
+\doxysubsection{wwindow}{Weighted window}
+FIXME
\doxysubsection{neighborhood}{Neighborhood}
--
1.5.6.5