From f19f0eaa3e96de97d186cfa4684a89af7702b548 Mon Sep 17 00:00:00 2001 From: Scott Small Date: Fri, 23 Dec 2022 09:34:49 -0800 Subject: [PATCH] v0.4.3: replace fat binary with separate 68k/PPC apps --- CHANGELOG.md | 6 ++++++ Macstodon.py | 2 +- Macstodon.rsrc.sit.hqx | 2 +- README.md | 22 +++++++++------------- 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b09f0a2..ce7da0d 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ ## CHANGELOG +### v0.4.3 (2022-12-23) + +* Repackaged the v0.4.2 release but with separate 68K and PPC apps instead of a Fat Binary. +* For PPC users, nothing has changed for you and you don't have to upgrade. +* For 68K users, this should fix the "Missing PythonCore" error that showed up in v0.4.2. + ### v0.4.2 (2022-12-22) * Replaced the JSON parser with a simpler eval-based solution which is much faster. diff --git a/Macstodon.py b/Macstodon.py index 40eabab..91e4b1f 100755 --- a/Macstodon.py +++ b/Macstodon.py @@ -1 +1 @@ -""" Macstodon - a Mastodon client for classic Mac OS MIT License Copyright (c) 2022 Scott Small and Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ # # macfreeze: path SheepShaver:Python 1.5.2c1:Mac:Tools:IDE # macfreeze: exclude msvcrt # macfreeze: exclude SOCKS # macfreeze: exclude TERMIOS # macfreeze: exclude termios # macfreeze: exclude _imaging_gif # macfreeze: exclude Tkinter # # ################################ # Splash Screen - hooks the import # process, so import it first # ################################ import MacstodonSplash # ############## # Python Imports # ############## import AE, AppleEvents import FrameWork import macfs import MacOS import macostools import os import W, Wapplication from MacPrefs import kOnSystemDisk # ########## # My Imports # ########## from MacstodonConstants import DEBUG from AuthHandler import AuthHandler from ImageHandler import ImageHandler from TimelineHandler import TimelineHandler from TootHandler import TootHandler # ########### # Application # ########### class Macstodon(Wapplication.Application): """ The application itself. """ # Creator type of this application MyCreatorType = 'M$dN' # Location of prefs in Preferences Folder preffilepath = ":Macstodon Preferences" # ######################## # Initialization Functions # ######################## def __init__(self): """ Run when the application launches. """ Wapplication.Application.__init__(self, self.MyCreatorType) # All applications should handle these Apple Events, # but you'll need an aete resource. AE.AEInstallEventHandler( # We're already open AppleEvents.kCoreEventClass, AppleEvents.kAEOpenApplication, self.ignoreevent ) AE.AEInstallEventHandler( # No printing in this app AppleEvents.kCoreEventClass, AppleEvents.kAEPrintDocuments, self.ignoreevent ) AE.AEInstallEventHandler( # No opening documents in this app AppleEvents.kCoreEventClass, AppleEvents.kAEOpenDocuments, self.ignoreevent ) AE.AEInstallEventHandler( AppleEvents.kCoreEventClass, AppleEvents.kAEQuitApplication, self.quitevent ) # Splash Screen MacstodonSplash.wait() MacstodonSplash.uninstall_importhook() # Create image cache folders # While the Wapplication framework creates the Macstodon Preferences file # automatically, we have to create the cache folder on our own vrefnum, dirid = macfs.FindFolder(kOnSystemDisk, 'pref', 0) prefsfolder_fss = macfs.FSSpec((vrefnum, dirid, '')) prefsfolder = prefsfolder_fss.as_pathname() path = os.path.join(prefsfolder, ":Macstodon Cache") acctpath = os.path.join(prefsfolder, ":Macstodon Cache:account") mediapath = os.path.join(prefsfolder, ":Macstodon Cache:media") macostools.mkdirs(path) macostools.mkdirs(acctpath) macostools.mkdirs(mediapath) self.cachefolderpath = path self.cacheacctfolderpath = acctpath self.cachemediafolderpath = mediapath # Init handlers self.authhandler = AuthHandler(self) self.imagehandler = ImageHandler(self) self.timelinehandler = TimelineHandler(self) self.toothandler = TootHandler(self) # Open login window self.loginwindow = self.authhandler.getLoginWindow() self.loginwindow.open() # Process some events! self.mainloop() def mainloop(self, mask=FrameWork.everyEvent, wait=0): """ Modified version of Wapplication.mainloop() that removes the debugging/traceback window. """ self.quitting = 0 saveyield = MacOS.EnableAppswitch(-1) try: while not self.quitting: try: self.do1event(mask, wait) except W.AlertError, detail: MacOS.EnableAppswitch(-1) W.Message(detail) except self.DebuggerQuit: MacOS.EnableAppswitch(-1) except: if DEBUG: MacOS.EnableAppswitch(-1) import PyEdit PyEdit.tracebackwindow.traceback() else: raise finally: MacOS.EnableAppswitch(1) def makeusermenus(self): """ Set up menu items which all applications should have. Apple Menu has already been set up. """ # File menu m = Wapplication.Menu(self.menubar, "File") quititem = FrameWork.MenuItem(m, "Quit", "Q", 'quit') # Edit menu m = Wapplication.Menu(self.menubar, "Edit") undoitem = FrameWork.MenuItem(m, "Undo", 'Z', "undo") FrameWork.Separator(m) cutitem = FrameWork.MenuItem(m, "Cut", 'X', "cut") copyitem = FrameWork.MenuItem(m, "Copy", "C", "copy") pasteitem = FrameWork.MenuItem(m, "Paste", "V", "paste") clearitem = FrameWork.MenuItem(m, "Clear", None, "clear") FrameWork.Separator(m) selallitem = FrameWork.MenuItem(m, "Select all", "A", "selectall") # Any other menus would go here # These menu items need to be updated periodically; # any menu item not handled by the application should be here, # as should any with a "can_" handler. self._menustocheck = [ undoitem, cutitem, copyitem, pasteitem, clearitem, selallitem ] # no window menu, so pass def checkopenwindowsmenu(self): pass # ############################## # Apple Event Handling Functions # ############################## def ignoreevent(self, theAppleEvent, theReply): """ Handler for events that we want to ignore """ pass def quitevent(self, theAppleEvent, theReply): """ System is telling us to quit """ self._quit() # ####################### # Menu Handling Functions # ####################### def do_about(self, id, item, window, event): """ User selected "About" from the Apple menu """ MacstodonSplash.about() def domenu_quit(self): """ User selected "Quit" from the File menu """ self._quit() # Run the app Macstodon() \ No newline at end of file +""" Macstodon - a Mastodon client for classic Mac OS MIT License Copyright (c) 2022 Scott Small and Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ # # macfreeze: exclude msvcrt # macfreeze: exclude SOCKS # macfreeze: exclude TERMIOS # macfreeze: exclude termios # macfreeze: exclude _imaging_gif # macfreeze: exclude Tkinter # # ################################ # Splash Screen - hooks the import # process, so import it first # ################################ import MacstodonSplash # ############## # Python Imports # ############## import AE, AppleEvents import FrameWork import macfs import MacOS import macostools import os import W, Wapplication from MacPrefs import kOnSystemDisk # ########## # My Imports # ########## from MacstodonConstants import DEBUG from AuthHandler import AuthHandler from ImageHandler import ImageHandler from TimelineHandler import TimelineHandler from TootHandler import TootHandler # ########### # Application # ########### class Macstodon(Wapplication.Application): """ The application itself. """ # Creator type of this application MyCreatorType = 'M$dN' # Location of prefs in Preferences Folder preffilepath = ":Macstodon Preferences" # ######################## # Initialization Functions # ######################## def __init__(self): """ Run when the application launches. """ Wapplication.Application.__init__(self, self.MyCreatorType) # All applications should handle these Apple Events, # but you'll need an aete resource. AE.AEInstallEventHandler( # We're already open AppleEvents.kCoreEventClass, AppleEvents.kAEOpenApplication, self.ignoreevent ) AE.AEInstallEventHandler( # No printing in this app AppleEvents.kCoreEventClass, AppleEvents.kAEPrintDocuments, self.ignoreevent ) AE.AEInstallEventHandler( # No opening documents in this app AppleEvents.kCoreEventClass, AppleEvents.kAEOpenDocuments, self.ignoreevent ) AE.AEInstallEventHandler( AppleEvents.kCoreEventClass, AppleEvents.kAEQuitApplication, self.quitevent ) # Splash Screen MacstodonSplash.wait() MacstodonSplash.uninstall_importhook() # Create image cache folders # While the Wapplication framework creates the Macstodon Preferences file # automatically, we have to create the cache folder on our own vrefnum, dirid = macfs.FindFolder(kOnSystemDisk, 'pref', 0) prefsfolder_fss = macfs.FSSpec((vrefnum, dirid, '')) prefsfolder = prefsfolder_fss.as_pathname() path = os.path.join(prefsfolder, ":Macstodon Cache") acctpath = os.path.join(prefsfolder, ":Macstodon Cache:account") mediapath = os.path.join(prefsfolder, ":Macstodon Cache:media") macostools.mkdirs(path) macostools.mkdirs(acctpath) macostools.mkdirs(mediapath) self.cachefolderpath = path self.cacheacctfolderpath = acctpath self.cachemediafolderpath = mediapath # Init handlers self.authhandler = AuthHandler(self) self.imagehandler = ImageHandler(self) self.timelinehandler = TimelineHandler(self) self.toothandler = TootHandler(self) # Open login window self.loginwindow = self.authhandler.getLoginWindow() self.loginwindow.open() # Process some events! self.mainloop() def mainloop(self, mask=FrameWork.everyEvent, wait=0): """ Modified version of Wapplication.mainloop() that removes the debugging/traceback window. """ self.quitting = 0 saveyield = MacOS.EnableAppswitch(-1) try: while not self.quitting: try: self.do1event(mask, wait) except W.AlertError, detail: MacOS.EnableAppswitch(-1) W.Message(detail) except self.DebuggerQuit: MacOS.EnableAppswitch(-1) except: if DEBUG: MacOS.EnableAppswitch(-1) import PyEdit PyEdit.tracebackwindow.traceback() else: raise finally: MacOS.EnableAppswitch(1) def makeusermenus(self): """ Set up menu items which all applications should have. Apple Menu has already been set up. """ # File menu m = Wapplication.Menu(self.menubar, "File") quititem = FrameWork.MenuItem(m, "Quit", "Q", 'quit') # Edit menu m = Wapplication.Menu(self.menubar, "Edit") undoitem = FrameWork.MenuItem(m, "Undo", 'Z', "undo") FrameWork.Separator(m) cutitem = FrameWork.MenuItem(m, "Cut", 'X', "cut") copyitem = FrameWork.MenuItem(m, "Copy", "C", "copy") pasteitem = FrameWork.MenuItem(m, "Paste", "V", "paste") clearitem = FrameWork.MenuItem(m, "Clear", None, "clear") FrameWork.Separator(m) selallitem = FrameWork.MenuItem(m, "Select all", "A", "selectall") # Any other menus would go here # These menu items need to be updated periodically; # any menu item not handled by the application should be here, # as should any with a "can_" handler. self._menustocheck = [ undoitem, cutitem, copyitem, pasteitem, clearitem, selallitem ] # no window menu, so pass def checkopenwindowsmenu(self): pass # ############################## # Apple Event Handling Functions # ############################## def ignoreevent(self, theAppleEvent, theReply): """ Handler for events that we want to ignore """ pass def quitevent(self, theAppleEvent, theReply): """ System is telling us to quit """ self._quit() # ####################### # Menu Handling Functions # ####################### def do_about(self, id, item, window, event): """ User selected "About" from the Apple menu """ MacstodonSplash.about() def domenu_quit(self): """ User selected "Quit" from the File menu """ self._quit() # Run the app Macstodon() \ No newline at end of file diff --git a/Macstodon.rsrc.sit.hqx b/Macstodon.rsrc.sit.hqx index 90d9751..b5c6938 100755 --- a/Macstodon.rsrc.sit.hqx +++ b/Macstodon.rsrc.sit.hqx @@ -1 +1 @@ -(This file must be converted with BinHex 4.0) :%NeKBh0dEf4[ELjbFh*M,R0TG!"6593e8dP8)3#3"$2r!*!%laP6G(9QCNPd)#K M+6%j16FY-6Nj1#""E'&NC'PZ)&0jFh4PEA-X)%PZBbiX)'KdG(!k,bphN!-ZB@a KC'4TER0jFbjMEfd[8h4eCQC*G#m0#KS!"4!!!$2r!*!$FJ!"!*!$FV2X$D@P8Q9 cCA*fC@5PT3#PN!3"!!!q!!#bhIRhhmS(I!#3$3j-X!#3$NeKBh0dEf4[ELjbFh* M!!&P6R*cFQ058d9%!3$rN!3!N!U!!*!*G28!!$-GF(d!!!d!$J$VGARfRHHa21[ -[(@EXFe5I[6jaDimVeZSl191YZG[pP&qMGM!l1ARH@hkA9PXahkEAKpVdF8Zf`0 fqeL$K4rGE00f3VB2HZCe(V[&iZF@EVLCr"BHbbl2+2HhHEE)FV26Dq"l30I9p9h A`GhjIEH23!,*`bF$H'3%6r,`b(%#m3NmFG$K-bCJM2R)9iaCKhIHh#*Nec3f0Da XE&LcSTAC4I8Yc@[@,&r@dPU)E1Q0bqTEfjTA0$G9YV5fe0mB4!d6#aGGAaX`VMZ BCIlFXrH&[Kl0Y-@E2pSD3U+aD@9c@m0(feS,N!#F[VkYVEQT0Bq$V@m5#"![ekU KYUTK680p@q0!JHf3!)q#jBe0+b5aERhVkYCK5+aYD&UrC&9c@c1aPCPD9cHZE&[ 6J-cIi-HR",p)d"eUA!ICfIEY9I)*Q')rIrpQ$TLTjC2T'83[8L2cc2Upa9)RV!! [!M[`)-jem@E4H$2HZr$q,0jEmIi$&(abUFE-Xilel%1H[@8#MT[Zr*miCTrGZp[ 0*E9,69&NX`R1Y"K'X`f)ih[`XpdMJ5a8ppXCcddRFFJ-0D@Qc*4Y,YZ(0h*$8I- [ieJdZMEYUpNm$X-S4cM1(2ci&*[Lc$K)HZ-Jp@BF0ZHE-@DX'BII@'614m@r$'1 afEGTF`f'S3!+-X%RPTBDFd2Yp60&%I"-khG2c[[)[)p!-i,ckSbT+KRIC%,9P@E dUY,E2RacE0A#@fpC',[eXUA&95Ac[Q@@hr,TTE1V5QSUc9#m5kXU64M[%H-UcIQ SI[rmemh`T40q94rSP2S3*`PHGXZRabqCpq(S%Y5-Q0IjbEA,'TZ!"c'Bpq&jkqq pm3l#0+HTX8fUh1r-rZQikYqT0-1"6r%P6DCmHT2lJid'd41cQpa8HeYdBG8%%fT [RIjSqq'*ikU'Y(qXUU6pGe&lS[fcl9p%lL(N$V92RP$T(PSAlRSi@ZNqea)qZZ[ bQ2[$Lb[G)fhKi`pF2XepU[16R9Y3meKdlUj,jcDC%DZ-qHC9K8Z(4aG'9jX&d39 $Umf`DV0Uk-)CB-Q)cPPIQp&d[$V[rPRAaG`IA)Z+jfIYQ,&SCN[JU4RA6A1ID-Y rqMB6V!P11ZrTfTTJqarU&&AKQX+D5[F(lAI0RGPmbEVm6[B`eHGeeRBfZ3GU6,C 2TIY%68(lAF$Z1l-rCMDfVf5QI@G0K3P@9lS(1Q1GLaE'f"%9"3-9I`!%*mkY0+& 9SkZ+`FB40BAJBQP9#GJB!PZRNie9PH"1+pKb"pl2#PXqGm1,3hZc(+aY@ADl-F2 $9japb-S695@@I@"NG%''JH1AJ(%I`lc&'3l@A'ZZE0mK03rDZ8X`GiNh0r9Jh[T 2kp5c'eHYAS-hk1pT`UHdFXDDjPCk-Q0U!jY(VaXrHrcFi6F1Rl1kk,1"Zi1aB$3 Bc3rRKd,jq!8fAhLUTVHQIj`lcQfQ&A%f16916@TFUUbh%$p6"!1!16M-X-h$e`f rBIMF#F86JV22cU(eidk05ieMIdcaUcN#Qr8AZIZ+lCZF+lC(l[BU1%2H2[eGH(M UmjXFephN6(hq`X0H&4S8iQI-DIDbRLZ-hhreA&U9kcLBPB)mNlFCNhEPRF*l(h) $3l!qZ&QJ$q-G#jkY(r4dRm1$Q"impp"VP*%ZJ(2S1X4M%-qb-I1SBlekNYccPJ@ Ske261qj8@9FK-1FZimfRTMFF$NAcJIPrV2m[U'HI-YIGPeF,a*m%iT-Xi[rBl`P "r8h8-UJ(j2H@"&crjhUCfdIp[rGpb`)draZ(rkRqlp(mchf(r(!TV$3Y4q!C1*! !rL%cjkf(jhQ-6K310$3&,[GU1#Sid[$3@K0B%jUqD&eJU3RFlANL0e8q`FbmDAj 9mI49082DYeD2ZpE-RENUrbpVQd*AhEA1S0F(ejP`RSQC+"cEhB1GE"G1G0A3QGR j*P`h%bJdkE[QfQMTPer,C-2K,lpfADhELDbmrAUEPIVVhHH3!*@hAfqcV,ICimK QHM1Eldr+E)&NMq0pdZpl%Zr6IPpN6,PQ0$X"ADkUG,Y[QMqYhfbB[D"pHr@ihc& cCc6PEc",jeVmmiKrjkaVMHDVmm625Xd8XQ,S0kp[#RhcqT@M&mjB@[kAYFh"462 X"+&[eDlCLkU[ARARZS$RBcr9KZdI0T)YM8fV6$$`IA$BQIh6-GAFG&`&$S2,T9G 20!@I[G8%i@0(4"I!HiG'JlR9%de`-@D[(YlCC)E6C30&TcVrCY68j('2N6ieem" ($ed9V5S"FT@ZdhlARk&(Fd(0YHlhfqm%ZiH3!0RFHJLbG`'9UiR+G[VUaGKScQK BX`CU!e5q5Q8"+P59mSRBQC!!Dp#4kceRrEljlBHM5bkIlCk%IclTEcLq3AG0Tlr 5"-ID6FGclC1c'il6il(K12V3CCAZdD129*SMGalC#X8U@'X#6CcZFZ`Dh+HK9dr [Z[354*FXI2UN'A(G3[HTkm!*GbqLI2I`"qrp81hPFpf[ATYI@Bbp5f*ZNr[8U[H rEcj3IfVhf1L5mD'jGkkD'jdKma5i[BL+h45`k1@fSZDmpREQ`'GirrZ4iH4A6M$ Kcm5U!efc6mlZR(D82*FZ9AQlai(2BiGHDBUUcFS4eqBYR"'GfrQpbP"er[dcX'Y *,#eB1122DYFHQ6Yc,ADFR'9GZ(1e#@+$X[IG-6!C&G86*(mBq3,*BdIb0@$6A-c XZj("cJ6BI1df8l#Q['S)N!$Xa[DU!1ck+VKp'-`1Rje$j[TejdSh89@)cPrd1QX RBGE%T@2ReQ)Air@keZ4"!jqB[3$pQYM[mNAJc'eJ@LShmk)Bd1jIb-KKA@J#a#+ b+K5UK+2T@e8+YMb"1EC#5eFZ(@Ucpc,,A2[1kD[DGj!!8Hd2LNB8Vbb3!*h3a4R '$+*UYc3PXU0j$$XD+XdG%R&2mieIlSFQe*!$Q2$+PGA9ZEF*$qCAVT4Y$Y9h023 0@MH#$XUUX1iGTbq+V5V'1iVh98XRBAH99j-[Qm55F81Q[h2HYe+(Z$0FbUe@YK+ '+B$DEl&@0IEFEK%20c6`ViAle)CZ5Qe+DFCcIeTGePA@PEICGI5AYjPjfd%h0,9 PTRTI,$ScZMAmTIZrG2r@m-aS,&TpUZaU,'j,d5&BCQVfEHVDe1@HdKpc0GPk-Ld c4bbk@HEB('EZrmfK[rmp4hMapEFX[['5&I0-Hr899emKR"Q+PBa33pdaSf2Cjf` D"B2TBmG+5[aY19,b-#0[*NH0'Q9-jXhR2q82(cjX61E0je`qpjLl"KkJF$CYp[( *1AmTb"@GbfmfGmYM3KT[Y['@#(F@J8JN%JlJ&iPFM$8LIcDqf)[I9Ch(hl[m@*r UQr3a3b4FB!UJQ2+Xa)-P23XN0LC@Nq)HFZQiVV+A9hNrk&9U8qp'8p-eVN[V0qR D`hZbpE+-ZHQQ@($hlXh&0pfdG-L$pmkHq,k'Km1I`0E6Q-pJB4-0beSXrj*30"T H2'*%mB3*%bjC21+5LG%*i4%hK%G-D,[XXUXQM,KkiJH[(M&QdSM,*RlJCiHHA[[ q[rTQhHZh,EhZZ81l+[ImeHB,JGG)A+'8GQ)4Y[D`#6lh$40SAQh-FjdQ$pZb3YI Y`YEXe$JA6Y&e8hJ6YIrc6Z(GLrFTc0&9mlUlZ3C)%qfb8j!!EcH&Q9-Qi2E#2U( !RQfF%c&IflcR&qAC"[p3lMIi9EPYm)rPfJ"kmSq2,ApMirAEHUp"Y[jXr0YkVr# hp4IaBIiAm8Aahp6rY[pE!G3r`iIjAm4)[%9#rDmHY,R[Rak1mC[bIfTJP5#6rd9 eV[kAc`rXmk[krp(!IhlEi$F6r'E%`8TC1+Z$%eI(acSkFAH$jG)J@bi0FQNf'06 S-#bK0kbk`k`JqhRl4QiJMrFEH6K*Bc*[1X[rQiF$05EcTL2pArRFBrfVpb`iQ`I SJq@DAj!!5@Xq5p'-ll82$A%Zc`Ebj"VNmVC"CSM"FM0'pKlJjmb&Z)rMXhR1M(P [Cq+lIm%kCJUR,9K`Jp,ieT',leMA%'eH'De[D9M@eV!LZV*a682ViRR6EMar"LZ D@rkqq)*TkpZDebjVDkaIYQE0(G(@GBe0dIVe,Dh0,EA6hlFi-Uqj,EUq&D[UD2h U&BdY%bkG2Rh1iV*Tp@L"1D+YEF[DY'CBEF1DCAG%Cq#JYAP0!bY##aYD'eSf0+a JXQ6ql8fjiY'ec8h[E)XfiU+ZFGQDaSme40ql[V(q0Ql[@"kC[kkK58'+YUjHeU* $$&ZiV,'e)ETScU`&FaCFciVbZSD@9Pc94LIJ[KIce+pHeV5Ui9)#@c*[rGT&keH ZE+a[D*drBplL)42jh,"SmB`#+IXSQj3*D9D#'keqcA#2,S0PI[rV`ED*`pHe0+a XD'PSUQq)EP!-b*Icjc5e0E3X`kA[KSESXTA)49[V@aVAYE'i&'!Yal9BY((YZZB @+3R0ApI@Z"E`-aQq#8I$+cR9#K"V4@-cLiE@0LaI[bUk$YI-$8,*dHpTD&JA[4d (`mfh4i&m8h2,fQ9VSJdIEC5*,MKEhY$5!KLpkM(cQX'j$%60'"p09S#$cD[BS"` 0PV@XUUp#X#(DX(Ep'NL$BMYUrKVLXUaTaE+@&CLS[N'DYhTY@a[E'LjIGdIEDJc 8ZRkG"c(%kGeQ1Nh,N!$UbNQ99dk8k,,SPkqX[[,+k+,kjVDfk#)JZ#D+bD,ec8f iM-"PG(0,+eE+@!KQ@jIjTpa4bD1`H%'A()qH,bVicpRccFeQ3q$Hi%T[G3JD2fe -0Hp6Kf[HrDREBridd,F['$L$-r+KLr3Xl%!`q-[cC&EbH5"`fT4I2Ah1MCQk@5h hV&[pTmY[p8qAfHZcRp$pMYHA6fDH%(V*FCrrc2d1GS`mPI@1K4M",JBCIqjch&H j,Na$2Q2k(([!AX!Zb'#A*IBba"MpLKLMAc&Mp#Z4DE"8j66S0i`a+NSCSarfB*r l(2U&'D0I4+B'AcJeqTh('2e'-%EP5-ES9miBr8B*1Z!Hd8'r#aLMhfM'k(FKBh3 B`aMp,K)8M4P,&2('$Sj'f83CSprE'+2IaBc4kHhfA2m5SShF1aLMhhM'k2G1aZJ hJ6(kA5UX-'BL@B&-KEAIPc&#[mXCSemPBr5VXZDmQYASG`9M9&c*'2f!TI"M%Q2 dQba6'(-9Td#rGc0'[kXCSr)DaZJhK6(k6C9TMEQ@dk,IGBc4lhFBSem0Bh5)-8D rDB)+[MK!90"["Q1mDaQMhr@-d@mQBh5DC9F,XiNHqXeKM*UjM0([2Bc4l`E'k(H MS)cV(k+-c(c'k,H!-IUpPc(k,@5-ISZ%$FBXYSH)0c&'44eMp,ZC%IVG`KMphLG 9aVbI9HMh!FESpd('U2`3Br6l-'2d@b,GM9R+lZLhM$(k,@H-I[@-d@%&Br4VN!! T33&1LAkV'+2IDXCi0c*'[eXCSp0YJJDq(d%dd'mYBr4VBScDCXESYiiaqRe%8-2 h'iJD-Uf-dDq0-IV"[3Nr0M"'[pX&A@-q5R64l`l'U2JBBr6lAFESYj%aqReF@'$ -lj%&k,H*-ITYCSc+,AC*m!P'k(HRA4PmNPRdZiXaqQePM(lE'+2$hBc4lalTDXb pl)TqRf+-IYXCSpppM2(qIFESp'QlN!#iRp1Kham`4Vr2-%Dr2f5-(Rr%'2hqPD" Jc"m6"@6q0@2dqbaMp"2fSYrR'D2I&`3YBhB3,I6Eb4J9Af5-IPpLM(kl'+2I!i+ U-3m59I4lL$(k2F`BPAr#'2dHBBaqM`VkaV36II6l-Q2dfmdBrEl#'"dkl*jSMd6 'I*84q[dTBr6l'Q2dqcH-d@q[h69pAESCm`eeD1EI-NDr2f1-IRr1'2fqb4LpX,J 4IRb,8b(cE9d$QVpNM(jra4Mp[X-BrEiVdq2JJp1Mhhl'U2KVaZMh2FESKmpS#$r qRD"Nc'0%#IdHCiaq"aLMm[Yf8BA$@1(([aFd-5644,rr`"MpIXJBr3ib4JHF5JJ cRY30QhP+h,*VrPBAQ3Bq@LErN5kbc#('k26-bC2#Mm-[[#$aXpm'iRLHfleEiKr ElHEcYq0Q#mm,XS`cjNLY(-'E&lN2a00Ppj-['5-6(88V6S4c"*RS1$r8JIJRh(` LIYNBQHLRh0`KIJ8h5CcS9Gd`QK1kZ65[F5K-p(Fbr![QCi`aND#'L9lA9D[KC3B RqVRZ![8i("0K5b!6GH[Le-42bQ-5,mKMHViYMqRG,BrTXr[BrY[P-8QlJ%c9bQ2 5&mYM(([VN!$l')fh-p"ik"CAIf,ihkSa'rff'ccKR(#Fr&I66kCIG4aQ$qFka,l [9MY2GMckb+j(0Zl#Em0'[-lp@,KVib-222,)SqNpVcSR6Z3QQ2Y$GiUcja&TrIQ 0(pq`mB%0L$qrFGH'A9ldFBPPPSpV+0'Z4rBmfIekETEj6lSecU0SUb0SRedFkJX EmGV`F43JLB$c2'$(N!"jG+k0MkCrRKYSmGqkYAX!MEaN$2C$,b)L8f)@QC9&1Jc V#G2'$3mSJ"Yfl6R4RC[UjKqjXp)bK!bQda%H38i,"(QKK1)%9K!pP$h!(NKc`Pe liVR"2[#-qaj(J0'qJT!!8!!K@-3+K+cl!QK&`!45)F[RJDmJ#Djq3B"dHR,$IIL `1qp49"-1)S8AjP%5%5S,f5i-51VCU6N)KeH+F8#-+98EAqRUbmhhLHIFpcVCRM+ Uj48`ak#%$20CI)9l1Z3$c#Z2d9,T,$!mfYf2mAlQ$NYZkFrmdV[G!PY3B#[Z9Ja DIq`ZFT6(5Q,340'P#-Q!`K*P[R"5N!!L$Z3@J3&'M$cjSGjd*38&da-h*V8EFG) NM8RDSHpmhPhXS+2-jXh,hK!YUc3DF4cL5f3&ASZbD)+9-%SSe&DN`TXkE8`FLff q1Ae[fJ6LG*j5B%(if![ZcBjb1F-LM%85+,G)30%,+aN!he,#&e(K!P92@N)Pd(, MSbI5!qMRi90VQ$a,J+e(h&[!I),TN8hQPc%jV8LHTlKDSkd!KLJ+4F&62''0m), j4h4i1c6I`6K4#26%8hlDiR$(%AHq&AZfYPUZX"*c+mdk@ikSr'@iDbQM6()f&UJ jH0,jC`hie)[ZKb#ZBP#%!#+D`Qp9IC9"1akUVI!mS""Ce44hT&TX&GF+p3RA$Zq B)Xb[VepV`FBZpm0TD`SmTb0#U1TQa8$ji2XAcdk*I40PX'ci[,J*#)&&$#D,EZM A9,JEdk[e%4A`r*!!acR1jVN3VE5Fm34$E*)k"ffPJ381f9HcXYJ[#"33#EbX(RK )E(V*cGm6L8`ZF5*jNdXLNp-4`e3*5Ta))5SL*C-M*HP)!605G&j9""95*b&INj1 4BXdc3"1$33*,-V+80N0Nr!`92#*qiUKEfL8$65k1P)54U()LjC0e'[l#94%FI5- URKaf)X99,%+E-,%BMlD65X+6)hL9K%XLP@`&%+4&"2-!M1*)a"QJBQm5GrQ#KNH #ZikkBrDJGDA!%#QC&!QAB#a'Q#a-4))PNm'#%8!(C5J%2)5%%k2kE3)94KEi!3L E-0CfL1j8#+M("*pm9)h+UJ*JH0F53K!QU%#q1"5)"d0+-D39$`b-HTD3!!T!SL3 9H6ZEHQ!"&@"1*K%60LF#%G$D62B8NScdc*,BK!`M!f12ZHrS`L"NJr#K1#jX#FK mB+EL!AM6450#PiH+j#frbj!!+bS+*BZ'K)T3G,P6&,U-p@b4,R,$qF*aFq)eGlL 6([#V@j)TjbIZ8+I$UdTf1-IG%UGMLf5C6VYRA1YP+hT-+'lk**Gmh4fH6Jd1Xb@ 92Zk@T9-$448ChU0Paf!a"hcG(603-r"$rI0+dqmFFi0l5+G#N!!%J"C$BF0"Mk* 3+mK4T,MA&-3a+Rjp`[)m6Tibjl%Nq`U'3@@cjh8h[k1Z*a&rh34lqY-Rh'"(A5) "RDj,RA$cR,iH*22M[8NA&$$a"2ULGqpT0qMdpj`d`BSqYNch9Ib-6SH+JP*-m$U QlYhLR(CrJP&kNdF8[kmGFiFZ!BmK$8,`N!#Da,)L`%P4JC+`F",,X"112fq#SC* `i-kZdfkJS`GECM3,a2[rcMApTdbJccP*'1*)pD5*MS@DqS,[!I5F3G-%"DHEP"A -qjbIZB&N((YU61,j-[6TLjm`JBVN'4FEES`4k%ehU5+pJiL"AG4jDU1ih,3*aiX J3j4G&LMeKJq@aePH`X*!!J"KH"5aKSML`T!Y6*`&6aM#L04T81+IF3"T'*9X )d#Xk8,BPd8pUHq)G$faaiLlF$I2DKa2faYemKc"!G'bc"'C1Rd)CD!%!KJlSJ0V $1"R@pdBT5"B($iB2P'@'5VfNa$jic"dQ(,E%T[5%39eUY6U'NNK4[%FCJ'X!mT1 mI4G@GkE$fk#3!2,+)m!&bLH&5DG*HFQHJK*apU$TG4*@MGJ2-YH6)'ZSGjbX"bd ld$+9)%e`M@#TN8+AT'+!eZ))EKJ`e6Ge4"G3&lfQTB$`SUb@&591)&N8dHj! !AbS#2&BamF%4JlIr%E`)J*HMA1%UNHab+P5'#A1JaqN'hhc"!*!!545NIIAST6M e%@-V)%TFdiZ5AQr)T#Rff9L"JI,6*!60RBiZ4*+fb4j[@[EeUX'0rJ4[-U@#Ec# PrjJ+Aq#i1mb*P+K8dem8pCVcLQNYaALUbrA8eK1rN`U@fQkaqbC"T[Cjr-LT*+$ B)V`JDZNXP[%dD+TPDPS"4cc9irUcpA'0d02MQU3h#iQ2IRe3%dLRcXMH#A'Ak06 $D9J*mXA625j6(ZTT4FfaFKR[1+i8H1paeqaa)X0%`X$h5#81Ap%YRliB+K!5[`` G#2I!%*K!Z0Mqm#VbiFCBK9VNK2-3&[@4fh@!8d(+li("kdLR63I3l,"+"0e)J!8 &a&AK6#DGB,)1"L$3Lm@akI0"-hfTG'&(UVrAkq[dZNik$a1*j8r,bX9*"e(3#iP *p&&%1p)GI5ba3J@e6,M"ISqI`Ijd4`TJT02HUN#Rk(A0&Z8e4ZK0+f"TdjrfM!B i#F%4HXCe!-bB`J`95LRM`K[[#808e#Y`Za*)`ef%i+*Skl&I%'QT#L[cKq&,#9$ Kb@!ChV"%T5%NN8-c"#'3!"q3!!N`m#S9(6ph6ET2A4#J5%&M![&N(p5Nep*a#cM J*1J2qR[G["48JD*r@PG&8+68D3JXHd&9i(bS,FK@L(kL"3A,lL`i9TSem"#N$Z@ XemdZJq0aTAL5G1MrLI@6aphbHlM#JD'%XH!HCA*4+&486%%aiA5N5&FQN@*2QdS ,CCA#M4,#)LZX*&a![%J"qX'+&!NT3F)m[(Y!L$kKp5PiH0((3"bki#fV54#3!#E Jp)%eFDI205N9!KEfpm$"amd3YCl`e@+VV&&1LiKLLM639BX)G+%Xh(9DR3"*U-* @%e+B$Q1UI8&P[lmB"NVLA-&CP@*!mE,5j'h(hF)Pa"Z`Tb1MDECSY1NQ34PX2LJ 8Y0pK&9'BK`"A)U$#*#H5Ai*[NJT45"q+"4U+JP-`#&iIPf$LUekhdp-R!+QdpC0 `62P1KG8-e%&HK*!!-%b"IS-%GJ@kc8)c%-0XmF8@XU'Q4&X(($q*3QJ,@PMpJ'[ cl3HSN@HG6++A8ZPl52)MYcC6LP"+5l&,%A'%ER,K*TD%QJTLp)%&9-`%0C3mUU5 ,UiaFRX"QJFSKTK`leb+GLdk93#F`FYrVUKV@+2B6If*$'`,m1eMB3eTEqe9(m`e A3aclb!YGGh$hMkc)+@#&BYKqIHMY@6FV&ZT68rdZk+-ki8d-V[DUeb%4%0GCM6L 2'N&NS4&1j%,5RkY6N3JXLXN*T,R#PH@-[YfiLeeN+Q)J%`%eDIeQQ*L+5A"jP9M e&YR"!6Y!`QV1T#hjkrVFB*he0l$d`T@%eLM&eCZaV1j-aP*N*95d`IT1-UJIH+U RN!"0JGSXN!#J`dU5#+BR5AhLe6dTm'66,Rdb`RNq93'rFLjHZ"#-618HSca#Gc& j&%T'63)pHX9a&iUe$@1K(C`8+HZhLl*#e#3Mq@K'`FbR8YDGa&BcL@eNjQACBbS !T#`PG)q8Kdm##YE!XBl-J@IYS82S6p@CIT,"%Jc%##E%dB-@GNR*%*3bGCUbXQR [5k`UNL$*V#*D!jC8!`4aX9Ki"Xbq+ka`BVNlXQ(UU#QMTTC2(5@a"2Jj8dZR6*f #*(mS#N[V*$`%Ur%V4kZTCG$8NB9X1TAG8%5h)5rV*G2BQVj#+K0*N6p2Zd&DV*Q &'V)6XE+4k1MeYq-+2%8MSF!a$Hd8E*9FrCl,`Md"18Fqp,$'peHSJPK"9,&)mR3 cB58LH0`G[k3FF!*q`PbZB#0GMT`#VGAPUMcR"8B*)`!e)Y`[+eAcii@S5)h+CrY hp3RiB25@Z($2@kkS&4!Qm!SLq6+iV6iRN!#!SZ8Z%`LjE5dkQGR+!AL9%T5+BI" D%[Q-8SKY8,-!p,1Z38dL#@Nj-1UiqdjSJ!L!*Em!l0'F3+XkK-'f#1FS4"&T`PC 6be62Ki@81N+MUC!!6i0T-@DGE&-pq,-l*M8-HGk+81pKARD$IIj'$TeJa2U&'-* Td#+2bbXK2A5!R%C'+*(a8%(B@DaKl*&"[j[(86#QCbZYR3-Y,+XmCfQef"2(IK% (FS"36`B6K"QL$UUA"$b#c#5&YK3L`&BUQQ@HSk)d@#k0+Lp6#G6p*EBb*!rI1!2 2kN,!U@149HZqC1kZ$'L*2&LdC#HG@@55#XVfXk*Sf5Hbk'X!1+#k)1B!(2&%BH4 aYkL"b![aR9&M!&j%!*r-!2L$$k)8q#`N'SF63"`0Y!P03**l3"1DLLVK$cU,+&! DX8*+daPkLLLa@%RI*HJE'kZIF$8M$+@P6)XBC*B`DJ``PkL"@T3h*9)A$Gk0!pR J-`"m#24cA`SUX)&RNJBYTC@%`""I%UD@!fPS(HJ[C#$PP5$U$kCB946bUiM#,bJ "i*K86+D'Fij*jC+V+0R3R[BPAi6"-jA(9-3mjN!LHp+1G8bHQJNaFMDEmj!!&0B qqb)Th83Hl+DKhpp9J3rq'ZHFE5V'[X9A"l91cUJ4JVi[NC)XPjd8MMN55$ZMa$Y 'i"TemP+k*Q'"Y)@4S#abAjIfVe65(6eBi&TaXRC"l`#54q&`F&Z6k($pZc,V$ka -!RU9%Eek%`Edfk494hr,!(fd`)-'3f#Kl6T(&`hNNVGlXKl@F`PpN!#%"M%p9K' &fKlRe51-QN4#61VRh4&A#P2$--cD!$B"DbPi*r'8SJV`Mc)PADYX96QkBiXmNi" V%ja[j&DXK$,PRaZUb4)K%1XNqSKMV3'Ra&CkUL5LD*%@kbK0e6Gl8N-#5*NR!rR (h8ZAL+e4Mf693(p%G*,L2l@mA!JF$+J)d#G!pj5P[1e4hi6D2(4&R@j[k45i&p) qRJaC(45MB*dN'L@lD+C`442IBUf5h6E*dC1Pb4XH`ESNIqFQ3Q"0LP9$cbSQl2) J-l,(JP))`$fq(iB[%"p-Ai")#5##!*fcLra#hdDLeRU#B5%k#Sp&+S9%ArD(+AK Tf8+UmP%(#E(Bi15,hQQAGl3KTU#2blVXGNNfF33HSQLP4#J`Z&Y5-ji4aCa0%YY KE@CZTH"C4dm3XB`GVrX%JNa2T-j3VB'#6N*-,SG(NQ-UA5IB0C5D!l*%Hp*h4qJ 0G2A'YDa(BI,4-P6N`1++#lYJ4b,qFlQ01Q@YNf!U20!98QCKlaXMbEka8P&(!)q SA!M%a5MkPfc%`*0Q+`M$MlXAh`1%kC3K"VQY!4%&beP,YD0h9R8,U`5b%RXR@X) q8`jlj"''YL#h@F1Q&FL*!)Jld&9$)$jJ&9q!Ij!!YETrCX$cS3TmH#+hV[FG%lf !5+5hVmT)T"akj&D1JiXQVQi"L9@ER%alaYP3*08P@*QdLU$Z@"deibP6F0ML,4- %q6,Ja&@#k)(Z(UD@jr4!0SGT5'333@E(*Q,'BirNml68HLP'Cj(!1GcJ$N'e,,1 8rq8#i8fIC2G*'F[XEGNbfmZX+Sbpaeq[kCC-k5"V!fiER9(jT)"iCYj9dKK0YXh `,[1pal!3V)A@d8(`F-Ac#lkrS5TNaG(k#*2m-5q!&(cTLR1b`Idm[)5h4mLGErK ,0NA"qQG[EdGD+)[%2AV(%,j8fTRX(X'c#R'X(UdUC,fM5+6[KmN5VKi6P!9G+iL G%Ym-6@$$5HJ@*Mr8[H5)D*(`pdT+bZ5cFUQJUUN3i86fl,('2cJ&cc0kc[Q0jCV RR$h(Q*&+6`V+)BClS'fHhb[R2N"h"(51p!LbD!2$-qCHX+BGB+fDjhlCS2Jk)+V Sf6-lXpem@2XSIN(8`$1'Kl&XdDDm`MKlab0'bb)!+5$)5GNJC0FJCmh"'mXeAL1 Srr*f+CQMMA21N3[AHkb2KJf52B%eKVT5m9C,8h&P@)CpS(qfJ*C3`A+9BH`FV8X J833,@Dhe8Kj""V[,`Yd6(B,e5Xpi&XmHDq)NDr$F5f`5'YTeI-BR#0mcKaQH*(J ,0G9MXBeB-YKYMYK@Q6+l8KYrC%VXSLQa+E%ada#0LFA+qCSfC9TjE#TqBkE'TN` E-fA-&,9@TB@aF[4KEAPXbNMUBk&06d16+I640#frm!@@rIl#q4$ZUANI+-!+lYi A+l`l"-&+c1%j1q!G%p)2C"DQ[NqbE"GAN!"4TdbM!C'fA"Kkh"hbp9KXCQaQ1KC %j-6+CmCLXk4#IPi3bbahKK9+d630V[(PdHZ%H1Be'3!b1',E"p[SqaSa#ZTNH+' b*9PKR&IGB$*ZkD3b+9cACBcR&1`HALhj1ImiX'$bIG,CD`62-&L821Ym`A%hq(@ 5)(TB)%Bd$B(&94)fHdd#UTK3&LK&4ZUh$SK[KGH-dFLF9FSD()U$e8BHeeKYp+K YVaFlF!qB8XE3"29kaXNZRQAMB)PT0fkq!H)%DU$XcD(RUA%Kkqh9[)8#MTI89(K EV6H[&,#!I,ZMP-LL,U((&3(FL5Nq``TRDK-T[dCPCeMK,)pA+-dZAdf&+UfhcK! "%!Lp!m$-hCZX#R%3#$#Yf5%V[+-9R(F+[0iZ(PGL`[hFm9,QhXhI1'8Z)R'0Q$X 2(6a+'([F$EhSbB%6bf2'L3e4p*hB--X(P[ZU9HM%LQI',YDZ)f&,KP!Uf5kN`T& C%1JDdR-meNPDTd6NpGb+f2-`&-f#S!almfBIahXB3Yb$R,YPY3'mb)S-P-)cdCJ T+`G@2le,K6cSNr*'G-,cX@rFmQ3h,qI$@R9PTH%CAajbJX&IM4)qR0!dc35mK!p h!6c'Y0K-FJcpi5EX*XjDA'p(EJ@83&N"PAXA[DV&#D`F)q-f%JIZeRKhN!!DfG- [TC4h#DK(dcL,`1G(cNNRUCR49qZh[80f($0R$lrH[&hJPFq`,Y%'FN,j$m-&J-X ZCK93(Q-GJjcedf1T6-+GMX5DJ"pA+Ac@YN9NV,(`Gh0T2G$b9T6@-1+U9brID+e am0*4)HU(dh*VSJ-9[0#'PXSJ&GQEG0aGNd(#1(%AhJffRSeifQK&e9YC8U""(R' KM$'c[jCimklK)YcBN!!2)SBd$'#(%bZB13EXCfDSai+4PRHd"Z"''Me%0+la&[e @@84Yl++I&clUVqNXZ,*8FF(Z9Zla-dFj3@H,E!kJ&EKYi%)P!4mJac"b3,BPYmC %6YBb+JD3!!lVph(l(h35pJ-6hJFKp%-!DHm!b,qXPD80MZ'p0HJr($cN(h-0@$# @U$i6N!1KSJU,RE(Q%"&XFJ[9DURFdQF8aUf)L&'C1G)rKb-Yq(Q%H$GAE!P)JBS qP6jCCk!3ZX[U"bKB@3862A@T2RAC9$lXY'8GS3eaAFZ['r!l"GebN@brH1*pA`8 pHZ*eG[00KFB(%-JN,L(LGGiHN!$IF2MeQB0cc"h4-1JKi!d%GcJZ%8qY&92Kb$S A(YbR4daf&!Trd49L5mH)p"TV,-$kAQp*JSr(qYS*&1ZB"dBpq0#*A1EVef,XJMq 1"ArH&P6JTK!)ULcUChl8fRD,5hK&RCN`3j5(S,10l)4lr,YlA,2riXTKr$&hb+d @m)[mhB)!l&0#U(m0('mC5@p9!2*)SXPk@r+#rH(B#+XdZUX$q[U9'!A0[hi9SC4 [SM#V9c$i2JLrEd3LC6kF!SP!,Ei8*#IkhVV(IM6'-dcb2X0[d(K,,qrBbEH6ZDr '+"f`H4cmqJpQfj)B-1LCb`H6`(HmEP9fH#caY`h-`NQT)Sc*k!'-TMA[qG4)Up0 &N!"1DcaBb(Z3!*3S43+IZk%+i"2'#5`1dRB[6`i!a&l)35#C`2H'j4XiI5GPJH% GX1"M3IN1EEJp0e33F&1)6`EaNaMkb5"D6A`9*C@)[mc2KAKhG4Rrp1Dp3mNa0pa JXIA3ImD*46b,`+@,'-mDfH@+&&L0Q(C0h!bl,1HG4USN!Pa([Uf4qiD1pidEDY- C0jqV)hX4!MMLr5FY[TP@B#U1a+!JhEU)`pH'NK!rImh%Vh6KHJTI6*+[KhPIRF( EIKc+X8iMmqEG1VjDp-E"T'Hdbb!#[jrG`rL8X%l"pde6I,Y9bN@HlI%-V&25IRK +L+,Gam5ZNG-2GG[mL&B&[q@8f9Aa8f&fLFA$PiU1eiLUYhRU6Eq'G3VX8IDc4Ia 3@&S1*93-f,BRpAGZb*&[kPM*PGX(Dah3-#@hCCP2#!AMI46Nc,Elc41)`$&hj$h Rk'$G4*Q!6UYY9eDJ)6F[iSjS'X8jpFNfcqU+Ymh6PHE2h@%G@r!G0eqJ#3Z`51! ,-+Qk#R$GM3FVkP+[Z%-FjJ%CcNd6LGiYDGGp&FDcYi*E1RM+[(4rMi#Vp-L2*hV k1Pl4VaVSGjDX26J0P8PL"2iq9U-!hhhkH[BNkCb$lMVQMplj"!+X&P2K#1QX BE0diH(AHNJCD+N6aAl+`#-UUJ[BFqlrB6(kf$[mGji3EeRpmP(fPYI3eEQE`2J) ZX"!lSjHedMCi"GchH[jBQJ@46b16BNZG`IE@fK1S68Z'Jh9lA9*)kTGr62-aGpN 4ApX)Rpe%HTl!ihpQ2BHA1JDkj'b40GidN!!$"(TKi022'$L2+d!R"PZKr5NGBcK 5aRIiFXbXZ&+PdRM2ZQQCjfCb1Rji"6k5Paei!Gaa9heMIAeMUYidTZZ$MI8VHT& *i0eARir#&Be1[ER9U4qb3YVd5a[$)RNRkmd4IXI9RfMY8IG$fjBhEPeH[lf4BH0 @"+ZhVNE-h(+N0E&p1A1VYkf@#M65EUY4j6IaQfPRKPrT'KMhYU2ZT2ZfEUhRP0[ NYE9afpCk5D%'KCTB[QdEJq95X(cEkQh1eK+@SjG81eY,J3%UYpSj'TfY`FDYfe* RKre!DRApIH`Mm'!BGYFA"V3*"D-48klHY[`qj&CcDJ+p@QS*Dq-f-+!H%9iJ#l$ BeM8`l+e(h4[f#KTS5QMZ`dmJj86SUBR96(VJFd5CR!di+%&CALp6!0$Ll@a)2Qb 6$c$lXcBHGGqA&[L)ahE,!!klR0R9##40VK"&55U2PQrG$Pb)$SHq6cQ,*TKDHM@ Qj)[6rULVMVT$ZS@PcYCjj,[`3JEB@SpC"6(PVVb8Vf44C[j'c%`'k*Y)55@qb*) GY1%PpkCYd!))La"'IM)i3#1JbP-1+#*K*r0qbKS#LPkN(TPf(`$EeMA`%I$kPpa &Q)qFdFEN#c9)1D'%*pR"9Sc1'D4@aBV9J%lS,,JVY6$N`'I-PlhN[VI$*jdG$6r -+X`8#C!!dC34,%@9k)9SNP"CQ#fFj3KlX8[+MVMN*AHqSlh43$K0EM*0P84[jBF 8)@!(jB``53K)bY5cI2R@qc"Iem#AicrdNRYM&l@-pG[VC6!20+5fZ9eIllKEYF[ bNL3L04'$`l3)LJ"QfrZLihB0I1Pq3CGlSA*0qUT'#MjJ52hf%dRhE8jklhhEYYf R1Xe*#4d)MB&qrbYl1`$BblQ*VX9%Hp&Eq-D@`Pc4)f)'dq`iH5mkCp!hhqh'Aje k)GHp#YdG0"+++QqYQ!M!DDbhZTr+0CciSMYD0F4+L6*E4A(VIGmjefZ[*D[)P*S E`J+Gf6E3kp)MlJ@F'Lm`9(62LMVK(acVL$XkrG$M1r(Llm"$Mq2h4D3HHJLjVh` hek[LL(YKpi'GqhIZIfJrHL(QcdqNp`ddH`&N3$(+(d5h(FMXIfM(rXIaBS@cIk$ Cmqk&"hIXhlQ2Jb(H[h2Rr[d2B8iGe[RVA,2,IZb11BKTd)2&$qjr8-(B`Gc1acZ lrbEAlGdrGXFk"hB5!635S(CSamGCY22aJbGHa4kJmq$"!rJNF,CacA0ZY"Y6FMD #pb"4C`S)#N+2(qcX2Zf@G(Gf(RaBDcX("TMlV(Z*ma"K`FJl'3%$`Vm68j-&1`$ IJB-(rm3jD"jf$T4+"e54(i"aB*BjclLA(F!X"%+4Ba-!!339643VZX+C"jfG4H` %3Z`re2@6h#Lc$VQ46SXU4RJ34%2+fANaq1R4q5%P,XFPDYTYr`jmNfY`N!"hGjm 4"V*DTLHq1dK-dS4CJ%*!TB,NIe$!'`6hqUIGbD#S-!8-HHK"-"40b1cpa!-M!K# Lm0M1adKl)4Zk$1)aibRhA3H**8IN[%44Q%UB&3'`K0f*!mD9QN%XTMf*TG*"`JD qTrHr!i#)G!Ja`#C-VD3JS5A'Ea#(QS0Z94H"8)D44b5P#!GK93P#"3(Rkr(1%mG b!dcpJ9Z"rJ4"KNC+**5p4F8)Ua@p!`Hl6Kc00ErU#AFm"-Q59ZHM+&"DPGq#`1- (RDiA"mc,iqiiU+#i!1QX#X%%ZqmiF1!dPQ`jjr!pGc4Pmf(S%T88)[!BE-2$"cZ GlLlha(1jAQ1r"qZ6G)ZlcaabcMKRZTeZjmPFIIKEVMRarEH#r+mIH*PUqdp8[2m SCrq%&Kl[hbajIba8rSm5f`lq9H2m3dGfMH&rA4S6h'Y',*JcBc'qq,CErJ"Z`$J cEPUib"3%bV&DE6*jJ9YRhI6Rq+qjJFm[`*q83[`)rfB9MK$f0YDhAShm%iJR)6k %'(q,+h"8rajAi'4Mr4V@pb0'IE"JqVaDr%HZi($p3eh"XIU(ZS)6&pq)rmi9#&k eD-llVcI"),V-armN$EE8cPR-IVqhSVjY1H*lm5qKr,q('[L4r*XSr*mD6Ql`Af) #pd[Z'B26RX#,NMYXTU-[rlf8#6aVm*qJJVmVZ60Na%Ai"lIkck1L*UKc2'1@iF[ F1&k3!,UESfE)(pYC2iMF%Cf9[3['DcrQbV6hBGI00f(jDk+"Cb9hLq5HNacrE$& QNYlbRa-$2f+ZF%9QTY$l-c-9mFmmQJRb(hA#q-mdH2$GBq4`)F%QVKXeBlk@IqL &MI`(8XLpKY`R[rXAl"%4MQKZZ1"KFhq8cH%I%AUjmjl2j%EKlr$KfFcF"IJ[0r, JIe519U@4ZY(m#mc!aQa%ES4LBh!`Gq%Rp,rS#,IXRd@@h!8kKZ6HDEQ&2k&md@5 EfilFHfhZ-e!Sq3Fk*BY[Eli"IlLCQP45clpfLcqleG*mHe%crSqBC-,C+[bCXFB 9TAkTT)XPeF,rLPXN+I`2VkEmfIK[@rNc'e[E5UDc88-,"bc&Ib,$(`4VD@KYAYp 5hj!!6m(,TpS0QEDmHIe!p2m"!#)@!!!: \ No newline at end of file +(This file must be converted with BinHex 4.0) :%NeKBh0dEf4[ELjbFh*M,R0TG!"6593e8dP8)3#3"$2r!*!%laP6G(9QCNPd)#K M+6%j16FY-6Nj1#""E'&NC'PZ)&0jFh4PEA-X)%PZBbiX)'KdG(!k,bphN!-ZB@a KC'4TER0jFbjMEfd[8h4eCQC*G#m0#KS!"4!!!$2r!*!$FJ!"!*!$FV2X$D@P8Q9 cCA*fC@5PT3#PN!3"!!!q!!#bhIRhhmXEXJ#3$3kdD!#3$NeKBh0dEf4[ELjbFh* M!!'6IA*cFQ058d9%!3$rN!3!N!U!!*!*G28!!$-GDLN!!!d!$J$VG6RU2)rP@@I QVGZ-ECB@IIjHH9kh80R,R@c2hqbMr"UaJGR,cr-hrDiXYQ1r6Dq2YHKLPqd"Zah V$2+MQfhD6XMf3FqmcQ1h#)qI@lMKC[*EH#bl2+2FhqEC)X[06Uq"l`&G9pGhA3G hjrIG2J)**!qI$1#4%6c*`b2(#F3Rm-4"KmqBJ$(QSemaTKR[R(Q&b+jYD+aIe9# rGQ8VXi[V@TV@VPfa[+8e(pQ5QjIAYEBeV@aUV'KTEDQl1BJD*KBY[V%QB&ah--[ mq@IILhdpQQQ,0AfXY3#*KXC96@he(fYVc80ba[UfYUE'eK`1YVj4)%#m3UZ'fUV kYI9eE3d$"EC$,JT@0$5ZP%6cqYBeVF13!&KAhlKqkHUQYLCL+c1eVQPBeEDf(TP rLaqIB[c#3AHSF4eNjpLh9mNRB)Vmr)1E1@#kPNqkCa#p5)hd-r[hPNLGX!+m#1c !JcMEaCY&imeilm,lFhK[aIX282#TC4ScccV@X`pjpVB*1'kkqhrLQ(Rfl'NhPp8 X-iAKc5Bibf)Bb63JMZr&chB2"c*32@KR2$qGa!9QU#NaTDCdFqPq[*%ELTTr(XH LdE9TIrAQF4K'1F*ajZ,(TmJ8TFG"dKX(UEILN!#jd)`aBmdir-BLFb%UrRNBLmh q6CZV-3`&8*!!#6kjV-5BQfTZR#@+J'Gk[hYUrNIRIa5D%CaIDdaPmIK'8e"9B8D [,VRM)lG'9bqkrEC&dGXR,5ZU,*lr,E2LYXmXQe0CA&eKKZ*G8PPK3RL2'&GK,N6 e"aDmBBB[Qr#VqN#Re"G`NZ#NfcicIZRmMd5@SQE%r-j2V9[Hd!JmL-(mMmaIIrr 0Ga'QZBd0E9,PIQI16mG9r8k&'3jmLLjV0'8c'YdIE$5)RTc6k#EEfb+,+LHBJ[E @'Bqe(jNiVR*)qmFVLpYr&l8RfcrArLANGL0hZ(h+K!VhF(1Skj&)KIYm5qMBVLZ LlJm[VA#2YS912(6&G2ITcNpeEN(0ij&jZbkIefK'V$EQQpIN,aXH@44CBaC'&Jk Y-X1Uc1UKLfD#*5-kChpYCZ1*UT`(Cpm3GAp`25THQ,eMjZ*C,B'RCpi`hAfb,IH C1db`1MMjJQGUUS2YIkK69)DUmkXVh"qdhc0[9Y0PcEQGl''U,ZLXk@ad$eDE6*m +pmRU[2ClJ0ehjRcFE'aIa8clcZTb%kbUF!pf4MXA,iUb)bVb"LVq!!K1R&GK#PD 2VL`#'dG8ji1,*CA&B'-"f$U$E+bX!(GD`CDlm(j1f2,jQeiDfT[KB%h,mMZ0'4k kmYa$9TkX,,EX!b-M#p--(,m8M2XijLe+Fl$kHR09q`kTHGM1ABbjLlfjU3Icehp 'Tjl6X(V0@Va"Idm62Uf9-pFfYG+6'9-6f$bkHIbFmI1'hcamlTV#c`AZ$8D$N@! N0j4E8*!!LepJmm@RUhZVqmHjip`Q@K&RNe2Y9#I(*8Ylmr%cK6!!Q)2$$0Xm[(R i6F2R65LD%*acEJkY(hGkA()Fqf1+Amd4f+brm,eAEYrNA,NpI+pA`4PbpZ[[iL2 6AYMNZ1iQCpS,&araUY!J(cpMcV#Ap9`Kr2kVjp+UE-I"V"6NQ*c0Q,3Vjc6Hqj% E'),e`Fd#I3M[D2"FrD#Rqc`Ha26JfBGHSj4d!Ca$Qa'236cEaXbMM[AU5E,2faD JVNpellM6T9hj`*blM,HHkYj3U##5#mcrBrer36hcP,VZrT`D)2i8%*pX%Iq(INm +kQqKPNBp),qh*H$k2pA,h$lUrlh[faDJqGmir)reIiIQIqilj)I,B+9T13,2`S( d$jNeIcdmcq0dSR#J"92KFUq&Si)M$3fY-B'e"6-@0`H@QF#pRLGbNf86c+aE&P3 @c9KG2D4pDp@ikmfm@DYcrl+QXH#DHjS0HRfSfB4b604%i0MZ(HaNZh#LDiE1bX` hiBCC3+&4hpAA4dUqr(Sk'`TpqI8EDYa1C1AYepZXe0rS2SqX[2ekQf@pcCj!0Yf Ef9ar8QEc*(X#le0qhe0iRr(l)Q2+0+2C#HKb6BAEIFZ#kIeQ`jb&lGZVa[f1Q6H c-AH$@6E2iTp$r$YRAfmdAj8MIPCUTT)93lpjBf2"0fpF0AV4c'9PIeR6&&`mddj 3m+fDYIY3pG9VlQi1H$lfdfhBrQ%MfG,3Z0S%!pm(Kjdj2ae6a8h(0H!`Z&abl85 6plRE64!qGN4N)Eah`@J`YfUL#5l"l&A$1a[0F,TXS1K8jGk+QZSFlM&5TqFCq1L KUb19a8#Z`RADlrNcp'M+UllHrAllh@$h%$+E@`p"pKkJFLe4f8jI[33EcCReDpG #EB$+9kNX3)@U8MB41a0b$6TbSqHXhlqJr8KNk49ch&2`ckIm$FFhk+lTp&HCi&L lkALqI8TQ`h&Q2$BFahC2UR#2(AZd`KbpqqK@+&EH1K0Sj(4AB0IJ2J1pHQEAjCF KZQc4-kI-L"X@Z8rI!%kiqa$PZNFqG2q(DkkBjhleqYb+)ZaGi[-DhDGAIq$p#i$ kdh['4TD1,jKhpqTjNCNb6jlELkM)63+,AQiVULpSEfF1I)EhIa!C6Rl9""2kE,3 Ud$ARe*c1kFI)FqP5QE0R(2JmGZK9TV$+V"TaIFkLQC&jRGqV++M+IA!QGLhaCAQ ,C[jCcEUMmfDY`ik6Xc5(1YHB)$BSqpi6"C04869"mNH3!-q62(BNA`-f68A-[JF Cl%b!cGIZ-(PVbbU(!-PZE+rb`+k[JYY(`1c3Z6PNVPphVR$MPIRSr#@[XhB5CNe F0RCH$ABaAUrV63idm-Nj#p'[NIfZ@!c1h!'Q*E-c,ii#lIj&M"c@&8b!@)4A&a4 8`0(dV5i"@jl%(&ZKTDZ@$EACqjPPVRhRM0AY1mLSpSG&)iT@jFP1k0)dB`C4Y9Z DBYR42)iG$CAQ,SQiTrR',rG$%kUVUdeSeDU3!qcEK!EcUeE*0SIU1aVk"UdE33G P99MhMM-@4eFAi4h"qjTPNl'lbUR1P8eLmEJK-pipre[*`p`C,Z0@+e-*`a4!lEG BUaTlIVH)KaXDq0Imr@T$0b8h*6AMZ6qY,ZdUlFVCl$VkbpR-[1fJ'jUD8P1e2aU C&GNDqT-(rq6"VD&CN@LNkR6TY9MFPU"$X048lpr8YDR,2DdrjUScp@4DHSjSC,2 -X6R%h2qE3hrrHil3NKY[@h,cC5[RQrDU+kqp8MJc SBDkBdE(-mqj0!S'dmH 2&aIlfh+Nj'&'hNb1'MA+Q25Echr+(cPba*MdQmrjI2Bap``m31&FfZcRNhAq8T! !,6UIhfcZPFF8D,cCaP[#h&N%`Z&`+)"I1(`TeSMmfIK5,lkk+SHrUreBRkTEp$& $*&aSmU#BmUc#Jb8p#b3f*PUGj"jbfELZdPG@HcrS9A*6ldC6h6@Z5qXhkGV$Hc, eXSbjjCCSF-qHc8@hh,*Xb-2hcjRir[T(3Tr%eY1Bcf*K%`R*@LchXS*)*,4Na)L L#4-QA,CNa'86)a0#)fi+MCM30QR5040'A$[a3pH1'$0ja+5*(rcCi@I@IH#[[PR laKh,ERMqm+k+[Aqeq@,J04*A+#@G@)5Y1f+#chr$"*V@'20mTmR"YLcIGEZ`06X pcS96G0dNhN6Yrlb6H2ILI4TcG&@ri@kZ"Y*%Zr3dj0Y0BZDN#ELpX%mSX'FEjdA -ecE[q89jTX(IPrX0IP9Z'ra$Z6D!R[c$Bm[Ih(MpYYjVN!#T2aIrYYiVr'hp*Ab Brd9m5H`hpErYrhB!pFrbBIiA-4*[Ne$rU`GY([M(Kf2mT[`I'eJP51Gr8CfYrqA c!r[mU[jr02#IhcEic35r'A'`8KE1kZ$%eI'aMNlFh@#j0-L85i0XQJd'06S%5qJ 0Uqi`)mKqhVk4'mMMr@BH6Y+Bp*[1m[rQi8#05ErT52pA2[YBrqSp#mrP!ITJZHB ATY1Dce!dlA[Y3d1FcE1"20N'fEaYN!!HBV$FM*'p"rJjDa(ZirKXRMYcrMZCq1j IX)kCr1N,&pkN0,jpj*+lQZXM6DXLG5hebp[U9dC@0DbYEedbIrV0&mjN492,ha9 I0(ep@p1kj@d0GF[AVVdVdYVFd"LT@pr5fY45-q2p5m,cQpSLkeZaUSl8V9RCd$, KmKNcjLiTR9k(&TJMdYUf[%eVKYA8Veeq9f3Q$PUEeYDcSQ"4I@YpbiEkP8`@,lL c-9XmZUDTmGeYN3CFe$8XAp[`mIV)qpBhe0h"l4h,``ZDkaX9T%MVQZ8Y1X5`4FX E@ZXMLqI1AMKhiBfX++ZYEfR&9@eN!Zjl-8rGQZ@0UqX[*l$&mpH[@laqeDU'Z[V @"62R,aNbNFp0LjI-c*1bMl&*UC!!CK@idHVA$2IS-PMQplm4E*Xi[,QPIP9p5he MAAeNJf*![P`iYl'Y[Q8j,Rdhe%H@Vd)ZdPVAdY$FaZ)5J,8#ef+4KRA065e58V# JZDeK(H"R-R3,MSCAFDU9)0E+KLB@$DfTAl&qGD3Cemce3XR4lkf[EilFLB2KTMX M3,kaU@AGmV@4qSmeb%3AR5Z[EfN"M&leQ2P0i&`DSLD-MbBV`F'Qe@a3KJE,@eE A95,B%+PIYhiYT%'a(E9J,A&ChVKbHFY+6&4A,meE[EDY$@he9c6IeEB'!l@ZErB JKMLpambND4P596'jiZU*%Nf+I2QUUUZZLLbZDfTVLb`'JQXMQ#a5ep5)b`KF4MH eY'+PM)9JTR@TImSGN6`+LaCfbI(SKD+#rj5pd0aU0J6Z$klb9SHJm62'92%qGEM QhCqk2HC2!hhlJi'c1#-IZPM2`Ji'Jlmm6fBPRiF#CdcCY62QhTbZQpebAr1D2ee aZhqkc&kIqk6ZGlbqI0,c&+#A(2Ijclc[B-I)8eR[@)J4l'+3!2(R2mppPH[#013 bTXqa"qajl))-GPPL,`XBSemKBr3VBSaqa6)0PUUF"[f'-8C&#@2d`alXmjp([a" Mp![,e1!,TdDr#aLMh`M'U"c*'2h+'+2I+%%(h#-kk(F4Br3Ec4Mp,QD-$Q-BSpm PJU)aBiNLhYM"d5LE#'2dH`GMp,Z8-6UpdjlVAdDdNAXABr3EcaMphXdBr5B`4Vr ,K4A'6#3VN!!TYrCl%L2dZi)aqP8`4Vp+DmkV@)eq9c*'a9@-d3pB#MmQ-dDr+6+ &-GG`#[4l$f2dZjBa+UpMM(j6'D2I0*R@Q1Xj,IVG`"MpISFaqP8c4SFSBr5E,UM JL`0%"IeQ-XDlKM(khFJBr@Ba4UICGV8`KqLKhec'U*R('2hHbaMpEQ+-IMF,bVM q)FV),'#-IJXCSprl'+2I)XESYeMBB-`5HiKi#f08e$*'[eXCSGpYM0([r9*Pc!G BKAiIC)aq(f+-bJmc4Vq2-%DrTG,GQ'AXMRl,'D2I#XES9mFB(9Bb4VpkQ4)8i*6 SYjSaqUeKM(F$Br5lR6%kh5&Si2X44!2peM&'[dE'U'eLM(l0M0([Si)D[Yp!e*! !D@@-IQf-d3rZ6ILaJ6(kh5RS'[-aSSYqGc&'aFFCSpr[-NDrMBc4la2#!Q0qMba ![df-d@mcBe4ZX8Z#6c*#[l[YbZ"6c+,I2Bc4EbYMp0[''"hZCBaqpdPABqjR9r6 l0'2dfmiBr4jJM2I[-dDRcpL&a)1F$[hqJ$(kICBaq[dKBr6i)mESpbm%"@2qQ#J JmbmCSprR'+1IX"Ip[X!BrEiSD"QcJfLKhdl'U2J5Br6l%mESYiXaqMdNU"Vc-&& &[pf-dHm4aUMm9ic4le('k2HBS'p-1p&([bmc4VmpM0([+ic4SF2ZLIC+C-aA'D( IRc*'[kma4Vprc4MppYPGdpHPQc(I8)GQrJeMp2XcaZMhjic4ljZ-d3Z,'q((YcJ 9-Yr@0D$j5mESpeH-dHmlM0([Zc)p$Mii2ISGB)b+[fD-IYpMM(liM)E`ipm*5XB m6T63l`R'k(H3!$%U[fmA96L-&AlmHd%63a*0p2X2M0([Kic4la"MG-#TK$$M+Gf `QDI&,E[QEh54DH#MCI)Ik5,,('D-6XqH1LAm12,LLa)rpfdJMZIj2AXNrV(GEVj `*fkfm,`SbcKMMYE)%EajLIY!2&ef2rQb-6,4-E6L4$K(N!#*6["$(BKr`XdRiPH -NBPqbXdGiPGaNm5*AY-0ScQTQd[c1SI#4(mV`lpSIXBB%`PUQ1J0AE8DAQC`STr V,P#2`c%4YJ3b8EFZ6NhXP$`QrU)mTZIEmTMH2I+B2VZ2lEp6(T1`#mKNM6`QGDN maV'h$YQ2dAJl!if(ER(e*iErl4UcN@ql`C215FI*I5he91Seaf(f5,C$p2YZPI0 8af12lRTdiblm0Qc%krb2KEXf2[V3SimqPYVlQR2bC(D#H6pdTcTl(jA@ApMiL3d E(pU!q!XEGfhBj8@IN!"BC[Q%KK,YHR6[8pe[C'GCm*4El6b'YMU#pYR&SEki%Dm 0Rd!"NJJicd0f$*P(jpVi@1VRfB'@r)eEXaI3b%['B$rd)L)b*@D4@9QN`l#H-'h Fm*!!!VKKepk6hGQTE[f41cXP3mKJ1KhK%H5d3*!!&dSS6Q!&d82C3qb"0#IFY6H @(Hb$clV[G33Bl5X)#383JN@X3-Lk,i*@"%`J&E*m!IJ+NZ$U&`9)TbFlh%H1Z2- I3cAK)&*iB4iP%D'bN!$Y`S#NRTfDJh"iT4J(a*K5YI(9VVlXI*pmhRfINqNTSeT H!A--5XJ`Rm9AZ+G$2X5mmKJYPFi#`f2Gr4M[Cqk`a*Eqp#qeamfc"AQfiPl&S2A (lQ*(HD`N"Nd8ABU3!!`S,&(Q#bF&+H*!EK%BB-6)NarU69G#8$!p-@15Ha!R6-+ BK"hklKIF*3ikbQcH[1`0dE*+Sa(()Ej%9Z#e+)XQ@!QMK%*Y45UmU92'a,$BjT[ 6pkC-)%ER+38@K)qrk0lU+*I6,-*B*)&bL`38[E#5!I!Y*A`4&5j3pD3P9!)Y0cj f-M@!IJiqYBE*-`6BHY5p$F`RQ"lCC(iCNp1+j(Q+UcAD#Q#)SP!82-86eJJ[Q(p 8KlG$maf-%B9!6bcTTbd1Gaee&eLaCfZVj3SV-EI5V,0PLFTIQVZ@-XSNCf1HQS1 RR(r5J%qrj(iBiLS'43JJSLRm9Y9A'E6MSGS+cd-+N990F8HUa9CaV9#IG1h`MLR %r2VkY4CXl()rNV+Q`(-k)S5UEPB-P!qqIr(XP0Jh83E,KLq)Qi!3@-4JXZL'INf &Hc'p@Kp4!Fm2HCcME*i,d8V,'8m`a#DTFp"@'PMJN!"p,51,rB*!(T(!bqU"Km5 QPphF[H(`P')RR$1P1$`P&6C-&D2%#HHM)P`m*9bF#ZFa)d8A9)C4)A85mM8P%5l 52!-d-4JNX$3Y5bNc4-C28m%MiLH2Z59G-Y#8SR"a#)P+*e`f4DIK,e3CaY%hSU) T)5GF9-NLY!N4Lr&S1lNi0#@-9h'S1&c"9J""@S3a$m!S#SHG!5Vf*R#A,fKi*,M RQ$YQ,eTA#!cKiXRK8$('BS6*3N3N@$`&,"J"G&#'3X"$5$JaUYmK8'&NJ4q!X!P MEBISES@!HNc`b8I9U)`U!)DVPa+#%%%&mN8&J9L`3#Q'Y1+"J9(2%P)"5"3R`qp N8`mXS!,-b54L`ZC%)!aDQbQH3T+4RPN5Qj!!CQ4Jl((hA9dBK'`32K6&K#d"Q3r -9$`!EkT`4-%9"BAbPYmNj!S,#a+&3`S+8A5&8eJ`LI9XN5Td3lR#FA2bGAHiNaV `UeX55HFRlP#R`kY+G$JRh'+RBiYNQ8kjCehVCFYl6%(-p%NZmBBl2*8F('C,-RA #,8dP"iV+dla(bil"BJliKMYQS'EJKrSAP+EI1Hi'pj*1q5!*!#f#`SD#(N@K9T! !Sh"4VmQ,B96mqS6P1C`mD5jJ5HB9$)(+CZmEEQj(E8mmpSB*p[5R6VV"MYTi($T GQccTjMKp28MQaRS6,LKJBR(d4HrH-fl3kHmjCB,PI@bCkL[r'Cd1&3@PQ1!060f la6RMrJ5Mp#D1+RjI1qi1A3SH3aU%i!9U%NX,!5G&"8V#`XNX`diipS)*&K5(!RG hRA%$(6hB-U0C)0ErYklT2fd#IFiT`K"$ULG&G#c8e"Gm$k$R,*V'+6MGT+aJhZI mc!dNBYK6Ba,2Pk&2AqbN#C3RcVVBF'1-3'qU5aATA83-l+,18a[&jDC-+&B)'D) X5MJjA13*'bb2YEk#KB8%a2!UB!RM4B'PACJk!CM5KK'YdD$F1Hd'8M!UQ8+!AYk "XLhaIP,E%qpBB)X6Fq&ZQ0FqR,!hjZBkK!'LBj[&-A2U0-T!#`!`G%!(e"l'b,# q0dY"XKKi-(bJ,$e8mQ8PpU(MlM$KX#8fT5F%kP+Ve6%8K`YM2FS!A!13!*rNlG9 BhCN1Ei0#bLZ2!"FSRa!QR5(P*AXD5X6CJkEAL9XeBMr)A%qFV+(HFE)HY1a!bf5 F0-%eJU9'%Pd53P&LJ0EJ#QiBdY3dYFF88"HmTk@#mD#X&ZFR6$jD&0,X3AkT#2" B4F3(4`cHrNI`)J"HMR+&Ud5bbbPA'5E-J4kR'hcc"30!*P#3!2,9SjILe%H-VB! SF8d[5RUp)41Qb'GM13E+6C%30(FkZK"*fLCk['RCekX'0rVM[-Q8#Vl"P2lM+Rb "%qi`*ebX8Ner8GKV,LLLY46MU5lA8eY2r%iT@'UlaHkE1*RDjr%MUj+!BS[`JUL P-PM'8U#TPUPT"4baC)rVcpE(08*2MfX5hL`N2[Ve38dJR6SMHmI&AD*6$kGK*FJ A5r@i6(QSTa3eamTPV11%8Z"p*ebce`N2%`N$hm-91(a&YeckBUK!JIKPk%#S"iE !"%*&pSGAS3mhaXVA)LH8Jl#`MpbZ"C`+8Qi2$&j(+Q8kJ'D(95,S4K`Xb#1Z#QF Li336Y6!!J9iXMNfI$jVT5kEb1j,p[9jITpGe8MQB5#ar5PBZ6LU)JPj)6,b2)YU 4kZKML48UU'AF$IClr!cfTcU5!#19mPB&1N@[DlBSVc&#EdS"5jRqP'Fd`%N)MY! cTJ0JaL4Q+&G+'4IHH'm)SU*HJGZ93!VZSJ!ZLVBHq`@4PXU3!$*r',k8!"@H!TE K$8Y88S!NFQL'S!$N"f3#$,a+HFI2AC2U8aF%+*,3Q%!Xd3FekE9dh!)11((kJrj H0bF*9D$SRp&9%43TH3B#bej3&6JIDJZbjD+ID%("XMX,MT9L$6`%U8-jkh8cbq" B6#QH)"hkIf,pj!Qhl$kZF'!SB5bi4jP5@&"3@%4"-D&8Z&"A*Z%L6jY+mQ@9`Sd 5`N)VV#4F3,a)([V"LK3++8(#(,al3)JqSI9TH(M4ad!-ZZ!YUdN3N!!Qi25"06' Rcc9*&3)@p[I!`FI-%,@Hm09LUka46SQ)BSS8d&@,#(5K,0ae@Td!5DM#9K15Q!j MURe"CEqr'!C+iPc"@C9L32'+dZ3G*pcmTF3EX+I#SfQfD,6T*N%CE$iS&,6I)49 4Q)F!9b+J`Q3RR&Z-Ej)+88JILJ8DLS*6-!KH(jGJiU[HX026*`#TP2@6F%bj6VR 9$04"AS53!$"-JAk$"(B&ZXe#-a$$E2(&&V+KTN4E"a`rL8*S#eTBrB"Vmqd(U*& MR8bmPe,THdMb)lXf8iT35NZ`5a&aK'jbi5D@K*S+B[5""96-1$@82+UJLkX)Aa( (CS(+)DBF1pG#RBY1P8$(-A,I'kSDeLMf%hpL3aX#r$YBf%0D@rY95r-09d-FqmJ ,AAG`piqXb#PJK@,BIRhSl9Nh+aEU8j2p,ZLM1Z&0$+lfUYFK%4$A@SfiJ"T"C+% 46[KLdTqV8j%),)V*#D5j`TAPM,lGQ)YGC$*X)"-"0@RpCTLBLXP`H49Bp4ED`3% l3-*UcU3Xq@[lh'#Yp6H`p-+9Z0BSaG@EXDcfE0T5C#48Y-(k6M+S(hLUTj!!6B( D,*!!S-0+NJLQ*dPpiY8p+I"NdbjpdX*j)98"[c)ZAVJ3$%rM(U-X6(FaC44+4Nd '2AV&FHH,Y3eKS4fF(#lYYiZbI03N`VPS4X(-T9,@RX*@-i&YC2TPf@2+!D3X*A5 2P)02!JV@`,'@c)&RlD&$k%r@QRk5`4)-a!M'aG'$&RC*b4#8-V@DXV*TldZX+T) JLB`L@J1@8!-%FE&BH!E-[XZYF'+j1l*qfULTSkD964XPX36i1G0+TNkELL4r+!T *k`3m"+[a+d1VDDA3e*(jE$U0h9"%Yb%[kb96f*Uq5LS65C%r6lY"@UbCK4Ub%l' b%HrSpEIM#Ma&)kl!-3hY&'b9A2fHbm)p!6P(2[5`a[GAU)*B395a52*d-fiP)RM #(Eqd$(!#IX*FTQ!MABDF!Uh9CDSm&`4'#5-!05,F,bY9Ff2jU%L1bQAlUrX%I$" k5dbijbeAe!S)%hJ&NAJ&h&DI%iK$dE+A#B6FYKDG6'rP!,a+#8V&-(JYLAaD+F3 fU&N!qKRAS#D4K,3F'(A#I6Fd3!6!NPm!pQK1S&8G3Q"EQ(2NSiJdBDYTTDVR``U 81N+MDC!!6i0T-@DYE&-pq$-l*M8-1Gk+81pKAR'$IIj'$TeJa2U&'-*Td#+(bbX K2A5!R%C'+*(f8%(B@DaKl*&"[j[$86#QCbZYR3-Y,+XmCfQef"2(IK%(FS"36`% 6K"QL$UUA"$b-c'5&YJ3L`&BUQU@HSk)d@#k0+LY9#G6p*EBb*!rI1!22k%,!U@@ 49HZq42DZ$'L*2&LdC#HGAQ55#XVfFk*Sf5Hbk'X!1+#k)1B!(2&%BH3*Yl#Hb![ aR9&M!&jB!*r#!2L$$k)8q#`N'SIL3"`0Y!P03)*l3&-`$9A#(h3@8D!dBS@8SM2 d&&&LXC+q5p!h0PBri@T''%T,Q4)a5#pKe"KJ,P%$Y5K[5D3Z'V`E"l,"C`$i%1M R[K48B!22*!eD5LX*J5'q*%`V!p,31Y"Ib%$++d(8(dbeULMN9a'&Ae!#`$'TQ%` ,C4f6bL9A8E+K2H0,[JL$CbU2UiKjc)&%pU3FkjJm040LC'dfjb%TV(hf49+kL6c B681r[kX#(r`ecRRE9)4pLkm1DTfF85-%I9mL*9NQ1bNFFm54GND*G`c$0HVN*A4 0`J*T#b0"@H5q,Z9IUD3kHV$!YH*NlB,H!551`H(JYLEHiIThCGBI@*N%p#SMH[8 Q$1Lh5DZ1rTB"qQL""`f'`%,EGBiZ'XJPErGN2DcR%[SJ#I9LHU`L#V8pcUY('$@ CK*MFclXMVK5QK@#BY3&X!YC5m%lL+889i"pP5VT@fDTbG-F@H5B"ebBihmLZ@!P PdMmh9*-P3L$@5I34aeS$6SQYp&4*40%L,GC4QUT[pU5'"*!!-Nm'FNqiPbm9@k- HbDU"rSMSC-9r@PQC%$JB8"'J6i$Z+8Yjfk1q#E8jk)SkhGl5+A![T(dm'E)k+%E "1NNd5R6461'+*VE&@L@lEC+M*dZ60cf#G8RqcNf%`*S8UiDH9BcEj8&kC)m&*4# !qh`r$&mJ2TLq!*%53!3"1QFAqIQqM85Yp36$#ZJS2"DT&"*pf4mQiD9P#kR+4ad Na'+$%bpjTehHdBDBJMiZkc,E*GR%%AL)ST85SF$JENR0H&S8XcC*E)HeQGQ9JQF G28(%-RDmlK-)-Mf41N1e"JSk#6'P$"j*MUPdR@$A8'S1b",Y5GmGTMI3e4[AXKk &b8I,8*%$LbXZl))GmGM2j6EUY,91JUR`3&G)kB@pEi`NqqC+44d"2+*b)4!6SqK IXK%$6jUY)!`ri9jk(a#Q8iBBC,F'4"3XCbh9MYjCe5fN%XK+l*eS#IY-'Hb44aM DJZaQ$CY@)#F#)1j!9`f"f)"9I"(q3GEUrTN"ciI+mH'*l,VHGdcd!L+4hViU,C& bk*&G13iZQVLk"54@EE)bl4PR3j&8Pf"PdLU#ZQ0ee)bR6X9KLlG-%14,J40A#D) (ZRZB9TE9!pNFTL#4336T(CZ)'Bmp%Lr38ZZP'*e&(1G`JcX%eE,d8[kA#i5hI*, G*k8YXlGP5fm[-kS`pMjr[DCE-U@$V!fiEA4'jC)#iTPj9dPM0-8f`l[8pal$#Q! YY)i1JSFVRPr`r3e9)511eNHBa)pj!D6J5eHFN`hZjq%P[$e#pRc$Al)T#YBrHhX ldN*C*1l41iE`TG,1C2F)RP@)BI9S95(M(88LI6p-PR$e'+FXk&T"l*6iCQJ#'dj 'Ya$jSHiP5d5,K,pA8P)QRT0,"990K3JRXZH10IlH+ALHdA21EblA21IX1FDd9(T 58!Bah!YYmraH'IF"ZL1JFk4(N!"&'aLH0[H#0Hd!Dp8mpmX'aGF"88A2RYQClHE $fNIa#k)'RM%mJQ@,0Z89aVNl(M&D&J&)!8&1b!BKX`BjC`lHA+la'N(pPlG,54p YR(H1A,MHChddE*!!l!QX-G59LVGDQSBV`e,X!rfc"E5%#TDT$'2RD&d#L5*Bb'U YPr))-YKG&ZkHk"#X9hV@XhMf@"-R@B2RAQ+6d0#Zip-q3ILH2Xc`*-&EU+NHLfh %NX&ZFm5fbT5CPGViSe1MPdb06Sf1QBjS6$4DaYIdUG2,SY2`'c-Y1RAkQ+PMTUU e+XQ2PU%2DmZL8dG5(r0YHMUD6+@2TQRjK5q`l2FAcSGa6mhl3!&@F2Hq@1(G)3K @BJl2f`([Q*!!IL#p-29pNQ@lZ)+d1U8E$BLdjF,3%qk3!+p(Sl1LXe,4)#)R@MB V'TdY&I,cJQKkZ6-XAiUQDh#G,ipH*m5cVNX$N!$'%GXqf%EIeiK48#I$#j8YLA, M[1B'%c&,*j9*iESZBcbRB2I`DXR2qmH""C2[NmjG)hL'`D,N@HH,6VM"Vj-%N5- #-D,T##bZNV$Ckq*3aELb3#Nb8Vpe3(c,[@D-4QDY8XEJ8"bX0[+iaQUM4fel[GL "Hm#N-SBQU0Fc6REa,"X(5dblFI-0%#G3!f9[$Me2M3YCEkrQ,44`[+5Q`YYU[A@ PJ!AN1afP4!Ce#6fZ#1"192%CPMp,QdMjG5Sl`r*RHla#D@EjDXT9DEeeKJL!31J G!+E[hQ49L)0!J'R0$PRK(DhJ[&2JpAEaZ")6lQH2Pp,hE[l'+Ad4L@[%l(RSi&( #f"0Z`8ZH($M4('DFk""&hiN1XhaJZDpDq8kdD&Ed8Zdk%VCN#+@5l3T810),!Pe $HSl(1NRVP)LmRPX4Hak'SPN3P'&[hZcMH!p$L(Z3!(1hM$D!&aQ4J9*i*KScCH6 !kUGhUC!!!he5hSK1H$lfc9ZHc1EP3PLVVS`d21[,3eB`q+Y@`SILQUDCJ*I`iFk $ajJHR8@1S6rFK0h%@B[VlFLYJ")S+k"blk*AY6L"P@0Nh%EL`0dDl`j5)h2kTC6 b,J(eD"TR%IMmb(RT*$A6qQVpYRI)MQ2Qc1(A@lF,[2)CeLAD3%iSrf'i!($TTD` #bQ1XBj!!Xhjk,*9*Z014@"2`ibVjcpQfL)`e&[jZ,U8(@Yk+dKT'A2AUj4ZY03j H1XT&rA"DENedS*`AfY"5'D3mFj11ZfXb5"JRlX+l`GDc%8mEVDKk+dX+0-JM,T3 aC[EA%QrG09b#'a[b3F53!)B"l(#LHE2'J2h-$29B-0,bMYB!h%LKKiM'GGkLhbU ,U)eGp22#4rdeR39APLSZf0h+2Alk+#ISE*(0!E3#Y`eFU-6K!q3B4Jl)YQ6AQ-M *@NE&!0*Kr6jZri01h(jJ`[XJK(i))18G!2QAYE+d`6'mY`Epqi1(h11Z!3['%Y9 RSf)L9&4KXG2@(#+#6@kq@Lf9@rU-r*J9%6%UXdEkjh#N"6q2%1[QLLd1+9$4Tp) RDJd83RGCr3!&+kYJ[+FffDFZQmU(REDX)l3KVQ[jG30qTk"E,T,Y&dqmlkZJ4dq XeQkqUG$i!!+Ca#9%V0EE!r)E$VmqFh#1Zb2U"cd%[)(J$XFPiUQeBLSF@HI#Jr[ dL-U13Z%[[&*Xk4L4AQ10"9MIkbe*m2&BAcZ"BLhc`+J((cU4bhcp@SaGm-H`i-r CJJVF&!*"P8Apc)pDffja#DqU-a0QL2)3G,D4RA#2IhH2DrCIA$Q-2qi1ZGd#ISQ r@a#!I8S)pDq$ibdPkDd+3"j*0&P[5ek`2a)GBC9'Gh9!Alm5Sk$jekmLP2*0&'E e#JEI"q(hM8LNp)G6)"'SaCH#j%6I@rIBMmCiKNRHCrN0'QrTj4dlqABbqp8BT3- fMi0Irm&X@q)$"Mepq@$Lq)lAlFS1MbAqYS&C1#P9K$&T2B$4Y1BpPaTTGES3dQQ 0"`Yj$j)8TBMMFcG8!Ac#1)l&3FVZjFN"J0J,13JNi[MHX(`$Tqq8,$#m!aCm,#M AS3fhjiB+!Qi+mFNJIK*$2aP%UiQ[SL6MX9IiZ4$[VLlYRpkkGbJqlSEU,EBHqXm kdE"R%EKd%H0C,EYFN3+V%G1[LjPKNl,HDD4+)X"ej0XDf@rSH0qiS6DGGA1j1V) A)B!MeRr+iTYZ"DEL5!`+dUf,1(aY+!(ampG-r%SAVUI`a56jHTMhe4QmlFHK(1X ddQrHVH1V4@mH6(T'Za3Lm2ZC2Ba2#HX8I0mdeEGE*9cNf4l2`MSPl)HRK#MDI8c d1MRp8,I0MfL9meY1k9d92a9QPeJmI#R[H*fSHTZRhY6V@+I!(Q8q@m32KDAN8%, &J'elNRrV&MMb64dVZA,lB+d$'LEPYLcp#D&JV)q#R0jf[h8#%6MZMVc[2"fXQbJ 9d'QelFS+016Q4G`46D-iTclCjPPGmECjZY,mZ6ZXB`ZqiqB,0'%"&R&m!5CC@`k ZZl&JH@hb9AH)`c`J`lPT20kl*H@kVm&ipTCc5`G2QC2Ula&`P4kjXAK2AmHVqP8 $rFk5Y3GRS$)*M+)Ni1HaiZAijY[2-cG4j`eNhh&hp,ih#@#eJ"+I6fF0JkdE"kr 1@p*!5i8SrNX@&N&C9G#HBrmARFA2eZ'rijad3rU2Mc+[P*DqcXd-hNI""4CLCr5 +9YS'Vi,lAXmI5l-JmLPNNQbT-pMH@RX5Y5R*F,"ZVdX55IhbMfNklLirkQXEiE1 E5-m6H2a2VqI`8XG!Pj`TXXDE"R+!3#m1I2SC!qG`"HK%B5Zd2k9M$%G+q`jIMTN 99kT8'ZpC0bhch%a@aiqXa%Ib-J-[K$[ZUQZSUfY)eTQ'9&f`S@jP,c*a[2[UFP' iXX'T-lFlG80@5TYqD@0B*1p%R6R+llMk%kdljRjifiU'V5[UYMF`E0L+B-h@0BL C@i'd*VD[B'l0YM95J8EDE3fUr#Cq-qh-m#YG!q2HFFbGr-$@VA@FFTZmYMCXfeS R+G5J8"-VYQeMX%)+9QaEXmhC@Xabp**UCfX*-%$P9MY(Jl-ef,"e@r,FX"p-VUP lJ(d%(Jc$l[V#J$DKB$4JbMAE9Mb!h"T16D$A5#eKEGJ'"Y3K`JYN!4EEZJD'[If BHp-q3300#Fd$q!QNR!Jp0E''53pmMLL6X`%(*5JVkQ3+!&UdR3h*Kfhb!@CreSC Ml[Y6!Kraf'iC`'&A-,X'JD6*&D)S5HA4LUhEJ3[4iG!2+'I4"&0,ViDNI((D(hA e-AG)Yl$8f6UII"GHb!"Ekc#V)+EFPCIbP5a+cpq!QFN!I4-TUF3A@6+$eVrXhV) 0@J"K%F,)6`B(D!48HFS"456XC0j2@80!dB[8)p-H!'$EZJBq!PlhXVXBmj%cfTK mS3BT*j6`*$[BLY%jJp5U@,%Dd!QG"AHP&SBFq)cjmTIGphAiT,1MiBGCKCNL!6+ D-S+PU"+p%%d5+JZcKE-FB4pf5CN4PllX,R#d0aS)TmP0TUQ5k+hmN!!L"1bJR"% Q#3&*Q6U@VpMk!1EV'[Kbr)GIGQrZSTDaIRZG$1D"KY3fYq[V(IHUGPPHNN5N*Q* `Q"C"%F"Xqejbh+k",pd[l()[9Uj*Ap9)`3F-UGYq-Z'q`dRYHf$EYJG8TcNTS31 K-G$[If9I"`"l*6[4pCKS(hS,hpK5Q#Yk4-aJQKdRjbAR,2VQZYhiUe-[CVYASVZ $4N*4jDd9%`%iKI9@pp2CKK0IFNHVKPJT8@DV+'jpi$[RHqfcC"@C8R0$@+!cf`C kAAl8[BK6i`@'LZjC85ImJf-GG8HRGMqa%brq$Zjq!Vm[)E9l0h*Iq@kf9rP4pq, ZJcX2l$b`q`"k)HE26k6f$c4l%@4!-FSI4VFGb"cB[H2!%hLa`MN`d1`&pq*$1`l Xh-r"%"rBZI2!JGfB8iGerMVEE0+2h6'(-!ekX2MK!`mV'$ZBfrP%CrHrcAClcir GXFl"R83!M35S(GVa#4EYI1,3bGH`"qJmG1JJ2JQFD9cp["[TaT5FMH!p605C!S+ #d"1(1V[2Z-AGRCf((Y(DcS%"jMhRAZEX*L`BH5FMB%$iGf*UXQ!(i$Yik0#rFJk C4jb$*G)"9H3(B"bBCHkclU5$Q)9!+(*X!L#!S++*BN9A121`Xl13!*e!L!1(Zhk 5(@AfB6IFD9(&#!q$D%Jj1bm&2cdkleELFPbLTYd1l-!hZ3B(H8rh@@%JUf9kiVZ $a#40Q!8S"&3U52k("Ea"F'pmaTd#LJT6`*!!h3q$S@K#CKmJ(KJ4J"#&ahFq6YS ,fG"P%)qC6lYA(b+@(*(c%N9K+Q&@"-!5GLF1'&GU"V'BrK5@5SF)'rLH1[!Z!#, 5)F3!Qc#eNS+%PKLr34bU$lQ9A34#'8BHNC3L()49*3J9"*b[*cT2(Xm1-1d(EMR k%`3C'LQ482B@&51X9[31(ZSkH5cEr*SRhI%3*%YDRBqL3'P9IJX#6aabZPiD-#p 2Z11JJZ)#T,-U""2X[Z2J`60BXQ@G`rIFdC604k",9&+)`11`$BmFkR5kZpb6cfG lMIdHV%r#,HSqHpJjkjcYGVUGTl,eS@qjjZ6hh`lb[hlJCDVX2e(arU1Fr40DH,a rXq6pX9$j2dTX1rKAMA-2Grh4aIM[,@C-F*mCXA$Zc#AiiYXHq31i!H2-['A4BT- A+-0UYG(N"'kIIFZIilrQ"Vk`%(p5#['Mr*Y91%,Bee$AHLhb6b+HM2J`B[`YVX! arAYFJ9-0G@YChimBpF'm'I0Vm"qjJX2e$h8&aqSIkJT1A()crMYA)(M0iVNIZ0% %JqLb!2q600K5-hF*qrhHbVUf&BM[alq%m[mHDZ"(mQqLm(pU1,R"IiN*2#LjC`e 1H`)[5Hk)QB'qr2G5*[#F`Aq##[kZj-k5%CIJ(pcU2iq+Q+$1mDaCMLpcihK"kQk 0Q#&rE'Ip%(*(G9EfcKZ[rCJVeGj(A$IAK15[L3DHNpaYNRYHF[bcaCK*HXYr6Jc mL,RmPHQC#Mk3!*kTN!"rjY&-N!$rU"2#IkE"JqmH)iF,#6CahBJCmlAF`bmemap ))IFkFKrllPq`4eJiSVRKJSI0r9%QKhp%k18ZH#'G'i@r`iGR-h-AiErFb)2r86P DP8EU4[-[-!-EXa'j%BU0`F(FaCr8rk)Mh,*r&PPb&qNBNRZhj4EqK2)P8faZ1h, [XlR23U(N(qJ8,lQck5Emi@CU8R%GrpSYrZa@5p1GK8hi2f+5#@@Um'I''PD@q+@ 5,T*8#rmVEU'Nm$qm'R2Ri,pYjFjUD'dVRX&'p5dFX!6rL3ar%+bP[V9TI8YGI5i &,jGU0f6kLUEe!p(r"`!!9U%!!!: \ No newline at end of file diff --git a/README.md b/README.md index 95d2988..1371cef 100755 --- a/README.md +++ b/README.md @@ -61,27 +61,23 @@ That's it for now. Maybe more features will be implemented in a later version. 1. Download the Macstodon source code from GitHub, and place it whereever you like on your hard disk. 2. Download MacPython 1.5.2 from here: 3. Decompress the MacPython archive and run the isntaller. Make sure you install the **CFM-68K** version of MacPython if prompted. -4. Run the **EditPythonPrefs** application that comes with MacPython. Add the followiung line to the System-Wide preferences. Then save your changes and exit. +4. Run the **EditPythonPrefs** application that comes with MacPython. Add the followiung lines to the System-Wide preferences. Then save your changes and exit. ``` $(PYTHON):Extensions:Imaging:PIL + $(PYTHON):Mac:Tools:IDE ``` 5. Decompress the `Macstodon.rsrc.sit.hqx` file until you have `Macstodon.rsrc`. Keep this in the same directory as `Macstodon.py`. -6. Edit line 24 of the `Macstodon.py` file, which looks like this: - ``` - # macfreeze: path SheepShaver:Python 1.5.2c1:Mac:Tools:IDE - ``` - Change the *SheepShaver:Python 1.5.2c1:Mac:Tools:IDE* path to point to the **Mac:Tools:IDE** folder of the location where you installed MacPython. -7. Edit line 81 of the `macgen_bin.py` file, which comes with MacPython and is located in the **Mac:Tools:macfreeze** directory. Comment out this line, it should look like this after your change: +6. Edit line 81 of the `macgen_bin.py` file, which comes with MacPython and is located in the **Mac:Tools:macfreeze** directory. Comment out this line, it should look like this after your change: ``` #fss.SetCreatorType('Pyta', APPL) ``` (This fixes a bug in MacPython 1.5.2, where the build system is overriding the creator type of the application defined in the RSRC with its' own. You can still build Macstodon without this fix, but it won't have its' lovely icon!) -8. Double-click the `Macstodon.py` file to launch the `Python IDE` application. When the source code window appears, press `Run All`. This will launch Macstodon within the Python IDE, which will create a bunch of `.pyc` files in the source directory. -9. Force quit the Python IDE, because Macstodon corrupts its' state and won't let you quit normally... -10. Drag and drop the `Macstodon.py` file onto the `BuildApplication` app that comes with MacPython. -11. When prompted, select the `Build 68K Application` radio button. -12. Select where you want to save the app to. -13. Wait about 10 minutes or so for the build to finish. When it's done, you should have your own self-compiled copy of Macstodon! +7. Double-click the `Macstodon.py` file to launch the `Python IDE` application. When the source code window appears, press `Run All`. This will launch Macstodon within the Python IDE, which will create a bunch of `.pyc` files in the source directory. +8. Force quit the Python IDE, because Macstodon corrupts its' state and won't let you quit normally... +9. Drag and drop the `Macstodon.py` file onto the `BuildApplication` app that comes with MacPython. +10. When prompted, select the `Build 68K Application` radio button. +11. Select where you want to save the app to. +12. Wait about 10 minutes or so for the build to finish. When it's done, you should have your own self-compiled copy of Macstodon! ## Known Issues * SSL is not supported at all, because neither the Classic Mac OS nor the ancient version of MacPython used to build Macstodon know anything about it.