From 49c259a6676d9fd875e71f7cdee3d3228d43d282 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 30 Sep 2025 22:32:18 +0200 Subject: [PATCH 1/2] Add support for rich data relationships and in-cell images. --- src/PhpSpreadsheet/Reader/Xlsx.php | 36 +++++++++++++++++++ src/PhpSpreadsheet/Reader/Xlsx/Namespaces.php | 5 +++ src/PhpSpreadsheet/Worksheet/Drawing.php | 21 +++++++++++ src/PhpSpreadsheet/Writer/Xlsx.php | 2 ++ 4 files changed, 64 insertions(+) diff --git a/src/PhpSpreadsheet/Reader/Xlsx.php b/src/PhpSpreadsheet/Reader/Xlsx.php index f8a0b11324..16f681ecc1 100644 --- a/src/PhpSpreadsheet/Reader/Xlsx.php +++ b/src/PhpSpreadsheet/Reader/Xlsx.php @@ -38,6 +38,7 @@ use PhpOffice\PhpSpreadsheet\Style\NumberFormat; use PhpOffice\PhpSpreadsheet\Style\Style; use PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooterDrawing; +use PhpOffice\PhpSpreadsheet\Worksheet\RichValueDrawing; use PhpOffice\PhpSpreadsheet\Worksheet\Table\TableDxfsStyle; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; use SimpleXMLElement; @@ -784,6 +785,19 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet $charts = $chartDetails = []; + // Add richData (contains relation of in-cell images) + $richData = []; + $relationsFileName = $dir . '/richData/_rels/richValueRel.xml.rels'; + if ($zip->locateName($relationsFileName)) { + $relsWorksheet = $this->loadZip($relationsFileName, Namespaces::RELATIONSHIPS); + foreach ($relsWorksheet->Relationship as $elex) { + $ele = self::getAttributes($elex); + if ($ele['Type'] == Namespaces::IMAGE) { + $richData['image'][(string) $ele['Id']] = (string) $ele['Target']; + } + } + } + $sheetCreated = false; if ($xmlWorkbookNS->sheets) { foreach ($xmlWorkbookNS->sheets->sheet as $eleSheet) { @@ -940,6 +954,28 @@ protected function loadSpreadsheetFromFile(string $filename): Spreadsheet break; case DataType::TYPE_ERROR: + + if (isset($cAttr->vm, $richData['image']['rId' . $cAttr->vm]) && !$useFormula) { + $imagePath = $dir . '/' . str_replace('../', '', $richData['image']['rId' . $cAttr->vm]); + $objDrawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing(); + $objDrawing + ->setPath( + 'zip://' . File::realpath($filename) . '#' . $imagePath, + false, + $zip + ) + ->setInCell(true) + ->setCoordinates($r) + ->setResizeProportional(false) + ->setWorksheet($docSheet); + + $value = $objDrawing; + $cellDataType = DataType::TYPE_NULL; + $c->t = DataType::TYPE_NULL; + + break; + } + if (!$useFormula) { $value = self::castToError($c); } else { diff --git a/src/PhpSpreadsheet/Reader/Xlsx/Namespaces.php b/src/PhpSpreadsheet/Reader/Xlsx/Namespaces.php index 7356cd8829..b912221647 100644 --- a/src/PhpSpreadsheet/Reader/Xlsx/Namespaces.php +++ b/src/PhpSpreadsheet/Reader/Xlsx/Namespaces.php @@ -121,4 +121,9 @@ class Namespaces const DYNAMIC_ARRAY = 'http://schemas.microsoft.com/office/spreadsheetml/2017/dynamicarray'; const DYNAMIC_ARRAY_RICHDATA = 'http://schemas.microsoft.com/office/spreadsheetml/2017/richdata'; + + /** + * @see https://learn.microsoft.com/en-us/openspecs/office_standards/ms-xlsx/896934fd-8df7-43f4-b154-2d39371c270d + */ + const RICH_VALUE_DATA = 'http://schemas.microsoft.com/office/2017/06/relationships/rdRichValue'; } diff --git a/src/PhpSpreadsheet/Worksheet/Drawing.php b/src/PhpSpreadsheet/Worksheet/Drawing.php index 213351426e..920ac01851 100644 --- a/src/PhpSpreadsheet/Worksheet/Drawing.php +++ b/src/PhpSpreadsheet/Worksheet/Drawing.php @@ -24,6 +24,11 @@ class Drawing extends BaseDrawing */ private bool $isUrl; + /** + * check if the drawing is in cell so should be a richData image + */ + private bool $inCell = false; + /** * Create a new Drawing. */ @@ -246,4 +251,20 @@ public function getImageMimeType(): string return image_type_to_mime_type(self::IMAGE_TYPES_CONVERTION_MAP[$this->type]); } + + /** + * @param bool $inCell + * @return Drawing + */ + public function setInCell(bool $inCell): static + { + $this->inCell = $inCell; + + return $this; + } + + public function getInCell(): bool + { + return $this->inCell; + } } diff --git a/src/PhpSpreadsheet/Writer/Xlsx.php b/src/PhpSpreadsheet/Writer/Xlsx.php index a38c930e42..824619a9da 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx.php +++ b/src/PhpSpreadsheet/Writer/Xlsx.php @@ -440,6 +440,8 @@ public function save($filename, int $flags = 0): void if (($drawingCount > 0) || ($chartCount > 0)) { // Drawing relationships $zipContent['xl/drawings/_rels/drawing' . ($i + 1) . '.xml.rels'] = $this->getWriterPartRels()->writeDrawingRelationships($this->spreadSheet->getSheet($i), $chartRef1, $this->includeCharts); + // richData relationships + $zipContent['xl/richData/_rels/richValueRel.xml.rels'] = $this->getWriterPartRels()->writeDrawingRelationships($this->spreadSheet->getSheet($i), $chartRef1, $this->includeCharts); // Drawings $zipContent['xl/drawings/drawing' . ($i + 1) . '.xml'] = $this->getWriterPartDrawing()->writeDrawings($this->spreadSheet->getSheet($i), $this->includeCharts); From 2b9bef11fba859fe85414e391903db82ce2e1cc3 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 30 Sep 2025 22:33:10 +0200 Subject: [PATCH 2/2] add test file --- .../Reader/Xlsx/DrawingInCellTest.php | 36 ++++++++++++++++++ .../Writer/Xlsx/RichValueDrawingTest.php | 33 ++++++++++++++++ tests/data/Reader/XLSX/drawing_in_cell.xlsx | Bin 0 -> 24096 bytes .../XLSX/drawing_in_cell.xlsx:Zone.Identifier | 3 ++ tests/data/Writer/XLSX/drawing_in_cell.xlsx | Bin 0 -> 24096 bytes 5 files changed, 72 insertions(+) create mode 100644 tests/PhpSpreadsheetTests/Reader/Xlsx/DrawingInCellTest.php create mode 100644 tests/PhpSpreadsheetTests/Writer/Xlsx/RichValueDrawingTest.php create mode 100644 tests/data/Reader/XLSX/drawing_in_cell.xlsx create mode 100644 tests/data/Reader/XLSX/drawing_in_cell.xlsx:Zone.Identifier create mode 100644 tests/data/Writer/XLSX/drawing_in_cell.xlsx diff --git a/tests/PhpSpreadsheetTests/Reader/Xlsx/DrawingInCellTest.php b/tests/PhpSpreadsheetTests/Reader/Xlsx/DrawingInCellTest.php new file mode 100644 index 0000000000..9816703b6f --- /dev/null +++ b/tests/PhpSpreadsheetTests/Reader/Xlsx/DrawingInCellTest.php @@ -0,0 +1,36 @@ +load($file); + $sheet = $spreadsheet->getActiveSheet(); + $drawingCollection = $sheet->getDrawingCollection(); + self::assertCount(1, $drawingCollection); + + if ($drawingCollection[0] === null) { + self::fail('Unexpected null drawing'); + } else { + self::assertSame(IMAGETYPE_PNG, $drawingCollection[0]->getType()); + self::assertSame('B2', $drawingCollection[0]->getCoordinates()); + self::assertSame(0, $drawingCollection[0]->getOffsetX()); + self::assertSame(0, $drawingCollection[0]->getOffsetY()); + self::assertSame(296, $drawingCollection[0]->getWidth()); + self::assertSame(154, $drawingCollection[0]->getHeight()); + self::assertSame(296, $drawingCollection[0]->getImageWidth()); + self::assertSame(154, $drawingCollection[0]->getImageHeight()); + } + + $spreadsheet->disconnectWorksheets(); + } +} diff --git a/tests/PhpSpreadsheetTests/Writer/Xlsx/RichValueDrawingTest.php b/tests/PhpSpreadsheetTests/Writer/Xlsx/RichValueDrawingTest.php new file mode 100644 index 0000000000..568c7ba9fc --- /dev/null +++ b/tests/PhpSpreadsheetTests/Writer/Xlsx/RichValueDrawingTest.php @@ -0,0 +1,33 @@ +load($inputFilename); + $sheet = $spreadsheet->getActiveSheet(); + $drawingCollection = $sheet->getDrawingCollection(); + + // Save spreadsheet to file and read it back + $reloadedSpreadsheet = $this->writeAndReload($spreadsheet, 'Xlsx'); + $spreadsheet->disconnectWorksheets(); + + $rsheet = $reloadedSpreadsheet->getActiveSheet(); + $drawingCollection2 = $rsheet->getDrawingCollection(); + + $reloadedSpreadsheet->disconnectWorksheets(); + } +} diff --git a/tests/data/Reader/XLSX/drawing_in_cell.xlsx b/tests/data/Reader/XLSX/drawing_in_cell.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7ba1881fa12d709d63a13d4f1f3afb77512c8ec9 GIT binary patch literal 24096 zcmeFYgLhT-Z9D0XZQEwYPRC9vww-i$?22vMw(X>2+qb^o%$+-T&HM*5XRV`k z-l}@BpS_>`>{H5e5RjN)&|t7&U|?im)x(V&z2CsVo}j_NFu-8Jb;TU)0cQ39Lv>F_ zGZ%eE4?A1ZJVQM3G@H}ezqnRJgO(N-! zQ@?GZnI+ISl5DztQ(`X21NXZNaI}-T-;ktkJ$zcv^&101IG;82*uSd;F868)*$h^{ zWxUpx{7&Q=gF>m)`W7`l`sTj>_7k!~>!KEmNadZJ;uP5{R3T#LWs1GP0L@>44KFFX z9B(8(f0n8=nCe%SegYRQz^_9jCN00PLS7ao*agCaK zG$BVVCe+)k6c?>CziSBjC1KZcbYD$@Vu}>SPdKYj)V_{Yp@Rixxe|ryitXpEex_)Z zwpnK058lkr!Wp`<{y_^v@e#(1GD*elN-MM|uMD8Hj|Dhe>#bF>|wKtifdDIYO zv|nEkV9NhL6|R-RIxjN=C=5-_?RXo>q+g_8Bbf@Qj#k-y8T^p{zkkO zb(&EV9}c6CFbrEDEl_7jL3_*Ox$4`ZsM3gCmk zP6PYRc$Vh?7hHe&$n|JYG)c)8C+HMO*^`1QP}f3O+5WK_$~io1}j}WkA&)dA9y0 zp4E3Ze@wG5z?EA5nQqBP3qQn0vP*|y#UAZ3Q5PHERW0fp(IEPlo)T`lBp$gzczM6t zP|};xz>wR25sZ}1ry+^;2{AvSiJf8)YuXArodbvFk0T~Q{sQ*EJoQKWHNk!eAQ zS&7KCI1XZ$L45=?KdoB&D75%Yh&0g9R@<+ivUT?X0dZm6njB9b`kYjSeI0P_bJV27Zq$?Iq;;pJT8q$T^cXN;7iJnYBu> z-+Xa4tEcu99h@KTs+QN@Xd7UmFm({3sBS*z%TOKzok#TO#D0DmyaF~Rt%1Z^on2d8 z5SlsinQ4N}7ELw^6T3aN+hi7fH{^=4tpY=3K;MP%9!7OJ)kb_7B>sP{lh*yTsV8iv zO`o!Ws3oRXKz0+QQl@Nx=zKfDEyh*1G-N@JVtDk7s(OD4+pzB5&C)ja=Y*(`5ixCU zf~Xmb_jbpI0LwJGCLB{^U+Tqd-QfG9dDGC}1ioK)d3D)pDxBs#Di4T85^;ZZ4K+*j zC>JH2opVQldnV&-A=I#xMs4`Eenlshe^b+b?wvY3CYAf-G9VZ?EYiG)%FS5mL`ZUE z_7yUx{?d59*lVDM@9!4t@YrG(L61L=>#S4)u^2Yv*H0GaC?BR|*TgARkigR| zhrKpII`L~k1IgWTBysr5NgOSt_r+244t)*I*<~AMP6p)|$wV25@2euM^9E{B&l*=zpkd*nd&i zt0i;3NT^Yf1a?b%k+v)=>tAU9^8O~`VER5GTgf5sM5Bq2my*3q3iTU%cBhc91=Z@6 zNBwe=C0CYT)~lquy&Jweh!bB@`KgwRrG5aGyul>oPwT#BYm2Z${)1Zg&r)lZH2S#C z?}ec@h)}jz&cD3x9A^V=(3V7;GJg)Nyb`3xuz1knU691MkSwkXw3$R&zYhcekssER z-Q9pPZb*u%^(XCc^L1haQ3#jF-(<;0qf#2@!m1#LI;YJOCA@f80R?IKP)75 zH(PK=M^*03o}+*LQRe*1xZe$*Fo_PKdx>%#GbThylM!F>j+o(x>c-aR(@@)l&sC>DI6>g-!pw|8ixh+3-CEWZzjJ*NofPt}oK2NnZM=e{6q-VRX?ZrB z?Go*GcKQ%XcHlW^yk>^He#eRkLJz_iDc{M$cO~S_yfs@Q;ae^ww&3?ex|?(-8>_Ci(>HNb)#ZOj(pd>=ZOTqr&_*dAYK77NfBlVZzWlo{Ov1@xj zJ)Pibyr)szDTw3zudcsV0_j{2^aPyjKLWvjK@4DNW@pCqU&sGK*SWS_JOLMa7tDx1 z=_}*eV&!m8U2ZYeV~m~0FDB;$>BMwmH#O2yJcPi&9-c#VQen5+6sX6ha8l_2NUiTF z@3;`0b*m(`5^iz|aU~wM@i>aiY&|jQuVq>lw0;$g2Hh_|jE@sxWjxp5%9d%rk)MPp zS@B*$q73J&(g~~X0;2GgWT>>z@HRSbZlsoPvZG`~QAdiMQQU*HN(T*E>8Y4w4mr9= zX?(c$$$R062Rrz&o)PaUEA-0M@ed*A*@bBog)cf+V-#V_ewMka2l+SR&!Wp2+DupHL<_o^;L@sK{~#$^4a=6FZ85MH*HZ#KbEy_zrnUusrU; zgkxeIUO~adD%7gS$ShEr#xwZt!DfXkX`J6a>i{Niw;wiXY`U^?%m&7v)>Fo&tCuyY zBQ#NqP5pK}D`1Iy`V+?Cq}pM1Blf;JmE^I=$^}H+ zUg_ha+Z0&=+!H8ISbEikR*A=Y`FE}%{Tf>B!r6-JQ>jm;V^aQ&lp#N_HsMjm_}3lI zZ(EqLajgpfwdoFvV+eoj69f;3_oO5Sttv5Pf4mLi7Ur z-r}cc{r%pL9Jb#%GG6%&)}A%DeP2$G4E>Y@Dq0)|$GbnSPm4(mK0nG0yFZ5VJL#@# zkx1r4qyZ_JxiI{JP+sR$!+VoIhFFT?Amc=ur5=Sx#GKS7NQce{Dv&bLG7rZ#U#sp86g$UYnDf1Zm9JPF%*x8!ZYa}6+-EY! zg{hGjD*ek2c+e5)hCtj$c_Y)MU{s~{+MD+b;A#E?;WroWRCm25Kff~MN3KLF!O}LJ zgyJ`{NtBmEhRnT*cPW*~z3V4{#t-S-s6dM@?q83Yt+hqIu^CUt**`GMs{e=kd<|#VI8%IsBfXZY(o=iK+Oe^Iq6zgbA)@u|{D zA{U&1$#}G<#Tm^sl*(^A&*SS2T(dav^R%?~NJ7I^eTx3{!Q6*xh%76rHt>{zn?_|$G8L-1q+V6qHt zxyr@Tmp;Lfcgd31N*ogLo{eU1mSQ5YZYm*HZWwM&G#E?Q)1aWf^FYum=S>ySS5c1` z%R{|b%&VxK;7O!UlqnZ`&uGEQ2LaqLunrnFfc@lB4F!P|b{Q|ALT13ddb9;~)(| zS!&^&84EWjgxo}8O`9AMUo~!)Y$&dmGJ1}o>)6J>X@;?p=?ZZq8JuSWOeF7p3&V^~ z|9R0vljInwJlVlh=qT1iR!9CdMI_I2v8Jg`8D8f!fz2|dgqbnH)ZsHA*<&Fu2ZM!NW)5s?a_V)N?Ct8oteG5weWo;C&ms@lvq}Gtf4~ z9_diEa*^TS_l`Sa3g#XuS5yE;v0;XQC}HTvmNpA*`-h6Q8f_Ot2YwAsuv~nz#xVM| zP?ioqxz9_BrZLaHb0Id*%N6%0U9iCg4Iw?PVws9tr%=!tV$&GY%jENtgnwOEZ7b)l zOj<_tdmYP$-o2&`PW!PGChT#&q}@VQvv;g&`xa4BpGfsj>nDQFIpC}VvShH|f^~d0 z^zlMKzkMeOXIQ0b{@PVapQHp+;UXhPzfL6qXM3gbif?)f`%Y+#taEojd2B4#=l?bs z6P9Q1^?>AvHW1%M`ftJ51>k9G=JH=+M3Sz<8Z+kbHq`~6mY-5qLC7~*)ucJ;q&6$` ztOm^lZllGN5f*yeHTP{N#@|(&mHXe$P2Y~bTAxu3IaGlVY#ht9y}hCFXlkvDEo+p| z^J4!dnadb{LSgCDLXv35R?js%?5z<)>0aU1!=jccUQexAi%4f(r4~GdR;30dsS?OA z$WJCOBpEl9Y?9GPAHS)Q(`dGQr~mcIg(@?--*xNEKxh3DhF~Ahfbczy>9R?dpbd?* z5ss2wN`aY!%zDC6#>Uqz{-AZXk?{h`F_KX(yZ*@e=$E3UALX|f*8);~sT+p}77AT%;d>$WSpotYaEfjuGr-IIB9ai~EM!f4WfA=FyEa=5%jurCENyaG z=UR3E3s?V3!B-5slt>Ipb94MdH>>Y*trMko^QMEQDb@(n9ARn*%q)4RHc} zVWcnHwIwu4?}k~(!rS9{ip6M^v`zqyLs{z?_)|$T5A=Wpx)CgyAfc8fQlO|ek7fN) zpYub|T@QV_3-`Kn<7H%Xpx`FB3WJu+Q=ecaHii#zw*}O;oCoGdRs1{9E?WB9)90#= zSUyXxqV|bHo%cPja~JN@t=)&qaML`O>n?@O!FiP2ftW$lfW1|_N@H~cdGBBaVt}ZKPFtGpZ|DAW*nfliso`7y3EkqPVz`$zb5#EiVK=*Kt(%LRyVAvG@ z*}uuC{Nq?Zi2eW>PJ9+Cuy7_lL1_OK$dKsoTYwG9k?cAqu%|T4$S=Ve}X4s1V<%;=dx7 zBc?y3u%f7~qn{$EkYv;m!f-*TTH-)R5mY&2>SRPbonL{iv52}oJgkREby z3RqDiv_N!7vYP)Rn!~jS56-+GOg-Jt#f7NGDhB+m-@Cj!Eir>i|2xKHRV2CHg+&qor@` zYU{pmK)+`MHMSXh$4UI~v4$U$wG%nyzB1D`G zJP|Xg3VwP{@QcX5L+#dz>$l2QEg#Yibgw%>?Ruek1ol1EALX6gry&6T zokRJ#yRdxYzM0DGl(v|XWb=z%o03AE@tj*i_U9Vf)9Zd4h)2=6S2hSoA<55awk=l3 zXr8;=d^ z3y1Ym(b&(j*%U)R1q2+1eA8h?wTZ%QhZ0GPWEH@~72t%m)^TMQ9egfGn25*gZx{-R zLTEOPDAy(cBY~{H^WJCHWTAOm82eu6dsq;vAvldPK0AMh_2MVh)83^600a%B!F3#&IQq37JA-sUq6bP=TiNyWd3*AU zUP&-5BMcD_Pbu&gxxkP_wBBmz3KbRc{3@1LnogtY@CG=Q)jn68!;xRMXgw1>C^tKz zVyfMMzVy&0e>7FfA_R*JX}v#Gx$wNNbds!V@06suH_$vAPO?xO3=`+v@~oqLW0+oG zfu7~D#q3XYX_H;!{9(i6J@vNkAJ_wzxavEL4O$b0mcR`^Z}hf(WJjsgb%*X?bgHf_ zbPCx6G*ZWPyJoe&KipOR{`w zX?$@X?L=IHR_QPGcLX$<300nqwK+C=Eq6pOLfwx4g5|2T~ez6(^DLPdhCekQaC zW^_0%W5ARgNyu6rN$52dpVL+xiNH@jmVhgl*Hy3pWQU=1g>qL`HNbNlhq)sKUFCeq zh~-p46MU6TuZNTMxa}KKo*{?5Q~Z-5G`J)S9}TSGk5#1~9XI;jt$HLT9;jc>k@f6m zr-)v6lg%efx(*Nj8LFW-eq1 zrOk5EL-Mu4TyoLLmP%QnW%q^N!r2j_=?QxGvqGQY+y(6`%8uc zZ=G-{Ak(LfE_c1|4#HEtK1kDY{-0fg^@A5<@%F6$4+l+Lt9>n06+(imOXna^vwLPk0aiiFc#NA(3?J>0S$$E$tqMZPP8n_;JaXd7yE zoK0)`Q}KEnbK$>#z_Icb;??6Ztq@oy9Ngl8#IzZXp-D_Gn7@>$U{kACr`Ek0Lx83W>4(SQ&}*P&~IAaIBP zTH}O**PSzL3g1)hB>SktGTh+3ct7JU)6~)5hVyKl9D3$gl&jyy=>5h=A znb6~c*_~i`eGVWQbi1O4;&a45U=WM!H@#H5KOwB<3Q8NyFT8l&&N0IW_2*jES_wkt zjTmcF!DGHx>NlrRDrHLsLnGx9Z@wwV6Z@XL_4Zq>HKf^M_37~Vt7t2XtY>$^Sbn@t zvYY;+KfP9qsJCGZt#sAI(nd`rT;pqbho2OsBO6{F~C1u0NvRsk%$9d`UUBFwiWGle=e3U8K3_^&@?kTf5fvfIFlvx?{A&X(}j?{TG3R2 zpf8Ma@svK#)-lP@eA|Q2-A&R@lk60Nca;9Cr|n3^99|{e=JSHX@uis8*uMZ>Fvx3`)hqpXFSRDI}h~4;+=Kcj;@xy$;+`9ms^Qu}comY37sJN}XO$`QIR5 z=3{cqT{?Mu4!Co0=A@><%s3pjMANw(&=|C85|gX7#NJQ{cM1M#=S*Y}pE71zkx6H8 z+V8jIOT{1ZuC==0;PZP>8#Wt0eb3s4TW#ynX#E~%-gV&uht3ruECDWB_tm3Pb*&`$ z&`{hP6p2ynHDs1KboyRIusNmwX8C%ry-=%$Q>NMdt@B}NUAw8Rt+iMoMCUc}Zkkzc3G6CV`x!R-u{~VQ=agwy%Pek(tI-qc+o*-YC$*^L zZ!}WCf7^UIGsb84p#E8^8k=QRu3o7~!eJ|lK`CFD)t-0U)BAk`YdCfLjl)`{RJHIV zO*FLBahF{EU*q!0e!Nhwale#H@ZintA!zn-4Pm(FyPgavytvpdbHKiYCtYGA-F*J4<#R3kh9E#d_i>LhHemAlb?mg>dICV54|eT(>$>MPd9E!~lPon*4cC`OgzFhG7fUk0N)mGag(lg;Q z>k4P)cm8ap)8)f~gwLKhtZB1UB2nF`k(}*WgnBrhk`oTL!?)7)(ai7HZk%5R!NS6o z%*F~^AiSDHimn5k8I1m++(O5@PZ<|!OM-yo{}tGOub*PC4m8SDe$Sv$$;!irUHXmi@zRYr`EaWuw zkyvlKFiG%TyVt(gS>@_GD%fkCR{L;6ppXUFaA!%8Op4s$(C1-LO@|COPQ14Y4bKeX z9-1>-Oo^81m0EM#6%-G*Suec?Fd%RYIVC{>mM?wZ+tYH`t>)CuGz{l5c@QioR-6*K z91Pmds`z3%cz2q^>jXu!_+0ZlRbX1iIqcRDyS=iq0=RGYaQsDpx*Eheh zLhl^y1xNOq4Bb>Ncpqq7{)MaSaPgVh9YHMX915XfQC}naF1OMV2{@Cp)9g6dS)N^t z%wn)R&M1%NRHJUXYR*NxD5fwHb$&dqH#i?!gUmCqeB$qR!rv{wVnW?KYSTBbUY&4m z27`{ov6O0Ikn!!F#l9Y72DdW`Jn!`1s{{`DK;?i1iZNztknDe2St(Zok>*ad#?`i9)#dWLKm4eg5FhcfLYuZ&5rmHPKb(P>Eb&Y?86Wa??VFiK>ONhce4K8QKN-?3Utp zM@-1N-EKt6+npCTIg~ZvW`3M7@Qd7$__*reu0PxY)0tOMsguI6dD)p^H=FGEK<kevY z1ISc<1P5GhHKw%VnR6eo=r&2w$R)#Qk6ZxQi(J3Wgfi&AVkxzZY)p_xjH2slsueIl zhA@&6YF~8=u~D?{Gmd!}N_rjVhSNyJ5&9_Pc)Y_+S%5MM{zG^=F3l<`tA!GljZMyB z$9p7LQy`H(2Y`)<*38t`zt;Yv^NZ$f73@S7`at)X?{P$2X$A~x zOISiqdjpArV$fdqv*$j7B}!?mW_dqkE&(slTmD}V3k_B-#M>c@HgVs**0mjBGlf@E zp^lpZ81cXl0XMdCq6mqy!>wRz;Qhj;#ftjW4qHCi2!?s$GOtZy7U^u>-x#zzg2Ipp zWPX-wT&?I-}IhS5}GWOKuDQQ9Gx!} z3y)K8Iw#=gtaqD)p5hupX5QK8@`dSY$ELaE-*h*WRPqALzDc6{S?qkcmCst8R0vJN zk;h@f<&5t|I7p);Aa=kWbet;GqGu#BNTG~7Fw{ebKXs|!eYzaX9&C8oYgin&Xn|@Fj#CpsiXY$E!c9efTqFd6Wx4ar1o4hg`@lw zIvpt3i()&ura%@gBaDzPkNv~a}`T-s5u?NPLpW~OVV7Kl!x@j1ZpXQg%|59R6 zEeOiPR2T`o-IO3tnIsX^ZG#UmC{y+MebE})d(GC`T=`Iv(_{Cty)Spa-H`apc!CaIl=bhR$m z?(n?BcHvDO3{K&{OtsII!b@cnm+hEcGz&}@$f4D!IF}(Ysv(RWKG~C)ztn##F-NKv zwqiB&3OHS|8NonFWf5yG6~Fllm=>Vvi=FJM-SBm1Ez`rjYBv z{M<(Tdfsm>aXGqd@c%+<^ZMDExYO}lh`X6luOk!YyjVU>Rf%bFRU*3;>oiY4Jfqq_ zj!VBP-R{Vy&$@)Iv6*^pFB|~x2ihF@ZB}&dNyZ#$yAJIi$h7b0E)B-}(>_QSkC+WNRM$+XCHd^! z-@u_}NN0PP)!3c(ezbjkzUey|ExDh}#S+jN@H6pf{EYoW+= zc#1Htcv0*{V}5+fvwV83vnO+KUVqE737%Ht7N;b=F;Un`4$Z6q0sPQZ)~{GDb(P~A_{z<)N&TbYN^6A7gs#R)Ti;q)AA}X`jfJ%A-_#)?OGA9YXL1h&k<~iN1N6jVEVyJ?9an;GAZn-&*R_ z0idP33-{h7q7HBTY|K!7dm^u}KqW2(Owdmx+*H z4#n!0xRx{VFU=4*bjX}7JLJiwxF$Fo;Nk=gf^mIgQ;bTa@rf%fB>*Gb`A_Py|1b@#4mc~tSF z>zB5i`=I)97|eENR1!JhMid*fEtngbp1Q?c9G$uaP5#4)GJZOZ_!1=gm_C8mzm*fr zemM(H+59l((Sv_U%SB_h*}NVkD3$uW+$Pd#R@Dfn9scpQJ! zdu(g39w$5s4D<#Z8jGYmE#fY;?`re=e$V1Qk&0(F4Qtxe+zuHW_0w;azqbolT3idH6nbK%A!K-P!j=@w){lKo-?m{jV_Rtfnr{kRpKNas!a0YcSazY za{E)QN%_ZNb={SEN|it#xLGy~eYqLk(sfV6mNe?{yV)D@YuQIL z;Oir;&)Ah;p0q-zamuCAiN3*@&|$B@YT+QENWInsi&pnhf%ehFiP#&|`QhU~QpC9+ z-+cWeV)bGnXE%Hh{Gq+h!)Z(FEdmbn&c~sXgQZie1M-8}oc{>Q#Qah`0EfQG>p|%D zxjrrUV1(_~?|8)NbhVyI2|CqyzEEkpA5|gUM^-`bg<~lBII|graKPmOs z$x1DP-F8>_UC~*fp)V}>mrNkIM=TN7pDS@(R4J``(IJ@b8b_2KgjgKnoo&|>MH;oj zhP~E(qb5`hf{wV|#K;>efWpLyQKpR^cxWJ?S(v7Q`(*oJr$nFf2E8O*5WJDDPI$3; z`*(AM2={PZ`^09I-v`VKy!t0Nl;;NtBz!F9uJOkXw+{z)Ex1~CP3!=f13>*XykgYviE zT|RpKAH(_!bkW&y4iv;uj?XJk3R49eTFKc+4i>eop-uQ#{f>RH1UMGpqAm8`c=I)p zx3O6_Pox>lofC0N=<6L}q0w8(UcDwA;0|SFoJ_mKXdn%oU<}p2nbU)^u~5S<*ry1W;;El|$33_fL1B>uo^Iu%m`&vo5_Ws3r@K=qk#HFZK*gAOHu{dAIEn&8zR1yk(Bm#WomJlNJgYHxqd} zQm2MWL4E!@KvGJ#ZDJ#MZnLq4L|#{X;)I@dg>-f+JRik0Rtl5`(_U7$Hum^%*)TpV ze1xJ@1Z;Zolex|Dak8Dn6RL>ki%xhftD%Y2UD?YRkwFG!P}*XK_@{z0Ap|bbnQceA zLu&}A1$;b5;enxDM$SaRHZ?unXpY7~r#|d1#OEIH8?K^0UFvk#0?NxH!0-N%0_^VQ z9~^}zGw5>SGaI4Wt<JEXsC|} zaL4@ix<9^UFAQe%XaXf(B$sdlI}v>QO3{mJS*a?#q&Rna_exJwMQUCpec@z znfr=pXig!qz?-W2Lg0+3!^3Y??nX}gTRe)#T4#m8IpnStFqVB^dmOBbo#-^yi#X$C zHUr!r)dro=LNvoMHtsjd27GRkwbcm>%B#e_i54QeGwt@9{~UewYQe8ca%?Q2PET$Z z8%$pCby`grn3yF6LcfTJYjW*1S{|o<$<910!DBKa4uL1rYl|$FbzR*s(P*4QrE}Wp z4A5+>7+AKnvF4HG1?_PG=fw_J-tU+?k`T;ah`mO9sTMn4hWG%_Gc3IRiX6(YnAk#6 zYba%Q>u#BXV^Bdwl}zh-tP-O?y1=1G=+uCFbwJxdQNKNO>fs>OH_<^QU;`9ZzuC{` zs#e_P+L^L$!-S7I$F8wz8N25uz$$H7^rgCq8c>~I4XE72ePz)3daDR)E;u6~pTbGx z`|0Td(m?<#-3skIJvsIdrw<);5d6K9Elt9^Yq?cM#jxvh!^m|c9F_y?VpR8qgpm(p z;H2QL`p<0Op)I;iw#5!zm*P)bXI%*9Bfqn0)k}KD2~e{M0G9vcxI7kT7R^n)=GnTV zW4@HK1c$M7zQWj*wVjT_Ft);7&pdCDYF6CFr}>U2PNL6$#z}H{jv;!Tm|0Y&uX6Nh zFudgG8 z3t>W=KeHKql2;P9IFs2bkiVRt1_3JwAsQciH|7b9W6Kmiu_Q%NgeuxH-l zePCP`6{X%UBAAG_&1X4SwZL)u9K5CdSeyR>Ce(ZF9iVO_6@;aAV>T|p-A-0T1tf)uWoiqZsprI2$%oHTo#A@()!xV4 zL#;w@?_XHNL@~lzZk!j16m)OZ)g!oUuT!hn_dD#4pKxw0J;ZyCZsNfYE(Qxp>Y7s^ zSF$gIJP!TF4i-}uZY zKte|UzH9>Jmo$lway;u+%IINbRebR<5R~)b8bk#>O$s^eGm>f0r5?r9jc0$bSg+ z%PeX^{e4h%|3Dbyi$21p_D2{a z{4qQUUT?MXrw6Wh>@+u=I4`~N^g0&8i5V~OLY3HW;KZ7*J_-~%Gf9r$P!OY`P@30po~yyfP^j(nUkz1PGrN_86X&pYGv4QmHZ->$;zr*V_j8|@dvw!GR28{f(xQgWLJvuv0^_>?XYK8Xer zP~zj^_lCeF94~4b-VMYuY1a#m$Wg?R2vrXe%$P-V$tF-K91`(l!F!-+vYvA)H(I+^ zwWKmM%=ZUa-k?)h9h9*6#2t}AlG(s)XK>n?hj0y3UTeEx2)sLTg31`*raw=@F0~ZQ zwJGI+@6e+dbA$ai)lxVpd0{wvJE0N>JS5W+k^RGt71+;N#`Gvl$Mw_LP7DrCgjSp2 zp+3Oq;&G&XnRa&xm1+ZDYMZ5S0nexqo9}%4?gG%Ex5KzJam5bwFet?4wMt2>92B={ zFR>_0DSk=gu+jNMOwLlk_p>3P@or&YO-3)X*KKJrKMtg@&-L6=f|bZgG)i$Viz(Gy zxtT$?ISjXLjobY(jhW8=2_=i>i;BXE*cc+r6SzD?KSQqrA$WmeLY%-%t+^Z@*D1dk z7?ncyn9cjS2d6f%PsG28tYK44R1*Df7qTVuN3~d;THI5ch%lJk1*lA=weMw`kP34%?ev#e#3jI^+ zUx=kX;~??r--QYp*`4iKSsX;9$|DH6obSpo48UFSqKmZa|7itxBiFn)z}5>J|Mpon*rFOoMsQ@@ zQkY8=Hg+Hf{bz%t!zYvn8VkK7%iA*mPj`LAX-BQedC_``pv`C{4tJCPyfF0V2S{GM zYg_`e$JdgALpbb5`JkeQ7t#%3P$3R(a}0%&W!TfG_tIhkYYuyd%HFkqgh*q%n@YP@ z>-*HNF*ly%uz#nC#be91c&V`o^NcwdRaI_vr@IwHl@FZbQaiVB0D^esY{hQ z7rtJ5kyO51>A0Cg`{+m0T zFY={LUQ=~oVN~p44F<$eH?4Yw{Nb1;(CdLf6_k9w&@lby&79!fMh|aw|O?Zl}QdNHe%rK9g&RqTTJJmw?G+H1YCw-IdI8 zV+K4lDvy(3ebhVNR30M!8ISwe8o~!W3!NOPVIee+ce{w&gAQ%DhZ=syB`yu&BTud}B3jkF;Je;B zV$f+Q(x_a!_B#{{Lp%yxizV>?cUg2h>2yVApZA`@sJ74r(a||xW1KJgVgsViO}q9; z*}x#yS>4@qcT+xrdVVzQlc|jE2$I2t?k^*J?rU#GIeK#tKR7WAg$_pgxaLdw0t+FT zaH_S!Z{p}Ja{5<$gM0?vWt7T&yzGFAM93Wijf~%C7JJCQQY@p8LC4bb(3{MV$}t#+ zCapX8lKpyrF})0abgE~A1;YieB}l;eE{`#!RCKxNr2?u=mAalWmG(DhwVpdxt^4)b zmuMaz&+fk;;8(B;zj8aAi-l70?mMZ!7VT;^orV>YWJkW696{>2XTIePj(hSW@v#`O z@pQxy3*dPj2YSDw>3{v3)T!O4I1TWvyw-nPB;o~Ra@uc<@j1ufz69f=UTq|GSJ6Dju2i3=0c>@<8?4Ri>44kjIrl4f z?VyUjdNE(cZf(9YG)ueJ!3bOzv}FmkONSOJW0_0*Ju3s18t_`%z1PGf!gtAWi&_lm zE)4ceG)?Hk%ayIQ-{f`G`6PHc?+w;o-6PRMZ-uSm;R-+q;{)gn@PYQnKT=KWeIMEx7rrhBlQm*&qDJM(5%3 z?<&5Uu}KA7k0_tSRYZ_WId-TevpIv5ii zQ)j;1@LmSvi9%eqkGVTtQaqZKBY^tE&xnD2tO=kB|7`%j_$WZ8Cv~^sL@2b)Xlpn% zZTsRYK+rJuCCAsG&F7q1WZ#fX`G!tUD%Au7`_1GeIzmL#1#vL$h)`^}{>x=fLqGnx zz=BKNeQVOg+{--u&s^L+-~L?=(bj0Vpv9ZNd;ay?^v9-PkxS)<$GpqTUhclPgXFoI z`OZ{uRyK~W4})rr2g}rAr7qL!Yew9A;!a6PFyJQ0^t9Kj_ZjmM+~H|)xdXK76Hq%( zpm+CBE?9S}aB6d!F`#cUo$6Nlw_!JSzz;VDJH9;oOQ&lMEsJky&f9AYJ&MUmGyVMl zK6h1SpZ4L6`)^t0X_{Z$pC@mo@GV?%Pkh(#0frtQtAg%#{!b25t=42Sht|UnMf(Hp zhVDGb(kObE%wp zbg$EwFx-fHFw$5Q3p+CAQ z}FBwiIfVwvMHPpg-ZS; z({(1;I7<0$4l_quN-Lr;D3*irbtm9Ef>aJ^t1Z=58{NZCU;a`4p~5ek;_lq_yD!F? zkZ&#r&r>&9%>RhCUp9ptrmptoAccLGJmRgsisErj>J0@6>Be-2rdTq4 z){gnxrZ;`a}t_2E^Lhaxq5+Y=10r~CBunTp&PAtD%D#bo_P?< z|4%z-;t%Ei#c{?K$(Ah?l`NG#OSrmO$}$)sV>k9~#$ZSdCW@%8J&91(lI+!3vM-S> zONuOoETe2?Vi>=Nx_9!_{rv;KAFna>4rjwEZN&|E?2JQAA5kivdlVPurPv2ZFXxR>M8mtkN8IJ-fy_ORAoO75xMDd zE8N)m^LRz{l;jnBQP)5U5&vq+Y4bD7_-)jL>g+EAPwPCe^dkckJVx$X- z7SO6&@76z`Xn)hxQt*Y0xce=ZY$)bDxn$VO$y>8|c(UIu;;GV%(n!E!;n)a%;7nl8 zVtAxV`XZND;5A>#^-iGEMt{87Fr&a4yClg0FO6VGtdFk>T)n>DuIc%tC$FDpecDe6 zUT@1dtobS3ajL<3^F!X1;`h~2&Vi*Y7sof2*9kzYHW_8NTALh7Q#i7`doLY!8DG1{+va(J9dcxo!$$gAzT?7(Pgmr%Xdm;Ftg153Z|8A^)->3 za%n=TXpiZdFrWwAia|&0jFQZ$%;beR0G4Y4qr9>SYW(b%sI(huE^ zA#!eDO9h;2CnwQelL{#$)rb7fEV0M?Dj;DK4m_?!3)n%4n$yKfv+p<=B~)V&y^__* zGzJE`ku5QBuHD69M#3As4Z)3Xi=!AH#;ARKs}p%qx^?vie|LVKJ95dEp-jr)$^7w& zAhRpVf1EQX&qW0Zs-iM$I<=R&uIikOu~W;?KKVlH)6!-8(}W8vX&yl=v^mK3m&+@R zl-UdlH0&_1ymd6-eK9bK^n;3mbiyDU5g5eQAd+XSp4Y52TNu%77FSfo%0g{)J5rP&phMMRC)l7RJG6*{0Ed4yenuW7(Z-Gy0N=G{a_$K?}yd#@TkI)3N; zGSWvrt#faZCqhI-yuGBgCdp1QgYNS)VH;hy+#@C7UWShQ(}K86K9VHUORK%?VKE0| zHyGc_Rli%EC|}>6hzDbzy2vA{O+eJr0{bWMJ$ilI99%Vly_4E{a3105=XB1=b890V zyJS2Xq}k}k{^;HmLKRL1h}FS6IUv@0Dc0Ik+Cnq!sT_ki+w48&velE=d41CS-99e! zLtHdN1q@+LvC)&BV}#{z6*NcsxxMysomjX6A+0*ed1Kx?_R^h_j&#>$r@8;yug}7& z)-(I%D;Y+KC%y^t5_*^iPEKVu5c>`t)(z?D6u;-@HyO!~W7AJq6qluiDGeRnzqo2} z;Dxnp;$RV3U$No!${BSlx{nW?njF5+e;f8X-PLP5>OflG{kzbWMT&>t2i&d%Zv0^P z9k&+1e`^7@ycdW%%~CJKrbQGP327f;k(c2!o^B3+{6Q7+@Q8S~wDy;kbBdcC$3J!m zHXFhH~!^&D$znxnMe8%?*fMk4x1!!d*o&clNj9qD|<30$$C zpmk`Ts*cEB6Xg_0j@wdV%mB1`5o%H&diHI)3|6HwhZ@nVl6am9BX`3&0hwpP0#{5U zH@-{c9&*|EEeoTBh8x-ncmx49R`}mN^Tqi1Ibi&Jwq1lqz0_@hv4s;u=g~>ePa+j{ zb$Y^tIGI9k`<;Y}w08T7%f;XGnrGJ>-dIiRi%wGxz+o$} zRJq(sZ1$~vb)w<|YeOmLUz^3#A=%HF8J74r4Y=l+iJZN%Z$PUk1o z>C(smc#zQfq6t**3M{*f>mfJOA$5YebLm?oI?i17ZBGz3_X*vjUDvU@TPH{^vdb<$ zmCH#;q~lpc9{uy`Hcx32JWRj;~8wg?lLQ6GE^fceJ5Sv-_5k+j{mrDv#o38iA*%&LVK=$C+{|5Dw;k2G_X`Mecru z2wk058Xpcc>0%?i^n;Gf@x{H|U(v@@bn4t4#c?MtG4-gprO%DS8}uakINBtCa2&Q_`H=nzDKLm9S~i$8hq&O9M9 zO8o9<_aSUfz&!qptC_fNVQ>O@?-K0%*#{cA6^O^l>+C)^hPywYt8aG>q+Y@8qPgs1n1to_jzi~RW!&aiTtI!{r7~eWNjx= zd0>y;0XNa_dxiFK0~nM(#!eWF8_LC33Un+ZY43)zx4XwIT_Rodj+*aaV0uVMY)CwU z`x)a|rkJKqwz|e$S%;I7Lb48DVGLV|$pkPPzloA*KHf?tAWD>gPce1?YUJqU0Q2!e z`${=@eLp(@4Br1)M!?bq#u^y{*-O}{{yMAP=(7Sk%@m}tdq7-cBl}-o`q+@>Cmw^d zW22Vz&=ZXTjjPV!Ij}a zM;_skI$Xqpp{wA@SSTc2Gj0+3h6AZy#OxrYaId^8qe0WVU%5jgutNT+Rp5fWUGkJ7 zTw^SbA&OYr$D)bR)RhtXlrQz z6mbPh=(n4zkR+T5x|x(d_N=K_uf{#EoqQewds1WA5Cm^DF5rAYvNj#tEib-i0#zEL zcI22U(#VTnQoa5K03A4Zl%dZzDan`TRK|r{XfpBB{IouFv^wve_|Ir478t`*B?xg{cbZ8N^ z*EJ^o@MGF_zfDG6wGpD3%?;;w>4D?@C-!9|7P`bm#6gbvFXJoJs-IT8$q#z1uFj)z zFel#1kJs+!?Xa2Eq_Js8V4^*VB zU46$n-1~d->GWirrqz_5I>bKbyULQw_E@Kr);`}r;Y83U{;Vup`%4Xcmti{G%nj87 z9xYE)`g?6^o2rZCc>fG2j>cmqs0AOD>wIBY#6aK4F;~%aW{mT93M_v$`xqY_Fj~0~ zZrCAf!yj5Ww{p$hD24V&%k!81im(d;mP@IvrpS7xHmQzzEn-hs!-dzqr8>cJ%fQ5l zZZOVjGrJ@o62Ic|de*yS`b-;)%60DT9gw_?_JT-Z9D0XZQEwYPRC9vww-i$?22vMw(X>2+qb^o%$+-T&HM*5XRV`k z-l}@BpS_>`>{H5e5RjN)&|t7&U|?im)x(V&z2CsVo}j_NFu-8Jb;TU)0cQ39Lv>F_ zGZ%eE4?A1ZJVQM3G@H}ezqnRJgO(N-! zQ@?GZnI+ISl5DztQ(`X21NXZNaI}-T-;ktkJ$zcv^&101IG;82*uSd;F868)*$h^{ zWxUpx{7&Q=gF>m)`W7`l`sTj>_7k!~>!KEmNadZJ;uP5{R3T#LWs1GP0L@>44KFFX z9B(8(f0n8=nCe%SegYRQz^_9jCN00PLS7ao*agCaK zG$BVVCe+)k6c?>CziSBjC1KZcbYD$@Vu}>SPdKYj)V_{Yp@Rixxe|ryitXpEex_)Z zwpnK058lkr!Wp`<{y_^v@e#(1GD*elN-MM|uMD8Hj|Dhe>#bF>|wKtifdDIYO zv|nEkV9NhL6|R-RIxjN=C=5-_?RXo>q+g_8Bbf@Qj#k-y8T^p{zkkO zb(&EV9}c6CFbrEDEl_7jL3_*Ox$4`ZsM3gCmk zP6PYRc$Vh?7hHe&$n|JYG)c)8C+HMO*^`1QP}f3O+5WK_$~io1}j}WkA&)dA9y0 zp4E3Ze@wG5z?EA5nQqBP3qQn0vP*|y#UAZ3Q5PHERW0fp(IEPlo)T`lBp$gzczM6t zP|};xz>wR25sZ}1ry+^;2{AvSiJf8)YuXArodbvFk0T~Q{sQ*EJoQKWHNk!eAQ zS&7KCI1XZ$L45=?KdoB&D75%Yh&0g9R@<+ivUT?X0dZm6njB9b`kYjSeI0P_bJV27Zq$?Iq;;pJT8q$T^cXN;7iJnYBu> z-+Xa4tEcu99h@KTs+QN@Xd7UmFm({3sBS*z%TOKzok#TO#D0DmyaF~Rt%1Z^on2d8 z5SlsinQ4N}7ELw^6T3aN+hi7fH{^=4tpY=3K;MP%9!7OJ)kb_7B>sP{lh*yTsV8iv zO`o!Ws3oRXKz0+QQl@Nx=zKfDEyh*1G-N@JVtDk7s(OD4+pzB5&C)ja=Y*(`5ixCU zf~Xmb_jbpI0LwJGCLB{^U+Tqd-QfG9dDGC}1ioK)d3D)pDxBs#Di4T85^;ZZ4K+*j zC>JH2opVQldnV&-A=I#xMs4`Eenlshe^b+b?wvY3CYAf-G9VZ?EYiG)%FS5mL`ZUE z_7yUx{?d59*lVDM@9!4t@YrG(L61L=>#S4)u^2Yv*H0GaC?BR|*TgARkigR| zhrKpII`L~k1IgWTBysr5NgOSt_r+244t)*I*<~AMP6p)|$wV25@2euM^9E{B&l*=zpkd*nd&i zt0i;3NT^Yf1a?b%k+v)=>tAU9^8O~`VER5GTgf5sM5Bq2my*3q3iTU%cBhc91=Z@6 zNBwe=C0CYT)~lquy&Jweh!bB@`KgwRrG5aGyul>oPwT#BYm2Z${)1Zg&r)lZH2S#C z?}ec@h)}jz&cD3x9A^V=(3V7;GJg)Nyb`3xuz1knU691MkSwkXw3$R&zYhcekssER z-Q9pPZb*u%^(XCc^L1haQ3#jF-(<;0qf#2@!m1#LI;YJOCA@f80R?IKP)75 zH(PK=M^*03o}+*LQRe*1xZe$*Fo_PKdx>%#GbThylM!F>j+o(x>c-aR(@@)l&sC>DI6>g-!pw|8ixh+3-CEWZzjJ*NofPt}oK2NnZM=e{6q-VRX?ZrB z?Go*GcKQ%XcHlW^yk>^He#eRkLJz_iDc{M$cO~S_yfs@Q;ae^ww&3?ex|?(-8>_Ci(>HNb)#ZOj(pd>=ZOTqr&_*dAYK77NfBlVZzWlo{Ov1@xj zJ)Pibyr)szDTw3zudcsV0_j{2^aPyjKLWvjK@4DNW@pCqU&sGK*SWS_JOLMa7tDx1 z=_}*eV&!m8U2ZYeV~m~0FDB;$>BMwmH#O2yJcPi&9-c#VQen5+6sX6ha8l_2NUiTF z@3;`0b*m(`5^iz|aU~wM@i>aiY&|jQuVq>lw0;$g2Hh_|jE@sxWjxp5%9d%rk)MPp zS@B*$q73J&(g~~X0;2GgWT>>z@HRSbZlsoPvZG`~QAdiMQQU*HN(T*E>8Y4w4mr9= zX?(c$$$R062Rrz&o)PaUEA-0M@ed*A*@bBog)cf+V-#V_ewMka2l+SR&!Wp2+DupHL<_o^;L@sK{~#$^4a=6FZ85MH*HZ#KbEy_zrnUusrU; zgkxeIUO~adD%7gS$ShEr#xwZt!DfXkX`J6a>i{Niw;wiXY`U^?%m&7v)>Fo&tCuyY zBQ#NqP5pK}D`1Iy`V+?Cq}pM1Blf;JmE^I=$^}H+ zUg_ha+Z0&=+!H8ISbEikR*A=Y`FE}%{Tf>B!r6-JQ>jm;V^aQ&lp#N_HsMjm_}3lI zZ(EqLajgpfwdoFvV+eoj69f;3_oO5Sttv5Pf4mLi7Ur z-r}cc{r%pL9Jb#%GG6%&)}A%DeP2$G4E>Y@Dq0)|$GbnSPm4(mK0nG0yFZ5VJL#@# zkx1r4qyZ_JxiI{JP+sR$!+VoIhFFT?Amc=ur5=Sx#GKS7NQce{Dv&bLG7rZ#U#sp86g$UYnDf1Zm9JPF%*x8!ZYa}6+-EY! zg{hGjD*ek2c+e5)hCtj$c_Y)MU{s~{+MD+b;A#E?;WroWRCm25Kff~MN3KLF!O}LJ zgyJ`{NtBmEhRnT*cPW*~z3V4{#t-S-s6dM@?q83Yt+hqIu^CUt**`GMs{e=kd<|#VI8%IsBfXZY(o=iK+Oe^Iq6zgbA)@u|{D zA{U&1$#}G<#Tm^sl*(^A&*SS2T(dav^R%?~NJ7I^eTx3{!Q6*xh%76rHt>{zn?_|$G8L-1q+V6qHt zxyr@Tmp;Lfcgd31N*ogLo{eU1mSQ5YZYm*HZWwM&G#E?Q)1aWf^FYum=S>ySS5c1` z%R{|b%&VxK;7O!UlqnZ`&uGEQ2LaqLunrnFfc@lB4F!P|b{Q|ALT13ddb9;~)(| zS!&^&84EWjgxo}8O`9AMUo~!)Y$&dmGJ1}o>)6J>X@;?p=?ZZq8JuSWOeF7p3&V^~ z|9R0vljInwJlVlh=qT1iR!9CdMI_I2v8Jg`8D8f!fz2|dgqbnH)ZsHA*<&Fu2ZM!NW)5s?a_V)N?Ct8oteG5weWo;C&ms@lvq}Gtf4~ z9_diEa*^TS_l`Sa3g#XuS5yE;v0;XQC}HTvmNpA*`-h6Q8f_Ot2YwAsuv~nz#xVM| zP?ioqxz9_BrZLaHb0Id*%N6%0U9iCg4Iw?PVws9tr%=!tV$&GY%jENtgnwOEZ7b)l zOj<_tdmYP$-o2&`PW!PGChT#&q}@VQvv;g&`xa4BpGfsj>nDQFIpC}VvShH|f^~d0 z^zlMKzkMeOXIQ0b{@PVapQHp+;UXhPzfL6qXM3gbif?)f`%Y+#taEojd2B4#=l?bs z6P9Q1^?>AvHW1%M`ftJ51>k9G=JH=+M3Sz<8Z+kbHq`~6mY-5qLC7~*)ucJ;q&6$` ztOm^lZllGN5f*yeHTP{N#@|(&mHXe$P2Y~bTAxu3IaGlVY#ht9y}hCFXlkvDEo+p| z^J4!dnadb{LSgCDLXv35R?js%?5z<)>0aU1!=jccUQexAi%4f(r4~GdR;30dsS?OA z$WJCOBpEl9Y?9GPAHS)Q(`dGQr~mcIg(@?--*xNEKxh3DhF~Ahfbczy>9R?dpbd?* z5ss2wN`aY!%zDC6#>Uqz{-AZXk?{h`F_KX(yZ*@e=$E3UALX|f*8);~sT+p}77AT%;d>$WSpotYaEfjuGr-IIB9ai~EM!f4WfA=FyEa=5%jurCENyaG z=UR3E3s?V3!B-5slt>Ipb94MdH>>Y*trMko^QMEQDb@(n9ARn*%q)4RHc} zVWcnHwIwu4?}k~(!rS9{ip6M^v`zqyLs{z?_)|$T5A=Wpx)CgyAfc8fQlO|ek7fN) zpYub|T@QV_3-`Kn<7H%Xpx`FB3WJu+Q=ecaHii#zw*}O;oCoGdRs1{9E?WB9)90#= zSUyXxqV|bHo%cPja~JN@t=)&qaML`O>n?@O!FiP2ftW$lfW1|_N@H~cdGBBaVt}ZKPFtGpZ|DAW*nfliso`7y3EkqPVz`$zb5#EiVK=*Kt(%LRyVAvG@ z*}uuC{Nq?Zi2eW>PJ9+Cuy7_lL1_OK$dKsoTYwG9k?cAqu%|T4$S=Ve}X4s1V<%;=dx7 zBc?y3u%f7~qn{$EkYv;m!f-*TTH-)R5mY&2>SRPbonL{iv52}oJgkREby z3RqDiv_N!7vYP)Rn!~jS56-+GOg-Jt#f7NGDhB+m-@Cj!Eir>i|2xKHRV2CHg+&qor@` zYU{pmK)+`MHMSXh$4UI~v4$U$wG%nyzB1D`G zJP|Xg3VwP{@QcX5L+#dz>$l2QEg#Yibgw%>?Ruek1ol1EALX6gry&6T zokRJ#yRdxYzM0DGl(v|XWb=z%o03AE@tj*i_U9Vf)9Zd4h)2=6S2hSoA<55awk=l3 zXr8;=d^ z3y1Ym(b&(j*%U)R1q2+1eA8h?wTZ%QhZ0GPWEH@~72t%m)^TMQ9egfGn25*gZx{-R zLTEOPDAy(cBY~{H^WJCHWTAOm82eu6dsq;vAvldPK0AMh_2MVh)83^600a%B!F3#&IQq37JA-sUq6bP=TiNyWd3*AU zUP&-5BMcD_Pbu&gxxkP_wBBmz3KbRc{3@1LnogtY@CG=Q)jn68!;xRMXgw1>C^tKz zVyfMMzVy&0e>7FfA_R*JX}v#Gx$wNNbds!V@06suH_$vAPO?xO3=`+v@~oqLW0+oG zfu7~D#q3XYX_H;!{9(i6J@vNkAJ_wzxavEL4O$b0mcR`^Z}hf(WJjsgb%*X?bgHf_ zbPCx6G*ZWPyJoe&KipOR{`w zX?$@X?L=IHR_QPGcLX$<300nqwK+C=Eq6pOLfwx4g5|2T~ez6(^DLPdhCekQaC zW^_0%W5ARgNyu6rN$52dpVL+xiNH@jmVhgl*Hy3pWQU=1g>qL`HNbNlhq)sKUFCeq zh~-p46MU6TuZNTMxa}KKo*{?5Q~Z-5G`J)S9}TSGk5#1~9XI;jt$HLT9;jc>k@f6m zr-)v6lg%efx(*Nj8LFW-eq1 zrOk5EL-Mu4TyoLLmP%QnW%q^N!r2j_=?QxGvqGQY+y(6`%8uc zZ=G-{Ak(LfE_c1|4#HEtK1kDY{-0fg^@A5<@%F6$4+l+Lt9>n06+(imOXna^vwLPk0aiiFc#NA(3?J>0S$$E$tqMZPP8n_;JaXd7yE zoK0)`Q}KEnbK$>#z_Icb;??6Ztq@oy9Ngl8#IzZXp-D_Gn7@>$U{kACr`Ek0Lx83W>4(SQ&}*P&~IAaIBP zTH}O**PSzL3g1)hB>SktGTh+3ct7JU)6~)5hVyKl9D3$gl&jyy=>5h=A znb6~c*_~i`eGVWQbi1O4;&a45U=WM!H@#H5KOwB<3Q8NyFT8l&&N0IW_2*jES_wkt zjTmcF!DGHx>NlrRDrHLsLnGx9Z@wwV6Z@XL_4Zq>HKf^M_37~Vt7t2XtY>$^Sbn@t zvYY;+KfP9qsJCGZt#sAI(nd`rT;pqbho2OsBO6{F~C1u0NvRsk%$9d`UUBFwiWGle=e3U8K3_^&@?kTf5fvfIFlvx?{A&X(}j?{TG3R2 zpf8Ma@svK#)-lP@eA|Q2-A&R@lk60Nca;9Cr|n3^99|{e=JSHX@uis8*uMZ>Fvx3`)hqpXFSRDI}h~4;+=Kcj;@xy$;+`9ms^Qu}comY37sJN}XO$`QIR5 z=3{cqT{?Mu4!Co0=A@><%s3pjMANw(&=|C85|gX7#NJQ{cM1M#=S*Y}pE71zkx6H8 z+V8jIOT{1ZuC==0;PZP>8#Wt0eb3s4TW#ynX#E~%-gV&uht3ruECDWB_tm3Pb*&`$ z&`{hP6p2ynHDs1KboyRIusNmwX8C%ry-=%$Q>NMdt@B}NUAw8Rt+iMoMCUc}Zkkzc3G6CV`x!R-u{~VQ=agwy%Pek(tI-qc+o*-YC$*^L zZ!}WCf7^UIGsb84p#E8^8k=QRu3o7~!eJ|lK`CFD)t-0U)BAk`YdCfLjl)`{RJHIV zO*FLBahF{EU*q!0e!Nhwale#H@ZintA!zn-4Pm(FyPgavytvpdbHKiYCtYGA-F*J4<#R3kh9E#d_i>LhHemAlb?mg>dICV54|eT(>$>MPd9E!~lPon*4cC`OgzFhG7fUk0N)mGag(lg;Q z>k4P)cm8ap)8)f~gwLKhtZB1UB2nF`k(}*WgnBrhk`oTL!?)7)(ai7HZk%5R!NS6o z%*F~^AiSDHimn5k8I1m++(O5@PZ<|!OM-yo{}tGOub*PC4m8SDe$Sv$$;!irUHXmi@zRYr`EaWuw zkyvlKFiG%TyVt(gS>@_GD%fkCR{L;6ppXUFaA!%8Op4s$(C1-LO@|COPQ14Y4bKeX z9-1>-Oo^81m0EM#6%-G*Suec?Fd%RYIVC{>mM?wZ+tYH`t>)CuGz{l5c@QioR-6*K z91Pmds`z3%cz2q^>jXu!_+0ZlRbX1iIqcRDyS=iq0=RGYaQsDpx*Eheh zLhl^y1xNOq4Bb>Ncpqq7{)MaSaPgVh9YHMX915XfQC}naF1OMV2{@Cp)9g6dS)N^t z%wn)R&M1%NRHJUXYR*NxD5fwHb$&dqH#i?!gUmCqeB$qR!rv{wVnW?KYSTBbUY&4m z27`{ov6O0Ikn!!F#l9Y72DdW`Jn!`1s{{`DK;?i1iZNztknDe2St(Zok>*ad#?`i9)#dWLKm4eg5FhcfLYuZ&5rmHPKb(P>Eb&Y?86Wa??VFiK>ONhce4K8QKN-?3Utp zM@-1N-EKt6+npCTIg~ZvW`3M7@Qd7$__*reu0PxY)0tOMsguI6dD)p^H=FGEK<kevY z1ISc<1P5GhHKw%VnR6eo=r&2w$R)#Qk6ZxQi(J3Wgfi&AVkxzZY)p_xjH2slsueIl zhA@&6YF~8=u~D?{Gmd!}N_rjVhSNyJ5&9_Pc)Y_+S%5MM{zG^=F3l<`tA!GljZMyB z$9p7LQy`H(2Y`)<*38t`zt;Yv^NZ$f73@S7`at)X?{P$2X$A~x zOISiqdjpArV$fdqv*$j7B}!?mW_dqkE&(slTmD}V3k_B-#M>c@HgVs**0mjBGlf@E zp^lpZ81cXl0XMdCq6mqy!>wRz;Qhj;#ftjW4qHCi2!?s$GOtZy7U^u>-x#zzg2Ipp zWPX-wT&?I-}IhS5}GWOKuDQQ9Gx!} z3y)K8Iw#=gtaqD)p5hupX5QK8@`dSY$ELaE-*h*WRPqALzDc6{S?qkcmCst8R0vJN zk;h@f<&5t|I7p);Aa=kWbet;GqGu#BNTG~7Fw{ebKXs|!eYzaX9&C8oYgin&Xn|@Fj#CpsiXY$E!c9efTqFd6Wx4ar1o4hg`@lw zIvpt3i()&ura%@gBaDzPkNv~a}`T-s5u?NPLpW~OVV7Kl!x@j1ZpXQg%|59R6 zEeOiPR2T`o-IO3tnIsX^ZG#UmC{y+MebE})d(GC`T=`Iv(_{Cty)Spa-H`apc!CaIl=bhR$m z?(n?BcHvDO3{K&{OtsII!b@cnm+hEcGz&}@$f4D!IF}(Ysv(RWKG~C)ztn##F-NKv zwqiB&3OHS|8NonFWf5yG6~Fllm=>Vvi=FJM-SBm1Ez`rjYBv z{M<(Tdfsm>aXGqd@c%+<^ZMDExYO}lh`X6luOk!YyjVU>Rf%bFRU*3;>oiY4Jfqq_ zj!VBP-R{Vy&$@)Iv6*^pFB|~x2ihF@ZB}&dNyZ#$yAJIi$h7b0E)B-}(>_QSkC+WNRM$+XCHd^! z-@u_}NN0PP)!3c(ezbjkzUey|ExDh}#S+jN@H6pf{EYoW+= zc#1Htcv0*{V}5+fvwV83vnO+KUVqE737%Ht7N;b=F;Un`4$Z6q0sPQZ)~{GDb(P~A_{z<)N&TbYN^6A7gs#R)Ti;q)AA}X`jfJ%A-_#)?OGA9YXL1h&k<~iN1N6jVEVyJ?9an;GAZn-&*R_ z0idP33-{h7q7HBTY|K!7dm^u}KqW2(Owdmx+*H z4#n!0xRx{VFU=4*bjX}7JLJiwxF$Fo;Nk=gf^mIgQ;bTa@rf%fB>*Gb`A_Py|1b@#4mc~tSF z>zB5i`=I)97|eENR1!JhMid*fEtngbp1Q?c9G$uaP5#4)GJZOZ_!1=gm_C8mzm*fr zemM(H+59l((Sv_U%SB_h*}NVkD3$uW+$Pd#R@Dfn9scpQJ! zdu(g39w$5s4D<#Z8jGYmE#fY;?`re=e$V1Qk&0(F4Qtxe+zuHW_0w;azqbolT3idH6nbK%A!K-P!j=@w){lKo-?m{jV_Rtfnr{kRpKNas!a0YcSazY za{E)QN%_ZNb={SEN|it#xLGy~eYqLk(sfV6mNe?{yV)D@YuQIL z;Oir;&)Ah;p0q-zamuCAiN3*@&|$B@YT+QENWInsi&pnhf%ehFiP#&|`QhU~QpC9+ z-+cWeV)bGnXE%Hh{Gq+h!)Z(FEdmbn&c~sXgQZie1M-8}oc{>Q#Qah`0EfQG>p|%D zxjrrUV1(_~?|8)NbhVyI2|CqyzEEkpA5|gUM^-`bg<~lBII|graKPmOs z$x1DP-F8>_UC~*fp)V}>mrNkIM=TN7pDS@(R4J``(IJ@b8b_2KgjgKnoo&|>MH;oj zhP~E(qb5`hf{wV|#K;>efWpLyQKpR^cxWJ?S(v7Q`(*oJr$nFf2E8O*5WJDDPI$3; z`*(AM2={PZ`^09I-v`VKy!t0Nl;;NtBz!F9uJOkXw+{z)Ex1~CP3!=f13>*XykgYviE zT|RpKAH(_!bkW&y4iv;uj?XJk3R49eTFKc+4i>eop-uQ#{f>RH1UMGpqAm8`c=I)p zx3O6_Pox>lofC0N=<6L}q0w8(UcDwA;0|SFoJ_mKXdn%oU<}p2nbU)^u~5S<*ry1W;;El|$33_fL1B>uo^Iu%m`&vo5_Ws3r@K=qk#HFZK*gAOHu{dAIEn&8zR1yk(Bm#WomJlNJgYHxqd} zQm2MWL4E!@KvGJ#ZDJ#MZnLq4L|#{X;)I@dg>-f+JRik0Rtl5`(_U7$Hum^%*)TpV ze1xJ@1Z;Zolex|Dak8Dn6RL>ki%xhftD%Y2UD?YRkwFG!P}*XK_@{z0Ap|bbnQceA zLu&}A1$;b5;enxDM$SaRHZ?unXpY7~r#|d1#OEIH8?K^0UFvk#0?NxH!0-N%0_^VQ z9~^}zGw5>SGaI4Wt<JEXsC|} zaL4@ix<9^UFAQe%XaXf(B$sdlI}v>QO3{mJS*a?#q&Rna_exJwMQUCpec@z znfr=pXig!qz?-W2Lg0+3!^3Y??nX}gTRe)#T4#m8IpnStFqVB^dmOBbo#-^yi#X$C zHUr!r)dro=LNvoMHtsjd27GRkwbcm>%B#e_i54QeGwt@9{~UewYQe8ca%?Q2PET$Z z8%$pCby`grn3yF6LcfTJYjW*1S{|o<$<910!DBKa4uL1rYl|$FbzR*s(P*4QrE}Wp z4A5+>7+AKnvF4HG1?_PG=fw_J-tU+?k`T;ah`mO9sTMn4hWG%_Gc3IRiX6(YnAk#6 zYba%Q>u#BXV^Bdwl}zh-tP-O?y1=1G=+uCFbwJxdQNKNO>fs>OH_<^QU;`9ZzuC{` zs#e_P+L^L$!-S7I$F8wz8N25uz$$H7^rgCq8c>~I4XE72ePz)3daDR)E;u6~pTbGx z`|0Td(m?<#-3skIJvsIdrw<);5d6K9Elt9^Yq?cM#jxvh!^m|c9F_y?VpR8qgpm(p z;H2QL`p<0Op)I;iw#5!zm*P)bXI%*9Bfqn0)k}KD2~e{M0G9vcxI7kT7R^n)=GnTV zW4@HK1c$M7zQWj*wVjT_Ft);7&pdCDYF6CFr}>U2PNL6$#z}H{jv;!Tm|0Y&uX6Nh zFudgG8 z3t>W=KeHKql2;P9IFs2bkiVRt1_3JwAsQciH|7b9W6Kmiu_Q%NgeuxH-l zePCP`6{X%UBAAG_&1X4SwZL)u9K5CdSeyR>Ce(ZF9iVO_6@;aAV>T|p-A-0T1tf)uWoiqZsprI2$%oHTo#A@()!xV4 zL#;w@?_XHNL@~lzZk!j16m)OZ)g!oUuT!hn_dD#4pKxw0J;ZyCZsNfYE(Qxp>Y7s^ zSF$gIJP!TF4i-}uZY zKte|UzH9>Jmo$lway;u+%IINbRebR<5R~)b8bk#>O$s^eGm>f0r5?r9jc0$bSg+ z%PeX^{e4h%|3Dbyi$21p_D2{a z{4qQUUT?MXrw6Wh>@+u=I4`~N^g0&8i5V~OLY3HW;KZ7*J_-~%Gf9r$P!OY`P@30po~yyfP^j(nUkz1PGrN_86X&pYGv4QmHZ->$;zr*V_j8|@dvw!GR28{f(xQgWLJvuv0^_>?XYK8Xer zP~zj^_lCeF94~4b-VMYuY1a#m$Wg?R2vrXe%$P-V$tF-K91`(l!F!-+vYvA)H(I+^ zwWKmM%=ZUa-k?)h9h9*6#2t}AlG(s)XK>n?hj0y3UTeEx2)sLTg31`*raw=@F0~ZQ zwJGI+@6e+dbA$ai)lxVpd0{wvJE0N>JS5W+k^RGt71+;N#`Gvl$Mw_LP7DrCgjSp2 zp+3Oq;&G&XnRa&xm1+ZDYMZ5S0nexqo9}%4?gG%Ex5KzJam5bwFet?4wMt2>92B={ zFR>_0DSk=gu+jNMOwLlk_p>3P@or&YO-3)X*KKJrKMtg@&-L6=f|bZgG)i$Viz(Gy zxtT$?ISjXLjobY(jhW8=2_=i>i;BXE*cc+r6SzD?KSQqrA$WmeLY%-%t+^Z@*D1dk z7?ncyn9cjS2d6f%PsG28tYK44R1*Df7qTVuN3~d;THI5ch%lJk1*lA=weMw`kP34%?ev#e#3jI^+ zUx=kX;~??r--QYp*`4iKSsX;9$|DH6obSpo48UFSqKmZa|7itxBiFn)z}5>J|Mpon*rFOoMsQ@@ zQkY8=Hg+Hf{bz%t!zYvn8VkK7%iA*mPj`LAX-BQedC_``pv`C{4tJCPyfF0V2S{GM zYg_`e$JdgALpbb5`JkeQ7t#%3P$3R(a}0%&W!TfG_tIhkYYuyd%HFkqgh*q%n@YP@ z>-*HNF*ly%uz#nC#be91c&V`o^NcwdRaI_vr@IwHl@FZbQaiVB0D^esY{hQ z7rtJ5kyO51>A0Cg`{+m0T zFY={LUQ=~oVN~p44F<$eH?4Yw{Nb1;(CdLf6_k9w&@lby&79!fMh|aw|O?Zl}QdNHe%rK9g&RqTTJJmw?G+H1YCw-IdI8 zV+K4lDvy(3ebhVNR30M!8ISwe8o~!W3!NOPVIee+ce{w&gAQ%DhZ=syB`yu&BTud}B3jkF;Je;B zV$f+Q(x_a!_B#{{Lp%yxizV>?cUg2h>2yVApZA`@sJ74r(a||xW1KJgVgsViO}q9; z*}x#yS>4@qcT+xrdVVzQlc|jE2$I2t?k^*J?rU#GIeK#tKR7WAg$_pgxaLdw0t+FT zaH_S!Z{p}Ja{5<$gM0?vWt7T&yzGFAM93Wijf~%C7JJCQQY@p8LC4bb(3{MV$}t#+ zCapX8lKpyrF})0abgE~A1;YieB}l;eE{`#!RCKxNr2?u=mAalWmG(DhwVpdxt^4)b zmuMaz&+fk;;8(B;zj8aAi-l70?mMZ!7VT;^orV>YWJkW696{>2XTIePj(hSW@v#`O z@pQxy3*dPj2YSDw>3{v3)T!O4I1TWvyw-nPB;o~Ra@uc<@j1ufz69f=UTq|GSJ6Dju2i3=0c>@<8?4Ri>44kjIrl4f z?VyUjdNE(cZf(9YG)ueJ!3bOzv}FmkONSOJW0_0*Ju3s18t_`%z1PGf!gtAWi&_lm zE)4ceG)?Hk%ayIQ-{f`G`6PHc?+w;o-6PRMZ-uSm;R-+q;{)gn@PYQnKT=KWeIMEx7rrhBlQm*&qDJM(5%3 z?<&5Uu}KA7k0_tSRYZ_WId-TevpIv5ii zQ)j;1@LmSvi9%eqkGVTtQaqZKBY^tE&xnD2tO=kB|7`%j_$WZ8Cv~^sL@2b)Xlpn% zZTsRYK+rJuCCAsG&F7q1WZ#fX`G!tUD%Au7`_1GeIzmL#1#vL$h)`^}{>x=fLqGnx zz=BKNeQVOg+{--u&s^L+-~L?=(bj0Vpv9ZNd;ay?^v9-PkxS)<$GpqTUhclPgXFoI z`OZ{uRyK~W4})rr2g}rAr7qL!Yew9A;!a6PFyJQ0^t9Kj_ZjmM+~H|)xdXK76Hq%( zpm+CBE?9S}aB6d!F`#cUo$6Nlw_!JSzz;VDJH9;oOQ&lMEsJky&f9AYJ&MUmGyVMl zK6h1SpZ4L6`)^t0X_{Z$pC@mo@GV?%Pkh(#0frtQtAg%#{!b25t=42Sht|UnMf(Hp zhVDGb(kObE%wp zbg$EwFx-fHFw$5Q3p+CAQ z}FBwiIfVwvMHPpg-ZS; z({(1;I7<0$4l_quN-Lr;D3*irbtm9Ef>aJ^t1Z=58{NZCU;a`4p~5ek;_lq_yD!F? zkZ&#r&r>&9%>RhCUp9ptrmptoAccLGJmRgsisErj>J0@6>Be-2rdTq4 z){gnxrZ;`a}t_2E^Lhaxq5+Y=10r~CBunTp&PAtD%D#bo_P?< z|4%z-;t%Ei#c{?K$(Ah?l`NG#OSrmO$}$)sV>k9~#$ZSdCW@%8J&91(lI+!3vM-S> zONuOoETe2?Vi>=Nx_9!_{rv;KAFna>4rjwEZN&|E?2JQAA5kivdlVPurPv2ZFXxR>M8mtkN8IJ-fy_ORAoO75xMDd zE8N)m^LRz{l;jnBQP)5U5&vq+Y4bD7_-)jL>g+EAPwPCe^dkckJVx$X- z7SO6&@76z`Xn)hxQt*Y0xce=ZY$)bDxn$VO$y>8|c(UIu;;GV%(n!E!;n)a%;7nl8 zVtAxV`XZND;5A>#^-iGEMt{87Fr&a4yClg0FO6VGtdFk>T)n>DuIc%tC$FDpecDe6 zUT@1dtobS3ajL<3^F!X1;`h~2&Vi*Y7sof2*9kzYHW_8NTALh7Q#i7`doLY!8DG1{+va(J9dcxo!$$gAzT?7(Pgmr%Xdm;Ftg153Z|8A^)->3 za%n=TXpiZdFrWwAia|&0jFQZ$%;beR0G4Y4qr9>SYW(b%sI(huE^ zA#!eDO9h;2CnwQelL{#$)rb7fEV0M?Dj;DK4m_?!3)n%4n$yKfv+p<=B~)V&y^__* zGzJE`ku5QBuHD69M#3As4Z)3Xi=!AH#;ARKs}p%qx^?vie|LVKJ95dEp-jr)$^7w& zAhRpVf1EQX&qW0Zs-iM$I<=R&uIikOu~W;?KKVlH)6!-8(}W8vX&yl=v^mK3m&+@R zl-UdlH0&_1ymd6-eK9bK^n;3mbiyDU5g5eQAd+XSp4Y52TNu%77FSfo%0g{)J5rP&phMMRC)l7RJG6*{0Ed4yenuW7(Z-Gy0N=G{a_$K?}yd#@TkI)3N; zGSWvrt#faZCqhI-yuGBgCdp1QgYNS)VH;hy+#@C7UWShQ(}K86K9VHUORK%?VKE0| zHyGc_Rli%EC|}>6hzDbzy2vA{O+eJr0{bWMJ$ilI99%Vly_4E{a3105=XB1=b890V zyJS2Xq}k}k{^;HmLKRL1h}FS6IUv@0Dc0Ik+Cnq!sT_ki+w48&velE=d41CS-99e! zLtHdN1q@+LvC)&BV}#{z6*NcsxxMysomjX6A+0*ed1Kx?_R^h_j&#>$r@8;yug}7& z)-(I%D;Y+KC%y^t5_*^iPEKVu5c>`t)(z?D6u;-@HyO!~W7AJq6qluiDGeRnzqo2} z;Dxnp;$RV3U$No!${BSlx{nW?njF5+e;f8X-PLP5>OflG{kzbWMT&>t2i&d%Zv0^P z9k&+1e`^7@ycdW%%~CJKrbQGP327f;k(c2!o^B3+{6Q7+@Q8S~wDy;kbBdcC$3J!m zHXFhH~!^&D$znxnMe8%?*fMk4x1!!d*o&clNj9qD|<30$$C zpmk`Ts*cEB6Xg_0j@wdV%mB1`5o%H&diHI)3|6HwhZ@nVl6am9BX`3&0hwpP0#{5U zH@-{c9&*|EEeoTBh8x-ncmx49R`}mN^Tqi1Ibi&Jwq1lqz0_@hv4s;u=g~>ePa+j{ zb$Y^tIGI9k`<;Y}w08T7%f;XGnrGJ>-dIiRi%wGxz+o$} zRJq(sZ1$~vb)w<|YeOmLUz^3#A=%HF8J74r4Y=l+iJZN%Z$PUk1o z>C(smc#zQfq6t**3M{*f>mfJOA$5YebLm?oI?i17ZBGz3_X*vjUDvU@TPH{^vdb<$ zmCH#;q~lpc9{uy`Hcx32JWRj;~8wg?lLQ6GE^fceJ5Sv-_5k+j{mrDv#o38iA*%&LVK=$C+{|5Dw;k2G_X`Mecru z2wk058Xpcc>0%?i^n;Gf@x{H|U(v@@bn4t4#c?MtG4-gprO%DS8}uakINBtCa2&Q_`H=nzDKLm9S~i$8hq&O9M9 zO8o9<_aSUfz&!qptC_fNVQ>O@?-K0%*#{cA6^O^l>+C)^hPywYt8aG>q+Y@8qPgs1n1to_jzi~RW!&aiTtI!{r7~eWNjx= zd0>y;0XNa_dxiFK0~nM(#!eWF8_LC33Un+ZY43)zx4XwIT_Rodj+*aaV0uVMY)CwU z`x)a|rkJKqwz|e$S%;I7Lb48DVGLV|$pkPPzloA*KHf?tAWD>gPce1?YUJqU0Q2!e z`${=@eLp(@4Br1)M!?bq#u^y{*-O}{{yMAP=(7Sk%@m}tdq7-cBl}-o`q+@>Cmw^d zW22Vz&=ZXTjjPV!Ij}a zM;_skI$Xqpp{wA@SSTc2Gj0+3h6AZy#OxrYaId^8qe0WVU%5jgutNT+Rp5fWUGkJ7 zTw^SbA&OYr$D)bR)RhtXlrQz z6mbPh=(n4zkR+T5x|x(d_N=K_uf{#EoqQewds1WA5Cm^DF5rAYvNj#tEib-i0#zEL zcI22U(#VTnQoa5K03A4Zl%dZzDan`TRK|r{XfpBB{IouFv^wve_|Ir478t`*B?xg{cbZ8N^ z*EJ^o@MGF_zfDG6wGpD3%?;;w>4D?@C-!9|7P`bm#6gbvFXJoJs-IT8$q#z1uFj)z zFel#1kJs+!?Xa2Eq_Js8V4^*VB zU46$n-1~d->GWirrqz_5I>bKbyULQw_E@Kr);`}r;Y83U{;Vup`%4Xcmti{G%nj87 z9xYE)`g?6^o2rZCc>fG2j>cmqs0AOD>wIBY#6aK4F;~%aW{mT93M_v$`xqY_Fj~0~ zZrCAf!yj5Ww{p$hD24V&%k!81im(d;mP@IvrpS7xHmQzzEn-hs!-dzqr8>cJ%fQ5l zZZOVjGrJ@o62Ic|de*yS`b-;)%60DT9gw_?_J