New Compiler that optimizes #ifNil:[ifNotNil:] family

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

New Compiler that optimizes #ifNil:[ifNotNil:] family

Blair McGlashan
Attached is a new compiler DLL that optimizes the #ifNil:[ifNotNil:] family
of messages in a similar way to other optimized control messages such as
#ifTrue:[ifFalse:], i.e. by inlining.

To install just save over the top of "C:\Program Files\Common Files\Object
Arts\Dolphin Smalltalk 5.0\DolphinCR005.DLL", though you may like to make a
backup copy of the original first (though it can, of course, be restored
from the setup at any time if you do not and wish to reinstate it).

You can test whether you are running this version by evaluating:

([1 ifNil: []] method literals includes: 'ifNil:' asSymbol) not

The result will be true with the new compiler, and false with the old one.
If you repair your installation you may find the new compiler gets replaced
with the old one. Also any attempt to register this new compiler in a new
location will fail in that the old one will continue to be picked up.
Unregistering the old one first may work though.

Regards

Blair


begin 666 DolphinCR005.zip
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
M%]4W3*3""$JNUJ?)<R^NS>P_!Z717IE;T3(",^R K[7#W/I/B+8;P*S(8%;
M[K7B4!?T]T?,WD2 E.]SX=B$5L^A'G7*\^HAVL/ '/)-$ OF&5(=\N40`L,4
MS@(>.)S,8E%SU7\VC-6KDZ]VH24]JJ5>F0HQIY=3D_H!V@FFY5-P6DA7>4&!
MN747ZI#,B]9(<R/FPT%[IKH^3?Y)311#D/\'D!_7U_P(/\XP;I*=6Y$:FFX-
MF5L_PV3@-C()"O63#.D;?M<W>F&-U,%COX?_R:.8K#U""JW&*>^KOEC$DU3;
M($HYLWFP8:\R4]JG]NWGHD4&0F8"'^_\OPA:+*$#S4+P* [)6W7B'2#J*(F)
M-Q.@<P,?H2HD3(LPQXF]8 501P.77T F*1JQ[A.NEIH'=&(<=B>CDD!TI-1$
MLHT!/?2$$A?T!4<RL0W L-!81F-0RA30I7?0+F/B2,[RH3UZ80S9Y]4=ZBMK
MW2?HTSLZH;MLVDE=$WB:[W;CP"!?BHW=C!YD\ '\S:1>3M-4J<,8W$F]&=VN
M7KU#O4U-V@.-*P_$E3-'"$L'=VY!B+CL`$M*>A@'PD>Q6#DQ5P7X=B71"Z.A
M!]U<$+V0EBS?5\V\+.C&)=B#85QC" N"Y2HR8C/BM':VY+A9$/2*>EJ[OM"K
ML^/4)/3&NO@T1,DJ+"</4$)YLTK=Z,PG\7?C+LH,GG.YZ<!X6KX9D>6!1SA
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
MD\D(?J*]VE<0H]=Z57CZ85U?UV*0]AHH!>_*3V/W7T27"@*S<YCW7U5)EPW
MY]06]D I7#!0HE;<^S4=EZZ#$86M:35-`_MZB"I7F\TH)U&*6#^(A[ R+Z)1
MY[ZB9:=2C?(<'"WSZ?=:&>4MX"@YX#G,T;T&&8\N5.[7B(#A>@2W-0#U*7GO
M%ZI:(*1ZU0(8[R!)&$>'.ZA4Q@6PF9YC$%,&V CU!S3['!475M?P?5AZ1KD6
MPI71@Y4Q/%B5P_!SA/69G._#(K[M^ZC>$\65I:QE21&N)*#^O8!;E(LC##C;
M3\%N`#"<CX_CRYF>]@[B``L\.3+*DW<&PSSYA/'D?8TGI\Y1BHW:P0-<J$@_
MCALP<=@?]70SAM!U86$Y';W![<1^C-D?FFA[MC H(1O"H728]'EK(+04:I1:
MC..%*6ICJOR&&[02:%,;,YR>0^A)_*)8V^CQZG!AT7 +Q?77F71GIU.ZSSA6
MG$1R4MJ-<PK3>'$,;BV)T%W+%'UZAV:\W)X!W!RE)R%DKRN:<ERYB% ^#U+\
M&I7IF97U3H'W5BMZZFG]]3L5%_/F4<)70>AI2(@BS#N;$C9%(XS-=<DI8C>"
MDR1>J3:F: 3TE0)@K)?'%4[XD6^"[M[W,IJFD%ZTXD:FN15]+F"*WNQ'DQ,I
MN^2_@(BHLM\[:*6/0)[RIA0:*Y:[@SNWL2+0RUK.J\J>ULZUX?Y52)X+3"UO
M[2 'A$OD+ #WU:B0=2YH.T?>=<A??PIZ<5!^C"'/@/PJ91*:*'9(`K3B.$KF
M^T+L)IVD)*U=#Y*.O2-0DH:.059"6\YTT:#FS,3-`FB&3DRA1@^(DO\!/4C=
MK#E8MSKPD$5D6G:"]:7'$7$GZIFW*5V5D\]1]5U$]W@O@WQU$?4\Q0F>[VD!
MQ%L#>/.5$]XFR/_B+"T0#\$CV"VC)GX?L1KF%+)AOY.J!U6_513]2N#2#'LJ
MSA]X$@(=0IEGHEL>PB7[`S<?EW.88@/V<YVRL(@*:KQP'2T^N?6X.!%T%_P:
M(,IS$-ET8"':<>\*0+3V%##V5YK>CA.3P1CR9'Y*B7QRB3;,7ZBYTL[7.=3,
M2SW<\YR%>DWHG@,^[&/33E%KWTDI&*(4#/Q8`S9PT0WPJ:/L^1OHP;E.W\XW
M:243/",41JZD$.*SRB1:+:04LI2':$WWTYHF05LGL+:B6<6F?K9@M*FM`ZK:
M!QJC:@PVB^FD9;:<5TSY?P.G;=E?!9'^&VDI[%/%`[@'@-U)@40%>R@><@1!
MT?5Q"^5).YWO^)ZG(R2J%ZFL`]QM-E5TX1&,`=2'0\=I=SU21$$L8B)$NB#B
M1@,\@-::4R[5) 7QJF]5E1(4[T:#^PVNFD#RK4X\-S$9"2H+D\P@WL%U6)M:
MU4:)P155/%3D4FFM4V[[hidden email]-VQ6>!)C8IE(TC703,L<NR-H[M84K\I8BVH
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
M9<[hidden email]!34.:[;]>.LXZ>!PM9]XF3P'H`"0HCX18@H>\9U+<@'Z)^31=5
M/ >GG9PS$5^3CG9)`SNI*5@BHOPG-O]54LGT5AK6-1DW#>.7*.'5K,]9+>\"
M)=)S)JB "_HMK"%=?B,$=-28@!^637F60@V.,9CR!![M=6BMEIN1P.3(NB9=
M3CI&[#SHF5VZ?8J8LU4G3".A32HNI35.C5#X!4Y)'%"]$DLX\RL;QDDJO][8
M%3L5,"IC)-6X/K8K-@4BOI]"]1,8RC$.TBVW]JEJP,Z/.@UTVX:()K=T3D=.
M-XT/YD*'DS(X06>7.HSSQ4%53)1Y&"?*@X6SXDE^&7-+'0Z8@V?TX4J7X"3\
M)O(NF=5NLTA[^38[+\\"@ML-738\^,6UV>/:<R$Y-KTC(W\9C(O"7*G31(HL
MUB+3QIO)&/]^(:D$L+D16Y%1M1G;\L89B<W8OG!$ZC2V%<8:LU6;Q;=Q&8C=
M*.X%@MKL,<&\6*-#_B68>G9F&QPM"U,U$ZB:U&S4475KB1)K'XH5UV7^(_L\
M%1S\@:G@*5U8!0]0%<3T\U00$Z@*SLOZ[U7P+UEX+(FJ8(@MMS+;%]DEHAJH
MG1/&><(880IN.B6A(8TB^TLD^R6<_?6C*7_O'54-^D<0Y0&'_/ZPYDHGJ6(_
M53*'UB!YVCGT3/OE(K#-Y=J !0QRN=EZWT^M'!=U(M4:PE4_"QO):1N4*TE<
M+<DV#>W)%JZLO>J<KG:NGEMW202HGS5T/R!*[U#HJFC%;E.4MZT!RIM51B0)
MF5N1(V2:]SHH.)4M\=T)02/T5YH6Q]*N'<H=:Q$FAW?>L+9O4>4KH"[%!G!'
M0?>)+5&)1T (""9I.<]U<6;L`&E=')XK42ZI)0M-D%F[Z5/.4OO#L:G[I4\-
MTJXI`6-@`Q]1&78X#;=ZC 7"%1'&?XTU*G,TN^?!H0-[7!5,!*@O0S4@"\0"
M6B1GO<W6T&[''<6_HVE7TY'[_\S5C/Z-H/3YFX;W/,U9&DY25P_4!7PZ!-JO
MB>KIW+"H> [Z93!KXZXO],@7\O,FP"BMY+F 0?Y,H3PZ`-4=G*OQ[5U((V_X
M`*C-!OU_ROH[_*H0#U W2JI93-+\.JR,,3(1F]4\AA/,8+(,R#6Y%7 I^H 5
M:^E;HR)%K)!;?E.;L)E;<16 EIN$8*-E"Z!LWQS(ZS(@YP.Y?-],B(5=1&"N
M5P=3KLVXXJ-N[D 0F]Q.OV.H:K.I`;H4Q+ZNDD>@X[ #K\QANYVM8P*WS:UF
M"#L]PS1/'OE8\^1"`5N__#7&<$+[SW#@Q,=T6I?9#/D#3:D:3GH4=D872'#V
M)@#R@]7)MS:'6GHA4@V3.9TME%D1:L$/7,@!KRJOGD8KF_\5E>_4RW"-U NA
MEH]Q!2"+N>3)-'DU)-_],=TT("&ZO 03OO#"/YYXIB<N?(7L)! Y4!O(D _T
MCPZDAJSS/8IO6/]:E0%#,U"4RA89_OD>- ]]5/F]RW"49JGOOH<F1JX*4!:W
MVU3VD4C4EMEQ-TYN[Z-#FG<.%'F\C]:,BVT!:WC5D6W@H)WYYK"JYBK:@#?
M2/GX-OJZTZKY#Z_XCPO7T'7)17VCS<C"/JJ5^X&5>Q[*T7-6D6\3@"3OTB[;
M()Z!D<?3TN(=8/0]#P/;//?C[&>V/QGT63MK7_9\U G=1):(\L$OB<:"IW1S
M1U^*+JPX3G"\Z]'W#333SCEW#%.FD/S;.3@XA#A262\DL+V,AZ&A4LT`CAF<
MF(B>($Y.'?*,;*WG7H:CB5B&.6DT9[R68_:_A!H5&YE09<]A&UMR=P)ZBZ!W
MX5IN.$SU9]H<-CB)TZ#MWZ*1F@11O>C9:QNQLAV5$?G*$P"+#: :E80QVP",
M,89=.(I[Z0Q%?A^&=[?G%.LFE77RFG^BMM>1HGY'H+B.:<6=-*V^*F"OVZ9;
M2M="H#8#/2!Z3NK(PJIAXB5LQK8+/JU^7!)YZC@M22KKH&S?6M:7-_6GZ/%
MVS'O4KGR"RJR`A#9JR@M*10OQ+SZ1Q0>2K!D5'HG?TQZF$BZF?0670%<L! )
M!3>7'AFRC33%@3P?U>&9\IW/8C]J/OD<T)A0^]RSHB5H.TE7Q]&=F7]0!3M+
MNMW>:KG_0^@9GL>1(]WR)Q AN?50*!ZL@YCH]JX@W6%]VXV0RD243+<F![GH
MGW0/JUNVQ","5)8&Z'F @QD0)LANN09K'$*\8C7)3:$+"P[YW-RP2D@<'CF)
M4/C"N\R2=LO*22#)`,K2C<K2+4_,H-//;OE)\%C(@/6'<!7Z@\@=^3OH-4H.
M-EN\"6MZF];TL%:3>"EMDCQT['RL_[@-CU7_W@VZTRT?P\R?,DWJEKN/T<FK
M8< _I*E1M_S %!Q(!S1-Z@[DULEIGR'KF"8MK&-'?2TT#30I%S1I]- /._=/
M74AIF(<Q7XB1AF/$8D\_6T'#+2A0DMLA<P>N)PDQ.W#)*-+'PT?F+]2/\('Y
MOCSLTRUUQ%Z]:%'0M+%]24%,T%0P='AHM\[<JD.'[3[>:_;_@,07F8*)\WU-
MC@3.[/\<$O!X#2[4X6K<?;A,]P`./-"Q@!QA,A J3)"&C>(";5G_15Q(F,L,
M"+4=-J/,Q]%)7Q);FO$>8%1!T'W)Z': V$-[MNU67"[ ?47DI/S)I[0[LMT,
M7#(L!C"H3E@H#<<BF^+$2U@'Q^YV$V1Z5\O"$1Q_3.5 (*0*"0"Z`Y53C-F!
M>DO1.^16BKJ>=FIEECK["=;1*"-?CF;D!1\R?'X9FDG-$Z2[BY%=FMNMW$6[
M-%3 %CW]C@R[_#V?T2Z?Z0FA^&A7QT6LH'_@XBXN'5!9.NEVN1SR/9?]BSX>
M`R)T[QR@77PP:!M\+MQOGI77H$=E,P(F4#K(<F%OZNBE>@B<JV;*^L,'JNH*
MYPK'M%R/Q+39-B!_\ 'K`MC1;HG1I-8MO_$![6._F(U#43=:W=;)-!/PRD]C
MIM1*E6K$Y2)\&^EVH#Y,/(;[WMZ[`*8%*\:21GE&+W;Q`=+-1'_R$RB]KEZK
MR 5P@9_6N3S?,<.T]Q-*(^WIV( D:.8V7554G\J*L#STJ<;RY!?"+#=1EN_Y
M%RS?,\KR$(P/RA6X;AFTA9 YOP*C![Z6)H01*H035 B'H,+?);Z 7P>KD#B(
M)G9PU(!]_A:Z?"J(R?0"BJF?V>#^48 WWU(UK)H@3P9L>YZ+LH'/RD^_=9XL
M3U)I#7Y,.4$KS:T3;PI+$?TV:M/E5<?0HO^,,6[L^S#QL?53D'>!B<I8C<.#
M1Q#>324G'Z'JP"JH.1JIP/9VH-DH3G.%,<QG>9I44+9??L3:&6@^&&@^(L2
MV=\X;;3V7QPY'_Z@_)H&+T[ =,U\VH[(3X_BZ0DT]X+AR*T/V'H4Q-<"^)AF
MRO,NP-<K>S]BRJO#Z#YZNIE9^,0C5%5/WJ2IZ@GY6"+F87M#[T4T=0]H:E8;
M\JWN`T:"<%VF&!)C@4\KE01P>W3B6$U[.Z"<<@W[ZL" AF_L:">Z\0,<"#U&
M$#;$K@%'`&9SW;*=;G.]'59R]42TDM]+W4]C%=C*J?@%C"F;V'IJ`_R"J&]F
MJ ]\$""2M40\'8.AQDCVD6@$^WX,0>__#0'P!HCIW(<]:G3"NZD_.>QOREL_
MIOUIKF?Z"]H(1'<`@G[YQ[P4.<K'_/TEU,<<X/ +>]N@._TXF-1 Q:"<?91U
M*WL]VT^RR?+*PRJ+KV1.I_-P>+=H/H;@O05X[&2J<$">C>!L<M)2[V3+^03K
M8;M-_?)$YCM^=B-.!/IQ-(*IB7RB:W0TVC\!ID@5JC ELV)P8Q)@(16R]9/F
M.["JC?]$/_X4W3U@HLNCOEV=ACXDOWP()1NB(Q'51_F*X^$1IHKZC<QMYT?9
MN.(CRL:4R%SE,'/T_S$#UP+Z9E%/'&<B,*L`4R\D=-&8GM.^Z4R&II!F8_IQ
MZW!+'LQ+S*U_P5$7IR4Q%+> .X??WL"F)2G:!Y6-*3.Z< !<V$7Y\1YD*X:V
MRF6+E!TXMVG(K#"V3*33D0[4S@-M]F7R2S>P,R^X-NI'@P/,.4!ZY/O @H1/
M`"SXA#9G\D53KZ^O@QK*0;$-G?Z.%H>UI5Y8F(^'`E39-1ZR;D=7GLZH2!?X
M-M4O4(]FY"SRT^B9_<*%WP%B#IT8L6\`\4L#-F$CG4O#.Y52?Y[3Y0;[!U.V
M0/.@_-7UM 'FUH\-''=YQ8#48AQG;JV&B+5YL&F29!O(EFR#%M )IW9:E/24
M$[LQ6*!*ITWFGT\"2#4M>&TY4('[RLEL`:\LP/^=%)<Y2LAX=7%BWU=Z=K#F
M@!P'9K;O.-TNO&"S77D;IT#/4B]T7'IXDVUT!4DIP>QM-/N;F[7L<9'EKFRC
M<B-";*40[_P8A$D9>][>-]*(5W'\G9T-[<O'W7TU6+0/)ZAOO89*2K>.^G'Q
MY H#VSK"XQ [9K*C147[Y)%_@'4[2H]9[F/'+,]K.3F0+[<CM+BO[R$=W>LV
MMSX(`;IWO>%#U RSWZ=C%1_!BDN@8KK?="?-I3286W'UOLTFJZ(LOW8MHP0W
MKU^%KA0Y@@08'++W'Z.$]ZIBKTP8N'B($GF$$<FZYL ,-.RA@.GOVE%:H#B_
M[PL.%V_D64T'X#=SXSZHI@L!V1F'\<2>#.W[H8>,=Y2 H)67(V<;\-C#GR*"
M/=8;%NV6T;,-K\OWOJJRK;K7Y3=>1U5^'2H8`!N$C$.R\N6R&<BQU^53L_!]
M1.Z#=[ER9YOM)&X4OC9=^\P0V_\AMO\L[N\%X3]M_^M:^Y5WHUM\D5B^NXXA
MOY\BOP>0?3027H<ZA.Y+=(%\94&T>B]7IC)-\JHEQ((G)?K&4&LNK]33DOG*
M1.TD"IC%[W!)3'<-[?/-UVFKP/Z'M-J$N\/'%"X_3FW3':,'GZMAX":<7VV9
M0+JE#IZ,EW;Q`0N$%HG?.=F'TR2VW!L;7A](O0YG6[U*]OD''2!'NII#/)<&
M37]7#*0(;YE0[QV1^GB@/E#4JRY.7B3*&LIR]AU[YW^4<I;+7!"']P9X?JZ]
M,\I8>C,\'@CGP[.TC,7I]W0KFOBLG[28LW+@?6=+7%;5Z#=U>+7/#A^'NZ6G
M'($\_.;[,693R('TK^3EUX:7R/\,,&\,QM$M%+!'N*F/AVNM<M,$0X?#"463
MSS-'DFP0"@N$<1K3*<L5-S,Y#\-\%V:U7$?3Y+F@;_,V6@Z%-DR:BZ>1-YI!
MFY7+1^6<K)5'\2;[.YK&,JC8-GZ&33%KF3C"I%]%V?JGZ6%I+E'12Z3R=(8-
M?\DQ[?2HO:R4RM-!0J5.$D=/$1M@Y$"[#7,N;RP3WXKI/[I"UX4[=9IHZ"HX
MNZP'H&;]J[M%,K2[17;(8Z=KML;TP86CT%F&WI.&RT0D5E,CO*Q'WCL>)Z;-
MX^C%'R[58>G#NPG Z9(Z'+0[X=T*I*@GD%.&5P61EN72%V^ 6XNI1G7[LT@,
MO7"'?8(CC &7G8"7W$&R4\&Y)<6SB6M6L'"\KL2K"Q:=*'$[U.UX?8FZ_2 =
MB=,`MWQT!]@$[7*2J;3Z$SI[VD57E'02<0=0UEZPK*UX69@^(SU N?-A!!(7
M.TO=C"C9<@7@D8/T@B[2S($L9'Z7K \8\(L(601+3<9(7?RN3_5 4X!>^R27
MSZ2C%0RQQ%B*=S9552QE-T*==[@N,M!4&*V/M4)KS*UX$0!Z28V7<]IN2*!Y
MA +1#ZQ&OV\H,EHWX9?.0B;PPS;@Q/ETW78P*'1+VN%Y3_-_KF"'ZXZA.6XL
M*]>^^.C#D_=D&K&RFSE(%VW,UAGL;$FY7PW0JZX".Y^"WY9KI4Z>&-A9=NW&
MB%+<%BO'] <0,+/9&. ?;/J0FL\1=D\5J3 -=>K$99 6>#+JAI >H7*TX>IV
MS(CL^J18?XZ-$J\AFS'#R]U)C$3'."Y<`[9L2*<3$^Z @/5@PW?1FG^&M?>=
MR[5;:+3C(*GTPHJP1X"=C7[ /\Z `EKNU1V2E[9VFOWG]/0XAGR6NAG+T]5=
M<NP5G9D[.Y )S2'S([L.?GI%9\(^8J_N^#0VH;O=P;<5A=H+$MJ*!ML++&U%
M*GD`]]*L[[:5GA/&&"M";47#?2MP.8A]]NE9/PX2?5]6MY4.]\VGZ9>*DWS-
M@ZO,_CD0A<R]MN&8OAL@/.>]!KOOS/AU.9@M6C-WOHTJF0X@[0^@VWGN+6=;
MZ6!;T6E5'-R;S;]-#D#1V+VV<V_CLNOZO6!7['5]7W%8R=OB%)AWK1(3-2PF
M5E%L'R[&MQ<-^DZO$C,RZ:<RXBS?F;D-,WQGLM=?W4[]6VR&[3329=Z^.YC'
M^<=THK=[N!L<L@<H^@_$*RGZGV@H&BXJN'.7,MMWYFLQ78-P^#9,6B4NN!"N
MUKS=IL+/_EV]1L,N\QL=AWJ5!X$)8JKO]$%Q*A2J$9,RZ0UWXEBII9X7XUA+
MXA@F0*,VUK?38P-MMC/J=JQ,W8Y;F2ZYYU*0:@;>1&,+>?6!?+X<:COWZQ].
MD^)Z_V'S([NETWQ#ALBW'A9O)OF)4LT@1Y7=O[_E7ER()ZYJ`GZN;2"V?<E$
MGE0,JK;!S*+!MD1#TTEE4>OA0,4`=$$Q;J]M8'70=@J7.*#HU8A':AY,7I="
M$0R"5ZPA"*FV4&91"!%\3+O,0-"=2(R+H=O4AV]_P\7ZP98K@OG),/V*N@(.
M@!$,J.%SK16#32?1#>S5KM3+WX:>3!D>E.HER0[5N<01S#?1C\*<]>C:';J&
M6J9R9MRD+B,QXHUK]57$UA\^6)O"T4ZP2S8,'=RJHT?W?_TZ=556[5)5>EC\
M=/I0YOKZENGL8Q+VY7+6:C$!OV.7W@3_-MXA9W2H:KEAP+J^OJDG?*B8G;ME
ME_J96_^!%6W&K]C<ULTGX2742B%5&*_>DH@+B/3.0_F=O^!D%',Q+Q/MW.W8
M2T-^54CSS>.$:<[@DPBIWF)YBJX0_.8ON,3:+?\2WDN5..T:1(8C0*N#F9Y?
M%<&U3_-E<,$-JJ@G(9Q#(_+[$%@<U&I?]!?T-P<#.WLAUD51X)Q1#EQ--T;I
MOB@X,(%-F*-]@F-4;Y57HO<$'N=UWF6>^A?HV/YG&&F]/_74L=@S&&OV>%CL
MD:OP<'+XEC=ZQXZ);,8Z9^PK<>"AWM4OX6+3(/:_QX D[=:Y0;GT)4J@'$+W
M`DQRU$DX%T PGIQ"##->8I_(=-E&L UR"+!3U/?\&3)PH^SS<$HYIC##&BR2
MY5,O:GYG,HSYN"5C89<Y8M[/T1?(8_5@T<NP**Y-_SJ,S/1G]-Y3$?C.--R*
MD+$1[^$.,Y,S9,B@M]X$C_ "BVY.HR?=L/0!R&G'#V:'>O#ZAS$..3N,^*_;
M(B@&Y>=0]1NIZ@]2#V0)8" #\B<4UZ!\-(V=S*@,;T!&#;\[\.AI)-H3&6>M
M$AV/YI X4IAF(1;I2W[7EWKK6\W325,;'RD"7D\/&UNA")Z;%N.HUX8KU^QH
M"ZV1?OT,OF-P)PV,#_+9."6J)O,(:&1+<?IA)XQMA%["2%(F2KM-P653]5*W
M+G )2\3<91-#/YHZ,IH*\47BJTNAUY$<Z&RQT(OCO3":RG="G^P,]T$>^^"#
MM \.H#0?P-],2F)3JM1A<0=TP9V('JB\\$:IJG!3ZLFC"#(?8 *FGVFI#U#Z
MV<?]@26;>."=28+ARD"*,S201S7$@<*?&5E2L$ 7> `#BD':IT:.ZC-9/<KN
M_@3.T8#QT'^AM03&46\2;.0@."W-H98%Z)/81KPJV<<^%=_UJ8'P1AB]]"9=
MP$ >Q33TS3IY54C@288#OYIUTL]FZS$1;W49L=I"3:_2@Z5+]U]@N6*0:QV4
M:R.4:R.4:TB5TXVW<%F".[$.O(7+</XM7#83>,@&W,5\@#:"TE+@A6GL6UI?
M&Y3]_PEJ7&'T'V^.)?2"V'35?QP,[>96K)+?X>\0)E'M_QMT2D_3"ZS4UA?Q
MT,!P4P]HNN:A1541R'N+QPQ*I'S@<CPG6;4T;"F@HV?_JUG!;)@5!&ID@M?P
MF0)V(PX_,*S@Y9XBN/I&S=6?K<,1*U Q$J@XX722N5N `/5H>3GXXKZ,7#$A
MHTPGQ@0J3BJ3-/\1,KKX-!]0[T0X[>QWL'*;*J9 #:J82@_K)((55UY$G_Y(
MH.(@R1V]UO!M4FR$V=>VK5 ,^D\!SGHS`LW0<2F)1X)NG@ZF0[84'B]R,Q(+
M7<8N?5WN/8,'WO(!$9!O>UUU() %3!L`)0>+M\G.$0J HZ811DW(317LH[D>
MF+0[I"Z+F^4J,TE1?Z!H#YA>O.W-MH]8\#.(#3!QZ22,<79C^';&7M35J)L3
M>R^X.3&%`WBI^22'!XU.XC5^E)'B23:5P_TSH,#\>^C#3&YE_TINL_Z'<OM_
M%5IJ6&YIHW*;1>76$Z@X$B6W@S\NMQ.:W'HB<DL=E1ON1I1VR--/1\NM@\HM
M-5INOSES@=Q2H^6V;?C'Y+8O++>W1^6VYW\NM]1_2V[N%YC<V-?J7F-X\*@F
M&5*WRBX4=.*.*M:Z!!<8@OD\6S*K)W:@UW*HUZ2S=@?RC6A(9Q/[+%*::-AG
M?0^BKBS#[F!AO%[:KT-3%UAD`FN7#U9@&S-W_OW *8N3?J+#4"=JJ+4/=BP!
M2$$"&E.C"4@>):",N8Q!=TK84869.[TO.CRO$\%B'=2L:U>JTTWQT'U%[9-R
M-E>'Q#P<+T/N\%?\E(GAPY(Q=$T?3"W9=ZAO:)?.[-\.A;;ZA/N<;N3.7%R^
M#OH'Z0DUJ.$H+H@\B<VD[I%7IRTFR)4OX+E$A,,3B&?0"9D)_!WTM-%E\*/H
M%$"7X\C<951(*0P*<QI3U:.>UA>P/U0M53*A6@T#5LC6SW%VST1E`GT/!EDV
MO4MO&][J)4\XA]_,+,,/?L)-TU_4-,*:5N4F]$M2G,H/,OK11WK\>5HEU'V6
M4N]&ZI^-+.)C"[@+6G#VXA8HTR-^2C'HC,5P:#$I-1G>*J%GQ=1M*$3YKK/:
M9](NMP>/R;XQCHOSR8],!?0#Y?XA`4^M?_<TC#DG8*3JB@7'P=)E=]3#2TVJ
M0X[L15\'AB>CFKTD754+EN"H']!IWZ:CEZQF\R2;UR(NMUK DPT\..))P?IM
M4,,XJ $O$7#),Z:BK\8*TF_[\M*,4L<V#'JV/(BK]?BEHG:TDU0DIG>XK#UN
M,6&'(9OS]>&H29HM`4-FG#@M,Y\7IVS::.R 1''\IHTF>-NI623UO+*&@$85
M&ZW[A%(2FW[8WV%^>+?_<*#4)%Y&+-;)XBW$P5O=O'@]<1BM;J-X%<DV6?--
MXJ72:9UP@]K(HTX:U4/0[$ND9A,G\OZ.)C,I3I3VFOS[Q3_LT -!VL%.TL@;
M1"/5>3Z0GMZA? '*<#$WN^Q+T*RJ29XM=&KP^M,XYY*:TGB8ZGAU7ITG"]<[
MIN///K3_^R DWZ7'XZ4_FO5U#)V9_*X#(HC'J!.KZ31E!V:[/ =1H0*W8'97
M3,;O.4LRA)[90:,(@8Y'5\Q,R, _@B%7Q7'<CJV G>P#HV+Q6AR>K5A-S24<
MWEKK4I.J@?!*93Q6Q8D)C(B-1M3N,A!9>D=F##;:_$A')[WH6GL87&L<E2LZ
MJRQA" IV1J+9"1#%FU'=WC2FH=\EAS5TDE3+<T$[=M'E6Y"K/4 E*.40:B^]
M+@HO6["GTJL9$EVJA<XAX_&#&_D:U!E4.!-'6<T^7:&?KW R+MPI,3LL.M['
M[N_^X5C0SC/\4_=?N:\+_2ITPDO4I#*H>0C4%>;-+GEE,IUSA/6?K9]A9PG/
M%-V QZ&).H134B"5$?0H3O(B/8!R: `[&W[+&@-]]<*>JDP.\P%W.>;_]E_W
M5(TE,Y +JGV)6@RVWH&1H-WA4,=3KF!?K(!:7/)O)X?[HHF9L40#/0TB`O'4
MNGJP]0X<_1MY=J>[=@"'I^F8.!,3;2$'GIQ.XE!W;*'TX];.@"U9Y--5Y0;@
MP72$:>+TI$OJ,*2-R&YLSZ#3Z<9IK)C<=IG3J2:E(:/.:58=S*U;7JVG:H>X
M3.*DT9Q$M^QD.9">/I1983+[\9:?G=-@[ALL2G9Y\-RS!\3F"U0DRRTZO, V
M@)<:WZJC(PDX18Z@;<3A=#F=V,F3U20C5&[M%">!!E<DX_7RD,8C044C@:)D
MK3@>_ I3D90*N=D.+>K500NP3"*D.H$&H-^SX2%0:CQ0S!(2/<LPX7ITW45C
M9B4O8*M3H$"FG1?RT9W=40@08BSCL7-G%L0<+BA,Y_/$EK)5+\3MF VIRI@T
M'4Z:KYK^$-(M+/<D4UAE$;W@/.CO!T?7Y6"(@-@L;-Y>,>G\QNU Y5*60/DQ
M4LC-"HW6[O 8'\()2++\4PZ/`IS'%7:8/(D'<5N_$\R;/L=O1C8=X !?`*RN
MS11\KG=$NT$E.7+;!OI:>,S^E)=C!^W5)-,6>D=S$AD'%B>AA.&7KL:S4(%Q
M=,QB;A6][ N0I ^1>(?+,X\S<RZ7"U"DJP%QI$23X%XQAC2/I'=8]Y(>\5*J
MDDQ.$/3J7*A53$:DQWI.B'.SZNAIX7!5>%&)":L*I0\Y7%X]K<7$KI*E.L6J
M(G-Y5J$#5$8<$6+P@/U1_#9C;Z!H1)R#OO)HW3!!02PCK&Z0Z ANV:.6RI>!
M+8B4AY%CRE7(2^=8Y"5DD)XPZLZE5>QP1$F),_UX9H7%16Z9!>C<N.@#=-&C
M`4*2&VO^`,_N0@!JDI^GXDND.8GAG$3,N9\Z5N=W751U"W3<(67FCW3<)R=&
M=UQ+I.-ZL._1%@&QB-MX#B\N%N.QL?*5..B%%2:S8@15:83Q/EC3KUV4K7E2
MB3KZ\19%B)[EL?0AY%<Z2$#^*^ZJAD!R2<BR"!+2U?<$;4L_F<MMP8X`0@RA
M_N,EZUVV$#5C5 )'@:@"E@YH'?2.01"9;5"<!L5'0:/+TX+*FQ=4:1M49J)\
MJ!Z 8X2X`]@OC&JZFF3!;GV>],[[\@H,Y'=BW XW]K][<.ARD[DXK@7L%H@E
M!RH386(7L,/TC@_:4QR!RF3U:- ^&V^#MQ?"+VFQ!"H]UN&]]CH=_5,T38'*
M#>S/T C)F=.$1'"5W:G2[=5BC-25HGPE=:4I,ENMHEI.2HU._V$7>%5(0M\K
M:%XJ$G%_B#18_,?#WM9O<>B[DB.Q_@ZWL)$4F:06(UX=DFG-$)/)?;QU`P^]
M^3ZC=8,1)'6?R;K!)"1)<[#6O2F*0=J;AD4%F](EM5BX8(M%G!Z\LQ!4)@,[
M^3Q.-+L]6\#*J(TFU04S-2-DS4;F5B22>3!2F4B<D_99F*@9)2M7)8ZE!^?C
MNFS&\3!BPPR/^5]17-6:A!]KEKJ!3]9AX1K@R)4D'PUE+-L/= :J+-$,^A@9
M=(S,Q1$>&7X!M^GV!B!*4M?SZF2RUNB6JRV0HI23LZ*269DL7)5162>D9E9N
M(-?7HSY8TE5BWZ#.WJ&^GV]M$1J_51N3U?>KTCLJ(M??43Y38M$-<Y%U%CR)
M@PR["_R49 Z/NR1#;+)Z4#&#+P;#>*I<:*$C'VCQU2!C%X\C>E/N)BNB$"=B
M$E!_JWPK2A2SIDO6"\0A/@W)Z,$E<D*"EW/*=^*&68A.U9AVX#=*I,+D2A^R
M?NP&G3:W$MJ[1AR>;2 M,&:>IU!J22/4>#?'X:K:7F5%9KI01M;Q>&KS.:G9
MPCWWG)"&=R59=<'2?IA9T@N1'&(,7B!GP(W.`?]04Y:2\N,PR0B3*G6BX,6M
M``.LT,07N5H_.A5F*;(3+S] 11@>[5XNLMY"8D'V)9G+TI(I4R%R'E-_&!=F
MZF5.X.FF>92;$X@]!<=&IWH06?H9F )IGL;,EX"9RN\!86(E?KI/+V `JI:&
M!Q%ZS2/8$-POPE'/H7V=Y@O+I0)(#Y::%K.E:)A9%+H\PE9D:@%V`#PU?[UG
M.3KQ:E(>9;,P"3J@>F]B+2F9HMYK60SOY,4EZD$`R*8&:22\P#"K\CR^4,M[
M@IK)JM%CBNA<$IL%1A)7()G8$MW4I0LDP^B/)@]ZEEIO8MX=.%A"%ATC+AP.
M?C$V>C@P188#AL4%(\B2T1AP%_W!6[0:V.A(!NQ!_E:&+0>QC;C<#,"K.IS.
MVL T-<FQ!4>51!BLC] 2UN_,053(]B#"I0_-Z68EA&3?Z1M$/1D`W"<!LMTX
MIUOL!Y,`29Y6QLK"?Y^<OYC^77*:3!#IP4B1): +/G<2X.D?VAH=U/!@.QM1
M0-5QP0G4(JP2JQ$:>\)\<*M<&I/S.+WFO;D<\N=CJ'IJWIQLA;;72L_:,,:%
M73S-(SM(28)Q/%K\(YKX]])E8;(DC2>[R5NUTAQ.N,952VZJ!64S2+OTM=*Y
M98()?F\48N%W#C!N5ZV4R8G'*V?L/A0"N\6VL4A18OIAZUMTC!!NRRPUX1^<
M&2]<D6D1)V<Z>''"I@UL3AZ_:0.=DX/7BA,L94P)-AIURY&*9IM.(^E4!@90
M-G^)93.F] ZFJ*340N<CTNX8W--9'%;Q0JDYD2<]Q-J00E>@$FFJ@S2625V)
M#C<9YU)+ZI6XKGQT)]CG8%AAU($!D[IM`#MC8QE=A< "L[6[,J- ^O\%"'X4
M9R^C$T^VHA8B4?M%;G5;+Q8<QR:C)1E5VE]+<WONWTH7F"AH'2WE52-H:*BQ
MC(QSX/V>R5 TBT[.HFNT7%0C@C(BD\DXJ)O^[2^P:U \&XI;+KA;5* 7*M6G
MR;-Q'AK]5:XP?71W+)G$D0V10RFSH+N,B?Q]DU!XY6=7^OXNS@>#0: @+5"0
M$BA(#13,#!1D!0HR`@6S<3M*;4SIBD4(^:9X/,R3JIU=*J]D!WV16%?0SZGA
MOWS#OAB^]AO:*0=99R.QP2!"L,]\V8%6NOA&I96**U,.#2\TSRC5&CFVKHV-
M#=A3`_8T^8]&CLMVR+^%EU0[BTX?[2E=]IFH(*/WECKE?(Z=)^2WZ90YON%4
M(=TW'-\4XQL>VW*M>6>G)%\A7"[),4)*08&0C(&)DCQ6&(?I\>D=K<?-CW3@
MY6U+(QB'>O"L5;DXSC>,UXH,9[9$;IPW[\2U@U#VQBNE4%;SC5+H<N$Z*936
M<H44NKHE50I=VY(LA:YOF22%;E1,D@S=4Y)3A3BHVW!S1^<V782'[#!,Y,ZR
M'D6??MS7,OT*L<D=WMJ%MR%\.C#X9WH<+3;K"O&4,@?O#"1QN!H0BI:%YP,\
MK/C$5Z.R(+%N)Q.%E]/.%;>D`;9Y@ WR:"4'9+!7'%8M;*[2#AZTVZ?C!8M9
MJ8(Q*[YI;-;8C;@I'0^EE"\JM4D-57*8P(-&IGD3"DIPQ_ZW/-[JG8R^!Z06
M`!6M0,5'E?B'88I"7D.5+[-!O!R&="^'PVV.`[_#\D(A/,AJAX%M)-!B5/+@
M[<M8)UZ2#?/X=HOO#,KA3&;+0)?=B']74[G2ND^,0<@IO@WJ#4'0P02R&^(`
M#D;$;HP!H,P6(SB]N](/S["G94NA>+++_-O=AJ,`$G 927$:J3#.V$5"[A*G
M?$LL#JXCH&(%H'G>V'9C-KQ);%OQ=':JCI\6_0T.%1^]&N$44#_X)RJ8E*QK
M1#,]Q7"-B(WZ")+;#+F0DZL<<Z.\CL=<+*\AE-=72K2\<(6;2BSZ#\*P&:_F
M"^ :,341(,JNR+4M^"?@,N2:/T5+]J9S]+#(YK/J^5>\D)849WOE](!]=MNT
M_-;C;14CH@GX-AZ(ZNO$X]XP>_OZ?=H/!/RSD&9L#;N%YX,1EFQLMXVTQ>4K
MG_J:1^:(2;3I<X6Q>^/FY ,F/)FAC&>?MWZ[`R9U[*]0@D;'49;VW0D0V,$2
MH8-M-..!K^?I;+$OAV:D428^]I*JFG=V^#M -\3903_^01.-<R'DW%^_C.(<
M'D +!BE(A'-0+_IZ??1SP.$KS?[WD(H#B^2Y@+J]QS<\/=QV_$.P?1]R%(PF
MX%!(_\"5;W@I34C A!TTX1IQROE7YF #/J$-4.YAK5[&;@B[MFT:GE<^\")6
M1PY ;<C$>>Q.L\\8Z*%7H%^=W[P1;-Z1OG^C>4;D]%5(TK7GD;2(TK20T@1@
M8QCW8_N:`8-ON)*V"+_/[SM(6S1'O(Z)4)Q$#D"6!5+E9* :9-SW(D0@#;?9
M^GX'/YIAG8+V- F,VW@,F+QCRV?L$F(@1XP'Z'%(6",0U@(ROK8E`=@H@#FM
M@)Y;;%0JD TOGF&F]IF()8S!&[!X>J56#;I+43P9!IZT59R3_R%'C34A&&N*
MSL&[A#&'\<5W#0<HET:X$;!G$;LQO"(#\VETZUSN]H1@@\YW.E5(\)V.;X*?
ML1MCVL?9E7[?Z>O%6*DH4:_$^$[/$ V02)HMDJHS/X Z(JEIYE\<PL ^-?WP
M#S\X20]>0C76=SISH]&\<[_4-TNQ^$[G-%E]I^_<>"M-N<WZ[KJ9@-*863'2
M,%$<HQ6UOM6(%?'*&#!!YC]U&7:AT0,:7L)I=:FI>*C3*([U'Q8,Z%<!U4KN
M4"</74K=*%Z&ISIGDV[I4[T0OZF9KBNMC_?O%U,S;2.-4_%.OUC<+%4LI-OW
MJ7[HV-3]/QPS[ L4C0`^?>#FH4[]4@$_-?FA)T /6R 1,*^"/ M.VG#(IAM$
MY!3S.7 ?"6QOO'8B23$1'3%*?;B<3NW_XH"J,M_I)NHGF>3L`*Y<_Q,H*P^O
MO0.V8('.6LRW3"?%1G<P3Z=SX-^R?1F U%O!),L]-"3_"1F\QQ*X/?QG-^G5
MLG36[<O@A W.=CYCCLTDUH /`@I'CU*)M"A^V'\/:GP/-*K<T$G_GB=>`$IB
M2=&(89^A"]0L6)BI6O<)EAF?Y.8Z'27L#TC (*"R92'TS[440_.(HLN'6K,R
M.+%]*4X6T!J_K5[U1U3"J[;1WY?I[P[Z^SK\O@W_U*LZ:'P?_7V*_CZNY>&_
MDKD<]+1@89JQ(7%3'X:OQQ^_CJ:OZY^QC^SQZ\BGQ$BR>4<GX+N?XFA#FY"7
M9L1#!)DQA;_G+"TWJ&/Q3<8V(=$A'8D/C'5 @CC/XT.FT,/Z_H[R9\HP$7P:
MI59*Y7Z',0__%*[ P\\S2R JXU7H*L5:7J[,A3HR*1@HQBPR%B%<P7M'K ,-
M$^@R<)QZB&9+7_/*EYI?)UV%*2!SMM-4&G69$/0C_Y 8+\U%_)QRM71.!T;C
MG%Z\XG?+6"7Q;A=,XB%@@H"<I&JSOPZE&.-[3L+$_IP.-QEP"> VM\-)KVF&
M61&@,8A7(U OFS(:+K>9<#-0&!_&;:2XH3 H.MT--''J5;Y1B7#_^^__U__^
M\BC'-<#C@^<A>)Z&9_FC+$__",=-@N<*>#+@R8/G3GAJX6F!Y^N'.>Y9>/\%
MGCWP'(&G%YXA>#Z O#)X7H,'_U(T?B&P!IY''V&X%_^*XTSXW0$\7T+X8WB.
MP+,/GIWPO S/?\+S%#R/PG,_/)?!,QV>#'CN@.=.>*KAV0#/SW[%\#X#38$1
MU8=.#WBA/DPK@/9DP',=/!9X4K3V?0OO7G@./AKA!TZR\%T^">U%)#YK\OGQ
M0TO/CWL]+'XIO&^#)YQ^A9>EO[^*LWP#3_-JSI('3PD\QVLYRR\!UK:"LUQV
M%V>Y^Q[.TH$[UAS]:^#G_3O[5MN[O[SVO?%2[9J"I1 _<T'\A[K?KX^/^V?Q
M'][Y9ORZ95^.W5@/]<!3"L]-S5!O,Z/#L96]+\1?N';EBCIG34-C34/ZS1!?
MXFFH65&]:LW=16NK:^HX+J=^18.PN@;_`#1WUUH!=X*X^6OJ&]:NC!3**5WB
M6%R6?O,->86%F.^J:5BW:NV:^6NJ:^IKX&>-X&A8>_?\/$J'%HH-<);PDS V
M0D\'>]EC>O7GQ2=<$/?\,E)&C[+=`K)Z.)*V!-).0EIA%-QNE#>D%43!Q8+^
MC$!:2E2:!=(.0MJ>J+*#J&];N!_]][]]*=*7OM<M$H5Z4<BKN4N\VRDT@";E
M<-PVW?PU0DU#W=J5]]14SU^SLJ&&J=2+T>EY-:/I%5S>JG4K[JJK8>I8N.JN
MAA4-]^6NJ*M;Q_TGE%DEK%I1M^HG-;D-$*(*O%(`C>-*N;R:NAKAHO1B77Z-
MX/2L;1 <*P1/\8K5-3G<U9@&6B[6U12L6%-=!TF<T5"W3FBHJUD#X<-Z]ZKJ
MFES/BH8E:XO$.F'5'?<)-5Q\&,+-<6D1#/95=34,+:?J$6+EZOI5.=PN76'-
MBL:+R.%J.1NV^Z+T)W0%-2OJ\VH`P=K[N)<Y>T--C=9X[G:L#;K/RISJZH::
M=>M GW6%:T>9`S7K*6TKZS%\4C=*\Y*UX89PIQEM*P2 6&A;7&PKA%Y;70?]
M_(_Z]>OJ05I";0[W!XHW++R=NB*H;<7=-7>LW9##2;KYZQ!5:7U]30-@N8K#
M6''-!D!9ZK0M#N/;K%M<<[>S1G"MJ!-K;%"06XHIN75KU]4LK+F/JZ(Q$*Z
M401HP)1%8#"T^%T89^*$E!SN;HS;UHBKM?R</%>.8WZXOD5<[MHE*];=4U2S
M&IG&F72,?GO#VM6YA4XP.6,!@E4X?\TZ8<6:E34<M[:N1D.PJ- &9BR,[5?Z
MU36K@9$P0^/FS;LYNSS'D5,V/_M.Z%=Z)G[H!9"3#CEED(4YE?I:K)C;KF<L
MYKBWN*J:#2MKZH4J#U6PAG2.>T$/)-2!PG,[]$Q-H-]C:%T]X'P,ZUV]MK&&
M^S6&UM4`EM?T3*@<]Z!^-2O*O:&K@L1JL9Y[40] =6C$:[A'*=6(\2%=5;W8
M4 .I==Q>+"^LK>:X(J<K=_$2UD*SKFH5="-0PM7<$US5BFJON$ZHJJU>U<B-
M_OODD=>R\%W_&!LW>.TI@'@9/!YXBM;"F E/`SR;\(&T!^%Y!IZ_H6V"DGK.
MP.6MK:OWK%J3NWC6K%LH!7EU=;DKUI2NJ0-5*UZ['N.@W[EU*]:M6W27%SH$
MIH#$5ZT#&ME8@RFE:QK.3_O??_^?_)OU'&>9"0]>OH97L^$EX7@C.-XHA==)
MX>W)>$LRWH:,=V3AC5P[X,&K"/"R`;RQ`/$\IKVWP!MUIA7>.')O@#<><*R'
M-ZZT>."]')XX")?A904:/*ZD%$ 8UX@RX#T+'K-&XW0(FS285 C':V63GXWX
M-A8(XQ*-$=/@P<63T#.<90`>!)+AW?L,HPEQ]3S#Z,*R!R',:^%]$(Z!=P>\
M=\ #XR"W#=Y_A&>L1L.S$!ZOA1^'<)(6?AC"$^#="N\F>"9"N [>'G@2-9CE
M$)Z$],/;`4\RA+/AG0'/)1">!>_I\$S&MB+MST3XDQ'%'V-4O651.#U1?"Z+
MXC,7A<<8Q2OD49A7<A2O0D]'^#/P=(0_'5'\V1;%'_GI"$]ZGX[PH36*)SU/
M1WA2%\6?@T]'VOYV5'A/5#@[BE?,KH,_"K_YI<R_=):X%RV&D/;B"AUNYY+%
MD'Y'^?]I[_B#HRBO7P5&Q(*!`1L:2!<+)5%^[+>W=[<_[O;(+R"=D&!((K:Q
M<+F[)&<OM^?M7DC4*A;J,(J*RCA:4:FE'6JM`K4.C(HX:J5J1_S1EA&TVJ%(
M6Z9:I1W&=K3OO=WE[G*7R/0/^X^;V?V^?=][[WN_OO>];\F0CB9X=QN =[4A
M13V-,M8T!"DE'4UYFVMCG8,7A_T"V_:FI31%7RX9Q_>NNO;FNM:.-?5M;53S
M#D:S/::9\N#XGHQ"*6,">4M=^[*F-<VM'4W+FG RZZIU9A:X=(X8<,&L!Q(V
M\DQEUE'/-#-LE:N/Y>*XK\Q]95;/, GJ-BR&VSU<R]N;5G6V=#"HHRPH"-C2
MEK:Z#H#W0MZ%S84UMG76MX"F<3,'Y1;H83KZD3(D@R-,*I.A(<].3LD$\>6V
M*6>8-;J"Q5W!5KD`RP7T1BT;MR4-QNS^I.7U8_%$##N6'?= +)U,`7[*0H7L
M;([TLA*I7FR3O:VFW9HD1.A3)PO'#51J73]48TL=0NIW.,1YN):'`YV9U1BH
MH3E\703J.PCX7TCC+P,*,=R=`)X>A.HS+IC./L5BT73:M(5L(I[H3:83PCQ+
M(/>#087Y\ZSYR"MC)7)QV!\M\$LBCK(2,E0H0M(M1TJ("G" I0.T$P,9$^N]
M,]B,1;-].?>(1C9M,*&X'+*9E<O0!KD&_6$VT_@BN&L95MCXA8PQ_$=UV]1Z
MAK6XJ3E]ZC@P:IF='$A8[61<L@O4)]E4-,,&DUD[%TTQJ!L'H) =1*N!+>;;
M@ID!&JC/A:^#X#79Q%6Y),0?:M&#M;X0M02['PU5Z_H9CIPQUIO,6K:0UV8-
M%8^,#9AI&A^3=U1PV;A30/63`)&R, .>D]=@C4'Q$S/3\?PDE^!88Y+6RIKZ
M8;1?MF"8>6Q(;W?FN#M%KYD=$ :@;A+ZH<@7YN7IYEDT%]S=$#S=$#S=W8Q-
MZH;#M !Q!/ &N/'<V]3>WM8.AC ,T"9%T1/7X!WS^V5U[:W-K<M&C#J#([\#
MX._&;TBSBCM-5O%WT]D/\=H"?;P7?2\/&^NJN'SQXS6)5Z?>!4G\=/7DR6[=
MMJC!A ,-E+"+_(R-A"&=]UWA@-,L[4Q[M5O'< ;/,(RJ[6C.]FILB$4[A6 &
M804G1JU$EB^NS^LZA^'^+<!9OP+:U>Z9/W]-(/]F`'X1M)N@O0[:[=!>#^U>
M:)'@4 G=EXCN1!GX>1-9Z<<H%UXQ"EP8!2Z.`E]2#@X%S$J KST`XP4CIY^&
M/:_@_?"OH+X:EW^OV =YJN!]_9.0&PK>U^Z&7#D^_VZ/E^'9Q59!]NUB3:P=
M>LUP2FV%]V9X+L4_YP/74^/?_P3EFL!>P[_>3"W"(W"CK9'E2#5>&X>P5<QF
M699D:=8'W)(LQ1+ .<UZ&6PS[!'"$9D,MTIM@J%$E<2O`7 &X"<!^#;EJ7HV
M]0P\PZ(`'P8IHX2#5QM8YTKHQP!?8'!:)SJ!M4 ;IUT%3L"L"GAXLC3";0$^
MRI@!K"3P3A->(_1@UV#])+T`F@S 3"GXL:G]+L \21Q>SC$OQ*84\.\BN%7
M5P(]17@N`'H_/45Z<A@3V42@;29]D2Y-,^4U+)8)SN1L)>"WP%@?8:(\&; )
M:M,'6+B9EL($]C.X1[,5!T^H+ C[KB?I(H"N!"[9,_:Q7-W+\6U@RT #`9Y9
MP,@!CL!J(+9R])Z!&6N+/+(99BC4H0/PHC"6('MGP<Y667\D28HHW'8)A0"X
MO?^#+-^D^&IS=4JZ]O=\F1[%#PVP;M!2?N#1"-RHU :^&,,KB=<@4*)'ZV%F
MY!4G'M/<<1/><^2'PEC^[/C#W#"EA,?(B!LMWD2&==:YM$8S% =)XELH8SW
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
M% ````@`(D^/+*VI7O+E7@```*P``! ````````````@`````````$1O;'!H
A:6Y#4C P-2YD;&Q02P4&``````$``0`^````$U\`````
`
end


Reply | Threaded
Open this post in threaded view
|

Re: New Compiler that optimizes #ifNil:[ifNotNil:] family

Ian Bartholomew-3
Scoping looks wrong for the arguments to the new inlined #ifNotNil: blocks.

You get "redefining temporary variable" warning on the following.

a
    ifNil: [b ifNotNil: [:arg | "do nothing"]]
    ifNotNil: [:arg | "do nothing"].

or

a ifNotNil: [:arg | "do nothing"].
a ifNotNil: [:arg | "do nothing"]

and the following compiles and halts

a ifNotNil: [:arg | "do nothing" ].
arg ifNil: [self halt]

Ian


Reply | Threaded
Open this post in threaded view
|

Re: New Compiler that optimizes #ifNil:[ifNotNil:] family

Blair McGlashan
"Ian Bartholomew" <[hidden email]> wrote in message
news:[hidden email]...
> Scoping looks wrong for the arguments to the new inlined #ifNotNil:
blocks.
>...

Thanks Ian. #881. I'll add these to the tests too.

Regards

Blair