Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!dogie.macc.wisc.edu!indri!polyslo!usc!nunki.usc.edu!sawant From: sawant@nunki.usc.edu (Abhay Sawant) Newsgroups: comp.lang.pascal Subject: A great TSR.TPU for writing hotkey programs. Message-ID: <3743@nunki.usc.edu> Date: 4 May 89 06:50:24 GMT Reply-To: sawant@nunki.usc.edu () Organization: University of Southern California, Los Angeles, CA Lines: 327 I picked this off the USC bulletin board system. I think it's one of the best safety blankets to write TSR hotkey programs with in turbo pascal. Here is the deal: 1. You write a procedure which you want to pop up when a given hotkey is pressed. This procedure can do *anything* : disk io, etc. You only need the {$F-} directive before it, switch off after it. 2. You 'hook' this procedure to a hotkey by giving a scan code to a procedure from this tpu. 3. That is it! You're in business. 4. Best of all, it's lean and mean. I first yawned when i saw it, thinking it'll generate an 80k exe for a 'Hello World' program. It doesn't! The Hello World program i wrote came to just about 5k of exe. The chaps operating the USC bulletin board do some kind of screening: so there is a smaller chance that this'll be malicious as compared with the next thing you see floating around. A read.me in the packet gives a pointer to the author: hats off to him, whoever he be. uudecode the below to get a .arc file. Warning: this .arc file was created on a PC and i got a core dump when trying to unarc it on unix. I think it'll work right if you work on the PC. ----xxxxCutHerexxxx---- begin 640 tsrtpu.arc M&@A44U(N5%!5 "4E)24EK 0 $<00*[C\Y & ,5*!4@0&@( !E ) &!5@ M68!O = %H"4 EP ' 0I2 IQ "."?QP?, B(R0,=4Q26 ?@2(!\!L$$0)01 M #B.'Q!"JC" RA0I6H F$:OX B3Z9H$0* RS"C0Z10T4($ (P5!4S),H5* MD29:C "(4Z#@ I]2IB0YXH1*%BA%I' ((%2!@)H&"1BD$$#L 0!EJ?0%P( N MQP.2..D:A F3(D2@2'DR9(I! $(I 1!K%LD3GT.".!GRA$@1RP#T"B4QN!J M VC5LD5=5NA4@6"Y2DS8& M"?#:A08PP%$#52123@S :'+9/UX0D @[70BC%Q131"&%%5=X8$"=Y0S"3@6X M%.0(-H#X$0$ =1A@C!'_!+ . 9O^ \ B1D"0B!'K@%(0%(WXL8X%5^AI$*G] MG&H!J>N<"D&EHM)1 R ^&%2'"ZI:14XNSTT#S@ZEUO&!,=85!&U!5=I0T#_6 M H".M-$","T ?S9Q0$??.&%%EEL@<4SC.+REZP%.7K IOIX:T0^7_AS+YY0 M*'(O#,>ZJ6P!;BZ"SP$F+%+ J?WPZV\^ .'P88<2I.1!PAI:-U&&6V\(4<>(;3['KP . K"INW MT"H[L")>*3N8DO!+01Y<<3D #ES!+^*@7X9+1HAO>DZ^1IRSZ4WK#* O. X; M 0[ BT#C[SD13SR ,!6;H$@%_LY.#A &(S)%.)6",T =T&P:#@&MA@/KYIDC M7H?EF&M>4.>?7Q:Z018!(+D?YP!2!R*P6 %];%>ECX4D0+ B#)20('XM@"( M4E"Q4&![;;;W*\C,S+$Z +3N=<$#&/'PH8A.%"1VPJN=O\R1NZ$HCW<',P$B M.I"\Y3VC>P81US+L]"UO10M_6@9'$& $&$ #/$ HEGJ (D4B4<(,-#+##!3 M0^HL@8>IV1$1:EB0, "1.F8 HIO6 ,2"O $SS@& C6@( .K@:(@&V<-F7/BF M%KXP1CA\3H>,0,0 ? @(4"A(B%H8I4!LD7*&V"(R1K5%.4T"B&7QQA:K,H[- ME%$=F(&"A-ZQQ2C=XXT X(<Q7_58P8 H ( &61H 5@:BV= &4+P070::ZHN:?FOIHKMNP$ 64Q M ;087")P3@&'QGL9?"HP18 = &00C* /@$F/QP& %\ SA*RO*D#(HR<,B#2 MN %!Y,T7(F7:O.D 14J1*5-*N\D#8DT9WG3>@!CSQAW5=2 MR#-:NILP;OV@$ M\'"%)0 '5\0 #!2:F) 9YJL@0""=] '0'[[]3?!?P$.6."! &A"R((9-HA@ M$0-,A@ P=-RCR14A H"($?] R)\B+$(A(('(<)B@C1X^J!]_O\1 X8P7(K@A M@P[F!P!_C?CRCS\67('+/P 0V(Z-'N!8Y([]\:.%!G*6Y))- MEEA@H2R9F+ M_:D%H)@8WF@F (FPT\4R!*SWA@143"&%G:G- 8(<=;CAQGD>4)$''*@%P08= M+1 !0G @G%$&':D9)UQK7Y 1VQN:2(2@1)-IDLI@[OWR1 _E+ D4X2$*4F MVCB("Q8 ,*+,*!(E8H$ !AC@*L@H/D+%:A62."8;G9X982_G%$LFPB6J6RT M<\4IH";S? 8 )!"T5\ZU\W'VCQ<$Q-F%,*Y",4444EAQA0<&>#L(.Q7@DD4 MCF #B!\)U6& ,2P&L X! $.YB!$0)&+$.J!($&4C?JS3I"8+-0' P?TH;,'! MZR@,P;Y0TE$#(#Y,"$ =+H#B*@SDY!+1-.#L@' ='_BJ@42^3AC /S;PRK-$ MZ.3Q3\XX&W!S .8>\,$77FB1Q198/.,M+@=D&"X \QX L#Z]&I'/%_YX/2., M^;"<"Z\P%\#K(O@<8,(B!2CFXTV.&R[M\+[#.)'/RH,4S;4,]Q"M5[\" !KBM(QM(*+ 8P,<$I*HN-M!5B! ;2)3&=FT@O2[((R>%4%#RR"'3!B@ M$,0 4 MPPX(X$ P"T M0( ,_H$.!!A $<0@P1]$X2-1=&\&P!#%!@ @"AG0=08 ((H;H8+( ! HK]@ M P D>$L=%( .^R!L+OY!5D8( ! H"+E."S'R"& 9 @@%%4AA$&6 $ CC%; 8PA (QP@!+H MHPN_.D(8)@"$"0X! '],M7$\(( U A +@!@ '10X98D2P( #E ' M!KS- F, "PHX XAP.( [J"%!&8! G3D0*A.1<<,"K!$]*J7O>A @79C 0 % M2*,.") %!J[:H%@$0!'R4 0U_*&,ZP+"'QBP@P!H$8!1> !.%GB!BAS0 41> M) !P'459=#4" S# \6PP&A;^]H0Q-8 E1D%;7$[W&5 P0/VPI>^?' SRA7 M5WC !Z)&,KR>[#-HE@B/FV&!QEV7SNN@!RR\@ X,# 60T#'! : C@0,H!DC M6 0W;+"((Q '?CP!SJN\ ]0M+5[\[S8HA5Q!0780!%W0,"GGV" 3[^! #J( MQAU.H(-ZW&$$-,;#!_SA##QLP!_)T($#A'R'"?BC&3IP 0P <(<%Z&K)#F@R M.GHP &5$!!?\580/NK<(!Y1E$190-@B [;*@(P0#6 8Z+# :)]UVA=3AB*R M/<4,$& 9]CM .UG "B@(Q\"P(*TNZ<(:W/NE>S6@3OJ( 9 ,=] BWHC]] MA5*#F@ T%H %RB*'"^B W7>( *T%8(.SR"$!.K !"8A-:%\(P)-3C(4 %"$, M%1B@+/X AKA+L7)CN/PL,5_&PA7A:%3 @PX$(,$#& (Y78/#F;%]-HV[6@2 M'" 6!) &.(P.@$?1U,:0*[QF!Z(, 8G&-JDI? !@P!B<8VJ2E\ +*NX4I$8!&V1$4H,&IB M(5$7# LU)&K"8:&'&< ^*", H,HB=L3\&#"QJ H!)4I(UD%@@E@?!C.V&3,@ M P !^BX_,L5 /!'1H\)A !P8/ G2().&Q@&N@8X=& MSA,>(.0\VZ&-SC(3B (,08<)P YO=H MFK>.UX)M='#!0H#N$ !8(- )^LNW M#X EXM2M(_66#B@3B@* E9,)G1H 0\2]6Q<)D(\VZ2A"JW:= G1. )@X%J"! M@B%#0AK : (A2X<*NFP$L(B;8G\(D&S",@7Q<1E:OO3,P6:=!9 +H&M^1-R] M=0/0<0* ;AL_C+O!X & (]@H"04 'RRBS2+W1#0!.PP PXSHC$ "77H*9B 5C*F*, M/28H8: ] PBS"#)*$@J+ ^ZL$VHQ0@0+@!*P/&"L(L$4^\$P.]Q#QQCK7>&! M 8L\LX(S%W80J@5V^24VBAQ#JZT'#C!,-. L@H^9O0(PB# &X ( +IXE$6,= M M "BP$?. (,/PK@90$KBF###BH!U+&//@M'M<\BPZRRCSCLK#/D.:RL(@X_ M!WSPQ8S#6'%%%08T \$!77SA1:( Z))% (YHPX@!- BP"#$%3 ! + 1,@PXC MTN0Z"@X"C,*# ":$I, N0=B+$Z&WG5<;L;B: C@@0,?Z)). /:6T+[KKCI,GQ-"2/4R0$>%",!8&GWO<'XEN@."X"V)Z^Y+B\?G[ZF>-2^_SC M?XY+';:'XH0 &.2QVVA^*$ +#$ 10"?%KE,!T)$ $(J) '0L .RRE1 # MPX'H= " I0/=$X9.'KZ0N"MA #+7"@ZH 8'0/H< 8LF[>L%ADT!T $$L! M.@$ UA&00/ (PH*#S "+(F+#H#Q%=Q(+E%@$I*%#-Z IB0=(>>B0(X# M 470:!EH%F*8E#INZ*1I4P9$&3ERWL@! 0!$&#I\7310 &#?(&(&L 0Z]P% MH&.6 #BEV/.@%___EVA187M(G: G%@(@&5+%BU>OG3Y<. 9+F0 LFQ9=P#7 M/P SDLW8IBM+ $?:%D5;,(W.@14>: @8M Z"(P/*30#R40# ,#I,/+< 0#IU MZW4*F/CGP0" 40X3.0B9R,- 8AZ0"& $;,'U"3. C9(_2HF 46L(@(L, C@ MA0%3+/-<=--5-TP="YA@C '5=?>/"^8U) M3+ 52H#'&! @ "CBPXAU!+#, MAP*D<\8_B]!C@R-$"&#"#E4(\,==VJC#&%D!DJ "8H4 M0%2>>Y)I9J ,L'D' HH,10ZA3QBP0#)_#)#+20/$LT(PB+IFF@0HP@"=F%8@@STK1",'!KB!,LOR^6F;Z_[Q)J8EC(N,#LPHJ@@S"B3S$IT$UR& #L0H MRVR@!L 2@"HV*'($ :HH Y3$9Z8):)N#+C*SL_ X[(0J0&8(2 BF@8P#0@OT2 MD:/[O4\!NX -#!!0"\Q 3':.#O.)5 J"C,748 #IB :'1( MD>[$4 SU),) K$K"#I@B;NBH $R*( S6&<7%.@.$P5 P0,, QWQ^,P@# M$'6 0""OD4-TE N!A')2]YQ &NCP*,:((%$M$%#.12 S'D P.D$L/.(Q3 M,Y!&;A;120$(@2TM$-X@M & .1 @/\E\9DA:$0EA)<+X3&3%C]@ MRQR(M9L=8 ,P@"@G #1 AP'01!Z+F,8*H)&+S'C3F6Q99@=H 02V#",_/KR= M HM1!08LL F7.FIL08$B8H[H@CNTS 4(R# '8@ "U\ M$%!@< J* O!?'3)@(A1AP OEN<("NY#2*BC !,3H P/^80XJHL$Z.] &'<2C MB #@8QA1\( 5'.$%UNE#?5P]XS^Z0 $UUK.-4+OK(KBZ0*^"5:Q>^$ 6TEJ' M9JEPCK6LHI( &FPC@D0$8 A MI)4. 8"K7.EJ5\OJE:]^96. AO:PHX6L8J5[!LKR\O+FL-P4(,)"/Y1APN@ M8PC_X $]&S $'C2@#O1 QZ*K@!0!'6S8*U$S60<*'JIQCH8@%.X M.&L;UU$/Y"X.'4)@+A\;@(XQ_ ,6/O'"/] 1"?'^<*1;U*QY3]19]>X5 ^U] MKYYPD=KYUOR @-R@X_ZP+AT< M(%TZ*& (03 "(@BP QC781TKB T@T 2$#!APL8+"@ 2.'$'T:*( B MY\T9.6':@* R10J1,FW>[) HL%I"*1%00T,B*/B"@2'DRI B1*E**@"#RYLO'D#M %&TQ5**5(%)DMD0" M0D=+-&'D\&3)9*79*73DI'%S9NW*)&Y!)'%#I\R9,FI)*A!2Y$@2)S*OR.W+ MQ(H36=[4 9&V#(BY4ZM>?7,B!<_$B\L\5EIDRA3*;O* 6%-&-9TW(,:\X3NW M3AD7N%UTMAL52I$@5$!4<4(E2=LEK2FB/$G&[A"R.GJ D%(F#!GD>>PJ3L/8 M\7//@E=N[_NX"%_ (/)(E@/"3<8R9G?+I&Z],0HFX'&"&%^&C>,32*3! @@G M#(C?9_KQY]]C3%1GQUQG9&852)SE5X031&2U!U43AC343T%U-5AAAX$ 201[ M@-!$&)C)1H9E;YBADT<40B031U),D<89;I0EW0F;G6#77G/0$08;;)1!!D5O MC.$C"$!PN%E6D!!U1!IV6-:&:G8<:=L<(+P6)AJ6=2E7&&(D"28=:-%AHWY( MO$''%&.$X<80;[SX) D%:0A"$&S0T0(1$)EXP!Z5@?"B&7,I>5F/;%J&(PAU MN,'=FZ!QU]]_.&YV&9AR5&HI7;N9Z, >NADII2>QMX8;;]QQ&1U@8A:I'&4, M)5YH"YY 11YP6 :HH(2*^9>;3?D0:B>07.%*I%75DI('K&*J2 MV5X98RR7EFK) A8J'+2^::(+B+I!!@AEN#NF97!4=%%&(-R!1AI)@I!D& _2 M-:^ZD+"[JHN68=8&A7*H-@=L6X* AIRKM1:;G02S>VD=<+@PU(5$N&"B!GMT M2N%0&@ :"5134E1052Y$3T, )24=%P 1Q"1J9M7B3D !(V7 &P $$K"C%D#8H@+$$C>L*'#4F,0$%3JR!'S!@24,'/& MA&$#@H9)$%7;/GSJ E/A[-T2-(D8U) M0P7Q5 @()B"*6'PBV>(0$+2=K):MF\I=$ I5"Q].W&7PXLB3JU98$H00FF7, M@"#2=PQ-.'32O'$#PH7W[^##BQ\O/GD,A3*.3H%39DP:,VG&S &Q'>F;.R#H M5*TR1VX2G.0%2)YY"LUP%%]FK!78&')-T5YV]0DHX81'(2>#0EZQ-I0;][%1 M!AEGE-%&8'3,1^&) R(W@T(U' 6%5&.@@5488GCH7C64BBB@FMZ("-AQE M1!UT2"57$6[(Z :#(PJV(X\G)D>#0C<!:4/$H9 MVIF?I8GFFFJVF5ESSDF11!%&3%?$%$/("04523SA1&H=?1322&-LEY=;\]&! MAER% C9772#8$09--'HXGQOM]37'I#_I!T(;8:PA5QA0246555AIQ0:&7Z'P MAJ)KW=&E7&MP> =W6$$%!2F (=AB"GVJ8AF_21'7W^16&$2( #FUQF8VC46 M"&Z!,$<=,G9%35)0ALC$6'APJU8=:^2GK[+'>2LE%'7_E516J"^$E**;KST667 MJER1^NL;#))AY++<:=5??C(RI< <]M:5*$UQL0#"L6'859_&UI8AUWL@U'NO MHFX1Q;(+I5?1%% 4,4021B0QQ!2XZ8;$$U= 15L54\B6!!6I"1'=P2#<(=<< M>^[!)Y_,'M)QPGPAXL3RB/FMU1:';!SV$]F)U703T0H$:FU> M+H-0UEEIZ>T67.G:A5>W?/D%F&"$56NR7#[C6[,;)^!TQL-S]&>S' J1\1?H M.&U%,QD_U7I?A2(DA=,29>1!V(AT);HH"*+^5&@;8CP.(7=WH!$?&B!H]2[$ ML!9,K!QYM'"LY23Z"FQB;41\^*1T$'Y<14["L'4A[S7KYD) M#B>+.M:C[&(K\2G@(D&H4/SD A\YD&5NX6#G9&@7?OGK6R"8H-I$0((F$ 8% M(S(8]7HU/#BDP4.H^Z%%5'>L,61'7]Z;P_K,T*F4I0]?ZX+#I\)@KC;4H7O_ MLI3OZ#*7$89!4E^L5!G&-RPM_@0%(:&!PFKBAOG8H 8UF(%.XI.X0%%MBPJ# M'$%5QSO*+'G+HP]W0.6&/!!R#GD@FXA0F#$_ O)+Z"IDL5) ,@I*@3H&PQ]6 M0-C'OHG-+HOK"@QR8 -"5A)B*%#D&GHE!B*]\%ZR&N''Q%"IGW!+,-Y#('MH MTB21Z=*")&=_H%SW( MY9^8C*,]G71 A"_!VF\( 3H$5TB3IK8E5J^"^WC,%A MCE);1^5@E[1X)'/%R%1\*XD]N15S"-5?\[0S4AMY6$[?!1]S&"& M_N"D80]C9GO"($4W_JN%*KN(;P<5-KJ4B(9500&F]'66O=DE>7F J4,V,M-[ M39"*1E@!83Q5)#EPISYF@#+',@8I1+=@T55I=&(7U3T'2L=52QIDA\-PA@+G M3"Z6-=CYV/D[!"K00X(F)!'4:[[V#F]?F?X=5A;69:#^SF)I$.1\F-7-&\^P M6AR^B!B@(QUG62?8N?&RPO9%KBP[T2EILZI#DW)B52C, [8@X:C#9IY-.CXC M9(,_!3:W+ Y4QQ-E^KK7N?]YU"Z2)0JR?X?!8X7Z+@^ZL3'+X$OT9J30L\VK M]W;-R'>612K-DU%BS&A.P%G94X:5PA08*8*X]G4^SR/#@1\LKFMEV(T(/@SW MFO6&OK#NG&1;\KCZPP;I:!%A?-P.C]]#2*&XYW)FU797W\A6=I\\YZ'V(9L" M,I"",)T@4 #!!I;@ 0!8_>I8S[K6MW[UIQ=DZE7GNMC'WG6!0!WL9$\[U[UN M$*JK_>U89SO:X0YWN;N=[F^W^P/H;G<#;)WMMORMU.^.][3;/>R%)_OA$V]X MLW^=\(Q?N^/;COC(_WWR<[?\Y9O>]KW7'?-+\+O6 <]V0LJ4IK3U%,.AM4\R MD.%Z^-7L[X8L,AUNE'F%(C"BTK?6!-.;INOV%**"OG!?U5#LQ MMX0C-.H5KOK2-5QM6>%CHWXJ>[D $"?!XSVU\RI3P%PP 1C5UV$#2 <%2!<' M6 :9(T#'Y&47XR$58@3H0RJ/Y4_2 6<\A63[ES''X\Q,/J%!AE@<_QBQC14C'DB!R<"QZ-6_> M8BT@:$!]42%7,!8 Y$QUPU\1BJY9P8! MLU/5T@13T )$\ 108U\95 ?8,5N*866YIR^"<6/N$U.S\6\^\D<7-WN^=TZ$)&$_P5#W)!40I40TQ6B_TXC[8QAM,(DXXX6M,R_W866= M@W&\)64=)HF+]CO,:#W( G3:HW+"XD)JHQ_8PCR^YG^O CRY\TPYXR$41P8& MAQ%2<$/VE&+ZR#$@$(M!1XL>H8]2U8[45"/69&?>PUMG@TX=)E\@< 4P0W#< M$7-QT4U[5%<$QQ5J\SRL!H_(Z(YX="GW04C#%WU-YDS3TB4OARD,4CJ<\H]/ M@"ESX7IC<6-;X5YMT&O440<]4=+?X/(Q1.!4D$C*#5*'#C92C^<4%\$2 M%P?D!G9@E=O13?'"!JPU!ZZE $/P!$T !4G !++!+UVR!C*#0-.B-I#XGC,4 M&/-I&&[03:@%*4.7PI@C>V8C>'3$ 92$5) )T4PHDXP!+*1-4/ M)W[2$$1@FSH *+]#!K9YF&IC. Y5FA81 M*!L'+51@I'*A W>14TFT!330!3N0&E80!%* I+:TI-R1$5"JI(S4I.RQ Q:Q M!R'%9DOA90XC%R=@."?0!UQJ.^@&#V@14"H$>1 79MH2:!H=:GIF7R87,0 # MBH0"\D('+6 $,9 "[!4:=I==/"HA#1$; IF M_Y1Q7AJ!,!=TQZ:9AI2&I"(""P,71D(8]2@]AJ2.V(--5%D15U"=D*F2SQ5* MW&E+J;ID*%0B!&<&,C,6"M$?DQ(C\R&6P:0V:,9_7-<.9 MK%HL(4"KFS8V^A48_VBJ8^JDJ/HQ\WF%"P>DBD,DN-5%-E8\ 0.,U"(=S!(C M*/67"N$A&P1._R2FT+(L9S,?RF,30M<>[]4D#KM@-#5!).L&9"H7B=%4"N%! MW"$">*%!9T"E79" F<%V@)=YFI=UBW>THP=ZE:>T5I>T3EMVG&>T40NU40L M5ENUH"=Z2 MZ Q!WDP<"3DBU3INU9U>,NW MW1YNXF7NX5ZNYFN>YE@>ZD0>YG^>V7 NVG->WDV=0=&J ;$@8]M9= M&V,HID:M@QJ5^+>&CL*>_X>/>4 X&'@6&M@E6.F!N:M_;"B"8U."<'""()"" M*X@"2W@D,"B#;Q05-:@0-Z@J7?$5/.B#%<$L0-@W9S"$1'1^1R@4=85RX]:$ M3Y@?4?@A"B$"5*B:#IN%19&\"P4IW'B0GH-&8YA!,T2-(I*&^5N&Z:HR MD8@=,52)$76) M)**)/J0"+@P"3O $5% $8;J0_0(QT&DMDDA?9A-%?A%1',(600F,['$'&WD6 MP3,?*) &+E!=J-4">B S0= "6K"?3BE7Y&1.21QFL&*5UJ(\+&87?.87VZ&? M4>0&>G28PU,\;Q%O9IFSOY.HOMLKN=*[27RPDHJ9TS<&A % '^4[HZ)^X,>> MM(=;M\A@$JD?"E%.MS879I0&:(22%3S(,WA0]Q@\'7>*-(5D[B1@W@=[U*8H M<*Q]W(<2GTS)XK=-Y7<6Z"L7Z?=Z$=M^TM80>TQDUS.DH?H[VZ%MA:Q#U5*Y M(W'(;?E'2'F34/0OSG>9;*"04I" __&^(<6C=N&C2N%+0IH:M5Q[_J',S'RE M1,H:\R%=?-0?9;"L=05A+&F"W'-/:^$^X6LW $'9$:4@ 7.11. M.WLL;H&)ZRL7QD5PNS./ 0&:]"4D,($="$7DU&&71)7)T8S:Z HAN&8]&B1$.0]!#075.%, M1OR3$07,2H8WQL4=S/(Z,(S37*$$.]W3/[U!=>EI@<\^H_BRP:R56K2/$ T4Y'/81 IQ!'60+ &#*?,13)5383@Q??W#A?UL&839C,?_=&\-^N<0NE%L&0C.5HB\)TK M@I2S)(=JWSD2?P0F)2X75[ U4U,%OA$N>9&]6:%PP(")! #+0(#)V%4-+5 ?*1A+BXHEEL&F+@M"\Q3 MK\EC^RZV MGI=WDNON"*_5#A^Z$B_R%G_OE)?Q%'_Q)^_O&A^Y ^_Q?.NW05(11H#C53"B ML>$$U'VB$DW1W?W-S_=&,($09 $35"B@/+B[UM.5C:O4FIN,Z1:O--( MA?T_@5"-]R=,9SCZ\(=.DKD)<@R7T7[U?7.[ULH,@'I-S%# MQ(]/@5DA"!>8O70? SR8$[2MZ"/\(*T\-F+H^Z*8$34M>(G4-#.9OE+K;VX7 M*Y4ZVV%C9=Q!NB;(I4/5?6WDWQP__U)T^V\8.T/ZXR!!LX27'D5$*D-VIK5@ M%3S0Y$K'#$$?86*!8!LRL)_&'M.S,LHIAP6,M@"?O =\H .Z;;?UN;P7'[H+ ME%%T] 5>-(06P );H M\@3 P!LK &2@#&T)"POY9D\+8CNN& 9?'E=Z]VA+H2G2,B@NC.#;] + CPP*/#$X!=<>760 M#E:\M76Z]E;!6X,Q;W7]++@ 2$REWK)-WC,83"BF [0 #^&@[#T#[