From 79f1d30e0d9d8b260ff0c8cf80c4be0231dee255 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Jan=20B=C3=BCren?= Algorithm::CheckDigits
Archive::Zip
+
+ CAM::PDF
CGI
@@ -102,9 +104,12 @@
URI
XML::Writer
+
+ XML::LibXML
YAML::XS
oder YAML
-
Seit Version gröÃer v3.5.3 sind die folgenden Pakete hinzugekommen: Exception::Class
+
Seit Version gröÃer v3.5.6 sind die folgenden Pakete hinzugekommen: XML::LibXML
, CAM::PDF
+
Seit Version gröÃer v3.5.3 sind die folgenden Pakete hinzugekommen: Exception::Class
Seit Version gröÃer v3.5.1 sind die folgenden Pakete hinzugekommen: Set::Infinite
,
List::UtilsBy
, DateTime::Set
, DateTime::Event::Cron
@@ -137,7 +142,7 @@
sind auch in 2.6.1 weiterhin mit ausgeliefert, wurden in einer
zukünftigen Version aber aus dem Paket entfernt werden. Es wird
empfohlen diese Module zusammen mit den anderen als Bibliotheken zu
- installieren.
Für Debian und Ubuntu stehen die meisten der benötigten + installieren.
Für Debian und Ubuntu stehen die meisten der benötigten Pakete als Debian-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden:
apt install apache2 libarchive-zip-perl libclone-perl \ libconfig-std-perl libdatetime-perl libdbd-pg-perl libdbi-perl \ @@ -160,7 +165,7 @@add-apt-repository universe
Für Fedora stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung. Sie können mit folgendem Befehl installiert werden:
dnf install httpd mod_fcgid postgresql-server postgresql-contrib\ perl-Algorithm-CheckDigits perl-Archive-Zip perl-CPAN perl-Class-XSAccessor \ @@ -172,7 +177,7 @@ cpan HTML::Restrict
Für openSUSE stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung.
Dies setzt voraus, das eben die erforderlichen Repositories dem System bekannt gemacht worden sind.
Um zusätzliche Repositories für die Installation zur Verfügung zu stellen, kann man diese mit YaST oder auch in einem Terminal auf der Konsole bekannt geben. Wir beschränken uns hier mit der Eingabe auf der Konsole. Da wahrscheinlich für die Administration eine SSH-Verbindung zum Server benutzt wird.
Dazu geben wir folgenden Befehl ein:
zypper addrepo -f \ + perl-YAML perl-libwww-perl
Für openSUSE stehen die meisten der benötigten Perl-Pakete als RPM-Pakete zur Verfügung.
Dies setzt voraus, das eben die erforderlichen Repositories dem System bekannt gemacht worden sind.
Um zusätzliche Repositories für die Installation zur Verfügung zu stellen, kann man diese mit YaST oder auch in einem Terminal auf der Konsole bekannt geben. Wir beschränken uns hier mit der Eingabe auf der Konsole. Da wahrscheinlich für die Administration eine SSH-Verbindung zum Server benutzt wird.
Dazu geben wir folgenden Befehl ein:
zypper addrepo -f \ http://download.opensuse.org/repositories/devel:languages:perl/openSUSE_Leap_15.0/ \ "devel:languages:perl"
zypper addrepo -f \ @@ -217,7 +222,7 @@ cpan HTML::Restrict
Zusätzlich müssen einige Pakete aus dem CPAN installiert werden. Dazu können Sie die folgenden Befehle nutzen:
cpan DateTime::event::Cron DateTime::Set FCGI \ - HTML::Restrict PBKDF2::Tiny Rose::Db::Object Set::Infinite
aqbanking-tools
Für das Parsen des MT940 Bankformats (Version 6 oder höher)
poppler-utils
'pdfinfo' zum Erkennen der Seitenanzahl bei der PDF-Generierung
Postgres Trigram-Index
Für datenbankoptimierte Suchanfragen. Bspw. im Paket postgresql-contrib
enthalten
Debian und Ubuntu:
apt install aqbanking-tools postgresql-contrib poppler-utils
diff --git a/doc/html/ch02s06.html b/doc/html/ch02s06.html index 72e26bcc3..ae60dc270 100644 --- a/doc/html/ch02s06.html +++ b/doc/html/ch02s06.html @@ -1,6 +1,6 @@
-Anmerkung | ||||||
---|---|---|---|---|---|---|
Für einen deutlichen Performanceschub sorgt die Ausführung +
Der Zugriff auf das Programmverzeichnis muss in der Apache
Webserverkonfigurationsdatei Dann ist unter
Kivitendo unterstützt, dass Benutzerauthentifizierung über den Webserver mittels des »Basic«-HTTP-Authentifizierungs-Schema erfolgt
(siehe RFC 7617). Dazu ist es aber nötig, dass der dabei vom Client
mitgeschickte Header SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 Für einen deutlichen Sicherheitsmehrwert sorgt die Ausführung + SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 Für einen deutlichen Sicherheitsmehrwert sorgt die Ausführung von kivitendo nur über https-verschlüsselten Verbindungen, sowie weiteren Zusatzmassnahmen, wie beispielsweise Basic Authenticate. Die Konfigurationsmöglichkeiten sprengen allerdings den Rahmen dieser diff --git a/doc/html/ch02s07.html b/doc/html/ch02s07.html index d2b87b4bd..3e8fac73a 100644 --- a/doc/html/ch02s07.html +++ b/doc/html/ch02s07.html @@ -44,7 +44,7 @@ Links aus einem der Runlevel-Verzeichnisse heraus in den Boot-Prozess einzubinden. Da das bei neueren Linux-Distributionen aber nicht zwangsläufig funktioniert, werden auch Start-Scripte mitgeliefert, die - anstelle eines symbolischen Links verwendet werden können. 2.7.3.1. SystemV-basierende Systeme (z.B. ältere Debian, ältere
+ anstelle eines symbolischen Links verwendet werden können.Kopieren Sie die Datei
Danach kann der Task-Server mit dem folgenden Befehl gestartet - werden: /etc/init.d/kivitendo-task-server start Kopieren Sie die Datei + werden: /etc/init.d/kivitendo-task-server start Kopieren Sie die Datei
Danach kann der Task-Server mit dem folgenden Befehl gestartet - werden: service kivitendo-task-server start 2.7.3.3. systemd-basierende Systeme (z.B. neure openSUSE, neuere
+ werden: |
Warnung | |
---|---|
Zugriff auf die Konfiguration erfolgt im Moment über - Hashkeys, sind also nicht gegen Tippfehler abgesichert. |
Objekt der Klasse
"SL::InstanceConfiguration
"
wird pro Request neu erstellt
Funktioniert wie $::lx_office_conf
,
speichert aber Daten die von der Instanz abhängig sind. Eine Instanz
ist hier eine Mandantendatenbank. Beispielsweise überprüft
$::instance_conf->get_inventory_system eq 'perpetual'
- ob die berüchtigte Bestandsmethode zur Anwendung kommt.
Objekt der Klasse + ob die berüchtigte Bestandsmethode zur Anwendung kommt.
Objekt der Klasse
"SL::Dispatcher
"
wird pro Serverprozess erstellt.
enthält Informationen über die technische Verbindung zum Server
Der dritte Punkt ist auch der einzige Grund warum das Objekt global gespeichert wird. Wird vermutlich irgendwann in einem anderen - Objekt untergebracht.
Hashref (evtl später Objekt)
Wird pro Request neu initialisiert.
Keine Unterstruktur garantiert.
+ Objekt untergebracht.
Hashref (evtl später Objekt)
Wird pro Request neu initialisiert.
Keine Unterstruktur garantiert.
$::request
ist ein generischer Platz um
Daten "für den aktuellen Request" abzulegen. Sollte nicht für action
at a distance benutzt werden, sondern um lokales memoizing zu
@@ -176,20 +176,20 @@ file_name = /tmp/kivitendo-debug.log
ist der Key f
$::request
Muss ich von anderen Teilen des Programms lesend drauf
zugreifen? Dann $::request
, aber Zugriff über
- Wrappermethode
Die folgenden Variablen waren einmal im Programm, und wurden - entfernt.
Die folgenden Variablen waren einmal im Programm, und wurden + entfernt.
war nötig, weil cookie Methoden nicht als Klassenfunktionen funktionieren
Aufruf als Klasse erzeugt Dummyobjekt was im Klassennamespace gehalten wird und über Requestgrenzen leaked
liegt jetzt unter
$::request->{cgi}
-
war nötig, weil einige Funktionen in Schleifen zum Teil ein paar hundert mal pro Request eine Liste der Einheiten brauchen, und de als Parameter durch einen Riesenstack von Funktionen geschleift werden müssten.
Liegt jetzt unter
$::request->{cache}{all_units}
Wird nur in
AM->retrieve_all_units()
gesetzt oder
- gelesen.
Inhaltsverzeichnis
Inhaltsverzeichnis
;Fs?a!VEsA@Wk+hIUK`tEdRtiUw;bkiCl*${0-HfRDR-ONG zf-#b7aPEWs__tvG!{BsoNt-eh;W+!sf294)qET6Fnx+wQtyzGgatuZ!R6b=9<9 Bm=)MtuHN@RxzZuvsw_3~+n2IvTfXV5-hV#{M=(icdX=|CsiJ&*n zEde0m!h|~sA}!lg`p&T@_e(NWJ~mSR%zckaarq>T0vbmw#t
f1Jv1 z4v;%Jcih&QX%|Gq{8S-UK|=(EQ#Hnki`Dz7z0X=d>hR)8H&66>9aNmXLI`><4`xh` z2|5-1?H<|%JwXS2vskSsAKyz^7t{pq$>RXv1mAZgaJdT+j*J+|-xIZk*rMTR1dCJk zXR;QnwOTAg6+bonkr9JOYCYeFe-u4KLp@_@3x)x(v}XVU+mQ^RsTRy@icmMEso?wB zP+MN!H@qZ|2p0z?nZWyx)$S_T?CNGwg2Oe *8=* z9L$krwQCNWH^2V+oy%K>9UMWhFAilmEZ5ax(_C-E@pZ9$JK3x^O|7O5f6MF5Z4v%^ zvzG(o%i&Y?Rxau~d^H;`mqlGyhroj|r+$p%vf35uwc1^6*5RyK$?wT%5?-$L`?-2q z6x(VSo)x>|uvz*rVHEpOO%_ct-)sx}E1VUL968-CHo)g<1=6d{p^Nj2Q~5m|pPhSg z;?$3Gx+x1_Z2uvAUMz18e>F(Zn3$H;@~!cG0rZ^jt}0__R^A-;UX+B}Nu1|2i7k|8 z6Z!n-{Nf2 QbD5icymy5$ XU=di*@mS zAD&;{CTgIn3osb#BmD8r?*)j#hb@Wy*u++~PYleeLlZt-G&cuuMa9Pq#JdBdy)Me~ z*-ZsR`B0>(AH}@b?n~e#oL5!(cGKw5_f0sSy?p&@W(=HzJKxIh7tfV9yaE;f1P)tx zeGX?wOyuX`g;G?xe|d9vcNg;a?^H-SmU#(|p^N| rcC?k2ePU*26%mY3#LMu-oG?7oDbK2jz_|tN6FBg(HkFo?TDW$m8#K=f` z*pRfML{Oly=T3z*lxvyZm&$PsN5C{B>(i9UMhn~2j!Me-f3&Z4rnF3S<%YXbLc{9u z=9UrM!kBF(dak8CQ~c`kMO)3NTQB(5G#Z72%Tp@{O{*?#JnDk{o-im~Xx?fo>8NXM z10YdqXv-(D&z08D@l!{8pVMrAiA@{Z-H^~$aJo9vM(8S!b_(+uWo!JN+BD9AR3u2{ z+eMVpM+S)}f2wF7(VEb4RlkpnZ^Q0r`WWg*Qy_@-tpjQ?$2wYar-mj>I)( T~3i*s{0xVmrFz1 zoMPdzn&K~&lIB*yZM{G4cr$smH1GQBy?)oT0}6$*e`5zIl{-v(Ff*b5xXN#nZH(mE zic5?6J$8cZaCXFN&9JNYk{sD?W17(r_0o{&$4-r~+7F$SK-)*5`avu+GacvJ3Lrkq zbx=H{DQyD_LY}6yFWGxrN6PXDXK9{gx()fyhdtDG!Gbq6`zi>pe03sCu(K@?jpn11 zlT~%Me=DoSDysIyuD+>@s5-1qIIMcpK&x2PC#&MNC?A!J-TG#+F6u|TmOSChXD?=_ zub&i){cETk(TNvxN_&{U@d5m%zcq_{TlK%*Vuq3^PjQ|xRl7b+FbrqTHYu3;^CWY< zsNX`H@ThF+N0^@Y5K`1b=o4j6MmFfav=}2jf56A3m9Qv aG3qr& zf4pqx#Vm0WwJ(KXm2ZUXJo(9NXMFl>Tbx9VdkTb4DX?`xA=a~w1`fN`?by(tD!1CI zR;P5Q<*;(8nd*l|{`8fqPQf9L0phNawo2MeB~isIGWdGPxv8$)P2Dow%i++c_DsU+ z=Y4&@MyadR99dnMKE1G1ugpP^>A0pSe^178+^tDn5ytA!TRg2QzU_&fQvtWn^qy2` zW6(iC&*_r_qt4E(lI&Q>X;nJy)(IXb_TG=VSlhK5HLiQGPt2NE&EMCUX_t|EdM1%z z+&2ls+uOcQH$IMe+{==#V8>nLY%N}w{JK@q9@REG_uT|gXw=dKh@*B`48!Z9f85Kc z_-!zIc^1?~bF=3cfA7R?9KS~UHn`mscW #M~(oKPA7KcV& z4hGu+;}^{(f589c0OuAIPFie=LT?P!0%-#O-~a5PRYnHcqSj&B7OOl|qxGxylUM z5kDlA#B2v74sg;<0_|x;G#QwhGXz?25-~x1OgZ(mTMC>AzMwhdGd4c4hcfzEe659L zn36I?xb4YWD#IY#(c6(33&!=}>dzGZf0y+CL-`^{zDYzgu(`j*``3t BVE8z|nJDVjZvaInq-#vwsrpVSjSIB4+ ?B34blx%Q(Jsl$HVA(|X{yLb~G zcLOZ#h7eP!#xEnE2MzuJPK(Z3mm&QF6O)xQ>H;=5lYulvf6ZE3bKABOe%G(y (2rNz$F06cKecKG$fV;cCq;ON`D gZy~MsVj^o7I97bO`-LZmj944;ig`6CbF^S?N2`tASyMcAE`lP@r=sa}eiaWUU z-i7hr`ZPL@e~9&V^y}~N&ekF@?{P#17H3PXMjw!T?F$Lqe^2reYd4y%M?WrI&vJ;h zzU%btxZ@y!2}u%L@z_fU{PTQkeXxH0i4ez!;S#P6T;Z7$z;)LC*gbuJ0rz419`WEe z;d7#P?8NX(6nfmvaVC6?Y5R_onAU#tyS4s#v{?7Ff9?5X>;&<5rtJ?s898F3C>j$L z&1@;Jr2(Z~l|JeTqYhh6JxaTa_Btpw(WE9=XdT4gjc{l18v}kRY8^j>N8?xlu(vo1 zobP6bX3V%$wlkX#e3Q*`8)Y`@wYJ7=cG}t#wr57;cI&%nyln58-Fke@CAU%dxlv1_ z>&UgjfA(EZ@R@cpID$6g?^4>ldq?_$sN*Z=Mv5$9%U{Uqg4`aZP5b<%&k}xQ&V7*T zv$))@L0&e8^9>xX2d}S7H$Z+-$jkSCR$iC#Y~hJd)Foq&Ib<)9C?437(cLQSU5~3X z ^Va zfB6ZgPx_M4DGWed!R+7`$n+Ax9ATKFEEp`KH&)~`6o%dQ7y@U?7M`_1()puBw*k-Z zQ2SEgQ}9p$xe@q&e<=Y-S8>H6-SPPQB0Zw-yFp)9Mteu@kwh&`>TpRk-y!%(@FRCD z{7Sd3cKTsB_9B391mWu+B#Nr!uXfxfe{VNw*Aa*6M|~7B y5+={~8Md}0>}d$y@&u8)kjQY6#Uy?Gh`l-j*l{Nl4oK1sp|g IbO_!CW9f0zd1 z5-MXSu8;IWMfLcSLVsKlGA!u+(Q(1WQ|=^m#Ik;*Ltb@~#{2>0Wx{!~>yq^As#j@( zXpTr|nQ3*=ng@fJDdZ^7(ds+F+vjE$D$tyEVMsc?8ImRL))wok@Wpa#IijL7od5Q6 zU$hsQ_YRzanq`>GWy006G@6FvfB70J9MvclO|uB)_obG0qlAKI!lW(_)EQpT6NmX9 zoC?7~xDHYd&L@;8tpROHdVr8Vj&O~M^lC|D@~jppIF1;7G3jW%RLo%N)H8YDnL<<^ z`mJ`UhjP_GdQOy~jC6@So0{7bNbSMf(50Q&lN!fm2RB{08?VzGbD~_se^O)UG-SHs zw9!rG6Udx#v^$qj%bY>Xc|inH(csM~k2hB0F!V*dz(kV1>b%tyTNtf}3NVB5vUSzG z8Ryt02aNM$%>R|8gyZM{a9j-lf<04 ^M}YsVKwypl$yl7An$!io-0Dml<46G zIi{Z2FD(L5HZ^#f*y~X7f83ZkIic_b?RutzM3%dzgz=0Syr>M}ucBN{OPbiSIu=}C z#{xmi3{;k)x8raH<9M&dL9xbb-D)_nmf-+pSisdXs-$J1#I?)t_Kf>J8+rt=TrQ6i zUQ}B#g390un0`WqHtmj9<{+jLTZFX<>2hP~O7x@mLjCApQldKDe{)S;XZk=rFQ}+X zrZ$Uii@h;US4Ay4Q~2}T;>Ts8wkTn QCM(a*v-Dm z(rs t n^W^XU#jXn7@{l-T{dCZI}C%$>*S$Vw6clN5;iWSnjwm+{Xn@v{NWz|yW zX?7@&_S@{3RryBHnrxjPjO;uTn%Rj-_TnKsHukJ4kII8(e_0*U1_Y{34PCwebd@zm zevXO@!EbsYZszv&j^AewSz+HSt}om163$jCba6;?Q22HW2WdPcFg7! a+@D_W@i2XB9>C%WnN^!;PhnQWSje{2ArS=%c9(TLE|gX;svz? z6SH6dBy8rYf4HwW`rgjl>%Z4mm%z0KsBfB -@+ixSlWV$@PV6WRwg* ;82}ay z-rxS2ZH&nG$pAq3B4R3|U6nxm438*c4&36wq?jEx>1{`V1I&+kV>E8x8Gy;EtQz}W z+T2&*in*G=jse^DYM&Lwhx=0OdG%D=v+IxTV4WRK1*pSbmu2xKH}BIOK+Zb*2J)|d z`Q!6Se-HpH^DH}|;rsjMbl;!}7vP{DjC{NSjIe1RkNGwObLG4Ecyl3dz(|f 5*xKM <#-Rt>v-qiGY5*6Ex0 zf6&;Z@M$AyRh5-}eP7|Ihn?OHa`u@}Ypy`hl&hd3zR1}LQ zIcmCyZ!DtOEsJOTEk^m&Et}KNbn1v`>d@zUS2=Wj4GO(4*St8C1)r%6MxNgS`y>{0 zYGY14Mr-35S!wgJ!j^vu?De?@T6?{sv)}NMUlln5JQ0UPZ&LIn#mTB)?MxlNf2AVQ z5SnpZ`x{?8wT`*+XEpLFPTbH(>vd0Yi^PBoFVv8sHSv{(|KASZ!qC*FK5i*b5ZIMQ zy)nFpv~>^|13QG+f>zg$FgT_3iJ)xC0&?10W2_A$A{VsejCxZQO;foWD99u+yN780 zbTF<$OMY#YT~;2lrg}mIsEUu>Kd?$q``hxHBH{}3GLw)$nHDoL zH!d?YH6S!FFfKJYG9WWEHZC+Wm+=(_CX?+z8IyiM!+*_MS#RSw5`Oou(4%*OD7-{T zMk9b7$GyF?i=Cbhun#lyAUo>B+rDBeNB6JaBE_O8N}`i_>I8-^vRJJ1tCAi^G$QbS zp$?g#ahB!LYCC!~_i2>KSmrF^(%eo-OwugRlZc9#CDAr&-%6s5n&+G_JcC1PEL=ZC z{~hf{B!Bui`u$HBa~Bbq_c9^_#5Jieqt6b1^?)4Ce &fcp3wx3*Y!`ItMNB*F6(iG!*6Qlr1dq; z;Fo*%vt|yR8XB{D49)v!U;P=~{&RG5+mbdHB!8w!_LE8bbBjk~v1yvd#J6Tmir4qx zPEA!kYBA$q)+@E{)VrvUgKU!y*TiMIYs5bda{>F!zz7l{qe`&wB(%C7>T)ZMk1-d+|#Dq+KZQBvpE!pvZ4CA+HdyGC9JsK z-S@4*+29(l-w*4Rz1qH%?)m!up*q VjYK{xD2SZ1Xn>v~?bH((^Xu8MKDW$RC6nvc-16duwLgz(Q-mbUhWKuqZ zzfUID$Gv;^OIbyW>yMxMOq4S2k&L2$-2VGtlgV$Ta?n*3{W|+)zF?Ed?Rxh;`fYy# ziu2`U@}K4ZN_YyyCzDURuj}2qDu2;RDa7G4X38?CzlVgzQh@ZONYPxGQ9K^W+#I=4 z)U+`%I&GBClrq#DL<(8+OdEiD&J5DvHImV2MtZcY(EHqrrb*0{dIhr_CuC4fv}eY+ zcw82{ZxHS-s{MX*8un(`ZSR8GmNVn2X!~hx+vsKJk=hqLPe%K+9tmRM%75?FJfJH? zW4GGp7DjBw-W5&dy$H&Xj!-a@MXhPNXzmM>wp~@^ zGR}y~cBy=$D*PGa!~SsCl*fywY8_HUmi4Ztm`y+?N D%M_{#a};KJD(x*MN%%*1K-VMOvbpdnPVxbz-fd)#axe zOnR7DO#($a)TvqAw18 Y34eqoE^ELyzT186vfSpZhxHJ%oM*8%c1~>yvVLMrKtGoCQH8cJ z(@7pDkZ2(N8`J#p{h+FYVNuuIxAG<63aCF)o^){q)PHdb*^JUIu5j@Lrv@`j8}GKb z0HcP%9DUe<8URTQ2(+LQ@rePl8k19!0FZwl41RGkpj9lb9)#;tmUV6lm##s z(M)N}W--&{^9!8e!mDe?lENlbi6L8o-NmlwOtPggbU~Fi5v#Zf-b7QxT*|m~C{Qk* z8kTPwtuSK%A{z!SNft}pWXY56e#YO{&rtpB?)Deu@qcjf_qe+MF&tf4%3>ujoe275 zBi!27H~Q2!O45Q4TCUQ_2eGG F%f{n+6vC9))G(5D$&D|ci{s_X%gg0MwcT8Xsx5FYRs3d<=6boJ zK`vm=fq(hq%hU1MuyMCv1<(QPB+N&D-83v6sOn{ENCd I$>N~pqNaW$hld`7)7wo(}Qoa9$6lnvIp`IRc>GT5ZuBQWb z RkPj`iM=n-j0{)24H)>)u1uPk$6deIQeRX zp8}IigEuxG ehfx6$ WFy$tLcIDOP%O;Ayp3Zpfc^tbP__m`b)=F~LJ8+}666?!CMwnRL5r0QG zEn&Y`Q8&)o?^K#wL7r2N`_`}(8P2UE`h0=3K6_EY-ff>Dc4}2<$kUBS$7^-8>nqZ# zX0e}WX?l9GfxesBCBVLpU**KU5U|} UFsodM z!1Tdtv&;Iqj&NWL!fl!L%KP}V3%sk4A}}4xQ)$2Zd2~O )9~(&@O5`*aOypUb=Dj_+tSxPrki^OeQ<*sL5k2oqdWTW8UMwGV-7sgY9N#td z^*p8VDp>~@j_tKGEwi_dBTn$sC>DdNi}suzE;fPmCs?0H{|9Dk^pBSj4h9snPfZ&E z1Tr-_Fq3Xhq!u(aG%hhYG9WWKIW9LiG9WZIGcGbWldw-elV?xEf9+c9kJ~m9|L(tn zmt27jt}FAU2a6(r*SlM^z KJ3G!uoJ5J@L?m`Nr4datrDDQl#AC81{h^qY zdL8<~-7mQG=ED7wfBZ74MwI+8di5IS%n5~c4 Q-5NHrG%lJsOoeDae@$NgG`f1(f8(~0G-7e~m2vw;52MxC zG)*JwYqKFGnlTt@sOm>OF#c_`Q*Wd>MRPq0n+{M@40@= UlyA@$f0SPwiZbMPp@`eY!o|u^qp*IPm_L&k5{JzVEhl+Z#`E zWsi1k@0o?_wvMd_npjU}*O~e7o5z+Vj>VUjj)f%PDjfU?f~bE34i5a`vh${nrkpfN zI=)sz33C;tf*b#=C44qpZXPOf{txo-@NhoQ>zo|+f5mQ3_S?;-BoD>yJimWt$%Ql~ zW)U+WW7Vq6^f}2|t~tRu4zg>+1!1``LEICbatNQI=7;06p1~1y!xxIgI0>r_Mlevj zFA%#Sag_Z$7LhV%Op*cT&gx>lE%UnAALqBA>2U(zhXUqNEP|gPb!L>{1djM|9Kr>0 zBpxiPe@`+c&&p#beou7HwCKc*H|IwRn}`A0k5QP`PfYFjMSo|F#35vp?wLHI(pUj? z`l9c->YIy`qVcx~L%TP|;&4*SLDj51=?pR%NgX>9-tz{nD`+*6Abt3T{QS=!$iAo# zTO9}Anc$?O$~WYGRXp5oejm{&jm<9hhsq)qe{;>$Oot##q0V=86DrAiBz4+V>I?i| z!l1qA!R1KDKxVh0M9cHH5u}<-iVT9GB!3@?IMN)ZG=;zoK2E2gic6r3pNI@1A^b}q zT$Uroh67oYnaNDSJ(rQmWr0Ec2gi2PSep#~3r>|LQn^!Q2s?$~Y{9HY5b9adJp}A& zf5aUOCh!vuUY|$OfRBYnFS@C45_2v=H3Pi;%o-uZXPs+d6a#Y#v2Z=$bt4P}+mqXo zCp{X=(c3?g`Ttqy|AYLc9)FWaWT12ZXYZfGUKy#B#sBrLgF4=SMJM=F!89k}G)fFb zVQNDYX;j9v`eYGnp8$A#6n%pBu;o!Ae_y6ARJ*%~OYXcKgt2xT;8=?YxXsZM7O9Sx zS`I3T8wF-&phNB?#FG@Be4hDnBzA^^v0-2*alHWmX&+-c z8{CZ)Uf8UrsOGl3*7JJ#RtzIlMU2NlM#gQftoPRdZ6m8K@h |T$2<$f1
#n_w9T%TAgQm8`Zs~h xY95s3huDU3wAnlJ_Dj6_ zMGIWYp};K u1BK3FyEaB$teOZ{qg{4m$GS15ikdWft;gF2 zty33Q$=G_)sHT%m?5T*Wf<93d%{*!C3#+^1ldG344w=!m71LAQKzE6|ju^s ZYT zc-SM5Dj?T58OYVOIt(59oFvj%hvNk8qZ#z()XDl!@0q6HU{l>aZ0f%`e;MEByD?ON z<7Y#Jnd;46tZFhVH&sEFb-mqxHy*>t@^Bl?HtX@->V8#&H{5i;&WqhPf+<7FoH8Fr zZ&d&cH&N09vn*zJn?p^0)pvEiAm=6dK#Ik#*pl=6f;_o7%ggOD|8QH>`G?)?=GhZ? zUgxV4sQ!Aq-=X&tQYQ=Gf4Q@?Z5%k&pW4Reg!bAUShb|>0{RWrQ_WK5p4s+Dt3uPx zq@9ViUf!v Q2$-e{PnxYwx?bgZ0l~IF)Av(y?C0(R)kM%KjSdf#a{U3*2{|^l3_@ zGY Q=HM6btr-lqAHHyp{}o%XiA5c?6lgmOw2XhvDRC) z){nLNBeTm^Q*g%{CFi{?lXY5TJebS0*r|BVm2Qek%DAmBf6fT$1;+DRvMyFt@upZU zimIsI+z2VFd9gcGaDOrY3JAEdgz__`olUqL9O<0%39bG=7LaV#!ecMDN1bmIaVX-F z3UK)vaoBq!+2)LsPRrW8{L;mHkJG$E-7U~-90j!|sFF(KB+M53okGvubEMQp0UY^7 z!|^nV`|nt!f6%Y^p`aDOd?*~DnuTm9YYRsvju(bP2QJ|j2Ou^cbZ936(j29s>dpsB zb9%aY*-65A2V60@XvX|>sP`(bwf2m*^@SOuG+ayk>0YC=_+A;CG#1V?Yw1p}1G?YN zy?!k77D*QI#3V}gmD^v*AD2&yj1H)OL{2TheFQ-{fA_H~$|Bzv=OU63Bi_HKWS;NI zYF`uZFeESQV&@i+{IDnUVoe@ayXM7DQIRN$h7cr`ry+PAtna`KibJ)Boy*N#Uc&Wu zmshhTIfvo=c4=lWRts{!(GW{mlIzvZ_w}H#BnTy+&$~BcV-4obe0P}Lg}AX_Rr3Z= zLCmE4f6cDUHPTgeS4L#J+sqGl_3f$z5CI7Mh?Z>DYq*@R$&=p>%LA!5a1_#G#ghQF z*cb1shLw5Iagfb3RY>-l1PE6sO7sXPzR-vyZ&zip2f5|2X8x^KNjNhwqF!yP{mt3m zZk`1Qr9R8aY*zrE$$B#{z>H`jWsv#f)p{{*e?C_j!;> RROMU*R zE`A@<1wZh)bl>O866gYFR#j!B@aFwPu{yF3^F{cj`@C6I_nXzMII^Gc1@e@{ jxi?@K3D&BsPtB|CHQRc%y3vZ{zc<3-ye22B9*hdMX?9= z)!&lCn*6Bcek15fbkdi>Jm2Mqx1=f#f8cE2A0D)~IpY44*k{x)dN!>4F65AoK?np_ zt#_d2B;SHK3l7XOaVV$;otoNMWp%Xu+`)c}$IO>_2`C*)6(kL0tv|9u_s!RM?sL1u z`}`tNERtNREKOA~smuB~9W00=ol>R1rY_g?lepltw$@NhCZyX@<^!|X);0D|NM}sU zRmS+^vWZviyXrpa=CqkR%CgOxgmz!+*nN`;ZQD=WX6NpsH{4rtSvo^?lW_GK%JPM+ z!`wMd^)W?XYrYu$8(}R2j+Zg81{1S$SseikI5s#6Wo~3|VrmLClfe`fmqj=RG66M{ zAr&u|jT#XT1~V}*E;conp&Ah`0X3I_bpaQbkvIVqli+D1m!R4Z2$xzq1~LIPmw|Nw z7n6Hv4VV6+69)n{Hj}YhCx08;ZXCDueZOK}f+z({@jgS;F|b f=C6x)3xD2xwfOFPm~+u^ zSoeOxCx8b~uNSWfe*FXo-#;b%cyqZpIb9rYq-q3jPJbHsEF?1y7C6^69aE0Oe@Zu} z*Ufj&ITsp!Zs1eECp;4dK3Dx;`0nSg;k)hUaRq E{Sn zgZ<+B=JXGX_34P)N`G@EO!tX#`_%}?sIhI^GM;O50Hyjd80n$ oNuAph!Z^D$gfFWnFKi$8ClIykfS7_Z0V# z?k|bC*QRT*Na?Neq_;>ZdrS16@}#$7-9@YHqGc}Q{OApW<$rGm3l5h5GFq_cf6JFI z8u;Ek@0SKc7o`K)2OTe0X(L!SzzeXVLs7c_OwZs?JLJq|&&?JjL)j^fV$K7$EvN`{ zes3TeStX+*I^GD-x0XrI4v`5&S*EQgu5Hsg6>-`0p8@Q;$6p~!ZO<~X9#|}3Vi1>S z|E3>T$a)*+seeeT>uDFOv53(5dPf|1*G7>oBmdU%d)z-fI~n%!&((>i9mZfEwL%`$ zw9z;QvBXO@* >Kq}nf|$Iqkmj=l%E=cXEF!egTkORs)z@U z)%b%pz{y QHECJ$`BYzg|r?NJ0N5T!&Q7njX2Ih zViCdQf7T^T%EZ99WzS&Y2pnXRUuO$KoMKujpk<&0)#VUzqMG2EeN+y`o{I=!@Q%z! zv96*i =sFIw(Ybgifb3NuTHKT)RcKg%p=NUQ7@e-G9rha~{iSy$8In%^> zey`r8ylAWr!KjqC;HD5bZjjryA5VTp5Px={s@K#v`6_DP)J};qQGXWjhzj6|4T47> zK=&XC`v`8dX+I~K8&M2}G1 ^B0C)sWW8G2cvPEq$oeRul39FOniRMtG@090Bd7mK>~ zM1RclcCeQti2I`p##lt-d9{Gd^m;@q!pic%f~UFuB0XtM=>j@ksDO&7rp(q%qpdKV zqUIG*t@-SNOeD|7@Q!X}8O<3*r6S8QR1??W!@J*3MR;08c$hY1Vn$Y>SqIg&QLXc| zi>48g-55oKYl&4sTIa_6nu }}`S$XM^ZV`D _^TXrzzIpa+ zcXNKW+kSbm{o&=B{rPnBtb@VryYriit9O@Q_5;oref^4eXV=>~Um#`6AeDDc4f(u6 zn>-+QEP^-5pTh50K80XsD)ty{HTiqW%q*8p%#M30MSOlG20UpyZh*Z<8TS-9h<`fj zhRoCRC-alST&3=q6+U9?Aw?^!Jlmdn^2~!$@0}`3H0NseOVl0bRy@DLq_!pr^pujA z%qH`;6Xg4rf(GhAQ9mX_&4bOMSzFDsC3q?oj=JbWLft4^--c|vDlz;eL6%Qfpu#uW zg4Z^-4yf>Zlm13H!;}SBM#vJ@5r5 LK$Y6YkBu MavZpY4V-u*N!dO(OtFS^h}DiPL|ggsO+Vt@D^)ZC1n z^ucavWP4=*O0Y5Opc+P_d+G2)VuI)(n9YD*o~NOwtLA$Zm*LxuW%4sAH?8%M;TM8C z{^jiccz5;VaZwp4r7{^`f_RTF&K}Q>r{!yHu@LRq<|;Uea@Voe6D5T%(Ky~do*xhT zHiL`LQd{rtv=KF|v>WuTntwzHUW6b>h5@b@H;QUh&|w?t2_H4rdJ84=%ijO^mYFx< z;EQxUy`a9o S=i*o*WNv6x_4FpB_BqFll&7VwAA-S)6qd;#vP$jX-r%2ZlWl} zzII-ur5Lw*(R5=aomU0OkhJ#B686sVI10tnTW~!yK1YdZ0GMIzQ&8;DfjqS75~__= zJqR6Kq#fdRXoF7;2Y(WyIWr~4v_kP(V;wTf!sih0PFo`h+g0X=bDuQl!+GWypXeJL ztdgP?BxTBoJNn&>E`l;oF044DBIm*KuwtT4Fb;msX;EB=_^orzd@JA9c>CkoQ;DXq zGcaZ{&EOgh;m&G6c~p#kcm_yAU8-wGXiRcO`UI=w$iC^fGJloj&&NiA&8?AnQ-cr# zb#yEhJ0!5{JzUQ~d7);Ss{+;3PeX4+j}FLPnW{I+`hz)X*t$>QG@O2=j1QR;p(?CJ zsIu?tyU~BrtmcXKNa_@A2=%1-Z2e_e99y>q3M0YY-Q62^_u%d!1b267g1bZG79 Am{;BF-HP&qEdFWna%r)k$9R_Lp^SPd=7}&AohoBxs%!7~z z3$M`4@S@iPKXE&a4C03Pq`mU65Mb(OtCC P#j38R!hA;~<-5!&si^y+%(jQ`8}T(RdB$>PRJK?%6b0zd7EHV41YzaF3lX z_4GVvJV)ls%r^J93b72QJhrCy2m@Vv0aqaKOxwAGdA8%UDWuoDR;|P`I-u^ YT66hAByhZ3l5H@ALi zeX^4DY1Yz6dI`$X_LjU4iw6=DDP=dS?#JCZ?Gk$%@^zlwmm+={3Z|fuI*sfG;*-gZ zb^A$-_r7=`)9A5;1H!2BiM$&yOiM}F86e(&aCkik9`8q~j#_k%(kCL%<|vSq5YTQ9 zT))zJ)rOLF>LRSMpbBM1Q}rjH3ek0plHUnAL|p?Gr>^MX0#nSk=zvA8L^D;Y1%Z8Y zIrAekuC;F~hff&`hQMcq>)WEoy%jawho{@a<2^SVuiy@rMYtC8xV6@%V{_m6*0&L@ zv7WojeLWz-Ewet_trnWFwO`Y6`}^hI0+e| tevT zEK=Md#vCg!6D{KHk64&fuCYNXBjHO*dazJDBy$w8{OO+KDa#D-lSVm|c&xhXC--qo za_6?VqVL^wf}d8&7%A|@rf8-~-r0!axQC4^LrO$sbLAW-{DC$dRZ^C>qAmu|W4W2+ zjIGQbe-Hw5vxaQ9hG6?w`jk4TuHS2azN1`$%wOu|UH{38b%eHUnCcn59UH(%uK~p{ z3F%X_A%@bBP&GUxDJ1Y0;3|cPFb?5Jm1Hk5DZjZViU=thHoCjZTZOM7cWW<0^P~VE z?BuQ_0NfYA>5(qh8HOrYNXR`}GD|&=E2BM{@I@%N{_o!ddtagbWxV7s*NMV}zb{A1 zd|r?<^2qllW!v~8x2Z8|m75)7-}K BN@5`ko~vjGW9p zJ9(~;{R-Lb^Yc`4CqXl7YkFaR4I86TA*_Qg``J6Yf>N(W>$SxiAUaExrLk{{eV9JK zyrxD4G$_~lIqSi6dT?e5_xOEz_0Xa8?E)Q%w{0$;{8Te#x`?J-=TUei+MytchA3u8 z?R%N)yUK#Ct=G(DOuHX#_ekjP8N{$4qIB!`FJzB@I{d@zahJ=uek%f)ZV&F3FUScQ z5Bft;5D>3tWA*EYAHQU!@P#q+WhpmazxC0Jt7{t>L;6=ySGmhB+Ng|JGK`8Zom+u> z+TP4<89sA%wEmS|&Mr=-Mz;SIVeF&;(!Xj<51y0l czwR^|`u4=FnrH#2|(B#H-3{h{zKqhaw9H>?mqL~-C0 zpiW+Bn12Ky6c2zIz@6AB!t^f&7i2^Zjsd~N{-FSAfwuMp+~{u=hSi4fH_9$!3xB9k zapO$r79b FYwESkzk2h#stxdTNWNqFo#cFP{yOL{OTJqe9?6kj# zj}Bfx2c`qZ?aazNg}h&(`}MgH_XNimgB)m%c2A(DCQtwuuX59|oLaSgzm|q{2SaN2 z=2lG1nRRWy2C#~=*G&T+q)YeaT(6(-jP<)FIDMQRg1q&6_NU*Q&fQ+%+ui*L6EC zoW0&NP%g|Pj>Xe^_C@= iv@?+!Ee=GM)A0kzWV3%@Zf^x&AC;-tlpeS2=V*TEZ8 zOuAXvhyYpHn+_)lzkXiA>OgqsE#dlAXQqD07uJEhi`;t-wrxA>G}l$`MhlTDN*ccT z^}>g>g)o-D$Tbogu=|!KSihXTUg4ba=GDHEy$%GvIb2pe9`1ln2TptT_O3oQO5V |~SAwEuK0~L{fu=@TSl+$-oSRloK1lLu!#&RP=^t_S-&uCF`)>~S zRc&oe_L?1b%qbHc*6l4#i@uGktK7#cz&~eqm%H{0EvI8F_sIo$9HX^~jmf&^
$UN}J15&?e z3Yh%Tn6B1snbg6}iC#^&2L3VSY9>kIe`q2%VFit0(?K?unc2?bcz5z993Xc<4I4r& zb&cDdx*Eyx7hmVzYg}KEOk_Nd^@Q>x_@5Ke>+n35J~sXlc=LHaj;e2SLq<0AfGHU^ zvt{x|5EAX}d3@^%G;tPG<2pP$0m8gA1V(Q5eDUG_=)BRxS5_T=Ux|l`RIvjF_?dog zuG%oaSmo<)J9CHK8Kq2`wiXZhH8+?GZ1_*q^;7pGvfan8xZclsR=k<;m;PBRO|6M_ zzk!M;MZDEH5f>O45z`8Duqy}EZH37;d#KVbsx}HRbID(sSGu~Vrugvuj=<-HQT$wO zrN>noVQWJzX11S&VQ`fUdfw)!^#~mbt3xKO8Evl=(eF7LufWOnvMQE>6!33n?|ZM# zqrY@#oL>!5h!Abxp-wkSVlMf?ypDO$5-aE(()tlsLnbD#JYbTF^{V;9GX5yQKl)yF zGp^Q)!AbDT7(3!sY0tuzF#!jO*3wPnj$vl3NIF*yWYT|xN-XqbP4N2#G-f55oFJwO z*x`UlZrPT;pM^hRl&ndL;hqP(NPCiXAD*^dkXPYvEacVHZL?MUDwjvK65-C)N*bld zUB*S!BZzeH_2iSy5iR)IItP(2h8QoDlcg)RCLnjhR-@9LOCk3K!wuMmct6B5=lxsz z){K^5;fv*nW_)#ud}f7Kjk&jB$a6J!&~X-2AfdK!B9V6c%80<>4=szq(t~8|#I6wK z)9c}ULm<0BhfH5FO~5OsCWKL?hGby75o68!sM2>=b7B}>_%NvIMfa)Q6Q$qv(U7o; zdfR=h*63vk>WB%!T;V{JuZ1t}WpR|tTa0CSGx+Ku$3)AwC(CAh 5ks={fUn3X>>oD>{oO1S4=@SuNfTyBMUtpu+ zF{=hth)F3t;wm)o)JMG{HPJRsB+mdewCYrr$Y!o|a*uPC1|uLss8?_i@tm%dZ4QVy z_@3?{;+G3^##3oG4qUVS0s-#P^5>)f&02e(+8F=9r48nlYSh`XDENSi06GNP9W&(k zhP{i?sC64k4(^q6Y%=2pbBy@2Y#MTn_H#A%_K8Pm@^C0HBJ=tAaG7o?tR|{#wGT`} z*Lg6YP3SiQsHEF&C&GfP$1Xr>pibQ;9UJ_INzth{+y!~Q6ze{j8HFGAK#DBOQp4E2 zmTX1B2IDVbb)6p!U@vqiKv@1?sOyoKJ^DXh7%F|&k6zG%> _4K|u}euoZsv8JwP1j&CzPj7Wth{hKm2 zr)^&7oWe$}au!c;pdZ8|Es(D|rELS9mpziD`?Hb^aIQFd-cEfCH%V3Fs{kkIf!HdD zF_rbQ5!#sti<4E>L3DLeC+z6!IN}{l0y_3kA-M%sEel-aL!5t5`j1W%>6DcIn*mjs zNz70bq$*j%X?6XDF_h=%C{sK|sv6`PLwyQWqv1@G>R4sylqh;OBD{X`Hp7IkI B1aCWJ%lDt6Y$e z4(G}@#M3RGfOv`q0!$-G68T74!BP3FqDr*EK$+5pbv0LX|C`yoYI(URp*}_tijQs7 z?4eHbpGit0ROXyHS;MfBizc18Vw(4i+;~jY7R-FV?YfFlU22pO^2k8nK@~c~m6Dcb zb0C3oqAr*C CES|ehH9KL+R)FYV%gTSkDFv4!5E?b=DPX-W9Po`B zfkcBu$d<75k{A^_Qr1QCNAfk9?JUnTMeH)nKl3gnE3fotZZ 5 zF+9i!tsIK#S3p7z2eARF3ZyMY#^L)}M<#|A=Pf59#NJccx6fUh-DtxO(u&N<@7|Ta zSb8Od#1x7U;ykh+MViFkV3A9~Vpo4M08&+Jh^yiDO`r}M+s8=c2aCqoP@xL#9HxDV zPh2>gZ&n0v?8Q^5y*`p) QNr#vNBvZK{*?+3;xwg$M}1yic0f{icNW7K1p6w-I)m^0&GDHmCNIuAyvC^ z{%)2pY@ga)*Znwb3$J H`cp;6AK?)>_oYf<^*fS znMvv2>2S|&2 {C3!7&n_}f@P=E`WB=n2? zOnTlw5sxM3Q~9nqAadwoec;2hdaH}!FyVOcBCEr#H>Qf{hNHN2TfQ_1@;IZ?mzL|W zM#aV&`@VgqK~mc W;t0%dSa0ylSVwue>MpRCv4$qg2UvX200Qj;QvrmWnC!;gdgkxH9T0Kxz{g8 zy#5M_|0`U$0RN*iK7 HII%!u1~+ z#13F(`;Thj0vU;*QR8uP{|!LOqOGG#%E`sd_2Cy|<@)fAv4U9ZVKG4HN@y&J_Fiz< z?3~Pi4=m@0hYY~YM#{$VfnnzcO@+f!gUCu?aT7JY|Jmb$!DeIofP6rC*qM1gqOq~F z{a+*~KpBmN_&- 2^^&5(w&=i=Vn zdn%K(T;cb!Li^J_B?h{zI6L*LbugOdGHyIt%+EnLo#*7i-zm(^d7H@06sbFQb{P!In3M+to_SS(I$@vI_itTZD23zK1SS*2J^P6Z~#=GudA zaHUIdrC+O;bgSrUyG6(DW-0cqMzn@Yj3!qr{YkD?B?DYOAtF_BDUxJc=Nix5l;`L} zLi0sP=Cf;J(zjD2w7c~F?XHLMgX~IY2}~@vXh&d2`-Mv_7fL9*^*oWnBiBcNqZyff z{4nX W!vsF2Cy~V&X=~_cSu lHpWt zUuy>h&u`>S!*Y&CkCV)8BYnzr9v#H*<_ & z+eQHaxw@NJZ{fpBK$`e0j>>>)_;NMD7GvYabffxBTFE#zMz8^&9tsxxJo7yBi+Bi4 zQAH1ew;*D>wyLd6oMhsZtGVf#f)J6_i8d&|T#ay^xeT56C}QXItefVucrkEu!5oNo zo=*hf+kDwfkYUG8txrY~#3~PuL#pQDs!PN@u|G3s2IO0}Z@AwdGkRY*vTS<_$Zilu za&aR^`qqtYG>2KBqu0~y8cKPI)}_63S>PX4zRrSON2$v{B=0-RKw@eds6pd`cF7j) zYRrxsg&8cX{Byi_ar@J>I4jfd*ihj1-b>xc^|Y>EyXR`Al6ZfyLpRlL;t0pop*KrM zeL>sy%IlYjv1?Lf<1hwVI_Q~r8M?kYM!Tz*`$s2KX@`QQX!+H&N0yBO%$cjFKcqnk zVd$oH-A 56uZ-aW5V_Z#*@$!MiG*rtKa>M~ zq2KsA49}6D1v z_I zT>7>Ni)#|0Jc}xiom|dgm&MDj=7ouXLbuP}Y=}I3ggSDW2M8TkC}^p+ zV5Oj@F^imRW@W09zVYQCnc)FLvBjgZ%nt@X9VmnK62kXylSa+T$oyQBib8xt?sKVb zS+}`v_3+@SPzs#GhQP&x4i-@pL}x05wctLt!xmQ#K i`AFf@H~;drpGL zmupKixaIUoijRy@zb=v$a~h84doBX!N`xGVNC?{KOl4Y}=?=O5BgUgdA5GaU=VwT* zIh@V^Trg(Hsy(nwUsA56=j8K7JeABS)^~~7VIT8%_9mL8eiqzA@j-67K+3A=-{X13 zG^dEZj+v9;XoyS-p$G27glP|b`DRWZkJ{B5aLQ4Xd`444g6JyNYe (=t>Mo5@h zNGh|4@^w-`TC5Or=J=5`Ab(Ju#8lcX0=e%7)RM8DJGVxnbi7TPvKeLtSFFHUBj-XZ zFduq*h?rPJqP7bB+M4qM^PYzo_5ZQ{|6P^;O #swpR1oOZti2sZE&m2zHf0q3J_Z&>_|J=TS04a;Sshzot1t};m7Md1#s;6U5 zF@WZ`UwMFIya3K|=3GRu1WQWg1Wp0hTAd)^fh5l0SpWHF &Cr nWNpN5SO$NKo%y^~q13N$qCk8r!7yo=blos*E4n+R3v&0~mc#O%p_OaY~roM)To ziB0F@XBBYZ44~+GJuO67t##oQmkY^x)Q7|@WKZZVEz?&xEyr{kJAn%*e@H`p%8eJ@ z^{u7C+QM?oj(&5!i$M67?Qj@f$5V0*cQ(R1AytN^`b^Tna##+cquz;@IMBLY{`chU zLAO60F1mdK{zT%Y)1qBtArpLO(hGxSLwOBBqb<<_i_#lcPWISPPBGB;_5Sdf*VD11 zxx>pxyX|4SK@s^-Taf^0bdO`3M)GoZ8hC#DC*Zq8OGuAqA){U*dI p5Gf8K(txZGD8*Q~2azlKG|(KdBDNu0svTCKv=ar% zS78ggg)~QJqne*uYzYgOuU+RHu_;TI8oBA3qOZGSe-RXdx8H=Be~t8ux8LlI$UM9@ ziwYk;L7JXupw=;lFuJkgz;Z_vKJ)on6rfbgDX{kFH? jv?SpRV`g)-R7WLhq2rHy=`IFNtNS@wqVaWoY&Z6mR|^KS4Px z49S$VUB0g)kq(STNW1yYSpdJj|JW|#?P?udo#HlP>~>RQVpG!*+Wp;vs^~ZAiqa>f zyxTrwKix@?Hu6< hM!dH5`_!NS@?>1;L$_IE!7Q>2eD-A$Yf$uj%$X6t>(ormMLB7{P%PsL~i@+v}O zQQ`L~V~7Nwx%0s!eD3W$Kb|srof^HwM4L%th3D%Y? HMO^zt^b z6DHXnb$O773BRipI>?0IwmCiZ?S$4=;;y>-Jh?=G&mlg|U;O;s?@h%r6nXo*Va7FP zT&u$Mj@bMGeS1D_mqs*AX)+o8WhantdJ42cCnG2r1WGkk$W)qk@982({RNY#+MlmL z;r>*NyLEw8V;ou0ut*?)^D;SyL^79V(4;e`QJG&J!6_d*{GYd{9Uxj-#5@0mIw{_76lYv;N;p4S|Dg*SVYUgB5qf4 z$@;V|U3VENlGVw(Gd|CM!Gl{0UX#+T;T4i!d*=>*e@=J<(i-XxHrNJ1XLw_u+f#g5 zN{uOb_goNFxl;-Y6vx`;-KcXsfWSgFcLdTzPmQL>+G*Q>Z>ecA!o)Al9Z+_RfBEU^ zjszlXBO?6B6~}28z!r=pV$Y|3Nzp_pQd#p)^PW xM%)v;g7HEV-TY9IJ* z1`JWHm%(iFb;!cc#9X}y+%C#UKt%gqtHWkqi+fu(#PV3B(qhzs)p(HHYX!R|ii1MR zhtdoWHz<2LwL~4vQ)F *J4q+PN#xE@