v01i079: Sunclock - a world-view of the day
Charles Mcgrew
mcgrew at dartagnan.rutgers.edu
Fri Oct 20 09:07:37 AEST 1989
Submitted-by: kelvin at acad.uu.net (John Walker)
Posting-number: Volume 1, Issue 79
Archive-name: sunclock
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
# README
# Makefile
# sunclock.c
# sunclock.h
# sunclock.1
# This archive created: Wed Aug 23 20:26:38 1989
export PATH; PATH=/bin:$PATH
echo shar: extracting "'README'" '(951 characters)'
if test -f 'README'
then
echo shar: will not over-write existing file "'README'"
else
cat << \SHAR_EOF > 'README'
Sunclock is a SunView program that displays a map of the Earth,
showing the portion illuminated by the Sun at the current time,
properly corrected for the season. The program initially comes up
iconic (126x63) and can be opened into a larger (640x320) pixel map.
A SunView menu allows animated displays that show the passage of day
and night, the changes in the seasons, and even the precession of the
equinoxes as year follows year.
I saw a program like this running under NeWS, and couldn't sleep until
I had one for my SunView screen. It seems to work on Sun 3, 4, and
386i architectures, on any SunView later than 3.5. It's been tested
most recently on a Sun 3/260 running SunOS 4.0.3.
Enjoy!
Author:
John Walker
Autodesk, Inc.
2320 Marinship Way
Sausalito, CA 94965
USA
{sun,well,uunet}!acad!kelvin
or: kelvin at acad.uu.net
Fax: (415) 389-9418
Voice: (415) 332-2344 Ext. 2829
SHAR_EOF
fi # end of overwriting check
echo shar: extracting "'Makefile'" '(432 characters)'
if test -f 'Makefile'
then
echo shar: will not over-write existing file "'Makefile'"
else
cat << \SHAR_EOF > 'Makefile'
# Make instructions for the Sun clock program
RELFILES = README Makefile sunclock.c sunclock.h sunclock.1
LIBRARIES = -lsuntool -lsunwindow -lpixrect -lm
sunclock: sunclock.c sunclock.h
cc -O sunclock.c -o sunclock $(LIBRARIES)
strip sunclock
clean:
rm -f sunclock
rm -f *.bak
rm -f core cscope.out
manpage:
nroff -man sunclock.1 | more
lint:
lint sunclock.c $(LIBRARIES)
shar:
shar -b -v $(RELFILES) >sunclock.shar
SHAR_EOF
fi # end of overwriting check
echo shar: extracting "'sunclock.c'" '(19862 characters)'
if test -f 'sunclock.c'
then
echo shar: will not over-write existing file "'sunclock.c'"
else
cat << \SHAR_EOF > 'sunclock.c'
/*
Sun clock
Designed and implemented by John Walker in November of 1988.
Version for the Sun Workstation.
The algorithm used to calculate the position of the Sun is given in
Chapter 18 of:
"Astronomical Formulae for Calculators" by Jean Meeus, Third Edition,
Richmond: Willmann-Bell, 1985. This book can be obtained from:
Willmann-Bell
P.O. Box 35025
Richmond, VA 23235
USA
Phone: (804) 320-7016
This program was written by:
John Walker
Autodesk, Inc.
2320 Marinship Way
Sausalito, CA 94965
USA
Fax: (415) 389-9418
Voice: (415) 332-2344 Ext. 2829
Usenet: {sun,well,uunet}!acad!kelvin
or: kelvin at acad.uu.net
This program is in the public domain: "Do what thou wilt shall be the
whole of the law". I'd appreciate receiving any bug fixes and/or
enhancements, which I'll incorporate in future versions of the
program. Please leave the original attribution information intact so
that credit and blame may be properly apportioned.
Revision history:
1.0 12/21/89 Initial version.
8/24/89 Finally got around to submitting.
*/
#include <stdio.h>
#include <ctype.h>
#include <math.h>
#include <sys/types.h>
#include <sys/timeb.h>
#include <assert.h>
#include <suntool/sunview.h>
#include <suntool/canvas.h>
#include <suntool/scrollbar.h>
#include <pixrect/pixrect_hs.h>
#define abs(x) ((x) < 0 ? (-(x)) : x) /* Absolute value */
#define sgn(x) (((x) < 0) ? -1 : ((x) > 0 ? 1 : 0)) /* Extract sign */
#define dtr(x) ((x) * (PI / 180.0)) /* Degree->Radian */
#define rtd(x) ((x) / (PI / 180.0)) /* Radian->Degree */
#define fixangle(a) ((a) - 360.0 * (floor((a) / 360.0))) /* Fix angle */
#define V (void)
#define PI 3.14159265358979323846
#define TERMINC 100 /* Circle segments for terminator */
#define PROJINT (60 * 10) /* Frequency of seasonal recalculation
in seconds. */
#define CXDOTS 126 /* Closed window width */
#define CYDOTS 63 /* Closed window height */
#define IXDOTS 128 /* Total icon width */
#define IYDOTS 74 /* Total icon height */
#define OXDOTS 640 /* Open window width */
#define OYDOTS 320 /* Open window height */
/* Globals imported */
extern char *getenv(), *timezone(), *malloc(), *sprintf();
extern time_t time();
#ifdef lint
extern void pw_batch();
#endif
/* Local variables */
static int xdots, ydots; /* Screen size */
#include "sunclock.h" /* Icon and open window bitmaps */
static char *wdname[] = { /* Week day names */
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
};
static Frame bf;
static Pixwin *fpw, *cpw, *apw;
static Pixfont *tinyfont;
static Pixfont *regfont;
static int onoon = -1;
static short *wtab, *wtab1, *wtabs;
static struct timeb tbtp;
static struct itimerval notif_timer = {{1, 0}, {1, 0}};
static struct itimerval quick_timer = {{0, 500000}, {0, 500000}};
static Menu actmenu;
static int fdate = FALSE, idir = 1, animate = FALSE;
static long lincr = 60;
static long cctime;
/* Forward procedures */
double jtime(), gmst();
void drawterm(), sunpos(), projillum(), moveterm(), outdiff(), usage();
/* UPDIMAGE -- Update current displayed image. */
static void updimage(istimer)
int istimer;
{
int i, xl, isclosed;
struct tm *ct;
char tbuf[80];
double jt, sunra, sundec, sunrv, sunlong, gt;
struct tm lt;
static int lisec = 61; /* Last iconic seconds */
static long lctime = 0; /* Last full calculation time */
isclosed = (int) window_get(bf, FRAME_CLOSED);
if (!istimer) {
if (isclosed) {
xdots = CXDOTS;
ydots = CYDOTS;
V pw_writebackground(fpw, 0, 0, IXDOTS, IYDOTS, PIX_SRC);
V pw_vector(fpw, 0, 0, IXDOTS - 1, 0, PIX_SRC, 1);
V pw_vector(fpw, IXDOTS - 1, 0, IXDOTS - 1,
IYDOTS - 1, PIX_SRC, 1);
V pw_vector(fpw, IXDOTS - 1, IYDOTS - 1, 0,
IYDOTS - 1, PIX_SRC, 1);
V pw_vector(fpw, 0, IYDOTS - 1, 0, 0, PIX_SRC, 1);
V pw_rop(fpw, 1, 1, micon.pr_size.x, micon.pr_size.y,
PIX_NOT(PIX_SRC),
&micon, 0, 0);
} else {
xdots = OXDOTS;
ydots = OYDOTS;
V pw_rop(cpw, 0, 0, bimage.pr_size.x, bimage.pr_size.y,
PIX_NOT(PIX_SRC),
&bimage, 0, 0);
}
}
/* If this is a full repaint of the window, force complete
recalculation. */
if (!istimer) {
lctime = 0;
onoon = -1;
lisec = 61;
for (i = 0; i < OYDOTS; i++) {
wtab1[i] = -1;
}
}
if (fdate) {
if (animate)
cctime += lincr;
if (cctime < 0)
cctime = 0;
} else {
V time(&cctime);
}
lt = *localtime(&cctime);
/* Special case to reduce overhead whilst iconic: if we're
only showing the icon, update the display only once per
minute, detected by the fact that the current seconds
reading is less than that of the last update. The icon
shows only hours and minutes, and is sufficiently small
that once-a-minute updates are plenty to keep the picture
in sync. */
if (isclosed && !fdate && (lt.tm_sec > lisec))
return;
ct = gmtime(&cctime);
jt = jtime(ct);
sunpos(jt, FALSE, &sunra, &sundec, &sunrv, &sunlong);
gt = gmst(jt);
/* Projecting the illumination curve for the current seasonal
instant is costly. If we're running in real time, only do
it every PROJINT seconds. */
if (fdate || !istimer || ((cctime - lctime) > PROJINT)) {
projillum(wtab, xdots, ydots, sundec);
wtabs = wtab;
wtab = wtab1;
wtab1 = wtabs;
lctime = cctime;
}
sunlong = fixangle(180.0 + (sunra - (gt * 15)));
xl = sunlong * (xdots / 360.0);
/* If the subsolar point has moved at least one pixel, update
the illuminated area on the screen. */
if (fdate || !istimer || (onoon != xl)) {
apw = isclosed ? fpw : cpw;
pw_batch_on(apw);
moveterm(wtab1, xl, wtab, onoon, xdots, ydots);
pw_batch_off(apw);
onoon = xl;
}
if (isclosed) {
/* Display time in closed window */
V sprintf(tbuf, "%02d:%02d %s %s %02d/%02d",
lt.tm_hour, lt.tm_min,
timezone(tbtp.timezone, lt.tm_isdst),
wdname[lt.tm_wday],
lt.tm_mon + 1, lt.tm_mday);
V pw_text(fpw, 8, IYDOTS - 3, PIX_SRC, tinyfont, tbuf);
lisec = lt.tm_sec;
} else {
/* Display time in open window */
V sprintf(tbuf,
" %02d:%02d:%02d %s %s %02d/%02d/%02d %02d:%02d:%02d UTC %02d/%02d/%02d ",
lt.tm_hour, lt.tm_min, lt.tm_sec,
timezone(tbtp.timezone, lt.tm_isdst),
wdname[lt.tm_wday],
lt.tm_mon + 1, lt.tm_mday, (lt.tm_year % 100),
ct->tm_hour, ct->tm_min, ct->tm_sec,
ct->tm_mon + 1, ct->tm_mday, (ct->tm_year % 100));
V pw_text(cpw, 85, ydots - 6, PIX_SRC, regfont, tbuf);
}
}
/* Frame event processor */
static frame_event_proc(frame, event, arg, type)
Frame frame;
Event *event;
Notify_arg arg;
Notify_event_type type;
{
switch (event_id(event)) {
case WIN_REPAINT:
if (window_get(bf, FRAME_CLOSED)) {
updimage(FALSE);
} else {
xdots = OXDOTS;
ydots = OYDOTS;
updimage(FALSE);
}
break;
default:
window_default_event_func(frame, event, arg, type);
break;
}
}
/* Timer notification procedure. */
/*ARGSUSED*/
static Notify_value timer_proc(frame, which)
Notify_client frame;
int which;
{
updimage(TRUE);
return(NOTIFY_DONE);
}
/* CEVENT -- Canvas event handler */
/*ARGSUSED*/
static void cevent(window, event, arg)
Window window;
Event *event;
caddr_t arg;
{
#define mdis(x,y) V menu_set(menu_get(actmenu,MENU_NTH_ITEM,x),\
MENU_INACTIVE,y,0)
mdis(1, idir > 0);
mdis(2, idir < 0);
mdis(11, !fdate);
switch (event_id(event)) {
case MS_RIGHT:
switch (menu_show(actmenu, window, event, 0)) {
case 1: /* Forward */
if (idir < 0)
lincr = -lincr;
idir = 1;
break;
case 2: /* Backward */
if (idir > 0)
lincr = -lincr;
idir = -1;
break;
case 4: /* Hour */
cctime += (lincr = 3600L * idir);
fdate = TRUE;
break;
case 5: /* Day */
cctime += (lincr = 86400L * idir);
fdate = TRUE;
break;
case 6: /* Week */
cctime += (lincr = 86400L * 7 * idir);
fdate = TRUE;
break;
case 7: /* Month */
cctime += (lincr = 86400L * 30 * idir);
fdate = TRUE;
break;
case 8: /* Year */
cctime += (lincr = 86400L * 365L * idir);
fdate = TRUE;
break;
case 10: /* Animate */
animate = fdate = TRUE;
V notify_set_itimer_func(bf, timer_proc, ITIMER_REAL,
&quick_timer, (struct itimerval *) NULL);
break;
case 11: /* Real time */
animate = fdate = FALSE;
V notify_set_itimer_func(bf, timer_proc, ITIMER_REAL,
¬if_timer, (struct itimerval *) NULL);
updimage(FALSE);
break;
case 13: /* Quit */
V window_done(window);
break;
}
}
}
/* MAIN -- Main program */
void main(argc, argv)
int argc;
char *argv[];
{
int i;
char *op, opt;
Icon icon;
Canvas canvas;
if (getenv("WINDOW_PARENT") == NULL) {
V fprintf(stderr, "%s must be run from within Suntools\n", argv[0]);
exit(1);
}
/* Process command line options. */
for (i = 1; i < argc; i++) {
op = argv[i];
if (*op == '-') {
opt = *(++op);
if (islower(opt))
opt = toupper(opt);
switch (opt) {
case 'U':
case '?':
usage();
exit(0);
}
}
}
icon = icon_create(ICON_WIDTH, IXDOTS,
ICON_HEIGHT, IYDOTS, ICON_LABEL, "", 0);
bf = window_create((Window) NULL, FRAME,
FRAME_LABEL,
"Sun Clock by John Walker, Autodesk, Inc. v1.0",
FRAME_NO_CONFIRM, TRUE,
FRAME_ARGC_PTR_ARGV, &argc, argv,
FRAME_ICON, icon,
FRAME_CLOSED, TRUE,
WIN_EVENT_PROC, frame_event_proc,
0);
canvas = window_create(bf, CANVAS,
WIN_EVENT_PROC, cevent,
0);
V window_set(bf,
WIN_CONSUME_PICK_EVENTS,
WIN_NO_EVENTS, WIN_MOUSE_BUTTONS, LOC_DRAG, 0,
WIN_CONSUME_KBD_EVENT, WIN_LEFT_KEYS,
0);
V window_set(canvas,
CANVAS_AUTO_EXPAND, FALSE,
CANVAS_AUTO_SHRINK, FALSE,
CANVAS_HEIGHT, OYDOTS,
CANVAS_WIDTH, OXDOTS,
WIN_HEIGHT, OYDOTS,
WIN_WIDTH, OXDOTS,
0);
window_fit(canvas);
window_fit(bf);
fpw = (Pixwin *) window_get(bf, WIN_PIXWIN);
cpw = canvas_pixwin(canvas);
tinyfont = pf_open("/usr/lib/fonts/fixedwidthfonts/screen.r.7");
regfont = pf_open("/usr/lib/fonts/fixedwidthfonts/screen.b.14");
actmenu = menu_create(MENU_STRINGS,
"Forward",
"Backward",
"",
"Hour",
"Day",
"Week",
"Month",
"Year",
"",
"Animate",
"Real time",
"",
"Quit",
0, 0);
mdis(3, TRUE); /* Disable blank slots in menu */
mdis(9, TRUE);
mdis(12, TRUE);
xdots = OXDOTS;
ydots = OYDOTS;
wtab = (short *) malloc((unsigned int) ydots * sizeof(short));
wtab1 = (short *) malloc((unsigned int) ydots * sizeof(short));
ftime(&tbtp);
V notify_set_itimer_func(bf, timer_proc, ITIMER_REAL,
¬if_timer, (struct itimerval *) NULL);
window_main_loop(bf);
exit(0);
}
/* JDATE -- Convert internal GMT date and time to Julian day
and fraction. */
static long jdate(t)
struct tm *t;
{
long c, m, y;
y = t->tm_year + 1900;
m = t->tm_mon + 1;
if (m > 2)
m = m - 3;
else {
m = m + 9;
y--;
}
c = y / 100L; /* Compute century */
y -= 100L * c;
return t->tm_mday + (c * 146097L) / 4 + (y * 1461L) / 4 +
(m * 153L + 2) / 5 + 1721119L;
}
/* JTIME -- Convert internal GMT date and time to astronomical
Julian time (i.e. Julian date plus day fraction,
expressed as a double). */
static double jtime(t)
struct tm *t;
{
return (jdate(t) - 0.5) +
(((long) t->tm_sec) +
60L * (t->tm_min + 60L * t->tm_hour)) / 86400.0;
}
/* KEPLER -- Solve the equation of Kepler. */
static double kepler(m, ecc)
double m, ecc;
{
double e, delta;
#define EPSILON 1E-6
e = m = dtr(m);
do {
delta = e - ecc * sin(e) - m;
e -= delta / (1 - ecc * cos(e));
} while (abs(delta) > EPSILON);
return e;
}
/* SUNPOS -- Calculate position of the Sun. JD is the Julian date
of the instant for which the position is desired and
APPARENT should be nonzero if the apparent position
(corrected for nutation and aberration) is desired.
The Sun's co-ordinates are returned in RA and DEC,
both specified in degrees (divide RA by 15 to obtain
hours). The radius vector to the Sun in astronomical
units is returned in RV and the Sun's longitude (true
or apparent, as desired) is returned as degrees in
SLONG. */
static void sunpos(jd, apparent, ra, dec, rv, slong)
double jd;
int apparent;
double *ra, *dec, *rv, *slong;
{
double t, t2, t3, l, m, e, ea, v, theta, omega,
eps;
/* Time, in Julian centuries of 36525 ephemeris days,
measured from the epoch 1900 January 0.5 ET. */
t = (jd - 2415020.0) / 36525.0;
t2 = t * t;
t3 = t2 * t;
/* Geometric mean longitude of the Sun, referred to the
mean equinox of the date. */
l = fixangle(279.69668 + 36000.76892 * t + 0.0003025 * t2);
/* Sun's mean anomaly. */
m = fixangle(358.47583 + 35999.04975*t - 0.000150*t2 - 0.0000033*t3);
/* Eccentricity of the Earth's orbit. */
e = 0.01675104 - 0.0000418 * t - 0.000000126 * t2;
/* Eccentric anomaly. */
ea = kepler(m, e);
/* True anomaly */
v = fixangle(2 * rtd(atan(sqrt((1 + e) / (1 - e)) * tan(ea / 2))));
/* Sun's true longitude. */
theta = l + v - m;
/* Obliquity of the ecliptic. */
eps = 23.452294 - 0.0130125 * t - 0.00000164 * t2 + 0.000000503 * t3;
/* Corrections for Sun's apparent longitude, if desired. */
if (apparent) {
omega = fixangle(259.18 - 1934.142 * t);
theta = theta - 0.00569 - 0.00479 * sin(dtr(omega));
eps += 0.00256 * cos(dtr(omega));
}
/* Return Sun's longitude and radius vector */
*slong = theta;
*rv = (1.0000002 * (1 - e * e)) / (1 + e * cos(dtr(v)));
/* Determine solar co-ordinates. */
*ra =
fixangle(rtd(atan2(cos(dtr(eps)) * sin(dtr(theta)), cos(dtr(theta)))));
*dec = rtd(asin(sin(dtr(eps)) * sin(dtr(theta))));
}
/* GMST -- Calculate Greenwich Mean Siderial Time for a given
instant expressed as a Julian date and fraction. */
static double gmst(jd)
double jd;
{
double t, theta0;
/* Time, in Julian centuries of 36525 ephemeris days,
measured from the epoch 1900 January 0.5 ET. */
t = ((floor(jd + 0.5) - 0.5) - 2415020.0) / 36525.0;
theta0 = 6.6460656 + 2400.051262 * t + 0.00002581 * t * t;
t = (jd + 0.5) - (floor(jd + 0.5));
theta0 += (t * 24.0) * 1.002737908;
theta0 = (theta0 - 24.0 * (floor(theta0 / 24.0)));
return theta0;
}
/* PROJILLUM -- Project illuminated area on the map. */
static void projillum(wtab, xdots, ydots, dec)
short *wtab;
int xdots, ydots;
double dec;
{
int i, ftf = TRUE, ilon, ilat, lilon, lilat, xt;
double m, x, y, z, th, lon, lat, s, c;
/* Clear unoccupied cells in width table */
for (i = 0; i < ydots; i++)
wtab[i] = -1;
/* Build transformation for declination */
s = sin(-dtr(dec));
c = cos(-dtr(dec));
/* Increment over a semicircle of illumination */
for (th = -(PI / 2); th <= PI / 2 + 0.001;
th += PI / TERMINC) {
/* Transform the point through the declination rotation. */
x = -s * sin(th);
y = cos(th);
z = c * sin(th);
/* Transform the resulting co-ordinate through the
map projection to obtain screen co-ordinates. */
lon = (y == 0 && x == 0) ? 0.0 : rtd(atan2(y, x));
lat = rtd(asin(z));
ilat = ydots - (lat + 90) * (ydots / 180.0);
ilon = lon * (xdots / 360.0);
if (ftf) {
/* First time. Just save start co-ordinate. */
lilon = ilon;
lilat = ilat;
ftf = FALSE;
} else {
/* Trace out the line and set the width table. */
if (lilat == ilat) {
wtab[(ydots - 1) - ilat] = ilon == 0 ? 1 : ilon;
} else {
m = ((double) (ilon - lilon)) / (ilat - lilat);
for (i = lilat; i != ilat; i += sgn(ilat - lilat)) {
xt = lilon + floor((m * (i - lilat)) + 0.5);
wtab[(ydots - 1) - i] = xt == 0 ? 1 : xt;
}
}
lilon = ilon;
lilat = ilat;
}
}
/* Now tweak the widths to generate full illumination for
the correct pole. */
if (dec < 0.0) {
ilat = ydots - 1;
lilat = -1;
} else {
ilat = 0;
lilat = 1;
}
for (i = ilat; i != ydots / 2; i += lilat) {
if (wtab[i] != -1) {
while (TRUE) {
wtab[i] = xdots / 2;
if (i == ilat)
break;
i -= lilat;
}
break;
}
}
}
/* XSPAN -- Complement a span of pixels. Called with line in which
pixels are contained, leftmost pixel in the line, and
the number of pixels to complement. Handles
wrap-around at the right edge of the screen. */
static void xspan(pline, leftp, npix)
int pline, leftp, npix;
{
int xo, yo;
if (window_get(bf, FRAME_CLOSED)) {
xo = 1;
yo = 1;
} else {
xo = yo = 0;
}
leftp = leftp % xdots;
pline += yo;
if ((leftp + npix) > xdots) {
V pw_vector(apw, leftp + xo, pline, xo + (xdots - 1), pline,
PIX_SRC ^ PIX_DST, 1);
V pw_vector(apw, xo, pline, xo + ((leftp + npix) - (xdots + 1)),
pline, PIX_SRC ^ PIX_DST, 1);
} else {
V pw_vector(apw, xo + leftp, pline, xo + leftp + (npix - 1), pline,
PIX_SRC ^ PIX_DST, 1);
}
}
/* MOVETERM -- Update illuminated portion of the globe. */
static void moveterm(wtab, noon, otab, onoon, xdots, ydots)
short *wtab, *otab;
int noon, onoon, xdots, ydots;
{
int i, ol, oh, nl, nh;
for (i = 0; i < ydots; i++) {
/* If line is off in new width table but is set in
the old table, clear it. */
if (wtab[i] < 0) {
if (otab[i] >= 0) {
xspan(i, ((onoon - otab[i]) + xdots) % xdots,
otab[i] * 2);
}
} else {
/* Line is on in new width table. If it was off in
the old width table, just draw it. */
if (otab[i] < 0) {
xspan(i, ((noon - wtab[i]) + xdots) % xdots,
wtab[i] * 2);
} else {
/* If both the old and new spans were the entire
screen, they're equivalent. */
if ((otab[i] == wtab[i]) && (wtab[i] == (xdots / 2)))
continue;
/* The line was on in both the old and new width
tables. We must adjust the difference in the
span. */
ol = ((onoon - otab[i]) + xdots) % xdots;
oh = (ol + otab[i] * 2) - 1;
nl = ((noon - wtab[i]) + xdots) % xdots;
nh = (nl + wtab[i] * 2) - 1;
/* If spans are disjoint, erase old span and set
new span. */
if (oh < nl || nh < ol) {
xspan(i, ol, (oh - ol) + 1);
xspan(i, nl, (nh - nl) + 1);
} else {
/* Clear portion(s) of old span that extend
beyond end of new span. */
if (ol < nl) {
xspan(i, ol, nl - ol);
ol = nl;
}
if (oh > nh) {
xspan(i, nh + 1, oh - nh);
oh = nh;
}
/* Extend existing (possibly trimmed) span to
correct new length. */
if (nl < ol) {
xspan(i, nl, ol - nl);
}
if (nh > oh) {
xspan(i, oh + 1, nh - oh);
}
}
}
}
otab[i] = wtab[i];
}
}
/* USAGE -- Print how-to-call information. */
static void usage()
{
V fprintf(stderr,
"sunclock -- The Sun clock. By John Walker, Autodesk, Inc.\n");
}
SHAR_EOF
fi # end of overwriting check
echo shar: extracting "'sunclock.h'" '(41456 characters)'
if test -f 'sunclock.h'
then
echo shar: will not over-write existing file "'sunclock.h'"
else
cat << \SHAR_EOF > 'sunclock.h'
/* Small icon definition. */
short micn[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0xFFFF,
0xFFE0,0,0x400,0,0,0,0x7F,0xFFC0,0x7E0,0x3F87,
0xFE01,0xF800,0,0,0x1FFF,0xFFE0,0x180,0x3F00,0x1F01,
0xFE03,0xC000,0,0x1FFF,0xF830,0x780,0,0x7FDF,0x6FFB,
0xF000,0x83F8,0x7FFF,0xFF1C,0xF18,0x7E0,0x7BF8,0x2FF,
0xFF34,0xCE0F,0xFFFF,0xFFDC,0x1E00,0x1EFF,0xFFE0,
0x3000,0x33FC,0xFE00,0x1DDF,0xFFCC,0xF3E0,0x3FFF,0x1F8,
0,12,0x3E60,0xFCF,0xFF8F,0x83C0,0xF7FC,0,0,0x39C,
0xFFF,0x87E6,0x1787,14,0xFFF8,0,0,0xFFF0,0x3C3,
0xC1B3,0xBDC0,14,0x7FE8,0,0x3003,0x8780,0x1F00,0xE018,
0xF470,0x1F,0xFE01,0x8060,0x3C03,0xC700,0xF800,0xF01D,
0xB1F0,0x1F,0x8003,0x20,0x1800,0xC600,0,0x3871,0xFBF8,
7,10,0xC00,1,0xCC00,0,0x1013,0xF7D8,2,0x7879,0xD8F8,
3,0xF800,0,0x1010,0xFF80,0x1F,0xFCBD,0xD860,14,
0xE000,0,0x1000,0xEE00,0x813,0xFFDE,0xE000,0xF9,
0x8000,0,0x1800,0x800,0xE1F,0xFBF6,0xC000,0xFB,0x8000,
0,0xE00,0x3800,0x1E,0x7190,0,0xDF,0x8000,0,0x301,
0xE000,0xD0,0x1FF1,0x8000,0xCC,0,0,0x38F,0x6000,0x70,
0x31,0xE000,0x40,0,0,0x3C8,0x3000,0x60,0x38,0xFE00,
0xC0,0,0x100,0xE8,0xF000,0xC0,0x78,0x7387,0xFC0,0,
0x180,0x2F,0xFF00,0xC0,0x1C,0x318D,0x8C40,0,0,0x3F,
0xDF80,0x40,12,0x6098,0xCCC0,0,0,7,0xC000,0xC0,
0x180F,0xC0D1,0xECE0,0,0,0x80,0xCFC0,0x60,0x1803,
0x8071,0x7CE0,0x120,0,0x80,0xFFE0,0x22,0,0x8071,
0x78F0,0x120,0,0,0x3038,0x3F,0xE011,0x8031,0xFBB0,0,
0,0,0x100C,0,0x6073,0,0xFFB8,0,0,3,0x300F,0,
0x6476,0,0xF5FD,8,0,2,0x300D,0xC000,0x246C,0,0x7FFF,
0xD808,0,0,0x2000,0x6000,0x3048,0,0x3FC3,0x7C00,2,0,
0x3000,0x2060,0x10C8,0,0xFF1,0xF700,2,0,0x1800,
0x6000,0x104E,0x8000,0xEE,0xF000,0,0,0xA00,0x4000,
0x1067,0x8000,0x3A,0xC040,4,0,0xE00,0x400C,0x19FF,
0x8000,0x63,0xE060,4,0,0x200,0xC000,0x1913,0xA000,
0x1C0,0x30E0,0,0,0x203,0x8000,0x1813,0x2000,0x300,
0x1840,0,0,0x206,0,0x833,0,0x300,0x800,0,0,0x606,
0,0xC60,0,0x3C3,0x8800,0,0,0x40C,0,0x4C0,0,0x1BF,
0x8800,0,0,0x438,0,0x780,0,0x1E3,0x1818,0,0,0x430,
0,0,0,3,0xF01C,0,0,0x4E0,0,0,0,0,0x601C,0,0,
0xC80,0,0,0,0,0x6078,0,0,0xD80,0,0,0,0,0x70,0,
0,0xD00,0,0,0,0,0x40,0,0,0xF60,0,0,0,0,0,0,0,
0xF80,0x6000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0x60,0,0,0,0,0,0,0,0x1C0,0,0,
0x7C1F,0xFFFF,0xC000,0,0,0x1FC0,0,0x87F,0xC3F0,0,
0x7F00,0,0x1F,0xDF40,0x1F,0xFFC0,0,0,0x1E0,7,0xFFFC,
0xFEC0,0x3F0,0,0,0,0x1E0,0x1FC,0x6000,0x1F8,0x3E00,
0,0,0,0x1C0,0x6F0,0,7,0xC000,0,0,0,0x3C0,0x180,0,
0,0,0,0,0,0x3FC,0xE060,0,0,0,0,0,0,0xE0,0,0,0,
0,0,0,0,0
};
mpr_static(micon, 126, 63, 1, micn);
/* Big image definition. */
short bimg[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0x1E,0x3FFF,0xFFFF,
0xF000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0xFFFF,0xFFFF,
0,0xFFF,0xFF80,0x3F,0xDFF0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x3FC,0,3,0xF0FF,0xFFFC,0,0x7F,0xFFF0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,15,0xFF80,0,0x21F,0xFFB0,0xFC00,0,
0x1FFF,0xFFEF,0xFFC0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x7F,
0xC000,0,0x3FFF,0xF600,0x6000,0,0,0x1FF8,0x7E0,0,0,
0,0,0,0,0x7C00,0x7FFE,0xFC00,0,0,0x1FC,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1CF,0xFFFF,
0xFF00,0x7FFB,0x8000,0,0,0,0xFE01,0xFE00,0,0,0,
0x7FFF,0,0x1F,0xFFF8,0xFFFF,0x6000,0,0,0x30C,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0x8380,0x7BFE,
0x3D,0xF0F8,0,0,0,1,0xC03F,0xE000,0,0,0x7AF,0xFD81,
0xE000,0,0xFC0,0x380,0,0,0,0x1FF,0xE000,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0x1FF7,0x80E0,0x1F87,
0xFFF,0x8008,0,0,0,0,0x1F,0,0,0,0xFFE,0xFFFF,0,0,
0,0,0,0,0,0xE1,0xEF00,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0x1FDE,0x3078,0x6FFE,0x1FF8,0x3FF0,0,0,
0,0,0x7F,0,0,0,0x1E3F,0xF00,0,0,0,0,0,0,0,0x1F,
0x99F0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x7FC,
0x3FF,0x6C71,0xFF80,0xF3,0xE000,0,0,0,0,0xCE,0,0,
0,0x1FFE,0x7FC0,0,0,0,0,0,0,0,0,0x3FFF,0x8000,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0x7FEC,0xE66,0x7F9F,
0xFFD8,0x1FC3,0xFFE0,0,0,0,0,0xFD,0x8000,0,0,0x4FC,
0xCFF8,0,0,0,0,0,0,0,0,0x7807,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0x3F,0xEFF8,0xF00,0x3F86,0x3FF8,
0x3C01,0xFFF0,0,0,0,0,0xFF,0,0,0,0x79,0x85C0,0,0,
0,0,0,0,0,0,0x7FC,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0x1DF,0xDC1E,0xFBF,0xDFFF,0xEA70,0xC00,0x3F00,0,
0,0,0,0x7F,0,0,0,0x1F,0,0,0,0,0,0xFF0,0,0,0,
0x1C0C,0x300,0,0,0,0x60,0x1A0,0,0,0,0,0,0,0,0,
0x1FFF,0xFF9F,0xF7FF,0x47FF,0xFFFF,0xF800,0xFFF,0xFE00,
0,0,0,0xFF,0,0,0,0,0,0,0,0,0x1F,0xF8E0,0,0,
0x7F8,0xF81F,0xFDE0,0,0,0x798,0,0x20,0,0,0,0,0,0,
0,0,0xDFF,0xE4FC,0x9FF8,0xFFDB,0xFFFF,0xFC00,0,0x3E0,
0,0,0,0x1FF,0,0,0,0,0,0,0,0,0x1F0,0xFF80,0,1,
0xFF0F,0xF000,0x60,0,0,0x6CFF,0xFE00,0,0,0,0,0,0,
0,0,0,1,0xFFFF,0xF70F,0xEC58,0,0xF000,0,0x30,0,0,
0,0x7F,0x8000,0,0,0,0,0,0,0,0x1F1F,0x8000,0,0xFF,
0,0x7000,0x1C0,0,0,0xCCF,0xBFE0,0,0,0,0,0,0,0,0,
0,0xFFE,0xFF0,0,0x37CF,0xFFFF,0xE000,0,0x78,0,0,0,
0xFF,0,0,0,0,0,0,0,0,0x38F0,0,0,0x180,0,0x3000,
0x3FC0,0,0,0x7C0,0x380,0,0,0,0,0,0,0,0,0,0x383F,
0xC000,15,0xF3FF,0xFFF,0xFF00,0,0x38,0,0,0,0x1FF8,
0,0,0,0,0,0,0,1,0xF780,0,0,0x380,0,0xFC07,
0xFF80,0x1E,0,0xC0FE,0,0,0,0,0,0,0,0,0,0,0x1801,
0xFE00,0x6C,0x7E06,0x70FD,0x8180,0,0x3E,0,0,3,
0xFFF0,0,0,0,0,0,0,0,1,0xFF00,7,0x101,0xFE00,0,
3,0xE0FF,0xF83F,0xF000,0x7E,0,0,0,0,0,0,0,0,0,0,
0x380F,0xCAFF,0xF07E,0x7EFC,0xC0F1,0xFFC0,0,7,0,0,1,
0xFF80,0,0,0,0,0,0,0,7,0x1800,0x3F,0xCF01,0,0,
15,0x70,0xFF8,0x1E00,0x3F,0xC000,0,0,0,0,0,0,0,0,
0,0xE01E,0x3C3,0x983E,0xFE0,0x81F3,0xFC38,0,15,
0xC000,0,0,0x7F80,0,0,0,0,0,0,0,14,0x1000,0x20,
0xCFFF,0xE000,0,0,0,0,0xFE00,0x60,0xFFE0,0,0,0,0,
0,0x60,0,0,0,0xF8BF,0xF000,0xE03,0x7FE0,0xC0F2,
0x200F,0xC000,15,0xF000,0,7,0xFBC0,0,0x6000,0,0,0,
0,0,14,0x1000,0x61,0xBFC1,0xFC00,0,0,0,0,0xEE0F,
0xFFE0,0x7870,0,0,0,0xF0C0,0,0xFFC,0,0,0,0xFE3,
0xE200,0x601,0xCF38,0x3E70,0,0xF000,7,0x7E00,0,7,
0xF9C0,1,0xE000,0,0,0x1FF,0xF000,0,3,0x8E00,0x181,
0xB000,0x3C00,0,0,0,0,0x3D3,0xF80,0x1E,0x3FE4,0,7,
0,0,0x7807,0xFF00,0,0x1E,1,0xFFE0,0x3EC,0x180E,
0xE08,0x3C01,0xBF00,1,0xFE00,0,0x1F,0xFF80,0,0,0,0,
0x7FF,0xFF00,0,0,0xFEC0,0x100,0xD800,0x7800,0,0,0,
0,0xE0,0,3,0xE81E,0,0,0,1,0xC000,0x1FF,0xF000,
0x1FF,0x9F01,0xFFC0,0xF8,0x7E1F,0x3FF,0xFF80,0xF80,3,
0xFE00,0,0x17,0xCF00,0,0,0,3,0xFFD8,0x3FE0,0,0,
0xFF,0x8300,0xF000,0xC00,0,0,0,0,0,0,0,8,0x3C,
0xFFC0,0,6,0,0,0x1FE0,0xFE18,0xFCFC,0xFE00,0x71FE,
0xDDCF,0x60FF,0x19D0,0x7C0,3,0xFC00,0,0,0x3800,0,0,
0,0x3F,0xF000,0x60FF,0xC000,0x380,0x18,0xFB80,0xB7E0,
0,0,0,0,0,0,0,0xD80,15,0xFFFC,0xC0FE,0xC000,0xFC,
0,0,0x3F,0xE800,7,0xFB7F,0xFFF7,0xE7E1,0xF8E3,0xF8,
0x3C0,0,0x7800,0,7,0xE000,0,0,0,0x7F,1,0xE078,
0x7806,0x383,0x81F8,0x3FE0,0xDFA0,0,0,0,0,0,0,0,0,
3,0x1C,0xC003,0x7800,0x1C0,0,0,3,0,0,0x3DEF,0xFF80,
0xFFE1,0xB78E,0x1BFC,0x3F0,0,0xFE00,0,0x1FE,0,0,0,
0,0x3E,0,0,0xF03,0xE07F,0xFE70,0xE0,0x6FF0,0,0,
0x300,0,0,0,0,0x10,1,3,0xC000,0x180,0x78,0,0,0,
0,0x400,0x3FFF,0x80FF,0x9E00,0x1F03,0x27E,0x3E,1,
0xFE00,0,0xF00,0,0,0,0,0x38,0,0x70,0x1C2,0xE3CF,
0xC000,0x40,0x6CB0,0,0,0,0,0,0,0,0x10,0,0,0,
0xFF,15,0x8000,0,0,0,0xEFC,15,0,0xF00,0xEE3,0x3C6,
15,0xE001,0xFC00,0,0x3800,0,0x1000,0,0,0x1F0,0,
0xF0,0x43,0xE60E,0,1,0x98BF,0,0,0,0,0,0,0,0,0,
0,0,0x6061,0xC03B,0xE000,0,0,0,0x1F3F,3,0xC007,
0x8600,0x7FC,15,0xC0C9,0xE000,0xFC00,12,0xE000,0x7DF,
0xFC00,0,0,0x183,0,0x13F,0x81DB,0x3C00,0,0x3F,
0xF38F,0,0,0,0,0,0,0,0,0,0,0,0x7060,0xE3EF,
0xE000,0,0,0,0x1FDF,0,0xC03F,0xE017,0x83F0,0x18,
0xF3FD,0xF000,0xF000,0x1F,0x8000,0x1FFD,0x8700,0,0,
0x303,0x81F8,0x33E,0x7FE6,0,0,15,0xE37E,0,0,0,0,0,
0,0,0,0,0,0,0x7F87,0xC780,0,0,0,0,0x6F8,0,0,
0x3F,0xFFF8,0x7BC,0xC3CF,0x8000,0xF000,0xFC,0,0xFE0,
0x100,0,0,0x601,0x8704,6,0x300,0,0,0,0xE1EF,0xE000,
0,0,0,0,0,0,0,0,0,0,0xC0F6,0x181,0xE000,0,0,0,
0x7E0,0x78,15,0xF000,0x90E,0x6E1,0xF073,0,0x3F00,
0x380,0,0xFC0,0xF00,0,0,0x1C00,0x61C,0x7C4,0xFD80,0,
0,0,0x60,0xF000,0,0,0,0,0,0,0,0,0,0x7F,0x1E,
0xFF,0xE000,0x6000,0,0,0,0x7F,0xE00F,0x8FC1,0xF91F,
0x87FE,0xE018,0,0x1F80,0x380,0,0x3E0,0xFC00,0,0,
0x3800,0x671,0xC007,0xF3E0,0,0,0,0x40,0x3800,0,0,0,
0,0,0,0,0,0,0x3E,3,0xE003,0x6000,0x6000,0,0,0,
0x61,0xE018,0x1FF,0xB613,0xCF83,0x860C,0,0xF80,0x300,
0,0x13F,0x8000,0,1,0xF800,0x7DC1,0x980E,0xF060,0,0,
0,0,0x60,0,0,0,0,0,0,0,0,0,4,3,0xF01F,0xC000,
0,0,0,0x7C,0x6039,0x8038,0x303B,0x7E7,0x8F80,0xC7FC,
0,0x780,0xF00,0,0,0,0,15,0x7001,0xC704,0xFE1F,0,0,
0,0,0,0x60,0,0,0,0,0,0,0,0,0,0xE07,0,0x203C,0,
0,0,0,0x7C,0x7DFE,0x38,0x701F,0x1F,0xEFFC,0x7CFC,0,
0x380,0x1C00,0,0,0,0,0x5F,3,0x60E,0xFE07,0x4000,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0x1B,0,0x70,0,0,0,
0,0,0xFF8,0,0x78,0x1C,0xEC07,0x7F8,0,0x3C0,0x1800,
0,0,0,0x1800,0x78,2,0x636,0x7807,0x4000,0,0,0,0,
0,0,0,0,0,0,0,0,0,0xF000,0x3FE,0,0xC0,0,0x1800,
0,0,0,0xFFC0,0,0x60,0,0x4401,0xC078,0,0x1E6,0x1800,
0,0,0,0x1800,0x7C,2,0x2EC,0xFF87,0x8C00,0,0,0,0,
0,0,0,0,0,0,0,0,0x7C,0xA000,0x1E00,0,0x78,1,
0x7FF8,0,0,1,0xFC00,0,0xC0,0,0xC00,0x7B0C,0,0x7F,
0x3000,0,0,0,6,0x7C,3,0x2CE,0xF663,0x8400,0,0,0,
0,0,0,0,0,0,0,0,0,0x1CF,0x6000,0xF000,14,0x1DB,
7,0xF1FF,0,0xD800,0,0,0,0x80,0,0x60F,0xBF0C,0,1,
0xF000,0,0,0,3,0x78,1,0xC3DF,0xFEE0,0x3C00,0,0,0,
0,0,0,0,0,0,0,0,0,0x70E,0xC37F,0x8000,6,0x3DF,
0x8001,0x3FF3,0xFF80,0xEE00,0,0,0,0x80,0,0x60F,
0xB83E,0,1,0xE000,0,0,0,0,0x70,5,0xC07A,0x7F80,
0x3600,0,0,0,0,0,0,0,0,0,0,0,0xF0,0x1C03,0x1FC3,
0,0,4,0xC047,0x7C00,0x1C1,0x2600,0,0x1F,0xFC00,0x80,
0,0x1C00,0x1C27,0,0,0,0,0,0,0x30,0x70,0xFB8F,
0x81BF,0xC000,0x600,0,0,0,0,0,0,0,0,0,0,15,
0xFFDE,0xFC0E,0x7C00,0,0,0,0xFFC7,0xE000,0x7F,0,0,
0xF8,0x180,0xF0,0,0x1800,0xFE3,0,0,0,0,0,0,0x1BF0,
0x31,0x8FE3,0x1E0,0xC000,0x1800,0,0,0,0,0,0,0,0,
0,0,0x18,0x1F,0xE038,0x5800,0,0,0,0x58D,0xC000,
0x1F,0xE000,0,0x40,0x1E0,0x10,0,0xC00,0x183,0x8000,
0,0,0,0,0,0x1FE0,0x1E,0xE66,0x41F0,0xE180,0x1C00,0,
0,0,0,0,0,0,0,0,0,0x30,0,0x60,0xF000,0,0,0,
0x1BF,0xC000,7,0xE000,0,0,0x71,0x8010,0,0x63C,0,
0xE000,0,0,0,0,0,0x1CFC,1,0xF604,0xC390,0x6000,0,
0,0,0,0,0,0,0,0,0,0,0xE0,0,0x1C0,0xE000,0,0,
0xC000,0x3E7,0x8000,3,0xF000,0,0,0x61,0x801F,0xE000,
0x82F0,0,0xF000,0,0,0,0,0,0xE08,1,0xE20E,0xC670,0,
0,0,0,0,0,0,0,0,0,0,0,0x300,0,0x700,0xC000,0,
0,0x6000,0x1F00,0,1,0xFC00,0,0,0xC0,0,0x3801,
0xF260,0,0x7000,0,0,0,0,0,0xF78,3,0xB21E,0x400,0,
0,0,0,0,0,0,0,0,0,0,0,0x600,0,0x400,0xE000,0,
0,0,0xFE00,0,0,0xFF80,0,0,0x80,0,0xE01,0xE660,0,
0x7000,0,0,0,0,0,0x77C,2,0x7F30,0x400,0,0,0,0,0,
0,0,0,0xE00,0x2000,0,0,0x1C00,0,0x400,0xE000,0,0,
7,0xF800,0,0,0x3FC0,0,0,0,0,0x3E0,0xAC36,0,0x1C00,
0,0,0,0,0,0xFF04,3,0x7FE0,0x400,0,0,0x300,0,0,0,
0,0,0x1F00,0x6000,0,0,0x7C00,0,0x800,0x8100,0,0,
0x1F,0x3000,0,0,0x3DC0,0,0,0,0x6000,0x1C,0x380C,0,
0xF80,0,0,0,0,0,0xC7E7,1,0xFF83,0x9C00,0,0,0x300,
0,0,0xE0,0,0,0x300,0xE000,0,0,0xFC00,0,0x80C,
0x81A0,0,0,0x18,0,0,0,0x1C0,0,0,0,0xE000,4,
0x3000,6,0x3C0,0,0,0,0,7,0x8471,1,0xB79E,0xF000,0,
0,0x200,0,0,0x1E0,0,0,0x301,0xE000,0,0,0x7FC6,0,
0xC0F,0x8020,0,0,0x3C0,0,0,0,0x1DF8,0,0,3,0xE000,
4,0x1000,6,0x1FF0,0,0,0,0,6,0x5E0,0x8031,0xDDE0,0,
0,0,0x300,0,0,0,0,0,0x303,0xC000,0,0,0x1F7E,0,
0x408,0,0,0,0xF00,0,0,0,0x1EFC,0,0,15,0xA000,7,
0x1800,0,0x1C78,0,0,0,0,3,0x5C1,0xE07F,0,0,0,0,
0x300,0,0,4,0,0,0x10E,0xC000,0,0,0x23B,0,0x438,0,
0,1,0xF800,0,0,0,0xE3E,0,0,14,0xF000,7,0x800,0,
0x18,0,0,0,0,2,0xD80,0xB1C0,0,0,0,0,0,0,0,4,0,
0,0x11F,0x8000,0,0,0x3B,0,0x660,0,0x3800,0xEF9,
0x8000,0,0,0,0x70E,0,0,3,0x7800,3,0x8800,0,0x18,
0,0,0,0,2,0xFB90,0x6100,0,0,0,0,0x1800,0,0,0,0,
0,0x3E,0,0,0,0x3A,0,0x760,0,0xCD0,0x1E80,0,0,0,
0,12,0,0,3,0xD800,0,0xF806,0,0x1F8,0,0,0,0,3,
0x81F0,0xE300,0,0,0,0,0x7800,0,0,0,0,0,0x1F8,0,
0,0,0x2B,0,0x3C0,0,0x1E,0,0,0,0,0,0x1F,0x8000,0,
0,0xD800,0,0xB00E,0,0x378,0,0,0,0,0,0x1F7,0xFC00,
0,0,0,0,0x6000,0,0,0,0,0,0x70,0,0,0,0x3029,0,
0x700,0,6,0,0,0,0,0,0x1F,0xE000,0,0,0x5800,
0x2000,12,0xFF,0xFC70,0,0,0,0,0,0x7FC,0x7000,0,0,
0,0,0xE000,0,0,0,0,0x1C00,0,0,0,0,0x3029,0,
0x1E00,0,0,0,0,0,0,0,15,0xF800,0,0,0,0x6000,
0x700,0x8F,0xF8,0,0,0,0,0,0x20C,0xE000,0,0,0,0,
0x8000,0,0,0,0,0,0,0,0,0,0x6048,0x8000,0x7800,0,
0,0,0,0,0,0,1,0xFA00,0,0,0,0x6000,0,0x77F,
0xC1AF,0,0,0,0,0,15,0x8000,0,0,0,1,0x8000,0,0,
0,0,0,0,0,0,0,0x604B,0xC000,0x2000,0,0,0,0,0,0,
0,0,0xFE00,0,0,0,0x3E00,0x7000,0xF88,0x301,0xC000,
0,0,0,0,0x1FC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x4E,0xC000,0,0,0,0,0,0,0,0,0,0x3E00,0,0xF8E0,
1,0xE380,0,0x1EFC,0x309,0x8000,0,0,0,0,0x1D0,0,0,
0,0,0,0,1,0xC000,0,0x1C00,0,0,0,0,0,0xCC,0,0,
0,0,0,0,0,0,0,0,0x1600,0,0xF878,3,0x30C0,0,
0x3078,0x3FF,0xE000,0,0,0,0,0x70,0,0,0,0,0x1C00,
0,1,0x8000,0,0xC00,0,0,0,0,0,0x18E,0,0,0,0,0,
0,0,0,0,0,0x1A00,0,0,14,0xF060,0,0x7014,0x180D,
0xE000,0,0,0,0,0x18,0,0,0,0x3C3,0xFC00,0x7E,0x16,
0,0xE00,0,0,0,0,0,0,0x30F,6,0,0,0,0,0,0,0,0,
0,0x800,0,4,15,0x3FE0,0x6000,0x1F,0xB800,0x8000,0,
0,0,0,14,0,0,0,0x7FF,0x3000,0x3C2,0x7E,0,0x3FF9,
0xC000,0,0,0,0,0,0x60F,0x30,0,0,0,0,0,0,0,0,0,
0x1800,0,4,0,0x7FF,0xE000,7,0xFC00,0,0,0,0,0,2,
0,0x780,0,0xC7E,0xB000,0x1E02,0xEC,0,0x3800,0xC000,
0,0,0,0,0,0xC09,0x70,0,0,0,0,0,0,0,0,0,0x1000,
0,4,0,0x8F7,0xC000,0x1FE,0xF000,0,0,0,0,0,3,0,
0x4E0,0,0x1873,0xE000,0x101E,0x18C,0,0x3800,0x2000,0,
0,0,0,0x30,0x1818,0x780,0,0,0,0,0,0,0,0,0,
0x1000,0,0x1C,0,0x1991,0xE004,0x7BF,0xC000,0,0,0,0,
0,7,0,0x4E0,0,0x301E,0x3800,0x1014,0x104,0,0x1800,
0x3000,0,0,0,0,0x30,0x601E,0x1600,0,0,0,0,0,0,0,
0,0,0x1000,0,0x1C,0,0x1A13,0xF3C4,0xC6C,0,0,0,0,
0,0,4,7,0xE630,0,0x2018,0x600,0x1070,0x108,0,0,0,
0,0,0,0,0x20,0xC013,0xF800,0,0,0,0,0,0,0,0,0,
0x1000,0,0,0,0x163A,0x3F80,0x3878,0,0,0,0,0,1,
0xFFFC,0x7FC,0x219E,0,0x6000,0x380,0x820,0x1D8,0,0,
0,0,0,0,0,3,0x8010,0xF000,0,0,0,0,0,0,0,0,0,
0x3000,0,0,0,0x161C,0x7F80,0x6000,0,0,0,0,0,1,0,
0x431,0xB083,0,0xC000,0xC0,0x830,0x30,0,0,0,0,0,0,
0,0xFE,0x71,0xE000,0,0,0,0,0,0,0,0,0,0x3000,0,
0,0,0x120B,0xF000,0x6000,0,0,0,0,0,1,0x8000,0x403,
0x9CE1,0xC000,0xC000,0x60,0xC1C,0,0,0x1F0,0,0,0,0,
0,0x180,0x5F,0,0,0,0,0,0,0,0,0,0,0x1000,0,0,0,
0x1E1C,0xF000,0x3000,0,0,0,0,0,1,0x8000,0xC03,
0x8638,0x6000,0x40FF,0x60,0x607,0,0,0xC0,0,0,0,0,
0,0x300,0x56,0,0,0,0,0,0,0,0,0,0,0x1000,0x380,
0,0,0xC1B,0x8007,0xF000,0,0,0,0,0,0,0x8000,0x7001,
0x838E,0x2018,0x7F81,0xFDC0,0x307,0x8000,0,0,0,0,0,
0,0x180,0x200,0xF0,0,0,0,0,0,0,0,0,0,0,0x1000,
0x1C0,0,0,14,0x1C,0,0,0,0,0,0,0,0x8000,0xC003,
0xC0C3,0x20BF,0xF000,0x3F00,0x106,0x8000,0,0,0,0,0,
0,0x3C0,0xE00,0xF0,0,0,0,0,0,0,0,0,0,0,0x1000,
0x180,0,0,0,0x18,0,0,0,0,0,0,1,0x8001,0x8F02,
0xC037,0xB0FB,0x8000,0,0x187,0x8000,0,0,0,0,0,0,
0xCC8,0x1800,0x98,0,0,0,0,0,0,0,0,0,0,0x1800,0,
0,0,0,0xD0,0,0,0,0,0,0,1,1,0xD02,0x801F,0xB88B,
0,0,0x107,0,0,0,0,0,0,0,0x18FF,0x3000,0x88,0,0,
0,0,0,0,0,0,0,0,0x800,0,0,0,0,0x1F0,0,0,0,0,
3,0,1,0x8001,0xE003,0x800E,0x1C81,0,0,0x303,0,0,0,
0,0,0,0,0x71C3,0x3800,0x88,0,0,0,0,0,0,0,0,0,
0,0xC00,0,0,0,0,0x1E0,0,0,0,0,0x1F,0,0,0x8003,
0x8000,0x7FC,0x7C3,0x8000,0x3C,0x301,0,0,0,0,0,0,
0,0x4003,0x800,0xB8,0,0,0,0,0,0,0,0,0,0,0x700,
0,0,0,0,0x1C0,0,0,0,0,0,0x6000,0,0x8006,0,0x7B8,
0x7E1,0x8000,0x19,0xC201,0x8000,0,0,0,0,0,0,0x7703,
0xCC00,0x130,0,0,0,0,0,0,0,0,0,0,0x300,0,0,0,
0,0x100,0,0,0,0,0,0,1,0xB80C,0,0xC1A0,0x2E1,
0xC000,1,0xC301,0x8000,0,0,0,0,0,0,0x3DE0,0x4400,
0x1B20,0,0,0,0,0,0,0,0,0,0,0x300,0,0,0,0,
0x180,0,0,0,0,0,0,1,0xE9F8,0x7FFF,0x30E0,0x3C0,
0xE387,0x8000,0x81C1,0x8000,0,0,0,0,0,0,0x3C0,
0xC400,0x1E20,0,0,0,0,0,0,0,0,0,0,0x180,0,0,0,
0,0xC0,0,0,0,0,0,0,0,0xF01,0xC000,0x3000,0x80,
0x5EFD,0,0x7F,0,0,0,0,0,0,0,0x600,0xC60C,0x3820,
0,0,0,0,0,0,0,0,0,0,0x80,0,0,0,0,0x1C0,0,0,
0,0,0,0,0,0x707,0,0x3000,0x60,0x4001,0,0,0,0,0,
0,0,0,0,0xC00,0x461F,0xE020,0,0,0,0,0,0,0,0,0,
0,0xC0,0,0,0,0,0x3C0,0,0,0,0,0,0,0,0xDFC,0x180,
0x1000,0x7E,0x71,0,0,0,0,0,0,0,0,0,0x1800,0xFC10,
0x33E0,0,0,0,0,0,0,0,0,0,0,0x78,0,0,0,0,0x300,
0,0,0,0,0,0,0,0x1800,0,0x3000,0,0x71,0,0,0,0,
0,0,0,0,0,0x1C00,0xF869,0xBF00,0,0,0,0,0,0,0,0,
0,0,0x3C,0,0,0,0,0xE00,0,0,0,0,0,0,0,0x3000,
0x3F,0xE000,0,3,0,0,0,0,0,0,0,0,0,0x400,0x1FF,
0xEC00,0,0,0,0,0,0,0,0,0,0,0x23,0,0,0,0,
0x3800,0,0,0,0,0,0,0x3000,0xE00C,0x37,0xF000,0,2,
0,0,0,0,0,0,0,0,0,0x3E00,0xC3FF,0xC000,0,0,0,0,
0,0,0,0,0,0,7,0,0,0,0,0xE000,0,0,0,0,0,0,
0x7001,0x8000,0,0x1F80,0xF80,2,0,0,0,0,0,0,0,0,
0,0x7B00,0x338,0,0,0,0,0,0,0,0,0,0,0,1,0x8000,
0,0,1,0x8000,8,0,0,0,0,0,0x6001,0,0,0x60,0x18E0,
4,0,0,0,0,0,0,0,0,0,0x1180,0x320,0,0,0,0,0,0,
0,0,0,0,0,0,0x9E00,0,0,3,0,0x18,0,0,0,0,0,3,
0,0,0x10,0x101C,12,0,0,0,0,0,0,0,0,0,0x80,
0x1E0,0,0,0,0,0,0,0,0,0,0,0,0,0x5600,0,0,2,0,
0,0,0,0,0,0,2,0,0,0x1E,0x1007,0xEFF8,0,0,0,0,
0,0,0,0,0,0x80,0x3C0,0,0,0,0,0,0,0,0,0,0,0,
0,0x7B00,0,0,0x7602,0,0,0,0,0,0,0,2,0,0,1,
0xF000,0x3800,0,0x3C0,0,0,0,0,0,0,0,0x80,0x100,0,
0,0,0,0,0,0,0,0,0,0,0,0x3900,0,0x60,0xFFF2,0,
0,0,0,0,0,0,6,0,0,0,0,0x20,0,0x6C0,0,0,0,0,
0,0,0,0x80,0x100,0,0,0,0,0,0,0,0,0,0,0,0,
0x3880,0,0x3FF,0xC011,0,0,0,0,0,0,0,0x184,0,0,0,
0,0x76,0,0x467,0,0,0,0,0,0,0,0x180,0,0,0,0,0,
0,0,0,0,0,0,0,0,0x1EC0,0,0x380,0x19,0,0,0,0,0,
0,0,0x8398,0,0,0,0,0x76,0,0x421,0,0,0,0,0,0,0,
0x180,0x200,0,0,0,0,0,0x1980,0,0,0,0,0,0,0xB60,
0,0x1E00,9,0x8000,0,0,0,0,0,0,0xBB70,0,0,0,0,
0x3F,0,0x630,0,0,0,0,0,0,0,0x300,0x600,0,0,0,0,
0,0,0,0,0,0,0,0,0x19B0,0,0x3800,8,0x8000,0,0,0,
0,0,1,0x99C0,0,0,0,0,0x1D,0,0x31C,0,0,0,0,0,0,
0,0x600,0x400,0,0,0,0,0,0,0,0,0,0,0,0,0x898,0,
0x2000,8,0xC000,0,0,0,0,0,0,0x100,0,0,0,0,0x19,
0x8000,0x87,0x3C00,0,0,0,0,0,0,0xC00,0,0,0,0,0,
0,0,0,0,0,0,0,0,0x7CC,0,0x3000,7,0x5E00,0,0,0,
0,0,0,0x300,0,0,0,0,8,0xC000,0xF1,0xFC00,0,0,0,
0,0,0,0x800,0x1800,0,0,0,0,0,8,0,0,0,0,0,0,
0x1E4,0,0x3000,3,0x4200,0,0,0,0,0,0,0x600,0,0,0,
0,4,0x4000,0x70,0x1F00,0,0,0,0,0,0,0x1800,0,0,0,
0,0,0,8,0,0,0,0,0,0,0xA7,0,0x3000,3,0xF300,0,
0,0,0,0,0,0x400,0,0,0,0,4,0x6000,0x70,0x3BFF,
0xFE00,0,0,0,0,0,0x1080,0,0,0,0,0,0,0,0,0,0,
0,0,0,0xE1,0x8000,0x2000,1,0x8D80,0,0,0,0,0,0,
0xC00,0,0,0,0,6,0x2000,0x10,0x4808,0x200,0,0,0,0,
0,0x3380,0,0,0,0,0,0,0,0,0,0,0,0,0,0x70,
0xC000,0x6000,0,0xC00,0,0,0,0,0,0,0x1800,0,0,0,
0,2,0x3000,0x1F,0x8C00,0x300,0,0,0,0,0,0x6280,0,
0,0,0,0,0,0,0,0,0,0,0,0,0x38,0x6000,0x6000,0,
0x400,0,0,0,0,0,0,0x1000,0,0,0,0,0x61,0x800,0,
0x780,0x1E0,0,0,0,0,1,0xCE80,0,0,0,0,0,0,0,0,
0,0,0,0,0,0x1C,0x2000,0x2000,0,0,0,0,0,0,0,0,
0x1000,0,0,0,0,0x61,0xC00,0,0xC0,0x67,0,0,0,0,3,
0x1D00,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0x1800,
0x2000,0x1F,0xE0C8,0,0,0,0,0,0,0x2000,0,0,0,0,
0xE1,0x8400,0,0x60,0x1C,0,0,0xE000,0,0x7E,0xD00,0,
0,0,0,0,0,0,0,0x1800,0,0,0,0,0,0x800,0x2000,
0x3F,0xB0C8,0,0,0,0,0,0,0x4000,0,0,0,0,0x180,
0xC400,0,0x60,0x38,0xC000,9,0xB000,0,0xF0,0x600,0,
0,0,0,0,0,0,0,0x1B00,0,0,0,0,0,0xC00,0x2000,
0x1C7C,0xFE00,0,0,0,0,0,0,0x4000,0,0,0,0,0x300,
0x4400,0,0xC0,0x19,0xC000,0x3F,0x9000,1,0xFF80,0x200,
0,0,0,0,0,0,0,0,0x3E0,0,0,0,0,0,0x800,0x3001,
0xFC1C,0x3B80,0,0,0,0,0,0,0x6000,0,0,0,0,0,
0x6600,0,0x80,15,0x4000,0x20,0x1800,2,0x1800,0,0,0,
0,0,0,0,0,0,0xF0,0,0,0,0,0,0x800,0x1001,0xC00,
0xEF0,0,0,0,0,0,0,0x6000,0,0,0,0,0,0x4300,0,
0x380,6,0x4000,0x20,0xC00,4,0x1800,0,0,0,0,0,0,0,
0,0,0x38,0,0,0,0,0,0x800,0x1803,0x800,0x7F6,
0xC000,0,0,0,0,0,0x2000,0,0,0,0,0,0x4180,0,
0x280,0,0x4000,0x1C0,0x600,12,0x3C00,0,0,0,0,0,0,
0,0,0,0x38,0,0,0,0,0x30,0xE00,0xC02,0x1800,0x207,
0xBC00,0,0,0,0,0,0x2000,0,0,0,0,0,0x20C0,0,
0x200,0,0x4000,0x180,0x700,0x18,0x6C00,0,0,0,0,0,
0,0,0,0,0x30,0,0,0,0,0x30,0x380,0x71E,0x1803,6,
0x600,0,0,0,0,0,0x2000,0,0,0,0,0,0x2040,0,0xE00,
0,0x4000,0x600,0x300,0x18,0x5800,0x300,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0xE0,0x5FE,0x3000,0xF9E,0x7EFC,
0,0,0,0,0,0x1000,0,0,0,0,0,0x1860,0,0x1800,0,
0x4000,0xC00,0x100,12,0x7000,0x7C0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0x30,0xC0,0x1000,0x79F,0xC0FC,
0x2000,0,0,0,0x2000,0x1000,0,0,0,0,0,0x830,0,
0x2000,0,0x6000,0x1800,0x180,4,0,0x480,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0x1C,0,0x3000,0,0,0x6000,0,
0,0,0x3000,0x1000,0,0,0,0,0,0xC10,3,0xE000,0,
0x2000,0x2000,0x98,6,0,0x480,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,3,0x8380,0x3000,0,0,0x6000,0,0,0,
0x3000,0x2000,0,0,0,0,0,0x410,6,0,0,0x2000,0xC000,
0x9C,3,0,0x480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0xFEC0,0x61C0,0,0,0x6000,0,0,0,0x300,0x2000,0,0,
0,0,0,0x410,12,0,0,0x2001,0x8000,0x1E4,1,0x8000,
0x580,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1860,
0x3F70,0,0,0x2000,0,0,0,0x400,0x2000,0,0,0,0,0,
0x610,0x38,0,0,0x3003,0,0x44,0,0xC000,0x500,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0x38,0x30,0,0,0x3000,
0,0,0,0x400,0xC000,0,0,0,0,0,0x318,0x1C0,0,0,
0x1002,0,4,0,0x6000,0x580,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,14,0x10,0,0,0x3000,0,0,0,0,0xE000,0,
0,0,0,0,0x88,0xF00,0,0,0x1802,0,6,0,0x2000,0x640,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0x10,0,0,
0x3000,0,0,0,0,0x2000,0,0,0x80,0,0,0x6C,0x3800,0,
0,0x802,0,0xC02,0x3000,0x2000,0x3F0,0,0,0xC000,0,0,
0,0,0,0,0,0,0,0,0,0,1,0xF810,0,0,0x3600,0,0,
0,0,0x2000,0,0,0x1E0,0,0,0x35,0xC000,0,0,0x802,0,
0xC03,0x7000,0x2000,0x7F8,0,0,0xC000,0,0,0,0,0,0,
0,0,0,0,0,0,0,0x1C31,0,0x3000,0,0,0,0,0,0x2000,
0,0,0xE0,0,0,0x1F,0,0,1,0xC02,0,0xC01,0x7C00,
0x2000,0x33E,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x523,1,0xF000,0x6000,0,0,0,0,0x3000,0,0,0xC0,0,
0,8,0x40,0,1,0x406,0,0x801,0x6700,0x2000,0x1BE,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x7F0,7,0xF800,
0x6000,0,0,0,0,0x1800,0,0,0,0,0,8,0x3F0,0,0,
0x4604,0,0x801,0x4110,0x6000,0x18EF,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0x3F0,0x3D,0xF706,0x2000,0,0,
0,0,0xC00,0,0,0,0,0,12,0x5E20,0,0,0xC204,0,
0x801,0xC199,0x8000,0x18FE,0,0,0,0,0,0,0,0,0,0,
0,0,0,4,0,0,0x130,0x60,0xC1EF,0xF000,0,0,0,0,
0x600,0,0,0,0,0,7,0xE020,0,0,0xC104,0,0x801,
0x80FF,0,0x38FE,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
0,0,0x1D8,0x41,0x4038,0xF000,0,0,0,0,0x100,0,0,0,
0,0,0,0x20,0,0,0x18C,0,1,0x803C,0,0x306F,0,0,0,
0,14,0,0,0,0,0,0,0,0,0,0,0,0x66,0x78C1,0xC000,
0x3000,0,0,0,0,0x180,4,0,0,0,0,0,0x60,0,0,
0x19F,0,1,0xC038,0,0xE067,0x8000,0,0,0,2,0,0,0,
0,0,0,0,0,0,0,0,0x37,0xFF80,0xC000,0x3C00,0,0,0,
0,0x80,7,0,0,0,0,0,0x40,0,0,0xF4,0x8000,3,
0x6030,0,0xC03F,0x8000,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0x1E,0x6B00,0,0x400,0,0,0,0,0xC0,3,0,0,0,
0,0,0xC0,0,0,0x64,0xC000,3,0x2000,0,0x60,0x8000,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0xC900,0,0x300,
0,0,0,0,0xE0,1,0,0,0,0,0,0x80,0,0,4,0x4000,1,
0xB000,0,0xF9,0x8000,0,0,0,6,0,0,0,0,0,0,0,0,
0,0,0,0,0xC400,0,0x180,0,0,0,0,0x70,7,0,0,0,0,
0,0x180,0,0,4,0x4000,0,0xDC00,1,0x80EB,0x8000,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x600,0,0xC0,0,
0,0,0,0x1C,1,0x3F80,0,0,0,0,0x100,0,0,6,0xC000,
0,0x6600,2,0x400B,0x8000,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0x200,0,0x7F,0,0,0,0,6,1,0xE060,0,0,
0,0,0x300,0,0,3,0x8000,0x70,0x2300,6,0x600F,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x200,0,1,
0xC000,0,0,0,3,0x7FE,0x60,0,0,0,0,0x600,0,0,0,
0,0x7C,0x2180,4,0x3000,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0x200,0,0,0x3000,0,0,0,1,0xFC08,
0x3F,0,0,1,0,0x400,0,0,0,0,0x26,0x2080,0x3C,
0x6000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x200,0,0,0x1800,0,0,0,0,0x6000,1,0xC000,0,1,0,
0x800,0,0,0,0,0x33,0x2081,0x8060,0xE000,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0x200,0,0,0x800,0,
0,0,0,0,1,0x4000,0,1,0x8000,0x1000,0,0,0,0,0x19,
0x9080,0x8040,0xC000,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0x200,0,0,0xC00,0,0,0,0,0,1,0x4000,0,
1,0x8000,0x3000,0,0,0,0,0x24,0xD880,0x380,0x8000,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xC00,0,0,
0x400,0,0,0,0,0,0,0x4000,0,0x101,0xC000,0x6000,0,
0,0,0,0x36,0x6CC0,0x700,0x4000,0x1000,0,0,0,0,0,
0,0,0x180,0,0,0,0,0,0,0,0,0x800,0,0,0x600,0,0,
0,0,0,0,0xC000,0,0x340,1,0x8000,0,0,0,0,0x33,
0x3E40,0x3C00,0x6000,0x3000,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0x1800,0,0,0x300,0,0,0,0,0,0,
0x8000,0,0x760,3,0,0,0,0,0,13,0x8FC0,0x2400,
0x220E,0x3800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x3000,0,0,0x300,0,0,0,0,0,0,0x8000,0,0x20,6,
0,0,0,0,0,12,0x8780,0x4000,0x77FE,0x3800,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0xC000,0,0,0xE00,0,0,
0,0,0,0x18,0x8000,0,0xCF0,12,0,0,0,0,0,0,0xC380,
0x6000,0xCFF8,0x3000,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,14,0,0xC000,0,0,0x1FC0,0,0,0,0,0,0,0x8000,0,
0xC9C,0x10,0,0,0,0,0,3,0x4080,0x2000,0x8C00,0x31D8,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0x8000,0,0,
0x1C7C,0,0,0,0,0,1,0xC000,0,0x88,0x20,0,0,0,0,
0,3,0x20C0,0x2000,0x8CF0,0x31F6,0x6000,0,0,0,0x600,
0,0,0,0,0,0,0,0,0,14,0,0x8000,0,0,0x3CC7,0,0,
0,0,0,0,0x8001,0x8000,0x98,0x60,0,0,0,0,0,1,
0x3040,0x3001,0x9FF0,0x30E2,0xFC00,0,0,0,0x300,0,0,
0,0,0,0,0,0,0,0,0,0x8000,0,0,0xFC0,0x8000,0,0,
0,0,0,0x8001,0x8000,0x10B0,0xC0,0,0,0,0,0,1,
0x9840,0x1003,0x986,0x3332,0x7F80,0xE00,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0xC000,0,0,0x80,0xF800,0,0,
0,0,0,0x4001,0x8000,0x10F0,0x180,0,0,0,0,0,0,
0x871,0x802,0x1380,0x1F,0x30E0,8,0,0,0x40,0,0,0,0,
0,0,0,0,0,0,0,0xC000,0,0,0,0x4FC0,0,0,0,0,0,
0x6000,0,0xE0,0x300,0,0,0,0,0,0,0x2819,0x9E41,
0x13C0,0x1F99,0xE01C,14,0,0,0x40,0,0,0,0,0,0,0,
0,0,0,0,0xC000,0,0,0,0x70,0,0,0,0,0,0x3000,0,
0x1800,0x200,0,0,0,0,0,0,0x2C08,0x3F3,0x1740,
0xDF0E,0xC007,0xC007,0,0,0,0,0,0,0,0,0,0,0,0,0,
1,0x8000,0,0,0,0x18,0,0,0,0,0,0x3800,0,0x1800,
0x600,0,0,0,0,0,0,0x608,0x1E,0xDC0,0xC00D,0x8000,
0x6003,0x8000,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,
0,0,14,0x8000,0,0,0,0,0x800,0,0x1800,0x400,0,0,
0,0,0,0,0x308,0,0xCC0,0,0x7000,0x3037,0x8000,0,0,
0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,3,0xC000,0,0,
0,0,0x400,0,0x1800,0x400,0,0,0,0,0,0,0x7C8,0,
0xC80,0,0x1C00,0x103E,0,0,0,0,0,0,0,0,0,0,0,0,
0,1,0,0,0,0,0,0x4000,0,0,0,0,0x400,0,0x1800,
0x600,0,0,0,0,0,0,0x670,0,0xE00,0,0x600,0x1EFE,
0x1800,0,0,0,0,0,0,0,0,0,0,0,0,1,0x8000,0,0,
0,0,0x6000,0,0,0,0,0x700,0,0x1C00,0x200,0,0,0,0,
0,0,0x7F,0x8600,0,0,0x300,0x730,0x1C00,0,0x60,0,0,
0,0,0,0,0,0,0,0,0,0xC000,0,0,0,0,0x2000,0,0,
0,0,0x600,0,0xC00,0x200,0,0,0,0x8000,0,0,0x18,
0x7F80,0,0,0x300,0x400,0xB00,0,0,0,0,0,0,0,0,0,
0,0,0,0,0x6000,0,0,0,0,0x2000,0,0,0,0,0x200,0,
0xE00,0x400,0,0,1,0x8000,0,0,14,0x80,0,0,0x301,
0xF600,0x360,0,0,0,0,0,0,0x600,0,0,0,0,0,0,
0x3000,0,0,0,0,0x2000,0,0x200,0,0,0x300,0,0x600,
0x400,0,0,0,0,0,0,1,0xFEF0,0x3027,0xC000,0x7C3,
0x1B00,0x1F8,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1000,
0,0,0,0,0x4000,0,0x200,0,0,0x100,0,0x3300,0x400,
0,0,0,0,0,0,0,0x3F7,0xFFE7,0xE000,0x62,0x9C0,
0x19E,0,0,0,0,0x300,0,0,0,0,0,0,0,0,0x1800,0,
0,0,0,0x4000,0,0,0,0,0x300,0,0x3100,0x200,0,0,0,
0,0,0,0,7,0xD987,0x8000,0x1E,0xCD8,0x1E,0,0,0,0,
0,0,0x80,0,0,0,0,0,0,0x800,0,0,0,0,0x8000,0,0,
0,0,0x300,0,0x2000,0x200,0,0,0,0,0,0,0,0,0x1E0E,
0,0,0x738,14,0,0,0,0,0,0,0xC0,0,0,0,0,0,0,
0xC00,0,0,0,1,0,0,0,0,0,0x100,0,0xC00,0x380,0,
0,0,0,0,0,0,0,0xE18,0,0,0x1F0,3,0x8100,0,0,0,
0,0,0,0,0,0,0,0,0,0x400,0,0,0,3,0,0,0,0,0,
0x180,0,0xC00,0x80,0,0,0,0,0,0,0,0,0x70,0x30,6,
0,1,0x8100,0,0,0,0,0,0,0,0,0,0,0,0,0x600,0,0,
0,6,0,0,0,0,0,0x80,0,0xC00,0x18C,0,0,0,0,0,0,
0,0,0,0x1FC,0x600A,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0x200,0,0,0,4,0,0,0,0,0,0x180,0,0x200,
0x18C,0x100,0,0,0,0,0,0,0,0,0x1DF,0xF00A,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0x300,0,0,0,0x1C,0,
0,0,0,0,0x300,0,0x200,0x100,0x8380,0,0,0,0,0,0,
0,0,0xE0,0x700B,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x180,0,0,0,0x38,0,0,0,0,0,0x200,0,0x100,
0x180,0x82C0,0,0,0,0,0,0,0,0,0x100,0x6009,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0x80,0,0,0,0x20,0,0,
0,0,0,0x200,0,0x100,0x80,0xC40,0,0,0,0,0,0,0,0,
0x6300,0x4019,0xC00,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x80,0,0,0,0x20,0,0,0,0,0,0x400,0,0x80,0x80,
0xC40,0,0,0,0,0,0,0,1,0xFA00,0x4019,0xCC00,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0xC0,0,0,0,0x20,0,0,
0,0,0,0x400,0,0x80,0x80,0x1840,0,0,0,0,0,0,0,3,
0x1E00,0xC010,0x6000,0,0x180,0,0,0,0,0xC0,0,0,0,
0,0,0,0,0x70,0x1C00,0,0,0x20,0,0,0,0,0,0x400,0,
0x7C0,0x180,0x30C0,0,0,0,0,0,0,0,6,0x1A00,0x6010,
0x2000,0,0xF0,0,0,0,0,0,0x2000,0,0,0,0,0,0,
0x18,0x1C00,0,0,0x20,0,0,0,0x600,0,0xC00,0,0x380,
0x101,0xE0C0,0,0,0,0,0,0,0,0x3C,0,0x3C90,0x2000,
0,0x70,3,0,0,0,1,0xA000,0,0,0,0,0,0,15,0xC00,
0,0,0x20,0,0,0,0,0,0x800,0,0x6000,0x603,0x80,0,
0,0,0,0,0,0,0x78,0,0x7B0,0x3000,0,0x60,7,0,0,0,
0x606,0xC000,0,0,0,0,0,0,1,0x8000,0,0,0x20,0,0,
0,0,0,0x800,0,0x4000,0x1C02,0x100,0,0,0,0,0,0,0,
0x58,0,0x120,0x1000,0,0,0x1C,0,0,0,0x600,0xC00,0,
0,0,0,0,0,0,0xC000,0,0,0x20,0,0,0,0,0,0x800,
0x30,0,0x3004,0x100,0,0,0,0,0,0,0,0x40,0,0xE0,
0x1000,0,0,0x14,0,0,0,0,0xC00,0,0,0,0,0,0,0,
0x6000,0,0,0x60,0,0,0,0,0,0x80E,0x70,0,0x4006,
0x100,0,0,0,0,0,0,0,0xC0,0,0,0x1000,0,8,0x1C,0,
0,0,0,0xC00,0,0,0,0,0,0,0,0x2180,0,0,0x40,0,0,
0,0,0,0x41E,0x40,1,0x8002,0x100,0,0,0,0,0,0,0,
0x180,0,0,0x1800,0,8,0,0,0,0x600,0,0,0,0,0,0,
0,0,0,0x3080,0,0,0x40,0,0,0,0,0,0x608,0,3,2,
0x300,0,0,0,0,0,0,0,0x300,0,0,0xE00,0,0,0,0,0,
0x200,0,0,0,0,0,0,0,0,0,0x1000,0,0,0xC0,0,0,0,
0,0,0x300,0,6,2,0x200,0,0,0,0,0,0,0,0x7E00,0,
0,0x380,0,0x1C80,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x1000,0,0,0x80,0,0,0,0,0,0x100,0,4,2,0x200,
0x2000,0,0,0,0,0,7,0xC000,0,0,0x80,0,0x1EC0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0x1000,0,0,0x180,0,0,0,
0,0,0x180,0,2,4,0x200,0x7000,0,0,0,0,0,6,0,0,
0,0xC0,0,0xFC0,0,0,0,0x300,0,0,0,0,0,0,0,0,0,
0x1000,0,0,0x100,0,0,0,0,0,0x80,0,2,4,0x600,
0x3000,0,0,0,0,0,0x1C,0,0,0,0x40,0,0x780,0,0,0,
0x300,0,0,0,0,0,0,0,0,0,0x3000,0,0,0x300,0,0,
0,0,0,0xC0,0,3,8,0x400,0,0,0,0,0,0,0x38,0,0,
0,0x30,0,0x80,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x3000,0,0,0x1E00,0,0,0,0,0,0x40,0,1,8,0x400,0,
0,0,0,0,0,0x20,0,0,0,0x18,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0x2000,0,1,0xFC00,0,0,0,0,0,0x40,
0,2,8,0x800,0,0,0,0,0,0,0x20,0x30,0,0,8,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0x2000,0,7,0,0,0,
0,0,0,0x40,0,3,12,0x800,0,0,0,0,0,0,0x20,0x30,
0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2000,
0,0x1C,0,0,0,0,0,0,0x40,0,2,4,0x1800,0,0,0,0,
0,0,0x20,0,0x1C0,0,2,0x8000,0,0,0,0,0,0,0,
0x100,0,0,0,0,0,0,0x2000,0,0x10,0,0,0,0,0,0,
0x60,0,0x1E,6,0x3000,0,0,0,0,0,0,0x20,0,0x1C0,0,
3,0x8000,0,0,0,0,0,0,0,0x100,0,0,0,0,0,0,
0x2000,0,0x60,0,0,0,0,0,0,0x20,0,0x30,3,0xE000,
0,0,0,0,0,0,0xF0,0x700,0,0,1,0x8000,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0x2000,0,0x40,0,0,0,0,0,0,
0x20,0,0x20,0,0,0,0,0,0,0,0,0x70,0x700,0,0,0,
0x8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2000,0,
0x40,0,0,0,0,0,0,0x30,0,0x20,0,0,0,0,0,0,0,0,
0x60,0,0,0,0,0x8000,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0x6000,0,0x40,0,0,0,0,0,0,0x10,0,0x60,0,0,
0,0,0,0,0,0,0x30,0x8000,0,0,1,0xC000,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0x4000,0,0x40,0,0,0,0,0,
0,0x10,0,0x40,0,0,0,0,0,0,0,0,0x10,0xC000,0,
0x1800,0,0xC000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0xC000,0,0xC0,0,0,0,0,0,0,8,0,0x40,0,0,0,0,0,
0,0,0,0x18,0x4D00,0,0x1C00,0,0xC000,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0x8000,0,0x180,0,0,0,0,0,0,6,
0,0x1C0,0,0,0,0,0,0,0,0,8,0x1F80,0,0x1D80,0,
0xC000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xC000,0,
0x300,0,0,0,0,0,0,2,0,0x100,0,0,0,0,0,0,0,0,
8,0xDF80,0,0x18C0,0,0x8000,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0x8000,0,0xE00,0,0,0,0,0,0,2,0,0x300,
0,0,0,0,0,0,0,0,8,0xCF00,0,0x40,0,0x8000,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0x8000,0,0xE00,0,0,0,
0,0,0,1,0,0x200,0,0,0,0,0,0,0,0,8,0x8000,0,
0x8C0,0,0x8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x8000,0,0x1C00,0,0,0,0,0,0,1,0,0x400,0,0,0,0,
0,0,0,0,4,0,0x41,0xCCC0,1,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0x8000,0,0x1C00,0,0,0,0,0,0,0,
0x8000,0xC00,0,0,0,0,0,0,0,0,6,0x80,0x1FF9,
0xEC00,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x8000,0,0x7000,0,0,0,0,0,0,0,0x8000,0x3000,0,0,
0,0,0,0,0,0,2,0x83,0xE00E,0x6C00,2,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0x8000,0,0xF000,0,0,0,0,
0,0,1,0x8000,0x6000,0,0,0,0,0,0,0,0,6,12,3,
0xC00,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x8000,
0x180,0xE000,0,0,0,0,0,0,0,0x8000,0xC000,0,0,0,
0,0,0,0,0,12,0x7F8,1,0x9C00,12,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,1,0x8000,0x180,0xC000,0,0,0,0,0,
0,0,0xC1FF,0,0,0,0,0,0,0,0,0,6,0x1CF0,0,0xAE00,
8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0x1F1,
0x8000,0,0,0,0,0,0,0,0x7F50,0,0,0,0,0,0,0,0,
0,3,0xF800,0,0xFE00,0x18,0,0,0x1C00,0,0,0,0,0,0,
0,0,0,0,0,1,0,0xFE,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0x1F00,0x30,0,0,0x1E00,0,0,
0,0,0,0,0,0,0,0,0,3,0,0x20,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0x3E80,0x30,0,0,
0xE00,0,0,0,0,0,0,0,0,0,0,0,6,0,0x70,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x80,
0x30,0,0,0x780,0,0,0,0,0,0,0,0,0,0,0,4,0,
0x10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0xC0,0x20,0,0,0x380,0,0,0,0,0,0,0,0,0,0,
0,4,0,0x30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0x40,0x2E0,0,0,0x2CC,0,0,0,0,0,0,0,
0,0,0,0,4,0,0x60,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0x78,0xE7C0,0,0,0x274,0,0,0,0,
0,0,0,0,0,0,0,4,0,0x1C0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,7,0xFC00,0,0,0x20C,0,
0,0,0,0,0,0,0,0,0,0,4,0,0x7F00,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1800,0,0,
0x618,0,0,0,0,0,0,0,0,0,0,0,4,0,0x4000,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
0x8300,0,0,0x730,0,0,0,0,0,0,0,0,0,0,0,4,0,
0x4000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,1,0x8300,0,0,0x120,0,0,0,0,0,0,0,0,0,0,
0,12,12,0xC000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0x7300,0,0,0x3F40,0,0,0,0,0,
0,0,0,0,0,0,12,15,0x8000,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0x5D00,0,0,0x7DC0,
0,0,0,0,0,0,0,0,0,0,0,14,14,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2100,0,0,
0xC400,0,0,0,0,0,0,0,0,0,0,0,14,14,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x3100,0,0,0x8C00,0,0,0,0,0,0,0,0,0,0,0,0x1E,
14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0x1F00,0,1,0x9800,0x180,0,0,0,0,0,0,0,
0,0,0,0x1A,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0xC00,0,14,0x3000,0x100,0,0,0,
0,0,0,0,0,0,0,2,0x18,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x38,0xD000,0,0,
0,0,0,0,0,0,0,0,0,0x1F,0x10,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x60,
0x8000,0,0,0,0,0,0,0,0,0,0,0,0x1E,0x70,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x41,0x8000,0,0,0,0,0,0,0,0,0,0,0,0x34,0x180,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0xC1,0x8000,0,0,0,0,0,0,0,0,0,0,0,
0x7F,0x8100,0,0,0,0,0,0,0,0,0,0,0,0x3000,0,0,
0,0,0,0,0,0,0,0,0,0,0,0xFE,0,0,0,0,0,0,0,0,
0,0,0,0,0x7A,0xE0,0,0,0,0,0,0,0,0,0,0,0,
0x3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0x60,0,0,0,
0,0,0,0,0,0,0,0,0,0x3C,0x30,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0x7C,0x60,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0x78,0x80,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0x30,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0x78,0x180,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0x3C,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0x78,0x300,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0x38,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x78,0x600,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0x100,0,0,0,0,0,0,0,0,0,0,0,0,0x3C,0xC00,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0x100,0,0,0,0,0,0,0,0,0,0,0,0,0x3E,
0x400,0xFC0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x3E,0x600,0x1FC0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0x3F,0xFE00,0x200,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0x1F,0xF300,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0x3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,15,0xF380,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,3,0xFEE0,0,0,15,0,0,0,0,0x100,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0xFFFE,0,0,3,0,0,0,0,
0x100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0x3F80,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0x100,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,13,0x8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
14,7,0xC000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x300,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x700,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x7E0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x7B00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
0xFE00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
14,0xF800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x3F0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0x19,0x8000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0x1FFC,0x7FF,0x8C0F,0,0x3FF,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0x33,0,0,0,0,0,0,0,0,0,0,
0,0,1,0xFFC0,0,0,0xFF,0xF006,0xFC00,0xF000,0xFC03,
0xFC00,0xFC00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0xEE,0,0,0,0,0,0,0,0,0,0,0,0,7,0x7F,0xE000,
0,0x1F00,1,0x8000,0x4000,0x7FC,0,0x3FF,0x8000,0,0,
6,0,0,0,0,0,0,0,0,0,0,0,0,0x86,0,0,0,0,0,0,
0,0,0,0,0,0,4,0,0x1FF8,1,0xF000,0,0,0,0,0,0,
0x7000,0,0,6,0,0,0,0,0,0,0,0,0,6,0,0,0x186,0,
0,0,0,0,0,0,0,0,0,0,6,0x7FC,0,12,15,0,0,0,0,
0,0,0,0x1C00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x410F,0x8000,0,0,0,0,0,0,0,0,0,0,0x7D,0xF800,0,
3,0x38,0,0,0,0,0,0,0,0x1FFF,0xE000,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,0xF60D,0xA000,0,0,0,0,0,0,
0,0,0,0x7E,0x180,0,0,1,0x87E0,0,0,0,0,0,0,0,
0xC00,0x6F80,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1E1,
0x9401,0xF800,0,0,0,0,0,0,0,0x18,0,0xFE3,0xFE00,
0,0,0,0xDC00,0,0,0,0,0,0,0,0,0x7C70,0,0,0,0,
0,0,0,0,0,0,0,0,0,0x3F0,0x8E00,0xF000,0,0,0,0,
0,0x1E,0,0x1FF,0x8023,0xF800,0xC00,0,0,0,0x6000,0,
0,0,0,0,0,0,0,0x340F,0xE000,0,0,0,0,0,0,0,0,
0,0,0,0,0,0x4700,0x2000,0,0,0,0,0,0x33,15,
0xFF00,0xFFFE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,
0x1FC0,0,0,0,0,0,0,0,0,0,1,0,0,0xFF,0x8580,
0x3000,0,0,0,0,0,0x1FF3,0x1F0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,2,0x7E,0,0,0,0,0,0,0,0,0,3,
0xFF00,0,0xC0,0x580,0x3000,0,0,0,0,7,0xA001,0xFE00,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,
0,0,0,0,0,0,0,0x61FF,0,0x3F,0x9980,0x1800,0,0,0,
0,4,0xE000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,6,0,0,0,0,0,0,0,0x780,0,0x1F,0xB000,0xFFFE,
0x3FE0,0x7E00,0x1800,0,0,0,0,0x1FC,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,
0,0x1CFF,0xC1F0,0x19,0xF000,3,0xFFFF,0xF000,0xC00,0,
0,0,15,0xFE00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0xF8,0,0,0,0,0,0,0,0x7001,0xC1A0,0x3C,
0x2000,0,0,0,0xC00,0,0,0,0x70,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0x700,0,0,0,0,0,0,
0x3801,0xC001,0x8199,0xE3FC,0,0,0,12,0x800,0,0,0,
0x1E0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0x3C00,0,0,0,0,0,0x1DF,0xC701,0,0xFE06,0x3C04,
0,0,0,15,0xF800,0,0,0,0xE00,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0x4000,0,0,0,0,0,
0xFE20,0xF6,0,0,0,0,0,0,6,0x800,0,0,0,0x7800,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0xC000,0,0,0,0,0x3F,0,12,0,0,0,0,0,0,14,0,0,
0,1,0xC000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,1,0x8000,0,0,0,0x3FF,0xFFFC,0,0,0,0,0,0,
0,0,0x78,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,0x8000,0,0,0,0x3F8,0,0,0,0,
0,0,0,0,0,7,0xFFF0,0,0,0x3F0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,1,0x8000,0,0,0,0x7E0,
0,0,0,0,0,0,0,0,0,0,15,0x8000,0,0x3E00,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x7C00,
0,0,3,0x87F8,0,0,0,0,0,0,0,0,0,0,0,0x7E00,7,
0xC000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,7,0xFFE0,0,0,3,0xC01F,0,0,0,0,0,0,0,0,0,
0,0,0x1FF,0xFFF8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0xF8,0,0,0,3,0xE001,0xC000,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0xC0,0,0,0,0,0x1F,0x7FF8,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0xE0,0,0,0,0,0x7F,
0xFF80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x20,0,0,0,0,
0x78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x60,0,0,0,0,
0xC0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xFF,0xC000,0,
0,0,0x180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x3C00,0,0,0,0x80,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0x3C0,0,0,0,0x80,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0x3FF,0xF800,0xF000,0,0x7C,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0xF60,0x7FF,0xFFE,0,3,0xFE00,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0x3870,0,0,0,0,0xF800,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0x408,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
mpr_static(bimage, 640, 320, 1, bimg);
SHAR_EOF
fi # end of overwriting check
echo shar: extracting "'sunclock.1'" '(2108 characters)'
if test -f 'sunclock.1'
then
echo shar: will not over-write existing file "'sunclock.1'"
else
cat << \SHAR_EOF > 'sunclock.1'
.TH SUNCLOCK 1 "21 DEC 1988"
.UC 4
.SH NAME
sunclock \- Show illuminated portion of Earth
.SH SYNOPSIS
.B sunclock
.SH DESCRIPTION
.I sunclock
is a SunView application that displays a map of the Earth and
indicates the illuminated portion of the globe by drawing
sunlit areas dark on light, night areas as light on dark.
.PP
The program initially appears iconic, showing a small map in a
126 by 63 pixel double-sized icon with the local date and time
at the bottom. If opened, a 640 by 320 pixel map is displayed
which shows both the local and Universal (GMT) time to the second.
While the window is open, pressing the right mouse button displays
a menu which lets you step the clock from the present time forward
or backward in increments of one hour, day, week, month, or year.
If you select ``Animate'' from this menu, the program steps continuously
every half second. Try selecting ``Week'' then ``Animate'' to watch
the seasons pass. Select ``Year'' and ``Animate'' and you can see the
(ever so subtle) precession of the equinoxes. Selecting ``Real time''
restores the current time display.
.SH HOW IT WORKS
.I sunclock
calculates the position of the Sun using the algorithm in chapter 18 of:
.PP
.I Astronomical Formulae for Calculators
by Jean Meeus, Third Edition, Richmond: Willmann-Bell, 1985.
.PP
and Mercator projects the illuminated area onto map image. The
Sun's position is calculated to better than one arc-second
in accuracy.
.SH BUGS
The map isn't rescaled if you resize the open window. (I don't want
to have to store a vector database for the map.)
.PP
The illuminated area shown is the area which would be sunlit
if the Earth had no atmosphere. The actual illuminated area is
larger because of atmospheric refraction and twilight.
.PP
Only works for dates between 1970 and 2034 due to limited range of Unix
time representation.
.SH AUTHOR
John Walker
.br
Autodesk, Inc.
.br
2320 Marinship Way
.br
Sausalito, CA 94965
.br
USA
.br
{sun,well,uunet}!acad!kelvin
.br
or: kelvin at acad.uu.net
.br
Fax: (415) 389-9418
.br
Voice: (415) 332-2344 Ext. 2829
SHAR_EOF
fi # end of overwriting check
# End of shell archive
exit 0
More information about the Comp.sources.sun
mailing list