This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: coffread.c extension for DLLs without debugging symbols


"Christopher Faylor" <cgf@redhat.com> wrote in message
20030104044408.GA7364@redhat.com">news:20030104044408.GA7364@redhat.com...
> On Fri, Jan 03, 2003 at 07:39:31PM -0000, Raoul Gough wrote:
> >Proposed ChangeLog entry, assuming the code is accepted:
> >
> >2003-01-03  Raoul Gough  <RaoulGough@yahoo.co.uk>
> >
> > * coffread.c: Support non-debug export symbols for win32 DLLs
>
> WONDERFUL! I would love to have this code in the windows version of
gdb.
> I've often thought about doing something like this but I've never
had
> the stamina to look into what it would take to do this.
>
> I have a few comments.
>
> 0) The ChangeLog needs more information.  Every new function should
be
> mentioned and changes to specific functions should be documented.

How's this:

2003-01-03  Raoul Gough  <RaoulGough@yahoo.co.uk>

 * coffread.c: Support non-debug export symbols for win32 DLLs.
 (coff_symtab_read): call read_pe_exported_syms iff no symbols
 found and objfile is "pe-i386" or "pei-i386".
 (read_pe_exported_syms): New function.
 (read_pe_section_data): New struct (temporary section info).
 (read_pe_section_index): New function.
 (read_pe_truncate_name): New function.
 (get_section_vmas): New function.
 (add_pe_exported_sym): New function.
 (pe_get16, pe_get32, pe_as32): New functions.

>
> 1) AFAICT, the formatting of the code looks great (a rarity for a
first
> timer) except for an odd comment or two which doesn't end in a "."
as
> required for a complete sentence.  Yeah, yeah, a total nit but hey
we've
> got standards!

OK, I've fixed those comments (new diff attached). Note also that I'd
used strncmp, *and* got the "n" wrong, where I should have used strcmp
anyway.

>
> 2) I wonder if this code should be ifdef'ed somehow for Windows
since
> it will add extra code for no gain on every COFF platform.  Of
course,
> how many of those are there out there?  Maybe this isn't a huge
issue
> after all.

I wondered about that myself. However, wouldn't that suggest putting
the bulk of the code somewhere like win32-nat.c?

>
> 3) objdump -p already has the ability to read and report on the
export
> table.  I wonder if it would be useful (or possible) to generalize
this
> code so that gdb and objdump would be using the same base.  I
haven't

I assumed that since ld did it the hard way, there wasn't any proper
support for this in bfd - maybe that's not true. Obviously, sharing
this kind of code between code bases would be the ideal situation, but
I don't think I've got enough of an overview to do that.

I never new about the -p or --private-headers option to objdump! I
always thought that it should have been able to dump the export table,
but never figured out how to make it do it. That's why I went to the
ld codebase, since I knew that it would have to understand this
information.

> looked too closely but I think the code in question is in
bfd/peicode.h.
> Hmm.  Maybe objdump isn't interested in the kinds of things that gdb
> is, though, like what section a symbol is associated with...
>
> Anyway, I'll be giving this an actual test run in the next couple of
> days.  In the meantime, THANK YOU for doing this.  Even given the
very
> minor above points, I think this will be a great boon for the
Windows
> version of gdb.  This will help enormously in debugging on Windows.

Thanks for the encouragement!

>
> You will definitely need to get an assignment in to the FSF, though,
> unfortunately.  I think jimb at redhat dot com is the person to help
> you with that.

OK. will look into this further.

>
> cgf
>
> P.S.  Assuming that this works as advertised, I assume that you will
> have no objections to my releasing a new version of gdb for windows
> with this patch in it before the patch makes its way into the
official
> gdb repository, right?  I think there are a few users in the cygwin
> mailing list that would appreciate this change.

By all means - please do. You may as well use the new diff for the
comment fixes and the strncmp business.

> Special for spam email harvesters: send email to
aaaspam@sources.redhat.com
> and be permanently blocked from mailing lists at sources.redhat.com.

Alright! Sock it to 'em, redhat!

Regards,
Raoul Gough.


begin 666 coffread.c.diff2
M26YD97@Z(&-O9F9R96%D+F,-"CT]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T-"E)#
M4R!F:6QE.B O8W9S+W-R8R]S<F,O9V1B+V-O9F9R96%D+F,L=@T*<F5T<FEE
M=FEN9R!R979I<VEO;B Q+C,R#0ID:69F("UC("UP("UR,2XS,B!C;V9F<F5A
M9"YC#0HJ*BH@8V]F9G)E860N8PDQ-R!$96,@,C P,B P,#HS.3HP-R M,# P
M, DQ+C,R#0HM+2T@8V]F9G)E860N8PDT($IA;B R,# S(#$V.C(S.C0Y("TP
M,# P#0HJ*BHJ*BHJ*BHJ*BHJ*BH@<W1A=&EC('9O:60@<F5A9%]O;F5?<WEM
M("AS=')U8W0@8V]F9E]S>0T**BHJ(#$W.2PQ.#0@*BHJ*@T*+2TM(#$W.2PQ
M.#8@+2TM+0T*(" )"0D@('-T<G5C="!I;G1E<FYA;%]S>6UE;G0@*BP@=6YI
M;VX@:6YT97)N86Q?875X96YT("HI.PT*(" -"B @<W1A=&EC('9O:60@8V]F
M9E]S>6UT86)?<F5A9" H;&]N9RP@=6YS:6=N960@:6YT+"!S=')U8W0@;V)J
M9FEL92 J*3L-"BL@#0HK('-T871I8R!V;VED(')E861?<&5?97AP;W)T961?
M<WEM<R H<W1R=6-T(&]B:F9I;&4@*F]B:F9I;&4I.PT*(" ,#0H@("\J(%=E
M(&%R92!C86QL960@;VYC92!P97(@<V5C=&EO;B!F<F]M(&-O9F9?<WEM9FEL
M95]R96%D+B @5V4-"B @(" @;F5E9"!T;R!E>&%M:6YE(&5A8V@@<V5C=&EO
M;B!W92!A<F4@<&%S<V5D+"!C:&5C:R!T;R!S964-"BHJ*BHJ*BHJ*BHJ*BHJ
M*B!C;V9F7W-Y;71A8E]R96%D("AL;VYG('-Y;71A8E]O9F9S970L('5N#0HJ
M*BH@,3 X-BPQ,#DQ("HJ*BH-"BTM+2 Q,#@X+#$Q,#D@+2TM+0T*(" )?0T*
M(" @(" @?0T*(" -"BL@("!I9B H*&YS>6US(#T](# I("8F("AP95]F:6QE
M*2D-"BL@(" @('L-"BL@(" @(" @+RH@5V4G=F4@9V]T(&YO(&1E8G5G9VEN
M9R!S>6UB;VQS+"!B=70@:VYO=R!H;W<@=&\@<F5A9"!T:&4@;&ES= T**R )
M(&]F(&5X<&]R=&5D('-Y;6)O;',@*&]N(&DS.#8@870@;&5A<W0I+B!4:&4@
M8V]D92!?;6EG:'1?('=O<FL-"BL@"2!O;B!O=&AE<B!A<F-H:71E8W1U<F5S
M+"!B=70@:&%S;B=T(&)E96X@=&5S=&5D+B!#:&5C:R!T:&4-"BL@"2!T87)G
M970@;F%M92!T;R!B92!O;B!T:&4@<V%F92!S:61E+B J+PT**R -"BL@(" @
M(" @8VAA<B!C;VYS=" J=&%R9V5T(#T@8F9D7V=E=%]T87)G970@*&]B:F9I
M;&4M/F]B9F0I.PT**R -"BL@(" @(" @:68@*"AS=')C;7 @*'1A<F=E="P@
M(G!E+6DS.#8B*2 ]/2 P*0T**R )("!\?" H<W1R8VUP("AT87)G970L(")P
M96DM:3,X-B(I(#T](# I*0T**R )>PT**R )("!R96%D7W!E7V5X<&]R=&5D
M7W-Y;7,@*&]B:F9I;&4I.PT**R )?0T**R @(" @?0T**R -"B @("!I9B H
M;&%S=%]S;W5R8V5?9FEL92D-"B @(" @(&-O9F9?96YD7W-Y;71A8B H;V)J
M9FEL92D[#0H@( T**BHJ*BHJ*BHJ*BHJ*BHJ(')E861?;VYE7W-Y;2 H<F5G
M:7-T97(@<W1R=6-T(&-O9F9?<WEM8F\-"BHJ*B Q,38V+#$Q-S$@*BHJ*@T*
M+2TM(#$Q.#0L,30X." M+2TM#0H@( D@(&)R96%K.PT*(" )?0T*(" @(" @
M?0T**R!]#0HK( P-"BL@+RH@061D:71I;VYA;"!S96-T:6]N(&EN9F]R;6%T
M:6]N(')E8V]R9&5D(&IU<W0@9F]R('1H92!P=7)P;W-E<R!O9@T**R @*B!R
M96%D7W!E7V5X<&]R=&5D7W-Y;7,N("HO#0HK( T**R!S=')U8W0@<F5A9%]P
M95]S96-T:6]N7V1A=&$-"BL@>PT**R @($-/4D5?041$4B!V;6%?;V9F<V5T
M.R @(" @(" @(" @(" @("\J($]F9G-E="!T;R!L;V%D960@861D<F5S<R!O
M9B!S96-T:6]N+BHO#0HK(" @=6YS:6=N960@;&]N9R!R=F%?<W1A<G0[(" @
M(" @(" @(" @+RH@4W1A<G0@;V9F<V5T('=I=&AI;B!T:&4@<&4N("HO#0HK
M(" @=6YS:6=N960@;&]N9R!R=F%?96YD.R @(" @(" @(" @(" @+RH@16YD
M(&]F9G-E="!W:71H:6X@=&AE('!E+B J+PT**R @(&5N=6T@;6EN:6UA;%]S
M>6UB;VQ?='EP92!M<U]T>7!E.R @("\J(%1Y<&4@=&\@87-S:6=N('-Y;6)O
M;',@:6X@<V5C=&EO;BX@*B\-"BL@?3L-"BL@#0HK("-D969I;F4@4$5?4T5#
M5$E/3E])3D1%6%]415A4(" @(" P#0HK("-D969I;F4@4$5?4T5#5$E/3E])
M3D1%6%]$051!(" @(" Q#0HK("-D969I;F4@4$5?4T5#5$E/3E])3D1%6%]"
M4U,@(" @(" R#0HK("-D969I;F4@4$5?4T5#5$E/3E]404),15]325I%(" @
M(" S#0HK("-D969I;F4@4$5?4T5#5$E/3E])3D1%6%])3E9!3$E$("TQ#0HK
M( T**R O*B!'970@=&AE(&EN9&5X(&]F('1H92!N86UE9"!S96-T:6]N(&EN
M(&]U<B!O=VX@87)R87DL('=H:6-H(&-O;G1A:6YS#0HK(" J('1E>'0L(&1A
M=&$@86YD(&)S<R!I;B!T:&%T(&]R9&5R+B!2971U<FX@4$5?4T5#5$E/3E])
M3D1%6%])3E9!3$E$#0HK(" J(&EF('!A<W-E9"!A;B!U;G)E8V]G;FES960@
M<V5C=&EO;B!N86UE+B J+PT**R!S=&%T:6,@:6YT(')E861?<&5?<V5C=&EO
M;E]I;F1E>" H8V]N<W0@8VAA<B J<V5C=&EO;E]N86UE*0T**R![#0HK(" @
M:68@*'-T<F-M<" H<V5C=&EO;E]N86UE+" B+G1E>'0B*2 ]/2 P*0T**R @
M(" @>PT**R @(" @("!R971U<FX@4$5?4T5#5$E/3E])3D1%6%]415A4.PT*
M*R @(" @?0T**R -"BL@("!E;'-E(&EF("AS=')C;7 @*'-E8W1I;VY?;F%M
M92P@(BYD871A(BD@/3T@,"D-"BL@(" @('L-"BL@(" @(" @<F5T=7)N(%!%
M7U-%0U1)3TY?24Y$15A?1$%403L-"BL@(" @('T-"BL@#0HK(" @96QS92!I
M9B H<W1R8VUP("AS96-T:6]N7VYA;64L("(N8G-S(BD@/3T@,"D-"BL@(" @
M('L-"BL@(" @(" @<F5T=7)N(%!%7U-%0U1)3TY?24Y$15A?0E-3.PT**R @
M(" @?0T**R -"BL@("!E;'-E#0HK(" @("![#0HK(" @(" @(')E='5R;B!0
M15]314-424].7TE.1$587TE.5D%,240[#0HK(" @("!]#0HK('T-"BL@#0HK
M("\J(%)E8V]R9"!T:&4@=FER='5A;"!M96UO<GD@861D<F5S<R!O9B!A('-E
M8W1I;VXN("HO#0HK('-T871I8R!V;VED(&=E=%]S96-T:6]N7W9M87,@*&)F
M9" J86)F9"P@87-E8W1I;VX@*G-E8W1P+"!V;VED("IC;VYT97AT*0T**R![
M#0HK(" @<W1R=6-T(')E861?<&5?<V5C=&EO;E]D871A("IS96-T:6]N<R ]
M(&-O;G1E>'0[#0HK(" @:6YT('-E8W1I>" ](')E861?<&5?<V5C=&EO;E]I
M;F1E>" H<V5C=' M/FYA;64I.PT**R -"BL@("!I9B H<V5C=&EX("$](%!%
M7U-%0U1)3TY?24Y$15A?24Y604Q)1"D-"BL@(" @('L-"BL@(" @(" @+RH@
M1&%T82!W:71H:6X@=&AE('-E8W1I;VX@<W1A<G0@870@<G9A7W-T87)T(&EN
M('1H92!P92!A;F0@870-"BL@(" @(" @("H@8F9D7V=E=%]S96-T:6]N7W9M
M82@I('=I=&AI;B!M96UO<GDN(%-T;W)E('1H92!O9F9S970N("HO#0HK( T*
M*R @(" @("!S96-T:6]N<UMS96-T:7A=+G9M85]O9F9S970-"BL@"3T@8F9D
M7V=E=%]S96-T:6]N7W9M82 H86)F9"P@<V5C=' I("T@<V5C=&EO;G-;<V5C
M=&EX72YR=F%?<W1A<G0[#0HK(" @("!]#0HK('T-"BL@# T**R O*B!#<F5A
M=&4@82!M:6YI;6%L('-Y;6)O;"!E;G1R>2!F;W(@86X@97AP;W)T960@<WEM
M8F]L+B J+PT**R!S=&%T:6,@=F]I9 T**R!A9&1?<&5?97AP;W)T961?<WEM
M("AC:&%R("IS>6U?;F%M92P-"BL@"0D@(" @('5N<VEG;F5D(&QO;F<@9G5N
M8U]R=F$L#0HK( D)(" @("!C;VYS="!S=')U8W0@<F5A9%]P95]S96-T:6]N
M7V1A=&$@*G-E8W1I;VY?9&%T82P-"BL@"0D@(" @(&-O;G-T(&-H87(@*F1L
M;%]N86UE+ T**R )"2 @(" @<W1R=6-T(&]B:F9I;&4@*F]B:F9I;&4I#0HK
M('L-"BL@(" O*B!!9&0@=&AE('-T;W)E9"!O9F9S970@=&\@9V5T('1H92!L
M;V%D960@861D<F5S<R!O9B!T:&4@<WEM8F]L+B J+PT**R @($-/4D5?041$
M4B!V;6$@/2!F=6YC7W)V82 K('-E8W1I;VY?9&%T82T^=FUA7V]F9G-E=#L-
M"BL@("!C:&%R("IQ=6%L:69I961?;F%M92 ](# [#0HK(" @:6YT(&1L;%]N
M86UE7VQE;B ]('-T<FQE;B H9&QL7VYA;64I.PT**R @(&EN="!C;W5N=#L-
M"BL@#0HK(" @+RH@1V5N97)A=&4@82 H:&]P969U;&QY('5N:7%U92D@<75A
M;&EF:65D(&YA;64@=7-I;F<@=&AE(&9I<G-T('!A<G0-"BL@(" @*B!O9B!T
M:&4@9&QL(&YA;64L(&4N9RX@2T523D5,,S(A061D071O;4$N(%1H:7,@;6%T
M8VAE<R!T:&4@<W1Y;&4-"BL@(" @*B!U<V5D(&)Y('=I;F1B9R!F<F]M('1H
M92 B36EC<F]S;V9T($1E8G5G9VEN9R!4;V]L<R!F;W(@5VEN9&]W<R(N("HO
M#0HK( T**R @('%U86QI9FEE9%]N86UE(#T@>&UA;&QO8R H9&QL7VYA;65?
M;&5N("L@<W1R;&5N("AS>6U?;F%M92D@*R R*3L-"BL@#0HK(" @<W1R;F-P
M>2 H<75A;&EF:65D7VYA;64L(&1L;%]N86UE+"!D;&Q?;F%M95]L96XI.PT*
M*R @('%U86QI9FEE9%]N86UE6V1L;%]N86UE7VQE;ET@/2 G(2<[#0HK(" @
M<W1R8W!Y("AQ=6%L:69I961?;F%M92 K(&1L;%]N86UE7VQE;B K(#$L('-Y
M;5]N86UE*3L-"BL@#0HK(" @<F5C;W)D7VUI;FEM86Q?<WEM8F]L("AQ=6%L
M:69I961?;F%M92P-"BL@"0D)('9M82P-"BL@"0D)('-E8W1I;VY?9&%T82T^
M;7-?='EP92P-"BL@"0D)(&]B:F9I;&4I.PT**R -"BL@("!X9G)E92 H<75A
M;&EF:65D7VYA;64I.PT**R -"BL@(" O*B!%;G1E<B!T:&4@<&QA:6X@;F%M
M92!A<R!W96QL+"!W:&EC:"!M:6=H="!N;W0@8F4@=6YI<75E+B J+PT**R @
M(')E8V]R9%]M:6YI;6%L7W-Y;6)O;" H<WEM7VYA;64L#0HK( D)"2!V;6$L
M#0HK( D)"2!S96-T:6]N7V1A=&$M/FUS7W1Y<&4L#0HK( D)"2!O8FIF:6QE
M*3L-"BL@?0T**R -"BL@+RH@5')U;F-A=&4@82!D;&Q?;F%M92!A="!T:&4@
M9FER<W0@9&]T(&-H87)A8W1E<BX@*B\-"BL@<W1A=&EC('9O:60@<F5A9%]P
M95]T<G5N8V%T95]N86UE("AC:&%R("ID;&Q?;F%M92D-"BL@>PT**R @('=H
M:6QE("@J9&QL7VYA;64I#0HK(" @("![#0HK(" @(" @(&EF("@H*F1L;%]N
M86UE*2 ]/2 G+B<I#0HK( E[#0HK( D@("ID;&Q?;F%M92 ]("=<,"<[("\J
M('1R=6YC871E<R!A;F0@8V%U<V5S(&QO;W @97AI="X@*B\-"BL@"7T-"BL@
M#0HK(" @(" @(&5L<V4-"BL@"7L-"BL@"2 @*RMD;&Q?;F%M93L-"BL@"7T-
M"BL@(" @('T-"BL@?0T**R ,#0HK("\J($QA<W0M<F5S;W)T('-U<'!O<G0@
M9F]R("AN;VXM9&5B=6<I('-Y;6)O;',@97AP;W)T960@9G)O;2!P;W)T86)L
M90T**R @*B!E>&5C=71A8FQE<RP@=7-E9"!W:&5N('1H97)E(&%R92!N;R!O
M=&AE<B!R96-O9VYI>F5D('-Y;6)O;',N($-O9&4-"BL@("H@;&EF=&5D("AW
M:71H(&UO9&EF:6-A=&EO;G,I(&9R;VT@<&4M9&QL+F,@9G)O;2!L9"X@*B\-
M"BL@#0HK('-T871I8R!U;G-I9VYE9"!I;G0-"BL@<&5?9V5T,38@*&%B9F0L
M('=H97)E*0T**R @(" @(&)F9" J86)F9#L-"BL@(" @("!I;G0@=VAE<F4[
M#0HK('L-"BL@("!U;G-I9VYE9"!C:&%R(&);,ET[#0HK( T**R @(&)F9%]S
M965K("AA8F9D+" H9FEL95]P='(I('=H97)E+"!3145+7U-%5"D[#0HK(" @
M8F9D7V)R96%D("AB+" H8F9D7W-I>F5?='EP92D@,BP@86)F9"D[#0HK(" @
M<F5T=7)N(&);,%T@*R H8ELQ72 \/" X*3L-"BL@?0T**R -"BL@<W1A=&EC
M('5N<VEG;F5D(&EN= T**R!P95]G970S,B H86)F9"P@=VAE<F4I#0HK(" @
M(" @8F9D("IA8F9D.PT**R @(" @(&EN="!W:&5R93L-"BL@>PT**R @('5N
M<VEG;F5D(&-H87(@8ELT73L-"BL@#0HK(" @8F9D7W-E96L@*&%B9F0L("AF
M:6QE7W!T<BD@=VAE<F4L(%-%14M?4T54*3L-"BL@("!B9F1?8G)E860@*&(L
M("AB9F1?<VEZ95]T>7!E*2 T+"!A8F9D*3L-"BL@("!R971U<FX@8ELP72 K
M("AB6S%=(#P\(#@I("L@*&);,ET@/#P@,38I("L@*&);,UT@/#P@,C0I.PT*
M*R!]#0HK( T**R!S=&%T:6,@=6YS:6=N960@:6YT#0HK('!E7V%S,S(@*'!T
M<BD-"BL@(" @("!V;VED("IP='([#0HK('L-"BL@("!U;G-I9VYE9"!C:&%R
M("IB(#T@<'1R.PT**R -"BL@("!R971U<FX@8ELP72 K("AB6S%=(#P\(#@I
M("L@*&);,ET@/#P@,38I("L@*&);,UT@/#P@,C0I.PT**R!]#0HK( T**R O
M*B!296%D('1H92 H;F]N+61E8G5G*2!E>'!O<G0@<WEM8F]L('1A8FQE(&9R
M;VT@82!P;W)T86)L90T**R @*B!E>&5C=71A8FQE+B @;W)I9VEN86QL>2!F
M<F]M('1H92!L9"!F=6YC=&EO;B!P95]I;7!L:65D7VEM<&]R=%]D;&P-"BL@
M("H@9G)O;2!P92UD;&PN8RX@*B\-"BL@#0HK('-T871I8R!V;VED(')E861?
M<&5?97AP;W)T961?<WEM<R H<W1R=6-T(&]B:F9I;&4@*F]B:F9I;&4I#0HK
M('L-"BL@("!B9F0@*F1L;" ](&]B:F9I;&4M/F]B9F0[#0HK(" @=6YS:6=N
M960@;&]N9R!P95]H96%D97)?;V9F<V5T+"!O<'1H9')?;V9S+"!N=6U?96YT
M<FEE<RP@:3L-"BL@("!U;G-I9VYE9"!L;VYG(&5X<&]R=%]R=F$L(&5X<&]R
M=%]S:7IE+"!N<V5C=&EO;G,L('-E8W!T<BP@97AP<'1R.PT**R @('5N<VEG
M;F5D(&QO;F<@97AP7V9U;F-B87-E.PT**R @('5N<VEG;F5D(&-H87(@*F5X
M<&1A=&$L("IE<G9A.PT**R @('5N<VEG;F5D(&QO;F<@;F%M95]R=F%S+"!O
M<F1I;F%L<RP@;F5X<"P@;W)D8F%S93L-"BL@("!C:&%R("ID;&Q?;F%M93L-
M"BL@#0HK(" @+RH@07)R87D@96QE;65N=',@87)E(&9O<B!T97AT+"!D871A
M(&%N9"!B<W,@:6X@=&AA="!O<F1E<@T**R @(" @($EN:71I86QI>F%T:6]N
M('=I=&@@<W1A<G1?<G9A(#X@96YD7W)V82!G=6%R86YT965S('1H870-"BL@
M(" @("!U;G5S960@<V5C=&EO;G,@=V]N)W0@8F4@;6%T8VAE9"X@*B\-"BL@
M("!S=')U8W0@<F5A9%]P95]S96-T:6]N7V1A=&$@<V5C=&EO;E]D871A6U!%
M7U-%0U1)3TY?5$%"3$5?4TE:15T-"BL@(" @(#T@>R![,"P@,2P@,"P@;7-T
M7W1E>'1]+ T**R )>S L(#$L(# L(&US=%]D871A?2P-"BL@"7LP+" Q+" P
M+"!M<W1?8G-S?2!].PT**R -"BL@("!S=')U8W0@8VQE86YU<" J8F%C:U]T
M;R ](# [#0HK( T**R @("\J($=E="!P95]H96%D97(L(&]P=&EO;F%L(&AE
M861E<B!A;F0@;G5M8F5R<R!O9B!E>'!O<G0@96YT<FEE<RX@("HO#0HK(" @
M<&5?:&5A9&5R7V]F9G-E=" ]('!E7V=E=#,R("AD;&PL(#!X,V,I.PT**R @
M(&]P=&AD<E]O9G,@/2!P95]H96%D97)?;V9F<V5T("L@-" K(#(P.PT**R @
M(&YU;5]E;G1R:65S(#T@<&5?9V5T,S(@*&1L;"P@;W!T:&1R7V]F<R K(#DR
M*3L-"BL@#0HK(" @:68@*&YU;5]E;G1R:65S(#P@,2D@+RH@3F\@97AP;W)T
M<RX@("HO#0HK(" @("![#0HK(" @(" @(')E='5R;CL-"BL@(" @('T-"BL@
M#0HK(" @97AP;W)T7W)V82 ]('!E7V=E=#,R("AD;&PL(&]P=&AD<E]O9G,@
M*R Y-BD[#0HK(" @97AP;W)T7W-I>F4@/2!P95]G970S,B H9&QL+"!O<'1H
M9')?;V9S("L@,3 P*3L-"BL@("!N<V5C=&EO;G,@/2!P95]G970Q-B H9&QL
M+"!P95]H96%D97)?;V9F<V5T("L@-" K(#(I.PT**R @('-E8W!T<B ]("AP
M95]H96%D97)?;V9F<V5T("L@-" K(#(P("L-"BL@"2 @("!P95]G970Q-B H
M9&QL+"!P95]H96%D97)?;V9F<V5T("L@-" K(#$V*2D[#0HK(" @97AP<'1R
M(#T@,#L-"BL@#0HK(" @+RH@1V5T('1H92!R=F$@86YD('-I>F4@;V8@=&AE
M(&5X<&]R="!S96-T:6]N+B @*B\@#0HK(" @9F]R("AI(#T@,#L@:2 \(&YS
M96-T:6]N<SL@:2LK*0T**R @(" @>PT**R @(" @("!C:&%R('-N86UE6SA=
M.PT**R @(" @("!U;G-I9VYE9"!L;VYG('-E8W!T<C$@/2!S96-P='(@*R T
M," J(&D[#0HK(" @(" @('5N<VEG;F5D(&QO;F<@=F%D9'(@/2!P95]G970S
M,B H9&QL+"!S96-P='(Q("L@,3(I.PT**R @(" @("!U;G-I9VYE9"!L;VYG
M('9S:7IE(#T@<&5?9V5T,S(@*&1L;"P@<V5C<'1R,2 K(#$V*3L-"BL@(" @
M(" @=6YS:6=N960@;&]N9R!F<'1R(#T@<&5?9V5T,S(@*&1L;"P@<V5C<'1R
M,2 K(#(P*3L-"BL@#0HK(" @(" @(&)F9%]S965K("AD;&PL("AF:6QE7W!T
M<BD@<V5C<'1R,2P@4T5%2U]3150I.PT**R @(" @("!B9F1?8G)E860@*'-N
M86UE+" H8F9D7W-I>F5?='EP92D@."P@9&QL*3L-"BL@#0HK(" @(" @(&EF
M("AV861D<B \/2!E>'!O<G1?<G9A("8F('9A9&1R("L@=G-I>F4@/B!E>'!O
M<G1?<G9A*0T**R )>PT**R )("!E>'!P='(@/2!F<'1R("L@*&5X<&]R=%]R
M=F$@+2!V861D<BD[#0HK( D@(&EF("AE>'!O<G1?<G9A("L@97AP;W)T7W-I
M>F4@/B!V861D<B K('9S:7IE*0T**R )(" @(&5X<&]R=%]S:7IE(#T@=G-I
M>F4@+2 H97AP;W)T7W)V82 M('9A9&1R*3L-"BL@"2 @8G)E86L[#0HK( E]
M#0HK(" @("!]#0HK( T**R @(&EF("AE>'!O<G1?<VEZ92 ]/2 P*0T**R @
M(" @>PT**R @(" @(" O*B!%;7!T>2!E>'!O<G0@=&%B;&4N("HO#0HK(" @
M(" @(')E='5R;CL-"BL@(" @('T-"BL@#0HK(" @+RH@4V-A;B!S96-T:6]N
M<R!A;F0@<W1O<F4@=&AE(&)A<V4@86YD('-I>F4@;V8@=&AE(')E;&5V86YT
M('-E8W1I;VYS+B J+PT**R @(&9O<B H:2 ](# [(&D@/"!N<V5C=&EO;G,[
M(&DK*RD-"BL@(" @('L-"BL@(" @(" @=6YS:6=N960@;&]N9R!S96-P='(Q
M(#T@<V5C<'1R("L@-# @*B!I.PT**R @(" @("!U;G-I9VYE9"!L;VYG('9S
M:7IE(#T@<&5?9V5T,S(@*&1L;"P@<V5C<'1R,2 K(#@I.PT**R @(" @("!U
M;G-I9VYE9"!L;VYG('9A9&1R(#T@<&5?9V5T,S(@*&1L;"P@<V5C<'1R,2 K
M(#$R*3L-"BL@(" @(" @=6YS:6=N960@;&]N9R!F;&%G<R ]('!E7V=E=#,R
M("AD;&PL('-E8W!T<C$@*R S-BD[#0HK(" @(" @(&-H87(@<V5C7VYA;65;
M.5T[#0HK(" @(" @(&EN="!S96-T:7@[#0HK( T**R @(" @("!S96-?;F%M
M95LX72 ]("=<,"<[#0HK(" @(" @(&)F9%]S965K("AD;&PL("AF:6QE7W!T
M<BD@<V5C<'1R,2 K(# L(%-%14M?4T54*3L-"BL@(" @(" @8F9D7V)R96%D
M("AS96-?;F%M92P@*&)F9%]S:7IE7W1Y<&4I(#@L(&1L;"D[#0HK( T**R @
M(" @("!S96-T:7@@/2!R96%D7W!E7W-E8W1I;VY?:6YD97@@*'-E8U]N86UE
M*3L-"BL@#0HK(" @(" @(&EF("AS96-T:7@@(3T@4$5?4T5#5$E/3E])3D1%
M6%])3E9!3$E$*0T**R )>PT**R )("!S96-T:6]N7V1A=&%;<V5C=&EX72YR
M=F%?<W1A<G0@/2!V861D<CL-"BL@"2 @<V5C=&EO;E]D871A6W-E8W1I>%TN
M<G9A7V5N9" ]('9A9&1R("L@=G-I>F4[#0HK( E]#0HK(" @("!]#0HK( T*
M*R @(&5X<&1A=&$@/2 H=6YS:6=N960@8VAA<B J*2!X;6%L;&]C("AE>'!O
M<G1?<VEZ92D[#0HK(" @8F%C:U]T;R ](&UA:V5?8VQE86YU<" H>&9R964L
M(&5X<&1A=&$I.PT**R -"BL@("!B9F1?<V5E:R H9&QL+" H9FEL95]P='(I
M(&5X<'!T<BP@4T5%2U]3150I.PT**R @(&)F9%]B<F5A9" H97AP9&%T82P@
M*&)F9%]S:7IE7W1Y<&4I(&5X<&]R=%]S:7IE+"!D;&PI.PT**R @(&5R=F$@
M/2!E>'!D871A("T@97AP;W)T7W)V83L-"BL@#0HK(" @;F5X<" ]('!E7V%S
M,S(@*&5X<&1A=&$@*R R-"D[#0HK(" @;F%M95]R=F%S(#T@<&5?87,S,B H
M97AP9&%T82 K(#,R*3L-"BL@("!O<F1I;F%L<R ]('!E7V%S,S(@*&5X<&1A
M=&$@*R S-BD[#0HK(" @;W)D8F%S92 ]('!E7V%S,S(@*&5X<&1A=&$@*R Q
M-BD[#0HK(" @97AP7V9U;F-B87-E(#T@<&5?87,S,B H97AP9&%T82 K(#(X
M*3L-"BL@#0HK(" @+RH@57-E(&EN=&5R;F%L(&1L;"!N86UE(&EN<W1E860@
M;V8@9G5L;"!P871H;F%M92X@*B\-"BL@("!D;&Q?;F%M92 ]('!E7V%S,S(@
M*&5X<&1A=&$@*R Q,BD@*R!E<G9A.PT**R -"BL@("!B9F1?;6%P7V]V97)?
M<V5C=&EO;G,@*&1L;"P@9V5T7W-E8W1I;VY?=FUA<RP@<V5C=&EO;E]D871A
M*3L-"BL@#0HK(" @<')I;G1F7V9I;'1E<F5D("@B36EN:6UA;"!S>6UB;VQS
M(&9R;VT@)7,N+BXB+"!D;&Q?;F%M92D[#0HK(" @=W)A<%]H97)E("@B(BD[
M#0HK( T**R @("\J(%1R=6YC871E(&YA;64@870@9FER<W0@9&]T('1O(&%V
M;VED('!R;V)L96US('=I=&@@=&AE('%U86QI9FEE9 T**R @(" @(&YA;65S
M('=E(&=E;F5R871E+B!3:&]U;&0@;6%Y8F4@86QS;R!C;VYV97)T('1O(&%L
M;"!L;W=E<B!C87-E#0HK(" @(" @9F]R(&-O;G9E;FEE;F-E(&]N(%=I;F1O
M=W,N("HO#0HK(" @<F5A9%]P95]T<G5N8V%T95]N86UE("AD;&Q?;F%M92D[
M#0HK( T**R @("\J($ET97)A=&4@=&AR;W5G:"!T:&4@;&ES="!O9B!S>6UB
M;VQS+B @*B\-"BL@("!F;W(@*&D@/2 P.R!I(#P@;F5X<#L@:2LK*0T**R @
M(" @>PT**R @(" @(" O*B!0;VEN=&5R('1O('1H92!N86UE<R!V96-T;W(N
M(" J+PT**R @(" @("!U;G-I9VYE9"!L;VYG(&YA;65?<G9A(#T@<&5?87,S
M,B H97)V82 K(&YA;65?<G9A<R K(&D@*B T*3L-"BL@#0HK(" @(" @("\J
M(%!O:6YT97(@=&\@=&AE(&9U;F-T:6]N(&%D9')E<W,@=F5C=&]R+B @*B\@
M#0HK(" @(" @('5N<VEG;F5D(&QO;F<@9G5N8U]R=F$@/2!P95]A<S,R("AE
M<G9A("L@97AP7V9U;F-B87-E("L@:2 J(#0I.PT**R -"BL@(" @(" @+RH@
M1FEN9"!T:&ES('-Y;6)O;"=S('-E8W1I;VX@:6X@;W5R(&]W;B!A<G)A>2X@
M*B\-"BL@(" @(" @:6YT('-E8W1I>" ](# [#0HK( T**R @(" @("!F;W(@
M*'-E8W1I>" ](# [('-E8W1I>" \(%!%7U-%0U1)3TY?5$%"3$5?4TE:13L@
M*RMS96-T:7@I#0HK( E[#0HK( D@(&EF("@H9G5N8U]R=F$@/CT@<V5C=&EO
M;E]D871A6W-E8W1I>%TN<G9A7W-T87)T*0T**R )(" @(" @)B8@*&9U;F-?
M<G9A(#P@<V5C=&EO;E]D871A6W-E8W1I>%TN<G9A7V5N9"DI#0HK( D@(" @
M>PT**R )(" @(" @861D7W!E7V5X<&]R=&5D7W-Y;2 H97)V82 K(&YA;65?
M<G9A+ T**R )"0D)(" @9G5N8U]R=F$L#0HK( D)"0D@("!S96-T:6]N7V1A
M=&$@*R!S96-T:7@L#0HK( D)"0D@("!D;&Q?;F%M92P-"BL@"0D)"2 @(&]B
M:F9I;&4I.PT**R )(" @(" @8G)E86L[#0HK( D@(" @?0T**R )?0T**R @
M(" @?0T**R -"BL@(" O*B!D:7-C87)D(&5X<&1A=&$N("HO#0HK(" @9&]?
M8VQE86YU<',@*&)A8VM?=&\I.PT*("!]#0H@( P-"B @+RH@4W5P<&]R="!F
=;W(@<W1R:6YG('1A8FQE(&AA;F1L:6YG("HO#0H`
`
end




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]