digitalmars.D - my simple but useful changes to Phobos - diff-to-115.patch
- derick_eddington nospam.dot.yahoo.dot.com (594/594) Mar 02 2005 Hi, I've been playing around with D a little for a few months now and I'...
Hi, I've been playing around with D a little for a few months now and I've made IMHO a few small useful changes/additions/fixes to Phobos v0.115. My diff/patch is attached. Bug Fixes: --------- std/file.d version(linux): getAttributes() and isdir() do: mode & S_IFXXX; but because S_IFXXX are not necessarily single bits, the right way is: (mode & S_IFMT) == S_IFXXX; isdir() throws on broken symbolic links because stat() tries to follow the symlink. I've added islink(), which uses lstat(), and use it in isdir() to fix. Additions: --------- std.path.walk(), like Python's os.walk(), for use in foreach loops. Pretty useful to me. std.file.{copytree(),renametree(),removetree()} which use std.path.walk(). (renametree() for moving across different filesystems because rename() can't do this on Linux (don't know about Windows...)). std.math.range(), like Python's range(), for use in foreach loops. version(linux) std.file.getMode alias for getAttributes because the name is more familiar to me. lstat(), chmod(), and mode_t added to std/c/linux/linux.d Changes: ------- std.path.join() takes two or more args now (using varargs). std.syserror.SysError.msg() uses strerror() to get errno message. internal/dmain2.d prints "ClassName: " of caught Object instead of just "Error: ". Object.toString() gives "<instance ClassName at b7da6790>" version(linux) std.file.listdir() throws if opendir() fails. std.math publically imports std.math2. std.math2.min(uint,uint) I added to prevent implicit casting conflict with min(real,real) for a min(uint,uint) I did. (max(), etc, should also have unsigned and signed/unsigned combintions versions as well; having to use casts doesn't seem visually aesthetic.) import std.socket in phobos/unittest.d ---------------------------- For some reason I get warnings like this when using my libphobos.a: gcc -o unittest unittest.o libphobos.a -lpthread -lm -g /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/../../../../i686-pc-linux-gnu/bin/ld: Warning: size of symbol `_D3std6stdarg9va_arg_Aa6va_argFKPvZAa' changed from 19 in libphobos.a(path.o) to 34 in libphobos.a(path.o) ---------------------------- Please let me know of bugs/issues/problems. --Derick begin 0644 diff-to-115.patch M9&EF9B`M<B`M8R`O=&UP+W0W+S$Q-2]D;60O<W)C+W!H;V)O<R]I;G1E<FYA M;"]D;6%I;C(N9"`N+VEN=&5R;F%L+V1M86EN,BYD"BHJ*B`O=&UP+W0W+S$Q M<B` ,B`Q.#HR,#HT-R M:70H15A)5%]&04E,55)%*3L-"B` ("` ('T-"BTM+2`W,RPW.2`M+2TM"B` M("` ('T-"B` ("` (&-A=&-H("A/8FIE8W0 ;RD-"B` ("` ('L-"B$ "7!R M<F,O<&AO8F]S+VEN=&5R;F%L+V]B:F5C="YD"4UO;B!&96( ,C ,3 Z-3,Z M*'9O:60 *BP =F]I9"`J+"!S:7IE7W0I.PT**BHJ*BHJ*BHJ*BHJ*BHJ"BHJ M<W1D+G-T<FEN9RYF;W)M870H(CQI;G-T86YC92`E<R!A="`E,#AX/B(L('1H M:7,N8VQA<W-I;F9O+FYA;64L(&-A<W0H=6EN="EC87-T*'9O:60 *BET:&ES M;G5X+F0 +B]S=&0O8R]L:6YU>"]L:6YU>"YD"BHJ*B`O=&UP+W0W+S$Q-2]D M;60O<W)C+W!H;V)O<R]S=&0O8R]L:6YU>"]L:6YU>"YD"4UO;B!&96( ,C M*BHJ* HM+2T .2PQ-2`M+2TM"B` :6UP;W)T('-T9"YC+FQI;G5X+FQI;G5X M97AT97)N.PT*("`-"B` 86QI87, :6YT(&]F9E]T.PT**R!A;&EA<R!U:6YT M(&UO9&5?=#L- M*BHJ"BHJ*B`Q,#DL M;G0 8VQO<V4H:6YT*3L-"B` ("` (&EN="!L<V5E:RAI;G0L(&EN="P :6YT M<W1A="AC:&%R*BP <W1R=6-T7W-T870J*3L-"B` ("` (&EN="!C:&1I<BAC M;G0 <FUD:7(H8VAA<BHI.PT*("` ("` 8VAA<BH 9V5T8W=D*&-H87(J+"!I M("!S=')U8W0 =&EM979A;`T*9&EF9B`M<B`M8R`O=&UP+W0W+S$Q-2]D;60O M<W)C+W!H;V)O<R]S=&0O9FEL92YD("XO<W1D+V9I;&4N9`HJ*BH +W1M<"]T M-RPS,R`M+2TM"B` <')I=F%T92!I;7!O<G0 <W1D+F,N<W1D;&EB.PT*("!P M<FEV871E(&EM<&]R="!S=&0N<&%T:#L-"B` <')I=F%T92!I;7!O<G0 <W1D M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ"BHJ*B`W-S<L-S S("HJ*BH*("`-"B` :6YT(&ES9FEL M92AC:&%R6UT ;F%M92D-"B` >PT*(2` ("` <F5T=7)N(&=E=$%T=')I8G5T M97,H;F%M92D )B!37TE&4D5'.PDO+R!R96=U;&%R(&9I;&4-"B` ?0T*("`- M"B` +RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M92AC:&%R6UT ;F%M92D-"B` >PT*(2` ("` <F5T=7)N("AG971-;V1E*&YA M;64I("8 4U])1DU4*2`]/2!37TE&4D5'.PDO+R!R96=U;&%R(&9I;&4-"B` M?0T*("`-"B` +RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M("` <F5T=7)N(&=E=$%T=')I8G5T97,H;F%M92D )B!37TE&1$E2.PT*("!] M('1O4W1R:6YG>BAN86UE*3L-"B$ "6EF("AS=&0N8RYL:6YU>"YL:6YU>"YS M=&%T*&YA;65Z+"`F<W1A=&)U9BDI('L-"B$ "0EI;G0 <V%V965R<FYO(#T M9V5T17)R;F\H*3L-"B$ "0EI9B`H:7-L:6YK*&YA;64I*0T*(2`)"0ER971U M<FX ,#L)+R\ :70 :7, 82!B<F]K96X <WEM8F]L:6, ;&EN:PT*(2`)"65L M<V4-"B$ "0D)=&AR;W< ;F5W($9I;&5%>&-E<'1I;VXH;F%M92P <V%V965R M<FYO*3L-"B$ "7T-"B$ ("` (')E='5R;B`H<W1A=&)U9BYS=%]M;V1E("8 M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ* T*(2` M=&)U9CL-"B$ ("` (&-H87(J(&YA;65Z.PT*(2`-"B$ ("` (&YA;65Z(#T M=&]3=')I;F=Z*&YA;64I.PT*(2`)+R\ ;75S="!U<V4 ;'-T870H*0T*(2` M("` :68 *'-T9"YC+FQI;G5X+FQI;G5X+FQS=&%T*&YA;65Z+"`F<W1B=68I M*0T*(2` ("` ("` ('1H<F]W(&YE=R!&:6QE17AC97!T:6]N*&YA;64L(&=E M=$5R<FYO*"DI.PT*(2`-"B$ ("` (')E='5R;B`H<W1B=68N<W1?;6]D92`F M(%-?249-5"D /3T 4U])1DQ.2SL-"B` ?0T*("`-"B` +RHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH-"BHJ M871H;F%M92DI.PT*(2` ("` :68 *& I"2\O(&EF("%H+"!S:&]U;&0 =V4 M=&AR;W< 97AC97!T:6]N/PT*("` ("` >PT*("`)=VAI;&4H*&9D871A(#T M("` ("` 9&ER96YT*B!F9&%T83L-"B` ("` (`T*("` ("` :"`](&]P96YD M+#DR,R`M+2TM"B` "7T-"B` "6-L;W-E9&ER*& I.PT*("` ("` ?0T**R` M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M;W)Y+"!R96-U<G-I=F5L>2!C;W!Y(&%L;"!S=6(M8V]N=&5N=',-"BL ("HO M86-H("AC:&%R6UT <"P 8VAA<EM=6UT 9&ER<RP 8VAA<EM=6UT 9FEL97,[ M('-T9"YP871H+G=A;&LH;W)I9W!A=& L('1R=64L("9T:')O=T]N17)R;W(I M*0T**R`)"7L-"BL "0D)8VAA<EM=('-U8F1I<B`]('!;;6EN*&]R:6=P871H M+FQE;F=T:"LQ+"!P+FQE;F=T:"D +BX <"YL96YG=&A=.PT**R`)"0EC:&%R M6UT ;F5W<"`]('-T9"YP871H+FIO:6XH;F5W<&%T:"P <W5B9&ER*3L-"BL M"0D)87-S97)T*&5X:7-T<RAN97=P*2D["2\O(&-O<&EE9"!S=6(M9&ER<R!S M:&]U;&0 86QR96%D>2!H879E(&)E96X 8W)E871E9"!A<R!W92=R92!W86QK M+G!A=& N:F]I;BAN97=P+"!D*3L-"BL "0D)"6UO9&4 /2!G971!='1R:6)U M;BAP+"!F*3L-"BL "0D)"6X /2!S=&0N<&%T:"YJ;VEN*&YE=W`L(&8I.PT* M(&XI.PT**R`)"0D)8VAM;V0H<W1D+G-T<FEN9RYT;U-T<FEN9WHH;BDL(&UO M*R`O*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M9B!D:7)E8W1O<GDL(')E8W5R<VEV96QY(&UO=F4 86QL('-U8BUC;VYT96YT M<RX-"BL ("H 57-E('=H96X ;W)I9W!A=& 86YD(&YE=W!A=& 87)E(&YO M="!O;B!T:&4 <V%M92!F:6QE+7-Y<W1E;2`H=6YD97( 3&EN=7 -"BL ("H M870 ;&5A<W0I+"!O=&AE<G=I<V4 :68 =&AE>2!A<F4L('-T9"YC+G-T9&EO M+G)E;F%M92 I('=O=6QD('=O<FL 9FEN92X-"BL ("H /S\_(&ES('1H97)E M(&%N(&5A<WD =V%Y('1O(&9I<G-T(&9I;F0 ;W5T(&EF('1H97D 87)E(&]N M('1H92!S86UE($93(&%N9`T**R` *B` ("` :G5S="!U<V4 <W1D+F,N<W1D M=F]I9"!R96YA;65T<F5E*&-H87);72!O<FEG<&%T:"P 8VAA<EM=(&YE=W!A M"2\O(&)O='1O;2UD;W=N(&1E;&5T92`H;F]W(&5M<'1Y*2!D:7)E8W1O<FEE M*BHJ*BHJ*BHJ*BHJ*BHJ*BH-"BL ("H 4F5M;W9E(&$ 9FEL92!O<B!D:7)E M8W1O<GD[(&EF(&1I<F5C=&]R>2P <F5C=7)S:79E;'D <F5M;W9E(&%L;"!S M*2![('1H<F]W(&4[('T-"BL "0T**R`):68 *&ES9&ER*'!A=& I*0T**R`) M>PT**R`)"69O<F5A8V *&-H87);72!P+"!C:&%R6UU;72!D:7)S+"!C:&%R M6UU;72!F:6QE<SL <W1D+G!A=& N=V%L:RAP871H+"!F86QS92P )G1H<F]W M<'1Y(&1I<F5C=&]R:65S(&9I<G-T+"!S;R!R96UO=F4H*2!W:6QL(&%L=V%Y M('L-"BL "0D)"7)E;6]V92AS=&0N<&%T:"YJ;VEN*'`L(&4I*3L-"BL "0D) M?0T**R`)"7T-"BL "7T-"BL "7)E;6]V92AP871H*3L-"BL ?0T*9&EF9B`M M<B`M8R`O=&UP+W0W+S$Q-2]D;60O<W)C+W!H;V)O<R]S=&0O;6%T:"YD("XO M<W1D+VUA=& N9`HJ*BH +W1M<"]T-R\Q,34O9&UD+W-R8R]P:&]B;W,O<W1D M"BHJ*B`Q,2PQ-B`J*BHJ"BTM+2`Q,2PQ."`M+2TM"B` <')I=F%T92!I;7!O M971U<FX ,#L-"B` ("` (')E='5R;B!F86)S*' +2!Y*2`\/2!P<F5C:7-I M92AI;G0 <W1A<G0L(&EN="!S=&]P+"!I;G0 <W1E<"D-"BL >PT**R`)9&5B M=6<H<F%N9V4I('=R:71E9FQN*")R86YG92AS=&%R=#TE9"P <W1O<#TE9"P M<W1E<#TE9"DB+"!S=&%R="QS=&]P+'-T97`I.PT**R`):6YT6UT <CL-"BL M"6EN="!D:69F(#T <W1A<G0 +2!S=&]P.PT**R`-"BL "6EF(" H<W1E<"`^ M9FQO870I9&EF9B]S=&5P*2DI73L-"BL "0ED96)U9RAR86YG92D =W)I=&5F M"BL :6YT6UT <F%N9V4H:6YT('-T87)T+"!I;G0 <W1O<"D-"BL >PT**R`) M<F5T=7)N(')A;F=E*'-T87)T+"!S=&]P+"`Q*3L-"BL ?0T**R`-"BL :6YT M=&]P+"`Q*3L-"BL ?0T**R`-"BL =6YI='1E<W0 +R\ <F%N9V4 =&5S=',- M"BL >PT**R`)+R\ =&AE(&)E;&]W(&EN=%M=<R!W97)E(&=E;F5R871E9"!B M("TS-"P +3,S+"`M,S(L("TS,2P +3,P+"`M,CDL("TR."P +3(W+"`M,C8L M("TR-2P +3(T+"`M,C,L("TR,BP +3(Q+"`M,C`L("TQ.2P +3$X+"`M,3<L M(#DU M,BP ,S<Q,#DL M+"`V.#DR- M(#DQ-30X+"`Y,C(U-2P .3(Y-C(L(#DS-C8Y M-#DL M-S,X-RP ,C X,#DT M,3 X.#DL M;CDV=&]N,3(V-C4Y-'-N,S0U-B`](%LM.38L("TS-34R+"`M-S`P."P +3$P M,#DQ M-30W,BP +3(T.#DR."P +3(U,C,X-"P +3(U-3 T,"P +3(U.3(Y-BP +3(V M,C<U,BP +3(V-C(P."P +3(V.38V-"P +3(W,S$R,"P +3(W-C4W-BP +3(X M.3$U,BP +3,U,C8P."P +3,U-C`V-"P +3,U.34R,"P +3,V,CDW-BP +3,V M,#DY M-34U,BP +30S.3`P."P +30T,C0V-"P +30T-3DR,"P +30T.3,W-BP +30U M,C S,BP +30U-C(X."P +30U.3<T-"P +30V,S(P,"P +30V-C8U-BP +30W M-S,Y,BPM-#DP. M-SDR+"`M-3<W,C0X+"`M-3 P-S`T+"`M-3 T,38P+"`M-3 W-C$V+"`M-3DQ M-S4R+"`M-CDX,C`X+"`M-S`Q-C8T+"`M-S`U,3(P+"`M-S`X-3<V+"`M-S$R M,S$R+"`M-S,R-S8X+"`M-S,V,C(T+"`M-S,Y-C P+"`M-S0S,3,V+"`M-S0V M,S0U=&\T-38W-C-S-S`W*3L-"BL "6%S<V5R="AR86YG92 M.38L+3$R-C8U M.30L+3,T-38I(#T M-BPV-C<L,3$Q*2D <')I;G1F*"(E9"`B+"!I*3L-"BL "7!R:6YT9B B7&XB M*3L-"BL ?2`O+R!E;F0 <F%N9V4 =6YI='1E<W0-"F1I9F8 +7( +6, +W1M M<"]T-R\Q,34O9&UD+W-R8R]P:&]B;W,O<W1D+VUA=& R+F0 +B]S=&0O;6%T M+F0)36]N($9E8B`R."`Q.#HU M,34O9&UD+W-R8R]P:&]B;W,O<W1D+W!A=& N9"`N+W-T9"]P871H+F0**BHJ M8B`R."`Q.#HU M* HM+2T ,3`L,3< +2TM+0H ("\O9&5B=6<]<&%T:#L)"2\O('5N8V]M;65N M="!T;R!T=7)N(&]N(&1E8G5G9VEN9R!P<FEN=&8G<PT*("`-"B` <')I=F%T M92!I;7!O<G0 <W1D+G-T<FEN9SL-"BL <')I=F%T92!I;7!O<G0 <W1D+G-T M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH-"B$ ("H 2F]I;B!T=V\ ;W( ;6]R92!P M(&D /"!?87)G=6UE;G1S+FQE;F=T:#L :2LK*0T*(2`)"7` /2!?:F]I;BAP M+"!V85]A<F<A*&-H87);72DH7V%R9W!T<BDI.PT*(2`-"B$ "7)E='5R;B!P M;RYB87(B+"`B6V9G73\_/V)A>B(I*3L-"B` ?0T**R`-"BL +RHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ* T**R` *B!786QK(&$ 9&ER96-T M;W)Y('1R964L(&QI:V4 4'ET:&]N)W, ;W,N=V%L:R I+"!U<VEN9R!A(&9O M;W`L(&)O;VP =&]P9&]W;CUT<G5E+"!V;VED(&1E;&5G871E*$]B:F5C="D M7U=A;&L-"BL >PT**R`)<')I=F%T92!I;G0 9&5L96=A=&4H:6YO=70 8VAA M<EM=+"!I;F]U="!C:&%R6UU;72P :6YO=70 8VAA<EM=6UTI(%]F;W)E86-H M;VP 7W1O<&1O=VX /2!T<G5E.PT**R`)<')I=F%T92!V;VED(&1E;&5G871E M;V]L('1O<&1O=VXL('9O:60 9&5L96=A=&4H3V)J96-T*2!O;F5R<F]R*0T* M.PT**R`)"5]O;F5R<F]R(#T M871E('9O:60 7W=A;&LH8VAA<EM=('1O<"P 8F]O;"!T;W!D;W=N+"!V;VED M87-S97)T(" A("A?9F]R96%C:$-O9&4 :7, ;G5L;"DI.PT**R`)?0T**R`) M8F]D>0T**R`)>PT**R`)"6-H87);75M=(&YA;65S+"!D:7)S+"!N;VYD:7)S M871C:"`H3V)J96-T(&4I('L-"BL "0D):68 *&]N97)R;W(I('L-"BL "0D) M"2\O(&]N97)R;W(H*2!C86X =&AR;W< :68 :70 =V%N=', =&\ <W1O<"!W M86QK:6YG+`T**R`)"0D)+R\ ;W( ;F]T('1H<F]W('1O(&-O;G1I;G5E('=A M.PD)+R\ <VEL96YT;'D :6=N;W)E(&%N9"!K965P('=A;&MI;F<-"BL "0E] M9B`H<W1D+F9I;&4N:7-D:7(H:F]I;BAT;W`L(&XI*2D-"BL "0D)"61I<G, M?CT ;CL-"BL "0D)96QS90T**R`)"0D);F]N9&ER<R!^/2!N.PT**R`)"7T- M<F5A8V 8F]D>0T**R`)"0EI9B`H<F5S=6QT*0T**R`)"0D)=&AR;W< ;F5W M<EM=(&X[(&1I<G,I('L-"BL "0D)<"`](&IO:6XH=&]P+"!N*3L-"BL "0D) M:68 *"$ <W1D+F9I;&4N:7-L:6YK*'`I*0T**R`)"0D)7W=A;&LH<"P =&]P M;F1I<G,I.PDO+R!G:79E('1O('1H92!F;W)E86-H(&)O9'D-"BL "0D):68 M*')E<W5L="D-"BL "0D)"71H<F]W(&YE=R!?0V5A<V4H<F5S=6QT*3L-"BL M;W5T(&-H87);72P :6YO=70 8VAA<EM=6UTL(&EN;W5T(&-H87);75M=*2!F M:RA?=&]P+"!?=&]P9&]W;BP 7V]N97)R;W(I.PT**R`)"6-A=&-H("A?0V5A M<V4 8RD-"BL "0D)<F5T=7)N(&,N<F5S=6QT.PD-"BL "0D-"BL "0ER971U M<FX ,#L- M>R!T:&ES+G)E<W5L="`](')E<W5L=#L M17)R;W(-"B` >PT*(2` ("` <')I=F%T92!I;7!O<G0 <W1D+F,N<W1D:6\[ M('-T871I8R!C:&%R6UT ;7-G*'5I;G0 97)R8V]D92D-"B$ ("` ('L-"B$ M>PT*(2`)("` (&-A<V4 ,CH)<F5S=6QT(#T (F9I;&4 ;F]T(&9O=6YD(CL) M/2`B86-C97-S(&1E;FEE9"(["6)R96%K.PT*(2`)("` (&-A<V4 -CH)<F5S M=6QT(#T M. ER97-U;'0 /2`B;F]T(&5N;W5G:"!M96UO<GDB.PEB<F5A:SL-"B$ "2` M(2`)("` (&-A<V4 ,34Z"7)E<W5L="`](")I;G9A;&ED(&1R:79E(CL)8G)E M=6QT(#T <F5S=6QT6S` +BX <W1R;&5N*')E<W5L="E=.PT*(2`)"6)R96%K M=F5R<VEO;B`H5VEN9&]W<RD-"B` "7L-"B$ "0DO+R!43T1/.B!S=')E<G)O M<B I(&ES($,X.2!S;R!7:6YD;W=S('=H;W5L9"!B92!A8FQE('1O('5S92!I M="!S=&0N8RYS=&1I;SL-"B$ "0EP<FEV871E(&EM<&]R="!S=&0N<W1R:6YG M.PT*(2`)"0T*(2`)"7-T871I8R!C:&%R6UT ;7-G*'5I;G0 97)R8V]D92D- M<F5S=6QT(#T (F%C8V5S<R!D96YI960B.PEB<F5A:SL-"B$ "0D)8V%S92`V M. ER97-U;'0 /2`B:6YV86QI9"!H86YD;&4B.PEB<F5A:SL-"B$ "0D)8V%S M92`X. ER97-U;'0 /2`B;F]T(&5N;W5G:"!M96UO<GDB.PEB<F5A:SL-"B$ M"0D)8V%S92`Q-#H)<F5S=6QT(#T (F]U="!O9B!M96UO<GDB.PEB<F5A:SL- M"B$ "0D)8V%S92`Q-3H)<F5S=6QT(#T (FEN=F%L:60 9')I=F4B.PEB<F5A M:SL-"B$ "0D)8V%S92`R,3H)<F5S=6QT(#T (FYO="!R96%D>2(["0EB<F5A M:SL-"B$ "0D)8V%S92`S,CH)<F5S=6QT(#T (G-H87)I;F< =FEO;&%T:6]N M<F%M971E<B(["6)R96%K.PT*(2`)"0T*(2`)"0ED969A=6QT. T*(2`)"0ER M<W!R:6YT9BAR97-U;'0L("(E=2(L(&5R<F-O9&4I.PT*(2`)"0ER97-U;'0 M(2`)"7T-"B$ "0D-"B$ "0ER971U<FX <F5S=6QT.PT*(2`)"7T-"B` "7T- M"BL "79E<G-I;VX *&QI;G5X*0T**R`)>PT**R`)"7!R:79A=&4 :6UP;W)T M;U-T<FEN9RAS=')E<G)O<BAC87-T*&EN="EE<G)C;V1E*2DI.PT*(2`)"7T- M8F]S+W5N:71T97-T+F0 +B]U;FET=&5S="YD"BHJ*B`O=&UP+W0W+S$Q-2]D M;7!O<G0 <W1D+G-T9&EO.PT**R!I;7!O<G0 <W1D+G-O8VME=#L- ` end
Mar 02 2005