v01i031: klondike card game, Part03/04

Tom Tkacik tkacik at kyzyl.mi.org
Wed Jun 19 12:30:46 AEST 1991


Submitted-by: tkacik at kyzyl.mi.org (Tom Tkacik)
Posting-number: Volume 1, Issue 31
Archive-name: klondike/part03



Here is part 3 of klondike.
#--------------------------------CUT HERE-------------------------------------
#! /bin/sh
#
# This is a shell archive.  Save this into a file, edit it
# and delete all lines above this comment.  Then give this
# file to sh by executing the command "sh file".  The files
# will be extracted into the current directory owned by
# you with default permissions.
#
# The files contained herein are:
#
# -rw-r--r--  1 tkacik  users      5636 Oct  6  1990 drag.c
# -rw-r--r--  1 tkacik  users     32748 Oct  6  1990 heart.c
# -rw-r--r--  1 tkacik  users      3880 Oct  6  1990 klondike.h
# -rw-r--r--  1 tkacik  users      3402 May 27 18:05 window.c
#
echo 'x - drag.c'
if test -f drag.c; then echo 'shar: not overwriting drag.c'; else
sed 's/^X//' << '________This_Is_The_END________' > drag.c
X/*
X *	Copyright 1990, Thomas E. Tkacik
X *			tkacik at kyzyl.mi.org
X *
X *	Acknowledgments to Kent Quander allowing me to
X *	 use and distribute his wonderfully drawn playing cards.
X *
X *	Permission is given to copy and distribute for non-profit purposes.
X *
X */
X
X/*
X * double buffered dragging of the selected cards with the mouse
X */
X
X#include <malloc.h>
X#include <sys/window.h>
X#include "klondike.h"
X
X/* card that the mouse should drag */
Xextern int ucard;
X
X/* location of the upper left corner of the card */
X/*  the mouse pointer is at the center of the card */
Xstatic int x_screenoff, y_screenoff;
X
X/* the visible size of the card -- it may be against an edge */
Xstatic int drag_w, drag_h;
X
X/* buffer for holding the drag region */
Xstatic unsigned short dragged[12*FACE_SEP+CARD_H][5];
X
X/* number of bytes in the image buffer */
Xstatic unsigned int region_size = 0;
X
X/* pointer to dynamically allocated image buffer */
Xstatic unsigned short *save_region = 0;
X
X/*
X * set up parameters to be able to drag a card
X * and draw the card where the mouse is
X */
X
Xstart_dragging(x,y)
Xint x,y;  /* current mouse position */
X{
X
X	int x_cardoff, y_cardoff;
X
X     /* parameters required to display cards in the proper position */
X
X	x_screenoff = x - (w_cards/2);
X	y_screenoff = y - (h_cards/2);
X	drag_w = w_cards;
X	drag_h = h_cards;
X	x_cardoff = 0;
X	y_cardoff = 0;
X
X     /* modify the parameters if the cards are only partially on the screen */
X
X	if(x_screenoff <= SIDEBORDER + 1) {
X		x_cardoff = SIDEBORDER - x_screenoff + 1;
X		drag_w -= x_cardoff;
X		x_screenoff = SIDEBORDER + 1;
X	}
X	else if(x_screenoff >= WIND_W-SIDEBORDER-w_cards-1) {
X		drag_w = WIND_W - SIDEBORDER - x_screenoff - 1;
X	}
X	if(y_screenoff <= TOPBORDER + 1) {
X		y_cardoff = TOPBORDER - y_screenoff + 1;
X		drag_h -= y_cardoff;
X		y_screenoff = TOPBORDER + 1;
X	}
X	else if(y_screenoff >= WIND_H-TOPBORDER-h_cards-1) {
X		drag_h = WIND_H - TOPBORDER - y_screenoff - 1;
X	}
X
X     /* save the current area */
X
X	wrastop(wn, (unsigned short *)0, 0, dragged[0], 10,
X		x_screenoff, y_screenoff, 0, 0,
X		drag_w, drag_h, SRCSRC, DSTSRC, (unsigned short *)0);
X
X     /* draw the cards */
X
X	wrastop(wn, cards[0], 10, (unsigned short *)0, 0,
X		x_cardoff, y_cardoff, x_screenoff, y_screenoff,
X		drag_w, drag_h, SRCSRC, DSTSRC, (unsigned short *)0);
X}
X
X/*
X * clean up after placing the cards
X */
X
Xstop_dragging()
X{
X     /* redisplay the saved current area */
X
X	wrastop(wn, dragged[0], 10, (unsigned short *)0, 0,
X		0, 0, x_screenoff, y_screenoff,
X		drag_w, drag_h, SRCSRC, DSTSRC, (unsigned short *)0);
X}
X
X/*
X * restore the screen under the old position
X * and display the cards where the mouse is currrently
X */
X
Xkeep_dragging(x,y)
Xint x, y;	/* current mouse position */
X{
X	int xmin, ymin, xmax, ymax;
X	int rows, cols, bytes_per_row;
X	int byte_count;
X	int new_x, new_y, newoff_x, newoff_y, new_w, new_h;
X
X
X     /* paramters for the new mouse location */
X
X	new_x = x - (w_cards/2);
X	new_y = y - (h_cards/2);
X	new_w = w_cards;
X	new_h = h_cards;
X	newoff_x = 0;
X	newoff_y = 0;
X
X     /* modify them if the cards run off the screen */
X
X	if(new_x <= SIDEBORDER + 1) {
X		newoff_x = SIDEBORDER - new_x + 1;
X		new_w -= newoff_x;
X		new_x = SIDEBORDER + 1;
X	}
X	else if(new_x >= WIND_W-SIDEBORDER-w_cards-1) {
X		new_w = WIND_W - SIDEBORDER - new_x - 1;
X	}
X	if(new_y <= TOPBORDER + 1) {
X		newoff_y = TOPBORDER - new_y + 1;
X		new_h -= newoff_y;
X		new_y = TOPBORDER + 1;
X	}
X	else if(new_y >= WIND_H-TOPBORDER-h_cards-1) {
X		new_h = WIND_H - TOPBORDER - new_y - 1;
X	}
X
X     /* need an off screen version of the playing area containing */
X     /*  both the old mouse position and the new one */
X
X	xmin = (new_x < x_screenoff) ? new_x : x_screenoff;
X	ymin = (new_y < y_screenoff) ? new_y : y_screenoff;
X	xmax = (new_x+new_w > x_screenoff+drag_w) ?
X					new_x+new_w : x_screenoff+drag_w;
X	ymax = (new_y+new_h > y_screenoff+drag_h) ?
X					new_y+new_h : y_screenoff+drag_h;
X
X     /* how big an array is required to hold this part */
X     /*  the playing area? */
X
X	rows = ymax - ymin + 1;
X	cols = xmax - xmin + 1;
X	bytes_per_row = ((cols/16) + (((cols%16)>0)?1:0))*2;
X	byte_count = rows * bytes_per_row;
X
X     /* if the array is too small, make it bigger */
X
X	if(save_region == 0) {
X		region_size = byte_count;
X		save_region = (unsigned short*)malloc(region_size);
X	 } else if(byte_count > region_size) {
X		region_size = byte_count;
X		save_region = (unsigned short*)
X				realloc((char*)save_region, region_size);
X	}
X
X
X     /* now drag the cards */
X     /* do everything in the off screen buffer first */
X     /*  so we do not see ghost images */
X
X     /* buffer the region we need to mess around with */
X
X	wrastop(wn, (unsigned short *)0, 0, save_region, bytes_per_row,
X		xmin, ymin, 0, 0,
X		cols, rows, SRCSRC, DSTSRC, (unsigned short *)0);
X
X     /* restore the image */
X
X	wrastop(wn, dragged[0], 10, save_region, bytes_per_row,
X		0, 0, x_screenoff-xmin, y_screenoff-ymin,
X		drag_w, drag_h, SRCSRC, DSTSRC, (unsigned short *)0);
X
X     /* save the area that will be overdrawn by the cards */
X
X	wrastop(wn, save_region, bytes_per_row, dragged[0], 10,
X		new_x-xmin, new_y-ymin, 0, 0,
X		new_w, new_h, SRCSRC, DSTSRC, (unsigned short *)0);
X		
X     /* draw the cards */
X
X	wrastop(wn, cards[0], 10, save_region, bytes_per_row,
X		newoff_x, newoff_y, new_x-xmin, new_y-ymin,
X		new_w, new_h, SRCSRC, DSTSRC, (unsigned short *)0);
X
X     /* put the whole thing back on the screen */
X
X	wrastop(wn, save_region, bytes_per_row, (unsigned short *)0, 0,
X		0, 0, xmin, ymin,
X		cols, rows, SRCSRC, DSTSRC, (unsigned short *)0);
X
X     /* update parameters */
X
X	x_screenoff = new_x;
X	y_screenoff = new_y;
X	drag_w = new_w;
X	drag_h = new_h;
X}
X
________This_Is_The_END________
if test `wc -c < drag.c` -ne 5636; then
	echo 'shar: drag.c was damaged during transit (should have been 5636 bytes)'
fi
fi		; : end of overwriting check
echo 'x - heart.c'
if test -f heart.c; then echo 'shar: not overwriting heart.c'; else
sed 's/^X//' << '________This_Is_The_END________' > heart.c
X/*
X *	Copyright 1990, Thomas E. Tkacik
X *			tkacik at kyzyl.mi.org
X *
X *	Acknowledgments to Kent Quander allowing me to
X *	 use and distribute his wonderfully drawn playing cards.
X *
X *	Permission is given to copy and distribute for non-profit purposes.
X *
X */
X
X/*
XObject Name: hearta
X  Pels Wide: 71
X  Pels High: 65
X       Srcx: 416
X       Srcy: 24
X*/
X
Xunsigned short hearta[65][5] ={
X	{0x0,0x0,0x0,0x0,0x0},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xff3e,0xffff,0xffff,0xffff,0x3f},
X	{0xfe1e,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0xfc0e,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xf88e,0xffff,0xffff,0xffff,0x3f},
X	{0xfa2e,0xffff,0xffff,0xffff,0x3f},
X	{0xf94e,0xffff,0xffff,0xffff,0x3f},
X	{0xfc9e,0xffff,0xffff,0xffff,0x3f},
X	{0xfe3e,0xffff,0xffff,0xffff,0x3f},
X	{0xff7e,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0x3fff,0xfe1c,0xffff,0x3f},
X	{0xfffe,0x9fff,0xfc88,0xffff,0x3f},
X	{0xfffe,0x9fff,0xfca2,0xffff,0x3f},
X	{0xfffe,0x9fff,0xfcaa,0xffff,0x3f},
X	{0xfffe,0x3fff,0xfe55,0xffff,0x3f},
X	{0xfffe,0x7fff,0xff2a,0xffff,0x3f},
X	{0xfffe,0xffff,0xff94,0xffff,0x3f},
X	{0xfffe,0xffff,0xffc9,0xffff,0x3f},
X	{0xfffe,0xffff,0xffe3,0xffff,0x3f},
X	{0xfffe,0xffff,0xfff7,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0x7fff,0x3f},
X	{0xfffe,0xffff,0xffff,0x3fff,0x3e},
X	{0xfffe,0xffff,0xffff,0x9fff,0x3c},
X	{0xfffe,0xffff,0xffff,0x4fff,0x39},
X	{0xfffe,0xffff,0xffff,0x2fff,0x3a},
X	{0xfffe,0xffff,0xffff,0x8fff,0x38},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x1fff,0x38},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x3fff,0x3c},
X	{0xfffe,0xffff,0xffff,0x7fff,0x3e},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x0,0x0,0x0,0x0,0x0}
X};
X/*
XObject Name: heart2
X  Pels Wide: 71
X  Pels High: 65
X       Srcx: 112
X       Srcy: 160
X*/
X
Xunsigned short heart2[65][5] ={
X	{0x0,0x0,0x0,0x0,0x0},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfe1e,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0xfe7e,0xffff,0xffff,0xffff,0x3f},
X	{0xff3e,0xffff,0xffff,0xffff,0x3f},
X	{0xff9e,0x3fff,0xfe1c,0xffff,0x3f},
X	{0xffce,0x9fff,0xfc88,0xffff,0x3f},
X	{0xfc0e,0x9fff,0xfca2,0xffff,0x3f},
X	{0xfffe,0x9fff,0xfcaa,0xffff,0x3f},
X	{0xf88e,0x3fff,0xfe55,0xffff,0x3f},
X	{0xfa2e,0x7fff,0xff2a,0xffff,0x3f},
X	{0xf94e,0xffff,0xff94,0xffff,0x3f},
X	{0xfc9e,0xffff,0xffc9,0xffff,0x3f},
X	{0xfe3e,0xffff,0xffe3,0xffff,0x3f},
X	{0xff7e,0xffff,0xfff7,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xfff7,0x7fff,0x3f},
X	{0xfffe,0xffff,0xffe3,0x3fff,0x3e},
X	{0xfffe,0xffff,0xffc9,0x9fff,0x3c},
X	{0xfffe,0xffff,0xff94,0x4fff,0x39},
X	{0xfffe,0x7fff,0xff2a,0x2fff,0x3a},
X	{0xfffe,0x3fff,0xfe55,0x8fff,0x38},
X	{0xfffe,0x9fff,0xfcaa,0xffff,0x3f},
X	{0xfffe,0x9fff,0xfca2,0x1fff,0x38},
X	{0xfffe,0x9fff,0xfc88,0xffff,0x39},
X	{0xfffe,0x3fff,0xfe1c,0xffff,0x3c},
X	{0xfffe,0xffff,0xffff,0x7fff,0x3e},
X	{0xfffe,0xffff,0xffff,0x3fff,0x3f},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x3fff,0x3c},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x0,0x0,0x0,0x0,0x0}
X};
X/*
XObject Name: heart3
X  Pels Wide: 71
X  Pels High: 65
X       Srcx: 112
X       Srcy: 92
X*/
X
Xunsigned short heart3[65][5] ={
X	{0x0,0x0,0x0,0x0,0x0},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfe1e,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0xfcfe,0xffff,0xffff,0xffff,0x3f},
X	{0xfe3e,0xffff,0xffff,0xffff,0x3f},
X	{0xfcfe,0x3fff,0xfe1c,0xffff,0x3f},
X	{0xfcce,0x9fff,0xfc88,0xffff,0x3f},
X	{0xfe1e,0x9fff,0xfca2,0xffff,0x3f},
X	{0xfffe,0x9fff,0xfcaa,0xffff,0x3f},
X	{0xf88e,0x3fff,0xfe55,0xffff,0x3f},
X	{0xfa2e,0x7fff,0xff2a,0xffff,0x3f},
X	{0xf94e,0xffff,0xff94,0xffff,0x3f},
X	{0xfc9e,0xffff,0xffc9,0xffff,0x3f},
X	{0xfe3e,0xffff,0xffe3,0xffff,0x3f},
X	{0xff7e,0xffff,0xfff7,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0x3fff,0xfe1c,0xffff,0x3f},
X	{0xfffe,0x9fff,0xfc88,0xffff,0x3f},
X	{0xfffe,0x9fff,0xfca2,0xffff,0x3f},
X	{0xfffe,0x9fff,0xfcaa,0xffff,0x3f},
X	{0xfffe,0x3fff,0xfe55,0xffff,0x3f},
X	{0xfffe,0x7fff,0xff2a,0xffff,0x3f},
X	{0xfffe,0xffff,0xff94,0xffff,0x3f},
X	{0xfffe,0xffff,0xffc9,0xffff,0x3f},
X	{0xfffe,0xffff,0xffe3,0xffff,0x3f},
X	{0xfffe,0xffff,0xfff7,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xfff7,0x7fff,0x3f},
X	{0xfffe,0xffff,0xffe3,0x3fff,0x3e},
X	{0xfffe,0xffff,0xffc9,0x9fff,0x3c},
X	{0xfffe,0xffff,0xff94,0x4fff,0x39},
X	{0xfffe,0x7fff,0xff2a,0x2fff,0x3a},
X	{0xfffe,0x3fff,0xfe55,0x8fff,0x38},
X	{0xfffe,0x9fff,0xfcaa,0xffff,0x3f},
X	{0xfffe,0x9fff,0xfca2,0x3fff,0x3c},
X	{0xfffe,0x9fff,0xfc88,0x9fff,0x39},
X	{0xfffe,0x3fff,0xfe1c,0x9fff,0x3f},
X	{0xfffe,0xffff,0xffff,0x3fff,0x3e},
X	{0xfffe,0xffff,0xffff,0x9fff,0x3f},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x3fff,0x3c},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x0,0x0,0x0,0x0,0x0}
X};
X/*
XObject Name: heart4
X  Pels Wide: 71
X  Pels High: 65
X       Srcx: 112
X       Srcy: 24
X*/
X
Xunsigned short heart4[65][5] ={
X	{0x0,0x0,0x0,0x0,0x0},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfc7e,0xffff,0xffff,0xffff,0x3f},
X	{0xfc3e,0xffff,0xffff,0xffff,0x3f},
X	{0xfc9e,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0x780e,0xfc38,0x1fff,0xff0e,0x3f},
X	{0x3cfe,0xf911,0x4fff,0xfe44,0x3f},
X	{0x3cfe,0xf945,0x4fff,0xfe51,0x3f},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x788e,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0xfa2e,0xfe54,0x3fff,0xff95,0x3f},
X	{0xf94e,0xff29,0x7fff,0xffca,0x3f},
X	{0xfc9e,0xff93,0xffff,0xffe4,0x3f},
X	{0xfe3e,0xffc7,0xffff,0xfff1,0x3f},
X	{0xff7e,0xffef,0xffff,0xfffb,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffef,0xffff,0x7ffb,0x3f},
X	{0xfffe,0xffc7,0xffff,0x3ff1,0x3e},
X	{0xfffe,0xff93,0xffff,0x9fe4,0x3c},
X	{0xfffe,0xff29,0x7fff,0x4fca,0x39},
X	{0xfffe,0xfe54,0x3fff,0x2f95,0x3a},
X	{0x7ffe,0xfcaa,0x9fff,0x8f2a,0x38},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x3ffe,0xf945,0x4fff,0x9e51,0x3f},
X	{0x3ffe,0xf911,0x4fff,0x9e44,0x3f},
X	{0x7ffe,0xfc38,0x1fff,0xf0e,0x38},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x9fff,0x3c},
X	{0xfffe,0xffff,0xffff,0x1fff,0x3e},
X	{0xfffe,0xffff,0xffff,0x1fff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x0,0x0,0x0,0x0,0x0}
X};
X/*
XObject Name: heart5
X  Pels Wide: 71
X  Pels High: 65
X       Srcx: 416
X       Srcy: 160
X*/
X
Xunsigned short heart5[65][5] ={
X	{0x0,0x0,0x0,0x0,0x0},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfc0e,0xffff,0xffff,0xffff,0x3f},
X	{0xffce,0xffff,0xffff,0xffff,0x3f},
X	{0xfe0e,0xffff,0xffff,0xffff,0x3f},
X	{0xfcfe,0xffff,0xffff,0xffff,0x3f},
X	{0x7cce,0xfc38,0x1fff,0xff0e,0x3f},
X	{0x3cce,0xf911,0x4fff,0xfe44,0x3f},
X	{0x3e1e,0xf945,0x4fff,0xfe51,0x3f},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x788e,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0xfa2e,0xfe54,0x3fff,0xff95,0x3f},
X	{0xf94e,0xff29,0x7fff,0xffca,0x3f},
X	{0xfc9e,0xff93,0xffff,0xffe4,0x3f},
X	{0xfe3e,0xffc7,0xffff,0xfff1,0x3f},
X	{0xff7e,0xffef,0xffff,0xfffb,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0x7fff,0xfc38,0xffff,0x3f},
X	{0xfffe,0x3fff,0xf911,0xffff,0x3f},
X	{0xfffe,0x3fff,0xf945,0xffff,0x3f},
X	{0xfffe,0x3fff,0xf955,0xffff,0x3f},
X	{0xfffe,0x7fff,0xfcaa,0xffff,0x3f},
X	{0xfffe,0xffff,0xfe54,0xffff,0x3f},
X	{0xfffe,0xffff,0xff29,0xffff,0x3f},
X	{0xfffe,0xffff,0xff93,0xffff,0x3f},
X	{0xfffe,0xffff,0xffc7,0xffff,0x3f},
X	{0xfffe,0xffff,0xffef,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffef,0xffff,0x7ffb,0x3f},
X	{0xfffe,0xffc7,0xffff,0x3ff1,0x3e},
X	{0xfffe,0xff93,0xffff,0x9fe4,0x3c},
X	{0xfffe,0xff29,0x7fff,0x4fca,0x39},
X	{0xfffe,0xfe54,0x3fff,0x2f95,0x3a},
X	{0x7ffe,0xfcaa,0x9fff,0x8f2a,0x38},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x3ffe,0xf945,0x4fff,0x3e51,0x3c},
X	{0x3ffe,0xf911,0x4fff,0x9e44,0x39},
X	{0x7ffe,0xfc38,0x1fff,0x9f0e,0x39},
X	{0xfffe,0xffff,0xffff,0x9fff,0x3f},
X	{0xfffe,0xffff,0xffff,0x3fff,0x38},
X	{0xfffe,0xffff,0xffff,0xffff,0x39},
X	{0xfffe,0xffff,0xffff,0x1fff,0x38},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x0,0x0,0x0,0x0,0x0}
X};
X/*
XObject Name: heart6
X  Pels Wide: 71
X  Pels High: 65
X       Srcx: 416
X       Srcy: 92
X*/
X
Xunsigned short heart6[65][5] ={
X	{0x0,0x0,0x0,0x0,0x0},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfe1e,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0xffce,0xffff,0xffff,0xffff,0x3f},
X	{0xfe0e,0xffff,0xffff,0xffff,0x3f},
X	{0x7cce,0xfc38,0x1fff,0xff0e,0x3f},
X	{0x3cce,0xf911,0x4fff,0xfe44,0x3f},
X	{0x3e1e,0xf945,0x4fff,0xfe51,0x3f},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x788e,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0xfa2e,0xfe54,0x3fff,0xff95,0x3f},
X	{0xf94e,0xff29,0x7fff,0xffca,0x3f},
X	{0xfc9e,0xff93,0xffff,0xffe4,0x3f},
X	{0xfe3e,0xffc7,0xffff,0xfff1,0x3f},
X	{0xff7e,0xffef,0xffff,0xfffb,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x7ffe,0xfc38,0x1fff,0xff0e,0x3f},
X	{0x3ffe,0xf911,0x4fff,0xfe44,0x3f},
X	{0x3ffe,0xf945,0x4fff,0xfe51,0x3f},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0xfffe,0xfe54,0x3fff,0xff95,0x3f},
X	{0xfffe,0xff29,0x7fff,0xffca,0x3f},
X	{0xfffe,0xff93,0xffff,0xffe4,0x3f},
X	{0xfffe,0xffc7,0xffff,0xfff1,0x3f},
X	{0xfffe,0xffef,0xffff,0xfffb,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffef,0xffff,0x7ffb,0x3f},
X	{0xfffe,0xffc7,0xffff,0x3ff1,0x3e},
X	{0xfffe,0xff93,0xffff,0x9fe4,0x3c},
X	{0xfffe,0xff29,0x7fff,0x4fca,0x39},
X	{0xfffe,0xfe54,0x3fff,0x2f95,0x3a},
X	{0x7ffe,0xfcaa,0x9fff,0x8f2a,0x38},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x3ffe,0xf945,0x4fff,0x3e51,0x3c},
X	{0x3ffe,0xf911,0x4fff,0x9e44,0x39},
X	{0x7ffe,0xfc38,0x1fff,0x9f0e,0x39},
X	{0xfffe,0xffff,0xffff,0x3fff,0x38},
X	{0xfffe,0xffff,0xffff,0xffff,0x39},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x3fff,0x3c},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x0,0x0,0x0,0x0,0x0}
X};
X/*
XObject Name: heart7
X  Pels Wide: 71
X  Pels High: 65
X       Srcx: 416
X       Srcy: 24
X*/
X
Xunsigned short heart7[65][5] ={
X	{0x0,0x0,0x0,0x0,0x0},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfc0e,0xffff,0xffff,0xffff,0x3f},
X	{0xfcee,0xffff,0xffff,0xffff,0x3f},
X	{0xfe7e,0xffff,0xffff,0xffff,0x3f},
X	{0xff3e,0xffff,0xffff,0xffff,0x3f},
X	{0x7f9e,0xfc38,0x1fff,0xff0e,0x3f},
X	{0x3f9e,0xf911,0x4fff,0xfe44,0x3f},
X	{0x3f9e,0xf945,0x4fff,0xfe51,0x3f},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x788e,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0xfa2e,0xfe54,0x3fff,0xff95,0x3f},
X	{0xf94e,0xff29,0x7fff,0xffca,0x3f},
X	{0xfc9e,0xff93,0xffff,0xffe4,0x3f},
X	{0xfe3e,0xffc7,0xffff,0xfff1,0x3f},
X	{0xff7e,0xffef,0xffff,0xfffb,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0x3fff,0xfe1c,0xffff,0x3f},
X	{0xfffe,0x9fff,0xfc88,0xffff,0x3f},
X	{0xfffe,0x9fff,0xfca2,0xffff,0x3f},
X	{0xfffe,0x9fff,0xfcaa,0xffff,0x3f},
X	{0xfffe,0x3fff,0xfe55,0xffff,0x3f},
X	{0xfffe,0x7fff,0xff2a,0xffff,0x3f},
X	{0xfffe,0xffff,0xff94,0xffff,0x3f},
X	{0xfffe,0xffff,0xffc9,0xffff,0x3f},
X	{0xfffe,0xffff,0xffe3,0xffff,0x3f},
X	{0xfffe,0xffff,0xfff7,0xffff,0x3f},
X	{0x7ffe,0xfc38,0x1fff,0xff0e,0x3f},
X	{0x3ffe,0xf911,0x4fff,0xfe44,0x3f},
X	{0x3ffe,0xf945,0x4fff,0xfe51,0x3f},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0xfffe,0xfe54,0x3fff,0xff95,0x3f},
X	{0xfffe,0xff29,0x7fff,0xffca,0x3f},
X	{0xfffe,0xff93,0xffff,0xffe4,0x3f},
X	{0xfffe,0xffc7,0xffff,0xfff1,0x3f},
X	{0xfffe,0xffef,0xffff,0xfffb,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffef,0xffff,0x7ffb,0x3f},
X	{0xfffe,0xffc7,0xffff,0x3ff1,0x3e},
X	{0xfffe,0xff93,0xffff,0x9fe4,0x3c},
X	{0xfffe,0xff29,0x7fff,0x4fca,0x39},
X	{0xfffe,0xfe54,0x3fff,0x2f95,0x3a},
X	{0x7ffe,0xfcaa,0x9fff,0x8f2a,0x38},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x3ffe,0xf945,0x4fff,0xfe51,0x3c},
X	{0x3ffe,0xf911,0x4fff,0xfe44,0x3c},
X	{0x7ffe,0xfc38,0x1fff,0xff0e,0x3c},
X	{0xfffe,0xffff,0xffff,0x7fff,0x3e},
X	{0xfffe,0xffff,0xffff,0x3fff,0x3f},
X	{0xfffe,0xffff,0xffff,0x9fff,0x3b},
X	{0xfffe,0xffff,0xffff,0x1fff,0x38},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x0,0x0,0x0,0x0,0x0}
X};
X/*
XObject Name: heart8
X  Pels Wide: 71
X  Pels High: 65
X       Srcx: 112
X       Srcy: 160
X*/
X
Xunsigned short heart8[65][5] ={
X	{0x0,0x0,0x0,0x0,0x0},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfe1e,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0xfe1e,0xffff,0xffff,0xffff,0x3f},
X	{0x7cce,0xfc38,0x1fff,0xff0e,0x3f},
X	{0x3cce,0xf911,0x4fff,0xfe44,0x3f},
X	{0x3e1e,0xf945,0x4fff,0xfe51,0x3f},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x788e,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0xfa2e,0xfe54,0x3fff,0xff95,0x3f},
X	{0xf94e,0xff29,0x7fff,0xffca,0x3f},
X	{0xfc9e,0xff93,0xffff,0xffe4,0x3f},
X	{0xfe3e,0xffc7,0xffff,0xfff1,0x3f},
X	{0xff7e,0xffef,0xffff,0xfffb,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x7ffe,0xfc38,0x1fff,0xff0e,0x3f},
X	{0x3ffe,0xf911,0x4fff,0xfe44,0x3f},
X	{0x3ffe,0xf945,0x4fff,0xfe51,0x3f},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0xfffe,0xfe54,0x3fff,0xff95,0x3f},
X	{0xfffe,0xff29,0x7fff,0xffca,0x3f},
X	{0xfffe,0xff93,0xffff,0xffe4,0x3f},
X	{0xfffe,0xffc7,0xffff,0xfff1,0x3f},
X	{0xfffe,0xffef,0xffff,0xfffb,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffef,0xffff,0xfffb,0x3f},
X	{0xfffe,0xffc7,0xffff,0xfff1,0x3f},
X	{0xfffe,0xff93,0xffff,0xffe4,0x3f},
X	{0xfffe,0xff29,0x7fff,0xffca,0x3f},
X	{0xfffe,0xfe54,0x3fff,0xff95,0x3f},
X	{0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x3ffe,0xf945,0x4fff,0xfe51,0x3f},
X	{0x3ffe,0xf911,0x4fff,0xfe44,0x3f},
X	{0x7ffe,0xfc38,0x1fff,0xff0e,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffef,0xffff,0x7ffb,0x3f},
X	{0xfffe,0xffc7,0xffff,0x3ff1,0x3e},
X	{0xfffe,0xff93,0xffff,0x9fe4,0x3c},
X	{0xfffe,0xff29,0x7fff,0x4fca,0x39},
X	{0xfffe,0xfe54,0x3fff,0x2f95,0x3a},
X	{0x7ffe,0xfcaa,0x9fff,0x8f2a,0x38},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x3ffe,0xf945,0x4fff,0x3e51,0x3c},
X	{0x3ffe,0xf911,0x4fff,0x9e44,0x39},
X	{0x7ffe,0xfc38,0x1fff,0x9f0e,0x39},
X	{0xfffe,0xffff,0xffff,0x3fff,0x3c},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x3fff,0x3c},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x0,0x0,0x0,0x0,0x0}
X};
X/*
XObject Name: heart9
X  Pels Wide: 71
X  Pels High: 65
X       Srcx: 112
X       Srcy: 92
X*/
X
Xunsigned short heart9[65][5] ={
X	{0x0,0x0,0x0,0x0,0x0},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfe1e,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0xfc1e,0xffff,0xffff,0xffff,0x3f},
X	{0x7cfe,0xfc38,0x1fff,0xff0e,0x3f},
X	{0x3cce,0xf911,0x4fff,0xfe44,0x3f},
X	{0x3e1e,0xf945,0x4fff,0xfe51,0x3f},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x788e,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0xfa2e,0xfe54,0x3fff,0xff95,0x3f},
X	{0xf94e,0xff29,0x7fff,0xffca,0x3f},
X	{0xfc9e,0xff93,0xffff,0xffe4,0x3f},
X	{0xfe3e,0xffc7,0xffff,0xfff1,0x3f},
X	{0xff7e,0xffef,0xffff,0xfffb,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x7ffe,0xfc38,0x1fff,0xff0e,0x3f},
X	{0x3ffe,0xf911,0x4fff,0xfe44,0x3f},
X	{0x3ffe,0xf945,0x4fff,0xfe51,0x3f},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0xfffe,0xfe54,0x3fff,0xff95,0x3f},
X	{0xfffe,0xff29,0x7fff,0xffca,0x3f},
X	{0xfffe,0x3f93,0xfe1c,0xffe4,0x3f},
X	{0xfffe,0x9fc7,0xfc88,0xfff1,0x3f},
X	{0xfffe,0x9fef,0xfca2,0xfffb,0x3f},
X	{0xfffe,0x9fff,0xfcaa,0xffff,0x3f},
X	{0xfffe,0x3fff,0xfe55,0xffff,0x3f},
X	{0xfffe,0x7fff,0xff2a,0xffff,0x3f},
X	{0xfffe,0xffff,0xff94,0xffff,0x3f},
X	{0xfffe,0xffff,0xffc9,0xffff,0x3f},
X	{0xfffe,0xffef,0xffe3,0xfffb,0x3f},
X	{0xfffe,0xffc7,0xfff7,0xfff1,0x3f},
X	{0xfffe,0xff93,0xffff,0xffe4,0x3f},
X	{0xfffe,0xff29,0x7fff,0xffca,0x3f},
X	{0xfffe,0xfe54,0x3fff,0xff95,0x3f},
X	{0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x3ffe,0xf945,0x4fff,0xfe51,0x3f},
X	{0x3ffe,0xf911,0x4fff,0xfe44,0x3f},
X	{0x7ffe,0xfc38,0x1fff,0xff0e,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffef,0xffff,0x7ffb,0x3f},
X	{0xfffe,0xffc7,0xffff,0x3ff1,0x3e},
X	{0xfffe,0xff93,0xffff,0x9fe4,0x3c},
X	{0xfffe,0xff29,0x7fff,0x4fca,0x39},
X	{0xfffe,0xfe54,0x3fff,0x2f95,0x3a},
X	{0x7ffe,0xfcaa,0x9fff,0x8f2a,0x38},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x3ffe,0xf945,0x4fff,0x3e51,0x3c},
X	{0x3ffe,0xf911,0x4fff,0x9e44,0x39},
X	{0x7ffe,0xfc38,0x1fff,0x9f0e,0x3f},
X	{0xfffe,0xffff,0xffff,0x1fff,0x3c},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x3fff,0x3c},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x0,0x0,0x0,0x0,0x0}
X};
X/*
XObject Name: heart10
X  Pels Wide: 71
X  Pels High: 65
X       Srcx: 112
X       Srcy: 24
X*/
X
Xunsigned short heart10[65][5] ={
X	{0x0,0x0,0x0,0x0,0x0},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xf866,0xffff,0xffff,0xffff,0x3f},
X	{0xf326,0xffff,0xffff,0xffff,0x3f},
X	{0xf326,0xffff,0xffff,0xffff,0x3f},
X	{0xf326,0xffff,0xffff,0xffff,0x3f},
X	{0x7326,0xfc38,0x1fff,0xff0e,0x3f},
X	{0x3326,0xf911,0x4fff,0xfe44,0x3f},
X	{0x3866,0xf945,0x4fff,0xfe51,0x3f},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x788e,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0xfa2e,0xfe54,0x3fff,0xff95,0x3f},
X	{0xf94e,0xff29,0x7fff,0xffca,0x3f},
X	{0xfc9e,0x3f93,0xfe1c,0xffe4,0x3f},
X	{0xfe3e,0x9fc7,0xfc88,0xfff1,0x3f},
X	{0xff7e,0x9fef,0xfca2,0xfffb,0x3f},
X	{0xfffe,0x9fff,0xfcaa,0xffff,0x3f},
X	{0xfffe,0x3fff,0xfe55,0xffff,0x3f},
X	{0xfffe,0x7fff,0xff2a,0xffff,0x3f},
X	{0x7ffe,0xfc38,0x1f94,0xff0e,0x3f},
X	{0x3ffe,0xf911,0x4fc9,0xfe44,0x3f},
X	{0x3ffe,0xf945,0x4fe3,0xfe51,0x3f},
X	{0x3ffe,0xf955,0x4ff7,0xfe55,0x3f},
X	{0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0xfffe,0xfe54,0x3fff,0xff95,0x3f},
X	{0xfffe,0xff29,0x7fff,0xffca,0x3f},
X	{0xfffe,0xff93,0xffff,0xffe4,0x3f},
X	{0xfffe,0xffc7,0xffff,0xfff1,0x3f},
X	{0xfffe,0xffef,0xffff,0xfffb,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffef,0xffff,0xfffb,0x3f},
X	{0xfffe,0xffc7,0xffff,0xfff1,0x3f},
X	{0xfffe,0xff93,0xffff,0xffe4,0x3f},
X	{0xfffe,0xff29,0x7fff,0xffca,0x3f},
X	{0xfffe,0xfe54,0x3fff,0xff95,0x3f},
X	{0x7ffe,0xfcaa,0x9fff,0xff2a,0x3f},
X	{0x3ffe,0xf955,0x4ff7,0xfe55,0x3f},
X	{0x3ffe,0xf945,0x4fe3,0xfe51,0x3f},
X	{0x3ffe,0xf911,0x4fc9,0xfe44,0x3f},
X	{0x7ffe,0xfc38,0x1f94,0xff0e,0x3f},
X	{0xfffe,0x7fff,0xff2a,0xffff,0x3f},
X	{0xfffe,0x3fff,0xfe55,0xffff,0x3f},
X	{0xfffe,0x9fff,0xfcaa,0xffff,0x3f},
X	{0xfffe,0x9fef,0xfca2,0x7ffb,0x3f},
X	{0xfffe,0x9fc7,0xfc88,0x3ff1,0x3e},
X	{0xfffe,0x3f93,0xfe1c,0x9fe4,0x3c},
X	{0xfffe,0xff29,0x7fff,0x4fca,0x39},
X	{0xfffe,0xfe54,0x3fff,0x2f95,0x3a},
X	{0x7ffe,0xfcaa,0x9fff,0x8f2a,0x38},
X	{0x3ffe,0xf955,0x4fff,0xfe55,0x3f},
X	{0x3ffe,0xf945,0x4fff,0xe51,0x33},
X	{0x3ffe,0xf911,0x4fff,0x6644,0x32},
X	{0x7ffe,0xfc38,0x1fff,0x670e,0x32},
X	{0xfffe,0xffff,0xffff,0x67ff,0x32},
X	{0xfffe,0xffff,0xffff,0x67ff,0x32},
X	{0xfffe,0xffff,0xffff,0x67ff,0x32},
X	{0xfffe,0xffff,0xffff,0xfff,0x33},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x0,0x0,0x0,0x0,0x0}
X};
X/*
XObject Name: heartj
X  Pels Wide: 71
X  Pels High: 65
X       Srcx: 112
X       Srcy: 160
X*/
X
Xunsigned short heartj[65][5] ={
X	{0x0,0x0,0x0,0x0,0x0},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xf87e,0xffff,0xffff,0xffff,0x3f},
X	{0xfcfe,0xffff,0xffff,0xffff,0x3f},
X	{0xfcfe,0xffff,0xffff,0xffff,0x3f},
X	{0x1cfe,0x0,0x0,0xfc00,0x3f},
X	{0xdcce,0xffff,0xffff,0xfdff,0x3f},
X	{0xdcce,0xf0e1,0xe000,0xfde3,0x3f},
X	{0xde1e,0x6444,0xcaaa,0xfdc9,0x3f},
X	{0xdffe,0x6514,0xd555,0xfd94,0x3f},
X	{0xd88e,0x6554,0xc000,0xfdaa,0x3f},
X	{0xda2e,0xf2a9,0xd7fe,0xfd9c,0x3f},
X	{0xd94e,0x7953,0xc461,0xfdd5,0x3f},
X	{0xdc9e,0xbca7,0xd5eb,0xfdd5,0x3f},
X	{0xde3e,0xde4f,0xc6ff,0xfdd5,0x3f},
X	{0xdf7e,0x1f1f,0xd33e,0xfdd5,0x3f},
X	{0xdffe,0x7fbf,0xc9fb,0xfddd,0x3f},
X	{0xdffe,0x7fff,0xe4f8,0xfd88,0x3f},
X	{0xdffe,0x7e0f,0x727f,0xfd22,0x3f},
X	{0xdffe,0x38a3,0x793f,0xfd2a,0x3f},
X	{0xdffe,0xbaab,0xfc97,0xfd94,0x3f},
X	{0xdffe,0x3aab,0xfc90,0xfdc9,0x3f},
X	{0xdffe,0xf001,0xf13f,0xfde3,0x3f},
X	{0xdffe,0x77fd,0xf660,0xfdd5,0x3f},
X	{0xdffe,0x77bd,0xf0cf,0xfde3,0x3f},
X	{0xdffe,0x771d,0xff9f,0xfdd5,0x3f},
X	{0xdffe,0x760d,0xff37,0xfde3,0x3f},
X	{0xdffe,0x764d,0xc177,0xfdd5,0x3f},
X	{0xdffe,0x7f9,0x146b,0xfde3,0x3f},
X	{0xdffe,0x7ff3,0x5577,0xfdfe,0x3f},
X	{0xdffe,0x7fe7,0xc16b,0xfdfc,0x3f},
X	{0xdffe,0x7fcf,0xff77,0xfdf9,0x3f},
X	{0xdffe,0x419f,0xff6b,0xfdf3,0x3f},
X	{0xdffe,0x553f,0xff77,0xfde7,0x3f},
X	{0xdffe,0x1463,0xf06b,0xfdcf,0x3f},
X	{0xdffe,0x61d5,0x3777,0xfdd9,0x3f},
X	{0xdffe,0x7fe3,0x3776,0xfdd8,0x3f},
X	{0xdffe,0xffd5,0x777c,0xfddc,0x3f},
X	{0xdffe,0x87e3,0xf779,0xfdde,0x3f},
X	{0xdffe,0x37d5,0xf703,0xfddf,0x3f},
X	{0xdffe,0x47e3,0x7fe,0xfdc0,0x3f},
X	{0xdffe,0x9fc9,0xae04,0xfdea,0x3f},
X	{0xdffe,0x9f94,0xaef4,0xfdea,0x3f},
X	{0x5ffe,0x4f2a,0x8e7e,0xfde2,0x3f},
X	{0x5ffe,0x2722,0x3f7f,0xfdf8,0x3f},
X	{0xdffe,0x9388,0xff0f,0xfdff,0x3f},
X	{0xdffe,0xc9dd,0xff6f,0xfdfe,0x3f},
X	{0xdffe,0x65d5,0x7c3e,0x7dfc,0x3f},
X	{0xdffe,0xb1d5,0x3dff,0x3df9,0x3e},
X	{0xdffe,0xd5d5,0x9ef5,0x9df2,0x3c},
X	{0xdffe,0x11d5,0x4f61,0x4de5,0x39},
X	{0xdffe,0xf59c,0xa7bf,0x2dca,0x3a},
X	{0xdffe,0x1aa,0x5300,0x8d95,0x38},
X	{0xdffe,0x5594,0x5355,0xfd94,0x3f},
X	{0xdffe,0xa9c9,0x132a,0x3d91,0x3c},
X	{0xdffe,0x3e3,0x8780,0x9dc3,0x39},
X	{0xdffe,0xffff,0xffff,0x9dff,0x39},
X	{0x1ffe,0x0,0x0,0x9c00,0x3f},
X	{0xfffe,0xffff,0xffff,0x9fff,0x3f},
X	{0xfffe,0xffff,0xffff,0x9fff,0x3f},
X	{0xfffe,0xffff,0xffff,0xfff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x0,0x0,0x0,0x0,0x0}
X};
X/*
XObject Name: heartq
X  Pels Wide: 71
X  Pels High: 65
X       Srcx: 112
X       Srcy: 92
X*/
X
Xunsigned short heartq[65][5] ={
X	{0x0,0x0,0x0,0x0,0x0},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfe1e,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0x1cce,0x0,0x0,0xfc00,0x3f},
X	{0xdcce,0xffff,0xffff,0xfdff,0x3f},
X	{0xd44e,0xf0e1,0x9249,0xfd11,0x3f},
X	{0xd01e,0xe444,0xa493,0xfd45,0x3f},
X	{0xdffe,0xe514,0x8001,0xfd6d,0x3f},
X	{0xd88e,0xe554,0xd7e4,0xfd29,0x3f},
X	{0xda2e,0x72a9,0xaff2,0xfd93,0x3f},
X	{0xd94e,0x3953,0x599b,0xfdc7,0x3f},
X	{0xdc9e,0x9ca7,0x1eea,0xfdd7,0x3f},
X	{0xde3e,0x4e4f,0x5bba,0xfdc7,0x3f},
X	{0xdf7e,0x271f,0x1efb,0xfdd7,0x3f},
X	{0xdffe,0x93bf,0x5dfa,0xfdc7,0x3f},
X	{0xdffe,0x49ff,0x1bfa,0xfdd7,0x3f},
X	{0xdffe,0x24ff,0x5cfb,0xfdc7,0x3f},
X	{0xdffe,0x927f,0x1fb6,0xfdd7,0x3f},
X	{0xdffe,0x493f,0x4c6e,0xfdc7,0x3f},
X	{0xdffe,0x249f,0x17d9,0xfdd7,0x3f},
X	{0xdffe,0x924f,0x583c,0xfdc7,0x3f},
X	{0xdffe,0xf,0x1ffe,0xfdd7,0x3f},
X	{0xdffe,0xffff,0x400f,0xfdc7,0x3f},
X	{0xdffe,0x7,0x2aae,0xfdd7,0x3f},
X	{0xdffe,0xbff7,0x800e,0xfdc7,0x3f},
X	{0xdffe,0xb277,0xfffe,0xfdd7,0x3f},
X	{0xdffe,0x3077,0x0,0xfdc6,0x3f},
X	{0xdffe,0xf8f7,0xffff,0xfdd6,0x3f},
X	{0xdffe,0xed87,0xfbeb,0xfdc6,0x3f},
X	{0xdffe,0x7bf,0xf014,0xfdfe,0x3f},
X	{0xdffe,0xefb1,0xdbeb,0xfdf0,0x3f},
X	{0xdffe,0xffb5,0x8fff,0xfdf7,0x3f},
X	{0xdffe,0x31,0x600,0xfdf7,0x3f},
X	{0xdffe,0xfff5,0x26bf,0xfdf7,0x3f},
X	{0xdffe,0xf1,0xfeb8,0xfdf7,0x3f},
X	{0xdffe,0xaa75,0x3a,0xfdf0,0x3f},
X	{0xdffe,0x171,0xfff8,0xfdff,0x3f},
X	{0xdffe,0xfc75,0x3f,0xfdf8,0x3f},
X	{0xdffe,0xd71,0x249e,0xfdf9,0x3f},
X	{0xdffe,0xf475,0x924d,0xfdfc,0x3f},
X	{0xdffe,0x1971,0x493b,0xfdfe,0x3f},
X	{0xdffe,0xfc75,0x24b6,0xfdff,0x3f},
X	{0xdffe,0x9d71,0x926f,0xfdff,0x3f},
X	{0xdffe,0xec75,0xc92f,0xfdff,0x3f},
X	{0xdffe,0xdd71,0xe4af,0xfdfe,0x3f},
X	{0xdffe,0xbc75,0x726f,0x7dfc,0x3f},
X	{0xdffe,0xed71,0x392e,0x3df9,0x3e},
X	{0xdffe,0xbc75,0x9cab,0x9df2,0x3c},
X	{0xdffe,0xcd71,0x4e6c,0x4de5,0x39},
X	{0xdffe,0xfe64,0xa72f,0x2dca,0x3a},
X	{0x5ffe,0x55ca,0x5395,0x8d95,0x38},
X	{0x5ffe,0xdb,0x53c0,0xfd94,0x3f},
X	{0x5ffe,0x92d5,0x13e4,0x591,0x3c},
X	{0x5ffe,0x24c4,0x87c9,0x15c3,0x39},
X	{0xdffe,0xffff,0xffff,0x9dff,0x39},
X	{0x1ffe,0x0,0x0,0x9c00,0x39},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x3fff,0x3c},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x0,0x0,0x0,0x0,0x0}
X};
X/*
XObject Name: heartk
X  Pels Wide: 71
X  Pels High: 65
X       Srcx: 112
X       Srcy: 24
X*/
X
Xunsigned short heartk[65][5] ={
X	{0x0,0x0,0x0,0x0,0x0},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0xfcce,0xffff,0xffff,0xffff,0x3f},
X	{0xfe4e,0xffff,0xffff,0xffff,0x3f},
X	{0x1f0e,0x0,0x0,0xfc00,0x3f},
X	{0xde4e,0xffff,0xffff,0xfdff,0x3f},
X	{0xdcce,0x30e1,0xe38e,0xfdff,0x3f},
X	{0xd9ce,0x2444,0xe000,0xfdff,0x3f},
X	{0xdffe,0x2514,0xe38e,0xfdff,0x3f},
X	{0xd88e,0x2554,0xe000,0xfdff,0x3f},
X	{0xda2e,0xb2a9,0xebfe,0xfdfc,0x3f},
X	{0xd94e,0x5953,0xe511,0xfdfc,0x3f},
X	{0xdc9e,0x5ca7,0x555,0xfd00,0x3f},
X	{0xde3e,0x5e4f,0xf5ab,0xfd54,0x3f},
X	{0xdf7e,0x5f1f,0xf5ef,0xfd54,0x3f},
X	{0xdffe,0x4fbf,0x5f7,0xfd00,0x3f},
X	{0xdffe,0x37ff,0xe5c7,0xfdfc,0x3f},
X	{0xdffe,0x83ff,0xe5ff,0xfd8c,0x3f},
X	{0xdffe,0x5cff,0xe2c7,0xfdaf,0x3f},
X	{0xdffe,0xc0ff,0xe97e,0xfdaf,0x3f},
X	{0xdffe,0xf720,0xe481,0xfdaf,0x3f},
X	{0xdffe,0xf02a,0x327e,0xfda0,0x3f},
X	{0xdffe,0x1fea,0xb900,0xfdaa,0x3f},
X	{0xdffe,0xec02,0xbcff,0xfdaa,0x3f},
X	{0xdffe,0xd7e,0xbe00,0xfdbf,0x3f},
X	{0xdffe,0xfd7e,0xbfff,0xfdbf,0x3f},
X	{0xdffe,0x7e,0x2008,0xfd80,0x3f},
X	{0xdffe,0xffde,0xe7e3,0xfdff,0x3f},
X	{0xdffe,0x278e,0x7eb,0xfd80,0x3f},
X	{0xdffe,0x706,0xfde3,0xfdbf,0x3f},
X	{0xdffe,0x8f26,0x78eb,0xfdb2,0x3f},
X	{0xdffe,0xdffe,0x7063,0xfdb0,0x3f},
X	{0xdffe,0xf000,0xf26b,0xfdb8,0x3f},
X	{0xdffe,0xf3ff,0xffe3,0xfdbd,0x3f},
X	{0xdffe,0x200,0x8,0xfdbf,0x3f},
X	{0xdffe,0xfefe,0x5fff,0xfdbf,0x3f},
X	{0xdffe,0x3efe,0x5800,0xfdbf,0x3f},
X	{0xdffe,0x9eaa,0x1bff,0xfda0,0x3f},
X	{0xdffe,0x4eaa,0xfc00,0xfdab,0x3f},
X	{0xdffe,0x2602,0x7bf,0xfdaa,0x3f},
X	{0xdffe,0x93fa,0x77c0,0xfd82,0x3f},
X	{0xdffe,0x4bfa,0x81bf,0xfdff,0x3f},
X	{0xdffe,0xa3fa,0x9d71,0xfdff,0x3f},
X	{0xdffe,0xd398,0xe0ff,0xfdff,0x3f},
X	{0xdffe,0xd39f,0xf671,0xfdff,0x3f},
X	{0x5ffe,0xd000,0xf977,0xfdfe,0x3f},
X	{0x5ffe,0xd795,0x7d7b,0x7dfc,0x3f},
X	{0x5ffe,0xd795,0x3d6a,0x3df9,0x3e},
X	{0x5ffe,0x5000,0x9d55,0x9df2,0x3c},
X	{0xdffe,0x539f,0x4d44,0x4de5,0x39},
X	{0xdffe,0xeb9f,0xa6bf,0x2dca,0x3a},
X	{0xdffe,0x3ff,0x5200,0x8d95,0x38},
X	{0xdffe,0xe3ff,0x5238,0xfd94,0x3f},
X	{0xdffe,0x3ff,0x1200,0xcd91,0x39},
X	{0xdffe,0xe3ff,0x8638,0x9dc3,0x39},
X	{0xdffe,0xffff,0xffff,0x3dff,0x39},
X	{0x1ffe,0x0,0x0,0x7c00,0x38},
X	{0xfffe,0xffff,0xffff,0x3fff,0x39},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0x9fff,0x39},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0xfffe,0xffff,0xffff,0xffff,0x3f},
X	{0x0,0x0,0x0,0x0,0x0}
X};
________This_Is_The_END________
if test `wc -c < heart.c` -ne 32748; then
	echo 'shar: heart.c was damaged during transit (should have been 32748 bytes)'
fi
fi		; : end of overwriting check
echo 'x - klondike.h'
if test -f klondike.h; then echo 'shar: not overwriting klondike.h'; else
sed 's/^X//' << '________This_Is_The_END________' > klondike.h
X/*
X *	Copyright 1990, Thomas E. Tkacik
X *			tkacik at kyzyl.mi.org
X *
X *	Acknowledgments to Kent Quander allowing me to
X *	 use and distribute his wonderfully drawn playing cards.
X *
X *	Permission is given to copy and distribute for non-profit purposes.
X *
X */
X
X#define	NUMCARDS  54		/* number of different images */
X
X#define COLOR(x) (((x)/13)&1)
X#define VALUE(x) (((x)%13)+1)
X#define SUIT(x)  ((x)/13)
X
X/* window size and offset */
X#define  SIDEBORDER 6
X#define  TOPBORDER  4
X#define  WINDOW_X   4		/* characters */
X#define  WINDOW_Y   1		/* characters */
X#define  ROWS       24		/* characters */
X#define  COLS       74		/* characters */
X#define  WIND_H     (ROWS*12)
X#define  WIND_W     (COLS*9)
X
X/* CARD size and offsets */
X#define  CARD_W  71
X#define  CARD_H  65
X#define  TOP     6
X#define  DECK	 16
X#define  LEFT	 (16 + DECK + CARD_W)
X#define  SUIT_SEP 1
X#define  ROW_SEP  8
X#define  BACK_SEP 6  
X#define	 FACE_SEP 10
X
X#define	CARDSHORTS ((CARD_W/16)+((CARD_W%16)?1:0)) /* shorts per row */
X#define CARDSIZE (CARD_H * CARDSHORTS)             /* shorts per image */
X
Xextern int deck[52];
X
Xextern int outcard[4];	/* number of cards played in each suit */
X
Xextern int down[7][7];	/* cards down in each column */
Xextern int numdown[7];	/* number down cards in each column */
Xextern int up[7][13];	/* cards showing in each column */
Xextern int numup[7];	/* number of cards showing in each column */
X
X/* individual cards */
Xextern unsigned short spadea[65][5];
Xextern unsigned short spade2[65][5];
Xextern unsigned short spade3[65][5];
Xextern unsigned short spade4[65][5];
Xextern unsigned short spade5[65][5];
Xextern unsigned short spade6[65][5];
Xextern unsigned short spade7[65][5];
Xextern unsigned short spade8[65][5];
Xextern unsigned short spade9[65][5];
Xextern unsigned short spade10[65][5];
Xextern unsigned short spadej[65][5];
Xextern unsigned short spadeq[65][5];
Xextern unsigned short spadek[65][5];
Xextern unsigned short hearta[65][5];
Xextern unsigned short heart2[65][5];
Xextern unsigned short heart3[65][5];
Xextern unsigned short heart4[65][5];
Xextern unsigned short heart5[65][5];
Xextern unsigned short heart6[65][5];
Xextern unsigned short heart7[65][5];
Xextern unsigned short heart8[65][5];
Xextern unsigned short heart9[65][5];
Xextern unsigned short heart10[65][5];
Xextern unsigned short heartj[65][5];
Xextern unsigned short heartq[65][5];
Xextern unsigned short heartk[65][5];
Xextern unsigned short cluba[65][5];
Xextern unsigned short club2[65][5];
Xextern unsigned short club3[65][5];
Xextern unsigned short club4[65][5];
Xextern unsigned short club5[65][5];
Xextern unsigned short club6[65][5];
Xextern unsigned short club7[65][5];
Xextern unsigned short club8[65][5];
Xextern unsigned short club9[65][5];
Xextern unsigned short club10[65][5];
Xextern unsigned short clubj[65][5];
Xextern unsigned short clubq[65][5];
Xextern unsigned short clubk[65][5];
Xextern unsigned short diama[65][5];
Xextern unsigned short diam2[65][5];
Xextern unsigned short diam3[65][5];
Xextern unsigned short diam4[65][5];
Xextern unsigned short diam5[65][5];
Xextern unsigned short diam6[65][5];
Xextern unsigned short diam7[65][5];
Xextern unsigned short diam8[65][5];
Xextern unsigned short diam9[65][5];
Xextern unsigned short diam10[65][5];
Xextern unsigned short diamj[65][5];
Xextern unsigned short diamq[65][5];
Xextern unsigned short diamk[65][5];
Xextern unsigned short back[65][5];
Xextern unsigned short blank[65][5];
Xextern unsigned short joker[65][5];
X
X/* card image definitions */
Xextern unsigned short *images[NUMCARDS];
X
X/* cards to be dragged */
Xextern unsigned short cards[12*FACE_SEP+CARD_H][5];
X
X/* size of cards to be dragged, in pixels */
Xextern int h_cards, w_cards;
X
X
X/* built-in pattern used for wrastop() */
Xextern unsigned short patwhite[];
Xextern unsigned short patblack[];
X
X/* window discriptor */
Xextern int wn;
X
X#ifdef NOBEEP
X#define beep()
X#else
X#define beep()	wputc(wn, 007)
X#endif
________This_Is_The_END________
if test `wc -c < klondike.h` -ne 3880; then
	echo 'shar: klondike.h was damaged during transit (should have been 3880 bytes)'
fi
fi		; : end of overwriting check
echo 'x - window.c'
if test -f window.c; then echo 'shar: not overwriting window.c'; else
sed 's/^X//' << '________This_Is_The_END________' > window.c
X/*
X *	Copyright 1990, Thomas E. Tkacik
X *			tkacik at kyzyl.mi.org
X *
X *	Acknowledgments to Kent Quander allowing me to
X *	 use and distribute his wonderfully drawn playing cards.
X *
X *	Permission is given to copy and distribute for non-profit purposes.
X *
X */
X
X/*
X * window routines
X */
X
X#include <stdio.h>
X#include <termio.h>
X#include <sys/signal.h>
X#include <sys/window.h>
X#include <sys/font.h>
X#include "klondike.h"
X
Xint (*signal())();
X
X/* window discriptor */
Xint wn;
X
X/* window width and height */
Xint win_width, win_height;
X
Xint reborder(), leave();
Xvoid prewinit();
X
X/*
X * initialize window and draw initial borders
X */
X
Xinitwindow()
X{
X     /* pre-check if things are ok --- no need to call iswind() */
X
X	prewinit();
X
X     /* now initialize the tam routines */
X
X	winit();
X
X     /* open the playing window */
X
X	if((wn = wcreate(WINDOW_Y, WINDOW_X, ROWS, COLS, NBORDER)) == -1) {
X		(void)fprintf(stderr, "could not open window  wn = %d\n",wn);
X		wexit(1);
X	}
X
X     /* draw the initial border around the playing region */
X
X	initborder();
X
X     /* set up function keys */
X
X	wslk(wn, 0, "  VEGAS    HOUSE    REPLAY       QUIT",
X		    "  RULES    RULES     HAND");
X	wuser(wn, "klondike");
X
X     /* allow mouse inputs in 8 bit mode */
X
X	keypad(0,1);
X
X     /* turn off the cursor */
X
X	wputs(wn,"\033[=1C");
X
X     /* catch the signals */
X
X	(void)signal(SIGHUP,  leave);
X	(void)signal(SIGINT,  leave);
X	(void)signal(SIGQUIT, leave);
X	(void)signal(SIGWIND, reborder);
X}
X
X/*
X * draw the initial border around the playing window
X */
X
Xinitborder()
X{
X	struct uwdata win;
X
X     /* determine the initial window size in pixels */
X
X	(void)ioctl(wn, WIOCGETD, &win);
X
X     /* save the size so that everyone can use it */
X
X	win_width  = win.uw_width;
X	win_height = win.uw_height;
X
X     /* draw the border in the screen image */ 
X
X	wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0,
X		0, 0, 0, 0,
X		win_width, TOPBORDER, SRCPAT, DSTSRC, patwhite);
X	wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0,
X		0, 0, 0, win_height-TOPBORDER,
X		win_width, TOPBORDER, SRCPAT, DSTSRC, patwhite);
X	wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0,
X		0, 0, 0, 0,
X		SIDEBORDER, win_height, SRCPAT, DSTSRC, patwhite);
X	wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0,
X		0, 0, win_width-SIDEBORDER, 0,
X		SIDEBORDER, win_height, SRCPAT, DSTSRC, patwhite);
X}
X
X/*
X * catch SIGWIND -- draw border as forground or background
X */
X
Xreborder()
X{
X	unsigned short *pat;
X	struct uwdata win;
X
X     /* determine if the window is on top */
X
X	(void)ioctl(wn, WIOCGETD, &win);
X
X     /* if current window then add border interior, else remove it */
X
X	pat = (win.uw_uflags & KBDWIN) ? patwhite : patblack;
X
X	wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0,
X		0, 0, 1, 1,
X		win_width-2, TOPBORDER-2, SRCPAT, DSTSRC, pat);
X	wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0,
X		0, 0, 1, win_height-TOPBORDER+1,
X		win_width-2, TOPBORDER-2, SRCPAT, DSTSRC, pat);
X	wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0,
X		0, 0, 1, 1,
X		SIDEBORDER-2, win_height-2, SRCPAT, DSTSRC, pat);
X	wrastop(wn, (unsigned short *)0, 0, (unsigned short *)0, 0,
X		0, 0, win_width-SIDEBORDER+1, 1,
X		SIDEBORDER-2, win_height-2, SRCPAT, DSTSRC, pat);
X
X     /* reset signal trap */
X
X	(void) signal(SIGWIND, reborder);
X}
X
X/*
X * SIGINT, SIGQUIT -- close windows and cleanup
X */
X
Xleave()
X{
X	wdelete(wn);
X	wexit(0);
X}
________This_Is_The_END________
if test `wc -c < window.c` -ne 3402; then
	echo 'shar: window.c was damaged during transit (should have been 3402 bytes)'
fi
fi		; : end of overwriting check
exit 0
-- 
Tom Tkacik                |
tkacik at kyzyl.mi.org       |     To rent this space, call 1-800-555-QUIP.
tkacik at hobbes.cs.gmr.com  |

-- 
David H. Brierley
Home: dave at galaxia.newport.ri.us; Work: dhb at quahog.ssd.ray.com
Send comp.sources.3b1 submissions to comp-sources-3b1 at galaxia.newport.ri.us
%% Can I be excused, my brain is full. **



More information about the Comp.sources.3b1 mailing list