Xref: utzoo alt.sources:1411 gnu.chess:94 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!ut-emx!walt.cc.utexas.edu!erlkonig From: erlkonig@walt.cc.utexas.edu (Christopher North-Keys) Newsgroups: alt.sources,gnu.chess Subject: new display module for gnuchess (tested on 1.53) Keywords: gnu, chess, display Message-ID: <23282@ut-emx.UUCP> Date: 17 Jan 90 09:45:20 GMT References: <9001031450.AA05558@life.ai.mit.edu> Sender: news@ut-emx.UUCP Reply-To: erlkonig@walt.cc.utexas.edu (Christopher North-Keys) Organization: Packaging/Interconnect, M.C.C. Lines: 437 A slightly scary interface to gnuchess 1.53 Problems: There are probably too many display-related subcommands. It has not been tested on a significant range of terminals. There is no provision for a user-defined default state. The program uses just standout() to do reverse video, and terminals doing proper boldface on standout() will not show the coloured squares except in the mode shown below. The new X11R4 xterm is one example, when the termcap is corrected. The program should instead extract the specific termcap entry for reverse video. Good things: I haven't found any significant bugs in some time. Toggles: There are two primary toggles. "brv" toggles use of standout() on the board itself, whereas "prv" toggles use of standout() on the pieces. The command "rv" will toggle both at once. My personal preference is the display achieved by "brv" alone, but the new xterms only work well this way if the boldface font definition is good. Example display after the command: rv 8 ///// ///// ///// /////| =R= /=N=/ =B= /=Q=/ =K= /=B=/ =N= /=R=/| Computer ///// ///// ///// /////| 7//// ///// ///// ///// | /=P=/ =P= /=P=/ =P= /=P=/ =P= /=P=/ =P= | ///// ///// ///// ///// | 6 ///// ///// ///// /////| ///// ///// ///// /////| ///// ///// ///// /////| 5//// ///// ///// ///// | GNUchess display (Nov 89) ///// ///// ///// ///// | ///// ///// ///// ///// | 4 ///// ///// ///// /////| ///// ///// ///// /////| 1: WHITE ///// ///// ///// /////| 3//// ///// ///// ///// | ///// ///// ///// ///// | ///// ///// ///// ///// | 2 ///// ///// ///// /////| Your move is? [P] /[P]/ [P] /[P]/ [P] /[P]/ [P] /[P]/| ///// ///// ///// /////| 1//// ///// ///// ///// | /[R]/ [N] /[B]/ [Q] /[K]/ [B] /[N]/ [R] | Human 5: 0 rv ////a b////c d////e f////g h| There is also a toggle to show positional data, with updating. Although accidently undocumented, the command "p" produces the following: 8 0 / 9/ 20 / 0/ -10 / 30/ / 2/| =R= /=N=/ =B= /=Q=/ =K= /=B=/ /=R=/| Computer 4:59 ///// ///// ///// /////| 7 9/ 9 / 4/ 0 ///// 4 / 9/ 9 | /=P=/ =P= /=P=/ =P= ///// =P= /=P=/ =P= | ///// ///// ///// ///// | 6 ///// ///// / 32/ /////| ///// ///// /=N=/ /////| ///// ///// ///// /////| 5//// ///// / 6/ ///// | ///// ///// /=P=/ ///// | ///// ///// ///// ///// | 4 ///// ///// 2 ///// /////| ///// ///// [P] ///// /////| 3: WHITE ///// ///// ///// /////| 3//// / 32/ ///// ///// | ///// /[N]/ ///// ///// | My move is: g8f6 ///// ///// ///// ///// | 2 9 / 9/ 4 / 0/ / 4/ 9 / 9/| Your move is? p [P] /[P]/ [P] /[P]/ ] /[P]/ [P] /[P]/ ///// ///// ///// /////| 1 2/ / 20/ 12 /-10/ 30 / 10/ 0 | /[R]/ /[B]/ [Q] /[K]/ [B] /[N]/ [R] | Human 2:48 ////a b////c d////e f////g h| It is the desire for dynamic positional heuristic display that led to the contained code. My hopes that someone finds the bloody thing useful. ------------------------------------/\---------------------------------------- Seo: Harp[@Mcc.Com] / \/\ ^*^ Christopher North-Keys Tha mi gu trang a'cluich. / \ \ Assoc. Systems Analyst, MCC --------------------------------(disclaimer)---------------------------------- Make the following changes to the Makefile: ---------------- all : gnuchess gnuchessn gnuchessr gnuchessn: gnuchess.o nuxdsp.o $(NEW) $(CC) $(CFLAGS) -o gnuchessn gnuchess.o nuxdsp.o $(NEW) -lcurses -ltermlib ---------------- nuxdisply.tar.Z.uu: (uudecode, uncompress, tar xf ...) ------------------------------cut here----------------------- begin 644 nuxdsp.tar.Z M'YV0;NK@(3,'CHLQ !(J7,BPH<.'$"-*G$@1 (B+-VK4 &$11(R,,#A>'!FR MXT@0-F3,@&'C(HT:,FC8F"$C1HT;(VO,C&&QHL^?0(,*'4JTJ-&C2),J72,'Q! D1:9,B0J"K90R=M+,2?/& MC0X0-%K(J-$"!PZV;(>\@9-'3IHS:.B 0#$DA<<<.&RP>(SCQN08D'& ,"*G M3-@I;\S0N1.F\^8W==R0"4.'KIO)2=R,<1%X<.'#B1>/<8S9[T4E;]"X 3&% M3A@W8KZN 7RQR1LR:A@0 @ M616R%N*2<#3H1AAL@!!&'>JU4 <J49]J89&&K(X5PG*JCG'',X><89;.P(86?*39J0VAICVL44% M&G*)E4:D6#5:HAR*97E66E/0=E%@:*F5*I0S&B8&FBAFQ1][(* Q6%CPL8:5 M8G><6J8880E91J=LL,#6KHI=D0051U9!!0A!.)$%"%<$(844W5*1A0L7A6>F6[D49>D9<$7%H#:E>%A M&;*%"$*60F9U(PIW!9 $?(%7>-'O?=JJV-4<>!9<'Q8YR73ES6 M'62M4;)B9$;+5FJ1,AILBP@V.L>3OMYAF)MGH O"6SPF_*3"9M4Z!0A'0,Q5 MG5#4D6$:8[#%!-<0Q[PQM&6>:-RI<\C:UD5%5&JP&V&5>H8!:E:>U S#!VH4(8XAJZ]#J?P MXK96#3?=96:]]1@@? U6PTISJZ5M$Q,*7ZDRKAZS7&S-L2;,* X\(7<8>C;< M&6EPY_F3!M=AIH!$)@M?U+!&B#QJ;(UQ' AKN/'&'2 D7Y9AB-%1LFHWAKCO M7/[*V%J(2B>AF(2HL5$=LW::R99TJ([)8G5#/ %%%DEPPA&4%@3!O>ECO[+8 M'"93.=N +S?:2UD9ZD6^V34J@F #01N$I!CZP0%'(T.1@W+V.CA,)VUL4<$+ M%,#"$61E#&RHPXE P(/T0.<-+D"##Q3@0MG$<(8\^%0>\);#'?80AC(,2PWK M\X)5K:B(/'SA#Y4X!R:VAD5ITV$4?9A$&E9Q#B_ 7QF@>,0I>I&)3FP#&:78 MQ2#^Z%)9-"(;@3B7,XR)#6OD(AWCI< \(G&&(K!C'<; 'D;E4 11-,.)".6$ M(ERA"4^P@I+*V$41"(X[A^0AQ*!C!A9>9RMR& XA2P,"%9RA#-FQ PI2L ,6 M/N5U7,J*EQKE/%(-)PP=^I!I-@:UL;!!0,DB$H@6LX48L* &76!!,5DP@RXX M1H4\7&16/A.%*RRF!BF(YK.F29PH(&$Q,\CF"*0)-Q!0(0A"6,Q+Q$G.L%@A M"5+XPA!0, ?'+*9\E8K9#T!P@_\$J YM<,,6Z)F"+H#@+@"*84 '6D^#LG.; MY7QG/*5 T(N@ )]]D4<)ZE!M2B>B4XC"%[" CS8\Z*4 MRFA8]IE2:Z[ (R!HP6)<&M*6.N:A)W5G2K^0!13DX:48M=1,N_G-F\8@IXLY M:D^E"E1N6B%#RJGH14.P&!1(5)X5O>E7*5I/QY0 !#+XJ0)>.04/@4AHI($# MWJH#S7%"U)U;D@,9Z,D"/+! JEQ0$ I04-,4J,"K\ 1K65.P I^R8+ I18)A M4=#/L1*4L49-03;9ZE8@V2@KH+PC" 1D/4*[1I4$%@AKV1( E_] M"EC!$K::D_WJ/!?;6"L,E:4N3<%C;RO9PU8VL635;&^'6M2C:G:M*B!.9R7V M6:UP1;0=O0-QQ)WK9 MY:JTN9K-I@+2(X=!*H8.;6@4@'=E!F,.N YFD$$K06O.O,ER*U/HD1P(N4H6 M$&$ZJVPE_%@% BC("6"N,<*!+M0#$,! P^UZWX1F"((2GWB_*8:E7AM5XAB@ M^#T1,HZE+N+B&W-8#N,Y28U;:5)NSL%Z;M"#6,P00PG1DPYD0 T=A'ODX]RA MR.7\(&B5K&6M7%E!"H@-B,F4!CV4894*V(."ZGA'PB;A" &D@H6GP\H(':;- M4WAS%*IPK3F7@94*R@K CBR'#"MH> 9C4G0'N( M?LZ9 3TBU033T"."-!U0 - ,YJ%%]YTF@\]H;+,80LX@$$76ID -I/)S7!V M@ISS?(0OO-D)G+8U&W"]YS[SVM=' #:MIR"L.S0A1"XZ)0I$$ 0QO&>?(@@V MDO4P[1+,000LJ">MH[,8_HZA#7#@JPCR$*)LM]C%CGETI"<-:F'C.LY^KK.] M>5UL.:?:U(VF@H/'!&$)4SB;EM[WF_%][%\'^\ZWYC>?=_UF9"M;05(SJ#EKQP#BN8G0E01"]:B*&M3TK9Y@!",LIH'HYA7(&L66 MV;EA#19[W,3D>C"M"#@-+'*,C:#VP3?,;46WVGB6K/V&-3"0/&L!@/A6PN<;BC8YB%)[Y?!/5<"3LND]YS,C!= M=L :S+Y0#Z4W2"R"&@S#WD4?+ 9?L@QWA]C:1*:8*9PH3*4?F)D[NOF+0'/5 MM8YQW5F0!A8 & ZT9MZ%QJ 5%M!M*^8WL((5E!HVHVC#BFF#'6@]2E?#6M:T MMB0<4F*NIQ@E1R8HIR!6@B#M46+"5W9TL&S--@5I8#9O\'R@)AH<]V()0&XH M '@@X ,F!@(F8 (@$ )/]QTE" )"\ 9U]V[@405,P 39=!*6E@!FP&1"@@9/ M%F5HPFD)D'$A46(9-UCJ5THI4&JTE@!D<@9B4&B YP,^@ ,L ((FF!]5QP(F M=RE :&Z$P5?ZQU\Q (3GQW%E =S,%U+Z(%6D'MFD >1=V8+9$PFH'_/=1(V MJ" )D !"=X%A8@1D$8>@MH<1%BF0)QYGEG0YQQ4LD%9+F !M:!AO*(AA&"_& M) ,L4(=V (0=2"B$=7W/(X*E1AR@&!\MT$IX.!*,MH<:2(1H=V8H<(0JD(2. MH5-"N(1GF(:Z%!9$B&ZHJ(I@5FL0-VR\AF__YG(JUV\TIR =(^((KJ'\G6&* 5X.I" (WF #6=X;/TV-ZB(,&:&*_F(J, M%I!ML8<>J (T5F(GP 4P< *.405LXB479B (0FHL4(_&I(0L))&>:&[HIFYB M0 ;NU@/P=A]X.)!#P 9R, 6;(SR#F .8I%<#DMB'B#Z($JB9:!] 9MZ1COV'%U\'%Z2)=*J95IR1YL =Y M^3.%.9 0K4@9#H!4A&)55H!IOH)A8N93J!C=W<)A.4 9W@)HL(IMF29M-*2/I M<9A?DQZ\N6F@>9;J%BG>0;)"9QIR2QG>)CH"0=BN9[E*9C4%DQ1=IN. 9-?:1['<4I!4)@3<@59 M,9_6&9I-*03RN3V'*6GY609"@$IAX)^P>003%4P9( %H1:IXB M$')HD).G(T=H(E6H$A\H@%B7T;R**.=XB2]X#L2"-C^(A[&2]] MV9!X>)2 *:%I&5-*!:(0.9!"&C,E%@)'ZIEH 0TABFHH#J8A:QW%O\#$CMP6""DJSEI T2GP.:*@JN@6-JA6+ M.J*1R7%;F*8$68HORJ@#R)=^J:4H.9OPV8Q;<9C3!Z@)F:@-R#&DLA4N-ZD+ MB54;@J.?JJ,?]R 3)IF9RJ*)RKJ1@^4&..\:T7 M,9"O&649!@+Q&IMWZI!;2JIV>4I=>:SW635T<)P;"I\NPAW/^2)E(+! ^*,< M6HH'.B$64@815AJ$1 0&R8,+JZ?P23>PV0:'>3GLD8XH\9YVF8*'F8)BF8(D MJVX,LQ7<^)RH)!C6Q8T#:Y=X< >>]K )B@4%"J$9JZ\LZX(S!J)[&*A"2Q!B M"5MS\(AP^I-5.J=76J=$N81Y"K1-"2B60K0)0*8Z=J(A@+5+FY!-*Z 0.$ M>V)8L0(K ) 0^:X)F0!Q6)RC)JN-R(D)D+<@L (E1@5R 5:L07-!%6:R[ET ML 4RL*B+"ZY[2 +=[^'Z2:;DO<'4RT )SRXEG4*AO@ 5%=4Y"T(@T MP(E=1@?<)@)Y6V(E(#\7 ;O(*S_@EK?NYR6-B2*[<@:'201O M8+'Y6[/J!F1::Z1!QF,G"&2/B*9BB< )";8+O']BZ[Y."Y)Y0*=GJX&)F*&[=[R*HB*ZO/.GRL^:@A M>Z@R;+K@B@)V\ 85Z!@91VDF<& %]G P1XP+IVLL('!Y\F 22WKZ-HS$-G-. MK#<$%\44BP8 QT)O"3!QJ5<_]TIL$6&*L29F@B%O@'@@ #/IZP;H @73071F M8AJX=SBFQQ]#%'9L-\>V]R"_M#TH(@8" RRDM2=U@2[>:!UXL")6 GW@808S MP#'*TL8:$A:XE#VXT2K#D3O3)18ST'VJQ4()%V-AX'XL, ;A%@?\UVH1\G^5 MRL$VR:8ZR6EC"[\5;+93JR"YJQZ\BP*^.[DN-[S%VSKR]E]/HB=9D6VTULN[ MV[OHQ$QU1LS3-@(CT<&D='AZQJHA)0(2;3$47:P G0#N7%0W, /'5&?4:[WS6F5) M-H[@)FYI^VJR!H,G, (:J8<#N3'T% > FX:":P,T@(QQ@+C>^[TC2J)KK%=; MD(8&56+:\P4F]'BYFE!D<=1QD-0@ #=H0CJ/>)0\*<%DF\OR>\%[6+\NG=06 M.0:"1XVO_-+V>0)#H)%IC,,9%:EA4*F5RW&O%@-=T (G$ 8GX'(B^VJEJ]'88S&. 786\GRP/=!4'0,L,Y96-4DYHU,(0,28H7VZD)(&:M069F5ARL06FKVVS-6X;,&[;'.$ MF6X()\M/VJ9.WLS>7%0R0(4WVL;T/&VO8BN\9R.ZHW1RD < _=$J+,WBO&73 M=@8Q(,FI^'QBT5%MD")/-3"2W.9=_N;A+.9R+@)W,LEWCHC8XP:;3'E_WLZ! M;DS8%.=:4;S^\22I:#WI@2HB?B$C!^B^7%3&9 /S7.B7W@*8/A*:3@>HDM[# M\>F0'NIO?@.E7NG3MI:*@8>X?M_;'.O/_.;R3.GD[*7.0T@G8:*4_#PR#.J_ M;DPY4.O#_M G(<.6'#05'::^_LO&A.+07KS%BH?4?HZ-PM'9+NIU&N;4+ )+ M.A*OC2L4S.S:7J>.2.BVWJ&%6GK@OJR@E'QTX*?E_N8Q$$["7KP<&V5[/A(% M?X%E%A;G"._F'@.#GNZCF>HC,?&C%0;I,7C8SN6RONV33N_#KL GH1Z/@BH* M3.XZ:HG$.CP(T@(D"#_+%RYS= >X0>TJC19W. M^>\YSP(1/^8BP*G'CDHBL\69@WTW?_0?G^YAB8==-@9I\,@@8 >ED0:([ 93 MCXDLS_/3!H)XJ#N/$B(XH_%CSP*TWO(=6AT!>3@(SNLN:?28&.QF;[Q'VR@C M$?.HHK1O_^QR[\ C[W8RGV.EPLGH2(L0GF$!&TN<'+]^OA%U?GSGNX%&Q9X2/K$PBG.^/8!W^US[O2I M2/MY?H&F$BFXG_2%;IL!B;6*8?RTC_M5K_0%F(K7$3)E/@4WC^*-^/F%OG.+ M* ?_S&D>2.T._:I_UO=7@ 374@3,;!W&W?="P 1!, 1+4/WU* .OK_1/ *U: MT?WCEH_X;X E-M!@2>F5O_.7_J@;^W-_\$_^-:*=E^ZF4W.Z"\G+);$ !]@= MTI+(F T*,";H/HR&\;Y#HBD#^H^%+884% +W1-P @5P_:4[JF,$IM[\PW[U MSF)A'P@H 9M &, #$VO"H $9"!^,WORK?X5."IB("Z3_(I(' EE"!/(B09)/^ MHR700"NQ-&X.G&U 0(B\R$ )0!W@AENA@53&Q5Q.26,#6TX!],%F\Q9T!QL0 M'_0$0'0&%B &-MTTH839!/]$"%'HE^K/G;D_,:84LKIIL@46%2$D)(=PS<08 M,L "H(^5R /[;S&$I15TCAI0B9%A+^P&2:;")"(2V(5P@-9*%-Q(@_$#NW3 M1D!K#;'$E >(&#GL4\ # 13Q.UA$6@>W1-2($H#" ,ZZ?"PB! T ]@82R-D/#(Z @:U@!Q 'I]=WT," .5ZZ FV MI1TY#7?T1,T1/)H&^U0>&UNZTWZ#:CV&B/9(:][C8_../D ^*I&W$=]UQZ2!8-T07G'2T!( MXF@4T6%;Y$K)\!D&NN0(!.M=>%AG)>8BE ;X+Q8P(M435IA,)K$)0025<(& MO)%@),*, >1% VHD7(!=.O(H\BC#Z,5*V*4@ RBL-]&%W^A*H@M;L%B@!(L1 M"V"1<7Z%LJ1!:.@8N_%[I@_4Z [<94QVR>L %JB# M@.&2I8%?+89.>#[*0)0L RO@T<2+,/ GA1C>H3YN\A5MG(&!JZ25L?.092)+ M0C$S27I$V?=1A5,R*SJ]N@6+9!$M@BJWJ"TZOZ\2<=FR2TD&.( M/RA*-,&ZK)(>FI5FR!F&*UMI$5^81PQ"K\C'%:%85!)@P&$Q8C+ !0"8.? %T,0K I7M M$L'$ 'T98/IEQG$,LPL):(&R%"_])8N ;/?I2'H)CJ/"")<*N)'I*@6\ ,,F M+Q_F"JB7*D T "$#*#&W@I!#E:I2TYPHC,F:;DJ/6T)-JR;Q,YN!O8"1S8F9 MI(5F7CFMR&':0+BA-7ON)]*!%\#BD!'%='HZA<6I@#;@_3P1%1@"XRE%[J&@ MN1C^I,R*%P'B(.1,>?@6/1M4024($R7LK1-E->L"UL0C,&1F&>A4IQ24>T#R!0A)(FDD[0"2E)L) VJ MP473:!2 &2N;6J&C#)N=Z8&>9M0\G7L(>9Y-%_!\7HV)XSC24WE23T3T:F@< M]AP"U7,)9<^LF38WQ!:XGIGK%5U-[5D^U\",,Q1436ERRQ?W-+$8KPA;2;%Q M7@KHF0#&)QZIGN=3_%$U_[D]2<;[5 Y4;6\1T/890*?5 %6?9I-];DWOB9#V M$ 4L$R5&?JJ?%% _L\+]!)ZFD@.1L#AYPE+8"K,Y;HZV6$4<0UNR(@;* RW MF."!&-K%% "3TW*5YM!$BM(PKX1GB%B#FK#1%,>="4-8A?$)$#WT60S/+E8= M$YP?8W P!L>DH:Q("/$ AG-SK^5HD94XT(@F%Z!9,\4N$(ZV_X;4O)>EN0B: M+BP4*QVPI9CC)F)\L E-#")JEI0:'T03G2K@$:H $7#17B0PINB7/E(%<1$6R9GX MA,74#RJT$#9MFJB" PL4S;\Y-ZX@!SJ:-*4U3+*)MI5=!$55X11EC%,133F& M&X1%8]T@T!2K'-*/VGI51TXJ&.5D^/UCV]1)JEY>W3-=!/1><_ M):5]]"00U$"71;G$095F^K18-511^E #*A^5J)SFP1E 73D5%RJ#3 CRK4 Q@.3Z /= ##)<>X $]X :X'#W@%V^0.V5E)ZG6 M:#;+5DI %1%G;^.I\:6BYI/RY)7T:BQ%"-6(WGJV( ,2B6JM'2.;DX)^-@@ MIT;1##I%R=R%IW)3]$!"U4.Z=). FE.#@\C"5*VJ6Q6K:E6S"M1 P"L)%U+ M"020(T#11D6IZ"C^LIR4BB P!89 $D@"+>#Z;!+B TVV%F*]BF!U#R'6L7I6 M 2-%A2VRQ:76%!807W[68#&I<16MT=459%=GJ4I-I0E #ZG$,0!N^FH^62I_ M1_ $UI"RUP1/83VL>RBQ\E(%L8H4A%2EJCKNJO8 %( #5$!\V:I=%:W^,O)J M7G'+QV0!AG4)I3L^ -"88G)5 )YQ3HU&&C&>R$^5V71 417N5RTT8OSKJHL4 M61%3L@ VX'+:XO/TB%(U#4!6K, #>%I?3%PT+2&IT^GBMSB1-WVB@K&7)E=, MJK0<@U+]>X-(O4*SWR7YE*O22S95X/3YC"IQ)19#>!@/..#9=305"\RB&7/T MJTM%)804M()=A17X:U:&XD"* /P(2IH@PU-Z"?)Z7(2)*NN"V8]]KG<4K804 M'^E;C^RU4[),EBLXV?.8'H?#E#V)JXBZ\<\/N^#,0)UALV !!2%V)A:"VM4 G#TS9F %[+P_*V=I:(&;;HYS1.T!/XO@OBF@;0&#CM#2 M@8]99Y0B"%A%X0M]B8GU=08<@Q\<7W3 #5@!,M&7E!RM\:%.IHM]VF8H:DFM M'(H#*Y3#O%-+\THV2,;['0LC9Z"(1[,BIHFF=0V31SI8"L706H_C+U.K6[2+ MME46]E8_:5Q=05]+D][5(2A'.K:5BHH, 2P M+12PCFX@72$JO.9RR*VW[3#H5MV.@=)%:UC#&L"VK$'YK-M98R;HP!IXM_G6 M?<[;2A6^Q&EI\W"4E'0$-94X R1@6QFU,>35L@!9A5W5[!ZB9@IL!0%76!M* M 6I$%9W!!J\J5E7;;$!MJXVX3;64;44,QVNUY*^M"QFH;]G%'Z<744)/.UR) MBSB47%8+Q/5PA7:DP^MY8:@/P'-Q K287KF+1M% :N 068)%"(XU]SJT MO]NA<":E1/ M=.$<3(/7#3N7MU%0#/8T,/9"2V +$X(-$(KJF7R^ _V@$">B.@P,02)CTP;= M60.6
&*9<(*!2@23#4LKE<@"0C=UP5\7W"C[K*- M8_!PG6D&20L(+^ MEBBZP8VK]5),_N)?Z&_=L;^\=Q;IB4 V!JBBF0D-9JD*AUTL[%Q^,+JAF/P7 M%N(8+9PS^-E@20.4EB(M/#"ZCU0D9^5&)\411.GJXW]7**!E-3UD!M(F"U8D:!:I*@ &LX(!+2\$P",GFY!?\XM^!X!:$.#W>1>IMC&\!@ MTXY7 _F.! EU!H <2DA-*A96KX;#P;0W,-/"UL1K:]>NFTZIKGX-V]XU@W*5!]L2FK=5N71! M%:Q\(][MJ_E<79FP[2&FO!@XVQ: B9]-W/( 'M#8;HI;)L9QF=[*I%6TD0.R M"JNA $MAC=_R>WY#IBU.QJ3$#.B/,K %FD 0P )0( A@"_/K!)()?UC,C?DQ M1^;)7 0JL'G(&6!8= '-J-Z M*#J#,&E#G:5QZ?$*SBCO:614$I#1*0BXKS@(I4U%19*62@ :<(0?VD-+0!,@ MPS(1T3U./8[3F $-W8([=(A^T2!: NJAD4"B,1ZK*W$"-!,=6-A&XZ3%'J+1 MG4[&F;A,%*01$8^&GRJ:17-H$2"B132X,0'.L\": *K[?LA"H:0U*QK);&A> MR*3E1P1LTA\:W,SHBP"E(6CR))];DR'V&DW-PVE5U:DI+FTD[9'C+20DD&6K,P;WO)48 M1JW/L%!%9IAC5+Y%I4A-U1(N@4.<8:$%^!-M&]O0J8*X<0LIAO8W?/P#U')# M7FP>CB(CZ#V$N%#U5\94A=I%Q^@F[:5A]*$V <<)#X^>D31 MZ& ](X9U:DI7Q5I 9B)FG1Z<-9NF5"Z@%"7K'TVFJ?7H(M8N8%6&B&F=FH0U MN,XXVSH!+.MRW:S!]7Z#/L":75=K<.W??*NWMM8XD@X4:_\&@T;1O:;78Y3C M>&H&NTICAJC^U\\:6_LW4YT 4+6H7HX+-$T+4 LYBJ+T=VJ6.^K0<$@Y\+#' MC@T+C:, "CG-L:R@"GJA31LCX*"+#]Q0&D(' MVM"0MT '? ! R\XJC0#_1CR8&:W45]MEJG@*("S!;&EF<6%.OZPF,6-FQPR9 M)3,2H,R6.3PS9JJ]F:]V9ZY4A# T^Z*(]%6#<6D.-*S)BNHA9GM^9#,JH,.\9;VOM]3Q!ZG9I6&0?^YY#1@T(V>10!]HML'K=EL4P8='MX'PI+0>J@OAQ*& M[5V'UY;NT-6!<[Y.,@"1G]?&?J^RZKVBZ+ME!HQWBV;2R3M[+^_FO:UW= /= M"LG$>_?H(LT=<+0#90'DFSK@Z36@IXOW.#O>V'M[B[TF!C4++)5F#5;Z%:EH MZ[VD(^#K5%[*FW-R[X04L=7FD"[@YA-.CR@[;4 /N)F>G@"4QJEH/CU6#9=. MJVP6MD/@0X_X_3)U<%-J JZ26F3 90#A,:?^F$NH>K_OZRW Y[?S50$:KK3= ME-T /.LBX-*+)<96X]P-[('N-0\^" ';/@WL$5Y!1\3Z@\<^?%\';*>2POFW MH=;> 1R 0W'F/;\;5Q(WULCZBDOK*ZZMK;B\'ET_7%POD"N.KKTXBQ#6/_Q= MI[*//++EA"MVV;I;.C-HI0T\HLS-O@@YVV?P )[ML[7-<=#.Y.C\/#F?U-7V M8 V%7$Q;03CM6OR9RT+(G-J:V6IC;=.\%;60^<%P7JB"#>AX#+=ML]RVP#M@ MQ)9GV@U]1.GH-B2JKW2'KP4LNP,T*4]+MSM!Q_$%?69$P!4X&F''#[R 4YXV M4CGG-FBR/*')\5H^!(X#\C$:TPH$Z')>GOK:UH3FR&Z >.,@)YZ6FO?^7N%+ M^OBQPFH:Y-PNJTR7LB\@ 305#EK@MS8/CU'O>7ASB0'.K?F>5H?A"*'?_$M\,./-2*20N"0/U#,*^[/@<=!K#I :!\6F@&K$-WJWSHK M::5?.P9RKA7@MSL'U6*!FG]4<0Z$*#H=@-\K$?"MQ- I(T'GZZ21R;L&2,#= MF*ZU."MD 5S\8K7T?1[&529,I^G%^F#6<(T.D=VY=S7%;UP""7-:/FV6>016 M?1SC:&0';O;@&DV]NKILH5XQ'\&1\3K#ZE ,T=<,M(#GHS:^C\KE,/L52W,< MA%W/BW5!+P, G=8L)+*>K\TZGCOH1F Y:CA]#8,ZG6.#%\ M*("P';80X8J,9F5/=:\TJ$L\;>@._4;#/(>:[BH;S>)>432'.Q*I^D$*9($P MT,X$B1"O:0K#K@DXQ9^2_9R=(?OAJ_O98$!H?%2!;;A[B1W>PR!']$9 MM((@@@/M9[_&6L6 XOGK)0<_"ET!FQ\MI*UB8WG?@"@ OYL5&D".6CP+V(U= M#)WI)_[4H/[3]A#OB)M!]ZS&_<>[39C.1$&@9P7YH*>@&)2# E [,\G7\B4/ M0*AJ8Y;9+ ,T*\M'>@;=LD!]F*#T?CRE,>E+7^JY$:./ M6#Q+S$-Z13^=;Y:G0?5>OLFO^A%MZ\G F(_P+ 0Z?8H+*MYO:"UC?2B )AS. M^R@U;IX,J$?$K]YYA-;!XC)?_;@(&\%^LBUG7X^DH;3/ER.AVE-?7^$1LKT' MW?;_[MFS@.Q^2T-9N \)X][,K@0-W7/]XYI#>#W\)Y[7GMQ7^\UWWC_=>H^PQ]3&X#P_?UPB '/GMX'!'0_\$D2 MN#RF-Z#BQWNTTN\#OL-W<^K>\^%4'- Z< J>N_8V0>/?3VXO[W!J#FCY3^7E MDWN&O_$%OGU.^0Q0Z:$XG-_AZP>+@_<-OSXG@/NM'N1 L?33]5/A9U##U4%[ M_HG"B\$(Y9.D?*_T[&][N*!<$-4"T5KSY6ND";B@P2:,+@:T?SHSW3!]*G(I>T4L_,WBK[NLE&)_P0UQOX.*@CC M[M60.[#G7_Y+'7 &B'>JD-TQ@)4?=, UN\TI."L$63&AVYP K0U8PG', M-M&<_L3>;&4P36_C @HWC YQ(P-B!;@-7@/3+#E!B.T31E!/* UHT/N-:0-T&@J[.W'8%2H$4"WP2!G54'R)-6D&&+(%X#S_';_4[E%VFQH-==H74/::"]3=V M(%7C!%8NV-8CI26\6_=.7$.$B5M+"+EE;L5;G0LBV&$, >_6N86SR%MZV1YB M;^%;QH' Q6[U6_^6:9,)(BJ5H#&U.35$$AAK]=X MT(<5@2,*,BB(E1B$6.-BB%D'B%A$8JGT+8S8D $"/&(E!E>T#4YBC!H<8(GE M;9B8)O:#=6)%W"?FIYUD_T\)EI <)6U #: ZM038 MGDXP _0$&V%-:!/>A#AA3J@3[H0\H48X O 0(,!%N$V@"AO#],-# (6" 6'P M0"@&C %O !E(!I2!94 9: :<@6= '(0&H\$P 8B,)F$/;" ;T 8_H37C634* M8U>I@#),7M,/6(@42@VW N+0+_ *U8&O #40@5N2L1 R0$K!0Y!P*4 +TH(U MXSA8"]C"$Z M< O> K@@+I +NL:YD"[87>P"A/ NY IO8=,'%-H+!DF^X"OQ M"^D#P" PV%T%P\$0=S40#P,I 2+H,H4%TP_58#60#AV&UE [ (6J0]B ,(@%*T/9P*"@#6JA-=,V< 5O M0]S0*+P=UL7=X& P"DV"WV ;! Z#PQMB>!T.D"&U,$%8,]-/X\ LU061PVA" M.0 +EL,;TRBL,YM#O] YB!YK8?0@.EP-I8-UV'9EAZS#2' 5_ U8 O!!.X - M#4.J !3J#F2'G/0DX%K!@_1!/!@/E$?RL#QT2\E.Z1$=#@W= _5@S2 9B\[V MT"+^"#?")C,^5 >8!V;X+ZP/:<-%X#[D8O'#_! WW!) X=BUF/$/_@, (4 0 M$ ;$A5 ()@RVQ!FP0# ?%.)2Z'9)$)-A!4$J7!"%2@9A:W403U:($$)4!R,$ MX_$WG!#A(5#(?4T:"]*R<'8M#W# A)!:X3)=3USC(* G)?*H%2 $5F2]4 E M63-K(K0Q,U0R] /4H#VX 7,B!5,G@EMWXL9 !@ 48L#G\<3<$3$ $9BE>!%3 DY IB*O"((X )LB^*$#34$'$-=0R-Q!?0 7-VQ M. 08 >[/$3 %E!C38K4H+D(2DD0/@/$I "3$70 LGH<0V*0Q/.2+@B(+<2_: MB_QBL!@D# 0%@0OP)) *("XZ+T@C$- 8U D, ;H8A"@+M8B3\*]F"($C&F# MJT@P&HL/H\*84[ !>B(<\3%F23*"&. O8HQVP<4X2$P:!F-5(Q 4BRTCPJ@P M*@@,H\/(,$:,$V-.43&BC"IC!/8D! 0;8\R8,#H2M0C(^$9(#"W )Y0WE(PG MX\HH* *,3J/ 2"P6C ?CT'@%+(R,@@8W(Q<8RV".HB-78,"4"[>!5P=V^@V/HSG8MR84Z . M>2,+\3)2C7?!X&@0Z(U9X]NX-4J,7>/?.##"C'4CV6@PW@62(^+8,"J.?2/C M*#>Z7:I!P5@WNH74@C^#<9 28P"AH%.(C:4'W:CQY!"K(^I@.!X$G"/D" )@ M =W7UXCZ?%]^UA,P!%0!28*N(9DE 2=04*A\#(5A@0@B-NH8&ANZ@2/@BU%C MVH \KF+:@7'P2UQ2\9+MR"B4!2^ D" 'O "T#QA!-TX:H2(;<&BP)Q9C]C@' M;(_=(_>(,8Z/UJ/WA9E85MHC]YB:@!$EH_K8/$I@F D+ 4/T"':!@L!1[#D6 MX[WHR!F,C4:M48^U@L?9/@:#R&K_F%\VD'V XLU!)E<%+I7-0N81O6KHV&X# MD0D>$EFLYH]=9-)81A:\46@=698"KJ0V(EE/5I*!9$$9DJ4&5Z"%O&+;$?;QE>LV_- M9779/D-&XF6@8&QW:2D(PEM/*$?.D71D'6E'WI%X9!ZI1^Z1?&0?Z4?^D8!D M("E(#I*$9$7@0M8JG@K&EJM<*@>(<>.K!#G "I[2T@@HYXFA\*?,),J*7-2J M."L>&P1"@DTKMHHBZ7(PDF*!<)>0$'?DDB1IDE&2Z@ZHAXB8*Z?):->:> 3M M2K(RHCQU=08N"?S)=JMDE\*O5"BHA,*RLEPM",O!PAT(DY-DE^*P="_X2<3B MZ%TL $Q3DO!X+,PD$B2R0&7))(=BLC"3*$N2HK)DD_!)JQ\O2W,+ZY+"N"Z5"XZSMS16\)P9N!<5 M+O+ZP# CRN,R(T@C_4_F--18+IB+.;&Y="Y>9.C2N>AE'^4;.:*H+A*E MW<*)P"Z4'6LRN\A9MW"+6 ML)+G=;[<@FX I]6^()2:43^Y4/:2#4L9D+_L+_V+6"D QI/J MCAT@4(XH+\](D*0P,".* O-60C!Q)4$Y5QZ45$I7Z?]A,+3@!D,B>3#A':X1+OCQH@)<8P? M4S+8,??,(",P[#&#%[#PKDT?O@0PH5LR'X<,;7D:E 77@2,3*4P&3H"=@Q,')#*K#(,(2SCFN5_Z!#_9\@A>\G1 M!F3,B!J4AS(C]MAXOTO05^A8,^?,=X?WW#R*D-QCSK23+8**-:$2*C'D-3WR5S$