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"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