home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume1 / 8708 / pc-curses / 4 < prev    next >
Encoding:
Text File  |  1987-08-28  |  53.2 KB  |  1,248 lines

  1. Article 188 of comp.sources.misc:
  2. Relay-Version: version B 2.10.3 alpha 5/22/85; site osu-eddie.UUCP
  3. Path: osu-eddie!cbosgd!clyde!ima!necntc!ncoast!allbery
  4. From: bl@infovax.UUCP (Bj|rn Larsson)
  5. Newsgroups: comp.sources.misc
  6. Subject: PCcurses shar 3
  7. Message-ID: <4273@ncoast.UUCP>
  8. Date: 26 Aug 87 22:55:23 GMT
  9. Date-Received: 27 Aug 87 12:25:07 GMT
  10. Sender: allbery@ncoast.UUCP
  11. Lines: 1231
  12. Approved: allbery@ncoast.UUCP
  13. X-Archive: comp.sources.misc/8708/pc-curses/4
  14.  
  15. # This is a shar archive.
  16. # Remove everything above this line.
  17. # Run the file through sh, not csh.
  18. # (type `sh pccurses.sh.3')
  19. echo extracting - make.uu
  20. sed 's/^X//' > make.uu << 'FRIDAY_NIGHT'
  21. Xbegin 444 make.exe
  22. XM35H! "L    @ /T!__](!8  %2L0  L%'@    $                     
  23. XM                                                            
  24. XM                                                            
  25. XM                                                            
  26. XM                                                            
  27. XM                                                            
  28. XM                                                            
  29. XM                                                            
  30. XM                                                            
  31. XM                                                            
  32. XM                                                            
  33. XM                        $ "Q58OL@^P*5U:A'B'K'(M>_/]W!/]W K@V
  34. XM %"X&@50Z/D;@\0(BU[\BP>)1OP+P'7=N!H%4+@* %#H%AR#Q 2+-B AZ<L 
  35. XM]D0*$'0(_W0"N#\ ZP;_= *X10!0N!H%4.BY&X/$!CDVM!YU#KA* %"X&@50
  36. XMZ*4;@\0$BT0$ZWFX&@50N#H 4.C)&X/$!(M>_HM_ NL6BUT"_W<"N%< 4+@:
  37. XM!5#H=AN#Q :+/0O_=>:X&@50N H 4.B9&X/$!(M>_HM'!.L9BU[Z_W<"N%L 
  38. XM4+@:!5#H1AN#Q :+7OJ+!XE&^@O =>"X&@50N H 4.AC&X/$!(M>_HL'B4;^
  39. XM"\!T ^E]_[@:!5"X"@!0Z$8;@\0$BS0+]G0#Z2[_7E^+Y5W#58OL@^P$5U:+
  40. XM7@3V1PH!= W_=P*X80!0Z $+@\0$BUX$@$\* 8M_!.L6BW4"ZPO_= +HR_^#
  41. XMQ *+- OV=?&+/0O_=>:+7@2 9PK^7E^+Y5W#58OL@^P"5HLV("'K"5;HGO^#
  42. XMQ *+- OV=?->B^5=PU6+[(/L!E=6N'\ 4.@Q (/$ HO8B5[\]D<*!'0=BW\$
  43. XM"_]T%HMU NL)BUP"@$\*"(LT"_9U\XL]Z^9>7XOE7<-5B^R#[ 975HLV("&_
  44. XM("'K%/]T O]V!.@O'H/$! O =&V+-(L]"_9UZ+@, %#HWQJ#Q *+\ OV=0JX
  45. XMB@!0Z"P*@\0"B37'!   _W8$Z%0>@\0"0%#HN!J#Q *)1OX+P'4*N)T 4.@$
  46. XM"H/$ O]V!/]V_N@*'H/$!(M&_HE$ L=$!   *\")1 B)1 ;&1 H B\9>7XOE
  47. XM7<-5B^R#[ 175K@$ %#H:AJ#Q *+\ OV=0JXL !0Z+<)@\0"QP0  (M&!(E$
  48. XM H-^!@!U!(O&ZQ&+?@;K HL]@ST =?F)-8M&!EY?B^5=PU6+[(/L!E=6N H 
  49. XM4/]V!.CQ'8/$!(E&_@O = J+V,8' .L#_T8$BUX$B@>8B]CVA\,&"'7NBUX$
  50. XM@#\ =&VX! !0Z.@9@\0"B_ +]G4*N,@ 4.@U"8/$ L<$  #_=@3H7QV#Q ) 
  51. XM4.C#&8/$ HE&_@O =0JXW@!0Z \)@\0"_W8$_W;^Z!4=@\0$BT;^B40"@WX&
  52. XM '4$B\;K$8M^!NL"BSV#/0!U^8DUBT8&7E^+Y5W#58OL@^P(5U;&1OX BUX$
  53. XMBU\"@#\N=3*#?@8 =2R#?@@ =2:+7@2+=P3K"XL\5N@]&8/$ HOW"_9U\8M>
  54. XM!,='!   @&<*^^GE (M>!(MW!"O_ZPZ#? 0 = 3&1OX!B_Z+- OV=>Z ?OX 
  55. XM=#R#?@@ =#:+7@3V1PH0=2V+7P* /RYU%8-^!@!U#XM>!(M?!(M&"(E'!.F7
  56. XM (M>!/]W KCT %#HQ@V#Q 2+7@3V1PH$=#6#?@H =06X 0#K BO BUX$B4;X
  57. XM]D<*$'4%N $ ZP(KP#M&^'00BUX$_W<"N!D!4.B(#8/$!+@& %#HD!B#Q *+
  58. XM\ OV=0JX.@%0Z-T'@\0"QP0  (M&!HE$ HM&"(E$! O_= 2)->L&BUX$B7<$
  59. XMBUX$@$\*!(-^"@!T!(!/"A!>7XOE7<-5B^R#[!)6_W8$N+064.B"#8/$! O 
  60. XM= /I0@* /K06"74*N$T!4.@-#8/$ L=&^K06ZP/_1OJ+7OJ*!YB+V/:'PP8(
  61. XM=>ZX/0!0_W;ZZ D;@\0$B4;V"\!U%(-^]@!U ^F= (M>]O]&]L8' .LJBT;V
  62. XM.4;Z=.2+V(!__UQUW(OP3HE&^HM>]O]&]HH'B 1&"L!TL^OO_T;VBU[VB@>8
  63. XMB]CVA\,&"'7NN H 4/]V]NAO&X/$!(E&^@O = 6+V,8' ,=&^K06C4;Z4.BA
  64. XM#8/$ HOP"_9U"KAD 5#H6PR#Q +_=O96Z,\!@\0$_W8$N+064.BA#(/$! O 
  65. XM=0/I'__I7@&XM!90Z'P#@\0"QT;ZM!:X.@!0_W;ZZ$ :@\0$B4;V"\!U*H-^
  66. XM]@!U"KAR 5#H!PR#Q *+7O;_1O;&!P"+7O: /SIU,,9&] '_1O;K*XM&]CE&
  67. XM^G3.B]B ?_]<=<:+\$Z)1OJ+7O;_1O:*!X@$1@K =)WK[\9&] #'1O@  .L9
  68. XM_W;ZZ+7[@\0"B4;\_W;X4.@^_(/$!(E&^(U&]E#HS@R#Q *)1OH+P'76N+06
  69. XM4.@M&H/$ HOPN[06B5[VQD ! ,=&_@  _W8$N+0:4.C&"X/$! O =5Z /K0:
  70. XM"757_W;^N+0:4.@W_(/$!(E&_O]V!+BT&E#HG@N#Q 0+P'38ZS10Z#?[@\0"
  71. XMB4;\BD;T*N10_W;^_W;X_W;\Z++\@\0(@SZT'@!U#HM>^H _+G0&BT;\H[0>
  72. XMC4;V4.@S#(/$ HE&^@O =;N+7@3V1P80=1&XM!I0N+064.A@&8/$!.F^_5Z+
  73. XMY5W#58OL@^P"5HLV'B'K%O]T O]V!.@*&8/$! O =02+QNL(BS0+]G7F*\!>
  74. XMB^5=PU6+[(/L O]V!.C&_X/$ HE&_@O = >+V(M'!.L#N(8!B^5=PU6+[(/L
  75. XM!%=6BS8>(>L=_W0"_W8$Z+<8@\0$"\!U"_]T!.AB%8/$ NL&BS0+]G7?"_9U
  76. XM5;@( %#H6A6#Q *+\ OV=0JXAP%0Z*<$@\0"H1XAB02)-AXAQD0& /]V!.C(
  77. XM&(/$ D!0Z"P5@\0"B_@+_W4*N)L!4.AY!(/$ O]V!%?H@1B#Q 2)? +_=@;H
  78. XMFAB#Q ) 4.C^%(/$ HOX"_]U"KBO 5#H2P2#Q +_=@97Z%,8@\0$B7P$B\9>
  79. XM7XOE7<-5B^R#[ A75HMV!HM>!(L_Z>< @#PD= RLB 5'BUX(_P_IQ "+1@J)
  80. XM1OI&@#Q[=1=&@#P =$. /'UT/HM>^O]&^HH$B ?KZ8 \*'471H \ '0G@#PI
  81. XM="*+7OK_1OJ*!(@'Z^F / !U!\8%)$?IDP"+7OK_1OJ*!(@'BU[ZQ@< @#P 
  82. XM= %&_W8*Z&7^@\0"B4;^"\!U$+C# 5#_=@KHH_Z#Q 2)1OZ+7OZ ?P8 = W_
  83. XM=P*XQ %0Z'L#@\0$BU[^QD<& 8M>!(D__W8*_W8(BU[^_W<$_W8$Z"?_@\0(
  84. XMBUX$BS^+7O[&1P8 BUX(@S\ ?PJXX@%0Z,T(@\0"@#P = /I$?_&!0"+7@2)
  85. XM/UY?B^5=PU6+[(/L!(M&!(E&_,=&_O\#4+AV"E#H'!>#Q 2X=@Y0C4;^4+AV
  86. XM"E"-1OQ0Z,'^B^5=PU6+[(/L"%=6QT;Z  "+1@3_3@0] 0!]!;CZ >L)BUX&
  87. XM@T8& HL'HQPAQP8<(?\!Z<  BUX&BQ^ /RUT ^F\ /].!(M>!H-&!@*+-^F;
  88. XM (H$F"UA #T3 '=C \"3+O^G&@K&!J4" >F  $: / !U%HM&!/].! O ?P/H
  89. XM5 *+7@:#1@8"BS>)-K 4ZV?&!J8" .M7Q@:G @'K4,8&J (!ZTG&!JD" >M"
  90. XMQ@:J @#K.\8&JP(!ZS3&!JP" >LMZ!$"ZRBZ"14*%0H5"A4*P@D5"A4*ZPD5
  91. XM"A4*%0H5"N0)%0KY"0X*  KR"0<*1H \ '0#Z5S_@WX$ 'X#Z3?_N 0"4/\V
  92. XML!3HQQ6#Q 0+P'4(QP:R%@H%ZWV#/K 4 '53N 8"4+@( E#HA!&#Q 2CLA8+
  93. XMP'49@SZ2!@)T$O\VD@:X$0)0N!H"4.BI 8/$!H,^LA8 =4&X-P)0N#D"4.A/
  94. XM$8/$!*.R%@O =2RX0@)0N$L"ZQRX7 )0_S:P%.@Q$8/$!*.R%@O =0[_-K 4
  95. XMN%X"4.AA 8/$!.@U"KAO E"X<0)0Z%_\@\0$ZSBX/0!0BUX&_S?H\A2#Q 2+
  96. XM\ OV="F*!(A&^,8$ (U$ 5"+7@;_-^@Q_(/$!(I&^(@$@T8& O].!(-^! !U
  97. XMPO\VLA;H8?F#Q +_-K(6Z+P/@\0"QP8:'P  @#ZI @!T ^BP]+AS E#H=O:#
  98. XMQ *+^/9%"@1T!<8&J (!N'L"4.A?]H/$ HOX]D4*!'0%Q@:G @'H#/:#/K0>
  99. XM '4*N(,"4.BJ (/$ NC9]8-^! !U62O 4/\VM![H> .#Q 2)1OKK48 ^J0( 
  100. XM=22 /J@" '4=N)8"4(M>!O\WZ$\4@\0$"\!U"KB; E#H31&#Q (KP%"+7@:#
  101. XM1@8"_S?HYO6#Q )0Z"\#@\0$"4;ZBT8$_TX$"\!UKX ^K ( = 7_=OKK RO 
  102. XM4.A^#H/$ EY?B^5=PU6+[/\V'"&XK0)0N!H%4.CO#X/$!K@! %#H60Z+Y5W#
  103. XM58OL_S8<(;CT E"X&@50Z,\/@\0&_W80_W8._W8,_W8*_W8(_W8&_W8$N!H%
  104. XM4.BP#X/$$+@:!5"X"@!0Z-D/@\0$N $ 4.@,#HOE7<-5B^R#[ +_=@3H/PJ+
  105. XMY5W#58OL@^P.5U:X^@)0Z'_Z@\0"B]B)7O* /P!T ^F3 8M>!HM'!(E&^@O 
  106. XM=0/I@P&+V/]W KBT%E#H>A.#Q 2XM!90Z#O\@\0"OK06H*@"B$;\H*<"B$;^
  107. XM@#Q = 6 /"UU$H \0'4&QD;\ >L$QD;^ 4;KY( ^I@( =03&1OP B_[K3( ]
  108. XM"G4<@'T! '06Q@4@@'[\ '4WN!(%4+@  U#H1 _K)X!^_ !U)/\.% 5X$(H%
  109. XMBQX2!?\&$@6(!RKDZPZX$@50B@684.BJ"H/$!$> /0!UKX!^_ !U)/\.% 5X
  110. XM$+ *BQX2!?\&$@6(!RKDZPZX$@50N H 4.AZ"H/$!( ^I@( =0/IHP#_=O)6
  111. XMZ.+^@\0$B4;T"\!U ^F/ #W__W4/_W;RN ,#4.AY_H/$!.M[_W;T_S8<(;@:
  112. XM U#H3P^#Q : ?OX = VX$@50N"P#4.B4#NO7_PX4!7@0L J+'A(%_P82!8@'
  113. XM*N3K#K@2!5"X"@!0Z  *@\0$BUX$]D<*"'4A_W<"Z"D4@\0""\!U%(M>!/]W
  114. XM O\V'"&X. -0Z.X.@\0&_W;TZ%$,@\0"BU[ZBP?I<_Y>7XOE7<-5B^R#[ )6
  115. XMBUX$BW<$ZPQ6_W8$Z#+^@\0$BS0+]G7P7HOE7<-5B^R#[""-1N!0BUX$_W<"
  116. XMZ*(/@\0$"\!]*(,^D@8"=!3_-I(&BUX$_W<"N$L#4.B5_8/$!HM>!"O B4<(
  117. XMB4<&ZP^+7@2+1O:+5OB)1P:)5PB+Y5W#58OL@^P$@#ZF @!T!X ^J ( =1"+
  118. XM7@3_=P*X9@-0Z#H.@\0$@#ZF @!T)RO 4(M>!/]W NA4$X/$! O ?12+7@3_
  119. XM=P+_-APAN'<#4.@,#H/$!HOE7<-5B^R#[!!75L=&^ $ QT;Z  #&1OP BUX$
  120. XM]D<* G0%*\#IW &+7@2+1P8+1PAU!U/H(O^#Q * /JH" '0@BUX$BW\$"_]T
  121. XM"8-]! !U ^F=  O_=0G_=@3H 02#Q *+7@3V1PH$=16+1P8+1PAU#?]W KB-
  122. XM U#HI/R#Q 3'1O0  (M>!(M_! O_=0/IQ0"+=0(+]G1QBT8&0%#_= +H8?^#
  123. XMQ 2+7 *+1P:+5PB+7@0Y5PA\#G\%.4<&<@> /J4" '0/_W;T_W0"Z'SR@\0$
  124. XMB4;TBUP"BT;XBU;Z.5<(?Q1\!3E'!G,-BT;XBU;ZZPZ+/>E1_XM< HM'!HM7
  125. XM"(E&^(E6^HLTZXN /JP" '5!BUX$]D<*$'0X@#ZE @!U$HM&^(M6^CE7"'\F
  126. XM? 4Y1P9S'_]V]%?_=@3HS@"#Q ;'1O@! ,=&^@  QT;T  #^1OR+/>DT_XM>
  127. XM!(!/"@* /JP" '0UBT<&BU<(B4;PB5;RB\,%!@!0Z%P1@\0"BT;XBU;Z.5;R
  128. XM?@/IF?Y\"#E&\'(#Z8_^N $ ZVN+7@2+1OB+5OHY5PA\#G\%.4<&<@> /J4"
  129. XM '0FBUX$]D<*$'4=_W;T*\!04^A" (/$!HM&! 4& %#H !&#Q +I2/Z#?@8 
  130. XM= /I/_Z ?OP = /I-OZ+7@3_=P+_-APAN*H#4.@+#(/$!ND?_EY?B^5=PU6+
  131. XM[(/L E=6BW8(@#ZK @!T"?]V!.B,_>F# +C" U"XM!90Z (/@\0$ZS6XM!90
  132. XMZ!L/@\0""\!T#KC# U"XM!90Z%0.@\0$BUT"_W<"N+064.A$#H/$!(LU5^A.
  133. XM"X/$ HO^"_]UQ;BT%E"XQ0-0Z+3U@\0$BUX$_W<"N,<#4.BD]8/$!(-^!@!T
  134. XM#O]V!O]V!.C@^H/$!.L)_W8$Z(W\@\0"7E^+Y5W#58OL_S8<(;C* U"X&@50
  135. XMZ#X*@\0&_W8*_W8(_W8&_W8$N!H%4.@H"H/$"H,^&A\ =!+_-AH?N,\#4+@:
  136. XM!5#H#PJ#Q :X&@50N H 4.@X"H/$!+@! %#H:PB+Y5W#58OL@^P(5U;'1OH 
  137. XM /]V!K@ !"M&^E"+1OH#1@10Z%0)@\0&"\!U!K@! .FE /\&&A^X"@!0BT;Z
  138. XM T8$4.B%#8/$!(OP"_9U"KC= U#H4_^#Q * ?/]<=0[&1/\*B\8K1@2)1OKK
  139. XMIHMV!+@C %!6Z%,-@\0$B4;\"\!U%8-^_ !T"HM>_,8'"L9' 0"+=@3K+3EV
  140. XM_'3FBU[\@'__7'7=B\-(B4;XB_.+7OC_1OB+?OS_1OR*!8@'"L!TK^OJ1HH$
  141. XMF(O8]H?#!@AU\PK =0/I-_\KP%Y?B^5=PU6+[(/L!%=6ZP6+7@3_!XM>!(L?
  142. XMB@>8B]CVA\,&"'7JBUX$BQ^ /P!U!"O ZS.+7@2+-^L2BD;\F(O8]H?#!@AU
  143. XM$XM>!/\'BUX$BQ^*!XA&_ K =>"+7@2+/_\'Q@4 B\9>7XOE7<-5B^RX+@!0
  144. XM_W8$Z#\-B^5=PU6+[(/L%%=6OK06BUX$BW\"5^C:_X/$ HE&[@O =0LKP.EQ
  145. XM 8H%1X@$1CE^[G?UQ@0 N+064+CL U#HD_.#Q 2+V(M'!(E&]KCN U#H!NZ#
  146. XMQ *+V(E>\/9'"@1TPHM'!(E&_@O =+B+V(M' ND4 8M>^HM? HM' HE&\E#H
  147. XM>0R#Q +_=NZ)1NSH;0R#Q (#1NQ /0 $? JX^ -0Z"/X@\0"OK06BW[RB@5'
  148. XMB 1&"L!U]DZ+?NZ*!4>(!$8*P'7VN+064.B/[8/$ HE&\(O8]D<*!'4#Z:< 
  149. XMOK06BW[V_W;RZ!4,@\0"5XE&[.@+#(/$ @-&[$ ]  1\"K@-!%#HP?>#Q **
  150. XM!4>(!$8*P'7V3HM^\HH%1X@$1@K =?:XM!90Z#/M@\0"B4;XB]B+1P8+1PAU
  151. XM!U/HQ/F#Q *+7OB+1P8+1PAT.BO 4%/HH.V#Q 2)1OHKP%"+7O"+7P3_=P3_
  152. XM=OK_=@3H@NZ#Q B+7OC_=P*X) 10Z%KR@\0$N $ ZQ>+7OJ+!XE&^@O = /I
  153. XMXOZ+7OZ+!^G+_EY?B^5=PU6+[(/L!K@F!%"X+@10Z"3R@\0$*\!0N#8$4.A_
  154. XM[8/$!(E&_+A+!%#HC^R#Q *)1OXKP%#_=OQ0_W;^Z _N@\0(N%0$4+A9!%#H
  155. XMZ?&#Q 2X7 10N%T$4.C;\8/$!"O 4+AD!%#H-NV#Q 2)1ORX@ 10Z$;L@\0"
  156. XMB4;^*\!0_W;\4/]V_NC&[8/$"+B)!%"XC 10Z*#Q@\0$N(\$4+B3!%#HDO&#
  157. XMQ 0KP%"XF@10Z.WL@\0$B4;\N+ $4.C]ZX/$ HE&_BO 4/]V_%#_=O[H?>V#
  158. XMQ BXMP10N+P$4.A7\8/$!+B_!%"XP 10Z$GQ@\0$*\!0N,@$4.BD[(/$!(E&
  159. XM_+C@!%#HM.N#Q *)1OXKP%#_=OQ0_W;^Z#3M@\0(N.D$4.B7ZX/$ HE&_BO 
  160. XM4/]V_N@>[(/$!(E&^KCN!%#H>^N#Q *)1O[_=OI0Z 3L@\0$B4;ZN/,$4.AA
  161. XMZX/$ HE&_O]V^E#HZNN#Q 2)1OJX^ 10Z$?K@\0"B4;^_W;Z4.C0ZX/$!(E&
  162. XM^KC]!%#H+>N#Q *)1O[_=OI0Z+;K@\0$B4;ZN  %4.@3ZX/$ HE&_BO 4%#_
  163. XM=OK_=O[HD^R+Y5W#58OL@^P*QT;\=A*X  )0_W8$N'824.BA"8/$!NL0BD;V
  164. XMF(O8]H?#!@AT#_]&_(M>_(H'B$;V"L!UY,=&^   BU[\@#\ =%B+7OC1XXM&
  165. XM_(F'MAZ+7OR*!XA&]@K ="68B]CVA\,&"'4;_T;\BT;\B4;ZZ]^*1O:8B]CV
  166. XMA\,&"'0/_T;\BU[\B@>(1O8*P'7DBU[ZQ@< _T;X@W[X,7R@@W[X,7P%N/__
  167. XMZS>+7OC1X\>'MAX  +BV'E#_-K8>*\!0Z,0%@\0&B4;^0'0%BT;^ZQ"#/I(&
  168. XM G7T_W8$Z < @\0"B^5=PU6+[(/L!%=6Z"8 B_"X+P!0Z"\ @\0"_W8$Z L)
  169. XM@\0"B_A6Z!T @\0"B\=>7XOE7<-5B^Q75K@ -\TABL(RY%Y?7<-5B^Q75K@!
  170. XM-XI6!,TA7E]=PU6+[(/L!%=6BW8&]D0&@W0&]D0&0'0*@$P&(+C__^D$ ?9$
  171. XM!@%U\(!,!@* 9 ;O*\")1 *+^(E^_O9$!@AU$XI$!YB+V-'C ]C1X_:'J@4!
  172. XM=$"+/"M\!(M$!$")!(I$!YB+V-'C ]C1XXN'K 5(B40""_]^$E?_= 2*1 >8
  173. XM4.C'(H/$!HE&_HM<!(I&!(@'Z88 ]D0&!'5J@?X2!75#BD0'F%#H512#Q (+
  174. XMP'51_P;R!\=$!+(4BD0'F(O8T>,#V-'CQH>J!0''!+,4F(O8T>,#V-'CQX>L
  175. XM!0 "QT0"_P'KIK@  E#HZ@.#Q *)1 0+P'0,@$P&"$")!(I$!^O-@$P&!+\!
  176. XM %>-1@10BD0'F%#H-B*#Q :)1OXY?OYT ^GW_HI&!"KD7E^+Y5W#M##-(3P"
  177. XM<PZX! !0Z%T4DK0)S2'-(+^*!(LV @ K]X'^ !!R [X $/J.UX'$+B'[<PLS
  178. XMP%#H9!2X_TS-(8'D_O\VB28H!C:))B8&B\:Q!-/@2#:C) 8#]XDV @",PRO>
  179. XM]]NT2LTA-HP>F 86!_R_=@JY,"$KSS/ \ZH6'^@K !8?Z*$=Z( @,^W_-K8&
  180. XM_S:T!O\VL@;H?.]0Z+T N , 4.CY$[C_ %#HQ@"T,,TAHYH&NP0 N !$S2%R
  181. XM"O;"@'0%@(^>!D!+>>RX #7-(8D>A@:,!H@&#A^X "6ZX1G-(18?BPY@">,G
  182. XMC@:8!B:+-BP Q09B"8S:,]LV_QY>"3;%!F8)C-J[ P V_QY>"18?C@:8!B:+
  183. XM#BP XS2.P3/_)H ] '0JN0P OGH&\Z9T"[G_?S/ \JYU%^OE!AX''XOWOYX&
  184. XMK)B1K/[ = %(JN+W%A^^:@F_:@GH70##58OLOK 4O[ 4Z%  OFH)OVP)Z$< 
  185. XMZP-5B^R^; F_; GH.0#H;PZY%  SV_:'G@8!= 2T/LTA0^+RZ < BT8$M$S-
  186. XM(8L.8 GC![L" /\>7@D>Q1:&!K@ )<TA'\,[]W,*3T^+#>/V_]'K\L-5B^R#
  187. XM[!)75HMV!+____9$!H-U ^F  /9$!D!U>E;HAP^#Q *+^(I$!YB+V-'C ]C1
  188. XMXXN'K@6)1NY6Z- (@\0"BD0'F%#H_@V#Q (+P'T%O___ZT.#?NX =#NXQ =0
  189. XMC4;P4.CM!(/$!+C)!U"-1O!0Z$\$@\0$N H 4(U&]5#_=N[HJA&#Q :-1O!0
  190. XMZ+X&@\0"B_CK BO_QD0& (O'7E^+Y5W#58OL@^P$5U:+=@B+?@2#?@8 =00K
  191. XMP.LZ_TX&="'_3 )X"HL<_P2*!RKDZP=6Z%@'@\0"B4;^0'4-.7X$=-;&!0"+
  192. XM1@3K#(I&_H@%1SP*=<CK[%Y?B^5=PU6+[(/L E;H]AZ+\ OV= ]6_W8&_W8$
  193. XMZ"<(@\0&ZP(KP%Z+Y5W#58OL@^P$5U;_=@3H$ F#Q *+\(U&"%#_=@;_=@3H
  194. XM$1.#Q :+^/]V!%;HD0F#Q 2+QUY?B^5=PU6+[%=6BW8$BWX&_TT"> R+QHL=
  195. XM_P6(!RKDZPA75NB8^X/$!%Y?B^5=PU6+[(/L!E=6_W8$Z.<#@\0"B_C_=@;H
  196. XMI B#Q *+\/]V!E>X 0!0_W8$Z&(.@\0(B4;\_W8&5N@C"8/$!#E^_'4)BUX$
  197. XMBD'_F.L#N/__7E^+Y5W#58OLBUX$@$_^ 8OE7<-5B^Q65[O,!X,_ '4I'@>X
  198. XM!0#HK IU!3/ F>LD0"3^H\P'H\X'EL<$ 0"#Q@3'1/[^_XDVT@>+3@2,V([ 
  199. XMZ$0)7UZ+Y5W#58OL@^P&5U:^$@56Z <(@\0"B_B-1@90_W8$5N@*$H/$!HE&
  200. XM^E97Z(L(@\0$BT;Z7E^+Y5W#58OL,\#HK0O_-K8&_W8(_W8&_W8$Z,\:B^5=
  201. XMPU6+[(/L!E=6BD8$*N2)1OJ+?@: ?0$Z=0.#QP* /5QT!8 ]+W4&@'T! '0+
  202. XM]D;Z$'4%@#T =06X0$#K [@ @(OP]D;Z!70%N  !ZP.X@ $+\+@N %#_=@;H
  203. XMY *#Q 2+^ O_=#&XU@=05^C"'(/$! O =!ZXV0=05^BS'(/$! O = ^XW =0
  204. XM5^BD'(/$! O =02!SD  B\8EP &Q ]/H"_"+QB7  ;$&T^@+\(O&7E^+Y5W#
  205. XM58OL@^Q,5U:+=@2+?@:XWP=05NCN'(/$! O = S'!I(& @"X___I90&-1L90
  206. XMN!H 4.AA"8/$!,9&MT['1KHW (EVO(U&\E"-1K90Z$D.@\0$@W[^ '1L@#Q<
  207. XM= 6 /"]U!H!\ 0!T'H!\ 3IUMH!\ @!T$H!\ P!UJH!\ EQT!H!\ B]UGKA 
  208. XM % KP%#H-PV#Q 2)1L16Z*$*@\0"0'1)_W;$Z)4*@\0"_W;$Z/G]@\0"QD;;
  209. XM$"O B4;BB4;@B4;<B4;>*\")10*)10J)10B ? $Z=2B*!)B)1K2+V/:'PP8!
  210. XM=!$%( #K#_]VQ.BY_8/$ NDO_XM&M"UA .L7QD:W&8U&\E"-1K90Z(P-@\0$
  211. XMBD;R*N2)!8E%#%:*1MN84.@L_H/$!(E%!,=%!@$ BT;@BU;BB44.B540BT;<
  212. XM)1\ T>!0BT;<L073Z"4_ %"+1MRQ"]/H)1\ 4(M&WB4? %"+1MZQ!=/H)0\ 
  213. XM4(M&WK$)T^@E?P!0Z(@9@\0,B44:B54<B446B548B442B544*\!>7XOE7<-5
  214. XMB^Q65QX'BWX$B]<SP+G___*N3XOWBWX&B]^Y___RKD'WV8O^B_/SI(O"7UZ+
  215. XMY5W#58OL5XM^!!X'B]\SP+G___*N0??9BD8&B_ORKD\X!70",_^+QU^+Y5W#
  216. XM58OL5U:+=@2+?@8>!XO?,\"Y___RKD'WV8O[\Z:*1/\SR3I%_W($= 1)2??1
  217. XMB\%>7XOE7<-5B^Q75AX'BWX&B_<SP+G___*N0??9BWX$B]?SI(O"7E^+Y5W#
  218. XM58OL5QX'BWX$,\"Y___RKHO!0$#WV%^+Y5W#58OL5U8>!XM^!(MV!HO?BTX(
  219. XMXPRL"L!T ZKB^#+ \ZJ+PUY?B^5=PU6+[%<>!XM^!#/ N?__\JY!]]E/BD8&
  220. XM_?*N1S@%= 0SP.L"B\?\7XOE7<-5B^RX# #H)@C_=@3H@_^#Q (%" !0Z.7[
  221. XM@\0"B4;\"\!U"<<&D@8, .G8 +CB!U#_=@2XY =0_W;\Z##_@\0$4.B9_H/$
  222. XM!%#HDOZ#Q 2)1OCK _]&^(M>^( _ '7U_T[XBU[X@#\@=/6#1O@"BU[X_T;X
  223. XMQ@<-BU[XQ@< _W;\Z!#_@\0"2$B)1O0]@ !^",<&D@8' .LTBU[\BD;TB ?'
  224. XM!I(&  "XZ@=0Z.0*@\0"B4;^*\!04(U&]E"-1OI0_S:V!N@K!H/$"D!U"_]V
  225. XM_.@?^X/$ NLN_W;V_W;\_W;^*\!0Z+4'@\0(B4;T_W;ZZ/_Z@\0"_W;\Z/;Z
  226. XM@\0"@SZ2!@)U!;C__^L#BT;TB^5=PU6+[(/L K0JS2&+VHE._K0LS2$RY(K&
  227. XM4(K!4(K%4%"T*LTA.]I8= D\%W4%B].+3OXRY(K"4(K&4(O!+;P'4.CV%H/$
  228. XM#(-^! !T"(M>!(E7 HD'B^5=PU6+[(M6!+1!S2'I!PA5B^R#[!I75BO_B7[\
  229. XMN & 4/]V!.B1"X/$!(E&ZHE&]@O ?0:X___IH@"#?@8 =0R-1OA0Z&7_@\0"
  230. XMZP^+7@:+1P2+5P:)1OB)5OJ-1OA0Z)X*@\0"B_"+1 HM4  E?P"Q"=/@"_B+
  231. XM1 A )0\ L073X OXBT0&)1\ "_B+1 0E'P"Q"]/@"4;\BT0")3\ L073X E&
  232. XM_(L$F2O"T?@E'P )1OR+1OR)1NR)?N[&1N@!QD;I5XU&Z%"-1NA0Z*X)@\0$
  233. XM_W;VZ"8&@\0"*\!>7XOE7<-5B^Q75HMV!/9$!H-T!O9$!D!T!KC__^G" /9$
  234. XM!@)T!H!,!B#K[H!,!@'V1 8,=2V*1 >8B]C1XP/8T>/VAZH% 74:N  "4.AN
  235. XM^8/$ HE$! O = 2P".L"L 0(1 ;V1 8(=!**1 >8B]C1XP/8T>/'AZP%  *#
  236. XM? 0 =1J*1 >8B\C1X /!T>"+^ 6K!8E$!,>%K 4! (M$!(D$BD0'F(O8T>,#
  237. XMV-'C_[>L!?]T!)A0Z/X;@\0&B40""\!_%0O = 2P(.L"L! (1 ;'1 (  .E#
  238. XM__], HL<_P2*!RKD7E^+Y5W#58OL5HMV!/9$!H-T'?9$!@AT%_]T!.BO^(/$
  239. XM H!D!O<KP(D$B40$B40"7HOE7<-5B^R#[ A75HMV"(M>!HH'F#UA '1$/7( 
  240. XM= H]=P!T,RO Z=@ QT;^ 0#_1@:+7@: /RMU!X!._@C_1@:+1OXE!P ] 0!T
  241. XM&CT" '0S/00 =#/K$,=&_@( Z]#'1OX$ .O)*__V1OX(= B!SP( @>?^_XM>
  242. XM!H _='40@<\ 0.L6OP$#Z]^_"0'KVHM>!H _8G4$@<\ @+BD 5!7_W8$Z"4)
  243. XM@\0&B4;Z"\!] ^ES__9&_@AT!L9$!H#K$/9&_@9T!L9$!@+K!,9$!@'_!O('
  244. XMBT;ZB\C1X /!T>")1O@JP(M>^(B'J@68B40"QX>N!0  *\")!(E$!(I&^HA$
  245. XM!XO&7E^+Y5W#58OL5U:+=@3_!O('@?X2!74Y]D0&#'4SBD0'F(O(T> #P='@
  246. XMB_CVA:H% 74>QT0$LA3&A:H% <>%K 4  L=$ @ "QP2R%+@! .M.@?X:!70&
  247. XM@?XJ!75 ]D0&"'4ZBD0'F(O(T> #P='@B_CVA:H% 74E@3X6!;(4=!W'1 2R
  248. XM%(I$!IBC>!3&A:H% <>%K 4  H!D!OOKIBO 7E^+Y5W#58OL5U:+=@:#?@0 
  249. XM=1.A%@4Y1 1U"U;HL 2#Q (KP.M?@WX$ '19@?X2!748BD0'F%#H^0:#Q (+
  250. XMP'0)5NB*!(/$ NL;@?X:!70&@?XJ!74O5NAU!(/$ J!X%"0$"$0&BD0'F(O(
  251. XMT> #P='@B_C&A:H% ,>%K 4  "O B02)1 1>7XOE7</IS "#^>YS^$& X?Z+
  252. XM=P+\K8O^J %T0D@[P7,5B] #\*VH 70T \(% @"+]XE$_NOFB_YT# /YB4S^
  253. XM*\%(B07K!0/Y_DS^B\:,VHS1.]%T!2:,'O@'B7\"PR;&!OP' CW^_W0EB_X#
  254. XM\*VH 73RB_Y(.\%SO8O0 _"MJ %TX@/"!0( B_>)1/[KYHM'" O = 2.V.L4
  255. XM)OX._ =T$8S8C-<[QW0%)HX>] >+-^N\BW<&,\#H:@ [QG0-) % 0)CH7@!T
  256. XM#?Y-_N@< '0%EDY.ZYF,V(S1.\%T!":C^ >+!XE' C/ F<-1BT7^J %T RO(
  257. XM24%!NO]_)CL6^@=V!-'J=?6+P0/&<A4#PG(-]](CPBO&Z P =0CWTM'J=>4S
  258. XMP%G#4E'H'0!T&%>+_HOP _+'1/[^_XEW!HO6*]=*B57^6%E:PU-0,](>4E)0
  259. XMN $ 4 8?Z'X4@\0(@_K_'UI;= (+TL-5B^R*9@2+5@:*1@C-(8OE7<-5B^RX
  260. XM#@#H-@%75H-^! !U!J&V!HE&!(MV!,=&]@  ZQ"#Q@+_=/[H>/B#Q )  4;V
  261. XM@SP =>N+1O9 B4;XQT;\$P"+7OR OYX& '4)_T[\@W[\_W_M@W[\ 'P3N/X'
  262. XM4.A ^(/$ @-&_ 4#  %&^(M&^ 4/ %#HEO2#Q *)1OJ+7@:)!PO =2J#?@H 
  263. XM= G_=@KH;?2#Q +'!I(&# #'!IP&" #_=OKH6/2#Q *X___IB "+1OH%#P D
  264. XM\(OXBUX(B3^+=@3K&2O 4/\T5^BO]X/$!%#H2?>#Q 1 B_B#Q@*#/ !UXH-^
  265. XM_ !\2BO 4+@+"%!7Z(GW@\0$4.@C]X/$!(OXBD;\_L"(!4?'1O8  (M>]H"_
  266. XMG@8 = :*AYX&ZP*P_X@%1_]&]HM&_/]._ O ==[&!0!'Q@4 BT;X7E^+Y5W#
  267. XM68O<*]AR"CL>& AR!(OC_^$SP.FQ\%8S]KDV #+D_*PRX.+[@/15= >X 0!0
  268. XMZ)0$7L-5B^R+7@2T/LTA<@7&AYX& .D& 56+[+0YZPQ5B^RT.NL%58OLM#N+
  269. XM5@3-(>GK;2FR  L L%6+[(-^! %T$X-^! !T#<<&D@86 +C___CIS0!65XS8
  270. XMBUX*L033ZP/#HQH(BT8(HQP(C!X>"!X'BS8<"$:_* BX 2G-(;@!*;\X",TA
  271. XM508>@#Z:!@-](2Z,%H I+HDF?BF_+@"+-2Z)-H(IBW4"+HDVA"DNC!Z&*;L:
  272. XM"(-^! !T!K $,\GK C+ ^%"T"\TA6,<&N 8! (M6!K1+S2%0GU"T,,TA/ -8
  273. XM6WTA+HX6@"DNBR9^*;\N "Z.'H8I+HLVA"F)=0(NBS:"*8DUGI,?QP:X!@  
  274. XM!UU?7G($M$W-(>D( '((,\"+Y5W#<P;H#0"X__^+Y5W#,N3H 0##HIP&"N1U
  275. XM(X ^F@8#<@T\(G,-/"!R!; %ZP>0/!-V K 3NT@(UYBCD@;#BL3K]U6+[(/L
  276. XM!%=6BW8$*_^*1 8D SP"=4#V1 8(=1.*1 >8B]C1XP/8T>/VAZH% 70GBP0K
  277. XM1 2)1OP+P'X;4/]T!(I$!YA0Z&H0@\0&.T;\= > 3 8@O___BT0$B03'1 ( 
  278. XM (O'7E^+Y5W#58OL@^P&5U:+=@2+?@J+1@;W9@B)1OJ)1OR#?@8 = :#?@@ 
  279. XM=04KP.FS /9%!@AU$XI%!YB+V-'C ]C1X_:'J@4!='6#?OP =0/IA@"+1OPY
  280. XM10)R&5!6_S7H'12#Q :+1OPI10(!!<=&_   Z]:#?0( =!W_=0)6_S7H_!.#
  281. XMQ :+10(!!2E&_ /PQT4"  #KL_]- G@,B@2+'?\%B <JY.L+5XH$F%#H5^R#
  282. XMQ 3V108@=2!&_T[\ZXO_=OQ6BD4'F%#HA ^#Q :)1OX]__]T RE&_(M&^BM&
  283. XM_"O2]W8&7E^+Y5W#58OL@^Q"5U:+=@:+?@0+_W485NC9\(/$ HOX"_]U",<&
  284. XMD@8, .M4B7X$*\!0C4:^4.A5$8/$!(U&OE#H1?2#Q (% P [QGP*QP:2!B( 
  285. XM*\#K*2O 4%"X&0!0Z'+[@\0&!$&(!4?&!3I'Q@5<1XU&OE!7Z.GS@\0$BT8$
  286. XM7E^+Y5W#58OL@^P$5U:+-K8&"_9T.(-^! !T,O]V!.CF\X/$ HOXZR"+'( Y
  287. XM/7465_]V!%/HG!6#Q 8+P'4'BQR-00'K"H/& H,\ '7;*\!>7XOE7<-5B^Q6
  288. XM5XM^!(L%BUT"BTT$BU4&BW4(BWT*S2%7BWX&B06)70*)302)50:)=0B/10IR
  289. XM!#/VZPCH=OV^ 0"+!8EU#%]>B^5=PU6+[(M>!(/[%'T1@_L ? SVAYX&0'0%
  290. XMN $ ZP(SP(OE7<-5B^Q65[,!BTX(BT8$,]*#^0IU 9F+?@;IW!95B^R#[ 96
  291. XMZ"H5BUX$BP>+5P(K!@()&Q8$"8E&_(E6_HU&_%#H5A"#Q *+\(,^!@D ="56
  292. XMZ+,5@\0""\!T&H%&_! .@U;^ (U&_%#H+Q"#Q *+\,=$$ $ B\9>B^5=PU6+
  293. XM[%97N(H$CM@>!XM6!+YV":T[PG000)9T#)<SP+G___*NB_?KZY9?7HOE7<("
  294. XM %6+[%?_=@3HQO\+P'04DHOZ,\"Y___RKO?12;L" +1 S2%?B^5=P@( 58OL
  295. XM,O^(/H@(BT8&,NVI" !T K4@B"Z'""4# #T# '4%@78& 0"Z7 BT<AN3< 
  296. XMBU8$M$[-(7,#Z9L BT8&B\@E  4]  5U![@ $?GI%_S&!HD( 9&I  )T"XM6
  297. XM!+@ 0\TAZ9P J0, =%>I (!U4O8&20F =4NP @H&B B+5@2T/<TA<L>3N !$
  298. XMS2'VPH!U+;G__XO1N )"S2'WV;I<"+0_S2$+P'06@#Y<"!IU#_?9B]&X D+-
  299. XM(3/)M$#-(;0^S2&*1@8D PH&B B+5@2T/<TA<C?I.P[W1@8  74#Z6O_Q@:)
  300. XM" "+3@CH?0Z)3@@R[?8&B C_=0?W1@8" '4#@.'^BU8$M#S-(7,#Z5G[]@:(
  301. XM"/]U!_=&!@( =3*3M#[-(8I&!B0#"@:("(M6!+0]S2%RV/8&B0@!=13W1@@!
  302. XM '0-@,D!DXM6!+@!0\TAD^G!#56+[+AB >BY^5=6BW8&C8:B_J.(%(M&"*.$
  303. XM%(M&!*-^%,<&EA0  ,<&E!0  .DY H \)70#Z<@!QP:.% $ *\"CC!2C>A2C
  304. XMD!2C@A2CAA2C?!2C@!2CFA2CG!3'!HH4( " ? $P=3M&QP:*%#  ZS* /"UU
  305. XM!O\&G!3K)X \*W4,_P:,%,<&?!0  .L6@#P@=0V#/HP4 '4*_P9\%.L$_P::
  306. XM%$:*!)A0Z#T'@\0""\!UOU:XDA10Z,,&@\0$B_" /"YU$O\&AA1&5KB.%%#H
  307. XMK :#Q 2+\(H$F#U& '0Y/4X =#P]: !T)SUL '0'/7  ="7K!L<&@A0" (,^
  308. XM@A0 = : /'!T 4: / !U&^EC <<&@A0! .OCQP:"%!  Z]O'!H(4" #KTXH$
  309. XMF(F&GOX]10!T"CU' '0%/5@ =0G_!GH4@X:>_B"+AI[^+6, /14 =@/IH@ #
  310. XMP),N_Z=?,8L>A!2+'Z&4%(D'Z<8 _P:0%,<&FA0  +@* %#H%0&#Q +IKP"X
  311. XM" #K\?\&@!3'!HX4! #_!GH4_P:&%(,^@A0"= >#/H(4$'4UQP:"%   @P:$
  312. XM% *X$ !0Z-@ @\0"N#H 4.B' X/$ H,NA!0$N!  4.B_ (/$ H,&A!0"ZU6X
  313. XM$ #KERO 4.C? >N3N $ Z_7_MI[^Z+4"ZX6#/H(4 '0#B\9.B_[K3D,QR3!(
  314. XM,4@Q2#%1,<DP43%1,5$Q43&W,-PPX3!1,5$Q.S%1,<4P43%1,38Q@SZ6% !T
  315. XM$X,^E!0 =4F+'GX4]D<&('4ZZSU&ZQR /25T!D> /0!U]8O'*\90B\8>4.B3
  316. XM X/$!HOW@#P = /IO_V#/I04 '4/BQY^%/9'!B!T!;C__^L#H9047E^+Y5W#
  317. XM58OLN!@ Z"GW5U:#?@0*= 3_!I 4@SZ"% )T!X,^@A00=1:+'H04BP>+5P*)
  318. XM1OB)5OJ#!H04!.LI@SZ0% !T$(L>A!2+!XE&^,=&^@  ZPV+'H04BP>9B4;X
  319. XMB5;Z@P:$% *#/IH4 '0-BT;X"T;Z= 6+1@3K BO HY@4BS:(%(,^D!0 =2J#
  320. XM?OH ?22#?@0*=1?&!"U&BT;XBU;Z]]B#T@#WVHE&^(E6^L=&]@$ ZP7'1O8 
  321. XM (O]@^\8_W8$5_]V^O]V^.AF$8/$"(,^AA0 ="!7Z,#M@\0"BPZ.%"O(B4[^
  322. XMZP3&!#!&BT;^_T[^"\!_\HH%B 2#/GH4 '0'/&%\ X L($9'@'W_ '7F@SZ0
  323. XM% !U%*&,% L&?!1T"X-^]@!U!;@! .L"*\!0Z*8"@\0"7E^+Y5W#58OLN!  
  324. XMZ/3U5U;'!HH4( "#?@0 =!2^ 0"AA!2)1O2,7O:#!H04 NF$ (,^@A00=1:+
  325. XM'H04BP>+5P*)1O2)5O:#!H04!.L4BQZ$%(L'B4;XB4;TC%[V@P:$% *#/H(4
  326. XM$'4-BT;T"T;V=12XB@CK"8-^^ !U";B1"(E&](Q>]HM&](M6]HE&_(E6_BOV
  327. XMZP3_1OQ&Q%[\)H _ '7S@SZ&% !T#(O&.P:.%'8$BS:.%(L^DA0K_H,^G!0 
  328. XM=0=7Z T!@\0"5O]V]O]V].AE 8/$!H,^G!0 = =7Z/( @\0"7E^+Y5W#58OL
  329. XMN ( Z!#UH804B4;^@SZ&% !U!L<&CA0& /\V>A3_-HX4_W8$_S:(%/]V_NAF
  330. XM"8/$"H-^!&=T!H-^!$=U&(,^FA0 =1&#/HX4 '0*_S:(%.A""8/$ H,^FA0 
  331. XM=!&#/HX4 '4*_S:(%.@J"8/$ H,&A!0(QP:8%   H8P4"P9\%'02_W;^Z T)
  332. XM@\0""\!T!;@! .L"*\!0Z!T!B^5=PU6+[#/ Z''T5H,^EA0 =32+'GX4_T\"
  333. XM>!&*1@2+'GX4BS?_!X@$*N3K#?\V?A3_=@3H0N.#Q 1 =0;_!I84ZP3_!I04
  334. XM7HOE7<-5B^RX @#H)_175H,^EA0 =4V+=@0+]GY&ZR^+'GX4_T\">!&@BA2+
  335. XM'GX4BS__!X@%*N3K#O\V?A3_-HH4Z.WB@\0$0'4$_P:6%(O&3@O ?\J#/I84
  336. XM '4'BT8$ 0:4%%Y?B^5=PU6+[+@" .C"\U=6BW8(@SZ6% !U4.LYBQY^%/]/
  337. XM G@4Q%X$)HH'BQY^%(L__P>(!2KDZQ+_-GX4Q%X$)HH'F%#HA>*#Q 1 =03_
  338. XM!I84_T8$B\9."\!UP(,^EA0 =0>+1@@!!I047E^+Y5W#58OLN H Z%?S5U:+
  339. XM-H@4*\")1OR)1OB+/I(45NBDZH/$ HE&^BOX*WX$@SZ<% !U&( \+743@SZ*
  340. XM%#!U#*R84.BD_H/$ O].^H,^BA0P= L+_WX'@SZ<% !T&8-^! !T!O]&^.AA
  341. XM (,^F!0 = ;_1OSH<P"#/IP4 '4F5^BQ_H/$ H-^! !T"8-^^ !U ^@W (,^
  342. XMF!0 = F#?OP =0/H1@#_=OJ+QAY0Z.K^@\0&@SZ<% !T#<<&BA0@ %?H<?Z#
  343. XMQ )>7XOE7<-5B^PSP.B0\H,^C!0 = 6X*P#K [@@ %#H!/Z+Y5W#58OL,\#H
  344. XM<?*X, !0Z/']@\0"@SZ8%!!U%H,^>A0 = 6X6 #K [AX %#HU/V#Q *+Y5W#
  345. XM58OLN ( Z#WR5U:+=@: /"IU$8L>A!2*!YB+^(,&A!0"1NLZ*_^ /#!\,X \
  346. XM.7\N.3Z&%'4+@#PP=0;'!HH4, "LF(O/T>'1X0//T>$#R(/I,(OY@#PP? 6 
  347. XM/#E^XXM>!(D_B\9>7XOE7<-5B^RX @#HTO%6OI@(ZPV*!#A&!'4%N $ ZPA&
  348. XM@#P =>XKP%Z+Y5W#CP:>"(X>F 86![Z  *R8)H ^F@8#<D50C@8L #/ B\CW
  349. XMT8OX\JXF. 5U^8/' XO(]]%7\JY>@\$"]]E;B\,#P04# "7^_RO@B_P>!A\6
  350. XM!_.DL""JB\L?OH$ ZPZ+R 0$)/XKX(O\N$,@J_.DB\&JB_06'U"+W(O^K K 
  351. XM="#H-P!T]$Y6_P:R!JSH,@"J"L!T#.@C '7RQD7_ .O:JHOT2TL[\W,(K8<'
  352. XMB43^Z_*+W(DFM ;_)IX(/ ET CP@PSQ<=0B /")U ZSK&CPB=1:L/ UT$3PB
  353. XM=0> ?/Y<=01/JNOMK.O:PU6+[+C8 .C%\%=6B_V#[U+_=@K_=@C_=@;_=@3H
  354. XM/ B#Q B)1OY =2J#/I(& G4CBUX&B@<\7'0:"L!T!H!_ 3IT$+B@"%#HYO.#
  355. XMQ *+\ OV=0:+1O[IB0"X?P!05HV&+/]0Z.?G@\0&B_#&1JL B_6![M0 =-SK
  356. XM"8 \.W0)K(@%1X \ '7RQ@4 B_V#[U)7Z)_G@\0"B]B >?]<= NXI0A05^C7
  357. XMYH/$!/]V!E?HS>:#Q 3_=@K_=@A7_W8$Z)P'@\0(B4;^0'6*@SZ2!@)U@X \
  358. XM '4#Z7O_B\9&"\!UH^EQ_UY?B^5=PU6+[(/L(%=6BW8$N(!1N@$ 4E"-1 .9
  359. XM,\(KPKD" -/X,\(KPIE24.@^#HE&Z(E6ZHM>!M'CB[_""(O&F;D$ /?Y"])U
  360. XM!X-^!@)^ 4>X/ "94E"+1@R94E#H#0ZY$ XKVU-1B\B+1@J+VIE24(E.Y(E>
  361. XMYNCS#;F 4;L! %-1B\BX;0&+VO?NB]"+1@@#P@/'F5)0B4[@B5[BZ,T- T;@
  362. XM$U;B T;D$U;FB\B+1@Z+VID#R!/:@<$ IH'3SA(!3N@17NJ+1@@#QXE&^NB$
  363. XM"*$""8L6! D!1N@15NJ-1%")1O:+1@9(B4;TBT8*B4;P@SX&"0!T%XU&[%#H
  364. XM# F#Q (+P'0)@6[H$ Z#7NH BT;HBU;J7E^+Y5W#58OL58X>F 8SR8O!B^F+
  365. XM^4F+-BP "_9T"([&\JY%KG7Z19= )/Z+_='E \46'U>_"0#H1P=?B\^+_0/X
  366. XMB2ZV!AX'CMXS]DGC$X$\.T-T!8E^ $5%K*H*P'7ZXNV)3@ 6'UV+Y5W#58OL
  367. XM5U:+=@2+?@8>![=!LUJU((HDB@4*Y'0@"L!T'$9'.N=R!CKC=P("Y3K'<@8Z
  368. XMPW<" L4ZX'4(Z]@SR3K@= FY  !R DE)]]&+P5Y?B^5=PU6+[(/L E:^"@7V
  369. XM1 :#=14KP(E$ HA$!HE$!(D$QD0'_XO&ZPV+QH/&"#L&(@9UVBO 7HOE7<-5
  370. XMB^Q75AX'BW8&Z,(&BW8$,\"L.L1T"NC<!CK@=/2+QDA>7XOE7<-5B^R+7@3V
  371. XMAYX&('0.N )",\F+T<TA<P/I].[VAYX&@'4#Z8$ BTX(BU8&'@<SP/Q75HOP
  372. XMB_KC9;@*0/*N=3)1B\\KRDGC$,TAG /PG7,$M GK20O ="]&N0( NJ@(M$#-
  373. XM(7,$M GK- O =!I9B]?KQ5&+SRO*S2&< _"=<P2T">L:"\!U%O:'G@9 = N+
  374. XM7@: /QIU _CK!/FX !Q9<@*+QEY?Z6GNBTX("\EU!8O!Z5WNBU8&M$#-(7,$
  375. XMM GKY O =>#VAYX&0'0*B]J /QIU _CKS_FX !SKR56+[%97!H-^" !U.+\H
  376. XM!HM6!HM&!$AU!^A3 '(GZTB+-G@&2'01._=T#8M$ HE&#%;H.@!><S"#Q@2!
  377. XM_G@&<P0+TG4&N/__F>L=B]J#PP_1V[$#T^NT2,TA<NF2B02)5 *)-G@&,\ '
  378. XM7UZ+Y5W#BTX,B_<Y3 )T#(/&!('^> 9U\OGK/XO: QQR.8O3CL$[]W4&.1XD
  379. XM!G,F@\,/T=O1Z]'KT>L[]W4) ]FAF 8KV([ M$K-(7(-._=U!(D6) :2AP2+
  380. XMT<-5B^S&!H<( (M.!NAE (E.!HM6!#+MM#S-(7)4B]B+5@2X $/-(??! 0!U
  381. XM!#+)ZP*Q$/=&!@! =0[W1@8 @'4*]@9)"8!U X#)@ H.APBX $3-(7,%N 4 
  382. XMZQ: R0&+P_;"@'0#@,E B(^>!H"GG@;]Z?[LH90&]] CP8'A ,"H@'4#@,D!
  383. XMPU6+[(O>BU8&BW8$M$?-(8OSB^5=P^CN"%6+[(/L!%=6O@H%*__K%/9$!H-T
  384. XM"U;H^NR#Q ) = %'@\8(.38B!G/FB\=>7XOE7<-5B^R#[ Q75HM>!(%_ LX2
  385. XM?S1\!H$_ *9S+,<&J!10 ,<&I!0! "O HZX4HZP4HZ84HYX4HZ 4HZ(4QP:J
  386. XM% ( N)X4Z7<!N( SNN$!4E"+7@3_=P+_-^C3"*.H%+B 4;H! %)0H:@40)DS
  387. XMPBO"N0( T_@SPBO"B_B94E#H40FY@#.[X0%348M>!/]W O\WB4;TB5;VZ&0)
  388. XM*T;T&U;VB4;XB5;Z@W[Z 'TH@4;X@#.!5OKA :&H%$"9N00 ]_D+TG4*@4;X
  389. XM@%OH!3_\.J!3KTH$&J!2R!Z&H%)FY! #W^0O2=1^AJ!29N60 ]_D+TG4-
  390. XMH:@4F;F0 ??Y"])U!;ZJ".L#OL0(@2ZH%&P'N(!1N@$ 4E#_=OK_=OCH#PBC
  391. XMK!2X@%&Z 0!24(U&^%#H<@G'!J84 0#K!/\&IA2+'J84T>.AK!0Y 'SO_PZF
  392. XM%(L>IA31XRL HZ04N! .F5)0_W;Z_W;XZ,8'HZ(4N! .F5)0C4;X4.@K";@\
  393. XM )E24/]V^O]V^.BG!Z.@%+@\ )E24/]V^O]V^.AD"*.>%+AM ?<NJ!0#!JP4
  394. XM \<MRF.9N0< ]_F)%JH4QP:N%   Z8/^7E^+Y5W#58OL5U8>!XM^!(MV!HO7
  395. XMBTX(XS4[_G84B\8#P3OX<PP#\0/Y3D_]\Z3\ZQV+QPO&T>AS"HO',\;1Z'+K
  396. XMI$G1Z?.E<P6*!":(!8O"_%Y?B^5=PU6+[(M>!/:'G@8"= 4SP.E[ZHM."(M6
  397. XM!K0_S2%S!+0)ZR_VAYX&@'0H5E?\B_*+^HO(XQNT#:PZQ'0=/!IU!X"/G@8"
  398. XMZP6(!4?BZXO'*\)?7NDYZHOE7<.#^0%T!X \"G3GZ^+VAYX&0'09N !$S2'W
  399. XMPB  =0J-%MX(M#_-(7+/L KK+\8&W@@ C1;>"+0_S2%RO O =!J#?@@!=""Y
  400. XM__^+T;@!0LTAN0$ @#[>" IT![ -BU8&ZXZ+5@;KC( ^W@@*==GKNE6+[+B*
  401. XM .AJZ%=6BW8&@WX$ G40_W8*_W8(5NC*!8/$!NGT "O 4(V&>/]0C4;X4(U&
  402. XM_E#_=@K_=@CHFP.#Q Q =0:X___ISP"X7 !05NC(WX/$!(OX"_]U HO^N"X 
  403. XM4%?H[MZ#Q 0+P'08_W;XC89X_U!6_W8$Z&3H@\0(B4;ZZ8D 5NA/WX/$ @4%
  404. XM %#HL=N#Q *+^ O_=0O_=O[HE-N#Q +KGKC@"%!65^@#WX/$!%#H;-Z#Q 3'
  405. XM!I(&  #_=OB-AGC_4%?_=@3H$>B#Q B)1OJ#/I(& G4KN.4(4+@N %!7Z#/?
  406. XM@\0$4.C$WH/$!/]V^(V&>/]05_]V!.C?YX/$"(E&^E?H*]N#Q +_=O[H(MN#
  407. XMQ *+1OI>7XOE7<.+T ,&* 9R-3D&) 9S)04/ %#1V+$#T^B,V8L>F 8KRP/!
  408. XMCL.+V+1*S2%8<A D\$BC) :5BRXH!@$6* ;#B\?IVM>_Z@B+W[D0 #/ \ZJL
  409. XM"L!T%8OXL0/3[P/[L@&*R(#A!]+B"!7KYL-1B_BQ ]/O _NR 8K(@.$'TN)9
  410. XM,\"$%70!0,-5B^Q75AX'BTX(XR:+V8M^!(OW,\#RKO?9 \N+_HMV!O.FBD3_
  411. XM,\DZ1?]W!'0$24GWT8O!7E^+Y5W#58OL@^P$5U:X2@E0Z.GI@\0"B_ +]G4#
  412. XMZ94 @#P =0/IC0"X P!05O\V" GHYMV#Q :X$ Z94E"#Q@-6Z+H!@\0"4E#H
  413. XMT02C @F)%@0)*_^+WP/>@#\ =!^+WP/>B@>8B]CVA\,&!'4)B]\#WH _+74&
  414. XM1X/_ WS8B]\#WH _ '05N , 4(O' \90_S8*">B$W8/$!NL'BQX*"<8' (L>
  415. XM"@F /P!T!;@! .L"*\"C!@E>7XOE7<-5B^R#[ 975HMV!(-\" -\!H-\" E^
  416. XM!2O Z;H @WP( WX)@WP("7T#Z:@ BWP*@<=L!XM<"-'CBX?&"$")1OZ+QYFY
  417. XM! #W^0O2=1N+QYFY9 #W^0O2=0R+QYFYD 'W^0O2=0/_1OZ+? J#[T:X;0'W
  418. XM[XO(C44!B]F9,\(KPKD" -/X,\(KP@-&_@/#!00 F;D' /?YBT;^*\*)1OJ#
  419. XM? @#=1@Y1 Y_+#E$#G0#Z6C_@WP$ GT#Z5__ZQF+1OHY1 Y\$3E$#G0#Z4W_
  420. XM@WP$ 7P#Z43_N $ 7E^+Y5W#58OL5E>S .D  (M."HM&!(M6!HM^"%<>!_R3
  421. XM"L!T$X/Y"G4."])Y"K MJO?;@]( ]]J+]Y(ST@O = +W\9/W\9*'TP0P/#EV
  422. XM @0GJHO""\-UXH@%3ZR&!8A$_T\[]W+U6%]>B^5=P^DD E6+[+@2 .B2Y%=6
  423. XM*_8Y=@9U!J&V!HE&!H-^!@!T(HM&!HE&\.L2BU[P@T;P O\WZ,S;@\0"0 /P
  424. XMBU[P@S\ =>;'1O@4 (M>^("_G08 =07_3OAU\8-^^ !T"(M&^ 4.  /P@WX.
  425. XM '00BUX$_S?HCMN#Q (% P #\$:)=O:+-OH'QP;Z!Q  BT;V!0\ 4.C:UX/$
  426. XM HE&_@O =2F+1O8%#P!0Z,;7@\0"B_@+_W49QP:2!@P QP:<!@@ B3;Z![C_
  427. XM_^E! 8M^_HDV^@>+7@B)?O*)/XM&\@4/ "3PB4;RBUX*B_B)/X-^!@!T+8M&
  428. XM!HE&\.L=*\!0BU[P_S=7Z-O:@\0$4.AUVH/$!$"+^(-&\ *+7O"#/P!UVX-^
  429. XM^ !T.RO 4+A."5!7Z+':@\0$4.A+VH/$!(OXBD;XB 5'*_: O)X& '0&BH2>
  430. XM!NL"L/^(!4=&_T[X=>C&!0!'Q@4 @WX. '0/@\<#BUX$_S=7Z&S:@\0$*_:+
  431. XM?@Q'BUX$.3=T>CEW G0%Q@4@1T:+1@0% @")1O#K6?]V[NAFVH/$ HE&_ /&
  432. XM/7T ?AK'!I(&!P#'!IP&"@"+7@C_-^BCUH/$ NG^_@-V_"O 4(M>\/\W5^@+
  433. XMVH/$!%#HI=F#Q 2+^(-&\ *+7O"#/P!T!<8%($=&BU[PBP>)1NX+P'6;Q@4-
  434. XMBUX,B\:(!XM&]EY?B^5=P[@" .E2TXL.; GC O_AN/__QP:2!A8 Z<OC58OL
  435. XM5E>+=@3\,\"9B]JL/"!T^SP)=/<\+9QT!#PK=0&L/#EW'RPP<AO1X]'2B\N+
  436. XM^M'CT=+1X]'2 ]D3UP/8@]( Z]R3G74']]B#T@#WVE]>B^5=PU6+[%=64S/_
  437. XMBT8&"\!]$O?7BU8$]]CWVAT  (E&!HE6!(M&"@O ?1+WUXM6"/?8]]H=  ")
  438. XM1@J)5@@+P'46BTX(BT8&,]+W\8O8BT8$]_&+T^L\D(O8BTX(BU8&BT8$T>O1
  439. XMV='JT=@+VW7T]_&+\#/24E#_=@K_=@CH)P [5@9W!W((.T8$=@.#[@$STHO&
  440. XM"_]T!_?:]]B#V@!;7E^+Y5W"" !5B^Q7BWX&BT8*"_B+7@B+3@1T"_?AB_B+
  441. XMP_=F!@/XB\/WX0/77XOE7<(( %6+[%-7,_^+1@8+P'T2]]>+5@3WV/?:'0  
  442. XMB48&B58$BT8*"\!]$(M6"/?8]]H=  ")1@J)5@@+P'4:BTX(BT8&,]+W\8M&
  443. XM!/?QB\(ST@O_=47K2I"+V(M."(M6!HM&!-'KT=G1ZM'8"]MU]/?Q,])24/]V
  444. XM"O]V".A9_SM6!G<'<@L[1@1V!BM&"!M6"BM&!!M6!@O_=0?WVO?8@]H 7UN+
  445. XMY5W"" !5B^R+7@3_=@C_=@;_=P+_-^A&_XM>!(E7 HD'B^5=P@8)'[( %P"P
  446. XM0R!,:6)R87)Y("T@*$,I0V]P>7)I9VAT($UI8W)O<V]F="!#;W)P(#$Y.#8?
  447. XM "5S(#T@)7,* "5S.CH* "5S.@H *$U!24X@3D%-12D* " E<P M"25S"@!C
  448. XM:7)C=6QA<B!D97!E;F1E;F-Y(&9R;VT@8"5S)P N4%)%0TE/55,  &YO(&UE
  449. XM;6]R>2!F;W(@;F%M90!N;R!M96UO<GD@9F]R(&YA;64 ;F\@;65M;W)Y(&9O
  450. XM<B!D97!E;F1A;G0 ;F\@;65M;W)Y(&9O<B!C;VUM86YD &YO(&UE;6]R>2!F
  451. XM;W(@8V]M;6%N9 !C;VUM86YD<R!D969I;F5D('1W:6-E(&9O<B!T87)G970@
  452. XM)7, :6YC;VYS:7-T96YT(')U;&5S(&9O<B!T87)G970@)7, ;F\@;65M;W)Y
  453. XM(&9O<B!L:6YE ')U;&5S(&YO="!A;&QO=V5D(&AE<F4 ;F\@;6%C<F\@;F%M
  454. XM90!N;R!T87)G971S('!R;W9I9&5D  !N;R!M96UO<GD@9F]R(&UA8W)O &YO
  455. XM(&UE;6]R>2!F;W(@;6%C<F\ ;F\@;65M;W)Y(&9O<B!M86-R;P  :6YF:6YI
  456. XM=&5L>2!R96-U<G-I=F4@;6%C<F\@)7, 97AP86YD960@;&EN92!T;V\@;&EN
  457. XM90  ;6%K90!M86ME "T <@!M86ME9FEL90!M86ME9FEL90!C86YN;W0@;W!E
  458. XM;B!@)7,G.R!E<G)O<B E,#)X '( ;6%K969I;&4 ;6%K969I;&4 8V%N;F]T
  459. XM(&]P96X@8"5S)P!R &-A;FYO="!O<&5N(& E<R< )  D "Y324Q%3E0 +DE'
  460. XM3D]210!N;R!T87)G971S(&1E9FEN960 ;&]V90!.;W0@=V%R(0H   $    !
  461. XM  !U<V%G93H@)7,@6RUF(&UA:V5F:6QE72!;+6%I;G!Q<G-T72!;/&UA8W)O
  462. XM/CT\=F%L/BXN+ET@6W1A<F=E="AS*2XN+ET* "5S.B   %-(14Q, %P* &-O
  463. XM=6QD(&YO="!E>&5C=71E(& E<R< )7,Z(&5R<F]R(&-O9&4@)60 ("AI9VYO
  464. XM<F5D*0H )7,Z(& E<R<@<F5M;W9E9"X* &-A;FYO="!O<&5N(& E<R<[(&5R
  465. XM<F]R("5D " @("!T;W5C:"A@)7,G*0H )7,Z(& E<R<@;F]T('1O=6-H960*
  466. XM &1O(&YO="!K;F]W(&AO=R!T;R!M86ME(& E<R< )7,Z(& E<R<@:7,@=7 @
  467. XM=&\@9&%T90H  "  /P!    E<SH@ "!N96%R(&QI;F4@)60 ;&EN92!T;V\@
  468. XM;&]N9P  *@ N4U5&1DE815, <W5F9FEX(')U;&4@=&]O(&QO;F< :6UP;&EC
  469. XM:70@;F%M92!T;V\@;&]N9P \ &5X93)B:6X 15A%,D))3@ D*$5813)"24XI
  470. XM("0J+F5X92 D0  N97AE+F-O;0!L:6YK $Q.  !,1DQ!1U, )"A,3BD@)"HN
  471. XM;V)J+"1 ("0H3$9,04=3*2 [ "YO8FHN97AE &-C $-# "U/= !#1DQ!1U, 
  472. XM)"A#0RD@)"A#1DQ!1U,I("UC("0\ "YC+F]B:@!M87-M $%3  !!4T9,04=3
  473. XM "0H05,I("0\+"1 ("0H05-&3$%'4RD[ "YA<VTN;V)J "YC;VT +F5X90 N
  474. XM;V)J "YA<VT +F, +E-51D9)6$53 !P?   <'P$          @$        &
  475. XM @       (0#         @0J!;( > "P 0   @0 L@!T +"B!0       (H$
  476. XM"@"R $P L"@&.T-?1DE,15])3D9/#@"R !@ L(&!@0$!!0"R "  L" ) + H
  477. XM*"@H* 4 LB 2 +!( 0"R$ \ L(0* + 0$! 0$! 0@8&!@8&!#0"R 10 L! 0
  478. XM$! 0$(*"@H*"@@P L@(4 + 0$! 0( 4 L@"! +!<5$U0 %P& +( # "P+F$ 
  479. XM+F$ +F$ /RH ( !X("]C( !#3TU34$5#&P"R  H L"   #M#7T9)3$5?24Y&
  480. XM3P [0U]&24Q%7TE.1D\ ,"(       #X!XT$" B-!"T L@ A + 6 @(8#0D,
  481. XM# P'"/___Q(-$@+_$P"R "X L"AN=6QL*0 H;G5L;"D *RT@(P    !0051(
  482. XM %P   T*__\> #L 6@!X )< M0#4 /, $0$P 4X!;0'__QX .@!9 '< E@"T
  483. XM -, \@ 0 2\!30%L 0  +F-O;0 N97AE7P"R !$ L%!35 !01%0 @'    $ 
  484. XM^@C^"%-U;DUO;E1U95=E9%1H=49R:5-A= !*86Y&96)-87)!<')-87E*=6Y*
  485. XM=6Q!=6=397!/8W1.;W9$96,     5%H  #M#7T9)3$5?24Y&3V  L@ 0 +">
  486. XM/0  /#Q.35-'/CX!  T*97)R;W(@,C P,3H@3G5L;"!P;VEN=&5R(&%S<VEG
  487. XM;FUE;G0-"@    T*97)R;W(@,C P,#H@4W1A8VL@;W9E<F9L;W<-"@ #  T*
  488. XM97)R;W(@,C P,SH@26YT96=E<B!D:79I9&4@8GD@, T*  0 #0IE<G)O<B R
  489. XM,# T.B!$3U,@,BXP(&]R(&QA=&5R(')E<75I<F5D#0HD  D #0IE<G)O<B R
  490. XM,# Y.B!.;W0@96YO=6=H('-P86-E(&9O<B!E;G9I<F]N;65N= T*  ( #0IE
  491. XM<G)O<B R,# R.B!&;&]A=&EN9R!P;VEN="!N;W0@;&]A9&5D#0H ____# &R
  492. XM  H L/__________________11D     40$ ")T&,@520HS !1  #A^C!  #
  493. XM!@P CL"+#@8 B_E/B_?]\Z10N#( 4,N,PXS82([8CL"_#P"Y$ "P__.N1XOW
  494. XMB\-(CL"_#P"Q!(O&]]#3Z'0*C-HKT([:@<[P_XO']]#3Z'0*C,(KT(["@<_P
  495. XM_ZR*T$ZMB\A&BL(D_CRP=0:L\ZKK!Y \LG5K\Z2*PJ@!=+B^)P$.'XL>! #\
  496. XM,]*MB\CC$XO" \..P*V+^(/__W01)@$=XO.!^@#P=!:!P@ 0Z]R,P$".P(/O
  497. XM$"8!'4B.P.OBB\.+/@@ BS8*  /P 08" "T0 ([8CL"[  #ZCM:+Y_LN_R^T
  498. XM0+L" +D6 (S*CMJZ$0'-(;C_3,TA4&%C:V5D(&9I;&4@:7,@8V]R<G5P= 4 
  499. XHRDY<&<)0QE"W+0                                       '5P
  500. Xend
  501. FRIDAY_NIGHT
  502. echo extracting - move.c
  503. sed 's/^X//' > move.c << 'FRIDAY_NIGHT'
  504. X/****************************************************************/
  505. X/* Wmove() routine of the PCcurses package            */
  506. X/*                                */
  507. X/****************************************************************/
  508. X/* This version of curses is based on ncurses, a curses version    */
  509. X/* originally written by Pavel Curtis at Cornell University.    */
  510. X/* I have made substantial changes to make it run on IBM PC's,    */
  511. X/* and therefore consider myself free to make it public domain.    */
  512. X/*        Bjorn Larsson (...mcvax!enea!infovax!bl)    */
  513. X/****************************************************************/
  514. X/* 1.0:    Release:                    870515    */
  515. X/****************************************************************/
  516. X
  517. X#include <curses.h>
  518. X#include <curspriv.h>
  519. X
  520. X/****************************************************************/
  521. X/* Wmove() moves the cursor in window 'win' to position (x,y).    */
  522. X/****************************************************************/
  523. X
  524. Xint    wmove(win,y,x)
  525. X  WINDOW    *win;
  526. X  int         y;
  527. X  int         x;
  528. X  {
  529. X  if ((x < 0)||(x > win->_maxx)||(y < win->_regtop)||(y >win->_regbottom))
  530. X    return(ERR);
  531. X  win->_curx = x;
  532. X  win->_cury = y;
  533. X  return(OK);
  534. X  } /* wmove */
  535. X
  536. X/****************************************************************/
  537. X/* Move() moves the cursor in stdscr to position (x,y).        */
  538. X/****************************************************************/
  539. X
  540. Xint move(y,x)
  541. X  int y;
  542. X  int x;
  543. X  {
  544. X  return(wmove(stdscr,y,x));
  545. X  } /* move */
  546. FRIDAY_NIGHT
  547. echo extracting - mvcursor.c
  548. sed 's/^X//' > mvcursor.c << 'FRIDAY_NIGHT'
  549. X/****************************************************************/
  550. X/* Mvcur() routine of the PCcurses package            */
  551. X/*                                */
  552. X/****************************************************************/
  553. X/* This version of curses is based on ncurses, a curses version    */
  554. X/* originally written by Pavel Curtis at Cornell University.    */
  555. X/* I have made substantial changes to make it run on IBM PC's,    */
  556. X/* and therefore consider myself free to make it public domain.    */
  557. X/*        Bjorn Larsson (...mcvax!enea!infovax!bl)    */
  558. X/****************************************************************/
  559. X/* 1.0:    Release:                    870515    */
  560. X/****************************************************************/
  561. X
  562. X#include <curses.h>
  563. X#include <curspriv.h>
  564. X
  565. X/****************************************************************/
  566. X/* Mvcur(oldy,oldx,newy,newx) the display cursor to <newy,newx>    */
  567. X/****************************************************************/
  568. X
  569. Xint    mvcur(oldy,oldx,newy,newx)
  570. X  int oldy;
  571. X  int oldx;
  572. X  int newy;
  573. X  int newx;
  574. X  {
  575. X  if ((newy >= LINES) || (newx >= COLS) || (newy < 0) || (newx < 0))
  576. X    return(ERR);
  577. X  _cursescursor(0,newy,newx);
  578. X  _cursvar.cursrow = newy;
  579. X  _cursvar.curscol = newx;
  580. X  return(OK);
  581. X  } /* mvcur */
  582. FRIDAY_NIGHT
  583. echo extracting - nearcall.inc
  584. sed 's/^X//' > nearcall.inc << 'FRIDAY_NIGHT'
  585. X    far_call EQU    0
  586. FRIDAY_NIGHT
  587. echo extracting - newwin.c
  588. sed 's/^X//' > newwin.c << 'FRIDAY_NIGHT'
  589. X/****************************************************************/
  590. X/* Newwin(), subwin() routines of the PCcurses package        */
  591. X/*                                */
  592. X/****************************************************************/
  593. X/* This version of curses is based on ncurses, a curses version    */
  594. X/* originally written by Pavel Curtis at Cornell University.    */
  595. X/* I have made substantial changes to make it run on IBM PC's,    */
  596. X/* and therefore consider myself free to make it public domain.    */
  597. X/*        Bjorn Larsson (...mcvax!enea!infovax!bl)    */
  598. X/****************************************************************/
  599. X/* 1.0:    Release:                    870515    */
  600. X/****************************************************************/
  601. X
  602. X#include <stdio.h>
  603. X#include <curses.h>
  604. X#include <curspriv.h>
  605. X
  606. X/****************************************************************/
  607. X/* Makenew() allocates all data for a new window except the    */
  608. X/* actual lines themselves.                    */
  609. X/****************************************************************/
  610. X
  611. Xstatic WINDOW *makenew(num_lines, num_columns, begy, begx)
  612. X  int    num_lines, num_columns, begy, begx;
  613. X  {
  614. X  int         i;
  615. X  WINDOW    *win;
  616. X
  617. X  /* allocate the window structure itself */
  618. X
  619. X  if ((win = (WINDOW *) malloc(sizeof(WINDOW))) == NULL)
  620. X    return ((WINDOW *) ERR);
  621. X
  622. X  /* allocate the line pointer array */
  623. X
  624. X  if ((win->_line = (int **) calloc(num_lines, sizeof (int *))) == NULL)
  625. X    {
  626. X    free(win);
  627. X    return((WINDOW *) ERR);
  628. X    }
  629. X
  630. X  /* allocate the minchng and maxchng arrays */
  631. X
  632. X  if ((win->_minchng = (int *) calloc(num_lines, sizeof(int))) == NULL)
  633. X    {
  634. X    free(win);
  635. X    free(win->_line);
  636. X    return((WINDOW *) ERR);
  637. X    }
  638. X  if ((win->_maxchng = (int *) calloc(num_lines, sizeof(int))) == NULL)
  639. X    {
  640. X    free(win);
  641. X    free(win->_line);
  642. X    free(win->_minchng);
  643. X    return((WINDOW *) ERR);
  644. X    }
  645. X
  646. X  /* initialize window variables */
  647. X
  648. X  win->_curx      = 0;
  649. X  win->_cury      = 0;
  650. X  win->_maxy      = num_lines - 1;
  651. X  win->_maxx      = num_columns - 1;
  652. X  win->_begy      = begy;
  653. X  win->_begx      = begx;
  654. X  win->_flags     = 0;
  655. X  win->_attrs     = ATR_NRM;
  656. X  win->_tabsize   = 8;
  657. X  win->_clear     = (bool) ((num_lines == LINES) && (num_columns == COLS));
  658. X  win->_leave     = FALSE;
  659. X  win->_scroll    = FALSE;
  660. X  win->_nodelay   = FALSE;
  661. X  win->_keypad    = FALSE;
  662. X  win->_regtop    = 0;
  663. X  win->_regbottom = num_lines - 1;
  664. X
  665. X  /* init to say window unchanged */
  666. X
  667. X  for (i = 0; i < num_lines; i++)
  668. X    {
  669. X    win->_minchng[i] = 0;
  670. X    win->_maxchng[i] = num_columns-1;
  671. X    }
  672. X
  673. X  /* set flags for window properties */
  674. X
  675. X  if ((begy + num_lines) == LINES)
  676. X    {
  677. X    win->_flags |= _ENDLINE;
  678. X    if ((begx == 0) && (num_columns == COLS) && (begy == 0))
  679. X      win->_flags |= _FULLWIN;
  680. X    } /* if */
  681. X  if (((begy + num_lines) == LINES)
  682. X        &&
  683. X      ((begx + num_columns) == COLS))
  684. X    win->_flags |= _SCROLLWIN;
  685. X  return(win);
  686. X  } /* makenew */
  687. X
  688. X/****************************************************************/
  689. X/* Newwin() creates a new window with size num_lines * num_co-    */
  690. X/* lumns, and origin begx,begy relative to the SCREEN. Special    */
  691. X/* case: if num_lines and/or num_columns is 0, the remainder of    */
  692. X/* the screen is used.                        */
  693. X/****************************************************************/
  694. X
  695. XWINDOW *newwin(num_lines, num_columns, begy, begx)
  696. X  int    num_lines, num_columns, begy, begx;
  697. X  {
  698. X  WINDOW    *win;
  699. X  int        *ptr;
  700. X  int         i, j;
  701. X
  702. X  if (num_lines == 0)
  703. X    num_lines = LINES - begy;
  704. X  if (num_columns == 0)
  705. X    num_columns = COLS - begx;
  706. X  if ((win = makenew(num_lines, num_columns, begy, begx)) == (WINDOW *) ERR)
  707. X    return((WINDOW *) ERR);
  708. X  for (i = 0; i < num_lines; i++)    /* make and clear the lines */
  709. X    {
  710. X    if((win->_line[i] = (int *) calloc(num_columns,sizeof(int))) == NULL)
  711. X      {
  712. X      for (j = 0; j < i; j++)        /* if error, free all the data */
  713. X    free(win->_line[j]);
  714. X      free(win->_minchng);
  715. X      free(win->_maxchng);
  716. X      free(win->_line);
  717. X      free(win);
  718. X      return((WINDOW *) ERR);
  719. X      } /* if */
  720. X    else
  721. X      for (ptr = win->_line[i]; ptr < win->_line[i] + num_columns;)
  722. X    *ptr++ = ' ' | ATR_NRM;
  723. X    } /* for */
  724. X  return(win);
  725. X  } /* newwin */
  726. X
  727. X/****************************************************************/
  728. X/* Subwin() creates a sub-window in the 'orig' window, with    */
  729. X/* size num_lines * num_columns, and with origin begx, begy    */
  730. X/* relative to the SCREEN. Special case: if num_lines and/or    */
  731. X/* num_columns is 0, the remainder of the original window is    */
  732. X/* used. The subwindow uses the original window's line buffers    */
  733. X/* to store it's own lines.                    */
  734. X/****************************************************************/
  735. X
  736. XWINDOW *subwin(orig, num_lines, num_columns, begy, begx)
  737. X  WINDOW    *orig;
  738. X  int         num_lines, num_columns, begy, begx;
  739. X  {
  740. X  WINDOW    *win;
  741. X  int         i, j, k;
  742. X
  743. X  /* make sure window fits inside the original one */
  744. X
  745. X  if (
  746. X      begy < orig->_begy || 
  747. X      begx < orig->_begx ||
  748. X      (begy + num_lines) > (orig->_begy + orig->_maxy) ||
  749. X      (begx + num_columns) > (orig->_begx + orig->_maxx)
  750. X     )
  751. X    return((WINDOW *) ERR);
  752. X
  753. X  if (num_lines == 0)
  754. X    num_lines = orig->_maxy - (begy - orig->_begy);
  755. X  if (num_columns == 0)
  756. X    num_columns = orig->_maxx - (begx - orig->_begx);
  757. X  if ((win = makenew(num_lines, num_columns, begy, begx)) == (WINDOW *) ERR)
  758. X    return((WINDOW *) ERR);
  759. X
  760. X  /* set line pointers the same as in the original window */
  761. X
  762. X  j = begy - orig->_begy;
  763. X  k = begx - orig->_begx;
  764. X  for (i = 0; i < num_lines; i++)
  765. X    win->_line[i] = (orig->_line[j++]) + k;
  766. X  win->_flags |= _SUBWIN;
  767. X  return(win);
  768. X  } /* subwin */
  769. FRIDAY_NIGHT
  770. echo extracting - options.c
  771. sed 's/^X//' > options.c << 'FRIDAY_NIGHT'
  772. X/****************************************************************/
  773. X/* Idlok(), clearok(), leaveok(), scrollok(), nodelay(), key-    */
  774. X/* pad(), meta(), cursoff() and curson() routines of the    */
  775. X/* PCcurses package.                        */
  776. X/*                                */
  777. X/****************************************************************/
  778. X/* This version of curses is based on ncurses, a curses version    */
  779. X/* originally written by Pavel Curtis at Cornell University.    */
  780. X/* I have made substantial changes to make it run on IBM PC's,    */
  781. X/* and therefore consider myself free to make it public domain.    */
  782. X/*        Bjorn Larsson (...mcvax!enea!infovax!bl)    */
  783. X/****************************************************************/
  784. X/* 1.0:    Release:                    870515    */
  785. X/****************************************************************/
  786. X
  787. X#include <curses.h>
  788. X#include <curspriv.h>
  789. X
  790. Xstatic bool    hasold = FALSE;        /* for remembering old cursor type */
  791. Xstatic int    oldmode;
  792. X
  793. X/****************************************************************/
  794. X/* Idlok() is used to set  flag for using the terminal insert/    */
  795. X/* delete line capabilities. This is not relevant for the PC    */
  796. X/* version of curses, and thus nothing is done.            */
  797. X/****************************************************************/
  798. X
  799. Xvoid idlok(win, flag)
  800. X  WINDOW    *win;
  801. X  bool         flag;
  802. X  {
  803. X  } /* idlok */
  804. X
  805. X/****************************************************************/
  806. X/* Clearok() marks window 'win' to cause screen clearing and    */
  807. X/* redraw the next time a refresh is done.            */
  808. X/****************************************************************/
  809. X
  810. Xvoid clearok(win, flag)
  811. X  WINDOW    *win;
  812. X  bool         flag;
  813. X  {
  814. X  if (win == curscr)
  815. X    _cursvar.tmpwin->_clear = flag;
  816. X  else
  817. X    win->_clear = flag;
  818. X  } /* clearok */
  819. X
  820. X/****************************************************************/
  821. X/* Leaveok() marks window 'win' to allow the update routines    */
  822. X/* to leave the hardware cursor where it happens to be at the    */
  823. X/* end of update. Usually used in combination with cursoff().    */
  824. X/****************************************************************/
  825. X
  826. Xvoid leaveok(win, flag)
  827. X  WINDOW    *win;
  828. X  bool         flag;
  829. X  {
  830. X  win->_leave = flag;
  831. X  } /* leaveok */
  832. X
  833. X/****************************************************************/
  834. X/* Scrollok() marks window 'win' to allow the scrolling region    */
  835. X/* of it to actually scroll.                    */
  836. X/****************************************************************/
  837. X
  838. Xvoid scrollok(win, flag)
  839. X  WINDOW    *win;
  840. X  bool         flag;
  841. X  {
  842. X  win->_scroll = flag;
  843. X  } /* scrollok */
  844. X
  845. X/****************************************************************/
  846. X/* Nodelay() marks the window to make character input non-    */
  847. X/* waiting, i.e. if there is no character to get, -1 will be    */
  848. X/* returned.                            */
  849. X/****************************************************************/
  850. X
  851. Xvoid nodelay(win, flag)
  852. X  WINDOW    *win;
  853. X  bool         flag;
  854. X  {
  855. X  win->_nodelay = flag;
  856. X  } /* nodelay */
  857. X
  858. X/****************************************************************/
  859. X/* Keypad() marks window 'win' to use the special keypad mode.    */
  860. X/****************************************************************/
  861. X
  862. Xvoid keypad(win, flag)
  863. X  WINDOW    *win;
  864. X  bool         flag;
  865. X  {
  866. X  win->_keypad = flag;
  867. X  } /* keypad */
  868. X
  869. X/****************************************************************/
  870. X/* Meta() allows use of any alternate character set allowed by    */
  871. X/* the terminal. We always allow this on the PC, so this one    */
  872. X/* does nothing.                        */
  873. X/****************************************************************/
  874. X
  875. Xvoid meta(win, flag)
  876. X  WINDOW    *win;
  877. X  bool         flag;
  878. X  {
  879. X  } /* meta */
  880. X
  881. X/****************************************************************/
  882. X/* Cursoff() turns off the hardware cursor.            */
  883. X/****************************************************************/
  884. X
  885. Xvoid cursoff()
  886. X  {
  887. X  if (!hasold)
  888. X    {
  889. X    oldmode = _cursesgcmode();        /* get old cursor type */
  890. X    hasold = TRUE;
  891. X    }
  892. X  _cursescmode(31,30);            /* turn it off */
  893. X  } /* cursoff */
  894. X
  895. X/****************************************************************/
  896. X/* Curson() turns on the hardware cursor.            */
  897. X/****************************************************************/
  898. X
  899. Xvoid curson()
  900. X  {
  901. X  if (hasold)
  902. X    {
  903. X    _cursescmode(oldmode >> 8,oldmode);
  904. X    hasold = FALSE;
  905. X    }
  906. X  } /* curson */
  907. FRIDAY_NIGHT
  908. echo extracting - overlay.c
  909. sed 's/^X//' > overlay.c << 'FRIDAY_NIGHT'
  910. X/****************************************************************/
  911. X/* Overlay() and overwrite() functions of the PCcurses package    */
  912. X/*                                */
  913. X/****************************************************************/
  914. X/* This version of curses is based on ncurses, a curses version    */
  915. X/* originally written by Pavel Curtis at Cornell University.    */
  916. X/* I have made substantial changes to make it run on IBM PC's,    */
  917. X/* and therefore consider myself free to make it public domain.    */
  918. X/*        Bjorn Larsson (...mcvax!enea!infovax!bl)    */
  919. X/****************************************************************/
  920. X/* 1.0:    Release:                    870515    */
  921. X/****************************************************************/
  922. X
  923. X#include <curses.h>
  924. X#include <curspriv.h>
  925. X
  926. X/****************************************************************/
  927. X/* Overlay() overwrites 'win1' upon 'win2', with origins alig-    */
  928. X/* ned. Overlay is transparent; blanks from 'win1' are not    */
  929. X/* copied to 'win2'.                        */
  930. X/****************************************************************/
  931. X
  932. Xvoid overlay(win1, win2)
  933. X  WINDOW    *win1, *win2;
  934. X  {
  935. X  int        *minchng;
  936. X  int        *maxchng;
  937. X  int        *w1ptr;
  938. X  int        *w2ptr;
  939. X  int         attrs;
  940. X  int         col;
  941. X  int         line;
  942. X  int         last_line;
  943. X  int         last_col;
  944. X
  945. X  last_col = min(win1->_maxx, win2->_maxx);
  946. X  last_line = min(win1->_maxy, win2->_maxy);
  947. X  attrs = win2->_attrs & ATR_MSK;
  948. X  minchng = win2->_minchng;
  949. X  maxchng = win2->_maxchng;
  950. X
  951. X  for(line = 0;  line <= last_line;  line++)
  952. X    {
  953. X    register short   fc, lc;
  954. X    w1ptr = win1->_line[line];
  955. X    w2ptr = win2->_line[line];
  956. X    fc = _NO_CHANGE;
  957. X    for(col = 0;  col <= last_col;  col++)
  958. X      {
  959. X      if ((*w1ptr & CHR_MSK) != ' ')
  960. X    {
  961. X    *w2ptr = (*w1ptr & CHR_MSK) | attrs;
  962. X    if (fc == _NO_CHANGE)
  963. X      fc = col;
  964. X    lc = col;
  965. X    } /* if */
  966. X      w1ptr++;
  967. X      w2ptr++;
  968. X      } /* for */
  969. X
  970. X    if (*minchng == _NO_CHANGE)
  971. X      {
  972. X      *minchng = fc;
  973. X      *maxchng = lc;
  974. X      } /* if */
  975. X    else
  976. X      if (fc != _NO_CHANGE)
  977. X    {
  978. X    if (fc < *minchng)
  979. X      *minchng = fc;
  980. X    if (lc > *maxchng)
  981. X      *maxchng = lc;
  982. X    } /* else if */
  983. X    minchng++;
  984. X    maxchng++;
  985. X    } /* for */
  986. X  } /* overlay */
  987. X
  988. X/****************************************************************/
  989. X/* Overwrite() overwrites 'win1' upon 'win2', with origins    */
  990. X/* aligned. Overwrite is non-transparent; blanks from 'win1'    */
  991. X/* are copied to 'win2'.                    */
  992. X/****************************************************************/
  993. X
  994. Xvoid    overwrite(win1, win2)
  995. X  WINDOW    *win1, *win2;
  996. X  {
  997. X  int        *minchng;
  998. X  int        *maxchng;
  999. X  int        *w1ptr;
  1000. X  int        *w2ptr;
  1001. X  int         attrs;
  1002. X  int         col;
  1003. X  int         line;
  1004. X  int         last_line;
  1005. X  int         last_col;
  1006. X
  1007. X  last_col = min(win1->_maxx, win2->_maxx);
  1008. X  last_line = min(win1->_maxy, win2->_maxy);
  1009. X  attrs = win2->_attrs & ATR_MSK;
  1010. X  minchng = win2->_minchng;
  1011. X  maxchng = win2->_maxchng;
  1012. X
  1013. X  for(line = 0;  line <= last_line;  line++)
  1014. X    {
  1015. X    register short   fc, lc;
  1016. X
  1017. X    w1ptr = win1->_line[line];
  1018. X    w2ptr = win2->_line[line];
  1019. X    fc = _NO_CHANGE;
  1020. X
  1021. X    for(col = 0;  col <= last_col;  col++)
  1022. X      {
  1023. X      if ((*w1ptr & CHR_MSK) != (*w2ptr & CHR_MSK))
  1024. X    {
  1025. X    *w2ptr = (*w1ptr & CHR_MSK) | attrs;
  1026. X
  1027. X    if (fc == _NO_CHANGE)
  1028. X      fc = col;
  1029. X    lc = col;
  1030. X    } /* if */
  1031. X
  1032. X      w1ptr++;
  1033. X      w2ptr++;
  1034. X      } /* for */
  1035. X
  1036. X    if (*minchng == _NO_CHANGE)
  1037. X      {
  1038. X      *minchng = fc;
  1039. X      *maxchng = lc;
  1040. X      } /* if */
  1041. X    else
  1042. X      if (fc != _NO_CHANGE)
  1043. X    {
  1044. X    if (fc < *minchng)
  1045. X      *minchng = fc;
  1046. X    if (lc > *maxchng)
  1047. X      *maxchng = lc;
  1048. X    } /* else if */
  1049. X    minchng++;
  1050. X    maxchng++;
  1051. X    } /* for */
  1052. X  } /* overwrite */
  1053. FRIDAY_NIGHT
  1054. echo extracting - prntscan.c
  1055. sed 's/^X//' > prntscan.c << 'FRIDAY_NIGHT'
  1056. X/****************************************************************/
  1057. X/* Printw() and scanw() routines of the PCcurses package    */
  1058. X/*                                */
  1059. X/****************************************************************/
  1060. X/* This version of curses is based on ncurses, a curses version    */
  1061. X/* originally written by Pavel Curtis at Cornell University.    */
  1062. X/* I have made substantial changes to make it run on IBM PC's,    */
  1063. X/* and therefore consider myself free to make it public domain.    */
  1064. X/*        Bjorn Larsson (...mcvax!enea!infovax!bl)    */
  1065. X/****************************************************************/
  1066. X/* 1.0:    Release:                    870515    */
  1067. X/****************************************************************/
  1068. X
  1069. X#include <curses.h>
  1070. X#include <curspriv.h>
  1071. X
  1072. Xstatic    int    pblen();        /* gets length of bufer */
  1073. X
  1074. X/****************************************************************/
  1075. X/*             IMPLEMENTATION NOTE            */
  1076. X/* These routines make a local copy of their parameter stack,    */
  1077. X/* assuming at most 5 'double' arguments were passed (== 40    */
  1078. X/* bytes == 20 int's == 10 long's == 10-20 pointers {depending    */
  1079. X/* on memorymodel}, etc). This means the invokation of the    */
  1080. X/* routines themself require at least 80 bytes of stack just    */
  1081. X/* for the parameters, and the sprintf() and sscanf() functions    */
  1082. X/* will require more. Therefore, this module should be compiled    */
  1083. X/* with stack checking on to avoid stack overflow errors.    */
  1084. X/****************************************************************/
  1085. X
  1086. Xstatic    char    printscanbuf[513];    /* buffer used during I/O */
  1087. X
  1088. X/****************************************************************/
  1089. X/* Wprintw(win,fmt,args) does a printf() in window 'win'.    */
  1090. X/****************************************************************/
  1091. X
  1092. Xint    wprintw(win,fmt,A1,A2,A3,A4,A5)
  1093. X  WINDOW    *win;
  1094. X  char        *fmt;
  1095. X  double     A1,A2,A3,A4,A5;
  1096. X  {
  1097. X  sprintf(printscanbuf,fmt,A1,A2,A3,A4,A5);
  1098. X  if (waddstr(win,printscanbuf) == ERR)
  1099. X    return(ERR);
  1100. X  return(pblen());
  1101. X  } /* wprintw */
  1102. X
  1103. X/****************************************************************/
  1104. X/* Printw(fmt,args) does a printf() in stdscr.            */
  1105. X/****************************************************************/
  1106. X
  1107. Xint    printw(fmt,A1,A2,A3,A4,A5)
  1108. X  char        *fmt;
  1109. X  double     A1,A2,A3,A4,A5;
  1110. X  {
  1111. X  sprintf(printscanbuf,fmt,A1,A2,A3,A4,A5);
  1112. X  if(waddstr(stdscr,printscanbuf) == ERR)
  1113. X    return(ERR);
  1114. X  return(pblen());
  1115. X  } /* printw */
  1116. X
  1117. X/****************************************************************/
  1118. X/* Mvprintw(fmt,args) moves the stdscr cursor to a new posi-    */
  1119. X/* tion, then does a printf() in stdscr.            */
  1120. X/****************************************************************/
  1121. X
  1122. Xint    mvprintw(y,x,fmt,A1,A2,A3,A4,A5)
  1123. X  int         y;
  1124. X  int         x;
  1125. X  char        *fmt;
  1126. X  double     A1,A2,A3,A4,A5;
  1127. X  {
  1128. X  if (wmove(stdscr,y,x) == ERR)
  1129. X    return(ERR);
  1130. X  sprintf(printscanbuf,fmt,A1,A2,A3,A4,A5);
  1131. X  if(waddstr(stdscr,printscanbuf) == ERR)
  1132. X    return(ERR);
  1133. X  return(pblen());
  1134. X  } /* mvprintw */
  1135. X
  1136. X/****************************************************************/
  1137. X/* Mvwprintw(win,fmt,args) moves the window 'win's cursor to    */
  1138. X/* a new position, then does a printf() in window 'win'.    */
  1139. X/****************************************************************/
  1140. X
  1141. Xint    mvwprintw(win,y,x,fmt,A1,A2,A3,A4,A5)
  1142. X  WINDOW    *win;
  1143. X  int         y;
  1144. X  int         x;
  1145. X  char        *fmt;
  1146. X  double     A1,A2,A3,A4,A5;
  1147. X  {
  1148. X  if (wmove(win,y,x) == ERR)
  1149. X    return(ERR);
  1150. X  sprintf(printscanbuf,fmt,A1,A2,A3,A4,A5);
  1151. X  if(waddstr(win,printscanbuf) == ERR)
  1152. X    return(ERR);
  1153. X  return(pblen());
  1154. X  } /* mvwprintw */
  1155. X
  1156. X/****************************************************************/
  1157. X/* Wscanw(win,fmt,args) gets a string via window 'win', then    */
  1158. X/* scans the string using format 'fmt' to extract the values    */
  1159. X/* and put them in the variables pointed to the arguments.    */
  1160. X/****************************************************************/
  1161. X
  1162. Xint wscanw(win,fmt,A1,A2,A3,A4,A5)
  1163. X  WINDOW    *win;
  1164. X  char        *fmt;
  1165. X  double     A1,A2,A3,A4,A5;        /* really pointers */
  1166. X  {
  1167. X  wrefresh(win);                /* set cursor */
  1168. X  if (wgetstr(win,printscanbuf) == ERR)        /* get string */
  1169. X    return(ERR);
  1170. X  return(sscanf(printscanbuf,fmt,A1,A2,A3,A4,A5));
  1171. X  } /* wscanw */
  1172. X
  1173. X/****************************************************************/
  1174. X/* Scanw(fmt,args) gets a string via stdscr, then scans the    */
  1175. X/* string using format 'fmt' to extract the values and put them    */
  1176. X/* in the variables pointed to the arguments.            */
  1177. X/****************************************************************/
  1178. X
  1179. Xint scanw(fmt,A1,A2,A3,A4,A5)
  1180. X  char        *fmt;
  1181. X  double     A1,A2,A3,A4,A5;        /* really pointers */
  1182. X  {
  1183. X  wrefresh(stdscr);                /* set cursor */
  1184. X  if (wgetstr(stdscr,printscanbuf) == ERR)    /* get string */
  1185. X    return(ERR);
  1186. X  return(sscanf(printscanbuf,fmt,A1,A2,A3,A4,A5));
  1187. X  } /* scanw */
  1188. X
  1189. X/****************************************************************/
  1190. X/* Mvscanw(y,x,fmt,args) moves stdscr's cursor to a new posi-    */
  1191. X/* tion, then gets a string via stdscr and scans the string    */
  1192. X/* using format 'fmt' to extract the values and put them in the    */
  1193. X/* variables pointed to the arguments.                */
  1194. X/****************************************************************/
  1195. X
  1196. Xint mvscanw(y,x,fmt,A1,A2,A3,A4,A5)
  1197. X  int         y;
  1198. X  int         x;
  1199. X  char        *fmt;
  1200. X  double     A1,A2,A3,A4,A5;        /* really pointers */
  1201. X  {
  1202. X  if (wmove(stdscr,y,x) == ERR)
  1203. X    return(ERR);
  1204. X  wrefresh(stdscr);                /* set cursor */
  1205. X  if (wgetstr(stdscr,printscanbuf) == ERR)    /* get string */
  1206. X    return(ERR);
  1207. X  return(sscanf(printscanbuf,fmt,A1,A2,A3,A4,A5));
  1208. X  } /* mvscanw */
  1209. X
  1210. X/****************************************************************/
  1211. X/* Mvwscanw(win,y,x,fmt,args) moves window 'win's cursor to a    */
  1212. X/* new position, then gets a string via 'win' and scans the    */
  1213. X/* string using format 'fmt' to extract the values and put them    */
  1214. X/* in the variables pointed to the arguments.            */
  1215. X/****************************************************************/
  1216. X
  1217. Xint mvwscanw(win,y,x,fmt,A1,A2,A3,A4,A5)
  1218. X  WINDOW    *win;
  1219. X  int         y;
  1220. X  int         x;
  1221. X  char        *fmt;
  1222. X  double     A1,A2,A3,A4,A5;        /* really pointers */
  1223. X  {
  1224. X  if (wmove(win,y,x) == ERR)
  1225. X    return(ERR);
  1226. X  wrefresh(win);                /* set cursor */
  1227. X  if (wgetstr(win,printscanbuf) == ERR)        /* get string */
  1228. X    return(ERR);
  1229. X  return(sscanf(printscanbuf,fmt,A1,A2,A3,A4,A5));
  1230. X  } /* mvwscanw */
  1231. X
  1232. X/****************************************************************/
  1233. X/* Pblen() returns the length of the string in printscanbuf.    */
  1234. X/****************************************************************/
  1235. X
  1236. Xstatic    int pblen()
  1237. X  {
  1238. X  char *p = printscanbuf;
  1239. X  
  1240. X  while(*p++);
  1241. X  return(p-printscanbuf-1);
  1242. X  } /* plben */
  1243. FRIDAY_NIGHT
  1244. echo pccurses.sh.3 completed!
  1245.  
  1246.  
  1247.