Plan 9 from Bell Labs’s /usr/web/sources/extra/i/acid

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


sizeof_1_ = 8;
aggr _1_
{
	'U' 0 lo;
	'U' 4 hi;
};

defn
_1_(addr) {
	complex _1_ addr;
	print("	lo	", addr.lo, "\n");
	print("	hi	", addr.hi, "\n");
};

sizeofFPdbleword = 8;
aggr FPdbleword
{
	'F' 0 x;
	{
	'U' 0 lo;
	'U' 4 hi;
	};
};

defn
FPdbleword(addr) {
	complex FPdbleword addr;
	print("	x	", addr.x, "\n");
	print("_1_ {\n");
		_1_(addr+0);
	print("}\n");
};

UTFmax = 3;
Runesync = 128;
Runeself = 128;
Runeerror = 128;
sizeofFconv = 24;
aggr Fconv
{
	'X' 0 out;
	'X' 4 eout;
	'D' 8 f1;
	'D' 12 f2;
	'D' 16 f3;
	'D' 20 chr;
};

defn
Fconv(addr) {
	complex Fconv addr;
	print("	out	", addr.out\X, "\n");
	print("	eout	", addr.eout\X, "\n");
	print("	f1	", addr.f1, "\n");
	print("	f2	", addr.f2, "\n");
	print("	f3	", addr.f3, "\n");
	print("	chr	", addr.chr, "\n");
};

sizeofTm = 40;
aggr Tm
{
	'D' 0 sec;
	'D' 4 min;
	'D' 8 hour;
	'D' 12 mday;
	'D' 16 mon;
	'D' 20 year;
	'D' 24 wday;
	'D' 28 yday;
	'a' 32 zone;
	'D' 36 tzoff;
};

defn
Tm(addr) {
	complex Tm addr;
	print("	sec	", addr.sec, "\n");
	print("	min	", addr.min, "\n");
	print("	hour	", addr.hour, "\n");
	print("	mday	", addr.mday, "\n");
	print("	mon	", addr.mon, "\n");
	print("	year	", addr.year, "\n");
	print("	wday	", addr.wday, "\n");
	print("	yday	", addr.yday, "\n");
	print("	zone	", addr.zone, "\n");
	print("	tzoff	", addr.tzoff, "\n");
};

PNPROC = 1;
PNGROUP = 2;
sizeofLock = 4;
aggr Lock
{
	'D' 0 val;
};

defn
Lock(addr) {
	complex Lock addr;
	print("	val	", addr.val, "\n");
};

sizeofQLp = 12;
aggr QLp
{
	'D' 0 inuse;
	'A' QLp 4 next;
	'C' 8 state;
};

defn
QLp(addr) {
	complex QLp addr;
	print("	inuse	", addr.inuse, "\n");
	print("	next	", addr.next\X, "\n");
	print("	state	", addr.state, "\n");
};

sizeofQLock = 16;
aggr QLock
{
	Lock 0 lock;
	'D' 4 locked;
	'A' QLp 8 $head;
	'A' QLp 12 $tail;
};

defn
QLock(addr) {
	complex QLock addr;
	print("Lock lock {\n");
	Lock(addr.lock);
	print("}\n");
	print("	locked	", addr.locked, "\n");
	print("	$head	", addr.$head\X, "\n");
	print("	$tail	", addr.$tail\X, "\n");
};

sizeofRWLock = 20;
aggr RWLock
{
	Lock 0 lock;
	'D' 4 readers;
	'D' 8 writer;
	'A' QLp 12 $head;
	'A' QLp 16 $tail;
};

defn
RWLock(addr) {
	complex RWLock addr;
	print("Lock lock {\n");
	Lock(addr.lock);
	print("}\n");
	print("	readers	", addr.readers, "\n");
	print("	writer	", addr.writer, "\n");
	print("	$head	", addr.$head\X, "\n");
	print("	$tail	", addr.$tail\X, "\n");
};

sizeofNetConnInfo = 28;
aggr NetConnInfo
{
	'X' 0 dir;
	'X' 4 root;
	'X' 8 spec;
	'X' 12 lsys;
	'X' 16 lserv;
	'X' 20 rsys;
	'X' 24 rserv;
};

defn
NetConnInfo(addr) {
	complex NetConnInfo addr;
	print("	dir	", addr.dir\X, "\n");
	print("	root	", addr.root\X, "\n");
	print("	spec	", addr.spec\X, "\n");
	print("	lsys	", addr.lsys\X, "\n");
	print("	lserv	", addr.lserv\X, "\n");
	print("	rsys	", addr.rsys\X, "\n");
	print("	rserv	", addr.rserv\X, "\n");
};

RFNAMEG = 1;
RFENVG = 2;
RFFDG = 4;
RFNOTEG = 8;
RFPROC = 16;
RFMEM = 32;
RFNOWAIT = 64;
RFCNAMEG = 1024;
RFCENVG = 2048;
RFCFDG = 4096;
RFREND = 8192;
RFNOMNT = 16384;
sizeofQid = 16;
aggr Qid
{
	'W' 0 path;
	'U' 8 vers;
	'b' 12 type;
};

defn
Qid(addr) {
	complex Qid addr;
	print("	path	", addr.path, "\n");
	print("	vers	", addr.vers, "\n");
	print("	type	", addr.type, "\n");
};

sizeofDir = 60;
aggr Dir
{
	'u' 0 type;
	'U' 4 dev;
	Qid 8 qid;
	'U' 24 mode;
	'U' 28 atime;
	'U' 32 mtime;
	'V' 36 length;
	'X' 44 name;
	'X' 48 uid;
	'X' 52 gid;
	'X' 56 muid;
};

defn
Dir(addr) {
	complex Dir addr;
	print("	type	", addr.type, "\n");
	print("	dev	", addr.dev, "\n");
	print("Qid qid {\n");
	Qid(addr.qid);
	print("}\n");
	print("	mode	", addr.mode, "\n");
	print("	atime	", addr.atime, "\n");
	print("	mtime	", addr.mtime, "\n");
	print("	length	", addr.length, "\n");
	print("	name	", addr.name\X, "\n");
	print("	uid	", addr.uid\X, "\n");
	print("	gid	", addr.gid\X, "\n");
	print("	muid	", addr.muid\X, "\n");
};

sizeofWaitmsg = 20;
aggr Waitmsg
{
	'D' 0 pid;
	'a' 4 time;
	'X' 16 msg;
};

defn
Waitmsg(addr) {
	complex Waitmsg addr;
	print("	pid	", addr.pid, "\n");
	print("	time	", addr.time, "\n");
	print("	msg	", addr.msg\X, "\n");
};

sizeofIOchunk = 8;
aggr IOchunk
{
	'X' 0 addr;
	'U' 4 len;
};

defn
IOchunk(addr) {
	complex IOchunk addr;
	print("	addr	", addr.addr\X, "\n");
	print("	len	", addr.len, "\n");
};

DOpaque = 4294967295;
DTransparent = 0;
DBlack = 255;
DWhite = 4294967295;
DRed = 4278190335;
DGreen = 16711935;
DBlue = 65535;
DCyan = 16777215;
DMagenta = 4278255615;
DYellow = 4294902015;
DPaleyellow = 4294945535;
DDarkyellow = 4008615679;
DDarkgreen = 1149781247;
DPalegreen = 2868882175;
DMedgreen = 2295105791;
DDarkblue = 22015;
DPalebluegreen = 2868903935;
DPaleblue = 48127;
DBluegreen = 8947967;
DGreygreen = 1437248255;
DPalegreygreen = 2666458879;
DYellowgreen = 2576960767;
DMedblue = 39423;
DGreyblue = 6142975;
DPalegreyblue = 1234427391;
DPurpleblue = 2290666751;
DNotacolor = 4294967040;
DNofill = 4294967040;
Displaybufsize = 8000;
ICOSSCALE = 1024;
Borderwidth = 4;
Refbackup = 0;
Refnone = 1;
Refmesg = 2;
Endsquare = 0;
Enddisc = 1;
Endarrow = 2;
Endmask = 31;
CRed = 0;
CGreen = 1;
CBlue = 2;
CGrey = 3;
CAlpha = 4;
CMap = 5;
CIgnore = 6;
NChan = 7;
GREY1 = 49;
GREY2 = 50;
GREY4 = 52;
GREY8 = 56;
CMAP8 = 88;
RGB15 = 1627723045;
RGB16 = 333349;
RGB24 = 530472;
RGBA32 = 135800904;
ARGB32 = 1208490024;
XRGB32 = 1745360936;
sizeofPoint = 8;
aggr Point
{
	'D' 0 x;
	'D' 4 y;
};

defn
Point(addr) {
	complex Point addr;
	print("	x	", addr.x, "\n");
	print("	y	", addr.y, "\n");
};

sizeofRectangle = 16;
aggr Rectangle
{
	Point 0 min;
	Point 8 max;
};

defn
Rectangle(addr) {
	complex Rectangle addr;
	print("Point min {\n");
	Point(addr.min);
	print("}\n");
	print("Point max {\n");
	Point(addr.max);
	print("}\n");
};

sizeofScreen = 16;
aggr Screen
{
	'X' 0 display;
	'D' 4 id;
	'X' 8 image;
	'X' 12 fill;
};

defn
Screen(addr) {
	complex Screen addr;
	print("	display	", addr.display\X, "\n");
	print("	id	", addr.id, "\n");
	print("	image	", addr.image\X, "\n");
	print("	fill	", addr.fill\X, "\n");
};

sizeofDisplay = 176;
aggr Display
{
	QLock 0 qlock;
	'D' 16 locking;
	'D' 20 dirno;
	'D' 24 fd;
	'D' 28 reffd;
	'D' 32 ctlfd;
	'D' 36 imageid;
	'D' 40 $local;
	'D' 44 depth;
	'U' 48 chan;
	'X' 52 error;
	'X' 56 devdir;
	'X' 60 windir;
	'a' 64 oldlabel;
	'U' 128 dataqid;
	'X' 132 white;
	'X' 136 black;
	'X' 140 image;
	'X' 144 opaque;
	'X' 148 transparent;
	'X' 152 buf;
	'D' 156 bufsize;
	'X' 160 bufp;
	'X' 164 defaultfont;
	'X' 168 defaultsubfont;
	'X' 172 windows;
};

defn
Display(addr) {
	complex Display addr;
	print("QLock qlock {\n");
	QLock(addr.qlock);
	print("}\n");
	print("	locking	", addr.locking, "\n");
	print("	dirno	", addr.dirno, "\n");
	print("	fd	", addr.fd, "\n");
	print("	reffd	", addr.reffd, "\n");
	print("	ctlfd	", addr.ctlfd, "\n");
	print("	imageid	", addr.imageid, "\n");
	print("	$local	", addr.$local, "\n");
	print("	depth	", addr.depth, "\n");
	print("	chan	", addr.chan, "\n");
	print("	error	", addr.error\X, "\n");
	print("	devdir	", addr.devdir\X, "\n");
	print("	windir	", addr.windir\X, "\n");
	print("	oldlabel	", addr.oldlabel, "\n");
	print("	dataqid	", addr.dataqid, "\n");
	print("	white	", addr.white\X, "\n");
	print("	black	", addr.black\X, "\n");
	print("	image	", addr.image\X, "\n");
	print("	opaque	", addr.opaque\X, "\n");
	print("	transparent	", addr.transparent\X, "\n");
	print("	buf	", addr.buf\X, "\n");
	print("	bufsize	", addr.bufsize, "\n");
	print("	bufp	", addr.bufp\X, "\n");
	print("	defaultfont	", addr.defaultfont\X, "\n");
	print("	defaultsubfont	", addr.defaultsubfont\X, "\n");
	print("	windows	", addr.windows\X, "\n");
};

sizeofImage = 60;
aggr Image
{
	'A' Display 0 display;
	'D' 4 id;
	Rectangle 8 r;
	Rectangle 24 clipr;
	'D' 40 depth;
	'U' 44 chan;
	'D' 48 repl;
	'A' Screen 52 screen;
	'A' Image 56 next;
};

defn
Image(addr) {
	complex Image addr;
	print("	display	", addr.display\X, "\n");
	print("	id	", addr.id, "\n");
	print("Rectangle r {\n");
	Rectangle(addr.r);
	print("}\n");
	print("Rectangle clipr {\n");
	Rectangle(addr.clipr);
	print("}\n");
	print("	depth	", addr.depth, "\n");
	print("	chan	", addr.chan, "\n");
	print("	repl	", addr.repl, "\n");
	print("	screen	", addr.screen\X, "\n");
	print("	next	", addr.next\X, "\n");
};

sizeofRGB = 12;
aggr RGB
{
	'U' 0 red;
	'U' 4 green;
	'U' 8 blue;
};

defn
RGB(addr) {
	complex RGB addr;
	print("	red	", addr.red, "\n");
	print("	green	", addr.green, "\n");
	print("	blue	", addr.blue, "\n");
};

sizeofFontchar = 8;
aggr Fontchar
{
	'D' 0 x;
	'b' 4 top;
	'b' 5 bottom;
	'C' 6 left;
	'b' 7 width;
};

defn
Fontchar(addr) {
	complex Fontchar addr;
	print("	x	", addr.x, "\n");
	print("	top	", addr.top, "\n");
	print("	bottom	", addr.bottom, "\n");
	print("	left	", addr.left, "\n");
	print("	width	", addr.width, "\n");
};

sizeofSubfont = 20;
aggr Subfont
{
	'X' 0 name;
	'd' 4 n;
	'b' 6 height;
	'C' 7 ascent;
	'A' Fontchar 8 info;
	'A' Image 12 bits;
	'D' 16 ref;
};

defn
Subfont(addr) {
	complex Subfont addr;
	print("	name	", addr.name\X, "\n");
	print("	n	", addr.n, "\n");
	print("	height	", addr.height, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("	info	", addr.info\X, "\n");
	print("	bits	", addr.bits\X, "\n");
	print("	ref	", addr.ref, "\n");
};

LOG2NFCACHE = 6;
NFCACHE = 64;
NFLOOK = 5;
NFSUBF = 2;
MAXFCACHE = 1029;
MAXSUBF = 50;
DSUBF = 4;
SUBFAGE = 10000;
CACHEAGE = 10000;
sizeofCachefont = 16;
aggr Cachefont
{
	'u' 0 min;
	'u' 2 max;
	'D' 4 offset;
	'X' 8 name;
	'X' 12 subfontname;
};

defn
Cachefont(addr) {
	complex Cachefont addr;
	print("	min	", addr.min, "\n");
	print("	max	", addr.max, "\n");
	print("	offset	", addr.offset, "\n");
	print("	name	", addr.name\X, "\n");
	print("	subfontname	", addr.subfontname\X, "\n");
};

sizeofCacheinfo = 8;
aggr Cacheinfo
{
	'u' 0 x;
	'b' 2 width;
	'C' 3 left;
	'u' 4 value;
	'u' 6 age;
};

defn
Cacheinfo(addr) {
	complex Cacheinfo addr;
	print("	x	", addr.x, "\n");
	print("	width	", addr.width, "\n");
	print("	left	", addr.left, "\n");
	print("	value	", addr.value, "\n");
	print("	age	", addr.age, "\n");
};

sizeofCachesubf = 12;
aggr Cachesubf
{
	'U' 0 age;
	'A' Cachefont 4 cf;
	'A' Subfont 8 f;
};

defn
Cachesubf(addr) {
	complex Cachesubf addr;
	print("	age	", addr.age, "\n");
	print("	cf	", addr.cf\X, "\n");
	print("	f	", addr.f\X, "\n");
};

sizeofFont = 48;
aggr Font
{
	'X' 0 name;
	'A' Display 4 display;
	'd' 8 height;
	'd' 10 ascent;
	'd' 12 width;
	'd' 14 nsub;
	'U' 16 age;
	'D' 20 maxdepth;
	'D' 24 ncache;
	'D' 28 nsubf;
	'A' Cacheinfo 32 cache;
	'A' Cachesubf 36 subf;
	'A' Cachefont 40 sub;
	'A' Image 44 cacheimage;
};

defn
Font(addr) {
	complex Font addr;
	print("	name	", addr.name\X, "\n");
	print("	display	", addr.display\X, "\n");
	print("	height	", addr.height, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("	width	", addr.width, "\n");
	print("	nsub	", addr.nsub, "\n");
	print("	age	", addr.age, "\n");
	print("	maxdepth	", addr.maxdepth, "\n");
	print("	ncache	", addr.ncache, "\n");
	print("	nsubf	", addr.nsubf, "\n");
	print("	cache	", addr.cache\X, "\n");
	print("	subf	", addr.subf\X, "\n");
	print("	sub	", addr.sub\X, "\n");
	print("	cacheimage	", addr.cacheimage\X, "\n");
};

complex Point ZP;
complex Rectangle ZR;
complex Display display;
complex Font font;
complex Image screen;
complex Screen _screen;
Nqwds = 2;
Nqshift = 5;
Nqmask = -1;
Nqbits = 64;
sizeofChannel = 32;
aggr Channel
{
	'D' 0 s;
	'U' 4 f;
	'U' 8 n;
	'D' 12 e;
	'D' 16 freed;
	'X' 20 qentry;
	'D' 24 nentry;
	'a' 28 v;
};

defn
Channel(addr) {
	complex Channel addr;
	print("	s	", addr.s, "\n");
	print("	f	", addr.f, "\n");
	print("	n	", addr.n, "\n");
	print("	e	", addr.e, "\n");
	print("	freed	", addr.freed, "\n");
	print("	qentry	", addr.qentry\X, "\n");
	print("	nentry	", addr.nentry, "\n");
	print("	v	", addr.v, "\n");
};

CHANEND = 0;
CHANSND = 1;
CHANRCV = 2;
CHANNOP = 3;
CHANNOBLK = 4;
sizeofAlt = 20;
aggr Alt
{
	'A' Channel 0 c;
	'X' 4 v;
	'D' 8 op;
	'A' Channel 12 tag;
	'D' 16 entryno;
};

defn
Alt(addr) {
	complex Alt addr;
	print("	c	", addr.c\X, "\n");
	print("	v	", addr.v\X, "\n");
	print("	op	", addr.op, "\n");
	print("	tag	", addr.tag\X, "\n");
	print("	entryno	", addr.entryno, "\n");
};

sizeofRef = 4;
aggr Ref
{
	'D' 0 ref;
};

defn
Ref(addr) {
	complex Ref addr;
	print("	ref	", addr.ref, "\n");
};

GRnone = 0;
GRmain = 1;
GRnet = 2;
GRprog = 3;
GRalert = 4;
sizeofList = 8;
aggr List
{
	'A' List 0 next;
	'D' 4 val;
};

defn
List(addr) {
	complex List addr;
	print("	next	", addr.next\X, "\n");
	print("	val	", addr.val, "\n");
};

sizeofStrlist = 8;
aggr Strlist
{
	'A' Strlist 0 next;
	'X' 4 val;
};

defn
Strlist(addr) {
	complex Strlist addr;
	print("	next	", addr.next\X, "\n");
	print("	val	", addr.val\X, "\n");
};

NOSCHEME = 0;
HTTP = 1;
HTTPS = 2;
FTP = 3;
FILE = 4;
GOPHER = 5;
MAILTO = 6;
NEWS = 7;
NNTP = 8;
TELNET = 9;
WAIS = 10;
PROSPERO = 11;
UNKNOWN = 12;
NSCHEMES = 13;
sizeofParsedUrl = 76;
aggr ParsedUrl
{
	'D' 0 scheme;
	'X' 4 user;
	'D' 8 nuser;
	'X' 12 passwd;
	'D' 16 npasswd;
	'X' 20 host;
	'D' 24 nhost;
	'X' 28 port;
	'D' 32 nport;
	'X' 36 pstart;
	'D' 40 npstart;
	'X' 44 path;
	'D' 48 npath;
	'X' 52 query;
	'D' 56 nquery;
	'X' 60 frag;
	'D' 64 nfrag;
	'D' 68 nurl;
	'a' 72 url;
};

defn
ParsedUrl(addr) {
	complex ParsedUrl addr;
	print("	scheme	", addr.scheme, "\n");
	print("	user	", addr.user\X, "\n");
	print("	nuser	", addr.nuser, "\n");
	print("	passwd	", addr.passwd\X, "\n");
	print("	npasswd	", addr.npasswd, "\n");
	print("	host	", addr.host\X, "\n");
	print("	nhost	", addr.nhost, "\n");
	print("	port	", addr.port\X, "\n");
	print("	nport	", addr.nport, "\n");
	print("	pstart	", addr.pstart\X, "\n");
	print("	npstart	", addr.npstart, "\n");
	print("	path	", addr.path\X, "\n");
	print("	npath	", addr.npath, "\n");
	print("	query	", addr.query\X, "\n");
	print("	nquery	", addr.nquery, "\n");
	print("	frag	", addr.frag\X, "\n");
	print("	nfrag	", addr.nfrag, "\n");
	print("	nurl	", addr.nurl, "\n");
	print("	url	", addr.url, "\n");
};

sizeofStringInt = 8;
aggr StringInt
{
	'X' 0 key;
	'D' 4 val;
};

defn
StringInt(addr) {
	complex StringInt addr;
	print("	key	", addr.key\X, "\n");
	print("	val	", addr.val, "\n");
};

HGet = 0;
HPost = 1;
ApplMsword = 0;
ApplOctets = 1;
ApplPdf = 2;
ApplPostscript = 3;
ApplRtf = 4;
ApplFramemaker = 5;
ApplMsexcel = 6;
ApplMspowerpoint = 7;
UnknownType = 8;
Audio32kadpcm = 9;
AudioBasic = 10;
ImageCgm = 11;
ImageG3fax = 12;
ImageGif = 13;
ImageIef = 14;
ImageJpeg = 15;
ImagePng = 16;
ImageTiff = 17;
ImageXBit = 18;
ImageXBit2 = 19;
ImageXBitmulti = 20;
ImageXXBitmap = 21;
ModelVrml = 22;
MultiDigest = 23;
MultiMixed = 24;
TextCss = 25;
TextEnriched = 26;
TextHtml = 27;
TextJavascript = 28;
TextPlain = 29;
TextRichtext = 30;
TextSgml = 31;
TextTabSeparatedValues = 32;
TextXml = 33;
VideoMpeg = 34;
VideoQuicktime = 35;
NMEDIATYPES = 36;
UnknownCharset = 0;
US_Ascii = 1;
ISO_8859_1 = 2;
UTF_8 = 3;
Unicode = 4;
NCHARSETS = 5;
FTtop = 0;
FTself = 1;
FTparent = 2;
FTblank = 3;
ERRnone = 0;
ERRaborted = 1;
ERRunsupscheme = 2;
ERRunexphscode = 3;
ERRredirloop = 4;
ERRstaterr = 5;
ERRreaderr = 6;
ERRwriteerr = 7;
ERReof = 8;
ERRconnecterr = 9;
ERRftperr = 10;
ERRftpnologin = 11;
ERRhttperr = 12;
ERRauthfailed = 13;
ERRunsupimg = 14;
ERRnomem = 15;
ERRimgbad = 16;
NCfree = 0;
NCidle = 1;
NCconnect = 2;
NCgethdr = 3;
NCgetdata = 4;
NCdone = 5;
NCerr = 6;
NNCSTATES = 7;
NGstartreq = 0;
NGwaitreq = 1;
NGstatechg = 2;
NGfreebs = 3;
NGabort = 4;
Punused = 5;
Pstart = 6;
Pconnected = 7;
Phavehdr = 8;
Phavedata = 9;
Pdone = 10;
Perr = 11;
Paborted = 12;
NNGVALUES = 13;
White = 16777215;
Black = 0;
Grey = 14540253;
DarkGrey = 10329501;
LightGrey = 15592941;
DarkestGrey = 6710886;
Blue = 204;
Navy = 128;
Red = 16711680;
DarkRed = 10289152;
DGrey = 3722305023;
HSNone = 0;
HSInformation = 1;
HSOk = 2;
HSRedirect = 3;
HSError = 4;
HSServererr = 5;
NHSVALUES = 6;
HCContinue = 100;
HCSwitchProto = 101;
HCOk = 200;
HCCreated = 201;
HCAccepted = 202;
HCOkNonAuthoritative = 203;
HCNoContent = 204;
HCResetContent = 205;
HCPartialContent = 206;
HCMultipleChoices = 300;
HCMovedPerm = 301;
HCMovedTemp = 302;
HCSeeOther = 303;
HCNotModified = 304;
HCUseProxy = 305;
HCBadRequest = 400;
HCUnauthorized = 401;
HCPaymentRequired = 402;
HCForbidden = 403;
HCNotFound = 404;
HCMethodNotAllowed = 405;
HCNotAcceptable = 406;
HCProxyAuthRequired = 407;
HCRequestTimeout = 408;
HCConflict = 409;
HCGone = 410;
HCLengthRequired = 411;
HCPreconditionFailed = 412;
HCRequestTooLarge = 413;
HCRequestURITooLarge = 414;
HCUnsupportedMedia = 415;
HCRangeInvalid = 416;
HCExpectFailed = 419;
HCServerError = 500;
HCNotImplemented = 501;
HCBadGateway = 502;
HCServiceUnavailable = 503;
HCGatewayTimeout = 504;
HCVersionUnsupported = 505;
HCRedirectionFailed = 506;
NHCCODES = 507;
ImgNone = 0;
ImgNoAnim = 1;
ImgProgressive = 2;
ImgFull = 3;
sizeofConfig = 216;
aggr Config
{
	'X' 0 userdir;
	'A' ParsedUrl 4 starturl;
	'A' ParsedUrl 8 homeurl;
	'A' ParsedUrl 12 httpproxy;
	'D' 16 defaultwidth;
	'D' 20 defaultheight;
	'D' 24 x;
	'D' 28 y;
	'D' 32 nocache;
	'D' 36 maxstale;
	'D' 40 imagelvl;
	'D' 44 imagecachenum;
	'D' 48 imagecachemem;
	'D' 52 docookies;
	'D' 56 doscripts;
	'D' 60 saveauthinfo;
	'D' 64 showprogress;
	'D' 68 usecci;
	'D' 72 httpminor;
	'X' 76 agentname;
	'D' 80 nthreads;
	'X' 84 dbgfile;
	'a' 88 dbg;
};

defn
Config(addr) {
	complex Config addr;
	print("	userdir	", addr.userdir\X, "\n");
	print("	starturl	", addr.starturl\X, "\n");
	print("	homeurl	", addr.homeurl\X, "\n");
	print("	httpproxy	", addr.httpproxy\X, "\n");
	print("	defaultwidth	", addr.defaultwidth, "\n");
	print("	defaultheight	", addr.defaultheight, "\n");
	print("	x	", addr.x, "\n");
	print("	y	", addr.y, "\n");
	print("	nocache	", addr.nocache, "\n");
	print("	maxstale	", addr.maxstale, "\n");
	print("	imagelvl	", addr.imagelvl, "\n");
	print("	imagecachenum	", addr.imagecachenum, "\n");
	print("	imagecachemem	", addr.imagecachemem, "\n");
	print("	docookies	", addr.docookies, "\n");
	print("	doscripts	", addr.doscripts, "\n");
	print("	saveauthinfo	", addr.saveauthinfo, "\n");
	print("	showprogress	", addr.showprogress, "\n");
	print("	usecci	", addr.usecci, "\n");
	print("	httpminor	", addr.httpminor, "\n");
	print("	agentname	", addr.agentname\X, "\n");
	print("	nthreads	", addr.nthreads, "\n");
	print("	dbgfile	", addr.dbgfile\X, "\n");
	print("	dbg	", addr.dbg, "\n");
};

sizeofReqInfo = 24;
aggr ReqInfo
{
	'A' ParsedUrl 0 url;
	'D' 4 method;
	'X' 8 body;
	'D' 12 bodylen;
	'X' 16 auth;
	'D' 20 target;
};

defn
ReqInfo(addr) {
	complex ReqInfo addr;
	print("	url	", addr.url\X, "\n");
	print("	method	", addr.method, "\n");
	print("	body	", addr.body\X, "\n");
	print("	bodylen	", addr.bodylen, "\n");
	print("	auth	", addr.auth\X, "\n");
	print("	target	", addr.target, "\n");
};

sizeofMaskedImage = 28;
aggr MaskedImage
{
	'A' Image 0 im;
	'A' Image 4 mask;
	'D' 8 delay;
	'D' 12 more;
	'D' 16 bgcolor;
	Point 20 origin;
};

defn
MaskedImage(addr) {
	complex MaskedImage addr;
	print("	im	", addr.im\X, "\n");
	print("	mask	", addr.mask\X, "\n");
	print("	delay	", addr.delay, "\n");
	print("	more	", addr.more, "\n");
	print("	bgcolor	", addr.bgcolor, "\n");
	print("Point origin {\n");
	Point(addr.origin);
	print("}\n");
};

sizeofCImage = 36;
aggr CImage
{
	'A' CImage 0 next;
	'A' ParsedUrl 4 src;
	'A' ParsedUrl 8 actual;
	'D' 12 imhash;
	'D' 16 width;
	'D' 20 height;
	'D' 24 refcnt;
	'A' MaskedImage 28 mims;
	'D' 32 mimslen;
};

defn
CImage(addr) {
	complex CImage addr;
	print("	next	", addr.next\X, "\n");
	print("	src	", addr.src\X, "\n");
	print("	actual	", addr.actual\X, "\n");
	print("	imhash	", addr.imhash, "\n");
	print("	width	", addr.width, "\n");
	print("	height	", addr.height, "\n");
	print("	refcnt	", addr.refcnt, "\n");
	print("	mims	", addr.mims\X, "\n");
	print("	mimslen	", addr.mimslen, "\n");
};

sizeofNetconn = 88;
aggr Netconn
{
	'D' 0 id;
	'D' 4 rnpid;
	'D' 8 rntid;
	'X' 12 host;
	'D' 16 port;
	'D' 20 scheme;
	'D' 24 cfd;
	'D' 28 dfd;
	'D' 32 state;
	'X' 36 queue;
	'D' 40 qalloclen;
	'D' 44 qlen;
	'D' 48 gocur;
	'D' 52 ngcur;
	'D' 56 reqsent;
	'D' 60 pipeline;
	'D' 64 connected;
	'D' 68 tstate;
	'D' 72 tn1;
	'D' 76 tn2;
	'X' 80 tbuf;
	'D' 84 tbuflen;
};

defn
Netconn(addr) {
	complex Netconn addr;
	print("	id	", addr.id, "\n");
	print("	rnpid	", addr.rnpid, "\n");
	print("	rntid	", addr.rntid, "\n");
	print("	host	", addr.host\X, "\n");
	print("	port	", addr.port, "\n");
	print("	scheme	", addr.scheme, "\n");
	print("	cfd	", addr.cfd, "\n");
	print("	dfd	", addr.dfd, "\n");
	print("	state	", addr.state, "\n");
	print("	queue	", addr.queue\X, "\n");
	print("	qalloclen	", addr.qalloclen, "\n");
	print("	qlen	", addr.qlen, "\n");
	print("	gocur	", addr.gocur, "\n");
	print("	ngcur	", addr.ngcur, "\n");
	print("	reqsent	", addr.reqsent, "\n");
	print("	pipeline	", addr.pipeline, "\n");
	print("	connected	", addr.connected, "\n");
	print("	tstate	", addr.tstate, "\n");
	print("	tn1	", addr.tn1, "\n");
	print("	tn2	", addr.tn2, "\n");
	print("	tbuf	", addr.tbuf\X, "\n");
	print("	tbuflen	", addr.tbuflen, "\n");
};

sizeofHeader = 44;
aggr Header
{
	'D' 0 code;
	'A' ParsedUrl 4 actual;
	'A' ParsedUrl 8 base;
	'A' ParsedUrl 12 location;
	'D' 16 length;
	'D' 20 mtype;
	'D' 24 chset;
	'X' 28 msg;
	'X' 32 refresh;
	'X' 36 chal;
	'X' 40 warn;
};

defn
Header(addr) {
	complex Header addr;
	print("	code	", addr.code, "\n");
	print("	actual	", addr.actual\X, "\n");
	print("	base	", addr.base\X, "\n");
	print("	location	", addr.location\X, "\n");
	print("	length	", addr.length, "\n");
	print("	mtype	", addr.mtype, "\n");
	print("	chset	", addr.chset, "\n");
	print("	msg	", addr.msg\X, "\n");
	print("	refresh	", addr.refresh\X, "\n");
	print("	chal	", addr.chal\X, "\n");
	print("	warn	", addr.warn\X, "\n");
};

sizeofByteSource = 48;
aggr ByteSource
{
	'D' 0 id;
	'A' ReqInfo 4 req;
	'A' Header 8 hdr;
	'X' 12 data;
	'D' 16 dalloclen;
	'D' 20 edata;
	'D' 24 err;
	'A' Netconn 28 net;
	'D' 32 refgo;
	'D' 36 refnc;
	'D' 40 lim;
	'D' 44 seenhdr;
};

defn
ByteSource(addr) {
	complex ByteSource addr;
	print("	id	", addr.id, "\n");
	print("	req	", addr.req\X, "\n");
	print("	hdr	", addr.hdr\X, "\n");
	print("	data	", addr.data\X, "\n");
	print("	dalloclen	", addr.dalloclen, "\n");
	print("	edata	", addr.edata, "\n");
	print("	err	", addr.err, "\n");
	print("	net	", addr.net\X, "\n");
	print("	refgo	", addr.refgo, "\n");
	print("	refnc	", addr.refnc, "\n");
	print("	lim	", addr.lim, "\n");
	print("	seenhdr	", addr.seenhdr, "\n");
};

sizeofResourceState = 12;
aggr ResourceState
{
	'D' 0 ms;
	'D' 4 mem;
	'D' 8 memavail;
};

defn
ResourceState(addr) {
	complex ResourceState addr;
	print("	ms	", addr.ms, "\n");
	print("	mem	", addr.mem, "\n");
	print("	memavail	", addr.memavail, "\n");
};

complex Config config;
complex ResourceState startres;
sizeofTransport = 24;
aggr Transport
{
	'X' 0 init;
	'X' 4 connect;
	'X' 8 writereq;
	'X' 12 gethdr;
	'X' 16 getdata;
	'X' 20 defaultport;
};

defn
Transport(addr) {
	complex Transport addr;
	print("	init	", addr.init\X, "\n");
	print("	connect	", addr.connect\X, "\n");
	print("	writereq	", addr.writereq\X, "\n");
	print("	gethdr	", addr.gethdr\X, "\n");
	print("	getdata	", addr.getdata\X, "\n");
	print("	defaultport	", addr.defaultport\X, "\n");
};

Notfound = 0;
Comment = 1;
Ta = 2;
Tabbr = 3;
Tacronym = 4;
Taddress = 5;
Tapplet = 6;
Tarea = 7;
Tb = 8;
Tbase = 9;
Tbasefont = 10;
Tbdo = 11;
Tbig = 12;
Tblink = 13;
Tblockquote = 14;
Tbody = 15;
Tbq = 16;
Tbr = 17;
Tbutton = 18;
Tcaption = 19;
Tcenter = 20;
Tcite = 21;
Tcode = 22;
Tcol = 23;
Tcolgroup = 24;
Tdd = 25;
Tdel = 26;
Tdfn = 27;
Tdir = 28;
Tdiv = 29;
Tdl = 30;
Tdt = 31;
Tem = 32;
Tfieldset = 33;
Tfont = 34;
Tform = 35;
Tframe = 36;
Tframeset = 37;
Th1 = 38;
Th2 = 39;
Th3 = 40;
Th4 = 41;
Th5 = 42;
Th6 = 43;
Thead = 44;
Thr = 45;
Thtml = 46;
Ti = 47;
Tiframe = 48;
Timg = 49;
Tinput = 50;
Tins = 51;
Tisindex = 52;
Tkbd = 53;
Tlabel = 54;
Tlegend = 55;
Tli = 56;
Tlink = 57;
Tmap = 58;
Tmenu = 59;
Tmeta = 60;
Tnobr = 61;
Tnoframes = 62;
Tnoscript = 63;
Tobject = 64;
Tol = 65;
Toptgroup = 66;
Toption = 67;
Tp = 68;
Tparam = 69;
Tpre = 70;
Tq = 71;
Ts = 72;
Tsamp = 73;
Tscript = 74;
Tselect = 75;
Tsmall = 76;
Tspan = 77;
Tstrike = 78;
Tstrong = 79;
Tstyle = 80;
Tsub = 81;
Tsup = 82;
Ttable = 83;
Ttbody = 84;
Ttd = 85;
Ttextarea = 86;
Ttfoot = 87;
Tth = 88;
Tthead = 89;
Ttitle = 90;
Ttr = 91;
Ttt = 92;
Tu = 93;
Tul = 94;
Tvar = 95;
Numtags = 96;
RBRA = 96;
Data = 192;
Aabbr = 0;
Aaccept_charset = 1;
Aaccess_key = 2;
Aaction = 3;
Aalign = 4;
Aalink = 5;
Aalt = 6;
Aarchive = 7;
Aaxis = 8;
Abackground = 9;
Abgcolor = 10;
Aborder = 11;
Acellpadding = 12;
Acellspacing = 13;
Achar = 14;
Acharoff = 15;
Acharset = 16;
Achecked = 17;
Acite = 18;
Aclass = 19;
Aclassid = 20;
Aclear = 21;
Acode = 22;
Acodebase = 23;
Acodetype = 24;
Acolor = 25;
Acols = 26;
Acolspan = 27;
Acompact = 28;
Acontent = 29;
Acoords = 30;
Adata = 31;
Adatetime = 32;
Adeclare = 33;
Adefer = 34;
Adir = 35;
Adisabled = 36;
Aenctype = 37;
Aface = 38;
Afor = 39;
Aframe = 40;
Aframeborder = 41;
Aheaders = 42;
Aheight = 43;
Ahref = 44;
Ahreflang = 45;
Ahspace = 46;
Ahttp_equiv = 47;
Aid = 48;
Aismap = 49;
Alabel = 50;
Alang = 51;
Alink = 52;
Alongdesc = 53;
Amarginheight = 54;
Amarginwidth = 55;
Amaxlength = 56;
Amedia = 57;
Amethod = 58;
Amultiple = 59;
Aname = 60;
Anohref = 61;
Anoresize = 62;
Anoshade = 63;
Anowrap = 64;
Aobject = 65;
Aonblur = 66;
Aonchange = 67;
Aonclick = 68;
Aondblclick = 69;
Aonfocus = 70;
Aonkeypress = 71;
Aonkeyup = 72;
Aonload = 73;
Aonmousedown = 74;
Aonmousemove = 75;
Aonmouseout = 76;
Aonmouseover = 77;
Aonmouseup = 78;
Aonreset = 79;
Aonselect = 80;
Aonsubmit = 81;
Aonunload = 82;
Aprofile = 83;
Aprompt = 84;
Areadonly = 85;
Arel = 86;
Arev = 87;
Arows = 88;
Arowspan = 89;
Arules = 90;
Ascheme = 91;
Ascope = 92;
Ascrolling = 93;
Aselected = 94;
Ashape = 95;
Asize = 96;
Aspan = 97;
Asrc = 98;
Astandby = 99;
Astart = 100;
Astyle = 101;
Asummary = 102;
Atabindex = 103;
Atarget = 104;
Atext = 105;
Atitle = 106;
Atype = 107;
Ausemap = 108;
Avalign = 109;
Avalue = 110;
Avaluetype = 111;
Aversion = 112;
Avlink = 113;
Avspace = 114;
Awidth = 115;
Numattrs = 116;
sizeofToken = 16;
aggr Token
{
	'D' 0 tag;
	'X' 4 text;
	'X' 8 attr;
	'D' 12 starti;
};

defn
Token(addr) {
	complex Token addr;
	print("	tag	", addr.tag, "\n");
	print("	text	", addr.text\X, "\n");
	print("	attr	", addr.attr\X, "\n");
	print("	starti	", addr.starti, "\n");
};

sizeofAttr = 12;
aggr Attr
{
	'A' Attr 0 next;
	'D' 4 attid;
	'X' 8 value;
};

defn
Attr(addr) {
	complex Attr addr;
	print("	next	", addr.next\X, "\n");
	print("	attid	", addr.attid, "\n");
	print("	value	", addr.value\X, "\n");
};

sizeofTokenSource = 20;
aggr TokenSource
{
	'D' 0 i;
	'A' ByteSource 4 b;
	'D' 8 chset;
	'D' 12 mtype;
	'D' 16 ihigh;
};

defn
TokenSource(addr) {
	complex TokenSource addr;
	print("	i	", addr.i, "\n");
	print("	b	", addr.b\X, "\n");
	print("	chset	", addr.chset, "\n");
	print("	mtype	", addr.mtype, "\n");
	print("	ihigh	", addr.ihigh, "\n");
};

ALnone = 0;
ALleft = 1;
ALcenter = 2;
ALright = 3;
ALjustify = 4;
ALchar = 5;
ALtop = 6;
ALmiddle = 7;
ALbottom = 8;
ALbaseline = 9;
sizeofAlign = 4;
aggr Align
{
	'b' 0 halign;
	'b' 1 valign;
};

defn
Align(addr) {
	complex Align addr;
	print("	halign	", addr.halign, "\n");
	print("	valign	", addr.valign, "\n");
};

Dnone = 0;
Dpixels = 536870912;
Dpercent = 1073741824;
Drelative = 1610612736;
Dkindmask = 1610612736;
Dspecmask = -1610612737;
sizeofDimen = 4;
aggr Dimen
{
	'D' 0 kindspec;
};

defn
Dimen(addr) {
	complex Dimen addr;
	print("	kindspec	", addr.kindspec, "\n");
};

sizeofBackground = 8;
aggr Background
{
	'A' CImage 0 image;
	'D' 4 color;
};

defn
Background(addr) {
	complex Background addr;
	print("	image	", addr.image\X, "\n");
	print("	color	", addr.color, "\n");
};

sizeofItem = 32;
aggr Item
{
	'A' Item 0 next;
	'D' 4 width;
	'D' 8 height;
	'D' 12 ascent;
	'D' 16 anchorid;
	'D' 20 state;
	'X' 24 genattr;
	'D' 28 tag;
};

defn
Item(addr) {
	complex Item addr;
	print("	next	", addr.next\X, "\n");
	print("	width	", addr.width, "\n");
	print("	height	", addr.height, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("	anchorid	", addr.anchorid, "\n");
	print("	state	", addr.state, "\n");
	print("	genattr	", addr.genattr\X, "\n");
	print("	tag	", addr.tag, "\n");
};

Itexttag = 0;
Iruletag = 1;
Iimagetag = 2;
Iformfieldtag = 3;
Itabletag = 4;
Ifloattag = 5;
Ispacertag = 6;
sizeofItext = 48;
aggr Itext
{
	'A' Item 0 next;
	'D' 4 width;
	'D' 8 height;
	'D' 12 ascent;
	'D' 16 anchorid;
	'D' 20 state;
	'X' 24 genattr;
	'D' 28 tag;
	'X' 32 s;
	'D' 36 fnt;
	'D' 40 fg;
	'b' 44 voff;
	'b' 45 ul;
};

defn
Itext(addr) {
	complex Itext addr;
	print("	next	", addr.next\X, "\n");
	print("	width	", addr.width, "\n");
	print("	height	", addr.height, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("	anchorid	", addr.anchorid, "\n");
	print("	state	", addr.state, "\n");
	print("	genattr	", addr.genattr\X, "\n");
	print("	tag	", addr.tag, "\n");
	print("	s	", addr.s\X, "\n");
	print("	fnt	", addr.fnt, "\n");
	print("	fg	", addr.fg, "\n");
	print("	voff	", addr.voff, "\n");
	print("	ul	", addr.ul, "\n");
};

sizeofIrule = 44;
aggr Irule
{
	'A' Item 0 next;
	'D' 4 width;
	'D' 8 height;
	'D' 12 ascent;
	'D' 16 anchorid;
	'D' 20 state;
	'X' 24 genattr;
	'D' 28 tag;
	'b' 32 align;
	'b' 33 noshade;
	'D' 36 size;
	Dimen 40 wspec;
};

defn
Irule(addr) {
	complex Irule addr;
	print("	next	", addr.next\X, "\n");
	print("	width	", addr.width, "\n");
	print("	height	", addr.height, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("	anchorid	", addr.anchorid, "\n");
	print("	state	", addr.state, "\n");
	print("	genattr	", addr.genattr\X, "\n");
	print("	tag	", addr.tag, "\n");
	print("	align	", addr.align, "\n");
	print("	noshade	", addr.noshade, "\n");
	print("	size	", addr.size, "\n");
	print("Dimen wspec {\n");
	Dimen(addr.wspec);
	print("}\n");
};

sizeofIimage = 64;
aggr Iimage
{
	'A' Item 0 next;
	'D' 4 width;
	'D' 8 height;
	'D' 12 ascent;
	'D' 16 anchorid;
	'D' 20 state;
	'X' 24 genattr;
	'D' 28 tag;
	'A' CImage 32 ci;
	'D' 36 imwidth;
	'D' 40 imheight;
	'X' 44 altrep;
	'X' 48 map;
	'D' 52 ctlid;
	'b' 56 align;
	'b' 57 hspace;
	'b' 58 vspace;
	'b' 59 border;
	'A' Iimage 60 nextimage;
};

defn
Iimage(addr) {
	complex Iimage addr;
	print("	next	", addr.next\X, "\n");
	print("	width	", addr.width, "\n");
	print("	height	", addr.height, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("	anchorid	", addr.anchorid, "\n");
	print("	state	", addr.state, "\n");
	print("	genattr	", addr.genattr\X, "\n");
	print("	tag	", addr.tag, "\n");
	print("	ci	", addr.ci\X, "\n");
	print("	imwidth	", addr.imwidth, "\n");
	print("	imheight	", addr.imheight, "\n");
	print("	altrep	", addr.altrep\X, "\n");
	print("	map	", addr.map\X, "\n");
	print("	ctlid	", addr.ctlid, "\n");
	print("	align	", addr.align, "\n");
	print("	hspace	", addr.hspace, "\n");
	print("	vspace	", addr.vspace, "\n");
	print("	border	", addr.border, "\n");
	print("	nextimage	", addr.nextimage\X, "\n");
};

sizeofIformfield = 36;
aggr Iformfield
{
	'A' Item 0 next;
	'D' 4 width;
	'D' 8 height;
	'D' 12 ascent;
	'D' 16 anchorid;
	'D' 20 state;
	'X' 24 genattr;
	'D' 28 tag;
	'X' 32 formfield;
};

defn
Iformfield(addr) {
	complex Iformfield addr;
	print("	next	", addr.next\X, "\n");
	print("	width	", addr.width, "\n");
	print("	height	", addr.height, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("	anchorid	", addr.anchorid, "\n");
	print("	state	", addr.state, "\n");
	print("	genattr	", addr.genattr\X, "\n");
	print("	tag	", addr.tag, "\n");
	print("	formfield	", addr.formfield\X, "\n");
};

sizeofItable = 36;
aggr Itable
{
	'A' Item 0 next;
	'D' 4 width;
	'D' 8 height;
	'D' 12 ascent;
	'D' 16 anchorid;
	'D' 20 state;
	'X' 24 genattr;
	'D' 28 tag;
	'X' 32 table;
};

defn
Itable(addr) {
	complex Itable addr;
	print("	next	", addr.next\X, "\n");
	print("	width	", addr.width, "\n");
	print("	height	", addr.height, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("	anchorid	", addr.anchorid, "\n");
	print("	state	", addr.state, "\n");
	print("	genattr	", addr.genattr\X, "\n");
	print("	tag	", addr.tag, "\n");
	print("	table	", addr.table\X, "\n");
};

sizeofIfloat = 52;
aggr Ifloat
{
	'A' Item 0 next;
	'D' 4 width;
	'D' 8 height;
	'D' 12 ascent;
	'D' 16 anchorid;
	'D' 20 state;
	'X' 24 genattr;
	'D' 28 tag;
	'A' Item 32 item;
	'D' 36 x;
	'D' 40 y;
	'b' 44 side;
	'b' 45 infloats;
	'A' Ifloat 48 nextfloat;
};

defn
Ifloat(addr) {
	complex Ifloat addr;
	print("	next	", addr.next\X, "\n");
	print("	width	", addr.width, "\n");
	print("	height	", addr.height, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("	anchorid	", addr.anchorid, "\n");
	print("	state	", addr.state, "\n");
	print("	genattr	", addr.genattr\X, "\n");
	print("	tag	", addr.tag, "\n");
	print("	item	", addr.item\X, "\n");
	print("	x	", addr.x, "\n");
	print("	y	", addr.y, "\n");
	print("	side	", addr.side, "\n");
	print("	infloats	", addr.infloats, "\n");
	print("	nextfloat	", addr.nextfloat\X, "\n");
};

sizeofIspacer = 36;
aggr Ispacer
{
	'A' Item 0 next;
	'D' 4 width;
	'D' 8 height;
	'D' 12 ascent;
	'D' 16 anchorid;
	'D' 20 state;
	'X' 24 genattr;
	'D' 28 tag;
	'D' 32 spkind;
};

defn
Ispacer(addr) {
	complex Ispacer addr;
	print("	next	", addr.next\X, "\n");
	print("	width	", addr.width, "\n");
	print("	height	", addr.height, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("	anchorid	", addr.anchorid, "\n");
	print("	state	", addr.state, "\n");
	print("	genattr	", addr.genattr\X, "\n");
	print("	tag	", addr.tag, "\n");
	print("	spkind	", addr.spkind, "\n");
};

IFbrk = 2147483648;
IFbrksp = 1073741824;
IFnobrk = 536870912;
IFcleft = 268435456;
IFcright = 134217728;
IFwrap = 67108864;
IFhang = 33554432;
IFrjust = 16777216;
IFcjust = 8388608;
IFsmap = 4194304;
IFindentshift = 8;
IFindentmask = 65280;
IFhangmask = 255;
Voffbias = 128;
ISPnull = 0;
ISPvline = 1;
ISPhspace = 2;
ISPgeneral = 3;
sizeofItemlist = 8;
aggr Itemlist
{
	'A' Itemlist 0 next;
	'A' Item 4 val;
};

defn
Itemlist(addr) {
	complex Itemlist addr;
	print("	next	", addr.next\X, "\n");
	print("	val	", addr.val\X, "\n");
};

sizeofGenattr = 20;
aggr Genattr
{
	'X' 0 id;
	'X' 4 class;
	'X' 8 style;
	'X' 12 title;
	'A' Attr 16 events;
};

defn
Genattr(addr) {
	complex Genattr addr;
	print("	id	", addr.id\X, "\n");
	print("	class	", addr.class\X, "\n");
	print("	style	", addr.style\X, "\n");
	print("	title	", addr.title\X, "\n");
	print("	events	", addr.events\X, "\n");
};

Ftext = 0;
Fpassword = 1;
Fcheckbox = 2;
Fradio = 3;
Fsubmit = 4;
Fhidden = 5;
Fimage = 6;
Freset = 7;
Ffile = 8;
Fbutton = 9;
Fselect = 10;
Ftextarea = 11;
sizeofFormfield = 60;
aggr Formfield
{
	'A' Formfield 0 next;
	'D' 4 ftype;
	'D' 8 fieldid;
	'X' 12 form;
	'X' 16 name;
	'X' 20 value;
	'D' 24 size;
	'D' 28 maxlength;
	'D' 32 rows;
	'D' 36 cols;
	'b' 40 flags;
	'X' 44 options;
	'A' Item 48 image;
	'D' 52 ctlid;
	'A' Attr 56 events;
};

defn
Formfield(addr) {
	complex Formfield addr;
	print("	next	", addr.next\X, "\n");
	print("	ftype	", addr.ftype, "\n");
	print("	fieldid	", addr.fieldid, "\n");
	print("	form	", addr.form\X, "\n");
	print("	name	", addr.name\X, "\n");
	print("	value	", addr.value\X, "\n");
	print("	size	", addr.size, "\n");
	print("	maxlength	", addr.maxlength, "\n");
	print("	rows	", addr.rows, "\n");
	print("	cols	", addr.cols, "\n");
	print("	flags	", addr.flags, "\n");
	print("	options	", addr.options\X, "\n");
	print("	image	", addr.image\X, "\n");
	print("	ctlid	", addr.ctlid, "\n");
	print("	events	", addr.events\X, "\n");
};

FFchecked = 128;
FFmultiple = 64;
complex Display display;
sizeofOption = 16;
aggr Option
{
	'A' Option 0 next;
	'D' 4 selected;
	'X' 8 value;
	'X' 12 display;
};

defn
Option(addr) {
	complex Option addr;
	print("	next	", addr.next\X, "\n");
	print("	selected	", addr.selected, "\n");
	print("	value	", addr.value\X, "\n");
	print("	display	", addr.display\X, "\n");
};

sizeofForm = 32;
aggr Form
{
	'A' Form 0 next;
	'D' 4 formid;
	'X' 8 name;
	'A' ParsedUrl 12 action;
	'D' 16 target;
	'D' 20 method;
	'D' 24 nfields;
	'A' Formfield 28 fields;
};

defn
Form(addr) {
	complex Form addr;
	print("	next	", addr.next\X, "\n");
	print("	formid	", addr.formid, "\n");
	print("	name	", addr.name\X, "\n");
	print("	action	", addr.action\X, "\n");
	print("	target	", addr.target, "\n");
	print("	method	", addr.method, "\n");
	print("	nfields	", addr.nfields, "\n");
	print("	fields	", addr.fields\X, "\n");
};

TFparsing = 128;
TFnowrap = 64;
TFisth = 32;
sizeofTable = 100;
aggr Table
{
	'A' Table 0 next;
	'D' 4 tableid;
	'X' 8 rows;
	'D' 12 nrow;
	'X' 16 cols;
	'D' 20 ncol;
	'X' 24 cells;
	'D' 28 ncell;
	'X' 32 grid;
	Align 36 align;
	Dimen 40 width;
	'D' 44 border;
	'D' 48 cellspacing;
	'D' 52 cellpadding;
	Background 56 background;
	'A' Item 64 caption;
	'b' 68 caption_place;
	'X' 72 caption_lay;
	'D' 76 totw;
	'D' 80 toth;
	'D' 84 caph;
	'D' 88 availw;
	'A' Token 92 tabletok;
	'b' 96 flags;
};

defn
Table(addr) {
	complex Table addr;
	print("	next	", addr.next\X, "\n");
	print("	tableid	", addr.tableid, "\n");
	print("	rows	", addr.rows\X, "\n");
	print("	nrow	", addr.nrow, "\n");
	print("	cols	", addr.cols\X, "\n");
	print("	ncol	", addr.ncol, "\n");
	print("	cells	", addr.cells\X, "\n");
	print("	ncell	", addr.ncell, "\n");
	print("	grid	", addr.grid\X, "\n");
	print("Align align {\n");
	Align(addr.align);
	print("}\n");
	print("Dimen width {\n");
	Dimen(addr.width);
	print("}\n");
	print("	border	", addr.border, "\n");
	print("	cellspacing	", addr.cellspacing, "\n");
	print("	cellpadding	", addr.cellpadding, "\n");
	print("Background background {\n");
	Background(addr.background);
	print("}\n");
	print("	caption	", addr.caption\X, "\n");
	print("	caption_place	", addr.caption_place, "\n");
	print("	caption_lay	", addr.caption_lay\X, "\n");
	print("	totw	", addr.totw, "\n");
	print("	toth	", addr.toth, "\n");
	print("	caph	", addr.caph, "\n");
	print("	availw	", addr.availw, "\n");
	print("	tabletok	", addr.tabletok\X, "\n");
	print("	flags	", addr.flags, "\n");
};

sizeofTablecol = 16;
aggr Tablecol
{
	'D' 0 width;
	Align 4 align;
	Point 8 pos;
};

defn
Tablecol(addr) {
	complex Tablecol addr;
	print("	width	", addr.width, "\n");
	print("Align align {\n");
	Align(addr.align);
	print("}\n");
	print("Point pos {\n");
	Point(addr.pos);
	print("}\n");
};

sizeofTablerow = 40;
aggr Tablerow
{
	'A' Tablerow 0 next;
	'X' 4 cells;
	'D' 8 height;
	'D' 12 ascent;
	Align 16 align;
	Background 20 background;
	Point 28 pos;
	'b' 36 flags;
};

defn
Tablerow(addr) {
	complex Tablerow addr;
	print("	next	", addr.next\X, "\n");
	print("	cells	", addr.cells\X, "\n");
	print("	height	", addr.height, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("Align align {\n");
	Align(addr.align);
	print("}\n");
	print("Background background {\n");
	Background(addr.background);
	print("}\n");
	print("Point pos {\n");
	Point(addr.pos);
	print("}\n");
	print("	flags	", addr.flags, "\n");
};

sizeofTablecell = 80;
aggr Tablecell
{
	'A' Tablecell 0 next;
	'A' Tablecell 4 nextinrow;
	'D' 8 cellid;
	'A' Item 12 content;
	'X' 16 lay;
	'D' 20 rowspan;
	'D' 24 colspan;
	Align 28 align;
	'b' 32 flags;
	Dimen 36 wspec;
	'D' 40 hspec;
	Background 44 background;
	'D' 52 minw;
	'D' 56 maxw;
	'D' 60 ascent;
	'D' 64 row;
	'D' 68 col;
	Point 72 pos;
};

defn
Tablecell(addr) {
	complex Tablecell addr;
	print("	next	", addr.next\X, "\n");
	print("	nextinrow	", addr.nextinrow\X, "\n");
	print("	cellid	", addr.cellid, "\n");
	print("	content	", addr.content\X, "\n");
	print("	lay	", addr.lay\X, "\n");
	print("	rowspan	", addr.rowspan, "\n");
	print("	colspan	", addr.colspan, "\n");
	print("Align align {\n");
	Align(addr.align);
	print("}\n");
	print("	flags	", addr.flags, "\n");
	print("Dimen wspec {\n");
	Dimen(addr.wspec);
	print("}\n");
	print("	hspec	", addr.hspec, "\n");
	print("Background background {\n");
	Background(addr.background);
	print("}\n");
	print("	minw	", addr.minw, "\n");
	print("	maxw	", addr.maxw, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("	row	", addr.row, "\n");
	print("	col	", addr.col, "\n");
	print("Point pos {\n");
	Point(addr.pos);
	print("}\n");
};

sizeofAnchor = 20;
aggr Anchor
{
	'A' Anchor 0 next;
	'D' 4 index;
	'X' 8 name;
	'A' ParsedUrl 12 href;
	'D' 16 target;
};

defn
Anchor(addr) {
	complex Anchor addr;
	print("	next	", addr.next\X, "\n");
	print("	index	", addr.index, "\n");
	print("	name	", addr.name\X, "\n");
	print("	href	", addr.href\X, "\n");
	print("	target	", addr.target, "\n");
};

sizeofDestAnchor = 16;
aggr DestAnchor
{
	'A' DestAnchor 0 next;
	'D' 4 index;
	'X' 8 name;
	'A' Item 12 item;
};

defn
DestAnchor(addr) {
	complex DestAnchor addr;
	print("	next	", addr.next\X, "\n");
	print("	index	", addr.index, "\n");
	print("	name	", addr.name\X, "\n");
	print("	item	", addr.item\X, "\n");
};

sizeofMap = 12;
aggr Map
{
	'A' Map 0 next;
	'X' 4 name;
	'X' 8 areas;
};

defn
Map(addr) {
	complex Map addr;
	print("	next	", addr.next\X, "\n");
	print("	name	", addr.name\X, "\n");
	print("	areas	", addr.areas\X, "\n");
};

sizeofArea = 24;
aggr Area
{
	'A' Area 0 next;
	'D' 4 shape;
	'A' ParsedUrl 8 href;
	'D' 12 target;
	'A' Dimen 16 coords;
	'D' 20 ncoords;
};

defn
Area(addr) {
	complex Area addr;
	print("	next	", addr.next\X, "\n");
	print("	shape	", addr.shape, "\n");
	print("	href	", addr.href\X, "\n");
	print("	target	", addr.target, "\n");
	print("	coords	", addr.coords\X, "\n");
	print("	ncoords	", addr.ncoords, "\n");
};

SHrect = 0;
SHcircle = 1;
SHpoly = 2;
FntR = 0;
FntI = 1;
FntB = 2;
FntT = 3;
NumStyle = 4;
Tiny = 0;
Small = 1;
Normal = 2;
Large = 3;
Verylarge = 4;
NumSize = 5;
NumFnt = 20;
DefFnt = 2;
ULnone = 0;
ULunder = 1;
ULmid = 2;
LTdisc = 0;
LTsquare = 1;
LTcircle = 2;
LT1 = 3;
LTa = 4;
LTA = 5;
LTi = 6;
LTI = 7;
FRnoresize = 1;
FRnoscroll = 2;
FRhscroll = 4;
FRvscroll = 8;
FRhscrollauto = 16;
FRvscrollauto = 32;
sizeofKidinfo = 56;
aggr Kidinfo
{
	'A' Kidinfo 0 next;
	'D' 4 isframeset;
	'A' ParsedUrl 8 src;
	'X' 12 name;
	'D' 16 marginw;
	'D' 20 marginh;
	'D' 24 framebd;
	'D' 28 flags;
	'A' Dimen 32 rows;
	'D' 36 nrows;
	'A' Dimen 40 cols;
	'D' 44 ncols;
	'A' Kidinfo 48 kidinfos;
	'A' Kidinfo 52 nextframeset;
};

defn
Kidinfo(addr) {
	complex Kidinfo addr;
	print("	next	", addr.next\X, "\n");
	print("	isframeset	", addr.isframeset, "\n");
	print("	src	", addr.src\X, "\n");
	print("	name	", addr.name\X, "\n");
	print("	marginw	", addr.marginw, "\n");
	print("	marginh	", addr.marginh, "\n");
	print("	framebd	", addr.framebd, "\n");
	print("	flags	", addr.flags, "\n");
	print("	rows	", addr.rows\X, "\n");
	print("	nrows	", addr.nrows, "\n");
	print("	cols	", addr.cols\X, "\n");
	print("	ncols	", addr.ncols, "\n");
	print("	kidinfos	", addr.kidinfos\X, "\n");
	print("	nextframeset	", addr.nextframeset\X, "\n");
};

sizeofDocinfo = 92;
aggr Docinfo
{
	'A' ParsedUrl 0 src;
	'A' ParsedUrl 4 base;
	'X' 8 doctitle;
	Background 12 background;
	'A' Iimage 20 backgrounditem;
	'D' 24 text;
	'D' 28 link;
	'D' 32 vlink;
	'D' 36 alink;
	'D' 40 target;
	'D' 44 chset;
	'D' 48 scripttype;
	'D' 52 hasscripts;
	'X' 56 refresh;
	'A' Kidinfo 60 kidinfo;
	'D' 64 frameid;
	'A' Anchor 68 anchors;
	'A' DestAnchor 72 dests;
	'A' Form 76 forms;
	'A' Table 80 tables;
	'A' Map 84 maps;
	'A' Iimage 88 images;
};

defn
Docinfo(addr) {
	complex Docinfo addr;
	print("	src	", addr.src\X, "\n");
	print("	base	", addr.base\X, "\n");
	print("	doctitle	", addr.doctitle\X, "\n");
	print("Background background {\n");
	Background(addr.background);
	print("}\n");
	print("	backgrounditem	", addr.backgrounditem\X, "\n");
	print("	text	", addr.text, "\n");
	print("	link	", addr.link, "\n");
	print("	vlink	", addr.vlink, "\n");
	print("	alink	", addr.alink, "\n");
	print("	target	", addr.target, "\n");
	print("	chset	", addr.chset, "\n");
	print("	scripttype	", addr.scripttype, "\n");
	print("	hasscripts	", addr.hasscripts, "\n");
	print("	refresh	", addr.refresh\X, "\n");
	print("	kidinfo	", addr.kidinfo\X, "\n");
	print("	frameid	", addr.frameid, "\n");
	print("	anchors	", addr.anchors\X, "\n");
	print("	dests	", addr.dests\X, "\n");
	print("	forms	", addr.forms\X, "\n");
	print("	tables	", addr.tables\X, "\n");
	print("	maps	", addr.maps\X, "\n");
	print("	images	", addr.images\X, "\n");
};

Nestmax = 20;
sizeofStack = 84;
aggr Stack
{
	'D' 0 n;
	'a' 4 slots;
};

defn
Stack(addr) {
	complex Stack addr;
	print("	n	", addr.n, "\n");
	print("	slots	", addr.slots, "\n");
};

sizeofPstate = 824;
aggr Pstate
{
	'A' Pstate 0 next;
	'D' 4 skipping;
	'D' 8 skipwhite;
	'D' 12 curfont;
	'D' 16 curfg;
	Background 20 curbg;
	'D' 28 curvoff;
	'b' 32 curul;
	'b' 33 curjust;
	'D' 36 curanchor;
	'D' 40 curstate;
	'D' 44 literal;
	'D' 48 inpar;
	'D' 52 adjsize;
	'A' Item 56 items;
	'A' Item 60 lastit;
	'A' Item 64 prelastit;
	Stack 68 fntstylestk;
	Stack 152 fntsizestk;
	Stack 236 fgstk;
	Stack 320 ulstk;
	Stack 404 voffstk;
	Stack 488 listtypestk;
	Stack 572 listcntstk;
	Stack 656 juststk;
	Stack 740 hangstk;
};

defn
Pstate(addr) {
	complex Pstate addr;
	print("	next	", addr.next\X, "\n");
	print("	skipping	", addr.skipping, "\n");
	print("	skipwhite	", addr.skipwhite, "\n");
	print("	curfont	", addr.curfont, "\n");
	print("	curfg	", addr.curfg, "\n");
	print("Background curbg {\n");
	Background(addr.curbg);
	print("}\n");
	print("	curvoff	", addr.curvoff, "\n");
	print("	curul	", addr.curul, "\n");
	print("	curjust	", addr.curjust, "\n");
	print("	curanchor	", addr.curanchor, "\n");
	print("	curstate	", addr.curstate, "\n");
	print("	literal	", addr.literal, "\n");
	print("	inpar	", addr.inpar, "\n");
	print("	adjsize	", addr.adjsize, "\n");
	print("	items	", addr.items\X, "\n");
	print("	lastit	", addr.lastit\X, "\n");
	print("	prelastit	", addr.prelastit\X, "\n");
	print("Stack fntstylestk {\n");
	Stack(addr.fntstylestk);
	print("}\n");
	print("Stack fntsizestk {\n");
	Stack(addr.fntsizestk);
	print("}\n");
	print("Stack fgstk {\n");
	Stack(addr.fgstk);
	print("}\n");
	print("Stack ulstk {\n");
	Stack(addr.ulstk);
	print("}\n");
	print("Stack voffstk {\n");
	Stack(addr.voffstk);
	print("}\n");
	print("Stack listtypestk {\n");
	Stack(addr.listtypestk);
	print("}\n");
	print("Stack listcntstk {\n");
	Stack(addr.listcntstk);
	print("}\n");
	print("Stack juststk {\n");
	Stack(addr.juststk);
	print("}\n");
	print("Stack hangstk {\n");
	Stack(addr.hangstk);
	print("}\n");
};

sizeofItemSource = 48;
aggr ItemSource
{
	'A' TokenSource 0 ts;
	'D' 4 mtype;
	'A' Docinfo 8 doc;
	'A' Pstate 12 psstk;
	'D' 16 nforms;
	'D' 20 ntables;
	'D' 24 nanchors;
	'D' 28 nframes;
	'A' Form 32 curform;
	'A' Map 36 curmap;
	'A' Table 40 tabstk;
	'A' Kidinfo 44 kidstk;
};

defn
ItemSource(addr) {
	complex ItemSource addr;
	print("	ts	", addr.ts\X, "\n");
	print("	mtype	", addr.mtype, "\n");
	print("	doc	", addr.doc\X, "\n");
	print("	psstk	", addr.psstk\X, "\n");
	print("	nforms	", addr.nforms, "\n");
	print("	ntables	", addr.ntables, "\n");
	print("	nanchors	", addr.nanchors, "\n");
	print("	nframes	", addr.nframes, "\n");
	print("	curform	", addr.curform\X, "\n");
	print("	curmap	", addr.curmap\X, "\n");
	print("	tabstk	", addr.tabstk\X, "\n");
	print("	kidstk	", addr.kidstk\X, "\n");
};

ReliefSunk = 0;
ReliefRaised = 1;
ReliefBd = 2;
sizeofFrame = 132;
aggr Frame
{
	'D' 0 id;
	'A' Docinfo 4 doc;
	'A' ParsedUrl 8 src;
	'X' 12 name;
	'D' 16 marginw;
	'D' 20 marginh;
	'D' 24 framebd;
	'D' 28 flags;
	'X' 32 layout;
	'X' 36 controls;
	'D' 40 controlslen;
	'D' 44 controlid;
	'A' Image 48 cim;
	Rectangle 52 r;
	Rectangle 68 cr;
	Rectangle 84 totalr;
	Rectangle 100 viewr;
	'X' 116 vscr;
	'X' 120 hscr;
	'A' Frame 124 parent;
	'X' 128 kids;
};

defn
Frame(addr) {
	complex Frame addr;
	print("	id	", addr.id, "\n");
	print("	doc	", addr.doc\X, "\n");
	print("	src	", addr.src\X, "\n");
	print("	name	", addr.name\X, "\n");
	print("	marginw	", addr.marginw, "\n");
	print("	marginh	", addr.marginh, "\n");
	print("	framebd	", addr.framebd, "\n");
	print("	flags	", addr.flags, "\n");
	print("	layout	", addr.layout\X, "\n");
	print("	controls	", addr.controls\X, "\n");
	print("	controlslen	", addr.controlslen, "\n");
	print("	controlid	", addr.controlid, "\n");
	print("	cim	", addr.cim\X, "\n");
	print("Rectangle r {\n");
	Rectangle(addr.r);
	print("}\n");
	print("Rectangle cr {\n");
	Rectangle(addr.cr);
	print("}\n");
	print("Rectangle totalr {\n");
	Rectangle(addr.totalr);
	print("}\n");
	print("Rectangle viewr {\n");
	Rectangle(addr.viewr);
	print("}\n");
	print("	vscr	", addr.vscr\X, "\n");
	print("	hscr	", addr.hscr\X, "\n");
	print("	parent	", addr.parent\X, "\n");
	print("	kids	", addr.kids\X, "\n");
};

sizeofFramelist = 8;
aggr Framelist
{
	'A' Framelist 0 next;
	'A' Frame 4 val;
};

defn
Framelist(addr) {
	complex Framelist addr;
	print("	next	", addr.next\X, "\n");
	print("	val	", addr.val\X, "\n");
};

Ldrawn = 1;
Lmoved = 2;
Lchanged = 4;
sizeofLine = 36;
aggr Line
{
	'A' Line 0 next;
	'A' Line 4 prev;
	'A' Item 8 items;
	Point 12 pos;
	'D' 20 width;
	'D' 24 height;
	'D' 28 ascent;
	'b' 32 flags;
};

defn
Line(addr) {
	complex Line addr;
	print("	next	", addr.next\X, "\n");
	print("	prev	", addr.prev\X, "\n");
	print("	items	", addr.items\X, "\n");
	print("Point pos {\n");
	Point(addr.pos);
	print("}\n");
	print("	width	", addr.width, "\n");
	print("	height	", addr.height, "\n");
	print("	ascent	", addr.ascent, "\n");
	print("	flags	", addr.flags, "\n");
};

sizeofLoc = 20;
aggr Loc
{
	'X' 0 le;
	'D' 4 lelen;
	'D' 8 n;
	Point 12 pos;
};

defn
Loc(addr) {
	complex Loc addr;
	print("	le	", addr.le\X, "\n");
	print("	lelen	", addr.lelen, "\n");
	print("	n	", addr.n, "\n");
	print("Point pos {\n");
	Point(addr.pos);
	print("}\n");
};

sizeofLocelem = 32;
aggr Locelem
{
	'D' 0 kind;
	Point 4 pos;
	'A' Frame 12 frame;
	'A' Line 16 line;
	'A' Item 20 item;
	'A' Tablecell 24 tcell;
	'X' 28 control;
};

defn
Locelem(addr) {
	complex Locelem addr;
	print("	kind	", addr.kind, "\n");
	print("Point pos {\n");
	Point(addr.pos);
	print("}\n");
	print("	frame	", addr.frame\X, "\n");
	print("	line	", addr.line\X, "\n");
	print("	item	", addr.item\X, "\n");
	print("	tcell	", addr.tcell\X, "\n");
	print("	control	", addr.control\X, "\n");
};

LEframe = 0;
LEline = 1;
LEitem = 2;
LEtablecell = 3;
LEcontrol = 4;
sizeofControl = 32;
aggr Control
{
	'A' Frame 0 f;
	'A' Formfield 4 ff;
	Rectangle 8 r;
	'D' 24 flags;
	'D' 28 tag;
};

defn
Control(addr) {
	complex Control addr;
	print("	f	", addr.f\X, "\n");
	print("	ff	", addr.ff\X, "\n");
	print("Rectangle r {\n");
	Rectangle(addr.r);
	print("}\n");
	print("	flags	", addr.flags, "\n");
	print("	tag	", addr.tag, "\n");
};

sizeofCbutton = 56;
aggr Cbutton
{
	'A' Frame 0 f;
	'A' Formfield 4 ff;
	Rectangle 8 r;
	'D' 24 flags;
	'D' 28 tag;
	'A' Image 32 pic;
	'A' Image 36 picmask;
	'A' Image 40 dpic;
	'A' Image 44 dpicmask;
	'X' 48 label;
	'D' 52 dorelief;
};

defn
Cbutton(addr) {
	complex Cbutton addr;
	print("	f	", addr.f\X, "\n");
	print("	ff	", addr.ff\X, "\n");
	print("Rectangle r {\n");
	Rectangle(addr.r);
	print("}\n");
	print("	flags	", addr.flags, "\n");
	print("	tag	", addr.tag, "\n");
	print("	pic	", addr.pic\X, "\n");
	print("	picmask	", addr.picmask\X, "\n");
	print("	dpic	", addr.dpic\X, "\n");
	print("	dpicmask	", addr.dpicmask\X, "\n");
	print("	label	", addr.label\X, "\n");
	print("	dorelief	", addr.dorelief, "\n");
};

sizeofCentry = 48;
aggr Centry
{
	'A' Frame 0 f;
	'A' Formfield 4 ff;
	Rectangle 8 r;
	'D' 24 flags;
	'D' 28 tag;
	'X' 32 s;
	'D' 36 curs;
	'D' 40 left;
	'D' 44 linewrap;
};

defn
Centry(addr) {
	complex Centry addr;
	print("	f	", addr.f\X, "\n");
	print("	ff	", addr.ff\X, "\n");
	print("Rectangle r {\n");
	Rectangle(addr.r);
	print("}\n");
	print("	flags	", addr.flags, "\n");
	print("	tag	", addr.tag, "\n");
	print("	s	", addr.s\X, "\n");
	print("	curs	", addr.curs, "\n");
	print("	left	", addr.left, "\n");
	print("	linewrap	", addr.linewrap, "\n");
};

sizeofCcheckbox = 36;
aggr Ccheckbox
{
	'A' Frame 0 f;
	'A' Formfield 4 ff;
	Rectangle 8 r;
	'D' 24 flags;
	'D' 28 tag;
	'D' 32 isradio;
};

defn
Ccheckbox(addr) {
	complex Ccheckbox addr;
	print("	f	", addr.f\X, "\n");
	print("	ff	", addr.ff\X, "\n");
	print("Rectangle r {\n");
	Rectangle(addr.r);
	print("}\n");
	print("	flags	", addr.flags, "\n");
	print("	tag	", addr.tag, "\n");
	print("	isradio	", addr.isradio, "\n");
};

sizeofCselect = 52;
aggr Cselect
{
	'A' Frame 0 f;
	'A' Formfield 4 ff;
	Rectangle 8 r;
	'D' 24 flags;
	'D' 28 tag;
	'X' 32 scr;
	'D' 36 nvis;
	'D' 40 first;
	'A' Option 44 options;
	'D' 48 noptions;
};

defn
Cselect(addr) {
	complex Cselect addr;
	print("	f	", addr.f\X, "\n");
	print("	ff	", addr.ff\X, "\n");
	print("Rectangle r {\n");
	Rectangle(addr.r);
	print("}\n");
	print("	flags	", addr.flags, "\n");
	print("	tag	", addr.tag, "\n");
	print("	scr	", addr.scr\X, "\n");
	print("	nvis	", addr.nvis, "\n");
	print("	first	", addr.first, "\n");
	print("	options	", addr.options\X, "\n");
	print("	noptions	", addr.noptions, "\n");
};

sizeofCscrollbar = 52;
aggr Cscrollbar
{
	'A' Frame 0 f;
	'A' Formfield 4 ff;
	Rectangle 8 r;
	'D' 24 flags;
	'D' 28 tag;
	'D' 32 top;
	'D' 36 bot;
	'D' 40 dragv;
	'D' 44 mindelta;
	'A' Control 48 ctl;
};

defn
Cscrollbar(addr) {
	complex Cscrollbar addr;
	print("	f	", addr.f\X, "\n");
	print("	ff	", addr.ff\X, "\n");
	print("Rectangle r {\n");
	Rectangle(addr.r);
	print("}\n");
	print("	flags	", addr.flags, "\n");
	print("	tag	", addr.tag, "\n");
	print("	top	", addr.top, "\n");
	print("	bot	", addr.bot, "\n");
	print("	dragv	", addr.dragv, "\n");
	print("	mindelta	", addr.mindelta, "\n");
	print("	ctl	", addr.ctl\X, "\n");
};

sizeofCanimimage = 52;
aggr Canimimage
{
	'A' Frame 0 f;
	'A' Formfield 4 ff;
	Rectangle 8 r;
	'D' 24 flags;
	'D' 28 tag;
	'A' CImage 32 cim;
	'D' 36 cur;
	'D' 40 redraw;
	Background 44 bg;
};

defn
Canimimage(addr) {
	complex Canimimage addr;
	print("	f	", addr.f\X, "\n");
	print("	ff	", addr.ff\X, "\n");
	print("Rectangle r {\n");
	Rectangle(addr.r);
	print("}\n");
	print("	flags	", addr.flags, "\n");
	print("	tag	", addr.tag, "\n");
	print("	cim	", addr.cim\X, "\n");
	print("	cur	", addr.cur, "\n");
	print("	redraw	", addr.redraw, "\n");
	print("Background bg {\n");
	Background(addr.bg);
	print("}\n");
};

sizeofCprogbox = 52;
aggr Cprogbox
{
	'A' Frame 0 f;
	'A' Formfield 4 ff;
	Rectangle 8 r;
	'D' 24 flags;
	'D' 28 tag;
	'D' 32 state;
	'D' 36 pcnt;
	'D' 40 bsid;
	'X' 44 src;
	'X' 48 err;
};

defn
Cprogbox(addr) {
	complex Cprogbox addr;
	print("	f	", addr.f\X, "\n");
	print("	ff	", addr.ff\X, "\n");
	print("Rectangle r {\n");
	Rectangle(addr.r);
	print("}\n");
	print("	flags	", addr.flags, "\n");
	print("	tag	", addr.tag, "\n");
	print("	state	", addr.state, "\n");
	print("	pcnt	", addr.pcnt, "\n");
	print("	bsid	", addr.bsid, "\n");
	print("	src	", addr.src\X, "\n");
	print("	err	", addr.err\X, "\n");
};

sizeofClabel = 36;
aggr Clabel
{
	'A' Frame 0 f;
	'A' Formfield 4 ff;
	Rectangle 8 r;
	'D' 24 flags;
	'D' 28 tag;
	'X' 32 s;
};

defn
Clabel(addr) {
	complex Clabel addr;
	print("	f	", addr.f\X, "\n");
	print("	ff	", addr.ff\X, "\n");
	print("Rectangle r {\n");
	Rectangle(addr.r);
	print("}\n");
	print("	flags	", addr.flags, "\n");
	print("	tag	", addr.tag, "\n");
	print("	s	", addr.s\X, "\n");
};

Cbuttontag = 0;
Centrytag = 1;
Ccheckboxtag = 2;
Cselecttag = 3;
Cscrollbartag = 4;
Canimimagetag = 5;
Cprogboxtag = 6;
Clabeltag = 7;
CFactive = 1;
CFenabled = 2;
CFhasfocus = 4;
CFscrvert = 8;
CFscracta1 = 16;
CFscracta2 = 32;
CFscracttr1 = 64;
CFscracttr2 = 128;
CFscrallact = 241;
CAnone = 0;
CAscrollpage = 1;
CAscrollline = 2;
CAscrolldelta = 3;
CAscrollabs = 4;
CAbuttonpush = 5;
CAflyover = 6;
CAreturnkey = 7;
CAtabkey = 8;
CAkeyfocus = 9;
sizeofLay = 40;
aggr Lay
{
	'A' Line 0 start;
	'A' Line 4 end;
	'D' 8 targetwidth;
	'D' 12 width;
	'D' 16 height;
	'D' 20 margin;
	'A' Ifloat 24 floats;
	Background 28 background;
	'b' 36 just;
	'b' 37 flags;
};

defn
Lay(addr) {
	complex Lay addr;
	print("	start	", addr.start\X, "\n");
	print("	end	", addr.end\X, "\n");
	print("	targetwidth	", addr.targetwidth, "\n");
	print("	width	", addr.width, "\n");
	print("	height	", addr.height, "\n");
	print("	margin	", addr.margin, "\n");
	print("	floats	", addr.floats\X, "\n");
	print("Background background {\n");
	Background(addr.background);
	print("}\n");
	print("	just	", addr.just, "\n");
	print("	flags	", addr.flags, "\n");
};

Mimerror = 0;
Mimnone = 1;
Mimpartial = 2;
Mimdone = 3;
sizeofImageSource = 52;
aggr ImageSource
{
	'D' 0 width;
	'D' 4 height;
	'D' 8 origw;
	'D' 12 origh;
	'D' 16 mtype;
	'D' 20 i;
	'D' 24 curframe;
	'A' ByteSource 28 bs;
	'X' 32 gstate;
	'X' 36 jstate;
	'D' 40 err;
	'a' 44 getmimsave;
};

defn
ImageSource(addr) {
	complex ImageSource addr;
	print("	width	", addr.width, "\n");
	print("	height	", addr.height, "\n");
	print("	origw	", addr.origw, "\n");
	print("	origh	", addr.origh, "\n");
	print("	mtype	", addr.mtype, "\n");
	print("	i	", addr.i, "\n");
	print("	curframe	", addr.curframe, "\n");
	print("	bs	", addr.bs\X, "\n");
	print("	gstate	", addr.gstate\X, "\n");
	print("	jstate	", addr.jstate\X, "\n");
	print("	err	", addr.err, "\n");
	print("	getmimsave	", addr.getmimsave, "\n");
};

sizeofJpegstate = 100;
aggr Jpegstate
{
	'D' 0 sr;
	'D' 4 cnt;
	'D' 8 Nf;
	'X' 12 comp;
	'b' 16 mode;
	'D' 20 X;
	'D' 24 Y;
	'X' 28 qt;
	'X' 32 dcht;
	'X' 36 acht;
	'D' 40 Ns;
	'X' 44 scomp;
	'D' 48 Ss;
	'D' 52 Se;
	'D' 56 Ah;
	'D' 60 Al;
	'D' 64 ri;
	'D' 68 nseg;
	'X' 72 nblock;
	'X' 76 dccoeff;
	'X' 80 accoeff;
	'D' 84 nacross;
	'D' 88 ndown;
	'D' 92 Hmax;
	'D' 96 Vmax;
};

defn
Jpegstate(addr) {
	complex Jpegstate addr;
	print("	sr	", addr.sr, "\n");
	print("	cnt	", addr.cnt, "\n");
	print("	Nf	", addr.Nf, "\n");
	print("	comp	", addr.comp\X, "\n");
	print("	mode	", addr.mode, "\n");
	print("	X	", addr.X, "\n");
	print("	Y	", addr.Y, "\n");
	print("	qt	", addr.qt\X, "\n");
	print("	dcht	", addr.dcht\X, "\n");
	print("	acht	", addr.acht\X, "\n");
	print("	Ns	", addr.Ns, "\n");
	print("	scomp	", addr.scomp\X, "\n");
	print("	Ss	", addr.Ss, "\n");
	print("	Se	", addr.Se, "\n");
	print("	Ah	", addr.Ah, "\n");
	print("	Al	", addr.Al, "\n");
	print("	ri	", addr.ri, "\n");
	print("	nseg	", addr.nseg, "\n");
	print("	nblock	", addr.nblock\X, "\n");
	print("	dccoeff	", addr.dccoeff\X, "\n");
	print("	accoeff	", addr.accoeff\X, "\n");
	print("	nacross	", addr.nacross, "\n");
	print("	ndown	", addr.ndown, "\n");
	print("	Hmax	", addr.Hmax, "\n");
	print("	Vmax	", addr.Vmax, "\n");
};

sizeofHuffman = 2268;
aggr Huffman
{
	'X' 0 bits;
	'X' 4 size;
	'X' 8 code;
	'X' 12 val;
	'a' 16 mincode;
	'a' 84 maxcode;
	'a' 152 valptr;
	'a' 220 value;
	'a' 1244 shift;
};

defn
Huffman(addr) {
	complex Huffman addr;
	print("	bits	", addr.bits\X, "\n");
	print("	size	", addr.size\X, "\n");
	print("	code	", addr.code\X, "\n");
	print("	val	", addr.val\X, "\n");
	print("	mincode	", addr.mincode, "\n");
	print("	maxcode	", addr.maxcode, "\n");
	print("	valptr	", addr.valptr, "\n");
	print("	value	", addr.value, "\n");
	print("	shift	", addr.shift, "\n");
};

Tq = 71;
sizeofFramecomp = 16;
aggr Framecomp
{
	'D' 0 C;
	'D' 4 H;
	'D' 8 V;
	'D' 12 Tq;
};

defn
Framecomp(addr) {
	complex Framecomp addr;
	print("	C	", addr.C, "\n");
	print("	H	", addr.H, "\n");
	print("	V	", addr.V, "\n");
	print("	Tq	", addr.Tq, "\n");
};

sizeofScancomp = 12;
aggr Scancomp
{
	'D' 0 C;
	'D' 4 tdc;
	'D' 8 tac;
};

defn
Scancomp(addr) {
	complex Scancomp addr;
	print("	C	", addr.C, "\n");
	print("	tdc	", addr.tdc, "\n");
	print("	tac	", addr.tac, "\n");
};

sizeofGifstate = 44;
aggr Gifstate
{
	'D' 0 fields;
	'D' 4 bgrnd;
	'D' 8 aspect;
	'D' 12 flags;
	'D' 16 delay;
	'b' 20 trindex;
	'X' 24 tbl;
	'X' 28 globalcmap;
	'D' 32 globalcmaplen;
	'X' 36 cmap;
	'D' 40 cmaplen;
};

defn
Gifstate(addr) {
	complex Gifstate addr;
	print("	fields	", addr.fields, "\n");
	print("	bgrnd	", addr.bgrnd, "\n");
	print("	aspect	", addr.aspect, "\n");
	print("	flags	", addr.flags, "\n");
	print("	delay	", addr.delay, "\n");
	print("	trindex	", addr.trindex, "\n");
	print("	tbl	", addr.tbl\X, "\n");
	print("	globalcmap	", addr.globalcmap\X, "\n");
	print("	globalcmaplen	", addr.globalcmaplen, "\n");
	print("	cmap	", addr.cmap\X, "\n");
	print("	cmaplen	", addr.cmaplen, "\n");
};

sizeofGifEntry = 8;
aggr GifEntry
{
	'D' 0 prefix;
	'D' 4 exten;
};

defn
GifEntry(addr) {
	complex GifEntry addr;
	print("	prefix	", addr.prefix, "\n");
	print("	exten	", addr.exten, "\n");
};

EVkeytag = 0;
EVmousetag = 1;
EVmovetag = 2;
EVresizetag = 3;
EVexposetag = 4;
EVhidetag = 5;
EVquittag = 6;
EVstoptag = 7;
EValerttag = 8;
EVformtag = 9;
EVgotag = 10;
EVanimtag = 11;
EVprogresstag = 12;
EVdelaytag = 13;
sizeof_2_ = 12;
aggr _2_
{
	Point 0 p;
	'D' 8 mtype;
};

defn
_2_(addr) {
	complex _2_ addr;
	print("Point p {\n");
	Point(addr.p);
	print("}\n");
	print("	mtype	", addr.mtype, "\n");
};

sizeof_3_ = 8;
aggr _3_
{
	'X' 0 msg;
	'A' Channel 4 sync;
};

defn
_3_(addr) {
	complex _3_ addr;
	print("	msg	", addr.msg\X, "\n");
	print("	sync	", addr.sync\X, "\n");
};

sizeof_4_ = 12;
aggr _4_
{
	'D' 0 frameid;
	'D' 4 formid;
	'D' 8 ftype;
};

defn
_4_(addr) {
	complex _4_ addr;
	print("	frameid	", addr.frameid, "\n");
	print("	formid	", addr.formid, "\n");
	print("	ftype	", addr.ftype, "\n");
};

sizeof_5_ = 12;
aggr _5_
{
	'A' ParsedUrl 0 url;
	'D' 4 target;
	'D' 8 gtype;
};

defn
_5_(addr) {
	complex _5_ addr;
	print("	url	", addr.url\X, "\n");
	print("	target	", addr.target, "\n");
	print("	gtype	", addr.gtype, "\n");
};

sizeof_6_ = 8;
aggr _6_
{
	'D' 0 frameid;
	'A' Canimimage 4 ai;
};

defn
_6_(addr) {
	complex _6_ addr;
	print("	frameid	", addr.frameid, "\n");
	print("	ai	", addr.ai\X, "\n");
};

sizeof_7_ = 16;
aggr _7_
{
	'D' 0 bsid;
	'D' 4 state;
	'D' 8 pcnt;
	'X' 12 s;
};

defn
_7_(addr) {
	complex _7_ addr;
	print("	bsid	", addr.bsid, "\n");
	print("	state	", addr.state, "\n");
	print("	pcnt	", addr.pcnt, "\n");
	print("	s	", addr.s\X, "\n");
};

sizeof_8_ = 8;
aggr _8_
{
	'D' 0 millisecs;
	'X' 4 ev;
};

defn
_8_(addr) {
	complex _8_ addr;
	print("	millisecs	", addr.millisecs, "\n");
	print("	ev	", addr.ev\X, "\n");
};

sizeof_9_ = 16;
aggr _9_
{
	'D' 0 keychar;
	_2_ 0 mouse;
	Point 0 movept;
	Rectangle 0 resizer;
	_3_ 0 alert;
	_4_ 0 form;
	_5_ 0 go;
	_6_ 0 anim;
	_7_ 0 progress;
	_8_ 0 delay;
};

defn
_9_(addr) {
	complex _9_ addr;
	print("	keychar	", addr.keychar, "\n");
	print("_2_ mouse {\n");
	_2_(addr.mouse);
	print("}\n");
	print("Point movept {\n");
	Point(addr.movept);
	print("}\n");
	print("Rectangle resizer {\n");
	Rectangle(addr.resizer);
	print("}\n");
	print("_3_ alert {\n");
	_3_(addr.alert);
	print("}\n");
	print("_4_ form {\n");
	_4_(addr.form);
	print("}\n");
	print("_5_ go {\n");
	_5_(addr.go);
	print("}\n");
	print("_6_ anim {\n");
	_6_(addr.anim);
	print("}\n");
	print("_7_ progress {\n");
	_7_(addr.progress);
	print("}\n");
	print("_8_ delay {\n");
	_8_(addr.delay);
	print("}\n");
};

sizeofEV = 24;
aggr EV
{
	'D' 0 tag;
	'D' 4 genframeid;
	_9_ 8 u;
};

defn
EV(addr) {
	complex EV addr;
	print("	tag	", addr.tag, "\n");
	print("	genframeid	", addr.genframeid, "\n");
	print("_9_ u {\n");
	_9_(addr.u);
	print("}\n");
};

sizeofScriptEvent = 32;
aggr ScriptEvent
{
	'D' 0 kind;
	'D' 4 frameid;
	'D' 8 formid;
	'D' 12 fieldid;
	'D' 16 anchorid;
	'D' 20 x;
	'D' 24 y;
	'D' 28 which;
};

defn
ScriptEvent(addr) {
	complex ScriptEvent addr;
	print("	kind	", addr.kind, "\n");
	print("	frameid	", addr.frameid, "\n");
	print("	formid	", addr.formid, "\n");
	print("	fieldid	", addr.fieldid, "\n");
	print("	anchorid	", addr.anchorid, "\n");
	print("	x	", addr.x, "\n");
	print("	y	", addr.y, "\n");
	print("	which	", addr.which, "\n");
};

Kup = 61440;
Kdown = 61441;
Khome = 61442;
Kleft = 61443;
Kright = 61444;
Mmove = 0;
Mlbuttondown = 1;
Mlbuttonup = 2;
Mldrag = 3;
Mmbuttondown = 4;
Mmbuttonup = 5;
Mmdrag = 6;
Mrbuttondown = 7;
Mrbuttonup = 8;
Mrdrag = 9;
EFsubmit = 0;
EFreset = 1;
EGnormal = 0;
EGreload = 1;
EGforward = 2;
EGback = 3;
EGhome = 4;
EGbookmarks = 5;
complex Channel evchan;
complex Rectangle rmain;
complex Rectangle rctl;
complex Rectangle rprog;
IClogo = 0;
ICback = 1;
ICfwd = 2;
ICreload = 3;
ICstop = 4;
IChist = 5;
ICbmark = 6;
ICexit = 7;
NICONS = 8;
sizeofGoSpec = 28;
aggr GoSpec
{
	'D' 0 kind;
	'A' ParsedUrl 4 url;
	'D' 8 meth;
	'X' 12 body;
	'D' 16 target;
	'X' 20 auth;
	'X' 24 histnode;
};

defn
GoSpec(addr) {
	complex GoSpec addr;
	print("	kind	", addr.kind, "\n");
	print("	url	", addr.url\X, "\n");
	print("	meth	", addr.meth, "\n");
	print("	body	", addr.body\X, "\n");
	print("	target	", addr.target, "\n");
	print("	auth	", addr.auth\X, "\n");
	print("	histnode	", addr.histnode\X, "\n");
};

GoNormal = 0;
GoHistnode = 1;
GoBookmarks = 2;
GoHistory = 3;
GoStop = 4;
sizeofDocConfig = 16;
aggr DocConfig
{
	'X' 0 framename;
	'X' 4 title;
	'D' 8 initconfig;
	'A' GoSpec 12 gospec;
};

defn
DocConfig(addr) {
	complex DocConfig addr;
	print("	framename	", addr.framename\X, "\n");
	print("	title	", addr.title\X, "\n");
	print("	initconfig	", addr.initconfig, "\n");
	print("	gospec	", addr.gospec\X, "\n");
};

sizeofHistNode = 20;
aggr HistNode
{
	'A' DocConfig 0 topconfig;
	'A' DocConfig 4 kidconfigs;
	'D' 8 nkids;
	'X' 12 preds;
	'X' 16 succs;
};

defn
HistNode(addr) {
	complex HistNode addr;
	print("	topconfig	", addr.topconfig\X, "\n");
	print("	kidconfigs	", addr.kidconfigs\X, "\n");
	print("	nkids	", addr.nkids, "\n");
	print("	preds	", addr.preds\X, "\n");
	print("	succs	", addr.succs\X, "\n");
};

sizeofHistNode_list = 8;
aggr HistNode_list
{
	'A' HistNode_list 0 next;
	'A' HistNode 4 histnode;
};

defn
HistNode_list(addr) {
	complex HistNode_list addr;
	print("	next	", addr.next\X, "\n");
	print("	histnode	", addr.histnode\X, "\n");
};

sizeofHistory = 12;
aggr History
{
	'A' HistNode 0 h;
	'D' 4 hlen;
	'D' 8 n;
};

defn
History(addr) {
	complex History addr;
	print("	h	", addr.h\X, "\n");
	print("	hlen	", addr.hlen, "\n");
	print("	n	", addr.n, "\n");
};

sizeofAuthInfo = 12;
aggr AuthInfo
{
	'A' AuthInfo 0 next;
	'X' 4 realm;
	'X' 8 credentials;
};

defn
AuthInfo(addr) {
	complex AuthInfo addr;
	print("	next	", addr.next\X, "\n");
	print("	realm	", addr.realm\X, "\n");
	print("	credentials	", addr.credentials\X, "\n");
};

CLCbackbut = 0;
CLCfwdbut = 1;
CLCreloadbut = 2;
CLCstopbut = 3;
CLChistbut = 4;
CLCbmarkbut = 5;
CLCexitbut = 6;
CLCentry = 7;
NUMCLCS = 8;
sizeofCtlLayout = 72;
aggr CtlLayout
{
	'A' Image 0 logoicon;
	Point 4 logopos;
	Point 12 butspos;
	Point 20 entrypos;
	Point 28 statuspos;
	'a' 36 controls;
	'X' 68 status;
};

defn
CtlLayout(addr) {
	complex CtlLayout addr;
	print("	logoicon	", addr.logoicon\X, "\n");
	print("Point logopos {\n");
	Point(addr.logopos);
	print("}\n");
	print("Point butspos {\n");
	Point(addr.butspos);
	print("}\n");
	print("Point entrypos {\n");
	Point(addr.entrypos);
	print("}\n");
	print("Point statuspos {\n");
	Point(addr.statuspos);
	print("}\n");
	print("	controls	", addr.controls, "\n");
	print("	status	", addr.status\X, "\n");
};

sizeofProgLayout = 24;
aggr ProgLayout
{
	'A' Control 0 box;
	'D' 4 boxlen;
	'D' 8 nused;
	Point 12 first;
	'D' 20 dx;
};

defn
ProgLayout(addr) {
	complex ProgLayout addr;
	print("	box	", addr.box\X, "\n");
	print("	boxlen	", addr.boxlen, "\n");
	print("	nused	", addr.nused, "\n");
	print("Point first {\n");
	Point(addr.first);
	print("}\n");
	print("	dx	", addr.dx, "\n");
};

sizeofPopupLayout = 20;
aggr PopupLayout
{
	'D' 0 kind;
	'A' Control 4 controls;
	'D' 8 ncontrols;
	'A' Control 12 okbut;
	'A' Control 16 cancelbut;
};

defn
PopupLayout(addr) {
	complex PopupLayout addr;
	print("	kind	", addr.kind, "\n");
	print("	controls	", addr.controls\X, "\n");
	print("	ncontrols	", addr.ncontrols, "\n");
	print("	okbut	", addr.okbut\X, "\n");
	print("	cancelbut	", addr.cancelbut\X, "\n");
};

PopupNone = 0;
PopupAuth = 1;
PopupSaveAs = 2;
PopupAlert = 3;
sizeofPopupAns = 8;
aggr PopupAns
{
	'D' 0 code;
	'X' 4 s;
};

defn
PopupAns(addr) {
	complex PopupAns addr;
	print("	code	", addr.code, "\n");
	print("	s	", addr.s\X, "\n");
};

ALERTLINELEN = 80;
SP = 8;
SP2 = 4;
complex Channel gochan;
complex AuthInfo auths;
complex Channel popupans;
complex History history;
complex CtlLayout ctllay;
complex ProgLayout proglay;
complex PopupLayout popuplay;
complex Loc keyfocus;
complex Frame top;
complex Frame curframe;
complex Frame ctlframe;
complex Frame progframe;
complex Frame popupframe;
complex Image popupwin;
complex ResourceState threadmain:curres;
complex ResourceState threadmain:newres;
complex GoSpec threadmain:g;
complex EV threadmain:ev;
complex Image start:i;
complex Image start:m;
complex Rectangle redrawctl:r;
complex Point redrawctl:p;
complex Image redrawctl:li;
complex Control redrawctl:b;
complex Rectangle redrawprog:r;
complex Control redrawprog:newbox;
complex Point redrawprog:p;
complex Control redrawprog:c;
complex Control dopopup:cok;
complex Control dopopup:ccancel;
complex Point dopopup:p;
complex Control dopopup:oldc;
complex Control dopopup:newc;
complex Control dopopup:chead;
complex Control dopopup:crealm;
complex Control dopopup:cunlab;
complex Control dopopup:cpwlab;
complex Control dopopup:cuser;
complex Control dopopup:cpass;
complex Control dopopup:clab;
complex Control dopopup:cfile;
complex Control dopopup:c;
complex PopupAns dopopup:pans;
complex Rectangle redrawpopup:r;
complex PopupAns finishpopup:pans;
complex Control ctlentrytext:c;
complex Control frameloc:c;
complex Frame frameloc:f;
complex Loc frameloc:loc;
complex Frame resetkeyfocus:oldf;
complex EV handlemouse:e;
complex Point handlemouse:p;
complex GoSpec handlemouse:g;
complex Control handlemouse:oldc;
complex Control handlemouse:c;
complex Anchor handlemouse:a;
complex Item handlemouse:it;
complex Frame handlemouse:f;
complex Loc handlemouse:loc;
complex Cprogbox handlemouse:pc;
complex EV handlekey:e;
complex Loc handlekey:loc;
complex ParsedUrl handlekey:u;
complex Centry handlekey:ce;
complex Control handlekey:c;
complex GoSpec go:g;
complex HistNode go:hn;
complex Frame go:f;
complex ParsedUrl go:url;
complex EV go:prog;
complex GoSpec get:g;
complex Frame get:f;
complex HistNode get:hn;
complex ResourceState get:curres;
complex ResourceState get:newres;
complex ByteSource get:bsmain;
complex Header get:hdr;
complex ReqInfo get:ri;
complex AuthInfo get:auth;
complex ByteSource get:bs;
complex ParsedUrl get:newurl;
complex GoSpec get:gs;
complex Framelist get:kl;
complex Frame get:k;
complex Frame go_local:f;
complex Loc go_local:dloc;
complex Point go_local:p;
complex DestAnchor go_local:d;
complex Frame checkrefresh:f;
complex ParsedUrl checkrefresh:url;
complex EV checkrefresh:e;
complex EV checkrefresh:goe;
complex Frame findnamedframe:f;
complex Framelist findnamedframe:kl;
complex Frame findnamedframe:a;
complex Frame findframe:f;
complex Framelist findframe:kl;
complex Frame findframe:a;
complex Item anchorgospec:it;
complex Anchor anchorgospec:a;
complex Point anchorgospec:p;
complex GoSpec anchorgospec:g;
complex ParsedUrl anchorgospec:u;
complex CImage anchorgospec:ci;
complex Iimage anchorgospec:i;
complex Ifloat anchorgospec:f;
complex Control pushaction:c;
complex Loc pushaction:loc;
complex Formfield pushaction:ff;
complex Frame pushaction:f;
complex Cbutton pushaction:b;
complex Frame form_submit:fr;
complex Form form_submit:frm;
complex Point form_submit:p;
complex Control form_submit:submitctl;
complex Strlist form_submit:radiodone;
complex Formfield form_submit:f;
complex Strlist form_submit:rl;
complex Cselect form_submit:cs;
complex Control form_submit:c;
complex ParsedUrl form_submit:action;
complex Frame form_reset:fr;
complex Form form_reset:frm;
complex Formfield form_reset:a;
complex Frame formaction:f;
complex Form formaction:frm;
complex Docinfo formaction:d;
complex Map findhit:map;
complex Point findhit:p;
complex ParsedUrl findhit:dflt;
complex Area findhit:a;
complex Dimen findhit:c;
complex Dimen d2pix:d;
complex ParsedUrl newget:url;
complex GoSpec newget:g;
complex ParsedUrl newpost:url;
complex GoSpec newpost:g;
complex HistNode newspecial:hn;
complex GoSpec newspecial:g;
complex GoSpec copygospec:g;
complex GoSpec copygospec:ans;
complex GoSpec gospecequal:a;
complex GoSpec gospecequal:b;
complex GoSpec newdocconfig:g;
complex DocConfig newdocconfig:d;
complex DocConfig copydocconfig:d;
complex DocConfig copydocconfig:ans;
complex DocConfig docconfigequal:a;
complex DocConfig docconfigequal:b;
complex DocConfig docconfigequalarray:a1;
complex DocConfig docconfigequalarray:a2;
complex HistNode newhistnodelist:hn;
complex HistNode_list newhistnodelist:l;
complex HistNode_list newhistnodelist:ans;
complex HistNode histaddedge:a;
complex HistNode histaddedge:b;
complex HistNode_list histaddedge:oldl;
complex HistNode_list histaddedge:l;
complex HistNode_list histaddedge:newl;
complex HistNode_list remhnode:l;
complex HistNode remhnode:hn;
complex HistNode remhnode:hdl;
complex HistNode_list remhnode:ans;
complex DocConfig newhistnode:top;
complex DocConfig newhistnode:kids;
complex HistNode_list newhistnode:preds;
complex HistNode_list newhistnode:succs;
complex HistNode newhistnode:h;
complex HistNode histnodecopy:a;
complex DocConfig histnodecopy:kc;
complex Frame histadd:f;
complex GoSpec histadd:g;
complex HistNode histadd:oldcur;
complex DocConfig histadd:dc;
complex HistNode histadd:hnode;
complex DocConfig histadd:kc;
complex Frame histupdate:f;
complex HistNode histupdate:hnode;
complex Framelist histupdate:kl;
complex Frame histupdate:kf;
complex DocConfig histupdate:kc;
complex DocConfig histupdate:dc;
complex HistNode histfind:cur;
complex HistNode histprint:hn;
complex DocConfig histprint:dc;
complex HistNode_list printhnodeindices:l;
complex HistNode printhnodeindices:hn;
complex Control freectls:a;
complex ByteSource dosaveas:bsmain;
complex EV handleprogress:ev;
complex Cprogbox handleprogress:pb;
complex Point showstatus:p;
complex Point showstatus:sp;
complex Channel alert:sync;
complex PopupAns alert:ans;

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].