Path: uunet!zephyr.ens.tek.com!master!saab!billr From: billr@saab.CNA.TEK.COM (Bill Randle) Newsgroups: comp.sources.games Subject: v14i023: xpilot - Multiplayer gravity war game hand-shake program, Part21/24 Message-ID: <3318@master.CNA.TEK.COM> Date: 4 Aug 92 19:31:33 GMT Sender: news@master.CNA.TEK.COM Lines: 1363 Approved: billr@saab.CNA.TEK.COM Submitted-by: Bjoern Stabell Posting-number: Volume 14, Issue 23 Archive-name: xpilot/Part21 Environment: X11, ANSI C #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'man6/xpilots.6' <<'END_OF_FILE' X.\" -*-Text-*- X.\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; X.\" X.\" File: xpilots.6 X.\" Description: XPilots man page X.\" Author: Bjoern Stabell & Ken-Ronny Schouten X.\" Modified: 910520 X.\" Language: Text X.\" Package: xpilot X.\" X.\" (c) Copyright 1991, UiT, all rights reserved. X.\" X.\";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; X.TH XPILOTS 6 "Version 1.2" "BS & KRS" X.ad b X.SH NAME Xxpilots \- XPilot/UX Multiplayer gravity war game server X X.SH SYNOPSIS X X.BR xpilots X[\fB-map \fImap-file\fP] X[\fB-robots \fInumber\fP] X[\fB-rawmode\fP] X[\fB-noquit\fP] X[\fB-help\fP] X[\fB-version\fP] X X.SH DESCRIPTION XThis manual explains the following topics: X.IP X.B - Setting up a server. X.IP X.B - Owner-only commands. X.IP X.B - Creating new maps. X.PP XComplete coverage of the game basics and how to connect to a server are Xgiven in the manual pages for \fIxpilot(6)\fP. X X.SS Options X.TP 15 X.B -map \fImap-name\fP XThis option allows you to select the map you will use for this server. If Xit is omitted, you will have to manage with a computer generated random Xmap. For instructions on how to create a map, see below. XFor example if X.B -map blackhole Xor the equivalent X.B -map blackhole.map Xis passed as command line arguments, the server will try to locate a file Xcalled \fBblackhole.map\fP in the current directory, or in a predefined Xdirectory (default is /usr/local/games/lib/xpilot/maps/). X X.TP 15 X.B -help XPrints a short help, including the supported commandline options. X X.TP 15 X.B -version XPrints the current version. X X.TP 15 X.B -noquit XIf this option is specified, xpilots won't quit when the last human player Xexits. X X.TP 15 X.B -rawmode XIf this option is specified, xpilots doesn't go to sleep when there are no Xhuman players logged into the game. The \fBnoquit\fP option must be Xspecified for this to have any effect after the first player joins the Xgame. X X.TP 15 X.B -robots \fInumber\fP XTells the server that you want \fInumber\fP robots instead of the default - Xnumber-of-bases/2. A value of -1 will fill the entire server with robots. XNote however that there will always be room for one new player, the robots Xwill be kicked out of the game to accomodate for new players, they will Xalso enter the game when there is space for them. X X.SS Prompt options (owner only) XIf you are the owner of a server you have successfully connected to (with X\fIxpilot(6)\fP), you have several special commands available, all of which Xapplies to the current server only: X.TP 15 X.B m XSend a message to the players. X.TP 15 X.B k XKick a player out of the game. Currently, this command does not stop the Xplayer from re-joining the game. Hopefully, however, he or she would have Xlearned their lesson. X.TP 15 X.B l XLock/unlock the game. This prevents other users from joining the game. X.TP 15 X.B d XShutdown/cancel shutdown. This command will ask for a reason and a Xshutdown delay (in ticks) and transmit these to the server. A timer will Xappear showing how much time is left before the game goes down. If you Xdon't specify a delay, you will be canceling an already initiated shutdown. X X.SH MAPS XMaps are currently implemented as plain ASCII-text files with the letters Xhaving special meanings. The required \fB.map\fP suffix is not allowed to Xexist in any other part of the name. X X.SS Format XThe format of the map file is as follows: X.RS 6 X.TP X.PD 0 X\fIx-width\fPx\fIy-width\fP (dimensions) X.TP X\fIrule-number\fP X.TP X\fImap-name\fP X.TP X\fIauthor-name\fP X.TP X\fImap-data\fP X.PD 1 X.RS -6 X X.SS Contents XThe \fIdimensions\fR are in blocks, with each character in the map-data Xcorresponding to one block. If the x-dimension specification is smaller Xthan the actual map size, the map is cut off at that x-coordinate. If it Xis larger, the map is padded with blanks. A similar rule applies in the Xy-direction. X XThe following \fIrule\fR numbers are available: X.RS 6 X.TP 6 X.B 0 XCustom. Player killings, shield and limited visibility all enabled. X.TP X.B 1, 2 XReserved for future expansion. X.TP X.B 3 XRace. No player killings. X.TP X.B 4 XDogfight. As custom but not with limited visibility. X.TP X.B 5 XDogfight (limited). As for normal dogfight, but with limited lives. When Xa player gets \fBgame over\fP, he or she will not (re)enter the game until Xthe game declares and honors a winner. The \fBdefault mode\fP for new Xplayers is \fBgame over\fP. X.RS -6 X.TP 0 XThe \fImap name\fR should be no longer than 60-80 characters and may Xconsist of spaces. Though, a short and concise name is preferred. X.TP XThe \fIauthor name\fR shouldn't need any explanation. Please use real Xname, nothing more, nothing less. X.TP X\fIMap data\fR contains the geography of the world. Each character Xrepresents a block in the world, and unknown characters are interpreted as X\fBspace\fP. Avoid the use of \fBTAB\fP as the program will interpret it Xas one character, while the normal editor will usually do an expansion. X.TP X\fINB!\fP This implementation will not handle auto-wraparound, a player Xthat leaves the play-field will be destroyed. The best way to handle this Xis to implement a frame of filled blocks around the playing area. Also Xnote that you will have to comply with the maximum settings of the server, Xso have a look at the map.h file in the distribution. X X.SS Character descriptions XThe following characters (case sensitive) have special interpretations: X.RS 8 X.TP 4 X.B x XA filled square/block. X.TP X.B q w s a XFilled triangles. They are filled in these corners (same order as above): Xdown-right, down-left, up-left and up-right. X.TP X.B * XStarting position. The number of starting positions determine how many Xplayers the world can take. X.TP X.B F XFuel station. Obviously, this is a place where you can refuel. X.TP X.B + - < > XPositive, negative, curl anti-clockwise and curl clock-wise 'grav' X(gravitational source). These will push or pull your fighter, depending on Xthe sign of the grav (positive/negative), or in the case of the curl gravs X- push your fighter around as if it were in a whirlpool (try it or ask some Xphysicist). X.TP X.B W XWormhole, works much like the famous SciFi term 'teleporting'. Note that Xit is not possible to have only one wormhole on a map, you must have none Xor more than one. X.TP X.B d r f c XCannons. They are pointing in the following directions (same order as Xabove): left, up, right and down. These tend to make life difficult for a Xnovice player, go easy on them, will ya? X.TP X.B 0..9 XControl posts. These are only applicable in the \fBrace mode\fP. The Xtrack starts at 0, and the final posts are 9 and 0, thereby completing a Xlap. X.TP X.B space (and every other characters) XBlanks. X X.SH EXAMPLE XThis is is an example of a small map: (The dots may be substituted by Xspaces) X.IP X.PD 0 X.B 6x6 X.IP X.B 0 X.IP X.B Micro cosmos X.IP X.B A. N. Other Jr. X.IP X.B xxxxxx X.IP X.B xF..dx X.IP X.B x....x X.IP X.B xw.*.x X.IP X.B xxxxxx X.PD 1 X.PP XIf this is saved to a file with a \fB.map\fP suffix, you may try it with Xthe command: X.IP X.B xpilots -map X.PP X X.SH NOTES XThere are even special fonts which make editing maps even simpler. They Xare called \fBmap-5\fP, \fBmap-7\fP and \fBmap-9\fP. X.TP 0 XTo use them, you will probably have to add their directory to your X\fBfont-path\fP. This is usually done with the \fIxset(1)\fR command, i.e.: X.PP X.IP X.B xset fp+ /usr/local/lib/X11/fonts X.IP X.B xset fp rehash X.PP XTo use it with for example the \fIemacs(1)\fR editor, you will have to use Xa command like: X.IP X.B emacs -fn map-9 mapfile.map X.PP XRemember though, that editing text with this font is virtually impossible. X X.SH WARNINGS AND BUGS XSee \fIxpilot(6)\fP. X X.SH AUTHORS XThe \fIxpilot\fP product was developed by Bjoern Stabell and Ken Ronny XSchouten at the University of Tromsoe, Norway. X X.SH CREDITS XSee the provided CREDITS file. X X.SH FILES X.PD 0 X.TP 40 X.B /usr/local/games/lib/xpilot/maps/*.map XMiscellaneous maps. X.TP 40 X.B /usr/local/games/lib/xpilot/log XLog file. X.TP 40 X.B /usr/local/lib/X11/fonts/map-?.scf XFonts to ease map making. X.PD X X.SH SEE ALSO Xxpilot(6), xset(1), emacs(1) END_OF_FILE if test 8087 -ne `wc -c <'man6/xpilots.6'`; then echo shar: \"'man6/xpilots.6'\" unpacked with wrong size! fi # end of 'man6/xpilots.6' fi if test -f 'maps/cave.uue.1' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'maps/cave.uue.1'\" else echo shar: Extracting \"'maps/cave.uue.1'\" \(28477 characters\) sed "s/^X//" >'maps/cave.uue.1' <<'END_OF_FILE' Xbegin 644 cave.map XM,C`Q>#(P,0HT"E1H92!#879E"DME;B!2;VYN>2!38VAO=71E;@IX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X"G@@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@ XM("H@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`J("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("!X"GAX>'AX>'AX>'AX>'AX>'<@("`@("`@("`@<7AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AW("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@("`@ XM("!A>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'<@ XM("`@("`@("`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>`IX>'AX>'AX>'AX XM>'AX>'AS("`@("`@("`@<7AX>'AX>'AX>'AX>'AS("`@("`@(&%X>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>&8@("`@("`@>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AW("`@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@("`@('%X>'AX>'AX XM>'AX>'AX>'AX>'@*>'AX>'AX>'AX>'AX>'AS("`@("`@("!R<7AX>'AX>'AX XM>'AX>'AS("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AW("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@("`@ XM("`@87AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX"GAX>'AX>'AX>'AS XM("`@("`@("`@('%X>'AX>'AX>'AX>'AS("`@("`@("`@("`@("`@87AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX=R`@("`@("`@("`@("!A>'AX>'@@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>`IX>'AX>'AX'AX>'AX>'AX>'AS XM("`@("`@("`@("`@("`@("`@("`@("!C87AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AW("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@ XM("`@('AX>'AX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@*>'AX>'AX>&8@("`@ XM("`@("`@("!X>'AX>'AX>'AX>'AS("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@87AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@(&%X>'AX>'AX XM>'AX>'AX>'AX>'AX>'<@("`@("`@("`@("!X>'AX>'<@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX"GAX>'AX>'AX>'<@("`@("`@("`@87AX>'AX'<@("`@("`@("`@("`@("`@("`@("`@("`@(&%X>'AX>'AX>'AX XM>'@@("`@("`@("`@("`@("`@87AX>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@ XM("`@>'AX>'AX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>`IX>'AX>'AX>'AX("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@87AX=R`@("`@("`@("`@("`@ XM("`@("`@("`@("`@87AX>'AX>'AX>'AX("`@("`@("`@("`@("`@("!A>'AX XM>'AX'AX>'@@("`@("`@("`@('AX>'AX>'AW("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@87AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'@*>'AX>'AX>'AX>"`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@87AX>'AX>'AX>'AX>'<@("`@("`@("`@("`@("!X>'AX>'AX>'AX XM>"`@("`@("`@("`@("`@("`@(&%X>'AX>"`@("`@(&%X>'AX=R`@("`@("`@ XM("!X>'AX>'AX>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AX"GAX>'AX>'AX>'AX>'AX XM=R`@("`@("`@("`@("`@('%X>'<@("`@("`@("!A>'AX>'AX>'AX>'AX=R`@ XM("`@("`@("`@("!Q>'AX>'AX>'AX>'@@("`@("`@("`@("`@("`@("`@("!A XM>'AW("`@("`@87AX>'AX=R`@("`@("`@>'AX>'AX>'@@("`@("`@("`@("!X XM>'AX>'AX>'AX>'AX("`@("`@("`@("`@("`@("`@("`@("`@("!A>'AX>'AX XM>'AX>'AX>`IX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@("`@("!X>'AX=R`@ XM("`@("`@("!A>'AX>'AX>'AX>'AW("`@("`@("`@("`@>'AX>'AX>'AX>'AX XM=R`@("`@("`@("`@("`@("`@("`@('AX>'<@("`@("!A>'AX>'AW("`@("`@ XM('AX>'AX>'AX("`@("`@("`@("`@>'AX>'AX>'AX>'AX>"`@("`@("`@("`@ XM("`@("`@("`@("`@("`@(&%X>'AX>'AX>'AX>'@*>'AX>'AX>'AX>'AX>'AX XM>"!R("`@("`@("`@('AX>'AX>'AW("`@("`@("`@(&%X>'AX>'AX>'AX>'<@ XM("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@('%X XM>'AX=R`@("`@(&%X>'AX>'<@("`@("!A>'AX>'AX>'<@("`@("`@("`@('AX XM>'AX>'AX>'AX>'@@("`@("`@("`@("`@("`@("`@("`@("`@("`@(&%X>'AX XM>'AX>'AX"GAX>',@("`@(&%X>'AX>'AX>'AW("`@("`@("!X>'AX>'AX>'<@ XM("`@("`@("`@87AX>'AX>'AX>'AX=R`@("`@("`@(&1X>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'@@("`@("`@(&1X>'AX>'AW("`@("`@87AX>'AX=R`@("`@ XM("!A>'AX>'AX("`@("`@("`@("!X>'AX>'AX>'AX>'AX("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@87AX>'AX>'AX>`IX>'@@("`@("`@87AX>'AX XM>'AX>"`@("`@("`@>'AX>'AX>'AX>'<@("`@("`@("!A>'AX>'AX>'AX>'AW XM("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@87AX XM>'AX>'<@("`@("!A>'AX>'AW("`@("`@(&%X>'AX>'<@("`@("`@("`@>'AX XM>'AX>'AX>'AX>"`@("`@("`@<7AX>'AX>'AX=R`@("`@("`@("`@("`@87AX XM>'AX>'@*>'AX("`@("`@("!A>'AX>'AX>'AW("`@("`@('AX>'AX>'AX>'AX XM>'<@("`@("`@<7AX>'AX>'AX>'AX>'<@("`@("`@('AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX9B`@("`@("!X>'AX>'AX("`@("`@(&%X>'AX>"`@("`@ XM("`@87AX>'AX=R`@("`@("`@('AX>'AX>'AX>'AX>'@@("`@("`@('AX>'AX XM>'AX>'AW("`@("`@("`@("`@("!X>'AX>'AX"GAX>"`@("`@("`@("!A>'AX XM>'AX>'<@("`@("!X>'AX>'AX>'AX>'AS("`@("`@('AX>'AX>'AX>'AX>'AX XM=R`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX'AX>"`@("`@("`@87AX>'@@("`@("`@("`@(&%X>'@@("`@("`@("!X>'AX XM>'AX>'AX>'AX("`@("`@("!X>'AX>'AX>'AX>'<@("`@("`@("`@("`@>'AX XM>'AX>`IX>'@@("`@("`@("`@("!A>'AX>'AX("`@("!A>'AX>'AX>'AX>'AX XM("`@("`@('%X>'AX>'AX>'AX>'AX>'AW("`@("`@(&%X>'AX>'AX>'AX>'AX XM>'AX>'AS("`@("`@("`@("`@("!X>'AX>'AW("`@("`@("!X>'AS("`@("`@ XM("`@("`@87AX=R`@("`@("`@>'AX>'AX>'AX>'AX>"`@("`@("`@>'AX>'AX XM>'AX>'AX=R`@("`@("`@("`@<7AX>'AX>'@*>'AX("`@("`@("`@("`@('AX XM>'AX>'<@("`@(&%X>'AX>'AX>'AX1B`@("`@("!X>'AX>'AX>'AX>'AX>'AX XM>&8@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@87AX XM>'AX>"`@("`@("`@87AS("`@("`@("`@("`@("!X>'@@("`@("`@('AX>'AX XM>'AX>'AX>'@@("`@("`@('AX>'AX>'AX>'AX>'AW("`@("`@("`@<7AX>'AX XM>'AX"GAX>"`@("`@("`@("`@("!X>'AX>'AX=R`@("`@87AX>'AX>'AX>'@@ XM("`@("`@>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("!X>'AX>'AF("`@("`@("`@("`@("`@("`@ XM("`@("`@>'AX("`@("`@("!X>'AX>'AX>'AX>'AX("`@("`@("!X>'AX>'AX XM>'AX>'AX>"`@("`@("`@('AX>'AX>'AX>`IX>'@@("`@("`@("`@("`@>'AX XM>'AX>'@@("`@("!A>'AX>'AX>'AS("`@("`@('AX>'AX>'AX>'AX>'AX>',@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!Q>'AX XM>'AX=R`@("`@("`@("`@("`@("`@("`@("`@<7AX>"`@("`@("`@>'AX>'AX XM>'AX>'AX>"`@("`@("`@>'AX>'AX>'AX>'AX>'@@("`@("`@("!X>'AX>'AX XM>'@*>'AX=R`@("`@("`@("`@<7AX>'AX>'AX=R`@("`@(&%X>'AX>',@("`@ XM("`@('%X>'AX>'AX>'AX>'AX>',@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@('%X>'AX>'AX>'@@("`@("`@("`@("`@("`@("`@ XM("!Q>'AX>'@@("`@("`@('AX>'AX>'AX>'AX>'@@("`@("`@('AX>'AX>'AX XM>'AX>'AX("`@("`@("`@>'AX>'AX>'AX"GAX>'AW("`@("`@("`@(&%X>'AX XM>'AX>'AW("`@("`@87AX>',@("`@("`@("!X>'AX>'AX>'AX>'AX>',@("`@ XM("`@("`@('%X>'AX>'AX=R`@("`@("`@("`@("`@("`@("`@('%X>'AX>'AX XM>'AX("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX("`@("`@("!X>'AX>'AX XM>'AX>'AX("`@("`@('%X>'AX>'AX>'AX>'AX>"`@("`@("`@('AX>'AX>'AX XM>`IX>'AX>'<@("`@("`@("`@87AX>'AX>'AX>'<@("`@("!A'AX>'AX>'AX>'AX>'@@("`@("`@("`@("!X>'AX>'AX>'@@("`@("`@ XM("`@("`@("`@("!Q>'AX>'AX>'AX>'AX>'<@("`@("`@("`@("`@("`@("!Q XM>'AX>'AX>"`@("`@("`@>'AX>'AX>'AX>'AX>"`@("`@("!A>'AX>'AX>'AX XM>'AX>'@@("`@("`@("!X>'AX>'AX>'@*>'AX>'AX=R!R("`@("`@("`@("!A XM>'AX>'AX=R`@("`@("`@("`@("`@(')Q>'AX>'AX>'AX>'AX>'AX("`@("`@ XM("`@("`@>'AX>'AX>'AX=R`@("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX XM>'AX=R`@("`@("`@("`@("`@("`@87AX>'AX>'@@("`@("`@($9X>'AX>'AX XM>'AX>'@@("`@("`@(&%X>'AX>'AX>'AX>'AX("`@("`@("`@>'AX>'AX>'AX XM"GAX>'AX>'AX>'AW("`@("`@("`@(&%X>'AX>'AW("`@("`@("`@("`@('%X XM>'AX>'AX>'AX>'AX>'AX1B`@("`@("`@("`@('AX>'AX>'AX>'@@("`@("`@ XM("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@("`@("`@("`@ XM87AX>'AX9B`@("`@("!X>'AX>'AX>'AX>'AX("`@("`@("`@87AX>'AX>'AX XM>'AX>"`@("`@("`@('AX>'AX>'AX>`IX>'AX>'AX>'AX'AX>'AX>'<@("`@("`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@ XM("`@("!X>'AX>'AX>'AX("`@("`@("`@("`@("`@("`@('AX>'AX>'AX>'AX XM>'AX>"`@("`@("`@("`@("`@("`@("!X>'AX>&8@("`@("`@>'AX>'AX>'AX XM>'AX>"`@("`@("`@("!X>'AX>'AX>'AX>'@@("`@("`@("!X>'AX>'AX>'@* XM>'AX>'AS("`@("`@("`@("`@("`@(&%X>'AX>'AX=R`@("`@("`@('%X>'AX XM>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@>'AX>'AX>'AX1B`@("`@("`@ XM("`@("`@("`@("!X>'AX>'AX>'AX>'AX>'AW("`@("`@("`@("`@("`@("`@ XM>'AX>'AF("`@("`@('AX>'AX>'AX>'AX>'@@("`@("`@("`@>'AX>'AX>'AX XM>'AX("`@("`@("`@>'AX>'AX>'AX"GAX>',@("`@("`@("`@("`@("`@("`@ XM("!A>'AX>'@@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@ XM("`@('AX>'AX>'AX>'@@("`@("`@("!Q=R`@("`@("`@>'AX>'AX>'AX>'AX XM>'AX>'<@("`@("`@("`@("`@("`@('AX>'AX9B`@("`@("!X>'AX>'AX>'AX XM>'AX("`@("`@("`@('AX>'AX>'AX>'AX>"`@("`@("`@('AX>'AX>'AX>`IX XM>'AW("`@("`@("`@("!Q>'AW("`@("`@(&%X>'AX=R`@("`@("`@('AX>'AX XM>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("!X>'AX>'AX>'AX("`@("`@("!Q XM>'AW("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@("`@("`@("!X XM>'AX>"`@("`@("`@>'AX>'AX>'AX>'AX>"`@("`@("`@("!X>'AX>'AX>'AX XM>'@@("`@("`@("!X>'AX>'AX>'@*>'AX>'<@("`@("`@("!Q>'AX>'<@("`@ XM("`@87AX>',@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@ XM("`@>'AX>'AX>'AX'AX>"`@("`@("`@87AX>'AX>'AX>'AX XM>'AX>'@@("`@("`@("`@("`@("`@>'AX>'@@("`@("`@('AX>'AX>'AX>'AX XM>'@@("`@("`@("`@>'AX>'AX>'AX>'AX("`@("`@("`@>'AX>'AX>'AX"GAX XM>'AX("`@("`@("!Q>'AX>'AX("`@("`@("`@("`@("`@("`@("`@(&%X>'AX XM>'AX>'AX>'AX>'AS("`@("`@("`@("`@('AX>'AX>'AX>"`@("`@("`@<7AX XM>'AW("`@("`@("!A>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@("`@('AX XM>'AX("`@("`@("!X>'AX>'AX>'AX>'AX("`@("`@("`@('AX>'AX>'AX>'AX XM>"`@("`@("`@('AX>'AX>'AX>`IX>'AX>"`@("`@("!Q>'AX>'AX>"`@("`@ XM("`@("`@("`@("`@("`@("`@87AX>'AX>'AX>'AX>',@("`@("`@("`@("`@ XM("!X>'AX>'AX>'AW("`@'AX>"`@("`@("`@(&%X>'AX>'AX>'AX XM>'AX>"`@("`@("`@("`@("`@("!X>'AX>"`@("`@("`@>'AX>'AX>'AX>'AX XM>"`@("`@("`@("!X>'AX>'AX>'AX>'@@("`@("`@("!X>'AX>'AX>'@*>'AX XM>'@@("`@("`@>'AX>'AX>'@@("`@("`@("`@("`@("`@("`@("`@("`@("!A XM>'AX>'AX'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'@@("`@("`@("`@("!X>'AX>'AX>'AX>',@("`@("`@("`@("`@("`@>'AX XM>'@@("`@("`@('AX>'AX>'AX>'AX>'@@("`@("`@("`@>'AX>'AX>'AX>'AX XM("`@("`@("`@>'AX>'AX>'AX"GAX>'AX("`@("`@('AX>'AX>'AX=R`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM<7AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@<7AX>'AX("`@("`@("!X>'AX>'AX>'AX>'AX XM("`@("`@("`@('AX>'AX>'AX>'AX>"`@("`@("`@('AX>'AX>'AX>`IX>'AX XM>"`@("`@("!X>'AX>'AX>'AX>'AX>'AX>"`@("!X>'AX>'AX>'<@("`@("`@ XM("`@("`@("`@<7AX>'@@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX XM>"`@("`@("`@>'AX>'AX>'AX>'AX'AX>'AX>'AX>'@@ XM("`@("`@("!X>'AX>'AX>'@*>'AX>'@@("`@("`@>'AX>'AX>'AX>'AX>'AX XM>'@@("`@>'AX>'AX>'AX=R`@("`@("`@("`@("`@<7AX>'AX("`@("`@>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@<7AX>'AX>'AX>'@@("`@("`@('AX>'AX>'AX>'AX'AX>'AX>'AX>'AX("`@("`@("`@>'AX>'AX>'AX"GAX>'AX XM=R`@("`@('AX>'AX>'AX>'AX>'AX>'AX("`@('AX>'AX>'AX>'AW("`@("`@ XM("`@("`@<7AX>'AX>"`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@<7AX>'AX>'AX>'AX XM("`@("`@("!X>'AX>'AX>'AX>"`@("`@("`@("`@<7AX>'AX>'AX>'AX>"`@ XM("`@("`@('AX>'AX>'AX>`IX>'AX>'AX=R`@("!A>'AX>'AX>'AX>'AX>'AX XM>"`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',@("`@("`@>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@('AX>'AX>'AX>'AX>"`@("`@("`@>'AX>'AX>'AX>'@@("`@ XM("`@("`@<7AX>'AX>'AX>'AX>'@@("`@("`@("!X>'AX>'AX>'@*>'AX>'AX XM>'@@("`@("`@>'AX>'AX>'AX>'AX>'@@("`@>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>',@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X>'AX>'AX>'AX>'@@ XM("`@("`@('AX>'AX>'AX>'AX("`@("`@("`@<7AX>'AX>'AX>'AX>'AS("`@ XM("`@("`@>'AX>'AX>'AX"GAX>'AX>'AX("`@("`@('AX>'AX>'AX>'AX>'AX XM("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("!X>'AX XM>'AX>'AX>'AX>',@("`@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX XM=R`@("`@("`@>'AX>'AX>'AX>'AX("`@("`@("!X>'AX>'AX>'AX'AX>'AX>'AX>'AS("`@("`@("`@('AX>'AX>'AX>`IX>'AX>'AX XM>"`@("`@("!X>'AX>'AX>$9X>'AX>"`@("!X>'AX1GAX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX("`@("`@("`@87AX>'AX>'AX>',@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@87AX>'AX>'AX>'AW("`@("`@('AX>'AX>'AX>'AX>"`@ XM("`@("`@>'AX>'AX>'AX'AX>'AX>'@*>'AX>'AX>'@@("`@("`@>'AX>'AX'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!A>'AX>'AX>'AX XM>'<@("`@("!X>'AX>'AX>'AX>'@@("`@("`@('AX>'AX>'AX'AX>'AX>'AX"GAX>'AX>'AX XM("`@("`@('AX>'AX>&8@("`@("`@("`@("`@("`@("!X>'AX>'AX>'AX>'AX XM>'AX>'AX>'AF("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@('AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX("`@ XM("`@("!X>'AX>'AX'AX>'AX>`IX>'AX>'AX>"`@("`@("!X>'AX>'AW("`@("`@("`@ XM("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X>'AX>'AX>'AX XM>"`@("`@('AX>'AX>'AX>'AX>"`@("`@("`@>'AX>'AX>"`@("`@("`@('%X XM>'AW("`@("`@("`@("`@("`@("`@("`@("!X>'AX>'AX>'@*>'AX>'AX>'AW XM("`@("`@87AX>'AX>'AW("`@("`@("`@("`@("`@('AX>'AX>'AX>'AX>'AX XM>'AX>'AS("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("!Q>'AX>'AX>'AX>'@@("`@("!X>'AX>'AX>'AX>'@@("`@ XM("`@(&%X>'AX>'@@("`@("`@("!X>'AX>'<@("`@("`@("`@("`@("`@("`@ XM("!Q>'AX>'AX>'AX"GAX>'AX>'AX>'<@("`@("!X>'AX>'AX>'<@("`@("`@ XM("`@("!R("!X>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@("!Q>'AX XM>'AX>'AX=R`@("`@("`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM("`@("`@>'AX>'AX>'AX>'AX("`@("`@("`@87AX>'AS("`@("`@("`@>'AX XM>'AX>'<@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX>`IX>'AX>'AX>'AX XM=R`@("`@87AX>'AX>'AX>'<@("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX XM>'AS("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'@@("`@("`@("`@("!X>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@('AX>'AX>'AX>'AX>"`@("`@ XM("`@("!A>'AS("`@("`@("`@('AX>'AX>'AX=R`@("`@("`@("`@("!A>'AX XM>'AX>'AX>'AX>'@*>'AX>'AX>'AX>'AW("`@("`@87AX>'AX>'AX("`@("`@ XM("`@>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@("`@("!Q>'AX>'AX XM>'AX>'AX("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@ XM("`@("!X>'AX>'AX>'AX>'@@("`@("`@("`@("`@("`@("`@("`@('%X>'AX XM>'AX>'AX=R`@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX"GAX>'AX>'AX>'AX XM>'<@("`@("!X>'AX>'AX>"`@("`@("`@('AX>'AX>'AX>'AX>'AS("`@("`@ XM("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'AX>"`@("`@("`@("`@('AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@87AX>'AX>'AX>'AX("`@("`@ XM("`@("`@("`@("`@("`@("!X>'AX>'AX>'AX>'AW("`@("`@("`@("`@87AX XM>'AX>'AX>'AX>`IX>'AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'@@("`@("`@ XM("!X>'AX>'AX>'AX>',@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX XM>'AX>'@@("`@("`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX'AX>'AX>"`@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX XM>'AX>'AX>'AW("`@("`@("`@("!A>'AX>'AX>'AX>'@*>'AS("!A>'AX>'AX XM>"`@("`@('AX>'AX>'AX("`@("`@("`@>'AX>'AX>'AX>',@("`@("`@("`@ XM("`@("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@>'AX>'AX XM>'AX>'AX>'AX>'AX>"`@("`@("`@("`@("`@("`@>'AX>'AX>'@@("`@("`@ XM("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@(&%X XM>'AX>'AX>'AX"GAS("`@(&%X>'AX>'AW("`@("!A>'AX>'AX>"`@("`@("`@ XM('AX>'AX>'AX>',@("`@("`@("`@("`@("`@("`@('%X>'AX>'AX>'AX>'AX XM>'AX>"`@("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("`@ XM("`@("`@(&%X>'AX>'AX=R`@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX XM>'AX>'AX>'AW("`@("`@("`@("`@>'AX>'AX>'AX>`IX("`@("`@87AX>'AX XM>'<@("`@(&%X>'AX>',@("`@("`@("!A>'AX>'AX>',@("`@("`@("`@("`@ XM("`@("`@'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@(&1X>'AX>'AX XM>'AX'AX>'@@("`@("`@ XM("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@("`@('AX XM>'AX>'AX>'@*>"`@("`@("!A>'AX>'AX=R`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX XM>'AX("`@("`@("`@("!Q>'AX>'AX>'AX>"`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("!A>'AX>'AX=R`@("`@("`@("`@("`@("`@<7AX>'AX>'AX>'AX XM>'AX>'AX>'AX=R`@("`@("`@("!X>'AX>'AX>'AX"G@@("`@("`@(&%X>'AX XM>'AW("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX'AX>'AX>'AX XM>'@@("`@("`@("`@('%X>'AX>'AW("`@("`@("`@('AX>'AX>'AW("`@("`@ XM("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@>'AX XM>'AX>'AX>`IX("`@("`@("`@>'AX>'AX>'<@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS XM("`@("`@("`@("!X>'AX>'AX>'AX>'AX=R`@("`@("`@("!X>'AX>'AX>'<@ XM("`@("`@("!X>'AX>'AX>'<@("`@("`@("`@("`@('AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX("`@("`@("`@('AX>'AX>'AX>'@*>"`@("`@("`@(&%X>'AX XM>'AX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@*B`@("!Q>'AX XM>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'AX XM>'AW("`@("`@("`@>'AX>'AX>'AX("`@("`@("`@>'AX>'AX>'AX>'<@("`@ XM("`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("!X>'AX XM>'AX>'AX"G@@("`@("`@("`@(&%X>'AX>'AX>'AW("`@("`@('%X>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@ XM("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@('AX>'AX>'AX>'<@ XM("`@("`@('AX>'AX>'AX>'AX=R`@("`@("`@("`@87AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'@@("`@("`@("`@>'AX>'AX>'AX>`IX("`@("`@("`@("`@>'AX XM>'AX>'AX>"`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX XM>'AX=R`@("`@("!X>'AX>'AX>'AX("`@("`@("!X>'AX>'AX>'AX>'AX=R`@ XM("`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@('AX>'AX XM>'AX>'@*>"`@("`@("`@("`@('AX>'AX>'AX>'@@("`@("!X>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@ XM("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',@("`@("`@>'AX>'AX>'AX>"`@ XM("`@("`@>'AX>'AX>'AX>'AX>'AW("`@("`@("`@>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>"`@("`@("`@("!X>'AX>'AX>'AX"G@@("`@("`@("`@("!X>'AX XM>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AS("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>',@("`@("`@('AX>'AX>'AX>'AW("`@("`@('AX>'AX>'AX>'AX>'AX>'<@ XM("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("`@>'AX>'AX XM>'AX>`IX("`@("`@("`@("`@>'AX>'AX>'AX>"`@("`@('AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX'AX>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("`@("!X>'AX>'AX>'AX>'<@ XM("`@("!X>'AX>'AX>'AX>'AX>'AX=R`@("`@("!A>'AX>'AX>'AX>'AX>'AX XM>'AX>',@("`@("`@("`@('AX>'AX>'AX>'@*>"`@("`@("`@("`@('AX>'AX XM>'AX>'@@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>"`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX>',@("`@ XM("`@("`@("`@>'AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX>'AX>'AW XM("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("!X>'AX>'AX XM>'AX"G@@("`@("`@("`@("!X>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("!R<7AX>'AX XM>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("`@("`@('AX>'AX>'AX>'AX>"`@ XM("`@('AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("!X>'AX>'AX>'AX>'AX>'AX XM>'AX("`@("`@("`@("`@>'AX>'AX>'AX>`IX("`@('AW("`@("`@87AX>'AX XM>'AX>"`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@ XM("`@("`@("!X>'AX>'AX>'AX>'AW("`@("!X>'AX>'AX>'AX>'AX>'AX>'@@ XM("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@('AX>'AX>'AX XM>'@*>"`@("!X>'<@("`@("!A>'AX>'AX>'@@("`@("!X>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("!Q>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX>"`@ XM("`@>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@('AX>'AX>'AX>'AX>'AX>'AX XM>'@@("`@("`@("`@("!&>'AX>'AX>'AX"G@@("`@>'AX=R`@("`@("!A>'AX XM>'AX("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'@@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX'AX>'AX>'AX>',@("`@('AX>'AX>'AX>'AX>'AX>'AX>"`@ XM("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@>'AX>'AX>'AX XM>`IX("`@('AX>'@@("`@("`@(&%X>'AX'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX'AX>'AX>'AX>',@("`@ XM("!X>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX XM>"`@("`@("`@("`@('AX>'AX>'AX>'@*>"`@("!X>'AX=R`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>"`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@ XM("`@("!X>'AX>'AX>'AX>'@@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX("`@ XM("`@('AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("!X>'AX>'AX>'AX XM"G@@("`@>'AX>'@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("!X>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>',@("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AS("`@("!X XM>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX XM("`@("`@("`@("`@>'AX>'AX>'AX>`IX("`@('AX>'AX=R`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX("`@("`@87AX>'AX>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("`@("`@ XM("`@('AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@ XM("!X>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@('AX>'AX>'AX>'@* XM>"`@("!X>'AX>'AX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('%X XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX'AX>'AX>'AX>'A& XM>'AX>'AX>',@("`@("`@("`@("`@("`@('%X>'AX>'AX>'AX>"`@("`@<7AX XM>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'@@ XM("`@("`@("`@("!X>'AX>'AX>'AX"G@@("`@>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AW("`@("`@("`@("`@("!X>'AX>'AX>'AX>'AX>'AS("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@<7AX>'AX XM>'AX>'AX>'AX>'AX>',@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@>'AX>'AX>'AX>`IX XM("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@("`@>'AX XM>'AX>'AX>'AX>'AX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("!X>'AX XM>'AX>'AX>'AX>'AX>'AX'AX>'AX>'AX>'AX>'AX>'AX>"`@ XM("`@("`@("`@('AX>'AX>'AX>'@*>"`@("!A>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AW("`@("`@("`@("`@('AX>'AX>'AX>'AX>'AX'AX>'AX XM>'AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("!X>'AX>'AX>'AX"G@@ XM("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@("`@("!A>'AX XM>'AS("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@('AX>'AX XM>'AX>'AX>'AX>'AX'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@ XM("`@("`@("`@>'AX>'AX>'AX>`IX("`@("`@("`@("`@87AX>'AX>'AX>'AX XM>'AX>'AX>'<@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@('%X>'AX=R`@("`@("`@("`@("`@("`@("`@>'AX>'AX>'AX XM>'AX>'AX>'AX>'@@("`@("!X>'AX>'AX>'AX>'AX>'AX'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@('AX>'AX>'AX>'@*>"`@ XM("`@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('%X>'AX>'AW("`@("`@ XM("`@("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@ XM("`@("`@("!X>'AX>'AX>'AX"G@@("`@("`@("`@("`@("`@("!A>'AX>'AX XM>'AX>'AX>'AX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@<7AX>'AX>'AX>'<@("`@("`@("`@("`@("`@(&1X>'AX>'AX>'AX XM>'AX>'AX>'AX>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@>'AX>'AX>'AX>`IX("`@ XM("`@("`@("`@("`@("`@("`@("`@(&%X>'AX>'AX>'AX=R`@("`@("`@("`@ XM("`@("`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=R`@("`@ XM("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@ XM("`@("`@('AX>'AX>'AX>'@*>'AX>'AX>'AW("`@("`@("`@("`@("`@("`@ XM>'AX>'AX>'AX>'AW("`@("`@("`@("`@("`@("`@("`@("`@('AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("`@("`@("`@('AX>'AX>'AX>'AX XM>'AX>'AX>'AX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@('%X>'AX>'AX>'AX"GAX>'AX XM>'AX>'<@("`@("`@("`@("`@("`@<7AX>'AX>'AX>'AX>'AW("`@("`@("`@ XM("`@("`@("`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@('AX>'AX>'AX XM>'AX>'AX=R`@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@ XM("`@('%X>'AX>'AX>'AX>`IX>'A&>'AX>'AX>'<@("`@("`@("`@("`@<7AX XM>'AX>'AX>'AX>'AX>'<@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'@@("`@("!X>'AX>'AX>'AX>'AX>'@@("`@("`@("`@(&%X>'AX XM>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@('%X>'AX>'AX>'AX>'@*>"`@("`@ XM87AX>'AX=R`@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@ XM("`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@>'AX>'AX>'AX XM>'AX>'AX=R`@("`@("`@("`@87AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@ XM("!A>'AX>'AX>'AX>'AX"G@@("`@("!A>'AX>'AW("`@("`@("`@("`@("`@ XM("!A>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AS("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>"`@("`@('AX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@("!A>'AX XM>'AX>'AX>'AX>'AX>'AX("`@("`@("`@(&%X>'AX>'AX>'AX>`IX("`@("`@ XM(&%X>'AX>'<@("`@("`@("`@("`@("`@("!A>'AX>'AX>'AX>'AX>'AW("`@ XM("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@("`@ XM('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("!X>'AX>'AX>'AX XM>'AX>'AX>'<@("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@ XM("!Q>'AX>'AX>'AX>'@*>"`@("`@("`@(&%X>'AX=R`@("`@("`@("`@("`@ XM("`@(&%X>'AX>'AX>'AX>'AX'AX>'AX>'AX>'AX XM>'AX>'AS("`@("`@("`@("`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX=W(@("`@("`@("`@87AX XM>'AX>'AX>'AX>'AX>'@@("`@("!Q>'AX>'AX>'AX>'AX>'AX"GAW("`@("`@ XM("`@87AX>'AW("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AS("`@("`@("`@("`@("`@("`@ XM('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX'AX>'AX>'AX XM>'AX>'AX>'AX=R`@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX("`@("`@87AX XM>'AX>'AX>'AX>'AX>`IX>'<@("`@("`@(&1X>'AX>'<@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X>'AX>'AX>'AX XM>',@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@(&%X XM>'AX>'AX>'AX>'AX'AX>'AX>'AX>'AX>'@*>'AX=R`@("`@ XM("`@87AX>'AX>'AX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@87AX>'AX>'AS("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'<@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(&%X XM>'AX>'AX>'AX>'AX"GAX>'AR("`@("`@("!X>'AX>'AX>'@@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@87AX>'AX>'AX>'AX>`IX>'AX>'<@("`@ XM("`@87AX>'AX>'AX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!A XM>'AX>'AX>'AX>'@*>'AX>'AS("`@("`@("!A>'AX>'AX>'AX>'AX>'AX=R`@ XM("`@<7AX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@('AX>'AX>'AX>'AX"GAX>'AS("`@("`@ XM("`@('AX>'AX>'AX>'AX>'AX>'@@("`@('AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'<@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`J("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('%X XM>'AX>'AX>'AX>`IX>'AS("`@("`@("`@('%X>'AX>'AX>'AX>'AX>'AX("`@ XM("!X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@("`@("`@("`@ XM("`@("`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@("!Q>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX'AX>'AX>'AX>'@*>'AS("`@("`@("`@ XM<7AX>'AX>'AX>'AX>'AX>'AX>"`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'<@("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'@@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX'AX>'AX XM>'AX>'AX>'AX"GAS("`@("`@("`@('AX>'AX>'AX>'AX>'AX>'AX>'@@("`@ XM('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@("`@ XM('AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@('AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>"`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@>'AX>'AX>'AX>'AX>'AX>`IX("`@("`@("`@("!X END_OF_FILE if test 28477 -ne `wc -c <'maps/cave.uue.1'`; then echo shar: \"'maps/cave.uue.1'\" unpacked with wrong size! fi # end of 'maps/cave.uue.1' fi if test -f 'maps/whirlpools+war.uue' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'maps/whirlpools+war.uue'\" else echo shar: Extracting \"'maps/whirlpools+war.uue'\" \(8865 characters\) sed "s/^X//" >'maps/whirlpools+war.uue' <<'END_OF_FILE' Xbegin 644 whirlpools+war.map XM,3$P>#4W"C0*5VAI&5R8VES92!I;B!-87-O8VAI'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>`IX("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AS("`@("`@("`@86-S("`@(&,@("`@(&%C8W,@("`@("`@87AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>`IX("`@("`@("!A>'AX XM>'AX>'AX1D9X>'AX>'A&1GAX>'AX>'AS("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("!A>&-X8WAC>'AC>'AX>'AX>'AX XM>'AX>'AX>`IX("`@("`@("`@87AX>'AX>'AS("`@>'AX>',@("!X>'AX'AX>'AX>'AX>`IX("`@("`@("`@("!A8W,@ XM("`@("`@(&%C'AX XM>'AX>`IX("`@("!7("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@<7AX("`@("`@ XM("`@("`@("`@("`@("`@("`@(&1X>'AX>`IX("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@('%X>'AF("`@("`@("`@("`@("`@("`@("`@("`@("!D>'AX XM>`IX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!Q>'AF("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@(&1X>`IX9B`@("`@("`@("`@('(@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!7("`@("`@("`@ XM("`@('%X9B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(&1X>`IX XM`IX("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@(&,@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM<7AF("`@("`@("`@("`@("`@("`@("`@("`@5R`@("`@("`@(&1X>`IX("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@>&8@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@(&1X>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>&8@ XM("`@("`@("`@("`@("`@/B`@("`@("`@("`@("`@("`@(&1X>`IX("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@>&8@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@(&1X>`IX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@87AF("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX>'AW("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@(&%X9B`@("`@("`@("`@("`@("`@("`@("`@("`@ XM9'AX>"`@("!D>`IX>'AX=R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@('%X&8@("`@ XM("`@("`@("`@("`@("`@("`@(&1X>'AF("`@("!D>`IX>'AX>'AF("`@("`@ XM('%X')X=R`@("`@("`@("`@("`@("`@("`@('AX>'AX>"`@("`@ XM("`@("`@("`@("`@("`@87AX9B`@("`@("`@("`@("`@("`@("`@9'AX`IX>'AX'AX>'AX>'AX>"`@("`@("`@("`@ XM("`@("`@("`@<7AX>'AS("`@("`@("`@("`@("`@("`@("`@(&%X>'AF("`@ XM("`@("`@("`@(&1X>'AX>'AS("`@("`@("`@>`IX>'AX("`@("`@("`@>'AX XM>'AX>'AX>'AX>'<@("`@("`@("`@("`@("`@("`@>'AX>'@@("`@("`@("`@ XM("`@("`@("`@("`@("!A>'AX>&8@("`@("`@9'AX>'AX>'AX`IX>'AS("`@("`@("`@>'AX>'AS("`@(&%X>'AW("`@("`@("`@("`@ XM("`@("`@>'AX>',@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@>`IX>'@@("`@("`@("`@("`@("`@ XM("`@("!X>'AX("`@("`@("`@("`@("`@("`@>'AX`IX>',@("`@("`@("`@("`@("`@("`@("`@87AS("`@("`@("`@("`@("`@ XM("`@>'A&("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@>`IX'<@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!Q>`IX XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM(&%X>'AX9B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("!D>`IX("`@("`@("`@("`@("`@("`@("`@("!X XM>'AW("!Q>'AX=R`@("`@("`@("`@("!A>'AX>'<@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!A>`IX("`@ XM("`@("`@("`@("`@("`@("!Q>'AX>'AX'AX>'AX("`@("`@("`@("`@ XM87AX>'@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@>`IX("`@("`@("`@("`@("`@("`@("!A>'AX>'AX XM>'AX>'AX>'AX=R`@("`@("`@("`@(&%X>'AW("`@("`@("`@("`@("`@("`@ XM("`@('(@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX("`@("`@ XM("`@("`@("`@("`@("!Q>'AX>'AX>&-C>'AX>'AX>"`@("`@("`@("`@("!X XM>'AX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@>`IX=R`@("`@("`@("`@("`@("`@>'AX>'A&>'AS("`@ XM("!A>'AX>"`@("`@("`@("`@("!X>'AX=R`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX9B`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@(&%X>"`@("`@("`@("`@("!A>'AX XM9B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@>`IX'AX`IX("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@87AX("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@8R`@("`@("`@("`@("`@("`@("`@ XM("`@("`@>`IX("`@("`@("`@("`@("`@("!7("`@("`@("`@("`@("`@("`@ XM("`@("`@("!&("`@("`@("!C("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!D=R`@("`@ XM("`@>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@8R`@("`@("`@>`IX("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@(&1X>'AX>'AX=R`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM>`IX("`@("`@("`@("`@('%X>'<@('%X>'AX=R`@("`@("`@("`@(')X>'AX XM>'AX>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@>`IX("`@("`@("`@("`@(&%X>'AX>'AX XM>'AX>"`@("`@("`@("`@('AX>'AX>'AX>'<@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX XM("`@("`@("`@("`@('%X>'AX>'AX>'AX'AX XM>'@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@>`IX("`@("`@("`@('%X>'AS(&%X>'AX>',@ XM("`@("`@("`@("`@("`@("`@(&%X>'AW("`@("`@("`@("`@("`@("`@("`@ XM("`@`IX("`@ XM("`@("`@(&%X>',@("`@("`@("`@("`@("`@('(@("`@("`@("`@("!A>'AX XM("`@("`@("`@("`@("`@("`@("`@("!D>&8@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@9$9F("`@("`@("`@("`@87AX("`@("`@("`@("`@("`@("`@("`@("`@ XM8R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX=R`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@(&,@("`@("`@("`@("`@('AX("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@>`IX9B`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@(&%X("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>`IX`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X>`IX("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@('%X>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@('AX>`IX("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM9'AX>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@('AX>`IX("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('AX XM>`IX("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@`IX("`@("`@("`@("`@("`@("`@("`@ XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@<7)W("`@("`@ XM("!Q>'<@("`@("`@("`@("`@("`@("`@("`@("`@`IX XM("`@("`@("`@("`@("`@("`@("`@("`@('%X=R`@<7AW("`@("`@('(@("`@ XM('(@("`@("`@('%X>'AX>'<@("`@<7AX>'AW("`@("`@("`@("`@("`@("`@ XM("`@<7AX>'AX>'AX=R`@("!A>`IX1BI&*D8J1BI&*D8J1BI&*D8J1BI&*D8J XM1GAX>$9&>'AX>'AW("`@<49W("`@<49W("!Q>'AX>'AX>'AX>'AX>$9X>'AX XM>'AX>'<@("`@("`@("`@("`@("!Q>'AX>'AX>'AX>'AX>'<@("`@>`IX>$9X XM1GA&>$9X1GA&>$9X1GA&>$9X1GA&>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX X2>'AX>'AX>'AX>'AX>$9X>`H* X` Xend END_OF_FILE if test 8865 -ne `wc -c <'maps/whirlpools+war.uue'`; then echo shar: \"'maps/whirlpools+war.uue'\" unpacked with wrong size! fi # end of 'maps/whirlpools+war.uue' fi if test -f 'src/update.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/update.c'\" else echo shar: Extracting \"'src/update.c'\" \(8207 characters\) sed "s/^X//" >'src/update.c' <<'END_OF_FILE' X/* $Id: update.c,v 1.11 1992/07/11 02:08:40 bjoerns Exp $ X * X * This file is part of the XPilot project, written by X * X * Bjxrn Stabell (bjoerns@stud.cs.uit.no) X * Ken Ronny Schouten (kenrsc@stud.cs.uit.no) X * X * Copylefts are explained in the LICENSE file. X */ X X#include "global.h" X#include "map.h" X#include "score.h" X#include "draw.h" X X#ifndef lint Xstatic char sourceid[] = X "@(#)$Id: update.c,v 1.11 1992/07/11 02:08:40 bjoerns Exp $"; X#endif X X X X#define speed_limit(obj) { \ X if (ABS((obj).velocity>SPEED_LIMIT)) { \ X double theta = atan2((obj).vel.y, (obj).vel.x); \ X (obj).vel.x = cos(theta)*SPEED_LIMIT; \ X (obj).vel.y=sin(theta)*SPEED_LIMIT; \ X } \ X} X X#define update_object_pos(obj) { \ X int x=(int)((obj).pos.x/BLOCK_SZ), y=(int)((obj).pos.y/BLOCK_SZ); \ X if (x<0 || x>=World.x || y<0 || y>=World.y) { \ X LIMIT((obj).pos.x, 0.0, BLOCK_SZ*World.x-1.0); \ X LIMIT((obj).pos.y, 0.0, BLOCK_SZ*World.y-1.0); \ X } else { \ X if (!BIT((obj).status, GRAVITY)) { \ X (obj).pos.x += (obj).vel.x += (obj).acc.x; \ X (obj).pos.y += (obj).vel.y += (obj).acc.y; \ X (obj).velocity = LENGTH((obj).vel.x, (obj).vel.y); \ X } else { \ X (obj).pos.x += (obj).vel.x += (obj).acc.x + World.gravity[x][y].x; \ X (obj).pos.y += (obj).vel.y += (obj).acc.y + World.gravity[x][y].y; \ X } \ X /* speed_limit(obj); */ \ X (obj).velocity = LENGTH((obj).vel.x, (obj).vel.y); \ X } \ X} X X X Xstatic char msg[MSG_LEN]; X Xextern unsigned long loops; X X X X/********** ********** X * Updating objects and the like. X */ Xvoid Update_objects(void) X{ X int i, j; X player *pl; X X X X /* X * Update robots. X */ X Update_robots(); X X /* X * Special items. X */ X j = rand(); X for (i=0; i MAX_STATION_FUEL) X World.fuel[i].left = MAX_STATION_FUEL; X } X X /* X * Update shots. X */ X for (i=0; itype == OBJ_SMART_SHOT) X Move_smart_shot(i); X } X X /* X * Updating cannons, maybe a little bit of fireworks too? X */ X for (i=0; i 0) { X World.cannon[i].dead_time--; X continue; X } X if (World.cannon[i].active) { X if ((rand()%20)==0) X Cannon_fire(i); X } X World.cannon[i].active = false; X } X X X /* * * * * * X * X * Player loop. Computes miscellaneous updates. X * X */ X for (i=0; ipower, MIN_PLAYER_POWER, MAX_PLAYER_POWER); X LIMIT(pl->turnspeed, MIN_PLAYER_TURNSPEED, MAX_PLAYER_TURNSPEED); X LIMIT(pl->turnresistance, 0.0, 1.0); X X if (pl->control_count>0) X pl->control_count--; X if (pl->fuel_count>0) X pl->fuel_count--; X X if (pl->count>0) { X pl->count--; X if (!BIT(pl->status, PLAYING)) { X pl->vel.x = (BLOCK_SZ*World.base[pl->home_base].x X + BLOCK_SZ/2 - pl->pos.x) / (pl->count+1); X pl->vel.y = (BLOCK_SZ*World.base[pl->home_base].y X + BLOCK_SZ/2 - pl->pos.y) / (pl->count+1); X goto update; X } X } X X if (pl->count == 0) { X pl->count = -1; X X if (!BIT(pl->status, PLAYING)) { X SET_BIT(pl->status, PLAYING); X Go_home(i); X } X if (BIT(pl->status, SELF_DESTRUCT)) { X sprintf(msg, "%s has comitted suicide.", pl->name); X Set_message(msg); X Kill_player(i); X pl->check = 0; X pl->round = 0; X pl->time = 0; X } X } X X if ((!BIT(pl->status, PLAYING)) || BIT(pl->status, GAME_OVER)) X continue; X X#ifdef THRUST_TURN X if (pl->turnacc != 0.0) X Turn_thrust(i); X#endif X X /* X * Compute turn X */ X pl->turnvel += pl->turnacc; X pl->turnvel *= pl->turnresistance; X pl->double_dir += pl->turnvel; X X if (pl->double_dir < 0) X pl->double_dir += RES; X if (pl->double_dir >= RES) X pl->double_dir -= RES; X X/* if (pl->double_dir < 0) X pl->double_dir -= RES * (((int)pl->double_dir)/RES); X if (pl->double_dir >= RES) X pl->double_dir -= RES * (((int)pl->double_dir)/RES); X*/ X pl->dir = pl->double_dir; X pl->dir %= RES; X X X /* X * Compute energy drainage X */ X if (BIT(pl->used, OBJ_SHIELD)) X pl->fuel += ED_SHIELD; X X if (BIT(pl->used, OBJ_CLOAKING_DEVICE)) X pl->fuel += ED_CLOAKING_DEVICE; X X#define UPDATE_RATE 100 X X for (j = 0; j < NumPlayers; j++) X { X if (pl->forceVisible) X Players[j]->visibility[i].canSee = 1; X X if (i == j || !BIT(Players[j]->used, OBJ_CLOAKING_DEVICE)) X pl->visibility[j].canSee = 1; X else X if (pl->updateVisibility || Players[j]->updateVisibility || X rand() % UPDATE_RATE < X ABS(loops - pl->visibility[j].lastChange)) { X X pl->visibility[j].lastChange = loops; X pl->visibility[j].canSee = rand() % (pl->sensors + 1) > X (rand() % (Players[j]->cloaks + 1)); X } X } X X if (BIT(pl->used, OBJ_REFUEL)) { X if ((LENGTH((pl->pos.x-World.fuel[pl->fs].pos.x), X (pl->pos.y-World.fuel[pl->fs].pos.y)) > 90.0) X || (pl->fuel > pl->max_fuel)) { X CLR_BIT(pl->used, OBJ_REFUEL); X } else X if (World.fuel[pl->fs].left > 5.0) { X World.fuel[pl->fs].left -= 5.0; X pl->fuel += 5.0; X } else { X pl->fuel += World.fuel[pl->fs].left; X World.fuel[pl->fs].left = 0.0; X CLR_BIT(pl->used, OBJ_REFUEL); X } X } X if (pl->fuel <= 0.0) { X pl->fuel = 0.0; X CLR_BIT(pl->used, OBJ_SHIELD|OBJ_CLOAKING_DEVICE); X CLR_BIT(pl->status, THRUSTING); X } X if (pl->fuel > MAX_PLAYER_FUEL) { X pl->fuel = MAX_PLAYER_FUEL; X CLR_BIT(pl->used, OBJ_REFUEL); X } X X /* X * Update acceleration vector etc. X */ X if (BIT(pl->status, THRUSTING)) { X pl->acc.x = pl->power * tcos(pl->dir) / pl->mass; X pl->acc.y = pl->power * tsin(pl->dir) / pl->mass; X pl->fuel -= pl->power * 0.02; /* Decrement fuel */ X } else { X pl->acc.x = pl->acc.y = 0.0; X } X X pl->mass = pl->emptymass + (pl->fuel*0.005); X X if (BIT(pl->status, WARPING)) { X int dest; X X dest = rand() % World.NumWormholes; X pl->pos.x = World.wormhole[dest].x * BLOCK_SZ + X (pl->vel.x < 0.0 ? -BLOCK_SZ : BLOCK_SZ) * 1.5; X pl->pos.y = World.wormhole[dest].y * BLOCK_SZ + X (pl->vel.y < 0.0 ? -BLOCK_SZ : BLOCK_SZ) * 1.5; X CLR_BIT(pl->status, WARPING); X } X X update: X if (!BIT(pl->status, PAUSE)) X update_object_pos(*pl); /* New position */ X X if (BIT(pl->status, THRUSTING)) X Thrust(i); X X /* X * Updating time player has used. Only used when timing X */ X if (pl->round != 0) X pl->time++; X X if (pl->round == 4) { X if ((pl->time < pl->best_run) || (pl->best_run == 0)) X pl->best_run = pl->time; X Players[i]->last_lap_time = Players[i]->time X - Players[i]->last_lap; X Kill_player(i); X pl->round = 0; X pl->check = 0; X pl->time = 0; X } X X switch (pl->lock.tagged) { X case LOCK_PLAYER: X pl->lock.distance = LENGTH(pl->pos.x - X Players[GetInd[pl->lock.pl_id]]->pos.x, X pl->pos.y - X Players[GetInd[pl->lock.pl_id]]->pos.y); X pl->sensor_range = MAX(pl->fuel*ENERGY_RANGE_FACTOR, X VISIBILITY_DISTANCE); X break; X X default: X break; X } X X pl->used &= pl->have; X X pl->world.x = pl->pos.x-CENTER; /* Scroll */ X pl->world.y = pl->pos.y-CENTER; X } X X for (i = 0; i < NumPlayers; i++) X { X Players[i]->updateVisibility = 0; X X if (Players[i]->forceVisible) X { X Players[i]->forceVisible--; X X if (!Players[i]->forceVisible) X Players[i]->updateVisibility = 1; X } X } X X /* X * Checking for collision, updating score etc. (see collision.c) X */ X Check_collision(); X X X /* X * Kill players that ought to be killed. X */ X for (i=NumPlayers-1; i>=0; i--) X if (BIT(Players[i]->status, KILLED)) X Kill_player(i); X X /* X * Kill shots that ought to be dead. X */ X for (i=NumObjs-1; i>=0; i--) X if (--(Obj[i]->life) <= 0) X Delete_shot(i); X X /* X * Compute general game status, do we have a winner? X */ X Compute_game_status(); X} END_OF_FILE echo shar: 1 control character may be missing from \"'src/update.c'\" if test 8207 -ne `wc -c <'src/update.c'`; then echo shar: \"'src/update.c'\" unpacked with wrong size! fi # end of 'src/update.c' fi if test -f 'src/version.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/version.h'\" else echo shar: Extracting \"'src/version.h'\" \(532 characters\) sed "s/^X//" >'src/version.h' <<'END_OF_FILE' X/* $Id: version.h,v 1.11 1992/07/10 23:20:00 bjoerns Exp $ X * X * This file is part of the XPilot project, written by X * X * Bjxrn Stabell (bjoerns@stud.cs.uit.no) X * Ken Ronny Schouten (kenrsc@stud.cs.uit.no) X * X * Copylefts are explained in the LICENSE file. X */ X X#ifndef VERSION_H X#define VERSION_H X X#define MAJOR "1" X#define MINOR "2" X#define PATCHLEVEL "1" X X#define VERSION MAJOR "." MINOR " PL" PATCHLEVEL X#define TITLE "XPilot " VERSION X#define COPYRIGHT "(C) 1991-92 by Bjxrn Stabell & Ken Ronny Schouten" X X#endif END_OF_FILE echo shar: 2 control characters may be missing from \"'src/version.h'\" if test 532 -ne `wc -c <'src/version.h'`; then echo shar: \"'src/version.h'\" unpacked with wrong size! fi # end of 'src/version.h' fi echo shar: End of archive 21 \(of 24\). cp /dev/null ark21isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 24 archives. echo "\nNow run 'bldmaps.sh' to build the map files" rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0