PATCH for MEM_IN_STRUCT_P confusion

Mark Mitchell mark@markmitchell.com
Tue Jan 19 23:44:00 GMT 1999


>>>>> "Jeffrey" == Jeffrey A Law <law@cygnus.com> writes:

    Jeffrey> Or the simpler 980506-2.c which is quite similar in its
    Jeffrey> net effect.  We have a scalar at a fixed address and a
    Jeffrey> struct at a varying address which refer to the same hunk
    Jeffrey> of memory and a load/store pair gets reversed.

I was not aware of this test case, but I verified that on
i686-linux-gnu it does pass with my changes applied.

    Jeffrey> Looks great, just a few minor comments:

    Jeffrey> An additional cleanup may be to copy the unchanging bit
    Jeffrey> and the alias set via MEM_COPY_ATTRIBUTES.  Not necessary
    Jeffrey> for this patch, but may be worth looking into just to
    Jeffrey> simplify the rest of the compiler a tiny bit. 

There are some places where it looks like those fields are
intentionally *not* copied (this is especially true of MEM_ALIAS_SET,
but even RTX_UNCHANGING_P), so I decided against doing this at this
time. 

    Jeffrey> + #define MEM_SET_IN_STRUCT_P(RTX, VAL) \ + ((VAL) ?
    Jeffrey> (MEM_IN_STRUCT_P (RTX) = 1, MEM_SCALAR_P (RTX) = 0) \ + :
    Jeffrey> (MEM_IN_STRUCT_P (RTX) = 0, MEM_SCALAR_P (RTX) = 1))

    Jeffrey> Isn't this just:

    Jeffrey> #define MEM_SET_IN_STRUCT_P(RTX, VAL) \ ((MEM_IN_STRUCT_P
    Jeffrey> (RTX) = VAL, MEM_SCALAR_P (RTX) = !VAL) )

Almost.  I purposely wanted to avoid evaluating VAL more than once.
So, I left this unchanged, but added a comment to that affect.  (There
are some places where VAL is a reasonably complex expression.)

    Jeffrey> You don't document the both set or both off case in the
    Jeffrey> .texi docs for MEM_IN_STRUCT_p and MEM_SCALAR_P.  You
    Jeffrey> should.

Thanks.  Done.

    Jeffrey>     for (i = 0; i < loop_store_mems_idx; i++) if
    Jeffrey> (rtx_equal_p (XEXP (loop_store_mems[i], 0), XEXP (x, 0))
    Jeffrey> !  /* Is the logic below correct?  Since MEM_IN_STRUCT_P
    Jeffrey> and !  MEM_SCALAR_P are only guaranteed if non-zero.  */
    Jeffrey> !  && MEM_IN_STRUCT_P (x) == MEM_IN_STRUCT_P
    Jeffrey> (loop_store_mems[i]) !  && MEM_SCALAR_P (x) ==
    Jeffrey> MEM_SCALAR_P (loop_store_mems[i])) { /* We are storing at
    Jeffrey> the same address as previously noted.  Save the wider
    Jeffrey> reference.  */ Something fishy here.  But I'm not sure
    Jeffrey> what the right logic should be.  This is your code isn't
    Jeffrey> it?  What is the logic supposed to do?

Nope, not my code.  (You're thinking of some other stuff in the
load-hoisting bit I did, but according to the ChangeLog, this one
isn't mine.)  

I decided the current code made no sense, and ripped it out.  I
rebootstrapped and tested without incident.  If there was really a
purpose to that bogus code, we can try to figure out the *correct* fix
when we come across the problem.

    Jeffrey> If it's not too much trouble, can you send a copy of the
    Jeffrey> final patch to egcs-patches for recording?

Attached below.  I forgot to fix the dang copyright dates, so I'll
check those in RSN.

    Jeffrey> Thanks.  Another long standing problem bites the dust!


-- 
Mark Mitchell 			mark@markmitchell.com
Mark Mitchell Consulting	http://www.markmitchell.com

Tue Jan 19 10:24:53 1999  Mark Mitchell  <mark@markmitchell.com>

	* rtl.h (rtx_def): Update documentation.
	(MEM_IN_STRUCT_P): Likewise.
	(MEM_SCALAR_P): New macro.
	(MEM_COPY_ATTRIBUTES): Likewise.
	(MEM_SET_IN_STRUCT_P): Likewise.
	* rtl.texi (MEM_SCALAR_P): Document.
	* alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES.
	(fixed_scalar_and_varying_struct_p): New function.  Use
	MEM_SCALAR_P rather than !MEM_IN_STRUCT_P.
	(aliases_everything_p): Likewise.
	(true_dependence): Use them.
	(write_dependence_p): New function, containing code common to
	anti_dependence and output_dependence.
	(anti_dependence): Use it.
	(output_dependence): Likewise.
	* calls.c (save_fixed_argument_area): Don't clear
	MEM_IN_STRUCT_P. 
	(expand_call): Use MEM_SET_IN_STRUCT_P.
	(emit_library_call): Don't clear MEM_IN_STRUCT_P.
	(emit_library_call_value): Likewise.
	(store_one_arg): Use MEM_SET_IN_STRUCT_P.
	* combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES.
	(make_extraction): Likewise.
	(simplify_shift_const): Likewise.
	(gen_lowpart_for_combine): Likewise.
	* cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES.
	* emit-rtl.c (operand_subword): Likewise.
	(change_address): Likewise.
	* explow.c (stabilize): Use MEM_COPY_ATTRIBUTES.
	* expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES.
	(emit_group_store): Use MEM_SET_IN_STRUCT_P.
	(copy_blkmode_from_reg): Likewise.
	(store_field): Likewise.
	(expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P
	heuristically.  Use MEM_SET_IN_STRUCT_P.
	(get_memory_rtx): Likewise.
	* final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES.
	* function.c (assign_stack_temp): Clear MEM_SCALAR_P and
	MEM_ALIAS_SET on newly returned MEMs.
	(assign_temp): Use MEM_SET_IN_STRUCT_P.
	(put_reg_into_stack): Likewise.
	(fixup_var_refs1): Use MEM_COPY_ATTRIBUTES.
	(gen_mem_addressof): Use MEM_SET_IN_STRUCT_P.
	(assign_parms): Likewise.
	(expand_function): Likewise.
	* integrate.c (expand_inline_function): Likewise.
	(copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES.
	* loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P.
	* optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES.
	* print-rtl.c (print_rtx): Print /f for frame_related.
	* recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES.
	* reload1.c (reload): Copy MEM_SCALAR_P as well.
	* stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P.
	(expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES.
	* varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P.
	(output_constant_def): Likewise.
	* a29k.c (a29k_set_memflags_1): Take scalar_p.
	Set MEM_SCALAR_P.
	(a29k_set_memflags): Use it.
	* alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES.
	* c4x.c (c4x_scan_for_ld): Likewise.
	* h8300.c (fix_bit_operand): Likewise.
	* m88k.c (legitimize_address): Likewise.
	(block_move_loop): Likewise.
	(block_move_no_loop): Likewise.
	(block_move_sequence): Likewise.
	(m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
	* mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise.
	* rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES.
	* sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
	* arm.h (arm_gen_load_multiple): Take scalar_p.
	(arm_store_load_multiple): Likewise.
	* arm.c (arm_gen_load_multiple): Likewise.
	(arm_gen_store_multiple): Likewise.
	(arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P.
	
begin 600 diffs.gz
M'XL("##-I#8``V1I9F9S`.P]:W/;.)*?G;H?`7V9D1PZ)BE1#Z<\6XZC9%2;
MV%Y9R63VZHI'2Y#-C41J2<J6YO'?K[L!D.!#\BMQ,E?K2BD6B4>CW]U`PX-@
MPE<'['(\WO=FOA>_&#\[?/S/L^'Q.9OZ,W[`]OGE.-X?>U$2!OOCZQB?QN*A
M-JEQ_2SB2>3S:S^X9!'\%_MAP*P7K>ZSB3^=LKTQVUNPO0B?,`7I[NZN^GW'
MZO5Z^Z:U;W69:1Z8W8.6O4/=]_;VRHUZS.H>F.V#9@<'T7]8G'B)/V9^D(AN
M;LP3=QS.%U[$F?9#LW>[1J_)L!_-@U_;#'[;>\;T@?P@YE'BQLL+&NS*GTTB
M'LB!SH:GH]-Z/5[,O+6;1)R[03CA!HRP@S^RU77H3W8;C9?9P!ET/$BB-;N$
MWXK/Y-@``W9]KKI&R0K(L^(3-QY[,R]RO6#B7GO1&K#OQDFT'"?N0G6&Q@:C
M#UQ*?;>!3QJY\5)D\=CEUSQ:)U<XTB)%5C94J=]-Y"?<G?`%!U8,QESKQ2I!
M$$B`?_N[[)PG;+F`N6?P9AJR@/,)G[`D9`L>3<-H+L!B7N#-UK$?,V"J.9^'
M@)J(3WF$$\8O&-O=?R8HFF.%L1>$@8O(JJ\:1&\'*.P`B8GB"DA_RNK>9!*Q
MVB'[U/]T!JT-9C8:2,'?\8,1P@-^PPZ!2C2B^[[_GM7?]D?N^]/7?1S?8#@&
MK&T/.\!K]^/INZ/1X%W?A1&A<P-Z%Q^O"!?0?CCZY'XX.?[YZ.3MX.2MUJ/\
M`OO4U!R#$_=\-/QP/"I,DGN>SH)OCMX-CL[=\_XHUUY[FK9>P3MH0M_^)/EP
M>A:@KZLDY*N@[U'H.#X]^]4]&HV&@U<?1OUSZF:P+[+^(G-%W)MH;,_JP)<X
M%?&9934[AF6U[$RWP*,>/.JU,NR!REQ&0053L!]^*#V%X0FP/Y'3GZ/P#*E[
MC"TMI`(H`9"/V1I_%\]`<)C0$,P#"1<Z@Q#-8Q2J"0S$""VV:)P*%8H@]"55
ML@3%2=VEAE$#&"R,Y!IB?:`IN_9A!-`CL0>R>9I<\>C&C[FA&K.3#^_>N4!*
M>#L`N!F(Z1X^$Z-<>[,E1WA$<X"85H/+HPE`K($N,+RT"XQ]/!H.^N>`)>BT
MC+E<%BQAPL?^A+.;*XY`(+Q!""L)4AS,O34MZR7S$Q9?A<O91$XKQ@C"WW@4
MX@!B1FCK@^H#-013+<(X]B]F7"B@YT@6X&WXO%TW(SDM`W69;="@H'D7#3&G
MD!=L\++PP$X?"%6>=BPIZ-^IH1K')?E4XBFF-ALO]39VJ8V=M:$/E'-DRO/C
MHW='0\F25LJK.8V#W1M,`8M-:@I6T8UFH[ZYYP**AD($,/D=&/FEQL`"P=0H
MG;W(MXI<F@@J9.<66EQ1MM8<"@H+W;3.VNT+M>^R4.NQ"[73A<IG2AKQ^9_B
MG:9=0#9)!``K<3CGY!DP[R)<)@QDBLW!UT&Y4@*%1AN`0D#%S'XP\<=>PF-H
M#B]`S.;^Y17X#1R,OK#NNUX@/(Y=39*`P^&STBLA75@0C8SID7R99<&F[/"0
M_6.`D&KX/CHY'[!C%GMK"9G'_G=\Y46[/Y*"680H8J@%)6P5R,RS#,YY3'.F
M(D1V$&<_.GFM30TZ#U&G4(;T#+`)N$=)C'ISS0`0<H,^!^$-$OE&XLZ/,VI[
MH)K!<UH+6+>`R)0(RX=F2FD"9Q2!NLTLV0'[))2O!XPW34#IQ4D()L`G2\42
M[S/0$IS=,4\=+])')0L)',K+%A(^7"0%V$JI^:3%[+0-R[8TWPR16L/V8)5B
M<.&#Z<P7RE.1UST?_%/0F(9LB-$1K]+]QF&PC?OF=*BY&BO11GHI+(>9/0;_
M%)DNPN1*\S09QA!2\K*G9`>I);X&`V/@!_(,C80KB8F0@90;8FJD%^*N)IK`
M9-PG(Y798.@FV!8G>/7N[P)MDG'!09XCNV2#U?3!!#R"PR3@@$'PVX-D,[PI
MH&J@`KQ$[]HF%;DB5J_2G`TU'OOCCY0!,JDL/I5+U3OIKF*^8_'-ALY",E=2
M'PN1S+]3K*/>ZB,(W9WKKQZEW0JL9+U4U`56.@UX*6Y!9).7I>BB^54!O06J
MO%!0G`99A]0M,TB/A,0VJGT52U5-[0E?!MP7S<W+#>>I@8014F8)W#!L(2'<
MP!R5!E2S]SF\:8BNY"JMER1`VBF36[EN'?M_BH>H[$$_EE4<AJX)Q/%"RY'"
MNU7)U0`!B5_I^+."0=*^K_#;[\_2KU+_*!S(@#B3J[N%`V6.HT##MKN@2=M6
M%FA\&TTJ*4+Q8:497VV5F5\X&F+TU\&E+S@"8@`0!O`KR-DP&/`@$.,&Y&P)
MCV9A^#E58M2"@(80Q"/V!HL?:*H#WC?R#%RMI39KBP)#YE8R"$JV\`97%*/T
MS,#`2YU%TBWS':G3\<O56BUD$@8_HN,$O\`"@(&!6XO<2$'@,EDL$^WIWS8N
M3<V\69%N7)A\4+M;L).9^[B1ETW-T=Q3GJ8GTDJ(D$_27Y2($6(ZC<(YJX?`
M>/Y4P/?+<##JGPF=),8QM%$:R`$E2:Y(7:6@TKO%;4*M16.BPVURKB(N'6E?
M3/J+#MA&344.EVVAFK!;F<,E?![4?\(E70;@$`>7(J7K3<C:!.B%@EP"(\KP
M=\V40F$W8&X4AM"4",<1B6BP"S[V4)!3VP%B.0]!5-'8I0U)E)&',4X`05:C
M77G78)G&XV44H2F"0.2&QKG@4^R94E?Q>#E/5($R,X?Y&KL`#2-3L.,K/OZL
M/'G*9QDLY]8;.7DQI.9M-U'S]C+-^_\(I37!X<B.3X[=>W)V$\G0ZBG.)B!6
M^03'2F0W\(V23CWYH=[JFJY>94`+-A'QH-O.&DNW`+9:3Y'"Q#1!=>Z!M``F
M3K&#FTLE4-\=>%T(>FO*<.GOB\:KIEQ=:E&KRAT+J"KF7C6V@[W:!/2J`N35
M5H!7=P57H:H28&+2S/H(SYQLY6V^X?8(6,A^!]1ITVPJV7\PTVDIA=H#..ZY
MY+A;G+7G95%%5M?MD@HD#N^8SR2[64([I><+@E2KY^8!9P.Z$]DV.XHIIY7Z
MKK;T5"2O`<EK7RH8H(%N"09J!;]!^[[";[_K"-GFB.SO"KU[N+MO?@7>+6K6
MDN]8U*T.ZM:NE=M"B_BE'Q/:BFZ2_D(&07K^X*Z>3M$%K66AQ>,,B]3/>=59
M$5W*"7%+*+>K*`B+W)M[(39K-"A?#]Z\Z0_[)Z-LI^G<%3!6K#";\-ZF)[_:
M6^Q/#D]/;80*6=*_B"72=SB_M#D2AJ1I=L"06,W<+NN])>Q^FL7*@3'(#I6`
MDIT]^:$2.>G&0R7-7O%02;/'%*1BXY]^3\^+F!UF60=V[Z#9W:'NB.ABH^Q0
M2:]\J`1\95?8'2^Z7,YYD,`OW&-UP+^[\*(YF$)O_)EF[YB.T;&L\B$#&J40
M>>O;Y/2>ACUD'@0"EX$8U4WX'.B69H"#Y=Q-0A>;"Y=AK_(X0#H<;G*;<E.;
MS_W$O9B%,.H\A`"@?@V:<^+_!H"!$M/Z&$S,C5^R'-#;_@E,@GOG&0R-[/79
MT?"]^^KTP\GKH^&O;)^]&J":ZP\A6AB,&B(_)=!C"O8N(IJO%NA?(&U8';Y`
M@`0(YPD$^I<!V#%IA9K=-LA(SU8XQLG'X6)=C;C1KV=]*=S)>H')K1@6K'RQ
MG1V9BY!ZLH1''!A1>/3V[;#_]FC4=VG`,SF:#'-D;[*V+D`>L3I`'O^W_S\O
MZ%`0[6H;!&4ZLV0-4NL0MA&5A`[H.KB^-(7WI=<'YJ>\1F/3"K_T$A](]&X+
M/.RNXVAA'0POG>C%;"GGP$QZ73BZ,(H;3J<Q3Q0P"EY"7_$\BGHII$R>1ZD^
M:I,;IZ&06\4CHV%??*E"EH[:_!YB/`L3!3NJB^/3DW.DV:BAL+IAX;!DT$D&
M@Z8?C][E!Y(2")CL"$QFL<I38K+(?0I]>:P:*<O>&ZE/CM6'<;1M@1JS+4V-
M,=FNB$]-PK6EP\`-I7QWQ!Z/JS:5[])E9R?=^1&8DYLKFYA>P%:M"HMSR%-3
M0OS%_WP6<Z+'8CQ6D:,@&'&EPD;J^'Q_V"BI34E5W<V^`V[NB9R',E</T&F;
M&G.)(TPB8PAAHCAG-:<T(6Z'A+0S&%#V$+4[(`[\+94U%S\/)0CV1;N`/@,(
M$KD=\'^CD4;&CV>W#)D0&_\,*)IQX>2)\QW2(Z95T];)?#E+_,6,TXX!R'KB
M7R[#9<S`.:(C7O$+M>S1%6>#R%^Q-CMZ-6!77@P(\N;0-V;AE+"998(`\1U$
MO,;'WS_B-W'V7;GY.\#]`\7$-I%:5K/LKBN4'V)HG'GI*26V>V(E>K"+=8*'
M1<POIU\90V;A$?CL.+^+5BE.QTFUC&!+V^SB0EOET[M/L=#',MB=UUIB`PQX
M9OY%Y($](&;XF!V69&%T.5T&>"Y=<$/;;AKPT?M/\%8=O`%N6@)!U>%;$=G"
MAI503LAN6MV.T;1Z%:+W'V0CLA6"[&IDBS@,C`;F),A')3^=0#;P9+-[@7G1
MF4"V8\-83K.E^9IBJUKZ+=!S[Z<[XC7UF%0WP,J+['A9*OB59CT_D4C`W1XX
M[?U4C)KD^)5:H3"'UOP6JA8Z5I.6Z>0M(T#N!@/&VP+CF3_[9!@OJ=O\9-)C
MW=GNKLI&<LUE*C1>LN^<#GHF,YQ?^`%_\ERFFG9C-M-I%[.93IMET*+PIM^R
M9*4%!OV@V3DPL4P.AJ",9KF9RFFV*@KE?'"B_.E:;F48+%R8\F3NS(O130K<
M"8\3J3Y,&YC9,K.,&U*@$":+Y+@?!#P2VP]I#5S]_,,K8#/WE]/A:TJQ[S)4
M=$+EX<.L*7O.>##QO2"-KS<55:VJ2JIH]LUU1*OJ*B+5J]HQ6U665>5FDA[N
M*N]T2;29O2R1]Z1H>R022N545,&W==5%+IM[GS%7F$3>F,IFZH+#Y&(784P?
M;D1<YC@0LSIMLYE/\564CB5BF%L0R;(,S7W+RDJXN$,UWW8FVE2=IR%4I02T
M=$"6NQ+MT"$"CI#.$!7E.3T'D6;ELWG?!=*JZ_$>L^+'\5>GVS.<3E8`FM4F
MBBW<'+IN`#U\XM)0KFZ%V>TB?"<DBMJ4!S"?['AO_M/Z;=9D]$64/LJ-1BU5
M10S7`;<4L*@GZOX26*SB1MH,O?OZ-QK1^,J?)G*3`]7DF-@0?*+E+(%E$_MU
MT1ITT1ID1G2C.;CVHG"1,P>T![2$%L5H0?>K[B&M-$/1<;R#FJOL=R=5IWJF
MT-(#C6.D!X/[42+V.SK_>?!F-!RQO['SP=L3M_]IU#]YK7$0_!RP?_:'I_*5
MP63D!R!H$PG$I1MLW5:OAY1P-+O\O5&B6G=^%R@L2@'./0MO%N`$N],PRF"0
MA5XBU=:SV[;1P^.QBOTS[5]AK;88JU59.]P;Y^KLSCT8O]CE'L7WXD>Z2[*H
M7&@4Z2GV;*>+R,FBQ>\).=OJZK<N30_`XJ</ON*M@5?I;A*GRP24%'3%N4C*
M9J9]X+0.FA1PB7M)"DU4L.786R7$G[JJ<KP@(4ZO!:Y<SREDQ+X0_=,J(&UG
MC,X#T5BB,]'5;(C;&_2BR'L+RA?@NB\D7\*WE!=8"`3;^23XMT?P-Y11B1Y-
M4C$WLQ<ELZ<6UVS>S?<)E9(EK3;3X-V526CQ%46S"Z*[;[69;1XXSH%E[=`@
MR`SY=@41;I5$.%SP"#>4XN7%31A-6!V=`A\M\LR?>`E7%"<8+!C1L&RSG:M!
MV,!K.)R;.RJ1%7'>5>3"Q4.$1[H2]^8]V:^2L\1E)V+Y3NXT_$.77\W97P/V
M(LVI6(=GQPC$,5SE(!&T@MSH3UJ.V=$5=W;E`O1)I]RH:]+K@^Y,<S&RQ,(]
M,)#VJ]V'5W*SY54)JI'_$H1O];J("$=7L`]#Q&,75<TUMZY"UX.K!=CL)]>"
M<M:-.M`VBSK0-ED*ZZ[8^J8O%?JOLT,#D/[36A6TGU,.=!/OPI_YO_'T+JVV
MV3;:5BOOJN!%)E[T.;NZ1^";RM@PH2PO3P!+Z2<_R@)6YD61MV9A1+%&>@CG
M!6/'>.11Q-18P'8=SKP$D"7*/\/(O_0#;R:G2*L[=5^E?!B[TH/(E_:F9;UG
M[SZ<;U,Q&S,/VV*+#;F;55XIX=UH5-",-7\H*;*$\%]4W.Q_EJ7ZLPG6`8KR
M05DABS=`$2*Q`=7!R#,8GS""FTVR@RJ"@$[>%?H."/@%$%Z2?5G#DK7*9QIS
M)*<MR<I--!K%>EI*Y?51]`VT4;1%%UE6IZB,X!&3D$I=%.DZQD$=TVJ*^QVQ
MNU1%45D1=0Y,JZ2(%E&8\''B(@NY_U[R)1=5-"&`L1::J67UC);=T9.\>I7$
MNER/5VQRZV5U__C0_]!_[7X\&K+Z6IXWK3Y;<.NE?`^]Z^X^UPN^O_O%=\_2
M8[-RC8.3\Q-:)%%*X+:MIWZ?`K??R:V`6Y!3Y%/:X+Z,PN7"%15X==1W[@1W
M5N-H#!_BD#YQK&W:E@$?&L]B16>J;R&*A%CS)5UO0;<AX%4O17TYH?/U=-B/
MMG35?-L"`WP-G:Q<TD:JM;,H'*/7B^IIX?/TIDTZ!V3:)@*L,<)7`[BDA@F'
M5N,^,)<<>YST8O89/4ZA2H!'Z\EE`L\,(`\>]L;:!TF='E*GUZDX(T@]RD?G
MY..MAY-N/P](H]Q2>K+Q8)SH7-AED\3K(?&RJVZ_WGK*Q_X$BK>6FMQS2657
M%<]%37T.-C<]9GCA)T+>X!?:%91[,BVGU3):CF,5]F185A0J[\;)E)0\<]C(
MJKDIF``6!O#<\.)?8)_RC$V/RH%M/A87C80T;FR5S9"36\;./BCPLB9&>G8N
MY[(@H24^L(0Q72?N96Q8JE3^3JN)R#(+VR9/@JP2*ZDU6K?I"QTA5N/I4/8X
MQFRWVT:KW;%UQMRIK,Y)MZ5VZF*0[$%YAVK[D?L0:5#@K((ES-JDMU57Y5/T
M*C%Q^IKZ&>(0N#C<"9C\>#IX+=%-'-9N.[AJ2^>PK[#JLEZ2T.G\\50++[D.
MXN2Z/H1D%GF"@YQ=>7$BA.`]".,Z3NY@)UZE1N?X1'P#@UCBIJK7KX<N^&=#
M0M8//]`K&Y9$C4\!87@O'K5/+W'&9K>=TK8;#56#768J4.$I2Z&7G%V!23=7
MRMOFU&V6'AOVJ5;^6(QOB*()"HG8!4]ONQ3^-M[#$-+M-<R[O`2S[=&%3R%>
M+1S@''CQW0V7W:<8A\FKL_#VL"LN1UE@3(,%".(&`0Q6L5RC7+4M[MK!"<1-
MD=CYY_`&"SPDH#'G<_CTICR2_A+;H9V!:L3(,;!*7*=8'KU60QZ#T1&C>N(/
M7N.)D^-]QG2QSP7G6FB>N]<9$3_U(W"^^(QC*3,.A"-1\'F#D>DB\>>@E";,
MNX'>%*U?<+KXE:Y.]I.T/D6#81//G9R>"9:3T]!2-ZQU`QL2EJ!S"0>-=%`%
MP<,&QA\,_T\')R-0&MG0*<!%"=`ZPD]I*D4@92$W`B!_-D2/2G8J+Q"@EW1C
M*1,)"SWV4ST%-#\/SM.WHJR"_<&F,^_253F9EVH07>/),7)_FD!T%[*,622K
MU<4TDI,[YOR-]4]9O<-*M-3--\'6X]0\GM]O.\UFY@Y0A(F'IR'LBH-T5T15
M?<-O.;\J/<ZQD_D]T$9W>/"\=\4>D9EJ;\GO?Z:A<&KUH)6PX&W'1$"S^RN^
M)J!EGQ#;68T[P/I(:C@M6&0[.PY==0,T`6,JU?U6UAC/O>BS2]=&2..7;VV@
M=W$9H%Y6/O`M-"EO!<++/P[3;"M=2D@`JHH:_-^B6W?IE_P]D.DS6K<FT!(!
M=.<20`R"ZHKZ:13J_OFY)'\3,=/*0H2OCIFM3/#=(*?(;Z@EY%$!XGI4$\1;
M7:?3-."C6(,6NYF#LS4CD')]Y?:>S*'KP^4VP^29Q_1@4M=Q$!RG5T@6/!R<
MZK2Z/F!C(T1:-GR*>P=/G0Z7DV[,A[=+5].T>TQ!BM25O^?^WE'WP&D>-/%D
M0EM<35-JE.;#FR4^\F8@*7@H@:I[Y=Y<T^RUC::5':3?$:=5V-XAJ[\?G+!Z
MOHS`V!R_K^19%63T/7:_ONM&HU&(M^5]?@9RPI9=LLK2CO6VT+6Z1F.].9Q;
M561Y]>9:&KM\(81XN<Z=!,J8G4H_)`G2HT9_!1)4%7Q\&Q3J@KX,Z&S_D\MZ
M.N]F<6^5Q+W%-'A)XM.ON<.$YH'=.K"='1J$A+ZB72KWW;+<ES.QPD\1V:3/
MG$M[TFMWC5Y'^RMGXD%^WQ<94X9Y>/MK=O=`>6MEL?<3YF/34MD*6<PW>:[T
M?OI74ZK?:TQ4GD/:`ODB.ZZQ`2T"(6B#!"H,=2POXO]>^A&?$&HLTVP:\)&=
M2*8$GPP#(!1TC\&"OSO]11:\'PV'1[^Z[X\^23'+W8XD?I+YHCI-7B+.MC2<
M""1N,:HI4J!YZ3PQK,J!I5E9(NV;+:T<C&$LMFT#8.OJBA3'ZRK1:<2,C@"+
MU94L807&)7CPR`>"XD[;,N`COY6CLC\S_"M\`8_`!9F(BE.&W"9O:;[A]/?I
M,(5"=W%A'N4"_R9+H,89>UC#)'(H)%%A)/^<0L2]&&^U8.P-//-)!XZY(?ZD
MBVJKAG'=BZ4_2_ZOO&MO;ALY\G\KGP).ZO9$&5H#)`B2RNW#]LJ.ZKRVSY)S
MR6VV6!`)28A)@B%`6[XMWV>_?LP3`U"D9%-THMJE26">/3T]/3/=O\YFL-?'
MG611:B1FAU<0S*.95V#?6GLCK2>N,>M$497]JPER1@=-+_,/Y';E%1PR`F/G
M3"9XQE3(XR496L(W23M-QFR%"_2':=?M!98(^LH&P>%JY#3:F(H"&D>D84CN
M;TRJ,^HBNU[.\9QI2)BC(3FH8+9\FJ,OEW`2YGN*=M#N^NV@8V'QK70%LQS:
M:Y6"4H*U6OY?&SN`E0*%=6\C+[IJKG6=Z$H1H$\TE0RIA/4/FY'2J7*1DI<C
M/J7#D$4Z3>`+6Q'+91?SHV6!\H,L9ECEH8CP`23O(\DC$QYP-TG>Z'*W'6K=
MC;/;(4(#Z0@)/+77)W2#/UDCJ>]"[-MR^)UX_.[CMIK/V^$`!Z!K\OEN#\"Z
M_/X%*5?E>:22A(=/BR*_X*4*8V-.!`96K]_QX<,X<=+[1$K+.T7YXF?]XJ?C
MIR_$;RK/6,1,CA.K&.F>IR>P33U^]NSXZ=FIR-5@B;Y:M=E@N125&.$HJ"5O
M3X]_$B]Q5::^G,#&^@01'OGQ`S*$(6;L]2,@TL!06NZ+2+6JQPT*]5;HU+`9
M0WSD`I3R&::%C4(*$W(\++-I*NTUP\B/PG9@7&'+.^*,XR,:(<Q8NT',.)H8
M^A02@WSGLW16%KXZ_L<C9=3O4!=<CJY(&1P5/-4F>3Y75YTPM5YD[U*,4\O&
MS:H($0L1K76E!EBG&?"&"+M*%@+FV6KM*FJG)SJ_.7[\TZN7+_X*^U]\7&^>
M:.>K#*#.]TE8:X9=I&QH7,Y]#91U.%SWVO?L8^+[(>YM.;W=C=!\-K`!3NYA
M2&[%Q[C__@.BS%Q@DP/I<(&,UNYVL6,5$))[[M@F;%3?M]N.<R<,??CHF>-\
M*WJHU=XDS"T(LNE0[YGWI@8ZBXU;]V_:SHH@BO1R"9UO(P7Z)D/L`@4VX8F[
M$.'6G!/W@6Z]1IP^6GW?G+T0\HB:N18J[!Q:``HR*P6PYX'<J`6LPO&HU%6W
ML/&AW)YP(A:/*OGP[)]K$T9^G7B`?>PV(>-]X3XZ+%"IKV:)V;2;MQW]""D3
M58SY=*U[&P0!T)N@;%8.\706S?/)2%O%"0A7#O\:@0\:L4YDWJ:U5^<U[25Y
M%NH``L0M42]`FL06MVR1)K<(EO"%R7);[D+PUBCN!+9)<?/E(8C:Q4=>()3]
M]NV$>'59O^VZ?L=EC`#6S<,>%-:S?(KW[1SX5E@AM]$*N5.Q0OX*"76'U6X-
M6MV:#ZNF[:8L9<PL%9"A(O>-O;1(Z%?EL#(.6KFBB=SU\@U>:A&G_(NL37'%
M2)!KEC;L/>R>"?SZY;JW8C%3)=P0GT#V=O/N5AE`&-')ZS<4Q@O8.:%U"J_&
MQ1"MDX?$!MU>%/O=GD:[D=Y&N@?\[?CT[8LS+J6U!N%J,DGC>W$&UNAQM;+F
M=<.\U&6U?)8J$1]6-QT-RI2O@,#?B_I(MY[BK_N@VPJ^JRMHW1`9&G/8+,9`
M(I84_6PD-2Q-T.KP$B\>MVUJ8E2\&?2-V6*<4\9OT^4Z&!R%\%]?@]_4)I3F
M)F'0-+.SV22;I6J":R%/D]OW&"TXC'IM'S[Z%9Q-7GSP-E=SX]K!!9+%I0[6
M4J>_.6FU*M>@,T@;DYO`QTTGY$KT*]_HE`H:S$@H3(-!!27S7FG0H`Y0X]</
M8D,E;TB2._%3.^QU?/BHF,3>&!/%5/I)C6J."E3='WA><S2@ANV2#M]1ZT[]
ML[J>_X``&&EJXCY\H,@ODVR4E>@"-:$X*.F883>NI_3`##'3BX`>?=N`8@?H
MT1CEH]Y;^S.1I,I;TI5@*."ZBC(KEZ7PP,>CH[F\]\+[Q5X[MME*[">I`*R$
M`HK6NHWRCDQYB_(?WS'*S9KAV>`T1UBW4Z/P.A(;MH*_Y-[1]0:`$E;8TIKY
M+%-XSN89V8RC<#.7\5AE4OEXCS/.<;E2\YCF-3P1/G'(B`H'`)WX&!,FF[$+
M'EVO(:!`KUWQ2=^AL7"N=KG8G:&BH<?@EG#;*@S7N0(HIN,"Q70\T5*<C?S5
M,HR/CT)01KI[G!W9I)I(:2PN8A70B(44XV^,A3$SS_S!H.]W@J#KXK6I4<$]
M]GY&%JA>YOT'5<U%X75Z,<S&U_#BX4,9NQGU3N2L]!]+V"#/)4M5LOV2_6J&
MI>9`PKCTBMC7CDU[S7QWBR3UGO]H+P#<]-^IEX!@Q63DN%F2;"T2=)05\CXI
M3%,PI!=:&)RB^R@R%*LG'[(QF<X)!U)C$1(TC%RHM_N@X98I8,RV?%XFYUL/
MDBQK;8:):SLP<6U/M?6`$"WYAXZ3''NP38BZ1U&\1P7@.#NI]*1S@XJ0L8GV
M]-,SKA-%';\3=8.F>XWKJMY2FK"IU^P.NO)LM2&JQ?7J0^YZOQ$WTXW>*=>6
MVR$O-.E\DHS(Q[K@/ESK-#I("),F&C1=AVR1-'4.(+?JV`:,T<7>QXV,\7%E
M[S^NT?N/];W_N)HQZG4M-Y/MH53GMG03_;`/'RLW3<*)*.JV<=;TFUACB\1Q
M6`.4GUMVS1"><Y#-]P(V;%2\F0@U6WQ`@'3J=Q5OLW?4Z6A!6DE8D:6NAP^E
M9^?0C$988,V&?3]L&_X\_*`&S(ES'7ZOSGK&=`IX,5_BT/S^4?9[4%^7)1*&
ME=&'-9DO%K!@PJA../]#(_^%E?^A?6JL+T=$XRW0$^/4DE"[H(GH"#Q\^>KL
MV)M!C07I#H@4,'QQ<GI&-QUD\(B_G"5XD8[RRVUSD*BTF7L<C1=&3;841U)\
MKU%Y":65-5XGD>*8@<,Q"HI:3$(2"R'J3R.?W+L0C`;&C&KO=@9^-^K9QLW>
MNAZ&-(KF(=!F&.K8#-L"MS;"5P.N89DWFWXU0@)2ILU",^EZ%&6%J:X"GR+2
M$J"!$H5:!Q92G"D=VU;,]T?INQ&N'DSQ,U#J;LP\&/AQ$%?,)M:V%,?$FU"O
M?BE=:2J>K](;5MCJ._G6MM7/*Q8%C2/SC=I'M5N^CJ@XSXM6!4QCC2*06M+H
M/10F'%W8*<9!5#'@V.G1:3;DWPVR6HO?)$_&X?:7/U%M\YF/NP*&M`3*]O(B
M*'ZYRV`[VN-">!UTTLF5L.T>_G!J;Y]PKGSO<I*?)Q/?&R^G<U)76),*^NC^
M.S!U*?'(\H[^32DVJ(SAV8'V2R9U9U8:T-C*IUF]*H;%*)DDBTJ.8BBMGV5Q
ME@*%/JWHK/Q>PH2`X,.C'D-U,BNM\YZHS8^-V_-TJT1>[9W=G-$3&8UVNW-I
M9?;:O>%Z@Q4&L1_"GZGX!GU\5!4LJ$B^/3U^\V?5'^5(WB@=1"*C<T;R)L\4
M17]!4YG6HJ4H5K.`2,@G5`36-LL%)'@V`ZUWFM#A;W(.NC4?_,+$!V*/H&4@
M&EF#@&J4-Y"NV/7P"&Q1`9N/JRV+":RR443T'/CP7L_C5A)GX+<:K!0\GNHQ
M='@EB9()L<-F>*4U3B_$11;=*<!/9BYT2.Z%UCW0R8R@")^#W,UG_YLN<F^:
M)K."1P3!5NA$4+G7"F]UNAN31>3LR#5:+A:P'=8(#PI=83G#B]]TK*_CQ]Z1
MQ'\EMUZN.1-&9"A_J';:C<FJ*:H][=-\+\W(U9D6$J3U5?Y!WF)\8.,RO.X@
M","%>1(*FZTB><\0?V.,6RA.325T-_*F+(B0&Q?Y)+]<L@E:.L_H1TW'K.TC
M]TTP_UD5AE"22P3:*?@W]_I;25+,-5M.SZ&/\%HEQ59`WFQ!HUS0P2\:UT$K
M)S!E2%K0&'>L;?(NC'$H@B@0E/C:`RW'HF:\-QAH64K]>*\<:)F5F\]1#Y@4
M^%73+?%8\OD>=!V;6EXAB"3>/?,@RH+PJ31(W%E&JLJ4]!IH-4/R+[P#NG'"
M\\TAGF#\\NL?>6L2D[66(5L>3XI<#/KCTY\EZN$I-4]T_`\@F3""HKT=V(=U
MJ^7MTS^'WPL(,U0(@(9`"$0UX)%@*%MVM[+&@L&'H<-UU#8K-98[NU:UYK58
M87'K1=+S<@9*.>*P7GB!<8.)ZUE><O\_<D(F2X&&`DA_!#'E`B`%60-`*:^0
M>=")S%=,AJ$T2`WA0M@V+O"[@YXQR7>0V$`0E#5B#D/YU&,H#_]!VE`A7V#`
M'N(1WWIMYTEK-+;23M9P*XT5F:!M#ZVV27W(;IASLLB->RIA/>SA\*N]9%XQ
MB^<V)24H&N=+-(<B1*,W?SK%UKWXTRF3S6Y:99^W#\E\S-*"?>??J,#]ZI8<
MDM3MU#&3+S.Y*J.1RWK.V8Q<6GDTLNB'F+[%U3"]8(#^_/@%3ZO9(8\5^BM6
M:T)JC28I""JK0%C6'PHVM&?9^VR4>N^!(1)X_K9(>09/DQ&LDC3K/B`>R\=\
MB3*2RSA`6YX#-FW'%^]FL!K1+SEE,PX9I(V)T("";..Y!,5VHDLIKK4D\:G*
M7-V_5AC,MCM"!O.QB!:='XAQW*<'/_"`VF.`;/F=%_I56O/SH"7'YZ@Y<]"0
M.6SMG*"L;`C*]#K;_IX`:VT^.7!L7</84VV5.P/\4;UR`>6?3@UBM3F0J2K[
M`_?T_)3-1(3>\R/&3_Y-B/U/0@XCT>=4?R?H^AT=_>S'489$%;F4R/V$L<7%
M0U!X/IDIBV0Z_^U1\0E3H-DT;G?Q?5:F4U=,_/@^6?QV_0D-)4[,$BET$NAU
M0+=":[%X=V)A?@,#@&*4P41]8,Z]Y0SIC5R),.$T%TF0*R<4THUF..?^1Y0+
M!:B2K;5"`0Q1*5>+?'EY!2\EEJNY0$`9=<369#/)C7=#B$1>:))]RS/JQPLF
MI;7SM4AH[(<5`1F<$4:OK6Y5OYK1,\8.BKK%Z%7'#MEAT]'S[,&#(C8=/A)U
MYWEYQ<(.D;7%;L02H:1[XXJEL;_&^>S?2UY78/D1^PDM+U%6FAR.G>'(0T^P
M-JP(A.T5Q0*8(68_6M$5V70Y*9-9RE9`*(NA#.R6P5]*QWA0X18:1NRIZ-[%
M)R>)I>@04QD\]:#*4Q<V3STP>$HO+G=E*#GJ2,D9D@@*@N=`#6-G9J_3Q&V^
M8C>3J=`GS98+2)`+`ED;`]O2CKA0;"68"AH(0S!3/W5D!VJ+:"%MPYHXAJFB
M-!R'7Z"D-3AF+7Z!HE9RS!TDDK$>%^6TW/9!/M?9'";=.:+K]CS1S@.*:H-?
M:P+\X25VEP_IJFGD*MQQ\8R%8P!Z`0AP&5YOHQ!$=M36<9I`GWJ,)K)9F248
MF)34R$LRH`7N@9S9F,\_"/A2'@$P[XI3T[?`;A,4*T)1306(Y2*E^%-X2%\6
MZN2$#,\3/"%1)Z_:YXEA<"IW62HT%CU-+]F8XS7?Z*ZP]*X4NP86:+/_D\+G
M$8T17>>-P^'%Q21/RD.RK?3%7)DO2V5Y[]%[7!P*89`DAT$>N?]S#<,*KS8J
M^F;<TFV,Q-ISIA?`8/5BP]];]/6A'2#).X1]BIF@&D#)<!IQXFUMSKJ&+Y$&
MQ%*77QA1-2TUV#]RAHH.=,FVN<!"F%.?$^(?U0T"]OE+S0CN`!B`_C]`+Y\_
M/T:4?LSU\_'+,\'E3+B>X?_]!0AW([,IEZPU2+A+-%R;/_LH3`:A@9*CFG]7
MW*"-7>8_.T/_`>9_T-"E;";[=)Z.$@PUE5=E`/4"#W((O%5&3C[/$`DW)[-U
MTO"Y%PEK6'C@)3BX'R-I.P;\SBZ0]O.S_'U1>5T>[W9"'SYZ_YP\;O4&=/U1
M(BZ=;I(\<KNICK*S"[R;/3U[_/0_%;02LW*WTP$*ZH@R.T+!+RN]OP`Q&S@V
M@5WBD#9W!O/ZM)&:+>>@BC`?]^/([_1[IIF^B854B]Z$)0W32>EH9*R.Z9!/
MEB//>HA4JNS5T;7QS[7V:"BF/HYTC5E^/^XA,3J&X<EVB.&8I=64;SEC?.;>
M&UM58+JDF&Y[LRIK;89)Z#LP"7U/M?6`#$OYAVM7$F$,'B@`Q]A-I3:MKKD9
M0J_3[($15#,(LA?S=(0+R7PX@85$+`F]7N3W^J$-`:F`5C0H%$L&.0`W#6-+
M10Y>#6PB2ET/RL02]&RK_VJ.BR`)($+,IR,2/!0:C[TRO2ZEK0)>@>-WM%]?
MC$W+)L6:)'&3@H4U@_`GVOD5"_B6AD(2S(*6_/P$6U^@>YL)]7LA7)5%\V6)
MD3*D"2V:/AE!Q]J#./;;`PW)Q,RQ!N0>%M%"-.D+L05VZ<Z!(&&'0+2D#!HD
M`<?QINB.C+U3NR"L*)N*G\/<R\\)D*+P]C4\A^ZP80^THQUV&-,MWXAM6=]G
M0W`#"UQDEX^2]N`=?6Q;A+OU-[O0.!XTGF@Q,BU_M6X`PZ,@``&-[C,TS#I)
M18:[YH&8=(B0OVR.FHXU+D8N9DG4#_RHWS?FR$6^G-%%R!R!KF!W\1>I@_T.
M$3-@VHY@5Y'AZ3&57W#4/YK\Z,QP[6LCTB$H6W('@M]A/@NKKN%<>3>CAG"M
MCA$LR^-5^9$'V(R9LJAI('ND)\'G[A$?XW^.OMU<4ETO:X=YC6&@`>\&?1]#
MF=*`DWT1/8@J6Q$*.0,S]4AI\/5NQD8=VD3<OMBA=+*G-JR$XX&LR:`3-OC^
M5JG$?^>+-'E7`R=9)1$'&,`#V0N>"-TVD*%CTJ4]@`>&U3P9KY:IM41-/B0?
M.3(VKF^7O.D&RE$=>&=#MT/P[*/W`<\_93O/4^\#A:9F;)AW*$+?'#^3!A*)
M:0SM\$V]:?Q%BP<`$TMJ&RD-^VTIY3&E)GB-_8^=U"1X@YG\13TRTAK4[W3]
M;F1;*U/$Y0=6Q[_YQGM@-IE^6Q-/SCP#M0$G7^T4X3:L)ZRP)`[/1HSPALUF
MR<SLU6O65G`C#KO6`B^PT?:RI&MG'F2RB0<)1.<T4.(A70QJY(ENIP?]MRUY
M[Z/_:XBV+TB)FA5],K]*^/.^UG2S!<U1$YTM6MSW9+-I"O!WM;*W8=D.85EG
M=^J8-VA&HLK:[KI2"R1_-"3&0:79AQAC^A'\.L\8;:P_"/S^P(H0)T)W/OS.
M.WEYAJ9I8I-^GJ"958CZ('Z%B6X^#[1*=F#65=4S3T]J_3>Y$%'U-][_=>1E
ME2//K-)KST-8VLC,IMBJS5LOUUPAYF1>(>?$JG":C"<??;)13V8HOO%85EG!
M%=Y5NDC5<2VD(I/3]^EBDLPYC!M'):8QLGS>=V^,G,.:`YOC=HZR-2)E,<7_
M[TN<R-HW\['G!I,@64PK0)CQ41@=A1WM7U])(H5(%+H+\V(ZG"7O4@/?=LZA
M)L4>NA_!EK+?;1LG.\`_\(DYD9MP7S%$TY%L/DF9>?`^>I;C\=]R5DJ_9CQV
M_;#(RG1X#GLX>TFQ8@P:RY'2HE'[T"7_T7Q,E:@GJ&YC?2+8EFJ]UFVWUWJ]
MF-ZE'W4CMD[+Q?!U(R3`0&NUXE%LXRQB"W3_K(;5JMD5A51I_J;N6=FYL#WQ
MW[D([!]#.=^YAST<XG[;UAPM:4<&SK[7(.YX@/_NP588_D?/'#-@JRNBA.RJ
MWWTXBY0,36_2ZH&^%?G+GX^?DN1F8OA(HJQE-OWT^,Q7&",*O%*])D<OV3--
M(N^A]W<-=3FE0&T\^KT>DJNB:.XXN71BO8L1*=UMY39)>D?6A06_C2M^DVP5
M\'"KQ!/"!=PLG/;N+%3+7#+0(,1&]QI%ZA=I]%UE*3:_:;!N:K`<K+[?'@0=
M4Y(.!OBHN_.2=+T>#A"M=-#N&CT<M-OXJ']K:8$CO4U947\`52,K;BTNL/>;
MR8P5<F*:OX>V_R/#XUAVUI17%Q$27B(9\5A$77C4#?588,UXHLE`V5@C-/OE
MVQ<O-&=`8_7YS;@HA]8THR?V+%N,*DGPB4-B69H^+<!D#GTE9A8'E)1=_*7]
M*YD,/GWU\A0O`<[,\XZ:Y)UJ\LVIB2K/(`Y-:G9Q.L<]Z]2S2J#:+8IJ5_"K
M8.8*%6OAC*U,#T6FRBF=9EBWCNK`K&Y::&9;MVFA;)HYELU-$W50-1=0!W0(
M$O,G7?R7.2'>$%^JO2;T&I*(UF$VJ`RG)GVNS`9);C63>B$BN@:F?JC!3P0J
MW(=\,2ZPYLO<^]Z+Z+XUG6:E0'9L6-9!4D3$^;X'U#P6GS*N@SMFSF0RI:&T
MM5BK6KO)5AND:/*\9X]?G![73&F[@4YS+-KDR]*LR0)J<5\KVE&'W(Y4UR$F
MX!@!4DP"&@#M-9/2:+]Z[W1BSS!7KC;RP7?"OG7]5E:*J&FB2W[ZVY\DA9#/
M:&`:R-=[/_#P>$>4K_4Y._T[UV)GU8HMIV.C:8U8/:M-6H4E8V2QU@Z5@\AN
M8*?2V5']:FJ#?>*`&C3EN(1(.V,@L9QD/"ZRCK=/0T,?"JPJ(BL&7@5@-]0)
MPK`>&6F[PJ%Q6E;>*$5XMX2'7].XKUR4U+VV._@O)F;6)L@.BZ`&4"LCN:G&
M[HRXVE3O`:G6`='6CK3.B[_@4<=$$EDY+*QQW3`F50DA,S0-2.U^HFG#5ME4
MU`U%P=L>RPV*.]"BO5JK*:-6/NOS5G:R)"4C2ZZMP](;\_.&S+PV)S>R<<'1
M9)N)Q"K]6D0BSHWTRF0O-8>'M^'C3A>8-@I,/HXP2$,W6O]4PN3D6_#RQMR\
M`3][[A:^>1MD\G,M[.#-Y.PB.6.+G/$`'EF1B^MH^5_U)SPTY(:(0^>Q9D#>
MU8)\,R&^K@!?+;Q/WSXA^:VZ9XV&*<]1EA\>ZJZV]"JW^3#T<!CZUC`,`G@T
MB-<<!F/-_)<A<_-=[I8!(*NU-X.^.&8A8=_C!@L^,8$>U5TNVNR'?7676X,%
M&;E>YG@HAXQ'R+O#:3*ZPC!T9,&O\*.\_4<'?"X2AAA^SO`])[V.X3?*19H.
M9^@)>>`WO_(.'M&8V=B3WD'#SN,1M=#GCVH>&<]5A+'V[8^;:JJJTJNK,I38
MYJHD,>U9_.C`*:Z1#,3Z>8GX&,.K9'(Q9$#8FB)D">EL.?7DN)$C*K:@2"<I
M3,?1B!]A`900LX_$X5BUAQQ03XZP=OC=V1'>]C#_$XVU*Q1'T37^?T\&+JKV
M9J'8=81BU^,&HVBB;SI^$TF\*#X*,-(K9$7>MI-HH>AZ,4%*7*AFPXM\,9R,
MYP1ZGL]Q_-'V42S+@<!CQDN^<!#$ME"DOWP>5)Q?$#^.P<VE5?T/;,Y9%_7A
M@*JM#5G(36A>S'76QA/_QB@0=K5UY_ZR7F$WS?T#UDI@FATQR*R@2M<6)!M2
MY?-TSC4_$\.Y5F_<J7+5[P0!?][3=+%:T#QE`F?*!)YL-K*N^%YU'&D?=4F7
M"&@DC425B>.ZCEQDU\-ST.@$8;4&ZY/AND\@1C+FZ*#MP\?`\*-MVI'I$#KF
M'9=&E'#W/J_-Z$]&)NE+>O.QT4UW>,VNN4VFIRORFU.[P?JT>KNGYI)Z#)G$
MS:UR5!4119G2_0HZ_%=):6<NTX[A=L2Y"_?V`]"3^F%P.^X-;T/3\//0-+PC
M][KY-^'>L'Z`PKH!VI,."0C>S\8S`7!R/[@E)^\6U6_'R3<3REVOIOW^._JX
MI]7*J']%6%PW*JXGVHP3CK]65ZK^4;M-07&)/72:RD+E^D%,TLN,\2RT<^,\
M&W$48S1(Q^#MHT5"=4=![$?2^8W'0]_W64&H7-[#^,84L&;E46)CR*D;(EHW
MA`6KR;56F"\KA#/C=PF^@ASLP4.^DD2/=OW]Y];I41^':XVN5'GB?)*/WO%A
M%"&>[(]3NEB!SZ$X]![A!_%$#/(_-L2_8]<EI$E'79^Q;P1%`&QT=N"`\A0D
ML*[W>!3,I[EU#BQ6YNI+-ZLU\DY>ZZW.+*XQ*A=1&(Y!;(*+C(BG)->^/LS[
MZ\]/7KT8OCE^IHAS\M/QR[.39R?';X:O7YV\/#M^X^VGLW+QD>(&M%I\)A&#
MT(\-F7]/I';X3)7`M]CW0Z`53#S+5_`Q,W$<^''<^Q=E8I&<;D_VX6^:%Z5W
M"`D1GQ'C;$T3!#%=M%K>(T8>:GG?>&%+798+(?2#MT]O\7D??L7>D==MP4<D
M+$;B;A_(''U5#+P5XJQ@WB+]QY)`>NNXEYBWU^GXO<B4P)Y>=EZ_>'NJZ$K\
M[LD(>NJ.7!!Y,FZMN'N"O`T'#2:!:\YN9,95/%QW^&+F:^3?/4?"U!D=E^ET
M_LLLO2Y_)1IH:PO5<W023*9H^,[IQ/MD5&;O4WX$34$K$.;D7B?P>YW80H.\
M9YH[7(VY;8:^#VK=C;6COM_K=M=@;2JAF<Y%N8K.XZ)LH+-L4A-SRYS.\YI\
M%A.;&>T7.N>Z`X9EB6&;7R5%^FMUQ(K2&#%.0@E8B^U%$1`Y6(.7MTADAYNY
MD]NE3I5W<5\U/%]FDQ(O>I/W*2P+!=JD74XRZ#P?B,1AZ,.'#>^(F,@3X'R)
MW_<^&6(6CRP!\$XB7TBT"IH@0*>D0)>/(8'V8,3$9&+@%L,>S*M&"7YB_FQ2
M#:AT`WO('8V;4PAO:4Q'1P(*7HF.)F+8%$'_VY9OP'WVWP%+$BT/&S6*.Y#@
M=BS3[@').IV5+"/CL'G%/!FE'.Z%[O0$6B6F&0Z!L*BK,&*_AD`1(4I7TK1?
M0]/#L(F1L,25)+HQ`=,0DUDD=&TA[`L117862H+IT-4JUJY6.TI!AQ6Y]\V<
MN"TBUIR59?/B47*>Q=$]F8>8#6B.%NH$"_5DFW%FB>_N:5F$UZ$<B<!(<^-I
MF0CN5[U&QJ9J"`#8,5#E86?@AY&AO'A%KF-?T:@4HZMTO)P`2Q*\$7+7<IJJ
M1$6Z]S>1$]FT0!@'!('/@0G/)QJK@0#PA5@%R>+A_7E!K.O]36]!T#2(6@H]
M1EO:QT].AL?P@3`X3_X*B^SPR<GSX?'+GTX>OVQAC"QU2MM\.A[^$74!HQ+B
M.-;QT-<9I]*>2K*WO__T[<^M;Z&-;-GH/?2>OQX^?O-\^.SDS>D9_*0&PL+L
MRRSD,<CFV/"$;E0%796^\I73U1$*4Q'2>[ND=47`HHB#(!#_W-.1>:4-F\4D
M42W'Z2A_6""O@Z-.?-3MZ+@D;BHI#KHN_H?`2S:V-`0EQ(L!RV0\?AVR..AA
MN.J>>7PN?$RKR#(ZOSZ&V.2J!:ML/EAJNIAR<ZUW':;S*9AI3/3V):'_'_\T
M?/T[R>G&,ZM`Z[E=8#J#8>5I+^C7MEUXMT*_ABNJ;73=G9;%%?QW3]-1U-V,
MON/B<[8]:BU.`?Q268O#]E$7PP*U&9U3IJA,O<B9>L7535IU!Z%:.OW8\%T]
M7U[0L=UWWOX,U**2<E55MA:(2GA-`&OU"113P6LH\B:M4-3*R%*U<XO+L6%J
M";Z)L-[0O.ZR,,(4,[J]Q*&G6-`4R[%@^'=2=`44,`;`FJ4CT/B2!0;H.A:Q
A8R8?!6RYI)&:4SM$(V=AY+(L9-LO3J;_!\8>@\90+0$`
`
end



More information about the Gcc-patches mailing list