pkg://xattax-1.0-2.src.rpm:29168/xattax.tar.gz
info downloads
xataxx/ 40711 1750 1 0 5553057043 10510 5 ustar iialan bin xataxx/README 100600 1750 1 2371 5553057035 11471 0 ustar iialan bin
I pulled this off ftp.x.org and tweaked it for Linux. I mailed the patches
back but they bounced. Anyway this is a fun game not to be played by the
easily frustrated.
Original Readme:
To Install :
edit the Imakefile as appropriate for your system. create a DATADIR
for the xataxx boards and bitmaps, and define BINDIR if
you want the game to go somewhere other than the default
system area.
"make Makefile" OR "xmkmf"
make install
.... and that should be it. Full, gory docs in the manpage.
This game has a lot that could still happen to it - if you are
interested in working on the code, see the TODO file. Since we are way
overloaded here at CMU, there is somewhat small chance that we'll be
able to get around to chopping items from the list anytime soon. If
you do anything to the code, please let us know back here so we can
merge it into future releases.
In any case xataxx *is* a finished game as is. Have fun ...
-jim
jz1j@andrew.cmu.edu
p.s. the supplied Makefile is for bootstrap purposes ONLY. It is unlikely
it will work unmodified on your system. "make Makefile" before
doing anything else.
p.p.s this has only been tested (and heavily) on MIT X11R4 systems. Others
are caveat emptor, but patches welcome if neccesary :-)
xataxx/TODO 100600 1750 1 1221 5010723474 11265 0 ustar iialan bin These are things that we would love to have time to put in, but,
as we are desperately overloaded college students, don't. If you
send us patches for these, we will love you forever and put your
name in the next release and splat it just *EVERYWHERE*
-jim zelenka
Optimize robot
Better color- more than just cursor
internal board generation
Be able to change board sizes w/out changing data dir, restarting
Keep track of player ratings
clean up event handling on two windows (select on both all the time...)
better graphics on moves
dynamically figure out data in boards.num
four player mode
resizeable window
xataxx/bits.c 100600 1750 1 10654 5103153007 11724 0 ustar iialan bin #include <stdio.h>
#include <ctype.h>
#include <X11/Xlib.h>
#include <math.h>
#include <sys/socket.h>
#include <sys/time.h>
#include "struct.h"
#define TITLESIZE (7*X_PIECE_SIZE)
#ifndef FD_SET
#define MAXSELFD 64
typedef long fd_mask;
#define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask (power of 2!)*/
#define NFDSHIFT 5 /* Shift based on above */
#ifndef howmany
#define howmany(x, y) (((x)+((y)-1))/(y))
#endif howmany
#define NBBY 8 /* number of bits in a byte */
#define FD_SETSIZE 64
#define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
#define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
#define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
#define FD_ZERO(p) bzero((char *)(p), sizeof(*(p)))
#endif
extern Display *dpy, *odpy, *currdpy;
extern Window win, owin, currwin;
extern GC gc, ogc, currgc;
extern int xsize, ysize, obstacle_color, scr, oscr;
extern int botmode;
extern Pixmap bamp, obamp, currbamp;
extern int xwin,ywin;
Pixmap mapw, mapb, omapw, omapb, wblock, bblock, owblock, obblock;
int oldw, oldb;
Cursor upc, downc, oupc, odownc;
Bool perfection;
int waitferkey();
msec_wait(millsecs)
int millsecs;
{
struct timeval tv;
tv.tv_sec = 0;
tv.tv_usec = millsecs;
select(0, 0, 0, 0, &tv);
}
waitferkey(tm) /* returns nonzero on timeout, zero on key or click */
int tm;
{
fd_set readbits, rb2;
int sock1, sock2, sockh, tsec=0;
long t1, t2;
XEvent event;
Bool ploop = True;
char c;
struct timeval timeout;
timeout.tv_sec = (long) tm;
timeout.tv_usec = 0;
FD_ZERO(&readbits);
sock1 = ConnectionNumber(dpy);
if (botmode)
sock2 = ConnectionNumber(odpy);
if (sock1 > sock2)
sockh = sock1;
else
sockh = sock2;
if (!botmode)
sockh = sock1;
FD_SET(sock1, &readbits);
if (botmode)
FD_SET(sock2, &readbits);
sockh++;
rb2 = readbits;
while (ploop) {
readbits = rb2;
timeout.tv_sec = ((long) tm - tsec);
t1 = (long) time((long *) 0);
if (select (sockh, &readbits, NULL, NULL, &timeout)) {
t2 = (long) time((long *) 0);
tsec += (t2-t1);
if(XCheckWindowEvent(dpy, win, ButtonPressMask | KeyPressMask | ButtonReleaseMask |
ExposureMask, &event)) {
switch(event.type) {
case ButtonPress:
break;
case ButtonRelease:
ploop = False;
break;
case Expose:
break;
case KeyPress:
XLookupString(&event, &c, 1, NULL, NULL);
if (c == 'q')
quit();
if (isalpha(c) || isspace(c))
ploop = False;
break;
default:
break;
}
}
if(botmode)
if(XCheckWindowEvent(odpy, owin, ButtonPressMask | KeyPressMask | ButtonReleaseMask |
ExposureMask, &event)) {
switch(event.type) {
case ButtonPress:
break;
case ButtonRelease:
ploop = False;
break;
case Expose:
break;
case KeyPress:
XLookupString(&event, &c, 1, NULL, NULL);
if (c == 'q')
quit();
if (isalpha(c) || isspace(c))
ploop = False;
break;
default:
break;
}
}
}
else { /* we have timedout */
return(1);
}
}
return(0);
}
quit()
{
XCloseDisplay(dpy);
if (botmode)
XCloseDisplay(odpy);
exit(0);
}
draw_circle(x,y,color)
int x,y,color;
{
Pixmap wmap, bmap;
if (currdpy == dpy) {
wmap = mapw;
bmap = mapb;
}
else {
wmap = omapw;
bmap = omapb;
}
if (color==WHITE)
XCopyArea(currdpy, wmap, currbamp, currgc,0,0,X_PIECE_SIZE,
Y_PIECE_SIZE, x*X_PIECE_SIZE,y*Y_PIECE_SIZE);
else
XCopyArea(currdpy, bmap, currbamp, currgc,0,0,X_PIECE_SIZE,
Y_PIECE_SIZE, x*X_PIECE_SIZE,y*Y_PIECE_SIZE);
}
draw_obstacle(x,y)
int x,y;
{
Pixmap bbl, wbl;
if (currdpy == dpy) {
bbl = wblock;
wbl = bblock;
}
else {
bbl = owblock;
wbl = obblock;
}
if (obstacle_color==WHITE)
XCopyArea(currdpy, wbl, currbamp, currgc,0,0,X_PIECE_SIZE,
Y_PIECE_SIZE, x*X_PIECE_SIZE,y*Y_PIECE_SIZE);
else
XCopyArea(currdpy, bbl, currbamp, currgc,0,0,X_PIECE_SIZE,
Y_PIECE_SIZE, x*X_PIECE_SIZE,y*Y_PIECE_SIZE);
}
grid(cdpy, cmap, cgc)
Display *cdpy;
Pixmap cmap;
GC cgc;
{
short x;
XDrawRectangle(cdpy, cmap, cgc, 0, 0, xwin-1, ywin-1);
for (x=0;x<return_x_size();x++)
XDrawLine(cdpy, cmap, cgc, x*X_PIECE_SIZE, 0, x*X_PIECE_SIZE, ywin-1);
for(x=0;x<return_y_size();x++)
XDrawLine(cdpy, cmap, cgc, 0, x*Y_PIECE_SIZE, xwin-1, x*Y_PIECE_SIZE);
}
redraw_win(cdpy, cwin, cmap, cgc)
Display *cdpy;
Window cwin;
Pixmap cmap;
GC cgc;
{
XCopyArea(cdpy, cmap, cwin, cgc, 0, 0, xwin, ywin, 0, 0);
XFlush(cdpy);
}
xataxx/board.c 100600 1750 1 25172 5100746512 12061 0 ustar iialan bin #include <X11/Xlib.h>
#include "struct.h"
extern Display *dpy, *odpy, *currdpy;
extern Window win, owin, currwin;
extern GC gc, ogc, currgc;
extern int xsize, ysize, obstacle_color, scr, oscr, currscr, curr_player;
extern int botmode;
extern Pixmap mapw, mapb, omapw, omapb, wblock, bblock, owblock, obblock, bamp, obamp, currbamp;
#define abs(num) ((num) < 0) ? -(num) : (num);
#define b_look(x,y) board[x*y_board_size+y]
int *board, *bl2;
int x_board_size,y_board_size;
Bool flumping, wflump, fflump, jflump;
/* Allocate game board */
allocate_board(xsize,ysize)
int xsize,ysize;
{
int x,y;
if ((xsize<MIN_BOARD_SIZE)||(xsize>MAX_BOARD_SIZE))
return(1);
if ((ysize<MIN_BOARD_SIZE)||(ysize>MAX_BOARD_SIZE))
return(1);
x_board_size = xsize;
y_board_size = ysize;
board = (int *) malloc(sizeof(int)*x_board_size*y_board_size);
bl2 = (int *) malloc(sizeof(int)*x_board_size*y_board_size);
for (x=0;x!=x_board_size;x++)
for (y=0;y!=y_board_size;y++)
board[x*y_board_size+y] = EMPTY;
return(0);
}
#ifdef NEWBOT
/* Copy one board array onto another for look-ahead */
copy_board(bs, bd)
int *bs, *bd;
{
int x,y;
for(x=0;x!=xsize;x++)
for(y=0;y!=ysize;y++)
bd[x*ysize+y] = bs[x*ysize+y];
return(0);
}
#endif
/* Add obstruction to current board */
add_obstruction(xpos,ypos)
int xpos,ypos;
{
if (!board)
return(1);
if ((xpos>x_board_size)||(xpos < 0))
return(1);
if ((ypos>y_board_size)||(ypos < 0))
return(1);
b_look(xpos,ypos) = OBSTACLE;
return(0);
}
/* Initialize the player pieces */
place_piece(xpos,ypos,player)
int xpos,ypos,player;
{
if ((xpos>x_board_size)||(xpos < 0))
return(1);
if ((ypos>y_board_size)||(ypos < 0))
return(1);
b_look(xpos,ypos) = player;
if ((player!=WHITE)&&(player!=BLACK))
return(1);
return(1);
}
update_square(x,y,xnew,ynew,player)
int x,y,xnew,ynew,player;
{
Pixmap smap;
if ((x>=0)&&(x<x_board_size)&&(y>=0)&&(y<y_board_size))
if ((b_look(x,y)!=EMPTY)&&(b_look(x,y)!=OBSTACLE)&&b_look(x,y)!=player) {
b_look(x,y) = player;
if (flumping && jflump) {
if (player == WHITE)
smap = mapw;
else
smap = mapb;
blat(xnew, ynew, x, y, smap, dpy, scr, gc, win, bamp);
if (botmode) {
if (player == WHITE)
smap = omapw;
else
smap = omapb;
blat(xnew, ynew, x, y, smap, odpy, oscr, ogc, owin, obamp);
}
}
}
}
/* Move a piece.
Return 1 if the piece cannot be moved.
*/
move_piece(xcurr,ycurr,xnew,ynew,player)
int xcurr,ycurr,xnew,ynew,player;
{
int xdiff,ydiff,other_player,p;
Pixmap smap;
/* Player must own current position */
if (b_look(xcurr,ycurr) != player)
return(1);
/* The new position must be empty */
if (b_look(xnew,ynew) != EMPTY)
return(1);
/* Check the validity of moving to the new position */
xdiff = abs(xcurr-xnew);
ydiff = abs(ycurr-ynew);
/* Simple one square slurp */
if ((xdiff <= 1)&&(ydiff <=1))
b_look(xnew,ynew) = player;
else {
if ((xdiff <= 2)&&(ydiff <=2)) {
b_look(xcurr,ycurr) = EMPTY;
b_look(xnew,ynew) = player;
redraw_win(dpy, win, bamp, gc);
if (botmode)
redraw_win(odpy, owin, obamp, ogc);
}
else
return(1);
}
if(flumping) {
if (player == WHITE)
smap = mapw;
else
smap = mapb;
blat(xcurr, ycurr, xnew, ynew, smap, dpy, scr, gc, win, bamp);
if (botmode) {
if (player == WHITE)
smap = omapw;
else
smap = omapb;
blat(xcurr, ycurr, xnew, ynew, smap, odpy, oscr, ogc, owin, obamp);
}
}
/* Update the squares around the new one */
update_square((xnew-1),(ynew-1),xnew,ynew,player);
update_square((xnew),(ynew-1),xnew,ynew,player);
update_square((xnew+1),(ynew-1),xnew,ynew,player);
update_square((xnew+1),(ynew),xnew,ynew,player);
update_square((xnew+1),(ynew+1),xnew,ynew,player);
update_square((xnew),(ynew+1),xnew,ynew,player);
update_square((xnew-1),(ynew+1),xnew,ynew,player);
update_square((xnew-1),(ynew),xnew,ynew,player);
return(0);
}
#ifdef NEWBOT
sample_move(xcurr,ycurr,xnew,ynew,player)
int xcurr,ycurr,xnew,ynew,player;
{
int xdiff,ydiff,other_player,p;
/* Player must own current position */
if (b_look(xcurr,ycurr) != player)
return(1);
/* The new position must be empty */
if (b_look(xnew,ynew) != EMPTY)
return(1);
/* Check the validity of moving to the new position */
xdiff = abs(xcurr-xnew);
ydiff = abs(ycurr-ynew);
/* Simple one square slurp */
if ((xdiff <= 1)&&(ydiff <=1))
b_look(xnew,ynew) = player;
else {
if ((xdiff <= 2)&&(ydiff <=2)) {
b_look(xcurr,ycurr) = EMPTY;
b_look(xnew,ynew) = player;
}
else
return(1);
}
/* Update the squares around the new one */
update_square((xnew-1),(ynew-1),xnew,ynew,player);
update_square((xnew),(ynew-1),xnew,ynew,player);
update_square((xnew+1),(ynew-1),xnew,ynew,player);
update_square((xnew+1),(ynew),xnew,ynew,player);
update_square((xnew+1),(ynew+1),xnew,ynew,player);
update_square((xnew),(ynew+1),xnew,ynew,player);
update_square((xnew-1),(ynew+1),xnew,ynew,player);
update_square((xnew-1),(ynew),xnew,ynew,player);
return(0);
}
#endif
int b_peek(x,y)
int x,y;
{
return(board[x*y_board_size+y]);
}
/* Return an array of integers specifying the board */
int *return_board()
{
return(board);
}
return_x_size()
{
return(x_board_size);
}
return_y_size()
{
return(y_board_size);
}
/* Return 1 if the game is at an end. */
end_game()
{
int x,y;
for (x=0;x!=x_board_size;x++)
for (y=0;y!=y_board_size;y++)
if (b_look(x,y)==EMPTY)
return(0);
return(1);
}
/* Clean the board */
clean_board()
{
int x,y;
for (x=0;x!=x_board_size;x++)
for (y=0;y!=y_board_size;y++)
if (b_look(x,y)!=OBSTACLE)
b_look(x,y) = EMPTY;
}
/* Return the number of pieces belonging to player. */
count_board(player)
int player;
{
int x,y,count=0;
for (x=0;x!=x_board_size;x++)
for (y=0;y!=y_board_size;y++)
if (b_look(x,y)==player)
count++;
return(count);
}
#define do_check(x,y,player) \
if (((x)>=0)&&((x)<x_board_size)&&((y)>=0)&&((y)<y_board_size)) \
if (b_look((x),(y))==EMPTY) \
return(1);
/* Return 1 if player has a valid move at x,y. */
check_move(x,y,player)
int x,y,player;
{
do_check(x-1,y-1,player);
do_check(x,y-1,player);
do_check(x+1,y-1,player);
do_check(x+1,y,player);
do_check(x+1,y+1,player);
do_check(x,y+1,player);
do_check(x-1,y+1,player);
do_check(x-1,y,player);
do_check(x-2,y-2,player);
do_check(x-1,y-2,player);
do_check(x,y-2,player);
do_check(x+1,y-2,player);
do_check(x+2,y-2,player);
do_check(x+2,y-1,player);
do_check(x+2,y,player);
do_check(x+2,y+1,player);
do_check(x+2,y+2,player);
do_check(x+1,y+2,player);
do_check(x,y+2,player);
do_check(x-1,y+2,player);
do_check(x-2,y+2,player);
do_check(x-2,y+1,player);
do_check(x-2,y,player);
do_check(x-2,y-1,player);
return(0);
}
/* Return 1 if player has a valid move. */
valid_move(player)
{
int x,y;
for (x=0;x!=x_board_size;x++)
for (y=0;y!=y_board_size;y++)
if (b_look(x,y)==player)
if (check_move(x,y,player))
return(1);
return(0);
}
typedef struct {
int ox,oy;
int nx,ny;
} thing;
b_look2(x,y)
int x,y;
{
if ((x>=0)&&(x<x_board_size)&&(y>=0)&&(y<y_board_size))
return(b_look(x,y));
else
return(OBSTACLE);
}
thing best;
int best_count,oplayer,curr_count;
evaluate(oldx,oldy,newx,newy,oplayer)
{
if ((newx>=0)&&(newx<x_board_size)&&(newy>=0)&&(newy<y_board_size)) {
if (b_look2(newx,newy)==EMPTY) {
if (b_look2((newx-1),(newy-1))==oplayer)
curr_count++;
if (b_look2(newx,(newy-1))==oplayer)
curr_count++;
if (b_look2((newx+1),(newy-1))==oplayer)
curr_count++;
if (b_look2((newx+1),newy)==oplayer)
curr_count++;
if (b_look2((newx+1),(newy+1))==oplayer)
curr_count++;
if (b_look2(newx,(newy+1))==oplayer)
curr_count++;
if (b_look2((newx-1),(newy+1))==oplayer)
curr_count++;
if (b_look2((newx-1),newy)==oplayer)
curr_count++;
if (curr_count > best_count) {
if ((best_count==-1)||(random()&1)) {
best.ox = oldx;
best.oy = oldy;
best.nx = newx;
best.ny = newy;
best_count = curr_count;
}
}
}
}
}
#ifdef NEWBOT
smart_robot(player)
int player;
{
int botp, enemp, oppon, bgross, egross, bnet, enet, nx, ny;
thing b1, b2;
oppon = (player==WHITE) ? BLACK : WHITE;
botp = count_board(player);
enemp = count_board(oppon);
copy_board(board, bl2);
best_count = -500;
for (x=0;x!=x_board_size;x++) {
for (y=0;y!=y_board_size;y++) {
if (b_look(x,y)==player) {
bgross = count_board(player);
egross = count_board(oppon); /* must get values for nx, ny & loop */
if ((nx>=0) && (nx<x_board_size) && (ny>=0) && (ny<y_board_size)) {
sample_move(x, y, nx, ny, player);
robot_move(oppon);
bnet = bgross - botp;
enet = egross - enemp;
if ((bnet-enet) > best_count) {
b1.ox = x;
b1.oy = y;
b1.nx = nx;
b1.ny = ny;
best_count = (bnet-enet);
}
}
}
}
}
}
#endif
/* Make a move for player. */
orobot_move(player)
int player;
{
int x,y;
best_count = -1;
best.ox = -1;
oplayer = (player==WHITE) ? BLACK : WHITE;
for (x=0;x!=x_board_size;x++)
for (y=0;y!=y_board_size;y++) {
if (b_look(x,y)==player) {
curr_count=1; evaluate(x,y,(x-1),(y-1),oplayer);
curr_count=1; evaluate(x,y,(x),(y-1),oplayer);
curr_count=1; evaluate(x,y,(x+1),(y-1),oplayer);
curr_count=1; evaluate(x,y,(x+1),(y),oplayer);
curr_count=1; evaluate(x,y,(x+1),(y+1),oplayer);
curr_count=1; evaluate(x,y,(x),(y+1),oplayer);
curr_count=1; evaluate(x,y,(x-1),(y+1),oplayer);
curr_count=1; evaluate(x,y,(x-1),(y),oplayer);
curr_count= 0; evaluate(x,y,(x-2),(y-2),oplayer);
curr_count= 0; evaluate(x,y,(x-1),(y-2),oplayer);
curr_count= 0; evaluate(x,y,(x),(y-2),oplayer);
curr_count= 0; evaluate(x,y,(x+1),(y-2),oplayer);
curr_count= 0; evaluate(x,y,(x+2),(y-2),oplayer);
curr_count= 0; evaluate(x,y,(x+2),(y-1),oplayer);
curr_count= 0; evaluate(x,y,(x+2),(y),oplayer);
curr_count= 0; evaluate(x,y,(x+2),(y+1),oplayer);
curr_count= 0; evaluate(x,y,(x+2),(y+2),oplayer);
curr_count= 0; evaluate(x,y,(x+1),(y+2),oplayer);
curr_count= 0; evaluate(x,y,(x),(y+2),oplayer);
curr_count= 0; evaluate(x,y,(x-1),(y+2),oplayer);
curr_count= 0; evaluate(x,y,(x-2),(y+2),oplayer);
curr_count= 0; evaluate(x,y,(x-2),(y+1),oplayer);
curr_count= 0; evaluate(x,y,(x-2),(y),oplayer);
curr_count= 0; evaluate(x,y,(x-2),(y-1),oplayer);
}
}
if (best_count==-1)
return;
move_piece(best.ox,best.oy,best.nx,best.ny,player);
}
xataxx/boards.num 100600 1750 1 4 4753312176 12514 0 ustar iialan bin 29
xataxx/colbits.c 100600 1750 1 13006 5103153264 12421 0 ustar iialan bin #include <stdio.h>
#include <ctype.h>
#include <X11/Xlib.h>
#include <math.h>
#include <sys/socket.h>
#include <sys/time.h>
#include "struct.h"
#define TITLESIZE (7*X_PIECE_SIZE)
#ifndef FD_SET
#define MAXSELFD 64
typedef long fd_mask;
#define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask (power of 2!)*/
#define NFDSHIFT 5 /* Shift based on above */
#ifndef howmany
#define howmany(x, y) (((x)+((y)-1))/(y))
#endif howmany
#define NBBY 8 /* number of bits in a byte */
#define FD_SETSIZE 64
#define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
#define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
#define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
#define FD_ZERO(p) bzero((char *)(p), sizeof(*(p)))
#endif
extern Display *dpy, *odpy, *currdpy;
extern Window win, owin, currwin;
extern GC gc, ogc, currgc;
extern int xsize, ysize, obstacle_color, scr, oscr;
extern int botmode;
extern Pixmap bamp, obamp, currbamp;
extern int xwin,ywin;
extern Pixmap mapw, mapb, omapw, omapb, wblock, bblock, owblock, obblock;
extern int oldw, oldb;
extern Cursor upc, downc, oupc, odownc;
extern Bool perfection;
int waitferkey();
readbitmaps()
{
unsigned int x, y, xh, yh;
Pixmap curs, cmask, loader;
XColor fg,bg,garbage;
XSync(dpy, True);
XReadBitmapFile(dpy, win, WHITESTONE, &x, &y, &loader, &xh, &yh);
mapw = XCreatePixmap(dpy, win, x, y, DefaultDepth(dpy,scr));
XCopyPlane(dpy, loader, mapw, gc, 0, 0, x, y, 0, 0, 1);
XFreePixmap(dpy, loader);
XReadBitmapFile(dpy, win, BLACKSTONE, &x, &y, &loader, &xh, &yh);
mapb = XCreatePixmap(dpy, win, x, y, DefaultDepth(dpy,scr));
XCopyPlane(dpy, loader, mapb, gc, 0, 0, x, y, 0, 0, 1);
XFreePixmap(dpy, loader);
XReadBitmapFile(dpy, win, BLACKBLOCK, &x, &y, &loader, &xh, &yh);
bblock = XCreatePixmap(dpy, win, x, y, DefaultDepth(dpy,scr));
XCopyPlane(dpy, loader, bblock, gc, 0, 0, x, y, 0, 0, 1);
XFreePixmap(dpy, loader);
XReadBitmapFile(dpy, win, WHITEBLOCK, &x, &y, &loader, &xh, &yh);
wblock = XCreatePixmap(dpy, win, x, y, DefaultDepth(dpy,scr));
XCopyPlane(dpy, loader, wblock, gc, 0, 0, x, y, 0, 0, 1);
XFreePixmap(dpy, loader);
fg.pixel = WhitePixel(dpy,scr);
bg.pixel = BlackPixel(dpy,scr);
XQueryColor(dpy, DefaultColormap(dpy,scr), &fg);
XQueryColor(dpy, DefaultColormap(dpy,scr), &bg);
XAllocNamedColor(dpy, DefaultColormap(dpy,scr), "lime green", &fg, &garbage);
XAllocNamedColor(dpy, DefaultColormap(dpy,scr), "magenta", &bg, &garbage);
XReadBitmapFile(dpy, win, UPCURSOR, &x, &y, &curs, &xh, &yh);
XReadBitmapFile(dpy, win, UPMASK, &x, &y, &cmask, &xh, &yh);
upc = XCreatePixmapCursor(dpy, curs, cmask, &fg, &bg, xh, yh);
XFreePixmap(dpy,curs);
XFreePixmap(dpy,cmask);
XReadBitmapFile(dpy, win, DOWNCURSOR, &x, &y, &curs, &xh, &yh);
XReadBitmapFile(dpy, win, DOWNMASK, &x, &y, &cmask, &xh, &yh);
downc = XCreatePixmapCursor(dpy, curs, cmask, &fg, &bg, xh, yh);
XFreePixmap(dpy,curs);
XFreePixmap(dpy,cmask);
XDefineCursor(dpy,win,upc);
if (botmode) {
XSync(odpy, True);
fg.pixel = WhitePixel(odpy,oscr);
bg.pixel = BlackPixel(odpy,oscr);
XQueryColor(odpy, DefaultColormap(odpy,oscr), &fg);
XQueryColor(odpy, DefaultColormap(odpy,oscr), &bg);
XAllocNamedColor(odpy, DefaultColormap(odpy,oscr), "lime green", &fg, &garbage);
XAllocNamedColor(odpy, DefaultColormap(odpy,oscr), "magenta", &bg, &garbage);
XReadBitmapFile(odpy, owin, BLACKSTONE, &x, &y, &loader, &x, &y);
omapb = XCreatePixmap(odpy, owin, x, y, DefaultDepth(odpy,oscr));
XCopyPlane(odpy, loader, omapb, ogc, 0, 0, x, y, 0, 0, 1);
XFreePixmap(odpy, loader);
XReadBitmapFile(odpy, owin, WHITESTONE, &x, &y, &loader, &x, &y);
omapw = XCreatePixmap(odpy, owin, x, y, DefaultDepth(odpy,oscr));
XCopyPlane(odpy, loader, omapw, ogc, 0, 0, x, y, 0, 0, 1);
XFreePixmap(odpy, loader);
XReadBitmapFile(odpy, owin, BLACKBLOCK, &x, &y, &loader, &x, &y);
obblock = XCreatePixmap(odpy, owin, x, y, DefaultDepth(odpy,oscr));
XCopyPlane(odpy, loader, obblock, ogc, 0, 0, x, y, 0, 0, 1);
XFreePixmap(odpy, loader);
XReadBitmapFile(odpy, owin, WHITEBLOCK, &x, &y, &loader, &x, &y);
owblock = XCreatePixmap(odpy, owin, x, y, DefaultDepth(odpy,oscr));
XCopyPlane(odpy, loader, owblock, ogc, 0, 0, x, y, 0, 0, 1);
XFreePixmap(odpy, loader);
XReadBitmapFile(odpy, owin, UPCURSOR, &x, &y, &curs, &xh, &yh);
XReadBitmapFile(odpy, owin, UPMASK, &x, &y, &cmask, &x, &y);
oupc = XCreatePixmapCursor(odpy, curs, cmask, &fg, &bg, xh, yh);
XFreePixmap(odpy,curs);
XFreePixmap(odpy,cmask);
XReadBitmapFile(odpy, owin, DOWNCURSOR, &x, &y, &curs, &xh, &yh);
XReadBitmapFile(odpy, owin, DOWNMASK, &x, &y, &cmask, &x, &y);
odownc = XCreatePixmapCursor(odpy, curs, cmask, &fg, &bg, xh, yh);
XFreePixmap(odpy,curs);
XFreePixmap(odpy,cmask);
XDefineCursor(odpy,owin,oupc);
XFlush(odpy);
}
}
show_title()
{
Pixmap title, otitle, loader;
int ax, ay, x, y, hx, hy;
XReadBitmapFile(dpy, win, TITLE, &x, &y, &loader, &hx, &hy);
title = XCreatePixmap(dpy, win, x, y, DefaultDepth(dpy,scr));
XCopyPlane(dpy, loader, title, gc, 0, 0, x, y, 0, 0, 1);
XFreePixmap(dpy, loader);
if (botmode)
XReadBitmapFile(odpy, owin, TITLE, &x, &y, &otitle, &hx, &hy);
ax = ((return_x_size()*X_PIECE_SIZE)-x) / 2;
ay = ax;
XCopyArea(dpy, title, win, gc, 0,0, x, y, ax, ay);
if (botmode)
XCopyArea(odpy, otitle, owin, ogc, 0,0, x, y, ax, ay);
show_scores(dpy, win, gc, oldw, oldb);
if (botmode)
show_scores(odpy, owin, ogc, oldw, oldb);
}
xataxx/demo.c 100600 1750 1 2352 4753312202 11667 0 ustar iialan bin #include <stdio.h>
#include <X11/Xlib.h>
#include "struct.h"
extern int obstacle_color, oldw, oldb;
extern Display *dpy, *odpy;
extern Window win, owin;
extern int botmode;
#define DEMODELAY 1
demo()
{
XEvent event;
int curr_player=WHITE,currx,curry,x,y;
char mess[100];
srandom(time(NULL));
x = return_x_size();
y = return_y_size();
place_piece(0,0,WHITE);
place_piece(x-1,y-1,WHITE);
place_piece(0,y-1,BLACK);
place_piece(x-1,0,BLACK);
obstacle_color = curr_player;
/*
XNextEvent(dpy,&event);
*/
redraw_all(curr_player);
if (botmode) {
XNextEvent(odpy,&event);
redraw_all(curr_player);
}
redraw_all(curr_player);
while (!end_game()) {
robot_move(WHITE);
if (valid_move(BLACK))
obstacle_color = BLACK;
oldw = count_board(WHITE);
oldb = count_board(BLACK);
redraw_all(curr_player);
if(!waitferkey(DEMODELAY))
return(1);
robot_move(BLACK);
if (valid_move(WHITE))
obstacle_color = WHITE;
oldw = count_board(WHITE);
oldb = count_board(BLACK);
redraw_all(curr_player);
if(!waitferkey(DEMODELAY))
return(1);
}
oldw = count_board(WHITE);
oldb = count_board(BLACK);
redraw_all(curr_player);
return(0);
} xataxx/display.c 100600 1750 1 25252 5103155666 12445 0 ustar iialan bin #include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <math.h>
#include "struct.h"
Display *dpy,*odpy,*currdpy;
Window win,owin,currwin;
GC gc,ogc,currgc;
int xsize,ysize,obstacle_color;
extern int botmode;
extern int oldw, oldb;
int scr, oscr, currscr;
extern Cursor upc, downc, oupc, odownc;
Pixmap bamp, obamp, currbamp;
int xwin,ywin, curr_player;
extern Bool flumping;
extern int botlevel;
print_board()
{
int x,y,*board;
int i,j;
x = return_x_size();
y = return_y_size();
board = (int *) return_board();
for (i=0;i!=y;i++) {
for (j=0;j!=x;j++)
printf("%d ",board[j*y+i]);
printf("\n");
}
}
initialize_display(name)
char *name;
{
int scn;
XSetWindowAttributes attr;
XGCValues gcvalues;
XSizeHints hints;
XClassHint classhint;
XWMHints wmhint;
xsize = return_x_size();
ysize = return_y_size();
xwin = xsize*X_PIECE_SIZE;
ywin = ysize*Y_PIECE_SIZE+TEXT_SIZE;
hints.min_width = xwin;
hints.max_width = xwin;
hints.min_height = ywin;
hints.max_height = ywin;
hints.flags = PMinSize | PMaxSize;
classhint.res_name = "xataxx";
classhint.res_class = "xataxx";
wmhint.input = True;
wmhint.flags = InputHint;
if (xwin < 120) xwin = 120;
if (!(dpy = XOpenDisplay(NULL))) {
fprintf(stderr,"Could not open local display. Bummer, drag.\n");
exit(1);
}
if (botmode) {
if (!(odpy = XOpenDisplay(name))) {
fprintf(stderr,"Could not open display %s. Bummer, drag.\n",name);
exit(1);
}
}
#ifdef DEBUG
printf("Display(s) open.\n");
#endif
scn = DefaultScreen(dpy);
scr = scn;
win = XCreateWindow(dpy,DefaultRootWindow(dpy),100,100,xwin,ywin,
1,DefaultDepth(dpy,scr),InputOutput,CopyFromParent,0,0);
attr.backing_store = Always;
attr.event_mask = ButtonPressMask | KeyPressMask | ButtonReleaseMask
| ExposureMask | MotionNotify;
attr.background_pixel = BlackPixel(dpy,scr);
XChangeWindowAttributes(dpy,win,CWEventMask|CWBackingStore|CWBackPixel,&attr);
XSetWMHints(dpy, win, &wmhint);
XSetClassHint(dpy, win, &classhint);
XSetIconName(dpy,win,"XAtaxx: White");
XStoreName(dpy,win,"XAtaxx: White");
XSetNormalHints(dpy, win, &hints);
XMapWindow(dpy,win);
gcvalues.foreground = WhitePixel(dpy,scn);
gcvalues.background = BlackPixel(dpy,scn);
gc = XCreateGC(dpy,win,GCForeground|GCBackground,&gcvalues);
XSetFunction(dpy,gc,GXcopy);
bamp = XCreatePixmap(dpy, win, xwin, ywin, DefaultDepth(dpy,scr));
if (botmode) {
scn = DefaultScreen(odpy);
oscr = scn;
attr.background_pixel = BlackPixel(odpy,oscr);
owin = XCreateWindow(odpy,DefaultRootWindow(odpy),
100,100,xwin,ywin,
1,1,InputOutput,CopyFromParent,0,0);
XChangeWindowAttributes(odpy,owin,CWEventMask|CWBackingStore|CWBackPixel,&attr);
XSetWMHints(odpy, owin, &wmhint);
XSetClassHint(odpy, owin, &classhint);
XSetIconName(odpy,owin,"XAtaxx: Black");
XStoreName(odpy,owin,"XAtaxx: Black");
XSetNormalHints(odpy, owin, &hints);
XMapWindow(odpy,owin);
gcvalues.foreground = WhitePixel(odpy,scn);
gcvalues.background = BlackPixel(odpy,scn);
ogc = XCreateGC(odpy,owin,GCForeground,&gcvalues);
XSetFunction(odpy,ogc,GXcopy);
obamp = XCreatePixmap(odpy, owin, xwin, ywin, DefaultDepth(dpy,scr));
}
#ifdef DEBUG
printf("Opt window dealt with.\n");
#endif
XFlush(dpy);
if (botmode) {
XFlush(odpy);
}
}
wipemap(cdpy, cbamp, cgc, cscr, cwin)
Display *cdpy;
Pixmap cbamp;
int cscr;
GC cgc;
Window cwin;
{
GC ccgc;
ccgc = XCreateGC(cdpy, cwin, 0, 0);
XSetForeground(cdpy, ccgc, BlackPixel(cdpy,cscr));
XFillRectangle(cdpy, cbamp, ccgc, 0, 0, xwin, ywin);
XFlush(cdpy);
}
draw_board(board)
int *board;
{
int occ,x,y;
if (currdpy != dpy && !botmode)
return;
wipemap(currdpy, currbamp, currgc, currscr, currwin);
for (y=0;y!=ysize;y++)
for (x=0;x!=xsize;x++)
if ((occ=board[x*ysize+y])!=EMPTY) {
if (occ==WHITE)
draw_circle(x,y,WHITE);
else {
if (occ==BLACK)
draw_circle(x,y,BLACK);
else
draw_obstacle(x,y);
}
}
show_scores(currdpy, currbamp, currgc, oldw, oldb);
XFlush(currdpy);
}
show_scores(sdpy, swin, sgc, ws, bs)
Display *sdpy;
Window swin;
GC sgc;
int ws, bs;
{
char mess[100];
sprintf(mess,"White: %d",ws);
XDrawString(sdpy,swin,sgc,5,ysize*Y_PIECE_SIZE+20,mess,strlen(mess));
sprintf(mess,"Black: %d",bs);
XDrawString(sdpy,swin,sgc,xsize*X_PIECE_SIZE-55,ysize*Y_PIECE_SIZE+20,mess,strlen(mess));
XFlush(sdpy);
}
popupbutton(button, x, y)
unsigned int button;
int *x, *y;
{
XEvent evt;
Bool qqx = True;
if (currdpy == dpy)
XDefineCursor(dpy,win,downc);
else
XDefineCursor(odpy,owin,odownc);
while(qqx) {
while(!XCheckTypedWindowEvent(currdpy, currwin, (ButtonPress|ButtonRelease), &evt));
if (evt.type == ButtonRelease)
if(evt.xbutton.button == button)
qqx = False;
}
*x = evt.xbutton.x;
*y = evt.xbutton.y;
if (currdpy == dpy)
XDefineCursor(dpy,win,upc);
else
XDefineCursor(odpy,owin,oupc);
}
#define SELWID 5
piece_sel(x, y, display, win, cgc)
int x,y;
Display *display;
Window *win;
GC cgc;
{
int qx1, qx2, qy1, qy2;
int qq;
GC pgc;
XGCValues gcvalues;
gcvalues.function = GXcopy; /*GXinvert*/
pgc = XCreateGC(display,win,GCFunction,&gcvalues);
XCopyGC(display,cgc,GCForeground|GCBackground,pgc);
qx1 = x*X_PIECE_SIZE;
qy1 = y*Y_PIECE_SIZE;
qx2 = qx1 + X_PIECE_SIZE;
qy2 = qy1 + Y_PIECE_SIZE;
XDrawLine(display, win, pgc, qx1, qy1, qx1+SELWID, qy1);
XDrawLine(display, win, pgc, qx1, qy1, qx1, qy1+SELWID);
XDrawLine(display, win, pgc, qx2, qy1, qx2, qy1+SELWID);
XDrawLine(display, win, pgc, qx1, qy2, qx1+SELWID, qy2);
XDrawLine(display, win, pgc, qx1, qy2, qx1, qy2-SELWID);
XDrawLine(display, win, pgc, qx2, qy1, qx2-SELWID, qy1);
XDrawLine(display, win, pgc, qx2, qy2, qx2, qy2-SELWID);
XDrawLine(display, win, pgc, qx2, qy2, qx2-SELWID, qy2);
XFlush(display);
}
inboard(bx, by) /* true if x,y is in the board */
int bx, by;
{
if (bx >= return_x_size() || by >= return_y_size())
return(0);
else
return(1);
}
play_loop()
{
XEvent event;
int currx,curry,cx1,cy1,cx2,cy2,cx3,cy3,down=0,readfds,white,black,x,y;
char mess[100],c;
curr_player = WHITE;
srandom(time(NULL));
x = return_x_size();
y = return_y_size();
place_piece(0,0,WHITE);
place_piece(x-1,y-1,WHITE);
place_piece(0,y-1,BLACK);
place_piece(x-1,0,BLACK);
obstacle_color = curr_player;
XNextEvent(dpy,&event);
redraw_all(curr_player);
if (botmode) {
XNextEvent(odpy,&event);
redraw_all(curr_player);
}
while (1) {
while(!end_game()) {
select_player(curr_player);
if (!down) {
cx1= -1; cy1= -1; cx2= -1; cy2= -1;
}
XNextEvent(currdpy,&event);
switch(event.type) {
case ButtonPress:
currx = event.xbutton.x/X_PIECE_SIZE;
curry = event.xbutton.y/Y_PIECE_SIZE;
if (event.xbutton.button == 1)
popupbutton(event.xbutton.button, &cx3, &cy3);
else
break;
cx3 = cx3/X_PIECE_SIZE;
cy3 = cy3/Y_PIECE_SIZE;
if (cx3 == currx && cy3 == curry && inboard(cx3,cy3)) {
if (cx1 >= 0) {
if(!b_peek(cx3, cy3)) {
cx2 = cx3;
cy2 = cy3;
if(!move_piece(cx1,cy1,cx2,cy2,curr_player)) {
if (botmode) {
curr_player = (curr_player==WHITE) ? BLACK : WHITE;
if (!valid_move(curr_player))
curr_player = (curr_player==WHITE) ? BLACK : WHITE;
}
else {
if (valid_move(BLACK))
obstacle_color = BLACK;
redraw_all(WHITE);
redraw_win(currdpy, currwin, currbamp, currgc);
if (valid_move(BLACK) && botlevel < 2)
msec_wait(557567);
robot_move(BLACK);
flumping = False;
while(!valid_move(WHITE)&&valid_move(BLACK)) {
redraw_all(WHITE);
orobot_move(BLACK);
}
flumping = True;
}
} /* matches if(!move_piece(cx1,cy1,cx2,cy2,curr_player)) */
obstacle_color = curr_player;
down = 0;
redraw_all(curr_player);
}
else {
if (b_peek(cx3,cy3) == curr_player && inboard(cx3,cy3)) {
if(cx3 == cx1 && cy3 == cy1) {
redraw_all(curr_player);
cx1 = -1; cy1 = -1;
down=0;
}
else {
if (inboard(cx3,cy3)) {
piece_sel(cx1,cy1, currdpy, currwin, currgc);
cx1 = cx3; cy1 = cy3;
redraw_all(curr_player);
piece_sel(cx1,cy1, currdpy, currwin, currgc);
}
}
}
}
} /* matches if (cx1 >= 0) */
else {
if(b_peek(currx, curry) == curr_player) {
cx1 = cx3;
cy1 = cy3;
piece_sel(cx1,cy1, currdpy, currwin, currgc);
down = 1;
}
}
}
flumping = False;
while((!count_board(BLACK)) && valid_move(WHITE)) {
orobot_move(WHITE);
redraw_all(WHITE);
}
while((!count_board(WHITE)) && valid_move(BLACK)) {
orobot_move(BLACK);
redraw_all(BLACK);
}
flumping = True;
break;
case Expose:
redraw_win(currdpy, currwin, currbamp, currgc);
break;
case KeyPress:
XLookupString(&event, &c, 1, NULL, NULL);
if (c == 'q')
quit();
break;
default:
break;
} /* matches switch(event.type) { */
} /* matches while(!end_game()) { */
white = count_board(WHITE);
black = count_board(BLACK);
oldw = white;
oldb = black;
if (white > black)
sprintf(mess,"White is the winner.");
else {
if (black > white)
sprintf(mess,"Black is the winner.");
else
sprintf(mess,"The game is a tie.");
}
select_player(WHITE);
XDrawString(currdpy,currwin,currgc,5,ysize*Y_PIECE_SIZE+35,mess,strlen(mess));
XFlush(currdpy);
if (botmode) {
select_player(BLACK);
XDrawString(currdpy,currwin,currgc,5,ysize*Y_PIECE_SIZE+35,mess,strlen(mess));
XFlush(currdpy);
}
XNextEvent(dpy,&event);
return;
}
}
init_pieces()
{
int curr_player=WHITE,x,y;
/* Place initial pieces */
x = return_x_size();
y = return_y_size();
clean_board();
place_piece(0,0,WHITE);
place_piece(x-1,y-1,WHITE);
place_piece(0,y-1,BLACK);
place_piece(x-1,0,BLACK);
curr_player = WHITE;
obstacle_color = curr_player;
redraw_all(curr_player);
}
redraw_all(curr_player)
{
select_player(WHITE);
oldw = count_board(WHITE);
oldb = count_board(BLACK);
draw_board(return_board());
redraw_win(currdpy, currwin, currbamp, currgc);
if (botmode) {
select_player(BLACK);
draw_board(return_board());
redraw_win(currdpy, currwin, currbamp, currgc);
}
select_player(curr_player);
}
select_player(curr_player)
int curr_player;
{
if (curr_player==WHITE) {
currdpy = dpy;
currwin = win;
currgc = gc;
currbamp = bamp;
currscr = scr;
}
else {
currdpy = odpy;
currwin = owin;
currgc = ogc;
currbamp = obamp;
currscr = oscr;
}
}
xataxx/input.format 100600 1750 1 111 5010725660 13122 0 ustar iialan bin Xsize, Ysize
Xobstruct, Yobstruct (Positions of obstructions)
......
xataxx/lib/ 40711 1750 1 0 5351354060 11251 5 ustar iialan bin xataxx/lib/1.xbd 100600 1750 1 66 5010720136 12140 0 ustar iialan bin 7 7
3 0
3 1
3 2
0 3
1 3
2 3
4 3
5 3
6 3
3 4
3 5
3 6
xataxx/lib/10.xbd 100600 1750 1 56 5010720140 12212 0 ustar iialan bin 7 7
2 0
4 0
2 2
4 2
1 3
5 3
2 4
4 4
2 6
4 6
xataxx/lib/11.xbd 100600 1750 1 52 5010720140 12207 0 ustar iialan bin 7 7
3 1
3 2
1 3
2 3
3 3
4 3
5 3
3 4
3 5
xataxx/lib/12.xbd 100600 1750 1 106 5010720140 12230 0 ustar iialan bin 7 7
1 1
2 1
3 1
4 1
5 1
1 2
5 2
1 3
5 3
1 4
5 4
1 5
2 5
3 5
4 5
5 5
xataxx/lib/13.xbd 100600 1750 1 66 5010720142 12220 0 ustar iialan bin 7 7
2 1
3 1
4 1
1 2
5 2
1 3
5 3
1 4
5 4
2 5
3 5
4 5
xataxx/lib/14.xbd 100600 1750 1 66 5010720142 12221 0 ustar iialan bin 7 7
2 1
4 1
1 2
2 2
4 2
5 2
1 4
2 4
4 4
5 4
2 5
4 5
xataxx/lib/15.xbd 100600 1750 1 26 5010720142 12216 0 ustar iialan bin 7 7
1 1
5 5
1 5
5 1
xataxx/lib/16.xbd 100600 1750 1 66 5010720142 12223 0 ustar iialan bin 7 7
1 1
2 1
4 1
5 1
1 2
5 2
1 4
5 4
1 5
2 5
4 5
5 5
xataxx/lib/17.xbd 100600 1750 1 32 5010720142 12215 0 ustar iialan bin 7 7
3 2
2 3
3 3
4 3
3 4
xataxx/lib/18.xbd 100600 1750 1 26 5010720142 12221 0 ustar iialan bin 7 7
3 2
2 3
4 3
3 4
xataxx/lib/19.xbd 100600 1750 1 46 5010720142 12224 0 ustar iialan bin 7 7
3 1
3 2
1 3
2 3
4 3
5 3
3 4
3 5
xataxx/lib/2.xbd 100600 1750 1 76 5010720142 12137 0 ustar iialan bin 7 7
3 0
1 2
2 2
4 2
5 2
0 3
1 3
5 3
6 3
1 4
2 4
4 4
5 4
3 6
xataxx/lib/20.xbd 100600 1750 1 106 5010720142 12231 0 ustar iialan bin 7 7
2 0
3 0
4 0
3 1
0 2
6 2
0 3
1 3
5 3
6 3
0 4
6 4
3 5
2 6
3 6
4 6
xataxx/lib/21.xbd 100600 1750 1 66 5010720142 12217 0 ustar iialan bin 7 7
2 0
4 0
3 1
0 2
6 2
1 3
5 3
0 4
6 4
3 5
2 6
4 6
xataxx/lib/22.xbd 100600 1750 1 32 5010720142 12211 0 ustar iialan bin 7 7
3 1
1 3
3 3
5 3
3 5
xataxx/lib/23.xbd 100600 1750 1 52 5010720142 12214 0 ustar iialan bin 7 7
1 1
3 1
5 1
1 3
3 3
5 3
1 5
3 5
5 5
xataxx/lib/24.xbd 100600 1750 1 5 5010720142 12173 0 ustar iialan bin 7 7
xataxx/lib/25.xbd 100600 1750 1 32 5010720144 12216 0 ustar iialan bin 7 7
2 2
4 2
3 3
2 4
4 4
xataxx/lib/26.xbd 100600 1750 1 52 5010720144 12221 0 ustar iialan bin 7 7
1 1
5 1
2 2
4 2
3 3
2 4
4 4
1 5
5 5
xataxx/lib/27.xbd 100600 1750 1 66 5010720144 12227 0 ustar iialan bin 7 7
2 0
3 0
4 0
2 1
4 1
0 3
6 3
2 5
4 5
2 6
3 6
4 6
xataxx/lib/28.xbd 100600 1750 1 146 5010720144 12247 0 ustar iialan bin 7 7
1 0
3 0
5 0
0 1
2 1
4 1
6 1
1 2
3 2
5 2
0 3
2 3
4 3
6 3
1 4
3 4
5 4
0 5
2 5
4 5
6 5
1 6
3 6
5 6
xataxx/lib/29.xbd 100600 1750 1 46 5010720144 12227 0 ustar iialan bin 7 7
1 1
5 1
2 2
4 2
2 4
4 4
1 5
5 5
xataxx/lib/3.xbd 100600 1750 1 52 5010720144 12134 0 ustar iialan bin 7 7
1 0
5 0
0 1
6 1
3 3
0 5
6 5
1 6
5 6
xataxx/lib/30.xbd 100600 1750 1 46 5010720144 12217 0 ustar iialan bin 7 7
3 0
2 1
4 1
0 3
6 3
2 5
4 5
3 6
xataxx/lib/31.xbd 100600 1750 1 26 5010720144 12216 0 ustar iialan bin 7 7
3 0
0 3
6 3
3 6
xataxx/lib/32.xbd 100600 1750 1 26 5010720144 12217 0 ustar iialan bin 7 7
3 1
1 3
5 3
3 5
xataxx/lib/33.xbd 100600 1750 1 116 5010720146 12242 0 ustar iialan bin 7 7
2 0
3 0
4 0
0 2
1 2
3 2
5 2
6 2
0 3
6 3
0 4
1 4
3 4
5 4
6 4
2 6
3 6
4 6
xataxx/lib/34.xbd 100600 1750 1 102 5010720146 12236 0 ustar iialan bin 7 7
2 1
4 1
0 2
1 2
3 2
5 2
6 2
3 3
0 4
1 4
3 4
5 4
6 4
2 5
4 5
xataxx/lib/35.xbd 100600 1750 1 102 5010720146 12237 0 ustar iialan bin 7 7
2 0
4 0
2 1
4 1
0 2
6 2
0 3
3 3
6 3
0 4
6 4
2 5
4 5
2 6
4 6
xataxx/lib/4.xbd 100600 1750 1 56 5010720146 12143 0 ustar iialan bin 7 7
2 0
4 0
2 1
4 1
0 3
6 3
2 5
4 5
2 6
4 6
xataxx/lib/5.xbd 100600 1750 1 46 5010720146 12143 0 ustar iialan bin 7 7
3 0
3 1
0 3
1 3
5 3
6 3
3 5
3 6
xataxx/lib/6.xbd 100600 1750 1 46 5010720146 12144 0 ustar iialan bin 7 7
3 1
2 2
4 2
1 3
5 3
2 4
4 4
3 5
xataxx/lib/7.xbd 100600 1750 1 46 5010720146 12145 0 ustar iialan bin 7 7
2 0
4 0
0 2
6 2
0 4
6 4
2 6
4 6
xataxx/lib/8.xbd 100600 1750 1 66 5010720150 12143 0 ustar iialan bin 7 7
3 0
2 1
4 1
1 2
5 2
0 3
6 3
1 4
5 4
2 5
4 5
3 6
xataxx/lib/9.xbd 100600 1750 1 46 5010720150 12142 0 ustar iialan bin 7 7
2 1
4 1
1 2
5 2
1 4
5 4
2 5
4 5
xataxx/lib/boards.num 100600 1750 1 4 5010720150 13240 0 ustar iialan bin 35
xataxx/lib/clearstone.xbm 100600 1750 1 1556 5010720150 14211 0 ustar iialan bin #define stone_width 32
#define stone_height 32
static char stone_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x0e, 0x38, 0x00,
0x80, 0x31, 0xc0, 0x00, 0x40, 0x48, 0x00, 0x01, 0x20, 0x49, 0x00, 0x02,
0x90, 0x32, 0x00, 0x04, 0x48, 0x04, 0x00, 0x08, 0x24, 0x02, 0x00, 0x10,
0x14, 0x01, 0x00, 0x10, 0x92, 0x00, 0x00, 0x20, 0x8a, 0x00, 0x00, 0x20,
0x72, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40,
0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40,
0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x20,
0x02, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x20, 0x04, 0x00, 0x00, 0x10,
0x04, 0x00, 0x00, 0x10, 0x08, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x04,
0x20, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x80, 0x01, 0xc0, 0x00,
0x00, 0x0e, 0x38, 0x00, 0x00, 0xf0, 0x07, 0x00};
xataxx/lib/dkblock.xbm 100600 1750 1 1564 5010720150 13462 0 ustar iialan bin #define ltblock_width 32
#define ltblock_height 32
static char ltblock_bits[] = {
0x55, 0x55, 0x55, 0x55, 0xfe, 0xff, 0xff, 0xbf, 0x57, 0x55, 0x55, 0x15,
0xaa, 0xaa, 0xaa, 0xaa, 0x57, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0xaa,
0x17, 0x00, 0x00, 0x14, 0xaa, 0xaa, 0xaa, 0xaa, 0x17, 0x55, 0x55, 0x17,
0xaa, 0xaa, 0xaa, 0xaa, 0x17, 0x55, 0x55, 0x17, 0xaa, 0xfa, 0xaf, 0xaa,
0x17, 0x0d, 0x40, 0x17, 0xaa, 0xea, 0xa7, 0xaa, 0x17, 0xed, 0x47, 0x17,
0xaa, 0xea, 0xa7, 0xaa, 0x17, 0xed, 0x47, 0x17, 0xaa, 0xea, 0xa7, 0xaa,
0x17, 0xed, 0x47, 0x17, 0xaa, 0x0a, 0xa0, 0xaa, 0x17, 0x05, 0x40, 0x17,
0xaa, 0xaa, 0xaa, 0xaa, 0x17, 0x55, 0x55, 0x17, 0xaa, 0xaa, 0xaa, 0xaa,
0x17, 0x55, 0x55, 0x17, 0xaa, 0xff, 0xff, 0xab, 0x57, 0x55, 0x55, 0x15,
0xaa, 0xaa, 0xaa, 0xaa, 0x57, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0xaa,
0x01, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0xaa};
xataxx/lib/dksmiley.xbm 100600 1750 1 1653 5010720150 13671 0 ustar iialan bin #define dksmiley_width 32
#define dksmiley_height 32
#define dksmiley_x_hot -1
#define dksmiley_y_hot -1
static char dksmiley_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x1f,
0x04, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10,
0x04, 0x00, 0x00, 0x10, 0x04, 0x02, 0x20, 0x10, 0x04, 0x02, 0x20, 0x10,
0x04, 0x02, 0x20, 0x10, 0x04, 0x02, 0x20, 0x10, 0x04, 0x00, 0x00, 0x10,
0x04, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10,
0x04, 0x80, 0x00, 0x10, 0x04, 0x80, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10,
0x04, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10, 0x04, 0xf8, 0x0f, 0x10,
0x04, 0x0c, 0x18, 0x10, 0x04, 0x06, 0x30, 0x10, 0x04, 0x03, 0x60, 0x10,
0x04, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10,
0x04, 0x00, 0x00, 0x10, 0xfc, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
xataxx/lib/dkstone.xbm 100600 1750 1 1564 5010720150 13520 0 ustar iialan bin #define dkstone_width 32
#define dkstone_height 32
static char dkstone_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x05, 0x00, 0x00, 0xaa, 0x1a, 0x00,
0x00, 0x55, 0x65, 0x00, 0x80, 0x2a, 0x88, 0x01, 0x40, 0x95, 0x22, 0x02,
0xa0, 0x02, 0x88, 0x04, 0x50, 0xa5, 0x22, 0x0a, 0xa8, 0x08, 0x88, 0x08,
0x54, 0xa2, 0x22, 0x12, 0xa8, 0x08, 0x88, 0x20, 0x16, 0xa2, 0x22, 0x2a,
0xaa, 0x08, 0x88, 0x40, 0x14, 0xa2, 0x22, 0x0a, 0x8a, 0x08, 0x88, 0x40,
0x25, 0xa2, 0x22, 0x0a, 0x8a, 0x08, 0x88, 0x40, 0x25, 0xa2, 0x22, 0x02,
0x8a, 0x08, 0x88, 0x40, 0x25, 0xa2, 0x22, 0x02, 0x8a, 0x08, 0x88, 0x40,
0x22, 0xa2, 0x22, 0x00, 0x8a, 0x08, 0x88, 0x20, 0x24, 0xa2, 0x22, 0x00,
0x88, 0x08, 0x08, 0x10, 0x28, 0xa2, 0x02, 0x00, 0x90, 0x08, 0x00, 0x04,
0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x40, 0x00,
0x00, 0x02, 0x00, 0x00, 0x00, 0x54, 0x15, 0x00};
xataxx/lib/downcursor.xbm 100600 1750 1 517 5010720150 14233 0 ustar iialan bin #define downcursor_width 15
#define downcursor_height 15
#define downcursor_x_hot 7
#define downcursor_y_hot 7
static char downcursor_bits[] = {
0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xa0, 0x02,
0xc0, 0x01, 0xfe, 0x3f, 0xc0, 0x01, 0xa0, 0x02, 0x80, 0x00, 0x80, 0x00,
0x80, 0x00, 0x80, 0x00, 0x00, 0x00};
xataxx/lib/downmask.xbm 100600 1750 1 505 5010720150 13646 0 ustar iialan bin #define downmask_width 15
#define downmask_height 15
#define downmask_x_hot 7
#define downmask_y_hot 7
static char downmask_bits[] = {
0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01, 0xf0, 0x07, 0xf0, 0x07,
0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xf0, 0x07, 0xf0, 0x07, 0xc0, 0x01,
0xc0, 0x01, 0xc0, 0x01, 0xc0, 0x01};
xataxx/lib/ltblock.xbm 100600 1750 1 1564 5010720152 13505 0 ustar iialan bin #define dkblock_width 32
#define dkblock_height 32
static char dkblock_bits[] = {
0x55, 0x55, 0x55, 0x55, 0xfe, 0xff, 0xff, 0xbf, 0x57, 0x55, 0x55, 0x15,
0xaa, 0xaa, 0xaa, 0xaa, 0x57, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0xaa,
0x17, 0x00, 0x00, 0x14, 0xaa, 0xaa, 0xaa, 0xaa, 0x17, 0x55, 0x55, 0x17,
0xaa, 0xaa, 0xaa, 0xaa, 0x17, 0x55, 0x55, 0x17, 0xaa, 0xaa, 0xaa, 0xaa,
0x17, 0xf5, 0x4f, 0x17, 0xaa, 0x1a, 0xa8, 0xaa, 0x17, 0x15, 0x48, 0x17,
0xaa, 0x1a, 0xa8, 0xaa, 0x17, 0x15, 0x48, 0x17, 0xaa, 0x1a, 0xa8, 0xaa,
0x17, 0x15, 0x48, 0x17, 0xaa, 0xfa, 0xaf, 0xaa, 0x17, 0x05, 0x40, 0x17,
0xaa, 0xaa, 0xaa, 0xaa, 0x17, 0x55, 0x55, 0x17, 0xaa, 0xaa, 0xaa, 0xaa,
0x17, 0x55, 0x55, 0x17, 0xaa, 0xff, 0xff, 0xab, 0x57, 0x55, 0x55, 0x15,
0xaa, 0xaa, 0xaa, 0xaa, 0x57, 0x55, 0x55, 0x15, 0xaa, 0xaa, 0xaa, 0xaa,
0x01, 0x00, 0x00, 0x00, 0xaa, 0xaa, 0xaa, 0xaa};
xataxx/lib/ltsmiley.xbm 100600 1750 1 1564 5010720152 13715 0 ustar iialan bin #define ltstone_width 32
#define ltstone_height 32
static char ltstone_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xfc, 0x1f, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x80, 0xff, 0xff, 0x00,
0xc0, 0xff, 0xff, 0x01, 0xe0, 0xfd, 0xdf, 0x03, 0xf0, 0xfd, 0xdf, 0x07,
0xf0, 0xfd, 0xdf, 0x07, 0xf8, 0xfd, 0xdf, 0x0f, 0xf8, 0xff, 0xff, 0x0f,
0xf8, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0x0f,
0xf8, 0x7f, 0xff, 0x0f, 0xf8, 0x7f, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0x0f,
0xf8, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0x0f, 0x78, 0xfc, 0x1f, 0x0f,
0xf0, 0xfd, 0xdf, 0x07, 0xf0, 0xf9, 0xcf, 0x07, 0xe0, 0x07, 0xf0, 0x03,
0xc0, 0xff, 0xff, 0x01, 0x80, 0xff, 0xff, 0x00, 0x00, 0xff, 0x7f, 0x00,
0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
xataxx/lib/ltstone.xbm 100600 1750 1 1564 5010720152 13543 0 ustar iialan bin #define ltstone_width 32
#define ltstone_height 32
static char ltstone_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00,
0x00, 0xfe, 0x1d, 0x00, 0x80, 0xff, 0x77, 0x00, 0xc0, 0x5f, 0xdd, 0x01,
0xe0, 0xf7, 0x77, 0x03, 0xf0, 0x5d, 0xdd, 0x05, 0xf8, 0xf7, 0x77, 0x07,
0xf8, 0x5d, 0xdd, 0x0d, 0x7c, 0xf7, 0x77, 0x17, 0xfc, 0x5d, 0xdd, 0x1d,
0x7c, 0xf7, 0x77, 0x0f, 0xdc, 0x5d, 0xdd, 0x15, 0x7e, 0xf7, 0x77, 0x2f,
0xde, 0x5d, 0xdd, 0x15, 0x76, 0xf7, 0x77, 0x2f, 0xde, 0x5d, 0xdd, 0x15,
0x76, 0xf7, 0x77, 0x2b, 0xde, 0x5d, 0xdd, 0x15, 0x74, 0xf7, 0x77, 0x0b,
0xdc, 0x5d, 0xdd, 0x15, 0x74, 0xf7, 0xf7, 0x0a, 0xd8, 0x5d, 0x5d, 0x05,
0x70, 0xf7, 0xaf, 0x0a, 0xd0, 0x5d, 0x55, 0x05, 0x60, 0xf7, 0xab, 0x02,
0xc0, 0x5d, 0x55, 0x01, 0x00, 0xab, 0xaa, 0x00, 0x00, 0x54, 0x15, 0x00,
0x00, 0xa0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00};
xataxx/lib/scowlcurs.xbm 100600 1750 1 512 5010720152 14047 0 ustar iialan bin #define scowlcurs_width 15
#define scowlcurs_height 15
#define scowlcurs_x_hot 7
#define scowlcurs_y_hot 7
static char scowlcurs_bits[] = {
0x00, 0x00, 0xfe, 0x3f, 0x02, 0x20, 0x02, 0x20, 0x22, 0x22, 0x72, 0x27,
0x22, 0x22, 0x02, 0x20, 0xc2, 0x21, 0x22, 0x22, 0x12, 0x24, 0x02, 0x20,
0x02, 0x20, 0xfe, 0x3f, 0x00, 0x00};
xataxx/lib/scowlcursmask. 100600 1750 1 454 5010720152 14221 0 ustar iialan bin #define new_width 15
#define new_height 15
#define new_x_hot 7
#define new_y_hot 7
static char new_bits[] = {
0x00, 0x80, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf,
0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf, 0xfe, 0xbf,
0xfe, 0xbf, 0xfe, 0xbf, 0x00, 0x80};
xataxx/lib/smilecurs.xbm 100600 1750 1 512 5010720152 14031 0 ustar iialan bin #define smilecurs_width 15
#define smilecurs_height 15
#define smilecurs_x_hot 7
#define smilecurs_y_hot 7
static char smilecurs_bits[] = {
0xe0, 0x03, 0x18, 0x0c, 0x04, 0x10, 0x02, 0x20, 0x22, 0x22, 0x71, 0x47,
0x21, 0x42, 0x01, 0x40, 0x01, 0x40, 0x11, 0x44, 0x22, 0x22, 0xc2, 0x21,
0x04, 0x10, 0x18, 0x0c, 0xe0, 0x03};
xataxx/lib/smilecursmask. 100600 1750 1 536 5010720152 14204 0 ustar iialan bin #define scowlcursmask_width 15
#define scowlcursmask_height 15
#define scowlcursmask_x_hot 7
#define scowlcursmask_y_hot 7
static char scowlcursmask_bits[] = {
0xe0, 0x83, 0xf8, 0x8f, 0xfc, 0x9f, 0xfe, 0xbf, 0xfe, 0xbf, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xbf, 0xfe, 0xbf,
0xfc, 0x9f, 0xf8, 0x8f, 0xe0, 0x83};
xataxx/lib/stone.xbm 100600 1750 1 1556 5010720152 13204 0 ustar iialan bin #define stone_width 32
#define stone_height 32
static char stone_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x05, 0x00,
0x00, 0xaa, 0x1a, 0x00, 0x00, 0xd5, 0x77, 0x00, 0x80, 0x6a, 0xdd, 0x01,
0x40, 0xfd, 0x77, 0x03, 0xa0, 0x5a, 0xdd, 0x05, 0x50, 0xf7, 0x77, 0x07,
0xa8, 0x5d, 0xdd, 0x0d, 0x54, 0xf7, 0x77, 0x1f, 0xe8, 0x5d, 0xdd, 0x15,
0x54, 0xf7, 0x77, 0x3f, 0xea, 0x5d, 0xdd, 0x35, 0x74, 0xf7, 0x77, 0x3f,
0xda, 0x5d, 0xdd, 0x35, 0x74, 0xf7, 0x77, 0x3f, 0xda, 0x5d, 0xdd, 0x3d,
0x74, 0xf7, 0x77, 0x3f, 0xda, 0x5d, 0xdd, 0x3d, 0x74, 0xf7, 0x77, 0x3f,
0xdc, 0x5d, 0xdd, 0x1f, 0x74, 0xf7, 0x77, 0x1f, 0xd8, 0x5d, 0xdd, 0x0f,
0x70, 0xf7, 0xf7, 0x0f, 0xd0, 0x5d, 0xfd, 0x07, 0x60, 0xf7, 0xff, 0x03,
0xc0, 0xff, 0xff, 0x01, 0x00, 0xff, 0xff, 0x00, 0x00, 0xfe, 0x3f, 0x00,
0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00};
xataxx/lib/stonemask.xbm 100600 1750 1 1660 5010720152 14054 0 ustar iialan bin #define stonemask_width 32
#define stonemask_height 32
#define stonemask_x_hot -1
#define stonemask_y_hot -1
static char stonemask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0xff, 0x3f, 0x00,
0x80, 0xff, 0xff, 0x00, 0xc0, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x07,
0xf0, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0x0f, 0xfc, 0xff, 0xff, 0x1f,
0xfe, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0x7f,
0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f,
0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f,
0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f,
0xff, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x3f,
0xfc, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x0f,
0xf0, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0x03, 0x80, 0xff, 0xff, 0x01,
0x00, 0xff, 0x7f, 0x00, 0x00, 0xfc, 0x1f, 0x00};
xataxx/lib/title.xbm 100600 1750 1 114636 5010720154 13243 0 ustar iialan bin #define title_width 224
#define title_height 224
#define title_x_hot -1
#define title_y_hot -1
static char title_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe,
0x07, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x70,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8,
0x1f, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0,
0xff, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0x03, 0x80, 0x03, 0x00, 0xf0, 0x07, 0xc0, 0xff, 0xff, 0x01, 0xf0,
0x07, 0xc0, 0x07, 0xc0, 0x07, 0x1f, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0xc0, 0x01, 0x00, 0x08, 0x0c, 0x40,
0x00, 0x80, 0x01, 0x08, 0x0c, 0x40, 0x06, 0x40, 0x06, 0x19, 0x00, 0x19,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0xc0, 0x01,
0x00, 0xe4, 0x1f, 0x40, 0xff, 0xff, 0x01, 0xe4, 0x1f, 0x80, 0x0e, 0xa0,
0x03, 0x3a, 0x80, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xfc, 0x0f, 0xe0, 0x00, 0x00, 0xf4, 0x1f, 0xc0, 0xff, 0xff, 0x01, 0xf4,
0x1f, 0x80, 0x0e, 0xa0, 0x03, 0x3a, 0x80, 0x0e, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x70, 0x00, 0x00, 0xf2, 0x3f, 0xc0,
0xff, 0xff, 0x01, 0xf2, 0x3f, 0x00, 0x1d, 0xd0, 0x01, 0x74, 0x40, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x38, 0x00,
0x00, 0x3a, 0x3a, 0x00, 0xa0, 0x03, 0x00, 0x3a, 0x3a, 0x00, 0x1d, 0xd0,
0x01, 0x74, 0x40, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf0, 0x7f, 0x38, 0x00, 0x00, 0x39, 0x7a, 0x00, 0xa0, 0x03, 0x00, 0x39,
0x7a, 0x00, 0x3a, 0xe8, 0x00, 0xe8, 0xa0, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x1c, 0x00, 0x00, 0x1d, 0x74, 0x00,
0xa0, 0x03, 0x00, 0x1d, 0x74, 0x00, 0x3a, 0xe8, 0x00, 0xe8, 0xa0, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x0e, 0x00,
0x80, 0x1c, 0xf4, 0x00, 0xa0, 0x03, 0x80, 0x1c, 0xf4, 0x00, 0x74, 0x74,
0x00, 0xd0, 0xd1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x1f, 0x07, 0x00, 0x80, 0x0e, 0xe8, 0x00, 0xa0, 0x03, 0x80, 0x0e,
0xe8, 0x00, 0x74, 0x74, 0x00, 0xd0, 0xd1, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x03, 0x00, 0x40, 0x0e, 0xe8, 0x01,
0xa0, 0x03, 0x40, 0x0e, 0xe8, 0x01, 0xe8, 0x3a, 0x00, 0xa0, 0xeb, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x03, 0x00,
0x40, 0x07, 0xd0, 0x01, 0xa0, 0x03, 0x40, 0x07, 0xd0, 0x01, 0xe8, 0x3b,
0x00, 0xa0, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0xc3, 0x07, 0x00, 0x40, 0x07, 0xd0, 0x01, 0xa0, 0x03, 0x40, 0x07,
0xd0, 0x01, 0xd0, 0x1d, 0x00, 0x40, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0xe3, 0x0f, 0x00, 0x40, 0xff, 0xdf, 0x01,
0xa0, 0x03, 0x40, 0xff, 0xdf, 0x01, 0xd0, 0x1f, 0x00, 0x40, 0x7f, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, 0x0f, 0x00,
0x40, 0x07, 0xc0, 0x01, 0xa0, 0x03, 0x40, 0x07, 0xc0, 0x01, 0xa0, 0x0f,
0x00, 0x80, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xe0, 0xf0, 0x1f, 0x00, 0x40, 0xff, 0xff, 0x01, 0xa0, 0x03, 0x40, 0xff,
0xff, 0x01, 0xa0, 0x0f, 0x00, 0x80, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x70, 0xf8, 0x3f, 0x00, 0x40, 0xff, 0xff, 0x01,
0xa0, 0x03, 0x40, 0xff, 0xff, 0x01, 0xa0, 0x0f, 0x00, 0x80, 0x3e, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xe0, 0x7f, 0x00,
0x40, 0xff, 0xff, 0x01, 0xa0, 0x03, 0x40, 0xff, 0xff, 0x01, 0xa0, 0x0f,
0x00, 0x80, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x38, 0xe0, 0x7f, 0x00, 0x40, 0x07, 0xd0, 0x01, 0xa0, 0x03, 0x40, 0x07,
0xd0, 0x01, 0xd0, 0x1f, 0x00, 0x40, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1c, 0xc0, 0xff, 0x00, 0x40, 0x07, 0xd0, 0x01,
0xa0, 0x03, 0x40, 0x07, 0xd0, 0x01, 0xd0, 0x1d, 0x00, 0x40, 0x77, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x80, 0xff, 0x01,
0x40, 0x07, 0xd0, 0x01, 0xa0, 0x03, 0x40, 0x07, 0xd0, 0x01, 0xe8, 0x3b,
0x00, 0xa0, 0xef, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0e, 0x00, 0xff, 0x03, 0x40, 0x07, 0xd0, 0x01, 0xa0, 0x03, 0x40, 0x07,
0xd0, 0x01, 0xe8, 0x3a, 0x00, 0xa0, 0xeb, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0xff, 0x03, 0x40, 0x07, 0xd0, 0x01,
0xa0, 0x03, 0x40, 0x07, 0xd0, 0x01, 0x74, 0x74, 0x00, 0xd0, 0xd1, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xfe, 0x07,
0x40, 0x07, 0xd0, 0x01, 0xa0, 0x03, 0x40, 0x07, 0xd0, 0x01, 0x74, 0x74,
0x00, 0xd0, 0xd1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0,
0x01, 0x00, 0xfc, 0x0f, 0x40, 0x07, 0xd0, 0x01, 0xa0, 0x03, 0x40, 0x07,
0xd0, 0x01, 0x3a, 0xe8, 0x00, 0xe8, 0xa0, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0xf8, 0x1f, 0x40, 0x07, 0xd0, 0x01,
0xa0, 0x03, 0x40, 0x07, 0xd0, 0x01, 0x3a, 0xe8, 0x00, 0xe8, 0xa0, 0x03,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0xf8, 0x1f,
0x40, 0x07, 0xd0, 0x01, 0xa0, 0x03, 0x40, 0x07, 0xd0, 0x01, 0x1d, 0xd0,
0x01, 0x74, 0x40, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
0x00, 0x00, 0xf0, 0x3f, 0x40, 0x07, 0xd0, 0x01, 0xa0, 0x03, 0x40, 0x07,
0xd0, 0x01, 0x1d, 0xd0, 0x01, 0x74, 0x40, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0xe0, 0x7f, 0x40, 0x07, 0xd0, 0x01,
0xa0, 0x03, 0x40, 0x07, 0xd0, 0x81, 0x0e, 0xa0, 0x03, 0x3a, 0x80, 0x0e,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0xc0, 0xff,
0x40, 0x07, 0xd0, 0x01, 0xa0, 0x03, 0x40, 0x07, 0xd0, 0x81, 0x0e, 0xa0,
0x03, 0x3a, 0x80, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0xc0, 0xff, 0xc0, 0x07, 0xf0, 0x01, 0xe0, 0x03, 0xc0, 0x07,
0xf0, 0x41, 0x06, 0x40, 0x06, 0x19, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x80, 0xff, 0xc1, 0x07, 0xf0, 0x01,
0xe0, 0x03, 0xc0, 0x07, 0xf0, 0xc1, 0x07, 0xc0, 0x07, 0x1f, 0x00, 0x1f,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0xff, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x55, 0x55,
0x55, 0x55, 0x00, 0x00, 0xf0, 0xff, 0x07, 0x00, 0x80, 0x08, 0x08, 0x00,
0x00, 0x00, 0x40, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xfc, 0xbf, 0x1a, 0x00,
0x80, 0x48, 0x3e, 0x0a, 0x83, 0xc3, 0x43, 0x00, 0x30, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00,
0xfe, 0xff, 0x3f, 0x00, 0x80, 0x07, 0x08, 0x95, 0x44, 0x24, 0xc0, 0x23,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, 0xaa,
0xaa, 0x0a, 0x00, 0x00, 0xff, 0xaa, 0x6a, 0x00, 0x80, 0x48, 0x08, 0x95,
0x44, 0xc4, 0x41, 0x24, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xc0, 0x55, 0x55, 0x55, 0x55, 0x00, 0x80, 0xff, 0xff, 0xff, 0x00,
0x80, 0x48, 0x08, 0x95, 0x44, 0x04, 0x42, 0x24, 0x32, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, 0xaa, 0xaa, 0x0a, 0x00, 0xc0,
0xbf, 0xaa, 0xaa, 0x01, 0x80, 0x47, 0x08, 0x11, 0xcb, 0xe3, 0xc1, 0xc3,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x05, 0x00,
0x00, 0x54, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00,
0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xaa, 0xaa, 0xaa, 0x0b, 0x00, 0xf0, 0xab, 0xaa, 0xaa, 0x06,
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x45, 0x55, 0x55, 0x55, 0x00, 0xf0,
0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0xc0,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, 0xaa,
0xaa, 0x0b, 0x00, 0xf8, 0xaa, 0xaa, 0xaa, 0x0e, 0x00, 0x06, 0x00, 0x08,
0x00, 0x07, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xc0, 0x45, 0x55, 0x55, 0x55, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x0f,
0x00, 0x09, 0x00, 0x08, 0x80, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, 0xaa, 0xaa, 0x0b, 0x00, 0xf8,
0xaa, 0x3a, 0xab, 0x0a, 0x80, 0x08, 0x00, 0x08, 0x40, 0x00, 0x11, 0x00,
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x45, 0xfd,
0x53, 0x55, 0x00, 0xfc, 0xff, 0x1f, 0xfe, 0x1f, 0x80, 0x08, 0x00, 0x08,
0x40, 0x00, 0x11, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xaa, 0x06, 0xaa, 0x0b, 0x00, 0xbc, 0xaa, 0x0a, 0xac, 0x1a,
0x80, 0x08, 0x00, 0x08, 0x40, 0x00, 0x11, 0x00, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x45, 0x05, 0x52, 0x55, 0x00, 0xfc,
0xff, 0x0f, 0xfc, 0x1f, 0x80, 0xc4, 0x69, 0x08, 0xc0, 0x01, 0x89, 0x63,
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, 0x06,
0xaa, 0x0b, 0x00, 0xac, 0x8e, 0x0f, 0xac, 0x1a, 0x80, 0x23, 0x9a, 0x08,
0x40, 0x00, 0x47, 0x94, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xc0, 0x45, 0x05, 0x52, 0x55, 0x00, 0xfc, 0x07, 0x07, 0xfc, 0x1f,
0x80, 0x24, 0x8a, 0x08, 0x40, 0x00, 0x41, 0x94, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, 0x06, 0xaa, 0x0b, 0x00, 0xac,
0x06, 0x07, 0xae, 0x1a, 0x80, 0xe8, 0x89, 0x08, 0x40, 0x00, 0xc1, 0x93,
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x45, 0x05,
0x52, 0x55, 0x00, 0xfc, 0x03, 0x07, 0xfe, 0x1d, 0x80, 0x28, 0x88, 0x08,
0x40, 0x00, 0x41, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xaa, 0x06, 0xaa, 0x0b, 0x00, 0xac, 0x02, 0x07, 0xab, 0x1a,
0x80, 0x28, 0x8a, 0x08, 0x46, 0x30, 0x41, 0x94, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x45, 0xfd, 0x53, 0x55, 0x00, 0xfc,
0x83, 0x83, 0x7f, 0x1d, 0x00, 0xc7, 0x89, 0xf0, 0x86, 0x37, 0x81, 0x63,
0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, 0x02,
0xa8, 0x0b, 0x00, 0xa8, 0x82, 0xc1, 0xe3, 0x0a, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xc0, 0x45, 0x55, 0x55, 0x55, 0x00, 0xf8, 0x07, 0xe0, 0xc0, 0x0d,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, 0xaa, 0xaa, 0x0b, 0x00, 0xa8,
0x06, 0x00, 0x80, 0x0e, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x45, 0x55,
0x55, 0x55, 0x00, 0xf0, 0x0f, 0x00, 0x80, 0x05, 0x00, 0x01, 0x00, 0x00,
0x80, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xaa, 0xaa, 0xaa, 0x0b, 0x00, 0xb0, 0x1a, 0x00, 0xc0, 0x06,
0x80, 0x40, 0x02, 0x20, 0x42, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe5, 0xff, 0xff, 0x55, 0x00, 0xe0,
0x3f, 0x00, 0x60, 0x03, 0x80, 0x40, 0x02, 0x20, 0x42, 0x00, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, 0xaa,
0xaa, 0x0a, 0x00, 0xc0, 0x6a, 0x00, 0xbf, 0x01, 0x80, 0x40, 0x02, 0x20,
0x42, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xc0, 0x55, 0x55, 0x55, 0x55, 0x00, 0x80, 0x7f, 0x80, 0xd5, 0x00,
0x80, 0x43, 0x92, 0x73, 0x47, 0x00, 0x47, 0x64, 0x34, 0x0e, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, 0xaa, 0xaa, 0x0a, 0x00, 0x00,
0xeb, 0x80, 0x6a, 0x00, 0x80, 0x40, 0x42, 0x24, 0x42, 0x00, 0x41, 0x94,
0x4c, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x55, 0x55,
0x55, 0x55, 0x00, 0x00, 0xd6, 0x81, 0x35, 0x00, 0x80, 0x40, 0x52, 0x24,
0x42, 0x00, 0x41, 0x94, 0x44, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x81, 0x1f, 0x00,
0x80, 0x40, 0x52, 0x24, 0x42, 0x00, 0x81, 0x92, 0x44, 0x0e, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x55, 0x55, 0x55, 0x55, 0x00, 0x00,
0xf0, 0x03, 0x07, 0x00, 0x80, 0x40, 0x52, 0x24, 0x42, 0x04, 0x81, 0x92,
0x44, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x03, 0x00, 0x80, 0x40, 0x52, 0x24,
0x42, 0x32, 0x01, 0x91, 0x44, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x02, 0x00,
0x00, 0x2f, 0x89, 0x13, 0x81, 0x31, 0x1e, 0x61, 0x45, 0x0e, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00,
0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xbf,
0x3e, 0x00, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x00, 0xfe, 0xff,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xe0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x0c, 0x2a, 0x18, 0x00,
0x00, 0x80, 0xff, 0x57, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xaf, 0xaa, 0x01, 0x00, 0x00,
0x42, 0x55, 0x20, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff,
0xff, 0x03, 0x00, 0x00, 0xa9, 0xaa, 0x4a, 0x00, 0x00, 0xe0, 0x5f, 0x55,
0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xfc, 0xaa, 0xab, 0x06, 0x00, 0x80, 0x54, 0x05, 0x80, 0x00,
0x00, 0xf0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0xfc, 0x0f, 0x00, 0x40,
0xaa, 0xaa, 0x2a, 0x01, 0x00, 0xf8, 0x57, 0x55, 0x35, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x1a,
0xb0, 0x1a, 0x00, 0x20, 0x15, 0x00, 0x00, 0x02, 0x00, 0xfc, 0xff, 0xff,
0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xff, 0x0f, 0xe0, 0x3f, 0x00, 0x90, 0xaa, 0xaa, 0xaa, 0x04,
0x00, 0xfe, 0x81, 0x55, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaf, 0x0e, 0xc0, 0x2b, 0x00, 0x50,
0x05, 0x00, 0x00, 0x04, 0x00, 0x3e, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x0f,
0x00, 0x7e, 0x00, 0x88, 0xaa, 0xaa, 0xaa, 0x08, 0x00, 0x1f, 0x00, 0xfa,
0xd5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xc0, 0xaf, 0x0a, 0x00, 0xe0, 0x00, 0x48, 0x01, 0x00, 0x00, 0x08,
0x80, 0x03, 0x00, 0x9e, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x00, 0x03, 0xa8,
0xaa, 0xaa, 0xaa, 0x1a, 0xe0, 0x01, 0x00, 0x07, 0x56, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xab, 0x1a,
0x00, 0x00, 0x0e, 0x46, 0x00, 0x00, 0x00, 0x70, 0x38, 0x00, 0x80, 0x03,
0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xe0, 0xff, 0x3f, 0xc0, 0x00, 0xf8, 0xa7, 0xaa, 0xaa, 0xaa, 0xc2,
0x0f, 0xe0, 0xc0, 0x03, 0x58, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xea, 0x6f, 0xb0, 0x01, 0x00, 0x50,
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0xf8, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0xfc,
0xff, 0x01, 0x00, 0xa0, 0xaa, 0xaa, 0xaa, 0x02, 0x00, 0xc0, 0x7f, 0x00,
0x58, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xe0, 0x1a, 0xb0, 0xaa, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x01, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0xc0, 0x7f, 0x00, 0x00, 0xa0,
0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x3a, 0x00,
0x0c, 0xe0, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
0xbe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xe0, 0x7f, 0x00, 0x00, 0xf0, 0xfe, 0xa0, 0xaa, 0xaa, 0xaa, 0xc0,
0xc1, 0x07, 0x00, 0xc0, 0x57, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x6a, 0x00, 0x00, 0xf8, 0x00, 0x07,
0x00, 0x00, 0x00, 0x30, 0x80, 0x0f, 0xf8, 0xf0, 0xaf, 0x03, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x00,
0x00, 0x5f, 0x00, 0xa4, 0xaa, 0xaa, 0x2a, 0x08, 0x00, 0x1d, 0xde, 0x5f,
0x55, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xc0, 0xaa, 0x7f, 0x00, 0x6b, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08,
0x00, 0x3f, 0xfc, 0xff, 0xab, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x80, 0x75, 0x00, 0xa8,
0xaa, 0xaa, 0x2a, 0x08, 0x00, 0x35, 0x80, 0x55, 0xd5, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, 0xaf,
0x80, 0x3a, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x7e, 0x00, 0xff,
0xea, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0xff, 0xf9, 0x40, 0x35, 0x00, 0x90, 0xaa, 0xaa, 0x0a, 0x04,
0x00, 0xd6, 0x00, 0x56, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0x60, 0xf0, 0x1a, 0x00, 0x20,
0x00, 0x00, 0x00, 0x02, 0x00, 0xfc, 0x01, 0xbe, 0x6a, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00,
0x50, 0x0d, 0x00, 0x40, 0xaa, 0xaa, 0x00, 0x01, 0x00, 0x58, 0x87, 0x57,
0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xac, 0x00, 0xb0, 0x06, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00,
0x00, 0xf0, 0xff, 0xab, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x58, 0x03, 0x00, 0x00,
0xa9, 0x0a, 0x40, 0x00, 0x00, 0x60, 0x55, 0x55, 0x0d, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x06,
0xae, 0x01, 0x00, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0xc0, 0xaf, 0xaa,
0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xe0, 0x9d, 0xf5, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x18, 0x00,
0x00, 0x80, 0x55, 0xd5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x3e, 0x00, 0x00, 0x00,
0x70, 0x00, 0x07, 0x00, 0x00, 0x00, 0xbe, 0xfa, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc,
0x07, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x20,
0x04, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, 0xaa, 0xaa,
0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x02, 0xf8, 0x04, 0x1c, 0x0d, 0xcf, 0x00, 0x00, 0x00, 0x00,
0x00, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x13, 0x21, 0x3c, 0x22, 0x93, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0xab, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x12, 0x21,
0x44, 0x22, 0x01, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55,
0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x12, 0x21, 0x44, 0x22, 0x01, 0xc8, 0x00, 0x00, 0x00, 0x00,
0x80, 0xab, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xe2, 0x20, 0x44, 0x1c, 0x81, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0b, 0x00, 0x00,
0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x55, 0x55, 0x55, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x8b, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00,
0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55,
0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x40, 0x02, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x8b, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0x00, 0x88, 0xc0, 0x30,
0x00, 0x00, 0x01, 0x00, 0x00, 0x55, 0x55, 0x55, 0x17, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x00,
0x00, 0x08, 0x20, 0x49, 0x00, 0x00, 0x01, 0x00, 0x80, 0x8b, 0xfa, 0xa7,
0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x10, 0x00, 0x00, 0x08, 0x20, 0x08, 0x00, 0x00, 0x01, 0x00,
0x00, 0x55, 0x0d, 0x54, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x38, 0x27, 0x72, 0x08, 0x74, 0x1c,
0x4e, 0x03, 0x01, 0x00, 0x80, 0x8b, 0x0a, 0xa4, 0xaa, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x28,
0x8a, 0x08, 0x20, 0x08, 0xd1, 0xc4, 0x01, 0x00, 0x00, 0x55, 0x0d, 0x54,
0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x92, 0x28, 0x8a, 0xe8, 0x24, 0x08, 0x51, 0x20, 0x01, 0x00,
0x80, 0x8b, 0x0a, 0xa4, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x27, 0x7a, 0x88, 0x24, 0x08,
0x51, 0x10, 0x01, 0x00, 0x00, 0x55, 0x0d, 0x54, 0x17, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x20,
0x0a, 0x88, 0x24, 0x08, 0x51, 0x10, 0x01, 0x00, 0x80, 0x8b, 0x0a, 0xa4,
0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x91, 0x48, 0x89, 0x48, 0x24, 0x08, 0x51, 0x10, 0x01, 0x00,
0x00, 0x55, 0x0d, 0x54, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x08, 0x87, 0x70, 0x30, 0x22, 0x08,
0x4e, 0xe0, 0x00, 0x00, 0x80, 0x8b, 0xfa, 0xa7, 0xaa, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x05, 0x50,
0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x8b, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x1e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x17, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00,
0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x8b, 0xaa, 0xaa,
0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x00, 0x10, 0x20, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
0x00, 0x55, 0x55, 0x55, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x20, 0x00, 0x88,
0x00, 0x00, 0x00, 0x00, 0x80, 0xcb, 0xff, 0xff, 0xab, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x08, 0x20, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55,
0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x91, 0x0d, 0x84, 0x23, 0xa7, 0x89, 0x0c, 0x00, 0x00, 0x00,
0x80, 0xab, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x12, 0x44, 0xa4, 0x68, 0x4a,
0x12, 0x00, 0x00, 0x00, 0x00, 0x55, 0x55, 0x55, 0x15, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x12,
0x42, 0xa4, 0x28, 0x3a, 0x12, 0x00, 0x00, 0x00, 0x80, 0xab, 0xaa, 0xaa,
0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x51, 0x12, 0xc2, 0xa3, 0x27, 0x4a, 0x12, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x51, 0x10, 0x41, 0xa0, 0x20, 0x8a,
0x12, 0x00, 0x00, 0x00, 0x80, 0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x51, 0x10,
0x51, 0xa4, 0x28, 0x8a, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xc0, 0x48, 0x10, 0x8f, 0x13, 0x27, 0x8a, 0x2c, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x80, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x09, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x20,
0x80, 0x48, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x02, 0x20, 0x80, 0x48, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x20, 0x80, 0x48, 0x80, 0x44,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x6a, 0xa0,
0x88, 0x44, 0xce, 0x45, 0x6a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xe0, 0x9b, 0xb8, 0x88, 0x43, 0x91, 0x24, 0x98, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x8a, 0xa4, 0x88, 0x40, 0x91, 0x1c,
0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x8a, 0xa2,
0x88, 0x40, 0x91, 0x24, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x20, 0x8a, 0xa2, 0x88, 0x40, 0x91, 0x44, 0x8a, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x8a, 0xa2, 0x88, 0x40, 0x91, 0x44,
0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x8a, 0x1c,
0x8f, 0x20, 0x4e, 0x44, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
xataxx/lib/upcursor.xbm 100600 1750 1 473 5010720156 13717 0 ustar iialan bin #define cursor_width 15
#define cursor_height 15
#define cursor_x_hot 0
#define cursor_y_hot 0
static char cursor_bits[] = {
0x03, 0x00, 0x0d, 0x00, 0x3a, 0x00, 0xd6, 0x00, 0xac, 0x03, 0x54, 0x0d,
0xa8, 0x1a, 0x58, 0x35, 0xb0, 0x7e, 0x50, 0x55, 0xe0, 0x7f, 0x60, 0x55,
0xc0, 0x7f, 0x80, 0x35, 0x00, 0x1f};
xataxx/lib/upmask.xbm 100600 1750 1 473 5010720160 13330 0 ustar iialan bin #define upmask_width 15
#define upmask_height 15
#define upmask_x_hot 0
#define upmask_y_hot 0
static char upmask_bits[] = {
0x1f, 0x00, 0x7f, 0x00, 0xff, 0x01, 0xff, 0x07, 0xff, 0x1f, 0xfe, 0x3f,
0xfe, 0x7f, 0xfc, 0x7f, 0xfc, 0x7f, 0xf8, 0x7f, 0xf8, 0x7f, 0xf0, 0x7f,
0xf0, 0x7f, 0xc0, 0x7f, 0xc0, 0x7f};
xataxx/main.c 100600 1750 1 6757 5351356161 11713 0 ustar iialan bin #include <stdio.h>
#include <X11/Xlib.h>
#include <math.h>
#include "struct.h"
#include "patchlevel.h"
extern Bool flumping, wflump, fflump, jflump, perfection;
int botmode; /* 1 for 2 player, 0 for 1 vs bot */
int boards;
int botlevel;
char *itoa(); /* gross version */
char *rand_board();
int get_num_boards();
char disp[90];
Bool fb;
char fbd[90];
showopts()
{
fprintf(stderr, "Syntax: xataxx <-jnw> <-d displayname> <-l level number>\n");
fprintf(stderr, " -d display name: name of opponents xhosted display.\n");
fprintf(stderr, " -j zot only on moves\n");
fprintf(stderr, " -l level number: number of look-ahead turns for robot (0-9).\n");
fprintf(stderr, " -n no zotting\n");
fprintf(stderr, " -p make it perfect\n");
fprintf(stderr, " -w will zot always\n");
}
process_flags(arg, n)
char **arg;
int n;
{
int x;
for(x=1;x<strlen(arg[n]);x++) {
switch(arg[n][x]) {
case 'b':
strcpy(fbd, arg[n+1]);
strcat(fbd, BOARDEXT);
fb = False;
break;
case 'd':
botmode=1;
strcpy(disp, arg[n+1]);
if (arg[n+1][strlen(arg[n+1])-2] != ':')
strcat(disp, ":0");
break;
case 'f':
fflump = False;
break;
case 'h':
showopts();
exit(0);
break;
case 'l':
botlevel = arg[n+1][0] - '0';
if (botlevel < 0 || botlevel > 9) {
showopts();
exit(0);
}
break;
case 'j':
jflump = False;
break;
case 'n':
wflump = False;
break;
case 'p':
perfection = True;
break;
case 'w':
wflump = True;
jflump = True;
flumping = True;
break;
default:
showopts();
exit(0);
break;
}
}
}
main(argc,argv)
int argc;
char *argv[];
{
int n, q;
botmode = 0;
botlevel = 2;
flumping = True;
wflump = True;
fflump = True;
jflump = False;
perfection = False;
fb = True;
if (argc>1)
for(n=1;n<argc;n++) {
if (argv[n][0] == '-')
process_flags(argv, n);
}
chdir(DATADIR);
boards = get_num_boards();
/* Load the input board */
if (fb) {
if (load_board(rand_board()))
exit(1);
}
else {
if (load_board(fbd)) {
fprintf(stderr, "You twit- that's not a valid board #.\n");
fprintf(stderr, "If you're gonna try that, talk to Jim to find out how.\n");
exit(1);
}
}
/* Start up the windows */
initialize_display(disp);
readbitmaps();
show_title();
while(1) {
if (waitferkey(8)) {
if (!demo())
waitferkey(5);
show_title();
}
else {
init_pieces();
play_loop();
}
if (load_board(rand_board()))
exit(1);
}
}
char *rand_board()
{
int bd;
static char fname[200];
srandom(time(NULL));
bd = random()%boards;
bd++;
strcpy(fname, itoa(bd));
strcat(fname, BOARDEXT);
return(fname);
}
char *itoa(x) /* gross version - replace this hack ASAP */
int x;
{
int z1, z2, z3, z4, z=0;
static char nn[6];
z1 = (int) (x)/1000;
z2 = (int) (x)/100-(10*z1);
z3 = (int) (x)/10-(100*z1)-(10*z2);
z4 = (int) (x)-(1000*z1)-(100*z2)-(10*z3);
if (z1)
nn[z++]=(z1+'0');
if (z2)
nn[z++]=(z2+'0');
if (z3)
nn[z++]=(z3+'0');
if (z4)
nn[z++]=(z4+'0');
nn[z++]='\0';
return(nn);
}
int get_num_boards()
{
FILE *bdfile;
int bdx;
if((bdfile = fopen(BOARDNUMFILE, "r")) == NULL) {
fprintf(stderr, "Cannot open %s for reading.\n", BOARDNUMFILE);
exit(1);
}
boards = 0;
fscanf(bdfile, "%d", &bdx);
fclose(bdfile);
if (bdx<1) {
fprintf(stderr, "Invalid number of allowable boards.\n");
exit(1);
}
return(bdx);
}
xataxx/nubot.c 100600 1750 1 15223 4753312212 12114 0 ustar iialan bin #include <stdio.h>
#include <X11/Xlib.h>
#include "struct.h"
#define MAXMOVES (700)
typedef struct {
int ox,oy;
int nx,ny;
char jump;
} zthing;
int *tboard[10];
#define square(bd, x, y) (bd[(x)*y_board_size+(y)])
extern int b_look2(); /* return EMPTY, BLACK, WHITE, or OBSTACLE */
extern int x_board_size, y_board_size;
extern int *board, *bl2;
extern int botlevel;
void init_nubot()
{
register int i, x, y;
int *bd;
for (i=0; i<10; i++) {
bd = (int *) malloc(sizeof(int)*x_board_size*y_board_size);
for (x=0;x!=x_board_size;x++)
for (y=0;y!=y_board_size;y++)
bd[x*y_board_size+y] = EMPTY;
tboard[i] = bd;
}
}
void fcopy_board(bd1, bd2)
int *bd1, *bd2;
{
bcopy(bd1, bd2, sizeof(int)*x_board_size*y_board_size);
}
int b_lookr(x, y, bd)
int x, y;
int *bd;
{
if ((x>=0)&&(x<x_board_size)&&(y>=0)&&(y<y_board_size))
return(bd[x*y_board_size+y]);
else
return(OBSTACLE);
}
void apply_move(player, bd, mv)
int player;
int *bd;
zthing *mv;
{
register int ix, iy;
int sq;
square(bd, mv->nx, mv->ny) = player;
if ((mv->nx-mv->ox < 2) && (mv->nx-mv->ox > -2) && (mv->ny-mv->oy < 2) && (mv->ny-mv->oy > -2)) {
/* leave orig alone */
}
else {
square(bd, mv->ox, mv->oy) = EMPTY;
};
for (ix=(-1); ix<=1; ix++)
for (iy=(-1); iy<=1; iy++) {
sq = square(bd, mv->nx+ix, mv->ny+iy);
if (sq!=EMPTY && sq!=OBSTACLE)
square(bd, mv->nx+ix, mv->ny+iy) = player;
}
}
int valueb(player, oplayer, bd) /* estimate the value of the board for player. oplayer should be the opposite color */
int player, oplayer;
int *bd;
{
register int ix, iy;
int good=0, bad=0, empty=0;
int sq;
for (ix=0; ix<x_board_size; ix++)
for (iy=0; iy<y_board_size; iy++) {
sq = square(bd, ix, iy);
if (sq == player) good++;
else if (sq == oplayer) bad++;
else if (sq == EMPTY) empty++;
}
if (empty==0) {
if (good>bad) return (10000);
else return (-10000);
};
if (good==0) return (-10000);
if (bad==0) return (10000);
return (good-bad);
}
list_moves(player, bd, movel)
int player;
int *bd;
zthing *movel;
{
register int posx, posy;
int moves=0;
#define do_check(jflag, x, y, player) \
if (b_lookr((x), (y), bd)==EMPTY) { \
movel[moves].nx = (x); \
movel[moves].ny = (y); \
movel[moves].ox = (posx); \
movel[moves].oy = (posy); \
movel[moves].jump = (jflag); \
moves++; \
}
for (posx=0; posx<x_board_size; posx++)
for (posy=0; posy<y_board_size; posy++)
if (b_lookr((posx), (posy), bd)==player) {
do_check(0,posx-1,posy-1,player);
do_check(0,posx,posy-1,player);
do_check(0,posx+1,posy-1,player);
do_check(0,posx+1,posy,player);
do_check(0,posx+1,posy+1,player);
do_check(0,posx,posy+1,player);
do_check(0,posx-1,posy+1,player);
do_check(0,posx-1,posy,player);
do_check(1,posx-2,posy-2,player);
do_check(1,posx-1,posy-2,player);
do_check(1,posx,posy-2,player);
do_check(1,posx+1,posy-2,player);
do_check(1,posx+2,posy-2,player);
do_check(1,posx+2,posy-1,player);
do_check(1,posx+2,posy,player);
do_check(1,posx+2,posy+1,player);
do_check(1,posx+2,posy+2,player);
do_check(1,posx+1,posy+2,player);
do_check(1,posx,posy+2,player);
do_check(1,posx-1,posy+2,player);
do_check(1,posx-2,posy+2,player);
do_check(1,posx-2,posy+1,player);
do_check(1,posx-2,posy,player);
do_check(1,posx-2,posy-1,player);
}
movel[moves].ox = (-1);
}
/* Make a move for player. If no move possible, just return. */
robot_move(player)
int player;
{
static int initted = 0;
zthing movel[MAXMOVES];
int vall[MAXMOVES];
register int ix;
int temp, bestval = (-10000);
int oplayer;
zthing *best;
int numbest, numglides, gomove;
if (!initted) {
init_nubot();
initted = 1;
}
oplayer = (player==WHITE) ? BLACK : WHITE;
list_moves(player, board, movel);
if (movel[0].ox==(-1)) return; /* there are no legal moves */
if (botlevel==0) {
for (ix=0; movel[ix].ox!=(-1); ix++);
ix = random() % ix;
best = &(movel[ix]);
move_piece(best->ox,best->oy,best->nx,best->ny,player);
return;
};
for (ix=0; movel[ix].ox!=(-1); ix++) {
fcopy_board(board, tboard[0]);
apply_move(player, tboard[0], &(movel[ix]));
vall[ix] = -veb(oplayer, tboard[0], 1, 10000);
if (vall[ix] > bestval) bestval = vall[ix];
}
do {
for (ix=0; movel[ix].ox!=(-1) && (vall[ix]!=bestval || random()%2); ix++);
} while (movel[ix].ox==(-1));
numbest = 0;
numglides = 0;
for (ix=0; movel[ix].ox!=(-1); ix++) {
/*
printf("%d: %d,%d -- %d,%d %c (val %d)\n", ix, movel[ix].ox, movel[ix].oy, movel[ix].nx, movel[ix].ny, movel[ix].jump ? 'J' : 'G', vall[ix]);
*/
if (vall[ix]==bestval) {
numbest++;
if (!movel[ix].jump) numglides++;
}
}
if (numglides) {
gomove = (random() % numglides) + 1;
/*
printf("%d moves (%d glides); took %d'th glide ", numbest, numglides, gomove);
*/
for (ix=0; gomove && movel[ix].ox!=(-1); ix++)
if (vall[ix]==bestval && (!movel[ix].jump)) gomove--;
}
else {
gomove = (random() % numbest) + 1;
/*
printf("%d moves (%d glides); took %d'th move ", numbest, numglides, gomove);
*/
for (ix=0; gomove && movel[ix].ox!=(-1); ix++)
if (vall[ix]==bestval) gomove--;
}
ix--;
/*
printf("(ix=%d) \n", ix);
*/
best = &(movel[ix]);
/*
printf("Move is %d,%d -- %d,%d (val %d vs %d)\n", best->ox,best->oy,best->nx,best->ny, vall[ix], bestval);
*/
move_piece(best->ox,best->oy,best->nx,best->ny,player);
}
int veb(player, given, depth, dee) /* return the value of given board for one player */
int player;
int *given;
int depth;
int dee;
{
int x,y;
int oplayer;
zthing movel[MAXMOVES];
int vall;
int temp, bestval = (-10000);
register int ix;
oplayer = (player==WHITE) ? BLACK : WHITE;
if (depth == botlevel) {
int val = valueb(player, oplayer, given);
return val;
}
list_moves(player, given, movel);
if (movel[0].ox==(-1)) return -10000; /* there are no legal moves */
for (ix=0; movel[ix].ox!=(-1); ix++) {
fcopy_board(given, tboard[depth]);
apply_move(player, tboard[depth], &(movel[ix]));
vall = -veb(oplayer, tboard[depth], depth+1, -bestval);
if (vall > bestval) bestval = vall;
if (bestval >= dee) return bestval;
}
return bestval;
}
dump_board(bd)
int *bd;
{
register int ix, iy;
int sq;
for (iy=0; iy<y_board_size; iy++) {
for (ix=0; ix<x_board_size; ix++) {
sq = square(bd, ix, iy);
switch (sq) {
case EMPTY:
printf("- ");
break;
case WHITE:
printf("W ");
break;
case BLACK:
printf("B ");
break;
case OBSTACLE:
printf("# ");
break;
}
};
printf("\n");
}
printf("\n");
}
xataxx/parse.c 100600 1750 1 2142 4754607414 12067 0 ustar iialan bin #include <stdio.h>
#include <strings.h>
#include "struct.h"
#define return_fail(str) { \
fprintf(stderr,"%s\n",str); \
return(1); \
}
load_board(file)
char *file;
{
FILE *fp;
char line[1024],*tok;
int x_board_size,y_board_size,xpos,ypos;
if (!(fp = fopen(file,"r"))) {
fprintf(stderr,"Could not open board file %s\n",file);
return(1);
}
/* Read board size */
fgets(line,1024,fp);
if (!(tok= (char *) strtok(line,TOKS)))
return_fail("Could not read board size");
x_board_size = atoi(tok);
if (!(tok=(char *) strtok(NULL,TOKS)))
return_fail("Could not read board size");
y_board_size = atoi(tok);
if (allocate_board(x_board_size,y_board_size))
return_fail("Invalid board size");
/* Now for the obstructions */
for (fgets(line,1024,fp),fgets(line,1024,fp);
(tok= (char *) strtok(line,TOKS));fgets(line,1024,fp)) {
xpos = atoi(tok);
if (!(tok=(char *) strtok(NULL,TOKS)))
return_fail("Invalid pair in obstructions");
ypos = atoi(tok);
if (add_obstruction(xpos,ypos))
return_fail("Obstruction out of range");
}
return(0);
}
xataxx/patchlevel.h 100600 1750 1 65 5102367233 13041 0 ustar iialan bin static char *patchlevel = "xataxx 1.0 patchlevel 1";
xataxx/struct.h 100600 1750 1 1550 5103160766 12301 0 ustar iialan bin #define EMPTY 0
#define WHITE 1
#define BLACK 2
#define OBSTACLE 3
#define TOKS " \t,\n"
#define MIN_BOARD_SIZE 1
#define MAX_BOARD_SIZE 1024
#define X_PIECE_SIZE 32
#define Y_PIECE_SIZE 32
#define TEXT_SIZE 50
#ifndef DATADIR
#define DATADIR "/usr/games/lib/xataxx"
#endif
#define BLACKSTONE perfection ? "dksmiley.xbm":"dkstone.xbm"
#define WHITESTONE perfection ? "ltsmiley.xbm":"ltstone.xbm"
#define BLACKBLOCK "dkblock.xbm"
#define WHITEBLOCK "ltblock.xbm"
#define TITLE "title.xbm"
#define UPCURSOR perfection ? "smilecurs.xbm":"upcursor.xbm"
#define DOWNCURSOR perfection ? "scowlcurs.xbm":"downcursor.xbm"
#define UPMASK perfection ? "smilecursmask.xbm":"upmask.xbm"
#define DOWNMASK perfection ? "scowlcursmask.xbm":"downmask.xbm"
#define BOARDEXT ".xbd"
#define BOARDNUMFILE "boards.num"
#ifndef True
#define True 1
#define False 0
#endif
xataxx/xataxx.man 100600 1750 1 7666 5103160634 12626 0 ustar iialan bin .TH XAtaxx 6 "9 April 1991"
.SH NAME
XAtaxx \- a strategy game
.SH SYNOPIS
.B xataxx
[
.B \-l
.I number
]
[
.B \-j
]
[
.B \-n
]
[
.B \-p
]
[
.B \-d
.I player-two-display
]
.IP \fB\-l:\fR 8
Specifies the number of moves the robot will look ahead. Accepted
values are 0 through 9. A good level is two or three. Searching too
far ahead slows the game horrendously.
.IP \fB\-j:\fR
Zots only the piece moved.
.IP \fB\-n:\fR
Turns off zotting completely.
.IP \fB\-d:\fR
Allows play against a second person instead of the computer. A player
2 display must be specified and player 2 must be xhosted to your
machine. Starting xataxx without a player 2 display automatically
calls the robot player. On a typical Andrew machine his display name
must be entered as machine-name:0. Thus, if Jello Biafra was logged
into armstrong.res.andrew.cmu.edu, and his friend Eeyore was on
circe.weh.andrew.cmu.edu, Eeyore should type 'xhost armstrong.res', and
Jello should type 'xataxx circe.weh:0'.
.IP \fB\-p:\fR
Make it perfect. (obscure Wizard of Time reference)
.SH DESCRIPTION
.sp
\fIXAtaxx\fP is a strategy game based on Ataxx, a popular arcade video
game. It is a game of position and movement. The object is to have
the most pieces of your color on the board at the end of the game.
.SH STARTING
You must be running the X Windowing system to run \fBXAtaxx\fP. When
you start up \fBXAtaxx\fP, you should see a title screen. Clicking on
the title screen causes it to change to the game board. The board you
see should be square, with two black pieces in diagonal corners, two
white pieces in diagonal corners, and variously placed obstacles. At
the bottom of the window should be a listing of the number of pieces,
or globs, each player has.
.SH PLAYING
The game has two types of movement. There is a move, and a jump. To
move a glob, click on a glob of your color and click on an adjacent
empty square. Your piece will split off a new glob to occupy that
square. To jump , click on a piece, and click on an empty space that
is separated from the source glob by one other space. Your piece will
jump to the new spot, over whatever obstacles, friendly pieces, or
enemy pieces are in the way. You may not move or jump onto an obstacle
or another glob. When you land next to a glob or many globs of the
opponents color, your glob will split off pieces and take over those
adjacent globs. If there are no possible movements for a player, he
forefeits his turn. The winner of the game is the person who has the
most globs on the screen when no more movements can be made. The
winner and scores will be displayed at the bottom of the window.
Clicking in the window will reset the board, and waiting will display
the title screen. Waiting even longer will cause the game to go into
demo mode, with two robot players playing each other. Clicking on the
demo game will bring back the title screen.
.SH QUITTING
Hitting 'q' while either the end of a game, the title screen, or a demo
is showing will exit the game.
.SH WARNINGS
The game currently buffers clicks and key presses. Clicking too many
times can put you into unfortunate positions or reset the board to
start before you have a chance to see the scores.
.SH "RECENT CHANGES"
The zotting options have been added.
The bug which caused the game to lock up has been
fixed (it now really understands whose turn it is,
and whether a move is impossible for a player)
Goofy color errors on monochrome suns have been fixed
Various bogosities in the bitmap code have been
wiped from the face of the earth
.br
A smarter robot, and its options have been added.
.SH BUGS
Still could be. Mail to jz1j@andrew.cmu.edu
.SH AUTHORS
\fBCode by\fP:
.nf
.in +1i
Steven Gifford <sg10+@andrew.cmu.edu>
Jim Zelenka <jz1j+@andrew.cmu.edu>
Andrew Plotkin <ap1i+@andrew.cmu.edu>
.in -1i
\fBBitmaps by\fP:
.in +1i
Benjamin Peal <bp14+@andrew.cmu.edu>
Elliott C. Evans <ee0r+@andrew.cmu.edu>
.SH SPECIAL THANKS
\fBBug Tracing\fP:
.nf
.in + 1i
Jay Schmidgall <shmdgljd@rchvmw3.vnet.ibm.com>
xataxx/zot.c 100600 1750 1 2511 4753312234 11561 0 ustar iialan bin #include <stdio.h>
#include <X11/Xlib.h>
#include <math.h>
#include "struct.h"
extern Display *dpy, *odpy, *currdpy;
extern Window win, owin, currwin;
extern GC gc, ogc, currgc;
extern int xsize, ysize, obstacle_color;
extern int botmode;
extern Pixmap mapw, mapb, omapw, omapb, wblock, bblock, owblock, obblock;
extern Bool flumping, wflump, fflump, jflump;
blat(sx, sy, dx, dy, cmaps, cdpy, cscr, cgc, cwin, cmap)
int sx, sy, dx, dy;
Pixmap cmaps;
Display *cdpy;
int cscr;
GC cgc;
Window cwin;
Pixmap cmap;
{
GC bgc;
if (!wflump)
return;
zot(dx, dy, cmaps, cdpy, cscr, cgc, cwin, cmap);
}
zot(dox, doy, cmaps, cdpy, cscr, cgc, cwin, cmap)
int dox, doy;
Pixmap cmaps;
Display *cdpy;
int cscr;
GC cgc;
Window cwin;
Pixmap cmap;
{
int x1, x2, y1, y2, dx, dy, wid, hei;
dx = dox * X_PIECE_SIZE;
dy = doy * Y_PIECE_SIZE;
x1 = dx + X_PIECE_SIZE / 2;
x2 = x1+1;
y1 = dy + Y_PIECE_SIZE / 2;
y2 = x1+1;
wid = x2 - x1;
hei = y2 - y1;
while (x1 > dx || y1 > dy || x2 < (dx+X_PIECE_SIZE-1) || y2 < (dy+Y_PIECE_SIZE-1)) {
XCopyArea(cdpy, cmaps, cmap, cgc, (x1-dx), (y1-dy), wid, hei, x1, y1);
if (x1 > dx) x1--;
if (y1 > dy) y1--;
if (x2 < (dx+X_PIECE_SIZE-1)) x2++;
if (y2 < (dy+Y_PIECE_SIZE-1)) y2++;
wid = x2 - x1;
hei = y2 - y1;
if (fflump)
msec_wait(2000);
redraw_win(cdpy, cwin, cmap, cgc);
}
}
xataxx/Imakefile 100600 1750 1 1132 5351354562 12415 0 ustar iialan bin # Imakefile for XAtaxx
# you may want to uncomment and fill in the next line if you are not installing
# in the system default BINDIR
# BINDIR =
# !%^#*
DEPLIBS =
/* DATADIR is where the boards and bitmaps will be installed */
DATADIR = lib
LOCAL_LIBRARIES = $(XLIB)
SRCS = bits.c board.c colbits.c demo.c display.c main.c nubot.c parse.c zot.c
OBJS = bits.o board.o colbits.o demo.o display.o main.o nubot.o parse.o zot.o
DEFINES = -DDATADIR=\"${DATADIR}\"
ComplexProgramTarget(xataxx)
install:: install.lib
install.lib:
for i in lib//**/*; do \
(set -x; install -c $$i $(DATADIR)); \
done
xataxx/Makefile 100600 1750 1 25344 5351354615 12276 0 ustar iialan bin # Makefile generated by imake - do not edit!
# $XConsortium: imake.c,v 1.65 91/07/25 17:50:17 rws Exp $
# -------------------------------------------------------------------------
# Makefile generated from "Imake.tmpl" and </tmp/IIf.a00747>
# $Header: /home/x_cvs/mit/config/Imake.tmpl,v 1.8 1993/01/08 10:11:36 dawes Exp $
# $XConsortium: Imake.tmpl,v 1.139 91/09/16 08:52:48 rws Exp $
#
# Platform-specific parameters may be set in the appropriate <vendor>.cf
# configuration files. Site-specific parameters should be set in the file
# site.def. Full rebuilds are recommended if any parameters are changed.
#
# If your C preprocessor does not define any unique symbols, you will need
# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing
# "make World" the first time).
#
# -------------------------------------------------------------------------
# site-specific configuration parameters that need to come before
# the platform-specific parameters - edit site.def to change
# $Header: /home/x_cvs/mit/config/site.def,v 1.52 1993/02/08 22:11:12 dawes Exp $
# site: $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $
# -------------------------------------------------------------------------
# platform-specific configuration parameters - edit x386.cf to change
# $Header: /home/x_cvs/mit/config/x386.cf,v 1.59 1993/02/08 22:11:15 dawes Exp $
# platform: $XConsortium: x386.cf,v 1.7 91/08/16 19:30:10 gildea Exp $
# operating system: Linux (Usenet)
# -------------------------------------------------------------------------
# site-specific configuration parameters that go after
# the platform-specific parameters - edit site.def to change
# $Header: /home/x_cvs/mit/config/site.def,v 1.52 1993/02/08 22:11:12 dawes Exp $
# site: $XConsortium: site.def,v 1.2 91/07/30 20:26:44 rws Exp $
SHELL = /bin/sh
TOP = .
CURRENT_DIR = .
AR = ar clq
BOOTSTRAPCFLAGS =
CC = gcc -fwritable-strings -fomit-frame-pointer
AS = as
LEX = flex
YACC = bison -y
COMPRESS = compress
CPP = /lib/cpp $(STD_CPP_DEFINES)
PREPROCESSCMD = /lib/cpp $(STD_CPP_DEFINES)
INSTALL = install
LD = ld
LINT = lint
LINTLIBFLAG = -C
LINTOPTS = -axz
LN = ln -s
MAKE = make
MV = mv
CP = cp
RANLIB = ranlib
RANLIBINSTFLAGS =
RM = rm -f
TROFF = psroff
MSMACROS = -ms
TBL = tbl
EQN = eqn
STD_INCLUDES =
STD_CPP_DEFINES = -traditional -D_POSIX_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE -Dlinux
STD_DEFINES = -D_POSIX_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE -Dlinux
EXTRA_LOAD_FLAGS =
EXTRA_LIBRARIES =
TAGS = ctags
PROTO_DEFINES = -DFUNCPROTO=11 -DNARROWPROTO
INSTPGMFLAGS = -s
INSTBINFLAGS = -m 0755
INSTUIDFLAGS = -m 4755
INSTLIBFLAGS = -m 0644
INSTINCFLAGS = -m 0444
INSTMANFLAGS = -m 0444
INSTDATFLAGS = -m 0444
INSTKMEMFLAGS = -m 4755
PROJECTROOT = /usr/X386
TOP_INCLUDES = -I$(INCROOT)
CDEBUGFLAGS = -O2
CCOPTIONS = -m486 -DNO_ASM
ANSICCOPTIONS =
ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(STD_INCLUDES)
ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(DEFINES)
CFLAGS = $(ANSICCOPTIONS) $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES)
LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES)
LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
LDOPTIONS = $(ANSICCOPTIONS) $(CDEBUGFLAGS) $(CCOPTIONS) $(LOCAL_LDFLAGS) -L$(USRLIBDIR)
LDCOMBINEFLAGS = -r
DEPENDFLAGS =
MACROFILE = x386.cf
RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut
IMAKE_DEFINES =
IRULESRC = $(CONFIGDIR)
IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules $(IRULESRC)/Project.tmpl $(IRULESRC)/site.def $(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES)
# -------------------------------------------------------------------------
# $Header: /home/x_cvs/mit/config/Project.tmpl,v 1.10 1993/02/06 05:14:49 dawes Exp $
# X Window System Build Parameters
# $XConsortium: Project.tmpl,v 1.138.1.1 92/11/11 09:49:19 rws Exp $
# -------------------------------------------------------------------------
# X Window System make variables; this need to be coordinated with rules
PATHSEP = /
USRLIBDIR = /usr/X386/lib
BINDIR = /usr/X386/bin
INCROOT = /usr/X386/include
BUILDINCROOT = $(TOP)
BUILDINCDIR = $(BUILDINCROOT)/X11
BUILDINCTOP = ..
INCDIR = $(INCROOT)/X11
ADMDIR = /usr/adm
LIBDIR = $(USRLIBDIR)/X11
CONFIGDIR = $(LIBDIR)/config
LINTLIBDIR = $(USRLIBDIR)/lint
FONTDIR = $(LIBDIR)/fonts
XINITDIR = $(LIBDIR)/xinit
XDMDIR = $(LIBDIR)/xdm
TWMDIR = $(LIBDIR)/twm
MANPATH = /usr/X386/man
MANSOURCEPATH = $(MANPATH)/man
MANSUFFIX = 1x
LIBMANSUFFIX = 3x
MANDIR = $(MANSOURCEPATH)1
LIBMANDIR = $(MANSOURCEPATH)3
NLSDIR = $(LIBDIR)/nls
PEXAPIDIR = $(LIBDIR)/PEX
XAPPLOADDIR = $(LIBDIR)/app-defaults
FONTCFLAGS = -t
LINKKITDIR = $(USRLIBDIR)/Server
INSTAPPFLAGS = $(INSTDATFLAGS)
IMAKE = imake
DEPEND = makedepend
RGB = rgb
FONTC = bdftopcf
MKFONTDIR = mkfontdir
MKDIRHIER = /bin/sh $(BINDIR)/mkdirhier
CONFIGSRC = $(TOP)/config
DOCUTILSRC = $(TOP)/doc/util
CLIENTSRC = $(TOP)/clients
DEMOSRC = $(TOP)/demos
LIBSRC = $(TOP)/lib
FONTSRC = $(TOP)/fonts
INCLUDESRC = $(TOP)/X11
SERVERSRC = $(TOP)/server
UTILSRC = $(TOP)/util
SCRIPTSRC = $(UTILSRC)/scripts
EXAMPLESRC = $(TOP)/examples
CONTRIBSRC = $(TOP)/../contrib
DOCSRC = $(TOP)/doc
RGBSRC = $(TOP)/rgb
DEPENDSRC = $(SCRIPTSRC)
IMAKESRC = $(CONFIGSRC)
XAUTHSRC = $(LIBSRC)/Xau
XLIBSRC = $(LIBSRC)/X
XMUSRC = $(LIBSRC)/Xmu
TOOLKITSRC = $(LIBSRC)/Xt
AWIDGETSRC = $(LIBSRC)/Xaw
OLDXLIBSRC = $(LIBSRC)/oldX
XDMCPLIBSRC = $(LIBSRC)/Xdmcp
BDFTOSNFSRC = $(FONTSRC)/bdftosnf
BDFTOSNFSRC = $(FONTSRC)/clients/bdftosnf
BDFTOPCFSRC = $(FONTSRC)/clients/bdftopcf
MKFONTDIRSRC = $(FONTSRC)/clients/mkfontdir
FSLIBSRC = $(FONTSRC)/lib/fs
FONTSERVERSRC = $(FONTSRC)/server
EXTENSIONSRC = $(TOP)/extensions
XILIBSRC = $(EXTENSIONSRC)/lib/xinput
PEXLIBSRC = $(EXTENSIONSRC)/lib/PEXlib
PHIGSLIBSRC = $(EXTENSIONSRC)/lib/PEX
DEPEXTENSIONLIB = $(USRLIBDIR)/libXext.a
EXTENSIONLIB = -lXext
DEPXLIB = $(DEPEXTENSIONLIB) $(USRLIBDIR)/libX11.a
XLIB = $(EXTENSIONLIB) -lX11
DEPXAUTHLIB = $(USRLIBDIR)/libXau.a
XAUTHLIB = -lXau
DEPXDMCPLIB = $(USRLIBDIR)/libXdmcp.a
XDMCPLIB = -lXdmcp
DEPXMULIB = $(USRLIBDIR)/libXmu.a
XMULIB = -lXmu
DEPOLDXLIB = $(USRLIBDIR)/liboldX.a
OLDXLIB = -loldX
DEPXTOOLLIB = $(USRLIBDIR)/libXt.a
XTOOLLIB = -lXt
DEPXAWLIB = $(USRLIBDIR)/libXaw.a
XAWLIB = -lXaw
DEPXILIB = $(USRLIBDIR)/libXi.a
XILIB = -lXi
DEPPEXLIB = $(USRLIBDIR)/libPEX5.a
PEXLIB = -lPEX5
DEPPHIGSLIB = $(USRLIBDIR)/libphigs.a
PHIGSLIB = -lphigs
DEPXBSDLIB = $(USRLIBDIR)/libXbsd.a
XBSDLIB = -lXbsd
LINTEXTENSIONLIB = $(LINTLIBDIR)/llib-lXext.ln
LINTXLIB = $(LINTLIBDIR)/llib-lX11.ln
LINTXMU = $(LINTLIBDIR)/llib-lXmu.ln
LINTXTOOL = $(LINTLIBDIR)/llib-lXt.ln
LINTXAW = $(LINTLIBDIR)/llib-lXaw.ln
LINTXI = $(LINTLIBDIR)/llib-lXi.ln
LINTPEX = $(LINTLIBDIR)/llib-lPEX5.ln
LINTPHIGS = $(LINTLIBDIR)/llib-lphigs.ln
DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
DEPLIBS1 = $(DEPLIBS)
DEPLIBS2 = $(DEPLIBS)
DEPLIBS3 = $(DEPLIBS)
# -------------------------------------------------------------------------
# Imake rules for building libraries, programs, scripts, and data files
# $Header: /home/x_cvs/mit/config/Imake.rules,v 1.8 1993/02/03 13:01:58 dawes Exp $
# rules: $XConsortium: Imake.rules,v 1.123 91/09/16 20:12:16 rws Exp $
# -------------------------------------------------------------------------
# start of Imakefile
# Imakefile for XAtaxx
# you may want to uncomment and fill in the next line if you are not installing
# in the system default BINDIR
# BINDIR =
# !%^#*
DEPLIBS =
DATADIR = lib
LOCAL_LIBRARIES = $(XLIB)
SRCS = bits.c board.c colbits.c demo.c display.c main.c nubot.c parse.c zot.c
OBJS = bits.o board.o colbits.o demo.o display.o main.o nubot.o parse.o zot.o
DEFINES = -DDATADIR=\"${DATADIR}\"
PROGRAM = xataxx
all:: xataxx
xataxx: $(OBJS) $(DEPLIBS)
$(RM) $@
$(CC) -o $@ $(OBJS) $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS)
install:: xataxx
@if [ -d $(DESTDIR)$(BINDIR) ]; then set +x; \
else (set -x; $(MKDIRHIER) $(DESTDIR)$(BINDIR)); fi
$(INSTALL) -c $(INSTPGMFLAGS) xataxx $(DESTDIR)$(BINDIR)
install.man:: xataxx.man
@if [ -d $(DESTDIR)$(MANDIR) ]; then set +x; \
else (set -x; $(MKDIRHIER) $(DESTDIR)$(MANDIR)); fi
$(INSTALL) -c $(INSTMANFLAGS) xataxx.man $(DESTDIR)$(MANDIR)/xataxx.$(MANSUFFIX)
depend::
$(DEPEND) $(DEPENDFLAGS) -s "# DO NOT DELETE" -- $(ALLDEFINES) -- $(SRCS)
lint:
$(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
lint1:
$(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
clean::
$(RM) $(PROGRAM)
install:: install.lib
install.lib:
for i in lib/*; do (set -x; install -c $$i $(DATADIR)); done
# -------------------------------------------------------------------------
# common rules for all Makefiles - do not edit
emptyrule::
clean::
$(RM_CMD) "#"*
Makefile::
-@if [ -f Makefile ]; then set -x; \
$(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
else exit 0; fi
$(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
tags::
$(TAGS) -w *.[ch]
$(TAGS) -xw *.[ch] > TAGS
# -------------------------------------------------------------------------
# empty rules for directories that do not have SUBDIRS - do not edit
install::
@echo "install in $(CURRENT_DIR) done"
install.man::
@echo "install.man in $(CURRENT_DIR) done"
install.linkkit::
@echo "install.linkkit in $(CURRENT_DIR) done"
Makefiles::
includes::
# -------------------------------------------------------------------------
# dependencies generated by makedepend