From f55d370bc527b50dd01dc35c65abba137e0f2149 Mon Sep 17 00:00:00 2001 From: Vladimir Date: Tue, 14 Feb 2023 17:39:50 -0600 Subject: [PATCH] primer commit --- .gitignore | 286 ++++++++++++++++ comple.jpg | Bin 0 -> 30651 bytes introduccion.aux | 43 +++ introduccion.log | 817 ++++++++++++++++++++++++++++++++++++++++++++++ introduccion.out | 0 introduccion.pdf | Bin 0 -> 192492 bytes introduccion.tex | 362 ++++++++++++++++++++ introduccion.tex~ | 360 ++++++++++++++++++++ prim.py | 5 + 9 files changed, 1873 insertions(+) create mode 100644 .gitignore create mode 100644 comple.jpg create mode 100644 introduccion.aux create mode 100644 introduccion.log create mode 100644 introduccion.out create mode 100644 introduccion.pdf create mode 100644 introduccion.tex create mode 100644 introduccion.tex~ create mode 100644 prim.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5bd5993 --- /dev/null +++ b/.gitignore @@ -0,0 +1,286 @@ +# ---> TeX +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs +*.lzo +*.lzs + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices and outlines +*.xyc +*.xyd + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib + diff --git a/comple.jpg b/comple.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1eb780ce9386f51bdd860050acdce2af5710281b GIT binary patch literal 30651 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 literal 0 HcmV?d00001 diff --git a/introduccion.aux b/introduccion.aux new file mode 100644 index 0000000..f7f02dc --- /dev/null +++ b/introduccion.aux @@ -0,0 +1,43 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\providecommand\babel@aux[2]{} +\@nameuse{bbl@beforestart} +\catcode `"\active +\catcode `<\active +\catcode `>\active +\@nameuse{es@quoting} +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\providecommand\HyField@AuxAddToCoFields[2]{} +\babel@aux{spanish}{} +\newlabel{fig:func}{{}{2}{Programación funcional}{figure.caption.6}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Una función representada como caja negra.\relax }}{3}{figure.caption.6}\protected@file@percent } +\@writefile{lol}{\contentsline {lstlisting}{language=Python}{3}{lstlisting.-1}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces Primeros $5$ niveles del triángulo de Pascal\relax }}{4}{table.caption.9}\protected@file@percent } +\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} +\newlabel{tab:pascal}{{1}{4}{Primeros $5$ niveles del triángulo de Pascal\relax }{table.caption.9}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Desarrollo de arriba $pa'bajo$\relax }}{4}{figure.caption.10}\protected@file@percent } +\newlabel{fig:pseudo}{{2}{4}{Desarrollo de arriba $pa'bajo$\relax }{lstnumber.-2.7}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Comparando la complejidad temporal $t(x)=x^3$ con $t(x)=3^x$ para valores muy pequeños.\relax }}{7}{figure.caption.13}\protected@file@percent } +\newlabel{fig:comple}{{3}{7}{Comparando la complejidad temporal $t(x)=x^3$ con $t(x)=3^x$ para valores muy pequeños.\relax }{figure.caption.13}{}} +\bibcite{Thompson1996}{1} +\bibcite{VanRoy2009}{2} +\bibcite{VanRoy2004}{3} +\@writefile{lol}{\contentsline {lstlisting}{prim.py}{8}{lstlisting.-7}\protected@file@percent } +\bibcite{Kowalski1988}{4} +\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Obteniendo números primos\relax }}{9}{table.caption.15}\protected@file@percent } +\newlabel{tab:pascal}{{2}{9}{Obteniendo números primos\relax }{table.caption.15}{}} +\gdef \@abspage@last{9} diff --git a/introduccion.log b/introduccion.log new file mode 100644 index 0000000..a7baef8 --- /dev/null +++ b/introduccion.log @@ -0,0 +1,817 @@ +This is pdfTeX, Version 3.14159265-2.6-1.40.21 (TeX Live 2020/Debian) (preloaded format=pdflatex 2022.11.21) 14 FEB 2023 17:38 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**introduccion.tex +(./introduccion.tex +LaTeX2e <2020-10-01> patch level 4 +L3 programming layer <2021-01-09> xparse <2020-03-03> +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2020/04/10 v1.4m Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +File: size10.clo 2020/04/10 v1.4m Standard LaTeX file (size option) +) +\c@part=\count177 +\c@section=\count178 +\c@subsection=\count179 +\c@subsubsection=\count180 +\c@paragraph=\count181 +\c@subparagraph=\count182 +\c@figure=\count183 +\c@table=\count184 +\abovecaptionskip=\skip47 +\belowcaptionskip=\skip48 +\bibindent=\dimen138 +) +(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2020/08/01 v1.3d Input encoding file +\inpenc@prehook=\toks15 +\inpenc@posthook=\toks16 +) +(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2021/01/26 3.53 The Babel package + +(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.def +File: babel.def 2021/01/26 3.53 Babel common definitions +\babel@savecnt=\count185 +\U@D=\dimen139 +\l@babelnohyphens=\language10 + +(/usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def) +\bbl@readstream=\read2 +) +\bbl@dirlevel=\count186 + +(/usr/share/texlive/texmf-dist/tex/generic/babel-spanish/spanish.ldf +Language: spanish.ldf 2016/03/03 v5.0p Spanish support from the babel system +\es@quottoks=\toks17 +\es@quotdepth=\count187 +Package babel Info: Making " an active character on input line 561. +Package babel Info: Making . an active character on input line 662. +Package babel Info: Making < an active character on input line 707. +Package babel Info: Making > an active character on input line 707. +)) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2020/09/23 v2.17i AMS math features +\@mathmargin=\skip49 + +For additional information on amsmath, use the `?' option. +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 AMS text + +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks18 +\ex@=\dimen140 +)) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen141 +) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2016/03/08 v2.02 operator names +) +\inf@bad=\count188 +LaTeX Info: Redefining \frac on input line 234. +\uproot@=\count189 +\leftroot@=\count190 +LaTeX Info: Redefining \overline on input line 399. +\classnum@=\count191 +\DOTSCASE@=\count192 +LaTeX Info: Redefining \ldots on input line 496. +LaTeX Info: Redefining \dots on input line 499. +LaTeX Info: Redefining \cdots on input line 620. +\Mathstrutbox@=\box47 +\strutbox@=\box48 +\big@size=\dimen142 +LaTeX Font Info: Redeclaring font encoding OML on input line 743. +LaTeX Font Info: Redeclaring font encoding OMS on input line 744. +\macc@depth=\count193 +\c@MaxMatrixCols=\count194 +\dotsspace@=\muskip16 +\c@parentequation=\count195 +\dspbrk@lvl=\count196 +\tag@help=\toks19 +\row@=\count197 +\column@=\count198 +\maxfields@=\count199 +\andhelp@=\toks20 +\eqnshift@=\dimen143 +\alignsep@=\dimen144 +\tagshift@=\dimen145 +\tagwidth@=\dimen146 +\totwidth@=\dimen147 +\lineht@=\dimen148 +\@envbody=\toks21 +\multlinegap=\skip50 +\multlinetaggap=\skip51 +\mathdisplay@stack=\toks22 +LaTeX Info: Redefining \[ on input line 2923. +LaTeX Info: Redefining \] on input line 2924. +) +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +) +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols +) +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2020-05-15 v7.00e Hypertext links for LaTeX + +(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +Package: ltxcmds 2020-05-10 v1.25 LaTeX kernel commands for general use (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +Package: iftex 2020/03/06 v1.0d TeX engine tests +) +(/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO +) + +(/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) +) +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks23 +) +(/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +Package: kvoptions 2020-10-07 v3.14 Key value format for package options (HO) +) +\@linkdim=\dimen149 +\Hy@linkcounter=\count266 +\Hy@pagecounter=\count267 + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2020-05-15 v7.00e Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) +(/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO) +) +\Hy@SavedSpaceFactor=\count268 +Package hyperref Info: Hyper figures OFF on input line 4464. +Package hyperref Info: Link nesting OFF on input line 4469. +Package hyperref Info: Hyper index ON on input line 4472. +Package hyperref Info: Plain pages OFF on input line 4479. +Package hyperref Info: Backreferencing OFF on input line 4484. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4717. +\c@Hy@tempcnt=\count269 + +(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip17 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5076. +\XeTeXLinkMargin=\dimen150 + +(/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO +) +)) +\Fld@menulength=\count270 +\Field@Width=\dimen151 +\Fld@charsize=\dimen152 +Package hyperref Info: Hyper figures OFF on input line 6347. +Package hyperref Info: Link nesting OFF on input line 6352. +Package hyperref Info: Hyper index ON on input line 6355. +Package hyperref Info: backreferencing OFF on input line 6362. +Package hyperref Info: Link coloring OFF on input line 6367. +Package hyperref Info: Link coloring with OCG OFF on input line 6372. +Package hyperref Info: PDF/A mode OFF on input line 6377. +LaTeX Info: Redefining \ref on input line 6417. +LaTeX Info: Redefining \pageref on input line 6421. + +(/usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty +Package: atbegshi-ltx 2020/08/17 v1.0a Emulation of the original atbegshi packa +ge +with kernel methods +) +\Hy@abspage=\count271 +\c@Item=\count272 +\c@Hfootnote=\count273 +) +Package hyperref Info: Driver (autodetected): hpdftex. + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2020-05-15 v7.00e Hyperref driver for pdfTeX + +(/usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty +Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atvery packag +e +with kernel methods +) +\Fld@listcount=\count274 +\c@bookmark@seq@number=\count275 + +(/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +86. +) +\Hy@SectionHShift=\skip52 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2020/09/09 v1.2b Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2020/08/30 v1.4c Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2016/01/03 v1.10 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 105. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex +)) +\Gin@req@height=\dimen153 +\Gin@req@width=\dimen154 +) +(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count276 +\lst@gtempboxa=\box49 +\lst@token=\toks24 +\lst@length=\count277 +\lst@currlwidth=\dimen155 +\lst@column=\count278 +\lst@pos=\count279 +\lst@lostspace=\dimen156 +\lst@width=\dimen157 +\lst@newlines=\count280 +\lst@lineno=\count281 +\lst@maxwidth=\dimen158 + +(/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2020/03/24 1.8d (Carsten Heinz) +\c@lstnumber=\count282 +\lst@skipnumbers=\count283 +\lst@framebox=\box50 +) +(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2020/03/24 1.8d listings configuration +)) +Package: listings 2020/03/24 1.8d (Carsten Heinz) + +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352. +Package xcolor Info: Model `RGB' extended on input line 1364. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371. +) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2020/10/26 v3.5g Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2020/10/21 v2.2e caption3 kernel (AR) +\captionmargin=\dimen159 +\captionmargin@=\dimen160 +\captionwidth=\dimen161 +\caption@tempdima=\dimen162 +\caption@indent=\dimen163 +\caption@parindent=\dimen164 +\caption@hangindent=\dimen165 +Package caption Info: Standard document class detected. +) +\c@caption@flags=\count284 +\c@continuedfloat=\count285 +Package caption Info: hyperref package is loaded. +Package caption Info: listings package is loaded. +) +(/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +(/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +\pgfutil@everybye=\toks25 +\pgfutil@tempdima=\dimen166 +\pgfutil@tempdimb=\dimen167 + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.t +ex)) (/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +\pgfutil@abb=\box51 +) (/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +(/usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex) +Package: pgfrcs 2020/12/27 v3.1.8b (3.1.8b) +)) +Package: pgf 2020/12/27 v3.1.8b (3.1.8b) + +(/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +(/usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +Package: pgfsys 2020/12/27 v3.1.8b (3.1.8b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +\pgfkeys@pathtoks=\toks26 +\pgfkeys@temptoks=\toks27 + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.t +ex +\pgfkeys@tmptoks=\toks28 +)) +\pgf@x=\dimen168 +\pgf@y=\dimen169 +\pgf@xa=\dimen170 +\pgf@ya=\dimen171 +\pgf@xb=\dimen172 +\pgf@yb=\dimen173 +\pgf@xc=\dimen174 +\pgf@yc=\dimen175 +\pgf@xd=\dimen176 +\pgf@yd=\dimen177 +\w@pgf@writea=\write3 +\r@pgf@reada=\read3 +\c@pgf@counta=\count286 +\c@pgf@countb=\count287 +\c@pgf@countc=\count288 +\c@pgf@countd=\count289 +\t@pgf@toka=\toks29 +\t@pgf@tokb=\toks30 +\t@pgf@tokc=\toks31 +\pgf@sys@id@count=\count290 + (/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +File: pgf.cfg 2020/12/27 v3.1.8b (3.1.8b) +) +Driver file for pgf: pgfsys-pdftex.def + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +File: pgfsys-pdftex.def 2020/12/27 v3.1.8b (3.1.8b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.de +f +File: pgfsys-common-pdf.def 2020/12/27 v3.1.8b (3.1.8b) +))) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code. +tex +File: pgfsyssoftpath.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\pgfsyssoftpath@smallbuffer@items=\count291 +\pgfsyssoftpath@bigbuffer@items=\count292 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code. +tex +File: pgfsysprotocol.code.tex 2020/12/27 v3.1.8b (3.1.8b) +)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +Package: pgfcore 2020/12/27 v3.1.8b (3.1.8b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +\pgfmath@dimen=\dimen178 +\pgfmath@count=\count293 +\pgfmath@box=\box52 +\pgfmath@toks=\toks32 +\pgfmath@stack@operand=\toks33 +\pgfmath@stack@operation=\toks34 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code +.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonomet +ric.code.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.cod +e.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison +.code.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code. +tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code +.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code. +tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerari +thmetics.code.tex))) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +\c@pgfmathroundto@lastzeros=\count294 +)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.te +x +File: pgfcorepoints.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\pgf@picminx=\dimen179 +\pgf@picmaxx=\dimen180 +\pgf@picminy=\dimen181 +\pgf@picmaxy=\dimen182 +\pgf@pathminx=\dimen183 +\pgf@pathmaxx=\dimen184 +\pgf@pathminy=\dimen185 +\pgf@pathmaxy=\dimen186 +\pgf@xx=\dimen187 +\pgf@xy=\dimen188 +\pgf@yx=\dimen189 +\pgf@yy=\dimen190 +\pgf@zx=\dimen191 +\pgf@zy=\dimen192 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct. +code.tex +File: pgfcorepathconstruct.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\pgf@path@lastx=\dimen193 +\pgf@path@lasty=\dimen194 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code +.tex +File: pgfcorepathusage.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\pgf@shorten@end@additional=\dimen195 +\pgf@shorten@start@additional=\dimen196 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.te +x +File: pgfcorescopes.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\pgfpic=\box53 +\pgf@hbox=\box54 +\pgf@layerbox@main=\box55 +\pgf@picture@serial@count=\count295 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.c +ode.tex +File: pgfcoregraphicstate.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\pgflinewidth=\dimen197 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformation +s.code.tex +File: pgfcoretransformations.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\pgf@pt@x=\dimen198 +\pgf@pt@y=\dimen199 +\pgf@pt@temp=\dimen256 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +File: pgfcorequick.code.tex 2020/12/27 v3.1.8b (3.1.8b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.t +ex +File: pgfcoreobjects.code.tex 2020/12/27 v3.1.8b (3.1.8b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing +.code.tex +File: pgfcorepathprocessing.code.tex 2020/12/27 v3.1.8b (3.1.8b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.te +x +File: pgfcorearrows.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\pgfarrowsep=\dimen257 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +File: pgfcoreshade.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\pgf@max=\dimen258 +\pgf@sys@shading@range@num=\count296 +\pgf@shadingcount=\count297 +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +File: pgfcoreimage.code.tex 2020/12/27 v3.1.8b (3.1.8b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code. +tex +File: pgfcoreexternal.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\pgfexternal@startupbox=\box56 +)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.te +x +File: pgfcorelayers.code.tex 2020/12/27 v3.1.8b (3.1.8b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.c +ode.tex +File: pgfcoretransparency.code.tex 2020/12/27 v3.1.8b (3.1.8b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code. +tex +File: pgfcorepatterns.code.tex 2020/12/27 v3.1.8b (3.1.8b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +File: pgfcorerdf.code.tex 2020/12/27 v3.1.8b (3.1.8b) +))) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +File: pgfmoduleshapes.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\pgfnodeparttextbox=\box57 +) (/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +File: pgfmoduleplot.code.tex 2020/12/27 v3.1.8b (3.1.8b) +) +(/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65 +.sty +Package: pgfcomp-version-0-65 2020/12/27 v3.1.8b (3.1.8b) +\pgf@nodesepstart=\dimen259 +\pgf@nodesepend=\dimen260 +) +(/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18 +.sty +Package: pgfcomp-version-1-18 2020/12/27 v3.1.8b (3.1.8b) +)) (/usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +(/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +(/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex)) +(/usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +Package: pgffor 2020/12/27 v3.1.8b (3.1.8b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex) +\pgffor@iter=\dimen261 +\pgffor@skip=\dimen262 +\pgffor@stack=\toks35 +\pgffor@toks=\toks36 +)) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +Package: tikz 2020/12/27 v3.1.8b (3.1.8b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers +.code.tex +File: pgflibraryplothandlers.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\pgf@plot@mark@count=\count298 +\pgfplotmarksize=\dimen263 +) +\tikz@lastx=\dimen264 +\tikz@lasty=\dimen265 +\tikz@lastxsaved=\dimen266 +\tikz@lastysaved=\dimen267 +\tikz@lastmovetox=\dimen268 +\tikz@lastmovetoy=\dimen269 +\tikzleveldistance=\dimen270 +\tikzsiblingdistance=\dimen271 +\tikz@figbox=\box58 +\tikz@figbox@bg=\box59 +\tikz@tempbox=\box60 +\tikz@tempbox@bg=\box61 +\tikztreelevel=\count299 +\tikznumberofchildren=\count300 +\tikznumberofcurrentchild=\count301 +\tikz@fig@count=\count302 + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +File: pgfmodulematrix.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\pgfmatrixcurrentrow=\count303 +\pgfmatrixcurrentcolumn=\count304 +\pgf@matrix@numberofcolumns=\count305 +) +\tikz@expandcount=\count306 + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tik +zlibrarytopaths.code.tex +File: tikzlibrarytopaths.code.tex 2020/12/27 v3.1.8b (3.1.8b) +))) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tik +zlibraryautomata.code.tex +File: tikzlibraryautomata.code.tex 2020/12/27 v3.1.8b (3.1.8b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tik +zlibraryshapes.multipart.code.tex +File: tikzlibraryshapes.multipart.code.tex 2020/12/27 v3.1.8b (3.1.8b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshape +s.multipart.code.tex +File: pgflibraryshapes.multipart.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\pgfnodepartlowerbox=\box62 +\pgfnodeparttwobox=\box63 +\pgfnodepartthreebox=\box64 +\pgfnodepartfourbox=\box65 +\pgfnodeparttwentybox=\box66 +\pgfnodepartnineteenbox=\box67 +\pgfnodeparteighteenbox=\box68 +\pgfnodepartseventeenbox=\box69 +\pgfnodepartsixteenbox=\box70 +\pgfnodepartfifteenbox=\box71 +\pgfnodepartfourteenbox=\box72 +\pgfnodepartthirteenbox=\box73 +\pgfnodeparttwelvebox=\box74 +\pgfnodepartelevenbox=\box75 +\pgfnodeparttenbox=\box76 +\pgfnodepartninebox=\box77 +\pgfnodeparteightbox=\box78 +\pgfnodepartsevenbox=\box79 +\pgfnodepartsixbox=\box80 +\pgfnodepartfivebox=\box81 +))) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tik +zlibrarypositioning.code.tex +File: tikzlibrarypositioning.code.tex 2020/12/27 v3.1.8b (3.1.8b) +) +(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tik +zlibraryarrows.code.tex +File: tikzlibraryarrows.code.tex 2020/12/27 v3.1.8b (3.1.8b) + +(/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code. +tex +File: pgflibraryarrows.code.tex 2020/12/27 v3.1.8b (3.1.8b) +\arrowsize=\dimen272 +)) (/usr/share/texlive/texmf-dist/tex/latex/listings/lstlang1.sty +File: lstlang1.sty 2020/03/24 1.8d listings language file +) +LaTeX Font Info: Trying to load font information for OT1+ptm on input line 5 +3. + +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ptm.fd +File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm. +) +(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +File: l3backend-pdftex.def 2020-01-29 L3 backend support: PDF output (pdfTeX) +\l__color_backend_stack_int=\count307 +\l__pdf_internal_box=\box82 +) +(./introduccion.aux +LaTeX Info: Redefining \. on input line 25. +LaTeX Info: Redefining \% on input line 25. + + +LaTeX Warning: Label `tab:pascal' multiply defined. + +) +\openout1 = `introduccion.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 53. +LaTeX Font Info: ... okay on input line 53. +LaTeX Info: Redefining \. on input line 53. +LaTeX Info: Redefining \% on input line 53. +Package hyperref Info: Link coloring OFF on input line 53. + (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2019/09/16 v2.46 Cross-referencing by name of section + +(/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) +) +\c@section@level=\count308 +) +LaTeX Info: Redefining \ref on input line 53. +LaTeX Info: Redefining \pageref on input line 53. +LaTeX Info: Redefining \nameref on input line 53. + +(./introduccion.out) (./introduccion.out) +\@outlinefile=\write4 +\openout4 = `introduccion.out'. + + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count309 +\scratchdimen=\dimen273 +\scratchbox=\box83 +\nofMPsegments=\count310 +\nofMParguments=\count311 +\everyMPshowfont=\toks37 +\MPscratchCnt=\count312 +\MPscratchDim=\dimen274 +\MPnumerator=\count313 +\makeMPintoPDFobject=\count314 +\everyMPtoPDFconversion=\toks38 +) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +85. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +\c@lstlisting=\count315 +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: End \AtBeginDocument code. +LaTeX Font Info: Trying to load font information for U+msa on input line 55. + + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Trying to load font information for U+msb on input line 55. + + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) [1 + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] + +Package hyperref Warning: Suppressing empty link on input line 101. + + +LaTeX Warning: `!h' float specifier changed to `!ht'. + +[2] + +Package hyperref Warning: Suppressing empty link on input line 128. + +Package hyperref Info: bookmark level for unknown lstlisting defaults to 0 on i +nput line 146. +[3] +LaTeX Font Info: Trying to load font information for TS1+ptm on input line 1 +93. + (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd +File: ts1ptm.fd 2001/06/04 font definitions for TS1/ptm. +) [4] [5] +\c@defi=\count316 +\c@teo=\count317 + [6] + +File: comple.jpg Graphic file (type jpg) + +Package pdftex.def Info: comple.jpg used on input line 298. +(pdftex.def) Requested size: 276.00105pt x 207.01175pt. + +[7 <./comple.jpg>] (./prim.py) + +LaTeX Warning: `!h' float specifier changed to `!ht'. + +[8] [9] (./introduccion.aux +LaTeX Info: Redefining \. on input line 25. +LaTeX Info: Redefining \% on input line 25. +) + +LaTeX Warning: There were multiply-defined labels. + +Package rerunfilecheck Info: File `introduccion.out' has not changed. +(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0. + ) +Here is how much of TeX's memory you used: + 22532 strings out of 481117 + 420388 string characters out of 5912367 + 1009443 words of memory out of 5000000 + 38987 multiletter control sequences out of 15000+600000 + 431901 words of font info for 83 fonts, out of 8000000 for 9000 + 85 hyphenation exceptions out of 8191 + 72i,10n,74p,868b,2038s stack positions out of 5000i,500n,10000p,200000b,80000s +{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc} +Output written on introduccion.pdf (9 pages, 192492 bytes). +PDF statistics: + 208 PDF objects out of 1000 (max. 8388607) + 181 compressed objects within 2 object streams + 91 named destinations out of 1000 (max. 500000) + 18 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/introduccion.out b/introduccion.out new file mode 100644 index 0000000..e69de29 diff --git a/introduccion.pdf b/introduccion.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dc73bea6383f9de6b3a5fb86659b955c8819dded GIT binary patch literal 192492 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

b^cnA*?@>3$-kv=j z`WA)+`v}(K-sLf(h|a}CP$Zrt^R0*URTi*LRlSdpF-$0$z64D0M@bpDKG*)rltP*M z{bk8S{}{#20rQa+j-I-oi)TiCEx&+sTvZ1lp=F`QipoyHDVD74HmCYM3A|A3&&kZp z1M{ViZZ2xj+(|c{8}#?uo<`E`2Vn0Iv`(YT>#7@`$_A0IzzJS||0|WdF9@ZW$UoV& z&WOx)AA2ZSSzMEOwY|V1Wri*{4{A$0hsO3*iJmrQa83O?G%2gPeY==7_5L2;d;n2exH0BQL}bmaBU zq!LKddPuUW72dx2GN4o7_ z0ub;8@ZE_>W#H3x?V0n4%DfpfshZX-Howw^hxU45=-&q?0HnSw{}Q$RjymJ+iPzT?-`ZMSClpnADA~>rg4=YN8tN&I)haGu!sD)5XV) zos())bznnBuwo{Y=bb1Wwp7Q5gmo-}`D}45^%*w}%y|_fI@E76zm4`p7OT-C6_dIi z8xUL{5HrIp4QGW$pGrg5W`v*MYz zv11|hD^&H6Nj!H0D~>692wtxp5?t24?C?pN3q+NfYgMW*%$0!g8q~rt9-;oT@=AKZ>S?p;aF9&OTc*K)#}HXTqG9# z=%V-%uvP&Cy502i?^cVGCM$-U zi8e&B#R-YhJc%!D?r-W9TOmgGS5YSGv+;!APYVO~<+I*F&i3DCL<}8dBh)D|A^jkh z)3*A;AAp>kglH%HY4k8fFhbSlP(0@N1FR z_Y}|R_RE2Z4L~aBRpjz%eEdn*_5RuMMZK$;D@BpDE6TU4b8fm%=wOxHn~S6Y7k4g7 zVV-n=$YDI)n5qwoReuKP1J&CYq3gAj-f2P^@H*@^kK5RNM%XwLGpAcfc4tvhS_H(Z zrGW@dr^hoAmbY7~B3S0gK@dkIF-~LhSEmpLy8-K?hSTrOM2e^HS)(!+cP%q^eag!+ zbJmMKk?YDz`fO<@-wSV2grU58BPB0N)z^x;8eq?09>96Cb@c(SYO1}QpzJ6)SQ4DO z3Man8iQM=Zd^8YRJg@hDS@^g#JU&A67K^Ej984%(h6qcd6KM`fMc>7sP^oCci`UTG zSk1^Wb>c`dOzAp4A7L>Yc^#*Nf&2NbA3j%rd$6Fby1;R~zq5lC#{1}V>B;oa3yEL}7WhgTq2TjWgTx&)ttk(FWdRHdY}|9J$$QPPJk zk15c4RwdghlQ&AO=sySZ;~#|bO>U>NQ7QKh+#t$SQc^|TVKfEN;(H1D4)a=Fa6^k? zbg;UZ4FYII4UXEP4*QJg`js0?GS{n#D=QQgv#u@OO{0V={oSu*T>@ebqq@%CyrnC0ug>fG^MxY(^(1uWC7`$kKgNwQ#!z1Z-sAwz6%xfzZGhhQ!$3Z1g*Hwebpc`D{CQ zf4k!e2-y#6sJ;*wLPuQ!dPBNFxNqZ^02&?aT>_MN2y>^y2|)=<&9@Oi7;KNs5{g!#CeZV?0`bAH5R<9f9 zcMz<;cE=1(TvC1g`i$hshsUiGYU9@uVRc`=IIMnqK?);08p2_$$GqP4mm3sb5|7+o zKa5kgtAb$r97x9-4nq15z3~Dw6@e}9+NN_>fPy3eGQy$X{2~viv*x-)*ZdqfP^oyz z4kQ=>>gSGThsU0PXfVz_>ZFbKzK~9iIf%^CPus?-_eIMd)vi3cDID(E2Sy@X=7|_l zbKfP7zuPn1e{S&@MKw+oLxkj8GkGS62|#MCmBv6h*7p(~XKiR8tK$v=_e35)A!*Y9 zv-8OUi1;5zk352~qD3x}J6V?(K{(lq^iDQNaQJPXpj?9nAd$yRDtTe8A=S#eL}sxk zdF@EAmdcdU z51*f>J3PET6*}3f!`@Jx?Z{57Z<@l{<#-90t34e7_m5(4;v|)`6MT7FP+V`JM5UqU z72^+wf|#;pLRCs1wD=v}0K60gcSRwpZDV!sCfs1>-eEl49 z@wy(e3FUB-e|q}(r;+>=Rn|sRUbUQl{L8$mS8IsE$5|9zlWY_TKN53BCw^X zgMdVj$=X90KPCw3x6eZx{WU{Vn>kXTz`wly1R)jsRsm4pnEE;s#$zplyRQ{QNHu>6 zs1KBo5i^7}JiK>2s+i62@i5(kKW&jMB-oWd-HQaFw?Bea#63nuCZi}2zxT0gsmxw@ z&POZUv#JK`hAMj_($B!;D;`B|F>z;|nzyzqLrrkftOsJ300X~^x9Z4zBAOzAJp>NUekZXkOs_X=kaS} z+iDL$3lq4rD}IEahOE8naRnS*gz1*bjJt#JTf-U=(lwwL{Uq=x$4(z zIgad~cvNQ>lZRBf-e4Icht;m3I<^Pt;^1|oy@zy|qm7X)Ap1O2b#n5)T^0qSDrzu8 zKja2{g?K5s?^YGZUmZPaP~GZ2#X9I&7X>a9xrcr_+mM=M8$Y1_JfuJt6B|$o(Yzuz zqGy_CTPPkDn5wKpW8mUR&t+gOr|~soa)D@*hiE7))cynTfg2j5D z$~uY+I*?FPfY`LaloPY~f`1B3z9oV|c z8W8X5PBH^jcO9LdHN^yd#NC`yBf^NnD7{)^exI+#ZXqj+JQiZ7j@hb_wFv+Z0SkTOi~W?V3#LX-Ri$ z1tbj3UCw3WpUt=g{8`EM{@!9hv}%p-hu5aOL4+T&|Lm#*_EAT;nNL@q8ktx<>sI!+ zw_nvzUeX8>FXTKjy0Md9{K8N?@y4}o_6f`=RuupB63_reD}ovn_gB||T!!zru`(uX z7`3nFUib3g!b|;lkSeaF8u(XxX&iqua;U3LZval|!9|2A!%9GJp%h}*G2g;ylMr;I z)(#6EAN(?##NkEFgyxUk!CO{jL>gZKAyeK5$6vhZ?UKffFf?wOMvm2mq z>u8;Pl;d$%`(r|@o^vC!xf_7UVf+pmlj*--G(N&UD{SCf)bUR}!=9O60$%zIT|9wZ zkd9G|bRi87H1`Og_o;g1Xlv$+T)}7PP-J~S=KBo0L=&C-p+YBM;&D@oVZNDVmhK$~ z-RW(z6y-H35+w5)H}c*k;7lvN8;Df|6PU)&tc4CCG=WyejbqiG5k@q8VG9U(}BM zkz>Gq=R@M#TBj#~>g$97s>Vz@U_e-Yd#EKQ6lL}hIh)e1h~QK^T z8AgguYo*2jbF{pXO`4RdNYl4AjL$EkJGn7d=pPqpi-Yhc^5$~P;(%>)e{Qlf0vL6= z>~M5jrB{uo7XFp%2LAhTdv%@l>vzO#7Kl%2ET@?Z=6?MlT;o_NXz)e0x_4Ln1R;)) z+bOck#XBKUz48TB5TQG`HL-31`dTn^;8Z{^{F66<&mQ$TUGhheGq4Yo%3WJJ2;*46 z$r5~C77)FG0{%&hMNB=3&}+>TR8%pm-ED{>~HFoaN{x;4VY+ ze{oRk1EjQHfr}nFScK@XKrj5vVzggs3e#g}1&^_>!JID)ha7HVhzc>y2+3x@h_XFh zucP0xv*A$_WarR36Uj2ws*+m` zMQnpCyGyU$mtxF=PVGmHKFFJ#kuSk!DF`c*k;#2e_|estOF$LfCE#t&iHRzb4#N+| z6_%sD2(anuI`BevVRmf#cofH=h&Q#s%3lKJ$&uOkHwRujo&e#(#DBMlUNysOG;^Q! zTmnuQ&8FB(anF3!_Xx|zj$o9U8)3c^%9k5zM6mfb25FUZne}46Vj5 z;Z~=58C3%$w%b8w`UG?h($&MRTMk=qLw6z%(CJukzZ1S5gDTzFYw63QS$7D!k4+RiVdl}xwFIfo^ihfDUJV?5Dv zAAU4tX@wrWq1W~soNVp2=6-PPI`g9|d@sGecQQu~t=5@z!B+`@R`ravhuFpr^(7-iGgoxI{2q)!@QcSo=4B~&XkTd?gD;w^1wdR(qXCQ35G?} za?=r~NibYDxY5k@1P@J2<(GeVV*R5@_gAl>Ru_xK=yY5 z!n7rPOWqGN`w`-Hrv_OXcS7J}9tKUbMzx7E^L`UbW4x)KsZgs)U8pAn(*ukLUCrKZ zLXO0)CNwGy@r9h{Iz>=@mc0ZJS3jxF{Gz@HN#cI-lY)x=641B-_xb$A z;zepaQc10TyAp_vIMPwa2E%2J;IGa9rJj`jD_xB+J=%_f_3*(qnL+iSiV zMVHim#Hb7gxHB5~(8$E6gzvBk#w}4CKOEvWdVN2eip_4!Yw!}_3!3ZeU2RV7agQX$ zY#4297UAngF{izIp1YI(a>$gKavZ}VseZl>mV0YcuBa6>;s()Dt`;F3edWxS94(yUJ3&fCQRH3>j)RFXI} zwHFK&+m+9zyESD;Gz_ljJ+^Gja2@b3+EangdFi0K_V*C*c{n=Z;%(k-*U*j3nCzB&a|!eir14Tw1$1hLA4 z6FQkqs3C3r+>AjSc1h*QL=5Y!hRNQQm5xtWFGM%z^cdPxWmVd09spE})(@XX-o*E> zHiLR#PtV;BL{O{<@^}=uyHg-_(2@{g!GQuQo|XSJwSG8IZX59~cb`||_O}OiJ#|Y7 zj*INCNU?;_5F7R(RQw{Zw0SJ@Cd3Y*_D-$TQG8}}4IZP$i{cml7@Q{FYLxu#3E|(C zzNpZ<>6}9VNN#i(q0+v?`8|Y1>OiI02B<&vdF$4*bsJULwZ-b^=Le13I6hnLbj@Si z1?q5jMY*_zIRiiS{3m;0_J(3&y0+baX(IqIGmlxNAxgjXeC>v*Gt9SWxMOgn?NZ$AYP^jFn}u=ZL)mJfn6CjyzPK zr^6>05`sDBgkDS?zXZ@8U%VvPqE}sby6P^>MOZ3M97s$siOZ$1HQP%-G6B)H6ELq< za6Ta_>4ldkn3%E~1P7Alk~*HU^b+v7VEg>%Aoqzh0g*oY2s_fthV``*z_0qb0FZEI z?+~x<(7X<(bzh-HZpO#7t9YOz)bG_LP7IRpsb|x;)3XLJ3{e4w`3tr_5 zp8J?-9&|V0ReHp%Y_Mt(dZVrd1&)%4WZAm})G&`8kgQ8U3AT}vJKk|Bkl)ZMc0GN* z_?b;>Q=$v-Q!`&y@;kGJU!(-k-Xo(%g0sKKS9f*8grMBCp7o&=lN!ShDKPA-cFO4( zb&Z0b#kJ#|(-UA`+0<8cy4Q6$WOR$M;Qxo7+bb~j>R%`+Due{wpJ{+yUG`E8&U!H7 zRc!s0CSXV?E!K;%hem<`JMKJeA&MLuv72Q|66nO z180gzrNg9C8!`3~(j7I+>{@=~ZG5t6Dq!X69S9KlF>CYhGq8We&i>LhOV$B8_63|0 zCZGy}MpljR-7VM=gK_XOl%GmOV`h{RPih*3Y|9&*a=~?X4=x59gf04Kli59wG7KaS z+JOB>tMh$$vBL!tMD?K6*;au*dB3~C?st7EsJ@j+& zv7wyr%AF!H*BPFOb4mfl?e+?-Br| zN>2p*Z#nJ#q>o-uI5S|@6OpgO1Tg(CDukUrk`on$}jWtK3<1C~vU`${hL z$^G@iC-!A3_pHQmfgfR-ac3$tQbEEGW4Q{p}bX zHhwHXY*5{CQLHkg+xGY1vMsq`7Z;}R(Cq%kmZ8PV0UDSN6$b5S3vX(EaR?Q`s_iaV zCS*-R4f$g^Q6=%-JFL=~n%?3v3sH15a^6)c)g^7eULSO`#k+**QY~Ooa zhxyd)YwUl0KmThMTJUz7kf7L)Km-Y!i!|hj2#%;fuNURp@V`S;r~b=S?awOApRPya zBVNVKY~bn~1=uy>Am5J15!^#bmDtA+#q}@Tvc^cYH^2mWmm6iR{=7|QJ74^6qMaQ! z9JsOUdO|5xs$i_{$~%b-6GE;yvzBeF!lYEsY^ff_#kj*dNTkGiKO_s&y9VU`0EUoGd{b#n=uTH1GU(*}3d(lm6Ktft|T%;aU4fSZe{=LEcR zPFc45FG={F|4r&=#e*8!=<1`JAL?d=8e=|HI#}-@mvnp|Po5Z#=!OcUH5L0U&JT!B z)ZQlMkt3QNcMw6)VT42W)7HD@t9!Z{M`ru&jSstF*L=k#aI9tSD^$~`)E%~7)2@vv zV$^m9K;X8cao`(|5A8|5bP~H!Qj+yAK2425*(L$gUun$kv9si zH(qeqAP?}VWgdf%W$sMccuHvm-0*+vnxgxHKiaxTVKP+rrLod1TrgO zPQQGt?92&UqF%25DEM&(0imC=I{s?hm0yQ59HU_9Ze(^JAvhNL9>Xx)Zcr(VEkUJx z)mD2^%0Oq~43Zysoj7&m;kct>Q8j&Ct!xTf1w#J_E&a(7!A-UP)BHQ%^NMQYr$KJ> zA0v-aFS;bH!#VL-@PEljv$!%(ru%SG7_mjLVCqVNlwX2q#l4ISpg^_r6> zuOat~E3XSMweeSEFF~vmPyH;mZOhw>7r|}52N&x)OqPQ@|HbQpl?bYI1Kv|TKeT>2 zJCK?RX9@&TKwJl{i`r*#24zET9wc87O4ILO#y>zkhvwid${7Inr5K7#nB6%HfA2jgly!^I}+hYT7neiH4hicNL=Sq!lTbH3?( ztx_azfa(NQdlU!4ZQl((-$Vqs;dSa!jDe~|h zhV321${baYcrVAdwDPK*X@{M)8;Q%etfr$a&Da=S)cu$JAAW-uWP9OFde7aO;b>RP zPvl0gE!2`B*>Z7kmHM#ptV&??%eaA0#oQHhAejw6|8YxTwdKD;VE_nWulS#Rf@j-! zNaXWL55hyAcIfr0U7u)YUbk25IlrN1Uy$w0{Qe`scT4sV zyJj^!if6*KO0Qhk4}dM%HXCkJd4fbgoWF+kf~oF;z|3kOZ0y|;+KU4zvLVX&UVSlh$?d_50)(Vic1ib@RMBCU%E^j!Z- zS8@OXWiDlHgAg;!x@PUauv=Vhd>mKyzm#-Lw2z|oFdiSEau|V99mMUCDz9|4S_EY=x61NT z{yxXWd;8}RQ?n&j@x3j!Cv{zwPR!*_{JSH!C-XlMC{_>I71&~Fb3Z1BSr%CCxct)* zQKmsiAGno%3AnLDa2$XMu{@AIbmx!3_-`7B{|->_58{)5i2?tc??XTb%!CMF(nj-B zb=N)ciU)cU)@z9PaU->^JGh52EdJ$7z1AFbCD>+C^;VHR=9z7qVYmv1hot0oz|j!9 zh^zBHK#;HnzeL0TS0YD$)rtR)?|b9tNA|vL+5R43{{w5f0SDDbas&PozylwFV7c62y~N15 zoWb`S(ga8v-`fo4dbd%jEmk`Q15aq?WYq`(Rm@r*-R>Z+(bYHra9Q{m^>4?1%w~kg(K{VxGyB;<5cN)WBtMF)9PC^=XLozx;9#jx>1_g2eOv9iIlw^Z zEz^X5u%?fW{c9MTniNzWLy4TV#5AJR9sUPp|dnKrkdpf=lUOE}(|52R_xT5$Tj-stv90OR*YVRmG&ELN)$_dj9`-lYcbKY)3q!AO)qQRFyeRo72^#3;Pg?Fst zJ2(Y{eLXH7hV>e~anh}q{J41Xa9I?^xj zry*-!WJD1WrH;t<{!Tcl5QMZ18;K-ckL?V!^$YS$C6l5``$8wl&DSv|`L-v{+aS+R znMNS!HS`0NoEu^tL%P_%q2F~xeu0B2l44&!0?Pv1+|G7zi}so^CFoBVOx1tnJ>H5` zn&LiUt4)(s6%AdtAmyY_;hCoaT@_y3LRoB*&X=w&Hy)NEnHJaEKA*f{@s;9(lK?=9 z+PoPdd4twA^&qjW`6a1Qf#*f1eG?DfDPOH}OHZ^L05ubnKn_G@7@8f4+b=_pdG9Ji zW#AYrdfLjd!c+A*P`B*I*xn2Wk5^1gOL}^7f#|L_*{_M0PagcDNHkuN5ku8(5`?00 zMCuWoYnZI~K>3TedG%vnq!f=5aG6EulzGx<8#v;X43-nj?Qkn|+ttTlYlX9B+?a^= zTiB`0dzh@9DJfgzZ)cwVj;uSDNC6I*otd$k_nu7l7%9&Rk)z|M{ER2+b8gkO0>yw! zT`P)P%L;?vJ5Pv%)GlAdAtl!nV$NVh05EtAEl-u-JW^a%pKF(=0k_LG%x(#o)Bm3M zIPGE5NvxkqNRah^j*gI|KnLe5DhesMsTd8jfh-8FNmq8m-v-kmuvr_AJpp8Rx9Oyp zGu^52Tju757Ll0>Gw~yvXoF0O$18>}9yU2#v^gBlEUGsd$9&v;M9|@bD+M+JpgDg~ zR``3(>Ti3b|GHQHUp)^f3_0;q9{5+h&%=%cmAC0P;xfF^W)pEwK zwTn|8>Nhr|IcF@y=Xkv9bR}1onyAu^qj*`(mJK3L1NzwW{v#)w)IE@U!887tmbb!+ z&TO5U-|}gMnoPnT6Xc{kQ9gUnA{ zbF)H(G6P4^upk3S+Hn&?d*FY9rUY+Hk9L7??E8ph;YcwSm!L*_s60N%2*9Jlh=_a` zo!_ms6#r^sE^{^lgM%NVPA(2mg~h?WtF?-63nyFY^9Q%k=BOx34`w;H1-0}u`-~ek zd;_@mw{GhF4p;|xzqo<4h?~iX?)A#Z?1?iqx@qS_u51R5c-4D;HkPV_3@HExSy}jG zQk5mQR28$Kf`tA&f;3!%+Ob_%oGbpPS(17h(q%uoF)KV1u%F2CHF#52A9nImFQe~E zSoV*0s&Ou~@Om4^O1H-3QQ}J9(8L1<&1cb+WE5^CfE>UWVWT|dTEk+COgJm0b=BX9 z3m;_ux71KQvgiW+HnSq&q!q2Eh=aBG79_b|s6h%TA<9*IvYh8wH-l4PxY%UTI3!y2 z-9+&NCCz@&xu+(CH6b@dNp}>SgY^0g>F>zjTL>r=qg&TKxcA$ig!GdF^Qua0r zB02f{w+okypc=#iT>5it&BA8 z2>Di7j_aNbu zQQ>{v|5RVgCI$U*;rdU=wZHDv|7(=^=Vu7zn#9MJ`& z9zOx>_^_Xlz~jk@;Y_(Ise-PI!-cZL;;GU^99>iNc!3I!c9Jq{i|e!0blarh z>6HgFG7k=#c@ICWIqm|%O)qSZ=~3&OpM^huthQPGczHj2lmK62h4L_%0f>&)rEd&( zVVSB`9T{b2Bm*RU`^oyEDfLe&xBkSC4V97&vMLQ8hmjqL_@?&Pa!+)i)9;AE`s-_U zv*#nE1y6UAE3GR(t~U$2*A#!Yd^m-q+S2gV(!X$TROD<Y?ZrgQLx&R-7DK z9Tnx864o{2q~z%PN#nc!nn1`c_5nOTpNP>T`72el3aT8*1D#8_;GWV%wcGWh*~~YHD^^~0we*j^ljotrX-uD-|&i{@<{U_peiJQJgOL9K6a-ran`VTm z1_KuRJ5y}fl9D<`ALuGNpwIx!sf@N{=s`K1_h+B+^KkH0z-AHr{o^(c<^zve>5;1#$o5L~38@&G6KybS|1-YmZBGEZ|S zq#{W-EZGAfgdNIvh`Gd4&Z~xQWaQx8pfz2;sGKhZ3WCO09BARN^~x>`_lz_)xVXf$ zDxgjKM?&V#hI+*z44;M&1k!I&2xlls>#?-@u2tGaT4?{>`+x>hzS@HHrL3l`^{?q( zf4QkFsh+!h`34-Em^D8i07x6uQXlpL6G$6nPug7>DdM4Ys^lVE?r?U}I$cSBvNVD* zjQSz*cuhZdT;BKmV5Vm#*{H_j!{@~y4V!R6F(dv06%PLB8r7Gf(T~gGfWtpB?fwt^ z=if?3{z7f!qk2T)I<>ODV--HlcWD1prP66+}o#XFQz zYWl=_#{;<_Aq;*FVWXn@!x z;G+^YM58ONL5`5K+3bIRK#iq~e$_*DoPL>1g(`C!>jBPXH2Imo?ow4$Lm@4n3ZlqH^0$NEz|h^hV* z+)J8p4Wfj*WHCBGYV{BGH`s*|2<#`*p>JU{&Yk>ykof-R76~GjVgkh-1ouO97a@8` zpWbT_ibK8DeeERNKcaXI9-=pU=Vs%^c3k#UplyBC#f3$LWjza}E%VOS-C(=^=~d!j zY839;=xe~GM8JuqxE=HC(oAk}auNx373~`&4Yx3)c(Z;?RAxzn+7youQVYK)vQ*P*%>a{6q=cgx4Hj}b&7qXBZL3pe^;6MM>f$WRKT|!aX_02ACm?_JXR@FMH?08W47zD1+Ap!92~tm8hxVx0$_V}aCP-5mU-x^n zA7JqikcePdj_y;Xk4_NbDQV=G*8WnjvvE;_D$$TBs)}AN#^>tKI5!P5ttI;-X7vPt-Z0@WK`4=ZAc{Ng4x4 zFg+SG7m5^E8j|HC=1)j7q$eP3f0F@H`jyuWza=9A>r@tA)QE!DGbI%Himsj4cP*ie z*DXHfw$6HI^!taXfsCqXTH7 znd9i$<+h3}`q;K7stf>`{8Pfmxgr1l`a)vxTUqw<>IQfZ&_x{O8rtDPe4 zY;aNXfBICFNidsbNH4rr5lvy-1FjxPM#l6r@gijE5jLZJX`Ya~t;Svzt9A1rf(s<(=t6J0iFFwPrkJC{3O!c%ynz)v; z&jwZSl%&4axe*xtlSAqCa{XB?dW4I-(n82%3cFx$7PK9MA+s;&Y|==qs$$fA9EBZ1sZbkv z1Ea}TJE-B5!4R|x^$I%@FZ`Ta&-$m=9h=QqV&B{mmQ zm*i*ev%~Jyr6eU@TDJ8}xw7j8^~^EU#0(1P><`XQC5}%y+CBo>=nA|B@>dhVKVy>f z7+s^l4TU`?3xa*3a1fyHl;+$}>F3D%9;mj@B3;IXK>lxy@l2Pjk_l=3?=t#Op26p# z7n~^jEB>c`8+IoZXsyl9uDlyCrh}uMeY)64{16+qp_u!Y!qPX6xt<8`fl1owQAF$D zu(EbAS`hI$J}S?C+^Kf54u$8QeeApaF;kVH_MS3J#>{e%4I6)GE@DpXR6F1rB!u3% z@{YdLPoMf_!ec0EXjxrzk*v2mO!}AyvxV8+ssm?_QDwg6_EW=b&K4*TFAm4HHC?d-_io(UjiI&>5VKb z+`6yK!}jjYTcHF_so0}XX&;^cU@rc{JmtT2>i&;vFT=>JxK=jA&+b$iZe#=8`ODr+ zRC7RSu}IMwZVUepikC?pH``e-1pqtkq8&25iE>?EjPo8%A7{lv$lyfHMI(PwOFS?M>!Haq{8XDPCNvGislmHE886)DX-R2(| zR`^}10>m-}l~W~w&ugQI$qPEv-qkad$MADZapjBk-EO;EiQQ|Bp{{e%b8E-bt{+Z5 zkKEkW_HdJpdrf)1+r1jebOWWf&Z&We7DB{DMCQ$XSu~YYYcR;uc=38VYO8vXEm67R zTkV6cZQp{AJ3r$&>1~H;R_8P|e7nn5l{FM0JKLAkB-WXmf=-;nryo^shkEaPC_g%= zuPba0J)mhhy$11$wxjhg{4lRu#SvG1a0DD;2cca;tD*A5h_R1nEtwQPEy-IrUviIo zxOKQ3G@4u1p8?p^!k9iw_vxSld(*>amKK&eWp8EXFoMvoHTD1rvYO>{=SyHmf&E1% zVDa9T_?MLOkL=?g*WLZ+O*30(H(^KifX)krtMjG?W&ZDM+~KjhZyLTmYas)-$X?!+ zeODx1<6H6EMG`+{eK`=wh}F($W!bqXk5glj!cU)<)Y6CIe)kb@y(l288}ghGmHAQG)g2w9mrT_~b1CXG9&HVbyvH#ph`-h=z z|3(wze-ve;{|V?2RKaZ_ZxoE76lk^TwBJ-OgLsv#{5)!S5fbt(Lu`d7grxpI6)>eR z2S{AD{FMOqd+nV4BtAcoQIv1@jW^<_uv*J0YHBM7P1gH<9AO@;68?O9dZ!fqPQ5?_ zeS=V2^?QCx8|~p53MSe&uA8F@Pz$~nJ-r6urpFqes&uSU7i1I6IvK0jA&fL zrg>IIv=dZKSXmQsr66tWL-ux5=Kc7wlXP3ZSMS*vSrnBCffq{cN4Hh(ZJVj<@-$B_ zGpZ7G&wDpTkCH*Q3w*nGwH;2rD}2sUNf+$iL{uJ)Ua5j1eVMFb>yU^?+n#NVv1u7a zZXHq~5ih2dm#MF`=*}ub0X2;d_-o>{gf~);cal&e>E{CSaIo0zn2O|4PUE((p0m(X~#426`3%jIxu#W!gg{X7WU1)shjsO&UplsvSbo%3MC1B?(q`7%G@ir`+adT= zUfk$7kqg@#;i(1{(CJeG;;-+dS_yK9f{V(H&kEk`uGTsBPDTo6Oy1wGK{|I((-0h3 zCm+NHd|Sd4m3s%)+o_ZwR?^yc!LNG?rAfJEcwOj}DQm>7^U6RdLPTptaobG|u0 zARwE!_uiN@OOLE*DQHwUwhFBqg*wp6ZIKf!!M;e(PaR1*6O9X|?M72LOb6{go`8zU z>bP#}`kzS&kj7^<^7gL1M{{D*xuw9?BB)h8WZPuaL$P1b!H441Sd5AcAYEe$0GL{3 zf!+mtA;Dz&ekQ2VpCIDBGuJTg`>YR&_b>T411>A`ips7*(}6O~CPDu7=mHr7^t$qk zFz7}s{Dpi^Q#74_tDW;iAu=okB2T6hBLjo$;$0D zE*dA!RlsyF+y29x>aV86|8V^!7Y?tUD6^RsR-G#^FVD4i;o)Jq&7f7p`uQWG1jLfm zaigG;5tt8=ffA@NWWWVJY7vpQF5Oz|o7V%s9VlOb@+b1{NitiqZzOw4m-!6*VQ$WvN)n~FKeg7v6Xxo9EM^M$*^ zL=SP)&%lE$^S`7l2>&`qz%D{itXEdpSxAjh@Zj%g2di~Rn3Sv^^5M+TkWzZ*MJgSa zM4*H`${Jd;EWI8{l@P^meyqcR3pEZN&%%*mN1J7?>HyUk8?++I0zdgp_0rzT?MW#~ zDba80&k{cytF*o213x~Ur)HFu8v8%4#t=7sZKz8aX>L+_$7H5R2ocoTMnc1Lu0f_7 zrqYm=R#}W=6s8DnI|sAR3Qs@)^l>Q4R~jw)RBN()Bjt(J=x~FkPFUvVSoE((EW@3>tBfaO9z+(?dk0>w%Fot>KTo4Liq>6%?=3wZ z5;@O&m{GaxVf_8I$wik(dvj(7`*%mBz<=9 zDfZTEp%11^N+0;H?nna6VJ(1M>@bnAf+=k^M%fv;U4s^Mqq~t$SH6(J7EzJcpynUb z8%@s6s()JKmL#r0%Mn5PqWxK~0XPW~iA?W$zX>!=$c#yM&edTH#ur|V*C0dWVkg>L zgKSas^c9p32&F%rQEg}}RQ4%imYLPTR|?_4+4+25c<*9LT75~&yc=$#b4m?(SW-}B z9DwwIJ1HPm5Jk%Pj=Sn(DzJQ7%wkuW_t=5njK+NCBF46#^iJ0A-Qqle5zR79pRfpU zN9#w^k%h`)fU<@q5T1-_&W0`mo{m9^n_wAJfn{gI1gsh|;fx;wm3+|xJ zLpHH~_WD3SCcDc4_|gHRAJ)#WUlD=>lXb}=)5OzDPHB;q z2qdDbDt}7CP_B@$B!J1y+l3WuAJwSw)w9YPrHH$7v6~FTyuT7h8?>F-Nzr*@Z8Y{w zG|&>F7Z!k0%Dev9V3vIuxHIx-(iZ!x7r4Bg3^4Pk0cY3s%hy<|Ui*5ryydaD18$INJx7^$$3WSZBmLDR|SJ3*R zr9c_nX0nqTQQ4i+bW$E@G{IGU{*yj>ZW6MV2t{bzVF`1*5;16p>>e0Tu>p$7sdr47 zfRBQ=g$ehxypwfUySCe}QNO1Okm&M!Y!VJ{!4t%QhQVSTUp1hvk^BU^T-HvUM-1GQ)A$vj$WtdPd8y*^df9H4=22? zX4%GQ?!O$Jjs6Wp&53YpSCV%N1c&2mM32nk9M=vWkM2DD?)953ObWbSK(szeXy5G1 zh@TwmZiW4IBjMZ!Fuc@{OU@csF>+bh_mQMW=v}Po8baq9bWG`=^&3#VA;L1*BEx{U ze9G<%@1d(WX}Jd7vh5r$1q`C)B9941r-8D|TKw5}4HAuPrwt5jC%wc!3E`5GB1PZH z4QOB#YPJYbBhI^lk42N>5k$bzvC!61G(WV z%Trd1#XkR9sy6rwa7qG27H)F}r{kf~r^>-VcB%Jh{V&tW|C`(Y|D>Rm<^iSR&Ux>c zmB~4(O+u9V+*d+mf&ueZ_-pDh6pS6ossW=ZE-!2`S!mKLaTNK*GK%q4t}juSkxyh@ zOq~9O_jEyX%FM`uq;HzO2Bkvf1Er~2j{9sZ9PymB*Pw7<3gO!VGjJRO=w%@3&$F}R{X=!Ct!tfs5q<(a15cqn;!px9R+&aale71aNU0~jC1Dv z&w3InU)w%_9swo8&d3O1QWcL>5jUt1ks(sz8&(ytZkYovp1$&cawAOEAfUEg#E!?6*7E*XMU=tTfQxnJ4*{+PmN^(Wes>1_o4g@mKd>hU5Lx71L4fTIL=Pb7 znQ?$g`q!gl1pg|Z_(v}W{wF-eY-aEbmJ2X|8tgE*2HumkU=Q#aU?Ft-Xeq>_@{Omt z3Gwh@>Z(`?v{bG6lbSLFjF82d`Fm>%9 z&<~yWS7MIhoix{=oQ4qYKawjG$0W4lYFu#z0}hxNh)f(SDZYGV>t4mNXQFp@kYsk^ z#rE1#HfBEL!I}XrAMfR(*iE)_|G$qx>{odNxl#%q$*QdkJ%V1u&(26gdPSY{_7;el zm|A9B&IdEueCoqAY9j(-;L9wr`|rhWl^GKy0YNTauxQ|8OfHtz9!`zD?K?6HMXZ#t zP#MLQNCYC4##PDtAC`7=c`)}Ol}eD!0yU*K2)+TqJS-uQ{z@u%6>wR>8?A)NmQvkt1r5HkySN59Pq1DI5&6GwBCa-BGG1EByDOT1z@~^75~TkJQ5Qix znh;Y1e>u7U-t>uSr$*BvjaN~#UB9hMQ8{dg_#7a0vJ@57T&yu!HdbU@dgyyX`JDG* z>23d)yK|*$;7D+z{-Jdx;EX-duIoYM7x@U*mAqm=!?5v<=M_DS+*qnn;=J;0tI{l; z<>SEmDMumsb+AMfHS>EY?5|r6X1rHw!HeJ;*Tbt4HAKrr*vvUwzzJzXPKkXAnDjiz zdxeolA>~o#+1&h+qN__E`-j%;yKh(7K(lrFKv<7>k$_@v>;fX3q}~O#L+jkYKm=Pz z`=da)ah5g>O0@hecbQP-ExQQCP&G4X-5^bCmcJ@vecCSM)7Z3i$KNL>zwX2%Gt%9GRVRc3U|wNN zB9j`NBGzgVWa;gNI+lUq~zT-J*JYjE7`QOugMygU(M1A)ws*@V^U> z;JoOeJ5F5>x_Q~Nu-q+gU1+52<;T%8K@ly?b4ZC}^FUTiQ~3vu@D}6-#5rr8`63im z?zff@L5Iz8-c+t*Z4Hv_mBE>Al`e9SczG|G{7G{`LCcD9FKZ|L#>)HpeimBsa~LfO z-kn9-3NAri_R)Q;nGli|33{s2YB%3QHP$zw`alOi-GP$*X%NoOh6FLsThGOSHA%=-1J6mhYAy5>*6bj+JD zcE>Vo6rpiZCjcZY9R&xVXw%*~Vl zB#u_0L~ti?H0*9WeLq5fo%c2R)fy?uzV<;dHzFY#`(O#>yPsCy((_yY6N`~GB6H?8 zUh1QJ#qGZ31`Ttcz#o85OyID3?;MI^ZS2lM8Oq$6@YJX+KQv;y(0>cnymC%mD6nwn zxw4ZPWlNjv-%1d2jsk!C7Je7^(EoogEsi2>qdmd6zWOhajnS^{!(Z%v2hJ|UjeZ#2 z>bytG5>!MaLaE#psxF2%6Amoj^ot#w2x#vSQeQiOmneZ~pP(o8{qZt>-8y#03-iYFtbp2s%zsj~b8EHY%gD2sTiTB~Ovy z=dH-L)o3A&+x3NWo8xiy=flbuoS$xgjXdNZuIr_JMd&A+@FVCSFVLVLi(P>+$pF&n z(AvJdE0sX;u{vpERRnjJBjm17kU@=x*ZROyk!&aHpLy||1G(RjQBU*Rl_Lo!%A%kb zH!->Gtk_v7Zsd{VMjNTZL?HX7vz(gZy2~fa_}Rhru9AjSy4cKDeJ&Lu^_|hevNzNi zxSOAO-)CC>1AmG0PclZ3ft>)?Qis4DfW0tQ$WX$kJ2~qyoNp8RdjyQC z6IT{B_2SYTbu#23iDj?1Liw&HJ)MGqU>tZV%;pwaKM&0{eeUZ?N{%Yo?V-X_HaA6` zVQ%j1l6o;^#?ZCiRfBx;7^`hAs~xf;D|KRu`|s7`fL+fMTD!b_<>_H<;ryptu9gmj z`~t#%vCHstYZqH!A7Mcuev$kC^79`%0V_CJcv}C}UckN!-;EAjH~Yx0kKuAp-~&Z% z^K4)O3Rz<@=bwB2{DgR^fd;B|--zV*m8xI=ob@qN)rw|Ndg3ldGt+MCV{2<0EU4Nx z$91*=7X8hFS={_Cx@v8sRU%M3zk&3#Fe&!P;`aE=ZZ+Jy>5p{()ebH#ENN?N{A#Fo zr|_zI;aFk>?s2+mOrD|(yZX6#86)swB`sV}g71Bn(@ycWS?OJdN5$-fdyhym=Jm3g zWhh590@;$gWk%Spmsz>B|4y^T@-Ss|C;o4#Mc1M zUqU?L?&RK_ZCe@=IwhPalW=;2qr0^SvqFma=&rB(PNgWSFn{8KK!yK5OOJ% z8J|Bt7kR(n^%OIu)6FRA{HdmT$loXDISHF_@y&PQ`;NmVUu&dNLP$PRS-hHQ+K#5V z{i)>jclK{r+obh6B*@~#_(k{g3HP7PDprjx?pY(F6a@mk1rr?Phs|E{8QH8I_j=hFD0AU+GJ#@dDDgm9;U0qoo4g)fF2D)kt+Bd)UN6!+GW}V&R0waI;WP_u@TuDiO~(K7y17 zk$qR;@*kf!qz`&)d9KTi@$fMh*4{kw>=$NaYazjx%-%PeWxP$g;=5wz#^JNR^uWRT z6$H|qRVVzkZU4;^R{Mqg4^ElgD)}E+NPj-PoYJ@d(GJ$XB0GQV%I8~f9yO-fA90r^l(x~_-@IYM2os;ZJm)A6So?6&{$R3O6z;~cM!36VSp7xU zI@7esC~f*9G0`dMWP9{Ccv!&@H-mm~L5@*ewQ1IvOR27K$8AoYc13PbMpq(!C+p|f zJ5~a9SsfiBN#UPk1q)l+7thS^Y>PQR)-f~*&Tx7vd((q2L^05*C77OG%ECG1tygJk zQ&7o|8rgBHFjEp?AC%P0eR5oVrspv`&gMp)@|8x-f@Ao?B#jCq#M2ICPy9FBB`e21 zWj_I%S-=L(Mt$WpIC?ag!9wBrjR4oi;HqYs$b;_?Sy;%hSgGEU>at>+Na zk*s&COkw5roWmyXqcOx zqU$>`D3!D%bGULT$b9)Vg%UrjKVBod+U#4vorE%T=DZ<{7*z&WdcO@?=KmtKqYXPa zKaDqzFfwO5VDGynTN^9e+*ztt8hV4F=XS}L&8@QMUJr3J$B#>8+w50Xe2#XgW_qjc zU*_Jzynjf%0sGdO55M_*V+^NKv%A@d@7~>rS1)5zh={-0n$r^9NU3&Bnwe9OGK^@F z(sYTgrX83ar24g`C2Lbq^km@Hfyv0XzLGb?4^-E5YZ6B+!0~DOY~#(Fgzfrs);IE= z1tl7Az3(}FzWXL}G-&y}e*+{Ic-PND(6A(y`(%4)mr-Oj1ousLEbK6Ml}p`0=9|xdpm;P5vS9>(bIn9uyx=>;3su z8lzBR_@X^8Fo8UvOwOPy+TBJbRNZ2mTH_B9s)N4ESqWV|YNw0v?|7SS_Ez=yx@+u4V4Q8U zsx-#?tVLdHl()@ogy;HsX*;javk|#h$Y};LREQs;)~`I~-vWnK@!r__D%|YX zllKmZU@X;NIoyn7-OF09yC%HNh->d#4uld!zpf7^x%*@)NczQD26Wt2P5Aw(@sLk$ ziE_7o{xLm|iK{^TNZ`Vu`?tkX^Kt7iOyL!p@7<=IY^SoydlDt_E>33(n?8p7%m{^p z3i-0A`vY2d5&W!oz>TpP)lYazD7U{>k-Wxw-Hqsfv4;ENBgH#!xoHFWTd|n8**L{i zZ11^melO@w7VOffP$dyC{>Ujseg9#Ho|3ju6-5Zqw)ZpWGdhbenR!1o-^TT%#^n8U z;~RY=P4Yk{XXJLbTh?ob@Ak@W1;KC=@1Pei7$)lC+{|b z7-+bE-s+-qJLy(N-=R$~b@sbU&2>xL20CnyJbvcMC!M`{HzoRDKrnnHT}FjBR^eVH zcbM;&yI&Up8nKDcNXB)K2~Y3!ii6pkV5$wFYv$&d!gE zFk4xJDdva&OF@jeU~OQOMjV6BqY-uQTMg$X-($XS{b+8W(;VhFzG4==GpTv|vN7Pc z`yw$&m8rrvX;^Fq&HTbd*^anOzv&&T@jPiYl~U}}OXtK7*(SI8Gk%ShciNS@h2J>Y zIICvEHju)ECdB(WX4Z9AJ%ic`&BdSOsX+yeC0uO4Q>Hf@xp1FciMQ!=jfswB50&7J== zIEO3iY!`zI#gqu&Y37R>+Que$-ov$jIrhXx%*!TBv<-*O3mNW69>qS?l|aK_z5Z3c z&~1-Z`;fCdV#YW-;`w_1jia?e@2i1@$d!%>dV5fmUoi`$^5r{E{EqL`K94>0CDNQ_3SqYoNtZu>eSg3 z*0YUkt$E|@IbH$WL!f2hr?Q1~qIYTaiM)0vv&eQq?oc;bTvc)1O&&y4G2S-_FQ>r}VjoC)j*i!%e-9a`d{7o8T z+2xCDh3H}M{I8N*QMFVg<`Nr*(nRc^KQ=OS{M?e)d%iE2M)#FDe4?UhZlS@xbuPKzP=h@lb;f=R&E|5 zqguP9oPC1dyTz3DivAAA<)kpeRx}!Fw@3TCFbI(-BRJJrQXRD3T-U$ViK`*-Dm0nd zZkf#wm8c=LrHh&1W%A{cG&mz^RG!~olEDReL*)6pSx5NZ`AZw+Ob_kOR=B;>#nD@x z4Gd+faCP6i-8WC*36c)%1CM=rCku{zSSY|LgN@ublnL(cKVD~1@V04O!{JPiO8aFO zEJIg~@&(tK$+UYeE|1j@+^aH#fYzMEui75YO6Q$0Vre6xh%0Htv#;lwNf_1MPrBf& z%O!Zg4u>b+C5?CDgB!;UUM*UU;?1t8b-V^Nk<~NvlKo?uy=u+OHQz^qLAyGGlZ#cM zl65MU+OLUNk7@mfzHkX%$R&6OL&gc>4aK7qF1TQGepWOexFMbcZ)S}_B0eTRnZR2w zGMKGw+8|C8oSoeXK_;{5M;$?#d&_tCXPG@qB796R2dYc2+RSf-KCfK*_%W4lD&y&% z{8a%xyG-)>-{;k^ba>(EOvtN#pP!HKPl=kxE6@94eEfvG|CYw_3k&i6y=h#VftoA5 z=-sxH%C&0g55u%0#LD+?y-Sd|J(jDG@zkiBV1Ay;g^~T;?33RoS54lQ@@BK1TX=k} z6Z`HqVy^81|&JbK!iG2xkZn4rAzjh+~$sTEdR9MHr3{E1K`>Wau^;dPbCMDvc0kYRY`g zSJId6nR5!|q&d)jq+L#vPh}$Q#`+DjLkqTO$)K#&AZQf z@%#n0SYM=;s^Yr6OHDS7Xf+|G=&$7_3M>-prt2{aN_w(NA-2YDqZHAtyCz+NWPfq%X^ka5{(zQK2n|?!nj~XK zsQ1%kmpfq)x87<}L|R&UJ8p6?bDq;J&pdS{h1 z?BJ3bcE|MEsh%Nn+xOU`*9&v79_UpqLp$`z{>~?#{AkuZJ3+HhUM+a&z^MJS4j9*Qjs;ER_Rhz z$S{+V;hzgmon0MF4|ei3KOG2e-~BDx-9H{A;+;a$(@zDiqkr%L?x`fl-W2!V`S96o z0Y+zV+FlqbFXitvH5Kj;C&W5k(hFD|az0rI9 zG6wctDi6Rnge}JN1LdIh-3qP+S}u1-i+s5a&RDZz7prJVc#H3(Pwmd_K!sj`$&Azt zgrRcjqe}0dA=7nBc|(JlX+@G=3clZ`sd^!wRQH)C7y6zCleF!D?;hzDQnE8(-R#1i zrD+OtbC*(Ig^8PDC(kwX4}7})wVx_thOxTWhgA|R47x4qRp3~Im3P&NW1RbM+CiUXx$d*%NI%FKfF!@SH%HL*|uBmt~PG`C~N$k*!t(@)VT|ueoce(>F7I z%@^!UBBGYE^;;rN3eu`^22+U?bk!+=(QyXcMM32TX-(LX`mN?qE^3Ni+A9SqA6;he z#Yj%y+l=ITsMAery&@;uzOj`0u2RhZ`CgtxdL!?(Nx4E1y_7R+`Jl9o{ijcTW7&3J zv_`E26SK);K>15IDSJ4&a_`VfkyJR(yDdP>;MjT5TgAwhg&9AJ5UWk@YJ$Q_$bDbBs}X z9=B5V-8w_i&XI^fowlw%yj$pofw7nyp5DnEJ)e#wuEaB9WcueQ(JzB3JnqugF5a<~ zhxgF-0@Fy`S6j6TT~x@d{P%C zZ7(<;38Q5m7ge2ascdY}u3B-9lnR)ET`eM4y~@f}%-SlOBufM|2S#jt3b9f<55D_0xy=(b z5+5Y(Sz*sl`v%%#q5}vh@>|@JZ6+jMKKT)AO{3*y_wjgyQV^NRI`#G&S?JwwiXSYk zdOm;x*rTW$=Tue1CHU|@KRw~6&EC~3VM$61C=UZ?{7(DM>G_Nvx+!_FFQyzdkSuU= zpMBgNKc0A4T44~WlX$fiTi35F9$mI7JBZ8wT824@BTw`bP4D=Sk0yU+UY`^f8_4A!7#XK zj#3|pKsnzCnFP#UKR!89eFyC_^C=)oM$7QX{i5hq?Wr<#*;;scNZ$OZPa&Cq;#sksUbza3 zWvRAegEYIs_e0^2l`nb2=Iv$mZO`i%BFp8kr>Uz)mxD#=_NiMKAKde3uNXqw>CQ~^ zxXnVd7b?brEcEH|A^DHz)-DDf=j{AAdej|($3%?2VD7w*V?LJiq}?`4&iCQbDP{w5 zme=G~zmuY#X85eO{N#sR5j<`yg8zZt3yb}g-Sgk)7Z(ut^DGd!&o3w_DD>yMg7<;= z>(4=#kg$N*-&s44yTsQtS)9Qq+&sQ}1J7Q_ck}qTqO-vLM?~K;V`xi&n-3Aw{U*HG zyDUJ%43xlpnfVHSUFl!h9KB+-|1lu$Ye`Ol&g4t7M!fW}mmTUAT!&>&H$ckP)_&e1 zAbNT>PI`I*I_~n6@>1L%5N{zP#&<+hREI2x%3I3R?>-&Gs11EPXVs)V#M5+p1*&>= zW6lq6&JTZX4#eQ(gucFw*K!M#|82>c8)v8tgkME|D_Vi`c7*TOIitm<_OoB3%pohG zI2|LSqr+%hi6={BTb7O%J9wHRuj+Bc+db>}UV-dFxt;zOW9JZ~3mZh~wr$(CZQHzU z+jjSD+qP}HZ`-zQ^XvI1lSw9-S)5TdRoZXg5{jI$G@HV6OeGi!gH0zeEtdY7F@j=!a%FfL9L$rM zYh5QWr+|^#ULlPLb3oQ3u&f6~2pz=vlUD1Z9>{!Pj}dZUb`r4X{GUcid3^O^&Xg4v zwt;kHdSYsI0_Ts}6%a_pBvoUVcNYujbPnAw6q`$6u;Js(_KYq5^t2%epu`>`0a+6= zqgU?z%~uH)Q}-`z3cB^x{lAz2!O5N;b1O<&>4sv`@d@;(S4cr>UCe~hDW5kGfM3U} z!XHG+{9htkT}s(%!LbI{5TMpv+uR+YN0oqoJsI@JYNdivW!{sO=5-;5$A7LZz- zIvpU>!mDixmcMEN%po;^A;z;i<11*UKR$_syn#3Ia{>7=259Ec?#}n0l;3lt5R(&B z=T@|=Km3mYxhN=q6ax`qDIo*HLbBlpX2(V$_x-%?zxH^n&D#Q=-ZkrblF_m5B^w3b z`+6#V9o>I*!JY#gpg{KnqALRpOJG6fe~Vp3IqW&2(*>`8^IrfKlfQzQzse`S>KDK1 zi80wB!}Pusk`t2)Tl+WXRyr`=ZxCZOr0XZ9?*z~<^|d@zp2e`{LFS;rPSi*3*BVwy)*i2e_IaoE|=sj0iIR z#Y6@`{(7B+2;~vMwxp6bg#D?|H?e%P>wU*XOsiKF`CE?N?u|#MN-qaS&n?o%zYHSqxBYqxwu8Ek z#bA>X6}@pco-1*!{->!O#io1TX|sn>1-gjpHmpT^T=iMI*Ez))steUmFFQHa8sm+A zpS{EbkyU6i7Co3K#3K5&M-r<2EeY`?hXS6E%r6CsY7UcY4XIV2sqGj-Ao~*ldki}kb!vi*?&f<6<_(wutIZS5?EX!) zt_O2F{jBklhz?&k5Yx!W4~TRvtA?O)lL;D-yz)hK+ zv+5wl;2hdW1?MeKl{b?=NKrpaCgmp6b}Jc7nV>u8R!QZLG`)-&i*wa%sYOcQdYB z!S=*{(;7+3iTLOJypYh@+DPc1dAjpz1?2FRn@wzZzL99n28M=M1lE28q?d6fZ<`Ja zL_g%SgPrxooJ-n1e8P z`CflJ;~$PVcEw4ar@V6^X3>18BbG#=P2Mrd5#0c+%q|N-vn>75+=x*?-PYnbGXn6L z6#ucB_~4s&RE#eD6#EXY5|)*;VL;2&B3AS(BnyAR-5u(Gp)4$p9C+`qy)UcDM6u}~ z8=cN6Je*g;X|*Y}LBVNy;-fmH>$KY-(>`yvV9OX$ci3y`V3|GThQwE+s|Q{to1g~i z6>|<=aM2mu@flCPX7S1WcNr=pg|MjLGjzLTFp>niZY?mm8`OZf{PIQzkB;3E_DJrisg>i5shT{$a~K+_)vQ5&7u9SaJm{Lq0)A{u{YMe~(^des(9TQJnVZ<4~X ziYbfR(E6qUf}0%%48Oac8?Qezb7}O*3q;>5KjyW;j3)c}I0V{Hydajy#~TH4s%-n* z)@oPu`UV z^$(%W1v7Z=l~rRqyu`U&Ek9UytuDO7ZGK`Hhk@WLZiHm`gSv(rWtP=HFvK?X^!*>} zNY0UBN8+ToK2oWscPlOVXDE}bjf zyG}4jCvCmhsEg^jFGl@-ZS#qgbrENUoKDJRU9rya&2VsV8x?BY&}U3d4eVQ;r(K>H z0_0!UNgF4(tr`|4)9=a(PNjou_m9#3DUklKk&n{Ml&mIGN-ezYgf?c>0UKAJzBB~Q zx8{0u2>|6ZLlC|>NCd%Aq_%tto|jNn{l;;d1^+R zBHhlPPA{ZTdAFYY@BTqwEOcxeY8$6uDbMt~uPT=~r**;d#afc? zPf~gwnd!RnS99)%F&ky8F36Xu@Ua!oW_w_i!Ivw{t<)mq#HSJYqhJn@NdSvOXh7%vnYF8GW+s_W%s2^)~>@?bKlZ|bFCR<-z zcGNQo%&2d-()kO+TmRWmSzPndv;ySHGS2-;nz37qQxfwY>|<_7RB`Aqq%LfKX>(*# z=IsUW_#hVG9XQsLOY)quy&b3WgDnzZdja6#Q6;tJA|WE2ROCKzlz}c|Sl<3q2Y7(l zRV*)-CY6jcST{$vhBkwI9Dqq$oEXKIoAsz#PI`m3_5-0G?Bl1^dh+GA!;UNU&g1ZZ z;{=}^2g=8^yxE*qzD~IHzu@)^R{yn7wu*hlsN9Kr5p^-9%tBdEVTd0x=RhlL(beqqYd{co$+Dx+D`XQ5lKf?xZd` zK`N)F#WyKJWvq)L>5Gr*)yZrS*;4BgNcxR^e?})dY$a=XGicqW zJ+MSw1nzwDBsVBfd)WoBcK~9}EmbLWmMDSdm3d`Eic6cB92J5RzhQspm4`o&e#^85 z1F0tVtf3+E^0{lH%B|j7p}+hddio)OdasT_D=AousJ?s_kkFo^$sfWF=oukD_xZ`! z2c&HyM?*s(x*WxL(@6W>qR#!bhxf$OpeD^;5CWze{T^?`dEnbmC{l#Y zbEUD=)1TCC){n2w$@@Wq9mUhTh=bkewQ$=ItBj!RPvCeT05SYofBk{EVk#jS@20%D z@=4bbyFR+%&Qgh#aV6*a<2u9{G-P1|!&Pl*QT49BxvuIZ3pkcw{ z2TH67(BS@A$P_ywg{|}R(3ISj%JRFIJrPYO@v1eM4qq>mj(pz=IRSX&KK*!7O|#(; zsr>_|27Ui;UB~tJcSQR}8;vJv*SqPRG{3mxZE~d@4{XW+UAXE;E`X$Dqa?~;T;t8{ zv)bKQdV{5Az%(`U`}4h!-cUG@BoQx)eCgKz<{5} z6+&?7ak?4yfnJD>&@m}ZK$;)7muLa9P~zSP(lw^+XDck~gOz!|A`<52;2mF1=m)9g zw@80Uif6xZ7)^RH1+586rp%Jz?@wVzsqeK004oHZ{~2PY{byg6SSOd180`{jwC>%j zJrt>R(^dMg!m$+;9=p1f_o&RGN|f+>o;`sko1Wj>zgV;0PPhV^f!Z`AI;PHH7>9j* z)x>M7{4sro>M&X`R`0-XmamOEtlXgZSIuFld3W@?rFtuwcwXl&Z_u=inHQdTL94ny zLZ_4sGu@Zj6|SYh0+N#nAFM!3j=+`}%s)jSj!7`qD6Ph=532+=V0lr&42 z6rz;FRuc@(*LOxClzq#hP9;z4$Is#)(EI8+jKu|87%rbGAi?LKGvxQ)yHek#mJa2F z%3DQBQoG51uv68$Tmnc-IyO+nT}M?7iW9e{Qi;2|s4(TS*3UcH!dcZPXk#$6JWfGF zA>{GL*!ZikTJpIllp1ayfYt_o zFVX4kA{OX1Hp_EnP(9}m?T?T#@G;J%7@WiepOj2}`R5ms# zMh{3w`o}*bSMVf+(BIU>7HLhzBu#?IQ~)0lw_vrrn4UtrgWucD(gtk9VVJV#o5Tt` z-dpvByMmE#xm{P$u287lA_Fk)QU7y_0I zNB?2DUtrSrE-6`MUH((#hl(6O3?L>W)i6=#Z`pI>ZzB%4!iP)=tf_Fj67JdH(c}1N zjykn$8HM^cbT?~;$+vnR%fBl=;b|fr8JwFj>2oL#0o1@FNL z0JDXaBOd+x4?!eMC8qcOb*VrF*aB=Qkr|h9H1?DdTbTIg>^rkz4-nFKrf#QO0o(DO zt|OG*_m3s2OZ9>H>F9Rh@HE0N!deINPPUDXHQ>D6l$u={ok4tfHTDTq+3L~|N5O@& zQtcn_>oV>~y0mc?_*);$Iow>jb2yYk0@Qbg>gjf?cxfmW2<4(etV|Q3tbdt%F1h-h zJ;B6m%%Q)WM5xu&Vi9+WX5a2ZRM5mB=`jdR^2ciXi}D$4_G3Z}(GW33m+_(E!$y4a z76v{Ebmm^^>9NN^(ai~}I7=cdjEOnvc-?=?#;1dO>n@@5AzZ7X>-ty0=$pcp6tj^G zYDfu$l3t1e0tc`U0aLxKwVNc1B9jgp@%tH$hSGS+PlY+cx2hyoTkbjE(L`xCae395 z2wIF+Te=%Oi5TtCZxwTACc5vOn5Xd+1J3fvUv|B1hop*mB)@-CSlQa^OJuJmsT{^@ zUw~Q>0`(Lq-pCbxfd!_8c?ZK%r0&B%DAMqUjJ+i)8lMUHZc}m<$-bTu%YI!H9L%udW*pp1=qgrVI}gF<8_OdS9=ru)y{D>~>dO7F{2 z^d&N4QirR`?Usq!u6c6gZeBI^22wHDHme!`MBW`0MDKhG%snJyt9sajpUdk~W=b}h zzN1J6--)Cng2;Pa_pE_>gZ`uPcJb38vmG|r5c+LK$=p)WWhjpBpnLxr#%AdbH>TdvBl;_DJrE z(M7&5Q-m%CWDzMn#rDY~3Ni_u#7uw#>-N<+f!Ip#{B_%~`J;@x3Wz|F#e37TF4X~1 zr~!u!@&4)W^DE)-XxNmOf3d3~%51li4(Zf$T>yz8Nt+RE*PT`eepsSCi&S)b)SMs@ zNf3{Ty-&#;v0GsLp*pSjk)vXF?2xGL#y^ln67TK~i>LaS(4oG%Mu!ag)1;02@D038 zg{y2q(J)sY{y$Zc8)qu^Fw|JoyHiLJIpxi2aCPiE2N0eiouXqhYt>nF)dx-`ph<*d z7ZA|F{Y0@T>Dv%gZVgdQ><$fdx3$(;GR6a7Pdp(lO)^kZVbih;#7JvnZ8M$Tn)LeW zOOA`3tPC3Jia2v*a}FK-hYl~Bk+4;iH6LhZ&~pAw?8*@IL5#gquA;LP|4Ec25?#A9 zXOS1tv%9|h8LfyteZPR*;^wPvTcJ;#wD|=zWy(hdDhpG;L}gFo0(?2Sh@`P#yWBxS%Tb~I`)lSSX67a>d5Ab#h{^{_&Q|Ykv1}d*(8v;QY#&KH;*(72qTI4ng??MC*O5HtRq(RU zBs^{vSQH!Km-jNO7yFhAPn8W>cgN$q(po>pM&_QcwL_nTvxjnp+pkE&TTqG@FIJL) zRvQ@E9|~Py86ZZ@K)x}f^`Q`qi&e>_D&31tLeM&7-h~yTYs_`VdhlKhxH}FmSgU$) zV@+xz>2OIt5vH6Dt2@k&Nm(A=P{4N3MGq)pU~P?z4Aj!r7)*V-L(C_Ow25p)UWAbZ z!5?!{kTi$?iDb_(Sm;0uUMi7c)vO(ESIX-NzKw%Ln7Lo`&3#P97F%C}xtb6}BhB9a z*zEWx<;1DdtKw4X??V7+Z6}RF*JzXaq>L&XYPl7=G$oIODdQUI-qB8P=-%OL9&c_X>`Z&wc7(_6Nvds>L>_%RHZ{0kmkyA^kiOhngPN8 zkWxd6OAnTOCd5E@u3}Qg45Y>n2ayzE&p(UgQ{+Car!!8O(2tob@ zpR4@2W_IV<>bxTFZBMu|$TwNyP;qBQb#PXoJXki1Fx-w9F+=RTrGUura_0B_(C`g{ z{e+9pm*ot^8I*~!eEf2%8|)lrUC?Q4WaQ;Dav6t!R@fVCYhViuTcnqR<~17+^)?dS z1K2v*s;&`9qW>uz@rB*+_Ek%xo!GOerl}1!_!P;CNE4HyVrBE2r$KV8X%tD0wg^fE z=9N~xG08_yW>C1eDmT%xI*$tk1Fj75`0O23X+|DWkTTX!I^w-w5g?!|wjYQh=o&Ib zwQ=f9PGhA&mj||0p-ng_+3S}L-){7z!ah49ctRizJg})v?>r;vFeDS(Zz@;AWKBwI z2;Efew7E&wjF10bJL(Q0Jc>JDc7wt>{`RjPGpbstlI~n`{QGlKD?jPtPuw(&`LBwv z>S*T*oWH*(zj2o!+NZltSA>S$rJGr-BWD}l?R8Bbao9zD*AdCj(=5y!%a0h06U~zh zIO_sckKb7~_}!Af?%LHLj-V8(=UDNQST0PZ3--xLt6uV6KLr&&=vgQH~ zw&NVDPx19gw(*xP>Orf_f`CL|?V_#*yZXgLu$|6vljsF!($!86UcLKizpACa)EFzz zpD5Xt!GF9zd;!mhSzXc5Z5~}JYoNSp$$Vm845d!~XI2}uGvkR01MGj{!|Qxzq82;0 za6QV$e&#j9b06<}bOq6j z<(3twG-}!;FCDm^7FIUO5)C?zA~1sO)Yg&5#uT>NRuP4-6)J;i?MX;uLF|GQadVo5 z_U9*fs*>@UFEXL;e+j=Q?dHaKL?|(3=O?NSG#7=uG$2YSwMqM#o_lyv0(uYfZkTw! z&y>ex?{G~5E6gjpu*k$>d;F$}ujJ#O(|g$_VU?77Q1KoVhussz{pkQcvPpA`ewMM4 zVfNR}M04%cFIx2+%T*XVM=r4!kaTF{g4=TKUgEjA9XRE)jvQ!w*LRfqfn_0L+f@Vv zwL{>ip;o%#1@Vzb6n353FYXOFa%~80G}UCo`!o?0hi?NQ0OU=}C?x&2|I#CNT z%Q*fY=uoAOF7TTOVtw?u%AMgZLdj#iO?ZMaJ)gZ}y)i4^+0T6zh>SLY%7E@+nq58g zl&>4R4M^zB1Jwga-={eC`3p?#GrS$RzFW5pYP-w$>2oGRd58LF6$m)@Pdr!GG)=wu z8*a(E8D57*APlj&gldW!8OfBjRZ*sMp~6(^!#bmIgjxmrz2><);yo~!TXd<>@Du^+ z1E0w48y~hzQ=@0@Z3j6jLR=~CCn9rN^vf;}3UfVfWBZICZ2z8K3#Y)PCu@R4eW*#1 zlI*)%_d&M2O?h629D7dI`Haz4l4ydOR#ZfZCn=p~mq#&~mJZJylw8R(FefLWJXaEB zUh3jV`e8_>-|aerA6tdi>vtkmH*gjU2{EcBtbIo!g$BVdm5863OiaxzeYHuWsU7Vj z=1$kgYFOOD_Bv-F&1?(=hG@48+ijZ8$ex|ea0Bv5CYl~-yXY&JYj>Ohk&lnl5D~1| zrSzY_BKR8fAd>vnsyJb)m|;-wn|bvtug_Qdw&MCtU-cQGn_V2>Ajjo2X~LFoqR^`5 zTT&Lh4?j4g5g&G$$l|SYZiEY#gyS|+lWo(~pXCBBA$?TqLggTG>WX4xk4(_;&de4j zm-#hmD3zB`U4!6{CDF|jSVHgem!bLop-B!oo{*9KeDD1q#s%2=TEL1Ilvhp3@}Z%H z$Aw3VLL+8DwBuk&0IqzcdFo#McVt$*dP0W`7n#!sAA!FsOIt_2qN0L(`i!DZ4MSWC1K^ywv@`-XP>uvnLjm~=hneB^yjS;snKX>C<|A;1K zzQY|Rb%8mGs=7H#aV_d$4{OXal(&P>eRjV+`{VNj&gv=$_hpsdth&6d@gZ$sbL7F^ z*}Uwm?^8jE#JwYW*K>rlkW2H}8~NQ+UNv%>pmgod6LHzl-7v-u%4>_t;Hy9A88ti_ zQ&&z&{vsa6A8>Vs?@e!3z}%V4Plq_mtT=GllS>dlJdCnpkO~r|W&|{}c0V;lz-~AT zAC{Lzm><`kJ+@IMV9>LRMN-4-a!iJhXnj5N`|@?)^AP2F$(zW0x%HI`)Iz}jd^swL zh-}NPv&2R!&_)i?Ih6f{{d!lqC7iLLsiqm2-Kb5D2Tc83A%FG&WFZr5aTqD3nSoCS zzL7m27*5=FGkBW(rhmvfj8sASUc|Ij0j#h@-o@x+oY;8;U7!G%FK+vfFL@OwZ2SE) zWW)hR@qzJ#c{qs*ns40E1b1e?Rud1Bd~wQ@cjtOBt?z)IRERW4nRbHjN;?_k;5euT zOD|hzZdyeXa{`T4{C7|(+dV^B+lcFFBueBPE8YgI`oY%K`^@2NpU@(%i*GG@PD{#2O+pL^-&Ywz9)RNm zG?oYi#k~|gXWS9*o{kW-h7>QYHSlGoP*=L?9>XH*TAG@!okj>&y<4N#jYSzIPr}~J zzib@M>EYkzG-jswOB=j5M=?V_HhNO;d^)BMwf$sC9K>_tA#R z5nmh;s_)JU%df{&r1%WGv}JUZGtVlRL^ctETm^x0QFtRE33x~Qs!~;D^u%eIMC@Uo zB+yMesK+N#5!it`5Z|>!M8~ui0ry_4N9R@)!H#nAgFKp}>q$SS?YeAwU6K|P_x7q3 zn3ybnzY@^}E0i@sL5?0qDvqyaZii0I`H+j$_DDYn>QWip-%wBa znUa&-9jW==vdDGo3laevj6Q zXft`oxGTGj97C6)R@SsT8$<-)PSn!bI*OhBKtm3QYV;k{i+x>(LlC{zXNIrH)nu1< z{)>#YFpyB^ag_J|iEIHBc-Jo|DU1BgBU#mI{xUqn6Q)9{|N3ZyXqsMhZIimc z%yyvXp~|=AE^ak$6qaSeAywjK>#J_5&egj9u$nWlL(C1)?>T6K=|OrQIXa9KT{IZY z{kPwmyeErQ^`;W7;)2CXo(SZPYtW`ac8aeYbeFf|fl0trcvTBRa-@4pjLi=@HjGW% z8XxFU+11GMVwUZs2zb&C%gz`3&f7E+mOZl~A6bpqR3*$R$2@_C53^BT<_*zgI!JQa zCw5?O#PB5|bGm0}o4BG$kg*Ego&x`5|pF*RQ%BY$)CUl=- zj{O%&ut?_muxuo1+^iCbYhQrvun+oY@_Q;`=xBxxVm!9%4wO|vDS4YXe!c@(qBA6p;pTq zlVjmY0k}EifCR}ei@LnHAMa^2`0+AS5py8xEI3L=|7hbI$L> zZ2vnjhQ|0pS!T>hm(gg7IcQ-(GeeU5c4Rp9g1bC{`lO8~h3RV2RLbvCdh|{|4gWst zVC9dO4r;hG^3f!X6S|{AK;2}W@dV~9d9#6jdzbX7+gek{d5a8H4xv5iJ4%N+WGIOL zh)69NQHy@1B{SE6>%8FY3w;&f0eg4ip4Ir zmQ{w9g|NA@X7_j5e)l3kG*fpXZC8cMUj zHMRPd{DzCj40R$Jy7amYhzl<(OHib*uC?EvKhCPub-Els416^L7T6!5JKN%QXZUMt z4$EJz!?}@2eBjlQ7&IHJ#KM=adLq4PZ%8RM_Ojx{ULoRK63zhzL9GgBN3EV?jDO%X zQn;1`ir+w5u+Cqr!6`~1dOgfzawWS2c}sno_nzxI6Xbc&?LsDtwPFa+g*B1%2SU4? z15MOve>dDp`a|N-rO6h9qrMAO#w6b>*^4x@8`&1pt{>ei!ok2wGV->x6=o;?7y&!M3 zVpM8OZts#?d2pz}Tcmp|-z$jU#^)LYzz5iUR@69qiB+c2sSiV1E6pe%@@1gayQ|_M zXg{#vQ^A5=3H3eWI3&KpVC3*J(_#8=L6|}or!&3yE%)w;x7|;I zb0i#CoYcdx7Nc4JH@+|bdpM(eww%!PN!%=5?Dy$*gz%pqi&XWC$l*!4WvsHsVvXi; z!N&I%_}PJcTL@e>tt4?RI|$*yqwTED?yh~?o|LWvgrH}8p_#GaHF90*rXLXM?o>#& z$Q>)X;L(>#MV+fFjz{a8kHB-tc2;a^)@#`|heKFT)ErBqe^zc0_UeUkD(bqr)7NyD z*WceIBu~1ezS&4Y=f9T^8`Ci(c-#Y0`LXXH`yhjyl-5MfUcZyG{ z8O19Mjxxop!AQaPwcmRUBKw|*B5auCbWSGV{ zGC4K6Ew>w-RdPT6D)3okfcA9ux^8pN)vm|m7Z=NH!SUDBIyr9sH?3VbjLUU{+;S%s z!vk1;a??AI>zi089MZ$3koCm7s`GP&>r7Kc49EJbl{a>LIeA!(+ON~uO2qV?NSz}f zRYG{~nlKP;+H9ioEVVx4U=J%a*7icS*{IiZB`qZ`9pSajg)^sZFhs=o zp0{6aT71(j064C{FRQD-52D22F)fhUiZ_^c!K3xnNfbYa)c3JsDTwwiIz2l3smp<>sEk&VkOAgEWBedr8= zYbHKq0qb)EtmThjyM#-XEwx2$&Iw;@??kc9_eO|})NujBCMjA|r~HwXKISj<>)Dzo zOl5yL2FTvI(D1e0v8kna3G(`L-pPw#vx~ zM^6vnOyV~Dj3T4|jDsUGkN!twZ6+2o8Fxd_=PHPA_pE?6qYxTK^lbl{u+G8R-z}zg2KeJ4l>gq+S;~xT zpk~Q9s+lkr!tt~OE%eu&FYRq^(*)pO#j?&ED;sB2y93Yd`_NOvTqPuuS7*2m=$$nVr-zOUG=L7`Viw?#Y52y6xWX-_A;AP~wt{6K>+8*gDrD4oI0NE@^{7Z-B)Z__lCp43UAASS^P8vnfyLNpyl;&7y}oM&_(htf9H{I0i>uum2hICP64vD zP2KJ&S;N=R#6V_a=f&{Q0s&szi{CJ8NSr%#;hSBCr){DNE{5wonygm%@<2s|C>E)+ zy#m})Pba`yuU~~Jq~tXo;%xhlM@~;5@i4yz4%hpvvkpsRR)ZouE#g?}^i$(Btj6HU zZGD#&7YXYcKEAJv{NO3myElQ+zEtiQDSxmACOHlBPvQBdgvkTVQj@MTK?t-cF>PAK zp`B8yXnrD$6Jj3*G9|(YmG@g(#4{Tw$u`*$)`dtDf1uK#9i{fPY}64%>HKE z>X>75XMLyeiM9+cNi`u+(bW2?)oUrfCMQ49axRgaBmKNCq7LH{$wAP{<2 zx-szhe|jxvoX9(F#-%!H(!r^`1Ri?eb8>S&TV4J>WSJN(NM2dyrwS{}NF`_3FD@_{ zI#{)5H=c)-4C_^{#L(g?dAfeP#oZyULQ~wX>(+&5L=1+f9rLyhWDD=TAEn4!UR-B5 zkDHoJ?Lec7axOR8W3Y;qY?^w3Xv&@rly7r#T@9*VWt_p8^tPF1l5b0p+wNHL$LkPU zI;&=@BIIW$@#0k_tl={;KuTg~qjj*BPO=C>!0Ep^eD@)>WNdd?Jul_=mP*;dubuPl zd)KHbQc2)JdvTA>2M?2n>NtQqYJUSq05yRiZ>)ES7Z$WBV~U!_(23}I78E54mazm2 z8k>1bJq*GY-IjnZgYK$9FK)24=14nN3%kMO*^g!NkWYvIoE`>AsOPZ7U2Nu3OtzWD zn1<{f^qUSlj~wQL-2IRwOMw=s06>l)0{W%x)y-cGW;>>u)8|9ii5U)y-|Oxms-Vq# zLzOlLJE-MkeWfL$9RUl{Y-`U(*VWQ%E|4Zt!I(k8EA1R0Y}GNVMbB!>+=>jTN#R(g zwMuB&6Vl4j==F02pRCxpD)|`788j z`hRZ3mtW1fm?&gi2;H4a?jSt8&S)v7g|WsYd`@ens9ukwcn_}F`=N=%+=${5BiEiRQ$w1R=kU zo3;B=AmZh}{F7L5!QPUzPoajR{=}@gx1VafVU|*WzTz36ve9NY_@Ky>zPP>9a&9a5 zt{0xKxUiV-FoV7mw?>(Qldv=@Alq3AuSjf=Q|6MXj2hEV+aNODO?J6WH71jglT|NQ z7qO@01x~27N4{IJkC_@gtX*Hw5zko<5A19d#7h(PA1_du;#RAPpSpV)g{!NF%eo6{t4AF{tDisn z3H!L{TB0nl@R{-%Q(;PAI$WA0vi1n}N~UU6 z(l;glFU_g+aIt{tcswE8vl7N|h^e)N8}pBBDyt(Gj>N+-i=Il@#@O*bi5~792pV^N z!1k}+0L7f?)FpP2t(0Gc9Er?lr)^9cBGdi)bC(n z$$;T|1P>;f5sqPu-3Tcv~!{o z#yLzmGTvhkW&WmO;D?l~8LTVwP+c@`Gbg%o;*#p-*;)Rn?k-J6_wC|%4qSd7t5sGK z%$Cu!mi_hd!FKNIfAqI{(rx8mk?~MrF5YH3{Dp)LlvVtHfRh~mH!%DkILY=u?J52j z9?3$)!NSe@zpMX~o8)9+|Nr(JjCBQ9OSyYxpe_uQN{3^1ou1z*a7`y-f&+zP7KMXH z33i2&Aq{3*BqAo>A(9F~K~YH}nF)w-nf>*+)xX+hxAA+r>CNxm>)rd|BTSH%%-7t7 zu!2_=CQ<77Bai?lq^zo{js^q*{TL(!5-L;xjCTU|bwvS&Gq}BdAQd|D3qsX3NJQ15 z2pueP#FhvZm=%EvLFEfpwEE<_Xv1Vsj5BwCaQDFAy2-2!6!0J4?>o6be5`0M)M z6tcBZJpb?e3Vi_h1T1iLRNTwI9P~KX$lj3(40t}Y;M!>R9JLUMGEe{oCZf<6pd2hZ zNf73oxPSKc_;?t?)%`@gb8X7y1!Ulu!Y_n)is14Tx&h=54>upoH4Km&lY|1pS|8r| zeSb-8qhkDv3m53lHCV_L%F8nhY6R*6T7U?7UTqE3qW|Zw;GbAQAcBFtZs5R=fnSC< z&M!@3u0szNFc@*3ZXqNA$58wMj9V~J%WBK}!X9NlAgG~JOr*o(II%NPK4M48zw9{o z-7Zi<;s%&N!ieu4d>$3J+u$d&X9ymj>?FVSEa$o!66;hXxw%GADZB^ufRufECaTX( zzxQ9;Rpg*&k@p{V+XE=vEkn_D&yIUslKnaYCiT*Oq?YJ=K>=PY7$P_nRCF{{paDH# zCWi|C-}*-g0fvS>;d@3-?_eN7%o5lE41O>=AbVKRU*ykDQ9dJ}lx#@4fx7@mfE9A^ zAP_DW8hAta#vpR&Z)KeOumh7jb< z4H}RLrOx9CZ|gwb!Z*$bl$E{&Q$CJ3zscDtxj@Q7TqAxz+X|Y63Vx#sU%=hO0tB}g zdcIMEJBmlc|GSAAa=_7-2fP->1d`bKUnmG^fdM(WguEjaX~wsO0{j1I5wiQU+n))) zeeF_vvzZiSJmNj^u`$X#h0muNcT>5JNh&L%9u(v-K@NWj)8ScN{(}@`D zF;W`Zpe9peSuW&h`Djten~nCc6NB+!d|4I?^dOr9AzZ2Dv+vBQ$WP@iHz;D+0@rAC zv|Lhg8sA)Zy8@N|-l*oaNa|T1k5&^~8Omza5mdu4vsPM+#=WUIFT|<+f?ExZuiR+X z%sI;Uk7bURTadBPNVn!Em3yx0=w9ZXZx`AeohQJrImK>joBMM%cA70I3T=(CKeEdixQ_xpds%mj=S=z!Y1kr9&wR`mwZRsX z(qpN0jqqOWTT{aaXRN?y-Gx&!f!wo>W5nD}_i+oLyt_AI{o6NGS)GFQr$dCXHXsg2 z7Oxytj`b4IeYTi2il-8q!zmpUGHeIjx*p>oh zn?sdnyd6OV5^7Jc4xK8;by@di6JD{m@mD6ZP4?CH0j1Z*hD*^}qGC-J7hZn%l;6>S zq9T*u`>n2%zF761dE+$XTV!TYkL^PiqoAa!>xLl^?<1YDeLTjRcvJe0?y$R`nUFA3 z;e+S_H&YD?BZ&W>Yq7>Pl8L3{a^jUz6X=4R1d7Nm!w1{VSXw)s=LNUzPME^)z92oFP`(`>yW#(BM9UcnYy-4u!qFm6nA7(+WdeXtFv~D?4sPSzlC(AxICbf zns@vum!G7>kHRP`wDC;I?ib`~X3H8yA!0elY3Foied-XpzUvu}Ld(Ro#T0%wCJLc* zeArsPN9znSUe12Rjla=Wubxv3eI_dGlf@8Q(0sO40YuVFq?Msqt^PfzXU}kf(O7RB zX^qXi0Y0zC#(t6wSD|ZQm5Oh)jvfE@cVJnfXmCxYrU$NhTHSZ$41!<9EYAel-N}1Q zX1iyTVAj}oLmIo!&y8pIwl2$*|~h=k3T5>qK>pHTGk{U3&2F;reT8EUumr zM&*An_KrQea8a9W*|v7swr$(CZ5z96bC+$~wt1IryQ-gal1|P^-lThdTR&hWEAtw2 zTu9y|$tn!Qovenp-ECXs9F2ANA}%*LEQ>8rmTuenmX4*}z;89YZ0L?#IL=B7zlugW zo{*OoH(-!XMq-KeEs7b%f+|3lz+Fr=IjG|b1F zj<4+X_Q(48&sJi;p=u;%WA^6YdmCE;!WL-We_yCu&uekoAIlIRh+0VT$hc={V{uplGD;GGuRj(OFJ00Jwxg^*A!z{;kx0yn9xK1=(Fca--BFdQ zR_1Gc!b%`-qYLR+Md5V`AZE4ZoR&Jv!7UfDuAOQts2f~rP8pDoWft3oEP?r7bL7Sz zVU$v4vf0#S^RhI8(HUiF?m@iCq$tBmoA*Qk%e~6Y%JE4x zGI3h(WA{nUbx9osD&aroDHLl+1zzWHNt@>DixA~QtLw1)X21(R&DLEwmR`zbWaqEw!mh=TF!*qCP!l1&3F0u7 z{L(C>LwUTZJ6`pMBFB+@WA{M-??F1=@{jIS;xt<6uV!G3!j2*A0p}hx1NS-;w*$xM zuH_9sy+TtyG}sh-OUbaEMO^W@wG6Cd0S1SK&;qz2H1TC#f-7f4KPWBMYbnAf2s`Qh zn99@G2)En%3KPO{2)awiTI%T21NH0*VJz;85|6GN>=yIqsXJ1f7^f0$3erMJ(uC8< zJso2um8^<7hP^8o0Wcj=#aov`0WG=}18(OD?K2%24ns2KliH&Il9H)_fa~!gsx+VY zdzIV%x7=852AL6WU7Q-v$a}XXibO$NAc(F(=!uCP3m2PA)4i-RVjqd)vI7zC)O=GG z4{|;|KKta)sWkD(32zDStFaSKlS%vbb*I23!I27Hwm0o{iN{R^n6L`om+_+keG<5#~$j=xzUu72y1 zt1-kCk65{Kqw^wvz9Kzl=gYvw1?pV;@IxgBnPm1}c=hZ(lrm=?|D(K&bFzmfN;1$X zZkX#Nk~S5h@&wO|G}?sX-OV)tI%Q({U8)@m>(Jrc+iTJtbNI6KE99BB32bePsiLn> z=(ibCz!%hx(qUBO)#xU1ifM+7YqEh26oJ_qr|gF#@iTv7y_`~?Kl#>aTE+7Z{ZCq8 zo}UO{fMr3pP^h_V`0*VNH|`JMW|a|V)t$t+86X`=aZo6>t^crHd)r$w0T@KazljX4 zd!yt~o+;~F$SYHfEJcJnZ?kh7&7Y{nQ^#WM3!{}7OJK9hGutnDE9jMTok!?`#LoNGfCF{i4&PGcd#mwd6d8@A7^tX#=xzJ$){(&qs$4~(u(m6^*!TT zcPD6w>o>HIoH|hJO5z@y{O8F&*w_bkyQ_8Hz0_FgZD?Ld_gaMnmuL)l37g`1R#OCz zxGq-Gm^bF*)KuBg+;aDnTr8pzO@pMxsgzb-msw6_1G!l3PM$5jyLcSt-bY`;fWEE*tH+3O}->=N*Sqr^3 z?h%Byt>#|rv9Veh1+0yS{3MAKgC1`q{W=pvTl{_isqA)>8|FMuS;loXI%4wXq2-tC zJ#ac;hl%4B_W`I*J%{SaRXlB*$CcJhtm8&(XNS3oeR?)^Sc3xIn%P!nIuV8l5^VWn z{^`8jBdGY*=c{H~IE3)6?wZyMDHgdiTw!fla=S z-9bjYMANIT1Hw%!V@>(8d|b(fdL$LA?8a=k8y%Xnqw%t8G1KKJJ#fv~QF)hM2P&QG zh1iimtv6$uD>&_b=!GQjUjKlbC--ZD3?0y*Z3zd5QKnu5@y)Hhcc7DOzE)u0by)}H zX!)>O&6rCk%n@A=J;h4)2Q#`QS60>GRt?Wld+XmrZyVv{B`7io%a-+m?GGtcyPIPC z{6EoZ7{MrJUfrF!I?i)CmnGeaNpYamx^42k%z4X(>b4+_1d05?3aW*IHM}cWt>(~l zV=K{J*+hF4Zgpc)$1>qWBtAox@xLE|%%j<;jaovTGU3!J=tnkHabxs1p-Q5O3_&wv z-!{FE(xNrQ8T(%OfS0lx+8)o)=Yj3IPAi?rHL)%OYWr#`+A9~qO$oP;Y<@lVAs(+P zKfjc=w_8?u>5roxUzZg&h@xk;1<7aNUQWQ@g>{}LnzgJc?|cQfp#GB5ekx0)GJc~C zYdSujyhht(!e~N&L#2_(u0jQGh3Y!5J!BcDnr=Rel{7TFj(0RQ)|t+C+}7a^Q@^>= zWE;X<@2DH~Wf&gAZ#hGB0D4V=C#}ttDeZ`eZ;5|GMLZwHSbz9YP^PJ~lC{b4`Z3sf zIAZ+6;=smY@q*av7=KH@pSzcmBDpa*h<<5Hfj>8e+8NE^a9i= z1}vNvwikecwa*R$i_m(12qk-5Ja3axiVlHlE>UqG5>tzRX(R|8r=jtuIx*zeC0;Hf zob+@)bkfFHWYu5cX0Y~Xn{W(wrT6R3S&R-fba?r)x~S7p0$0v#Xq>!Z^+0T3-Z?k3m;Jz0<0u4%zuf66rlZ^ba@nzA`SQ^;NcOO5^2S zaiz)J{OocIm#duz3BP<_E`Nu+)2?TR?xedjXzdPfGflEXA%0l{MgKM(iT(gi<_O`v zSD);I&0Y;_pjt4=zedJHX)_*jzLww+6^M#H<-4a2)kq1ust>#!{QpSNC$iEEERKA_ zm6cEOXl&(PyMOTl71hjEs|J)G2JBq{tg zd)v^z9p_=U(mn+XRtmYuf8=e){bVv(9Qq?xa{h|eL`mnYf%lhwHC|0>>AC$<;SGe41G-9}d4u1jj!b63bUf3){cgm?PWtY`Ndc zH4CT5;)wZS=G6O{E50N5p}Jp~_U&%^@HLm8mO2syDdO*OEnQORQV5jO%(p}%LIfV$ z-(VL!R$|YjJ%TW?XAD25uX?%N4^8)(ZTLJ$~80 z-|*rmyujzVRT1Y-A+ZvjC=MS6ObNU15LqAkbx+{kjfM0Jv14?86HdIS4d~VnkMv4b zcBy-7*!nK*j7=&+W|*ej0uZw|RU3&!UC{w2>vjmvYu%@Ffp<}Pe{vMlQu%67AEW2? zKJZqt&4g8R)dce%jB_#Y2LIzfoiy?O`PFKCzEHOE_r24V2R;=I6Y()U{{wTnvJ3{4lk;Ke|hVEE}?BwsfWvYi*Y&Z(w*J-EY8M{hc zZpVG8B~wtQFU3$~V&-bf`;&?{VM{mo58VUR&}0}w;Ga$@xHE8=%*5{9U5y=>I3_#} z8L^$hV1aLv*EK;Ohv-geM9#g0Mmx|aJ4kMn{_ZrYqZgx!4Z=o#Wbs3_KE}LQQnYKp z#9FFTJ>Mz`-ItKf{Ewc=e=Q@9aqVfggNVDi84b8q^F;U|MSeZ)tdSSFK#nem%YOzX z9=Bn%4$IJkhrEPAw_fW>d|qRj`K5yV!Y;P6s8Up@xma_gYU5?_9P>D)l7%G)X?*F! zH1;tsE?@SK!^zwzA$9Wk%oElau{5kVr?shb!PCVuhKWS&MONI{$l41*q8!zkABjO3UU;pPH2Cve@jXGh8; z>6cd6{lZIY%y}(|4P5Q28;& zfD!aYIUN+v7X?WTx}3H-%&;a+)^1lFntTKRHvc0f>rx;0k#PnL_YbUBna~L-wI-x# zZeek_?zI}SnG&e@_|5p(Xk>aVl8(y20HR7)Q@Kt~zC0%W?Nrl3wAQSu^QM>fi9Ku`7#bNy7+Y#9iIQx^;o9N~|0odDsA- zl|1b#C!5y7{BoK->HBWH?6yYT*DG!v28C5m8QevWkvZ$AahTI<@uPKcO_ZTqODma7 zV_~Uqwee8Xits5J(q?BDhD2lchCN#;#+j=<(sj6$5#r)jafUYELBsKU@%IB6#zxuUoeB&Ofbl zxg^(9074Sx>ck9>`#=uN{dUNpwtVOuMfntRtnuX3o(TthY|bth0bIy^ znySQ@GMdM$*`hLJf+sc(jZMN`g}LF*^RCQ4OIK)YGP z(G>ET#Yn~H^TsG&M2<3!-L|!jx2CxNWS7t^&FZi9P1RrHY(42eN%;I*)JG0XVWy43 z6wbHy_~L~Nw?H;K|B)bNU70|Z`&YutC|zSOUft8XeEzr#8tXZpy68q;*YnltNk4EC zAT7A-^uI1&@93ZgRtNLvF%*htpbWvd&wgQSJE)3S;iTG=StFoOJyZr(H~yzpqm2 zjnOJQ2b5I^pV!_~v^wSxgNgS9pHZ=Gqmz_DMp7$_=`CwTtV-{H8o>VilbLX_=BWJ$ zb3>I*1g%|ZXwW9;#{C92X{l8HYkAwwjZ;dIi=pC2&--rt7G--8q~ouHAo#hB;%S>Ns8V}r~I5t-qpE)2Sd)y@Pr5k@?R2Y6RiEcNlSl3;k zMbv0kGW~Il{tCU~ta{!Kt-Prg*~aD>5@mTD%eMsj)6i}n|fN>5kwMa*^= z+&8R`oBm$^(eZ5mSDgaa+%M8V6w`h%vsRSch@%ZLrGhsyEm?ZxP++tSKJjA^Ju?+VC2KfP!KnIICSSeA2HQtm4z`JV;P211`X3NA@AIlAb@;=`8u< zAZ)GX8;o>M+C1(0qoH_h!tcA0AHK!sUXc54ycS(;m}`m6Ajt)LEB7)m*6%P9uZ1?p ze&nxTKyc4x%Sl-`n^JzoHAx$Ae2XIq1@e-V303syQet4wUJGk@OHN9j>x_a5xU=`u zVqP4&F57NfOKPyUbQ_M9<6F#i4}~_$fr~k5%)r(7j$K?n>7h3sppHV*Zbswcs3&J% zRSVR7CMVi`=*T(zc1AXPlU?l4L;Fw9uyKy)Odv^QvZ)=-2fL8E!IMR+qmDql-iT`( zb+4hx1T_#WgQzy(FZbD->rOyr4_l)Ig?*0Vm{+^)EPBjw;kkOICR?5NF`Ma(Rz-8} z8>q}Qv+}#`MjkyKa{6BBb=s-s!dWPCQ3U&Y4Md!eY8DlqT5MbP0JzvMXh$cU#{ZOO zGXGB^Sa!DmPoDXod!LKze+o32n3y+k+e-dq49qIz2wDGFB!P>BR&Z(z z3OwZZD>gvA4;0ZAb${pSH$OhJ1zS2my`H_06_8fJ0`ZZ*X?Wwa-ymtUL$*PJeej6o?Xt$#RYNtUdN{d54DI1# z^&P4Nwuji^=kKJS&P{R;=yn_Z1n6B6GU{~gO09c$K4A3|+UFUnh4rc86U78D`Y_@V zj!#X|&`u%(bpiMDvm@~Koj?2O4Fo_1_3e+rfqd)f=>ogQO9g@wx$lh;zy%;CU}6Dz zyn;b~{I>1wa=;NH8NxOMfmRQ^AYqLPT*Wi4-^_iQ-0u+a1E~PU0H7eA0Rcb!nF6ip zHL!3OpYb0A&&NvY?90qbdv7dw?({$l0!4nlrN5$A&l;fhKWuomfdMX79lY*zSp6Rg$=UZX51YLHz`uPu--yY- zHA4YSUwv6$0T9JU&|yDB=HDVe0g*zpNaeQ%F!6Gi&;fWra_M7Cf!_*hBzO5DRnV^p<#dpZ*B+;V#bIC0ARpB{bO3q;GbU$ z!$A1<8L(dqV0Rh%g#EK4e-1sw#DakEZ9EcUQQw?CHwFS=e}~_HM}MpL0>I++J^O!! zL-DEl?epSGJ`o3hEx*oCVVr-)u8Dh1W5py@2Tv6R97UUz4ez0e(Z=m@q9&+w+FYdx zs?tA2tnBo^;IHg+xOmHGtrykvY_G5zDFgJ~$8=(=E}3GRJij6F&*cmPWaq74FzqeA zkG95T;3ob##SYbXf-fQrY~1MSz0>ynxjKPHe^D1DhTYjpc{vo2@p3&vH2{2*`~==p zY2hRm9qaU+ef9szwDUV zkJrqY_^9*`oCHVdjcme!7r&-g8EfDwKUEdhe3I+x*~Sl5Y_|DP8}7>@gl5_%XdU zV>xBrNHZ|+SorH3_cbpcKUjb8mb3eLuZUzNF9$lmukW3RIzamh)znFC{7a2btG-si zF!b)Z9fw>svFGl+$)MYWD;R3T4@&pG=KM#Afz^(0ayu#qESnS!#%vZqZb*itL($l;ZAW?RWL&VCK50fYc`T9?h&uO5E3QSY%d$pvo)+o7a74M5Y77o;<>c z?HsWUFq78JW(U7tY&O?vBG)(GsUKuEx~C^#(QZLx!vz3T#+5G44SG!ObR^F5vhg+w zakJKqpCZ(=dN9wdApXLRmXZkVGA_;7fm`I%N;Qs(?{0~4)ZutetuiRDn9IKgtsy{$ zCmv%dZoPR$7Kg>`dX8^5|yteVl^5aI}?RUAl3E*VzFL2hR_-sJ)Z}_tjKWNXXu) z*#&i|$eQi zP)Nhn$?<`K>N0pCRwT*}pU}n%ME5OJcwF@u|51ARUcDj|ak$cb*D_f*U(@!DVm!*DwX&Wb&!&N!H|guKuMtx50oF^%LZwvuICa zl2?FZ*?e^&T1a+M*Qh@6jj-TN0eH~iXk1*2qYAlj~gNZ~3lr&#uSW5$CUFf5H`2uGqn__YO)A@?;&#fHcA=|~ zo<>C|_?t9H3sIhd%{N{;f6%j4P%}Ps|I-al#8cbLBigb#GV2KCP{5MH+8vfvm#Ug`_v`EOxDVZ!@(8bPkzbIJ3mn~xxD1f@d-QDGYRZ- zB<}<;D2H}Ha*^(^Qg|hO`ToJT83BGS6YK)J)SvBbO=%!OKPXewS_1ZxdrQQPLDE@0 zibHzlV}M+&Pq%v=Lsq4*bbiw5f{=*%tV@9}icr0HNWQ|wiJCiYixZXGH$+vnaiM8bs(KA-QrPn;~5@J4;=4SWc~ddaMa3>3O%sLP0bO+thF~XV6wqAFY{Z zyG@@do`uV_+tv#Ka}6qH8)5)DF3h$M7n`|_hz5$p$B^IM^;#db7p@Dr|RDQ!Ns-UHvEUyIau#iv6Z7bUj6bkc2HmLkZL21R2 zBUxT_i+2`-W<54FndEmLB@3gS8`^6EuxV%B$gHx^!V+WD#@mH9x$zvsEktOipqSkY zDiFaS=Ub?8q3k?j68-S`GF6K*cYa4^^6gNNee~tGuk8;os775a7NTuY5i+MU%ei&0d4xfrWtQ)9iZPc76AB-d^SZVxA@mfJKwy+BFJyVhL#$=JOYxoU@8ZIOA zteuCr2;`6@LHTn9#1(|BIAL*R>HT|+)Bgi_m(vZ2|99&(MEoPl-oq8L3)|RstJfpX z-OyA)vRiC0{hH?3H5J)wOd8IXJ+3hc>fpU+*2)Z*PDTuMD6h>>X0mL9^jJC!%iSwS zAtaJwuc^d%YSJQK6pcKx#t~(EOVjD^Cm~xs+@)vY5Sw;JGpn$1K?X-bEAntgiIHll zDBqu^(HzD2^)YMIV^<#$smWobS}`tGR%77;B0&4M;mQs78%!YJvLx;-=WPFx6LBH^ zFRi*xD(ia0O|GyTk){^LvN#R$v@Zw%tVB^@T5r^fzlb2z z4M2nJ7qMBmiU`j0v^mldY9JodxseJrt>GC}<2z;SX0uQPkv!w7(n*=RK9xrFK`Lv}(9B-}OQBli#4D4}$Lhu~+5Lx+>z3@x{s02OwkEf1kUFX( zhr_GF#U-4nGSsr*?dI-@|HV_9ui6AcgDkD2RtV<4qjs9I_F|Abr^4`)h^=aw<_(c3VP}ZrMyb1?~@|B!Ds$Sn;UT&B`vtPG*KZqax{xNM5!&EgEcQm zX`?{wx~_J)zSY%sKgFtN6a4cf_^2yY+%1S}6Qz8fkl@~=?$-`2Xzc_sw&hr%>lQ3& zHqa_YDD-Bw5m5r4N>tCUjH3S3M)K;ME~zBlfOj@tk2$j1>}&UJ*0^wCVrpshEqSxR z2^XBtf%i+OX-WoWNVm;Bw*GZqs>$pqi?OR5KX=x2HNnwNg4}X648<7S*Edm%p)p{H zZ#{W)+=yfI_EhHpUA)Uki{ez{`Pj_<2s^)d&6NgcGTEW5=G29uD;8M@+?Dv~zt&Q$ z3K@optN;EjicIshp&lvoa;Cn|(*|EL<9T*J5KnJ-cW%DR@yW zjqWb0mF*DBu`n%Ni}%P->XG9l2yfxmt~w08#j-3ip%%iDa||Bj?T+4EJ}v)@#Rb&t zqnyEI|H%E?la#xWX`fJ!P*krHdw6W_4TQL&?O4uvt6zvzPep>JGuLdQVM{5$oY^5D z7x|4+TGNXT5M>F5yrpZd|j-&8L6TaEj-H327hGYL2df)Jq|EC%#!L<%PT(m zu{~_wETAmJTdEGerAco?Oco>=@WzE9U-rPhy9QOMPe?$*OpB`yfSPSJb&e8XE2*vm zZub#})L?0J7D6D*+c9O!{U@h~{!Z7)=rBS+3`|IJE6GYAbZG)*DqYIh5pU z|EFuv6sO%lC1dX%Cpwowif<~c!2Z=Qq;x5ou6L%N zXb3G(SEOFf3COF#dX8d)wZ6Vwx#g!8AYlWMpM@*SDI@d|=`P8UR2Ir*U!}+%Csnar zZ=q4Ca}X?kO{S#iV5zf}!L5n_>w{p)m+|lO?7?MUh+A`}WIA4l_RhQXy@Er7u)4{n z$XJYyScxVcmQN?jP)N!lNg5NIf`y=JtdeU|G1fK$B#q2HBG}-m%Q<^}BifFIuH^A9 znsTBVrgq3$IQez-as^JFTCI^cNoI4jX9yeGGL&3E{AbKL8fuQxtyY$INx$u7Rv?7L z6~egG4)(2V4v?AGVZ#Z9v65=gq|I8*G<8OIePAk6N*c2GXKMubvKL^SqXzF66o zy=5Q$UsfRE^$35ptxpCNoqjQToUN$+kMW~(OUJ-2SZf**2lV!?#Y9w^q!dJQz|HTT z@RAQD1#%}(379si5iLVV?wixrVwny;87{>Yf&sRbY(B?_%V8M|EQXBq1!?>A4dXnL z5m2Qvp_hp}N^QObmFHhn$*NLmv3bCi<%lQ5(&_Mxk#S!zZcM_}Yo>fsf=&{a-gEV) zY#azI_a3^92Z(|E_l32MAH#((GhMLSbtPLBeKP|2i{~HCXZc?UVh!Ba5l7`Tmb)M< zrht9HE$9jAu5(J4spkubD&^rNkIaQ{QnzE)5!502`O%tek@}@q@SUBgci9*CW3@4& zIA9C10}D_5EqYPeW769uchNZ%n^ZDQo+Fx;r2SK$HYYTc3YfX?XMB3IhVs~aK7S)F zg2bm-_Y=UZ;Hg41kGW|qHx%&tM zWs%ksRns(si1pa89WFM3L;i8zzDHx|8;=umL+pjE3uQ}e{lE{vViGh(V)qa;SAOcR z;>P7y%Rpg+_J+#5G8gJ|r4g{^7cAy1Do?CeA3jI7S4;!_T_uJlbadla2_gDf)L?^+ zhB?DUzoehaVzedwqsZf?HNg0xsPQAL-H=QApU1Bd>_cm1*B0Uiia*cBJR7R-UkfqE zwMq9^sjcDoAt?}4kM6oV|OX6^%M z>uv^>>v}6FILCr>L*K))dMQiB)#uHw5z@G#>)L~k^|Sb%yoNylt>LE>D61v#w$Mhr z<*^spV<<6D$3a4xr#qK*AAixDvC`j%zZ7F02kGc%ocRTwKs=kx-mExt|7EiE#_~ex z9Ac+SB1rIL>b<-4N1~u;^3q6WZzbjqivPX(CwW7M1jL&g#G=u%@^ha0bo_g(Zbo;! zfE?@cr$^#SBSG3f7G&<-75*ft@}E@%hU(* zMY2xlSO;H?tSRcz{O$TSe(d@_PoxC)6P8o{yrU!bL8`7admu)%FE9LZ5^SkdS z@KrM<I!mx%_rR7|hHX7a2kmPrR^ z_f;=~GI0x=>T1UE(K^XJVXa~>gKpcN6}?;4tvG(SpzGi3k(%~ie|eRC%vwd5^nrsu zFjQ01lN+1aDM_wIDJ(8cJDXNoucnVVi(p4O^>L-@5zkZPw*tIVZsS+15 zy)Q#b7%g4<){>YV@m@0$De6?MGXx#E@FxTFS2m2sc?KJSOp2c9|F(`2-v35%9Z z+H^beE2ydGiA_$M2v&X#x6F^y0+O%I_>4-=F+3WcHe}T6+IXw6=1RhwU|0OqRIFU2 zv`%vY^8thA|6W~#qsc)|{&Vn6FvX(f8<;@?+)pe%v0+-#^gh8V0pjW7jV7GsMa z@_v1O_e_KrsDV^0!cNKN&$cs?hU5fdVH^&J|D^9vGPgrCc?wr%m^YvA`%Gafw;6|o zr}gE*Nzb4~HBB+0U6EPT$P7Jct=Xg*zja-DV5q?kppb}M2z)i$X=gvs5zr9j!A z)d(rA#&YPaH1HWcAvJ6@uXomvh%Agp0;spZ0b zcOEk2U#0C_0p;btd4Y+BLSQ^uPA^{~i(^KDZ>7#~w)Ng79sedW`cy|utdU6ln6EyC z*e&@k)@Y|~JV2skNmrtxWDkio?rqs@1EmnXSxD@O8kAn;efqIFsf~%Q@V(b(X<(Ld z+W`@ONcjzGM(tl*u4!RewPkkhKbKBbp+Mx08mo@~itzb2RijMMk;225}?STb1IBySOSInXUR|et_BPJ z{Q7J-Ms*^Mswwn2;fZ!P!5=FhPyK6vL!h>hWLrvG?s3O-%QB%#zJg`PRz&}sd`RQX z8{SB6PKacEu-4S7;Dxg>iTgX+LTJdgTlj>-`?rX742~83^0PdGx&Omit7u<*)&H48 zYv2*@tvTB1*ZFB`=!onY1Gw)jANI9b7>Cypd-st2K-lZjS9dYRjeu6moyOt^As+8( zrU3$&Jo)I62X}uC)(WCEtYVJC<~Mr_v@`3f*}||Df+ypsVd|n5LoVE__u>R9e5t-_)}@AvU9g)3l0x z@&j>92~_OeJ58|2LN`7>h78slM9EKi?sNLA8_GLu)U_vazy0H0=C48k&S`jds}a+N zi*#Zt(Z7Wk^S_rV%f72V0TEdfT)ft*Rj1L@s+H&8){NE_YBessD<|#aUOU=gC`LU3}xI$fV!jk}pnC(N(+*iR z>Ur14OpN~&&ii2z91^AZ3WOi>0`HlxFP?oruroU@xirx15>?_^TsMN^hfZb)-n&&Si%uNSx8lb|J8N13-m#CL3t zC_gK{d&s?{KUdj4Ffb5$tl}V-0X&((t$QV7stjD}4DA1TrL7)REs?Bb=HgUOHO5V! z8Y@a)M^P+zj`5;favU{6i?L<9AHxSIRGv?ZEj2uR5Tdl%t0@Erk=106Rzj+c?M7t} zXI*@&`Dg2%M-=SiuAY1iCO(*Z9MaoU3i!g!;L&KPd-c~O}m77i>MP($P!4`7ML8L%MFq_KFBdIN1*nnzt< zEBg9}+~WH_klBSuvN*Zd+%*WNgR?l9k?Je(L_o{ zxP7Uz|IMu%Tt&b+m@)C>Z{1PBvDMJ3mhOPVx~w+JC)3(*Bjj7u9zIWfds+|=JjkP= ze&u8dp!PmFXzzQeqBBu=8R;R}P8EWIT?j%ytYky1ib_;iq4^rQpueMx-;VF#r!D@q z&Vr0)?YhSR;^x(OwNW4!%m=n^O#|9Q94 z_YdBNjXYmlm)IQf1Z?oouW&NPXB0$b$l`VRiq|Ym*l*sa_df@BKhdbV)^UCRHG^N= zLO^?9pdx{G=o3o_*3-E(>tnBwi8xI$5JiI>S2;zfgRj^xd*b1abIC5YQHRHn9i;_3 z#s3GOGAk=VnWBmMgWp593y~(foPls{{yl6Z%lB{8yzG6pU?A~>O-eA>&Zw(dkpxw1 z?RptxOzcga=9JMtQ#e&LaiZyWsKKM|a_FwVI^KMGoZYQQQ_>^oB`BgSE(=+!prt_A zy{g&I5u~b=KNu8$Vl>D>jiKIu2dliI)R)=#^M;e>at561`+e3<4G`@yKuZaAIj5># zfn}#nL8d=LEoO$>LV~)3no7}OF}!{jH%=@9RnMQEu7i?zv&utcpA;EG#DApF<8_N) zrh^+R(lgu`A#hh|<;41n{>;0szZP;B6O1%w_d@r9Be42+5N}u%HuBD`%1;N!r`D54 zST?HYu31IwA3!yRd3m=@7Ou>XbyM`J`)jH!EQH=2)Z>?>+8O+>%UwpHp+EMZ?X=nc z0b8=^1bQPYL((ACYmHr99;^30q~*P0_zNzvp~cn_5VD6_L&=HO^>b1+l0EE{G4j^Q z%2;i?0kDA5qJIpYAH&Q;wWdqk=-fUZBhVXb*g)n;Daf7u{bKEgg{g{4n!r2<)Tvfw ziSy6Z0SqYjMJMr>XexgO^lwIjfUQy2NZz)M9W|y8D(Rk$ov~Wa%dmNHPirR!2T_a# zP$sWMW~uk~JDP0dFp%6JA*Pfuh8EeFnCJo$Znmdk6ACu9^As`N@@(@mO0Jk?Wpyj~ zgz8#q?ncd2qh+g>LnazkoWUleDVhEnr}vEdE}AQ1-rscAb4~7w)J0D3_QozS-mYDF+}dpC zE4HW)*LGeq!uI&JgE3)3qGwuO{xCG%vbP&*`dgoC-aiN`USuuyUKVV{N+)ri4Pq|# zt{y`-|3Kj7nroQyyq7MMfVIJ9<47^Bp14Wi+a)sktU)G|VNUF*@mx>ViwS1?@PC=xqVXEFQNm-|>>t1JTwN-AQJ|uPn6hF6Tsw;E= z=KStw^}0m7ykU?a8Z139E3QW_kL-=PiBtmclkKWt161B*Ys|GXyby;3)5%-(n2YU{ zxzw$z^A^VOo))`MJV1}hPHyz4r@k9@UTlghxi8#@?+K`2<8?=r^q3W*N!}6qj@sob zwq^g${v;Et%*{8O4U`Wc8qcCWRjo~U(Ao*!4$6aC586XS{Hw%i;Tp7DVG|u$8pmbF znV7HJnpM`~N@j{dW9YFS*ArlBvlD27!U(q()to8okI#HPp!D<>T5urmc+LpTJ`%EEET_OujmN&F%YuI(&+JT z{p8@%7Y5w6f1>B?_KL0(D$f~3X`C5X%KZFj3cfC?kMnA&zQZ6|Q=4zbZ3YDZg>(?B zek?glG=70r)qFlt+(~WqeOjvvhwnWfT<%4Q2wbuozi_1b_`-rtxe72S3=;JTR z(&>X;mbr;)a;8GvBJmfzs+wH@_r)BvG4SHbAW;WK8pMs|%#->81P-UgL{=M`wGLe@ z$J@pXSkmrpVY;Wbac4(>_bDm$HFHS_(bJUqqB4N-1nzhPgZ^?%geLDgPNY&gILm_T z*_J%_bQcq+EoqpE&C@DdvO8WJpnD{ausC_-w%Ix|Sp>~wxlivmiaHYTuR!Ql*YnTk zbWd{zLtLJuihxgOYGWQ^ou8>5 zIG?c-R9}a#$QNQM#rcEfWCE1h(%aE>;##JYj$7eGn7{Rs*ReCe>!RCFoIwFbM#);7 zsxQ*P%q5gG@+qX| zhX8DE#E3(a`k(F_ishLH`l*>)R&opkR8<-`x^>C(^cKyX=hq^}YE1Ca+5k^JC6wE} zTp1;`f0~!JN0>k_kz3z+Pm_WXP{V6Jb(nwV*k&^7cKA7s)DuFDI>d^N6b$;8-B$SP z1=M>O3a_gXS)xr*@K6LCjfyLwB)Y98q&JXNk*b;fugRZ-S!8p+8J#xiG-$|*Qo#g= z>>XeLllS)TmVaQstdZDiBPNE71=$|?HS)&zmp#BqThd9Sa4tRQ?;q7vQ;+<|Jzc~4 z$~(%;F6OhmhX2V&oU7*;P778=F=LoApm2ruy!%*3#OtEyO|ZpexAyi(34|;Pm>Qey zR@=WU<(!TT!Q75e(X?v6(;ml#@fit!fn3ZS?t=cg{yCLmh?AHZi1Iig$yXl7Sk&B* z%}10|tyPa|Y(q1mXbRyZ)k;}Nto+RfgfhEtl{9qdCLX&!M0b3^ML||IoKF{+{AdhQIxp{c_+{CqD$&U2~HyetowQ+Q-S*`(RN(OKc?Npx!+Z5qmC*#T(x zAlO{xGq7_X8wv8$RGyie6lgX+EY!MiiD5EmKgoO#E8SglKAg_9i(*E*pkwz^p3HhH z`xhNWL*q`azuWVDG7KtK-`&+2mxzZoLLWAzlDvq2Yx>S+h+HpF`%%~2 zY+%Y&S>MTx9l)^;2l3G;Vp3}_MArYOX5S~z)_0-gJwG-W=l?Cq)Z>|3haFoinSt;m zF*Vc!5!1)Fa3b%RIr^?>d3g>N^w|-f6)tolW{J&EjO0IF zuVVH*tIEV{{KF0vDK2%M>-lq&Fc${DIZSd1T8@y5Sp|xO9gI=RG1*}dvU34ps^bAI z2Qjap2)b3hksq%CNE1GEoGMHHAg6J@CvWBs0ZFXJ4av6bJ?--nFzh5y?Rfo2V1b~@ zn4eKG>t%}E-^nx!P?xj8#PK?_j#viKyqPyIZYqHa#^*ZwughFXJQgySyyWjo#vfy+ z$s7nX@+WfkD`uqiyBi}v`j{bFbdo;1yTuGd;-?oVpWcj~swgez7y{~7n3R@@u;0*S zwk0eg$$D_$F=vbU6MY!*yl;9V)>)35?9CkDs^Nju^jVx6$kW+Z7AEW0b@?@V_Zznr zVFd{{wGNY(j8G;@S8z#x&-Bz7{x5=R@NSd;i4JD{pXgu~4)*_z1OI0`Vq)d^-?#st z?TC?!_5Wpq|8L-6cSu#0tyOwC=`*o&6skojVaSqKKvgpm2$&>MD2^bQn4n@pX|U>f z6lE~lxu{?#8r5P6r5cs;aeSW3?f0CYL(J|Zq()yPc4WQo$hnh(XNJM5D+xOc4EdnCa;%Ey1jaB(Fbf>4oiz5B8ri3>)1s)3u zgnR=bW)X_)Vi6O@frpd{>6iI-7Bl&`n=nfh3N*rG&q7uC7nEeL1mr-Wp_m!QH7``_FG9883FP!5s<KgB>Y?EoglGV}&z+*P*K9+w%feok1&LBzuvmZ>{X7m(xCj&ne)I>6>K-arCfM(l zHMF3+n~%+4Ng_zo5Rn(C0feUSCnAx+ZzBUoJS9YUNLs3(AjbeAKJX)ix10?gbg*xe z(2ww+kCHpgmhiL5e?j>`cVQ@d051SbWW2~h$N|!u@AaD*d;lnjH<1xnKJNxx5aHd*e3)nrUNV&(i8h&jpjzb^}yKq9s=g`%?XwCMv-sL_rfB+`Mi+?z=@*2 z%;=R`l9=oYC4M7sz|cX3qXZCrZ?k=)-36FDU(+p+wZ76b34+7g#~})ReB}ekiH&XoRwFBeUr_~tAYuYv%>6$LUyl=csIb@eTRVym z4}z5FFoCc{aT#sNV0*-3INp7tUrgB0Ng@SKL&!u8-O%}zK)4rv#XUYDE(bciFWj$? zF&a=|V@J9-q?`CgqaZChWvhTTA-V&@cfsG`gQ7c3eFt1X_sf=<^Yv@QDz>%|@^mOQ ziO{r5f}b*blnwGhqws2{g^Z0w$MsOaQ~pc2ymVKwr=_x&>6`OMhw>|qVjZ^J(7cXP zEks66P>OJdZbILdT4nj2lHJ564MP~gd!*LxLs{?+eU`{xaEQjLq186rlG{zWSkMuXecejH9@S zevnF+LSJ(+`h8o{*&ekwy9&{k5tWfbF}@1OZr`YP9qEJ4GP@U!Ry?@y&^z}_C=)+*ZNcG!g>%qV1t{@Uvq88}ppN^TJZ6NX% zfb-UeOy*1kS46&JY1I#t_riW$2@liBnIFQ}UGAPoyzEQBih@$VwLZVKK|S zRsuk7nV6n_RF26yl8p7tuJc%h{uQr%qqAV~jlhzLzg>k|L0fCB9RKeBIMmN@Uskw? z7zH(Qv8N*LqQW|Ib=%P5jBt~LwLtdjZdy%N+-XO_-Q$_H46^29G%TW+MZ8>>W+3W? zhNXS#n|V-eBF;MnA?Y-fa)u zO!QW=ylUr3vlQ!rKWL4>wgHXhnZ6u}g`FF}hEEjC>~z^#Ms)2s8W-~@Tt2?`dqO@` z&M`o5veocLUekz>d8|?sV^2Uo8oM1P13A~A#ow1f2h&S=R>*Q^BjBr`JxHjz7)JJN zC(|zS8X)QeZ7k~dw0YvnQMI34(B-lC6g^Ch;SgI<*&ZYyV^)e8WZLxZsWeE3i@kN> zI?_6t(JQ@{tGEME_EfF^H{w_CBK#m)8!Vr++7Y4+KM~Bf`9m)BJ}*(8&JsUl6RGHB z!_?_os(IXa2@k(Y$atRmvZ{Efo=ld|d`penMWNf2o?@>bnX4bluk}?idrn7h4o4Mz zququsMua2Btk?h>yO<5IL;~Liqi%-HQ_6(6892t`Z$+wl+4FDneWRDYDCgBm1p>*f z+0@^F+AVVW2vf=N`@X1Hb{ygd%ZUeEYJ4HS#Bjf-lWN6&V=WrLF-c}`^H5qcbHp+n_dXnt>D3-a23-8T3O&qrAEK`@aC_%(TKFeR3+%+im zg+$*+t$_rJ&{*X%&BTXqXq0mWlFB<>l$*2Iy75pd9x3P|6VbYSO=KNU82J*F zG4D7__9u*(Ra)giclE~PL{murx>>+UWYs{7AW5=!K=<6JU2wh(S_%eA6a7IMSEJm- zS(PXy4XUf;;J*SPfp|2xx(JytRozrGSRtKzRP&YZlTBqWR(+^Bc}Np77sTRsSg`Mb zk$Fsh^g_vB)lqH4%U^Awnxni+=+nv>7|10UYP|pMinE>@s~WX9 zR^vZPw)BPnIcRZ;H)JOjs~b)vZ^n)5d#oY$S1MS$@$A#Ik3v%J@PNL3ffi1IhYTir zNvrP_xSGX%Hu|2?IOV@#egcoMg6EyA{0J=+#rO*0Hs$-ee3su_gXbvv?i8jrf@%LZ z@D(LuT518)iqWp?zJ^S3;I{Izb)sQ0N}CWux16@A%*`Xu5S6i>`}cT{$^gCB`3uR8 zkXP#HCY{UMh==kK{U_FSxdi*gc&Y0$?gGz@tpA$lp}}*_Eh91W(M9=kwHD4d(b2tc zanNd(@dlA{hQf_V<68=giVO|rK_0bQ+%1^3L{Qsl4qq<=6mWpSf`b|Rkl~u|RzVgP z)=46%WPHx9HtN=-6_ItTh0MT3Wg`tPW<#f^V3M-745Os$Sw}N_I|YV`ZNSatvv!}9 z%%T)hVbhw)ci)H!i<`byMcsaVyi(CB-9mtk@t*V}lnyDx7yihB&bsARNvq~_adOpf za9O~DSHBW_vp~eqlCacK9k|kg4aB*PG%VGqH%~dCI4? z8R}E2=K_aS*Q5h)%LG0h@q}w%&$tm&F}3wb%2%bAA$6KM9v=*f#`$jV*RprcK}za{ zU3icHjA@#-ivj5Lx~cmY`|5g}TM4yntg_;ow=yZIm(GFWN{i^L%U;Eb;X8Ds2fe!+ zFF(O(*;Cmjyu2a3q6dNX4>n%9qfEr*Ai*J}_1ufxP%y*rJRldZH=p4Yl#S;6LlEeUzDEF~+;b#8Nf}u*>B%=I5_zs&uEDiTGe}zz*5NxIfDoTYCtZSBeQ0zn{Vkv|{~Z3Ff_78&L+!h->C6 zy^34ZUut8wS>oDZXO9loNKv$X?iLJXDDfgio)OG-{uqjuuTr)>kB>}Vi0}9hxab5V zx+KIZCe!0@>91jiQ@qvz{6imEdopNoS zWmof|rf8fZrxW&L$vp%tjhei%a4!8 z-MweC9=&hy-#^^l@41tZ+Ropxx~0>t*E-*@=*WW&Xf{k1ohW}&RI_nSG*mcVR=Jzv zo2l?`{evWp_?WPIwht{o8Wzj9lv1yV34xaNcjPaJg%rSjD1ZO?+^p@F! z9Xe3T47pIudcfz+K_(I(~Z{URhQ~W*J{c zD`v~6cy!Xi`N)bAs|lzL|7*zqHL@hQ8OI+F$ta#G>C%NAf5C`kE63z}h*r%%2BN%n z%HiCg$|OLEQSthBud25+l6=E-dlr=3;H=QKq(}AE&GQtNR)67AD^fEe9rxx^^7$Ie z8jRJ_S`pKZ|DQCj#o!5UAaCe1#x#+vdDOky#y9Glw%Q)04gzS$yilX^Erz^5V^YBAm<(?X%gxZEqoUKRb!~*DFF=j%jfa&lH zyzKL=1{+=fyB<4V5zIVKk4&$IYB_{_+S^MZzc;(PsM``rVZU! zw#CE7w8`D-#*@R4zOCn-KXvbmyN66?Kr-p7Utkb6n<`vvPwQqVQ{Z(pcpVwzaHM#p^I^C65`bGis7|Xl2Tv=*DAEtAan($X zAW-M<^v4)OmRKh*pRH*5C}pzpxB750maWTXVgdq*cfiwuMi$J>#G z?|`=vS>BTw))Mk_m|9!~_pA6)^US4k;Lq*CW0aMgt<*vcmbWf#$FFhws6^wl^Xi;^ zh>iy#?05*({_%`Mzm~lN^>d4VUH2A!I7@aHI+Ma0BjzG|?3)FDy!Xks!)7wQQVr22 zVEGyB^?vvAM#6G>wq9=->R|67=^O?sZS&jxGaqHac9^gf3jEkIXm#3#f_o@VIX$nv z##4v$@S|`u3b^_0BUM<;*;{` zEv=I@Ql{cXlkcoDpRoXRfCrZ;yD1aciA=)d^b2QD0}j7)uW5CH^I%g>r*|dKD$I;D zuRXG~tN_L}o5QLUdfxj|=LXIcKboL}%!)Fk*Dtq0Nux@{5*JAz0Vo4c)TGNGWqvaf zCZZEjX>P$+_Z&3=nd+HxM?TZibgDw3U~Yf0@pr?@JqvvDPYgse0fj+yzlE)%i`bo@ zfn>~AcIZ^?v&+f5H$C5*Kn>`b{%oma=e{&}9b{W%`<9?i73Ai9u6t&C6a83R*V&1k zck~%h-L0k%7lGePzF9{=1S|3o@5(vs(wh18G}p7sW_84fVz5{O%__^^X+7;xeuPk{ z^q-n&C7eSzO~u|p4^Q27PMX)v25*Ar&_|VFzhyGH@aj)dyg}W0_>F!)ZrZy6Ye#5b z09X}l-d*VgTB^bhHjukY1w(gdI)gOvv7q9B)jb%Y(H3o-c;L6mW;a+k0|&|YkOsJh zs)n%gd9Y49REaka?xEJLb%4BA>{wPJ7h%LV0+K6Un97hw4iV)K0{-9Kk~rsrJoka%K2z&c1NwP z3PHO@+K}w8O`m;Y@em6Q(o@ev<@G%R_?19PHW3iAx;n?`r|&Xf2#@(}Z%$9xq%=9$ zz3gZ;N({cZ-_%cCo(LspMzCqT_$A-|T*ZZE{%tU^x?@=tg9klJpBkm~uSnp=G zPK+e&E#I83@R*gF8emOF){26MWi*HiI1p&dLcF5#Q-O)~GwOqV-Bay4aQ*o+Y@;)G z#QbkWsZ?H5YvYA*W{^|U@Qam7PwUB={6bLB{Hd($p+sfV4p6V*9JMZyq)v!LbidcrQ>#Sr1gN@R4fKw&Lq z{as?2RRpIj6PX#za{rxzqjB~ttiQ2;g>xszjAamEZoryV70KnORhYF^1Y*X`^Rot{ zFK`z~E7bYpgW1Dh)&`o^NvxD;{kF}t)&K{IA$}{OE}xsCi2zjCRL6$339=+;y-&y9NrUu zHBTv@iejH-Eq^!IM7YR&v_JZvL>N>V$CMEsk2v3VjO-KU`s7wBaof>T^s~Iai3`>p z95p`ZFt6Gv^{bXj$TF+WCt%J&HE~;bIP+&7P#2@S;`%mg2;Gw< zz=(3kS7RW0wit|7y_nQuf1gamyixT)B;{M$T(vK^<1N(oH#@qOQ4rrft2H>%uOKWT zY6!pkiDw+e^B61g=_@nPtnA&{NG?2U0sovqm2d1p|0y*cqf0f%{+w7Dy{Hvk{h60r z-BKsR5~p;Ie)axV4PP4|QRw?h=p2wld&>=wrj!scbnbmNGAz4`o43yv%Cd)?H}0@y zXW3B0y(d}79M#!UK6xKc5I~4IO$ofG{zjol&f-6GMWIR?Q9}Ubyg{edzS|n}HY8eL zhRlrcOU=P!+?FF|&gAzyRq;!97asA`l}eV?uiqFdau-!nHsvRJ%zcI8)oK`gjr;BT zR)4xg_%(_CnP*0LNeOoZCS!*mT)Dn|zM`_+s0&iW{aD|$XN^QNap2Qa&H%aNQQK2P zr&`vEWK#O>e5bP`3mx6l)7GN&Bf+FNM>{E#z8PLPd?Q8Ud3vnIwuD%vlCKZJpXX}? zNO#B0$IIaIsm$pA;~_nUnJ|4IM7{2!On>Ru^)fy623-ug;Vn1*m92b0v=5T_`273g>XOk;7&U)T_qDjD`cv)SNwcdW`=^< z=%l0S3OtwtMvdOcrBi?8SRm_%9US!W{hC!%NL;N!k+)foK)-l1TR^kUf6h)XzIZaqmV5NOFxF4wJZBYnUvN3 z@HG;f&|`H6MFjg>X%dx)oC--;w=5H51m`Zutk8zru^elEezp2bi-^hdq~juqH+cx6 zSWAriNc6ce9EnuC9cJ!Ae z`Ks~Y^5D=F@GjK$YokU{Gtk(+og7C{=x(QD%Cg3YuWyp8wezb4Wf({-S)(Ho`A{-n#B%see^>S|IP%Gs%jwnx=Iuq%uZ#lfo_7hr39kF*=S2y1l*K&N)jNC&) zVw$exn|s-0uw1v2CEHW5)i8_6F<R`(y3mR;{G1k-|ZIj3eApImnWtcH@NA_UJI!G8O*8f<330`|SLo(M~75uSPeS zG%8O9HGrIKI*E~)XFL&HGtHjNUHgUAHdSXT25Xl^NRyF*Z-0c`zkjw42ZVoimih0c zeNE)MQmfvkl%z60*R8NP6YTrTbfniWJUBUu-yf-K?8K~HdPU5ZH@MP&CtQ)nkd+GH<}rI`<@V;#{dikJ4G131m6I;nEyo!IsS_lvT^)RTFAlm-?Wf} zlly;73q2vU7VOpqNL1#fBEU`wq&z}gL!|7%AWgtHfW@jE#o)p~lmvUL(Z$gOrPvAq-(D8nrwyf|kh0&FbxYW}PkJviRY7(OHb79@}a zRY(~I1SBv&Fz{ttEHn#TXnX_=7Si$-gn)PlnM|OHWMFt5!TLH-Xp zJwzzc4Zz6-0L)E3Fb)p<3rqW+5fo`>=HCQ{Z(l&z`~D{_GWys0DkQiFSLffp?gB@j zKzwvakdt!DyMityzJF6AFIaPs;bQrpc6_$^Ot`viyB?<;01PkwK!lD#!B1jgdnGLN zBqW%y&$GmDP3#8_+QI%PXbTHyys)8f^*q!?1W=LdPR{SVLAPL1zTKXHx{G|r`pr6y zzAJ_g3CHp(UNQYsBq)U4Z`{U+e82$c9tp{S5MT%ca0|+P^DSd^atZos_kmF4bMx#b z+y=OqwG;X%a7TWC>S3H80Rt6kZx{XW`(C)2!4N=(28aq%1=0@@z>a=G^2iVHpR9E(c%guAAcwFq zN?>eORxGE$TlE~RaUdfyf2vXBiUTv)%j*s_`Wi&w)f}NwgyZ11Tm4Df2Qv1-iqI#^ z$H;5~EBaO32NqEz5Kdlwq`x_aOdmH0T73+zUO@fA81l+VH-h; zH$LlFS3%|YpucN)f3o>kO^;~gnq)1{r_B4^c%9E1UJ(0mlw2hSQY0dxQfI8T`+dzv zhJFVF*?dG$C6CN=uk6e1+1z7a;ej5t{{}bjH+`n~7)%_UZvEU1uU!g?d}FU<5~CcQ zGkpZ&Gn~Vd-mIul8wuHonE#@O&Y;VxqGedY<_xZ;+3Q9#=qnsPHe+D@tu0of^+__Vs<2veeiBlnkB zhVKqK3`+Zg0rg;3e4Ti>p$rtKOj#5JET2BMU|UJ?GktEc_hqfY$}?{oOp86#M{rvj zu>CR~zdE{km9T(-Lg?HBwYG;ULmm=8a+>atW&;~SD>0qVFUbbW2gjqsO{F!@hQ<)> z6&o{ko*Ad!{Lwn2;L^zu&+o1C)?w4`qC(fe+D&k}9&yYLN}c@emnfX^;p6SVR8+Jd zy0XNPA4g^lWo(-N<<`gvE|8Hlq9E%Q=&FY<$Wq?-AV$ut?g*zq|u4+iig{iBogo zUhwQ0BxjoeUIV4`VHV@<;n%jB{_u|#T!@d0*iFx0~ zm(yKeRsBP-DVu(F+Wyi`4EYl1W;H`!qSO_#sqP@Vr#KA{U@s>4?(ixS+T}a^+ph^~ zN%2k``CHWt%5+<5o74Jt8bRtjaLc40XS{%IrpklA1eoeEuP%~(&=`z#0P!$5eZ01U z2LktnNM!p?=CgnG3Y+ijU&l<^-pDH|WcLPPW`SSl^3g2EH*QHtvwKRhEIC2rTojL; z%noH+2KLH%XUSVy1*LLitUTdJ3-6nUTm&fvZQ;@5WmmxN$)`tMUjC)~R+Kd*>Yz;p zJ3-9*0dM&TRi>XZDy)f&rWwn)MXT7p{i&E^t179loBhl!a36W)f0jCEbIx$tF|kd;hm zG6we{HBYVa>ipQ|QpWcDp-pXIT^(NFFavb6wph=mzRQ-$-R2otjjb zxiir$C-GOTChAMO?`FbaJQ8J=BpJ*?kbJJF{Y*ZDZAuQMM+#Lbg6Fgzy2u;^Y1;A@ zM2?cKY5$A}G-Eeum3zFI{@+S&7pSDgRvORC{{-a1wNJF9}z8Iwq&;lP@!rkvIXdg_QicC0EwfoEQ=lk?D- zRU)uBNs%d6TtD=#k-So#auNwgPpq)5wslI7#W;ZXdya|c+3XCako>Q6T1gPS`TomT zuo`?Cuy-ra_6Hoo<$e)GYkDa*zQOcOERh@MwBr=UTj2+pE;Up6JqH~HhlCh8y& ztf9dRm8h6-rYrF_SWkj+Texl_iXs2<1RjTzfsB2BJpTah&NVLg94ApaZ|cZri~yR9 z>v;#dDeD<1p_W!v&KuvQu0**$Fs9+UFY3eK>5&L3aE`6BP+thAtLJv@W&h1GKq^As zs&sf9Yt@PXbaInaSB-#TP7kFs5sZYV5?$R|4-f>UC znRvgfFg}nuYGugtw#1@DuC*d} zr<({;P@ggIk!f1+M^6ZY`4t*Q(7lq@;XdtJuCF{vLxTt9eM5f1eh2eVx7Xy#oOY&l z7-1&6Kn~u@v14i8UfYr53`5{#m#UAX4y;R~{qDaeH-u3=-TR599q0rc6T^juJkxmf z_`K9Yco|68$o}8aOQq;q2YAHh#K!!`3TqT@=GX4(N5wrJ&2yG&9MfR-!Ctt zybdtX=R(^GS&c!}so#1Z8Pzk*nN_iVl&AxdAr$Joy1T08jB`SUg8CIoeKBPLL=DLD zcRoNk-lg#CG2UX3n8U#?Pt3YjGZ4VLY{OQ{jhBVOx+$Ph^&6~r-e#{P_8%=>6uYLa zQanL_ENYc^DTQcy)fb_1a|p_P()86*MJn{3N+v{S3Z>##`a;e=*i)$(P&aVa=}x(7 zxGrUdAP9>dxW-IS*lIyT+N~^pH>Yu0>mgs*&ZO>V|6M$86v2%uJ4c^8WS)FLH9oZ? zJ4b>XG|K&@EHK{FDHCGDJEm3y=hEMnyJ_)tdt1*pD5=2rvbFkmGt+8t8GZgLCKO_7 z&a6<9_g&JEJ~f|w5DP5N%r@f1Phh`SZjB*FOedKVp&t3Nqat1#hy^T zhmJ?$Wl(g+*=Vk2#j7HD$#yNcI+*t z@z2~=5wuv1p8BJ;&a7fph~4WrpkPm(KdKHNHfDrUQ5$h6^*)Ol4X@-jPkRh>qPOej zu}jrToQ}@bp!~Om;F9wFO_<0?`eU`j9r>XttzE6dC}MczHDj-Crl(c}+7z~O0#gr^ zZ;_4UC&=|9^GuAeL+#kO&N=>Dx;@13(a-1{g5^9Io%2dYlL`eM(5`89ZU3YBFiiXS z+t*|E*e!eoE2@Gww&hxuq(sol%4s?Hw9?v>CX>Prw>+Ejni!<4fIn!Rlro0ZzeMf* zzqCt{h|3$~Yjv~aH($M`_h@lcOP{AJ5(b6am9fba#}$vHO~jiSu^5L0xRm87w-WDq z#+KbFo22_!8R)Fe4{6WVN5!mGFrUN*z_*jwc*d)A#T-?v^pT+!aSt56*krRJR^}i_ zf0$SdDK@4$YL75KQ2sUyI$(;_tf>17g#0K@lk|bh&1+>M=^I8ALEsb)?s;RNT`@B z;v-!3D%ljWx{R*ZwQF${3D+{zq|s$X#5wX}u4SBAgObRW=?Y^&uA0Nb&I1IEDqGv= zhu+HMR>@;wLIi=^xx%3H?xgojNTY{@ZO-t899e0wNWE%N#b~zRSt_qu2q@4gD9~Xd zdC*YTBMQ04dI{1<>!3Ht%^$>t$1#Q(Wb=EpBP~?<{;F>Mg%W1gsUp&U?d)51^+Mil z{M)8;A{0AqX{w3ON(IU{Lhl-EddAlxmdlWXP`ctY4)22KxQN}Q{Nx7P>{8*WO4OZU z!bWpJXi)ctGzERrHD&=tu-3LBpB2GkdNyNITJ_NWY{L30>=`VsS;l5LzQ@d!Y*?nkB&?wkre@?mbZz1 zm*GPMV!IgcsnIc@qNu*dwwR2m&ArxAnEf=X{T3ERiI>Dou4Yv>Q2&Ib)iNeL!X>>` zA+uRjY}^cDf?H+AvA~F@LvBh(+J_SFR)GbP)om*jJL55HfnWOEDyl~Q)k%;2=Nc!Y z=Hw!_ZP2(|6}|OmPi!vn=UbXN+AlUSz86MqH5q~83hF6BoP~)Fyj@R4K8KF7&Y?<@ zP1KF0?K0#bKaPO3vP$N%bESK=&gCu?S-)9pUKS;k=e~q_3#)lV2RKD*8hY|0nv=9g z(TCRGERIJgKIe}UB+<>i0t6gROw*%*l;lChRcpZt?ynr9(9e>EB8;F?EjICd8ZEpE zplq0OzKzYLX`!YT`zEr@adbVh8M9Jbq>pWR$P!8Zqps?A3grWzWL@PyRPQ_mHZk0! zSM?|cgQWo5n~-FOt?L#NnCA{6NyU_MMGjX6lrSqj(TJ{aiz4HmvYO#8H4v*bTlN9g z(tpFxN|HUQrb8N53?DE{4Dh$Tot*{Jd4=k5Lfg@j%CaUYqC`+ka@(ukq^$o6et7bs z{GnRinI8XWmbe?G3|VYqh;JzfsZt#-WB-jGFQW63td=1j^HK?J+EUM~*d}OoA|D1j z%Y>wmswj00j!)9da2f7NOrTvonZ}IZWAO8Y?(S9a4~*C)JOp$y!2xa^V(PMEF9p4= zr~d6#lrUSz2sBRit9fbDjE{{;JtfX46Q_joi_FrL{}Oa(gqUXrxxk(meAd4U)0bqs zT38fc`u)h=kbS%!>XrIehXD5vUYuI_UP7}OV0Twb;KPyg&yU4IO(d7Up*(UH42c}` zzaklr)b)lza(ldZmppkybSG~6DXtKFZZs5W>w|scPI8LB{q{oYDRn>?g;?=WT@qfb zR~zeZ*zZPhkZ{;ZE=lWUe0tGcQ|(cb{|uYr_9%eJHLhnfH$GXtXrEiX1WX6?x*yb{ z=jPyv9|TNddTx?ZOndOFZu~ZrJud+4Au3(%q>*DIGent&{LIVXIGu_bI4Q3BCJ3mm<@X`yUr9LN4qMzb;XRXY>uYtDvg8D zo3mtqydV~ckCo6UCPIe70*-@pVu`dsp>$DNVFc@BZ#H)ZcIjrj0q+=-;ZQfM9OJS8 z_XVBV=@&u9P2cE*9%iJ2lxbm}vHRED%7XKmABEw7(vUTSCB?_pFtT!tq)lc?t!b-}R148?74J9->40)O>yQmSoc>>xv8% zuCvJ}$hSYwpH8!LqW}XZSpKiv0fZW$lu_J;p2c_Hld1Y9y+o1&;(055VYDq0&rNM_ zi*35D9h{83UQF?$lS!hl=$uEY`mcC1P04w_iB9UJL|UUI88sw>HmPL4UhVzX)yW-6i&my~sBKhaq+y%C0~-X;(s7XLZb0FuzCa>nn~>|-rVgT>2H zJ-tq^-|0*tdFz5k3d|)qmkH5077`N5gWM6wm~MqyJ<|Stz`&xk2k?;N=9ThonBSf5gvyPaYB@+U>D2*u zi(8(`CSbJ5kw4mJQ4E&#ksdEvfblArk>>MSs8K+|A1xahFZS2oqzp=SWgDZ!rvr3; ztd>xjhku+^#IF=+5ih}O#P?5q1veTfaEIvKrDdM&^ca+}3RL74+BCYRuC*TrUI`Rl z%Y;La=o}sxa46B)74PEFaH+fJ`ELbUv6w?E*!~sA8k71?;C0ky)3KsnX);>Hif_p7 zIE{NdeVddNyfRoquKy6k4#t_Pe%pv#W_EAK<6Y!^103$M)9)fK%NDx^T-do?*AQoL zw_l{vKWmgJv<>4`&!4k)Mjp>)MxN@5Cn1s}NZ{jTPD6LnA^LDD!gZ4D#}qK!Uj~-( zG7F_%8{*LaJPhMA*ng}$Gxd_wm|ub0x+Cg)er+)R+xB20W#oUGdl}MLt$U;`uw^2> zK&OSga}H5vwR>#j_v)~W*KO?F12gZ@C2z`uNU~z)Po`n-^~dh%%a%pwHR%1FG0dKQ z+&{r#EhwcmxWMWqy4{!=RZ1G%&q%*JU(2_q>^qRJZ5|`e!twJ@X}v(pOx+{ zJk02}BzikoDI!+F8=1Dpbz20219b@Tkbv+>C4Ea})xHNn0mY{4L-7cE{hAzA8i)Ox zYT+0NO6ij3a^!>TXU`CVpto2-EGfBp;1rw!+XOs-)MA^G70u)17h5mph84~ZOQANSiYqbx}SY=QEgYSf&GJbE8? zyqpFROXHA(s->ge+Qw}k-7_>KUq4Q;Lou~h+Xe!LXXj8wv^Lki~CT)Te882ov$xnk5V7J zSs$+(8M=R{&RX0c6OR9;0+EioX<1bAA&9{(R+=U%wMY+vnvDzuZ7z1JuxY9s>soDX z>?(-6Zu#e;?%cA(4wlbRpO6a{ZKoMOa(}AOGUWPO6C7E2&1DiSg073Gxi82E6op9` zUNtBwA`BdJRZF#f)-8)o9gIQd-MU9@SgV&5O}ST=E<(oqWDQDAYd_e=qp7vqavX$0 zFl{Q9CvEdoxRvodUq2(auJ3Iz68#nD8I}LAm1yT=^Hy;UQ4NTNlyhC+d> zAG=%Jc{`Aj&;k)(t`eEa3AQwa*(4(#1*xI}*Ucz>r{3z%Moml+RIo>;A>6+~~Qdh(Sz5mf09m5e?Sbwd;JC17C?JpG}v~+x&bPdu(!_ zrwILI`LeU$nD6U(OYOx=(|ow@!CJF{}K z{J&T#3lTdv%m0Va|1+fek47{9ud%Z$gj&k=6T>Fe=09OU3@;iT>M9k|w8I3?Gz1SX z>cNRRPp(3fpAzcIDFr=Gy-8d!5D?=s{q1q3f4;?T<9FZfBk0rn?zMgV%JsMD@x`k0tEdORJ4!$3rmOq2BK(| z8G;Emc0s5Q#JUy{kbn#zqX9upMn(oe!$R}DU?B&k0H^{tjWhrV{((SHL^tBS1W7J0 z5@U`Qst1m5ZwN=>HjsQMq@k;C2BkLI&0C4RCfeaeZpT($kq@_X)+``K*t3;f24j%XpT>1uFfqms70EUp>JUV-q zdV&2rz0v*1&;xTY@Xw+Bc7SCjC@LXY=^VntpbjL!V2wXWKOzIPEB{{vco%?fAxJMJ z6j+L>8^DOIzxP3pNGbzuB5WJt=q8%vMicjens%V(03|L?iEAS4WW^Vji3~khz+G`C zFRM9%bYpib0Bf14E%lKRRijp+kJ2%tkycH8m+{~8d0Z~GV zq`%Sh@l&Kcxh6Z&#GdL~S%=vLua`&;d>g1PI1waqz^cbZ4;1MT@$3Hf*vq3OL54Ph z2+0SeDdA#gp9pTw8J9oivA^9VG9d+40Caqa0{iN=d$)5756!{?c|E_NzTW+VGQF*% zbk4d0u)ldJDI;zGp7%jw0AD0AAwUAr8!-g~^v$OQt{v0GH8$vXg?gASDFEq9E?S^8 zK>p%M6QCC`)sOIE!6*-|)2swo2@tcVAR++>3krR2t9X}Fd!swg)!|zFj)zu zG7N=Y6!DG)jiJ;+kzfodz^y7D~h7nEG7^IR4T4jGU9)H93yL7c_rV`XXx?<2 zn1X-j$sQ|votJk#b#^6#!Q=nfw%={3jZMy`zjb}|>gWW_~_vwmfoJg?IT z{nEGGSyuI&#@ecgo`0)C7?$HBMg2G@a-e)XW~B;CiyUwGueR%JV=DU$1{*EC3QIgmc-P3D-7qBv-D$2v zx=gKQDt{7(+nEu5Y$nM`m^yU_gy&wepUMm?x~Lhfog7fpIlep^KTJJKat|W_dlCHT zrlGzmamf3I+sTc#%d!2HHwG_n96~6KNm}uh$-QqN^l^gX-+WA%+uc_g%pzWDNxSw_ z8i=#5eEKi4q76Bk$?5m=RDb+{>Rkr|nL+u#e1UbB&jf!~LNn5=e7D)vb5&<4<{k)@ z0;A2w4!vND#*aRk{pEVXjnx$?wtIV8^{+DBv%N@FC!3S6rG|LrJ)b+EuLy~b8Om!O82^CO& zj|^k2E*Y!$(3qgb%TYSib&no~rCYI|>#FC>9ZQ@YN%;lq9)ZKpAY*9jhB;~8H6&CT`BIdp+v#wsCyklEiso}0?%`3 z=NV^aG9)5v-{GaOx~%yye?8hj1%b4Av@97XD3*O>l*r#52lV06ZXki6%QJ-O0kK@0 zUXzSjZEsKf2~ohcIaz5|X|GW{Q%{wm2vAW@{0HQimL6Wn-cS`HGTzNYen3^c*0exa zf*EC{;#gvQ=MHMk2NKmo@}&A6R>t(1Jj%Q^iD^Psl1>xLqnm1#+MGVh`IYfIGT2oc z$YTwdMeKPM9hxtbH!gBmdP=@p2?@z2H)+?HG<3uhLw=5&YfuF!%-3t?g8Tym-Y-^{ zNJ5dQam0n@kaj02@0L6tm!a6&pGjxwn7%jWx(C}!k$sUIJf|8k{z@iCVrUsfDJcU< zbFWTj>*=EzipXDDIhFX}ubC*n_8IK_HCBS(ZKjuXAlelp`Q1@SzCPcn2HOB(cAK2( zuTdmM=hAMp*lEU$Q@(13EXzgOc#Ny#f(O=^(IYPi=r9%rSqw z>4Z+z%qMmkHj3v!6^Ff(wCTn+uHwLQHa{G#rc6Yb4`q!ErdD&>f6gWZ6e z_!?ES*{QAdO3#Gn8sbE1=g+6?`l)mw%j|Hh14rQZ2euSbhITGQ8{}!3H7SVQPTHM* z6{dy?g6G!@6D=DAl5*z@U4mmNj{XbJJrua^$6EJa)PP5}xabtfDy#?j;B^nuQXKp4 z@Dz}!Na6>kk-srD>CGG}FAexxAdoErVQ~!^=?$cRDLiu- zR>7+e{3>Ut)e->K%qEII9`{J!h%;6hc1Aw#ALAlhWR9RF{|OiWPAQ4S6k0{b`*%B( z_HfWb(G0`zD3sH$pT3W?T@gB1%<-euDVpUIykDpN6%rzdH8u;3WFDsM98;|cv<5rN zsDKN_4-YWo8&X>W@j#>}ZIP*!t`Oll#Ea`n}~jV6Uk)`K{fq{ufwqlLR? zaIiUr@0*X3MQ1{v$9v|`Y>NIVBEp$$f6>#2TO!Sc!Rm@J0ywZAzb@jf`M~$U;H&3M zv!+uOZ@bx?C^m`BE%DC+q)g;ra#ay8)O*0`qcfo-pOE=` z@#=MIKFO_YH$)zeJYJ6SZ21VuP$??5N)Dom#2N1%Jq(*3Ki>{N@vJvcLM8u}D;Wxg zv)q~D9iuoJ3l7Au!8ou3oTZoMz^FkXKkFt#rg&5T55seeJHTFM)9=38L0C_!;MV%J z8X^L;R6e8>(=hJ+kU_c$A68#=wAefPF>JY!_oaj6noIZB5z44iP0fLnD}QE-95@ulDDX8kUbTfCDEo;Nis`APFBSziG&oc|sz*0|!mIjKq9tVp=|GyBnS z{2+2f3E_Pv9tk8GYDWon7_wuhQJ`ZIuroGI6jdU zMvd>i(0#!llj>?uKE&09ev#7H+CnMlqAsG2L8IFmb&L@=+rvp}C>sDUzV2y6q97`u zl7ya`?d73!G|LafwlSth4v7!C&6c6lm)3SL4A6$2Gi4*K4Scj8R8mJQxGh>t4xHJ> zgfS5Jq8VWEwub-u7$a0!$tL!sI?Qc3MsFRHT$o(WI}}rQC+ERf*oC`$IHb(>9r;QL znhRZcu2IAy)J>qCqwyj4^CB>1Mq@^zGgauq@Stlu)sNB^jyyuBM#+dzk|k-7aT&U( zpLpS;F3+vo5i)mQFOpGDNEPZ3kYCm1C&*`;Q>%6wR<4pztf{mbYR%)#zgN`TQfMq? z$jY}F4YKsnW}a?PH(H%2i{3hrOHV|nRy41FhT5vX{IYiOG8{;lO^0xsW4ogw7r@1a zwYsxc-!3z+Y0>B78VNyF^8wMi)jT|28I-?EGc~kzb3MT0*)P>qSL9?DF(PAEwV-R40(oD4R;5ROv6P)Lfdo3hv3xY79yc>PErD$lg|a?|&+)T8ZU zZ0$~#0TCLqjQPJdTa{86JQ*EUkC@}71&pMNV+f4Vs7lbnHs`Rwh-p3a)k+N>x^Z>% z@_Bp#e$HB;H$a}!GsA&e^S>FL|2mF?5=y`>So7{{#~Jz-?q$%Q-;W%aQMgpd={nY^ zdn&s917BYLjgf|KQ0eBse7{{6zFbo1w*hLSFxG(W-uC4O3ktK#jjM&AO@*>RXRyxP zr%QC&9$>=}u|ochTxPUiW;-6q)f7%zBX=0@JYzt}2Ku4P+kfn}huX^J>hv2aH zOK&@}%k}Fson{FC68Nx>;0x+l8DSdJVd2a(m$QCbROQ!!wUM*Dg4VuQ$=ce2!0#ak zEP}}~6Kr5$uYq52t#(i{pIR?gEw*GUvznK^WWVI#@e0?g=(Us@+8PCk^zu1*IGKk` z9ZJ{wN<^>`#-fpaOE2;NYIfz<)g-u*Xtt@LPYh@G-u!CBPqyQdFOYg8^!qk>dACE( zT1NS~F4&6~HnCiG^+-Jge+nRhHcSucNTHqT0om&~-_I0ub`sl-r}tdGu41pv%uAa} zlB!QM{>jKh0B%*){r8Cav_!`&Fm2w^X6%Ve=2Mf`8^{V?`WuP{TX&yNqE2YouSS&L zi`z4Cq#LZxTzf%JvIN1N*Hp||B=xk_C{PESqvsCCcmb6S!YB2{lYyZ+ry`72rnQJ? zQbLlnl;rO+4s*alUQ<&pbaCU$BPy-IQPN25p5O!ah`9*63=FZon}_!Xq6%Q3wx^1M zT%2Rn!4jXY!FY5m47&pQ!XC@Kr+aX025r*j@@onk+id00PsQ(;A*nIc@JP+^RKj&A z&WhT&C`f#nIzex6E2cIM%6Sj2^bq~0&2|hAE-XhcKsKMJXt6oS*oaUmFaxS(VMj{p zHkmo!*$S_(UICS!I8pg_cg0AteritOb;cgE-obd*L(?Q|-q$|aZ%c*zZjed^{A{Rv7*E@bYxK|E^L45_c-Z zPf0J}pvT2X!Z=ls!E(=1#s{^79uy#{&j8M}Ev2hI5(wUeCPMVQped>qL9(sB-=2G{ zrv=%t(6I2l=aRo1={}a$KHo$v{$7Ilx2_@f_{G2+6_BEQsBsY3AagcMCF6lq#xKyP zWPyXP>r$k~U-@Tr8v6(Df}EruJzKBUFqBnb5@|-z6;{A`zd;t_T$$!qifkYV0pE0; zzHMyO7Ut)U=^yE}TCZwf@cpLz)B31-lEMHr@D$4p^$5i=YEuQ%LH=qfJ>%?h<%pp=l+MQ27n%xABT?{TrfjyEr*w!w)`vU29^ ziS~WxjcK+A+dwuSw@~;}F>Bl09_yvIeu?i@ze*JDk<1rcpFEIB!>qZ-@kMq;S9V{8 z7rVzP@1i}S%yS1?eG3t2DdXFVutz zZLDqGJ-&j#aVx`KP)M>f;F?)1<3hfoYZrU}<>|mZB{mil^&{DHCW#rR7IAoVANB%NF9Za^)1ilJ27F>@Qm8U4|5A-L`O>S%=ulRWU-KW4i+)}vc_xOSgBEP zUNH-zO;DSdUMi#?V`VVXneIaR3|_R_?q3cx87h+2_mXa^HPZ#Yi{4wqdk9Cj$fr7R zbv!mZ0wV^AK)Sd`MQxEQ&1FKE(LYUET{ZS338>H}cDiV!k2p=4y#H6-_j3=$>T5*jpj+n|&$0-=+Y>_i&ji)T4 z{s68s)w(23oC&f@wexkgI~*?&)w*6$rj*_&!fSsse8v8P>QWIs9^A>4$DHa>6Aae- zq!gimf(dK6<)A&R1mRP^Aji)5z`qGP&vtoBL*k)pS?w;sqJ>4wLN_i!zf~}!tuNl8 z%cQnmE{&+!5_neTv*CuB9`p#a?O z#@P^qmoXrjUw4+i1+OPsI!WpCXi)gu~lu&t6SiD1U(?y18tbfF7gI02|>}epelJ-V`Ki`Giz+x0+KbulFP4}n=S_jHp__`T=Cx8ZMXWW z>m9OZAs$*S)iNHP{ zG%hYS*8k@?%?(@y)n}(AAf)McNI;BT%N#XzM2HI%h%p>ieLn}znVl50B^jKOC2)zh zf|imX&KZ)AIbZAc%uDV=Pq?$e3S*7_4KvHQ>4;T;_ z3Ii?0TP^ADO|t76cXy!(R4t^)hVJ1( zM2B$WOP~%WHn<~*Mu<-;tl!{{L0^?J2^pZj?I9(8k}imCnXZx0-~!OO1`3$Ka4zcR?uR(F8_?C^a6bFBUJ`VmG@zrLGopuV78|5HEjAEF>qKOT|a3dPB+V0+LKs~|SJ zaZG&xbaR4gUySuxqIL0i4fCJP-xNSzy6B@NWi0c(MLmW(y&< z%{z(6K0>xth8=MYTH@Rs11PwxR|&sy2Q;`S+fK^c6%%|UN%xQ!djn7jjg3#Lf%PS9 zi-3U6wt>YI|7-)XA%Bw=COAPfFc2xIU?3(;ph-|G$WNi#n=`nN3a}p}V_J{Xs~8uE zRfFgNK*&a4oqt6491yR0j>|m3|0c^$8a>tkfWE$?Ukwx zvJWj}>))Wo8tY8m-5d~IkB9B#LN!FYO3q7!HPa= zBmiW{KO3jtFSm+f66gB-aYu_C4$K<@21e;rEVPanWwdEEhS@%qH*69xB^i&=sT zq%>A^(7%fs2$%`#QJ?2hR|voE1_GxuUO<)Ua_y6M-xdtb^6Q`{M06Mk2@Pgn3T~h# zF`=BQ4>txNYMn7U0}lZNjw}hc3?5K@P22|&N%GCC;D`iNelPNfDir}75cWePbzo`ieAIL8 z8y)yV2Po0ssZYtESN2=U*xKQ{Xhey}Sl?x+*Nh0{oBrzsOtfx{$JjjTb3qx|=4(2x z=Ct><9wl9X{wq+&@HAigL;jdVAVd;wa{XMsKFO#z^k-aD3gRNI9dafXOW-?&!v)nN>4RJz|(plv~czDMeFUC?3;kc3CQc;Nwbt(3hLoND~ zUqq#$?7{+Gy}q={j;l=k2nLx`gy;ho#RbADT%UYkHyKaNx(5stR zGKv=oRZNnSm{=wXce6NQ?NO;-*zj-=m)-5L=CjX?BzgQ?O3S-8;Z%6kgjxW>hdHXE6Tu27<+oCeO~oP z?{Ro@BJyAUTX|jtRp0RNN%D(m$er7)P(FgAXlX>maMb82Nvb)6X_ zg}tr0xbR7J+bPJ(Enq6TnaX0@8g@h7e=E!4;A_pDc+PriiVe5F2LJ7*$Pl*Jf;76@ zeorqz=556k6&Z+gdt@cViI%?BS?vc3M?GPCkL*$Q2`xJXzu&T^p5B~;XNj6eR z#8o^BkBDWT32jA!IZeaX2k(kjgQLXb zZ5}6;FCI&O!!WJg+o=K7HG3)EX?dH_#j+*A+c+;Ts`UImFD(ZC-Zr|%7-8JAUr|X6 zvpGc;)kK%$V$U^ueFtO5mYE7R0kn2Ko)o5vjSwT#_AjhIJoeU*3dY!QA^{7mmYr9) z$u@|rW&5KQ-%U|QpXJ7`2R2r?CL7EkU32PPt$CcQA9>_{qF&v(mOU5O?qd0tS9vP8 zmQ?E>9ys&->J*mhv^|mR;plcGyz*^HephPBFNgM^gO*w!nUq0`r>WcnyCB7!!0264 z<+ez#@Mue$RV=}cE3O?FG3L+y)?R1kYGZ^;^bIPEHs|QPaH9(1*Vr{p?E7ZO`EyBR zxkLF_ra|Kh_O0VII}`Aw9_rL{9u#*(Y?3FJIZ+;T8i_iQ3tb4RCD&NR;xn!t?Sk5~ zOzjZH60Re5aKQMZ2UEnskBd963$X&Z3ste9^3VY0-8nHob>3dsul}e%r7pT9mb%c0 ztyr*m+>h86T5=s7Uf%1Li?4+?ns*NIG<+;=`x6P1oM_s9vkew!1)3+P?E`;2?gLY! z<@NOSMGu>OjV#L*8o(6ohu_ldUAxbi`ZA6OuF4=J&}Uh%L_7yZLiI2H5axofiXE9; zC`d^0{u)+S3ty+6+(+{4S@}NC!?Y~;&>*{L>C{FIX;||(Yt$M^{pO;{{v0HeRgZ2b z8gBFs9c8RISr6>~62Hi{VAN%gx+$%qsIG_|yKEnc&HXfG+^L1+xr_6NL2@l!5POBj z6U{BBxaE~1%%=GFfo?Px6mfY9R@P3fDU)UtJds^0QIl>LX8o$1ug57K&e|@~aa<*q zSJs&|Lw{gm;0afGfm3v0^Uy-n zs)YKNf?oRN_1W-ruibQ80kjnF?^0cClo-Y-L(`RPE2cDmu?8+Yg1xH_G;33Q1TQSk z!i}1<@49p+?(lR*bu5;(rzuBDMi{G5QPyg>L#i}H(n^=W>o>RMgw|a#Z=%G=vOr3lo238tFE;so$_xjC9$?$0`0RT5mUzBm z6a_OVOhWrxB%;>6klUAs2YezU{IS${2}`o9&B{$NV=>5{YdMl`d57^+Q>{-yNi;W+ zh^*^*M}5CJW0uyxcTWCr@b36)FdQs=7PuTuUtSWr5_^6?s0l&YKS~d!QNEnSzJ5;B z!RM0p%^jU#^{jw5DEJ*3b7FDA|8y@%e;s(=0;f_h77?xkgQsbb z<6Gc8`qN4J!91NB>?JDrgB#4fq9;cf>3u7F5{ZElM5cA2a_`4L+&})-OplV9H4W|$ zPyN(c3vje>SSo$zgA^IS%&sWxl)fKx0%!o}1;G zd#}Uc@$}f4?e%2639Nkjb1N>V8d~^RyZynYVirGr?7hJ)^S-5g0r%38IA+q_y1w)m zwfCdJJqP2rN(eTbv)Tno6+s&BuVn@Q*#0qHJW%w*N!C#qXdl{xRcWKnoR-yxSKpshYu)uwf6^p|&*Gr-?AJsHc4};l^u{K6v^>)76a9>_kWDlN8d@|a#O7$|Vb@^(Kn<7|Dr%MZi6+U~`S?7v z)q0!Ddi*+BPTU%OlI3pDb|>gH{*iImnewgbe%;de5I1m#o<`Eh8}fr2<)MD)dOlEm z_ninD13`Oam2;m9I4SZ*y-Z{bednnfx_abJE^ub2RNj%*J!afd5xG~C3%%(Duqc$_ z$EkU7QMV;v*WT*Mn+?Uui5eZ*_EZD$t5+MG+D>VU8Rk-?QVhhM7GqilhQ|9cT+gM4 zumFA^NGbN(y;dAHS~o`bW?d}B@gi7dc`N6a#ai}?Rr^Sn(U9(U-ZM)zJpJv{G8k64 zGdw(zIzZB6Y@$jw_LtnJQmQ7g(`bRrGnsQ`s;1Ng6A^WZ#oo+^-pX92LoG7az>a`A zTBU@MVRv3hC^PLa+w-U5_F63Ge~@{^N0r#TA{N{DH$OeO$>ni|Y5j4sB||^oL6{ch zeml+%b@Qa_!6)HE{0jHC&`3AGyEZM_xoZJKY6GzL!XqQbcMZOZ6sUwqo3_ZZzczDb zH}?K12acjmn?D`BQiA*YJ*!$bZB^X)26XMv=50uvk8TKCRyI9c*R z7W6mAufvCg^>zePV+ z;LWRbCT8(#593GwNW(J6%3mUwFCE%JV<@>Xz@GlXDVb8jyQ2+@%CuSX%h@-rc}=VI zswIh|U&I=s^02l)(dbaoy5ROX2Ir=u3~G@TOLgApmg@W0O%53O9j$d#PQK&)41{L$ znXw`I_5PAubBP_;TG_uayduJJm&yHsc61FS_HOy`zUA?SK}(-!9XqD*l;nNDAaaV}vuhqQ-%)fkVf>*uVE zIcQXRsB)Z)WXmzOS|koG$|!Fkjf#8zkjnayLeW6p23JeZ($1&o2w0s0nsygD-M6MQ&*+F9nhFYp zzeV8p8(ZkUn*mY0bq9~g;AMJ;c=6e^*Btk zgYebS@e5HGCv%BpKv%TA!ozHL0u6jHz5Es*f_rR)Dv`j2_EQ0?(sQqP{8y`GBdDgnCjR~>y-c*E(K=`*Ge$U{GpLSjWvJB)$H#A2KaZb4F738qA(hPWo>M$%*SrUB zpDSP&-vd_NUgyH`@mNk3{U!n_9e0AlbxnLuB!p6p=o7APz7(e?gYR{94b!^WbcE?Y z-8V5KK`um;xQKVD*;%DRjE*nbEPB_5{|$n-yTwS5vts@k#Z~L@`nhhLih_h$LfOrB<1fY{^s=W8cpnY8aBo> z&WOw{zI+uHO1o0E(lg?=E$fQhb#4OJoM29)zV?jcVRDV+;nQk|QSwF72)eK@<3V3p z!ySZ{2BGUltRFY)S7v5oe6U!V<29UZR#%!2yuf!g4QJ-e%1)1Vf z{*ngB>fSJ(tW7Vj=X=L(_l)JGY0M5!%GYpZk*WczHHr1ng9MAwj8>Q|XJ0;-9{Zp~ z;73gfcS3xYCjAJ9t+!_!cMBRDS5dzX@rCxcIqG?-i)fLi=;8L>biPyeLXf z4VP2!o_dD_i!&9@e{vR?Ln&_Jyq&zvQkbQe2Nt3A8^k<#z<6$97DsC1IPvPMXwimo zE-=-alG7DACs7wRR*DJ?AEgtwpUaR^S!t8%rRx?++N~LnOIu?y3++hd9X_jZl(#9; zsBlOYH?k$?Y=Dw*iBso`;td40NSoI^*E-n_)$N}{C!uRpZQjwhXR!H27-QER=@TLX zTzMV-W=Q*4v5W5qMk#K>wO;fKO@DcyhZL%%AF4q4ZhzD=%hvJV(Vs2eDU?WeVsxLW+}6(g`;`nxvD?{5IkK-o|O zz~y&zL!}zCt2m|{!8+b91+ZGaZJ(*@rm}d`@;tJ3ovno5?CR}l8Vjc2~3o0Dz+6! ztGDF6QT|u=t`Ul>{F&1tK7|dLc~qnJ(Dd!57(_CQw135iAu-3C_;))bCY?TnKq!W- zNvHPYit^i#25!i@nemHvzyxXQ$D?4)LqMLLuJEu?Y?eIH=iO7;WtJb6u*TQ8rEGZm zR7rK2+Rjr3V2zYx82k4{Q6ux1I`xP!w%CH!H0%vhGIBuq=XojNN|3b&h@O9T1&2>6 z;*>Kg?=puFXv^`^P_^eV$+svKIWw|)SpzJizE0?WHd{iL& zJ=T#BaAzKSMBa(mH%CtVha-=@V~HlWEJJK`V06c*ypS$IG;TSm?L`E}fw4Ec*rUbU zp3t|by;S&iX$9g?{0nD%)zU1bGUf=2wq%xw!liF=A+M1o^%p$?#>%jIT z;hG(WehIw~@*f1s+w5$S_0aAD<}m54+Y^_2WR?pW?%=dsC^ zQh)WCH;EJ8?{Ta1{ZUQt1zws&$Di3X$`xyD4$9#AZedK(m)g-SZ7JE#aF-soE_>)< z7~DDOyjXLVKTeh(Zd)pfPJriv-Wj_~rQG7%Aq<-J6)F_Z#i=``VSV z@G?GuDbUs2y5@qZIG<7Q2RJ?M*W6!BdtJM$pk~B2^%thQe*H4eH!#htz~BcX8(?fj zw|8sG4nqE=Upo45vEX)k{W9S5V7)6%;Na!554gC9HT7e~BIGGr8=px%&!$B)=LByl zU=A`oPmj41%T}FxcMs)Bl72n=4k@kz<`m*g(dS*R)GnH34na#PwuXJF9whWkK_OTt zQUVNOuZfHmsRV@-ZZE(ocB8ek%?_W_oF3w*!$MexlNT^w21;&4B?FCT!6{iebGuI` z)tqb>2gai>3%M^>V!X8z^ne{~|E5bNKLvZr42W{u;Un0GawXbzNGxB~7yH`F40-^r z7XKmpBp&o)1>N5P{3f*nnFLptDPHJG=qy<3c8e|aSh#OV5eE#7@NYbubP;Dlvax~w z=A5Ya*~S935U6ygPbOt2n5Ju#oT`l6xXzVL%XjGMz&|}mkF1VIkuWZoL$A%@zhoO7z*F{8NzjDv^u5?6xD84d= zMQII;p0eHz$LgIzQ$+z!6z;M4rIV+lal1A0en`H=ZPA-+<|N^J?`x(g2L%4yDEo@- z2WZAi_&l#aUNZUog?hoRYtXddJwj8lKh`bULieO%W~5=dtr>G83zjPGezIDR9m zxJLt*c0F(q5+5F&qY(m7Luy#-Ml}QxJaeJSJpLdw-K4){S^)?hU^_WV7yEPzE~}$$ zwodrK_Aut+CNe2$jyO>_#jO)-yKaz(Nak5e<;NUJSs%t6k*pHk;~yUnp%ig@=S$t$ zHg&pWYsl~ny}gk7Ji@=M*0PG25ZvQqLXPs#Ctz97TdnueWfzLf;o?cn7L55r@Cq9aGWIzjOm7fusbbv)sEj;Cv+q2{5nm%`h<~6um2mv@~;_B0}HMLw0nz#036e?`+;iI!p?QWp}V{BPkYX9 z-HLe#*BxKPKm{g5(mT62vvL_ridX73;VU*L>X)6ojZGUdlLIS}Q~W;OTH26yo`uH~ zZ_sIH=r*!TruAErlI_fr+)<#>-%2NhNO?)GLwbGsNAIK@U%lK%_*kKMG z7Lr0B{AR`tsgtRl$~L{2f@v< zt=|#bjaLVa0VCOsv)BYLW#dh?*Kf9Zow5%NktWq_*31>>B2EBL8l|zko~Fx!y@|b; zRvUOtm-1Opha+hXSMI_0(@*c7JS#7v!r~nGQY9b23C>1F{ea=O9k{l3GC=d$z(y4T zvD;*}GfV_?L4_Q@j*`E-wCUSaW~Fj~`QrjBa-a7!kyqOA9kY8V1SeI;^d7ytPaEZC zCxupjH@S;S(cf&*UmGIJVcrY9^fZNmz*F-N&JvKdq93En8*X%)s4)2rZ^U|0+*b1q zXI9CKYM5z$pDv4NWl=K{ut?s0!zH~VUN0-Xn#8AhLH1|XU? zZ=7ANQM+S?K@#wnt~`saR;n-j!F0@;DW&42U?VhEW&Iv4dzpbOY@WpvdpnUSzn0%d zDORQyFy#GmxvldTl4lc~SQ?O{oN9$>v~BVtXS=zv_nc&THsl`L*B#T@eLimrhE487 z@zxW3=Pd5HU%NnKPcyL}LL!rMM-RN9SI|Vez{Ov-71#GhoaPRPj+Nd-=~gsP#Nuro zj!OubF1gt%z>rgcw)RfK$fX5p^7nhFwApzTl=Q8M;xUga7BlxvdkXEk@!Jz&%p$qB zfRDvPE+!ZW6_3wdxs28RY9i8pOhFLiwSnx}_867ODg}zz{xUo1d~Q#Z^)H@Oo;k57 z+e^kHtrZ!l%<}K4=tLr1+gJX9Z*DB~$d|oN!AQZ&)K3a4St^X(4{0y;oTT{+LaOq~ z!Q?b5$V~(-u=4tElo|s|>)iNy_r!Qm$DL%hjS4cS)>g$fjxb?cv0~i4C@;ZhqH}DB zK8ELZqpLGO0b0oS_iWxFCF?5uX1uVS<91uss&^6dP*wPi_c?n}LoZhXU&#U% zpWfA77H!6;{^pg3Q2*nvQs)7Rdt&AN48ft}Sq#&H%=cuF_c33iqfxf_m_crFi1aTl zEG1!zsp5_aNR$q}IIAfS{N0TqI$dh_M()_I_*Y?qtj?6nEs>tTn(2t%u+wN(GiYrK@#05|TrKn=!81Bp_7AFo!0rNPqH-kY z-P%t3FxM5{S|G}fVe=#j8r3{0M<{_%v>sR@=(IG>Z=_2hCt68b~v*VXj=cJ&@_E+tFAAB*W@@(lI2(!4!Px=CZmDb!y` zxkhg2NEh}>$Q=vJBZkt7Bu{=F+&RPpW_$Ba!5*rvy-^{`6&FY%7>E!awhg=@s_l+& zW(@I_w}*ixMkpEogaIV-7IvgVx*@y8i zk&a33Rq~@i=i;aVpCz=VwDD`wq1n;6GuP4f)XxqZWzH8)9L|LZ3rqw?0DST1JifinA2U*p3P(qip>){cGXd=2XPZQLIVVa z#h@xBMwyZj;>VU>%V9H04pSIXru@C0f&X5x&e!9)is5rWL<*4cZ> zYbjX6MBrM_hx?~7xbplSkr5|Q1Ucwr=h<~nGv|dq*IV|vTbfSN4flwFqps(O3Xmz$ z6^tyiHMJcA^#6wF&>(s@oUVe%_=XzduwtC0($X|r$m+TO(mZ2_-*eB&6z-ThrW_U; zdro=Llh*XHU_&Qzx=%A@B%CV&l72e~NoWxzzg^U@!~q1&Tj)tH?;beo*KwHLF)A-w zr-zwXSZeBu$U`g1&XquND3eBnjHR*PiwOFjyUjV$VaLYP7ozx84w;id!);*Rds^b! zOAoa;DdIU+LvDOM@>ws~CN~5OS)3IwsNa|KS(Hao!ApoJ|IViUHvepfykR(K0&2(@ z@*}lgYE@fw8qAZmTqDY))hgjMrXM@g3{#&(e)^RBGgpG^A(VX!V_F6zMUIT3&ND#E zG$XFm`L}Ok2r-(L%8g{->SV+xvatJ2kaeWe$a5yED;C))r*uyQ1=g10hD)wOHAl@| zD(@<9@4cg4UBlb~`%DU(eReV*H&H>7dPKwIUywaQ?lCf&$9UZ>$>kA@2;S__IfYx& zbM?f0J$7?%Hlz%a8iasM~;@^AK-<^P=iZv=*unVIST2Z2esTIL|$ zA|_^cK@Zg9ZyEll1hI z-NiCr-Ql9X0bs$vOOT*_2N(R4n=`3r;D9|uM~DJ7ZRG;*CjmKPgF9-1BS8@XgN*&i ziWZ^)Ss@{Eq5XygvmpJ4!cf=J%rD`Bx4QRH0ewF~A=ROSMNCXgM18tJQg!wzIA}wG z{D$o3>eH#QYYOE8jY({Az#91=BnCsnXTnkkXJ(d{mnRwmhZilpOa&7I%5#VT?Sl#n zEBF_x_tho=zawF;=FbNdcLAY7a=kMKGtVO&KnwK)sRyubVuT6mx3`i0Wu49pP@=9qsDCE&O>79J*;#O-E+!Hn zD3JGPC`WP9+D~Evq&C)}oqCVH5E{wdHohZBAFs4p1jB{Nqr z74)-x5D|mf;@*4Z;39(-b>A0^4^|yYuzA$IkC!ooxPbL98qo7=8ndW?&i29U%C9{g zq2iyBOGB&xHc2HNJvlreXVAVb8~h(11l8|RAp`t; zzn@H8OPHuo_AbBd-*1qkGfyqISi2}c%MSgqRaFx7fb_Wo%2Os&b;!wwf%nxr{!3&Y zLk#v!8T;eV9bG2^V)8ToTq)~s{!e5M0^k|WnQ!~gol=q2$Gh*CwfOr4zFo&4xL4BIH*uk2iA9;P(5PFn%YiY7#)BlON$ij3a z1%))R^{Iba<^E=>-Jt=C07jOaOoi=R!aqQ)6DgGRj}=8B3UhP*X&zQ*Iuj7y=qOT9 zhrRdqQh)jO{qBxs%D|jVb1_4)^nS=RUTQo(_+^SAKiAx^ZQNyTHUlo^Ypy_lU6vv$ z6@-p0kD(|rE(N$LKT%%!mUTTQfI8Z8!Td8uPTs6xZ*NY`pKml^U;4Gk33C=&JR^W zg?8a(MQr3o#r-C>{ejA_9XD&>I7qQq{PtOCQU_hH&-6KFC$gtlDzbU7w33esmlfrr z8{1^`iYIZxwl8vfrDh04u@XeZ)NT0K)5v#6^5Qk#V=Dr@q%2znWypy0))qAx0gY?^ zX4NI!bX`P|SJVmz9&3vYi}TDMELG)vC{+akzkB2pG;S>9uXntJ!C23vGY@FXgS6EX zdHjly-Mw%4)y-il|OqgFDu#2`a6*NuOXlO!}quIuH>Ci;(QgH zr-slwdH*3Jx2KtyAQ^VIE;>O~nCq$BS3J?@yRo$}j!obq}?epc+ zTw=Ffu?lcmsEX9!!%U3E4_9yQ{65zlY#|f8T4-nx`^O6GQGp+QM#KyC148^BTGo4r zZI(5$(59a`>?1ge3TMQ?P~H0}Q2YuRH`e}zc9`Vma2ew}-WjN*q^Ox%j=OiBW1 z7u#|hj3_0#g4@Mk&#uHf10tE1Bn#u|CFIT{9pUABzl3xRw@ar>#B@5gQS$qz*e|1) z{QGi`$9%)2&nybC*r7p~7l|U{;%{4_t>Z3;<$L4Xw;hNod^2AD8k+5%U>3l*jU(ni z&N+*;=}Ni(S*vfosqVbt@8|C!p2aWDS*nkX^SNO)E@;9hZTKGa$i0FFANnLR@9z^l zzDA4MatxfjVwWnIHvn9h==y-FJ)q7g>qIKuoQ}5dj+5sGv_lk;&&|lHT!T;+-mGn? zp~qQCaxXgqVx$6E0yv+%v$vO^V_1hq0z)d+xZr|g3G9zD%s*e~Xyj2g%F7Td=(49G zcIp}a7&=ZW`}$56d<^c2=U|^y8mW})2N?LzI#)D}S-n1St{%5$%~Ka-8Apv7zThXh z($O^AF6kv}phT4YU>z+2eG}C|rH*nEqA8IohAVL)d8-|Vmu8B$;*!ArS^MgqS`Y*h ziN;U1NYMeaOefRzj%mr8vNaYmI&t?l<+p}L>9-o|VLPvcyZH-=%d2$^ZF?!9kUCPF zMu@Fkm*S|jf@>|N_7Qoyfsv2I|KNgHZ|-8hUz4cck2xEtSQUnfOoQan-VZ)Hng-%T z!RCccP`QXYjE_s;(Jx9}c!%7BZjOvodC{UAZ!Yhl%z}{QBFVE^~_q*HD0V_&s5QN!(_k} zS!IBl5ZA5``?es~HA!id^dWnvpI96l6K(iJF~%bf{zFu?iqnGTXdPmZkm^!tJaDe5 zym4i;_=BZ!r&QXDW3vB7kIwq&i5nj$>=&Vm`3{=X)^d)V!1p3rV}7utZ1vwnG~~I% z?2Qk8FI~`owyS1mw}J?R)~W2F^GwrXW@2%Bsw?@yDzYQWY~z2{$xWr@nQ)=%_X^#GhkBQ%xvnnwTc0*~zNv$(koYq~52oI2HV zQiQEg%CXn7BrYB!U6Z?W(()4F>n@m_IK=b?^>BDLe^^hk1?4qV$@%Hk$so%}!yXG< z{G{UGD9XBw8ps1r^pp}7OV`lcR#V2;XV8p{PTz-RdDNMwkR90WUvFaU(nm!6OBN|9 z-P_%aY8+)W%JUh-6(dGd*4mKy&!up}Ky+V^lq36F_&hF|{u8BRM2fZV;cd&A)pXZg ztiEqIs$(EfN^SH4Eb|vz4+@ZIK%_j88EXcRk01 zV|Lc2OJ;Y+RfcjNP6j)TzN^8CV=#^x?Z7dKTQ=z|6H=#gEQHdwH3bRX%OR`*f0M3&Bw8?snlIqLE3$o zD6DabZ6aLYdiTg(OrT|oNs$5T<@V{hbz+#a*AsDRqxv{hgeh`XKSH^KY*tK|Fv zD8;JL*J3Dp1Z-04&~hn z?vjnGH~q`x5j)s|4qln>OFnypfV*~~;!iW?%koq+Qq})#hLxABNICMB!_aOBDWO(? zVjg}@3a(%4-`Vx6*6XJhwd(ZP98}NPp*8z2fk`;F0x?nE@AjJ_{19pD!v^?Br6K}~ zfamAY;4z|#qjXpJrOVy3Y%|lQydZQFR%`nu!fA0KHkAyPhw2OFH3kCeASLsDVBNhI zR4FU?_98DAF;CJ*RT;8jsu}By{(P7Nxn((|5uXAk@=gY^mLe1*P({r4XV=}twhx8N zE2GmtGhab;Wk~ef?$9h(?{k*#Qq@T<3Ec0uU!(_skcXqDa8spwO&p0b$v~2&Dbq1ru;{ZFY4l+DeLeO zh+W05Of$YS)a@}y{oHKv6xYbWMojC_YAr37C_3d%SQ3o_#N-20&LegYD74gjvh@6g zfq*HCu91$jNm)-&}{TU!s<+vW}+ma^UecJ^vO_{+$))M zw3%1I3*K-~wU?16HzTpL%%r#3isQg(sspn`};RWuQpm|Q< zfL4F&TGWhL?MB;ER!l}MA@DI1T?U%yTiEh{fvEp#+mPpSQNXJqNkm$u>_f1qN~kQ( zkDG)kS~PpcCmT5AD3`GPDqKRAeSdhP13g8D)+>7c_2!d*PzSrbWLgO)RH=ksZ(Ac8 z8Aft5h2EWjl_v#uuulD3dewx>qIR}RMq!-7H-MCNSx{c4Ps=2|KHmu64ZIqiOMHlF zD)$Sz*f+NZX{%J{#Kp^d;TDs?lM+qPgp=&u(dwsCo_(>7MHxiZ%}s$?C&$4kn%a~v z`OlTPD%Wd-9o;*ET(tkD*i|}-0p!G3PKgUv$1n9U|C3A7OE<%YJG7Pf?i*ws{ICDp zZZzz9p4|A-4!)HSgS)`A_wf?a^Mxpo)c$Y|6unFsM>s24ARHY=Z7fiFK78c>tvhQ` zzv+RfE#SLz4*HYY_dA{)f)76@HzM*PHw>93h+;uhTZ%8EEE1 ziU|^GVxG-_e(l5HWUkbLN05q`{8~2byuuaY9b2_xN*d;XsoZ=*{25T?c!aV3rCev4 z>RLy)E8C~|Wt=u$g4y#`qG#FthYJ+)gL0;rOFOc(Fa&Q4Yi=_`x`K7Xys2$ft8@oH zU|RU%<)!pLdqKzWGAd(YgJ5hvh{IHF8lgBK>5~g=kZ7twxVUDaIboHtE9Gp0%FkyO zc#e3Xaio6rd1+rt8=7;+@JXR35!g|i3$e~Z(U1;L`fcJFxov}DSRPIYbhEYA71FL< zPRpt&$$nfDM`E>RvZ#i3v>4RH?DJ=$?dJdyyyPCtXfb%7zI|6MF6tYMV&->z8oT6$ znTD>;e@t1oDtd$r^_jp8nG2gJkH$uBxW!EJS+kYG`k~Bp(zii#LZFG2J&xmr8EPP)cV}P4Q^{$v(-b#}R0ePEP ze(KU{pRp|YP*Om^0SPj7xf2B6@%I3>M@ivLx%2$9x8HCHq z=56@Osl(3Nwup+?J3{=bG{SdPhiHhW^np-?1!ODZ;@PcdE9X5ZwfHhEQjt~iLat>+ zKQ!`8+)N~L52_z3Jo4Cl%I9@N_ob`EBPgHuA3%K5SXeHx{G5bZT<^{4i;HFql#N(q zCmf$M#jZlxmz1_(G~d`B0Q^f*$dUf!GoL5>9uSN_;{*!<#_n-TSEq?UsyVHmgg9YD z$<9LLZ)dT5HJ5y430GySYks9l*8bEj8RTBXb6A{qLRV}itm-|fgA()ND|Oa`BZGh0 zPPImEcHa|kj|AeU3(ad z;mkqkx91+L@tf$(*t*!S^dC%+<~jwUepzeKXLhf$@=s@UNN2Z%#sZNhH@$eWyqynb zDdoCpBv57gXrR%9DlUsUr`DVPZ3Fx#FY2+Imfh*ES37n^jY7~ri$_?|kk>uO#tuPN z`4-ud$=L3u*`J~Od8U@$8BSVH4P(=A`+6U8^0{@=HP#8G=P4=w!oLe$shRi3lp!ls z-5d0<7$v7lt6F%rZSQXGxtyv z)Fyk0q+SYcsR+guB6p8;n|f8_?jZQ*m5q)K#si-jA=Y^Xs3(d4D6D${(x^;+-(WAN z@ww9Z-|8oN8#x>vN5E}$$7&fPk3?$Y7S+k~bXhv7$tnS>RiRB+wH zn}S+N?J)l2Q%_RsY&?B*j{Vf!1Wf%@pfG zoLufisr>g{%yxqwHv_#qj2@%0^uKXHyc`g7+e0r?4coXXIrD0fJ$9DqTqad$Lwj-E zi=d=;gSf28q1hKAcYIZwx@o$Y9bpH210uBezfhKbQAZ+B zW-by-2q~xo2p=q3-d-GY#8V8@lnj>dc%8BG)AE}SqJ*3#Z`!NCF(|sA>w#2_u^HcC zxGpOj*&fdAG9WH86E&}5>+_nE8Z+LyDgSQ+FO>(u{I5mqr*lHA)cIH)Q~j*znIrP3 zUK_7sbUEXJc4O!GzE}xX=EhI@L&w(Vfm_1A;L~F!xLmK3HjL(6P6)D#yWR1dxUe0~ z+XAcnRmaDW0p7B>h-&CM-d0Bcp{vuFwUY#g@++2Gj7jeO@R(B~%cw+>jrxh}Rfl== z;IqQmAg>OLL`L_!t*+$86|-0XVr)$|+gv__g=god>ncO*obg%z&~|Y=>idIq`_T3k zVbvB80dmxnOZdT04KKzUtx(R#UE)~u-6qz+755m4OPGETVNUoPZI^xK3& zl;}aUn@Y)N^haJ_E#EDl8uYe}jG_LtKReLFS-vT@hvGtX1eD*br{lG9VJuJZvP1_T zBer((<%ii}B}Bz(jsr7YJki>T`?oqn%NsI!-35t+#;@#BxMZp62q-??o(D5uy>e%H ztxNjFjBv6SLx#aOqnxU(iQa{$BSQ2@<4l#y&cVA?HD8OBh|b{lz@N8AO}&1`XbuSI z2?Fxh#k+7Yms9S3d~|THxD;ElP5uZoNahvO&~q9v^~p_9V|zuG#nf7pq0iz@KPcqeY-Pp6{l`U7>DK>0mV#0 zoLmKb*8NV5nr`rTH4_Lujh{p~f?~}{@%w}aq9=vrClQwP7$u*a(kdf}J3`l< zVj?brerOzCY<+j-Y1~w~Ci5O$e69aI7@Upi@G0=S?9Y24KIhT zQMQ*{v_&eXRPunQOL}LzLOXkg$AnU%w% z_>nSw)%b~QOb@U8=Ila^pj2ckCuUz&`xx56+Jg4-vZ#@fy44l2BM3Mzh@QDatALvw%7iVQ0f^I>aNKpS z44>wy4XEs)UmOSj07eG#LI0=rkmY}F5C1oTnu&msm6P%R?-Kv-_K=B%ndAStJyeF~ zQ1Qf;Z(YonZ`rD>|4S}RuTsP~;VRd0szAvyK8@y_ndUS;osNb?mAqOtl}x^EhPWVV z5nXpdTuoG{s8gjYA);9ra|hdb{mMQ2%Js};{`>p-^}GA)`PM4}&D}L~)1iSdGp4W; zBUY{n$ZG4sj)5vy0n3moNs5m4LC}HlZ%&F{9YUfEDp1oWz#(A>L1q(&PzPj0sZNCi zi~+PjQ)@m^Q=!UNu1LiXOdp2g5ONBE-X1q#4I5NSOaLZRlZrRsvjgSB4P+bxnWv#m z%ZgnH%z;QHz<~g@LzoR09gf10faqp~13H?l6T)bE=b&pXR6v0O#YB>vNGI_qiKJ8@ z;K277P|_d@?+{RBatIf>7qK)+M7%#BUUUp+A00xC2LTHajBqeeky0?BKu-lYbltz{ zMDvI+biwI%!!dv&%LKMC*(`HFwoxSj!6g>Pfg?i_E=Lj!282f(><{iqjSfF71rX|> zA|OdN0>MudjzEAS0x+%+4zO*56A%eSev#xv5{Z_cP!cJxOelmBZr*@A;W8jXj6PIK zq~aGB0dkJ$rKUt4Ld{PHg8lM1BBV$wqY9=*R`yXO5drJsk~4rnzG$Mw7zIq4%-5{V z2j&3jFTmjweF=zDf{Ej_q+(VS7D>lI2F6na!wI}MIE+If3q5A&CuQOwx|SYWV@HYs zYli>_7j$3W3(|6ES!~;u>E0cb{FrIvbgvF4j ziGY0PO63-#KnEMm3%!*$RpJ~DfAyd8jeguysr~oJANulm>P$jzehUf~;&91}9ABM)+RKW55g77qF1KjSLI ziJ{&?=28k8K!PM8S%{>Sj|>c5g!nZaDm-QaL1BV21PO&Obq~=$L_)G6ky;0U;+_)u ztf~5Wf5kaHJt_--F=mTi*5PVU%tZ9?Up(- zPko_<*<(8sgPjG0Nx|+hyG5<%j^f+;LbjI`_S|hDapz)2+ndNAKjzPEJ8?qSxO$v9 z{BGGvt;WzyCXT*Uf_}D@*H+c1f7mJUIoo>bn#kAnF&|zsIvERE^$O)nbH>XlocPv&gEyF$_le09@Y%T zY94(qX8QV7vpVa{?$DOel!&NAuVJ*ya5aM2J~3yDx2226_hT)b&lNjEi~BssMb?cUkOKZ8)~WewsGEG0mY~y~G|N5ET(EOh{jnS(7qCtZa9ZV-l@sxZBUT13>;@}ul#>jVaLO?3? z7?i0ZS#&LC?#1P*usW|RjP9IHR|o6;>Tx^27ElZEt|zVOSgrF;YUtZ6yi5g;PwY~y zXe8$r8y5$3M9-vI+Fh;5%8j4yqE@}$mt!FpDea+5!v`Gx4u`V}t}D|FvCZLZlC_K-fc?9G%Gh~!+IP40CH zC-;WVJc^9z&PQp}I-OF5qdum(1sJ@Z`+AF02puEWFR!x=x_1a#v@ z-0o>Q+PKDaEUB^|G6uOAmj}1%6B1)_AVgJS0pf^&6-O0u z%0~am((3aGKGPI+(-U6=-4U5n)6pgtyZuO7ALi`_vBpA!bkhhwS?Fro1dZ>Ff#T{5 z;9blEJ>O>CMb~aQ=-iAW4ra~PFtj`&%?E`=s51 z#?A^^2l(ZsW5v&G_mi&mw9|O{{>)RYQeI#~Hs(uKw2G zi(fC7Hl;A}8((?oiO8cIzFj8f>Qo=s+Ba9J=LNf9lmCO7+#N5rzIV@V7o}yDmq`&S zhMPpp;erN|bL;M_-IAHvkl+wzYsDutyzY)o(;H)jm!r`ZT@K$JIrQVmGeDzC4p zbk1@)J7o@LuLk{FaoM!{!gf*SmQPO7AFB6S$93howi=CprQCZp(<+`9u=fhw-@oF! z_L(8**5hb3`8n;{tY)6S|W(deUEiU$}u4PKGDyJbgeW_V!1lzSKv*x(b+U|O)##RgU2cw9FMvDw@ z=jw3j-fai0yUj^wkBM+1}WJb z=BcM;@2>%qn2f$pm&aMgwb@fN-YS(Op6S3hg^#l;8J~Sh4HK0=e%P!Fa@*sn}tuyWd^3%aVhlm)mC@n&_<**WK-!S zGv~*0cH5_03?(cIb{-mB`7)B}=sHNQwyyt1uOW9}{2`agRz0F1p?9Wse0E#X{?Z?( zZ%|i{o<&n;E#7!vVhLaB2Q$st;8&hGtrLeUvEs${GJX=D?0ysTxc^i7WBZ@dAKU-& zkNlVZ7&$opH%;mPj(?0y?9Bh4j|7Td%+kii)QNyz%*N2gRK(QS-ozA&j}OY(#pyrl zDwM}&jhm@T_EswG?X4W*_Kt2)7uXsQRK=jKumdDWP#1`V!`eR9HetKBL)sW;TbF&@ z*XPfLyZ_QRZ}HE zjX(f9H$4<>O*8cTHY^C>RC*U+D1es$bpXsfQvV3(J_-toNCBvXaCWz@09&ga02r<; zub7!xs=wAR6rhI3U)dS$5~>L>*nE$#2LLXCT&zI-7WVKTmm)L-Nc#p5;3@$)fq<5* zuD+luTt7isC2%}&P$1nY9Du7kGhR)E zUFz>^&p@~5&a|L`dI0wP)J>fhnm_>R_{zk<_E*g-c6t)@xjoixEkXSZKW06EP5|2} zof@2g`WkyW`*mOG(;Oe*UyZjjIXU=UUlXCf_zyaGd=~ZmKqhQx(p61q$(FV)HUdWI zPo1tJfVMC|HqKwYb_e%Q*&Ois<68j6?mBmP9>GJO=)Qkc_n-gaZiLM zKp!5K``91#$Ts5f{?DJ(=b8oYKL5IuAWrq~O4+{IFB_6%{Y(}Ojt$NqLy(TCpq>D= zYkXD-ZU5%>fvukZmTSM706I7V#(U}29x-UWlas@Dl>8Q&i6#86G{CNZdw@Zef5{)& z%HHt?Dh!GX3Twt+_}I&xz)Ksc!_upp*U>9}O}Rkz@6|nebTY~?^#0W31UZ1g$?1Vl zm$!Wg$Op&wUwEQFu;cGjwbAV<&?68=@5{`uQ<~^OWbr`W&<_8 zcW7-&p63~Hmn5UtW`bVyT^{BMD+e$i+)hpmBCKqZy*$LRam_ZJgufkTa5?W|@V$jy zHUkiivK8M^o8gM!feI=P-U8|E-tPPx9PIO(Yxa=4Z4#5YzgQ_M8#&Comqg0(sqLwg zs`UrZ-~PZIND1@ttx0}6#Z0P!>Rw{4k#6rGO8UU=kj`(Qt#NDP;pw8{N!6|R5eDU0 zmOT^JZOWJOiqot^OixeKu|mtkg-XdiJl8``Tf>W;!+~%YI|cGLPWQFy{l9HfRauw> zww(3^aE0n*2U00Lo(EyRLY;2?G3ekbS|AVAykVL}_rky%bzSgzAtl2ga)-|gK4|lS z;B+(yX;J*%D1sd2(cU`i9Cvc85_lN-88oF?RGmjd4sG0K42jU05yAL&B)RuNj%UJJ zpBmSOn{l;on5uMs}zJ3=2y*dRueWkD(M<%&W;Nii;~B2*#~CZ;Qr^ zLP^t8`@XL%(hcnY)i&ifOq^ldy8C z8f9leqPb|U-4=6etc(Kdz=w&`b;x7iy*Ia@?O(QAgL3ENi zTc;qKMx?w;h6gT7n!BBKZB!y0dv;%9Yf@n%oT*n~^?~JSi%HG1E7rjwS@m&ywm=_| zws)GfAvJ53V>^eji1kAlk3Yv7u*vrkf?KMBU3%tTr5v=HyalHZ(PqaJ%Cc4-n8B$-^r&8h3~I!!tMfc=$p zrJ=pDoc07P2|;U!%LIh~gM;J0ob-ibIq_rjE%(oo^7YxdBDNGT%hC8ZXd=;q$>xgoAb}cfbx~Qa?q2wBjJo-2 zrk{DEzn}!m{E=O!y_J?1wCQ5S8K{*q z=7c%dQW)dv%|CK%IaDsr3#R{r3Nv8qWL7USR zh~qabIl9yHUnraqrZUg&Yn(vMvJC7ytIe6eQ?oUOBLFGmh{m7f&TeWmAa^-SUu__Q zl)sl2G!0;<^BLt7+G^a1mk}V7t+?gRE0}|Mxp0GI*+w8PLn2e&QUsUOt#{i@lk)X< z6~n057Yd{Q-E6P-VAi#mQkxiKRxXcd#=<9?AT468#UmQHj}K4Thca%G2D!^3wa)h#F&ZEs1e_JL19 zn@Dio;Dn8w&7ifV zJ0WHpy(YN{sHAUjq6Ouw#^gR-gy#Jy|;@dKVjtMbdcHh>G~&KiW6B_qRkdk$B*0`dy^{Wp4 zM6j%n(Zas1)+KTQ+)s|?0$=>$NAhLs_c>m8lepSLc>I#jyKK&LZPax)X5yICBQqI` zKWj6x*ro-cYiCI*(vda2>uTA_4g2@`SVE0-klB^@&qT;?-*Y^+(NN3G(15!oci=(1 zEX|Z43Yk(S;2t9i-&E68scLsN>}2OAGSmiCS@9GAF07t%l$0A zne95Wc`m+?k#|kW2w3ZhN~GnHvnplQGJmN~mSb$c!StWta2c*G8pNb}4F$h@?VStW ztBS&5N8=$L-k=2nv_P4zYlP4}u~WR$x!j7_P*UUIIiL@)6(VRPf^{#&p?9ed!K5}qdye2A|``9Q;4Xq3HMDR|smXx#L^U_g7@6fJ8aN=?uOXHU zP2T%X+D9+5lCC_{g?YsJ;RIOnIVdUv{cvs))X8|111hb~tL`?OqXaC%G;yhmmzK@UPl(H<-K39GeyeRymjsU#@j82dMf9pu3j9E@J3aa8AVEln^}oPlG?ac zuq&Hovmx0~(+h90QrekIt61@<&*YM=mi#mDQ9ac#^of>fV(i}ZrPsV8(zP?HH;M09 z7fI~w(UR~NErM^)u#bLis|Fu7Hyj9)UU)QBuYa0w7wiXbRm(kaXNXqi&va(!wYp^6 zmWU$7z9#fz2KWv?6u=Pb5~Mu}{i%UvG?`r7rEq#q)iFY~uR}+~7p{Ykt5aOn3uKBg zc5o`tODcPY9~m`R{JRXtkw=gyK7$XW6*o&$OYRZvlBw#w>B<0a`A=v~$6=3q>snGXaIRi?@E z7N=zCT5gN*mp6hD18lQu>zi8?4sRX!3Mf4g&Dbtb`4R1vIoIpn7ocNJ*pZkac=2bS zTMjnTrdnU7+43!aG(?*s4HCI^*5{zD`3Pl@(f8qY%tp@Xk#s3}mN^w~tyDoM=d>8s zx3P98aQqR%O67V&O}%(sDcgymInZ5-T1!rQ@5N&O=KWoL@_D8eEN-M)dx4m3dl);n zo*6AJgVR?F6FDFK=plNUB$V}v41yE%D1Ibh z+NzY!B1ae0Qg~%a$x~in&;8tbb?7sOB;HcX>cl@WLBjs!{wO}y}2j;UD; zjfg+wGl&#T-XRr@;13y#H}G7R?YS?_7Pb4R2i48?E3Cru&wqbw;Ht3~6=eA~$VA34 z^Xv-WXs}fNIr9+vNElAuk)v7CZJDW#D`vZabnkoLl5^{cn);~UYDDWGX0J$72q z{?^@qYalI`zHr3ne}>+!#QoWf zm30W}U?&>|8>!#PxSE4ih@B1e#2p1iIWUT5e@g2m(~ zO$$qTqDdqJ&el)m*q}v-+QepR=~F*n#0rs4nYO4SwPWsgTQS4jHphxwMJZet%Km4} zIkL2l@8^J$gO+;msv7HU3qDEJBrZW_H_hiRuDGt&^rQ2o6plyR9U4gE7h3I~TfXq_ zr$Gbtbud|l+7{NbOHVqh#5>%(n%2#^h6{uueAV#br(1*~Z7fc8vs2}1lbyq6Bnw`g zjvPUBrHO`l@Vpp#%(y!_8OoQ;k)X*)Q6wQWN1Wtbev(Iv$QQctZ)#YrLj^4k!^o~h z)UI{cwDAB`Rjg#ApakJtp@LfUQKa1Fx}Ytn@jmfa!O0&wj)v1AkJbO0`(B14{*;!z zuEgW(N61x9Yi5Ro?1!!f-fQ4`|G1K-%}W+_;UNUnZK(kHZCKY~nwbPvJT2_({vT zFLxt#nhb$?B?OR5qilXv6rJiW!>J)>5BSgZScqpGmHA%fyaBKyoq3J07it>6yXUP!mA2p@49 z5PB6fv+i>TXRIvM&llY~Xn5nTLXH88_0;?lX5@C9B&z+`J71@LXSehV@!S=$B%k&a z#iSXslskP%RWN=$IU6pZ_Jp6jpir({iCW);jO@^zJ87g|rN)u_m-9$k^))g+6uMFN z_?GnW6hTC=?0Wu(niVC&zQ0;UXO1>ef#=~L;c~0VDKBH4+@1F9ouz4AQoHJW^bi(l z8Mkk79kV`N={@dTjLmXpE%R|3%XPB1Ez=$*>2PH9#4PcP;gZ-C9orH~QCBQ>tD1uc z!J*h{F5)Tk*rVyadKswhm3u?}SS8?`91tz7AwA#n6)YsxvE?Ib^|^5Ca_e}6!(+(@ zpVAACUjtXKvcyCc`>BBtbR@AD48vL(=~!p^EJ77_GRBi()d^x)qU1^PCsU)aiP&)8 z$G_>8juwgA29nE{Yz4_ckI$sbvvSgu{-mW`{%+F!}+D5<7A(<@PGZLu^gW+=|6 zR5i|w4Uc-i*;DfvYpFH(BdG;A$QZz#^};^0jA7i!*=DGeXe;XCyuMhBR!z`Nh1u!b z!zxKw51PrQkkvQ<+!!rhusB;gN6hUO+c+sd#_#|M1MMS@HR`kT^LFq~UT00iPp(rFXNfJGsV^!IIbsmYT4ktqVbn&SQl}~jE=A$2TP9YAg zr%Q^(L%9}X%PsJ~zxS22_Sc4OdpdBkp*AbxSO{RoZl{bB&Ptqu&!jQV?6aO_QP31g7&`oD8DlK7cK#(hkM;Mw*Q?J{Lz;= zRDVhg&s8E)0I`YHoUhfd8SO+l3NN5eW#|k?Cu>WkTCcs7vr zhOW~Rb}l%$yta9uZ|iR^*C|dA4Lh;*!&cHl^9?y^r<2@ElqaxHQff5uNbU!CaV7&K zBM2*cS<)29)R@*B^og)aZ6$xzjQOHh&x{q`LeO3<>o|%AALVlWn{C7@8 zw5f_@eO)u>mZ2A)epi27Ld4HLRL4?fHqlHBUPeR)$9ag7LIq~~w9Oadi!XhOcj0By zLGs4NlmnQGu@k+4ugYD7u}4uhpkwy2@HGfSQ!h{F{WR|E?fI}41HNiiL0w_U=-}5q zHH~5vN0G~WqsQoxYKP)2Bh$FR)yo>qtH3@-j((tabEi`_BRGg!{C}I++1IRWTen+e z#{Zg|<-Ty`)lZEh+-#0q2o@M7E$!_U_XRTh))nBbTm=}C6nijn$c^!Pq{mvr&w}j9 zucEVUbbovfR1!>;F)xwSj@c`6u|DVO?jU7c>{$6+3y2i!nMph%L67CkteFbKlT^VD zDyHd_Xi29mjL)|p7@Sb7NiKDU4}nUgqqB2Yd-z>BN|Y-mp7jz+|Gb#M6kG)VQ;vC4 zB{WYp)Cr&8tLKaUMW2h%_7*o2?@?=?As9aMGBo(PFYnXPG^iqs4TOR4F~}zJHq(d- zlg?CcjqzWWEB1CxN^STER;W#5WFH(Pr1({b-lKq`tocUCdC4eZs55Ox!E-J*BY6)v zI3#L$p3tqB`HrT<(aomm!}_&c`8l!iS0Msxz#X%8-v|2kP*jQEIjA%L_#vANxC>%= zI7g$u*p?n5-eu@Il*aKiYS;`FLm=dhVk`+^wWvAyp_rUat#X__6Fjgy&XAcFrjd(r zQQ2i$jNwF=Ztbp-ZzH@kvJnrNqUo6q5b$Nt!Va?*mjB~K+O=P)QN#y_{Nl^Zgzj6jCf_xiNAwrzF*%8;4uu5 z0uXbt{0QvW)l(2cmlU~<_Q5j+t++-xqG_K);B2mKu zqppdz;hG;&P21NyyZdr?w#j5lf#UUp%#Xj1wWdv!^q{jlN5Wo^j$j zRzwa*Bk@%I%+8{hWctU(75n)44XHW)^SZRQb$q1SDZftk&~r6_T7k$R!}5=bv@6UM zlv)`=U2k+N4x@DiYF-NVtE;9l)L%gJKP?LHo&QY-ddSUwN_6N&);PMn)<&*T?H`AInFGoMLleIp7bE9>b$eq$!av}@?q@(7nrnbJ@70;en*}+ z>jwC6zffoZk$WT|j+VC_-|=#x9ankMjg#WeRGvScy&O<%Z_9~Cfs&w_14he}B zD>>b+QC=Wx`1dr^I6amI4im-$CL+j*Xc+)>KN;6zq7NQ(Yu9Lde=I#4Qj{q?9ajW$ zzpPC?nq}Z#^t!ycL8XI#`E`!Cg3t(HpMG->uF2kLxQqX#%!scGTX}99q;V7XdHi{g ziR?2XRf&C@y8H)6)82F6f}oyS9wtVG8QuMymiyH(i11jhd$9vjkG57X|HF1{@B-HI z+4rn(T<5R{cxNnFdN0t)Rc1c8C&PjXaz~vW2b16fn_Ru2eOzH*WT&GMLlklOJDqpe85vR^KtiZ(?XYheN~@1 zbyQ3i>K@V-9W`;8r{=>m$qFBI;ciWMuEsrGDVEDtmB(Fn8rTXS%uMchZ zCn;!f10f|P^kXHJ&0o*ncp^|7rsVxFyp&s?m_ggu2ieJeQx@l5ae30%ezYo40$jkf z*?>t2jvXx@NL7b?>9hZ0yNN(g{zD0WCe^jNNx;W64)a-dS0PhOVoOa^Zx7bA$`_aL zjtlZtYZI8e#m>EXtTD(As$lwSRU|4h7aX#2&yfPvB_prPvuPu^%t)PO`+7jupaxjtrc7W z3mhgp(zfMwES2cCnr<>Mcox(nb9x=~yjD(Pvs&WZcwC}AsBV1s=LrRJ$J*dVdT-gU z2lAZd@mUdre}Cv<)O=2g1seDDa+Ds!-1o!}SW>sNW7H!dWGtrN6V*=FU%#ufyFXonV?){P@4W4r>Kcvl<0 zMmIvc%CV3$FwJZr9s}JX&9{@LqA&XagCn+Iv&3-^rCYh)FB_zF8bYVCQ zBF?q67NlRkOmgsV)YUESxl4Quc6`|M=v2awM;X1u{KNoEe@kE#Y4~lpwIsL%Sebwh zj7HTanMET@&{rZd*sge?Vytr$2Ccrw1eHZfq=@lRnJ81tF>&T?LNr^|n8=j0x8Z=% z7%>Do+rm>K9ci4<7`fCK&oZ>leog6pIT!KjQ~*SkW1Sw{KA__2{$=1xsY?zn&SuxX zahor--pQ2KLdfjbbwsA@jD)-M=xJP9ri|*evGu+?_|{orJ*42D;;_(j!#YWLsvEaB zk7Rpuu(`Jk4LkMaI7#+V^j>Wz@2)N9)IP;7HY@w54_6wTIaVn`$qW>_TfwW9_c}hQ;1i#PN22+`nMIoPQjtEHRt|?f;9ha|jXz*tTrhwr$(C?Yd>#wr$(C zb<4JG+xEZR5#9d}UPSjW2RY1$jC0mr8*$V?cfdfA)-#RC$ym-W@v#)Pd89dKVB+R& zi^G7@1mTN>M!{1|{&o@BGV;BoS(rbCf!sT*%kwvEiEbt}pji#((E+DQEj{95PN8>TBIH)edgpj(Q=t z=h6rpdAa3qGDDYq=%WF%uPfb4mLLA}Hqx1ZTVyg5uj=`WqvY5tm)BIdmYgBRS~uA`=r z`Li7t{s4;4MUwHx*6831icb7%t|;4S-by-Ugvf@yogL;qs+~?2TW5~I+mzi^S^BJldtdk7h>Y2}1w@Jxfo6J{6SjGE5_oYpgvMCC*;hee zOFT9Sl5?T0_DyfGIN&5&(aIJB^lJICj9Sn40A_7@odn2OLE0&qJgE}O{PFu!T{KFu z)?WB4Uk7ojNZtrqB(zjBdEh%XBZP9L&^LeWOm5rli7Dsp|80e(M?g&>|8~jlvEwoE z%D@;s+`p3^?C+hdqFn8u#e3SFzAbRZELAIx^Y4^9i^x8nkBm^c0q&;Oa$!)nojoxU zvY1?6S|K0{;u%K9F+WYDkK2-wuC(Xrze<{FF^T6@j!YW99eR1LRudJ2J&xNpA;Akp z3^l;$IJTGR7eLd*9!VJ2y*`4<)tZIq=}zA(f>A&Tv7{$?1DQ(AyyXs3!qP2m=npD^ zW_O`}FBW;%?1nj$L3c}w3bfE`IzLR>Kj^bpCA@EWi_EeYv4YFlCj}9X#YGM3Fy7$| zLaMr&QFXc7kzv8()f-nhl7}mQ=@3Uf)<244KcZ}|QIYW}vIP;IuOh8dHz9M5TYH$} z)h4=Sd3N-ByrFciLWqtd?jZj>lDaq;dy))FVaBdC+`K-iWy3$cgQSx#pGKDmKKLy3 z3xK{0`QxzC^75|KEyyhkzZcpKiKv0E<=fapmLua`-$8`JU)=KorKdLKLSm#fZ2HyE zvS@kWD|)5v^OzoY*vI^QHZK;hvY?ZJ>2?~CD7)xW>Zldt=cY>jo`B{)5j3(~PX z0B0YO+*O@=;_q*?4=C|%f0XHehwEw8@#c@+qAi}h=)?_-2JA4UQO|v`28;pN%dwcz zulrc5A;6qu>kG+UMZOLB-a%rjDu^<$Utb`Cg1>Wb1V*IkIkGq@8eGD{9I*6~=UEb; ziO#<|sq$3)fxTHtMSr?#M&)DB1ogdGUk7*OyJoL=Z+{YpHiGo?NS!r)_A>+H`F7P| zJVW=LSd7v&U-J;;i4OaTOqXmr;8SoX%SW_pkGotmHWrxdR+39K1O7VvE8UH3=vi;G zAZ>`SJH<85u1NU9Y?3;Q$zWZj?Rh`%vCpIKjZSL^P!2il3{-sU_QH*W(N7Hjnd$in z**jS#W1PHuxnEYTY)$5b=Hf*1fkkS@{o0R?sJ<-;pUwv?mW+o#d=I6XRZ$nAjHDd7 zvwt2HgD_O|uQm)ks0s||oe3v-w?1Dji*292+ecb8N_(A$KGY1%x#v;_?d?>^-H~NL zku=e@dx;3&o6JQi*R0>0>*rYc10k+k-12$D5 z-vgKu|9U z?5RHjhrJPKi#q7NM`p12g4+h%ghg&C@aSx$v|5((_I^!d8G-r7Fz$+?>4p&(sE;pJ z482?NRR$zpKYg0X>+O?qiq4t_nGye$OO7CqXr{l=t2x5R@zkwgw27emO0?h)E4asA zn`P25)-=TkN4QmR_-^UWa7xR5D_p@|xq+90Y&o-1mxhgLu}DR#OJpxu8{94q(oTg$ zx~4`TpYvv#$Zr$4G!1xNjd#Nk+e5(e;L~b>*wc56)5$*2fjkEIDTQWrac9&T>6qFo zDiB0vMl-yZXR=;NF2X^Y=|l$KCKFZr+f-VWmOc6z-WzF#I?8)oc8w)FIeaiQMit`+ zEGHp5GD1|PgU79@7&{oo8|~t&01?6NOumxn9r&1TZQ1i)8)I^J>lvuI{mU%@CBq#i;u^br4>^bxXVIp z!NHLMN>C*pxe#weBvOah? z_+!sG)Zva`8wi;9tCsA2>>Z4?c zUID2826u}Ki|YVNXGEdBER6a$YF1v~^oL89(%6id0(M7p6Ds?G zxVxy?y;qRhZl#zQe>U2`}UIu6-xO0p>wNXM(7oi9a zDTsb#)fL%Q2u%@tgqkZNC=Wvk5uW!GngBO)_}wZgjo&@x4OTVBUy|7PGx4ePfT(R^ zN@=XxaUVM7P7gyl($cyCLNA|@i!>e&Kybj*N~pBU?PT3F+ZrDH1ZV{vDr5BLR&1!r z(i5x~+QxY;)a zjVOhM6NjkU$9bi+Rf`$H_#-#{>! zl{VP-+Q&@R)^!VZNmoOVQ`S+7SccA|IJj9*`VfXpZiiS78~3MP3#BhE^EA)mkK|#u zkRy)TJ5eRlN(P^_t3=Ajgob; z(+hBbg|Q{?i}ep$sWV_Ner5-))T7EVbNNL z0aM)~R@jOzu2W^`C%9!0HBoC(vkgg(o;fkBEpWsS1zT?~1Y4z;7zr4&JP zaM&k@5wB^~npmDqZOT6h=&2klqO;f58LujxJ+JHVHLp$0SOJl2i*rG+u@ICaBZ1qj9tN^Iw)sT?)Y3pk^_#fn35m4 zV&{e^b^LWGe*2=cv0Xd#7fkO29C!)wIX_XI8#Mfj+N18MF>Vvcr&J^*M+6J`E#k7b z#1)1i){a}|q|oHlJLo<+NS$7U>xsZ&I^|}2ZQA&gIpneRSwq~MiNC<=TPjZfDKoL~ee4vo%1R)g6~21J&B==)X>OhCpE@BDcOO$`%WK!XqvFjU}z z0iu9l`c?oq>rwsl@cYP#hytfU;zKySI)tpR5dhS9ZGhR};AVPhdvyR(b$^BMi1rb* zDg58}2XU_;oLqr~5#dpO4+Z{dg#GJ*fvpK*_5G_uOA8u1iTqU+b>QH|7}aDKS}s`VAD#%@>kw&4FP*aJWSxPfU4;tllWs_CEZB9QlC zUR{6$4C40yB5?Grpn{0^i@z3$t|Mukceu8|Z-3ZRi#OnGL z8uH;@uObG4@&<}C?W_Lvd6Ok227Uy2v%lw09w6<52MG^{01^QS@cqrJ_H%#x;p+t;{6m-vV5DoS ztIO9n_^CI$OTOqgHzr)8ztSr%0S*|b#V@nn3)^cz&91%*-tbEk7&h|j^27YAUr)XU zKp@bXOTSMY{v~NXOqM%{A)Y`LA-{^ZY!iHbIb=A_3)L2y;)bs;AM{A>Du}$-&1#x6jE@&Lnhd&whWv z&yCSjE-Y2-Uw0ZZMuZN(3p^dDfysgA>hTM_?+u-?=Z8OB2%m>|Z>ND~^c*EhmFmh$ zjJL<6t$vP9)7s9%x#8xE9p)V`R!$zE$cvW=RMh;z9iaSX6-%cRMXETb2lO`88nQ+V z)$n-_R$?Tu1IZ44d!{rH#9lBR&%Jg_B~!&C&3f)^oOAWO`b63ED*ere%gi%?*)r+sfji}}x%m7=!;_reIP^w~+EmLp@O_onxu>aT`-ZtqaL-JOPhuKM?4 z1ud~iw;DyhghTfim7Znz&pmo3>xl~r`c<@JBLprD%VWc}UD*VLw9c>tO0Pw(b$;HA zLy0Cum=)K!0})&PRg7y1YWr6t%+~obT%!|r9V!->!}t1~ihx;OV)wcZlS4yzQ?+~#M=|RTj8RT& zWlb0EJJ|5ICMXX_xvaX0m+@j_Ds+|BIqmx@GnblonpA1%dC!0su2tw-ldy^M%&EklDoC}Q;<_bHXDmm9fx9GZia`U0S@RZJzTIR#G!{6%dxvEL{4ZbG8v_ilxb@kwxnN_fz z05aP{?@~1FoH<1(c4cRmH(DTAOy(C&m{v2QPio|J=bKLg4ye~|%J@Z@ZaDtE>Vi=- z1^rQ3?x+gs$y4?zvz!(Ewtk;EoFpR34wiChP^Fm9I4h zhRXq4E!>zb*(YvYK9eq*H;}fRF1qw`yB~nx}DvjXa%!G8plIbZBY%4yd;-+YI zYVw!Asm(eD&oQR)na7(7E2`!m-D3_opMS8Z8=tc)ZO)xqFl#YF=bV#rh7R@0-9iCz z_A7)bMf<KNBdV>7lGi-@vO?&dR)QA>x9uuxUhT&@9GUBOru{T@?W^%_-Q+EA+NB z_-Z#gPSn^TQtpW9Mk)qFSiYW>g+|ZYmfUUL*_AnjE070S#UV3SI`eumdotVOTs0nw zVLcI9i%jXJqm*)sy#p9lWs;%~0mRVqH;0Sc-|i5KTyD^u@}GonP&Z+KT#oyIs21X` z8SxcwMh1k@Gb@!1GDh@k zWZO>;oBj%QwjM`4AEiw&G8nA6_w`$CFiR#aL@sO#_={21W6p zcW~4B)`qKhH&zwRgtAemS@=zo*ZpRSMSUNrJjc|^m>yVT9WpxaRrevTe?E@XbC*^O zV5pwNZqoHSrl*T(vj<^B0R7js_=?E1rpN~$&e-LHOyD6e{*4B%Kgqj9o7gY@I!l= z(tPd&Fb(vEIG9cj`FrrMvf@j$(8&M1TXQ}oDkb;e6TvP;<5povIi&@7>JT^TKTs%E2BA?Kp-s&^nRUCpLt)snhB!l#VnXm;@BA2+(S$V=r z$g^jrCAv22C6?~)r4Opv4SZ7a3!O%@>2YtNrp6onw2OaHK)CjnJEvnm`zqePu5-Sm z+Al4f46gcPO?fvDcxkL7Q%Q1io1H7)l1d!KzC#>p@W%*Ma@uti0TbV;)+D&tV!$Os zqAGIk{Xrq(t8X`$s7apZG#k~H@GeXG%1JtXGw2xfM7hUiBqxSDbmbc|WT;hPbf_Zp z;ksSijJV?YaYw!XhgD8|mTjRt_6zAVEI4#OQ^U25O>yCg5jqQ5 z?y4ruLV*aY<7UrnIwlS7YLC?FA-Sb;2WhsbK19V8XC1VE#P+T{urGlo`E~Cg&^>R| z<%=!eib>vP7d>ZQWF<<@(-h87$Il>6PbU%KlIlH<(sIW*JuZ3Dru`_@QKgCb+aq@H zZ4`rHwL^y4ewLv=#K?2bv0A>4%A2F5S%am1yFUSbMy#?K&b zouVT+%RdyI8uwJte}sLG?f2<_!U2Gp-Cma3^3)bG53t>?Dmum=uoT6fmYb(BqaHv< zZ|ffeJS9-FQB%2+g{gLK+Y+>!-HeK<9DyzdRvf)DjBk$ma_&t7lHx9$@yIZd$DKE{ zWvzMQSP;O50w%R6nGSF0(SUXZ1uqDOr^o-A*us;@7x8&An2utj$QFy3(wdvS@9`f^al zLK2GCAAEvV0qyRBJ!2~>E?^LQ>U}&(c{Qd}x?#y$Sb&H)#J3*K;3U{6IhfRTV$DAo zfc+(E)todr3ik8)#@L`KtUL9JZ@^ls{pT_vK}}dH1Gsg-_UKjee>rcHo&XryB+@ zZ>M?SD0Yzob#zA40i88twQ#mxXJ*P!54z~BF)kJA?ufw9WnyfTvxbWATAtk0Hp?J$=!@byT05Q&| z(|5)2_|?8c#NKv;EbR9qix(vOgquCFAZJ5Ryoy@Qjx<65GEl!ejWf8{@lgxL zey>wG8EIcgx76**(*6d2r4zeZ)Vzm+tP?+CeOZQqtnYb;M(|19^Z3N2m-u5~G(cYL zCNyL*%n+>7l9D{KoA`k#b{sjeXHjvN5oZa}snu<{ZxcvL!@GSjjE)AEVRiE|g32BQm zS=2?rc~hZfQsJFUCuSfjF#dBtZKyu#o+JP?0_!ri5rzHNS#xq*@@y4$x&MO$(vq*} zK)!+@()t;jp6uIwN!t6!U+dBeB5R9jsh>)GjLJc{ZGl8YS*qz<$G|$0KAUR!h@?}( z>KRe&-O0`4@KfqI{2j`mQ+pB~KTJbWGk1l@x1VJeCmQ6XP!d+B&sk^b6ba;ZT5nnI z#L!PIp`Qpr*`qo76EpkrbOD6{@##w=j?x-p`4`fIceIDi1Hb|I67AhUdRz(++Z7^h zI2TBezImEl4eJkYmVRv)tTfpj_76EPe%Sowv^df54hozo z@~t>~LTR3Od7+lwv$qY4OqITGi96a7#)6RzPtHwR!>#1GjWcQWa%IVum<$p6scXQ9 zx+*-iPaXb6EG2{>YZKNsr`5`rxm4KkY33f_>UVMHS`ljN)K)<(?oPE8*RTlfX6;i< zN9}By zDuN+lmPql}6xtnIoL`+^vZ8Gifk60eCAX=f<@YJFZb2Ww!;ejk^v!{uze(~mSjCNE z!gDIaJr&bAG4wVO?&5*kKF5fFv+{3p!B{>^y%%uvsc^Mz11jbyo8~ZdJji5uR^NOU zi4;|p+<-c2^WC@`1~xLR%V0Ia!dh%DZwbl8_A}!r-1>fY2i1Jtxl;I56{8PdU7IRs zA4bSc5DSZZ4;c5k*fiq;Ly%_edQH5oVV|;{bLF45KGP-}4D!_3N0Cq$qDSdwmw8(Ar0kIv$!b3t~Nil@Qri4#vR4`^vtO{PAR=&FtBh~)PUGe z?`6a_w3moNk|5pmHUSF-O1N(s|G%5fh6e3CILkv7=W9<=K%7^^k|X`#%=yV9941|2 z?7GL&`x?+ubsAjUnI_s0H`tZ^9uaPB_ zK+~w;9ow1rRnpoOcn|VHT;Y0to?!u-Bv$8DrPU37MK!J$=r$vhj|(oRMBR9T#k!Mc z=6rtsQ|P>ZI8`v)F?@XX+zM%v^NPun6lI3(l^49*#qGY^Jq@}2s`QK5_{q6DT& zHltgJSyP-eLL&!P9`c3w>x40|xjgOEJRL~y3SHtzEbE`EUsq>ZAU-{~m>;;h+aHz? zn}!(}nz6%%VirI0ADHgBSdDIc)|wVXo>Y|zgG`J4Y0iI8Tc#%{Sm+gx-YtfR`U%8?UwFTCtgD)9spHCq zZzLaxlh8;L2`Z1uE=$bq??Lqouwpf5E-}{cD$=RXRm#Bbq4VrFwIyIV7E7J*dZ2ZT zcQ)KFu#(OOnl-iEH>0oEt1`yPa&!u0)O-}W$BU1@Mz17?e4J&LQPeYRgfm!kZ z9<86oJmV$;1-EhTcZdH~3O6JGcDwYw)n$lUP`E#h5iO>*&KMr5!iCzv_LHo2uV=;3 zM7Av}8rt-L56ga?O{HuvUMx_c`>RsyX_l90^7wFsAQim%sZ;l41Rr)V zm1YR+!3V9BMP20P)|IPIL4=l2mp)871R_G%r+HJ6k%)@NOTv_GQw(+spm#bK=*SsG zG;0S{KVqukvRgZ zKCisLm3*Evil)p#nT}8PXlJGLulL9n>}_ok4QNDh2W8-ELxrxVHHDy#VYa1EZ)P$I zN#zBy24At6M7vmZ)8b;Y@Sqkz*#I#lh@#nWjmH0mlN4y&k$41Nff1vi?pJ{UO%3^;GPQ zX)HoQ4WC1}93yf5km?V;8CKhq_*rW3y7fC;pq~t=3`}8&^oRGCT7ht&w6Rlq!)H$r z@PXcC>J)~$@O8KGSm*1P*RRM_MBsY6lG_Y-(3pnpWm(7NQ=+Agw1lh2(ubK-H98uN z3EPjJ`5X-9>H*_9Xfzq>`-gy0@vM@@$hPerCrT!p4+l{f4#(rzwL+yQ%m|nQWzoMf z!%1>aoZ_V#aUcWcZXY=yifm~xo?G*G1_<_>ra6374{TQ-WJYR}#zDwy57$Lznsie4 z6e(&-UAX<;t&S&?G-!6x(Hv;bw{oyZ`m{G|jq*B^=g5C<4VBDb#fv6DMAxb#-h?A& z3aWnGYh5prRwX&@rPfw`F30#5u~I~>o&78jQ6!o)#Qf)1pAgmaY_jku0 z3@pc)O3Vu|jf_!t_ELFyycLsM>*T|Ep}Nj}d5dwaG!T=7162F9wzBua+owS5R`09f zx}7gKka42+ka<}ce&^e$&y>~1aBZ9M=%A#RP#h+{X`CKnYJrhXv80#Ji-r3yOIVZr z`Hh#4qbP1PBZg(Lo4IRKCE1dNXy7JdOKp$c?)fxob#ng1%{YrDwg*hvy? zu6Ax<-Y#1&0;^x{=ft}!BTgefxRK2ZTb(%w zK1_FrVmMJ{*Jiv;b3D%MUJn1=|Ko9PH}c1mmAij0=Yl`$x{Dyt?68e3%z2>n_WYG1 zN!|V~b6kSJ-k<41fPhb>5h&d*XmX&$YD~E>Kp9j_mY`CRxop-SZA)ng{cuHG-^T{-o1?{&q#q62}1)woi9RCgl78RMm&nZhgQ&zyx1|61cW zRW!XfbYQm=^HEuqRJdu7V4&oT;|AcLiS#uIvy?7MXy2BlwOr);;zy~w3vNjZMz4dl zK>a;U%~Wuz8Dp7M-ru? z8xOZRpEs8*uaPcN7O^(o?YlZSB~MC^?>sN0+o?;t++{{*Yl? z*D9>;#N{8JrUrOPFcz5oDU4zww`=cd<26w7Oz}irH+QK&JUQU_iDeXwDd?u z=n$kDm+DSwYQV`zVO4tJSvEav#I)&!u(zd;AHwf$_=bUikfvXI1Xvy@g+70R4PTXK z?WLD0N8~C_`SF81%$~#Fdq1Z~{jwYhqZ}hBLiI<4rpc7_HgCFz6%qcv>@BM1u>Fp> zQB>@4aGqy}4?KD##?^7j#nq$An;8`c+B(n6R^@-!j2t3A*47I|b0)3B@_MN1Eb)e2 z)5)CZXEfXGywu&H)tllW52vX82nqUkgq1C3LipvUR+2OCeEe7=`;Kv=X2_%Y|k0-U1?B z23#7JX~0g?5wxUnOsyCEH;jP*dBJ+--?^J(G1e2f zas3#|Y&4}<=hEID<1AQm9Q%oY>1FC|TSTRuxTy7t{p%Emwfqt@Vl8T$v*NsZ5ok=m z`1$%K@IInTvPk;D`gA^K_)mLMAa%rKU=C%tmuE|a@DW0P;Y2_8{a%`Od@M(coiUa~ z>YrFZ+Cqmh!7P0SBJLs)M30_l((UN>6oc=ptW`)cnq5ZO96}2Hg(ul0Y1KFK7Ic=; z^HdFQ>Ap(QAmA%BSB%K0z|48UB4b!7z!Udl>{e7NnylA0fP7%)6QAYau;PS>m}5*! zzF}%O%(zG&l$)HDw?fF>#2hy85koh?3wl8GG|#3f2P({`NTI?9wuRO>RJ7SoLmk@g zksXOCXzW5NOMnlR`XF?;;B2=plS=e#?WFC?N(CX){zo*fXw_dNGSK^V zfnSypog@SV&UBk#j2#Hsuyk&o6XUq!E7E%}05ntW(eCbV%c$|1r}Z_14M z%w^-xw63UQxfq>S@Ooa1;AUVIWx;UP{5S6QUvnfhf_J*{>bTc8hl|s_@W19ju|F9c z7+g@DO;aJ2A_?9LO-S$E>6E7nUptoC@{`e>i7J`pTKj2eWl4(?Cl2hU5$^_9bzH{I zpoLr$<)}>VbPLKI=OmhFpLA1|Ch}kpt_k;gP%@p6*&_~T+b`FV%IBT&!60&4a^h5_ z#Y0l*U0%^yCYJ!p*s0|u3%7|)Rl0`I7SoW}esBZ*?FLpI+%EH_(X=Q+)r|oZ05$)(K30d~BRtaM4<V;FOo39x`q?N2UKzG(U$4)i#Ft|PBH`GDE{B}B6E5p;EzR3HL!CeKX-(!Q zd;X9g1WJxwYkXNu^nN9WsKwF2c@e8pqnq*w`+51Nu@_W{)E5q6!mjRiZFAs8KFtwe zKzpWirQazAqx`G#Gt(GOYR&7~!~jx3!_?Uo)aRj6XtkV3*F3H+6)j}vOj@_{tI_Ij zaVUHYXfF805EcaDYiTLNY+c76*Xx(Sy%$1S+!%jXHy%lQNr!C{*<1-5{2mi!xsV_j z{&K9nkfAPEvyHVv?>0!`L2)=~hR8LPqG{VzpX?Mt4cTTqot<42m0)pxY>!=XnZvw( z)Kn_DZ7siz<{6w2Rv>yM07&X|x7R2b#spIH*Dns|RR)*Y`yF zM}rYfzMhPmc_|^jghnd00(8i}GTwJXJg@@~&LJWiL5Q7Sc?dlFRJx`jjVj~H5OPx>}b#pw)Ck`>B((mx8&b!s# zkM-{}Wn@u6P+zFgM3HoKy5=Hie+nV(ou{cpnbR`vBqR$sJ!{0vTh^47#^3B&R>UIZC4MzOoH;|Y$QCjWkO;oi#}{_ zLhu{pg;=PyOrKtoZHb0v5KGVO7F9_G!MVd@ZH;@%{lNEm&Wij8HiLuVKe8Fj4FAn$ zFmf=n{a;k$f5I7zoJ@>t|C`SEfBQVE+l-t|Y}&|hHeFp4rKnmp8L3-alCIWTZMadJ z1|n_Lt0Qf+^>}YL%jDx8U4GB`_*XD4bKA*kJ!VrLX?S>e zAd&$TxxL`U<2yo_{k3E@gF<6tfA~p%(*dG+e}o@b7a@&pq4PgJ51^V`o7w<3xPC+4 zdR|G71UBOa7+V?I_@@;6H@BL;`bmlJF51?E&g$*#)sJ+Qn~@`nCGaxq+bxeYMEads zTpt*F&s&qr@3r*LS=W}cKabuWkk@2a%^m4dw9eC zq)+cAKGU;k=LoQ#{$&RC^e3L%8k=9jIy-toKcRo&-+rIv0{oSJ7JGSF!TWt^{Y+c_ zodP_%0%>M5645vK#$FtHx3hMNrv+N%Zz8g>G6mN+_-Wf(8vfyTt`!*dV-5ev%P4ry z3QnlVsc8Z4LopBSBe6UEVkhzc_>DCg`Q=Oe#isbNBYf)(+4*I6{G}HEo%~n6+&%k? zsx>gYp|vx1atrX~H45-Uhe@p6x6AuaoBGvcULAw;>&GX?Mqm~9o3!fJvI6kKz5NTE z-rO|5+X}In`CAg2k?_7N6rTh#hHG94;mFnikdCSOd%fO!WZ7COAZ`^;dq>~)Yf0@N z5R&oUd!|AwK&ICE8{c`=q0#qNEyp&H{pYdxRZoA&M)peP7ZVrNj97cIckzWE^tW904-W2c;#VE$UE9Sk$FJ2* zfPh;*4y0baiKkkq6RqveTyVOa9z67sLb#7bkmWr5FIJar@6#P^uGC;#9$|Eh z@?ZQKJZSQlTQ8>OPhwt<6}>Ly0CZ3hJ`|R2{<+nPjgGSy;EX5f1ZFwb!fv|LW43~3 z&Wz>PHuB`;XXzdN@Uo3{oP9cci!aJQes4xT9`)k)tddo6gEsYI=w7%12qo_3WFJh0jBu|KEfO!5i9$qPQKvkd?#}bBhifa{24a2P%jztIV zVl!kg|D)@c%m-G1-!@u`?wqGC@}P)@Z3qsc)7rj|cF2DFB720&KLttDJHN;6TH*=| zn|DKAU0tTN!e?izMoQPNNi^NzUC%8ZqyR^kGbvYE?8fSUnXjRex>K?26pgJ}4V8qe z6QDq2E4V1vDwaruHEwcGFKR7Y?g`RrSZu+QiIIu1A!wN)9O|5u#J%iY;2TE`JAMns$Y4q#-iDpZBFI8Lsl9cJ?^R@DA#umSfY?<> zm?37i6+gg$4KnF_FQAtn9=`|`0|35}wBbn0HlWOUU zCa1%d`}H?xM~&R9CmxRDN_WA&wi@5>k3*gH<~rB7wQH>B$B#S&2KTp&pDZ==<;8;RZ$py4v~_Z{=_b!=)S#T|z?EEROhq+rVvnsn(L6`_zbQ z4yE#oCZkUenTKu|Q972V;LqNsi&MoPZAKeRS#$WdPRLi4xdT6a0F^jcXkEY@+@|ou z;ds8YdI2Ojz3-+Vy~CRT0+|>nuT3Oig9K{%6X5)O0=N+T{>juu%7h)bQadtcQ*5Bc4yuZjx^uqXV*78jkP}Kx-{&1t0Wqf^Jp`llhh5{V0>I z_{>wRb*_tKGuD`5s{ph(ZR>>=&Nwz$hycfbNZO8$QU-7Ch=tqz_d@^0jD?}GN^c=T zDrnpoVT4KcW=?caOVLnOCsyR2>ET0=#H+`GzIf2YVbq>V4kK@j6~ads%Lbv`Jr;5D zOA4Zjwnlx)Wm|0Y;FT8pVj3`tQIZoP=s9~G`@YGJ$E(cZj8^Ge$3Guv)<2}EZTS2) z;P@x!$Cm%X#hR+PRaBfJ_$`*jXG9E=j@n|vI#m8s5t*EpWcDXN;)Q4D8nCe$5qxO` z*zZJrD;EW$QpR?}Y!NRutxl#&;>70qb%0*D9T8PYKL7CUXUsq1i(Zw{$h0fj2-(l_ zGgCO|12%|B!-#V8>)6@jUSJ~)MM(?4%t&(=ttl_xol`1g?`M2x1X&1utyIINu*<Ja_tPhjqs^gCov6CqtUU0AF5uSX#uU$3VG7GN`$tPut!3!=tB=C z^G zK{+7tV4IBr(e0vC+j#5mo7r3%V&SW^-wbD~C^;Q}7^3xh_7S1v(*J()AL`Kda~fix zczMCaXlTfKq$01L$m8=MtZF#%7`+d^+~dUQ?(YbpC<^~z6VHu#wFq{ctmBb&3<)#1HCl!vL%3k#II(GuuOMe@Mq%DAhR z(JkedH}na2Un@pQ(fEf{mB)TPqCwv{bV}-Iek}gb>32%!P7-$y@*bkC_g%Rotwgfe z@N66+cAM)wiUtgF_;4l*v$TAEwL-o`dvb5kGzzpnpDrlgYvkvmB5scZL=*yVipMFR z*H-Ly6;_!TG3Rcv%{!;!)fK1$A~VJ~(oPh@rSWsHuh1~Kfw~L~c434!u@7ly>h{{0 zk_h@8>gJs%gBi!c?})MGRb3Mxc_l)R@_DyMp;!|%uj`08OD6xytITC0Kb89=yK~=U zXT63>!rDiJcGs!UcnB6-Fwu$B1flY#6tfV4 zCGHXvR^cwt%I&bA7@z_wVxoEN)DDh%3GX?1{aRLdcHG_eC_CI6QR~YlOwgjyaIM78 zHF3(AFoy60>ApbHN>_VQ>?!OG_&X8m|HZ@&WF3 z(x017s7XKyLB~+Qh2h^kgg)MXm$PS|k8&F};Sl@|0dlp&rMI?uV*WF$bI6ElyhLwI=IZF-ps;r# zK|*1+G-g;c6QH!G(_F&$xw?s*5G$&P3oBK*3zZC!-S;*fUi ze6|B1L|?<)nfolG*#14=A5`J|NvX!*1*f4fif)y+3<(UWreE!(C6^AVuCIPsI1T>e z%f31J)h}5`xK!Pb7~gYEHQuhsAHbnE!0i?FBM8DcZ77O)Oqr?SMKxEdU)b@~kC+P= z$?ZIL5t$dXQIfA!efL!j9yGY%EkT~fA#Ky_#-dA5yuk>c zm&w2p)p{72cS%J5m=WYC9`}Rk**%3XkBtZeF2s-=jA4{Tgy(A^Oi;Iv`B)B_a#|__ z!mhEDM}WhrDJLW#)r$8&n`>TgBDL0StcHh!X7#R`gT`n}NJO1udX&L*H{~Q#bwZQb z43HiYs%}EnYk5d#dU3%_u8*#Z7o3WT9}q|Vv?Ia#;hv$lphi!)L>`Dv*6Ek=uYRKP zj$=bNFOb10gn`ei#$MSt;%K|3b8I?~6`beBR6^pTpE zW>SW~rlOyCRCQa*^4x!}PJVHEHkMHZ}Z_&EJjb z#n@W>6FfhhUWu%|;_joUMK9ScH#BslH1K?iX~%B^GOxin4HKlFtzM)i_+fN6s1DI7 zpo?uNww4ZXFxRzN_iUSLG&$2ZA!iziAO2M|ePThor?wJBLXPs?VbMceP?M>R0Dj3L zpn!w=<)5C1(^_~y+)UZgV(Dum-~Gc(&%2H^_~7Eo~(!UVnl zRd1IyLYic7-n%kU&a=Ha*?TRlgq6K|ZZHaA>KkEpp~N<3sQ`~)!|kAK8;Q15%h2H- z$N{Om(;^1kciuZK>8XA6^i(p`Ju#|%^c^$4eXl8kWt9M1hU&8e^_4Y;Q|jC-cV=Un z>VIXHmkvHbP4I7Yr+~nTbPMvL6%am$-2i!SkhUr>!XY@3%U=0l>>WSN9ad8@tdJ(I zV|0mOKTBz6aR~^6cuz=16$@&lF*{RseJ;sGwSTVSjM4Z60dw66KX2E^0Xvs3e6JS9 z)wZ-b7vxOsPLkaXu}2ZshG*3Ep`W>wyvLa;))d-ttCQRU?YOZ#Ay2ri$P zM9>W7lZk2KHayw1u27O*%W%iNAfr`aKOnH({R>Jc?S-!0n*%Sr^8Bp5D@-!9u>R+h zzB3*?hXEzSET*#1%7RH<5ArK=JL-I%dTTm7OYJRGc{CBPAYmY~a>vili12|KYK3ji zn%V_@gv(X8jUd35{3)Y#08Xs)@k+JDfGOga=|a1MPb>!4aHz5vZ~$jv?r}=)zZkoR z;9Rt@OTe+6oY=N)+qO@9V%xTD+qP}ncJjsOTh-N7-BtgfhkL$f>s`-6asH=ooyuDW zPJ=O<2ZY?Os~4x^vs==?J#~VPh~%h-^l9Pj$+KnK^~*26$=S*KVGQ)y_0rm3-Pea| z)3=su1q5Q1>Q=d6DY?cL`f-yVal+gef3#es9h!}rE{Y<<5WJ%wfV9O-pWuPN2hpbc zhT|64KnQ?F@CLeOSJt6hEmV;-km0k$u**gDpTJ=-2oWydXmBFJAqw3B5S1~pig-oBX`|k5lXPAtOs?-ZpFq^L02}a^6*UQH;yd#2;$FF6juBIaq`_OH{Q>t=?t|V* zNmsyTfX768x)(V4qfwSm+=~C`<8eZHG;t9Jo3<@7Zr4ja{qLLBcgf>t__t!GHBOcK zZX$<$aull>N`K2VVWgcl&LN$REINhSzkv69b?+s8ce=a?P0!b?P|{TO=BzD$rzRdS{+{S)w_~T!Pw?(2I7j~+N0w! zHZ`*I6kg05>Ei(~g)tM}?GjGnRdl?OXkye)M#ZTyz1!h52m@IW8{VZ`0Lwli6djPf zInHK9)?h^Lly%4dS7jUam2lN&pM@4hh{hj{Ekbpw_r<8#!qExl`RLexsV=NmVv<6ccvGkI-b`n@!QiQR`y&~WGkNDwLbwHVcY3>}A|DCUAF4-TcU*OTD+X?_cx*T=n z1@s1SB#Qsho%)4QSH;w{GgHJejdA);fZ9StM~~u|Chfo3ul=u}^8xGWj|`IE{iw;O za77ja5Kr?faXf3A{kK${pz{ycZ(ndQRG6lV!}1st1TgMwlJ|kCCYdUN6!<=qW=(y% zKpTO%Q3l@g>W;aV-ckSny?J$To`e-HjNX9{-GO6rL_qU zGMgZ&yTB)B2^wou^LCc`GS_cFVHZ^Jd!M>qfp-#5(Dq>?h`L!yq*sX8p(sI-xAq>1JxcvuWm)9zd1*w9LA7K)7@U^}qOLA0wtIIiR zYo=M8*$u7SM6LG`adfJ+cKO(zT5mw(Kp^XfLwscZbvZZVf;CBwav|ftK&j_`+*D7x z$NF@*hV~;TqjC&lBoYr^fmoTRu@g8N<`bE>8;?OQiKA+pOJ4kL!&Zw@f=9STx6ix3>8Cb&5!>7} z!BQAKgc*s@x$hfpF#C#){WbBjm8!|9xzJxkz@b_{I@wN7HE|!BnLAR{=3r-2_^2?InNyhPfT-` zfs_WaD3D_LY*Cc!u(WU9Av!7uf$ro1p`K4+Tuw-BG1XGwbla9uKrYJ|?*5=C*d#Vd z>wku=-L+!Nzexa%IlES!`@0m`N8cVpWPf3p5cdcc9V-I>h>7W)o6BlAYP4q&C{r?}|qn>6sHLnZk?i4$7$x&6e>H0XtAQJyg^mS}BtwdO~c8ZHM4~lIiOGxw8gR(9)@U zO+IpjdW4e1f1MsbZ{T^wLxJVlA{htdw@G?_6eEsSpd_xHm0B;vAvA-|ht44MZG>DT zhF6c7#vQ0bwaK@)57CVhQ9OgI*M(x>K6U0+Z1H;4!B*>>6axE+;jXUjn~ggM%%2X{ zD}IJaN8f}_Iz@~H2bmf(l&A}L@Z6lB3Ha*+O_}Tk1xIBWUGIZrg9Z#IA z+UDV;f=~9Q^wgpSxEmqlzCkbZ&M34I>;Q7AP!c=cM+GHE_8z$zvF$pPKX-2 zw^JTWWkv*r!Fv30pRNs1PWz8CaK`h*zAE9On-ESdG3UVQ&xOCbD=PXYBy0Fw%ZurZ z5hfwyZPfNXpAYQI^f8Ok0-?lhyxcqRWx;T&8w<=ZWfk(YWR_)k&~Zszx1e0WTYjY% zNeD8Yj#x+BVp^`*$&nS))v>}jn#rvdf;z81KIq2&3nexUd@P7n-9T*kiAy zcHu#XT@Aq=#H!<18W>^mBR+(23tpT*CB&6g8)i(Vq57xZI$4r~%jgnr-*bq!B3|KSwV&E17hNM}+Tg&#jGAaNs0 z`CCDR8k8fs&MI2-;!(9S2Ct>Ki@_=-5pAxr8oa%7ltOtNG+0U! zO%TPNz;3oF;q+tXiAV&crAjXP-imf&!XXD}z~Go1Lxa0_KWIP4#eW4NsNQW9)Yz9E zU)Zs6Bn^1ek_6m{WK6NPO-za&Bu`4Q!D8*oMti^rT*afEq-r}zS#qY0 z{=!T{+;Peyaa`{z>C)kj|>J|!p5~#I`OwcNZKpVa@eL_F%q2b5H5$ML(U8_@gzOr4|@sKCn!M<52BKD zi8$-Hwjdq_DgovA811{WrQU5o2UzzguL9*LEg+$wIV~TmY8+!ioU-+L5iX9OA};$f zBat4*(q=Z&C=Gk8YL@SDRKSKF&oI@TT8UtLFV0;kMKRT-QB>X}exfq~$)RUcfbAWa z!O(iad@3s1)o@3VqF%rBBDW?%EHK*#F>4Dp{f*7p5boe>lP~bG_h@P@TxZdS@$ciQ*zwaiTb1_#iY8ZPZbHMqW zL&*eT9*Hx(p_%H!trmLMNEb~qBykUinu)f%r;W_C8^&wLf<=KrX-GfJnu!PuB){J? z!G<5X4a5zvkok!kzi*dT1*b#L``_pHKPb$D+>ufBnYAGi$e8rUnkHvNgZBHHRCKy~ z@OmetLj8jP8D`h@&K`zGpj>R|%{Gy|1&V;BEw-zEoCVwox?Td$_oWsttcBglPWyO< zWEA@6Ve@BMv}vtu0qfeosR>3(=aq^915<9c^)F(j*$vUy)ZMmpM2|p)W7ZNWNLqmz z{{*oFR_I`$dfoTy$KNYaHXf>iN{@D1%bC8z!+!R4G|eRl4uKrXPThD$VhM!v;5TK~ zZ^o0VKMlA)3fhB952_Qu=q7(T(|*yrzo3wPNKR6AE0TIQ%f9t2(Wiy-EAv5_QjiZ& zHc1bQ$5vBgk!CC=$!)jI8|F6*Tl8WX43&nE-T^PahIolx_LQLrSe9 zV9a8L!j?n@s$OiWMew+-7smIRT@M%FrSLPhh6;tNdoBGX;~0B9_ts$NZjQIlsM4gJ zWn-t76<}LVtj*_xN!jZi+higWg56--;Sw5k9wo@1S+#p7w*nGaHpyFk z8fYO6syQMSu5g{TlwG)Awu?C*b^ z>vl|>(+mu%;GtWH)a)05`VHXfWQ%FeONx8lq3o?sh-PXYa6 z`M&4=5qeaLz*(pFK-=&aW@NixFiufA9K1UexiQANGMnr(a1q(4p*LI45yWZO136TG z*D%Go+WfgTag&r+`|Yx9ca@$n8}Nlw`_@xxAJUQ`E< zD9@@7Ng`mK4Z>5STdrmI^|s(L25(@TN~-Q5=(pJiiuol}!{B|okvWb2AeW`O4f{T( z+FId$@BU7BQ!@gblSWE{Qi+^YWL}jutDVrokyXRFg>xHun4))|66iWK z3(O`&_!rk9v0t;2*FPS7nh3v zqEq7kYNVn*>>6vlEyS!Y@m2%Phm&oEr)8QYO-yPT0?8cTso43b9wC;TW&P^ZyWA;< z_gq|h`m!Ybnd~uMYDG7nnziEThXln}34iH_PfMGcksVUOK1BwH%n(wyGi7LrV(g#vpw48SFxMwj}HPV7Xz%!Cp7KKXO!{`!*9Ox%sta;~QQ zE4QmGY|dnOZ-M7JLWi>*XW?=Ec9ZkB`93UD$T{Qjj-)5qH1F|AzQ3BUROvKeYn-heuCM1F3>0xCMkWMcsZcr?z?2*b%)*Fu@=i;R zyML%CFCdp}gIymn)oP=LL;g{2{%n1P*v@NJtQ6Z7W7o1{>k7~!>_RX#{b27lqX`3a zP1?{TD&*}u@b1wi)wK5V973;gaa+B{^gXo@)32zTM8Hs5K#@?HN{&a&=isgf)Im} zr@N|(ykC(F(lCxohw=7dB7VMPC((W@$CPxKySlDmEJv}D1G&J>+bSb%e>Sxyi}W?; zC17(gQ#TT`?%t+OOxdbAF;rnmxbL`jB4gw0yU1Pr^9X~F^X)@BZ&+Xo6DdW{NjvZt z=Zra%c4eyCEZ(_YOP-VRf~#tAl@v$WX-KBpOH1K^%7u>C-M}Ep_`s@0v}wI@J)Ldq}=%*n?tMSU0z%>f9-jB)1}d$&*AH{84}D_Sj@l9E5vd4 zV(CSZ#nmV8K)Vx$VJZurln6Itp@{R}K5nxy4W>)qQnqGvGgAP5c|kW3TZuIN-&XKc zMD%M{?TQeh_2Er2lDb~$bQC3$FA}GWvM;88Q;pvdab7yy^M)UMg=WszJriZ-hHpLn z4MUDsHN)GA(zhzDm@+E?mUKW6bW3C0#>>WJ#@tCK`6v2*%PCvhq8T``(zr)rx5J=G zde~1%Nete}lxQMCMxTtK5!$~&9U_7EDbPy0774fd6{uTST79e1iMw)Vt zA6g0CZEL`F!TZf84jLW!7;{hQ%JL=R_LbY2=IfaCmi5x{_COK zvO)b8R>o(pX#!$A80mNUY5}64Ytb!$Vq3@j2gh2uV$f2D;@fkxN3MSQM^OIZe+@P(g)tKLSmjSllR@B2EO~flQk3(|pBqudV3L_j7 zXI25rZN{i;M4Lm97qf`{8W=EC;)bmedd*I`?t=YYijvzPo%f>_1(}k;#Z`_sx6;P` zmd4l~TvC|QjgGDCHu>8!`KreCH=jAz${4sx>AeW)iz?;y0v=BOk#j zG-5*hymVhm*cFW;Mgb=)q|b@4%{{$iG09?^t8v$9k&DLJ8J23bzn(n!TQ|F`+P^%W zdKTR`6xqr}3qA3r3&WLkE(DCBWXpG@xKAlR{hH}Zd{sU5gVYsQA+Zml}pIZ}S@>p{;WxM*AL1VK3-X-hiu}_!8-PmEmJB<)rGU-6?g%Yt7h|>a2CWnZZ z|0FMstGi=hb-&%!>O82M-myV?imbZ#%1r*~V8}^hROwZ=PCvz0xg&z9`KD^I)z}>? zL}{#-A*hmU$-s;qZHLp3nf!y9kw4DakAIbg&^Xn0Tx_k99Llks8|zlb=vr8&N_9fJ zN~No1T)tS%m)I`pL?q+pln_no%MfU@UL)7#K*|gah8&GnZ{{xdX{dq}H2eZkhEb>~ zZ99eOcW&JdHad{_q<~C-gCO5s5)seD^yTmi8 zxDRaa>N?a4HMI!V>YAGNQ+)6?4!Du?A67D9P3!tk#gp@Txy@`0FrIUp$E0UlYTg{! z(wU$+`}zQC*Ri$i3Nj?X#{|Vx6V8zA@1oBHohnj1Yk2h>!=njRhk=cEHpZS)I8>E1 zDD^vSqid$#uS!WFpHHNohuEdy2x+*|ddM9|jdst(j?Kd;fLA=V0(>J6h&jG7;Vadn zehcg)*%W!JaCeYPog=sJNdD1R*k&Y~sYf!mE{WlrUH!evlRkR6Z3+%%CvBE#(pPPw zI`h)}Wr@NQYly2#8YQUae@}F(LY?-lf+|{5-|=n->Kqi zN+Cp3ZXmIRs34wog_Zl!1S4Zd1=Pd<5*~x3sj%l8W*pie`hWm82>y#Q7t~~ndgmZ) z;!q%DR-n3Dmp!i)dU&5vGC|jWydH3Y?^KO`?DH1~l@QEgBi!uxDK8h^^lxdK6Q(#H zaU`|vg?oX87Jv-ZXZuY&uz5DO7M**zKByS<&2)TAizs_ez{P@#U+S>p>lD7Lc&%oC zdG5oNMaC{T_sp(ZFXmgTR1XMtgyg{qJGIH)n~{`q8f*)LVDO%Ibc4B)Z(kqhCw>}P zch!q-W%1k$th)tW(^YGg!?u^SZ;9ie@6K9^fi|ODl<3y;kuHYMHnTFo`cl}bq`=+I%0~U7!j7`IhKK3k zr--QwDoki-e?gy5%0)|1cm_m39i7ow1Q!Bl1IEneM)q0~IAEm=Q*N{Ftg%T*CS1U= z1MAN&wxcJLW@(;Ju5lW%kwoImf4UFIJn7i~(WK-<@qTQyD}hkvtJe@4VT^W z-N1a9GY4D(f0lbwJ)++H7*;F04{7Dv=IlcEoKBcrOiQQ(8MA;h>Xe?}g+9_{W_(=@ z&P-A)E0VEzjpm241e%K8lH({L22@}r#tv%haW}m58cZ>Me#)DW;JXi!qkCt7$a3vd z%*Rg1%iGG%HcE$MV5_l+__<-CNxAR3WBDI0S2HBoT!%gn!AR6M!{Ba(~rUb-oaeIqOL;1_WhufFk@B@Y2d za|Y>ko-<0{#XI>{9ZjQTfCP>dX9mezD)Z!%@_JG9iYK{g3xGeAqryZOGEwPTW6aGx z7kzs#fk=a|Wk*5HS%Iqg!3{ zz(@X9C!%Xe^I_d`VXsM$YR;27DzZuDP5I8-7Vbv%c}_rAa3=?jAAE;S)SuGhzjYux zYuii?ESprD-extt@zyVTrn{a3%7t3_C}5eo=p)OBi~vx=yGcl2-ch!?zAzZu2lp#C z-#8dZ;2q*ad{mEy|&$j-MbO*SQBbkw@xQj5)&}$ zBn4j%R8C(ckr4S2a81G*hWEy_*afFL4`4V^zIPm{pm7!?Q?o_igPO^wJ|54pjW1-c zg*rw2Rn@fZ=;;8dYM_JacurKnC=a4W-TwdElh;gOCi zx)I-$AWg@Fj~eZzyWzv=L{95GF>>$LZt{h0l41ccf5?y+o#{5ps0L?Oz02?H)vd6n ztO=XUrHinDPa*$KS9%wo6h!SFUw6q#<-`PUt?HwHX~5V)dDB-a%XKap89!giTB*h? z_L}N-vVk5ujeP;yCS>%~(yfFAElbEzA-#NGA?&Rv))6yHD8-d2hn>|RTb>Q$HNuYn zn;L(@vpbl4YH@R2_84%bZH!ao*c`>!81GEw>d^t9W6)Gkn;xE*`Bh#nkmlB}LGZa8 zTdOf07MTMVX&GOns$D?Q@$CIdmdFORh~u?oR8)HfN^Vr0!4=iQAkINX$9+X^V6Elm z(GTz+I9Z4lRyx%3ye${sOLj7Z7oewQDh8=(q0YpX+E4>A=`nt~C^&;s=nfAZr2_2l z8N@LZT0Ec{yXZ9~G!S^%Utib;8ZpK(WaumK8=-!zM+6(9A_3k}- ztjVBv`(DM~0;sCNER|JanGd`?)27yFNn-8bz$oqq(1-4U~ROjPG@NdBF zFwLYC-A61^T!Q+z1Y0oyE1HIyb}<+j&6oH;N;3-s>EAPg`x2+oXG+IU-Q5^xd2N$+ zErMK9%!|iX#0ka*&RySCMIoP79_eD^<55y9e`266D1}zvS8}-^X=|h%uAiz1*bF2W z$5>t82t%g+n+_80XkEm74pKZXT+pDlq)*)ZPxw#lnBI-+joO{>zqEy|C7;#0b-*D z;Wm3-9!MfXlWssj29deuov~KD1m+aBzUPRADMqb$sE>pw%COn_egmCb=KzZ1hDhUb z_JOBMNRy}4&EDkh!mEL_K=j)aA(CA<%8*#vvdxovJQ%RQF}IAW382RUGF@@V!N_<_Xc2HaYXY65WmRo!Wc*^3h--bbWe+MR=DPhasWM zXl_U#BO_7C!vJwdk-LT9ywc|{q{rY;m79g25G}A@nzcaO#+1jG+i6M-M6i6iKbw1b zQu1nYxCusgbXi?4ukTdKMzy6KE=iT=#jr3731f&13vP$e2=+@27@Kg;H@_fEoLl@Mi z^>slXX@4SwB|%0m2B!Tfl$6&S=tG+*?TRyYa{*P^t*?HxnbxEIuT>YX-1Dq_nk$-p zR#4@ZW)XMFmzA)@_AZK)U!29L1xf2=hi=cWJg1=5A+SwY=_NFo`1Z)otnaGrxIyyK z@8~}W_W^Nrbu?V5&x!rVxB9N8so|Qz8N#y2!Otk_6!p>6?(cb&`4iSZU7Y(>_w4WK%@w4J{Fpkg?N_ln5CjItL{#Jg_?x)e1}WEe zQ=N6+?`c`14I$2IJK_Qtr0PGq`a^g|NLUU z{WB6#et#4hzG&OOM<9%jzy<~r+9^s?R$@fTS1G;n{|g`#4T)vyc5W`4Y8nVy?NtL% zM0BU~P@ib~(bRA6h$r+&kn*>4@E^|26!y`lblh3(4&{Z(Tl~0M=htBZXCA}rCEG3x z@BGb#k09@|W;*uwHVzd^n34s4^blBkw6t4rY>1L%)pJ1X{*xwDTtx-q)yH6)Ltx!( zngfCu&|S(1l}DAF|1Q5kzE_~Dl5hUt-#Ye{&s^*}rqKv;dLpaIw9^EXoSU8HdTw%z zYS3Fi>Y6a|KBD(KBy|PEEnYwGvBnT+eH=4GZ&u-3gaIk7GgO$h@V~bXJM>};7O1L; za)cfzyX^`xqGSqt{8(*N16#kd#K||{kw2kM>Y&usC@0arMhur=$^!d*t{|l1@-TP~ z=eijgRw9S`Y{`T?NHj>!amW!=<4E8{U1`UP13nf$!5@Pt#EcSF4=rq)m+h*{x3hM~ zcxd)5J{02@C8u@%I|(LrT=Q@tDR3@^=bC=Qe%S}63lDJ$(SE2UH}Z9A_|zMC)2GkA zVS7ze5AuzJh|Ps!@M107tILZZJK*v)-ar0_@$Wbqa-*tD72mo*G?$kxWSjyk2|drH zW3^p-BIV!xlk3HJWU=?7Tdu1I}R6Gr^0^}~HT?-*mf zp^z$vXT~g*Bm$G+GRde5Vuq=^bz;PR1Wok#gAjZ;zJE=#cbVYd zMmSNd4R#>iAD(DYEG$PZ`(}l>jNHxTqBjjc1T95dp{@W5o=c zyYluv#A$rUP6FA+34GUt=>l03%7)}XHHaM7DSR{JWxh2v*1TLa3|+VHaKzb}d}sGE zMYlFcB++m>YVcDNGEhB0z)w#cYFc53Q#dAHim`gM9v$zDKWb*`72{ZEqdJ{13vE3g zyr7zZ-AYZszHGOZmN%?1uXNI|sl;0CQ7_@y31_qKg^)x4jv}9nH^9QKbhPc61tk62 zoe#z9f_k(!NmjF1gMiZc;#ORPq^+;T*WNHHKqa%Z4-BogpBvl#3Z6` zht046CeDyfaT09fp5IIOaAONju_Qt>TeV$7e)1_zh>Y zn$!qvmmf(H5dbT5VA>^pyz>dMHHCP4`)9$TdcrdyO~+xvpv#_Ni41bT`Tn=`+Y@3D zZP9e4hp6`8u-ZX+bCQCO87W>Dq+JVrg}3%{{dfP=6V| zgR1aYI%qj&S20F_DW2_k2Fypx^1_rDqt<~BQ$eHSBKO8}LiLgFa(gd|amUWPLNN0; z^)(?E7mNUBU4QX8_=}TsUc)+#tRVG}l5h@{r%PBpKhNW8`g2ibJB0tG6Kf^m zsi%&8-Q8);BpBY2OGNo!&+9YJ%;Ft*4`9lJ?1nHNEhSoo+G~$7nhn{(w`TrD7-MVD z76cL&*N$10TDMuU0WhA0jSZT8+e z>80VT1z><4MNSss8J%y|YDp2O^OoaLTK){m?=Vp#@&3yLd$97d!|d8$I^gve=(#pL z!YjO&w5S@QV<70=I#ilx%@l%po>rJjYhKV~E}C-nkfab9vP(`%%FGH7Z0tqZijWKS zyR&6*W1px+w_XL@L0Kbd>S`#9fMXBgM|%cZ+GLB#*Dvd6bGvf`m^e`d+PtDlydo3`Ds|jBDP(ZR4TX(rXoSkgd+}*c`;40CGUSM4)*pk z%dbnp5NC@aLo}6NH1dE06Zy}-4-eL8J{pO<7&__ONHn<(Q%c~D-99-4YIHL}u`g1- z1hZzU_aIFwvclSVGid=evkL4+(y=d1Q<@8t{}BWAW8*@t>CqcNh;GB+hxx(QHuiAl zqUd0C9Th6`Nd%TgMma96P)wFSHfH!PwD4DO9}-0?+976#eQ25h8dCe1;**MzwduJi z@lZK7IQYyuWvGOow2bDW=`J#mJBIJ9lH?3gfK}lZ41fJEHv5k9QCi4aX9zf(#9*wc zxCbi8xy&#E&kI$qxs`)1QZ${dq!Ik3*k~!tkVZJBcZ@7Os?OzIQwXF}ipj!RY0%d7 zZpxU#6V2@2k$vnH8nzd-O&bd@1yaSxLSm8YvDV87L8i&AS1S|V=G8f z1>}+?2DhFyHA%i^zYc|ldU8BRc?g6Ug5dF{kerwhC?`!-RsUaw`Nlj)eefMaEN$1M zTQE!+@nn%bMV?y=-$yYw5@smqpFqK=ai{J9`Dq7IkNc-IIx9L0)!% zUy&g0yUv)We^1dCa*GHoYir$q4I&vTze(v6&(7t3b(TNd`Ag@7Dr92@IFPK4<(~a{ z<#_Sw+o+4U=H1rHKw#Yx{;DwukC-AcUckL)lNL$Gs9fcxU20EL& zyY;YZW=+eZA-^^o*I9WNOGC3#&Rb=wlCd6baWkFFqhOHj+ua|bXWo^@*u1e@VJCVf_jX(SS}1$q>h#t$vH|0_`tyLwhk+Bsgd^k0&wW=p zz{<$mg8N<~{snsv>A}i;qPy zEN_1y>xsQ>Gev*9?P{K!H?(i?-B<9AMCUxw94PN6R$*bGgF)u zMUh60(B5hqV81iWc!d9RQLT3fZM;&u`$9-1hcn6~3qbN&U1eQ&qcZ<6Rq<9p@U?w$ zdUwJtA5W>U4^N7NEsDB+)Agx$)FrAts+n^V)E5r~b=bue^z6vJ<9xVAFAukl=O}GX zA)d!W@u*`@+-os!2Bi2Z`8GLaOq;$nVV)1+Di4QR7MyJ;_7zTEt@Bsc)a$Qez*?m>zF<|&$uki(Z$TJ7N-g|9ONr$aMv_I zU>#Xg5$ARZFlA-E&g);~fko-iAUESq9W>hEQ=bsKOh|| zRqZXvAXI7Gcb@=*VD5hqi@uxy7riBqnZ_7j9!AM6z)fCD7y1i1=O{bI%i6_L6-8M> z?-gk?I-{z%Yoj+}sB)oqJ?=cRZV= zvm)3~eYQ^V8Si{LeFkm`1LrRtDgV*orz)=-&H!4n(*A||*80KyN#NJ2?f@sXT2Bk$ zq!V!rO{H=kYCWIowA4fP*58hFIwM4S_O#;WKuOWuldB7?QdECN9wD9A6+x&*sc|#F^TJB+ zuFWWCV}kNh+48W=4`2D9nEa*fOdP{ zaZA~Fn6BpNymLe7kHjKK=y#r_;2#xUo$fb6I8m0f+zD3Wx}=bGoqA&eg~5%z5a^Vv zxDWzSelPHu*W9ueayq+YgSGbKe2=i=>2^%k54Q6JpfjhGoI^++n(^jA{;146&Ep@*qei6?0+3dLuCsO)ut4?pQ2=KmHrn`_{&>{k`&l@0#Y} z+syQ*((u;g!c2FPnc_ycZFF|Rg0-DEoa5Pp6?8wtwAGa9o`)ME!m~0n|6*n|_~a-& zy(y(H#wDTsl8-dn*%>5oPdi~(MD;LVIXDpv#1_OcTp~h9r5b`;6q?hd#^hmWsw^Q* z=SkMDG%LCZ*`^{YYfHP#7P&UVs$Q^$HJ@bn0IBM6w*({Jbhs(ZKSv-TsLw9~Dp+0H zZ#U{T({*8-(-@1x%g*F9UXHIpjcmTftv~|>91dT`PeiVUj!IVn_21tM$`W%)VnS== zU~@?GMq1k-Ob7qAu629&wVVajwm-;8e3Jv<|6;Bos3lApYSXj&cpG(jHvP$eqtgX; z@T{zx+xbyoZ&A)f^u{=&Q2sKXEg zLk)k=GCLu!2`(&eIkk_)x|Y3txC4}F{}rY4=*{$9wOcu+da-)I&NRR_8>vm#@5zC| z&PI%q$3elqj{VEX1LVNEfj%O&BRd>_YfH?WiT5Q4{%g-l$)+72*e01Zx%7rh}a;U?7rLhniH4Av*G1OaQgq2h2%!i?~hW^rs}c99a|} zi*5a@pa96ed`)BJcB-Cnv#u<#MByH~De@mBj_E!~mJCW}8R{rR}O|+dr9jMjz zrFN0~eT0FX9lXG&RV!-dKP?J{r7xp` zR9-yu6zb&Y{Qik0H4RZsl|40ye075qYWW>ewBzFt_W=&Xib@eYz%hcUFRm!!goFfw zuof`!K$$@6>p<1r-Q7^CKn`Azh!iqTut@&uB5F~w0RayNseQUYqxip~{KPqQGdDoX z1OmDN>@Ntdf;{t(Bfp%A@K9j>wEjRWGB|{Sx>{lq>QdN(G&RM*@erH9IsBQ54os~L ztiY6-nLsz$0nR`yUKIW_0ti5;UOXyOecDcDANwdS5SYN(c>d(61V(~xsQE(%NF@Eh z=cd*d*Iy4fh8J**Zp@9KKHI?K_=c9|#z)2<8o&guET4U_j`oee_x0cX{Nt+EIYP7K z@~H@f{SxYbpey{Ap&J=NzEid~9zh}2vwYk$H?!KmRu=cxA!i_Am>Zj&ApHGr^ZOjJ zK!HnBXA#)N@d-Kv#&NT0f9Z!tHWp{U4E`{JWc#0r%a^hXnx7$NBHs4do*DRn{K&kD zBOtKj`$=s5-T?C0Gy}5(*v(|2s%;3k@6l`Ac!zXZ>t| z|L}X~_2Xtmg@J=ZMzR$L{5F;g>`jYJ!qY!i3rq?0qs`7PF7Mxm9$PZ;`^U=E+VbdO z5B#^Q4gH=#?HBT_Z|GN&$jbbu;J?2iPd@9HPM1?cyAx1Kol1xb>z|P@Gj{U*Z>^pM zoO?ra6Iej>=hIgpP*d{27cC0P>^TI@9sdPt&hiW6(wa+S;O$nuJvYb zmYP5XSozf+2;_$(DYdZY!Vmwa5Cyf#4bt7m_~a1W+xW=r-94IME+H*u=tc z-M{;VcY!%S0T9A@Jd42kMhm;a-x+E)5_r|1EIv;9g0;0F7%t3fMcq36_%nmQdpBv= ztus2dZ_0Sn%ZwARtCtP-m-n3v5`K)^K_((gIdI+6WRC^;S2H4e`L<_foKU9hl;ZL{ zOCPr`Y<2bEB~v4X9`!6gS}XbI;Gyn~IXlp|mmE0)A=bG9=qEv-k#$nidT_3g+Mt-? zaz7VXE`twukePWTB0-=#9P>S&!Ejnk_o`pw?Y&ZErV)gQB4wYRNgU_q8nzgs9HtD@ z%^DbyKs=ACUJu%H8x-t*n=gl5`BFX&XlEaPq9D-css_AZ9fV*6DV6SJxZB+PRpG^& zrN(dAHhl?x8C1~=i{&7=VxHwS{{0#NrY6RBm8YApFU}fo+r+uF#W!)$XTFrHnk%h` zvBIqojp_5UV!xs451m-j1doC`mUfhiS6m)@03oi4tPW#-henU$t@hioeQK4Ru!33MLT6@xfmZDSR-3RclXxdMG$Wa}+9Go7>1~9!* z=>XsIIS+kxWwcaKD-6EXeoA^bq1Lflr&x2hC&C^w6Uq4NA1f@LeFmXY)|{7LRTkp8 zH-r28W~Z6XJogA|WhySfqTW`xN5wmM@X_0TFDuVidqQOkVzqb`m|I2u?5cMyFE!W}|gx z4qB+{_%1BOMwfx4o&h|U|H{jwD^t-!KZ&+ZzN2ri=O53D=A0%n;x6XDt@U8z>Vec4ZNf$+lcG)(%Y}>YN>y~Z1staAVZQHihW!tu2eKT)f zOvJp1$;dc2Pv$<_kw5aT%(WIitPW@(H!v-f$&_N$C)(i0rV}u(3C%^yG(|h9jkVo@ zg?1Ssz#Oe;jVN3kljrQ#UujQE;Yf!fA6INjyaHp}ERZ$%U zZsdtL>^ah1WLm1TZ$Q4`#HfFr|wJ1yW=hkgQO3+L%iYcfrtwk2+7t86+2LZV!2)pbP zXYQf+7(+E#RJ`W6ol&zy$}TR6512gprM;G@all~^?Rid8Oll)3%q?PgLv^{I`9LFF zO~Ne;)-rHZ1!_W;q=B;TNi&7@Mc}p&!C&aVOHbQ%Oaz4-3EX9yVDzTR9O~jvQ!)XE zDeAsp>ie$}nFzH#o>&w71AsZ?zpSxkJLf4~ytI=YTF*$?q)9T?V=-+ndR_b-Y~h^( zGu?aDl=me{Xp!-$p(Wiac!GyQgqgFPY5WFvBHKO@_@~_7@EjCaK0xVpW-?jKN~=Er z>{;{n$@y$ZL3-l)wXHfhPdm#kvpr6u z3)`y2t8B?EaO?%zu-rr={_zVW%&oRb)gD^Q$DInToa{t!J=#|It z;Xt3|eq=HUjg7}SacxY*mg9)TqmJVBG_W^bvh=qNTRVaF!J(pFq56dke_#psu{CBN z#mO-2+oV-H=8$Tihs7$fPP*$v+TTzmHx{D8wWhBw;FjCOliG<)#Xs+VXYi&S(6`g~ zms)9>2&mrt%Jzv+;^o`-vx<^%2b6L3BPtT&Zpvlds|9YJx?}ngV}ZsD{^7r9z{0aN z&oa6&!k`ub-*)4J!N>T^ZJyK2m>&*Oh`8IPHpbHgTcGEY+O~#IDC9;2^$=-W#^WD8 zaWCcgnHFk1-%9x*ot0+aF)FIehK2b~t2NQ8!|Sa^Hy4ih<7xgS9Q#LYi=UrqgPq8E zqf%R%I34qFCXxlTgpGv%KpiQ?yzu z5T5q)tho5Jd{f(mD1&7jp;%I^Gjs<- zgyyZjJVYuyFX_4}T#X#gde05B;!*4iN_`IkxEML?-=Qjd^u2mrzl^^f6#^ zt*CLcZYRhYzt*i^ORpRXDd|a*eJ%?Un;Hy5?C07XYwJaY-0J`cZE1n)cI#J{Q5jY* zm~x;D_%FyiJL_hG1=)pQXon<(x+4LGsEV)X^-Ya2V$c;Z_vj=FS80=0e)!_m5k)Vix?a^X%0WB2GTA$fYf% z3E%%YiZ^E!pIF?vYF2jaXsCYj4Tqf&xn+`adnZL1TvllKsQt?oMCF317%Xp{FSwz$ z$wKXcgHIGr04XVDCP+V81`voGNWDTLgX;C?pN|Zu|+BMZ)(>^-ep+zAiv|npP9i5Knr z1?Y)*%8}RF(=Le6Fm!UT$xtg+^QZ@kd-X8EsF=fx)^FUAgH>*m4E!rwV~$QPEplit zbQy@=w`PDjR|3$3p&|EzZJ9(PIMnjhBU6gwd>o6q+z-0}>h0GhjHV~N`t{YkHn=Zz zA^Pkw^zvV3NBX4bQKj)~US@L3!9<|Qy+`ElPj(qjWzVw}NXmSv^nvy9LfeoyQwOY8 zdaA!KE^22`cm_^yiOTSHALn|}A;Y%PaFaY+PXSM`&vde2MumCXdk)q z;1=FV$md|paQ?Y1UL{>mZ8oxCGH}jFvPAcncy*OzN5p3(+O+a6GWZyaOi*#hBnb8M ze*fL6yuRD&!CVubYYdnkSB)c-Dnj%wa00DNRmja7e&_w|>d z^(4a?<{T8&weQn&s`Rq3R;*!Z{ZS-DTV1AVCb{+~eX$S(l-j9Pdf{x~Bn01>*s;me zfhRVY)i}ihriaqbS5E<^9Cma{tR*ZqmRy7&z>T)r(0yn1kg{bX@=@nm?d`dU6mx=% zcciex^+1j39;oi;BWjrr+6|}Z5}`Lz2z!}P!wwt&DvQ%)-Py zI|&rYSUlOohNRoe|PLBDk^fP)Kkc!YC#$F=>Rv)(W(O_G^fa}T;@a!M; zFzqGv?ZM=uxMh4ob~8@(Gy1_-$&%9jg$yA-tk?3|UwLH@kO4(kxlRTz3+SJUDD0EM z-Ku2Tv98~FSkGa5(s4eeNzZ!+`7^02;|cV;-{ zwMz#r5WXdw#W)H$vHK-q^)qfHanhND>tFSw%*KRo4jdn+U`)Li@EGbEhfLh-h826q z`GJ*`J*G%G?sH9Hnt)ec_5FJ4NtegQ{io|Pvwt2JckF-*TfD^q-b(Nr5%tVJc3L2s zFge*_IZ~hYbNPvP6Ko>0c6y^H%&bq(2k8C&%7h&AG~BUvj}_%E26JQh9>IXT@}oqQoYZLY3G$Yf^XKj zYKDtpX(0a36i8P#r{~#;&Fi-s)8JAhr7Hxjq-H)+Zw3Vs(LL zulo}1siV3ar&y*wbW4x~rz1N~;nAfvoCX^BPRHn0kU+aSR5CLCDyHXv7{($L?S-vH z;{0#{VOGaE&oQg4^S2ig_iKMX%25MbuASMCg>c9K40rPah>E#s6Cs#LeGxeMKeSI=i{jI<8#~MLvIo)a; zbW6yAK!0Ez?OlYr%%Ey1L0ISb_8E8pbL*&UkP2VJTC2@wo7lNOzn_e*YTRdkjbq4%AoP2kL6~WtM3Hp9vlu5Vm_s>(v=SzBk%?HO#g0PNvwpJh6#7FrHCYTK2W*xn}1h8R;9| zf`UL9>M7Q9;4{q0n~(wOu(`i9RkF0**eebj|iQ~-rjAT>joHUL5tJj$vl5bSolzoDeB!C`9DkC!`F$F*8~CRyx_08t@j zvOkJh`x7po$XnyoV23N;Ko6h4|jY4-w~fIipRYi;H_rh4>UT1f6ha+a3g zx#8F+Enqy`X%-vF$Z#~3Y~Q{{Vnqw!<2llhuu@zV#pHY|wTL?n-FQ~KViC$Sw9YQr z^8R+)WXov$!eHFJqyN`78X2GNwxQEdzCH#{XNTf4PKYKuc(kKx33{MTki6#{<+WoT2gw2GGk}R50=v8nE7y*L!BNUNcHt(I ze1o}is^Xc?V~YOfyf5gVNq#KoQp;cU`)gwDH#BS#;%=|9KPsSBoPwwplF(|G`|~;k zy*2E;Q)b@EpqQ?vzR=Gm`+KX?m+uzYc4k<7kztSREpVX$v` zWv;60v^0j!MAP~f7px3-enIJ1mY1;kmx9O{V|H4}sOCum1L%~-Y-9dd?uzoy_l$VL zA46Ddi6*VoSptg0ZBL#QKf+(`)xiupojE(OiSSWuoGa#G%-1l|B)Jt%-{WLroTUT# z1ok1j3!``{!xxoeC@sA%mG~pogL6;QH#qI(bFvt)>dNpS-eehDhOc`gaVlIMb*Y=7 z6!5ETJ?pU}U-baUWTZ&ktz#+=bj?=MKxq&@TeOFysN!VI z?h@PrRqAZrZzU=X>>Xdak<3R( zET3oOYm`9K1NJ^2ye99BghsZW) zCx@)1E?<+Wk++f>%_I>@coGzXBM=uuRC%LbL|+I3PWV;32) zLgAC@aH8$a%I96fuhlcg`-`O6Y_p~FNb$AaW>9p{61^@9&u<^^9iRW=xy(g+hmo|q z4lb)2n&e#u@~h?Fg^*hU2d66^nnjqXld{_z z6KC*>+wYcDZ&YL{aSSCj=!Ju39WkZtfU;gu*sT-%E*GlrcRPPUP3tg-P+y8~T>UoJ zBZz!c(S9S#eL&k*C`#7-SD`rqg;-@W<7MW;sB8bSKVqxamGut0|bJ;F@}}+H&`iJKH{FiW`~3?7iXb&bb3bVH5>_<@Jd$~DxN$tUV9`z&2HseOcv5MgA{htiql*v`n_w3_|?3Q8C&iOx=$%s*>O7VUti zE``+B>7sR<1Xl?cgYC&S3rED-8Ye!bKfRftUu64;J^zQVGhN2I%>WF!5O|A zn5?%Ug-7{HWDfc`QY2D3*%^0qs{NNfqBW7 zTABrUHP&!?hBj?Pmn&HV9PA%;Rd4Tu5O}rVl&|Jvczb$JtHo_URDjtv+NdP$MOjFB@Ft9 zmsZrU@apa562SZnrj(XzFH{zutepB#g>p(WO-$NgHu3!8FY#pv=|JI7`^iy*tspB6 z4FzPGBu%yDNWqYs_i|^S73Lp#Fy?|h`{7f1+B(g!+(R~Ht*SncFIij5rlIy=kY+AX z38GGlBKzsa?BDoAS&F;wVnwqdZCR&pEZb&ndRG1382kY97HYLV%mm)06F{>Zw`UTh z1v7@J#ebq3S^^dmorE`IIdHEg*(d56LaoxMKr4y@#+c&9N<*SJSCOO6WSEO(6$)vT zX=W;HjX+Wx&vmmZ%H%B%y18EqCHA)fTN7DzA`)YhD@zq-l7^XCh~cqfusCnv*0-sR z2mfftIMfINM)vdMatAFCdWBxEvgFpHX!D6^iHPXacMbFr>lP}o@)1j&pT5yP3ZHT^ zF}Uwj$rBiRkkfEC(Qe89BJMsFdON_yuN@VYai^uaoWw|%E+=nWkGl>VY;kud9L_`E zWD~v=o$KO4(ZJ^q{i@%nz;0f$^uU`HE#|??0;Z%cbUX*4aK2{YQ;!>ND{jYo`*ThJ z{;uGY6PXAkHVXP zAmk_@Bm8!--Eg=nQAti)4!T5b_{%h)oO@Gr$R)GPRXbYb{brXy=Qk?r;HWNmmIUp! zjY#GbF!gU#=B`Qc0AalY_G1wc zyKOECjHjw|e6h*ts`yuUV(Xcj(xb!m-o6lCX%Y0Al3C z*Ml`xPU!wCw|9)O7*qn=!Hcc&Pri)7^+R=CQO z`EeLN?GR)veS;#HGYWLsY32%qTaX&x4tN86$(8#~xs{*k$Gkx-rt+_Lw;EY0#TNP% z;Ac4NoWx2f1o+&~k{@%)>K>o#F_@bK%LvA3sByZ|`>pXM$_uD0W5cs@(mHJMO2k$D z=218(@}7?gpm#ksd1z}jYk*tY%N={hC##IVkeEip0F*p{E3>Qu6;*n6Q8B>=@#u*UB_A>v%QEwLeOa#8_K@)1|@3JPef+PE63$wiM3^m zmCgkX&9Faz^-P5&I4keddc>*sRXMUC_%7dgD+W&2@k^eZcEkP_%>2&9M@GLyfh_p9 zL&e5r&`f4ak@`~H@+(oAW8{yJ7sZA6iqUhuxMZ5rg(syqnaSBpiS~_1MsT))Nd)!p z8fV<5jiD&$rdWtWAsDQ3_o!xuJ*sXWgY&+eFfi~nl`9evWhq(M0TMpnDI?Ub-LWvi zq46+qiCS@!Dxc;quFernZCap4za4`2j<;UN8OpCoRlKrb)z7u%a`+89AbQ6M$d2GZ7=@q5 zqKJU{ZfYA~6{jQi+{B}Td&kMWNueE1IQf^j3$TTI5I+R^O5Et~rRWI!S^(aZAMMv% zCkjp7<5pBDk;s`pxR){2lXR5B-Y~fHPdo3?bO#5$ zZ_0k-dobmIIno=0bu{zYn)JOb*(ZUwa!-6W=X{YO-cY>(?yvJjl0o~08Qg88P<-e8 zA$oI8kTGBCMbK;mWD-U^!bxn69RHIDfjt^0aZ#r$O4_xh>7|%+ zejqe6Yp%f`_K81GG+*s%#~H7qBD7tmQQ7uwr%-OfoSBO(b3G4bEE(s~r{X*lK}VbA zIrNl?!wV97`D4@e=T_UaOL0LJJ35!D4oEn>+uQ?-jbHC?ylWbYa?S#^hZee&cAZs1 z7e4-dqx4F}Xgx5fDeBqd8EN!t61Mu2|K=F=^!xCnWV|tD0oAaWv39&?EMUgsDnxkp zp8!c13K3R#B4~qWLUlhsWvQMPpri7Q6&a%m;xsd_`O~>Zy!~)QHI3f0lQB2DC|5={ zrY(}k0|Dy1_-4`HWWI}Hdr-g}%Wl(*vGb*5o4);NW}Q4hSLf1HJ{a>aG~Ly6RfNgB zjAgw@A?rlZE4e)dO7(TqpeuS1r{G2CtJzgOJ)Y__$R`Z&6RJasT(#9|!nLbia!o(> zDPR^SZV!@vNvAw9xc4Ej2`NZK?e3nUw3Z%l17FN;U`k7P*bE;wcx6oLq$FXS$8rdD zd2iGTT3mn$UZOLtka{_AMLqS{aemvV@`Orpdu+=#QO=y6mZoph%8i&Ao{uL%PvYcr z53!3g7e$jpSgERE_3RUrZ%fZ%~s;A&YwG;@19X6XwckP=7J?e%%eTc|+EvTvUyua^O7L z%-HY-XS0j(iK1e6>2UpF#BfvWqa5anvPm9l7*W%X4qICFY4wqUpoVsD-b|Dac&by? z4Xyxcr9;Q(q4%!lqAsx0J+ZHh^}fr+-U)#>RCgWPf68qD#rN4N>f!)_)t88-;f2SS zt=0Cw%^_Y?9l5P?-{KZ@NA?&`c8(OZ(5aW;PapOZ^3>2~#;bi}E3W?J-Y17k=xquG zDcM&}9aQwRU~!aocSm01XoKr>utaiuvC24^H}ys9+69<+k1GT19^?b}BxF_36=5Qu zG#u$dI&inn;P+YS+;x6m19)5IbM--P%0S)u-0Pb^oM&KS0qwALpJ8H2B=R+X`Joj$ z;~Ys%l`U*jLDIkjmRqwPsm7d$=ELl~L_%L4%)_thB{9Q@^r0;_rreYQ84YMBxI3uA6N;+zWst8Gu_! zJ2fd3QX{#|(1UZDkuFXE=qIy$)pgTuz3!^ZhhXfg8s4==_5$cJoB2hi1S}3q__5mR zT4cN#63aqpIj>dj4IrTSip(f_&OL5xjSYGTFP9kv8MX)o=OOXpfj)8a#t~H;V|QNsL@Obs2hrLyn@jwplm(@Gd6}Ry8RCk4cHM}S&yxSR}-07*qdL$*Ue_* zk>z|NB8B;lH)EYMDsLYn$;YiKrzBYDv&{@LTpmtCGLY}GhuT&ra9v~Cy}i0JNchlI z1{RSw09HfQYii7#o0et}6Flk6se?0WGGVyyl0*dbrH8+304%V4PiaQFy_f3m^xw6*<1`2U!0nk zV3-hxo>h8jiuiYx>>+V6j;O7W#MSA5mAy1!;wYQ=0`NAPWw~vK(Tfg>=;}~qP@uvo|RFlDr_Hj1mJR= zT}NFHg0A+Ph>zidj2FDl&Vg&67fEkj(NUUT1I?OLWYR3YX{gX9esf8P{17>RU10au zP8Cc;qnBddX1wg;j5VY^L5!nGYp&Z19>^SeXWMgK+%FkvA?7jzM{3h`MKdcsuiVzI zl~`?D7S8tHGzUZptx9WQ4ZE)pmqA5%%KAb={w}kyY!~TM;+xBw$`50q#H_#ogBH^7 z1(vJSz_}9i1Wn1zk&!^?y57a`lS-Q{!MSAXC2pLPQgow>T8(=?|4LWtXGlxl+x=%v zoJ?3cZEkk%Vm3mhUvTjG6^J9z9esmR?Hef0!{9!VvhxZk(4tv7$+D=>-zWKv@QQVw z7Y$~&d6(5J;HuA+qHu_;K^o--7!p9q{gdUVZjMU1B?k@0Hp9)`y;YNDSiPSuHtB+S zmpWH^qj9CQwKpY+*Gqqmjm*h@F!h~f@|N#sl1UU0VqGoSx5vB*=8=gzU!>#w-eOA6 zWN}My^(6K-xJj^oBT0B$zCu9cxPe&HvX#YupBT_e>wTeksyMkTXOumkAaEanrKUlN z<#zm0I2$EqkMI5`?!{Y5NHd`fiOkQT0ot*9y+HN0;ve0{@yh%2b@!bD#$no0mYute zUo)+j+q0VqRF768{c;VLo$D2*0-MboB7uWR-+9L11-B^Q$ONYj$qMhyxbv!yF2f`t z1`o2LQs*|g^H`m#a@=!u>RbrP>1fDen=Fo?z~C8YkzPh_HgC$cLpi=QYL=I;%=6TjqXTtVPd+X(y zNpqHO1Y~up)~*BJ8E*C{Y+nsYVyM(oCDK2Ef#2`bK=XD>4*%&90Ov6^2kRYFdd*zv zb?=xCED-*>obEuAhdJGX)!)?DjADh$OQWs~8&jneq?+0viBh>=Q+PM*@io0w%e#?< z6`cA}?b0MAG4SjAOg})7XFOHvOCPqvOwCK3ZrXkU;R)$A8b6eAnB;Dw4JGfRy!Vbu zZRc2m;rtu7#Y^oVQvJ8NZOx{8BA+X0%t^9@9?s0xg^u1KAIB0jJ%35g-H1FS|DbRw zsvE|8rGqjSHiyvDHUSiLP%HFxf@(UXHtkMzI#tBw&p#$I5#*BIb?1`Lo5v`-T{ojt zp356~)Oid=P6CIl!QuO%;v)ChiGb!j7 zu5G#|5P!5(T+STyM47uMe3D+IvT#6Wp>_^)-r&0=sT^oC;fU{;jV1Bb(Py3SsH) zi^q5G#9)c1>oouSm7f;YAo%~Jl`t`||8KMs1xGs*7h`}U0foJZsR}@YmXVHyfsToh z5}IDn#o7Glk&KdF#lqPd@bjzeVq^(0cK$gMb_5tY|6G$X{AohqX5nm3VD4cLaC8Ki zQqoHUJlyOYO`Irx`uHD#7IwBGhRy&23K1?Q1}0_(CPo%Uc4iJn4q65_as~$SpEy}N zlmAuJ-~#3Ud+(i2>?y6pdzY4_w!+twUME%?SBhUF}H9c_}TyGLTCuo0FF*S zLlZF5{fx)T$;8G=%S6ZazZUot|1)(N3s(Ta&!iaWMF2(?hPIRhR`!O@=1u@Z0@wey zIU5}_9TO!qAK!nev@^1VW@P@~6R7gDZUTCFBTHpx8)$kt0uILiobMf-oC(;OnEn?t zhk%8Vlat_oZ2w)gcK(?!y_oe+QbYj8b|!%TdUtaENvaLB``V?pq|-VFdiT5f%}O>M z%pkmqi;F57`PHE0uxnk9?-vB@Qe5`zPIRh(un;K^Y+0_f zK>z{Jxp_DnunJ0M5iRcEl%N@UDk2H@6_3THzjHlIo@6lzxFI3-m4(}Nsi;UuH~G3^ zAt-V*3ou6~p)mn;C+Rt%SeP@~gA6ZeNRXD~D)v0`U_+o{9_c6#fgeQ{>|p%c*i$AE z$L~qutME+N8R@3y5qz%;ho?Bm)5&(~vDgCYpv zXa|0SGKi(tcOV!#2&HW&Gjrpe51)W0yo1^=R1V`9(}dMMXFgms``+54NBbr!bY*wI z$&Yf5r)N8Mb;RF40lcmp8P)atU!yC8uY$Ou+$(z4#E1d~hpof|kv3Ojon>$j7mr44 zT(oMd;yd2nsdWu|>r@r19PfPeVX5av2qJRoL(WaX*iKsABXSXk7q*O4$%Ki)dHZ{g zJl-7d$vz~QFWUkd37kWO`SQJNItGyjcc9sjFoe`d$*}$PTJSvi65{o;I~1DKg9PFf ztr)es8DYz&1&Z{D$U&htPFkqDU4-|)sb|zr`8uQ9xAzP zz7G*?pT;&Ue?bsVGst%5KNqsa06vAEoOr;Ggw>^s(Tr?D1$8L8?(i8R;N+~m1Wa?e z1^QcpW``wX>0%da>W5Ln%UM&jreN&g*jORiBAr6A{S`KV|6~xaJyEx6WQ*eKQ?)uF z`UrfgIO)yK%Nl7GI;+Tj z^L1MFPI%Fm=4x>XU^CaoMwXK96ylB+CP~SJj^bW(t25a??+-OJw6EykssuDm%0Ho^ zqtV(*=gy^Ct;9r=T&XrwF>}iebV)NX=VQC;nZl9@;|%WLzWaGb%0x$+k*)eTp+m>M zR8PoY(Rg?(OdN75*8V(|(qTUn)u5h*H2Ix5# zt#xUei4x@nZpNZXiw47*m)cnZ)QwfuV2z_H!wLvGhYw0wnM0gX;*-mX%DL>Fqnl8p z6vNXJo(pu~@j&bt(@hsq|@(xjfaB{E!1l$r<88CM>p8*$S7 zBHm%qkhZ8(B_KY(0I%0zR-1OJ5fFpd0w)_>HDz*=M6K|FqxiBQu}XQ-J93fKOSuGS z+DXr`5KZQfFtu`v|b8o={0J?g->#V*%=*MdH(K##Nqx5J# z7UO95Ja2de<*D8&3ZIK#|6s%{!d5wszJfF3yL2>Wvb+f}cv}y@a1QgyXMEH-lNv>Z zK>EyT>ba?DcDV7$K#dZb({%VY`iHkX^5h}VExJ^dOtzt(CZ_aq-!dyidqlO}GJ}4( zsJQZPO;d{L{N-uD3J!53Zu@Q4dy+PDF~%kU;V8UFsfB8(IsauH!~{|oG&5doOz6GY(90XRF8MQNUS1oB zT!MJTt_hDPLsvE`W?%1Vc`NT9`=^x-$E0}Nj15?f2dxwKCx2d}KNp%_JRK%5 z%_h`ONj}Eg&&1k)j1dQ#q__7zC1h&0e)IZ$@Pv&$Nr$Hh85(TJ$xL#j~E=8B#a|bNhckD<=7{vcVhO$r9=+dKeTDcMpURS>LKD%?|n{e+V@A; z5tpXuMtz4qnYqERWuRNj(VGmk&qh=nC3KK#qx)efH{<#lS7eAP)-En%z1!8LvWAek zBCVaS7qH{w#m%x|`qw6bLEcK6n6gjMI4&MaT=vi1-=}>0J^|rob#I$M^qWCs`{wRu zPIr1vpbOr-~#vG{EfB%YS>` zorxNFCoo&x$nrx&%O3x_rGD9}oO(6#)@FHKrR3n{@Vvj;<$U4fcKZDA|NT}cNsT+x zB~O!Z56=FtstrlVx?ZLsE=AZi+JIMwh$SW^2dRm@{TUL-hbe>1kk{p<;^b&K?3#W1 znEl2S`aS`1v&5|hW5|fJyI24pxGz)zky#)NQhz0-!>A1#WH+T_wY;@6bx=$LRm(wf z663tqVdSfLqwj0og}p=hA1}AB>(|@I^Zo+F2+qb70D|g6i)etFBTWo3?o2WPNzHSd zox&orfR=DibYbs8uJ7hz;GLaZzIS3kwi9=!)>WV;J6I)t3#=+lu^0{hGkOv;jp@Gr zN4B2u=44^h7*_5^67x}Imc!TfWCJSx zasuNqi93IibfpzaRD671PtT`X(vXC`H`_=-D0Qqv2~mR#qS>g~$tmz4N3LD|gYv@q zYML`dHkZLKp`_3J>V|J!wKY4$-tA?_w=@A?PCE1<$4-+JW&!$?eKm7>tF{-&WK0^4 zCD(+l)^AQs=SmpF?~&TGoXC&xS9J@6tY5R5$Nm5Z?r3k)A(JGG;e-hn*Ozum{?@F! zfpv&Kb~Abpsnezq`F7#({o=};b{Pn&8{w~*+oj3}VhBVH6>t(R(WWzjeVw6Y&OwSc zzpT2Rhl*!hoY$(m=!@`{=40l+wun!&FCI;}(siRtmUq0oUBD7D=ST4HMQfX&h(sI7 z-Q8swqW=|X674=LsBw$bR*gE0X_Ig()6HT`CdiPa%haA3>N2|9CDX1T z#pXeYY=si}U+2VT9DB@=%|?5ab{lAm+(Gr^RqHy$3Y+WtaCU?)xze(c+d-AE2~NxQ zIH!x{!RytiHhDL?<9Z!O88$dM@`bnC#btsFj?eNQ@=t*^>pKB=`Xv5%W%X)bzHX6AC)Pv3%eMzf}n*(`?@vpB5VRb zFIU!#s^U^CaBqB8DO}vBIX}L4u1p&Km^L?Ce(&p^Z0?S<&FPc|%8_sf{tu`=&ns^Z z-ZY<)G^IJJIrjbMfgBuAaza`6rT14M-^UTK?K#uFxgZ1 z%y4L^c>ENw{M5~y779yx^;u}C-hhs=R)Rc>MP|9?T(9B2b~fI91Kss(hgv*8r1jB= z^=q2d;Ru2d2Hx!mdoQyl(Z1U<35D~M_` z%bEZD6Gl$Dp$J-v?SSj+n(ct+Th<>?#?EQhhU4(;6|UL?7eRnjIeyx!a?Jf#to~Ol zvIBW$ZS^Y^)-;%NO9L~x6(jsMxw75{HM!FHuV{ZV2M@f1JmzI)D#5BtqRg*tu*6aR zwbNL2AxvQ|_Bf@`zT0jWicG@p!<=qvy)6@Vw+_pow5s_CGE5VWN%}&Y4$V z8yU9DfCfH;ZWK1ggn$|*(H5%GBlnpXw@nDh4Rr>S)K8k%M<=Gz|3V|(F0K?x4Rk5h znu%k$d+IK1(`gi!?C)=c%M@&T3Fk}guxN}}ZhbG{ z(f#k!(w$LqTto@!IwRmiA1^%?c2>tJLa|ylV6wbA zA2IpH@w(-C)N1pfQa11j0`IZ2ZySyha=VgM1nzTND_?M1zTUGh)`x5~6K zS7KK>#sWkiZoTLEH;@rECJ9|sw*%2HH0q$Gsj<1Xx$zc142{T$5IN4- zkhrem^@}Zsr{tLTy7Tw}2dPd;q!f-#z$-z?#9JS_I5_#Q`7;2hLc=ZCf^~tg7(KK=Ut&UaU=t^+~ta z-G&$k2@jQJ0W_0dw?3(3sb9wvRy4QT)BP^3Ku!z@?7Qe2p{S9#`N}4+NAD-{0oHU#%kyPyvd!M4IQ1`e_%@JAK@H!CJty)Qc-y^ G=>G>=8j?c* literal 0 HcmV?d00001 diff --git a/introduccion.tex b/introduccion.tex new file mode 100644 index 0000000..7d056ea --- /dev/null +++ b/introduccion.tex @@ -0,0 +1,362 @@ +\documentclass[10pt,a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[spanish]{babel} +\usepackage{amsmath} +\usepackage{amsfonts} +\usepackage{amssymb} +\usepackage{hyperref} +\usepackage{graphicx} +\usepackage{listings} +\usepackage{xcolor} +\usepackage{caption} +\usepackage{pgf} +\usepackage{tikz} +\usetikzlibrary{automata,positioning,arrows} + +\definecolor{codegreen}{rgb}{0,0.6,0} +\definecolor{codegray}{rgb}{0.5,0.5,0.5} +\definecolor{codepurple}{rgb}{0.58,0,0.82} +\definecolor{backcolour}{rgb}{0.95,0.95,0.92} +\definecolor{darkblue}{rgb}{0,0,.75} + +\lstdefinestyle{mystyle}{ + backgroundcolor=\color{backcolour}, + commentstyle=\color{codegreen}, + keywordstyle=\color{magenta}, + numberstyle=\tiny\color{codegray}, + stringstyle=\color{codepurple}, + basicstyle=\ttfamily\footnotesize, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + keepspaces=true, + numbers=left, + numbersep=5pt, + showspaces=false, + showstringspaces=false, + showtabs=false, + tabsize=2 +} + +\lstset{style=mystyle} + +\lstloadlanguages{Matlab} %use listings with Matlab for Pseudocode +\lstnewenvironment{PseudoCode}[1][] +{\lstset{language=Matlab,basicstyle=\scriptsize, keywordstyle=\color{darkblue},numbers=left,xleftmargin=.04\textwidth,#1}} +{} + +\renewcommand{\rmdefault}{ptm} +%\usepackage[all,cmtip]{xy} +%\usepackage{graphicx} +\author{Programación funcional para la física computacional} +\title{Introducción} +\begin{document} +\maketitle +\section*{Lenguajes de programación y sus conceptos básicos} + +A veces los mayores descubrimientos vienen de darse cuenta de qué es lo que no se puede hacer. Ese es el caso de las computadoras, a partir de saber lo que no podemos automatizar, es que podemos construir computadoras para automatizar ciertos procesos, apoyarnos en cálculos extensos para el caso de la física e incluso estudiar sobre fenomenos de la naturaleza y la sociedad, como sucede con casi todas las ciencias sean naturales, formales y hasta sociales. + + +Los lenguajes de programación prácticos, usados día a día y que son un poco más amables con los programadores, son una estructura complicada, pero las ideas importantes en la labor de la programación son simples. + +\subsection*{Conceptos básicos} + + +\begin{itemize} +\item[Programa:] Descripción de como se manipula la información. +\item[Lenguaje de programación:] Lenguaje formal, artificial usado para dar instrucciones a una computadora. +\item[Lenguaje de alto nivel:] En lugar de pensar en controlar el *hardware* directamente, se piensa en el programa. +\end{itemize} + +Un paradigma de programación es un enfoque para programar una computadora basado en una teoría matemática o un conjunto coherente de principios. + +\begin{itemize} +\item \textbf{Programación estructurada}: Uso extensivo de flujo de control estructurado: $if$, $while$, $for$. +\item \textbf{Programación orientada a objetos}: una gran cantidad de abstracciones de datos con características comunes y una jerarquía: física de partículas y C++. +\item \textbf{Programación lógica}: manejar estructuras simbólicas complejas de acuerdo a las reglas de la lógica (ejemplo pendiente). +\item \textbf{Programación funcional}: Usa funciones matemáticas en lugar de declaraciones para expresar las ideas. Como no depende de los estados hay menor riesgo de \textbf{no determinismo}. +\end{itemize} + +Por lo regular los lenguajes populares de programación tienen a lo más dos paradigmas (como C++ y java), pero lo mejor sería que todo lenguaje de programación acepte múltiples paradigmas. Multiparadigma es el término que se usa para nombrar, como si fuera una cualidad específica y no algo deseable en todo lenguaje. + +\subsection*{Programación orientada a objetos} +Uno de los paradigmas más populares, uno de los primeros a llegar a las computadoras en laboratorios y personales. + +De sus primeras implementaciones se menciona al lenguaje \textit{Simula67} que fue una ampliación de \textit{Algol60}, el primero en introducir los conceptos de \textbf{objeto}, \textbf{clase}, \textbf{subclases} y \textbf{herencia}. + +Ya en 1980 aparecen $C++$ y $Smaltalk-80$, siendo el primero uno de los lenguajes más utilizados aún hoy en día. Java y C++ son lenguajes de programación orientada a objetos y basta con buscar en internet para notar que son dos de los lenguajes más utilizados en casi cualquier ámbito. + +Dentro de la física suele ser muy utilizado en simulaciones de física de partrículas. Una parte importante del software para el análisis de datos y simulaciones para el LHC está enm $C++$ aunque partió un poco del $FORTRAN$ y empieza a incluir $Python$. El poder definir clases y objetos facilita el manejo de las partículas elementales en las simulaciones, o los árboles de datos en el análisis de los experimentos. + +\subsection*{Programación lógica} + +Como menciona [Kowalski1988] definir la programación lógica puede ser un poco ambiguo. ``La programación lógica comparte con la demostración automática de teoremas el uso de la lógica para representar conocimiento y el uso de la deducción para resolver problemas al derivar consecuencias lógicas''. pero a su vez dice que ``difiere de la demostración mecánica de teoremas en dos formas distintas pero complementarias: (1) explota el hecho de que la lógica puede utilizarse para expresar definiciones de funciones computable y procedimientos, y (2)explota el uso de procedimientos de prueba que realizan deducciones de manera dirigida por el objetivo, para correr tales definiciones como programas''. + +Uno de los lenguajes de programación lógica más utilizados es $Prolog$, con aplicaciones en inteligencia artificial. No sé de algún uso en la física. + +\subsection*{Programación funcional} + +Como su nombre lo dice, la programación funcional parte de funciones. Podría pensarse que un poco como $Fortran$ no está pensado para crear aplicaciones, si no sólo resolver problemas matemáticos, pero no, su impronta ha sido tan dinámica hasta llegar a tener software para la creación musical (\textit{tidal cycles}) y para la transformación de formatos de texto (\textit{pandoc}). Realmente es una manera de concentrarse en las relaciones entre valores más que en los objetos con que se trabaja. + +Usemos el clásico ejemplo de la función como una caja negra, como se puede ver en la figura \ref{fig:func}. La función recibe uno, dos o más argumentos, valores, objetos, en general entradas, y regresa una o más salidas o resultados. + +\begin{center} + \begin{figure}[h!] + \begin{tikzpicture} + \draw[black, very thick] (0,0) rectangle (3,2); + \draw[-latex,line width=2pt,black] (-0.8,0.5)--(0,0.5); + \draw[-latex,line width=2pt,black] (-0.8,1.5)--(0,1.5); + \draw[-latex,line width=2pt,black] (3,1)--(3.8,1); + \draw[black, very thick] (6,0) rectangle (9,2); + \filldraw[black] (7.5,1.5) circle (0pt) node[below]{Producto escalar}; + \draw[-latex,line width=2pt,black] (5.2,0.5)--(6,0.5); + \filldraw[black] (5.2,0.5) circle (1pt) node[below]{$(3,2,1)$}; + \draw[-latex,line width=2pt,black] (5.2,1.5)--(6,1.5); + \filldraw[black] (5.2,1.5) circle (1pt) node[above]{$(2,1,2)$}; + \draw[-latex,line width=2pt,black] (9,1)--(9.8,1); + \filldraw[black] (9.8,1) circle (0pt) node[above]{$10$}; + \end{tikzpicture} + \caption{Una función representada como caja negra.} + \end{figure} + \label{fig:func} +\end{center} + +Podría ser una función que recibe como entrada un programa y te dice si tu programa está bien escrito y dará un resultado (\textbf{¿es eso posible?}). + +¿Cómo diferencia una función si se le da un vector, un escalar, un sonido o incluso un programa de computación? Eso tiene que ver con los \textbf{tipos}, que son colecciones de valores agrupados juntos por ciertas características que comparten. Como estamos pensando funcionalmente: podemos aplicar relaciones parecidas entre esos valores, les aplicamos los mismos tipos de funciones. + +En el caso de la figura \ref{fig:func}(b) los tipos de las entradas son vectores, el tipo de la salida es escalar. + +\textit{Haskell} es el lenguaje de programación funcional que usaremos en parte de este curso, \textit{python} permite implementarlo pero no de manera nativa como lo hace \textit{Haskell}. Recibe su nombre por Haskell B. Curry, matemático especializado en lógica que trabajo ampliamente en el calculo $\lambda$, una teoría matemática de las funciones que veremos con un poco más de detalle más adelante. + +\section*{Cuestiones generales de los lenguajes de programación} + +Pensemos en la cuestión más sencilla al usar un lenguaje de programación en nuestra área de trabajo, pensaríamos en hacer una calculadora lo más amplia posible, hasta incluir matrices, cálculos de números complejos. ¿Qué necesitamos? + +\begin{itemize} +\item Operaciones sencillas: suma, resta, multiplicación, producto escalar, multiplicación de matrices... +\item Variables: atajos a valores, sólo se asignan una vez. Cada variable cuenta con un identificador y valor guardado, que viene de un estado de memoria. Para esto existen enunciados declarativos. +\item Funciones: ya las explicamos más o menos a detalle en la sección pasada. +\item Recursión: poder definir una función a partir de ella misma, en el caso de que dependa del valor anterior. +\item Abstracciones funcionales: usar funciones para construir abstracciones, pensemos en una cebolla, varias capas de funciones. +\end{itemize} + +Para entender un poco de como es eso de la recursión definamos la función factorial, primero como y¡una función, pero además como una función recursiva, hagámoslo en $python$. + +\begin{lstlisting}{language=Python} + def fact(x): #definimos la funcion fact + if x==0: #caso base + return 1 + else: + return x*fact(x-1) #para los demas casos + + x=int(input("Valor a calcular factorial:")) #dar valor + print(fact(x)) #imprime el resultado +\end{lstlisting} + +La función es definida en la línea $1$, el argumento será la variable $x$, a dársele en el momento que se desee evaluar. Como saben el factorial de $0$ vale $1$ por definición, el resto de valores se obtiene recursivamente a partir del anterior, así en general $n!=n\times(n-1)!$. Revisen el programa con unos pocos valores a ver que obtienen. + +Para trabajar con estructuras más allá de números podemos hacer uso de las listas, para desarrollar el tema de esta sección veamos un ejemplo algo abstracto pero que puede ser útil: el triángulo de Pascal. + +\subsection*{El triángulo de Pascal} + +El triángulo de Pascal es útil en combinatoria y está relacionado al teorema binomial. No dudo que les pueda ser útil más adelante, pero a esta altura lo veremos como un ejemplo al trabajar con tipos más elaborados que un escalar, los trataremos como listas de números. + +En la fila $1$ empieza con un $1$, la regla para construir los subsecuentes valores es ir en orden descendente sumando las parejas de números justo arriba. Las orillas se suponen llenas de ceros, así seguida de la fila $1$ sigue una pareja de números, el de la izquierda es la suma del $1$ de la fila $1$ con su vecino de la izquierda, que está vacío y tomamos como cero. Esto nos da $1$, de manera similar para el lado derecho, como puede verse en el cuadro \ref{tab:pascal}. + +\begin{table}[h!] + \centering + \begin{tabular}{rccccccccc} + $n=1$:& & & & & 1\\\noalign{\smallskip\smallskip} + $n=2$:& & & & 1 & & 1\\\noalign{\smallskip\smallskip} + $n=3$:& & & 1 & & 2 & & 1\\\noalign{\smallskip\smallskip} + $n=4$:& & 1 & & 3 & & 3 & & 1\\\noalign{\smallskip\smallskip} + $n=5$:& 1 & & 4 & & 6 & & 4 & & 1\\\noalign{\smallskip\smallskip} + \end{tabular} + \caption{Primeros $5$ niveles del triángulo de Pascal} + \label{tab:pascal} +\end{table} + +Ahora queremos construir una función que nos dé el valor de la fila $n$. Hagámoslo de manera similar al factorial, en $python$ y pensando en funciones. Esta vez no trabajaremos con números naturales, si no con listas de números naturales, en los que no sólo tendremos que operar sobre los números, también sobre la estructura. + +Pensando de nuevo en definir funciones lo que haríamos sería algo más o menos como lo que se ve en la figura \ref{fig:pseudo}. + +\begin{figure}[h] + \caption{Desarrollo de arriba $pa'bajo$} + \textbf{Datos:} El valor de la primera fila del triángulo de Pascal\\ + \textbf{Resultados:} Cualquier fila $n$ del triángulo de Pascal\\ + inicialización; + \begin{PseudoCode} + function Pascal(n): + if n==1 then return [1]; + else + return SumaLista(CorrerListaDerecha(n-1),CorrerListaIzquierda(n-1)); + end + end + \end{PseudoCode} + \label{fig:pseudo} +\end{figure} + +Esto se llama desarrollo de software de ``arriba a abajo'' (\textit{top-down}), proponemos las funciones que resuelvan los detalles y luego llenamos los huecos. + +¿Cómo serían esa funciones? Lo primero que tenemos que ver es que los objetos que nos regresa la función Pascal son listas, lo que le damos de entrada es un natural que identifica la fila del triángulo. Veamos qué es una lista. + +Una lista la podemos entender como una cadena de ligas, cada liga contiene dos cosas, un elemento de la lista y la referencia al resto de la cadena. Una lista vacía puede escribirse como $[\ ]$ o simplemente como $nil$. A esta lista vacía se le van agregando elementos\footnote{Esta terminología se tomó del lenguaje de programación \textit{lisp}, cuyo nombre deriva de \textit{list processing}.}. + +En $python$ una lista se define encerrada entre corchetes, así la lista vacía de nombre $a$ sería $a=[]$. Para agregar elementos se puede utilizare la función $append$. De esta forma podemos construir la lista $[8,2.3,-4]$ de la siguiente forma: + +\begin{lstlisting}{language=Python} + a=[] #crea una lista vacia + a.append(8) #va agregando elementos + a.append(2.3) + a.append(-4) + + print(a) #imprime la lista +\end{lstlisting} + +Noten que los va agregando en el orden empezando de izquierda a derecha, tal como leemos las palabras del español. Pero podemos usar algunos atajos para agregar elementos por ambos lados, las funciones de concatenación de listas que se escriben como $+$, pero no debe confundirse con una suma de números, es una operación distinta al aplicarse en listas. + +\begin{lstlisting}{language=Python} + a=[2.3] #crea la lista de un solo valor, el central + a=[8]+a+[-4] #concatenamos por izquierda y derecha + + print(a) #imprime la lista +\end{lstlisting} + +De esta forma podemos construir una función que nos dé la n-eva fila del triángulo de Pascal, lo que debemos hacer es generar dos listas, a una se le agregará por la izquierda un cero y a la otra por la derecha, para ser sumadas a continuación. + +\begin{lstlisting}{language=Python} + def pascal(n): + if n==1: + return [1] + else: + x=[0]+pascal(n-1) + y=pascal(n-1)+[0] + return [i+j for i,j in zip(x,y)] + + n=int(input(``Fila (1,2,3,..)?:'')) + print(pascal(n)) +\end{lstlisting} + +\subsection*{Corrección} + +¿Cómo sabemos si lo que hacemos es correcto? Podemos comprobarlo para la línea $1$, $2$, $3$,..., pero ¿para la línea $20$? + +Yo espero recuerden sus cursos de álgebra (la de primer semestre, sea superior o para físicos, en ambas se veía por lo regular el tema de inducción. Al igual espero les hayan constado que hay tres tipos de inducción, son equivalentes pero cada tipo nos da detalles sobre dónde estamos trabajando. + +Para probar que nuestro programa es correcto necesitamos de un modelo matemático de las operaciones del lenguaje de programación, es decir, una semántica del lenguaje. Con esta semántica debemos especificar lo que queremos que el programa haga: especificación del programa. Por último se utilizan técnicas matemáticas para razonar sobre el programa, usando la semántica. + +Los tres tipos de inducción son la normal que conocen, sobre los números naturales, la inducción fuerte y la inducción bien fundada. Por ser la más general me centraré en la inducción bien fundada, pero como mencioné, son equivalentes. + +\newtheorem{defi}{Definición} +\begin{defi} + $(A,\preceq)$ es llamado un conjunto bien fundado si y sólo si todo subconjunto no vacío $M$ de $A$ contiene al menos un elemento minimal $m$ con respecto a la relación de orden $\preceq$. +\end{defi} + +Entonces podemos ir más allá de los naturales siempre y cuando podamos dar una relación de orden para el conjunto sobre el que estamos trabajando. + +\newtheorem{teo}{Teorema} +\begin{teo} + (Principio de inducción Noetheriana) Sea $(A,\preceq)$ un conjunto bien fundado. Para probar que una propiedad $P(x)$ es verdadera para todos los elementos $x$ en $A$ es suficiente probar las siguientes propiedades: + \begin{itemize} + \item[(a)] \textbf{Base inductiva:} $P(x)$ es verdad para todos los elementos minimales de $A$. + \item[(b)] \textbf{Paso inductivo} Para cada no minimal $x$ en $A$, si $P(y)$ es verdad para toda $y\prec x$ (\textbf{hipótesis inductiva}), entonces $P(x)$ es verdad. + \end{itemize} +\end{teo} + +Para darles un ejemplo no me detendré en el caso del triángulo de Pascal, pero sí en el factorial que antes hicimos. Más que un ejercicio es un ejemplo ilustrativo. + +\textbf{Ejemplo:} Demuestra que el factorial es una función total. + +Recordemos que nuestra función factorial está definida de la siguiente forma: + +\begin{align*} + f(0) &= 0! = 1\\ + f(x) &= x(x-1)!, \ x>0 \text{ y } x\in\mathbb{N}. +\end{align*} + +Entonces aplicamos la inducción: + +\begin{itemize} +\item \textbf{Base inductiva:} Estamos trabajando en los naturales más el $0$ ($\mathbb{N}_0$), el minimal es el $0$ y por la definición de la función $f(0)=0!=1$, ya está. +\item \textbf{Hipótesis inductiva:} Supongamos es cierto para $n>0$ con $n\in\mathbb{N}_0$, en ese caso tenemos que $f(n)=n!$. +\item \textbf{Paso inductivo:} Probemos que se cumple para $n+1$. Para este caso por definición $f(n+1)=(n+1)n!$, como supusimos que $n!$ está valuado por consiguiente $(n+1)n!$ está valuado también, es solo una multiplicación de naturales que da un natural $\square$. +\end{itemize} + +\subsection*{Complejidad} + +Ahora viene un ejercicio entretenido aunque puede llegar a preocupar en algún momento: determinar el tiempo de ejecución de nuestro programa. + +Por un lado es complicado dar un tiempo que valga para toda computadora, el tiempo que tarde dependerá mucho de la arquitectura, el RAM, si se corren más programas a la par, incluso la temperatura del equipo. Pero sobretodo nos interesa saber si podemos correr el programa en tiempos considerables, por un lado humanamente posibles, por otro viables para la tarea que buscamos. + +El tiempo de ejecución de un programa como función del tamaño de entrada, hasta un factor constante, es llamada la complejidad en el tiempo del programa. Es decir, existe una $t(n)$ que nos da el tiempo aproximado de la ejecución, un factor constante más o menos. + +¿Porqué tan impreciso se preguntarán? Si el tiempo es $t(3s)=K\times p(3)$ donde $p(3)$ es un polinomio valuado en $3$ no es lo mismo $K=1$ que $K=1,000,000$. Por un lado ya mencionamos que es una medida muy aproximada, pero además lo interesan te es saber que no se disparará el tiempo de ejecución, es muy diferente $t(n)=n^3$ que $t(n)=3^n$. + +\begin{figure}[ht!] + \begin{center} + \includegraphics[width=0.8\linewidth]{comple.jpg} + \caption{Comparando la complejidad temporal $t(x)=x^3$ con $t(x)=3^x$ para valores muy pequeños.} + \label{fig:comple} + \end{center} +\end{figure} + +¿Qué sucede para nuestro programa que calcula la fila $n$ del triángulo de Pascal? Notemos que como lo tenemos definido para calcular la fila $28$ llama dos veces a calcular la fila $27$, cada una de estas llama dos veces a calcular la fila $26$, lo que equivale a $4$ llamadas de la función, en cada paso se va multiplicando por dos, va como $2^n$, ¡en el paso $28$ hará $268435456$ llamadas a la función! + +¿Cómo podemos mejorarlo? Llamando solo una vez a la función. + +\begin{lstlisting}{language=Python} + def pascal(n): + if n==1: + return [1] + else: + r=pascal(n-1) + x=[0]+r + y=r+[0] + return [i+j for i,j in zip(x,y)] + + n=int(input(``Fila (1,2,3,..)?:'')) + print(pascal(n)) +\end{lstlisting} + +Prueben el tiempo y verán las mejoras en el tiempo, esta vez cada paso sólo llama una vez a la función. + +\subsection*{Evaluación perezosa} + +Imaginen que desean obtener todos los números primos posibles, más que eso, operar con ellos. Sin saber mucho de computación podemos estar seguros que esa labor es imposible, ya que es una cantidad de números infinitos. Todo lo que solemos operar en una computadora, o por medioas físicos es finito ¿como operar sobre estructuras infinitas? + +En ese caso se utiliza la evaluación perezosa, su principal característica es que el cálculo se realiza sólo cuando se necesita. Para poner un ejemplo, en la programación normal, ``chambeadora'' si quieres obtener un elemento de una secuencia de números primero debes decirle a la máquina cuál es esa secuencia de números. Ya sea que definas un arreglo o una lista, pero debes determinarlos todos. En la evaluación perezosa puedes trabajar con la estructura infinita y solo calcular el elemento cuando sea necesario evaluar, sin necesidad de generar toda la lista o arreglo antes. + +Pongamos un ejemplo, el más sencillo es tratar de obtener todos los naturales, definir una lista de todos ellos es imposible, es infinita, pero podemos trabajar con el generador de esos números: + +\lstinputlisting[firstline=1,lastline=5]{prim.py} + +Esto no se ve nada impresionante, estamos sumando un número al anterior, pero esta implementación sencilla ya es nuestra entrada al \emph{infinito y más allá}, porque realmente estamos trabajando con un generador. En gran medida es una función que puede generarnos todos los naturales pero que además podemos operar con ella (nótese que ya estamos hablando de programar con funciones). Y se preguntarán ¿Y cómo la uso? Veamos un ejemplo. + +Veamos un algoritmo griego con más de $2000$ años de antigüedad, el colador de Eratostenes. ¿Cómo puedo obtener todos los números primos? Podemos hacerlo por fuerza bruta, es decir, por la simple definición dejar que el programa haga las operaciones, que cheque que cada número solo es múltiplo de el mismo, pero como se imaginarán al poco tiempo la tarea se volverá tardada. A Eratostenes se le ocurrió una manera que lleva menos tiempo: se ponen todos los número naturales sobre la rejilla del colador, en esa primera colada todos los múltiplos de $2$ se quedarán como asientos y los demás número fluirán a la siguiente etapa. En esta etapa todos los múltiplos de $3$ se quedan sedimentados y pasan los siguientes números. El $4$ ya se quedo unh sedimento arriba así que sigue el $5$, y así se continúa. + +\begin{table}[h!] + \centering + \begin{tabular}{cccccccccccc} + $1$:& 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & $\hdots$ \\ + $2$:& 3 & 5 & 7 & 9 & 11 & $\hdots$ & & & & & \\\noalign{\smallskip\smallskip} + $3$:& 5 & 7 & 11 & $\hdots$ & & & & & & & \\\noalign{\smallskip\smallskip} + $5$:& 7 & 11 & $\hdots$ & & & & & & & & \\\noalign{\smallskip\smallskip} + $7$:& 11 & $\hdots$ & & & & & & \\\noalign{\smallskip\smallskip} + $11$:& $\hdots$ & & & & & & & & \\\noalign{\smallskip\smallskip} + \end{tabular} + \caption{Obteniendo números primos} + \label{tab:pascal} +\end{table} + + +\begin{thebibliography}{10} +\bibitem{Thompson1996} Thompson, Simon J.. ``Haskell - the craft of functional programming.'' International computer science series (1996). +\bibitem{VanRoy2009} Van Roy, Peter. ``Programming paradigms for dummies: what every programmer should know.'' (2009). +\bibitem{VanRoy2004} Van Roy, Peter, Haridi, Seif. ``Concepts, Techniques, and Models of Computer Programming''. *The MIT Press*, (2004). ISBN: 0262220695 +\bibitem{Kowalski1988} Kowalski, Robert. ``The early years of logic programming'',\textit{Communications of the ACM}, \textbf{31}, 1, (1988). + + +\end{thebibliography} + +\end{document} diff --git a/introduccion.tex~ b/introduccion.tex~ new file mode 100644 index 0000000..9bc6217 --- /dev/null +++ b/introduccion.tex~ @@ -0,0 +1,360 @@ +\documentclass[10pt,a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[spanish]{babel} +\usepackage{amsmath} +\usepackage{amsfonts} +\usepackage{amssymb} +\usepackage{hyperref} +\usepackage{graphicx} +\usepackage{listings} +\usepackage{xcolor} +\usepackage{caption} +\usepackage{pgf} +\usepackage{tikz} +\usetikzlibrary{automata,positioning,arrows} + +\definecolor{codegreen}{rgb}{0,0.6,0} +\definecolor{codegray}{rgb}{0.5,0.5,0.5} +\definecolor{codepurple}{rgb}{0.58,0,0.82} +\definecolor{backcolour}{rgb}{0.95,0.95,0.92} +\definecolor{darkblue}{rgb}{0,0,.75} + +\lstdefinestyle{mystyle}{ + backgroundcolor=\color{backcolour}, + commentstyle=\color{codegreen}, + keywordstyle=\color{magenta}, + numberstyle=\tiny\color{codegray}, + stringstyle=\color{codepurple}, + basicstyle=\ttfamily\footnotesize, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + keepspaces=true, + numbers=left, + numbersep=5pt, + showspaces=false, + showstringspaces=false, + showtabs=false, + tabsize=2 +} + +\lstset{style=mystyle} + +\lstloadlanguages{Matlab} %use listings with Matlab for Pseudocode +\lstnewenvironment{PseudoCode}[1][] +{\lstset{language=Matlab,basicstyle=\scriptsize, keywordstyle=\color{darkblue},numbers=left,xleftmargin=.04\textwidth,#1}} +{} + +\renewcommand{\rmdefault}{ptm} +%\usepackage[all,cmtip]{xy} +%\usepackage{graphicx} +\author{Programación funcional para la física computacional} +\title{Introducción} +\begin{document} +\maketitle +\section*{Lenguajes de programación y sus conceptos básicos} + +A veces los mayores descubrimientos vienen de darse cuenta de qué es lo que no se puede hacer. Ese es el caso de las computadoras, a partir de saber lo que no podemos automatizar, es que podemos construir computadoras para automatizar ciertos procesos, apoyarnos en cálculos extensos para el caso de la física e incluso estudiar sobre fenomenos de la naturaleza y la sociedad, como sucede con casi todas las ciencias sean naturales, formales y hasta sociales. + + +Los lenguajes de programación prácticos, usados día a día y que son un poco más amables con los programadores, son una estructura complicada, pero las ideas importantes en la labor de la programación son simples. + +\subsection*{Conceptos básicos} + + +\begin{itemize} +\item[Programa:] Descripción de como se manipula la información. +\item[Lenguaje de programación:] Lenguaje formal, artificial usado para dar instrucciones a una computadora. +\item[Lenguaje de alto nivel:] En lugar de pensar en controlar el *hardware* directamente, se piensa en el programa. +\end{itemize} + +Un paradigma de programación es un enfoque para programar una computadora basado en una teoría matemática o un conjunto coherente de principios. + +\textbf{Programación estructurada}: Uso extensivo de flujo de control estructurado: $if$, $while$, $for$. +\textbf{Programación orientada a objetos}: una gran cantidad de abstracciones de datos con características comunes y una jerarquía: física de partículas y C++. +\textbf{Programación lógica}: manejar estructuras simbólicas complejas de acuerdo a las reglas de la lógica (ejemplo pendiente). +\textbf{Programación funcional}: Usa funciones matemáticas en lugar de declaraciones para expresar las ideas. Como no depende de los estados hay menor riesgo de \textbf{no determinismo}. + +Por lo regular los lenguajes populares de programación tienen a lo más dos paradigmas (como C++ y java), pero lo mejor sería que todo lenguaje de programación acepte múltiples paradigmas. Multiparadigma es el término que se usa para nombrar, como si fuera una cualidad específica y no algo deseable en todo lenguaje. + +\subsection*{Programación orientada a objetos} +Uno de los paradigmas más populares, uno de los primeros a llegar a las computadoras en laboratorios y personales. + +De sus primeras implementaciones se menciona al lenguaje \textit{Simula67} que fue una ampliación de \textit{Algol60}, el primero en introducir los conceptos de \textbf{objeto}, \textbf{clase}, \textbf{subclases} y \textbf{herencia}. + +Ya en 1980 aparecen $C++$ y $Smaltalk-80$, siendo el primero uno de los lenguajes más utilizados aún hoy en día. Java y C++ son lenguajes de programación orientada a objetos y basta con buscar en internet para notar que son dos de los lenguajes más utilizados en casi cualquier ámbito. + +Dentro de la física suele ser muy utilizado en simulaciones de física de partrículas. Una parte importante del software para el análisis de datos y simulaciones para el LHC está enm $C++$ aunque partió un poco del $FORTRAN$ y empieza a incluir $Python$. El poder definir clases y objetos facilita el manejo de las partículas elementales en las simulaciones, o los árboles de datos en el análisis de los experimentos. + +\subsection*{Programación lógica} + +Como menciona [Kowalski1988] definir la programación lógica puede ser un poco ambiguo. ``La programación lógica comparte con la demostración automática de teoremas el uso de la lógica para representar conocimiento y el uso de la deducción para resolver problemas al derivar consecuencias lógicas''. pero a su vez dice que ``difiere de la demostración mecánica de teoremas en dos formas distintas pero complementarias: (1) explota el hecho de que la lógica puede utilizarse para expresar definiciones de funciones computable y procedimientos, y (2)explota el uso de procedimientos de prueba que realizan deducciones de manera dirigida por el objetivo, para correr tales definiciones como programas''. + +Uno de los lenguajes de programación lógica más utilizados es $Prolog$, con aplicaciones en inteligencia artificial. No sé de algún uso en la física. + +\subsection*{Programación funcional} + +Como su nombre lo dice, la programación funcional parte de funciones. Podría pensarse que un poco como $Fortran$ no está pensado para crear aplicaciones, si no sólo resolver problemas matemáticos, pero no, su impronta ha sido tan dinámica hasta llegar a tener software para la creación musical (\textit{tidal cycles}) y para la transformación de formatos de texto (\textit{pandoc}). Realmente es una manera de concentrarse en las relaciones entre valores más que en los objetos con que se trabaja. + +Usemos el clásico ejemplo de la función como una caja negra, como se puede ver en la figura \ref{fig:func}. La función recibe uno, dos o más argumentos, valores, objetos, en general entradas, y regresa una o más salidas o resultados. + +\begin{center} + \begin{figure}[h!] + \begin{tikzpicture} + \draw[black, very thick] (0,0) rectangle (3,2); + \draw[-latex,line width=2pt,black] (-0.8,0.5)--(0,0.5); + \draw[-latex,line width=2pt,black] (-0.8,1.5)--(0,1.5); + \draw[-latex,line width=2pt,black] (3,1)--(3.8,1); + \draw[black, very thick] (6,0) rectangle (9,2); + \filldraw[black] (7.5,1.5) circle (0pt) node[below]{Producto escalar}; + \draw[-latex,line width=2pt,black] (5.2,0.5)--(6,0.5); + \filldraw[black] (5.2,0.5) circle (1pt) node[below]{$(3,2,1)$}; + \draw[-latex,line width=2pt,black] (5.2,1.5)--(6,1.5); + \filldraw[black] (5.2,1.5) circle (1pt) node[above]{$(2,1,2)$}; + \draw[-latex,line width=2pt,black] (9,1)--(9.8,1); + \filldraw[black] (9.8,1) circle (0pt) node[above]{$10$}; + \end{tikzpicture} + \caption{Una función representada como caja negra.} + \end{figure} + \label{fig:func} +\end{center} + +Podría ser una función que recibe como entrada un programa y te dice si tu programa está bien escrito y dará un resultado (\textbf{¿es eso posible?}). + +¿Cómo diferencia una función si se le da un vector, un escalar, un sonido o incluso un programa de computación? Eso tiene que ver con los \textbf{tipos}, que son colecciones de valores agrupados juntos por ciertas características que comparten. Como estamos pensando funcionalmente: podemos aplicar relaciones parecidas entre esos valores, les aplicamos los mismos tipos de funciones. + +En el caso de la figura \ref{fig:func}(b) los tipos de las entradas son vectores, el tipo de la salida es escalar. + +\textit{Haskell} es el lenguaje de programación funcional que usaremos en parte de este curso, \textit{python} permite implementarlo pero no de manera nativa como lo hace \textit{Haskell}. Recibe su nombre por Haskell B. Curry, matemático especializado en lógica que trabajo ampliamente en el calculo $\lambda$, una teoría matemática de las funciones que veremos con un poco más de detalle más adelante. + +\section*{Cuestiones generales de los lenguajes de programación} + +Pensemos en la cuestión más sencilla al usar un lenguaje de programación en nuestra área de trabajo, pensaríamos en hacer una calculadora lo más amplia posible, hasta incluir matrices, cálculos de números complejos. ¿Qué necesitamos? + +\begin{itemize} +\item Operaciones sencillas: suma, resta, multiplicación, producto escalar, multiplicación de matrices... +\item Variables: atajos a valores, sólo se asignan una vez. Cada variable cuenta con un identificador y valor guardado, que viene de un estado de memoria. Para esto existen enunciados declarativos. +\item Funciones: ya las explicamos más o menos a detalle en la sección pasada. +\item Recursión: poder definir una función a partir de ella misma, en el caso de que dependa del valor anterior. +\item Abstracciones funcionales: usar funciones para construir abstracciones, pensemos en una cebolla, varias capas de funciones. +\end{itemize} + +Para entender un poco de como es eso de la recursión definamos la función factorial, primero como y¡una función, pero además como una función recursiva, hagámoslo en $python$. + +\begin{lstlisting}{language=Python} + def fact(x): #definimos la funcion fact + if x==0: #caso base + return 1 + else: + return x*fact(x-1) #para los demas casos + + x=int(input("Valor a calcular factorial:")) #dar valor + print(fact(x)) #imprime el resultado +\end{lstlisting} + +La función es definida en la línea $1$, el argumento será la variable $x$, a dársele en el momento que se desee evaluar. Como saben el factorial de $0$ vale $1$ por definición, el resto de valores se obtiene recursivamente a partir del anterior, así en general $n!=n\times(n-1)!$. Revisen el programa con unos pocos valores a ver que obtienen. + +Para trabajar con estructuras más allá de números podemos hacer uso de las listas, para desarrollar el tema de esta sección veamos un ejemplo algo abstracto pero que puede ser útil: el triángulo de Pascal. + +\subsection*{El triángulo de Pascal} + +El triángulo de Pascal es útil en combinatoria y está relacionado al teorema binomial. No dudo que les pueda ser útil más adelante, pero a esta altura lo veremos como un ejemplo al trabajar con tipos más elaborados que un escalar, los trataremos como listas de números. + +En la fila $1$ empieza con un $1$, la regla para construir los subsecuentes valores es ir en orden descendente sumando las parejas de números justo arriba. Las orillas se suponen llenas de ceros, así seguida de la fila $1$ sigue una pareja de números, el de la izquierda es la suma del $1$ de la fila $1$ con su vecino de la izquierda, que está vacío y tomamos como cero. Esto nos da $1$, de manera similar para el lado derecho, como puede verse en el cuadro \ref{tab:pascal}. + +\begin{table}[h!] + \centering + \begin{tabular}{rccccccccc} + $n=1$:& & & & & 1\\\noalign{\smallskip\smallskip} + $n=2$:& & & & 1 & & 1\\\noalign{\smallskip\smallskip} + $n=3$:& & & 1 & & 2 & & 1\\\noalign{\smallskip\smallskip} + $n=4$:& & 1 & & 3 & & 3 & & 1\\\noalign{\smallskip\smallskip} + $n=5$:& 1 & & 4 & & 6 & & 4 & & 1\\\noalign{\smallskip\smallskip} + \end{tabular} + \caption{Primeros $5$ niveles del triángulo de Pascal} + \label{tab:pascal} +\end{table} + +Ahora queremos construir una función que nos dé el valor de la fila $n$. Hagámoslo de manera similar al factorial, en $python$ y pensando en funciones. Esta vez no trabajaremos con números naturales, si no con listas de números naturales, en los que no sólo tendremos que operar sobre los números, también sobre la estructura. + +Pensando de nuevo en definir funciones lo que haríamos sería algo más o menos como lo que se ve en la figura \ref{fig:pseudo}. + +\begin{figure}[h] + \caption{Desarrollo de arriba $pa'bajo$} + \textbf{Datos:} El valor de la primera fila del triángulo de Pascal\\ + \textbf{Resultados:} Cualquier fila $n$ del triángulo de Pascal\\ + inicialización; + \begin{PseudoCode} + function Pascal(n): + if n==1 then return [1]; + else + return SumaLista(CorrerListaDerecha(n-1),CorrerListaIzquierda(n-1)); + end + end + \end{PseudoCode} + \label{fig:pseudo} +\end{figure} + +Esto se llama desarrollo de software de ``arriba a abajo'' (\textit{top-down}), proponemos las funciones que resuelvan los detalles y luego llenamos los huecos. + +¿Cómo serían esa funciones? Lo primero que tenemos que ver es que los objetos que nos regresa la función Pascal son listas, lo que le damos de entrada es un natural que identifica la fila del triángulo. Veamos qué es una lista. + +Una lista la podemos entender como una cadena de ligas, cada liga contiene dos cosas, un elemento de la lista y la referencia al resto de la cadena. Una lista vacía puede escribirse como $[\ ]$ o simplemente como $nil$. A esta lista vacía se le van agregando elementos\footnote{Esta terminología se tomó del lenguaje de programación \textit{lisp}, cuyo nombre deriva de \textit{list processing}.}. + +En $python$ una lista se define encerrada entre corchetes, así la lista vacía de nombre $a$ sería $a=[]$. Para agregar elementos se puede utilizare la función $append$. De esta forma podemos construir la lista $[8,2.3,-4]$ de la siguiente forma: + +\begin{lstlisting}{language=Python} + a=[] #crea una lista vacia + a.append(8) #va agregando elementos + a.append(2.3) + a.append(-4) + + print(a) #imprime la lista +\end{lstlisting} + +Noten que los va agregando en el orden empezando de izquierda a derecha, tal como leemos las palabras del español. Pero podemos usar algunos atajos para agregar elementos por ambos lados, las funciones de concatenación de listas que se escriben como $+$, pero no debe confundirse con una suma de números, es una operación distinta al aplicarse en listas. + +\begin{lstlisting}{language=Python} + a=[2.3] #crea la lista de un solo valor, el central + a=[8]+a+[-4] #concatenamos por izquierda y derecha + + print(a) #imprime la lista +\end{lstlisting} + +De esta forma podemos construir una función que nos dé la n-eva fila del triángulo de Pascal, lo que debemos hacer es generar dos listas, a una se le agregará por la izquierda un cero y a la otra por la derecha, para ser sumadas a continuación. + +\begin{lstlisting}{language=Python} + def pascal(n): + if n==1: + return [1] + else: + x=[0]+pascal(n-1) + y=pascal(n-1)+[0] + return [i+j for i,j in zip(x,y)] + + n=int(input(``Fila (1,2,3,..)?:'')) + print(pascal(n)) +\end{lstlisting} + +\subsection*{Corrección} + +¿Cómo sabemos si lo que hacemos es correcto? Podemos comprobarlo para la línea $1$, $2$, $3$,..., pero ¿para la línea $20$? + +Yo espero recuerden sus cursos de álgebra (la de primer semestre, sea superior o para físicos, en ambas se veía por lo regular el tema de inducción. Al igual espero les hayan constado que hay tres tipos de inducción, son equivalentes pero cada tipo nos da detalles sobre dónde estamos trabajando. + +Para probar que nuestro programa es correcto necesitamos de un modelo matemático de las operaciones del lenguaje de programación, es decir, una semántica del lenguaje. Con esta semántica debemos especificar lo que queremos que el programa haga: especificación del programa. Por último se utilizan técnicas matemáticas para razonar sobre el programa, usando la semántica. + +Los tres tipos de inducción son la normal que conocen, sobre los números naturales, la inducción fuerte y la inducción bien fundada. Por ser la más general me centraré en la inducción bien fundada, pero como mencioné, son equivalentes. + +\newtheorem{defi}{Definición} +\begin{defi} + $(A,\preceq)$ es llamado un conjunto bien fundado si y sólo si todo subconjunto no vacío $M$ de $A$ contiene al menos un elemento minimal $m$ con respecto a la relación de orden $\preceq$. +\end{defi} + +Entonces podemos ir más allá de los naturales siempre y cuando podamos dar una relación de orden para el conjunto sobre el que estamos trabajando. + +\newtheorem{teo}{Teorema} +\begin{teo} + (Principio de inducción Noetheriana) Sea $(A,\preceq)$ un conjunto bien fundado. Para probar que una propiedad $P(x)$ es verdadera para todos los elementos $x$ en $A$ es suficiente probar las siguientes propiedades: + \begin{itemize} + \item[(a)] \textbf{Base inductiva:} $P(x)$ es verdad para todos los elementos minimales de $A$. + \item[(b)] \textbf{Paso inductivo} Para cada no minimal $x$ en $A$, si $P(y)$ es verdad para toda $y\prec x$ (\textbf{hipótesis inductiva}), entonces $P(x)$ es verdad. + \end{itemize} +\end{teo} + +Para darles un ejemplo no me detendré en el caso del triángulo de Pascal, pero sí en el factorial que antes hicimos. Más que un ejercicio es un ejemplo ilustrativo. + +\textbf{Ejemplo:} Demuestra que el factorial es una función total. + +Recordemos que nuestra función factorial está definida de la siguiente forma: + +\begin{align*} + f(0) &= 0! = 1\\ + f(x) &= x(x-1)!, \ x>0 \text{ y } x\in\mathbb{N}. +\end{align*} + +Entonces aplicamos la inducción: + +\begin{itemize} +\item \textbf{Base inductiva:} Estamos trabajando en los naturales más el $0$ ($\mathbb{N}_0$), el minimal es el $0$ y por la definición de la función $f(0)=0!=1$, ya está. +\item \textbf{Hipótesis inductiva:} Supongamos es cierto para $n>0$ con $n\in\mathbb{N}_0$, en ese caso tenemos que $f(n)=n!$. +\item \textbf{Paso inductivo:} Probemos que se cumple para $n+1$. Para este caso por definición $f(n+1)=(n+1)n!$, como supusimos que $n!$ está valuado por consiguiente $(n+1)n!$ está valuado también, es solo una multiplicación de naturales que da un natural $\square$. +\end{itemize} + +\subsection*{Complejidad} + +Ahora viene un ejercicio entretenido aunque puede llegar a preocupar en algún momento: determinar el tiempo de ejecución de nuestro programa. + +Por un lado es complicado dar un tiempo que valga para toda computadora, el tiempo que tarde dependerá mucho de la arquitectura, el RAM, si se corren más programas a la par, incluso la temperatura del equipo. Pero sobretodo nos interesa saber si podemos correr el programa en tiempos considerables, por un lado humanamente posibles, por otro viables para la tarea que buscamos. + +El tiempo de ejecución de un programa como función del tamaño de entrada, hasta un factor constante, es llamada la complejidad en el tiempo del programa. Es decir, existe una $t(n)$ que nos da el tiempo aproximado de la ejecución, un factor constante más o menos. + +¿Porqué tan impreciso se preguntarán? Si el tiempo es $t(3s)=K\times p(3)$ donde $p(3)$ es un polinomio valuado en $3$ no es lo mismo $K=1$ que $K=1,000,000$. Por un lado ya mencionamos que es una medida muy aproximada, pero además lo interesan te es saber que no se disparará el tiempo de ejecución, es muy diferente $t(n)=n^3$ que $t(n)=3^n$. + +\begin{figure}[ht!] + \begin{center} + \includegraphics[width=0.8\linewidth]{comple.jpg} + \caption{Comparando la complejidad temporal $t(x)=x^3$ con $t(x)=3^x$ para valores muy pequeños.} + \label{fig:comple} + \end{center} +\end{figure} + +¿Qué sucede para nuestro programa que calcula la fila $n$ del triángulo de Pascal? Notemos que como lo tenemos definido para calcular la fila $28$ llama dos veces a calcular la fila $27$, cada una de estas llama dos veces a calcular la fila $26$, lo que equivale a $4$ llamadas de la función, en cada paso se va multiplicando por dos, va como $2^n$, ¡en el paso $28$ hará $268435456$ llamadas a la función! + +¿Cómo podemos mejorarlo? Llamando solo una vez a la función. + +\begin{lstlisting}{language=Python} + def pascal(n): + if n==1: + return [1] + else: + r=pascal(n-1) + x=[0]+r + y=r+[0] + return [i+j for i,j in zip(x,y)] + + n=int(input(``Fila (1,2,3,..)?:'')) + print(pascal(n)) +\end{lstlisting} + +Prueben el tiempo y verán las mejoras en el tiempo, esta vez cada paso sólo llama una vez a la función. + +\subsection*{Evaluación perezosa} + +Imaginen que desean obtener todos los números primos posibles, más que eso, operar con ellos. Sin saber mucho de computación podemos estar seguros que esa labor es imposible, ya que es una cantidad de números infinitos. Todo lo que solemos operar en una computadora, o por medioas físicos es finito ¿como operar sobre estructuras infinitas? + +En ese caso se utiliza la evaluación perezosa, su principal característica es que el cálculo se realiza sólo cuando se necesita. Para poner un ejemplo, en la programación normal, ``chambeadora'' si quieres obtener un elemento de una secuencia de números primero debes decirle a la máquina cuál es esa secuencia de números. Ya sea que definas un arreglo o una lista, pero debes determinarlos todos. En la evaluación perezosa puedes trabajar con la estructura infinita y solo calcular el elemento cuando sea necesario evaluar, sin necesidad de generar toda la lista o arreglo antes. + +Pongamos un ejemplo, el más sencillo es tratar de obtener todos los naturales, definir una lista de todos ellos es imposible, es infinita, pero podemos trabajar con el generador de esos números: + +\lstinputlisting[firstline=1,lastline=5]{prim.py} + +Esto no se ve nada impresionante, estamos sumando un número al anterior, pero esta implementación sencilla ya es nuestra entrada al \emph{infinito y más allá}, porque realmente estamos trabajando con un generador. En gran medida es una función que puede generarnos todos los naturales pero que además podemos operar con ella (nótese que ya estamos hablando de programar con funciones). Y se preguntarán ¿Y cómo la uso? Veamos un ejemplo. + +Veamos un algoritmo griego con más de $2000$ años de antigüedad, el colador de Eratostenes. ¿Cómo puedo obtener todos los números primos? Podemos hacerlo por fuerza bruta, es decir, por la simple definición dejar que el programa haga las operaciones, que cheque que cada número solo es múltiplo de el mismo, pero como se imaginarán al poco tiempo la tarea se volverá tardada. A Eratostenes se le ocurrió una manera que lleva menos tiempo: se ponen todos los número naturales sobre la rejilla del colador, en esa primera colada todos los múltiplos de $2$ se quedarán como asientos y los demás número fluirán a la siguiente etapa. En esta etapa todos los múltiplos de $3$ se quedan sedimentados y pasan los siguientes números. El $4$ ya se quedo unh sedimento arriba así que sigue el $5$, y así se continúa. + +\begin{table}[h!] + \centering + \begin{tabular}{cccccccccccc} + $1$:& 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & $\hdots$ \\ + $2$:& 3 & 5 & 7 & 9 & 11 & $\hdots$ & & & & & \\\noalign{\smallskip\smallskip} + $3$:& 5 & 7 & 11 & $\hdots$ & & & & & & & \\\noalign{\smallskip\smallskip} + $5$:& 7 & 11 & $\hdots$ & & & & & & & & \\\noalign{\smallskip\smallskip} + $7$:& 11 & $\hdots$ & & & & & & \\\noalign{\smallskip\smallskip} + $11$:& $\hdots$ & & & & & & & & \\\noalign{\smallskip\smallskip} + \end{tabular} + \caption{Obteniendo números primos} + \label{tab:pascal} +\end{table} + + +\begin{thebibliography}{10} +\bibitem{Thompson1996} Thompson, Simon J.. ``Haskell - the craft of functional programming.'' International computer science series (1996). +\bibitem{VanRoy2009} Van Roy, Peter. ``Programming paradigms for dummies: what every programmer should know.'' (2009). +\bibitem{VanRoy2004} Van Roy, Peter, Haridi, Seif. ``Concepts, Techniques, and Models of Computer Programming''. *The MIT Press*, (2004). ISBN: 0262220695 +\bibitem{Kowalski1988} Kowalski, Robert. ``The early years of logic programming'',\textit{Communications of the ACM}, \textbf{31}, 1, (1988). + + +\end{thebibliography} + +\end{document} diff --git a/prim.py b/prim.py new file mode 100644 index 0000000..5a1c503 --- /dev/null +++ b/prim.py @@ -0,0 +1,5 @@ +def nats(n): #generador de naturales + yield n + yield from nats(n+1) + +s=nats(1) #iniciamos el generador