a
This commit is contained in:
24
libdraw/Makefile
Normal file
24
libdraw/Makefile
Normal file
@ -0,0 +1,24 @@
|
||||
LIB=libdraw.a
|
||||
CC=gcc
|
||||
CFLAGS=-I../include -I. -c -ggdb -D_THREAD_SAFE -pthread
|
||||
O=o
|
||||
|
||||
OFILES=\
|
||||
alloc.$O\
|
||||
arith.$O\
|
||||
bytesperline.$O\
|
||||
chan.$O\
|
||||
defont.$O\
|
||||
drawrepl.$O\
|
||||
icossin.$O\
|
||||
icossin2.$O\
|
||||
rectclip.$O\
|
||||
rgb.$O
|
||||
|
||||
$(LIB): $(OFILES)
|
||||
ar r $(LIB) $(OFILES)
|
||||
ranlib $(LIB)
|
||||
|
||||
%.$O: %.c
|
||||
$(CC) $(CFLAGS) $*.c
|
||||
|
237
libdraw/alloc.c
Normal file
237
libdraw/alloc.c
Normal file
@ -0,0 +1,237 @@
|
||||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <draw.h>
|
||||
|
||||
Image*
|
||||
allocimage(Display *d, Rectangle r, ulong chan, int repl, ulong val)
|
||||
{
|
||||
return _allocimage(nil, d, r, chan, repl, val, 0, 0);
|
||||
}
|
||||
|
||||
Image*
|
||||
_allocimage(Image *ai, Display *d, Rectangle r, ulong chan, int repl, ulong val, int screenid, int refresh)
|
||||
{
|
||||
uchar *a;
|
||||
char *err;
|
||||
Image *i;
|
||||
Rectangle clipr;
|
||||
int id;
|
||||
int depth;
|
||||
|
||||
err = 0;
|
||||
i = 0;
|
||||
|
||||
if(chan == 0){
|
||||
werrstr("bad channel descriptor");
|
||||
return nil;
|
||||
}
|
||||
|
||||
depth = chantodepth(chan);
|
||||
if(depth == 0){
|
||||
err = "bad channel descriptor";
|
||||
Error:
|
||||
if(err)
|
||||
werrstr("allocimage: %s", err);
|
||||
else
|
||||
werrstr("allocimage: %r");
|
||||
free(i);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* flush pending data so we don't get error allocating the image */
|
||||
flushimage(d, 0);
|
||||
a = bufimage(d, 1+4+4+1+4+1+4*4+4*4+4);
|
||||
if(a == 0)
|
||||
goto Error;
|
||||
d->imageid++;
|
||||
id = d->imageid;
|
||||
a[0] = 'b';
|
||||
BPLONG(a+1, id);
|
||||
BPLONG(a+5, screenid);
|
||||
a[9] = refresh;
|
||||
BPLONG(a+10, chan);
|
||||
a[14] = repl;
|
||||
BPLONG(a+15, r.min.x);
|
||||
BPLONG(a+19, r.min.y);
|
||||
BPLONG(a+23, r.max.x);
|
||||
BPLONG(a+27, r.max.y);
|
||||
if(repl)
|
||||
/* huge but not infinite, so various offsets will leave it huge, not overflow */
|
||||
clipr = Rect(-0x3FFFFFFF, -0x3FFFFFFF, 0x3FFFFFFF, 0x3FFFFFFF);
|
||||
else
|
||||
clipr = r;
|
||||
BPLONG(a+31, clipr.min.x);
|
||||
BPLONG(a+35, clipr.min.y);
|
||||
BPLONG(a+39, clipr.max.x);
|
||||
BPLONG(a+43, clipr.max.y);
|
||||
BPLONG(a+47, val);
|
||||
if(flushimage(d, 0) < 0)
|
||||
goto Error;
|
||||
|
||||
if(ai)
|
||||
i = ai;
|
||||
else{
|
||||
i = malloc(sizeof(Image));
|
||||
if(i == nil){
|
||||
a = bufimage(d, 1+4);
|
||||
if(a){
|
||||
a[0] = 'f';
|
||||
BPLONG(a+1, id);
|
||||
flushimage(d, 0);
|
||||
}
|
||||
goto Error;
|
||||
}
|
||||
}
|
||||
i->display = d;
|
||||
i->id = id;
|
||||
i->depth = depth;
|
||||
i->chan = chan;
|
||||
i->r = r;
|
||||
i->clipr = clipr;
|
||||
i->repl = repl;
|
||||
i->screen = 0;
|
||||
i->next = 0;
|
||||
return i;
|
||||
}
|
||||
|
||||
Image*
|
||||
namedimage(Display *d, char *name)
|
||||
{
|
||||
uchar *a;
|
||||
char *err, buf[12*12+1];
|
||||
Image *i;
|
||||
int id, n;
|
||||
ulong chan;
|
||||
|
||||
err = 0;
|
||||
i = 0;
|
||||
|
||||
n = strlen(name);
|
||||
if(n >= 256){
|
||||
err = "name too long";
|
||||
Error:
|
||||
if(err)
|
||||
werrstr("namedimage: %s", err);
|
||||
else
|
||||
werrstr("namedimage: %r");
|
||||
if(i)
|
||||
free(i);
|
||||
return 0;
|
||||
}
|
||||
/* flush pending data so we don't get error allocating the image */
|
||||
flushimage(d, 0);
|
||||
a = bufimage(d, 1+4+1+n);
|
||||
if(a == 0)
|
||||
goto Error;
|
||||
d->imageid++;
|
||||
id = d->imageid;
|
||||
a[0] = 'n';
|
||||
BPLONG(a+1, id);
|
||||
a[5] = n;
|
||||
memmove(a+6, name, n);
|
||||
if(flushimage(d, 0) < 0)
|
||||
goto Error;
|
||||
|
||||
if(pread(d->ctlfd, buf, sizeof buf, 0) < 12*12)
|
||||
goto Error;
|
||||
buf[12*12] = '\0';
|
||||
|
||||
i = malloc(sizeof(Image));
|
||||
if(i == nil){
|
||||
Error1:
|
||||
a = bufimage(d, 1+4);
|
||||
if(a){
|
||||
a[0] = 'f';
|
||||
BPLONG(a+1, id);
|
||||
flushimage(d, 0);
|
||||
}
|
||||
goto Error;
|
||||
}
|
||||
i->display = d;
|
||||
i->id = id;
|
||||
if((chan=strtochan(buf+2*12))==0){
|
||||
werrstr("bad channel '%.12s' from devdraw", buf+2*12);
|
||||
goto Error1;
|
||||
}
|
||||
i->chan = chan;
|
||||
i->depth = chantodepth(chan);
|
||||
i->repl = atoi(buf+3*12);
|
||||
i->r.min.x = atoi(buf+4*12);
|
||||
i->r.min.y = atoi(buf+5*12);
|
||||
i->r.max.x = atoi(buf+6*12);
|
||||
i->r.max.y = atoi(buf+7*12);
|
||||
i->clipr.min.x = atoi(buf+8*12);
|
||||
i->clipr.min.y = atoi(buf+9*12);
|
||||
i->clipr.max.x = atoi(buf+10*12);
|
||||
i->clipr.max.y = atoi(buf+11*12);
|
||||
i->screen = 0;
|
||||
i->next = 0;
|
||||
return i;
|
||||
}
|
||||
|
||||
int
|
||||
nameimage(Image *i, char *name, int in)
|
||||
{
|
||||
uchar *a;
|
||||
int n;
|
||||
|
||||
n = strlen(name);
|
||||
a = bufimage(i->display, 1+4+1+1+n);
|
||||
if(a == 0)
|
||||
return 0;
|
||||
a[0] = 'N';
|
||||
BPLONG(a+1, i->id);
|
||||
a[5] = in;
|
||||
a[6] = n;
|
||||
memmove(a+7, name, n);
|
||||
if(flushimage(i->display, 0) < 0)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
_freeimage1(Image *i)
|
||||
{
|
||||
uchar *a;
|
||||
Display *d;
|
||||
Image *w;
|
||||
|
||||
if(i == 0)
|
||||
return 0;
|
||||
/* make sure no refresh events occur on this if we block in the write */
|
||||
d = i->display;
|
||||
/* flush pending data so we don't get error deleting the image */
|
||||
flushimage(d, 0);
|
||||
a = bufimage(d, 1+4);
|
||||
if(a == 0)
|
||||
return -1;
|
||||
a[0] = 'f';
|
||||
BPLONG(a+1, i->id);
|
||||
if(i->screen){
|
||||
w = d->windows;
|
||||
if(w == i)
|
||||
d->windows = i->next;
|
||||
else
|
||||
while(w){
|
||||
if(w->next == i){
|
||||
w->next = i->next;
|
||||
break;
|
||||
}
|
||||
w = w->next;
|
||||
}
|
||||
}
|
||||
if(flushimage(d, i->screen!=0) < 0)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
freeimage(Image *i)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = _freeimage1(i);
|
||||
free(i);
|
||||
return ret;
|
||||
}
|
206
libdraw/arith.c
Normal file
206
libdraw/arith.c
Normal file
@ -0,0 +1,206 @@
|
||||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <draw.h>
|
||||
|
||||
Point
|
||||
Pt(int x, int y)
|
||||
{
|
||||
Point p;
|
||||
|
||||
p.x = x;
|
||||
p.y = y;
|
||||
return p;
|
||||
}
|
||||
|
||||
Rectangle
|
||||
Rect(int x, int y, int bx, int by)
|
||||
{
|
||||
Rectangle r;
|
||||
|
||||
r.min.x = x;
|
||||
r.min.y = y;
|
||||
r.max.x = bx;
|
||||
r.max.y = by;
|
||||
return r;
|
||||
}
|
||||
|
||||
Rectangle
|
||||
Rpt(Point min, Point max)
|
||||
{
|
||||
Rectangle r;
|
||||
|
||||
r.min = min;
|
||||
r.max = max;
|
||||
return r;
|
||||
}
|
||||
|
||||
Point
|
||||
addpt(Point a, Point b)
|
||||
{
|
||||
a.x += b.x;
|
||||
a.y += b.y;
|
||||
return a;
|
||||
}
|
||||
|
||||
Point
|
||||
subpt(Point a, Point b)
|
||||
{
|
||||
a.x -= b.x;
|
||||
a.y -= b.y;
|
||||
return a;
|
||||
}
|
||||
|
||||
Rectangle
|
||||
insetrect(Rectangle r, int n)
|
||||
{
|
||||
r.min.x += n;
|
||||
r.min.y += n;
|
||||
r.max.x -= n;
|
||||
r.max.y -= n;
|
||||
return r;
|
||||
}
|
||||
|
||||
Point
|
||||
divpt(Point a, int b)
|
||||
{
|
||||
a.x /= b;
|
||||
a.y /= b;
|
||||
return a;
|
||||
}
|
||||
|
||||
Point
|
||||
mulpt(Point a, int b)
|
||||
{
|
||||
a.x *= b;
|
||||
a.y *= b;
|
||||
return a;
|
||||
}
|
||||
|
||||
Rectangle
|
||||
rectsubpt(Rectangle r, Point p)
|
||||
{
|
||||
r.min.x -= p.x;
|
||||
r.min.y -= p.y;
|
||||
r.max.x -= p.x;
|
||||
r.max.y -= p.y;
|
||||
return r;
|
||||
}
|
||||
|
||||
Rectangle
|
||||
rectaddpt(Rectangle r, Point p)
|
||||
{
|
||||
r.min.x += p.x;
|
||||
r.min.y += p.y;
|
||||
r.max.x += p.x;
|
||||
r.max.y += p.y;
|
||||
return r;
|
||||
}
|
||||
|
||||
int
|
||||
eqpt(Point p, Point q)
|
||||
{
|
||||
return p.x==q.x && p.y==q.y;
|
||||
}
|
||||
|
||||
int
|
||||
eqrect(Rectangle r, Rectangle s)
|
||||
{
|
||||
return r.min.x==s.min.x && r.max.x==s.max.x &&
|
||||
r.min.y==s.min.y && r.max.y==s.max.y;
|
||||
}
|
||||
|
||||
int
|
||||
rectXrect(Rectangle r, Rectangle s)
|
||||
{
|
||||
return r.min.x<s.max.x && s.min.x<r.max.x &&
|
||||
r.min.y<s.max.y && s.min.y<r.max.y;
|
||||
}
|
||||
|
||||
int
|
||||
rectinrect(Rectangle r, Rectangle s)
|
||||
{
|
||||
return s.min.x<=r.min.x && r.max.x<=s.max.x && s.min.y<=r.min.y && r.max.y<=s.max.y;
|
||||
}
|
||||
|
||||
int
|
||||
ptinrect(Point p, Rectangle r)
|
||||
{
|
||||
return p.x>=r.min.x && p.x<r.max.x &&
|
||||
p.y>=r.min.y && p.y<r.max.y;
|
||||
}
|
||||
|
||||
Rectangle
|
||||
canonrect(Rectangle r)
|
||||
{
|
||||
int t;
|
||||
if (r.max.x < r.min.x) {
|
||||
t = r.min.x;
|
||||
r.min.x = r.max.x;
|
||||
r.max.x = t;
|
||||
}
|
||||
if (r.max.y < r.min.y) {
|
||||
t = r.min.y;
|
||||
r.min.y = r.max.y;
|
||||
r.max.y = t;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
void
|
||||
combinerect(Rectangle *r1, Rectangle r2)
|
||||
{
|
||||
if(r1->min.x > r2.min.x)
|
||||
r1->min.x = r2.min.x;
|
||||
if(r1->min.y > r2.min.y)
|
||||
r1->min.y = r2.min.y;
|
||||
if(r1->max.x < r2.max.x)
|
||||
r1->max.x = r2.max.x;
|
||||
if(r1->max.y < r2.max.y)
|
||||
r1->max.y = r2.max.y;
|
||||
}
|
||||
|
||||
ulong
|
||||
drawld2chan[] = {
|
||||
GREY1,
|
||||
GREY2,
|
||||
GREY4,
|
||||
CMAP8,
|
||||
};
|
||||
|
||||
int log2[] = { -1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, 4 /* BUG */, -1, -1, -1, -1, -1, -1, -1, 5 };
|
||||
|
||||
ulong
|
||||
setalpha(ulong color, uchar alpha)
|
||||
{
|
||||
int red, green, blue;
|
||||
|
||||
red = (color >> 3*8) & 0xFF;
|
||||
green = (color >> 2*8) & 0xFF;
|
||||
blue = (color >> 1*8) & 0xFF;
|
||||
/* ignore incoming alpha */
|
||||
red = (red * alpha)/255;
|
||||
green = (green * alpha)/255;
|
||||
blue = (blue * alpha)/255;
|
||||
return (red<<3*8) | (green<<2*8) | (blue<<1*8) | (alpha<<0*8);
|
||||
}
|
||||
|
||||
Point ZP;
|
||||
Rectangle ZR;
|
||||
int
|
||||
Rfmt(Fmt *f)
|
||||
{
|
||||
Rectangle r;
|
||||
|
||||
r = va_arg(f->args, Rectangle);
|
||||
return fmtprint(f, "%P %P", r.min, r.max);
|
||||
}
|
||||
|
||||
int
|
||||
Pfmt(Fmt *f)
|
||||
{
|
||||
Point p;
|
||||
|
||||
p = va_arg(f->args, Point);
|
||||
return fmtprint(f, "[%d %d]", p.x, p.y);
|
||||
}
|
||||
|
34
libdraw/bytesperline.c
Normal file
34
libdraw/bytesperline.c
Normal file
@ -0,0 +1,34 @@
|
||||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <draw.h>
|
||||
|
||||
static
|
||||
int
|
||||
unitsperline(Rectangle r, int d, int bitsperunit)
|
||||
{
|
||||
ulong l, t;
|
||||
|
||||
if(d <= 0 || d > 32) /* being called wrong. d is image depth. */
|
||||
abort();
|
||||
|
||||
if(r.min.x >= 0){
|
||||
l = (r.max.x*d+bitsperunit-1)/bitsperunit;
|
||||
l -= (r.min.x*d)/bitsperunit;
|
||||
}else{ /* make positive before divide */
|
||||
t = (-r.min.x*d+bitsperunit-1)/bitsperunit;
|
||||
l = t+(r.max.x*d+bitsperunit-1)/bitsperunit;
|
||||
}
|
||||
return l;
|
||||
}
|
||||
|
||||
int
|
||||
wordsperline(Rectangle r, int d)
|
||||
{
|
||||
return unitsperline(r, d, 8*sizeof(ulong));
|
||||
}
|
||||
|
||||
int
|
||||
bytesperline(Rectangle r, int d)
|
||||
{
|
||||
return unitsperline(r, d, 8);
|
||||
}
|
77
libdraw/chan.c
Normal file
77
libdraw/chan.c
Normal file
@ -0,0 +1,77 @@
|
||||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <draw.h>
|
||||
|
||||
static char channames[] = "rgbkamx";
|
||||
char*
|
||||
chantostr(char *buf, ulong cc)
|
||||
{
|
||||
ulong c, rc;
|
||||
char *p;
|
||||
|
||||
if(chantodepth(cc) == 0)
|
||||
return nil;
|
||||
|
||||
/* reverse the channel descriptor so we can easily generate the string in the right order */
|
||||
rc = 0;
|
||||
for(c=cc; c; c>>=8){
|
||||
rc <<= 8;
|
||||
rc |= c&0xFF;
|
||||
}
|
||||
|
||||
p = buf;
|
||||
for(c=rc; c; c>>=8) {
|
||||
*p++ = channames[TYPE(c)];
|
||||
*p++ = '0'+NBITS(c);
|
||||
}
|
||||
*p = 0;
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
/* avoid pulling in ctype when using with drawterm etc. */
|
||||
static int
|
||||
isspace(char c)
|
||||
{
|
||||
return c==' ' || c== '\t' || c=='\r' || c=='\n';
|
||||
}
|
||||
|
||||
ulong
|
||||
strtochan(char *s)
|
||||
{
|
||||
char *p, *q;
|
||||
ulong c;
|
||||
int t, n;
|
||||
|
||||
c = 0;
|
||||
p=s;
|
||||
while(*p && isspace(*p))
|
||||
p++;
|
||||
|
||||
while(*p && !isspace(*p)){
|
||||
if((q = strchr(channames, p[0])) == nil)
|
||||
return 0;
|
||||
t = q-channames;
|
||||
if(p[1] < '0' || p[1] > '9')
|
||||
return 0;
|
||||
n = p[1]-'0';
|
||||
c = (c<<8) | __DC(t, n);
|
||||
p += 2;
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
int
|
||||
chantodepth(ulong c)
|
||||
{
|
||||
int n;
|
||||
|
||||
for(n=0; c; c>>=8){
|
||||
if(TYPE(c) >= NChan || NBITS(c) > 8 || NBITS(c) <= 0)
|
||||
return 0;
|
||||
n += NBITS(c);
|
||||
}
|
||||
if(n==0 || (n>8 && n%8) || (n<8 && 8%n))
|
||||
return 0;
|
||||
return n;
|
||||
}
|
402
libdraw/defont.c
Normal file
402
libdraw/defont.c
Normal file
@ -0,0 +1,402 @@
|
||||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <draw.h>
|
||||
|
||||
/*
|
||||
* lucm/latin1.9, in uncompressed form
|
||||
*/
|
||||
uchar
|
||||
defontdata[] =
|
||||
{
|
||||
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x20,0x20,0x20,0x20,
|
||||
0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
|
||||
0x20,0x20,0x30,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x32,0x33,0x30,0x34,0x20,
|
||||
0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x35,0x20,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,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,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x30,0x06,0x06,0x03,0x42,0x40,0x00,0x00,0x00,0x18,0x03,0x03,
|
||||
0x02,0x43,0x00,0x60,0x60,0x48,0x00,0x0d,0x0c,0x01,0x81,0x80,0xd0,0x90,0x00,0x00,
|
||||
0x18,0x01,0x81,0x81,0x40,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x7f,0x9c,0x1c,
|
||||
0x0e,0x07,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x70,
|
||||
0x38,0x1c,0x0e,0x04,0x81,0xc1,0xc0,0x70,0x00,0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,0x80,0xc0,0x63,0xe3,
|
||||
0xf1,0xf8,0xfe,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7f,0xff,0xff,0x1f,0x8f,
|
||||
0xc7,0xe3,0xf1,0xfb,0x7e,0x3e,0x3f,0x8f,0xff,0xe3,0xe3,0xff,0xff,0xff,0xff,0xff,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x0c,0x18,0x09,0x05,0x82,0x40,0xc0,0x00,0x00,0x06,0x0c,0x04,
|
||||
0x82,0x40,0xc1,0x80,0x90,0x48,0x00,0x16,0x03,0x06,0x02,0x41,0x60,0x90,0x00,0x00,
|
||||
0x06,0x06,0x02,0x41,0x41,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0x7f,0xa0,0x10,
|
||||
0x08,0x04,0x02,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x48,
|
||||
0x24,0x12,0x09,0x06,0x82,0x01,0x00,0x90,0x00,0x20,0x10,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x04,0x80,0x00,0x40,0x00,0x00,0x38,0x06,0x18,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x07,0xc6,0x01,0xf0,0x00,0x00,0x0c,0x00,0x18,0x00,0x00,0x30,0x00,0x3c,
|
||||
0x00,0x60,0x06,0x01,0x8c,0x07,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xe0,0xc3,0xc0,0x01,0x54,0x9c,0xc0,0x5f,0xef,
|
||||
0xf7,0xfb,0xfd,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0x7f,0xff,0xff,0x6f,0xb7,
|
||||
0xdb,0xed,0xf6,0xf9,0x7d,0xfe,0xff,0x6f,0xff,0xdf,0xef,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0x00,0x01,0x00,0x00,0x00,0x00,0x30,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x30,0x06,0x06,0x06,0x82,0x80,0xc0,0x00,
|
||||
0x00,0x18,0x03,0x03,0x02,0x41,0x80,0x30,0x30,0x24,0x76,0x0d,0x0c,0x00,0xc0,0xc0,
|
||||
0xd0,0x50,0x00,0x00,0x18,0x01,0x81,0x81,0x40,0x30,0x00,0x28,0x0f,0x7f,0xbc,0x1c,
|
||||
0x0e,0x07,0x03,0xc0,0x10,0x70,0x24,0x10,0x09,0x07,0x03,0x80,0xe0,0x70,0x90,0x48,
|
||||
0x24,0x12,0x09,0x05,0x81,0x81,0xc0,0x80,0x70,0x18,0x1c,0x07,0x01,0xc1,0xc0,0x90,
|
||||
0x00,0x0c,0x04,0x84,0x83,0xe1,0xc0,0xe0,0x38,0x0c,0x0c,0x02,0x00,0x00,0x00,0x00,
|
||||
0x00,0x06,0x1c,0x06,0x0f,0x87,0xc0,0x63,0xf8,0x78,0xfe,0x3e,0x0e,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x7c,0x1c,0x0c,0x1f,0x03,0xc7,0xc3,0xf1,0xf8,0x3c,0x63,0x3f,0x0f,
|
||||
0x8c,0x66,0x06,0x19,0x84,0x78,0x7e,0x1e,0x1f,0x07,0xcf,0xf3,0x1b,0x0d,0x86,0x63,
|
||||
0x61,0x9f,0xc6,0x06,0x00,0x30,0x00,0x00,0x10,0x00,0x18,0x00,0x00,0x30,0x00,0x60,
|
||||
0x00,0x60,0x06,0x01,0x8c,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0xc0,0x60,0x00,0xaa,0xb6,0xc0,0x43,0xe3,
|
||||
0xf1,0xf8,0xfc,0x3f,0xef,0x8f,0xdb,0xef,0xf6,0xf8,0xfb,0xff,0x1f,0x8f,0x6f,0xb7,
|
||||
0xdb,0xed,0xf6,0xfa,0x7e,0x7e,0x3f,0x7f,0x8f,0xe7,0xe3,0xf8,0xfe,0x3e,0x3f,0x6f,
|
||||
0x00,0x00,0x01,0x01,0xc8,0x0b,0x0c,0x30,0x7c,0x14,0x0f,0x0f,0x00,0x00,0x00,0x00,
|
||||
0x78,0x00,0x1c,0x00,0x0f,0x07,0x81,0x80,0x00,0x7c,0x00,0x00,0x1c,0x0f,0x80,0x04,
|
||||
0x42,0x23,0x90,0x00,0x18,0x0c,0x06,0x03,0x01,0x80,0xc0,0x3c,0x3c,0x3f,0x1f,0x8f,
|
||||
0xc7,0xe7,0xe3,0xf1,0xf8,0xfc,0x7c,0x30,0x8f,0x07,0x83,0xc1,0xe0,0xf0,0x00,0x3d,
|
||||
0x31,0x98,0xcc,0x66,0x36,0x19,0x80,0xcc,0x0c,0x18,0x09,0x0b,0x02,0x81,0x20,0x00,
|
||||
0x00,0x06,0x0c,0x04,0x82,0x40,0x60,0xc0,0x48,0x24,0x18,0x16,0x03,0x03,0x01,0x21,
|
||||
0x60,0x50,0x00,0x00,0x06,0x06,0x02,0x41,0x40,0xc1,0x80,0x28,0x87,0x7f,0x84,0x10,
|
||||
0x08,0x04,0x02,0x40,0x38,0x48,0x24,0x10,0x09,0x04,0x04,0x81,0x00,0x80,0x90,0x48,
|
||||
0x24,0x12,0x09,0x04,0x80,0x41,0x00,0x80,0x40,0x04,0x10,0x04,0x02,0x01,0x20,0x90,
|
||||
0x00,0x0c,0x04,0x84,0x86,0x53,0x65,0xb0,0x08,0x18,0x06,0x0a,0x80,0x00,0x00,0x00,
|
||||
0x00,0x0c,0x36,0x0e,0x19,0xcc,0xe0,0xe3,0xf8,0xcc,0xfe,0x63,0x1b,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0xc6,0x62,0x0c,0x19,0x86,0x66,0x63,0x01,0x80,0x66,0x63,0x0c,0x01,
|
||||
0x8c,0xc6,0x06,0x19,0xc4,0xcc,0x63,0x33,0x19,0x8c,0x61,0x83,0x1b,0x0d,0x86,0x63,
|
||||
0x61,0x80,0xc6,0x03,0x00,0x30,0x30,0x00,0x1c,0x00,0x18,0x00,0x00,0x30,0x00,0x60,
|
||||
0x00,0x60,0x00,0x00,0x0c,0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0xc0,0x60,0x01,0x54,0x86,0xc0,0x7b,0xef,
|
||||
0xf7,0xfb,0xfd,0xbf,0xc7,0xb7,0xdb,0xef,0xf6,0xfb,0xfb,0x7e,0xff,0x7f,0x6f,0xb7,
|
||||
0xdb,0xed,0xf6,0xfb,0x7f,0xbe,0xff,0x7f,0xbf,0xfb,0xef,0xfb,0xfd,0xfe,0xdf,0x6f,
|
||||
0xff,0x00,0x07,0x83,0x24,0x13,0x0c,0x30,0xc6,0x00,0x10,0x81,0x80,0x00,0x00,0x00,
|
||||
0x84,0x00,0x22,0x00,0x01,0x80,0xc0,0x00,0x00,0xf4,0x00,0x00,0x2c,0x18,0xc0,0x0c,
|
||||
0x46,0x20,0x90,0x00,0x18,0x0c,0x06,0x03,0x01,0x80,0xc0,0x70,0x66,0x30,0x18,0x0c,
|
||||
0x06,0x01,0x80,0xc0,0x60,0x30,0x66,0x38,0x99,0x8c,0xc6,0x63,0x31,0x98,0x00,0x66,
|
||||
0x31,0x98,0xcc,0x66,0x36,0x19,0x80,0xcc,0x00,0x00,0x00,0x00,0x00,0x00,0xc0,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0xff,0x7f,0xb8,0x1c,
|
||||
0x0e,0x07,0x02,0x40,0x7c,0x70,0x3c,0x10,0x09,0x07,0x04,0x00,0xc0,0x60,0xe0,0x70,
|
||||
0x38,0x1c,0x0e,0x04,0x83,0x81,0xc0,0x70,0x70,0x38,0x1c,0x07,0x02,0xc1,0xc0,0x90,
|
||||
0x00,0x0c,0x00,0x04,0x86,0x43,0x69,0xb0,0x30,0x18,0x06,0x07,0x01,0x00,0x00,0x00,
|
||||
0x00,0x0c,0x63,0x16,0x00,0xc0,0x61,0x62,0x01,0x80,0x06,0x63,0x31,0x80,0x00,0x00,
|
||||
0x60,0x00,0xc0,0x06,0x43,0x16,0x19,0x8c,0x06,0x33,0x01,0x80,0xc0,0x63,0x0c,0x01,
|
||||
0x8c,0x86,0x07,0x39,0xc5,0x86,0x63,0x61,0x99,0x8c,0x01,0x83,0x1b,0x0d,0xb6,0x63,
|
||||
0x31,0x01,0x86,0x03,0x00,0x30,0x30,0x00,0x1c,0x3e,0x1b,0x03,0xc1,0xf0,0xf0,0x60,
|
||||
0x3e,0x6e,0x3e,0x0f,0x8c,0x60,0xc5,0xb1,0xb8,0x38,0x6c,0x0f,0x8c,0xc7,0xc1,0x83,
|
||||
0x19,0x8d,0x82,0x63,0x31,0x9f,0xc1,0x80,0xc0,0xc0,0x00,0xaa,0x86,0xc0,0x47,0xe3,
|
||||
0xf1,0xf8,0xfd,0xbf,0x83,0x8f,0xc3,0xef,0xf6,0xf8,0xfc,0xff,0x3f,0x9f,0x1f,0x8f,
|
||||
0xc7,0xe3,0xf1,0xfb,0x7c,0x7e,0x3f,0x8f,0x8f,0xc7,0xe3,0xf8,0xfd,0x3e,0x3f,0x6f,
|
||||
0x00,0x0c,0x0d,0x43,0x03,0xe1,0x88,0x30,0xc0,0x00,0x27,0x41,0x80,0x00,0x00,0x01,
|
||||
0x72,0x00,0x22,0x04,0x01,0x80,0xc0,0x03,0x18,0xf4,0x00,0x00,0x0c,0x18,0xc0,0x04,
|
||||
0x82,0x43,0x20,0x18,0x2c,0x16,0x0b,0x05,0x82,0xc1,0x60,0xb0,0xc0,0x30,0x18,0x0c,
|
||||
0x06,0x01,0x80,0xc0,0x60,0x30,0x63,0x38,0xb0,0xd8,0x6c,0x36,0x1b,0x0c,0x00,0xc7,
|
||||
0x31,0x98,0xcc,0x66,0x33,0x11,0xf8,0xc8,0x7c,0x3e,0x1f,0x0f,0x87,0xc3,0xe1,0xd8,
|
||||
0x3c,0x1e,0x0f,0x07,0x83,0xc7,0xc3,0xe1,0xf0,0xf8,0x06,0x37,0x07,0x03,0x81,0xc0,
|
||||
0xe0,0x70,0x10,0x1d,0x31,0x98,0xcc,0x66,0x33,0x19,0xb0,0xc6,0x8f,0x7f,0x87,0x03,
|
||||
0x81,0x80,0x90,0x30,0x6c,0x48,0x24,0x10,0x06,0x04,0x04,0x80,0x20,0x10,0x10,0x0e,
|
||||
0x07,0x03,0x81,0xc0,0x60,0x88,0x38,0x0c,0x40,0x09,0x03,0x84,0x02,0x41,0x40,0x90,
|
||||
0x00,0x0c,0x00,0x1f,0xe7,0x41,0xd1,0xa0,0x00,0x30,0x03,0x0a,0x81,0x00,0x00,0x00,
|
||||
0x00,0x18,0x63,0x06,0x00,0xc0,0xc2,0x62,0x01,0xb0,0x0c,0x72,0x31,0x86,0x03,0x00,
|
||||
0xc0,0x00,0x60,0x06,0x8f,0x16,0x19,0x0c,0x06,0x33,0x01,0x80,0xc0,0x63,0x0c,0x01,
|
||||
0x8d,0x06,0x07,0x39,0x65,0x86,0x63,0x61,0x99,0x0e,0x01,0x83,0x19,0x89,0xb6,0x32,
|
||||
0x33,0x03,0x06,0x01,0x80,0x30,0x78,0x00,0x00,0x03,0x1d,0x86,0x23,0x31,0x99,0xfc,
|
||||
0x66,0x77,0x06,0x01,0x8c,0x40,0xc6,0xd9,0xdc,0x6c,0x76,0x19,0x8d,0xcc,0x27,0xf3,
|
||||
0x19,0x8d,0x82,0x63,0x31,0x80,0xc0,0x80,0xc0,0x80,0x01,0x54,0x8c,0xc0,0x78,0xfc,
|
||||
0x7e,0x7f,0x6f,0xcf,0x93,0xb7,0xdb,0xef,0xf9,0xfb,0xff,0xff,0xdf,0xef,0xef,0xf1,
|
||||
0xf8,0xfc,0x7e,0x3f,0x9f,0x77,0xc7,0xf3,0xbf,0xf6,0xfc,0x7b,0xfd,0xbe,0xbf,0x6f,
|
||||
0xff,0x0c,0x19,0x03,0x03,0x61,0x98,0x30,0x78,0x00,0x28,0x4f,0x83,0x30,0x00,0x01,
|
||||
0x4a,0x00,0x1c,0x04,0x03,0x03,0x80,0x03,0x18,0xf4,0x00,0x00,0x0c,0x18,0xd9,0x84,
|
||||
0x82,0x40,0xa0,0x18,0x2c,0x16,0x0b,0x05,0x82,0xc1,0x60,0xb0,0xc0,0x30,0x18,0x0c,
|
||||
0x06,0x01,0x80,0xc0,0x60,0x30,0x63,0x2c,0xb0,0xd8,0x6c,0x36,0x1b,0x0c,0x64,0xcb,
|
||||
0x31,0x98,0xcc,0x66,0x33,0x31,0x8c,0xd8,0x06,0x03,0x01,0x80,0xc0,0x60,0x30,0x6c,
|
||||
0x62,0x33,0x19,0x8c,0xc6,0x60,0xc0,0x60,0x30,0x18,0x1e,0x3b,0x8d,0x86,0xc3,0x61,
|
||||
0xb0,0xd8,0x10,0x36,0x31,0x98,0xcc,0x66,0x33,0x19,0xd8,0xc6,0x0f,0x7f,0x82,0x01,
|
||||
0x02,0x40,0xd0,0x40,0x6c,0x70,0x24,0x1c,0x06,0x04,0x03,0x01,0xc0,0xe0,0x10,0x12,
|
||||
0x09,0x04,0x82,0x40,0x90,0x50,0x10,0x12,0x70,0x09,0x04,0x04,0x01,0xc1,0x20,0x60,
|
||||
0x00,0x0c,0x00,0x04,0x83,0xc0,0x20,0xcc,0x00,0x30,0x03,0x02,0x01,0x00,0x00,0x00,
|
||||
0x00,0x18,0x63,0x06,0x01,0x83,0x84,0x63,0xf1,0xd8,0x18,0x3c,0x31,0x86,0x03,0x01,
|
||||
0x83,0xf8,0x30,0x1c,0x9b,0x33,0x1e,0x0c,0x06,0x33,0xe1,0x80,0xc0,0x7f,0x0c,0x01,
|
||||
0x8f,0x06,0x07,0x79,0x65,0x86,0x66,0x61,0x9e,0x07,0x81,0x83,0x19,0x89,0xb6,0x1c,
|
||||
0x1a,0x03,0x06,0x01,0x80,0x30,0x48,0x00,0x00,0x03,0x18,0xcc,0x06,0x33,0x18,0x60,
|
||||
0xc6,0x63,0x06,0x01,0x8c,0x80,0xc6,0xd9,0x8c,0xc6,0x63,0x31,0x8e,0x4c,0x01,0x83,
|
||||
0x19,0x8d,0x92,0x32,0x31,0x81,0x87,0x00,0xc0,0x70,0xe4,0xaa,0x98,0xc0,0x7d,0xfe,
|
||||
0xfd,0xbf,0x2f,0xbf,0x93,0x8f,0xdb,0xe3,0xf9,0xfb,0xff,0x1e,0x3f,0x1f,0xef,0xed,
|
||||
0xf6,0xfb,0x7d,0xbf,0x6f,0xaf,0xef,0xed,0x8f,0xf6,0xfb,0xfb,0xfe,0x3e,0xdf,0x9f,
|
||||
0x00,0x00,0x19,0x0f,0xc6,0x30,0xd0,0x00,0xcc,0x00,0x28,0x59,0x86,0x67,0xf0,0x01,
|
||||
0x72,0x00,0x00,0x3f,0x86,0x00,0xc0,0x03,0x18,0xf4,0x00,0x00,0x0c,0x18,0xcc,0xc5,
|
||||
0x32,0x83,0x4c,0x00,0x66,0x33,0x19,0x8c,0xc6,0x63,0x31,0xbc,0xc0,0x3e,0x1f,0x0f,
|
||||
0x87,0xc1,0x80,0xc0,0x60,0x30,0xfb,0x2c,0xb0,0xd8,0x6c,0x36,0x1b,0x0c,0x38,0xcb,
|
||||
0x31,0x98,0xcc,0x66,0x31,0xa1,0x8c,0xcc,0x06,0x03,0x01,0x80,0xc0,0x60,0x30,0x6c,
|
||||
0xc0,0x63,0x31,0x98,0xcc,0x60,0xc0,0x60,0x30,0x18,0x37,0x31,0x98,0xcc,0x66,0x33,
|
||||
0x19,0x8c,0x00,0x67,0x31,0x98,0xcc,0x66,0x33,0x19,0x8c,0xc6,0x1f,0x7f,0x82,0x01,
|
||||
0x02,0x40,0xb0,0x40,0x6c,0x07,0x03,0x83,0x80,0xe0,0xe0,0x00,0x18,0x0e,0x10,0x10,
|
||||
0x08,0x04,0x02,0x00,0xf0,0x20,0x10,0x1e,0x08,0x89,0x03,0x00,0xe0,0x38,0x1c,0x0e,
|
||||
0x00,0x0c,0x00,0x04,0x81,0xe0,0x41,0x6c,0x00,0x30,0x03,0x00,0x0f,0xe0,0x03,0xf8,
|
||||
0x00,0x30,0x63,0x06,0x03,0x00,0xc7,0xf0,0x39,0x8c,0x30,0x3e,0x1b,0x80,0x00,0x03,
|
||||
0x00,0x00,0x18,0x30,0x9b,0x23,0x19,0x0c,0x06,0x33,0x01,0xf8,0xc6,0x63,0x0c,0x01,
|
||||
0x8d,0x86,0x05,0xd9,0x35,0x86,0x7c,0x61,0x9b,0x01,0xc1,0x83,0x19,0x99,0xb4,0x1c,
|
||||
0x0c,0x06,0x06,0x00,0xc0,0x30,0xcc,0x00,0x00,0x3f,0x18,0xcc,0x06,0x33,0xf8,0x60,
|
||||
0xc6,0x63,0x06,0x01,0x8f,0x00,0xc6,0xd9,0x8c,0xc6,0x63,0x31,0x8c,0x0f,0x81,0x83,
|
||||
0x18,0xd9,0xba,0x1c,0x1b,0x03,0x00,0x80,0xc0,0x81,0x75,0x54,0x98,0xc0,0x7d,0xfe,
|
||||
0xfd,0xbf,0x4f,0xbf,0x93,0xf8,0xfc,0x7c,0x7f,0x1f,0x1f,0x6f,0xe7,0xf1,0xef,0xef,
|
||||
0xf7,0xfb,0xfd,0xff,0x0f,0xdf,0xef,0xe1,0xf7,0x76,0xfc,0xff,0x1f,0xc7,0xe3,0xf1,
|
||||
0xff,0x08,0x19,0x03,0x06,0x31,0xf8,0x00,0xc6,0x00,0x28,0x5b,0x8c,0xc0,0x11,0xf1,
|
||||
0x4a,0x00,0x00,0x04,0x0c,0x00,0xc0,0x03,0x18,0x74,0x38,0x00,0x0c,0x18,0xc6,0x65,
|
||||
0x52,0xb8,0x54,0x18,0x46,0x23,0x11,0x88,0xc4,0x62,0x31,0x30,0xc0,0x30,0x18,0x0c,
|
||||
0x06,0x01,0x80,0xc0,0x60,0x30,0x63,0x26,0xb0,0xd8,0x6c,0x36,0x1b,0x0c,0x10,0xd3,
|
||||
0x31,0x98,0xcc,0x66,0x30,0xc1,0x8c,0xc6,0x7e,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xfc,
|
||||
0xc0,0x7f,0x3f,0x9f,0xcf,0xe0,0xc0,0x60,0x30,0x18,0x63,0x31,0x98,0xcc,0x66,0x33,
|
||||
0x19,0x8c,0xfe,0x6b,0x31,0x98,0xcc,0x66,0x31,0xb1,0x8c,0x6c,0x0e,0x7f,0x82,0x01,
|
||||
0x01,0x80,0x90,0x30,0xc6,0x08,0x01,0x02,0x00,0x40,0x80,0xe0,0x24,0x04,0x1c,0x10,
|
||||
0x08,0x04,0x02,0x00,0x90,0x20,0x10,0x12,0x0d,0x86,0x00,0x81,0x00,0x40,0x20,0x10,
|
||||
0x00,0x04,0x00,0x1f,0xe1,0x70,0xbb,0x28,0x00,0x30,0x03,0x00,0x01,0x00,0x00,0x00,
|
||||
0x00,0x30,0x63,0x06,0x06,0x00,0x67,0xf0,0x19,0x8c,0x30,0x67,0x0d,0x80,0x00,0x01,
|
||||
0x83,0xf8,0x30,0x30,0x9b,0x7f,0x19,0x8c,0x06,0x33,0x01,0x80,0xc6,0x63,0x0c,0x01,
|
||||
0x8c,0xc6,0x05,0xd9,0x35,0x86,0x60,0x61,0x99,0x80,0xe1,0x83,0x18,0xd0,0xdc,0x26,
|
||||
0x0c,0x0c,0x06,0x00,0xc0,0x30,0x84,0x00,0x00,0x63,0x18,0xcc,0x06,0x33,0x00,0x60,
|
||||
0xc6,0x63,0x06,0x01,0x8d,0x80,0xc6,0xd9,0x8c,0xc6,0x63,0x31,0x8c,0x03,0xe1,0x83,
|
||||
0x18,0xd9,0xba,0x1c,0x1b,0x06,0x01,0x80,0xc0,0xc1,0x38,0xaa,0x80,0xc0,0x7d,0xfe,
|
||||
0xfe,0x7f,0x6f,0xcf,0x39,0xf7,0xfe,0xfd,0xff,0xbf,0x7f,0x0f,0xdb,0xfb,0xe3,0xef,
|
||||
0xf7,0xfb,0xfd,0xff,0x6f,0xdf,0xef,0xed,0xf2,0x79,0xff,0x7e,0xff,0xbf,0xdf,0xef,
|
||||
0x00,0x0c,0x19,0x03,0x03,0x60,0x60,0x30,0x66,0x00,0x28,0x4d,0xc6,0x60,0x10,0x00,
|
||||
0x84,0x00,0x00,0x04,0x0f,0x87,0x80,0x03,0x18,0x14,0x38,0x00,0x3f,0x0f,0x8c,0xc2,
|
||||
0x90,0x84,0xa4,0x18,0xfe,0x7f,0x3f,0x9f,0xcf,0xe7,0xf1,0xf0,0xc0,0x30,0x18,0x0c,
|
||||
0x06,0x01,0x80,0xc0,0x60,0x30,0x63,0x26,0xb0,0xd8,0x6c,0x36,0x1b,0x0c,0x38,0xd3,
|
||||
0x31,0x98,0xcc,0x66,0x30,0xc1,0x98,0xc6,0xc6,0x63,0x31,0x98,0xcc,0x66,0x33,0x60,
|
||||
0xc0,0x60,0x30,0x18,0x0c,0x00,0xc0,0x60,0x30,0x18,0x63,0x31,0x98,0xcc,0x66,0x33,
|
||||
0x19,0x8c,0x00,0x6b,0x31,0x98,0xcc,0x66,0x31,0xb1,0x8c,0x6c,0x1c,0x7f,0x81,0x20,
|
||||
0x90,0x38,0x18,0x0b,0x83,0x06,0x01,0x03,0x80,0x40,0xe0,0x90,0x24,0x04,0x03,0x8e,
|
||||
0x86,0xc3,0x61,0x90,0x24,0x12,0x0e,0x04,0x8a,0x81,0xc7,0x70,0xc0,0x30,0x18,0x0c,
|
||||
0x00,0x00,0x00,0x04,0x81,0x31,0x6f,0x30,0x00,0x18,0x06,0x00,0x01,0x00,0x00,0x00,
|
||||
0x00,0x60,0x63,0x06,0x0c,0x00,0x60,0x60,0x19,0x8c,0x60,0x63,0x01,0x80,0x00,0x00,
|
||||
0xc0,0x00,0x60,0x00,0x4d,0xe1,0x99,0x8c,0x06,0x33,0x01,0x80,0xc6,0x63,0x0c,0x01,
|
||||
0x8c,0xc6,0x04,0x99,0x1d,0x86,0x60,0x61,0x99,0x80,0x61,0x83,0x18,0xd0,0xdc,0x63,
|
||||
0x0c,0x0c,0x06,0x00,0x60,0x30,0x84,0x00,0x00,0x63,0x18,0xcc,0x06,0x33,0x00,0x60,
|
||||
0x6e,0x63,0x06,0x01,0x8c,0xc0,0xc6,0xd9,0x8c,0xc6,0x63,0x31,0x8c,0x00,0x61,0x83,
|
||||
0x18,0xd0,0xcc,0x26,0x0e,0x0c,0x03,0x00,0xc0,0x60,0x01,0x54,0x98,0xc0,0x7e,0xdf,
|
||||
0x6f,0xc7,0xe7,0xf4,0x7c,0xf9,0xfe,0xfc,0x7f,0xbf,0x1f,0x5f,0xdb,0xfb,0xfc,0x71,
|
||||
0x79,0x3c,0x9e,0x6f,0xdb,0xed,0xf1,0xfb,0x75,0x7e,0x38,0x8f,0x3f,0xcf,0xe7,0xf3,
|
||||
0xff,0x0c,0x0d,0x03,0x03,0xe1,0xf8,0x30,0x3c,0x00,0x27,0x40,0x03,0x30,0x00,0x00,
|
||||
0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x18,0x14,0x00,0x00,0x00,0x00,0x19,0x82,
|
||||
0xf8,0x98,0xbe,0x70,0xc3,0x61,0xb0,0xd8,0x6c,0x36,0x1b,0x30,0xc0,0x30,0x18,0x0c,
|
||||
0x06,0x01,0x80,0xc0,0x60,0x30,0x63,0x23,0xb0,0xd8,0x6c,0x36,0x1b,0x0c,0x4c,0xe3,
|
||||
0x31,0x98,0xcc,0x66,0x30,0xc1,0xf0,0xc6,0xc6,0x63,0x31,0x98,0xcc,0x66,0x33,0x60,
|
||||
0xc0,0x60,0x30,0x18,0x0c,0x00,0xc0,0x60,0x30,0x18,0x63,0x31,0x98,0xcc,0x66,0x33,
|
||||
0x19,0x8c,0x10,0x73,0x31,0x98,0xcc,0x66,0x30,0xe1,0x8c,0x38,0x1c,0x7f,0x80,0xa0,
|
||||
0x50,0x10,0x24,0x0d,0xff,0x01,0x01,0x02,0x00,0x40,0x80,0xf0,0x24,0x04,0x02,0x01,
|
||||
0x81,0x20,0x10,0x30,0x28,0x1a,0x09,0x06,0x8a,0x81,0x20,0x90,0x20,0x08,0x04,0x02,
|
||||
0x00,0x0c,0x00,0x04,0x85,0x32,0x6f,0xb8,0x00,0x18,0x06,0x00,0x01,0x01,0xc0,0x00,
|
||||
0x70,0x60,0x36,0x06,0x1f,0xcc,0xe0,0x63,0x30,0xd8,0x60,0x63,0x33,0x06,0x03,0x00,
|
||||
0x60,0x00,0xc0,0x30,0x60,0x61,0x99,0x86,0x66,0x63,0x01,0x80,0x66,0x63,0x0c,0x03,
|
||||
0x0c,0x66,0x04,0x19,0x1c,0xcc,0x60,0x33,0x18,0xcc,0x61,0x81,0xb0,0x60,0xcc,0x63,
|
||||
0x0c,0x18,0x06,0x00,0x60,0x30,0x00,0x00,0x00,0x67,0x19,0x86,0x23,0x71,0x88,0x60,
|
||||
0x36,0x63,0x06,0x01,0x8c,0x60,0xc6,0xd9,0x8c,0x6c,0x66,0x1b,0x8c,0x08,0x61,0x83,
|
||||
0xb8,0x70,0xcc,0x63,0x0c,0x18,0x03,0x00,0xc0,0x60,0x00,0xaa,0x98,0xc0,0x7f,0x5f,
|
||||
0xaf,0xef,0xdb,0xf2,0x00,0xfe,0xfe,0xfd,0xff,0xbf,0x7f,0x6f,0xdb,0xfb,0xfd,0xfe,
|
||||
0x7e,0xdf,0xef,0xcf,0xd7,0xe5,0xf6,0xf9,0x75,0x7e,0xdf,0x6f,0xdf,0xf7,0xfb,0xfd,
|
||||
0x00,0x0c,0x07,0xc6,0x04,0x10,0x60,0x30,0x06,0x00,0x10,0x80,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x3f,0x80,0x00,0x00,0x03,0xb8,0x14,0x00,0x00,0x00,0x00,0x00,0x04,
|
||||
0x11,0x21,0x04,0xc0,0xc3,0x61,0xb0,0xd8,0x6c,0x36,0x1b,0x30,0x66,0x30,0x18,0x0c,
|
||||
0x06,0x01,0x80,0xc0,0x60,0x30,0x66,0x23,0x99,0x8c,0xc6,0x63,0x31,0x98,0x00,0x66,
|
||||
0x1b,0x0d,0x86,0xc3,0x60,0xc1,0x80,0xc6,0xce,0x67,0x33,0x99,0xcc,0xe6,0x73,0x74,
|
||||
0x62,0x31,0x18,0x8c,0x46,0x20,0xc0,0x60,0x30,0x18,0x36,0x31,0x8d,0x86,0xc3,0x61,
|
||||
0xb0,0xd8,0x10,0x36,0x3b,0x9d,0xce,0xe7,0x70,0xc1,0x98,0x30,0x00,0x7f,0x80,0xc0,
|
||||
0x60,0x10,0x24,0x0c,0x38,0x0e,0x01,0x02,0x00,0x40,0x80,0xa0,0x18,0x0e,0x03,0x00,
|
||||
0x80,0x40,0x60,0x50,0x30,0x16,0x0e,0x05,0x88,0x81,0xc0,0x81,0xc0,0x70,0x38,0x1c,
|
||||
0x00,0x0c,0x00,0x04,0x83,0xe0,0x39,0xcc,0x00,0x0c,0x0c,0x00,0x00,0x01,0xc0,0x00,
|
||||
0x70,0xc0,0x1c,0x06,0x1f,0xc7,0xc0,0x61,0xe0,0x70,0x60,0x3e,0x1e,0x06,0x03,0x00,
|
||||
0x00,0x00,0x00,0x30,0x1e,0x61,0x9f,0x03,0xc7,0xc3,0xf1,0x80,0x3e,0x63,0x3f,0x1e,
|
||||
0x0c,0x67,0xe4,0x19,0x0c,0x78,0x60,0x1e,0x18,0xc7,0xc1,0x80,0xe0,0x60,0xcc,0x63,
|
||||
0x0c,0x1f,0xc6,0x00,0x30,0x30,0x00,0x00,0x00,0x3b,0x9f,0x03,0xc1,0xb0,0xf0,0x60,
|
||||
0x06,0x63,0x06,0x01,0x8c,0x70,0xc6,0xd9,0x8c,0x38,0x7c,0x0d,0x8c,0x07,0xc0,0xf1,
|
||||
0xd8,0x60,0xcc,0x63,0x0c,0x1f,0xc3,0x00,0xc0,0x60,0x01,0x54,0x80,0xc0,0x7f,0x3f,
|
||||
0x9f,0xef,0xdb,0xf3,0xc7,0xf1,0xfe,0xfd,0xff,0xbf,0x7f,0xff,0xe7,0xf1,0xfc,0xff,
|
||||
0x7f,0xbf,0x9f,0xaf,0xcf,0xe9,0xf1,0xfa,0x77,0x7e,0x3f,0x7e,0x3f,0x8f,0xc7,0xe3,
|
||||
0xff,0x0c,0x01,0x0f,0xe8,0x08,0x60,0x30,0xc6,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xd8,0x14,0x00,0x00,0x00,0x00,0x00,0x04,
|
||||
0x11,0x3d,0x04,0xc0,0xc3,0x61,0xb0,0xd8,0x6c,0x36,0x1b,0x3c,0x3c,0x3f,0x1f,0x8f,
|
||||
0xc7,0xe7,0xe3,0xf1,0xf8,0xfc,0x7c,0x21,0x8f,0x07,0x83,0xc1,0xe0,0xf0,0x00,0xbc,
|
||||
0x0e,0x07,0x03,0x81,0xc0,0xc1,0x80,0xcc,0x77,0x3b,0x9d,0xce,0xe7,0x73,0xb9,0x98,
|
||||
0x3c,0x1e,0x0f,0x07,0x83,0xc0,0xc0,0x60,0x30,0x18,0x1c,0x31,0x87,0x03,0x81,0xc0,
|
||||
0xe0,0x70,0x00,0x5c,0x1d,0x8e,0xc7,0x63,0xb0,0xc1,0xf0,0x30,0x00,0x7f,0x81,0x40,
|
||||
0xa0,0x10,0x28,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x00,0x00,0x02,0x00,
|
||||
0x80,0x80,0x10,0xf8,0x28,0x12,0x09,0x04,0x80,0x01,0x20,0x80,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x06,0x18,0x00,0x00,0x00,0x40,0x00,
|
||||
0x00,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x07,0xc0,0x31,0xf0,0x01,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xcc,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x80,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x18,0x00,0x01,0xe0,0xc3,0xc0,0x00,0x00,0xff,0xc0,0x7e,0xbf,
|
||||
0x5f,0xef,0xd7,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xff,
|
||||
0x7f,0x7f,0xef,0x07,0xd7,0xed,0xf6,0xfb,0x7f,0xfe,0xdf,0x7f,0xff,0xff,0xff,0xff,
|
||||
0x00,0x0c,0x01,0x00,0x00,0x00,0x00,0x30,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x08,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x81,0x80,0x60,0x00,0x7f,0x81,0x20,
|
||||
0x90,0x10,0x1c,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,
|
||||
0x81,0xe0,0x60,0x10,0x24,0x12,0x0e,0x04,0x80,0x01,0xc0,0x70,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x78,0x00,0x00,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x80,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xfe,0xdf,
|
||||
0x6f,0xef,0xe3,0xf5,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x7f,
|
||||
0x7e,0x1f,0x9f,0xef,0xdb,0xed,0xf1,0xfb,0x7f,0xfe,0x3f,0x8f,0xff,0xff,0xff,0xff,
|
||||
0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x81,0x80,0x60,0x20,0x20,0x20,0x20,
|
||||
0x20,0x20,0x20,0x20,0x32,0x35,0x36,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
|
||||
0x20,0x31,0x35,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x31,0x33,0x20,
|
||||
0x00,0x00,0x01,0x0c,0x00,0x09,0x09,0x00,0x01,0x0f,0x00,0x09,0x12,0x00,0x01,0x0f,
|
||||
0x00,0x09,0x1b,0x00,0x01,0x0f,0x00,0x09,0x24,0x00,0x01,0x0f,0x00,0x09,0x2d,0x00,
|
||||
0x01,0x0f,0x00,0x09,0x36,0x00,0x01,0x0f,0x00,0x09,0x3f,0x00,0x03,0x0d,0x00,0x09,
|
||||
0x48,0x00,0x03,0x0d,0x00,0x09,0x51,0x00,0x03,0x0d,0x00,0x09,0x5a,0x00,0x03,0x0d,
|
||||
0x00,0x09,0x63,0x00,0x03,0x0d,0x00,0x09,0x6c,0x00,0x03,0x0d,0x00,0x09,0x75,0x00,
|
||||
0x03,0x0e,0x00,0x09,0x7e,0x00,0x03,0x0d,0x00,0x09,0x87,0x00,0x03,0x0d,0x00,0x09,
|
||||
0x90,0x00,0x01,0x0f,0x00,0x09,0x99,0x00,0x01,0x0f,0x00,0x09,0xa2,0x00,0x01,0x0f,
|
||||
0x00,0x09,0xab,0x00,0x01,0x0f,0x00,0x09,0xb4,0x00,0x01,0x0f,0x00,0x09,0xbd,0x00,
|
||||
0x01,0x0f,0x00,0x09,0xc6,0x00,0x01,0x0f,0x00,0x09,0xcf,0x00,0x01,0x0f,0x00,0x09,
|
||||
0xd8,0x00,0x01,0x0f,0x00,0x09,0xe1,0x00,0x03,0x0d,0x00,0x09,0xea,0x00,0x01,0x0f,
|
||||
0x00,0x09,0xf3,0x00,0x01,0x0f,0x00,0x09,0xfc,0x00,0x03,0x0d,0x00,0x09,0x05,0x01,
|
||||
0x03,0x0d,0x00,0x09,0x0e,0x01,0x03,0x0d,0x00,0x09,0x17,0x01,0x03,0x0d,0x00,0x09,
|
||||
0x20,0x01,0x00,0x00,0x00,0x09,0x29,0x01,0x03,0x0d,0x00,0x09,0x32,0x01,0x02,0x05,
|
||||
0x00,0x09,0x3b,0x01,0x03,0x0d,0x00,0x09,0x44,0x01,0x02,0x0e,0x00,0x09,0x4d,0x01,
|
||||
0x03,0x0d,0x00,0x09,0x56,0x01,0x03,0x0d,0x00,0x09,0x5f,0x01,0x02,0x06,0x00,0x09,
|
||||
0x68,0x01,0x02,0x0e,0x00,0x09,0x71,0x01,0x02,0x0e,0x00,0x09,0x7a,0x01,0x03,0x08,
|
||||
0x00,0x09,0x83,0x01,0x05,0x0c,0x00,0x09,0x8c,0x01,0x0b,0x0f,0x00,0x09,0x95,0x01,
|
||||
0x08,0x09,0x00,0x09,0x9e,0x01,0x0b,0x0d,0x00,0x09,0xa7,0x01,0x02,0x0e,0x00,0x09,
|
||||
0xb0,0x01,0x03,0x0d,0x00,0x09,0xb9,0x01,0x03,0x0d,0x00,0x09,0xc2,0x01,0x03,0x0d,
|
||||
0x00,0x09,0xcb,0x01,0x03,0x0d,0x00,0x09,0xd4,0x01,0x03,0x0d,0x00,0x09,0xdd,0x01,
|
||||
0x03,0x0d,0x00,0x09,0xe6,0x01,0x03,0x0d,0x00,0x09,0xef,0x01,0x03,0x0d,0x00,0x09,
|
||||
0xf8,0x01,0x03,0x0d,0x00,0x09,0x01,0x02,0x03,0x0d,0x00,0x09,0x0a,0x02,0x06,0x0d,
|
||||
0x00,0x09,0x13,0x02,0x06,0x0f,0x00,0x09,0x1c,0x02,0x05,0x0c,0x00,0x09,0x25,0x02,
|
||||
0x07,0x0a,0x00,0x09,0x2e,0x02,0x05,0x0c,0x00,0x09,0x37,0x02,0x03,0x0d,0x00,0x09,
|
||||
0x40,0x02,0x03,0x0d,0x00,0x09,0x49,0x02,0x03,0x0d,0x00,0x09,0x52,0x02,0x03,0x0d,
|
||||
0x00,0x09,0x5b,0x02,0x03,0x0d,0x00,0x09,0x64,0x02,0x03,0x0d,0x00,0x09,0x6d,0x02,
|
||||
0x03,0x0d,0x00,0x09,0x76,0x02,0x03,0x0d,0x00,0x09,0x7f,0x02,0x03,0x0d,0x00,0x09,
|
||||
0x88,0x02,0x03,0x0d,0x00,0x09,0x91,0x02,0x03,0x0d,0x00,0x09,0x9a,0x02,0x03,0x0d,
|
||||
0x00,0x09,0xa3,0x02,0x03,0x0d,0x00,0x09,0xac,0x02,0x03,0x0d,0x00,0x09,0xb5,0x02,
|
||||
0x03,0x0d,0x00,0x09,0xbe,0x02,0x03,0x0d,0x00,0x09,0xc7,0x02,0x03,0x0d,0x00,0x09,
|
||||
0xd0,0x02,0x03,0x0d,0x00,0x09,0xd9,0x02,0x03,0x0f,0x00,0x09,0xe2,0x02,0x03,0x0d,
|
||||
0x00,0x09,0xeb,0x02,0x03,0x0d,0x00,0x09,0xf4,0x02,0x03,0x0d,0x00,0x09,0xfd,0x02,
|
||||
0x03,0x0d,0x00,0x09,0x06,0x03,0x03,0x0d,0x00,0x09,0x0f,0x03,0x03,0x0d,0x00,0x09,
|
||||
0x18,0x03,0x03,0x0d,0x00,0x09,0x21,0x03,0x03,0x0d,0x00,0x09,0x2a,0x03,0x03,0x0d,
|
||||
0x00,0x09,0x33,0x03,0x02,0x0e,0x00,0x09,0x3c,0x03,0x02,0x0e,0x00,0x09,0x45,0x03,
|
||||
0x02,0x0e,0x00,0x09,0x4e,0x03,0x04,0x0b,0x00,0x09,0x57,0x03,0x0d,0x0e,0x00,0x09,
|
||||
0x60,0x03,0x02,0x06,0x00,0x09,0x69,0x03,0x05,0x0d,0x00,0x09,0x72,0x03,0x02,0x0d,
|
||||
0x00,0x09,0x7b,0x03,0x05,0x0d,0x00,0x09,0x84,0x03,0x02,0x0d,0x00,0x09,0x8d,0x03,
|
||||
0x05,0x0d,0x00,0x09,0x96,0x03,0x02,0x0d,0x00,0x09,0x9f,0x03,0x05,0x0f,0x00,0x09,
|
||||
0xa8,0x03,0x02,0x0d,0x00,0x09,0xb1,0x03,0x02,0x0d,0x00,0x09,0xba,0x03,0x02,0x0f,
|
||||
0x00,0x09,0xc3,0x03,0x02,0x0d,0x00,0x09,0xcc,0x03,0x02,0x0d,0x00,0x09,0xd5,0x03,
|
||||
0x05,0x0d,0x00,0x09,0xde,0x03,0x05,0x0d,0x00,0x09,0xe7,0x03,0x05,0x0d,0x00,0x09,
|
||||
0xf0,0x03,0x05,0x0f,0x00,0x09,0xf9,0x03,0x05,0x0f,0x00,0x09,0x02,0x04,0x05,0x0d,
|
||||
0x00,0x09,0x0b,0x04,0x05,0x0d,0x00,0x09,0x14,0x04,0x03,0x0d,0x00,0x09,0x1d,0x04,
|
||||
0x05,0x0d,0x00,0x09,0x26,0x04,0x05,0x0d,0x00,0x09,0x2f,0x04,0x05,0x0d,0x00,0x09,
|
||||
0x38,0x04,0x05,0x0d,0x00,0x09,0x41,0x04,0x05,0x0f,0x00,0x09,0x4a,0x04,0x05,0x0d,
|
||||
0x00,0x09,0x53,0x04,0x02,0x0e,0x00,0x09,0x5c,0x04,0x02,0x0e,0x00,0x09,0x65,0x04,
|
||||
0x02,0x0e,0x00,0x09,0x6e,0x04,0x07,0x0a,0x00,0x09,0x77,0x04,0x01,0x0d,0x00,0x09,
|
||||
0x80,0x04,0x00,0x0e,0x00,0x09,0x89,0x04,0x00,0x0f,0x00,0x09,0x92,0x04,0x00,0x0f,
|
||||
0x00,0x09,0x9b,0x04,0x00,0x0f,0x00,0x09,0xa4,0x04,0x00,0x0f,0x00,0x09,0xad,0x04,
|
||||
0x00,0x0f,0x00,0x09,0xb6,0x04,0x00,0x0f,0x00,0x09,0xbf,0x04,0x00,0x0f,0x00,0x09,
|
||||
0xc8,0x04,0x00,0x0f,0x00,0x09,0xd1,0x04,0x00,0x0f,0x00,0x09,0xda,0x04,0x00,0x0f,
|
||||
0x00,0x09,0xe3,0x04,0x00,0x0f,0x00,0x09,0xec,0x04,0x00,0x0f,0x00,0x09,0xf5,0x04,
|
||||
0x00,0x0f,0x00,0x09,0xfe,0x04,0x00,0x0f,0x00,0x09,0x07,0x05,0x00,0x0f,0x00,0x09,
|
||||
0x10,0x05,0x00,0x0f,0x00,0x09,0x19,0x05,0x00,0x0f,0x00,0x09,0x22,0x05,0x00,0x0f,
|
||||
0x00,0x09,0x2b,0x05,0x00,0x0f,0x00,0x09,0x34,0x05,0x00,0x0f,0x00,0x09,0x3d,0x05,
|
||||
0x00,0x0f,0x00,0x09,0x46,0x05,0x00,0x0f,0x00,0x09,0x4f,0x05,0x00,0x0f,0x00,0x09,
|
||||
0x58,0x05,0x00,0x0f,0x00,0x09,0x61,0x05,0x00,0x0f,0x00,0x09,0x6a,0x05,0x00,0x0f,
|
||||
0x00,0x09,0x73,0x05,0x00,0x0f,0x00,0x09,0x7c,0x05,0x00,0x0f,0x00,0x09,0x85,0x05,
|
||||
0x00,0x0f,0x00,0x09,0x8e,0x05,0x00,0x0f,0x00,0x09,0x97,0x05,0x00,0x0f,0x00,0x09,
|
||||
0xa0,0x05,0x00,0x0d,0x00,0x09,0xa9,0x05,0x05,0x0f,0x00,0x09,0xb2,0x05,0x02,0x0e,
|
||||
0x00,0x09,0xbb,0x05,0x03,0x0d,0x00,0x09,0xc4,0x05,0x03,0x0d,0x00,0x09,0xcd,0x05,
|
||||
0x03,0x0d,0x00,0x09,0xd6,0x05,0x02,0x0e,0x00,0x09,0xdf,0x05,0x03,0x0e,0x00,0x09,
|
||||
0xe8,0x05,0x02,0x04,0x00,0x09,0xf1,0x05,0x03,0x0d,0x00,0x09,0xfa,0x05,0x03,0x0a,
|
||||
0x00,0x09,0x03,0x06,0x06,0x0b,0x00,0x09,0x0c,0x06,0x07,0x0a,0x00,0x09,0x15,0x06,
|
||||
0x08,0x09,0x00,0x09,0x1e,0x06,0x03,0x0b,0x00,0x09,0x27,0x06,0x02,0x03,0x00,0x09,
|
||||
0x30,0x06,0x03,0x07,0x00,0x09,0x39,0x06,0x05,0x0c,0x00,0x09,0x42,0x06,0x03,0x0a,
|
||||
0x00,0x09,0x4b,0x06,0x03,0x0a,0x00,0x09,0x54,0x06,0x02,0x04,0x00,0x09,0x5d,0x06,
|
||||
0x05,0x0f,0x00,0x09,0x66,0x06,0x03,0x0e,0x00,0x09,0x6f,0x06,0x08,0x0a,0x00,0x09,
|
||||
0x78,0x06,0x0d,0x0f,0x00,0x09,0x81,0x06,0x03,0x0a,0x00,0x09,0x8a,0x06,0x03,0x0a,
|
||||
0x00,0x09,0x93,0x06,0x06,0x0b,0x00,0x09,0x9c,0x06,0x03,0x0d,0x00,0x09,0xa5,0x06,
|
||||
0x03,0x0d,0x00,0x09,0xae,0x06,0x03,0x0d,0x00,0x09,0xb7,0x06,0x05,0x0f,0x00,0x09,
|
||||
0xc0,0x06,0x00,0x0d,0x00,0x09,0xc9,0x06,0x00,0x0d,0x00,0x09,0xd2,0x06,0x00,0x0d,
|
||||
0x00,0x09,0xdb,0x06,0x00,0x0d,0x00,0x09,0xe4,0x06,0x00,0x0d,0x00,0x09,0xed,0x06,
|
||||
0x01,0x0d,0x00,0x09,0xf6,0x06,0x03,0x0d,0x00,0x09,0xff,0x06,0x03,0x0f,0x00,0x09,
|
||||
0x08,0x07,0x00,0x0d,0x00,0x09,0x11,0x07,0x00,0x0d,0x00,0x09,0x1a,0x07,0x00,0x0d,
|
||||
0x00,0x09,0x23,0x07,0x00,0x0d,0x00,0x09,0x2c,0x07,0x00,0x0d,0x00,0x09,0x35,0x07,
|
||||
0x00,0x0d,0x00,0x09,0x3e,0x07,0x00,0x0d,0x00,0x09,0x47,0x07,0x00,0x0d,0x00,0x09,
|
||||
0x50,0x07,0x03,0x0d,0x00,0x09,0x59,0x07,0x00,0x0d,0x00,0x09,0x62,0x07,0x00,0x0d,
|
||||
0x00,0x09,0x6b,0x07,0x00,0x0d,0x00,0x09,0x74,0x07,0x00,0x0d,0x00,0x09,0x7d,0x07,
|
||||
0x00,0x0d,0x00,0x09,0x86,0x07,0x00,0x0d,0x00,0x09,0x8f,0x07,0x06,0x0b,0x00,0x09,
|
||||
0x98,0x07,0x03,0x0d,0x00,0x09,0xa1,0x07,0x00,0x0d,0x00,0x09,0xaa,0x07,0x00,0x0d,
|
||||
0x00,0x09,0xb3,0x07,0x00,0x0d,0x00,0x09,0xbc,0x07,0x00,0x0d,0x00,0x09,0xc5,0x07,
|
||||
0x00,0x0d,0x00,0x09,0xce,0x07,0x03,0x0d,0x00,0x09,0xd7,0x07,0x02,0x0d,0x00,0x09,
|
||||
0xe0,0x07,0x02,0x0d,0x00,0x09,0xe9,0x07,0x02,0x0d,0x00,0x09,0xf2,0x07,0x02,0x0d,
|
||||
0x00,0x09,0xfb,0x07,0x02,0x0d,0x00,0x09,0x04,0x08,0x02,0x0d,0x00,0x09,0x0d,0x08,
|
||||
0x02,0x0d,0x00,0x09,0x16,0x08,0x05,0x0d,0x00,0x09,0x1f,0x08,0x05,0x0f,0x00,0x09,
|
||||
0x28,0x08,0x02,0x0d,0x00,0x09,0x31,0x08,0x02,0x0d,0x00,0x09,0x3a,0x08,0x02,0x0d,
|
||||
0x00,0x09,0x43,0x08,0x02,0x0d,0x00,0x09,0x4c,0x08,0x02,0x0d,0x00,0x09,0x55,0x08,
|
||||
0x02,0x0d,0x00,0x09,0x5e,0x08,0x02,0x0d,0x00,0x09,0x67,0x08,0x02,0x0d,0x00,0x09,
|
||||
0x70,0x08,0x02,0x0d,0x00,0x09,0x79,0x08,0x02,0x0d,0x00,0x09,0x82,0x08,0x02,0x0d,
|
||||
0x00,0x09,0x8b,0x08,0x02,0x0d,0x00,0x09,0x94,0x08,0x02,0x0d,0x00,0x09,0x9d,0x08,
|
||||
0x02,0x0d,0x00,0x09,0xa6,0x08,0x02,0x0d,0x00,0x09,0xaf,0x08,0x05,0x0c,0x00,0x09,
|
||||
0xb8,0x08,0x05,0x0d,0x00,0x09,0xc1,0x08,0x02,0x0d,0x00,0x09,0xca,0x08,0x02,0x0d,
|
||||
0x00,0x09,0xd3,0x08,0x02,0x0d,0x00,0x09,0xdc,0x08,0x02,0x0d,0x00,0x09,0xe5,0x08,
|
||||
0x02,0x0f,0x00,0x09,0xee,0x08,0x03,0x0f,0x00,0x09,0xf7,0x08,0x02,0x0f,0x00,0x09,
|
||||
0x00,0x09,0x00,0x00,0x00,0x00,
|
||||
};
|
||||
|
||||
int sizeofdefont = sizeof defontdata;
|
||||
|
||||
void
|
||||
_unpackinfo(Fontchar *fc, uchar *p, int n)
|
||||
{
|
||||
int j;
|
||||
|
||||
for(j=0; j<=n; j++){
|
||||
fc->x = p[0]|(p[1]<<8);
|
||||
fc->top = p[2];
|
||||
fc->bottom = p[3];
|
||||
fc->left = p[4];
|
||||
fc->width = p[5];
|
||||
fc++;
|
||||
p += 6;
|
||||
}
|
||||
}
|
23
libdraw/drawrepl.c
Normal file
23
libdraw/drawrepl.c
Normal file
@ -0,0 +1,23 @@
|
||||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <draw.h>
|
||||
|
||||
int
|
||||
drawreplxy(int min, int max, int x)
|
||||
{
|
||||
int sx;
|
||||
|
||||
sx = (x-min)%(max-min);
|
||||
if(sx < 0)
|
||||
sx += max-min;
|
||||
return sx+min;
|
||||
}
|
||||
|
||||
Point
|
||||
drawrepl(Rectangle r, Point p)
|
||||
{
|
||||
p.x = drawreplxy(r.min.x, r.max.x, p.x);
|
||||
p.y = drawreplxy(r.min.y, r.max.y, p.y);
|
||||
return p;
|
||||
}
|
||||
|
140
libdraw/icossin.c
Normal file
140
libdraw/icossin.c
Normal file
@ -0,0 +1,140 @@
|
||||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <draw.h>
|
||||
|
||||
/*
|
||||
* Integer sine and cosine for integral degree argument.
|
||||
* Tables computed by (sin,cos)(PI*d/180).
|
||||
*/
|
||||
static short sinus[91] = {
|
||||
0, /* 0 */
|
||||
18, /* 1 */
|
||||
36, /* 2 */
|
||||
54, /* 3 */
|
||||
71, /* 4 */
|
||||
89, /* 5 */
|
||||
107, /* 6 */
|
||||
125, /* 7 */
|
||||
143, /* 8 */
|
||||
160, /* 9 */
|
||||
178, /* 10 */
|
||||
195, /* 11 */
|
||||
213, /* 12 */
|
||||
230, /* 13 */
|
||||
248, /* 14 */
|
||||
265, /* 15 */
|
||||
282, /* 16 */
|
||||
299, /* 17 */
|
||||
316, /* 18 */
|
||||
333, /* 19 */
|
||||
350, /* 20 */
|
||||
367, /* 21 */
|
||||
384, /* 22 */
|
||||
400, /* 23 */
|
||||
416, /* 24 */
|
||||
433, /* 25 */
|
||||
449, /* 26 */
|
||||
465, /* 27 */
|
||||
481, /* 28 */
|
||||
496, /* 29 */
|
||||
512, /* 30 */
|
||||
527, /* 31 */
|
||||
543, /* 32 */
|
||||
558, /* 33 */
|
||||
573, /* 34 */
|
||||
587, /* 35 */
|
||||
602, /* 36 */
|
||||
616, /* 37 */
|
||||
630, /* 38 */
|
||||
644, /* 39 */
|
||||
658, /* 40 */
|
||||
672, /* 41 */
|
||||
685, /* 42 */
|
||||
698, /* 43 */
|
||||
711, /* 44 */
|
||||
724, /* 45 */
|
||||
737, /* 46 */
|
||||
749, /* 47 */
|
||||
761, /* 48 */
|
||||
773, /* 49 */
|
||||
784, /* 50 */
|
||||
796, /* 51 */
|
||||
807, /* 52 */
|
||||
818, /* 53 */
|
||||
828, /* 54 */
|
||||
839, /* 55 */
|
||||
849, /* 56 */
|
||||
859, /* 57 */
|
||||
868, /* 58 */
|
||||
878, /* 59 */
|
||||
887, /* 60 */
|
||||
896, /* 61 */
|
||||
904, /* 62 */
|
||||
912, /* 63 */
|
||||
920, /* 64 */
|
||||
928, /* 65 */
|
||||
935, /* 66 */
|
||||
943, /* 67 */
|
||||
949, /* 68 */
|
||||
956, /* 69 */
|
||||
962, /* 70 */
|
||||
968, /* 71 */
|
||||
974, /* 72 */
|
||||
979, /* 73 */
|
||||
984, /* 74 */
|
||||
989, /* 75 */
|
||||
994, /* 76 */
|
||||
998, /* 77 */
|
||||
1002, /* 78 */
|
||||
1005, /* 79 */
|
||||
1008, /* 80 */
|
||||
1011, /* 81 */
|
||||
1014, /* 82 */
|
||||
1016, /* 83 */
|
||||
1018, /* 84 */
|
||||
1020, /* 85 */
|
||||
1022, /* 86 */
|
||||
1023, /* 87 */
|
||||
1023, /* 88 */
|
||||
1024, /* 89 */
|
||||
1024, /* 90 */
|
||||
};
|
||||
|
||||
void
|
||||
icossin(int deg, int *cosp, int *sinp)
|
||||
{
|
||||
int sinsign, cossign;
|
||||
short *stp, *ctp;
|
||||
|
||||
deg %= 360;
|
||||
if(deg < 0)
|
||||
deg += 360;
|
||||
sinsign = 1;
|
||||
cossign = 1;
|
||||
stp = 0;
|
||||
ctp = 0;
|
||||
switch(deg/90){
|
||||
case 2:
|
||||
sinsign = -1;
|
||||
cossign = -1;
|
||||
deg -= 180;
|
||||
/* fall through */
|
||||
case 0:
|
||||
stp = &sinus[deg];
|
||||
ctp = &sinus[90-deg];
|
||||
break;
|
||||
case 3:
|
||||
sinsign = -1;
|
||||
cossign = -1;
|
||||
deg -= 180;
|
||||
/* fall through */
|
||||
case 1:
|
||||
deg = 180-deg;
|
||||
cossign = -cossign;
|
||||
stp = &sinus[deg];
|
||||
ctp = &sinus[90-deg];
|
||||
break;
|
||||
}
|
||||
*sinp = sinsign*stp[0];
|
||||
*cosp = cossign*ctp[0];
|
||||
}
|
261
libdraw/icossin2.c
Normal file
261
libdraw/icossin2.c
Normal file
@ -0,0 +1,261 @@
|
||||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <draw.h>
|
||||
|
||||
/*
|
||||
* Sine and Cosine of arctangents, calculated by
|
||||
* (sin(atan(index/100.0))*1024.+0.5)
|
||||
* (cos(atan(index/100.0))*1024.+0.5)
|
||||
* To use, get rational tangent between 0<=tan<=1, scale by 100,
|
||||
* and look up sin and cos, and use linear interpolation. divide by 1024.
|
||||
* Maximum error is 0.0020. Without linear interpolation, it's 0.010.
|
||||
*/
|
||||
static
|
||||
short sinus[] = {
|
||||
0, /* 0.00 */
|
||||
10, /* 0.01 */
|
||||
20, /* 0.02 */
|
||||
31, /* 0.03 */
|
||||
41, /* 0.04 */
|
||||
51, /* 0.05 */
|
||||
61, /* 0.06 */
|
||||
72, /* 0.07 */
|
||||
82, /* 0.08 */
|
||||
92, /* 0.09 */
|
||||
102, /* 0.10 */
|
||||
112, /* 0.11 */
|
||||
122, /* 0.12 */
|
||||
132, /* 0.13 */
|
||||
142, /* 0.14 */
|
||||
152, /* 0.15 */
|
||||
162, /* 0.16 */
|
||||
172, /* 0.17 */
|
||||
181, /* 0.18 */
|
||||
191, /* 0.19 */
|
||||
201, /* 0.20 */
|
||||
210, /* 0.21 */
|
||||
220, /* 0.22 */
|
||||
230, /* 0.23 */
|
||||
239, /* 0.24 */
|
||||
248, /* 0.25 */
|
||||
258, /* 0.26 */
|
||||
267, /* 0.27 */
|
||||
276, /* 0.28 */
|
||||
285, /* 0.29 */
|
||||
294, /* 0.30 */
|
||||
303, /* 0.31 */
|
||||
312, /* 0.32 */
|
||||
321, /* 0.33 */
|
||||
330, /* 0.34 */
|
||||
338, /* 0.35 */
|
||||
347, /* 0.36 */
|
||||
355, /* 0.37 */
|
||||
364, /* 0.38 */
|
||||
372, /* 0.39 */
|
||||
380, /* 0.40 */
|
||||
388, /* 0.41 */
|
||||
397, /* 0.42 */
|
||||
405, /* 0.43 */
|
||||
412, /* 0.44 */
|
||||
420, /* 0.45 */
|
||||
428, /* 0.46 */
|
||||
436, /* 0.47 */
|
||||
443, /* 0.48 */
|
||||
451, /* 0.49 */
|
||||
458, /* 0.50 */
|
||||
465, /* 0.51 */
|
||||
472, /* 0.52 */
|
||||
480, /* 0.53 */
|
||||
487, /* 0.54 */
|
||||
493, /* 0.55 */
|
||||
500, /* 0.56 */
|
||||
507, /* 0.57 */
|
||||
514, /* 0.58 */
|
||||
520, /* 0.59 */
|
||||
527, /* 0.60 */
|
||||
533, /* 0.61 */
|
||||
540, /* 0.62 */
|
||||
546, /* 0.63 */
|
||||
552, /* 0.64 */
|
||||
558, /* 0.65 */
|
||||
564, /* 0.66 */
|
||||
570, /* 0.67 */
|
||||
576, /* 0.68 */
|
||||
582, /* 0.69 */
|
||||
587, /* 0.70 */
|
||||
593, /* 0.71 */
|
||||
598, /* 0.72 */
|
||||
604, /* 0.73 */
|
||||
609, /* 0.74 */
|
||||
614, /* 0.75 */
|
||||
620, /* 0.76 */
|
||||
625, /* 0.77 */
|
||||
630, /* 0.78 */
|
||||
635, /* 0.79 */
|
||||
640, /* 0.80 */
|
||||
645, /* 0.81 */
|
||||
649, /* 0.82 */
|
||||
654, /* 0.83 */
|
||||
659, /* 0.84 */
|
||||
663, /* 0.85 */
|
||||
668, /* 0.86 */
|
||||
672, /* 0.87 */
|
||||
676, /* 0.88 */
|
||||
681, /* 0.89 */
|
||||
685, /* 0.90 */
|
||||
689, /* 0.91 */
|
||||
693, /* 0.92 */
|
||||
697, /* 0.93 */
|
||||
701, /* 0.94 */
|
||||
705, /* 0.95 */
|
||||
709, /* 0.96 */
|
||||
713, /* 0.97 */
|
||||
717, /* 0.98 */
|
||||
720, /* 0.99 */
|
||||
724, /* 1.00 */
|
||||
728, /* 1.01 */
|
||||
};
|
||||
|
||||
static
|
||||
short cosinus[] = {
|
||||
1024, /* 0.00 */
|
||||
1024, /* 0.01 */
|
||||
1024, /* 0.02 */
|
||||
1024, /* 0.03 */
|
||||
1023, /* 0.04 */
|
||||
1023, /* 0.05 */
|
||||
1022, /* 0.06 */
|
||||
1022, /* 0.07 */
|
||||
1021, /* 0.08 */
|
||||
1020, /* 0.09 */
|
||||
1019, /* 0.10 */
|
||||
1018, /* 0.11 */
|
||||
1017, /* 0.12 */
|
||||
1015, /* 0.13 */
|
||||
1014, /* 0.14 */
|
||||
1013, /* 0.15 */
|
||||
1011, /* 0.16 */
|
||||
1010, /* 0.17 */
|
||||
1008, /* 0.18 */
|
||||
1006, /* 0.19 */
|
||||
1004, /* 0.20 */
|
||||
1002, /* 0.21 */
|
||||
1000, /* 0.22 */
|
||||
998, /* 0.23 */
|
||||
996, /* 0.24 */
|
||||
993, /* 0.25 */
|
||||
991, /* 0.26 */
|
||||
989, /* 0.27 */
|
||||
986, /* 0.28 */
|
||||
983, /* 0.29 */
|
||||
981, /* 0.30 */
|
||||
978, /* 0.31 */
|
||||
975, /* 0.32 */
|
||||
972, /* 0.33 */
|
||||
969, /* 0.34 */
|
||||
967, /* 0.35 */
|
||||
963, /* 0.36 */
|
||||
960, /* 0.37 */
|
||||
957, /* 0.38 */
|
||||
954, /* 0.39 */
|
||||
951, /* 0.40 */
|
||||
947, /* 0.41 */
|
||||
944, /* 0.42 */
|
||||
941, /* 0.43 */
|
||||
937, /* 0.44 */
|
||||
934, /* 0.45 */
|
||||
930, /* 0.46 */
|
||||
927, /* 0.47 */
|
||||
923, /* 0.48 */
|
||||
920, /* 0.49 */
|
||||
916, /* 0.50 */
|
||||
912, /* 0.51 */
|
||||
909, /* 0.52 */
|
||||
905, /* 0.53 */
|
||||
901, /* 0.54 */
|
||||
897, /* 0.55 */
|
||||
893, /* 0.56 */
|
||||
890, /* 0.57 */
|
||||
886, /* 0.58 */
|
||||
882, /* 0.59 */
|
||||
878, /* 0.60 */
|
||||
874, /* 0.61 */
|
||||
870, /* 0.62 */
|
||||
866, /* 0.63 */
|
||||
862, /* 0.64 */
|
||||
859, /* 0.65 */
|
||||
855, /* 0.66 */
|
||||
851, /* 0.67 */
|
||||
847, /* 0.68 */
|
||||
843, /* 0.69 */
|
||||
839, /* 0.70 */
|
||||
835, /* 0.71 */
|
||||
831, /* 0.72 */
|
||||
827, /* 0.73 */
|
||||
823, /* 0.74 */
|
||||
819, /* 0.75 */
|
||||
815, /* 0.76 */
|
||||
811, /* 0.77 */
|
||||
807, /* 0.78 */
|
||||
804, /* 0.79 */
|
||||
800, /* 0.80 */
|
||||
796, /* 0.81 */
|
||||
792, /* 0.82 */
|
||||
788, /* 0.83 */
|
||||
784, /* 0.84 */
|
||||
780, /* 0.85 */
|
||||
776, /* 0.86 */
|
||||
773, /* 0.87 */
|
||||
769, /* 0.88 */
|
||||
765, /* 0.89 */
|
||||
761, /* 0.90 */
|
||||
757, /* 0.91 */
|
||||
754, /* 0.92 */
|
||||
750, /* 0.93 */
|
||||
746, /* 0.94 */
|
||||
742, /* 0.95 */
|
||||
739, /* 0.96 */
|
||||
735, /* 0.97 */
|
||||
731, /* 0.98 */
|
||||
728, /* 0.99 */
|
||||
724, /* 1.00 */
|
||||
720, /* 1.01 */
|
||||
};
|
||||
|
||||
void
|
||||
icossin2(int x, int y, int *cosp, int *sinp)
|
||||
{
|
||||
int sinsign, cossign, tan, tan10, rem;
|
||||
short *stp, *ctp;
|
||||
|
||||
if(x == 0){
|
||||
if(y >= 0)
|
||||
*sinp = ICOSSCALE, *cosp = 0;
|
||||
else
|
||||
*sinp = -ICOSSCALE, *cosp = 0;
|
||||
return;
|
||||
}
|
||||
sinsign = cossign = 1;
|
||||
if(x < 0){
|
||||
cossign = -1;
|
||||
x = -x;
|
||||
}
|
||||
if(y < 0){
|
||||
sinsign = -1;
|
||||
y = -y;
|
||||
}
|
||||
if(y > x){
|
||||
tan = 1000*x/y;
|
||||
tan10 = tan/10;
|
||||
stp = &cosinus[tan10];
|
||||
ctp = &sinus[tan10];
|
||||
}else{
|
||||
tan = 1000*y/x;
|
||||
tan10 = tan/10;
|
||||
stp = &sinus[tan10];
|
||||
ctp = &cosinus[tan10];
|
||||
}
|
||||
rem = tan-(tan10*10);
|
||||
*sinp = sinsign*(stp[0]+(stp[1]-stp[0])*rem/10);
|
||||
*cosp = cossign*(ctp[0]+(ctp[1]-ctp[0])*rem/10);
|
||||
}
|
18
libdraw/mkfile
Normal file
18
libdraw/mkfile
Normal file
@ -0,0 +1,18 @@
|
||||
<$DSRC/mkfile-$CONF
|
||||
TARG=libdraw.$L
|
||||
|
||||
OFILES=\
|
||||
alloc.$O\
|
||||
arith.$O\
|
||||
bytesperline.$O\
|
||||
chan.$O\
|
||||
defont.$O\
|
||||
drawrepl.$O\
|
||||
icossin.$O\
|
||||
icossin2.$O\
|
||||
rectclip.$O\
|
||||
rgb.$O
|
||||
|
||||
HFILES=\
|
||||
|
||||
<$DSRC/mklib-$CONF
|
25
libdraw/rectclip.c
Normal file
25
libdraw/rectclip.c
Normal file
@ -0,0 +1,25 @@
|
||||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <draw.h>
|
||||
|
||||
int
|
||||
rectclip(Rectangle *rp, Rectangle b) /* first by reference, second by value */
|
||||
{
|
||||
Rectangle *bp = &b;
|
||||
/*
|
||||
* Expand rectXrect() in line for speed
|
||||
*/
|
||||
if((rp->min.x<bp->max.x && bp->min.x<rp->max.x &&
|
||||
rp->min.y<bp->max.y && bp->min.y<rp->max.y)==0)
|
||||
return 0;
|
||||
/* They must overlap */
|
||||
if(rp->min.x < bp->min.x)
|
||||
rp->min.x = bp->min.x;
|
||||
if(rp->min.y < bp->min.y)
|
||||
rp->min.y = bp->min.y;
|
||||
if(rp->max.x > bp->max.x)
|
||||
rp->max.x = bp->max.x;
|
||||
if(rp->max.y > bp->max.y)
|
||||
rp->max.y = bp->max.y;
|
||||
return 1;
|
||||
}
|
99
libdraw/rgb.c
Normal file
99
libdraw/rgb.c
Normal file
@ -0,0 +1,99 @@
|
||||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <draw.h>
|
||||
|
||||
/*
|
||||
* This original version, although fast and a true inverse of
|
||||
* cmap2rgb, in the sense that rgb2cmap(cmap2rgb(c))
|
||||
* returned the original color, does a terrible job for RGB
|
||||
* triples that do not appear in the color map, so it has been
|
||||
* replaced by the much slower version below, that loops
|
||||
* over the color map looking for the nearest point in RGB
|
||||
* space. There is no visual psychology reason for that
|
||||
* criterion, but it's easy to implement and the results are
|
||||
* far more pleasing.
|
||||
*
|
||||
int
|
||||
rgb2cmap(int cr, int cg, int cb)
|
||||
{
|
||||
int r, g, b, v, cv;
|
||||
|
||||
if(cr < 0)
|
||||
cr = 0;
|
||||
else if(cr > 255)
|
||||
cr = 255;
|
||||
if(cg < 0)
|
||||
cg = 0;
|
||||
else if(cg > 255)
|
||||
cg = 255;
|
||||
if(cb < 0)
|
||||
cb = 0;
|
||||
else if(cb > 255)
|
||||
cb = 255;
|
||||
r = cr>>6;
|
||||
g = cg>>6;
|
||||
b = cb>>6;
|
||||
cv = cr;
|
||||
if(cg > cv)
|
||||
cv = cg;
|
||||
if(cb > cv)
|
||||
cv = cb;
|
||||
v = (cv>>4)&3;
|
||||
return ((((r<<2)+v)<<4)+(((g<<2)+b+v-r)&15));
|
||||
}
|
||||
*/
|
||||
|
||||
int
|
||||
rgb2cmap(int cr, int cg, int cb)
|
||||
{
|
||||
int i, r, g, b, sq;
|
||||
ulong rgb;
|
||||
int best, bestsq;
|
||||
|
||||
best = 0;
|
||||
bestsq = 0x7FFFFFFF;
|
||||
for(i=0; i<256; i++){
|
||||
rgb = cmap2rgb(i);
|
||||
r = (rgb>>16) & 0xFF;
|
||||
g = (rgb>>8) & 0xFF;
|
||||
b = (rgb>>0) & 0xFF;
|
||||
sq = (r-cr)*(r-cr)+(g-cg)*(g-cg)+(b-cb)*(b-cb);
|
||||
if(sq < bestsq){
|
||||
bestsq = sq;
|
||||
best = i;
|
||||
}
|
||||
}
|
||||
return best;
|
||||
}
|
||||
|
||||
int
|
||||
cmap2rgb(int c)
|
||||
{
|
||||
int j, num, den, r, g, b, v, rgb;
|
||||
|
||||
r = c>>6;
|
||||
v = (c>>4)&3;
|
||||
j = (c-v+r)&15;
|
||||
g = j>>2;
|
||||
b = j&3;
|
||||
den=r;
|
||||
if(g>den)
|
||||
den=g;
|
||||
if(b>den)
|
||||
den=b;
|
||||
if(den==0) {
|
||||
v *= 17;
|
||||
rgb = (v<<16)|(v<<8)|v;
|
||||
}
|
||||
else{
|
||||
num=17*(4*den+v);
|
||||
rgb = ((r*num/den)<<16)|((g*num/den)<<8)|(b*num/den);
|
||||
}
|
||||
return rgb;
|
||||
}
|
||||
|
||||
int
|
||||
cmap2rgba(int c)
|
||||
{
|
||||
return (cmap2rgb(c)<<8)|0xFF;
|
||||
}
|
Reference in New Issue
Block a user