home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / csbruce / ace-r8.uua < prev    next >
Encoding:
Text File  |  1993-12-25  |  88.8 KB  |  1,675 lines

  1. ace-128/64  rELEASE 8  [aUGUST 8, 1993].
  2. ------------------------------------------------------------------------------
  3. 1. introduction
  4.  
  5. ace IS A PROGRAM FOR THE cOMMODORE 128 AND cOMMODORE 64 THAT PROVIDES A
  6. COMMAND SHELL ENVIRONMENT THAT IS SIMILAR TO uNIX'S.  iT IS STILL IN THE
  7. DEVELOPMENT STAGE, BUT ENOUGH OF IT IS COMPLETE TO BE USEFUL.  btw, "ace"
  8. MEANS "aDVANCED cOMPUTING eNVIRONMENT" (WELL, ADVANCED FOR THE 128/64).
  9.  
  10. tHIS RELEASE CONTAINS ONLY MINOR IMPROVEMENTS OVER THE PREVIOUS RELEASE,
  11. INCLUDING A CUSTOM CHARACTER SET THAT INCLUDES THE STANDARD aSCII CHARACTERS
  12. THAT ARE NOT PRESENT IN THE pETSCII SET, AND FIXES TO SEVERAL BUGS.  tHE
  13. PREVIOUS RELEASE HAD BUGS IN SOME INOPPORTUNE PLACES.  tHE CUSTOM CHARACTER
  14. SET ALSO REPLACES THOSE UGLY c-64 LOWERCASE CHARACTERS.
  15.  
  16. tHIS DISTRIBUTION CONSISTS OF A BOATLOAD OF FILES.  sYSTEM FILES:
  17.  
  18. ACE         - THE KERNEL BOOTSTRAPPER; CAN BE RUN FROM EITHER 64 OR 128 MODE
  19. ACE128      - THE KERNEL FOR THE 128
  20. ACE64       - THE KERNEL FOR THE 64
  21. CONFIG      - THE CONFIGURATION INITIALIZER
  22. SH          - THE COMMAND SHELL
  23. CONFIG.SYS  - THE SYSTEM CONFIGURATION - THIS IS DATA NOT AN EXECUTABLE
  24. CONFIG.EDIT - CONFIGURATION EDITOR PROGRAM (WRITTEN IN basic)
  25. ACE-CHARSET - CHARACTER SET - YOU CAN REPLACE IT WITH YOUR OWN iyw
  26.  
  27. aPPLICATION PROGRAMS:
  28.  
  29. CP          - FILE COPIER
  30. RM          - FILE REMOVER (SCRATCHER)
  31. UUENCODE    - UUENCODER PROGRAM
  32. UUDECODE    - UUDECODER PROGRAM
  33. CRC32       - CRC-32 GENERATOR PROGRAM
  34. WC          - WORD COUNTER PROGRAM
  35. GREP        - GREPPER PROGRAM (SUBSTRING SEARCHER)
  36. DATE        - DISPLAY CURRENT DATE AND TIME
  37. FAST        - GO INTO 2 mhZ MODE ON THE 128
  38. SLOW        - GO INTO 1 mhZ MODE ON THE 128
  39. READ        - READ A FILE
  40. SORT        - FILE SORTER
  41. MEM         - DISPLAY AVAILABLE DYNAMIC AND TRANSIENT PROGRAM AREA MEMORY
  42. TR          - TRANSLATE FROM ONE CHARACTER SET TO ANOTHER
  43. AS          - demo ASSEMBLER: ONLY TOKENIZER IMPLEMENTED
  44. VI          - stub "zED" TEXT EDITOR: ONLY PRINTS A "HELLO WORLD" MESSAGE
  45.  
  46. tHIS FILE CONTAINS THESE BINARY PROGRAMS IN A UUENCODED ARCHIVE FORMAT.  tHE
  47. UUDECODE PROGRAM INCLUDED HERE WILL DECODE THIS FORMAT OF ARCHIVE, BUT THAT IS
  48. PROBABLY OF NO USE TO YOU UNLESS YOU ARE ABLE TO cATCH 22.  yOU WILL HAVE TO
  49. USE THE UUDECODER ON YOUR uNIX SYSTEM OR USE "UUXFER" FOR THE c64.  yOU MAY
  50. HAVE TO SPLIT THE UUARCHIVE UP INTO SEPARATE FILES FOR UUDECODING.
  51.  
  52. nOTE THAT THE "ACE128" AND "ACE64" PROGRAMS ARE FUNCTIONALLY IDENTICAL, EXCEPT
  53. THAT ONE IS SET UP FOR THE 128 AND THE OTHER FOR THE 64.  tHUS, ALL OF THE
  54. APPICATION BINARY PROGRAMS WILL WORK WITH EITHER "ACE128" OR "ACE64".  load
  55. AND run THE "ACE" PROGRAM AND IT WILL LOAD THE CORRECT KERNEL FOR YOUR
  56. COMPUTER.  yOU CAN NO LONGER RUN THE KERNEL PROGRAMS DIRECTLY.
  57.  
  58. tHE bUDDY ASSEMBLER SOURCE CODE FILES ARE NOT INCLUDED HERE, BUT i WILL eMAIL
  59. THEM TO ANYONE WHO ASKS FOR THEM.  tHEY ARE GETTING A BIT BULKY, ABOUT 200k.
  60. iT HAS CHANGED A LITTLE SINCE THE LAST RELEASE, INCLUDING REARRANGING THE
  61. MEMORY USAGE.  tHE CURRENT ram0 MEMORY UTILIZATION IS AS FOLLOWS:
  62.  
  63. $0000-$0EFF = SYSTEM STORAGE (3.75k)
  64. $0F00-$0FFF = KERNEL INTERFACE VARIABLES (0.25k)
  65. $1000-$12FF = SYSTEM STORAGE (0.75k)
  66. $1300-$1FFF = sHELL PROGRAM (3.25k)
  67. $2000-$27FF = CHARACTER SET (2k)
  68. $2800-$5FFF = ace KERNEL AND DEVICE DRIVERS (14k) - UNUSED SPACE FREE
  69. $6000-$BFFF = APPLICATION AREA & STACK (24k)
  70. $C000-$FFFF = rom AND i/o, ram (16k) - FREE
  71. ------------------------------------------------------------------------------
  72. 2. using the system
  73.  
  74. wHEN ace STARTS, IT LOADS AND EXECUTES THE COMMAND SHELL (AMONG OTHER THINGS),
  75. GIVES YOU A PROMPT AND WAITS FOR YOU TO GIVE IT A COMMAND.  a COMMAND HAS THE
  76. FOLLOWING FORMAT:
  77.  
  78. PROGRAMNAME ARG1 ARG2 ... ARGn
  79.  
  80. tHE PROGRAMNAME CAN BE ANY OF THE FOLLOWING BUILT-IN COMMANDS:
  81.  
  82. ECHO       - PRINT THE GIVEN ARGUMENTS TO STDOUT
  83. CLEAR      - CLEAR THE SCREEN
  84. CLS        - SAME AS "CLEAR"
  85. DIRECTORY  - CLEAR THE SCREEN AND GIVE A LONG-FORM DIRECTORY LISTING
  86. DIR        - SAME AS "DIRECTORY"
  87. D          - SAME AS "DIRECTORY", BUT NO CLEAR SCREEN
  88. LS         - GIVE A MULTI-COLUMN SHORT-FORM DIRECTORY LISTING
  89. CLSL       - COMBINATION OF "CLS" AND "LS"
  90. CD         - CHANGE THE CURRENT DIRECTORY
  91. G          - SAME AS "CD"
  92. CAT        - DISPLAY THE NAMED FILES TO STDOUT
  93. TYPE       - SAME AS "CAT"
  94. T          - SAME AS "CAT"
  95. EXIT       - EXIT FROM THE COMMAND SHELL BACK TO basic
  96. X          - SAME AS "EXIT"
  97. DOS        - GIVE A cOMMODORE DOS COMMAND TO THE CURRENT DEVICE (open1,DV,15..)
  98. @          - SAME AS "DOS"
  99. PATH       - SET THE PATH TO SEARCH FOR SEARCHING FOR EXTERNAL PROGRAMS
  100. SH         - INVOKE THE SHELL AGAIN AS A SUB-SHELL
  101.  
  102. OR PROGRAMNAME CAN BE FOR ANY OF THE EXTERNAL PROGRAMS PROVIDED WITH THIS
  103. DISTRIBUTION.  yOU'LL HAVE TO FORGIVE MY PERSONAL TASTE IN COMMAND NAMES AND
  104. ABBREVIATIONS (UNTIL THE "ALIAS" SHELL FEATURE IS IMPLEMENTED).
  105. ------------------------------------------------------------------------------
  106. tHE THREE uNIX STANDARD FILES ARE SUPPORTED:
  107.  
  108. STDIN    - WHERE THE DEFAULT INPUT COMES FROM (USUALLY THE KEYBOARD)
  109. STDOUT   - WHERE THE DEFAULT OUTPUT GOES TO (USUALLY THE SCREEN)
  110. STDERR   - WHERE ERROR MESSAGES ARE SENT TO (USUALLY THE SCREEN)
  111.  
  112. tO TEMPORARALLY REDIRECT THESE STANDARD FILE STREAMS FOR THE EXECUTION OF A
  113. COMMAND, YOU CAN USE THE FOLLOWING INCANTATIONS ON A COMMAND LINE:
  114.  
  115. <INFILE     - REDIRECT STDIN - INPUT TAKEN FROM "INFILE"
  116. >OUTFILE    - REDIRECT STDOUT - OUTPUT PUT INTO FILE "OUTFILE"
  117. >>OUTFILE   - REDIRECT STDOUT - SAME AS ">" BUT THE OUTPUT IS APPENDED TO FILE
  118. >&ERRFILE   - REDIRECT STDERR - ERROR OUTPUT IS PUT INTO "ERRFILE"
  119. >>&ERRFILE  - REDIRECT STDERR - ERROR OUTPUT IS APPENDED TO FILE "ERRFILE"
  120.  
  121. dO NOT PUT A SPACE BETWEEN THE REDIRECTION SYMBOL(S) AND THE FILE NAME.
  122. ------------------------------------------------------------------------------
  123. wHENEVER YOU SPECIFY A FILE, YOU USE A "PATHNAME".  pATHNAMES HAVE THE
  124. FOLLOWING OPTIONAL PARTS:
  125.  
  126. [DEVICE:][RAMLINK-DIRECTORY:][FILENAME]
  127.  
  128. dEVICE NAMES ARE AS FOLLOWS:
  129.  
  130. "0:"  - cOMMODORE DEVICE #0 - THE KEYBOARD - INPUT ONLY
  131. "1:"  - cOMMODORE DEVICE #1 - THE CASSETTE DRIVE - NEVER TRIED IT MYSELF
  132. "2:"  - cOMMODORE DEVICE #2 - THE MODEM - BUT don't TRY THIS
  133. "3:"  - cOMMODORE DEVICE #3 - THE SCREEN - OUTPUT ONLY
  134. "4:"  - cOMMODORE DEVICE #4 - THE PRINTER - OUTPUT ONLY
  135. "A:"  - cOMMODORE DEVICE #8 - A DISK DRIVE - INPUT/OUTPUT
  136. "B:"  - cOMMODORE DEVICE #9 - A DISK DRIVE - IF YOU HAVE >1 DRIVE
  137. ...
  138. "W:"  - cOMMODORE DEVICE #30 - THE HIGHEST SERIAL DEVICE, ASSUMED TO BE DISK
  139. ".:"  - THE "CURRENT" DISK DEVICE
  140.  
  141. cmd rAMlINK (OR cmd hARDdRIVE) DIRECTORY NAMES HAVE THE FOLLOWING FORMATS:
  142.  
  143. "//DIR/:"                - A SUBDIRECTORY OF THE ROOT DIRECTORY
  144. "/DIR/:"                 - A SUBDIRECTORY OF THE CURRENT DIRECTORY
  145. "4//DIR/DIR/ ... /DIR/:" - A SUB-PATH OF THE ROOT DIRECTORY OF PARTITION #4
  146. "/DIR/DIR/ ... /DIR/:"   - A SUB-PATH OF THE CURRENT DIRECTORY
  147.  
  148. aND FILENAMES HAVE THE USUAL cOMMODORE FORMAT OF 1 TO 16 CHARACTERS.
  149.  
  150. tHUS, THE FOLLOWING ARE VALID PATHNAMES FOR FILES:
  151.  
  152. 0:                    - THE KEYBOARD FOR INPUT
  153. 4:                    - THE PRINTER FOR OUTPUT
  154. B:FILE1               - "FILE1" ON DISK DEVICE #9
  155. .:FILE1               - "FILE1" ON THE CURRENT DISK DEVICE
  156. FILE1                 - "FILE1" ON THE CURRENT DISK DEVICE
  157. /DIR1/FILE1           - "FILE1" IN THE rAMlINK SUBDIRECTORY "DIR1"
  158. A://DIR1/DIR2/:FILE1  - "FILE1" IN THE rAMlINK SUBDIR "//DIR1/DIR2", DEVICE #8
  159.  
  160. aND THE FOLLOWING ARE VALID PATHNAMES FOR DIRECTORIES:
  161.  
  162. A:               - DISK DEVICE #8 CURRENT DIRECTORY
  163. .:               - CURRENT DISK DEVICE'S CURRENT DIRECTORY      
  164. .://DIR1/:       - "DIR1" OFF THE ROOT DIRECTORY OF THE CURRENT rAMlINK DEVICE
  165. /DIR1/DIR2/:     - SUBDIRECTORY "/DIR1/DIR2" OF THE CURRENT rAMlINK DEVICE
  166.  
  167. nOTE THAT A DIRECTORY NAME ALWAYS ENDS WITH A ":".
  168.  
  169. tO GENERATE AN eof FOR KEYBOARD INPUT, ENTER A QUOTATION CHARACTER FOLLOWED BY
  170. A cONTROL-d AND return ON A BLANK LINE.
  171.  
  172. yOU MAY APPEND A ",P" OR ",S" OR ",U" TO A FILENAME TO SPECIFY WHETHER A prg,
  173. seq, OR usr FILE SHOULD BE ACCESSED/CREATED.  bY DEFAULT, ace WILL CREATE seq
  174. FILES.
  175. ------------------------------------------------------------------------------
  176. aRGUMENTS THAT CONTAIN SPACES MUST BE PUT INTO QUOTES.  mULTIPLE QUOTED
  177. STRINGS CAN BE PLACED SIDE-BY-SIDE TO PRODUCE A LONGER STRING.  tHE FOLLOWING
  178. ARE EXAMPLES OF VALID COMMAND SHELL ARGUMENTS:
  179.  
  180. HELLO                                  -  HELLO
  181. 'HELLO'                                -  HELLO
  182. "HELLO THERE"                          -  HELLO THERE
  183. 'HELLO THERE'                          -  HELLO THERE
  184. 'SHE SAID, "HOW'"'S THAT"'"'' TO ME.'  -  SHE SAID, "HOW'S THAT" TO ME.
  185.  
  186. cOMMAND SHELL ARGUMENTS ARE SEPARATED BY SPACES OR TAB CHARACTERS.
  187. ------------------------------------------------------------------------------
  188. tHE "PATH" COMMAND SETS OR DISPLAYS THE CURRENT SEARCH PATHNAMES FOR EXTERNAL
  189. PROGRAMS.  bY DEFAULT THE PATHS TO SEARCH ARE "A:" AND ".:".  "PATH" ALONE ON
  190. A COMMAND LINE DISPLAYS THE CURRENT SEARCH PATH, AND "PATH" FOLLOWED BY
  191. ARGUMENTS WILL SET THE SEARCH PATH TO THE FOLLOWING ARGUMENTS.
  192. ------------------------------------------------------------------------------
  193. uNIX-STYLE WILDCARD EXPANSION IS SUPPORTED.
  194.  
  195. wHEN YOU ENTER AN ARGUMENT WITH AN ASTERISK IN THE FILENAME COMPONENT OF THE
  196. PATHNAME, THE COMMAND SHELL WILL AUTOMATICALLY EXPAND THAT NAME INTO AN
  197. ARGUMENT FOR EACH FILE IN THE SPECIFIED DIRECTORY THAT MATCHES THAT PATTERN.
  198. tHE EXPANDED ARGUMENTS ARE THEN PASSED ONTO THE COMMAND YOU ARE INVOKING AS IF
  199. YOU HAD TYPED THEM ALL IN YOURSELF.  fOR EXAMPLE:
  200.  
  201. argument            expansion
  202. --------            ---------
  203. *                   FILE1 PROG1,P PROG2,P
  204. CH*                 CHESS,P CHINESE_CHECKERS,P
  205. *.BIN               MAIN.BIN,P DATA.BIN ANAGRAM.BIN
  206. A*N                 ANAGRAM.BIN AN ANOTHER_PLAN
  207. B:A*.BIN            B:MAIN.BIN,P B:DATA.BIN B:ANAGRAM.BIN
  208. C://GAMES/:A*.BIN   C://GAMES/:ACROBAT.BIN,P C://GAMES/:ACRODATA.BIN
  209.  
  210. yOU'LL NOTE THAT PROGRAM FILES ARE EXPANDED TO INCLUDE A ",P".  iF A PATTERN
  211. DOES NOT EXPAND TO ANYTHING, AN ERROR MESSAGE IS DISPLAYED AND THE SHELL
  212. COMMAND IS NOT EXECUTED.  yOU'LL HAVE TO CURSOR-UP AND CHANGE THE COMMAND.
  213. yOUR FILENAME PATTERN CAN INCLUDE ONLY ONE ASTERISK (ANYWHERE IN THE NAME).
  214.  
  215. sOME EXAMPLE USES OF WILDCARD EXPANSION WITH THE PROVIDED UTILITIES FOLLOW:
  216.  
  217. CP B:* A:
  218. CP //GAMES/C64/:CHESS*.BIN SOMEFILE B://GAMES/:
  219. WC *.ASM *.C
  220. ------------------------------------------------------------------------------
  221. 3. system configuration
  222.  
  223. tHE PROGRAM ENTITLED "CONFIG.EDIT" IS USED FOR EDITING THE SYSTEM
  224. CONFIGURATION.  tHE SYSTEM WILL BE CONFIGURED ACCORDING TO THE DATA IN THE
  225. FILE "CONFIG.SYS" EVERY TIME IT STARTS UP.  nOTE THAT "CONFIG.SYS" IS A
  226. LOADABLE BINARY prg FILE; IT IS NOT IN TEXT FORMAT AND IS NOT MEANT TO BE
  227. EDITED WITH A TEXT EDITOR.
  228.  
  229. tHE FOLLOWING DATA ARE INCLUDED IN THE "CONFIG.SYS" FILE:
  230.  
  231. off  siz  desc
  232. ---  ---  ----
  233. $80    1  RAMLINK DEVICE NUMBER
  234.           [tHE KERNEL DEVICE NUMBER OF YOUR ramlINK.  tHE DEFAULT rl DEVICE
  235.            NUMBER IS 16.]
  236. $81    1  RAMLINK LAST LOGICAL BANK ALLOWED TO USE PLUS ONE (NORM 255)
  237.           [fOR THE ramlINK MEMORY PARTITION (NEXT SECTION), THE MAXIMUM
  238.            NUMBER OF 64k CHUNKS THAT CAN BE USED FOR DYNAMIC MEMORY.]
  239. $82    4  REAL-TIME CLOCK DEVICES TO CHECK [4], $ff=UNUSED
  240.           [tHESE ARE THE KERNEL DEVICE NUMBERS OF cmd DISK DRIVE UNITS THAT
  241.            HAVE A BUILT-IN REAL-TIME CLOCK TO CHECK FOR THE CURRENT TIME.  iF
  242.            THE FIRST ENTRY FAILS, THEN THE SECOND WILL BE TRIED, ETC., UNTIL
  243.            THE FOURTH ENTRY IS TRIED.  iF ALL DEVICES FAIL TO RETURN A TIME,
  244.            THEN THE DEFAULT DATE IS USED (NEXT).  a VALUE OF $ff IN AN ENTRY
  245.            MEANS TO TRY THE NEXT ENTRY.  ace USES THE tod CLOCK OF cia#1 TO
  246.            KEEP TIME.  tHE DATE IS STORED IN A REGULAR MEMORY FIELD AND IS NOT
  247.            ROLLED ON A 24-HOUR tod CLOCK WRAP-AROUND.]
  248. $86    8  DEFAULT DATE yy:yy:mm:dd:hh:mm:ss:tw
  249.           [tHE DEFAULT DATE TO USE IF ATTEMPTS TO ACCESS THE CURRENT TIME FROM
  250.            cmd DISK DEVICES FAIL.  fORMAT IS 24-HOUR bcd.  aLL FOUR DIGITS OF
  251.            THE YEAR ARE GIVEN.  tHE "tw" FIELD MEANS TENTHS OF SECONDS IN THE
  252.            HIGH NYBBLE AND THE DAY-OF-WEEK IN THE LOW NYBBLE.  fOR DAYS OF THE
  253.            WEEK, 0 MEANS "UNKNOWN", 1 MEANS "sUNDAY", ETC., AND 7 MEANS
  254.            "sATURDAY".  tHE FACTORY-SET VALUE OF THIS FIELD IS 12AM, fRIDAY,
  255.            jAN 1, 1993.]
  256. $90   16  INITIAL CURRENT DIRECTORY STRING (DEFAULT "A:")
  257.           [iMMEDIATELY AFTER BOOTING AND BEFORE CALLING THE SHELL, THE KERNEL
  258.            WILL DO A CHANGE DIRECTORY TO THE NULL-TERMINATED STRING GIVEN
  259.            HERE.]
  260. $a0    1  c128 BANK1 START FREE PAGE (NORM $04)
  261.           [tHIS FIELD AND THE NEXT DEFINE THE PAGES OF ram1 THAT ace IS ALLOWED
  262.            TO USE.  tHIS MUST INCLUDE AT LEAST ONE PAGE.]
  263. $a1    1  c128 BANK1 LAST FREE PAGE PLUS ONE (NORM $FF)
  264. $a3    1  c128 BANK0 LAST ALLOWED FREE PAGE PLUS ONE (NORM $FF)
  265.           [tHIS IS THE HIGHEST PAGE, PLUS ONE, ON ram0 THAT ace IS ALLOWED TO
  266.            USE.  yOU CAN SET THIS TO PROTECT A PROGRAM THAT YOU WISH TO
  267.            ATTEMPT TO USE WITH ace (GOOD LUCK).  tHERE IS NO MINIMUM PAGE THAT
  268.            ace IS ALLOWED TO USE; IT TAKES WHATEVER IT WANTS BELOW $4000.]
  269. $a5    1  c128 LAST INTERNAL BANK ALLOWED TO USE ABOVE 2, PLUS ONE (NORM 8)
  270.           [fOR EXPANDED INTERNAL MEMORY (A LA tWINcITIES-128), THIS SETS THE
  271.            HIGH LIMIT ON THE BANKS THAT ace IS ALLOWED TO USE.  a VALUE OF 2
  272.            MEANS THAT ace IS NOT ALLOWED TO USE IT AT ALL.  tHERE IS NO LOW
  273.            LIMIT ON THIS BECAUSE IT CAUSED TOO MANY PROGRAMMING PROBLEMS.]
  274. $a6    1  c128 FIRST reu BANK ALLOWED TO USE (NORM 0)
  275.           [tHIS AND THE NEXT FIELD DEFINE THE MINIMUM AND MAXIMUM (PLUS ONE)
  276.            reu BANK NUMBERS THAT ace IS ALLOWED TO USE.  i INCLUDED A MINUMUM
  277.            BECAUSE OF PLEAS ABOUT zED HAVING A MINIMUM.  iF YOU SET BOTH MIN
  278.            AND MAX TO $00, THEN ace WILL LEAVE THE reu MEMORY ALONE.
  279.            oTHERWISE, ace WILL AUTO-DETECT HOW MUCH YOU HAVE AND WILL MAKE USE
  280.            OF AS MUCH reu MEMORY AS IT CAN (NOTE THE DEFAULT MAX IS 255).]
  281. $a7    1  c128 LAST reu BANK ALLOWED TO USE PLUS ONE (NORM 255)
  282. $a8    1  c128 TOP PAGE OF tpa (STACK) (NORM $C0)
  283.           [tHIS DEFINES THAT PAGE (PLUS ONE) OF THE TOP OF THE APPLICATION
  284.            PROGRAM AREA (tpa).  tHE BOTTOM IS $4000, SO A TOP OF $c000 GIVES
  285.            APPS 32k TO PLAY AROUND IN.  $c0 IS THE MAXIMUM VALUE THIS FIELD
  286.            CAN HAVE, SINCE THE cOMMODORE kERNAL MUST (FOR THIS RELEASE) STAY
  287.            IN CONTEXT WHENEVER ace IS IN USE.  tHE TOP OF THIS SPACE IS ALSO
  288.            USED AS THE "ARGUMENT STACK" FOR APPLICATIONS.]
  289. $a9    1  c128 80-COL SCREEN COLOR: rgbi CODE
  290.           [tHIS AND THE NEXT FOUR FIELDS GIVE THE START-UP COLORS OF THE 40
  291.            AND 80-COLUMN SCREENS.  nOTE THAT rgbi CODES ARE USED, EVEN FOR THE
  292.            vic CHIP (FOR CONSISTENCY).  tHE FACTORY DEFAULTS ARE LIGHT GREY ON
  293.            BLACK FOR 80 AND LIGHT GREEN ON DARK GREY WITH A BLACK BORDER FOR
  294.            THE 40 (PERHAPS A BIT ICKY).]
  295. $ab    1  c128 80-COL CURSOR COLOR: rgbi CODE
  296. $ac    1  c128 40-COL SCREEN COLOR: rgbi CODE
  297. $ad    1  c128 40-COL BORDER COLOR: rgbi CODE
  298. $ae    1  c128 40-COL CURSOR COLOR: rgbi CODE
  299. $c1    1  c64 LAST ALLOWED PAGE FREE PLUS ONE (NORM $FF)
  300.           [tHIS GIVES THE TOP PAGE, PLUS ONE, THAT ace IS ALLOWED TO USE ON
  301.            THE 64.  dON'T SET THIS LOWER THAN THE TOP OF THE tpa AREA.]
  302. $c2    1  c64 FIRST reu BANK ALLOWED TO USE (NORM $00)
  303.           [lIKE THE c128 SETTINGS, YOU CAN SET THE USAGE FOR THE reu MEMORY.]
  304. $c3    1  c64 LAST reu BANK ALLOWED TO USE (NORM $FF)
  305. $c5    1  c64 END EXPANDED INTERNAL MEMORY BANKS PLUS ONE (NORM $04)
  306.           [tHIS FIELD IS CURRENTLY IGNORED.]
  307. $c6    1  c64 TOP PAGE OF tpa (STACK) (NORM $C0)
  308.           [tOP OF THE tpa FOR THE 64.  yOU CAN SET THIS BETWEEN $40 AND $d0.]
  309. $c7    1  c64 SCREEN COLOR: rgbi CODE
  310. $c8    1  c64 BORDER COLOR: rgbi CODE
  311. $c9    1  c64 CURSOR COLOR: rgbi CODE
  312. $e0   32  INITIAL SHELL PATH STRING (DEFAULT "A:", ".:")
  313.           [tHE PATHS TO USE TO SEARCH FOR EXECUTABLE PROGRAMS.  eACH DIRECTORY
  314.            NAME IS A NULL-TERMINATED STRING, AND THE LIST OF PATHS IS
  315.            TERMINATED BY AN EMPTY STRING.]
  316.  
  317. tHE OFFSETS FROM $00 TO $7f CONTAIN 32 FOUR-BYTE FIELDS, WHICH WILL BE USED IN
  318. THE FUTURE TO DEFINE THE DEVICES IN THE SYSTEM.  tHESE FIELDS WILL CORRESPOND
  319. TO DEVICE NAMES "@:", "a:", "b:", ..., "z:", "[:", "\:", "]:", "^:", AND "_:"
  320. (FORGIVE THE NON-LETTER DEVICE NAMES).  tHE FOUR FIELDS WILL BE DEFINED AS
  321. FOLLOWS:
  322.  
  323. 0 DEVICE DRIVER TYPE (0=kERNAL NON-DISK, 1=kERNAL DISK, 2=CONSOLE, 3=NULL,
  324.         4=RAMDISK)
  325. 1 DEVICE PRIMARY ADDRESS / WHATEVER
  326. 2 DEVICE SECONDARY ADDRESS / WHATEVER
  327. 3 FLAGS / WHATEVER ($80 FOR A DISK WILL MEAN THAT IT HAS A cmd rEAL-tIME CLOCK)
  328.  
  329. tHIS DEVICE DATA IS NOT USED YET, SO YOU'LL HAVE TO PUT UP WITH THE OLD "a:"
  330. IS DEVICE 8, "b:" IS DEVICE 9, ETC. FOR THE TIME BEING.
  331.  
  332. tO SPARE YOU THE AGONY OF EDITING THIS BINARY CONFIGURATION MANUALLY, THE
  333. basic PROGRAM "CONFIG.EDIT" CAN BE USED INSTEAD.  rUN IT FROM basic, NOT FROM
  334. INSIDE OF ace.  iN FACT, YOU SHOULD RUN THIS BEFORE RUNNING ace THE FIRST TIME
  335. TO SET UP THE CONFIGURATION.
  336.  
  337. tHE PROGRAM PROVIDES A FULL-SCREEN INTERFACE.  mOVE THE CURSOR AMONG THE
  338. FIELDS ON EACH PAGE AND AMONG THE PAGES (10 OF THEM) TO SET THE VALUES.  aLL
  339. VALUES ARE IN DECIMAL (EXCEPT THE STRINGS).  tHEN SAVE THE NEW CONFIGURATION,
  340. EXIT, AND RUN ace.  iF YOU SCREW UP THE NEW "CONFIG.SYS", THE PREVIOUS ONE
  341. WILL BE AVAILABLE IN "CONFIG.SYS.BAK".
  342. ------------------------------------------------------------------------------
  343. 4. dynamic memory
  344.  
  345. aFTER YOU HAVE CONFIGURED ace FOR YOUR SYSTEM, IF YOU HAVE A ramlINK, YOU WILL
  346. HAVE TO CONFIGURE IT FOR ace, IF YOU WANT TO USE ramlINK ram OR INDIRECT reu
  347. ACCESS.  tHE WAY THAT ace DETECTS THESE TYPES OF MEMORY IS VIA THE rl-dos
  348. PARTITION TABLE.  fOR ramlINK ram, ace WILL CHECK FOR PARTITION NUMBER 31
  349. BEING A fOREIGN mODE (dIRECT aCCESS) PARTITION WITH THE NAME "RL-RAM".  iF IT
  350. IS, THEN ace WILL GET THE INFORMATION FOR THAT PARTITION TO DETERMINE THE SIZE
  351. AND START ADDRESS (IN rl MEMORY).  iT WILL THEN CHECK THE LIMIT FOR USAGE OF
  352. rl-ram IN THE "CONFIG.SYS" FILE, AND ADJUST THE SIZE IT CAN USE ACCORDINGLY,
  353. BEFORE INITIALIZING THE MEMORY.  tO SET UP THIS PARTITION ON YOUR ramlINK IN
  354. THE FIRST PLACE, REFER TO YOUR ramlINK DOCUMENTATION AND USE THE TOOLS PROGRAM
  355. PROVIDED WITH IT.
  356.  
  357. uSING reu (rAM eXPANSION uNIT) MEMORY WITH ace IS PRETTY EASY; YOU JUST MAKE
  358. SURE IT IS PLUGGED INTO THE COMPUTER WHEN ace IS STARTED.  ace WILL AUTO-
  359. DETECT THE SIZE OF THE reu AND THEN CHECK THE CONFIGURATION FOR LIMITIATIONS
  360. ON reu USAGE.
  361.  
  362. iF YOU HAVE YOUR reu PLUGGED INTO YOUR ramlINK IN THE MEMORY PORT (RATHER THAN
  363. THE PASS-THROUGH PORT), AND YOU HAVE THE nORMAL/dIRECT SWITCH THROWN TO THE
  364. nORMAL POSITION, THEN YOUR MACHINE CANNOT ACCESS reu MEMORY IN THE USUAL WAY.
  365. tHE ONLY WAY TO ACCESS IT IS TO GO THROUGH THE ramlINK.  ace WILL LOOK FOR
  366. PARTITION NUMBER 30 BEING dIRECT aCCESS AND NAMED "INDIRECT-REU" FOR THIS
  367. PURPOSE.  iF YOUR nORMAL/dIRECT SWITCH IS IN THE dIRECT POSITION, THEN ace
  368. WILL USE THE reu DIRECTLY AND WILL IGNORE THE "INDIRECT-REU" PARTITION.  dO
  369. NOT CHANGE THE POSITION OF THE nORMAL/dIRECT SWITCH WHILE ace IS IN ACTION.
  370.  
  371. tHE TRICKY PART HERE IS IN CONFIGURING YOUR ramlINK.  yOU HAVE TO MAKE SURE
  372. THAT THE MEMORY ALLOCATED TO THE "INDIRECT-REU" PARTITON IS THE MEMORY OF THE
  373. reu.  ramlINK MEMORY STARTS FROM $000000 AND GOES UP TO $ffffff.  reu MEMORY
  374. WILL BE AT THE VERY FRONT OF THIS MEMORY (FROM ADDRESS $000000), AND THE
  375. INTERNAL ramlINK MEMORY WILL FOLLOW IMMEDIATELY AFTER THIS.  fOR EXAMPLE, i
  376. HAVE A 512k reu AND AN 8 mEG ramlINK, SO MY reu MEMORY COVERS AT rl ADDRESSES
  377. $000000-$07ffff, AND MY INTERNAL rl MEMORY COVERS rl ADDRESSES
  378. $080000-$87ffff.  wHEN PARTITIONING THE DEVICE, PARTITIONS ARE ASSIGNED MEMORY
  379. FROM LOWER ADDRESSES TO HIGHER ADDRESSES.  sO, STARTING WITH AN EMPTY rl (NO
  380. PARTITIONS), YOU MUST CREATE THE "INDIRECT-REU" PARTITION FIRST, FOLLOWED BY
  381. ANY rl-dos PARTITIONS AND THE "RL-RAM" PARTITION.  yOU MUST ALSO MAKE SURE
  382. THAT THE "INDIRECT-REU" PARTITION IS THE SAME SIZE AS YOUR reu.  512k IS 2048
  383. BLOCKS.  a NOTE FOR DELETING rl PARTITIONS: DELETE THE ONES THAT WERE LAST
  384. ALLOCATED FIRST.
  385.  
  386. yOU HAVE THE OPTION OF INSTALLING OR NOT INSTALLING EITHER OF THESE
  387. PARTITIONS.  iF EITHER IS MISSING, ace WILL SIMPLY WORK WITHOUT IT.  yOU'LL
  388. WANT TO BE CAREFUL ABOUT THROWING THE dIRECT SWITCH IF YOU DON'T HAVE YOUR reu
  389. "PROTECTED" WITH AN "INDIRECT-REU" PARTITION.  (WITH OTHER reu APPLICATIONS
  390. ALSO).  oNE NOTE ABOUT USING ramlINK MEMORY: ace CAN TRANSFER DATA FROM IT AT
  391. A RATE OF 16 MICROSECONDS/BYTE (63,920 BYTES/SEC), BUT THE COST OF STARTING
  392. EACH TRANSFER IS 1 MILLISECOND (WHICH IS ABSOLUTELY TERRIBLE).  cOMPARATIVELY,
  393. AN reu WILL TRANSFER AT A RATE OF 1 MICROSECOND/BYTE (1 mEG/SEC), WITH A SETUP
  394. COST OF ABOUT 60 MICROSECONDS.  sO, YOU'LL GET THE BEST PERFORMANCE OUT OF
  395. YOUR reu BY ACCESSING IT DIRECTLY, RATHER THAN INDIRECTLY THROUGH A ramlINK.
  396.  
  397. fOR INTERNAL MEMORY, THE 64 HAS ONLY ONE 64k INTERNAL BANK, WHEREAS YOUR 128
  398. CAN HAVE EITHER 2, 4, OR 8 (128k, 256k, OR 512k).  tHE INTERNAL 128 MEMORY
  399. ABOVE 128k ARE ACCESSED ACCORDING TO THE ARTICLES IN tWINcITIES-128 mAGAZINE.
  400. sINCE i DON'T HAVE EXPANDED INTERNAL MEMORY FOR MY 128, i HAVEN'T BEEN ABLE TO
  401. TEST THE EXPANDED INTERNAL MEMORY CODE.  hOPEFULLY, SOMEONE WILL LET ME KNOW
  402. IF IT DOESN'T WORK.  iF IT DOESN'T, THEN SET YOUR CONFIGURATION TO DISALLOW
  403. THE USE OF THE EXPANDED INTERNAL MEMORY.
  404.  
  405. wHEN ace STARTS, IT DETERMINES THE SIZE OF INTERNAL AND reu MEMORY BY WRITING
  406. SPECIAL VALUES IN THE SAME LOCATIONS OF EACH BANK AND LOOKING FOR READBACK
  407. FAILURES OR WRAP-AROUNDS.  hOWEVER, AFTER TESTING A BANK, THE ORIGINAL
  408. CONTENTS OF THE TEST LOCATIONS ARE RESTORED.  sO, THE TESTING PROCESS IS
  409. COMPLETELY NON-DESTRUCTIVE.
  410. ------------------------------------------------------------------------------
  411. 5. external programs
  412.  
  413. tHE FOLLOWING SUBSECTIONS GIVE THE LOW DOWN ON ALL OF THE EXECUTABLE PROGRAMS
  414. PROVIDED WITH ace, INCLUDING THE SYSTEM PROGRAMS AND EXTERNAL USER PROGRAMS.
  415. ------------------------------------------------------------------------------
  416. ACE
  417.  
  418. tHIS IS THE MAIN LOADER.  iT DETERMINES WHETHER IT IS RUNNING ON A 128 OR A 64
  419. AND THEN LOADS AND RUNS EITHER "ACE128" OR "ACE64" BELOW.
  420. ------------------------------------------------------------------------------
  421. ACE128
  422. ACE64
  423.  
  424. tHESE ARE THE KERNEL PROGRAMS.
  425. ------------------------------------------------------------------------------
  426. CONFIG
  427.  
  428. tHE SYSTEM CONFIGURATION PROGRAM.  tHIS IS NOT A USER-EXECUTABLE PROGRAM; IT
  429. IS LOADED AND EXECUTED WHILE THE SYSTEM IS BOOTSTRAPPING.  tHIS PROGRAM LOADS
  430. THE "CONFIG.SYS" AND "ACE-CHARSET" FILES, INITIALIZES THE DYNAMICALLY
  431. ALLOCATED MEMORY, AND SETS THE DATE.
  432. ------------------------------------------------------------------------------
  433. CONFIG.EDIT
  434.  
  435. tHE CONFIGURATION EDITOR WRITTEN IN basic.  load AND run IT DIRECTLY FROM
  436. basic.  fULL-SCREEN INTERFACE.  sAME PROGRAM RUNS ON EITHER A 128 OR 64.
  437. ------------------------------------------------------------------------------
  438. SH
  439.  
  440. tHE COMMAND SHELL.
  441. ------------------------------------------------------------------------------
  442. CP FILE DESTFILE
  443. CP FILE ... DIRECTORY
  444.  
  445. a FILE COPIER.  oPERATES LIKE THE uNIX FILE COPIER PROGRAM.  iF YOU GIVE TWO
  446. FILENAMES, WILL COPY THE FIRST FILE TO THE SECOND NAME.  iF A NUMBER OF FILE
  447. NAMES ARE GIVEN AND THE LAST ARGUMENT IS A DIRECTORY NAME IS GIVEN, WILL COPY
  448. ALL OF THE FILES, RETAINING THEIR NAMES, INTO THE GIVEN DIRECTORY.
  449.  
  450. iF A FILE THAT YOU WANT TO COPY TO ALREADY EXISTS, THEN YOU WILL BE PROMPTED
  451. FOR WHETHER YOU WANT TO OVERWRITE THE FILE: YES, NO, ALL, OR QUIT.  aNSWERING
  452. yES WILL OVERWRITE THE FILE, AND CONTINUE ONTO THE NEXT FILE.  aNSWERING nO
  453. WILL ABORT COPYING THE CURRENT FILE AND CONTINUE ONTO THE NEXT FILE.
  454. aNSWERING aLL WILL HAVE THE SAME ACTION AS yES, EXCEPT THAT IT WILL NEVER ASK
  455. YOUR PERMISSION AGAIN; IT WILL ALWAYS ASSUME yES.  aNSWERING qUIT WILL ABORT
  456. THE ENTIRE COPY OPERATION WITHOUT DISTURBING ANY MORE FILES.
  457.  
  458. i WOULD REALLY LIKE TO GET A "-R" (RECURSIVE) OPTION WORKING.  aLSO A "-F"
  459. (FORCE) OPTION.
  460. ------------------------------------------------------------------------------
  461. RM FILE ...
  462.  
  463. fILE REMOVER (SCRATCHER).  aLL NAMED FILES WILL BE DELETED.
  464. ------------------------------------------------------------------------------
  465. UUENCODE FILE ...
  466.  
  467. a UUENCODER.  tHE UUENCODE PROGRAM SENDS ITS OUTPUT TO STDOUT, SO YOU WILL
  468. USUALLY WANT TO REDIRECT STDOUT TO A DISK FILE.  tHIS OUTPUT WILL BE IN
  469. pETSCII CHARACTERS, TO WORK WITH THE OTHER TEXT UTILITIES.  iF YOU WISH TO
  470. HAVE THE OUTPUT IN aSCII, THEN YOU MUST RUN IT THROUGH THE "TR" PROGRAM
  471. (BELOW).
  472. ------------------------------------------------------------------------------
  473. UUDECODE FILE ...
  474.  
  475. a UUDECODER.  tHE UUDECODE PROGRAM WILL ACCEPT EITHER pETSCII OR aSCII FILES
  476. AND IS ABLE TO EXTRACT MULTIPLE FILES FROM ONE INPUT FILE.  eXTRACTED FILES
  477. ARE PUT INTO prg FILES.
  478. ------------------------------------------------------------------------------
  479. CRC32 FILE ...
  480.  
  481. crc32 GENERATOR.  tHE NUMBERS GENERATED BY THIS PROGRAM MAY NOT MATCH THE
  482. crc32 GENERATED BY OTHER PROGRAMS, SUCH AS pkzip.  hOWEVER, IT WILL ALWAYS
  483. MATCH ITSELF.
  484.  
  485. tHE PROGRAM CURRENTLY USES A BRUTE-FORCE BITWISE ALGORITHM, SO IT IS
  486. RELATIVELY SLOW.  a TABLE DRIVEN ALGORITHM WILL BE FASTER.
  487. ------------------------------------------------------------------------------
  488. WC FILE ...
  489.  
  490. wORD COUNTER.  cOUNTS THE LINES, WORDS, AND CHARACTERS IN A FILE.  tO COUNT
  491. LINES, THE PROGRAM SIMPLY COUNTS CARRIAGE RETURNS (CODE 13 DECIMAL).  a WORD
  492. IS ANY NON-WHITESPACE CHARACTER(S) BETWEEN WHITESPACE CHARACTERS.  wHITESPACE
  493. IS DEFINED AS THE CHARACTERS space, tab, AND return (CODES 32, 9, AND 13
  494. DECIMAL, RESPECTIVELY).  iF MULTIPLE FILES ARE SPECIFIED, TOTALS WILL BE
  495. REPORTED.
  496. ------------------------------------------------------------------------------
  497. GREP [-[I][V]] [^]SUBSTR[$] FILE ...
  498.  
  499. tHE "I" AND "V" FLAGS ARE OPTIONAL.  "I" MEANS TO IGNORE THE CASE OF LETTERS
  500. IN COMPARISONS AND THE "V" MEANS TO INVERT THE SEARCH - DISPLAY LINES THAT
  501. DO NOT MATCH THE PATTERN.
  502.  
  503. tHE SUBSTRING MAY BEGIN WITH "^" WHICH MEANS ONLY TO CHECK FOR THE STRING
  504. AT THE BEGINNING OF A LINE, AND MAY END WITH "$" WHICH MEANS ONLY TO CHECK
  505. FOR THE STRING AT THE END OF A LINE.  bOTH "^" AND "$" MAY BE USED AT THE
  506. SAME TIME.  tHERE IS NO ESCAPE CHARACTER, SO YOU'LL HAVE PROBLEMS TRYING TO
  507. SEACH FOR THE TWO ANCHOR CHARACTERS IN THE FILES.
  508.  
  509. oNE OR MORE FILES MAY BE SPECIFIED TO BE SEARCHED.  iF MORE THAN ONE FILE,
  510. THEN THE NAME OF THE FILE WILL PRECEED EACH LINE PRINTED THAT MATCHES.
  511. oUTPUT GOES TO STDOUT.  sOME EXAMPLES FOLLOW:
  512.  
  513. GREP HELLO HELLO_WORLD.C
  514. GREP -V '^$' FILE1 >FILE1.NOBLANK
  515. GREP -I CRaIg hACK*
  516. GREP -IV 'THE$' FILE2
  517.  
  518. tHE FIRST EXAMPLE SIMPLY SEARCHES FOR THE STRING "HELLO".  tHE SECOND EXAMPLE
  519. REMOVES ALL BLANK LINES FROM THE INPUT FILE.  tHE THIRD EXAMPLE SEARCHES THE
  520. hACK1, hACK2, hACK3, hACK4, AND hACK5 FILES (FOR EXAMPLE) FOR THE WORD "CRAIG"
  521. WHICH CAN BE IN ANY CASE (EG. "cRAIG" WOULD MATCH).  tHE FOURTH EXAMPLE
  522. DISPLAYS ALL LINES THAT DO NOT END WITH THE WORD "THE" IN ANY CASE (EG. THE
  523. SECOND LINE OF THIS PARAGRAPH WOULD BE OMITTED).
  524.  
  525. sOME LIMITATIONS OF THE PROGRAM ARE: ONLY THE FIRST 2048 CHARACTERS OF A
  526. (REALLY LONG) LINE WILL BE CONSIDERED, LINES MAY NOT CONTAIN THE CHARACTER
  527. CODE $00, AND THE LAST LINE OF THE FILE MUST END WITH A return (OR IT WILL BE
  528. IGNORED).
  529. ------------------------------------------------------------------------------
  530. DATE
  531.  
  532. dISPLAY THE CURRENT DATE.  tHE FORMAT IS: "yyyy/mm/dd-hh:mm:ss.t", IN 24-HOUR
  533. TIME FORMAT.  tHIS COMMAND WILL BE EXTENDED TO DISPLAY IN "HUMAN MODE"
  534. (EG. "tUE-13-jUL-1993  05:49:53 PM") AND TO ALLOW YOU TO SET THE DATE.
  535. cURRENTLY, THE DATE WILL ONLY BE SET WHEN THE SYSTEM STARTS UP.
  536. ------------------------------------------------------------------------------
  537. FAST
  538.  
  539. sWITCH TO fast (2 mhZ) MODE.  jUST DOES A SIMPLE POKE.
  540. ------------------------------------------------------------------------------
  541. SLOW
  542.  
  543. sWITCH TO slow (1 mhZ) MODE.  jUST DOES A SIMPLE POKE.
  544. ------------------------------------------------------------------------------
  545. READ FILE ...
  546.  
  547. fILE READER.  uSEFUL ONLY FOR TESTING HOW LONG IT TAKES TO READ A FILE.
  548. nO OUTPUT IS GENERATED.
  549. ------------------------------------------------------------------------------
  550. SORT [-[I][V]] [+COLUMN] FILE ...
  551.  
  552. sORT UTILITY.  cURRENTLY USES A SUCKED-OUT INSERTION SORT ALGORITHM.  wILL BE
  553. EXTENDED TO USE THE "aPPROXIMATION sORT" ALGORITHM, WHICH HAS BETWEEN o(n) AND
  554. o(n^2) PERFORMANCE (CLOSE TO o(n) FOR RANDOM DATA).  mAKES USE OF DYNAMICALLY
  555. ALLOCATED MEMORY TO STORE LARGE FILES INTERNALLY.
  556.  
  557. tHE "I" AND "V" FLAGS ARE OPTIONAL.  "I" MEANS TO IGNORE CASE OF LETTER
  558. CHARACTERS IN COMPARISONS TO DETERMINE ORDER.  tHE "V" FLAG MEANS TO INVERSE
  559. THE ORDER OF SORTING (PUT INTO DESCENDING ORDER RATHER THEN THE USUAL
  560. ASCENDING ORDER).  tHE +COL FIELD IS OPTIONAL, AND IF PRESENT, GIVES THE
  561. CHARACTER POSITION OF THE START OF THE SORTING KEY.  tHE DEFAULT STARTING
  562. POSITION IS 1 (THE BEGINNING OF THE LINE).  a tab CHARACTER WILL BE
  563. INTERPRETED AS ANY OTHER CHARACTER.
  564.  
  565. iF MULTIPLE FILES ARE SPECIFIED, THEY WILL ALL BE MERGED TOGETHER AND THEN
  566. SORTED AS A GROUP.  sORTED OUTPUT GOES TO STDOUT.  iF THE PROGRAM DIES IN THE
  567. MIDDLE OF ITS OPERATION (EG. OUT OF MEMORY), ALL FILES OWNED BY THE PROGRAM
  568. (PROCESS) WILL BE CLOSED AND ALL MEMORY ALLOCATED TO THE PROGRAM WILL BE
  569. RECLAIMED.  tHIS IS ALSO TRUE FOR ALL OTHER EXTERNAL PROGRAMS, SINCE THIS IS
  570. IMPLEMENTED IN THE KERNEL.
  571. ------------------------------------------------------------------------------
  572. MEM
  573.  
  574. dISPLAY BYTES OF DYNAMICALLY ALLOCATED MEMORY THAT ARE STILL FREE.
  575. ------------------------------------------------------------------------------
  576. TR [-FROMSET2TOSET] FILE ...
  577.  
  578. tRANSLATE FILES FROM ONE CHARACTER SET TO ANOTHER.  cHARACTER SETS SUPPORTED
  579. ARE: pETSCII, aSCII-cRlF (ms-dos), aSCII-lF (uNIX), aSCII-cR, AND sPEEDsCRIPT.
  580. "FROMSET" AND "TOSET" IN THE SYNOPSIS ABOVE MAY BE ANY OF: "P" (pETSCII), "A"
  581. (aSCII-cRlF), "AL" (aSCII-lF), "AC" (aSCII-cR), "S" (sPEEDsCRIPT), "C"
  582. (cOMMODORE == pETSCII), "U" (uNIX == aSCII-lF), OR "M" (ms-dos == aSCII-cRlF).
  583.  
  584. tHE THE CHARACTER SET SPECIFIERS ARE SEPARATED BY THE CHARACTER "2" (MEANING
  585. "TRANSLATE TO").  iF THE TRANSLATION SPECIFICATION ARGUMENT IS MISSING, THE
  586. DEFAULT OF TRANSLATING FROM aSCII-cRlF TO pETSCII IS USED.  iNPUT IS TAKEN
  587. FROM THE FILES AND ALL OUTPUT GOES TO STDOUT IN ORDER.
  588.  
  589. eXAMPLE:
  590.  
  591. TR -S2U FILE1 >FILE1.UNIX
  592.  
  593. tRANSLATE FROM sPEEDsCRIPT FORMAT TO aSCII-lF (uNIX) FORMAT THE CONTENTS OF
  594. "FILE1" AND PUT INTO FILE "FILE1.UNIX".
  595.  
  596. tHE NAME "TR" IS USED (A uNIX UTILITY) BECAUSE THE FUNCTIONALITY OF THIS
  597. PROGRAM WILL GROW TO INCLUDE THAT OF THE uNIX "TR" UTILITIY.
  598. ------------------------------------------------------------------------------
  599. AS FILE
  600.  
  601. demo ASSEMBLER STILL UNDER DEVELOPMENT.  oNLY THE TOKENIZER IS IMPLEMENTED.
  602. iT WILL SCAN THROUGH THE GIVEN FILE AND SPIT OUT REAMS OF TOKENS IN THE EXAMPLE
  603. FORMATS:
  604.  
  605. I:HELLO,=
  606. C:=
  607. N:87125
  608. S:nOW IS THE TIME
  609.  
  610. WHERE THE "I" LINE GIVES AN IDENTIFIER AND THE CHARACTER FOLLOWING IT, THE "C"
  611. LINE GIVES AN UNINTERPRETED CHARACTER, THE "N" LINE GIVES AN INTERPRETED
  612. NUMBER (IT ACCEPTS 32-BIT NUMBERS IN DECIMAL, HEXADECIMAL, AND BINARY), AND
  613. THE "S" LINE GIVES A CHARACTER STRING THAT WAS ENCLOSED IN QUOTES.  tHE
  614. TOKENIZER IS DESIGNED TO BE VERY EFFICIENT (ALTHOUGH IT CURRENTLY CAN ONLY
  615. OPERATE AS FAST AS THE cOMMODORE kERNAL chrin FUNCTION).
  616.  
  617. pLANS FOR THIS PROJECT INCLUDE A ONE-PASS ASSEMBLER THAT WILL USE DYNAMIC
  618. MEMORY TO BE ABLE TO DO VERY LARGE ASSEMBLES, WITH FULL SUPPORT FOR 32-BIT
  619. QUANTITIES, CONDITIONAL ASSEMBLY, MACROS, AND EVENTUALLY LINKABLE CODE.
  620. ------------------------------------------------------------------------------
  621. VI [-R] FILE ...
  622.  
  623. stub OF zed: IT ONLY PRINTS OUT A "HELLO WORLD" MESSAGE.  iT IS CALLED "VI"
  624. HERE (TO USE A GROTESQUE MISNOMER) TO AVOID NAME CONFLICTS SINCE YOU MAY
  625. ALREADY HAVE A FILE NAMED "ZED" IN YOUR ace DIRECTORY (LIKE i DO).  tHE NEW
  626. ace-zED WILL HAVE MORE FUNDAMENTAL FEATURES THAN THE ORIGINAL zED-128 PROGRAM,
  627. INCLUDING AUTO-WRAP LINES, UNLIMITED LINE LENGTH, HORIZONTAL SCROLLING TO 240
  628. CHARACTERS, CHARACTER-ORIENTED COMMANDS RATHER THAN LINE-ORIENTED, AND
  629. MULTIPLE FILE BUFFERS WITH SPLIT-SCREEN DISPLY.  pLUS, IT WILL ALSO WORK ON
  630. THE 40-COL SCREEN OF THE 128 AND ON THE c-64.  bIG PLANS.
  631. ------------------------------------------------------------------------------
  632. 6. later, dude
  633.  
  634. tO-dO lIST:
  635.  
  636. - mAKE A RAMDISK FOR USE WITH ace.  ramdos IS NOT COMPATIBLE WITH ace-128.
  637.   sUCH A RAMDISK SHOULD BE ABLE TO RIP THROUGH A FILE AT ABOUT 500k/SEC WITH
  638.   AN reu.  wE HAVE THE TECHNOLOGY.                             ^^^^^^^^
  639. - mAKE AN "AUTOEXEC.SH" TYPE OF MECHANISM.
  640. - fIX UP THE SHELL SCRIPT FEATURES OF THE COMMAND SHELL.
  641. - mORE UTILITY PROGRAMS.
  642. - mORE ON ace-zED AND THE ASSEMBLER.
  643.  
  644. tHIS SYSTEM IS pUBLIC dOMAIN sOFTWARE.  iT IS NOT REQUIRED, BUT IT WOULD BE
  645. APPRECIATED IF PEOPLE WHO USE THIS SOFTWARE REGULARLY WOULD SEND A POSTCARD
  646. FEATURING A PICTURE OF SOME LOCAL ATTRACTION/SCENE TO THE FOLLOWING SNAIL-MAIL
  647. ADDRESS.  pLEASE DON'T SEND ANY MONEY (UNLESS YOU REALLY WANT TO).
  648.  
  649. cRAIG bRUCE
  650. 139 cANDLEWOOD cR.
  651. wATERLOO, oNTARIO
  652. cANADA, n2l 5m7
  653.  
  654. iF YOU HAVE QUESTIONS, COMMENTS, SUGGESTIONS, OR BUG REPORTS, YOU CAN CONTACT
  655. ME AT THE FOLLOWING E-MAIL ADDRESS:
  656.  
  657. -cRAIG bRUCE
  658. CSBRUCE@NEUMANN.UWATERLOO.CA
  659. "tHE tHOUGHT pOLICE: tO CENSOR AND PROTECT."
  660. ------------------------------------------------------------------------------
  661. 7. uuencoded files
  662.  
  663. tHE CRC32'S FOR THE INCLUDED FILES ARE AS FOLLOWS:
  664.  
  665. CRC32 = 3206916258 FOR "ACE,P"
  666. CRC32 =  181573020 FOR "ACE128,P"
  667. CRC32 =  906861648 FOR "ACE64,P"
  668. CRC32 = 1018335291 FOR "CONFIG,P"
  669. CRC32 = 2877420198 FOR "SH,P"
  670. CRC32 =  634908010 FOR "CONFIG.SYS,P"
  671. CRC32 = 3785669992 FOR "CONFIG.EDIT,P"
  672. CRC32 = 1746268933 FOR "ACE-CHARSET,P"
  673. CRC32 = 3235493563 FOR "CP,P"
  674. CRC32 = 3377395859 FOR "RM,P"
  675. CRC32 = 1571752301 FOR "UUENCODE,P"
  676. CRC32 =  227133298 FOR "UUDECODE,P"
  677. CRC32 = 2377741993 FOR "CRC32,P"
  678. CRC32 = 3049044244 FOR "WC,P"
  679. CRC32 = 1394194648 FOR "GREP,P"
  680. CRC32 = 3117606270 FOR "DATE,P"
  681. CRC32 = 4046758908 FOR "FAST,P"
  682. CRC32 =  235171651 FOR "SLOW,P"
  683. CRC32 = 1417575457 FOR "READ,P"
  684. CRC32 = 1256206263 FOR "SORT,P"
  685. CRC32 = 1093176211 FOR "MEM,P"
  686. CRC32 = 1251208555 FOR "TR,P"
  687. CRC32 = 3542200335 FOR "AS,P"
  688. CRC32 = 3659651453 FOR "VI,P"
  689.  
  690. tHE UUENCODED DATA IS AS FOLLOWS:
  691.  
  692. BEGIN 640 ACE
  693. m{$60}1p9'&0{$60}br!21[(s,c(x(*<@gb{$60}q,#(t,{$60}{$60}f'&x{$60}1++"*#$x-bd{$60}7aqx{$60}%-9
  694. mlc$r."{$60}z($y5)+(b,3(x(b{$60}z((l@n"@q*;*x*#{$60}i(*<@4ufr-c0@.b!.522r
  695. m(c8t(@"''(({$60}f2*3(co'*#$t*3lbp</%+2([3e4d.r(@(-)%3$5!4t4@(s@b
  696. m{$60}*p<c{$60}"9(a$10ed@pu)!24<@pe)50t4l(#{$60}x+<%51rtq.3ds(@#;')8{$60}f2(1
  697. m$=1(25,@4ue35$5-($e3(-!50dq)0r#$3tu!24x@tt]&5%=!4d4b{$60}/8<h{$60}"9
  698. m(a$1s$]!1$e.1r!+15).14pn+bxb{$60}{$60}d=j@"+(%-9lc$r.""g(#(q,{$60}{$60}5';0{$60}
  699. m4d>r,s(r.{$60}{$60}g';x{$60}dr{$60}b04-%-c0b+$0l,0{$60}q'<@{$60}b2{$60}q,#{$60}{$60}1aw2{$60}/x;(")!
  700. .0t4q,c@b+%4h1"d{$60}{$60}{$60}{$60}{$60}
  701. {$60}
  702. END
  703. BEGIN 640 ACE128
  704. m{$60}"a,l2a,0rm,m2q,q"q,nbu,(rm,=s!,]bu,+ry,/by,8"y,h2y,m2q,)r],
  705. m+s!,wc!,72a,'#%,/c-,zc-,"#1,es1,6#=,z3a,:#i,q#%,y3%,\s%,0#5,
  706. mac5,-ch{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}
  707. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}"i
  708. m{$60}$@hj0z-{$60}/],qs5xh@*u{$60})t{$60}":d{$60}e0#hx)"0\jfkh"j-%{$60}.,%0.ikz{$60}jc18#
  709. mc!<#j7z@*ht8{$60}xp9{$60}z)_j0"={$60}{$60}_*$/jenld(l{$60}*i"(t2#zd{$60}()#_j0"b{$60}"!h
  710. m_r#g_ua@j0"n$@^@{$60}""z_zd&hej@*2"]_zd{$60}h@"@8"#5_y{$60}!8*d{$60}h{$60}b%{$60}h0#
  711. mj5v@-h4$a{$60}6i{$60}*{$60}-a0:$!z(^j5'p{$60}>b&"*f{$60}a0d@{$60}&!@0t].1de'h@^i_yu>
  712. m*,h0^jd{$60}c;{$60}hk1(/&&dyc0{$60},j3j-{$60}0ri{$60}(t"#*d{$60}h{$60}r-%{$60}^,%0^i{$60}(vo*""^
  713. m*:e1h#r-#@^,#p^b'[w@")u1/,h0]ze1h#n-${$60}^,$0^i{$60}(u1.zd!c1l/8*fl
  714. mc0(/j>&-{$60}p^i{$60}*rh",#{$60}d{$60}*@p(t,#xp-#xt(#xp)#zd{$60}h{$60}{$60}@#rji{$60}*{$60}{$60}({$60}\j
  715. mj?^@{$60}"{$60}/*jg_h/\@#rji_z#_({$60}\jk0@/k{$60}d/c0h/c{$60}l/8*hxk0@/z0*-"{$60}^%
  716. m8*t)#^d{$60}c0d/a6&8h{$60}&18(b*d6!@h@*]{$60}{$60}f5{$60}.c@d)#vj0"-{$60}/]xj66@^ht4
  717. m{$60}xp5{$60}zd#h+"-%@.,%p.i0*#zc1@#c!d#j0!(*&{$60}@fsh@+rji%htl"ht8t*d{$60}
  718. mc0{$60}<(-913+=-{$60}-bi?xt-w:p-w3{$60}?(#wv(.'_t!<@+rh@5n{$60}@">$@{$60},"i{$60}(t{$60}
  719. m'"#646p{$60}"dps_]a,9?k8h@"u{$60})t{$60}!,k0^"{$60}o*jd{$60}c0{$60}<3{$60}.ph{$60}"q^o{$60}fh{$60}&q
  720. m^ldzt!z@{$60}+'zh{$60}+)+m{$60}&k1(/3/8jr4&0!>dy3/8j*0],]bjm$@^@{$60}&#nl"bm
  721. ml"@i?z(/w5xh\/'*$/bhh@"]7b@p">c@$)#vj8(x8*t;#yv>*)@88"#%*dbb
  722. m{$60},d(d{$60}*b_z#_r+'zt/n(l?j@{$60},dzt{$60}*@_va@a8(@]rj0{$60}6"=7bbi{$60})v.*(:{$60}
  723. m(,4ja(&f@)un*(6$h{$60}#)!-{$60}"h{$60}?)"){$60}>h{$60}*b#[u>*#{$60}0o6xhq830"9c=?bc0
  724. m{$60}\c0z<h0z*:{$60}f)u^**({$60}i(&q^iu1/?{$60}$r.c0]:6$r0b0%^{$60}{$60}t{$60}2i@3a@j2r=
  725. m43whi8*=43wh3+tkh@"*he&@/2"]_z:{$60}o5xh2+u^**b];bbj:""z_r#{$60}_[{$60}+
  726. mi83)"){$60}<({$60}(ld!>-{$60}{$60}^f@+u>*!@@p_^f@*g_g5xh.*g_8*6{$60}&&{$60}@$brp"b!3
  727. m+{$60}a((*dl:"a@2""i+&bjh{$60}^i_r"z_zd{$60}(+w_(,#_d{$60}.-{$60}{$60}]@ho\@r?^p%*({$60}
  728. mo5$]\{$60}@@to^p".c0\r#,_qa@c0{$60}/2"#,_v@x8{$60}"b_r#&_[#n(,__l.di#xu2
  729. m+{$60}h*;5(l"hu2+"#/_[#6*0\8;5(lc5(l(+?_*8#p!:d%.+#!(,__l+s)#=#k
  730. m(,s_k5(lr3[0!zd$c0{$60}/.&#)%){$60}#c0{$60}/8#bi_r##_y{$60}#c0{$60}/8*j]7ba(j?^=
  731. m7bah&$s#_x6{$60}a(&&aj7zi/n%@h2#j0"%a(6%o8xht%.@{$60}+un*,d{$60}\%#)"){$60}"
  732. mh/^$a[u>**h@qo^0{$60}6"ea,6{$60}i87e@;{$60}c(,__h{$60}"1@n:"t{$60}+f@^:$t{$60}+fa22'
  733. m$-\@m_\i0/#8ih:=cb@@s/^ea*2%ho\88*d{$60}h{$60}{$60}88*6$q8"ea>6!l.@@6bv@
  734. m{$60})&"yh+0{$60}n:#yh30{$60}n:%r0wpt4pv+:vo*/{$60}-kjxh[jxhsj\ho0{$60}+8*({$60}cjxh
  735. m(,__r:#0{$60}jd@g0{$60}+z,d-t.\@to^.krc@{$60}m{$60}2k0{$60}+r2#0"zd-c0{$60}+sj\h3%hm
  736. mx{$60}/0n*t{$60}"\dbt+&m{$60}0o)!-"j:&bi{$60}(vo*$pp+86{$60}a(&e^j3[a8*$@[u>**h@
  737. mr?^0{$60}6"e@{$60}6!\!n@{$60}+&"(-+_d{$60}%@yh+0{$60}n:#i8#0{$60}l:!qh!,t"t@s/\88"#%
  738. m*ld(l{$60}2i@sa@a8$@]rj0{$60}6"=7bbe@9un**d{$60}g8xhj0^=?bb&@*d{$60}c5$]h@{$60}@
  739. mo2n0{$60}xt{$60}#z6{$60}8*j]7ba(j?^=7bah.$s#_x6{$60}a(&]7bbj(,g_d{$60}2-{$60}{$60}]@h{$60}"q
  740. m@/{$60}&(-+_r-#v(,s_&&"%@(2!o5xhjb#&_y{$60}$c0{$60}/8*{$60}{$60}(,__r0wp"i&{$60}r""w
  741. m_re{$60}\.^i{$60})&{$60}(,s_h{$60}"q@"d/"@iq@{$60}j%@\bq@"d/98,88"#%*h2"r0bp!*f#
  742. m.&"%@2#w*i{$60}!8)u>**6!g6xhj0"=cbbi{$60})u^*(:{$60}j22-43vi,(u2/:d{$60}c5,]
  743. mh@(@^bx@o2n0{$60}6"f@+u>**h@qo\@s_\@s_\@s/^e@!a@i(*q^m{$60}!8*(!l?j=
  744. m43wp!,cht/7*j3k=43wp!.b=43whj2j=43whj0"=43u@o5xhjb#&_y{$60}#j0!@
  745. m(,__a80@m_\i0-{$60}'(,__!830!b#,_z({$60}8"#/_x6{$60}c5t/(,__a8&-7@\&@":!
  746. mj0{$60}ja8(xj0#e@(u<#zu=#^6!c5t/k5x/y8*-7@^i{$60}(un#xum#r#/_[!z))!p
  747. m=ld@\//)$o#or2+0=*({$60}(,__l&,dd'!?r2+p!iun#^c0[:d{$60}g6x/cft/(,__
  748. mr2#p^:)@cfp/r2k0"zul#pd(c6p/(,__h@.@#$s<+r#/_ye<#\c*t/:m:{$60}_)
  749. m1-{$60}+k6p/"9"-;{$60}],#c#)4-{$60}5k6p/"1"-;{$60}],#c"-{$60}{$60}\@s/^b{$60}#a@(,__r0#p
  750. m$\d\t{$60}bm;{$60}\iwxul#r#/_\d{$60}t/d@s/^b_qa@o5xh2+e>*)u>*&b97bb];ba(
  751. mn6xhg6xh:)en*+u^*$by?bb=?bahf7xho8xh2+f.*)v.*&b9cbb]gba(n9xh
  752. mg9xh:)f>*!a@a8"$@2#%*h6$jab89?j%@j7[:0"%@zd{$60}h{$60}{$60}@no^@{$60}+&"\{$60}/(
  753. mt/f8ih*d@r"]_zd{$60}ih"d@2#5_x:{$60}a(&0&dc)!?{$60})i83)"){$60}#({$60}(l:(t{$60}#z6$
  754. mj0"@{$60}#a@i83)"){$60}%({$60}(ll.je@*2!8"#%*h6{$60}j5.-43vi.hu2/:(!l?k)+_{$60}"
  755. mh@*q^iu1/?{$60}$r.c0]:d{$60}g5$]i8{$60}@$brp#2{$60}m++{$60}#(%,l"""i+"a@j0"%@r#%
  756. m*h2"a8"i0xu1/:e0c5(]h@*q^ldpd{$60}o).k{$60}'g5$]z,c0[^{$60}"\!^i{$60})u1/82!
  757. mi8{$60}@$br0{$60}6"i_x6#("tll%\@4rrp6j2!j42-4cvb{$60}k'zg5$]\{$60}c).o{$60}$r.c0
  758. m\>{$60}"\!zi{$60})u1/:6#,{$60}be@"{$60}2+){$60}!8"{$60}m++{$60}h(%,ll",@j2re@(t2#qai.8t{$60}
  759. m#*dzc0$,h@*d@k'zg0{$60},\{$60}3hr-#u8""i+#a@o6xhr0/0""#m_^c(j0!@r0#p
  760. m]*)0h$+)"+{$60}#j0%@j0)@(.'_\{$60}(88*d{$60}c0{$60}/.&#)"i{$60}"j0j%c#bi"n6,a8r@
  761. m{$60}+4{$60}f8({$60}z,c{$60}!)#uh@2i{$60})6&ra#[a8n@('cx!h(f@r:$)h6b!+6&=8:5alh0
  762. m]xc0zma8j0j%c:({$60}h{$60}"uab!-,nc@!9#vj0"1@&!(2di*2b!8,f@i#\:-\{$60}w%
  763. mb]{$60})qhpp{$60}6"i(-{$60}$"3"%by&{$60}r&"b{$60}+v>,it{$60}{$60}nc@h)#u8*({$60}j0"={$60}{$60}+hx*#0
  764. m^&{$60}_?[__o_^__s\$!{$60}0$%!0d){$60}2$cz3\n94rc0;5n8prc0#_h{$60}"q^i4{$60}z,c$
  765. mcy#vj0z-{$60}/\88(2/i/rye3*-!m6yc#*-{$60}/^@{$60}+4{$60}d?khr,2/d/:i#ht{$60}_qa@
  766. mior]e3*-!m6]c#*jb/{$60}-c@#_l?j-{$60}?^1_hc0\xx{$60}_['zc0'_d?zi#ht{$60}_qa@
  767. mior]e3*-!m6]c#*jb/{$60}-c0'_l?z.{$60}/^1^hc0\xt!_['^c@#_d?ji#ht{$60}_qa@
  768. mi?wp.,d"d{$60}70.4p{$60}{$60}hp'wz"1i?r-!m^.{$60}m^i{$60}(t#wxt(wz7zc03?i?n-!=^m
  769. m,-"b{$60}(xpt(p!wxtpt!a@j82-{$60}{$60}\x8*f1c9<sj0",f#.-f3..fc.-fs-,g#,{$60}
  770. m{$60}{$60}{$60}{$60}{$60}""ix*v7,xt!wjv:,zr;,xt"whp#wj({$60}i?w)!_{$60}"h@2e^ht$wab]+@]e
  771. m^xt%wkto#v7\c0;>k9@sk)dsc0?>c{$60}c>j0"-"mz-$-x@'ox88*7]\(s){$60}i{$60}%
  772. mt{$60}m,(p*,!]^@d$q0,zf03(,s{$60}{$60}{$60}{$60}{$60}*;]\!3@{$60}k{$60}%hi%,$3709,{$60}{$60}t"fht{$60}48
  773. m8$qz,z;\x{$60}#p{$60}tq&{$60}hx!_xcp!['zd?z(t/fq^i'^j0z-{$60}/\88(t$-(p%-*7[
  774. mc08ti?^-!s2m!33p#j{$60}{$60}(",tyoof_\x%--#rk{$60}0t\{$60},@(s2m!c2%^zt'-(7_
  775. m&&"bd8z7,xv8,xr9,z7^i/^-fc.,fs-,g#,{$60}{$60}{$60}{$60}{$60}iowp%.{$60}"l{$60}6bd$p1-=!f
  776. mp{$60}#0*:c0!1a@3'hsios@{$60}/{$60}#3',"c@'_b/{$60}'l?z1^hc0^;'^d?ji#ht{$60}_qa@
  777. mc9,tc)0ti?^-e32e^xv6-*v4-/{$60}.h{$60}{$60}@lc3f^^;_si0tt/*lds3p!:;\(+(t
  778. mk94ta?^mec2%^qa@hi!,?32-!]^,"-^e_j3_c0+?c{$60}/?i?jd^xt$wxp%wz7\
  779. mc0;?k##0j0"-,-".{$60}=^,,-{$60}88(6{$60}a(&@{$60}[d6#y&{$60}b!#xh{$60}2m"]p0"2d?>/@8
  780. m:1+86,d2t{$60}*i{$60},ddt{$60}*i$i&{$60}r*t*w)&{$60}r*t)w)&{$60}r*t(w{$60}h*"@h-&@^1@&"%
  781. m@(2!h{$60}.q@)d6#x@0^*{$60}$l8#)$y{$60})>/@xz1+86{$60}f{$60}c0o<r+&{$60}c0k<r+&{$60}c0g<
  782. mr+&{$60}2di*2ht(w+&{$60}*0>-&@]@{$60}*f3(-+_j0x@to^b{$60}+u=-o{$60}&(-+_z-#u(+th
  783. mk1(/c<8u('$r(!(il$l@8"d@dc8@e#ji6j{$60}va?j$^zd{$60}h!,@$bbp,:f0h{$60}b%
  784. m^h3[(#,hj5>@-h7za/ni4b{$60}#**e4h#:%^h3[j5<@{$60}rbi5r{$60}#**d{$60}h!,@6bbi
  785. m{$60}"{$60}&**d!({$60}8hj0(@!bbmqc6%nb!_,dqd*c,z{$60}#{$60}z{$60}%-({$60},'#q2tq,c@@rt52
  786. m3d5,(#{$60}n-3(n,#{$60}@+2##t\(@,#@mp55'+3ds#0t{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}h@"@
  787. m{$60}(z)-hz(-kt{$60}#9t{$60}#m{$60}!r.c0]*d{$60}h{$60}*-ac:,as:i{$60}*({$60}g8hvz.{$60}(d/@88{$60}{$60}{$60}
  788. ms88vt{$60};,as;0{$60}6"-p#:,p3:mb#;p#zv&-jr'-b{$60}2-r{$60}%-r{$60}_**w{$60}-js!-hv&
  789. m-hr'-b{$60}2-r{$60}%-r{$60}\**d{$60}c8@vc8dv8*d{$60}h{$60}z%_h3_j0"@{$60}6"%_(3]j0"b_x7z
  790. maoo{$60}{$60}o{$60}!8*7\t{$60}nm*{$60}^l*0^%^h3[8,d!t{$60}bi{$60}*pj#tpm-zd{$60}h{$60}1,+3<{$60}{$60}{$60}{$60}{$60}
  791. m{$60}.hw_c<{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}1."4xc4<wr0#0!2#9-qa@x{$60}&p{$60}j(!p{$60}?p!){$60}"h{$60}>.13>,
  792. m1c>m13?-1c?p{$60}k!7kd4wo8hv\{$60}?-1s?p*y{$60}ik44w"jj]2#>%^ku)-_{$60}:a?l@
  793. muc>0&:y%-[v*-o{$60}%s4<wd{$60}:m1s>=bc;n13=,>#>f_:7\w14zl{$60}.=%3k='3j0
  794. m{$60}yt=.aa@;/h{$60}j8"-{$60}{$60}^i{$60}(7za?n%_(7].&"i{$60}87]k2t/kbl/k"p/(#lxc2t/
  795. m8*d"a?vm)p^b{$60}*pd#r{$60}[.(tg#v"i!h7]k34/kbl/k#0/(#lxc34/8*d'a?vm
  796. m,0^b{$60}*pp#r{$60}[.(tq#v{$60}{$60}{$60}{$60}"-.#b%_(xy.(pz..pz.){$60}!8*7\i/t@pc:l1s<@
  797. m?cbp"jd{$60}a?j&^z7\&&#f_*7\s3hxd{$60}6m.3b%_*7\s3@xt-(x8{$60}{$60}{$60}khdvo0{$60}.
  798. m\!#h\{$60}n]{$60}{$60}[0^(z)-dr6.#a@c'pxx{$60}#p!\jl?#ch\/"]{$60}{$60}[0]8c0]8y].*q\
  799. m.*t;#yt{$60}#lj(t/gh[(dvt{$60}>l?3c(c(dvj?^-b#8xk1t/[7pxc1t/k1x/z0"-
  800. m'@^p{$60}\x?#qa@{$60}{$60}"-z#c){$60}-{$60}#3'tyi?w){$60}-{$60}%j81,?sfia:;zt'ne^xwg.!am
  801. mz#b0!:f%3'\yi?rd_2#"-jt;#z[g.*sh.-t{$60}#o{$60}%j89,?sghb-#rkn<xk.@x
  802. mj0"={$60}{$60}[hb-#yj?^-b#:mysc-b3:p{$60}xv)-j;]o8hv\{$60}xxz0$*l{$60}8x;>@xd{$60}*i
  803. m{$60})v*-abm'0]mz#b-'0^0".x>#]{$60}#[a\/&&"-{$60}{$60}\x8{$60}"b{$60}+t5.mt=.o{$60}"l!..
  804. ma#f]%3j\'3jjk80y(*tykh0yz.{$60}(d-y@{$60}{$60}{$60}{$60}cjhyc:lyc*pyk:hyk*lys:py
  805. m\{$60}*p"r#"-b#/.>zj.=#h8*{$60}{$60}h@"m&p],w#gh\!'={$60}{$60}[0^*d{$60}g0{$60}.r*t;#ts9
  806. m.<{$60}{$60}\"*i{$60}(v)-jz'-iv*-jg_c8@vf!am'0^-'0^0".x>#]{$60}#[a\/&&{$60}{$60}{$60}{$60}{$60}{$60}
  807. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}h@>i_yt5.jd{$60}g1tzra#s8{$60}"%@(2!("4zk3</2+j.-p_n
  808. m&p\@93ji{$60}(tu.fb--p\@<#h@a3d@)3k.&p^m-3h88&r{$60}{$60}*xw#yi,33h{$60}(,s_
  809. mh@"]7bc)__{$60}2o9xhs1l/t{$60}j.;sj*({$60}8hkf\zz.{$60}0d.)@(!([(,tz8*d{$60}h-b%
  810. m@(2!j0"@((6"a(-xj0^-{$60}/^b"*{$60}{$60}l8"1@lc0^>:!yh/*t/*i#ht{$60}_u@@s3i@
  811. mj0"@,"{$60}k.zd{$60}h""%@(2!h@"&@jd?c0#6h{$60}"q@"p{$60}ua#[c0'6r,{$60}(d/&i{$60}"{$60}=
  812. m.z(>j0<@'sl8i8!i"(6{$60}d{$60}+f@>:"t,]@ha@@13li?r{$60}?.v"b'xx{$60}ubp{$60}ua#[
  813. jc0'68*(2c@#6+{$60}#6$/n,{$60}=;hc@#6+{$60}#6$/n-{$60}=9@c@#6+{$60}#6$/nm{$60}=9@{$60}{$60}{$60}{$60}
  814. {$60}
  815. END
  816. BEGIN 640 ACE64
  817. m{$60}"a,1re,u2m,1ru,5bu,3"y,m2m,"3%,b"y,p2y,t"y,\by,,r],1ru,n2],
  818. mp3!,<#%,72a,kc%,?s-,(#1,/c1,t#1,d3=,(ce,h3i,5c),=s),a3),?#5,
  819. mpc5,;sh{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}
  820. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}"p
  821. m{$60}ts#_z:8rc{$60}?w5d"t/cp{$60}0"df(by60*=60*y8p*=8p*y;0*=;0+&f!a@{$60}$be
  822. mfld#\{$60}1h3-+_:,d+l/c)!]{$60}bj16-&-2i"8t%u*d{$60}c0;4j3"-{$60}=2i((t$u*da
  823. mc034j0<88,d)t""etrd'c=ph.*d([=phcmphjjd=(-+_rm#zkmphj0d88,d*
  824. mt{$60}fi$2#2_zd*&&!,to^i{$60}$@hj7:%{$60}4p#-gbb{$60}k4{$60}g0{$60})j0"5{$60}.c@d)#rj3j@
  825. m*xt4{$60}xp5{$60}zd^h"n-%@.,%p.i!:{$60}kc1@#c!d#hg^i{$60})t{$60}#\h0^j6zr0bp{$60}jd(
  826. mc1(/j0{$60}@d/\@y_]88*d{$60}ka(/h{$60}{$60}@no^i!j+hh"d@o?^i{$60}*({$60}h&{$60}@u?^0{$60}6"i
  827. m{$60}*{$60}(a0*${$60}zf6h#:%!(0%j0"@#84&a{$60}>b/*g-\{$60}'ha@bi0(4)({$60}!@8$-/3d9)
  828. m1z(/j?^=7bc*$/ji{$60}(vp**t2#qai.8t{$60}#*dzc0$,j0"-{$60}@ri{$60}*{$60},c10/c!4/
  829. mj0"-kr@@3"jis:{$60}[c0x/c{$60}\/ha^]x{$60}b=s3o*$/>is:{$60}zc1{$60}/c!$/j0"-s3ji
  830. m{$60}8t;#v"ik(t"#zgac0,/j0"lq@c{$60}t){$60}"h-"-#{$60}^,#0^-"{$60}^,"0^i{$60}*{$60}{$60}()tj
  831. mj0"@{$60}""=*jg_h{$60}{$60}@g2ji_z#_()tjj?^@_r"=*jt(#zp)#xt*#xp+#v"j.*t(
  832. m#^d"c0@/a6"m"0_i{$60}(t)#x5af*{$60}!d6"(bi%@8*("o0{$60})e0#hx)"0]jewa0%x
  833. mj3&@zht4{$60}xp5{$60}zefh/z-%@.,%p.i1z#^c1@#c!d#j0!(*&{$60}@o2ji%ht8t*d{$60}
  834. mc0{$60}(($*f3'2d{$60}-a(bdb82*e_c0w=k{$60}w=,!\@o/8@x?_0%r"]*b{$60}5_2"c_2{$60}8
  835. my:d{$60}c0{$60}(($*f;{$60}*@:*ahjfa{$60}v$pqzmbb{$60}+4{$60}g0{$60}$rm#x(+tjj0"-{$60}{$60}@@0j9,
  836. m9oz@{$60}+'z\":@{$60};'zr3k0'j{$60}{$60}l?j@{$60}ldnt{$60}:m$@],b"o)09{$60}%z3e,b"li#tr(
  837. m*zt2#z{$60}{$60}8.zp**vp*"e_h@_=7bcp\<h0^*bb{$60}+u>*#{$60})z.{$60}0d/:i@ca@k1l/
  838. mg9xhf!a@(%<k2*({$60}r0b0{$60}j+_h/_(l?k0^xbq^j{$60}{$60}r3k0{$60}j#_:&"%@b")*y{$60}!
  839. m8)u>**d{$60}g8xhah{$60}@5rn$@::{$60}g6xha82@{$60},d$t{$60}*@!\d(d!z@{$60}j(/o5xh,!"]
  840. m;bc%a-{$60})f-u^*-{$60}#r-#ira#hih"8g7xhh@"d@;'zg0{$60}*\{$60}3(z-#ui83)"){$60}7
  841. mx{$60}#0!*f!.&"i+)t{$60}"nbe@it{$60}"na,3rrb{$60}(jb{$60}*{$60}*(+w_ih"]7ba(o7xhj+un
  842. m**ih(+k_(,#_l{$60}nea,d(d!p@e"r0%xt{$60}#z:{$60}o5xh&""q**:{$60}j?^=7b@xj?]@
  843. mi8{$60}88""d++{$60}*(.4l"$@@.ruh*&!((#lm:*j@#zg_(+k_j0{$60}@o?\@p/^0{$60}xt{$60}
  844. m#v"b_r#)_[{$60}4h@"]{$60}{$60}kp""#=*+{$60}(z-#s(,s_&&"-{$60}{$60}]((,s_:#a@{$60}*+_(,;_
  845. ml.x@s_^pz2d/c>0l"@imy"p*c>0l(,__l-8i#qamy"r-y"p@m_\i@/{$60}%j04x
  846. ml,$@s_^po,d-t.l@s/^my"s)/m{$60}'j02-{$60}{$60}\x8,d4d{$60}.-{$60}{$60}]@.*g_(+$hd{$60}.-
  847. m{$60}{$60}]@jku>*$bi_yu>*&@83+$ha8"$@8:&i?jd^x6"a(.i{$60}(6$a86]cbc04z{$60}{$60}
  848. mo6xhr0#p4,d(d{$60}*@_x2'o5xhjb#&_y{$60}!8*6$q8"ea>6!l",@s_^@{$60})&"yh+0
  849. m{$60}n:#yh30{$60}n:%)(<0wr"w_re{$60}\-bfaiv.*"#,_z6$i(6b_qa@j0"@{$60}!a@i83%
  850. m@*6%y8&pz"#l+:{$60}{$60}d8+f@m{$60}"yh/fa-{$60}"yh7)#?#13,@mk:\h\{$60}vnkbcnkbc.
  851. mkrb]{$60}{$60}m@h@".kb@@s__)h-{$60}"j2"={$60}{$60}ohr0w0[r#=*(zo*.{$60}"t!*m{$60}{$60}o)(-{$60}+
  852. mj0v-{$60}{$60}o.kra,["w@{$60}]"xk0{$60}+r2+0l:t!"\d$t*ih:*d{$60}c:\h3,(ma8"$@:7z
  853. mi/n%@h2#o5xhjb#)_y{$60}!8*6{$60}!8'p&z{$60}{$60}l8(@w2b0{$60}6#f@m{$60}"yh.e@-{$60}"qh'&
  854. m@$qb+b#,_qa@(%<kr0bp!*f#.&"%@2")*y{$60}!8)u>**6!g6xhj0"=cbbi#yu^
  855. m*(:{$60}j0"-{$60}{$60}jb{$60}"!/+){$60}#c0{$60}/i8!@jku>*$bi_yu>*&@x3+$ha8"$@;u>**h@
  856. mr?^0!(t{$60}#v"@{$60}+&{$60}\{$60}8@w2c(t/8@s/\88(6{$60}a(&]7bbj(,;_d{$60}2-{$60}{$60}]@h{$60}{$60}@
  857. ms__)#?{$60}*d8#((+?_*4#p[zd{$60}d8{$60}@s/^@{$60}+&{$60}*0\*"g&{$60}"h6#r+&{$60}*0]e@qa@
  858. m(%<ka(+)"+{$60}$j8,x8(6!((dkd{$60}%@g5xhi8&=;bbi{$60})v.**d{$60}g7xhah"i)(t{$60}
  859. m"jdpc0$*j0"-{$60}@jb{$60}b",+r!/+){$60}!8*:{$60}o5xhjb#&_r#/_r#/_r#,_z6{$60}&&"d
  860. m@k'zt{$60}%@h@&q^it{$60}"o{$60}$r.c0]<ji.mt{$60}"o{$60}$z)t{$60}"nbi*it{$60}"nbi{$60})t{$60}"f"]
  861. m7bbj(,;_d{$60}.i{$60}&{$60}@s_^%a""w_re{$60}t{$60}<@s_\%a-{$60}&(,s_h@!@(,__a8"-70\@
  862. ms_^%@8u>#p:{$60})h&i{$60}"j%@cbi{$60}.6{$60}c5p/k5t/y8&-70^m7@_e@hu>#zd{$60}c6x/
  863. mc6t/(,__l'hdd'!vr2#p\\d2\._)(m!th@{$60}@s_^p8r20<%_)(o{$60}&g6x/z-#m
  864. mj0"=;@^.;0\@s__)(/#yhf".;{$60}_)*m{$60}+k6p/"0b-;{$60}\@s_^b{$60}z{$60},3&xp(,__
  865. mf5p/r,k0]juh#\e$t{$60}nm;{$60}\)d(ul#tr@,,e0t!6m;{$60}\)$(ul#tr@,(t{$60}#r#,
  866. m_z({$60}.&{$60}@s__){$60}/{$60}3r3s0"*ul#rg?c6p/(,__r0#0^2#,_z+_&&"]7ba(n5xh
  867. mg5xh:)e>*+un*$by;bb=;bahf6xho7xh2+e^*)u^*&b9?bb]cba(n8xhg8xh
  868. m:)f.*+v>*$bygbb=gbahf9xh&&"%@(2!(%<ka82j&)ae^h6"i?mi{$60}(6#j0"@
  869. m{$60}""z_z{$60}{$60}l8+p{$60}\c0^9bf@j2#(+w_j0"f@*2!(-7_ah"$@9{$60}:2,d%\{$60}fea,d(
  870. md{$60},@e"qhc0{$60}/i82i{$60}*{$60}{$60}.&"ea,d(d{$60}4@e"rpzj6{$60}i(%@(%<ka8"i4xt{$60}"jdz
  871. mc0$*h@&q^ldo\{$60}*b{$60}k'zg0{$60}*\{$60}3(z-#uj0"={$60}{$60}je@""d++{$60}-(+\ll{$60},@y2p(
  872. m(#lm*&"i{$60}(6#(%<ka(*%@*e#c0{$60}*j5"-{$60}0jb{$60}k'zr3"0"\dzl{$60}>={$60}{$60}khr-#o
  873. mx{$60}+p'zd{$60}g0{$60}*a(&e@""d+){$60}!8*g_a8,@orrp7r#e++!:i(&i1(t!"j("l?j=
  874. m{$60}{$60}kp",dz\{$60}3(z-#qx{$60}+p'jd{$60}g0{$60}*i8,p"*6{$60}(*0ld{$60}%@(+\ll"@@y2rp(r{$60}[
  875. m+:6{$60}c1(/&&dyc0{$60},j3j-{$60}0rb{$60}j2"l?j={$60}{$60}sp!.c(t/5@(#lm.&"];bc){$60}]{$60}(
  876. m(.w_z,bi{$60}&#){$60}/#the"@0ld(l{$60}.i{$60}6"i{$60}f{$60}@x?_p{$60}aa@j0"-{$60}{$60}\x8,d*d{$60}*i
  877. m"h6,.*d*y8r%c*{$60}{$60}m0"9@@#hr,{$60}$d/6b!*d{$60}e8;*$/n%bz{$60}@>/@&@b:#)h0f
  878. ma:($m89uai6&ra#wb-#jv%bi"h6-h@"@{$60}+6&(-\rz.{$60}%d/:i{$60})&{$60}8$a*2di*
  879. m(.hr:"d/qhwp#<6+t{$60}g&c#{$60}!8*d@t{$60}0),(6+d8#(8&!@<'"$cz3\"'by!3.%
  880. m{$60}:{$60}{$60}l?j5{$60}.c(q(^0]jeva0$h&&"$cz3\"'by!3.%{$60}:{$60}{$60}m0"1^nc(q(^0]jev
  881. ma0$h&&"f_{$60}axo04sa0&(\{$60}>q^i'^b-#yl?j1_jeva0$h&&"f_{$60}axo04sa0&(
  882. m\{$60}>q_i'zb-#yl?z1^jeva0$h&&"e_?{$60}mr0*0!={$60}n3{$60}<sc{$60}??h)&e_(t&wxx"
  883. mwzd{$60}c0/?c0c?i?j-!-^e^xt%wxp!wqa@j82-{$60}{$60}\x8*f1c<tsj0",sc.-ss..
  884. mt#.-t3-,tc,{$60}{$60}{$60}{$60}{$60}{$60}""ix*w-,xt!wjw0,zs1,xt"whp#wj({$60}i?w)!_{$60}"h@2e
  885. m^ht$wab]+@]e^xt%wkto#v7\c0;>k<xsk,\sc0?>c{$60}c>j0"-"mz-$-x@'ox8
  886. m8*7]\(s){$60}i{$60}%t{$60}m,)3.,!]^@d$r1,zf03+ds{$60}{$60}{$60}{$60}{$60}*;]\!3@{$60}k{$60}%hi%,3370
  887. m9\{$60}{$60}t"rht{$60}488$rp,z;\x{$60}#p{$60}tp\{$60}@axhg"&{$60}8cp!['zd?z(t/fq^i'^j7:%
  888. m{$60}2@88(tz-(p[-*7[c3pti?^-/32m.s3p#j{$60}{$60}(%dtyoof_\x[--#rk#ht\{$60},@
  889. m632m/#2%^zt]-(7_&&"bd8[-,xw.,xs/,z7^i/^-t#.,t3-,tc,{$60}{$60}{$60}{$60}{$60}iowp
  890. m%.{$60}"l{$60}6bd$q--=!ip{$60}#0+*c0!1a@3+{$60}sios@{$60}/{$60}#3%h""'bb<(8!b/{$60}'l?z1
  891. m^hc0^;'^d?ji=h4!*!a@c<ptc,tti?^-sc2e^xw/-*w--/{$60}.h{$60}{$60}@zs3f^^;_
  892. mslttt/*ls#3p!:;\(.ltk<xta?^mss2%^qa@hi!,mc2-!]^,"-^e_j3_c0+?
  893. mc{$60}/?i?jd^xt$wxp%wz7\c0;?k##0j0"-,-".{$60}=^,,-{$60}88(6{$60}a(&@{$60}[d6#y&{$60}
  894. mb!#xh{$60}2m"]p0"2d?>/@8:1+86,d2t{$60}*i{$60},ddt{$60}*i$i&{$60}r*t*w)&{$60}r*t)w)&{$60}
  895. mr*t(w{$60}h*"@h-&@^1@&"%@(2!h{$60}.q@)d6#x@0^*{$60}$l8#)$y{$60})>/@xz1+86{$60}f{$60}
  896. mc0o<r+&{$60}c0k<r+&{$60}c0g<r+&{$60}2di*2ht(w+&{$60}*0>-&@]@{$60}*f3(-thj0x@w2bb
  897. m{$60}+v6-o{$60}&(-thz-#u(%(ik1(/c0(v({$60},s(*{$60}il$@@[bd@rs:idz{$60}va?j$^zd{$60}
  898. mh!,@$bbp,:f0h{$60}b%^h3[(#,hj9"@-h7za/ni4b{$60}#**f-h#:%^h3[j5<@{$60}rbi
  899. m5r{$60}#**d{$60}h!,@6bbi{$60}"{$60}&**d!({$60}8hj0(@!bbm{$60}c:%nb{$60}$,tsq*c,z{$60}#{$60}z{$60}%-(
  900. m{$60},'#q2tv-"{$60}@rt523d5,(#{$60}n-3(n,#{$60}@+2##t\(@,#@mp55'+3ds#0t{$60}{$60}{$60}{$60}{$60}
  901. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}h@"@{$60}(["-h[!-kt{$60}#9t{$60}#m{$60}!r.c0]*d{$60}h{$60}*-os:,p#:i{$60}*({$60}
  902. mg<,vz.{$60}(d/@88{$60}{$60}{$60}s;\vt{$60};,p#;0{$60}6"-^3:,^c:mp3;p#zv_-js{$60}-b!+-r{$60}^
  903. m-r{$60}_**wy-jsz-hv_-hs{$60}-b!+-r{$60}^-r{$60}\**d{$60}c<$vc<(v8*d{$60}h{$60}z%_h3_j0"@
  904. m{$60}6"%_(3]j0"b_x7zaoo{$60}{$60}o{$60}!8*7\t{$60}nm*{$60}^l*0^%^h3[8,d!t{$60}bi{$60}*pj#tqf
  905. m-zd{$60}h{$60}1,9c<{$60}{$60}{$60}{$60}{$60}{$60}",x-s@{$60}{$60}{$60}{$60}{$60}{$60}{$60}!*.%xxc8{$60}wr0#0!2{$60}2.!a@x{$60}&p{$60}j(!
  906. mp{$60}?p!){$60}"h{$60}>.?c>,?s>m?c?-?s?p{$60}k!7kgxwo<,v\{$60}?-@#?p*y{$60}ik7xw"jj]
  907. m@3>%^kv"-_{$60}:a?l@#sb0&:y^-[w#-o{$60}%s8{$60}wd{$60}:m@#>=ps;n?c=,l3>f_:7\
  908. mw4xzl{$60}.=3ck=5cj0{$60}yu6.aa@;/h{$60}j8"-{$60}{$60}^i{$60}(7za?n%_(7].&"i{$60}87]k2t/
  909. mkbl/k"p/('0xc2t/8*d"a?vm)p^b{$60}*pd#r!t.(tg#v"i!h7]k34/kbl/k#0/
  910. m('0xc34/8*d'a?vm,0^b{$60}*pp#r!t.(tq#v{$60}{$60}{$60}{$60}"-<3b%_(yr.(qs..qs.){$60}!
  911. m8*7\i/t@^s:l@#<@msbp"jd{$60}a?j&^z7\&&#f_*7\s7,xd{$60}6m<cb%_*7\s7$x
  912. mt-(x8{$60}{$60}{$60}kl(vo0{$60}.\!#h\{$60}n]{$60}{$60}[0^(["-ds/.#a@c+4xx{$60}#p!\jlm3ch\/"]
  913. m{$60}{$60}[0]8c0]8zv.*ru.*t;#yt{$60}#lj(t/gh[,(vt{$60}>lmcc(c,(vj?^-p38xk1t/
  914. m[;4xc1t/k1x/z0"-'@^p{$60}\x?#qa@{$60}{$60}"-(3g){$60}-{$60}#3+8yi?w){$60}-{$60}%j81,n#fi
  915. ma:;zt'ne^xt@.1am(3f0!:f%3+@yi?rd_2#[-jt;#zx@.:pa.=t{$60}#o{$60}%j89,
  916. mn#ghb-#rkb{$60}yk"$yj0"={$60}{$60}[hb-#yj?^-p3:m(#g-pc:p{$60}xw"-j;]o<,v\{$60}xx
  917. mz0$*l{$60}8x;2$yd{$60}*i{$60})w#-abm'0]m(3f-'0^0".x>#]{$60}#[a\/&&"-{$60}{$60}\x8{$60}"b
  918. m{$60}+u..mu6.o{$60}"l!..o3f]3cj\5cjjk;ty(.8ykktyz.{$60}(d-y@{$60}{$60}{$60}{$60}cn,yc>0y
  919. mc.4yk>,yk.0ys>4y\{$60}*p"r#[-b{$60}(.n[c.=#h8*{$60}{$60}h@"m&p],%3kh\!'={$60}{$60}[0
  920. m^*d{$60}g0{$60}.r*t;#tp2.l{$60}{$60}\"*i{$60}(w"-j[{$60}-iw#-jg_c<$vf!am'0^-'0^0".x>
  921. m#]{$60}#[a\/&&{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}h@>i_yu..jd{$60}g58zra#s8{$60}"%@(2!
  922. m(%xzk3</2+j.-p_n&p\@gcji{$60}(un.fb--p\@j3h@ocd@7ck.&p^m;ch88&r{$60}
  923. m{$60}*xw#yi,ach{$60}(,s_h@"]7bc)__{$60}2o9xhs1l/t{$60}j.j#j*({$60}8hkj@zz.{$60}0d.)@
  924. !8{$60}{$60}{$60}
  925. {$60}
  926. END
  927. BEGIN 640 CONFIG
  928. m{$60}&!,!6!#qb{$60}i8;{$60}a((]al!p@]v$@ff,@c&(@f&0@.68@af<@\f<@6v@@hv@8
  929. m8(7]aa&i{$60}*"{$60}h@"%^h3[aori{$60}(40i1"%_""<8*dta0ze_(4/h@z@{$60}b{$60}y**dt
  930. miop@yv"p-zg+a0zb#j{$60}"(#dhj<nf_"#g8+{$60}cj<nb{$60}"#g8+{$60}:i?s){$60}i{$60})j<nb
  931. m{$60}b#g8+{$60}+(+)@ya"e$,41d*h@q&"e$&"b%j{$60}"i?s){$60}-{$60}"ha+){$60}m{$60}"ha0@-ba@
  932. mi?s){$60}/{$60}+r0+p!z(6h{$60}(@.2a@i1#){$60}y{$60}{$60}j0*%_*(4h{$60}(@.2be$,d!d{$60}ni{$60}(7\
  933. mha*@{$60}b{$60}y*&"%"j7\a0n&_*g_a0r%#:(,h{$60}(@-bbe#,4*t{$60}re#<7\t{$60}:e"x7\
  934. m&&"e"x7\.&"%0(1!h{$60}"q0/{$60}*(-+_r-#vyd'0\f"i{$60}*:zh{$60}{$60}@no^i"j)1h&$@
  935. mo?^i{$60}*8"i{$60},@u?^p{$60}aa@j5n@82{$60}483a@0t].1de'+e-94\524d]2($%45$5-
  936. m4%1)3d<@5$\@0bu,3t%$(")#3ty&24<n4ue3(bp@04)/4e1)3d<n#0"i{$60}*:z
  937. mh{$60}{$60}@no^i"z*wh&$@o?^i{$60}*({$60}h"{$60}@u?^p{$60}aa@j<*@82{$60}483a@04-%+4-(05)3
  938. m153%4e)/4b!!5%1%35!424y'(%1/($(m3$]!1"{$60}b04-%+4-(05)3150b+"!!
  939. m0d]25$e.1rx-{$60}"0)$%"@j;$"hah@s,v@j[$""8{$60}duq{$60}%a?%,%f*-40j@k+$"
  940. mjku\8htat*"ml0*jo7qbc2#0h*zq{$60}jj]?&(dus{$60}%a?%,0&*-40ji&(t8t(tl
  941. m"dqo8j#'l0*jo7qbc2'0r+$"jku\8ht@t,bq{$60}jj]?&*-a@*i&(t8t*f3(-+_
  942. mi02d!2{$60}486{$60}{$60}#{$60}8.!0t+{$60}p(*"{$60}0)!p\!j5&@8r!4**u18z(+(!]ck5)ch@t@
  943. m'v.m4v/)$){$60}#..d&jkus8xty8[v{$60}8xtz8[v-8xt[8zu48z($(!]ck55chd')
  944. m{$60}-{$60}%j1),yv+)$i{$60}-he#)$o{$60}'>/@xz1+86(y,8z(1(!]ck59cha0@'v.m5v.b
  945. m%r{$60}?8zu88rd'jku;8xtr8[uc8xts8[uk8xtt8zdrh&,@%&%@2$i*2dh),)tr
  946. m8v@i#pdpg3-c8-1512tp-2w-05dm,3dy,r{$60}@,3$z,s0z,3(@4$t-#0{$60}{$60}{$60}{$60}{$60}{$60}
  947. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}*m/-u-?4qm,j54]514a202i.3d5$54e4*lk&s<'-rlk!t\_.q"i!
  948. m14%00555545#3t4j3d)24ee.3$=05%9#h(*$"k$"r?_p(b{$60}>9+{$60}=j=n@8r{$60}v
  949. m9+{$60}1j5&@8z()(%-dl{$60}8@+v1,x6,@+v3f"j0*p(:0sj4"i{$60},8:8:0{$60}<a,5ra4
  950. m+5)"#0"m56.n6&/p!wcx&&d2v%c)$m{$60}"j0#))-{$60}"j1*-56,8k5%c:5&-6&.b
  951. m&:u28\epl{$60}*b((y18ze1h&,@5ra@jjd&h{$60}\@no^i{$60}""]_r#{$60}_v{$60}8j08@p_]@
  952. ma4"$0:(&(,g_d{$60}%@h{$60}"q0/{$60}&(-+_r-#v(,s_&&"%0(1!ad*b!b#&_y{$60}!8*({$60}
  953. m(,__r3"0%ldzl!(@s_^p""20<{$60}3)#=#s(,s_.&"@{$60})%{$60}r"#/_y%{$60}r,1"d/;)
  954. m#=#;(,s_&&"@@+$"(!ydl#:i#*!e(#9dl"vi$:!e(-mdl{$60}f-+@^,+p^.,{$60}^i
  955. m&:!e(#9dl!*i'j!e(-mdl{$60}f-,@^,,p^.-{$60}\@+v1@a42$1:dlh&6b'r!39+{$60}@
  956. mk2qer0?0&:{$60}{$60}l43p"-do9={$60}.r-#tk4%ek$!ekdae&&{$60}x8$<m4!\{$60}4dpm4d%-
  957. mh{$60}!'+5{$60}>{$60}$e.1$e214-4+5)%5:{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}
  958. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}!(j6^@986{$60}a(&b1&@@42@@>f6b{$60}+uo9?{$60}&(-+_z-#u8{$60}{$60}{$60}
  959. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}ho_ho6]et/k*rlk*x("0{$60}6#@{$60}+{$60}!8+uo9<d@t{$60}%@ad2@{$60}+ep
  960. m99eo9<c$1)#uj2r9;v5,@f5@a4"$089$h{$60}"q0"#2_\c{$60}!i#vj3h@to^*&&tb
  961. m#xtb#z5%;2,/c2,/j0"%1h5'h@8&1"9%)d8f1\k0]:d&($]ej<l@to]@&*5$
  962. m;1p/c1p/i45m'0^-'0^e1ft>#xt>#y{$60}#[a\/8*dfh&8@%&&i"b!/9:d-(-+_
  963. m8"{$60}@($92144z{$60}*d{$60}h@.51,h0^v"i{$60}j+_>"{$60}l8%b-){$60}](($9g:*ji{$60}(5%j=z@
  964. m9b"p92{$60}o9jd"a?vi{$60}(tg#z4&i{$60}>-*{$60}^,*0^b{$60}(7za/n&_*"c){$60}dp{$60}j#!l0*h
  965. mj0&b8"#/:"{$60}@9r0)$$6i{$60}(7zh*"q{$60}h7[c2h/j0&%_*"al0*hj0*f^^@@svbi
  966. m{$60}h7\j0"@!(7za/n@i;$"kb0/(!qic20/h@6@_r#/:"#u92{$60}49f"i{$60}8td#r#u
  967. m92{$60}49f!)3e1%4dz@j"0),{$60}*@qk$"a4"@8*g^q$"p!y$&r,1{$60}d/dxi4#i8(5{$60}
  968. m.*t=#^5{$60}c1t/k1x/z0"-'@^m'p_i{$60}(t?#v"d",!@l{$60}fi{$60})$&r,!@d/dxj6#e
  969. m"(5{$60}&*5%94"%19{$60}&yd;0{$60}n9'8"0)$"^m){$60}_){$60}k{$60}!8'bi{$60}j{$60}"a?r$_:d%h/^%
  970. m^h3[a?z$_zg[h{$60}{$60}@/rcf_*7\s20/d.188*(_o85gg<#_ra#w8{$60}"i{$60}:+_("q@
  971. mc2p/jm{$60}&k30/\{$60}%@j0"%1:glh&<@l&4@+v:i{$60}87]h*8d"3{$60}"h,*q{$60}htk#xtm
  972. m#z"g){$60}dp{$60}j##l0*n+{$60}\@'&f-+{$60}^i{$60}*#_kbl/a?j$^x;\k2p/h@"@_r#/:"#u
  973. m92{$60}49f!2154@(""m+{$60}_p!jd{$60}c30/8*xt#_#zj0"%1:e5h&@@l&4@+v:i!h7]
  974. mh*8d"3{$60}"h,*q{$60}htk#xtu#z"g){$60}dp{$60}j##l0*n-{$60}\@'&f--{$60}^i{$60}*#_kc(/a?j$
  975. m^x;\k30/h@"@_r#/:"#u92{$60}49f!23"u2156n,{$60}^i{$60}(5%j9v@:""p92{$60}o9j"!
  976. ml0*n,{$60}\@'&f-,{$60}^i!x7]j0"@_z({$60}cc$/a?j$^x;\k3{$60}/h@"@_r#/:"#u92{$60}4
  977. m9f!23"u204vn(@^m(p^%1:g(h&@@l&6b{$60}[t<#y5$ra#x(!1fj0t@to\@y&9@
  978. m5$]404p@8(4*a@n$#*deh&f%_h3_h@"i_yte:>c0^j8+y{$60}rp"jd{$60}g25iz.0,
  979. md/be_,4*l!zi{$60}*{$60}!(#\hyopxi0se"qae185%d.7f1m#ayd=,]va@ad#%0){$60}"
  980. #i4!@{$60}{$60}{$60}{$60}
  981. {$60}
  982. END
  983. BEGIN 640 SH
  984. m{$60}!-,ka-3r{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}"b{$60}dp9$z(!a?j$^z#_r+'zt/n8h{$60}!,#"bb
  985. m{$60}8t^$zd^h!.%^h3[j0&@{$60}$p,*{$60}"b{$60}*e8h!.%^h3[j0&@{$60}"{$60})*/{$60}$k5@38#a@
  986. m{$60}*f33"h3{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}@=q-,42@@=q.i{$60}4q1*(5@a&&&8jd{$60}a6.i7j{$60}3
  987. ma8"$@:d(hf!@jcbm"{$60}_i{$60}ht(#x5@k0d/z0"-"0^%89b@{$60}9%@b(j18&"in*{$60}3
  988. m(!<33.$3p</%(--(14q,(%9%4e,@,"xu,bxp,"{$60}m(,/3pb{$60}p."w!54<m.3,-
  989. m#0"i_xt,$xt%$xt&$xt'$zd{$60}c0t3j0"-#a.m#!/p{$60}r!:%*t+$_{$60}<k0t3t!>i
  990. m6z("("p3k10/k!4/(!(3j5>@%"{$60}2$zd{$60}c0t3c0h3('{$60}4l">m"!,-"1/p%*t.
  991. m$]{$60}/((d6(/<7(-(8((t8((d6(*$6+{$60}h3,{$60}-,]!-@72{$60}{$60}h@{$60}@2rbb_\d{$60}\{$60}*b
  992. m{$60}(x+$zd{$60}c0p38*d{$60}c0@3c0d3(#\3d{$60}-,,a7)6]{$60}5(#\3l/3)#?{$60},r5w0\r{$60}_
  993. m$y{$60}#3#(5r2#p],d)\/#)#={$60}#3#$5r3o0"*g_c0t33#$5h@"&{$60}h8$h@"&{$60}\db
  994. m\{$60}3))]{$60}'a0.%!$s4%*8"g0!ay@(@/q.p6:8#t"7)(/{$60}]r0gp.<d[t{$60}nf!-{$60}'
  995. mj?^-#1.i#<d-\":f{$60}it{$60}8>8"3-04r0#pw\4#t-l@/q.p(\d@\{$60}o)"?{$60}'r0wp
  996. m{$60}trz%$bf{$60}jd{$60}g0!a(#,5:,d-\{$60}-,d1088*t.$_{$60}!8*4$t!fb{$60}*!2k0!ar3sp
  997. m8*(!h%?)/o!8(+\6d{$60}%@(%h58*t(#zp)#qce{$60}k{$60}!b(t(#xp)#x7za/n@{$60}+d{$60}
  998. m89'z\{$60}/(t/:m"1.%^zt($phf^qai{$60}(7zi?mi8h7[h{$60}"m"{$60}^1^lbm"0^1^nx(
  999. m$]{$60}#[@d38*d!a?ji887[k0%ar3[0""""%j!!k0)ar2'0!z("(((6j0#))o#u
  1000. mo043r?_0=9b.{$60}&"-#q,@{$60}rb0):t{$60}#\d_t{$60}l@+2bp(*t/$ts<%<d$t!:m#q/)
  1001. m0={$60}/j5>-#q-,w!6n{$60}&"=!1-@j2>@%db82*g_c0x3i?jd^r{$60}2$vbh:"{$60}2$v{$60}z
  1002. m(,524d]2($]014y)3d<@4d5$25)%0u1)3tx@1de,12x-{$60}*e1h!9,$18z(,52
  1003. m4d]2("t@s55,5$e03$4@4d5$25)%0u1)3ty3($]&(%-!344@4u1214%-+@t{$60}
  1004. myok0{$60}n;[8*({$60}a@*]!1/)__{$60}$j"{$60}j*.8"i@+@{$60}y#m8*({$60}a@*]!1/)__{$60}*({$60}8h
  1005. mi@*i_yt%$^8"i@+@{$60}y#g8*g_a0j%"z8"rn#_\!b]{$60}&').o{$60}1r2k0\*0+p/_0
  1006. mzh8+y@m,qq;ha@je"\g_t{$60}(88"#t%ca@j0"%#z8"z,j]{$60}&&={$60}6#d"m#uj0"=
  1007. m{$60}&"={$60}&&f"yt{$60}8.8*y@nb{$60}+t{$60}8?{$60}&g0!@z-#u.*4"y0n%#>8-.*4"y0j%#*d{$60}
  1008. mh&"%^h3[("$hl!6%#b{$60}g*+{$60}%\{$60},@>a>e#b{$60}d**4/t{$60}ri_xt.$zech!<@$a-@
  1009. msd\@34%40t@@1d]2(%=)3$1#05)$#0"f#b{$60}g*+{$60}"t{$60}%@k6x/t{$60}%@k6t/q0r0
  1010. mz:8*h{$60}{$60}@y1>px*8+.*um#^4-j"#e%[#2h@"]{$60}&#p!it{$60}8>c0]:{$60}{$60}n6x/g0!a
  1011. m\{$60}3hr-#tk6@/r5/p#yt!8:dlg0!az.bi{$60})t{$60}888"(%h5j?^%#tqz%[t{$60}8-{$60}"
  1012. m& @_0!,cht/{$60}x8*d{$60}h{$60}{$60}@ca.m"!.l"1.$!pj%!b8'.*t(#^4&c0@/a02m
  1013. m"0_e!xt)#x4%j0"@8h4"a{$60}.e!@4'\!v@{$60}+$"d03f{$60}m{$60}"y@/f!-{$60}"y@6e!m{$60}"
  1014. mq@?&!dph&*t(#zp)#xt&#xp'#zt($zp)$xt$#xp%#r".$zt'$z#_((x3k043
  1015. mk{$60}83((x3k0h/k{$60}l/((x3k0@/k{$60}d/c0h/c{$60}l/8*t*#zp+#x4"a{$60}.@{$60}k$"f0,3
  1016. mr,{$60}%d/:@{$60};$"f0h/f0@/f00{$60}f08/b!#oh{$60}:q!(t$#\bq!(t%#qbm!@]i"(t&
  1017. m#y{$60}#[@</8*t&#zp'#x4"a{$60}.@{$60};$"f00{$60}b!#xh{$60}"q!)d{$60}8?{$60}#r-#vh{$60}"y%akp
  1018. m+:({$60}o0!av18:t{$60}g){$60}/{$60}2z,c0\{$60}"(r+d6&m#zr,c(3/08n1<:a0*y&!j%{$60}vp"
  1019. m{$60}*d{$60}c0-@j0"%!(4'k0x/k{$60}\/a0*${$60}z0$l0+p8z4't%^i{$60}*{$60}{$60}(.(:(-l9j0"@
  1020. m8"{$60}2*+{$60}zk0-@r4/0#jt$8,g"t{$60}>i{$60}*!@3%hhj76@&2{$60}2$v#"040@15a415).
  1021. m04p@4%)/1u)!32!&3u)-050-{$60}*t{$60}#\d$\*+)!?">j:n@&4p2$zg(h!e,$a/%
  1022. m6%1%4dy!3"!04d]'4d%-($q/040@15)23u(-{$60},-/34u!3d0@3d]4($9/54y$
  1023. m#0"d!*({$60}l0+p!yt{$60}8,cht/7(a{$60}2@{$60};'zr3kp!xbq^ldot{$60}2%!z({$60}h{$60}"q^it{$60}
  1024. m8/{$60}$z,c0]:d{$60}h&"%^h3[8$5#2$\{$60}b1i32{$60}#*'d1)4d5#5$]260{$60}%&t1)4@{$60}%
  1025. m&t0{$60},am,4p{$60}1&t-${$60}"l=1p{$60}k'4-!5{$60}#c'5194$4{$60}xqu4{$60}.,=0tq3{$60}%d30tq%
  1026. m05({$60}61-%6$e4{$60}(0>6{$60}"$'d-,4tp{$60}"qm{$60}{$60}(h>1$]3{$60}(h>4$%42{$60}#8'@"i{$60}(4$
  1027. mk08/k{$60}</&&d"d{$60}'(a0*${$60}zd@q030{$60}r{$60}j$zd@a02@{$60}+$"a0;(l0*h!0;p#*4&
  1028. m(!<3i0*d{$60}tr3&jd-("h38*d{$60}h&*%{$60}h0#.*t(#^4"a02m"0_e{$60}x4%8(3["h7z
  1029. m)ol8k08/9?j%^jt'#v7[a?n@{$60}+'zjlbq^h;za?m@(%d33#(;(%d33!$;h@$@
  1030. m2rb&",d{$60}t{$60}n*ho_hz12p^xk0{$60}jd!a0.i{$60}(4%3$$;h@$@2rb&"*d!a0.i_x4%
  1031. mj0"%!*fkh!n%^h3[k04/t{$60}>m!{$60}_){$60}i{$60}'j0&@{$60}"#b&b{$60}a*){$60}!8(4"i@(@)rbp
  1032. m+o{$60}l($xhl">e!1{$60}#(.d<i@(@)rbp&?{$60}7($xhl!*m;@_p!b"n&tq]&z4%${$60},@
  1033. m{$60}qve!/{$60}%j0t@*a.e{$60}dp&*"xz{$60}"0%,{$60}-,mqp@*!rir:{$60};a?j$^z4'h{$60}"b{$60}4p,
  1034. m*$125u@j+4u4("{$60}p,"w86%@m,#{$60}@(#$r.c{$60}p.c{$60}p02{$60}q,c,t-38w."{$60}jt\71
  1035. m("{$60}q,c,t-38w.#dp,3(s-#4v#0!$4e=8*bu-5"{$60}@,#{$60}mv%a8+3{$60}p("{$60}q,chp
  1036. m,#hp,$$@h@"m;{$60}\*2*dmd{$60}.]"1r=r1mhz.{$60}(d.zb%kt1')w1&\h0]zu<#zq=
  1037. m#zy>#r!i$z{$60}?i0c)/k{$60}"h{$60}bb{$60}+u>$yg)&\chx{$60}b0]*d@f<d;r*w-&\dmt{$60}*i
  1038. m()g)&\bb{$60}+uh#pf{$60}f<d;r.c@{$60}y#rj2"9r1o(f<d;r*({$60}o6x/\{$60}>9r1o(z-#t
  1039. mj0v9r1o(j0"9r1n$!v"i;j{$60}/(!<3y@2e!,4#d{$60}fi{$60}(4$j0u,*a.@_\by;@_0
  1040. m^h0&j13e!h4&j2{$60}@*a/&!m#w8*g]h!p@%q.i;j{$60}/(!<3j0t@*a-@q$e2.b{$60}{$60}
  1041. mk5p/k%t/kex/(&\3j5z@$r{$60}7$zd>h!t@%q-@($)95$53($92144-{$60}*t$#\d"
  1042. mk04/z0"p"zg&h!v%^h3[3$d=j0&@{$60}"#b&j("h{$60}"q^ht{$60}8<bq^ht!8<c).o{$60}$
  1043. mh@"@{$60}+'zg0!ar0#p1\do\{$60}[),){$60}$r3j0!jdog0!az+'zg0!a\{$60}3hr-#urkt{$60}
  1044. m8<dz\{$60}ohj3j={$60}&&i{$60})t!8<j]{$60}&')+_{$60}/j2^={$60}6&i.it"8:d{$60}g0-aj0"@887z
  1045. ma/l@,rbp{$60}6"ir:{$60}=3!(303h{$60}q5)23u(@0ta!3d=)3d<@1$e214-43u)9#0"i
  1046. m{$60}(4*(,h:h@$@2rc){$60}-{$60},i07p"*g^h{$60}"%!(0%j0&@{$60}(4&a{$60}>m!{$60}_){$60}jt%#^d{$60}
  1047. ml{$60}>i{$60}(4(3$d>i0:d!r#b&je2({$60},hl{$60}j%""!)'j4(({$60}8hy@;0{$60}n8'i0k0#*4&
  1048. ms00/i0?m!0^0tf"e{$60}j0#a?j$^z4$i{$60}6f""{$60})*/{$60}1l{$60}^b{$60}2{$60},*+{$60}(($xhl{$60}1,
  1049. m41y@j?^%"jeyh!y,$a,\tu1/4%!%1#x-{$60}*g_c0h38*g'h!z%^h3[(!4ha0*i
  1050. m{$60}:{$60}{$60}(.(:i?h%^_{$60})i?jd^z8"(!lhj0"@8*8"(!xhj0"@8"{$60}7$zd-("h3i0),
  1051. m&"@n.@{$60}@x1.i{$60}(t*$zg_c0p38*t.#zp/#x4"a{$60}.i{$60}(4$k04/\{$60}%@k00/r0*p
  1052. m3:dzh!\@%q.d!+$"t{$60}:i#2{$60}j$v"i(ht{$60}8*(!l0*={$60}&#p!,cht/7(a{$60}2i(it{$60}
  1053. m8.bi()t{$60}8.bi{$60}*!@a?j$^xj@{$60}*(!({$60}ph3/h>4$%42"{$60}{$60}h{$60}"$!*d!a0:e!j{$60}{$60}
  1054. i(.(:i?h%^]{$60}'j0"d!)$"8*{$60}{$60}a{$60}>d!^8'l?jd!.8$d0+){$60}-#py@9,2!\{$60}
  1055. {$60}
  1056. END
  1057. BEGIN 640 CONFIG.SYS
  1058. m{$60}!/_{$60}{$60}{$60}{$60}{$60}0@{$60}{$60}{$60}$){$60}{$60}{$60}!"@"{$60}{$60}0l{$60}{$60}{$60}$,{$60}{$60}{$60}!#0{$60}{$60}{$60}0x{$60}{$60}/\{$60}{$60}{$60}#_{$60}{$60}{$60}{$60}_p{$60}{$60}
  1059. m{$60}{$60}({$60}{$60}{$60}#_{$60}{$60}{$60}{$60}!{$60}{$60}{$60}{$60}{$60},{$60}{$60}{$60}#_{$60}{$60}{$60}{$60}{$60}{$60}0'{$60}{$60}{$60}$!0{$60}{$60}{$60}{$60}{$60}{$60}{$60}@,{$60}{$60}/\{$60}{$60}{$60}{$60}%{$60}{$60}{$60}{$60}
  1060. m_p{$60}{$60}{$60}/\{$60}{$60}{$60}#_{$60}{$60}{$60}{$60}_p{$60}{$60}{$60}{$60}0{$60}{$60}{$60}#_{$60}{$60}{$60}{$60}_p{$60}{$60}{$60}/\{$60}{$60}{$60}#_{$60}{$60}{$60}{$60}_p{$60}{$60}{$60}!#_____
  1061. m_qf3{$60}0${$60}{$60}{$60}{$60}&{$60}{$60}!!.@{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}!/\{$60}_p{$60}({$60}/_{$60}{$60}{$60}{$60}.!@{$60}%{$60}{$60}{$60}{$60}
  1062. m{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}_p#_{$60}{$60}3{$60}{$60}@,/{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}
  1063. a{$60}$$z{$60}"xz{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}
  1064. {$60}
  1065. END
  1066. BEGIN 640 CONFIG.EDIT
  1067. m{$60}1q{$60}'&0{$60}f2*3(jk'*#$t*:hbp</%h,-/3d9)1u52051)3tx@q41)5$]2(cj9
  1068. m(a$1r4y)5$e!3$e:24y'+bxn(@!?',@{$60}4ufr,3(x.hl@n"@p*;*x*#$i(*<@
  1069. m4ufr-c0{$60};1pl{$60}415ll(h,3@v*0">'){$60}!1+(q-c0@.b!(3k(w(#h@ab!,3ra$
  1070. m*2q(12a$*2q$220h1"dl2"0h2$xl,bd{$60}t!st{$60}5-0)+(b("{$60}@("{$60}@("{$60}@("{$60}@
  1071. m("{$60}@("{$60}@("{$60}@("{$60}@("{$60}@("{$60}@("{$60}@("{$60}@("{$60}@(@#v'%@"f2(1td5!1$e.1r!&
  1072. m245,1"!$15-#4de05$e/3e,n+bxb{$60}!@=o{$60}*!2;(qi$0zar!,3ra)*2q(12a)
  1073. m*2q$220h22dz@@{$60}u'2{$60}#f2(1td5!1$e.1r!(14q0($1!5$$n+bxb{$60}%8=a{$60}.!
  1074. m2;(pi$a..h%*lc"d,cj'($@d*$dl2bdz@cj"{$60}&4=z{$60}-4lc$@.b!-1+(p{$60}&t=
  1075. m3{$60}12lc{$60}{$60}g1vp!)db$<q/041)3d<@0t].1de'55)!5$e/3bp@54y)5"([q"a$
  1076. m52d[(bxn+b({$60}x!t4!8l@4ufr,3(x(*<@0t&r-#@v-"{$60}z(/x",34@.b#^$2)#
  1077. m3ty&24<n4ue3(bq5*$15*2q0*$-!*2{$60}z((dq.3{$60}p{$60}!4>>{$60}5#0;(t.3$u,b{$60}z
  1078. m()<w.#{$60}l,3{$60}@.b"7-s@q+#,r(#h@es<x,bpq.3,@.b">-c4t-cd{$60}11[<!8%)
  1079. mlc&d,3{$60}zes0y-#0pjdfk,2s&*,hh(d-/3d9)1ry365,b+$dl,2di.h({$60};!y{$60}
  1080. m!i<w.#{$60}l,"{$60}z()<w.#$l1%4@.b"7-s@r+#{$60}@.b">-c4t-c8{$60}e!zd!i<w.#{$60}l
  1081. m,"{$60}z()<w.#$l,"{$60}z()<w.#(l,3dr(#h@gc8u-#ds{$60},h>"{$60}>+(,(h-s@s*:\q
  1082. m(*<@f2(10t].1de'+e-94sh@3$]!1"!%4e)/4b,b.\(h-s@p*3j{$60}{$60}.l>;{$60}>9
  1083. m(a')3e-404q,24y'(,g.t-74($-/1$4n+bxb{$60}!$?t{$60}>!2;)#0:hr-3:d0t&j
  1084. m,c4vjc$u.h<@03j7($dl02{$60}z((({$60}&q\t"(tu-s{$60}p{$60}%4?f{$60}b9(i/!p\4@pt].
  1085. m1de'(,5$251/4b([4ud[hs,r*3lb4$%'12([q"bu*"a4js$ik3$x*:hq*0"$
  1086. m'_p(f2+{$60}p,#{$60}p,#{$60}p,#{$60}p,#{$60}p,#{$60}p,#{$60}p,#{$60}p,#{$60}p,#{$60}p,#{$60}p,#{$60}p,#{$60}p,{$60}b
  1087. m{$60})l?8{$60}e"le2j,3<zbr!"l40@ir!"ld0{$60}sq_$"8%)le2d0cj9(,dh(b{$60}@(jk$
  1088. m*,(h3$\h22fj0t$i*2ps*3lb("{$60}b.t1))"a)*3j"{$60}.x?*{$60}j+($fsl52j,3@@
  1089. mir"!($jr2:14jc$w.idz@@{$60}=((p*f2+{$60}p,#{$60}p,#{$60}p,#{$60}p,#{$60}p,#{$60}p,#{$60}p,#{$60}
  1090. mp,#{$60}p,#{$60}p,#{$60}p,#{$60}p,#{$60}p,{$60}b{$60}"<@\{$60}j--s<p,{$60}!2(%0+f2#(*"(3$1$1$1$1
  1091. m$1$1$1$1$1$1$1$1$1$1$1$1$2(l4jhs*3l{$60}=""x"u@dlldh(b{$60}@(jk$*,(h
  1092. m3$\h5*i2*:i#02di+#,i{$60}(8@'{$60}r9("(2(cm8)#lbdi$b{$60})h@@{$60}ra020zbt$d
  1093. mlb(bis,r,#{$60}{$60}ir#d#)d@6"0[(i$b{$60},8@2{$60}v+($$dlb(1(b"g((t@-#,p,"{$60}z
  1094. m((d@,cdp,{$60}#e(*p-br!!)+(bd2(@ir"-(#0v,#{$60}@.b")(#(y,#{$60}{$60}!"$0#hl@
  1095. m022r(blb(*<@c2{$60}t.#{$60}p(#h@b2{$60}r,c{$60}p{$60}",a={$60}z+($$dlb(m(b"g((t@-3{$60}p
  1096. m,"{$60}z((d@,c(p,{$60}{$60}_(=@.br!!)+(b$r(@ir!2lc{$60}@.b")(#(y,#{$60}{$60}82$\#xl@
  1097. m022r(i,b(*<@5+(q(#h@4k(p(#h@b2{$60}r,c{$60}p{$60}({$60}ah{$60}^+($$dlb)1(b"g((t@
  1098. m-3(p,"{$60}z((d@,c(p,{$60}"f(000br!!)+(b("*p022rqr@q,rd@ir"--3dp,"{$60}z
  1099. m((dr.3{$60}p{$60},0a#a"+($$dlb)3(b"g((tq,#4q,"{$60}z((dr,c{$60}p{$60},\a:!")(#(y
  1100. m,#{$60}{$60}z2',$%*r4jhq(#h@br!2l;(q.""g(%*r,{$60}#[(3{$60}1br!4je*q1""g(%*r
  1101. m,{$60}{$60}!(i01c@{$60}l(o@14k)2js$@.b"+(%*s,""g(%*r,3<@.b"+(%2j4k%$(*<@
  1102. m4k)$ju0{$60},b)<$hx{$60}2r+{$60}$e2r5*hq."{$60}z((l@5+%$(*<@5+(q{$60}%<b)!-2lc{$60}@
  1103. m.b".{$60}'\bb!-4le2k,3@@.b"+(%2s,2"g(%2rm2@h1*lq*:tq."fl,3bj,0"+
  1104. m(np34k(p(#h@c@"=(e{$60}4br!-1+(p(*<@-38p,{$60}#((k04f2*3pt].1de'55)!
  1105. m5$e/3b!(05,@54y3059%1"!#2$%.1t53$2({$60}["(8%4$dlb)9(cj%(e-!5d4@
  1106. m0ta!3d=%4z{$60}h62].*2([020{$60}{$60}"-\%8l@022r(dxb(*<@-38p,{$60}{$60}+(x85c3$p
  1107. m-3$p{$60}"@cx!69(i/,051%4bp@1%5$12xb(#h@@"{$60}z((x{$60}62-$%h%)ld-!jc$s
  1108. m-""d($-!jc$t,3i6ll(h22dz2+*u*%:m,38i.drr5jm(k#$v{$60}&lcj!:722q(
  1109. mk#$pjdpz@cj.{$60}'\c#!=3)+)8)#i#lc{$60}z342rjs${$60}c2-p%tbr2$4h5*i2*0"a
  1110. m(]07br!(l;(q,c@@ir{$60}x,c{$60}p{$60},{$60}c.!b9(a,1$1$1$1$1$1$1$1$1$1$1$1$1
  1111. m$1$b.p#6(yp8@4fr,*0r.id@2"0h2"q)*3l{$60}\2,{$60}&9d@r"a34"0l,sfkpra(
  1112. m)"a(+$di*2d{$60}]r-d&8({$60})r3(&9dbu5-%(#{$60}m.2!&3u(@1$e'250l(,3%s"p@
  1113. mtl74u=+..r!?/4%"3u)4(cl{$60}320l&id@r"@b$q$1$1$1$1$1$1$1$1$1$1$1
  1114. m$1$1(bq2jc,i.p!u)){$60}:f2!8)#o**"(j("(ljra#lc{$60}ijc$l,2d[(i$b.d.r
  1115. m*$.r,"d{$60}br3t&j%!)#j+022r(b(@ir{$60}v.#{$60}p{$60}+dd6!n+($$dl;(b,"(@kr!!
  1116. m)+.r(cdb(*<@6"2rr2a8)*i!)"ps*3j)-c@p,{$60}#?)+p;br!!)++'*#(p*2"g
  1117. m(%@dll@h(b{$60}bje@d+#,i.hdv.#{$60}p{$60}/hd(!r+($$dlb)?(b"g(%@dle,d.hdw
  1118. m-3{$60}p{$60}!dea!r+($$dl[$b("*o022sl<<h,3,i(*<@-c@p,{$60}{$60}t)>@<er!,3ra4
  1119. mje(ijd-!+,4h6"0iks(u-0!{$60})4p=f2!8)"(@(@!?);{$60}=f2(3$1$1$1$1$1$1
  1120. m$1$1$1$1$1$1$1$1(cl{$60}cb44'idbu5-%($-54e-/4b!54"]$3u=.(%1/($u/
  1121. m5d4@0u524t]2("{$60}@("{$60}@(@"])7@>f2+(s\w%/4a/344l(,/,tcu&25)35"!0
  1122. m04=%("{$60}@("{$60}@("{$60}@("{$60}@("{$60}b{$60},8ew!z94u{$60}d{$60}/8e0!^9(blo+3u004=%+"#2
  1123. mq=35tlx]141)5"p@4su3059%+"!1/5%5250@("([{$60}/pei!^.{$60}"8f"""9(%@d
  1124. m.r(j(b{$60}z()db$q$1$1$1$1$1$1$1$1$1$1$1$1$1$2([{$60}%,f;"!3ld-!jc$t
  1125. m-#i,lc$u.hm(lc$r.:=,lc,q.e.r0t&j,c(t.hdy,c{$60}p{$60}((ft""9(l5.5$52
  1126. m($e.251)04p@1$e214-43u)9+"!-05@@,34@0ta!4e,@("({$60}l28t(9db+2tm
  1127. m+2lm+2tm,2tm+2tk("{$60}@("{$60}@("{$60}@("{$60}@("{$60}@("{$60}@("{$60}@("{$60}@(@#&)i@af2!3
  1128. m4"0zf2!34"0[(i&1(@#d)opa@4fr4z13jdpzf<<hpba)*2d[.h(zf2*1(@#\
  1129. m)f{$60}bc3$p,3{$60}p(#i!)++(*$$d+#$u*0{$60}@)\0bbr##*$$d*;,q-b"g($$dld$d
  1130. mjl<h,"d@.b").#dp,{$60}!#)r@c@4fr,*1,.i=3jddlqbc**$$d+$fj,2pq*2d@
  1131. m.b""{$60}'@gc".9(,@h(a,1$1$1$1$1$1$1$1$1$1$1$1$1$1$b+%*j,rd[(b{$60}@
  1132. m("{$60}b(#h@b3<v,#{$60}{$60}ir?p(ydbq4y415(@4$%42%,@4t5005)!5$5$($)9($-/
  1133. m34u!4rp@34%8(#,p(@#6)u0df2(m+2tm*rtm+2tq+2tm+2lm+2tm,btm+2tk
  1134. m+2tm+3,@("{$60}@("{$60}@("{$60}b{$60}.hgn"29(%-0)#j94u{$60}d.r*1d2({$60}#2@<)4$dlb(b
  1135. m.h%)le.d4zi,.d$dld$djl<hpba)*2dz@@{$60}[*({$60}ebr#)*$$d+#$ill<h,"d@
  1136. mir!!)++(*$$d+,,h020ijs$i(#h@b3dv,#{$60}{$60}=2cd)8%)lc&dpra!)"dzb\hh
  1137. m020l22pq*;+'*#{$60}iit$dll@h020l2:lq*:hb+"*jrba!)"q)jc$i{$60})<h2":"
  1138. m.id@020[(i$b.htq,#$p,#i!)++(*$$d+#,p*0#1**pf@4fr,:3#*$$d*3j+
  1139. mrba!)"q)+#$ilb(l(j=!)++(*$$d+$fk,2fjqr@p*:k**$$d+$fj,2d{$60}ur@0
  1140. m)x({$60}^2@:)xo#*$$d*;,s,b"g($$dld$djl<h,"dzb3$p,#$p{$60}"{$60}i)">!2;(p
  1141. mi$pzeu.j22s&*,hh020l2:hq+#$i*3j".hdy,3{$60}p{$60}%(i=">+(%-9lc$r.""g
  1142. m()x@0t&j,c4v+#{$60}l,"pp+#{$60}@.b#^"2!!+%@@.b"),3{$60}s,#{$60}{$60}<rg8)y<w.#,l
  1143. m,"{$60}z()x@0t&j,c4v(#h@6++"*#<x,2d{$60}gbd\*$$dlb(b.h%)lc4q,b"d(#4q
  1144. m,ji8js$z022r022jqrc"*$di*3j"{$60}*0ih"b.{$60}*hi!"dz{$60},di#bf9(i/214u/
  1145. m5de.1r!/3$0@0d%#2u50+bxn(@#m*1{$60}igs$l1%4l,34zf#$l(e,p.d-/3d9)
  1146. m1ry365,n0d%+(@{$60}2*a(if2(1pd%#2te.1r!54"!/3$0@0t].1de'+e-94rxn
  1147. m+b({$60}.rh4*9@q+")2,#i#3ty&24<n4ue3+d)!2su#3ty&24<n4ue3(cj@,0!5
  1148. m*a8if2(1p41*55-424y'($1!5$$n+bxb{$60}(8j&"f!2;)#0:hq,s0@i"!#0:hq
  1149. m-#$z5k+"*$di.dbrm2a6k3$p*3i,le:k2*pq,{$60}"6*ahietdl2*pq-ji,.h({$60}
  1150. mo"h<*9db$=-!5de.1r!.15<@0t].1de'+e-94rxn+b(z342r,{$60}#[*axibr!3
  1151. m6;(q,c@@ir#^$")#3ty&24<n4ue3(bq5*$15*2q0*$-!*2"d(%{$60}h0t&j,c4v
  1152. m*2{$60}z((dq,#4t,{$60}{$60}e*r{$60}ies<x,"pq,"{$60}z()<w.#$l,s(@.b"7-s@r+#$y,r{$60}z
  1153. m()xv-30v.0!5*r(i@4fr,:0q,#j7-#dt-#"j2:lq+,8hrb@b0t].1de'+e-9
  1154. m4r(l22pq*2dz@@!\*r0ies<x,"pp(#h@es<x,2q$52{$60}z()<w.#(l,"{$60}z()xv
  1155. m-30v-@"2*r4ies(u,bpp(#h@es(u,rpq.3({$60}o"lf*9<w.#{$60}l,c4r(#h@es<x
  1156. m,2pp(#h@es<x,bpq.3,@.b">-c4t.38{$60}]blh*8l@pb@w.#,iks$@ir"9(a%#
  1157. m3ty&24<n4ue3.b!3059%($524d]2(r([pb@w.#{$60}i.du$ljlq{$60}!dl+"f--3<p
  1158. m,"{$60}z()db$<1/3d4n("#04d534r!!($m%62({$60},bpn*:$@020zbr!!)+(b(b"g
  1159. m(#$p-30r{$60}#@l,"f.{$60}%pl:"f#(#$r."pq+"+204u,24y+($1%5de#12!.54u"
  1160. m15(b{$60}(0ls"f#(#$r.2pp+"+204u,24y+($q!4u0@3$]'24-!3"!"04y+(@"r
  1161. m+#{$60}j@r{$60}q,s{$60}l,"pb4d5!3"u424u%($-,3t-+($1%5b,q("@r-34]3de,*2({$60}
  1162. mx"r4*h,@,3,q+#{$60}l(e)%04pm5$e-12!#3$]#2r!$158c,b{$60}h,c4u/4y)3"db
  1163. m{$60}{$60}xm^"j#(#$s,bpp+")214%,+51)344@0tq/0tl@1$56(s,@*#(u-3u.24pi
  1164. m(@{$60}\+5pk@r{$60}q,s,l,"pb4d5!3"u424u%($-,3t-+($1%5b,t("@r-34]3de,
  1165. m*2({$60}82w{$60}*x,@,3,t+#{$60}l(d1%1d%53%0@0t5.5%5262{$60}h,"ty.2db{$60}(,m)"r#
  1166. m(#$s-2pp+")$149!54q4(%e%05(@*#{$60}m.3di(@"f+8@l@r{$60}q,s8l,"pb1$5&
  1167. m055,5"!-3ty42"{$60}h,2tq,bdb{$60}-$m["r#(#$s-rpp+")$149!54q4($1!5$4@
  1168. m3t8@34].5$@@*#$m,s$i(@#s+5{$60}m@r{$60}q,s@l,"pb1$5&055,5"!(3u52("@p
  1169. m+3(s*2({$60}%rzt+8,@,3,y+#{$60}l(d1%1d%53%0@34e.551%("@p+34y*2({$60}.rx8
  1170. m+h,@,30p+#{$60}l(d1%1d%53%0@4t5#3ty$("@p+34y*2({$60}:2y\+h,@,30q+#(l
  1171. m(d1%1d%53%0@1$%9($]&(%=%14l@*#$m-rpq/=-53bdb{$60}),nx"z#(#$t-"pq
  1172. m,c@l(m/4tlg.qsh@24y)5$e!3"!$25)%0u1/4edb{$60}+pn1"^#(#(r-"pq,cdl
  1173. m(m/4tlg.qsh@15a%0r!314%20t@@4$%42"({$60}[2zh+x,@,38p+#{$60}l(l,q,c@@
  1174. m0d%.2s$@4u1!4e0@1e)%12!004=%("a.4dtn-"db{$60}!xo##"#(#$v,2pp+"+#
  1175. m,3(x($)!3dlq($5.1"!&4d5%(%!!1t4k,2{$60}h3bxr-34i(@!/+w{$60}p@r{$60}q-c,l
  1176. m,"pbps$r."!"04y+,"!%3d0@1e)%12!004=%*s$@*$xn,c4u*2({$60}?r_4,(,@
  1177. m,38u+#{$60}l(l,q,c@@3$%35"!!3$q/5t5$($92144@0d%.2r{$60}h3bxx*2({$60}l"\x
  1178. m,8,@,38v+#{$60}l(l,q,c@@1de24u0@55-!0dq%(-+%u2!"04y+("a.4dtn,"db
  1179. m{$60}.{$60}og#&#(#$v-rpp+"+#,3(x($q!4u0@55-!0dq%(-+%u2!"04y+("a.+c(u
  1180. m-2db{$60}!{$60}p{$60}#*#(#$v."pp+"+#,3(x($%04"!34$%#12!43u{$60}@4$%'12lq("a.
  1181. m+c$y,bdb{$60}#pp9#*#(#$v.2ps+"+#,3(x(#@p+4-/3"!30u)%14x@tl?"r2!#
  1182. m3tq/4b({$60}:##(,h,@,3<q+#,l(l,q,c@@.#{$60}m0t],($-54e-/4b#2q\+)($-/
  1183. m3$]2(@"4,"ps@r{$60}q-s(l,rpbps$r."{$60}t,"u#3tp@4t-2145.(-+'pld@0t],
  1184. m3u(b{$60},{$60}pd#.#(#$w,rps+"+#,3(x(#0p+4-/3"!"3u)$15(@tl?"r2!#3tq/
  1185. m4b({$60}[##t,x,@,3<t+#,l(l,q,c@@-#{$60}m0t],($-54e-/4b#2q\+)($-/3$]2
  1186. m(@{$60}<,5@t@r{$60}q.3,l,"pbps8t($)!3dlp($5.1"!&4d5%(%!!1t4k,2{$60}h3bxr
  1187. m-34i(@!-,2{$60}u@r{$60}q.30l,"pbps8t($9)4e-4(%5304),12#2q=4@0d%.2r{$60}h
  1188. m3d]232{$60}p*2({$60}?c&$-8,@,3du+#{$60}l(l,v-"!,05-4(%5304),12#2q=4@0d%.
  1189. m2r{$60}h3e)-+c(u-2db{$60}*tqz#6#(#$y-rpp+"+#-c0@3$%35"!!3$q/5t5$($92
  1190. m144@0d%.2r{$60}h3bxt*2({$60}w#%,-h,@,3dx+#{$60}l(l,v-"!!4%{$60}@4u!!0t4@5$]0
  1191. m(%!!1t4k,2{$60}h3bxq.3(i(@{$60}{$60},k{$60}v@r{$60}q.3dl,rpbps8t(%-#4d5%3b#2q\+)
  1192. mh$-/3$]2(@{$60}d,a0w@r{$60}r,#{$60}l,rpbps8t($)/4d1%4b#2q\+)($-/3$]2(@!(
  1193. m,g@w@r{$60}r,#$l,rpbps8t($-54e-/4b#2q\+)($-/3$]2(@!u,mpw@r{$60}p+#0l
  1194. m(d1%5de#12!{$60}.b!$4de615(@5%e012{$60}h,c4u/4y53$pi(@":,d{$60}x@r{$60}q+#4l
  1195. m(d1%5de#12!{$60}.b!$159)0t4@041$4d534r({$60}pc*d.(,@,bpv+")$159)0t4@
  1196. m0#h@4t5#3ty$05)9($%$1%)%4u,b{$60}-xr"#f#(#,l-rpb1$5624-%(${$60}z($9,
  1197. m04=3(@{$60}+,vpy@r{$60}t+#0l(d1%5de#12#!.b!$4de615(@5%e012{$60}h,c4u/4y5
  1198. m3$pi(@{$60}p,]{$60}y@r{$60}u+#4l(d1%5de#12#!.b!$159)0t4@041$4d534r({$60}6#,t
  1199. m.h,@-bpv+")$159)0t4@p3h@4t5#3ty$05)9($%$1%)%4u,b{$60}'0sf#j#(#<l
  1200. m-rpb1$5624-%(,$z($9,04=3(@"a,_pz@r{$60}x+#0l(d1%5de#12#".b!$4de6
  1201. m15(@5%e012{$60}h,c4u/4y53$pi(@#&,v{$60}[@r{$60}y+#4l(d1%5de#12#".b!$159)
  1202. m0t4@041$4d534r({$60}[s/$.x,@,3{$60}l-bpb1$5624-%(,(z(%-%0t].1$%262!!
  1203. m1$1215-3(@{$60},-"@\@r{$60}q,2pw+")$159)0t4@pch@1dq!1u,b{$60}#htc#r#(#$r
  1204. m+#0l(d1%5de#12##.b!$4de615(@5%e012{$60}h,c4u/4y53$pi(@!@-/{$60}\@r{$60}q
  1205. m,rpu+")$159)0t4@psh@1$5624-%($%$1%)%4u,b{$60}(dt5#v#(#$t+#8l(d1%
  1206. m5de#12##.b!314-/3d1!4ed@041$4d534r({$60}ic2x/8,@,34l-rpb1$5624-%
  1207. m(,,z($9,04=3(@#4-!p^@r{$60}q-bpt+")$159)0t4@q#h@1%))5d52(%194$4@
  1208. m*#(u-3u.54q,*2({$60}^c2{$60}/h,@,3<l-2pb1$5624-%(,0z($1%5de#12!!1$12
  1209. m15-3(@{$60}c->0^@r{$60}q."pv+")$159)0t4@q#h@4t5#3ty$05)9($%$1%)%4u,b
  1210. m{$60}${$60}u2#^#(#$y+#<l(d1%5de#12#$.b!&3$%'4r({$60};c6l/x,@,c{$60}l-"pb1$56
  1211. m24-%(,4z($12259%4b!465!%("@r-34]3e5,3"db{$60})0u$$"#(#(q+#4l(d1%
  1212. m5de#12#%.b!$159)0t4@041$4d534r({$60}o35t0(,@,c(l-bpb1$5624-%(,4z
  1213. m(%-%0t].1$%262!!1$1215-3(@#:-=a{$60}@r{$60}r,rpw+")$159)0t4@q3h@1dq!
  1214. m1u,b{$60}{$60}@v/$&#(#(t+#0l(d1%5de#12#&.b!$4de615(@5%e012{$60}h,c4u/4y5
  1215. m3$pi(@{$60}n-j!!@r{$60}r-2pu+")$159)0t4@qch@1$5624-%($%$1%)%4u,b{$60}%<v
  1216. m!$*#(#(v+#8l(d1%5de#12#&.b!314-/3d1!4ed@041$4d534r({$60}=#9h0h,@
  1217. m,c<l-rpb1$5624-%(,8z($9,04=3(@"b-lq"@r{$60}r."pt+")$159)0t4@qsh@
  1218. m1%))5d52(%194$4@*#(u-3u.54q,*2({$60}r#8p0x,@,cdl-2pb1$5624-%(,<z
  1219. m($1%5de#12!!1$1215-3(@#q-i1#@r{$60}s,"pv+")$159)0t4@qsh@4t5#3ty$
  1220. m05)9($%$1%)%4u,b{$60}{$60}xw^$.#(#,q+#<l(d1%5de#12#'.b!&3$%'4r({$60}/#=<
  1221. m1(,@,s(l-"pb1$5624-%(,@z($12259%4b!465!%("@r-34]3e5,3"db{$60}&(w
  1222. mp$2#(#,s+#4l(d1%5de#12#(.b!$159)0t4@041$4d534r({$60}bs<d18,@,s0l
  1223. m-bpb1$5624-%(,@z(%-%0t].1$%262!!1$1215-3(@"h-xa%@r{$60}s-2pw+")$
  1224. m159)0t4@r#h@1dq!1u,b{$60}-8w[$6#(#,v+#0l(d1%5de#12#).b!$4de615(@
  1225. m5%e012{$60}h,c4u/4y53$pi(@#\-u!&@r{$60}s-rpu+")$159)0t4@r3h@1$5624-%
  1226. m($%$1%)%4u,b{$60}"4xm$:#(#,x+#8l(d1%5de#12#).b!314-/3d1!4ed@041$
  1227. m4d534r({$60}0c@81x,@,sdl-rpb1$5624-%(,dz($9,04=3(@!p.'q'@r{$60}t,"pt
  1228. m+")$159)0t4@rch@1%))5d52(%194$4@*#(u-3u.54q,*2({$60}ecc@1x,@-#$l
  1229. m-2pb1$5624-%(,hz($1%5de#12!!1$1215-3(@"_.$1(@r{$60}t,bpv+")$159)
  1230. m0t4@rch@4t5#3ty$05)9($%$1%)%4u,b{$60}-pxj$b#(#0s+#<l(d1%5de#12#*
  1231. m.b!&3$%'4r({$60}"cd,28,@-#0l-"pb1$5624-%(,lz($12259%4b!465!%("@r
  1232. m-34]3e5,3"db{$60}#{$60}y<$f#(#0u+#4l(d1%5de#12#+.b!$159)0t4@041$4d53
  1233. m4r({$60}63g428,@-#8l-bpb1$5624-%(,lz(%-%0t].1$%262!!1$1215-3(@!v
  1234. m.3a*@r{$60}t-rpw+")$159)0t4@rsh@1dq!1u,b{$60}*0yg$j#(#0x+#0l(d1%5de#
  1235. m12#,.b!$4de615(@5%e012{$60}h,c4u/4y53$pi(@#*.0!+@r{$60}t.2pu+")$159)
  1236. m0t4@s#h@1$5624-%($%$1%)%4u,b{$60}/,y9$n#(#4p+#8l(d1%5de#12#,.b!3
  1237. m14-/3d1!4ed@041$4d534r({$60}$#k(2x,@-3$l-rpb1$5624-%(,pz($9,04=3
  1238. m(@{$60}^.bq,@r{$60}u,bpt+")$159)0t4@s3h@1%))5d52(%194$4@*#(u-3u.54q,
  1239. m*2({$60}9#j03(,@-3,l-2pb1$5624-%(,tz($1%5de#12!!1$1215-3(@"-.o1,
  1240. m@r{$60}u-"pv+")$159)0t4@s3h@4t5#3ty$05)9($%$1%)%4u,b{$60}*hz6$v#(#4u
  1241. m+#<l(d1%5de#12#-.b!&3$%'4r({$60}v#j\38,@-38l-"pb1$5624-%(,xz($12
  1242. m259%4b!465!%("@r-34]3e5,3"db{$60}/xz($z#(#4w+#4l(d1%5de#12#..b!$
  1243. m159)0t4@041$4d534r({$60})sn$3h,@-3@l-bpb1$5624-%(,xz(%-%0t].1$%2
  1244. m62!!1$1215-3(@!$.^a.@r{$60}u.2pw+")$159)0t4@sch@1dq!1u,b{$60}'([3$^#
  1245. m(#8p+#0l(d1%5de#12#/.b!$4de615(@5%e012{$60}h,c4u/4y53$pi(@"8.[!/
  1246. m@r{$60}v,2pu+")$159)0t4@ssh@1$5624-%($%$1%)%4u,b{$60},$[%%"#(#8r+#8l
  1247. m(d1%5de#12#/.b!314-/3d1!4ed@041$4d534r({$60}wcmx4(,@-c,l-rpb1$56
  1248. m24-%(,\z($9,04=3(@{$60},/-q0@r{$60}v,"pt+")$159)0t4@t#h@1%))5d52(%19
  1249. m4$4@*#(u-3u.54q,*2({$60},cq{$60}48,@-c4l-2pb1$5624-%(-{$60}z($1%5de#12!!
  1250. m1$1215-3(@!;/*11@r{$60}v-bpv+")$159)0t4@t#h@4t5#3ty$05)9($%$1%)%
  1251. m4u,b{$60}'@\"%*#(#8w+#<l(d1%5de#12#0.b!&3$%'4r({$60}icql4h,@-c@l-"pb
  1252. m1$5624-%(-$z($12259%4b!465!%("@r-34]3e5,3"db{$60},p\t%*#(#8y+#4l
  1253. m(d1%5de#12#1.b!$159)0t4@041$4d534r({$60}]3pt4x,@-s{$60}l-bpb1$5624-%
  1254. m(-$z(%-%0t].1$%262!!1$1215-3(@{$60}2/9a3@r{$60}w,2pw+")$159)0t4@t3h@
  1255. m1dq!1u,b{$60}${$60}]_%.#(#<r+#0l(d1%5de#12#2.b!$4de615(@5%e012{$60}h,c4u
  1256. m/4y53$pi(@!f/6!4@r{$60}w,rpu+")$159)0t4@tch@1$5624-%($%$1%)%4u,b
  1257. m{$60}(\]q%2#(#<t+#8l(d1%5de#12#2.b!314-/3d1!4ed@041$4d534r({$60}k#th
  1258. m58,@-s4l-rpb1$5624-%(-(z($9,04=3(@#:/8q5@r{$60}w-bpt+")$159)0t4@
  1259. mtsh@1%))5d52(%194$4@*#(u-3u.54q,*2({$60}{$60}#[p58,@-s<l-2pb1$5624-%
  1260. m(-,z($1%5de#12!!1$1215-3(@{$60}i/e16@r{$60}w."pv+")$159)0t4@tsh@4t5#
  1261. m3ty$05)9($%$1%)%4u,b{$60}$8^n%:#(#<y+#<l(d1%5de#12#3.b!&3$%'4r({$60}
  1262. m=#x<5x,@.#{$60}l-"pb1$5624-%(-0z($12259%4b!465!%("@r-34]3e5,3"db
  1263. m{$60})h^@%>#(#@q+#4l(d1%5de#12#4.b!$159)0t4@041$4d534r({$60}ps[d5x,@
  1264. m.#(l-bpb1$5624-%(-0z(%-%0t].1$%262!!1$1215-3(@#@/da8@r{$60}x,rpw
  1265. m+")$159)0t4@u#h@1dq!1u,b{$60}{$60}x_k%b#(#@t+#0l(d1%5de#12#5.b!$4de6
  1266. m15(@5%e012{$60}h,c4u/4y53$pi(@{$60}t/q!9@r{$60}x-2pu+")$159)0t4@u3h@1$56
  1267. m24-%($%$1%)%4u,b{$60}%t_=%f#(#@v+#8l(d1%5de#12#5.b!314-/3d1!4ed@
  1268. m041$4d534r({$60}>c_868,@.#<l-rpb1$5624-%(-4z($9,04=3(@"h/sq:@r{$60}x
  1269. m."pt+")$159)0t4@uch@1%))5d52(%194$4@*#(u-3u.54q,*2({$60}sc^@6h,@
  1270. m.#dl-2pb1$5624-%(-8z($1%5de#12!!1$1215-3(@#w/p1;@r{$60}y,"pv+")$
  1271. m159)0t4@uch@4t5#3ty$05)9($%$1%)%4u,b{$60}!1{$60}:%n#(#dq+#<l(d1%5de#
  1272. m12#6.b!&3$%'4r({$60}0d#,6x,@.3(l-"pb1$5624-%(-<z($12259%4b!465!%
  1273. m("@r-34]3e5,3"db{$60}&a{$60},%r#(#ds+#4l(d1%5de#12#7.b!$159)0t4@041$
  1274. m4d534r({$60}d4"47(,@.30l-bpb1$5624-%(-<z(%-%0t].1$%262!!1$1215-3
  1275. m(@"n0/a<@r{$60}y-2pw+")$159)0t4@ush@1dq!1u,b{$60}-q{$60}7%v#(#dv+#0l(d1%
  1276. m5de#12#8.b!$4de615(@5%e012{$60}h,c4u/4y53$pi(@{$60}"0<!=@r{$60}y-rpu+")$
  1277. m159)0t4@v#h@1$5624-%($%$1%)%4u,b{$60}"m!)%z#(#dx+#8l(d1%5de#12#8
  1278. m.b!314-/3d1!4ed@041$4d534r({$60}2$&(7h,@.3dl-rpb1$5624-%(-@z($9,
  1279. m04=3(@!w0>q>@r{$60}q,#{$60}l-"pb1$5624-%(-dz($12259%4b!465!%("@r-34]
  1280. m3e5,3"db{$60})y!4%^#(#$p,2pu+")$159)0t4@v3h@1$5624-%($%$1%)%4u,b
  1281. m{$60},a!m%^#(#$p,bpv+")$159)0t4@v3h@4t5#3ty$05)9($%$1%)%4u,b{$60}.9!
  1282. m&&"#(#$p,rpw+")$159)0t4@v3h@1dq!1u,b{$60}!5"?&"#(#$p-"pt+")$159)
  1283. m0t4@vch@1%))5d52(%194$4@*#(u-3u.54q,*2({$60}/$+@8(,@,3{$60}u+#4l(d1%
  1284. m5de#12#:.b!$159)0t4@041$4d534r({$60}9d)$88,@,3{$60}v+#8l(d1%5de#12#:
  1285. m.b!314-/3d1!4ed@041$4d534r({$60}a$*h88,@,3{$60}w+#<l(d1%5de#12#:.b!&
  1286. m3$%'4r({$60}lt(,8h,@,3{$60}x+#0l(d1%5de#12!;.b!$4de615(@5%e012{$60}h,c4u
  1287. m/4y53$pi(@#:0g!b@r{$60}q,#dl-2pb1$5624-%(%lz($1%5de#12!!1$1215-3
  1288. m(@{$60}$0]1b@r{$60}q,3{$60}l-bpb1$5624-%(%lz(%-%0t].1$%262!!1$1215-3(@{$60}b
  1289. m0sac@r{$60}q,3$l-rpb1$5624-%(%lz($9,04=3(@!10yqc@r{$60}q,3(l-"pb1$56
  1290. m24-%(%pz($12259%4b!465!%("@r-34]3e5,3"db{$60}'a#{$60}&2#(#$q,rpu+")$
  1291. m159)0t4@7#h@1$5624-%($%$1%)%4u,b{$60}*)#9&2#(#$q-"pv+")$159)0t4@
  1292. m7#h@4t5#3ty$05)9($%$1%)%4u,b{$60},!#r&2#(#$q-2pw+")$159)0t4@7#h@
  1293. m1dq!1u,b{$60}.]#+&6#(#$q-bpt+")$159)0t4@73h@1%))5d52(%194$4@*#(u
  1294. m-3u.54q,*2({$60}%d2098,@,3$w+#4l(d1%5de#12!=.b!$159)0t4@041$4d53
  1295. m4r({$60}0$3t98,@,3$x+#8l(d1%5de#12!=.b!314-/3d1!4ed@041$4d534r({$60}
  1296. m7d189h,@,3$y+#<l(d1%5de#12!=.b!&3$%'4r({$60}c42\9h,@,3(p+#0l(d1%
  1297. m5de#12!>.b!$4de615(@5%e012{$60}h,c4u/4y53$pi(@"t1"!g@r{$60}q,c$l-2pb
  1298. m1$5624-%(%xz($1%5de#12!!1$1215-3(@#>1(1g@r{$60}q,c(l-bpb1$5624-%
  1299. m(%xz(%-%0t].1$%262!!1$1215-3(@#\1.ag@r{$60}q,c,l-rpb1$5624-%(%xz
  1300. m($9,04=3(@{$60}k14qh@r{$60}q,c0l-"pb1$5624-%(%\z($12259%4b!465!%("@r
  1301. m-34]3e5,3"db{$60}%)%l&b#(#$r-2pu+")$159)0t4@7sh@1$5624-%($%$1%)%
  1302. m4u,b{$60}'q%%&f#(#$r-bpv+")$159)0t4@7sh@4t5#3ty$05)9($%$1%)%4u,b
  1303. m{$60})i%>&f#(#$r-rpw+")$159)0t4@7sh@1dq!1u,b{$60}*]%w&f#("(b+"(b+"(b
  1304. m(#h@cr{$60}p{$60}-y%0&j#("++15).04p@1$5624-%($y534)%4bp@,"ts,"(l(b(l
  1305. m(b(@.b"/(#${$60})t9!:h,@(l1!62!/1b!7145+($-/1$53.b(l(c$]tu5.+"{$60}r
  1306. m/<u/3bp@,sw45453+"{$60}t/==%1"p@-3w42%524rpb(#h@cr{$60}r{$60}$=&0fj#("(v
  1307. m/<9222p@-sw3050l(#{$60}]54y+3d]73b({$60}?49%:h,@(c{$60}]pdq!0tl@,3w$+l=2
  1308. m05d@,cw"3%5%(#,]s"["3%4@-#w'4d5%3b(@.b"/(#,{$60}k49&:h,@(c4]s,=2
  1309. m3b{$60}v/<3#64x@-sw#64x@.#w2140@.3w,td5$(#$p/=!54b({$60}w49':h,@(c$q
  1310. m/<s055(@,3(]pe)73b{$60}q,sw914p@,30]s,=262{$60}q-3w72$e412({$60}$d=(:h,@
  1311. m(c{$60}]rt523d%,($y/3bu$25-++"{$60}q/<m%4dy!3"!$25-+(%5.250l(b{$60}z((\@
  1312. m-{$60}!"1tej@r{$60}b,cu#3ty33tq%+"{$60}s/4y53$pl(#0]4d%-1$e32rp@,c4u/45-
  1313. m4%19(@!m1tij@r{$60}b*%1(25,@1d5!5%5212!.3u0@6454($e-4$q%345.5$5$
  1314. m*2({$60}h$=+:h,@(e1(12!$159)0t4@3e5-0d52($9/4b#+15).04p@1$5624-%
  1315. m4r(@.b"/(#4{$60}r$=,:h,@(d]2(%1(12!53de4($y534)%4b{$60}h1e)/32{$60}p*2!&
  1316. m3u(b{$60}.!'36j#(")34$5#24%,($1%5de#15,b{$60}!5(3fj#("+&3u(@rt523d%,
  1317. m($y/3bu$25-+($1%5de#15,l(%1(12!54u5!3"(@.b"/(#8{$60}0ta/:h,@(e-%
  1318. m0t].1$%262!!1$1215-3(%1/(%5312!72$5.($]014y)3d<b{$60}%5(4&j#(")!
  1319. m($-(04y.14pb{$60}'q(46j#("+&3u(@rt523d%,($1)4tl@1$5624-%4rpb(#h@
  1320. mcr{$60}w{$60}*e(4fj#("(q,c@@345!3e,@1$5624-%($a!4r!!(,/-q"!214%,+51)
  1321. m344b{$60}+=(4vj#(")#3$]#2r({$60}_4bd:h,@,38r+#{$60}p,"pp,s(l,c{$60}w+#(u-2pr
  1322. m,#$l,#$s+#(t,"pp,#8l,34w+#{$60}p,"pp,#(l,c,r+#(p."pr-#,l,#dv{$60}{$60}{$60}{$60}
  1323. {$60}
  1324. END
  1325. BEGIN 640 ACE-CHARSET
  1326. m{$60}"{$60}\9fyn8&(\{$60}{$60}{$60}{$60}/{$60}8^9cx{$60}8&!\9f9f?{$60}{$60}{$60}{$60}#qf8&8\{$60}{$60}8&/f9f9cx{$60}{$60}{$60}{$60}\
  1327. m9gy@/@{$60}<-c!x,#{$60}p{$60}{$60}{$60}{$60}/f9f/@9\8&!\9f9f9@{$60}8{$60}#@8&!@\{$60}{$60}8{$60}#@8&!f8\
  1328. m8&!f;'a\9@{$60}x&!@8&!@\{$60}{$60}{$60}{$60}8w=_:v,{$60}{$60}{$60}!\9f9f9@{$60}{$60}{$60}#qf9f8\{$60}{$60}{$60}{$60}?&9f
  1329. m?&!@{$60}{$60}{$60}^9f8^!@8{$60}{$60}'qf8&!@{$60}{$60}{$60}{$60}/&{$60}\!gp{$60},##\,#{$60}v'{$60}{$60}{$60}{$60}&9f9f8^{$60}{$60}{$60}{$60}
  1330. m9f9f/!@{$60}{$60}{$60}!c:w\v(@{$60}{$60}{$60}&8\&#qf{$60}{$60}{$60}{$60}9f9f/@9\{$60}{$60}!^#!@p?@{$60}\,#{$60}p,#{$60}\
  1331. m{$60}{$60}!@,!@,!@,{$60}/{$60}p,#{$60}p,/{$60}{$60}('#9c{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}'x{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}8&!@8
  1332. m{$60}{$60}{$60}8{$60}&9f9@{$60}{$60}{$60}{$60}{$60}{$60}9f;_9o]f9@{$60}8/f{$60}\!gp8{$60}&)f#!@p9d8{$60}/&8\.&=f/p{$60},
  1333. m&#{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}p8,#{$60}p&{$60}p{$60},!@,#{$60}p8,{$60}{$60}{$60}9cs_/&8{$60}{$60}{$60}{$60}8&'x8&{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}8
  1334. m&#{$60}{$60}{$60}{$60}!^{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}&!@{$60}{$60}{$60},&#!@p8{$60}{$60}\9fyv9f8\{$60}!@8.!@8&'x{$60}/&8&
  1335. m##!@?@{$60}\9@8<!f8\{$60}{$60}8.'f9_!@8{$60}?f!\!@9f/{$60}{$60}\9f!\9f8\{$60}'yf#!@8&!@{$60}
  1336. m/&9f/&9f/{$60}{$60}\9f8^!f8\{$60}{$60}{$60}{$60}&{$60}{$60}{$60}&{$60}{$60}{$60}{$60}{$60}{$60}8{$60}{$60}{$60}8&#{$60}.&#!@,!@.{$60}{$60}{$60}{$60}?@!^
  1337. m{$60}{$60}{$60}{$60}<!@,!@p8<{$60}{$60}\9@8,&{$60}{$60}8{$60}#{$60}8#{$60}{$60}{$60}{$60}{$60}{$60}{$60}&#qf?f9f9@!\9f9\9f9\{$60}#qf
  1338. m8&!@9cp{$60}>&qf9f9l>{$60}!^8&!x8&!^{$60}'y@8'a@8&{$60}{$60}/&9@;f9f/{$60}!f9f9^9f9f
  1339. m{$60}#p8&!@8&#p{$60}'@p,#{$60}ql.{$60}!f;'ap>&qf{$60}&!@8&!@8'x{$60}8w=_:v-c8p!f=gy^
  1340. m;f9f{$60}#qf9f9f9cp{$60}?&9f?&!@8{$60}{$60}\9f9f9cp.{$60}'qf9gqx;&8{$60}/&9@/{$60}9f/{$60}!^
  1341. m&!@8&!@8{$60}&9f9f9f9cp{$60}9f9f9f8\&{$60}!c8v-k?w=c{$60}&9f/!@\9f8{$60}9f9f/!@8
  1342. m&{$60}!^!@p8,&!^{$60}{$60}x8&'{$60}8&{$60}x{$60}&!@8{$60}!@8&{$60}!p&!@.&!ap{$60}'/;s@{$60}{$60}{$60}{$60}{$60}{$60}"!pv
  1343. m8v-c?p{$60}{$60}{$60}{$60}{$60}8&{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}/__{$60}{$60}{$60}{$60}&!@8&!@8&!@8&!c__q@8&{$60}{$60}{$60}{$60}!\?&!@8
  1344. m{$60}{$60}{$60}{$60}^/@8&!@8&!@?'p{$60}{$60}{$60}!@8&/cx{$60}{$60}{$60}{$60}&!@8'q\8&!@8&!cx^!@8&{$60}{$60}{$60}{$60}/__
  1345. m&!@8&!@8__\{$60}{$60}{$60}{$60}v?w]_/ap({$60}{$60}@</g\^'{$60}@{$60}&#s;_wx8/{$60}{$60}('#y_?qp^{$60}{$60}{$60}\
  1346. m?gy^?cp{$60}{$60}#q^9f9^/{$60}{$60}!{$60}p9l>'!@{$60}!xs,/ppx_x{$60}{$60}{$60}{$60}#/g8v-@{$60}8&'x8&{$60}!^
  1347. m{$60}{$60}{$60}8{$60}'x{$60}&{$60}{$60}{$60}/&9f/{$60}{$60}{$60}{$60}{$60}#,s#,ss,ps,zi5je6j5:i5\/#p\/#p\/{$60}{$60}{$60}qls
  1348. m?s{$60}8{$60}!@\?a@8&!@{$60}&!@8&'x\&{$60}{$60}{$60}$#!_?s{$60}0{$60}{$60}{$60}(#/[^#{$60}@{$60}pyf1d9^=p___
  1349. m_\/yp9g!_y^?@yf9f8/____#f9^9p__y^<&9f9g!____pyf!g\'_x\g/a\_/
  1350. ms____\&9f<'y@y^?@yf9f9g_y__'y^?gp__y__'y^?f9py^?f9.'@yg_q^?g
  1351. my^?gp____yr(@)2<____@yf9f9g____#f9f9p____x.9f8.?g___p9f9p?gy
  1352. m__^#f9^?g____\.?p_f#_\_/{$60}\_/r>/___^9f9f9p?___yf9f</g____g)2{$60}
  1353. mr=w___^9p^?#f?___yf9f<'y@___@?/gsx'_p\_/s\_/p___g\_g\_g\_\/s
  1354. m\_/s\\/_]^/)g/____________^!____________y^?gy___y_^9f9g_____
  1355. m_yf9{$60})d{$60}f9g_y\&?p_f#y_^=f?/gsyfy_\.9p\>8f<#_\^?/_______sy\_/
  1356. ms^?s_\_g\_/sy\___yg#{$60},.9____y^>!y^?_________y^?/____@?______
  1357. m_____^?g___\^?/gsy__pyf1b9f9p__gy\?gy^>!_\.9^?//gx'_pygyx_f9
  1358. mp__y\>&9@/gy_x&?@_gyf</_pyf?@yf9p_^!f?/gy^?g_\.9f<.9f</_pyf9
  1359. mp?f9p____^?__^?_____y___y^?/\>?/g\_g\?___x'_@?___x_g\_gsyx__
  1360. mpygy\^?_y__/y_/______^?#f8&9f9g_@yf9@yf9@__#f9^?gyg#_x>3f9f9
  1361. mdx?_@9^?ay^?@?^!gy^'gy^?_\.9gy&9f</_f9f9@9f9f?_#y^?gy^?#_^'s
  1362. m\_/sd\?_f9.'cx>3f?^?gy^?gy^!_yr(@)2<g)s_f8f!@9&9f?_#f9f9f9g#
  1363. m_x.9f8.?gy__pyf9f9g#\?^#f9f#ay.9_\.9g\/yf</_@>?gy^?gy_^9f9f9
  1364. mf9g#_yf9f9f9p^?_g)r<e("(g/^9f</gpyf9_yf9f</gy^?_@?gsy\^?@?_q
  1365. my^>/y^?q_^?gy__gy^?_c^?g\>?gc_^,)#'_______?cr9r<g(#_____y^?_
  1366. m______\{$60}{$60}/___^?gy^?gy^?gy^?g{$60}{$60}#gy^?____@x.?gy____p<'y^?gy^?g
  1367. mx.#____gy^<'!____^?gy^#@y^?gy^?g!p?gy^?___\{$60}{$60}.?gy^?gyp{$60}{$60}____
  1368. mr8"{$60}@,'c]__wx\&{$60}p>/w_^?#){$60}"!y\/_]^/!@(#cp?__px&!@8'#___#@9f9
  1369. m@</__osydx>/g__as,\#sqp!_____,&)r<g_y^>!y^?_@?__y_^!_^?__\.9
  1370. mf</_____,s/,s#,ss,q5je6j5:i5j@\/#p\/#p\/__sds(#/y__gpx'gy^?g
  1371. 9_^?gy^>!p^?__^_/@(#/[___]_,!{$60}?/w_p{$60}{$60}
  1372. {$60}
  1373. END
  1374. BEGIN 640 CP
  1375. m{$60}&!,f&!#p@{$60}{$60}h@),#f"b{$60}87za/n@_\bq^m#[f*{$60}{$60}3{$60}phh@&-,v"i,z!@a?j$
  1376. m^zd!h{$60}!,#"@{$60}h@"i3:!@a?j$^zd!h{$60}{$60}@"2cp!*u-8&{$60}x8{$60}"i4:!da0*${$60}sbm
  1377. m"{$60}_e{$60}h4$k0d/y0.%!6"$^pj%^b;[&*t&#v7za?jm!p]e^x7[h{$60}"q^jk(l?j&
  1378. m^h7[8*t$#zp%#sci{$60};{$60}!b$qf8*d{$60}c05@c09@($y@k04/t{$60}>m!{$60}_){$60}y{$60}[((e@
  1379. m({$60}\hp{$60}#p{$60}tq_8jt%#]{$60}ik00/r0/0(jd!h{$60}{$60}@9f"e^j3[a0b$":d"h{$60}{$60}@9f"e
  1380. m^j3[a0j$"r{$60}x86"i]*!@h@(@#f!@55-!1t4z($-0($923tu&24q%(%1/1de,
  1381. m10t@("{$60}@("{$60}@0u{$60}@1e)/349)3$4q($923ttr("xn+d923tw.(%1/1$e2#0"e
  1382. m"*0)a?j$^ze2({$60},hd{$60}>e"*0)3"qba0:e"j0+a?j$^ze7({$60},hd"6m{$60}{$60}_)/_{$60},
  1383. mi08@!bbe"j0+3"qb()1a\{$60}>e!b{$60}&*#a@({$60}%b3%!aa0<@#6*e!r{$60}&**4&({$60}8h
  1384. m8*t%8/{$60}#j0!@j>>@82{$60},8*4*i{$60}l@#&"i\z!a({$60}q@(#1@r0wpy$@@-&#)#=#y
  1385. m:,e1t{$60}>i_xt&8#a@r='p]<e!t{$60}>i_xt%8*e9r<'p]<e9\{$60}+)v1a@su9%4e=2
  1386. m251%("({$60}(b{$60}h62].+t$o42d_({$60}"e"j0+a?j$^r{$60}m*&"e{$60}j0#a?j$^z4$i{$60}6f
  1387. m!b{$60})*+!$\{$60}ff!r{$60},*)#ll#e@a0z$#ze,h&*b{$60}b{$60}.8*4.i{$60}^b{$60}b{$60}.8*eah&*b
  1388. m{$60}b{$60}.8&#%4e)/4b!/4$5.24y'($9)3$4@(@{$60}b#0"i;:!bh@),#f#&24q%($1!
  1389. m5$$@15)23u(a#0"i{$60}:{$60}{$60}a0r$#:t$#zp%#sci{$60};{$60}!b,4,t{$60}3$#?{$60}e($xhl"&e
  1390. m#*0-(&9@i?jd^x4(a{$60}d@u&*m!f#0"n8,t{$60}+f#4r'8f"ir:!b({$60}=@8#s35$]0
  1391. m4$5$/@t{$60}((e@h{$60}"q^o{$60}&f5%cr-#vf*j@{$60}(0&l0cp"\dzt{$60}3(a{$60}:(r-#qi{$60}:q
  1392. m")u18_{$60}$z,c0]:e1h&.%"h0+(!5c(#aa8{$60}"e"*0)({$60}q@h/_(l0c0^y@xz0jp
  1393. i^vd*c11cc11c.*d*[11cc11cj2{$60}@'v#.%&/0]j4*i{$60}l@#&"i#2{$60}?8&{$60}{$60}
  1394. {$60}
  1395. END
  1396. BEGIN 640 RM
  1397. m{$60}&!,;v!#pj(!a?j$^z#_r+'zt/n8h{$60}!,#"bb{$60}dp'8*(!c3%@j3&@8(7za/ni
  1398. m{$60}:{$60}{$60}3{$60}ph{$60}*({$60}j4n@8(7za/ni{$60}:{$60}{$60}({$60}dh\{$60}2m2v!@.&{$60}{$60}a/l*a?hf^qbm!@]e
  1399. m^h7zk0</9?n%^z{$60}{$60}l?jjr+'zaoj%^v"m!0_0+zt$#\d"l"bi@j!@3{$60}5@u5-!
  1400. m1t4z(%)-($9)3$4q($9)3$4r("xn+b!&24q%s@t{$60}j0&@{$60}(4"a{$60}.e{$60}j0#($q@
  1401. mi?jd^x4$a{$60}4%^_{$60}a($xhl!t@)v&e!*0%a?j$^r{$60}m*){$60}#(/)@y@+0{$60}n8#3*m@
  1402. m8*ggh&!,&&{$60}\4u1/4%!%1#x-{$60}*d'h&$@&&"e!*0%(!a@j22@84p88,524d]2
  1403. m($%45$5-4%1)3d<@5$\@4d5-3u9%("({$60}(@t{$60}j3r@82{$60}88*4$i{$60}4@&&"i3*!a
  1404. 93!a@td5-3u9)3d<@1de,12{$60}b{$60}"(n+bx-{$60}{$60}{$60}{$60}
  1405. {$60}
  1406. END
  1407. BEGIN 640 UUENCODE
  1408. m{$60}&!,hv!#pj(!a?j$^z#_r+'zt/n8h{$60}!,#"bb{$60}dp'8*(!c3%@j3&@8(7za/ni
  1409. m{$60}:{$60}{$60}3{$60}ph{$60}*({$60}j4n@8(7za/ni{$60}:{$60}{$60}({$60}dh\{$60}2m2v!@.&{$60}{$60}a/l*a?hf^qbm!@]e
  1410. m^h7zk0</9?n%^z{$60}{$60}l?jjr+'zaoj%^v"@_x1@r+'z\{$60}w).o{$60}$r2_0\x1@3'-@
  1411. mi&"b_\chl?j=wf+0]^{$60}"d{$60}r]w&+)+-{$60}%j0"=w&)@k04/t#6m!{$60}_){$60}k{$60}nj;:@
  1412. m8$p%8-5304=%.b!5545.0t]$12!&24q%,2!&24q%,b{$60}n+bx@1de,1<x-{$60}#bm
  1413. m"{$60}_i+h4&k0d/z6.%!zd!h{$60}"%{$60}h0#i0*d{$60}r!,8*7zi/n%!(0%!?op%"!382"{$60}
  1414. m89{$60}#(!qay@+0{$60}n8#3/1@8*dqh&$@&&"e!*0%(!a@j5"@84p88,524d]2($%4
  1415. m5$5-4%1)3d<@5$\@555%3d-/1$4@(@{$60}b#0"i:*!a(!a@i02d!2{$60}88*ezh&%,
  1416. m&ᖩ.0t]$24y'($9)3$4@(@{$60}b+bxn#0"e!*0%a?j$^ze2({$60},hd{$60}%@a0p@
  1417. mfv&e#"{$60}&*&"i{$60}(4*a0nis*!a({$60}5@i02d!87za/l@;v"iwj!b({$60}5@j0t@'6{$60}@
  1418. m&f*0^zg7h&$@!6!@0d5'24x@-c0p({$60}#{$60}#45.1{$60}t{$60}i0h%"_{$60}4h{$60}"q".8(t{$60}+f
  1419. m":8*t{$60}+&"\8*&&"i+j!ca?j$^x4(a{$60}fe!j0'i@p@"2cp";{$60}'a0j$"ts>83a@
  1420. mj0"%#:d!a0x@6f*p!z4-r2v0]1@(i{$60}zi#9g>8n8.i0w){$60}/{$60}7(,abc=ybj=z@
  1421. m8h7za/ne#j{$60}{$60}h@$@#"@h8{$60}{$60}{$60}{$60}*("j0"=5v+*$/jb{$60}(8/(-yal{$60}vf#yu78n8-
  1422. mz.{$60}#d.t8"*0.k5=b2dh@r&*9wf+(k5=b"@h*"h4/k5ab2di*2@4/(,abf=yb
  1423. mr*u88@h*a0^m66(**bhi{$60}p4/(,abf=ybr*u98b#(8ig>8lb$#ba@*3_0{$60}zg{$60}
  1424. 08!ai(,e!l{$60}%@r5np{$60}ff{$60}8{$60}{$60}{$60}
  1425. {$60}
  1426. END
  1427. BEGIN 640 UUDECODE
  1428. m{$60}&!,<6!#p@{$60}{$60}h@&%^h3[h/_(l?k0^yb@{$60}$p,**("3{$60}e@h@&-,v"i,z!@a?j$
  1429. m^zd!h{$60}!,#"@{$60}h@"i3:!@a?j$^zd!h{$60}{$60}@"2cp!*u-8&{$60}x8{$60}"$^pj%^b;[&*t&
  1430. m#v7za?jm!p]e^x7[h{$60}"q^jk(l?j&^h7[8*t%#]{$60}uk00/r0*p+jf$h&!,!v#5
  1431. m4t%'13h@555$14-/1$4@1de,13$@1de,13(@+bxn($9)3$7.#0{$60}xk0@/z3r%
  1432. m!jt)#^eea0>i{$60}:{$60}{$60}a0*${$60}z4"i{$60},@3f"e^j3[a02$!07[\!0@)f$@4v&0{$60}r#j
  1433. m8.8"t{$60}+f{$60}ts"8&"i_z!@(!i@i02d!2{$60}:8*dch&%,&f#%4e)/4b!!5%1%35!4
  1434. m24y'(%1/(%551$5#3t1%($9)3$4@(@{$60}b#0"i.z!a(!i@i02d!2{$60}:8*e-h&%,
  1435. m&f!5541%0t]$24y'($9)3$4@(@{$60}b+bxn#0"e!*0%a?j$^ze2({$60},hd{$60}%@a0p@
  1436. m;f&e#"{$60}&*&"i{$60}(4*a0n-1&2-160@1f20{$60}6"b{$60}*w89,e"\{$60}*b!j{$60}{$60}n=adw<)a
  1437. mt.7hr,{$60}&d/*@{$60}.{$60}'d{$60}*@_xp%8*wa9,d@t,vb{$60}+w>9,dpd,3).+#{$60}z.{$60}#d/!,
  1438. msf%"14=)3b!b96=i;b"m!6#p{$60}"!?8b"08b"r8jgbh&2%^h3[j5<@{$60}rb0%zt{$60}
  1439. m#\d_\{$60}8@wv),>f$@$f.i5r{$60}#*+#pa0t@1f2p'2!j8y{$60}*j2z@8b{$60}:8$p$8jw8
  1440. m9/{$60})(-ac(#%d3{$60}1bi0t@!ba,>f%705).24y'.b!"040@0ta!4d%#5$524r!)
  1441. m3b!,24y%.r!)1ty/4de.1r!,24y%+@t{$60}+{$60}5@,{$60}%@h@"]xf3p"2!v8iwb9.c0
  1442. m\f{$60}i?\e@d{$60},8:6"h*7_)0;{$60}"f&#)6[#zf$f{$60}8*({$60}o>)d\{$60}/ht/b]x&3)+-{$60}!
  1443. m8*dlg>)dj5"=xv2i{$60})wd9&"iqz!b(!i@j>*@9"{$60}:8*g9h&),&f!%6%1204-4
  1444. m24y'($9)3$4@(@{$60}b+bxn#0"e^j3[(!i@j>z@8b{$60}:8&{$60}z($-!3dy/5"!/4$5.
  1445. m.r!32te04$e.1r!42$e3($9)3$4n#0"i2z!c(!i@j>*@9"{$60}:8*eeh&,@&f{$60}@
  1446. m-&!(r0wp!b{$60}t8$pk8zgbh&2%^h3[:,e9\{$60}7)v?{$60}!8"{$60}m*&#/5d525u))5$4@
  1447. m15a)4u1)3d<@1de,12{$60}b{$60}"(_({$60}{$60}{$60}j0"-:6.mv&30{$60}aa@(*]cd{$60}%@c=adhcs)
  1448. m+i{$60}"he2&#z({$60}y{$60}^0{$60}aa@+&ec,!"]v63p!b"o8y{$60}(8*g_c6ecj0"=v63ht-u@
  1449. mr2"p{$60}ca@r6"p!3ci(!a@r6#0!!bi{$60}&#)p/#xl{$60}(x8,g;d{$60}%@..f@&&"b{$60}*{$60}{$60}
  1450. m(.5cs-add/a@o=ed"@j-!f#ho=ed2di*2bd##09@f=edr+w99{$60}h*"@j-!f#h
  1451. mo=ed2dhi#pt&8)g99,b]v63h:fij*<"-!f"]v63h*3\-!f"9v63(8*g9h&2%
  1452. m^h3[k=adh{$60}"f#2{$60},*&{$60}{$60}{$60}*u$9/{$60}".&"b{$60}(8.()qdl!#)"ac0"zy%9.{$60}-&-{$60}#
  1453. m()qdd{$60}bi_xu$9$r&9,d-\!+)"o{$60}.i@[@8k{$60}%g=ady@y,8v2-162f#jd{$60}g=ad
  1454. mx{$60}#p{$60}aa@k41dr0%@i0h%"_{$60}4h{$60}"q".8(t{$60}+f":8*t{$60}+&"\8*&&"i/*!ea?j$
  1455. ;^x4(a{$60}fe!j0'i@p@"2cp";{$60}'a0j$"tr<9#a@{$60}{$60}{$60}{$60}
  1456. {$60}
  1457. END
  1458. BEGIN 640 CRC32
  1459. m{$60}&!,;v!#pj(!a?j$^z#_r+'zt/n8h{$60}!,#"bb{$60}dp'8*(!c3%@j3&@8(7za/ni
  1460. m{$60}:{$60}{$60}3{$60}ph{$60}*({$60}j4n@8(7za/ni{$60}:{$60}{$60}({$60}dh\{$60}2m2v!@.&{$60}{$60}a/l*a?hf^qbm!@]e
  1461. m^h7zk0</9?n%^z{$60}{$60}l?jjr+'zaoj%^v"m!0_0,jt$#\d"l"ni@j!@3!a@u5-!
  1462. m1t4z($-20s,r($9)3$4q($9)3$4r("xn+b!&24q%s@t{$60}.*t(#^d%a0:m"0_i
  1463. m8h4'j0&@{$60}(4"a{$60},@3bbp):4"i{$60},@3&"e^j3[a02$!07[\!$@)v&0{$60}r#z8.8"
  1464. mt{$60}+f{$60}tr]8&"i[z!@(!a@8#s35$]04$5$/@t{$60}j0^@82{$60}88*4$i{$60}4@&&"i)*!a
  1465. m3!a@q5)23u(@4d5!1$e.1r!&24q%("({$60}(@t{$60}i02d!87za/ni4b{$60}#*){$60}!8(4,
  1466. m($)ai0p@!ba@h@.i{$60})4bra#[a0j%"r#)8;{$60}na0vb"{$60}8-)b(f(r8d)b60&*4b
  1467. m2;>%(j4c21v%(z4d2<&%)*4e202%)<k0v4q/8:fuh&&%@(2!hb*i"b!1**d@
  1468. mc;]aj:v@82{$60}%8*4$i{$60}4@!6"iqj!a({$60}5@&&!#4d,s,b{$60}](#$r,s0u-c<x.3{$60}@
  1469. m1d]2("({$60}(@t{$60}i0h%"_{$60}4h{$60}"q".8(t{$60}+f":8*t{$60}+&"\8*&&"i!:!ba?j$^x4(
  1470. 8a{$60}fe!j0'i@p@"2cp";{$60}'a0j$"ts)83a@{$60}{$60}{$60}{$60}
  1471. {$60}
  1472. END
  1473. BEGIN 640 WC
  1474. m{$60}&!,@6!#pj(!a?j$^z#_r+'zt/n8h{$60}!,#"bb{$60}dp'8(xo8(pp8*(!(#%@kb]@
  1475. mk#!@8{$60}{$60}{$60}c4-@j4.@8(7za/ni{$60}:{$60}{$60}3{$60}ph{$60}*({$60}j5v@8(7za/ni{$60}:{$60}{$60}({$60}dh\{$60}2m
  1476. m76!@.&{$60}{$60}a/l*a?hf^qbm!@]e^h7zk0</9?n%^z{$60}{$60}l?jjr+'zaoj%^v"m!0_0
  1477. m+zt$#\d"l"bie*!@3!a@u5-!1t4z(%=#($9)3$4q($9)3$4r("xn+b!&24q%
  1478. ms@t{$60}.*t(#^f7a0:m"0_i8h4'j0&@{$60}(4"a{$60}.$4"":82!.*+{$60}vi0*d{$60}r!>8*7z
  1479. mi/n%!(0%!?op&2!,8;{$60}&i5{$60}p{$60}n90d{$60},@'v'f{$60}m{$60}"y@-,t6"e4,d"d{$60},@;f)@
  1480. mj12@82{$60}88&{$60}\tu1/4%!%1#x-{$60}*dth&$@&&"e!*0%(!a@j4f@84p88,524d]2
  1481. m(%)%041)3d<@1de,12{$60}b{$60}"(-{$60}*4$i{$60}6%^h3[j5(@{$60}rb0{$60}6"%#"".82!p8:4,
  1482. m({$60}8h({$60}9b($!b8*f7h&*%^h3[j?z@{$60}*8,({$60}dha0j$"_{$60}&(*1a3'!a8*d{$60}h@n5
  1483. m0,h0^x5,8*d{$60}h@n5(,h0^v"@{$60},0*t{$60}%@idryev+)#={$60}.yd#0"n9!t{$60};f0m{$60}"
  1484. myd/)(;{$60},r2#p'\d-\!o)"?{$60}7x{$60}'p%:(!yd30#^9%t{$60}of1m{$60}'yd=,zv&b{$60},c$
  1485. m"i"]&*5(90j%2){$60}*ydg0!n9*t{$60}+f2x9,8*){$60}j08@*&*b1*d&("abhdbi!r{$60}h
  1486. m8j4$i{$60}4@!6"i#2{$60}=8&"@bx2{$60}h&*$@2!1**f+h&(@!6"i("{$60}=8&{$60}8h@"u('5{$60}
  1487. me2#hbbd#t/08h@"u)'5$e23hbbd#t/08h@"u*'5(e2chbbd#t/1@j8.@8h4$
  1488. 7a{$60}6b"[4@e4#*$/d@!f)@/%1/5$%,/@{$60}{$60}
  1489. {$60}
  1490. END
  1491. BEGIN 640 GREP
  1492. m{$60}&!,=6!#p@{$60}{$60}{$60}{$60}{$60}{$60}{$60}*(!a?j$^z#_r+'zt/n8h{$60}!,#"bb{$60}dp-8*(!c3=@j3>@
  1493. m8(7za/ni{$60}:{$60}{$60}3{$60}ph{$60}*({$60}j5&@8(7za/ni{$60}:{$60}{$60}({$60}dh\{$60}2m46!@.&{$60}{$60}a/l*a?hf
  1494. m^qbm!@]e^h7zk0</9?n%^z{$60}{$60}l?jjr+'zaoj%^v"i{$60}(t%8(t&8(t'8(t(8(t)
  1495. m8*t%#]{$60}xk00/r0.p,:f9h&!,'f!54t%'13h@1u)%4"!;+5m)75m675t@6uy=
  1496. m4u5"4u126r1=($9)3$53#0{$60}xk0@/z6v%!jt)#^eka0>i{$60}:{$60}{$60}a0*${$60}r!28*{$60}{$60}
  1497. ml?k)+={$60}<y@+(l?kp%<e)t{$60}6i_xt&8,e6t{$60}6i_xt%8$sg8*4"h{$60}{$60}@4f"e^j3[
  1498. ma0b$"2p&8!{$60}#(&qa((1ay@*e{$60}j{$60}{$60}(%)@i?h%^]{$60}#3))@&*4":0&@{$60}"!28*7z
  1499. m!?op!:g_c0=@($xhl'*e{$60}j0#(%)@i?jd^x4$a{$60}4%^_{$60}1(/ead{$60},@s&'f{$60}m{$60}"
  1500. my@-,0f%@h{$60}"q"-{$60}!8,g!d{$60}g)v[{$60}%..f{$60}d0c(t.m@h{$60}"q",e>t{$60}ni_xt(8.8(
  1501. mt{$60}+f":#_r+$(t/n,"f"(p/_p$k$(r230#*g_c0e@j0"1"(p*8&"ip:!a(!y@
  1502. m8#s35$]04$5$/@t{$60}j>&@82{$60}>8*4$i{$60}4@'f"i]j!a3!y@q5)23u(@4d5!1$e.
  1503. m1r!&24q%("({$60}(@t{$60}i02d!87za/ni4b{$60}#*){$60}!8(4.(!1bi0x@!ba@j0"%#(4-
  1504. m(.]bd{$60}%@(#ab+{$60}5@,{$60}b0\"#'8dp:8k#h(,=b3!ib+{$60}e@$!l8i4)e0(5"i4-e
  1505. m085#.*5"[0i@a4*e0^d{$60}a4.e0j1#a42$1>9$t{$60}+f1:{$60}{$60}a$:d1k$(\#j@{$60}-%"
  1506. mt{$60}of1n9"t{$60}+f0tqj8j{$60}{$60}l4+p(2p&8!{$60}1r<&0#<g;l{$60}dxz8"d1m$(\-fe1*1%
  1507. ma4*$0tq88aa@+{$60}a@,{$60}(x8*5$t{$60}+&1<9$i43);-#ii47)8]#c.&"m!v#p#*4$
  1508. mi{$60}4@"v"i.b{$60}c8*elh&.%^h3[i4"d0:(!({$60}phj0t@(v!@j0"%0(5!j6r@8x5"
  1509. ma$,@,&.0{$60}6#)#={$60}0j0"@{$60})%"j6r@8x5"a$,88*9!x{$60}bpx*{$60}{$60}d4+f0m{$60}"yd/f
  1510. m0-{$60}"yd%,_6*e#{$60}4-\!2@{$60}+$*y@k0{$60}n8+i@s0{$60}l8-q@p88*emh&n%^h3[a0j$
  1511. 7"z4&i{$60}>f#b{$60})*/{$60})l{$60}>%#(0-3#!c.&{$60}{$60}
  1512. {$60}
  1513. END
  1514. BEGIN 640 DATE
  1515. m{$60}&!,!6!#pjf"h&{$60}@5"b@![f"8"{$60}y8$b*oeu@g4a@:)u'8(@0zzd-c5q@j4>@
  1516. m8(7za/ni%j{$60}{$60}h@%,#"a(*0\),*ih2di*2@dp8#$y.3,o,#4o,38m,3@z,#0z
  1517. j-3{$60}n,uh{$60}{$60}@4("px1%--53btq-bw-05dm,3dy,r{$60}@,#8z,#,z-3{$60}@4$t{$60}{$60}{$60}{$60}{$60}
  1518. {$60}
  1519. END
  1520. BEGIN 640 FAST
  1521. 5{$60}&!,!6!#pjt1t"goc1'0j0&-,-!@{$60}{$60}{$60}{$60}
  1522. {$60}
  1523. END
  1524. BEGIN 640 SLOW
  1525. 5{$60}&!,!6!#pjt1t{$60}d0c1'0j0"-,-!@{$60}{$60}{$60}{$60}
  1526. {$60}
  1527. END
  1528. BEGIN 640 READ
  1529. m{$60}&!,x&!#pj(!a?j$^z#_r+'zt/n8h{$60}!,#"bb{$60}dp'8*(!c3%@j3&@8(7za/ni
  1530. m{$60}:{$60}{$60}3{$60}ph{$60}*({$60}j4n@8(7za/ni{$60}:{$60}{$60}({$60}dh\{$60}2m2v!@.&{$60}{$60}a/l*a?hf^qbm!@]e
  1531. m^h7zk0</9?n%^z{$60}{$60}l?jjr+'zaoj%^v{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}*{$60}{$60}m0"90{$60}#hr,{$60}$
  1532. md/6b!:d{$60}e43*$/n@('cx!d{$60}f029")d.b!+5$=4251,h0]xc0zma8h@"@{$60}+5$
  1533. m(,!@z.{$60}%d/:i{$60})eo8&!(2di*2b#+8&@i#\5)t{$60}c{$60}![{$60}$j2#0!{$60}dpa4f9;v#(
  1534. m8*t%#]{$60}qk00/r0*p*jgsh&!,&&!54t%'13h@4d5!1"!&24q%,2!&24q%,b{$60}n
  1535. m+bx@1de,1<x-{$60}#bm"{$60}_is(4&k0d/z6&%!zd!h{$60}"%{$60}h0#($xhl"6e{$60}j0#($q@
  1536. mi?jd^x4$a{$60}4%^_{$60}1()=ad{$60},@:f'f{$60}m{$60}"y@-,+6%@j5^@82{$60}88&{$60}\tu1/4%!%
  1537. m1#x-{$60}*e_h&$@&&"e!*0%(!a@j92@84p88,524d]2(%)%041)3d<@1de,12{$60}b
  1538. m{$60}"(-{$60}*4$i{$60}6%^h3[j5(@{$60}rb0{$60}6"%#""r8:4,({$60}8h8*g,h&&%^h3[i0:d!z8,
  1539. ,({$60}dh\{$60}6p{$60}trr83a@{$60}{$60}{$60}{$60}
  1540. {$60}
  1541. END
  1542. BEGIN 640 SORT
  1543. m{$60}&!,66!#p@8{$60}{$60}{$60}"b{$60}87za/n@_\bq^m#[f*{$60}{$60}3{$60}phh@),"v"b{$60}8tu8*duh&"%
  1544. m^h3[j0&@{$60}$p,*{$60}"$^pj%^b;[&*t&#v7za?jm!p]e^x7[h{$60}"q^jk(l?j&^h7[
  1545. m8*d{$60}c09@c0=@j0&-"&"m!0_0.*t$#\d"l#&i>:!@3!q@55-!1t4z(%-/4e0@
  1546. m6ru;25u;5eu=(%lk0t],54u.72!&24q%("xn+@t{$60}j0&@{$60}(4"a{$60},@-f"@{$60}+'z
  1547. mr2w0'.8"r+'z\!7)2={$60}%j?^-!v#)5m{$60}%j?^-!f!,n&"e{$60}j{$60}{$60}(#9@h{$60}"q^ldk
  1548. mt{$60}4@'&'f{$60}b"c82!.*+!6i0*d{$60}r{$60}v8*7zi/n%!(0%!?op$2"(89{$60}#(%may@+0
  1549. m{$60}n8#3.e@(.!a(.ya(/qa8*d{$60}c0a@r+'zr3"0&\dzl!<i#x5qk0a@"@h8;0a@
  1550. m"aae<8t(8,c0wv"i4*!a(!q@j0%,2"@\tu1/4%!%1#x-{$60}*eph&$@'&"e!*0%
  1551. m(!q@j86@84p<8,524d]2(%)%041)3d<@1de,12{$60}b{$60}"(-{$60}*4$i{$60}6%^h3[j5(@
  1552. m{$60}rb0{$60}6"%#b#!8:4.({$60}8h8*e3('-c((%ck0a@r0&0{$60}nd!c0a@h@.i{$60})4>ra#[
  1553. m8*e2('-cj0"%#"!^9k{$60}0('5b(*5bl{$60}bi+b!s8ts*86"m!f{$60}p"*e6('-c(!ac
  1554. m8*e7('-cj0t@<v,@\6)@8(7^a/^b{$60}[4be?k*$/fb*j{$60}%(#8hi2z@{$60}$p\**({$60}
  1555. m&*t(8&d&s0mgd{$60}'hs0mhd{$60}+hz(kp{$60}\d"8"p'8#{$60}3k{$60}a@n0qgv0qht{$60}?){$60}/{$60}#
  1556. mr-#q8*p(8+d,9r!j8dby#&@@:f*%<fc%<m{$60}'r0#p{$60}\c0y6#)p9{$60}&r=np{$60}be_
  1557. m8*(#j0"5)k4>e2+*$/6e)<d{$60}\!ri!z!h(/ua(!abl!"b{$60}[4be2:]!vb5(lh0
  1558. m]##>8*t+9z{$60}{$60}((edd{$60}%@h@.u(it'9\h0^*d'h&>%_h3_k0mgh{$60}{$60}@/rbe*<d{$60}
  1559. m\!:b{$60}[7zm":5)i3zra#uhb:@!"{$60}y*!a@h@.u^i4>ra#y&&"b{$60}[4>e2+*$/fe
  1560. m)<d{$60}\!>i!z!g(/ua(*1fh@.]!v>5(lh0^$sz8f"b{$60}[4>e?ji{$60})4>ra#ui?w)
  1561. m{$60}/{$60}=hb*@!"{$60}v**(>h{$60}0@.2bb{$60}[7ze1zu(i7zra#u,-u@h@.u'i7zra#yi?w)
  1562. m{$60}-{$60}!8*(jh{$60}4@-bbe+j{$60}{$60}(&qeh@.u*i7zra#y3%)ch@),(v{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}"i
  1563. m{$60}(u[8z({$60}j?^=!vkht/jb:zd'\{$60}'hcgqccg]ck@d/af".@&.*..u\8[{$60}"j0"-
  1564. m?f,8:0&-?6.n?&/d8+{$60}*j0"=!vkhy&"0^&{$60}{$60}c<ech@"@{$60}2!"*+{$60}!8"{$60}89+{$60}!
  1565. m8*w)8z("h/\@0bbp{$60}6"i]j!c(!q@j0%,2"@-r4y3549&24-)14y4($u%34]2
  1566. m62p@04)/4e1)3d<n#0{$60}{$60}k<ecs7ucl!:n?&.]!vkp&^cp"[t':m#xcgqc3$-d
  1567. mk<ecs7ucl{$60}.-?6,x8,jlr6/h\.r]!vk0]8c0]8x79*s)8ze!g0=jrhc0^>cl
  1568. m?&/0!zp79,b,?&,xk7yc[<ecc7ycj0"@{$60}h7zaon%_(3]&&{$60}{$60}{$60}{$60}"-af2,av0@
  1569. mp&2p{$60}6"nav2maf3p{$60}>b*x{$60}2p{$60}j($bhv(9"#*8y{$60}!8*d{$60}k(ad(&qek89dk(=d
  1570. m3(ed&&d'd{$60}'(*?b%9h1gh@.]>&.5^jd{$60}e6c*$/2e_<d{$60}t{$60}ni{$60}(7]j8"-{$60}{$60}\x
  1571. m8*)@h{$60}8@-bbe9,5fi67e9[{$60}0h@.u^i5hm6"5^lh0]4s:9*5dq6;0!j5ey6?p
  1572. m(sbe9.5fa62e9>5ga66b8*{$60}&(#dh&*7z962%^j7[966%^qa@i6o){$60}-{$60},h@.u
  1573. m8)ux8\h0^!a@h@.u^k1he6b4^lh0]:)@h{$60}0@.2bb{$60}[5he?k*$/d88!ai!y{$60}!
  1574. mr"gxa6:$9z(#m?j5:+ux8y7zj0"5;,h0\*7]r0#p**7zq6be^^5ii?se:j7]
  1575. my6np%j)@h{$60}0@-bbb{$60}[7ze6ru8)7zra#u,-*b{$60}[5le?k*$/fe_<d{$60}t!jb{$60}[ux
  1576. m8y5@m6b=>&/*$/.e9j1ga62$94pm9j)@h{$60}8@-bbe_<5kt#"e_,5jt"h8i?ie
  1577. m9*je^v5eq6g0'.1ht!@8i61e9h5di65e9x5eh@.u;)5hra#y,{$60}^b:*{$60}$(#dh
  1578. mi6:d9x5da&6e:\5ct#fe:l5bt#,8i6ae9*je:65eq6'0)>1@t"&b{$60}[5@e?k*
  1579. m$/fe94be9$bb8*{$60}&(#8h&&ae9(5d:&5ea66b{$60}[5he?k*$/fb8*{$60}&(#dh&&"@
  1580. m{$60}(1p(-)fi'"p&id,9\c{$60}\+{$60}%r0w0zxbi{$60})d,9qb8:0:-"v<88"!.*){$60}#($1a
  1581. mk{$60}mgj0v9!f>i#*!ga?j$^sbm"v?i!:{$60}{$60}h@$@#"bl"v>i{$60})d&9v"e#/{$60}+i{$60}jy
  1582. m!vgf"l8,&&{$60}@3bb0{$60}r!$8:d'h&f%^h3[j?z@{$60}(0*i@x@"2cp![{$60}%a0q,tf8x
  1583. !8{$60}{$60}{$60}
  1584. {$60}
  1585. END
  1586. BEGIN 640 MEM
  1587. m{$60}&!,!6!#pjdch&{$60}@46&m&p\),"{$60}>8:d-(!ya(+]@("y@(')@8-!23t-%4u/)
  1588. mq#t{$60}j5>@8"!18:efh&"%@(2!j0jb0"!1**({$60}o69@\{$60}8@'f'ht/6i#2{$60}>86#$
  1589. m64y!34e#(,92144@/0{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}{$60}"il*!@(%%aj6:@8(6{$60}a(&i{$60}(4&
  1590. ma0<xk0@/z0"%!*t)#^e@a06i"j($(%$hh@"]9f#p!b{$60}>8>c0]:d-(!ya8-!2
  1591. m3t=204t@qe)%12{$60}]{$60}*th#zpi#\b%{$60}h0#h{$60}"b+k$"\{$60}zb*lg_\{$60}bb(\g^\{$60}*b
  1592. m*xh@'f'(t.6i#2{$60}>8:(#o1p/e4#*$/a@h@.u^b{$60}'8<h0^*d-(!ya8$a*2di*
  1593. m(!)a:"d/"3#).i{$60}":08@'f%@cd]ac%!ac4yai?i(i?m(j4z@887za/ni{$60}:{$60}{$60}
  1594. mh@$@#"aha?mha?jm3f&n3v&l4&%@{$60}{$60}{$60}{$60}h@&%^h3[h/_(l?k0^yb@{$60}$p,**("
  1595. #3%-a{$60}{$60}{$60}{$60}
  1596. {$60}
  1597. END
  1598. BEGIN 640 TR
  1599. m{$60}&!,6&!#p@8{$60}{$60}*(!a?j$^z#_r+'zt/n8h{$60}!,#"bb{$60}dp*8*(!c31@j32@8(7z
  1600. ma/ni{$60}:{$60}{$60}3{$60}ph{$60}(3["h7z)ol8k08/9?j%^jt'#v7[a?n@{$60}+'zjlbq^h;za?m@
  1601. mj0&-!f"i{$60}(t'8*t%#]{$60}*k00/r0*p{$60}tp$8:d!h{$60}"%{$60}h0#(#5@h{$60}"q^ldmt!#f
  1602. m{$60}l@@qv".!f#((,=@c@=@(-yb($xhd{$60}-,h&&e{$60}j0#(#5@i?jd^x4$a{$60}4%^_{$60}1
  1603. m(.1ad{$60},@mv'f{$60}m{$60}"y@-,ev{$60}@p&)@l?k(h@#)4/{$60}rh@3)4_{$60}lh@+)5?{$60}fh@')
  1604. m3?{$60}@h@#)0_{$60}:r4'0&+'zr*("r4sp#:(#r4/p!\e2\{$60}.(h@$88*d0h&$@&v"i
  1605. m{$60}4q(*%5304=%.b!44b!;+4923tu3150r5$]3151=($9)3$4@+bxn#5=(15)%
  1606. m($923tu3150o5$]3150]4"q!+$%,+$%#+%,l0rq5+$t-*%!%5%-#24dl05-#
  1607. m+4-23$8l05-#+4q&+$%30ru#4bp-(%-0145$4t-225!4+$-/34u/1$]212q5
  1608. m3de8+$u3+41/4rd-{$60}*flh&$@&v"i{$60}4q(*#s35$]04$5$/@t{$60}j<r@82{$60};8*4$
  1609. mi{$60}4@&v"ix:!a3!m@q5)23u(@4d5!1$e.1r!&24q%("({$60}(@t{$60}(.-b((9bi02d
  1610. m!87za/ni4b{$60}#*){$60}!8(4.({$60}5bi0x@!ba@($)bl#>n!f#p#\d-t{$60}c@{$60}?#nx{$60}/p
  1611. m{$60}zbq$jx'8/{$60}8r0w0$>{$60}$\{$60}w@{$60}_{$60},x{$60}+p!2"m8jd-j+$4(*ub3{$60}5b8*4,!0wp
  1612. m%*{$60}{$60}l0kf"m{$60}"y@nf#-{$60}"q@w&#!a@($xhd{$60},@h&&i%j!ha?j$^x4*a{$60}ne$*01
  1613. mi@x@"2cp";{$60}'a0r$#4q"8ca@.*t(#^d6a1"m"0_i:(41j0"%#(4-h@$@2rc)
  1614. m{$60}-{$60}(j?z@{$60}(40a!%@ia;@_i{$60}'2"#{$60}8fbf%it69^868"!.*){$60}#3*!aj1:@9x7z
  1615. ma/ne%j{$60}{$60}h@$@#"bi{$60}(468*d{$60}a19@k09@"jj]{$60}f.%$kt#8x43k0=@"jj]#&.%
  1616. m%+t-8x458{$60}{$60}{$60}%f,68q9c%f0{$60}{$60}!9e%f46919f{$60}{$60}$"{$60}p0%!@>="0t+dph.#q{$60}1
  1617. m$a,4%187&!d:&qp='a\@(2(c)"4f)r@i*bll+2xo,#$r,s0u-c<x.3h[/#t^
  1618. m/t#!pl/$q<;'r,g*r\s-sl_0t=+3u-76u]c9vem<75y?p$%"0t1%1d=(24i+
  1619. m3$u.3u!14e-455976%e:v]s=wm^{$60}@8*#a(6&axb)bhn,c8z/d)&2#)25ei>8
  1620. mf9j;g{$60}b>gz"ahj.di::gj*fjjzrmkj^pl;*sm+6vm[bynkn\o;z_8&%b8v1e
  1621. m9f=h:6ik;&un;w!q<g-t=79w>'ez>wq]?g_@x>+cy.7fy^ciznol[>[o\/'r
  1622. m\_3u]o?x^?k[_/w^_t!!0d-$149'2$e*2tq-3d]045)35%565ua96em<75x-
  1623. m("$b(r0e)b<h*2hk+"tn+s{$60}q,c,t-38w.#dz.sp]/c_{$60}p<+#q,7&q\c)rlo,
  1624. ms<[/t-'2t]35um?8v=k;w-w>wz"ahj.di::gj*fjjzrmkj^pl;*sm+6vm[by
  1625. mnkn\o;z_{$60}{$60}$"{$60}p0%!@<("0h+#%\.#q{$60}1$a,4%187&!d:&qp='a_@x>+cy.7f
  1626. my^ciznol[>[o\/'r\_3u]o?x^?k[_/w^_x"!@h.$a8:'b(f*bxr-ch^0d9*3
  1627. me)66eyb9fin<g9z?8&%b8v1e9f=h:6ik;&un;w!q<g-t=79w>'ez>wq]?g\{$60}
  1628. m{$60}0(#!{$60}4&!p@)#0n3"@x/$!$2$q05%a<8&1h;'!t>'r{$60}a(b,d)28g*"dj*rpm
  1629. m+b\p,3(s-#4v-s@y.cl\/3x_0&%b8v1e9f=h:6ik;&un;w!q<g-t=79w>'ez
  1630. m6uq=7e_{$60}p<+#q,7&q\c)rlo,s<[/t-'2t]35um?8v=k;w-w>wx"!@h.$a8:'
  1631. mb(f*bxr-ch^0d9*3e)66eyb9fin<g9z?h*&bhz2eij>hj:jkk*vnk["qlk.t
  1632. mm;:wn+fzn[r]ok]@04)#1$5&1ta)2dm,34y/4%%24u155e=865i[?'u^?^#a
  1633. mxn/dy>;gz.gjz^sm[n_p\?+s]/7v]_cy^oo\_?[_@(&"@x2%ah>(b8j+c!^.
  1634. mcy"1di.4e9:7f)f:fyr=gi\@(2(c)"4f)r@i*bll+2xo,#$r,s0u-c<x.3h[
  1635. m/#t^/p{$60}!{$60}@,$!08'"{$60}d*"pp-#@\0$1(3%!46%q@9&al<'1z-x.'bx^3eyn?h
  1636. mz>kk[.wn[_#q\o/t]?;w^/gz^_s]_o_{$60}p<+#q,7&q\c)rlo,s<[/t-'2t]35
  1637. mum?8v=k;w-w>wv!a8f-d969g:&ej:vqm;f]p<7)s='5v=way>gm\?7y_0$%"
  1638. m0t1%1d=(24i+3$u.3u!14e-455976%e:6uq=7e^@h:*ci*6fizbijjnlk:zo
  1639. 0l+&rl[2umk>xn;j[o+v^op{$60}{$60}
  1640. {$60}
  1641. END
  1642. BEGIN 640 AS
  1643. m{$60}&!,:f!#pj(!a?j$^z#_r+'zt/n8h{$60}!,#"bb{$60}8tl8*dlh&"%^h3[j0&@{$60}$p,
  1644. m*{$60}"b{$60}*e&h&"%^h3[j0&@{$60}"{$60})*/{$60}$k49@8#a@{$60}(3["h7z)ol8k08/9?j%^jt'
  1645. m#v7[a?n@{$60}+'zjlbq^h;za?m@k04/\{$60}%@k00/r0+0^*d!h{$60}{$60}@1v"i4b{$60}#*){$60}!
  1646. m8(4"j0&%!*d{$60}a06%!h4'j?^%{$60}r{$60}q8z4"({$60}8h8*g5h&.%^h3[j0"@{$60}84#i@(@
  1647. m"2c0{$60}ca@p{$60}&0{$60}aa@j*d@f=5cr-#z&&#f{$60}_{$60}&i{$60}.yu6-@(*%@d/6i{$60}&"e#<d@
  1648. m\{$60}7)"?{$60}!8*0#r/{$60}.n=5cr2#p]ld)\/*${$60}v{$60}@h6"p!:{$60}{$60}3.m@j0!@i0w)(-{$60}#
  1649. m(-m@r0gp^<e{$60}d{$60}-,bv'))y{$60}:t{$60}-,uf'),){$60}.r3jp{$60}tq,8ld[t!-,3&%,:v')
  1650. m)){$60})\.w))?#i3&mar2+0[$s68:0#r/{$60},n=5cr0w0]h0#3&ma(*%@l{$60}2@{$60}/#k
  1651. mj0!,:v%(r0w0#n8$t{$60}kf!={$60}&y@;0{$60}n8'r0#p{$60}r#)8(4-:*(#8(w59*{$60}!a{$60}p@
  1652. mr6#)0){$60}0i{$60}r9u63f#-#pa0vb{$60}zgp8,dn\.s)7_#hr3"0!,dzd.#)(-{$60}%a0t@
  1653. mvv#)"?#wa0vi{$60}*0,f=5di0vd#*({$60}8(44j0"%#"#)8(4-r0#p4,44\%')#?!(
  1654. mr5sp$*0,f=5dy@s0xh4-j?&b{$60}v{$60}@r6#)#?{$60}mr0#p*:(*w1]b\{$60};*$/a,\6&]
  1655. m*f),\6%<3d)44d%:)t4p(ep-g0d-!p{$60}g&p{$60}bj?*b{$60}v{$60}@r6"%#:d{$60}i{$60}r9u62m
  1656. mu62b{$60}f!(h@.i{$60})4(ra#[:*(0r23p#*("r27p!j(*aa30'h84(,e@a0t@o6*0
  1657. m!:gsh@-@bdr'8b#)8(4-r5_p]r"]8k{$60}c2"#@8k{$60}7:!ae"(4(d{$60}sf"={$60}(y@k0
  1658. m!.8+\{$60}1,?f)hh@.i]&"b{$60}:{$60}#n0@{$60}\{$60}.($/c(8*k),){$60}<r3j0$\e!d!3)1y{$60}(
  1659. mr<&0#,g'l{$60}@xz0<i#\448#a@i13)"m{$60}7h@.u")45ra#yh@(@"6,@&v.b{$60}2{$60})
  1660. m8v"b{$60}<d0t{$60}*b!"{$60})8v{$60}&""8))@hf"[{$60}$rm#s8&ah.&"b{$60}!bu"'45e0chbbd#
  1661. mt/2p{$60}6!h:#a@j?^%{$60}zd@a0t@3bb0!:d!3$@h({$60}9ax{$60}#p#^{$60}"\##@{$60}_!.x{$60}'p
  1662. m7dpy8tbi22{$60}88*dz(!a@((ycj2p@&&!hr0w0{$60}je?(!a@j0t@&&!,.6.i4r{$60}8
  1663. m8*dz(!a@((yc3'9cj=6@9(7za/ne#*{$60}{$60}h@$@#"a@r0#0{$60}6!(j4,@&&"i.b{$60}8
  1664. f8&a,;6.i3b{$60}88*dz(!a@j=6@9(6{$60}a(&b"*d!(%$ha{$60}p@cf-,=f,{$60}
  1665. {$60}
  1666. END
  1667. BEGIN 640 VI
  1668. m{$60}&!,@6!#pj(!a?j$^z#_r+'zt/n8h{$60}!,#"bb{$60}dp'8(xo8(pp8*(!(#%@kb]@
  1669. mk#!@8{$60}{$60}{$60}c4-@j4.@8(7za/ni{$60}:{$60}{$60}3{$60}ph{$60}*({$60}j5v@8(7za/ni{$60}:{$60}{$60}({$60}dh\{$60}2m
  1670. m76!@.&{$60}{$60}a/l*a?hf^qbm!@]e^h7zk0</9?n%^z{$60}{$60}l?jjr+'zaoj%^v"ib:!@
  1671. b(!a@8-i%1"!&3u(@p</%(%9%4e-)3tx@p</%+3{$60}n,#{$60}-{$60}{$60}{$60}{$60}
  1672. {$60}
  1673. END
  1674. --------------------------------------end-OF-ace-rELEASE-8---
  1675.