web/lib/Zend/Service/WindowsAzure/Storage/DynamicTableEntity.php
author Nicolas Sauret <nicolas.sauret@iri.centrepompidou.fr>
Mon, 01 Jun 2015 16:51:53 +0200
changeset 1255 d9ecd16e7bbc
parent 1230 68c69c656a2c
permissions -rw-r--r--
change visuel + false video stream

<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Service_WindowsAzure
 * @subpackage Storage
 * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id$
 */

/**
 * @see Zend_Service_WindowsAzure_Storage_TableEntity
 */
require_once 'Zend/Service/WindowsAzure/Storage/TableEntity.php';

/**
 * @category   Zend
 * @package    Zend_Service_WindowsAzure
 * @subpackage Storage
 * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Service_WindowsAzure_Storage_DynamicTableEntity extends Zend_Service_WindowsAzure_Storage_TableEntity
{   
    /**
     * Dynamic properties
     * 
     * @var array
     */
    protected $_dynamicProperties = array();
    
    /**
     * Magic overload for setting properties
     * 
     * @param string $name     Name of the property
     * @param string $value    Value to set
     */
    public function __set($name, $value) {      
        $this->setAzureProperty($name, $value, null);
    }

    /**
     * Magic overload for getting properties
     * 
     * @param string $name     Name of the property
     */
    public function __get($name) {
        return $this->getAzureProperty($name);
    }
    
    /**
     * Set an Azure property
     * 
     * @param string $name Property name
     * @param mixed $value Property value
     * @param string $type Property type (Edm.xxxx)
     * @return Zend_Service_WindowsAzure_Storage_DynamicTableEntity
     */
    public function setAzureProperty($name, $value = '', $type = null)
    {
        if (strtolower($name) == 'partitionkey') {
            $this->setPartitionKey($value);
        } else if (strtolower($name) == 'rowkey') {
            $this->setRowKey($value);
        } else if (strtolower($name) == 'etag') {
            $this->setEtag($value);
        } else {
            if (!array_key_exists(strtolower($name), $this->_dynamicProperties)) {
                // Determine type?
                if (is_null($type)) {
                    $type = 'Edm.String';
                    if (is_int($value)) {
                        $type = 'Edm.Int32';
                    } else if (is_float($value)) {
                        $type = 'Edm.Double';
                    } else if (is_bool($value)) {
                        $type = 'Edm.Boolean';
                    } else if ($value instanceof DateTime || $this->_convertToDateTime($value) !== false) {
                        if (!$value instanceof DateTime) {
                            $value = $this->_convertToDateTime($value);
                        }
                        $type = 'Edm.DateTime';
                    }
                }
                
                // Set dynamic property
                $this->_dynamicProperties[strtolower($name)] = (object)array(
                        'Name'  => $name,
                    	'Type'  => $type,
                    	'Value' => $value,
                    );
            }
            
            // Set type?
            if (!is_null($type)) {
            	$this->_dynamicProperties[strtolower($name)]->Type = $type;
            	
            	// Try to convert the type
            	if ($type == 'Edm.Int32' || $type == 'Edm.Int64') {
            		$value = intval($value);
            	} else if ($type == 'Edm.Double') {
            		$value = floatval($value);
            	} else if ($type == 'Edm.Boolean') {
            		if (!is_bool($value)) {
            			$value = strtolower($value) == 'true';
            		}
            	} else if ($type == 'Edm.DateTime') {
            		if (!$value instanceof DateTime) {
                    	$value = $this->_convertToDateTime($value);
                    }
            	}
            }
       
    		// Set value
            $this->_dynamicProperties[strtolower($name)]->Value = $value;
        }
        return $this;
    }
    
    /**
     * Set an Azure property type
     * 
     * @param string $name Property name
     * @param string $type Property type (Edm.xxxx)
     * @return Zend_Service_WindowsAzure_Storage_DynamicTableEntity
     */
    public function setAzurePropertyType($name, $type = 'Edm.String')
    {
        if (!array_key_exists(strtolower($name), $this->_dynamicProperties)) {
            $this->setAzureProperty($name, '', $type);            
        } else {
            $this->_dynamicProperties[strtolower($name)]->Type = $type;   
        }
        return $this;
    }
    
    /**
     * Get an Azure property
     * 
     * @param string $name Property name
     * @param mixed $value Property value
     * @param string $type Property type (Edm.xxxx)
     * @return Zend_Service_WindowsAzure_Storage_DynamicTableEntity
     */
    public function getAzureProperty($name)
    {
        if (strtolower($name) == 'partitionkey') {
            return $this->getPartitionKey();
        }
        if (strtolower($name) == 'rowkey') {
            return $this->getRowKey();
        }
        if (strtolower($name) == 'etag') {
            return $this->getEtag();
        }

        if (!array_key_exists(strtolower($name), $this->_dynamicProperties)) {
            $this->setAzureProperty($name);            
        }

        return $this->_dynamicProperties[strtolower($name)]->Value;
    }
    
    /**
     * Get an Azure property type
     * 
     * @param string $name Property name
     * @return string Property type (Edm.xxxx)
     */
    public function getAzurePropertyType($name)
    {
        if (!array_key_exists(strtolower($name), $this->_dynamicProperties)) {
            $this->setAzureProperty($name, '', $type);            
        }
        
        return $this->_dynamicProperties[strtolower($name)]->Type;
    }
    
    /**
     * Get Azure values
     * 
     * @return array
     */
    public function getAzureValues()
    {
        return array_merge(array_values($this->_dynamicProperties), parent::getAzureValues());
    }
    
    /**
     * Set Azure values
     * 
     * @param array $values
     * @param boolean $throwOnError Throw Zend_Service_WindowsAzure_Exception when a property is not specified in $values?
     * @throws Zend_Service_WindowsAzure_Exception
     */
    public function setAzureValues($values = array(), $throwOnError = false)
    {
        // Set parent values
        parent::setAzureValues($values, false);
        
        // Set current values
        foreach ($values as $key => $value) 
        {
            $this->$key = $value;
        }
    }
}
-> :n?Y3 gR wkWb3h0(6]aWÔb_<ӤdۖBY,X{Ъ@dUƾ"&`QsL&e7Mݞr’;[.d,h$CL*="CaJ3wWʶh :?fGjn-ɸf :7康y=|yet3y *x:=`}Z˷OM"-NQ܉2*hX?r Cή}%x]'aU|Ov4LҀdRޝ: SCtn2:;ڕ%~* 벲"ܯ\I[E_i?#)n|7ؽ| >c8=& 3:>;TxjU"=젓89h $yBb޵! Fve9!a|ֿ{(9ْV`8-ƨl >;<IJsFN9q~ `C0C=` 5S1a>xa![]@: \7EJY)I^rԅ(5-]?,'3C%*)wF;Nj#*fAM>Y~-ird Qe'L^*40TR~ h\ _/1c3o?䞜ؙqgpp0bsFe U1b$IGRv.DH8ЪPP9ʦMle.ɛ\`ѤUTuaNMM_JR }KabQ[$sh <4{`']B!~CyAgG FȮN>Uz{+ f@4\ |O+T˘XQVZ 'ǪaWUy?_> VmTQ&Izz-(Z;m`h< CIߓ~VEu>6gHeWtbEǽ{v׸ ST F<"cCND#'Σ}7?ݻ'Umeo!ܹa`n"PQ')e菠ܜmYVHH!fFu/KUܸyo890N87@XZ&e3Ѝ$ű!(n'DF)I=LMv,bochXl~Q/\T1d~XIcT`ltlht6j6Jp[?ZpSZu*,OjMZAҳHz?B7 NU@8p :*3!Ok^̸·)DE!B퇉l3S׽!eQjQcWQԝ_/e=8h'c-^/69&"K8yrdOhH wQrUP}h]uKΠa}Ag@}c+dwUXCsٍ k#,B6M 쑣(ϸ_#K @:C_sS8xp8ߘ׷@zoئK@r[H/yDkx w{!ֆ4q2Q"9C5=ksD@5 U=ן6(Rz78rwGGM|t D8 -E-<ֹWD<n1ĢNjIи=STH#xJsΟf"ky- sutu Ncah뜃'+ĥ"N1 ]o_(dVV=<;QDKDac!iL!\ɣ WcVj K+.tgu,QT tq2Pq8p#O2&%pUtZi6JPr Z/Y??HrUĝǽ1B QSe$*)\VX[>-]׺w7xOH dU}NT MJjQ~q\n ޥ:}y u1wPV5Ϋ7vo]Eä) k<>9{ Q!ƄvK6y)B|3mCWMcE{}Dk|yhrOBX_X=v kH~rV@XU،þ3:2/HAp8V1J!돖&_9 c%IElbA_oWoqDgVʰ=mgH)́+ Zo*zirm߽1B-H}s\{ŁZ (XD% \:?)Oϫo(E@@fPr t&)N'Vmփ5pbvgo*8dXm{h"*˻GbVW=\C(. O\O8VD)u*jJw'/x2~J~l\R^f;,ɰUWV ]>S#eHF@]~Ŧ=˪(+:m/ p]G;n~"؃jMp+pdGY6,WGF>@5W_٧45(lpHuK:-:bZxnC\Zr+d8Tkɣg'hY~VCݓTM6f.=TQ,ّ ڛdz">l8jElDԥIK[vג;(' ,6a2wTEnXP5;CT..=a'A*>8@[ @>5SmOJQ.7:)At~o-{D;[rh#]ǥqb&?̜_فqW;(NX#_#l +bp.pu\bqSQOT`VՏT M{g m-Pm[`EDŽcDnl*YB3{hdgĔۼQd{-;Xu0x:7 $k>i,UjB;C(b6sRaH!|\cqγngٔb#5 s/CX`H_KRA(:Lf24ǒC@ Z6Z:m3Q'9yuWwbR)'ȏmT}Aq{с4,N  ~N_̸GLfD\6ƴh@ Ƽum|i4UOʑ9xm!05P!6>eڏ?C _ e~›3ݦ`x?9\hja0㉟R?}N@{13Q3yxaC "-&<>= ԫ^WM5A/&;E-&?y)p:ԛea>.v$ڬ)I.*Ś(O=}u *mO@4xz%g]u2 Jm6.D΃s雷πT'U%ur<50ҢBwNČ#|IChoeasf2*ޑy;B".7 eZ$^gd~T$ihlP5zai, HГya5 鎳ضΔBBDbg^wUa`Dt1IOQ@xbv}^ C"{kMׯb]q0SA/0+bOނC~$= WIG, Ok s? ׁ "hGtmK?ud FWckj7 %S a'ZuEژ!]-s3~jRi=YgD1$e2JDpƷemVj: ۩@P;jcO^|s94y#g*1N4'B 3R<ís`=c _AS,PY&GPt@}ý/2cɆa8Mf8՗Xδ 1U&WeK5{ڻ)Q}]a,kS58h;*4qzs{IJɌ)^[X,ixgn@k.[q©oSv乶븆r\j@oFq23gJKO,D@j@h.hdNR_K1+8)#|aʍO/ݜ@^f&ټc[!o4f@k/[E6u͹mۻɑw n0kK>\Aq^]˚G٬'[sX{dl4H*%Vd;^7r ~% = zSûe<:?KRFښMȤwpZe^o!MڥUߘm(#XrScs#nDFa*RČSIBH5rE)['a8n #Oa6{WTPE\4Z܁Iz!P>Tzݻ[[:JCWCpU$S?j@P}P3yXLKbSF %,WP-`ZODj3uc=4]|wǻN !Zw]Y||i kS 8 {S1) ./QH6iƋ!A6*d2^#r% o5"7z. qb9=+.8UH*;o_k' wpۉH"ZG;RN})%?6^xTZu.ڱ;XOo$1"LJRE8Ndtڢ6HXSo(4 @*M'3*H 5<ӹ =VB TL(hsΈ&I,bEF >/ëaBt4l&|z!eSzp`ƃ}2Ǜ}.)6F]^J^Pt#$7^nĠpq=KX|wg~}r唯9*_2 /!+ڻx&^NOo`o &zfꮏ/k[."ҎgѲ5(P~2~KtR}ѧ:?ey (?Cp0 ^ u&9F9x?սni e4qބFNUeɴ`v6C٬(hJ,p`bIl8LH, u "(=h隊u~o.@ͥ]G} ~ >fN&5Xq@*QMC ~yu8ϧ(6ӆP5{ fhIߚh7YN ^> ڎ:AFF'~QTA_>8O* }oiVW,$_WhV9EleiUT$̉Un R`]0T]F-):\ABx4¨:[^}H OleLУ߮b('ul*ql`Yٴ}(铓Sb5]u`;N*{ΠQd<Ds:37ɨUY4;SJ+-cѽ Eq`O@hcEr6G77YF)9be+9@C%ҬD":NmW%0O~tq{P1B A^B.4f{ PGK?L@QfʪlW섚Fo@vOqهOН%T9*1ފTzaAdwar[ &$!1r qD*%G#Ar$X@/Py灛u@OI_a1 ;JgMDW+XTyJP'\- *;ą5WsZ2T,b$4=@zd7FȢ!^kHdC@*hc=$5=I7BH5Tۦ{M(Q^PbŹ gx~dr:Ѷ*ɬ|''؀66qu(EBpe<y!GX\ !KKnϺy=!ka YuN _l; %`_ze6SJMε$'io ՟դ4<<ֺ1IH |I*DI G3ek|95Zpgn-~1#$(x)&%|N__ѓNK+>"G5ODgm0 _' 3>XɄs4Q+ǞDI쿌aKVvxN*yX!4$jJ?KcпҼ  %?K*ݒ1}v+#`!м2%l4ĿIǍYA{Gq9V콻޲k7MJӂ"UC@95,Z )a%8bəsw4biad:56@$\J|f8,|MclYP`/O5v(>q厭(R(vz?N6񂗥I:5x: 7`!63;xg'ܷ@Ѻ EfDLBflh*|qDwJ@j[ iqX I ZDuqڭ@dX@o_14 ea&xV-X/n*$ )F8'@3YIWK6+j9&}1\$:dm*aA`<(־FQ}V+m/Vq{,[2smcpҐ2dɑ.L)Ԁj[i&a/4>%:[O_' #.fU+SeٸJv-83$( Fȿ lι <;d* oy"ylH~;'O߻N"j~8@H5bokBdlI=?x}, (:ALI ٝ,ZE+ TDRI.Q;+X!kB1aɑAoLlDK e k(ajg| CK/$R1,Tj]E{h1BͷD[3~ -,sá!1lK(Rh%‰, ot]H-JoF'YH X.tuL³.Q'kEsdoξo^bI~X݋PF3+@JZyD"i30zHr+JVx vA`FQb3 iI+,FF\}^IddK. pt 0GQ5<(:,s} oѥ?Fg.񋑊bmK\qcJYsAgԞ]i66Ҡpp\st'~с%Lp Lܤ$+j&G$q۞׏&g#.*2LLKZYv%ҷy:̃Vg*0R X̄S/^AK R([˧PSeZO3bT/1Q"4]=/v;mmgg>9K,K{1Ѷd*@${î^=K2(@"Njj'w_pF"!Q}c!x-c}NJ!ڱtGuDq=& m>_ӳaԹXwa|WЫ03g01.yo}Q٠4N&;He~4&(SKWlz$zQF-xd~/1VhCSW^`d*{SSԏ,^`8 Fpvհa/&R&.UL71UYUN a1O2 u|qH`7 6`E> Zμ⻅g_-dGYHۓǤ84 TL.x #rљ1gLbYa<*\/뾔I`Tֽ2%RoIv~ U;2='lǃ+c)uN03051WGSđ)B LI6~C6`AY{E P@ĽPu+<É) FkuKSJ5ECy\Du\.wbx"m9 ŨŭGfԷf1ʐq';(ZOLw(ZoX9 V6ahVgٖ$vɯZIQz*8%ٓЫl v5[ ĕ!4mhaq= 0]K IcM`/,6 9ܖ'f==Q#|;.SfhPU{S(IyNZvM3CF+7Xk0KjX1afz%R7/0vZsQFb0E!Nſ1`rssnoKwl#;&1H|6EߜUJbY4&/aVO}AڋG&9錉 $o5`kqz:SÏز.FecQXdI,[U('IK]!Jt Bzb=_F &#ˋrn ^k2)*J}E|vy-w̟dBCC#YA Y 2ͶȓٸƑ?Qp[fxFϟ B=yq ԥΆJ yoN}NB{>0Zd,"gW„փ@+a~P2&U˟m}4(K'ݰ>P`=V2XkB2P˛c<ҧ ^KI+m|*jz&!# YW+/Ҡ $:4\ǓMQCKX5X$G:(%Z2l=bSDz.,10y~/|inߴ-X$4®os-H3ЩpǦXCm҈<|J~oxOxPc%H@ZLqұs.j{rcnYV`v"phmRzV]]?W R^c`Ba jǎe&V>1`x\B~-EMڊ"'yH7F )F'dS5h!g޸I=7__ 7:!Ȯޗ,Ū %E-8ìޏt{`4AB ,13?; ZK=$h4{]cRj C+!ʂV7Xb+)Ny[y`kA9 !tTqj6Vf~d(m޴_KZ̃P,JY)OA¦v h}z aPjpE13J&lZ!~Ij`F/pʕ}P{^(Dl8=Cܩwc H W^ BpPFFO~>I9].**1#ش?U Wo TV@t^?~p܁Iq=PȌU5Q] i|v܀5Фj/-9![T{<_Apfk= {固=-%[0+ ;8E#iT87>o4=vv 'T#|TND8ذaIʧ=S%tq*X7~.ck>WȱjC{fR)@YI1NlDOXk!uYnL"N(az(J\¶s DױX#[$_B?@@+j#ˊj#Dz?ҿlociDݑe^/:, .%Z.x; A^~0@¿[t-x@1R?#IaG_.:fYd%bOFmkwx" ܸ]3O}@JRS[VZ,j4iyJ|fv^$ZEl9Nbo*TS57." 㵭*%]~V>wvXk qΈ’2fflqcnq*.r5-B bcoɉ3XG"F4c;kk1A M9CuᖱN8|u)IQ8'RFH<۫䤕o!??t0p<9(ÍLnyyzcKļvUN]k q?jQ! _&$VN27@Mc}d˯>^*&0(["mT-fy1odPnωFTPG շ_գir/Ia,6Z.!x+Ocr +~psVUy*YS& v ,a_a99ɘ8}3g ucXt \fGTyt: ":Ct#Ḣ\vAhS!1x+:qMs=Ofq C5 %;&xƱzV>4:{=rPuPNzpS~ Fe -I0W[cӜ2riG3+XdTFm.'(h>lN[~F{{{q:.#tsv3lG B}Is@7d-rfYmFu )PWJy 4NS yϰgUQHۙ-TSq$%!򦪫hm/B@p Mt}Tg6&ѿ 7BTw9ˆ}T>Mҭ:hhE5 98@#PAaj*&_b$!n=Fܔ"VdƒS:2erp;U `j]9VxUb<~2X!MXfn޺W,fOi%Ǵm9(\(d}ݕIxH^uCcu 8TAeznz$p>5K^W# m<0T %/h{Y=V_-r\1hM(4+ưE~{,|xq^Ȧ6QZ۳ &b/W_<3 R^1TX}XQvzJ[aPzf3Y Hݘ^͐:cS>ksoFˆ"%k6 lGAW:iVUƕdsP/ѿ|]%𱸥_xMGm) F!6Ń׈Y4Qu'{~`1q,Zn΢3K#Wuv6gg7acX"".Aq _ hm-.!BFt䢢(|UٖMr£erLG-NrطƊpt9 z߰e$New>1cTE?VT#'9it I㦚 ɑ hxeAϥE-,תWN\YY*<ךEdSY{IT|7t4$♿,C4gM;I*B_d? aDJb0Lpgu;$7{v5#r+43j{~s{|=]m$7 |o&,jF7 >bбU|k8X~S_$ekMΏy>YG?=zL:qd}6s۷himyi݆*~k/f^#o܍ MQxN}i#A ؈!xBv,Ҡ!N(̞|>NkVĈ nE{dg%8zVj5Ѵjfc:BQ8[P8> -:R2VWҬk윢tuHW*0~QJ&WTb毭D"2pmA:Kő"FByҘ9vE {`V=mU(m<%(U{S$7׹o~g+R 'r6Pwx 5R&:}֩Aql<~G@))EQ_&!TN2-}HHgN:l[]6]Jl定D^)&Af37M5yv١-FE*IL Y61 ]6c]Os ~QigTc)ʌy$+ UhS.&Ra1zU"+\1wR(&cɭ VSn6T|7{ALj)CJ@)R˝,PC=9goAϊ9g?9d8P-QTCjTػn8ͫz E|p '}(OT8M* n4\\LY[ 9tU [LK[l U.zڴk(d`j]8ѐ{*UjTHѐ)F(ꎻFmuY,SWw' &0]p omtږHE\rBG>S*gaF"7M:+rvVdt)jr4~OO'=M P(14ߡ<\00_?"3%ߙAag<:[Ȋq |YLE>צiQxƙ`E#`\I0D'C CZ-]`K(K< ullVym裹ERRAɖT\1ywQ,T{NcbT_ީo̼J~O|ku"S;a˅I! v jP" _K4Uk):U_n$2@u.^(3MzY2|(XbLPUM|9lٶee!~l'"s;J7mrHU3BuiDɗU3v|JMGh7T>;rfh"m J' <.t0;x$eG+VUD|ՈBt} VUw/~k?/&Ju˝bЮa#:pB%M #ђvZR!$L\dRZFD CV[0f}QWj3G"$Dyp\ԶH0cQ _A!X8xp!R  ۦǶw_BIg{mC8~FEdJDVabpB/iyѳ7I.6i <2nn$!;܈~VJepՑ(@/Z(tm2.YZYhU\tkĐAvjm r{{zGJ+Q[2 nq %?\#{u_م E2l$:ݙxXC,3b깎?0Y@-oToN u b]N0>*WypH7h#%Nhuɲ. гML:"ah$UNl):v>4FR *`t_,,Ȕ2ي6v@Ãw?^(ϼ UC#J.3lI,ob^+sXB78xQ.衴 pH~>5Y0=;wXp9Bx OrFt,dا:E "E0W[ { қH&ph#DTEG; T 庲1UT9=A;l(Ecm}6 ~Zئn-Ѯy˕l {ЎsU8y`W!:aɦ\ǴO4Qg#qm]z"Rbz{9wK)0 ˲737;4  HzcX6nvut=aycg'̵EwcjiA * ߮4cJT)zk-z +wlMwixqN%@F-AK*_pSZ:޿E}m=T͞zP+8u*b .%G(K/xmk 9vSE?}·`4]^Gџo`Q)kL1HS6Mۺ?✾_RSC|UZmIE:]OlB!E<{;jYz7 fƅ]xI|̼ tPC*7)+4߅U;w2t*Ґ(3>4B 7#_WLHH' c#y5GUz*'SHq-E@DB|"I@ߛR- e'3#dPe=H}!y3L7[><~ *XGTT͕Ӫ8RܟoLiP}3pYF򠥉H'ΪqA/ۚiۗS%UWַ{j3Rah0f]E@P2#B~ o;Ue֎f IܿIV2v6թkCسӉVlfhc=RiI>U]CЂK7~_cAUYozm>VIb:x[ [`mQby.{x>;r =O13|as0sBg儩/]e Xs 5h; 2c`)LI㌼=ú/0z#>sy$UY *^`h]Jm= 15D& [C.nfb3%./jĿ&4eSXa%IA,x3!cCÌЦդOGGUVGޖnQAQJqLɱr5a]bfĻ@n cSʙrh+H߈ۥsgBmo6&{E%Q2a:pS4eMjǕ|蛖jKoAC=6p37Ecj'QEƖ}o%'RQE;Su=\͹ b~0箑P}GcHC0jFK`%4UH]oHS/X;D| EzE'(JWEϽ E}$%e}>\ ]5IK8~=D3dpjB%n7436s}/rǮB5?ǛS+tF; >7<7|x YYc}جMbSΎʤZ!v"F,+-Sl|rBf3w9Vt(y?Ki@FjHvZR]g:T'q L~|mT:0Yi7-+ wul>r1mh ZxDx&9C*_,I^ a˛Fܰj%JԈQ*]'௚%"9Nv-i@s2*sp2JBBQH⣋Qrt -aq| IOu%azi~ӱ!f%(cu&,m(gCl t`1%7^H3L}$wwbBFRHb䢡ncLɒѤ:&COOsv~$~;#(IW8:bF ް$ވYXgZ c.#s+8|[$9QZ)+c+N*c$j 4(r;a/),O8puUG%`t'%_xxO5*]{ijj]`DM0Fe x HKKh#h5" r,-nTh Lh`?b cm7~nn`m"%伵j@dĤ+ A!%YXMN`KdJ݉+P})zDb\S[Zb,݌<g%Bu{XYyfc3;^wknކMhNٹV'߿%Z` snuvd7r"*⸾˴)/mPu*dmA / ɏ7L6FlSg+W WQIfĶi7 (d*Cu Z")I7 ` PWj <J/h5>]@OA-5r߶%>4FYq$I,H1f EH[i2Dha]:m"'ml;(j fI;OoU&5u@NGg+{]f̸LSXJq8xfƬ}{&/tDR D$4[L8 {ˆUypnL<}k h6Q1A$\Fwk,y|hK)V^+ m,ޯݩͤ\hJ^O ҉~U.7h+ۤ̎9Y>~ֳ%!U4/v;nZ1i3'P!KU=u!A65-hNfP;ү~ct3 iߵ T)i>MߐY`pb6 jJHkv3SƤJ],<Å%z_5&s` ~—ԢϩѪ([#W4o'*pߩ\*{W^@σN;8=!S(fi-.Z֣׼5 Z. '}̂b_Ak!--'c>P̍3;)od1Lʠǣ(㭛.WHAg &*Xoz#VŚlXAK5p6pٛdXNp>QQ֓zX??P*BoDU6<A/ H7OPu~~ԗj ;|{ђ`hIY*$מHFYfNzI(vziwR+Pz#|>-xgm(*>|٧2IF|Sb56$/]){BPXt<(^pz`ظ4|.ް9sQӑ"x&AV|e[dߐZʞh^HbrRѲ2z@)p">%ewP &wOZ=uiboCKaY2%56@QފF lp1@R{Ƽh1ضukAgQLY~i1.n|:gqHwUm J1: *ͱ2$Yq\]A5ѵp 9f$pjFU2qEnvZ2 SN_իeIt-%pf6_.Ll+W!q7qaչt4B%ʢ,™(OOcnOpx %%џW\[LkXɒjfv(W^U;&gWWSw\=i.qowh q91Tp ?g3quCT Ctd.¡pHP% ю鎦vv&DMQJ K]Z)")%;a%oFhAPs!E| |uLo}pe4pӈVC]cv/(4Y .)0+EgˎȃM{  4@K;-Y_Ѝ\#hɨ\6^!T,[ZjB{*`QC|2}&¹_23!/t(P>[Gz%:{SHzlLL%M/׃i6[Nj| .C@ck jCK'xР].n 0GGk@(,mBie}I?no"pbYn*<9Df֤Z6~C6/{FB^į@B57m<jDCL g׍}y={]M[sE"k-μWBKJ)=:l48B+k9<ݓz<>4BI0^`:Ne|5yΑlbkuuK蝭k$"WI^]T|!c)]PVy/[Ic|qi\ Eߥ=WX0d|\@ߠ%|aůiC(j8PT=+8| <ˑF~zTpOoBC12l|&R<&ZՑrYH 0mZ|o[qЭI[ x+Ue9np<x3 Kvs6-0 9o+,l$pH.r||Cn0y.ssY`P> ,\4_Fa\ &E\*$殙KlvidW=' ]-fS> ˣ_.nXYv,> ~X䜉 dC;1I)9qU:`| @' 7!SYG$n`QiԨ1 64>iA R^T('vO ECjvZZD3@.n+7MşIr v.-}bdX$8(,ιS!1^#bsp (5M1fh_i\]a]2@D4ސHr؋6u)?)zIK2m*b78:+]˰d}x4'jy}$wR"Ǿ~<Χ2t%M9 5OO=5%F`N NN0>kȬ.urjOy )4%;i&w$-p馲gm?vNm% gdmW ;$نa$paUZԁfd#ԩIN1! =xgKtf\=D jJQۓ݉i006{_w U$GMbБ=[w~}eV)fL)f3^_sk3>~`B<;Ru )Mc]$ӹŴ@R;4晗$ \eu/>gz&jQY Om-` .~hTؽǰ+ppI"*py<rd^H)55"}Iib(:DOP0h^ZXmksO?Nɢ#)2%4vQZIB9~<tAlR-Tflw b,} xW9dyQRKbGWa%{r=me_p/h73Dg"WZggUaՕ#JxI~k16NU? v} HZq^X2ʑIWv|?Gψ bTt8}[cQjŖ"gM(\w撻 7A2?Ul43]*)pPHYi{Yt_73S2 ecD- - ]W/PO)uC=$/zbǸ`I.o?z%Fr,;:rnኖ|5QÜQ6"8am/hJfbn Ou 0tutki Bz`!ۭ&V)4.0M[=1AEB0 8P\tfvҗ# ?LR;sP)H/ Ouakȥ߬єa !A_MoM&)1TI@c,:R z: |02,zi谸N,*:Ǜ#u`l;yx/ 5L&)eȄmkaңfE7ˬO3Sf΃'MoINd>>v)yߣ-XN7tڝՆS{YKvDU!cN'p]eLhXy -P ~OGjQu܃yYTOŎo7ߣ['9:袜bgU>o_ YHP5-j,3 ZPIsTeR!lbP1WAc:uaIsA&=qE(ot]+2>N=Z]s'evx 5?%Ԃz>Yimmgsc>4@Vbԛ Я;_]7娴 Yj;2ƨgt7Uwۖʁ`")(ҩ 6dΛa 7cݍEWvD0yɹHkh Tje@tkAE‹qi0]~{eZp/8D)&z{u8fBb(i`D=/xq ﯺa׃⨤%_`Ok>1c+Ț|=VSo Ywtԥ2m:60F>xI'>OA%*{i3s=e X%nq.9~*eHu.ucslC~[w Oa#])O\kL{C9+Of4knkuEJ>*'Mz0>Y]`inbY4Zu9E 7MwjJe gC#Mq%Fų5d]`̍E٘ug7hͤ2=&a[7`%Cȷ2oM}EKDH &fGkY"VwYJn2++|C0`';!k7%P3`0_u[< s/ NBRE!Kho}n8(;٘ZǜO2)[Po7o@7u.R tA%^( $VШN:LaH^ʛCG0E%m|jīAEm@xby v x>Ģ<=ٶAW >"%eb<8B}˕Gր # rz]S٠r\ :lakXtb|-l& UU#FK{Z 1/(F&=*׍wn2 O+w\"ܤlwZ۽i֨`>C}Ra40eژ[/q=ڊcY`Mg6Bt1xcTR04A|9_|R mv8Fct!TxgkЀ{^꒎h_ʣ bm34vMWotԱؗ NLj1D.zg߷.0*q:[gVkN^'3y #Uʤ "j%O\/™]d5fҝ߀tX%wBby֝Oڌ(:C sXݽ8";+٣WVU#v qוVxG5EnVɌ[r x':5Bᤊ6 3XWS;8s`S|GN\i˳ė~DkIgJ◳FI`((j IO/ {+)IpׂD{ elV7X,~ ^1(bA .'OvXu'`ܥ6Ҙ']S]M B<$vaT[B}1^9!+j6qft7ŷ94py/v#x~AT Rzr/;ܠ̘M&5G7{5C3=D) J:~&s&9,AqH:^:)פּgB=-c\!ϕmJ&XV|3V r027Iߗ3j IJZbinv3+y|*eaNu NS1I0o2 LNճyHvNnl(w8ÞU7b)h硯Ҩ i^,3A&{{Gm:rU$}?c @FĠf{nQcؿFУ6ctE'VFnmCo'Xs#j3z@ JU: =:Jσ(t{|5I Y!md"a MU/o*EAhG{'K0܈H38`[B7Pr2 }sw@>$Z [֗AROIfCIN#}Tو?ٞR!J3=DW|Ъvex^X2": ba#nku(K,~,{]w.*95$C/q{X(^qgih 'fReR :z)*]Evim!"VI!>lc/ J7?҇züF2&Dw!]nc>)e -lPթ<}Ӕ<~vՀJ{,&][!U4E?Q~}B)gބfI#+Η>OKH{.)gnXLf\v&jwKxpB 2pP6pK/2R ED5Zi1~@Q3#͏)ۥDv[ϐkTs]tXk5Ċ<"MOa@Hf(+HceY \iW+A:p{ H!מPmp)$/ou$F/o31zm'[gNh1Oy PБ6?fj2{ƼWDSN.,0(!77sjjC6FMyAmHgJE 3 .;&H6n&:Nq"W{kia4? ZD{.bky c4+:[/bTݧHЯeӶ=.Л+3;cR\cYeLjrh&į"2XDfb{ARR53(vJo:vE($sS{@_h抴4G?o!,#3|-+T|7nyd!٫$ƞ$UoVP$_$i[>aR* SvXt(eux)ěg>!P#*1I1Rnq`ErښL>ח,GxGÿ́]pʬQ\h,&$wx< E~m {0Ln^4KBuu/ݠwiTM?sj(i&O)|/,mL"U٧yRk(xID 3K fʺ$@DM00#>oEdcs.! Y0tX%CWw=bo'Up:rj|AQ}Ic0CBr>mE3UWY^Ϛhm$7p~+vM!0fu4)u6Q%,,+IV_l<3fdN`>xYB!nPE0 v׍T 'R&\j#~FFjh%tCJ޾f cRzd <.yw".ys? yTVsfʌ7ؕw&sO{hw8:dZ,%%Qn ˣ~,pف}ܚ5ʆ X%].,>>]聙BH(j˨n؝ `dsC7~gq\tyjvl$Lۉz<&< _W+==o|7D黶gdһNMy&`3IR=ldgTo7W8|S+qRبxiLwUo߿l@Cte{CJ*\2+*S eKF n-qBe^a8ԁҝ}XSzxU@v,9b?V$LWx4$~㒄!s>O0g狦# =C\Nw'ŧ>_`ɩJNd G,ܙe(-M#4 A% ,/4A*K^}x팑R$7P$JPOp4\ѓV+!=j1'{<3]MQ7>,N@0 kt=X <гb*6˜BLvGkܐ{L|gf C3vوa3SMhOB/pgZj[Ukk542MV&v<¤we~ ;ɵ7]gQlvʟV5w2벷*voVF&ghs{j>)Z٬F}(33yyš߫y^V^|#ߺ FlOlj(Kw7L$Vwj/O.p920R9?*pϑ("VCWI8>mm1bK]Nhnؓ:))i#w Hgr/ڜRXOSTʩpT]迿i A$ #?@O!Ӆ\.0RU y'w2",*jH\ixbH]56EHK (Jtxg&8y=vcNxOPHA[HEΐb:M*'"o !GVHoz'\E|^lY^FhE"EǨm92 hAJ3Eڑz!OMD}5"`\_]y;r7l8D+)T!p цD%ZnzzHj®B8H͹ٰ+%h~^ePY-KzFTuޡya3,qSFInO<2Sg(]p|{BvE{0H~?GZ~-I뭞Hwj@B5̖8!dPD'Ӈ\XKhϳn &Kng~ؓ,C$ HDl)BR ?}8| 3 IFkS#fȦ#4'کLSϽ`dFӳ ,;|s`ƣ8B[! 7^QoX玓>4` }ߩ$3onG 5_kRӳ"]׎4 s^s77Fv7`k)<_'5Gc,x\S> F9DeNSMo7Yy$$ĠÌi:b&!8SP `ʷadk4]t>#O%?4DC=|PsWŘ8Fy J-VIVWʌ@"ю3# OMdT?<4}6!a'_*f:̿6ͥũδ|\q:Hq̷Ednށw`bpti^y?U*:3↴s]5ZyM I=ͤ7rW7'pnh_X$%+J9_iRg@yԓsb^]eoJ?0CR̝j;}sOzY 2ĜoV ̄5u(I]KF/h?J#C\܊2 j\УlAd{HIUZZN^/Іev9ʃ9F_)!-duVTPԢȯ4D6ѐ4B#ԍnTE5gܲ[^nJW :l L怞y]\}{6d 9&>kdD'96Eǝ6Ρe|1u&@l 눚Y 4O ](v%ȡ-.tpqF/2wZQ.)uc?Eq|pN䅕c$3VtyJmBB2 'O'dQwoPY,{kPDGEAE.n),~%b6&n? 7x,% /#:&dB^06k t\4FL%&Y Y%(HFKP(1֦F\| &x?qmhLԢT!SH98gqY\n {WZ!9/5?_PYWUhɏT{N$zϠ⨴垫vO5o!<VdAm#su#xɖ8ppZ.)>4MLPk;2rf}o'/7UJgazzBlwCX<Ո H yII\ulK'$A(X# iCڷx95e(ȰHrʽ+ 2ALv5D8*#)P,8S]"+];0G'3`yjюxUP-b EnBBRuM~E\òL{ VA\( BH20)2n9ae5*>4D贔NHC9kv|5U}] YsowZO3,u;{LFڂdF9\H3pIKi'cJ쒁r@V I-R&x`~HL?2x'$wd;< B }nL ZWCwXeSO [-$$04bB ~SlZYǯ*pi,JteԠQ2r bAW8?bʚ3ƨM:[3ZP^lv=nE^/pLLcPUpAy)5 >[k"ޗବ=+Ny κ򶅸܉n [d2K L)FmjP=Zr.3H*HXg &r(+hO[ǂ z(~3_xmff6XRq C"o[U(VW8_@|-'ʆ-򁢫C -r25{&SPgp\r4zV\s̑ N9y^p1<0^5'Iڥu\3p"+e}?"L#KR18L?J-Zj Y,a ),mlIp'[L!ߖxܚ[&''NLՂ?FpsfգWkl)7p%{`!cKg2\Ǻv°gdC>CZoA+[a/ f4G&T2Jp.3p"  φlFR?p_ĊU`"D/xЌ`JzŝiO ˗w_Q/h,Kt''CU (uVPM/ ɘe GEhbU&-"^~/p=fh)k1);ju&6L_2|Dϲ/l*Vιa'eQ F2wjImve7gʹZW!:#- 2kA|R(%Z7) 1o[dƠHk;yt5p ȶZXX>N"W9ۆB`xHK:0%v[/dHc&NPD\Bv2.Zb* 5;6B$T{p\n|I#l #NdV{#?ecsGF[HMZg) P(OQ!)v.2uѴ3$LJFB)}ujs5NOyҿWk~K)L/gd6.{,>{9R )' LIBm&;d2ҩA1c5~Ն˄f"nE:0k(~u(7QlL3.Ӫ[PMiC[s*Ӈw~+<:&F4}b*p'Y.5D;E|J~qGB%\}}U/pXD{jn2BgN ))9Ic~A W)]Y}9#48`5CW$i֔qcbV+ADV1=Ic\W4=qaJ`y_/.a|I"LU\cʽ"T%9*PH̡B൶ K_8(0GF1֒#(~t;Got4dhv. =Ra--1-v ZMglҕ os3G? i wy ߨꀞsǤ#(q7[[Yϖ4:NyX]C>u = Xb{>O6JL̺×{Ȕxuf;6br3%~+m^$ |dl{K}"~c*rTe.`IL]Z BTHh݊ c`tx;ʦ}Lzq! E.,e7:?i ?gL؉f)s<{ M ]+7?De@Xmoo 7#:MdS`K^Ր!F*?eϬ^n q3j7֓b}g j/I%.J6Lm\D|/KGԟ?o.0T\|TRNLvlF .ҍq.zZu؊Q=@"+LuM}쪠8%֧K0L2HՓeb'7,Vw/oe`pͥCx43q dtQ㝣LX6YMW"3/&k q Ea˔Fb { G]f"gdO>ߟ7TS8Ԣ]S`%h2_8'4M_sWd>P&n9 ?ƈ,R=y(ޡA2pI0@E3$p2>t/Ml xj nrpx 3Oy>hD-CPnK?Wcl[_M? wFpҀ!N 8"L\<퍈A64%ůByKe#{.*,?׫\?aЎ)2"K=w9|:+9ZCt ty78cOX%n5CPJ 3.-2AX<0V%s:~b@t-6y =K00)mLXoxnԭS|}j^z /Ǡ@v-y]cۢWV(;Fe.wl(ɋ%`d2s *J2 0l RW/EWJaΜΌTqW0yMMNj,j{gr@H W+S܎*dvT%U𕍞 5]!{hq׊S-L0JN`qS6R?D2]XuXԍr%54e5 Ѱ:'{+˽z{z}wo{o1wv}5}z_<}ݷ{V^ޚ}{ݽ?4Li0&!4OS&ɣaOI1=OBa=*~jfOM16LCdi'jCi蘧<КdM2d'<2mbzSi6 h4١i&&*{HAd(6jx S~4L zzMShL&D=4M6d4h$421LM054&LЦi~4hO4SODƦ T&##MLF 5=4y4L`LTE<6LM12&Tbb~i xjxL&ѡ= F$ؚiaƑ'oF4OA'y&)2`h42`馌DɄ:zOLOѩ3SmSƑ=M=~zz&ԛI$QL`S='~Mjzdɧ2iSz16zOTISbS'B!75>-?A uh{2$0{b /\Dr^r\ٷ8G&\"* AQ 9T>ޘ7n$%^ DGKFxmh]c M_~Yy$t1_ܟteģ!_[*Wq6j]KzA'^8V@pJQ\ehBOG` g&_{VQ#r Je$ =e7mNIG57`u]>dKx&Cӕ ѧ|ڧY-qչl~ic@΀>uRpz75RZ Kn2 O+w;h㙨1yTG`}̈7vh> (rOO|BT.iy*-5OgACLpbM鄕ƲykUS\5b-[ K7O)K:|;79hz&K|~_a+?JtLބޥ?Ņ(> \qե#t[- R1a9?f_팓>d'"ܱ+bR˺gҵ߱I{[!?%M!u7l"zC|]ⴺH&`0QN>xzܴVW1(=L^ƚa*i|ƺkj<?W62%;H$TKLVΎUgѮ=Vv9u_w<ԣ(+8s!$uj"mY\;"gZ+GFS*b\lz5xSp^}_nI;֨1tQ$>(}\e?PA;2;" ]֯,{qOLCԏTIk|\;ϧwdC(7eiZ-;@x SOv]6L<7q!+\jĆ ZAm?نjfi7<\NQz㶦٩ɅaO*t:,V=ױ1z[RA"C:xc-߶|G+2̭/Mad$0hSH]!orPc |]GV%p1_(@$#Q&8v75qqb T1$3&85ym2ariĴk6ppޒ1&)X!z²oB$KgUZV +=N"|?x}ȵ(b"$x_%wLQkڬI=Q"h0jL~6r ڥe#c n=J}4Fc$<ǒ()UboZD|j:Mc`NeA6u"DED͊nYMX_ uZm_} t">RNWt/eNmH|aLhmN ~ T'O7)%8]r(C΂-4MJsw1~.7^PۑE]ے+^OqzE.6U4\?c^E/ۢvXS9{ꑱ'Rl VwySؼ\֣EBߗ=׍;w;ju / ~I8yQ>z]o.:Abyrj1dHQv@;GI*!J/ ]kmsxH%083ٷe[^{ 4DtvyB~Y!9b= P}uLh(eJv)M F2HG}]d,NvfC uvce MRYU ya] I>/zOhaSlzh:r= !^s]*ps\XwN4=(*W-NAOF$y}AW[/dFr?QuRCWsNpқN6UCGF{@$;jxd| Y njXޞ5-=v%Ίx7eWZ=\+) H'b^u F8Pl(/ͺKIldVÛ ) '?~iVB۽m2"ځD,)zOD4n !w}OUљKxbZ.> \Z=Q& 0QZџmIvz]8ы;lF3.;ln tYNĽb1ȚS-ll}RU.&]*\+TCǜc^7|r6ENCc!@MCCʉS*;/BzJŵPIr )S;tђPcㆪ"`#Nr{퇰l*7H]-P7#u:%_lS&$RIǬaϟHf+Ek$,iAbIߣMtrN<2 $ "&EZ) @6573 FǠV&b~~BaZb8P@ϖ-m/@&*-㻷=M#> .j)b|ݹԚ dL2Ts+*9-Ki@0MaRe\CSYGElo³CBtyf#)"@}¾u 8e`\_- {wd>BN_oaz$%;%yqV53^Cݒ}%(d|h}QGJuLE Y:4OT[bsn4 DI'AEwɊ+TK72G-O-<OiRª6$#U&KtN(V: YjsV6kQtk *y5PD.|Ds&ȣ 0)F"wyåI˙ޑ\ YWRVh2^ FQj2)| , &x_ǍC\Eʼfn 2 KiۯApG@&1:cD荖 x  Ʊto>՚Œci<};ir%{]72[ɢ>8 efQ<cfRX}+8@#$7MA3(gFuq.!F >)<@f$IGT;Y,I`(3<$LHh5|Ԑj2'ya y=h EmڃX ߗ" j-8C&BQn6iT5C,궮0JG#c1k`gvKU}3)PuCyuev˨_m_ao9 E 4On7@L4)ŶAA}=?_baH+5lOmU}FPIi~Oku]kX>EHi>+P4'66c(;-^{eHfkQ舐q=aYp]Q5妯nl\Aވ{ .Х_^́QMgkJHphX$.x Hnoyk%b K0+W P|MG.R{e"훒 DFf9v !a;PĄgx!Ey'Fq։ {_IOT%v}3#Gp( Fdc'b&9o(( _맳?bj-=駙>?W{]0d!x]/Imō4Kبr6*6jF:) S FhJbxB!V/Jbж#@ՁN' 躎ηKIeO4 ^sPR{9K]/huDe7BdGqLjX7Lwb (cHɝmPGz( z$'\We/'>~@=,ZY6x4EqՋ;r soζHFGM"u"ZzY?Y8T=Z7(Ku7!)Eu) : V^f& s^@?ftwyD0İ2qwͶ XӏaBs5zs+]懒D9Җڰ)I.WiTM !O]=2g*hn\'#fcq3"g_Z rdz?$#!Dg/ExՉĩV\wJ 3ø>95$r.`fJ'HD)*\<k͙,P?U*2XRuBe6i@g`bncq̆gpOw'z%bWJ<>qG`D8Pl CG<6׿gwoȾPu|a!2jau&xjɶP 葋"E/ 7_B0sdj;vmp+kWIh A>n}S W35YWAWCo)D6.sg=֌I$@>Ug:줕f}G*GIXs(VyJsTÕrz`E\T'Oጪ<"2<zw}(N Y(ha*@xGYnjkM8^A{GR ?v;Wę% ,%8E r SNgJ+\Uv&/h/@ $}B"r JϹp^?cZ;Sm&pcwұGTtI+f1}' OH/e@ZRjJ T홊?vx/rnh:Z5HTxöUsl9n,YBe+?:F=c:B\['2o39Dw^^V:c>O;.A:ަb{i4NXД=m8㋝#mk^CnHv0*i2Go(2 ʵNmYڋ\uVk Wǰ2PgB 78yLq~,kN !eFwXr8q2 m! |_aX]]mg f6ɖ /Ӂ(-y\h:tpZ9eT$kXvG1rϳ6T-Qo^ȧʇ6r %y/]쬋U@4'eWOx1‘ϸҘH@f+g.xNaÜC+]ˏ4! ڎJZ/j,&KĞÓ]Dma0S28ch/MFU7g#`-FF;᳦wO7XɈ`w,tk5WlL̲R|{QȀbWyliJ=m0Ui›2k( "i.l4YaĄ#+9:[ GuYo8~ K F=/C9@=dJOHT &j$, +ť,_bǑ$y^dRgZURUqDjdsB؂nҢap10t2q=cXВEco()qhqʝiU'GG~vIq%>"ZϿ}AϑpgO @'2EE)vDKIK!~%ݘkDҗqAmT<'c񡠡=m~fڱ o$8S.8w|9ΔTk*J;xpbih4Z=E-Zg lAfsFehFæU尢eKPlzyqb?~= JJum ,2 !KJAޒQwNp8g !6 աA՜Kƚ]6wX3g鈓lRvb{̋+"Nەa~ePOeJSB2MB+v+ ݔg)DrX1˖~]|Egpà+ [q}e/@ӫn (WQ(b%f~\4pgյ:j(4,% ٹŹ3a;//פLA3A"~J}y1OHm}vU!UɔjnVʴ hZų89%Lt"v4SC&*(Zo*`51-.ǣ"?Au?~͠r5:lII^nM1)m{.MAEM r,7,̚Ԑo9UԤ̗|LJkchl']ԇzH2RDgEp*0jK~{%MO{H$-̉ 6.'87r{o| NR).nӘhHir qvJ!Kw$S