v08i039: Xlife 2.0, Part03/10

Daniel Edward Lovinger dl2n+ at andrew.cmu.edu
Sat Jul 7 10:01:19 AEST 1990


Submitted-by: Daniel Edward Lovinger <dl2n+ at andrew.cmu.edu>
Posting-number: Volume 8, Issue 39
Archive-name: xlife/part03

#! /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 <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 3 (of 8)."
# Contents:  xlife-2.0/Makefile xlife-2.0/cellbox.c
#   xlife-2.0/doc/blockpusher.txt xlife-2.0/patterns/oscilators.life
#   xlife-2.0/patterns/p94.life
# Wrapped by dl2n at niobe.weh.andrew.cmu.edu on Mon Jul  2 22:48:07 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f xlife-2.0/Makefile -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"xlife-2.0/Makefile\"
else
echo shar: Extracting \"xlife-2.0/Makefile\" \(12211 characters\)
sed "s/^X//" >xlife-2.0/Makefile <<'END_OF_xlife-2.0/Makefile'
X# Makefile generated by imake - do not edit!
X# $XConsortium: imake.c,v 1.51 89/12/12 12:37:30 jim Exp $
X
X###########################################################################
X# Makefile generated from "Imake.tmpl" and </tmp/IIf.a04427>
X# $XConsortium: Imake.tmpl,v 1.77 89/12/18 17:01:37 jim Exp $
X#
X# Platform-specific parameters may be set in the appropriate .cf
X# configuration files.  Site-wide parameters may be set in the file
X# site.def.  Full rebuilds are recommended if any parameters are changed.
X#
X# If your C preprocessor doesn't define any unique symbols, you'll need
X# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing
X# "make Makefile", "make Makefiles", or "make World").
X#
X# If you absolutely can't get imake to work, you'll need to set the
X# variables at the top of each Makefile as well as the dependencies at the
X# bottom (makedepend will do this automatically).
X#
X
X###########################################################################
X# platform-specific configuration parameters - edit ultrix.cf to change
X
X# platform:  $XConsortium: ultrix.cf,v 1.20 89/12/22 15:56:14 rws Exp $
X# operating system:             Ultrix-32 3.1
X
X###########################################################################
X# site-specific configuration parameters - edit site.def to change
X
X# site:  $XConsortium: site.def,v 1.21 89/12/06 11:46:50 jim Exp $
X
X            SHELL = 	/bin/sh
X
X              TOP = .
X      CURRENT_DIR = .
X
X               AR = ar cq
X  BOOTSTRAPCFLAGS =
X               CC = cc
X
X         COMPRESS = compress
X              CPP = /lib/cpp $(STD_CPP_DEFINES)
X    PREPROCESSCMD = cc -E $(STD_CPP_DEFINES)
X          INSTALL = /usr/bin/install
X               LD = ld
X             LINT = lint
X      LINTLIBFLAG = -C
X         LINTOPTS = -axz
X               LN = ln -s
X             MAKE = make
X               MV = mv
X               CP = cp
X           RANLIB = ranlib
X  RANLIBINSTFLAGS =
X               RM = rm -f
X     STD_INCLUDES =
X  STD_CPP_DEFINES =
X      STD_DEFINES =
X EXTRA_LOAD_FLAGS =
X  EXTRA_LIBRARIES =
X             TAGS = ctags
X
X    PROTO_DEFINES =
X
X     INSTPGMFLAGS =
X
X     INSTBINFLAGS = -m 0755
X     INSTUIDFLAGS = -m 4755
X     INSTLIBFLAGS = -m 0664
X     INSTINCFLAGS = -m 0444
X     INSTMANFLAGS = -m 0444
X     INSTDATFLAGS = -m 0444
X    INSTKMEMFLAGS = -m 4755
X
X          DESTDIR =
X
X     TOP_INCLUDES = -I$(INCROOT)
X
X      CDEBUGFLAGS = -O
X        CCOPTIONS = -Wf,-XNh2000 -Olimit 2000
X      COMPATFLAGS =
X
X      ALLINCLUDES = $(STD_INCLUDES) $(TOP_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES)
X       ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS)
X           CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES)
X        LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES)
X           LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
X        LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)
X   LDCOMBINEFLAGS = -X -r
X
X        MACROFILE = ultrix.cf
X           RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut
X
X    IMAKE_DEFINES =
X
X         IRULESRC = $(CONFIGDIR)
X        IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
X
X     ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \
X			$(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \
X			$(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES)
X
X###########################################################################
X# X Window System Build Parameters
X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $
X
X###########################################################################
X# X Window System make variables; this need to be coordinated with rules
X# $XConsortium: Project.tmpl,v 1.63 89/12/18 16:46:44 jim Exp $
X
X          PATHSEP = /
X        USRLIBDIR = $(DESTDIR)/usr/local/$(DEPOTDIR)lib
X           BINDIR = $(DESTDIR)/usr/local/$(DEPOTDIR)bin
X          INCROOT = $(DESTDIR)/usr/local/$(DEPOTDIR)include
X     BUILDINCROOT = $(TOP)
X      BUILDINCDIR = $(BUILDINCROOT)/X11
X      BUILDINCTOP = ..
X           INCDIR = $(INCROOT)/X11
X           ADMDIR = /usr/bin
X           LIBDIR = $(USRLIBDIR)/X11
X        CONFIGDIR = $(LIBDIR)/config
X       LINTLIBDIR = $(USRLIBDIR)/lint
X
X          FONTDIR = $(LIBDIR)/fonts
X         XINITDIR = $(LIBDIR)/xinit
X           XDMDIR = $(LIBDIR)/xdm
X           AWMDIR = $(LIBDIR)/awm
X           TWMDIR = $(LIBDIR)/twm
X           GWMDIR = $(LIBDIR)/gwm
X          MANPATH = $(DESTDIR)/usr/local/$(DEPOTDIR)man
X    MANSOURCEPATH = $(MANPATH)/man
X           MANDIR = $(MANSOURCEPATH) x
X        LIBMANDIR = $(MANSOURCEPATH)3
X      XAPPLOADDIR = $(LIBDIR)/app-defaults
X
X       FONTCFLAGS = -t
X
X     INSTAPPFLAGS = $(INSTDATFLAGS)
X
X            IMAKE = imake
X           DEPEND = makedepend
X              RGB = rgb
X            FONTC = bdftosnf
X        MKFONTDIR = mkfontdir
X        MKDIRHIER = 	/bin/sh $(BINDIR)/mkdirhier.sh
X
X        CONFIGSRC = $(TOP)/config
X        CLIENTSRC = $(TOP)/clients
X          DEMOSRC = $(TOP)/demos
X           LIBSRC = $(TOP)/lib
X          FONTSRC = $(TOP)/fonts
X       INCLUDESRC = $(TOP)/X11
X        SERVERSRC = $(TOP)/server
X          UTILSRC = $(TOP)/util
X        SCRIPTSRC = $(UTILSRC)/scripts
X       EXAMPLESRC = $(TOP)/examples
X       CONTRIBSRC = $(TOP)/../contrib
X           DOCSRC = $(TOP)/doc
X           RGBSRC = $(TOP)/rgb
X        DEPENDSRC = $(UTILSRC)/makedepend
X         IMAKESRC = $(CONFIGSRC)
X         XAUTHSRC = $(LIBSRC)/Xau
X          XLIBSRC = $(LIBSRC)/X
X           XMUSRC = $(LIBSRC)/Xmu
X       TOOLKITSRC = $(LIBSRC)/Xt
X       AWIDGETSRC = $(LIBSRC)/Xaw
X       OLDXLIBSRC = $(LIBSRC)/oldX
X      XDMCPLIBSRC = $(LIBSRC)/Xdmcp
X      BDFTOSNFSRC = $(FONTSRC)/bdftosnf
X     MKFONTDIRSRC = $(FONTSRC)/mkfontdir
X     EXTENSIONSRC = $(TOP)/extensions
X
X  DEPEXTENSIONLIB =  $(USRLIBDIR)/libXext.a
X     EXTENSIONLIB = 			  -lXext
X
X          DEPXLIB = $(DEPEXTENSIONLIB)  $(USRLIBDIR)/libX11.a
X             XLIB = $(EXTENSIONLIB) 			  -lX11
X
X      DEPXAUTHLIB =  $(USRLIBDIR)/libXau.a
X         XAUTHLIB = 			  -lXau
X
X        DEPXMULIB =  $(USRLIBDIR)/libXmu.a
X           XMULIB = 			  -lXmu
X
X       DEPOLDXLIB =  $(USRLIBDIR)/liboldX.a
X          OLDXLIB = 			  -loldX
X
X      DEPXTOOLLIB =  $(USRLIBDIR)/libXt.a
X         XTOOLLIB = 			  -lXt
X
X        DEPXAWLIB =  $(USRLIBDIR)/libXaw.a
X           XAWLIB = 			  -lXaw
X
X LINTEXTENSIONLIB =  $(USRLIBDIR)/llib-lXext.ln
X         LINTXLIB =  $(USRLIBDIR)/llib-lX11.ln
X          LINTXMU =  $(USRLIBDIR)/llib-lXmu.ln
X        LINTXTOOL =  $(USRLIBDIR)/llib-lXt.ln
X          LINTXAW =  $(USRLIBDIR)/llib-lXaw.ln
X
X          DEPLIBS = $(LOCAL_LIBRARIES)
X
X         DEPLIBS1 = $(DEPLIBS)
X         DEPLIBS2 = $(DEPLIBS)
X         DEPLIBS3 = $(DEPLIBS)
X
X###########################################################################
X# Imake rules for building libraries, programs, scripts, and data files
X# rules:  $XConsortium: Imake.rules,v 1.67 89/12/18 17:14:15 jim Exp $
X
X###########################################################################
X# start of Imakefile
X
X#Imakefile for xlife 2.0
X
XPROGRAMS	= xlife lifeconv
X
XXLIFEPATSDIR	= /afs/andrew.cmu.edu/usr0/games/lib/xlife
X
XPATTERNS = \
X	12gliders.life \
X	2_ak47.life \
X	acorn.life \
X	ak47.life \
X	alu.life \
X	background1.life \
X	baker.life \
X	barberpole.life \
X	beaconmaker.life \
X	benchmark.life \
X	bheptomino.life \
X	bigglider.life \
X	billiards.life \
X	blinkership.life \
X	blinkership2.life \
X	blinkership3.life \
X	blockpusher.life \
X	blockpusher2.life \
X	blockpusher3.life \
X	blockpusher4.life \
X	boatcap.life \
X	boatmaker.life \
X	breeder.life \
X	bunnies.life \
X	centinal.life \
X	cheshirecat.life \
X	citiesindust.life \
X	clappinghands.life \
X	clock.life \
X	cmu.life \
X	cmu2.life \
X	cmu3.life \
X	collapsecap.life \
X	counter.life \
X	cow.life \
X	cross.life \
X	diagfuse.life \
X	eaters3.life \
X	f.life \
X	f2.life \
X	f3.life \
X	fencepost.life \
X	figure8.life \
X	fisheater.life \
X	flasher.life \
X	flywheel.life \
X	fusebranch.life \
X	fusecorner.life \
X	fusehinge.life \
X	futility.life \
X	gardenofeden.life \
X	gear.life \
X	glider.life \
X	gliderarmyof256.life \
X	gliderbackcap.life \
X	gliderforecap.life \
X	glidergen1.life \
X	glidergen2.life \
X	glidergen3.life \
X	glidergen4.life \
X	glidergen5.life \
X	glidergen6.life \
X	glidergen7.life \
X	gliderglidergun.life \
X	glidergun.life \
X	glidergun2.life \
X	glidermesscap.life \
X	gliders1_2.life \
X	gliders2_2.life \
X	gliders4_4.life \
X	glidersidecap.life \
X	glidersparcap.life \
X	glidertofish.life \
X	gourmet.life \
X	greymatter1.life \
X	gunandeater.life \
X	harvester.life \
X	horizfuse.life \
X	j.life \
X	kickback.life \
X	lambdabomb.life \
X	largefish.life \
X	line.life \
X	longfuse.life \
X	longfuse2.life \
X	longsnake.life \
X	mediumfish.life \
X	mediumfishgun.life \
X	mediumfishgun2.life \
X	morejunk.life \
X	oscilators.life \
X	oscillator1.life \
X	oscillator2.life \
X	oscillator3.life \
X	oscillator6.life \
X	oscillator7.life \
X	p120glider.life \
X	p24.life \
X	p26.life \
X	p28.life \
X	p47.life \
X	p54shuttle.life \
X	p55.life \
X	p66.life \
X	p94.life \
X	pentadecathlon.life \
X	piecollection.life \
X	pifuse.life \
X	piston.life \
X	piston2.life \
X	puffertrain.life \
X	pulsar18-22-20.life \
X	pulsar48-56-72.life \
X	pulse.life \
X	pulse1.life \
X	pulse2.life \
X	pump.life \
X	r.life \
X	rabbit.life \
X	rake.life \
X	rake2.life \
X	rake3.life \
X	rake4.life \
X	rake5.life \
X	rake6.life \
X	rake7.life \
X	rakecollision.life \
X	rakeshipgun.life \
X	randomgun.life \
X	relay.life \
X	round.life \
X	rpentomino.life \
X	schooloffish.life \
X	sglider.life \
X	shiningflower.life \
X	sixgliders.life \
X	skyline.life \
X	slowship.life \
X	slowship2.life \
X	slowship3.life \
X	smallfish.life \
X	smallfishgun.life \
X	somejunk.life \
X	spark.life \
X	spark2.life \
X	sparkfuse.life \
X	sparktopifuse.life \
X	squareblinker.life \
X	squarecap.life \
X	squaredance.life \
X	stargaterepeater.life \
X	switchengine.life \
X	test.life \
X	testtube.life \
X	testtubebaby.life \
X	thunderbird.life \
X	thunderbirdfuse.life \
X	turbine8.life \
X	washerwoman.life \
X	wave1.life
X
XSRCS1 =  \
X	button.c\
X	cell.c\
X	cellbox.c\
X	data.c\
X	expose.c\
X	file.c\
X	file_misc.c \
X	generate.c\
X	gentab.c\
X	help.c\
X	key.c\
X	keyin.c\
X	main.c\
X	motion.c\
X	resize.c\
X	utils.c
X
XOBJS1 =  \
X	button.o\
X	cell.o\
X	cellbox.o\
X	data.o\
X	expose.o\
X	file.o\
X	file_misc.o \
X	generate.o\
X	gentab.o\
X	help.o\
X	key.o\
X	keyin.o\
X	main.o\
X	motion.o\
X	resize.o\
X	utils.o
X
XSRCS2 = \
X	lifeconv.c
X
XOBJS2 = \
X	lifeconv.o
X
Xall:: $(PROGRAMS)
X
X            OBJS = $(OBJS1) $(OBJS2) $(OBJS3)
X            SRCS = $(SRCS1) $(SRCS2) $(SRCS3)
X
Xall:: $(PROGRAMS)
X
Xxlife: $(OBJS1) $(DEPLIBS1)
X	 $(RM) $@
X	$(CC) -o $@ $(LDOPTIONS) $(OBJS1)  -L/usr/local/lib $(XLIB) $(LDLIBS)  $(EXTRA_LOAD_FLAGS)
X
Xinstall:: xlife
X	$(INSTALL) -c $(INSTPGMFLAGS)   xlife $(BINDIR)
X
Xinstall.man:: xlife.man
X	$(INSTALL) -c $(INSTMANFLAGS) xlife.man $(MANDIR)/xlife.n
X
Xdepend::
X	$(DEPEND) -s "# DO NOT DELETE" -- $(ALLDEFINES) -- $(SRCS)
X
Xlint:
X	$(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
Xlint1:
X	$(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
X
Xclean::
X	$(RM) $(PROGRAMS)
X
Xlifeconv: $(OBJS2) $(DEPLIBS2)
X	 $(RM) $@
X	$(CC) -o $@ $(LDOPTIONS) $(OBJS2)  $(LDLIBS)  $(EXTRA_LOAD_FLAGS)
X
Xinstall:: lifeconv
X	$(INSTALL) -c $(INSTPGMFLAGS)   lifeconv $(BINDIR)
X
Xinstall.man:: lifeconv.man
X	$(INSTALL) -c $(INSTMANFLAGS) lifeconv.man $(MANDIR)/lifeconv.n
X
Xinstall.patterns:
X	@case '${MFLAGS}' in *[i]*) set +e;; esac; \
X	for i in $(PATTERNS) ; do \
X		(set -x; $(INSTALL) -c $(INSTDATFLAGS) patterns/$$i $(XLIFEPATSDIR)); \
X	done
X
X###########################################################################
X# common rules for all Makefiles - do not edit
X
Xemptyrule::
X
Xclean::
X	$(RM_CMD) \#*
X
XMakefile::
X	- at if [ -f Makefile ]; then \
X		echo "	$(RM) Makefile.bak; $(MV) Makefile Makefile.bak"; \
X		$(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
X	else exit 0; fi
X	$(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
X
Xtags::
X	$(TAGS) -w *.[ch]
X	$(TAGS) -xw *.[ch] > TAGS
X
X###########################################################################
X# empty rules for directories that do not have SUBDIRS - do not edit
X
Xinstall::
X	@echo "install in $(CURRENT_DIR) done"
X
Xinstall.man::
X	@echo "install.man in $(CURRENT_DIR) done"
X
XMakefiles::
X
Xincludes::
X
X###########################################################################
X# dependencies generated by makedepend
X
END_OF_xlife-2.0/Makefile
if test 12211 -ne `wc -c <xlife-2.0/Makefile`; then
    echo shar: \"xlife-2.0/Makefile\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f xlife-2.0/cellbox.c -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"xlife-2.0/cellbox.c\"
else
echo shar: Extracting \"xlife-2.0/cellbox.c\" \(11656 characters\)
sed "s/^X//" >xlife-2.0/cellbox.c <<'END_OF_xlife-2.0/cellbox.c'
X/*
X * XLife Copyright 1989 Jon Bennett jb7m+ at andrew.cmu.edu, jcrb at cs.cmu.edu
X *
X * Permission to use, copy, modify, distribute, and sell this software and its
X * documentation for any purpose is hereby granted without fee, provided that
X * the above copyright notice appear in all copies and that both that
X * copyright notice and this permission notice appear in supporting
X * documentation, and that the name of the copyright holders not be used in
X * advertising or publicity pertaining to distribution of the software without
X * specific, written prior permission.  The copyright holders make no
X * representations about the suitability of this software for any purpose.  It
X * is provided "as is" without express or implied warranty.
X *
X * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
X * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
X * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
X * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
X * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
X * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
X * PERFORMANCE OF THIS SOFTWARE.
X */
X
X/*
X * This module encapsulates cell-box handling. Everything else in the program
X * except possibly the evolution function should go through these functions
X * to change the board state. Entry points are:
X *
X * void initcells()   -- initialize board
X *
X * void addcell(x, y) -- set cell on
X *
X * void deletecell(x, y) -- set cell off
X *
X * void center() -- center visible board on barycenter of pattern
X *
X * void clear() -- blank the board, freeing all storage
X *
X * void redisplay() -- update visible display of current board
X *
X * void redrawscreen() -- redraw display, assume nothing about previous state
X *
X * void saveall() -- save entire board state to file
X *
X * This code knows that cells are packed in 8x8 cell boxes on a hash list, but
X * it doesn't know anything about the internals of cell representation within
X * cell boxes. It relies on the existence of a triad of functions
X *
X * getcell(ptr, dx, dy)      -- get state of cell at x, y in box *ptr
X * setcell(ptr, dx, dy, val) -- set cell at x, y in box *ptr to state val
X * forget(ptr)               -- cause a box to forget last generation's state
X *
X * to access cell state. It also relies on the existence of a function
X *
X * displaybox(x, y, ptr) -- post box state to Xrect arrays
X */
X
X#include "defs.h"
X#include "data.h"
X#include "cellbox.h"
X#include <pwd.h>
X
Xextern char *ctime();
X
X#define HASH(x,y) 	(((x>>3) & 0x7f)<< 7) + ((y>>3) & 0x7f)
X#define BOXSIZE		8
X#define MARK		'*'
X#define SPACE		'.'
X#define	USL_MAX		4294967295	/* max decimal value of "unsigned" */
X
X#ifndef NULL
X#define NULL 0
X#endif
X 
Xcellbox *head;
Xcellbox *freep;
Xcellbox *boxes[HASHSIZE];
XXPoint onpoints[MAXON],offpoints[MAXON];
XXRectangle onrects[MAXOFF],offrects[MAXOFF];
X 
Xvoid initcells()
X/* initialize the cell hash list */
X{
X     bzero(boxes,sizeof(*boxes));
X}
X
Xvoid addcell(x,y)
X/* turn a cell to state ON */
Xunsigned long x,y;
X{
X    unsigned long ydx,xdx;
X    cellbox *ptr;
X    
X    ptr = link(x,y);
X    ydx = y - ptr->y;
X    xdx = x - ptr->x;
X    ptr->dead=0;
X
X    setcell(ptr, xdx, ydx, 1);
X}
X
Xvoid deletecell(x,y)
X/* turn a cell to state OFF */
Xunsigned long x,y;
X{
X    unsigned long ydx,xdx;
X    cellbox *ptr;
X    
X    ptr = link(x,y);
X    ydx = y - ptr->y;
X    xdx = x - ptr->x;
X
X    setcell(ptr, xdx, ydx, 0);
X}
X
Xvoid kill(ptr)
Xcellbox *ptr;
X{
X    unsigned long hv=HASH(ptr->x,ptr->y);
X
X    if(ptr != head){
X	ptr->fore->next=ptr->next;
X    }
X    else{
X	head = ptr->next;
X    }
X    if(ptr == boxes[hv]){
X	boxes[hv] = ptr->hnext;
X    }
X    else{
X	ptr->hfore->hnext=ptr->hnext;
X    }
X    if(ptr->next) ptr->next->fore=ptr->fore;
X    if(ptr->hnext) ptr->hnext->hfore=ptr->hfore;
X    if(ptr->rt) ptr->rt->lf=NULL;
X    if(ptr->lf) ptr->lf->rt=NULL;
X    if(ptr->up) ptr->up->dn=NULL;
X    if(ptr->dn) ptr->dn->up=NULL;
X    ptr->next=freep;
X    freep=ptr;
X    numboxes--;
X}
X
Xcellbox *create(x,y,hv)
Xunsigned long x,y,hv;
X{
X    cellbox *ptr;
X
X#ifdef PROF
X    create_called++;
X#endif PROF
X
X    if(freep == NULL){
X#ifdef PROF
X	create_null++;
X#endif PROF
X	if((ptr= (cellbox *)malloc(sizeof(cellbox))) ==NULL){
X	    perror("create: malloc error: ");
X	    exit(-1);
X	}
X    }
X    else{
X	ptr=freep;
X	freep=freep->next;
X    }
X    bzero(ptr,sizeof(cellbox));
X    
X    ptr->next=head;
X    head=ptr;
X    
X    if(ptr->next != NULL){
X	ptr->next->fore=ptr;
X    }	
X    ptr->hnext=boxes[hv];
X    boxes[hv]= ptr;
X    
X    if(ptr->hnext != NULL){
X	ptr->hnext->hfore=ptr;
X    }
X    ptr->x = x;
X    ptr->y = y;
X    numboxes++;
X    return(ptr);
X}
X
X
Xcellbox *link(x,y)
Xunsigned long x,y;
X{
X    cellbox *ptr;
X    unsigned long hv;    
X    
X    x &= 0xfffffff8;
X    y &= 0xfffffff8;
X    hv=HASH(x,y);
X    ptr = boxes[hv]; 
X#ifdef PROF
X    link_called++;
X#endif PROF
X    if(freep){
X	if (ptr==NULL){
X	    ptr=freep;
X	    boxes[hv]= ptr;
X	    freep=freep->next;
X	    bzero(ptr,sizeof(cellbox));
X	    ptr->x = x;
X	    ptr->y = y;
X	    ptr->next=head;
X	    head=ptr;    
X
X	    if(ptr->next){
X		ptr->next->fore=ptr;
X	    }	
X	    numboxes++;
X	    return(ptr);
X	}
X	else{
X	    do{
X#ifdef PROF
X		link_search++;
X#endif PROF
X		if ((ptr->x == x) && (ptr->y == y)){
X		    return(ptr);
X		}
X		ptr=ptr->hnext;
X	    }while(ptr!=NULL);
X	    
X	    return(create(x,y,hv));
X	}
X    }
X    else{
X	if (ptr==NULL) return(create(x,y,hv));
X	do{
X#ifdef PROF
X	    link_search++;
X#endif PROF
X	    if ((ptr->x == x) && (ptr->y == y)){
X		return(ptr);
X	    }
X	    ptr=ptr->hnext;
X	}while(ptr!=NULL);
X	
X	return(create(x,y,hv));
X    }
X}
X
X
Xvoid displaystats()
X{
X    char stats[100];
X    if(dispcells){
X	sprintf(stats,"Generations: %6lu, Boxes: %6lu, Cells: %7lu ",generations,numboxes,numcells);
X    }
X    else{	
X	sprintf(stats,"Generations: %6lu, Boxes: %6lu",generations,numboxes);
X    }
X    XClearWindow(disp,inputw);
X    XDrawString(disp, inputw, ntextgc,ICOORDS(0,0),stats, strlen(stats));
X
X}
X
Xvoid newrules()
X{
X    int i,k;
X    char *ptr;
X    
X    ptr=inpbuf;
X    strcpy(inpbuf,"Rules:   ");
X    ptr=inpbuf+7;
X    k=live;
X    for(i=0; i<9; i++)
X    {	if(k&1)
X	{   *ptr=i+48;
X	    ptr++;
X	}
X	k>>=1;
X    }
X    *ptr='/';
X    ptr++;
X    k=born;
X    for(i=0; i<9; i++)
X    {	if(k&1)
X	{   *ptr=i+48;
X	    ptr++;
X	}
X	k>>=1;
X    }
X    strcpy(ptr,"   New Rules:  ");
X    minbuflen=strlen(inpbuf);
X    XClearWindow(disp,inputw);
X    XDrawString(disp, inputw, ntextgc,ICOORDS(0,0),inpbuf, strlen(inpbuf));
X    
X    getxstring();
X    inpbuf[0]=0;
X    
X    k=0;
X    ptr=inpbuf+minbuflen;
X    while((*ptr>47)&&(*ptr<58))
X    {   k|=(1<<(*ptr-48));
X	ptr++;
X    }
X    live=k;
X    k=0;
X    if(*ptr=='/')
X    {   ptr++;
X	while((*ptr>47)&&(*ptr<58))
X	{   k|=(1<<(*ptr-48));
X	    ptr++;
X	}
X	born=k;
X    }
X    XClearWindow(disp,inputw);
X    gentab();
X}
X
X
X
Xvoid center()
X/* center the display on the `center of mass' of the live boxes */
X{
X    double x,y;
X    int ctr=0;
X    cellbox *ptr;
X    x=0.0;
X    y=0.0;
X    XClearWindow(disp,lifew);
X    for (ptr = head; ptr != NULL; ptr = ptr->next){
X	if(!ptr->dead){
X	    x+= ptr->x;
X	    y+= ptr->y;
X	    ctr++;
X	}
X    }
X    x/=ctr;
X    y/=ctr;
X    xpos=x- (width >> scale);
X    ypos=y- (height >> scale);
X    redrawscreen();
X}
X
Xvoid clear()
X/* clear the board, freeing all storage */
X{
X    cellbox *ptr,*nptr;
X    
X    bzero(boxes,4*HASHSIZE);
X    ptr=head;
X
X    while(ptr){
X	nptr=ptr->next;
X	free(ptr);
X	ptr=nptr;
X    }
X    head=NULL;
X    state=STOP;
X    generations=0;
X    numboxes=0;
X    numcells=0;
X    XClearWindow(disp,lifew);
X    XClearWindow(disp,inputw);
X    displaystats();
X}
X
X#define ONSCREEN(x, y)	(((x > xpos-BOXSIZE) && (x < (xpos+BOXSIZE+(width >> (scale-1))))) && ((y > ypos-BOXSIZE) && (y < (ypos+BOXSIZE+(height >> (scale -1))))))
X
X#define POINTS	4000	/* accumulate this many point changes before writing */
X#define RECTS	64	/* accumulate this many box changes before writing */
X
Xvoid redisplay()
X/* re-display the visible part of the board */
X{
X    cellbox *ptr;
X    unsigned long x,y,ctr=0;
X
X    displaystats();    
X    if(state==HIDE) return;
X    
X    onpt=offpt=0;
X    onrect=offrect=0;
X    
X    for (ptr = head; ptr != NULL; ptr = ptr->next){
X	x=ptr->x;
X	y=ptr->y;
X	if(ONSCREEN(x, y)){
X	    displaybox(x, y, ptr);
X	    ctr++;
X	    if(scale == 1){
X		if((onpt >= POINTS) || (offpt >= POINTS)){
X		    XDrawPoints(disp,lifew,blackgc,offpoints,offpt,CoordModeOrigin);
X		    XDrawPoints(disp,lifew,whitegc,onpoints,onpt,CoordModeOrigin);
X		    onpt=offpt=0;
X		    ctr=0;
X		}
X	    }
X	    else{
X		if(ctr == RECTS){
X		    XFillRectangles(disp,lifew,blackgc,offrects,offrect);
X		    XFillRectangles(disp,lifew,whitegc,onrects,onrect);
X		    onrect=offrect=0;
X		    ctr=0;
X		}
X	    }
X	}
X    }
X    if(ctr){
X	if(scale == 1){
X	    XDrawPoints(disp,lifew,blackgc,offpoints,offpt,CoordModeOrigin);
X    	    XDrawPoints(disp,lifew,whitegc,onpoints,onpt,CoordModeOrigin);
X	    onpt=offpt=0;
X	    ctr=0;
X	}
X	else{
X	    XFillRectangles(disp,lifew,blackgc,offrects,offrect);
X	    XFillRectangles(disp,lifew,whitegc,onrects,onrect);
X	    onrect=offrect=0;
X	    ctr=0;
X	}
X    }
X    XFlush(disp);
X}
X
Xvoid redrawscreen()
X/* force redraw of entire board */
X{
X    cellbox *ptr;
X
X    for (ptr = head; ptr != NULL; ptr = ptr->next)
X	forget(ptr);
X    redisplay();
X}
X
Xvoid saveall(ofp, mode)
X/* save the entire board contents */
XFILE	*ofp;
Xchar	mode;
X{
X    cellbox *ptr;
X    int dx, dy, val,x=0;
X    unsigned long xmin, ymin, xmax, ymax, numcells,timeval;
X    struct passwd *pw;
X    char machine[80];
X
X    if(fname[0] != 0){
X	fprintf(ofp,"#N %s\n",fname);
X    }
X	
X    timeval=time(0);
X    gethostname(machine,80);
X    if( (pw = getpwuid(getuid())) != NULL){
X	fprintf(ofp,"#O %s \"%s\"@%s %s",pw->pw_name,pw->pw_gecos,machine,ctime(&timeval));
X    }
X    
X    while(x < numcomments){
X	fprintf(ofp,"#C %s \n",comments[x]);
X	x++;
X    }
X	
X    if (mode == 'A')	/* save in absolute mode */
X    {
X	fputs("#A\n", ofp);
X	for (ptr = head; ptr != NULL; ptr = ptr->next)
X	    if (!ptr->dead)
X		for (dx = 0; dx < BOXSIZE; dx++)
X		    for (dy = 0; dy < BOXSIZE; dy++)
X			if (val = getcell(ptr, dx, dy))
X			    (void) fprintf(ofp,
X					   "%d %d\n", ptr->x+dx,ptr->y+dy);
X	return;
X    }
X
X    /*
X     * Otherwise, determine the bounding box of the live cells.
X     */
X    xmin = USL_MAX; ymin = USL_MAX; xmax = 0; ymax = 0; numcells = 0;
X    for (ptr = head; ptr != NULL; ptr = ptr->next)
X	if(!ptr->dead)
X	    for (dx = 0; dx < BOXSIZE; dx++)
X		for (dy = 0; dy < BOXSIZE; dy++)
X		    if (getcell(ptr, dx, dy))
X		    {
X			numcells++;
X			if (ptr->x+dx < xmin)
X			    xmin = ptr->x+dx;
X			if (ptr->y+dy < ymin)
X			    ymin = ptr->y+dy;
X			if (ptr->x+dx > xmax)
X			    xmax = ptr->x+dx;
X			if (ptr->y+dy > ymax)
X			    ymax = ptr->y+dy;
X		    }
X
X    /* caller may want save to shortest format */
X    if (mode == '\0')
X	if (((ymax - ymin + 1) * (xmax - xmin + 1)) > numcells * 8)
X	    mode = 'R';
X	else
X	    mode = 'P';
X
X    /* now that we have the bounding box, we can gen the other formats */
X    if (mode == 'R')
X    {
X	for (ptr = head; ptr != NULL; ptr = ptr->next)
X	    if (!ptr->dead)
X		for (dx = 0; dx < BOXSIZE; dx++)
X		    for (dy = 0; dy < BOXSIZE; dy++)
X			if (val = getcell(ptr, dx, dy))
X			    (void) fprintf(ofp,
X					   "%d %d\n",
X					   ptr->x+dx-xmin, ptr->y+dy-ymin);
X    }
X    else
X    {
X	unsigned long x, y;
X
X	(void) fprintf(ofp, "#P\n");
X	for (y = ymin; y <= ymax; y++)
X	{
X	    for (x = xmin; x <= xmax; x++)
X	    {
X		cellbox *ptr;
X
X		ptr = link(x,y);
X		if (getcell(ptr, x - ptr->x, y - ptr->y) != 0)
X		    (void) fputc(MARK, ofp);
X		else
X		    (void) fputc(SPACE, ofp);
X	    }
X	    (void) fputc('\n', ofp);
X	}
X    }
X}
X
END_OF_xlife-2.0/cellbox.c
if test 11656 -ne `wc -c <xlife-2.0/cellbox.c`; then
    echo shar: \"xlife-2.0/cellbox.c\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f xlife-2.0/doc/blockpusher.txt -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"xlife-2.0/doc/blockpusher.txt\"
else
echo shar: Extracting \"xlife-2.0/doc/blockpusher.txt\" \(11012 characters\)
sed "s/^X//" >xlife-2.0/doc/blockpusher.txt <<'END_OF_xlife-2.0/doc/blockpusher.txt'
XDate: Wed, 22 Nov 89 03:38 EST
XFrom: Dean Hickerson <HUL at PSUVM.Bitnet>
XSubject: Description of block pusher
XTo: rwg at YUKON.SCRC.SYMBOLICS.COM, dba at ANDREW.CMU.EDU, rcs at LA.TIS.COM,
X        acw at YUKON.SCRC.SYMBOLICS.COM
X
XHere's the promised description of block pusher.  It's fairly detailed and
Xincludes some things which you've all seen before; I put them in so I can
Xsend it to Wainwright, Trevorrow, and others who haven't been following
Xour discussion.
X     
X     The block pusher consists of a stationary pattern made of guns,
Xeaters, and glider streams, and a block some distance to the SE.  The
Xpattern fires a group of 5 gliders at the block; when they hit, the block
Xis moved farther SE and a glider is sent back NW.  When this glider reaches
Xthe stationary part, another glider group is sent toward the block.  Since
Xthe round trip time keeps increasing, points along the gliders's flight
Xpaths never become periodic.
X     
X     The collision which moves the block is shown below. The gliders are
Xlabelled A, B, C, D, and E.  Gliders A and B move the block 7 units west
Xand 4 units south.  Gliders C and D turn it into a boat.  Glider E turns it
Xback into a block, 5 units SE of its original position, and sends back a NW
Xglider.  (I'd known the glider+boat -> block+glider reaction for several
Xyears.  I found the gliders+block -> boat reaction after just a few minutes
Xof experimenting. Putting these together results in pushing the block, but
Xalso moves it off the diagonal.  I then tried hundreds of collisions
Xbetween 2 gliders and a block until I found one which moved the block back
Xto the correct diagonal; I was hoping for a combination which moved it
X15 or 23 units, but 5 was the best I found.  My search was by no means
Xcomplete, so it's possible that there's a group of only 4 (or maybe even 3
Xor 2) gliders which does the job.)
X     
X        e.e...............................
X        .ee...............................
X        .e................................
X        ..................................
X        ..................................
X        .....d............................
X        ......d...........................
X        ....ddd...........................
X        ..................................
X        ..................................
X        ..........c.......................
X        ...........c..........b...........
X        .........ccc...........b..........
X        .....................bbb..........
X        ..................................
X        ..................................
X        ..................................
X        ............................a.....
X        .............................a..oo
X        ...........................aaa..oo
X     
X     The stationary part of block pusher lies along a NW-SE diagonal, and
Xconsists of 3 pieces.  At the NW end is the shotgun, which produces a 5
Xglider group every 120 generations.  Next there's the suppressor, which
Xshoots gliders at the shotgun's output, destroying the groups. Finally,
Xthere's the catcher, which waits for a glider to come from the block and
Xthen deletes one of the suppressor's gliders, thereby allowing one glider
Xgroup to escape toward the block.
X     
X     The shotgun builds the groups's gliders in the order A, E, D, C, B.
XGliders A are produced by a p120 gun aimed SE. Gliders E are produced by a
Xp120 gun aimed SW; they hit a queen bee shuttle which reflects them 90
Xdegrees to SE, as shown here:
X     
X        o.........
X        ooo.....o.
X        ...o...o..
X        ..oo...ooo
X        ..........
X        ......o...
X        ......o...
X        .....o....
X        ..........
X        ..........
X        ..oo...oo.
X        ..o.....o.
X        ..........
X        ...o...o..
X        ....ooo...
X        ..........
X        ..........
X        ..........
X        ..........
X        ..oo......
X        ...o......
X        ooo.......
X        o.........
X     
XNext, gliders D are produced by a LW spaceship gun aimed north and a glider
Xgun aimed SW; they collide as shown here:
X     
X        .o....
X        .o.o..
X        .oo...
X        ......
X        ......
X        ooo...
X        o..o..
X        o.....
X        o.....
X        .o.o..
X     
XGliders C and B are produced in the same way, except that for B the LW
Xspaceship gun is aimed west and the glider gun is aimed NE.  Each LW
Xspaceship gun is made from 2 glider guns whose gliders collide in the
Xvicinity of a pentadecathlon.  (Thanks to Bill for providing both the 90
Xdegree turn and the LW synthesis.)
X     
X        ..............o.o...
X        ...............oo...
X        ...............o....
X        ....................
X        ....................
X        ....................
X        .................oo.
X        .................o.o
X        .o..oo....oo..o..o..
X        o...ooo..ooo...o....
X        .o..oo....oo..o.....
X     
XAltogether, the shotgun consists of 11 p120 glider guns, one shuttle, and 3
XPDs.
X     
X     The suppressor is essentially a p120 glider gun whose output
Xannihilates the glider groups.  (Actually I used a p30 gun, 3/4th of whose
Xgliders get deleted by a glider stream from the catcher.)  The annihilation
Xis done like this:
X     
X        e.e...............................
X        .ee...............................
X        .e................................
X        ..................................
X        ..................................
X        .....d............................
X        ......d...........................
X        ....ddd...........................
X        ..................................
X        ..................................
X        ..........c.......................
X        ...........c..........b...........
X        .........ccc...........b..........
X        .....................bbb..........
X        ..................................
X        ..................................
X        ..................................
X        ............................a.....
X        .............................a....
X        ...........................aaa....
X        ..................................
X        ...............................o.o
X        ...............................oo.
X        ................................o.
X     
XFinding a way to delete a group with just one glider wasn't really
Xnecessary, but made the catcher's circuitry much simpler.  Fortunately, the
Xgliders+block reaction shown earlier occurs in 3 stages, so there's some
Xflexibility in the spacing of the glider group.  Hence there are more ways
Xto crash a glider into a group than if its geometry were fixed, so the
Xchance that one of them would cause annihilation was increased.  It only
Xtook a couple hours of experimenting to find the one shown above.
X     
X     The catcher's job is to detect a glider coming from the block.  There
Xare two difficulties.  First, the phase of the return glider is only known
Xmod 40: If the block is 5 units farther away, the round trip time is
Xincreased by 40. That's why I chose p120 logic; there are only 3
Xpossibilities for the return glider's phase.  Second, the return glider's
Xflight path overlaps that of the glider groups, so whatever detects the
Xglider must not interfere with the groups.  Fortunately, a NE glider can
Xslip between gliders B and C.  (If this hadn't been possible, it would have
Xbeen necessary to either use slower guns, thereby increasing the number of
Xpossible return glider phases, or to add circuitry to turn off the
Xdetectors when a glider group goes by.)  Here's a circuit diagram of the
Xcatcher:
X     
X  Shotgun                    Suppressor
X        \                    /
X         \                  /\
X          \             E  /  \
X           \             \/    \
X            \            /\     \
X             \       E  /  \     \
X              \       \/    \     \
X               \      /\     \     \
X                \    /  \     \     \
X                 \  /    \     \     \
X                  \/      \     \     \
X                   \      /\     \     \
X                    \    /  G5   /\     \
X                     \  /       /  G4   /\
X                      \/       /       /  G3
X                      /\      /       /
X                     /  \    /       /
X                   G2    \  /       /
X                          \/       /
X                          /\      /
X                         /  \    /
X                       G1    \  /
X                              \/
X                              /\
X                             /  \
X                           G0    .
X                                  .
X                                   .
X                                    \
X                                     \
X                                      Block
X     
X"G" is a gun, "E" is an eater.  Guns G0-G2 have period 120, while G3-G5 and
Xthe suppressor have period 30.  Wherever gliders meet, they both vanish.
XNormally, during a 120 generation cycle, one of the 4 gliders produced by
XG3 is deleted by one from G0; hence 3 of the 4 from the suppressor are
Xdeleted.  There's also one missing from each of G4 and G5, so the
Xsuppressor's remaining glider gets through to hit the shotgun's output.
XBut when a glider comes from the block, one glider is deleted from either
XG0, G1, or G2, so an extra one escapes from either G3, G4, or G5, the usual
Xescapee from the suppressor is deleted, and a glider group escapes.
X----------------------------------------------------------------------
X     It should be possible to modify this construction to give a pattern
Xwhose population grows like  C sqrt(t)  for some C:  Reposition G3 so its
Xoutput hits the output of G0 in a ternary reaction, replace the suppressor
Xby a p120 gun, and add two p120 guns and an eater as shown:
X     
X                            E  Suppressor
X                             \/
X                             /\    G7
X                            /  \     \
X                           .    \    /\
X                          .      \  /  \
X                         .        \/    \
X                                  /\     .
X                                 /  \     .
X                               G6   /\     .
X                                   /  G3
X                                  .
X                                 .
X                                .
X                               /
X                             G0
X     
XThe G3 stream's data, after its collision with the G0 stream, will be
X0011/1111 in a 120 generation cycle; the first bits occur normally, the
Xothers when a return glider has deleted one from G0.  G6 produces 0100 and
Xhits the stream from G3 in a vanish reaction, so it becomes 0100/0000.
XThis then hits the output of G7 (0100) in a vanish reaction, so a glider
Xescapes from G7 only if a return glider has deleted one from G0.
XMeanwhile, the G3 stream after its collision with the G6 stream is
X0011/1011; the first of these bits is used to release or delete the
Xsuppressor's output.  Eventually, the population will be dominated by the
Xoutputs from G7 and will grow like  C sqrt(t).
END_OF_xlife-2.0/doc/blockpusher.txt
if test 11012 -ne `wc -c <xlife-2.0/doc/blockpusher.txt`; then
    echo shar: \"xlife-2.0/doc/blockpusher.txt\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f xlife-2.0/patterns/oscilators.life -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"xlife-2.0/patterns/oscilators.life\"
else
echo shar: Extracting \"xlife-2.0/patterns/oscilators.life\" \(7621 characters\)
sed "s/^X//" >xlife-2.0/patterns/oscilators.life <<'END_OF_xlife-2.0/patterns/oscilators.life'
X#O jb7m "Jon C. R. Bennett"@sushi.andrew.cmu.edu Fri Jan 12 18:08:41 1990
X204 68
X204 69
X201 67
X202 68
X203 68
X192 68
X193 67
X193 68
X188 63
X189 61
X189 62
X189 63
X190 60
X191 60
X191 61
X193 66
X194 65
X195 65
X195 66
X204 59
X205 59
X206 62
X206 63
X207 62
X207 64
X208 64
X209 64
X209 65
X197 62
X197 63
X197 64
X198 62
X198 65
X199 62
X200 63
X202 65
X202 66
X203 59
X204 51
X204 56
X205 57
X205 58
X207 55
X207 56
X208 56
X209 53
X209 54
X209 55
X210 53
X196 56
X196 57
X196 58
X198 53
X198 54
X198 55
X199 53
X199 56
X200 53
X201 54
X202 58
X203 51
X189 51
X189 52
X190 52
X191 52
X191 54
X191 55
X192 53
X193 57
X194 58
X195 55
X195 58
X205 48
X205 49
X205 50
X206 48
X196 48
X196 50
X197 49
X197 50
X203 50
X194 47
X194 48
X195 48
X199 20
X199 21
X200 20
X200 22
X201 22
X202 22
X202 23
X207 19
X190 22
X191 20
X191 21
X191 22
X192 19
X193 19
X193 20
X204 17
X205 15
X205 16
X205 18
X206 18
X207 18
X196 17
X197 14
X197 17
X198 15
X198 16
X198 17
X200 12
X200 13
X200 14
X201 12
X201 15
X202 12
X203 13
X191 11
X192 11
X193 11
X193 13
X193 14
X194 12
X195 16
X191 10
X205 9
X205 10
X206 10
X207 7
X207 8
X207 9
X208 7
X196 6
X196 7
X197 7
X198 7
X198 9
X199 8
X199 9
X160 75
X160 76
X161 75
X162 76
X163 75
X163 76
X164 68
X164 69
X164 71
X165 71
X165 73
X165 74
X166 71
X166 72
X166 74
X158 70
X158 72
X158 73
X159 70
X159 71
X159 73
X160 73
X161 68
X161 69
X161 70
X161 71
X161 73
X162 68
X163 69
X163 71
X163 73
X163 74
X164 51
X164 53
X164 56
X165 51
X165 54
X165 55
X166 51
X158 53
X158 54
X159 51
X159 52
X159 53
X160 55
X160 58
X161 51
X161 52
X161 53
X161 55
X161 56
X161 57
X161 58
X163 51
X163 53
X163 55
X163 56
X166 50
X160 50
X161 50
X163 50
X164 36
X165 36
X166 35
X158 37
X158 38
X159 36
X159 38
X160 36
X161 36
X162 38
X162 40
X162 41
X163 35
X163 36
X163 38
X163 39
X163 41
X165 34
X166 34
X158 33
X158 34
X159 33
X160 34
X161 33
X161 34
X162 33
X164 20
X164 22
X164 24
X165 19
X165 20
X165 24
X166 21
X166 22
X166 23
X167 20
X168 20
X168 21
X158 21
X158 24
X159 21
X159 24
X160 19
X160 20
X160 23
X161 21
X161 22
X162 19
X162 21
X162 23
X163 20
X158 16
X159 16
X159 17
X161 17
X162 16
X162 18
X163 16
X163 17
X163 18
X164 14
X164 15
X165 15
X165 17
X165 18
X166 15
X166 17
X167 16
X14 92
X14 93
X14 95
X15 93
X15 95
X15 96
X15 97
X16 91
X16 98
X17 92
X17 93
X17 95
X17 96
X17 97
X18 95
X19 91
X19 92
X19 93
X17 90
X18 90
X20 93
X20 94
X36 97
X37 96
X38 96
X38 98
X39 97
X40 98
X34 95
X34 96
X35 95
X35 97
X34 100
X34 101
X35 99
X35 102
X36 99
X36 100
X36 103
X37 101
X37 102
X38 100
X39 100
X40 99
X56 99
X57 99
X52 94
X53 93
X53 95
X54 92
X54 94
X54 96
X55 92
X55 96
X56 93
X56 94
X56 96
X56 98
X57 97
X58 91
X58 92
X58 93
X58 94
X58 95
X58 96
X59 91
X59 94
X57 11
X58 12
X59 12
X54 8
X55 7
X55 9
X56 6
X56 9
X57 7
X57 8
X57 10
X58 8
X59 8
X59 10
X60 9
X61 10
X60 13
X60 14
X61 11
X61 12
X61 15
X62 12
X62 14
X63 13
X52 35
X52 30
X52 34
X53 29
X53 31
X53 33
X54 29
X54 33
X55 30
X55 31
X55 32
X56 32
X56 34
X57 33
X57 34
X50 35
X51 36
X47 31
X47 32
X48 31
X49 28
X49 32
X49 33
X49 34
X50 28
X50 29
X50 30
X50 31
X51 32
X51 33
X54 59
X55 59
X49 55
X49 56
X50 55
X50 56
X52 53
X52 54
X52 55
X52 56
X53 53
X53 56
X54 56
X54 58
X55 51
X55 52
X55 53
X55 54
X55 56
X56 51
X56 57
X57 52
X57 53
X57 54
X57 55
X57 56
X58 54
X54 75
X55 75
X59 75
X59 76
X54 69
X54 70
X54 74
X55 69
X55 71
X55 73
X56 71
X56 73
X57 70
X57 74
X58 70
X58 72
X58 74
X59 71
X60 72
X60 73
X60 74
X61 74
X60 77
X61 76
X62 75
X68 82
X70 82
X71 82
X68 83
X69 83
X71 83
X71 84
X71 85
X72 86
X73 84
X73 87
X74 83
X74 85
X74 87
X75 83
X75 88
X75 89
X76 84
X76 85
X76 86
X76 88
X77 86
X77 88
X78 87
X88 73
X88 74
X89 74
X90 74
X85 76
X85 78
X86 75
X86 77
X86 78
X87 75
X87 79
X87 80
X88 76
X88 77
X88 78
X88 81
X89 79
X89 80
X90 76
X90 78
X91 75
X91 78
X92 76
X92 77
X100 82
X101 81
X102 81
X103 82
X100 84
X100 86
X101 86
X101 87
X102 83
X102 84
X102 88
X103 86
X103 87
X104 83
X104 84
X104 85
X105 85
X98 86
X98 87
X99 83
X99 84
X99 87
X126 91
X129 91
X123 91
X132 77
X132 78
X132 79
X132 80
X132 81
X132 82
X134 79
X134 80
X134 81
X134 82
X135 79
X135 82
X132 83
X132 84
X132 85
X132 86
X132 87
X134 83
X134 84
X134 85
X135 85
X124 85
X124 86
X124 88
X124 90
X125 85
X125 86
X125 88
X125 90
X126 88
X126 90
X127 85
X127 86
X127 88
X127 90
X128 85
X128 86
X128 88
X128 90
X129 83
X129 84
X129 88
X129 90
X130 83
X130 84
X130 88
X131 88
X117 85
X118 83
X118 84
X118 85
X120 83
X120 84
X120 85
X120 86
X120 87
X121 88
X122 83
X122 84
X122 88
X123 83
X123 84
X123 88
X123 90
X124 76
X124 78
X124 79
X125 76
X125 78
X125 79
X126 76
X127 76
X127 78
X127 79
X128 76
X128 78
X128 79
X129 76
X129 80
X129 81
X130 76
X130 80
X130 81
X131 76
X124 74
X125 74
X126 73
X126 74
X127 74
X128 74
X129 73
X129 74
X117 79
X117 82
X118 79
X118 80
X118 81
X118 82
X120 77
X120 78
X120 79
X120 80
X120 81
X120 82
X121 76
X122 76
X122 80
X122 81
X123 76
X123 80
X123 81
X123 73
X123 74
X128 59
X129 60
X130 60
X131 60
X131 62
X131 63
X132 60
X132 62
X132 63
X133 60
X134 60
X135 59
X125 56
X125 57
X126 56
X126 57
X128 54
X128 55
X128 56
X128 57
X128 58
X129 53
X130 53
X130 57
X130 58
X131 51
X131 53
X131 57
X131 58
X131 50
X132 51
X132 53
X132 55
X132 56
X133 53
X133 55
X133 56
X134 53
X135 54
X135 55
X135 56
X135 57
X135 58
X137 56
X137 57
X138 56
X138 57
X132 50
X124 35
X125 35
X126 35
X126 36
X124 30
X124 31
X124 33
X125 30
X125 31
X125 33
X126 28
X126 29
X126 33
X127 28
X127 29
X127 33
X128 33
X129 28
X129 29
X129 30
X129 31
X129 32
X130 27
X131 28
X131 29
X131 30
X123 34
X132 30
X124 0
X124 1
X124 3
X124 5
X124 6
X124 10
X125 3
X125 10
X126 3
X126 5
X126 6
X126 7
X126 8
X126 9
X127 4
X128 5
X128 6
X128 7
X129 7
X120 11
X121 12
X122 12
X123 12
X123 13
X116 8
X117 6
X117 7
X117 8
X118 5
X119 6
X119 7
X119 8
X119 9
X119 10
X121 6
X121 7
X121 8
X121 10
X122 3
X122 5
X122 8
X122 10
X123 3
X123 5
X123 10
X121 2
X122 1
X123 1
X98 57
X98 58
X99 53
X99 54
X99 57
X101 59
X101 60
X102 59
X102 60
X100 53
X100 55
X100 57
X101 54
X101 57
X102 57
X103 57
X104 55
X104 57
X105 55
X105 56
X106 53
X106 54
X107 54
X108 47
X108 48
X108 49
X108 50
X109 47
X110 50
X111 50
X104 48
X104 49
X105 48
X105 50
X106 49
X108 51
X108 52
X108 53
X110 51
X111 51
X76 53
X76 54
X77 51
X77 55
X77 56
X78 51
X78 52
X78 53
X78 54
X78 57
X79 56
X79 57
X80 51
X80 52
X81 51
X81 52
X69 48
X69 49
X70 48
X70 49
X71 45
X72 45
X72 46
X72 47
X72 48
X72 49
X72 50
X74 47
X74 48
X74 49
X75 46
X69 51
X69 52
X70 51
X70 52
X71 55
X72 51
X72 52
X72 53
X72 54
X72 55
X74 53
X75 52
X75 54
X76 46
X76 48
X76 49
X77 44
X77 45
X78 43
X78 46
X78 47
X78 48
X78 49
X78 50
X79 43
X79 44
X80 48
X80 49
X81 48
X81 49
X98 35
X99 36
X100 35
X100 28
X100 34
X101 29
X101 33
X102 27
X102 29
X102 33
X103 27
X103 29
X103 31
X103 32
X104 28
X104 30
X105 28
X105 30
X106 29
X102 24
X102 25
X103 24
X103 26
X94 32
X94 33
X95 32
X96 33
X97 32
X97 33
X98 29
X98 30
X98 34
X99 28
X99 31
X99 32
X99 33
X76 22
X76 23
X77 22
X77 25
X78 23
X78 24
X78 25
X78 26
X80 25
X80 26
X81 25
X81 26
X68 25
X68 26
X70 23
X70 24
X70 25
X70 26
X71 22
X71 25
X72 22
X72 23
X74 26
X76 27
X76 28
X76 29
X78 27
X78 28
X78 29
X78 30
X78 31
X79 29
X79 32
X80 31
X80 32
X69 29
X70 27
X70 28
X70 29
X70 30
X70 31
X71 32
X72 27
X72 28
X72 29
X72 32
X73 30
X73 32
X73 33
X74 30
X75 30
X67 25
X67 26
X100 11
X100 12
X101 11
X101 12
X100 3
X100 5
X100 9
X101 4
X101 9
X102 5
X102 6
X102 7
X102 8
X104 5
X104 6
X105 5
X105 6
X95 7
X95 8
X96 7
X97 8
X98 5
X98 6
X98 7
X98 9
X99 4
X99 7
X99 9
X77 2
X78 2
X76 6
X77 3
X77 7
X78 7
X79 3
X79 4
X79 5
X79 6
X81 3
X81 4
X82 3
X82 4
X74 9
X75 7
X75 8
X75 9
X14 10
X15 10
X17 8
X17 9
X17 10
X18 7
X18 10
X19 7
X19 8
X29 7
X29 8
X30 7
X30 10
X31 8
X31 9
X31 10
X33 10
X34 10
X28 15
X28 17
X28 18
X29 12
X29 13
X29 14
X29 17
X30 17
X31 11
X31 12
X31 13
X31 14
X31 15
X31 16
X32 14
X33 11
X34 11
X20 15
X20 17
X20 18
X21 11
X21 15
X22 11
X22 15
X23 12
X23 13
X23 14
X25 12
X25 13
X25 14
X26 11
X26 15
X27 11
X27 15
X14 11
X15 11
X16 14
X17 11
X17 12
X17 13
X17 14
X17 15
X17 16
X18 17
X19 12
X19 13
X19 14
X19 17
X28 38
X28 39
X28 40
X28 41
X30 40
X30 41
X31 40
X31 41
X20 38
X20 39
X21 38
X21 39
X23 38
X23 39
X23 40
X23 41
X24 35
X24 37
X24 42
X25 35
X25 37
X25 39
X25 42
X26 37
X26 38
X26 42
X27 37
X27 40
X27 42
X24 34
X25 34
X26 44
X26 45
X27 44
X27 45
X27 75
X27 76
X28 75
X28 76
X22 69
X22 70
X23 69
X23 72
X24 70
X24 71
X24 72
X26 70
X26 71
X26 72
X27 67
X27 69
X27 71
X27 73
X27 66
X28 67
X28 69
X28 73
X29 69
X29 73
X30 69
X30 73
X31 70
X31 71
X31 72
X33 70
X33 71
X33 72
X34 69
X34 72
X35 69
X35 70
X28 66
X1 35
X1 36
X2 35
X3 36
X0 31
X0 32
X1 31
X1 33
X2 33
X3 28
X3 29
X3 32
X3 33
X4 35
X4 28
X4 34
X5 29
X5 30
X5 31
X5 33
X6 33
X7 29
X7 30
X7 32
X8 29
X8 30
X8 32
X8 33
X5 57
X6 57
X6 58
X8 57
X8 58
X9 57
X10 58
X3 59
X3 58
X4 59
X4 64
X5 62
X5 63
X5 64
X6 61
X7 62
X8 59
X8 60
X8 62
X9 63
X9 64
X10 59
X10 60
X10 61
X10 62
X10 65
X11 60
X11 64
X11 65
END_OF_xlife-2.0/patterns/oscilators.life
if test 7621 -ne `wc -c <xlife-2.0/patterns/oscilators.life`; then
    echo shar: \"xlife-2.0/patterns/oscilators.life\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f xlife-2.0/patterns/p94.life -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"xlife-2.0/patterns/p94.life\"
else
echo shar: Extracting \"xlife-2.0/patterns/p94.life\" \(20396 characters\)
sed "s/^X//" >xlife-2.0/patterns/p94.life <<'END_OF_xlife-2.0/patterns/p94.life'
X#R
X -1 -303
X  0 -303
X -1 -302
X -7 -301
X -3 -301
X -1 -301
X -8 -300
X -6 -300
X -3 -300
X -2 -300
X -8 -299
X -6 -299
X -7 -298
X-12 -292
X-13 -291
X-12 -291
X-11 -291
X-13 -290
X-11 -290
X-10 -290
X-12 -289
X-11 -289
X-10 -289
X-12 -288
X-11 -288
X-10 -288
X-12 -287
X-11 -287
X-30 -283
X-28 -283
X-30 -282
X-29 -282
X-29 -281
X-30 -265
X-29 -265
X-30 -264
X -7 -264
X -6 -264
X -5 -264
X-32 -263
X-30 -263
X -7 -263
X -4 -263
X-32 -262
X-31 -262
X -7 -262
X-51 -261
X-50 -261
X -7 -261
X -3 -261
X-51 -260
X-50 -260
X -7 -260
X-28 -259
X-27 -259
X -6 -259
X -4 -259
X-41 -258
X-28 -258
X-43 -257
X-42 -257
X-40 -257
X-39 -257
X-30 -257
X-28 -257
X-43 -256
X-42 -256
X-40 -256
X-39 -256
X-30 -256
X-29 -256
X-49 -255
X-48 -255
X-44 -255
X-43 -255
X-40 -255
X-39 -255
X-34 -255
X-50 -254
X-48 -254
X-43 -254
X-41 -254
X-35 -254
X-50 -253
X-42 -253
X-36 -253
X-35 -253
X-34 -253
X-51 -252
X-50 -252
X-35 -252
X-34 -252
X-32 -252
X-31 -252
X-34 -251
X-33 -251
X-28 -251
X-27 -251
X-37 -250
X-36 -250
X-34 -250
X-33 -250
X-28 -250
X-27 -250
X-54 -249
X-53 -249
X-52 -249
X-34 -249
X-54 -248
X-38 -248
X-35 -248
X-53 -247
X-38 -247
X-36 -247
X-12 -245
X-13 -244
X-12 -244
X-11 -244
X-14 -243
X-13 -243
X-11 -243
X-14 -242
X-13 -242
X-12 -242
X-14 -241
X-13 -241
X-12 -241
X-35 -240
X-34 -240
X-33 -240
X-13 -240
X-12 -240
X-35 -239
X-32 -239
X-31 -239
X-57 -238
X-35 -238
X-34 -238
X-31 -238
X-26 -238
X-25 -238
X-59 -237
X-58 -237
X-33 -237
X-32 -237
X-31 -237
X-26 -237
X-25 -237
X-58 -236
X-57 -236
X-49 -236
X-48 -236
X-37 -236
X-48 -235
X-38 -235
X-37 -235
X-36 -235
X-48 -234
X-46 -234
X-39 -234
X-37 -234
X-35 -234
X-47 -233
X-46 -233
X-40 -233
X-39 -233
X-35 -233
X-38 -232
X-36 -232
X-28 -232
X-27 -232
X-28 -231
X-26 -231
X-26 -230
X-34 -229
X-32 -229
X-26 -229
X-25 -229
X-49 -228
X-48 -228
X-33 -228
X-32 -228
X-49 -227
X-48 -227
X-33 -227
X-32 -217
X-31 -217
X -7 -217
X -6 -217
X -5 -217
X-47 -216
X-46 -216
X-32 -216
X-31 -216
X -8 -216
X -5 -216
X-55 -215
X-54 -215
X-48 -215
X-47 -215
X -5 -215
X-54 -214
X-46 -214
X -9 -214
X -5 -214
X-54 -213
X-52 -213
X -5 -213
X-53 -212
X-52 -212
X-43 -212
X-42 -212
X -8 -212
X -6 -212
X-45 -211
X-43 -211
X-42 -211
X-41 -211
X-34 -211
X-33 -211
X-45 -210
X-44 -210
X-41 -210
X-34 -210
X-32 -210
X-43 -209
X-42 -209
X-32 -209
X-32 -208
X-31 -208
X-55 -207
X-54 -207
X-48 -207
X-47 -207
X-55 -206
X-54 -206
X-48 -206
X-46 -206
X-10 -206
X-48 -205
X-46 -205
X -9 -205
X -8 -205
X-47 -204
X-46 -204
X-10 -204
X -9 -204
X-37 -199
X-36 -199
X-37 -198
X-12 -198
X-50 -197
X-49 -197
X-39 -197
X-37 -197
X-27 -197
X-13 -197
X-12 -197
X-11 -197
X-51 -196
X-49 -196
X-39 -196
X-38 -196
X-29 -196
X-27 -196
X-13 -196
X-11 -196
X-10 -196
X-58 -195
X-57 -195
X-51 -195
X-49 -195
X-28 -195
X-27 -195
X-12 -195
X-11 -195
X-10 -195
X-58 -194
X-57 -194
X-51 -194
X-50 -194
X-12 -194
X-11 -194
X-10 -194
X-35 -193
X-34 -193
X-12 -193
X-11 -193
X-46 -192
X-45 -192
X-35 -192
X-48 -191
X-47 -191
X-44 -191
X-37 -191
X-35 -191
X-48 -190
X-46 -190
X-45 -190
X-44 -190
X-37 -190
X-36 -190
X-56 -189
X-55 -189
X-46 -189
X-45 -189
X-57 -188
X-55 -188
X-57 -187
X-49 -187
X-58 -186
X-57 -186
X-51 -186
X-50 -186
X-50 -185
X-49 -185
X-35 -185
X-34 -185
X-35 -184
X-34 -184
X-54 -183
X-53 -183
X-55 -182
X-53 -182
X 15 -182
X-55 -181
X 13 -181
X 16 -181
X-56 -180
X-55 -180
X 13 -180
X 15 -180
X 14 -179
X 16 -179
X-57 -177
X-56 -177
X-56 -176
X  6 -176
X  7 -176
X-56 -175
X-54 -175
X-53 -175
X  6 -175
X  7 -175
X-55 -174
X 29 -174
X 30 -174
X-51 -173
X-36 -173
X-35 -173
X 29 -173
X-53 -172
X-36 -172
X-35 -172
X 27 -172
X 29 -172
X-59 -171
X-58 -171
X-52 -171
X 27 -171
X 28 -171
X-58 -170
X -7 -170
X -6 -170
X -5 -170
X  8 -170
X  9 -170
X 22 -170
X 23 -170
X-58 -169
X-56 -169
X-45 -169
X -7 -169
X -4 -169
X  7 -169
X  9 -169
X 21 -169
X 24 -169
X-57 -168
X-56 -168
X-45 -168
X -7 -168
X  7 -168
X 18 -168
X 21 -168
X 23 -168
X-46 -167
X-38 -167
X-37 -167
X -7 -167
X -3 -167
X  6 -167
X  7 -167
X 17 -167
X 22 -167
X-45 -166
X-44 -166
X-38 -166
X-36 -166
X -7 -166
X 18 -166
X 20 -166
X 21 -166
X 29 -166
X 30 -166
X-46 -165
X-45 -165
X-44 -165
X-36 -165
X -6 -165
X -4 -165
X 19 -165
X 20 -165
X 29 -165
X 30 -165
X-53 -164
X-52 -164
X-51 -164
X-48 -164
X-47 -164
X-46 -164
X-36 -164
X-35 -164
X 10 -164
X 11 -164
X-59 -163
X-58 -163
X-54 -163
X-52 -163
X-50 -163
X-48 -163
X-47 -163
X-28 -163
X-27 -163
X  9 -163
X 11 -163
X-59 -162
X-58 -162
X-54 -162
X-50 -162
X-47 -162
X-27 -162
X-26 -162
X  9 -162
X-54 -161
X-52 -161
X-48 -161
X-40 -161
X-39 -161
X-28 -161
X  8 -161
X  9 -161
X-53 -160
X-52 -160
X-50 -160
X-48 -160
X-40 -160
X-38 -160
X  4 -160
X  5 -160
X-51 -159
X-50 -159
X-49 -159
X-38 -159
X  3 -159
X  4 -159
X-38 -158
X-37 -158
X  5 -158
X 18 -156
X 17 -155
X-48 -154
X-47 -154
X-46 -154
X 17 -154
X-50 -153
X-49 -153
X-47 -153
X-45 -153
X 27 -153
X 28 -153
X-51 -152
X-49 -152
X-45 -152
X 27 -152
X 28 -152
X-56 -151
X-55 -151
X-51 -151
X-47 -151
X-44 -151
X  4 -151
X  5 -151
X 20 -151
X-56 -150
X-55 -150
X-51 -150
X-49 -150
X-47 -150
X-45 -150
X-44 -150
X  5 -150
X 19 -150
X 21 -150
X-50 -149
X-49 -149
X-48 -149
X-45 -149
X-44 -149
X-43 -149
X-33 -149
X-32 -149
X  5 -149
X  7 -149
X 18 -149
X 19 -149
X 21 -149
X 22 -149
X-43 -148
X-42 -148
X-41 -148
X-33 -148
X  6 -148
X  7 -148
X 19 -148
X 22 -148
X-42 -147
X-41 -147
X-35 -147
X-33 -147
X 20 -147
X 21 -147
X 25 -147
X 26 -147
X-43 -146
X-35 -146
X-34 -146
X 25 -146
X 27 -146
X-54 -145
X-53 -145
X-42 -145
X 27 -145
X-55 -144
X-53 -144
X-42 -144
X 27 -144
X 28 -144
X-55 -143
X  4 -143
X  5 -143
X 13 -143
X-56 -142
X-55 -142
X-49 -142
X  4 -142
X  5 -142
X 13 -142
X-50 -141
X-33 -141
X-32 -141
X 13 -141
X-50 -140
X-49 -140
X-48 -140
X-33 -140
X-32 -140
X  9 -139
X 10 -139
X 11 -139
X 15 -139
X 16 -139
X 17 -139
X 13 -137
X 13 -136
X 13 -135
X-52 -132
X-51 -132
X-51 -131
X 18 -131
X 19 -131
X-51 -130
X-49 -130
X 17 -130
X 18 -130
X-50 -129
X-49 -129
X 19 -129
X-31 -128
X-30 -128
X-31 -127
X-30 -127
X-54 -126
X-53 -126
X-41 -126
X-40 -126
X-39 -126
X-53 -125
X-42 -125
X 40 -125
X-53 -124
X-51 -124
X-43 -124
X-39 -124
X 38 -124
X 40 -124
X-52 -123
X-51 -123
X-43 -123
X-39 -123
X-38 -123
X -7 -123
X -6 -123
X -5 -123
X 39 -123
X 40 -123
X-43 -122
X-37 -122
X-33 -122
X-32 -122
X -8 -122
X -5 -122
X-45 -121
X-42 -121
X-33 -121
X-31 -121
X -5 -121
X-46 -120
X-44 -120
X-41 -120
X-37 -120
X-31 -120
X -9 -120
X -5 -120
X-46 -119
X-44 -119
X-39 -119
X-31 -119
X-30 -119
X -5 -119
X-54 -118
X-53 -118
X -8 -118
X -6 -118
X-54 -117
X-53 -117
X-47 -117
X-44 -117
X-35 -116
X-34 -116
X-47 -115
X-43 -115
X-35 -115
X-33 -115
X-46 -114
X-45 -114
X-44 -114
X-33 -114
X-33 -113
X-32 -113
X-44 -111
X-43 -111
X-42 -111
X-46 -109
X-40 -109
X-31 -109
X-30 -109
X-46 -108
X-40 -108
X-31 -108
X 42 -108
X-46 -107
X-40 -107
X-33 -107
X-31 -107
X 41 -107
X 42 -107
X-33 -106
X-32 -106
X 41 -106
X 43 -106
X-52 -105
X-51 -105
X-44 -105
X-43 -105
X-42 -105
X-52 -104
X-51 -104
X-29 -103
X-28 -103
X 54 -103
X 55 -103
X 56 -103
X-29 -102
X 54 -102
X 55 -102
X-31 -101
X-29 -101
X 56 -101
X 64 -101
X 65 -101
X-31 -100
X-30 -100
X 64 -100
X 65 -100
X-50 -99
X-49 -99
X-37 -99
X-36 -99
X-35 -99
X 41 -99
X 42 -99
X-51 -98
X-49 -98
X-40 -98
X-34 -98
X 42 -98
X 57 -98
X-51 -97
X-41 -97
X-35 -97
X-34 -97
X 42 -97
X 44 -97
X 56 -97
X 57 -97
X 58 -97
X-52 -96
X-51 -96
X-42 -96
X-41 -96
X-39 -96
X-35 -96
X 43 -96
X 44 -96
X 56 -96
X 59 -96
X-40 -95
X-35 -95
X-29 -95
X-28 -95
X 57 -95
X 58 -95
X 62 -95
X 63 -95
X-38 -94
X-36 -94
X-29 -94
X-28 -94
X 62 -94
X 64 -94
X-38 -93
X-37 -93
X 64 -93
X 64 -92
X 65 -92
X-50 -91
X 41 -91
X 42 -91
X 50 -91
X-51 -90
X 41 -90
X 42 -90
X 50 -90
X 51 -90
X-51 -89
X-50 -89
X-49 -89
X 51 -88
X 52 -88
X 53 -88
X-47 -87
X-46 -87
X 51 -87
X 54 -87
X-46 -86
X 52 -86
X 53 -86
X-46 -85
X-44 -85
X 52 -85
X-45 -84
X-44 -84
X-35 -84
X-34 -84
X 45 -84
X-35 -83
X-33 -83
X-26 -83
X-25 -83
X 44 -83
X 45 -83
X 59 -83
X 60 -83
X-37 -82
X-32 -82
X-26 -82
X-25 -82
X 43 -82
X 46 -82
X 59 -82
X-49 -81
X-48 -81
X-39 -81
X-38 -81
X-36 -81
X-32 -81
X 44 -81
X 45 -81
X 46 -81
X 57 -81
X 59 -81
X-48 -80
X-38 -80
X-32 -80
X-31 -80
X 57 -80
X 58 -80
X-48 -79
X-46 -79
X-37 -79
X-31 -79
X 38 -79
X 39 -79
X 46 -79
X 47 -79
X-47 -78
X-46 -78
X-34 -78
X-33 -78
X-32 -78
X 38 -78
X 39 -78
X 47 -78
X-28 -77
X-27 -77
X 61 -77
X 62 -77
X-28 -76
X-26 -76
X -7 -76
X -6 -76
X -5 -76
X 61 -76
X-26 -75
X -7 -75
X -4 -75
X 59 -75
X 61 -75
X-26 -74
X-25 -74
X -7 -74
X 54 -74
X 55 -74
X 59 -74
X 60 -74
X 76 -74
X-49 -73
X-48 -73
X -7 -73
X -3 -73
X 40 -73
X 41 -73
X 53 -73
X 56 -73
X 77 -73
X-49 -72
X-48 -72
X-41 -72
X-40 -72
X-39 -72
X -7 -72
X 39 -72
X 41 -72
X 53 -72
X 54 -72
X 55 -72
X 75 -72
X 76 -72
X 77 -72
X -6 -71
X -4 -71
X 39 -71
X 54 -71
X-43 -70
X-37 -70
X 38 -70
X 39 -70
X-43 -69
X-37 -69
X 61 -69
X 62 -69
X-43 -68
X-37 -68
X 53 -68
X 61 -68
X 62 -68
X-40 -67
X-39 -67
X 51 -67
X 52 -67
X-44 -66
X-43 -66
X 51 -66
X 52 -66
X 53 -66
X-46 -65
X-40 -65
X-31 -65
X-30 -65
X-46 -64
X-40 -64
X-31 -64
X-46 -63
X-40 -63
X-33 -63
X-31 -63
X 38 -63
X 40 -63
X-33 -62
X-32 -62
X 38 -62
X 39 -62
X-52 -61
X-51 -61
X-44 -61
X-43 -61
X-42 -61
X 39 -61
X-52 -60
X-51 -60
X-29 -59
X-28 -59
X-29 -58
X-31 -57
X-29 -57
X-16 -57
X-31 -56
X-30 -56
X-15 -56
X-14 -56
X-50 -55
X-49 -55
X-37 -55
X-36 -55
X-35 -55
X-16 -55
X-15 -55
X-51 -54
X-49 -54
X-40 -54
X-34 -54
X-51 -53
X-41 -53
X-35 -53
X-34 -53
X-52 -52
X-51 -52
X-42 -52
X-41 -52
X-39 -52
X-35 -52
X-40 -51
X-35 -51
X-29 -51
X-28 -51
X-38 -50
X-36 -50
X-29 -50
X-28 -50
X-48 -49
X-47 -49
X-38 -49
X-37 -49
X-49 -48
X-47 -48
X-49 -47
X-50 -46
X-49 -46
X 36 -46
X 37 -46
X 38 -46
X 38 -45
X 37 -44
X-51 -43
X-50 -43
X-50 -42
X 24 -42
X-50 -41
X-48 -41
X-40 -41
X-39 -41
X-38 -41
X 22 -41
X 24 -41
X 25 -41
X-49 -40
X-48 -40
X-40 -40
X-39 -40
X 14 -40
X 15 -40
X 22 -40
X-38 -39
X-30 -39
X-29 -39
X 14 -39
X 15 -39
X-30 -38
X-29 -38
X 37 -38
X 38 -38
X-53 -37
X-52 -37
X 37 -37
X-52 -36
X-37 -36
X 21 -36
X 22 -36
X 23 -36
X 35 -36
X 37 -36
X-52 -35
X-50 -35
X-38 -35
X-37 -35
X-36 -35
X-16 -35
X-15 -35
X-14 -35
X 20 -35
X 23 -35
X 35 -35
X 36 -35
X-51 -34
X-50 -34
X-38 -34
X-35 -34
X-14 -34
X 16 -34
X 17 -34
X 21 -34
X 22 -34
X-37 -33
X-36 -33
X-32 -33
X-31 -33
X-15 -33
X 15 -33
X 17 -33
X-32 -32
X-30 -32
X  3 -32
X  4 -32
X  5 -32
X 15 -32
X 65 -32
X-30 -31
X  3 -31
X 14 -31
X 15 -31
X 63 -31
X 64 -31
X 65 -31
X-30 -30
X-29 -30
X  4 -30
X 37 -30
X 38 -30
X 62 -30
X-53 -29
X-52 -29
X-44 -29
X 28 -29
X 29 -29
X 30 -29
X 37 -29
X 38 -29
X 62 -29
X 63 -29
X-53 -28
X-52 -28
X-45 -28
X-44 -28
X 18 -28
X 19 -28
X-34 -27
X-33 -27
X 17 -27
X 19 -27
X 26 -27
X 32 -27
X-47 -26
X-46 -26
X-45 -26
X-34 -26
X-32 -26
X 17 -26
X 26 -26
X 32 -26
X-48 -25
X-45 -25
X-32 -25
X 16 -25
X 17 -25
X 26 -25
X 32 -25
X-47 -24
X-46 -24
X-32 -24
X-31 -24
X-46 -23
X 28 -23
X 29 -23
X 30 -23
X-39 -22
X 28 -22
X-39 -21
X-38 -21
X 26 -21
X 27 -21
X-40 -20
X-37 -20
X-40 -19
X-39 -19
X-38 -19
X 26 -19
X 28 -19
X 27 -18
X 50 -18
X 51 -18
X 52 -18
X-50 -17
X-49 -17
X-41 -17
X-40 -17
X 35 -17
X 36 -17
X 52 -17
X-50 -16
X-49 -16
X-41 -16
X 35 -16
X 36 -16
X 51 -16
X-27 -15
X-26 -15
X 12 -15
X 13 -15
X 26 -15
X 27 -15
X-27 -14
X 13 -14
X 24 -14
X-29 -13
X-27 -13
X 13 -13
X 15 -13
X-34 -12
X-33 -12
X-29 -12
X-28 -12
X 14 -12
X 15 -12
X 20 -12
X 21 -12
X 23 -12
X-48 -11
X-47 -11
X-35 -11
X-32 -11
X 19 -11
X 23 -11
X 33 -11
X 34 -11
X-49 -10
X-47 -10
X-35 -10
X-34 -10
X-33 -10
X 26 -10
X 33 -10
X 35 -10
X-49  -9
X-34  -9
X 20  -9
X 21  -9
X 25  -9
X 35  -9
X-50  -8
X-49  -8
X 21  -8
X 24  -8
X 35  -8
X 36  -8
X-27  -7
X-26  -7
X 12  -7
X 13  -7
X 22  -7
X 23  -7
X-35  -6
X-27  -6
X-26  -6
X 12  -6
X 13  -6
X-37  -5
X-36  -5
X-37  -4
X-36  -4
X-35  -4
X 31  -4
X 33  -4
X 32  -3
X 33  -3
X 32  -2
X-50  -1
X-48  -1
X-50   0
X-49   0
X-48   1
X-49   2
X-48   2
X-49   3
X-47   3
X-49   4
X 27   5
X 28   5
X-29   6
X-28   6
X 10   6
X 11   6
X 26   6
X 28   6
X-39   7
X-38   7
X-29   7
X-28   7
X 10   7
X 11   7
X 28   7
X-52   8
X-51   8
X-40   8
X-39   8
X-37   8
X-36   8
X 33   8
X 34   8
X-51   9
X-41   9
X-37   9
X-36   9
X 33   9
X-51  10
X-49  10
X-36  10
X 31  10
X 33  10
X-50  11
X-49  11
X-38  11
X-36  11
X 20  11
X 21  11
X 31  11
X 32  11
X-38  12
X-36  12
X-31  12
X-30  12
X 12  12
X 13  12
X 19  12
X 21  12
X-31  13
X-29  13
X 11  13
X 13  13
X 18  13
X 19  13
X-29  14
X 11  14
X 26  14
X 27  14
X 28  14
X-29  15
X-28  15
X 10  15
X 11  15
X 24  15
X 25  15
X-52  16
X-51  16
X 23  16
X 24  16
X 25  16
X 27  16
X 29  16
X 30  16
X 33  16
X 34  16
X-52  17
X-51  17
X 22  17
X 23  17
X 26  17
X 29  17
X 30  17
X 33  17
X 34  17
X-43  18
X 22  18
X 23  18
X 24  18
X 26  18
X 27  18
X 29  18
X 30  18
X-43  19
X 22  19
X 23  19
X 25  19
X-44  20
X-42  20
X 27  20
X 28  20
X-43  21
X 24  21
X 25  21
X-43  22
X-46  23
X-46  24
X-34  24
X-33  24
X-47  25
X-45  25
X-34  25
X 14  25
X 15  25
X 26  25
X 27  25
X 28  25
X-46  26
X-36  26
X-34  26
X 15  26
X-46  27
X-36  27
X-35  27
X 15  27
X 17  27
X 26  27
X 28  27
X-55  28
X-54  28
X  4  28
X  6  28
X 16  28
X 17  28
X 27  28
X-55  29
X-54  29
X  4  29
X  5  29
X 35  29
X 36  29
X-32  30
X-31  30
X  5  30
X 35  30
X 36  30
X-32  31
X-21  31
X-19  31
X 12  31
X 13  31
X 26  31
X 27  31
X-34  32
X-32  32
X-20  32
X-19  32
X 13  32
X 24  32
X-41  33
X-39  33
X-34  33
X-33  33
X-20  33
X 13  33
X 15  33
X-53  34
X-52  34
X-41  34
X-39  34
X 14  34
X 15  34
X 20  34
X 21  34
X 23  34
X-54  35
X-52  35
X-39  35
X 19  35
X 23  35
X 33  35
X 34  35
X-54  36
X-44  36
X-40  36
X-39  36
X 26  36
X 33  36
X 35  36
X-55  37
X-54  37
X-43  37
X-42  37
X-40  37
X-39  37
X 20  37
X 21  37
X 25  37
X 35  37
X-42  38
X-41  38
X-32  38
X-31  38
X 21  38
X 24  38
X 35  38
X 36  38
X-32  39
X-31  39
X 12  39
X 13  39
X 22  39
X 23  39
X-51  40
X-50  40
X 12  40
X 13  40
X-52  41
X-50  41
X-52  42
X 31  42
X 33  42
X-53  43
X-52  43
X 32  43
X 33  43
X 22  44
X 32  44
X 21  45
X 23  45
X-52  46
X-51  46
X 20  46
X 23  46
X-51  47
X 21  47
X-51  48
X-49  48
X-50  49
X-49  49
X-31  50
X-30  50
X-31  51
X-30  51
X-54  52
X-53  52
X-53  53
X-41  53
X-40  53
X-39  53
X-53  54
X-51  54
X-42  54
X-38  54
X-52  55
X-51  55
X-43  55
X-42  56
X-37  56
X-33  56
X-32  56
X-45  57
X-41  57
X-40  57
X-38  57
X-37  57
X-33  57
X-31  57
X-48  58
X-45  58
X-39  58
X-31  58
X-21  58
X-20  58
X-19  58
X-49  59
X-45  59
X-31  59
X-30  59
X-19  59
X-54  60
X-53  60
X-45  60
X-20  60
X-54  61
X-53  61
X 51  61
X-48  62
X-47  62
X-45  62
X-44  62
X-35  62
X-34  62
X 49  62
X 50  62
X 51  62
X-46  63
X-44  63
X-35  63
X-33  63
X 49  63
X 50  63
X 51  63
X-44  64
X-33  64
X 39  64
X 40  64
X-77  65
X-76  65
X-33  65
X-32  65
X 39  65
X 41  65
X-76  66
X -9  66
X -8  66
X 39  66
X-76  67
X-74  67
X-10  67
X -9  67
X -8  67
X-75  68
X-74  68
X-10  68
X -9  68
X -8  68
X 59  68
X 60  68
X-41  69
X-10  69
X -9  69
X -7  69
X 49  69
X 50  69
X 59  69
X 60  69
X-43  70
X-41  70
X -9  70
X -8  70
X -7  70
X 36  70
X 37  70
X 48  70
X 49  70
X 51  70
X 52  70
X-45  71
X-44  71
X-42  71
X-41  71
X -8  71
X 37  71
X 47  71
X 51  71
X 52  71
X-51  72
X-50  72
X 37  72
X 39  72
X 52  72
X-51  73
X-50  73
X-42  73
X 38  73
X 39  73
X 50  73
X 52  73
X-46  74
X-42  74
X-28  74
X-27  74
X 50  74
X 52  74
X 57  74
X 58  74
X 71  74
X-45  75
X-42  75
X-36  75
X-28  75
X 57  75
X 59  75
X 71  75
X 72  75
X-42  76
X-38  76
X-37  76
X-35  76
X-34  76
X-30  76
X-28  76
X 59  76
X 70  76
X 72  76
X-39  77
X-34  77
X-30  77
X-29  77
X 59  77
X 60  77
X-49  78
X-48  78
X-40  78
X 36  78
X 37  78
X-50  79
X-48  79
X-39  79
X-35  79
X 36  79
X 37  79
X-50  80
X-38  80
X-37  80
X-36  80
X 45  80
X 55  80
X 56  80
X-51  81
X-50  81
X 45  81
X 55  81
X 57  81
X-28  82
X-27  82
X 44  82
X 46  82
X 57  82
X-28  83
X-27  83
X 45  83
X 57  83
X 58  83
X-47  84
X-46  84
X 45  84
X-48  85
X-46  85
X 48  85
X-48  86
X 48  86
X-49  87
X-48  87
X 47  87
X 49  87
X 48  88
X 48  89
X 39  90
X 40  90
X-49  91
X 39  91
X 40  91
X-50  92
X-49  92
X 62  92
X 63  92
X-50  93
X-48  93
X 62  93
X-31  94
X-30  94
X 60  94
X 62  94
X-31  95
X-30  95
X 53  95
X 55  95
X 60  95
X 61  95
X-54  96
X-53  96
X 41  96
X 42  96
X 53  96
X 55  96
X-53  97
X-41  97
X-40  97
X-39  97
X 40  97
X 42  97
X 55  97
X-53  98
X-51  98
X-42  98
X-38  98
X 40  98
X 50  98
X 54  98
X 55  98
X-52  99
X-51  99
X-43  99
X 39  99
X 40  99
X 51  99
X 52  99
X 54  99
X 55  99
X-42 100
X-37 100
X-33 100
X-32 100
X 52 100
X 53 100
X 62 100
X 63 100
X-45 101
X-41 101
X-40 101
X-38 101
X-37 101
X-33 101
X-31 101
X 62 101
X 63 101
X-48 102
X-45 102
X-39 102
X-31 102
X-49 103
X-45 103
X-31 103
X-30 103
X 42 103
X-54 104
X-53 104
X-45 104
X 42 104
X 44 104
X-54 105
X-53 105
X 42 105
X 43 105
X 53 105
X 54 105
X-48 106
X-47 106
X-45 106
X-44 106
X-35 106
X-34 106
X 53 106
X 54 106
X 55 106
X-46 107
X-44 107
X-35 107
X-33 107
X 53 107
X 54 107
X 55 107
X-44 108
X-33 108
X 53 108
X-33 109
X-32 109
X 54 109
X-35 113
X-34 113
X -8 113
X -7 113
X-48 114
X-47 114
X-46 114
X-35 114
X -8 114
X -7 114
X -6 114
X-77 115
X-76 115
X-50 115
X-49 115
X-47 115
X-45 115
X-37 115
X-35 115
X -8 115
X -7 115
X -6 115
X-76 116
X-51 116
X-49 116
X-45 116
X-37 116
X-36 116
X -9 116
X -7 116
X -6 116
X-76 117
X-74 117
X-56 117
X-55 117
X-51 117
X-47 117
X-44 117
X -9 117
X -8 117
X -7 117
X-75 118
X-74 118
X-73 118
X-56 118
X-55 118
X-51 118
X-49 118
X-47 118
X-45 118
X-44 118
X -8 118
X-73 119
X-72 119
X-71 119
X-50 119
X-49 119
X-48 119
X-45 119
X-44 119
X-43 119
X-33 119
X-32 119
X-73 120
X-72 120
X-43 120
X-42 120
X-41 120
X-33 120
X-71 121
X-42 121
X-41 121
X-35 121
X-33 121
X-43 122
X-35 122
X-34 122
X-54 123
X-53 123
X-42 123
X-55 124
X-53 124
X-42 124
X-55 125
X-56 126
X-55 126
X-49 126
X 19 126
X 34 126
X 35 126
X-50 127
X-33 127
X-32 127
X 18 127
X 35 127
X 36 127
X-48 128
X-33 128
X-32 128
X 18 128
X 19 128
X 20 128
X 34 128
X-52 129
X-53 130
X-51 130
X-50 130
X-53 131
X-54 132
X-53 132
X 11 137
X 10 138
X 12 138
X  9 139
X 13 139
X-35 140
X-34 140
X 10 140
X 12 140
X-50 141
X-35 141
X-34 141
X 11 141
X-58 142
X-57 142
X-50 142
X-49 142
X  2 142
X  3 142
X-57 143
X-51 143
X-48 143
X  2 143
X  3 143
X-57 144
X-55 144
X-48 144
X 25 144
X 26 144
X-56 145
X-55 145
X-51 145
X-50 145
X-47 145
X-46 145
X 25 145
X-51 146
X-50 146
X-45 146
X-37 146
X-36 146
X 23 146
X 25 146
X-51 147
X-49 147
X-46 147
X-45 147
X-44 147
X-37 147
X-35 147
X 23 147
X 24 147
X-51 148
X-50 148
X-45 148
X-35 148
X  4 148
X  5 148
X 18 148
X 19 148
X-51 149
X-47 149
X-46 149
X-35 149
X-34 149
X  3 149
X  5 149
X 17 149
X 20 149
X-58 150
X-57 150
X-53 150
X-52 150
X-51 150
X-48 150
X  3 150
X 14 150
X 17 150
X 19 150
X-58 151
X-57 151
X-52 151
X-50 151
X-48 151
X  2 151
X  3 151
X 13 151
X 18 151
X-51 152
X-50 152
X-49 152
X 14 152
X 16 152
X 17 152
X 25 152
X 26 152
X-50 153
X 15 153
X 16 153
X 25 153
X 26 153
X  5 155
X  4 156
X  4 157
X  5 157
X  6 157
X-40 158
X-39 158
X-32 158
X-40 159
X-31 159
X-53 160
X-42 160
X-40 160
X-33 160
X-32 160
X-31 160
X -9 160
X -8 160
X-54 161
X-53 161
X-52 161
X-42 161
X-41 161
X-10 161
X -9 161
X -8 161
X  6 161
X  7 161
X-61 162
X-60 162
X-55 162
X-53 162
X-51 162
X-10 162
X -9 162
X -8 162
X  7 162
X-61 163
X-60 163
X-56 163
X-55 163
X-54 163
X-51 163
X-10 163
X -9 163
X -7 163
X  7 163
X  9 163
X-54 164
X-50 164
X-49 164
X-38 164
X-37 164
X -9 164
X -8 164
X -7 164
X  8 164
X  9 164
X-54 165
X-53 165
X-48 165
X-38 165
X -8 165
X 27 165
X 28 165
X-54 166
X-52 166
X-49 166
X-48 166
X-47 166
X-40 166
X-38 166
X 27 166
X 28 166
X-54 167
X-53 167
X-48 167
X-40 167
X-39 167
X  4 167
X  5 167
X-59 168
X-58 168
X-54 168
X-53 168
X-50 168
X-49 168
X  5 168
X-60 169
X-58 169
X-51 169
X  5 169
X  7 169
X 18 169
X-60 170
X-54 170
X-51 170
X  6 170
X  7 170
X 17 170
X 18 170
X 19 170
X-61 171
X-60 171
X-53 171
X-52 171
X 17 171
X 20 171
X 25 171
X 26 171
X-53 172
X-38 172
X-37 172
X 10 172
X 11 172
X 12 172
X 18 172
X 20 172
X 25 172
X 27 172
X-38 173
X-37 173
X  9 173
X 19 173
X 27 173
X-57 174
X-56 174
X  5 174
X  7 174
X  8 174
X 12 174
X 27 174
X 28 174
X-58 175
X-56 175
X  4 175
X 10 175
X 11 175
X-58 176
X  4 176
X-59 177
X-58 177
X  5 177
X  6 177
X 10 177
X 11 177
X 12 177
X 13 177
X  8 178
X 14 178
X 15 178
X 12 179
X 14 179
X 15 179
X-58 180
X-57 180
X 13 180
X-57 181
X-57 182
X-55 182
X-56 183
X-55 183
X  9 183
X 10 183
X-37 184
X-36 184
X  8 184
X 10 184
X-37 185
X-36 185
X 10 185
X-60 186
X-59 186
X-59 187
X-14 187
X-12 187
X 34 187
X-59 188
X-57 188
X-53 188
X-52 188
X-51 188
X-15 188
X 35 188
X-58 189
X-57 189
X-54 189
X-50 189
X-15 189
X-11 189
X 33 189
X 34 189
X 35 189
X-55 190
X-49 190
X-39 190
X-38 190
X-15 190
X-55 191
X-49 191
X-39 191
X-37 191
X-15 191
X-12 191
X-55 192
X-49 192
X-37 192
X-15 192
X-14 192
X-13 192
X-54 193
X-50 193
X-37 193
X-36 193
X-60 194
X-59 194
X-53 194
X-52 194
X-51 194
X-60 195
X-59 195
X-41 196
X-40 196
X-41 197
X-39 197
X-39 198
X-33 198
X-32 198
X-39 199
X-38 199
X-32 199
X-31 199
X-33 200
X-57 206
X-56 206
X-57 207
X-56 207
X-50 207
X-49 207
X-48 207
X-15 207
X-14 207
X-13 207
X -8 207
X -7 207
X-51 208
X-47 208
X-34 208
X-33 208
X-13 208
X -8 208
X -7 208
X -6 208
X-52 209
X-46 209
X-34 209
X-14 209
X -8 209
X -7 209
X -6 209
X-52 210
X-46 210
X-36 210
X-34 210
X -9 210
X -7 210
X -6 210
X-52 211
X-46 211
X-36 211
X-35 211
X -9 211
X -8 211
X -7 211
X-55 212
X-54 212
X-51 212
X-47 212
X -8 212
X-56 213
X-54 213
X-50 213
X-49 213
X-48 213
X-56 214
X-57 215
X-56 215
X-34 216
X-33 216
X-34 217
X-33 217
X-77 220
X-76 220
X-76 221
X-76 222
X-74 222
X-75 223
X-74 223
X-51 227
X-50 227
X-51 228
X-50 228
X-28 229
X-27 229
X-36 230
X-35 230
X-34 230
X-28 230
X-37 231
X-33 231
X-31 231
X-30 231
X-28 231
X-38 232
X-29 232
X-49 233
X-48 233
X-39 233
X-35 233
X-50 234
X-48 234
X-39 234
X-36 234
X-34 234
X-16 234
X-14 234
X-50 235
X-39 235
X-35 235
X-31 235
X-13 235
X-51 236
X-50 236
X-38 236
X-32 236
X-17 236
X-13 236
X-37 237
X-33 237
X-28 237
X-27 237
X-13 237
X-36 238
X-35 238
X-34 238
X-28 238
X-27 238
X-16 238
X-13 238
X-58 239
X-57 239
X-56 239
X-15 239
X-14 239
X-13 239
X-58 240
X-57 241
X-53 245
X-51 245
X-53 246
X-52 246
X-52 247
X-39 248
X-38 248
X-37 248
X-39 249
X-36 249
X-35 249
X-39 250
X-38 250
X-35 250
X-30 250
X-29 250
X-37 251
X-36 251
X-35 251
X-30 251
X-29 251
X-53 252
X-52 252
X-41 252
X-52 253
X-42 253
X-41 253
X-40 253
X-52 254
X-50 254
X-43 254
X-41 254
X-39 254
X -9 254
X -8 254
X-51 255
X-50 255
X-44 255
X-43 255
X-39 255
X-10 255
X -9 255
X -8 255
X-42 256
X-40 256
X-32 256
X-31 256
X-10 256
X -9 256
X -8 256
X-32 257
X-30 257
X-10 257
X -9 257
X -7 257
X-30 258
X -9 258
X -8 258
X -7 258
X-38 259
X-36 259
X-30 259
X-29 259
X -8 259
X-53 260
X-52 260
X-37 260
X-36 260
X-53 261
X-52 261
X-37 261
X-34 262
X-33 262
X-34 263
X-32 263
X-32 264
X-32 265
X-31 265
X-14 281
X-12 281
X-15 282
X-15 283
X-11 283
X-29 284
X-28 284
X-15 284
X-29 285
X-27 285
X-15 285
X-12 285
X-29 286
X-15 286
X-14 286
X-13 286
X -9 298
X-10 299
X -8 299
X-10 300
X -8 300
X -5 300
X -4 300
X -9 301
X -5 301
X -3 301
X -3 302
X -3 303
X -2 303
END_OF_xlife-2.0/patterns/p94.life
if test 20396 -ne `wc -c <xlife-2.0/patterns/p94.life`; then
    echo shar: \"xlife-2.0/patterns/p94.life\" unpacked with wrong size!
fi
# end of overwriting check
fi
echo shar: End of archive 3 \(of 8\).
cp /dev/null ark3isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 8 archives.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0

dan
----------------------------------------------------
O'Reilly && Associates   argv at sun.com / argv at ora.com
Opinions expressed reflect those of the author only.



More information about the Comp.sources.x mailing list