summaryrefslogtreecommitdiffstats
path: root/ipsilon/providers/openidp.py
blob: 13f6819e08f62a82ad66a586b7a52c81656401e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# Copyright (C) 2014  Ipsilon project Contributors, for licensee see COPYING

from __future__ import absolute_import

from ipsilon.providers.common import ProviderBase
from ipsilon.providers.openid.store import OpenIDStore
from ipsilon.providers.openid.auth import OpenID
from ipsilon.providers.openid.extensions.common import LoadExtensions
from ipsilon.util.plugin import PluginObject
from ipsilon.util import config as pconfig
from ipsilon.info.common import InfoMapping

from openid.server.server import Server


class IdpProvider(ProviderBase):

    def __init__(self, *pargs):
        super(IdpProvider, self).__init__('openid', 'openid', *pargs)
        self.mapping = InfoMapping()
        self.page = None
        self.server = None
        self.basepath = None
        self.extensions = LoadExtensions()
        self.description = """
Provides OpenID 2.0 authentication infrastructure. """

        self.new_config(
            self.name,
            pconfig.String(
                'database url',
                'Database URL for OpenID temp storage',
                'openid.sqlite'),
            pconfig.String(
                'default email domain',
                'Used for users missing the email property.',
                'example.com'),
            pconfig.String(
                'endpoint url',
                'The Absolute URL of the OpenID provider',
                'http://localhost:8080/idp/openid/'),
            pconfig.Template(
                'identity url template',
                'The templated URL where identities are exposed.',
                'http://localhost:8080/idp/openid/id/%(username)s'),
            pconfig.List(
                'trusted roots',
                'List of trusted relying parties.'),
            pconfig.List(
                'untrusted roots',
                'List of untrusted relying parties.'),
            pconfig.Choice(
                'enabled extensions',
                'Choose the extensions to enable',
                self.extensions.available().keys()),
        )

    @property
    def endpoint_url(self):
        url = self.get_config_value('endpoint url')
        if url.endswith('/'):
            return url
        else:
            return url+'/'

    @property
    def default_email_domain(self):
        return self.get_config_value('default email domain')

    @property
    def identity_url_template(self):
        url = self.get_config_value('identity url template')
        if url.endswith('/'):
            return url
        else:
            return url+'/'

    @property
    def trusted_roots(self):
        return self.get_config_value('trusted roots')

    @property
    def untrusted_roots(self):
        return self.get_config_value('untrusted roots')

    @property
    def enabled_extensions(self):
        return self.get_config_value('enabled extensions')

    def get_tree(self, site):
        self.init_idp()
        self.page = OpenID(site, self)
        # self.admin = AdminPage(site, self)

        return self.page

    def init_idp(self):
        self.server = Server(
            OpenIDStore(self.get_config_value('database url')),
            op_endpoint=self.endpoint_url)

        # Expose OpenID presence in the root
        headers = self._root.default_headers
        headers['X-XRDS-Location'] = self.endpoint_url+'XRDS'

        html_heads = self._root.html_heads
        HEAD_LINK = '<link rel="%s" href="%s">'
        openid_heads = [HEAD_LINK % ('openid2.provider', self.endpoint_url),
                        HEAD_LINK % ('openid.server', self.endpoint_url)]
        html_heads['openid'] = openid_heads

    def on_enable(self):
        super(IdpProvider, self).on_enable()
        self.init_idp()
        self.extensions.enable(self._config['enabled extensions'].get_value())


class Installer(object):

    def __init__(self, *pargs):
        self.name = 'openid'
        self.ptype = 'provider'
        self.pargs = pargs

    def install_args(self, group):
        group.add_argument('--openid', choices=['yes', 'no'], default='yes',
                           help='Configure OpenID Provider')

    def configure(self, opts):
        if opts['openid'] != 'yes':
            return

        proto = 'https'
        if opts['secure'].lower() == 'no':
            proto = 'http'
        url = '%s://%s/%s/openid/' % (
            proto, opts['hostname'], opts['instance'])

        # Add configuration data to database
        po = PluginObject(*self.pargs)
        po.name = 'openid'
        po.wipe_data()
        po.wipe_config_values()
        config = {'endpoint url': url,
                  'identity_url_template': '%sid/%%(username)s' % url}
        po.save_plugin_config(config)

        # Update global config to add login plugin
        po.is_enabled = True
        po.save_enabled_state()
pge$ ^*J PqK⟭BLZ4!٣pD*.(XgyƍRk$+ene(cm+{]4`%R]/h;Eam 7CMCFHHनڂ<#%.iB7"'ӶzໍQ(SUtAfJ:XP 5&Dz'medK%6+ >չkt~ `85XK/a,=xºHs!'*cd*H\ |_EGmZe'ۜ+ȸcH?&CP{1Bs:5KG#FʳpFU@ϷFyבQClR )^i 2?P"58)x;tѽpSK}=?3.:(s7# ?㛖LMyǰ^ zQpo?UV@ ᕣoBS[(zj~U V*8ʵ=54m>ռIh>pp&Mt(iJogwx DL$,'٪]#rKD&|.sJu.)k֑y -=ܳyk;҅_3]P Y$UfX Y'P*m>^{'pdrizm;̛@ F۸ljD:APZrWT"Bp"5M v_+ŷ vr`;ם|Tپ$*WRh BYBZ91PkgG]IDp܄) ےŝ+$2)کh+SpT8Dqr7dY*+FW&x|=_.H&ҳ1_^ɷөjU7]mc>J:zIsƷNܛj64-3?UDdҾל\OJ<V6!ExAxʌ),P$5KPU%Sȁf4Kh $E8Jluc4B@[lUB@to;/dCQV >1muɂ--1y:&|Hk250dkh=Wj@3x. >gG[1=H Q4<>I{;5;BA(tqlCghs/) [DB*6M3ӄWaG1k <?]MϦLde =e[Pjl(6|Nϲy늌]EkY)zvPĠZ]xBn` zjf+ 0zF/DDa AWDq4Co#5ez\qe\ `* eLKH?0B W]Evщ k][.[Q 1\gæuWKZW(\,M/9<,8gb  Qʘc p>N\}ͫM7΢͐-L>@u ;24R[?#%H9OOdb帄*}EW Xmltl: \u~QNGO2::NW)R,ԁO{V?eHJ~ׂ ҒY'A_{b qmfl@_ D& i~$j24!\"hTwYal;\CxL܉Y0[XuܫA1~j21h'iXN/=\n`b76}6awJ(ﰃOpw. l:B#pHPYqM`{4cH 14{O-ƶ# !q.]t^ގs*%5@~Il)t._A`Rnlf[ 1 >(H[52ŽC^)Ww$s=}lWBsFe]|iq[ȴj[OHK1K~ ^{j#..jSYXqT.U(}k"L> O [KeR '8$uTf=`@$:D)v)bа_q_MO&lB ޽S7dz:jU')Zi$}Io(',_xTªCoKսiߕj|%nt\dd_A;z,@TM*Zc؊lL%GAI_ꬬlblQKe%wg\ǗLӰuu9& EpGfSFN)@{KwXs_9YyA\su3Wl's0˼ 55Fv ‡~"~G"cҸh]WljGNʐdcGYP [VKCeUA±Tl\' '>k%㸯He+~[1E e٤P6l y kH&3 KϑycBq¬ӆ~rG};(ԫ4QDMݒ?DkC֪x  TuwӾp?mI[%v]aʟdJ8X!RijD(142Vow5'AѨK| /C[ *HǙ`J3H{h4b(djw=Tq~ɾtF;IVdQn;l׊P;2>{L@lr82 hvȘN9aݥwUjBM}KcIʋ}Z<؜XïiS {-3hx:pS[*g@S醿#5ܝh_>vk/qVs뫻ᤛ*.j0y{!o@u<LS*Hd2Q-/}>R[7g=>.^neh3XI!X!0,VMºb 7޲aIʸ{FgErv ZQ=+(yx;\ϴrCZ̶U倸xl?Z@M TK|0u\N%@8]m^T$tF*p)"gGjykkbdabHJg#4к=%iZ)K1?ti6&WOIJF+Hjk Vծ@`ٜj-}~ pF b]&4⒪ܞ8@L˚ًP'!qls\m岉9Ukyj`(OEm)TݽC}28[L776Y9hQqm 2N0Y+$;߰n_Z+n˰$_v^EWU_`ʉ|) Hg5"+.H*.)>nJSy ̨vnbDu]Xhĕm- Xٗ|~<C/%>֕ /oנ_?4VhAs;aʭy0Ц1s)!r +S70]zK-Lxa ca%7l{ޚu jׄrʦ;ӳB{Rw @5oԻI.#&n'!#lAEgߊNv;F4xѵF%LSf^mk#\f8S(9"@\0y@nZ=JEӡ8` P(*o'U mY`6(ܔ3O94 PoƤ9'tYerH2XߩpK1,KY ֬/IvS-Lw_w ME}mCF 7 0|;Js3\Xo|-rĀk7}v&,Μd NRȔG"k. CIU΄}''xbFy7J .^ B> m !3WݘޕÄG?YjVq$(Odw%-VP^4u| ؛^֯u%}fhE"L7!#d Pl`w Fi(nƊ?c߷t CR|Kop9Lu 9K_w?1 ݃ [5w@=DX?dTGv4u h0Q0Db0S {8cR #_+z @mܨ:j ֠&dQ"4lRTRgi-=?Yc&Uts-:c1Vi릒?t_sA4+i&иF `$M͋z> $#4C%5-8DU[VP ԁw!D٪{7}Ft-y:!x10&@oy1줚*}-yTb #bŵq\W5o?S?Z߅V}[Op *3Ԉ[^͒еʳP嬺=sSgQ@ :v.58Tn;BeGUrw <F/>x8@Ȥ͉^p7Q 3`uq7t)maC8~z@^d&7^S ](7( \PᯐûSUO~IhG͏`9@>cduI'vz5=2{t)Bol&yDt!<Э?!@=BX z#VVKKeX3 V{NKcg}VYR':6Ö́LH"!tHZE}ZFkތ2NɛkM&f!!F2Ψt$u \*ײN%tSOsT<@_yz-?6 0dfŬLb5sg1]t!UHVmؤc@,x*4G _a-y;3y7<&\@P&QmMiA{U- eGbB0!j;>*hf{pJ\ 7_]!~ٶh6QFP#U;UvN_U[)G7 -a9d|(#i_l7'y&gw9H W2Wbҙv ; #Z(M],D\E^Egj(0wW\$t1@9kTg18,4*V~Gc{ 4qwsm6/v\f1jcPvYP 9C 型f<<8Zu(2MS7Mԋ8odW-)tƑ⥼y/|MIh ЫZM 'Ý]>nEGwi=+t:9bWץɿ> }F2_]E}{/"Z?Kܕk{KS|{ :Gu#h?!uapr\INRX7&:ݧQY,9m℩37 zG *7)PM(CGZ0Y8 AуiyOk], N Cѥ-Dtӆ̂i09{Xnh)Bu^/"oj[SzV|=,8po(RfʴL'yjM8x~ۅտVǚЖv¨_=Tod è YA!\҆yI'}\mqtS~,:޶} v^-6@h{v9H- ~Sy:WNn4ٿjb呒Dwl Afn`9sO|3AX.yV}J.HRn\|] '2#6r"yfputu*'/;.]^)/8t:+j'.lv슞S`Tc}ᅒPʆ3 X%fzs]UЛ? cp\!R҉{G[G _uh^Ѫ!i㶛zEM3y"6DnH"YB6%eg\NyW1}W0~M:\d6TU3fX:$&צDe OÞegiyRM*Z+"D~Hq EI %꒎l õW`f2IL=ڔd'] >…69PKM%SR SJrDoaT>>M1 m/ꍉiT0+*~۩?HJ6dC\'nWmL49T*av;\sNd(@财 p㱉gbRz vB:PtrvVRޚH$audZ8QE\R\/OGL 8LZKPW o^A{xUYN5#l!38~bzhـOm)! V|lF̱>1FQ WpViqtDv+ !W}YnqP \+`hn."CWίfFnըK䚲dS ҌZ4-gPeQkϛYW69o!6o<'B"W yܹ?XI/'a2Yy0Ŧ)8=XSO1#^˂VgL//>Gc=4րYǘ,Qln 5ܯK=/1I,AZ7t/p eh@ _bBo-i;W?Xc^8Rn7%[E<싳#o P Q^$}>vs~%͵ީ Pĝ. rÅ"R*,,S՗2~k&N]̼cWvmmqp {97^~O@9Arr5fmrt2y{잟/T?wDSϫ7:7T>3A g0u&*(B6ͷ_q{e,-|l[OESֺ}!ܚ]l ﶲ0_@iL'&ݹ(c$ؐ3;+OسrDL#\N 1saf=$D1lZ@`<\P_\❨ EH[f#nn&>F8J)QQ@4i u?*{韄ZMбoQ(KwTƱG~_[I'6\Z5pac^] d)٘|~~[z]Veaz2  ñV%c{ jfәڳ9CܫhTaMLpQLz pɠiu|ڀe(BڅJ!zvF p_Xhc!n6u;>Ul,aﶁq<4r':1fo ( M\E U_d(>3LK2]59CwulKm'zb S8<+3\ YJ"nTܨ@9㜥5:ܖj{ioZ% uf:ʆ\ %s'YB䐞2LF:opEstE!h2"k|WByFVd'@o8E"ɲۿDx N/S `OFXL,?U(7H4 W&tHNAIi5eH|<*zG8"5gK`)&cȂNx8"Žg"zʁY0r%U>i_N)gaaXQdu [l-oY)-lZ^ o~og0tϭ@b[1ep_g56R(˚ bWb2~@Lx3B;9D"a-‹o|&L;bM3vv1XG0[C$g:3j\9ZH@j4{gAiEOh3bGU0:k Fؔx.2}lEc>KWYxx DW2 |7L\c) ᯸$EViYb;&$VXO-bE @0!gk2XJ/ JzTf$m;}Cb%؍Q @evec0p)"zSQc-21~v >U7fVYLQiηWH"z5p5#9ߞބ1jV yrGhiPI%ý .:`?WRfVGj3XJi,>MRwBuXªq43b }T93G$ȅ,ȒLyWʻ]Mq.ڪ@2J_LX#O/&_0Q'b'{܊™O} A,ۂ?1PFU;@6~ :J{3`rR>;o^Xh[&[?k-#7/foGFB5#2EE`1f])i;!o'a滞7WG kzOAiZ wQ"`ـgw{WB_(y62#1 _chyDe%FCMnf Qiqi5QKP\%] !,M.8F m qÖ 0_j=عgxX1 P\)$4HrnֲBOgNރgEP ASh&XpGt>'l=`H?ηHIwqמLUSrrʦ ,) $NBghJ PcǴV1;pP˼K mM9ykLlCVD-,I@\4UW<*^ f1 }=%N<2qfaW:;u1 dvGя_kE`ކTZ\E 4# hMcBhj\(|V[A/Ndgh:*p5Jb[/!+uM;KڑIPn(?f^9v4Կ懭WEO(' A^t'0om0"*EGE6|Xv&nWQ>2.1@ |cJJ6gkWuU`Ҡr1N,febPqKx ; @ԥV?Ȍ\)ϺbjS^accwѤh$tv1̤RöKGa&*'bӋp E3_17Fut 8ՂH$1y%`v:ܨVǠT~7FۆţLx%yċ mTλ^DZt3qlX瘉i.RoZ6\j6lj~pխX3i ^%609M[n}УYZՃ9Jrd40`f35w.6=t>qsyEXr.>@ddXwDfW \Z[PULњBhxydkN'+.>d<_IEkVH !ыj_ 1JtxCrl F2Ju$qm;pCg=5mޛOΤVQ C:ysƀA]^ш'X.LvֲuY`̄WNsV'@;;WY ,GW4,nb9XXqJLōl?#B5Ȧ͝)12ﶕhj쪈nBiP5Lqxh.BIJ3gt=hf w7󢖯l7' Jg b"oLd`*B+[sܷ rpOy!f%_ơ3%  cPy 'bapox$^2`NXFC:I0\k Ǟ%*Yp?S֦;q`W݇ d.IdrlEuojG lt>T(%= [Z߉]15ql=^t|';0'T.~)*A0ټ \1m[|Ag8,ƝU5GXju IR"Hq-,:t'U97A4 d Xb*$8:jYYO\F6*ʘL(+c{'e}%,tq\cj/7wfP~KxG+- 4qSB:ٳDHPI- X 1{o\@3O+Z2wEZtmJpɦy[ &mggG9*ZT(.(XC l8kםMFK}z#GLy{ }8605J]Vss#aS0Jh*4?O?s8#aىuzAo\tv$ 꿪QQmf`|*@>nݖklE.C#<5 ,Qw$JTz[_Ѷ@d}"ԱC6=?%/j1+Ѐ F_C\QwRtf~4gbjqm{("6h&0ʘݙ]>iJ|3~A|+BeRT{q +0Hϐ|PU38)[ 8:#,%8<9@Cnء4hO Qq1 YA'c=k=~sπM\!~vKg*[*FIgFcZ^h8-(azgX?A4ΣZ:0I@5'? P՟vj (HzP 6BB'N^MwǰR׾@~Vh6F';F'xA!UZ-,݊H GޚטݠگVv!g_0$t4c֑MƔtSg,M:_yˮVS+M &q #:URo^8/ FJA heSirלK35k0s;hI޷l\]U A󧨳JB Sny*-up耔5 I+6ٶ)/[pUQ/Y#);I'!0wgF4zu18M ?3r}*FȰВ 1AnW3⭸ O5KvhV,Br9nѵGz o8M \hM<#R H{Lx,}bKA G3`)C8\rḘF5q4zf#,a5o!rܴ&YA()i (#өpVFH:ۢ'z{ML q$Ǧǡ!`MQ)='1(Zf56ȏ_8<{`$[T{؍bTRqx=&ȆͰ_c#VBehQ:kAd@V}/Ieh/6<$|g 2QEiO`]AGgs}_惱Œ2Xpp?fy 4쟔aUB.и |g^"G~!i8%_a4+Y]; r8@Lĵ̾j!>ƞxTe\Qz侺sqˤ"v2"-x~F{pJ|=Ԝ&3=೑T`pVNF@#"G{v'[?X9u`v^;#@n$k#z3:TENd8gY{K,htEZfʯ,+ V^g} eP׶p=ȶ-2q6Nk_浞H>b}DЖ8,JD=\ ,@S+CoO8w*|lˬ=.\MVm턡ڰŵNβ*~}!Ɋ:kb/ª/xr 91[j.:_}:-Dp|1LjJ3 럞;0tWJTى 'lW O5 +6_ fʚ"=Dߺ>oHw.YDl6b^o'2vZeg >ΌKS^7qv.h=:V}-Ђb@汑l8q+YQ̐/8FUkrV~a.sRR{)EI@Y%tw!zT?Op*У)% .1ƫ4NvfcKeJ>$"k γH1'mj='@IpbG<^>>Z|*{Zu&7R^g_A6BhCiS%k/=_9%2w[N"_DK^(@]jaG};fӦs%!~)wL0CaF3PˮCswV]9towĥ%VԶv5Q҆?7oIS3A4 T 4)3?X lt?`03Mkn# SG4LQ-^vwhcGpsB$ULN'Ć+jq2K&a>nF)V%,Ӆr :tо" .HrEl0!+KA> {7ۆ5thttżv ~5Ң8~i,3a?}>MX :t4>rMd#j#vV{\]si{= ^ʌ%8{3r[y.b9vlQ޴WiIhT ws0xfX$>ވ; X0Da6}TнR"8nCZwC*x,[M<ʨ>Ixt.9\w\@2N.v]<#( {urk(}U ߃8B8!.O6WQq̗6}hT0zz-EIb.-W2׉7S= vh_ODuD:LL<'Qz$o;@Jc0x?dzg>Cz,qB^BD,kڰ>;9eaE+|,' ޭ.Qww8(3s$Ix*"/' tM #_H 2XdE^0h;IhZÊѪA` UbZuht<\d6]8 ~PFKON:߆ &tм4o8fz=PRo{̍G^hu3Fi F>A`iqdPr8mмy(S%s.Tl (B?mJ%gH=஁#vi cE,.Ms>A$z m *E6TO>}r\bgw ^Id?ҤCt:e3$7=sG oíyпݭs\܉ל\{J&ԅ\&%٦J%uR12[j${~i' %OphHhh'SO"6^d{D\LMymK^} hDM?)!cQeaBs~z>C1Ix Zk8#gCoLf+'˱@jHNgbh~l}Ey})pF8?L/$1XZ7Br ʬ=fA;w`w  JTϺiO~!Hiη>Kbv4kesS}{XpӵquLG S+~n郴a;TE [PZj1îe#%ql(ҩum/?j2!'@OȱhMczհz[Uu!)kCM(wɺ5tYwܼ|J|"] 0QGVHo10)/EW(F$}wAҴDLOF:uxF;bU9k!:&xܷ LS @M7+ PӾ?-3zuYmÍ˻E@%!tJo+?H2Vꗌm2eBDW1J&B?Km}o6o 6jC9r6z[ջ)FWeOʐa`ǚF˳%L{m'.>}?ii="3kK.VfYhgu66 U@Hr͡`BTP>X1tPvϋ&:>" 2ɢ#ޚIK92E绿$>!+Q]5Sg ٤9X Tj"9DrKueڼgH\~C]Dr>s?&헅x΀":ÏOH!!fΔb:%%i6V]Yz}fNj1 |'Ԥſ8U 'ΨQ5zN{Okk.E%}5ɨ~e9ڱl8Y :&(X ~䏿m˶Q [~k oKxq&JK*E֋yRqTƀVmF%)2#&ۜ8Y`"lJci> XpXς_*ewM Lgb`{C0nڪ`3vE lWᅂ tIJfҠ 0^hAT78!-J$ˣyMQJ̭lx2͹V1mDKrdaSDҔȰ/vպ,<$){Tڥ=A2Ϟ7|9Xh ("й+a@ Al `ˠ X̗[f-G)4n6=.Ie!5,L^3CXZ9#lm?fhu H46.ɃK? s`"e$MXvP=_{V}]#\\R&=siɩ*)õ*^]%fM{H ׈8k&^X!EEE/=ۋM$>fz%4Tgݙ)/vmdo`$B2Fzovs Ԙ at߬Չj.Os^y r|+F?wh͆OS Kt!y1tJ@X,:U"ISKT?rGM& k|E3yZzKnPqK۾^pוDr'gNvi.6xN+h1 ߭MYx|w(=5ュi` &b}8]H.e6N)#k]N* KMU鬽SIX}jm'4LG+C蒖;F])7g&ZٍHVXo,#t a룴}L#}ylkve6p3a.USo3`{} vYLKIBǻSo%Ky }(+9'Fs¹NMD=ZӶ9}>F,|iTPD+7ET%2s<Idٹf"ʙޘvzZT`{b#//M!<{XW`>9[aK&7KR̓YЕ&!C6*2i~QV/q{7FH]5 V`9  -g5ލC8\"(Ud}7V $*r E/Pu&Q뒩D*Ųvh7V9s|8 :Iysq)6ޫKF"ʗ5 o`fs/mDoHs(`AoK'g;Ù˵XA'~QBBzNGѠ3BUK@ouV:@Jom)s-Ti ŗ70`_)p/ `LHmFE-!ݗR1H0棞VA>}2Uhs *1jb63wu۹Ynl]O`*ª"Rc k4+Am+#fbD2$hn3[r,hV#[I5mɊ)ez/o&{ ʌ7u4mr [N|CI58LC#nfPO:_H+]z$m[8l]Ql 2u$t#Al8"c5ȯ}c0/'r~֜ZxIG[1^nN 4iQ*L2.U}[vEyI׷;bozb%&KxS-eBHw,P؃7XJ6< {OclAsG.8sH8-1ѫ&-2T/0Y|hz_8LdAy9X7Ds^C/r0y(lצ5|Ȏ j>=Znb0 0U&콎kKtH(kc9,m%2iS/+I|vIzM >&t7AqXBQg rr׿0}rqʨGrgs=MD H e0ϨN/ȈN0+ `6U,(7Hܞ Jk`5hN|#i30@ HI^ NjUYŸOj1oWš+!uI&2XML `Prcb:iVagus ^UWHD;>LᰦKEZ{U8VL^XOHTkEAJhry(+ i:}Rf"oc.4g7ۀm{Ɵ<8&7 FBG[O'2oĖh5HY?.޹rTr?cx4,9EeIVIfKZLڤ"OZ_'u8QT?ۆܸl@d6K!!DyAuG7ByR2)Рl UE* h,%Ui Nm2[SSُa-_nq@kR>| ΣrfCqqdh޽(I[%$lAi0v4S\]t]o&k[u <=<|)" it_9^A|>ˮ!ze„f N| ^//cDX/13 2D'mVz9ʐHjh+@`>^`Y9˜=A .T46z g;[<=.lby.(pDS ]_@j̚MzNLwT]L$$;ŇBް 诪w/v}$c7t!zI#'-Dd/:*VA֕_Z 3 H-ia Nz&MYG.Lft L{eCemiMmq&K\3,dIh6bKxw|.F3t'!r%1z J:ϊK5T`:rA]U} I c Jff5qV`uNjgaH+D~ '*'vk|Kp3VCNݪM8).Mil^b0U3 &7%!%Sh& D]EHo3` 3Q=rٶVr՚2˯V=M\=-jEhqGW!98E |yo Sh+E)3[p'(jPmhBG֜s؍=4$װ(@#G;IX$ll`D2|s'3Sɻ*u&)b=g2<̖f0;Z0/x]XN<͞m.B\ ' |餻"Pn{JDır"< uwU؟`j- qf[HlWR$\2ElFѝmch&<_fYmƋج N1mx-u)Nƀ4r|UF+l۩㻽5*[`^kL3(^RK\Tּꪰw@b4fQU+n]1;7 Z J{q?ӐQY(hI.݋[')Æ;HtT6MviUƚC!KQҗ7{o&UȦTXSQ Z[c֣aG&U85υ!^ aɎ o֭-UiRBOc֊ n<ܮM7ăJ;& 5iR)~-Цq1]w3CpX)(}m's)|ST$; zO8"4p%Kt[]IL4dQLaF*LKȋkGb_h=_PzU!vZQP8/ogmĖ}ך;anմ5z/Qr` d1wJwsKB! nJ6|0ANGfb;![˲P[(Q: ;pT ~ yNقu6Ŧv7˃Z"wQi)eKlѹ$ |/+sK1|VT8QNU*̠ud~X@ĊfOӿF8}ǰlݥ8y122BsIy.%ITv!H}RmEFu4yʇLmY(|fy\Qd%pFU f]V"&l\lft&`+WDػNlХOP@=R:1V#]Zn7 f-c4{箿`0' Z6k7R[MsUdqf cFUls|ٹ(S|?ߥ(3hO7 +u]H%#$UpMP9*bv4)[K< vL_f1Y. )`H.B7\ F1 wWWT9h!mC<†`C wזOnh)j#՗:8j>lڢ| ȹ7{LN!] +9r҆v{j(dhc7([ݹ9A5|(Inù7dsY'ParHm.ufYU$y$.9og@,flÐ րz_L~ONbx»P{VU]ev_9Fw,RlvJ)g$γ'VWB7zc_aLX#I͑/jε`B_7RoXڜ&| "_9D>G*D弮Ռ3 2"SS1^X\@?Fw'xb]JE5DqtThN^p ̻hXXg - XgqR$Lz -3C׋~QC:DN2Iܠe4Z >j*ܝN7o!g)ۘ,D'Rx"'+SY!KX9 %AټQH n0%icb֞<mа y =}gd{?ނlrS~6a7w!tMc]^ۻBi& I]@/2ܸS~$;ݪ5a-0M$W4˔V%T^Vw Iу9ԥnCj .kJex1\lwM 6ʌqoVyuv %9*4G,@efyX&@_YZg|vIv;ו(qwakR?| |T* ~K\eXɱnk.(692^E]^ĺWz2,o9\lg8D.w)4u+ {K\YدZ5? a?L vy̻Qqvh;]r,Õ͌8&hj3Xg{wh^ԙ8d%wH^~%6`R8I)ڎvQلń}kzZ|wt8 iQ ١s.30S^bWc<4mO~SgeOɕRf -_VDc/<pJzĮhITX,b-\aݽGH@s "9n U[R)cmg"|Xt)ӈ(b@< )E 5}]*C ;9Eǿ@䘐?[(5v?'KPMOȓML5u7ىCuz:r>5kZΌW\. /dΛ|´LNX(tfYT4 KfT7H(8ry,ݺ9'>Y{ַxŮ| {hf;,Pb{W.߄NEa b=/cj19izpo,ԊT j9 mqBA+9_SٵA07~`JM }9xjv9ϮK$IZ,z^ͳYl>wa=dz\ގo-ASZPMٳ > ej$8ӥ2x;Q.x!ĭD@oZLfN ώ oȻP^CmR1VA3z=]8}1Sux?2-N= @O(A(m=f:L-evMOQ *G^*"[.zW'DK8`INѵg7)+g|lXlvs?FFwkfBSAXᥘ2seC@c8 E5ݚ&9^iDı#-HJS`҈Hf@x.w.1Qv\L!tYE=M;ǹ'g;tBc.<[ P\&<@&rG+|~Y?:T= _eDb4nN&KUTSay|xؒ plHT]FK#{ʙkmG:qNzPԸ^ ,wC,P0=83U=6wP.wv@!BsنޣH3饘o_a-2j<2ɎP=Rw\g^=9#ݧRIO[Dyق'|>b<7SDSfϲ=A;:9{X贆^ZCQRo4,m~GZLXcN:feq,a=癉Vǐsm C6a,L?BKP u0;.)aݏW%)O*+!pC|]u I]F.NpMNetïw>&ɣy6Xu;hP+[LQ[= d,LBUQE6v֏B8sVbqJe\ %b7-ZjA+PlwyldiΠ)m4PNo`rN끴H $]mM2y?m78Hoq,1 "K}HW=/Ծ(kEOf'v\b@J HLJ0Q/F0JW#.װKɕ9^ ]p?&]L((\Cɘ>Y2T`N0sd;[r;F$m6'2vcȥy%yk<`:"D=PpZXyV5hOzj2xM~%hOyZ7ːcǃ(::%ut}N=+97Rd2PtI.6/;<&2)\~>fPgmUz1B>HψK݉pآ~J-i]^!EI"xd/1ϝ.4]5pV.Y|$ Yts8=Y(sl%\r>.Pd1AJc\$=:ƶqs#aH_N+pY2K/||J(I*4 XiwWFl ĚJ#<_"  zթn.F uS~\~#t,gpOzT\t Br1y / N@VnAW<WՁ<)~lc×,F5@},f4q@E]8L53Ͳq-c@VLFku{2.Z8?{<|Z#Yv|LؚI""H6u?WNݲKV#R 6/8~cAj.VL @An@!̂cgP} H7ꉤ/xVc 8CL2_V,NAݤ`++vWZ֛q᪬5dndlE;q'Ë]wf1}A&p#.E"^wtд/_?0LIѺ[5ޑ|l`? n ćLH1נ4Q0Q WXŭ]dzeVHiG\"uǻH9TfE'hz"7oF 4\W=|(=Ca1<`ti'.Mpz# [ w_︽N:R}ɘo*Y'/ D i qk$ҧ`t-4hJ(GF* )j-4 )}3s:rY;feoe: Χ;y(ӖaV[II~(UW-7~!AJxWml*~5 ]r\qjc^ .8I "DO| ߴKnj\WFK؏㎑uMW0PJ4xtDժD RZnmU(eN[<Ԅ*68Hdе]bJrEVr8d@/xA^/![qkJzUNmIX}ٚl,; X+I=n=3z/c&Gp^1"t 2QX"pu0T̳v2ժSvZP9JN7DV) tQ< RMYJTىŠi g˺c%); 30 bT6Rw: 4?kcrFě[ZL _申(U8;+,+X9$ĵRJXwKa3NSn\#> `_|k5n o_ ٴ. V_tƃ/S1t0]]IfMdJVNh&U 08U! +4xX(2,R[^vt3516hN㭢7F~f^='@TU γڑ[b2s/:7DaOS7Vh+AP/j'+۾rO\(ߒbYǀ1->rMc>쇦#Oif_&\T&Ws`K-?N/A{)uyŊt/D-T(xa/D>. ! )?;uOfhbm<ڭ3WBP7^R$5BPjUmpP9mW)zk"j&լ08-6nB(% ~a@UyU?E$H|qѳ1:.+]}#d;gԌq̢yuD6B}MH8>Zd`g&|2$X!Rz۞%}`H X eԥ[\3t|2 R '_@4p}\"kEbQFIs/XUw{6k!8a^D/1԰鮪;C@A+[=u?k٘V__Qϐʿ] cirXRY^xHbSJ'sN lГheR٪Ca);Y/ R˽`3pl!},уޙMi6*@5C;OűoK8}ɥLI{}gjTx-SMՈ(Òpt!cFs~?n _,ηMDHvJ »(Ańݿ>/8|Dj:%5VUFi4O (qsXӝ6+gaXB0 լI]\[v'A. kP,H$\C:9b# jTRS\ɒQ\ ܴI[/p2xgpZ-nKW,ɦ[Q̙1fhT,HHSv\ @E_l&\M)@o *,BJY d?s9AC6@"VĦ>Z-IA߭˧|#rЉX0#g,;IDEVwodCnlNkQXjgA4cJ ';y,n9y+ڱO5,t2V.g xXQ4B=KD'jb28ͻ>-$іukFq+ۓ_Sp]= ,>ZCMOhLL$ {H[ ަހļZxe<Km!GA^8NܠqEz<l׬Wg A{-a7O>etAz_c!D&X g ޲|PðP=r;H|6G`ra:0dlYܬDSO0(iV+vubΘ5Ht0^U 8rcA tT+/,1hjg1:hQ*YG0YV  ]uXmIՐ.9kԐ.MqI,V7DXAW&Ԟ$ CFwdJ?r;8ٕLڷP\!p 3/P;Y7f!f᫓^,$[0#׵rf18.b} (čEs@b\ \Η̼x\:9ֆ6% s^B${M/,nIy)mhMϲ_~#g ލTOr;A꺕:%Vy#* D=䟎7^ h׬9!g*}W֫ ThO2mo{ blG/2Kx6RcS^m6`-rr|[L@uL`vsI8B^n}M/$X| $wۂh Mۯ6,L8g0ύ`Y Z'AąO'Zҡ?iK1Z`_Jڂy_pܫC؄9MLG.d sPb7(p8yq]$2ZiRzXVWgm5dIDVLiQ -V*3ō^O90Z@ډAξ,~XاxDa *ԫz3ZJ^ C>})>%'w~.X/Mͳ%>E5(JkVz֕V'1b WwP}ɔb悴֟81zq.#x#\?k3q{Gj6GSS6K|I3׽Q7M MQ*$:_$e++je :Nrx~:(y2~2}.9/0!^Mru!La/{H9KdPkwxRv? ?τ]f9&ىmP+p0{QJ2~ -,fc!NO{=?~=C,Xaf5Nh[d,ePsnL_@JP2h?qȡJT!8 :[k+Om^uzޛErUۣt-3_5a;$ K< 93 5TNb o@[#ߘ |/=OJ?1BLs+d R:M}in($ʶ|Ph:(YRn{B]q˳uNtbx><dFީSaZv9 Rq9 CΪ&l4d~ڂM.'7SnQVĿl޽03-o(([ltC~h iJq_AN0W>cڡLӫw A!P90;Q qbΕ>@pwĮ>]X,XusT{BR}--ɭN!Π꧕T>KFac/;x 7?Rj %HSqvl+̅9}} 1rW*) O*_ՒgP:ݬ+fi!#* 7 $sM#]Km.]gҗX ӹo{OZAgzh^t7}yB BO2 ѾDRdž+/l!jX+o4?"f~NkyyQC(lb;xEW ^@wJa8dkSDj60-Jia=f c wM::6~Xҙ0ҝQZAC} shSS la,;LKU1өZ5#dk(5J_^ K>&l:bPJ5|24N(k2 R̫LfyN۲;p)eh0=S/1*|#pllqoc6' umxRȭbkx'zk3Mۇ+/5\]b"-vY b|]b~Զ2.]J7_@qޣZ\>SʻׯBpcK apݯwՙ[2HNT\jWS#8瑑۞($I<- ume:I-WU81\J[g G(F\, O J(zS5!oR"E㗫neSp9JsEcQJ!3":E~&-F\h{}^d U_p/di@ +rAiKh7gR7{PĥQ; [(w1~ 'm{Dvh-r, S${8_h6W߁ש6Oh#WY[kfƇOcRll|fcq'K ]g'=תNJޯ0K#o%j;= 4ߊ<( w`1K\\4o0#iEa!b7ܮ ^ֳ_6wޛ Hzjͻ1]K-D &PGv1[p_' lTg% 7TiD0 e{*.8' 8SW> [/ຎvc|iM'~ &/S#)wt\s`u_"'(?M$'wΕ|g+u6ŃRn6Kj%hoDm5՚s=A;s4uAY){6Dc`ySQ8# Y֖Om6A\aSUi0ВsG+9aς-2I&9-m0\GP23mҼo,ꢛk~S=l*Vԛ.v0 Pn!my.k/[0H\ 2O͈:\lHgs`jZ(A) $Xy1ρ/9P#\̬ =sQ`< QVhc.ؾ8Wt(=>T9ϩvʿ#k-ʆ5jazOSGM>'^s?)^9vc+ 2d N x1r7[#mt vMJWxb 9(r>$sKR ?P*DOX̸^B8TVi,yi:LWlbkW&䄯cW RN(kw~8Z ̱Ĭ Z<*J9< JV}sFǐ}TqŗO3Ii&ͪJ*IB|$F_Lpőmla%ATlhRָ "5Ϳ?dd@Zq@w]RG3PeF=sqi Z~ZkLIܱ1{kKam4,^}lϸX%[`)3j~3Z7Q3!m?k0̤]9Oum% "[lj VBtM)xdV]҅9ZPs( K[ݖQrNe9\ncS%ETW) ҽ K;yf@KX05ﮥS<ӗ5gf; d/Cj 7-i^#95jqc"l֢._{ ՚,U 겥E4-Uv|uq|%l1ﺆ?(^ղBmSR]ȅ+Bwx+RØZY6ι*3j'vE`CCJ.xnx)J(v7l/)/h#DkPvCQHX ծeАtƦX|}ׄ1ՄAƺS@s7$ @M&;Jj P@x9 [&Wnr.;H!HtNǽc>N\w54~$vN=*Hxݍ``e60VTJT0)tkVl[z' [B |l)19:iqΊ oCwn^3Z1ERI#̮3EomCpm(lQe,$Lồ0 +"!{QjOW37@~at`E~ǭd3g /W$/^'f7=07.&ZlnEV1B<(/H4G՗hhGAH0 zܐmPDHʔP$:ǽd-ښIm [9#lLtk(|q8]ӁۅDQ#<-F]6 @X J)z-Ǔ!0DTlq?J.P@q61f.('UkCt^y{b2ž*խ+38XKlP{*"/.W@ ʱ 0]I#!o[PoQ㻟w;4Vy\@v ɎZ8 +P 9INH;P'D{z˛dFW BXD h[nUOLVfiI 3|͢St\EP^(Z2\ź"`vd,x>bf 8@)BOYfn>b!%-}O p]IQ/b1|7=[>DSB+׈{2j0A㨦 5!6d]ЍPO 97Wmkftªb40<.W-W#J+: Yͧ̋Eļ9jm\N ll@0R5I$jdU(iPM"MB bӥyr՘g^B d'5Τp;93'ғ^1טDT۰Z讈gKEKEJ^Pm}jtYK "$)jʼ4Ě@Ķ'k'ԓX:Cڱ`o3Qy=:MŦh P0z@qYkZ\ATy꺊#D"+osbi+5rqCWs`׵JMU/ Rc `=ͮ,9HQYIu_I :& p=_B_ E1z<Ж&^wL2G҈F5[3HD&1<4ʐZ:N Nxϰ}trelpT`zƛW|A[dBeA&k_e tJ c偝sey'BIjvxCйmZ3hPHkFrӒus1&t[fCc }&>D2.!Sai-v/n˘]ۉinڥ?P;g+#e~HSAފ?"r2\Lx# W諛}wZU^r@Vlnl0u98z쇶"9VIDo'D0g}CGp|6\ŞB,i. `: }DJWDINqU+uBC 9J)^Kuj]`ؑm|_\]|`* d@PYLgOK=p+!w|=ҿOv{/a:#q~vBx"QelC- `qg% >(o%AbLQ*6T#Ň䃧#AQܧ_ZS}Tψҗ (';ݫl0y,@ j`c4_msxdkLg5$DD1AGq4 fChX^N~La*j L`b 3Js*2r|G>qӯR.MC"Q^530rM D,e9,asxINːv3/Pin up1 E5g1(v,I=l. q 2ӽfhǸ?5@B@L>pqB0ΆyݗnX->Fug^v|#e5 @u=96Y:d4324ormN lE&ɍAQ@gS}?c#/DbD[qK'm%r݃ 5@Na.9C-.)ͰH@"} $v{X*0ݮ:^̐V)}#բ&iOmy0H $ؿ9[(&u\3Z;I)*Y[*8Lic96?-ΓoH5RblucڜӀY ›aL2K7~]@Eq~=+x$Z2/WbձHoHVUQgXr{5W\Ek] !-غcߵ^*\Rͼ ߪnVIJ78Q@<o=r5eyU+>Ld Dl @u6gH SQ>x/*B^A+[Θ>XX " bqƔL])&Jc!b7(P.o iMWg vw.k!,IΠ-8ɷm>\\1P.')uGn3#=HH9~FS,|skJˎemo 5 4^@H~!fCYqwmw1۷4O Q}J<d.ĔòQ{#KΛƍEqigp'+7B5CBCoܞvLZC|A`Yj+Alknc$6]B3@u nƅ ?٧BdBd߱<5-e֢1qe2Cջl3]%#GGS00{oZ*/괳ю%RRgX $E·qf< ނ-*;#c8FŢPWaڒyf_Kje;e|,FoX'ǝ%@1H9~rNp|d1@47six@ %Gɰr=I{,[NHfU DlN8@4rOϋqyЏW)UR6m:1v8bR +LCOEC )7lec(& RohrZi u[pSs#19i݅PJJP@E vq kvk<73.4B(W}GG\:E ׯ ߷%փmY:? Ptv5fQvl]9gJoVu;Zڜ*6; 3&Qu:Vľ[,r޺;op{(cz] 1>R壈̰4Up6ͯ` _ oB7@É,qD1QPU^h5[3Q8Ss˜w.GPK PP ܱ% g/N祘F\^( K: r+ϱ6s̀NwXMjIPW5厀27G`-,*<_pV [mQ)LNgKX'9޲Jő@U)NPoM\A[}KuʻK]1dBQTнB#]oڽm/h!`:S{!t1b$h[?ɳ9hW&Ͼ!:!iY ;5_x E@LA?AT͑J ? H%$q{0%tG4H<,\Ud-PlJ^6xKaXg[{/1';L?.n.:D~0w"LgE2hise3+tqu5rgK#"?̆ 8g])Pݨ Nq@Ex!~IrDa}hq)]3NtT2.m.#s2W4a7+Ѵw$aU膗/KW2(˙;#OE|1N`Ovb cWS?@`4ۚv7wɬVL9 Q\SQ4==׾Xn+#^Z"@נnQ*RiPž.dTA&(R-5t0[EM6ѱ_Uq>d\Ճ*8YZMW#J\4>;׋QGGpE4#^%2A1~ )&AFr3BKyPwɈ77 W?8+KySε9]E Zw'Z)BȡcTT:2 ) D%1[qvT5?dcI1GnWąԳi$Un%JqBimV wfiN;3#ŀƎrtFMx&c0\wF4Jʖk9Ym_yՀP z~KӰΞ{=r_vNm^PC*{Ӻdx\D£B)T4L|-AHGi->άWF/ofM/#+wθg ,8U #}S)*iOV)ݕ|@=q;78/CRK'7vG^#RFeÑ 3^||8#8:Z}VEc7s&kf\GwP7DTƝHNwJeh8+'3cFW0.Z-wc"JXan.z/Ve0u Ի9傄u[xpVշj;*ߠe 65uڀـY%e0طZ:ʯFrz1<^n?r)(Y{40cs;EF_ i.4P`X #`Z{WnO,)܀KnjickWKߎ_]G  1圐L@r-UwـAvOnYDdwfqQW[󅉚sPx_p<'U]uaӌɜ ^Y miTq$I_ЃzG-F*K\7Ž!R"<@M9 ba#8M~yBr뤜h!4kq84d9ul1VPB cK ,YoESYL5iſمόZ)J)[RssRbymQˌJdUnA1fөv|Sa >CY볐͛$yn-veI̼vЌMړY]hWE/z޺K6ΗB3ll9o4(W vvIr?ƴI炕'zzL;p l@L}24D8sX̉8jb*=>sb΁Rŭva~lWIg6ܜd]Gf@s.RvXjrOٳƩTeq9&Q=qRHVM_BC]GLkĊ T\ylXeeVu%NBWhC&JGNDjM!ad逆w NEe%Io&!E,Z Y:QcA.aHZE x'?WDCwI_p V#Rw+9MY"c?Е_X̖:!g;'F?ƈL^%uubl8edZϥ[:H׽BH Ac~4$8<ٍBCdWS=YV-?;1eH/)djOQ6Tl#Y `G^% b";m8/pZlnWk7f̳ATCH<?9 Ɏ]-QE0ȮOqPQ3w3?םfv"Ik; ں|BxrfTx&0ʴ݇M=e+.uKTa"y΅"5$XlL|JylOc@ n\ ԭܓwm$Q~[o u6ʳ"f\}% yvڮH c,cQSSWO렪~E.?.}lPt8*3Q`2Dr|g6,Jo+V'๯ٖ6?D%vLhsV,9}<"C:s_sswopTV}oy`W_ <$t/J%l좊yRZUQONh?T憅Wū] -;cg⟜OLZEk2T@3 (K_knI;5"c Ub)ig]\)uUSs{ ]{e-#;շ`Iߔ= LmV㞞[ۃAԌΓm.]6W*Cv}^;RȴxŮrJQL/Xzy: Qt(gJeܡ"at/ĨW~0SMm+r{!F(@5lJ-ohVL+-g坕0oˀU'&9#I2^3lв] 68+]~QIn Aty𢩶@ ܮL1jՐ:*GI\8 YRWg&QF'n.xA||N* C#ض̰tw/񒊊{f~Gy[.ku|2~/]!IjqSDv74}S7Zb.d;` `N2D]&1"ciQ@Ҹjv,M Ѭٕd>W*d6] `p[XPR7S`/+P;*@rq O#  /;ʶ{'BW7j|w,+B%,+Yt7J#WL-갡X-\0p7sk t\s!kgVC>PRݷ_F/㥬'pPc5V}8ڸS.QV%J.f%cߞbnL&]S1gZ>I@r9-P%Y+,4t@C,24-Zx9 yIA V1eD< cѹ},?K !)ŷ;xmHIMK~hզ~k$mͧn-2IP!rmyO'mk Q W2 Ff+pF <Kڜq T+At䔂IJ~Q_{PuCC~2 +^`ּ͵uLVσ$꫻&;tGBXq] 1CuۉU/͗i۪G71lx9տՠ~؝=E >VGWu_޲Ncv=ڌ:%;pR浔Ljg+Rz= @a]/(oAl2(FnwutJ T:K$pdC:r=)QQ?A2][_pz乫Oh:ES*^D[|/|1sYځ:V,sK* ./.]fφ4J͘Ő&A`bBGy¡j ,ȴ{["0"%m zXڼTr3 Z=6iut~ Fi$ &lYjO"$:9(̾<(Zg-_[v B{XFy\;s ]OV|(7]p.KB {03?k웧W|H\DQ4~VJI>@)spCl.[с$wS~1_&Q@J[t#h]`㱍fDBNd3/FdɤW/'WCXd{b$.ݚE?poEOQ'] <3OѦV2$7" li?/z[ӤCu_lf  l(FwX @W+/̆]i*E7`NF^Alt1VWZ\d 4S 8a`^Z{e/+*~ e  t\z[Zb6JNQ^;fE|B (PM. b)ElfJq\L gUӉQ܃bJ(# %E$#@I Z2ivIhR&{ҞX7gcXB,=Jm: s(+-b.ۘ1ˇ LO#ym_jG֠G#^Rh$oߗSxqIVvI(HO'S30q?;P۰jK}ɓ!ʐ,BjOZց_;-.hJ&+;7@# XՃhQҜ#}'7:BՈAb]Kq(!׸ɗʃZQ0!Ⱥ_(ȄaGW++YM3󿠣 <.~+ien=d\ie[s-p}G}KR:NL0^? #D_)̓i.DkD(`W-RN`q|[uPW>E/3$39[ۻ0t@tUÀN-EVjLk =s6Xr#yg 5e,g|E qH.T_?G 8lӣ ԧ0gOfI?fO5"g=S{o0r& 9Ix0?6aaS466W&\ {{&}=5;PdдG<\];r0ㄛ+$ FW;9AC#I;܍/V.M4+Ӓ =;̆E[ŷĨ\|'A5 5yeN0;g;׼d{mnms{/ }m1md0=&\ MbZhu pO:HιOYrr%Uu~= E w:6  !jL=citL\M}~:fӖc!AziW`!ī-Zv0j<`bY^Cq9k2ْi/RGdL]y)UH'ldJy^]7nz Xq F>tE :#D'KLi`pg[;-V|?8.!DƣidYM++DC \ϛW1{U3fAY?kgj&UuXH;n[O}()Pt"FN|T< ?w#1#fXM#NzV D|ISodSW8`}쟗H܂ Efnkd[}9yJ$JѐξL$Ku*5z-KMocn0|花3ƕ|"~>u|qmev/->*BG?rZ=oj7kC n3!;d]VRdCnѡ}BDUdKoZ:jI2=\a~3:ݰ $L bL_g)Y~YމJy啡*&-:S70v?ADGXC0 n+L(Nu$ChItd]I7n]mfJh| m;:";8)DDD>`aJ߿]/D/26=ʼnJ.tZW#~J#Z #df^OO Y^voӸ/3 FU&7>07CrN8q#7K4-d(u T7JIvGr" Q,\b ^a?ļ;k+gLiȋ%מ_cH^uOQGY%#y|QTߌ>鹉Xb{ |MXkjj ӉT+.N`_'=s]<:)aZͧJ7/~o7 {8fO%XquV^T=ئ=aզ>uiiN#S'ldwvLz~/$ e8]pM}~EPsq1qN2f~d!mCOq}A1Yxs/rqN>I=[Ɖ^A*9V4pq/jJ 7X_}K4RuU! x~rrMAT`ᱏI~)8H:K/ J\0ZEy#X w TP_vOMKx8+$i0M:) ͵ ψ.{*"7ig[ި~w[0f8qS!O*-gCe9ms`]h(}V/!/g9UY{慄>s аJ7K8q#%!9*{A7ƹ~+D0v)M09R<˷v/&ԋF)O kxOyfD."x!\Y02hYǖH1ɂ_uC:^Fza؏! ,8)T#o/)> Dj#rh2[#=R44 )X8jدLR@k7a9nDjrcEJ|]n2H~ӞEMWB5s*ȍu|e^op뾨ۢrrC1Lq$ٿ2d~{@dpZL ,kr~ M$Wh08o}Wi:FrFk?Ĉ=s[8/MkƸ4ə|ǍfejT\E/n\f*Ps9Bދ66AwP~$>sk`@U}7g~ @ό-eslEgW<#RէRiR"UCVFrKQ*$\o&3qy$`5ȏ(2d hY&ȳ4m!Lw~o9JDm>@B\i@"af )EbՎ\ꐋ4\r$gʝ#P^'zg?2Cf kvpṱ[sq{a~\uJ~5![+3rݤy}q_/iϰvlM0{KdO*5ƬI&GKL(I:3K߸iLg^o9q =0ϝ|/? `Vvfg87m@;{=FS]^ ړ3w7,I_^Ii'AQ9?:PnS'3ҋ6# 4@b-ᓞgҒe9"hb~M鎻K|] 8L!US&$ %shr6$g=/+L/)m&2c J>$dz^^[Xrq8K7˾TfuߦN!~P3uUd3Z +2ΣMB'F܁1_M.7\Bis`LLүFtF1>& gt['3E]@ϑ?bc*$6R#kfn'_-<{Kk31~o5.Kf*G4 $D_]n}*Ee!m~ˈUL.Է;*6 Epl%o?k$RT 5dϳH0eP"#1+2% +m8͙hf~ ߬+Wn96!ߍX:V8[MA;SYPQt{G4P̄1ݛÇ{F< #uŠVN/гRPY=<-+{' XܞB  X"j/[1iGJ{{Gɦ8tD9kC!طIx$$U5Az;ɑ :sЋfTPO隿nM,1/`X{nfK,2+w]oT9%+IHk7>p wihsyniM"CKiۄ޵yZ/WY/ {>yW",+(rUq@DQUlR(X#!H>CuиrZ3d9Sk|0|20ބwSRL| WJ]2MW8> NLsK2 IX$ȳX4ĤKR{ԇgMWGza'^IYv{+ajcl%<o*otQrL"+ 1kviwpGIw s>SAooᝆYZo@G R.VmP]p;j80P^FAB,g7@[S7X֯(S_>kvia]q"wXԮrOHn;HxK~v:WL rk (O#]0,Ot lʐŇ*Tw_@r);DunqpݒFBAKe{2ӌ #W ٣4>'[ywh[2 u4F*Cϐd`,ooV**y+@3b6 dt[{&ɖd56 ! ؿ \O!:x;)W,Et1CἦN晎\g9N 9oسknݿ*]Ey8m{5?"[~]5Qr9%\m;[5Yj%T]sj 86vEJ[KVh7Ե&i>r:<ڭ,>/0d ңAGz xX\*M!wTi},_v62Eg@?O _z=usncx$uC9̆Xn%Q|hD,# ,s]W@1vS|لOEi 48t/D^lؓ2 (N'x2Wj ˍG|ƚ5_{tfJЌ~A7 )"~,_쫑q2Ts#w k׺,>%{*'Hg!zpR5M/?v[QEQy(Ӿ1Gqu*Զ~i1]ý?9Ɇڧ'O&mKa?zhUmrk"o<,V}S`h ~ υ޶8౭V6X{@O)"`QP?f=|)ni;CZr#]5pf/!/f4srexh`в2Ngxh΃-fmok(iZKTlNbqrϾ†I&Hl G#.l"i:gfه{x(RJs'qqjqbnL V> mS0fnErf !tOh %BG.xRiELQΝK%$猐ߞ>KOԿXMjf? 1G\ŘYжW)y2iJ8Sda.4AM6{jKb7!9,&W2>4@V"T S@E6?)'%8!q)|#A|>Js /V~;ac+ޛ5i&hg2])LiUN Aߞ8B8f&u+kCce"E+s&j%3]~y)@]Ĩ0Fa"z#:Vi\4#'b,Nsc dQ}uⰺr8ǬX F3sk`Ǩ'Y{gOG/}+D9L"&4`1v޶Z݀=$qO%[^ ,]P/^5S=;&vZ Ėy24LQYqMy :?F>8,OUJ+ {/NՊi) ZnVNU?oڹukd38T_@TO ua&4C-⸂N &/vvu\ t)}"H9MqqC/29¹M*?>jHXI~yoȮpPAtI_=14 g8z7t҃:׫͓/Cg^u`+1SFGG>юD-(_D򽕃&v.8eC]33}74Rf)? %eCC]E.ǰ+Iʴp?ۧ3uboõñB hCխ$o]_f#kP`.By\z8א!r.LQf5j:oWyT[o%)b#rٔ?4;>kC' xW4F4hbKU2P]q]e[RudqrkEnziE0{YyJ&*qi~mo#@G> qʃ$2>Catϓ X|T-O0Gō5O{|SfJӷx#!7U辫1UWD$k_yP52i7 F?9S2"n˱&۳zqB6aNSoȞ(VZHk dGk71fpM(W #?2[ SF8E2CJx=J.c^wl\>x[a΍9ꕸ^OUqЌߥ"JfTCNtqF__##Q;;]GĆݪ'+ yxY@.l gLhy+fF Ɵ)qlkQbA.Jxf3*m6f&,<8=uvcLa%P86PPՃӲ&aK.E va'i״{aNP!nO(ajpYVI,h@#ISX <~rD?_ yPoʸ5[[`@!&LsE=ʋgfuƺ:JdfUng R?糥P()\Cca .RR0IN[]1]S [) 50~:Z\LR_'cH>P'5au,gI.ܛq#qpgz%|a<>@?03i̸֨":mE &Q;$BĮ'1եE8IOP;f('(qId}][ =3680ҁ!tP樁}19jfJ8m(_Ϥe&=*DZ԰fto*)4' !˕0O\v|mJءw^--؆uSHf_xre4FCUBJz9Gh Gi>P%ٚe'ǮW䄲]%ZM#(#3~̾xB#QS 48VSjb0O;NrXlSHh,!Sbi}|l e҃EheWiQ)RR_h J1׭' WSog2APzrygja*Oy؉֟Wgv)L8i(zN7>h?WpU;O2Gjۀ[&?Lt9֨-KT1BX)WN22hʼ.DI phsk *V'uYR`x0"\ad)c~n>Vz$V} @9:=&C.\XOGӾ 5]mț䢄PvSqb~Nby~UAH\YkZ,cEy!ko_Ҙ.A0oG8GZn抇Sujx}ݓ$R̶=gYe@cs1! 3br% P*r} }dbO6,98p՜35KSQK@oO ?ēKulA'/pwd/%O @[xWn{!#רɿd4{JIa=SүD!+F'Pq#P70J|BYx]NΡz&>Hx4krq)8C^Ggin&i y@Rk\%+ٹ"ԓr7Rlr:1ހ[)0!HxZ0/*5zi,hl ?[ `ԢTʼnzը#K\O^k_TmkA# 5p|WHTgh"7-,zPs 6j5I0ių @'h%P|,z| 0F0$c.?(AR3ɐ _#W<0>ݦnf>Di8ֽV%7z;,V$ < t~+2=(ɋ%7khq}IfzK-x\?H=I{4T˪QL"\MbI\!oVv9Q1uVHuq?L<(l+aЌ^^Cu߀)/z`xG ?'o{Gjpڇ.YO9Yvf.""QI0`lMt}@9SRQL϶nhz 5'r QGMF|jj}.[9m|R=%Ϗ?:)mn xz&$J3)u8/\ 1Σ@c${n2["7W+>ol.+)q7{s>?D>FhqDs}?x+.>9Hо.6⾮u|V`DFҗ n(8f/+@O FP6yN ˇ9ѝE>wL9>+"n/'*?mhvn,5(cLGN %e4D_eULO,jk] qG &]s6-o2iC \d̴uc.ln>sQת<~$,KW0%սo;y(vm0gaDa@=q-ʮ'0]_}o UB g{Zɩ~ewG7}L';r[Ⱦr7bi 4_v0]1䢽e^DTvtlՅ_gH%9_"/]+*ù4?g "io^X`\l, G NԺO"/Lu ΍;H }(^ߋ͎[>L$m4՛퀛`r..iAp2[݆_k@đbP~[83RejݣITxh°/FkU!.hRgҕrG J W=Iu,!S6 iɘ_Njf k.B̯t@ l켭M"|xssaZ{ўQnډٍᡬ7(jM%ݑj}{~ed#9a%M2&BSv&F-]pArxMB#&b%O]FT7w\tmu+_J~H]9+F0?Mvh(, Vunգr}TOYIf҆bH:R昷'˽a $]43NTDyqn)뭊o}eIG) ?B +m`IZ25XqʓWˣ!hAT8xIzu }ͩ M=6}$7Nb fB͹rӀ@ pS!e&S 5vEvXZ|9+٤1.EQ0P 6 YHN"yL}=PiI7}?Ͱh"DK5v s<]w?| "6)FGܼwQрnb&H2a\K?s!/bv 6* PMy vpr{F 󁠢`8'sEWqmoA]hc]xm}cAbÌ00;VDr~zҴ;YNKRDT(#yB݉?HyGa3'ok{R P}tN7o1s!0L EL&'3;xLvZ9QӞmdl UXMt;[K~zͺc v]fmw=mrh,Rx>ȥl*>@%hIۙA?к@|Ht@BDžhFR][SYŵy17`z'#ni7ͥbttuݿL'M {oFO{@vOL5,,35-O?'&}ۧeXF})+R/qF~:fNy zFntb|nzCxx73BÚYRE533VLG R¡,DK*([Gҿ&\i@$u\t1o40%PdvbP% WF+%=PteDB+L(LqGߦ^X W{K#d?cr T`I[U[I9?RWލ% %IXГh BY`Ur]2 4]~P;)le4_8JdEum -!#_q[drPF 'x.wD™14PvC|Fs7 \pi$U3̐Nb:GOe)*9K^/:8>Vtx{s(01k^2&~3@YJZ1 pB=cE,X=jC|ʾq~J-\_to!vJ(G̗蔡Bsƭ;틱3Q*gW/"3m/=nE5ӄJ|cQK 8GJ&1ōf١E`.?_%o<3d{WA{C Y#G49<=Jǻ8zVz{\>I ',Tid}Ƨt2=&*36bsB#!c\n4k9oC2Hj'h9'2K+i8jh*"b V!%{4"X!zژ]{;Cj{S̛ϔ33INvƕ S]~^DK@#c0(att>A*bqV$c;S7y .w|Lqͽ,JiO`뢴[5w0 gwcg L=бRQ2kٵҜ_ތ;%\'JlTDLuaf7[o j]`ˤ D"axѢynB],FJWTqO 4,hNB'o~1WB(B5Nj; Z?O9OFĤ7=bNfQʜ7w ",[ǧrwe~U1W*޻T):65a#X?s/蜌SuY1O 4Dâ2HNuS9mv箹ϙص>oYy6ߥ5#Cq'nvY t;TtNY%-^ w\;![O<>=98$~#tOX%?͓-ۘvp⩨i~]-]S*1\ӊ _b;<`LWfmyd"v?6D*K|貏]'G@ڙpKNۧ;qTxNkns\#Oډ01ǿY+N+=X~*Ep SY2읭.UER^rIDs;2pl`\t~c%(SSlB`^HUʂ^2nd$^!VVӚQ:&FJnnS͙<M&:'›Mmr>%tg3D BEVu6Q!N'g淵|Y^a1VC>"s ~w0 Dv[[q*v9=ˆemP]D'1ޢ"Eк2Ha >>Ղf-_43e]pR[&oZ.0dUu [4 1u6 }m[|Ak1ix ;b!4 & ˄ Hb_U6r3VW*g^O: zx|v(MBkXC6D8}No۰AݍBYkgh>1K&y4Ox,dN~ǭHj(t$zʇpSOāEηxRUhfOb0;"G'F:5'.ξ*5~Ey*cRyJ֎PQ԰ So~Мm~8%c^uȿy@:[Hu65uI 'AK%)DKRQC[a,T⿜qJ^D[Íis=Ty1Yik7_?,/F b.F0"12oE,%ѵu o*NfC֬@wzN7v+4U5A5&6ńxK-;EW?I7> {G"sm!zF{RQ%.!x9"5d_]~ EzƘP|E>u$ޛo2\8 kD3V9ÄOKꕺBYMeUR >6PmD\ͅP;xgh6+w0Z8O*R~>xԻA!8sGXLGL;}Ua?1BJL!;0t)%DCx%*3/Fe9Bݳ8b2I=A^F6J7Gs(ߢw`d,I|_L!GsZDtqQ[2jt[μ3EʯSP[2iKcr@q˔ߍ´C!,;5e6='wI8c6C;!x?zokFw#Ggngl|HzS_lL̄ЦhvB՜]—̙HoVFAcIy'zٌ#zdNK)"y̻5ܰ^=]98B+ԬE-ӿ#)5?.}F;2ΝS09><$5}869|agԝ\E>wr} } lS=hI_TuAXrw6fJgQ~Nrn(TInģbkKOHl #,o=LMk"h:/ 'j8=vAa3%fCrυ-Ms5`X{Yr~G,!l/(>YZ.e騼j:u'Bת@I[O 6 V6z2a<ˢ:}4%_ @^vQ~y1J6jfp1KlU^-ߒĝ[Z9Z8l%:;L +0?=$s}K׍Z&`3 F"H?B9,鉕Tu+иMP?UҺ;eެ&%aEPu.(ly4xI.k!8vQײn)KD+t8дBKMC-Q6#ߴWwƆqC=ܼ=ƴhK)uT!Ǣ瑥8F8>a3izޜi_ZP;p9A'ya1(%Pi7%>Q͟O)%{HYAdޟي'kuOY"ő9>{Lx$+Ѫ\+KFJk_P'J:[Ύy< VT"6ʙIuJLEEkeconSzft JDu}LyQPFz"4NLOL'֑=DItD(7vfL{6{,>-6EⲞʈY+僥KJ4鿝h}y3H\6+ Sa4!M+Z06eAX65^&dR!։'d˽ITװk T&+niRÇ)5u|5F[t=^iWX9xz) Y-tu@8*lS9vX= m mqN{8W\~0}NG-L$0qz?ڜL&8;KDgM-%w2>Q+I\ S}?s ~gbڃ`2,IJ ."BQ0]EьO`!qr]k$܉<,/6 ֦?WC^Pj|Q_ FS٣0PppyK `/gP~'_hT*2LJ/͹]R#Gkb*5|G"Ԥix[G\=S-YM0 bVIAɆ"΢M""/TOE4zO;ۤl7kDOGW7XT&=/cƦnʭف_BA v~Һo)+v-f-[#{0m,*E=6*n 7R;, s3,6>?)[>s29fx>DysKJJLVxr/=ŏBx~"~GYJއm 2 d<"%@J?d]w-} 3LK֚O.j}gtJi.Y '[s!{~P4 lçiJ6: o5( {gߦMu"'ZQ(ϫ8CBcDO5=u޺31GK:&3R!F}44]@Y*ybSFF}V7~x8`)\~̯_(0<^Ybdǿ-Va8>U@r@7&>&Ri&ZZٯBS@-* Rz)T~!0I#麰 X6@O9·(9b3)Dˣoۊ%2VW֏<}?V͖ȡ+WB17KlI{U_:PGwmR:@;8_E!٤dޣv rӏjf`@~7 m1MCxbXR9oue6D]k0žAfĖ#c2 a.r.k?M`0vD~ϗa91ZoeKv_} HcLFO)tIiPq#0˰;?W't^z΍vg*G a;rK;ORX3Z7PS<-ڗ=n **|G?!4ȥra8 vu=Oڦ%ktEW6"k"iTC[SR(Nz+y=s}>!rG_ &eEZ"nmGo9 l'n|Rw]A|UdϬk8PRo,tpEB{-iMx)Kqq6l쵻(%ELg#@5k| LZ"I)//gi2MWqq!sl%2/& m;'"rw\A; zsL|*d: ))?e|Twm sXY_dءή @1Xdd/Ңnژ*x 㫊wgB+ԍ42s*!?-֩sm<,`un: /)%>BRWT|/b=n=K:'Kc#.3gsN{d?toa#PFIo0k3:|8KqgTSo3Y`2snB"y[yO߮ tm{>h 6jlȒ*nqJ61`?IjCpV3(V}c-,Ck@qz+=$Ό2)M׀+\FCJ2q^sޚX_DkU3@Mzۏr7;>*׃-ijDkSi?L/TSV>0Zc0p7z&k\E/K?ᜄSu`ٱNs@L8h*_uto@)7&/BVAKUkMSU)N \Dw༘iÞ)l2lubա>Ոt w0=CbxqSt[)W u+cLh.RݯS;K`R? ~\ۦ:vv|ߧag_a*#DLa E~3"a 8FuZu|]Е6(5PF)^T5W -^L>I1bZVn.;0\U8I5345!a"wʓ5@h?Yb& Dt!NV(7zxV!yH66r l.yWT-i7v2XߚU%KaSETU k%If堅h) g2iaœxsD+`oM4Wg/+F|"GCcL2Nm#M~h7/ &"8kzΗƟRelHq =r6E,xO\gDD p-0NqkS?Yי~6,,HK]:}EӢ[yΝ?^ܞKf=D8%jw'A-"NڡϯZ!l;:mO$/W,~UL/>x,'gBr' dt:,@OZqkJKC u)qӆm,P 0y@6%dBށ RaYG6?뮼< 2HuD~)4 =:|4Faw ɕ9]9;^,SkѹG6jۖY(ٲ\klQ'<>~wa,|s#3ϮB=կa! \O2hC8.ccEba$r^!Zz@zb̡vw .UǶ6?Ol@kcV\V`@e.3 +m(|eC.H < F 7in= o1[~<ђ iuSw?%46kx~:އ=N{^KLSz@ ևڏ(1ŪlAGNǵ~ˆ7[A!IH gc&@͝wRs :O*>7]#x2S&quhYB4is Fφ:f0q3<LO1]N\C<(bZ^_J~xP6%4go@:QӁ< ]xplnN{6VB wWJy.X^:b"85?=ǙRwKw3( JY֛@#-58Wy e i`C\7Ǜ2{^i̛lзw}.iɴd=R߄)"(L6b݈p3˭?mQ:& <|xB?~67lB%*K_Al}[3.ĺ;?K)Y]ڷp/˒t"Vݬ06YsO85蒅L]վx;hIaBg=\{Ju\ .(>[柭tC7haےzvʈSoNL۵92Wǩ=7pРNԘ_.v]# v43?k8.N/Zğ#;Z x_3G jJAa5\ <\q "%Oeq}v,d5WC]~D ɼU U𯕓c@x?)mwAIGb71`)Pw(y~%?`}c ijbBP)E1%(YE]=v\ f^?vkWq}~$SCbonxPrXWC\K#X8 KO78J)&JR =U!Wف/TX̱U*Jg׾l/H"Gg1t䗔Γ@E!$n)ǥiHa%TZʰDi)nvkÄ2ZA 6 {vpR=. Opv&Z<_צFuՈ V3w !n=|GxXFnrkxOy"H4a/!+_ &'Տ?߂[r/BJz@7LUƴ7\f W,a/\`6[DR͑Gz[Y*ٱR蓢k)sB͕4.{:T`QbKN@ANYDZ#r~\~4/k$1r\ff5KhOpWN[ցvptH6CnK C7F2b , ěS PE^Ⱥ++]J1.2hD|ÜqesH@xUnu'F]GDInH:⏤{Ȅ3 {跊4unX_? ԥsYA!ܳHqm⦿9kK9DA3IAWk-B8~HP0GCM¸#TԔ-ZS&I`cl~e7PPSیtv{IviIN(v򤇩/;.V_3V4OP=ZV"Oj;J#*,y;nH31ԥ0mp$I%ZR$cn;/f0N:OӅWX?֥܂ڌ"1'"5_5C@jlgDvc_LA۰6Nk#2@v\ ,[F g=,I^c]I׼ o=8H̤i@M f7%م0`ݵx OR&&vz? 4cW gjf;8 QPJ@!z?5pQZ5ȃfws@pe*̰=b^U,T/Σ++\]Or㴄:KD H?pj<8VyG"Slud5E K᧳ȵMc#NU5yQ1˂iťgzU Qwza=L rN8kXn Ү.iG&3*` }'|W$me|X[xDm55bŒ&M vHSX% ^0dmY#- lTO }9'~k|{ F}'6V78SP!(!)O@(vQR:hmCC_]ooj/LkevJVq tMnTI4 sAқtHh5>Kt0f1ߐ;_BHԈ8Py3vK"DD,rՋs=[{X?[]0%w)ZMU\ x|u:ҥ'vhZ\ιz]zhȹ0Wkh1%.m4tU+R\&*zI5#IM5v2\lo3dvo@*>S%8=/e Lf>$8kDnM ;n@ Usp"花]3q7؏C2z`G a6Ӌ e!=3|%Z(6Xm=DЇR-G_'< 3vy D9mqš^8@z'):_W]]rNd, *Yf AlnSLd&AE\2ci+ 0JyZ C[NuL!-ϾB罠)H+K/`d q+y Eо}bv_sgQ-{yگrQ!CvEʊ~bGp21( Ktǚ=}j M6,Yo^v:U2=cL 5Pqkʹ-gAXnW F`صrU/F»K8h1:+8J:nkBmF6LU78֪Kɍ9];WdWdu[uX@[P9 ;l@ 1}Lً74%yQ|^V,)|W;cse@xɫX3p@Rt]%OuO,9Ɇ;MW26 z(ܠ@5*QOS.L"ө2is%i[Yib\qe1?՜߰p/rǾJa|t`6I|k]Lj iq/ H̶n|{&_{S=>0<\9aTy!3]%ܚ֗OtqXijo":T3\\+B*Nȥ̕K+TX׃X]ZQ60!0S`B(jd, aΠUJ4ajJ&3"?3)0|_ZR %z$O  %$l 6⢌c>`D#3tfT!XJLV@ᰢ";И;Ggo֮w0S Ɇ˨֧dB!+ 8I'Y;E8i''C hDZc-dZsl3z!!-$^}3T礐v!+T@=ĬU)ϊo!hjZ g5,\ِ-Lt t e lͱ`ToFV7^'7Zs@ 덻<̤=rN%]i2¡̠P/g{B#lgi^x.AJTCT<,ӧQwGܜu[ hҎ0OhW4yY<ϮOl;E՜ޡ\6U֜ts{g;z.iNEDoT&!]`BH )[8FӤ>eHTgIgZӫ2fe֐אV ɨMIgFلl 6NL ]IfRH@v@l497$b:pLQSxgLekҋ5 .ܩ=EJ)QI޺ hPc1a q8B:d iqhKr;=>%{n2 ?ʷ2O:A=6Am-j跶>|tsTZKI")RʆܜG^A@PW/ /iuUUȫ :Q;[ дgeRꚒx%.92 Z* RɷKG3HTU| ."_r0X1f+x1^Y:GHw8KڬDu;Q>UoV]b >\O'ZB"4,gD Nz1JO[S->(e~#V};q&r]m;EߛY˒gޣg=!~uVkf5 `ʄ7`C9\H_P`Q}}I9Dr3W!Z^&RwF-먇1bᅀj3 <[Wz˽ c񙭱nMhB7TgnZUD)q瀿Q(ڎ|XSD/QÏ>y!+`mK N<7%B[ R'"6s!(=fyc`/N%Ieg~~ /,j}vm}Bv7kJC P~!B*?G$y*z}޵˽0E0;Iۘ{ofyޞlq'.9db BHLB/(Ojl 'Ugul5WTڰ]C$+Y.ZAF`NǗ$q˱CVئ [:.*mFV݅ +d"Wv%9^p (dh)Xc8yW;u1~_P8d@wAk##*x諣j'u8FW0ymٯظ3R^*al,jCk5V̥zP2OjR"yN1!CqĐܜHkAėVOdR8UװPd:V1_¨ @ebgR5 !yu>0[/X{&Z"u0谝kMb|HOtv.\5@H}$(P>ЪUҨy$kC_:{> "7:+_=6-d q٣Gěg0vUbJ<\XIGƦd򝚻6]wZ"s&0PtIXwXaHLf!VnzXp#Vb`b,x#ezmj㿳묪h(MqCS֢JƖM+FXÕBhai /Qa ]o^cAcӹ"E@nąv"o{Yuf<]wVmc-88ڰ˙ Ar.򃠈swval~~?o;?lscm$ jCx <Ғc7os*9MrU*6p 14v.S'ᮧ8QOT Z6ވJz C9hpe9dDԜS Sڬ8r,T9^efT&lnSzO!ڡf60!GA8!fK|#¢8cgH.L`X!TܰFr^3@UE[UG^pL1YmkHeorxUĥ az"F }g1>m2ѴQm2O(8!GUze׀&vGܲS\"Fi