Filewatcher File Search
FTP Search
  
Directory (beta)
  
Content Search (beta)
   
pkg://xattax-1.0-2.src.rpm:29168/xattax.tar.gz  info  downloads

xataxx/ 40711   1750      1           0  5553057043  10510 5ustar  iialanbinxataxx/README100600   1750      1        2371  5553057035  11471 0ustar  iialanbin
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/TODO100600   1750      1        1221  5010723474  11265 0ustar  iialanbinThese 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.c100600   1750      1       10654  5103153007  11724 0ustar  iialanbin#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.c100600   1750      1       25172  5100746512  12061 0ustar  iialanbin#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.num100600   1750      1           4  4753312176  12514 0ustar  iialanbin29

xataxx/colbits.c100600   1750      1       13006  5103153264  12421 0ustar  iialanbin#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.c100600   1750      1        2352  4753312202  11667 0ustar  iialanbin#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.c100600   1750      1       25252  5103155666  12445 0ustar  iialanbin#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.format100600   1750      1         111  5010725660  13122 0ustar  iialanbin	Xsize, Ysize

	Xobstruct, Yobstruct (Positions of obstructions)
	......
xataxx/lib/ 40711   1750      1           0  5351354060  11251 5ustar  iialanbinxataxx/lib/1.xbd100600   1750      1          66  5010720136  12140 0ustar  iialanbin7 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.xbd100600   1750      1          56  5010720140  12212 0ustar  iialanbin7 7

2 0
4 0
2 2
4 2
1 3
5 3
2 4
4 4
2 6
4 6

xataxx/lib/11.xbd100600   1750      1          52  5010720140  12207 0ustar  iialanbin7 7

3 1
3 2
1 3
2 3
3 3
4 3
5 3
3 4
3 5

xataxx/lib/12.xbd100600   1750      1         106  5010720140  12230 0ustar  iialanbin7 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.xbd100600   1750      1          66  5010720142  12220 0ustar  iialanbin7 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.xbd100600   1750      1          66  5010720142  12221 0ustar  iialanbin7 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.xbd100600   1750      1          26  5010720142  12216 0ustar  iialanbin7 7

1 1
5 5
1 5
5 1

xataxx/lib/16.xbd100600   1750      1          66  5010720142  12223 0ustar  iialanbin7 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.xbd100600   1750      1          32  5010720142  12215 0ustar  iialanbin7 7

3 2
2 3
3 3
4 3
3 4

xataxx/lib/18.xbd100600   1750      1          26  5010720142  12221 0ustar  iialanbin7 7

3 2
2 3
4 3
3 4

xataxx/lib/19.xbd100600   1750      1          46  5010720142  12224 0ustar  iialanbin7 7

3 1
3 2
1 3
2 3
4 3
5 3
3 4
3 5

xataxx/lib/2.xbd100600   1750      1          76  5010720142  12137 0ustar  iialanbin7 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.xbd100600   1750      1         106  5010720142  12231 0ustar  iialanbin7 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.xbd100600   1750      1          66  5010720142  12217 0ustar  iialanbin7 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.xbd100600   1750      1          32  5010720142  12211 0ustar  iialanbin7 7

3 1
1 3
3 3
5 3
3 5

xataxx/lib/23.xbd100600   1750      1          52  5010720142  12214 0ustar  iialanbin7 7

1 1
3 1
5 1
1 3
3 3
5 3
1 5
3 5
5 5

xataxx/lib/24.xbd100600   1750      1           5  5010720142  12173 0ustar  iialanbin7 7

xataxx/lib/25.xbd100600   1750      1          32  5010720144  12216 0ustar  iialanbin7 7

2 2
4 2
3 3
2 4
4 4

xataxx/lib/26.xbd100600   1750      1          52  5010720144  12221 0ustar  iialanbin7 7

1 1
5 1
2 2
4 2
3 3
2 4
4 4
1 5
5 5

xataxx/lib/27.xbd100600   1750      1          66  5010720144  12227 0ustar  iialanbin7 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.xbd100600   1750      1         146  5010720144  12247 0ustar  iialanbin7 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.xbd100600   1750      1          46  5010720144  12227 0ustar  iialanbin7 7

1 1
5 1
2 2
4 2
2 4
4 4
1 5
5 5

xataxx/lib/3.xbd100600   1750      1          52  5010720144  12134 0ustar  iialanbin7 7

1 0
5 0
0 1
6 1
3 3
0 5
6 5
1 6
5 6

xataxx/lib/30.xbd100600   1750      1          46  5010720144  12217 0ustar  iialanbin7 7

3 0
2 1
4 1
0 3
6 3
2 5
4 5
3 6

xataxx/lib/31.xbd100600   1750      1          26  5010720144  12216 0ustar  iialanbin7 7

3 0
0 3
6 3
3 6

xataxx/lib/32.xbd100600   1750      1          26  5010720144  12217 0ustar  iialanbin7 7

3 1
1 3
5 3
3 5

xataxx/lib/33.xbd100600   1750      1         116  5010720146  12242 0ustar  iialanbin7 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.xbd100600   1750      1         102  5010720146  12236 0ustar  iialanbin7 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.xbd100600   1750      1         102  5010720146  12237 0ustar  iialanbin7 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.xbd100600   1750      1          56  5010720146  12143 0ustar  iialanbin7 7

2 0
4 0
2 1
4 1
0 3
6 3
2 5
4 5
2 6
4 6

xataxx/lib/5.xbd100600   1750      1          46  5010720146  12143 0ustar  iialanbin7 7

3 0
3 1
0 3
1 3
5 3
6 3
3 5
3 6

xataxx/lib/6.xbd100600   1750      1          46  5010720146  12144 0ustar  iialanbin7 7

3 1
2 2
4 2
1 3
5 3
2 4
4 4
3 5

xataxx/lib/7.xbd100600   1750      1          46  5010720146  12145 0ustar  iialanbin7 7

2 0
4 0
0 2
6 2
0 4
6 4
2 6
4 6

xataxx/lib/8.xbd100600   1750      1          66  5010720150  12143 0ustar  iialanbin7 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.xbd100600   1750      1          46  5010720150  12142 0ustar  iialanbin7 7

2 1
4 1
1 2
5 2
1 4
5 4
2 5
4 5

xataxx/lib/boards.num100600   1750      1           4  5010720150  13240 0ustar  iialanbin35

xataxx/lib/clearstone.xbm100600   1750      1        1556  5010720150  14211 0ustar  iialanbin#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.xbm100600   1750      1        1564  5010720150  13462 0ustar  iialanbin#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.xbm100600   1750      1        1653  5010720150  13671 0ustar  iialanbin#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.xbm100600   1750      1        1564  5010720150  13520 0ustar  iialanbin#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.xbm100600   1750      1         517  5010720150  14233 0ustar  iialanbin#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.xbm100600   1750      1         505  5010720150  13646 0ustar  iialanbin#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.xbm100600   1750      1        1564  5010720152  13505 0ustar  iialanbin#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.xbm100600   1750      1        1564  5010720152  13715 0ustar  iialanbin#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.xbm100600   1750      1        1564  5010720152  13543 0ustar  iialanbin#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.xbm100600   1750      1         512  5010720152  14047 0ustar  iialanbin#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 0ustar  iialanbin#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.xbm100600   1750      1         512  5010720152  14031 0ustar  iialanbin#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 0ustar  iialanbin#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.xbm100600   1750      1        1556  5010720152  13204 0ustar  iialanbin#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.xbm100600   1750      1        1660  5010720152  14054 0ustar  iialanbin#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.xbm100600   1750      1      114636  5010720154  13243 0ustar  iialanbin#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,