Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!rutgers!iuvax!bsu-cs!ibmbin From: madler@Hamlet.Caltech.Edu (Mark Adler) Newsgroups: comp.binaries.ibm.pc Subject: v03i059: egacolrs, displays 64 colors at same time on EGA Summary: egacolrs.zoo, displays 64 colors at same time on EGA Message-ID: <7744@bsu-cs.bsu.edu> Date: 14 Jun 89 10:54:16 GMT Sender: ibmbin@bsu-cs.bsu.edu Followup-To: comp.binaries.ibm.pc.d Lines: 409 Approved: dhesi@bsu-cs.bsu.edu X-Submissions-to: ibmpc-binaries@bsu-cs.bsu.edu X-Questions-to: ibmpc-binaries-request@bsu-cs.bsu.edu X-Repost-requests-to: ibmpc-repost@bsu-cs.bsu.edu Checksum: 3933761492 (Verify with "brik -cv") Posting-number: Volume 03, Issue 059 Submitted-by: madler@Hamlet.Caltech.Edu (Mark Adler) Archive-name: egacolrs/egacolr2.uue [ From the documentation: EGACOLRS displays all 64 possible colors at once on the screen. The cursor keys can be used to point to a specific color and that color's byte value (as would be used in a palette set) is shown in hexadecimal on the screen. Hitting the space bar will permute the axes of the colors....Colors that are "similar" can be brought next to each other in the same group by using the space bar. Those who know a little about the EGA will immediately realize that such a program cannot exist, since the EGA can only display 16 different colors at one time. That is true, but this program makes the most out of the phrase "at one time". The way EGACOLRS works is by changing the EGA's palette while the electron beam is moving down the screen. Mark Adler bitnet: madler@hamlet arpa: madler@hamlet.caltech.edu A previous version posted here was not fully VGA-compatible. This one worked fine on my VGA-equipped system. C source for Turbo C (using lots of inline assembly code for which you will need MASM or TASM) is included. Checksums obtained with the 4.3BSD "sum" or System V "sum -r" command. checksum size (bytes) file (between BEGIN--cut and END--cut lines) 11692 22251 egacolr2.uue checksum size (bytes) file 53204 16126 egacolrs.zoo -- R.D. ] egacolrs part01/01 BEGIN--cut here--cut here begin 644 egacolrs.zoo M6D]/(#(N,#`@07)C:&EV92X:``#1(D"%/F$B9`J*%0Q!B\H!H M$D;.&A!!R+`I(P>$1Q`Y0"@)XP9$C!PX<'ST""7,G#!DRK@)PP+$D"`K=-TSMIZ*`! M8<6@3IX^@5)!DV8."#ARWIR1$Z8-B#9A)(HI`Z+.'*0@2"8U(Z=,&382Q[R! M"V+.&S:.)8;] MR\8,"*^!W<*IN/F-;9(2=X]9$^8,7[!BW]3Y#+JG:(]B^<+AV*;MG#23;]N. M'G@Y&J\N=(H?3UY\Z+0#A[QIPW@CU[!CJ=21(V;KD+[7W9RYK1F[&[:$"IQUX:;'CF'PB%Q5%'&H6YU40:8\3EFAF;-1'$ M%$W0J,`%=Q>)'F!AL)\D6>6H>Q`8)B$V[4472%D>:6 M2W^U(09B0S((`AH<\47C&&A4E1J"F&W1!0@]@"!"00!;AI9!!QU\F8$;F0ZUX!=@6F&8J%9)[K;1P<=161(9DY7QH'-85E7& M&6%8["68(.SQZ:@LK!Q#RWC`(`/,,,Q`,PTTUP!S##BO?`,+/I4G7KXXP*RO MT33E*X;18QA-AM%E&&T&S3#TX:<"?RJ0X&9TL#D<"ENW5E/(':D`1PKHJ:#V MVFRW[?;;<,4T'CGK??>S0':-8AK4,J59U@FRAF54WJ5AAZ3T6$H M9$G9P1&7CR]*%V9+OHB?X=SM9/=H"2HL!UX(9A=QR/KQQ9UB;.!FL<$(:W5E+GYGWN44S7%9;4'&.0!`*/E,T1'@AKM148&ZW?X191<\!181X)[F>H MD#;0\-8;NL?"$XPAQ,H:7:!(0,9.N06WR!P?I[QR_;DL!GDC(4[<\B#&\:@ M(]&1SC_'$V`2-C.'[PC,,7Q1&OIPDR\RH"\FTWE1]6R'0.A)+W]Y$R``=\A# M_NEN@'#PD@&5A[Z_:$@FF)%=@N8GASK4SS]NZ0P)IS.&HDCD.W?@S%909YR5 M"'!UKRG?\8H0!BSIB(E.+%U)E">6PO`E(@B;0\.X8Q0YS$\IL5.>YP"%P.;A MD2\.Y(X;ZN`DJ`02<<`3'O%4M\4LI0Z!Y.M(WYYCNYI@L`R*T1P<^<)&Q+T. M8U%JW9$:29(NH@`&+G!!#&J@(I/X\/UPD:VA8E$:HQ0$UO&.FSQ>-$'@0<_(#HRB_&,R[Z8\PJQG07>\ MSAG;=Y7@QA=I28 M&:`2,7R63V)/`\%<#..&7&KR4.S3)>XX.IHZP&$Z'0G>7Q"*L9!6A"\B8.)D MC",'$1Q.>-QI'E1T*DW8<<1X7OSA%-Y0DUB-"EX'+&+7A@H5WQVU)%>U*BIW MJ,,>FM5_`@P"B4B*N&ENYI.QXR+[!&F9U>0A=B54#FP@PI$DM"2K,.:](8L_;8U,#LH= MN$KGF_)DRY(\ZSS1'FR&^QS-;BAX3T\6#)01>U(9+Q*Q,-CA#6E(BC#-,$TJ MN>4.;''/>`0(ES=@+C_[B50>A!HIJ)X5K3^\KG9S^,,@;":A9GPLB"IGL,NQ M;VL<::)FL-E7U@)&ET6)GW0'YQ8!LH4.EO1D7)[+&>HDR#.)&B,;_E*3TD"0 M@@VD96"XACBMP$%V>Z3D(?D"/#>Z8:/;!6!9,\QAS7:TP>J;H?))8?4N:Y%9%(;W\;7!"H@9!P M`*8]"],ZF"#PB(B"W#"A%X;O(5"`1#"12#MDW&&>H0X5(0G"5)>N)$S M)=&\N,:QV;QG1)B3'7B]SXKXH*U;#`UGH#85F@*'<0Q6LV.$](BK2N%4W'9<&WPRVKX MPC%-D;.OM"P.^&+KD3+04B*K=($-9,#*.DSA>#CYM:.%72OET:`&*K9!MZ=0 M$Q)7<]J*OEMA").H+N-T>.5VBU"2U)F2S*$.9G#H4;;Y:1"(>LOU/B"O"=N6 M*F\$A:*3YAO>L(89RI([XEYS9,L[67"O59(]CF6"B")H[D@6,S69]['U_)># MHH\M;@*!3)03<[K$#ID1OIMQ&.Q&'?$UX@BD#!ZXICXR\T7E"5>>JA_.V))0 M&P3B#=[&VXQR!"*]A.E;WP%;#I'=#C,UHS,4AN,]F@Z;/;9T2[O:U[YVY^PA M:.(!RA$,!H(DN`$.KIZ"XQCEEF*?H2T@-AV,'@ M6&#!'.#.^`4]G@A)8`$1L$#Y.=AE##R"^T?28(<[T$$'G;>+SX/`!,US7@&+ M]SQT)H:1UJMD;Q$R]$6B_F@WBZ$TH8F]ZM7P8M*;WG]`N4(82B-+WD\=TC0: M3^Y+*9W;QLZ>THE=2R,4=12B,JQOFXKW?A[A>"`P!9GW8'P#%%``7``8,:8510X' M:JGG$:U#!G,@!@`D=W3W3B3T5X-42!WA1YL4@)5G>1B!!"S`>@DX$%/@6X=W M@B0H>ZU1!Q@H!)%G@RM8=P2%((:R.'RA&'4`@,$G@":X>9J7!#DX=R2D01SD M3;0%/YL78:*7$\FW?(2'&S*1%`[D?!)#=1+H?B4(>FG`0T"Q!!0B).@E!^I% M!VX1A`@B)-\G$S*G.4.X$C)A>NTG?*-7$JSG>A,X>W?4AS'PAT;F!B]VA\R1 M-U7(?+AA0],SAQ$HA>ZG$W*W%6U$#&H>K?A:C0P`VB0@DR0-=(W$,K'B!V1A;*S2`V3)7*0%*=#.&.1'7/@ M1WB!)3U27^@7=Z-Q(%22)*'%;;65*-)TCCI0*>EXB_#3AU&X`P(81YLAB"#` MCY6G!H:8.&E&B/G8>OO8C[0'D`(I>P3Y8K^&D'RHD%@0D`P9B*T7`Q@YD`4Y MD6`H@ZMGD1TI>_Y8>W52DG81D0:Y.!2)D@M9>2?ID`+(DB"IAQZ1D*ZGDOVE MD2GYD"OYD8JC!R^ICQ<)E#WYCQO)DS8YE$5)DD@YDTN)E$UYD"&IC#H9DR;9 MD%-9DT)IE3@YDCL9E5SYDUXID4YYE7L(DT>9D4IIEAZ)EF!)A&*IE78AE7`) MD5_IDFJ9DQ4YEFZ)DAQ)E7M)E'U9EVTIDV4YF&?9DH89EEF9F%OIDXP9EX[Y ME("IF)3)E(6)F7:9E(+)F7+)EY#YEY^)EY6IEZ/YF'09F3R)FJ)YF8?IFF2Y MF82YFIXIF7>YF+%YDZUIFKH)FC1IF;Z)C\#YFKQYF[)9FFR)G+;9F,4IDK09 MF,.IFLL)`D"!`DE@&W?`%V>@&H?33Q51$^7(%IHBGGPP7/8\H$Y'X>YMABR)I9!)Y?#E8C5?8$:'8>TE4 MBA_Q:ZDXB53(@G1'C!@"8%Y&=^_FWH#%$C@ M@H%1'ZXV`QP)>LZU!@UD&XH1$\GX$D&`!+@W$(T% M)4_JC8W$I,/S6?IDHA]!D%@Z<:ZVH@.QG:BA&F/#G\TW.>/U?&X6?>IH<-UD M?3]83%\8E@1(!*T'`T,``[PH-`K(@`=E6A+S=_/S5#M*@4-Q@?\#%$^P''BW M&3)P39VZC)MAA*Q'B!4X!UF$?`,1!`.V%3OG%EF:2"4A@G?U@F6:JCT*>=!( MB(T:>9AWIK8R,44*>:F:(!R$@_L#%';7?_^W&>@$A$)XCR*I!F%ZBM%*C5:( M:!V1I>A$J)0(KM:HI2"``LTE!@XG$892&#`A9.U8!G*"&UR(C!#J$:G1HWFH M$V50GX=YGP.K2WV(%?H)!8"CJA#A(FM0$[\&46R8JD,2I@")IP5H3?'5H(+Z MH-JJC$96&0B*K`HJKB#@!$^P*QS;A=#WL1^!ERJ*-_2GL;:1KQSGL83(DLT& M;Y2:I[;A&ODEA_:$C0X4AR4AIW[YK!?YK3I(K:.EKM@ZH"[K$=SZ8-Z:H.$J M2^1:*_NZLQ.JI%8`J%+'LFYV9`'E.!2$%`UC%'A`,!^UJ$2(HAL9LS([$,4V M/\N*H0A2'8*&M,'ZHT$:C7W9J(\:J9/:LS!FJ<.$J86AJ2"%CG](@$,0>9:5 M@Z-*!Z7J2JBZKZ^!BJ[ZJ6)`B,'*JH(;EIIX&VP`!W\X/V,X?[/*6CH"4FMH M/E`W.62+LUA#H:MHH9QD&_-U7YV*=UAWK$S;@I(S>)V*HBC(D3DX!31+?E=T M?G\8-C%@`VCPA][T8,3+M'=+,:=%6TC+DAOAHLBJI[\;%BEG,"/J@/N5*&XA MO7U9M8%!,O"#K$4P8.S#,:A15ZW1?W((H>,K.?]:>2AZ@TMKO_A+6!WC$(LR MHM>J'-D*=PT,C"#P!4&`!5?3!UGC$V%#/VM@!@H%-@`X!WU:%6:#-J+!=BJ\ MPBN<76=G=OWCP2`\/X)#%`''J?YTEUX3.'("/X-5&@#Z/AT;?M;%1B$MB['9^Y47(:3PY#X)#/T1;95Q(/E7(H54N*X'GQ1%CA!H\6S MKCP2*7?1(\]4=^=3JPM7.,/A%A>'.$1K&RMK>#6!Q"6!7'+(13/4.%#!D4ZXH+=[>(DGI\4J M>1/8J)FW>1,HAJIH?*ID%-RGR.+HOR5AC$)ROE*KBNJ7(`,L@_%'ABSX-_?W'_GW M1)/QOAM4&-6:O*%<@`?(M`O8P8?ZMA!H94C[JA@8J@.AA/3$(0'E@82T%R$( MIR.(M,H+C<:*A,A*T9Z,O%!X MD>9:H2#`S5BH.5LHM@X*MV'((_@<*&<8N^EE4Q/KSOUK87.8%/N*B/6,E3XUHJ\KZ^\CDC25TD"CQ.V4\-6C\UZG+7YEJD9 ME+@YFZY-G5U)G&G)G$;IG+#=F[G]F\WYVJ&IG-%IU<%MVWDIV]=IG,>MF;U- MW+_-W+LMW-6IW,6]EM.-W+%=B+.MVU"IW;X]E]+]WM]V]9YW7X)W[OYG+A-W\9MW_%MWO]-FL`MX/TMWP7. MFN.=F0/.WE5IX`U^FLDYWQ)>W^3]X/AMW>@=X!F>X`2>WQV.W1\NG!O>WOJ- MF+P=XAP.X"3NX"`.X9U)V_QMXLF-XB.^WPANX]L=X:R9G7K:G2H%GKQ$Q^-I M&N9XGD:>GJF1UA&CB?`9@#E!G\L\L)&)G[RIG]'LIE\M$6']1O`;E@8Z)2.[ MS5F+&WE\LW`[Y4-IU^=*$#-A98S;)F\2&!\W)3>-M$58N)*:L(KK@(3V#(CJ:+K:J0KC7=]H<:6<#;'2"K%H;:FL26QR4F2I8Q"P4A:Z`6=HCG8 MHL=;9<$JHT/2.G,L.SG:V,KXMT`*TD.*Z4;*Z8@]UA^1>V[JI(:QV9@L3%5Z MD5>ZOT.GI5SJI6$)I@\VIBEHIAB;IA*QIL,DQQ?!J[&CYW2ZI\&*L7JZ)7WJ MIMT,6>!LZZ-MJ&[K5%'Z2)[^>'TX%:UZF!`MT2!PN9E[JI@%K(HN\*5+EZ\:JTQ+JR1VJ\+>@8K$ MT?(^T@R_J@[/Z&].V>K*KG'AKD\"KVP@KV1`KU5RKQTQS2WKROVZ'%7]$<&\ MO76;K'B;)%$HV@%;Y6)^Y06K.0>+K`I[:,&J6V[PL(XIL7\MYL@>FACKO+WK MF'*MKU-+M2*KS3DO\BBKLG&M<>&>]<\\]<\+\X.:]3K;,2G]LU0U.R4QM);] MU."GY\XJI@=N)%;T([:,H:+L0G=@`MM[H*^ MJ80^M9)+N:^$K`CO:I6[\)R;NC7OJ188NH<9\)%MNNZ)NJK;EZQ[U+3J1VDX MNPM6N[2%]8I/UE1/&KY;?L"+M,([%C@_]2ZZRS%]@BG9O,\+SYU*O=:+O9K6 M_1C+^17S3=9W;/:01S_$K3,TSIX.Q[A>!46`7 MC^[]K\-'@1**`!MFGPZEY2`#R&P66`O0?U`+@@%`CX`!+1@&\PD:+'=Q,``D M7;I1'D`!?$9.%*IBL^EN1Q.I>O-%Y4F$T/!VU-)'&T1J"?U=+QL8`5O&!+IF M6\($,C,.1+E:G!`]47!/&`&VV!:@P1*"C>``H$+&5"!A4KDZ1(, M.%]6782I@7KHH\D*/:0#)1@3+`E.$`1"P;`A%&*""-L,;0`+OCGGM1GL0'`I M`UNA#;(/#`A!^`[RHH$04-VUGC80",7?&!1`U`O1\<#'H^RD`F%#7!0-_,&$ M!>*^#`=)"&`@FCA#WPQD:3T"<*6(01(H=G;##8%WZ@QH9`:.%LLA%"1Y%]U MP`OV!$5@%*R#)*,*!ALJ!O0PVT#&:@((2V"G9!L2!+,`"!(/*%C:[J MD;$=58@!D` M$#$,"VANXD2*I!`,(R(&FH@5,=G9GA^(/E!B#MP@YS#G)0&W,!`M"%DP"Q^1 M8J2O%BAX2M%$5(;6,`TJ@!"8-8*00'$4L2M#.8_I@!3>8&M`84#A7\C#6L$= M$AEEF#'XIXGXLY)@&3#)D- M-4NH,;8=A(>_,C2OP ME!O7G$>`C;+QJM'&LH0#_M`U@XT'4>05QW`6'-/5:90=6:HXC@T-&/J,8#:3 M`;UO$AI&%L`9"]6T$FA/*VIU*IB@M(X0,V-+SHPY.L>"Y!OIP*G*@L+1(4(_ M<"?]=-=W#(\*9#R6QS=W'OD>`%*/2(L]XCWWV)=F(Q&"6<[QQ7S'Z)@?IR-A M1!"C<=PE1`J&(%U606P!.%`/S4(#]@,+$EZX#!I0%YY#%B`:*=2)C%I`D2<* M1:*8NZ28:4$!9&,GG`W2F+'>"B&+&+E/WCD.A];*S"$H)`(,04FMOLU0!*:` M#HA"0/*R",D(]#$*89-,0911``6SXU<9U1WE&A6:<`[2G>MA^6+'ZWM<4B:4 M/15;4B5?XF;PA$,1"DJQ,>!-YH!3E`,%YD#*B9FU&;Z8:^@(=7*E98=RV"4- M#@H".84*!2B.OP-6C)V6-'VMAX,DQG6U*.$'#'"4!*R@T4*#."F=UT:H'P2C MBTR%SUBF6(`,F$#[4`TZ0REV!^0`EI`#=S)/]DE9"1%H91A0@*%D).7+Q'`R00R@+%1'8"J6!*!0&4#EDK*"82@)/ M@"'$A$81H'WY>ER9MTP3[&$Y)$PSP'4<"-DP M-1SA!?Q*-A$L7]!?,)E/BU3:GD-(P`2&/M$,'0%1*JDF(#`0A/20",4RZQ@. MUC$'7D#8A)@!$A1*RAR4$83+:R`D1\MEE1`A`0J!8[M3#E9&EBB\7E4V`Z4: M(8BF+_/P2Y^I@%S-T:P?4$&7+,TTT#1G1Y*0FBP@HD$S;H0T;>8G1$'H8^(M M2\8I-'<4WH)5KJL`>:__%V%HI$]@E7:D:SC%EI(4VT`)*QLD+"G>RK2QRFIG M[1R6IFR[](\KH"O[2EVT/_O!:%).Q!E2S"*%86>]$C(L&&`I-(_'"%DX1*1[ M$!*(468>B#[;#V`!SAR6[T0PJ(D=FWM)I4>$$-R9.Z\+*K.=Z).%%4F/@%PH M!%]``2I@#J"PE=`J7R4*8)UM8`6L@)H0/_5G+DD!S3!KH,XG$3C"1AJ@E6J` M5C*]L"$&H&+Z?*`JC'R63[.R.WMG_'@2-4K5#4\T^6P48$G()->!=0D:!X)W MDD3$:0$Y9S3,!0CF-D6)2_D=L".0!9.:N3R99N=LBX<332Z0MQ MX=X($Q^VQ0(N5(C?1'@0!(>BDE*0AX M)0-A#6!2V_@VVT!)X*2&Y&?5!;C%04II(A4\C30&G"J)@@/DQ"2]")-4#,Q2 M6II/ZICRP*"'9@BU2B9R/\E3NQD;`#3G/!EWX9H.B6PZ*;?I7\@D22%L@E-QZAQ,YS,D&`O$*1[0I)A`D^(:<*!?-*#" M#0FZ1A'&;"1=LWPU3J!9M7H1\&R;'0-O%H"J2@%J+?'" MI$B!8-7"?E''.F'W1O\@$PA!(3`$%-KE5@OVT!Z#%8'4CK_27,B`$^DK)R:) M9(<=BDC86<&I'7BANH"`[#&E0LICJ`ZN5=`HC/F@U/[#2C,<"^<3R0[?41,, M+.O4)4\BRJ``&J`"B*WV"!/9HXW-DTP;6O+*'7`Z2[4DS-J.$%Y1G8W:CFHH M47@3&5)RMH+P4!_%X;_(`8G@4U?JNT&A3X1T6@"WG@>$R5/>9< MD4(7.23F!E2L5,7"&A1#MHT>P36S?!%UZ6R6*)GI.8,U?:447UL3<$.P]1C0 MI%X%AFP23I].G?0>[@%_3)="UCT8RN%`N#4SBIRUGF-:42L(0`)A`4&4G'(B M0**'[ZD*FRK)?%Q,M#S@4,75N+%37JFA4B)#)RIEI2&D]GA"-5V[MR`N1C@? M"J+H-MR"BT!@ZEP4+9]RJ`H0F:):&*,,"1Y#]3&\5&O;L!)$Q1$T*"`(;03_ M9UQG"G/5+8<&IN9)KH!2QP)3`0&2H0X8&67#V=S`">`:0>+_S1@K^G7/0!M; M.,N6AN;7A+G(=NM%8$=O1-[%7:Z@5Y)"YN*IM8.Y8JK_VFI[V/.HA],#,/!4 MI9(UZ5R?]`J4`5$*D+9HM&J"ICMK;X1-F!BV&Q;>B+5]HL]3>832\Y$YF&M7 M=)5M0=*9'%@#%9`+O;(G3[6PX"KPY'@RAAPRN\RUY.J9]FH_CL<5J)ZJH1T9 MWNZNY2D#/T`%$H&B,%(*`P`B.Q[!Z4Y<"G,8?"A@L(FK8S[\2>AE72C> MV^,.2$",29DB0(=^B'0IL)8(]=*3JC![I0P(Z[RKMX-^,>^[&8KE4>4.`@0* MG($J\&!TB0(F`B7A_@ZY>:=I@*UJT`IV`8?.!P(<2N#F1DDK"L*!%`'@05/C MP`EHN!WA!$0!`V(99H-EC0MSH2Y`6$?+:!LM=^$C\V33"H_)`"6ZG$FP`?%H MU6J/B\LXW0.S1;H2@>TQUZ+[1*]`D%B[&.23?A/`H`DB\P:B:3.PT$@(L"TB(#4PF/`+Q"5"W1!AQ%836L6ML96Z'(SA$RR6B)L M93+M8UC"8:#O6E9;XQ*`"A(-P9JBZ!H54G>\&&;LX!$@!=44G(4S7[R)`54R M.X9K9&+#88I]9_MT#RC`BI46Q;6%CD*L&KT&-TH$39`B)QR0JPF&;(\P[%(: M$G<[0D[T"C/&:%4RC$KJ<-\+L`$PH,90&M$"3]N8NP.>A5?I%MX1<8=#RS3> MK)DB$F$JY2%7'D61:PUV&`^3WV@C)(JN=3'$=J?P8F&&<\,X\&R96*07>6:) MXV7#NN_36BX_Y`')VW,6J!##'O.\W%B-W*@'(I!=5!F`R,RU(%<)`/2`CBK\ MT+6'A'N0WZWX="_RZLT=4H?:F,^!3P*PZH0 M_`VACA`F[$`TE!/!%`A#4A1[$"6KKO)K;Z&KP"E"Y9B#X64=DF(M'0$%(^`5 M2,<]B4`2!6$&X=N,3G`IH)R62*'GREF\P9RI(BEY)*6%D$T&;_@:E$ILF,Y" MXPYOA87'0[&19BUG>=%]21D7XCC`,<($S/)=>[?F!&@*G-#2V?QSNZ9/-!AU+`UT(!$\2N*I%;&D(@=0SG6Q-J8%+L"J.&XP\TH`(F-VX]K37+DL'&48)#%4BD7&R:*AHX- M$V@50UC2,31)$6F3I0%UM2,0YAB[8ZL7C=V?D.+'KH0D[47@@/Y$&;*4:3$! MC1<[BM9?*5>Z3"A!ESTI%0/^>0^[RLSO0+LM):KF6OK#-WE=C)8!4DY#"C_=*=^T=>8,(PI3P=>X.87,AJ+.T)C44D_2'$O6?I$;:`'9@4C@ M!1*M.3QM&X!W<2H=(6HYO:D7*2L9"%K:)##JG^D$)D,+:,&;"@#!Z1"[I%$& M#N#2<=5+&QD5^^;,$)PYPOOQF_5'CT"F637*J-.5FD^_V%E=J(1`A8BFJAKN MF(T7BP?X!6,>=S:-*6XVCG@'^3'#(E!WVR`QU.F+-2C$LD@$4(#^_ M]<^4K,$P0:PT=YN4*QJ<@1^8"C@3-90A`S!I%)75'J&78F@7+:UV$$L3$E@" MN(A:'%5:6W(`*M06(Y>05VQJIQUSIJ41<*=P?MZ?N\Z@FHVF4CAZ89.&'4N; MTX"85M(=`04P:94M8WGLL.[1-I9*X5B5?1%F;)C&V?J9*]`'-E!`N3*'K2KL ME*SQSM8KA%LM5;6V3V](U$D4(`-P1FE.VA@+Y>HH/TFEV%Z.#`-W+@MY*487 M%3'O:4BXAYB_W-^MHFK'\K-&T],ZI3GLQS%5'0/7'4+Z:P]<%P74_]S"VHX+ M;3M.CSMK[76AKOFUVQE4ESC;_^<6^+.AB#+P@TK0TRG4*@EH1C4R1QM#XP%1 M@;5Y).%>>@\$#F?=N\T`;0.+-A1;8,C"RB++85/`8N9I%$V8%"W1_;0S:"F: MIJJS:M<$&Y`#:H(($":?0@14E9AA!K`V_<$BK=;G2&XI)[3MI^Y^I3]#3,`` M83H#SHT-N`%W(@@(@2%`!(J%"-@"MF',TH`N,+QA0/$VH^S35=H:JFVUL;?O MGMXRH'K7@.N=O;=W]S8"W]LV*-*580;(M^8VWX)6LHDS&'U9.RAQR0,U`7^L M-%F+&_XVQ3&.\04%=(2X.C%'Q8K-"CN,7O=E0Q'`[1#^DD\R+(3%3HL1P`GG MM_RAYD^7-!?^$N8^0N4FVI?;R")M/PT4JH`;X+O#(R;7;V)<2U&S?KNW(E=0`8G2$%%`SZ:D*M#']NEJD\!2 MQLKV`F$B!F#2G0UC04`?"+_RJL-2J+=++(P%%:_B=19#9W&'@$D/PT[QXF,( MC"/L)TU)^=$9APAI''USMIVB*EC%&X_@-=N94"W]6<>[N-[.XV&B8%.MN/W' MQ4`@GT)OEU.\\9QD&V3VDI7C5(N.<_$[_LA!@!Z7Y$8&92"O?.Y MN$'Y,F].7F4Q$`I%'V=53I0`2@HF(GD1'W=Z)S/,W+1&)O>5WC;=@0&3HH\P MH4S#+\HP`S1!C!IRJ[3DSQ,('0SKJ0$A3Y_ M"5IGAT>2-@FP/CB0_>OH\$F%R60]UAOR9>FH$-XT!8H)1\`!9P?@O:'%%U[H!.?HM M?I]!?'_C@1M0O$%`"(CDK\0$*-*LKKEK0%?_ZD_]!)3PQCP0GB5E:!@=8G1B MBH`Q,,J9YFC!5?U&3D02KI>G]O.^E-2:IT$!5]-V^#@``4`P```$```````````!E9V%C;VQRE*>JW%AAIC`4:".-4#-`-W+ MEL@!S%P!`$P;-V@8@D'C\'DLDE';"G6+?-!Z$.@?``%S#OSZFT@OWV,$(,A! M,<"'K`=R1,0B,.W=D1WOY&089!@`G0.<'P.HXV`P!,QW#BSJMVY`.@`!%GT; MH,WCEHX>OC@(Q7$%-D?`:"FYLO#+M'/Z'$E;=&[?#&`N'!DX^,O7@UR)5SR; MIPJE!5P/T+%"@(Y2`EH`FFDH^*2C@RC>>3WX9^,'2AL][N]P@$X:`2CH1(%` M=!XG)K!J12<^L"I"IQ:`*F.PH*` M.4'HP$T=#,@"#"ONM.).ID.D8\8_[)"0``\!T)$/HU*E>\4_L$C`K;BY1``` MN>+PL\\5M`30C`5?U.%:"_\L,LP77G0Q3*#L#%KHH8DNVNBCD4Y:Z:69;MKI MIZ&.RFD=IIZ'.O)LYYW.O)OYX<[,G#GESL MR<>>G.S)RY[<[,G/GASMR=.>7.W)UW+JJ+BP@.".MMQZ6\S0L,/1YSFWB!Z%@`0::9GP<0-1D@` M>LU`,`L$M$@0.2[:#$#(/W0(`(LN$H.H0>0\:%!X'0L`LL\!DD`#&D`7"$0K_)(`? MOIB6=0C@.?D^H4'7?0H#%U#@$RXP<%$':#0+JTQ$'J#=2,01 M%T70+G`6\ M"/KF%-UA70<,QBUN0Z`DW>:&-TIR:M-ZV.5P)E M@9?@#P#HP08\PZ!S_Z,$7XAX%#SC&G+T`Q=ZB",ZG/'CY[AQP>B@!I(=*C$* M9M`#MGA`-)Q[">N$(N;_<$#,15J'=?S#`JR8CP5<(718S*=\Z!C$/;(@,3,Y M'0`N>(0!0*$`%S#"`Z)0`#^DPQ%?H%<&Y#`!*X#`B&(S[&40%6)($%(J##`P@@`AYP86R`X($(J&?]!=AC&.I:^@`&X@BLJ]$#^QG" M`#!%CP:M8!UR,,`#J'P#T$F!&K'A9-X?#&P"(=R#8,@#"BP`\(@!PDP1^C0`.P8 M9"1`CX8H!PY`1]$`%?HDC;I(AG1@`#M@`UQ8!\^0CB+`CE.(B>R0A-00".H` M&_H8&*-0!0X@A0M0$DO@`&4$/;%$A;.3A.@S``9`DH,@#1"!#($0#+!1DP"P M`-)0!PJP`\PP!P9P"#/I`.MPD@:0DBN9$E/X/BB$#I^`D2Y),8J4"<(H"RST ME,/P=%[IE510!W(@!F_0`D,``BT``D/P!G"0!W*0!F>`!G0``B@P!BD``C&0 M`SB``R`@!&\@!VP0!FY`!B"0!&Y`!VS@`@!`!&E@!VE`!F4``F4@!W+PEPV@ M`$$@!F[PEVT0!FP``G!0F6<@!V'0!KDWF6V0!FX0!G20!F_@!I?YE;(YF[19 MFXEQFR95F[JYF[S9F[[YF\`9G,(YG,19G,:IFT5P!$$P!$_`!%(P!6BIEFSI MEG`IEW1IEWBIESC``GF)`SD``DT0!G*P!B`0!&3`!I-I)@$@``-```5``0?@ MG3JP`SS0`SX00]N0G_D)`&/P!FSPER```W@``#`0`S(P`S10`S9P`]X9!$(P M!$10!$9@)G"@`!5:H4Z7F[#@.0)P"P(0$-RGQ/T"`<8^``!S.```:A(VD&-^ M8@H``%,&```!````````````96=A8V]L2L`1&$#)LR2,':!@Z(-ZX&5,FJQL0=-!TG3-&3IF0+C12$2MP3)VJ5$&L M*?,3:IBO8KK6F5.&#-@W2-^D<8.5#N`P(':6&9/&3)HQ4*7&O>LW[-7(4^6< MF".P(9VN=H36Z8JB(X@[;^JP\9L7Q-Z^(`8'12JT#)W/B6VGB`UT#IHW=[[* M%HOGX^(T;80*U`I6;.*R9]W$5""0"N#7(&@>3#B%)-,V/!W2R0.GJW:;4]*" ML`[BC.VL=;"^,9.]X':%)+%'82$P#LFX19"EWGG59&0*%QL9H()@1%X2Y M733&9ZQ-E:2!"+;F&W#"?87E5'=$*$<:9Z"!551RN('1=$V"@,0;;91!4A$[ MD@3%&57`01)E&YU!Q%.-?+()PD1ETD+1FFY7^):B(.S+TQFUX M@H""68IMF<:-;.2QVWR11C1D'DPZQY>67#+DY42+ALG&8&OPI\""%RT5&U8Z M1>I4&%\>F21)LMV!QF-HV+5B'JG9Y<8)A96!X(.\=;:K&VL,=D9B@W%E++)K MG"&'CGX5>^R7*(@1W[`)EB%4JKS9RJNXL;DAT!QX=I4G'22B\=-C0N7F!E\I MH*@`$@_2P2^6.R'K9$1@$E6>'&W$UQ668>!1!E"L8AE59DMJ!`5&:)`(5%@Z M"616''6D06IB`8-0!AX\W;6A5K%V911F5`$UQET,@99&&6GZ91IB;K66'$C+ MT3?T',D-%6'4(QL85I6I9<3URX>1"U*1D?8DAWMBUY'7@,BB\>^'797L'-?Y M0BU91J/V19*ZT0W:J5.CI2"XTT!16P>--D*I@%!:C4MH7^Z1I'B0795K5D?\ MQ@42=)R[,2Z6@WVV\(,.V7U56WO#/4:T)\?5\LNH,?2@54NQ*6=E@#U(DEA; M=67E6_V:SI3$(PNT,=$GJO6LT6YG#E1R<)3GEU8S8DG@3629%5)00`V?D;JI MP<&9`JS2@,=1RBH9M*8)`H%> M#B%<&0R7MC)0"C-U:`.#Z$,_^V4$?^U9U_Z*1;'%:(4,(L)#L0CH!@,B,(/1 M82"A*K@\#(KA#2(#BFSL];H,EH]_;%$`S.3@-!$"A80F'(I#S$*&ACEO+'"P M&$,P-H?/F*\Y&FQ3I)B"!^4IA2E.&8NV%B,QK9",/AUARAE**#KFD2TH,51/ M$LSTO-/XA"2QJXI`+`-`LX!`!-\Y4$1$8*VD,22*;@*!G/!0&,#0,%J?$DM& M9$.Q,.3)AO7KC$/V,C%9)=%<8HB(P]:BE*XX"S!K<(/\$+.KVSPE#"^IRI+5$B96=Z2133`E>I"AT M-`:Y`5\YV4E/'!(#&^"D,6;`2$CHP#J4!44^<@(+YIP:-1$^W$0?!9T#!S0,:44BN(Q6/C9.$;SO#D3:WD)0(Q$9 M`J4A4&F9Z"KI.)ILAC87N8TGG_44+&UQ2^O"B[W@62Q'\8L,9)HB=-!R1.75 M1J/Y>MU=W,,:VZ3I>V6XD1R&*#]6M>^A#M&I0XYF%C.H)E4"02@=7D=1$/QF M37K`7L+,0H7M.]]IHFP80[%T#0RK$!A"!=%`0U<<(,;/`0)>A`(#F"PDG@R54YS M:)A,%&"$LQ#%#-Z#%%\Z=1>'P#6+;5#4@Q`I-CSEB3`DFY!]T/,7'4Q6(["% M+40D0A&+8$0@L8TM%%SPA+0(`89%@4$.5(+;W*JL(\81"4E,HI$