[net.sources.mac] The MS-Word file format explained !!

dolf@uva.uucp (Dolf Starreveld) (08/05/86)

As much as anyone else, we wanted to know more about the internal format
of  MS Word document files. Since no information showed up after several
requests  in  this  newsgroup,  we decided to have a peek inside and see
what  we  could find out ourselves. We found out quite a lot, though not
everything.  Below  you  will  find  a  binhexed file (MS Word document)
describing  what  we  have  discovered.  The  list of things that we can
explain contains items such as:
	character style formats, paragraph layout formats, tab
	settings, footnootes, runningheads, picture paragraphs, file
	header and the text itself of course.

We  are  still working on it and we have already discovered a few things
that  are  not  in  this  document.  We  still  have to put it in, so be
prepared for the next version of this document.

We  encourage  everyone  to make use of the information provided, but we
expect  you  to  be  fair and place every program you develop based upon
this  information  in the public domain, or at least make it a shareware
product.  (Free  for  us  of  course  !). Also we would like anybody who
discovers  new  facts  about  the  format,  or  who  finds errors in our
explanation to inform us.

We  are  currently  working  on  a  skeleton  program which will provide
functions  to  read  an  MS  word  document  and  store  all  formatting
information  in  memory, so that with the addition of a few user defined
procedures  things  like  mw2troff  (msw2troff)  can be made. Expect the
source  of  this  program  (AZTEC  C)  in net.sources.mac in the future.
description


			Dolf Starreveld / Maarten Carels
			Department of Computer Science, UvA

Usenet:			{dolf,maarten}@uva.uucp
			{seismo,decvax,philabs}!mcvax!uva!{dolf,maarten}

Snail mail:		Dolf Starreveld
			Department of Computing Science
			University of Amsterdam
			Kruislaan 409
			NL-1098 SJ  Amsterdam
			The Netherlands

Telefone:		In Holland:    020-592 5137/5022
			International: 31-20-592 5137 or 31-20-592 5022

Telex:			10262 HEF NL

(-------------------  Cut here  -------------------------------)
(This file must be converted with BinHex 4.0)

:$Ne6)&G[FQ3JCQpbE@&d!&G%3NjA6e*%!*!%-B!!N!3H2Iib!!#V!*!,+5m!@!"
J!'!!B3"L!'-!N#3SV`!!++m!N$K08b"AEh*N)%CTE'8JCQpbE@&d#9"KCf8J!5"
[CL!e$8eTBh*[8fpQG#"AEh*N)'CTE'8JCQpbE@&d#`Y0,NSZ)%0KFQ9XFb`,35j
(,L"6G'&bFQ9fC@aN#`Y%CA"KFR4YC@jd)'pQ)%0[EA"eG'9b)&0MD@9ZBf8J#e9
ZDACPFR0TG(NJEfBJ3@ecG'9bC'&Y$@8YE@&TE$SJHf4PBhCKH#`JF'KTE'&LFb`
JFf9TFfe[I5&YBhCKH#&eGQ%KHfeKBA*dC@iXC'pXCRd,FbeYB@PX1L",FR9TFfa
KB@iJ0$!j,#!a-$Ni)&0+)#""EA0dCA*NB@dX)&4SC5"1CA4SCA*XB@jNF`f3!c%
Z)%PZG(*[C(9MG'P[ELi09'KTFb"NEf0eE@9ZG#"NCA0MFQPLCA-JG'KP)(0dFR9
MG(9bC5"[CL"dD'8JCQPXCA-JF(*[C(9MC@3JBRNJ6@PMFQp6EfCd)&G28N3Z)&4
SCA0P)'CTE'9c)'&bC5"[CL"dHA"P)04A4%*1e5iJ9'KTFb"VEQphE'9NCf8JDA-
JCf&dD'9bC@3JBRNJE'p[DfPZCb"KG#"QD@aPFb`JB@jN)(4bH@PZCb"dEb"TER4
PFR"bCA3JG'KP)'*jG'9c)'PZ)(4SC5"QD@aP,L""E'`JD@jQEh*YBA4TEfiJDA-
JBQ9XD@9fC@3JG'mJBQ8JBfpbFQ9MG#`JBR9d)'j[)(*PFh"[ER0TBQPXDA4j)'C
[FL"PFR*[FR-JEh)JEfeTFh0TEfjc)'0KEL"LC5"dB@YPELiJ8'aPBA0P)'aPG#"
eFb"VEQph)'PQ)(P[G5"QD@jN)'9bFQpbFb"TEL"dD'Pc)'4[Bh9YC@jd,#"[FL"
TCL"jEh8JCQPZC#"YEh*P)'&LEh9d)(4SC5"cG(*eBh4eFQ8JEfBJG'KP)'CTE'8
Z)&4SC5"QD@aP)'C[FQeKG#"eFf9N)'*j)%e6)&G[FQ3JCQpb)'pdD'9b)'0[EA"
eG'9bFb"dD'&Z)%eKBh-JE@&j,#"[FL"YBANJEQpd)'*P)(4SC5"cB@eP,JeAC5"
hD@aX)'4PFf0bD@*P)'&XE#"cG(*eBh4eFQ9c)'pQ)(4SC5"QD@aP)'C[FQeKG#"
LH5"YC@&ZFb"[CL"$)(0dFR9MG(9bC5"NC@0XBA*KG'P[ER-X)'&c)(4SDA-JDA-
JB5"MEfjfC@jTC@jd)(GKH5"dEb"NCA0MFQPLC5"dD'PZCh-Z$3db,L"(C@jPFQ&
X)'CTE'8JFh4bG@0dGA*P,Je")#"08b"AEh*N)'CTE'8JEfBJG(P`C5$89d4#6Y8
JBf&Z)'*P)'4TGQPNC@3JD@jdEb"KG#"XC@&cG#"QEh9b)'4TCQCPFQ9ZG#"YB@P
Z)("KFR4c,L"AC5"hD@aX)'0KE'`JG'KPFf8JF'&bG(-JG'KP)0*SC@&NCA,6,#$
5G'9iG0-X)0*MD'&bB@0dCA)JCQpbE@&dFp-JB@jN)0*`BA*KCh*KF'JJCQpbE@&
dFp-JFQ9cF'9MG'PfC@aj,L"8D'9cC5"`BA*dFb"KF("PBA)JD@iJG'KP)'CTE'8
JD@iJG'KP)'&LEhCP)'ePER4TEfjPC#"[FQ4PFL"TEL"dD'8JCQPXC5Gc)'4KG'%
JCQpbDbiJ9'KP)(*PFfpeFQ0P)'C[FQXJDA-JB@ahBAPc)'9YF(4j,#"T,Q8Z)'j
[G#"KE'a[Bf&dC@3Z$94SC5"QD@aP)'0KEL"LC5"cC@9Z)'&c)'*PD@jR)'*eD@a
d)'CbEfdJBQ&cD@-JBQa[BfYc,#"PB@0S)$%b1#"LHA4PFb"XEfjR,L"8D'Pc)'P
c)(4SC5"MBA0P)'C[FL"KE'`JF'&bG(-JEfBJG'KP)'CTE'8X)'&XG'K[G@GS)'P
d)'4[CA-JEQpd)'&`F'9KFL"dEb"LC5"cD@GZD@CTBf&ZG#"QEh)JG'KP)(4PH(3
JF'&bG#iJ9'KTFb"TEA"XD@9c)(4SBA3JG'KP)(0THQ8JEfBJB@iJ69-J9fpbC#"
QD@aP)'Pc)'&XGf&jFb"K)'eeE(4TF'aP)'pQ)$%b1#"LHA4PFb`JG'K[G@GS)(G
TG'KTEL"PB@0S)'pQ)(4SC5"`BA*dFb"YC@jdD@pZC@3X)(4SC5"XBA0d)'*jG'9
c)(4SC5"XBA0d)'*XEf0V)'*PE'pZCfPZCb"dEb"K)'0PFR4KD@iJF'&bG#"YBAN
J+'&ZC#"eFh9KE'aj)(GTE'`T)'0[ER4KD@iJCf&bBQ&RC5i03@CdCA)JG'KP)'a
KFh3JdR"KFQ&RFQ&`D#"QEh*YBA4cdb"LE'pMDb"cEfeP)'e[FQ8JD@jQEh*YBA4
TEfiJDA-JF(*PFf9ZG#iJ9'KTFb"TFb"TEQC[FQeKG'P[EL"MEfjZC@0dC@3JG'm
JC'PfDA0TEfjc,L""Fb"jCA3JEfjXH5"dD'8JF(*PFf9ZBf8JEfBJG'KTFb"TEQC
[FQeKG'P[EL"TFb"VEQphEL`JG'KP)'PZCQpbE@&dD@pZ)'PdFf9XCL"TFb"cG'P
XE#"eEQ4PBfpNC@3Z)%e[FQ8JDA-JG'mJBQ8JCAK`C@0dC@3JD@iJG'KP)'jPBA)
JCR9dGA*P,Jd0-b")C@&NCA)Z$94SC5"SC@&NCA)JF'&bG#"MEfjcDA0dFb"[CL"
K)(0TEQGXC5"LE'pMDb"[CL!a-MJJBRPdCA-Z)&4SC5"YC@&ZD@jR)'pQ)'e[Fh3
JF'&bG(-JEfBJG'KTFb"SC@&NCA)JDA-JH@9d)(9ZBfaPBA)X)'*eG#"dD'8JD'9
KC'9b)'0KEL"LC5"NC@CTEQ9N)'PZ)(4PFQec)'pQ)'%J3b"cG(*eBh4eFQ8JBA-
JCQpXE'phFcS0,bS,#94SDA-JFh4bG@0dGA*P)(0dBA*dFb"PB@0S)%e6,9G28N3
J*eG%3NiR)'CTE'8Z#bS[#h0dFR9MG!PID'9KC'9b#AX,,bSJ-$!J+Lm*GA0SEh*
d#@KI-6X*,bSJB@ahBAPc)$"iCQ8c-L!U,`X[+L!`-#!U,`PeFfK[FR3*D&mb1`N
[+L"KE(GKHA-J-#!U,`X[+L!`-#!U,`PeFfK[FR3*D&mc1`N[+L"KE(GKHA-J-(K
KBM!`)#S[#bmU)$!`)#S[#A0SEh*d#@KIG@jV-9XdA6X*,bSJB@ahBAPc)$!J+Lm
,,bSJ-63J+Lm*G@a[EQF*D&p&9$X*,bSJ8'pcDA4TEfiJEfBJ-A0d)'*jG'8JF'&
cG#"dCAKd)#S[#bmU)$%f)#S[#A9cD'pbG!PSAh"`BA)l#5mU)'*XEf0V)#-JEfB
JCQPbFh3JF'&bB@GbBA"S)'*XEf0V)#S[#bmU)$%i)#S[#A9cD'pbG!PSAh!b1`N
[+L"LE'pMDb!M)'pQ)'CTFR0d)$mr)'*XEf0V)#S[#bmU)$)`)#S[#A9cD'pbG!P
SAh!c1`N[+L"cB@eP)#S[#bmU)$)b)#S[#A9cD'pbG!PSAh!d1`N[+L"LE'pMDb!
M)'pQ)'CTFR0d)$q3!b"LE'pMDb!U,`X[+L!b0#!U,`PeFfK[FR3*D&p`06X*,bS
JBQa[BfXJ)b"[CL"QDA*cG#!rN!3JBQa[BfXJ+Lm,,bSJ-MBJ+Lm*GA0SEh*d#@K
IF$Bl#5mU)'*XEf0V)#-JEfBJE'&cG#"LE'pMDb"TEL"QD@aP)#S[#bmU)$)i)#S
[#A0SEh*d#@KIG@jV-PXa0edl#5mU)'&XGf&jFb!`)#S[#bmU)$Bd)#S[#A9XEfj
R#@KIG'aPEQGdD$X*,bSJ6'9ZCh4S)'pQ)(4PH(3J+Lm,,bSJ0MJJ+Lm*G@a[EQF
*D&pdE'9ZCh4S-6X*,bSJ6'9ZCh4S)'pQ)(4PH(3J+(0dEh*PC#"dGfPMC5NJ+Lm
,,bSJ0c)J+Lm*FfK[FR3*D&peEQXc@c)fA6X*,bSJB@ahBAPc)$!J+Lm,I6X,G(P
`C@4PCL"cG(*eBh3JAfKPB@4PFL"08ep)C@&N1`e8D'8JE@9KEQPZCb"[CL"dD'8
JdR9ZDfj[Gfl6)'CTC@aNFb"TFb"ZEh3JH@9d)'4TFf0[GQ9bC@3Z)&4SC5"SAd9
8)'CTC@aN)'0[ER4KD@jc)(4SC5"KC'4bCA0c)(GTG'KTEL"dD'8JCQPXC5"[CL"
dD'8JBRPdC5"UGA0d)("KFh3JG'KP)'aKFh3JBfKKFQ&MG'9b)'PZ)(4SC5"NEf0
eE@9ZG#"dCAKd,#"T,Q8Z)(4SC5$5G'9iG0-JF'&bG#iJ9'KP)'KIG'aPEQGdD#"
QD@9XC#"MEfjdB@PZFb"dD'8JE'9ZCh4S)'pQ)(4SC5$5G'9iG0-JF'&bG#"TEL"
LHA4PFbi0N!-d,L"8CAKd)("KFR3Z$94SC5"dCAKd)("KFR3JBfpZG'&TER-JB5"
MEfe`E'9dC5"bCA"bCA0PER4KG'P[EL"[CL"dD'8JG'9iG#"TEL"dD'8JC'pMG@e
PER3X)'PZBfaeC'PZCb"bG@jZD@jR)'KPB@4c)'&ZC#"QEfpdEQpdCA-Z)&4SC5"
dCAKd)'Pc)(*PF(*PFf9ZG'9N)'PZ)(4SC5"[FQ4PFL"TEL"hD'PMD#"TG#"[Bf0
eFR-JD@iJG'KP)'4[Bh9YC@jd,#"TEL"dD'8JCAKdC@jNC@3J6@&MD@jdEh0S)'&
cBfPT)'0SBA*KBh4PFL"cCA3Z)&0[E@8JBA0MD@NJGQ&XG@9c)'KKGQ8JFh"PBfP
KE#"YC@&ZD@jR)'K[Gf9fCA)k$6"i-$%*F'&RC5"ZG@eLCA)J+#K`B@GP+5"RE'p
cFf&bH5N,-(J`03PKGA4[)'jeE@*PFQ9N)'C[Eh4ZEh4P)(*PCQ9bC@jMC5!S+'C
[Eh4ZEh4P+5"RE'pcFf&bH5N,-(J`BJP'Eh*MC@3JEQ9h)'aTEQ8JGfPdD'PZ)("
KFQ&RFQ&`D!X`H$"M#89ZC#"[CL"NDACTFfP[EL"[FL"QEh*MC@3JEQ9h)("KCf8
,-(J`C!P&EQ3JEfBJF'&bB@GbBA"S#c"i-@B*6h"dD@pZB@`JD(P`D'9Z$94SC5"
KBQpfC5"TEA"XD@9c)(4SBA3JG'mJCAKdFQ&MG#"K)(4PH(3JEfjXH5"fCA*cD@p
Z)'pQ)'&Z)%e6)&G[FQ3JCQPXC5"[EQ8JEfjXH5"ZC@9NFb"dEb"PH(4bB@0d)(4
SC5"dCAKd)("KFR3JEfBJG'KP)'CTE'8X)("[Fh0TBQaj)(*PF'aKBfPZCb"cEfe
P)'pQ)(4SC5"cF'9MD@&X)'0SBA*KBh4PFR-JGfPdD#"KEQpdD'9b,#"NCA"PEQ4
TEQFJEfiJGfKKG#"jEh8JGf&ZG#iJ5@BJH@pe)'4[)'j[G'KTEQFX)(P[G5"hD@a
X)'0PFR4KD@jXH5"RCA3JGQ9bH5"XEfjR)'aTEQ9c,#"cD@jMC5"jEh8JGfPXE#"
RCA3JB5"ZCAGXD@jP)'0SBA*KBh4PFL"[EQaj)'&d)(4SC5"PEQ3JEfBJC@&MD#"
`BA*KCh*KF'JX)(0[)("PFQKKF(-JH@pe)(GKER3JG'mJC'mJFfpYC5"XD@jP)'C
[E'4TEQFZ)&"TBh4eFQ9c)'&bC5"cG'pbC@3JGfPdD'PZ)(4SC5"dCAKd)("KFR3
X)'&XEfjR)(GTG'JJB5"SC@&NCA)Z)&4SC5"`D@0dGA*P)'Pc)'%JFfPZCfaP)("
KFQ&RFQ&`D#"LH5"TG#"cC@aQ,L"8D'8JF'&bB@GbBA"S)'C[FQeKG#"bG@iJF'p
TER4TEQFJG'mJG'KP)("TBh4eFQ8JD'&c)'%JBQPd)(0PG#"dEb"TEQ4TBf&dC5"
dD'8JBfpbFQ9cF'pZC'PZCb"`BA*KCh*KF'JJDA-JB5"`D@0dGA*P,Jde,L"'Eh*
YBA4c)(*eER-Z$89fCA*jG'KTEQFJBfpZEQ9MG'9N)(4[)(4SC5"QEh*YBA4dD@j
R)'pQ)(4SC5"dCAKd)'Pc)(0dEh*PC#"TEL"hD'&d)(GP)(GTE'`JBf&XE#$5CQp
bE@&d)(*eER26)'&ZC#$5CQpbE@&d)'4PFf0bDA"dEh*cdbiJ35"QEh*YBA3JFR9
Z)'0[ER0TFh4c)'pQ)(0PGQ9bB@`JBRPdCA-JEfBJCQpbE@&dG'PZCb"TEQC[FQe
KG'P[EL`JC'9cBh*TBQ9N)'*PE'ph)#KcC@0dD@pZ)$BJB@jN)$FT,L"")'C[FQe
KG#"NCA0MFQP`G'pb)'0[ER0TFh4c)'pQ)$BJBRPdCA-Z)%Pd)'Pc)'4PFf0bD@*
PC#"LH5"dD'8JCQpXE'phD@jR)(0dFR9MG(9bC6S0,bS,#94SDA-JFh4bG@0dGA*
P)'4PCQPZCA-JB5"QEh*YBA3JC'9cBh*TF(4[FLi,+Lm,Fh4bG@0d#9pQC'9cBh*
TF(4[FJPl#bmU)$!`)#S[#A9XEfjR#@CNAh0dBA*d1`N[+L"cG'&bG#"[CL"dCAK
d)'C[FL"ZCAKd)(*eEL!U,`X[+L!`0#!U,`PcD'pbG!PQC&pbG@il#5mU)("[D@j
dCA)JG'mJG'KTFb"QEh*YBA3JFR9Z)#S[#hdl$89KBfJJCQpbE@&d)'*XEf0V)(0
dBA*dFb"hDA4S)(4SC5"[CQCcCA3JD@iJG'KP)(4PH(3JF'&bG#"hD'9bC5"dD'8
JCQpbE@&dFb"[CL"dD'Pc)'*XEf0V)(0dBA*d,L""CR4PFL"dD'8JD@jTG'PKE#"
cG'&bG#"K)'jeE@*PFL"[CL"QEh*YBA3JC'9cBh*TF(4[FR-JCQpXE'ph,L"8D'8
JFQ9cG#"[CL"dD'8JCQpbE@&d)'*XEf0V)'0[ER4KD@jc)'C[FQeKG#"bG@jc,L"
#Eh4S)(4SC5"QEh*YBA3JFR9Z)'&ZC#"dD'8JCQpbE@&d)'4PFf0bDA"dEh)JEA9
cG#"LC5"MEfjdB@PZC@3JD@iJG'KP)(0KE@8JCQpbE@&d)'*XEf0V,L"")'jPGb"
LE'pMDb"TFb"KE'a[Bf&dC@3JD@BJC@PdD'9b)'pZC5"NEf9c)'j[G#"QDA3Z)!e
8D'8JE'&cG#"LHA4P)'PZ)'%JCQpbE@&d)'*XEf0V)#K[CQCcCA3J-(JhCLNJBfp
ZG'&TER-JG'KP)'jeE@*PFL"[CL"QEh*YBA3JC'9cBh*TF(4[FR-JF(*PFf9ZG#"
TEL"dD'8JBQa[BfXZ$94SC5"QEh*YBA3JFR9ZFb"KFQ8JFh4[FQ9N)("bC@0PC'9
N)'*j)'%JBRPdC5"MEh9ZG#iJ9'KTFb"LHA4PBfpeER3JCfPfCA-JG'KP)'jeE@*
PFL"[CL"LHA4PFb"TEL"dD'8JCQpbE@&d)(*eEL"dD'&d)'&bC5"KBh4eB@aXH5"
cG'pbC@3JD@iJG'KP)'CTE'8Z)&4SC5"[G'KPFL!SEQpd)(0dEh*PC#NJBRPdCA-
JEfBJG'KP)'C[FQeKG#"bG@iJBA*P)'&XE#"kCA*[,L"2GQ9bB@aX)'CTE'8JFfP
kC5"TFb"bC@4eBf9N)'*j)'j[G#"cG'pbD@jR)(0PE'4[E@aj)(9cC@3JCQPPE'4
c,L!09'KP)'CNAh0dBA*d)'CTC@aN)'Pc)'%JF'pTER4PFL"TEL"dD'8JG'9iG#"
`BA*d)'pQ)(4SC5"NEf0eE@9ZG#iJ9'KP)'jPH(3JCQpbE@&d)'&`F'aTCA-JCR*
[E5"dD'9bC5iJ9'KP)'CNAh*eEL"QD@9XC#"TFb"KEL"[CQCcCA3J+(*PE'&dDAC
P)(4[)'*jG'8J0#"TEL"dD'8JCQpbE@&d)'*XEf0V+5"dEb"dD'8JCQpbE@&d)(*
eELiJ$6BZ)%0SBA*KBh4PFL"QEh*YBA4c,Je8D'8JBfKKFQ&MG'9b)'C[FQeKG#"
bG@jc)'4PCQPZC5"SEhFJG'KP)'0SBA*KBh4PFR-JD@iJG'KP)(4PH(3JE'p[Dbi
J9'KPFf8JF(*[F'9bG'PPFb"TEQ0XG@4P)(4SC5"QEfjd,#"cDATP)'&ZC#"cG(P
XC5"[CL"dD'8JBfKKFQ&MG'9bFbiJ9'KP)'0SBA*KBh4PFL"QEh*YBA3JFR9ZFb"
KFQ8J+'&d)'aPBA0d+5!f)'*jG'9c)'a[EQFZ)&4SC5"YC@&ZD@jR)'pQ)(4SC5"
LHA4PFb"TEL"dD'8JCQpbE@&d)(*eEL"TFcS0,bS,#94SDA-JFh4bG@0dGA*P)'4
PCQPZCA-JBfKKFQ&MG'9b)'C[FQeKG(-Z#bS[#h0dFR9MG!PIBfKKFQ&MG'9bAfC
[FQeKG!Pl#bmU)$!`)#S[#@*jG'8*BfCIG@jVEQphEMX,,bSJ-$%J+Lm*BRPdC3P
MCPpQEfjd1`N[+L"QEfjd)'jeE@*PFL`JFfpYC5"QE'&RFb!U,`X[+L!`-L!U,`P
LHA4P#@0QAh"[D@jdFfPkC6X*,bSJG'PYCA-J-L`J-#!p)'4PCQ&eE(3J+Lm,,bS
J-$-J+Lm*BRPdC3PMCPpQE'&RFc%l#5mU)'e[FQ8JCQaKCh-J+Lm,,bSJ-$3J,bS
*BRPdC3PMCPpQE'&RFc)l#bmU)$!e)#S[#@*jG'8*BfCIF'pcDA4TEfil#5mU)(0
eF'9b,h0eBR0MFQP`G#"`DAKPE#"cD'PQG$mJ+Lm,I6X0)f4PCQPZC3P$5%CI8e"
&3`N`H$J`#5mU)(0[E@9dD'PZCb"cF'9MD@&X)#S[#bmU)(CKE(9PFb"QEh)JG'K
P)'0QAfC[ER3JCQPPE'3J+Lm,)f4PCQPZC3P$5%CI4NC"63N`H$0Q#5mU)'C[ER3
JER9YBQ9b)'eKFfXJ+Lm,)f4PCQPZC3P$5%CI3Np-4!N`H$J`#5mU)'*[E'3JBQP
d)#S[#b0NC@CTEQ8*3dK'AdP838`*-(Jd-!N[+L"TG'&XD@-JBQPd)#S[#`X[+L"
fB@aeCA-JCQpb)(4SC5"QE'&RFc%JB@jN)'CXB@Gc-L"QD@9XC(-J+Lm,)f4PCQP
ZC3P'-9p96!N`H$J`#5mU)(9ZC'9bE'PZC@3J+Lm,)f4PCQPZC3P'-9p63`N`H$"
M#5mU)&0YB@aX)%0KF(-J+Lm,)f4PCQPZC3P'-Pp26!N`H$%`#5mU)'peG'aTEQ8
J+Lm,)f4PCQPZC3P'-Pp65!N`H$!i#5mU)(0SB@4[Gb!U,`f3!cFZ)&"KFQ&RFQ&
`D#"QEh*YBA4c,Je8D'8JCQpeFR4S)("KFR3JEfBJG'KP)'CTE'8JBfpZG'&TER-
JG'KP)("KFQ&RFQ&`D#"QEh*YBA4c,L"8D'8JCQpbE@&d)(*eER-JFh4KFR3JGfP
dD#"ZEh*YB@`JF'&bB@GbBA"S)'C[FQeKG(4TEQFJD@jQEh*YBA4TEfiZ)&4SCA*
PB@CdCA)JCQpXE'ph)(4SC5$5G'&L)'4PCQPZDA4TEfjcdbiJ3A-JE@&ZH5"dB@)
JC'9QD@jTG'P[ER-JBA-JEQ9PC'9N)(GTE'`JBQ8JD@iJG'KP)'C[FQeKG#"bG@i
Z)&4SC5"dB@)JC'9QD@jTG'P[EL"TFb"NCA0MFQPLC@3JBRNJG'KP)(0dFR9MG(9
bC5"LC@a[GcS0,bS,#94SDA-JFh4bG@0dGA*P)'4PCQPZCA-JG'&LF`XU,`YcG(*
eBh3*Ah4QEh*YBA3JH`X[+L!`-#!U,`PcD'pbG!PdAh"[FfPdD@pZ1`N[+L"dB@)
JF'pcDA4TEfiJ+Lm,,bSJ-$)J+Lm*FfK[FR3*G&pQE'&RFcX*,bSJG(P`C5"[CL"
dB@)JFh4[F#!U,`Yp1`YdHA"PC'9Q)(0dFR9MG#"IG'C[FQeKG#"08ep8B@)l$5m
U)(CKE(9PFb"QEh)JG'KP)(4ICQaKCh-JCQPPE'3J+Lm,)f4PCQPZC3P8Ad&-58G
1690,#6"i0M#3!`N[+L"YBA0V)'C[FL"dB@)JB@aTCfjYC@jd)#S[#`Q3!bmU)'&
XD@GZE@9ZG#"fB@aeCA-k)#S[#b0NC@CTEQ8*9&p-48C8#6"i-*!%#5mU)'aPCR3
JB@aTCfjTEQFJG'&L)#S[#b0NC@CTEQ8*9&p$48j849)*-(Jb-*!$#5mU)'0PER4
PFL"KE'PREQPZCb"dB@)J+Lm,)f4PCQPZC3P8Ae**4dK8#6"i0$#3!`N[+L"bD@G
SG#"KE'PREQPZCb"dB@)J+Lm,)f4PCQPZC3P8Ad4&3dP038`*-(Jf-*!$#5mU)'4
PBfPYB@`JG'&L)#S[#`XMC'9QD@jP#94I6%9"4%e65`N`H$"M-$!*,bSJE@&cDb"
QEh)JG'&L)'aPB@4PFL!U,`X*N!-[+L"XC@&NCA)JGQ&XG@9c1L!U,`XMC'9QD@j
P#94I3Na"6NX*-(J`N!3*,bSJBQaKEQXJE'9KC'9b)#S[#b0NC@CTEQ8*9&p%6e4
6#6"i-$3`-!N[+L"NEh4dC@3JE'9KC'9b)#S[#b0NC@CTEQ8*9&p%390)#6"i-$J
`-!N[+L"NBA0SC@3JE'9KC'9b)#S[#b0NC@CTEQ8*9&p-58j&#6"i-'-`-!N[+L"
XD@jP)'aPB@4PFL!U,`e8D'8JCQpbE@&d)(*eEL"TFb"NC@CTEQ9N)'*j)(4SC5"
cG(*eBh4eFQ8JBQ9XEhFk$5mU#`P8D'Pc)(0dFR9MG(9bC5"NC@CTEQ9c)("KFQ&
RFQ&`D#"QEh*YBA4c,JXU,`YcG(*eBh3*Ah"QEh*YBA3*H`X[+L!`-#!U,`PcD'p
bG!P`AfCXB@Gc1`X[+L!`-L!U,`PcD'pbG!P`Ah9ZDfj[Gfia1`X[+L!`0#!U,`P
cD'pbG!P`Ah*TCfKd1`N[+L"bD@GSG#"TEQ4PER3J+Lm,,bSJ-$BJ+Lm*FfK[FR3
*F&pQDA*cG$X*,bSJCQPbFh3JD@jNC@jd)#S[#bmU)$!i)#S[#A0SEh*d#A"IE'9
QG$X*,bSJE'9QG#"TEQ4PER3J+Lm,,bSJ-6!J+Lm*FfK[FR3*F&pXD@jPAh0`B@0
TEQFl#5mU)'aTEQ8JFh"KBfPZCb!U,`X[+L!a-L!U,`PcD'pbG!P`Af*PCQpbC6X
*,bSJE'PZCA-JBQ9QEh*P)("KFQ&RFQ&`D#!U,`X[+L!a0#!U,`PcD'pbG!P`Af&
QG'9b1`N[+L"XD@jPFb"KCR4PFL"`BA*KCh*KF'JJ+Lm,,bSJ-6BJ+Lm*FfK[FR3
*F&pbD'9KC&p`D@0d1`N[+L"bG@jZD@jR)'KPB@3J*L"`D@0dGA*P)'PZCQmJ+Lm
,,bSJ-6JJ+Lm*FfK[FR3*F&peEQYZEhGZ-MX,,bSJ-M!J+Lm*FfK[FR3*F&peEQY
ZEhGZ-cX,,bSJ-M)J+Lm*FfK[FR3*F&peEQYZEhGZ0$X,,bSJ-M3J+Lm*690I9'&
L#A"IG'&LFb"E-&d*,bSJE'PcG#"[CL"dB@)JC'9cBh*TF(4[FR-J+Lm,I6X,G(P
`C@4PCJPcG(*eBh3JAh"QEh*YBA3*690I4Qed1`d[+L"fB@aeCA-JCQpb)(4SC5"
`AfCXB@Gc)'CTC@aN)#S[#b0NC@CTEQ8*8%CI4Np29%e"8dX*-(KQCM!`#5mU)'e
KFfXJCQpb)'C[Eh4ZEh4P)'PZCQmJ+Lm,#C!$,bSJGQ&XG@9c)(9ZDfj[GfiJ+Lm
,#b0NC@CTEQ8*8%CI5P969%e"8dX*-(J`-'-`#5mU)'eKFfXJCQpb)'TeFh4TCQP
MBA4TEfiJ+Lm,#C!$,bSJDR9cG'PQD@0KG'P[EL"fB@aeCA-k)#S[#b0NC@CTEQ8
*8%CI6%9'9!N`H$#3"!N[+L"XC@Cd)'TeFh4TCQPPC#"`BA*KCh*KF'J,)f4PCQP
ZC3P34Pp$48j849)*-(J`-$3`#5mU)'0PER4PFQ9N)("KFQ&RFQ&`D#!U,`XMC'9
QD@jP#9"'Ae**4dK8#6"i-$!i-!N[+L"bD@GSG#"UGA0dD@CTC@3JF'&bB@GbBA"
S)#S[#b0NC@CTEQ8*8%CI5P969!N`H$!`Bc!*,bSJDR9cG'PQD@9N)("KFQ&RFQ&
`D#!U,`XMC'9QD@jP#9"'AdY&49!*-(J`-$%`#5mU)'YPCA!JGfPdD#"ZCAKd)("
KFQ&RFQ&`D#!U,`XMC'9QD@jP#9"'AdY&49"-#6"i-$!b-!N[+L"VC@9`)'aTEQ9
c)(4[Cf9dD'9b)#S[#`X[+L"fB@aeCA-JCQpb)(4SC5"bG@jZD@jRAfKPB@3JCQP
PE'3J+Lm,)f4PCQPZC3P55&p0390,#6"iCM#3!`N[+L"YBA0V)'C[FL"bG@jZD@j
R)'KPB@3JD@jQEb!U,`X*N!-[+L"bG@jZD@jR)'KPB@3JGQ&XG@9c1L!U,`XMC'9
QD@jP#9*)AdC*8P08#6"i1$#3!`N[+L"KF("PBA*c)'pZ)'CTFR0d)("KCf8J+Lm
,)f4PCQPZC3P55&p&9N91#6"i0$#3!`N[+L"[EL"PGQ9Z)("KCf9c)#S[#b0NC@C
TEQ8*8NKI6d4%#6"i-M#3!`N[+L"[EL"[C'3JF'&RCA-J+Lm,)f4PCQPZC3P55&p
#6e486dd*-(Ja-*!$#5mU)'&`F'9KFR-JEfiJBQpdG'pY)'pQ)("KCf8J+Lm,#b0
NC@CTEQ8*8NKI8%P$9!N`H$!i-$!*,bSJG'KTFb"`BA*KCh*KF'JJDA-JB5"`D@0
dGA*P)#S[$8&XE#"QD@9XC(-JFQ9`FQ9cC@jdD@jR)(0THQ9c)'&ZC#"NDA0dB@j
MCA-JBA*P)'PZ)%e6)&G[FQ3JBQ&cD@-JG@jTG(-X)'*PD@jR)$%[-M!JEfBJB5"
`EfPZG#`JEh)J-5ma0$3`)'pQ)'&Z)'PZBfJJ+'&cFh9YD@jR)(4SBA3JB5"`G#"
PFA9KE(-J-5mh-L"[CL"KEL"TEQ0S+5i05@iJG'KP)("KFQ&RFQ&`D#"QEh*YBA3
JFR9Z)'pZE(NJG'KP)(4KBL"NCA0MFQP`G'pbFb"ZC@9NC@3JCQpb)'&XE#"NC@C
TEQ9N)(4KBR-JBA*P)("bCA0PER3Z)&4SC5"XDA0d)'pQ)(4KBL"NCA0MFQP`G'p
bFb"TFb"PEQ4PC#"LH5"K)(4KBL"NCA0MFQP`G'pb)(GTG'JJG'KP)(4IF'pcDA4
TEfiJCQPPE'3JCA&eB@`JG'mJ-#i035"`D@0dGA*P)'Pc)'PNC@jdD@CTC@3JBRN
JD'&fD@jR)(4SC5"55&p35808)'*TG#"cCA3Z)%PZ)(4SC5"dCAKd)("KFR3JEfB
JG'KP)'4[Bh9YC@jd)(4SC5"`D@0dGA*P)'Pc)("bCA0PER3X)("bC@0PC'9N)'*
j)'%J0L"LHA4P)'KPB@4PFLiJ3@CdCA)JG'KP)'KPB@4PFL"dD'8JF'PMG(9bC5"
QEfaXEhGc,#"TEL"35808)'C[FQeKG#iJ+(0PC5"*ER0TC'8J6@&MD@jdEh0S+5i
J9'KP)("TBh4eFQ8JD'9KC'9b)'Pc)'4PCQPZC@3JBRNJG'KP)(0dFR9MG(9bC5"
RDACPEL"LC@a[GcS0,bS,#94SDA-JFh4bG@0dGA*P)'4PCQPZCA-JB5"`D@0dGA*
P)'KPB@4PFJXU,`YcG(*eBh3*Ah"SC@&N)(X,,bSJ-$!J+Lm*FfK[FR3*F'KIEfC
QFf9d1`N[+L"[CQCcCA3JCR*[E5"XC@Cd)'eKFQGTEL!U,`X[+L!`-L!U,`PcD'p
bG!P`D&piC'PcG$X*,bSJC'PcG'pbG'P[EL"TEL"i)'4TFQ9MG'P[EL!U,`X[+L!
`0#!U,`PcD'pbG!P`D&pjC'PcG$X*,bSJC'PcG'pbG'P[EL"TEL"j)'4TFQ9MG'P
[EL!U,`Yp1`YdHA"PC'9Q)(0dFR9MG#"IF'KPB@3J690I8'PMG$X09'KP)(0THQ8
JB@jN)(0TCfjTCQPMB@jMC5"[CL"dD'8JG@jVEQphEL"QD@9XC(-JDA-JEQpd)(P
PG#"NDA0MEhCPFQ9N,Jd-!!J-!'-!!!J9!'!!!!M-!&d!!!`3!&N!!!`S!&B!!!`
X!&0MG@8#!!+!&!)!&!-!&K3#!"3#!*3#!"3#!*3#!"3#!*3#!"3#!*3#!"3#!*3
0!*!$J!#3!jN!H!#3!jS!F`#3!k!!F!#3!lS!E!!!!BS!D3!!!CS!CJ!!"#)!B`!
!"$`!B!!!",)!A3!!",J!@J!!",`!9`!!"-!!9!!!"-3!8@0eC3)!&!)!P!)!&!)
!P!)!&!)!P!)!&!)!P!)!&!-!P"`#!"3%!"3B!J)!&!d!!!6%!!!%c3"i!!!%cJ"
e!!!%e3"b!!!%h!"[!!!%j3"X!!!%jJ"T!!!%l3"Q!!!)*3"M!!!),J"J!!!)j3"
G!!!-+3"C!!!-33"@!!!-43"6Bh9P!J!#J"3#!"3$!"B8!J!8!J#8!J!8!J#8!J!
8!J#8!J!8!J#8!J!8!J#8$3!!$%8!!!de!(J!!!e#!(8!!"'Q!()!!"'f!'m!!",
V!'`!!"1S!'J!!"D8!'8!!"DF!'%!!"DG!&d!!"E@!&S!!"ED!&F!!"Ek!&3!!"F
!!&"MG31!&K3#J"3#!*3#J"3$!"38!i!@&!)!&!-!&K3#!"3#!*3#!"3#!*3#!"3
0!!!A!*!$&e!!H!!!&e%!G3!!&fB!FJ!!'&J!E`!!'Dd!D`!!'Di!D!!!'bm!C!!
!'c)!B3!!'dF!AJ!!('B!@`!!(cd!9`!!(fi!9!!!*@B!8'0e!`!@&!)!&!-!&K3
#!"3#!*3#!"3$!"B8!J!8!`!@&!)!&!)!P!)!&!+!&!d!!#9Q!!!Qk`"i!!!QmJ"
d!!!Rh!"a!!!Sj`"Y!!!T,`"U!!!CVJ"S!!!E,`"N!!!E-J"K!!!E4`"H!!!FCJ"
E!!!I23"A!!!IEJ"8!!!PCJ"3Bh8$!"B8!J!8!`!@&!)!&!)!P!)!&!-!&K3#!!)
!&!-!&K3#!"3$J"B8!J!8"3#3!i!!N!1J!'N!!!%5!'B!!!')!&F!!!'*rrm!!!'
+rrm!!!'E!&3!!!1B!%8!!!3Krrm!!!3Lrrm!!!3p!%)!!"mp!&F#J"!1!-!!N!B
#0`#3!r!#J"!1!%!!N![`!J"!%B#!!!!&S!@J!*!)m!S!!!3p!!!&L3"X!!!()!"
T!!!)*!"T!!!)*Irr!!!),`"Q!!!)j3"A!!!-+J!`!!!%)Irr*S!J!*!%!Y!!N!A
`!*!)"iF!!!X6!!!3e3#3"Ji!N!J#0`#3!r!#J"!#!-!1!-!!N!B#0`#3!r!(!!!
-+J!!$6-!E!!!$66rr`!!$6Arr`!!$8-!D3!!$Q!!@J!!$cJ!1`!!%DB!,!!!$J$
!!*!'!MF!N!2`(S!J!*!%!Y!!N!A`!*!)#0`!N!B1!-!!N!B#0`#3!r!#J"!1!-!
!N!B#0`#3!r!(!!!4TJ!!%EF!E!!!%ZX!A3!!%kN!0J!!&3`!*`!!&AS!*`!!&T!
!!#F!!"%1!-!!N!B#0`#3!r!QJ#!!N!3#d!#3"I!!N!J(K`!!#a-!!"$9!*!'$J$
!!*!'!MF!N!2`$J!3!*!,m!B!!"D3!!!!&e%!E!!!&fF!A3!!'&J!6J!!'Di!*`!
!'c!!*`!!'c(rr`!!%5D!)!#3"!,3!*!&m!#3#!H(!!!,p3!!%EJ!N!B1!-!!N!B
#0`#3!r!1!"!!N![`$J$!!*!'!MF!N!2`"J!!'c%!!"Xbrrm!!"Y)!(J!!"aQ!'N
!!"dE!%)!!"mp!%)!!"p[!$-!!"%QJ#!!N!3#d!#3!`i!N!J#0`#3!r!QJ#!!N!3
#d!#3"I!!N!J(K`!!#r8!!"&'!*!'$J$!!*!'!MF!N!2`!S!3"J!!(fm!!#(X!&3
!!#9R!&3!!#B)!%8!!#E&!%8!!#IF!%8!!"p[!$-!!"%QJ#!!N!3#d!#3!`i!N!J
#0`#3!r!QJ#!1!-!!N!B#0`#3!r!QJ#!!N!3#d!#3"I!!N!J(K`!!#r8!!"&'!*!
'"3!!*p`!!#MR!&3!!#NZ!%8!!#N[rrm!!#N`rrm!!#IF!%8!!"p[!$-!!"%QJ#!
!N!3#d!#3!`i!N!J#0`#3!r!QJ#!1!-!!N!B#0`#3!r!QJ#!!N!3#d!#3"I!!N!J
(K`!!#r8!!"&'!*!'"'B!38'd,QMrr`@K0R)&S#-S!!%%06er!Y!!!!3e+-F!!!3
e!!%!"Rrr!!%!!333"@-!(5$M!Y!!N!A`!*!)"iF!!32Lrj!%!$%!N!-H!!%'-5i
j)'12k!#3!`%$r!!GC5"6F'&MC3#3"!a%Eh9LE'8J8h"KBf8!!!)!!J!!++m!!`!
!-!#3!bL`!!(rN!3)4QpbE@&dFmN!63!!!5d!N!3&9'&LFmN!9!#3"R!!!-X!!!F
!N!YE#%4[Bh9YC@jd%%4TGQPcD@pZ)%aKH@peG-N!N!3",3#3"!P'EfpdEQpdCFN
!43!!$9)!"3!+!!%!N!8#!!!)C3!$!!!5D`!%!!!EI3!&!!!KE%S!N!8"'J!!b`!
!*J49EQ4["&*PC'm+3f&Z*h3J9@jNE`G$EfeYB@jN!d0eG!4$Eh"j"9"KFh4P"%9
NDA3+4QpbE@&dG'PZC`C8HA"TEQF-8R9XCA)J3fKKEQGP[*J!!!:
-- 
			Dolf Starreveld
			Department of Computer Science, UvA

Usenet:			dolf@uva.uucp
			{seismo,decvax,philabs}!mcvax!uva!dolf

Snail mail:		Dolf Starreveld
			Department of Computing Science
			University of Amsterdam
			Kruislaan 409
			NL-1098 SJ  Amsterdam
			The Netherlands

Telefone:		In Holland:    020-592 5137/5022
			International: 31-20-592 5137 or 31-20-592 5022

Telex:			10262 HEF NL