www.digitalmars.com         C & C++   DMDScript  

D - BUG FIX - thread-windows.zip

reply jhenzie mac.com writes:
Attached is the version(windows) fix for the deadlocking problem. It seems to
work as expected but I would apprciate review.

Cheers

Justin


begin 0644 thread-windows.zip
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
0```"``(`;0```#I#````````
`
end
Sep 26 2003
parent reply "dickl" <dick221z yahoo.com> writes:
Great find !
I've installed your code and things seem to be working just fine (and put
the gc code back to its orginal form)

I've also made a small modification to the thread code to allow threads
which have completed
to be restarted.
    In start()
        if (state != TS.INITIAL)
   becomes
        if (state != TS.INITIAL && state != TS.TERMINATED)

I've come to the conclusion that it is too dangerious to add a killThread
rountine with all the
locking that goes on with the gc routines.

I think thats about it for the thread issues

tnx for your help Justin

<jhenzie mac.com> wrote in message news:bl2enp$2mcg$1 digitaldaemon.com...
 Attached is the version(windows) fix for the deadlocking problem. It seems
to
 work as expected but I would apprciate review.

 Cheers

 Justin
begin 666 thread.d M+R\ 0V]P>7)I9VAT("AC*2 R,# R(&)Y($1I9VET86P 36%R<PHO+R!!;&P M4FEG:'1S(%)E<V5R=F5D"B\O('=R:71T96X 8GD 5V%L=&5R($)R:6=H= HO M+R!W=W<N9&EG:71A;&UA<G,N8V]M" HO+V1E8G5G/71H<F5A9#L*"B\J(#T] M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T](%=I;C,R(#T]/3T]/3T] M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/2 J+PH*=F5R<VEO;B H5VEN,S(I M"GL*"FEM<&]R="!W:6YD;W=S.PH*97AT97)N("A7:6YD;W=S*2!A;&EA<R!U M:6YT(" J<W1D9G I*'9O:60 *BD[" IE>'1E<FX *$,I"B ("!T:')E861? M:&1L(%]B96=I;G1H<F5A9&5X*'9O:60J('-E8W5R:71Y+"!U:6YT('-T86-K M7W-I>F4L" ES=&1F<"!S=&%R=%]A9&1R+"!V;VED*B!A<F=L:7-T+"!U:6YT M(&EN:71F;&%G+ H)=&AR96%D7VED*B!T:')D861D<BD[" H*+R\ 5&AI<R!I M<R!E<75I=F%L96YT('1O(&$ 2$%.1$Q%(&9R;VT =VEN9&]W<RYD"F%L:6%S M($A!3D1,12!T:')E861?:&1L.PH*86QI87, =6EN="!T:')E861?:60[" IC M;&%S<R!4:')E861%<G)O<B Z($5R<F]R"GL*(" ('1H:7,H8VAA<EM=(',I M"B ("![" ES=7!E<B B5&AR96%D(&5R<F]R.B B('X <RD["B ("!]"GT* M"F-L87-S(%1H<F5A9 I["B ("!T:&ES*"D*(" ('L*(" ('T*"B ("!T M:&ES*&EN=" H*F9P*2AV;VED("HI+"!V;VED("IA<F<I"B ("![" ET:&ES M+F9P(#T 9G [" ET:&ES+F%R9R ](&%R9SL*(" ('T*"B ("!T:&ES*&EN M="!D96QE9V%T92 I(&1G*0H (" >PH)=&AI<RYD9R ](&1G.PH (" ?0H* M(" ('1H<F5A9%]H9&P :&1L.PH (" =&AR96%D7VED(&ED.PH (" =F]I M9"H <W1A8VM";W1T;VT[" H (" =F]I9"!S=&%R=" I"B ("![" EI9B H M<W1A=&4 (3T 5%,N24Y)5$E!3" F)B!S=&%T92$]5%,N5$5234E.051%1"D* M"2 ("!E<G)O<B B86QR96%D>2!S=&%R=&5D(BD[" H)<WEN8VAR;VYI>F5D M("AT:')E861,;V-K*0H)>PH)(" (&9O<B H:6YT(&D /2 P.R Q.R!I*RLI M" D (" >PH)"6EF("AI(#T](&%L;%1H<F5A9',N;&5N9W1H*0H)"2 ("!E M<G)O<B B=&]O(&UA;GD =&AR96%D<R(I.PH)"6EF(" A86QL5&AR96%D<UMI M72D*"0E[(" 86QL5&AR96%D<UMI72 ]('1H:7,[" D)(" (&ED>" ](&D[ M" D)(" (&EF("AI(#X](&%L;%1H<F5A9'-$:6TI" D)"6%L;%1H<F5A9'-$ M:6T /2!I("L ,3L*"0D (" 8G)E86L[" D)?0H)(" ('T*"2 ("!N=&AR M96%D<RLK.PH)?0H*"7-T871E(#T 5%,N4E5.3DE.1SL*"6AD;" ](%]B96=I M;G1H<F5A9&5X*&YU;&PL(# L("9T:')E861S=&%R="P =&AI<RP ,"P )FED M*3L*"6EF("AH9&P /3T 8V%S="AT:')E861?:&1L*3 I" E[(" <W1A=&4 M/2!44RY415)-24Y!5$5$.PH)(" (&%L;%1H<F5A9'-;:61X72 ](&YU;&P[ M" D (" :61X(#T +3$[" D (" 97)R;W(H(F9A:6QE9"!T;R!S=&%R="(I M.PH)?0H (" ?0H*(" (&EN="!R=6XH*0H (" >PH):68 *&9P*0H)(" M(')E='5R;B!F<"AA<F<I.PH)96QS92!I9B H9&<I" D (" <F5T=7)N(&1G M*"D["B ("!]" H (" =F]I9"!W86ET*"D*(" ('L*"6EF("AT:&ES(#T] M/2!G9714:&ES*"DI" D (" 97)R;W(H(G=A:70 ;VX <V5L9B(I.PH):68 M*'-T871E(#T](%13+E)53DY)3D<I" E[(" 1%=/4D0 9'<[" H)(" (&1W M(#T 5V%I=$9O<E-I;F=L94]B:F5C="AH9&PL(#!X1D9&1D9&1D8I.PH)?0H M(" ?0H*(" ('9O:60 =V%I="AU:6YT(&UI;&QI<V5C;VYD<RD*(" ('L* M"6EF("AT:&ES(#T]/2!G9714:&ES*"DI" D (" 97)R;W(H(G=A:70 ;VX M<V5L9B(I.PH):68 *'-T871E(#T](%13+E)53DY)3D<I" E[(" 1%=/4D0 M9'<[" H)(" (&1W(#T 5V%I=$9O<E-I;F=L94]B:F5C="AH9&PL(&UI;&QI M<V5C;VYD<RD[" E]"B ("!]" H (" 96YU;2!44PH (" >PH)24Y)5$E! M3"P*"5)53DY)3D<L" E415)-24Y!5$5$"B ("!]" H (" 5%, 9V5T4W1A M=&4H*0H (" >PH)<F5T=7)N('-T871E.PH (" ?0H*(" (&5N=6T 4%)) M3U))5%D*(" ('L*"4E.0U)%05-%+ H)1$5#4D5!4T4L" E)1$Q%+ H)0U)) M5$E#04P*(" ('T*"B ("!V;VED('-E=%!R:6]R:71Y*%!224]22519(' I M"B ("![" EI;G0 ;E!R:6]R:71Y.PH*"7-W:71C:" H<"D*"7L*"2 ("!C M87-E(%!224]22519+DE.0U)%05-%. H)"6Y0<FEO<FET>2 ](%1(4D5!1%]0 M4DE/4DE465]!0D]615].3U)-04P[" D)8G)E86L[" D (" 8V%S92!04DE/ M4DE462Y$14-214%313H*"0EN4')I;W)I='D /2!42%)%041?4%))3U))5%E? M0D5,3U=?3D]234%,.PH)"6)R96%K.PH)(" (&-A<V4 4%))3U))5%DN241, M13H*"0EN4')I;W)I='D /2!42%)%041?4%))3U))5%E?241,13L*"0EB<F5A M:SL*"2 ("!C87-E(%!224]22519+D-2251)0T%,. H)"6Y0<FEO<FET>2 ] M(%1(4D5!1%]04DE/4DE465]424U%7T-2251)0T%,.PH)"6)R96%K.PH)?0H* M"6EF("A39714:')E8610<FEO<FET>2AH9&PL(&Y0<FEO<FET>2D /3T 5$A2 M14%$7U!224]225197T524D]27U)%5%523BD*"2 ("!E<G)O<B B<V5T('!R M:6]R:71Y(BD["B ("!]" H (" <W1A=&EC(%1H<F5A9"!G9714:&ES*"D* M(" ('L*"71H<F5A9%]I9"!I9#L*"51H<F5A9"!R97-U;'0[" H)+R]P<FEN M=&8H(F=E=%1H:7,H*2P 86QL5&AR96%D<T1I;2 ]("5D7&XB+"!A;&Q4:')E M861S1&EM*3L*"7-Y;F-H<F]N:7IE9" H=&AR96%D3&]C:RD*"7L*"2 ("!I M9" ]($=E=$-U<G)E;G14:')E861)9" I.PH)(" (&9O<B H:6YT(&D /2 P M.R!I(#P 86QL5&AR96%D<T1I;3L :2LK*0H)(" ('L*"0E4:')E860 =" ] M(&%L;%1H<F5A9'-;:5T[" D):68 *'0 )B8 :60 /3T ="YI9"D*"0E[" D) M(" (')E='5R;B!T.PH)"7T*"2 ("!]" E]" EP<FEN=&8H(F1I9&XG="!F M:6YD(&ET7&XB*3L*"6%S<V5R="AR97-U;'0I.PH)<F5T=7)N(')E<W5L=#L* M(" ('T*"B ("!S=&%T:6, 5&AR96%D6UT 9V5T06QL*"D*(" ('L*"7)E M='5R;B!A;&Q4:')E861S6S +BX 86QL5&AR96%D<T1I;5T["B ("!]" H M(" =F]I9"!P875S92 I"B ("![(" " EI9B H<W1A=&4 (3T 5%,N4E5. M3DE.1R!\?"!3=7-P96YD5&AR96%D*&AD;"D /3T ,'A&1D9&1D9&1BD*"2 M("!E<G)O<B B8V%N;F]T('!A=7-E(BD["B ("!]" H (" =F]I9"!R97-U M;64H*0H (" >PH):68 *'-T871E("$](%13+E)53DY)3D< ?'P 4F5S=6UE M5&AR96%D*&AD;"D /3T ,'A&1D9&1D9&1BD*"2 ("!E<G)O<B B8V%N;F]T M(')E<W5M92(I.PH (" ?0H*(" ('-T871I8R!V;VED('!A=7-E06QL*"D* M(" ('L*"6EF("AN=&AR96%D<R ^(#$I" E[" D (" 5&AR96%D('1T:&ES M(#T 9V5T5&AI<R I.PH*"2 ("!F;W( *&EN="!I(#T ,#L :2 \(&%L;%1H M<F5A9'-$:6T[(&DK*RD*"2 ("![(" 5&AR96%D('0[" H)"70 /2!A;&Q4 M:')E861S6VE=.PH*"0EI9B H=" F)B!T("$]/2!T=&AI<R F)B!T+G-T871E M(#T](%13+E)53DY)3D<I" D)(" ('0N<&%U<V4H*3L*"2 ("!]" E]"B M("!]" H (" <W1A=&EC('9O:60 <F5S=6UE06QL*"D*(" ('L*"6EF("AN M=&AR96%D<R ^(#$I" E[" D (" 5&AR96%D('1T:&ES(#T 9V5T5&AI<R I M.PH*"2 ("!F;W( *&EN="!I(#T ,#L :2 \(&%L;%1H<F5A9'-$:6T[(&DK M*RD*"2 ("![(" 5&AR96%D('0[" H)"70 /2!A;&Q4:')E861S6VE=.PH) M"6EF("AT("8F('0 (3T]('1T:&ES("8F('0N<W1A=&4 /3T 5%,N4E5.3DE. M1RD*"0D (" ="YR97-U;64H*3L*"2 ("!]" E]"B ("!]" H (" <W1A M=&EC('9O:60 >6EE;&0H*0H (" >PH)4VQE97 H,"D["B ("!]"B (" * M(" ('-T871I8R!U:6YT(&YT:')E861S(#T ,3L*"B <')I=F%T93H*"B M("!S=&%T:6, =6EN="!A;&Q4:')E861S1&EM.PH (" <W1A=&EC($]B:F5C M="!T:')E861,;V-K.PH (" <W1A=&EC(%1H<F5A9%LP>#0P,%T 86QL5&AR M96%D<SL)+R\ ;&5N9W1H(&UA=&-H97, =F%L=64 :6X 0R!R=6YT:6UE" H M(" 5%, <W1A=&4["B ("!I;G0 :61X(#T +3$["0D)+R\ :6YD97 :6YT M;R!A;&Q4:')E861S6UT*"B ("!I;G0 *"IF<"DH=F]I9" J*3L*(" ('9O M:60 *F%R9SL*"B ("!I;G0 9&5L96=A=&4H*2!D9SL*"B ("!V;VED(&5R M<F]R*&-H87);72!M<V<I"B ("![" ET:')O=R!N97< 5&AR96%D17)R;W(H M;7-G*3L*(" ('T*" H (" +RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ* H (" ("H 5&AI<R!I<R!J=7-T(&$ M=W)A<'!E<B!T;R!I;G1E<F9A8V4 8F5T=V5E;B!#(')T;"!A;F0 5&AR96%D M+G)U;B I+ H (" ("HO" H (" 97AT97)N("A7:6YD;W=S*2!S=&%T:6, M=6EN="!T:')E861S=&%R="AV;VED("IP*0H (" >PH)5&AR96%D('0 /2!C M87-T*%1H<F5A9"EP.PH):6YT(')E<W5L=#L*" ED96)U9R H=&AR96%D*2!P M<FEN=&8H(E-T87)T:6YG('1H<F5A9" E9%QN(BP ="YI9' I.PH)="YS=&%C M:T)O='1O;2 ](&]S7W%U97)Y7W-T86-K0F]T=&]M*"D[" ET<GD*"7L*"2 M("!R97-U;'0 /2!T+G)U;B I.PH)?0H)8V%T8V *$]B:F5C="!O*0H)>PH) M(" ('!R:6YT9B B17)R;W(Z("(I.PH)(" (&\N<')I;G0H*3L*"2 ("!R M97-U;'0 /2 Q.PH)?0H*"61E8G5G("AT:')E860I('!R:6YT9B B16YD:6YG M('1H<F5A9" E9%QN(BP ="YI9' I.PH)="YS=&%T92 ](%13+E1%4DU)3D%4 M140[" EA;&Q4:')E861S6W0N:61X72 ](&YU;&P[" ET+FED>" ]("TQ.PH) M;G1H<F5A9',M+3L*"7)E='5R;B!R97-U;'0["B ("!]" H*(" ("\J*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ* H (" ("H 0W)E M871E(&$ 5&AR96%D(&9O<B!G;&]B86P ;6%I;B I+ H (" ("HO" H (" M<W1A=&EC('1H:7,H*0H (" >PH)=&AR96%D3&]C:R ](&YE=R!/8FIE8W0H M*3L*" E4:')E860 =" ](&YE=R!4:')E860H*3L*" ET+G-T871E(#T 5%,N M4E5.3DE.1SL*"70N:60 /2!'971#=7)R96YT5&AR96%D260H*3L*(" (" M("!T+FAD;" ](%1H<F5A9"YG971#=7)R96YT5&AR96%D2&%N9&QE*"D["B M(" (" ="YS=&%C:T)O='1O;2 ](&]S7W%U97)Y7W-T86-K0F]T=&]M*"D[ M" D*(" (" ("!S>6YC:')O;FEZ960 *'1H<F5A9$QO8VLI" E[" D (" M87-S97)T*"%A;&Q4:')E861S6S!=*3L*"2 ("!A;&Q4:')E861S6S!=(#T M=#L*"2 ("!A;&Q4:')E861S1&EM(#T ,3L*"2 ("!T+FED>" ](# [" E] M"B ("!]" H (" ('-T871I8R!^=&AI<R I('L*(" (" (" ($-L;W-E M2&%N9&QE*&%L;%1H<F5A9'-;,%TN:&1L*3L*(" ("!]"B (" (" (" * M(" ("\J* H (" ("H 4F5T=7)N<R!T:&4 :&%N9&QE(&]F('1H92!C=7)R M96YT('1H<F5A9 H (" ("H 5&AE(')E='5R;F5D('1H<F5A9"!H86YD;&4 M:7, 82!W:6YD;W=S(')E<V]U<F-E(&%N9"!M=7-T(&)E(&5X<&QI8VET;'D* M(" (" J(&-L;W-E9"X*(" (" J+PH (" ('-T871I8R!T:')E861?:&1L M(&=E=$-U<G)E;G14:')E861(86YD;&4H*2!["B (" (" (" *(" (" M(" ('1H<F5A9%]H9&P 8W5R<F5N=%1H<F5A9" ]($=E=$-U<G)E;G14:')E M860H*3L*(" (" (" ('1H<F5A9%]H9&P 86-T=6%L5&AR96%D2&%N9&QE M.PH (" (" (" =&AR96%D7VAD;"!C=7)R96YT4')O8V5S<R ](&-A<W0H M=&AR96%D7VAD;"DM,3L*"B (" (" ("!U:6YT(&%C8V5S<R ](&-A<W0H M=6EN="DP># P,# P,# R.PH*(" (" (" ($1U<&QI8V%T94AA;F1L92AC M=7)R96YT4')O8V5S<RP 8W5R<F5N=%1H<F5A9"P 8W5R<F5N=%!R;V-E<W,L M"B (" (" (" (" (" (" (" (" )F%C='5A;%1H<F5A9$AA;F1L M92P 8V%S="AU:6YT*3 L(%12544L(&%C8V5S<RD[" H (" (" (" <F5T M=7)N(&%C='5A;%1H<F5A9$AA;F1L93L*(" ("!]"GT*" HO*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ* H *B!$971E M<FUI;F4 (F)O='1O;2( ;V8 <W1A8VL *&%C='5A;&QY('1H92!T;W ;VX M5VEN,S( <WES=&5M<RDN"B J+PH*=F]I9" J;W-?<75E<GE?<W1A8VM";W1T M;VTH*0I["B ("!A<VT*(" ('L*"6YA:V5D"0D).PH);6]V"45!6"Q&4SHT M"3L*"7)E= D)"3L*(" ('T*?0H*?0H*+RH /3T]/3T]/3T]/3T]/3T]/3T] M/3T]/3T]/3T]/3T]/3T ;&EN=7 /3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T] M/3T]/3T]/3T]("HO" IV97)S:6]N("AL:6YU>"D*>PH*:6UP;W)T(&QI;G5X M.PII;7!O<G0 ;&EN=7AE>'1E<FX[" IA;&EA<R!U:6YT('!T:')E861?=#L* M97AT97)N("A#*2!A;&EA<R!V;VED(" J7U]S:6=H86YD;&5R7W0I*&EN="D[ M" IS=')U8W0 <VEG<V5T7W0*>PH (" =6EN="!?7W9A;%LQ,#(T("\ *# M*B!U:6YT+G-I>F4I73L*?0H*<W1R=6-T('-I9V%C=&EO;E]T"GL*(" (%]? M<VEG:&%N9&QE<E]T('-A7VAA;F1L97(["B ("!S:6=S971?="!S85]M87-K M.PH (" :6YT('-A7V9L86=S.PH (" =F]I9" H*G-A7W)E<W1O<F5R*2 I M.PI]" IS=')U8W0 7W!T:')E861?9F%S=&QO8VL*>PH (" :6YT(%]?<W1A M='5S.PH (" :6YT(%]?<W!I;FQO8VL["GT*"G-T<G5C="!S96U?= I["B M("!?<'1H<F5A9%]F87-T;&]C:R!?7W-E;5]L;V-K.PH (" :6YT(%]?<V5M M7W9A;'5E.PH (" =F]I9"H 7U]S96U?=V%I=&EN9SL*?0H*=6YI='1E<W0* M>PH (" 87-S97)T*'-I9W-E=%]T+G-I>F4 (#T](#$R."D["B ("!A<W-E M<G0H<VEG86-T:6]N7W0N<VEZ92 ]/2 Q-# I.PH (" 87-S97)T*'-E;5]T M+G-I>F4 /3T ,38I.PI]" IE>'1E<FX *$,I"GL*(" (&EN="!P=&AR96%D M7V-R96%T92AP=&AR96%D7W0J+"!V;VED*BP =F]I9"H *"HI*'9O:60J*2P M=F]I9"HI.PH (" :6YT('!T:')E861?:F]I;BAP=&AR96%D7W0L('9O:60J M*BD["B ("!I;G0 <'1H<F5A9%]K:6QL*'!T:')E861?="P :6YT*3L*(" M('!T:')E861?="!P=&AR96%D7W-E;&8H*3L*(" (&EN="!P=&AR96%D7V5Q M=6%L*'!T:')E861?="P <'1H<F5A9%]T*3L*(" (&EN="!S96U?=V%I="AS M96U?="HI.PH (" :6YT('-E;5]I;FET*'-E;5]T*BP :6YT+"!U:6YT*3L* M(" (&EN="!S96U?<&]S="AS96U?="HI.PH (" :6YT('-C:&5D7WEI96QD M*"D["B ("!I;G0 <VEG9FEL;'-E="AS:6=S971?="HI.PH (" :6YT('-I M9V1E;'-E="AS:6=S971?="HL(&EN="D["B ("!I;G0 <VEG86-T:6]N*&EN M="P <VEG86-T:6]N7W0J+"!S:6=A8W1I;VY?="HI.PH (" :6YT('-I9W-U M<W!E;F0H<VEG<V5T7W0J*3L*?0H*8VQA<W, 5&AR96%D17)R;W( .B!%<G)O M< I["B ("!T:&ES*&-H87);72!S*0H (" >PH)<W5P97(H(E1H<F5A9"!E M<G)O<CH (B!^(',I.PH (" ?0I]" IC;&%S<R!4:')E860*>PH (" =&AI M<R I"B ("!["B ("!]" H (" =&AI<RAI;G0 *"IF<"DH=F]I9" J*2P M=F]I9" J87)G*0H (" >PH)=&AI<RYF<" ](&9P.PH)=&AI<RYA<F< /2!A M<F<["B ("!]" H (" =&AI<RAI;G0 9&5L96=A=&4H*2!D9RD*(" ('L* M"71H:7,N9&< /2!D9SL*(" ('T*"B ("!P=&AR96%D7W0 :60["B ("!V M;VED*B!S=&%C:T)O='1O;3L*(" ('9O:60J('-T86-K5&]P.PH*(" ('9O M:60 <W1A<G0H*0H (" >PH):68 *'-T871E("$](%13+DE.251)04P )B8 M<W1A=&4A/513+E1%4DU)3D%4140I" D (" 97)R;W(H(F%L<F5A9'D <W1A M<G1E9"(I.PH*"7-Y;F-H<F]N:7IE9" H=&AR96%D3&]C:RD*"7L*"2 ("!F M;W( *&EN="!I(#T ,#L ,3L :2LK*0H)(" ('L*"0EI9B H:2 ]/2!A;&Q4 M:')E861S+FQE;F=T:"D*"0D (" 97)R;W(H(G1O;R!M86YY('1H<F5A9',B M*3L*"0EI9B H(6%L;%1H<F5A9'-;:5TI" D)>R (&%L;%1H<F5A9'-;:5T M/2!T:&ES.PH)"2 ("!I9' /2!I.PH)"2 ("!I9B H:2 ^/2!A;&Q4:')E M861S1&EM*0H)"0EA;&Q4:')E861S1&EM(#T :2 K(#$[" D)(" (&)R96%K M.PH)"7T*"2 ("!]" D (" ;G1H<F5A9',K*SL*"7T*" ES=&%T92 ](%13 M+E)53DY)3D<[" EI;G0 <F5S=6QT.PH)+R]P<FEN=&8H(F-R96%T:6YG('1H M<F5A9"!X)7A<;B(L('1H:7,I.PH)<F5S=6QT(#T <'1H<F5A9%]C<F5A=&4H M)FED+"!N=6QL+" F=&AR96%D<W1A<G0L('1H:7,I.PH):68 *')E<W5L="D* M"7L ("!S=&%T92 ](%13+E1%4DU)3D%4140[" D (" 86QL5&AR96%D<UMI M9'A=(#T ;G5L;#L*"2 ("!I9' /2 M,3L*"2 ("!E<G)O<B B9F%I;&5D M('1O('-T87)T(BD["2\O($)51SH <VAO=6QD(')E<&]R="!E<G)N;PH)?0H) M+R]P<FEN=&8H(G0 /2!X)7 L(&ED(#T )61<;B(L('1H:7,L(&ED*3L*(" M('T*"B ("!I;G0 <G5N*"D*(" ('L*"6EF("AF<"D*"2 ("!R971U<FX M9G H87)G*3L*"65L<V4 :68 *&1G*0H)(" (')E='5R;B!D9R I.PH (" M?0H*(" ('9O:60 =V%I=" I"B ("![" EI9B H=&AI<R ]/3T 9V5T5&AI M<R I*0H)(" (&5R<F]R*")W86ET(&]N('-E;&8B*3L*"6EF("AS=&%T92 ] M/2!44RY254Y.24Y'*0H)>R (&EN="!R97-U;'0[" D (" =F]I9" J=F%L M=64[" H)(" (')E<W5L=" ]('!T:')E861?:F]I;BAI9"P )G9A;'5E*3L* M"2 ("!I9B H<F5S=6QT*0H)"65R<F]R*")F86EL960 =&\ =V%I="(I.PH) M?0H (" ?0H*(" ('9O:60 =V%I="AU:6YT(&UI;&QI<V5C;VYD<RD*(" M('L*"7=A:70H*3L*"2\K(&YO="!I;7!L96UE;G1E9 H):68 *'1H:7, /3T] M(&=E=%1H:7,H*2D*"2 ("!E<G)O<B B=V%I="!O;B!S96QF(BD[" EI9B H M<W1A=&4 /3T 5%,N4E5.3DE.1RD*"7L ("!$5T]21"!D=SL*" D (" 9'< M/2!786ET1F]R4VEN9VQE3V)J96-T*&AD;"P ;6EL;&ES96-O;F1S*3L*"7T* M"2LO"B ("!]" H (" 96YU;2!44PH (" >PH)24Y)5$E!3"P*"5)53DY) M3D<L" E415)-24Y!5$5$"B ("!]" H (" 5%, 9V5T4W1A=&4H*0H (" M>PH)<F5T=7)N('-T871E.PH (" ?0H*(" (&5N=6T 4%))3U))5%D*(" M('L*"4E.0U)%05-%+ H)1$5#4D5!4T4L" E)1$Q%+ H)0U))5$E#04P*(" M('T*"B ("!V;VED('-E=%!R:6]R:71Y*%!224]22519(' I"B ("![" DO M*R!N;W0 :6UP;&5M96YT960*"6EN="!N4')I;W)I='D[" H)<W=I=&-H("AP M*0H)>PH)(" (&-A<V4 4%))3U))5%DN24Y#4D5!4T4Z" D);E!R:6]R:71Y M(#T 5$A214%$7U!224]225197T%"3U9%7TY/4DU!3#L*"0EB<F5A:SL*"2 M("!C87-E(%!224]22519+D1%0U)%05-%. H)"6Y0<FEO<FET>2 ](%1(4D5! M1%]04DE/4DE465]"14Q/5U].3U)-04P[" D)8G)E86L[" D (" 8V%S92!0 M4DE/4DE462Y)1$Q%. H)"6Y0<FEO<FET>2 ](%1(4D5!1%]04DE/4DE465]) M1$Q%.PH)"6)R96%K.PH)(" (&-A<V4 4%))3U))5%DN0U))5$E#04PZ" D) M;E!R:6]R:71Y(#T 5$A214%$7U!224]225197U1)345?0U))5$E#04P[" D) M8G)E86L[" E]" H):68 *%-E=%1H<F5A9%!R:6]R:71Y*&AD;"P ;E!R:6]R M:71Y*2 ]/2!42%)%041?4%))3U))5%E?15)23U)?4D5455).*0H)(" (&5R M<F]R*")S970 <')I;W)I='DB*3L*"2LO"B ("!]" H (" :6YT(&ES4V5L M9B I"B ("![" DO+W!R:6YT9B B:60 /2 E9"P <V5L9B ]("5D7&XB+"!I M9"P <'1H<F5A9%]S96QF*"DI.PH)<F5T=7)N('!T:')E861?97%U86PH<'1H M<F5A9%]S96QF*"DL(&ED*3L*(" ('T*"B ("!S=&%T:6, 5&AR96%D(&=E M=%1H:7,H*0H (" >PH)<'1H<F5A9%]T(&ED.PH)5&AR96%D(')E<W5L=#L* M" DO+W!R:6YT9B B9V5T5&AI<R I+"!A;&Q4:')E861S1&EM(#T )61<;B(L M(&%L;%1H<F5A9'-$:6TI.PH)<WEN8VAR;VYI>F5D("AT:')E861,;V-K*0H) M>PH)(" (&ED(#T <'1H<F5A9%]S96QF*"D[" D (" +R]P<FEN=&8H(FED M(#T )61<;B(L(&ED*3L*"2 ("!F;W( *&EN="!I(#T ,#L :2 \(&%L;%1H M<F5A9'-$:6T[(&DK*RD*"2 ("![" D)5&AR96%D('0 /2!A;&Q4:')E861S M6VE=.PH)"2\O<')I;G1F*")A;&Q4:')E861S6R5D72 ](' E>"P :60 /2 E M9%QN(BP :2P ="P *'0 /R!T+FED(#H ,"DI.PH)"6EF("AT("8F('!T:')E M861?97%U86PH:60L('0N:60I*0H)"7L*"0D (" <F5T=7)N('0[" D)?0H) M(" ('T*"7T*"7!R:6YT9B B9&ED;B=T(&9I;F0 :71<;B(I.PH)87-S97)T M*')E<W5L="D[" ER971U<FX <F5S=6QT.PH (" ?0H*(" ('-T871I8R!4 M:')E861;72!G971!;&PH*0H (" >PH)<F5T=7)N(&%L;%1H<F5A9'-;," N M+B!A;&Q4:')E861S1&EM73L*(" ('T*"B ("!V;VED('!A=7-E*"D*(" M('L*"6EF("AS=&%T92 ]/2!44RY254Y.24Y'*0H)>R (&EN="!R97-U;'0[ M" H)(" (')E<W5L=" ]('!T:')E861?:VEL;"AI9"P 4TE'55-2,2D[" D M(" :68 *')E<W5L="D*"0EE<G)O<B B8V%N;F]T('!A=7-E(BD[" D (" M96QS90H)"7-E;5]W86ET*"9F;&%G4W5S<&5N9"D["2\O('=A:70 9F]R(&%C M:VYO=VQE9&=E;65N= H)?0H)96QS90H)(" (&5R<F]R*")C86YN;W0 <&%U M<V4B*3L*(" ('T*"B ("!V;VED(')E<W5M92 I"B ("![" EI9B H<W1A M=&4 /3T 5%,N4E5.3DE.1RD*"7L ("!I;G0 <F5S=6QT.PH*"2 ("!R97-U M;'0 /2!P=&AR96%D7VMI;&PH:60L(%-)1U534C(I.PH)(" (&EF("AR97-U M;'0I" D)97)R;W(H(F-A;FYO="!R97-U;64B*3L*"7T*"65L<V4*"2 ("!E M<G)O<B B8V%N;F]T(')E<W5M92(I.PH (" ?0H*(" ('-T871I8R!V;VED M('!A=7-E06QL*"D*(" ('L*"6EF("AN=&AR96%D<R ^(#$I" E[" D (" M5&AR96%D('1T:&ES(#T 9V5T5&AI<R I.PH)(" (&EN="!N<&%U<V4 /2 P M.PH*"2 ("!F;W( *&EN="!I(#T ,#L :2 \(&%L;%1H<F5A9'-$:6T[(&DK M*RD*"2 ("![(" 5&AR96%D('0[" H)"70 /2!A;&Q4:')E861S6VE=.PH) M"6EF("AT("8F('0 (3T]('1T:&ES("8F('0N<W1A=&4 /3T 5%,N4E5.3DE. M1RD*"0E[(" :6YT(')E<W5L=#L*" D)(" (')E<W5L=" ]('!T:')E861? M:VEL;"AT+FED+"!324=54U(Q*3L*"0D (" :68 *')E<W5L="D*"0D)9V5T M5&AI<R I+F5R<F]R*")C86YN;W0 <&%U<V4B*3L*"0D (" 96QS90H)"0EN M<&%U<V4K*SL)+R\ 8V]U;G0 ;V8 <&%U<V5D('1H<F5A9',*"0E]" H)"2\O M(%=A:70 9F]R(&5A8V <&%U<V5D('1H<F5A9"!T;R!A8VMN;W=L961G90H) M"7=H:6QE("AN<&%U<V4M+2D*"0E[" D)(" ('-E;5]W86ET*"9F;&%G4W5S M<&5N9"D[" D)?0H)(" ('T*"7T*(" ('T*"B ("!S=&%T:6, =F]I9"!R M97-U;65!;&PH*0H (" >PH):68 *&YT:')E861S(#X ,2D*"7L*"2 ("!4 M:')E860 ='1H:7, /2!G9714:&ES*"D[" H)(" (&9O<B H:6YT(&D /2 P M.R!I(#P 86QL5&AR96%D<T1I;3L :2LK*0H)(" ('L ("!4:')E860 =#L* M" D)=" ](&%L;%1H<F5A9'-;:5T[" D):68 *'0 )B8 =" A/3T ='1H:7, M)B8 ="YS=&%T92 ]/2!44RY254Y.24Y'*0H)"2 ("!T+G)E<W5M92 I.PH) M(" ('T*"7T*(" ('T*"B ("!S=&%T:6, =F]I9"!Y:65L9" I"B ("![ M" ES8VAE9%]Y:65L9" I.PH (" ?0H*(" ('-T871I8R!U:6YT(&YT:')E M861S(#T ,3L*"B <')I=F%T93H*"B ("!S=&%T:6, =6EN="!A;&Q4:')E M861S1&EM.PH (" <W1A=&EC($]B:F5C="!T:')E861,;V-K.PH (" <W1A M=&EC(%1H<F5A9%LO*E]03U-)6%]42%)%041?5$A214%$4U]-05 J+R Q,#!= M(&%L;%1H<F5A9',["B ("!S=&%T:6, <V5M7W0 9FQA9U-U<W!E;F0[" H M(" 5%, <W1A=&4["B ("!I;G0 :61X(#T +3$["0D)+R\ :6YD97 :6YT M;R!A;&Q4:')E861S6UT*(" (&EN="!F;&%G<R ](# [" H (" :6YT(" J M9G I*'9O:60 *BD["B ("!V;VED("IA<F<[" H (" :6YT(&1E;&5G871E M*"D 9&<[" H (" =F]I9"!E<G)O<BAC:&%R6UT ;7-G*0H (" >PH)=&AR M;W< ;F5W(%1H<F5A9$5R<F]R*&US9RD["B ("!]" H*(" ("\J*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH*(" M(" J(%1H:7, :7, :G5S="!A('=R87!P97( =&\ :6YT97)F86-E(&)E='=E M96X 0R!R=&P 86YD(%1H<F5A9"YR=6XH*2X*(" (" J+PH*(" (&5X=&5R M;B H0RD <W1A=&EC('9O:60 *G1H<F5A9'-T87)T*'9O:60 *G I"B ("![ M" E4:')E860 =" ](&-A<W0H5&AR96%D*7 [" EI;G0 <F5S=6QT.PH*"61E M8G5G("AT:')E860I('!R:6YT9B B4W1A<G1I;F< =&AR96%D(' E>" H)60I M7&XB+"!T+"!T+FED>"D[" H)+R\ 3F5E9"!T;R!S970 ="YI9"!H97)E+"!B M96-A=7-E('1H<F5A9"!I<R!O9F8 86YD(')U;FYI;F<*"2\O(&)E9F]R92!P M=&AR96%D7V-R96%T92 I('-E=', :70N" ET+FED(#T <'1H<F5A9%]S96QF M*"D[" H)="YS=&%C:T)O='1O;2 ](&=E=$534" I.PH)=')Y" E[" D (" M<F5S=6QT(#T ="YR=6XH*3L*"7T*"6-A=&-H("A/8FIE8W0 ;RD*"7L*"2 M("!P<FEN=&8H(D5R<F]R.B B*3L*"2 ("!O+G!R:6YT*"D[" D (" <F5S M=6QT(#T ,3L*"7T*" ED96)U9R H=&AR96%D*2!P<FEN=&8H(D5N9&EN9R!T M:')E860 )61<;B(L('0N:61X*3L*"70N<W1A=&4 /2!44RY415)-24Y!5$5$ M.PH)86QL5&AR96%D<UMT+FED>%T /2!N=6QL.PH)="YI9' /2 M,3L*"6YT M:')E861S+2T[" ER971U<FX *'9O:60J*7)E<W5L=#L*(" ('T*" H (" M+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ"B (" M*B!#<F5A=&4 82!4:')E860 9F]R(&=L;V)A;"!M86EN*"DN"B (" *B\* M"B ("!S=&%T:6, =&AI<R I"B ("![" ET:')E861,;V-K(#T ;F5W($]B M:F5C=" I.PH*"51H<F5A9"!T(#T ;F5W(%1H<F5A9" I.PH*"70N<W1A=&4 M/2!44RY254Y.24Y'.PH)="YI9" ]('!T:')E861?<V5L9B I.PH)="YS=&%C M:T)O='1O;2 ]("AV;VED*BE?7VQI8F-?<W1A8VM?96YD.PH)<WEN8VAR;VYI M>F5D("AT:')E861,;V-K*0H)>PH)(" (&%S<V5R=" A86QL5&AR96%D<ULP M72D[" D (" 86QL5&AR96%D<ULP72 ]('0[" D (" 86QL5&AR96%D<T1I M;2 ](#$[" D (" ="YI9' /2 P.PH)?0H*"2\J($EN<W1A;&P <VEG;F%L M(&AA;F1L97)S('-O('=E(&-A;B!S=7-P96YD+W)E<W5M92!T:')E861S" D M*B\*" EI;G0 <F5S=6QT.PH)<VEG86-T:6]N7W0 <VEG86-T.PH)<F5S=6QT M(#T <VEG9FEL;'-E=" F<VEG86-T+G-A7VUA<VLI.PH):68 *')E<W5L="D* M"2 ("!G;W1O($QF86EL.PH)<VEG86-T+G-A7VAA;F1L97( /2 F<&%U<V5( M86YD;&5R.PH)<F5S=6QT(#T <VEG86-T:6]N*%-)1U534C$L("9S:6=A8W0L M(&YU;&PI.PH):68 *')E<W5L="D*"2 ("!G;W1O($QF86EL.PH)<VEG86-T M+G-A7VAA;F1L97( /2 F<F5S=6UE2&%N9&QE<CL*"7)E<W5L=" ]('-I9V%C M=&EO;BA324=54U(R+" F<VEG86-T+"!N=6QL*3L*"6EF("AR97-U;'0I" D M(" 9V]T;R!,9F%I;#L*" ER97-U;'0 /2!S96U?:6YI=" F9FQA9U-U<W!E M;F0L(# L(# I.PH):68 *')E<W5L="D*"2 ("!G;W1O($QF86EL.PH*"7)E M='5R;CL*"B (" ($QF86EL. H)9V5T5&AI<R I+F5R<F]R*")C86YN;W0 M:6YI=&EA;&EZ92!T:')E861S(BD["B ("!]" H (" +RHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH*(" (" J(%1H:7, 9V5T<R!C86QL M960 =VAE;B!A('1H<F5A9"!G971S(%-)1U534C$N"B (" *B\*"B ("!E M>'1E<FX *$,I('-T871I8R!V;VED('!A=7-E2&%N9&QE<BAI;G0 <VEG*0H M(" >PEI;G0 <F5S=6QT.PH*"2\O(%-A=F4 86QL(')E9VES=&5R<R!O;B!T M:&4 <W1A8VL <V\ =&AE>2=L;"!B92!S8V%N;F5D(&)Y('1H92!'0PH)87-M M" E[" D (" <'5S:&$).PH)?0H*"6%S<V5R="AS:6< /3T 4TE'55-2,2D[ M" ES96U?<&]S=" F9FQA9U-U<W!E;F0I.PH*"7-I9W-E=%]T('-I9VUA<VL[ M" ER97-U;'0 /2!S:6=F:6QL<V5T*"9S:6=M87-K*3L*"6%S<V5R="AR97-U M;'0 /3T ,"D[" ER97-U;'0 /2!S:6=D96QS970H)G-I9VUA<VLL(%-)1U53 M4C(I.PH)87-S97)T*')E<W5L=" ]/2 P*3L*" E4:')E860 =" ](&=E=%1H M:7,H*3L*"70N<W1A8VM4;W /2!G971%4U H*3L*"70N9FQA9W, )CT ?C$[ M" EW:&EL92 H,2D*"7L*"2 ("!S:6=S=7-P96YD*"9S:6=M87-K*3L)+R\ M<W5S<&5N9"!U;G1I;"!324=54U(R" D (" :68 *'0N9FQA9W, )B Q*0D) M+R\ 96YS=7)E(&ET('=A<R!R97-U;65(86YD;&5R*"D*"0EB<F5A:SL*"7T* M" DO+R!297-T;W)E(&%L;"!R96=I<W1E<G,*"6%S;0H)>PH)(" ('!O<&$) M.PH)?0H (" ?0H*(" ("\J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ"B (" *B!4:&ES(&=E=', 8V%L;&5D('=H96X 82!T:')E860 M9V5T<R!324=54U(R+ H (" ("HO" H (" 97AT97)N("A#*2!S=&%T:6, M=F]I9"!R97-U;65(86YD;&5R*&EN="!S:6<I"B ("![" E4:')E860 =" ] M(&=E=%1H:7,H*3L*" ET+F9L86=S('P](#$["B ("!]" H (" <W1A=&EC M('9O:60J(&=E=$534" I"B ("![" EA<VT*"7L ("!N86ME9 D[" D (" J;6]V($5!6"Q%4U ).PH)(" (')E= D).PH)?0H (" ?0I]" H*?0H* ` end
Sep 29 2003
parent jhe <jhe_member pathlink.com> writes:
My pleasure, I am going to start working on some refinements to the threading
model so I will make sure to keep you in the loop.

Justin

In article <bl9l7q$67q$1 digitaldaemon.com>, dickl says...
Great find !
I've installed your code and things seem to be working just fine (and put
the gc code back to its orginal form)

I've also made a small modification to the thread code to allow threads
which have completed
to be restarted.
    In start()
        if (state != TS.INITIAL)
   becomes
        if (state != TS.INITIAL && state != TS.TERMINATED)

I've come to the conclusion that it is too dangerious to add a killThread
rountine with all the
locking that goes on with the gc routines.

I think thats about it for the thread issues

tnx for your help Justin

<jhenzie mac.com> wrote in message news:bl2enp$2mcg$1 digitaldaemon.com...
 Attached is the version(windows) fix for the deadlocking problem. It seems
to
 work as expected but I would apprciate review.

 Cheers

 Justin
begin 666 thread.d M+R\ 0V]P>7)I9VAT("AC*2 R,# R(&)Y($1I9VET86P 36%R<PHO+R!!;&P M4FEG:'1S(%)E<V5R=F5D"B\O('=R:71T96X 8GD 5V%L=&5R($)R:6=H= HO M+R!W=W<N9&EG:71A;&UA<G,N8V]M" HO+V1E8G5G/71H<F5A9#L*"B\J(#T] M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T](%=I;C,R(#T]/3T]/3T] M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/2 J+PH*=F5R<VEO;B H5VEN,S(I M"GL*"FEM<&]R="!W:6YD;W=S.PH*97AT97)N("A7:6YD;W=S*2!A;&EA<R!U M:6YT(" J<W1D9G I*'9O:60 *BD[" IE>'1E<FX *$,I"B ("!T:')E861? M:&1L(%]B96=I;G1H<F5A9&5X*'9O:60J('-E8W5R:71Y+"!U:6YT('-T86-K M7W-I>F4L" ES=&1F<"!S=&%R=%]A9&1R+"!V;VED*B!A<F=L:7-T+"!U:6YT M(&EN:71F;&%G+ H)=&AR96%D7VED*B!T:')D861D<BD[" H*+R\ 5&AI<R!I M<R!E<75I=F%L96YT('1O(&$ 2$%.1$Q%(&9R;VT =VEN9&]W<RYD"F%L:6%S M($A!3D1,12!T:')E861?:&1L.PH*86QI87, =6EN="!T:')E861?:60[" IC M;&%S<R!4:')E861%<G)O<B Z($5R<F]R"GL*(" ('1H:7,H8VAA<EM=(',I M"B ("![" ES=7!E<B B5&AR96%D(&5R<F]R.B B('X <RD["B ("!]"GT* M"F-L87-S(%1H<F5A9 I["B ("!T:&ES*"D*(" ('L*(" ('T*"B ("!T M:&ES*&EN=" H*F9P*2AV;VED("HI+"!V;VED("IA<F<I"B ("![" ET:&ES M+F9P(#T 9G [" ET:&ES+F%R9R ](&%R9SL*(" ('T*"B ("!T:&ES*&EN M="!D96QE9V%T92 I(&1G*0H (" >PH)=&AI<RYD9R ](&1G.PH (" ?0H* M(" ('1H<F5A9%]H9&P :&1L.PH (" =&AR96%D7VED(&ED.PH (" =F]I M9"H <W1A8VM";W1T;VT[" H (" =F]I9"!S=&%R=" I"B ("![" EI9B H M<W1A=&4 (3T 5%,N24Y)5$E!3" F)B!S=&%T92$]5%,N5$5234E.051%1"D* M"2 ("!E<G)O<B B86QR96%D>2!S=&%R=&5D(BD[" H)<WEN8VAR;VYI>F5D M("AT:')E861,;V-K*0H)>PH)(" (&9O<B H:6YT(&D /2 P.R Q.R!I*RLI M" D (" >PH)"6EF("AI(#T](&%L;%1H<F5A9',N;&5N9W1H*0H)"2 ("!E M<G)O<B B=&]O(&UA;GD =&AR96%D<R(I.PH)"6EF(" A86QL5&AR96%D<UMI M72D*"0E[(" 86QL5&AR96%D<UMI72 ]('1H:7,[" D)(" (&ED>" ](&D[ M" D)(" (&EF("AI(#X](&%L;%1H<F5A9'-$:6TI" D)"6%L;%1H<F5A9'-$ M:6T /2!I("L ,3L*"0D (" 8G)E86L[" D)?0H)(" ('T*"2 ("!N=&AR M96%D<RLK.PH)?0H*"7-T871E(#T 5%,N4E5.3DE.1SL*"6AD;" ](%]B96=I M;G1H<F5A9&5X*&YU;&PL(# L("9T:')E861S=&%R="P =&AI<RP ,"P )FED M*3L*"6EF("AH9&P /3T 8V%S="AT:')E861?:&1L*3 I" E[(" <W1A=&4 M/2!44RY415)-24Y!5$5$.PH)(" (&%L;%1H<F5A9'-;:61X72 ](&YU;&P[ M" D (" :61X(#T +3$[" D (" 97)R;W(H(F9A:6QE9"!T;R!S=&%R="(I M.PH)?0H (" ?0H*(" (&EN="!R=6XH*0H (" >PH):68 *&9P*0H)(" M(')E='5R;B!F<"AA<F<I.PH)96QS92!I9B H9&<I" D (" <F5T=7)N(&1G M*"D["B ("!]" H (" =F]I9"!W86ET*"D*(" ('L*"6EF("AT:&ES(#T] M/2!G9714:&ES*"DI" D (" 97)R;W(H(G=A:70 ;VX <V5L9B(I.PH):68 M*'-T871E(#T](%13+E)53DY)3D<I" E[(" 1%=/4D0 9'<[" H)(" (&1W M(#T 5V%I=$9O<E-I;F=L94]B:F5C="AH9&PL(#!X1D9&1D9&1D8I.PH)?0H M(" ?0H*(" ('9O:60 =V%I="AU:6YT(&UI;&QI<V5C;VYD<RD*(" ('L* M"6EF("AT:&ES(#T]/2!G9714:&ES*"DI" D (" 97)R;W(H(G=A:70 ;VX M<V5L9B(I.PH):68 *'-T871E(#T](%13+E)53DY)3D<I" E[(" 1%=/4D0 M9'<[" H)(" (&1W(#T 5V%I=$9O<E-I;F=L94]B:F5C="AH9&PL(&UI;&QI M<V5C;VYD<RD[" E]"B ("!]" H (" 96YU;2!44PH (" >PH)24Y)5$E! M3"P*"5)53DY)3D<L" E415)-24Y!5$5$"B ("!]" H (" 5%, 9V5T4W1A M=&4H*0H (" >PH)<F5T=7)N('-T871E.PH (" ?0H*(" (&5N=6T 4%)) M3U))5%D*(" ('L*"4E.0U)%05-%+ H)1$5#4D5!4T4L" E)1$Q%+ H)0U)) M5$E#04P*(" ('T*"B ("!V;VED('-E=%!R:6]R:71Y*%!224]22519(' I M"B ("![" EI;G0 ;E!R:6]R:71Y.PH*"7-W:71C:" H<"D*"7L*"2 ("!C M87-E(%!224]22519+DE.0U)%05-%. H)"6Y0<FEO<FET>2 ](%1(4D5!1%]0 M4DE/4DE465]!0D]615].3U)-04P[" D)8G)E86L[" D (" 8V%S92!04DE/ M4DE462Y$14-214%313H*"0EN4')I;W)I='D /2!42%)%041?4%))3U))5%E? M0D5,3U=?3D]234%,.PH)"6)R96%K.PH)(" (&-A<V4 4%))3U))5%DN241, M13H*"0EN4')I;W)I='D /2!42%)%041?4%))3U))5%E?241,13L*"0EB<F5A M:SL*"2 ("!C87-E(%!224]22519+D-2251)0T%,. H)"6Y0<FEO<FET>2 ] M(%1(4D5!1%]04DE/4DE465]424U%7T-2251)0T%,.PH)"6)R96%K.PH)?0H* M"6EF("A39714:')E8610<FEO<FET>2AH9&PL(&Y0<FEO<FET>2D /3T 5$A2 M14%$7U!224]225197T524D]27U)%5%523BD*"2 ("!E<G)O<B B<V5T('!R M:6]R:71Y(BD["B ("!]" H (" <W1A=&EC(%1H<F5A9"!G9714:&ES*"D* M(" ('L*"71H<F5A9%]I9"!I9#L*"51H<F5A9"!R97-U;'0[" H)+R]P<FEN M=&8H(F=E=%1H:7,H*2P 86QL5&AR96%D<T1I;2 ]("5D7&XB+"!A;&Q4:')E M861S1&EM*3L*"7-Y;F-H<F]N:7IE9" H=&AR96%D3&]C:RD*"7L*"2 ("!I M9" ]($=E=$-U<G)E;G14:')E861)9" I.PH)(" (&9O<B H:6YT(&D /2 P M.R!I(#P 86QL5&AR96%D<T1I;3L :2LK*0H)(" ('L*"0E4:')E860 =" ] M(&%L;%1H<F5A9'-;:5T[" D):68 *'0 )B8 :60 /3T ="YI9"D*"0E[" D) M(" (')E='5R;B!T.PH)"7T*"2 ("!]" E]" EP<FEN=&8H(F1I9&XG="!F M:6YD(&ET7&XB*3L*"6%S<V5R="AR97-U;'0I.PH)<F5T=7)N(')E<W5L=#L* M(" ('T*"B ("!S=&%T:6, 5&AR96%D6UT 9V5T06QL*"D*(" ('L*"7)E M='5R;B!A;&Q4:')E861S6S +BX 86QL5&AR96%D<T1I;5T["B ("!]" H M(" =F]I9"!P875S92 I"B ("![(" " EI9B H<W1A=&4 (3T 5%,N4E5. M3DE.1R!\?"!3=7-P96YD5&AR96%D*&AD;"D /3T ,'A&1D9&1D9&1BD*"2 M("!E<G)O<B B8V%N;F]T('!A=7-E(BD["B ("!]" H (" =F]I9"!R97-U M;64H*0H (" >PH):68 *'-T871E("$](%13+E)53DY)3D< ?'P 4F5S=6UE M5&AR96%D*&AD;"D /3T ,'A&1D9&1D9&1BD*"2 ("!E<G)O<B B8V%N;F]T M(')E<W5M92(I.PH (" ?0H*(" ('-T871I8R!V;VED('!A=7-E06QL*"D* M(" ('L*"6EF("AN=&AR96%D<R ^(#$I" E[" D (" 5&AR96%D('1T:&ES M(#T 9V5T5&AI<R I.PH*"2 ("!F;W( *&EN="!I(#T ,#L :2 \(&%L;%1H M<F5A9'-$:6T[(&DK*RD*"2 ("![(" 5&AR96%D('0[" H)"70 /2!A;&Q4 M:')E861S6VE=.PH*"0EI9B H=" F)B!T("$]/2!T=&AI<R F)B!T+G-T871E M(#T](%13+E)53DY)3D<I" D)(" ('0N<&%U<V4H*3L*"2 ("!]" E]"B M("!]" H (" <W1A=&EC('9O:60 <F5S=6UE06QL*"D*(" ('L*"6EF("AN M=&AR96%D<R ^(#$I" E[" D (" 5&AR96%D('1T:&ES(#T 9V5T5&AI<R I M.PH*"2 ("!F;W( *&EN="!I(#T ,#L :2 \(&%L;%1H<F5A9'-$:6T[(&DK M*RD*"2 ("![(" 5&AR96%D('0[" H)"70 /2!A;&Q4:')E861S6VE=.PH) M"6EF("AT("8F('0 (3T]('1T:&ES("8F('0N<W1A=&4 /3T 5%,N4E5.3DE. M1RD*"0D (" ="YR97-U;64H*3L*"2 ("!]" E]"B ("!]" H (" <W1A M=&EC('9O:60 >6EE;&0H*0H (" >PH)4VQE97 H,"D["B ("!]"B (" * M(" ('-T871I8R!U:6YT(&YT:')E861S(#T ,3L*"B <')I=F%T93H*"B M("!S=&%T:6, =6EN="!A;&Q4:')E861S1&EM.PH (" <W1A=&EC($]B:F5C M="!T:')E861,;V-K.PH (" <W1A=&EC(%1H<F5A9%LP>#0P,%T 86QL5&AR M96%D<SL)+R\ ;&5N9W1H(&UA=&-H97, =F%L=64 :6X 0R!R=6YT:6UE" H M(" 5%, <W1A=&4["B ("!I;G0 :61X(#T +3$["0D)+R\ :6YD97 :6YT M;R!A;&Q4:')E861S6UT*"B ("!I;G0 *"IF<"DH=F]I9" J*3L*(" ('9O M:60 *F%R9SL*"B ("!I;G0 9&5L96=A=&4H*2!D9SL*"B ("!V;VED(&5R M<F]R*&-H87);72!M<V<I"B ("![" ET:')O=R!N97< 5&AR96%D17)R;W(H M;7-G*3L*(" ('T*" H (" +RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ* H (" ("H 5&AI<R!I<R!J=7-T(&$ M=W)A<'!E<B!T;R!I;G1E<F9A8V4 8F5T=V5E;B!#(')T;"!A;F0 5&AR96%D M+G)U;B I+ H (" ("HO" H (" 97AT97)N("A7:6YD;W=S*2!S=&%T:6, M=6EN="!T:')E861S=&%R="AV;VED("IP*0H (" >PH)5&AR96%D('0 /2!C M87-T*%1H<F5A9"EP.PH):6YT(')E<W5L=#L*" ED96)U9R H=&AR96%D*2!P M<FEN=&8H(E-T87)T:6YG('1H<F5A9" E9%QN(BP ="YI9' I.PH)="YS=&%C M:T)O='1O;2 ](&]S7W%U97)Y7W-T86-K0F]T=&]M*"D[" ET<GD*"7L*"2 M("!R97-U;'0 /2!T+G)U;B I.PH)?0H)8V%T8V *$]B:F5C="!O*0H)>PH) M(" ('!R:6YT9B B17)R;W(Z("(I.PH)(" (&\N<')I;G0H*3L*"2 ("!R M97-U;'0 /2 Q.PH)?0H*"61E8G5G("AT:')E860I('!R:6YT9B B16YD:6YG M('1H<F5A9" E9%QN(BP ="YI9' I.PH)="YS=&%T92 ](%13+E1%4DU)3D%4 M140[" EA;&Q4:')E861S6W0N:61X72 ](&YU;&P[" ET+FED>" ]("TQ.PH) M;G1H<F5A9',M+3L*"7)E='5R;B!R97-U;'0["B ("!]" H*(" ("\J*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ* H (" ("H 0W)E M871E(&$ 5&AR96%D(&9O<B!G;&]B86P ;6%I;B I+ H (" ("HO" H (" M<W1A=&EC('1H:7,H*0H (" >PH)=&AR96%D3&]C:R ](&YE=R!/8FIE8W0H M*3L*" E4:')E860 =" ](&YE=R!4:')E860H*3L*" ET+G-T871E(#T 5%,N M4E5.3DE.1SL*"70N:60 /2!'971#=7)R96YT5&AR96%D260H*3L*(" (" M("!T+FAD;" ](%1H<F5A9"YG971#=7)R96YT5&AR96%D2&%N9&QE*"D["B M(" (" ="YS=&%C:T)O='1O;2 ](&]S7W%U97)Y7W-T86-K0F]T=&]M*"D[ M" D*(" (" ("!S>6YC:')O;FEZ960 *'1H<F5A9$QO8VLI" E[" D (" M87-S97)T*"%A;&Q4:')E861S6S!=*3L*"2 ("!A;&Q4:')E861S6S!=(#T M=#L*"2 ("!A;&Q4:')E861S1&EM(#T ,3L*"2 ("!T+FED>" ](# [" E] M"B ("!]" H (" ('-T871I8R!^=&AI<R I('L*(" (" (" ($-L;W-E M2&%N9&QE*&%L;%1H<F5A9'-;,%TN:&1L*3L*(" ("!]"B (" (" (" * M(" ("\J* H (" ("H 4F5T=7)N<R!T:&4 :&%N9&QE(&]F('1H92!C=7)R M96YT('1H<F5A9 H (" ("H 5&AE(')E='5R;F5D('1H<F5A9"!H86YD;&4 M:7, 82!W:6YD;W=S(')E<V]U<F-E(&%N9"!M=7-T(&)E(&5X<&QI8VET;'D* M(" (" J(&-L;W-E9"X*(" (" J+PH (" ('-T871I8R!T:')E861?:&1L M(&=E=$-U<G)E;G14:')E861(86YD;&4H*2!["B (" (" (" *(" (" M(" ('1H<F5A9%]H9&P 8W5R<F5N=%1H<F5A9" ]($=E=$-U<G)E;G14:')E M860H*3L*(" (" (" ('1H<F5A9%]H9&P 86-T=6%L5&AR96%D2&%N9&QE M.PH (" (" (" =&AR96%D7VAD;"!C=7)R96YT4')O8V5S<R ](&-A<W0H M=&AR96%D7VAD;"DM,3L*"B (" (" ("!U:6YT(&%C8V5S<R ](&-A<W0H M=6EN="DP># P,# P,# R.PH*(" (" (" ($1U<&QI8V%T94AA;F1L92AC M=7)R96YT4')O8V5S<RP 8W5R<F5N=%1H<F5A9"P 8W5R<F5N=%!R;V-E<W,L M"B (" (" (" (" (" (" (" (" )F%C='5A;%1H<F5A9$AA;F1L M92P 8V%S="AU:6YT*3 L(%12544L(&%C8V5S<RD[" H (" (" (" <F5T M=7)N(&%C='5A;%1H<F5A9$AA;F1L93L*(" ("!]"GT*" HO*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ* H *B!$971E M<FUI;F4 (F)O='1O;2( ;V8 <W1A8VL *&%C='5A;&QY('1H92!T;W ;VX M5VEN,S( <WES=&5M<RDN"B J+PH*=F]I9" J;W-?<75E<GE?<W1A8VM";W1T M;VTH*0I["B ("!A<VT*(" ('L*"6YA:V5D"0D).PH);6]V"45!6"Q&4SHT M"3L*"7)E= D)"3L*(" ('T*?0H*?0H*+RH /3T]/3T]/3T]/3T]/3T]/3T] M/3T]/3T]/3T]/3T]/3T ;&EN=7 /3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T] M/3T]/3T]/3T]("HO" IV97)S:6]N("AL:6YU>"D*>PH*:6UP;W)T(&QI;G5X M.PII;7!O<G0 ;&EN=7AE>'1E<FX[" IA;&EA<R!U:6YT('!T:')E861?=#L* M97AT97)N("A#*2!A;&EA<R!V;VED(" J7U]S:6=H86YD;&5R7W0I*&EN="D[ M" IS=')U8W0 <VEG<V5T7W0*>PH (" =6EN="!?7W9A;%LQ,#(T("\ *# M*B!U:6YT+G-I>F4I73L*?0H*<W1R=6-T('-I9V%C=&EO;E]T"GL*(" (%]? M<VEG:&%N9&QE<E]T('-A7VAA;F1L97(["B ("!S:6=S971?="!S85]M87-K M.PH (" :6YT('-A7V9L86=S.PH (" =F]I9" H*G-A7W)E<W1O<F5R*2 I M.PI]" IS=')U8W0 7W!T:')E861?9F%S=&QO8VL*>PH (" :6YT(%]?<W1A M='5S.PH (" :6YT(%]?<W!I;FQO8VL["GT*"G-T<G5C="!S96U?= I["B M("!?<'1H<F5A9%]F87-T;&]C:R!?7W-E;5]L;V-K.PH (" :6YT(%]?<V5M M7W9A;'5E.PH (" =F]I9"H 7U]S96U?=V%I=&EN9SL*?0H*=6YI='1E<W0* M>PH (" 87-S97)T*'-I9W-E=%]T+G-I>F4 (#T](#$R."D["B ("!A<W-E M<G0H<VEG86-T:6]N7W0N<VEZ92 ]/2 Q-# I.PH (" 87-S97)T*'-E;5]T M+G-I>F4 /3T ,38I.PI]" IE>'1E<FX *$,I"GL*(" (&EN="!P=&AR96%D M7V-R96%T92AP=&AR96%D7W0J+"!V;VED*BP =F]I9"H *"HI*'9O:60J*2P M=F]I9"HI.PH (" :6YT('!T:')E861?:F]I;BAP=&AR96%D7W0L('9O:60J M*BD["B ("!I;G0 <'1H<F5A9%]K:6QL*'!T:')E861?="P :6YT*3L*(" M('!T:')E861?="!P=&AR96%D7W-E;&8H*3L*(" (&EN="!P=&AR96%D7V5Q M=6%L*'!T:')E861?="P <'1H<F5A9%]T*3L*(" (&EN="!S96U?=V%I="AS M96U?="HI.PH (" :6YT('-E;5]I;FET*'-E;5]T*BP :6YT+"!U:6YT*3L* M(" (&EN="!S96U?<&]S="AS96U?="HI.PH (" :6YT('-C:&5D7WEI96QD M*"D["B ("!I;G0 <VEG9FEL;'-E="AS:6=S971?="HI.PH (" :6YT('-I M9V1E;'-E="AS:6=S971?="HL(&EN="D["B ("!I;G0 <VEG86-T:6]N*&EN M="P <VEG86-T:6]N7W0J+"!S:6=A8W1I;VY?="HI.PH (" :6YT('-I9W-U M<W!E;F0H<VEG<V5T7W0J*3L*?0H*8VQA<W, 5&AR96%D17)R;W( .B!%<G)O M< I["B ("!T:&ES*&-H87);72!S*0H (" >PH)<W5P97(H(E1H<F5A9"!E M<G)O<CH (B!^(',I.PH (" ?0I]" IC;&%S<R!4:')E860*>PH (" =&AI M<R I"B ("!["B ("!]" H (" =&AI<RAI;G0 *"IF<"DH=F]I9" J*2P M=F]I9" J87)G*0H (" >PH)=&AI<RYF<" ](&9P.PH)=&AI<RYA<F< /2!A M<F<["B ("!]" H (" =&AI<RAI;G0 9&5L96=A=&4H*2!D9RD*(" ('L* M"71H:7,N9&< /2!D9SL*(" ('T*"B ("!P=&AR96%D7W0 :60["B ("!V M;VED*B!S=&%C:T)O='1O;3L*(" ('9O:60J('-T86-K5&]P.PH*(" ('9O M:60 <W1A<G0H*0H (" >PH):68 *'-T871E("$](%13+DE.251)04P )B8 M<W1A=&4A/513+E1%4DU)3D%4140I" D (" 97)R;W(H(F%L<F5A9'D <W1A M<G1E9"(I.PH*"7-Y;F-H<F]N:7IE9" H=&AR96%D3&]C:RD*"7L*"2 ("!F M;W( *&EN="!I(#T ,#L ,3L :2LK*0H)(" ('L*"0EI9B H:2 ]/2!A;&Q4 M:')E861S+FQE;F=T:"D*"0D (" 97)R;W(H(G1O;R!M86YY('1H<F5A9',B M*3L*"0EI9B H(6%L;%1H<F5A9'-;:5TI" D)>R (&%L;%1H<F5A9'-;:5T M/2!T:&ES.PH)"2 ("!I9' /2!I.PH)"2 ("!I9B H:2 ^/2!A;&Q4:')E M861S1&EM*0H)"0EA;&Q4:')E861S1&EM(#T :2 K(#$[" D)(" (&)R96%K M.PH)"7T*"2 ("!]" D (" ;G1H<F5A9',K*SL*"7T*" ES=&%T92 ](%13 M+E)53DY)3D<[" EI;G0 <F5S=6QT.PH)+R]P<FEN=&8H(F-R96%T:6YG('1H M<F5A9"!X)7A<;B(L('1H:7,I.PH)<F5S=6QT(#T <'1H<F5A9%]C<F5A=&4H M)FED+"!N=6QL+" F=&AR96%D<W1A<G0L('1H:7,I.PH):68 *')E<W5L="D* M"7L ("!S=&%T92 ](%13+E1%4DU)3D%4140[" D (" 86QL5&AR96%D<UMI M9'A=(#T ;G5L;#L*"2 ("!I9' /2 M,3L*"2 ("!E<G)O<B B9F%I;&5D M('1O('-T87)T(BD["2\O($)51SH <VAO=6QD(')E<&]R="!E<G)N;PH)?0H) M+R]P<FEN=&8H(G0 /2!X)7 L(&ED(#T )61<;B(L('1H:7,L(&ED*3L*(" M('T*"B ("!I;G0 <G5N*"D*(" ('L*"6EF("AF<"D*"2 ("!R971U<FX M9G H87)G*3L*"65L<V4 :68 *&1G*0H)(" (')E='5R;B!D9R I.PH (" M?0H*(" ('9O:60 =V%I=" I"B ("![" EI9B H=&AI<R ]/3T 9V5T5&AI M<R I*0H)(" (&5R<F]R*")W86ET(&]N('-E;&8B*3L*"6EF("AS=&%T92 ] M/2!44RY254Y.24Y'*0H)>R (&EN="!R97-U;'0[" D (" =F]I9" J=F%L M=64[" H)(" (')E<W5L=" ]('!T:')E861?:F]I;BAI9"P )G9A;'5E*3L* M"2 ("!I9B H<F5S=6QT*0H)"65R<F]R*")F86EL960 =&\ =V%I="(I.PH) M?0H (" ?0H*(" ('9O:60 =V%I="AU:6YT(&UI;&QI<V5C;VYD<RD*(" M('L*"7=A:70H*3L*"2\K(&YO="!I;7!L96UE;G1E9 H):68 *'1H:7, /3T] M(&=E=%1H:7,H*2D*"2 ("!E<G)O<B B=V%I="!O;B!S96QF(BD[" EI9B H M<W1A=&4 /3T 5%,N4E5.3DE.1RD*"7L ("!$5T]21"!D=SL*" D (" 9'< M/2!786ET1F]R4VEN9VQE3V)J96-T*&AD;"P ;6EL;&ES96-O;F1S*3L*"7T* M"2LO"B ("!]" H (" 96YU;2!44PH (" >PH)24Y)5$E!3"P*"5)53DY) M3D<L" E415)-24Y!5$5$"B ("!]" H (" 5%, 9V5T4W1A=&4H*0H (" M>PH)<F5T=7)N('-T871E.PH (" ?0H*(" (&5N=6T 4%))3U))5%D*(" M('L*"4E.0U)%05-%+ H)1$5#4D5!4T4L" E)1$Q%+ H)0U))5$E#04P*(" M('T*"B ("!V;VED('-E=%!R:6]R:71Y*%!224]22519(' I"B ("![" DO M*R!N;W0 :6UP;&5M96YT960*"6EN="!N4')I;W)I='D[" H)<W=I=&-H("AP M*0H)>PH)(" (&-A<V4 4%))3U))5%DN24Y#4D5!4T4Z" D);E!R:6]R:71Y M(#T 5$A214%$7U!224]225197T%"3U9%7TY/4DU!3#L*"0EB<F5A:SL*"2 M("!C87-E(%!224]22519+D1%0U)%05-%. H)"6Y0<FEO<FET>2 ](%1(4D5! M1%]04DE/4DE465]"14Q/5U].3U)-04P[" D)8G)E86L[" D (" 8V%S92!0 M4DE/4DE462Y)1$Q%. H)"6Y0<FEO<FET>2 ](%1(4D5!1%]04DE/4DE465]) M1$Q%.PH)"6)R96%K.PH)(" (&-A<V4 4%))3U))5%DN0U))5$E#04PZ" D) M;E!R:6]R:71Y(#T 5$A214%$7U!224]225197U1)345?0U))5$E#04P[" D) M8G)E86L[" E]" H):68 *%-E=%1H<F5A9%!R:6]R:71Y*&AD;"P ;E!R:6]R M:71Y*2 ]/2!42%)%041?4%))3U))5%E?15)23U)?4D5455).*0H)(" (&5R M<F]R*")S970 <')I;W)I='DB*3L*"2LO"B ("!]" H (" :6YT(&ES4V5L M9B I"B ("![" DO+W!R:6YT9B B:60 /2 E9"P <V5L9B ]("5D7&XB+"!I M9"P <'1H<F5A9%]S96QF*"DI.PH)<F5T=7)N('!T:')E861?97%U86PH<'1H M<F5A9%]S96QF*"DL(&ED*3L*(" ('T*"B ("!S=&%T:6, 5&AR96%D(&=E M=%1H:7,H*0H (" >PH)<'1H<F5A9%]T(&ED.PH)5&AR96%D(')E<W5L=#L* M" DO+W!R:6YT9B B9V5T5&AI<R I+"!A;&Q4:')E861S1&EM(#T )61<;B(L M(&%L;%1H<F5A9'-$:6TI.PH)<WEN8VAR;VYI>F5D("AT:')E861,;V-K*0H) M>PH)(" (&ED(#T <'1H<F5A9%]S96QF*"D[" D (" +R]P<FEN=&8H(FED M(#T )61<;B(L(&ED*3L*"2 ("!F;W( *&EN="!I(#T ,#L :2 \(&%L;%1H M<F5A9'-$:6T[(&DK*RD*"2 ("![" D)5&AR96%D('0 /2!A;&Q4:')E861S M6VE=.PH)"2\O<')I;G1F*")A;&Q4:')E861S6R5D72 ](' E>"P :60 /2 E M9%QN(BP :2P ="P *'0 /R!T+FED(#H ,"DI.PH)"6EF("AT("8F('!T:')E M861?97%U86PH:60L('0N:60I*0H)"7L*"0D (" <F5T=7)N('0[" D)?0H) M(" ('T*"7T*"7!R:6YT9B B9&ED;B=T(&9I;F0 :71<;B(I.PH)87-S97)T M*')E<W5L="D[" ER971U<FX <F5S=6QT.PH (" ?0H*(" ('-T871I8R!4 M:')E861;72!G971!;&PH*0H (" >PH)<F5T=7)N(&%L;%1H<F5A9'-;," N M+B!A;&Q4:')E861S1&EM73L*(" ('T*"B ("!V;VED('!A=7-E*"D*(" M('L*"6EF("AS=&%T92 ]/2!44RY254Y.24Y'*0H)>R (&EN="!R97-U;'0[ M" H)(" (')E<W5L=" ]('!T:')E861?:VEL;"AI9"P 4TE'55-2,2D[" D M(" :68 *')E<W5L="D*"0EE<G)O<B B8V%N;F]T('!A=7-E(BD[" D (" M96QS90H)"7-E;5]W86ET*"9F;&%G4W5S<&5N9"D["2\O('=A:70 9F]R(&%C M:VYO=VQE9&=E;65N= H)?0H)96QS90H)(" (&5R<F]R*")C86YN;W0 <&%U M<V4B*3L*(" ('T*"B ("!V;VED(')E<W5M92 I"B ("![" EI9B H<W1A M=&4 /3T 5%,N4E5.3DE.1RD*"7L ("!I;G0 <F5S=6QT.PH*"2 ("!R97-U M;'0 /2!P=&AR96%D7VMI;&PH:60L(%-)1U534C(I.PH)(" (&EF("AR97-U M;'0I" D)97)R;W(H(F-A;FYO="!R97-U;64B*3L*"7T*"65L<V4*"2 ("!E M<G)O<B B8V%N;F]T(')E<W5M92(I.PH (" ?0H*(" ('-T871I8R!V;VED M('!A=7-E06QL*"D*(" ('L*"6EF("AN=&AR96%D<R ^(#$I" E[" D (" M5&AR96%D('1T:&ES(#T 9V5T5&AI<R I.PH)(" (&EN="!N<&%U<V4 /2 P M.PH*"2 ("!F;W( *&EN="!I(#T ,#L :2 \(&%L;%1H<F5A9'-$:6T[(&DK M*RD*"2 ("![(" 5&AR96%D('0[" H)"70 /2!A;&Q4:')E861S6VE=.PH) M"6EF("AT("8F('0 (3T]('1T:&ES("8F('0N<W1A=&4 /3T 5%,N4E5.3DE. M1RD*"0E[(" :6YT(')E<W5L=#L*" D)(" (')E<W5L=" ]('!T:')E861? M:VEL;"AT+FED+"!324=54U(Q*3L*"0D (" :68 *')E<W5L="D*"0D)9V5T M5&AI<R I+F5R<F]R*")C86YN;W0 <&%U<V4B*3L*"0D (" 96QS90H)"0EN M<&%U<V4K*SL)+R\ 8V]U;G0 ;V8 <&%U<V5D('1H<F5A9',*"0E]" H)"2\O M(%=A:70 9F]R(&5A8V <&%U<V5D('1H<F5A9"!T;R!A8VMN;W=L961G90H) M"7=H:6QE("AN<&%U<V4M+2D*"0E[" D)(" ('-E;5]W86ET*"9F;&%G4W5S M<&5N9"D[" D)?0H)(" ('T*"7T*(" ('T*"B ("!S=&%T:6, =F]I9"!R M97-U;65!;&PH*0H (" >PH):68 *&YT:')E861S(#X ,2D*"7L*"2 ("!4 M:')E860 ='1H:7, /2!G9714:&ES*"D[" H)(" (&9O<B H:6YT(&D /2 P M.R!I(#P 86QL5&AR96%D<T1I;3L :2LK*0H)(" ('L ("!4:')E860 =#L* M" D)=" ](&%L;%1H<F5A9'-;:5T[" D):68 *'0 )B8 =" A/3T ='1H:7, M)B8 ="YS=&%T92 ]/2!44RY254Y.24Y'*0H)"2 ("!T+G)E<W5M92 I.PH) M(" ('T*"7T*(" ('T*"B ("!S=&%T:6, =F]I9"!Y:65L9" I"B ("![ M" ES8VAE9%]Y:65L9" I.PH (" ?0H*(" ('-T871I8R!U:6YT(&YT:')E M861S(#T ,3L*"B <')I=F%T93H*"B ("!S=&%T:6, =6EN="!A;&Q4:')E M861S1&EM.PH (" <W1A=&EC($]B:F5C="!T:')E861,;V-K.PH (" <W1A M=&EC(%1H<F5A9%LO*E]03U-)6%]42%)%041?5$A214%$4U]-05 J+R Q,#!= M(&%L;%1H<F5A9',["B ("!S=&%T:6, <V5M7W0 9FQA9U-U<W!E;F0[" H M(" 5%, <W1A=&4["B ("!I;G0 :61X(#T +3$["0D)+R\ :6YD97 :6YT M;R!A;&Q4:')E861S6UT*(" (&EN="!F;&%G<R ](# [" H (" :6YT(" J M9G I*'9O:60 *BD["B ("!V;VED("IA<F<[" H (" :6YT(&1E;&5G871E M*"D 9&<[" H (" =F]I9"!E<G)O<BAC:&%R6UT ;7-G*0H (" >PH)=&AR M;W< ;F5W(%1H<F5A9$5R<F]R*&US9RD["B ("!]" H*(" ("\J*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH*(" M(" J(%1H:7, :7, :G5S="!A('=R87!P97( =&\ :6YT97)F86-E(&)E='=E M96X 0R!R=&P 86YD(%1H<F5A9"YR=6XH*2X*(" (" J+PH*(" (&5X=&5R M;B H0RD <W1A=&EC('9O:60 *G1H<F5A9'-T87)T*'9O:60 *G I"B ("![ M" E4:')E860 =" ](&-A<W0H5&AR96%D*7 [" EI;G0 <F5S=6QT.PH*"61E M8G5G("AT:')E860I('!R:6YT9B B4W1A<G1I;F< =&AR96%D(' E>" H)60I M7&XB+"!T+"!T+FED>"D[" H)+R\ 3F5E9"!T;R!S970 ="YI9"!H97)E+"!B M96-A=7-E('1H<F5A9"!I<R!O9F8 86YD(')U;FYI;F<*"2\O(&)E9F]R92!P M=&AR96%D7V-R96%T92 I('-E=', :70N" ET+FED(#T <'1H<F5A9%]S96QF M*"D[" H)="YS=&%C:T)O='1O;2 ](&=E=$534" I.PH)=')Y" E[" D (" M<F5S=6QT(#T ="YR=6XH*3L*"7T*"6-A=&-H("A/8FIE8W0 ;RD*"7L*"2 M("!P<FEN=&8H(D5R<F]R.B B*3L*"2 ("!O+G!R:6YT*"D[" D (" <F5S M=6QT(#T ,3L*"7T*" ED96)U9R H=&AR96%D*2!P<FEN=&8H(D5N9&EN9R!T M:')E860 )61<;B(L('0N:61X*3L*"70N<W1A=&4 /2!44RY415)-24Y!5$5$ M.PH)86QL5&AR96%D<UMT+FED>%T /2!N=6QL.PH)="YI9' /2 M,3L*"6YT M:')E861S+2T[" ER971U<FX *'9O:60J*7)E<W5L=#L*(" ('T*" H (" M+RHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ"B (" M*B!#<F5A=&4 82!4:')E860 9F]R(&=L;V)A;"!M86EN*"DN"B (" *B\* M"B ("!S=&%T:6, =&AI<R I"B ("![" ET:')E861,;V-K(#T ;F5W($]B M:F5C=" I.PH*"51H<F5A9"!T(#T ;F5W(%1H<F5A9" I.PH*"70N<W1A=&4 M/2!44RY254Y.24Y'.PH)="YI9" ]('!T:')E861?<V5L9B I.PH)="YS=&%C M:T)O='1O;2 ]("AV;VED*BE?7VQI8F-?<W1A8VM?96YD.PH)<WEN8VAR;VYI M>F5D("AT:')E861,;V-K*0H)>PH)(" (&%S<V5R=" A86QL5&AR96%D<ULP M72D[" D (" 86QL5&AR96%D<ULP72 ]('0[" D (" 86QL5&AR96%D<T1I M;2 ](#$[" D (" ="YI9' /2 P.PH)?0H*"2\J($EN<W1A;&P <VEG;F%L M(&AA;F1L97)S('-O('=E(&-A;B!S=7-P96YD+W)E<W5M92!T:')E861S" D M*B\*" EI;G0 <F5S=6QT.PH)<VEG86-T:6]N7W0 <VEG86-T.PH)<F5S=6QT M(#T <VEG9FEL;'-E=" F<VEG86-T+G-A7VUA<VLI.PH):68 *')E<W5L="D* M"2 ("!G;W1O($QF86EL.PH)<VEG86-T+G-A7VAA;F1L97( /2 F<&%U<V5( M86YD;&5R.PH)<F5S=6QT(#T <VEG86-T:6]N*%-)1U534C$L("9S:6=A8W0L M(&YU;&PI.PH):68 *')E<W5L="D*"2 ("!G;W1O($QF86EL.PH)<VEG86-T M+G-A7VAA;F1L97( /2 F<F5S=6UE2&%N9&QE<CL*"7)E<W5L=" ]('-I9V%C M=&EO;BA324=54U(R+" F<VEG86-T+"!N=6QL*3L*"6EF("AR97-U;'0I" D M(" 9V]T;R!,9F%I;#L*" ER97-U;'0 /2!S96U?:6YI=" F9FQA9U-U<W!E M;F0L(# L(# I.PH):68 *')E<W5L="D*"2 ("!G;W1O($QF86EL.PH*"7)E M='5R;CL*"B (" ($QF86EL. H)9V5T5&AI<R I+F5R<F]R*")C86YN;W0 M:6YI=&EA;&EZ92!T:')E861S(BD["B ("!]" H (" +RHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BH*(" (" J(%1H:7, 9V5T<R!C86QL M960 =VAE;B!A('1H<F5A9"!G971S(%-)1U534C$N"B (" *B\*"B ("!E M>'1E<FX *$,I('-T871I8R!V;VED('!A=7-E2&%N9&QE<BAI;G0 <VEG*0H M(" >PEI;G0 <F5S=6QT.PH*"2\O(%-A=F4 86QL(')E9VES=&5R<R!O;B!T M:&4 <W1A8VL <V\ =&AE>2=L;"!B92!S8V%N;F5D(&)Y('1H92!'0PH)87-M M" E[" D (" <'5S:&$).PH)?0H*"6%S<V5R="AS:6< /3T 4TE'55-2,2D[ M" ES96U?<&]S=" F9FQA9U-U<W!E;F0I.PH*"7-I9W-E=%]T('-I9VUA<VL[ M" ER97-U;'0 /2!S:6=F:6QL<V5T*"9S:6=M87-K*3L*"6%S<V5R="AR97-U M;'0 /3T ,"D[" ER97-U;'0 /2!S:6=D96QS970H)G-I9VUA<VLL(%-)1U53 M4C(I.PH)87-S97)T*')E<W5L=" ]/2 P*3L*" E4:')E860 =" ](&=E=%1H M:7,H*3L*"70N<W1A8VM4;W /2!G971%4U H*3L*"70N9FQA9W, )CT ?C$[ M" EW:&EL92 H,2D*"7L*"2 ("!S:6=S=7-P96YD*"9S:6=M87-K*3L)+R\ M<W5S<&5N9"!U;G1I;"!324=54U(R" D (" :68 *'0N9FQA9W, )B Q*0D) M+R\ 96YS=7)E(&ET('=A<R!R97-U;65(86YD;&5R*"D*"0EB<F5A:SL*"7T* M" DO+R!297-T;W)E(&%L;"!R96=I<W1E<G,*"6%S;0H)>PH)(" ('!O<&$) M.PH)?0H (" ?0H*(" ("\J*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ"B (" *B!4:&ES(&=E=', 8V%L;&5D('=H96X 82!T:')E860 M9V5T<R!324=54U(R+ H (" ("HO" H (" 97AT97)N("A#*2!S=&%T:6, M=F]I9"!R97-U;65(86YD;&5R*&EN="!S:6<I"B ("![" E4:')E860 =" ] M(&=E=%1H:7,H*3L*" ET+F9L86=S('P](#$["B ("!]" H (" <W1A=&EC M('9O:60J(&=E=$534" I"B ("![" EA<VT*"7L ("!N86ME9 D[" D (" J;6]V($5!6"Q%4U ).PH)(" (')E= D).PH)?0H (" ?0I]" H*?0H* ` end
Sep 29 2003