diff -u b/core/modules/datetime/datetime.views.inc b/core/modules/datetime/datetime.views.inc --- b/core/modules/datetime/datetime.views.inc +++ b/core/modules/datetime/datetime.views.inc @@ -11,7 +11,7 @@ * Implements hook_field_views_data(). */ function datetime_field_views_data(FieldStorageConfigInterface $field_storage) { - return datetime_type_field_views_data($field_storage); + return datetime_type_field_views_data($field_storage, [], 'value'); } /** @@ -25,12 +25,12 @@ * @param array $data * Field view data or views_field_default_views_data($field_storage) if empty. * @param string $column_name - * The schema column name with the datetime value or 'value' if empty. + * The schema column name with the datetime value. * * @return array * The array of field views data with the datetime plugin. */ -function datetime_type_field_views_data(FieldStorageConfigInterface $field_storage, $data = [], $column_name = 'value') { +function datetime_type_field_views_data(FieldStorageConfigInterface $field_storage, $data, $column_name) { // @todo This code only covers configurable fields, handle base table fields // in https://www.drupal.org/node/2489476. $data = (empty($data)) ? views_field_default_views_data($field_storage) : $data; diff -u b/core/modules/datetime_range/datetime_range.views.inc b/core/modules/datetime_range/datetime_range.views.inc --- b/core/modules/datetime_range/datetime_range.views.inc +++ b/core/modules/datetime_range/datetime_range.views.inc @@ -11,8 +11,10 @@ * Implements hook_field_views_data(). */ function datetime_range_field_views_data(FieldStorageConfigInterface $field_storage) { - \Drupal::service('module_handler')->loadInclude('datetime', 'inc', 'datetime.views'); - $data = datetime_type_field_views_data($field_storage); + \Drupal::moduleHandler()->loadInclude('datetime', 'inc', 'datetime.views'); + + // Get datetime field data for value and end_value + $data = datetime_type_field_views_data($field_storage, [], 'value'); $data = datetime_type_field_views_data($field_storage, $data, 'end_value'); return $data; only in patch2: unchanged: --- /dev/null +++ b/core/modules/datetime_range/datetime_range.install @@ -0,0 +1,115 @@ +listAll('views.view.') as $view_config_name) { + $view = $config_factory->getEditable($view_config_name); + $displays = $view->get('display'); + + foreach ($displays as $display_name => $display) { + + // Update datetime_range filters. + if (isset($display['display_options']['filters'])) { + foreach ($display['display_options']['filters'] as $field_name => $filter) { + if ($filter['plugin_id'] == 'string') { + + // Get field config. + $filter_views_data = \Drupal\views\Views::viewsData()->get($filter['table'])[$filter['field']]['filter']; + if (!isset($filter_views_data['entity_type']) || !isset($filter_views_data['field_name'])) { + continue; + } + $field_storage_name = 'field.storage.' . $filter_views_data['entity_type'] . '.' . $filter_views_data['field_name']; + $field_configuration = $config_factory->get($field_storage_name); + + if ($field_configuration->get('type') == 'daterange') { + $ids[] = $view->get('id'); + + // Save off the base part of the config path we are updating. + $base = "display.$display_name.display_options.filters.$field_name"; + + // Set entity_type and field_name if missing. + if (!isset($filter['entity_type'])) { + $view->set($base . '.entity_type', $filter_views_data['entity_type']); + } + if (!isset($filter['field_name'])) { + $view->set($base . '.field_name', $filter_views_data['field_name']); + } + + // Set datetime plugin_id. + $view->set($base . '.plugin_id', 'datetime'); + + // Set datetime value. + $datetime_value = [ + 'min' => '', + 'max' => '', + 'value' => $filter['value'], + 'type' => 'date', + ]; + $view->set($base . '.value', $datetime_value); + + // Default to '=' operator. + $view->set($base . '.operator', '='); + + // Store the changes. + $view->save(TRUE); + } + } + } + } + + // Update datetime_range sort handlers. + if (isset($display['display_options']['sorts'])) { + foreach ($display['display_options']['sorts'] as $field_name => $sort) { + if ($sort['plugin_id'] == 'standard') { + + // Get field config. + $sort_views_data = \Drupal\views\Views::viewsData()->get($sort['table'])[$sort['field']]['sort']; + $field_storage_name = 'field.storage.' . $sort_views_data['entity_type'] . '.' . $sort_views_data['field_name']; + $field_configuration = $config_factory->get($field_storage_name); + + if ($field_configuration->get('type') == 'daterange') { + $ids[] = $view->get('id'); + + // Save off the base part of the config path we are updating. + $base = "display.$display_name.display_options.sorts.$field_name"; + + // Set entity_type and field_name if missing. + if (!isset($sort['entity_type'])) { + $view->set($base . '.entity_type', $sort_views_data['entity_type']); + } + if (!isset($sort['field_name'])) { + $view->set($base . '.field_name', $sort_views_data['field_name']); + } + + // Set datetime plugin_id. + $view->set($base . '.plugin_id', 'datetime'); + + // Set granularity. + $view->set($base . '.granularity', 'seconds'); + + // Store the changes. + $view->save(TRUE); + } + } + } + } + } + } + + if (!empty($ids)) { + $message = \Drupal::translation()->translate('Updated datetime_range filter/sort plugins for views: @ids', ['@ids' => implode(', ', array_unique($ids))]); + } + + return $message; +} only in patch2: unchanged: --- /dev/null +++ b/core/modules/datetime_range/src/Tests/Update/DatetimeRangeViewUpdateTest.php @@ -0,0 +1,51 @@ +databaseDumpFiles = [ + __DIR__ . '/../../../tests/fixtures/update/datetime_range-filter-values.php.gz', + ]; + } + + /** + * Tests that datetime_range filter values are updated properly. + */ + public function testViewsPostUpdateDateRangeFilterValues() { + + $this->runUpdates(); + + // Load and initialize our test view. + $field_name = 'field_range_value'; + $view = View::load('test_datetime_range_filter_values'); + $data = $view->toArray(); + + // Check filter values + $filter = $data['display']['default']['display_options']['filters'][$field_name]; + + $this->assertIdentical('datetime', $filter['plugin_id']); + $this->assertIdentical('2017', $filter['value']['value']); + + // Check sort values + $sort = $data['display']['default']['display_options']['sorts'][$field_name]; + $this->assertIdentical('datetime', $sort['plugin_id']); + } + +} only in patch2: unchanged: --- /dev/null +++ b/core/modules/datetime_range/tests/fixtures/update/datetime_range-filter-values.php.gz @@ -0,0 +1,263 @@ +5Xdatetime_range-filter-values.php]io8޿h@ iԕޝ]'sΉlٺG_Ro;Q^_ҖHUT=,R_ +qE|" ǥ_ǗVJbZAV8BR/ATI([0 k5N\OQ\iQF(b +IVjQ"ob$xIVq /_xTm&ߵB_| ʿ+M%>[6opD`MdoJp۟EhۗJP*krݶ2M!ns۟~Tue}\;Ef}6;-6|K."Fb8edqJyc~ PQ_9cFbYOӚ&-EJ"<!С7]pB#3I.^غgq^W1bM+8PXk^"e҄Pn+| t";0'@@G#"(vb(yKNUm¼1LW٨Zpߙ:X}y_`qGP\vV:qQ*ܠkYΚu֬n M&ij&5罈'59g9ky/)[Κvִ'Ah^Ϛxij&"<!jQ3f5h@@OdYg:ky7񨟮9g9kYs{qNDlkYΚuދu2JP3{̣07z#o \7'GT>bT&L[;oOyonX֌EXJW4u)7nE]񧞜UCO 7C7eu+TlYeKdQx]}W$6EvCdEdgV HҙzVG@d"E]V#b Ua=\K-fm 7֮[.}UaSߒz?ppj)> +kg"0uskbѯY0-޴Tm1Dv!bg;Q5iم?}qݴw$#dSg3ͱ1b~*-CfD[oQ79O8MR(0# BrYs5tѐdXe#ø;5U2IZ:ɐ+ l+!+3fH(LTX1HU+ČTGĀ}~pseZ~}>bԷƽQuV +bb`da.M|h/]xoK_uZθ>3˅ʴb7aTԌM7hcO..;.P +byѻ\<+%R0"  E(XPWm@6zqdpjn]<(Is]1Sם^/}0F0caedBaYHt2L3~6%NҲMؐ-JQ44Um+:Ć!/SU¡äf̀iJώdpvu;~J[seu*cu>of}gZ`M@.5iBbL\*l8C%@BM4C}n޹mvU H;& ˗rs<7BN!O5Ttb7Ydm'v9T#CXPfH*lYАN;H/G5i)F6ub7cuoh6-ò<0hT`9^R2,"*[d lzmPMXE峐t |۽P U֖n_ēaig|W_NjDrŚf)-] tG6 *6qRIT"|y<5xWfIpڸ{l~0>~Wî}"nU]eeF_!EQ9$bYV1 ͢HUUPmKAtҡ],1έ3;'[8I.P)X)x +)2^;te/eي gb.Td\WAKo[uxԗg~i_ ۍkc+ r{ILbfUxr|ҨtŔʣIrp Ŷ&ar@,QAdȠpAǝSoM5mTSC]z]wHU Ҕ`0cX^4do; ALfiD""K,,E?@ä[ގ+]ocy{:<xuן{7Ҹ1BiXl3FK`>G +²9e63-4[:d(Y RYQWK +h9Ubm߉V@;Y^U+6#&啥": +0+WY z1Y~!_<`묀=?AQ& &`k0RhO](a:)z(2N67!̭Jꏅ~c^(-a˅W3ô2-$i'"f"]2?LKc__N,WS<)Z\!i0dN z738V0Xb_Yb$XYK5#w[Xd%W\8P,8(xlsIEo +/ Yb K 2iĘ(MxKǃDepzEa!KmY;(Z/-ovC׫9o2\8%."a%NK,C@1dClX,9۾ݛv2<ávwx>9ع }ҭ6Ø:|XS|uE1*q$%YafCI@2 aa >_%B?u?C%ϥ\jfS2;HE.6;jO's% 4n7hv@U&ψY/`4ɧH /DsŗfD\MDɴ)pX- Ec) +U (``)mA"coI-4tFB!sO/OߦD\M 4dz-f]G҇\f2Md -oI&oeGoJxS) uK3 X8(A,`!]WC5"Y)XpInv +iˑ;ޠ/$'ֺX_JK˛`Txåo=uÀ fԨ dh&bP{CP x].iSσdL'K UQjHӁaCƢdBj_5u^|ײk +:~۪n)x- ؋2.T0G4^:cZSJHoñ&bk R( gug tNsXULcG['-w[Ys-DBe|W%K%iUYf Sݺ[7@uΫ;8Rn.^r'AꛚOwqxqm1Vl" %CYP*Kl +RPm\lo<<>ŭT=wf=:ll՛!HVayToOJ>rmkktYDY,MS$Dd@bjc5L;xEdhn6:wB<Ӳ7;IF }2]~T,Qǟ +.r4-#Lv?vW!uk\^T=ȸ|*uF7 f@(RrS)߼qlWtNf]`ɲr$oo@(Q$E*Q``}_f$DNo_9m\VqѬ^RmWWF\ˮL՟.gbk=-`+FW.L!XwBbc\x8=zѣZdf6\_^aMrENq+v\C%wfoL-sB́-uh {7_|hta1}Q*GMDT $4|VJEnCCât؀3;pp SY&N7t }*ӷyc0+)W&/0ja4D \rOSmVX46˒V~hVK&_VM`Kop{R:'"* I>TxCAΊ]'H?w=sy? hWB)TqW\~d4yvՑs=߁~<)2Z% hsGSD\%yM?QU*RK #+0=aP)NAnYiy^H}g)bv4C 므#up6Yj&A5Sⰵl_ZʎԙikQ~' `Ѵ]Qb,NP(^XJA:G +- +:K3Jn!N9!:Q7RK;dBP=l2RP"oE BŎP`e)1'&ha +h98Trґ]K:1׌(}B$6 +ߓU(ZxQ}>%*\RhCr, Uݏc;]S4ׇ9UŬյm=EP5nZ&{ۉ]cԸmXhTuMm>5aPxh6=ylKLi +sReY!Ų"GzX)1xEH;?f)&<)l'GUKT#q9;BEqz9PQEPtT!"qMOF PB.id ^4ɔ@6˗ =)0k,,^@) VZ~ 5~3{Ц!ܱzdG6H'enH[{ aIIkNaHRC º Wd@()'*HTP%nS'۟tXqm>QEx+mM.G1C#H!p$SAG?Kx4B](As:Kɜ(h"#j)_PSfr);k[P|xR0^`=*P<6dP Ĭg!~H$Pr$ +>X b(x,HhoM5'/TKuJ|4(~)K-wgBsXxV{4;:TͨŹ0`u&`yC`0I]UeM(UX("FOy][k}^bPд1 +juxycDCGbO,틎 +ѼQX^y,h +YiZ +RO9w1ea%MiP#߭-Zk&=!#(SRX`)QYc^BFdVk1tWlBZ\|^GgQLa'_j0vO y*X#!@xHiT(g0Ӏ2-¯ovxbkMq2oZxU,<ZqL1َL<iYQGd]̐_I8>>>D " af)X,i +`J5X!U4=CnOѮ)? \\{F?: <]n~_V/m Q=m AmI'̴ Uxrw +IكC>D$fX`5~GL'{9Q*(*P!RӤJĎ&~XzsȳL{o$P6R!YTyݗ Ƴ[zB_))[m䕾5zRqnBx0{Iv@xEi#_1 + SMk0}`xWW5Y*XJ/8V]߿.$&.<,ql[Z%wjK (d*=;yz %xd磙xqh~ dKu6l9SA\/JX(S +ۡ18-(qΏs`,BNho8 259=J +c5#r`C|{&LciOsuVft7[M\4R]<$\0-TGcQWSg4m2,mFIEkbZANx7e5%Gk)ll&^f頠O7f]Hd,<4:znkW7ʼn2z7=2lT !X8BrYx"UWG()DX=6D֒l}2\W4 BY}Edy 02P!i"%s $W]jbۀNyJ\gy[\VsBaGw&/v+s#|b~D/^w.<}˒(\F4G %uCyEҔ_szf6>γm5,5&rn\R~x%) G%'Sc8Zf J!>ٴ d\,|RK +. bQID,Ĩer=GGpK o_*O䗉vS)50,6WLkL_';x5ի>2_5Zв^Z6$aI$=_x ^C-$e1 +|w|Ȑ~[XO&$7gL}sbO$^PϬqs4cjo.xp0 p'"g!6Ԕǹ^Vx@cZyj̲ݲύ|qܦy9`+('́X6w#΂썆a]  +a*&<aotG^;66KfsP{yT-eu!1nY e3%3".CCPb}vI'sJDAoF`9#pǟ,>n%J! 'z=9(M#9ʭQ#_ U}oIO7_nt2jrA6Z0 +jXsXeΕMa;ցxV悢uVKꃚVkӄ 1Y$Sӛnd98aJ2=rbdRRgvEr1~eû{7)^%I(L/bDX&"O>ę\S'-N{|^R.Iu7+mő|S qv+t.$/ӥj,[htS/Y_>qZu&Q^WCRy5IjNZweWFNs,/rmӒ:a0L11W +["!>iCgM!tZK/-j2yR)jcHv_PN>ȵt:a-Ɂ'pN^ X=qE:?l"CW23J @QG;򅡳,&O~ OΤ4D[>%E:C'K.*iх_ȭKx&hNQzGH +'8HЊdc5 Kw7qMpx(ɘodLkӲ0i\f7[n#Y~F6f眶JVEH)T5JB&$@:C{~JɄǖI, TX*032w½)єܕuDPufi8s$G]xpH%͙ XWڌ.$`iYSY ^xfPsaA_ Oȶh44,Uqt(vlK8Xx[K]Cc;_iA/ = 88ƄHŞ.4[g|گeMͺ$/^Ϳ| g7/%ZƐsiL]lRصb7M_B#Y脞WWL|,yˑHfW·4L_?/{O|&KN[e {MTRs5'ts\ʼ;Zຶ-s3G3RAP}7tuhۚo$^Af@[ߘ/N/>;_O<|?~ɻN?M,*Vs(6Pﭱ{[oh4f4'CR.z + dF0!O_g|RW`WN/$xڬNZVtLje$ C7vz hήƼxŎֽ)B%9F/|~[!՟"8׫>mٕyGt_:Y ^4+|kHB3S A/_‘a6 +/d =2L\H!ɗ9"411Ln`|X9gcsqT6( :#Ԁr+^I"h7ti ݻ\*E#a MG'I†ЙI=r9 |q|N(,!=y!S7/G8>zrvʶ*/.I^`PR5Qr\ؓoΎ~)\>c^pzF(>MsǤ#0"zwΞ݄S9p8a;y}%ׯ_pA`:goW  ݽ/+]8ϓ$zhϭ/Goǣ~%q;~nӫ"@5=D +qV%p 4L@(}u'sʂc_UMK\n\J_oϺ.Ǎ~{d<|%.zY(ޔ׳\5AՇEڟHhvu@1v^r/U#h2qr VrË 0lv${QHA6d2- ROg)l!GdcFǝXr`hr]8)~ߣ0ЎťxhrNVz\ ! Уx&\ӝؖ)Egr,a( ?*_> u0]V=ȡ%fM0.|䪪܉Ol3N&R[ ݲ&>D {f\G.DlL& q_ey17'Qz13;5{*\:SgL{bmr,k3qK2L#^9e+-6A1Fd8w􎧥fV/lS@'p0`Sj;VҾj`BřE[/g ]cDj0',R5؋_ M6c"ϵ Qb%a +p.c/gr8(ڂH$K~g'5 r:OzQ]óǀ/+F(vGz DHg뫀`D*tG2996 V4ثK[}GPT9K1eq|WES v8ha5"vdoiRp@SJN%zyX0wZ:'i ,$.-ьAC˻Հww +LBf45ث1--C;C\a`0"8APgO$XxPi릮݈/fvΉ&?zx>=rڜ|߿>N_9*,㋱0(ptzcCT2#qDXZ= Fi;U 52UnfAFf2ch;`GO6S9hWd¥0g?^ f M]Pa\Č7㰬2F ^(/ e\ה꞊[FQ+*e)QfH䲬BȌd͸.b#d:Z}hZ$X'Vd +NDKCNŠˤv9 'L$* ¾dKHs䘰S$hS$e_cTi.Yw"2Kk5dAtaJAyZ^!iZ 1^ zq&?Y,Rn"a@F"[<$$L? d|=vE~Y @6"0 K7)m'f`$R1 .p| xqPnPb<(L>^B +iy 'n .D¸׫$)[(؄CR))=mJw+H@ 2|$K"S\q!II0!~eoH'bk Vh:O( '}qY r!2L'6* 3H q ê8f,|Z+ˏ(rCyMMA޳5{O>.J;fF9|H^,6⏇L|6ꑇtVrOyxer/CkBu+ecO d uscaػhN + +r!œRB . JvFOz&XN-*,fT| =;4{f<KOm_8SYL"Cq݄qn; h(U<(e > 38y-_!BPMC.bA5j-X6ԖH \4AYU _"$.g͊Vݎe;Ь$nu@TR F| A8'pAlC[Êm>uyk7QGtX^0 +&-߃&my~Cc bK.eIRt4Ip;t$]7 À.4Ħ۔[pse +꿕 V$0ݙ&`'5@zWim][^]KǁK7ޔS*aX| 45.-T]0M*1RR t>ESEoޗw5TI)񛒮$G;ESN>Lpc}+]J0 \,5Ute^R?Sx.xќwXFhQԟo'Db*R"pV!8/詃++G',=Q0\u\z+pKԪ +{2%3Zv٩nkaǁ}/Wձu}}~#8}/^\\+-pvifU0Y>̱꬟۶Mqܶ]ô +۪ݣH8%r2֮RqLj!ЃNcZZYuaEaTiZ냖T!J$EL%>. 94d ٌr'#u$::njm,Ju >>G>5`_tŖ!|n-v5V +5P '@^ǻWdSTpq-Z6=pXLׂw4ÍĊ-#Mch\A-=ƒ<)4\7[feOGG{qz wvLw/wK6XT 3HH:q <&@u5s}3\B%4Y֖3$[wab'JQYܦ$,H-$5 +*aS'*E9b:1BZ֛^WmAjT?%oBoNs;g: SOҧpt*_s ϑ} +ӃXk}I#;Ԧ 2bYS&;dV'̵d$iݓ -eM5n%8zrA틖׼*s5e6Vw׹7qx/=.{ˏqJG!s& ,re]#M*xA:P/lS: 7'pڎ$j0ihOdBy"Yh;ɾ %p/wm"|#Eo&aP٢CKY\XHq`/ nD!QĔT_P.׬}q?(3>e ]_ӷeĂO oӮ0H^Mڕy!諗)1`f.݀Lw?~Bzڭn-KcdBIee`gX,0gavx/<:}K$"3u4;Ku-<[3wv-7uB}wm +!sd83[kgh}W/>{~}>?>W7kBxb*W«%|%DA:CU9FCuEdS| lچ[@sM0mf ZW[/YnU^螵kciDsɩe?_.=ru K&,h'gק@zXECSߔTECɸbRV[xgy{gy-ZShVtMTec?|P2[!Ǵ&*YYe 2U]>mB&w˜he$0)52I{#26MfBtE"CI}aټ`E)ᴸUv;+$m&\dHÓQ3?>9;=|.y|n図 @J\q&(qEA4?J:\;pa]vgW|ځ$BfxFEEV<]e$W [Ea ̪5\ :]Jxʯ LUi=忄Ӡ0':7d:N]z Wg5YYw +q €Maݚy]) +{i 9R +SOWߵ9qM$խYǔe6AV^fA"N'peŭ9+ւתj༦\QX}C'.1sL|$h)\_r_r_r,+UԜ!)m!l؞أfb%6R1m\JhVk-x|=3='7RX3, 򊖉ͦs3fͲpџ5þ<"Pczz +VJMlU c6%ZvcυhBv-X5ZQuʏ(;X:zqKI%L[$m6& /ub%S1-/X&a>T(B])IJ-9ipL1YX/P +gtsMā%g;lX`4D@ڒ_jǼՖD3i==~,|ޗ@Vʰ*j[ 3(7+٧[p֌=[۳k-yg.5I-R,=)jF4YTLeE^P0†|`tyP.jp4;(Pz^@ peq5!}VŲHQ쪕 L^D-+,\L1O{,yh% k| VKL7$x)m/q?Ub7+bŤ./ˎZGL N,[cֻ͘靘<'[%DqXS a՜f9>J~O]wNiMJRwt_7aK:Pz'.b9ę+):ų^8˴4_1;?ĒՄt3#;m1oQQH++M& +\s$\J:cT +s}ۭźļւU.;woҕ26sYS-;gBa?$ocRҥr?1q)=:0.$ ķt]dQN3D#C͹WN*,ϭ'ql2>5|4`1'dɖ[l._ƽ7Jf?)fwq.f.1؏]KKl36 M -߉KSgw "KK8]߃bAKPw9&@bu|%i/wZI'a[gǓ6U~I^毯\OϾ?kvI>9ӻDh-J`G:9^ J;ax\gub=/(;~ 15›.8(T +ٵ{v+s5~{gK'/oŰZBmq.!-2ʉ ;PY%t;ɻ1;]!v|D*`a9>Xs/V (1f_5T5]`Tt+r +R]gp +jW%XI`E(` YCp+wwK\;"1Uw +W;x>aB"o>5ʻKXiYFXΛaNVқ#&$ n|3+CxKt0. +sqU <onE6P=jGLǺKbۻ2iJR,+XB1cWtlu8c"ҸxNP H# +MP-!/ÊA%d "Zz `RHՕsV`B1l\4J|LmVi.\!0YxI!E %Y.O.8$>I&Ea7X$Qzr]sMbѻ_jޟ(X3m(Ud߯9-PaHA3ZdɻoFs#tMGʎQeXz 1Usq'+ctEBGR}(ޚdz +/AO +D#ż CA(8-4%.~0/.?cLᘑO5#x5<j +zI0JFp=5fIO[tEMWP|H\yp j~I+ʚʽl7A[&SQHDA-{ɝA;?[SlS }[m elb;.'< ֞QďCa'13!RL]n+dO`- +Be;n/z{ EK`USVa={MaKE +櫍*h\ol<6/4 UF^,Wi <)l{Қx˺/n@63Jc;Ӊ4;#-Gb0J ~3cx5ܽG38ykѷ(_̮-[6 )PTxX$Mt +]ڜd0c1lm1"i#vB|q@\3||;fgl>fgש(ҹ7>?}gXcՁ]v³%,!&zbKV3nOjyػ|o<|o<_+!y?mYatLjU.0HV;#!mDy0C">qFx&LACB"R+{.;au֑t۹ +: B\Lյl%dڐ{:}voRqxwRf{s?l/Ҳ5QZ8Gy$#^ŦMLJ j6ZpKNY$nEAWP|:%$3`5'n1w VP4@4]}l}+ Q՜<'yw{7bn*6g겪2Z˹SR%*ήY KK$=GTrKPJ1R&ghN##G KvJ:Ëؾ׊?W%* U8h`h'OM;03$S͎_L\307KMGũ/gosQF$H' 7u'5ϏͶLCe{%4.R.`2ü˲$t3[ $|h^W^6Z(N={+c#J}Fى^b4Wc>"g$ub/3CX\cQo!گƅJJ>]e&hNmŦ[n%~$o5.!P.;4|֏ot;F, +툥ف XZjnaJJt<ok?b#I5#} +?ڈ, < R7mƋn$qdx az4DC75׏?2;vvc7u3cOu؉yI*u7i)Wɩͧ("$ GadEmĖ9rN0%̐<>gZ1I Tߓ^GϮS}!PC?Ao9Im7$K5k]m:LtvZ*W# E6>ѓiYKߍ=q0CI恇Zu4#ߎ~/ori{340Ҍ 7\۰g?744W-NMz E#w3?nDhb"T:ׅ,Onrhv1 H#$n!k8aEovZuK COe+")~貺FkV$NFzlvhCBH@I70@ =^v#N\`{D:M)iMn"'V!Ԃ447]'6uћfY$f_Eek$HM&Iddd/0]aiX4w#,ϱ2:ax[8@!i +&f5"4Ï/ +qk.dhT"㚙ڍ6i#(dfc״8Ay|cljC/jY W0l-p| UM.D3Mv:B#3M]kM \#4>ژ3!еc!i:Hfzto C|nZ1郍B#4C.ƣP[|QpV!` A]K|KG ;@bldcH"#m6;݇*56:E7[W{~}tlk"4R T%ntj ׹/t ijkvǡNdXHAٷm->I虦nc|mK[Уb2FfcvQcghhNtm8a1$_"0|:>#D &NO]8,J}3_ftIGW~Gɀ& Iy#n&E=!V7/'ъ^P󧨛EV!Z7Y]Te}$Ŵ:L@ʻK|VIX40Ud\v6'{ێ0uG/{X%ɝ'B3Mh:ߞ<;% =|M,^ PEkbEp-H +AUtaH*n6CiHu9LiBCF_8Z$p:kvlTK qț>+MK ˄g2+Z rs3&`:c,xG@GVuP\#CS W!,hZTíwz/SY !no$_H?UFE=_&3-\#R/ VOT2RQ +'Bl WSI>K٧&JS|=$RO)R<+$ĤOPgz+c 2G>鋈 Gq2PhX#GkJml(_fM@F=y ڢiнCAѕ~3z=cΘ:Rc).FL9=b_nÊISzB;-BЗa`Q"ct|ӧ5p U ; ڌRdoMk +U"ܐ^%Bk5K5'b(9;~$*#&Wce&Sexѡ^81p|QOk̮Ӥ7 h +v;C=FA5,voܬ]Y  -cJó{p/+:R^kC3}xֺȷw5yOJ#|{+rH VV.罕k/l%·rNJ={+ʵrb`V.`J{+^ܺ ooK}rqNV.wyOLT&ͬ!>w>w]&'& NJ*x_?*>_HԲK} ,&iUf#~L +M%g{j/W"W\9a2rܳto %Ku[*Sl*!]bIs"%JC=uN8ID)zci΅' *Ԑ|ˣ1I#Rsa/ݔL&24 +U~[rUI4*Yln/cՋ_:" [{a a2K–)[Vᮻ${ *t$Q3ʐ#too ur!T@,(A& 0W*-# ,)?GCJb5 0orr/!__v͹/K dq:̝(IQT%pr + YɊ!]u/J2zm{OS[ :*y'`jadS\/GWuRW* 푸$­&Q~(Yy>\)(&GƳG% (EH0A*W`&F^CF :8"ʜ(tSrf1Lg!f8|h P-I^ giJ.X\' `|f]|'ƒ!$#/fBڬ%q2PI? chy*r|v-.T=f!CSAիWxu̘- HY~X Sn}mVK%&$ ʖR:S!7Ć:h-f]S^W@awj/JVA@{%s&J`o%b/ =p4c"9Ow][جRS} +oٍGUO,gTunLpg5LxaK^3{q]\hʀ0ⷰ'5QA +3VTVJ06Vx|3,vlju̦6NLUiWRCBlD'n)Ce: g]NqXϖP,<[(WTIHR͇8zd_4U5 6:z@m!1>˟g(cSPd{ 8AUӅҭ#~AT9}XOQRu@*A>_"4mV)SBxAm 0vHQ8M@;1싆@x~;ų|L^KamɋOd0ƣ h}9P[4V(,—s[֥KdQ݄*<rvVO[b!pPǓ>{Ĥk9 Ӯ#ѮB$\b1 Gm9۔ ÑgmC"̇F!,Ḭ?"w\oFtNm +<-oVPb.Բ +VnSǤLC&@"MqJYG&F +$B=ID .woBJ`ERh"ݤLHIv5)dzpLKB'nXlg-@"ZeDbV;y5T,liO߲IfT-WA|vI:6*Y 1F!,&o[jJIÚOjͧfДOx">թQO S̿,=APxϲT_I#C:`,hB²y],jW4MJD.ѿBΩR]gzA!ܝF!ʲ(Έܪ䑫 '5 |NbSDb؊M7Mezd:ަIoN.V!MΚ^H0IҪ?Wa~Tޗ߿?zGAdՅexǓ_.S^Φ,OyuBOY')DNrJ6$P! E&$GМ$3b `ʘs≷ϲ5cb +&eeR|zї +s柗tA|K"{&eXyz!Ok_c۰izfIidhe&DC%[|c{s@7͇-a@QgduxG:Ş&YI4h);Ad 'zkɧ~?;N~:t6_Y4;3k3t:xxzuz> +AzBvAXdQ jU 4 +D_jz!ը|;Ejp tPW2Gp*]'U-{ʥr|1/_r9˚ZJkVVU c!K,FIi)it|G59Օe>8pqeO :*Y:/əCU#>w<.|媑lT+dEևfJ% -#[?Ҽ~"4e}lD |LGEĺBB +I,}_SDT?qJe8W+ER9^ mif"8(ɉ-5a#܄}9+yo_wEuFEMDO9+UY\YCH1RtA(ɴ%<\Q~'<"BvK(-v*{±BeI: &:VpVDlN9KV*[)8:朹b)ZL^nKC3Yjna!54Jr DITeRܓ0 uA.[2^ +q.s=t vY.91{"uH. u +N]n~OxKN. -tqT ]Z˃b4TW x()9NVDҰQuQ"8 VꟗGG Up2wGk K]‰O7!|H,ڎE 1TLKrUƬ]Κ9s4@.t){J+1E$y$(FT59 Y0qR+q4 XϪ=[uzlsaTE$] +_JK1Px|q8+X92[o,qwWuy`On.-{`3}9"sl=I`%=&&xAɧ S dn#mST`xlVCue"}2$V !4B]Z.cID}{:h86c3- DoÕӊ\Ni3G ATȵKs< +EfSl~sS+iF<`5M>bKJr1alflYi_GB"'BCw30̠ +-E&nc.Qf2[b'0ɿ坉z%D[i_AwQҁBYk=S\˚!y浶絛[ѵ@ⵘ6u9.cM¥pz|-FwQ6^Xgh/ǟckX$-1dl.vMWpcfe5F`̛͞-[Ȋ,:-dے6 )BLFz9NE9Ib[3ɵEJV++Y ʧY&V'[Iǯi=l&k?M4|h!:|'.xٚP6Ibmm4z\5p``oij|kN[vٮ"}/Ӳ2՗P̡I ̧ 50LV  +o-.N7煌vlCUpxC蝖Wwj'ZEiѶ.jZ|OIw!k<;w);g]wyGL*4Hib֥<1Yŭ_&ٲļR`C+,( +=9C8'Yϲli>"fsbufkA44033v"k4]_cI˰NaFeo-,òVd60"̤'W¼D|]٭LpreV;ݳXuL܇eY{ qV4Z˩ ^Q^U#y5K^o)b,Ps +y'vWM|$Qq-{J cPP&_Kaf|ʮ2w)121S,QZSBa /a;q}K`-ݴfc᠓>xex0I>]:!~Q0a-]Aڢ>\=zi V[8؃w˅sP,yB U1jf(d_s4KqJ쨉H0 +XJ1N"M @rq>0)YBݢ,ǖc0G)pk?Ib+[w^M}dv5iV\x ]qk>a + Ko40VJݓMĒ̶ /n"$<)mT!_ѱr5cU8nF'Ej<,!>!XHŋ8Ze4쳚Eik!~c.|hN.| _BoɊYjjGNC^wR敿 R^wrEj^&#X&Ơ ,] =)Rʙ^hE8c1S+={D^hCngRC-Py`Q Ր%\'xUL="751S#s%{OgD. ,wL7 .\c%QTiB=컪;YJuKJ$q^نQp%]Q-𸗊RZ*|R.7ֶ@%"֗k]$ _L"0ET%YrC:Mpz > b#&f/Ep2нh(17iVË CGI/ՑGՑGm&,wҧOjt ,7d>+K=A._(j1wBΤ9'/HIʒ"0@) >1NHXMtAiIթ[bm2lzՏj:AxtD±^ ⤡^6cZ68Opu?eȬ.E+>Pp_ Pbs@Kc4p!vS^<&S +s(pOĉp6)=Ib;;Wfdedīym>`*mrfn.L"hj4Fm55̋:SP +aJ%eDK%!/5h_?KJXrwʣ*I +4/Ї59pˆ#Ъ0jC2S5yr}PR{|=qH@yTjPmr +ՐJ>e?k{zn^5XNYizꪵ:7|o:m};E$3ldΥ↞wjioy֛%fjP/-.vUhܨHV.u!::G%*Qǘ > 3)o}uz|KB^z@dQr!8:}vJM kZadN–I蘋TܟSq*nT|C{XnOqm0.Cj Zޠk(YPSC̤6lPL]Cst+Gbx %.At;kvҸimild;`1bvz.< Ɨ=a&!}}}lEzUbE~/2\5(aڢUzk{-+%z pD4LjWQ:ҒQdݨ&FJU`]?n'7o2S&j)6\YhЅwL>miq/ދ&e&/޴5hdڢiiTk+{Ym{Ty +KX_xkڪ6:'>0Lgqu jk5& W9/r\嵷M^ ߪgOtY0{9랾avSZ0 b6ĸrByJV6g*(tf~YB:R7qV%o ,q㼞K2&jQ*"j?5{Vs.Z)(/]VVGnEݚko[+n!"-?7A p aK8*4*'.T-,*nG[Kx ]fP0%ގVEj~ (~V̘ܸeIYIKauPiB-+nmQsׂ`z)MߐVս] AnGн)dB]rOQ=FcyyYf'$[6{!UrŲ5ߤ2ܹ\5oTzF("I#$|XqI2wOn/`b)97xZn0-nO_Zܟ]vLVM8{|6 eч?`% ˞\v Ol9W$h+)^?<9xD8YjJ_+cKu04~~#q'tZ^1+[A˳ (E:b$G,4!` T؀N(9;C(gDmRt8퍧PAfrpm[җ`}'p$2ج捣+?+h8|ݜ\ĤFEoĖeVznQ%Qئcv~bٞeInS;OonowمG2;9<?y~pOܦfXŦ&ĉEahfnہihϏ|&?7??&~|'x8άH5L 훝DAbvk'^`[iv//qM; |v>oq-x/|]YGOᛓx~ 3}=t 0c1 ?Yg{c#A|~ͯs4sF^n^S}{|%OzdIaqڧ72ۊ3[/3RLLO4$='q~.>yoij|?M>_k_FceR%DiqFo SJLO,=1]NR;4E[iR;7kwQ߆/6ƖQB݉s=/B+CgW(uO 3N4"[fywugW/Mwz:ng7]W<}q"/CpH82Ѷmg[efFfeqYq^GQԮE6@?ijl_~~g-ϚEDB~]aXN(}@|Fz +RӃIxy&"I5@e":K^{go ?Ž~<$?>I߅_~3_{GNGeW}}_^ڿ}]W;jlr(} E"fie! )~vDzǮyH-t(Ek!!&$PQ( Azgaf?~~|Ne9}9hz`F(Yngc"CIt ԰ )7H%JLf2&'$z/֯G_Hmf/Ka2oI6hTR7>aqpޜx yH-A$qH ςp]; cʒkƨaB-*ч_~y/g_޾>:%돳l|xhC08qvpٱȉ|"L?H3џ~en#jj&svߍɛסK/퍟_EC뷗9Շߏɤz!?}ۋv,;4 L +RgbIY 0Dt^3?>Et'S_6{7㣷.f+]n[W} +Vjr2e;"J9Ugu6;-W@cJTHKNyyyAc!AXI)?$. h4d]kwmw,=i[.NvC뚝ݶguȳc:3Z9X }M޾'_&vO/bؖv=@ 4!nV'mmv=;z9gܯO&:|o>>z>?{|Mf?yC:~)Jz217bu-kݐ3B̟ +Vg6a)syָe7}z<~|:~ŇϯvEuŴ }m'z }%a 1 qkg#8qf~oxA]F=ZV|a !Zsv [rڦ<Ћsp{fձ߿'&%_ZbX~rv׳b{=!m +< LAXlHټvǧ'7!ouGWY$=߷ډ؎oz0N㆖;={mqaic's>t}NF}"?&Nbgr2MDkAD`rZ-`w>V!< +qDž_l +qmo{}t`>D&ޞ//f}/_^ڟg^Z9NY)NVppkC=fi;EAw5&{a +Stf/i5vi=jrFGJϣv=)|~J%|/.GJi%. ؟FE)%'l<N +)Jͧ4sS +^Us3 GBx^ԩ$5?!$?SMզ4A,FPiXe*NR%.m%32@ SK$% !ĻEH +W`Ȯʅ̱4mi9''rg'7?@4?Mbt6ַYQYV |~rmF(jk Ob>E, +EcR!BɈ&1LQeiBc*>%Wu"BdAE(K]#ڎH)7zԈ3BkCcdt +Nfp!GQk˜<ޑ"] TIf5RH~Jr1s˲ D~,hȟ\Z2e6eiW(P^Q& J&՞PD|d35jC,7A~H-dN>@HQ6mFrC8Nϵ'B_ 4bU^蚍4h+O,N":՚Ͳ2Y8U31i^7gR$ Jk^e\UZ$=L'nܭWn<8>G1dL ˙O5u<.e ̪|/U!Д'IS +44~T +Kf0@R h?{h>&MbHꕥ!ȟY1'-fER3{eiB 2\$ N( +噐jӫ_^_o'O9߾M&er9vy~rxMBؘwZx@ Q+Np> +gm/0J0h 1^2R|.VWko`e3w`߉90IhTZ I4 (\ä H@O782M lIbdU w9p[]n6x~r&qp|g]%? 0H)ݠd>c:h K?Ol=c6` &]a]*ucrsZX`C%Z/T,罠HJu~4H3h +Ak4 ur``iW4>DQN1BƮ+l[/D| +e+`O{تB<ų`'I^vX\+01O-wVzeJpw]'9~<"ba>XC#- o y$A˫pq +(zYEܧ|=7*ŭ2ş>Xǯ>S{nwa/ ɍz"}JVG^ o]Uf?'~պc%"-|QmŇ wD|$Mxt +$6^ ]f嗄{ޠ)4ܘdV2ç4^֊KVk.mF"9G&c |gݕu VZ^o!]8AQlXR~9qZUF[-\]=Hg7ku?]d{ -aOvO@!$1*` 7U…$Hʢ$as+JKk>^X>4kYWjKEgZ":lYntϵWS_ad4ga1|1%1/Wi&QuǵB5a[&$2j{l = +Sf(o+ihɍp9p\ L7~ yV85xL`yzhjՓ,d9$]Ozթ'Yzի%YzmqE#-2+jQvyĺV_Tmj +aҳТ?yqyK3lG]XL:0X7PrnA֒/,q0 ɉMU]r 8F}]xCLZN +,(bN3AIت\gИt44!Y~˺5 ^X6_XKzHZ^te j ,NJQ>M8r +8#z81ǭ C7?pV)Գƭ0kV[Mc +Ue7dZ +He0KUE.a)rGfnHClԤm@"`T1wf%%/\7wo؊nvHŭ ;9PW:)ϻ E|:ﲘv? J;v$|S٦$0LG6W=)2-qd&<825GE-bqKevDLUʦzT3mNXDŽfH^míڡMSNzנێmjvnf)vWbW)BMCJ8qˢc )*Q0 -1nn9<‹8;wuo;`d~ M@NY[\blH ocņbQ0dq2&;dKsWʚs6tЏh46\Hki @V&ME1?1Wf cR.xuvMsO~^6AƊ\HnfUsFZ$=Ŋm][܀РLycoNJ8zՊ8/Aq{ fqAТ16O)3mo(|,rSM4Ik/J>M@ +9Fh-< 5_l' mnhJ0I#w3r/]7uuDȨ hĎ LV +TJX %Du!HM!XJ7gF2E48)iZz ++RH2^XԒJaM>& li\qL2I- HfzF`L܅FwCq@e߂ h,rœ\[zS٪"H.\$g! JmwȊ8*>RDjWnAmM ZjͲX&V=\HEȑ|&(ˀgq*Bl8e!$P"' Tb׺ߕ1%4b'C, +Z¨7ecx6&_'5opztꑒo Ƅos(3W@$\,t'G҅ڎ.]Kez{VђDVVpPMkD-kMd +lLT;p/F^nPt4}{e;2205bvԫ/,v=I7IB dIR#ä[3k\=)6lݶ[-%46?_M1ˮ龯͸h~PZΜ"WmL'2 A3] rhrUncoۚ-X-9US#@Q[52 MF!7%  ^SVQBn7ԫ`$d6 ok1ŭuLp+bЊ(5x[Oi9ك MUІNK&^ஶIV%%.ZգQH.D[ 7 q@"?̾ ,Ȳ 6qf[W ɩwE1q8m#I+Q؊Ag>[v'ΞQXl\olM![~ +@ vWlXMꅪ*=qI S2p,?3l ^iaE"fF0w_}ci}4?|q ҧ`C^۬6N F &$g`C*Ut22.{ǷvD}w1BHC"(ն%42F:-\oum7zݣtJ:.n4^O&%%L/HUR3űbc].dS,7=-|TWl þ~? :PfxϿ~q͂_ki=ah"7'"*nnå巇渦[/=#!;~ua<ZJ.XjAd=fb2u˖bUQ3`!'oo=-rhM .VݧK7S\XwJ'3 \}N.}Bn'0z}3_|8/Ɠtя/ Owvށx\0xsVv"{׺gnOb.W};g) +':OŖs|! +}7[9/cN8s tb*uF@ f*KUj٫E,/a)=x ךM'oތ^peYɋIϼfkYK|vmڸ碙L9ϳ-),3*mwjhԈ㙩F7DNj48>* gh%hu9,'w?fBLa{Rvs Iɪ5r d0! I d`/${Kp{f ix`C^ӷe#ld|t‘׊VSvQ J>ю +KK\XN}g l7G9SĿUD՞g9ؘ ]$;C2qN2޻rCw0 wfᆰ{e9t/gkG cz4! lYyƲ(SY7nkY-asl4r;݉zRx("ɺʺI?{F%;#Kb7ÜҚߋh634qզeM_nWjmmLNp9ߠU0ǩ"v55p] #Th?s@)C Ӕݦ_KAg_,?ȿ/;WA_}RٰB|'q|m: +t|T7/K>'ן_#~Ó卑UA +[{b..Q@e#풽?oݳ?!O$GZ\nhzI:?'C@%g4 +W^^]XٟWKZFާ%hG$Y|`vslҖlEDhЊ$7dKoW %Cһ<@|M ICgN.jx+ 7]#e-i X)ot7[7B7 _,26 ;V Ϫ +*p 0 ۄWs{ DaFW0 jGDu]j_|(Vo#>}ɾPW' aOBoB??ʰ[6[ƇsK`.rY ]jboqŕMQţG*PfE_/x!OY*>)~]?ӬK/*,WSѠ)NxUAxE$U|=2&^Nk?t]pA>~6)#iY3|DŽQ }ŏMNb~`0䛆&_5AzDQZAͿg}_{M6/c}ı>WW!oZCT!.mQSqRr +S/±(-Io~kohsR#o;dh4X b#* %TkL1,&a`< +غ!4]7_ +%e(Wl Z#Jly'%bc_ho8@&1  +#Ber" zFJG2]♉!*fXh={f\S^J2jL+A Pld'"[uͽuC՞.%=Q8;#9[XT{D6xQBHQ3ĥ⡡᥹Ov)'WBi8 Gn/;8^fxQr=fgMZKG MsQDO42||nPoógS Z-MdSI8@1]H",n4[Y^"Wl, p"oQ}# d*yŚNhMdb/aW.l?ُFHO/IlHw"cR$ uC]^EL7T.ӲWR_ܠ4[oH!` 7 N'>ScJawJ>ٔ.)iLNЯT mz_j{lxtSZ"`)G) +S?q}@Zߥh;Ѝ)iϧ"OEDLzCc37>帞G)) LK>e{^41~ʔiA+ +j2L 0(`)'iex`ʉ`Zbi +2.r2r6tY~iN gg)P $߬@ +?L AL 1)t0O k&S z:QEbJb*:y(cZ@ӌ5"mLEޘ1cc*DLKQp!N Pšekjx-6C!tZcȁ=eWtpரyC-'?yOXKgfI(^WKrr7*a5Scv1e9CtMJ?กMwiه;I&<;~\sAx|QGaD&yT- +.y^)h@hlY;}()ElFoTDMRp FxPUrjKZчá mDs%,Ef\WiȊТX^ü(dgI +ZBL`)c✞z ߙobkI=Oi;9)&\ѣcjK5QE 8 F4o~O*Ju:95E+ٜM&SL`Ayhq jeZ |֊C6Uһ5C7!HiSڡ fja{Vx1 gifv -ͬ9bh6E R飉Ae>~갺7 RͫN1h|DtuXQzޛo=\DpHMLHI= tAHX hwMp>4۽ 2EAI]3dʴ ^s7%'yb$oJc2xKRq旂K840!JT!O@sgSf䭊+a4Vr؈+nTFjţ8Q㒵Hi{ԧXIft;kg.YÅIs;&%}[vRQI=p;99ф=rh䒳<)Xu`x A;RRȜz7l)8bIJ U +Bρj\@&04{@Јq2 c/3/ZC? =Tp{s"|w-%;k"aug8qtWq)uB|BG: pyqPE&x-vͳ$%q!E:Œ&vFMh2vf89X] +:-oFrCSWe!"0M :IK©M Pj?qQ˙TCל< bM]`J561aV$gdHkm5\^$3@2]SHNq[,9,TsC4mv&:ЪI>kq}NFMZMv4 MgXcuʚP_xAp<+ksDIvI/T%gp1 tLYħ&ӝ&N U O/XT|OO H±xe^ʽB=Wgx>~4Ywkw&nan27u65q?&H.&c5bwVv3M0hYl§N;q`՚yY0M۟,LS~@ xJ>́8WaGS]hE@< !$I$txJڍ")9ƴOczxJBB^xJNSRgEOi06;!PIFq}¨O)Z4뱠Y<*Ε5xJq)0(}SB\v*G xJ59".SjxJLxJOOٜ)MDE^/SXMK*=@C"2GA[~j,6D._Aa\ K ܌ڈ#>X^ ɍײOov/ނN8+`&YE}9܃,e6B?&o~ EAdz`l P'7NGu O$\3҇wJygl/!1a $H0XH:`m!fz}3_|-.CpLWl]_ߥw!qxA J^P%AXHQYJbυƶ.(#c&sR5LX-6{.} *֨1gC}.̕bFl$MɂӃAxt=.أڥea#g Ӳ,2cGiYBQa*%<,y+#):+‘: {燗SZ`Oɽb +Ui +uIϋ9aA Ƌרx]s(=#|KᛈNS5 h0pRq4"TDX T  ,A -Ԭg8 l%ThJ >9\< +"8k TT6s.-tsu^dq)bɋs/h[δH &oh("yFGyc9jZLd7k`gsFsV;J^r ӺXo)͏ Cૣ2"XbKB @pܓiDCCuD y}'1>FONs*y +٥jT\(V\(*l E1NφR i! +7t3Ks~nB-ρ RqYŨVGLb3t&YI0Q}Df,%}qt$vJ*[7ԜZ?0[bI|SF}ĵ;3kDh Iec|V7wܴ٩6NO*j()`ʡ)5dFu"R2N4u}_* nL>bl.?qҖȨ̂1FU"Ɏ(pk7'R2[i=s8U1q&CA6Rjmy(6y(Q}uro ͠#p;8qsOnЕ9lT*J?h92ձS w_t# v C6.KS5)P|5<#bK@ a޴%&%H4pXzOG<pސfO"{~> rA.e[\M. +j:a>Hy:ARNn=8f^H5;"Zok2ò4ul@pu_ߊ0נf8 ]#Nai쪜f!ti4vqfpƎ2SAzÐX.?̰3 ezmЈ"lo`gIq7YOF,@lxzG*h?X.q)ڿjA͚i04n:W|  C 8Ƈ/Kw.#.`ɼWg|C +?[7>٥Kf6}=;}VɝLE07kcE7 @"&at!?(m@tLq.t5+2SH)ExSW;,S5S;&2SVgR]+XmvwqZ;sOs8 `w_r";_OC480BW B[gBmU: @}x[MJm""fSd$8BTwJn&Ç "+l=vPmJYbABxα|UO,.XPC- 9a=MђGEPɻ~DwUDω91МXq0j‰- N7]S jm=bP6c@sBF,'_ nNr Ys +Ɂ? $GofYCXݮ`>} +|8kSĩ'Clj$lg !sv}@_z`-9vRN*@#PLfT#Z=~ܣ^]Ộ{Vz.,5@'!c 0Kz2c'TSl3c3sD'v5F?/s[&O5R9.&A{/Qu;E)>'w.MLl}Bm^l*O\>0s}R6Ke#`jByJӨ6 e\1G42$'UZF\*n!xt+yubфJo&>}'7O*X@éA}@H 'B)($E ce_DL-*U!g|\-]l~GO&PG)B-?2L5]ܶ'O&#O,ӧ>=٥}<>W+hNP)ZfT;dGƜ*JOk`C;ˇ^pbҖB9ω|O(*lNORbnk٢uj$^~/VK58%%AA_#/V>/J:Q"!pz +oo_ ݣ_G].K"gцlܙR`I?HXyI|{P <)<.R]RȷEN1/&VBv g(T\RU8l~|f8C5b)8hd &/R!=eKZfoW-.J(E\QɃzCɃr-Dt:e`jE&PAXX85oW|2bO8qf4q~Hձ$ьq& !Z.Y:w^3K=띎f^!Gv#jL5'4+nyt{r NFl'`pz/چAM/԰}h}U+G 7g0msޗ(Q~\ҦI߰'`(m#Tq~! iڄ]'G30;^^4kR\dUT:?䰭Fj%.ٶX""<\0d}"ĕ0l 9 )ȴpBzWp>gPƴ$9'IEGˇhMՊ/);ԍ*z##ۧ) A') 6|J#dg*sk'?Ée&⤗kcxzCSd'F$Y@2UN~ haB*4ʻoj{V% ^JZzeP,-@FM8`tdüKw㟯KqvbZ"}47%STcg"޽hxC@A *ĉK,/ +Q΋F*Ma"Y} +BzEUxy&TL+'f=MڌҌLۓz}q=n 0@yR9 T:R4j4#.}آVpKcU{N_ # ʾ8LEN M uвy=Ba49<2zOsOxtmNyĹ {?u:c_0ZL`L.|oeAdzl;&X.~;r%Xt[)l&A]C//>g/@Ly.TCbQ@، )NqBxǽt[^!Ga0ˆuvs}M!&IRc13kq!d<p_;83J 5143e,4Yrd6,irO,V ƚ_%rOOBRvųH`I*@ǖJ{Bj E[t9sSP-9cЋOá|_SDsn6֊;V6&6$WaLxV,RųR.Sno{ۛ9sp8x7AFL5wbmZi=c%XݱJouL@⏝1//@eJ3 pgfߪQ97'm0=$EX?iHv:'7FJk^ƃQ_|o bXw"ys5no!wUxa-VB +̏hVJ')cXp9Fj;&! rNErЋ@/rz^T=tQ9Cszb#ԋ8Q/"󻴷qǍ={gŝM#j5lk6&2'Sclc|Wmo)-Rؕ2 J% ԄtN)CH{E31AEd5Ṕ|/loo=tzt qI*šHckp/!0y5#פ)Lˉ$^-$)!:NL+oB]9Aw$D/Ia Ms +G_^RpRZHWA5}yoaUOmuo(§ f\;j%NK4~s#s놉'=HĔSe1]o !s,nXI"t3ٵѠg=?F$8}.Ws5BY(r{ ixϴw=akt!91T6F +6=;*$F>zPOR:-D*@8,Oo_X8OG1cr}LN\9W*&f#+vّY -'}:-ޫTFbq'd幣v1%#v|9?x1Cr b^dlYo +H9>bq@2ho_M/GcƗ$ T@Y(dex,wb7?6#v@q8Sy˳XlWį==6͙{p4h6 k9 h}]oSCw/Xrhn5z}I& 0z~PVIp1CEG71<*d(3V7g; 㨈hG/Ud?_& +_a=Ğ'xdw錤î32/c;w&Yr<ְΨ.ẏ2q>8ԇ sœ?0ñ +`ɼW7|C +?[SNL~m=Z4{V}r`\$CF 'ի>m\9!F6w [IB(";WJڳcXNo)}*#/<@Y*#Q'K?+ Dg? ] h4؅M2S,$0<ݯiOѧHlDz~,]4ͮSwR)pF7Q;#=rWG,tm ‚+P/d}54¬tqf BvZ_yEQJ_z5tק%o{Z_??I7u[rw5Y͗K}auiGU5h& AiEݡgWXVC=Y>e+>&%|:Χ.P/v@z E}kNA_ lZhH^O97 $JHj[ҘuW=J=3}CsjsUc-|ns-fz&nޓxcò|}k1YT@cاxC8[s gPصc09+t=Ɉa:A?ݥhJ?滻n/t.@]7nZm>Wqcht>ydIY Oz7xb ^&p 2P|(nڄ7IDJ/%On+c{"SMeuK\ܦZ0>XP9[]|.~,e(r 6Jy؋L@md@{X4m's]T6|) gqƆǹSO ++ k&!=6׽hѿht5ZXijNx7weZ pÎ}tfhɛ.qAa7~YӇf^9r0F7/\%?xb>:g Ktx^Y'6ڽw1D=NvnVZN޼boDq]'8.xmk{ɇ V c9)˚hh4@ &]ffn +7maz{w! ٛh.} ^z D넁ɞ nWGs'GsW̳e46S07q\6m|efFః܍Ģ}(躷\#6#[8ʁϴDy͚WM1 7?\O#g45wMВno r'.t?[#K"("zPn&ХBFPIwlO~|_ނ4VcPjv'43 "0R/{9 Nt4[g^LN¬zYVEu LGK~3cD`K㕷{h?n^GKO%,e&,wIMkѢ[a~3dpCЗ/(Йf?CQhCL,㴇{' \}h~Zz6v."M jGmUsj;Y-+N.EŠBXqB_y W[4޺0FNWn|A<+Hl(gZ$'RZ%yX.w^ a}fb/eM[5Zt$ 'ȯ`A K4Ry=i('oz7oĶsS[Sά)ڹOe6n;u`5穿*.#9}*;NҗG)hzں`K*~B1V9+N΄寭,&K9Zh dQs]:fФݚeBfZ*ӎh*g:˱B 93s +MUKLu^_nof/;0VMC. THia;S)6tˋӫhԩ'%oH+$Gy݆Jva7iFҲO|Y?qƬ +Q%9+DK+=I, ag1^c^sOtSfil* J,o^:u)6WVeN&B65K,ORohrW_R|Ӎ<\TThjGkz@W $J54_o:2ę H;nt7s4}\G/^=o֫:V9cG"5\Q3}'cW'pM˦6sz+:7-XTNin|@v»`gV {:E{ +j8_?M*MAvkw6$. l1GЕyPޑ&4BYj"?Ebzey!P[pc/whhDwjo_ o}}B4ǠUnXGK~ 3^b|s+˶uBy~fM} +o6rR̗c _?u}Px/zً^ryu1_Aa>Q+ 7u5 A dِ|mR<7[-yԣU%t4t%r㋍w|? +CjA>\ >F`l4j^V ^kYgT a<M[xg?խlǷ@ zNfv?E#U-e~^fp9rWt[ȬŔ@i&h nՑ$T%V+ 0[@HB]zPz}d$X4d+v8zQ6eH{TXn d H +>l[|5f vc؋o)'$gW.|/M(<%u"$p-d=PQxKٙC}XRw:a<3C]sCQXe~lͶ?P(XPM-=\1HRPp)HX-~ PЇ +Fk@ +p,!?bc9*[V:J<6z2^n߯g ߎvn@gfqD=QշmtK;K[6A7_S27NPAX[yJq{ *oyȀ_st8-  R0HLnUPO:Q|$cyT8Dg4P +dZORPBFigj?C]Cˇvuw?=(.Ld|2/n{Tc|ؤ(o'Bypx\R:Qk+P *Bqzf#(nœ9*eE)A$,NaG RZmA$d?W/.}}9p9y3괝qpҍ7 Šsirl1G9\4: +4PZtbS;k،! Z-yҕsƵK pNUK$P~M9JF!L)DgI8`u k~ݥ_8{ >~4?ǒ2d-7[Zm^#2#'%'rLJAsEdZ0$ *'l@84SaBlP6(2?f=x.873JȍLW,uQ)Rc*JQ*rT姸(H 4,h<:JO0!rYт.t.7rߚ"xbB ndDNf}OPl\' C M0`q71E6y*qΏlGoY O  :8#ЃGZ4֡e-p<'GaEQ1WwDr򮠿pMՒ%t/jb<2<Ϙ<#/B @tAmp" EwG|!Cep>b=`ʼn􁹔hdޫq!)wQ5.v8"ާٳїO(?%,y`ݡ^~yKvH"<(k4g):Hn\Sb&`jaD8Elrt:: #W"b""ql\u4;:ZhaB__(ba~`˹ d.9ʏݰM$9-_RN '^_&$HtKQ P6ݚesq⛁4/ZS)` Wg܊VSFÕ?/ fˆƈ> CDΔ5kEm 1EB`YZ)s^uq}e1+FOUƹ!Y:GelY|m4Vw|=cEt 3 83A]̓!# b;]fOER]{M0T8o c4,D}+ɡìY?DXFʕ6`.!A 8ӖHg &br=\WHP*AH1c3/ / :}"Fb *Al'h5|lvRJ̤$fE/-<`cfk$HPP1w)3Fg2CqSfP;_-. ׎Ss mSH)jKl +Hv ^sf86%hk^R𒂗1CzcƠ1Zc`MLX!Alu{ :Z3dUtTFJAGi/xa +ܬ!J$fI-4Ï'l "zGsG(2CP(Td8i|I8`b! j'JLλqxa Ea"H8JKFs ?!#k!OYW!PdYT 6"CgPPje#8Ӝo}ER$RR4fs +bRk)oEFٸ$(#ŨLuTb q4u1IZ /T$T\l@A™߇&yMъ6Ђh5m$Z\`F&_qe-/nyqq[uz^:U.N nR\fsW+){ɱs^sڎղ@J޾7RyKM9\ON99Uo%>s"F}וs^ǎ!h2`;o $פy/x91Z"ǜ: pdʁ){AD1o Z&xCZAU+;ToGd hە1H, Yy)c}<́Ed2Fk2FXە1v.]/e+ԧhoJoH.. &Vt +R'8]y]ϯt[mxrO?Ŝ*ƚ&rv +si +B~jx-Q)xOи2@ho+M^eQjnfpV-Bz"IRJ)!:xW3IpqP⠶s$GSv[ ],Dq޷!]l`"7n8l*  q%b+mMTڻ(C~ uha' G4T;^ =CZwecLlWe%=]?ۿ-M_/l|}ўٲqُ" ?c0-w~Z^B:q W:ЏʎܮIWnVwb;/(QVݧއU-ǓpdA\hB9n7ty/S{%_ t} sf %gb2NgEx[WAs teu۬657GC^ToA8.mbdަ+$B RJQftw?uxQ9cٳ}dz6_F{AG[ָN9{oe`vy0.dBg|P3p>ŸI"엇ʖT:@ [mRPfb5wg)1#!073 +Sݹ>D&Ca~o0ݥwq/lfK0wOd)(u֬KupP0\ǂ`qܬ&  +!L \æ+ +Ԯycyunu67U|,"De0 R#to,(7·Q8WqWr\0Z2]DQ2W7VP@qc,.mJZÁfR +4] DK͚0ǹ|P%WM0e^ҝgHVJzvr6lUw20xC*x#W떚S)7?!zTϢv(YKqk"G'z{Rha6sFfecSOU_fzb.\L:cv~V"[/0GbUOqMԁ՗A N~k53)U?%oW7?6.-i_s˧~LJ +g_gFROa +p?wۇ}[_1hcUY~Z]u|6߰r{g{AT(~I,`Ys@k~j7EU +O^GGt ʙ#tkb~9`[I]BJeHC&Hz)v`xBS + \ No newline at end of file