2 .\" RT - reset everything to normal state
9 .if !\\n(IK .if !\\n(IF .if !\\n(IX .if !\\n(BE .if !\\n(FT .di
15 .if \\n(NX<=1 .if \\n(AJ=0 .if \\n(FT=0 .ll \\n(LLu
18 . ie \\n(VS>=41 .vs \\n(VSu
30 .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n 80n
34 . \"IZ - initialization
39 . \" ACCENTS say \*'e or \*`e to get e acute or e grave both were 4/10
40 .ds ' \h'\w'e'u*1/10'\z\(aa\h'-\w'e'u*1/10'
41 .ds ` \h'\w'e'u*2/10'\z\(ga\h'-\w'e'u*2/10'
42 . \" UMLAUT \*:u, etc.
43 .if t .ds : \\v'-0.6m'\\h'(1u-(\\\\n(.fu%2u))*0.13m+0.00m'\\z.\\h'0.2m'\\z.\\h'-((1u-(\\\\n(.fu%2u))*0.13m+0.20m)'\\v'0.6m'
45 . \" TILDE and CIRCUMFLEX
46 .ds ^ \\\\k:\\h'-\\\\n(.fu+1u/2u*2u+\\\\n(.fu-1u*0.13m+0.06m'\\z^\\h'|\\\\n:u'
47 .ds ~ \\\\k:\\h'-\\\\n(.fu+1u/2u*2u+\\\\n(.fu-1u*0.13m+0.06m'\\z~\\h'|\\\\n:u'
49 .ds v \\\\k:\\\\h'+\\\\w'e'u/4u'\\\\v'-0.6m'\\\\s6v\\\\s0\\\\v'0.6m'\\\\h'|\\\\n:u'
51 .ds , \\\\k:\\\\h'\\\\w'c'u*0.4u'\\\\z,\\\\h'|\\\\n:u'
65 . if !\\n(PD .nr PD 1v
68 . if !\\n(PD .nr PD 0.3v
72 .ie \\n(VS>=41 .vs \\n(VSu
84 .if !\\n(FL .nr FL \\n(LLu*11u/12u
89 .if \a\\*(CH\a\a .ds CH "\(hy \\\\n(PN \(hy
95 .if t .wh -\\n(FMu/2u BT
96 .if n .wh -\\n(FMu/2u-1v BT
97 . \" no overstriking bold or italic; switch underlining to bold italic
98 . \" (sad historical botch, the .uf font must be 2, 3, or 4)
105 .if !\\n(IM .if !\\n(MN .pn 0
106 .so \\*(sd/tmac.scover
107 .if !\\n(IM .if !\\n(MN .rm IM MF MR
108 .if n .if !\\n(.T .pi /usr/bin/col
110 .ds QF TECHNICAL MEMORANDUM
113 .if !"\\$1"" .nr MM 1
114 .if !"\\$2"" .nr MC 1
115 .if !"\\$3"" .nr MG 1
117 .if \\n(.$-1 .ds CA \\$2
118 .if \\n(.$-2 .ds CC \\$3
121 . \" IM - internal memorandum
124 .TM "\\$1" "\\$2" "\\$3"
129 . \" MF - memorandum for file.
132 .TM "\\$1" "\\$2" "\\$3"
138 . \" MR - memo for record
141 .TM "\\$1" "\\$2" "\\$3"
142 .ds QF MEMORANDUM FOR RECORD
149 .if !\\n(PO .ie n .nr PO 1.5i
156 .if "\\$1"LT" .ta 3.9i 4.45i
157 .if !"\\$1"LT" .ta 3.9i 4.45i
160 . if "\\$1"LT" \s36\(FA\s0
161 . if !"\\$1"LT" \s36\(LH\s0
166 . if !"\\$2"" .ds xR " \\$2
168 . if !"\\$3"" .ds xP \\$3
169 . if "\\$1"LT" \s8\f(HBBell Laboratories\fP \fH600 Mountain Avenue
170 . if !"\\$1"LT" \s8\f(HBBell Laboratories\fP \fH600 Mountain Avenue
172 Murray Hill
, NJ
07974-0636
200 .de SG \" nested defn
214 .de RP \" released paper
217 .rm SG CS TM QF IM MR MF EG
220 .de TR \" Comp. Sci. Tech Rept series.
224 .rm SG CS TM QF IM MR M EG
227 . \"FP - font position for a family
230 .if '\\$1'palatino'\{\
235 .if '\\$1'lucidabright'\{\
236 . fp 1 R LucidaBright
237 . fp 2 I LucidaBright-Italic
238 . fp 3 B LucidaBright-Demi
239 . fp 4 BI LucidaBright-DemiItalic
240 . fp 5 CW LucidaSansCW\}
241 .if '\\$1'lucidasans'\{\
251 .if '\\$1'century'\{\
262 .if '\\$1'helvetica'\{\
283 .if '\\$1'souvenir'\{\
287 . fp 4 BI SouvenirBI\}
299 . \"TL - title and initialization
313 .if n .if \\n(TN .ll 29
314 .if t .if \\n(TN .ll 3.5i \}
373 .ie \\n(VS>=41 .vs \\n(VSu
384 . if \\n(NA-1 .sp 0.5
389 . if \\n(NA-2 .sp 0.5
394 . if \\n(NA-3 .sp 0.5
399 . if \\n(NA-4 .sp 0.5
404 . if \\n(NA-5 .sp 0.5
409 . if \\n(NA-6 .sp 0.5
414 . if \\n(NA-7 .sp 0.5
419 . if \\n(NA-8 .sp 0.5
470 . \"AI - authors institution
478 . \"AB - begin an abstract
495 . if !"\\$1"-" .if !"\\$1"no" \\$1
496 . if !"\\$1"-" .if !"\\$1"no" .sp\}
510 .ie \\n(VS>=41 .vs \\n(VSu
514 . \"AE - end of an abstract
520 .ie \\n(VS>=41 .vs \\n(VSu
531 . \"S2 - release paper style
532 . \"SY - cover sheet of released paper
551 .if \\n(GA=1 .nr GA 2
554 . \"S2 - first text page, released paper format
568 . \"S0- mike lesk conserve paper style
573 .if \\n(TV+\\n(AV .ns
576 .if \\n(TV+\\n(AV .rs
624 . \"check how long title is: can space extra .25 inch if short
628 .if \\n(dn<1.5v .if \\n(NA=1 .sp .25i
630 Computing Science Technical Report No. \\*(MN
703 . \"Tables. TS - table start, TE - table end
738 .if \\n(IT .if !\\n(HT \{\
748 .rm a+ b+ c+ d+ e+ f+ g+ h+ i+ j+ k+ l+ n+ m+
749 .rr 32 33 34 35 36 37 38 40 79 80 81 82
750 .rr a| b| c| d| e| f| g| h| i| j| k| l| m|
751 .rr a- b- c- d- e- f- g- h- i- j- k- l- m-
754 .de EQ \"equation, breakout and display
757 .nr LE 1 \" 1 is center
762 .if "\\$1"C" .ds EL \\$2
764 . ds EL \\$2 \" 2 is right adjust
768 . if "\\$3"" .ds EE \\h'|10n'
769 . el .ds EE \\h'\\$3'
774 .de EN \" end of a displayed equation
779 .if \\n(ZN .if !\\n(YE .LP
780 .if !\\n(ZN .if !"\\*(EL"" .nr ZN 1
783 . if t .if !\\n(nl=\\n(PE .sp .5
784 . if n .if !\\n(nl=\\n(PE .sp 1\}
786 . if t .if !\\n(.d=\\n(PE .sp .5
787 . if n .if !\\n(.d=\\n(PE .sp 1\}\}
789 .if \\n(BD .nr LE 0 \" don't center if block display or mark/lineup
791 . if \\n(LE=1 .ds EE \\h'|10n'
794 .if !\\n(EP .if \\n(ZN \{\
795 . if \\n(LE=1 .tl \(ts\(ts\\*(10\(ts\\*(EL\(ts
796 . if \\n(LE=2 .tl \(ts\(ts\(ts\\*(10\\*(EL\(ts
798 . if !\\n(BD .tl \(ts\\*(EE\\*(10\(ts\(ts\\*(EL\(ts
799 . if \\n(BD .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts
800 . if \\n(BD \!\\*(10\\t\\*(EL\}\}
801 .if \\n(EP .if \\n(ZN \{\
802 . if \\n(LE=1 .tl \(ts\\*(EL\(ts\\*(10\(ts\(ts
803 . if \\n(LE=2 .tl \(ts\\*(EL\(ts\(ts\\*(10\(ts
805 . if !\\n(BD .tl \(ts\\*(EL\\*(EE\\*(10\(ts\(ts\(ts
806 . if \\n(BD .if \\n(BD<\\w\(ts\\*(10\(ts .nr BD \\w\(ts\\*(10\(ts
807 . if \\n(BD \!\\h'-\\\\n(.iu'\\*(EL\\h'|0'\\*(10\}\}
810 .if \\n(YE .if \\n(EF .fi
811 .if t .if \\n(ZN .sp .5
813 .ie "\\n(.z"" .nr PE \\n(nl
816 .de PS \" start picture
817 . \" $1 is height, $2 is width, both in inches
819 .ie \\$1>0 .nr $1 \\$1
821 .in (\\n(.lu-\\$2)/2u
824 .de PE \" end of picture
828 . \" .P1/.P2 macros for programs
830 .nr XP 1 \" delta point size for program
831 .nr XV 1p \" delta vertical for programs
832 .nr XT 8 \" delta tab stop for programs
833 .nr DV .5v \" space before start of program
839 .if \\n(.$ .nr i \\$1
847 .ta 1u*\\ntu 2u*\\ntu 3u*\\ntu 4u*\\ntu 5u*\\ntu 6u*\\ntu 7u*\\ntu 8u*\\ntu 9u*\\ntu 10u*\\ntu 11u*\\ntu 12u*\\ntu 13u*\\ntu 14u*\\ntu
861 .if \\n(.$=0 .ne \\n(dnu \" -\\n(DVu
870 .if \\n(LL .nr LT \\n(LL
872 .if !\\n(PO .nr PO \\n(.o
873 .if \\n(mo-0 .ds MO January
874 .if \\n(mo-1 .ds MO February
875 .if \\n(mo-2 .ds MO March
876 .if \\n(mo-3 .ds MO April
877 .if \\n(mo-4 .ds MO May
878 .if \\n(mo-5 .ds MO June
879 .if \\n(mo-6 .ds MO July
880 .if \\n(mo-7 .ds MO August
881 .if \\n(mo-8 .ds MO September
882 .if \\n(mo-9 .ds MO October
883 .if \\n(mo-10 .ds MO November
884 .if \\n(mo-11 .ds MO December
885 .if \\n(dw-0 .ds DW Sunday
886 .if \\n(dw-1 .ds DW Monday
887 .if \\n(dw-2 .ds DW Tuesday
888 .if \\n(dw-3 .ds DW Wednesday
889 .if \\n(dw-4 .ds DW Thursday
890 .if \\n(dw-5 .ds DW Friday
891 .if \\n(dw-6 .ds DW Saturday
892 .nr yP (\\n(yr+2000)/100)
895 .if "\\*(DY"" .ds DY \\*(MO \\n(dy, \\n(yP\\n(yD
896 .if "\\*(CF"" .if n .ds CF "\\*(DY
898 . \"EM end up macro - process left over keep-release
901 .if \\n(AJ .tm Syntax error: no .AE
902 .if \\n(IF .ab Missing .FE somewhere
903 .if t .if \\n(TB=0 .wh -1p CM
911 .if \\n(FM+\\n(HM>=\\n(.p \{\
912 . tm Margins bigger than page length.
916 .if !\\n(HM .nr HM 1i
926 .if \\n(PO .po \\n(POu
937 .ch FO \\n(.pu-\\n(FMu
938 .ch FX \\n(.pu-\\n(FMu
944 .if !\\n(TD .if \\n(TC<5 .XK
958 ....if t .if \\n(.o+\\n(LL>7.75i .tm Offset + line length exceeds 7.75 inches, too wide
970 .if "\\n(.z"KJ" .nr TB 1
975 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) \{\
982 .if "\\n(.z"" .if \\$2>0 .if \\n(nl>\\n(HM \{\
983 . if (\\n(nl+1v)<(\\n(.p-\\n(FM) .di KJ \" full page figure must have new page
985 .if "\\n(.z"" .if \\n(nl>\\n(HM .if \\$2=0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i
986 .if "\\n(.z"KJ" .nr KM 1 \" KM is 1 if in a rediversion of keeps
987 .if \\n(KM>0 \!.KD \\$1 \\$2
989 .if \\n(nl<=\\n(HM .nr KR 32767
994 . if \\$2>0 .if (\\n(nl+1v)>(\\n(.p-\\n(FM) .sp 15i\}
996 .if \\n(KM=0 .if \\$2>0 .sp \\n(.tu-\\$1u
1002 .if \\n%-1 .tl \a\\*(LH\a\\*(CH\a\\*(RH\a
1005 . \"FO - footer of page
1013 .if \\n(NX<2 .nr WF 0
1015 .if \\n(FC<=1 .if \\n(XX .XF
1022 .if !\\n(dn .nr WF 0
1023 .if \\n(FC<=1 .if \\n(XX=0 \{\
1027 .if \\n(ML>0 .ne \\n(MLu
1029 . \"2C - begin double column
1031 .MC \" default MC is double column
1033 .de MC \" multiple columns- arg is line length
1035 .if \\n(CW>=0 .nr L1 \\n(CWu
1036 .if \\n(.$ .nr L1 \\$1n
1037 .if \\n(GW>=0 .nr GW \\n(GWu
1038 .if \\n(.$>1 .nr GW \\$2n
1039 .nr NQ \\n(LL/\\n(L1
1040 .if \\n(NQ<1 .nr NQ 1
1041 .if \\n(NQ>2 .if (\\n(LL%\\n(L1)=0 .nr NQ -1
1046 .if \\n(NX=0 .nr NX 1
1047 .if !\\n(NX=\\n(NQ \{\
1053 .if \\n(NQ>1 .hy \\n(HY
1055 .if \\n(NX>1 .nr CW \\n(L1
1057 .nr FL \\n(L1u*11u/12u
1058 .if \\n(NX>1 .if \\n(GW<0 .nr GW (\\n(LL-(\\n(NX*\\n(L1))/(\\n(NX-1)
1059 .nr RO \\n(L1+\\n(GW
1063 .ie \\n(NC>=\\n(NX .C2
1070 .if \\n(NC>\\n(NX .nr NC 1
1074 .ch FX \\n(.pu-\\n(FMu
1090 .if \\n(NC>\\n(NX .nr NC 1
1093 . \"1C - return to single column format
1100 Murray Hill, New Jersey 07974
1104 Piscataway, New Jersey 08854
1108 2018 Antwerp, Belgium
1117 .if \\n%>0 .tl \(ts\\*(LF\(ts\\*(CF\(ts\\*(RF\(ts
1124 .if \\n(1T .sp \\n(PDu
1128 . \"SH - (unnumbered) section heading
1139 . \"NH - numbered heading
1149 .if !\\n(.$ .nr NS 1
1150 .if !\\n(NS .nr NS 1
1152 .if !\\n(NS-4 .nr H5 0
1153 .if !\\n(NS-3 .nr H4 0
1154 .if !\\n(NS-2 .nr H3 0
1155 .if !\\n(NS-1 .nr H2 0
1156 .if !\\$1 .if \\n(.$ .nr H1 1
1159 .if \\n(NS-1 .as SN \\n(H2.
1160 .if \\n(NS-2 .as SN \\n(H3.
1161 .if \\n(NS-3 .as SN \\n(H4.
1162 .if \\n(NS-4 .as SN \\n(H5.
1168 . \"BG - begin, execute at first PP
1180 .rm S0 S1 S2 S3 OD OK TX AX WT CS TM IM MF MR RP I1 I2 I3 I4 I5 CB E1 E2
1212 .if !\\n(KG .nr FP 0
1213 .if \\n(GA>1 .if \\n(KG=0 .nr GA 0 \" next UNIX must be flagged.
1220 .if n .if \\n(TV .sp 2
1221 .if t .if \\n(TV .sp 1
1225 .if !\\n(FL .nr FL \\n(LLu*11u/12u
1229 .de RA \"redefine abstract macros
1236 . if !"\\$1"-" .if !"\\$1"no" \{\
1253 .ie \\n(VS>=41 .vs \\n(VSu
1257 . \"IP - indented paragraph
1260 .if !\\n(IP .nr IP +1
1261 .ie \\n(ID>0 .sp \\n(IDu
1264 .if \\n(.$>1 .nr I\\n(IU \\n(I\\n(IRu+\\$2n
1265 .if \\n(I\\n(IU=0 .nr I\\n(IU \\n(PIu+\\n(I\\n(IRu
1267 .nr TY \\n(TZ-\\n(.i
1268 .nr JQ \\n(I\\n(IU-\\n(I\\n(IR
1269 .ta \\n(JQu \\n(TYuR
1275 . \"LP - left aligned (block) paragraph
1279 .if \\n(1T .sp \\n(PDu
1284 .if \\n(1T .sp \\n(PDu
1291 . \"IE - synonym for .LP
1295 . \"RS - prepare for double indenting
1302 .if !\\n(I\\n(IR .nr I\\n(IR \\n(I\\n(IU+\\n(PIu
1304 .nr TY \\n(TZ-\\n(.i
1307 . \"RE - retreat to the left
1313 .if \\n(IR>0 .nr IR -1
1318 .if \\n(.$ .nr TZ \\$1n
1332 .if "\\*(.T"aps" .tl '--''--'
1339 . \" fontname(CW) fontstr(\f(CW) first_arg goes_after goes_before
1340 .de OF \" this is completely WRONG if any argument contains "'s
1343 .if t .if "\\$3"" .ft \\$1
1344 .if t .if !"\\$3"" \{\
1345 \&\\$5\\$2\\$3\\f\\n(PQ\\$4
1348 . if \\n(.$=5 \&\\$5
1349 . ie "\\$3"" .ul 1000
1351 . if \\n(.$=3 \&\\$3
1352 . if \\n(.$>3 \&\\$3\\c
1353 . if \\n(.$>3 \&\\$4
1358 .OF 3 \\f3 "\\$1" "\\$2" "\\$3"
1360 .de BI \" bold italic -- only on 202
1361 .OF 4 \\f4 "\\$1" "\\$2" "\\$3"
1367 .ie \\n(.$>0 \&\\$1\f\\n(PQ\\$2
1372 .OF 2 \\f2 "\\$1" "\\$2" "\\$3"
1374 . \"CW - constant width font
1377 .if t .if \\n(.$>0 \%\&\\$3\f(CW\\$1\f\\n(PQ\&\\$2
1378 .if t .if \\n(.$=0 .OF CW \\f(CW "\\$1" "\\$2" "\\$3"
1379 .if n .OF CW \\f(CW "\\$1" "\\$2" "\\$3"
1381 . \"TA - tabs set in ens or chars
1383 .ta \\$1n \\$2n \\$3n \\$4n \\$5n \\$6n \\$7n \\$8n \\$9n
1385 . \"SM - make smaller size
1387 .ie \\n(.$ \&\\$3\s-2\\$1\s0\\$2
1390 . \"LG - make larger size
1394 . \"NL - return to normal size
1398 . \"DA - force date; ND - no date or new date.
1400 .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
1406 .ds DY \\$1 \\$2 \\$3 \\$4
1412 . \"FS - begin footnote
1422 . tm Footnote within footnote-illegal.
1427 . \"FE - footnote end
1434 .if !\\n(XX-1 .nr dn +\\n(.v
1436 .if !\\n(NX .nr WF 1
1437 .if \\n(dl>\\n(CW .nr WF 1
1438 .ie (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu
1440 . if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu
1441 . if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v
1442 . if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu)\}
1446 .\" First page footer.
1457 .if !\\n(1T .nr KG 1 \"not in abstract repeat next page.
1458 .if "\\n(.z"OD" .nr KG 0 \" if in OK, don't repeat.
1462 .if n __________________________
1481 .if \\n(nlu+1v>(\\n(.pu-\\n(FMu) .ch FX \\n(nlu+1.9v
1502 Holmdel
, New Jersey
07733
1506 Whippany
, New Jersey
07981
1510 Naperville
, Illinois
60540
1512 .de UL \" underline argument, don't italicize
1513 .ie t \\$1\l'|0\(ul'\\$2
1514 .el .I "\\$1" "\\$2"
1517 .ie \\n(GA \\$2\s-1UNIX\s0\\$1
1519 .ie n \{\\$2UNIX\\$1*
1523 .el registered trademark
1526 .el \\$2\s-1UNIX\\s0\\$1\\f1\(rg\\fP
1532 operating system\\$1
1546 .de B1 \" begin boxed stuff
1550 .if "\\$1"C" .nr BC 1
1553 .de B2 \" end boxed stuff
1556 .if \\n(.$>0 .nr BI \\$1n
1565 .if \\n(BC>0 .in +(\\n(.lu-\\n(BWu)/2u
1573 \l'\\n(BWu\(ul'\L'-\\n(BHu'\l'|0\(ul'\h'|0'\L'\\n(BHu'
1575 .if \\n(BC>0 .in -(\\n(.lu-\\n(BWu)/2u
1589 .ie \\n(.$ Copy to \\$1:
1593 .ie t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul'
1594 .el \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu'