'\" '\" Copyright (c) 2007 Donal K. Fellows '\" '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" .so man.macros .TH class n 0.1 TclOO "TclOO Commands" .BS '\" Note: do not modify the .SH NAME line immediately below! .SH NAME oo::class \- class of all classes .SH SYNOPSIS .nf package require TclOO \fBoo::class\fI method \fR?\fIarg ...\fR? .fi .SH "CLASS HIERARCHY" .nf \fBoo::object\fR \(-> \fBoo::class\fR .fi .BE .SH DESCRIPTION .PP Classes are objects that can manufacture other objects according to a pattern stored in the factory object (the class). An instance of the class is created by calling one of the class's factory methods, typically either \fBcreate\fR if an explicit name is being given, or \fBnew\fR if an arbitrary unique name is to be automatically selected. .PP The \fBoo::class\fR class is the class of all classes; every class is an instance of this class, which is consequently an instance of itself. This class is a subclass of \fBoo::object\fR, so every class is also an object. Additional metaclasses (i.e., classes of classes) can be defined if necessary by subclassing \fBoo::class\fR. Note that the \fBoo::class\fR object hides the \fBnew\fR method on itself, so new classes should always be made using the \fBcreate\fR method. .SS CONSTRUCTOR .PP The constructor of the \fBoo::class\fR class takes an optional argument which, if present, is sent to the \fBoo::define\fR command (along with the name of the newly-created class) to allow the class to be conveniently configured at creation time. .SS DESTRUCTOR The \fBoo::class\fR class does not define an explicit destructor. However, when a class is destroyed, all its subclasses and instances are also destroyed, along with all objects that it has been mixed into. .SS "EXPORTED METHODS" .TP \fIcls \fBcreate \fIname \fR?\fIarg ...\fR? . This creates a new instance of the class \fIcls\fR called \fIname\fR (which is resolved within the calling context's namespace if not fully qualified), passing the arguments, \fIarg ...\fR, to the constructor, and (if that returns a successful result) returning the fully qualified name of the created object (the result of the constructor is ignored). If the constructor fails (i.e. returns a non-OK result) then the object is destroyed and the error message is the result of this method call. .TP \fIcls \fBnew \fR?\fIarg ...\fR? . This creates a new instance of the class \fIcls\fR with a new unique name, passing the arguments, \fIarg ...\fR, to the constructor, and (if that returns a successful result) returning the fully qualified name of the created object (the result of the constructor is ignored). If the constructor fails (i.e., returns a non-OK result) then the object is destroyed and the error message is the result of this method call. .RS .PP Note that this method is not exported by the \fBoo::class\fR object itself, so classes should not be created using this method. .RE .SS "NON-EXPORTED METHODS" .PP The \fBoo::class\fR class supports the following non-exported methods: .TP \fIcls \fBcreateWithNamespace\fI name nsName\fR ?\fIarg ...\fR? . This creates a new instance of the class \fIcls\fR called \fIname\fR (which is resolved within the calling context's namespace if not fully qualified), passing the arguments, \fIarg ...\fR, to the constructor, and (if that returns a successful result) returning the fully qualified name of the created object (the result of the constructor is ignored). The name of the instance's internal namespace will be \fInsName\fR unless that namespace already exists (when an arbitrary name will be chosen instead). If the constructor fails (i.e., returns a non-OK result) then the object is destroyed and the error message is the result of this method call. .SH EXAMPLES .PP This example defines a simple class hierarchy and creates a new instance of it. It then invokes a method of the object before destroying the hierarchy and showing that the destruction is transitive. .PP .CS \fBoo::class create\fR fruit { method eat {} { puts "yummy!" } } \fBoo::class create\fR banana { superclass fruit constructor {} { my variable peeled set peeled 0 } method peel {} { my variable peeled set peeled 1 puts "skin now off" } method edible? {} { my variable peeled return $peeled } method eat {} { if {![my edible?]} { my peel } next } } set b [banana \fBnew\fR] $b eat \fI\(-> prints "skin now off" and "yummy!"\fR fruit destroy $b eat \fI\(-> error "unknown command"\fR .CE .SH "SEE ALSO" oo::define(n), oo::object(n) .SH KEYWORDS class, metaclass, object .\" Local variables: .\" mode: nroff .\" fill-column: 78 .\" End: - b\6 -9C8)q 2NLJEd̬|2Hb(`2k8UD\]^B~ia(V J* S&6rMĆW4muH1=+*8/QQ01A6RgCz\FFv 0Gj@rg7|"DFM_GO6 `uk=GU\Tr9qH1L0nK|#]7OcQ"8%;]4_( ˒"Ԩrx(;`<B-Gr肖KU

-'׸|Oɛ#n'Ǐ k{dTCXC-uW`@H";f)Jn&U*m/ItD,iIP3e|fFU|9Hl4o#ň>i4b@f\ntThœ]tlҮJỵb,d)uI)(v{@L;8q׳J*>zq̠*R?9vw |t \'}GAnPaW 3nDԆա({+}0TШ\]DUNj" `9dujX)$m ucr.{hLXl0UBc4jsU`\DCd_㸌XL9b"B@@]D2I/}$1fPg>uqKY7F: Z|lpCr HB_ ȓ؄# T3S@+55 m "qi!EgK$^m84ܓ9.a:1U6멆̍F 2Z`Yhgvڻe R>Hh|&{Ʝ|% 1'Z=䤢m!EutN鿋93W8f=J:juA %>d}}9nw'=Q-ׇ>$]^$+fӦPAR,q"~S[d&ݚyxz9I`D뤶׋I; z&(nk ED(,;m%5mbϤkGo  ΍I\ZRWyVw+*E->!UE44lx`gS#Jީ{JŘPwV>)lth]j 1@k3ѫϵa$:Q X „hղ=%;w80 -|1G] gm%M 1yp&ujKXIO5dNϔ]J-N4o @cZᑍ;;=ˍ+7\-ifQWĀciMR(9܋\ s[,^sI,; K 8΄G|L_r@#Ll c6GnM&!fTY/ؠy18<..1AJ25ZQC$tΘ7ZƤ$c*rO1.X2&%w3^̒bykdOtbhXĆf\Lau}f=[k)">.QS'B/&"_,(-Kşҝ` #xwӁcj:ce+#m#!Ĉ9)P# u{&>"vmRiρDH<;1-a! ٦Sv>|8p*4psld2G&)QG(aOpذ!QYA#AQ6QgiV8鲟,|R9d)6k2YaF>cZJ3nMtén5D͈t, %d|`;JI _l(m l2;CA=qɖ17 X;(`2"I6QCoa1Fr]E],ɾ*2lk#lԞ4.d߇L(&3,rɺEsJi t ӛMnvF)[# :1Gd<ѡyJ" M􈂆I40;|smZ !CMst{d"O6yf$U4i[z )":FFjPKv<~hCxsI,'eV%NCLRp-q_M[;l#:mǦA ) IX) .!!N2 d'6w"Gd7:8[َb%NRb{ pGW-FHPZ〕 +lKV!&ikF9*VdWH9Y:ZVHsN684 g(ЙL/[¾;Y4%lq+*VLuKt ʠ&KX!/kV3ZeHZnW8K/PZƚ\fuetې덻mCvgn8` ڒlCM y#>jbEL"2zqN؊-rNGFg&+Ew%% !0WR Db~@?ӡ1b HŐu0"Q"^I5\ xÕXyv=*1ƗM>vQ3L*+lY t&x% F^閲n+P:}9.05c9/2,FY.G־wNB%B9^"0k~:79=|R0P 7pXc DHvzy;h3G[りYmTGZ10j^ K tD@vz̽X̋-J0 tz'3%! R@$d9fgtcMLA9 \R]Rr}Îb+](RN ;NpfO+>YQ<oXvt[Rd' tDIz ^)g^YU+h˝dB*JήObYԆ>Q6 {7D'51!6CUrLo")8 I x7KNt2]lg"-J)LR^&$5 w@|m\5ⶂk)0DG #Jt28=i)a4Q Ԅəžm@,Ugf$Owjͬs⤐ .^|$ ]J! +ܱN+s@%K5P;yMiֶɋ"3v'ƒuU0=>*4"s^0\̣vtuv1<5=6C Gx;8TsL?7\:Y$2VFќ tdAk9(i q%|:}b8GiGMހ;/<ɠq[p<# ҂VEq:Q1Q Mc7P1UF_k&e`c7"gkissaST;O6~Sۇ:!ƖzvlgjǍ ;hbݽ@â(G7=j#77@_j!~/Нã ,~9>›8~qogy@y:{UTGC?!~>qՑmcݭjn'dK_@q{wsy v: f)cgoh649CmB 櫝`a;A>>I/_m@\bcw {#W 0-)j>knm %W/v_uPIRɃ]L_,"zنa2_*Noԋ8%o/hlW.΍{8E[/67E@MK:onn/t/܃M" j!:)Sq5m˶4Ymgן;Ŷq&/N`ka 9|m{'m-Wz B{BIkN޳#rր~Qf#L&yv{p[pB x:=cIPN+O]`| `HZF0(&@"b(VTLglR}5Sf(W@²cQ > | -xX}!> SZ(ayy 48&]whWP,M KpX%#l\}JNQwn56M׺.zگ䏒FA/Gb[|wЇъ4ĉm%Nz0>S`/%g~|s4ԏpH+1a,+ `qIE5F]fPRH'uZ&> f@PyKms/`soA3, Qsݽ(Ҵj=f/@˞f.Q!M "8n>s܍@m]]h!nxΐyC7eE0Q(l_n|~]DL>UIιJ]B# y]Wzc/)̨?nZC5xJ{g_}aM:,_gԢ? 劎5t'ʰwvFFAca\ 19g* *ppjj,,,i$V?ӫ8 ۫2tJHl$:%teD~]Cy Y/(1l'LW~:cu%If<TKv1 &"$, Ea Ld#n0:.sV$bWN=rFFYPąӪDg ޞ{HoMYiWvʻxı+ؿ+S0QblMQ'!_$iqkHJ[w%Ş>p6i5) Bs 9ӭ 2ȮLjx0'1U^u"^GHc"foZI%{UZ)> '8+hJ#^4譶SD)e Bn.ŀw\D4Ȧя5!m LW!aHJN'*`u]VSLӝA 2םbs. p$}%HK6+eiswoN*c'7Pm*ӳM SYYPA$ǤW8Ns׿t`DxAYhd48-p4Cr;Wq.FLw(!w'.{:Eؙt0n'xB퀭'Iq`NDR_w;_C) B3_3r?}{&3L7yLI'$F|V_;Е[*jdJl0K {L*w~\ @wTW\Bh|s"c҉I5WXw ݚcaY+'%iӹkN K58Ot#)ew^N ,BjùNQe ^S*: 0G+&TlySpԫA[bsz!tyob?LV}\w4.״4sԀ~mjі NU|g &p2yND9ɾlOҽE3rCAIb[ 2ipE d#G$I*$ /$47DM4{jz4R8y9M%eqz: nxY?acI/5yISl tyt=5pY揭̓͝k8ZcԶ% Gq/ $@eci]j$3`B$~IO =lV1W\ ;Fzvp.+~hb%,z䵣֩5q8]rz8zы: }L2gt )XhWs`d#J52ūu#Ѭ*=CpjIu@SY?C.뾾eƓOkDAdÎEǚȾDfKeBF2]F3v~JO~rz}P9Ռf W{u"Խ &c .#l <->i< 'w&҉#2#M$+&_"WEPz=qtIi^@tm؛b>/O,N?۠cVcyr". gb uF}F Ux<0TnҥQ. /cA|]mnso3oǹ0坈|jFYOxޔq=Z:H<Ɋ H"8o0 iQ:a5ƐJH7un:I h rƠӱ9#:;$%~a)Ut|wzxM7vXrrԐ׫,p@;cL٦?Vvhtd{hhlo3Vp/46j!v= lP;AV XZE5{D(0q0h@L'Y]kPgX=z:3"i2b4Gg(@VgL0/{'Z㎍g+> BgOVhphC,xVG(^Kʽv>v^.'Fb֠T*4 v9Ԃlsrj+KxFѼ 5i%L\Fc8FS;lTlہ5ƫ00Z!$Pu'8a Pl-f! ޴| ɣ;MdHo0^  @KG zf;W^RAc v "a1߽JpTH˥M8c5iߞۚܽ9'SS_YݒϹ!uXd"hCkp%)*ŀg4 rv"i,pE07!,qk jl9JŊzD2ZHT2s:x-Cb Y]++IV m⛶G:ׁS7b.O—e;(@ЭÉ 1v|0R3<,cLS(@o8^;11#"9 ]w $&( )F8@ \s) 0)ESt̢ZRQ* s~.Wk|8CV햯MuVCOtNlm4jslJn.@^ZWYJ ā[k`ax>u(xI 'F#LlUL~r2:fR#GL$͹DX&; ,PFI* qI%a`VyTx}=cwZY!a([SñLbn8hf[tm ;okQq0K9x LWc 7,pc}ckG6Lnti'O!ؕeIr)LѶ-[|8}D?EXUϘ.FG!$c^n5>Y`6R LW-NJݶߝ 01n$q.kNn'4lg)h (V5Ðnry7- "`se rf4X2`=- xpيK{Ţ}@0fb pHže &}i*@/KpzU8XJ+cOmFq$w`.q4Ffܖ!Fh` DCF,<8{i'j+n %NjPbŵ>諤 Vky,ڳhE:9NrG-g\a(阍>u#Jdu^Z:J ͋zKQV+MEKDȅcdhiuC3LanPNzPǹ5\9JyhYVV:80W ( 6TJUw/nyoY;9bӔO&+b:jԙk(Ä "w79FgZNXVm֞jdeJ{ȣ6!N"q ;sg#1u &ՆJlbP:DUó[.N}qFhqa09qͫeU ȈiL:JޟdZAӅ9QƖ)e:V7qΏA^?WD=Iu0" /r74τ :xۺ><0Q0궺 ؇jYf.f2cErY,|a>0EGY,|b> 1Y,|a>0E"S"g!Y,|bN\,|b> 1Bg!Y,|b> 1Bg!Y,|b~b> 1Bg!s5 1Bg!u!6xM1ױE:^#OX-Q0׷wQi4aF|m^bc؅L`;WɠVZ#0auSX#H^IF pH$4doSv9 V8pq )5:o%3|-$ZAko"x,2v;EFٗz@wƣ<=v9Zhԧkq"ϔYťF%~ͲZ\X.' B_RT! Ï!_1pj^d:?IE ,=",rHX^QwDT.<:y|{"qA;w TdGz-Jp-g S:Gf}6(j^xW M=gggѕhXt8Mq1V#j4%DA&S\X}34p݀ [C~(\px'F0{fP5yf3F08uG<eU/q1 Vy\u-lnjUWzr=9x"f&x0E;uFFP+G8C0ۏ0-!=FQIυ9iGȨR+wK cG1#35;o}F*Ct4w4))뻤c4L#AktͿ:Voo#}89Mڸ[\\\V[} ij0 ;H.?Hor&+  rI |> ;2Nn 4 77p> w НpM*XԊlB&RZI2@Wׯ 'F}\(zJ(UWyցrى:$>wd}60@vOrZ U I'W HL'(!f…i#`> tY݊b-SWٴ@qBXxdyi*}tחxnt@[RϿ !}1bcr< d104xB1.UC ݽ>jf}RvV. t|.37Yti&+i_ t ">b {Z`Ƭ|/28co"uӓvn>R-R< Z{*g1&,ય}i yFZYՑCxzWyuU({:d?,G-K!~_?Q|EwOdeV/e潄ABӜ[ yȒ`͠H9E%t12\}5ۖ (E~=d߯ޯ]x،frZqB;4b#.J0ÛDgF HyD r`JTEњIձ~4H׻@iQ{L[ZZ~Mca!wx4bTUjXAR ekTˆr Y=FZ?IT}BUR=ј5SZ;U23:ID2Ή.XqoVS*1P6񈽪[3;Nlf [s֋(`mG6ǯjq|\n>T>w2J" ^.³հvUE&iQXMm8V%tv9Qj<@6"?l_Ѯo$0:a0&o C̴(Epȅ!Iq7sWYJ74}ɋK~[[UGZ<9h>iL0$ӛx)M@E -w{MURPIUaB F]76n f0^ACi̔8e eN)oGkUs4V:Q7NcQ]Xֽ,SIBE %zĚuj/$Ocju19(ϚoD2exU[s毌L1!>snLW}v`j8/xH z|pغ"­Y?xr̓#$UxlPN߸gX~RKjz>I49}#UCEk>z]typM4PV z" V$Qp?$ d@@7 Jge֐)s_~IGè[m@K w-2v8NzSoe}1ӘV\qD(!i-O"jɥ 0 x:O:Yf~供spܘ>R;xq\-[G7#s)a /{uʎ|ˏnփ"Δw''-:>f=U*`vZqGNvA}LխL9<'O{%I-e \t$9rz&=<̗jM.UMNs{n2}deU{$㴕`1npz'ߑa:9 HK'}̨v(V:^s.NuU IR` kk>TW}t%ki(O\Ğٙ3}楝{fGfR0y OtGBS9U`l"ϪA zpڱJe6#8)b/9lլC lq.1»#(™;{UUyͼ ?a +$`gqn.ÂM/ꀂi PvpW +nw?ת_˦v(wTݔsE62ތKV2%C Bb] 2u2k#W &-Mxt=4j!Şm5TAY[I|ORO!0FDI@5D?`9R]׊l ^4 e'krafOYrϓtPRXҴm?3A<@V"VL4^%? ,W{6f>wsB񟄨\@g ꅒgȳp 5LXL /Y>tR҉ !M eiluU}Wx`P`6 ؿToWT_`+7)z +;/<ܬtG8FBtJ7pt'>"hJzj~=.bPq^5 EFuQ*l6*"́yVVu P/ źuֵϗjߗ̢-,[Uϥu``nv1H<u 0ʸvq {u_t(Pl [{yMw *kPc9mnia-S\ __q2o@{ z[aҫtl؋q S\*gbkd+fq..5aw|jz8V!3X` tJJkzT~IzR|]Ʒ83S;<և 5u v9G;9T*IWBOF>t'pR)>\o0fZB {U&*>ž{p*'x&RxAhKLY§9x^c~͸^\\#VGS?ʴ>;ι4P,Y%>?Z~-_1d^Y |$>@]*̆@QKG!VhM+ nt6J 2+R@aaTt܃B`…S{|短=V7h'vU Ӄ KiBca ,w;gP 7X3 G䗁IWe |6P#|'F bJlXAWx7 mF'Ux7gǜ62SQQݶ(+m^6)cc$ۡ㾚W{GMJ4GcQ:x?'{4_>hnRNbeWD])O:~bZ>kqSƗĆB=)TAl*е}Qt5j{ޒ~A1S=0oCA,J.\ h?}47 Û̹z"wf wv9"FҎQZ3nX}㒰5'8TFeM݋|`Y]*?l?1V^Ѳ@De㤬ÌQR+#zơW+S`bmbe-rB6!b&V bwУirݚR㽘~Vh@o72@_Ǚj|X `@SǼuT($G9G`/{E}poE7t]ߤ4-699z>)Ԧ碏+ +Q)ـ$s`<4deud-^W,`e0Fjǥ/TЪ}ب>{=\mtF?I3|(!S̾a͋g`sJʤE [E Ѽp\λCQԃ} krK.썛OcSOaH$2] `]= Y !RpP?B; 1H=p /Hn?A‡ZjTδE#}+vRAq**IN(g9]e}ŒJ& JnA^UP{M+n+,v]*8奐wkJ=%ÐS&`(\H#(_nrΦɷY$!tRwQG-_PUG8.8 ƙq1o&^1}0Ǜ p `gz|SZjeꚐ(nɂv!tuu`Ǥӑ$rvi+# NOV[w9d N3N!@w_;3]jDz}6mjKdV/Xm7䌐[2*017?{yxۢ3:(t4 c|s[,6$7=ld>/m⸛{g@1?{ 3UQP͗T_;=\7K޵D?,R@lgy/Kėz"~>UD[?Qop"q'xtp]HZ ,۱I(w YfXaȁAY5w*;INO@!֣qOG itK+puxqX9yJP竣P:LssGrtI]/$b{p j*}*~wAŻ;AEr|k<#:9` '!tz9z8CДd--Ę^}S泬X,-_ϲNzYϲ]x벬7嗸Rr޺{ e*6wg>aڰVfwS,(j]-8 Ӄ/Rz}|R&Gh`-g5r|RYO9aNNI9f |Bw~aXFaNQ8.nt)^÷yГ)S/_|0i4l.^FC'<S]5ȋ˯t!9uގ$~֭Ǝ̫ТOoGuG5\}w'|M.< G!K- vIW[kFL`JL:򑺜*ʛ(gs:N%<)Ұ~WM4CAڶNmg~N]5bLi|ɩг+A%k|i$dNN_8C4[OtV?aa7ѤB9~oIE#%{_IjB_t܄pawp4űW&&Opb" j;!ŷlA~ephyv"c؍;]A(>TAjGFP߉Nz3L6N<8 p!%'sLkݨ~Ua"K$e}KH\>'_Uak)x|P[Wb{}YMjP9R_"zv)c I_U߫U+>B 9mgO=鶽reY3\%W=Jk;In9*릴 :>b[t<"$t ۅ=яOL-{/ߴӮK6Zĸ<@|/P "@NN%L&蓏Vn~7"IͬY=1]%8ibcSll-sAk%CmȐ <Y8? .`=U/R تGʃ3Mu&Jqk4SJwz[1to8DDZBy= {V(uJP; lw!R1{aRoGwOf ݎΧ-q6шtnAX'yhBٷmtL)Y.[;2=1u6JmK\"6)̥ 7EnwAZHSNJPuA2nz] @Nf`$kֿ5,O̖Nۀ._0Q#r6]t7x%hjC'YS"_[Ux^@ˏ/bTѷwLAjҷ$!Aw|M>}!V<F Erm7)+@K<(o{[X⦳/ZKtĴ5kAn+Iar%z:B꾛Alo@5vЁɿaϨ =dyCSNA<$f|Finn?Caj=nq1g(&v{R! Ÿt&eɾG>N7^c$Ń (\%Y 霢[Qt'Cys9B:՜<$J^/V*k~ܚ/5H5ZHw񟼞?.N{oG !(Csw|cscypwN|j3Xe> ͶF=_}j)?Sȱ]˘B5kpI6-h`]*4DTVY?L0E6/|&IZ8:C]&Ѯy^,#_rVrlL/ɘ %BQn~sB.Rӝ͟V ?->朼ɲG'&uFŭ UyE^Ih[_>'< 3PAZ׷LwNR/j?2SvT/oSuC w~ާ߹OݻkiG9av z&twܙaM؁ e|i)sB uY9})U׹M1pS`ZNFCsΈ_S qb!B95v Jb2 }AiqCTG?r5@:ag?[܊h<|\w !S\Nn!|dyL <=ܦ3۵RĜȬcjV5M<'ODȋ7\2<柨%b?˴x|z}Jr[u/#~߫wVssgyR>jlQCOBL% ۰a.[xk?8=Wq,0F cj;wRbZJ}&-X[+iL8Ѭ4Kfxv|(c<Yߧ02k뙢)Ci2nT6~+Ekk()s֟|2,t.Vgё-IOaf0EzJI]|'+#8!oWxE-s,ߑaOM *\Bͩf%Ѭh ijMSL'-β M\r{x;u8}~$:mH^/{0ർYI/)K8_!ud3&lzw//"1iS291tGAV8s *@u' 2f'ԧ= ӐJh--XoJ n%ȢSjʸ v*,oX,˿Z=^o/¬D14 )a3,aF~ A"8kxG W2G>k$;: v#{ ]Hu6zBis!=Xg -$Woe':;xRJ?=tO=z/QL03M` )ןY!ǃ4GwszQoxmci`G?g` E`%Hd9^d8ͺjFg@a:tȸ"5(QOظh`ѣG+ay(vo0AQ%8gx; ߗי&w-߬qK!B>V2gMh!*STTE*BȺJwL!O?V=TJ><3%Vgas}k :SEB*d 'H*M`N( :H+VVs7d׶{TD$h:6X"6ӮPS pFErM2F#/6VqjMG t.Y>ju_H,wDDamRXvְ bܚ6x0<.|@ !VCs/*i%~ܯBaBԶ[+49vp~i2hޔ伕3Sp>{U;E*Z{0(* *}O 26n|3  2\7bw+IRhVyUz-&fԵJ淴ve}?izAQ P_~K҅FP5zݠP5+BBon\?}M@͌?h4&)|8~| _+9R(3sxF (QC{ڏ#;pcɽL6k4۝L.͉F|H,&iow=LZCKCҙ_=0*|3_#%0Uis'|a^׶QQZ n'bU}J;\KINwin>B`_HcpxӸ/<)s73) mk%;TgJ$ ~뜒Sq my&ՙɞL'Θ3GJ]iϢ2Ytr)7'8J=y inI.%1S5ę$% ~%+nHyZN5LQ5 8QǪ''|bB1dZWo«S&oڽL)qXlvFbMk7.򌉦 ? 94əUW{ҍNOzIԄ%s8J=Z oH:Ứ'-i\ҹ6Fq/j ϣܫAGP7oBUy\p^]ԏzL~u0X-2 # O:c5Q;Sj]M#OtN.M$ c?ޙT:_b$C:N|i܁uNp͜݋m@7fraaܒa(8zt1Nb{Ck(XxvWU^D)`D L~CG.ڭA)>K][oT%H{Y#^j.ZA\O~2K{9s/GSsJM. -~D]Q~)*'N yfqjs|g2xAtƂ'\c- :1XEDNVNM̗Vfk׺`h"(I^+TיմO᣿紽7H:"x:l6+G_2x[^%ڏ)ٺH]ahwDn[6Fm8usi~Χ>1|Jq=5R'Cd,m2Dy&,KzkLoy/O`c!vL( *! W.΋E8٢ge4ǦLWAY~鉎kł\ٞeR6 >s:֐8:.rBꥉYd&5DE'y/(pO "yJ4I=S4KTD8:]"h8tU;G~ .u:>jK nspv{"S wռ.g+&[Ui)wr]CI^|tVxiwd_۠I*N~wBQ:Q\DOA#qAaRiMvE&h8E{ cj`=鑭8  z~z O rT%u4h?%U$-6 /N6w6Ov'R,U*ȃ Lu0i*yDRf̜v!)5>gAL9׏%,v@#czB4M=.-_=ȏ/暢t7AS|<4'soV []-P(=7Xq7C9/A^Y5OC=ܤhV$l"nZsG*rϵueJ *qɨqNJa--n*wI]cY,ۤ,/<ɰL_T',b͙Տkt1I$ZO=є$u11W˿;is9Kު^HTtLB-w<ቧ ^Ke`Ssiߜkcޥl4IQ]M)PO45(BIyqxw?ejwЄ6q\rjwU2ȟ'ILwO^A3~mW=3ii99k:ϬM`fwo2jU@e$9w!F_%}r+P>aV4q &LΫ_);+Ä˵.r×Kup}po+Z7ИSѷOjb"( ׃) BL_8}j?$`4ru k󣔯]iN_6vw  ; q"s~nP ok+ ,G'tw\Cv;q#>sHNonM, F>!5A{M='n)7_{77Aod2bz41ϼLpʺŘP j$=%>clO[:W% _tG次/6hoqVҧzOZLiz5/t%Ɛv{u*@~ |py3{>y9. Çߝ=윅.=鷭vk1c C==g.Sj_TiSX!AQBN^VC ݮ" I8|vj ?jG9 Ab>~^YztDwJ^ޫ)#启iseˑ@7Ѩ&@Xl6Wwn a;juE=`+aBten9^늈i0C0J[ǘ`|.A :fmGaw+? Eډakkj7h06Ppdi<}vG=' cS,r #p4 5ߒrk Li *wd>ltRiV#cͭJ溆sOCGZWTM}dA/F1`8?؛tGÐ(@]B#`^ǵxx^2w;UG|ЭŨՓ xt$Vx=ost;VWXך"(ɀ#ʲ&aCXvm2@~n q7jJz.dInmi+w{zc̍@sgz⭏mTHK1ANTW_%-LJP+IsA}я\,a}z+?$*ImL4,^fo w`(qrSMXѻϷ;ޕ@݁܍Ow?-fZ= J=q޵Q^3gb<\Z p\%La[j%6Ս@" %Ocd/ZC5lFJƸow5I֓-] 3yO>w6w*WQ5LL Ѽ4u7DH(oOo0qu Cz pG++7*:'FqGRoӈQ1_CG%~SAD=~3OX=Voٖ[+_A[r">RUU}ԮfrN'=3I0>ldS?5^yZM9mC?>^W:ENRo*Ok~RQ]'NxfJxEdFrw?ˬ*>51E|t+k'AOÕk.8~3~#uغP A0+Bwe)"hY3T +2] Q#Pc9Fnod5#+:v.̍ ͠I(y-# "KG7.^ng Zg5薧kSL c{<@.D&ܥ66O6^llosBc[Dḯ#G}3Ӡ TPmTR)vyh?H pl͙f˓ C$&,Se V!h3VUC!@ϰg1xbS# U<*?% >p@?~-}rz|Yz f ]F)4wX -DpSuNV?'PFm Ohj' ꑡonw> ޑ{\(|Aub^;?>_gS].-7f+<e#tߜ<=Tȼ|S_zN[|F ,\:>XLO ;Wȡ# Qz>]-@sAac{.)X9q;ڢ`ND)p߹Ki_ j^-q} K"qH`>,8ЉF@ oyӨ'a\N1R%(tjEAI#}<3Ӎӝ$a?|Yvw?3/,,g3Wy+2.1,qO+r zI0l>#V!|O{4BS"Gn\zw3XDV}> mLxpi1Y3?f3z.T4{*Jڄ:ؘۘu9gD'Yɒɂ.+M( N䜲i>{usxes5'9|;6dzx WZ@ãR_T}Aߏá6W^>%j8Xt&ݘ.Y%EہӅ1oJሬς8)6 ft (~] em w'G fMm4,A8@*|VKe|h*]!hmAet-9z)J~,)2//L0N'R~E<Ûb6&A5[:ݵ6g忷71EGYח>k[{8|L,-d+3WxfgfOg* u&v?$,E37s'XYKfWxlaoGRU gfT/|NQ|hi&n_ &7eie&g&?g_R7T%ֳaACg_&: >{6߻Z.gj\M4?[^}.+?/H6ϓѳFY@|O ko;ouiO-/˿tr&£L3&^w+#u5NÑ0Ɨ%8$1A~ G=wMLekIDR!1(R<9)cxz_lۥ|UX)_MinL/~%F婠wrzV6I_;otO&G?c?w? ZUN ;ۈV7i}kqM<^8Q ߇shӟ凳o_/fꟙgNF?Nk#=W_O_4_z..5J[N(mmtrQR^ rO*< [#~H"[ZQ~`0&#&!pÎf!PV-`Ч\N=5׆}9o0)Ba:o}^jCz@\aۍNc"b $0JFa/ Q:b@$qФ:J8jy >_rky)g?_?V^?]2g@y'h?Epekg(gaU&PC|&zql?Nz*['q ] 6֋ޫ#ap<o3]F]`t1 [r07 t?ȁVk5Tz?vki6z㹧.csfCε?H9QGALl07YsFyXM, `IT0hYV>g>J/>m[\y{{r"45