Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!iuvax!bsu-cs!ibmbin From: tim@csvax.caltech.edu (Timothy L. Kay) Newsgroups: comp.binaries.ibm.pc Subject: v01i143: tk_ls.arc, Timonthy Kay's "ls" for MS-DOS w/source v1.0 Summary: tk_ls.arc, Timonthy Kay's "ls" for MS-DOS w/source v1.0 Message-ID: <5737@bsu-cs.UUCP> Date: 16 Feb 89 17:29:22 GMT Sender: ibmbin@bsu-cs.UUCP Followup-To: comp.binaries.ibm.pc.d Organization: California Institute of Technology Lines: 519 Approved: dhesi@bsu-cs.UUCP Posting-number: Volume 01 Issue 143 Originally-from: tim@csvax.caltech.edu (Timothy L. Kay) Submitted-by: tim@csvax.caltech.edu (Timothy L. Kay) Archive-name: tk_ls/ls.uue [ Following description slightly edited. -- R.D. ] This is my version of ls. It combines some of the features of Unix ls with some of my ideas of what Unix find should be able do. Copyright 1989 Timothy L. Kay -- non-commercial use permitted Please feel free to use this program, but only for non-commercial use. I am interested in receiving suggestions as well as modified source code. I will try to keep an up-to-date version of the code available to all interested users. If you type "ls -?" you will see the following. Usage: ls [-c] [?] [--] [-?] [-1FRabltv] [-f[abis[#]]] [file ...] where -,? print this message c print copyright message 1 print files in single column with path prepended F enable inverse video for directories (or SET TERM=ansi) R recursively list contents of subdirectories a list all (including hidden and system) files b# print files in single column preceded with %i, i=1..# f find files that match particular criteria a# find files that contain > #% ASCII text (default 90%) b find files with extension .bak i find files with archive bit on s# find files smaller than # bytes (default 10000 bytes) l long format includes file date, time, size, attributes t list files in time order rather than alphabetic v verbose details of find decisions examples ls list files in current directory ls -Rfas1000 / lists all ASCII files smaller than 1000 bytes ls -vRfas1000 / same but explains why some files do not qualify ls -Rfas / | zoo aI /backup backs up all ASCII files of reasonable size ls -b2 *.c > temp.bat ; temp cc -DMSDOS compile all .c files Timothy L. Kay Caltech, 256-80 Pasadena, CA 91125 tim@csvax.caltech.edu [ One of the nicest directory listers I've seen. Has many features as shown above. Sorts down columns too. Source suitable for Turbo C is included. Checksums obtained with the 4.3BSD "sum" or System V "sum -r" command. checksum size (bytes) file (between BEGIN--cut and END--cut lines) 52963 27965 this uuencoded posting checksum size (bytes) file 27738 20278 tk_ls.arc -- R.D. ] BEGIN--cut here--cut here begin 644 tk_ls.arc M&@A,4RY#`"4E)24E)24E7A\``"X20GT=+1=#```,<^B$H9-F#(@Q:,+(`4&0 M#ILR6[J`Z`%"!),Y+L:\:<,"A)DT#T&P21/PQ473FP($CA8@=#10$'%CP8,*%&N'DD9/F M#!HZ$2=6'/)&*U>O=)3BR`&"2IHV;^B@2&247AD(N3!9'=9%-4(:;HS!1AWX@'L?'&&#S* M>&*-*@;$E1MG%#DCBC;B)H>31_[(`QEO8$1BCU"J.`8=>.'K$1QAE?Q"`6#('N M:8:AB!JQ:*.$/GKH%VY2Q.B@:5F*:!B3,`00YEEG"E3M/45EL9_UV8K`[?>0ON%37HP1BZV,-"`KK/?`AO&&O_! MBT.>"@C)I$H*P;1N&NT&RFRW]$(1A!1!-/'%%$EH4<07:QH11!5,4*%33STQ M$96_9P#\4AM?B-ER3FADUGL)P2'CK4L(/:;+O-IPXVS%W'VEW9C4;<<_?A4;1F&%A&V4+K M1G1::>]=]V2W`4YWWY"WH0,->O/=-N1YZ'!#X(.K2L9`AR,-\M=/1ZTJNZ4K MT+5"J(?]A7[?N*?`;9P)1IU$3'2@H M#8(*<'0DO`IF=+1G&RD8'=5_P-%1AQPYG43&1\^C4#T(="I>=-1BL(&O"BED MSV<*@?;!*?,LXP']]6;HWM$4`+XRB(]\'L$0&?H'O?;)87&#B]_\ZH>_W/'+ M#F](0TI8PP8XH$"`2(.3CN8D@BK8YPQET(%(Y@""+0!&(EOX`0SW,D,9MG!8 M1I!"&.)'!SO,T`Q;V"%)MC""+ABQA1\)B0N6V`7SB*""!%3)DN2$`A&0ZPZL M`8X3H9@`$5+1BN0"00M8\`,I[DDNJAG,9P[%&$@8P"!>/$A9MM*5K_"I#&M$ MX181YT42AE$GY(IC$O$(`@P-CTDATPE\R!RN:<81_C*,8A@!-J<8 M3T(:TB:(9(PBZ\#(28YA,I!SI"1+4((T:*\'.W'!".B9S3^NZC_FZR<+Y3(0 M/@T$(2+#C)\V,P:N2(8K8:"H)G\)B02$09\)1(E&&9*0M&A$1V$PI`]`,`*& M@B`(4QA"$I+`D#+XCWUF"H.?TE(",C!TEVX004=*@4K2Q,P+K+*=)`L/"LXFV-.:XD! M,M)Q0USM:<66S@&F&<6KT-H0))K0M"@\!<%K),-"%"1UJ2`H`1M2,ED\0E6J M(*"JPR`FL:U>K*M\7*DVNTDND*&R,QT=)R$'>1O2=<1P'6%=1P:BFS3PAK*# M_>(?T]+-9"K6D(:3CASPLY"7R,6Q'$UG!Q,B!@,6)+B;))>N_C-*,62),?@1 M"$B:N:J,XJU:[0:1#P9J=`XL^<#%,.P"&4 M-+]DG/*LEVL5#2,;6-@"*9BA/C'@&`A>H.#[& M>B+9/`#WP-]K;W:[R6`[.!C"$J:PV6#"F-^"P*CSS>G:0(#%I,QA(XQ1+);Z M$A<0Q.$H(S&#@9^(8-7^<<%B?#$+*I09^I,X-0')Z!D#.OJ^V0&BT$&T\L("'8JF3;`P:T=G5N?PSP& M@[2`"$V8`A&>,`5R!08._#TS8O2,5WH:%3(H@`$4]2C,L`N MJK8$Z@5M0Q["Q6RBVHD=R0H=T=+J4Z>Z(R;S#&IJ+5<1\-+4O7YU5#LR&"Y> M&GJ:SA^_7J""[ZG@/WL:@Y^C=Y7IS2'6U58!'9)'P&9W^S]D\;-""*DD#)V! MA1>6*1UV*]/PC6_'D-T3%K]K+%\5<@[.=G88>7`M7S\_Y+8;+_>_1!"&",.@!7BPHFJ(;G1P;A0-P`ER M-3<[!Q72M`P/UWK(N*[JC1NE#=5=B-?939NL]W;K8!>!732NFCOD!>MPS[C< M*Q*&&&>_0'F$DK8'I:>":VMG(=H&811) M/X<8=$3;Q$KQGN;@$X9L*HHM9U_KQ6)Z.BB*X7,KO:+X4&78STWA0G,]0\3B M>]6'$8N11H'P06`"$_1[X??&#="A)_P4.-^-*UA!ZQ'W'TX_WYPAD;[OJ6_] M@V.?)-K'-.R][ST"@G\%OB<_",Q/+MKS7E%\,0?Z1P?NQQ``R!#Z]V^Z=W#\ M1H#?9P![4BHQER'3UGNYE6S?XT8*:%G?AP#NAD!D4#9N9'YN]($Y,2SZ)SC" M$1T;Z']\IFGUYS00*&"\IQL4Z$$6:'M>I8&KPH$Q.'$F>!LB:``D:`!!&'M1 M5'XWMF",,4`R&($U2#ZB1R>W=8$["($]2`8=&(0AF(%$F&+E!X8\AGZ,(7V[ M5WW9UQ7RUWKTYX3W-WYBR'__`7WI!WOLEX;;IWXQT(9>&'[Y%X=BZ'\4L7L! M.(`%N'Y\D3)BV(('%P(,!X-N:(0&]&Y"'MAI(),^(,SF!82J"0W2(4# M5XE7N(%:^(,>.(D@.(1RN'\IQG]!>'N<)BJA>#W[`0+7(P;.!P)!J"13&`8M MX`.J0SMET!%B$(S#2&.;!GII00=3:(O6(RDJH(LQ6$@]"(S"2#BC(QDND!2. M*%G(J(VDTXV[6$`'E!/'F(VB,XYZ`4[AN([(PW\;B(VJ8P;;."9M``+? MF([WF(\N`$].2"Y!Z(_BR(W[R!?V>)#Z.(^R=XWOB(_CF!+]&)$`>8H#:8Z4 M:)#P."8IH9`6.9$.&47U&)&&,R+\2!$<63AO,29H4(Z\J(KH:)(MB9(@J8XL M.1@C,I+0!I$X>9+[6)$_69,"*88%29,ZF9#N.)1)R9/6R#X+J2HGB094N0)4W>8]3Z92QJ&R=QFP/=SU20FV;47K:0RC<@W'3\Q]2(),7 MIA(9M$PAEF7I!&!Y(1VK(CQG\ M11,Y<6&NI5?/Y3S@-#:^U1MX-'A4P!H/QUAS@"_[&%ZFP3*,V5$_0TC.I%B6 MM4H$YDJFQT[N%!/F1`;H1'!Q>6/.Z`+=,VY+J(;QPQBU(5F,\9@(,1F@N7&& M\DTH(P=)X4PIIQ`OD10)@6\9!UGO!`=@TD]]06.#EP2KPIT`EDI#\E^F=W"J M88+,Z7G\@I;.HY:H9WK;LXM[XE!]@3C7@P>OAP=PP)^28@:!DF+,]A^,M0:, M`2KH\TV2^1D,81L:L3?[)4__H0*?UVG0)A;-DSZF9P+VPSV(0X=EZ'X4,2YH M:**C\BEW>`(N<`(301'8XP+)6&S5N*$4808,A`(@RE[TV(/C\HV0:)0R>2U. MF7LHD!.F4D@Q:J0@$'YN`)-#%HGCDJ,[VJ,I.(;1IZ(HVGY-.BN@@H8N"J/8 M-Z,U6@8^RB__<:"2-B2DLU?7>:$9FF(`*A9421$>)B1C@`+!(XWLDQ,KH!/> MAS@;>*>:HI5%BHFNJ*$3]FQR]&&L5%L"(:=J.CC.$Q"B"*+$QEXDRCXJ"J8M M^J)-:J;10HPPJ:-IQ:,!=*2IA`)5ZJ3CPF]N,#?AEP8PJ0)UFJ/ZIR1L<`=R M@`(`^HZFJG_A!Z#Z-Z5>B*K^HZKLI82=FFE?FBIA:GUC.JIF0*.EJHQ.B:MP M(*PTQBIKZJ@_)@>>.!#W)7H^NH31D9'N M:ASPVA%N,*^[XZ_V.I(I%H1X0)91\6DIX2ES0)_6IGK,TZK!)X!/*GXP.0<* M!5)F^(!C4!^,<0(M<`(ZX(4=&QTG\`,BNQK"X4%76+(?&P,I.RN_IQ-S,RNP MXJ1BX&9K,(0N"P(G,`0QFRHSRR@K^@4W2[0Y6W0[2[(>Z[-&$+27(BD402R2 MI;,\V[0G(`50BRB90K-5J[17:[)AL+72(A94F[3W$K8?*P8BFX$((+-F*X)O M^RK@.G$MN`5:=BR_$BR#^+=BY+,P<`(BJ`#A)X!N MJXGYFH&#ZRO`$K>1BS1,DP!HN[2NPS0]>P)CD+*R]JLMB[5D0+82>+96R[0F M:P9M:W]S>RG*0K-NNX&?*K1WF+N7P@;?IP!P.[5R2X)OVZJ/.[&T:K$_*!49 M"TD;^X,,$+IC.[+VYP"]@BRJ`@)\0!'J$BYID`8BZ`"2.3(E0Q@H4[<.\*Q[ MFX=^JS6!BU_C*S"L8[8']VSQ2S(FP*+&[XDZ`"XVZ3W6[XG MHR/?!P$'G+_G2Q&B954R0S,V4S&G104"G($.T+DB&+U8R[8J=+W)HKW<&RUO MM;-?F[89Z,$FFP8I*\+9N[WU,BU]=3@I[+E.P\(?.P>QZS362[@Q7,(#4S`: M?,#S:RL^K+YS$']]^[?O"PD,'#`D<\0;$Y=&3#Q/.CW^RQ<`S+@:/,`%C'U7 MW"X+/,:,`<$+4U6D-3$6K#,97+T\-JZ[-T M0+:UXK62+(.A:P=DJRN;/,IN-,=T4,<3=\=LXB8EQ,=^#,B0`5(M0,B&7'H[ MB`")O((>HZLNA`H@+P5Z\SMNH$GP`5< M0*;-_("E)Q8G\`)>G(3[AZ^,L8$D`68FL['>C'RU(21W0!,;&\Q1]*/LHP*/ MW*3A?`*WBGR*RFFSZ&D9E!*2*1?)O#ZLMXND!P_ MNC[[S%[,K!)P<*MAAL3EO(+NHJ\,C;@@#=#\(CUPH2-HT!TB0!1N8`2NT00* M$00K0=-YH`1[H]-L$`1U<`930$E/\"5.\`9V0`004B$"#6IOT!MPT!M,@!.( M$@,H`$#XV8-F\(Z\M1O4QSX60S%)(`5%,`3:BXM!\`5,$`1"4`1,\+Z!=&IC M0,AR'==T/=?DTE29Y0(SP$(E(`,I\1]]308Z4`(PX-=.LP#")E5>B`)9K8Y; M[5M=C2WQT3UE=`(X`*,J!*,GP)MNQ-A:S9G!TGYX0`,P6-DT@-D^Z[.<;0"> M[=B@W=5?O3!#@`24[;-C"P*9';*KW=JJ\]BA;=9@+=9#4-LGD+JX[;.ZO=B- MW=NO;7U?G=9KW=8@4-FF?-P@N]G*_=F]]=M?/059D"9%T`3$S-\= MV8U9'`-+47LK+4F!.@-QB=X'KI1[V!$&+I'<2`:K?>$GB086CI3ZN.'>6FSS M:,[MZFIUG>)S3#7=A_G5DVL%F`?6O9[=KJ+=J3/=T^ M>]G6K=H]SMP_7BZD3=RG7>38?=X&[MOK_06R3=M"?@*WG=M/+H,2+N7Z'=QC M3=S&K>7VK=WY#=S0S=;$7=UD?N3X#=E?[MW@+=Y73MYM#N5F#N?`W=[O33/R M/>!;WME1WMS`S=]/X-\`?N4"7MZ!;@`7#I!)$:@*'A_$AA,.#@(0_FP2CN'Z MF+@5[A$AF>$BSI4>#NIIGFJ:,?$$#'9.CM!C)'`?8MI8=78W/ M2CTPBVJ0H`,.K8GWJ_?&JB\FA\2;JJ)2P-N MW9/L,RMV\("PG,?SSF`!N`9IP-"0@P*`M@:?9>%12L]A-);"3))8G>?M?7_ZO:K0SQ=WXHW3^T6K_/^ MWM7=.P?B4O&%5"D:7D@=H0:QIG_2PQM`5`,#TNYAA(]B4180'^\@\`28TM__ M7=:H+P1)X`0+`^`)B-4IP6]#.LDFPQ*_RO5#F/CDTHJOZF9DP-B5S_FY13S. MQ/E=C\X"Y_EXAH:Q2OAF(6^ MK_CD@J0&H2F7/RD@H`8"![X5JP8<^Z0G^NY3A`*QP1Q:1#\UL#F2RC/9JNQP1Q:1`49JNL*/[?1?SF#_:`2,X;Z/P"=^'4'XE,6`9K0/P=T0+. MSP3L48IB(?S$;XQU8#^LD_QUL*I>R/S\YOQZ*W`73OUNB`!U7Q%XEOW;'Y/W MX?V"W\L:\EW$W\N)/X+)VJKK?RWMOZ3PSV_R'W[TCXH&L0+W[T7Z7P=`U/_= M0WSW]NYA<%#Z7P=`U/]76(0;Z'5,$)<&P6\-;+Z$\FRVBHKJ.O=NJ`!U__0> MG_=3/_)-Y5->%&KZH7,SV_.K[<"=^'4[X8(4/<5`>'9O_TQ>1_>+_B]K"'?1?R]G/@CF*RM MNO[7TOY+"O_\)O_A1_^H:!`KI/]U`$3]WSW$=V_O'@8'I?]U`$3]?X5% MN(%>QP1Q:1#\UL#F2RC/9JNHJ*YS[X8*4/=/[_%Y/_4CWU0^Y45Q=O+@WQ%> MQP1Q:1`49JO#Z[8:\EW$W\N)/X*`2,X:\EW$[^H:B4!(&-#%W-1T\-1T$-5, MO(;.LJP5Y(&GP,/QC)*^[ZNM&SLBK$9V1( MQNUX%-$>\<0&T-1T\-1T$-5,DBB,??@M']#%W-1T\-1T\`0L<]#@CCT*76UQ M8.[HKN[LCCC`,>O(;.LJP5Y(&GP,/QC)*^[ZNM&SLBK$9V1(QNUX%-$>\<18 MN.\\P+U`3(UNB`#YV1$X/'%(^JI4&ZO<"\1BD+RVNKRNQE`I`5JV.KQNBR\4 M00,UD+@/[P8H$`>]O('X8ON_BR](/''$ZVIS4`(M4'J@9>L@L`8?KH[Y+KM( M.C>Q2A$YD+RVNKP5Q5!-!5JV.KQNFTW7-(+*[K:N-@>)C6L?KH[Y/LFMR'\H MW6D'XRU!)=8TX@$!^PSM1.W1MDL4AN4-72*.X#"4#3/OEIH9^8+Z^! M)2U&ZRS^2E!Y]P7&8[3.`LD8U:I*>BT6_M$>$7QFT*WJ2(S)._CA9P8=+8:( M@Q/28K3T0A%!)=8TX3IA,S@#AWEW=?8#Q&ZRS(EZ19C!/28K3TPA=[ M.&&!)2U&ZRR(@Z2O2K31?W=Y]P7&8[3.0K&U>JJM"O]+"O_\AA/28K3.DKST MSXE[@B\4`?_/=G=Y]P7&8[3.PD*!"KY>N('X(JL0N[GJFBJ2DO9`M`9=@*W2 M0NA?/?/"C?;61Q*\E0>*_+L5Q04P,`,SL`4WT`:O!@,S,`-;``-M4.\6O@5K MT`78.CLTQMD14%@,8$4.KQL/X0:,O05KT`78.CO*V,N2VX246U$E,"PRX`(# M,@<+OP5KT`78.CO:FKF3W(J=-FX%GV+P1(R:-FS,@Q@0<6+"!`A`J0(`(0T8@&1!TWJ2$\=-FIML"M+Y0@;%AY,"E>!"J%E\^[M2];LV;1NUK9]&W=NWJJ#HT=E*OTAQ"E6J"JI6L1HQ`M,, M715FX*!.6?WLEB9!L$`)0@5)E\I8X83!C0(.7$H&@@X%XP`"#75BEH14*,(#0PWX!AD5863*AI19;;LVA0VETP0%A9A%. M:,:&GDGXEU=@B97=2Y`8H!ACBSWA1AGU`7BB9YKQQ9**,`K&8HTW-D;'8R?U M",**XZ6FEY`S@H#D8DH.\08;=;3A!E<_FL5::OD=!^9X^O'7VW]/%CE@@0>: MH=6"1@3Q!1%)2%'$$&&Z2*&%&+)HEF]TU"&'&^.-^>0;4G$%AX5/[M`='"WX M(.<7;H3QD:0KK!">H#(]%14(87R@X6NFE\]&1EA@@F`!"G7?F MN6=5)MAZ@@LG@!#"?N!1:JD9F&I:QI$&S.%A:&S)05>(;QGF@@JFV?>DL9=F M^M&/-=*VU'1RA$DFBF6982:4JS%GF$Q7I(';C;#=%(8;-\4&8!H8;1350.*6 M009=]][4GW#$.:12:+O9MNJ_T-4FL`LN+==:J5'"8 MJAY[[J$):7]L9O@F@W(J>*N=>.K)YWA^5GCADZ"26D:AAR8:WWQH.(E?67YF M*&-G9B69XXY.LIO9E'TE7>1@53:-I6.0G1%UF$%RMJK3=&C)I9=GXE5F&3Q* MS9IK,E&1FYI23>3&<&E`1M!&8X3!!D8WT7%'&F,@%_?<9O16&TYI?$37'0/1 M1`90KXE@+;8XZ82;;OB"\(96FY\5*T-N)`="$J"C4="38?`[Q^,#R9H'Y3(- M/N]BIE\Q4-\'):0&1`G5-A]!">7$$=M^R;OW3'0CS.CL+[TFAG!A0,120FV$ MX1!4"X$P.!MD]"T'&:_/U#GD)]QTQL_$;U0&'O*Y,4?>I=,.@NXIW8M02A[) MYQM.<_-61D`PO;Y9CWD'&\[S^$>1R44O5)"A0^O1X7#,.MAAVLB>Y`:3H2IEVN&.&>!3ENQIY"L\.II,G`4:T9C! M#=.JE@JN91H=LDI.BJ,#5X!8*^_`;$4]JXTB8NIBP1;%1;(U?J2,CH3.>'B-S,0)@F$W$=TH]OP]AS(K*4#!D!!2EP M"5D2L$(5E.%1^UD?'79CA[90H0A2:(((3I0`/YUR0PE(@"96+11'07!1PGBTY&.H:0G12JK5,I2E\)T9S.MZ1@-$*`Y MH("K,%V!5+.HQK'&$U(?!4J-(E)"):*5K6I#VH3FV$%E#5*K=$586X:(+;"U M2P$:`!H(3%,N0T]-`"4E)24E)9PO```N$E-]PX$(/@``#(R4N4ADP9H`6C": MA5CD0@"`11Y8`'"D;52J%XP,G'J1R,,HCBZ&O3AFH-6+?__030A`S$>H%XN. M+<*6Z]\?$X%ZX+A1)X.)154$`-+7HPX$0.:^_2OY`I"_+'4(+#4IS]6X,$-, MX"A0QQJ@9H#N94ODX&6N``"FC1LT#,&@A-JX`ILC8+247%'X9=HY?8ZD+3JW;P8P%XX, M&/Q%RTS5/EX)\%4S[0G:"`[D$%6@"::2#XBJ.#6"(`+`#4HU-$B&!G0R`NX$%!B"!T]DF(D+!;P8D>3I%@)BP;F,X_N`P`0(!*]`5`%0_^8P<"AAI@ M*`'H1(#"(N5T,0RA["R*C@F/1CKI@[CT$T.`/GQ`!!&X`"%#@#6(2JH2IZ+# M@JJX&-+J"+`&TZH&L`XP0X`1P)K#KN@@`"L

2JL6?N)0# M;#H>#$(,`;BL0$.`WS2+"Q;;HF--LS-(@PL$)T@!!2Z%A&M,M<08@,LQX?+B M+0(U!#B+MT+DBXXJWKKA;RC>PN$O)M[RX>\CWM+BKR'>ZN-O'_S:$"`=WDIB M,3IKD`M,@`](,*JDE.+""@SK7K-Q%/!BRP[*N&RS\1`MXZ+"I[A\LW$--8^S M\0K>YH%S.1M[T+)S`083P M-3KFI%!YX)AKWIHDGJ.5#B,`&,J/ZHP>XWJ\L&=.!P'IS,&UUV"+;3?>:=?! MMMMPRTWW\FANB($2 M?."'([QB$26`Q"I>T8E9!(`4-73#"VSPC!S\8A7,J(YHM%&(6CQA!Y!H1G2@ MT8H/H0(;W>C&,,YP'598!!$LH,,E_N"#A`SB"`]9Q`P@,9&&S",DA7C(/Y)` MD!;`(U`L$,8B1N"1FJ0")\5QQ3\*`(!>(*#37B:U1#7""-2`W.INP(_*+0(> MZUC`*V.)#A[P8U2W7(`]ZM"`S2`C!J(Q`"#\(`\7T($A`Q4^.T<``@>`$$N6>0Q<142),E)P7I8,Z MC+`#.T"##\8P1A'HM!EH(!.%N&!#`=853UE"PU#20(<03&`M!*R#`KB@PE*S M]2=#/=4.464!58F!@,1)(X`2I%0@JY:.-PA`>3T0@VA:TPD`_,$%/1C"7-.1 M!KM*H`G#4*O3@D'1H0CI4((`>&*$S7^B!%#HSAAZ$H3-G2`<&&LN& MOD"'O6YCMG:P;0#2`8X` MH*,8^B"),&*`EG480+C(!`!)G)'<=(0C`"0A!G%ABPWH&L`8TTW',ZQ[3-L9 MP[K#1M([]C6E0Z+X<(..@B0`4)0.5R@)4`(8,"HNO8U_&W#'TY81PZ0 M"VCF%G<%)#%J<4=`$FE,-]7*6Y<_7`WKI(&@UK=^Z`)V?;_6)*(?J9S@!>]' M@W6(P&M<\*66K'@'HL(!HH^,2)!@5(@C`:]%DPPF+\`8@?O`" M#:\;`.%6Z]3\(!6"7@$=MK"`M;#U@C\]7``@`)NO#3/`N`C4\) M'$`*)R\`@$8'R[DL.,!X"*P3D>YV@J`"S14_>I_>OJ\N6X\UH`] MZQ5`@-1S:W:L/QT"4D]MV\..`& M`1*&Q(GA@70TH^4M_0<=."#Y(PXRYB68N2!M;L,PYYGT(=*&+@^A& MS^`&D[[TIC\]ZERG>MZ?OO6N?]WM*!\[+LIN==RG?>VW!SS[ES' MN_'USO?"HUWP7">\V?^^+B4@'AWRJ("U1)#P!U$0:Q=<1P3@5O#K$H`+1EA' M`>BV;R.\+6YU4,?!1]ZT0+"#"@*@H!$.F,!%X0(0B/=*L!`@FT!K9'4/TA$# M=%8'0&!`+84.0$`!HS(`^U<`&@`MA7!]34`!$Y[4,`R"`ZZ(( MB/=JL88._]`!E9,.MC``B^`%!F`/1U`!<-<:JC``"!ACYU4"-E@!(/"!(4A1 MLU."1C"`N``**5AMZ&`,+A@OZ=`'/)B`?48'/S"#%G0%'+`(1Z`!.U!H/L`' M,/`'!K`#@>8#=H`"1;A75""#-/@/=T!Y=Z`!)H@+P="$*_@'4:@`K5:%,>80 M*88#5A<`@``%)H@.\[``$Y<(AL`*_9`Y?<``B;@*S9(."6!U?H&(A@`+_0`Y MM@")Z-`.#V!+^,`7?M$')Q`3F:"%.\"%?\`!?%``._"%A@@$!"% M6>,+`G`,AN`*_9`F&K4.*``(NN")(,`'!Z",GN@'?@!?@N")8`9[MK9CIP0, M`3",_6SH&6W[@#X3B.!_F61U8)$$"7=@F/>>D#*$4($."7?W`$^]B/ M`-+JI*3R,%WZ4Z#``-GDM/&4#]N4'[I"(H_``HZ(+ M@;4"T)`(5N`*"R`-?5``U.0*:1(3D6<'KG"'>""GRR"<9'6B`'[\`N98X^'`/9H`X\#``=F`//:4/?;`&FR%= MG=$$?`-/\B0.,S$`WQ"$<,<#V1@@`Z``HR(\,&$,_#I/`\!2"80.J>``HU(` MF_"4^QI/#@NQT-((FL%B:@/M:2X@3NX#>"]7SL* MX4L`QF4%>]D/H\*^FF`!HS*T4,H.?%!R[#L`)T<$<*H,L&L$A!`@]:`9\?(Y M?Z)-KQ3`Z$`([E`YPC,"YJO`W,``$V?`B&A0"1P@8]#`\>*!2+`.FN$#U=$9 M$K`9V"4:"P"GT2"GK+"?P#`*TM5]JT0`4TI-_I`F@\!PG(95YO"4_20`Z'`.C&C%&H8.Q]`.Z%`) M_T"M:=*F.]:TWA`-X[`(&3!P+;`YZ,0//%4U?.`TWBJ4"$`2([QCQV4`U8$6 M@LQC`6?(B*S(=4#(H!P`0!`@,B`/J`H!:HP6GSP._Q`#Z#`)-_S(!,`'5>8' M:UP'"8`+Z""GNCPJQNM]%R1,?,"!_H`%=C``OG`%`)`(-L`..*`(#(P#F&`) MZ]``]^`-GSH"=Z`.)"'-*,$WH[`*+((2ZX!P72`,#M$TZZ``$"$%.6#(_W`) MON`2\OP/#B#/'K@.WH$$.>`=2A#0%L`$`;TZ",`.62`I&6(`+O`(!K`!%N`" MC.`!'6`!_!`=&^$+9BH#Y&`"K``$C%`,AV`-D[`(-O`2@V`,`G`6```(/G`1 M`R`'$1`='[$(_A`+?R`#P%`5XV`'@!`/?_`T`I"-`S`,`Q`,)9`ZB\`/*X`/ M<@`&R\$(P.`(V,`(T/`;49`$\T`*/*T*CM`-AR`/AY`-BS`,KCD$Z)`!`(`: M<@`$Z"`!;9T//&!W",`##3`\/)``=1"9P+`.T*0Y!R`$JJ``P%`'`3`$A@`. M/)T/XU`!K)`$+"`"=/``!"`"/)!NS\@#(E`'`A#9PC0,Z;`.Z_!D`N$(%FT! M'<$?0S``V[`(]/`@*[`.`'Z^`<-8%E/\`6`E`56L$5])`(!\"K/B#/0QC&.U8! M"Q3/\SP.B7`(][P4\FRB`$!ROXI$!C`*`/`#.W`,=5#)UGI(.P8!BQ`5$%'A MB7`'!!`*(DX$!D!_"E>C!I0"!;`(-<"#!@0$B0`X?"``H>`//G#A%07-.KX. M9>4/`X`UB>#9K-MGZ:SBQ/PWY5("*#%"::(NZ$`/`)`%U0T/G]I/!&"B&)#C M6T8$!/DW-`XX-J#C7EX`2*[.XL;DTN#D_P#E`"#EMU#E5Y[E46&B%0#-`O`# M/NX@8E[C1[YC:K[B#,=/=_[76N"H"T`D^/`/S;D9>RX:!_!PH?`/6;`.H6L# M%\0QXO&"V<`]W`,`'#8"!`*OK`#)5#R"["N)!\` M*?9:H0`,.Q`"1E!6-Y\*@`#S!U"PZ)``_("VJT,-!V#EVM,#*%$'$W`/-V^F MPV.BA?C,@G-5(P\`\\8`N``%#F0-^Y`.UJ"-Z^`#(P\/G7$Z58,TZ!`%C@X/ MG`X,B M!O#.5:\V:.P?_M#&6T,'%S#VG1$!!5NPEI(/L]K!]L`''5#U`R!U```!Z["- MBW`-(_0/^+``PO#*"6X).\`WPYY6W@<+L.$$(A\,@J@`L"``]Q`,?>;9L/`0 M5D``L0`/(H#]"A`,M-`#"G\!C+]_3HX/#?#2SG\(T"_]#1^7^I#.9DS4%%3Q MBW`#?.,]%7\/1R``0-`9MHY-,V@U?Z``N10;;_,#"J!AZ(0XQN`$'K@WC`,0 MZP!\\;*H7!=A`@!46<3.RB([!*R@?0'SET2=^&/8/40(L!,=!_PS%SK]-)!%30+,\\\Q1/C6DS$%%`!`4$`) M!5)Z=/RP`%$["(A$#G!TT-MO&%R!SAO[9*&8`7(=$`@3(@*PCE<=;2"9`4$I M@&,B?!BPXT@%3"D``@"(%=!`RC74U@+V\%'`(/Y0P$<"N/CVE![XK!/!(MY$ M,\XQAUBR`T<2^98%66TZ!!$M/@":VVZ"$FHH1VH:\%01?0)0UC#=_;*3+PZN M`P&(`@P`0$82]4!`%D\,8@P$/];!SD#;I;56=Y(A`$0/"3N.L2Z+ M*\&S22T\CL/I7%-U=2N?\,)[.*RV'?\$2<<&@_C".M18KC-LTRL8`O<`AK"^PC'K/"$WW;'# MO>H`Z202-^5MBXZ/S!?9X4+IS"L,$3HMJ-Y[Z\?0<4'LLT=]USH)],J[[\`7 MT&O-JN6J,M;Y(4`'!+A\[)?UTZ+04SFT`+&S$SVSPL]T\P`HJ(QE+H,`%HJ# M#GG4PV@,.:#9#M4/6@CA-;:1#<]\!K1U'.`IR*A')B"H*Q%TAS0A<5=LJK(/ M$MP!"X#8AP#D,`7),(`V#EA`,OH0`4#XP3=T6`"-6G"$D-T#&X/(!@`:80=O MC.,!D5B!-.XQCTA0$1$4,,(X$K".>$CQBEF\2!WJT0@G>"-D`W`&/YR@"`*P M0`%S(``!=+".`0C`"`3@USM@`0!5O,L("F"?083!`(4P9$>'(QXPC$KND`P'N88X!(,,2OAQ`-+RP#+1TQUWK M\@,!9`",7'!$'JY81##N`0TDU*Q15V`$-AP!#'Z()3/?('Z'`/,@A60(\,UA"V/LH(ZZ6,8. M'"$%//#.684" M&*8X!1U)8,RU7!LW!T!50NJP@,`. M=KC&`("9`("R,*W*!!6*@$2NX0_@CDL^I["2`NZR""H88`7"2`0!TM&'?Z2C M$O6YCX)RT-C_R"`P=[U`/H#;%1;]HQ_,$0#(0O0RIB8$+'[QBT06D`_#I.,1 M_[#MX3Z`*B`@J6",Q<<.ZJK9"^C5`#W82QTP`.*#$8#$=_W'/J:"XKW0H:\, M%@!@J238\1W@N%;R5/NMP0)>_C)0;H$,??"XS5Y8A,T$>Q#?_,`$K?("6D>:"``_810!X M(#%C2`,=UU"%(HPA@F($6Q'"^/6QA5'L8"<'(89D!](LL;0K',,(]`&`,8S0 M"BBL`P=7:",KMY0$/11_F$% M!6R[VP'P@RH:X0=7'$`+6=C",`S`#X*[(A&^8$/;(MXV^+!"`1B)``]*,+]T MK[O=?W@'.JRY#G6DF0")L`7`'-(@-IZ7@ODW>#W!*A# M.-0&='\4(QTI`/\K%P+_;@P9DN@[7I0@ M^#X(/[X\`>7H+O2#I4,5_`?]C!4`H!9`393[-.)(=ROD<\@SS%VT0S1_"+!( M-.GX`H!V;7T5UEB#&$&``,H-5I@,Y"120"X!`)`.-A/:5>%;Y_V37AT,+-)# MAAMZ<,`"_R1%S(P:$L`(,`L<4TL(*RJR@C0F*$,!#K`CP`$)?/*Q0QP$FL((. M*OLDL<0ARHQS@,/H=++/;#2/$\$*V;3,ZQ'^.-$*=.B$NW,\"VSC1P*++`,P M.GOL3)LK^VC'HF@O*B`CC0+8Z.^.-!*`"Q0`J&!$*P,8H8H)(J;3Q\6VX/%5 M9?_`4@(Z/.S#BJIUX`.('ZU`L24Z-NRSG-OK`/"%%XN4TX4PI56Q"#M67+'( MDX/X`,`/?'&PB`>?+Z+MZ)\G5R)T&/!X M%\-8SLX@[`B0^>8&O+4(`0$4$(H_/NQ@3!VL^P#].@TL/X`QB=BYB!?^)-*@ M%>C$T4X6CT<.O!6A"/###@9`7X<$_]C@/CK^N)/%#,",`OTH[EO'#D8'O47< M00#W8%YD1$"^'IQO!_;[01T4P#__^0"`/_#7(H@@``N2[QCZ6P<#Z@<]=/1" M?[B#GA>"=SGB&4]S3_I'C`BPO>[Y8Q%\0&`!2I0N"+I/5LMKWO?"UZ!%W&,= M!2"?`/Z1A2'>XP`\3,`_[.`/\JF`B>B#G.18B+G-$6`!]JB#`/2T"/WPXROP M@*#\>L6#'"41'8]@HA>`)SQ.S2"",@0%&MR$?CZ'@Y6FA@$58P M0#-"0`LG+,()"$`D`18I!P+PSU^*TH0Z!LE%0TIRD;1X`B4M"0Q,HL,/FP0` M(8=7O..%Q48XHH,&8`$`190@%__X!S_DX8I[1",)=%C`(GSPB1?@*##^J,," M+LF"#/G#07ZX80]B^0Y%%$!5=$B'#L!1AW0L(AN`R$$/ZB`.+\[#%(=81AVR M<81%'*-QZ=OB#)*!/1(1*A=S6@>7!@"`*AR/'8O(AZ.\9H48><$!CX1`ENJ` M`,70(0U-HT,9[G$,'G)`,7E0P#VT<0]L#$(;_GD&`[*4T7MDXQ[;&$0V_)/` M1:0C%^FYP@S^,0-[?$0:T;!&-*ZQ@W[(80%W(,`.YB&'`JQ@'AOH!Q#$<8XM MW&,8<^I=&1=QC6BLXZEXHL,!-MK1CSINCLHHS3WF0=&H.D@895D'.X3'OE6\ M`'ZZX$$?)M`YMP*`#S'R@%NC,8Y%W$(./-"G+Q[A`ROH$1>=\`$4<&$''2B* M#B4A!@+FR,7,V6@1#C#`#Y1G%PC-`0'6)`4BB."92!:@%(D@@C_$@0]XSE$8 M>!(>\0C@2@,,(BP"F$,);KNA.HCN&`,P@&:[QP_>_,,"!/A!%K*0$3\P#`401`PCU,H-D!'(.XV(T&.K:KV47`8P#WB*YAD:MYS3U`YM#1A1Q5(+K092]^W_O]KWOY<(YUI`#`(6YO1OZ`@%!H-@5&X,+#'QS^@8M_`&,9%P##_)"#-(`L!UB`6,#N[4,2KX".:-S0&"LX1EGN M4>$?V-!1_H"Q6#24$:W&EP#H(`F6NT>`='S#'_&<7&POYR@$C$*S&1'C.AXP MT%$D5X]3-``Z7.&/55JV&'8AAA\4P`\(S:,4$TC&/$CQ@=^%M9^7R_,4(_F= M\*!C"/.(G*.2]YT`+.<#QC@``"ZI2F%X27C?(T"H`8"+![@`"GTD0![YZ$=% M/<$>G$3U=U;=ZE?'>M8&F#0Z8H!K55:V44]:A#6:PH(@\"`#=R@``<(PVG^P M0@2'@<9!#&LZ`!CJ```5C2`$(8I`#'.``!$)X M@QS8$`8WD`$$27`#'=C@`@`0(0UV2`,9R@"",LA!#EIO@`*"(`8W:+T-86`# M".``]S/((0QM.)G;VY`&-X3AH6]P@]QSC@($_,#QCL_Y/)@P!Q>,X0UM8`$( MS)`&-K"=#6F8`QU>P'FO[[WO?\\\".S@]CFD(?%3=P$,8*!Y%,2`!B!00M?K M$`8YY&'J5<=!"@!@=*0KG>E.ISH.<@`"*J2A#6^@`QI^SP07@&`)8?A]"XAN M=S>TX/)M:(/;QY"&O(.@#G-@.QP&GP8Z2)0,`(`"^^?@>MB''@1H<'L9Q/![ MOW?]_0`!>QG$\'N_=_W]$"#HO`%!)LT<.G+2B*E#IPP(,W+*E&&3Y^$;.2#< MO''38LR;-FW*R!F3)@P;$'7F.-Q(T04`*FG:O*&#IB(3%R"6A,FC8(C)AF/0 ML``AHX:-%CA@*(`29DX8,F7B]P48=;;BA7!HT M51=&@H`U%A549,B7G!')114;@-?9(9)*(-B1!E0#F7$106E$!-E%:93Q&0HC M3E$$%2!048043?1P5W\I2'B5%,F96(<<_6E(46<&9><1=E'1\=D;9O!7AQ@% MF2A00BKJ"$(8R;%1Y)5LG(3"=6,,6)`;9X"P'1E0&7@7&?SE<5`9;:3P4'!5 M(@>=&"-<95]V^*D(PG[]D0F@1P,66%Y:;+%U8((EE)#&4>$`-Q(UC9Y%7` MN<%FGY_1M&!W"P:EH!Q>C5$'&WVAEU!#"87Q'"0)A)'GG)K.F9]VGQY)1QC[ M^0#""(V"$,040R211$!EX)$="E"9$<:IV95`1J,Y(@>K&,EENBF=G]V!(!H@ M)-N0&_UM!((+8H2QQJL)I)'M==O>ZFV"?065AH8@B($@"!NQ.\>LVMKJYQQM MF"0<1IX:F*<8>32T8K//S@9""6RPR;##U4+7698;E2FB'`5G!Z:8?O9)T()E M#.552$/UIT?*5]*!D$(,U:EQ=E=I>9#`^AFX\DIR0(61'`LRAS`:=W$)!])B ME%&JE78DIZ$<8KS!(52[!K=DDP%#15*YY!XG7[)AM`%'?E9Z!@(D$.C,)[=_ M&FBJ'!&=%V5:4_)D9Y:?M2"%LW/$`,/@(+P`G=N?&2PLL<;RS%_!78J$JX&" M$WZQS8?W;00IP0-I%%V<=1A4AIF MZ*VQVGX##CH?(.CQQD!A'/M"NF.L40<"SN3($34U$87 M.N2RA^N@.R9J-'7@M$-#$%$4],D9Q'9M,I_;GD MX=1Q2C"'`180``04&P(/6`4WK$$C=S#0'.8EJA:8H01C.$X#'_B&"/*'@N!J M`08'.`8,FK"$*#QA"!6[3!=TD(#9?,J,F M`.!&:0"`'>A0.0#\``#$L"S-!4`-0SJ;"R0U6'((`!2-40516"/:5JB:K292ZP M,H59`8#6!-ABK6TU!ERE:HVYPLH<=DV`/?)J@!W(DZU2M8!?Y=E6$PSVK%*U MP6$!"RLC++:M5GBL5,T@V:Q6-@&&V$$`0"``SH*``*`0`"@(Z@$``$$N?]T3 M?\[BAB9QQ@QL>,."_%.=-T32(B!;T&<$J24'LJ4!QVD``%#@AE.Q(04`@,%6 M9D`#H]P`!SD(@A"&0(0B&`$`%*!``/B9W>PFE0(#(``%$E``6-UT`0^XP`,0 MT%V;6N"F"6C`314``04\X+X(4$!V#4`!"2S``=F-``48D%WY0N(``.`%#XC! M`V[PP!X\*$`/,M"#%?1@!SV`0@_$T(,_]&`2/1!%#VS1`[H,HP?2Z`$^>H`` M'UC`!R?P`0Y\H`0?O(4"7/"!&GRP!Q^0``!%H-N(8`"`)+AA+%K:5&$@DP9S M%;<-39,#`"3C)%&9;$1W.Y$<\@``IB1(D"(J#!E>,CQ0N:$B;P"C@3C599&T MP2!@(TA44C1F(1329$^.,@":`*>+5*0O%@H(T>;`G#%+)CM1>8-BP!42F6RY MR$>^'9L:[>=\Q39Y5T)31+X#:21_*%Q'+M%&0H*=3DL:MR$S=9*O-(8QJ.@S M'H&*JC]-A@6%8IV&7U/9T:_CUJS9U)