home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #3 / NN_1993_3.iso / spool / comp / lang / c / 20216 < prev    next >
Encoding:
Text File  |  1993-01-27  |  15.3 KB  |  274 lines

  1. Newsgroups: comp.lang.c
  2. Path: sparky!uunet!inmos!fulcrum!bham!bhamcs!mother!jwh
  3. From: jwh@cs.bham.ac.uk (James Hawtin)
  4. Subject: Directory lister for UNIX (source)
  5. Message-ID: <C1HKn6.BxL@cs.bham.ac.uk>
  6. Sender: news@cs.bham.ac.uk
  7. Nntp-Posting-Host: mother
  8. Reply-To: jwh@cs.bham.ac.uk
  9. Organization: School of Computer Science, The University of Birmingham, UK
  10. Date: Wed, 27 Jan 1993 00:13:54 GMT
  11. Lines: 261
  12.  
  13. Ok OK.... I am sorry to all the people who asked me to send
  14. this to them. The code was built into my window manager
  15. project from last year and so I had to dig it out and write
  16. a command line interface to it. So I had to get round to it.
  17.  
  18. So why is this so good? Well, when pattern matching I have
  19. done a couple of "Clever" things. The normal ls command when
  20. it see a * recursively calls itself. Hmm so ** has a lot
  21. of combinations however ** is the same as * so we are wasting a
  22. lot of time. Also *? is hard to find but ?* is not, so what I do is
  23. reprocess the expresion to be matched..... so something complex like
  24. *?*?w*?*.c* becomes ??*w?*.c* which is a lot easier to find and we can
  25. use an interative system, rather than a recursive one so it is a lot 
  26. faster :-)
  27.  
  28.  
  29.     Have Fun Boys & Girls
  30.  
  31.                 James
  32.  
  33.  
  34. PS: If you found it useful please mail me, flames please send to /dev/null
  35.  
  36. begin 600 jim.tar.Z
  37. M'YV0:M*T>0&@H,&#"!,J7,BPH<.'$!&"F'@#!@P0 ";.F '#!L:)$VG,^ BR
  38. MY,2+(&ILC#&#QHT8,$:&M 'C1L:(.'/JW,FSI\^?0(,*'4JTJ-&' 0<F=3'F
  39. MJ-.C(&E>S AB8T>2(4=2+2FCAHT;'E.N;&FCQ@T:(+V>O?FTK=NW<./*G4O7
  40. MZ0L5"D"H )%T#E,0=^2DH4.GC!L08O* 4!*F39DY(*ZD8<,F36,02,+<H9/F
  41. M<(P<.63DQ:N7[QTT0,;X%8.FL8LP8US463-Z- @J:-) KCR'#H@P(.JX28,'
  42. M!)DT<LJ,H?-&CN(P;LB @!.&<!DYA]M4'X/F,0@ZW4&8F6RX\6,7M4OCU@UB
  43. MS!LR9=I#1QR_SIPRTLTT_^U&,9PZ<L#QQGV0S?$&"&R\X<89OT$V&&3-I7%&
  44. M9R"P!]L:;KR1X!GXH:?7:"\HH, (G8W!1AWP@2#"4FB((.)=*L0HXXPTUFCC
  45. MC3CFJ&..MKEAGDD@Z#!=<G#(\<88C\V!0@JVC1$&9?@AIIB0VG6VI&V&T>&<
  46. M24(*V%EA<GQW('!.5,$$$]]=UT9GU479FV +@O"&&>VU)@=L8$+FGAMTA-%9
  47. M9PR&81N0)0DY'AOE.0;88&@LR@893LI!AE\@8(G'8$ *F5QS\"4G'77686>;
  48. M&<(MEX:"$PD)'GNDNF$JJIM*>AUD=TPF7:2WVHGGK&*"H-T:\8%71AN^UL'=
  49. MH(2F"D(98<R1QG6]MA8=HA7&%V.%D)411QUIV%$&HGSVNI<8=?@F+(+5@8EM
  50. ML<>6EJRRSK8!!WEA/FD@"#_LQ=ZY<_S8K%X_(%;N=^'=MZ=TR6V+G'>"NONN
  51. MD/'.BVB8<^31V["].LG&&'6PT::'.X8L\L@DVQBB G:\D<:G1!J)Y!Q*@@JF
  52. M&TQR%T:8*LA\G1L[*+!'7A6&RUR?;/3P)K@HZ(Q="BQ,E^[.7[@G'!T]3Y27
  53. M?G(D_31V4;\Q=0\P[.!TJ&YT/34/0S^Y@])E2\WG"BLP.='/):5!)PI:D[T%
  54. MVV;SV44//9R@P@DIF&!"WC/OO77;7K\=P]^!_T"XW"#1;1+;BI/=-QU_GR!Y
  55. MU9<OGOG,FZ_P>."#@SY1'T!/9#<(>&/.M]N< RXXX88COO/H4--N.N2WIT#Y
  56. MW*V#]&5[C5-=_$18PTY[#[,G;[K8M(/ 0P]B$DV]]'$KD #FM/\-OO2/JPY2
  57. MVFRTT(+YK*^N .L*P%CR_/373]I>/BK*I:_;H7%E:1I#E'02$R3Q=(8,7V#;
  58. MDOA'!^[\;R]9VE*A"!:?-P&J5V*(CW8:V*A:@8>"8YN9I3"U/RI(H0I%J!"=
  59. MSL4V ](!0L*20ZWN P(C!($)4RC"J$K%&505<%60V2!W( ,<"\;)@XT"3JT>
  60. M)1])&1!</V+;:.Q'Q2KFZ&3'$Z+_WG2&IK&M9G;2"Q>;EK/%]<QRQ^/BYL#F
  61. MQ<6M$09-FX.Q7C:''I@0A4TKPZ7HT ,;XK (H ,:UG3'M>>%;7FP(R3CSG8T
  62. MPRA2>+F3XQCH"+@[%D%XYIM(]*8&M^$!)C>(BIT;:<>#1KKAD84[G"0I:<<3
  63. M7C)W>AP,X/R80^$5SW(EF8,''2B[42:O"YXD'I"<1,/;Z<![=E,D[PI)/N!Q
  64. M 0:$\]Y$8ND;[%FR9PGXUGV\][,$N$YHCZEF#6^8PZ85IC?<"1/V, >W3?JM
  65. M9]+\)'E@IT92FA(%7$PE"L[)QSZ2\Y),\J;QS(!/+9UA"_7D'N3XF<Z  HF?
  66. M/= BWKBX@H1.C6F*7($[Z6 Z3,:3FB"PIBNQ.9%5)BFD:>H--EF7 #$D)PQK
  67. MR*1\BBFY8R;@=065PT$M^K85.!.:#@6!26'FSS]B<Z-PPZ9+F153[\''#&'H
  68. MF&]LZKJ[<1&A!BV=3T, /=$AU:=!+>D<DU34'"KUI4T%4OM LM9DYO0,F^/J
  69. M/?.I3VIRU9*VS.5888926@(2:,FA X!..=0YI*!G\).?%1>[V![]:']CD-<#
  70. MY0.E 4Y)J,VAPP(K=C%BN:<-VHD.EO@D09!T265\@A9S>C6883GH,.<B0W6:
  71. MI25C"38Y&(S/9ZGCJ1'Z9G^!'2P(DR-'-OAF3B#<[<V:=2HW[-!5/3S,#P^D
  72. M7-S2X0X',N(97NLKQ<BV3T*M[7( 5(8I,O:\5,1BN"(+!Q2$@05B8-*;;&N<
  73. MA84K1N_5BPK$<$; EN&VA-42>_&F@C"DH 4^0&#^RM T%.SWP G^PH(]FECT
  74. M6KA^CM7?!%^*P./(X0N=T<]D Q@E E+)3Z>4&P1)JY@)+O@WTT&MNE8;VX4M
  75. MISF*F>]XK7L@-&A(.K&=+<C>I2P65J=1R*UQ<FZ\I=5F$ 0<-F=X8$/'[^0!
  76. M#O%! 8?E) =D)4M(@6EM"O@C'>!X*;5AHG%XW%"'-F0P3,AM;1NX&^0^Z?BV
  77. MY2T-2('[W\%"QI(J!*&'E<.<+4F-B4_>\AMB.,/X^-7+A!+2ZS"U+SG4(5C=
  78. M@6UXODM;2^\X/NS1#F6.%"7H #D\Z(-TID# 9C=#*\Z%F;-0_SOD5KU*NJHZ
  79. MT):53&@<!PUK&VPNF</;'%#[QD!R*(QT*-2&/*AZ?YR^,WE!=N%JCTR]ON'P
  80. M%SP,8C>(>,%S:"-XFD;E)'V!#E=F<(5B;5@%$"$)4OA"$IQ@A"?H%]P]LQG.
  81. M0(6&GAVOW# [=[K)*.<Y]+>DXO7-H._KX 7SA@XIV$(7X#D1?8\-#0O>0A."
  82. M@ 4H!($*2&!"$9SP.XH'S3>T,SFW$.B;9G_!/M<!L72PQR'!KFQ)H)L0R[O[
  83. MA3,8J0YPD#E*:ZYSG /MSN&MCEX.588O]*8Z]D%I3NG[=-^H8,RB3M 8\)D&
  84. M/91A3E-?3M(A?MCB 0VG+V4#O_.&!A;P>\(@X"H(RG0FRN$RO'(8 QSRP':W
  85. M'WG"YE-!P5$Z!R=%!SEL7W#33.!PW="A:71G0M/86_:ZW4WP[ 9<"V(03"CW
  86. M&3LH\&OE0:+-/%<.D2H M]3?'>]YUULO8P[@D1Q<<!8XR^M@1SJW0_P&CP+)
  87. MP:DWCV&W (,NN*#J]@&;3 =IR.U-S7J8=ZWS>]KY;MX%!$-X$L<\5ICIJ$DW
  88. MSD)5\Q2E@A EH WO:;IOF/X%],,'FUG,0_O33^Y)DM4(21#Y%YSPA"\$80A#
  89. M4 13, 78M'+G)B=WX 8Q!W,?MC+8I','^ 8)&',^YS5!YX#>8W%,IW$<YW$@
  90. M)W(DAP/EXSW>\R9ZQW=,YW?@478)8(+5@0(I* (O( (LZ(*:E8(-9QX/%W'A
  91. M@V *9AXUV"<W2!XLP'[(9UAB8Q+>PW[N%Q_88X1":!\(UAOS]W[>(X$*^&$,
  92. M*'1/2!Y.%X5S,(5T\'(8F !82($_=X$S]T1-=X1BV'-EF$QGJ(7WT8 SASTN
  93. MMX4K$U0NUX12QX3I9P)3(&]2< 584 4I\ *#F 2'. 52@$VE%T]R.($?5H% 
  94. MQX5X*'^6J(9AQ7-^B#TPZ(5-*(B$:(A'D(B+B 5'( 500%++P@;;)% 3T8?I
  95. MAU* "!^D"&^&^ 3P1R>+. 6L%XJ(4H5E$%#=5%5X0XNXB *+* 5/ ')\D(K/
  96. MB 3" SC,2(C3&(WRA@73:$L"=8P@ 7!UQ'I%, 14\ 12D 7^!X ".(A24 1!
  97. M0 1?\ 1.P 19X(K(B +*6 :Y> 7="#B+Z(\@UXD3(8X]0([FB([J^'\!.(!?
  98. M\([Q^ 57( 5)0 5_)5 L-4VP6%ZR^!OVQU?8@Y#GF([[UW\,V8XKY3V1F #@
  99. MB%/B*'!8!CA)()%!X 1.$ 0/"8]$T(ENM8^YZ(P#"9#8.)#Q5!(&B7_Z=Y(#
  100. MB(^O&(M <I3Y5P0EN8X-28 ?M9%%J4+)*'^C&)#_V ->290=69 ?64=(*95*
  101. M:94=N9)/699]%)53F98IF0# !VX\^$O'!X8](([85)?"=Y=38WPO!HH6=W7\
  102. M,VI;=T\YZ!@[N 4]&&$3%H1YMW<$%GR.,7SAXP**MYC?XGB Z3<^*&% R#Z(
  103. M9 ;)408$UGB]\9F<,WHE89IE@)JJ"7$R%5R@AU>DZ3X:N4TE89NG)'J(]2+6
  104. M-IP[DF'QL3_C$1T)M#@C]B0")"4%5"4I-EI:TF*F%6-? AEJ5D'?0FA1PGO#
  105. M-FA,IA@/9QRS)6W$]6P39&8RUBOGPF:4D29RL"8^HFPAM#/#]IYM]F9R0B<%
  106. MYUNK=A^(LASXT6WZ@3Q\@F+:N6FSU9\@I$51PC9$)%H.\V4@9&O1Y7D MJ#Q
  107. MT6K\"6NNQ4#<@1_/=6O*LAY!U#\<ZGEF<!V&\3)!(V@V5FB*@40@U$+,H9[7
  108. M.:)CL ;BL1_ H47F19Q$2B/89D#*J4 "ZIT(Q'M-PVT/)VXSTS0%QR2L)V_T
  109. M9F\J *6.1T9+2J!-ZFUOD&]A5$9DXV_A4G '=W+(,S5QU)U@"F*9=TB"U!PH
  110. MT'QM&BX\H*9YRE'=8WFP(U$.QJ6KZ9AXJ7A?5$FNY$EW-Q$.]J7*9J"]AU!P
  111. M&JD%)YCFT0.#BAQ?T)B9N6 R]:B56J"\%W&02JKL!C?&=X2:NJ6<ZJEX>82Y
  112. MJ:&#A4^CVJ3L5G;P$S]%VJLS8IRK!IM-YQCHYQS-65G0>6)6HF++PF+[PYY?
  113. MHEH'PFOCB7>V15[YN6;[^6K^R6XQ.A@ NC_GDG6D)AW$ZFOLD7:ZT2$EFJ'3
  114. MY7E/LJZ"E@?YDP9CX"O#XFM)MFDSZFOH&1]B<"%BHJ-%5C 6$VO4YJN]>C(I
  115. MLS+B<9KMEZ_&>F9@0J6YZF[PAJ6OES,R=AUK>CPI)R+,8Z?-1TIJZCM_"A+"
  116. M2F 4>QVLB:F.,7HKV[)RH*LBPJL*VZO "FVZ 0<>(W^GBJNN=:S/:6+\LZS4
  117. M65K*P@2.)Z-+1J._UAS!IB!#MF<3Y 0*DF=[@:'"]J[',0<^&P:*P2^WNBC1
  118. M(8$.RG2J9VH@5'A&0AD!VV45&FERHFD5- :GZ5SZE;-$RK J(QU?&[9 >ZMR
  119. M.K1.NFZNU30)8Z49ZWI:RGMHZANUYWEQ\+'KE3PFAU,%YP,PX$G,ESS*9[+L
  120. M-GU^RJB(!"2Z-!@.1'MB^K)Y"77M!B2-:AQE %5295-HIRTAA3TS>04U>9,Y
  121. M&8]!521?0E B8 3S9*,9 J]E5I8_&B8:MFHT"(E8*5#$RR?&B[S4HKP'$F;=
  122. M)X[/BZ\6.KW>LU0P)5/$Y&APF9:X>S<)L[L@T+N_BY,0N9/Q=+UTD+W)RRC,
  123. MZY%5-G['261"0K[95+V:!"?YBP+'N[\?Y+WQ ;X 3&0%1,#FFU8FD;X@()(*
  124. M&9?L.( VA;_&2P3]NB7<Z[\G%<'CRX(5C+[-$A\:3))I&;SR2(_V^,$(',(C
  125. M7*/\JVANP ;/X;PH/, JC%8L3$,OO) =[(XZ*9$4:9$V7+P*+,)/ZVLVRF$F
  126. MX, FS%<1+,1GQ50RM58E <(*7 )SP 5N( (LP+KZX;J 5SRL4V%\2Z0[.T$U
  127. M5QD*.&)O %I9 AD%E 0@T!K=5WC002?WXL>MX2V (1C6D1V*@87BP4/"MEHU
  128. M5[?Q8<=:*\%"DF1ZM'X:DB!W )W X9L)&\?6=C(H\[<@4,>=@9ILH(!@=#-Z
  129. MT<IEL*9SX&/)%AQNX"QGH(#+=KE?<T@5%T;II'Q (\O$USG/= *@<QKD<:=H
  130. M( =<=0)F'$W"!!+#7'/Z9G2 BC>DA ),,&]2"8)' '*;)SP@8#C.\\QQASW2
  131. M[ :3<TN(9,PH^S?I)%/R_$N!D\RS^L;"2<K#.<?7*9T/Y,^E+"(-:ZXH=B66
  132. M<Z6.*T:$>[BNVH!B"CH:2!X9AP/%)VYHL 48W07F)"\<77R@\V]E^04)PRV>
  133. M8K&)RVIO\ 5SXG0//;HW>\!0+ )0\#2P=2!/!J'2@0)/%57&!7M!0KX3H<IW
  134. MK+:C*;*!EE-(@]0Q"SB=6SPF2)E.S6 BH +D"S1B+ )2W&M-IM/<>3,CVM,_
  135. M+54@X )CI@-$72E%_5^6S'9E=W96I25(PV\I -6>--5\QV\L( (ND-4TC;T*
  136. M+ 7,(AW[<06*'!]8-I_@)VPGO3 (\P*?[-.U"]39EM9K#31&C9IT("]Q756P
  137. MT]EP<,RV<P?4'(XE_=B>T@/R:Y,X.9$5^5>[:7ID24<FK2THC1^L39.N+<,F
  138. MM]5D# +!70)D8,9H7-4JV'8OJ=KX,7IRK66%O6V<RGLH8 *[)Z8:77^VS=QD
  139. ML'A5.DO_9'?%L]5=7:T9PLG"T=U<ALOB& 9B@"C&[9K+LD<HT+F@LU:16,T'
  140. M7 9%0FHP(XR)4HSFL]7:&^"_80;J4B3\[3(GA3UD;,:$;2!LX"V?<F0H]>!N
  141. M, 1Y[+/_%1_B";4/!RC&7806;1[)+=^!^[,P/:"6RFX^/=W8C;ASIMWFQMWR
  142. M#=SYT<R&%:,?CF,N8,9F/ 5E6W C+N-(*-4/+::KU[A9*M2RMW6U=WM?1U"Z
  143. M!^-K+-\9XM)FL.),6KBRUH5)RIQ!*ZDL<-WZ0>)0Y!@L4*7FD^)BR^5Q6G"V
  144. MRN*D&N-9_M)C/KG+C=N0?>,W/,8YGN:HN>-!.^)WON5YGJOF(ZP16ZQ\E^=V
  145. MWM)X'M.N)=^,?J[&:N9OH-)S-GI]4"F[FA=\G<5S )/J5J48VWI-'B/XI@"%
  146. MR6^1F\5)\0(L4A>VOA!181$D814>L14@(!)8P14U$ ,U,!$J,0,L00-E<0,W
  147. MD!8VX!)L<>O2/NW47NW6?NU/<1>VT1=_X;V%<1@$Q!B7&1F341F7D1F;02&?
  148. M$1KIL1=J<!JIL1JMT0:O$1NST>ZWD1N[T;3 (1S$45]3O"5LVT(0NJ)5#1DH
  149. MT!UAT"ELF (@8QLHBCPI8GCT$1SWD1] VA_3 2 "0B"8A2 *$B@.\D)<)B$4
  150. M8B$]FB$;PJX?HA<G0R)F$!VU"P)?H 1)T 2#B 0C\E2K3/,VC_-?H/.\FL&S
  151. M%; TQ//#$5V047[""0),ZU(W\RR0P=W#=MZ_P08<YEW*X3&>$J-&(@:0H? ,
  152. MS_0DXBHGDB*E1 ?'\08N@ 8^,"(E<O;QP0-F, 9\P@9M__9E;R(H,O?^WAMD
  153. MD/=P;_9];ST+1P>"O_=R;SV<]0*\Y1IN/_A\C_:-CVY8YA>1K_B%7TH6\P*'
  154. M<BJ"W_1$4+M_HO2]0@;=R[_GPG2L]B.0NA],#S37=P2&<1U/$EYU8 9T$OLC
  155. M@/3Q\<U.$,XC-\Y(  (WD ,BTONDKX"WX4H3$0,[O_R.]D\@  -*?7U4D&YI
  156. M2QX+JG04_V0OFCPN*AUD[_LU!)?\1Y7M.):$8OW*GYSJFY1)# +L#R30__X]
  157. M?\0<7)7TSQ71#_\9#-Z4HY&$Q*J2#)M']2@+:(3_E_\$8$*"84GL ,(VBV3\
  158. MKM]>P W!0OLA%];W^L($U2M_TB]^\3;@5;\DF$EP?^:OM0&O"9A"3.#SLX!$
  159. MS\XD'&RU6GP,$ZEJ46L^58?FX@)<G@*P?/AAYE4YB:8?? ;0*$R@ZNR$"UGU
  160. M/@*@JJLW$@>>)( IR/Z&7H%[,1T0!$ !!D<&R,O2>P%3$$@8-%2FX/H;'3$Z
  161. M6:1_H,'U(EG*SO'0-IIN#:Z? [*<R(;1.6@/*S8U.AQS!U&9FQM<=$YHS9D^
  162. MZ+ VF]$9$8;A.-")ZU/S;MX@^F9"(.CY0/JEDX;7GUM@VVN'%392%[ZB5PJC
  163. M7DYI2-2T K<H&EABXX0H[&&HB"'FQ1 )!M-_Z8]]>0_RE@9F71. *:0/46 [
  164. MN9#KIH)&X B]KB0 .U_'%6( 6A +R*XE5 09@!) @ U =C$@VNW":4@-JZ$U
  165. MO(9/802,"!!P"X$%ZVL>2>$$0(8>MR4>SG5 #]IP!,R=10.O*(-B4$!TY&8H
  166. M!G+A&_R8&K /OJ$R  O^X0VY7P@8$2(B*=B420("6H"]:0$'(BGP!8' %$2$
  167. MB6 6;L"F<('Y5!#IA$),>(4-6C =AX?O(IY[F'CSX<G '(Q7+S3>?P@0 \([
  168. MW(L$$2?^Q8,H>1/B,* \#*$AW@"'"'SM[N79#9E')QHAT--Y^(_Y^<2<)_J*
  169. M7@NC7<EI,#27+]CTGMZ=$ S>@>JQ+:OW)+(>[3(1-^,['8:O%_8R(LX($9J/
  170. M\JD]T)?YXM[FJWMW+_&91;3W]]2>6B1\:._PO<7)-_<:W^.C=V41+M;%S@<$
  171. M,9_>6XM[<0YXOEHH$&B=0,"&< $D5 1?6!6 8; ;AD!"*N@Z9)CL%J-,2 DT
  172. MP!A*0\3(&3NC9_R,TS 0#(  L  * D8PC0N!')C&TY@0> $$P C08 "  B @
  173. M"60C$:@$>T$ 4 (!  H(P&X$ @K@ A0$"$ -1$ XP $#H" @ &$  ,0  @ $
  174. MD   !  !  @   $(  8!"!0$!8 ="X)V1 #7,3L"  '@!#C!"  %(. [CD;Q
  175. M"!Z[(P#H!./@%Z !@@  $( KJ #B  5$ .4("22 "&  VA$ + %)\!H! "N 
  176. M /6Q-H("+A @EP E>(T@ !"(@HD@ :KC$W"/PF "@ (O  A 01A8 !520+I'
  177. M=" ;P8 PD(UD0!S(1C1 "@J =)0$!  01 #Z:!_Q(Q* ! 7R08*  G !3J,E
  178. MD #@0 !@ @1I 0(D#= $!=(4($@$  D$  "@ -( 1>K( ] C"\*/! <28$@"
  179. M@")9$%8 DGR2-/(^B@,ZL!_K8W\4 1L@0(X  HD15,&2/)&@  U 1^E('0' 
  180. M @B3-A(2$ !@( $() "( %.R2@* *YDE$60%") 7 $EB!#@)!WHC, @ YN \
  181. M\@%U<!X! 3LXCX0@.=9'YN@<A<%Y1 2:$@(PQS"  SPE*& $FA(!" ((  ;(
  182. M@*F$!#@2! 2 3T ,"@*;Y .!X!B  P00"-#!<*R.!F!5[D@(4!T)@+ \ L1R
  183. M/ K+ 1 )H %&4 #%TCT&@F&P*]UCK!0 DJ  @ ,"0 T* #   ,*2 #1+C! K
  184. M_X"P# #C4CR^ /L@!UY 91 #[C+P&0@ \ +@@QUX 5['2"B$#("WZ  ,$!++
  185. M:UW.@7;Y+N/E\7D#"D AF(!^^2]!@, DF&D 7CZ*@\D_X,"\B!-093*0EX2)
  186. M$"@ PP28!Z)>EH%[F2\1)D* C[]@-@*  _ '<"0 P "V(#J"Q^J8 F1!@70%
  187. M!9(6>$L,( V<0'64D&! !<B ZK@ M('/! #4P F @@ @(4'!#QB:*]-H5D=+
  188. M\!I_@#5P =5Q2.H%;. "EJ;4! " 8!0$3:@Y 62! 0 # < ;*$VF.0K @="L
  189. MC@_ ;*)-7' VF>8I   ;0!=HRP!  :HC M %!P (8 !S\ 3FY@&0E8#@;FX 
  190. M<_ "M",!^ 7_@!\ 3K1I"TP . @ <I-IF@(@L %<P=XT )"S&] " [ T<^6N
  191. M[)4% 66" E* (#. RY0 VO$ . %Y< )  1)PDQ@!$)0"((  :$&!1 4%\D!B
  192. M!%OP&@, +BB0NL    (,8 &J(Q;PG "@0IJ"RQDBJX![C)T_X'7J3M[9/ % 
  193. M$@ $TS, A,@C,"<M@ BHCC  &C2!;YDLAX![I 9-X'+.204 -0F Y[R<R1('
  194. M",\ P [6)P"(G2W 96* Q%D?B6>;+ !HLWM2 %10 !!G=-P (3("N$=L\ 2T
  195. M(RXXG&QS2X[.I1DB#<#D#  NLP/\@7_P#Y9!MKR<Q+,^QD[7B2 'Z-U$ "8 
  196. M<L:#.;D!DB4'V)\7U($"@ :P0<5G=1P ']2  @!5@$ #  .5E<E2 MQ/ICDA
  197. M58  @)S30$+B"Q$ .>>!-JB@ $ >8%%SX#]SJ.8$ A.@AQ)1M'E$ \ 'K9,#
  198. M8(D*4>UH /"!]MR=,!1R[@+P>3G9Z#QXG6.4:<+1,@HZ_P$K6*)LE!T(4 **
  199. M .ID ="=2Q.-ND<A:CH10"3PE1M =<(# U 0Y($!T(Z0P "    )  Q .) $
  200. M9Y,!--)'6A_AXRT  FST&]"#VLD$V"@X4)+UD76JT$X*#F(E$#B09K)UIE))
  201. M< !V 3^8DPC@? * .J +"J3+S !LE!OP4E\J' %  OB1X8!)]E)^L$SQ 1O-
  202. M!CH2 $ #$_ MH8$!^)82\@?\ V%Z!HHI;/RF_[.34@,VB0"V:4&0!I1TB!9(
  203. M8" "P  !P ;HM +\RMW) )HI#_"=& %G8@11@" 50/>$ J  02X /XE,.ZDO
  204. M@ 0'X!:0@@DP'"6!! @#J+23#@.(*E&U02]UHQ&5%&B# 0 $-  ;]06U$0PP
  205. M (Y*"DZJG[0 ^J "@ ($@ YD*@/ !S+5 >A. # !H.8AO9L2 !<\@#  #)*E
  206. M <@%S<X U$^A"@8. %/% 4@5! #1!P $B.4I  (1 &HV &AP $ !$] $#V!'
  207. MADTP4 !"I%,-J]3Q%(   1!!S>D 2)8/P)P>@&39 ,PI=9294-, "-6UNE=C
  208. MI%HE ,ER/1:$Q+E6H28019[%TQK$TSQJ"00 ,+@ ^D $;$N/N@OPP4@MJ6PT
  209. M#D"" :!2V>@><(_>()Y"@Q'P6+WI._VHT,!)7@!I( !*ZOU$ &P4#T@" :!2
  210. M\>FWW* QDI_&T']0"Q@J5ZVLJZ %@('6VDG]0&H% (>RD_*!WXH/S&D &*6^
  211. ML@.H3AIZ/#%"C-R2P!,C"$\ (% !0/($ A: JVK'$>H/J"F"U !2- ! 307@
  212. M1:E!X 0 H!0 7(#BJ!WUP0&PIZ\ULMK3,NI%">@&Z*/P@!44@)D*79_D=(V.
  213. M&>"Z)H!9X + P&'%"&ST"IC6#C YG^-5S0!]E!]<STX:!01H(T6=[S$^@H(Y
  214. MF6"K(Q(@L7T3 *P <PH DB41<(]S4@- S0-0)B% C66C1* _A@ AD"QK #S]
  215. MEFP4".C8-I L8\"/!9O14<961QH['&]L)\4!.G9(TLPCRT9I@(X=!LFR!!Q9
  216. M)VL 7H".=0?)$@1LV>'(1E7 F<P R7(#C-D6RT9+P)DD LG2 AS9Z@H ; $E
  217. MY0#>=%M" A& .">D <  D),:1(+<2%$!@ *PJ&" &1S7!! (F*-T1 CUK2"@
  218. M # @:>F I#4(* #38EI$L&8A !M=J?[Q#7S0Q D$,"SD1 <YE%?J2E[I*T-L
  219. MRJ2SP, %% 1]VF(I@008!;@@M8("   ))F0 8 !^$QJ(@%V[&WNC/N"-   3
  220. MW-< @ V&;8NMC@5 'U#5=%H W&A!+:;UD; Z@5WP L  !D"OAG87_ !OFSC!
  221. M@ (0IA;6W.H#6<L!O&@N> $@  )$50@0:P$ !RBW]!-RE@-:"P$^;*N%C[X 
  222. M%3C9 O -SN0<&*'_(!M U%\ "[1C ;@%"Q<6 -,96V,++02PJ&+ $CA<81!Q
  223. M!VXT.).8 .$N@X4+!AQN*B"Y$W?)5MR**@'$P"]PN+2 Y [<C>H?@P'"[04+
  224. M%P) @R?P"XCEA+P#AI7%.M<:>R;K =4$ !V ES)<AVL+*,$!^ 5@8.$R *4+
  225. M!BS!TT4 Y'46/$BD"TQ#) (8N*S@3/X#APL="V2R3 'ND;P*@(X['/OC""@!
  226. M2K?A H "$ J<+M3EJK^  4B#JXMPF\#6[0![]Q=\73([=S.!VYT#>!>VSEU%
  227. MP$X#+P.P!E?W>.92>XMP+8#=A04IE$DB2 [@)S< PMT!?Y?H2H 1T D<[B'H
  228. MO"Z3 R!<N(L@-P#>90 (5P0$7E5[.EMM0@ ";* @$ !+0$+_0:W\GWB@(#S3
  229. MWDL+O",A* @%@/>24%;@':,C -  RC=R>D=.4! V@/+M!\'W?Z*"@B !KB\9
  230. M\([%]T]>7R[@';\E<KV^4, [,H."X "N;X $ MB@('2 ZYMI_Z=JM)/7%T'^
  231. M3W@P')4O/^"__Y,?% 0.X']W+0 ( @B@(#0 _UL=#S %V([*=Q]8V@-\&B^ 
  232. M\M4'#3@(L(""0 &4;SX@ @J!UM9'@U FK:-!D  &P0(H!">I' V">\P !L%%
  233. M%H32N!T5@J9TI@8AGAI:@W  # (#, @)P" T (- @P'  _#!!L$!"&&#H'\!
  234. M@!(N"!C (!QA#LR$4S )-@B%-GH:! Z A0U",WV2!D$#& 01_ &\L$'8  8A
  235. M"B<$&"Q_P[!"0,,)@0LGA Y@$#Q '58(91@UZN&$X"(/ ",H"##@(!R 'NQ)
  236. M"X(1P %). @7@/4+  XQ%G:1!> )3P2#D &PXP 0 PJA!&!' R .% (+<)$#
  237. MP \4A!1 ?0N"#.C!!4 .%(0@@(@+P@[HP0<@!WC'@U $++$!1@A+P!+G 840
  238. M!3:Q"E (6L!%&@ C4!!.0"L& &C $@-@A. &L",!$ (* 0_T83U0$$8 $S (
  239. M?P [%H UH! .P2:^Q@GA$6SBXYL0+@$D=@8%H00DX(+ ";!C / '"J$4;.)5
  240. MH!!: 2@N ^FX_@( 7H =$8 :1@C$H </ %D+ (8 +C (RL!%$H!-,(J;\#3H
  241. MCB1 (6R#[HB"$\(XZ,>E&"&L@^X8 A3"/(#$A58$.%\ \ ] <2XHQN"@( 2 
  242. M"P"*!T$Q)@5?H,/A 4L;DSD- (C)T0$ /)UDHY/[1++Y F8@052'FQR3]\A-
  243. MEDXWV3#8 >2@((@R$<@"-ZD))($AD)2-,E ^33=9D!T>50R4Z2#;R,I"Z":G
  244. M'7YSE/O'37YR-YGHK(RTW&?6<M20%T3Y4) +,U"6$9-8CFZ:[B:#,*)\*C!Q
  245. MSW%KJPPLRP%P(9C92V$>RE]H,NWB!-(R_-L<N,E_$,ZU.-=RDR^=Q-K%">$!
  246. M8(,&K))'L!%&!@7A 6@#SOQH$4)3( .Y%S2JYM7,FENS:W[-L#DVR^;93)MK
  247. MLVV^S;@Y-^OFW<R;>[-O_LW .3@+Y^%,G(NS<3[.R#DY*^?ES)R;LW-^SM Y
  248. M.DOGZ4R=J[-UOL[&65,"@1_\/R.R47@ !QDA  'R^S\IK9T,Q'92 .]0 J 0
  249. MUK$#<+X!H/ZR1@ 0?]/I#0X$P(#2ND?5B7 UK$'@SR0T'W3'  "@_X$]Z(X"
  250. MH$#/@^XX  HT/.B.!*! MX/N6  *M#KHC@:@0)^#[G@ "C0YZ(X(H$"'@^Z8
  251. M  JT-^B."J! 3^097*"Q07=D  6Z&G3'!E"@I4%W=  %^AETQP=0H)E!=VS"
  252. M"($@D,(2MF4@V'[PA!.D$3.P1K&\L)B1AEX!;'\HZ4SX08HT$#O24=I"3>GX
  253. M8*.<])6&TI@,(Y0WJ%7"GK3XTM)CFHIIPH57MWP8*L32R@( I&D2MJ;)P!4[
  254. MA69:40@) $#&$N9-6V2Y141U![)6V<R:8=(! . 7S^FQ!=9FC5@;U+"CK 4U
  255. MM!8D ("L)6QL^K"=PL6V)F"&8^-S7:]=3C9)?=DJ]7"##,0M82YJEH;>HD/3
  256. MV _"H;V]M_*RI5],&$!PT*(,,CB0)-SF@ *(<!J"PEV<"^>K-9R\0!3=AQR2
  257. M)\<#*!(F<6-#^&3,4 AEC1X4@) +A$;.60>Z !>M9TT@Y)@[P3WF! $@KB."
  258. M 6#!V#E=J^MUS:[;M;M^U_ Z7LOK>4VOZ[6]OM?X.E_KZWW-K_NUO_[7 #M@
  259. M"^R!3; +ML$^V @[82OLA<VP&[;#?M@0.V)+[(E-L2NVQ;[8&#MC:^R-+; )
  260. M@ Z>Q4F8/1^$23QK1;9!$,EGV&1W2?0, $) '_[# (!E P 40(C#@2$^QF!P
  261. M[C)B1UP0:  DEL2L40> 8E$, $AQ=D3%JO@ '^,D((R),0 PQ@;A"DSC:@R.
  262. M 8 7.,?I>!T#@#%PC_.Q09 # ID@&V2#((VM(T,NVDTX$(#D@H"R"T(C,,DH
  263. MV2"4@I;\D@V"+/@"7^ I1^6IO+63#0QP 6\  "R%P-V7 7=2+@PS.2G;9)S\
  264. M?7<R34;*.'DI&PDW4)F]\N(HRQSD+,/EV[;PI!L1#-QXNR^S93I@R?1R8Z8C
  265. MD+EGJ;A$1YFOLA[$=)B98\ONV4V[:[?MOMVX.W?K[MW-NWNW[_[=P#MX"^_A
  266. M3;R+M_$^WL@[>2OOY<V\F[?S?M[0.WI+[^E-O:NW];[>V#M[:^_MS;V[M_?^
  267. MWN [?(OO\4V^R[?Y/M_H.WVK[_7-OMNW^W[?\#M^R^_Y3;_KM_V^W_@[?^OO
  268. -_<V_^[?__M\ /(#G:]_H
  269.  
  270. end
  271.  
  272.  
  273.  
  274.